(57)【要約】【課題】触媒上流側に空燃比センサが、下流側に酸素センサがそれぞれ配設された排気系の診断に際し、その診断動作の信頼性向上を図る。【解決手段】エンジン１の失火率に変化が生じた場合、サブフィードバック学習値が収束状態にあるか否かを判定し、収束状態にない場合、アクティブ制御を禁止してフィードバック学習を再度実行する。このフィードバック学習動作によってサブフィードバック学習値が収束状態となった後に、アクティブ制御の実行を許可し、アクティブ制御の実行条件の成立に伴って三元触媒４２の酸素貯蔵能力の診断や酸素センサ７７の故障診断を行う。【選択図】図１
2009209861.tif 000002
【特許請求の範囲】
【請求項１】
排気通路に設けられた触媒の上流側に空燃比センサが、下流側に酸素センサがそれぞれ配設され、上記酸素センサからの出力に応じて空燃比補正を行うための学習値を得る学習動作、および、空燃比を強制的にリッチ側またはリーン側に設定してそれに応じた酸素センサからの出力に基づいて排気系の診断動作を行う内燃機関の排気系診断装置において、
上記学習値が収束していない場合には、上記学習値の学習動作を実行し、それにより得られる学習値が収束した後に上記排気系の診断動作を実行する診断動作実行手段を備えていることを特徴とする内燃機関の排気系診断装置。
【請求項２】
上記請求項１記載の内燃機関の排気系診断装置において、
上記診断動作実行手段は、内燃機関の失火率に変化が生じた場合に、上記学習値が収束しているか否かを判断し、この学習値が収束していない場合に、上記学習値の学習動作を実行して、それにより得られる学習値が収束した後に上記排気系の診断動作を実行するよう構成されていることを特徴とする内燃機関の排気系診断装置。
【請求項３】
上記請求項１記載の内燃機関の排気系診断装置において、
上記診断動作実行手段は、上記空燃比補正を行うための上記学習値に変化が生じた場合に、学習値の学習動作を再度実行して、それにより得られる学習値が収束した後に上記排気系の診断動作を実行するよう構成されていることを特徴とする内燃機関の排気系診断装置。
【請求項４】
上記請求項１記載の内燃機関の排気系診断装置において、
上記診断動作実行手段は、上記酸素センサによって検出される触媒下流側の酸素濃度が理論空燃比に対してリッチ側またはリーン側のうちの一方側に偏っている状況が継続している場合に、上記学習値が収束しているか否かを判断し、この学習値が収束していない場合に、上記学習値の学習動作を実行して、それにより得られる学習値が収束した後に上記排気系の診断動作を実行するよう構成されていることを特徴とする内燃機関の排気系診断装置。
【請求項５】
上記請求項１〜４のうち何れか一つに記載の内燃機関の排気系診断装置において、
上記学習動作は、学習初期期間から学習終了期間に向かうに従って学習ゲインを小さくしていくことを特徴とする内燃機関の排気系診断装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車用エンジンに代表される内燃機関の排気系診断装置に係る。特に、本発明は、触媒の上流側および下流側にそれぞれ排気ガスセンサ（空燃比センサや酸素濃度センサ）を備えた排気系に対する診断動作の信頼性向上を図るための対策に関する。
【背景技術】
【０００２】
従来より、例えば下記の特許文献１〜特許文献４に開示されているように、自動車用エンジンの排気系において、触媒（例えば三元触媒）の上流側に空燃比センサ（以下、Ａ／Ｆセンサと呼ぶ場合もある）を、触媒の下流側に酸素濃度センサ（以下、単に酸素センサと呼ぶ場合もある）をそれぞれ備えた構成が知られている。
【０００３】
このような構成とすることで、上記Ａ／Ｆセンサの出力信号に基づき、触媒に流入する排気ガスの空燃比が目標空燃比（例えば理論空燃比）になるよう燃料噴射量がフィードバック制御されている（メインフィードバック制御）。また、このメインフィードバック制御と併せて、上記酸素センサの出力信号に基づきＡ／Ｆセンサの出力信号を補正する制御も行われている（サブフィードバック制御）。尚、このサブフィードバック制御における補正量（以下、学習値と呼ぶ）は、エンジンなどの経時的な変化に対応する値として算出され、サブフィードバック学習動作が行われる度に更新される。このような各フィードバック制御の実行により、例えば空燃比が理論空燃比となるようにインジェクタからの燃料噴射量が調整され、排気ガスのエミッションが改善される。
【０００４】
また、上述した排気系の構成では、酸素センサの出力に基づいて触媒劣化判定（触媒劣化診断）動作を行うことが可能である。以下、具体的に説明する。
【０００５】
排気ガスを浄化するための三元触媒は、酸素を貯蔵（吸蔵）するＯ2ストレージ機能（酸素貯蔵機能）を有している。このため、流入する排気ガスの空燃比がリッチである場合には貯蔵している酸素によりＨＣ，ＣＯ等の未燃成分を酸化する一方、流入する排気ガスの空燃比がリーンである場合には窒素酸化物（ＮＯｘ）を還元して、このＮＯｘから奪った酸素を触媒内部に貯蔵する。これにより、三元触媒は、エンジンの実空燃比が理論空燃比から偏移した場合でも、上記未燃成分や窒素酸化物を効果的に浄化することが可能である。従って、三元触媒が貯蔵し得る酸素量の最大値が大きいほど、三元触媒の浄化能力は高いと言える。
【０００６】
ところが、この種の触媒は、継続使用するに従って、燃料中に含まれる鉛や硫黄等による被毒、あるいは触媒に加わる熱によって劣化が生じ、この劣化の程度に応じて最大酸素貯蔵量は減少していく。従って、この最大酸素貯蔵量が精度良く算出・推定できれば、触媒の劣化を判定することができる。
【０００７】
この触媒の最大酸素貯蔵量を算出するための手法としてアクティブ制御が知られている（例えば、下記の特許文献５を参照）。このアクティブ制御では、上記酸素センサがリーン出力を発している場合に、エンジンに供給する混合気の空燃比をリッチにし、その後、酸素センサがリッチ出力を発するようになると、エンジンに供給する混合気の空燃比をリーンに切り換える。このようにして、触媒下流側に設けられた酸素センサの出力信号がリッチ／リーンで反転する毎に、混合気の目標空燃比を所定のリッチ目標値と所定のリーン目標値との間で反転させる。
【０００８】
その結果、触媒が酸素を一杯に吸蔵した状態と、吸蔵酸素を完全に放出した状態とが繰り返し実現されることになる。従って、それらの期間内に、触媒に流入した酸素量を積算したり、或いは、触媒に流入した排気ガス中の酸素不足量を積算すれば、触媒の酸素貯蔵能力（最大酸素貯蔵量）Ｃｍａｘを計算により求めることができる。そして、この手法で算出したＣｍａｘに基づいて、触媒の劣化の状態を診断することができる。以上がアクティブ制御による触媒劣化判定動作である。
【０００９】
図６は、このアクティブ制御が適正に実行されている場合における目標空燃比（目標Ａ／Ｆ）、インジェクタからの燃料噴射量（ｍｆｒ）、酸素センサの出力信号、Ｃｍａｘ（最大酸素貯蔵量）の計算値、触媒の酸素吸蔵量の変化をそれぞれ示すタイミングチャートである。尚、Ｃｍａｘの計算値におけるＣｍａｘLは触媒の吸蔵酸素量の算出値であり、ＣｍａｘRは触媒の離脱酸素量の算出値である。
【００１０】
この図に示すように、酸素センサの出力信号がリッチ／リーンで反転する毎に、混合気の目標空燃比を所定のリッチ目標値と所定のリーン目標値との間で反転させている。これらリッチ目標値およびリーン目標値は、理論空燃比（ストイキ）に対して互いに同一幅だけリッチ側およびリーン側に移行させた値として設定される。このような目標空燃比の変化に伴い、燃料噴射量も増減変化され、燃料増量が行われているタイミングでは、実空燃比がリッチ側となり、触媒は酸素を離脱している。一方、燃料減量が行われているタイミングでは、実空燃比がリーン側となり、触媒は酸素を吸蔵している。
【００１１】
また、アクティブ制御では、上述した触媒劣化判定動作と同様の動作によって酸素センサの故障診断を行うこともできる。つまり、酸素センサに故障が生じている場合には、上記アクティブ制御を行っても酸素センサの出力信号がリッチとリーンとの間で適正に反転することがなくなるので、これを検知することで酸素センサの故障発生を認識することができる。
【００１２】
尚、このアクティブ制御の実行条件は、エンジンの運転状態が比較的高負荷で安定した状態、つまり、上記空燃比のフィードバック制御による空燃比の変動が殆ど生じない状態となった場合に成立する。その理由は、触媒劣化判定動作等のアクティブ制御中に空燃比が頻繁に変動する状況であると、その度に単位時間当たりに触媒に流入する酸素量が変化し、触媒に貯蔵されている酸素量を算出するための演算処理が煩雑になるからである。
【特許文献１】特開平９−１１２３１０号公報
【特許文献２】特開平９−８８６８３号公報
【特許文献３】特開平８−４９５８５号公報
【特許文献４】特開平５−１５６９９４号公報
【特許文献５】特開２００４−１７６６１１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ところが、上述したアクティブ制御を行う場合、上記酸素センサの出力信号（出力電圧値）に基づいて設定されるサブフィードバック学習値が適正な値に収束されていない状況では、上記触媒劣化判定や酸素センサ故障診断の信頼性が十分に得られない可能性があった。以下、このような状況を招く場合の一例について図７を参照しながら具体的に説明する。この図７は、エンジンに一時的な失火が発生した場合における空燃比センサ出力、真の排気空燃比、メインフィードバック補正量それぞれの変化を示すタイミングチャートである。
【００１４】
気筒内へ燃料噴射を行うインジェクタの異物噛み込みが生じた場合や、点火系に異常が生じた場合、比較的低い頻度で失火が発生する場合がある。このような失火が発生すると、気筒内の混合気（未燃ガス）は燃焼されないまま排気系に流れ出してくる。そして、近年、応答性が向上した上記空燃比センサにあっては、この排気系に流れ出てきた混合気中に含まれる酸素に対する反応速度が高く、空燃比がリーンであると検出してしまう。実際には、失火の発生よりも少し遅れたタイミングでリーン出力がなされる。このような状況では上記メインフィードバック制御によってインジェクタからの燃料噴射量が増量補正されることになり、真の排気空燃比はリッチ側にずれることになる。つまり、制御（例えば理論空燃比を中心とする制御）の中心がリッチ側にずれた状態となる。
【００１５】
ところで、上述したように比較的低い頻度で失火が発生する状況では、上記空燃比センサの出力としては、一時的にリーン出力がなされるものの、その他の期間では略ストイキ状態の出力がなされているため、上記アクティブ制御の実行条件の成立に伴ってアクティブ制御が開始される。つまり、アクティブ制御による触媒劣化判定や酸素センサ故障診断が行われる状況となる。このため、上記失火の発生に起因して制御の中心がリッチ側にずれた状態のままアクティブ制御による触媒劣化判定や酸素センサ故障診断が行われてしまうことになる。
【００１６】
一方、上記燃料噴射量の増量補正が行われた状態で、排気系に流れ出てきた未燃ガスが触媒に達すると、この未燃ガスは触媒の熱によって燃焼することになる。この燃焼に伴って未燃ガス中の酸素が消費されることから、触媒下流側に配設されている酸素センサでは、排気ガスがリッチであると検出する。このようにして酸素センサからリッチ信号が出力される状況になると、この酸素センサの出力に基づく上記サブフィードバック制御では、空燃比をリーン側に補正するための制御が行われる。しかしながら、このサブフィードバック制御は、上述したように、経時的な変化に追従するような学習値の算出を行うものであるため、急激に制御量を変化させるロジックとはなっておらず、空燃比をリーン側に補正するための動作が遅く、上述したような制御の中心がずれた状態のまま上記アクティブ制御が継続されてしまう状況となる。より具体的には、例えば上記失火の発生率（失火率）が４％程度であって、異常判定レベルよりも低い（ＭＩＬ（警告灯）の点灯に至らない）失火率である状況では、上記サブフィードバック制御によって空燃比換算で０．１程度のリーン側への補正が行われる。この程度の補正幅では、上述した如く制御の中心がずれた状態のまま上記アクティブ制御が継続されてしまう状況となる。
【００１７】
このため、本来、理論空燃比に対して互いに同一幅だけリッチ側およびリーン側に移行させた値としてリッチ目標値およびリーン目標値を設定すべきであるアクティブ制御に対し、これら目標値が適正な値からずれた状態で上記触媒劣化判定や酸素センサ故障診断が行われることになる。その結果、触媒の酸素貯蔵能力を適切に診断することができなくなったり、センサ故障診断に信頼性が得られなくなるといった状況を招くことがあった。
【００１８】
図８は、上記制御の中心（ストイキ）がリッチ側にずれた場合におけるインジェクタからの燃料噴射量（ｍｆｒ）、酸素センサの出力信号、Ｃｍａｘの計算値、触媒の酸素吸蔵量の変化をそれぞれ示すタイミングチャートである。
【００１９】
この図に示すように、上記制御の中心がずれていることによりＣｍａｘLの算出値は大きめに得られ、ＣｍａｘRの算出値は小さめに得られてしまうことになる。これら値は、本来は同一値として得られるべきものであるが、上記制御中心のずれにより互いに異なる値として求められてしまう。そして、触媒の最大酸素貯蔵量（Ｃｍａｘ）は、これら算出値を平均化することで求められるため、これら算出値が適正な値として得られていないことから触媒の最大酸素貯蔵量としても正確な値として得られないことになる。
【００２０】
具体的に、触媒の吸蔵酸素量（ＣｍａｘL）および触媒の離脱酸素量（ＣｍａｘR）は以下の各式によって算出される。
【００２１】
ＣｍａｘL＝Σ０．２３・ｍｆｒL・（ＡＦL−ＳＴ）      …（１）
ＣｍａｘR＝Σ０．２３・ｍｆｒR・（ＡＦR−ＳＴ）      …（２）
ここで、ＡＦLはリーン時の空燃比センサ値、ＡＦRはリッチ時の空燃比センサ値、ｍｆｒLはリーン時の単位時間当たりの燃料噴射量、ｍｆｒRはリッチ時の単位時間当たりの燃料噴射量、ＳＴはストイキＡ／Ｆである。
【００２２】
空燃比を、｜ＡＦL−ＳＴ｜＝｜ＡＦR−ＳＴ｜となるように設定しても、空燃比センサのストイキ（上記制御中心）そのものが実際値に対してリッチ側にずれているため、触媒に導入される排気の真の空燃比は、｜ＡＦL−ＳＴ｜＜｜ＡＦR−ＳＴ｜となる。このため、リッチ付与時間は短く、リーン付与時間は長くなってしまう。しかしながら、計算上は、｜ＡＦL−ＳＴ｜＝｜ＡＦR−ＳＴ｜としているため、ＣｍａｘL＞ＣｍａｘRとなり、触媒の吸蔵酸素量と離脱酸素量との収支が合わなくなってしまう。上記ずれ量が大きいほど触媒の最大酸素貯蔵量（Ｃｍａｘ）の誤差が大きくなって、アクティブ制御による触媒劣化判定を正確に行うことができなくなる。
【００２３】
また、酸素センサが正常であるにも拘わらず上記制御中心のずれに起因して異常であると判断してしまう可能性もある。更に、触媒劣化判定を短時間で完了することに鑑み、アクティブ制御時に、例えば触媒の吸蔵酸素量（ＣｍａｘL）のみを算出し、この値が十分に大きい場合には触媒劣化は生じていないと判定する場合もあるが、上記制御中心のずれが原因で触媒の吸蔵酸素量（ＣｍａｘL）が大きな値として算出されている場合、触媒劣化を正確に認識することができなくなる可能性もある。
【００２４】
以上の説明では失火発生などに起因して制御中心にずれが生じている場合について説明したが、これに限らず、酸素センサの応答性・信号の輸送遅れ、触媒の酸素吸蔵速度と酸素離脱速度との差などによっても、上述の場合と同様の状況を招き、アクティブ制御による触媒劣化判定やセンサ故障診断を正確に行うことができなくなる可能性がある。
【００２５】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、触媒上流側に空燃比センサが、下流側に酸素センサがそれぞれ配設された排気系の診断に際し、その診断動作の信頼性向上を図ることにある。
【課題を解決するための手段】
【００２６】
−課題の解決原理−
上記の目的を達成するために講じられた本発明の解決原理は、上記制御中心にずれが生じるなどの状況にあっては、サブフィードバック学習値が収束状態にないことに着目し、この学習値が収束状態にあるか否かを判定し、収束状態にない場合にはサブフィードバック学習動作を再実行して学習値を収束状態にした後にアクティブ制御を実行するようにしている。
【００２７】
−解決手段−
具体的に、本発明は、排気通路に設けられた触媒の上流側に空燃比センサが、下流側に酸素センサがそれぞれ配設され、上記酸素センサからの出力に応じて空燃比補正を行うための学習値を得る学習動作、および、空燃比を強制的にリッチ側またはリーン側に設定してそれに応じた酸素センサからの出力に基づいて排気系の診断動作を行う内燃機関の排気系診断装置を前提とする。この内燃機関の排気系診断装置に対し、上記学習値が収束していない場合には、上記学習値の学習動作を実行し、それにより得られる学習値が収束した後に上記排気系の診断動作を実行する診断動作実行手段を備えさせている。
【００２８】
この特定事項により、例えば低頻度の失火発生などに起因して上記学習値（サブフィードバック学習値）が収束していない場合には、排気系の診断動作（上記アクティブ制御）の実行条件が成立していても（空燃比センサによって検出される触媒上流側の空燃比が略安定状態にあっても）、このアクティブ制御を実行させず、再度、学習値の学習動作を実行する。そして、この学習値の学習動作によって、この学習値が収束した後に上記排気系の診断動作を実行する。これによれば、制御の中心がずれている等の状況で排気系の診断動作（アクティブ制御）が実行されてしまうといったことを回避でき、排気系の診断動作（触媒の酸素貯蔵能力の診断やセンサの故障診断）を正確に行うことができる。
【００２９】
上記診断動作実行手段による排気系診断動作の実行の有無を判断する動作として具体的には以下の３タイプが挙げられる。
【００３０】
先ず、内燃機関の失火率に変化が生じた場合に、上記学習値が収束しているか否かを判断し、この学習値が収束していない場合に、学習値の学習動作を実行して、それにより得られる学習値が収束した後に上記排気系の診断動作を実行するよう構成されたものである。
【００３１】
また、上記空燃比補正を行うための上記学習値に変化が生じた場合に、学習値の学習動作を再度実行して、それにより得られる学習値が収束した後に上記排気系の診断動作を実行するよう構成されたものも挙げられる。
【００３２】
更には、上記酸素センサによって検出される触媒下流側の酸素濃度が理論空燃比に対してリッチ側またはリーン側のうちの一方側に偏っている状況が継続している場合に、学習値が収束しているか否かを判断し、この学習値が収束していない場合に、上記学習値の学習動作を実行して、それにより得られる学習値が収束した後に上記排気系の診断動作を実行するよう構成されたものも挙げられる。
【００３３】
これらの特定事項により、制御の中心がずれている等の不具合が生じていることを正確に認識することができて、その認識に従って排気系診断動作を実行するか否かを判断することが可能となる。これにより、本発明の実用性の向上を図ることができる。
【００３４】
また、上記学習動作としては、学習初期期間から学習終了期間に向かうに従って学習ゲインを小さくしていくものとなっている。尚、この場合、学習ゲインを段階的に（例えば２段階や３段階で）小さくしていくようにしてもよいし、連続的に小さくしていくようにしてもよい。
【００３５】
このような学習動作を行うものにあっては、一旦、制御の中心にずれが生じた場合、学習ゲインが小さく設定される状況になると、学習値が適正な値に収束するまでに比較的長い時間を要する可能性があり、制御の中心がずれている状況で排気系の診断動作（アクティブ制御）が実行されてしまう可能性が高い。本発明では、上記学習値が収束するまで排気系の診断動作を実行しないことになるので、上述のように学習ゲインが設定される学習動作を行うものにあっても、排気系の診断動作を正確に行うことが可能になる。
【発明の効果】
【００３６】
本発明では、触媒上流側に空燃比センサが、下流側に酸素センサがそれぞれ配設された排気系に対し、上記学習値が収束状態にない場合には学習値の学習動作を実行し、それにより得られる学習値が収束した後に上記排気系の診断動作を実行するようにしている。このため、制御の中心がずれている等の状況で排気系の診断動作が実行されてしまうといったことを回避でき、排気系の診断動作を正確に行うことができる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施の形態を図面に基づいて説明する。本実施形態では、本発明に係る排気系診断装置を自動車用４気筒ガソリンエンジン（内燃機関）に適用した場合について説明する。
【００３８】
（第１実施形態）
−エンジン−
図１は本実施形態に係るエンジン１および、その吸排気系の概略構成を示す図である。なお、この図１ではエンジン１の１気筒の構成のみを示している。
【００３９】
本実施形態におけるエンジン１は、例えば４気筒ガソリンエンジンであって、燃焼室１１を形成するピストン１２および出力軸であるクランクシャフト１３を備えている。上記ピストン１２はコネクティングロッド１４を介してクランクシャフト１３に連結されており、ピストン１２の往復運動がコネクティングロッド１４によってクランクシャフト１３の回転へと変換されるようになっている。
【００４０】
上記クランクシャフト１３には、外周面に複数の突起（歯）１６を有するシグナルロータ１５が取り付けられている。このシグナルロータ１５の側方近傍にはクランクポジションセンサ（エンジン回転数センサ）７１が配置されている。このクランクポジションセンサ７１は、例えば電磁ピックアップであって、クランクシャフト１３が回転する際にシグナルロータ１５の突起１６に対応するパルス状の信号（出力パルス）を発生する。
【００４１】
エンジン１のシリンダブロック１７には、エンジン水温（冷却水温）を検出する水温センサ７２が配置されている。
【００４２】
エンジン１の燃焼室１１には点火プラグ２が配置されている。この点火プラグ２の点火タイミングはイグナイタ２１によって調整される。このイグナイタ２１はエンジンＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）６によって制御される。
【００４３】
エンジン１の燃焼室１１には吸気通路３と排気通路４とが接続されている。吸気通路３と燃焼室１１との間に吸気バルブ３１が設けられており、この吸気バルブ３１を開閉駆動することにより、吸気通路３と燃焼室１１とが連通または遮断される。また、排気通路４と燃焼室１１との間に排気バルブ４１が設けられており、この排気バルブ４１を開閉駆動することにより、排気通路４と燃焼室１１とが連通または遮断される。これら吸気バルブ３１および排気バルブ４１の開閉駆動は、クランクシャフト１３の回転が伝達される吸気カムシャフトおよび排気カムシャフト（共に図示省略）の各回転によって行われる。
【００４４】
上記吸気通路３には、エアクリーナ３２、熱線式のエアフローメータ７３、吸気温センサ７４（エアフローメータ７３に内蔵）、および、エンジン１の吸入空気量を調整する電子制御式のスロットルバルブ３３が配置されている。このスロットルバルブ３３はスロットルモータ３４によって駆動される。スロットルバルブ３３の開度はスロットル開度センサ７５によって検出される。
【００４５】
エンジン１の排気通路４には三元触媒４２が配置されている。この三元触媒４２は、酸素を貯蔵（吸蔵）するＯ2ストレージ機能（酸素貯蔵機能）を有しており、この酸素貯蔵機能により、空燃比が理論空燃比からある程度まで偏移したとしても、ＨＣ，ＣＯおよびＮＯｘを浄化することが可能となっている。即ち、エンジン１の空燃比がリーンとなって、三元触媒４２に流入する排気ガス中の酸素およびＮＯｘが増加すると、酸素の一部を三元触媒４２が吸蔵することでＮＯｘの還元・浄化を促進する。一方、エンジン１の空燃比がリッチになって、三元触媒４２に流入する排気ガスにＨＣ，ＣＯが多量に含まれると、三元触媒４２は内部に吸蔵している酸素分子を放出し、これらのＨＣ，ＣＯに酸素分子を与え、酸化・浄化を促進する。
【００４６】
上記三元触媒４２の上流側の排気通路４には空燃比センサ（Ａ／Ｆセンサ）７６が配置されている。この空燃比センサ７６は、例えば限界電流式の酸素濃度センサが適用されており、広い空燃比領域に亘って空燃比に対応した出力電圧を発生する構成となっている。
【００４７】
また、三元触媒４２の下流側の排気通路４には酸素センサ（Ｏ2センサ）７７が配置されている。この酸素センサ７７は、例えば起電力式（濃淡電池式）の酸素濃度センサが適用されている。
【００４８】
これら空燃比センサ７６および酸素センサ７７の発生する信号は、それぞれＡ／Ｄ変換された後に、エンジンＥＣＵ６に入力される。
【００４９】
そして、吸気通路３には燃料噴射用のインジェクタ３５が配置されている。このインジェクタ３５には、燃料タンクから燃料ポンプによって所定圧力の燃料が供給され、吸気通路３に燃料が噴射される。この噴射燃料は吸入空気と混合されて混合気となってエンジン１の燃焼室１１に導入される。燃焼室１１に導入された混合気（燃料＋空気）は、エンジン１の圧縮行程を経た後、点火プラグ２にて点火されて燃焼・爆発する。この混合気の燃焼室１１内での燃焼・爆発によりピストン１２が往復運動してクランクシャフト１３が回転する。以上のエンジン１の運転状態はエンジンＥＣＵ６によって制御される。
【００５０】
−制御ブロックの説明−
以上のエンジン１の運転状態は上記エンジンＥＣＵ６によって制御される。このエンジンＥＣＵ６は、図２に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６３およびバックアップＲＡＭ６４などを備えている。
【００５１】
ＲＯＭ６２は、各種制御プログラムや、それら各種制御プログラムを実行する際に参照されるマップ等が記憶されている。
【００５２】
ＣＰＵ６１は、ＲＯＭ６２に記憶された各種制御プログラムやマップに基づいて演算処理を実行する。
【００５３】
ＲＡＭ６３は、ＣＰＵ６１での演算結果や各センサから入力されたデータ等を一時的に記憶するメモリである。
【００５４】
バックアップＲＡＭ６４は、エンジン１の停止時にその保存すべきデータ等を記憶する不揮発性のメモリである。
【００５５】
これらＲＯＭ６２、ＣＰＵ６１、ＲＡＭ６３およびバックアップＲＡＭ６４は、バス６７を介して互いに接続されるとともに、外部入力回路６５および外部出力回路６６と接続されている。
【００５６】
外部入力回路６５には、上記クランクポジションセンサ７１、水温センサ７２、エアフローメータ７３、吸気温センサ７４、スロットル開度センサ７５、空燃比センサ７６、酸素センサ７７の他に、アクセル開度センサ７８、カム角センサ７９、ノックセンサ７Ａ、吸気圧センサ７Ｂ等が接続されている。一方、外部出力回路６６には、上記スロットルバルブ３３を駆動するスロットルモータ３４、上記インジェクタ３５、イグナイタ２１等が接続されている。
【００５７】
クランクポジションセンサ７１は、上述した如くクランクシャフト１３の近傍に配設されており、クランクシャフト１３の回転角（クランク角ＣＡ）および回転速度（エンジン回転数Ｎｅ）を検出するものである。
【００５８】
上記水温センサ７２は、上記シリンダブロック１７に形成されているウォータジャケット１７ａ内を流れる冷却水の温度を検出し、その冷却水温信号をエンジンＥＣＵ６に送信する。
【００５９】
エアフローメータ７３は、吸入空気量を検出し、その吸入空気量信号をエンジンＥＣＵ６に送信する。
【００６０】
吸気温センサ７４は、上記エアフローメータ７３と一体的に設けられ、吸入空気温度を検出して、その吸気温信号をエンジンＥＣＵ６に送信する。
【００６１】
スロットル開度センサ７５は、上記スロットルバルブ３３の開度を検出し、そのスロットル開度信号をエンジンＥＣＵ６に送信する。
【００６２】
空燃比センサ７６は、燃焼室１１から排出された排気（三元触媒４２の上流側における排気）の空燃比に対応した出力電圧を発生し、その出力電圧信号をエンジンＥＣＵ６に送信する。
【００６３】
酸素センサ７７は、三元触媒４２の下流側における排気の酸素濃度に対応した出力電圧を発生し、その出力電圧信号をエンジンＥＣＵ６に送信する。
【００６４】
アクセル開度センサ７８は、ドライバにより操作されるアクセルペダルの開度（操作量）を検知し、その開度信号をエンジンＥＣＵ６に送信する。
【００６５】
カム角センサ７９は、吸気カムシャフトの近傍に配設されており、例えば第１番気筒の圧縮上死点（ＴＤＣ）に対応してパルス信号を出力することにより気筒判別センサとして使用される。つまり、このカム角センサ７９は、吸気カムシャフトの１回転毎にパルス信号を出力する。このカム角センサによるカム角の検出手法の一例としては、吸気カムシャフトと回転一体のロータの外周面の１箇所に外歯を形成しておき、この外歯と対面して電磁ピックアップで成る上記カム角センサ７９を配置し、吸気カムシャフトの回転に伴って外歯がカム角センサ７９の近傍を通過した際に、このカム角センサ７９が出力パルスを発生するようになっている。このロータはクランクシャフト１３の１／２の回転速度で回転するため、クランクシャフト１３が７２０°回転する毎に出力パルスを発生する。言い換えると、ある特定の気筒が同一行程（例えば第１番気筒が圧縮上死点に達した時点）となる度に出力パルスを発生する構成である。
【００６６】
ノックセンサ７Ａは、シリンダブロック１７に伝わるエンジンの振動を圧電素子式（ピエゾ素子式）または電磁式（マグネット、コイル）などによって検出する振動式センサである。
【００６７】
吸気圧センサ７Ｂは、吸気系のサージタンクに備えられており、吸気通路３内の圧力（吸気管内圧力）を検出し、その吸気圧信号をエンジンＥＣＵ６に送信する。
【００６８】
そして、エンジンＥＣＵ６は、上記した各種センサの検出信号に基づいて、エンジン１の各種制御を実行する。例えば、エンジン１の排気通路４に配置した空燃比センサ７６および酸素センサ７７の各出力に基づいて排気ガス中の酸素濃度を算出し、その算出した酸素濃度から得られる実際の空燃比が目標空燃比（例えば理論空燃比）に一致するように、インジェクタ３５から吸気通路３に噴射する燃料噴射量を制御する「空燃比フィードバック制御」を実行する。
【００６９】
−空燃比フィードバック制御−
次に、上記空燃比フィードバック制御の具体的な動作手順について説明する。
【００７０】
本実施形態における空燃比フィードバック制御では、上記空燃比センサ７６の出力に基づいて、三元触媒４２の上流における排気空燃比を理論空燃比に近づけるためのメインフィードバック制御と、上記酸素センサ７７の出力に基づいて、上記メインフィードバック制御のずれを補償すると共に経時的な変化に対応するための学習値を求めるサブフィードバック制御とが組み合わされて実行される。
【００７１】
メインフィードバック制御では、空燃比センサ７６の出力を基礎として検知される排気空燃比が、理論空燃比と一致するように、インジェクタ３５からの燃料噴射量の増減が調整される。より具体的には、検知された排気空燃比が理論空燃比よりリッチであれば、燃料噴射量が減量調整され、逆に、その排気空燃比が理論空燃比よりリーンであれば、燃料噴射量が増量調整される。
【００７２】
このメインフィードバック制御によれば、理想的には、三元触媒４２に流れ込む排気ガスの空燃比を理論空燃比に維持することができる。そして、その状態が厳密に維持されれば、三元触媒４２の吸蔵酸素量がほぼ一定量に保たれるため、その下流に未浄化の成分を含む排気ガスが流出してくるのを完全に阻止することができる。
【００７３】
しかしながら、空燃比センサ７６の出力にはある程度の誤差が含まれている。また、インジェクタ３５の噴射特性にもある程度のバラツキがある。このため、現実的には、メインフィードバック制御を実行するだけで三元触媒４２の上流の排気空燃比を厳密に理論空燃比に制御することは困難である。更に、エンジン１においては、燃料増量やフューエルカットなど、排気空燃比を意図的に理論空燃比から乖離させる制御が行われる。そして、これらの制御が行われると、三元触媒４２は、酸素を完全に脱離した状態、或いは酸素を能力一杯に吸蔵した状態となることがあり、下流側に未浄化成分を流出させ易い状態となる。
【００７４】
以上のような理由により、メインフィードバック制御が実行されていても、三元触媒４２の下流には未浄化の成分を含む排気ガスが流出してくることがある。つまり、メインフィードバック制御が実行されていても、三元触媒４２の上流の排気空燃比は、全体としてリッチ側或いはリーン側に偏ることがあり、その結果、三元触媒４２の下流には、ＨＣやＣＯを含むリッチな排気ガス、或いは、ＮＯｘを含むリーンな排気ガスが流出してくることがある。
【００７５】
このような流出が生ずると、酸素センサ７７は、排気ガスの空燃比に応じてリッチ出力或いはリーン出力を発生する。このため、本実施形態のシステムでは、酸素センサ７７からリッチ出力が発せられた場合には、三元触媒４２の上流の排気空燃比が全体としてリッチ側に偏っていたと判断することができ、また、酸素センサ７７からリーン出力が発せられた場合には、三元触媒４２の上流の排気空燃比が全体としてリーン側に偏っていたと判断することができる。
【００７６】
サブフィードバック制御では、酸素センサ７７の出力値と、その出力値の制御目標値との差を小さくするための制御（例えばＰＩＤ制御）が実行される。より具体的には、上記の差が小さくなるように、空燃比センサ７６の出力を補正する処理が行われる。空燃比センサ７６の出力が上記の如く補正されると、全体としてリッチ側或いはリーン側に偏っていた三元触媒４２の上流の空燃比が理論空燃比に近づけられる。その結果、メインフィードバック制御のずれが補償され、三元触媒４２の下流に未浄化の成分が吹き抜け難い状態が形成される。このため、優れたエミッション特性を実現することが可能になる。また、このサブフィードバック制御は、経時的な変化に対応するべく、その補正の速度は上記メインフィードバック制御による補正速度よりも低くなっている。また、このサブフィードバック制御の学習動作により得られた学習値は、上記バックアップＲＡＭ６４に記憶され、学習動作が行われる度に更新されていく。
【００７７】
以上のような、メインフィードバック制御による短期的な変化に対応する補正値と、サブフィードバック制御による経時的な変化に対応する学習値と和がフィードバック補正量として求められて燃料噴射量が増量調整または減量調整されることになる。
【００７８】
特に、本実施形態に係るサブフィードバック制御では、サブフィードバック学習動作時における学習ゲインを学習動作の途中で変更するようになっている。具体的には、学習動作の初期期間、学習動作の完了判定期間、学習動作の完了判定後の順で学習ゲインを徐々に小さく設定している。このため、学習値が大きくずれている場合であっても、学習初期期間における大きな学習ゲインによって学習値を大きく補正することができ（学習速度を高めることができ）、その補正後には、学習ゲインを小さく設定することで、学習値が再び大きくずれてしまうといったことを回避できるようにしている。また、上記学習動作の初期期間、つまり学習ゲインを大きく設定する期間は、その他の期間、つまり学習ゲインを小さく設定する期間よりも短く設定している。以上が本実施形態における空燃比フィードバック制御である。
【００７９】
−アクティブ制御−
次に、排気系の診断動作であるアクティブ制御について説明する。
【００８０】
このアクティブ制御は、酸素センサ７７がリーン出力を発している場合に、エンジン１に供給する混合気の空燃比（目標空燃比）を強制的にリッチ側に設定し、その後、酸素センサ７７がリッチ出力を発するようになると、エンジン１に供給する混合気の空燃比（目標空燃比）を強制的にリーン側に切り換える。このようにして、酸素センサ７７の検出値がリッチ／リーンで反転する毎に、混合気の目標空燃比を、リーン側とリッチ側との間で反転させる。
【００８１】
このアクティブ制御によって三元触媒４２の劣化診断を行う場合、上記目標空燃比の反転動作に伴って、三元触媒４２が酸素を一杯に吸蔵した状態と、吸蔵酸素を完全に放出した状態とが繰り返し実現される。従って、それらの期間内に、触媒に流入した酸素量を積算したり、或いは、触媒に流入した排気ガス中の酸素不足量を積算することで三元触媒４２の酸素貯蔵能力（最大酸素貯蔵量）Ｃｍａｘを計算により求める。Ｃｍａｘの算出手順については上述したので、ここでの説明は省略する。
【００８２】
一方、上記アクティブ制御によって酸素センサ７７の故障診断を行う場合、酸素センサ７７の検出値がリッチ／リーンで反転する状況が生じない場合には酸素センサ７７に故障が発生していると判断することができる。
【００８３】
尚、これら三元触媒４２の劣化診断および酸素センサ７７の故障診断は同時並行することも可能である。
【００８４】
−失火発生時のアクティブ制御実行許可判定動作−
次に、本実施形態の特徴とする動作である失火発生時のアクティブ制御実行許可判定動作について図３のフローチャートに沿って説明する。
【００８５】
この動作は、上述した如く、低頻度の失火発生（例えば４％程度の失火率）に起因して制御の中心（認識しているストイキ）がずれている場合に、上記アクティブ制御の実行を許可するか否かを判定するための動作である。
【００８６】
先ず、ステップＳＴ１において、失火率に変化が生じたか否かを判定する。この失火率を求めるための手法について以下に簡単に説明する。エンジン１に一時的な失火が発生すると、エンジン回転速度の変動が大きくなる。つまり、ある一つの気筒に失火が発生した場合、その気筒の膨張行程（実際には失火しており爆発していない行程）におけるエンジン回転速度が次第に低下していく。その結果、この失火を生じた気筒の膨張行程中においてクランクシャフト１３が一定クランク角度を回転するのに要する時間が、他気筒の膨張行程時におけるその時間よりも長くなる。このため、これら時間を計測して比較することにより失火発生の有無を判定する。
【００８７】
より具体的には、ある気筒（例えば第３番気筒）が膨張行程にあるときに、この膨張行程中においてクランクシャフト１３が一定クランク角度を回転するのに要する時間と、この膨張行程よりも所定クランク角度前（例えば３６０°前）に膨張行程を迎えていた気筒（例えば第２番気筒）の膨張行程中においてクランクシャフト１３が一定クランク角度を回転するのに要する時間との差を演算（前者の時間から後者の時間を減算）する。そして、この演算値が所定の閾値を超えている場合には、エンジン１の回転変動が大きくなったと判断して失火（第３番気筒に失火）が発生したと判定している。そして、上記ＲＡＭ６３には失火カウンタが備えられており、失火発生の判定を行う度に失火カウンタがインクリメントされ、所定のエンジン回転回数（例えば１０００回転）当たりの失火カウンタのカウント値を読み出すことにより失火率が算出される。例えば失火率が５％以上となった場合にはＭＩＬ（警告灯）が点灯することになるが、失火率が５％未満であるときにはＭＩＬが点灯されることなくエンジン１の運転が継続される。
【００８８】
そして、例えば失火率が略０％の状態が維持され、失火率に変化がないと判断された場合には、ステップＳＴ１でＮＯ判定されてステップＳＴ４に移り、上記アクティブ制御の実行を許可する。つまり、アクティブ制御の実行条件（例えば、空燃比センサ７６により検出される空燃比が所定期間、略安定している場合）が成立すると同時に上記アクティブ制御を開始して、三元触媒４２の劣化診断や酸素センサ７７の故障診断が行われる。
【００８９】
一方、例えば失火率が略０％であった状況から４％程度に変化した場合には、ステップＳＴ１でＹＥＳ判定され、ステップＳＴ２に移る。このステップＳＴ２では、上記サブフィードバック学習値が収束しているか否かを判定する。例えば現在の学習値と前回の学習値との差が所定値以下（例えば空燃比換算で０．０５以下）であるか否かを判定する。この値はこれに限定されるものではない。失火率に変化が生じた直後では、上述したように制御の中心（認識しているストイキ）がずれていることに起因してサブフィードバック学習値は変動しており収束状態にはない。つまり、ステップＳＴ２でＮＯ判定されて、ステップＳＴ３に移る。このステップＳＴ３では、上記サブフィードバック学習値の算出動作（サブフィードバック学習動作）を実行する。これにより新たな学習値が求められ、学習値が更新される。
【００９０】
このようなサブフィードバック学習動作が、学習値が収束状態となるまで繰り返されることになり、この学習値が収束状態となると、ステップＳＴ２でＹＥＳ判定されてステップＳＴ４に移る。このステップＳＴ４では、上述した如く、アクティブ制御の実行を許可する（診断動作実行手段による診断動作の実行許可）。つまり、アクティブ制御の実行条件が成立すると同時に上記アクティブ制御を開始して、三元触媒４２の劣化診断や酸素センサ７７の故障診断が行われる。
【００９１】
このように、サブフィードバック学習値が収束していない状況では、アクティブ制御の実行条件が成立していても（空燃比センサ７６によって検出される触媒上流側の空燃比が略安定状態にあっても）、このアクティブ制御を実行させず（アクティブ制御を禁止し）、サブフィードバック学習値が収束した後にアクティブ制御を実行している。このため、制御の中心がずれている等の状況でアクティブ制御が実行されてしまうといったことを回避でき、三元触媒４２の酸素貯蔵能力の診断や酸素センサ７７の故障診断を正確に行うことができ、診断動作の信頼性向上を図ることができる。
【００９２】
また、触媒劣化判定を短時間で完了することに鑑み、アクティブ制御時に、触媒の吸蔵酸素量（ＣｍａｘL）または離脱酸素量（ＣｍａｘR）の一方を算出し、その値が十分に高い場合には、他方の算出を行うことなしに、触媒劣化は生じていないと判定するようにした場合であっても、上記吸蔵酸素量（ＣｍａｘL）と離脱酸素量（ＣｍａｘR）とが略同一値として得られる状況でアクティブ制御を行っているため、触媒劣化を正確に認識することが可能である。
【００９３】
（第２実施形態）
次に、第２実施形態について説明する。本実施形態は、アクティブ制御の実行を許可するか否かを判定するための動作が上記第１実施形態のものと異なっている。その他、エンジン１の構成、空燃比フィードバック制御、アクティブ制御については、上述した第１実施形態と同一であるので、ここでは、アクティブ制御の実行を許可するか否かを判定するための動作についてのみ図４のフローチャートを用いて説明する。
【００９４】
先ず、ステップＳＴ１１において、アクティブ制御の実行条件が成立したか否かを判定する。例えば空燃比センサ７６によって検出される触媒上流側の空燃比が変動しておりアクティブ制御の実行条件が成立していない場合には、ステップＳＴ１１でＮＯ判定されて本ルーチンを終了する。
【００９５】
一方、アクティブ制御の実行条件が成立しており、ステップＳＴ１１でＹＥＳ判定された場合にはステップＳＴ１２に移り、サブフィードバック学習値に変化が生じたか否かを判定する。そして、サブフィードバック学習値に全く変化が無い場合や僅かな変化しかない場合にはステップＳＴ１２でＮＯ判定されてステップＳＴ１５に移り、上記アクティブ制御の実行を許可し、アクティブ制御を開始して、三元触媒４２の劣化診断や酸素センサ７７の故障診断が行われる。その後、ステップＳＴ１６に移って現在のサブフィードバック学習値をバックアップＲＡＭ６４に記憶させる。
【００９６】
一方、サブフィードバック学習値が比較的大きく変化した場合（例えば空燃比換算で０．１以上変化した場合）には、ステップＳＴ１２でＹＥＳ判定され、ステップＳＴ１３に移る。このステップＳＴ１３では、上記サブフィードバック学習値が収束しているか否かを判定する。サブフィードバック学習値が比較的大きく変化した直後では、サブフィードバック学習値は収束状態にはない。つまり、ステップＳＴ１３でＮＯ判定されて、ステップＳＴ１４に移る。このステップＳＴ１４では、上記サブフィードバック学習値の算出動作（サブフィードバック学習動作）を実行する。これにより新たな学習値が求められ、学習値が更新される。
【００９７】
このようなサブフィードバック学習動作が、学習値が収束状態となるまで繰り返されることになり、この学習値が収束状態となると、ステップＳＴ１３でＹＥＳ判定されてステップＳＴ１５に移る。このステップＳＴ１５では、上述した如く、アクティブ制御の実行を許可する（診断動作実行手段による診断動作の実行許可）。つまり、アクティブ制御の実行条件が成立すると同時に、または、上記ステップＳＴ１１で成立したアクティブ制御の実行条件が成立し続けている場合にはステップＳＴ１３でＹＥＳ判定されるのと同時に、上記アクティブ制御を開始して、三元触媒４２の劣化診断や酸素センサ７７の故障診断が行われる。その後、ステップＳＴ１６に移って現在のサブフィードバック学習値をバックアップＲＡＭ６４に記憶させる。
【００９８】
このように、本実施形態においても、サブフィードバック学習値が収束していない状況では、アクティブ制御の実行条件が成立していても、このアクティブ制御を実行させず、サブフィードバック学習値が収束した後にアクティブ制御を実行させている。このため、制御の中心がずれている等の状況でアクティブ制御が実行されてしまうといったことを回避でき、三元触媒４２の酸素貯蔵能力の診断や酸素センサ７７の故障診断を正確に行うことができ、診断動作の信頼性向上を図ることができる。
【００９９】
（第３実施形態）
次に、第３実施形態について説明する。本実施形態も、アクティブ制御の実行を許可するか否かを判定するための動作が上記第１実施形態のものと異なっている。その他、エンジン１の構成、空燃比フィードバック制御、アクティブ制御については、上述した実施形態と同一であるので、ここでは、アクティブ制御の実行を許可するか否かを判定するための動作についてのみ図５のフローチャートを用いて説明する。
【０１００】
先ず、ステップＳＴ３１において、酸素センサ７７の出力がリッチ側またはリーン側のうちの一方側に偏っているか否かを判定する。具体的には、酸素センサ７７の出力をモニタしていき、９０％以上の高い値でセンサ出力に偏り（リッチ側またはリーン側のうちの一方側への偏り）が生じているか否かを判定する。この値はこれに限るものではなく、任意に設定可能である。
【０１０１】
そして、酸素センサ７７の出力がリッチ側またはリーン側のうちの一方側に偏っている状況にはない場合には、ステップＳＴ３１でＮＯ判定されてステップＳＴ３４に移り、上記アクティブ制御の実行を許可する。つまり、アクティブ制御の実行条件（例えば、空燃比センサ７６により検出される空燃比が所定期間、略安定している場合）が成立すると同時に上記アクティブ制御を開始して、三元触媒４２の劣化診断や酸素センサ７７の故障診断が行われる。
【０１０２】
一方、酸素センサ７７の出力がリッチ側またはリーン側のうちの一方側に偏っている場合には、ステップＳＴ３１でＹＥＳ判定され、ステップＳＴ３２に移る。このステップＳＴ３２では、上記サブフィードバック学習値が収束しているか否かを判定する。サブフィードバック学習値が収束状態にはない場合には、ステップＳＴ３２でＮＯ判定されて、ステップＳＴ３３に移る。このステップＳＴ３３では、上記サブフィードバック学習値の算出動作（サブフィードバック学習動作）を実行する。これにより新たな学習値が求められ、学習値が更新される。
【０１０３】
このようなサブフィードバック学習動作が、学習値が収束状態となるまで繰り返されることになり、この学習値が収束状態となると、ステップＳＴ３２でＹＥＳ判定されてステップＳＴ３４に移る。このステップＳＴ３４では、上述した如く、アクティブ制御の実行を許可する（診断動作実行手段による診断動作の実行許可）。つまり、アクティブ制御の実行条件が成立すると同時に上記アクティブ制御を開始して、三元触媒４２の劣化診断や酸素センサ７７の故障診断が行われる。
【０１０４】
このように、本実施形態においても、サブフィードバック学習値が収束していない状況では、アクティブ制御の実行条件が成立していても、このアクティブ制御を実行させず、サブフィードバック学習値が収束した後にアクティブ制御を実行している。このため、制御の中心がずれている等の状況でアクティブ制御が実行されてしまうといったことを回避でき、三元触媒４２の酸素貯蔵能力の診断や酸素センサ７７の故障診断を正確に行うことができ、診断動作の信頼性向上を図ることができる。
【０１０５】
−他の実施形態−
以上説明した各実施形態は、排気系診断装置を自動車用４気筒ガソリンエンジン１に適用した場合について説明した。本発明は、自動車用に限らず、その他の用途に使用されるエンジンに対しても適用可能である。また、気筒数やエンジン形式（直列型やＶ型や水平対向型等の別）についても特に限定されるものではない。
【０１０６】
また、上述した各実施形態では、サブフィードバック学習動作時における学習ゲインを学習動作の途中で変更するようにしたものに対して本発明を適用した場合について説明したが、本発明はこれに限らず、学習ゲインを変更することなしにサブフィードバック学習動作を行うものに対しても適用可能である。
【図面の簡単な説明】
【０１０７】
【図１】実施形態に係るエンジンおよびその吸排気系の概略構成を示す図である。
【図２】エンジンの制御系を示すブロック図である。
【図３】第１実施形態におけるアクティブ制御実行許可判定動作の手順を示すフローチャート図である。
【図４】第２実施形態におけるアクティブ制御実行許可判定動作の手順を示すフローチャート図である。
【図５】第３実施形態におけるアクティブ制御実行許可判定動作の手順を示すフローチャート図である。
【図６】アクティブ制御が適正に実行されている場合における目標空燃比、インジェクタからの燃料噴射量、酸素センサの出力信号、Ｃｍａｘの計算値、触媒の酸素吸蔵量の変化をそれぞれ示すタイミングチャート図である。
【図７】エンジンに一時的な失火が発生した場合における空燃比センサ出力、真の排気空燃比、メインフィードバック補正量それぞれの変化を示すタイミングチャート図である。
【図８】制御の中心がリッチ側にずれた場合におけるインジェクタからの燃料噴射量、酸素センサの出力信号、Ｃｍａｘの計算値、触媒の酸素吸蔵量の変化をそれぞれ示すタイミングチャート図である。
【符号の説明】
【０１０８】
１        エンジン（内燃機関）
４        排気通路
４２      三元触媒
７６      空燃比センサ
７７      酸素センサ
【図１】
2009209861.tif 000003
【図２】
2009209861.tif 000004
【図３】
2009209861.tif 000005
【図４】
2009209861.tif 000006
【図５】
2009209861.tif 000007
【図６】
2009209861.tif 000008
【図７】
2009209861.tif 000009
【図８】
2009209861.tif 000010