(57)【要約】【課題】排気浄化触媒の下流に配置された空燃比センサの異常を検出する。【解決手段】内燃機関において、下流側空燃比センサ（４１）により検出された空燃比に基づいて排気浄化触媒（２０）に流入する排気ガスの空燃比を目標空燃比に近づけるのに必要な空燃比補正値が学習される。下流側空燃比センサ（４１）により検出された空燃比がリーンに維持されている場合には、空燃比を小さくさせるために学習値を低下させる張付き学習制御が行われ、下流側空燃比センサ（４１）により検出された空燃比に基づいて、空燃比がリッチ側にずれていると判別されたときには学習値を増大させかつ空燃比がリーン側にずれていると判別されたときには学習値を低下させる学習値更新制御とが行われる。学習値の一定値以上の低下と学習値の一定値以上の増大とが繰り返されたときには下流側空燃比センサ（４１）に異常があると判定される。【選択図】図１４
2016023614.tif 000002
【特許請求の範囲】
【請求項１】
酸素吸蔵能力を有する排気浄化触媒に流入する排気ガスの目標空燃比を、理論空燃比よりもリッチなリッチ設定空燃比と理論空燃比よりもリーンなリーン設定空燃比との間で交互に切り替え、排気浄化触媒から流出した排気ガスの空燃比を排気浄化触媒の下流側に配置された下流側空燃比センサにより検出し、下流側空燃比センサにより検出された空燃比に基づいて排気浄化触媒に流入する排気ガスの空燃比を該目標空燃比に近づけるのに必要な空燃比補正値を学習すると共に、学習により得られた空燃比補正値の学習値を用いて排気浄化触媒に流入する排気ガスの空燃比が目標空燃比となるようにフィードバック制御し、目標空燃比が該リッチ設定空燃比に設定されているときに下流側空燃比センサにより検出された空燃比が予め定められた期間に亘ってリーンに維持されている場合には、排気浄化触媒に流入する排気ガスの空燃比を小さくさせるために該学習値を低下させる張付き学習制御を行い、下流側空燃比センサにより検出された空燃比に基づいて、排気浄化触媒に流入する排気ガスの空燃比が目標空燃比よりもリッチ側にずれていると判別されたときには該学習値を増大させかつ排気浄化触媒に流入する排気ガスの空燃比が目標空燃比よりもリーン側にずれていると判別されたときには該学習値を低下させる学習値更新制御を行い、該学習値の一定値以上の低下と該学習値の一定値以上の増大とが繰り返されたときには下流側空燃比センサに異常があると判定する空燃比センサの異常検出方法。
【請求項２】
下流側空燃比センサにより検出された空燃比が予め定められているリーン判定空燃比以上になったときに下流側空燃比センサにより検出された空燃比がリーンになったと判定され、上記張付き学習制御は、目標空燃比が該リッチ設定空燃比に設定されているときに下流側空燃比センサにより検出された空燃比が予め定められた期間に亘って該リーン判定空燃比以上のリーンに維持されている場合には、該学習値を低下させる請求項１に記載の空燃比センサの異常検出方法。
【請求項３】
下流側空燃比センサにより検出された空燃比が予め定められているリッチ判定空燃比以下になったときに下流側空燃比センサにより検出された空燃比がリッチになったと判定され、上記張付き学習制御は、目標空燃比が該リッチ設定空燃比に設定されているときに下流側空燃比センサにより検出された空燃比が予め定められた期間に亘って該リッチ判定空燃比と該リーン判定空燃比との間に維持されている場合にも、排気浄化触媒に流入する排気ガスの空燃比を小さくさせるために該学習値を低下させる請求項２に記載の空燃比センサの異常検出方法。
【請求項４】
下流側空燃比センサにより検出された空燃比が予め定められているリッチ判定空燃比以下になったときに下流側空燃比センサにより検出された空燃比がリッチになったと判定され、上記目標空燃比は下流側空燃比センサによって検出された空燃比が該リッチ判定空燃比以下になったときに上記リーン設定空燃比に切り替えられると共に、上記目標空燃比は排気浄化触媒の酸素吸蔵量が最大吸蔵可能酸素量よりも少ない予め定められた切替基準吸蔵量以上になったときに上記リッチ設定空燃比に切り替えられ、上記学習値更新制御は、下流側空燃比センサにより検出された空燃比が該リッチ判定空燃比以下になったときに行われる請求項１に記載の空燃比センサの異常検出方法。
【請求項５】
上記目標空燃比がリーンであるときに排気浄化触媒に流入する排気ガスの空燃比が目標空燃比であれば排気浄化触媒に単位時間当り吸蔵される酸素量および目標空燃比がリッチであるときに排気浄化触媒に流入する排気ガスの空燃比が目標空燃比であれば排気浄化触媒から単位時間当り放出される酸素量が酸素過不足量として積算されており、上記学習値更新制御は、目標空燃比がリーン設定空燃比に切り替えられてから排気浄化触媒の酸素吸蔵量が上記切替基準吸蔵量以上になるまでに積算された酸素過不足量の積算値と、目標空燃比がリッチ設定空燃比に切り替えられてから下流側空燃比センサによって検出された空燃比がリッチ判定空燃比以下になるまでに積算された積算酸素過不足量の積算値との差が小さくなるように学習値を更新する請求項４に記載の空燃比センサの異常検出方法。
【請求項６】
学習値の一定値以上の低下と該学習値の一定値以上の増大とが交互に繰り返されたときに下流側空燃比センサに異常があると判定される請求項１に記載の空燃比センサの異常検出方法。
【請求項７】
該学習値の一定値以上の低下が上記張付き学習制御によって行われたときに下流側空燃比センサに異常があると判定される請求項１に記載の空燃比センサの異常検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は空燃比センサの異常検出方法に関する。
【背景技術】
【０００２】
従来より、機関の排気通路内に排気浄化触媒を配置し、排気浄化触媒上流の機関排気通路内に上流側空燃比センサを配置し、排気浄化触媒下流の機関排気通路内に下流側酸素センサを配置し、これら上流側空燃比センサおよび下流側酸素センサの出力信号に基づいて、排気浄化触媒に流入する排気ガスの空燃比が目標空燃比、例えば理論空燃比になるように機関への燃料供給量をフィードバック制御するようにした内燃機関の空燃比制御装置が公知である（例えば、特許文献１を参照）。この空燃比制御装置では、空燃比を理論空燃比にするのに必要な基本燃料噴射量が予め記憶されており、例えばこの基本燃料噴射量に
フィードバック補正係数を乗算することによって実際の噴射量が算出される。
【０００３】
この場合、このフィードバック補正係数は、上流側空燃比センサの出力に基づいて、排気浄化触媒に流入する排気ガスの空燃比が理論空燃比になるように制御される。一方、このようなフィードバック制御を行っていても排気浄化触媒に流入する排気ガスの空燃比が理論空燃比に対してずれる場合がある。この場合に理論空燃比に対する空燃比のずれを修正するために、排気浄化触媒に流入する排気ガスの空燃比を理論空燃比にするのに必要なフィードバック補正係数の補正値が下流側酸素センサの出力信号に基づき学習値として求められており、この学習値によってフィードバック補正係数が補正される。
【０００４】
ところで、この空燃比制御装置では、下流側酸素センサが正常であるときには下流側酸素センサによる検出空燃比がリッチ側に偏倚し続けることがなく、従って下流側酸素センサによる検出空燃比がリッチ側に偏倚し続けたときには下流側酸素センサに異常があると判断される。同様に、この空燃比制御装置では、下流側酸素センサが正常であるときには下流側酸素センサによる検出空燃比がリーン側に偏倚し続けることがなく、従って下流側酸素センサによる検出空燃比がリーン側に偏倚し続けたときには下流側酸素センサに異常があると判断される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１２５２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、実際には、下流側酸素センサが正常であったとしても下流側酸素センサによる検出空燃比がリーン側或いはリッチ側に偏倚し続ける場合がある。例えば、気筒間の空燃比にばらつきがあり、特定の気筒間の空燃比が他の気筒に対して大きくリッチ側にずれており、排気通路の形状等によって上流側空燃比センサが各気筒から流出した排気ガスと均一に接触することなく、リッチ側にずれた気筒から流出した排気ガスと主に接触する場合がある。このような場合において、上流側空燃比センサの出力信号に基づいて空燃比を理論空燃比にフィードバック制御すると、各気筒への燃料噴射量が減量されて平均空燃比がリーンとなり、この場合には下流側酸素センサが正常であったとしても下流側酸素センサによる検出空燃比がリーン側に偏倚し続ける。同様に、下流側酸素センサが正常であったとしても下流側酸素センサによる検出空燃比がリッチ側に偏倚し続ける場合がある。従って、下流側酸素センサによる検出空燃比がリーン側或いはリッチ側に偏倚し続けたとしても、下流側酸素センサに異常があると判断することはできない。
【０００７】
本発明は、下流側空燃比センサの異常を確実に検出することができる空燃比センサの異常検出方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明によれば、  酸素吸蔵能力を有する排気浄化触媒に流入する排気ガスの目標空燃比を、理論空燃比よりもリッチなリッチ設定空燃比と理論空燃比よりもリーンなリーン設定空燃比との間で交互に切り替え、排気浄化触媒から流出した排気ガスの空燃比を排気浄化触媒の下流側に配置された下流側空燃比センサにより検出し、下流側空燃比センサにより検出された空燃比に基づいて排気浄化触媒に流入する排気ガスの空燃比を目標空燃比に近づけるのに必要な空燃比補正値を学習すると共に、学習により得られた空燃比補正値の学習値を用いて排気浄化触媒に流入する排気ガスの空燃比が目標空燃比となるようにフィードバック制御し、目標空燃比がリッチ設定空燃比に設定されているときに下流側空燃比センサにより検出された空燃比が予め定められた期間に亘ってリーンに維持されている場合には、排気浄化触媒に流入する排気ガスの空燃比を小さくさせるために学習値を低下させる張付き学習制御を行い、下流側空燃比センサにより検出された空燃比に基づいて、排気浄化触媒に流入する排気ガスの空燃比が目標空燃比よりもリッチ側にずれていると判別されたときには学習値を増大させかつ排気浄化触媒に流入する排気ガスの空燃比が目標空燃比よりもリーン側にずれていると判別されたときには学習値を低下させる学習値更新制御を行い、学習値の一定値以上の低下と学習値の一定値以上の増大とが繰り返されたときには下流側空燃比センサに異常があると判定する空燃比センサの異常検出方法が提供される。
【発明の効果】
【０００９】
本発明によれば、下流側空燃比センサに異常が生じたときには下流側空燃比センサの異常を確実に検出することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、内燃機関を概略的に示す図である。
【図２】図２Ａおよび２Ｂは、排気浄化触媒の酸素吸蔵量と排気浄化触媒から流出する排気ガス中のＮＯｘ濃度、ＨＣ、ＣＯ濃度との関係を示す図である。
【図３】図３は、各排気空燃比におけるセンサ印加電圧と出力電流との関係を示す図である。
【図４】図４は、センサ印加電圧を一定にしたときの排気空燃比と出力電流との関係を示す図である。
【図５】図５は、空燃比制御を行った際の空燃比補正量等のタイムチャートである。
【図６】図６は、空燃比制御を行った際の空燃比補正量等のタイムチャートである。
【図７】図７は、上流側空燃比センサの出力値にずれが生じている際の空燃比補正量等のタイムチャートである。
【図８】図８は、上流側空燃比センサの出力値にずれが生じている際の空燃比補正量等のタイムチャートである。
【図９】図９は、通常学習を行う際の空燃比補正量等のタイムチャートである。
【図１０】図１０は、上流側空燃比センサの出力値に大きなずれが生じている際の空燃比補正量等のタイムチャートである。
【図１１】図１１は、上流側空燃比センサの出力値に大きなずれが生じている際の空燃比補正量等のタイムチャートである。
【図１２】図１２は、理論空燃比張付き学習を行う際の空燃比補正量等のタイムチャートである。
【図１３】図１３は、リーン張付き学習等を行う際の空燃比補正量等のタイムチャートである。
【図１４】図１４は、本発明による下流側空燃比センサの異常検出が行われている際の空燃比補正量等のタイムチャートである。
【図１５】図１５は、本発明による下流側空燃比センサの異常検出が行われている際の空燃比補正量等のタイムチャートである。
【図１６】図１６は、本発明による下流側空燃比センサの異常検出が行われている際の空燃比補正量等のタイムチャートである。
【図１７】図１７は、本発明による下流側空燃比センサの異常検出が行われている際の空燃比補正量等のタイムチャートである。
【図１８】図１８は、制御装置の機能ブロック図である。
【図１９】図１９は、空燃比補正量の算出制御の制御ルーチンを示すフローチャートである。
【図２０】図２０は、通常学習制御の制御ルーチンを示すフローチャートである。
【図２１】図２１は、張付き学習制御の制御ルーチンを示すフローチャートである。
【図２２】図２２は、下流側空燃比センサの異常検出ルーチンを示すフローチャートである。
【図２３】図２３は、下流側空燃比センサの異常検出ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明による実施例について詳細に説明する。なお、以下の説明において、同様な構成要素には同一の参照番号を付す。
【００１２】
＜内燃機関全体の説明＞
図１は、本発明による空燃比センサの異常検出方法が実行されている内燃機関を概略的に示す図である。図１を参照すると１は機関本体、２はシリンダブロック、３はシリンダブロック２内で往復動するピストン、４はシリンダブロック２上に固定されたシリンダヘッド、５はピストン３とシリンダヘッド４との間に形成された燃焼室、６は吸気弁、７は吸気ポート、８は排気弁、９は排気ポートをそれぞれ示す。
【００１３】
図１に示されるように、シリンダヘッド４の内壁面の中央部には点火プラグ１０が配置され、シリンダヘッド４の内壁面周辺部には燃料噴射弁１１が配置される。この燃料噴射弁１１からは燃料が燃焼室５内に向けて噴射される。なお、本発明による実施例では、燃料として理論空燃比が１４．６であるガソリンが用いられている。しかしながら、ガソリン以外の燃料、或いはガソリンとの混合燃料を用いることもできる。
【００１４】
各気筒の吸気ポート７はそれぞれ対応する吸気枝管１３を介してサージタンク１４に連結され、サージタンク１４は吸気管１５を介してエアクリーナ１６に連結される。また、吸気管１５内にはアクチュエータ１７によって駆動されるスロットル弁１８が配置される。一方、各気筒の排気ポート９は排気マニホルド１９に連結され、排気マニホルド１９の集合部は上流側排気浄化触媒２０を内蔵した上流側ケーシング２１に連結される。上流側ケーシング２１は、排気管２２を介して下流側排気浄化触媒２４を内蔵した下流側ケーシング２３に連結される。排気ポート９、排気マニホルド１９、上流側ケーシング２１、排気管２２及び下流側ケーシング２３は、排気通路を形成する。
【００１５】
電子制御ユニット（ＥＣＵ）３１はデジタルコンピュータからなり、双方向性バス３２を介して相互に接続されたＲＡＭ（ランダムアクセスメモリ）３３、ＲＯＭ（リードオンリメモリ）３４、ＣＰＵ（マイクロプロセッサ）３５、入力ポート３６および出力ポート３７を具備する。吸気管１５には、吸気管１５内を流れる空気流量を検出するための吸入空気量検出器３９が配置され、この吸入空気量検出器３９の出力は対応するＡＤ変換器３８を介して入力ポート３６に入力される。また、排気マニホルド１９の集合部には排気マニホルド１９内を流れる排気ガスの空燃比を検出するための上流側空燃比センサ４０が配置され、また排気管２２内には排気管２２内を流れる排気ガスの空燃比を検出するための下流側空燃比センサ４１が配置される。これら空燃比センサ４０、４１の出力も対応するＡＤ変換器３８を介して入力ポート３６に入力される。
【００１６】
アクセルペダル４２にはアクセルペダル４２の踏込み量に比例した出力電圧を発生する負荷センサ４３が接続され、負荷センサ４３の出力電圧は対応するＡＤ変換器３８を介して入力ポート３６に入力される。クランク角センサ４４は例えばクランクシャフトが１５度回転する毎に出力パルスを発生し、この出力パルスが入力ポート３６に入力される。ＣＰＵ３５ではこのクランク角センサ４４の出力パルスから機関回転数が計算される。一方、出力ポート３７は対応する駆動回路４５を介して点火プラグ１０、燃料噴射弁１１及びスロットル弁駆動アクチュエータ１７に接続される。
【００１７】
＜排気浄化触媒の説明＞
上流側排気浄化触媒２０及び下流側排気浄化触媒２４は、セラミックから成る担体上に、貴金属（例えば、白金Ｐｔ）および酸素吸蔵能力を有する物質（例えば、セリアＣｅＯ2）を担持させた三元触媒からなる。三元触媒は、三元触媒に流入する排気ガスの空燃比が理論空燃比に維持されていると、未燃ＨＣ、ＣＯおよびＮＯｘとを同時に浄化する機能を有するが、排気浄化触媒２０、２４が酸素吸蔵能力を有している場合には、排気浄化触媒２０、２４に流入する排気ガスの空燃比が理論空燃比に対してリッチ側或いはリーン側に若干ずれたとしても未燃ＨＣ、ＣＯおよびＮＯｘとが同時に浄化される。
【００１８】
即ち、排気浄化触媒２０、２４が酸素吸蔵能力を有していると、排気浄化触媒２０、２４に流入する排気ガスの空燃比が若干リーンになったときには排気ガス中に含まれる過剰な酸素が排気浄化触媒２０、２４内に吸蔵され、排気浄化触媒２０、２４の表面上が理論空燃比に維持される。その結果、排気浄化触媒２０、２４の表面上において未燃ＨＣ、ＣＯおよびＮＯｘが同時に浄化され、このとき排気浄化触媒２０、２４から流出する排気ガスの空燃比は理論空燃比となる。一方、排気浄化触媒２０、２４に流入する排気ガスの空燃比が若干リッチになったときには排気ガス中に含まれる未燃ＨＣ、ＣＯを還元させるのに不足している酸素が排気浄化触媒２０、２４から放出され、この場合にも排気浄化触媒２０、２４の表面上が理論空燃比に維持される。その結果、排気浄化触媒２０、２４の表面上において未燃ＨＣ、ＣＯおよびＮＯｘが同時に浄化され、このとき排気浄化触媒２０、２４から流出する排気ガスの空燃比は理論空燃比となる。
【００１９】
このように、過剰な酸素を排気浄化触媒２０、２４内に吸蔵し得るとき、或いは不足している酸素を排気浄化触媒２０、２４から放出し得るときには、排気浄化触媒２０、２４に流入する排気ガスの空燃比が理論空燃比に対してリッチ側或いはリーン側に若干ずれたとしても未燃ＨＣ、ＣＯおよびＮＯｘとが同時に浄化され、排気浄化触媒２０、２４から流出する排気ガスの空燃比は理論空燃比となる。この場合、過剰な酸素を排気浄化触媒２０、２４内に吸蔵し得なくなると、或いは不足している酸素を排気浄化触媒２０、２４から放出し得えなくなると、排気浄化触媒２０、２４から流出する排気ガスの空燃比はリーン或いはリッチとなり、排気浄化触媒２０、２４からＮＯｘ或いはＨＣ、ＣＯが流出することになる。このことについて図２Ａおよび２Ｂを参照し説明する。
【００２０】
図２Ａは、排気浄化触媒の酸素吸蔵量と排気浄化触媒から流出する排気ガス中のＮＯｘ濃度との関係を示しており、図２Ｂは、排気浄化触媒の酸素吸蔵量と排気浄化触媒から流出する排気ガス中のＨＣ、ＣＯ濃度との関係を示している。排気浄化触媒２０、２４に流入する排気ガスの空燃比がリーンであるときには、排気浄化触媒２０、２４への酸素吸蔵量が多くなると排気ガス中に含まれる過剰な酸素を排気浄化触媒２０、２４内に吸蔵し得なくなり、その結果排気浄化触媒２０、２４の表面上は酸素過剰な状態となる。このように酸素過剰な状態になるとＨＣ、ＣＯは酸化されるがＮＯｘは還元されなくなり、従って図２Ａに示されるように、酸素吸蔵量が、最大吸蔵可能酸素量Ｃｍａｘ近傍の或る吸蔵量（図中のＣｕｐｌｉｍ）を越えると排気浄化触媒２０、２４から流出する排気ガス中のＮＯｘの濃度が急激に上昇する。
【００２１】
一方、排気浄化触媒２０、２４に流入する排気ガスの空燃比がリッチであるときには、排気浄化触媒２０、２４への酸素吸蔵量が少なくなると排気ガス中に含まれる酸素を排気浄化触媒２０、２４内に吸蔵されている酸素を十分に放出し得なくなり、その結果排気浄化触媒２０、２４の表面上はＨＣ、ＣＯが過剰な状態となる。このようにＨＣ、ＣＯが過剰な状態になるとＮＯｘは還元されるがＨＣ、ＣＯは酸化されなくなり、従って図２Ｂに示されるように、酸素吸蔵量が、ゼロ近傍の或る吸蔵量（図中のＣｌｏｗｌｉｍ）のりも少なくなると排気浄化触媒２０、２４から流出する排気ガス中のＨＣ、ＣＯの濃度が急激に上昇する。
【００２２】
即ち、酸素吸蔵量が、図２ＢのＣｌｏｗｌｉｍと図２ＡのＣｕｐｌｉｍとの間に維持されていれば、排気浄化触媒２０、２４に流入する排気ガスの空燃比が理論空燃比に対してリッチ側或いはリーン側に若干ずれたとしても未燃ＨＣ、ＣＯおよびＮＯｘとが同時に浄化されることになる。
【００２３】
＜空燃比センサの出力特性＞
次に、図３及び図４を参照して、本発明において用いられている空燃比センサ４０、４１の出力特性について説明する。図３は、空燃比センサ４０、４１の電圧−電流（Ｖ−Ｉ）特性を示す図であり、図４は、印加電圧を一定に維持したときの、空燃比センサ４０、４１周りを流通する排気ガスの空燃比（以下、「排気空燃比」という）と出力電流Ｉとの関係を示す図である。なお、本発明による実施例では、両空燃比センサ４０、４１として同一構造の空燃比センサが用いられている。
【００２４】
図３からわかるように、本発明において用いられている空燃比センサ４０、４１では、出力電流Ｉは、排気空燃比が高くなるほど、即ちリーンになるほど、大きくなる。また、各排気空燃比におけるＶ−Ｉ線には、Ｖ軸にほぼ平行な領域、即ちセンサ印加電圧が変化しても出力電流がほとんど変化しない領域が存在する。この電圧領域は限界電流領域と称され、このときの電流は限界電流と称される。図３には、排気空燃比が１８であるときの限界電流領域及び限界電流がそれぞれＷ18、Ｉ18で示されている。従って、これらの空燃比センサ４０、４１は限界電流式の空燃比センサと称されている。
【００２５】
図４は、印加電圧を０．４５Ｖ程度で一定にしたときの、排気空燃比と出力電流Ｉとの関係を示す図である。図４からわかるように、本発明において用いられている空燃比センサ４０、４１では、空燃比センサ４０、４１の出力電流Ｉは、排気空燃比が高くなるほど、即ち、リーンになるほど、大きくなる。即ち、空燃比センサ４０、４１の出力電流Ｉは、排気空燃比に対してリニアに変化する。更に、空燃比センサ４０、４１は、排気空燃比が理論空燃比であるときに出力電流Ｉが零になるように構成されている。なお、排気空燃比が一定以上に大きくなったとき、或いは一定以下に小さくなったときには、排気空燃比の変化に対する出力電流の変化の割合が小さくなる。
【００２６】
なお、上記例では、空燃比センサ４０、４１として限界電流式の空燃比センサを用いている。しかしながら、排気空燃比に対して出力電流がリニアに変化するものであれば、空燃比センサ４０、４１として、限界電流式ではない空燃比センサ等、如何なる空燃比センサを用いてもよい。また、両空燃比センサ４０、４１は互いに異なる構造の空燃比センサであってもよい。
【００２７】
＜基本的な空燃比制御＞
次に、本発明による実施例において用いられている基本的な空燃比制御の概要を説明する。本発明による実施例において用いられている空燃比制御では、上流側空燃比センサ４０の出力空燃比に基づいて上流側空燃比センサ４０の出力空燃比が目標空燃比となるように燃料噴射弁１１からの燃料噴射量を制御するフィードバック制御が行われている。なお、「出力空燃比」は、空燃比センサの出力値に相当する空燃比を意味する。
【００２８】
更に、本発明による実施例において用いられている空燃比制御では、下流側空燃比センサ４１の出力空燃比等に基づいて目標空燃比を設定する目標空燃比の設定制御が行われる。目標空燃比の設定制御では、下流側空燃比センサ４１の出力空燃比がリッチ空燃比となったときに、目標空燃比はリーン設定空燃比とされ、その後、このリーン設定空燃比に維持される。このリーン設定空燃比は、理論空燃比（制御中心となる空燃比）よりも或る程度リーンである予め定められた空燃比であり、例えば、１４．６５〜２０、好ましくは１４．６５〜１８、より好ましくは１４．６５〜１６程度とされる。また、リーン設定空燃比は、制御中心となる空燃比（本発明による実施例では理論空燃比）にリーン補正量を加算した空燃比として表すこともできる。なお、本発明による実施例では、下流側空燃比センサ４１の出力空燃比が理論空燃比よりも僅かにリッチであるリッチ判定空燃比（例えば、１４．５５）以下になったときに、下流側空燃比センサ４１の出力空燃比がリッチ空燃比になったと判断される。
【００２９】
目標空燃比がリーン設定空燃比に設定されると、上流側排気浄化触媒２０に流入する排気ガスの酸素過不足量が積算される。酸素過不足量は、上流側排気浄化触媒２０に流入する排気ガスの空燃比を理論空燃比にしようとしたときに過剰となっている酸素の量又は不足している酸素の量を意味する。特に、目標空燃比がリーン設定空燃比となっているときには上流側排気浄化触媒２０に流入する排気ガス中の酸素は過剰となり、この過剰な酸素は上流側排気浄化触媒２０に吸蔵される。したがって、酸素過不足量の積算値（以下、「積算酸素過不足量」という）は、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡを表しているといえる。
【００３０】
なお、酸素過不足量の算出は、上流側空燃比センサ４０の出力空燃比、および吸入空気量検出器３９の出力等に基づいて算出される燃焼室５内への吸入空気量の推定値又は燃料噴射弁１１からの燃料供給量等に基づいて行われる。具体的には、酸素過不足量ＯＥＤは、例えば、下記式（１）により算出される。
ＯＤＥ＝０．２３・Ｑｉ／（ＡＦｕｐ−ＡＦＲ）      …（１）
ここで、０．２３は空気中の酸素濃度、Ｑｉは燃料噴射量、ＡＦｕｐは上流側空燃比センサ４０の出力空燃比、ＡＦＲは制御中心となる空燃比（本発明による実施例では理論空燃比）をそれぞれ表している。
【００３１】
このようにして算出された酸素過不足量を積算した積算酸素過不足量が、予め定められた切替基準値以上、本発明による実施例では予め定められた切替基準吸蔵量Ｃｒｅｆ以上になると、それまでリーン設定空燃比だった目標空燃比が、リッチ設定空燃比に切替えられ、その後、このリッチ設定空燃比に維持される。このリッチ設定空燃比は、理論空燃比（制御中心となる空燃比）よりも或る程度リッチである予め定められた空燃比であり、例えば、１２〜１４．５８、好ましくは１３〜１４．５７、より好ましくは１４〜１４．５５程度とされる。また、リッチ設定空燃比は、制御中心となる空燃比（本発明による実施例では理論空燃比）からリッチ補正量を減算した空燃比として表すこともできる。なお、本発明による実施例では、リッチ設定空燃比と理論空燃比との差（リッチ度合い）は、リーン設定空燃比と理論空燃比との差（リーン度合い）以下とされる。
【００３２】
その後、下流側空燃比センサ４１の出力空燃比が再びリッチ判定空燃比以下となったときに、目標空燃比が再びリーン設定空燃比に切替えられ、その後、同様な操作が繰り返される。このように本発明による実施例では、上流側排気浄化触媒２０に流入する排気ガスの目標空燃比がリーン設定空燃比とリッチ設定空燃比とに交互に設定される。
【００３３】
ただし、上述したような制御を行った場合であっても、積算酸素過不足量が切替基準値に到達する前に上流側排気浄化触媒２０の実際の酸素吸蔵量が最大吸蔵可能酸素量に到達する場合がある。その原因としては、例えば、上流側排気浄化触媒２０の最大吸蔵可能酸素量が低下したり、一時的に上流側排気浄化触媒２０に流入する排気ガスの空燃比が急激に変化したりすることが挙げられる。このように酸素吸蔵量が最大吸蔵可能酸素量に到達すると、上流側排気浄化触媒２０からはリーン空燃比の排気ガスが流出することになる。そこで、本発明による実施例では、下流側空燃比センサ４１の出力空燃比がリーン空燃比となったときには、目標空燃比はリッチ設定空燃比に切り替えられる。特に、本発明による実施例では、下流側空燃比センサ４１の出力空燃比が理論空燃比よりも僅かにリーンであるリーン判定空燃比（例えば、１４．６５）以上になったときに、下流側空燃比センサ４１の出力空燃比がリーン空燃比になったと判断される。
【００３４】
＜タイムチャートを用いた空燃比制御の説明＞
図５を参照して、上述したような操作について具体的に説明する。図５は、本発明による実施例において用いられている空燃比制御を行った場合における、空燃比補正量ＡＦＣ、上流側空燃比センサ４０の出力空燃比ＡＦｕｐ、上流側排気浄化触媒２０の実際の酸素吸蔵量ＯＳＡ、積算酸素過不足量ΣＯＥＤ、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ及び上流側排気浄化触媒２０から流出する排気ガス中のＮＯｘ濃度のタイムチャートである。
【００３５】
なお、空燃比補正量ＡＦＣは、上流側排気浄化触媒２０に流入する排気ガスの目標空燃比に関する補正量である。空燃比補正量ＡＦＣが０のときには目標空燃比は制御中心となる空燃比（以下、「制御中心空燃比」という）に等しい空燃比（本発明による実施例では、理論空燃比）とされ、空燃比補正量ＡＦＣが正の値であるときには目標空燃比は制御中心空燃比よりもリーンな空燃比（本実施形態では、リーン空燃比）となり、空燃比補正量ＡＦＣが負の値であるときには目標空燃比は制御中心空燃比よりもリッチな空燃比（本発明による実施例では、リッチ空燃比）となる。また、「制御中心空燃比」は、機関運転状態に応じて空燃比補正量ＡＦＣを加算する対象となる空燃比、すなわち空燃比補正量ＡＦＣに応じて目標空燃比を変動させる際に基準となる空燃比を意味する。
【００３６】
図５に示される例では、時刻ｔ1以前の状態では、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈ（リッチ設定空燃比に相当）とされている。すなわち、目標空燃比はリッチ設定空燃比とされており、それにより上流側空燃比センサ４０の出力空燃比がリッチ空燃比となる。このとき上流側排気浄化触媒２０に流入する排気ガス中に含まれているＨＣ、ＣＯを還元するために上流側排気浄化触媒２０に吸蔵されている酸素が消費されそそれに伴って、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは徐々に減少していく。また、積算酸素過不足量ΣＯＥＤも徐々に減少していく。このとき上流側排気浄化触媒２０から流出する排気ガスの空燃比は理論空燃比となっているので、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはほぼ理論空燃比となり、上流側排気浄化触媒２０からのＮＯｘ排出量はほぼゼロとなる。
【００３７】
上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが徐々に減少すると、酸素吸蔵量ＯＳＡは時刻ｔ1においてゼロに近づき、これに伴って、上流側排気浄化触媒２０に流入したＨＣ、ＣＯの一部は上流側排気浄化触媒２０で酸化されずに流出し始める。これにより、時刻ｔ1以降、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが徐々に低下する。その結果、時刻ｔ2において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する。
【００３８】
本発明による実施例では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下になると、酸素吸蔵量ＯＳＡを増大させるべく、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎ（リーン設定空燃比に相当）に切り替えられる。したがって、目標空燃比はリッチ設定空燃比からリーン設定空燃比へと切り替えられる。また、このとき、積算酸素過不足量ΣＯＥＤは０にリセットされる。
【００３９】
なお、本発明による実施例では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが低下してリッチ判定空燃比ＡＦｒｉｃｈに到達したときに、空燃比補正量ＡＦＣの切替を行っている。これは、上流側排気浄化触媒２０の酸素吸蔵量が十分であっても、上流側排気浄化触媒２０から流出する排気ガスの空燃比が理論空燃比から極わずかにずれてしまう場合があるためである。逆に言うと、リッチ判定空燃比は、上流側排気浄化触媒２０の酸素吸蔵量が十分であるときには上流側排気浄化触媒２０から流出する排気ガスの空燃比が到達することのないような空燃比とされる。
【００４０】
時刻ｔ2において、目標空燃比をリーン空燃比に切り替えると、上流側排気浄化触媒２０に流入する排気ガスの空燃比はリッチ空燃比からリーン空燃比に変化する。また、これに伴って、上流側空燃比センサ４０の出力空燃比ＡＦｕｐがリーン空燃比となる（実際には、目標空燃比を切り替えてから上流側排気浄化触媒２０に流入する排気ガスの空燃比が変化するまでには遅れが生じるが、図示した例では便宜上同時に変化するものとしている）。時刻ｔ2において上流側排気浄化触媒２０に流入する排気ガスの空燃比がリーン空燃比に変化すると、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは増大する。このとき、積算酸素過不足量ΣＯＥＤも徐々に増大していく。
【００４１】
このとき、上流側排気浄化触媒２０から流出する排気ガスの空燃比が理論空燃比へと変化し、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎも理論空燃比に戻る。このとき、上流側排気浄化触媒２０に流入する排気ガスの空燃比はリーン空燃比となっているが、上流側排気浄化触媒２０の酸素吸蔵能力には十分な余裕があるため、流入する排気ガス中の酸素は上流側排気浄化触媒２０に吸蔵され、上流側排気浄化触媒２０の表面上においてＨＣ、ＣＯ、ＮＯｘが同時に浄化される。このため、上流側排気浄化触媒２０からのＮＯｘの排出はほぼゼロとなる。
【００４２】
その後、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが増大すると、時刻ｔ3において、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが切替基準吸蔵量Ｃｒｅｆに到達する。このとき、積算酸素過不足量ΣＯＥＤも、切替基準吸蔵量Ｃｒｅｆに相当する切替基準値ＯＥＤｒｅｆに到達する。本発明による実施例では、積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆ以上になると、上流側排気浄化触媒２０への酸素の吸蔵を中止すべく、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。したがって、目標空燃比はリッチ空燃比とされる。また、このとき、積算酸素過不足量ΣＯＥＤが０にリセットされる。
【００４３】
ここで、図５に示した例では、時刻ｔ3において目標空燃比を切り替えると同時に酸素吸蔵量ＯＳＡが低下しているが、実際には目標空燃比を切り替えてから酸素吸蔵量ＯＳＡが低下するまでには遅れが発生する。また、内燃機関を搭載した車両の加速により機関負荷が高くなって吸入空気量が瞬間的に大きくずれた場合等、上流側排気浄化触媒２０に流入する排気ガスの空燃比が意図せずに瞬間的に目標空燃比から大きくずれる場合がある。
【００４４】
これに対し、切替基準吸蔵量Ｃｒｅｆは上流側排気浄化触媒２０が新品であるときの最大吸蔵可能酸素量Ｃｍａｘよりも十分に低く設定されている。このため、上述したような遅れが生じたり実際の排気ガスの空燃比が意図せずに目標空燃比から瞬間的に大きくずれたりしたときであっても、酸素吸蔵量ＯＳＡは最大吸蔵可能酸素量Ｃｍａｘには到達しない。逆に言うと、切替基準吸蔵量Ｃｒｅｆは、上述したような遅れや意図しない空燃比のずれが生じても、酸素吸蔵量ＯＳＡが最大吸蔵可能酸素量Ｃｍａｘには到達しないように十分少ない量とされる。例えば、切替基準吸蔵量Ｃｒｅｆは、上流側排気浄化触媒２０が新品であるときの最大吸蔵可能酸素量Ｃｍａｘの３／４以下、好ましくは１／２以下、より好ましくは１／５以下とされる。
【００４５】
時刻ｔ3において目標空燃比がリッチ設定空燃比に切り替えられると、上流側排気浄化触媒２０に流入する排気ガスの空燃比はリーン空燃比からリッチ空燃比に変化する。これに伴って、上流側空燃比センサ４０の出力空燃比ＡＦｕｐがリッチ空燃比となる（実際には、目標空燃比を切り替えてから上流側排気浄化触媒２０に流入する排気ガスの空燃比が変化するまでには遅れが生じるが、図示した例では便宜上同時に変化するものとしている）。このとき上流側排気浄化触媒２０に流入する排気ガス中にはＨＣ、ＣＯが含まれているため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは徐々に減少していき、時刻ｔ4において、時刻ｔ1と同様に、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが低下し始める。このときも、上流側排気浄化触媒２０からのＮＯｘの排出はほぼゼロされる。
【００４６】
次いで、時刻ｔ5において、時刻ｔ2と同様に、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する。これにより、空燃比補正量ＡＦＣがリーン設定空燃比に相当する値ＡＦＣｌｅａｎに切り替えられる。その後、上述した時刻ｔ２〜ｔ5のサイクルが繰り返される。
【００４７】
以上の説明から分かるように本発明による実施例によれば、上流側排気浄化触媒２０からのＮＯｘ排出量を常に抑制することができる。すなわち、上述した制御を行っている限り、基本的には上流側排気浄化触媒２０からのＮＯｘ排出量をほぼゼロとすることができる。
【００４８】
なお、上記実施例では、時刻ｔ2〜ｔ3において、空燃比補正量ＡＦＣはリーン設定補正量ＡＦＣｌｅａｎに維持される。しかしながら、斯かる期間において、空燃比補正量ＡＦＣは必ずしも一定に維持されている必要はなく、徐々に減少させる等、変動するように設定されてもよい。或いは、時刻ｔ2〜ｔ3の期間中において、一時的に空燃比補正量ＡＦＣを０よりも小さな値（例えば、リッチ設定補正量等）としてもよい。すなわち、時刻ｔ2〜ｔ3の期間中において、一時的に目標空燃比をリッチ空燃比としてもよい。
【００４９】
同様に、上記実施例では、時刻ｔ3〜ｔ5において、空燃比補正量ＡＦＣはリッチ設定補正量ＡＦＣｒｉｃｈに維持される。しかしながら、斯かる期間において、空燃比補正量ＡＦＣは必ずしも一定に維持されている必要はなく、徐々に増大させる等、変動するように設定されてもよい。或いは、図６に示したように、時刻ｔ3〜ｔ5の期間中において、一時的に空燃比補正量ＡＦＣを０よりも大きな値（例えば、リーン設定補正量等）としてもよい（図６の時刻ｔ6、ｔ7等）。すなわち、時刻ｔ3〜ｔ5の期間中において、一時的に目標空燃比をリーン空燃比としてもよい。
【００５０】
＜上流側空燃比センサにおけるずれ＞
ところで、機関本体１が複数の気筒を有する場合、各気筒から排出される排気ガスの空燃比には気筒間でずれが生じる場合がある。一方、上流側空燃比センサ４０は排気マニホルド１９の集合部に配置されるが、その配置位置に応じて各気筒から排出された排気ガスが上流側空燃比センサ４０に曝される程度が気筒間で異なる。この結果、上流側空燃比センサ４０の出力空燃比は、或る特定の気筒から排出された排気ガスの空燃比の影響を強く受けることになる。このため、この或る特定の気筒から排出された排気ガスの空燃比が全気筒から排出される排気ガスの平均空燃比とは異なる空燃比となっている場合、平均空燃比と上流側空燃比センサ４０の出力空燃比との間にはずれが生じる。すなわち、上流側空燃比センサ４０の出力空燃比は実際の排気ガスの平均空燃比よりもリッチ側又はリーン側にずれることになる。
【００５１】
また、排気ガス中に含まれる未燃ガスのうち水素はＨＣ、ＣＯに比べて空燃比センサの拡散律速層を通過する速度が速い。一方、空燃比センサは拡散律速層を通過する未燃成分の速度が速くなると実際の排気ガスの空燃比よりも低い側、即ちリッチ側の出力を発生する性質を有している。従って、排気ガス中の水素濃度が高いと、上流側空燃比センサ４０の出力空燃比が排気ガスの実際の空燃比よりもリッチ側にずれてしまうことになる。
【００５２】
このように上流側空燃比センサ４０の出力空燃比にずれが生じていると、上述したような制御を行っていても、上流側排気浄化触媒２０からＮＯｘが流出したり、ＨＣ、ＣＯ等の未燃ガスの流出頻度が高くなったりしてしまう場合がある。次に、図７及び図８を参照して斯かる現象について説明する。
【００５３】
図７は、図５と同様な、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡ等のタイムチャートである。図７は、上流側空燃比センサ４０の出力空燃比がリッチ側にずれている場合を示している。図中、上流側空燃比センサ４０の出力空燃比ＡＦｕｐにおける実線は、上流側空燃比センサ４０の出力空燃比を示している。一方、破線は、上流側空燃比センサ４０周りを流通する排気ガスの実際の空燃比を示している。
【００５４】
図７に示した例においても、時刻ｔ1以前の状態では、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈとされており、よって目標空燃比がリッチ設定空燃比とされている。これに伴い、上流側空燃比センサ４０の出力空燃比ＡＦｕｐはリッチ設定空燃比と等しい空燃比となる。しかしながら、上述したように、上流側空燃比センサ４０の出力空燃比はリッチ側にずれているため、排気ガスの実際の空燃比はリッチ設定空燃比よりもリーン側の空燃比となっている。即ち、上流側空燃比センサ４０の出力空燃比ＡＦｕｐは、実際の空燃比（図中の破線）よりも低く（リッチ側）なっている。このため、即ち、排気ガスの実際の空燃比がリーン側にずれているため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの減少速度は遅くなっている。
【００５５】
次いで、時刻ｔ2において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達すると空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられ、目標空燃比がリーン設定空燃比に切り替えられる。それにより、上流側空燃比センサ４０の出力空燃比ＡＦｕｐはリーン設定空燃比に等しい空燃比となる。しかしながら、上述したように、上流側空燃比センサ４０の出力空燃比はリッチ側にずれているため、排気ガスの実際の空燃比（図中の破線）はリーン設定空燃比よりもリーンの空燃比となっている。このため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの増加速度は速くなると共に、目標空燃比をリーン設定空燃比としている間に上流側排気浄化触媒２０に供給される実際の酸素量は切替基準酸素量Ｃｒｅｆよりも多くなる。
【００５６】
また、上流側空燃比センサ４０の出力空燃比のずれが大きいと、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの増加速度は極端に速くなる。したがって、この場合、図８に示すように、上流側空燃比センサ４０の出力空燃比ＡＦｕｐに基づいて算出された積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達する前に、実際の酸素吸蔵量ＯＳＡが最大吸蔵可能酸素量Ｃｍａｘに到達することになる。この結果、上流側排気浄化触媒２０からはＮＯｘが流出することになる。
【００５７】
一方、上述した例とは逆に、上流側空燃比センサ４０の出力空燃比がリーン側にずれていると、酸素吸蔵量ＯＳＡの増加速度が遅くなると共に減少速度が速くなる。この場合、時刻ｔ2から時刻ｔ5までのサイクルが速くなり、上流側排気浄化触媒２０からのＨＣ，ＣＯ等の未燃成分の流出頻度が高くなる。
【００５８】
上述の説明により、上流側空燃比センサ４０の出力空燃比におけるずれを検出することが必要になると共に、検出されたずれに基づいて出力空燃比等の補正を行うことが必要であることがわかる。
【００５９】
＜通常学習制御＞
そこで、本発明の実施例では、上流側空燃比センサ４０の出力空燃比におけるずれを補償すべく、通常運転中、即ち、上述したように目標空燃比に基づいてフィードバック制御を行っているときに学習制御が行われる。そこでまず初めに、通常学習制御について説明する。
【００６０】
ここで以下、目標空燃比をリーン空燃比に切り替えてから積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆ以上になるまでの期間を酸素増大期間（第１期間）と称する。同様に、目標空燃比をリッチ空燃比に切り替えてから下流側空燃比センサ４１の出力空燃比がリッチ判定空燃比以下になるまでの期間を酸素減少期間（第２期間）と称する。さて、本発明の実施例における通常学習制御では、酸素増大期間における積算酸素過不足量ΣＯＤＥの絶対値としてリーン酸素量積算値（第１酸素量積算値）が算出され、更に、酸素減少期間における積算酸素過不足量の絶対値としてリッチ酸素量積算値（第２酸素量積算値）が算出される。そして、これらリーン酸素量積算値とリッチ酸素量積算値との差が小さくなるように制御中心空燃比ＡＦＲが補正される。図９にこの様子を示す。
【００６１】
図９は、制御中心空燃比ＡＦＲ、空燃比補正量ＡＦＣ、上流側空燃比センサ４０の出力空燃比ＡＦｕｐ、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡ、積算酸素過不足量ΣＯＥＤ、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ及び学習値ｓｆｂｇのタイムチャートを示している。また図９は、図７と同様に、上流側空燃比センサ４０の出力空燃比ＡＦｕｐが低い側（リッチ側）にずれている場合を示している。なお、学習値ｓｆｂｇは、上流側空燃比センサ４０の出力空燃比（出力電流）のずれに応じて変化する値であり、本発明の実施例では制御中心空燃比ＡＦＲを補正するのに用いられる。また、図９において、実線は上流側空燃比センサ４０の出力空燃比ＡＦｕｐを示しており、破線は、上流側空燃比センサ４０周りを流通する排気ガスの実際の空燃比を示している。また、一点鎖線は、目標空燃比、即ち空燃比補正量ＡＦＣに相当する空燃比を示している。
【００６２】
図９に示される例では、図５及び図７と同様に、時刻ｔ1以前の状態では、制御中心空燃比が理論空燃比とされ、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈとされている。このとき、上流側空燃比センサ４０の出力空燃比ＡＦｕｐは実線で示したようにリッチ設定空燃比に相当する空燃比となる。しかしながら、上流側空燃比センサ４０の出力空燃比にはずれが生じているため、排気ガスの実際の空燃比はリッチ設定空燃比よりもリーンの空燃比となっている（図９の破線）。ただし、図９に示した例では、図９の破線から分かるように、時刻ｔ1以前の実際の排気ガスの空燃比はリッチ設定空燃比よりもリーンながらも、リッチ空燃比となっている。したがって、上流側排気浄化触媒２０の酸素吸蔵量は徐々に減少していく。
【００６３】
時刻ｔ1において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する。これにより、上述したように、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられる。時刻ｔ1以降は、上流側空燃比センサ４０の出力空燃比はリーン設定空燃比に相当する空燃比となる。しかしながら、上流側空燃比センサ４０の出力空燃比のずれにより、排気ガスの実際の空燃比は、リーン設定空燃比よりもリーンな空燃比、すなわちリーン度合いの大きい空燃比となる（図９の破線を参照）。このため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは急速に増大する。
【００６４】
一方、酸素過不足量は、上流側空燃比センサ４０の出力空燃比ＡＦｕｐ（より正確には、出力空燃比ＡＦｕｐと制御中心空燃比ＡＦＲとの差）に基づいて算出される。しかしながら、上述したように、上流側空燃比センサ４０の出力空燃比ＡＦｕｐにはずれが生じており、従って、算出された積算酸素過不足量ΣＯＥＤは、実際に吸蔵されたの酸素量よりも少なくなっている。従って、積算酸素過不足量ΣＯＥＤは酸素吸蔵量ＯＳＡに比べてゆっくりと増大する。
【００６５】
時刻ｔ2では、積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達する。このため、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。従って、目標空燃比はリッチ空燃比とされる。このとき、実際の酸素吸蔵量ＯＳＡは図９に示したように切替基準吸蔵量Ｃｒｅｆよりも多くなっている。
【００６６】
時刻ｔ2以降は、時刻ｔ1以前の状態と同様に、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈとされ、よって目標空燃比はリッチ空燃比とされる。このときも、排気ガスの実際の空燃比はリッチ設定空燃比よりもリーンの空燃比となっている。その結果、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの減少速度は遅くなる。加えて、上述したように、時刻ｔ2において、上流側排気浄化触媒２０の実際の酸素吸蔵量は切替基準吸蔵量Ｃｒｅｆよりも多くなっている。このため、上流側排気浄化触媒２０の実際の酸素吸蔵量がゼロに到達するまでには時間がかかる。
【００６７】
時刻ｔ3では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する。これにより、上述したように、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられる。したがって、目標空燃比がリッチ設定空燃比からリーン設定空燃比へと切り替えられる。
【００６８】
ところで、本発明の実施例では、上述したように、時刻ｔ1から時刻ｔ2までにおいて、積算酸素過不足量ΣＯＥＤが算出される。ここで、目標空燃比をリーン空燃比に切り替えた時（時刻ｔ1）から上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの推定値が切替基準吸蔵量Ｃｒｅｆ以上になった時（時刻ｔ2）までの期間を酸素増大期間Ｔｉｎｃと称すると、本発明の実施例では、酸素増大期間Ｔｉｎｃに積算酸素過不足量ΣＯＥＤが算出される。図９では、時刻ｔ1〜時刻ｔ2の酸素増大期間Ｔｉｎｃにおける積算酸素過不足量ΣＯＥＤの絶対値をＲ1で示している。
【００６９】
この酸素増大期間Ｔｉｎｃの積算酸素過不足量ΣＯＥＤ（Ｒ1）は、時刻ｔ2における酸素吸蔵量ＯＳＡに相当する。しかしながら、上述したように、酸素過不足量の算出には上流側空燃比センサ４０の出力空燃比ＡＦｕｐが用いられ、この出力空燃比ＡＦｕｐにはずれが生じている。このため、図９に示した例では、時刻ｔ1〜時刻ｔ2の酸素増大期間Ｔｉｎｃにおける積算酸素過不足量ΣＯＥＤは、時刻ｔ2における実際の酸素吸蔵量ＯＳＡに相当する値よりも少ない値となっている。
【００７０】
また、本発明の実施例では、時刻ｔ2から時刻ｔ3までにおいても、積算酸素過不足量ΣＯＥＤが算出される。ここで、目標空燃比をリッチ空燃比に切り替えた時（時刻ｔ2）から下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する時（時刻ｔ3）までの期間を酸素減少期間Ｔｄｅｃと称すると、本発明の実施例では、酸素減少期間Ｔｄｅｃに積算酸素過不足量ΣＯＥＤが算出される。図９では、時刻ｔ2〜時刻ｔ3の酸素減少期間Ｔｄｅｃにおける積算酸素過不足量ΣＯＥＤの絶対値をＦ1で示している。
【００７１】
この酸素減少期間Ｔｄｅｃの積算酸素過不足量ΣＯＥＤ（Ｆ1）は、時刻ｔ2から時刻ｔ3までに上流側排気浄化触媒２０から放出された総酸素量に相当する。しかしながら、上述したように、上流側空燃比センサ４０の出力空燃比ＡＦｕｐにはずれが生じている。このため、図９に示した例では、時刻ｔ2〜時刻ｔ3の酸素減少期間Ｔｄｅｃにおける積算酸素過不足量ΣＯＥＤは、時刻ｔ2から時刻ｔ3までに上流側排気浄化触媒２０から実際に放出された総酸素量に相当する値よりも多きい値となっている。
【００７２】
ここで、酸素増大期間Ｔｉｎｃでは上流側排気浄化触媒２０に酸素が吸蔵されると共に、酸素減少期間Ｔｄｅｃでは吸蔵されていた酸素が全て放出される。従って、酸素増大期間Ｔｉｎｃにおける積算酸素過不足量の絶対値Ｒ1と、酸素減少期間Ｔｄｅｃにおける積算酸素過不足量の絶対値Ｆ1とは理論的に同一の値になるはずである。ところが、上述したように、上流側空燃比センサ４０の出力空燃比ＡＦｕｐにずれが生じている場合、このずれに応じてこれら積算値の値も変化する。上述したように、上流側空燃比センサ４０の出力空燃比が低い側（リッチ側）にずれている場合、絶対値Ｒ1に対して絶対値Ｆ1の方が多くなる。逆に、上流側空燃比センサ４０の出力空燃比が高い側（リーン側）にずれている場合、絶対値Ｒ1に対して絶対値Ｆ1の方が少なくなる。この場合、酸素増大期間Ｔｉｎｃにおける積算酸素過不足量の絶対値Ｒ1と酸素減少期間Ｔｄｅｃにおける積算酸素過不足量の絶対値Ｆ1の差ΔΣＯＥＤ（＝Ｒ1−Ｆ1 。以下、「過不足量誤差」という）は上流側空燃比センサ４０の出力空燃比におけるずれの程度を表している。これら絶対値Ｒ1、Ｆ1の差が大きくなるほど、上流側空燃比センサ４０の出力空燃比におけるずれが大きいといえる。
【００７３】
そこで、本発明の実施例では、過不足量誤差ΔΣＯＥＤに基づいて、制御中心空燃比ＡＦＲを補正するようにしている。特に、本発明の実施例では、酸素増大期間Ｔｉｎｃにおける積算酸素過不足量の絶対値Ｒ1と酸素減少期間Ｔｄｅｃにおける積算酸素過不足量の絶対値Ｆ1の差ΔΣＯＥＤが小さくなるように制御中心空燃比ＡＦＲを補正するようにしている。
【００７４】
具体的には、本発明の実施例では下記式（２）により学習値ｓｆｂｇを算出すると共に、下記式（３）により制御中心空燃比ＡＦＲが補正される。
ｓｆｂｇ（ｎ）＝ｓｆｂｇ（ｎ−１）＋ｋ1・ΔΣＯＥＤ      …（２）
ＡＦＲ＝ＡＦＲｂａｓｅ＋ｓｆｂｇ（ｎ）      …（３）
なお、上記式（２）において、ｓｆｂｇ（ｎ−１）は前回算出された学習値を示しており、ｓｆｂｇ（ｎ）は今回算出された学習値を示している。また、上記式（２）におけるｋ1は、過不足量誤差ΔΣＯＥＤを制御中心空燃比ＡＦＲに反映させる程度を表すゲインである。ゲインｋ1の値が大きいほど制御中心空燃比ＡＦＲの補正量が大きくなる。更に、上記式（３）において、基本制御中心空燃比ＡＦＲｂａｓｅは、基本となる制御中心空燃比であり、本発明の実施例では理論空燃比である。
【００７５】
図９の時刻ｔ3においては、上述したように、絶対値Ｒ1、Ｆ1に基づいて学習値ｓｆｂｇが算出される。特に、図９に示した例では、酸素増大期間Ｔｉｎｃにおける積算酸素過不足量の絶対値Ｒ1よりも酸素減少期間Ｔｄｅｃにおける積算酸素過不足量の絶対値Ｆ1の方が大きいことから、時刻ｔ3において学習値ｓｆｂｇは減少せしめられる。
【００７６】
このとき、上記式（３）からわかるように、制御中心空燃比ＡＦＲは、学習値ｓｆｂｇに基づいて補正される。図９に示した例では、学習値ｓｆｂｇは負の値となっているため、制御中心空燃比ＡＦＲは、基本制御中心空燃比ＡＦＲｂａｓｅよりも小さな値、すなわちリッチ側の値となる。従って、上流側排気浄化触媒２０に流入する排気ガスの空燃比はリッチ側に補正されることになる。
【００７７】
その結果、時刻ｔ3以降、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比の目標空燃比に対するずれは、時刻ｔ3以前と比べて小さくなる。従って、時刻ｔ3以降、実際の空燃比を表す破線と目標空燃比を表す一点鎖線との間の差は、時刻ｔ3以前における差よりも小さくなる。
【００７８】
また、時刻ｔ3以降も、時刻ｔ1〜時刻ｔ2における操作と同様な操作が行われる。したがって、時刻ｔ4において積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達すると、目標空燃比がリーン設定空燃比からリッチ設定空燃比へと切り替えられる。その後、時刻ｔ5において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達すると、再度、目標空燃比がリーン設定空燃比に切り替えられる。
【００７９】
即ち、時刻ｔ3〜時刻ｔ4は、上述したように酸素増大期間Ｔｉｎｃに該当し、よってこの間の積算酸素過不足量ΣＯＥＤの絶対値は図９のＲ2で表せる。また、時刻ｔ4〜時刻ｔ5は、上述したように酸素減少期間Ｔｄｅｃに該当し、よってこの間の積算酸素過不足量ΣＯＥＤの絶対値は図９のＦ2で表せる。そして、これら絶対値Ｒ2、Ｆ2の差ΔΣＯＥＤ（＝Ｒ2−Ｆ2）に基づいて、上記式（２）を用いて学習値ｓｆｂｇが更新される。本発明の実施例では、時刻ｔ5以降も同様な制御が繰り返され、これにより学習値ｓｆｂｇの更新が繰り返される。
【００８０】
通常学習制御により上述のように学習値ｓｆｂｇの更新を行うことにより、上流側空燃比センサ４０の出力空燃比ＡＦｕｐは徐々に目標空燃比から離れていくが、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比は徐々に目標空燃比に近づいていく。これにより、上流側空燃比センサ４０の出力空燃比におけるずれを修正することができる。このように本発明では、通常学習制御により学習値の更新が行われ、従って本発明の実施例では、この通常学習制御は学習値更新制御とも称される。
【００８１】
なお、上記実施例では、基本的な空燃比制御において、下流側空燃比センサ４１よって検出された空燃比がリッチ判定空燃比以下になったときに目標空燃比がリーン空燃比に切り替えられる。また、積算酸素過不足量ΣＯＥＤが所定の切替基準値ＯＥＤｒｅｆ以上になったときに目標空燃比がリッチ空燃比に切り替えられる。しかしながら、基本的な空燃比制御として、別の制御を用いてもよい。斯かる別の制御としては、例えば、下流側空燃比センサ４１の出力空燃比がリーン判定空燃比以上になったときに目標空燃比をリッチ空燃比に切り替え、積算酸素過不足量ΣＯＥＤが所定の切替基準値ＯＥＤｒｅｆ以下になったときに目標空燃比をリーン空燃比に切り替える制御が考えられる。
【００８２】
この場合、目標空燃比をリッチ空燃比に切り替えてから積算酸素過不足量ΣＯＥＤが所定の切替基準値ＯＥＤｒｅｆ以下になるまでの酸素減少期間における積算酸素過不足量の絶対値としてリッチ酸素量積算値が算出され、目標空燃比をリーン空燃比に切り替えてから下流側空燃比センサ４１の出力空燃比がリーン判定空燃比以上になるまでの酸素増大期間における積算酸素過不足量の絶対値としてリーン酸素量積算値が算出される。そして、これらリッチ酸素量積算値とリーン酸素量積算値との差が小さくなるように制御中心空燃比等が補正されることになる。
【００８３】
＜上流側空燃比センサにおける大きなずれ＞
ところで、図７及び図８に示した例では、上流側排気浄化触媒２０の出力空燃比にずれが生じているが、その程度はそれほど大きくない場合を示している。したがって、図７及び図８の破線からもわかるように、目標空燃比がリッチ設定空燃比に設定されている場合において、実際の排気ガスの空燃比は、リッチ設定空燃比よりもリーンながらも、リッチ空燃比となっている。
【００８４】
これに対して、上流側排気浄化触媒２０に生じているずれが大きくなると、目標空燃比がリッチ設定空燃比に設定されていても、実際の排気ガスの空燃比が理論空燃比になってしまう場合がある。この様子を、図１０に示す。
【００８５】
図１０では、時刻ｔ1以前において、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎとされている。これにより、上流側空燃比センサ４０の出力空燃比ＡＦｕｐはリーン設定空燃比となる。ただし、上流側空燃比センサ４０の出力空燃比は大きくリッチ側にずれているため、排気ガスの実際の空燃比はリーン設定空燃比よりもリーンな空燃比となっている（図中の破線）。
【００８６】
その後、時刻ｔ1において上流側空燃比センサ４０の出力空燃比ＡＦｕｐに基づいて算出された積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達すると、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。これに伴い、上流側空燃比センサ４０の出力空燃比ＡＦｕｐはリッチ設定空燃比に相当する空燃比となる。しかしながら、上流側空燃比センサ４０の出力空燃比は大きくリッチ側にずれているため、排気ガスの実際の空燃比は理論空燃比となっている（図中の破線）。
【００８７】
その結果、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは変化せずに一定の値に維持される。従って、空燃比補正量ＡＦＣをリッチ設定補正量ＡＦＣｒｉｃｈに切り替えてから長時間が経過しても、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはほぼ理論空燃比のまま維持される。上述したように、空燃比補正量ＡＦＣのリッチ設定補正量ＡＦＣｒｉｃｈからリーン設定補正量ＡＦＣｌｅａｎへの切替は、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達した時に行われる。しかしながら、図１０に示した例では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが理論空燃比のまま維持されることから、空燃比補正量ＡＦＣは長時間に亘ってリッチ設定補正量ＡＦＣｒｉｃｈに維持されることになる。ところで、上述した通常学習制御、即ち学習値更新制御は、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈとリーン設定補正量ＡＦＣｌｅａｎとの間で交互に切り替えられることを前提としている。従って、上流側空燃比センサ４０の出力空燃比が大きくずれている場合には、空燃比補正量ＡＦＣの切替が行われず、従って上述した通常学習制御、即ち、学習値更新制御は行われない。その結果、上流側空燃比センサ４０の出力空燃比におけるずれの修正が行われない。
【００８８】
図１１は、上流側空燃比センサ４０の出力空燃比が極めて大きくリッチ側にずれている場合を示す図１０と同様な図である。図１１に示した例では、図１０に示した例と同様に、時刻ｔ1において、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。即ち、時刻ｔ1において目標空燃比がリッチ設定空燃比に設定される。しかしながら、上流側空燃比センサ４０の出力空燃比のずれにより、実際の排気ガスの空燃比がリーン空燃比になっている（図中の破線）。
【００８９】
その結果、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに設定されているにもかかわらず、上流側排気浄化触媒２０にはリーン空燃比の排気ガスが流入する。そのため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは徐々に増大していき、ついには時刻ｔ2において最大吸蔵可能酸素量Ｃｍａｘに到達する。このように、酸素吸蔵量ＯＳＡが最大吸蔵可能酸素量Ｃｍａｘに到達すると、上流側排気浄化触媒２０はもはやこれ以上排気ガス中の酸素を吸蔵することができない。このため、上流側排気浄化触媒２０からは流入する排気ガス中に含まれているＮＯｘがそのまま流出し、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが上昇してリーン空燃比を示す。一方、空燃比補正量ＡＦＣのリッチ設定補正量ＡＦＣｒｉｃｈからリーン設定補正量ＡＦＣｌｅａｎへの切替は、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達した時に行われる。従って、このように上流側空燃比センサ４０の出力空燃比が極めて大きくずれている場合には、空燃比補正量ＡＦＣの切替が行われず、従ってこの場合も、上述した通常学習制御、即ち、学習値更新制御は行われない。その結果、上流側空燃比センサ４０の出力空燃比におけるずれの修正が行われない。
【００９０】
＜張付き学習制御＞
そこで、本発明の実施例ではでは、上流側空燃比センサ４０の出力空燃比におけるずれが大きな場合であってもそのずれを修正すべく、上述した通常学習制御、即ち、学習値更新制御に加えて、理論空燃比張付き学習制御、リーン張付き学習制御及びリッチ張付き学習制御が行われる。
【００９１】
＜理論空燃比張付き学習＞
まず、理論空燃比張付き学習制御について説明する。理論空燃比張付き学習制御は、図１０に示した例のように、下流側空燃比センサ４１によって検出される空燃比が理論空燃比に張り付いてしまっている場合に行われる学習制御である。
【００９２】
ここで、リッチ判定空燃比ＡＦｒｉｃｈとリーン判定空燃比ＡＦｌｅａｎとの間の空燃比領域を理論空燃比近傍領域Ｍと称する。理論空燃比張付き学習制御では、空燃比補正量ＡＦＣをリッチ設定補正量ＡＦＣｒｉｃｈに切り替えてから、すなわち目標空燃比をリッチ設定空燃比に切り替えてから、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが予め定められた理論空燃比維持判定時間以上に亘って理論空燃比近傍領域Ｍ内に維持されているか否かが判断される。そして、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが予め定められた理論空燃比維持判定時間以上に亘って理論空燃比近傍領域Ｍ内に維持されている場合には、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化するように学習値ｓｆｂｇが減少せしめられる。図１２にこの様子を示す。
【００９３】
図１２は、空燃比補正量ＡＦＣ等のタイムチャートを示す図９と同様な図である。図１２は、図１０と同様に、上流側空燃比センサ４０の出力空燃比ＡＦｕｐが低い側（リッチ側）に大きくずれている場合を示している。
【００９４】
図１２に示された例では、図１０と同様に、時刻ｔ1以前において、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎとされている。その後、時刻ｔ1において、積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達し、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。しかしながら、上流側空燃比センサ４０の出力空燃比は大きくリッチ側にずれているため、図１０に示した例と同様に、排気ガスの実際の空燃比はほぼ理論空燃比となっている。このため、時刻ｔ1以降、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは一定の値に維持される。従って、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎは長期間に亘って理論空燃比近傍領域Ｍ内に維持される。
【００９５】
そこで、本発明の実施例では、空燃比補正量ＡＦＣをリッチ設定補正量ＡＦＣｒｉｃｈに切り替えてから予め定められた理論空燃比維持判定時間Ｔｓｔｏ以上に亘って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが理論空燃比近傍領域Ｍ内に維持されている場合には、制御中心空燃比ＡＦＲを補正するようにしている。本発明の実施例では、このとき、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化するように学習値ｓｆｂｇが更新される。
【００９６】
具体的には、本実施形態では、下記式（４）により学習値ｓｆｂｇを算出すると共に、上記式（３）により制御中心空燃比ＡＦＲが補正される。
ｓｆｂｇ（ｎ）＝ｓｆｂｇ（ｎ−１）＋ｋ2・ＡＦＣｒｉｃｈ      …（４）
なお、上記式（４）において、ｋ2は、制御中心空燃比ＡＦＲを補正する程度を表すゲインである（０＜ｋ2≦１）。ゲインｋ2の値が大きいほど、制御中心空燃比ＡＦＲの補正量が大きくなる。
【００９７】
ここで、上述したように、空燃比補正量ＡＦＣの切替後に長期間に亘って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが理論空燃比近傍領域Ｍ内に維持されている場合には、排気ガスの実際の空燃比はほぼ理論空燃比近傍の値となっている。このため、上流側空燃比センサ４０におけるずれは、制御中心空燃比（理論空燃比）と目標空燃比（この場合は、リッチ設定空燃比）との差と同程度になっている。本発明の実施例では、上記式（４）に示したように制御中心空燃比と目標空燃比との差に相当する空燃比補正量ＡＦＣに基づいて学習値ｓｆｂｇを更新しており、これにより、より適切に上流側空燃比センサ４０の出力空燃比におけるずれを修正することができる。
【００９８】
図１２に示した例では、時刻ｔ1から理論空燃比維持判定時間Ｔｓｔｏが経過した時刻ｔ2まで、空燃比補正量ＡＦＣはリッチ設定補正量ＡＦＣｒｉｃｈとされる。そのため、式（４）からわかるように、時刻ｔ2において学習値ｓｆｂｇが減少せしめられる。その結果、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比はリッチ側に変化することになる。これにより、時刻ｔ2以降、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比の目標空燃比に対するずれは時刻ｔ2以前と比べて小さくなる。従って、時刻ｔ2以降、実際の空燃比を表す破線と目標空燃比を表す一点鎖線との間の差は、時刻ｔ2以前における差よりも小さくなっている。
【００９９】
図１２に示した例では、ゲインｋ2を比較的小さい値にした例を示している。このため、時刻ｔ2において学習値ｓｆｂｇの更新が行われてもなお、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比の目標空燃比に対するずれが残っている。このため、排気ガスの実際の空燃比は、リッチ設定空燃比よりもリーンな空燃比、すなわちリッチ度合いの小さい空燃比となる（図１２の破線参照）。このため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの減少速度は遅い。
【０１００】
この結果、時刻ｔ2から理論空燃比維持判定時間Ｔｓｔｏが経過した時刻ｔ3まで、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが理論空燃比近傍領域Ｍ内に維持される。そのため、図１２に示した例では、時刻ｔ3においても、式（４）を用いて、学習値ｓｆｂｇの更新が行われる。その後、図１２に示した例では、時刻ｔ4において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下となる。このように、出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下になった後には、上述したように空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎとリッチ設定補正量ＡＦＣｒｉｃｈとに交互に設定される。このときには、上述した通常学習制御、即ち、学習値更新制御が行われるようになる。
【０１０１】
理論空燃比張付き学習制御によりこのように学習値ｓｆｂｇの更新を行うことにより、上流側空燃比センサ４０の出力空燃比ＡＦｕｐのずれが大きい場合であっても、学習値の更新を行うことができる。これにより、上流側空燃比センサ４０の出力空燃比におけるずれを修正することができる。
【０１０２】
なお、上記実施形態では、理論空燃比維持判定時間Ｔｓｔｏは予め定められた時間とされている。この場合、理論空燃比維持判定時間は、目標空燃比をリッチ空燃比に切り替えてからの積算酸素過不足量ΣＯＥＤの絶対値が新品時の上流側排気浄化触媒２０の最大吸蔵可能酸素量に到達するまでに通常かかる時間以上とされる。具体的には、その２倍〜４倍程度の時間とするのが好ましい。
【０１０３】
一方、理論空燃比維持判定時間Ｔｓｔｏは、目標空燃比をリッチ空燃比に切り替えてからの積算酸素過不足量ΣＯＥＤ等、他のパラメータに応じて変化させてもよい。具体的には、例えば、積算酸素過不足量ΣＯＥＤが多くなるほど、理論空燃比維持判定時間Ｔｓｔｏが短くされる。それにより、目標空燃比をリッチ空燃比に切り替えてからの積算酸素過不足量ΣＯＥＤが所定の量（例えば、図１２のＯＥＤｓｗ）になったときに上述したような学習値ｓｆｂｇの更新を行うようにすることもできる。
【０１０４】
＜リッチ・リーン張付き学習＞
次に、リーン張付き学習制御について説明する。リーン張付き学習制御は、図１１に示した例のように、目標空燃比をリッチ空燃比にしているにもかかわらず、下流側空燃比センサ４１によって検出される空燃比がリーン空燃比に張り付いてしまっている場合に行われる学習制御である。リーン張付き学習制御では、空燃比補正量ＡＦＣをリッチ設定補正量ＡＦＣｒｉｃｈに切り替えてから、すなわち目標空燃比をリッチ設定空燃比に切り替えてから、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが予め定められたリーン空燃比維持判定時間以上に亘ってリーン空燃比に維持されているかを判断する。そして、リーン空燃比維持判定時間以上に亘ってリーン空燃比に維持されている場合には、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化するように学習値ｓｆｂｇが減少せしめられる。図１３にこの様子を示す。
【０１０５】
図１３は、空燃比補正量ＡＦＣ等のタイムチャートを示す図９と同様な図である。図１３は、図１１と同様に、上流側空燃比センサ４０の出力空燃比ＡＦｕｐが低い側（リッチ側）に極めて大きくずれている場合を示している。
【０１０６】
図１３に示される例では、時刻ｔ0において、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎからリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。しかしながら、上流側空燃比センサ４０の出力空燃比は極めて大きくリッチ側にずれているため、図１１に示した例と同様に、排気ガスの実際の空燃比はリーン空燃比となっている。このため、時刻ｔ0以降、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン空燃比に維持される。
【０１０７】
そこで、本発明の実施例では、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに設定されてから、予め定められたリーン空燃比維持判定時間Ｔｌｅａｎ以上に亘って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン空燃比に維持されている場合には、空燃比補正量ＡＦＣを補正するようにしている。この場合、本発明の実施例では、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化するように学習値ｓｆｂｇが補正される。
【０１０８】
具体的には、本発明の実施例では、下記式（５）により学習値ｓｆｂｇを算出すると共に、上記式（３）により学習値ｓｆｂｇに基づいて制御中心空燃比ＡＦＲが補正される。
ｓｆｂｇ（ｎ）＝ｓｆｂｇ（ｎ−１）＋ｋ3・（ＡＦＣｒｉｃｈ−（ＡＦｄｗｎ−１４．６））      …（５）
なお、上記式（５）において、ｋ3は、制御中心空燃比ＡＦＲを補正する程度を表すゲインである（０＜ｋ3≦１）。ゲインＫ3の値が大きいほど、制御中心空燃比ＡＦＲの補正量が大きくなる。
【０１０９】
ここで、図１３に示した例では、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに設定されているときに、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン空燃比に維持されている。この場合、上流側空燃比センサ４０におけるずれは、目標空燃比と下流側空燃比センサ４１の出力空燃比との差に相当する。これを分解すると、上流側空燃比センサ４０におけるずれは、目標空燃比と理論空燃比との差（リッチ設定補正量ＡＦＣｒｉｃｈに相当）と、理論空燃比と下流側空燃比センサ４１の出力空燃比との差とを加算した量と同程度となっているといえる。そこで、本発明の実施例では、上記式（５）に示したように、リッチ設定補正量ＡＦＣｒｉｃｈに下流側空燃比センサ４１の出力空燃比と理論空燃比との差を加算した値に基づいて学習値ｓｆｂｇを更新している。特に、上述した理論空燃比張付き学習では、リッチ設定補正量ＡＦＣｒｉｃｈ相当分だけ学習値を補正しているのに対して、リーン張付き学習ではこれに加えて下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ相当分だけ学習値を補正している。また、ゲインｋ3はゲインｋ2と同程度とされる。このため、リーン張付き学習における補正量は、理論空燃比張付き学習における補正量よりも大きい。
【０１１０】
図１３に示した例では、式（５）からわかるように、時刻ｔ1において、学習値ｓｆｂｇは減少せしめられる。その結果、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比はリッチ側に変化することになる。これにより、時刻ｔ1以降、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比の目標空燃比に対するずれは時刻ｔ1以前と比べて小さくなる。従って、時刻ｔ1以降、実際の空燃比を表す破線と目標空燃比を表す一点鎖線との間の差は、時刻ｔ1以前における差よりも小さくなっている。
【０１１１】
図１３では、ゲインｋ3を比較的小さい値にした例を示している。このため、時刻ｔ1において学習値ｓｆｂｇの更新が行われてもなお、上流側空燃比センサ４０の出力空燃比におけるずれが残っている。特に、図１３に示される例では、時刻ｔ1以降も、排気ガスの実際の空燃比はリーン空燃比のままとなっている。この結果、時刻ｔ1からリーン空燃比維持判定時間Ｔｌｅａｎに亘って下流側空燃比センサの出力空燃比ＡＦｄｗｎがリーン空燃比に維持される。このため、図１３に示される例では、時刻ｔ2においても、リーン張付き学習により、上記式（５）を用いて学習値ｓｆｂｇの補正が行われる。
【０１１２】
時刻ｔ2において学習値ｓｆｂｇの補正が行われると、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比の目標空燃比に対するずれが小さくなる。これにより、図１２に示される例では、時刻ｔ2以降には、排気ガスの実際の空燃比は理論空燃比よりも僅かにリッチとなり、これに伴って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン空燃比からほぼ理論空燃比に変化する。また、図１３に示される例では、時刻ｔ2から時刻ｔ3まで理論空燃比維持判定時間Ｔｓｔｏに亘って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがほぼ理論空燃比、すなわち理論空燃比近傍領域Ｍ内に維持される。そのため、時刻ｔ3において、理論空燃比張付き学習により、上記式（４）を用いて学習値ｓｆｂｇの補正が行われる。
【０１１３】
リーン張付き学習制御により学習値ｓｆｂｇの更新を行うことにより、上流側空燃比センサ４０の出力空燃比ＡＦｕｐのずれが極めて大きい場合であっても、学習値の更新を行うことができる。これにより、上流側空燃比センサ４０の出力空燃比におけるずれを小さくすることができる。
【０１１４】
なお、上述の実施例では、リーン空燃比維持判定時間Ｔｌｅａｎは予め定められた時間とされている。この場合、リーン空燃比維持判定時間Ｔｌｅａｎは、目標空燃比をリッチ空燃比に切り替えてから下流側空燃比センサ４１の出力空燃比がリッチ空燃比に変化するまでに通常かかる下流側空燃比センサの応答遅れ時間以上とされる。具体的には、その２倍〜４倍程度の時間とするのが好ましい。また、リーン空燃比維持判定時間Ｔｌｅａｎは、目標空燃比をリッチ空燃比に切り替えてからの積算酸素過不足量ΣＯＥＤの絶対値が新品時の上流側排気浄化触媒２０の最大吸蔵可能酸素量に到達するまでに通常かかる時間よりも短い。したがって、リーン空燃比維持判定時間Ｔｌｅａｎは、上述した理論空燃比維持判定時間Ｔｓｔｏよりも短い。
【０１１５】
一方、リーン空燃比維持判定時間Ｔｌｅａｎは、目標空燃比をリッチ空燃比に切り替えてから積算された排気ガス流量等、他のパラメータに応じて変化させてもよい。具体的には、例えば、積算排気ガス流量ΣＧｅが多くなるほど、リーン空燃比維持判定時間Ｔｌｅａｎが短くされる。これにより、目標空燃比をリッチ空燃比に切り替えてからの積算排気ガス流量が所定の量（例えば、図１３のΣＧｅｓｗ）になったときに、上述したような学習値ｓｆｂｇの更新を行うようにすることもできる。また、この場合、所定の量は、目標空燃比を切り替えてからそれに応じて下流側空燃比センサ４１の出力空燃比が変化するまでに必要な排気ガスの総流量以上とすることが必要である。具体的には、斯かる総流量の２倍〜４倍程度の量とすることが好ましい。
【０１１６】
次に、リッチ張付き学習制御について説明する。リッチ張付き学習制御は、リーン張付き学習制御と同様な制御であり、目標空燃比をリーン空燃比にしているにもかかわらず、下流側空燃比センサ４１によって検出される空燃比がリッチ空燃比に張り付いてしまっている場合に行われる学習制御である。リッチ張付き学習制御では、空燃比補正量ＡＦＣをリーン設定補正量ＡＦＣｌｅａｎに切り替えてから、すなわち目標空燃比をリーン設定空燃比に切り替えてから、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが予め定められたリッチ空燃比維持判定時間（リーン空燃比維持判定時間と同様）以上に亘ってリッチ空燃比に維持されているかを判断する。そして、リッチ空燃比維持判定時間以上に亘ってリッチ空燃比に維持されている場合には、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリーン側に変化するように学習値ｓｆｂｇが増大せしめられる。すなわち、リッチ張付き学習制御では、上述したリーン張付き学習制御とはリッチ及びリーンが逆にした制御が行われる。
【０１１７】
＜下流側空燃比センサの異常検出＞
さて、これまで下流側空燃比センサ４１が正常であることを前提として、基本的な空燃比制御や通常学習制御、即ち学習値更新制御や張付き学習制御について説明してきた。これまでの説明から、下流側空燃比センサ４１が正常である限り、たとえ上流側空燃比センサ４０の出力空燃比にずれが生じたとしても、通常学習制御、即ち学習値更新制御や張付き学習制御によって、上流側空燃比センサ４０の出力空燃比のずれが修正され、上流側排気浄化触媒２０に流入する排気ガスの空燃比を、目標とする設定空燃比に正確に一致させることができることがわかる。しかしながら、下流側空燃比センサ４１が異常になった場合には、上流側排気浄化触媒２０に流入する排気ガスの空燃比を、目標とする設定空燃比に正確に一致させることは困難となる。従って、下流側空燃比センサ４１に異常が生じた場合には、下流側空燃比センサ４１に異常が生じたことをただちに検出する必要がある。
【０１１８】
ところがこの場合、基本的な空燃比制御に加えて通常学習制御、即ち学習値更新制御や張付き学習制御を行っていると、そのときの学習値ｓｆｂｇの挙動から下流側空燃比センサ４１に異常が生じたか否かを検出し得ることが判明したのである。次に、この新たな下流側空燃比センサの異常検出方法について説明する。さて、空燃比センサは通常、センサ検出部が排気ガス中に位置するようにして、排気管に形成された取り付け穴内に外部から挿入されており、センサ検出部の周囲は筒状の保護カバーで包囲されている。この場合、空燃比センサは、排気管の取り付け穴内に密封的に固着されているが、時間が経過すると
この密封的固着部を介して外気が保護カバー内のセンサ検出部周りに漏洩することがある。このことは、本発明の実施例において用いられている下流側空燃比センサ４１についても同様である。
【０１１９】
ところで、本発明の実施例では、上流側排気浄化触媒２０から排出される排気ガスは、通常、理論空燃比となっており、従って下流側空燃比センサ４１の出力空燃比は通常、理論空燃比となるはずである。ところが、上述したように、外気が保護カバー内のセンサ検出部周りに漏洩すると、排気ガスの実際の空燃比が理論空燃比であったとしても、下流側空燃比センサ４１により検出される空燃比はリーンとなり、下流側空燃比センサ４１の出力は、いわゆるリーンずれを生ずることになる。このように下流側空燃比センサが、下流側空燃比センサ４１の出力がリーン側にずれるという異常を生ずると、もはや上流側排気浄化触媒２０に流入する排気ガスの空燃比を、目標とする設定空燃比に正確に一致させることができなくなる。この場合、下流側空燃比センサ４１の出力は、何らかの理由により、リッチ側にずれる異常を生ずることもあるが、実際には下流側空燃比センサ４１の出力は、リーンずれを生ずることが多い。従って、以下下流側空燃比センサ４１の出力がリーンにずれを生じた場合を例にとって、下流側空燃比センサの異常検出方法を説明する。
【０１２０】
図１４は、下流側空燃比センサ４１の出力がリーンずれを生じた場合の第１の例のタイムチャートを示している。この図１４は図９と同様な図であって、図１４には、制御中心空燃比ＡＦＲ、空燃比補正量ＡＦＣ、上流側空燃比センサ４０の出力空燃比ＡＦｕｐ、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡ、積算酸素過不足量ΣＯＥＤ、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ及び学習値ｓｆｂｇの変化が示されている。また、図１４において、Ｔｌｅａｎは図１３に示されるリーン空燃比維持判定時間Ｔｌｅａｎと同じリーン空燃比維持判定時間を示している。なお、図１４に示される下流側空燃比センサ４１の異常検出方法では、上流側空燃比センサ４０の出力空燃比にリーンずれ或いはリッチずれが生じているか否かにかかわらずに、下流側空燃比センサ４１の異常を検出することができるが、本発明を理解しやすくするために、上流側空燃比センサ４０の出力空燃比がずれを生じていない場合について図１４を参照しつつ最初に説明する。
【０１２１】
図１４に示される例では、図９と同様に、時刻ｔ1以前の状態では、制御中心空燃比ＡＦＲが理論空燃比とされ、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈとされている。このとき、上流側空燃比センサ４０の出力空燃比ＡＦｕｐは実線で示したようにリッチ設定空燃比に相当する空燃比となる。一方、時刻ｔ1以前の状態では、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが正の値であるので、上流側排気浄化触媒２０から流出する排気ガスの実際の空燃比は理論空燃比となっている。しかしながら、このとき下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン側にずれていて、図１４に示されるようにリーン空燃比ＡＦｓとなっている。即ち、図１４は、下流側空燃比センサ４１に向けて流れる排気ガスの実際の空燃比は理論空燃比であるときに、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン空燃比ＡＦｓを示してしまう異常状態を表している。
【０１２２】
次いで、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが徐々に減少してゼロになると、即ち時刻ｔ1 に達すると、上流側排気浄化触媒２０からＨＣ，ＣＯを還元するための酸素を供給し得なくなるために、上流側排気浄化触媒２０から流出する排気ガスの空燃比は、上流側空燃比センサ４０の出力空燃比ＡＦｕｐで示されるリッチ空燃比となる。その結果、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎは低下する、即ちリッチ側に変化する。図１４は、このように下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ側に変化しても下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが依然としてリーンである場合を示している。
【０１２３】
次いで、時刻ｔ２ において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが、予め定められたリーン空燃比維持判定時間Ｔｌｅａｎ以上に亘ってリーン空燃比であったと判断されると、前記式（５）により学習値ｓｆｂｇが算出され、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化するように学習値ｓｆｂｇが補正される。即ち、制御中心空燃比ＡＦＲが算出された学習値ｓｆｂｇだけ低下せしめられ、それによって上流側空燃比センサ４０の出力空燃比ＡＦｕｐが低下する、即ち更にリッチ側に変化する。言い換えると、このとき、張付き学習制御によって学習値ｓｆｂｇが低下せしめられる。なお、図１４は、このように下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ側に変化しても下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが依然としてリーンである場合を示している。
【０１２４】
次いで、時刻ｔ３ において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが、予め定められたリーン空燃比維持判定時間Ｔｌｅａｎ以上に亘ってリーン空燃比であったと判断されると、前記式（５）により学習値ｓｆｂｇが算出され、上流側排気浄化触媒２０に流入する排気ガスの空燃比が更にリッチ側に変化するように学習値ｓｆｂｇが補正される。即ち、制御中心空燃比ＡＦＲが算出された学習値ｓｆｂｇだけ更に低下せしめられ、それによって上流側空燃比センサ４０の出力空燃比ＡＦｕｐが更に低下する、即ち更にリッチ側に変化する。言い換えると、このとき、張付き学習制御によって学習値ｓｆｂｇが更に低下せしめられる。
【０１２５】
図１４に示される例では、このとき、即ち時刻ｔ３において張付き学習制御により学習値ｓｆｂｇが更に低下せしめられたときに、時刻ｔ４において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する。下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達すると、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられ、それにより上流側空燃比センサ４０の出力空燃比ＡＦｕｐはリーン空燃比となる。空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられると、図１４に示されるように、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが増大し始め、積算酸素過不足量ΣＯＥＤが増大し始める。上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが正の値になると、上流側排気浄化触媒２０から流出する排気ガスの空燃比が理論空燃比となり、従ってこのとき、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン空燃比ＡＦｓを示すことになる。
【０１２６】
さて、時刻ｔ４ 以降では、上流側空燃比センサ４０の出力空燃比ＡＦｕｐからわかるように、排気ガスの実際の空燃比は、リーン設定空燃比よりもかなりリーン度合いの低い空燃比となっている。その結果、図１４に示されるように、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの増大速度は極めて低くなる。一方、酸素過不足量は、上流側空燃比センサ４０の出力空燃比ＡＦｕｐ（より正確には、出力空燃比ＡＦｕｐと制御中心空燃比ＡＦＲとの差）に基づいて算出される。従って、積算酸素過不足量ΣＯＥＤは酸素吸蔵量ＯＳＡにくらべて急速に増大する。
【０１２７】
次いで、時刻ｔ５において、積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達する。積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達すると、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。従って、上流側空燃比センサ４０の出力空燃比ＡＦｕｐからわかるように、排気ガスの実際の空燃比は、リッチ空燃比に切り替わる。このとき、積算酸素過不足量ΣＯＥＤは一旦ゼロにされ、積算酸素過不足量ΣＯＥＤの算出が再開される。また、このとき、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは減少し始める。ところでこのとき、排気ガスの実際の空燃比は、設定リッチ空燃比に比べてかなりリッチ度合いの高い空燃比となっている。従って、図１４に示されるように、酸素吸蔵量ＯＳＡは急速に低下する。
【０１２８】
上述したように時刻ｔ４ 以降における酸素吸蔵量ＯＳＡの増大速度は極めて低く、その結果積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達したときの、即ち時刻ｔ５における酸素吸蔵量ＯＳＡは極めて少量となっている。一方、上述したように、時刻ｔ５において空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられると、酸素吸蔵量ＯＳＡは急速に低下する。次いで時刻ｔ６において酸素吸蔵量ＯＳＡがゼロになると、上流側排気浄化触媒２０から流出する排気ガスの空燃比は理論空燃比からかなりリッチなリッチ空燃比に変化する。その結果、時刻ｔ７において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する。このとき、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられる。このとき、積算酸素過不足量ΣＯＥＤは一旦ゼロにされ、積算酸素過不足量ΣＯＥＤの算出が再開される。また、このとき、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは増大し始める。
【０１２９】
このように排気ガスの実際の空燃比がかなりリッチにされているときに、時刻ｔ４ において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達することにより空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられると、その後空燃比補正量ＡＦＣが再びリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられたときに短時間のうちに積算酸素過不足量ΣＯＥＤが再び切替基準値ＯＥＤｒｅｆに到達する。このように積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達してから積算酸素過不足量ΣＯＥＤが再び切替基準値ＯＥＤｒｅｆに到達するまでの時間が短くなると、図１４からわかるように、時刻ｔ５における積算酸素過不足量ΣＯＥＤ（Ｒ）が時刻ｔ７における積算酸素過不足量ΣＯＥＤ（Ｆ）に比べてかなり大きくなる。
【０１３０】
この場合、積算酸素過不足量ΣＯＥＤ（Ｒ）が積算酸素過不足量ΣＯＥＤ（Ｆ）に比べて大きいということは、排気ガスの実際の空燃比がリッチ設定空燃比に対してリッチ側にずれていること意味している。従って、このときには、図９を参照しつつ既に説明した通常学習制御、即ち、学習値更新制御によって、積算酸素過不足量ΣＯＥＤ（Ｒ）の絶対値と積算酸素過不足量ΣＯＥＤ（Ｆ）の絶対値との差過不足量誤差ΔΣＯＥＤが小さくなるように学習値ｓｆｂｇが増大せしめられる。このとき本発明の実施例では、前記式（２）により学習値ｓｆｂｇが算出されると共に、前記式（３）により制御中心空燃比ＡＦＲが補正される。即ち、図１４に示されるように、時刻ｔ７において学習値ｓｆｂｇが増大され、制御中心空燃比ＡＦＲが学習値ｓｆｂｇだけ増大せしめられる。
【０１３１】
さて、時刻ｔ７において、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられると、このときには制御中心空燃比ＡＦＲが学習値ｓｆｂｇだけ増大せしめられているので、上流側空燃比センサ４０の出力空燃比ＡＦｕｐからわかるように、排気ガスの実際の空燃比は少し増大される、即ち少しリーン側に変化せしめられる。次いで、時刻ｔ９において、積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達すると空燃比補正量ＡＦＣが再びリッチ設定補正量ＡＦＣｒｉｃｈに切り替えら、このとき積算酸素過不足量ΣＯＥＤは一旦ゼロにされ、積算酸素過不足量ΣＯＥＤの算出が再開される。また、このとき、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは減少し始める。
【０１３２】
図１４は、時刻ｔ３における学習値ｓｆｂｇの低下量と時刻ｔ７における学習値ｓｆｂｇの増大量がほぼ同じである場合を示している。この場合には、時刻ｔ９において、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられた後、時刻ｔ１０において酸素吸蔵量ＯＳＡがゼロになると、このときには図１４からわかるように制御中心空燃比ＡＦＲの値が、時刻ｔ２から時刻ｔ３における制御中心空燃比ＡＦＲの値と同じ値になっているので、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎは時刻ｔ２から時刻ｔ３における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎと同じリーン空燃比となっている。即ち、時刻ｔ２以降の状態と時刻ｔ１０以降の状態とは同じ状態となる。
【０１３３】
従って、時刻ｔ８において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン空燃比になった後、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが、予め定められたリーン空燃比維持判定時間Ｔｌｅａｎ以上に亘ってリーン空燃比であったと判断されると、再び時刻ｔ１１において、張付き学習制御により学習値ｓｆｂｇが低下せしめられる。次いで、時刻ｔ１１以降、制御中心空燃比ＡＦＲ、空燃比補正量ＡＦＣ、上流側空燃比センサ４０の出力空燃比ＡＦｕｐ、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡ、積算酸素過不足量ΣＯＥＤ、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ及び学習値ｓｆｂｇは、時刻ｔ３から時刻ｔ１１に示される変化と同じ変化を繰り返すことになる。
【０１３４】
このように、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーンずれを生ずると、張付き学習制御による学習値ｓｆｂｇの低下作用と通常学習制御、即ち、学習値更新制御による学習値ｓｆｂｇの増大作用とが交互に繰り返されることになり、従って学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが交互に繰り返されることになる。一方、上流側空燃比センサ４０の出力空燃比がリーンずれを生じている場合にも図１３に示されるように下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーンにずれ、従って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーンにずれた場合、上流側空燃比センサ４０の出力空燃比がリーンずれを生じているのか、或いは下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーンずれを生じているのかはわからない。
【０１３５】
しかしながら、上流側空燃比センサ４０の出力空燃比がリーンずれを生じている場合には、図１３に示されるように、学習値ｓｆｂｇは徐々に減少して一定値に収束していく。即ち、上流側空燃比センサ４０の出力空燃比がリーンずれを生じている場合には、学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが交互に繰り返されることはない。
一方、上流側空燃比センサ４０の出力空燃比がリッチずれを生じている場合には、学習値ｓｆｂｇは徐々に増大して一定値に収束していく。従って、上流側空燃比センサ４０の出力空燃比がリッチずれを生じている場合にも、学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが交互に繰り返されることはない。
【０１３６】
また、上流側空燃比センサ４０の出力空燃比がリーンずれ或いはリッチずれを生じており、下流側空燃比センサ４１の出力空燃比が共にリーンずれを生じている場合には、一定値に向かう学習値ｓｆｂｇの収束作用に、交互に繰り返される学習値ｓｆｂｇの増大低下作用が重畳されることになる。この場合には、上流側空燃比センサ４０の出力空燃比の修正が完了すれば、一定値に向かう学習値ｓｆｂｇの収束作用は完了し、その後は下流側空燃比センサ４１の出力空燃比がリーンずれに基づく学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが交互に繰り返されることになる。
【０１３７】
このように、上流側空燃比センサ４０の出力空燃比が正常であるときはもとより、上流側空燃比センサ４０の出力空燃比がリーンずれを生じている場合であってもリッチずれを生じている場合であっても、下流側空燃比センサ４１の出力空燃比がリーンずれを生じていない限り、学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが交互に繰り返されることはない。一方、下流側空燃比センサ４１の出力空燃比がリーンずれを生じている場合には必ず、学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが交互に繰り返される。従って、学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが交互に繰り返されたときには、下流側空燃比センサ４１の出力空燃比がリーンずれを生じていると判断できることになる。
【０１３８】
図１５は、図１４の時刻ｔ７において、通常学習制御、即ち、学習値更新制御によって学習値ｓｆｂｇが増大されたときに、学習値ｓｆｂｇの増大量が大きく、その結果、制御中心空燃比ＡＦＲが理論空燃比まで増大せしめられた場合を示している。この場合には、図１５に示されるように、時刻ｔ７において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン空燃比ＡＦｓまで増大した後、時刻ｔ１以降と同様に、張付き学習制御による学習値ｓｆｂｇの低下作用が２回行われ、その後通常学習制御、即ち、学習値更新制御によって学習値ｓｆｂｇの増大作用が１回行われる。即ち、この場合には、学習値ｓｆｂｇの低下作用が２回行われた後、学習値ｓｆｂｇの増大作用が１回行われ、これが繰り返される。
【０１３９】
図１６は、図１４の時刻ｔ２において、張付き学習制御により学習値ｓｆｂｇが低下せしめられた後、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが、図１２を参照しつつ説明した理論空燃比維持判定時間Ｔｓｔｏ以上に亘って、理論空燃比近傍領域Ｍ内に維持されている場合を示している。この場合には、時刻ｔ３において、理論空燃比張付き学習制御により学習値ｓｆｂｇが低下せしめられる。次いで、時刻ｔ４において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達した後は、時刻ｔ１０に達するまでの間、制御中心空燃比ＡＦＲ、空燃比補正量ＡＦＣ、上流側空燃比センサ４０の出力空燃比ＡＦｕｐ、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡ、積算酸素過不足量ΣＯＥＤ、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ及び学習値ｓｆｂｇは、図１４の時刻ｔ４から時刻ｔ１０に示される変化と同様な変化を行う。
【０１４０】
次いで、時刻ｔ１０において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎは理論空燃比近傍領域Ｍ内まで低下し、その後、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが、理論空燃比維持判定時間Ｔｓｔｏ以上に亘って理論空燃比近傍領域Ｍ内に維持されている場合には、時刻ｔ１１において、学習値ｓｆｂｇが再び低下せしめられる。次いで、時刻ｔ１１以降、制御中心空燃比ＡＦＲ、空燃比補正量ＡＦＣ、上流側空燃比センサ４０の出力空燃比ＡＦｕｐ、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡ、積算酸素過不足量ΣＯＥＤ、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ及び学習値ｓｆｂｇは、時刻ｔ３から時刻ｔ１１に示される変化と同じ変化を繰り返すことになる。従って、この場合も、張付き学習制御による学習値ｓｆｂｇの低下作用と通常学習制御、即ち、学習値更新制御による学習値ｓｆｂｇの増大作用とが交互に繰り返されることになる。
【０１４１】
さて、上述したように、学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが繰り返されたときには、下流側空燃比センサ４１の出力空燃比がリーンずれを生じている、即ち下流側空燃比センサ４１に異常があると判断することができる。下流側空燃比センサ４１の出力空燃比がリーンずれを生じているときに学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが繰り返されるのは、張付き学習制御と通常学習制御、即ち、学習値更新制御とが行われているからであり、従って本発明による下流側空燃比センサ４１の異常検出方法においては、張付き学習制御および通常学習制御、即ち、学習値更新制御が行われていることが前提である。
【０１４２】
この場合、張付き学習制御について言うと、何回目（場合によっては１回目）かの張付き学習制御を行ったときに下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達することが必要であり、従って張付き学習制御による学習値ｓｆｂｇの低下量は、張付き学習制御を行ったときに下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達し得るように設定されている。一方、通常学習制御、即ち、学習値更新制御について言うと、通常学習制御、即ち、学習値更新制御を行ったときには続いて張付き学習制御が行われることが必要であり、従って通常学習制御、即ち、学習値更新制御による学習値ｓｆｂｇの増大量は、通常学習制御、即ち、学習値更新制御を行ったときに続いて張付き学習制御が行われるように設定されている。
【０１４３】
ところで、図１４および図１６に示される例では、下流側空燃比センサ４１の出力空燃比がリーンずれを生じているときには、学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが交互に繰り返される。これに対し、図１５に示される例では、下流側空燃比センサ４１の出力空燃比がリーンずれを生じているときには、学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが交互に繰り返されず、２回の学習値ｓｆｂｇの低下作用が行われた後、１回の学習値ｓｆｂｇの増大作用が行われ、以後これが繰り返される。このい場合でも、学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが繰り返されていることになる。
【０１４４】
なお、通常学習制御、即ち、学習値更新制御が行われている場合においても、学習値ｓｆｂｇがなかなか収束しないために、学習値ｓｆｂｇが増大および低下を繰り返す場合がある。しかしながら、この場合の学習値ｓｆｂｇが低下量および増大量は、夫々張付き学習制御による学習値ｓｆｂｇの低下量および通常学習制御、即ち、学習値更新制御による学習値ｓｆｂｇの増大量に比べてかなり小さい。従って、この場合、学習値ｓｆｂｇが予め定められた一定値以上低下し、学習値ｓｆｂｇが予め定められた一定値以上増大し、これが繰り返されたときには下流側空燃比センサ４１の出力空燃比がリーンずれを生じていると判断することができる。即ち、学習値ｓｆｂｇの一定値以上の低下と学習値ｓｆｂｇの一定値以上の増大とが繰り返されたときには下流側空燃比センサ４１に異常があると判断することができる。これら一定値は、通常学習制御、即ち、学習値更新制御が行われているときの学習値ｓｆｂｇが低下量および増大量と、張付き学習制御および通常学習制御、即ち、学習値更新制御が繰り返されるときの学習値ｓｆｂｇが低下量および増大量との中間値であり、実験等によって決定される。
【０１４５】
従って、本発明による空燃比センサの異常検出方法によれば、酸素吸蔵能力を有する排気浄化触媒２０に流入する排気ガスの目標空燃比を、理論空燃比よりもリッチなリッチ設定空燃比と理論空燃比よりもリーンなリーン設定空燃比との間で交互に切り替え、排気浄化触媒２０から流出した排気ガスの空燃比を下流側空燃比センサ４１により検出し、下流側空燃比センサ４１により検出された空燃比に基づいて排気浄化触媒２０に流入する排気ガスの空燃比を目標空燃比に近づけるのに必要な空燃比補正値を学習すると共に、学習により得られた空燃比補正値の学習値ｓｆｂｇを用いて排気浄化触媒２０に流入する排気ガスの空燃比が目標空燃比となるようにフィードバック制御し、目標空燃比がリッチ設定空燃比に設定されているときに下流側空燃比センサ４１により検出された空燃比が予め定められた期間に亘ってリーンに維持されている場合には、排気浄化触媒２０に流入する排気ガスの空燃比を小さくさせるために学習値ｓｆｂｇを低下させる張付き学習制御を行い、下流側空燃比センサ４１により検出された空燃比に基づいて、排気浄化触媒２０に流入する排気ガスの空燃比が目標空燃比よりもリッチ側にずれていると判別されたときには学習値ｓｆｂｇを増大させかつ排気浄化触媒２０に流入する排気ガスの空燃比が目標空燃比よりもリーン側にずれていると判別されたときには学習値ｓｆｂｇを低下させる学習値更新制御を行い、学習値ｓｆｂｇの一定値以上の低下と学習値ｓｆｂｇの一定値以上の増大とが繰り返されたときには下流側空燃比センサ４１に異常があると判定する。
【０１４６】
一方、本発明の実施例では、下流側空燃比センサ４１により検出された空燃比が予め定められているリーン判定空燃比ＡＦｌｅａｎ以上になったときに下流側空燃比センサ４１により検出された空燃比ＡＦｄｗｎがリーンになったと判定され、下流側空燃比センサ４１により検出された空燃比が予め定められているリッチ判定空燃比ＡＦｒｉｃｈ以下になったときに下流側空燃比センサ４１により検出された空燃比ＡＦｄｗｎがリッチになったと判定される。そして、図１４および図１５に示される場合には、張付き学習制御によって、目標空燃比がリッチ設定空燃比に設定されているときに下流側空燃比センサ４１により検出された空燃比ＡＦｄｗｎが予め定められた期間Ｔｌｅａｎに亘ってリーン判定空燃比ＡＦｌｅａｎ以上のリーンに維持されている場合には、学習値ｓｆｂｇが低下せしめられ、図１６に示される場合には、張付き学習制御によって、目標空燃比がリッチ設定空燃比に設定されているときに下流側空燃比センサ４１により検出された空燃比ＡＦｄｗｎが予め定められた期間Ｔｓｔｏに亘ってリッチ判定空燃比ＡＦｒｉｃｈとリーン判定空燃比ＡＦｌｅａｎとの間に維持されている場合には、排気浄化触媒２０に流入する排気ガスの空燃比を小さくさせるために学習値ｓｆｂｇが低下せしめられる。
【０１４７】
また、本発明の実施例では、目標空燃比は下流側空燃比センサ４１によって検出された空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下になったときにリーン設定空燃比に切り替えられると共に、目標空燃比は排気浄化触媒２０の酸素吸蔵量ＯＳＡが最大吸蔵可能酸素量Ｃｍａｘよりも少ない予め定められた切替基準吸蔵量Ｃｒｅｆ以上になったときにリッチ設定空燃比に切り替えられ、通常学習制御、即ち、学習値更新制御は、下流側空燃比センサ４１により検出された空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達したとき、即ちリッチ判定空燃比ＡＦｒｉｃｈ以下になったときに行われる。
【０１４８】
この場合、本発明の実施例では、目標空燃比がリーンであるときに排気浄化触媒２０に流入する排気ガスの空燃比が目標空燃比であれば排気浄化触媒２０に単位時間当り吸蔵される酸素量および目標空燃比がリッチであるときに排気浄化触媒２０に流入する排気ガスの空燃比が目標空燃比であれば排気浄化触媒２０から単位時間当り放出される酸素量が酸素過不足量として積算されており、通常学習制御、即ち、学習値更新制御は、目標空燃比がリーン設定空燃比に切り替えられてから排気浄化触媒２０の酸素吸蔵量ＯＳＡが切替基準吸蔵量Ｃｒｅｆ以上になるまでに積算された酸素過不足量の積算値ΣＯＥＤと、目標空燃比がリッチ設定空燃比に切り替えられてから下流側空燃比センサ４１によって検出された空燃比がリッチ判定空燃比ＡＦｒｉｃｈ以下になるまでに積算された積算酸素過不足量の積算値ΣＯＥＤとの差が小さくなるように学習値ｓｆｂｇを更新する。
【０１４９】
また、図１４および図１６に示される場合には、下流側空燃比センサ４１の出力空燃比がリーンずれを生じているときには、学習値ｓｆｂｇの低下作用と学習値ｓｆｂｇの増大作用とが交互に繰り返され、従って、本発明による一実施例では、学習値ｓｆｂｇの一定値以上の低下と学習値ｓｆｂｇの一定値以上の増大とが交互に繰り返されたときに下流側空燃比センサ４１に異常があると判定される。なお、上述したように、学習値ｓｆｂｇがなかなか収束しないために、学習値ｓｆｂｇが増大および低下を繰り返す場合があり、このような場合と明確に区別するために、本発明の実施例では、学習値ｓｆｂｇの一定値以上の低下が張り付き制御によって行われたときに下流側空燃比センサ４１に異常があると判定される。
【０１５０】
一方、図１７は、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン判定空燃比ＡＦｌｅａｎ以上になると、酸素吸蔵量ＯＳＡを減少させるべく、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈ（リッチ設定空燃比に相当）に切り替えるようにした場合において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチずれを生じた場合における、制御中心空燃比ＡＦＲ、空燃比補正量ＡＦＣ、上流側空燃比センサ４０の出力空燃比ＡＦｕｐ、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡ、積算酸素過不足量ΣＯＥＤ、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ及び学習値ｓｆｂｇの変化を示している。この場合には、前述したリッチ張付き学習制御が用いられ、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが予め定められたリッチ空燃比維持判定時間Ｔｒｉｃｈ以上に亘ってリッチ空燃比に維持されているかが判断される。この結果、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが予め定められたリッチ空燃比維持判定時間Ｔｒｉｃｈ以上に亘ってリッチ空燃比に維持されていると判別された場合には、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリーン側に変化するように学習値ｓｆｂｇが増大せしめられる。すなわち、リッチ張付き学習制御では、上述したリーン張付き学習制御とはリッチ及びリーンが逆にした制御が行われる。
【０１５１】
図１７に示される場合にも、リッチ張付き学習制御による学習値ｓｆｂｇの増大作用と通常学習制御、即ち、学習値更新制御による学習値ｓｆｂｇの低下作用とが交互に繰り返される。従って、この場合にも、学習値ｓｆｂｇの増大作用と学習値ｓｆｂｇの低下作用とが交互に繰り返されたときには、下流側空燃比センサ４１の出力空燃比がリッチずれを生じていると、即ち下流側空燃比センサ４１に異常があると判断できることになる。
【０１５２】
＜具体的な制御の説明＞
次に、図１８から図２３を参照しつつ、本発明の実施例において用いられている空燃比制御装置について具体的に説明する。本発明の実施例において用いられている空燃比制御装置は、機能ブロック図である図１８に示したように、Ａ１〜Ａ１１の各機能ブロックを含んで構成されている。以下、図１８を参照しながら各機能ブロックについて説明する。これら各機能ブロックＡ１〜Ａ１１における操作は、基本的にＥＣＵ３１において実行される。
【０１５３】
＜燃料噴射量の算出＞
まず、燃料噴射量の算出について説明する。燃料噴射量の算出に当たっては、筒内吸入空気量算出手段Ａ１、基本燃料噴射量算出手段Ａ２、及び燃料噴射量算出手段Ａ３が用いられる。
【０１５４】
吸入空気量算出手段Ａ１は、吸入空気流量Ｇａと、機関回転数ＮＥと、ＥＣＵ３１のＲＯＭ３４に記憶されたマップ又は計算式とに基づいて、各気筒への吸入空気量Ｍｃを算出する。吸入空気流量Ｇａは吸入空気流量３９によって計測され、機関回転数ＮＥはクランク角センサ４４の出力に基づいて算出される。
【０１５５】
基本燃料噴射量算出手段Ａ２は、吸入空気量算出手段Ａ１によって算出された各気筒への吸入空気量Ｍｃを、目標空燃比ＡＦＴで除算することにより、基本燃料噴射量Ｑｂａｓｅを算出する（Ｑｂａｓｅ＝Ｍｃ／ＡＦＴ）。目標空燃比ＡＦＴは、後述する目標空燃比設定手段Ａ８によって算出される。
【０１５６】
燃料噴射量算出手段Ａ３は、基本燃料噴射量算出手段Ａ２によって算出された基本燃料噴射量Ｑｂａｓｅに、後述するＦ／Ｂ補正量ＤＱｉを加えることで燃料噴射量Ｑｉを算出する（Ｑｉ＝Ｑｂａｓｅ＋ＤＱｉ）。このようにして算出された燃料噴射量Ｑｉの燃料が燃料噴射弁１１から噴射されるように、燃料噴射弁１１に対して噴射指示が行われる。
【０１５７】
＜目標空燃比の算出＞
次に、目標空燃比の算出について説明する。目標空燃比の算出に当たっては、酸素過不足量算出手段Ａ４、空燃比補正量算出手段Ａ５、学習値算出手段Ａ６、制御中心空燃比算出手段Ａ７、目標空燃比設定手段Ａ８が用いられる。
【０１５８】
酸素過不足量算出手段Ａ４は、燃料噴射量算出手段Ａ３によって算出された燃料噴射量Ｑｉ及び上流側空燃比センサ４０の出力空燃比ＡＦｕｐに基づいて積算酸素過不足量ΣＯＥＤを算出する。例えば、酸素過不足量算出手段Ａ４は、上流側空燃比センサ４０の出力空燃比と制御中心空燃比との差分に燃料噴射量Ｑｉを乗算し、乗算結果を積算することによって積算酸素過不足量ΣＯＥＤを算出する。
【０１５９】
空燃比補正量算出手段Ａ５では、酸素過不足量算出手段Ａ４によって算出された積算酸素過不足量ΣＯＥＤと、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎとに基づいて、目標空燃比の空燃比補正量ＡＦＣが算出される。具体的には、図１９に示したフローチャートに基づいて空燃比補正量ＡＦＣが算出される。
【０１６０】
学習値算出手段Ａ６では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ、酸素過不足量算出手段Ａ４によって算出された積算酸素過不足量ΣＯＥＤ等に基づいて学習値ｓｆｂｇが算出される。具体的には、図２０に示した通常学習制御、即ち、学習値更新制御のフローチャート及び図２１に示した張付き学習制御のフローチャートに基づいて学習値ｓｆｂｇが算出される。このようにして算出された学習値ｓｆｂｇは、ＥＣＵ３１のＲＡＭ３３のうち、イグニッションキーがオフにされても消去されない記憶媒体に保存される。
【０１６１】
制御中心空燃比算出手段Ａ７では、基本制御中心空燃比ＡＦＲｂａｓｅ（例えば、理論空燃比）と、学習値算出手段Ａ６によって算出された学習値ｓｆｂｇとに基づいて制御中心空燃比ＡＦＲが算出される。具体的には、前述した式（３）に示したように、基本制御中心空燃比ＡＦＲｂａｓｅに学習値ｓｆｂｇを加算することによって制御中心空燃比ＡＦＲが算出される。
【０１６２】
目標空燃比設定手段Ａ８は、制御中心空燃比算出手段Ａ７によって算出された制御中心空燃比ＡＦＲに、空燃比補正量算出手段Ａ５で算出された空燃比補正量ＡＦＣを加算することで、目標空燃比ＡＦＴを算出する。このようにして算出された目標空燃比ＡＦＴは、基本燃料噴射量算出手段Ａ２及び後述する空燃比偏差算出手段Ａ９に入力される。
【０１６３】
＜Ｆ／Ｂ補正量の算出＞
次に、上流側空燃比センサ４０の出力空燃比ＡＦｕｐに基づいたＦ／Ｂ補正量の算出について説明する。Ｆ／Ｂ補正量の算出に当たっては、空燃比偏差算出手段Ａ９、Ｆ／Ｂ補正量算出手段Ａ１０が用いられる。
【０１６４】
空燃比偏差算出手段Ａ９は、上流側空燃比センサ４０の出力空燃比ＡＦｕｐから目標空燃比設定手段Ａ８によって算出された目標空燃比ＡＦＴを減算することによって空燃比偏差ＤＡＦを算出する（ＤＡＦ＝ＡＦｕｐ−ＡＦＴ）。この空燃比偏差ＤＡＦは、目標空燃比ＡＦＴに対する燃料供給量の過不足を表す値である。
【０１６５】
Ｆ／Ｂ補正量算出手段Ａ１０は、空燃比偏差算出手段Ａ９によって算出された空燃比偏差ＤＡＦを、比例・積分・微分処理（ＰＩＤ処理）することで、下記式（６）に基づいて燃料供給量の過不足を補償するためのＦ／Ｂ補正量ＤＦｉを算出する。このようにして算出されたＦ／Ｂ補正量ＤＦｉは、燃料噴射量算出手段Ａ３に入力される。
ＤＦｉ＝Ｋｐ・ＤＡＦ＋Ｋｉ・ＳＤＡＦ＋Ｋｄ・ＤＤＡＦ      …（６）
【０１６６】
なお、上記式（６）において、Ｋｐは予め設定された比例ゲイン（比例定数）、Ｋｉは予め設定された積分ゲイン（積分定数）、Ｋｄは予め設定された微分ゲイン（微分定数）である。また、ＤＤＡＦは、空燃比偏差ＤＡＦの時間微分値であり、今回更新された空燃比偏差ＤＡＦと前回更新されていた空燃比偏差ＤＡＦとの偏差を更新間隔に対応する時間で除算することで算出される。また、ＳＤＡＦは、空燃比偏差ＤＡＦの時間積分値であり、この時間積分値ＤＤＡＦは前回更新された時間積分値ＤＤＡＦに今回更新された空燃比偏差ＤＡＦを加算することで算出される（ＳＤＡＦ＝ＤＤＡＦ＋ＤＡＦ）。
【０１６７】
＜空燃比補正量算出制御のフローチャート＞
図１９は、空燃比補正量ＡＦＣの算出制御ルーチンを示している。このルーチンは一定時間間隔の割り込みによって行われる。
【０１６８】
図１９に示されるように、まず初めに、ステップＳ１１において空燃比補正量ＡＦＣの算出条件が成立しているか否かが判定される。空燃比補正量ＡＦＣの算出条件が成立している場合とは、フィードバック制御が行われている通常制御中であること、例えば燃料噴射停止制御中等ではないこと等が挙げられる。ステップＳ１１において目標空燃比の算出条件が成立していると判定された場合には、ステップＳ１２へと進む。ステップＳ１２では、上流側空燃比センサ４０の出力空燃比ＡＦｕｐ及び燃料噴射量Ｑｉに基づいて積算酸素過不足量ΣＯＥＤが算出される。
【０１６９】
次いでステップＳ１３において、リーン設定フラグＦｒが０に設定されているか否かが判定される。リーン設定フラグＦｒは、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに設定されると１とされ、それ以外の場合には０とされる。ステップＳ１３においてリーン設定フラグＦｒが０に設定されている場合には、ステップＳ１４へと進む。ステップＳ１４では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下であるか否かが判定される。下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈよりも大きいと判定された場合には処理サイクルを完了する。
【０１７０】
一方、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが減少して、上流側排気浄化触媒２０から流出する排気ガスの空燃比が低下すると、ステップＳ１４にて下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下であると判定される。この場合には、ステップＳ１５へと進み、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎとされる。次いで、ステップＳ１６では、リーン設定フラグＦｒが１に設定され、処理サイクルを完了する。
【０１７１】
次の処理サイクルでは、ステップＳ１３において、リーン設定フラグＦｒが０に設定されていないと判定され、ステップＳ１７へと進む。ステップＳ１７では、ステップＳ１２で算出された積算酸素過不足量ΣＯＥＤが判定基準値ＯＥＤｒｅｆよりも少ないか否かが判定される。積算酸素過不足量ΣＯＥＤが判定基準値ＯＥＤｒｅｆよりも少ないと判定された場合にはステップＳ１８へと進み、空燃比補正量ＡＦＣが引き続きリーン設定補正量ＡＦＣｌｅａｎとされる。一方、上流側排気浄化触媒２０の酸素吸蔵量が増大すると、やがてステップＳ１７において積算酸素過不足量ΣＯＥＤが判定基準値ＯＥＤｒｅｆ以上であると判定され、ステップＳ１９へと進む。ステップＳ１９では、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈとされ、次いで、ステップＳ２０では、リーン設定フラグＦｒが０にリセットされる。次いで、処理サイクルを完了する。
【０１７２】
＜通常学習制御、即ち、学習値更新制御のフローチャート＞
図２０は、通常学習制御、即ち、学習値更新制御の制御ルーチンを示している。このルーチンも一定時間間隔の割り込みによって行われる。
【０１７３】
図２０に示されるように、まず初めに、ステップＳ２１において、学習値ｓｆｂｇの更新条件が成立しているか否かが判定される。更新条件が成立している場合とは、例えば、通常制御中であること、図２１に示される張付き学習制御ルーチンが実行されていないこと等が挙げられる。ステップＳ２１において、学習値ｓｆｂｇの更新条件が成立していると判定された場合には、ステップＳ２２へと進む。ステップＳ２２では、リーンフラグＦｌが０に設定されているか否かが判定される。ステップＳ２２において、リーンフラグＦｌが０に設定されていると判定された場合には、ステップＳ２３へと進む。
【０１７４】
ステップＳ２３では、空燃比補正量ＡＦＣが０よりも大きいか否か、すなわち目標空燃比がリーン空燃比であるか否かが判定される。ステップＳ２３において、空燃比補正量ＡＦＣが０よりも大きいと判定された場合には、ステップＳ２４へと進む。ステップＳ２４では、積算酸素過不足量ΣＯＥＤに現在の酸素過不足量ＯＥＤが加算される。
【０１７５】
その後、目標空燃比がリッチ空燃比へと切り替えられると、次の制御ルーチンではステップＳ２３において空燃比補正量ＡＦＣが０以下であると判定され、ステップＳ２５へと進む。ステップＳ２５では、リーンフラグＦｌが１にセットされ、次いで、ステップＳ２６ではＲｎが現在の積算酸素過不足量ΣＯＥＤの絶対値とされる。次いで、ステップＳ２７では、積算酸素過不足量ΣＯＥＤが０にリセットされ、処理サイクルを完了する。
【０１７６】
一方、リーンフラグＦｌが１にセットされると、次の制御ルーチンでは、ステップＳ２２からステップＳ２８へと進む。ステップＳ２８では、空燃比補正量ＡＦＣが０よりも小さいか否か、すなわち目標空燃比がリッチ空燃比であるか否かが判定される。ステップＳ２８において、空燃比補正量ＡＦＣが０よりも小さいと判定された場合にはステップＳ２９へと進む。ステップＳ２９では、積算酸素過不足量ΣＯＥＤに現在の酸素過不足量ＯＥＤが加算される。
【０１７７】
その後、目標空燃比がリーン空燃比へと切り替えられると、次の制御ルーチンではステップＳ２８において空燃比補正量ＡＦＣが０以上であると判定され、ステップＳ３０へと進む。ステップＳ３０では、リーンフラグＦｌが０にセットされ、次いで、ステップＳ３１では、Ｆｎが現在の積算酸素過不足量ΣＯＥＤの絶対値とされる。次いで、ステップＳ３２では、積算酸素過不足量ΣＯＥＤが０にリセットされる。次いで、ステップＳ３３では、ステップＳ２６で算出されたＲｎとステップＳ３１で算出されたＦｎに基づいて学習値ｓｆｂｇが更新され、処理サイクルを完了する。
【０１７８】
＜張付き学習制御のフローチャート＞
図２１は、張付き学習制御（理論空燃比張付き制御、リッチ張付き制御及びリーン張付き制御）の制御ルーチンを示している。このルーチンも一定時間間隔の割り込みによって行われる。
【０１７９】
図２１に示されるように、まず始めに、ステップＳ４１において、リーンフラグＦｌが０に設定されているか否かが判定される。ステップＳ４１において、リーンフラグＦｌが０に設定されていると判定された場合には、ステップＳ４２へと進む。ステップＳ４２では、空燃比補正量ＡＦＣが０よりも大きいか否か、すなわち目標空燃比がリーン空燃比であるか否かが判定される。ステップＳ４２において、空燃比補正量ＡＦＣが０以下であると判定された場合には、ステップＳ４３へと進む。
【０１８０】
ステップＳ４３では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン判定空燃比ＡＦｌｅａｎよりも大きいか否かが判定され、ステップＳ４４では、出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈとリーン判定空燃比ＡＦｌｅａｎとの間の値であるか否かが判定される。ステップＳ４３、Ｓ４４において、出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈよりも小さいと判定された場合、すなわち出力空燃比がリッチ空燃比であると判定された場合には処理サイクルを完了する。一方、ステップＳ４３、Ｓ４４において、出力空燃比ＡＦｄｗｎがリーン判定空燃比ＡＦｌｅａｎよりも大きいと判定された場合、すなわち出力空燃比がリーン空燃比であると判定された場合には、ステップＳ４５へと進む。
【０１８１】
ステップＳ４５では、積算排気ガス流量ΣＧｅに現在の排気ガス流量Ｇｅを加算した加算結果が新たな積算排気ガス流量ΣＧｅとされる。なお、排気ガス流量Ｇｅは、例えば、吸入空気流量検出器３９の出力等に基づいて算出される。次いで、ステップＳ４６では、ステップＳ４５で算出された積算排気ガス流量ΣＧｅが予め定められた所定量ΣＧｅｓｗ以上であるか否かが判定される。ステップＳ４６において、ΣＧｅがΣＧｅｓｗよりも小さいと判定された場合には処理サイクルを完了する。一方、積算排気ガス流量ΣＧｅが増大し、ステップＳ４６において、ΣＧｅがΣＧｅｓｗ以上であると判定された場合には、ステップＳ４７へと進む。ステップＳ４７では、前述した式（５）を用いて学習値ｓｆｂｇが更新される。
【０１８２】
一方、ステップＳ４４において、出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈとリーン判定空燃比ＡＦｌｅａｎとの間の値であると判定された場合には、ステップＳ４８へと進む。ステップＳ４８では、積算酸素過不足量ΣＯＥＤに現在の酸素過不足量ＯＥＤを加算した加算結果が新たな積算酸素過不足量ΣＯＥＤとされる。次いで、ステップＳ４９では、ステップＳ４８で算出された積算酸素過不足量ΣＯＥＤが予め定められた所定量ＯＥＤｓｗ以上であるか否かが判定される。ステップＳ４９において、ΣＯＥＤがＯＥＤｓｗよりも小さいと判定された場合には処理サイクルが終了する。一方、積算酸素過不足量ΣＯＥＤが増大し、ステップＳ４９において、ΣＯＥＤがＯＥＤｓｗ以上であると判定された場合には、ステップＳ５０へと進む。ステップＳ５０では、前述した式（４）を用いて学習値ｓｆｂｇが更新される。
【０１８３】
その後、目標空燃比が切り替えられ、ステップＳ４２において、空燃比補正量ＡＦＣが０よりも大きいと判定された場合には、ステップＳ５１へと進む。ステップＳ５１では、積算排気ガス流量ΣＧｅ及び積算酸素過不足量ΣＯＥＤが０にリセットされる。次いで、ステップＳ５２では、リーンフラグＦｌが１にセットされる。
【０１８４】
リーンフラグＦｌが１にセットされると、次の処理サイクルでは、ステップＳ４１からステップＳ５３へと進む。ステップＳ５３では、空燃比補正量ＡＦＣが０よりも小さいか否か、すなわち目標空燃比がリッチ空燃比であるか否かが判定される。ステップＳ５３において、空燃比補正量ＡＦＣが０以上であると判定された場合には、ステップＳ５４へと進む。
【０１８５】
ステップＳ５４では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈよりも小さいか否かが判定される。ステップＳ５４において、出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以上であると判定された場合、すなわち出力空燃比がリーン空燃比であると判定された場合には処理サイクルを完了する。一方、ステップＳ５４において、出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈよりも小さいと判定された場合、すなわち出力空燃比がリッチ空燃比であると判定された場合には、ステップＳ５５へと進む。
【０１８６】
ステップＳ５５では、積算排気ガス流量ΣＧｅに現在の排気ガス流量Ｇｅを加算した加算結果が新たな積算排気ガス流量ΣＧｅとされる。次いで、ステップＳ５６では、ステップＳ５５で算出された積算排気ガス流量ΣＧｅが予め定められた所定量ΣＧｅｓｗ以上であるか否かが判定される。ステップＳ５６において、ΣＧｅがΣＧｅｓｗよりも小さいと判定された場合には処理サイクルを完了する。一方、積算排気ガス流量ΣＧｅが増大し、ステップＳ５６において、ΣＧｅがΣＧｅｓｗ以上であると判定された場合には、ステップＳ５７へと進む。ステップＳ５７では、前述した式（５）を用いて学習値ｓｆｂｇが更新される。
【０１８７】
その後、目標空燃比が切り替えられて、ステップＳ５３において、空燃比補正量ＡＦＣが０よりも小さいと判定された場合には、ステップＳ５８へと進む。ステップＳ５８では、積算排気ガス流量ΣＧｅ及び積算酸素過不足量ΣＯＥＤが０にリセットされる。次いで、ステップＳ５９では、リーンフラグＦｌが０にセットされ、処理サイクルを完了する。
【０１８８】
＜空燃比センサの異常検出＞
図２２は、空燃比センサの異常検出ルーチンの第１実施例を示している。このルーチンも一定時間間隔の割り込みによって行われる。
図１９に示されるように、まず始めに、ステップＳ６０において、現在の学習値ｓｆｂｇが、前回の割り込み時における学習値ｓｆｂｇ１に予め定められた一定値αを加算した値（ｓｆｂｇ１＋α）よりも大きいか否かが判別される。現在の学習値ｓｆｂｇが（ｓｆｂｇ１＋α）よりも大きくないときにはステップＳ６４に進んで、前回の割り込み時における学習値ｓｆｂｇ１から予め定められた一定値αを減算した値（ｓｆｂｇ１―α）よりも小さいか否かが判別される。現在の学習値ｓｆｂｇが（ｓｆｂｇ１―α）よりも小さくないときにはステップＳ６８に進んで、前回の割り込み時における学習値ｓｆｂｇが学習値ｓｆｂｇ１とされる。次いでステップＳ６９では、機関の運転が開始されてから、予め設定されている設定時間を越えたか否かが判別され、機関の運転が開始されてから、予め設定されている設定時間を越えていないときには処理サイクルを完了する。
【０１８９】
一方、ステップＳ６０において、現在の学習値ｓｆｂｇが（ｓｆｂｇ１＋α）よりも大きいと判別されたときにはステップＳ６１に進んで、学習値ｓｆｂｇが一定値α以上増大したことを示す増大フラグがセットされているか否かが判別される。増大フラグがセットされていないときにはステップＳ６２に進んで、カウント値ＮＦが１だけインクリメントされる。次いでステップＳ６３では増大フラグがセットされ、学習値ｓｆｂｇが一定値α以上低下したことを示す低下フラグがリセットされる。次いでステップＳ６８に進む。次の処理サイクルにおいて再び現在の学習値ｓｆｂｇが（ｓｆｂｇ１＋α）よりも大きいと判別されたときには、増大フラグがセットされているのでステップＳ６１からステップＳ６８にジャンプし、従ってこのときにはカウント値ＮＦのインクリメント作用は行われない。即ち、図２２に示される例では、学習値ｓｆｂｇが（ｓｆｂｇ１＋α）以上続けて複数回増大してもカウント値ＮＦは１だけしかインクリメントされないようにしている。
【０１９０】
一方、ステップＳ６４において、現在の学習値ｓｆｂｇが（ｓｆｂｇ１―α）よりも小さいと判別されたときにはステップＳ６５に進んで、低下フラグがセットされているか否かが判別される。低下フラグがセットされていないときにはステップＳ６６に進んで、カウント値ＮＦが１だけインクリメントされる。次いでステップＳ６７において低下フラグがセットされ、増大フラグがリセットされる。次いでステップＳ６８に進む。次の処理サイクルにおいて再び現在の学習値ｓｆｂｇが（ｓｆｂｇ１―α）よりも小さいと判別されたときには、低下フラグがセットされているのでステップＳ６５からステップＳ６８にジャンプし、従ってこのときにはカウント値ＮＦのインクリメント作用は行われない。即ち、図２２に示される例では、学習値ｓｆｂｇが（ｓｆｂｇ１―α）以上続けて複数回低下してもカウント値ＮＦは１だけしかインクリメントされないようにしている。
【０１９１】
ステップＳ６９において、機関の運転が開始されてから、予め設定されている設定時間を越えたと判断されたときには、ステップＳ７０に進んで、カウント値ＮＦが予め定められたカウント値ＮＦＯよりも大きいか否かが判別される。カウント値ＮＦが予め定められたカウント値ＮＦＯよりも大きいときにはステップＳ７１にすすんで、下流側空燃比センサ４１に異常があると判定される。次いで、処理サイクルを完了する。
【０１９２】
図２３は、空燃比センサの異常検出ルーチンの第２実施例を示している。このルーチンも一定時間間隔の割り込みによって行われる。
図２３に示されるルーチンは、図２２に示されるルーチンと比べて、ステップＳ６４−１が追加されていることだけが異なっており、その他のステップについては図２２に示されるルーチンの対応する各ステップと同じである。従って以下、このステップＳ６４−１に関係する部分についてのみ説明する。
【０１９３】
さて、図２３に示されるルーチンを参照すると、ステップＳ６４において、現在の学習値ｓｆｂｇが（ｓｆｂｇ１―α）よりも小さいと判別されたときにはステップＳ６４−１に進んで、張付き学習制御が行われたか否かが判別される。張付き学習制御が行われていないときにはステップＳ６８にジャンプする。これに対し、張付き学習制御が行われたと判別されたときにはステップＳ６５に進んで、低下フラグがセットされているか否かが判別される。低下フラグがセットされていないときにはステップＳ６６に進んで、カウント値ＮＦが１だけインクリメントされる。
【０１９４】
即ち、図２３に示される例では、張付き学習制御により学習値ｓｆｂｇが一定値α以上低下せしめられたときにカウント値ＮＦが１だけインクリメントされ、張付き学習制御以外の何かによって学習値ｓｆｂｇが一定値α以上低下せしめられた場合には、カウント値ＮＦのインクリメント作用は行われない。即ち、前述したように、学習値ｓｆｂｇがなかなか収束しないために、学習値ｓｆｂｇが増大および低下を繰り返す場合がある。この例では、このような場合にはカウント値ＮＦのインクリメント作用が行われないように、学習値ｓｆｂｇの一定値以上の低下が張り付き制御によって行われたときに限って、カウント値ＮＦのインクリメント作用が行われるようにしている。
【符号の説明】
【０１９５】
１    機関本体
５    燃焼室
７    吸気ポート
９    排気ポート
１９    排気マニホルド
２０    上流側排気浄化触媒
２４    下流側排気浄化触媒
３１    ＥＣＵ
４０    上流側空燃比センサ
４１    下流側空燃比センサ
【図１】
2016023614.tif 000003
【図２】
2016023614.tif 000004
【図３】
2016023614.tif 000005
【図４】
2016023614.tif 000006
【図５】
2016023614.tif 000007
【図６】
2016023614.tif 000008
【図７】
2016023614.tif 000009
【図８】
2016023614.tif 000010
【図９】
2016023614.tif 000011
【図１０】
2016023614.tif 000012
【図１１】
2016023614.tif 000013
【図１２】
2016023614.tif 000014
【図１３】
2016023614.tif 000015
【図１４】
2016023614.tif 000016
【図１５】
2016023614.tif 000017
【図１６】
2016023614.tif 000018
【図１７】
2016023614.tif 000019
【図１８】
2016023614.tif 000020
【図１９】
2016023614.tif 000021
【図２０】
2016023614.tif 000022
【図２１】
2016023614.tif 000023
【図２２】
2016023614.tif 000024
【図２３】
2016023614.tif 000025