(57)【要約】      （修正有）【課題】フューエルカット制御終了後期間において、触媒の酸素吸蔵材のみでなく、触媒の貴金属をも確実に還元状態へと戻すことができる空燃比制御装置を提供する。【解決手段】触媒４３の下流に配置された下流側空燃比センサ５６の出力値Voxsが低側閾値VLth以上の領域において増大しており且つ出力値Voxsの変化速度の絶対値｜ΔVoxs｜が第１変化速度閾値ΔV1th以上であるとき触媒流入ガスの空燃比を第１リーン空燃比に設定し、出力値Voxsが低側閾値VLthよりも小さいとき触媒流入ガスの空燃比を第２リッチ空燃比に設定する。更に、この装置は、フューエルカット制御が終了した時点から「第１変化速度閾値ΔV1thの値」を「通常値ΔVmidよりも大きい値ΔVlarge」に設定し、出力値Voxsがその第１変化速度閾値ΔV1thを超えてからは第１変化速度閾値ΔV1thを通常値ΔVmidに戻す。【選択図】図１
2011069338.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設された三元触媒と、
前記排気通路の前記触媒よりも下流に配設されるとともに同触媒から流出したガスに含まれる酸素の濃度に応じた出力値を出力する濃淡電池型の酸素濃度センサである下流側空燃比センサと、
前記出力値に基づいて前記触媒に流入するガスである触媒流入ガスの空燃比を変更するように前記機関に供給される燃料の量を制御する燃料供給量制御手段と、
所定のフューエルカット条件が成立したとき前記機関への燃料の供給を停止するフューエルカット制御を行い且つ同フューエルカット制御中に所定のフューエルカット終了条件が成立したとき同フューエルカット制御を終了して前記燃料供給量制御手段による前記機関への燃料の供給を再開するフューエルカット手段と、
を備えた内燃機関の燃料供給量制御装置において、
前記燃料供給量制御手段は、
前記出力値が所定の低側閾値と前記低側閾値よりも大きい所定の高側閾値との間にある場合、前記出力値が増大しているときの前記出力値の変化速度の絶対値が所定の第１変化速度閾値以上となった時点から前記出力値が減少しているときの前記出力値の変化速度の絶対値が所定の第２変化速度閾値以上となる時点又は前記出力値が前記高側閾値以上になる時点までの第１期間において前記触媒流入ガスの空燃比が理論空燃比よりもリーン側の所定の第１リーン空燃比となるように、且つ、前記出力値が減少しているときの前記出力値の変化速度の絶対値が前記第２変化速度閾値以上となった時点から前記出力値が増大しているときの前記出力値の変化速度の絶対値が前記第１変化速度閾値以上となる時点又は前記出力値が前記低側閾値以下となる時点までの第２期間において前記触媒流入ガスの空燃比が理論空燃比よりもリッチ側の所定の第１リッチ空燃比となるように、
前記出力値が前記高側閾値以上である場合、前記触媒流入ガスの空燃比が理論空燃比よりもリーン側の所定の第２リーン空燃比となるように、
前記出力値が前記低側閾値以下である場合、前記触媒流入ガスの空燃比が理論空燃比よりもリッチ側の所定の第２リッチ空燃比となるように、
前記機関に供給される燃料の量を制御するとともに、
前記フューエルカット終了条件が成立することにより前記フューエルカット制御が終了されて前記機関への燃料の供給を再開する時点であるフューエルカット終了時点から、前記出力値が前記低側閾値よりも大きくなり且つ増大しているときの前記出力値の変化速度の絶対値が前記第１変化速度閾値以上となる時点まで、のフューエルカット制御終了後期間において、前記第１変化速度閾値を、前記フューエルカット制御終了後期間の経過後における値よりも大きい値に設定するように構成された燃料供給量制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、排気通路に三元触媒を備えた内燃機関の燃料供給量制御装置に関する。
【背景技術】
【０００２】
従来より、内燃機関から排出される排ガスを浄化するために同機関の排気通路に三元触媒が配設されている。三元触媒は、周知のように、その三元触媒に流入するガスの成分に応じて酸素を吸蔵又は放出する「酸素吸蔵機能」を有する。以下、三元触媒は単に「触媒」とも称呼され、触媒に流入するガスは「触媒流入ガス」とも称呼される。
【０００３】
従来の燃料供給量制御装置（従来装置）は、機関の排気通路であって触媒の下流に配設された下流側空燃比センサを備える。従来装置は、気筒に吸入される空気の量に基づいて「機関に供給される混合気の空燃比を理論空燃比に一致させるための基本燃料噴射量」を求め、その基本燃料噴射量を少なくとも下流側空燃比センサの出力値に基づいて補正するようになっている。
【０００４】
より具体的に述べると、下流側空燃比センサは図３に示した出力値Voxsを出力する。下流側空燃比センサは濃淡電池型の酸素濃度センサとも称呼される。この下流側空燃比センサの出力値Voxsは、触媒から流出するガス（以下、「触媒流出ガス」とも称呼される。）の空燃比が理論空燃比よりも小さい場合（理論空燃比よりもリッチ側の空燃比である場合）、即ち、触媒流出ガスに過剰な酸素が含まれていない場合、最大出力値Vmax又は最大出力値Vmax近傍の値となる。「触媒流出ガスに過剰な酸素が含まれていない場合」とは、触媒流出ガス中の「未燃物と酸素と」が結合した結果、酸素が不足し未燃物が残る場合（触媒流出ガス中の未燃物を総て酸化するのに必要な量よりも少ない量の酸素が触媒流出ガス中に含まれている場合）、及び、触媒流出ガス中に酸素が存在していない場合、のことである。
【０００５】
更に、下流側空燃比センサの出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりも大きい場合（理論空燃比よりもリーン側の空燃比である場合）、即ち、触媒流出ガスに過剰の酸素が含まれている場合、最小出力値Vmin又は最小出力値Vmin近傍の値となる。「触媒流出ガスに過剰の酸素が含まれている場合」とは、触媒流出ガス中の「未燃物と酸素と」が結合した結果、未燃物は消滅し酸素が残る場合（触媒流出ガス中の未燃物を総て酸化するのに必要な量よりも多い量の酸素が触媒流出ガス中に含まれている場合）、及び、触媒流出ガス中に未燃物が含まれていない場合、のことである。
【０００６】
このように、触媒流出ガスに過剰の酸素が含まれていると出力値Voxsは最小出力値Vmin（例えば、０〜０．１Ｖ）となり、触媒流出ガスに過剰な酸素が含まれていなければ出力値Voxsは最大出力値Vmax（例えば、０．９〜１．０Ｖ）となる。そこで、出力値Voxsが「最大出力値Vmaxと最小出力値Vminとの中央の値Vmid（即ち、中央値Vmid＝（Vmax＋Vmin）／２）」に一致している場合、触媒流出ガスの空燃比は理論空燃比に一致していると考えられている。
【０００７】
そして、従来装置は、下流側空燃比センサの出力値Voxsが「理論空燃比に相当する値（即ち、中央値Vmid）に設定された下流側目標値Voxsref」に一致するように空燃比のフィードバック量を比例・積分制御（ＰＩ制御）等に基づいて算出する。この空燃比のフィードバック量は、便宜上「サブフィードバック量」とも称呼される。従来装置は、「理論空燃比を得るための基本燃料噴射量」を「サブフィードバック量」により補正することにより、機関に供給される混合気の空燃比を制御し、以って、触媒流入ガスの空燃比を制御している。
【０００８】
一方、従来から、内燃機関への燃料の供給を停止するフューエルカット制御の停止後に機関の空燃比を理論空燃比よりもリッチ側の空燃比に制御する燃料供給量制御装置が知られている（例えば、特許文献１を参照。）。このような「理論空燃比よりもリッチ側の空燃比への制御」を、以下「フューエルカット後空燃比リッチ制御（又は、フューエルカット復帰増量制御）」とも称呼する。また、フューエルカット制御が停止されて燃料の供給が再開される時点を「フューエルカット復帰時点、又は、フューエルカット終了時点」とも称呼する。
【０００９】
このフューエルカット後空燃比リッチ制御によれば、排気通路に備えられた触媒の酸素吸蔵量がフューエルカット制御中において過大となった場合であっても、その酸素吸蔵量をフューエルカット復帰時点以降において速やかに適正値近傍にまで低下させることができる。従って、「フューエルカット復帰後に触媒の酸素吸蔵量が過大であることに起因して窒素酸化物（ＮＯｘ）の排出量が多くなること」を回避することができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００５−１５５４０１号公報
【発明の概要】
【００１１】
図２０は、「上述した従来装置」及び「本発明による燃料供給量制御装置」による空燃比制御の様子を破線及び実線によりそれぞれ表したタイムチャートである。図２０に示した例においては、時刻ｔ０にて、下流側空燃比センサの出力値Voxsが中央値Vmidよりも小さい値から中央値Vmidよりも大きい値に変化している。前述したように、従来装置は、下流側目標値Voxsrefを中央値Vmidに設定している。
【００１２】
従って、時刻ｔ０以降における出力値Voxsは中央値Vmidよりも大きくなるので、従来装置によって算出されるサブフィードバック量は基本燃料噴射量を減少（減量補正）する値になる。これにより、触媒流入ガスの空燃比は理論空燃比よりもリーン側の空燃比へと制御される。以下、理論空燃比よりもリーン側の空燃比を、単に「リーン空燃比」とも称呼する。
【００１３】
この結果、触媒流入ガスには過剰な酸素が含まれるので、触媒に吸蔵されている酸素の量（以下、「酸素吸蔵量ＯＳＡ」とも称呼する。）は増加する。触媒の酸素吸蔵量ＯＳＡが比較的小さい場合、触媒は酸素を効率良く吸蔵することができる。従って、時刻ｔ０における酸素吸蔵量ＯＳＡが比較的小さい場合、時刻ｔ０以降において触媒流入ガスに含まれる過剰な酸素の殆どは触媒に吸蔵される。その結果、触媒流出ガスに酸素が殆ど含まれていない状態が継続するので、下流側空燃比センサの出力値Voxsは最大出力値Vmaxに向けて増大し続ける。
【００１４】
その後、時刻ｔ１において触媒の酸素吸蔵量ＯＳＡが所定の上限値ＣＨｉに到達すると、触媒は酸素を効率良く吸蔵することができなくなる。よって、触媒流出ガスに比較的多量の酸素が含まれ始める。この結果、時刻ｔ１の直後の時点である時刻ｔ２から下流側空燃比センサの出力値Voxsは最小出力値Vminに向けて減少し始める。
【００１５】
ところが、時刻ｔ２からその後の時刻ｔ５までの期間、出力値Voxsは中央値Vmid（従来装置の下流側目標値Voxsref）よりも大きいので、従来装置によるサブフィードバック量は基本燃料噴射量を減少する値になり続ける。この結果、時刻ｔ２以降においても酸素吸蔵量ＯＳＡは増大し続け、時刻ｔ５よりも前の時刻ｔ４にて最大酸素吸蔵量Ｃmaxに到達する。
【００１６】
このとき、触媒流入ガスの空燃比は理論空燃比よりリーン側の空燃比であり、従って、機関に供給される混合気の空燃比（以下、単に「機関の空燃比」とも称呼する。）も理論空燃比よりリーン側の空燃比である。このため、触媒流入ガスには多量のＮＯｘ（窒素酸化物）が含まれている。ところが、酸素吸蔵量ＯＳＡが最大酸素吸蔵量Ｃmaxに到達しているから、触媒はＮＯｘを充分に浄化することができない。この結果、時刻ｔ４から時刻ｔ５までの期間において、比較的多量のＮＯｘが触媒の下流に排出される場合がある。
【００１７】
このように、従来装置は、触媒による排気浄化作用にとって不必要な「燃料噴射量の減量補正」を行う場合がある（図２０の触媒流入ガスの空燃比のハッチング部を参照。）。換言すると、従来装置によれば、触媒流入ガスの空燃比が「触媒の排気浄化効率を良好な値に維持するために必要とされる空燃比（以下、「触媒流入ガス要求空燃比」とも称呼する。）」よりもリーン側の空燃比に制御されてしまう場合が発生する。
【００１８】
一方、下流側空燃比センサの出力値Voxsが「中央値Vmidに設定された下流側目標値Voxsref」よりも小さくなると、従来装置によって算出されるサブフィードバック量は基本燃料噴射量を増大（増量補正）する値となる。それにより、触媒流入ガスの空燃比は理論空燃比よりもリッチ側の空燃比に制御される。以下、理論空燃比よりもリッチ側の空燃比を、単に「リッチ空燃比」とも称呼する。
【００１９】
この結果、触媒流入ガスには過剰な未燃物（ＣＯ、ＨＣ及びＨ２等）が含まれるので、触媒に吸蔵されている酸素はその未燃物の浄化に使用される。従って、酸素吸蔵量ＯＳＡは減少する。しかしながら、従来装置によれば、下流側空燃比センサの出力値Voxsが下流側目標値Voxsrefよりも小さくなった時点直後等において、酸素吸蔵量ＯＳＡは最大酸素吸蔵量Ｃmax近傍となっている（図２０の時刻ｔ５の直後等を参照。）。そのため、微量ではあるものの触媒流入ガスに含まれる酸素はそのまま触媒下流に流出する。更には、下流側空燃比センサの近傍又は下流側空燃比センサの拡散抵抗層に残存する酸素を完全に消費するのに充分な量の未燃物が触媒下流に流出しない。その結果、下流側空燃比センサの出力値Voxsは下流側目標値Voxsrefよりも小さい値を維持する。
【００２０】
その後、触媒の酸素吸蔵量ＯＳＡが所定の下限値ＣＬｏ（＜ＣＨｉ）にまで減少すると、触媒は触媒流入ガスに含まれる微量な酸素を効率良く吸蔵し始めるとともに触媒流入ガスに含まれる未燃物を完全には浄化できなくなる。よって、触媒流出ガスに酸素が含まれなくなるとともに、比較的多量の未燃物が含まれ始める。この未燃物により、下流側空燃比センサの近傍又は下流側空燃比センサの拡散抵抗層に残存する酸素が消費される。この結果、下流側空燃比センサの出力値Voxsは最大出力値Vmaxに向けて増大し始める。
【００２１】
ところが、その時点から暫くの間、出力値Voxsは下流側目標値Voxsref（中央値Vmid）よりも小さいから、従来装置によるサブフィードバック量は基本燃料噴射量を増大する値になり続ける。この結果、触媒の酸素吸蔵量ＯＳＡは減少し続け「０」に到達してしまう。
【００２２】
このとき、触媒流入ガスの空燃比は理論空燃比よりリッチ側の空燃比であり、従って、機関の空燃比も理論空燃比よりリッチ側の空燃比である。このため、触媒流入ガスには多量の未燃物が含まれている。更に、酸素吸蔵量ＯＳＡが「０」に達しているから、触媒はその未燃物を充分に浄化することができない。この結果、多量の未燃物が触媒の下流に排出される場合がある。
【００２３】
このように、従来装置は、触媒による排気浄化作用にとって不必要な「燃料噴射量の増量補正」を行う場合がある。換言すると、従来装置によれば、触媒流入ガスの空燃比が「触媒流入ガス要求空燃比」よりもリッチ側の空燃比に制御されてしまう場合が発生する。
【００２４】
そこで、本発明者は、実際の触媒流入ガスの空燃比が「触媒流入ガス要求空燃比」に出来るだけ一致するように「機関に供給される混合気の空燃比」を制御することにより、エミッションを更に改善することができる内燃機関の燃料供給量制御装置を開発している。以下、この開発中の燃料供給量制御装置を「本発明装置」と称呼する。本発明装置によれば、触媒を廉価とするために触媒が担持する貴金属の量を予め低減することにより、新品の状態にある触媒の最大酸素吸蔵量Ｃmaxを低下させても、長期に渡って「エミッションが悪化することを回避すること」が可能である。
【００２５】
ここで、本発明装置の空燃比制御の概要について説明する。本発明装置は、下流側空燃比センサの出力値Voxsの変化速度ΔVoxsは触媒の状態（酸素吸蔵状態）を表すので、出力値Voxsの変化速度ΔVoxsに基づいて「触媒流入ガスの空燃比（即ち、機関に供給される混合気の空燃比）」を制御することにより、触媒流入ガスの空燃比を「触媒流入ガス要求空燃比」に一致させることができるとの知見に基づく。なお、出力値Voxsの変化速度ΔVoxsとは、単位時間あたりの出力値Voxsの変化量、即ち、出力値Voxsの時間微分値（dVoxs/dt）に相当する値のことである。
【００２６】
以下、下流側空燃比センサの出力値Voxsの変化速度ΔVoxsが「触媒の状態を表す」理由について場合分けしながら説明する。
【００２７】
（１）酸素吸蔵量ＯＳＡが上述した下限値ＣＬｏ（即ち、「０」に近い所定値）以下である状態の触媒（酸素不足状態にある触媒、酸素不足触媒）に、リーン空燃比の燃焼ガス（排ガス）を供給した場合。
【００２８】
この場合、図４に模式的に示したように、燃焼ガスである触媒流入ガスには「微量の未燃物（ＨＣ等）」と「多量且つ過剰な酸素（Ｏ２）」とが含まれている。酸素は触媒４３中の酸素吸蔵材（例えば、セリア（CeO2)）と結合することにより触媒４３に吸蔵される。未燃物は「触媒流入ガス中の酸素又は触媒４３に残存している酸素」と結合する。このように、触媒流入ガスに含まれる酸素は触媒４３内において吸蔵又は消費されるので、触媒流出ガス中に酸素は殆ど存在しない。この結果、下流側空燃比センサの出力値Voxsは最大出力値Vmax近傍の値となる。
【００２９】
但し、リーン空燃比の触媒流入ガスに含まれる酸素の量はリッチ空燃比の触媒流入ガスに含まれる酸素の量よりも非常に多いので、このような酸素不足状態にある触媒にリーン空燃比の触媒流入ガスが流入すると、酸素が極微量ではあるが触媒から漏れ出す。よって、下流側空燃比センサの出力値Voxsは、最大出力値Vmaxよりも僅かに低下した値（但し、中央値Vmidよりもかなり大きい値）になる（図３の点Ｐ１を参照。）。
【００３０】
（２）触媒にリーン空燃比の燃焼ガスを供給し続けることにより、酸素吸蔵量ＯＳＡが上述した上限値ＣＨｉ（即ち、最大酸素吸蔵量Ｃmaxに近い所定値）以上となった場合。
【００３１】
この場合、図５に模式的に示したように、燃焼ガスである触媒流入ガスには「微量の未燃物」と「多量且つ過剰な酸素」とが含まれている。この状態において、触媒４３の酸素を吸蔵する余力は小さくなっているので、触媒流入ガス中の酸素は、その一部が触媒４３に吸蔵されるものの、残りの多くは触媒４３の下流に流出し始める。未燃物は「触媒４３に吸蔵されている酸素」と結合する。従って、触媒流出ガスが過剰の酸素を含み始める。よって、下流側空燃比センサの出力値Voxsは最小出力値Vmin近傍に向けて急激に減少し始め、その後、最小出力値Vminに到達する。
【００３２】
以上の説明から理解されるように、理論空燃比よりもリーン側の空燃比の燃焼ガスを触媒に供給している場合に下流側空燃比センサの出力値Voxsが減少を開始した時、触媒の酸素吸蔵量ＯＳＡは相当に大きくなっている。従って、この状態において、触媒に「理論空燃比よりもリーン側の空燃比のガス」を供給し続けることは適切でない。換言すると、下流側空燃比センサの出力値Voxsが比較的迅速に減少している場合（即ち、出力値Voxsが減少しかつ出力値Voxsの変化速度ΔVoxsの絶対値が所定の閾値よりも大きい場合）、たとえ出力値Voxsが中央値Vmidよりも大きくても、「触媒流入ガス要求空燃比」は理論空燃比又は理論空燃比よりもリッチ側の空燃比である。
【００３３】
（３）酸素吸蔵量ＯＳＡが上述した上限値ＣＨｉ以上である状態の触媒（酸素過剰状態にある触媒、酸素過剰触媒）に、リッチ空燃比の燃焼ガスを供給した場合。
【００３４】
この場合、図６に模式的に示したように、燃焼ガスである触媒流入ガスには「多量且つ過剰な未燃物」と「微量の酸素」とが含まれている。未燃物は「触媒４３に吸蔵されている酸素」と結合するから、触媒４３の下流に漏れ出さない。一方、触媒流入ガス中の微量な酸素は触媒４３に吸蔵されることなく触媒４３を通過し、触媒４３の下流に流出する。この結果、下流側空燃比センサの出力値Voxsは最小出力値Vmin近傍の値であって、最小出力値Vminよりも僅かに増大した値（但し、中央値Vmidよりはかなり小さい値）になる（図３の点Ｐ２を参照。）。
【００３５】
（４）触媒にリッチ空燃比の燃焼ガスを供給し続けることにより、酸素吸蔵量ＯＳＡが上述した下限値ＣＬｏ（即ち、「０」に近い所定値）以下となった場合。
【００３６】
この場合、図７に模式的に示したように、燃焼ガスである触媒流入ガスには「多量且つ過剰な未燃物」と「微量の酸素」とが含まれている。このとき、それまでに吸蔵していた酸素を未燃物に対して与える「触媒４３の余力」は小さくなっているので、触媒流入ガス中の未燃物は、その一部が「触媒４３に吸蔵されている酸素」と結合し且つ他の一部が「触媒流入ガス中の酸素」と結合するものの、残りの多くは触媒４３の下流に流出し始める。更に、触媒流入ガス中の酸素は触媒４３に吸蔵される。従って、触媒流出ガスには酸素が含まれず、未燃物が含まれ始める。よって、下流側空燃比センサの出力値Voxsは最大出力値Vmax近傍に向けて急激に増大し、その後、最大出力値Vmaxに到達する。
【００３７】
以上の説明から理解されるように、理論空燃比よりもリッチ側の空燃比の燃焼ガスを触媒に供給している場合に下流側空燃比センサの出力値Voxsが増大を開始した時、触媒の酸素吸蔵量ＯＳＡは相当に小さくなっている。従って、この状態において、触媒に「理論空燃比よりもリッチ側の空燃比のガス」を供給し続けることは適切でない。換言すると、下流側空燃比センサの出力値Voxsが比較的迅速に増大している場合、（即ち、出力値Voxsが増大しかつ出力値Voxsの変化速度ΔVoxsの絶対値が所定の閾値よりも大きい場合）、たとえ出力値Voxsが中央値Vmidよりも小さくても、「触媒流入ガス要求空燃比」は理論空燃比又は理論空燃比よりもリーン側の空燃比である。
【００３８】
但し、出力値Voxsが最大出力値Vmax近傍の値である場合には、変化速度ΔVoxsに拘わらず触媒４３の状態は酸素不足状態（酸素吸蔵量ＯＳＡが実質的に「０」である状態）であると考えられる。従って、その場合の「触媒流入ガス要求空燃比」は、理論空燃比又は理論空燃比よりもリーン側の空燃比である。
【００３９】
同様に、出力値Voxsが最小出力値Vmin近傍の値である場合には、変化速度ΔVoxsに拘わらず触媒４３の状態は酸素過剰状態（酸素吸蔵量ＯＳＡが実質的に最大酸素吸蔵量Ｃmaxである状態）であると考えられる。従って、その場合の「触媒流入ガス要求空燃比」は、理論空燃比又は理論空燃比よりもリッチ側の空燃比である。
【００４０】
本発明装置は、このような知見に基づいてなされたものであり、触媒流出ガスに含まれる酸素の濃度（酸素分圧）に応じた出力値Voxsを出力する濃淡電池型の酸素濃度センサ（下流側空燃比センサ）と、その酸素濃度センサの出力値Voxsと変化速度ΔVoxsとに基づいて「機関に供給される混合気の空燃比（機関の空燃比）」を制御する燃料供給量制御手段と、を備える。
【００４１】
より具体的には、前記燃料供給量制御手段は、
（Ａ１）出力値Voxsが「所定の低側閾値」と「前記低側閾値よりも大きい所定の高側閾値」との間にある場合、以下に述べる第１期間において、前記触媒流入ガスの空燃比が理論空燃比よりもリーン側の所定の第１リーン空燃比となるように、機関の空燃比を制御する。
【００４２】
前記第１期間の開始時点は、前記出力値Voxsが増大しているときの前記出力値の変化速度の絶対値｜ΔVoxs｜が所定の第１変化速度閾値以上となった時点である。
前記第１期間の終了時点は、前記出力値Voxsが減少しているときの前記出力値の変化速度の絶対値｜ΔVoxs｜が所定の第２変化速度閾値以上となる時点、及び、前記出力値Voxsが前記高側閾値以上になる時点、の何れかである。
【００４３】
更に、前記燃料供給量制御手段は、
（Ａ２）出力値Voxsが「前記低側閾値」と「前記高側閾値」との間にある場合、以下に述べる第２期間において、前記触媒流入ガスの空燃比が理論空燃比よりもリッチ側の所定の第１リッチ空燃比となるように、機関の空燃比を制御する。
【００４４】
前記第２期間の開始時点は、前記出力値Voxsが減少しているときの前記出力値の変化速度の絶対値｜ΔVoxs｜が前記第２変化速度閾値以上となった時点である。
前記第２期間の終了時点は、前記出力値Voxsが増大しているときの前記出力値の変化速度の絶対値｜ΔVoxs｜が前記第１変化速度閾値以上となる時点、及び、前記出力値Voxsが前記低側閾値以下となる時点、の何れかである。
【００４５】
なお、前記低側閾値は前記中央値Vmidと前記最小出力値Vminとの間の所定値であり、前記高側閾値は前記中央値Vmidと前記最大出力値Vmaxとの間の所定値である。更に、前記第１変化速度閾値及び前記第２変化速度閾値は何れも正の所定値であり、両者は互いに同一であっても異なっていてもよい。
【００４６】
前述したように、下流側空燃比センサ（酸素濃度センサ）の出力値Voxsが比較的迅速に増大している場合、たとえ下流側空燃比センサの出力値が中央値Vmidよりも小さいときであっても、触媒の酸素吸蔵量ＯＳＡは最大酸素吸蔵量Ｃmaxの近傍ではなく、寧ろ、「０」に近い値にまで減少している。従って、下流側空燃比センサの出力値が比較的迅速に増大している場合（より具体的には、下流側空燃比センサの出力値の変化速度ΔVoxsが正であり且つその絶対値｜ΔVoxs｜が第１変化速度閾値よりも大きいとき）、触媒流入ガス要求空燃比は理論空燃比よりリーン側の空燃比である。
【００４７】
それ故、上記構成（Ａ１）によれば、酸素吸蔵量ＯＳＡが「０」に到達する前の時点において「触媒流入ガスの空燃比」を「理論空燃比よりもリーン側の空燃比（第１リーン空燃比）」に設定することができ、それにより酸素吸蔵量ＯＳＡを増大させ始めることができる（図２０の時刻ｔ７以降における実線を参照。）。即ち、本発明装置は、従来装置のように不必要な燃料噴射量の増量補正を行わないので、多量の未燃物が排出されることを回避することができる。
【００４８】
加えて、前述したように、下流側空燃比センサ（酸素濃度センサ）の出力値Voxsが比較的迅速に減少している場合、たとえ下流側空燃比センサの出力値が中央値Vmidよりも大きいときであっても、触媒の酸素吸蔵量ＯＳＡは「０」近傍の量ではなく、寧ろ、最大酸素吸蔵量Ｃmaxに近い値にまで増大している。従って、下流側空燃比センサの出力値が比較的迅速に減少している場合（より具体的には、下流側空燃比センサの出力値の変化速度ΔVoxsが負であり且つその絶対値｜ΔVoxs｜が第２変化速度閾値よりも大きいとき）、触媒流入ガス要求空燃比は理論空燃比よりもリッチ側の空燃比である。
【００４９】
それ故、上記構成（Ａ２）によれば、酸素吸蔵量ＯＳＡが最大酸素吸蔵量Ｃmaxに到達する前の時点において「触媒流入ガスの空燃比」を「理論空燃比よりもリッチ側の空燃比（第１リッチ空燃比）」に設定することができ、それにより酸素吸蔵量ＯＳＡを減少させ始めることができる（図２０の時刻ｔ３以降における実線を参照。）。即ち、本発明装置は、従来装置のように不必要な燃料噴射量の減量補正を行わないので、多量のＮＯｘが触媒の下流に排出されることを回避することができる。
【００５０】
この結果、本発明装置は、図８に示したように、フューエルカット制御の終了直後及び触媒過熱防止増量の終了直後等を除く「通常のフィードバック制御中」、出力値Voxsが高側閾値と低側閾値との間において緩慢に変化するように機関の空燃比を制御することができる。即ち、本発明装置によれば、触媒の酸素吸蔵量ＯＳＡが「０」又は最大酸素吸蔵量Ｃmaxに到達しないように機関の空燃比を制御することができるので、換言すると、酸素吸蔵量ＯＳＡが「０」よりも大きい値と最大酸素吸蔵量Ｃmaxよりも小さい値との間で変化するように機関の空燃比を制御することができるので、エミッションを良好に維持することができる。
【００５１】
ところで、前述したように、前記高側閾値は、中央値Vmidと最大出力値Vmaxとの間の値に設定される。例えば、前記高側閾値は、「触媒流入ガスの空燃比」が「理論空燃比よりもリーン側の空燃比」であり且つ触媒の酸素吸蔵量ＯＳＡが増大している場合であって、「触媒流出ガスの空燃比」が「理論空燃比」であるときの出力値Voxs（上限値Vjogen）又はその上限値Vjogenよりも中央値Vmidに近い値となるように設定される。
【００５２】
触媒の酸素吸蔵量ＯＳＡが「０」又は実質的に「０」である場合（触媒が酸素不足状態である場合）、酸素は触媒の下流に流出しないか（図７を参照。）又は酸素は極めて僅かな量だけ触媒の下流に流出する（図４を参照。）。従って、触媒が酸素不足状態であるとき、出力値Voxsは最大出力値Vmax又は最大出力値Vmax近傍の値となるので、出力値Voxsは前記高側閾値以上となる。
【００５３】
従って、そのような場合（出力値Voxsが前記高側閾値よりも大きい場合）には、「触媒流入ガスの空燃比」を「理論空燃比よりもリッチ側の空燃比」に設定しないほうがよい。換言すると、この場合の「触媒流入ガス要求空燃比」は理論空燃比又は理論空燃比よりもリーン側の空燃比である。
【００５４】
そこで、前記燃料供給量制御手段は、更に、
（Ｂ）出力値Voxsが前記高側閾値以上である場合、
前記触媒流入ガスの空燃比が理論空燃比よりもリーン側の第２リーン空燃比となるように、機関の空燃比を制御するように構成されている。
【００５５】
これによれば、触媒過熱防止及び出力確保等のための燃料増量が行われることにより酸素吸蔵量ＯＳＡが「０」に達し、その後、増量が不要となった場合において、酸素吸蔵量ＯＳＡを速やかに増大させることができる。更に、上記（Ａ１）及び上記（Ａ２）に従った空燃比の制御中において、出力値Voxsが高側閾値以上となった場合にも、酸素吸蔵量ＯＳＡを速やかに増大させ、出力値Voxsを高側閾値と低下側閾値との間に戻すことができる（図９を参照。）。
【００５６】
これに対し、前記低側閾値は、中央値Vmidと最小出力値Vminとの間の値に設定される。例えば、前記低側閾値は、「触媒流入ガスの空燃比」が「理論空燃比よりもリッチ側の空燃比」であり且つ触媒の酸素吸蔵量ＯＳＡが減少している場合であって、「触媒流出ガスの空燃比」が「理論空燃比」であるときの出力値Voxs（下限値Vkagen）又はその下限値Vkagenよりも中央値Vmidに近い値となるように設定される。
【００５７】
触媒の酸素吸蔵量ＯＳＡが最大酸素吸蔵量Ｃmax又は実質的に最大酸素吸蔵量Ｃmaxである場合（触媒が酸素過剰状態である場合）、酸素が触媒の下流に多量に流出するか（図５を参照。）又は酸素が触媒の下流に少量だけ流出する（図６を参照。）。従って、触媒が酸素過剰状態であるとき、出力値Voxsは最小出力値Vmin又は最小出力値Vmin近傍の値となるので、出力値Voxsは前記低側閾値以下となる。
【００５８】
従って、そのような場合（出力値Voxsが前記低側閾値よりも小さい場合）には、「触媒流入ガスの空燃比」を「理論空燃比よりもリーン側の空燃比」に設定しないほうがよい。換言すると、この場合の「触媒流入ガス要求空燃比」は理論空燃比又は理論空燃比よりもリッチ側の空燃比である。
【００５９】
そこで、前記燃料供給量制御手段は、更に、
（Ｃ）出力値Voxsが前記低側閾値以下である場合、前記触媒流入ガスの空燃比が理論空燃比よりもリッチ側の第２リッチ空燃比となるように、機関の空燃比を制御するように構成されている。
【００６０】
これによれば、例えば、フューエルカット運転が行われることにより酸素吸蔵量ＯＳＡが最大酸素吸蔵量Ｃmaxに達し、その後、フューエルカット運転が終了した場合において、酸素吸蔵量ＯＳＡを速やかに減少させることができる。更に、上記（Ａ１）及び上記（Ａ２）に従った空燃比の制御中において、出力値Voxsが低側閾値以下となった場合にも、酸素吸蔵量ＯＳＡを速やかに減少させ、出力値Voxsを高側閾値と低下側閾値との間に戻すことができる（図１０を参照。）。
【００６１】
図１１は、フューエルカット制御の終了後における「本発明装置による出力値Voxsの変化」の様子を拡大して示したタイムチャートである。この例において、フューエルカット制御は時刻ｔ１にて終了している。従って、前記（Ｃ）に従った制御により、時刻ｔ１以降、触媒流入ガスの空燃比は第２リッチ空燃比に制御される。その後、時刻ｔ２において、出力値Voxsは低側閾値と高側閾値との間の値であり且つ出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜が「通常の第１変化速度閾値ΔV1th＝ΔV1mid」を超える。従って、前記（Ａ１）に従った制御により、時刻ｔ２以降、触媒流入ガスの空燃比は第１リーン空燃比に制御される。
【００６２】
前述したように、出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜が第１変化速度閾値ΔV1thを超えたとき、触媒の状態は既に酸素不足状態へとなっている。従って、通常のフィードバック制御（フューエルカット終了直後を除く期間におけるフィードバック制御）において、絶対値｜ΔVoxs｜が第１変化速度閾値ΔV1th以上となる時刻ｔ２にて「触媒流入ガスの空燃比」を「第１リーン空燃比」に設定することは、「触媒流入ガス要求空燃比」に合致した空燃比制御であると言える。
【００６３】
しかしながら、この時刻ｔ２においては、触媒に担持されている酸素吸蔵材は酸素を放出していて「還元状態となっている」が、触媒に担持されている「触媒物質である貴金属」は充分に還元状態に至っていない。即ち、貴金属はフューエルカット制御中の多量の酸素によって酸化された状態にあり、貴金属がこの状態を脱するためには、酸素吸蔵材から「フューエルカット制御中に吸蔵した過剰な酸素」を放出させるのに必要な未燃物よりも多くの未燃物が必要である。従って、仮に、時刻ｔ２にて空燃比を第２リッチ空燃比から第１リーン空燃比へと変更してしまうと、貴金属が充分に還元できていない（酸素被毒状態である）ので、その後の触媒浄化効率が低下する可能性がある。
【００６４】
そこで、本発明装置の燃料供給量制御手段は、
フューエルカット終了時点（即ち、フューエルカット終了条件が成立することによりフューエルカット制御が終了されて機関への燃料の供給が再開される時点）から、出力値Voxsが増大しているときの出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜が前記第１変化速度閾値ΔV1th以上となる時点までの期間（この期間は「フューエルカット制御終了後期間」とも称呼される。）において、その第１変化速度閾値ΔV1thを、フューエルカット制御終了後期間の経過後（即ち、通常のフィードバック制御）における値ΔV1midよりも大きい値ΔV1largeに設定するように構成されている。
【００６５】
これによれば、フューエルカット制御終了後期間において、出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜が「フューエルカット制御終了後期間の経過後における第１変化速度閾値（＝ΔV1mid）よりも大きい値に設定された第１変化速度閾値（＝ΔV1large）」以上となる時点（図１１の時刻ｔ３）まで、触媒流入ガスの空燃比は第２リッチ空燃比に維持される。この結果、フューエルカット制御終了後期間において、触媒の酸素吸蔵量ＯＳＡを迅速に増大させることができるとともに、触媒の貴金属が「フューエルカット制御による酸化状態」から脱して還元状態となるまで、触媒流入ガスの空燃比をリッチ空燃比（第２リッチ空燃比）に設定することができる。従って、フューエルカット制御終了後期間の経過後において、エミッションを良好に維持することができる。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施形態に係る内燃機関の燃料供給量制御装置（本制御装置）を適用した内燃機関の概略図である。
【図２】図１に示した上流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図３】図１に示した下流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図４】酸素不足状態にある触媒にリーン空燃比（理論空燃比よりもリーン側の空燃比）のガスが流入した場合における同触媒の作用を示した概念図である。
【図５】酸素過剰状態にある触媒にリーン空燃比のガスが流入した場合における同触媒の作用を示した概念図である。
【図６】酸素過剰状態にある触媒にリッチ空燃比（理論空燃比よりもリッチ側の空燃比）のガスが流入した場合における同触媒の作用を示した概念図である。
【図７】酸素不足状態にある触媒にリッチ空燃比のガスが流入した場合における同触媒の作用を示した概念図である。
【図８】本制御装置によって空燃比をフィードバック制御している場合（通常のフィードバック制御時）の下流側空燃比センサの出力値と触媒流入ガスの空燃比とを示したタイムチャートである。
【図９】本制御装置によって空燃比をフィードバック制御している場合（増量終了後）の下流側空燃比センサの出力値と触媒流入ガスの空燃比とを示したタイムチャートである。
【図１０】本制御装置によって空燃比をフィードバック制御している場合（フューエルカット制御終了後）の下流側空燃比センサの出力値と触媒流入ガスの空燃比とを示したタイムチャートである。
【図１１】本制御装置の作動を説明するためのフューエルカット制御終了後における下流側空燃比センサの出力値を示したタイムチャートである。
【図１２】本制御装置のＣＰＵが実行する「燃料噴射制御ルーチン」を示したフローチャートである。
【図１３】本制御装置のＣＰＵが実行する「フューエルカット条件判定ルーチン」を示したフローチャートである。
【図１４】本制御装置のＣＰＵが実行する「下流側空燃比センサの出力値の変化速度を取得するためのルーチン」を示したフローチャートである。
【図１５】本制御装置のＣＰＵが実行する「触媒状態判定のためのルーチン」を示したフローチャートである。
【図１６】本制御装置のＣＰＵが実行する「他の触媒状態判定のためのルーチン」を示したフローチャートである。
【図１７】本制御装置のＣＰＵが実行する「メインフィードバック量算出ルーチン」を示したフローチャートである。
【図１８】本制御装置のＣＰＵが実行する「メインフィードバック量制限ルーチン」を示したフローチャートである。
【図１９】本制御装置のＣＰＵが実行する「サブフィードバック量算出ルーチン」を示したフローチャートである。
【図２０】従来の燃料供給量制御装置及び本発明による燃料供給量制御装置の作動を説明するためのタイムチャートである。
【発明を実施するための形態】
【００６７】
以下、本発明の実施形態に係る内燃機関の燃料供給量制御装置について図面を参照しながら説明する。
【００６８】
（構成）
図１は、本発明の実施形態に係る燃料供給量制御装置（以下、「本制御装置」とも称呼する。）が適用される内燃機関１０の概略構成を示している。機関１０は、４サイクル・火花点火式・多気筒（本例において４気筒）・ガソリン燃料機関である。機関１０は、本体部２０、吸気系統３０及び排気系統４０を備えている。
【００６９】
本体部２０は、シリンダブロック部とシリンダヘッド部とを備えている。本体部２０は、ピストン頂面、シリンダ壁面及びシリンダヘッド部の下面からなる複数（４個）の燃焼室（第１気筒＃１乃至第４気筒＃４）２１を備えている。
【００７０】
シリンダヘッド部には、各燃焼室（各気筒）２１に「空気及び燃料からなる混合気」を供給するための吸気ポート２２と、各燃焼室２１から排ガス（既燃ガス）を排出するための排気ポート２３と、が形成されている。吸気ポート２２は図示しない吸気弁により開閉され、排気ポート２３は図示しない排気弁により開閉されるようになっている。
【００７１】
シリンダヘッド部には複数（４個）の点火プラグ２４が固定されている。各点火プラグ２４は、その火花発生部が各燃焼室２１の中央部であってシリンダヘッド部の下面近傍位置に露呈するように配設されている。各点火プラグ２４は、点火信号に応答して火花発生部から点火用火花を発生するようになっている。
【００７２】
シリンダヘッド部には更に複数（４個）の燃料噴射弁（インジェクタ）２５が固定されている。燃料噴射弁２５は、各吸気ポート２２に一つずつ（即ち、一つの気筒に対して一つ）設けられている。燃料噴射弁２５は、噴射指示信号に応答し、「その噴射指示信号に含まれる指示噴射量の燃料」を対応する吸気ポート２２内に噴射するようになっている。
【００７３】
更に、シリンダヘッド部には、吸気弁制御装置２６が設けられている。この吸気弁制御装置２６は、インテークカムシャフト（図示せず）とインテークカム（図示せず）との相対回転角度（位相角度）を油圧により調整・制御する周知の構成を備えている。吸気弁制御装置２６は、指示信号（駆動信号）に基いて作動し、吸気弁の開弁タイミング（吸気弁開弁タイミング）を変更することができるようになっている。
【００７４】
吸気系統３０は、インテークマニホールド３１、吸気管３２、エアフィルタ３３、スロットル弁３４及びスロットル弁アクチュエータ３４ａを備えている。
【００７５】
インテークマニホールド３１は、各吸気ポート２２に接続された複数の枝部と、それらの枝部が集合したサージタンク部と、を備えている。吸気管３２はサージタンク部に接続されている。インテークマニホールド３１、吸気管３２及び複数の吸気ポート２２は、吸気通路を構成している。エアフィルタ３３は吸気管３２の端部に設けられている。スロットル弁３４はエアフィルタ３３とインテークマニホールド３１との間の位置において吸気管３２に回動可能に取り付けられている。スロットル弁３４は、回動することにより吸気管３２が形成する吸気通路の開口断面積を変更するようになっている。スロットル弁アクチュエータ３４ａは、ＤＣモータからなり、指示信号（駆動信号）に応答してスロットル弁３４を回動させるようになっている。
【００７６】
排気系統４０は、エキゾーストマニホールド４１、エキゾーストパイプ（排気管）４２、上流側触媒４３及び下流側触媒４４を備えている。
【００７７】
エキゾーストマニホールド４１は、各排気ポート２３に接続された複数の枝部４１ａと、それらの枝部４１ａが集合した集合部（排気集合部）４１ｂと、からなっている。エキゾーストパイプ４２は、エキゾーストマニホールド４１の集合部４１ｂに接続されている。エキゾーストマニホールド４１、エキゾーストパイプ４２及び複数の排気ポート２３は、排ガスが通過する通路を構成している。なお、本明細書において、エキゾーストマニホールド４１の集合部４１ｂ及びエキゾーストパイプ４２により形成される通路を、便宜上、「排気通路」と称呼する。
【００７８】
上流側触媒４３は、セラミックからなる担持体に「触媒物質である貴金属（パラジウムＰｄ及び白金Ｐｔ、ロジウムＲｄ等の一種類以上）」及び「酸素吸蔵材であるセリア（CeO2)」を担持していて、酸素吸蔵・放出機能（酸素吸蔵機能）を有する三元触媒である。上流側触媒４３はエキゾーストパイプ４２に配設（介装）されている。上流側触媒４３は所定の活性温度に到達すると、「未燃物（ＨＣ、ＣＯ及びＨ２等）と窒素酸化物（ＮＯｘ）とを同時に浄化する触媒機能」及び「酸素吸蔵機能」を発揮する。上流側触媒４３は、スタート・キャタリティック・コンバータ（ＳＣ）又は第１触媒とも称呼される。
【００７９】
下流側触媒４４は、上流側触媒４３と同様の三元触媒である。下流側触媒４４は、上流側触媒４３よりも下流においてエキゾーストパイプ４２に配設（介装）されている。下流側触媒４４は、車両のフロア下方に配設されているため、アンダ・フロア・キャタリティック・コンバータ（ＵＦＣ）又は第２触媒とも称呼される。なお、本明細書において、単に「触媒」と言うとき、その「触媒」は上流側触媒４３を意味する。
【００８０】
本制御装置は、熱線式エアフローメータ５１、スロットルポジションセンサ５２、機関回転速度センサ５３、水温センサ５４、上流側空燃比センサ５５、下流側空燃比センサ５６及びアクセル開度センサ５７を備えている。
【００８１】
熱線式エアフローメータ５１は、吸気管３２内を流れる吸入空気の質量流量を検出し、その質量流量（機関１０の単位時間あたりの吸入空気量）Ｇａを表す信号を出力するようになっている。
【００８２】
スロットルポジションセンサ５２は、スロットル弁３４の開度を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
【００８３】
機関回転速度センサ５３は、インテークカムシャフトが５°回転する毎に幅狭のパルスを有するとともにインテークカムシャフトが３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。機関回転速度センサ５３から出力される信号は後述する電気制御装置６０により機関回転速度ＮＥを表す信号に変換されるようになっている。更に、電気制御装置６０は、機関回転速度センサ５３及び図示しないクランク角センサからの信号に基いて、機関１０のクランク角度（絶対クランク角）を取得するようになっている。
【００８４】
水温センサ５４は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。
【００８５】
上流側空燃比センサ５５は、エキゾーストマニホールド４１の集合部４１ｂと上流側触媒４３との間の位置においてエキゾーストマニホールド４１及びエキゾーストパイプ４２の何れか（即ち、排気通路）に配設されている。上流側空燃比センサ５５は、例えば、特開平１１−７２４７３号公報、特開２０００−６５７８２号公報及び特開２００４−６９５４７号公報等に開示された「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
【００８６】
上流側空燃比センサ５５は、図２に示したように、上流側空燃比センサ５５の配設位置を流れる排ガスの空燃比（触媒４３に流入するガスである「触媒流入ガス」の空燃比、検出上流側空燃比abyfs）に応じた出力値Vabyfsを出力する。出力値Vabyfsは触媒流入ガスの空燃比が大きくなるほど（即ち、触媒流入ガスの空燃比がリーン側の空燃比になるほど）増大する。
【００８７】
電気制御装置６０は、図２に示した空燃比変換テーブル（マップ）Mapabyfsを記憶している。電気制御装置６０は、出力値Vabyfsを空燃比変換テーブルMapabyfsに適用することにより、実際の上流側空燃比abyfsを検出する（検出上流側空燃比abyfsを取得する）ようになっている。
【００８８】
再び、図１を参照すると、下流側空燃比センサ５６は、上流側触媒４３と下流側触媒４４との間の位置においてエキゾーストパイプ４２（即ち、排気通路）に配設されている。下流側空燃比センサ５６は、周知の濃淡電池型の酸素濃度センサ（Ｏ２センサ）である。下流側空燃比センサ５６は、例えば、固体電解質層と、固体電解質層の外側に形成された排ガス側電極層と、大気室（固体電解質層の内側）に露呈し且つ固体電解室層を挟んで排ガス側電極層と対向するように固体電解質層の内側に形成された大気側電極層と、排ガス側電極層を覆い且つ排ガスが接触する（排ガス中に晒されるように配置される）拡散抵抗層と、を備える。固体電解質層は試験管状であってもよく、板状であってもよい。下流側空燃比センサ５６は、下流側空燃比センサ５６の配設位置を流れる排ガス（即ち、触媒４３から流出するガスである「触媒流出ガス」）の空燃比（下流側空燃比afdown）に応じた出力値Voxsを出力するようになっている。
【００８９】
下流側空燃比センサ５６の出力値Voxsは、図３に示したように、触媒流出ガス（被検出ガス）の空燃比が理論空燃比よりもリッチ側の空燃比であって、触媒流出ガスの酸化平衡後のガスの酸素分圧が小さいとき最大出力値Vmax（例えば、約０．９〜１．０Ｖ）となる。即ち、下流側空燃比センサ５６は、触媒流出ガスに過剰の酸素が含まれていないときに最大出力値Vmaxを出力する。
【００９０】
また、出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリーン側の空燃比であって、触媒流出ガスの酸化平衡後のガスの酸素分圧が大きいとき最小出力値min（例えば、約０〜０．１Ｖ）となる。即ち、下流側空燃比センサ５６は触媒流出ガスに過剰の酸素が含まれているとき最小出力値Vminを出力する
【００９１】
更に、この出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリッチ側の空燃比からリーン側の空燃比へと変化する際に最大出力値Vmaxから最小出力値Vminへと急激に減少する。逆に、出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリーン側の空燃比からリッチ側の空燃比へと変化する際に最小出力値Vminから最大出力値Vmaxへと急激に増大する。なお、最小出力値Vminと最大出力値Vmaxとの平均値は中央値Vmid（＝（Vmax＋Vmin）／２）と称呼される。
【００９２】
図１に示したアクセル開度センサ５７は、運転者によって操作されるアクセルペダルＡＰの操作量を検出し、アクセルペダルＡＰの操作量Accpを表す信号を出力するようになっている。
【００９３】
電気制御装置６０は、「ＣＰＵ、ＲＯＭ、ＲＡＭ、バックアップＲＡＭ、並びに、ＡＤコンバータを含むインターフェース等」からなる「周知のマイクロコンピュータ」を含む電子回路である。
【００９４】
電気制御装置６０が備えるバックアップＲＡＭは、機関１０を搭載した車両の図示しないイグニッション・キー・スイッチの位置（オフ位置、始動位置及びオン位置等の何れか）に関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップＲＡＭは、バッテリから電力の供給を受けている場合、ＣＰＵの指示に応じてデータを格納する（データが書き込まれる）とともに、そのデータを読み出し可能となるように保持（記憶）する。バックアップＲＡＭは、バッテリが車両から取り外される等によりバッテリからの電力供給が遮断されると、データを保持することができない。即ち、それまでに保持していたデータが消失（破壊）される。
【００９５】
電気制御装置６０のインターフェースは、前記センサ５１〜５７と接続され、ＣＰＵにセンサ５１〜５７からの信号を供給するようになっている。更に、そのインターフェースは、ＣＰＵの指示に応じて、各気筒の点火プラグ２４、各気筒の燃料噴射弁２５、吸気弁制御装置２６及びスロットル弁アクチュエータ３４ａ等に指示信号（駆動信号）等を送出するようになっている。なお、電気制御装置６０は、取得されたアクセルペダルの操作量Accpが大きくなるほどスロットル弁開度ＴＡが大きくなるように、スロットル弁アクチュエータ３４ａに指示信号を送出するようになっている。
【００９６】
（本制御装置による触媒状態の判定及び空燃比フィードバック制御の概要）
本制御装置は、以下のように触媒の状態（酸素吸蔵状態）を判定するとともに、判定された触媒の状態に基づいて触媒流入ガスの空燃比（従って、機関に供給される混合気の空燃比）をフィードバック制御する。この制御において、本制御装置は、少なくとも下流側空燃比センサ５６の出力値Voxs及びその出力値Voxsの変化速度ΔVoxs（出力値Voxsの時間微分値に相当する値、単位時間あたりの出力値Voxsの変化量）を使用する。更に、本制御装置は、低側閾値VLth、高側閾値VHth、第１変化速度閾値ΔV1th及び第２変化速度閾値ΔV2thを使用する。
【００９７】
低側閾値VLthは、中央値Vmidと最小出力値Vminとの間の所定値である。
高側閾値VHthは、中央値Vmidと最大出力値Vmaxとの間の所定値である。
第１変化速度閾値ΔV1th及び第２変化速度閾値ΔV2thは何れも正の所定値である。第１変化速度閾値ΔV1th及び第２変化速度閾値ΔV2thは、互いに同一であってもよく異なっていてもよい。第１変化速度閾値ΔV1thは、フューエルカット制御終了後期間において、そのフューエルカット制御終了後期間が経過した後の通常の空燃比フィードバック期間における値（ΔV1mid）よりも、大きい値（ΔV1large）に設定される。
【００９８】
＜判定１＞
（Ａ１）本制御装置は、下流側空燃比センサ５６の出力値Voxsが低側閾値VLthと高側閾値VHthとの間にある場合、出力値Voxsが増大しているときの「その出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜」が第１変化速度閾値ΔV1th以上となった時点から、出力値Voxsが減少しているときの「その出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜」が第２変化速度閾値ΔV2th以上となる時点までの期間、触媒４３の状態が「酸素過剰状態にはない（リーン否定フラグXNOTlean＝１）」と判定する。そして、本制御装置は、この期間、触媒流入ガスの空燃比がリーン空燃比となるように機関の空燃比を制御する（図８の時刻ｔ２〜ｔ４及び時刻ｔ６〜ｔ８を参照。）。このときのリーン空燃比は便宜上「第１リーン空燃比」とも称呼される。
【００９９】
（Ａ２）本制御装置は、下流側空燃比センサ５６の出力値Voxsが低側閾値VLthと高側閾値VHthとの間にある場合、出力値Voxsが減少しているときの「その出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜」が第２変化速度閾値ΔV2th以上となった時点から、出力値Voxsが増大しているときの「その出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜」が第１変化速度閾値ΔV1thとなる時点までの期間、触媒４３の状態が「酸素不足状態にはない（リッチ否定フラグXNOTrich＝１）」と判定する。そして、本制御装置は、この期間、触媒流入ガスの空燃比がリッチ空燃比となるように機関の空燃比を制御する（図８の時刻ｔ４〜ｔ６を参照。）。このときのリッチ空燃比は便宜上「第１リッチ空燃比」とも称呼される。
【０１００】
この制御によれば、前述したように、酸素吸蔵量ＯＳＡが減少を開始した後、相当に小さい値になったが「０」には至っていない時点（図８の時刻ｔ２及び時刻ｔ６を参照。）において、触媒流入ガスの空燃比（従って、機関の空燃比）をリーン空燃比に設定することができる。更に、酸素吸蔵量ＯＳＡが増大を開始した後、相当に大きい値になったが最大酸素吸蔵量Ｃmaxには至っていない時点（図８の時刻ｔ４及び時刻ｔ８を参照。）にて、触媒流入ガスの空燃比（従って、機関の空燃比）をリッチ空燃比に設定することができる。従って、エミッションが良好になる。
【０１０１】
＜判定２＞
（Ｂ）本制御装置は、出力値Voxsが高側閾値VHth以上である場合、触媒４３の状態が酸素不足状態である（リッチフラグXCCROrich＝１）と判定し、触媒流入ガスの空燃比がリーン空燃比となるように機関の空燃比を制御する。このときのリーン空燃比は便宜上「第２リーン空燃比」とも称呼される（図９の時刻ｔ１〜時刻ｔ２を参照。）。
【０１０２】
（Ｃ）本制御装置は、出力値Voxsが低側閾値VLth以下である場合、触媒４３の状態は酸素過剰状態である（リーンフラグXCCROlean＝１）と判定し、触媒流入ガスの空燃比がリッチ空燃比となるように機関の空燃比を制御する。このときのリッチ空燃比は便宜上「第２リッチ空燃比」とも称呼される（図１０の時刻ｔ１〜時刻ｔ２を参照。）。
【０１０３】
なお、本例において、第１リーン空燃比及び第２リーン空燃比は、互いに同じ空燃比であるが、異なっていてもよい。同様に、本例において、第１リッチ空燃比及び第２リッチ空燃比は、互いに同じ空燃比であるが、異なっていてもよい。
【０１０４】
（Ｄ）本制御装置は、下流側空燃比センサ５６の出力値Voxsが低側閾値VLthと高側閾値VHthとの間にある場合であって、上記（Ａ１）及び上記（Ａ２）により触媒の状態が判定されていないとき、出力値Voxsが中央値Vmidよりも小さければ触媒は酸素過剰状態であると暫定的に判定する（暫定リーンフラグXZlean＝１）。このとき、本制御装置は、触媒流入ガスの空燃比が第１リッチ空燃比又は第２リッチ空燃比となるように機関の空燃比を制御する。なお、このような場合は、例えば、出力値Voxsが低側閾値VLthよりも小さい値から低側閾値VLthよりも大きい値へと変化し、且つ、変化速度ΔVoxsの絶対値｜ΔVoxs｜が第１変化速度閾値ΔV1thを超えていない場合に発生する（図１０の時刻ｔ３〜時刻ｔ４を参照。）。
【０１０５】
（Ｅ）本制御装置は、下流側空燃比センサ５６の出力値Voxsが低側閾値VLthと高側閾値VHthとの間にある場合であって、上記（Ａ１）及び上記（Ａ２）により触媒の状態が判定されていないとき、出力値Voxsが中央値Vmidよりも大きければ触媒は酸素不足状態であると暫定的に判定する（暫定リッチフラグXZrich＝１）。このとき、本制御装置は、触媒流入ガスの空燃比が第１リーン空燃比又は第２リーン空燃比となるように機関の空燃比を制御する。なお、このような場合は、例えば、出力値Voxsが高側閾値VHthよりも大きい値から高側閾値VHthよりも小さい値へと変化し、且つ、変化速度ΔVoxsの絶対値｜ΔVoxs｜が第２変化速度閾値ΔV2thを超えていない場合に発生する（図９の時刻ｔ２〜時刻ｔ３を参照。）。
【０１０６】
これらの制御によれば、図９に示したように、触媒過熱防止のための燃料増量制御が時刻ｔ１以前において実行されることにより酸素吸蔵量ＯＳＡが「０」に到達し、その後、燃料増量制御が終了したとき、出力値Voxsは高側閾値VHth以上であるので（図９の時刻ｔ１を参照。）、触媒流入ガスの空燃比はリーン空燃比（第２リーン空燃比）に設定される。その後、酸素吸蔵量ＯＳＡが増大を開始した後に相当に大きい値になったが最大酸素吸蔵量Ｃmaxには至っていない時点（図９の時刻ｔ３を参照。）にて変化速度ΔVoxsの絶対値｜ΔVoxs｜が第２変化速度閾値ΔV2thを超えるので、触媒流入ガスの空燃比がリッチ空燃比（第１リッチ空燃比）に設定される。
【０１０７】
更に、例えば、図１０に示したように、フューエルカット運転が時刻ｔ１以前において実行されることにより酸素吸蔵量ＯＳＡが最大酸素吸蔵量Ｃmaxに到達し、その後、フューエルカット運転が終了したとき、出力値Voxsは低側閾値VLth以下であるので（図１０の時刻ｔ１を参照。）、触媒流入ガスの空燃比はリッチ空燃比（第２リッチ空燃比）に設定される。その後、変化速度ΔVoxsの絶対値｜ΔVoxs｜が「フューエルカット制御終了後において大きい値（後述する値ΔV1large）に設定されている第１変化速度閾値ΔV1th」を超えるので、触媒流入ガスの空燃比はリーン空燃比（第１リーン空燃比）に設定される（図１０の時刻ｔ４を参照。）。
【０１０８】
より詳細に述べると、図１１に示したように、時刻ｔ１以降（フューエルカット制御終了後）において、第１変化速度閾値ΔV1thが通常の値（通常フィードバック制御中の値）ΔV1midに設定されていれば、出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜は時刻ｔ２にてΔV1mid以上となるので、時刻ｔ２以降において触媒流入ガスの空燃比は第１リーン空燃比に設定される。
【０１０９】
しかし、フューエルカット制御終了後において、出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜が閾値ΔV1midを超えたとき（時刻ｔ２）、触媒４３に担持されている酸素吸蔵材は「フューエルカット制御中に吸蔵した多量の酸素」を放出していて「還元状態となっている」が、触媒４３に担持されている「触媒物質である貴金属」は充分に還元状態に至っていない。即ち、触媒４３の貴金属はフューエルカット制御中の多量の酸素によって酸化された状態にあり、貴金属がこの状態を脱するためには、酸素吸蔵材から「フューエルカット制御中に吸蔵した過剰な酸素」を放出させるのに必要な未燃物よりも多くの未燃物が必要である。
【０１１０】
そこで、本制御装置は、フューエルカット制御終了後、出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜が最初に第１変化速度閾値ΔV1thを超えるまでの期間（フューエルカット制御終了後期間）、その第１変化速度閾値ΔV1thを値ΔV1midよりも大きい値ΔV1large（この値を、「フューエルカット制御終了後第１変化速度閾値」とも称呼する。）に設定する。この結果、出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜は、時刻ｔ２よりも遅い時刻ｔ３にて第１変化速度閾値ΔV1th（＝ΔV1large）を超える。そして、この時刻ｔ３までに、触媒４３の貴金属が酸化状態から還元状態へと変化する。よって、その後のフィードバック制御において、触媒４３の貴金属が酸素被毒状態となってしまわないので、触媒４３の浄化率を高い値に維持することができる。その結果、エミッションを良好にすることができる。
【０１１１】
（作動）
次に、本制御装置の実際の作動の詳細について説明する。
＜燃料噴射制御＞
ＣＰＵは、図１２にフローチャートにより示した最終燃料噴射量Ｆｉの計算及び噴射指示を行うルーチンを、各気筒のクランク角が各気筒の吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が上記所定クランク角度になると、ＣＰＵはステップ１２００から処理を開始し、以下に述べるステップ１２１０乃至ステップ１２６０の処理を順に行ってステップ１２９５に進む。
【０１１２】
ステップ１２１０：ＣＰＵは、テーブルMapMc（Ｇａ，ＮＥ）に基づいて「今回の吸気行程を迎える気筒」に吸入される筒内吸入空気量Ｍｃ（ｋ）を取得（推定・決定）する。今回の吸気行程を迎える気筒は「燃料噴射気筒」とも称呼される。Ｇａは、エアフローメータ５１が計測している吸入空気量である。ＮＥは、別途求められている機関回転速度である。筒内吸入空気量Ｍｃ（ｋ）は、各気筒の吸気行程に対応されながらＲＡＭに記憶されていく。なお、ＣＰＵは周知の「空気モデル」を用いて筒内吸入空気量Ｍｃ（ｋ）を推定してもよい。
【０１１３】
ステップ１２２０：ＣＰＵは、筒内吸入空気量Ｍｃ（ｋ）を上流側目標空燃比abyfrで除することにより、機関の空燃比を上流側目標空燃比abyfrに一致させるための基本燃料噴射量Ｆｂａｓｅを求める。この場合、上流側目標空燃比abyfrは、通常時において理論空燃比stoich（本例においては１４．７）に設定されている。従って、基本燃料噴射量Ｆｂａｓｅは機関の空燃比を理論空燃比に一致させるためのフィードフォワード量となる。なお、上流側目標空燃比abyfrは、例えば、冷却水温ＴＨＷが所定値以下である場合、及び、機関１０の運転状態から推定される触媒４３の温度が所定温度以上である場合、理論空燃比よりも小さい空燃比（リッチ空燃比）に設定される。
【０１１４】
ステップ１２３０：ＣＰＵは、基本燃料噴射量Ｆｂａｓｅを、メインフィードバック量ＤＦmain及びサブフィードバック量ＫＦsubに基づいて補正することにより、最終燃料噴射量Ｆｉを算出する。即ち、ＣＰＵは、基本燃料噴射量Ｆｂａｓｅにサブフィードバック量ＫＦsubを乗じて得られる値にメインフィードバック量ＤＦmainを加えることによって最終燃料噴射量Ｆｉを求める。なお、メインフィードバック量ＤＦmain及びサブフィードバック量ＫＦsubは、基本燃料噴射量Ｆｂａｓｅを補正する補正量であるので、それぞれ単独で又は両者を合わせて「空燃比補正量」とも称呼される。
【０１１５】
ステップ１２４０：ＣＰＵはフューエルカットフラグＸＦＣの値が「１」であるか否かを判定する。フューエルカットフラグＸＦＣの値は、後述する図１３にフローチャートにより示したフューエルカット条件判定ルーチンにより、フューエルカット条件（燃料供給遮断条件、フューエルカット開始条件）が成立したときに「１」に設定され、フューエルカットフラグＸＦＣの値が「１」であるときにフューエルカット終了条件が成立すると「０」に設定される。
【０１１６】
ＣＰＵは、フューエルカットフラグＸＦＣの値が「１」であるとき、ステップ１２４０にて「Ｙｅｓ」と判定してステップ１２５０に進み、最終燃料噴射量Ｆｉを「０」に設定してからステップ１２６０に進む。これに対し、フューエルカットフラグＸＦＣの値が「０」であるとき、ＣＰＵはステップ１２４０にて「Ｎｏ」と判定してステップ１２６０に直接進む。
【０１１７】
ステップ１２６０：ＣＰＵは、最終燃料噴射量（指示噴射量）Ｆｉの燃料が燃料噴射気筒に対する燃料噴射弁２５から噴射されるように、その燃料噴射弁２５に対して噴射指示を行う。従って、フューエルカットフラグＸＦＣの値が「１」であるとき最終燃料噴射量Ｆｉは「０」であるから、燃料噴射（機関１０への燃料供給）は実行されない。
【０１１８】
＜フューエルカット条件判定＞
本制御装置のＣＰＵは、上述したフューエルカットフラグＸＦＣの値を設定するために、図１３にフローチャートにより示した「フューエルカット条件判定ルーチン」を所定時間が経過する毎に実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図１４のステップ１３００から処理を開始してステップ１３１０に進み、現時点におけるフューエルカットフラグＸＦＣの値が「０」であるか否かを判定する。即ち、ＣＰＵは、現時点がフューエルカット制御中でないか否かを判定する。
【０１１９】
いま、フューエルカットフラグＸＦＣの値が「０」であると仮定する。この場合、ＣＰＵはステップ１３１０にて「Ｙｅｓ」と判定してステップ１３２０に進み、フューエルカット条件（フューエルカット開始条件）が成立しているか否かを判定する。
【０１２０】
より具体的に述べると、フューエルカット条件は、アクセルペダル操作量Accp又はスロットル弁開度ＴＡが「０」であり、且つ、機関回転速度ＮＥがフューエルカット回転速度ＮＥＦＣｔｈ以上であるときに成立する。
【０１２１】
そして、フューエルカット条件が成立していなければ、ＣＰＵはステップ１３２０にて「Ｎｏ」と判定してステップ１３９５に直接進んで本ルーチンを一旦終了する。これに対し、フューエルカット条件が成立していると、ＣＰＵはステップ１３２０にて「Ｙｅｓ」と判定してステップ１３３０に進み、フューエルカットフラグＸＦＣの値を「１」に設定する。これにより、フューエルカット制御が開始する。その後、ＣＰＵはステップ１３９５に進んで本ルーチンを一旦終了する。
【０１２２】
このような状態（フューエルカットフラグＸＦＣの値が「１」に設定された状態）において、再び、ＣＰＵがステップ１３００から処理を開始すると、ＣＰＵはステップ１３１０にて「Ｎｏ」と判定する。そして、ＣＰＵはステップ１３４０に進み、フューエルカット終了条件が成立しているか否かを判定する。
【０１２３】
より具体的に述べると、フューエルカット終了条件は、フューエルカットフラグの値が「１」であるときに（フューエルカット制御中）において、アクセルペダル操作量Accp又はスロットル弁開度ＴＡが「０」でなくなるか、若しくは、機関回転速度ＮＥがフューエルカット復帰回転速度（＝ＮＥＦＣｔｈ−ΔＮＥ、ΔＮＥ＞０）以下となったときに成立する。なお、フューエルカット復帰回転速度はフューエルカット回転速度ＮＥＦＣよりも小さい。
【０１２４】
このとき、フューエルカット終了条件が成立していなければ、ＣＰＵはステップ１３４０にて「Ｎｏ」と判定し、ステップ１３９５に直接進んで本ルーチンを一旦終了する。これに対し、フューエルカット終了条件が成立していると、ＣＰＵはステップ１３４０にて「Ｙｅｓ」と判定してステップ１３５０に進み、フューエルカットフラグＸＦＣの値を「０」に設定する。これにより、フューエルカット制御が終了され、燃料噴射（機関１０への燃料供給）が再開される。次に、ＣＰＵはステップ１３６０に進み、フューエルカット制御終了フラグＸＦＣＦＫの値を「１」に設定する（図１１の時刻ｔ１を参照。）。その後、ＣＰＵはステップ１３９５に進んで本ルーチンを一旦終了する。なお、フューエルカット制御終了フラグＸＦＣＦＫの値は、後述する図１５のステップ１５４０において第１変化速度閾値ΔV1thの値を設定する際に参照される。
【０１２５】
＜下流側空燃比センサの出力値の変化速度ΔVoxsの取得＞
ＣＰＵは、所定時間ｔｓが経過する毎に図１４にフローチャートにより示した「下流側空燃比センサ出力値変化速度取得ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図１４のステップ１４００から処理を開始してステップ１４１０に進み、「現時点における下流側空燃比センサ５６の出力値Voxs」から「所定時間ｔｓ前の出力値Voxsである前回出力値Voxsold」を減じた値を「下流側空燃比センサ５６の出力値Voxsの変化速度ΔVoxs」として取得する。
【０１２６】
次に、ＣＰＵはステップ１４２０に進み、現時点における下流側空燃比センサ５６の出力値Voxsを前回出力値Voxsoldとして記憶する。その後、ＣＰＵはステップ１４９５に進んで本ルーチンを一旦終了する。
【０１２７】
＜触媒状態判定（１）＞
ＣＰＵは、触媒状態の判定を行うために、図１５にフローチャートにより示したルーチンを所定時間が経過する毎に実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図１５のステップ１５００から処理を開始してステップ１５０５に進み、下流側空燃比センサ５６の出力値Voxsが高側閾値VHth以上であるか否かを判定する。そして、ＣＰＵは、出力値Voxsが高側閾値VHth以上であればステップ１５１０に進んでリッチフラグXCCROrichの値を「１」に設定し、出力値Voxsが高側閾値VHth未満であればステップ１５１５に進んでリッチフラグXCCROrichの値を「０」に設定する。なお、ステップ１５０５及びステップ１５１０の処理は、上述した判定２の（Ｂ）の機能を実現するステップである。
【０１２８】
次に、ＣＰＵはステップ１５２０にて、下流側空燃比センサ５６の出力値Voxsが低側閾値VLth以下であるか否かを判定する。そして、ＣＰＵは、出力値Voxsが低側閾値VLth以下であればステップ１５２５に進んでリーンフラグXCCROleanの値を「１」に設定し、出力値Voxsが低側閾値VLthよりも大きければステップ１５３０に進んでリーンフラグXCCROleanの値を「０」に設定する。なお、ステップ１５２０及びステップ１５２５の処理は、上述した判定２の（Ｃ）の機能を実現するステップである。
【０１２９】
次に、ＣＰＵはステップ１５３５に進み、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値であるか否かを判定する。このとき、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値でなければ、ＣＰＵはステップ１５３５にて「Ｎｏ」と判定し、ステップ１５９５に直接進んで本ルーチンを一旦終了する。
【０１３０】
これに対し、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値であると、ＣＰＵはステップ１５３５にて「Ｙｅｓ」と判定してステップ１５４０に進み、フューエルカット制御終了フラグＸＦＣＦＫの値が「１」であるか否かを判定する。
【０１３１】
いま、フューエルカット制御終了フラグＸＦＣＦＫの値が「１」でないと仮定する。この場合、ＣＰＵはステップ１５４０にて「Ｎｏ」と判定してステップ１５４５に進み、第１変化速度閾値ΔV1thに第１通常閾値ΔV1midを設定するとともに、第２変化速度閾値ΔV2thに第２通常閾値ΔV2midを設定する。第１通常閾値ΔV1mid及び第２変化速度閾値ΔV2thは、何れも正の所定値である。
【０１３２】
一方、ＣＰＵがステップ１５４０の処理を行う時点においてフューエルカット制御終了フラグＸＦＣＦＫの値が「１」であると、ＣＰＵはそのステップ１５４０にて「Ｙｅｓ」と判定してステップ１５５０に進み、第１変化速度閾値ΔV1thに「閾値（フューエルカット制御終了後第１変化速度閾値）ΔV1large」を設定するとともに、第２変化速度閾値ΔV2thに第２通常閾値ΔV2midを設定する。
【０１３３】
フューエルカット制御終了後第１変化速度閾値ΔV1largeは第１通常閾値ΔV1midよりも大きい所定値である。この値ΔV1largeは、フューエルカット制御終了後において出力値Voxsが低側閾値VLth以上となり、且つ、出力値Voxsが増大していてその変化速度ΔVoxsの絶対値｜ΔVoxs｜が値ΔV1large以上となったとき、触媒４３の酸素吸蔵材のみならず貴金属も充分に還元状態となっているような値に選択されている。
【０１３４】
次に、ＣＰＵはステップ１５５５に進み、下流側空燃比センサ５６の出力値Voxsの変化速度ΔVoxsが「０」以上であるか否かを判定する。即ち、ＣＰＵは出力値Voxsが増大しているか否かを判定する。
【０１３５】
このとき、出力値Voxsの変化速度ΔVoxsが「０」以上であると、ＣＰＵはステップ１５６０に進んで「出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜」が上述したステップ１５４５又はステップ１５５０にて設定した第１変化速度閾値ΔV1th以上であるか否かを判定する。
【０１３６】
そして、変化速度ΔVoxsの絶対値｜ΔVoxs｜が第１変化速度閾値ΔV1th以上であれば、ＣＰＵはステップ１５６０にて「Ｙｅｓ」と判定し、ステップ１５６５に進んでリーン否定フラグXNOTleanの値を「１」に設定するとともに、ステップ１５７０に進んでリッチ否定フラグXNOTrichの値を「０」に設定する。
【０１３７】
次いで、ＣＰＵはステップ１５７２に進み、フューエルカット制御終了フラグＸＦＣＦＫの値を「０」に設定し、ステップ１５９５に進んで本ルーチンを一旦終了する。このように、フューエルカット制御終了フラグＸＦＣＦＫの値は、フューエルカット制御終了時において「１」に設定され、その後、出力値Voxsが低側閾値VLthを超え且つ変化速度ΔVoxsの絶対値｜ΔVoxs｜が「フューエルカット制御終了後第１変化速度閾値ΔV1largeに設定された第１変化速度閾値ΔV1th」以上となったときに「０」に設定される（図１１の時刻ｔ１〜ｔ３を参照。）。このフューエルカット制御終了フラグＸＦＣＦＫの値が「１」である期間は、フューエルカット制御終了後期間と称呼される。
【０１３８】
一方、ＣＰＵがステップ１５６０の処理を行う時点において、変化速度ΔVoxsの絶対値｜ΔVoxs｜が第１変化速度閾値ΔV1th未満であれば、ＣＰＵはそのステップ１５６０にて「Ｎｏ」と判定し、ステップ１５９５に直接進んで本ルーチンを一旦終了する。
【０１３９】
更に、ＣＰＵがステップ１５５５の処理を行う時点において、下流側空燃比センサ５６の出力値Voxsの変化速度ΔVoxsが「０」未満あると（即ち、出力値Voxsが減少していると）、ＣＰＵはステップ１５７５に進んで「出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜」が上述したステップ１５４５又はステップ１５５０にて設定した第２変化速度閾値ΔV2th（＝ΔV2mid）以上であるか否かを判定する。
【０１４０】
そして、変化速度ΔVoxsの絶対値｜ΔVoxs｜が第２変化速度閾値ΔV2th以上であれば、ＣＰＵはステップ１５７５にて「Ｙｅｓ」と判定し、ステップ１５８０に進んでリーン否定フラグXNOTleanの値を「０」に設定するとともに、ステップ１５８５に進んでリッチ否定フラグXNOTrichの値を「１」に設定する。
【０１４１】
他方、ＣＰＵがステップ１５７５の処理を行う時点において、変化速度ΔVoxsの絶対値｜ΔVoxs｜が第２変化速度閾値ΔV2th未満であれば、ＣＰＵはそのステップ１５７５にて「Ｎｏ」と判定し、ステップ１５９５に直接進んで本ルーチンを一旦終了する。なお、ステップ１５３５乃至ステップ１５８５の処理は、上述した判定１の（Ａ１）及び（Ａ２）の機能を実現するステップである。
【０１４２】
＜触媒状態判定（２）＞
更に、ＣＰＵは、所定時間が経過する毎に図１６にフローチャートにより示したルーチンを実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図１６のステップ１６００から処理を開始してステップ１６０５に進み、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値であるか否かを判定する。このとき、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値でなければ、ＣＰＵはそのステップ１６０５にて「Ｎｏ」と判定し、ステップ１６９５に直接進んで本ルーチンを一旦終了する。
【０１４３】
一方、ＣＰＵがステップ１６０５の処理を行う時点において、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値であると、ＣＰＵは、そのステップ１６０５にて「Ｙｅｓ」と判定してステップ１６１０に進み、リッチフラグXCCROrich、リーンフラグXCCROlean、リッチ否定フラグXNOTrich及びリーン否定フラグXNOTleanの総てが「０」であるか否かを判定する。即ち、ＣＰＵは、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値であって、且つ、触媒状態が判定されていない状態であるか否かを判定する。
【０１４４】
このとき、リッチフラグXCCROrich、リーンフラグXCCROlean、リッチ否定フラグXNOTrich及びリーン否定フラグXNOTleanの総てが「０」であると、ＣＰＵはステップ１６１０にて「Ｙｅｓ」と判定してステップ１６１５に進み、下流側空燃比センサ５６の出力値Voxsが中央値Vmid以上であるか否かを判定する。そして、出力値Voxsが中央値Vmid以上であると、ＣＰＵはステップ１６２０に進んで暫定リッチフラグXZrichの値を「１」に設定するとともに、ステップ１６２５にて暫定リーンフラグXZleanの値を「０」に設定する。
【０１４５】
一方、ＣＰＵがステップ１６１５の処理を行う時点において、下流側空燃比センサ５６の出力値Voxsが中央値Vmidよりも小さいと、ＣＰＵはステップ１６３０に進んで暫定リッチフラグXZrichの値を「０」に設定するとともに、ステップ１６３５にて暫定リーンフラグXZleanの値を「１」に設定する。
【０１４６】
更に、ＣＰＵがステップ１６１０の処理を実行する時点において、リッチフラグXCCROrich、リーンフラグXCCROlean、リッチ否定フラグXNOTrich及びリーン否定フラグXNOTleanの何れかが「１」であると、ＣＰＵはステップ１６４０に進んで進んで暫定リッチフラグXZrichの値を「０」に設定するとともに、ステップ１６４５にて暫定リーンフラグXZleanの値を「０」に設定する。なお、図１６のルーチンは、上述した判定２の（Ｄ）及び（Ｅ）の機能を実現するステップである。また、この場合、ＣＰＵは図１５のステップ１５１０にてリッチフラグXCCROrich以外のフラグの値を「０」に設定し、ステップ１５２５にてリーンフラグXCCROlean以外のフラグの値を「０」に設定してもよい。
【０１４７】
＜メインフィードバック量の算出＞
ＣＰＵは、所定時間が経過する毎に図１７にフローチャートにより示した「メインフィードバック量算出ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図１７のステップ１７００から処理を開始してステップ１７０５に進み、「メインフィードバック制御条件（上流側空燃比フィードバック制御条件）」が成立しているか否かを判定する。
【０１４８】
メインフィードバック制御条件は以下の総ての条件が成立したときに成立する。
（Ａ−１）上流側空燃比センサ５５が活性化している。
（Ａ−２）機関の負荷（負荷率）ＫＬが閾値ＫＬｔｈ以下である。
（Ａ−３）フューエルカット中でない。
【０１４９】
なお、負荷率ＫＬは、ＫＬ＝（Ｍｃ（ｋ）／（ρ・Ｌ／４））・１００％なる式により求められる。この式において、Ｍｃ（ｋ）は筒内吸入空気量であり、ρは空気密度（単位は（ｇ／ｌ））、Ｌは機関１０の排気量（単位は（ｌ））、「４」は機関１０の気筒数である。なお、機関の負荷として、負荷率ＫＬに代え、アクセルペダル操作量Ａｃｃｐが用いられても良い。
【０１５０】
いま、メインフィードバック制御条件が成立していると仮定して説明を続ける。この場合、ＣＰＵはステップ１７０５にて「Ｙｅｓ」と判定して以下に述べるステップ１７１０乃至ステップ１７３５の処理を順に行い、ステップ１７９５に進んで本ルーチンを一旦終了する。
【０１５１】
ステップ１７１０：ＣＰＵは、上流側空燃比センサ５５の出力値Vabyfsを図２に示したテーブルMapabyfsに適用することにより、検出上流側空燃比abyfsを取得する。
ステップ１７１５：ＣＰＵは、「現時点よりもＮサイクル前の時点において燃焼室２１に実際に供給された燃料の量」である「筒内燃料供給量Ｆｃ（ｋ−Ｎ）」を求める。即ち、ＣＰＵは、「現時点よりもＮサイクル（即ち、Ｎ・７２０°クランク角）前の時点における筒内吸入空気量Ｍｃ（ｋ−Ｎ）」を「検出上流側空燃比abyfs」にて除すことにより、筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求める。このように、筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求めるために、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）を検出上流側空燃比abyfsで除すのは、「燃焼室２１内での混合気の燃焼により生成された排ガス」が上流側空燃比センサ５５に到達するまでに「Ｎストロークに相当する時間」を要しているからである。
【０１５２】
ステップ１７２０：ＣＰＵは、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）を上流側目標空燃比abyfr（本例において、理論空燃比）で除すことにより、目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）を求める。目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）は、現時点よりもＮサイクル前の時点において燃焼室２１に供給されるべきであった燃料の量である。
【０１５３】
ステップ１７２５：ＣＰＵは、目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）から筒内燃料供給量Ｆｃ（ｋ−Ｎ）を減じることにより、筒内燃料供給量偏差ＤＦｃを求める。この筒内燃料供給量偏差ＤＦｃは、Ｎストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。
【０１５４】
ステップ１７３０：ＣＰＵは、筒内燃料供給量偏差ＤＦｃに予め設定された比例ゲインＧｐを乗じることにより、メインフィードバック量ＤＦmainを求める。これにより、検出上流側空燃比abyfsを上流側目標空燃比abyfrに一致させるための「メインフィードバック量ＤＦmain」が算出される。
【０１５５】
ステップ１７３５：ＣＰＵは、図１８に示したルーチンを実行することによって、メインフィードバック量ＤＦmainを「触媒流入ガス要求空燃比」に応じて補正（制限）する。図１８に示したルーチンについては後述する。
【０１５６】
以上により、メインフィードバック量ＤＦmainが求められ、このメインフィードバック量ＤＦmainが前述した図１２のステップ１２３０の処理により最終燃料噴射量Ｆｉに反映される。なお、ＣＰＵは、「筒内燃料供給量偏差ＤＦｃの積分値ＳＤＦｃに積分ゲインＧｉを乗じた積分項Ｇｉ・ＳＤＦｃ」を「上記比例項であるＧｐ・ＤＦｃ」に加えることにより、メインフィードバック量ＤＦmainを求めてもよい。
【０１５７】
一方、図１７のステップ１７０５の判定時において、メインフィードバック制御条件が不成立であると、ＣＰＵはそのステップ１７０５にて「Ｎｏ」と判定してステップ１７４０に進み、メインフィードバック量ＤＦmainの値を「０」に設定する。その後、ＣＰＵは、ステップ１７９５に進んで本ルーチンを一旦終了する。このように、メインフィードバック制御条件が不成立であるとき、メインフィードバック量ＤＦmainは「０」に設定される。従って、基本燃料噴射量Ｆｂａｓｅのメインフィードバック量ＤＦmainによる補正は行われない。
【０１５８】
＜メインフィードバック量の制限＞
更に、前述したように、ＣＰＵは、図１７のステップ１７３５に進んだとき、図１８にフローチャートにより示した「メインフィードバック量制限（補正）ルーチン」を実行するようになっている。
【０１５９】
従って、所定のタイミングになると、ＣＰＵは図１８のステップ１８００から処理を開始してステップ１８１０に進み、メインフィードバック量ＤＦmainが正であるか否かを判定する。即ち、ＣＰＵは、ステップ１８１０にて「メインフィードバック量ＤＦmainが、基本燃料噴射量Ｆｂａｓｅを増量補正する値（「機関の空燃比と等しい触媒流入ガスの空燃比」を「理論空燃比よりもリッチ側の空燃比へと補正しようとする値」）」であるか否かを判定する。
【０１６０】
このとき、メインフィードバック量ＤＦmainの値が正であると（即ち、メインフィードバック量ＤＦmainが触媒流入ガスの空燃比をリッチ空燃比に移行させようとする値であると）、ＣＰＵはステップ１８１０にて「Ｙｅｓ」と判定してステップ１８２０に進み、リッチフラグXCCROrich、リーン否定フラグXNOTlean及び暫定リッチフラグXZrichのうちの少なくとも一つが「１」であるか否かを判定する。換言すると、ＣＰＵはステップ１８２０にて、触媒４３の状態が「酸素不足状態」及び「酸素過剰状態でない状態」の何れかであって、触媒流入ガス要求空燃比がリーン空燃比であるか否かを判定する。
【０１６１】
このとき、リッチフラグXCCROrich、リーン否定フラグXNOTlean及び暫定リッチフラグXZrichのうちの少なくとも一つが「１」であると、ＣＰＵはステップ１８２０にて「Ｙｅｓ」と判定してステップ１８３０に進み、メインフィードバック量ＤＦmainの値を「０」に設定する。これにより、メインフィードバック量ＤＦmainが、触媒流入ガスの空燃比を「触媒流入ガス要求空燃比（この場合、リーン空燃比）」とは異なる空燃比（リッチ空燃比）に補正することがないように制限（補正）される。
【０１６２】
なお、ＣＰＵはステップ１８３０にて、メインフィードバック量ＤＦmainに「１」より小さい正の係数を乗じた値を最終的なメインフィードバック量ＤＦmainとして設定してもよい。即ち、ＣＰＵはステップ１８３０にてメインフィードバック量ＤＦmainの大きさを小さくしてもよい。
【０１６３】
これに対し、ＣＰＵがステップ１８２０に進んだとき、リッチフラグXCCROrich、リーン否定フラグXNOTlean及び暫定リッチフラグXZrichの総てが「０」であると、ＣＰＵはステップ１８２０にて「Ｎｏ」と判定し、ステップ１８９５に直接進んで本ルーチンを一旦終了する。
【０１６４】
一方、ＣＰＵがステップ１８１０に進んだとき、メインフィードバック量ＤＦmainの値が負（又は０）であると（即ち、メインフィードバック量ＤＦmainが触媒流入ガスの空燃比をリーン空燃比に移行させようとする値であると）、ＣＰＵはステップ１８１０にて「Ｎｏ」と判定してステップ１８４０に進み、リーンフラグXCCROlean、リッチ否定フラグXNOTrich及び暫定リーンフラグXZleanのうちの少なくとも一つが「１」であるか否かを判定する。換言すると、ＣＰＵはステップ１８４０にて、触媒４３の状態が「酸素過剰状態」及び「酸素不足状態でない状態」の何れかであって、触媒流入ガス要求空燃比がリッチ空燃比であるか否かを判定する。
【０１６５】
このとき、リーンフラグXCCROlean、リッチ否定フラグXNOTrich及び暫定リーンフラグXZleanのうちの少なくとも一つが「１」であると、ＣＰＵはステップ１８４０にて「Ｙｅｓ」と判定してステップ１８５０に進み、メインフィードバック量ＤＦmainの値を「０」に設定する。これにより、メインフィードバック量ＤＦmainが、触媒流入ガスの空燃比を「触媒流入ガス要求空燃比（この場合、リッチ空燃比）」とは異なる空燃比（リーン空燃比）に補正することがないように制限（補正）される。
【０１６６】
なお、ＣＰＵはステップ１８５０にて、メインフィードバック量ＤＦmainに「１」より小さい正の係数を乗じた値を最終的なメインフィードバック量ＤＦmainとして設定してもよい。即ち、ＣＰＵはステップ１８５０にてメインフィードバック量ＤＦmainの大きさを小さくしてもよい。
【０１６７】
これに対し、ＣＰＵがステップ１８４０に進んだとき、リーンフラグXCCROlean、リッチ否定フラグXNOTrich及び暫定リーンフラグXZleanの総てが「０」であると、ＣＰＵはステップ１８４０にて「Ｎｏ」と判定し、ステップ１８９５に直接進んで本ルーチンを一旦終了する。
【０１６８】
＜サブフィードバック量の算出＞
ＣＰＵは、所定時間が経過する毎に図１９にフローチャートにより示した「サブフィードバック量算出ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図１９のステップ１９００から処理を開始してステップ１９０５に進み、「サブフィードバック制御条件（下流側空燃比フィードバック制御条件）」が成立しているか否かを判定する。
【０１６９】
サブフィードバック制御条件は以下の総ての条件が成立したときに成立する。
（Ｂ−１）メインフィードバック制御条件が成立している。
（Ｂ−２）下流側空燃比センサ５６が活性化している。
（Ｂ−３）上流側目標空燃比abyfrが理論空燃比stoichに設定されている。
【０１７０】
いま、サブフィードバック制御条件が成立していると仮定して説明を続ける。この場合、ＣＰＵはステップ１９０５にて「Ｙｅｓ」と判定してステップ１９１０に進み、リッチフラグXCCROrich及び暫定リッチフラグXZrichのうちの少なくとも一つが「１」であるか否かを判定する。換言すると、ＣＰＵはステップ１９１０にて、触媒４３の状態が「酸素不足状態」であって、触媒流入ガス要求空燃比がリーン空燃比であるか否かを判定する。
【０１７１】
このとき、リッチフラグXCCROrich及び暫定リッチフラグXZrichの両者が「０」であると、ＣＰＵはステップ１９１０にて「Ｎｏ」と判定し、ステップ１９２０に直接進む。
【０１７２】
これに対し、リッチフラグXCCROrich及び暫定リッチフラグXZrichのうちの少なくとも一つが「１」であると、ＣＰＵはステップ１９１０にて「Ｙｅｓ」と判定してステップ１９１５に進み、サブフィードバック量ＫＦsubの値を所定値Ａ２に設定する。この所定値Ａ２は、「０」よりも大きく「１」よりも小さい一定値であり、第２リーン空燃比に相当する空燃比を実現する値である。その後、ＣＰＵはステップ１９２０に進む。なお、このとき、ＣＰＵはステップ１９９５に進んでもよい。
【０１７３】
ＣＰＵはステップ１９２０にてリーン否定フラグXNOTleanの値が「１」であるか否かを判定する。このとき、リーン否定フラグXNOTleanの値が「０」であると、ＣＰＵはステップ１９２０にて「Ｎｏ」と判定し、ステップ１９３０に直接進む。
【０１７４】
これに対し、リーン否定フラグXNOTleanの値が「１」であると、ＣＰＵはステップ１９２０にて「Ｙｅｓ」と判定してステップ１９２５に進み、サブフィードバック量ＫＦsubの値を所定値Ａ１に設定する。この所定値Ａ１は、「０」よりも大きく「１」よりも小さい一定値であり、第１リーン空燃比に相当する空燃比を実現する値である。その後、ＣＰＵはステップ１９３０に進む。なお、本例において、所定値Ａ１と所定値Ａ２とは等しい値である（即ち、第１リーン空燃比と第２リーン空燃比とは等しい。）。また、ステップ１９２５の処理後、ＣＰＵはステップ１９９５に進んでもよい。
【０１７５】
ＣＰＵはステップ１９３０において、リーンフラグXCCROlean及び暫定リーンフラグXZleanのうちの少なくとも一つが「１」であるか否かを判定する。換言すると、ＣＰＵはステップ１９３０にて、触媒４３の状態が「酸素過剰状態」であって、触媒流入ガス要求空燃比がリッチ空燃比であるか否かを判定する。
【０１７６】
このとき、リーンフラグXCCROlean及び暫定リーンフラグXZleanの両者が「０」であると、ＣＰＵはステップ１９３０にて「Ｎｏ」と判定し、ステップ１９４０に直接進む。
【０１７７】
これに対し、リーンフラグXCCROlean及び暫定リーンフラグXZleanのうちの少なくとも一つが「１」であると、ＣＰＵはステップ１９３０にて「Ｙｅｓ」と判定してステップ１９３５に進み、サブフィードバック量ＫＦsubの値を所定値Ｂ２に設定する。この所定値Ｂ２は、「１」よりも大きい一定値であり、第２リッチ空燃比に相当する空燃比を実現する値である。その後、ＣＰＵはステップ１９４０に進む。なお、このとき、ＣＰＵはステップ１９９５に進んでもよい。
【０１７８】
ＣＰＵはステップ１９４０にてリッチ否定フラグXNOTrichの値が「１」であるか否かを判定する。このとき、リッチ否定フラグXNOTrichの値が「０」であると、ＣＰＵはステップ１９４０にて「Ｎｏ」と判定し、ステップ１９９５に直接進んで本ルーチンを一旦終了する。
【０１７９】
これに対し、リッチ否定フラグXNOTrichの値が「１」であると、ＣＰＵはステップ１９４０にて「Ｙｅｓ」と判定してステップ１９４５に進み、サブフィードバック量ＫＦsubの値を所定値Ｂ１に設定する。この所定値Ｂ１は、「１」よりも大きい一定値であり、第１リッチ空燃比に相当する空燃比を実現する値である。その後、ＣＰＵはステップ１９９５に進んで本ルーチンを一旦終了する。なお、本例において、所定値Ｂ１と所定値Ｂ２とは等しい値である（即ち、第１リッチ空燃比と第２リッチ空燃比とは等しい。）。
【０１８０】
このようにして求められたサブフィードバック量ＫＦsubは、前述した図１２のステップ１２３０の処理により、理論空燃比を得るための基本燃料噴射量Ｆｂａｓｅに乗じられる。従って、サブフィードバック量ＫＦsubが「１」より大きいとき、機関の空燃比（従って、触媒流入ガスの空燃比）は「サブフィードバック量ＫＦsubが大きいほどより理論空燃比との差の大きさが大きいリッチ空燃比」に制御される。また、サブフィードバック量ＫＦsubが「１」より小さいとき、機関の空燃比は「サブフィードバック量ＫＦsubが小さいほどより理論空燃比との差の大きさが大きいリーン空燃比」に制御される。
【０１８１】
一方、ＣＰＵがステップ１９０５の処理を行う時点において、サブフィードバック制御条件が成立していない場合、ＣＰＵはそのステップ１９０５にて「Ｎｏ」と判定してステップ１９５０に進み、サブフィードバック量ＫＦsubを「１．０」に設定する。その後、ＣＰＵはステップ１９９５に進んで本ルーチンを一旦終了する。この結果、サブフィードバック制御条件が成立していないとき、基本燃料噴射量Ｆｂａｓｅはサブフィードバック量ＫＦsubによって補正されない。
【０１８２】
以上の処理により、ＣＰＵは、機関の空燃比（従って、触媒流入ガスの空燃比）を上記各フラグの値に応じて以下に述べるように制御する。
【０１８３】
（１）リーン否定フラグXNOTleanの値が「１」のとき、ＣＰＵは機関の空燃比を第１リーン空燃比（一定の空燃比）に制御する。
（２）リッチフラグXCCROrich及び暫定リッチフラグXZrichの値のうちの一方が「１」であるとき、ＣＰＵは機関の空燃比を第２リーン空燃比（一定の空燃比）に制御する。
（３）リッチ否定フラグXNOTrichの値が「１」のとき、ＣＰＵは機関の空燃比を第１リッチ空燃比（一定の空燃比）に制御する。
（４）リーンフラグXCCROlean及び暫定リーンフラグXZleanの値のうちの一方が「１」であるとき、ＣＰＵは機関の空燃比を第２リッチ空燃比（一定の空燃比）に制御する。
【０１８４】
以上、説明したように、本制御装置によれば、出力値Voxsと、出力値Voxs及び変化速度ΔVoxsの絶対値｜ΔVoxs｜と、に基づいて触媒４３の状態を推定し、それに応じて、触媒流入ガスの空燃比を制御する。従って、触媒４３の酸素吸蔵量ＯＳＡが「０」よりも大きく最大酸素吸蔵量Ｃmaxよりも小さい範囲において出来るだけ変化するように、機関の空燃比を制御することができる。その結果、エミッションを良好に維持することができる。
【０１８５】
なお、図１２のステップ１２１０〜１２４０、１２６０、図１３〜１９の各ルーチンは、出力値Voxsに基づいて触媒４３に流入するガスである触媒流入ガスの空燃比を変更するように１０機関に供給される燃料の量を制御する燃料供給量制御手段を構成している。
【０１８６】
更に、図１３のルーチン及び図１２のステップ１２４０及びステップ１２５０は、所定のフューエルカット条件が成立したとき機関１０への燃料の供給を停止するフューエルカット制御を行い且つ同フューエルカット制御中に所定のフューエルカット終了条件が成立したとき同フューエルカット制御を終了して前記燃料供給量制御手段による前記機関への燃料の供給を再開する（燃料供給の再開を許容する）フューエルカット手段を構成している。
【０１８７】
更に、本制御装置は、フューエルカット制御終了後期間における第１変化速度閾値ΔV1thを、それ以外の期間における第１変化速度閾値ΔV1th（＝ΔV1mid）よりも大きい値（ΔV1large）に設定する。これにより、フューエルカット制御終了後において、触媒４３の貴金属を還元状態に戻してから、触媒流入ガスの空燃比をリーン空燃比に制御することができる。従って、フューエルカット制御後においても触媒４３の浄化効率を高い値に維持できるので、エミッションを良好に維持することができる。
【０１８８】
なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、第１リーン空燃比及び第２リーン空燃比は可変であってもよい。例えば、第１リーン空燃比は、出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜が大きいほど、より理論空燃比から離れたリーン空燃比であってもよい。
【０１８９】
即ち、例えば、第１リーン空燃比は、変化速度ΔVoxsが増大している期間においてその変化速度ΔVoxsの絶対値｜ΔVoxs｜が大きいほど「第１リーン空燃比と理論空燃比との偏差の絶対値」が大きくなる値に設定され得る。この場合、サブフィードバック量ＫＦsubは、絶対値｜ΔVoxs｜に正の微分ゲイン（正の定数）ｋｄを乗じた値を「１」から減算して得られる値（１−ｋｄ・｜ΔVoxs｜）等に設定される。但し、値（１−ｋｄ・｜ΔVoxs｜）は、「０」よりも大きい値である。更に、第１リーン空燃比は、変化速度ΔVoxsが減少している期間において一定値となる空燃比であってもよい。第２リーン空燃比は、出力値Voxsと中央値Vmidとの差の大きさに比例したリーン空燃比であってもよい。
【０１９０】
第１リッチ空燃比及び第２リッチ空燃比は可変であってもよい。例えば、第１リッチ空燃比は、出力値Voxsの変化速度ΔVoxsの絶対値｜ΔVoxs｜が大きいほど、より理論空燃比から離れたリッチ空燃比であってもよい。即ち、例えば、第１リッチ空燃比は、変化速度ΔVoxsが減少している期間においてその変化速度ΔVoxsの絶対値｜ΔVoxs｜が大きいほど「第１リッチ空燃比と理論空燃比との偏差の絶対値」が大きくなる値に設定され得る。この場合、サブフィードバック量ＫＦsubは、絶対値｜ΔVoxs｜に正の微分ゲイン（正の定数）ｋｄを乗じた値を「１」に加算して得られる値（１＋ｋｄ・｜ΔVoxs｜）等に設定される。更に、第１リッチ空燃比は、変化速度ΔVoxsが増大している期間において一定値となる空燃比であってもよい。第２リッチ空燃比は、出力値Voxsと中央値Vmidとの差の大きさに比例したリッチ空燃比であってもよい。
【符号の説明】
【０１９１】
１０…内燃機関、４１…エキゾーストマニホールド、４１ｂ…集合部、４２…エキゾーストパイプ、４３…上流側触媒（三元触媒）、５５…上流側空燃比センサ、５６…下流側空燃比センサ（酸素濃度センサ）、６０…電気制御装置。
【図１】
2011069338.tif 000003
【図２】
2011069338.tif 000004
【図３】
2011069338.tif 000005
【図４】
2011069338.tif 000006
【図５】
2011069338.tif 000007
【図６】
2011069338.tif 000008
【図７】
2011069338.tif 000009
【図８】
2011069338.tif 000010
【図９】
2011069338.tif 000011
【図１０】
2011069338.tif 000012
【図１１】
2011069338.tif 000013
【図１２】
2011069338.tif 000014
【図１３】
2011069338.tif 000015
【図１４】
2011069338.tif 000016
【図１５】
2011069338.tif 000017
【図１６】
2011069338.tif 000018
【図１７】
2011069338.tif 000019
【図１８】
2011069338.tif 000020
【図１９】
2011069338.tif 000021
【図２０】
2011069338.tif 000022