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