Ignition timing control for internal combustion engines

A method for controlling the ignition timing of internal combustion engines by reducing the amount of correction of ignition timing with each change of direction of the correction. This increases the speed of approach to the approximate optimum ignition timing yet minimizes variation of ignition timing near the optimum state.

BACKGROUND OF THE INVENTION 
1. Field of the Invention 
The present invention relates to a method and an apparatus for controlling 
the ignition timing of internal combustion engines. The method and 
apparatus of the present invention are used for internal combustion 
engines of automotive vehicles. 
2. Description of the Prior Art 
In general, the ignition timing of internal combustion engines is 
determined based on engine running conditions, such as speed, the intake 
vacuum, intake air flow, and engine temperature, so as to maximize engine 
output power and minimize fuel consumption without causing knock. The 
optimal ignition timing, however, cannot easily be maintained because it 
varies in accordance with individual engine differences and engine ambient 
conditions. 
A prior art method has been proposed in which knock is sensed by a device 
which detects engine vibration at the detonation stroke. In this method, 
the ignition timing is retarded to a predetermined period upon knock and 
is advanced by a predetermined rate otherwise. This works to suppress 
knock below a predetermined level. 
This prior art method, however, has a problem. When correcting the ignition 
timing by a predetermined rate, large amounts of correction cause large 
variations in ignition timing near the optimum state, though also 
resulting in a fast speed of approach to the approximate optimum state. 
This results in large variation of engine torque and, hence, reduced 
engine drivability. Contrary to this, small amounts of correction result 
in a low speed of approach to the approximate optimum state, though also 
causing less variations in ignition timing near the optimum state. This 
results in continued failure to meet the optimum ignition timing, hence, 
confined loss of output power. 
SUMMARY OF THE INVENTION 
It is the primary objec of the present invention to provide an improved 
method for controlling the ignition timing of internal combustion engines 
in which the speed of approach to the approximate optimum state is high 
and yet variation of ignition timing near the optimum state is minimized, 
so that the control of the ignition timing of internal combustion engines 
is carried out satisfactorily. 
In accordance with the fundamental aspect of the present invention, there 
is provided a method for controlling the ignition timing for an internal 
combustion engines comprising the steps of: detecting the engine running 
condition and generating the detected signal, obtaining an amount of 
correction of the ignition timing for correcting the ignition timing, and 
correcting the ignition timing in the advance or retardation correction 
direction, said amount of correction of the ignition timing being reduced 
with each change in the direction of correction of the ignition timing.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
The apparatus of FIG. 1 comprises four-cylinder four-cycle internal 
combustion engine 1, starter 11, starter switch 111, fuel supplying device 
12, air intake manifold 13, pressure sensor 3, branch duct 131 for 
pressure sensor 3, and rotation sensor 2. Rotation sensor 2 is arranged in 
the ignition distributor for engine 1. Rotation sensor 2 produces a top 
dead center signal when the engine takes the top dead center position and 
produces a rotation angle signal when the engine has rotated by a 
predetermined crank angle, for example, 30.degree.CA from the top dead 
center position. This predetermined angle is obtained by equally dividing 
one rotation of the engine. 
The apparatus of FIG. 1 also comprises knock sensor 4, band pass filter 6, 
half wave rectifier and integrator circuit 7, computer 5, power source 
circuit 15, battery 19, igniter 81, and ignition coil 82. 
As illustrated in FIG. 2, computer 5 comprises an 8 bit central processor 
unit (CPU) 500, interruption control unit 501, timer unit 502, crank angle 
counter unit 503, digital input port 504, knock detection circuit 505, 
analog input port 507, current-flow and ignition control unit 508, random 
access memory (RAM) 509, read only memory (ROM) 510, common bus 511, RAM 
power source circuit 512, and power source circuit 513. 
Interruption control unit 501 receives the top dead center signal from 
rotation sensor 2, a program interruption signal from digital input port 
504, and the signal from timer unit 502 for control of the interruption 
operation. Timer unit 502 comprises a 16-bit counter for counting the 
clock pulses which occur every 8 .mu.s and a latch for storing the count 
each time rotation sensor 2 generates a predetermined signal. Crank angle 
counter unit 503 receives the top dead center signal and rotation angle 
SIG.(2) from rotation sensor 2 and gives the count which represents the 
engine rotational angle position. CPU 500 reads out the count of crank 
angle counter unit 503 and the latch value of timer unit 502. This 
read-out is carried out at two rotational angle positions, and the 
difference of the latch values is obtained. From the obtained difference, 
the time for the engine to rotate between these two rotational angle 
positions and the engine speed are measured. 
Digital input port 504 receives starter signal SIG.(11) from starter 11. 
The voltage supplied to starter 11 via starter switch 111 is also supplied 
to digital input port 504 so that the ON state of starter switch 111 is 
acknowledged by digital input port 504. Digital input port 504 produces 
the program interruption signal which is supplied to interruption control 
unit 501. 
Knock detection circuit 505 receives knock signal SIG.(6) and knock 
reference level SIG.(7) from filter 6 and half wave rectifier and 
integrator circuit 7 connected to knock sensor 4. Knock detection circuit 
505 produces the knock detection pulse signal when the instantaneous value 
of the knock signal far exceeds the average value. CPU 500 commands the 
count of the number of these knock detection pulses during a predetermined 
period. Analog input port 507 receives air intake manifold pressure signal 
SIG.(3) from pressure sensor 3 and voltage signal SIG.(19) from battery 19 
and carries out the analog-to-digital conversion of the received signals. 
Current-flow and ignition control unit 508 supplies a current-flow and 
ignition signal to the actuator circuit of igniter 81. Unit 508 comprises 
a number of down-counters. It receives a command from CPU 500 regarding 
the selection of ignition coil 82 to be subjected to the current-flow and 
ignition control, the count of the crank angle counter from which the down 
counter should start counting, and the value of down count. Under this 
command, unit 508 makes the current-flow signal in the coil to be "0" in 
the case of current flow and "1" in the case of ignition, when the count 
of the down-counter reaches zero. Common bus 511 is connected to CPU 500. 
The control signals and data are transmitted between CPU 500 and the units 
of computer circuit 5 through common bus 511. 
Knock sensor 4 monitors the oscillation of the engine block and produces 
the knock signal corresponding to the oscillation. The knock of engine 1 
is detected by using the knock signal from filter 6 and the knock 
reference level signal from half wave rectifier and integrator circuit 7. 
The state of engine 1 is determined as the knock-state if knock rate V is 
greater than a predetermined value. Knock rate V is the ratio between 
knock signal SIG.(6) and reference level signal SIG.(7). That is 
V=SIG.(6)/SIG.(7). Reference level signal SIG.(7) is determined in 
accordance with such engine conditions as speed and intake air pressure 
and the state of the output signal of knock sensor 4. 
The relationship between ignition timing correction amount T.sub.ig (CORR) 
and knock rate V is illustrated in the graph of FIG. 3. In the graph of 
FIG. 3, the abscissa represents knock rate V, while the ordinate 
represents ignition timing correction amount T.sub.ig (CORR). In the 
ordinate, "A" represents an advance in the ignition angle, ".theta..sub.A 
(MAX)" represents the maximum value of the ignition timing correction 
amount in the advance side, "R" represents retardation in the ignition 
angle, and ".theta..sub.R (MAX)" represents the maximum value of the 
ignition timing correction amount in the retardation side. 
When knock rate V is less than predetermined value V.sub.A, ignition timing 
correction amount T.sub.ig (CORR) increases in accordance with the 
reduction of V until T.sub.ig (CORR) reaches .theta..sub.A (MAX), as shown 
in solid T-1. When knock rate V is less than another predetermined value 
V.sub.R, T.sub.ig (CORR) increases in accordance with the increase of V 
until T.sub.ig (CORR) reaches .theta..sub.R (MAX), as shown in solid line 
T-3. 
In accordance with the present invention, it is proposed that the rate of 
increase T.sub.ig (CORR) in the range below V.sub.A or in the range above 
V.sub.R be reduced, as shown by arrow a1 or arrow a2, if the direction of 
correction of ignition timing of the present step is opposite to that of 
the preceding step. The reduction of the rate of increase of T.sub.ig 
(CORR) means the reduction of the gradient of line T-1, that is angle 
.phi.(A), or the gradient of line T-3, that is, angle .phi.(R). 
This enables knock to be detected before the ignition timing correction 
amount far exceeds the optimum value to the advanced angle side and 
enables retardation of the angle to be carried out. This consequently 
allows knock to be eliminated and the ignition timing to return to the 
optimum value quickly. 
The changes with time of ignition timing T.sub.ig and correction 
.DELTA..theta. in accordance with the method of the present invention are 
illustrated in FIG. 5 (I) and (II), respectively. FIG. 5 (I) shows that 
the variation of value T.sub.ig is attenuated with the lapse of time, as 
indicated in waveform T.sub.ig (L). Waveform T.sub.ig (L) is obtained as 
the result of control with learning correction according to the present 
invention. The base level of the variation is optimum ignition timing 
T.sub.ig (OPT). 
If no control with learning correction is carried out, the waveform becomes 
T.sub.ig (NON). The change with time of correction angle .DELTA..theta. is 
illustrated in FIG. 5 (II). 
A flow chart of an example of the computation carried out in computer 
circuit 5 is illustrated in FIG. 4. In Step S1 and Step S2, engine speed 
N.sub.e and intake air pressure P.sub.m are detected. In Step S3, the 
basic ignition timing is read out from a two dimensional map of the engine 
speed and the intake air pressure stored in ROM 510. 
In step S4, a decision is made as to whether or not engine running 
conditions have changed. If the decision is YES, constants .alpha. and 
.beta. assume the values .alpha..sub.0 and .beta..sub.0 and ignition 
timing correction amount .DELTA..theta..sub.0 assumes the value 0 in Step 
S5, and the process proceeds to Step S6. Constant .alpha. is the ratio 
between the ignition timing correction amount in the advance range and the 
knock rate. Constant .beta. is the ratio between the ignition timing 
correction amount in the retardation range and the knock rate. Values 
.alpha..sub.0 and .beta..sub.0 are the initial values of .alpha. and 
.beta., respectively. If the decision of Step S4 is NO, the process 
proceeds directly to Step S6. 
In Step S6, knock rate V is calculated using the relationship 
"V=SIG.(6)/SIG.(7)". 
In Step S7, critical values V.sub.A and V.sub.R of knock rate V are 
calculated. In Step S8, a decision regarding the relationship between V 
and V.sub.A, V.sub.R is carried out. When the decision is V&lt;V.sub.A, the 
process proceeds to Step S9. When the decision is V.sub.A &lt;V&lt;V.sub.R, the 
process proceeds to Step S10. When the decision is V&gt;V.sub.R, the process 
proceeds to Step S11. 
In Step S9, ignition angle correction amount .DELTA..theta. is calculated 
as ".DELTA..theta.=.alpha.(V.sub.A -V)", where .alpha. is a constant. In 
this regard, .DELTA..theta. should be less than .theta..sub.A (MAX). In 
Step S10, the ignition timing correction amount .DELTA..theta. is selected 
as zero. In Step S11, the ignition timing correction amount is calculated 
as ".DELTA..theta.=.beta.(V.sub.R -V)", where .beta. is another constant. 
In this regard, .DELTA..theta. should be less than .theta..sub.R (MAX). 
In Step S12, the decision as to whether or not the present .DELTA..theta. 
has the sign opposite of that of the preceding value .DELTA..theta..sub.0 
is carried out. If the decision is YES, the process proceeds to Step S13. 
If the decision is NO, the process proceeds to Step S14. In Step S13, the 
value .alpha. and .beta. are reduced either by multiplying .alpha. and 
.beta. by a predetermined value less than 1, such as 0.8, or by 
subtracting a predetermined value from .alpha. and .beta.. The 
.DELTA..theta. obtained by the calculations .DELTA..theta.=.alpha.(V.sub.A 
-V) and .DELTA..theta.=.beta.(V.sub.R -V) is used as the new preceding 
value .DELTA..theta..sub.0. 
In Step S14, the value .theta..sub.C of the corrected ignition timing is 
calculated in a similar manner as Step S3. In Step S15, the new value 
.theta..sub.C of the corrected ignition timing is calculated by adding the 
obtained .DELTA..theta. to the value .theta..sub.C calculated in Step S14. 
If engine running conditions change to a great extent, values .alpha. and 
.beta. are brought back to initial values .alpha..sub.0 and .beta..sub.0, 
and the process of the correction of ignition timing is started again. 
Above, a preferred embodiment has been described. Various modifications and 
alterations of this embodiment are possible without departing from the 
scope of the present invention. 
For example, although in the above-described embodiment the ignition timing 
correction amount is changed in accordance with the change of the knock 
rate, it is possible to use a single critical knock rate to carry out the 
angle correction in the retardation range by a predetermined amount when 
the knock rate is greater than the critical knock rate and carry out the 
correction of angle in the advance range by a predetermined rate. The 
reduction of the amount of correction corresponding to the change of 
correction direction is carried out similarly to the case of the 
above-described embodiment. 
A process for controlling the ignition timing of internal combustion 
engines in accordance with another embodiment of the present invention is 
illustrated in FIG. 6. 
In the process of FIG. 6, a sequence of steps comprising the signal from 
knock sensor 901, filtering by band pass filter 902, half-wave rectifying 
and integration 903, amplification 904, and implementation of offset 905 
is used as an input of knock decision stage 910 to provide the criterion 
of the knock decision. The signal from distributor 906 is supplied to 
waveform shaping step 907. The signal of step 907 is supplied to step 908 
for generating the gate signal for the knock decision period. Step 908 
also receives clock pulse 912. The signal of step 902 and the signal of 
step 908 are supplied to step 909 for generating the knock signals which 
are to be supplied to step 910 for decision. 
As the result of the decision in step 910, if the signal from step 909 is 
greater than the criterion from step 905, pulses called "knock pulses" are 
generated in step 911. 
The knock pulses from step 911 are supplied to step 914 of the up/down 
counting for correction of the ignition timing as up-count pulses. In step 
913, pulses for advance ignition timing are produced after a predetermined 
period after the generation of the knock pulse in step 911. The pulses of 
step 913 are supplied to step 914 as down-count pulses. 
The signal of step 914 is supplied to step 917 for generating the signal 
for up/down switching. The signal of step 917 is supplied to step 918 for 
the correction amount up/down counting. The signal of step 918 is supplied 
to step 914 as the signal of the correction amount. 
The signal of step 914 is supplied to digital/analog conversion step 915. 
The signal of step 915 is supplied to step 916 where the amount of the 
correction of the ignition timing is obtained. 
It is arranged that one count of the correction amount signal from step 918 
of the up/down counting for the correction amount corresponds to 0.10 of 
the crank angle. This count of the correction amount signal is supplied to 
step 914 to cause one down-counting each time the up/down switching 
occurs. Thus, amount .DELTA..theta. of correction is reduced each time the 
up/down switching occurs. The change with time of ignition timing T.sub.ig 
and correction amount .DELTA..theta. in accordance with the process of 
FIG. 6 is illustrated in FIG. 7.