DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0064] <<First Embodiment>>
[0065] Referring now to the drawings from FIGS. 1 to 12 , a first embodiment of the present invention will be described. A schematic construction of the entire engine control system will be described based on FIG. 1 . A four-cylinder engine 11 , which is an internal combustion engine, includes four cylinders 100 from a first cylinder #1 to a fourth cylinder #4, an air cleaner 13 is provided at the uppermost stream of an intake pipe 12 of the engine 11 , and an airflow meter 14 (detecting unit) provided on the downstream side of the air cleaner 13 for detecting the intake air quantity. The airflow meter 14 employed here is capable of detecting the back flow of the intake air. A throttle valve 15 is provided in the air intake pipe 12 for controlling air flow amount in the air intake pipe 12 . The throttle valve 15 and a throttle opening sensor 16 are provided on the downstream side of the airflow meter 14 . The opening of the throttle valve 15 is adjusted by a DC motor or the like. The throttle opening sensor 16 detects the throttle opening.
[0066] In addition, on the downstream side of the throttle valve 15 , a surge tank 17 , an intake pipe pressure sensor 18 (detecting unit) and an intake manifold 19 are provided. The intake pipe pressure sensor 18 detects the intake pipe pressure. The intake manifold 19 guides air to the respective cylinders 100 of the engine 11 . Each of cylinders 100 is provided with a fuel injection valve 20 for injecting fuel in the vicinity of the intake port of the intake manifold 19 . The cylinder head of the engine 11 is provided with ignition plugs 21 for the respective cylinders 100 , so that the air-fuel mixture in the cylinders 100 is ignited by spark discharge of the respective ignition plugs 21 .
[0067] An intake valve 28 is provided for introducing the air-fuel mixture into the corresponding cylinder 100 . An exhaust valve 29 is provided for exhausting combustion gas from the corresponding cylinder 100 . The intake valve 28 and the exhaust valve 29 of the engine 11 are provided with variable valve lift mechanisms 30 , 31 for varying the lift amount of the valve, respectively. In addition, the intake valve 28 and the exhaust valve 29 may be provided with variable valve timing mechanisms for varying the valve timing (opening and closing timing), respectively. The exhaust valve 29 may be provided only with the variable valve timing mechanism but not the variable valve lift mechanism 31 .
[0068] On the other hand, an exhaust pipe 22 of the engine 11 is provided with catalyst 23 , such as three-way catalytic converter for purifying CO, HC, NOx in exhaust gas. On the upstream side of a catalyst 23 , an exhaust gas sensor 24 is provided for detecting air-fuel ratio or rich/lean of exhaust gas (such as an air-fuel ratio sensor, an oxygen sensor). The cylinder block of the engine 11 is attached with a coolant temperature sensor 25 for detecting the temperature of coolant, and a crankshaft angle sensor 26 for emitting pulse signals each time when the crank shaft of the engine 11 rotates by a predetermined crankshaft angle (for example, 30° CA). The crankshaft angle and the number of engine revolution are detected based on the output signals from the crankshaft angle sensor 26 .
[0069] The outputs from these sensors are transmitted to an engine control circuit (ECU) 27 . The ECU 27 is constructed mainly of a microcomputer. The ECU 27 controls the quantity of fuel injection of the fuel injection valve 20 and the timing of ignition of the ignition plug 21 , depending on the engine operating conditions by executing various engine control programs stored in an integrated ROM (recording medium).
[0070] A construction of the variable valve lift mechanism 30 of the intake valve 28 is explained referring to FIG. 2 . Since the variable valve lift mechanism 31 of the exhaust valve 29 has substantially the same construction as the variable valve lift mechanism 30 of the intake valve 28 , the description will not be made.
[0071] A link arm 34 is provided between a camshaft 32 and a rocking arm 33 . The camshaft 32 drives the intake valve 28 and a rocking arm 33 . A control shaft 35 rotated by a motor 41 such as a stepping motor is provided upwardly of the link arm 34 . The control shaft 35 is rotatably and integrally provided with an eccentric cam 36 . The link arm 34 is pivotably supported at the position shifted from the axis of the eccentric cam 36 with the intermediary of a supporting shaft (not shown). The link arm 34 is provided with a pivotal cam 38 at the midsection thereof. The side surface of the pivotal cam 38 abuts against the outer periphery surface of a cam 37 provided on the camshaft 32 . The link arm 34 is provided with a pressing cam 39 at the lower end thereof. The lower end surface of the pressing cam 39 abuts against the upper end surface of a roller 40 , which is provided at the midsection of the rocking arm 33 .
[0072] Accordingly, when the cam 37 rotates in accordance with the rotation of the camshaft 32 , the pivotal cam 38 of the link arm 34 moves laterally along the shape of the outer peripheral surface of the cam 37 . The link arm 34 also pivots laterally. Since the pressing cam 39 moves laterally with the lateral pivotal movement of the link arm 34 , a roller 40 of the rocking arm 33 is moved vertically in accordance with the shape of the lower end surface of the pressing arm 39 . The rocking arm 33 pivots vertically. The intake valve 28 is provided to move in the vertical direction in accordance with the vertical movement of the rocking arm 33 .
[0073] On the other hand, when the eccentric cam 36 rotates in accordance with the rotation of the control shaft 35 , the position of the supporting shaft of the link arm 34 moves. Thus, the position of the initial contact point between the pressing cam 39 of the link arm 34 and the roller 40 of the rocking arm 33 changes. The lower end surface of the pressing cam 39 of the link arm 34 is formed with a base curved surface 39 a , at such curvature that the pressing amount of the rocking arm 33 becomes zero (the valve lift amount of the intake valve 28 is zero) on the left side thereof. A pressing curved surface 39 b is formed, so that the pressing amount of the rocking arm 33 increases (the valve lift amount of the intake valve 28 increases) as it proceeds toward the right from the base curved surface 39 a.
[0074] In a high lift mode in which the valve lift amount of the intake valve 28 is increased, the initial position of the contact point between the pressing cam 39 and the roller 40 is moved rightward in accordance with the rotation of the control shaft 35 . The portion of the lower end surface of the pressing cam 39 , where the pressing cam 39 contacts the roller 40 , is moved rightward when the pressing cam 39 is moved laterally by the rotation of the cam 37 . The maximum pressing amount of the rocking arm 33 increases and hence the maximum valve lift amount of the intake valve 28 increases. Consequently, the period in which the rocking arm 33 is pressed increases, and hence the period in which the intake valve 28 is opened increases.
[0075] On the other hand, when in a low lift mode in which the valve lift amount of the intake valve 28 is decreased, the initial position of the contact point between the pressing cam 39 of the link arm 34 and the roller 40 of the rocker arm 33 is moved leftward, in accordance with the rotation of the control shaft 35 . Accordingly, since the portion of the lower end surface of the pressing cam 39 that comes into contact with the roller 40 is moved leftward, when the pressing cam 39 is moved laterally by the rotation of the cam 37 . The maximum pressing amount of the rocking arm 33 decreases, and hence the maximum valve lift amount of the intake valve 28 decreases. Consequently, the period in which the rocking arm 33 is pressed decreases, and hence the period in which the intake valve 28 is opened decreases.
[0076] In the variable valve lift mechanism 30 described above, the maximum valve lift amounts and the periods, in which the intake valves 28 of all the cylinders 100 are opened (hereinafter, referred simply to as “lift amount of the intake valve”), can be varied together continuously, by rotating the control shaft 35 by the motor 41 and moving the initial position of the contact point between the pressing cam 39 and the roller 40 of the rocker arm 33 continuously. Hereinafter, the cylinders 100 are referred as cylinders 100 or cylinders (#1 to #4) for specific expression. Here, the sign (#i) is the cylinder number, and represents any one of (#1) to (#4).
[0077] ECU 27 controls the variable valve lift mechanism 30 of the inlet valve 28 based on the position of the accelerator or the engine operating conditions by executing the variable valve control program (not shown) stored in the ROM. The intake air quantity is controlled by varying the valve lift amount of the intake valve 28 continuously. In the case of a system employing the variable valve lift mechanism 30 and the variable valve timing mechanism, both of the valve lift amount and the valve timing may be continuously varied to control the intake air quantity.
[0078] The ECU 27 calculates the rate of cylinder-to-cylinder variations in intake air quantity DEV, based on the output from the airflow meter 14 , by executing the respective routine for correcting cylinder-to-cylinder variations (described later). The rate of cylinder-to-cylinder variations in intake air quantity DEV, which is calculated when the operating range is in the predetermined condition to execute variation learning is met, is learned as a learning value of cylinder-to-cylinder variation GDEV. Then, when the operating range is not in the condition to execute variation learning, the rate of cylinder-to-cylinder variations in intake air quantity DEV according to the current operating range is calculated using the learning value of cylinder-to-cylinder variations GDEV. Subsequently, the lift amount of the intake valve VVL is corrected based on the rate of cylinder-to-cylinder variations in intake air quantity DEV to correct the cylinder-to-cylinder variations in intake air quantity.
[0079] The ECU also calculates the area of the output waveform (intake air quantities) from the airflow meter 14 for a predetermined period for the respective intake strokes of the respective cylinders 100 , so that the rate of cylinder-to-cylinder variations in intake air quantity DEV (i) is calculated based on the calculated area. Subsequently, the lift amount of the intake valve VVL is corrected based on the rate of cylinder-to-cylinder variations in intake air quantity DEV (i), and the cylinder-to-cylinder variations in intake air quantity are corrected. In this case, the period for calculating the area of the output waveform from the airflow meter 14 is set to a period, in which the intake air quantity is hardly subjected to the influence of the reflected wave from the intake air pulsation or the air intake interference of other cylinders 100 . More specifically, the period includes the maximum value of the intake air quantity.
[0080] The detailed processing will be described below in the respective routines for correcting the cylinder-to-cylinder variations, according to the present embodiment (1).
[0081] [Base Routine for Calculating Cylinder-to-Cylinder Variations]
[0082] A base routine for calculating cylinder-to-cylinder variation shown in FIG. 3 is activated at timings of A/D conversions (for example, 4 ms cycle) of the output voltage from the airflow meter 14 . When this routine is activated, the output voltage VAFM from the airflow meter 14 after filtering is read at step 101 . The procedure proceeds to step 102 , where the output voltage VAFM from the airflow meter 14 is converted into the instantaneous airflow rate GAMF passing though the airflow meter 14 , using an instantaneous airflow rate GAMF map in FIG. 4 . The instantaneous airflow rate GAFM map is used in the case where the airflow meter 14 is capable of detecting a back flow. When the air is flowing backward, the instantaneous airflow rate GAFM is shown as a minus value.
[0083] Subsequently, the procedure proceeds to step 103 , where the counted value of a crankshaft angle counter CCRNK is read. The crankshaft angle counter CCRNK is incremented by one, for example, at every 30° CA based on the output signals from the crankshaft angle sensor 26 . Therefore, 24 counts of the crankshaft angle counter CCRNK corresponds to one cycle (720° CA). The crankshaft angle counter CCRNK is reset to “0” when the counted value reaches “24”. The rotational position of the crank, at which the crankshaft angle counter CCRNK shows the value 0, corresponds to the top dead center of the compression stroke (compression TDC) of the first cylinder #1. The rotational positions of the crank, at which the crankshaft angle counter CCRNK shows the values 6 , 12 and 18 , are set to respectively correspond to the compression TDCs of the third cylinder #3, the fourth cylinder #4, and the second cylinder #2.
[0084] In the subsequent Step 104 , a routine for calculating the maximum value of instantaneous airflow rate ( FIG. 6 ) is executed for each cylinder 100 to obtain the maximum value GAPEAK (#i) of the instantaneous airflow rate GAFM in each cylinder 100 , during a period corresponding to the intake stroke thereof.
[0085] Subsequently, the procedure proceeds to step 105 , where a routine for calculating the rate of cylinder-to-cylinder variations in intake air quantity ( FIG. 7 ) is executed. Here, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) is calculated based on the maximum value of the instantaneous airflow rate GAPEAK (#i) in each cylinder 100 .
[0086] Then, the procedure proceeds to step 106 , where whether or not the condition to execute variation learning is met is determined. The conditions for executing variation learning means are both conditions 1 and 2 as shown below.
[0087] 1. The vehicle is in any one of the following conditions: fuel-cut operation, cranking operation, operation in reduced speed (for example, when braking or when the accelerator is released).
[0088] 2. When the number of engine revolution NE is below a predetermined value (for example 2000 rpm), and the intake air quantity GA is at least a predetermined value (for example, a value corresponding to the intake air quantity during idling operation).
[0089] In this case, the condition “1” described above is determined for the following reasons. When the vehicle is in the fuel-cut operation or in the cranking operation, non-combustion is caused in the cylinder 100 , and thus the airflow is not affected by variations in rotation due to combustion. Therefore, the output waveform from the airflow meter 14 becomes a pulsation waveform reflecting cylinder-to-cylinder variations in intake air quantity with high degree of accuracy. Here, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) can be calculated and learned with high degree of accuracy.
[0090] In the system which controls the intake air quantity by varying the lift amount of the intake valve, the lift amount of the intake valve is reduced during the reduced speed operation. Thus, the proportion of variations in the actual lift amount with respect to the target lift amount increases in each cylinder 100 . Variations in the intake air quantity in each cylinder 100 increase, and thus the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) can be calculated and learned with high degree of accuracy.
[0091] The condition “2” described above is determined for the following reasons. Since the period of one cycle increases with reduction of the number of the engine revolution NE, the period (or the number of times) for sampling the output from the airflow meter 14 may be increased. When the intake air quantity GA is large, the amplitude of the intake air pulsation increases correspondingly, and thus the characteristic values (maximum value, minimum value, the area, and the like) of the intake air pulsation to be used for calculating the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) can easily be determined. Based on these reasons, in the operating range in which the number of engine revolution NE is small and the intake air quantity GA is large, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) can be learned with high degree of accuracy.
[0092] There is another advantage. Even when the valve operating conditions of the valves, such as an inlet valve, exhaust valve, throttle valve, are changed into the operating conditions, which are suitable for learning the cylinder-to-cylinder variations, in the reduced speed operation, variations in toque correspondingly generated cannot be noticed by the driver.
[0093] When both of the conditions “1” and “2” described above are satisfied, the condition to execute variation learning is met. However, the condition to execute variation learning is not met when either one or both of the above-described conditions “1” and “2” are not satisfied.
[0094] When it is determined that the condition to execute variation learning is met, the procedure proceeds to step 107 , where the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i), which is calculated when in the operating condition in which the condition to execute variation learning is met, is learned (stored) as the learning value of cylinder-to-cylinder variations GDEV (#i). The processing executed at steps from 105 to 107 as described above serves as a cylinder-to-cylinder variation learning unit stated in appended claims.
[0095] Subsequently, at step 108 , the average lift amount of the intake valve VLL, which is obtained when the learning value of cylinder-to-cylinder variations GDEV (#i), is learned as a reference lift amount of the intake valve GVVL. In this case, the average lift amount of the intake valve VLL may be calculated from the rotational position of the driving motor 41 of the variable valve lift mechanism 30 .
[0096] Then, the procedure proceeds to step 109 , where the cylinder-to-cylinder variation learning completion flag GXVVL is turned “ON”, which means completion of the cylinder-to-cylinder variation learning, and the routine is terminated.
[0097] On the other hand, when it is determined at step 106 where the condition to execute variation learning is not met, the procedure proceeds to step 110 Whether or not learning of the learning value of cylinder-to-cylinder variations GDEV (#i) is completed (whether or not the cylinder-to-cylinder variation learning completion flag GXVVL is ON) is determined at step 110 . When the learning of cylinder-to-cylinder variations is not completed, the routine is terminated as is.
[0098] On the other hand, when it is determined that learning of the learning value of cylinder-to-cylinder variations GDEV (#i) is completed, the procedure proceeds to step 111 . Here, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) according to the current average lift amount of the intake valve VLL is calculated at step 111 . The VLL is calculated using the learning value of cylinder-to-cylinder variations GDEV (#i) and the ratio between the current average lift amount of the intake valve VLL and the reference lift amount of the intake valve GVVL (VVL/GVVL) in the map of the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) shown in FIG. 5 . In this case, the stored value of the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) calculated at step 105 is replaced by the estimated value calculated at step 111 . The processing at step 111 serves as a cylinder-to-cylinder variation estimating unit.
[0099] The cylinder-by-cylinder intake air quantity can be obtained by multiplying the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) by the intake air quantity GA (average airflow rate) detected by the airflow meter 14 .
[0100] In the routine described above, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) is calculated for all the operating ranges at step 105 . However, it may be modified in such a manner that the processing at step 105 is executed when it is determined to be “Yes” at step 106 . In this case, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) is calculated only when in the operating ranges, in which the condition to execute variation learning is met, and the calculated value is learned as the learning value of cylinder-to-cylinder variations GDEV (#i). [Routine for calculating the maximum value of instantaneous airflow rate in each cylinder]
[0101] When the routine of calculating the maximum value of instantaneous airflow rate in each cylinder 100 shown in FIG. 6 is activated at step 104 in FIG. 3 , whether or not the instantaneous airflow rate GAFM detected by the airflow meter 14 is the maximum value is determined at step 201 . The method of determining the maximum value is such that the current instantaneous airflow rate GAFM is compared with the previous measurement, and whether or not the direction of change of the instantaneous airflow rate GAFM is inverted from increase to decrease is determined.
[0102] When the instantaneous airflow rate GAFM is determined not to be the maximum value at step 201 , the subsequent processing is not necessary and thus the routine is terminated. Subsequently, when the instantaneous airflow rate GAFM reached the maximum value, the procedure proceeds to step 202 , where whether or not the counted value of crankshaft angle counter is CCRNK=12-17 (that is, the period corresponding to the intake stroke of the first cylinder #1) is determined. If CCRNK=12-17, the procedure proceeds to step 203 , and the maximum value of the instantaneous airflow rate GAFM in the period corresponding to the intake stroke of the first cylinder #1 is determined to be the maximum value of the instantaneous airflow rate of the first cylinder #1 GAPEAK (#1).
[0103] When it is determined to be “No” at step 202 described above, and the counted value of the crankshaft angle counter is determined to be CCRNK=6-11 (that is, the period corresponding to the intake stroke of the second cylinder #2) at step 204 , the procedure proceeds to step 205 , where the maximum value of the instantaneous airflow rate GAFM during the period corresponding to the intake stroke of the second cylinder #2 is determined to the maximum value of the instantaneous airflow rate of the second cylinder #2 GAPEAK (#2).
[0104] When it is determined to be “No” at steps 202 and 204 , and the counted value of the crankshaft angle counter is determined to be CCRNK=18-23 (that is, the period corresponding to the intake stroke of the third cylinder #3) at step 206 , the procedure proceeds to step 207 , where the maximum value of the instantaneous airflow rate GAFM during the period corresponding to the intake stroke of the third cylinder #3 is determined to the maximum value of the instantaneous airflow rate of the third cylinder #3 GAPEAK (#3).
[0105] When it is determined to be “No” at steps 202 , 204 , and 206 , that is, when the counted value of the crankshaft angle counter is determined to be CCRNK=0-5 (that is, the period corresponding to the intake stroke of the fourth cylinder #4), the procedure proceeds to step 208 , where the maximum value of the instantaneous airflow rate GAFM during the period corresponding to the intake stroke of the fourth cylinder #4 is determined to the maximum value of the instantaneous airflow rate of the fourth cylinder #4 GAPEAK (#4).
[0106] As shown in FIG. 12 , the output from the airflow meter 14 (instantaneous airflow rate GAFM) exhibits the pulsation waveform reflecting the intake air quantity in each cylinder 100 . Therefore, by calculating the characteristic values (maximum value, minimum value, average value, amplitude value, area, length of track, etc.) of the instantaneous airflow rate detected by the airflow meter 14 at the intervals corresponding to the intake stroke of each cylinder 100 , the characteristic value of the pulsation waveform reflecting the intake air quantity in each cylinder 100 can be calculated. Therefore, using the characteristic value, the rate of cylinder-to-cylinder variations in intake air quantity reflecting the cylinder-to-cylinder variations in intake air quantity may be calculated.
[0107] [Routine for Calculating the Rate of Cylinder-to-Cylinder Variations in Intake Air Quantity]
[0108] The routine for calculating the rate of cylinder-to-cylinder variations in intake air quantity shown in FIG. 7 ( 105 in FIG. 3 ) is executed for each stroke (at every 180° CA in the case of a four-cylinder engine). When this routine is activated, the maximum values of the instantaneous airflow rate in each cylinder GAPEAK (#i) is read at step S 301 , and in the next Step 302 the maximum value of the instantaneous airflow rate GAPEAK (#i) of each cylinder 100 is conditioned among the cylinders 100 to obtain an conditioned value of the maximum value of the instantaneous airflow rate GAPEAKSM#i) for each cylinder 100 .
GAPEAKSM (# i )= GAPESKSM (# i− 1)+ K 1 ×{GAPAK (# i )− GAPEAKSM (#i−1)}
[0109] In the equation above, K1 is a coefficient of conditioning and GAPEAKSM (#i−1) is a conditioned value of the maximum value of the instantaneous airflow rate of the (#i−1)th cylinder 100 .
[0110] Subsequently, the procedure proceeds to step 303 , where the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) are calculated using the following equation.
1
[0111] The denominator in the equation above is an average value of the conditioned values GAPEAKSM (#i) of the maximum values of the instantaneous airflow rates of all the cylinders 100 , and K2 is a correction coefficient for converting the variations in maximum value of instantaneous airflow rate into the variations in intake air quantity.
[0112] As is clear from Equation 1 shown above, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) in each cylinder 100 is a value obtained by dividing the conditioned value of the rate of cylinder-to-cylinder variations in intake air quantity GAPEAKSM (#i) in each cylinder 100 by the average of the conditioned values of the rates of cylinder-to-cylinder variations in intake air quantities of all the cylinders 100 , and then multiplied by the correction coefficient K2.
[0113] [Routine for Correcting Cylinder-to-Cylinder Variations]
[0114] The routine for correcting cylinder-to-cylinder variation shown in FIG. 8 is executed at predetermined regular cycle while the engine is in operation. When this routine is activated, at step 401 , whether or not learning of the learning value of cylinder-to-cylinder variations GDEV (#i) is terminated (whether or not the cylinder-to-cylinder variations learning completion flag GXVVL is ON) is determined. When the learning of cylinder-to-cylinder variations is not completed, the routine is terminated without executing the process relating to the cylinder-to-cylinder variation correction from Step 402 on.
[0115] On the other hand, when it is determined that learning of cylinder-to-cylinder variations is completed or the condition to execute correction is met at step 401 , the processing relating to the correction of the cylinder-to-cylinder variations from the step S 402 on is executed in the following manner. At step 402 , the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) obtained finally by the base routine calculating cylinder-to-cylinder variation shown in FIG. 3 is read.
[0116] Subsequently, the procedure proceeds to step 403 , the basic lift correction amount FVVL1 (#i) in each cylinder 100 according to the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) is calculated using a map shown in FIG. 9 . According to the map shown in FIG. 9 , the basic lift correction amount FVVL1 (#i) becomes a reduced value (minus value) in the range where the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) is a positive value, and the basic lift correction amount FVVL1 (#i) becomes an increased value (plus value) in the range where the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) is a negative value. In other words, when the intake air quantity of a certain cylinder 100 increases with respect to the average of the intake air amounts of all the cylinders 100 , the reductive correction amount based on the basic lift correction amount FVVL1 (#i) increases correspondingly. In contrast, when the intake air amount of a certain cylinder 100 is reduced with respect to the average of the intake air quantities of all the cylinders 100 , the incremental correction amount based on the basic lift correction amount FVVL1 (#i) increases correspondingly. In a predetermined range in which the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) is about zero, the basic lift correction amount FVVL1 (#i) is set to zero, and thus the lift amount of the intake valve VVL is not corrected.
[0117] After the number of engine revolution NE and the intake air amount GA (average airflow rate) detected by the airflow meter 14 are read in the next Step 404 , the procedure proceeds to the Step 405 , where the map of the correction coefficient FVVL2 shown in FIG. 10 is searched, and then the correction coefficient FVVL2 (#i) according to the current engine operating conditions (for example, the number of engine revolution NE and the intake air quantity GA) of each cylinder 100 is calculated.
[0118] Generally, when the intake air quantity GA is reduced (when the lift amount of the intake valve is reduced), it is susceptible to the correction of the lift amount of the intake valve. Therefore, the map of the correction coefficient FVVL2 in FIG. 10 is set in such a manner that the correction coefficient FVVL2 is reduced with decrease in intake air quantity GA.
[0119] Subsequently, the procedure proceeds to step 406 , where the basic lift correction amount FVVL1 (#1) of each cylinder 100 is multiplied by the correction coefficient FVVL2 (#i) to obtain a lift correction amount FVVL (#i) for each cylinder 100 .
FVVL (# i )= FVVL 1(# i )× FVVL 2(# i )
[0120] Then the procedure proceeds to step 407 , where the lift correction amount FVVL (#i) of each cylinder 100 is added to the average of the lift amounts of the intake valves VVL of all the cylinders 100 before correction to obtain a final target lift amount of the intake valve VVLM.
[0121] In this case, in the period in which the counted value of the crankshaft angle counter CCRNK=12-17 (that is, the period corresponding to the intake stroke of the first cylinder #1), the final target lift amount of the intake valve VVLM is calculated using the valve lift correction amount FVVL (#1) of the first cylinder #1 according to the following equation.
VVLM=VVL+FVVL (#1)
[0122] The period in which the counted value of the crankshaft angle counter CCRNK=6-11, (that is, the period corresponding to the intake stroke of the second cylinder #2), the final target lift amount of the intake valve VVLM is calculated using the valve lift correction amount FVVL (#2) of the second cylinder #2 according to the following equation.
VVLM=VVL+FVVL (#2)
[0123] In counted value of the crankshaft angle counter CCRNK=18-23, (that is, the period corresponding to the intake stroke of the third cylinder #3), the final target lift amount of the intake valve VVLM is calculated using the valve lift correction amount FVVL (#3) of the third cylinder #3 according to the following equation.
VVLM=VVL+FVVL (#3)
[0124] In counted value of the crankshaft angle counter CCRNK=0-5, (that is, the period corresponding to the intake stroke of the fourth cylinder #4), the final target lift amount of the intake valve VVLM is calculated using the valve lift correction amount FVVL (#4) of the fourth cylinder #4 according to the following equation.
VVLM=VVL+FVVL (#4)
[0125] Subsequently, the procedure proceeds to step 408 , where the motor 41 of the variable valve lift mechanism 30 of the intake valve 28 is driven at high speed according to the final target lift amount of the intake valve VVLM of each cylinder 100 which varies corresponding to the intake stroke of each cylinder 100 , and then the lift amount of the intake valve is corrected for each intake stroke of each cylinder 100 so that the intake air amount of each cylinder 100 is corrected. Accordingly, cylinder-to-cylinder variations in intake air quantity are corrected.
[0126] In the routine for correcting the cylinder-to-cylinder variations described above, correction of the cylinder-to-cylinder variations is not executed until the learning of cylinder-to-cylinder variations is completed. However, it is also possible to execute correction of cylinder-to-cylinder variations using the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) calculated at step 105 in FIG. 3 until the learning of cylinder-to-cylinder variations is completed.
[0127] Referring now to a time chart in FIG. 11 , an example of the present embodiment (1) shown above will be described. In the period, in which the condition to execute cylinder-to-cylinder variation correction is met and the cylinder-to-cylinder variation correction execution flag is turned ON, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) in each cylinder 100 is calculated based on the output from the airflow meter 14 per cycle (instantaneous airflow rate GAFM). The rate of cylinder-to-cylinder variations in intake air quantity DEV (#i), which is calculated when the condition to execute variation learning is met and the variation learning execution flag is ON, is learned as a learning value of cylinder-to-cylinder variations GDEV (#i). Besides, the average of the lift amounts of the intake valves VLL, which is calculated when the learning value of cylinder-to-cylinder variations GDEV (#i) is learned, is learned as a reference lift amount of intake valve GVVL.
[0128] In the period in which the cylinder-to-cylinder variation learning completion flag is OFF, because the condition to execute variation learning is not met after leaning the learning value of cylinder-to-cylinder variation GDEV (#i) is completed and the cylinder-to-cylinder variation learning completion flag GXVVL is turned ON, the final rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) is calculated using the learning value of cylinder-to-cylinder variations GDEV (#i) and the ratio of the current average lift amount of the intake valve VVL with respect to the reference lift amount of the intake valve GVVL (VVL/GVVL).
[0129] Since the present embodiment (1) described above is constructed to learn the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i), which is calculated when the condition to execute variation learning is met and the vehicle is in the operating range in which the calculation accuracy of the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) can be secured as a learning value of cylinder-to-cylinder variations GDEV (#i). Thus, the learning value of cylinder-to-cylinder variations GDEV (#i) can be learned with high degree of accuracy.
[0130] The present embodiment is constructed to estimate the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i), in accordance with the current operating range using the learning value of cylinder-to-cylinder variations GDEV (#i) with high degree of accuracy in the operating range in which the condition to execute variation learning is not met. Therefore, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) can be calculated with relatively high degree of accuracy, even in the operating range in which the output waveform from the airflow meter 14 is not the pulsation waveform or in the operating range in which a sufficient time (or the number of times) for sampling the output from the airflow meter 14 cannot be secured. The pulsation waveform reflects the cylinder-to-cylinder variations in intake air quantity with a high degree of accuracy. Therefore, detection accuracy for cylinder-to-cylinder variations can be improved in almost all of the operating range, so that the cylinder-to-cylinder variation in intake air quantity can be corrected with high degree of accuracy in almost all the operating range. Thus, the cylinder-to-cylinder variations both in torque and in air-fuel ratio can be reduced.
[0131] <<Second Embodiment>>
[0132] The operating conditions of the intake valve 28 , the exhaust valve 29 , and the throttle valve 15 are not necessarily suitable for calculating the rate of cylinder-to-cylinder variations in intake air quantity DEV when the condition to execute variation learning is met.
[0133] Therefore, the second embodiment of the present invention shown in FIG. 13 to FIG. 15 is constructed to change the valve operating conditions of the intake valve 28 , the exhaust valve 29 , and the throttle valve 15 in the valve operating conditions for learning. Subsequently, the rate of cylinder-to-cylinder variations in intake air quantity DEV is calculated, and the calculated value is learned as a learning value of cylinder-to-cylinder variation GDEV, in the condition to execute variation learning.
[0134] The processing of the base routine for calculating the cylinder-to-cylinder variation shown in FIG. 13 will be described below. When this routine is activated, the maximum value GAPEAK (#i) of instantaneous airflow rate GAFM in the period corresponding to the intake stroke of each cylinder 100 is calculated as at steps 101 to 104 in FIG. 3 described in conjunction with the first embodiment. Subsequently, the procedure proceeds to step 106 , where whether or not the condition to execute variation learning is met is determined in the same manner as in the first embodiment.
[0135] When it is determined that the condition to execute variation learning is met as a consequent of determination, the procedure proceeds to step 106 a , where the throttle opening TA is changed to the throttle opening KTA for learning. The throttle opening KTA for learning is set to full-bore or at an opening at which the pressure in the intake pipe becomes substantially the ambient pressure. Accordingly, the amplitude of the intake air pulsation to be detected by the airflow meter 14 which is disposed on the upstream side of the throttle valve 15 may be increased. Thus, the characteristic value of the intake air pulsation (for example, the maximum value) to be used for calculation of the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) can easily be determined, thereby becoming the state suitable for leaning the learning value of cylinder-to-cylinder variations GDEV (#i).
[0136] Subsequently, the procedure proceeds to the Step 106 b , where the lift amount of the intake valve VVL is changed to the lift amount of the intake valve for leaning KVVL. The lift amount of the intake valve for learning KVVL is set to a value smaller than a predetermined lift amount or to the minimum value. The lift amount of the intake valve VVL becomes smaller and the ratio of cylinder-to-cylinder variations in the actual lift amount increases with respect to those in the target lift amount. Accordingly, the cylinder-to-cylinder variations in intake air quantity in each cylinder 100 correspondingly increase. Thus, a state suitable for learning the learning value of cylinder-to-cylinder variations GDEV (#i) is provided.
[0137] Subsequently, the procedure proceeds to the Step 106 c , where the timing of the intake valve INVVT is changed into the timing of the intake valve for leaning KINVVT. The timing of the exhaust valve EXVVT is changed into the timing of the exhaust valve for leaning KEXVVT. As shown in FIG. 14 , the timing of the intake valve for leaning KINVVT and the timing of the exhaust valve for leaning KEXVVT are set, so that there is no valve overlap between the intake valve 28 and the exhaust valve 29 . The opening period of the intake valve 28 is set between the top dead center (TDC) to the bottom dead center (BDC). Consequently, blowback of the combustion gas or intake air can be avoided, and thus disorder of intake air pulsation due to blowback of combustion gas or intake air may be prevented, which provides a state suitable for learning the learning value of cylinder-to-cylinder variations GDEV (#i).
[0138] The valve operating conditions for the throttle valve 15 , the intake valve 28 , and the exhaust valve 29 are changed into the valve operating conditions for learning in the manner described above. Subsequently, the procedure proceeds to step 106 d , where the routine for calculating the rate of cylinder-to-cylinder variations in intake air quantity in FIG. 7 , which was described in the first embodiment, is executed. The rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) is calculated based on the maximum value of the instantaneous airflow rate in each cylinder GAPEAK (#i). Subsequently, the procedure proceeds to step 107 , where the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) calculated at step 106 d is learned (stored) as a learning value of cylinder-to-cylinder variation GDEV (#i). Other parts of the processing are the same as the processing in each step shown in FIG. 3 described in conjunction with the first embodiment.
[0139] In the second embodiment described above, as shown in a time chart in FIG. 15 , in the period in which the condition to execute variation learning is met and the variation learning execution flag is turned ON, the throttle opening TA, the lift amount of the intake valve VVL, the timing of the intake valve INVVT, and the timing of the exhaust valve EXVVT are changed respectively into the valve operating conditions (KTA, KVVL, KINVVT, KEXVVT). The valve operating conditions (KTA, KVVL, KINVVT, KEXVVT) are suitable for leaning the cylinder-to-cylinder variations, and the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) which is calculated in this specific conditions as a learning value of cylinder-to-cylinder variations GDEV (#i). Accordingly, accuracy of leaning of the learning value of cylinder-to-cylinder variations GDEV (#i) can be improved.
[0140] <<Third Embodiment>>
[0141] Referring now to FIG. 16 and FIG. 17 , the third embodiment of the present invention will be described. In the third embodiment, the routine for switching the intake air quantity control method shown in FIG. 16 is executed. The intake air quantity is prohibited from being controlled by controlling the variable intake valve, but controlled by the throttle valve until leaning the learning value of cylinder-to-cylinder variations GDEV (#i) is completed. The intake air quantity is controlled by controlling the variable intake valve, after leaning the learning value of cylinder-to-cylinder variations GDEV (#i) is completed.
[0142] The routine for switching the intake air quantity control method shown in FIG. 16 is activated at predetermined cycles (for example, a cycle of 4 ms). When this routine is activated, whether or not leaning of the learning value of cylinder-to-cylinder variation GDEV (#i) is completed (whether or not the cylinder-to-cylinder variations learning completion flag GXVVL is turned ON) is determined at step 501 . When leaning of the cylinder-to-cylinder variations is not completed, the procedure proceeds to step 502 , where the intake air quantity is prohibited from being controlled by controlling the variable intake valve, but controlled by the throttle valve. In this control of intake air quantity by controlling the throttle valve, the intake air quantity is controlled by varying the throttle opening TA based on the position of the accelerator or on the operating conditions of the engine. In this case, the lift amount of the intake valve VVL is fixed to a predetermined value, such as the maximum value (for example 10 mm).
[0143] Subsequently, when it is determined that leaning of the learning value of cylinder-to-cylinder variations GDEV (#i) is completed at step 501 , the procedure proceeds to step 503 , where the intake air quantity is controlled by controlling the variable intake valve. When the intake air quantity is controlled by controlling the variable intake valve, the intake air quantity is controlled by varying the lift amount of the intake valve VVL based on the position of the accelerator or the operating conditions of the engine, while correcting the cylinder-to-cylinder variations in intake air quantity based on the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i), which is estimated by the use of the learning value of cylinder-to-cylinder variation GDEV (#i). In this case, the throttle opening TA is controlled so that the pressure in the intake pipe PM is maintained at a predetermined negative pressure (for example, −5 kPa) for reducing noise of intake air pulsations.
[0144] In the third embodiment described above, as shown in a time chart in FIG. 17 , the intake air quantity is prohibited from being controlled by controlling the variable intake value, but controlled by the throttle valve before leaning of the learning value of cylinder-to-cylinder variations GDEV (#i) is completed (when the cylinder-to-cylinder variation learning completion flag GXVVL is OFF). In this arrangement, accuracy of control of the intake air quantity can be secured by controlling the intake air quantity with the throttle valve, until learning of the learning value of cylinder-to-cylinder variations GDEV (#i) is completed. Thus, deterioration of drivability or exhaust emission due to unlearning of the learning value of cylinder-to-cylinder variations GDEV (#i) may be avoided.
[0145] Subsequently, after learning of the learning value of cylinder-to-cylinder variations GDEV (#i) is completed and the cylinder-to-cylinder variation learning completion flag GXVVL is turned ON, control of the intake air quantity by controlling the variable intake valve is started. Control of the intake air quantity by controlling the variable intake valve can be executed while correcting the cylinder-to-cylinder variations in intake air quantity with high degree of accuracy using the estimated rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) in the state in which the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) for almost entire operating range can be estimated with high degree of accuracy using the learning value of cylinder-to-cylinder variations GDEV (#i). Here, control of the intake air quantity by controlling the variable intake valve can be executed with high degree of accuracy.
[0146] <<Fourth Embodiment>>
[0147] In the first to the third embodiments, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) is calculated using the instantaneous airflow rate GAFM detected by the airflow meter 14 . However, in the fourth embodiment of the present invention shown in FIG. 18 and FIG. 19 , the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) is calculated using the instantaneous intake pipe pressure PMAP detected by the intake pipe pressure sensor 18 (detecting unit).
[0148] During engine operation, as shown in FIG. 19 , the output from the intake pipe pressure sensor 18 (instantaneous intake pipe pressure PMAP) pulsates synchronously with the pulsation of the output from the airflow meter 14 (instantaneous airflow rate GAFM), and the output from the intake pipe pressure sensor 18 becomes a substantially minimum value when the output (instantaneous airflow rate GAFM) from the airflow meter 14 (instantaneous intake pipe pressure PMAP) becomes the maximum value.
[0149] Accordingly, in the fourth embodiment, the routine for calculating the minimum value of the instantaneous intake pipe pressure in each cylinder 100 shown in FIG. 18 is executed, the maximum value of instantaneous intake pipe pressure PMPEAK (#i) in the period corresponding to the intake stroke of each cylinder 100 is obtained, and the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) is calculated using the obtained minimum value of instantaneous intake pipe pressure DMPEAK (#i).
[0150] In the routine for calculating the minimum value of instantaneous intake pipe pressure in each cylinder 100 shown in FIG. 18 is activated at timings of A/D conversions (for example, 4 ms cycles) of the output from the intake pipe pressure sensor 18 . When this routine is activated, whether or not the instantaneous intake pipe pressure PMAP detected by the intake pipe pressure sensor 18 is the minimum value is determined at step 601 . This method of determination of the minimum value is such that the current value of the instantaneous intake pipe pressure PMAP is compared with the previous value and the whether or not the direction of change of the instantaneous intake pipe pressure PMAP is inverted from decrease to increase is determined.
[0151] When the instantaneous intake pipe pressure PMAP is determined to be the minimum value at step 601 , the procedure proceeds to step 602 , where whether or not the counted value of the crankshaft angle counter is CCRNK=12-17 (that is, the period corresponding to the intake stroke of the first cylinder #1) is determined. If CCRNK=12-17, the procedure proceeds to step 603 , where the minimum value of the instantaneous intake pipe pressure PMAP during the period corresponding to the intake stroke of the first cylinder #1 is determined to be a minimum value of the instantaneous intake pipe pressure of the first cylinder #1 PMPEAK (#1).
[0152] When it is determined to be “No” at step 602 , and the counted value of the crankshaft angle counter is determined to be CCRNK=6-11 at step 604 (that is, the period corresponding to the intake stroke of the second cylinder #2), the procedure proceeds to step 605 , where the minimum value of the instantaneous intake pipe PMAP in the period corresponding to the intake stroke of the second cylinder #2 is determined to be a minimum value of the instantaneous intake pipe pressure of the second cylinder #2 PMPEAK (#2).
[0153] When it is determined to be “No” at steps 602 and 604 , and the counted value of the crankshaft angle counter is determined to be CCRNK=18-23 (that is, the period corresponding to the intake stroke of the third cylinder #3) at step 606 , the procedure proceeds to step 607 , where the minimum value of the instantaneous intake pipe pressure PMAP in the period corresponding to the intake stroke of the third cylinder #3 is determined to be a minimum value of the instantaneous intake pipe pressure of the third cylinder #3 PMPEAK (#3).
[0154] When it is determined to be “No” in all Steps 602 , 604 , and 606 , that is, when the counted value of the crankshaft angle counter is CCRNK=0-5 (the period corresponding to the intake stroke of the fourth cylinder #4), the procedure proceeds to step 608 , where the minimum value of the instantaneous intake pipe pressure PMAP in the period corresponding to the intake stroke of the fourth cylinder #4 is determined to be a minimum value of the instantaneous intake pipe pressure of the fourth cylinder #4 PMPEAK (#4).
[0155] Using the minimum value of instantaneous intake pipe pressure in each cylinder PMPEAK (#i) obtained as described above, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) for each cylinder 100 is calculated in the same method as calculating the rate of cylinder-to-cylinder variations in intake air quantity (See FIG. 7 ) described in conjunction with the first embodiment.
[0156] In the fourth embodiment described above as well, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) can be calculated with high degree of accuracy.
[0157] <<Fifth Embodiment>>
[0158] In the fifth embodiment of the present invention shown in FIG. 20 , focusing on such characteristic that the pressure in the cylinder 100 increase with the intake air quantity taken into the cylinder, the pressure in each cylinder 100 is detected, and the maximum value of the pressure in the cylinder 100 in the period about the compression TDC of each cylinder 100 is obtained. In order to achieve this process, in the fifth embodiment, an in-cylinder pressure sensor 21 a (detecting unit) for detecting the in-cylinder pressure is provided for each cylinder. The in-cylinder pressure sensor 21 a is built in the ignition plug 21 according to FIG. 1 . However, the in-cylinder pressure sensor 21 a may be provided separately from the ignition plug 21 .
[0159] In the fifth embodiment, the routine for calculating the maximum value of the in-cylinder pressure, shown in FIG. 20 , is executed for each cylinder 100 at timings of A/D conversions of the in-cylinder pressure sensor 21 a (for example, 4 ms cycles). When this routine is activated, whether or not the in-cylinder pressure CPS detected by the in-cylinder pressure sensor 21 a is the maximum value is determined at step 701 . This method of determining the maximum value may be such that the current value of the in-cylinder pressure CPS is compared with the previous value, and whether or not the direction of change of the in-cylinder pressure CPS is inverted from increase to decrease is determined.
[0160] When the in-cylinder pressure CPS is determined to be the maximum value at step 701 , the procedure proceeds to step 702 , where whether or not the counted value of the crankshaft angle counter is 22≦CCRNK or CCRNK≦3 (that is, the period within 90° CA before and 90° CA after the compression TDC of the first cylinder #1) is determined. If the determination is positive at step 702 , the procedure proceeds to step 703 , and the maximum value of the in-cylinder pressure CPS in the period within 90° CA before and 90° CA after the compression TDC of the first cylinder #1 is determined to be the maximum value of the in-cylinder pressure of the first cylinder #1 CPSPEAK (#1).
[0161] When it is determined to be “No” at step S 702 , and the counted value of the crankshaft angle counter is determined to be CCRNK=16-21 (that is, the period within 90° CA before and 90° CA after the compression TDC of the second cylinder #2) at step 704 , the procedure proceeds to step 705 , and the maximum value of the in-cylinder pressure CPS in the period within 90° CA before and 90° CA after the compression TDC of the second cylinder #2 is determined to be the maximum value of the in-cylinder pressure of the second cylinder #2 CPSPEAK (#2).
[0162] When it is determined to be “No” at steps 702 and 704 , and the counted value of the crankshaft angle counter is determined to be CCRNK=4-9 (that is, in the periods within 90° CA before and 90° CA after the compression TDC of the third cylinder #3) at step 706 , the procedure proceeds to step 707 , and the maximum value of the in-cylinder pressure CPS in the period within 90° CA before and 90° CA after the compression TDC of the third cylinder #3 is determined to be the maximum value of the in-cylinder pressure of the third cylinder #3 CPSPEAK (#3).
[0163] When it is determined to be “No” in all Steps of 702 , 704 , and 706 , that is, when the counted value of the crankshaft angle counter is CCRNK=10-15 (in the period within 90° CA before and 90° CA after the compression TDC of the fourth cylinder #4), the procedure proceeds to step 708 , and the maximum value of the in-cylinder pressure CPS in the period within 90° CA before and 90° CA after the compression TDC of the fourth cylinder #4) is determined to be the maximum value of the in-cylinder pressure of the fourth cylinder #4 CPSPEAK (#4).
[0164] Using the maximum value of the in-cylinder pressure CPSPEAK (#i) for each cylinder 100 obtained as described above, the rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) for each cylinder 100 is calculated in the same manner as the method of calculating the rate of cylinder-to-cylinder variations in intake air quantity (See FIG. 7 ) described in conjunction with the first embodiment.
[0165] The rate of cylinder-to-cylinder variations in intake air quantity DEV (#i) can be calculated with high degree of accuracy in the fifth embodiment as well.
[0166] <<Sixth Embodiment>>
[0167] Referring now to FIGS. 4, 8 and 21 to 28 , the sixth embodiment of the present invention will be described.
[0168] The processing of the respective routines for correcting the cylinder-to-cylinder variations executed by the ECU 27 in the sixth embodiment will be described.
[0169] [Routine for Correcting Cylinder-to-Cylinder Variations]
[0170] The routine for correcting the cylinder-to-cylinder variation shown in FIG. 8 is executed at predetermined cycles while the engine is in operation. This routine is the same as the respective steps shown in FIG. 8 described in the first embodiment except for starting condition. When this routine is activated, whether or not the condition to execute cylinder-to-cylinder variation correction is met is determined at step 401 . The condition to execute cylinder-to-cylinder variation correction is to satisfy both of the following two conditions 1 and 2.
[0171] 1. More than a predetermined time has elapsed after starting operation (that is, it is not in unstable operating condition immediately after starting).
[0172] 2. It is not in the transient operating condition (that is, it is in the constant operating condition).
[0173] When both of these two conditions 1 and 2 are satisfied, the condition to execute cylinder-to-cylinder variation correction is met. However, if one or both of these conditions are not satisfied, the condition to execute cylinder-to-cylinder variation correction is not met.
[0174] When it is determined that the condition to execute cylinder-to-cylinder variation correction is not met, the routine is terminated without executing the processing relating to the cylinder-to-cylinder variation correction from Step 402 <