Abstract:
An engine control apparatus having a microcomputer which controls an operating condition modifying means to modify the operating condition of the engine, wherein the absolute value ΔC of the difference, C now  -C old  is calculated from a previously obtained basic amount of control C old , and a newly obtained basic amount of control C now , a correction coefficient K is determined which takes a value of 1 to nearly 0 as the ΔC is increased, and then the C set  of 
     
       C.sub.set =K×(C.sub.now -C.sub.old)+C.sub.old 
     
     is calculated as an actual basic amount of control.

Description:
BACKGROUND OF THE INVENTION 
     This invention relates to an engine control apparatus and a control method useful to drive an engine in the best condition, and particularly to an ignition advance angle control apparatus and control method. 
     Recently, an engine control apparatus with a microcomputer has been proposed in order to drive the engine in the best condition. 
     In such an engine control apparatus with a microcomputer, at least two parameters indicative of the operating condition of the engine are each divided into a definite number of values, and the operating condition of the engine is controlled at each combination of these values by an operating condition control means, in which case the basic amount of control that the control means operates from is read from a fixed data memory (generally a read-only memory) in which the basic amounts of control are stored, in accordance with the operating condition of the engine and the operating condition control means is driven on the basis of this basic amount of control. 
     When the operating condition control means is driven by the basic amount of control stored in such a fixed data memory, an abrupt change of the operating condition of the engine, such as a sudden acceleration or deceleration, will naturally require a change in the combination of parameter values which is applied to the fixed data memory, and during the change, basic amounts of control are read from the fixed memory and used to drive the operating condition control means. 
     The basic amount of control that the operating condition control means relies upon for controlling the operating condition of the engine is generally a predetermined value for the best control of the operating condition of the engine at that time, but when the operating condition of the engine is suddenly changed by a large amount in a short time, the basic amounts of control read during such abrupt change do not always correspond to the proper operating conditions of the engine at that time. 
     Therefore, the engine cannot be operated in the best condition by the operating condition control means under such inadequate basic amounts of control. 
     SUMMARY OF THE INVENTION 
     An object of this invention is to provide an ignition advance angle control apparatus and a control method for an engine in which, even if the operating condition of the engine is suddenly changed, the basic amount of control that the operating condition control means is controlled to modify is made near to a proper value corresponding to the operating condition of the engine at that time. 
     The feature of this invention is that a previous basic amount of control C old , a new basic amount of control C now  and the absolute value ΔC of the difference C now  -C old  are determined at each read period of a fixed data memory, a correction coefficient K is read from a correction coefficient data memory having stored therein the correction coefficient K having values of 1 down to nearly 0 to be taken as the ΔC increases, and the actual basic amount of control at this time is determined by calculating the C set  of 
     
         C.sub.set =f(K)+C.sub.old 
    
     where f(K) is a function of the coefficient K with respect to ΔC. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     In the accompanying drawings: 
     FIG. 1 is a block diagram of an embodiment of the ignition advance angle control apparatus of this invention; 
     FIG. 2 is a waveform diagram showing the timing of ignition; 
     FIG. 3 shows ignition advance angles in the fixed data memory which correspond to the combinations of rotation speed and intake negative pressure; 
     FIG. 4 is a flow chart of an embodiment of the control method of this invention; 
     FIG. 5 shows a characteristic curve of correction coefficient; 
     FIG. 6 shows the correction coefficients of FIG. 5 stored as data; and 
     FIG. 7 is a graph showing the ignition advance angle with respect to the intake negative pressure and rotation speed in the accelerated condition. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Description is first made of an engine control apparatus to which this invention is applied, here particularly an ignition control apparatus with reference to FIG. 1. 
     Referring to FIG. 1, an angle signal generating means 1 provided in a distributor 8 coupled to the crankshaft of an engine generates an angle pulse for each degree and a reference signal generating means 2 provided in the distributor 8 also generates a reference pulse for each 180 degrees. These signals are applied to an input/output unit (hereinafter, referred to as an I/O unit) 3. An analog output from an intake negative pressure signal generating means 4 is converted by an analog-to-digital converter (hereinafter, referred to as an A/D converter) 5, to a digital value, which is applied to the I/O unit 3, which includes a register 30 and a counter 31. The output of the I/O unit 3 is applied to a power transistor 6, cutting it off so that a high voltage is induced in an ignition coil 7. The high voltage induced in the ignition coil 7 is supplied through the distributor 8 to spark plugs 9. 
     FIG. 2 shows the waveforms of the output voltage from the I/O unit 3 and primary current in the ignition coil 7. The rectangular waveform shown at (A) is applied to the power transistor 6, and as a result the current shown at (B) is induced in the primary coil of the ignition coil 7. 
     The power transistor 6 is conductive at the leading edge of the rectangular voltage shown in FIG. 2 at (A), and thereby the primary current of the ignition coil 7 rises as shown in FIG. 2 at (B). Then, the power transistor 6 is cut off at the trailing edge of the rectangular wave voltage shown in FIG. 2 at (A), and thereby the primary coil current is cut off as shown in FIG. 2 at (B). At this time, a high voltage is induced in the secondary coil of the ignition coil 7. 
     In FIG. 2 at (B), TDC represents the top dead center of a piston of the engine. In a 4-cylinder engine, one of the pistons reaches the top dead center each time the crankshaft is rotated 180 degrees. θ ADV  is the ignition advance angle which is an angle between the ignition point and the top dead center TDC. INTL is the reference pulse angle which is determined by the reference pulse from the reference signal generating means 2, and in this embodiment is provided at intervals of 180 degrees. 
     The cut-off points of the primary coil current in the ignition coil 7, or ignition time points are determined by the angle θ IGN  from the reference pulse angle INTL. That is, the ignition advance angle θ ADV  is controlled by the change of the θ IGN . 
     The start of the primary coil current flow in the ignition coil 7, or the conduction time θ ON  of the transistor 6 is controlled by the angle θ OFF  from the previous ignition time. 
     Again, referring to FIG. 1, the I/O unit 3 is connected through bus lines 13 to a central processing unit (hereinafter, referred to as CPU) 10, a fixed data memory for read-only operation, here a read-only memory (hereinafter, referred to as ROM) 11 and a random access memory (hereinafter, referred to as RAM) 12 capable of read and write. 
     The CPU 10 performs data communication and data arithmetic operations between the ROM 11, RAM 12 and I/O unit 3. The ROM 11 has stored therein fixed data, control programs and so on useful for the arithmetic operation, and RAM 12 has a function of temporarily storing the values obtained by the arithmetic operation. 
     The ROM 11 contains an ignition advance angle map storing in a lattice form the ignition advance angle θ ADV  determined by the intake negative pressure and the rotation speed of the engine, as shown in FIG. 3, and thus the ignition advance angles are determined by reading the ignition advance angle map and computing. 
     Thus, the signal from the intake negative pressure signal generating means 4 is converted by the A/D converter 5 to the digital pressure data P at each period of time, and stored in the RAM 12. 
     Then, the data N for the rotation speed is determined by the signals from the angle signal generating means 1 and reference signal generating means 2. 
     Then, the ignition advance angle θ ADV  on the ignition advance angle map within the ROM 11 is searched for on the basis of the pressure data P and the rotation speed data N and stored in the RAM 12. 
     Thereafter, the value, θ IGN  shown in FIG. 2 is determined by the ignition advance angle θ ADV  stored in the RAM 12, by subtracting the ignition advance angle θ ADV  from the predetermined reference pulse angle INTL. 
     Subsequently, the number of angle pulses corresponding to the θ IGN  is determined and stored in the register 30 incorporated in the I/O unit 3. At this time, the counter 31 in the I/O unit 3 starts to count the angle pulse as soon as the reference pulse angle INTL occurs, and when the contents of this counter 31 reach the number of angle pulses corresponding to the θ IGN  within the register 30, the comparator within the I/O unit 3 operates to cut off the power transistor 6 thereby causing ignition. 
     The ignition control apparatus using a microcomputer as mentioned above is well known. 
     In such ignition control apparatus, the ignition advance angle θ ADV  on the ignition advance angle map within the ROM 11 is searched for at each predetermined period and used for computation of the ignition advance angle. 
     Thus, when the engine is suddenly accelerated from low-speed to high-speed running, the intake pressure for determining the ignition advance angle θ ADV  is rapidly changed and the ignition advance angle θ ADV  on the ignition advance angle map to which reference is made at that time is moved. 
     Therefore, the ignition advance angle θ ADV  on the ignition advance angle map is searched for during the driving. In general, since the ignition advance angle θ ADV  advances much upon middle-speed running, the ignition advance angle θ ADV  at the time of middle speed running is searched for and determined when the engine is suddenly accelerated from low-speed to high-speed running but is not stabilized yet at the high-speed running condition, or when it approaches the high-speed condition, there is caused a problem of knocking. 
     On the contrary, when the engine is suddenly decelerated from high-speed running, afterburning takes place for the same reason. 
     Therefore, in accordance with this invention, in order to avoid the abnormal angle advance resulting from such transient running, the preceding ignition advance angle θ ADVold  and the current ignition advance angle θ ADVnow  are used to produce the absolute value Δθ ADV  of the difference θ ADVnow  -θ ADVold  and a correction coefficient K which approaches zero from 1 as the Δθ ADV  increases is read from a correction coefficient data memory. Then, the actual ignition advance angle of this time, θ ADVset  is determined from 
     
         θ.sub.ADVset =f(K)+θ.sub.ADVold 
    
     where f(K) is a function of the correction coefficient K which depends on the difference value Δθ ADV . The f(K) is, in practice, K×(θ ADVnow  -θ ADVold ). 
     This will be described with reference to the flow chart of FIG. 4. 
     The flow chart of FIG. 4 is started and repeated with a certain period by the control program. At step 100, the pressure data P of intake pressure and rotation speed data N are read. 
     At step 200, the ignition advance angle θ ADVnow  corresponding to the data N and P read in at step 100 is searched for on the ignition advance angle map and stored at address A now  of RAM 12. 
     At step 300, the ignition advance angle θ ADVnow  determined at step 200 is compared with the previously determined ignition advance angle θ ADVold  stored at address A old  of the RAM 12. 
     When the result at step 300 is θ ADVnow  &gt;θ ADVold , the Δθ ADV  of θ ADVnow  -θ ADVold  is determined at step 500. When it is θ ADVnow  &lt;θ ADVold , the Δθ ADV  of θ ADVold  -θ ADVnow  is determined at step 400. Then, the Δθ ADV  is stored at address ΔA d  of the RAM 12. 
     At step 600, the correction coefficient K corresponding to the difference Δθ ADV  between the provious ignition advance angle θ ADVold  and this ignition advance angle θ ADVnow  is obtained and stored at address A c  of the RAM 12. 
     The correction coefficient K is a value changing in the range from 1.0 to nearly 0 as the Δθ ADV  changes from 0 as shown in the graph A-B-C-D of FIG. 5. It will be seen that the K is maintained at 1 in the interval A-B, decreased to nearly 0 with a slope in B-C and kept at nearly 0 in C-D. 
     In effect, such values of K corresponding to those of the Δθ ADV  as shown in FIG. 6 are stored in the correction coefficient data memory within the ROM. 
     At step 700, the value of θ ADVset  is calculated from 
     
         θ.sub.ADVset =K×(θ.sub.ADVnow -θ.sub.ADVold)+θ.sub.ADVold 
    
     and stored at address A old  of the RAM 12. 
     Finally, at step 800, the θ ADVset  obtained at step 700 is stored in a register 30 of the I/O unit 3 to determine the ignition advance angle. In this case, the θ ADVset  stored at address A old  of the RAM 12 at step 700 is used as the θ ADVold  for the next cycle. 
     In the conventional method, when the running condition as shown in FIG. 3 is changed from the rotation speed of 800 rpm, intake negative pressure of -600 mmHg to 1600 rpm, -70 mmHg, the ignition advance angle θ ADV  is changed slightly from 9 degrees to 10 degrees. However, during the change the engine passes through the middle speed running condition which needs a very large value of ignition advance angle θ ADV . That is, when the intake negative pressure and rotation speed are changed as shown in FIG. 7 by a-a, and b-b, the ignition advance angle θ ADV  changes along line c-c&#39;-c in FIG. 7 and thus has peak c&#39; of excess advance angle causing the knocking. 
     If the previous ignition advance angle θ advold  is weighted with more importance in proportion to the difference between the previous ignition advance angle θ ADVold  and the this ignition advance angle θ ADVnow , the excess advance angle peak c&#39; in FIG. 7 can be reduced as indicated by a broken line so that abnormal advance angle is prevented from occurring and thus no knocking is caused. 
     In the case of rapid deceleration, afterburning can be prevented for the same reason.