System and method for diagnosing a fault in an oxygen sensor based on engine speed

A system according to the principles of the present disclosure includes an error count module and a sensor diagnostic module. The error count module increases an error count when an actual air/fuel ratio is different from a desired air/fuel ratio and selectively adjusts the error count based on an actual engine speed. An oxygen sensor generates a signal indicating the actual air/fuel ratio. The sensor diagnostic module diagnoses a fault in the oxygen sensor when the error count is greater than a first predetermined count.

FIELD

The present disclosure relates to systems and methods for diagnosing a fault in an oxygen sensor based on engine speed.

BACKGROUND

An oxygen sensor may be positioned in an exhaust system to measure oxygen levels in exhaust gas from an engine. The oxygen sensor may generate an oxygen signal indicating the oxygen levels. The oxygen signal may also indicate an air/fuel ratio of the engine, which may be referred to as an actual air/fuel ratio. The amount of air and fuel provided to cylinders of the engine may be controlled based on a desired air/fuel ratio, such as a stoichiometric air/fuel ratio, and the actual air/fuel ratio.

Fuel control systems may operate in a closed-loop state or an open-loop state. In the closed-loop state, fuel injection may be controlled to minimize differences between the desired air/fuel ratio and the actual air/fuel ratio. In the open-loop state, fuel injection may be controlled independent from the actual air/fuel ratio. For example, fuel injection may be controlled based on a fuel map.

SUMMARY

A system according to the principles of the present disclosure includes an error count module and a sensor diagnostic module. The error count module increases an error count when an actual air/fuel ratio is different from a desired air/fuel ratio and selectively adjusts the error count based on an actual engine speed. An oxygen sensor generates a signal indicating the actual air/fuel ratio. The sensor diagnostic module diagnoses a fault in the oxygen sensor when the error count is greater than a first predetermined count.

DETAILED DESCRIPTION

An oxygen sensor may be a narrowband sensor or a wideband sensor. A narrowband sensor outputs a voltage indicating whether an air/fuel ratio is rich or lean. For example, an output voltage greater than a first voltage (e.g., 450 millivolts (mV)) may indicate a rich air/fuel ratio, and an output voltage less than the first voltage may indicate a lean air/fuel ratio. A wideband sensor outputs a voltage indicating the value of the air/fuel ratio.

An engine control module (ECM) may regulate fuel injection in an engine using closed-loop control to reduce error between a desired air/fuel ratio and an actual air/fuel ratio of the engine. The ECM may determine the desired air/fuel ratio based on engine operating conditions. The ECM may determine the actual air/fuel ratio based on the output voltage of an oxygen sensor disposed in an exhaust system of the engine.

The ECM may include a bias circuit that causes the output voltage of the oxygen sensor to indicate a rich or lean air/fuel ratio in the event of an open circuit in the oxygen sensor and/or wiring associated with the oxygen sensor. For example, an oxygen sensor signal may normally indicate a voltage between 50 mV and 850 mV, and the oxygen sensor signal may indicate a voltage as high as 1900 mV when biased. Systems and methods may diagnose a fault when the oxygen sensor signal is unexpectedly outside of the normal voltage range. However, the oxygen sensor signal may be stuck in a rich or lean state within the normal voltage range due to a fault in the oxygen sensor, a fault in wiring associated with the oxygen sensor, and/or the bias circuit. A sensor that is stuck in a rich or lean state may cause rough engine operation and/or an engine stall.

A system and method according to the principles of the present disclosure increases an error count when an actual air/fuel ratio is different from a desired air/fuel ratio, and selectively diagnoses a fault in an oxygen sensor based on the error count. The error count may be increased when the desired air/fuel ratio is lean and the actual air/fuel ratio is rich. The error count may also be increased when the desired air/fuel ratio is rich and the actual air/fuel ratio is lean. A fault in the oxygen sensor may be diagnosed when the error count is greater than a first predetermined count.

A system and method according to the principles of the present disclosure may apply a multiplier to the error count when an actual engine speed is less than a desired engine speed. The multiplier may be applied to the error count when a ratio of the actual engine speed to the desired engine speed is less than a first predetermined value and the error count is greater than a second predetermined count. The second predetermined count may be less than the first predetermined count. The second predetermined count may be predetermined to ensure that the multiplier is only applied when the actual engine speed is less than the desired engine speed due to a fuel shortage caused by a stuck rich fault or a fuel excess caused by a stuck lean fault.

A system and method according to the principles of the present disclosure may operate in an open-loop state or a pseudo-open-loop state when a faulty oxygen sensor is diagnosed. In the open-loop state, fuel injection may be controlled independent from any oxygen sensor input. In the pseudo-open-loop state, fuel injection may be controlled based on input from an oxygen sensor that is not faulty. For example, when a faulty oxygen sensor is disposed downstream from one cylinder bank of an engine, fuel injection in the cylinder bank may be controlled based on input from an oxygen sensor disposed downstream from another cylinder bank of the engine.

Diagnosing a fault in an oxygen sensor based on the error count provides diagnostic information that may be retrieved and utilized when a vehicle is serviced. Adjusting the error count using the multiplier when the actual engine speed is less than the desired engine speed accelerates diagnosis of a faulty engine sensor. Controlling fuel injection in the open-loop state or the pseudo-open-loop state when a faulty oxygen sensor is diagnosed prevents rough engine operation and an engine stall. Preventing rough engine operation and an engine stall improves customer satisfaction.

Referring now toFIG. 1, an engine system10includes an engine12that combusts an air/fuel mixture to produce drive torque for a vehicle and/or to produce torque to drive a generator to charge a battery (not shown) such as an electric vehicle battery. Air is drawn into the engine12through an intake system14. The intake system14includes a throttle valve16and an intake manifold18. The throttle valve16may include a butterfly valve having a rotatable blade. The throttle valve16opens to draw air into the intake manifold18. An engine control module (ECM)20outputs a throttle control signal22to control the amount of air drawn into the intake manifold18.

Air from the intake manifold18is drawn into cylinders24of the engine12through an intake valve26. Although the engine12is depicting as having eight cylinders, the engine12may have additional or fewer cylinders. The engine12is shown as a dual bank engine, and the cylinders24are distributed between a first bank28and a second bank30. Alternatively, the engine12may be a single bank engine.

One or more fuel injectors32inject fuel into the engine12. Fuel may be injected into the intake manifold18at a central location or at multiple locations, such as near the intake valve26of each of the cylinders24. In various implementations, fuel may be injected directly into the cylinders24or into mixing chambers associated with the cylinders24. The ECM20outputs a fuel control signal34to control the amount of fuel injected by the fuel injectors32.

The injected fuel mixes with air and creates an air/fuel mixture in the cylinders24. Pistons (not shown) within the cylinders24compress the air/fuel mixture. The engine12may be a compression-ignition engine, in which case compression in the cylinders24ignites the air/fuel mixture. Alternatively, the engine12may be a spark-ignition engine, in which case spark plugs (not shown) in the cylinder24generate a spark that ignites the air/fuel mixture. The ECM20may output a spark control signal (not shown) to control spark timing (i.e., when the spark plugs generate a spark).

The byproducts of combustion are expelled through an exhaust valve36and exhausted from the vehicle through an exhaust system38. The exhaust system38includes an exhaust manifold40and a three-way catalyst (TWC)42. The TWC42reduces nitrogen oxide and oxidizes carbon monoxide and hydrocarbon. The TWC42may store oxygen when an air/fuel ratio of the engine12is lean, and oxygen stored in the TWC42may be consumed as carbon monoxide and hydrocarbon are oxidized when the air/fuel ratio is rich. The ECM20may oscillate the air/fuel ratio between rich and lean within a narrow band near a stoichiometric air/fuel ratio to minimize emissions.

An intake air temperature (IAT) sensor44measures the temperature of air drawn through the intake system14and generates an IAT signal46indicating the intake air temperature. A mass airflow (MAF) sensor48measures the mass flow rate of air drawn through the intake system and generates a MAF signal50indicating the mass flow rate of intake air. A manifold absolute pressure (MAP) sensor52measures pressure in the intake manifold18and generates a MAP signal54indicating the manifold pressure. A crankshaft position (CKP) sensor56measures the position of a crankshaft (not shown) in the engine12and generates a CKP signal58indicating the crankshaft position. The ECM20determines an actual speed of the engine12based on the CKP signal58.

A first oxygen (O2) sensor60measures a first oxygen level in exhaust gas from the first bank28and generates a first O2 signal62indicating the first oxygen level. A second O2 sensor64measures a second oxygen level in exhaust gas from the second bank30and generates a second O2 signal66indicating the second oxygen level. An exhaust gas temperature (EGT) sensor68measures the temperature of exhaust gas and generates an EGT signal70indicating the exhaust gas temperature. A third O2 sensor72measures a third oxygen level in exhaust gas downstream from the TWC42and generates a third O2 signal74indicating the third oxygen level. The oxygen sensors60,64,72may be narrowband sensors or wideband sensors.

The ECM20receives the signals generated by the sensors discussed above and controls the engine12based on the signals received. The ECM20may diagnose a fault in the first O2 sensor60and/or the second O2 sensor64. Although the ECM20may diagnose a fault in either of the oxygen sensors60,64, for simplicity, the discussion below describes the ECM20diagnosing a fault in the first O2 sensor60. The ECM20may diagnose a fault in the second O2 sensor64in a similar manner.

The ECM20adjusts the fuel control signal34to achieve a desired air/fuel ratio. The ECM20determines an actual air/fuel ratio based on the first O2 signal62. The ECM20increases an error count when the actual air/fuel ratio is different from the desired air/fuel ratio. The ECM20diagnoses a fault in the first O2 sensor60when the error count is greater than a first predetermined count.

The ECM20may increase the error count when the desired air/fuel ratio is lean and the actual air/fuel ratio is rich. The ECM20may increase the error count when the desired air/fuel ratio is rich and the actual air/fuel ratio is lean. The ECM20may increase the error count at a rate that is based on the actual engine speed and/or the mass flow rate of intake air indicated by the MAF signal50.

The ECM20may adjust the error count when a ratio of the actual engine speed to a desired engine speed is less than a first predetermined value and the error count is greater than a second predetermined count. The second predetermined count may be less than the first predetermined count. The ECM20may stop adjusting the error count using the multiplier when the ratio of the actual engine speed to the desired engine speed is greater than a second predetermined value. The second predetermined value may be greater than the first predetermined value.

Referring now toFIG. 2, an example implementation of the ECM20includes an air/fuel ratio module202, an engine speed module204, an error count module206, a sensor diagnostic module208, a fuel control module210, and a throttle control module212. The air/fuel ratio module202determines whether an actual air/fuel ratio is rich or lean based on the first O2 signal62. For example, the actual air/fuel ratio may be rich when the first O2 signal62is greater than a predetermined voltage (e.g., 450 mV) and the actual air/fuel ratio may be lean when the first O2 signal62is less than the predetermined voltage. The predetermined voltage may correspond to a stoichiometric air/fuel ratio. The air/fuel ratio module202outputs a signal indicating whether the actual air/fuel ratio is rich or lean.

The air/fuel ratio module202may determine the value of the actual air/fuel ratio based on the first O2 signal62and/or the type of fuel combusted by the engine12. For example, the air/fuel ratio module202may determine that the actual air/fuel ratio is 14.7 when the first O2 signal62is equal to the predetermined voltage and the fuel type is gasoline. The fuel type may be predetermined, determined based on input received from a sensor (e.g., an ethanol sensor), and/or provided to the air/fuel ratio module202using, for example, an instrument panel and/or a service tool. The air/fuel ratio module202may output the value of the actual air/fuel ratio.

The engine speed module204determines the actual speed of the engine12based on the CKP signal58. For example, the engine speed module204may calculate the actual engine speed based on a period that elapses as the crankshaft in the engine12completes one or more revolutions. The engine speed module204outputs the actual engine speed.

The error count module206increases an error count when the actual air/fuel ratio is different from a desired air/fuel ratio. The desired air/fuel ratio may be a predetermined ratio such as a stoichiometric, rich, or lean air/fuel ratio. Additionally or alternatively, the fuel control module210may determine the desired air/fuel ratio, as discussed below, and output the desired air/fuel ratio to the error count module206. The error count may be a rich error count or a lean error count.

The error count module206may increase a rich error count when the desired air/fuel ratio is lean and the actual air/fuel ratio is rich. The error count module206may increase a lean error count when the desired air/fuel ratio is rich and the actual air/fuel ratio is lean. The error count module206may set the error count to zero when the desired air/fuel ratio and the actual air/fuel ratio are either both rich or both lean. The error count module206outputs the error count.

The error count module206may increase the error count at a rate that is based on engine operating conditions such as the mass flow rate of intake air indicated by the MAF signal50and the actual engine speed. The rate may be directly proportional to the engine operating conditions. The relationship between the rate and the engine operating conditions may be predetermined and may be linear or nonlinear.

The error count module206may apply a multiplier to the error count when the error count is greater than a first predetermined count and an error value is less than a first predetermined value. The error count module206may determine the error value based on the actual engine speed and the desired engine speed. For example, the error count module206may set the error value to a ratio of the actual engine speed to the desired engine speed. Thus, the error value may decrease as the actual engine speed decreases relative to the desired engine speed.

The error count module206may stop adjusting the error count using the multiplier when the error value is greater than a second predetermined value. The second predetermined value may be greater than the first predetermined value. This prevents toggling between applying the multiplier and not applying the multiplier as the error value transitions between less than and greater than the first predetermined value. Rather than stop applying the multiplier to the error count, the error count module206may set the multiplier to one so that applying the multiplier does not affect the error count.

The error count module206may set the multiplier to a predetermined value or to a value within a predetermined range (e.g., a value between 0 and 8). For example, the error count module206may set the multiplier to 8 to ensure that a fault is immediately diagnosed in the first O2 sensor60when the multiplier is applied to the error count. In another example, the error count module206may set the multiplier to 1.1 to accelerate diagnosis of a fault in the first O2 sensor60without immediately diagnosing a fault in the first O2 sensor60when the multiplier is applied.

The error count module206may determine the multiplier based on the error value (e.g., the ratio of the actual engine speed to the desired engine speed). For example, the error count module206may set the multiplier to 1.1 when the error value is 0.8. In another example, the error count module206may set the multiplier to 1.5 when the error value is 0.75.

The sensor diagnostic module208diagnoses a fault in the first O2 sensor60based on the error count. The sensor diagnostic module208may diagnose a stuck rich fault when the rich error count is greater than a second predetermined count. The sensor diagnostic module208may diagnose a stuck lean fault when the lean error count is greater than the second predetermined count. The second predetermined count may be greater than the first predetermined count. The first predetermined count, the second predetermined count, the first predetermined value, and/or the second predetermined value may be adjusted based on whether a stuck rich fault or a stuck lean fault is diagnosed. The sensor diagnostic module208outputs a signal indicating when a sensor fault is diagnosed. The sensor diagnostic module208may also set a diagnostic trouble code and/or activate a service indicator that delivers a message (e.g., light, text, chime, vibration) indicating that service is required.

The sensor diagnostic module208may not diagnose a fault in the first O2 sensor60when the first O2 signal62and the third O2 signal74indicate a lean air/fuel ratio or when the first O2 signal62and the third O2 signal74indicate a rich air/fuel ratio. The sensor diagnostic module208may diagnose the stuck lean fault when the lean error count is greater than the second predetermined count and the third O2 signal74indicates a rich air/fuel ratio. The sensor diagnostic module208may diagnose the stuck rich fault when the rich error count is greater than the second predetermined count and the third O2 signal74indicates a lean air/fuel ratio.

The fuel control module210outputs the fuel control signal34to control a rate at which fuel is injected by the fuel injectors32. The fuel control module210may control the fueling rate based on the mass flow rate of intake air to achieve the desired air/fuel ratio. The fuel control module210may determine the desired air/fuel ratio based on engine operating conditions to minimize emissions. The engine operating conditions may include the intake air temperature, intake air mass flow rate, the manifold pressure, the engine speed, and/or the exhaust gas temperature.

The fuel control module210may operate in a closed-loop state when the first O2 sensor60is operating normally. In the closed-loop state, the fuel control module210adjusts the fueling rate to minimize differences between the desired air/fuel ratio and the actual air/fuel ratio. The fuel control module210may control fuel injection in the first bank28based on input received from the first O2 sensor60and control fuel injection in the second bank30based on input received from the second O2 sensor64. Alternatively, the first O2 sensor60may be downstream from the first bank28and the second bank30, and the fuel control module210may control fuel injection in the first bank28and the second bank30based on input received from first O2 sensor60.

The fuel control module210may operate in an open-loop state or a pseudo-open-loop state when a fault is diagnosed in the first O2 sensor60. The fuel control module210may operate in the pseudo-open-loop state when more than one O2 sensor is disposed downstream from the engine12and one of the O2 sensors is not faulty. The fuel control module210may operate in the open-loop state when only a faulty O2 sensor is disposed downstream from the engine12.

In the open-loop state, the fuel control module210may control fuel injection independent from input received from the first O2 sensor60and the second O2 sensor64. For example, the fuel control module210may control fuel injection based on a fuel map. The fuel map may specify fuel injection parameters (e.g., fuel mass, fueling rate) based on engine operating conditions. The engine operating conditions may include the intake air temperature, intake air mass flow rate, the manifold pressure, the engine speed, and/or the exhaust gas temperature.

In the pseudo-open-loop state, when a fault is diagnosed in the first O2 sensor60, the fuel control module210may control fuel injection in the first bank28and the second bank30based on input received from the second O2 sensor64. For example, the fuel control module210may control fuel injection in the first bank28and the second bank30to minimize differences between an actual air/fuel ratio and the desired air/fuel ratio. The air/fuel ratio module202may determine the actual air/fuel ratio based on the second O2 signal66. Conversely, when a fault is diagnosed in the second O2 sensor64, the fuel control module210may control fuel injection in the first bank28and the second bank30based on input received from the first O2 sensor60.

The throttle control module212outputs the throttle control signal22to control a throttle area of the throttle valve16. The throttle control module212may adjust the throttle area to minimize differences between a desired mass flow rate and an actual mass flow rate. The throttle control module212may determine the desired mass flow rate based on driver input. For example, the driver input may be generated based on an accelerator pedal position and/or a cruise control setting.

The throttle control module212may determine the actual air mass based on engine operating conditions. The engine operating conditions may include the intake air temperature, mass airflow rate, and/or the manifold pressure. The engine operating conditions may also include a throttle position. The throttle position may be measured and/or determined based on the throttle control signal22. The throttle control module212may adjust the throttle position to minimize differences between a desired throttle position and an actual throttle position. The throttle control module212may determine the desired throttle position based on the driver input and output the resulting air mass.

Referring now toFIG. 3, a method for diagnosing a fault in an oxygen sensor begins at302. The oxygen sensor may be a narrowband sensor or a wideband sensor. At304, the method determines whether a desired air/fuel ratio is lean. If304is true, the method continues at306. Otherwise, the method continues at308.

The desired air/fuel ratio may be a predetermined ratio such a stoichiometric ratio or a ratio that oscillates between rich and lean within a predetermined range. The method may determine the desired air/fuel ratio based on engine operating conditions. The engine operating conditions may include intake air temperature, intake air mass flow rate, manifold pressure, engine speed, and/or exhaust gas temperature.

At306, the method determines whether an actual air/fuel ratio is rich. If306is true, the method continues at310. Otherwise, the method continues at312. The method determines whether the actual air/fuel ratio is rich or lean based on the output voltage of the oxygen sensor. For example, the actual air/fuel ratio may be rich when the output voltage is greater than 450 mV, and the actual air/fuel ratio may be lean when the output voltage is less than 450 mV.

At310, the method increases a rich error count. At314, the method determines whether the rich error count is greater than a first predetermined count. If314is true, the method continues at316. Otherwise, the method continues at304. At316, the method applies a multiplier to the rich error count. The method may adjust the multiplier based on a desired engine speed of and an actual engine speed, as discussed in more detail below with reference toFIG. 4. For example, the method may set the multiplier to one when a ratio of the actual engine speed to the desired engine speed is greater than a predetermined ratio and set the multiplier to a value that is greater than one when the ratio is less than the predetermined ratio. Additionally or alternatively, the method may only apply the multiplier when the ratio of the actual engine speed to the desired engine speed is less than the predetermined ratio.

At318, the method determines whether a rich error count is greater than a second predetermined count. The second predetermined count may be greater than the first predetermined count. The first predetermined count and/or the second predetermined count may be adjusted based on whether a stuck rich fault or a stuck lean fault is diagnosed. If318is true, the method continues at320. Otherwise, the method continues at304.

At320, the method diagnoses a stuck rich fault in the oxygen sensor. The method may set a diagnostic trouble code and/or activate a service indicator when a stuck rich fault is diagnosed. The service indicator indicates that service is required using a visual message (e.g., text), an audible message (e.g., chime), and/or a tactile message (e.g., vibration).

At322, the method operates in an open-loop state or a pseudo-open-loop state. In the open-loop state, the method controls fuel injection independent from input received from an oxygen sensor. In the pseudo-open-loop state, the method controls fuel injection based on input received from an oxygen sensor that is not faulty.

At308, the method determines whether the actual air/fuel ratio is rich. If308is true, the method continues at312. Otherwise, the method continues at324. At312, the method sets the rich error count and/or the lean error count to zero. At324, the method increases a lean error count.

At326, the method determines whether the lean error count is greater than the first predetermined count. If326is true, the method continues at328. Otherwise, the method continues at304. At328, the method applies the multiplier to the lean error count.

At330, the method determines whether the lean error count is greater than the second predetermined count. If330is true, the method continues at332. Otherwise, the method continues at304.

At332, the method diagnoses a stuck lean fault in the oxygen sensor. The method may set a diagnostic trouble code and/or activate the service indicator when a stuck lean fault is diagnosed.

Referring now toFIG. 4, a method for determining a multiplier begins at402. The multiplier may be used in a method for diagnosing a fault in an oxygen sensor such as the method described above with reference toFIG. 3. At404, the method determines an error value based on an actual engine speed and a desired engine speed. The method may set the error value to a ratio of the actual engine speed to the desired engine speed.

At406, the method determines whether the error value is greater than a first predetermined value. If406is true, the method continues at408. Otherwise, the method continues at410.

At408, the method sets the multiplier to a value that is greater than one. The method may set the multiplier to a predetermined value or to a value within a predetermined range (e.g., a value between 0 and 8). The method may determine the multiplier based on the error value.

At412, the method again determines the error value. At414, the method determines whether the error value is greater than a second predetermined value. The second predetermined value may be greater than the first predetermined value. The first predetermined value and/or the second predetermined value may be adjusted based on whether a stuck rich fault or a stuck lean fault is diagnosed. If414is true, the method continues at410. Otherwise, the method continues at412. At410, the method sets the multiplier to one.

Referring now toFIG. 5, an O2 sensor error signal502and an engine speed error signal504are illustrated. The O2 sensor error signal502indicates an error count that increases when an actual air/fuel ratio of an engine is different from a desired air/fuel ratio of the engine. The actual air/fuel ratio is measured using an O2 sensor that is located in an exhaust system of the engine.

The O2 sensor error signal502increases at506,508, and510when the desired air/fuel ratio is rich and the actual air/fuel ratio is lean. The O2 sensor error signal502increases at512and514when the desired air/fuel ratio is lean and the actual air/fuel ratio is rich. The engine speed error signal504indicates an error value that is equal to a ratio of an actual engine speed to a desired engine speed.

A multiplier is applied to the O2 sensor error signal502when the O2 sensor error signal502is greater than a first predetermined count516(e.g., 24) and the engine speed error signal504is less than a first predetermined value518(e.g., 0.75). An O2 sensor fault is diagnosed when the O2 sensor error signal502is greater than a second predetermined count520. At522, a first multiplier (e.g., 8) is applied to the O2 sensor error signal502to increase the O2 sensor error signal502to greater than the second predetermined count520(e.g., 40), causing immediate diagnosis of an O2 sensor fault.

At524, a second multiplier (e.g., 1.1) is applied to the O2 sensor error signal502to accelerate diagnosis of an O2 sensor fault without causing immediate diagnosis of an O2 sensor fault. At526, the engine speed error signal504increases to greater than a second predetermined value528(e.g., 0.85). As a result, the second multiplier is no longer applied to the O2 sensor error signal502.

The apparatuses and methods described herein may be partially or fully implemented by one or more computer programs executed by one or more processors. The computer programs include processor-executable instructions that are stored on at least one non-transitory tangible computer readable medium. The computer programs may also include and/or rely on stored data. Non-limiting examples of the non-transitory tangible computer readable medium include nonvolatile memory, volatile memory, magnetic storage, and optical storage.