(57)【特許請求の範囲】
【請求項１】
排気通路に配設された酸素吸蔵機能を有する触媒と、同排気通路であって同触媒の上流位置に配設されるとともに排ガスの空燃比に応じた出力を発生する空燃比センサと、を備えた内燃機関に適用され、
前記機関に供給される空気と燃料とからなる混合気の空燃比が目標空燃比と一致するように同機関に供給される燃料の量を同目標空燃比に応じて変更する燃料供給量変更手段と、
所定のフューエルカット条件が成立したとき前記機関への燃料の供給を停止するフューエルカット制御を行い且つ同フューエルカット制御中にフューエルカット終了条件が成立したとき同フューエルカット制御を解除するフューエルカット手段と、
前記触媒の酸素吸蔵量を推定する酸素吸蔵量推定手段と、
前記フューエルカット制御が解除されたフューエルカット復帰時点から前記目標空燃比を理論空燃比よりもリッチ側の目標リッチ空燃比に設定するとともに同フューエルカット復帰時点以降において前記推定される酸素吸蔵量が所定の空燃比リッチ制御終了閾値以下となったとき前記目標空燃比を理論空燃比に設定する目標空燃比設定手段と、
を備えた内燃機関の空燃比制御装置において、
前記酸素吸蔵量推定手段は、前記フューエルカット復帰時点から所定の期間が経過するまでは前記目標空燃比に基づいて前記酸素吸蔵量を推定し、同所定の期間が経過した後は前記空燃比センサの出力に基づいて前記酸素吸蔵量を推定するように構成されたことを特徴とする空燃比制御装置。
【請求項２】
請求項１に記載の内燃機関の空燃比制御装置であって、
前記フューエルカット制御中に前記推定される酸素吸蔵量が所定の空燃比リッチ制御要求閾値以上となったとき空燃比リッチ制御要求を発生する空燃比リッチ制御要求発生手段を備え、
前記目標空燃比設定手段は、前記フューエルカット復帰時点において前記空燃比リッチ制御要求が発生している場合に前記目標空燃比を前記目標リッチ空燃比に設定するとともに、前記フューエルカット復帰時点において前記空燃比リッチ制御要求が発生していなければ前記目標空燃比を理論空燃比に設定するように構成された空燃比制御装置。
【請求項３】
排気通路に配設された酸素吸蔵機能を有する触媒と、同排気通路であって同触媒の上流位置に配設されるとともに排ガスの空燃比に応じた出力を発生する空燃比センサと、を備えた内燃機関に適用され、
前記機関に供給される空気と燃料とからなる混合気の空燃比が目標空燃比と一致するように同機関に供給される燃料の量を同目標空燃比に応じて変更する燃料供給量変更手段と、
所定のフューエルカット条件が成立したとき前記機関への燃料の供給を停止するフューエルカット制御を行い且つ同フューエルカット制御中にフューエルカット終了条件が成立したとき同フューエルカット制御を解除するフューエルカット手段と、
前記フューエルカット制御が解除されたフューエルカット復帰時点以降において前記触媒から放出される酸素の放出量である吸蔵酸素減少量を推定する吸蔵酸素減少量推定手段と、
前記フューエルカット復帰時点から前記目標空燃比を理論空燃比よりもリッチ側の目標リッチ空燃比に設定するとともに同フューエルカット復帰時点以降において前記推定される吸蔵酸素減少量が所定の空燃比リッチ制御終了閾値以上となったとき前記目標空燃比を理論空燃比に設定する目標空燃比設定手段と、
を備えた内燃機関の空燃比制御装置において、
前記吸蔵酸素減少量推定手段は、前記フューエルカット復帰時点から所定の期間が経過するまでは前記目標空燃比に基づいて前記吸蔵酸素減少量を推定し、同所定の期間が経過した後は前記空燃比センサの出力に基づいて前記吸蔵酸素減少量を推定するように構成されたことを特徴とする空燃比制御装置。
【請求項４】
請求項３に記載の内燃機関の空燃比制御装置であって、
前記フューエルカット制御中に前記触媒に吸蔵される酸素の増加量である吸蔵酸素増加量を推定する吸蔵酸素増加量推定手段と、
前記フューエルカット制御中に前記推定される吸蔵酸素増加量が所定の空燃比リッチ制御要求閾値以上となったとき空燃比リッチ制御要求を発生する空燃比リッチ制御要求発生手段と、
を備え、
前記目標空燃比設定手段は、前記フューエルカット復帰時点において前記空燃比リッチ制御要求が発生していれば前記目標空燃比を前記目標リッチ空燃比に設定するとともに、前記フューエルカット復帰時点において前記空燃比リッチ制御要求が発生していなければ前記目標空燃比を理論空燃比に設定するように構成された空燃比制御装置。
【請求項５】
請求項１乃至請求項４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記フューエルカット復帰時点以降において前記目標空燃比が前記目標リッチ空燃比に設定されている場合、前記目標空燃比に前記空燃比センサの空燃比検出公差に相当する空燃比を加えた仮想空燃比に基づいて前記触媒から放出される酸素の仮想放出量を算出する仮想放出量算出手段を備え、
前記目標空燃比設定手段は前記算出された仮想放出量が所定の空燃比リッチ制御強制終了閾値以上となったとき前記目標空燃比を理論空燃比に変更するように構成された空燃比制御装置。
【請求項６】
請求項１乃至請求項５の何れか一項に記載の内燃機関の空燃比制御装置において、
前記所定の期間の終了時点は、前記空燃比センサの出力により示される空燃比が前記フューエルカット復帰時点以降において理論空燃比近傍の所定の空燃比にまで低下した時点に定められている空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、排気通路に酸素吸蔵機能を有する触媒を備えるとともにフューエルカット制御を行う内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来から、内燃機関への燃料の供給を停止するフューエルカット制御の停止後に機関に供給される混合気の空燃比（以下、単に「機関の空燃比」とも称呼する。）を理論空燃比よりもリッチ側の空燃比に制御する空燃比制御装置が知られている。このような「理論空燃比よりもリッチ側の空燃比への制御」を、以下「空燃比リッチ制御」とも称呼する。また、フューエルカット制御が停止されて燃料の供給が再開される時点を「フューエルカット復帰時点」とも称呼する。
【０００３】
空燃比リッチ制御によれば、排気通路に備えられた触媒の酸素吸蔵量がフューエルカット制御中において過大となった場合であっても、その酸素吸蔵量をフューエルカット復帰時点以降において速やかに適正値近傍にまで低下させることができる。従って、「フューエルカット復帰後に触媒の酸素吸蔵量が過大であることに起因して窒素酸化物（ＮＯｘ）の排出量が多くなること」を回避することができる。
【０００４】
空燃比リッチ制御を行う従来の空燃比制御装置の一つは、空燃比リッチ制御中において触媒から放出される酸素の量（酸素放出量、即ち、酸素吸蔵量の減少量である「吸蔵酸素減少量」）を少なくとも「触媒上流の排気通路に設けられた空燃比センサの出力に基づく検出空燃比」に基づいて推定している。そして、この空燃比制御装置は、推定した酸素放出量が第１所定値に達したときに空燃比リッチ制御を停止し、機関の空燃比を理論空燃比に制御する（例えば、特許文献１を参照。）。
【０００５】
触媒上流の排気通路に設けられた空燃比センサの出力に基づく検出空燃比が空燃比センサの特性ズレ等に起因して実際の空燃比よりもリーン側の空燃比となった場合、この検出空燃比に基づいて算出される「空燃比リッチ制御中の酸素放出量」は実際の酸素放出量よりも少なくなる。従って、触媒の酸素吸蔵量が十分に低下しているにも拘らず、空燃比リッチ制御が継続される虞がある。
【０００６】
そこで、特許文献１に記載の空燃比制御装置は、更に、空燃比リッチ制御中の酸素放出量の標準値を少なくとも「空燃比リッチ制御中の目標空燃比」に基づいて推定する。そして、この空燃比制御装置は、推定した酸素放出量の標準値が第２所定値に達したときに空燃比リッチ制御を停止し、機関の空燃比を理論空燃比に制御する。これによれば、検出空燃比に基づく酸素放出量が第１所定値に達していない場合であっても、目標空燃比に基づいて推定した酸素放出量の標準値が第２所定値に達すれば、空燃比リッチ制御が停止される。この結果、空燃比リッチ制御が必要以上に継続されることがないので、過剰な空燃比リッチ制御によるエミッションの悪化を回避することができる。
【特許文献１】特開２００５−１５５４０１号公報
【発明の開示】
【０００７】
ところで、「フューエルカット制御の停止時点（即ち、フューエルカット復帰時点であって空燃比リッチ制御の開始時点）」から「機関から排出された排ガスが空燃比センサに到達するのに要する輸送遅れ時間及び空燃比センサの検出応答遅れ時間が経過する時点」までの期間（以下、「応答遅れ期間」と称呼する。）、空燃比センサの出力に基く検出空燃比は実際の空燃比よりも相当にリーン側の空燃比になる。このことは、空燃比センサの静的な空燃比検出精度が理想的であっても不可避的に発生する。従って、上記従来技術によれば、検出空燃比に基づく酸素放出量は実際の酸素放出量よりも少なく算出されるので、殆どの場合、検出空燃比に基づく酸素放出量が第１所定値に達する前に、目標空燃比に基づいて推定した酸素放出量の標準値が第２所定値に達する。換言すると、検出空燃比に基づいて酸素放出量を求めることが実質的に意味をもたない。従って、実際の排ガスの空燃比が目標空燃比と比較的大きく乖離している状況が生じると、空燃比リッチ制御の期間が短かすぎたり又は長すぎる事態が発生する。その結果、エミッションが悪化する虞がある。
【０００８】
本発明は上記課題に対処するために為されたものである。本発明の目的の一つは、フューエルカット復帰後における空燃比リッチ制御の期間を適切に制御することにより、フューエルカット復帰後におけるエミッションを良好にすることが可能な内燃機関の空燃比制御装置を提供することにある。本発明は、上記応答遅れ期間の経過後においては空燃比センサの出力に基づく検出空燃比の方が目標空燃比よりも実際の排ガスの空燃比に近い空燃比になるとの知見に基づいている。
【０００９】
具体的に述べると、本発明による内燃機関の空燃比制御装置は、排気通路に配設された酸素吸蔵機能を有する触媒と、同排気通路であって同触媒の上流位置に配設されるとともに排ガスの空燃比に応じた出力を発生する空燃比センサと、を備えた内燃機関に適用される。空燃比センサ及び触媒は、内燃機関が多気筒内燃機関である場合、各気筒に接続されたエキゾーストマニホールドの集合部（エキゾーストマニホールドの各気筒に接続された枝部が集合している部分）より下流の排気通路に介装される。従って、空燃比センサは触媒に流入する排ガスの空燃比に応じた出力を発生する。
【００１０】
この空燃比制御装置は、
前記機関に供給される空気と燃料とからなる混合気の空燃比が目標空燃比と一致するように同機関に供給される燃料の量を同目標空燃比に応じて変更する燃料供給量変更手段と、
所定のフューエルカット条件が成立したとき前記機関への燃料の供給を停止するフューエルカット制御を行い且つ同フューエルカット制御中にフューエルカット終了条件が成立したとき同フューエルカット制御を解除するフューエルカット手段と、
前記触媒の酸素吸蔵量を推定する酸素吸蔵量推定手段と、
前記フューエルカット制御が解除されたフューエルカット復帰時点から前記目標空燃比を理論空燃比よりもリッチ側の目標リッチ空燃比に設定するとともに同フューエルカット復帰時点以降において前記推定される酸素吸蔵量が所定の空燃比リッチ制御終了閾値以下となったとき前記目標空燃比を理論空燃比に設定する目標空燃比設定手段と、
を備える。
【００１１】
更に、前記酸素吸蔵量推定手段は、前記フューエルカット復帰時点から「所定の期間」が経過するまでは前記目標空燃比に基づいて前記酸素吸蔵量を推定し、「同所定の期間」が経過した後は前記空燃比センサの出力に基づいて前記酸素吸蔵量を推定するように構成される。
【００１２】
これによれば、フューエルカット停止時点（フューエルカット復帰時点）から目標空燃比が理論空燃比よりもリッチ側の目標リッチ空燃比に設定されるので、機関の空燃比は理論空燃比よりもリッチ側に制御される。
【００１３】
これにより、フューエルカット制御中に過大になった触媒の酸素吸蔵量は比較的速やかに減少する。その酸素吸蔵量を推定するにあたり、本制御装置の酸素吸蔵量推定手段は、前記フューエルカット復帰時点から所定の期間が経過するまでは、前記目標空燃比に基づいて前記酸素吸蔵量を推定する。この所定の期間は上述した「応答遅れ期間」に相当する期間である。この「所定の期間（応答遅れ期間）」は可変の期間であってもよく一定の期間であってもよい。後述するように、この所定の期間は、フューエルカット復帰時点を始点とし、前記空燃比センサの出力により示される空燃比が前記フューエルカット復帰時点以降において理論空燃比近傍の所定の空燃比にまで低下した時点を終点とする期間であることが望ましい。そして、本制御装置の酸素吸蔵量推定手段は、この所定の期間が経過した後は前記空燃比センサの出力に基づいて前記酸素吸蔵量を推定する。
【００１４】
前述したように、「応答遅れ期間」中は空燃比センサの出力に基づく検出空燃比は実際の空燃比よりもかなりリーン側の空燃比となる。従って、この応答遅れ期間中は、目標空燃比を用いて酸素吸蔵量が推定される。更に、応答遅れ期間の経過後は、空燃比センサの出力に基づく検出空燃比の方が目標空燃比よりも実際の空燃比に近づくので、その検出空燃比に基づいて酸素吸蔵量が推定される。この結果、酸素吸蔵量の推定精度が向上する。そして、このように精度良く推定された酸素吸蔵量が空燃比リッチ制御終了閾値以下となったときに目標空燃比が理論空燃比に戻され、空燃比リッチ制御が終了する。従って、空燃比リッチ制御を適切なタイミングにて終了することができる。
【００１５】
この空燃比制御装置は、
前記フューエルカット制御中に前記推定される酸素吸蔵量が所定の空燃比リッチ制御要求閾値以上となったとき空燃比リッチ制御要求を発生する空燃比リッチ制御要求発生手段を備え、
前記目標空燃比設定手段は、前記フューエルカット復帰時点において前記空燃比リッチ制御要求が発生している場合に前記目標空燃比を前記目標リッチ空燃比に設定するとともに、前記フューエルカット復帰時点において前記空燃比リッチ制御要求が発生していなければ前記目標空燃比を理論空燃比に設定するように構成されることが好適である。
【００１６】
これによれば、フューエルカット制御中に触媒の酸素吸蔵量が過大となったとき空燃比リッチ制御要求が発生させられ、それにより、フューエルカット復帰時点以降において空燃比リッチ制御が行われる。また、フューエルカット復帰時点において空燃比リッチ制御要求が発生していないとき、空燃比リッチ制御は開始されず、機関の空燃比は理論空燃比に維持される。従って、フューエルカット制御が行われたとしても、そのフューエルカット制御が短期間である等の理由により空燃比リッチ制御を実行しなくてもよい場合、空燃比リッチ制御を実行しないようにすることができる。その結果、無駄な空燃比リッチ制御が実行されないので、触媒の酸素吸蔵量が必要以上に低下せず、エミッションを良好に維持することができる。
【００１７】
本発明による他の内燃機関の空燃比制御装置は、上述した空燃比制御装置と同様の内燃機関に適用される。
【００１８】
そして、この空燃比制御装置は、
前記機関に供給される空気と燃料とからなる混合気の空燃比が目標空燃比と一致するように同機関に供給される燃料の量を同目標空燃比に応じて変更する燃料供給量変更手段と、
所定のフューエルカット条件が成立したとき前記機関への燃料の供給を停止するフューエルカット制御を行い且つ同フューエルカット制御中にフューエルカット終了条件が成立したとき同フューエルカット制御を解除するフューエルカット手段と、
前記フューエルカット制御が解除されたフューエルカット復帰時点以降において前記触媒から放出される酸素の放出量である吸蔵酸素減少量を推定する吸蔵酸素減少量推定手段と、
前記フューエルカット復帰時点から前記目標空燃比を理論空燃比よりもリッチ側の目標リッチ空燃比に設定するとともに同フューエルカット復帰時点以降において前記推定される吸蔵酸素減少量が所定の空燃比リッチ制御終了閾値以上となったとき前記目標空燃比を理論空燃比に設定する目標空燃比設定手段と、
を備える。
【００１９】
更に、前記吸蔵酸素減少量推定手段は、前記フューエルカット復帰時点から所定の期間が経過するまでは前記目標空燃比に基づいて前記吸蔵酸素減少量を推定し、同所定の期間が経過した後は前記空燃比センサの出力に基づいて前記吸蔵酸素減少量を推定するように構成される。
【００２０】
これによれば、フューエルカット復帰時点以降において目標空燃比が理論空燃比よりもリッチ側の空燃比に設定されるので、機関の空燃比は理論空燃比よりもリッチ側に制御される。これにより、フューエルカット制御中に過大になった酸素吸蔵量は触媒が酸素を放出することにより減少する。その酸素の放出量である「吸蔵酸素減少量」を推定するにあたり、本制御装置の吸蔵酸素減少量推定手段は、前記フューエルカット復帰時点から所定の期間が経過するまでは、前記目標空燃比に基づいて前記吸蔵酸素減少量を推定する。この所定の期間も上述した「応答遅れ期間」に相当する期間である。そして、本制御装置は、この所定の期間が経過した後は前記空燃比センサの出力に基づいて前記吸蔵酸素減少量を推定する。
【００２１】
前述したように、「応答遅れ期間」中、空燃比センサの出力に基づく検出空燃比は実際の空燃比よりもかなりリーン側の空燃比となる。従って、この応答遅れ期間中においては、目標空燃比に基づいて吸蔵酸素減少量が推定される。更に、応答遅れ期間の経過後は、空燃比センサの出力に基づく検出空燃比の方が目標空燃比よりも実際の空燃比に近づくので、その検出空燃比に基づいて吸蔵酸素減少量が推定される。この結果、吸蔵酸素減少量（酸素放出量）の推定精度が向上する。そして、このように精度良く推定された吸蔵酸素減少量が空燃比リッチ制御終了閾値以上となったときに目標空燃比が理論空燃比に戻され、空燃比リッチ制御が終了する。従って、空燃比リッチ制御を適切なタイミングにて終了することができる。
【００２２】
この空燃比制御装置は、
前記フューエルカット制御中に前記触媒に吸蔵される酸素の増加量である吸蔵酸素増加量を推定する吸蔵酸素増加量推定手段と、
前記フューエルカット制御中に前記推定される吸蔵酸素増加量が所定の空燃比リッチ制御要求閾値以上となったとき空燃比リッチ制御要求を発生する空燃比リッチ制御要求発生手段と、
を備え、
前記目標空燃比設定手段は、前記フューエルカット復帰時点において前記空燃比リッチ制御要求が発生していれば前記目標空燃比を前記目標リッチ空燃比に設定するとともに、前記フューエルカット復帰時点において前記空燃比リッチ制御要求が発生していなければ前記目標空燃比を理論空燃比に設定するように構成されることが好適である。
【００２３】
これによれば、フューエルカット制御中に吸蔵酸素増加量が過大となったとき（即ち、触媒の酸素吸蔵量が過大となっているであろうと予想されるとき）、空燃比リッチ制御要求が発生させられる。そして、フューエルカット停止時点（フューエルカット復帰時点）において空燃比リッチ制御要求が発生していると、それ以降において目標空燃比が理論空燃比よりもリッチ側の空燃比に設定されるので、機関の空燃比は理論空燃比よりもリッチ側に制御される。
【００２４】
更に、フューエルカット制御中に吸蔵酸素増加量が過大とならず、従って、フューエルカット復帰時点において空燃比リッチ制御要求が発生していないとき、空燃比リッチ制御は開始されず、機関の空燃比は理論空燃比に維持される。即ち、フューエルカット制御が行われたとしても、そのフューエルカット制御が短期間である等の理由により空燃比リッチ制御を実行しなくてもよい場合、空燃比リッチ制御を実行しないようにすることができる。その結果、無駄な空燃比リッチ制御が実行されないので、触媒の酸素吸蔵量が必要以上に低下せず、エミッションを良好に維持することができる。
【００２５】
上記何れかの空燃比制御装置は、
前記フューエルカット復帰時点以降において前記目標空燃比が前記目標リッチ空燃比に設定されている場合、前記目標空燃比に前記空燃比センサの空燃比検出公差に相当する空燃比を加えた仮想空燃比に基づいて前記触媒から放出される酸素の仮想放出量を算出する仮想放出量算出手段を備え、
前記目標空燃比設定手段は前記算出された仮想放出量が所定の空燃比リッチ制御強制終了閾値以上となったとき前記目標空燃比を理論空燃比に（強制的に）変更するように構成されることが好適である。
【００２６】
これによれば、製造上、最もリーン側の出力を発生する（公差内の）空燃比センサを用い、且つ、その空燃比センサが「上記応答遅れ期間」がない状態にて「触媒に流入する排ガスの空燃比」を検出したと仮定した場合における、フューエルカット復帰後（空燃比リッチ制御実行開始後）の酸素吸蔵量の減少量（即ち、酸素放出量、吸蔵酸素減少量）が「酸素の仮想放出量」として求められる。
【００２７】
従って、フューエルカット復帰後において最低でも「その仮想放出量に相当する量の酸素」は触媒から放出されていると考えることができる。それ故、上記構成によれば、その仮想放出量が空燃比リッチ制御強制終了閾値以上となったとき、前記酸素吸蔵量が空燃比リッチ制御終了閾値以下となっていなくとも或いは前記吸蔵酸素減少量が空燃比リッチ制御終了閾値以上になっていなくとも、空燃比リッチ制御が終了させられる。従って、フューエルカット復帰後の空燃比リッチ制御が必要以上に継続されることがないので、触媒の酸素吸蔵量が過小にならない。その結果、エミッションを良好に維持することが可能となる。
【００２８】
上述したように、前記所定の期間（応答遅れ時間、即ち、フューエルカット復帰時点以降において目標空燃比を用いて酸素吸蔵量又は吸蔵酸素減少量を推定する期間）の終了時点は、前記空燃比センサの出力により示される空燃比が前記フューエルカット復帰時点以降において理論空燃比近傍の所定の空燃比にまで低下した時点に定められていることが好適である。
【００２９】
前記空燃比センサの出力により示される空燃比が前記フューエルカット復帰時点以降において理論空燃比近傍の所定の空燃比にまで低下すれば、フューエルカット復帰後の排ガスが空燃比センサに到達し且つ空燃比センサは遅れなくそのガスの空燃比を検出していると考えられる。即ち、その時点以降において空燃比センサは排ガスの空燃比を適正に検出すると判断することができる。従って、このように前記所定の期間の終了時を決定することにより、酸素吸蔵量又は吸蔵酸素減少量をより精度良く推定することができる。その結果、空燃比リッチ制御をより適切なタイミングにて終了させることができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。
【００３１】
（第１実施形態）
図１は、第１実施形態に係る内燃機関の空燃比制御装置（以下、「第１制御装置」とも称呼する。）を火花点火式多気筒（本例では４気筒）内燃機関（ガソリンエンジン）１０に適用したシステムの概略構成を示している。この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０とを含んでいる。なお、図１は特定気筒の断面を示しているが、他の気筒も同様な構成を備えている。
【００３２】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これによりクランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００３３】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともにインテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。燃料噴射手段としてのインジェクタ３９は、噴射指示信号に応答して同噴射指示信号に含まれる指示噴射量の燃料を噴射するようになっている。
【００３４】
吸気系統４０は、インテークマニホールド４１、吸気管（吸気ダクト）４２、エアフィルタ４３、スロットル弁４４及びスロットル弁アクチュエータ４４ａを備えている。
【００３５】
インテークマニホールド４１は、各気筒の燃焼室２５に連通した吸気ポート３１に接続されている。より詳細には、インテークマニホールド４１は各吸気ポート３１に接続された複数の枝部と、それらの枝部が集合したサージタンク部と、を備えている。吸気管４２はサージタンク部に接続されている。インテークマニホールド４１及び吸気管４２は吸気通路を構成している。エアフィルタ４３は吸気管４２の端部に設けられている。スロットル弁４４は吸気管４２に回動可能設けられ、回動することにより吸気管４２が形成する吸気通路の開口断面積を変更するようになっている。スロットル弁アクチュエータ（スロットル弁駆動手段）４４ａは、ＤＣモータからなり、指示信号に応答してスロットル弁４４を回転駆動するようになっている。
【００３６】
排気系統５０は、エキゾーストマニホールド５１、エキゾーストパイプ（排気管）５２及び上流側触媒５３（以下、単に「触媒５３」とも称呼する。）を備えている。
【００３７】
エキゾーストマニホールド５１は、各気筒の燃焼室２５に連通した排気ポート３４に接続されている。より詳細には、エキゾーストマニホールド５１は各排気ポートに接続された複数の枝部と、それらの枝部が集合した集合部と、を備えている。エキゾーストパイプ５２は、エキゾーストマニホールド５１の集合部に接続されている。エキゾーストマニホールド５１及びエキゾーストパイプ５２は排気経路を構成している。なお、本明細書において、エキゾーストマニホールド５１の集合部とエキゾーストパイプ５２とが形成する排気経路を、便宜上「排気通路」と称呼する。
【００３８】
触媒５３は、セラミックからなる担持体に「触媒物質である貴金属」及び「セリア（CeO2)」を担持していて、酸素吸蔵・放出機能（単に「酸素吸蔵機能」又は「Ｏ２ストレージ機能」とも称呼する。）を有する三元触媒である。触媒５３はエキゾーストパイプ５２に配設（介装）されている。換言すると、触媒５３は排気通路の集合部（エキゾーストマニホールド５１の集合部）よりも下流の排気通路に配設されている。触媒５３は、スタート・キャタリティック・コンバータ（ＳＣ）又は第１触媒とも称呼される。
【００３９】
触媒５３を構成する三元触媒は、三元触媒に流入するガスの空燃比が所謂「理論空燃比を含む空燃比範囲であるウインドウＷ」の内にあるとき、未燃物（ＨＣ，ＣＯ等）を酸化するとともに窒素酸化物（ＮＯｘ）を還元することにより、これらの有害成分を高い効率で浄化する特性（触媒機能）を有する。
【００４０】
また、三元触媒は、酸素吸蔵機能により、空燃比が理論空燃比からある程度まで偏移したとしても、ＨＣ、ＣＯ及びＮＯｘを浄化することができる。即ち、機関の空燃比が理論空燃比よりもリーン側の空燃比となって三元触媒に流入するガスにＮＯｘが多量に含まれると、触媒はＮＯｘから酸素分子を奪って（ＮＯｘを還元し）、その奪った酸素分子を吸蔵する。このようにＮＯｘを還元し得る状態は、三元触媒が「実質的に還元剤（還元成分）を保持している状態である。」と表現することもできる。また、機関の空燃比が理論空燃比よりもリッチ側の空燃比になって三元触媒に流入するガスにＨＣ,ＣＯ等の未燃物（還元成分）が多量に含まれると、三元触媒は吸蔵している酸素分子を放出してこれらの未燃物に対して与え、これらの成分を酸化（浄化）する。このように未燃物を酸化し得る状態は、三元触媒が「実質的に酸化剤（酸化成分）を保持している状態である。」と表現することもできる。
【００４１】
更に、このシステムは、図１に示したように、熱線式エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、水温センサ６５、空燃比センサ６６及びアクセル開度センサ６７を備えている。
【００４２】
熱線式エアフローメータ６１は、吸気管４２内を流れる吸入空気の質量流量を検出し、その質量流量（機関１０の単位時間あたりの吸入空気量）Ｇａを表す信号を出力するようになっている。
スロットルポジションセンサ６２は、スロットル弁４４の開度を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
【００４３】
カムポジションセンサ６３は、インテークカムシャフトが所定角度から９０度、次いで９０度、更に１８０度回転する毎に一つのパルスを出力するようになっている。この信号はＧ２信号とも称呼される。
クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともにクランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。クランクポジションセンサ６４から出力されるパルスは後述する電気制御装置７０により機関回転速度ＮＥを表す信号に変換されるようになっている。更に、電気制御装置７０は、カムポジションセンサ６３及びクランクポジションセンサ６４からの信号に基いて、機関１０のクランク角度（絶対クランク角）を取得するようになっている。
水温センサ６５は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。
【００４４】
空燃比センサ６６は、エキゾーストマニホールド５１の集合部と触媒５３との間の位置においてエキゾーストマニホールド５１及びエキゾーストパイプ５２の何れか（即ち、排気通路）に配設されている。空燃比センサ６６は、空燃比センサ６６が配設された排気通路内の部位を流れる排ガス（被検出ガス）の空燃比に応じた出力値を出力するようになっている。
【００４５】
より具体的に述べると、空燃比センサ６６は限界電流式の酸素濃度センサである。空燃比センサ６６は、図２に示したように、被検出ガスの空燃比Ａ／Ｆ（従って、機関に供給される混合気の空燃比）に応じた電圧である出力値Vabyfsを出力するようになっている。この出力値Vabyfsは、被検出ガスの空燃比が理論空燃比であるときに値Vstoichに一致する。出力値Vabyfsは、被検出ガスの空燃比が大きくなる（リーンとなる）ほど増大する。
【００４６】
後述する電気制御装置７０は、図２に示したテーブル（マップ）Mapabyfsを記憶していて、そのテーブルに実際の出力値Vabyfsを適用することによって空燃比を検出するようになっている。この出力値Vabyfsに基づいて検出される空燃比を、以下「検出空燃比abyfs」と称呼する。即ち、空燃比センサ６６は、触媒５３に流入する排ガスの空燃比を取得する空燃比取得（検出）手段の一部を構成している。
【００４７】
再び、図１を参照すると、アクセル開度センサ６７は、運転者によって操作されるアクセルペダル８１の操作量を検出し、アクセルペダル８１の操作量Accpを表す信号を出力するようになっている。
【００４８】
電気制御装置７０は、互いにバスで接続されたＣＰＵ７１、ＣＰＵ７１が実行するルーチン（プログラム）、テーブル（ルックアップテーブル、マップ）及び定数等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、電源が投入された状態でデータを格納するとともに格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ７４、並びに、ＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。
【００４９】
インターフェース７５は、前記センサ６１〜６７と接続され、ＣＰＵ７１にセンサ６１〜６７からの信号を供給するとともに、ＣＰＵ７１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９及びスロットル弁アクチュエータ４４ａ等に駆動信号（指示信号）を送出するようになっている。
【００５０】
（作動）
次に、上記のように構成された第１制御装置による作動について説明する。なお、以下の説明において、空燃比センサ６６は活性化していると仮定する。更に、MapX(a)と表記されるテーブルは、変数aと値Xとの関係を規定するテーブルを意味することとする。また、値XをテーブルMapX(a)に基づいて求めるとは、値Xを現時点の変数aと、テーブルMapX(a)と、に基づいて求める（決定する）ことを意味することとする。なお、変数は２つ以上であってもよい。
【００５１】
＜理論空燃比制御＞
第１制御装置のＣＰＵ７１は、図３にフローチャートにより示した燃料噴射制御ルーチンを各気筒のクランク角が吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°）に一致する毎に繰り返し実行するようになっている。従って、任意の気筒のクランク角度が上記所定クランク角度になると、ＣＰＵ７１は、ステップ３００から処理を開始してステップ３０５に進み、フューエルカットフラグＸＦＣが「０」であるか否かを判定する。
【００５２】
このフューエルカットフラグＸＦＣは、その値が「０」のとき、機関１０の運転状態が通常運転状態にあってフューエルカット制御中でないことを示す。更に、フューエルカットフラグＸＦＣは、その値が「１」のとき、機関１０の運転状態がフューエルカット制御中であることを示す。フューエルカット制御は、機関１０への燃料の供給（インジェクタ３９からの燃料噴射）を停止する制御である。フューエルカットフラグＸＦＣの値は後述するルーチンにより変更される。フューエルカットＸＦＣは図示しないイグニッション・キー・スイッチがオフからオンに変更されたときに実行されるイニシャルルーチンにおいて「０」に設定される。
【００５３】
いま、機関１０の運転状態が通常運転状態にあってフューエルカット制御中でないと仮定する。この状態は図４に示したタイムチャートの時刻ｔ１以前に対応する。この場合、フューエルカットフラグＸＦＣは「０」となっている。従って、ＣＰＵ７１はステップ３０５にて「Ｙｅｓ」と判定してステップ３１０に進み、エアフローメータ６１により計測された吸入空気量Ｇａと、クランクポジションセンサ６４からの出力信号により得られる機関回転速度ＮＥと、テーブルMapMc(ＮＥ,Ｇａ)と、に基づいて、今回吸気行程を迎える気筒（以下、「燃料噴射気筒」とも称呼する。）に吸入される吸入空気量（筒内吸入空気量）Ｍｃ（ｋ）を算出する。なお、筒内吸入空気量Ｍｃ（ｋ）は機関１０の吸気通路における空気の挙動をモデル化した周知の空気量推定モデル（空気モデル）を用いて求められてもよい。筒内吸入空気Ｍｃ（ｋ）は算出される毎に機関１０の絶対クランク角度に対応されながらＲＡＭ７３に格納されて行く。
【００５４】
次に、ＣＰＵ７１はステップ３１５に進み、空燃比リッチ制御実行フラグＸＲＩＣＨの値が「０」であるか否かを判定する。この空燃比リッチ制御実行フラグＸＲＩＣＨは、その値が「１」のとき、機関の空燃比を理論空燃比よりもリッチ側の空燃比に制御する「空燃比リッチ制御」を実行すべきこと及び同制御を実行していることを示す。更に、空燃比リッチ制御実行フラグＸＲＩＣＨは、その値が「０」のとき、空燃比リッチ制御を実行するべきでないこと及び同制御を実行していないことを示す。空燃比リッチ制御実行フラグＸＲＩＣＨの値は後述するルーチンにより操作される。空燃比リッチ制御実行フラグＸＲＩＣＨの値は通常時においては「０」に設定されている。
【００５５】
従って、ＣＰＵ７１はステップ３１５にて「Ｙｅｓ」と判定してステップ３２０に進み、目標空燃比abyfrに理論空燃比stoich（例えば、１４．７）を設定する。その後、ＣＰＵ７１は、以下に述べるステップ３２５乃至ステップ３３５の処理を順に行い、ステップ３９５に進んで本ルーチンを一旦終了する。
【００５６】
ステップ３２５：ＣＰＵ７１は、筒内吸入空気量Ｍｃ（ｋ）を目標空燃比abyfr（この場合、理論空燃比stoich）で除すことによって、基本燃料噴射量Fbaseを求める。この基本燃料噴射量Fbaseは、機関の空燃比を目標空燃比abyfrに一致させるためのフィードフォワード量である。
【００５７】
ステップ３３０：ＣＰＵ７１は、基本燃料噴射量Fbaseに後述するルーチンによって別途求められているフィードバック補正量Dfbを加えることにより最終燃料噴射量（最終燃料供給量）Ｆｉを求める。
ステップ３３５：ＣＰＵ７１は、最終燃料噴射量Ｆｉの燃料を噴射するための噴射指示信号を燃料噴射気筒に対して設けられているインジェクタ３９に対して送出する。
以上により、最終燃料噴射量Ｆｉの燃料が燃料噴射気筒に供給され、その結果、機関の空燃比は目標空燃比abyfrである理論空燃比stoichに一致するように制御される。
【００５８】
＜フィードバック制御＞
ＣＰＵ７１はフィードバック補正量Dfbを算出するために、図５に示したフィードバック制御ルーチンを所定時間の経過毎に実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１は、ステップ５００から処理を開始し、ステップ５０５に進んでフィードバック条件が成立しているか否かを判定する。
【００５９】
フィードバック制御条件は、以下に述べる条件１〜３が総て成立したときにのみ成立し、条件１〜３の何れか一つでも不成立のとき不成立となる。
（条件１）空燃比センサ６６が活性化している。
（条件２）フューエルカット制御中でない（フューエルカットフラグＸＦＣの値が「０」である。）。
（条件３）フューエルカット復帰後（直前のフューエルカット制御の停止後）において「空燃比センサ６６の出力値Vabyfsと図２に示したテーブルMapabyfsとに基づいて求められる検出空燃比abyfs」が「理論空燃比近傍の所定値stioch＋Ａ（理論空燃比stoichよりも僅かな空燃比偏差Ａだけリーン側の空燃比、例えば、１７）」にまで一度でも低下した。
【００６０】
現時点において、条件１乃至条件３の総てが成立していると仮定する。この場合、フィードバック条件が成立するので、ＣＰＵ７１はステップ５０５にて「Ｙｅｓ」と判定し、以下に述べるステップ５１０乃至ステップ５４０の処理を順に行い、ステップ５９５に進んで本ルーチンを一旦終了する。
【００６１】
ステップ５１０：ＣＰＵ７１は、テーブルMapＮ(Ｍｃ（ｋ）,ＮＥ)に基づいて遅延ストローク数Ｎを決定する。ここで、遅延ストローク数Ｎは、燃料の噴射が指示されてから、この指示により噴射された燃料が燃焼に供されたときの混合ガスの空燃比が空燃比センサ６６の出力値Vabyfsとして現れるまでの間の遅延時間に相当するストローク数である。テーブルMapＮ(Ｍｃ（ｋ）,ＮＥ)は、実験による測定値に基づいて予め設定されている。
【００６２】
ステップ５１５：ＣＰＵ７１は、空燃比センサ６６の出力値Vabyfsと図２に示したテーブルMapabyfsとに基づいて現時点の検出空燃比abyfsを求める。
ステップ５２０：ＣＰＵ７１は、ＲＡＭ７３に記憶されている筒内吸入空気量Ｍｃのうちから現時点からＮストローク（Ｎ回の吸気行程）前に吸気行程を迎えた気筒の吸入空気量である筒内吸入空気量Ｍｃ(k-N)を読み出す。そして、ＣＰＵ７１は、筒内吸入空気量Ｍｃ(k-N)をステップ５１５にて取得した検出空燃比abyfsにより除することによって、現時点からＮストローク前の実際の筒内供給燃料量Fc(k-N)を求める。
【００６３】
ステップ５２５：ＣＰＵ７１は、ＲＡＭ７３に記憶されている目標空燃比abyfrのうちから、現時点からＮストローク前の目標空燃比abyfr(k-N)を読み出す。そして、ＣＰＵ７１は、現時点からＮストローク前の筒内吸入空気量Ｍｃ(k-N)を現時点からＮストローク前の目標空燃比abyfr(k-N)により除することによって、現時点からＮストローク前の目標筒内供給燃料量Fcr(k-N)を求める。
【００６４】
ステップ５３０：ＣＰＵ７１は、現時点からＮストローク前の目標筒内供給燃料量Fcr(k-N)から現時点からＮストローク前の実際の筒内供給燃料量Fc(k-N)を減じることにより筒内供給燃料量偏差DFc（＝Fcr(k-N)-Fc(k-N)）を求める。即ち、筒内供給燃料量偏差DFcは、現時点からＮストローク前の時点において気筒内に供給された燃料の過不足を表す量である。
【００６５】
ステップ５３５：ＣＰＵ７１は、下記（１）式と、筒内供給燃料量偏差DFcと、後述するステップ５４０にて算出される筒内供給燃料量偏差DFcの時間積分値SDFcと、に基づいてフィードバック補正量Dfbを求める。即ち、フィードバック補正量Dfbは、筒内供給燃料量偏差DFcを比例・積分処理（ＰＩ処理）することにより求められる。ここで、Gpは予め設定された比例ゲイン（比例定数）であり、Giは予め設定された積分ゲイン（積分定数）である。このフィードバック補正量Dfbは、上述した図３のステップ３３０にて燃料噴射量Ｆｉが決定される際に用いられる。
Dfb＝(Gp・DFc + Gi・SDFc)    …（１）
【００６６】
ステップ５３５：ＣＰＵ７１は、筒内供給燃料量偏差DFcと時間Δtとの積を、筒内供給燃料量偏差DFcの時間積分値SDFcであって現時点にて算出されている最新の時間積分値SDFcに加えることにより時間積分値SDFcの最新値を算出する。ここで、時間Δtは、本ルーチンが前回実行された時点から今回実行された時点までの時間である。
以上のように、フィードバック補正量Dfbは、目標空燃比abyfrと検出空燃比abyfsとに基づいて、検出空燃比abyfsを目標空燃比abyfrに一致させるために基本燃料噴射量Fbaseを補正すべき燃料量として算出される。
【００６７】
なお、ＣＰＵ７１がステップ５０５に進んだときフィードバック条件が成立していなければ、ＣＰＵ７１はステップ５０５にて「Ｎｏ」と判定し、以下に述べるステップ５４５及びステップ５５０の処理を順に行い、ステップ５９５に進んで本ルーチンを一旦終了する。
ステップ５４５：ＣＰＵ７１は、フィードバック補正量Dfbを「０」に設定する。これにより、フィードバック制御は実質的に行われない。
ステップ５５０：ＣＰＵ７１は、時間積分値SDFcを「０」に設定する。
【００６８】
＜フューエルカット制御（フューエルカット制御の開始）＞
ＣＰＵ７１は、図６に示したフューエルカット開始判定ルーチンを所定時間の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ６００から処理を開始し、ステップ６１０にてフューエルカット条件が成立したか否かを判定する。
【００６９】
フューエルカット条件は、以下に述べる条件１及び条件２が成立したときにのみ成立する。
（条件１）スロットル弁開度ＴＡが「０（又は所定開度以下）」である。即ち、スロットル弁４４が全閉である。なお、ＣＰＵ７１は、スロットル弁４４の開度を、アクセルペダルの操作量Accpが大きくなるほど大きくなるように制御している。
（条件２）機関回転速度ＮＥがフューエルカット回転速度ＮＥＦＣ以上である。
【００７０】
図４に示した時刻ｔ１以前において、フューエルカット条件は成立していない。従って、ＣＰＵ７１はステップ６１０にて「Ｎｏ」と判定し、ステップ６９５に直接進んで本ルーチンを一旦終了する。一方、時刻ｔ１にてフューエルカット条件が成立したと仮定する。この場合、ＣＰＵ７１はステップ６１０にて「Ｙｅｓ」と判定し、ステップ６２０に進んでフューエルカットフラグＸＦＣの値を「１」に設定する。この結果、ＣＰＵ７１は図３に示したルーチンのステップ３０５に進んだとき、そのステップ３０５にて「Ｎｏ」と判定し、ステップ３９５に直接進んで本ルーチンを一旦終了する。この結果、ステップ３３５の処理が実行されないので、燃料の噴射（供給）が停止し、フューエルカット制御が実行される。
【００７１】
＜酸素吸蔵量推定＞
更に、ＣＰＵ７１は、図７にフローチャートにより示した触媒５３の酸素吸蔵量ＯＳＡを推定するルーチンを所定時間（サンプリング時間tsample）の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ７００から処理を開始してステップ７０５に進み、フューエルカットフラグＸＦＣの値が「０」であるか否かを判定する。
【００７２】
現時点が時刻ｔ１以降であるとすると、フューエルカットフラグＸＦＣの値は「１」となっている。従って、ＣＰＵ７１はステップ７０５にて「Ｎｏ」と判定してステップ７１０に進み、所定時間（サンプリング時間tsample）内における酸素吸蔵量の変化量ΔＯＳＡを下記（２）式に従って計算する。この（２）式は触媒５３に流入するガスの１００％が大気であるという前提に基づいている。
ΔＯＳＡ＝０．２３・Ｇａ    …（２）
【００７３】
この（２）式において、値「０．２３」は大気中に含まれる酸素の重量割合である。Ｇａはサンプリング時間内においてエアフローメータ６１により検出された吸入空気量Ｇａである。なお、（２）式中の値Ｇａは、サンプリング期間中の吸入空気量Ｇａの平均値Ｇａaveに置換されてもよい。
【００７４】
次に、ＣＰＵ７１は以下に述べるステップ７１５乃至ステップ７３５の処理を順に行い、ステップ７９５に進んで本ルーチンを一旦終了する。
【００７５】
ステップ７１５：ＣＰＵ７１は下記（３）式に従って酸素吸蔵量ＯＳＡを更新する。即ち、ＣＰＵ７１は、現時点までに求められている酸素吸蔵量ＯＳＡに前記変化量ΔＯＳＡを加えることにより新たな酸素吸蔵量ＯＳＡを推定する。
ＯＳＡ＝ＯＳＡ＋ΔＯＳＡ    …（３）
【００７６】
ステップ７２０：ＣＰＵ７１は、酸素吸蔵量ＯＳＡが図示しないルーチンにより別途算出されている触媒５３の最大酸素吸蔵量Ｃmax以上であるか否かを判定する。そして、酸素吸蔵量ＯＳＡが最大酸素吸蔵量Ｃmax以上であるとき、ＣＰＵ７１はステップ７２５に進む。これに対し、酸素吸蔵量ＯＳＡが最大酸素吸蔵量Ｃmaxより小さいとき、ＣＰＵ７１はステップ７２０からステップ７３０に直接進む。なお、最大酸素吸蔵量Ｃmaxの推定方法は、例えば、特開２００５−１９４９８１号公報、特開２００６−０５７４６１号公報及び特開２００５−２０７２８６号公報等により周知である。
【００７７】
ステップ７２５：ＣＰＵ７１は、酸素吸蔵量ＯＳＡに最大酸素吸蔵量Ｃmaxを格納し、ステップ７３０に進む。このステップは、酸素吸蔵量ＯＳＡが最大酸素吸蔵量Ｃmaxより大きくなり得ないことに基づいて酸素吸蔵量ＯＳＡを最大酸素吸蔵量Ｃmaxにて制限するためのステップである。
【００７８】
ステップ７３０：ＣＰＵ７１は、酸素吸蔵量ＯＳＡが「０」以下であるか否かを判定する。そして、酸素吸蔵量ＯＳＡが「０」以下であるとき、ＣＰＵ７１はステップ７３５に進む。これに対し、酸素吸蔵量ＯＳＡが「０」より大きいとき、ＣＰＵ７１はステップ７３０からステップ７９５に直接進んで本ルーチンを一旦終了する。
ステップ７３５：ＣＰＵ７１は、酸素吸蔵量ＯＳＡに「０」を格納し、ステップ７９５に直接進んで本ルーチンを一旦終了する。このステップは、酸素吸蔵量ＯＳＡが「０」以下になり得ないことに基づいて酸素吸蔵量ＯＳＡを「０」にて制限するためのステップである。
【００７９】
＜空燃比リッチ制御要求判定＞
以上に説明した酸素吸蔵量ＯＳＡの算出ルーチンが実行されると、図４の時刻ｔ１以降に示したように、実際の酸素吸蔵量の増大にともなって、推定される酸素吸蔵量ＯＳＡも増大する。そして、その酸素吸蔵量ＯＳＡが第１閾値ｋ１・Ｃmax（１／２＜ｋ１＜１、例えば、ｋ１＝３／４）を超えたときに空燃比リッチ制御要求フラグＸＲＹＫの値を「１」に設定する。この第１閾値ｋ１・Ｃmaxは「空燃比リッチ制御要求閾値」とも称呼される。以下、空燃比リッチ制御要求フラグＸＲＹＫの値を操作するための「空燃比リッチ制御要求判定ルーチン」について図８を参照しながら説明する。
【００８０】
ＣＰＵ７１は、図８に示したルーチンを所定時間の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ８００から処理を開始しフューエルカットフラグＸＦＣの値が「１」であるか否かを判定する。このとき、フューエルカットフラグＸＦＣの値が「１」でなければ、ＣＰＵ７１はステップ８０５にて「Ｎｏ」と判定し、ステップ８９５に直接進んで本ルーチンを一旦終了する。
【００８１】
これに対し、現時点はフューエルカットが実行されている時刻ｔ１以降の時点である。従って、ＣＰＵ７１はステップ８０５にて「Ｙｅｓ」と判定しステップ８１０に進み、推定されている酸素吸蔵量ＯＳＡが第１閾値ｋ１・Ｃmax以上であるか否かを判定する。そして、図４の時刻ｔ１直後のように酸素吸蔵量ＯＳＡが第１閾値ｋ１・Ｃmaxより小さいと、ＣＰＵ７１はステップ８１０にて「Ｎｏ」と判定し、ステップ８９５に直接進んで本ルーチンを一旦終了する。
【００８２】
その後、所定の時間が経過して時刻ｔ２になると酸素吸蔵量ＯＳＡは増大して第１閾値ｋ１・Ｃmaxに到達する。従って、ＣＰＵ７１は時刻ｔ２の時点においてステップ８１０に進むと、このステップ８１０にて「Ｙｅｓ」と判定してステップ８１５に進む。そして、ＣＰＵ７１は、ステップ８１５にて空燃比リッチ制御要求フラグＸＲＹＫの値を「１」に設定し、ステップ８９５に進んで本ルーチンを一旦終了する。なお、空燃比リッチ制御要求フラグＸＲＹＫは、図示しないイニシャルルーチンにおいて「０」に設定されている。
【００８３】
このように、空燃比リッチ制御要求フラグＸＲＹＫは、フューエルカット制御中（フューエルカットフラグＸＦＣの値が「１」であるとき）において、酸素吸蔵量ＯＳＡが第１閾値ｋ１・Ｃmax以上となったときに「１」に設定される。後述するように、空燃比リッチ制御要求フラグＸＲＹＫの値が「１」に設定されていると、フューエルカット制御が停止した時点（即ち、フューエルカット復帰時点）以降において、機関の空燃比を理論空燃比よりもリッチ側の空燃比に設定する「空燃比リッチ制御」が実行される。
【００８４】
フューエルカット制御中に酸素吸蔵量ＯＳＡが第１閾値ｋ１・Ｃmax以上となったということは、触媒５３の酸素吸蔵量が過大となっているため、触媒５３はＮＯｘを大量には浄化し難い状態となっていることを意味する。従って、第１制御装置は、このような場合、フューエルカット制御が停止した後に空燃比を理論空燃比よりもリッチ側の空燃比に制御し、それにより、触媒５３の酸素吸蔵量をフューエルカット復帰後に速やかに低下させる。
【００８５】
＜フューエルカット復帰（フューエルカット制御の停止）＞
更に、ＣＰＵ７１は、図９に示したフューエルカット終了判定ルーチンを所定時間の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ９００から処理を開始し、ステップ９０５に進んでフューエルカットフラグＸＦＣの値が「１」であるか否かを判定する。即ち、ＣＰＵ７１は現在がフューエルカット制御中であるか否かを判定する。現在がフューエルカット制御中でなければ、ＣＰＵ７１はステップ９０５にて「Ｎｏ」と判定し、ステップ９９５に直接進んで本ルーチンを一旦終了する。
【００８６】
一方、図４に示した時刻ｔ１から時刻ｔ３の間、フューエルカット制御が実行されていてフューエルカットフラグＸＦＣの値は「１」となっている。従って、時刻ｔ１から時刻ｔ３の間、ＣＰＵ７１はステップ９０５にて「Ｙｅｓ」と判定してステップ９１０に進み、フューエルカット終了条件が成立したか否かを判定する。
【００８７】
フューエルカット終了条件は以下に述べる条件１及び条件２の何れかが成立したときに成立し、条件１及び条件２の双方が不成立のとき不成立となる。
（条件１）スロットル弁開度ＴＡが「０（前記所定開度）」より大きい。
（条件２）機関回転速度ＮＥが、フューエルカット回転速度ＮＥＦＣよりも所定回転数ΔＮだけ小さいフューエルカット復帰回転速度ＮＥＦＫ（ＮＥＦＫ＝ＮＥＦＣ−ΔＮ）より小さい。
【００８８】
図４に示した時刻ｔ１から時刻ｔ３の間において、フューエルカット終了条件は成立していない。従って、ＣＰＵ７１はステップ９１０にて「Ｎｏ」と判定し、ステップ９９５に直接進んで本ルーチンを一旦終了する。この結果、フューエルカットフラグＸＦＣの値は「１」に維持される。
【００８９】
その後、時間が経過して時刻ｔ３にてフューエルカット終了条件が成立したと仮定する。この場合、ＣＰＵ７１はステップ９０５及びステップ９１０の両ステップにて「Ｙｅｓ」と判定し、ステップ９１５に進んでフューエルカットフラグＸＦＣの値を「０」に設定する。この結果、ＣＰＵ７１は図３に示したルーチンのステップ３０５に進んだとき、そのステップ３０５にて「Ｙｅｓ」と判定してステップ３１０以降に進むようになる。従って、ステップ３３５が実行されるので、フューエルカット制御が停止され、燃料の噴射（供給）が再開される。
【００９０】
＜空燃比リッチ制御開始判定＞
更に、ＣＰＵ７１は、図１０にフローチャートにより示した「空燃比リッチ制御開始判定ルーチン」を所定時間の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ１０００から処理を開始してステップ１００５に進み、現時点が「フューエルカットフラグＸＦＣの値が「１」から「０」へ変化した直後であるか否か」を判定する。即ち、ＣＰＵ７１は、現時点がフューエルカット復帰時点であるか否かを判定する。
【００９１】
現時点が時刻ｔ３以前であるとすると、フューエルカットフラグＸＦＣの値は「１」に維持されている。従って、ＣＰＵ７１はステップ１００５にて「Ｎｏ」と判定してステップ１０９５に直接進んで本ルーチンを一旦終了する。
【００９２】
そして、時刻ｔ３になると、前述したようにフューエルカット終了条件が成立し、その結果、フューエルカットフラグＸＦＣの値が「１」から「０」へと変化する。この場合、ＣＰＵ７１はステップ１００５にて「Ｙｅｓ」と判定してステップ１０１０に進み、空燃比リッチ制御要求フラグＸＲＹＫの値が「１」であるか否かを判定する。
【００９３】
図４に示した例においては、時刻ｔ２にて空燃比リッチ制御要求フラグＸＲＹＫの値が「１」に設定されている。従って、ＣＰＵ７１はステップ１０１０にて「Ｙｅｓ」と判定し、ステップ１０１５にて空燃比リッチ制御実行フラグＸＲＩＣＨの値を「１」に設定する。その後、ＣＰＵ７１はステップ１０９５に進み、本ルーチンを一旦終了する。
【００９４】
この結果、ＣＰＵ７１が図３のルーチンのステップ３１５に進んだとき、ＣＰＵ７１はこのステップ３１５にて「Ｎｏ」と判定してステップ３４０に進み、目標空燃比abyfrに目標リッチ空燃比abyfrichを設定する。この目標リッチ空燃比abyfrichは理論空燃比stoichよりもリッチ側の空燃比である（例えば、１３）。その後、ＣＰＵ７１は、前述したステップ３２５乃至ステップ３３５の処理を順に行う。従って、ステップ３２５にて求められる基本燃料噴射量Fbaseが目標リッチ空燃比abyfrichを達成する値（目標空燃比abyfrが理論空燃比stoichである場合よりも大きい値）になるので、空燃比リッチ制御が実行される。
【００９５】
なお、この時点（時刻ｔ３直後）においては、フューエルカット復帰直後であるから、空燃比センサ６６にはフューエルカット中の排ガス（即ち、空気のみ）が到達している。従って、空燃比センサ６６の出力値VabyfsとテーブルMapabyfsとに基づいて求められる検出空燃比abyfsは、理論空燃比近傍の所定値stioch＋Ａよりも大きいので、上記フィードバック条件の条件３が不成立である。従って、ＣＰＵ７１は図５のステップ５０５にて「Ｎｏ」と判定してステップ５４５及びステップ５５０に進むので、空燃比のフィードバック制御は実行されない。
【００９６】
また、ＣＰＵ７１は、図１０のステップ１０１０に進んだとき、それ以前において空燃比リッチ制御要求フラグＸＲＹＫの値が「１」に設定されていないと（空燃比リッチ制御要求フラグＸＲＹＫの値が「０」であると）、そのステップ１０１０にて「Ｎｏ」と判定し、ステップ１０９５に直接進んで本ルーチンを一旦終了する。その結果、空燃比リッチ制御実行フラグＸＲＩＣＨの値は「０」に維持されるので、ＣＰＵ７１が図３のルーチンのステップ３１５に進んだとき、ＣＰＵ７１はこのステップ３１５にて「Ｙｅｓ」と判定してステップ３２０に進む。従って、目標空燃比abyfrは理論空燃比stoichに設定されるから、空燃比リッチ制御は実行されず、機関の空燃比は理論空燃比に制御される。なお、空燃比リッチ制御実行フラグＸＲＩＣＨも、図示しないイニシャルルーチンにおいて「０」に設定されている。
【００９７】
＜フューエルカット復帰後の酸素吸蔵量の推定、及び、空燃比リッチ制御終了判定＞
ところで、ＣＰＵ７１は図７のルーチンを繰り返し実行することにより、酸素吸蔵量ＯＳＡの推定を継続している。従って、この段階（時刻ｔ３直後）においてＣＰＵ７１が図７のステップ７００から処理を開始してステップ７０５に進んだとき、フューエルカットフラグＸＦＣの値は「０」となっているから、ＣＰＵ７１はステップ７０５にて「Ｙｅｓ」と判定してステップ７４０に進む。
【００９８】
そして、ＣＰＵ７１は、ステップ７４０にて、直前のフューエルカット復帰後から現時点までに「空燃比センサ６６の出力値Vabyfsと図２に示したテーブルMapabyfsとに基づいて求められる検出空燃比abyfs」が「理論空燃比近傍の所定値stioch＋Ａ」にまで一度でも低下したか否かを判定する。この判定条件は、フィードバック制御条件の条件３と同じである。前述したように、時刻ｔ３直後はフューエルカット復帰直後であるから、空燃比センサ６６にはフューエルカット中の排ガス（即ち、空気のみ）が到達している。また、フューエルカット復帰後の排ガスが空燃比センサ６６に到達した場合であっても、空燃比センサ６６の出力値Vabyfsはその排ガスの到達時点よりも僅かに遅れて変化する。従って、空燃比センサ６６の出力値VabyfsとテーブルMapabyfsとに基づいて求められる検出空燃比abyfsは、フューエルカット復帰直後（時刻ｔ３直後）において理論空燃比近傍の所定値stioch＋Ａ以下になっていない。
【００９９】
このため、ＣＰＵ７１はステップ７４０にて「Ｎｏ」と判定してステップ７４５に進み、後述するステップ７５５にて「酸素吸蔵量の変化量ΔＯＳＡを計算する際に使用する計算用空燃比abyfc」に目標空燃比abyfrを設定する。なお、図４に示した例において、目標空燃比abyfrは先に説明した図３のステップ３４０にて目標リッチ空燃比abyfrichに設定されている。
【０１００】
次に、ＣＰＵ７１はステップ７５５に進み、下記（４）式に基づいて酸素吸蔵量の変化量ΔＯＳＡを計算する。（４）式の値「０．２３」は、前述したように、大気中に含まれる酸素の重量割合である。ｍｆｒは所定時間（サンプリング時間tsample）内の燃料噴射量Ｆｉの合計量（サンプリング時間tsample内において機関１０に供給された燃料の総量）である。
ΔＯＳＡ＝０．２３・ｍｆｒ・（abyfc − stoich）    …（４）
【０１０１】
その後、ＣＰＵ７１は、前述したステップ７１５乃至ステップ７３５の処理を行い、ステップ７９５に進んで本ルーチンを一旦終了する。従って、フューエルカット復帰直後から所定の期間（前述した「応答遅れ時間」）においては、酸素吸蔵量ＯＳＡは目標空燃比abyfr（この場合には目標リッチ空燃比abyfrich）に基づいて推定されて行く。
【０１０２】
時刻ｔ３以降においては空燃比リッチ制御が実行されている。従って、機関１０からは酸素の量に対して過剰な量の未燃物が排出される。そのため、触媒５３は吸蔵している酸素を放出するから、酸素吸蔵量は次第に低下してゆく。一方、上述したように、計算用空燃比abyfcには理論空燃比stoichよりも小さい目標リッチ空燃比abyfrichが設定されている。従って、（４）式により求められる酸素吸蔵量の変化量ΔＯＳＡは負の値となるので、図７のステップ７１５の処理（上記（３）式に基づく計算）によって推定される酸素吸蔵量ＯＳＡも実際の酸素吸蔵量の低下に見合うように次第に減少する。
【０１０３】
その後、時刻ｔ４になると、「空燃比センサ６６の出力値Vabyfsと図２に示したテーブルMapabyfsとに基づいて求められる検出空燃比abyfs」が「理論空燃比近傍の所定値stioch＋Ａ」にまで低下する。従って、ＣＰＵ７１は図７のステップ７４０に進んだとき、このステップ７４０にて「Ｙｅｓ」と判定し、計算用空燃比abyfcにその検出空燃比abyfsを設定する。
【０１０４】
つまり、検出空燃比abyfsが理論空燃比近傍の所定値stioch＋Ａにまで低下した時刻ｔ４以降においては、空燃比リッチ制御に基づいて機関１０に供給された過濃な混合気の燃焼により生成された排ガスが空燃比センサ６６に到達しており、且つ、空燃比センサ６６がセンサ自身の検出応答遅れのない状態にてその排ガスの空燃比を検出していると考えることができる。従って、検出空燃比abyfsの方が目標空燃比abyfrよりもより触媒５３に流入するガスの空燃比を正確に検出している。従って、第１制御装置は、時刻ｔ４以降（応答遅れ期間である時刻ｔ３〜時刻ｔ４の経過後）において、検出空燃比abyfsに基づいて酸素吸蔵量ＯＳＡ（酸素吸蔵量の変化量ΔＯＳＡ）を推定するのである。
【０１０５】
なお、時刻ｔ４にて検出空燃比abyfsが理論空燃比近傍の所定値stioch＋Ａにまで低下すると、上述したフィードバック条件の条件３が成立するので、フィードバック条件が成立する。従って、ＣＰＵ７１は図５のステップ５０５にて「Ｙｅｓ」と判定するようになるので、フィードバック制御が再開される。
【０１０６】
そして、図４に示した例においては、時刻ｔ４の後の時刻ｔ５にて、推定されている酸素吸蔵量ＯＳＡが第２閾値ｋ２・Ｃmax（０＜ｋ２＜１／３、例えば、ｋ２＝１／４であり、第２閾値ｋ２・Ｃmaxは第１閾値ｋ１・Ｃmaxより小さい。）に到達する。この第２閾値ｋ２・Ｃmaxは「空燃比リッチ制御終了閾値」とも称呼される。このとき、ＣＰＵ７１は、図１１に示した「空燃比リッチ制御終了判定ルーチン」により空燃比リッチ制御を終了する。
【０１０７】
具体的に述べると、ＣＰＵ７１は、図１１のルーチンを所定時間の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ１１００から処理を開始してステップ１１０５に進み、空燃比リッチ制御実行フラグＸＲＩＣＨの値が「１」であるか否かを判定する。
【０１０８】
図４の例では、時刻ｔ３以降において空燃比リッチ制御実行フラグＸＲＩＣＨの値は「１」に設定されている。従って、ＣＰＵ７１はステップ１１０５にて「Ｙｅｓ」と判定し、ステップ１１１０に進んで「推定されている酸素吸蔵量ＯＳＡが第２閾値ｋ２・Ｃmax以下であるか否か」を判定する。そして、図４の時刻ｔ３−時刻５の期間のように酸素吸蔵量ＯＳＡが第２閾値ｋ２・Ｃmaxより大きいと、ＣＰＵ７１はステップ１１１０にて「Ｎｏ」と判定し、ステップ１１９５に直接進んで本ルーチンを一旦終了する。この結果、空燃比リッチ制御実行フラグＸＲＩＣＨの値が「１」に維持されるので、空燃比リッチ制御が継続する。
【０１０９】
その後、酸素吸蔵量ＯＳＡは更に減少し、時刻ｔ５になると第２閾値ｋ２・Ｃmaxにまで減少する。従って、ＣＰＵ７１は時刻ｔ５の時点においてステップ１１１０に進むと、このステップ１１１０にて「Ｙｅｓ」と判定し、ステップ１１１５に進んで空燃比リッチ制御実行フラグＸＲＩＣＨの値を「０」に設定する。次いで、ＣＰＵ７１は、ステップ１１２０に進んで空燃比リッチ制御要求フラグＸＲＹＫの値を「０」に設定し、ステップ１１９５に進んで本ルーチンを一旦終了する。
【０１１０】
この結果、ＣＰＵ７１が図３のルーチンのステップ３１５に進んだとき、ＣＰＵ７１はこのステップ３１５にて「Ｙｅｓ」と判定してステップ３２０に進み、目標空燃比abyfrに理論空燃比stoichを設定する。その後、ＣＰＵ７１は、前述したステップ３２５乃至ステップ３３５の処理を順に行う。従って、空燃比リッチ制御が終了され、機関の空燃比は再び理論空燃比に一致するように制御される。
【０１１１】
なお、ＣＰＵ７１が図１１のステップ１１０５に進んだとき、空燃比リッチ制御実行フラグＸＲＩＣＨの値が「０」であれば（即ち、空燃比リッチ制御が実行されていなければ）、ＣＰＵ７１はステップ１１０５にて「Ｎｏ」と判定し、ステップ１１９５に直接進んで本ルーチンを一旦終了する。
【０１１２】
以上、説明したように、第１制御装置は、
機関１０に供給される空気と燃料とからなる混合気の空燃比が目標空燃比abyfrと一致するように機関１０に供給される燃料の量（最終燃料噴射量Ｆｉ）を目標空燃比abyfrに応じて変更する燃料供給量変更手段（図３のステップ３１０乃至ステップ３４０、図５のステップ５０５乃至ステップ５４０を参照。）と、
所定のフューエルカット条件が成立したとき前記機関への燃料の供給を停止するフューエルカット制御を行い且つ同フューエルカット制御中にフューエルカット終了条件が成立したとき同フューエルカット制御を解除するフューエルカット手段（図３のステップ３０５、図６のルーチン及び図９のルーチンを参照。）と、
触媒５３の酸素吸蔵量ＯＳＡを推定する酸素吸蔵量推定手段（図７のルーチンを参照。）と、
フューエルカット制御中に前記推定された酸素吸蔵量ＯＳＡが所定の第１閾値（ｋ１・Ｃmax）以上となったとき、空燃比リッチ制御要求フラグＸＲＹＫの値を「１」に設定することにより空燃比リッチ制御要求を発生する空燃比リッチ制御要求発生手段（図８のルーチンを参照。）と、
目標空燃比設定手段と、を備える。
【０１１３】
その目標空燃比設定手段は、フューエルカット制御が解除されたフューエルカット復帰時点において前記空燃比リッチ制御要求が発生していれば目標空燃比abyfrを理論空燃比stoichよりもリッチ側の目標リッチ空燃比abyfrichに設定する（図１０のルーチンにおける空燃比リッチ制御実行フラグＸＲＩＣＨの「１」への設定、図３のルーチンのステップ３１５及びステップ３４０を参照。）。
【０１１４】
更に、目標空燃比設定手段は、目標空燃比abyfrが目標リッチ空燃比abyfrichに設定されているとき、フューエルカット復帰時点以降において推定される酸素吸蔵量ＯＳＡが所定の第２閾値ｋ２・Ｃmax以下となったとき目標空燃比abyfrを理論空燃比stoichに設定する（図１１のルーチンのステップ１１１５における空燃比リッチ制御実行フラグＸＲＩＣＨの「０」への設定、図３のルーチンのステップ３１５及びステップ３２０を参照。）。
【０１１５】
加えて、目標空燃比設定手段は、フューエルカット復帰時点において空燃比リッチ制御要求が発生していなければ目標空燃比abyfrを理論空燃比stoichに設定する（図１０のルーチンのステップ１００５、ステップ１０１０、図３のルーチンのステップ３１５及びステップ３２０を参照。）。
【０１１６】
そして、前記酸素吸蔵量推定手段は、フューエルカット復帰時点から所定の期間（上記応答遅れ期間）が経過するまでは（図７のステップ７４０を参照。）、目標空燃比abyfrに基づいて酸素吸蔵量ＯＳＡを推定し（図７のステップ７４５、ステップ７５５及びステップ７１５を参照。）、その所定の期間が経過した後は空燃比センサ６６の出力に基づいて酸素吸蔵量ＯＳＡを推定する（図７のステップ７４０、ステップ７５０、ステップ７５５及びステップ７１５を参照。）。
【０１１７】
フューエルカット復帰後の「応答遅れ期間」中は空燃比センサ６６の出力に基づく検出空燃比abyfsは実際の空燃比よりもかなりリーン側の空燃比となる。従って、第１制御装置は、応答遅れ期間中、目標空燃比abyfrを用いて酸素吸蔵量ＯＳＡを推定する。これにより酸素吸蔵量ＯＳＡが過大に算出されない。更に、応答遅れ期間の経過後には空燃比センサの出力に基づく検出空燃比abyfsの方が目標空燃比abyfrよりも実際の空燃比に近づくという知見に基き、第１制御装置は応答遅れ期間の経過後において検出空燃比abyfsに基づいて酸素吸蔵量ＯＳＡを推定する。この結果、酸素吸蔵量ＯＳＡの推定精度が向上する。従って、第１制御装置は、そのように精度良く推定された酸素吸蔵量ＯＳＡが第２閾値ｋ２・Ｃmax以下となったときに空燃比リッチ制御を終了するので、空燃比リッチ制御を適切なタイミングにて終了することができる。
【０１１８】
更に、第１制御装置は、フューエルカット復帰時点以降において目標空燃比abyfrを用いて酸素吸蔵量ＯＳＡを推定する期間（即ち、前記所定の期間（応答遅れ時間））の終了時点を、空燃比センサ６６の出力Vabyfsにより示される空燃比（検出空燃比）abyfsが「フューエルカット復帰時点以降において理論空燃比近傍の所定の空燃比stioch＋Ａにまで低下した時点」に定めている。これは、この時点以降、検出空燃比abyfsの方が目標空燃比abyfrよりも「触媒５３に流入する排ガスの実際の空燃比」を精度良く表すからである。従って、第１制御装置は、酸素吸蔵量ＯＳＡを求めるための空燃比を目標空燃比abyfrから検出空燃比abyfsに適切なタイミングにて切り換えることができる。その結果、酸素吸蔵量ＯＳＡの推定精度が一層向上するので、第１制御装置は空燃比リッチ制御をより適切なタイミングにて終了することができる。
【０１１９】
（第２実施形態）
次に、本発明の第２実施形態に係る内燃機関の空燃比制御装置（以下、「第２制御装置」とも称呼する。）について説明する。第２制御装置は、吸蔵酸素増加量と吸蔵酸素減少量（酸素放出量）とを別々に推定し、それらに基づいて空燃比リッチ制御の開始及び終了を判定する点において第１制御装置と相違している。
【０１２０】
第２制御装置のＣＰＵ７１は、図３、図５、図６及び図９に示したルーチンを実行するとともに、図１２、及び、図１４〜図１６にフローチャートにより示したルーチンを所定時間の経過毎に繰り返し実行するようになっている。以下、これらの図面に示したルーチンに沿って第２制御装置の作動を説明する。
【０１２１】
＜空燃比リッチ制御要求判定＞
所定のタイミングになると、ＣＰＵ７１は図１２のステップ１２００から処理を開始し、ステップ１２１０に進んでフューエルカットフラグＸＦＣの値が「１」であるか否かを判定する。このとき、フューエルカットフラグＸＦＣの値が「１」でなければ、ＣＰＵ７１はステップ１２１０にて「Ｎｏ」と判定してステップ１２２０に進み、吸蔵酸素増加量ＯＳＡＫＺを「０（初期値）」に設定する。その後、ＣＰＵ７１は、ステップ１２９５に直接進んで本ルーチンを一旦終了する。このように、吸蔵酸素増加量ＯＳＡＫＺはフューエルカット制御が行われていないとき「０」に設定される（図１３の時刻ｔ１以前を参照。）。
【０１２２】
一方、ＣＰＵ７１は図６に示したフューエルカット開始判定ルーチンを繰り返し実行しているので、フューエルカット条件が成立するとフューエルカットフラグＸＦＣの値を「１」に設定する。これにより、フューエルカット制御が開始する（図１３の時刻ｔ１を参照。）。このとき、ＣＰＵ７１が図１２のステップ１２１０に進むと、ＣＰＵ７１はそのステップ１２１０にて「Ｙｅｓ」と判定し、以下に述べるステップ１２３０及びステップ１２４０の処理を順に行う。
【０１２３】
ステップ１２３０：ＣＰＵ７１は、所定時間（サンプリング時間tsample）内における吸蔵酸素増加量ＯＳＡＫＺの変化量ΔＯＳＡＫＺを下記（５）式に従って計算する。この（５）式は上述した（２）式（図７のステップ７１０を参照。）と同様の式であり、フューエルカット制御中においては触媒５３に流入するガスの１００％が大気であるという前提に基づいている。即ち、値「０．２３」は大気中に含まれる酸素の重量割合である。Ｇａはサンプリング時間内においてエアフローメータ６１により検出された吸入空気量Ｇａである。なお、（５）式中の値Ｇａは、サンプリング期間中の吸入空気量Ｇａの平均値Ｇａaveに置換されてもよい。
ΔＯＳＡＫＺ＝０．２３・Ｇａ    …（５）
【０１２４】
ステップ１２４０：ＣＰＵ７１は下記（６）式に従って吸蔵酸素増加量ＯＳＡＫＺを更新する。即ち、ＣＰＵ７１は、現時点までに求められている吸蔵酸素増加量ＯＳＡＫＺに前記変化量ΔＯＳＡＫＺを加えることにより新たな吸蔵酸素増加量ＯＳＡＫＺを推定する。
ＯＳＡＫＺ＝ＯＳＡＫＺ＋ΔＯＳＡＫＺ    …（６）
【０１２５】
次に、ＣＰＵ７１はステップ１２５０に進み、吸蔵酸素増加量ＯＳＡＫＺが第３閾値ｋ３・Ｃmax以上であるか否かを判定する。係数ｋ３も上記第１閾値を決定する係数ｋ１と同様、１／２から１までの間の値であって、例えば、３／４に設定されている。この第３閾値ｋ３・Ｃmaxは「空燃比リッチ制御要求閾値」とも称呼される。そして、図１３の時刻ｔ１直後のように吸蔵酸素増加量ＯＳＡＫＺが第３閾値ｋ３・Ｃmaxより小さいと、ＣＰＵ７１はステップ１２５０にて「Ｎｏ」と判定し、ステップ１２９５に直接進んで本ルーチンを一旦終了する。
【０１２６】
これに対し、図１３の時刻ｔ２に示したように、吸蔵酸素増加量ＯＳＡＫＺが第３閾値ｋ３・Ｃmax以上となったとき、ＣＰＵ７１はステップ１２５０にて「Ｙｅｓ」と判定してステップ１２６０に進み、空燃比リッチ制御要求フラグＸＲＹＫの値を「１」に設定する。その後、ＣＰＵ７１はステップ１２９５に直接進んで本ルーチンを一旦終了する。
【０１２７】
フューエルカット制御中に吸蔵酸素増加量ＯＳＡＫＺが第３閾値ｋ３・Ｃmax以上となったということは、触媒５３の酸素吸蔵量が過大となっているため、触媒５３はＮＯｘを大量には浄化し難い状態となっていることを意味する。従って、第２制御装置は、このような場合、フューエルカット制御が停止した後に空燃比を理論空燃比よりもリッチ側の空燃比に制御し、それにより、触媒５３の酸素吸蔵量をフューエルカット復帰後に速やかに低下させるように、空燃比リッチ制御要求フラグＸＲＹＫの値を「１」に設定する。
【０１２８】
＜空燃比リッチ制御開始判定＞
所定のタイミングになると、ＣＰＵ７１は図１４のステップ１４００から処理を開始してステップ１４１０に進み、現時点が「フューエルカットフラグＸＦＣの値が「１」から「０」へ変化した直後であるか否か」を判定する。即ち、ＣＰＵ７１は、現時点がフューエルカット復帰時点であるか否かを判定する。
【０１２９】
図１３に示した例においては時刻ｔ３にてフューエルカット条件が成立する。従って、現時点が時刻ｔ３以前であるとすると、フューエルカットフラグＸＦＣの値は「１」に維持されている。このため、ＣＰＵ７１はステップ１４１０にて「Ｎｏ」と判定し、ステップ１４９５に直接進んで本ルーチンを一旦終了する。
【０１３０】
一方、ＣＰＵ７１は図９に示したフューエルカット終了判定ルーチンを繰り返し実行しているので、時刻ｔ３にてフューエルカット終了条件が成立するとフューエルカットフラグＸＦＣの値を「１」から「０」に変更する（ステップ９１５を参照。）。これにより、フューエルカット制御が停止され、燃料の供給が再開される。このとき、ＣＰＵ７１が図１４のステップ１４１０に進むと、ＣＰＵ７１はそのステップ１４１０にて「Ｙｅｓ」と判定してステップ１４２０に進み、空燃比リッチ制御要求フラグＸＲＹＫの値が「１」であるか否かを判定する。
【０１３１】
図１３に示した例においては空燃比リッチ制御要求フラグＸＲＹＫの値は時刻ｔ２にて「１」に設定されている。従って、ＣＰＵ７１はステップ１４２０にて「Ｙｅｓ」と判定し、以下に述べるステップ１４３０乃至ステップ１４５０の処理を順に行い、ステップ１４９５に進んで本ルーチンを一旦終了する。なお、ＣＰＵ７１は、ステップ１４２０に進んだとき空燃比リッチ制御要求フラグＸＲＹＫの値が「０」であると、ステップ１４９５に直接進んで本ルーチンを一旦終了する。
【０１３２】
ステップ１４３０：ＣＰＵ７１は、空燃比リッチ制御実行フラグＸＲＩＣＨの値を「１」に設定する。
ステップ１４４０：ＣＰＵ７１は、第１吸蔵酸素減少量ＯＳＡＨ１の値を「０（初期値）」に設定する。第１吸蔵酸素減少量ＯＳＡＨ１は後述するルーチンにより算出される。
ステップ１４５０：ＣＰＵ７１は、第２吸蔵酸素減少量ＯＳＡＨ２の値を「０（初期値）」に設定する。第２吸蔵酸素減少量ＯＳＡＨ２は後述するルーチンにより算出される。
【０１３３】
＜吸蔵酸素減少量（酸素放出量）の算出＞
ＣＰＵ７１は、サンプリング時間tsampleが経過する毎に図１５のステップ１５００から処理を開始し、ステップ１５０５に進んで空燃比リッチ制御実行フラグＸＲＩＣＨの値が「１」であるか否かを判定する。このとき、空燃比リッチ制御実行フラグＸＲＩＣＨの値が「１」でなければ、ＣＰＵ７１はステップ１５０５にて「Ｎｏ」と判定し、ステップ１５９５に直接進んで本ルーチンを一旦終了する。
【０１３４】
これに対し、図１３の時刻ｔ３直後においては空燃比リッチ制御実行フラグＸＲＩＣＨの値は「１」に設定されていて、空燃比リッチ制御が実行されている。この場合、ＣＰＵ７１はステップ１５０５にて「Ｙｅｓ」と判定してステップ１５１０に進み、直前のフューエルカット復帰後から現時点までに「空燃比センサ６６の出力値Vabyfsと図２に示したテーブルMapabyfsとに基づいて求められる検出空燃比abyfs」が「理論空燃比近傍の所定値stioch＋Ａ」にまで一度でも低下したか否かを判定する。このステップは図７のステップ７４０と同じステップである。
【０１３５】
フューエルカット復帰時点である図１３の時刻ｔ３から所定の期間が経過するまでは、空燃比センサ６６にはフューエルカット中の排ガス（即ち、空気のみ）が到達している。また、フューエルカット復帰後の排ガスが空燃比センサ６６に到達した場合であっても、空燃比センサ６６の出力値Vabyfsはその排ガスの到達時点よりも僅かに遅れて変化する。従って、時刻ｔ３の直後において、空燃比センサ６６の出力値VabyfsとテーブルMapabyfsとに基づいて求められる検出空燃比abyfsは、フューエルカット復帰後において理論空燃比近傍の所定値stioch＋Ａ以下になっていない。
【０１３６】
このため、ＣＰＵ７１は、ステップ１５１０にて「Ｎｏ」と判定してステップ１５１５に進み、後述するステップ１５２５にて「第１吸蔵酸素減少量（酸素放出量）ＯＳＡＨ１の変化量ΔＯＳＡＨ１を計算する際に使用する計算用空燃比abyfc」に目標空燃比abyfrを設定する。この場合、目標空燃比abyfrは図３のステップ３４０にて目標リッチ空燃比abyfrichに設定されている。
【０１３７】
これに対し、フューエルカット復帰時点から所定の時間（前述した「センサ応答遅れ時間」）が経過した時刻ｔ４以降においては、空燃比センサ６６は空燃比リッチ制御により機関１０に供給された過濃な混合気の燃焼により生成された排ガスを遅滞なく検出している。従って、空燃比センサ６６の出力値VabyfsとテーブルMapabyfsとに基づいて求められる検出空燃比abyfsは、フューエルカット復帰後において理論空燃比近傍の所定値stioch＋Ａ以下となる。この場合、ＣＰＵ７１は、ステップ１５１０にて「Ｙｅｓ」と判定し、ステップ１５２０に進んで「計算用空燃比abyfc」に検出空燃比abyfsを設定する。
【０１３８】
そして、ＣＰＵ７１は、以下に述べるステップ１５２５乃至ステップ１５４０の処理を順に行い、ステップ１５９５に進んで本ルーチンを一旦終了する。
【０１３９】
ステップ１５２５：ＣＰＵ７１は、下記（７）式に基づいて第１吸蔵酸素減少量ＯＳＡＨ１の変化量ΔＯＳＡＨ１を計算する。下記（７）式は上記（４）式と同様の考えに基づく式である。（７）式において値「０．２３」は、大気中に含まれる酸素の重量割合である。ｍｆｒは所定時間（サンプリング時間tsample）内の燃料噴射量Ｆｉの合計量（計算周期tsample内において機関１０に供給された燃料の総量）である。
ΔＯＳＡＨ１＝０．２３・ｍｆｒ・（stoich − abyfc）    …（７）
【０１４０】
ステップ１５３０：ＣＰＵ７１は、下記（８）式に従って第１吸蔵酸素減少量ＯＳＡＨ１を更新する。即ち、ＣＰＵ７１は、現時点までに求められている第１吸蔵酸素減少量ＯＳＡＨ１に前記変化量ΔＯＳＡＨ１を加えることにより新たな第１吸蔵酸素減少量ＯＳＡＨ１を推定する。
ＯＳＡＨ１＝ＯＳＡＨ１＋ΔＯＳＡＨ１    …（８）
【０１４１】
ステップ１５３５：ＣＰＵ７１は、下記（９）式に基づいて第２吸蔵酸素減少量ＯＳＡＨ２の変化量ΔＯＳＡＨ２を計算する。下記（９）式において値「０．２３」及び値ｍｆｒは上記（７）式と同じ値である。値kosaは正の値であって、空燃比センサ６６の空燃比検出公差（製造上のバラツキの最大値）である。即ち、製造される空燃比センサ６６の中には、実際の空燃比abyf１を「検出空燃比（abyf１＋kosa）」として検出するセンサが含まれている。
ΔＯＳＡＨ２＝０．２３・ｍｆｒ・｛stoich − (abyfr ＋ kosa)｝    …（９）
【０１４２】
ステップ１５４０：ＣＰＵ７１は、下記（１０）式に従って第２吸蔵酸素減少量ＯＳＡＨ２を更新する。即ち、ＣＰＵ７１は、現時点までに求められている第２吸蔵酸素減少量ＯＳＡＨ２に前記変化量ΔＯＳＡＨ２を加えることにより新たな第２吸蔵酸素減少量ＯＳＡＨ２を推定する。
ＯＳＡＨ２＝ＯＳＡＨ２＋ΔＯＳＡＨ２    …（１０）
【０１４３】
上記（９）式は、製造上、最もリーン側の出力を発生し易い空燃比センサ６６を用いて、その空燃比センサ６６が「応答遅れ期間」がない状態において「触媒５３に流入する排ガスの空燃比」を検出したと仮定した場合における、フューエルカット復帰後（空燃比リッチ制御実行開始後）の酸素吸蔵量の減少量の変化量（酸素放出量の変化量）を表す値である。
【０１４４】
このように、上記（９）式及び上記（１０）式に基づいて推定される第２吸蔵酸素減少量ＯＳＡＨ２は、フューエルカット復帰後において触媒５３から放出される酸素量を「空燃比検出精度が公差範囲内において最もリーンずれしている空燃比センサ（応答遅れなし）」で計測した値に基づいて求めた値である。即ち、第２吸蔵酸素減少量ＯＳＡＨ２は、フューエルカット復帰時点以降において、目標空燃比abyfrに空燃比センサ６６の空燃比検出公差に相当する空燃比kosaを加えた「仮想空燃比」に基づいて、触媒５３から放出された酸素の量である「仮想放出量」と言うこともできる。
【０１４５】
従って、フューエルカット復帰後において最低でもその第２吸蔵酸素減少量ＯＳＡＨ２分の酸素は触媒５３から放出されているはずであるから、後述するようにこの第２吸蔵酸素減少量ＯＳＡＨ２が所定の閾値（第４閾値ｋ４・Ｃmax、即ち、第５閾値）に到達した場合には、第１吸蔵酸素減少量ＯＳＡＨ１が所定の閾値（第４閾値ｋ４・Ｃmax）に到達していない場合においても、空燃比リッチ制御を終了する。これにより、空燃比リッチ制御が必要以上に継続されないので、触媒５３の酸素吸蔵量が過小にならない。従って、エミッションを良好に維持することが可能となる。
【０１４６】
＜空燃比リッチ制御終了判定＞
所定のタイミングになると、ＣＰＵ７１は図１６のステップ１６００から処理を開始してステップ１６１０に進み、空燃比リッチ制御実行フラグＸＲＩＣＨの値が「１」であるか否かを判定する。そして、空燃比リッチ制御実行フラグＸＲＩＣＨの値が「１」でなければ、ＣＰＵ７１はステップ１６１０にて「Ｎｏ」と判定し、ステップ１６９５に直接進んで本ルーチンを一旦終了する。
【０１４７】
これに対し、空燃比リッチ制御実行フラグＸＲＩＣＨの値が「１」であると、ＣＰＵ７１はステップ１６１０にて「Ｙｅｓ」と判定し、ステップ１６２０に進んで第１吸蔵酸素減少量ＯＳＡＨ１の値が第４閾値ｋ４・Ｃmax以上であるか否かを判定する。係数ｋ４は１／２から１までの間の値であって、例えば、３／４に設定されている。第４閾値ｋ４・Ｃmaxは、フューエルカット復帰後の空燃比リッチ制御により、触媒５３から放出された酸素量が十分な量に達したので、これ以上空燃比リッチ制御を実行することは逆に酸素吸蔵量が過小になるために好ましくないと判断できる値に設定されている。この第４閾値ｋ４・Ｃmaxは「空燃比リッチ制御終了閾値」とも称呼される。
【０１４８】
そして、第１吸蔵酸素減少量ＯＳＡＨ１が第４閾値ｋ４・Ｃmax以上であると、ＣＰＵ７１はステップ１６２０にて「Ｙｅｓ」と判定し、以下に述べるステップ１６３０及びステップ１６４０の処理を順に行い、ステップ１６９５に進んで本ルーチンを一旦終了する。
【０１４９】
ステップ１６３０：ＣＰＵ７１は、空燃比リッチ制御実行フラグＸＲＩＣＨの値を「０」に設定する。
ステップ１６４０：ＣＰＵ７１は、空燃比リッチ制御要求フラグＸＲＹＫの値を「０」に設定する。
これにより空燃比リッチ制御が終了し、機関の空燃比は理論空燃比に制御される。
【０１５０】
一方、ステップ１６２０の判定時において第１吸蔵酸素減少量ＯＳＡＨ１が第４閾値ｋ４・Ｃmaxより小さい場合、ＣＰＵ７１はステップ１６２０にて「Ｎｏ」と判定してステップ１６５０に進み、第２吸蔵酸素減少量ＯＳＡＨ２が第４閾値ｋ４・Ｃmax（第５閾値）以上となったか否かを判定する。そして、第２吸蔵酸素減少量ＯＳＡＨ２が第４閾値ｋ４・Ｃmax以上となっていれば、ＣＰＵ７１はステップ１６５０にて「Ｙｅｓ」と判定し、上記ステップ１６３０及びステップ１６４０の処理を実行する。これにより空燃比リッチ制御が終了し、機関の空燃比は理論空燃比に制御される。なお、この第５閾値（本例においては第４閾値ｋ４・Ｃmaxと等しい。）は「空燃比リッチ制御強制終了閾値」とも称呼される。
【０１５１】
これに対し、第２吸蔵酸素減少量ＯＳＡＨ２が第４閾値ｋ４・Ｃmaxより小さいと、ＣＰＵ７１はステップ１６５０にて「Ｎｏ」と判定し、ステップ１６９５に直接進んで本ルーチンを一旦終了する。
【０１５２】
以上、説明したように、第２制御装置は、第１制御装置と同様の燃料供給量変更手段（図３のステップ３１０乃至ステップ３４０、図５のステップ５０５乃至ステップ５４０を参照。）と、フューエルカット手段（図３のステップ３０５、図６のルーチン及び図９のルーチンを参照。）と、を備えている。
【０１５３】
更に、第２制御装置は、
前記フューエルカット制御中に触媒５３に吸蔵される酸素の増加量である吸蔵酸素増加量ＯＳＡＫＺを推定する吸蔵酸素増加量推定手段（図１２のステップ１２１０、ステップ１２３０及びステップ１２４０を参照。）と、
フューエルカット制御が解除されたフューエルカット復帰時点以降において触媒５３から放出される酸素の放出量である吸蔵酸素減少量ＯＳＡＨ１を推定する吸蔵酸素減少量推定手段（図１４のステップ１４４０、図１５のステップ１５０５乃至ステップ１５３０を参照。）と、
フューエルカット制御中に推定された吸蔵酸素増加量ＯＳＡＫＺが所定の第３閾値ｋ３・Ｃmax以上となったとき空燃比リッチ制御要求を発生する（空燃比リッチ制御実行フラグＸＲＩＣＨを「１」に設定する）空燃比リッチ制御要求発生手段（図１２のステップ１２５０及びステップ１２６０を参照。）と、を備えている。
【０１５４】
加えて、第２制御装置は、
（１）フューエルカット制御が解除されたフューエルカット復帰時点において空燃比リッチ制御要求が発生していれば目標空燃比abyfrを理論空燃比よりもリッチ側の目標リッチ空燃比abyfrに設定するとともに（図１４のルーチンにおける空燃比リッチ制御実行フラグＸＲＩＣＨの「１」への設定、図３のルーチンのステップ３１５及びステップ３４０を参照。）、（２）フューエルカット復帰時点以降において推定される吸蔵酸素減少量ＯＳＡＨ１が所定の第４閾値ｋ４・Ｃmax以上となったとき目標空燃比abyfrを理論空燃比stoichに設定し（図１６のルーチンのステップ１６３０における空燃比リッチ制御実行フラグＸＲＩＣＨの「０」への設定、図３のルーチンのステップ３１５及びステップ３２０を参照。）、更に、（３）フューエルカット復帰時点において空燃比リッチ制御要求が発生していなければ目標空燃比abyfrを理論空燃比stoichに設定する（図１４のルーチンのステップ１４１０、ステップ１４２０、図３のルーチンのステップ３１５及びステップ３２０を参照。）目標空燃比設定手段を備えている。
【０１５５】
そして、第２制御装置の前記吸蔵酸素減少量推定手段は、フューエルカット復帰時点から所定の期間（上記応答遅れ期間）が経過するまでは（図１５のステップ１５１０を参照。）、目標空燃比abyfrに基づいて吸蔵酸素減少量ＯＳＡＨ１を推定し（図１５のステップ１５１５、ステップ１５２５及びステップ１５３０を参照。）、その所定の期間が経過した後は空燃比センサ６６の出力に基づいて吸蔵酸素減少量ＯＳＡＨ１を推定する（図１５のステップ１５１０、ステップ１５２０、ステップ１５２５及びステップ１５３０を参照。）。
【０１５６】
従って、第２制御装置は、第１制御装置と同様、フューエルカット復帰後の「応答遅れ期間」中は空燃比センサ６６の出力に基づく検出空燃比abyfsに代えて、目標空燃比abyfrを用いて吸蔵酸素減少量ＯＳＡＨ１を推定する。更に、その応答遅れ期間の経過後、第２制御装置は、空燃比センサ６６の出力に基づく検出空燃比abyfsに基づいて吸蔵酸素減少量ＯＳＡＨ１を推定する。この結果、吸蔵酸素減少量（酸素放出量）ＯＳＡＨ１の推定精度が向上するので、空燃比リッチ制御を適切なタイミングにて終了することができる。
【０１５７】
また、第２制御装置は、
フューエルカット復帰時点以降において目標空燃比abyfrが目標リッチ空燃比abyfrichに設定されている場合（図１５のステップ１５０５を参照。）、目標空燃比abyfrに空燃比センサ６６の空燃比検出公差に相当する空燃比kosaを加えた仮想空燃比に基づいて「触媒５３から放出される酸素の仮想放出量」を算出する仮想放出量算出手段（図１５のステップ１５３５及びステップ１５４０を参照。）を備えている。
【０１５８】
そして、第２制御装置の目標空燃比設定手段は、算出された仮想放出量ＯＳＡＨ２が第５閾値（本例では第４閾値ｋ４・Ｃmaxと同じ。）以上となったとき目標空燃比abyfrを理論空燃比stoichに変更するように構成されている（図１６のルーチンのステップ１６５０及びステップ１６３０による空燃比リッチ制御実行フラグＸＲＩＣＨの「０」への設定、図３のルーチンのステップ３１５及びステップ３２０を参照。）。
【０１５９】
前述したように、フューエルカット復帰後において、最低でも「その仮想放出量ＯＳＡＨ２に相当する量の酸素が触媒５３から放出されている」と考えることができる。従って、第２制御装置は、吸蔵酸素減少量ＯＳＡＨ１が第４閾値ｋ４・Ｃmax以上になっていなくとも、仮想放出量ＯＳＡＨ２が第５閾値（ｋ４・Ｃmax）以上となったとき、空燃比リッチ制御を強制的に終了する。この結果、フューエルカット復帰後の空燃比リッチ制御が必要以上に継続されることがないので、触媒５３の酸素吸蔵量が過小にならない。よって、エミッションを良好に維持することが可能となる。
【０１６０】
以上、説明したように、本発明の各実施形態に係る内燃機関の空燃比制御装置は、フューエルカット復帰後の空燃比リッチ制御を適切なタイミングにて終了させることができる。
【０１６１】
本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、図７のステップ７４０及び図１５のステップ１５１０は、フューエルカット復帰時点から所定の閾値時間が経過したか否かを判定するためのステップに置換されてもよい。この場合、閾値時間は上記空燃比センサ６６の「応答遅れ期間」に対応する時間であり、一定値でもよく、吸入空気量Ｇａ及び／又は機関回転速度ＮＥ等に基づいて可変となるように設定されてもよい。
【０１６２】
更に、第１制御装置は、フューエルカット実行中でない場合に、燃料量ｍｆｒと計算用空燃比abyfcとを用いて酸素吸蔵量ＯＳＡを求めていた。これに対し、第１制御装置は、吸入空気量Ｇａと計算用空燃比abyfcとに基づいて酸素吸蔵量ＯＳＡを求めてもよい。この場合、例えば、ＯＳＡ＝０．２３・Ｇａ・（stoich − abyfc）／abyfcの計算式により求めた酸素減少量ＯＳＡの変化量ΔＯＳＡを（３）式に従って積算し、酸素吸蔵量ＯＳＡＨ１を求めることができる。
【０１６３】
同様に、第２制御装置は、フューエルカット実行中でない場合に、燃料量ｍｆｒと計算用空燃比abyfcとを用いて第１吸蔵酸素減少量ＯＳＡＨ１を求めていた。これに対し、第２制御装置は、吸入空気量Ｇａと計算用空燃比abyfcとに基づいて第１吸蔵酸素減少量ＯＳＡＨ１を求めてもよい。この場合、例えば、ΔＯＳＡＨ１＝０．２３・Ｇａ・（stoich − abyfc）／abyfcの計算式により求めた第１吸蔵酸素減少量ＯＳＡＨ１の変化量ΔＯＳＡＨ１を（８）式に従って積算し、第１吸蔵酸素減少量ＯＳＡＨ１を求めることができる。同様に、第２吸蔵酸素減少量ＯＳＡＨ２を、吸入空気量Ｇａと、目標空燃比abyfrに空燃比センサ６６の空燃比検出公差に相当する空燃比kosaを加えた「仮想空燃比」と、に基づいて求めても良い。この場合、例えば、ΔＯＳＡＨ２＝０．２３・Ｇａ・｛stoich−(abyfr ＋
kosa)｝／(abyfr＋kosa)の計算式により求めた第２吸蔵酸素減少量ＯＳＡＨ２の変化量ΔＯＳＡＨ２を（１０）式に従って積算し、第２吸蔵酸素減少量ＯＳＡＨ２を求めることができる。
【０１６４】
また、上記第１閾値〜第４閾値は、最大酸素吸蔵量Ｃmaxに依存しない一定値であってもよい。この場合、第１閾値は第２閾値よりも大きい値に設定されることが好ましい。また、第４閾値は第３閾値よりも小さい値に設定されることが好ましい。更に、第１制御装置は、第２制御装置と同様、フューエルカット復帰後（空燃比リッチ制御の開始後）から「目標空燃比abyfrと空燃比センサ６６の公差kosa」とを用いて「前述した酸素吸蔵量ＯＳＡとは異なる酸素吸蔵量ＯＳＡＢ」を推定しておき、その酸素吸蔵量ＯＳＡＢが所定値にまで低下した場合に空燃比リッチ制御を強制的に停止するように構成されてもよい。また、第１制御装置は第２制御装置と同様、上記第２吸蔵酸素減少量ＯＳＡＨ２を算出し、その第２吸蔵酸素減少量ＯＳＡＨ２が第５閾値以上になったとき、酸素吸蔵量ＯＳＡが第２閾値以下に低下していない場合であっても、空燃比リッチ制御を停止するように構成されてもよい。加えて、空燃比リッチ制御における目標空燃比abyfrichは一定値でなくてもよく、例えば、酸素吸蔵量ＯＳＡが大きいほどよりリッチ側の空燃比に設定されてもよい。
【０１６５】
また、第２実施形態における第５閾値は、第４閾値ｋ４・Ｃmaxと同一であったが、異なる値であってもよい。但し、第５閾値は第３閾値より大きい値であることが好ましい。
【０１６６】
更に、本発明による空燃比制御装置は、触媒５３の下流の排気通路に下流側触媒を備えるとともに、排気通路であって触媒５３とその下流側触媒との間に配設された下流側空燃比センサを備え、この下流側空燃比センサの出力により上記フィードバック制御に加えてサブフィードバック制御を実行してもよい。
【０１６７】
この場合、サブフィードバック制御は、特開２００７−２７８１８６号公報に開示されているように下流側空燃比センサの出力値Voxsが下流側目標値に一致するように、空燃比センサ６６によって検出される空燃比を見かけ上補正するような態様であってもよい。また、サブフィードバック制御は、特開平０６−０１０７３８号公報に開示されているように、空燃比センサ６６の出力値に応じて作成される空燃比補正係数を下流側空燃比センサの出力値Voxsに基づいて変更する態様であってもよい。
【０１６８】
更に、上記第１制御装置は、上記下流側空燃比センサを備える場合、この下流側空燃比センサの出力により示される空燃比が理論空燃比よりもリーン側の空燃比から明らかにリッチ側の空燃比へと変化した場合、推定される酸素吸蔵量ＯＳＡの値を「０」に設定するように構成されていてもよい。
【０１６９】
なお、第１及び第２制御装置における「燃料供給量変更手段」は、目標空燃比abyfrと筒内吸入空気量Ｍｃ（ｋ）とに基づいて機関の空燃比を目標空燃比abyfrに一致させるための燃料供給量（燃料噴射量Ｆｉ）を決定する手段と言うこともできる。
【０１７０】
また、第１制御装置の酸素吸蔵量推定手段及び第２制御装置の吸蔵酸素減少量推定手段は、フューエルカット復帰後に上記応答遅れ時間が経過するまでは目標空燃比abyfrと理論空燃比stoichiと燃料供給量mfrとから酸素の不足量（ΔＯＳＡ）を求め、その不足量を積算する手段であると言うこともできる。或いは、第１制御装置の酸素吸蔵量推定手段及び第２制御装置の吸蔵酸素減少量推定手段は、フューエルカット復帰後に上記応答遅れ時間が経過するまでは目標空燃比abyfrと理論空燃比stoichiと吸入空気量Ｇａとから酸素の不足量（ΔＯＳＡ）を求め、その不足量を積算する手段であってもよい。
【０１７１】
更に、第１制御装置の酸素吸蔵量推定手段及び第２制御装置の吸蔵酸素減少量推定手段は、フューエルカット復帰後に上記応答遅れ時間が経過した後は、検出空燃比abyfrと理論空燃比stoichiと燃料供給量mfrとから酸素の不足量（ΔＯＳＡ）を求め、その不足量を積算する手段であると言える。或いは、第１制御装置の酸素吸蔵量推定手段及び第２制御装置の吸蔵酸素減少量推定手段は、フューエルカット復帰後に上記応答遅れ時間が経過した後は、目標空燃比abyfrと理論空燃比stoichiと吸入空気量Ｇａとから酸素の不足量（ΔＯＳＡ）を求め、その不足量を積算する手段であってもよい。
【０１７２】
加えて、第１制御装置及び第２制御装置は、フューエルカット復帰時点以降において必ず空燃比リッチ制御を実施するように構成してもよい。また、第１制御装置及び第２制御装置は、フューエルカット制御の継続時間を測定し、その測定された継続時間が所定時間以上であるときに触媒５３の酸素吸蔵量が過大となったと判断して空燃比リッチ制御実行フラグＸＲＩＣＨの値を「１」に設定し、それにより空燃比リッチ制御要求を発生するように構成されてもよい。
【０１７３】
更に、第１制御装置は、フューエルカット制御中において第２制御装置のように吸蔵酸素増加量ＯＳＡＫＺを推定し、その吸蔵酸素増加量ＯＳＡＫＺが第３閾値ｋ３・Ｃmax（空燃比リッチ制御要求閾値）以上となったときに空燃比リッチ制御実行フラグＸＲＩＣＨの値を「１」に設定し、それにより空燃比リッチ制御要求を発生するように構成され得る。同様に、第２の制御装置は、第１制御装置のように酸素吸蔵量ＯＳＡを別途推定し、フューエルカット制御中においてその酸素吸蔵量ＯＳＡが第１閾値ｋ１・Ｃmax（空燃比リッチ制御要求閾値）以上となったときに空燃比リッチ制御実行フラグＸＲＩＣＨの値を「１」に設定するこ設定し、それにより、空燃比リッチ制御要求を発生するように構成されてもよい。
【０１７４】
このように、第１制御装置の目標空燃比設定手段は、「フューエルカット制御が解除されたフューエルカット復帰時点から前記目標空燃比を理論空燃比よりもリッチ側の目標リッチ空燃比に設定するとともに同フューエルカット復帰時点以降において前記推定される酸素吸蔵量が所定の空燃比リッチ制御終了閾値以下となったとき前記目標空燃比を理論空燃比に設定する」手段であると言うことができる。
【０１７５】
同様に、第２制御装置の目標空燃比設定手段は、「フューエルカット復帰時点から前記目標空燃比を理論空燃比よりもリッチ側の目標リッチ空燃比に設定するとともに同フューエルカット復帰時点以降において前記推定される吸蔵酸素減少量が所定の空燃比リッチ制御終了閾値以上となったとき前記目標空燃比を理論空燃比に設定する」手段であると言うことができる。
【０１７６】
なお、上記第１制御装置において、触媒５３の下流の排気通路に下流側触媒を備えるとともに、排気通路であって触媒５３とその下流側触媒との間に配設された下流側空燃比センサを備え、この下流側空燃比センサの出力が理論空燃比から僅かにリッチ側の空燃比に対応する値と一致するように周知のサブフィードバック制御を実行してもよい。このような場合、目標空燃比abyfrが理論空燃比に設定され、且つ、上記フィードバック制御及びサブフィードバック制御が実行されている間、検出空燃比abyfsの僅かな空燃比検出誤差が積算されることによって酸素吸蔵量ＯＳＡが過大になることを回避するために、酸素吸蔵量ＯＳＡは検出空燃比abyfsに関わらず所定時間の経過毎に微小量ずつ減少するように計算されてもよい。
【図面の簡単な説明】
【０１７７】
【図１】本発明の第１実施形態に係る空燃比制御装置（第１制御装置）を適用した内燃機関の概略図である。
【図２】図１に示した空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図３】第１制御装置のＣＰＵが実行する燃料噴射ルーチンを示したフローチャートである。
【図４】第１制御装置の作動を説明するためのタイムチャートである。
【図５】第１制御装置のＣＰＵが実行するフィードバック補正量算出ルーチンを示したフローチャートである。
【図６】第１制御装置のＣＰＵが実行するフューエルカット開始判定ルーチンを示したフローチャートである。
【図７】第１制御装置のＣＰＵが実行する酸素吸蔵量算出ルーチンを示したフローチャートである。
【図８】第１制御装置のＣＰＵが実行する空燃比リッチ制御要求判定ルーチンを示したフローチャートである。
【図９】第１制御装置のＣＰＵが実行するフューエルカット終了判定ルーチンを示したフローチャートである。
【図１０】第１制御装置のＣＰＵが実行する空燃比リッチ制御開始判定ルーチンを示したフローチャートである。
【図１１】第１制御装置のＣＰＵが実行する空燃比リッチ制御終了判定ルーチンを示したフローチャートである。
【図１２】本発明の第２実施形態に係る空燃比制御装置（第２制御装置）のＣＰＵが実行する空燃比リッチ制御要求判定ルーチンを示したフローチャートである。
【図１３】第２制御装置の作動を説明するためのタイムチャートである。
【図１４】第２制御装置のＣＰＵが実行する空燃比リッチ制御開始判定ルーチンを示したフローチャートである。
【図１５】第２制御装置のＣＰＵが実行する吸蔵酸素減少量算出ルーチンを示したフローチャートである。
【図１６】第２制御装置のＣＰＵが実行する空燃比リッチ制御終了判定ルーチンを示したフローチャートである。
【符号の説明】
【０１７８】
１０…内燃機関、２０…シリンダブロック部、２５…燃焼室、３０…シリンダヘッド部、３７…点火プラグ、３９…インジェクタ、４０…吸気系統、５０…排気系統、５１…エキゾーストマニホールド、５２…エキゾーストパイプ、５３…触媒、６１…エアフローメータ、６６…空燃比センサ、７０…電気制御装置、７１…ＣＰＵ。
【図１】
0004893634.tif 000002
【図２】
0004893634.tif 000003
【図３】
0004893634.tif 000004
【図４】
0004893634.tif 000005
【図５】
0004893634.tif 000006
【図６】
0004893634.tif 000007
【図７】
0004893634.tif 000008
【図８】
0004893634.tif 000009
【図９】
0004893634.tif 000010
【図１０】
0004893634.tif 000011
【図１１】
0004893634.tif 000012
【図１２】
0004893634.tif 000013
【図１３】
0004893634.tif 000014
【図１４】
0004893634.tif 000015
【図１５】
0004893634.tif 000016
【図１６】
0004893634.tif 000017