BACKGROUND OF THE INVENTION
1. Field of the Invention
[0001] The present invention relates to a method of controlling an air-fuel ratio of an
engine.
2. Description of the Related Art
[0002] Known in the art is an internal combustion engine which finds a first angular velocity
of the crankshaft during the time required for the crankshaft to rotate from 30° to
60° after top dead center of the compression stroke from this period, finds a second
angular velocity of the crankshaft during the time required for the crankshaft to
rotate from 90° to 120° after top dead center of the compression stroke from this
period, finds the torque generated by a cylinder from the square of the first angular
velocity and the square of the second angular velocity, and calculates the amount
of fluctuation of the torque from the amount of fluctuation of the generated torque
(see Japanese Examined Patent Publication (Kokoku) No. 7-33809).
[0003] That is, when combustion is performed in a cylinder, the combustion pressure causes
the angular velocity of the crankshaft to rise from a first angular velocity ωa to
a second angular velocity ωb. At this time, if the moment of inertia of rotation of
the engine is I, the combustion pressure causes the kinetic energy to rise from (½)·Iωa
2 to (½)·Iωb
2. Roughly speaking, the amount of rise of the kinetic energy (½)·I·(ωb
2-ωa
2) causes a torque to be generated, so the generated torque becomes proportional to
(ωb
2-ωa
2). Therefore, the generated torque is found from the difference between the square
of the first angular velocity ωa and the square of the second angular velocity ωb
and, therefore, in the above-mentioned internal combustion engine, the amount of fluctuation
of the torque is calculated from the thus found generated torque.
[0004] However, if it is possible to calculate the amount of fluctuation of the torque in
this way, it would also be possible to control the air-fuel ratio to the lean limit
based on this amount of torque fluctuation. That is, when the air-fuel ratio is at
the rich side of the lean limit, the amount of torque fluctuation is small, while
when the air-fuel ratio is at the lean side of the lean limit, the amount of torque
fluctuation becomes large, so by correcting the air-fuel ratio based on the amount
of torque fluctuation so that the amount of torque fluctuation becomes within a predetermined
range, it is possible to control the air-fuel ratio to the lean limit. This type of
control of the air-fuel ratio becomes possible when the torque fluctuation calculated
based on the first angular velocity ωa and second angular velocity ωb expresses the
torque fluctuation due to the fluctuation of the combustion pressure.
[0005] When the vehicle is driving over a rough road, however, the engine drive system experiences
large amplitude torsional vibration and, as a result, the torque calculated based
on the first angular velocity ωa and the second angular velocity ωb fluctuates considerably.
The occurrence of the large torque fluctuation when torque fluctuation not due to
the fluctuation of the combustion pressure occurs means that if the air-fuel ratio
is corrected, the air-fuel ratio will end up deviating considerably from the lean
limit. Therefore, it is necessary to prohibit correction of the air-fuel ratio when
large torque fluctuations occur due to driving over a rough road.
[0006] The related art of the above internal combustion engines explained above, however,
do not give any suggestions on the occurrence of torque fluctuations due to driving
over a rough road and therefore application of the methods described in the above
related art would result in the problem of the air-fuel ratio deviating from the target
air-fuel ratio.
SUMMARY OF THE INVENTION
[0007] An object of the present invention is to provide a method of control of an air-fuel
ratio capable of preventing the air-fuel ratio from deviating from a target air-fuel
ratio when a vehicle is driving over a rough road.
[0008] According to the present invention, there is provided a method of control of an air-fuel
ratio in an engine comprising the steps of setting a first crank angle range in a
crank angle region from the end of a compression stroke to the beginning of an expansion
stroke, setting a second crank angle range in a crank angle region in the middle of
the expansion stroke a predetermined crank angle away from the first crank angle range,
detecting a first angular velocity of the crankshaft in the first crank angle range,
detecting a second angular velocity of the crankshaft in the second crank angle range,
finding the amount of change of the drive power generated by each cylinder based on
the first angular velocity and the second angular velocity, judging whether the vehicle
is driving over a rough road, and prohibiting the correction of the air-fuel ratio
based on the amount of change of the drive power when it is judged that the vehicle
is driving over a rough road.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The present invention may be more fully understood from the description of the preferred
embodiments of the invention set forth below together with the accompanying drawings,
in which:
Fig. 1 is an overall view of an internal combustion engine;
Fig. 2 is a view of a map of the basic fuel injection time;
Fig. 3 is a view of the amount of generation of NOx and torque fluctuation;
Fig. 4 is a view of a map of a lean correction coefficient;
Fig. 5 is a view of a map of a lean limit feedback correction coefficient;
Figs. 6A and 6B are time charts of the changes in the elapsed times Ta(i) and Tb(i)
of 30° crank angle;
Fig. 7 is a time chart of the changes in the elapsed time Ta(i) of 30° crank angle;
Fig. 8 is a time chart of the changes in the elapsed times Ta(i) and Tb(i) of 30°
crank angle;
Fig. 9 is a time chart of the changes in the elapsed times Ta(i) and Tb(i) of 30°
crank angle;
Fig. 10 is a time chart of the changes in the elapsed time Ta(i) of 30° crank angle;
Fig. 11 is a flowchart of the interruption routine;
Fig. 12 is a flowchart for calculating the elapsed times Ta(i) and Tb(i);
Figs. 13 to 15 are flowcharts for calculating the amplitude of fluctuation of Ta(i);
Fig. 16 is a time chart of the changes of the elapsed time Ta(i) and the changes of
the flags XMXREC and XMNREC;
Fig. 17 is a flowchart for calculating the torque;
Figs. 18 and 19 are flowcharts for calculating the ratios KTa(i) and KTb(i);
Fig. 20 is a flowchart for processing of the counter CDLNIX;
Fig. 21 is a view of the timings for calculation of various values;
Figs. 22A and 22B are views of a target torque fluctuation value;
Fig. 23 is a flowchart showing a main routine;
Figs. 24 and 25 are flowcharts for calculating the torque fluctuation value;
Figs. 26 and 27 are flowcharts of the calculation of a lean limit feedback correction
coefficient;
Figs. 28A and 28B are views of the fluctuation amount judgement values DH(n) and DL(n)and
the levels of torque fluctuation LVLH(n)and LVLL(n);
Fig. 29 is a time chart of changes in the average value SINPAV of the amplitude of
the fluctuation of Ta(i);
Fig. 30 is a view of a map of a learning value KBUij;
Fig. 31 is a flowchart of the calculation of the fuel injection time;
Fig. 32 is a graph of the region of judgement of a vehicle driving over a rough road;
Fig. 33 is a view of the fluctuation amount judgement values DH(n)and DL(n);
Figs. 34 and 35 are flowcharts for calculating the lean limit feedback correction
coefficient;
Fig. 36 is an overview of another embodiment of the internal combustion engine;
Fig. 37 is flowchart of an interruption routine;
Figs. 38 to 40 are flowcharts of the check of the approval for torque calculation;
Fig. 41 is a flowchart of the calculation of the torque;
Figs. 42A and 42B are views for explaining the method of detection of turbine speed;
Figs. 43 to 46 are flowcharts of an interruption routine;
Fig. 47 is a time chart of the changes in DLNT and the changes in the flags XNXREC
and XNNREC;
Fig. 48 is a flowchart of a main routine;
Figs. 49 and 50 are flowcharts of calculation of the lean limit feedback correction
coefficient; and
Fig. 51 is a time chart of the changes in SINPAV1, SINPAV2, etc.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Referring to Fig. 1, 1 shows an engine body provided with four cylinders consisting
of the No. 1 cylinder #1, No. 2 cylinder #2, No. 3 cylinder #3, and No. 4 cylinder
#4. The cylinders #1, #2, #3, and #4 are respectively connected through the corresponding
intake pipes 2 to a surge tank 3. In the intake pipes 2 are provided fuel injectors
4 for injecting fuel toward the corresponding intake ports. The surge tank 3 is connected
through an intake duct 5 to an air cleaner 6. In the intake duct 5, a throttle valve
7 is arranged. On the other hand, the cylinders #1, #2, #3, and #4 are connected through
an intake manifold 8 and an exhaust pipe 9 to a casing 11 accommodating an NOx absorbent
10. This NOx absorbent 10 has the function of absorbing the NOx included in the exhaust
gas when the air-fuel ratio is lean and releasing the absorbed NOx when the air-fuel
ratio is the stoichiometric air-fuel ratio or rich.
[0011] The electronic control unit 20 is comprised of a digital computer and is provided
with a ROM (read only memory) 22, a RAM (random access memory) 23, a CPU (microprocessor)
24, a backup RAM 25 connected to a constant power supply, an input port 26, and an
output port 27 connected with each other by a bidirectional bus 21. The output shaft
of the engine 12 has attached to it a rotor 13 with outer teeth. A crank angle sensor
14 comprising an electromagnetic pickup is arranged facing the outer teeth of the
rotor 13. As shown in Fig. 1, in this embodiment, the rotor 13 has an outer tooth
formed on its periphery at every 30° crank angle and, for example, has part of the
outer teeth removed for detecting the top dead center of the compression stroke of
the No. 1 cylinder. Therefore, except for the portion where the outer teeth are removed,
that is, the non-tooth portion, the crank angle sensor 14 generates an output pulse
every time the output shaft 12 turns by 30° crank angle. This output pulse is input
to the input port 26.
[0012] The surge tank 3 has attached to it a pressure sensor 15 for generating an output
voltage proportional to the absolute pressure in the surge tank 3. The output voltage
of this pressure sensor 15 is input through a corresponding AD converter 28 to the
input port 26. Further, the throttle valve 7 has attached to it an idle switch 16
for detecting when the throttle valve 7 is at the idling opening position. The output
signal of this idle switch 16 is input to the input port 26. Further, the intake manifold
8 has disposed in it an air-fuel ratio sensor (O
2 sensor) 17 for detecting the air-fuel ratio. The output signal of this air-fuel ratio
sensor 17 is input through the corresponding AD converter 28 to the input port 26.
On the other hand, the output port 27 is connected through the corresponding drive
circuit 29 to the fuel injectors 4.
[0013] In the internal combustion engine shown in Fig. 1, the fuel injection time TAU is
calculated based on the following equation:

[0014] Here, TP shows a basic fuel injection time, FLEAN a lean correction coefficient,
FLLFB a lean limit feedback correction coefficient, FAF a stoichiometric air-fuel
ratio feedback correction coefficient, and TAUV an invalid injection time.
[0015] The basic fuel injection time TP shows the injection time required for making the
air-fuel ratio the stoichiometric air-fuel ratio. This basic fuel injection time TP
is found from experiments. This basic fuel injection time TP is stored in the ROM
22 in advance in the form of a map shown in Fig. 2 as a function of the absolute pressure
PM in the surge tank 3 and the engine speed N.
[0016] The lean correction coefficient FLEAN is a correction coefficient for making the
air-fuel ratio a target lean air-fuel ratio. This lean correction coefficient FLEAN
is stored in advance in the ROM 22 in the form of the map shown in Fig. 4 as a function
of the absolute pressure PM in the surge tank 3 and the engine speed N.
[0017] The lean limit feedback correction coefficient FLLFB is a correction coefficient
for maintaining the air-fuel ratio at the lean limit. In this embodiment according
to the present invention, the learning region for the lean air-fuel ratio feedback
control for the absolute pressure PM in the surge tank 3 and the engine speed N is
divided into nine regions as shown in Fig. 5 for example. Lean limit feedback correction
coefficients FLLFB11 to FLLFB33 are set for the learning regions.
[0018] The stoichiometric air-fuel ratio feedback correction coefficient FAF is a coefficient
for maintaining the air-fuel ratio at the stoichiometric air-fuel ratio. The stoichiometric
air-fuel ratio feedback correction coefficient FAF is controlled based on the output
signal of the air-fuel ratio sensor 17 so as to maintain the air-fuel ratio at the
stoichiometric air-fuel ratio. At this time, the stoichiometric air-fuel ratio feedback
correction coefficient FAF varies substantially about 1.0.
[0019] The lean correction coefficient FLEAN is set in accordance with the operating state
of the engine for the operating region enclosed by the broken lines in Fig. 4. In
this operating region, the air-fuel ratio is maintained at the target lean air-fuel
ratio. As opposed to this, in the operating region outside the region enclosed by
the broken line in Fig. 4, the air-fuel ratio is maintained at the stoichiometric
air-fuel ratio. When the air-fuel ratio is to be maintained at the stoichiometric
air-fuel ratio, the lean correction coefficient FLEAN and the lean limit feedback
correction coefficient FLLFB are fixed at 1.0 and the stoichiometric air-fuel ratio
feedback correction coefficient FAF is controlled based on the output signal of the
air-fuel ratio sensor 17.
[0020] On the other hand, when the air-fuel ratio is to be maintained at the target lean
air-fuel ratio, the stoichiometric air-fuel ratio feedback correction coefficient
FAF is fixed at 1.0, that is, the feedback control based on the output signal of the
air-fuel ratio sensor 17 is stopped, and the lean correction coefficient FLEAN and
the lean limit feedback correction coefficient FLLFB are used to control the air-fuel
ratio to the target lean air-fuel ratio.
[0021] Next, the lean limit feedback control will be explained referring to Fig. 3. Fig.
3 shows the relationship between the amount of fluctuation of the torque of the engine
output and the amount of generation of NOx and the air-fuel ratio. The leaner the
air-fuel ratio, the smaller the fuel consumption rate. Further, the leaner the air-fuel
ratio, the smaller the amount of generation of NOx. Therefore, viewed from these points,
the air-fuel ratio should desirably be made as lean as possible. Note, however, that
when the air-fuel ratio becomes leaner than a certain extent, the combustion becomes
unstable and, as a result, as shown in Fig. 3, the amount of fluctuation of the torque
becomes large. Therefore, in this embodiment according to the present invention, as
shown in Fig. 3, the air-fuel ratio is maintained in the air-fuel ratio control region
where the torque fluctuation starts to increase.
[0022] That is, explaining this in more detail, the lean correction coefficient FLEAN is
determined so that the air-fuel ratio becomes the middle of the air-fuel ratio control
region shown in Fig. 3 when the lean limit feedback correction coefficient FLLFB is
made 1.0. On the other hand, the lean limit feedback correction coefficient FLLFB
is controlled to within the torque fluctuation control region shown in Fig. 3 in accordance
with the amount of fluctuation of the torque. When the amount of fluctuation of the
torque becomes larger, the lean limit feedback correction coefficient FLLFB is increased,
that is, the air-fuel ratio is made smaller, while when the amount of fluctuation
of the torque becomes smaller, the lean limit feedback correction coefficient FLLFB
is reduced, that is, the air-fuel ratio is made larger. In this way, the air-fuel
ratio is controlled to within the air-fuel ratio control region shown in Fig. 3.
[0023] Note that, as will be understood from a comparison of Fig. 4 and Fig. 5, the lean
limit feedback correction coefficient FLLFB is set to substantially the same region
as the engine operating region where the lean correction coefficient FLEAN is set.
[0024] If the amount of fluctuation of the torque is controlled to within the torque fluctuation
control region shown in Fig. 3, an excellent drivability of the vehicle may be ensured
while the fuel consumption rate and the amount of generation of NOx can be greatly
reduced. However, to control the amount of fluctuation of the torque to be within
the torque fluctuation control region in this way, the amount of fluctuation of the
torque must be detected. To detect the amount of fluctuation of the torque, the torque
must be detected.
[0025] Various methods have been proposed in the past for calculating the output torque
of each cylinder. Mentioning typical ones, there are the method of providing a combustion
pressure sensor in the combustion chamber and calculating the output torque based
on the output signal of this combustion pressure sensor or the method of, as explained
at the beginning, calculating the output torque from the difference between the square
of the first angular velocity ωa and the square of the second angular velocity ωb.
[0026] If a combustion pressure sensor is used, there is the advantage that the torque generated
in the cylinder provided with the combustion pressure sensor can be reliably detected,
but there is conversely the disadvantage that the combustion pressure sensor is required.
As opposed to this, the angular velocities ωa and ωb can be calculated from the output
signal of the crank angle sensor provided in the internal combustion engine in the
past, so when calculating the output torque based on the angular velocities ωa and
ωb, there is the advantage that there is no need to mount a new sensor. However, in
this case, as explained at the beginning, if the amount of fluctuation of the angular
velocity of the crankshaft becomes larger due to the vehicle driving over a rough
road, it is necessary to prohibit the correction of the air-fuel ratio. It is clear,
however, that except for this, the method of calculation of the torque based on the
angular velocity, which does not require a new sensor, is preferable. Therefore, the
present invention calls for calculating the generated torque based on the angular
velocity and prohibiting the correction of the air-fuel ratio when it is judged that
the vehicle is driving over a rough road.
[0027] Next, the new method for calculating the drive force generated by each cylinder and
the torque generated in each cylinder will be explained.
[0028] First, the method of calculating the drive force generated by each cylinder and the
torque generated in each cylinder will be explained while referring to Figs. 6A and
6B showing the steady operating state where the engine drive system does not experience
torsional vibration. As explained above, the crank angle sensor 14 produces an output
pulse each time the crankshaft rotates by 30° crank angle. Further, the crank angle
sensor 14 is arranged to generate an output pulse at the top dead center TDC of the
compression stroke of the cylinders #1, #2, #3, and #4. Therefore, the crank angle
sensor 14 produces an output pulse for each 30° crank angle from the top dead center
TDC of the compression stroke of the cylinders #1, #2, #3, and #4. Note that, the
ignition sequence of the internal combustion engine used in the present invention
is 1-3-4-2.
[0029] In Figs. 6A and 6B, the vertical axis T30 shows the elapsed time of 30° crank angle
from when the crank angle sensor 14 produces an output pulse to when it produces the
next output pulse. Further, Ta(i) shows the elapsed time from the top dead center
of the compression stroke (hereinafter referred to as TDC) to 30° after top dead center
of the compression stroke (hereinafter referred to as ATDC) of the No. I cylinder,
while Tb(i) shows the elapsed time from ATDC 60° to ATDC 90° of the No. I cylinder.
Therefore, for example, Ta(1) shows the elapsed time from TDC to ATDC 30° of the No.
1 cylinder, while Tb(1) shows the elapsed time from ATDC 60° to ATDC 90° of the No.
1 cylinder. On the other hand, if the 30° crank angle is divided by the elapsed time
T30, the result of the division shows the angular velocity ω. In this embodiment according
to the present invention, 30° crank angle/Ta(i) is referred to as the first angular
velocity ωa in the No. I cylinder, while 30° crank angle/Tb(i) is referred to as the
second angular velocity ωb in the No. I cylinder. Therefore, 30° crank angle/Ta (1)
shows the first angular velocity ωa of the No. 1 cylinder, while 30° crank angle/Tb(1)
shows the second angular velocity ωb of the No. 1 cylinder.
[0030] Taking note of the No. 1 cylinder of Figs. 6A and 6B, when the combustion is started
and the combustion pressure rises, the elapsed time falls from Ta(1) to Tb(1) then
rises from Tb(1). In other words, the angular velocity of the crankshaft ω rises from
the first angular velocity ωa to the second angular velocity ωb, then falls again
from the second angular velocity ωb. That is, the combustion pressure causes the angular
velocity ω of the crankshaft to increase from the first angular velocity ωa to the
second angular velocity ωb. Fig. 6A shows the case where the combustion pressure is
relatively high, while Fig. 6B shows the case where the combustion pressure is relatively
low. From Figs. 6A and 6B, when the combustion pressure is high, the amount of reduction
of the elapsed time (Ta(i)-Tb(i)) becomes larger compared with when the combustion
pressure is low, therefore the amount of increase (ωb-ωa) of the angular velocity
ω becomes larger. When the combustion pressure becomes higher, the drive force generated
by the cylinder becomes larger, therefore if the amount of increase (ωb-ωa) of the
angular velocity ω becomes larger, the drive force generated by the cylinder becomes
larger. Therefore, it is possible to calculate the drive force generated by a cylinder
from the difference (ωb-ωa) between the first angular velocity ωa and the second angular
velocity ωb.
[0031] On the other hand, if the moment of inertia of rotation of the engine is I, the combustion
pressure causes the kinetic energy to increase from (½)·Iωa
2 to (½)·Iωb
2. The amount of increase of the kinetic energy (½)·I·(ωb
2-ωa
2) expresses the torque generated by that cylinder, therefore it becomes possible to
calculate the torque generated by a cylinder from the difference (ωb
2-ωa
2) between the square of the first angular velocity ωa and the square of the second
angular velocity ωb.
[0032] By detecting the first angular velocity ωa and the second angular velocity ωb in
this way, it becomes possible to calculate the drive force generated by the corresponding
cylinder and the torque generated by the corresponding cylinder from the detection
values. Note that the change in the elapsed time T30 shown in Figs. 6A and 6B differs
somewhat depending on the engine, therefore the crank angle range for detecting the
first angular velocity ωa and the crank angle range for detecting the second angular
velocity ωb are set in accordance with the engine so that (ωb-ωa) best expresses the
drive force generated by the engine or so that (ωb
2-ωa
2) best expresses the torque generated by the engine. Therefore, depending on the engine,
the crank angle range for detecting the first angular velocity ωa may be from before
top dead center of the compression stroke BTDC 30° to TDC, while the crank angle range
for detecting the second angular velocity ωb may be from ATDC 90° to ATDC 120°.
[0033] Therefore, explaining the method of detecting the angular velocities ωa and ωb in
general terms, the first crank angle range is set in the crank angle region from the
end of the compression stroke to the beginning of the expansion stroke, the second
crank angle range is set in a crank angle region in the middle of the expansion stroke
a predetermined crank angle away from the first crank angle range, the first angular
velocity ωa of the crankshaft in the first crank angle range is detected, and the
second angular velocity of the crankshaft ωb in the second crank angle range is detected.
[0034] As explained above, by detecting the angular velocities ωa and ωb, it becomes possible
to calculate the drive force and the torque generated by a corresponding cylinder
based on the detected values. The engine drive system, however, experiences torsional
vibration occurring at the natural frequency of the drive system due to the successive
explosive actions of the cylinders. If the engine drive system experiences such torsional
vibration, it no longer becomes possible to accurately detect the drive force and
the torque generated by a cylinder based on the angular velocities ωa and ωb. Next,
this will be explained with reference to Fig. 7 and Fig. 8.
[0035] Fig. 7 shows the changes in the elapsed time Ta(i) successively calculated for each
cylinder when the engine drive system experiences torsional vibration. When the engine
drive system experiences torsional vibration, this torsional vibration causes the
angular velocity of a crankshaft to be cyclically increased and decreased, so the
elapsed time Ta(i) increases and decreases cyclically as shown in Fig. 7.
[0036] On the other hand, Fig. 8 shows the portion where the elapsed time Ta(i) is reduced
in an enlarged manner. As shown in Fig. 8, the elapsed time Ta(i) falls by the time
ho between Ta(1) and Ta(3). This reduction of the time ho is believed to be due to
an increase in the amount of torsion due to the torsional vibration. In this case,
the amount of decrease of the elapsed time due to the torsional vibration between
Ta(1) and Ta(3) is believed to increase substantially linearly along with the elapse
of time, therefore this amount of decrease of the elapsed time due to the torsional
vibration is shown by the difference between the broken line connecting Ta(1) and
Ta(3) and the horizontal line passing through Ta(1). Therefore, between Ta(1) and
Tb(1), the torsional vibration causes the elapsed time to fall by exactly h.
[0037] That is, Tb(1) is lower in elapsed time than Ta(1), but this lower elapsed time includes
the amount of decrease f of the elapsed time due to the combustion pressure and the
amount of decrease h of the elapsed time due to the torsional vibration. Therefore,
to find just the elapsed time Tb'(1) decreased due to the combustion pressure, it
becomes necessary to add h to Tb(1). That is, when the elapsed time Ta(i) decreases
between cylinders (Ta(1)→Ta(3)), to find just the elapsed time Tb'(1) decreased due
to the combustion pressure, the detected elapsed time Tb(1) must be corrected in the
upward direction. In other words, when the first angular velocity ωa increases between
cylinders, the second angular velocity ωb of the cylinder where the combustion was
first performed must be corrected in the downward direction.
[0038] As opposed to this, when Ta(3) increases with respect to Ta(1), the elapsed time
Tb(1) reduced from Ta(1) includes the amount of decrease of the elapsed time due to
the combustion pressure and the amount of increase of the elapsed time due to the
torsional vibration. Therefore, in this case, to find just the elapsed time Tb'(1)
reduced due to the combustion pressure, the amount of increase of the elapsed time
due to the torsional vibration must be subtracted from Tb(1). That is, when the elapsed
time Ta(i) increases between cylinders, to find just the elapsed time Tb'(1) decreased
due to the combustion pressure, the detected elapsed time Tb(1) must be corrected
in the downward direction. In other words, when the first angular velocity ωa decreases
between cylinders, the second angular velocity ωb of the cylinder where the combustion
was first performed must be corrected in the upward direction.
[0039] As explained above, correction of the second angular velocity ωb enables the drive
force generated by each cylinder to be accurately detected from the difference (ωb-ωa)
between the first angular velocity ωa and the second angular velocity ωb even when
the engine drive system experiences torsional vibration and enables the torque generated
by each cylinder to be accurately calculated from the difference (ωb
2-ωa
2) between the square of the first angular velocity ωa and the square of the second
angular velocity ωb. Note, however, that if there is variation in the spaces between
the outer teeth formed along the outer periphery of the rotor 13 (Fig. 1), even if
the second angular velocity ωb is corrected as explained above, the drive force and
the torque generated by a cylinder cannot be accurately detected. Next, this will
be explained with reference to Fig. 9.
[0040] Fig. 9 shows the case where the space between the outer tooth of the rotor 13 showing
the TDC of the No. 1 cylinder #1 and the outer tooth of the rotor 31 showing ATDC
30° is smaller than the space between other outer teeth. In this case, as will be
understood from a comparison of Fig. 8 and Fig. 9, the elapsed time Ta(1) will end
up becoming smaller than the correct elapsed time for 30° crank angle. Further, at
this time, as will be understood from a comparison of Fig. 8 and Fig. 9, the amount
of decrease h' of the elapsed time Ta(1) due to the torsional vibration will end up
becoming smaller than the correct amount of decrease h and therefore the value of
Tb'(1) expressing just the elapsed time decreased due to the combustion pressure will
also end up becoming smaller than the correct value.
[0041] Therefore, in this embodiment according to the present invention, the ratio KTa(i)
(= Ta(i)m/Ta(i)) between the mean value Ta(i)m of the elapsed times Ta(i) of all of
the cylinders and the elapsed time Ta(i) of each cylinder and the ratio KTb(i) (=
Tb(i) m/Tb(i)) between the mean value Tb(i)m of the elapsed times Tb(i) of all of
the cylinders and the elapsed time Tb(i) of each cylinder at the time of when the
supply of fuel has been stopped in a deceleration operation when the engine drive
system does not experience torsional vibration are found. When the fuel is being supplied,
the actually detected elapsed time Ta(i) for each cylinder is multiplied by the ratio
KTa(i) so as to find the final elapsed time Ta(i) for each cylinder and the actually
detected elapsed time Tb(i) for each cylinder is multiplied by the ratio KTb(i) so
as to find the final elapsed time Tb(i) for each cylinder.
[0042] Therefore, for example, when, as explained above, the elapsed time Ta(1) actually
detected for the No. 1 cylinder #1 is shorter than the correct elapsed time, the ratio
KTa(1) becomes larger than even 1.0, therefore the final elapsed time Ta(1) obtained
by multiplying the actually detected elapsed time Ta(1) with the ratio KTa(1) becomes
considerably close to the correct elapsed time Ta(1). Further, by finding the amount
of decrease of the elapsed time due to the torsional vibration h based on the thus
obtained final elapsed time Ta(1), this amount of decrease h substantially matches
with the correct amount of decrease, therefore even the value of Tb'(1) expressing
just the elapsed time due to the combustion pressure substantially shows the correct
value. In this way, in this embodiment according to the present invention, even if
there is a variation in the spaces between the outer teeth of the rotor 13, the drive
force and the torque generated at each cylinder can be accurately detected.
[0043] On the other hand, when the vehicle is driving over a rough road, the engine drive
system experiences large amplitude torsional vibration and so the amount of fluctuation
of Ta(i) becomes extremely large. Fig. 10 shows the fluctuation in Ta(i) when the
vehicle is traveling over a rough road. AMP of Fig. 10 shows the difference between
the minimum Ta(i) and maximum Ta(i), that is, the amplitude. As explained referring
to Fig. 8, when the engine drive system experiences torsional vibration due to the
explosive actions of the cylinders, the amplitude AMP does not become that large and
therefore at this time it is possible to calculate the h shown in Fig. 8 by the method
explained previously so as to accurately detect the value of Tb'(i) showing just the
elapsed time reduced due to the combustion pressure.
[0044] However, when the amplitude AMP becomes large, the drive force or the torque generated
at a cylinder at which particularly Ta(i) becomes maximum or minimum can no longer
be accurately detected. That is, in Fig. 10, when for example the cylinder first giving
the maximum Ta(i) is the No. 1 cylinder, the amount of decrease h due to the torsional
vibration for calculating the Tb'(1) of the No. 1 cylinder #1 is found from the inclination
of the broken line connecting Ta(1) and Ta(3) in Fig. 10. However, near when the No.
1 cylinder #1 reaches TDC, the amount of increase or the amount of decrease of the
elapsed time due to the torsional vibration changes by the smooth curve passing through
Ta(2), Ta(1), and Ta(3). Therefore, if the value of the amount of decrease h of the
No. 1 cylinder #1 with respect to Tb(1) is found from the inclination of the broken
line connecting Ta(1) and Ta(3), the value of this amount of decrease h is calculated
considerably larger than even the actual value. As a result, Tb'(1) no longer shows
the correct value, therefore the drive force and the torque generated at the cylinder
can no longer be accurately detected. When the amplitude AMP becomes large, the same
thing occurs at the cylinder giving the minimum Ta(i).
[0045] In this way, when the vehicle is driving over a rough road, it becomes no longer
possible to accurately detect the drive force and torque generated by the cylinder.
If the amount of torque fluctuation is sought based on the detected torque at this
time, the amount of torque fluctuation found would end up becoming larger than the
torque fluctuation based on the fluctuation of the combustion pressure. Correction
of the air-fuel ratio when the amount of torque fluctuation increases due to reasons
other than the fluctuation of the combustion pressure in this way would cause erroneous
correction of the air-fuel ratio. Therefore, in this embodiment of the present invention,
the average value of the amplitude AMP of the fluctuation of the elapsed time Ta(i)
is found and correction of the air-fuel ratio is prohibited when the average value
of the amplitude AMP exceeds a predetermined value for over a certain time.
[0046] Next, the routines for finding the torque generated at each cylinder will be explained
referring to Fig. 11 to Fig. 21. Note that, Fig. 21 shows the timing for calculation
of the various values performed in each routine.
[0047] Fig. 11 shows an interruption routine performed at every 30° crank angle. Referring
to Fig. 11, first the routine for calculating the elapsed times Ta(i) and Tb(i) is
proceeded to (step 100). This routine is shown in Fig. 12. Next, the routine for calculating
the amplitude of the fluctuation of the elapsed time Ta(i)is proceeded to (step 200).
This routine is shown in Fig. 13 to Fig. 15. Next, the routine for calculating the
torque is proceeded to (step 300). This routine is shown in Fig. 17. Next, the routine
for calculating the ratios KTa(i) and KTb(i) is proceeded to (step 400). This routine
is shown in Fig. 18 and Fig. 19. Next, the routine for processing of the counter CDLNIX
used for calculation of the torque fluctuation value is proceeded to (step 500). This
routine is shown in Fig. 20.
[0048] Referring to Fig. 12 showing the routine for calculation of the elapsed times Ta(i)
and Tb(i), first, at step 101, the time is made the TIME0. The electronic control
unit 20 is provided with a free run counter showing the time. The time is calculated
from the count value of this free run counter. Next, at step 102, the current time
is fetched. Therefore, the TIME0 of step 101 expresses the time of 30° crank angle
before.
[0049] Next, at step 103, whether the No. 1 cylinder is currently at ATDC 30° or not is
judged. When the No. 1 cylinder is not currently at ATDC 30°, step 106 is jumped to,
where whether the No. 1 cylinder is currently at ATDC 90° or not is judged. When the
No. 1 cylinder is not currently at ATDC 90°, the routine for calculation of the elapsed
times Ta(i) and Tb(i) is ended.
[0050] As opposed to this, when it is judged at step 103 that the No. 1 cylinder is currently
at ATDC 30°, step 104 is proceeded to, where the final elapsed time Ta(i) from TDC
to ATDC 30° of the No. 1 cylinder is calculated based on the following equation:

[0051] That is, for example, when the No. 1 cylinder #1 is currently at ATDC 30°, the final
elapsed time Ta(1) from TDC to ATDC 30° of the No. 1 cylinder #1 is calculated from
KTa(1)·(TIME-TIME0). Here, (TIME-TIME0) expresses the elapsed time Ta(1) actually
measured from the crank angle sensor 14 and KTa(1) is a ratio for correction of the
error due to the spaces of the outer teeth of the rotor 13, therefore the final elapsed
time Ta(1) obtained by multiplying (TIME-TIME0) with KTa(1) comes to accurately express
the elapsed time when the crankshaft rotates by 30° crank angle.
[0052] Next, at step 105, the flag XCAL(i-1) of the No. (i-1) cylinder where combustion
had been performed one time before showing that the generated torque should be calculated
is set (XCAL(i-1) ← "1"). In this embodiment according to the present invention, as
explained above, since the ignition sequence is 1-3-4-2, when the No. 1 cylinder #1
is currently at ATDC 30°, the flag XCAL(2) of the No. 2 cylinder #2 where the combustion
had been performed one time before showing that the generated torque should be calculated
is set. In the same way, when the final elapsed time Ta(3) is calculated as shown
in Fig. 21, the flag XCAL(1) is set, when the final elapsed time Ta(4) is to be calculated,
the flag XCAL(3) is set, and when the final elapsed time Ta(2) is to be calculated,
the flag XCAL(4) is set.
[0053] On the other hand, when it is judged at step 106 that the No. 1 cylinder is currently
at ATDC 90°, step 107 is proceeded to, where the final elapsed time Tb(i) from ATDC
60° to ATDC 90° of the No. 1 cylinder is calculated based on the following equation:

[0054] That is, for example, when the No. 1 cylinder #1 is currently at ATDC 90°, the final
elapsed time Tb(1) from ATDC 60° to ATDC 90° of the No. 1 cylinder #1 is calculated
from KTb(1)·(TIME-TIME0). In this case as well, since the ratio KTb(1) for correcting
the error due to the spaces of the outer teeth of the rotor 13 is multiplied with
(TIME-TIME0), the final elapsed time Tb(1) accurately expresses the elapsed time in
the period when the crankshaft rotates by 30° crank angle.
[0055] Next, the routine for calculating the amplitude of fluctuation of the Ta(i) shown
in Fig. 13 to Fig. 15 will be explained referring to Fig. 16.
[0056] That is, referring to Fig. 13 to Fig. 15, first, at step 201, whether one of the
cylinders is currently at ATDC 30° or not is judged. When none of the cylinders is
currently at ATDC 30°, the processing cycle is ended, while when one of the cylinders
is at ATDC 30°, step 202 is proceeded to.
[0057] At step 202 to step 204, the maximum elapsed time T30max when the elapsed time Ta(i)
increases and then decreases is calculated. That is, at step 202, whether the Ta(i)
calculated at the routine shown in Fig. 12 is larger than the maximum elapsed time
T30max or not is judged. When T30max > Ta(i), step 205 is jumped to, while when T30max
≤ Ta(i), step 203 is proceeded to, where Ta(i) is made T30max. Next, at step 204,
the increase flag XMXREC showing that Ta(i) is increasing is set (XMXREC ← "1"), then
step 205 is proceeded to.
[0058] A step 205 to step 207, the minimum elapsed time T30min when the elapsed time Ta(i)
decreases and then increases is calculated. That is, at step 205, whether the Ta(i)
calculated by the routine shown in Fig. 12 is smaller than the calculated minimum
elapsed time T30min or not is judged. When T30min < Ta(i), step 208 is jumped to,
while when T30min ≥ Ta(i), step 206 is proceeded to, where Ta(i) is made T30min. Next,
at step 207, the decrease flag XMNREC showing that Ta(i) has decreased is set (XMNREC
← "1"), then step 208 is proceeded to.
[0059] At step 208 to step 217, the amplitude AMP of the fluctuation of Ta(i) (Fig. 10)
is calculated. That is, at step 208, whether T30max > Ta(i) and XMXREC = "1" or not
is judged. When T30max ≤ Ta(i) or the increase flag XMXREC is reset (XMXREC = "0"),
step 213 is jumped to, while when T30max > Ta(i) and XMXREC = "1", step 209 is proceeded
to.
[0060] That is, as shown in Fig. 16, assume that at the time t
1, the elapsed time Ta(1) of the No. 1 cylinder #1 has become maximum. In this case,
in the interruption routine performed at the time t
1, step 202 to step 203 is proceeded to, where the Ta(1) is made T30max, then, at step
204, the increase flag XMXREC is set. On the other hand, in the interruption routine
performed at the time t
2 of Fig. 16, step 202 to step 205 is jumped to. At this time, since it is judged at
step 208 that T30max > Ta(3) and XMXREC = "1", step 209 is proceeded to. That is,
step 209 is proceeded to at the time t
2 when the elapsed time Ta(i) starts to decrease.
[0061] At step 209, the maximum elapsed time T30max is made TMXREC. Next, at step 210, the
minimum elapsed time TMNREC (found at the later explained step 216)is subtracted from
the maximum elapsed time TMXREC so as to calculate the amplitude AMP of the fluctuation
of Ta(i). Next, at step 211, the initial value of the minimum elapsed time T30min
is made Ta(i). Next, at step 212, the increase flag XMXREC is reset (XMXREC ← "0").
Next, step 213 is proceeded to.
[0062] At step 213, whether T30min < Ta(i) and XMNREC =

1" or not is judged. When T30min ≥ Ta(i) or the decrease flag XMNREC is reset (XMNREC
=

0"), step 218 is jumped to, while when T30min < Ta(i) and XMNREC =

1", step 214 is proceeded to.
[0063] That is, as shown in Fig. 16, at the time t
3, the elapsed time Ta(1) of the No. 1 cylinder #1 is considered to have become the
minimum. In this case, at the interruption routine performed at the time t
3, step 205 to step 206 is proceeded to, where the Ta(1) is made T30min, then at step
207, the decrease flag XMNREC is set. On the other hand, the interruption routine
performed at the time t
4 of Fig. 16 jumps from step 205 to step 208. At this time, since it is judged at step
213 that T30min < Ta(3) and XMNREC = "1", step 214 is proceeded to. That is, step
214 is proceeded to at the time t
4 where the elapsed time Ta(i) starts to be increased.
[0064] At step 214, the minimum elapsed time T30min is made TMNREC. Next, at step 215, the
minimum elapsed time TMNREC is subtracted from the maximum elapsed time TMXREC so
as to calculate the amplitude AMP of the fluctuation of Ta(i). Next, at step 216,
the initial value of the maximum elapsed time T30max is made Ta(i). Next, at step
217, the decrease flag XMNREC is reset (XMNREC ← "0"). Next, step 218 is proceeded
to.
[0065] At step 218, the amplitude AMP of Ta(i) is added to the cumulative value ΣAMP of
the amplitude of Ta(i). Next, at step 219, whether the amplitude AMP has been cumulatively
added n number of times or not is judged. When cumulatively added n number of times,
step 220 is proceeded to, where the average value SINPAV (=ΣAMP/n) of the amplitude
of Ta(i) serving as the criteria for prohibition of the correction of the air-fuel
ratio is calculated. Next, at step 221, ΣAMP is cleared.
[0066] Next, the torque calculation routine shown in Fig. 17 will be explained. Referring
to Fig. 17, first, at step 301, whether the flag XCAL(i-1) showing that the generated
torque of the No. (i-1) cylinder where combustion had been performed one time before
should be calculated is set or not is judged. When the flag XCAL(i-1) = "0", that
is when the flag XCAL(i-1) is not set, the processing cycle is ended. As opposed to
this, when the flag XCAL(i-1) = "1", that is, the flag XCAL(i-1) is set, step 302
is proceeded to, where the flag XCAL(i-1) is reset, then step 303 is proceeded to.
[0067] At step 303, the amount of change h of the elapsed time due to the torsional vibration
of the engine drive system (Fig. 8) is calculated based on the following equation:

[0068] That is, as will be understood from Fig. 8, the amount of change h of the elapsed
time becomes one-third of h
o (= Ta(i-1)-Ta(i)). Next, at step 304, Tb'(i-1) expressing only the elapsed time decreased
due to the combustion pressure is calculated based on the following equation:

[0069] That is, when finding Tb'(1) for the No. 1 cylinder #1, h = {Ta(1)-Ta(3)}·60/180
and Tb'(1) = Tb(1)+h. Further, when finding Tb'(3) for the No. 3 cylinder #3, h =
{Ta(3)-Ta(4)}·60/180 and Tb'(3) = Tb(3)+h.
[0070] Next, at step 305, the generated torque DN(i-1) of the cylinder at which the combustion
was performed one time before is calculated based on the following equation:

[0071] This generated torque DN(i-1) expresses the torque after elimination of the effect
due to the torsional vibration of the engine drive system and the effect due to the
variation in spaces of the outer teeth of the rotor 13, therefore this generated torque
DN(i-1) expresses the true torque generated due to the combustion pressure.
[0072] Note that, when finding the drive force GN(i-1) generated by each cylinder, this
drive force GN(i-1) may be calculated based on the following equation:

[0073] When the generated torque DN(i-1) is calculated at step 305, step 306 is proceeded
to, where the amount of fluctuation of the torque DLN(i-1) in a single cycle of the
same cylinder is calculated based on the following equation:

[0074] Here, DN(i-1)j expresses the generated torque of the same cylinder one cycle (720°
crank angle) before for DN(i-1).
[0075] Next, at step 307, whether the amount of fluctuation of the torque DLN(i-1) is positive
or not is judged. When DLN(i-1) ≥ 0, step 309 is jumped to, where the cumulative addition
request flag XCDLN(i-1) showing that the amount of fluctuation of the torque DLN(i-1)
of the cylinder at which the combustion was performed one time before should be cumulatively
added is set (XCDLN(i-1) ← "1"). As opposed to this, when DLN(i-1) < 0, step 308 is
proceeded to, where DLN(i-1) is made zero. Next, step 309 is proceeded to. Note that,
the torque of each cylinder repeatedly rises and falls, so in this case to find the
amount of fluctuation of the torque, it is sufficient to cumulatively add either the
amount of increase of the torque or the amount of decrease of the torque. In the routine
shown in Fig. 17, just the amount of decrease of the torque is cumulatively added,
therefore, as explained above, when DLN(i-1) < 0, DLN(i-1) is made zero.
[0076] Next, the routine for calculating the ratios KTa(i) and KTb(i) will be explained
referring to Fig. 18 and Fig. 19.
[0077] Referring to Fig. 18 and Fig. 19, first, at step 401, whether the supply of fuel
has been stopped during the deceleration operation or not, that is, whether the fuel
has been cut or not. is judged. When the fuel has not been cut, step 415 is proceeded
to, where the cumulative values ΣTa(i) and ΣTb(i) of the elapsed times Ta(i) and Tb(i)
are cleared, then the processing cycle is completed. As opposed to this, when the
fuel has been cut, step 402 is proceeded to, where whether the amplitude AMP of Ta(i)
is larger than a set value B
0 or not is judged. When AMP > B
0, step 415 is proceeded to, while when AMP ≤ B
0, step 403 is proceeded to.
[0078] At step 403 to step 408, KTa(i) is calculated. That is, at step 403, the corresponding
elapsed time Ta(i) for each cylinder is added to the cumulative value ΣTa(i). For
example, Ta(1) is added to ΣTa(1) and Ta(2) is added to ΣTa(2). Next, at step 404,
whether the Ta(i) for each cylinder has been cumulatively added n number of times
each or not is judged. When not cumulatively added n number of times each, step 409
is jumped to, while when cumulatively added n number of times, step 405 is proceeded
to. At step 405, the mean value Ma (= {ΣTa(1)+ΣTa(2)+ΣTa(3)+ΣTa(4)}/4) of the cumulative
values ΣTa(i) of the cylinders is calculated. Next, at step 406, the correction value
α(i) (= Ma/ΣTa(i)) for the cylinders is calculated. Next, at step 407, the ratio KTa(i)
is updated based on the following equation:

[0079] In this way, the ratios KTa(1), KTa(2), KTa(3), and KTa(4) for the cylinders are
calculated. For example, if α(1) has become larger than the KTa(1) used up to then,
one-quarter of the difference between α(1) and KTa(1) {α(1)-KTa(1)} is added to KTa(1),
therefore KTa(1) gradually approaches α(1). At step 407, the KTa(i) for each cylinder
is calculated, then step 408 is proceeded to, where the cumulative value ΣTa(i) for
each cylinder is cleared.
[0080] On the other hand, at step 409 to step 414, KTb(i) is calculated. That is, at step
409, the corresponding elapsed time Tb(i) for each cylinder is added to the cumulative
value ΣTb(i). For example, Tb(1) is added to ΣTb(1) and Tb(2) is added to ΣTb(2).
Next, at step 410, whether the Tb(i) for each cylinder has each been cumulatively
added n number of times or not is judged. When not cumulatively added n number of
times each, the processing cycle is ended, while when cumulatively added n number
of times, step 411 is proceeded to. At step 411, the mean value Mb (= {ΣTb(1)+ΣTb(2)+ΣTb(3)+ΣTb(4)}/4)
of the cumulative values ΣTb(i) of the cylinders is calculated. Next, at step 412,
the correction value β(i) (= Mb/ΣTb(i)) for each cylinder is calculated. Next, at
step 413, the ratio KTb(i) is updated based on the following equation:

[0081] In this way, the ratios KTb(1), KTb(2), KTb(3), and KTb(4) for the cylinders are
calculated. For example, assuming that β(1) has become larger than the KTb(1) used
up to then, one-quarter of the difference between β(1) and KTb(1) {β(1)-KTb(1)} is
added to KTb(1), therefore KTb(1) gradually approaches β(1). When the KTb(i) for each
cylinder is calculated at step 413, step 414 is proceeded to, where the cumulative
value ΣTb(i) for each cylinder is cleared.
[0082] Next, the processing of the counter CDLNIX will be explained referring to Fig. 20.
The count value of the counter CDLNIX is used for the later explained calculation
of the torque fluctuation value.
[0083] Referring to Fig. 20, first, whether the No. 3 cylinder #3 is currently at ATDC 30°
or not is judged. When the No. 3 cylinder #3 is currently not at ATDC 30°, the processing
cycle is ended, while when the No. 3 cylinder #3 is currently at ATDC 30°, step 502
is proceeded to. At step 502, whether the conditions for calculating the torque fluctuation
value stand or not is judged. For example, when the conditions for making the air-fuel
ratio lean do not stand or the amount of change per unit time ΔPM of the absolute
pressure of the surge tank 3 is more than the setting or the amount of change per
unit time ΔN of the engine speed is more than a setting, it is judged that the conditions
for calculating the fluctuation value do not stand, while at other times it is judged
that the conditions for calculating the fluctuation value stand.
[0084] When it is judged at step 502 that the conditions for calculating the fluctuation
value stand, step 508 is proceeded to, where the count value CDLNIX is incremented
by exactly 1. The increment action of this count value CDLNIX is performed every time
the No. 3 cylinder #3 reaches ATDC 30°, that is, every 720° crank angle. Next, at
step 509, the average value of the engine speed N
AVE and the average value PM
AVE of the absolute pressure in the surge tank 3 in the period from when the increment
action of the count value CDLNIX is started to when the count value CDLNIX is cleared
are calculated.
[0085] On the other hand, when it is judged at step 502 that the conditions for calculating
the fluctuation value do not stand, step 503 is proceeded to, where the count value
CDLNIX is cleared. Next, at step 504, the cumulative value DLNI(i) of the torque fluctuation
value DLN(i) for each cylinder (this cumulative value is calculated by the later explained
routine) is cleared. Next, at step 505, the cumulative count value CDLNI(i) for each
cylinder (this cumulative count value is calculated by the later explained routine)
is cleared.
[0086] Next, at step 506, the target torque fluctuation value LVLLFB is calculated. In this
embodiment according to the present invention, as explained later, the air-fuel ratio
is feedback controlled so that the calculated torque fluctuation value becomes this
target torque fluctuation value LVLLFB. This target torque fluctuation value LVLLFB,
as shown by Fig. 22A showing the equivalent fluctuation value by the solid line, becomes
larger the higher the absolute pressure PM in the surge tank 3 and becomes larger
the higher the engine speed N. This target torque fluctuation value LVLLFB is stored
in the ROM 22 in advance in the form of a map shown in Fig. 22B as a function of the
absolute pressure PM in the surge tank 3 and the engine speed N. Next, at step 507,
the torque fluctuation value DLNISM(i) of each cylinder (this torque fluctuation value
is calculated by the later explained routine) is made the target torque fluctuation
value LVLLFB calculated from the map of Fig. 22B.
[0087] Fig. 23 shows the repeatedly executed main routine. In this main routine, first the
routine for calculation of the torque fluctuation value (step 600) is executed. This
routine is shown in Fig. 24 and Fig. 25. Next, the routine for calculation of the
lean limit feedback correction coefficient FLLFB (step 700) is executed. This routine
is shown in Fig. 26 and Fig. 27. Next, when the predetermined crank angle is reached,
the routine for calculation of the injection time (step 800) is executed. This routine
is shown in Fig. 31. Next, the other routines (step 900) are executed.
[0088] Next, the routine for calculation of the torque fluctuation value shown in Fig. 24
and Fig. 25 will be explained.
[0089] Referring to Fig. 24 and Fig. 25, first, at step 601, whether the cumulative addition
request flag XCDLN(i) showing that the amount of fluctuation of the torque DLN(i)
should be cumulatively added is set (XCDLN(i) = "1") or not is judged. When the cumulative
addition request flag XCDLN(i) is not set, step 609 is jumped to, while when the cumulative
addition request flag XCDLN(i)is set, step 602 is proceeded to. At step 602, the cumulative
addition request flag XCDLN(i) is reset. Next, at step 603, the amount of fluctuation
of the torque DLN(i) is added to the cumulative value DLNI(i) of the amount of fluctuation
of the torque. Next, at step 604, the cumulative count value CDLNI(i) is incremented
by exactly 1. That is, for example, at step 601, if the cumulative addition request
flag XCDLN(1) is set for the No. 1 cylinder, this flag XCDLN(1) is reset at step 602,
the cumulative value DLNI(1)of the amount of fluctuation of the torque is calculated
at step 603, and the cumulative count value CDLNI(1) is incremented by exactly 1 at
step 604.
[0090] Next, at step 605, whether the cumulative count value CDLNI(i) has become "8" or
not is judged. When CDLNI(i) is not "8", step 609 is jumped to, while when CDLNI(i)
becomes "8", step 606 is proceeded to, where the torque fluctuation value DLNISM(i)
of each cylinder is calculated from the following equation:

[0091] Next, at step 607, the cumulative value DLNI(i) of the amount of fluctuation of the
torque for each cylinder is cleared, then at step 608, the cumulative count value
CDLNI(i) is reset.
[0092] That is, when there is a difference between the calculated cumulative value DLNI(i)
of the amount of fluctuation of the torque and the previously used amount of fluctuation
of the torque DLNISM(i), the value of the difference {DLNI(i)-DLNISM(i)} multiplied
by 1/4 is added to the amount of fluctuation of the torque DLNISM(i). Therefore, for
example, when the cumulative count value CDLNI(1) for the No. 1 cylinder #1 becomes
"8", at step 606, the torque fluctuation value DLNISM(1) is calculated.
[0093] Next, at step 609, whether the count value CDLNIX calculated at the routine shown
in Fig. 20 has become "8" or not is judged. When CDLNIX is not "8", the processing
cycle is ended, while when CDLNIX becomes "8", step 610 is proceeded to, where the
mean value of the torque fluctuation values DLNISM(i) of the cylinders, that is, the
mean torque fluctuation value DLNISM (= {DLNISM(1)+DLNISM(2)+DLNISM(3)+DLNISM(4)}/4)
is calculated. Next, at step 611, the count value CDLNIX is cleared. In this way,
the value DLNISM expressing the amount of fluctuation of the torque of the engine
is calculated.
[0094] Next, the routine for calculation of FLLFB will be explained referring to Fig. 26
and Fig. 27.
[0095] Referring to Fig. 26 and Fig. 27, first, at step 701, whether the conditions for
updating the lean limit feedback correction coefficient FLLFB stand or not is judged.
For example, at the time of engine warmup or when the operating state of the engine
is not in the learning region enclosed by the broken lines in Fig. 5, it is judged
that the conditions for updating do not stand, while at other times it is judged that
the conditions for updating stand. When the conditions for updating do not stand,
the processing cycle is ended, while when the conditions for updating stand, step
702 is proceeded to.
[0096] At step 702, whether the average value SINPAC of the amplitude AMP of the fluctuation
of the elapsed time Ta(i) exceeds the standard value SINP
0 or not is judged. When SINPAV is smaller than the standard value SINP
0, step 703 is proceeded to, where the rough road counter CRR is cleared. That is,
when SINPAV is smaller than the standard value SINP
0 as in the zone Z in Fig. 29, the rough road counter CRR is maintained at zero.
[0097] Next, at step 704, the target torque fluctuation value LVLLFB is calculated from
the absolute pressure PM in the surge tank 3 and the engine speed N based on the map
shown in Fig. 22B. Next, at step 705 and step 706, the levels of torque fluctuation
LVLH(n) and LVLL(n) shown in the following equations are calculated based on the fluctuation
amount judgement values DH(n) and DL(n) in accordance with the target torque fluctuation
value LVLLFB:

[0098] Here, the fluctuation amount judgement values DH(n) and DL(n) are determined in advance
as shown in Fig. 28A. That is, as will be understood from Fig. 28A, three positive
values are set for DH(n) which are in the relationship of DH(3) > DH(2) > DH(1). Further,
these DH(1), DH(2), and DH(3) gradually increase as the target torque fluctuation
value LVLLFB becomes larger. On the other hand, three negative values are set for
DL(n) which are in the relationship of DL(1) > DL(2) > DL(3). Further, the absolute
values of these DL(1), DL(2), and DL(3) gradually increase as the target torque fluctuation
value LVLLFB becomes larger.
[0099] Assume however that the target torque fluctuation value LVLLFB calculated at step
704 is the value shown by the broken line. In this case, at step 705, the values of
DH(1), DH(2), and DH(3) on the broken line plus the target torque fluctuation value
LVLLFB are made the levels of torque fluctuation LVLH(1), LVLH(2), and LVLH(3) and,
at step 706, the values of DL(1), DL(2), and DL(3) on the broken line plus the target
torque fluctuation value LVLLFB are made the levels of torque fluctuation LVLL(1),
LVLL(2), and LVLL(3).
[0100] On the other hand, the feedback correction values +a
1, +a
2, +a
3, +a
4, -b
1, -b
2, -b
3, and -b
4 are determined in advance for the regions between the levels of torque fluctuation
LVLH(n) and LVLL(n) as shown in Fig. 28B. For example, the feedback correction value
becomes +a
2 for the region where the level of torque fluctuation is between LVLH(1) and LVLH(2).
These feedback correction values are +a
4 > +a
3 > +a
2 > +a
1 and -b
1 > -b
2 > -b
3 > -b
4. The feedback correction values +a
1, +a
2, +a
3, +a
4, -b
1, - b
2, -b
3, and -b
4 shown in Fig. 28B are shown in the corresponding regions of Fig. 28A.
[0101] When the levels of torque fluctuation LVLH(n) and LVLL(n) are calculated at step
705 and step 706, step 707 is proceeded to, where whether the mean torque fluctuation
value DLNISM calculated in the routine for calculation of the torque fluctuation value
shown in Fig. 24 and Fig. 25 is between the levels of torque fluctuation LVLH(n) and
LVLL(n) shown in Fig. 28B or not is judged. Next, at step 708, the corresponding feedback
correction value DLFB is calculated. For example, when the target fluctuation level
LVLLFB is the value shown by the broken line in Fig. 28A and the calculated mean value
DLNISM of the torque fluctuation value is between LVLH(1) and LVLH(2) of Fig. 28B,
that is the deviation of the mean value DLNISM of the torque fluctuation value from
the target fluctuation level LVLLFB is between DH(1)and DH(2)on the broken line in
Fig. 28A, the feedback correction value DLFB is made +a
2.
[0102] Next, at step 709, what lean limit feedback correction coefficient of which learning
region shown in Fig. 5 the lean limit feedback correction coefficient FLLBFij to be
updated based on the average value of the engine speed N
AVE and the average value PM
AVE of the absolute pressure in the surge tank 3 found at step 509 of the processing
routine of CDLNIX shown in Fig. 20 is is determined. Next, at step 710, the lean limit
feedback correction coefficient FLLFBij determined at step 709 is increased by the
feedback correction value DLFB.
[0103] That is, as explained above, when for example, DLNISM > LVLLFB and LVLH(1) < DLNISM
< LVLH(2), the lean limit feedback correction coefficient FLLFBij is increased by
+a
2. As a result, the air-fuel ratio becomes smaller, so the amount of fluctuation of
the torque of each cylinder is reduced. On the other hand, when DLNISM < LVLLFB and
LVLL(1) > DLNISM > LVLL(2), the lean limit feedback correction coefficient FLLFBij
is increased by -b
2. As a result, the air-fuel ratio becomes large, so the amount of fluctuation of the
torque of the cylinders is increased. In this way the air-fuel ratio at the time of
lean operation is controlled so that the mean value DLNISM of the amount of fluctuation
of the torque of all of the cylinders becomes the target torque fluctuation value
LVLLFB.
[0104] Note that, when the conditions for calculation of the torque fluctuation value in
the routine shown in Fig. 20 do not stand, at step 507, the DLNISM(i)is made LVLLFB
and therefore the mean value DLNISM of the torque fluctuation value is also made the
target torque fluctuation value LVLLFB. Therefore, at this time, the lean limit feedback
correction coefficient FLLFBij is not updated.
[0105] When the action for updating the lean limit feedback correction coefficient FLLFBij
is completed at step 710, step 711 is proceeded to, where the learning count value
CFLLFB is incremented by exactly 1. Next, at step 712, whether the rough road count
value CRR is zero and the learning count value CFLLFB has reached a constant value
n or not is judged When CRR is not 0 or CFLLFB is not n, the processing cycle ends.
As opposed to this, when CRR = 0 and CFLLFB = n, step 713 is proceeded to, where the
learning value KBUij of the lean limit feedback correction coefficient FLLFBij is
calculated based on the following equation:

[0106] Here, m is a positive integer. The learning value KBUij is decided on for each learning
region corresponding to each learning region of FLLFBij shown in Fig. 5 as shown in
Fig. 30. As will be understood from the above, when there is a difference between
FLLFBij and KBUij, KBUij is added to the value of this difference multiplied by 1/m,
therefore the learning value KBUij changes to gradually approach FLLFBij. When the
learning value KBUij is calculated at step 713, step 714 is proceeded to, where the
learning counter CFLLFB is cleared. That is, as shown by the zone Z of Fig. 29, each
time the learning count value CFLLB reaches n, the corresponding learning value KBUij
is updated based on the lean limit feedback correction coefficient FLLBFij and then
the learning counter CFLLFB is cleared.
[0107] On the other hand, when it is judged at step 702 that SINPAV has exceeded the standard
value SINP
0, step 715 is proceeded to, where the rough road count value CRR is incremented by
exactly 1. Next, at step 716, the learning counter CFLLFB is cleared. Next, at step
717, whether a predetermined time TC has elapsed from the start of the countup action
of the rough road counter CRR or not is judged. When the predetermined time TC has
not elapsed, step 704 is proceeded to, therefore the action for updating the lean
limit feedback correction coefficient FLLBFij is performed. At this time, the mean
torque fluctuation value DLNISM becomes larger, so as shown in Fig. 29 FLLFBij increases.
Note that the action for updating the learning value KBUij is stopped at this time.
[0108] Next, when the predetermined time TC elapses, step 718 is proceeded to, where whether
the engine has operated for eight cycles is judged. When eight cycles have elapsed,
step 719 is proceeded to, where the lean limit feedback correction coefficient FLLFBij
is decreased by exactly the predetermined value α. Next, at step 720, whether FLFBiji
has become smaller than the corresponding learning value KBUij or not is judged. When
FLLFBij < KBUij, step 721 is proceeded to, where FLLFBij is made KBUij. That is, as
shown in Fig. 29, when a predetermined time TC elapses from when SINPAV1 or SINPAV2
exceeds the standard SINP
0, the lean limit feedback correction coefficient FLLFBij is gradually returned to
the learning value KBUij.
[0109] Since the mean torque fluctuation value DLNISM becomes larger when the vehicle is
driving over a rough road, the lean limit feedback correction coefficient FLLFBij
becomes larger as shown in Fig. 29. As a result, the air-fuel ratio moves to the rich
side and therefore the amount of NOx generated increases. However, torque fluctuation
occurs at this time due to the driving over the rough road and not due to the fluctuation
of the combustion pressure. From the standpoint of the combustion, the optimal lean
limit feedback correction coefficient FLLFBij at this time substantially matches with
the learning value KBUij. Therefore, to suppress the generation of NOx and obtain
a good combustion, FLLFBij is gradually returned to the learning value KBUij. Note
that if FLLFBij is returned to KBUij when the vehicle is driving over a rough road
in this way, there is the advantage that the lean limit feedback correction coefficient
FLLFBij will not become disturbed when passing from the rough road to a smooth road.
[0110] Next, the routine for calculation of the fuel injection time will be explained with
reference to Fig. 31.
[0111] Referring to Fig. 31, first, at step 801, the basic fuel injection time TP is calculated
from the map shown in Fig. 2. Next, at step 802, whether the operating state is one
in which a lean operation should be performed or not is judged. When the operating
state is one in which a lean operation should be performed, step 803 is proceeded
to, where the value of the stoichiometric air-fuel ratio feedback correction coefficient
FAF is fixed at 1.0. Next, at step 804, the lean correction coefficient FLEAN is calculated
from the map shown in Fig. 4, then, at step 805, the lean limit feedback correction
coefficient FLLFB is read from the map shown in Fig. 5. Next, at step 809, the fuel
injection time TAU is calculated from the following equation:

[0112] As opposed to this, when it is judged at step 802 that the operating state is not
one where a lean operation should be performed, that is, when the air-fuel ratio should
be made the stoichiometric air-fuel ratio, step 806 is proceeded to, where the lean
correction coefficient FLEAN is fixed at 1.0, then, at step 807, the lean limit feedback
correction coefficient FLLFB is fixed at 1.0. Next, at step 808, the stoichiometric
air-fuel ratio feedback correction coefficient FAF is controlled based on the output
signal of the air-fuel ratio sensor 17 so that the air-fuel ratio becomes the stoichiometric
air-fuel ratio. Next, step 809 is proceeded to, where the fuel injection time TAU
is calculated.
[0113] In the embodiment explained above, when the average value SINPAV of the amplitude
of the fluctuation of Ta(i) exceeds a predetermined standard value SINP
0, it is judged that the vehicle is driving over a rough road. However, this standard
value SINP
0 is preferably made a function of the amount of fluctuation of the torque, for example,
the mean torque fluctuation value DLNISM. This will be explained next with reference
to Fig. 32.
[0114] Fig. 32 shows the relationship between the average value SINPAV of the amplitude
of fluctuation of Ta(i) and the mean torque fluctuation value DLNISM. The region for
judgement that the vehicle is driving over a rough road in Fig. 32 is shown by the
hatching SS. That is, the state where the vehicle is currently driving over a smooth
road and the mean torque fluctuation value DLNISM is maintained at the target torque
fluctuation value LVLLFB is shown by the point P
1 in Fig. 32. If the combustion pressure fluctuates in the state where the vehicle
is driving over a smooth road in this way, the fluctuation of (ωa
2-ωb
2) will become larger and the fluctuation of Ta(i) will become greater, so the mean
torque fluctuation value DLNISM will become larger and the average value of the amplitude
SINPAV will become larger. At this time, the mean torque fluctuation value DLNISM
will move from the point P
1 to the point P
2 in Fig. 32. That is, when the combustion pressure fluctuates under constant road
conditions, the mean torque fluctuation value DLNISM will change along with the broken
line Q
12 in Fig. 32.
[0115] On the other hand, if the combustion pressure does not fluctuate but the degree of
roughness of the road becomes greater, the average value of the amplitude SINPAV will
become larger along with this. If the average value of amplitude SINPAV becomes larger,
the amount of fluctuation of the torque will also increase somewhat accordingly, so
the mean torque fluctuation value DLNISM will become somewhat larger and therefore
at this time the mean torque fluctuation value DLNISM will move from the point P
1 to the point P
3 in Fig. 32. That is, if the degree of roughness of the road becomes larger under
the same conditions of fluctuation of combustion, the mean torque fluctuation value
DLNISM will change along the solid line Q
13 of Fig. 32. Note that in this case, the point P
3 becomes the standard value SINP
0 where it is judged that the vehicle is driving over a rough road.
[0116] On the other hand, if the degree of roughness of the road becomes larger at the time
of the mean torque fluctuation value DLNISM shown at the point P
2 in Fig. 32, the mean torque fluctuation value DLNISM will change along the solid
line Q
24 parallel to the solid line Q
13. Since the length of the solid line Q
24 and the length of the solid line Q
13 up until the road is judged to be rough should become equal, the point P
4 becomes positioned on the line passing through the point P3 and parallel to the broken
line Q
12. That is, the standard value SINP
0 serving as the standard fo rthe judgement that the vehicle is driving over a rough
road is positioned on the line parallel to the broken line Q
12 and therefore the standard value SINP
0 becomes larger than greater the mean torque fluctuation value DLNISM. If the point
determined by DLNISM and SINPAV passes the standard value SINP
0, it is judged that the vehicle is driving over a rough road and therefore, as explained
above, the hatching region SS of Fig. 32 shows the region where the vehicle is judged
to be driving over a rough road.
[0117] On the other hand, Fig. 33 shows another embodiment of the fluctuation value judgement
values DH(n) and DL(n) shown in Fig. 28A for moving the air-fuel ratio to the rich
side when the vehicle is traveling over a rough road. In this embodiment, the fluctuation
value judgement values DL(1), DH(2), and DH(3) at the side where the mean torque fluctuation
value DLNISM becomes smaller than the target torque fluctuation value LVLLFB are maintained
constant regardless of the target torque fluctuation value LVLLFB and the amplitude
average value SINPAVC.
[0118] As opposed to this, the fluctuation value judgement values DH(1), DH(2), and DH(3)
at the side where the mean torque fluctuation value DLNISM becomes larger than the
target torque fluctuation value LVLLFB are straight lines having the same inclination
as the solid lines Q
13 and Q
24 shown in Fig. 32. That is, the fluctuation value judgement values DH(n) gradually
increase as the amplitude average value SINPAV becomes larger. Note that the hatching
region SS in Fig. 33 shows the region where the vehicle is judged to be driving over
a rough road in the same way as Fig. 32.
[0119] That is, as explained above, the fluctuation value judgement values DH(n) form the
same inclinations as the solid lines Q
13 and Q
24 of Fig. 32, therefore when the degree of roughness of the road increases in a state
where the amount of fluctuation of the combustion pressure does not change, the mean
torque fluctuation value DLNISM will change along with the fluctuation value judgement
value DN(n), so the feedback correction values +a
1, +a
2, +a
3, and +a
4 will not change. For example, assume the current feedback correction value is +a
2. If the degree of roughness of the road increases from this state without a change
in the amount of fluctuation of the combustion pressure, the amount of torque fluctuation
will increase at this time, but the feedback correction value will be maintained as
is at +a
2 without increasing to +a
3. Therefore, even if the vehicle drives over a rough road, the air-fuel ratio will
not move to the rich side and the air-fuel ratio will be maintained at the optimum
air-fuel ratio determined from the fluctuation of the combustion pressure.
[0120] Fig. 34 and Fig. 35 show the routine for calculation of the lean limit feedback correction
coefficient FLLFB in the case of use of the method of judgement of driving on a rough
road shown in Fig 32 and the fluctuation value judgement values DH(n) shown in Fig.
33. The routine for calculation of FLLFB differs from the routine shown in Fig. 26
and Fig. 27 only at step 702'. The rest of it is the same as the routine shown in
Fig. 26 and Fig. 27. That is, in the routine shown in Fig. 34 and Fig. 35, at step
702', whether the point determined from the mean torque fluctuation value DLNISM and
the amplitude average value SINPAV is within the region SS of Fig. 32 is judged. When
the point determined by the mean torque fluctuation value DINISM and the amplitude
average value SINPAV is not within the region SS, the torque fluctuation levels LVLH(n)
and LVLL(n) are calculated at step 705 and step 706 from the fluctuation value judgement
values DH(n) and DL(n) shown in Fig. 33 and the target torque fluctuation value LVLLFB,
then at steps 707 and 708, the feedback correction value DLFB is determined from the
feedback correction values +a
1, +a
2, +a
3, +a
4, - b
1, -b
2, -b
3, and -b
4 shown in Fig. 33.
[0121] Fig. 36 to Fig. 51 show the case of application of the present invention to an engine
provided with a torque converter provided with a lockup mechanism.
[0122] Referring to Fig. 36, in this embodiment, the crankshaft 12 is connected to an automatic
transmission 30. The output shaft 31 of the automatic transmission 30 is connected
to the drive wheels. The automatic transmission 30 is provided with a torque converter
32. In this torque converter 32 is provided a lockup mechanism 33. That is, the torque
converter 32 is provided with a pump cover 34 which is connected to the crankshaft
12 and rotates together with the crankshaft 12, a pump impeller 35 which is supported
by the pump cover 34, a turbine runner 37 which is attached to an input shaft 36 of
the automatic transmission 30, and a stator 37a. The rotational motion of the crankshaft
12 is transmitted through the pump cover 34, pump impeller 35, and turbine runner
37 to the input shaft 36.
[0123] On the other hand, the lockup mechanism 33 is provided with a lockup clutch plate
38 which is attached to the input shaft 36 in a manner movable along its axial direction
and rotates together with the input shaft 36. Usually, that is, when the lockup mechanism
is not activated, pressurized oil is supplied in the chamber 39 between the lockup
clutch plate 38 and the pump cover 34 through an oil passage in the input shaft 36,
then the pressurized oil flowing out from this chamber 39 is fed into a chamber 40
around the pump impeller 35 and turbine runner 37, then is exhausted through the oil
passage in the input shaft 36. At this time, there is almost no pressure difference
between the chambers 39 and 40 at the two sides of the lockup clutch plate 38, so
the lockup clutch plate 38 is separate from the inner wall of the pump cover 34 and
therefore at this time the rotational force of the crankshaft 12 is transmitted through
the pump cover 34, pump impeller 35, and turbine runner 37 to the input shaft 36.
[0124] On the other hand, when the lockup mechanism is to be activated, pressurized oil
is supplied into the chamber 40 through the oil passage in the input shaft 36. The
oil in the chamber 39 is exhausted through the oil passage in the input shaft 36.
At this time, the pressure in the chamber 40 becomes higher than even the pressure
in the chamber 39, so the lockup clutch plate 38 is pressed on the inner circumference
of the pump cover 34 and the crankshaft 12 and input shaft 36 rotate at the same speed
in a directly connected state. The supply of the oil into the chambers 39 and 40,
that is, the activation and deactivation of the lockup mechanism 33, is controlled
by a control value provided in the automatic transmission 30. This control value is
controlled based on an output signal of the electronic control unit 20. Further, a
plurality of clutches are provided in the automatic transmission for the speed change
operation. These clutches are also controlled based on an output signal of the electronic
control unit 20.
[0125] In the automatic transmission 30 are also provided a rotational speed sensor 41 which
generates an output pulse expressing the rotational speed of the input shaft 36, that
is, the turbine runner 37, and a rotational speed sensor 42 which generates an output
pulse expressing the rotational speed of the output shaft 31. The output pulses of
these rotational speed sensors 41 and 42 are input to an input port 26.
[0126] In Fig. 36, if the lockup mechanism 33 is on, that is, if the crankshaft 12 and the
input shaft 36 of the automatic transmission 30 are directly connected, the external
force acting on the drive wheels will be applied directly to the crankshaft 12 through
the automatic transmission 30. As a result, if the engine drive system experiences
a large amplitude torsional vibration due to the vehicle driving over a rough road,
the amplitude AMP (Fig. 10) of Ta(i) will become extremely large. As explained above,
however, when the amplitude AMP becomes large, the drive force or torque generated
by the cylinder giving the maximum or minimum Ta(i) will not be able to be accurately
detected.
[0127] Further, even at a cylinder where Ta(i) changes sharply from the Ta(i) of the cylinder
performing combustion one time earlier, the value of h will deviate from the actual
value and therefore the drive force and torque generated at that cylinder will not
be able to be accurately detected. Therefore, in the embodiment shown from Fig. 36
to Fig. 51, when the amplitude AMP is large, the drive force or torque is not sought
for the cylinder giving the maximum or minimum Ta(i) and, further, the drive force
or torque is not sought for the cylinder where Ta(i) changes sharply from the Ta(i)
of the cylinder performing combustion one time earlier.
[0128] Further, in this embodiment as well, when the lockup mechanism 33 is on, the average
value of the amplitude AMP is found and when the average value of the amplitude AMP
exceeds a certain value for more than a predetermined period, the correction of the
air-fuel ratio is prohibited.
[0129] On the other hand, in this embodiment, the amount of fluctuation of the rotational
speed of the turbine runner 37 of the torque converter 32 is detected from the output
pulse of the rotational speed sensor 41. When the lockup mechanism 33 is off, if the
average value of the amount of fluctuation of the rotational speed of the turbine
runner 32 exceeds a certain value for more than a predetermined period, it is judged
that the vehicle is driving over a rough road and the correction of the air-fuel ratio
is prohibited.
[0130] That is, when the vehicle is driving over a rough road, the external force acting
on the drive wheels acts directly on the turbine runner 37 of the torque converter
32, so the rotational speed of the turbine runner 37 fluctuates considerably. On the
other hand, if the lockup mechanism 33 is off at this time, the fluctuation in the
rotational speed of the turbine runner 37 is transmitted to the crankshaft 12 through
the pump impeller 35, so the rotational speed of the crankshaft 12 does not fluctuate
by a large extent. At this time, the rotational speed of the crankshaft 12 fluctuates
by a small extent. On the other hand, the crankshaft 12 also fluctuates in rotational
speed due to the fluctuation in the combustion pressure, therefore it is not known
whether the fluctuation in the rotational speed of the crankshaft 12 is due to the
vehicle driving over a rough road or the fluctuation in the combustion pressure.
[0131] However, when the vehicle is driving on a rough road, the rotational speed of the
turbine runner 37 fluctuates by a large degree even when the fluctuation of the rotational
speed caused at the crankshaft 12 is small. On the other hand, even if the crankshaft
12 fluctuates in speed by a large extent due to the fluctuation of the combustion
pressure, this fluctuation of the rotational speed of the crankshaft 12 is transmitted
to the turbine runner 37 through the pump impeller 35, so the amount of fluctuation
of the rotational speed of the turbine runner 12 becomes smaller. That is, the rotational
speed of the turbine runner 37 fluctuates by a large degree only when the vehicle
is driving on a rough road, therefore it is possible to judge that the vehicle is
driving on a rough road when the fluctuation in the rotational speed of the turbine
runner 37 becomes large. Accordingly, in this embodiment, when the lockup mechanism
22 is off, if the average value of the amount of fluctuation of the rotational speed
of the turbine runner 32 exceeds a certain value for more than a predetermined time,
it is judged that the vehicle is driving on a rough road and the correction of the
air-fuel ratio is prohibited.
[0132] On the other hand, when the lockup mechanism 33 is on, as explained above, if the
vehicle is driving on a rough road, the rotational speed of the crankshaft 12 will
fluctuate considerably and therefore whether the vehicle is driving on a rough road
or not at this time can be judged from the fluctuation of the rotational speed of
the crankshaft 12. However, when the rotational speed of the crankshaft 12 fluctuates
slightly due to the effect of the road surface, it cannot be judged if the fluctuation
in the rotational speed of the crankshaft 12 is due to the road surface or due to
fluctuations in the combustion pressure.
[0133] Next, the routines for finding the torque generated at each cylinder will be explained
referring to Fig. 37 to Fig. 41.
[0134] Fig. 37 shows an interruption routine performed at every 30° crank angle. Referring
to Fig. 37, first the routine for calculating the elapsed times Ta(i) and Tb(i) is
proceeded to (step 1100). This routine is shown in the previously explained Fig. 12.
Next, the routine for checking whether the calculation of the torque is permitted
(step 1300) is proceeded to. This routine is shown in Fig. 41. Next, the routine for
calculating the ratios KTa(i) and KTb(i) is proceeded to (step 1400). This routine
is shown in the previously explained Fig. 18 and Fig. 19. Next, the routine for processing
of the counter CDLNIX used for calculation of the torque fluctuation value is proceeded
to (step 1500). This routine is shown in the previously explained Fig. 20.
[0135] Next, an explanation will be made, referring to Fig. 16, of the routine for checking
for permission for calculation of the torque shown from Fig. 38 to Fig. 40. This routine
is provided to prohibit the calculation of the torque for a specific cylinder when
the amplitude (Fig. 10) of the fluctuation of Ta(i) becomes large due to the vehicle
driving over a rough road and for finding the mean value of the amplitude AMP serving
as the standard for judgement for prohibiting the correction of the air-fuel ratio.
[0136] That is, referring to Fig. 38 to Fig. 40, first, at step 1201, whether one of the
cylinders is currently at ATDC 30° or not is judged. When none of the cylinders is
currently at ATDC 30°, the processing cycle is ended, while when one of the cylinders
is at ATDC 30°, step 1202 is proceeded to.
[0137] At step 1202 to step 1204, the maximum elapsed time T30max when the elapsed time
Ta(i) increases and then decreases is calculated. That is, at step 1202, whether the
Ta(i) calculated at the routine shown in Fig. 12 is larger than the maximum elapsed
time T30max or not is judged. When T30max > Ta(i), step 1205 is jumped to, while when
T30max ≤ Ta(i), step 1203 is proceeded to, where Ta(i) is made T30max. Next, at step
1204, the increase flag XMXREC showing that Ta(i) is increasing is set (XMXREC ← "1"),
then step 1205 is proceeded to.
[0138] A step 1205 to step 1207, the minimum elapsed time T30min when the elapsed time Ta(i)
decreases and then increases is calculated. That is, at step 1205, whether the Ta(i)
calculated by the routine shown in Fig. 12 is smaller than the calculated minimum
elapsed time T30min or not is judged. When T30min < Ta(i), step 1208 is jumped to,
while when T30min ≥ Ta(i), step 1206 is proceeded to, where Ta(i) is made T30min.
Next, at step 1207, the decrease flag XMNREC showing that Ta(i) has decreased is set
(XMNREC ← "1"), then step 1208 is proceeded to.
[0139] At step 1208 to step 1217, the amplitude AMP of the fluctuation of Ta(i) (Fig. 10)
is calculated. That is, at step 1208, whether T30max > Ta(i) and XMXREC = "1" or not
is judged. When T30max ≤ Ta(i) or the increase flag XMXREC is reset (XMXREC = "0"),
step 1213 is jumped to, while when T30max > Ta(i) and XMXREC = "1", step 1209 is proceeded
to.
[0140] That is, as shown in Fig. 16, assume that at the time t
1, the elapsed time Ta(1) of the No. 1 cylinder #1 has become maximum. In this case,
in the interruption routine performed at the time t
1, step 1202 to step 1203 is proceeded to, where the Ta(1) is made T30max, then, at
step 1204, the increase flag XMXREC is set. On the other hand, in the interruption
routine performed at the time t
2 of Fig. 16, step 1202 to step 1205 is jumped to. At this time, since it is judged
at step 1208 that T30max > Ta(3) and XMXREC = "1", step 1209 is proceeded to. That
is, step 1209 is proceeded to at the time t
2 when the elapsed time Ta(i) starts to decrease.
[0141] At step 1209, the maximum elapsed time T30max is made TMXREC. Next, at step 1210,
the minimum elapsed time TMNREC (found at the later explained step 1216)is subtracted
from the maximum elapsed time TMXREC so as to calculate the amplitude AMP of the fluctuation
of Ta(i). Next, at step 1211, the initial value of the minimum elapsed time T30min
is made Ta(i). Next, at step 1212, the increase flag XMXREC is reset (XMXREC ← "0").
Next, at step 1213, whether the amplitude AMP is larger than the setting A
0 or not is judged. When AMP < A
0, step 1215 is jumped to. As opposed to this, when AMP ≥ A
0, step 1214 is proceeded to, where the torque calculation prohibition flag XNOCAL
is set (XNOCAL ←

1"). That is, in the interruption routine performed at the time t
2 in Fig. 16, the torque generated at the No. 1 cylinder #1 is calculated as explained
above Therefore, in this interruption routine, when AMP ≥ A
0 and the torque calculation prohibition flag XNOCAL is set, the calculation of the
torque generated at the No. 1 cylinder #1, that is, the calculation of the torque
generated at the cylinder giving the maximum Ta(i) is prohibited.
[0142] From step 1215 to step 1221, when the amplitude AMP of the fluctuation of Ta(i) exceeds
the setting A
0, the prohibition flag for prohibiting the calculation of the torque of the cylinder
giving the minimum Ta(i) is set. That is, at step 1215, whether T30min < Ta(i) and
XMNREC = 1 or not is judged. When T30min ≥ Ta(i) or the decrease flag XMNREC is reset
(XMNREC =

0"), step 1222 is jumped to, while when T30min < Ta(i) and XMNREC =

1", step 1216 is proceeded to.
[0143] That is, as shown in Fig. 16, at the time t
3, the elapsed time Ta(1) of the No. 1 cylinder #1 is considered to have become the
minimum. In this case, at the interruption routine performed at the time t
3, step 1205 to step 1206 is proceeded to, where the Ta(1) is made T30min, then at
step 1207, the decrease flag XMNREC is set. On the other hand, the interruption routine
performed at the time t
4 of Fig. 16 jumps from step 1205 to step 1208. At this time, since it is judged at
step 1215 that T30min < Ta(3) and XMNREC = "1", step 1216 is proceeded to. That is,
step 1216 is proceeded to at the time t
4 where the elapsed time Ta(i) starts to be increased.
[0144] At step 1216, the minimum elapsed time T30min is made TMNREC. Next, at step 1217,
the minimum elapsed time TMNREC is subtracted from the maximum elapsed time TMXREC
so as to calculate the amplitude AMP of the fluctuation of Ta(i). Next, at step 1218,
the initial value of the maximum elapsed time T30max is made Ta(i). Next, at step
1219, the decrease flag XMNREC is reset (XMNREC ← "0"). Next, at step 1220, whether
the amplitude AMP is larger than the setting A
0 or not is judged. When AMP < A
0, step 1222 is jumped to. As opposed to this, when AMP ≥ A
0, step 1221 is proceeded to, where the torque calculation prohibition flag XNOCAL
is set (XNOCAL ←

1"). That is, in the interruption routine performed at the time t
4 in Fig. 16, the torque generated at the No. 1 cylinder #1 is calculated as explained
above Therefore, in this interruption routine, when AMP ≥ A
0 and the torque calculation prohibition flag XNOCAL is set, the calculation of the
torque generated at the No. 1 cylinder #1, that is, the calculation of the torque
generated at the cylinder giving the minimum Ta(i) is prohibited.
[0145] In step 1222 to step 1223, calculation of the torque for cylinders where the elapsed
time Ta(i) sharply changes is prohibited. That is, at step 1222, whether |Ta(i-2)-Ta(i-1)|
is larger than K
0·|ta(i-1)-Ta(i)| or not is judged. Here, the constant K
0 is a value of 3.0 to 4.0 or so. When it is judged at step 1222 that |Ta(i-2)-Ta(i-1)|
< K
0·|ta(i-1)-Ta(i)|, step 1224 is jumped to, while when [Ta(i-2)-Ta(i-1)| ≥ K
0·|ta(i-1)-Ta(i)|, step 1223 is proceeded to, where the torque calculation prohibition
flag XNOCAL is set. Next, step 1224 is proceeded to.
[0146] That is, when using the interruption routine at the time t
3 of Fig. 16, whether |Ta(4)-Ta(2)| is larger than K
0·|Ta(2)-Ta(1)| or not is judged. When as shown in Fig. 16 Ta(2) changes sharply from
Ta(4), |Ta(4)-Ta(2)| becomes larger than K
0·|Ta(2)-Ta(1)|. At this time, the torque calculation prohibition flag is set and the
calculation of the torque of the No. 2 cylinder #2 where the elapsed time Ta(i) has
changed sharply is prohibited.
[0147] At step 1224, the amplitude AMP is added to cumulative value ΣAMP of the amplitude.
Next, at step 1225, whether the amplitude AMP has been cumulatively added n number
of times or not is judged. When cumulatively added n number of times, step 1226 is
proceeded to, where the average value SINPAV1 (=C
1·ΣAMP/n) of the amplitude serving as the criteria for judgement of prohibition of
the correction of the air-fuel ratio is calculated. Here, C
1 is a constant. Next, at step 1229, ΣAMP is cleared.
[0148] Next, the torque calculation routine shown in Fig. 41 will be explained. Referring
to Fig. 41, first, at step 1301, whether the flag XCAL(i-1) of the No. (i-1) cylinder
where the combustion was performed one time before showing that the generated torque
should be calculated is set or not is judged. When the flag XCAL(i-1) = "0", that
is, when the flag XCAL(i-1) is not set, the processing cycle is ended. As opposed
to this, when the flag XCAL(i-1) = "1", that is, when the flag XCAL(i-1) is set, step
1302 is proceeded to, where the flag XCAL(i-1) is reset, then step 1303 is proceeded
to.
[0149] At step 1303, whether the prohibition flag XNOCAL prohibiting the calculation of
the torque for the cylinder at which the combustion was performed one time before
is reset (XNOCAL = "0") or not is judged. When this prohibition flag is set (XNOCAL
= "1"), step 1311 is proceeded to, where the prohibition flag XNOCAL is reset. As
opposed to this, when the prohibition flag is reset, step 1304 is proceeded to. That
is, only when the flag XCAL is set and prohibition flag XNOCAL is reset is step 1304
proceeded to.
[0150] At step 1304, the amount of fluctuation h of the elapsed time (Fig. 8) due to the
torsional vibration of the engine drive system is calculated based on the following
equation:

[0151] That is, as will be understood from Fig. 8, the amount of fluctuation h of the elapsed
time becomes one-third of h
0 (= Ta(i-1)-Ta(i)). Next, at step 1305, Tb'(i-1) expressing only the elapsed time
due to the combustion pressure is calculated from the following equation:

[0152] That is, when finding Tb'(1) for the No. 1 cylinder #1, h = {Ta(1)-Ta(3)}·60/180
and Tb'(1) = Tb(1)+h. Further, when finding Tb'(3) for the No. 3 cylinder #3, h =
{Ta(3)-Ta(4)}·60/180 and Tb'(3) = Tb(3)+h.
[0153] Next, at step 306, the generated torque DN(i-1) of the cylinder at which the combustion
was performed one time before is calculated based on the following equation:

[0154] This generated torque DN(i-1) expresses the torque after elimination of the effect
of the torsional vibration of the engine drive system and the effect of the variation
in spaces between the outer teeth of the rotor 13 and therefore expresses the true
torque generated due to the combustion pressure.
[0155] Note that, as explained above, when finding the drive force GN(i-1) generated by
a cylinder, this drive force GN(i-1) may be calculated based on the following equation:

[0156] At step 1306, the generated torque DN(i-1) is calculated, then step 1307 is proceeded
to, where the amount of fluctuation of the torque DLN(i-1) in one cycle of the same
cylinder is calculated based on the following equation:

[0157] Here, DN(i-1)j expresses the generated torque of the same cylinder one cycle (720°
crank angle) before for DN(i-1).
[0158] Next, at step 1308, whether the amount of fluctuation of the torque DLN(i-1) is positive
or not is judged. When DLN(i-1) ≥ 0, step 1310 is jumped to, where the cumulative
addition request flag XCDLN(i-1) of the cylinder at which the combustion was performed
one time before showing that the amount of fluctuation of the torque DLN(i-1) should
be cumulatively added is set (XCDLN(i-1) ← "1"). As opposed to this, when DLN(i-1)
< 0, step 1309 is proceeded to, where the DLN(i-1) is made zero, then step 1310 is
proceeded to.
[0159] As explained above, however, when the lockup mechanism 33 is off, whether the correction
of the air-fuel ratio is prohibited is judged based on the fluctuation in the rotational
speed of the turbine runner 37 of the torque converter 32. Next, this will be explained
with reference to Fig. 42A to Fig. 47.
[0160] That is, in the embodiment shown in Fig. 36, 16 projections are formed at equiangular
distances on the input shaft 36 of the automatic transmission 30. A rotational speed
sensor 41 is provided so as to be able to face these projections. The rotational speed
sensor 41 generates a pulse each time it faces a projection, therefore the rotational
speed sensor 41 generates a pulse every time the input shaft 36, that is, the turbine
runner 37, turns 22.5 degrees.
[0161] On the other hand, when the vehicle is driving on a rough road, the engine drive
system experiences torsional vibration of a certain period determined by the natural
frequency of the engine drive system. It has been confirmed by experiments that at
this time, to find the amount of fluctuation of the rotational speed caused by the
torsional vibration, it is preferable to detect the rotational speed of the turbine
runner 37 from the time interval of generation of the output pulses by the rotational
speed sensor 41 about eight to 10 times during one period of the torsional vibration.
[0162] That is, if the number of times of detection of the speed of the turbine runner 37
in one period of the torsional vibration is too small, it is clear that finding the
fluctuation of the rotational speed is difficult. On the other hand, the turbine runner
37 fluctuates in speed constantly at a short period. This fluctuation in speed is
superposed over the fluctuation in speed of the turbine runner 37 caused by driving
on a rough road. In this case, if the number of times of detection of the speed of
the turbine runner 37 during one period of the torsional vibration is too great, the
rotational speed detected for the turbine runner 37 will change by a large degree
due to the superposition of the short period fluctuation in speed caused at the turbine
runner 37 at all times and as a result it will become impossible to accurately detect
the rotational speed of the turbine runner 37.
[0163] Therefore, in this embodiment, the frequency of sampling for calculation of the speed
of the output pulse of the rotational speed sensor 41 is changed in accordance with
the rotational speed of the turbine runner 17 so as to enable detection of the rotational
speed of the turbine runner 17 from eight to 10 times during one period of the torsional
vibration. That is, in Fig. 42A and Fig. 42B, P shows the time of generation of the
output pulse of the rotational speed sensor 41, while S shows the timing of sampling
of the output pulse for calculation of speed. Fig. 42A shows the time when the rotational
speed of the turbine runner 37 is low, while Fig. 42B shows the time when the rotational
speed of the turbine runner 37 is high. As shown in Fig. 42A, when the rotational
speed of the turbine runner 37 is low, the output pulse is sampled for calculation
of the speed each time four output pulses are output and the elapsed times NTj-4,
NTj-3, Ntj-2, NTj-1, and NTj are calculated from the previous sampling to the current
sampling each time sampling is performed. As opposed to this, as shown in Fig. 42B,
when the rotational speed of the turbine runner 37 is high, the output pulse is sampled
for calculation of the speed each time eight output pulses are output and the elapsed
times NTj-2, NTj-1, and NTj are calculated from the previous sampling to the current
sampling each time sampling is performed. Therefore, it will be understood that when
the rotational speed of the turbine runner 37 becomes higher, the sampling frequency
of the output pulses becomes lower.
[0164] Next, an explanation will be given of the interruption routine shown from Fig. 43
to Fig. 46. Note that this interruption routine is executed each time the rotational
speed sensor 41 generates an output pulse.
[0165] Referring to Fig. 43 to Fig. 46, first, at step 1550, the average rotational speed
NT
AV of the turbine runner 37 is calculated from the output pulse of the rotational speed
sensor 41. Next, at step 1551, whether the average rotational speed NT
AV of the turbine runner 37 is lower than a predetermined speed setting, for example,
1800 rpm, or not is judged. When NT
AV < 1800 rpm, step 1552 is proceeded to, where whether the output pulse of the rotational
speed sensor 41 has been generated four times is judged. When the output pulse has
not been generated four times, step 1563 is jumped to, while when the output pulse
has been generated four times, step 1553 is proceeded to.
[0166] At step 1553, the elapsed time NTj from when the output pulse was generated four
times before to when the current output pulse is generated. Next, at step 1554, the
elapsed time NT360j (=Ntj+NTj-1+NTj-2+NTj-3) required for the turbine runner 37 to
rotate 360 degrees up to now is calculated. Next, at step 1555, NTj-2 is made NTj-3,
NTj-1 is made NTj-2, and NTj is made Ntj-1. Next, at step 1556, the previously calculated
elapsed time NT360j-1 is subtracted from the currently calculated elapsed time NT360j
to calculate the amount of fluctuation DLNT of the elapsed time. Note that the relationship
between NT360j-1 and NT360j is shown in Fig. 42A. By calculating DLNT in this way,
it is possible to cancel out the error in the interval between output pulses. Next,
at step 1562, NT360j is made NT360j-1, then step 1563 is proceeded to.
[0167] On the other hand, when it is judged at step 1551 that NT
AV ≥ 1800 rpm, step 1557 is proceeded to, where whether the output pulse of the rotational
speed sensor 41 has been generated eight times or not is judged. When the output pulse
has not been generated eight times, step 563 is jumped to, while when the output pulse
has been generated eight times, step 1558 is proceeded to. At step 1558, the elapsed
time Ntj fromj the generatoin of the output pulse eight times before to the currently
generated output pulse is caculated. Next, at step 1559, the elapsed time NT360j (=NTj+NTj-1)
required for the turbine runner 37 to turn by 360 degrees up to now is calculated.
Next, at step 1560, Ntj is made Ntj-1. Next, at step 1561, the result of subtraction
of the previously calculated elapsed time NT360j-1 fromj the currently calculated
elapsed time NT360j is halved so as to calculate the amount of fluctuation DLNT of
the elapsed time. Note that the relationship between NT360j-1 and NT360j is shown
in Fig. 42B. That is, even if the difference in elapsed time (NT360j-NT360j-1) is
the same, the difference in elapsed time (NT360j-NT360j-1) calculated at step 1561
becomes double the difference in elapsed time (NT360j-NT360j-1) calculated at step
1556, so at step 1561, one-half of (NT360j-NT360j-1) is made DLNT. Next, at step 1562,
NT360j is made NT360j-1, then step 1563 is proceeded to.
[0168] At step 1563 to step 1582, processing similar to the routine performed from Fig.
13 to Fig. 15 is performed and the average value of the amplitude AMN of the amount
of fluctuation DLNT in the elapsed time is calculated.
[0169] That is, from step 1563 to step 1565, the maximum value NTmax when DLNT increases
and then decreases is calculated. That is, at step 1563, whether DLNT is larger than
the maximum value NTmax or not is judged. When NTmax > DLNT, step 1566 is jumped to,
while when NTmax ≤ DLNT, step 1564 is proceeded to, where DLNT is made NTmax. Next,
at step 1565, the increase flag XNXREC showing that DLNT is increasing is set (XNXREC
←

1"), then step 1566 is proceeded to.
[0170] From step 1566 to step 1568, the minimum value NTmin when DLNT decreases, then increases
is calculated. That is, at step 1566, whether DLNT is smaller than the minimum value
NTmin or not is judged. When NTmin < DLNT, step 1569 is jumped to, while when NTmin
≥ DLNT, step 1567 is proceeded to, where DLNT is made NTmin. Next, at step 1568, the
decrease flag XNNREC showing that DLNT is decreasing is set (XNNREC ←

1"), then step 1569 is proceeded to.
[0171] From step 1569 to step 1573, the amplitude AMN of DLNT is calculated. That is, at
step 1569, whether NTmax > DLNT and XNREC =

1" or not is judged. When NTmax ≤ DLNT or the increase flag XNXREC is reset (XNXREC
=

0"), step 1574 is jumped to, while when NTmax > DLNT and XNXREC =

1", step 1570 is proceeded to.
[0172] That is, assume as shown in Fig. 47 that DLNT has become maximum at the time t1.
In this case, in the interruption routine performed at the time t1, the routine proceeds
from step 1563 to step 1564, where DLNT is made NTmax, then the increase flag XNXREC
is set at step 1565. On the other hand, in the interruption routine performed at the
time t
2 in Fig. 47, the routine jumps from step 1563 to step 1566. At this time, at step
1569, it is judged that NTmax > DLNT and XNXREC =

1", so step 1570 is proceeded to. That is, step 1570 is proceeded to at the time t
2 when DLNT begins to decrease.
[0173] At step 1570, the maximum value NTmax is made TNXREC. Next, at step 1571, the minimum
value TNNREC (found by the later explained step 1575) is subtracted from the maximum
value TNXREC to calculate the amplitude AMN of DLNT. Next, at step 1572, the initial
value of the minimum value NTmin is made DLNT. Next, at step 1573, the increase flag
XNXREC is reset (XNXREC ←

0").
[0174] At step 1574 to step 1578, the amplitude AMN of DLNT is calculated. That is, at step
1574, whether NTmin <DLNT and XNNREC =

1" or not is judged. When NTmin ≥ DLNT or the decrease flag XNNREC is reset (XMNREC
=

0"), step 1579 is jumped to, while when NTmin < DLNT and XNNREC =

1", step 1575 is proceeded to.
[0175] That is, as shown in Fig. 47, it is assumed that the DLNT became smallest at the
time t
3. In this case, in the interruption routine performed at the time t
3, the routine proceeds from step 1566 to 1567 where DLNT is made NTmin, then the decrease
flag XNNREC is set at step 1568. On the other hand, in the interruption routine performed
at the time t
4 in Fig. 47, the routine jumps from step 1566 to step 1569. At this time, at step
1574, it is judged that NTmin < DLNT and XNNREC =

1", so step 1575 is proceeded to. That is, step 1575 is proceeded to at the time t
4 when DLNT starts to increase.
[0176] At step 1575, the minimum value NTmin is made TNNREC. Next, at step 1576, the minimum
value TNNREC is subtracted from the maximum value TNXREC so as to calculate the amplitude
AMN of DLNT. Next, at step 1577, the initial value of the maximum value Ntmax is made
DLNT. Next, at step 1578, the decrease flag XNNREC is reset (XNNREC ←

0").
[0177] At step 1579, the amplitude AMN is added to the cumulative amplitude ΣAMN of the
amplitude. Next, at step 1580, whether the amplitude AMN has been cumulatively added
n number of times or not is judged. When cumulatively added n number of times, step
1581 is proceeded to, where the average value SINPAV2 (=C
2·ΣAMN/n) of the amplitude serving as the standard for judgement for prohibition of
correctoin of the air-fuel ratio is calculated. Here, C
2 is a constant. Next, at step 1582, ΣAMN is cleared.
[0178] Fig. 48 shows the repeated executed main routine. In this main routine, first, the
routine for calculation of the amount of fluctuation of the torque (step 1600) is
executed. This routine is shown in the previously explained Fig. 24 and Fig. 25. Next,
the routine for calculation of the lean limit feedback correction coefficient FLLFB
(step 1700) is executed. This routine is shown in Fig. 49 and Fig. 50. Next, when
the predetermined crank angle is reached, the routine for calculation of the injection
time (step 1800) is executed. This routine is shown in the previously explained Fig.
31. Next, the other routines (step 1900) are executed.
[0179] Next, the routine for calculation of FLLFB will be explained referring to Fig. 49
and Fig. 50.
[0180] Referring to Fig. 49 and Fig. 50, first, at step 1701, whether the conditions for
updating the lean limit feedback correction coefficient FLLFB stand or not is judged.
For example, at the time of engine warmup or when the operating state of the engine
is not in the learning region enclosed by the broken lines in Fig. 5, it is judged
that the conditions for updating do not stand, while at other times it is judged that
the conditions for updating stand. When the conditions for updating do not stand,
the processing cycle is ended, while when the conditions for updating stand, step
1702 is proceeded to.
[0181] At step 1702, whether either the average value SINPAV1 of the amplitude AMP of the
fluctuation of the elapsed time Ta(i) or the average value SINPAV2 of the amplitude
AMP of the fluctuation of the DLNT expressing the fluctuation of the rotational speed
of the turbine runner 37 exceeds the standard value SINP
0 or not is judged. When SINPAV1 and SINPAV2 are both smaller than the standard value
SINP
0, step 1703 is proceeded to, where the rough road counter CRR is cleared. That is,
when SINPAV1 and SINPAV2 are both smaller than the standard value SINP
0 as in the zone Z in Fig. 51, the rough road counter CRR is maintained at zero.
[0182] Next, at step 1704, the target torque fluctuation value LVLLFB is calculated from
the absolute pressure PM in the surge tank 3 and the engine speed N based on the map
shown in Fig. 22B. Next, at step 1705 and step 1706, the levels of torque fluctuation
LVLH(n) and LVLL(n) shown in the following equations are calculated based on the fluctuation
amount judgement values DH(n) and DL(n) in accordance with the target torque fluctuation
value LVLLFB:

[0183] Here, the fluctuation amount judgement values DH(n) and DL(n) are determined in advance
as shown in Fig. 28A and the feedback correction values +a
1, +a
2, +a
3, +a
4, -b
1, -b
2, -b
3, and -b
4 are determined in advance for the regions between the levels of torque fluctuation
LVLH(n) and LVLL(n) as shown in Fig. 28B.
[0184] When the levels of torque fluctuation LVLH(n) and LVLL(n) are calculated at step
1705 and step 1706, step 1707 is proceeded to, where whether the mean torque fluctuation
value DLNISM calculated in the routine for calculation of the torque fluctuation value
shown in Fig. 24 and Fig. 25 is between the levels of torque fluctuation LVLH(n) and
LVLL(n) shown in Fig. 28B or not is judged. Next, at step 1708, the corresponding
feedback correction value DLFB is calculated.
[0185] Next, at step 1709, what lean limit feedback correction coefficient of which learning
region shown in Fig. 5 the lean limit feedback correction coefficient FLLBFij to be
updated based on the average value of the engine speed N
AVE and the average value PM
AVE of the absolute pressure in the surge tank 3 found at step 509 of the processing
routine of CDLNIX shown in Fig. 20 is is determined. Next, at step 1710, the lean
limit feedback correction coefficient FLLFBij determined at step 1709 is increased
by the feedback correction value DLFB. Next, step 711 is proceeded to, where the learning
count value CFLLFB is incremented by exactly 1. Next, at step 1712, whether the rough
road count value CRR is zero and the learning count value CFLLFB has reached a constant
value n or not is judged When CRR is not 0 or CFLLFB is not n, the processing cycle
ends. As opposed to this, when CRR = 0 and CFLLFB = n, step 1713 is proceeded to,
where the learning value KBUij of the lean limit feedback correction coefficient FLLFBij
is calculated based on the following equation:

[0186] Here, m is a positive integer. The learning value KBUij is decided on for each learning
region corresponding to each learning region of FLLFBij shown in Fig. 5 as shown in
Fig. 30. As will be understood from the above, when there is a difference between
FLLFBij and KBUij, KBUij is added to the value of this difference multiplied by 1/m,
therefore the learning value KBUij changes to gradually approach FLLFBij. When the
learning value KBUij is calculated at step 1713, step 1714 is proceeded to, where
the learning counter CFLLFB is cleared.
[0187] On the other hand, when it is judged at step 1702 that one of SINPAV1 or SINPAV2
has exceeded the standard SINP
0, step 1715 is proceeded to, where the rough road counter value CRR is incremented
by exactly 1. Next, at step 1716, the learning counter CFLLFB is cleared. Next, at
step 1717, whether a predetermined time TC has elapsed from the start of the countup
actionb of the rough road counter CRR or not is judged. When the predetermined time
TC has not elapsed, step 1704 is proceeded to, therefore the action for updating the
lean limit feedback correction coefficient FLLBFij is performed. Since the mean torque
fluctuation value DLNISM becomes larger at this time, the FLLFBij increases as shown
in Fig. 51. Note that at this time, the action for updating the learning value KBUij
is stopped.
[0188] Next, when the predetermined time TC elapses, step 1718 is proceeded to, where whether
the engine has operated for eight cycles is judged. When eight cycles have elapsed,
step 1719 is proceeded to, where the lean limit feedback correction coefficient FLLFBij
is decreased by exactly the predetermined value α. Next, at step 1720, whether FLFBiji
has become smaller than the corresponding learning value KBUij or not is judged. When
FLLFBij < KBUij, step 1721 is proceeded to, where FLLFBij is made KBUij. That is,
as shown in Fig. 51, when a predetermined time TC elapses from when SINPAV1 or SINPAV2
exceeds the standard SINP
0, the lean limit feedback correction coefficient FLLFBij is gradually returned to
the learning value KBUij.
[0189] Since the mean torque fluctuation value DLNISM becomes larger when the vehicle is
driving over a rough road, the lean limit feedback correction coefficient FLLFBij
becomes larger as shown in Fig. 51. As a result, the air-fuel ratio moves to the rich
side and therefore the amount of Nox generated increases. However, torque fluctuation
occurs at this time due to the driving over the rough road and not due to the fluctuation
of the combustion pressure. From the standpoint of the combustion, the optimal lean
limit feedback correction coefficient FLLFBij at this time substantially matches with
the learning value KBUij. Therefore, to suppress the generation of Nox and obtain
a good combustion, FLLFBij is gradually returned to the learning value KBUij.
[0190] In this way, according to the present invention, it becomes possible to prevent erroneous
correction of the air-fuel ratio when the vehicle is driving over a rough road.
[0191] While the invention has been described by reference to specific embodiments chosen
for purposes of illustration, it should be apparent that numerous modifications could
be made thereto by those skilled in the art without departing from the basic concept
and scope of the invention.