Engine starting during cold operating conditions, referred to as a “cold start”, can present numerous challenges in maintaining repeatability/reliability and meeting emission requirements. Specifically, providing appropriate engine air-fuel ratio during engine starting conditions can be difficult due to numerous factors, especially given that exhaust gas oxygen sensors used for feedback air-fuel control are typically unavailable during the initial operation of a cold start. As such, the initial fueling may be referred to as open-loop air-fuel control.
One phenomenon that can degrade cold start air-fuel ratio control is when a portion of injected fuel may not be available for combustion due to fuel vaporization. This phenomenon may be referred to as “lost fuel” and can be significantly influenced by intake port surface temperature at start-up and fuel volatility (vapor pressure and distillation properties). Further, lost fuel can significantly impact open-loop fueling precision and accuracy, and cause the observed open-loop air-fuel ratio to deviate from the desired target value.
One approach to provide improved air-fuel ratio control is provided in U.S. Pat. No. 6,266,957. In this example, upon identifying activation of an air-fuel ratio sensor and when an absolute value of the deviation between a target air-fuel ratio and an actual air-fuel ratio is equal to or greater than a predetermined value, a correction value is calculated at that moment and used to update an existing value within the backup RAM.
However, the inventors herein have recognized a disadvantage with such an approach. In particular, the amount of correction at the exact moment of sensor activation may not accurately reflect the open-loop fueling error caused by lost fuel effects. Further, depending on the type of exhaust gas oxygen sensor provided, it may not be possible to identify how much error is present at the exact moment of sensor activation.
As such, one example approach to address the above issues uses a method for controlling fueling of an engine. The method comprises, during an engine cold start and before the engine is warmed to a predetermined level, transitioning from open-loop fueling to closed-loop fueling, where during closed-loop fueling feedback from an exhaust gas oxygen sensor is utilized and where said closed-loop fueling generates a cycling of delivered fuel in maintaining exhaust air-fuel ratio at a desired level; and providing a fueling adjustment to a subsequent engine start in response to fueling information, said fueling information obtained over at least a complete cycle of closed-loop fueling following said transition from open-loop fueling.
In this way, it is possible to utilize feedback information to obtain a more accurate determination of appropriate fueling during cold start open-loop conditions, thereby better accounting for variations in lost fuel. For example, as the engine ages, lost fuel can vary, thereby leading to increased emissions if not otherwise corrected.
In one particular aspect, by using cycle average information of first complete fueling cycle, it is possible to obtain ever more accurate fueling corrections. In another aspect, the fueling adjustment is provided only under select conditions to avoid inaccurate readings that may be caused by various conditions.
Internal combustion engine 10 comprising a plurality of cylinders, one cylinder of which is shown in
Intake manifold 44 communicates with throttle body 64 via throttle plate 66. Throttle plate 66 is controlled by electric motor 67, which receives a signal from ETC driver 69. ETC driver 69 receives control signal (DC) from controller 12. Intake manifold 44 is also shown having fuel injector 68 coupled thereto for delivering fuel in proportion to the pulse width of signal (fpw) from controller 12. Fuel is delivered to fuel injector 68 by a conventional fuel system (not shown) including a fuel tank, fuel pump, and fuel rail (not shown).
Engine 10 further includes conventional distributorless ignition system 88 to provide ignition spark to combustion chamber 30 via spark plug 92 in response to controller 12. In the embodiment described herein, controller 12 is a conventional microcomputer including: microprocessor unit 102, input/output ports 104, electronic memory chip 106, which is an electronically programmable memory in this particular example, random access memory 108, and a conventional data bus. The controller may further include a keep alive memory (not shown) for storing adaptive parameters.
Controller 12 receives various signals from sensors coupled to engine 10, in addition to those signals previously discussed, including: measurements of inducted mass air flow (MAF) from mass air flow sensor 110 coupled to throttle body 64; engine coolant temperature (ECT) from temperature sensor 112 coupled to cooling jacket 114; a measurement of throttle position (TP) from throttle position sensor 117 coupled to throttle plate 66; a measurement of turbine speed (Wt) from turbine speed sensor 119, where turbine speed measures the speed of a torque converter output shaft, and a profile ignition pickup signal (PIP) from Hall effect sensor 118 coupled to crankshaft 13 indicating an engine speed (N). Alternatively, turbine speed may be determined from vehicle speed and gear ratio.
Continuing with
In an alternative embodiment, where an electronically controlled throttle is not used, an air bypass valve (not shown) can be installed to allow a controlled amount of air to bypass throttle plate 62. In this alternative embodiment, the air bypass valve (not shown) receives a control signal (not shown) from controller 12. In another alternative embodiment, where a mass air flow sensor is not used, inducted mass air flow may be determined using a variety of computational methods. One example method, “speed-density”, computes inducted air mass based on engine speed and throttle position.
As noted herein, during engine starting operation a portion of injected fuel may not be available for combustion due to fuel vaporization. This phenomenon may be referred to as “lost fuel” and can be significantly influenced by intake port surface temperature at start-up and fuel volatility (vapor pressure and distillation properties). Other factors may influence “lost fuel”. These can include, but are not limited to, intake manifold pressure, barometric pressure (altitude effects), and deposits on the intake valves and intake port passages. Further, lost fuel can significantly impact open-loop fueling precision and accuracy, and cause the observed open-loop air-fuel ratio to deviate from the desired target value.
In this example, a closed-loop exhaust gas oxygen feedback signal is provided by a fast light-off HEGO (FLO HEGO) sensor 16. Stoichiometry (lambda=1.0) is the desired or target open-loop air-fuel ratio during the first 10 seconds of operation. The transition to closed-loop fueling starts after 10 seconds, and is shown as point A in
In this example, the open-loop fueling correctly accounts for lost fuel, and provides approximately stoichiometry immediately prior to closed-loop operation. However, variations in lost fuel due to system aging, temperature, altitude, and other parameters can cause differences between the open-loop air-fuel ratios, as illustrated in
In one example approach, it is possible to learn the above open-loop fueling errors (e.g., learn variations in lost fuel) by monitoring the first one or more cycles of closed-loop air-fuel control after an engine start to adjust later open-loop cold start fueling. For example, in the example of
Similarly, an opposite fueling adjustment of 0.1 could be used for the conditions of
Referring now to
open-loop due to a failure mode (FMEM) condition;
open-loop due to the open-loop exception flag being set;
open-loop due to drive performance;
forced open-loop;
open-loop due to exhaust over-temperature;
open-loop purge flag set (purge contributes to un-metered fuel);
purge idle test running;
purge monitor rate based idle test running;
purge flow monitor test running;
purge valve flowing;
purge system is not providing expected control response;
engine coolant temperature sensor (ECT), cylinder head temperature sensor (CHT), throttle position sensor (TPS), mass air-flow sensor (MAFS), electronic throttle control (ETC), gear selector switch (PRNDL), clutch switch, fuel rail pressure transducer (FRPT) faults or degradation;
EGR valve stuck open;
EGR intrusive test running;
fuel injector and fuel pump faults or failures;
deceleration fuel shut-off active;
engine on-demand test running;
secondary air monitor test running;
fuel override enabled; and/or
catalyst test running.
If the engine is not idling or if an exception condition is present, the routine exit. Otherwise, open-loop fueling is scheduled at 516. The open-loop relative desired air-fuel ratio, LAMBSE[ ], is computed by adding an adjusted open-loop adaptive correction term, CIA_OFS[ ], to the open-loop exhaust lambda, LAMBSE_EXH[ ]. Note that in V-type engine applications, the above parameters and associated error terms may be correlated on a per bank basis, and thus have unique values for each bank, indicated by brackets [ ], for example.
Continuing with
The routine then proceeds to 518 where the parameter, CIA_OL_LAMBSE[ ] is assigned the value of the most recently scheduled open-loop command LAMBSE[ ]. At 520, the entry conditions for closed-loop fueling are checked and, if not satisfied, the routine exits. Otherwise, the routine proceeds to 522 where closed-loop fueling based upon exhaust gas oxygen sensor feedback is invoked using the typical limit-cycle method (e.g., PI control). However, while such closed-loop control is used, the approach described herein may be used with various closed-loop control other than those that use limit-cycle exhaust gas oxygen feedback. For example, closed-loop fueling can be based on the exhaust air-fuel ratio feedback signal from a proportional-readout sensor, such as, a Universal Exhaust Gas Oxygen (UEGO) sensor.
Then, the routine proceeds to 524 to check for closed-loop idle operation and the presence of exception conditions. Excluding those items that are specifically associated with open-loop operation, the exception conditions may be the same as those described in 514, with the addition of certain exhaust gas oxygen (EGO/HEGO) sensor related exception conditions, for example. These may include HEGO sensor degradation or faults and/or upstream EGO monitor high frequency modulation. If the engine is not in closed-loop idle or an exception condition is present, the routine exits. However, in the example of EGO/HEGO degradation or faults for V-engine applications in which there is a feedback sensor in each bank, the routine may still continue to provide adjustment and/or learning for a bank of cylinders with properly functioning sensors only. In still another example, should one bank have a degraded sensor, the routine may continue execution using feedback from the bank that has the functioning sensor to provide control and learning for both banks. Such sensor substitution may be limited to conditions where the difference in air-fuel ratio between engine banks does not exceed a calibratable limit value prior to the EGO/HEGO degradation in the one bank.
Continuing with
Next, at 528, the routine determines whether a sufficient computational interval for lambda averaging has elapsed. As noted above, the averaging interval may be a first air-fuel limit cycle, or a first number of limit cycles, or may be based on a number of engine combustion cycles of a first one or more air-fuel limit cycles following commencement of closed-loop control, for example. The size of this interval may further be based on sensor characteristics, statistical significance, and other noise factors, and thus may be calibratable. If this calibratable interval has not been exceeded, the process returns to 524; otherwise, the routine proceeds to 530.
At 530, the lambda (fueling) difference, CIA_LAM_DIFF[ ] at the transition point from open-loop to closed-loop fueling is calculated by subtracting the value of the last open-loop lambda command prior to going closed-loop, CIA_OL_LAMBSE[ ], from the averaged closed-loop lambda command, LAMAVE[ ]. The routine then proceeds to 532 where the value of the open-loop lambda (fueling) error term at the transition from open-loop to closed-loop fueling, CIA_LAM_ERROR[ ], is computed by subtracting the quantity, (1—LAM_OL_DES[ ]), from the value of CIA_LAM_DIFF[ ] computed in 530. LAM_OL_DES[ ] represents the desired or intended open-loop lambda command value just prior to the open-loop to closed-loop transition. LAM_OL_DES [ ] may be both calibration and engine temperature dependent.
The routine next proceeds to 534 where the absolute value of the CIA_LAM_ERROR[ ] calculation is compared to the absolute value of a calibratable error hysteresis dead-band term, CIA_LAM_ERROR_HYS. In this way, it is possible to mitigate potential oscillatory behavior of the control caused by very small error perturbations. If the value of CIA_LAM_ERROR[ ] is less than (within) the hysteresis dead-band value, the process proceeds to 536, where the CIA_LAM_ERROR[ ] is assigned the stored lambda error value from the last execution of the routine, CIA_LAM_ERROR_LAST[ ]. The process then proceeds to 542. If the value of CIA_LAM_ERROR[ ] is greater than (outside) the hysteresis dead-band value, the process proceeds to 538.
In 538, a proportional, CIA_P[ ], derivative, CIA_D[ ], and integral, CIA_I[ ], controller terms are computed. While this example uses PID control, various other control approaches may be used. Continuing with the PID example, the proportional controller term, CIA_P[ ], is the product of a proportional gain term, CIA_GP[ ], and CIA_LAM_ERROR[ ]. The derivative controller term, CIA_D[ ], is the product of a differential gain term, CIA_GD[ ], and the difference between the current lambda error value, CIA_LAM_ERROR[ ] and the stored lambda error value from the last execution of the routine, CIA_LAM_ERROR_LAST[ ]. The integral controller term, CIA_I[ ], is the product of an integral gain term, CIA_GI[ ], and the sum of the current lambda error value, CIA_LAM_ERROR[ ] and the stored integral controller term value, CIA_I_LAST[ ], from the last execution of the routine.
Note that, as mentioned above, the cold-start “lost fuel” effect, where a large portion of the injected fuel is not available in cylinder for combustion, may be influenced by intake port surface temperature at start-up and fuel volatility (vapor pressure and distillation properties). Therefore, the values for the proportional, differential and integral gain terms may be at least partially dependent upon either engine coolant or cylinder head temperature (ECT or CHT), as well, as upon other conditions These conditions may include a partial dependence on barometric pressure (altitude effects). Also, the dependencies may be either linear or non-linear.
The routine then proceeds to 250, where an open-loop adaptive offset, CIA_OFS[ ], is computed by combining the proportional, derivative, and integral controller terms—CIA_P[ ], CIA_D[ ] and CIA_I[ ].
At 542, CIA_LAM_ERROR_LAST[ ] is assigned the CIA_LAM_ERROR[ ] value from either 532 or 536, and stored in memory. CIA_I_LAST[ ] is assigned the CIA_I[ ] value from 538, and stored in memory. CIA_OFS_LAST[ ] is assigned the CIA_OFS[ ] value from either 540 or 516, and stored in memory. KAMRF_CIA_LAST[ ] is assigned the current value for KAMRF[ ], and stored in memory. The CIA_OFS[ ] value is further stored in memory. Memory storage may be in the form of a single value, a two-dimensional transfer function (ƒ of x) value; or a multi-dimensional look-up table value. The memory storage locations for the transfer function or look-up table are parameter dependent. These parameters may include, but are not limited to, engine operating temperatures (ECT or CHT) and/or barometric pressures. Parameter dependency may be linear or non-linear. These stored values can then be used upon the next execution of the routine. Finally, the routine exits.
While
Specifically, the routine uses similar acts up through 532, but then continues to 610 where a delta lambda error term, CIA_DELTA_LAM_ERROR, is computed by subtracting a calibratable error hysteresis dead-band term, CIA_LAM_ERROR_HYS from the CIA_LAM_ERROR[ ] term. Next, at 612, the absolute value of the CIA_LAM_ERROR[ ] is compared to the absolute value of a calibratable error hysteresis dead-band term, CIA_LAM_ERROR_HYS. If the calculated value of CIA_LAM_ERROR[ ] is within the hysteresis dead-band value, the process proceeds to 614, where the CIA_DELTA_LAM_ERROR[ ] is assigned the stored delta lambda error value from the last execution of the routine, CIA_DELTA_LAM_ERROR_LAST[ ]. The process then proceeds to 620. Otherwise, if the calculated value of CIA_LAM_ERROR[ ] is outside the hysteresis dead-band value, the process proceeds to 616.
At 616, a proportional, CIA_P[ ], derivative, CIA_D[ ], and integral, CIA_I[ ], controller terms are computed. The proportional controller term, CIA_P[ ], is the product of a proportional gain term, CIA_GP[ ], and CIA_DELTA_LAM_ERROR[ ]. The derivative controller term, CIA_D[ ], is the product of a differential gain term, CIA_GD[ ], and the difference between the current delta lambda error value, CIA_DELTA_LAM_ERROR[ ] and the stored delta lambda error value from the last execution of the routine, CIA_DELTA_LAM_ERROR_LAST[ ]. The integral controller term, CIA_I[ ], is the product of an integral gain term, CIA_GI[ ], and the sum of the current delta lambda error value, CIA_DELTA_LAM_ERROR[ ] and the stored integral controller term value, CIA_I_LAST[ ], from the last execution of the routine.
Again, the values for the proportional, differential and/or integral gain terms used in 616 may be at least dependent upon either engine coolant or cylinder head temperature (ECT or CHT), as well as, upon other conditions including a partial dependence on barometric pressure (altitude effects). Also, the dependencies may be either linear or non-linear.
The routine then proceeds to 618, where the open-loop adaptive offset, CIA_OFS[ ], is computed by combining the proportional, derivative, and integral controller terms—CIA_P[ ], CIA_D[ ] and CIA_I[ ]. At 620, CIA_DELTA_LAM_ERROR_LAST[ ] is assigned the CIA_DELTA_LAM_ERROR[ ] value from either 610 or 614, and stored in memory. CIA_I_LAST[ ] is assigned the CIA_I[ ] value from 616, and stored in memory. CIA_OFS_LAST[ ] is assigned the CIA_OFS[ ] value from either 618 or 516, and stored in memory. KAMRF_CIA_LAST[ ] is assigned the current value for KAMRF[ ], and stored in memory. The CIA_OFS[ ] value is stored in memory, as previously described for 542 in
Various advantageous elements are illustrated via the above routines, including the use of adaptive terms having integral and derivative terms, in addition to a proportional term, thereby providing improved learning. Further, updating the adaptive term before adding it to the open-loop lambda term computed from the feedback execution of the open-loop A/F subroutine can provide improved response. This is accomplished by multiplying the adaptive term by the ratio of the KAMRF[ ] (the closed-loop adaptive air-fuel correction factor stored in keep-alive memory [KAM]) at the start, and KAMRF_CIA_LAST[ ] (the KAMRF[ ] value stored in memory at the time when CIA_OFS[ ] is computed) before it is added to the normally computed open-loop lambda. Also, the routine may suspend computation of the adaptive term while certain open-loop or closed-loop conditions are present, which can result in the introduction of unmetered air or fuel. These can include, but are not limited to, deceleration fuel shutoff (DFSO), open-loop/closed-loop fuel vapor purge, and diagnostic self-tests, for example. Computation of the adaptive term may also be suspended when certain sensor faults, failures and/or errors are present.
As illustrated by the above example routines, various operations may be achieved to provide improved results. For example, returning to
Thus, in this example, where stoichiometry is the expected value for the open-loop air-fuel ratio immediately prior to closed-loop operation, the desired CIA_LAM_DIFF value should be zero. Any deviation from this desired value of zero is considered a system error, CIA_LAM_ERROR. The gain factors can then be applied to the system error, and proportional, derivative and/or integral controller terms are generated. As shown in
Further examples of operation provided by the above routines can be illustrated by returning to
Still another example of operation provided by the above routines can be illustrated by returning to
Although the examples illustrated herein utilize stoichiometry (lambda=1.0) as the desired target air-fuel ratio at the end of the open-loop fueling period, this control methodology can also adaptively correct open-loop fueling errors for those applications where the desired target air-fuel ratio is either rich or lean of stoichiometry (i.e. lambda<1.0 or lambda>1.0).
Further, for the examples in
Note that the control routines included herein can be used with various engine configurations, such as those described above. The specific routine described herein may represent one or more of any number of processing strategies such as event-driven, interrupt-driven, multi-tasking, multi-threading, and the like. As such, various steps or functions illustrated may be performed in the sequence illustrated, in parallel, or in some cases omitted. Likewise, the order of processing is not necessarily required to achieve the features and advantages of the example embodiments described herein, but is provided for ease of illustration and description. One or more of the illustrated acts, steps, or functions may be repeatedly performed depending on the particular strategy being used. Further, the described steps may graphically represent code to be programmed into the computer readable storage medium in controller 12.
It will be appreciated that the configurations and routines disclosed herein are exemplary in nature, and that these specific embodiments are not to be considered in a limiting sense, because numerous variations are possible. For example, the above technology can be applied to V-6, I-4, I-6, V-8, V-10, V-12, opposed 4, and other engine types. The subject matter of the present disclosure includes all novel and nonobvious combinations and subcombinations of the various systems and configurations, and other features, functions, and/or properties disclosed herein.
The following claims particularly point out certain combinations and subcombinations regarded as novel and nonobvious. These claims may refer to “an” element or “a first” element or the equivalent thereof. Such claims should be understood to include incorporation of one or more such elements, neither requiring nor excluding two or more such elements. Other combinations and subcombinations of the disclosed features, functions, elements, and/or properties may be claimed through amendment of the present claims or through presentation of new claims in this or a related application. Such claims, whether broader, narrower, equal, or different in scope to the original claims, also are regarded as included within the subject matter of the present disclosure.
Number | Name | Date | Kind |
---|---|---|---|
5476085 | Becker et al. | Dec 1995 | A |
5483946 | Hamburg et al. | Jan 1996 | A |
5743244 | Bush et al. | Apr 1998 | A |
5839415 | Suzuki et al. | Nov 1998 | A |
5893349 | Rado | Apr 1999 | A |
6082345 | Ikeuchi et al. | Jul 2000 | A |
6161531 | Hamburg et al. | Dec 2000 | A |
6266957 | Nozawa et al. | Jul 2001 | B1 |
6360531 | Wiemero et al. | Mar 2002 | B1 |
6598589 | Frelund et al. | Jul 2003 | B2 |
Number | Date | Country |
---|---|---|
2004197693 | Jul 2004 | JP |
Number | Date | Country | |
---|---|---|---|
20070277787 A1 | Dec 2007 | US |