Individual cylinder fuel control method

Abstract: An improved individual cylinder fuel control method based on sampled readings of a single oxygen sensor responsive to the combined exhaust gas flow of several engine cylinders. A model-based observer is used to reproduce the imbalances of the different cylinders and a proportional-plus-integral controller is used for their elimination. Both the observer and the controller are formulated in terms of a periodic system. The observer input signal is preprocessed such that it reflects at each point of time the deviation from the current A/F-ratio mean value calculated over two engine cycles. Therefore, transient engine operating conditions do not harm the reconstruction of the cylinder imbalances dramatically. The control algorithm features process/controller synchronization based on table lookup and a mechanism to automatically adjust the mapping between the observer estimates and the corresponding cylinders if unstable control operation is detected.

Description: TECHNICAL FIELD This invention relates to fuel control of a multi-cylinder internal combustion engine, and more particularly a control for carrying out individual cylinder fuel control with a single exhaust gas oxygen sensor. BACKGROUND OF THE INVENTION Effective emission control of internal combustion engine exhaust gases with a catalytic converter requires precise control of the air/fuel ratio supplied to the engine cylinders. For this purpose, it is customary to install an oxygen sensor in the engine exhaust pipe, and to use the sensor output as a feedback signal for closed-loop fuel control. Typically, the exhaust gases of several engine cylinders are combined in an exhaust manifold with a single oxygen sensor positioned near the outlet, and an average reading of the oxygen sensor is used as a common feedback signal for controlling the fuel supplied to the several cylinders. This approach assumes a uniform air and fuel distribution among the several cylinders. However, there are frequently significant variations in air and fuel distribution among different cylinders, due to manufacturing tolerances (e.g., intake ports and fuel injectors), pressure resonance oscillations (intake manifold and fuel rail), and inhomogeneous EGR distribution. These variations cause the actual air/fuel ratio to significantly depart from the target air/fuel ratio, which tends to degenerate emission control, limit high dilution (lean burn) engine operation, deteriorate fuel economy, and possibly cause misfires. For this reason, it has been proposed to individually trim the fuel pulse width for each engine cylinder; see, for example, the U.S. Patent Nos. 5,651,353, issued on July 29, 1997, and 5,732,689, issued on March 31, 1998. Some systems of this type utilize multiple oxygen sensors for developing air/fuel ratio feedback signals unique to each cylinder. Other systems use only a single oxygen sensor for reduced cost, and utilize a mathematical model or observer to correlate the sensor readings with a given cylinder. The model-based approach involves two basic steps: (1) recovering the cylinder imbalance pattern from the single oxygen sensor signal, and (2) mapping the recovered imbalance pattern to individual engine cylinders for purposes of trimming the individual fuel pulse widths. The first step typically involves a model-based observer which captures the dynamics of both the engine and the oxygen sensor. In a strictly time-based domain, there exist two essentially different modeling practices yielding a device to recover the cylinder imbalances from the raw oxygen sensor signal. One practice is based on transforming the rotational dynamics of the engine into a non-periodic representation using a "lifting technique". As a result of this transformation, the imbalances pertaining to the N different cylinders are represented by one particular observer state variable, each. Thus, the entire set of state variables captures the entire imbalance pattern over one engine cycle in a time-invariant fashion. The engine can then be balanced through individually feeding each of the recovered imbalances back to the corresponding cylinder. For each cylinder, an individual feed-back loop is thus required. Alternatively, according to the second practice, the periodicity of the engine may be preserved in terms of a periodic observer in which the cylinder imbalances are shifted in a cyclic manner through the entire set of state variables. Thus, at each instant of time, the entire imbalance pattern over one full engine cycle, as generated in accordance with the cylinder firing sequence, is captured by the entire set of state variables. The controller dynamics are also modeled as a periodic system, thus lending hand to the implementation of a feed-back structure with one single loop only. The second step of mapping the recovered imbalances to the individual engine cylinders can be difficult because unmodeled process dynamics and delays give rise to a phase shift in the measurement signal which is difficult to assess in advance, and which also varies with the engine operating point. In the case of the non-periodic representation, the phase shift is manifested as an offset between the N observer state variables and the corresponding cylinders. In other words, the phase offset is represented by an integer index having value (0, 1, ... N -1) that relates each engine cylinder to a particular recovered imbalance number. This is illustrated in Figure 1A for a four cylinder engine, where the observer state variables are identified as x 1 - x 4 , and the offset has a value of two; for example, state variable x 1 is related to cylinder number three, and state variable x 3 is related to cylinder number one, etc. In the case of the periodic representation, the phase shift directly reflects the time delay between the original cylinder imbalance pattern and the recovered imbalance pattern captured in the sequence of the N observer state variables at each sampling instant. The time delay is expressed in terms of the number of sampling times and, therefore, is again characterized by an integer index having value (0, 1, ... N -1). As illustrated in Figure 1B, the mapping is realized by selecting that observer state variable as the input to the periodic controller, which is indicated by this number in terms of an offset with respect to first state variable. For example, by feeding-back the first state variable if the index is zero, by feeding-back the second state variable if it is one, etc. To achieve stable individual cylinder control over an extended range of engine operating conditions, this index value can be determined for various engine operating points and stored in a look-up table, for example, as a function of engine speed and load. However, because the dynamic characteristics (i.e., the time constants and hence the phase shifts) of the engine may change over time, some of the data contained in the lookup table may become inappropriate. Therefore, it is important to monitor the operation of the control system and take corrective actions if necessary. EP-A-0 953 754, EP-A-0 670 419, EP-A-0 408 206 and the article "Automotive Control Systems" by J.A. Cook et al. (IEEE Control Handbook, 1996, pages 1261-1274) each describe a method for controlling the fuelling of individual cylinders of a multi-cylinder internal combustion engine based on an output signal of a single oxygen sensor wherein an observer is used to determine cylinder-individual state variables. A method according to the preamble of claim 1 is known from US-A-5 806 506. SUMMARY OF THE INVENTION The present invention is directed towards an improved individual cylinder fuel control method based on sampled readings of a single oxygen sensor responsive to the combined exhaust gas flow of several engine cylinders. According to the invention, a model-based observer is used to reproduce the imbalances of the different cylinders and a proportional-plus-integral controller is used for their elimination. Both the observer and the controller are formulated in terms of a periodic system. The observer input signal is preprocessed such that it reflects at each point of time the deviation from the current A/F-ratio mean value calculated over two engine cycles. Therefore, transient engine operating conditions do not harm the reconstruction of the cylinder imbalances dramatically. The control algorithm features process/controller synchronization based on table lookup and a mechanism to automatically adjust the mapping between the observer estimates and the corresponding cylinders if unstable control operation is detected. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1A is a mapping diagram for a time-invariant representation of cylinder fueling imbalances. Figure 1B is a mapping diagram for a periodic representation of cylinder fueling imbalances. Figure 2 is a schematic diagram of an internal combustion engine and exhaust system according to this invention, including an electronic engine control module. Figures 3-4 are flow diagrams representative of computer program instructions executed by the control module of Figure 1 in carrying out the fuel control of this invention. Figure 3 is a flow diagram illustrating a probing method for determining phase offset, while Figure 4 is a flow diagram of the overall control method. DESCRIPTION OF THE PREFERRED EMBODIMENT Referring to the drawings, and particularly to Figure 2, the reference numeral 10 generally designates an automotive four-cylinder internal combustion engine. Engine 10 receives intake air through an intake passage 12 that is variably restricted by a moveable throttle valve 14. Downstream of throttle valve 14, the intake air enters an intake manifold 16 for distribution to the individual engine cylinders (not shown) via a plurality of intake runners 18-24. The fuel injectors 26-32 are positioned to deliver a predetermined determined quantity of fuel to each intake runner 18-24 for combination with the intake air and admission to respective engine cylinders for combustion therein. The combustion products from each cylinder are exhausted into respective exhaust runners 34-40 of an exhaust manifold 42, and combined at a point of confluence in an exhaust pipe 44, which in turn, is coupled to a catalytic converter 46 for emission control purposes. The fuel injectors 26-32 are electrically activated by a fuel control module 50 under the control of a micro-processor based engine controller 52. Specifically, the controller 52 develops a fuel command pulse width, or injector on-time, for each of the engine cylinders, and provides the pulse width commands to fuel control module 50 via line 53, and the fuel control module activates the injectors 26-32 accordingly. The fuel pulse widths are determined in response to a number of inputs, including a manifold absolute pressure (MAP) signal on line 54, an engine speed (RPM) signal on line 56, and an oxygen sensor (Φ s ) signal on line 58. The MAP signal is obtained with a conventional pressure sensor 60 responsive the pressure of the intake air in intake manifold 16, and the RPM signal may be obtained from a conventional crankshaft or camshaft sensor, generally designated by the reference numeral 62. The Φ s signal is obtained from a conventional wide range exhaust gas oxygen sensor 64 that provides an output voltage that varies in amplitude about a DC offset voltage in relation to the deviation of the sensed exhaust gas from a stoichiometric air/fuel ratio. In general, the engine controller 52 determines a base fuel pulse width as a function of the RPM and MAP signals, and other inputs such as temperature and barometric pressure. Alternatively, the base fuel pulse width may be determined based on a measure of mass air flow in the intake passage 12, using a mass air flow meter up-stream of throttle plate 14. The controller 52 then adjusts the base fuel pulse width using previously learned closed-loop corrections, which are typically stored in a electrically-erasable non-volatile look-up table of controller 52 as a function of RPM and MAP. In a global type of fuel control, the adjusted base fuel pulse width is then supplied to the fuel control module 50, which activates each of the injectors 26-32 (either sequentially or concurrently) for an on-time corresponding to the adjusted base fuel pulse width. In an individual cylinder fuel control according to this invention, however, the controller 52 develops cylinder-specific fuel pulse widths by determining a correction factor for each cylinder and applying the correction factors to the adjusted base fuel pulse width. In the case of a four-cylinder engine, for example, the controller 52 supplies four cylinder-specific fuel pulse widths to fuel control module 50, which activates the individual fuel injectors 26-32 accordingly. As indicated above, the key in individual cylinder fuel control based on a single wide range oxygen sensor is being able to recover the cylinder imbalances and associate sampled sensor signals with the exhaust gasses of an individual cylinder. Once the association is determined, individual cylinder correction factors are determined to form cylinder specific fuel pulse widths. The reconstruction of engine fueling imbalances from the signal Φ s is based on the assumption that there are individual exhaust packages associated with each cylinder firing, and that each exhaust package has a characteristic impact on the Φ s signal. Thus, the Φ s signal provides a filtered version of the original imbalance sequence reflecting both the mixing of adjacent packages occurring in the exhaust pipe and the dynamics inherent in the sensing process. The sensor dynamics are modeled as a first order process having an empirically determined time constant τ s . The sensor model is given as: d dt Φ s ( t ) = 1 τ s {Φ s ( t )+Φ mix ( t )} where Φ mix ( t ) denotes the A/F ratio at the sensor location and Φ s ( t ) is the A/F ratio indicated by sensor 64. The value of Φ mix ( t ) is dependent on the degree of mixing between the exhaust gas packages of the different cylinders. If Φ ( t ) denotes the A/F ratio in the exhaust package of the most recently firing cylinder at time t, and Δt denotes the time interval ( t i - t i-1 ) between two engine firing events, Φ mix ( t ) can be modeled as: where N is the number of firing events over one engine cycle and c i ( t ) is a set of coefficients that weigh the influence of the exhaust packages occurring in the one engine cycle. Typically, c 1 ( t ) has the highest value and c N ( t ) the lowest value, meaning that the most recent exhaust package over one engine cycle contributes most and the oldest contributes least to Φ mix ( t ). Because the engine inherently operates in an event-based mode it is useful to formulate the complete exhaust mixing and sensing model in discrete-time notation. With k s = exp{-Δ t / t s }, Δt = t k - t k -1 , and under consideration of equation (2), the discrete-time version of equation (1) is: Since the sampling events t k coincide with the cylinder firing events, the weighting factors c i ( t ) remain constant from one engine cycle to the next. However, the sampling interval Δ t = t k -t k -1 varies in accordance with the time interval between two subsequent firing events. If ξ( t k ) denotes the uncorrected A/F ratio of the cylinder which fires at time t k and υ( t k ) denotes the corresponding fuel pulse width trim factor, then the actual A/F ratio Φ( t k ) at sampling event t k during steady state engine operation may be expressed as: Φ( t k ) = ξ( t k )· υ ( t k ) Equations (3) and (4) represent the target system for the controller design with υ( t k ) as the input and Φ s ( t ) as the output variable. Wall-wetting and intake manifold dynamics can be neglected as long as the changes in the trim factor υ ( t k ) are slow compared to the time constants of the wall-wetting and the manifold dynamics. However, equations (3) and (4) do not account for any delays occurring in the real process. Accordingly, it is useful to define a nominal or average A/F trajectory of a balanced engine, and to define the observer variables in terms of their deviation from the nominal trajectory. The nominal trajectory over two engine revolutions is identified by the terms Φ*, ξ*, υ*, and is defined as follows: This nominal trajectory is essentially a filtered version of the measured A/F ratio, and enhances those constituents of the measured A/F ratio that contain the cylinder imbalance pattern, while attenuating those constituents attributable to noise and transient engine operation. The observer deviation variables ϕ s (t k ), ϕ(t k ), x(t k ), u(t k ) are then defined as: where ϕ s (t k ) is the sensed A/F ratio imbalance, ϕ( t k ) is the actual A/F ratio imbalance, x ( t k ) is the original cylinder A/F ratio imbalance, and u ( t k ) is the trim signal, assuming slow changes in Φ * and an engine operating condition close to stoichiometry. Equation (4) may then the expressed in terms of equations (6) for one distinct cylinder as follows: ϕ( t k ) = x ( t k )+ u ( t k ) By the same token, using the definitions given in equations (6) and introducing from equation (2), the sensor dynamics equation (3) can be expressed as follows: ϕ s ( t k ) = k s ϕ s ( t k -1 )+(1- k s ) ϕ mix ( t k -1 ) Obviously, the infinite sequence of cylinder imbalances x ( t k ) in equation (7) is periodic with period N ; i.e., x ( t k ) = x ( t k-N ). The sequence can be generated by applying the following recursive procedure: where x i is the uncorrected imbalance of the i th cylinder. Equation (10) implies that each state variable x i assumes each cylinder imbalance in a repetitive pattern with a period of one engine cycle. Furthermore, all state variables have identical patterns but the pattern of each variable is shifted with respect to the previous variable by one sampling event. That is, each state variable x i ( t k ) reflects at one particular sampling point the imbalance of one particular cylinder and at the next sampling point the imbalance of the succeeding cylinder (in terms of the firing sequence) and so on. Thus, the time series captured in each component of equation (10) reflects the periodically varying equivalence ratio pattern at the confluence point 43 in the exhaust pipe 44 for the case that the trim variables u ( t k ) are zero. Of course, a representation similar to equation (10) can be found to characterize the periodicity of the required trim variables: The term Δu ( t k- 1 ) denotes the trim adjustment or the control input needed to gradually balance the cylinders. Obviously, Δu ( t k- 1 ) = 0 for balanced cylinders. Defining ϕ i ( t k ) = x i ( t k )+ u i ( t k ), i = 1,..., N , and summing the components of equations (10) and (11), respectively, it follows from equation (7) that: Equation (12) describes the behavior of the A/F ratio imbalances as perceived at the confluence point 43 of the exhaust system. From equations (8), (9) and (12), the following overall system representation can be obtained: Introducing ϕ ( t k ) = [ϕ 1 ( t k )··· ϕ N ( t k ) ϕ s ( t k )] T , equation (13) can be expressed in vector notation as where A ∈ R ( N +1)×( N +1) , B ∈ R ( N +1)×1 , C ∈ R 1×( N +1) , and Equation (14) represents a dynamic model for those A/F ratio excursions in the exhaust gas which are solely due to cylinder imbalances, and provides a convenient basis for the design of an observer to recover the A/F-ratio imbalances appearing in the exhaust gas packages. Although equation (14) implies that the trim variable is an inherent part of the plant, the fuel controller requires the trim input in the form of equation (4); hence υ( t k ) = f avg + u ( t k ) = f avg + u N ( t k -1 )+Δ u ( t k -1 ) where f avg denotes a multiplier which allows for adjusting the average A/F-ratio setpoint. It is assumed that the trim adjustment Δu ( t k ) is relatively small compared to the cylinder imbalances. Thus, the input term in equation (14) can be omitted for the observer design. With ϕ and ( t k ) ∈ R N +1 denoting an estimate of ϕ ( t k ) and Â = A-ΔA where ΔA represents modeling errors associated with the sensor and the mixing dynamics, i.e., the following general state-space representation for the observer can be found: The constant Kalman gain vector K ∈ R N +1 is calculated according to K = MC T S -1 where M ∈ R ( N +1)×( N +1) is computed iteratively from Strictly speaking, the matrices S ∈ R and Q ∈ R ( N +1)×( N +1) reflect statistical properties of the input and output signals of the real process. In the present context, however, they are merely used as design parameters for the filter. Equation (11) implies that integral control action is required to avoid steady state cylinder trim errors. In the present approach a simple proportional-plus-integral (PI) controller is designed to meet this requirement. The controller is given as where u ( t k ) determines the control input to the engine injection system (see equation (15)), and e ( t k ), reflects the A/F ratio imbalance appearing in the exhaust package of that cylinder which is linked to the variable u ( t k ). Introducing the vector components u 1 ( t k ) = u ( t k ), u 2 ( t k ) = u ( t k -1 ), ... , u N ( t k ) = u ( t k-N +1 ), equation (20) translates into or in vector notation with z ( t k ) = [ z 1 ( t k )··· z N ( t k )] T and u ( t k ) = [ u 1 ( t k )··· u N ( t k )] T where F, L , M ∈ R N × N , G , N ∈ R N ×1 , and, Of course equation (21) is equivalent to equation (11) where Δ u ( t k -1 ) ≡ u 1 ( t k )- u N ( t k -1 ). Hence Δ u ( t k -1 )=- k i z N ( t k -1 )-( k i + k p ) e ( t k -1 )- u N ( t k -1 ) = U z z ( t k -1 )+ U u u ( t k -1 )+ Ve ( t k -1 ) with U z , U u ∈ R N ×1 , V ∈ R , and, U z = [0···0- k i ], U u = [0···0-1], V = -( k i + k p ) Furthermore, the error signal e ( t k -1 ) can be described as where H = [δ 0, index δ 1, index ···δ N , index ] and δ i , j is the Kronecker delta, i.e., δ i , j = 0 for all i ≠ j and δ i , i = 1. The quantity index is an integer number between 0 and N -1. It is equal to zero if the true system is exactly represented by equation (14) but may be different in the presence of unmodeled delays and dynamics. This issue is addressed below in respect to synchronization. With (23) and (24) the complete state-space representation of the controller is given as: z ( t k ) = F z ( t k -1 )+ Ge ( t k -1 ) u ( t k ) = L u ( t k- 1 )+ M z ( t k- 1 )+ Ne ( t k- 1 ) Δ u ( t k -1 ) = U z z ( t k -1 )+ U u u ( t k -1 )+ Ve ( t k -1 ) with e ( t k -1 ) is calculated according to equation (24). The complete compensator involves the observer and controller described in equations (17) and (25), respectively. Introducing the compact compensator dynamics are given as follows where As mentioned above, the synchronization between the controller and the observer is a matter of identifying the variable index which determines the matrix H contained in the system matrices of (26). By synchronizing the observer and the controller in a particular way the correct mapping between the cylinders and the recovered imbalances can be established. The equation (14) represents a discrete model of a process involving both continuous time (sensor, gas flow in the exhaust manifold) and discrete time (event-driven operation of the cylinders) dynamic parts. In addition to the dynamics captured by this model the real process includes continuous transport delays which introduce a phase shift between the measurement signal and the model output. By the same token, the delays induce a phase shift between the original imbalance pattern ϕ( t k ), ϕ ( t k -1 ), ... , ϕ( t k-N +1 ) and the recovered pattern contained in the first N components ϕ and 1 ( t k ), ... , ϕ and N ( t k ) of the observer state vector ϕ and ( t k ). For stable individual cylinder feed-back control, however, it is imperative to identify this phase shift so that each imbalance extracted from the measurement information may be associated with its corresponding cylinder. For that matter, as illustrated in Figure 3, it is sufficient to identify the phase shift as a fraction of the time of one period. This fraction can be expressed in terms of sampling events as a number index with 0 ≤ index ≤ N -1. It is a characteristic parameter for each operating point and indicates that at a given time event t k the imbalance contained in component (1+ index ) of ϕ and ( t k ) relates to the cylinder which is subject to the current control variable u ( t k ); see equation (20). As indicated above, an important aspect of this invention involves monitoring the system performance under closed-loop control, and, if necessary, adjusting the calibration setting. To monitor the system performance consider the performance measure i.e., the sum of the absolute values of the exhaust package imbalances ϕ( t k ) over one engine cycle. Since stable individual cylinder control operation by definition implies initially decreasing and then non-increasing imbalances, the trend of the quantity represented by equation (27) can be transformed into a very sensitive stability criterion. However, the true values of the imbalances ϕ( t k ) are not available. Therefore, the performance measure σ ( t k ) is calculated using the estimated imbalance values provided by the observer (first N components of equation (17)), i.e.: For any given initial cylinder imbalances stable operation of the individual cylinder control algorithm is characterized by a gradual decrease of the performance measure σ( t k ) and vice-versa. Moreover, for stable control operation there exist a time t c and value σ max so that The quantity σ max represents an upper bound of σ ( t k ) for a balanced engine which is specific for each engine operating point. Based on (28) and (29), the criterion indicating unstable control operation is now defined as follows: σ( t k ) > k tol ·σ crit ( t k ) where and k tol > 1 can be thought of as a factor providing sufficient tolerance with respect to natural variations and noise components appearing in σ ( t k ). The present invention comprehends two alternative methods of identifying the phase offset discussed above if unstable operation is indicated by the performance criterion of equation (30). According to a first embodiment, the phase offset is determined by a trial and error method involving an initial guess of the phase offset variable index. The control algorithm is executed under the assumption that index represents the true phase offset. If the cylinder imbalances are converging towards zero it is concluded that the initial guess was indeed correct and no action is taken. If not (that is, if the performance criteria of the control system indicates unstable operation), the offset variable index is incremented, the integrators of the controller are reset, and the control algorithm is restarted. This procedure is repeated until stable control operation is achieved. In an N cylinder engine this process involves at most N -1 erroneous trials, including the initial step. According to a second embodiment, illustrated by the flow diagram of Figure 3, the phase offset is determined by a probing method in which a periodic probing signal du (calculated at block 116) with | du | = f p , f p ≥0 is superposed on the control input u for one particular cylinder, and the maximal response of the recovered imbalance pattern is identified. Probing is applied during an even number N p of engine firing events, as indicated at block 100. While the system is probed the adjustment term Δu in equation (11) is set to zero so that no undesired feedback occurs. The algorithm variables, in particular the counter variables, the logic variables, and the integrator state variables are initialized at the beginning of the engine start-up. Referring to Figure 3, the periodic counter variable evnt_cnt (checked at block 102) is incremented on each engine event and reset after one complete engine cycle. Initially, the counter variable is equal to zero, and block 106 sets the variable mask to zero; in the next engine event, the block 104 sets mask to one, and changes the sign of the variable toggle, which is initialized to one at block 132 if the performance criterion of equation (30) indicates unstable control operation. The pert flag (checked at block 108) indicates that the algorithm is presently involved in a probing sequence. In the probing sequence, summarized in block 110, the counter variable pert_cnt is incremented to accumulate the number of engine events which have occurred during the probing interval. When the count reaches the reference N p (an even multiple of N ; see block 100), as determined at block 112, the block 114 resets the counter variable, the pert flag, the variable toggle, and initializes a count-down variable wait_cnt . If the algorithm is not presently involved in a probing sequence, the block 118 checks the status of the wait flag, which is set at block 100 if the count in wait_cnt is positive. When the wait flag is set, block 120 decrements wait_cnt , and the performance criteria of equation (30) is evaluated at block 122 once wait_cnt has been decremented to zero, representing a certain number of sampling events. At indicated at block 122, the trig_sync flag is set if the performance criterion of equation (30) indicates unstable control operation. If the trig_sync flag is not set, as determined at block 124, the block 126 computes the error input variable e ( t k -1 ) using equation (24). If the trig_sync flag is set, the block 128 sets the error input variable e ( t k -1 ) to zero, and the block 130 checks the status of the counter variable evnt_cnt . As soon as the counter attains a value of one, the block 132 sets the pert flag, resets the trig_sync flag, and sets the variable toggle equal to one. In the course of a probing sequence the calculation of du ( t k ), computed at block 116, is as follows: du ( t k ) = mask(t k )· toggle ( t k )· f p where and To avoid feedback actions which counteract the perturbation signal du ( t k ) the error input variable e ( t k -1 ) in equation (25) is set to zero while pert is true. Hence, during the course of a probing interval the trim signal u ( t k ) is given by From equation (32) it is apparent that in each of two subsequent engine cycles the mixture of the probed cylinder is shifted from lean to rich or vice-versa thus inducing a two engine cycle periodic pattern in the exhaust equivalence ratio. To recover the corresponding imbalance pattern during probing, the number of state variables in the observer equation (17) must be increased by N . Then, each N of the first 2 N observer state variables capture the effects of a probing sequence with opposite probing amplitude while the last state variable again represents the sensor output. However, under normal control operation (no probing) the observer must still satisfy equation (17). To be compatible with both conditions the following observer structure is adopted: where C p = [0···01] ∈ R 1×(2 N +1) , K p = [ k 1 ··· k N 0 ··· 0 k N +1 ] T ∈ R (2 N +1)×1 , with k 1 , ..., k N +1 denoting the components of K (see EQs (19),(20),(21)), and the modified system matrix involves the components The condition pert_cnt = N p (detected at block 112) marks the end point t pe of the probing interval. At this point (block 114) the counter variable pert_cnt is reset and the flag pert is set to false. To obtain the required parameter index two vectors containing the recovered imbalance sequences of two consecutive engine cycles at time t k , respectively, and the difference vector d  ( t k )=  2 ( t k )-  1 ( t k ) are introduced. The phase offset index is obtained at the end of the probing interval by identifying that row number of equation (35) containing the maximum absolute value, and subtracting one from that number, i.e., where d i ( t pe ) is the element in the i th row of d  ( t pe ). Finally, to disable rescheduling of the probing mechanism during and immediately after the end of a probing interval the threshold variable σ crit (see equation (31)) is reevaluated as follows: It is important to note at this point that probing can only be applied successfully if the engine is running under steady-state operating conditions. The previous discussion is based on the assumption that equation (36) has always a unique solution index. In practice, however, the index will change as the engine shifts from one operating point to another. Consequently, there exist operating points where adjacent components of d  have the same (maximum) value, so that the evaluation of equation (37) becomes ambiguous. Of course, the engine operating envelope encompasses many different operating points where ambiguity conditions apply. Moreover, the effects of process noise extend the scope of ambiguity far beyond the range of an infinitesimally small operating region so that equation (37) may produce erroneous results any time the engine is operating close to an ambiguity point. The ambiguity problem can be mitigated to a degree of negligible statistical significance by increasing the sampling frequency such that the sensor signal is sampled at least twice per firing event. In order to capture the increased number of sampled data points comprehended in one engine event, the number of state variables in the observer is adjusted with l = qN , q ∈ N + denoting the number of sampling events per engine event so that t j - t j-q = t k - t k -1 ∀ j = q · k , and t j - t j -1 is equivalent to the time elapsing between two sampling events. In this case, the observer state vectors are given as ϕ and ( t j ) ∈ R l +1 (without probing) and ϕ and p ( t j ) ∈ R 2 l +1 (with probing). Without probing, and referring to equation (18), the system parameters may be modified as follows: C =[0···01]∈ R 1×( l +1) K =[ k 1 ··· k l +1 ] T ∈ R l +1 where the constant Kalman gain matrix K is calculated according to equation (19), M ∈ R ( l +1)×( l +1) is calculated from equation (20) with Â , C as described in equation (38), and S ∈ R , and Q ∈ R ( l +1)×( l +1) . With equation (38) the basic observer (sampled q times per firing event) is given as and the corresponding controller (sampled once per firing event) with and δ i , j is the Kronecker delta defined earlier. With probing, and referring to equation (35), the system parameters may be modified as follows: C p =[0···01]∈ R 1×(2 l +1) K p =[ k 1 ··· k l 0···0 k l +1 ] T ∈ R 2 l +1 where the elements k i of K p are taken from equation (38), and δ pert and δ no_pert are defined as before. With equation (41) the observer (sampled q times per firing event) is given as: and the corresponding controller (sampled once per firing event) is z ( t k ) = F z ( t k -1 )+ Ge ( t k -1 ) u ( t k ) = L u ( t k -1 )+ M z ( t k -1 )+ Ne ( t k -1 ) Δ u ( t k -1 ) = U z z ( t k -1 )+ U u u ( t k -1 )+ Ve ( t k -1 ) with is the Kronecker delta defined earlier. Note that the mapping of the cylinder imbalances to the cylinders is not one-to-one anymore. Each cylinder relates to a multiple of imbalance estimates so that multiple values of the variable index provide stable individual cylinder control. The counter variable evnt_cnt mentioned earlier counts the sampling events. It is incremented as long as it is smaller or equal to the number of sampling events per engine events l and reset to one otherwise. Each q sampling events conclude one firing event. Because the fuel probing input of equation (32) must retain its value over one complete firing event the variable mask is redefined as follows: As indicated above, initial values for the phase variable index are determined by table look-up. The table is accessed in both a read and a write mode, respectively, the latter providing the capability to update the calibration based on the most recent engine data. The operating conditions are specified in terms of engine speed n and intake manifold pressure p m . These two quantities constitute the axis of the lookup table. Let the two axis be defined as axis p m = [ p m 1 ··· p m i ··· p m n ], and axis n = [ n 1 ··· n j ··· n m ], respectively, so that the table contains n × m table values t i , j . Then each t i , j contains the value index pertaining to the operating point determined by the axis values p m i and n j , i.e., t i , j = index ( p m i , n j ) The quantization or granularity Δ p m = p m i - p m i 1 and Δ n = n j - n j -1 , respectively, must be chosen experimentally such that the differences of the values index pertaining to two adjacent operating points does not exceed one. In other words with equation (45), | t i,j - t i -1, j | ≤ 1 and | t i,j - t i,j -1 | ≤ 1 and | t i,j -t i -1, j -1 | ≤ 1 ∀ i,j For a given vehicle type, the table values t i,j can be calibrated off-line for each table grid point ( p m i , n j ) by either using the "trial and error" method or by applying probing and calculating method of equation (37). For any given operating point ( p m ( t k ), n ( t k )) the table value is scheduled such that it corresponds to the closest grid point ( p m i , n j ). To provide a formalized description of the scheduling mechanism let S p = ( p m 1 , p m 2 , p m 3 , ···, p m n ) and S n = ( n 1 , n 2 , n 3 , ···, n m ) denote the well ordered countable sets of grid points on the pressure and the speed axis, respectively, and define the ordinal number for each element x i of a well ordered countable set S x = ( x 1 , x 2 , ···, x i , ···, x p ) as ord( x i )= i Furthermore assume that x i ≤ x ( t k )< x i +1 and define Then for each operating point ( p m ( t k ), n ( t k )) the table values index are scheduled as follows: Conversely, after a probing sequence under steady state engine operating conditions (characterized by a operating point ( p m ( t k ), n ( t k ))) the new evaluated value index is used to update the table value corresponding to the closest grid point ( p m i , n j ), that is, in formalized notation: The above-described control is summarized by the flow diagram of Figure 4, which represents computer program instructions executed by the engine controller 52 of Figure 2. The control is initialized at engine start-up by setting an emergency reset flag ( reset ) for all integrator state variables, and resetting a sample counter variable ( samp_cnt ) used to identify sampling events that coincide with a firing event. At each sampling event, the blocks 142-154 are executed as shown. The block 142 updates the observer equation (39) or (42) depending on whether probing is in effect, calculates the performance measure σ ( t k ) and its critical value using equations (28) and (31), and gets the index value by table look up per equation (49). Initially, the reset flag (checked at block 144) will be set, and blocks 146-148 are executed. Block 146 resets the controller integrators z , u and flags, while block 148 updates the trim variable υ ( t k ) using equation (15) and updates the system counter variables. If the reset flag is not set, the block 150 is executed to check for phase offset (using either the trial-and-error or probing methods), and to re-evaluate the index value using equation (50). Block 152 then checks the status of the sample counter variable, and block 154 updates the controller terms accordingly. In summary, the present invention provides a method of achieving individual cylinder air/fuel control based on sampled readings of a single oxygen sensor responsive to the combined exhaust gas flow of several engine cylinders, using a model-based observer to reproduce the imbalances of the different cylinders and a proportional-plus-integral controller is used for their elimination. While this invention has been described in reference to the illustrated embodiment, it is expected that various modifications in addition to those suggested above will occur to those skilled in the art. In this regard, it will be understood that the scope of this invention is not limited to the illustrated embodiment, and that fuel controls incorporating such modifications may fall within the scope of this invention, which is defined by the appended claims.

Claims: A control method for fueling N individual cylinders of a multi-cylinder internal combustion engine (10) based on an air/fuel ratio sensed by an oxygen sensor (64) positioned to respond to a combination of exhaust gases generated in the individual cylinders, the control method comprising the steps of: sampling the air/fuel ratio sensed by said oxygen sensor (64) at sampling events that occur in synchronism with firing events in each of the individual cylinders; filtering the air/fuel ratio samples to define an average air/ fuel ratio; applying the air/fuel ratio samples and the average air/fuel ratio to an observer model of said engine and said sensor to produce N state variables that estimate air/fuel imbalances in respective engine cylinders, and an additional state variable that estimates a deviation of the sampled air/fuel ratio from said average air/fuel ratio; measuring a deviation of the sampled air/fuel ratio from the average air/ fuel ratio at each sampling event, and updating all of the state variables based on a difference between the measured deviation and the estimated deviation of said additional state variable; retrieving a previously stored index that associates the N state variables with corresponding individual cylinders; and fueling each cylinder based on the state variable associated with that cylinder using a closed-loop feedback control; characterized by computing a control performance measure based on a sum of the estimated air/fuel ratio imbalances; and if the performance measure indicates unstable air/fuel ratio control, identifying a new index value associating the N state variables with the individual cylinders, and storing the new index in place of the retrieved index. The control method of Claim 1, wherein the average air/fuel ratio is filtered over a plurality of engine cycles. The control method of Claim 1, wherein unstable air/fuel ratio control is indicated when at least a predefined increase in the performance measure is detected. The control method of Claim 1, wherein the observer model includes both the oxygen sensor and mixing of the exhaust gases upstream of the oxygen sensor. The control method of Claim 1, wherein the step of identifying a new index value comprises the steps of: temporarily disabling the closed-loop feedback control; superimposing a periodic probing signal on the fuel supplied to a single cylinder over an even number of firing events under steady state operation of the engine; monitoring the N state variables to identify a maximal response to the probing signal; and identifying the new index value based on the identified maximal response.

Inventors: NAIK SANJEEV M, TURIN RAYMOND C, NAIK, SANJEEV M., TURIN, RAYMOND C.
Applicants: GEN MOTORS CORP, GENERAL MOTORS CORPORATION
Application year: 2001
Main classification: F02D41
IPC codes: F02D41, G05B11, F02D45