(57)【要約】【課題】  この発明は触媒の上流に空燃比センサを下流に酸素センサを備える内燃機関の空燃比制御装置に関し、酸素センサの出力に基づいて空燃比センサの特性を精度良く修正することを目的とする。【解決手段】  触媒がフル状態となるように上流空燃比をリーン制御する（ステップ１００〜１０２）。フル状態が形成されたら空燃比センサの出力が理論空燃比対応値stoichと一致するように上流空燃比を制御する（ステップ１０４〜１０６）。酸素センサ１８の出力O2がリーン出力となったらstoichにリーンずれが生じていると判断してその値をリッチ化する（ステップ１１２）。出力O2がリッチ出力となったらstoichにリッチずれが生じていると判断してその値をリーン化する（ステップ１２０）。出力O2がストイキ出力のまま判定完了時間が過ぎたらそのまま処理を終える（ステップ１１６）。【選択図】      図４
2005315110.tif 000002
【特許請求の範囲】
【請求項１】
排気通路に触媒を備える内燃機関の空燃比制御装置であって、
前記触媒の上流に配置される空燃比センサと、
前記触媒の下流に配置される酸素センサと、
前記触媒が、酸素を一杯に吸蔵したフル状態となるように、或いは全ての吸蔵酸素を放出した空状態となるように、前記触媒の上流における排気空燃比を制御する準備状態形成手段と、
前記フル状態或いは空状態が形成された後に、前記空燃比センサの出力が理論空燃比対応値となるように、前記排気空燃比を制御するストイキ状態形成手段と、
前記空燃比センサの出力が理論空燃比対応値となった後の前記酸素センサの出力に基づいて、前記理論空燃比対応値にずれが生じているか否かを判定するずれ発生判定手段と、
を備えることを特徴とする内燃機関の空燃比制御装置。
【請求項２】
前記酸素センサの出力に基づいて前記理論空燃比対応値の学習値を算出する学習手段と、
前記理論空燃比対応値の学習値と当該理論空燃比対応値の基準値との差が判定値を超える場合に、前記空燃比センサの異常を判定するセンサ異常判定手段と、
を備えることを特徴とする請求項１記載の内燃機関の空燃比制御装置。
【請求項３】
前記ずれ発生判定手段は、
前記空燃比センサの出力が理論空燃比対応値となった後の経過時間を計数する経過時間カウンタと、
前記経過時間が判定完了時間に達する前に前記酸素センサの出力がリッチ出力或いはリーン出力となった場合に、前記理論空燃比対応値にずれが生じていると判定するずれ発生認識手段とを備え、
前記触媒の最大酸素吸蔵量を検出するCmax検出手段と、
前記判定完了時間を前記最大酸素吸蔵量に基づいて設定する判定完了時間設定手段と、
を備えることを特徴とする請求項１または２記載の内燃機関の空燃比制御装置。
【請求項４】
前記ずれ発生判定手段は、
前記空燃比センサの出力が理論空燃比対応値となった後の経過時間を計数する経過時間カウンタと、
前記経過時間が判定完了時間に達する前に前記酸素センサの出力がリッチ出力或いはリーン出力となった場合に、前記理論空燃比対応値にずれが生じていると判定するずれ発生認識手段とを備え、
内燃機関の吸入空気量を検出する吸入空気量検出手段と、
前記判定完了時間を前記吸入空気量に基づいて設定する判定完了時間設定手段と、
を備えることを特徴とする請求項１乃至３の何れか１項記載の内燃機関の空燃比制御装置。
【請求項５】
内燃機関の吸入空気量を検出する空気量検出手段と、
前記吸入空気量が判定許容量を超えた場合に、前記理論空燃比対応値にずれが生じているか否かを判定するための処理の続行を禁止する判定禁止手段と、
を備えることを特徴とする請求項１乃至４の何れか１項記載の内燃機関の空燃比制御装置。
【請求項６】
前記フル状態が形成された後、前記空燃比センサの出力が理論空燃比対応値となるように前記排気空燃比が制御されている状況下で、前記酸素センサの出力がリッチ出力に反転するまでに要するリッチ反転時間を検出する反転時間検出手段と、
前記リッチ反転時間の過程における単位時間当たり燃料噴射量を検出する噴射量検出手段と、
前記触媒の最大酸素吸蔵量を検出するCmax検出手段と、
前記理論空燃比対応値がリッチ側にずれているか、或いはリーン側にずれているかを判定するずれ方向判定手段と、
前記理論空燃比対応値がリッチ側にずれていると判定された場合に、前記リッチ反転時間、当該リッチ反転時間の過程における前記単位時間当たり燃料噴射量、および前記最大酸素吸蔵量に基づいて、前記理論空燃比対応値の学習値を算出する学習手段と、
を備えることを特徴とする請求項１乃至５の何れか１項記載の内燃機関の空燃比制御装置。
【請求項７】
前記空状態が形成された後、前記空燃比センサの出力が理論空燃比対応値となるように前記排気空燃比が制御されている状況下で、前記酸素センサの出力がリーン出力に反転するまでに要するリーン反転時間を検出する反転時間検出手段と、
前記リーン反転時間の過程における単位時間当たり燃料噴射量を検出する噴射量検出手段と、
前記触媒の最大酸素吸蔵量を検出するCmax検出手段と、
前記理論空燃比対応値がリッチ側にずれているか、或いはリーン側にずれているかを判定するずれ方向判定手段と、
前記理論空燃比対応値がリーン側にずれていると判定された場合に、前記リーン反転時間、当該リーン反転時間の過程における前記単位時間当たり燃料噴射量、および前記最大酸素吸蔵量に基づいて、前記理論空燃比対応値の学習値を算出する学習手段と、
を備えることを特徴とする請求項１乃至６の何れか１項記載の内燃機関の空燃比制御装置。
【請求項８】
排気通路に触媒を備える内燃機関の空燃比制御装置であって、
前記触媒の上流に配置される空燃比センサと、
前記触媒の下流に配置される酸素センサと、
前記触媒が、酸素を一杯に吸蔵したフル状態となるように、或いは全ての吸蔵酸素を放出した空状態となるように、前記触媒の上流における排気空燃比を制御する準備状態形成手段と、
前記フル状態或いは空状態が形成された後に、前記空燃比センサの出力が理論空燃比対応値と交差するように、前記排気空燃比をスイープさせるスイープ制御手段と、
排気空燃比がスイープされている過程における前記空燃比センサの出力を記憶する出力記憶手段と、
排気空燃比のスイープに起因して前記酸素センサの出力がストイキ出力に変化した時点から、当該酸素センサの応答遅れ時間分だけ遡った時点における前記空燃比センサの出力を前記理論空燃比対応値の学習値とする学習手段と、
を備えることを特徴とする内燃機関の空燃比制御装置。
【請求項９】
前記理論空燃比対応値の学習値と当該理論空燃比対応値の基準値との差が判定値を超える場合に、前記空燃比センサの異常を判定するセンサ異常判定手段を備えることを特徴とする請求項８記載の内燃機関の空燃比制御装置。
【請求項１０】
前記スイープ制御手段は、前記フル状態或いは空状態が形成された後に、前記空燃比センサの出力と前記理論空燃比対応値との差が所定値となるまでは、その後のスイープ時に比して、前記排気空燃比を急激に変化させることを特徴とする請求項８または９記載の内燃機関の空燃比制御装置。
【請求項１１】
内燃機関の吸入空気量を検出する空気量検出手段と、
前記吸入空気量が判定許容量を超えた場合に、前記理論空燃比対応値の学習を進めるための処理の続行を禁止する学習禁止手段と、
を備えることを特徴とする請求項８乃至１０の何れか１項記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、内燃機関の空燃比制御装置に係り、特に、触媒の上流に空燃比センサを備え、かつ触媒の下流に酸素センサを備える内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来、例えば特開２００３−１３８９６４号公報に開示されているように、触媒と、その前後に配置された空燃比センサおよび酸素センサとを排気通路に備える内燃機関が知られている。上記従来の内燃機関においては、触媒下流の酸素センサの出力に基づいて、触媒上流の空燃比センサの出力特性を補正することができる。具体的には、ここでは、空燃比センサが理論空燃比に対応する出力（以下、「理論空燃比対応値」と称す）を発している状況下で、酸素センサがリッチ出力或いはリーン出力を発している場合には、理論空燃比対応値にリッチずれ或いはリーンずれが生じていると判断される。そして、それらのずれが消滅するように理論空燃比対応値が修正される。
【０００３】
理論空燃比対応値にリッチずれが生じている状況下で、空燃比センサの出力がその値に制御された場合は、現実に触媒に流入する排気ガスの空燃比はリッチとなる。この場合、やがては触媒の下流にリッチな排気ガスが吹き抜けて酸素センサの出力がリッチ出力となる。反対に、理論空燃比対応値にリーンずれが生じている状況下で空燃比センサの出力がその値に制御された場合は、酸素センサの出力がやがてリーン出力となる。
【０００４】
上述した従来の内燃機関においては、これらの場合において、排気空燃比のずれが消滅する方向に理論空燃比対応値を修正することができる。このため、上記従来の内燃機関においては、高精度な空燃比制御を実行することが可能であり、良好なエミッション特性を実現することができる。
【０００５】
【特許文献１】特開２００３−１３８９６４号公報
【特許文献２】特開２００３−１４８２０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、内燃機関の排気通路に配置される触媒には、適当な酸素吸蔵能力が与えられている。触媒は、その能力を用いて、リーンな排気ガスが流通している場合には、酸素の余剰分を吸蔵することでその排気ガスを浄化する。また、リッチな排気ガスが流通している場合は、酸素の不足分を放出することによりその排気ガスを浄化する。このため、触媒に流れ込む排気ガスの空燃比と、触媒下流に配置された酸素センサの出力との関係は、触媒がどのような酸素吸蔵状態にあるかに応じて大きく変化する。
【０００７】
具体的には、例えば、触媒に能力一杯に酸素が吸蔵されている状態（以下、「フル状態」と称す）では、触媒に流入する排気ガスの空燃比が僅かにリーンに偏っただけで酸素センサは即座にリーン出力を発生する。また、触媒に殆ど酸素が吸蔵されていない状態（以下、「空状態」と称す）では、触媒に流入する排気ガスの空燃比が僅かにリッチに偏っただけで酸素センサは即座にリッチ出力を発生する。これに対して、触媒が適度に酸素を吸蔵している場合は、触媒に流入する排気ガスの空燃比が大きく理論空燃比から外れていたとしても、ある程度の時間は、酸素センサの出力はストイキ出力のまま維持される。
【０００８】
上述した従来の内燃機関は、触媒下流に配置された酸素センサの出力に基づいて、触媒に流入している排気ガスの空燃比を判断し、その判断に基づいて理論空燃比対応値を修正することとしている。しかしながら、ここでは、触媒が如何なる酸素吸蔵状態にあるかを考慮することなくその修正が行われる。このため、上述した従来の内燃機関においては、理論空燃比対応値の修正に関する特性が触媒の酸素吸蔵状態に応じて変動し、その結果、理論空燃比対応値が精度良く修正できないという事態が生ずることがある。
【０００９】
この発明は、上述のような課題を解決するためになされたもので、触媒下流に配置された酸素センサの出力に基づいて触媒上流に配置された空燃比センサの特性を修正するにあたり、触媒の酸素吸蔵状態を考慮することにより、その修正を精度良く行うことのできる内燃機関の空燃比制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の発明は、上記の目的を達成するため、排気通路に触媒を備える内燃機関の空燃比制御装置であって、
前記触媒の上流に配置される空燃比センサと、
前記触媒の下流に配置される酸素センサと、
前記触媒が、酸素を一杯に吸蔵したフル状態となるように、或いは全ての吸蔵酸素を放出した空状態となるように、前記触媒の上流における排気空燃比を制御する準備状態形成手段と、
前記フル状態或いは空状態が形成された後に、前記空燃比センサの出力が理論空燃比対応値となるように、前記排気空燃比を制御するストイキ状態形成手段と、
前記空燃比センサの出力が理論空燃比対応値となった後の前記酸素センサの出力に基づいて、前記理論空燃比対応値にずれが生じているか否かを判定するずれ発生判定手段と、
を備えることを特徴とする。
【００１１】
また、第２の発明は、第１の発明において、前記酸素センサの出力に基づいて前記理論空燃比対応値の学習値を算出する学習手段と、
前記理論空燃比対応値の学習値と当該理論空燃比対応値の基準値との差が判定値を超える場合に、前記空燃比センサの異常を判定するセンサ異常判定手段と、
を備えることを特徴とする。
【００１２】
また、第３の発明は、第１または第２の発明において、前記ずれ発生判定手段は、
前記空燃比センサの出力が理論空燃比対応値となった後の経過時間を計数する経過時間カウンタと、
前記経過時間が判定完了時間に達する前に前記酸素センサの出力がリッチ出力或いはリーン出力となった場合に、前記理論空燃比対応値にずれが生じていると判定するずれ発生認識手段とを備え、
前記触媒の最大酸素吸蔵量を検出するCmax検出手段と、
前記判定完了時間を前記最大酸素吸蔵量に基づいて設定する判定完了時間設定手段と、
を備えることを特徴とする。
【００１３】
また、第４の発明は、第１乃至第３の発明の何れかにおいて、前記ずれ発生判定手段は、
前記空燃比センサの出力が理論空燃比対応値となった後の経過時間を計数する経過時間カウンタと、
前記経過時間が判定完了時間に達する前に前記酸素センサの出力がリッチ出力或いはリーン出力となった場合に、前記理論空燃比対応値にずれが生じていると判定するずれ発生認識手段とを備え、
内燃機関の吸入空気量を検出する吸入空気量検出手段と、
前記判定完了時間を前記吸入空気量に基づいて設定する判定完了時間設定手段と、
を備えることを特徴とする。
【００１４】
また、第５の発明は、第１乃至第４の発明の何れかにおいて、内燃機関の吸入空気量を検出する空気量検出手段と、
前記吸入空気量が判定許容量を超えた場合に、前記理論空燃比対応値にずれが生じているか否かを判定するための処理の続行を禁止する判定禁止手段と、
を備えることを特徴とする。
【００１５】
また、第６の発明は、第１乃至第５の発明の何れかにおいて、前記フル状態が形成された後、前記空燃比センサの出力が理論空燃比対応値となるように前記排気空燃比が制御されている状況下で、前記酸素センサの出力がリッチ出力に反転するまでに要するリッチ反転時間を検出する反転時間検出手段と、
前記リッチ反転時間の過程における単位時間当たり燃料噴射量を検出する噴射量検出手段と、
前記触媒の最大酸素吸蔵量を検出するCmax検出手段と、
前記理論空燃比対応値がリッチ側にずれているか、或いはリーン側にずれているかを判定するずれ方向判定手段と、
前記理論空燃比対応値がリッチ側にずれていると判定された場合に、前記リッチ反転時間、当該リッチ反転時間の過程における前記単位時間当たり燃料噴射量、および前記最大酸素吸蔵量に基づいて、前記理論空燃比対応値の学習値を算出する学習手段と、
を備えることを特徴とする。
【００１６】
また、第７の発明は、第１乃至第６の発明の何れかにおいて、前記空状態が形成された後、前記空燃比センサの出力が理論空燃比対応値となるように前記排気空燃比が制御されている状況下で、前記酸素センサの出力がリーン出力に反転するまでに要するリーン反転時間を検出する反転時間検出手段と、
前記リーン反転時間の過程における単位時間当たり燃料噴射量を検出する噴射量検出手段と、
前記触媒の最大酸素吸蔵量を検出するCmax検出手段と、
前記理論空燃比対応値がリッチ側にずれているか、或いはリーン側にずれているかを判定するずれ方向判定手段と、
前記理論空燃比対応値がリーン側にずれていると判定された場合に、前記リーン反転時間、当該リーン反転時間の過程における前記単位時間当たり燃料噴射量、および前記最大酸素吸蔵量に基づいて、前記理論空燃比対応値の学習値を算出する学習手段と、
を備えることを特徴とする。
【００１７】
また、第８の発明は、排気通路に触媒を備える内燃機関の空燃比制御装置であって、
前記触媒の上流に配置される空燃比センサと、
前記触媒の下流に配置される酸素センサと、
前記触媒が、酸素を一杯に吸蔵したフル状態となるように、或いは全ての吸蔵酸素を放出した空状態となるように、前記触媒の上流における排気空燃比を制御する準備状態形成手段と、
前記フル状態或いは空状態が形成された後に、前記空燃比センサの出力が理論空燃比対応値と交差するように、前記排気空燃比をスイープさせるスイープ制御手段と、
排気空燃比がスイープされている過程における前記空燃比センサの出力を記憶する出力記憶手段と、
排気空燃比のスイープに起因して前記酸素センサの出力がストイキ出力に変化した時点から、当該酸素センサの応答遅れ時間分だけ遡った時点における前記空燃比センサの出力を前記理論空燃比対応値の学習値とする学習手段と、
を備えることを特徴とする。
【００１８】
また、第９の発明は、第８の発明において、前記理論空燃比対応値の学習値と当該理論空燃比対応値の基準値との差が判定値を超える場合に、前記空燃比センサの異常を判定するセンサ異常判定手段を備えることを特徴とする。
【００１９】
また、第１０の発明は、第８または第９の発明において、前記スイープ制御手段は、前記フル状態或いは空状態が形成された後に、前記空燃比センサの出力と前記理論空燃比対応値との差が所定値となるまでは、その後のスイープ時に比して、前記排気空燃比を急激に変化させることを特徴とする。
【００２０】
また、第１１の発明は、第８乃至第１０の発明の何れかにおいて、
内燃機関の吸入空気量を検出する空気量検出手段と、
前記吸入空気量が判定許容量を超えた場合に、前記理論空燃比対応値の学習を進めるための処理の続行を禁止する学習禁止手段と、
を備えることを特徴とする。
【発明の効果】
【００２１】
第１の発明によれば、触媒がフル状態或いは空状態となった後に、空燃比センサの出力が理論空燃比対応値となるように排気空燃比を制御することができる。そして、その後の酸素センサの出力に基づいて、理論空燃比対応値にずれが生じているか否かを判定することができる。この場合、理論空燃比対応値にずれが生じているか否かは、常に、触媒の酸素吸蔵状態が固定された状況下で判断される。このため、本発明によれば、触媒の酸素吸蔵状態に影響されることなく、酸素センサの出力に基づいて、理論空燃比対応値にずれが生じているか否かを、常に精度良く判定することができる。
【００２２】
第２の発明によれば、酸素センサの出力に基づいて理論空燃比対応値の学習値を算出したうえで、その学習値が基準値から大きく乖離している場合には、空燃比センサの異常を判定することができる。
【００２３】
第３の発明によれば、空燃比センサの出力が理論空燃比対応値となった後、判定完了時間が経過するまでに酸素センサの出力がリッチ出力或いはリーン出力になったか否かに応じて、理論空燃比対応値にずれが生じているか否かを判定することができる。そして、その判定完了時間を、触媒の最大酸素吸蔵量に基づいて設定することができる。触媒の下流には、最大酸素吸蔵量が多量であるほどリッチ或いはリーンなガスは吹き抜け難い。本発明によれば、判定完了時間を適宜設定することによりその影響を排除することができ、理論空燃比対応値にずれが生じているか否かを高い精度で判定することが可能である。
【００２４】
第４の発明によれば、空燃比センサの出力が理論空燃比対応値となった後、判定完了時間が経過するまでに酸素センサの出力がリッチ出力或いはリーン出力になったか否かに応じて、理論空燃比対応値にずれが生じているか否かを判定することができる。そして、その判定完了時間を、内燃機関の吸入空気量に基づいて設定することができる。触媒の下流には、内燃機関の吸入空気量が多いほどリッチ或いはリーンなガスが吹き抜け易い。本発明によれば、判定完了時間を適宜設定することによりその影響を排除することができ、理論空燃比対応値にずれが生じているか否かを高い精度で判定することが可能である。
【００２５】
第５の発明によれば、吸入空気量が判定許容量を超える場合には、理論空燃比対応値にずれが生じているか否かを判定するための処理の続行を禁止することができる。つまり、この場合には、触媒をフル状態或いは空状態にするための処理、更には、理論空燃比対応値にずれが生じているか否かを判定する処理などの実行を禁止することができる。吸入空気量が多量に生じている状況下で、触媒をフル状態或いは空状態にしようとすると、リッチ或いはリーンなガスが触媒の下流に多量に吹き抜け易い。また、このような状況下では、酸素センサの出力に変化が生じ易いため、理論空燃比対応値にずれが生じているか否かを精度良く判定することが困難となる。本発明によれば、このような状況下でのエミッションの悪化や誤判定を有効に防ぐことができる。
【００２６】
第６の発明によれば、理論空燃比対応値にリッチずれが生じている場合に、酸素センサがリッチ出力を発するまでの時間（リッチ反転時間）と、そのリッチ反転時間の過程における単位時間当たり燃料噴射量と、触媒の最大酸素吸蔵量とに基づいて、理論空燃比対応値の学習値を正確に算出することができる。
【００２７】
第７の発明によれば、理論空燃比対応値にリーンずれが生じている場合に、酸素センサがリーン出力を発するまでの時間（リーン反転時間）と、そのリーン反転時間の過程における単位時間当たり燃料噴射量と、触媒の最大酸素吸蔵量とに基づいて、理論空燃比対応値の学習値を正確に算出することができる。
【００２８】
第８の発明によれば、触媒をフル状態或いは空状態とした後に、空燃比センサの出力が理論空燃比対応値と交差するように排気空燃比をスイープさせることができる。この際、酸素センサの出力は、触媒上流の排気空燃比が理論空燃比となった後、排気ガスの輸送遅れ等に起因する応答遅れ時間後にストイキ出力に変化する。本発明によれば、酸素センサの出力がストイキ出力に変化した時点から、その応答遅れ時間分だけ遡った時点における空燃比センサの出力を読み出すことにより、理論空燃比対応値の学習値を精度良く設定することができる。
【００２９】
第９の発明によれば、排気空燃比をスイープさせる手法で理論空燃比対応値の学習値を設定したうえで、その学習値が基準値から大きく乖離している場合には、空燃比センサの異常を判定することができる。
【００３０】
第１０の発明によれば、触媒がフル状態或いは空状態とされた後、触媒に流れ込む排気ガスの空燃比が理論空燃比の近傍値となるまでは、その空燃比を急激に変化させることができる。そして、排気空燃比が理論空燃比と交差する前後の段階で排気空燃比を緩やかにスイープさせることにより、理論空燃比対応値を精度良く学習することができる。
【００３１】
第１１の発明によれば、吸入空気量が判定許容量を超えるような状況下では、理論空燃比対応値を学習するための処理を禁止することができる。このため、本発明によれば、このような状況下でエミッションが悪化したり、理論空燃比対応値が不適正な値に設定されたりするのを有効に防ぐことができる。
【発明を実施するための最良の形態】
【００３２】
実施の形態１．
［実施の形態１の構成］
図１は、本発明の実施の形態１の構成を説明するための図である。本実施形態のシステムは、内燃機関１０を備えている。内燃機関１０には、排気通路１２が連通している。排気通路１２には、その中を流れる排気ガスを浄化するための触媒１４が含まれている。触媒１４は、最大酸素吸蔵量Cmaxを上限として酸素を吸蔵する能力を有している。
【００３３】
より具体的には、触媒１４は、内燃機関１０から排出される排気ガスがリーンである場合、つまり、排気ガス中にNOxが含まれている場合は、NOxを還元しつつ余剰酸素分を吸蔵することにより排気ガスを浄化する。また、内燃機関１０から排出される排気ガスがリッチであり、その中にHCやCO等の未燃成分が含まれている場合は、吸蔵酸素を放出しつつそれらの成分を酸化することにより排気ガスを浄化する。
【００３４】
従って、触媒１４に適当量の酸素が吸蔵されている場合は、内燃機関１０から排出される排気ガスがリッチであっても、触媒１４の下流には、理論空燃比に調整された排気ガスが流出することになる。また、触媒１４中に適当な酸素吸蔵余力が残されている場合は、内燃機関１０から排出される排気ガスがリーンであっても、触媒１４の下流には、理論空燃比に調整された排気ガスが流出することになる。
【００３５】
本実施形態のシステムは、触媒１４の上流に空燃比センサ１６を備えている。空燃比センサ１６は、その周囲を流れる排気ガスの空燃比に対して、ほぼリニアに出力を変化させる特性を有している。従って、空燃比センサ１６の出力と、内燃機関１０から排出される排気ガスの空燃比、つまり、触媒１４の上流における排気空燃比（以下、「上流空燃比」と称す）との対応が既知であれば、その出力に基づいて上流空燃比を検知することができる。
【００３６】
触媒１４の下流には、酸素センサ１８が配置されている。図２は、酸素センサ１８の出力特性を説明するための図である。図２において横軸は触媒１４下流における排気空燃比（以下、「下流空燃比」と称す）であり、縦軸は酸素センサ１８の出力（電圧値）である。図２に示すように、酸素センサ１８は、下流空燃比の変化に対してヒステリシス特性を示しつつ、下流空燃比が理論空燃比（ストイキ）を通過する前後でその出力を大きく変化させる。
【００３７】
より具体的には、酸素センサ１８の出力は、下流空燃比がリーンである場合には０．２[V]程度のリーン出力となり、その状態から下流空燃比がストイキになると、リーン出力より僅かに高いリーン側ストイキ出力となる。そして、下流空燃比が更に変化してリッチになると、酸素センサ１８の出力は１．０[V]程度のリッチ出力となる。また、酸素センサ１８の出力は、下流空燃比がリッチからストイキに変化した場合には、リッチ出力より僅かに低いリッチ側ストイキ出力となる。そして、下流空燃比が更に変化してリーンになると、酸素センサ１８の出力は０．２[V]程度のリーン出力に変化する。
【００３８】
本実施形態のシステムは、ECU（Electronic Control Unit)２０を備えている。空燃比センサ１６の出力、および酸素センサ１８の出力は、何れもECU２０に供給されている。ECU２０には、また、吸入空気量Gaを計測するためのエアフロメータ、機関回転数Neを計測するための回転数センサ、スロットル開度TAを検知するためのスロットルセンサ（何れも図示せず）などの各種センサや、インジェクタなどの各種アクチュエータが接続されている。ECU２０は、それらのセンサの出力信号に基づいて、各種アクチュエータの状態を制御することができる。
【００３９】
［実施の形態１の動作］
本実施形態のシステムによれば、上記の如く、空燃比センサ１６の出力と上流空燃比との対応が既知であれば、その出力に基づいて上流空燃比を検知することが可能である。ところが、その対応の関係は、空燃比センサ１６のバラツキや経時変化の影響を受けるため、全ての内燃機関に対して一律に定め得るものではない。
【００４０】
一方で、上流空燃比と空燃比センサ１６の出力との間に成立する比例関係には、さほど大きなバラツキが生じない。このため、両者の対応の関係は、既知の空燃比に対応する出力値が少なくとも１点で検出できれば、精度良く定めることができる。そこで、本実施形態のシステムは、以下に説明する手法により、理論空燃比に対応して空燃比センサ１６が発する出力値（以下、「理論空燃比対応値stoich」と称す）を、車両上で適宜学習することとしている。
【００４１】
図３は、本実施形態のシステムが理論空燃比対応値stoichを学習する手法の原理を説明するためのタイミングチャートである。より具体的には、図３（Ａ）は、理論空燃比対応値stoichを学習する際に上流空燃比に生ずる変化の一例を示す。また、図３（Ｂ）および図３（Ｃ）は、それぞれ、上流空燃比に図３（Ａ）に示すような変化が生じた際に、触媒１４の酸素吸蔵量OSAおよび酸素センサ１８の出力O2に生ずる変化を示す。
【００４２】
本実施形態のシステムは、理論空燃比対応値stoichを学習する際には、先ず、触媒１４をフル状態または空状態とするための処理、つまり、触媒１４に最大酸素吸蔵量Cmax一杯に酸素を吸蔵させる処理、或いは触媒１４中の酸素を全て放出させるための処理が実行される。図３に示す例では、時刻t1以前において、触媒１４をフル状態にするために、上流空燃比が意図的にリーンに維持されている。
【００４３】
触媒１４の酸素吸蔵量OSAは時間の経過と共に上昇し、時刻t1において最大酸素吸蔵量Cmaxに達している。酸素吸蔵量OSAがある程度Cmaxに近づくまでは、リーンな排気ガスが触媒１４により浄化され、触媒１４の下流にはストイキに調整された排気ガスが流出する。この間、酸素センサ１８の出力O2はリッチ側ストイキ出力となる。そして、酸素吸蔵量OSAがCmax近傍値に到達し、触媒１４の下流にリーンな排気ガスが流出し始めると、酸素センサ１８の出力O2が急激にリーン出力に反転する。
【００４４】
ECU２０は、酸素センサ１８の出力O2がリーン出力に反転すると、触媒１４がフル状態になったと判断し、次に、上流空燃比を理論空燃比とするための制御（以下、「ストイキ制御」と称す）を開始する。ストイキ制御では、具体的には、空燃比センサ１６の出力が、現時点での理論空燃比対応値に一致するように、上流空燃比を調整する処理、つまり、内燃機関１０に対する燃料供給量を調整する処理が実行される。
【００４５】
図３中に実線で示す波形は、ここで用いられる理論空燃比対応値stoichが正確であった場合に得られる波形である。つまり、この場合は、上述したストイキ制御が行われることにより、上流空燃比は現実に理論空燃比に制御される。その結果、触媒１４の酸素吸蔵量OSAは増減することなく最大酸素吸蔵量Cmaxに維持される。また、酸素センサ１８の出力O2は、上流空燃比がストイキとなる時刻t2以降、リーン側ストイキ出力に維持される。
【００４６】
図３中に一点鎖線で示す波形は、理論空燃比対応値stoichがリーン側（大きい側）にずれていた結果、ストイキ制御の実行に伴い、上流空燃比にリーンずれが生じた場合に得られる波形である。ストイキ制御の開始後に上流空燃比にリーンずれが生じていれば、触媒１４の下流には当然にリーンなガスが流出し続ける。従って、この場合は、時刻t2以降も、酸素センサ１８の出力O2は、リーン出力のまま維持される。
【００４７】
また、図３中に破線で示す波形は、理論空燃比対応値stoichがリッチ側（小さい側）にずれていた結果、ストイキ制御の実行中に、上流空燃比にリッチずれが生じた場合に得られる波形である。上流空燃比にリッチずれが生じていれば、ストイキ制御の開始後に、触媒１４の酸素吸蔵量OSAは徐々に減少し、やがてはゼロとなる。触媒１４内に酸素が残存している間は、触媒１４の下流における空燃比はストイキとなるため、酸素センサ１８の出力がリーン側ストイキ出力に維持される。そして、酸素吸蔵量OSAがゼロ付近になると、触媒１４の下流にリッチなガスが流出し始め、その結果、酸素センサ１８の出力O2がリッチ出力に反転する。
【００４８】
以上説明した通り、触媒１４がフル状態とされた後にストイキ制御が開始された場合、酸素センサ１８の出力O2は、理論空燃比対応値stoichが正しく学習されている場合に限り長期に渡ってストイキ出力を維持する。同様に、触媒１４が空状態とされた後にストイキ制御が実行された場合にも、酸素センサ１８の出力O2は、理論空燃比対応値stoichが正しく学習されている場合に限り長期に渡ってストイキ出力を維持する。従って、理論空燃比対応値stoichが正しい値であるか否かは、ストイキ制御の開始後に、十分に長い時間に渡って酸素センサ１８の出力O2がストイキ出力に維持されるか否かを見ることで判断することが可能である。
【００４９】
ところで、酸素センサ１８の出力O2は、事前にフル状態や空状態が形成されていなくても、理論空燃比対応値stoichにずれが生じていれば、ストイキ制御の実行中にリッチ出力或いはリーン出力となり、また、そのずれが生じていければ、ストイキ制御の実行中にストイキ出力を維持する。従って、理論空燃比対応値stoichにずれが生じているか否かは、事前にフル状態や空状態を形成しなくても、ある程度の精度で判断することが可能である。
【００５０】
しかしながら、ストイキ制御の開始時点における酸素吸蔵状態が成り行きに任されていると、理論空燃比対応値stoichに生じているずれの大きさと、酸素センサ１８の出力O2が反転するまでの時間との関係に大きな変動が生ずる。この場合、一定の判定時間中に酸素センサ１８の出力O2が反転するか否かを見ることによっては、理論空燃比対応値stoichに無視できないずれが生じているか否かを常に精度良く判定することはできない。
【００５１】
つまり、理論空燃比対応値stoichにリッチずれが生じていた場合、ストイキ制御の開始時にフル状態が形成されていれば、酸素センサ１８の出力O2に反転が生ずるまでの時間は長時間となり易い。一方、その開始時に酸素吸蔵量OSAが少量であったとすれば、出力O2の反転に要する時間は短時間となり易い。換言すると、酸素センサ１８の出力O2は、ストイキ制御の開始時に多量のOSAが確保されていれば、理論空燃比対応値stoichにある程度のリッチずれが生じていても判定時間中にリッチ出力に反転せず、他方、その開始時におけるOSAが少ない場合は、理論空燃比対応値stoichに僅かなずれが生じているだけで反転時間中にリッチ出力に反転する。このため、触媒１４の酸素吸蔵状態を成り行きに任せてストイキ制御を開始することとすれば、その開始時における酸素吸蔵量OSAの多少に応じて、ずれの認定に関する基準に厳緩の差が生ずることになる。
【００５２】
これに対して、本実施形態のシステムでは、ストイキ制御の開始に先立って、触媒１８を必ずフル状態或いは空状態とすることにしている。この場合、理論空燃比対応値stoichのずれは、予め設定した許容限界を超えている場合にのみ発生が認定されることとなり、ずれの発生に関する判断の基準を安定化させることができる。このため、本実施形態のシステムによれば、理論空燃比対応値stoichに不当なずれが生じているか否かを、極めて精度良く判定することができる。
【００５３】
［実施の形態１における具体的処理］
図４（Ａ）および図４（Ｂ）は、上記の機能を実現するために、本実施形態においてECU２０が実行するルーチンのフローチャートである。より具体的には、図４（Ａ）は、触媒１４をフル状態とした後、ストイキ制御を実行して理論空燃比対応値stoichにずれが生じているか否かを判断するためのフローチャートである。また、図４（Ｂ）は、触媒１４を空状態とした後、ストイキ制御を実行して理論空燃比対応値stoichにずれが生じているか否かを判断するためのフローチャートである。
【００５４】
本実施形態のシステムでは、所定の学習実行条件が成立する毎に、図４（Ａ）に示すルーチンと図４（Ｂ）に示すルーチンとが交互に所定回数だけ（最低１回）実行される。尚、学習実行条件は、内燃機関１０が始動される毎、車両が所定距離を走行する毎、或いは所定の時間が経過する毎などに、適宜繰り返し成立するものとする。
【００５５】
図４（Ａ）に示すルーチンでは、先ず、上流空燃比をリーンとする処理が実行される（ステップ１００）。次に、酸素センサ１８の出力O2がリーン出力に反転したかが判別される（ステップ１０２）。リーン出力への反転が認められるまでは、上記ステップ１００および１０２の処理が繰り返し実行される。
【００５６】
出力O2がリーン出力に反転したと認められた場合は、上流空燃比の目標が理論空燃比に変更され、ストイキ制御が開始される（ステップ１０４）。ここでは、具体的には、空燃比センサ１６の出力目標が、現時点での理論空燃比対応値に設定され、それらが一致するように内燃機関１０に対する燃料供給量をフィードバック制御する処理が実行される。
【００５７】
ストイキ制御が開始されると、次に、空燃比センサ１６の出力が、現実に理論空燃比対応値stoichに一致したか否かが判別される（ステップ１０６）。その結果、未だ両者が一致していないと判別された場合は、再び上記ステップ１０４の処理が実行される。一方、両者が既に一致していると判別された場合は、カウンタcounterをリセットした後（ステップ１０８）、酸素センサ１８の出力O2がリーン出力であるか否かが判別される（ステップ１１０）。
【００５８】
空燃比センサ１６の出力が理論空燃比対応値stoichに一致しているにも関わらず、酸素センサ１８の出力O2がリーン出力のままである場合は、理論空燃比対応値stoichがリーン側にずれており、その結果、上流空燃比にリーンずれが生じていると判断できる。このため、上記ステップ１１０の条件成立が認められた場合は、理論空燃比対応値stoichを所定値だけリッチ化する処理が実行される（ステップ１１２）。
【００５９】
一方、上記ステップ１１０において、酸素センサ１８の出力O2がリーン出力でないと判別された場合は、次に、その出力O2がリッチ出力であるか否かが判別される（ステップ１１４）。理論空燃比対応値stoichが適正に理論空燃比に対応している場合は、触媒１４の下流に必然的にストイキの排気ガスが流出する。また、理論空燃比対応値stoichがリッチ側にずれており、その結果、上流空燃比にリッチずれが生じている場合も、触媒１４中の酸素が消費されるまではその下流にストイキのガスが流出する。このため、本ステップ１１４では、ストイキ制御が開始された後しばらくの間は、何れにしろ酸素センサ１８の出力O2がリッチ出力ではないと判断される。
【００６０】
この場合、次に、カウンタCounterの計数値が、リーン側判定完了時間L_TIMEを超えているか否かが判別される（ステップ１１６）。そして、Counter＞L_TIMEの成立が認められた場合は、そのまま今回の処理が終了される。一方、その条件の成立が認められなかった場合は、Counterがインクリメントされた後（ステップ１１８）、再び上記ステップ１１０の処理が実行される。
【００６１】
リーン側判定完了時間L_TIMEは、理論空燃比対応値stoichに許容限界のリッチずれが生じている場合に、ストイキ制御が開始された後、酸素センサ１８の出力O2がストイキ出力に維持される時間に対応している。従って、出力O2がリッチ出力に反転する前にCounter＞L_TIMEの成立が認められた場合は、理論空燃比対応値stoichに許容限界値を超えるリッチずれが生じていない、つまり、理論空燃比対応値stoichは現段階で適正に学習されていると判断できる。上述した処理の流れによれば、この場合は、理論空燃比対応値stoichを現在の値のまま維持することができる。
【００６２】
理論空燃比対応値stoichに許容限界を超えるリッチずれが生じている場合は、Counter＞L_TIMEの成立が認められる以前に、酸素センサ１８の出力O2がリッチ出力に反転する。出力O2がリッチ出力に反転すると、上記ステップ１１４の条件成立が認められ、その処理に続いて、理論空燃比対応値stoichを所定値だけリーン化する処理が実行される（ステップ１２０）。その結果、リッチ側へのずれ量が縮小されて理論空燃比対応値stoichが適正値に近づけられる。
【００６３】
以上説明した通り、図４（Ａ）に示すルーチンによれば、理論空燃比対応値stoichにリーンずれが生じていた場合には、ストイキ制御の開始後、即座にそのずれの発生を判定し、かつ、そのリーンずれが解消されるように理論空燃比対応値stoichを修正することができる。また、理論空燃比対応値stoichにリッチずれが生じていた場合には、そのずれが許容限界値を超える場合にのみ、理論空燃比対応値stoichに修正を施すことができる。このため、本実施形態のシステムによれば、図４（Ａ）に示すルーチンを実行することにより、理論空燃比対応値stoichを迅速かつ精度良く適正な値に修正することができる。
【００６４】
図４（Ｂ）に示すルーチンは、リッチとリーンが反転していることを除き、図４（Ａ）に示すルーチンと同様である。このため、ここでは、その詳細な説明は省略する。このルーチンによれば、理論空燃比対応値stoichにリッチずれが生じていた場合には、ストイキ制御の開始後、即座にそのずれの発生を判定し、かつ、そのリッチずれが解消されるように理論空燃比対応値stoichを修正することができる。また、理論空燃比対応値stoichにリーンずれが生じていた場合には、そのずれが許容限界値を超える場合にのみ、理論空燃比対応値stoichに修正を施すことができる。このため、本実施形態のシステムによれば、図４（Ｂ）に示すルーチンを実行することによっても、理論空燃比対応値stoichを迅速かつ精度良く適正な値に修正することができる。
【００６５】
そして、本実施形態のシステムは、図４（Ａ）に示すルーチンと図４（Ｂ）に示すルーチンとを交互に実行することにより、理論空燃比対応値stoichの学習精度を更に高めることとしている。但し、これらのルーチンは、必ずしも両者を組み合わせて実行する必要はなく、何れか一方のルーチンのみを実行して理論空燃比対応値stoichの学習を進めることとしてもよい。
【００６６】
また、上述した実施の形態１においては、図４（Ａ）に示すルーチン中、ステップ１１０において、酸素センサO2の出力がリーン出力であると認められた場合、および図４（Ｂ）に示すルーチン中、ステップ１４０において、酸素センサO2の出力がリッチ出力であると認められた場合に、それぞれ即座に理論空燃比対応値stoichのずれを認識して、その修正を行う（ステップ１１２，１４２）こととしているが、本発明はこれに限定されるものではない。すなわち、図４（Ａ）に示すルーチンと図４（Ｂ）に示すルーチンとを交互に実行する場合には、それらの修正を省略して、リッチずれの場合にも、リーンずれの場合にも、許容限界値を超えるずれが生じている場合にのみ理論空燃比対応値stoichのずれを認識し、その値に修正を施すこととしてもよい。
【００６７】
尚、上述した実施の形態１においては、ECU２０が、ステップ１００〜１０２の処理、或いはステップ１３０〜１３２の処理を実行することにより前記第１の発明における「準備状態形成手段」が、ステップ１０４または１３４の処理を実行することにより前記第１の発明における「ストイキ状態形成手段」が、ステップ１０６〜１２０、或いはステップ１３６〜１５０の処理を実行することにより前記第１の発明における「ずれ発生判定手段」が、それぞれ実現されている。
【００６８】
実施の形態２．
［実施の形態２の特徴］
次に、図５を参照して本発明の実施の形態２について説明する。本実施形態のシステムは、図１に示す構成を用いて、ECU２０に、図５に示すルーチンを実行させることにより実現することができる。
【００６９】
本実施形態のシステムでは、実施の形態１の場合と同様の手法で、空燃比センサ１６の理論空燃比対応値stoichが学習される。理論空燃比対応値stoichには、空燃比センサ１６の経時変化や個体差に起因する変動が認められるが、不当に大きな変動が生じた場合には、空燃比センサ１６に異常が生じたと判断するべきである。そこで、本実施形態のシステムは、理論空燃比対応値stoichの学習値が、所定の基準値から不当に大きく乖離した場合には、空燃比センサ１６の異常を認定することとした。
【００７０】
［実施の形態２における具体的処理］
図５（Ａ）および図５（Ｂ）は、上記の機能を実現するために本実施形態においてECU２０が実行するルーチンのフローチャートである。より具体的には、図５（Ａ）に示すルーチンは、触媒１４をフル状態とした後にストイキ制御を実行して理論空燃比対応値stoichの学習を進めるためのフローチャートである。また、図５（Ｂ）は、触媒１４を空状態とした後にストイキ制御を実行して理論空燃比対応値stoichの学習を進めるためのフローチャートである。
【００７１】
これらのルーチンは、ステップ１１６の後にステップ１６０〜１６２が追加されている点を除き、また、ステップ１４６の後にステップ１７０〜１７２が追加されている点を除き、それぞれ図４（Ａ）または図４（Ｂ）に示すルーチンと同様である。以下、図５（Ａ）および図５（Ｂ）に示すステップのうち、図４（Ａ）または図４（Ｂ）に示すステップと同一のものについては、共通する符号を付してその説明を省略または簡略する。
【００７２】
図５（Ａ）に示すルーチンでは、ステップ１１６の処理によりCounterの計数値がリーン側判定完了時間L_TIMEを超えたと判断された場合、つまり、現在の理論空燃比対応値stoichが適正であると判断された場合、或いは、ステップ１１２または１２０の処理により理論空燃比対応値stoichの修正が行われた場合に、それらの処理に次いで、最新の理論空燃比対応値stoichが正常範囲に収まっているか否かが判別される（ステップ１６０）。
【００７３】
ECU２０には、標準的な特性を示す空燃比センサ１６により発せられる理論空燃比対応値stoichが、その基準値として記憶されている。上記ステップ１６０では、より具体的には、学習により得られた理論空燃比対応値stoichと、その基準値との乖離量が、予め設定されている許容限界に収まっているか否かが判別される。その結果、上記の乖離量が許容限界に収まっていると判断された場合は、そのまま今回のルーチンが終了される。一方、上記の乖離量が許容限界から外れていると判別された場合は、空燃比センサ１６の異常が判定される（ステップ１６２）。
【００７４】
図５（Ｂ）に示すルーチンにおいても、実質的には図５（Ａ）に示すルーチンと同様の処理が実行される。すなわち、ここでも、学習により得られた理論空燃比対応値stoichが、予め設定されている許容限界から外れている場合には、空燃比センサ１６の異常が判定される（ステップ１７０，１７２）。
【００７５】
以上説明した通り、上述したルーチンによれば、理論空燃比対応値stoichが通常では生じ得ない不当な値になった場合に、速やかに空燃比センサ１６の異常を判定することができる。このため、本実施形態のシステムによれば、空燃比センサ１６に異常が生じた場合に、その状態が長期に渡って放置されるのを有効に防ぐことができる。
【００７６】
ところで、上述した実施の形態２においては、理論空燃比対応値stoichの学習値が異常な値となった場合に、即座に空燃比センサ１６の異常を判定することとしているが、本発明はこれに限定されるものではない。すなわち、理論空燃比対応値stoichの異常が認められた場合に、改めて空燃比センサ１６の異常判定処理を実行し、その結果に基づいて異常の有無を確定することとしてもよい。
【００７７】
また、上述した実施の形態２においては、理論空燃比対応値stoichの学習値が正常であるか否かを判断するにあたって、予め設定された基準値を用いることとしているが、本発明はこれに限定されるものではない。すなわち、この基準値は、車両の工場出荷の時点など、初期の段階で学習された理論空燃比対応値stoichとしてもよい。このような設定によれば、空燃比センサ１６の個体差に影響されることなく、経時劣化による異常の発生を精度良く検知することが可能である。
【００７８】
尚、上述した実施の形態２においては、ECU２０が、ステップ１１２，１２０，１４２または１５０の処理を実行することにより前記第２の発明における「学習手段」が、ステップ１６０〜１６２またはステップ１７０〜１７２の処理を実行することにより前記第２の発明における「センサ異常判定手段」が、それぞれ実現されている。
【００７９】
実施の形態３．
［実施の形態３の特徴］
次に、図６を参照して本発明の実施の形態３について説明する。本実施形態のシステムは、図１に示す構成を用いて、ECU２０に、図４または図５に示すルーチンと共に、図６に示すルーチンを実行させることにより実現することができる。
【００８０】
上述した実施の形態１または２においては、触媒１４をフル状態としてストイキ制御を開始した後、カウンタCounterの計数値がリーン側判定完了時間L_TIMEに達するまで酸素センサ１８の出力O2がストイキ出力を維持した場合に理論空燃比対応値stoichが適正値であると判断される（ステップ１１６参照）。同様に、ここでは、触媒１４を空状態としてストイキ制御を開始した後、カウンタCounterの計数値がリッチ側判定完了時間R_TIMEに達するまで酸素センサ１８の出力O2がストイキ出力を維持した場合に理論空燃比対応値stoichが適正値であると判断される（ステップ１４６参照）。
【００８１】
ところで、ストイキ制御が開始された後、酸素センサ１８の出力O2が反転するまでに要する時間は、触媒１４の最大酸素吸蔵量Cmaxに応じて伸縮する。具体的には、図４（Ａ）または図５（Ａ）に示すルーチンに従ってストイキ制御が開始された場合、その後ステップ１１４において酸素センサ１８の出力O2がリッチ出力に反転したと判定されるまでの時間は、触媒１４の最大酸素吸蔵量Cmaxが多いほど長時間となる。同様に、図４（Ｂ）または図５（Ｂ）に示すルーチンに従ってストイキ制御が開始された場合、その後ステップ１４４において酸素センサ１８の出力O2がリーン出力に反転したと判定されるまでの時間は、触媒１４の最大酸素吸蔵量Cmaxが多いほど長時間となる。そして、触媒１４の最大酸素吸蔵量Cmaxは、触媒１４の劣化が進むに連れて変化（減少）する。
【００８２】
このため、理論空燃比対応値stoichに生じているずれ量が許容限界を超えているか否かを厳密に判断するためには、酸素センサ１８の出力O2に反転が生ずるか否かを監視する期間、つまり、上記のリーン側判定完了時間L_TIMEおよびリッチ側判定完了時間R_TIMEを、触媒１４の最大酸素吸蔵量Cmaxに応じて伸縮させるのが適切である。そこで、本実施形態のシステムでは、触媒１４の最大酸素吸蔵量Cmaxを検出したうえで、その検出値Cmaxに応じて、リーン側判定完了時間L_TIMEおよびリッチ側判定完了時間R_TIMEを、適宜設定することとした。
【００８３】
［実施の形態３における具体的処理］
図６は、本実施形態において、ECU２０が、リーン側判定完了時間L_TIMEおよびリッチ側判定完了時間R_TIMEを設定するために実行するルーチンのフローチャートを示す。図６に示すルーチンによれば、先ず、触媒１４の最大酸素吸蔵量Cmaxが検出される（ステップ１８０）。ECU２０は、他のルーチンを実行することにより最大酸素吸蔵量Cmaxを計測しており、ここでは、その計測値が読み出される。尚、最大酸素吸蔵量Cmaxの計測手法は、例えば特開２００４−１９５４２号公報に開示される公知の手法と同じであるため、その詳細な説明は省略することとする。
【００８４】
次に、最大酸素吸蔵量Cmaxに基づいて、リーン側判定完了時間L_TIMEおよびリッチ側判定完了時間R_TIMEが設定される（ステップ１８２）。ECU２０は、リーン側判定完了時間L_TIMEおよびリッチ側判定完了時間R_TIMEを、最大酸素吸蔵量Cmaxとの関係で定めたマップを記憶している。ここでは、そのマップを参照することにより、L_TIMEおよびR_TIMEが設定される。
【００８５】
ステップ１８２において参照されるマップは、その枠中に示すように、最大酸素吸蔵量Cmaxが多量となるほど、L_TIMEおよびR_TIMEが長時間となるように設定されている。従って、本実施形態のシステムによれば、酸素センサ１８の出力O2に反転が生ずるか否かを監視する期間を、Cmaxが多量であるほど長時間とし、また、Cmaxが少量であるほど短時間とすることができる。
【００８６】
L_TIMEおよびR_TIMEを、上記の如くCmaxに応じて変化させることとすると、L_TIMEまたはR_TIMEの間に出力O2が反転するか否かを見ることでずれの有無を判断する手法を採りつつ、Cmaxの変動に起因してその判断の基準が不安定になるのを阻止することができる。このため、本実施形態のシステムによれば、常に安定した精度で、理論空燃比対応値stoichに許容限界を超えるずれが生じている場合にのみ、そのずれの発生を判定することができる。
【００８７】
尚、上述した実施の形態３においては、ECU２０が、図４（Ａ）または図５（Ａ）に示すステップ１０８の処理、或いは図４（Ｂ）または図５（Ｂ）に示すステップ１３８の処理を実行することにより前記第３の発明における「経過時間カウンタ」が、図４（Ａ）または図５（Ａ）に示すステップ１１０または１１４の処理、或いは、図４（Ｂ）または図５（Ｂ）に示すステップ１４０または１４４の処理を実行することにより前記第３の発明における「ずれ発生認識手段」がそれぞれ実現されている。更に、ここでは、ECU２０が、ステップ１８０の処理を実行することにより前記第３の発明における「Cmax検出手段」が、ステップ１８２の処理を実行することにより前記第３の発明における「判定完了時間設定手段」が、それぞれ実現されている。
【００８８】
実施の形態４．
［実施の形態４の特徴］
次に、図７を参照して本発明の実施の形態４について説明する。本実施形態のシステムは、図１に示す構成を用いて、ECU２０に、図４または図５に示すルーチンと共に、図７に示すルーチンを実行させることにより実現することができる。
【００８９】
上述した実施の形態１または２のシステムにおいて、ストイキ制御が開始された後、酸素センサ１８の出力O2が反転するまでに要する時間は、触媒１４に流入する単位時間当たりのガス流量に応じて伸縮する。具体的には、図４（Ａ）または図５（Ａ）に示すルーチンに従ってストイキ制御が開始された場合、その後ステップ１１４において酸素センサ１８の出力O2がリッチ出力に反転したと判定されるまでの時間は、単位時間当たりの排気ガス流量が少ないほど長時間となる。同様に、図４（Ｂ）または図５（Ｂ）に示すルーチンに従ってストイキ制御が開始された場合、その後ステップ１４４において酸素センサ１８の出力O2がリーン出力に反転したと判定されるまでの時間は、単位時間当たりの排気ガス流量が少ないほど長時間となる。
【００９０】
このため、理論空燃比対応値stoichに生じているずれ量が許容限界を超えているか否かを厳密に判断するためには、酸素センサ１８の出力O2に反転が生ずるか否かを監視する期間、つまり、上記のリーン側判定完了時間L_TIMEおよびリッチ側判定完了時間R_TIMEを、単位時間当たりの排気ガス流量、つまり、内燃機関１０の吸入空気量Gaに応じて伸縮させるのが適切である。そこで、本実施形態のシステムでは、ストイキ制御の開始後における吸入空気量Gaの多少に応じて、リーン側判定完了時間L_TIMEおよびリッチ側判定完了時間R_TIMEを、適宜設定することとした。
【００９１】
［実施の形態４における具体的処理］
図７は、本実施形態において、ECU２０が、リーン側判定完了時間L_TIMEおよびリッチ側判定完了時間R_TIMEを設定するために実行するルーチンのフローチャートを示す。図７に示すルーチンは、図４（Ａ）、図４（Ｂ）、図５（Ａ）または図５（Ｂ）に示すルーチンに従ってストイキ制御が開始されると同時に起動される。
【００９２】
このルーチンによれば、先ず、内燃機関１０の吸入空気量Gaが検出される（ステップ１９０）。次に、最新のGaに基づいて、ストイキ制御の開始後における吸入空気量Gaの平滑値GaSMが更新される（ステップ１９２）。
【００９３】
次いで、上記の平滑値GaSMに基づいて、リーン側判定完了時間L_TIMEおよびリッチ側判定完了時間R_TIMEが設定される（ステップ１９４）。ECU２０は、リーン側判定完了時間L_TIMEおよびリッチ側判定完了時間R_TIMEを、吸入空気量Gaの平滑値GaSMとの関係で定めたマップを記憶している。ここでは、そのマップを参照することにより、L_TIMEおよびR_TIMEが設定される。
【００９４】
ステップ１９４において参照されるマップは、その枠中に示すように、平滑値GaSMが多量となるほど、L_TIMEおよびR_TIMEが短時間となるように設定されている。従って、本実施形態のシステムによれば、酸素センサ１８の出力O2に反転が生ずるか否かを監視する期間を、GaSMが多量であるほど短時間とし、また、GaSMが少量であるほど長時間とすることができる。
【００９５】
L_TIMEおよびR_TIMEを、上記の如く平滑値GaSMに応じて変化させることとすると、L_TIMEまたはR_TIMEの間に出力O2が反転するか否かを見ることでずれの有無を判断する手法を採りつつ、吸入空気量Gaの多少に影響されてその判断の基準が不安定になるのを阻止することができる。このため、本実施形態のシステムによれば、常に安定した精度で、理論空燃比対応値stoichに許容限界を超えるずれが生じている場合にのみ、そのずれの発生を判定することができる。
【００９６】
尚、上述した実施の形態４においては、ECU２０が、図４（Ａ）または図５（Ａ）に示すステップ１０８の処理、或いは図４（Ｂ）または図５（Ｂ）に示すステップ１３８の処理を実行することにより前記第４の発明における「経過時間カウンタ」が、図４（Ａ）または図５（Ａ）に示すステップ１１０または１１４の処理、或いは、図４（Ｂ）または図５（Ｂ）に示すステップ１４０または１４４の処理を実行することにより前記第４の発明における「ずれ発生認識手段」がそれぞれ実現されている。更に、ここでは、ECU２０が、ステップ１９０の処理を実行することにより前記第４の発明における「吸入空気量検出手段」が、ステップ１９４の処理を実行することにより前記第４の発明における「判定完了時間設定手段」が、それぞれ実現されている。
【００９７】
実施の形態５．
次に、図８を参照して本発明の実施の形態５について説明する。本実施形態のシステムは、図１に示す構成を用いて、ECU２０に、図８に示すルーチンを実行させることにより実現することができる。
【００９８】
本実施形態のシステムでは、実施の形態１の場合と同様の手法で、空燃比センサ１６の理論空燃比対応値stoichが学習される。つまり、本実施形態のシステムは、触媒１４をフル状態或いは空状態とした後にストイキ制御を実行し、その後の酸素センサ１８の出力O2に基づいて理論空燃比対応値stoichの学習を進める。
【００９９】
ところで、触媒１４をフル状態とする際には、上流空燃比が意図的にリーンに維持される。また、触媒１４を空状態とする際には、上流空燃比が意図的にリッチに維持される。そして、触媒１４がフル状態或いは空状態となった直後には、一時的にリーンな排気ガス、或いはリッチな排気ガス（以下、「未浄化ガス」と称す）が触媒１４の下流に流出する。
【０１００】
上記のタイミングにおいて流出する未浄化ガスの流量は、そのタイミングにおける吸入空気量Gaが多量であるほど多量となる。従って、吸入空気量Gaが多量に生じている状況下でフル状態或いは空状態を作り出そうとすれば、それらの状態が形成されるのに伴ってエミッション特性が悪化し易い。
【０１０１】
また、本実施形態のシステムでは、ストイキ制御の開始後に、酸素センサ１８の出力O2がリッチ出力或いはリーン出力となるか否かに基づいて、理論空燃比対応値stoichのずれの有無を判断する。そして、吸入空気量Gaが多量に生じた場合には、触媒１４中に酸素および酸素吸蔵余力が残されていても、触媒１４の下流に未浄化のガスが吹き抜けることがある。この場合、理論空燃比対応値stoichのずれ量が許容限界値に収まっているにも関わらず、酸素センサ１８の出力変化が認められ、ずれの発生が誤判定されることがある。
【０１０２】
このように、吸入空気量Gaが多量に発生している状況下では、理論空燃比対応値stoichの学習処理が実行されると、エミッション特性が悪化したり、或いは、理論空燃比対応値stoichのずれが誤って判定されたりといった不都合が生じ易い。そこで、本実施形態では、吸入空気量Gaが多量に生じている状況下では、理論空燃比対応値stoichの学習処理の実行を禁止することとした。
【０１０３】
［実施の形態５における具体的処理］
図８（Ａ）および図８（Ｂ）は、上記の機能を実現するために本実施形態においてECU２０が実行するルーチンのフローチャートである。ここで、図８（Ａ）に示すルーチンは、ステップ１００の前にステップ２００〜２０２の処理が追加されている点、およびステップ１１０の前にステップ２０４〜２０６の処理が追加されている点を除き、図４（Ａ）に示すルーチンと同様である。以下、図８（Ａ）に示すステップのうち、図４（Ａ）に示すステップと同一のものについては、共通する符号を付してその説明を省略または簡略する。
【０１０４】
図８（Ａ）に示すルーチンでは、先ず、内燃機関１０の吸入空気量Gaが検出される（ステップ２００）。次に、その吸入空気量Gaが所定の判定値GaTH以上であるかが判別される（ステップ２０２）。判定値GaTHは、エミッションの悪化や上述した誤判定を生ずることなく、理論空燃比対応値stoichの学習を進め得るGaの上限値である。
【０１０５】
従って、Ga≧GaTHの成立が認められた場合は、理論空燃比対応値stoichの学習処理を継続するべきでないと判断することができる。図８（Ａ）に示すルーチンでは、この場合、即座に今回の処理サイクルが終了される。一方、上記の条件が成立しないと判別された場合は、現在の吸入空気量Gaは、適正な学習処理を実行し得る量であると判断できる。この場合は、学習処理を進めるべく、ステップ１００以降の処理が実行される。
【０１０６】
図８（Ａ）に示すルーチンでは、ステップ１０２において、酸素センサ１０の出力O2がリーン出力に反転していないと判断された場合、再びステップ２００の処理が実行される。このため、このルーチンによれば、触媒１４がフル状態になるまでに、過大な吸入空気量Gaが発生すると、その時点で即座に理論空燃比対応値stoichの学習処理を終了させることができる。
【０１０７】
また、図８（Ａ）に示すルーチンによれば、ストイキ制御の開始後、ステップ１０８の処理に次いで、吸入空気量Gaの検出と、Ga≧GaTHの判別とが再び実行される（ステップ２０４，２０６）。その結果、Ga≧GaTHの成立が認められた場合は、即座に今回の処理サイクルが終了される。そして、Ga≧GaTHが成立しない場合にのみ、ステップ１１０以降の処理が実行される。
【０１０８】
ステップ１１０以降の処理で、酸素センサ１８の出力O2がリーン出力にもリッチ出力にも変化していないと判別された場合は、ステップ１１６において、Counterの計数値がリーン側判定完了時間L_TIMEに達したかが判別される。そして、この条件が成立しない場合は、上記ステップ２０４の処理が再び実行される。このため、図８（Ａ）に示すルーチンによれば、ストイキ制御の実行中に吸入空気量Gaが多量となった場合にも、即座に理論空燃比対応値stoichの学習処理を終了させることができる。
【０１０９】
図８（Ｂ）に示すルーチンは、リッチとリーンが反転していることを除き、図８（Ａ）に示すルーチンと同様である。このため、ここでは、その詳細な説明は省略する。図８（Ｂ）に示すルーチンによれば、触媒１４を空状態とした後にストイキ制御を実行して、理論空燃比対応値stoichの学習を進める機能と、吸入空気量Gaが不当に大きな値となった場合に即座にその学習を中止する機能とを実現することができる。
【０１１０】
以上説明した通り、図８（Ａ）に示すルーチン、および図８（Ｂ）に示すルーチンによれば、触媒１４をフル状態または空状態とするための処理の過程、或いは酸素センサ１８の出力O2に反転が生ずるかを判断するための過程で吸入空気量Gaが不当に大きな値となると、その時点で即座に理論空燃比対応値stoichの学習を終了させることができる。このため、本実施形態のシステムによれば、学習処理の過程で吸入空気量GAが多量となっても、その影響でエミッション特性が悪化したり、或いは理論空燃比対応値stoichのずれが誤判定されたりといった不都合が生ずるのを確実に防ぐことができる。
【０１１１】
尚、上述した実施の形態５においては、ECU２０が、ステップ２００，２０４，２１０または２１４の処理を実行することにより前記第５の発明における「空気量検出手段」が、ステップ２０２，２０６，２１２または２１６の処理を実行することにより前記第５の発明における「判定禁止手段」が、それぞれ実現されている。
【０１１２】
実施の形態６．
［実施の形態６の特徴］
次に、図９を参照して本発明の実施の形態６について説明する。本実施形態のシステムは、図１に示す構成を用いて、ECU２０に、図９に示すルーチンを実行させることにより実現することができる。
【０１１３】
上述した実施の形態１のシステムは、理論空燃比対応値stoichのずれが認識された場合に、その値を所定値だけリッチ化或いはリーン化することにより、その学習を進めることとしている。これに対して、本実施形態のシステムは、理論空燃比対応値stoichの学習値をモデル演算により求める点に特徴を有している。以下、モデル演算によりその学習値を算出する手法を説明する。
【０１１４】
本実施形態のシステムは、実施の形態１の場合と同様に、触媒１４をフル状態、或いは空状態とした状態でストイキ制御を開始し、その後、酸素センサ１８の出力が反転するか否かに基づいて理論空燃比対応値stoichにずれが生じているか否かを判別する。ここで、理論空燃比対応値stoichにリッチずれが生じていると仮定する。この場合、フル状態からストイキ制御が開始されると、触媒１４内の全ての酸素が消費された段階で酸素センサ１８の出力O2はリッチ出力に反転する。
【０１１５】
ストイキ制御の実行中に噴射された燃料の単位時間当たりの値がmfr、ストイキ制御の開始後、酸素センサ１８の出力O2が反転するまでに要した時間をtR、真の理論空燃比対応値stoichをstoich_A/Fとすると、触媒１４の最大酸素吸蔵量Cmaxは、現在の理論空燃比対応値stoichを用いて、以下のように表すことができる。
Cmax＝０．２３＊（stoich_A/F−stoich）＊mfr＊tR      ・・・（１）
但し、（１）式中の「０．２３」は、空気中の酸素の重量割合である。
【０１１６】
上記（１）式を書き換えると、真の理論空燃比対応値stoich_A/Fは、以下のように表すことができる。
stoich_A/F＝stoich＋Cmax／（０．２３＊mfr＊tR）      ・・・（２）
【０１１７】
従って、真の理論空燃比対応値stoich_A/Fは、現在の理論空燃比対応値stoichと、触媒１４の最大酸素吸蔵量Cmaxと、ストイキ制御中における単位時間当たりの燃料噴射量mfrと、酸素センサ１８の出力O2がリッチ出力に反転するのに要した時間tRとが判れば、それらを上記（２）式に代入することにより、演算により求めることができる。
【０１１８】
理論空燃比対応値stoichにリーンずれが生じていた場合には、触媒１４を空状態としてストイキ制御を開始した後、酸素センサ１８の出力O2がリーン出力に反転するまでの時間をtLとすると、以下の関係が成立する。
Cmax＝０．２３＊（stoich−stoich_A/F）＊mfr＊tL      ・・・（３）
【０１１９】
そして、上記（３）式を書き換えると、真の理論空燃比対応値stoich_A/Fは、以下のように表すことができる。
stoich_A/F＝stoich−Cmax／（０．２３＊mfr＊tR）      ・・・（４）
【０１２０】
従って、この場合には、現在の理論空燃比対応値stoichと、触媒１４の最大酸素吸蔵量Cmaxと、ストイキ制御中における単位時間当たりの燃料噴射量mfrと、酸素センサ１８の出力O2がリーン出力に反転するのに要した時間tLとを上記（４）式に代入することにより、真の理論空燃比対応値stoich_A/Fを演算により求めることができる。
【０１２１】
［実施の形態６における具体的処理］
図９（Ａ）および図９（Ｂ）は、上記の機能を実現するために本実施形態においてECU２０が実行するルーチンのフローチャートである。ここで、図９（Ａ）に示すルーチンは、ステップ１１４の後にステップ２２０の処理が追加されている点、およびステップ１２０の処理がステップ２２２〜２２８の処理に置き換えられている点を除き、図４（Ａ）に示すルーチンと同様である。以下、図９（Ａ）に示すステップのうち、図４（Ａ）に示すステップと同一のものについては、共通する符号を付してその説明を省略または簡略する。
【０１２２】
図９（Ａ）に示すルーチンでは、ストイキ制御が開始された後、ステップ１１０および１１４の条件が何れも否定される期間中は、それらの処理に次いで、内燃機関１０に対する単位時間当たりの燃料噴射量mfrが検出される（ステップ２２０）。ECU２０は、インジェクタを駆動する前提として、公知の手法により１サイクル当たりの燃料噴射量（燃料噴射時間）を算出している。ここでは、その燃料噴射量に基づいて単位時間当たりの燃料噴射量mfrが算出される。
【０１２３】
また、図９（Ａ）に示すルーチンによれば、ステップ１１４の処理により、酸素センサ１８の出力O2がリッチ出力に反転したと判別された場合、先ず、ストイキ制御の実行過程におけるmfrの平均値mfraveが算出される（ステップ２２２）。次に、触媒１４の最大酸素吸蔵量Cmaxが検出される（ステップ２２４）。尚、最大酸素吸蔵量Cmaxは、他のルーチンにより公知の手法で算出されるものとする。
【０１２４】
次いで、酸素センサ１８がリッチ出力に反転するまでに要した時間tRが算出される（ステップ２２６）。図９（Ａ）に示すルーチンによれば、ステップ２２６が実行される段階では、上記の時間tRに対応する値がカウンタCounterに計数されている。ここでは、その計数値を換算することで時間tRが算出される。
【０１２５】
次に、ストイキ制御の際に用いられていた理論空燃比対応値stoichと、上記ステップ２２２〜２２６の処理により取得したmfrave、Cmax、およびtRを、上記（２）式に代入することにより（mfraveはmfrとして代入する）、真の理論空燃比対応値stoich_A/Fを算出する。そして、その結果得られた値を、新たな理論空燃比対応値stoichとして更新する（ステップ２２８）。
【０１２６】
以上説明した通り、図９（Ａ）に示すルーチンによれば、触媒１４がフル状態とされた状態でストイキ制御が開始された後、酸素センサ１８の出力O2がリッチ出力に反転した場合に、上記（２）を用いて、モデル演算により理論空燃比対応値stoichを更新することができる。このようなモデル演算によれば、理論空燃比対応値stoichを所定値だけリーン化する場合に比して、精度良くその学習を進めることが可能である。
【０１２７】
図９（Ｂ）に示すルーチンは、リッチとリーンが反転していることを除き、図９（Ａ）に示すルーチンと同様である。このため、ここでは、その詳細な説明は省略する。図９（Ｂ）に示すルーチンによれば、触媒１４が空状態とされた状態でストイキ制御が開始された後、酸素センサ１８の出力O2がリーン出力に反転した場合に、上記（４）を用いて、モデル演算により理論空燃比対応値stoichを更新することができる。このようなモデル演算によれば、理論空燃比対応値stoichを所定値だけリッチ化する場合に比して、精度良くその学習を進めることが可能である。
【０１２８】
以上説明した通り、図９（Ａ）に示すルーチン、および図９（Ｂ）に示すルーチンによれば、実施の形態１の場合に比して、理論空燃比対応値stoichの学習を精度良く進めることが可能である。このため、本実施形態のシステムによれば、実施の形態１の場合に比して、理論空燃比対応値stoichを、短時間で精度良く適正値に収束させることができる。
【０１２９】
尚、上述した実施の形態６においては、ECU２０が、ステップ２２６の処理を実行することにより前記第６の発明における「反転時間検出手段」が、ステップ２２２の処理を実行することにより前記第６の発明における「噴射量検出手段」が、上記ステップ２２４の処理を実行することにより前記第６の発明における「Cmax検出手段」が、ステップ１１０および１１４の処理を実行することにより前記第６の発明における「ずれ方向判定手段」が、ステップ２２８の処理を実行することにより前記第６の発明における「学習手段」が、それぞれ実現されている。
【０１３０】
また、上述した実施の形態６においては、ECU２０が、ステップ２３６の処理を実行することにより前記第７の発明における「反転時間検出手段」が、ステップ２３２の処理を実行することにより前記第７の発明における「噴射量検出手段」が、上記ステップ２３４の処理を実行することにより前記第７の発明における「Cmax検出手段」が、ステップ１４０および１４４の処理を実行することにより前記第７の発明における「ずれ方向判定手段」が、ステップ２３８の処理を実行することにより前記第７の発明における「学習手段」が、それぞれ実現されている。
【０１３１】
実施の形態７．
［実施の形態７の特徴］
次に、図１０および図１１を参照して本発明の実施の形態７について説明する。本実施形態のシステムは、図１に示す構成を用いて、ECU２０に、図１１に示すルーチンを実行させることにより実現することができる。
【０１３２】
図１に示すシステムにおいて、触媒１４がフル状態にある状況下で上流空燃比がリーンとされると、下流空燃比もリーンとなる。この状態から上流空燃比を理論空燃比まで低下徐々に低下させると、その変化は、排気ガスの輸送時間に相当する遅延dを伴って下流空燃比に反映される。その結果、酸素センサ１８の出力O2は、上流空燃比が理論空燃比となった後、遅延dが経過した時点でリーン出力からリーン側ストイキ出力に変化する。
【０１３３】
同様に、触媒１４が空状態にある状況下で、上流空燃比をリッチから理論空燃比に向けて上昇させると、酸素センサ１８の出力O2は、上流空燃比が理論空燃比となった後、遅延dが経過した時点でリッチ出力からリッチ側ストイキ出力に変化する。つまり、上流空燃比を上記の如くスイープさせた場合は、上流空燃比が理論空燃比となった後、遅延dが経過した時点で酸素センサ１８の出力O2に反転が生ずるという規則が成立する。
【０１３４】
このような規則が成立するとすれば、酸素センサ１８の出力が反転した時点から遅延dだけ遡ることにより、上流空燃比が理論空燃比であった時点を特定することができる。そして、上流空燃比をスイープさせる過程で、空燃比センサ１６の出力を記録しておけば、上流空燃比が理論空燃比であった時点で空燃比センサ１６が発していた出力値、つまり、空燃比センサ１６の理論空燃比対応値stoichを正確に検知することができる。そこで、本実施形態のシステムは、上述した原理に従って、理論空燃比対応値stoichを学習することとした。
【０１３５】
［実施の形態７の動作］
図１０は、触媒１４をフル状態とした後、上流空燃比をリーンから理論空燃比に向けてスイープさせることにより理論空燃比対応値stoichを学習する際の動作を説明するためのタイミングチャートである。より具体的には、図１０（Ａ）は、空燃比センサ１６の出力波形を、図１０（Ｂ）は酸素センサ１８の出力波形を、また、図１０（Ｃ）は触媒１４の酸素吸蔵量OSAの変化を、それぞれ示している。
【０１３６】
図１０に示す例では、時刻t0の時点で、触媒１４の酸素吸蔵量OSAが最大酸素吸蔵量Cmaxとされている。つまり、触媒１４は、時刻t0の時点でフル状態とされている。本実施形態におけるECU２０は、触媒１４がフル状態となるまでは、上流空燃比が所定のリーン空燃比になるように燃料噴射量を制御する。そして、触媒１４がフル状態になったことが認められると、その後、上流空燃比を理論空燃比に向けてスイープさせる。
【０１３７】
上流空燃比がスイープされる過程では、図１０（Ａ）に示すように、空燃比センサ１６の出力が徐々に小さな値に変化する。ここで、上流空燃比がリーン領域に属している間は、触媒１４中の酸素は減少しないため、酸素吸蔵量OSAは最大酸素吸蔵量Cmaxのまま維持される。また、この間は、触媒１４の下流にリーンなガスが吹き抜けるため、酸素センサ１８の出力O2は、リーン出力のまま維持される。
【０１３８】
図１０に示す例では、時刻t1−dの時点で、上流空燃比が理論空燃比に到達している。つまり、時刻t1−dの時点で、空燃比センサ１６の出力は、真の理論空燃比対応値stoichを示している。そして、時刻t1−dの後は、上流空燃比がリッチとなることから、触媒１４中の酸素が放出され始め、その結果、酸素吸蔵量OSAが減少し始める。
【０１３９】
時刻t1−d以降、触媒１４が吸蔵酸素を放出している期間中は、触媒１４の作用によってリッチな排気ガスはストイキのガスに浄化される。このため、時刻t1−dの時点で触媒１４に流入したガスが酸素センサ１８の周辺に到達する時刻t1の後は、その出力O2がリッチ側ストイキ出力となる。
【０１４０】
触媒１４に流入したガスが酸素センサ１８の周囲に到達するのに要する遅延dは、内燃機関１０の運転状態（特に、吸入空気量Ga）、更には、触媒１４の劣化状態（つまり、Cmaxの値）に応じて変化する。本実施形態において、ECU２０は、内燃機関の運転状態や触媒１４の最大酸素吸蔵量Cmaxに基づいて、予め定められた規則に従って、その遅延dを推定する機能を有している。
【０１４１】
また、ECU２０は、上流空燃比のスイープを開始した後、酸素センサ１８の出力O2に反転が生ずるまでの期間において、空燃比センサ１８の出力を記憶しておく機能を有している。このため、ECU２０は、出力O2の反転が認められた時点t1で、その時点t1から遅延dだけ遡った時点t1−dで生じていた空燃比センサ１６の出力を読み出し、その値を真の理論空燃比対応値stoichとして学習することができる。
【０１４２】
［実施の形態７における具体的処理］
図１１（Ａ）は、図１０に示す動作を実現するためにECU２０が実行するルーチンのフローチャートを示す。図１１（Ａ）に示すルーチンでは、先ず、触媒１４の劣化状態（最大酸素吸蔵量Cmax）、および内燃機関１０の運転状態（吸入空気量Ga、負荷L、機関回転数Neなど）が検出される。そして、それらの検出結果に基づいて、排気ガスの輸送に起因する遅延d、より詳細には、空燃比センサ１６の出力と酸素センサ１８の出力O2との間に介在している応答遅れdが算出される（ステップ２４０）。ECU２０には、内燃触媒１４の劣化状態や内燃機関の運転状態との関係で、上記の遅延dを定めたマップが記憶されている。ここでは、そのマップを参照することにより、現在の状況に応じた遅延dを算出する。
【０１４３】
図１１（Ａ）に示すルーチンでは、次に、触媒１４をフル状態とするべく、上流空燃比がリーンに制御される（ステップ２４０）。次に、触媒１４がフル状態となったか否かを判断するため、酸素センサ１８の出力O2がリーン出力に反転したかが判別される（ステップ２４２）。そして、酸素センサ１８の出力O2がリーン出力に反転したと認められると、上流空燃比が理論空燃比に向けてスイープされ始める（ステップ２４６）。
【０１４４】
ECU２０は、空燃比センサ１８の出力の記録を開始し（ステップ２４８）、その記録を継続しつつ、酸素センサ１８の出力O2がストイキ出力に変化したかを判別する（ステップ２５０）。そして、出力O2がストイキ出力に変化したと判別されると、現時点から遅延dだけ遡った時点での空燃比センサ１６の出力が読み出され、その値が理論空燃比対応値stoichとされる（ステップ２５２）。以上の処理によれば、図１０に示す動作を実現して、真の理論空燃比対応値stoichを精度良く学習することができる。
【０１４５】
ECU２０は、また、上流空燃比をリッチに維持することで触媒１４を空状態とし、その後上流空燃比をリーン側にスイープすることによっても真の理論空燃比対応値stoichを学習することができる。図１１（Ｂ）は、そのような手順で理論空燃比対応値stoichを学習するためにECU２０が実行するルーチンのフローチャートである。尚、このルーチンは、リッチとリーンが反転していることを除き、図１１（Ａ）に示すルーチンと同様であるため、ここでは、その詳細な説明は省略する。
【０１４６】
本実施形態のシステムは、図１１（Ａ）に示すルーチンと図１１（Ｂ）に示すルーチンとを交互に実行することにより、理論空燃比対応値stoichの学習精度を更に高めることとしている。但し、これらのルーチンは、必ずしも両者を組み合わせて実行する必要はなく、何れか一方のルーチンのみを実行して理論空燃比対応値stoichの学習を進めることとしてもよい。
【０１４７】
以上説明した通り、本実施形態のシステムによれば、遅延dを考慮して時間を遡ることにより、空燃比センサ１６が、現実に理論空燃比の排気ガスに取り囲まれていた時に発した出力を検知し、その出力を理論空燃比対応値stoichとすることができる。このような手法によれば、理論空燃比対応値stoichを単に所定値だけリッチ化或いはリーン化することでその学習を進める場合に比して、より学習の精度を高めることができる。このため、本実施形態のシステムによれば、実施の形態１乃至６のシステムに比して、更に精度良く理論空燃比対応値stoichを学習することが可能である。
【０１４８】
ところで、上述した実施の形態７においては、理論空燃比対応値stoichの学習値が、空燃比センサ１６の異常判定には利用されていないが、本発明はこれに限定されるものではない。すなわち、上述した実施の形態２の場合と同様に、学習により得られたstoichが異常値であるか否かを判別し、その異常が認められた場合には、その時点で、空燃比センサ１６の異常を判定し、或いは、空燃比センサ１６の異常判定処理を改めて開始することとしてもよい。この場合、理論空燃比対応値stoichが正常値であるか否かは、上述した実施の形態２の場合と同様に、予め設定されている基準値との乖離量に基づいて判断することとしても、或いは、車両の出荷時点など、初期の段階において学習されたstoichとの乖離量に基づいて判断することとしてもよい。
【０１４９】
また、上述した実施の形態７においては、吸入空気量Gaの多少に関わらず、常に理論空燃比対応値stoichの学習が実行されることとなっているが、本発明はこれに限定されるものではない。すなわち、本実施形態のシステムにおいても、上述した実施の形態５の場合と同様に、吸入空気量Gaが多量である状況下では、理論空燃比対応値stoichの学習を中止することとしてもよい。
【０１５０】
更に、上述した実施の形態７においては、触媒１４がフル状態或いは空状態となった後、上流空燃比を均一の変化速度でスイープさせることとしているが、本発明はこれに限定されるものではない。つまり、上述した手法でstoichを学習するにあたっては、上流空燃比は、理論空燃比と交差する前後で妥当な速度で変化すれば良く、理論空燃比から大きく乖離した領域では、必ずしも緩やかに変化させる必要はない。このため、上流空燃比は、触媒１４がフル状態または空状態とされた後、理論空燃比の近傍値となるまでは、急激なスイープ速度で、或いは段階的に変化させることとしてもよい。
【図面の簡単な説明】
【０１５１】
【図１】本発明の実施の形態１の構成を説明するための図である。
【図２】図１に示す酸素センサの出力特性を説明するための図である。
【図３】本発明の実施の形態１のシステムが理論空燃比対応値stoichを学習する手法の原理を説明するためのタイミングチャートである。
【図４】本発明の実施の形態１において実行されるルーチンのフローチャートである。
【図５】本発明の実施の形態２において実行されるルーチンのフローチャートである。
【図６】本発明の実施の形態３において実行されるルーチンのフローチャートである。
【図７】本発明の実施の形態４において実行されるルーチンのフローチャートである。
【図８】本発明の実施の形態５において実行されるルーチンのフローチャートである。
【図９】本発明の実施の形態６において実行されるルーチンのフローチャートである。
【図１０】本発明の実施の形態７のシステムが理論空燃比対応値stoichを学習する手法の原理を説明するためのタイミングチャートである。
【図１１】本発明の実施の形態７において実行されるルーチンのフローチャートである。
【符号の説明】
【０１５２】
１０  内燃機関
１４  触媒
１６  空燃比センサ
１８  酸素センサ
２０  ECU(Electronic Control Unit)
stoich  理論空燃比対応値
【図１】
2005315110.tif 000003
【図２】
2005315110.tif 000004
【図３】
2005315110.tif 000005
【図４】
2005315110.tif 000006
【図５】
2005315110.tif 000007
【図６】
2005315110.tif 000008
【図７】
2005315110.tif 000009
【図８】
2005315110.tif 000010
【図９】
2005315110.tif 000011
【図１０】
2005315110.tif 000012
【図１１】
2005315110.tif 000013