(57)【特許請求の範囲】
【請求項１】
エンジンに供給される混合気の空燃比を検出する空燃比検出手段と、
該空燃比検出手段により検出された空燃比と所定の目標空燃比とのずれに基づいてフィードバック補正値を演算するフィードバック補正値演算手段と、
該フィードバック補正値演算手段により演算されたフィードバック補正値に基づいて学習値を演算する学習値演算手段と、
該学習値演算手段により演算された学習値の変更に同期して該変更された学習値の変化分に対応させてフィードバック補正値を修正するフィードバック補正値修正手段と、
上記フィードバック補正値演算手段により演算されたフィードバック補正値若しくは上記フィードバック補正値修正演算手段により修正されたフィードバック補正値を所定のガード値により規制するガード手段と、
上記ガード手段動作後のフィードバック補正値と学習値演算手段により演算された学習値とに基づいてエンジンに供給される混合気の空燃比を目標空燃比に収束するよう制御する空燃比制御手段とを備えたものにおいて、
上記空燃比検出手段の出力変化状態を検出する空燃比出力変化検出手段と、該空燃比出力変化検出手段により空燃比検出手段の出力変化が所定時間連続して検出されなかった時、フィードバック補正値の基準値とガード値とで規定されるフィードバック制御範囲が拡大するよう上記ガード手段のガード値を基準値から離れる方向に補正するガード値拡大手段と、
該ガード値拡大手段によりガード値が補正された後再度上記空燃比出力変化検出手段により上記空燃比検出手段の出力変化が所定時間連続して検出されなかった時、上記空燃比検出手段の異常を判定する一方、上記ガード値拡大手段によりガード値が補正された後上記空燃比出力変化検出手段により上記空燃比検出手段の出力変化の再開が検出された時、上記空燃比検出手段の正常を判定する故障診断手段とを有する、
ことを特徴とするエンジンの故障診断装置。
【請求項２】
上記学習値演算手段は、複数の運転領域毎に学習値を演算して記憶するように構成されており、かつ上記ガード手段は、所定運転領域において上記ガード値拡大手段によりガード値が補正された後該所定運転領域において上記故障診断手段による正常、異常の判定が終了するまでの間に運転領域が所定運転領域から異なる運転領域に移行した時は、移行前の所定運転領域におけるガード値を上記ガード値拡大手段により大きくされた値として記憶するよう構成されている、
ことを特徴とする請求項１記載のエンジンの制御装置。
【請求項３】
上記ガード値拡大手段は、上記故障診断手段により空燃比検出手段の正常が検出された時、ガード値を通常値に戻すよう構成されている、
ことを特徴とする請求項１記載のエンジンの制御装置。
【請求項４】
少なくともコンピュータと、空燃比を検出する空燃比検出手段及び燃料噴射量を制御する燃料噴射弁とを含むエンジンの故障診断装置に組込まれ、
空燃比検出手段により検出された空燃比と所定の目標空燃比とのずれに基づいてフィードバック補正値を演算する第１手順と、
第１手順により演算されたフィードバック補正値に基づいて学習値を演算する第２手順と、
第２手順により演算された学習値の変更に同期して該変更された学習値の変化分に対応させてフィードバック補正値を修正する第３手順と、
第２手順により演算されたフィードバック補正値若しくは第３手順により修正されたフィードバック補正値を所定のガード値により規制する第４手順と、
第４手順処理後のフィードバック補正値と第２手順により演算された学習値とに基づいてエンジンに供給される混合気の空燃比を所定の目標空燃比に収束するように制御する第５手順と、
空燃比検出手段の出力変化状態を検出する第６手順と、
第６手順により空燃比検出手段の出力変化が所定時間連続して検出されなかった時、フィードバック補正値の基準値とガード値とで規定されるフィードバック制御範囲が拡大するよう上記ガード手段のガード値を基準値から離れる方向に補正する第７手順と、
第７手順によりガード値が補正された後再度第６手順により空燃比検出手段の出力変化が所定時間連続して検出されなかった時、上記空燃比検出手段の異常を判定する一方、第７手順によりガード値が補正された後第６手順により空燃比検出手段の出力変化の再開が検出された時、空燃比検出手段の正常を判定する第８手順とを、
上記エンジンの故障診断装置に実行させることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エンジンの故障診断装置に関し、特に、空燃比検出手段の故障検出に関するものである。
【０００２】
【従来の技術】
従来、空燃比センサ出力に基づいてエンジンに供給される混合気の空燃比を目標空燃比にフィードバック制御するとともに、複数の運転領域毎にフィードバック補正値の平均値に基づいて演算される学習値を記憶・更新する学習制御を併用することによって、目標空燃比への収束応答性を向上することが行われている。
上述の制御では、エンジンの運転領域移行に伴ない学習値が変更される場合や同一運転領域において学習値が新たな値に更新されて変更される場合等、学習値が変更される場合、その変更に同期してフィードバック補正値が修正されるようになっている。これを、エンジンの運転領域が異なる運転領域に移行された場合を例に説明すると、エンジンの運転領域の移行に伴い学習値が移行前の運転領域に対応して記憶された学習値から移行後の運転領域に対応して記憶された値に変更されることになるが、学習値のみ変更するとフィードバック補正値と学習値とのトータルで決まる空燃比補正量が急変し、空燃比が急変する。そこで、学習値の変化分（変更前の学習値と変更後の学習値との差）に対応させてフィードバック補正値を増減補正することによって、フィードバック補正値と学習値とのトータルの補正量が運転領域移行前と移行後とで同一になるようにしている。
ところで、上述の制御においては、空燃比センサが故障すると、フィードバック制御が正しく行われなくなる。
そこで、空燃比センサ出力が所定時間連続して変化しない時、空燃比センサの故障を判定し、フィードバック制御を中止することが知られている。（例えば、特公平５−８１７４３号公報参照）
【０００３】
【発明が解決しようとする課題】
しかしながら、上述の先行技術では上述のように学習値が変更される時、空燃比センサの故障を誤判定するという問題がある。
つまり、学習値が変更される際、変更後の学習値が通常想定される空燃比のずれ相当の値よりもリッチ側へ大きく補正された値若しくはリーン側へ大きく補正された値に記憶されている、例えば、学習値がフィードバック補正値のリッチ側ガード値相当の値に記憶されていると、学習値の変更に伴うフィードバック補正値のリーン側への修正量も大きくなるため、その修正によってフィードバック補正値がリーンガード値にはりつき、フィードバック制御されなくなる。
その結果、空燃比センサがリッチ側若しくはリーン側にはりつき、空燃比センサが故障であると判定してしまう。
ところが、このように学習値が通常想定される空燃比のずれ相当の値よりも大きく設定されたことに起因して空燃比センサがはりついた場合は、空燃比センサ以外の原因によってはつりいていることも考えられる。
これは、燃料噴射弁やエアフローセンサ等燃料系の部品ばらつきや経年劣化が予想以上に大きい場合や、空燃比センサに対して一時的にノイズが発生した場合、空燃比のずれ量が通常想定されるずれよりも大きくなり、それに伴って学習値もリーン側若しくはリッチ側に大きくずれるためである。
従って、学習値の更新時における空燃比センサのはりつきを、直ちに空燃比センサの故障と判定すると誤判定する可能性がある。
【０００４】
本発明は、以上のような課題に勘案してなされたもので、その目的は、学習値の変更時、空燃比検出手段以外の要因に伴う大きな空燃比ずれを空燃比検出手段の異常として判定する誤判定を防止することにある。
【０００５】
【課題を解決するための手段】
前記目的を達成するため、本発明にあってはその解決手法として次のようにしてある。すなわち、本発明の第１の構成において、
エンジンに供給される混合気の空燃比空燃比を検出する空燃比検出手段と、
該空燃比検出手段により検出された空燃比と所定の目標空燃比とのずれに基づいてフィードバック補正値を演算するフィードバック補正値演算手段と、
該フィードバック補正値演算手段により演算されたフィードバック補正値に基づいて学習値を演算する学習値演算手段と、
該学習値演算手段により演算された学習値の変更に同期して該変更された学習値の変化分に対応させてフィードバック補正値を修正するフィードバック補正値修正手段と、
上記フィードバック補正値演算手段により演算されたフィードバック補正値若しくは上記フィードバック補正値修正手段により修正されたフィードバック補正値を所定のガード値により規制するガード手段と、
該ガード手段動作後のフィードバック補正値と上記学習値演算手段により演算された学習値とに基づいてエンジンに供給さける混合気の空燃比を所定の目標空燃比に収束するよう制御する空燃比制御手段とを備えたものにおいて、
上記空燃比検出手段の出力変化状態を検出する空燃比出力変化検出手段と、
該空燃比出力変化検出手段により空燃比検出手段の出力変化が所定時間連続して検出されなかった時、フィードバック補正値の基準値とガード値とで規定されるフィードバック制御範囲が拡大するよう上記ガード手段のガード値を基準値から離れる方向に補正するガード値拡大手段と、
該ガード値拡大手段によりガード値が補正された後再度上記空燃比検出手段により上記空燃比検出手段の出力変化が所定時間連続して検出されなかった時、上記空燃比検出手段の異常を判定する一方、上記ガード値拡大手段によりガード値が補正された後上記空燃比出力変化検出手段により上記空燃比検出手段の出力変化の再開が検出された時、上記空燃比検出手段の正常を判定する故障診断手段とを有する、
ようにしてある。
空燃比検出手段が正常で、燃料噴射弁やエアフローセンサ等燃料系の部品ばらつきや経年劣化が予想以上に大きい場合や、空燃比検出手段に対する一時的ノイズに起因して空燃比が大きくずれている場合であれは、フィードバック補正値に対するガード値を補正してフィードバック制御範囲を拡大してやれば、大きなずれに対するフィードバック制御が可能となり、空燃比を所定の目標空燃比に収束させることができるが、空燃比検出手段が本当に異常であれば、フィードバック制御範囲を拡大しても空燃比検出手段の検出値は変化しないため、空燃比を所定の目標空燃比に収束させることはできない。
本発明はこの点に着目してなされたものであって、本発明の第１の構成によれば、ガード値の補正によって空燃比検出手段の出力変化が検出された場合空燃比検出手段は正常と判定し、ガード値の補正によっても空燃比検出手段の出力変化が検出されない場合空燃比検出手段は異常と判定するようになっているため、学習値の変更時空燃比検出手段以外の要因に伴う大きな空燃比ずれを空燃比検出手段の異常として判定する誤判定を防止できる。
【０００６】
本発明の第２の構成において、上記学習値演算手段は、複数の運転領域毎に学習値を演算して記憶するように構成されており、かつ上記ガード手段は、所定運転領域において上記ガード値拡大手段によりガード値が補正された後該所定運転領域において上記故障診断手段による正常、異常の判定が終了するまでの間に運転領域が所定運転領域から異なる運転領域に移行した時は、移行前の所定運転領域におけるガード値を上記ガード値拡大手段により大きくされた値として記憶する、
ようにしてある。
本発明の第２の構成によれば、ガード値変更後空燃比検出手段の故障を診断する前に運転領域が変更され、再度変更前の運転領域に復帰した際、空燃比検出手段の出力変化が連続して検出されない状態を検出するまでもなく既にガード値が補正されているので、空燃比検出手段が正常か異常かを速やかに判定することができる。
【０００７】
本発明の第３の構成において、上記ガード値拡大手段は、上記故障診断手段により空燃比検出手段の正常が検出された時、ガード値を通常値に戻す、
ようにしてある。
通常、空燃比のフィードバック補正値に対するガード値の大きさは、過渡運転時を考慮して設定されている。つまり、加速時等の過渡運転時には一時的に空燃比のずれが大きくなり、その大きなずれに対応してフィードバック補正値も大きくずれると、その後フィードバック値が過渡運転前の値に戻るまで時間がかかり、その間空燃比がずれる。そこで、過渡運転時にフィードバック補正値が大きくずれないようガード値を設定している。
本発明の第３の構成によれば、フィードバック制御範囲が拡大するようガード値を補正した後空燃比検出手段の正常が検出された時はガード値が通常値に戻されるため、空燃比のずれが大きくなる加速時等の過渡運転時において、フィードバック補正値が大きくなり空燃比が大きくずれることによる運転性悪化を防止できる。
【０００８】
本発明の第４の構成において、少なくともコンピュータと、空燃比を検出する空燃比検出手段及び燃料噴射量を制御する燃料噴射弁とを含む内燃機関の故障診断装置に組込まれ、
空燃比検出手段により検出された空燃比と所定の目標空燃比とのずれに基づいてフィードバック補正値を演算する第１手順と、
第１手順により演算されたフィードバック補正値に基づいて学習値を演算する第２手順と、
第２手順により演算された学習値の変更に同期して該変更された学習値の変化分に対応させてフィードバック補正値を修正する第３手順と、
第１手順により演算されたフィードバック補正値若しくは第３手順により修正されたフィードバック補正値を所定のガード値により規制する第４手順と、
第４手順処理後のフィードバック値と第３手順により演算された学習値とに基づいてエンジンに供給される混合気の空燃比を所定の目標空燃比に制御する第５手順と、
空燃比検出手段の出力変化状態を検出する第６手順と、
第６手順により空燃比検出手段の出力変化が所定時間連続して検出されなかった時、フィードバック補正値の基準値とガード値とで規定されるフィードバック制御範囲が拡大するよう上記ガード手段のガード値を基準値から離れる方向に補正する第７手順と、
第７手順によりガード値が補正された後再度第６手順により空燃比検出手段の出力変化が所定時間連続して検出されなかった時、空燃比検出手段の異常を判定する一方、第７手順によりガード値が補正された後第６手順により空燃比検出手段の出力変化の再開が検出された時、上記空燃比検出手段の正常を判定する第８手順とを、
上記エンジンの故障診断装置に実行させるようにしてある。
本発明の第４の構成によれば、ガード値の補正によって空燃比検出手段の出力変化が検出された場合空燃比検出手段は正常と判定し、ガード値の補正によっても空燃比検出手段の出力変化が検出されない場合空燃比検出手段は異常と判定するようになっているため、学習値の変更時空燃比検出手段以外の要因に伴う大きな空燃比ずれを空燃比検出手段の異常として判定する誤判定を防止できる。
【０００９】
【発明の効果】
本発明によれば、学習値の変更時、空燃比検出手段以外の要因に伴う大きな空燃比ずれを空燃比検出手段の異常として判定する誤判定を防止できる。
【００１０】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。
図１は、空燃比制御、故障診断を行うためのエンジン制御ユニット１と、各種センサ及びエンジン制御ユニット１により駆動されるアクチュエータとの入出力関係を示す全体構成図である。
尚、本実施形態では、エンジン制御ユニット１によって制御されるエンジンとして、４気筒エンジンに適用した例を示す。
【００１１】
エンジン制御ユニット１には、エンジンの排気通路に配置され、排気中の酸素濃度を検出することによってエンジンの燃焼室に供給される混合気の空燃比を検出するＯ２センサ２、エンジン回転数を検出するエンジン回転数センサ３、エンジンの燃焼室に吸入される吸入空気量を検出するエアフローセンサ４等各種センサの検出値が入力される。
尚、上記Ｏ２センサ２は、出力電圧が所定の空燃比判定値（例えば、０．５５Ｖ）よりも大きい時所定のリッチ出力（例えば、１Ｖ）を示し、所定の空燃比判定値よりも小さい時所定のリーン出力（例えば、０Ｖ）を示すＯＮ−ＯＦＦタイプである。
【００１２】
エンジン制御ユニット１は、メモリに記憶されたコンピュータ・プログラムに基づいて４気筒エンジンの各気筒に設けられた燃料噴射弁５と、故障診断の結果に基づいて点灯、消灯されるＭＩＬ（Malfunction Indicator Lamp）６とを制御するようになっている。
具体的には、Ｏ２センサ２により検出された空燃比と所定の目標空燃比（本実施形態では理論空燃比）との差に基づいてフィードバック補正値を演算するフィードバック補正値演算手段１ａと、予め設定した複数の運転領域毎にフィードバック補正値演算手段１ａにより演算されたフィードバック補正値の平均値に基づいて学習値を各々演算、記憶更新する学習値演算手段１ｂと、学習値演算手段１ｂにより演算された学習値の変化（変更前の学習値と変更後の学習値との差）に対応させてフィードバック補正値演算手段１ａにより演算されたフィードバック補正値を修正するフィードバック補正値修正手段１ｃと、フィードバック補正値演算手段１ａにより演算されたフィードバック補正値若しくはフィードバック補正値修正手段１ｃにより修正されたフィードバック補正値がガード値よりも大きい場合、フィードバック補正値をガード値で規制するガード手段１ｄと、ガード手段１ｄによる処理後のフィードバック補正値と学習値演算手段１ｂにより演算された学習値とを基本燃料噴射量（エンジン回転数センサ３、エアフローセンサ４の検出値により設定される燃料噴射量）に対して各々乗算補正（基本燃料噴射×フィードバック補正値×学習値）して、エンジンの燃焼室に供給される混合気の空燃比が理論空燃比に収束するように空燃比を制御する空燃比制御手段１ｅと、Ｏ２センサ２の出力変化状態、つまり、Ｏ２センサ２の出力がフィードバック制御によってリッチ側出力若しくはリーン側出力に変化しているのか、いずれか一方の出力に偏ったまま所定時間連続して出力変化がないのかを検出する空燃比出力変化検出手段１ｆと、空燃比出力変化検出手段１ｆによりＯ２センサ２の出力変化が所定時間連続してないことが検出された時、フィードバック補正値の基準値（フィードバック補正値が実質反映されない値で、例えば、乗算補正の場合略１、加減算補正の場合略０）とガード値とで規定されるフィードバック制御範囲が拡大するようガード手段１ｄのガード値を大きくするガード値拡大手段１ｇと、ガード値拡大手段１ｇによりガード値を大きくした後再度Ｏ２センサ２の出力が所定時間連続して変化しない時Ｏ２センサ２の故障を判定してＭＩＬ６を点灯する一方、ガード値拡大手段１ｇによりガード値を大きくした後Ｏ２センサ２の出力変化が再開された時Ｏ２センサ２の正常を判定してＭＩＬ６を消灯する故障診断手段１ｈとから構成される。
尚、上記ガード値拡大手段１ｇは、故障診断手段１ｈにより故障診断によりＯ２センサ２が正常であることが判定された時は、ガード値拡大手段１ｇの作動をキャンセルしてガード値を通常値に戻すように構成されている。
【００１３】
以下、エンジン制御ユニット１による空燃比のフィードバック制御（フィードバック補正値の設定、ガード値の設定）、学習制御（学習値の設定）及びＯ２センサ２の故障診断について、具体的制御を図２〜図６に基づいて説明する。
【００１４】
（フィードバック補正値の設定）
図２において、ステップＳ１ではＯ２センサ２、エンジン回転数センサ３、エアフローセンサ４等の各種センサ検出値が入力される。
ステップＳ２では、所定の空燃比フィードバック条件が成立しているか否か判定する。ステップＳ２でＹＥＳと判定された時は、ステップＳ３でフィードバック補正値を設定する。フィードバック補正値は、従来からよく知られている比例、積分制御により設定される。尚、ステップＳ２では、例えば、以下の全ての条件が成立した時、フィードバック条件が成立したと判定する。
・所定のフィードバック制御領域（低・中回転、低・中負荷領域）
・エンジン水温が所定値（例えば、４０℃）以上
・Ｏ２センサ２が活性
【００１５】
ステップＳ４では、学習領域の変化があったか否か判定する。学習領域は、例えば、図３に示されるように、エンジン回転数と吸気充填効率（エアフローセンサ４により検出された吸入空気量をエンジン回転数センサ３により検出されたエンジン回転数で除した値で、１回転当たりの吸入空気量）とによって４つの領域に区画されている。
ステップＳ４でＹＥＳと判定された時は、ステップＳ５に進み、変化後の学習領域に記憶された学習値を読み出す。続く、ステツプＳ６では、変化前の学習領域に記憶された学習値と変化後の学習領域に記憶された学習値との差分を求め、ステップＳ３で演算されたフィードバック補正値から求められた差分を減算してフィードバック補正値を修正する。
尚、ステップＳ４でＮＯと判定された時は、学習値の変更がないため、ステップＳ５、Ｓ６のフィードバック補正値の修正を行うことなくステツプＳ７に進む。
【００１６】
ステップＳ７では、図３に示される各学習領域毎に記憶されたフィードバック補正値に対する上限ガード値Ｌ（空燃比のリッチ側補正に対するガード）、下限ガード値−Ｌ（空燃比のリーン側補正に対するガード）を読み出す。尚、ガード値Ｌ、−Ｌの設定については、後で詳述する。
続く、ステップＳ８では、ステップＳ３若しくはステップＳ６で求められたフィードバック補正値がステップＳ７で読み出された上限ガード値Ｌよりも大きいか否か判定する。ステップＳ８でＹＥＳと判定された時は、ステップＳ９でフィードバック補正値を上限ガード値Ｌに規制し、上限ガード値Ｌを最終的なフィードバック補正値として設定する。
また、ステップＳ８でＮＯと判定された時は、ステップＳ１０でステップＳ３若しくはステップＳ６で求められたフィードバック補正値がステップＳ７で読み出された下限ガード値−Ｌよりも小さいか否か判定する。ステップＳ１０でＹＥＳと判定された時は、ステップＳ１１でフィードバック補正値を下限ガード値−Ｌに規制し、下限ガード値−Ｌを最終的なフィードバック補正値として設定する。
また、ステップＳ１０でＮＯと判定された時は、ステップＳ３若しくはステップＳ６で求められたフィードバック補正値が上限ガード値Ｌと下限ガード値−Ｌとで定まるフィードバック制御範囲内に収まっていることから、ステップＳ９、Ｓ１１の処理を行うことなく、ステップＳ３若しくはステップＳ６で求められたフィードバック補正値が最終的なフィードバック補正値となる。
尚、ステップＳ２でＮＯと判定された時は、フィードバック条件が成立していないことから、ステップＳ１１でフィードバック補正値を基準値１．０に設定し、リターンする。
【００１７】
（ガード値の設定）
図４において、Ｓ２０ではＯ２センサ２、エンジン回転数センサ３、エアフローセンサ４等の各種センサ検出値が入力される。
ステップＳ２１では、今回の学習領域が前回の学習領域と同一か否か判定し、ステップＳ２１でＹＥＳと判定された時は、ステップＳ２２に進み、今回の学習領域に対応して記憶されているガード値Ｌ、−Ｌを読み出す。
【００１８】
続く、ステップＳ２３では、Ｏ２センサ２の反転がないか否か判定する。
ステップＳ２３でＹＥＳと判定された時は、ステップＳ２４ではりつきカウンタＣをカウントダウンし、ステップＳ２３でＮＯと判定された時は、ステップＳ２５ではりつきカウンタＣを初期値Ｃにセットする。
【００１９】
ステップＳ２６では、はりつきカウンタＣが０になったか否か判定、つまり、Ｏ２センサ２の反転がなくなってから所定時間連続経過したはりつき状態か否かを判定する。ステップＳ２６でＹＥＳと判定された時は、ステップＳ２７でガード値Ｌ、−Ｌを通常値Ｌ１、−Ｌ１よりも大きいＬ２、−Ｌ２に変更し、ステップ２８ではステップＳ２７で設定されたガード値Ｌ２、−Ｌ２を当該学習領域のガード値Ｌ、−Ｌとして記憶する。
【００２０】
ステップＳ２６でＮＯと判定された時は、ステップＳ２９に進む。ステップＳ２９ではガード値Ｌ、−ＬがＬ２、−Ｌ２に変更されているか否か判定し、ステップＳ２９でＹＥＳと判定された時は、ステップＳ３０で後述する学習値更新フラグＦＣが１に設定されているか否か判定する。そして、ステップＳ３０でＹＥＳと判定された時、つまり、前回Ｏ２センサ２のはりつき状態が判定されて一旦ガード値Ｌ、−Ｌが大きい値Ｌ２、−Ｌ２に変更された状態で、学習値の更新が行われた場合は、前回のＯ２センサ２のはりつき状態はＯ２センサ２の故障ではないと判定できるため、ステップＳ３１でガード値を通常値Ｌ１、−Ｌ１に戻す。
ステップＳ２９でＮＯと判定された時は、ガード値は通常値Ｌ１、−Ｌ１であるため、ステップＳ３０、Ｓ３１の処理を行うことなくステップＳ２８で通常値Ｌ１、−Ｌ１を現在の学習領域のガード値として記憶する。
【００２１】
（学習制御）
図５において、ステップＳ４０ではＯ２センサ２、エンジン回転数センサ３、エアフローセンサ４等の各種センサ検出値が入力される。続く、ステップＳ４１では、今回の学習領域が前回の学習領域と同一か否か判定する。ステップＳ４１でＹＥＳと判定された時は、ステップＳ４２でＯ２センサ２の反転回数が所定回数Ｎに達したか否か判定する。ステップＳ４２でＹＥＳと判定された時、つまり、同一学習領域で所定時間連続してフィードバック補正ができている時は、以降、この間のフィードバック補正値に基づいて当該学習領域の学習値を最新の値に更新する。
【００２２】
ステップＳ４３では学習領域が図３で示される学習領域１か否か判定し、ステップＳ４３でＹＥＳと判定された時は、ステップＳ４４で学習領域１の学習値を更新する。ここで、学習値は次のとおり更新される。Ｏ２センサ２が所定回数Ｎ反転する間にサンプリングされたフィードバック補正値の平均値の１／２を前回の学習値に加減補正して更新する。（学習値＝前回の学習値＋フィードバック補正値の平均値×１／２）
ステップＳ４３でＮＯと判定された時は、ステップＳ４５で学習領域が学習領域２か否か判定し、ステップＳ４５でＹＥＳと判定された時は、ステップＳ４６で学習領域２の学習値を更新する。
ステップＳ４５でＮＯと判定された時は、ステップＳ４７で学習領域が学習領域３か否か判定し、ステップＳ４７でＹＥＳと判定された時は、ステップＳ４８で学習領域３の学習値を更新する。
ステップＳ４７でＮＯと判定された時は、学習領域は学習領域４であるため、ステップＳ４９で学習領域４の学習値を更新する。
尚、ステップＳ４６、ステップＳ４８、ステップＳ４９における学習値の具体的更新方法は、ステップＳ４４と同様である。
上述のように学習値の更新完了した後は、ステップＳ５０で、学習値の更新が完了したことを示す学習値更新フラグＦＣを１にセットするとともに、ステップＳ５１でＯ２センサ２の反転回数Ｎを０リセットする。
【００２３】
ステップＳ４２でＮＯと判定された時は、学習値の更新が可能な程同一学習領域でのフィードバック補正が十分継続してないと判断されるため、ステップＳ５２でＯ２センサ２の反転回数Ｎをカウントアップした後、ステップＳ５３では現在の学習領域に記憶されている学習値を読み出し、読み出された学習値を今回の学習値として設定する。
【００２４】
ステップＳ４１でＮＯと判定された時は、学習領域の移行直後で学習値の更新はできないため、ステップＳ５４でＯ２センサ２の反転回数Ｎを０リセットし、ステップＳ５５で学習更新フラグＦＣを０にリセットする。
【００２５】
（Ｏ２センサ２の故障診断）
図６において、ステップＳ６０では、異常確定フラグＦが１にセットされているか否か判定する。ステップＳ６０でＮＯと判定された時は、ステップＳ６１では図４で説明したはりつきカウンタＣが０になっており、かつ図４で説明したガード値Ｌ、−Ｌが通常値よりも大きい値Ｌ２、−Ｌ２に拡大されているか否か判定する。つまり、一旦Ｏ２センサ２がはりついて、ガード値Ｌ、−Ｌが拡大されて状態にあるか否かを判定する。
【００２６】
ステップＳ６１でＹＥＳと判定された時は、ステップＳ６２で仮異常判定フラグＦＫが１にセットされているか否か判定する。ステップＳ６２でＹＥＳと判定された時は、一旦Ｏ２センサ２がはりついて、ガード値Ｌ、−ＬがＬ２、−Ｌ２に拡大されたにも関わらずＯ２センサ２が再度はりついていると判断されるため、ステップＳ６３で異常確定フラグＦを１にセットし、ステップＳ６４でＭＩＬ６を点灯させる。
【００２７】
ステップＳ６２でＮＯと判定された時は、初めてＯ２センサ２がはりついて、ガード値Ｌ、−Ｌが拡大された状態と判断されるため、ステップＳ６５で仮異常判定フラグＦＫを１にセットした後、ステップＳ６６では異常確定フラグＦを０にリセットする。
また、ステップＳ６１でＮＯと判定された時は、Ｏ２センサ２が正常に反転していると判断されるため、ステップＳ６７で仮異常判定フラグＦＫを０にリセットした後、ステップＳ６６で異常確定フラグＦを０にリセットする。
尚、ステップＳ６０でＹＥＳと判定された時は、既に異常確定フラグＦが１にセットされ、異常判定が確定しているため、ステップＳ６４に進み、ＭＩＬ６を点灯する。
【００２８】
以下、図７に基づいて本実施形態に関わる作用を説明する。
図７は、Ｏ２センサ２の出力、はりつきカウンタＣ、フィードバック補正値、学習値、仮異常判定フラグＦＫ及び異常確定フラグＦの動きを示すタイムチャートで、学習領域が学習領域２から学習領域３に移行した時の動きを示す。
【００２９】
まず、学習領域２では、図７に示すとおりＯ２センサ２が正常に反転しており、そのＯ２センサ２出力に同期してフィードバック補正値が演算される。
その後、ｔ１の時点において、学習領域が学習領域２から学習領域３に移行すると、その移行に伴って学習値が学習領域２の値から学習領域３の値に変更される。
ここで、図７に示すように、学習領域３の学習値３が学習領域２の学習値２に対して大きく＋側（リッチ側）の値に変更されると、その変更に同期してフィードバック補正値が学習領域２の学習値２と学習領域３の学習値３との差分も大きくなり、フィードバック補正値が−側に大きく補正されるため、ｔ１の時点においてフィードバック補正値が通常の下限ガード値−Ｌ１にはりつく。
【００３０】
フィードバック補正値が下限ガード値−Ｌにはりつくと、フィートバック補正が行われなくなることから空燃比がリッチ側にずれ、Ｏ２センサ２出力はリッチ側出力にはりつく。
Ｏ２センサ２出力はリッチ側出力にはりつくと、はりつきカウンタＣがカウントダウンされ、つまり、はりつき時間が開始される。
ｔ２の時点において、はりつきカウンタＣが０までカウントダウンされると、ガード値は通常値Ｌ１、−Ｌ１からガード値Ｌ２、−Ｌ２に変更される。
尚、ガード値が−Ｌ２に拡大されると、仮異常判定フラグＦＫが１にセットされるとともに、フィードバック補正値が一旦基準値１．０にリセットされる。
【００３１】
ｔ２の時点でガード値がＬ２に拡大された後、再びフィードバック補正によってフィードバック補正値が−側（リーン側）に補正されるが、図７に示すとおりＯ２センサ２が正常であれば、下限ガード−Ｌ１と−Ｌ２との間においてＯ２センサ２が反転を開始される。
そして、ｔ３の時点において、Ｏ２センサ２の反転回数が所定回数Ｎに達すると学習値が学習値３から学習値３'に更新されると、ガード値がＬ２、−Ｌ２から通常値Ｌ１、−Ｌ１に戻されるとともに、仮異常判定フラグＦＫが０にリセットされる。
尚、ガード値をＬ２、−Ｌ２に拡大したにも関わらず、二点鎖線で示すようにはりつきカウンタＣが０になると、ｔ４の時点において、異常確定フラグＦが１にセットされる。
【００３２】
従って、本実施形態によれば、以下の効果が得られる。
（１）ガード値Ｌ、−Ｌの拡大によってＯ２センサ２のはりつきが解消された時は正常と判定し、ガード値Ｌ、−Ｌの拡大によってもＯ２センサ２のはりつきが解消されない時、初めてＯ２センサ２の異常と判定するようになっているため、Ｏ２センサ２の異常以外の要因に伴うＯ２センサ２の異常誤判定を防止できる。
（２）ガード値Ｌ、−Ｌが一旦大きな値Ｌ２、−Ｌ２に変更された後、Ｏ２センサ２の正常、異常が検出される前に学習領域が変更されても、当該学習領域のガード値Ｌ、−Ｌが拡大されたガード値Ｌ２、−Ｌ２として記憶される。従って、その後学習領域が変更前の学習領域に戻ってきてもガード値Ｌ、−Ｌは既にＬ２、−Ｌ２に拡大されているため、Ｏ２センサ２の正常、異常を速やかに判定できる。
（３）ガード値Ｌ、−Ｌを大きくした後Ｏ２センサ２の正常が判定された時は、ガード値Ｌ、−Ｌが通常値Ｌ１、−Ｌ１に戻されるため、空燃比のずれが大きくなる加速時等の過渡運転時において、フィードバック補正値が大きくなり空燃比が大きくずれることによる運転性悪化を防止できる。
【００３３】
尚、本実施形態では、空燃比検出手段としてＯＮ−ＯＦＦタイプのＯ２センサ２に適用する例を示したが、検出空燃比に応じてリニアな出力を示すリニア空燃比センサに適用してもよい。
また、本実施形態では、Ｏ２センサ２の正常判定後、ガード値Ｌ、−Ｌを通常値Ｌ１、−Ｌ１に戻す例を示したが、拡大したままでもよい。
また、本実施形態では、仮異常判定フラグＦが１にセットされた時点でフィードバック補正値を一旦基準値１．０に戻すようにしたが、ガード値−Ｌ１の時点から継続してフィードバック補正を行うようにしてもよい。
【図面の簡単な説明】
【図１】全体構成図。
【図２】フィードバック補正値の設定制御内容を示すフローチャート。
【図３】学習領域を示す図。
【図４】ガード値の設定制御内容を示すフローチャート。
【図５】学習値の設定制御内容を示すフローチャート。
【図６】Ｏ２センサの故障診断制御内容を示すフローチャート。
【図７】本実施形態に関わるタイムチャート。
【符号の説明】
１ａ：フィードバック補正値演算手段
１ｂ：学習値演算手段
１ｃ：フィードバック補正値修正手段
１ｄ：ガード手段
１ｅ：空燃比制御手段
１ｆ：空燃比出力変化検出手段
１ｇ：ガード値拡大手段
１ｈ：故障診断手段
２：Ｏ２センサ
【図１】
0004453236.tif 000002
【図２】
0004453236.tif 000003
【図３】
0004453236.tif 000004
【図４】
0004453236.tif 000005
【図５】
0004453236.tif 000006
【図６】
0004453236.tif 000007
【図７】
0004453236.tif 000008