(57)【要約】      （修正有）【課題】酸素濃度センサの出力応答性が低下した場合でも排ガスの酸素濃度を適切に調整すること。【解決手段】空燃比制御手段は、酸素濃度センサの出力値Voxsの変化率が増大側閾値DIFupthよりも大きい場合には触媒導入ガスの酸素濃度をリーン側酸素濃度とし、同変化率が減少側閾値DIFdownthよりも小さい場合には同酸素濃度をリッチ側酸素濃度とする。触媒の劣化度Dcatが閾値劣化度Dcatth以下である場合、酸素濃度センサの増大側応答性の低下度が減少側応答性の低下度よりも大きければ増大側閾値を小さくし、減少側応答性の低下度が増大側応答性の低下度よりも大きければ減少側閾値を大きくし、同劣化度が閾値劣化度よりも大きい場合、増大側応答性の低下度が減少側応答性の低下度よりも大きければ減少側閾値を小さくし、減少側応答性の低下度が増大側応答性の低下度よりも大きければ増大側閾値を大きくする。【選択図】図４
2012087670.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排ガスを浄化する触媒であって、該触媒の上流側から導入される排ガスを浄化するとともに該排ガスを該触媒の下流側から排出する触媒と、
前記触媒から排出される排ガスである触媒排出ガスの酸素濃度に応じた値を出力する酸素濃度センサであって、前記触媒排出ガスの酸素濃度が理論空燃比の混合気が燃焼したときに生じる排ガスの酸素濃度である基準酸素濃度からリッチ側に向けて離れるほど該酸素濃度センサの出力値がより増大し、前記触媒排出ガスの酸素濃度が前記基準酸素濃度からリーン側に向けて離れるほど該酸素濃度センサの出力値がより減少する酸素濃度センサと、
を備えた内燃機関に適用され、
前記触媒に導入される排ガスである触媒導入ガスの酸素濃度を変更するように前記内燃機関に供給される混合気の空燃比を制御する空燃比制御手段であって、前記酸素濃度センサの出力値が増大しており且つ前記酸素濃度センサの出力値の変化率が増大側閾値よりも大きい場合には前記触媒導入ガスの酸素濃度が前記基準酸素濃度よりもリーン側の酸素濃度となるように前記空燃比を制御し、前記酸素濃度センサの出力値が減少しており且つ前記酸素濃度センサの出力値の変化率が減少側閾値よりも小さい場合には前記触媒導入ガスの酸素濃度が前記基準酸素濃度よりもリッチ側の酸素濃度となるように前記空燃比を制御する空燃比制御手段、
を備えた内燃機関の制御装置において、
前記空燃比制御手段は、
前記触媒の劣化度が所定の閾値劣化度以下である場合、
前記酸素濃度センサの出力値が増大するときの前記酸素濃度センサの出力応答性である増大側応答性の低下度が前記酸素濃度センサの出力値が減少するときの前記酸素濃度センサの出力応答性である減少側応答性の低下度よりも大きければ前記増大側閾値を小さくし、前記減少側応答性の低下度が前記増大側応答性の低下度よりも大きければ前記減少側閾値を大きくし、
前記触媒の劣化度が前記閾値劣化度よりも大きい場合、
前記増大側応答性の低下度が前記減少側応答性の低下度よりも大きければ前記減少側閾値を小さくし、前記減少側応答性の低下度が前記増大側応答性の低下度よりも大きければ前記増大側閾値を大きくする、
内燃機関の制御装置。
【請求項２】
請求項１に記載の制御装置において、
前記空燃比制御手段は、
前記増大側応答性の低下度が実質的にゼロであるときに前記増大側閾値を増大側基準閾値に設定し、かつ、前記減少側応答性の低下度が実質的にゼロであるときに前記減少側閾値を減少側基準閾値に設定するとともに、
前記増大側閾値を小さくする場合に該増大側閾値を前記増大側基準閾値よりも小さくし、前記減少側閾値を大きくする場合に該減少側閾値を前記減少側基準閾値よりも大きくし、前記減少側閾値を小さくする場合に該減少側閾値を前記減少側基準閾値よりも小さくし、前記増大側閾値を大きくする場合に該増大側閾値を前記増大側基準閾値よりも大きくする、内燃機関の制御装置。
【請求項３】
請求項１または請求項２に記載の制御装置において、
前記空燃比制御手段は、
前記触媒の劣化度が前記閾値劣化度以下である場合、
前記増大側応答性の低下度が前記減少側応答性の低下度よりも大きければ前記増大側応答性の低下度と前記減少側応答性の低下度との差の絶対値である非対称低下度が大きいほど前記増大側閾値を小さくし、前記減少側応答性の低下度が前記増大側応答性の低下度よりも大きければ前記非対称低下度が大きいほど前記減少側閾値を大きくし、
前記触媒の劣化度が前記閾値劣化度よりも大きい場合、
前記増大側応答性の低下度が前記減少側応答性の低下度よりも大きければ前記非対称低下度が大きいほど前記減少側閾値を小さくし、前記減少側応答性の低下度が前記増大側応答性の低下度よりも大きければ前記非対称低下度が大きいほど前記増大側閾値を大きくする、
内燃機関の制御装置。
【請求項４】
請求項１〜請求項３のいずれか一項に記載の制御装置において、
前記空燃比制御手段は、
前記増大側応答性として、前記酸素濃度センサの出力値が増大するときの前記酸素濃度センサの応答時定数である増大側応答時定数を採用し、
前記減少側応答性として、前記酸素濃度センサの出力値が減少するときの前記酸素濃度センサの応答時定数である減少側応答時定数を採用する、内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排ガスを浄化するための触媒を備えた内燃機関に適用される空燃比制御装置に関する。
【背景技術】
【０００２】
内燃機関の排ガスには種々の物質が含まれている。そこで、従来から、それら物質を排ガス中から除去することによって排ガスを浄化する触媒を備えた内燃機関が提案されている。この用途に利用される触媒として、例えば、三元触媒およびNOx吸蔵還元触媒などが挙げられる。これら触媒による排ガスの浄化効率は、公知のように、排ガスの酸素濃度に応じて変化する。
【０００３】
そこで、従来の内燃機関の制御装置の一つ（以下、「従来装置」と称呼する。）は、触媒（三元触媒）の上流側および下流側に排ガスの酸素濃度を測定するセンサ（酸素濃度センサ）を備えるとともに、これら酸素濃度センサの出力値に基づいて同触媒に導入される排ガスの酸素濃度を調整する。これにより、従来装置は、触媒が排ガスを高い浄化効率にて浄化することができる状態を維持するようになっている（例えば、特許文献１を参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−９８２０５号公報
【発明の概要】
【０００５】
従来装置は、上述したように、酸素濃度センサの出力値に基づいて排ガスの酸素濃度を調整している。すなわち、従来装置は、「酸素濃度センサによって測定される排ガスの酸素濃度の測定値と、排ガスの酸素濃度の現実の値（実際値）と、が一致している」ことを前提として、排ガスの酸素濃度を調整している。
【０００６】
ところが、例えば、酸素濃度センサが経年劣化することなどの理由によって酸素濃度センサの出力強度（振幅）および応答速度などの性能（以下、便宜上、これら性能を「出力応答性」と総称する。）が低下すると、酸素濃度の測定値と実際値とが一致しない場合がある。具体的に述べると、酸素濃度センサの出力応答性が低下しても、その低下の度合いが十分に小さければ、酸素濃度センサの出力値は、排ガスの酸素濃度を調整する上で問題がない程度に排ガスの酸素濃度の変化に追従し得る。しかし、酸素濃度センサの出力応答性の低下の度合いが大きいと、酸素濃度センサの出力値は、排ガスの酸素濃度の変化に十分に追従しない場合がある。この場合、排ガスの酸素濃度の測定値と実際値とは一致しない。
【０００７】
このように、排ガスの酸素濃度の測定値と実際値とは一致しない場合がある。そのため、従来装置には、触媒に導入される排ガスの酸素濃度を適切に調整することができない場合があるという問題がある。
【０００８】
本発明の目的は、上記課題に鑑み、酸素濃度センサの出力応答性が低下した場合であっても排ガスの酸素濃度を適切に調整することができる内燃機関の制御装置を提供することにある。
【０００９】
以下、便宜上、酸素濃度センサの出力応答性の「低下の度合い」を、単に「低下度」とも称呼する。なお、低下度の値は、その値が大きいほど酸素濃度センサの出力応答性の低下の度合いが大きいことを表す。
【００１０】
上記課題を解決するための本発明による制御装置は、内燃機関の排ガスを浄化するための触媒と、同触媒から排出される排ガスの酸素濃度を把握するための酸素濃度センサと、を備えた内燃機関に適用される。
【００１１】
上記触媒は、該触媒の上流側から導入される排ガスを浄化するとともに該排ガスを該触媒の下流側から排出する触媒である。なお、本発明において、「排ガスを浄化する」とは、排ガスに含まれる浄化対象物質（未燃物および窒素酸化物など）の少なくとも一部をその排ガスから除去することを意味し、必ずしも浄化対象物質の全てをそのガスから除去することを意味しない。
【００１２】
上記酸素濃度センサは、前記触媒から排出される排ガスである「触媒排出ガス」の酸素濃度に応じた値を出力する酸素濃度センサである。この酸素濃度センサは、前記触媒排出ガスの酸素濃度が「理論空燃比の混合気が燃焼したときに生じる排ガスの酸素濃度である基準酸素濃度」から「リッチ側」に向けて離れるほど該酸素濃度センサの出力値がより「増大する」特性を有する。さらに、この酸素濃度センサは、前記触媒排出ガスの酸素濃度が前記基準酸素濃度から「リーン側」に向けて離れるほど該酸素濃度センサの出力値がより「減少する」特性を有する。
【００１３】
上述した特性を有する酸素濃度センサとして、例えば、固体電解質、固体電解質の一方の側に形成された検出用電極、固体電解質の他方の側に形成された基準電極、および、検出用電極を被覆する拡散抵抗層、を有する固体電解質型酸素濃度センサなどが採用され得る。
【００１４】
なお、上記「基準酸素濃度よりもリッチ側の酸素濃度」とは基準酸素濃度よりも低い酸素濃度を意味し、上記「基準酸素濃度よりもリーン側」の酸素濃度とは基準酸素濃度よりも高い酸素濃度を意味する。さらに、以下、便宜上、基準酸素濃度よりもリッチ側の酸素濃度を単に「リッチ側酸素濃度」とも称呼し、基準酸素濃度よりもリーン側の酸素濃度を単に「リーン側酸素濃度」とも称呼する。
【００１５】
上記構成を備えた内燃機関に適用される本発明の制御装置は、前記触媒に導入される排ガスである「触媒導入ガス」の酸素濃度を変更するように前記内燃機関に供給される混合気の空燃比を制御する空燃比制御手段を備える。
【００１６】
以下、この空燃比制御手段によって行われる空燃比の制御について、下記１〜４の順に説明する。
１．空燃比制御の基本的な考え方
２．増大側閾値および減少側閾値の調整方法
３．増大側閾値および減少側閾値の具体例
４．出力応答性の具体例
以下、説明を続ける。
【００１７】
１．空燃比制御の基本的な考え方
本発明の空燃比制御手段は、上記触媒が排ガスを高い浄化効率にて浄化することができる状態を出来る限り維持するように、空燃比を制御する。
【００１８】
具体的に述べると、空燃比制御手段は、酸素濃度センサの出力値の変化率に基づき、下記（Ａ−１）および下記（Ａ−２）に示すように空燃比を制御するようになっている。なお、下記「増大側閾値」および下記「減少側閾値」についての詳細な説明は、後述される。
【００１９】
（Ａ−１）前記酸素濃度センサの出力値が「増大」しており且つ前記酸素濃度センサの「出力値の変化率が増大側閾値よりも大きい」場合：
空燃比制御手段は、前記触媒導入ガスの酸素濃度が前記基準酸素濃度よりも「リーン側」の酸素濃度となるように前記空燃比を制御する。
（Ａ−２）前記酸素濃度センサの出力値が「減少」しており且つ前記酸素濃度センサの「出力値の変化率が減少側閾値よりも小さい」場合：
空燃比制御手段は、前記触媒導入ガスの酸素濃度が前記基準酸素濃度よりも「リッチ側」の酸素濃度となるように前記空燃比を制御する。
【００２０】
以下、本発明の空燃比制御手段が上記（Ａ−１）および上記（Ａ−２）に示すように空燃比を制御する理由について説明する。
【００２１】
本発明における上記触媒は、上述したように排ガスを浄化することができる触媒であればよく、特に制限されない。上記触媒として、例えば、三元触媒およびNOx吸蔵還元触媒などが採用され得る。これら触媒は、触媒の温度が所定の活性温度以上であり、かつ、浄化される対象である排ガスの酸素濃度が所定の酸素濃度（上記基準酸素濃度の近傍）であるとき、その排ガスに含まれる未燃物（HCなど）の酸化反応および窒素酸化物（NOx）の還元反応を促進し、これらを高い浄化率にて同時に浄化することができる。
【００２２】
上記触媒は、一般に、酸素吸蔵物質（CeO2−ZrO2など）および触媒成分（PtおよびRhなどの貴金属）を有する。この触媒成分により、上述した未燃物と窒素酸化物との酸化還元反応（すなわち、排ガスの浄化）が促進される。一方、酸素吸蔵物質は、排ガスの酸素濃度がリーン側酸素濃度であるときに排ガスに含まれる過剰な酸素を吸蔵し、排ガスの酸素濃度がリッチ側酸素濃度であるときに酸素を放出して酸素の不足を補う。これにより、触媒導入ガスの酸素濃度が基準酸素濃度とは異なる酸素濃度であっても、触媒成分における酸素濃度が基準酸素濃度に一致するように調節されるので、排ガスが高い浄化率にて浄化される状態が維持される。
【００２３】
ところが、例えば、触媒導入ガスの酸素濃度が「リッチ側酸素濃度」である状態が長期間に亘って継続されると、触媒の酸素吸蔵量がゼロにまで減少する場合がある。この場合、触媒は、触媒導入ガスに含まれる酸素の量が不足していても、酸素を放出することができない。その結果、触媒は、触媒成分における酸素濃度を十分に調整することができないので、触媒導入ガスを十分に浄化することができない。
【００２４】
そこで、空燃比制御手段は、酸素濃度センサの出力値の変化率に基づいて触媒の酸素吸蔵量の大小を把握するとともに、触媒の酸素吸蔵量がゼロに達することを出来る限り避けるように空燃比を制御する。
【００２５】
具体的に述べると、リッチ側酸素濃度の排ガスが触媒に導入され続けることによって触媒の酸素吸蔵量が「ゼロに比較的近い量」にまで減少した場合、触媒導入ガスに含まれる酸素（未燃酸素）の一部が触媒成分における酸化反応（排ガスの浄化）に用いられることに起因して、触媒排出ガスに含まれる酸素の量が減少する。すなわち、触媒が酸素を放出する余力が十分にある場合に比べ、触媒排出ガスの酸素濃度は低くなる（つまり、基準酸素濃度からリッチ側に向けて離れた値となる。）。上述したように、酸素濃度センサの出力値は、触媒排出ガスの酸素濃度が基準酸素濃度からリッチ側に向けて離れるほどより増大する。そのため、この場合、酸素濃度センサの出力値は増大する。
【００２６】
さらに、リッチ側酸素濃度の排ガスが触媒に導入され続けることによって触媒の酸素吸蔵量が「ゼロ」に達した場合、触媒導入ガスに含まれる酸素（未燃酸素）の実質的に全てが触媒成分における酸化反応（排ガスの浄化）に用いられることに起因して、触媒排出ガスに含まれる酸素の量が実質的にゼロとなる。この場合においても、上記同様、酸素濃度センサの出力値は増大する。ただし、この場合における触媒排出ガスの酸素濃度は、触媒の酸素吸蔵量が上記「ゼロに比較的近い量」である場合における酸素濃度よりも低い（つまり、基準酸素濃度からリッチ側に向けてさらに離れた値となる。）。そのため、この場合における酸素濃度センサの出力値の増大の度合い（変化率）は、触媒の酸素吸蔵量がゼロに比較的近い量である場合における同増大の度合い（変化率）よりも「大きい」と考えられる。
【００２７】
したがって、酸素濃度センサの出力値の増大の度合い（変化率）は、「触媒の酸素吸蔵量がゼロにどの程度近づいているか」を把握するための指標になり得る。例えば、酸素濃度センサの出力値が比較的急速に増大する場合（すなわち、出力値の変化率が比較的大きい場合）、「触媒の酸素吸蔵量がゼロの近傍にまで近づいている」と考えることができる。そこで、空燃比制御手段は、酸素濃度センサの出力値が増大するとき、酸素濃度センサの出力値の変化率が「所定の増大側閾値よりも大きい」場合、触媒導入ガスの酸素濃度が「リーン側酸素濃度」となるように空燃比を制御する（上記（Ａ−１））。
【００２８】
上記制御の結果、触媒にリーン側酸素濃度の排ガスが導入されるので、排ガスに含まれる過剰な酸素が触媒に吸蔵される。これにより、触媒の酸素吸蔵量が増大するので、触媒の酸素吸蔵量がゼロに達することが防がれる。
【００２９】
ところが、触媒導入ガスの酸素濃度が「リーン側酸素濃度」である状態が長期間に亘って継続されると、触媒の酸素吸蔵量が所定の上限値（以下、「最大酸素吸蔵量」とも称呼する。）にまで増大する場合がある。この場合、触媒は、触媒導入ガスに過剰な酸素が含まれていても、その過剰な酸素を吸蔵することができない。その結果、触媒は、触媒成分における酸素濃度を十分に調整することができないので、触媒導入ガスを十分に浄化することができない。
【００３０】
そこで、空燃比制御手段は、酸素濃度センサの出力値の変化率に基づき、触媒の酸素吸蔵量が最大酸素吸蔵量に達することを出来る限り避けるように空燃比を制御する。
【００３１】
具体的に述べると、リーン側酸素濃度の排ガスが触媒に導入され続けることによって触媒の酸素吸蔵量が「最大酸素吸蔵量に比較的近い量」にまで増大した場合、触媒が酸素を効率良く吸蔵することができないことに起因して、触媒導入ガスに含まれる過剰な酸素の一部が触媒から排出される。すなわち、触媒が酸素を吸蔵する余力が十分にある場合に比べ、触媒排出ガスの酸素濃度は高くなる（つまり、基準酸素濃度からリーン側に向けて離れた値となる。）。上述したように、酸素濃度センサの出力値は、触媒排出ガスの酸素濃度が基準酸素濃度からリーン側に向けて離れるほどより減少する。そのため、この場合、酸素濃度センサの出力値は減少する。
【００３２】
さらに、リーン側酸素濃度の排ガスが触媒に導入され続けることによって触媒の酸素吸蔵量が「最大酸素吸蔵量」に達した場合、触媒が酸素を実質的に吸蔵することができないことに起因して、触媒導入ガスに含まれる過剰な酸素の実質的に全てが触媒から排出される。この場合においても、上記同様、酸素濃度センサの出力値は減少する。ただし、この場合における触媒排出ガスの酸素濃度は、触媒の酸素吸蔵量が上記「最大酸素吸蔵量に比較的近い量」である場合における酸素濃度よりも高い（つまり、基準酸素濃度からリーン側に向けてさらに離れた値となる。）。そのため、この場合における酸素濃度センサの出力値の減少の度合いは、触媒の酸素吸蔵量が最大酸素吸蔵量に比較的近い量である場合における同減少の度合いよりも「大きい」と考えられる。
【００３３】
なお、酸素濃度センサの出力値が「減少」するときの同出力値の変化率は、当然に「負の値」である。そのため、触媒の酸素吸蔵量が最大酸素吸蔵量に達した場合の酸素濃度センサの出力値の「変化率（負の値）」は、同酸素吸蔵量が最大酸素吸蔵量に比較的近い量である場合における同変化率（負の値）よりも「小さい」。
【００３４】
したがって、酸素濃度センサの出力値の減少の度合い（変化率）は、「触媒の酸素吸蔵量が最大酸素吸蔵量にどの程度近づいているか」を把握するための指標になり得る。例えば、酸素濃度センサの出力値が比較的急速に減少する場合（すなわち、出力値の変化率が比較的小さい場合）、「触媒の酸素吸蔵量が最大酸素吸蔵量の近傍にまで近づいている」と考えることができる。そこで、空燃比制御手段は、酸素濃度センサの出力値が減少するとき、酸素濃度センサの出力値の変化率が「所定の減少側閾値よりも小さい」場合、触媒導入ガスの酸素濃度が「リッチ側酸素濃度」となるように空燃比を制御する（上記（Ａ−２））。
【００３５】
上記制御の結果、触媒にリッチ側酸素濃度の排ガスが導入されるので、触媒に吸蔵されている酸素が放出される。これにより、触媒の酸素吸蔵量が低下するので、触媒の酸素吸蔵量が最大酸素吸蔵量に達することが防がれる。以上が、本発明の空燃比制御手段が上記（Ａ−１）および上記（Ａ−２）に示すように空燃比を制御する理由である。
【００３６】
このように、空燃比制御手段は、酸素濃度センサの出力値の変化率に基づいて触媒の酸素吸蔵量の大小を把握する。そして、空燃比制御手段は、触媒の酸素吸蔵量がゼロの近傍にまで近づいている場合（酸素濃度センサの出力値の変化率が増大側閾値よりも大きい場合）には触媒導入ガスの酸素濃度をリーン側酸素濃度に調整し、触媒の酸素吸蔵量が最大酸素吸蔵量の近傍にまで近づいている場合（同変化率が減少側閾値よりも小さい場合）には触媒導入ガスの酸素濃度をリッチ側酸素濃度に調整する。これにより、排ガスの浄化効率が高い状態が維持される。以上が、本発明における空燃比制御の基本的な考え方である。
【００３７】
２．増大側閾値および減少側閾値の調整方法
本発明の空燃比制御手段は、酸素濃度センサの出力応答性が低下した場合であっても上述した考え方に従って適切に空燃比を制御できるように、増大側閾値および減少側閾値を調整する。以下、便宜上、上記（Ａ−１）の制御を「リーンガス導入制御」とも称呼し、上記（Ａ−２）の制御を「リッチガス導入制御」とも称呼する。
【００３８】
まず、上記説明から理解されるように、リーンガス導入制御およびリッチガス導入制御が行われることにより、触媒の酸素吸蔵量は、ゼロの近傍にまで近づくと増大せしめられ、最大酸素吸蔵量の近傍にまで近づくと減少せしめられる。これにより、触媒の酸素吸蔵量は、ゼロの近傍と最大酸素吸蔵量の近傍との間を繰り返し往復するように推移する（例えば、図７（ｃ）を参照。）。
【００３９】
触媒の酸素吸蔵量がこのように推移するとき、触媒の酸素吸蔵量の時間平均量（以下、「平均酸素吸蔵量」とも称呼する。）は、ゼロと最大酸素吸蔵量との中間の量（以下、「中央酸素吸蔵量」とも称呼する。）に一致することが好ましいと考えられる。以下、この理由について説明する。
【００４０】
例えば、平均酸素吸蔵量が中央酸素吸蔵量よりも「ゼロ」に近い量である場合、同平均酸素吸蔵量が中央酸素吸蔵量に一致している場合に比べ、触媒の酸素吸蔵量が平均的に小さい（すなわち、酸素吸蔵量が中央酸素吸蔵量よりも小さくなる時間長さが長い）と言える（例えば、図１０（ｄ）を参照。）。そのため、この場合、触媒の酸素吸蔵量が極めて急激にゼロに向けて減少したとき（例えば、外乱などに起因して酸素濃度が極度に低い排ガスが触媒に導入されたとき）、平均酸素吸蔵量が中央酸素吸蔵量に一致している場合に比べ、リーンガス導入制御が行われても触媒の酸素吸蔵量がゼロに達する可能性が高いと考えられる。
【００４１】
逆に、例えば、平均酸素吸蔵量が中央酸素吸蔵量よりも「最大酸素吸蔵量」に近い量である場合、同平均酸素吸蔵量が中央酸素吸蔵量に一致している場合に比べ、触媒の酸素吸蔵量が平均的に大きい（すなわち、酸素吸蔵量が中央酸素吸蔵量よりも大きくなる時間長さが長い）と言える（例えば、図１０（ｄ）を参照。）。そのため、この場合、触媒の酸素吸蔵量が極めて急激に最大酸素吸蔵量に向けて増大したとき（例えば、外乱などに起因して酸素濃度が極度に高い排ガスが触媒に導入されたとき）、平均酸素吸蔵量が中央酸素吸蔵量に一致している場合に比べ、リッチガス導入制御が行われても触媒の酸素吸蔵量が最大酸素吸蔵量に達する可能性が高いと考えられる。
【００４２】
このように、触媒の平均酸素吸蔵量が中央酸素吸蔵量と一致しない場合、酸素濃度が極度に低い排ガスまたは酸素濃度が極度に高い排ガスが触媒に導入されると、触媒の酸素吸蔵量がゼロまたは最大酸素吸蔵量に達する場合がある。この場合、上述したように、触媒は排ガスを十分に浄化することができない。これに対し、触媒の平均酸素吸蔵量が中央酸素吸蔵量に一致していれば、酸素濃度が極度に低い排ガスまたは酸素濃度が極度に高い排ガスが触媒に導入された場合であっても、排ガスの浄化効率が高い状態が比較的確実に維持される。以上が、平均酸素吸蔵量が中央酸素吸蔵量に一致することが好ましい理由である。
【００４３】
以下、便宜上、平均酸素吸蔵量が中央酸素吸蔵量よりもゼロに近い量であることを「平均酸素吸蔵量が不足側に偏る」とも称呼し、平均酸素吸蔵量が中央酸素吸蔵量よりも最大酸素吸蔵量に近い量であることを「平均酸素吸蔵量が過剰側に偏る」とも称呼する。
【００４４】
ところで、上述したように、酸素濃度センサの出力応答性は、経年劣化などの理由によって低下する場合がある。そのため、上述したリーンガス導入制御およびリッチガス導入制御が行われるだけでは、触媒の平均酸素吸蔵量と中央酸素吸蔵量とが十分に一致しない場合がある。なかでも、酸素濃度センサの出力値が増大するときの出力応答性の低下の度合い（以下、「増大側応答性の低下度」とも称呼する。）と、同出力値が減少するときの出力応答性の低下の度合い（以下、「減少側応答性の低下度」とも称呼する。）と、が「異なる」ように同出力応答性が低下すると、平均酸素吸蔵量が不足側または過剰側に偏る場合がある。
【００４５】
例えば、「増大側応答性の低下度」が減少側応答性の低下度よりも大きい場合、酸素濃度センサの出力値が増大するときの（触媒排出ガスの酸素濃度が「減少」するときの）同出力値は、酸素濃度センサの出力値が減少するときの（同酸素濃度が増大するときの）同出力値に比べ、実際の酸素濃度の変化（換言すると、触媒の酸素吸蔵量の変化）に追従し難い。そのため、この場合、出力値の増大（酸素吸蔵量の減少）に基づいて行われるリーンガス導入制御は、出力値の減少（酸素吸蔵量の増大）に基づいて行われるリッチガス導入制御よりも開始され難い。より具体的に述べると、この場合、触媒の酸素吸蔵量がゼロの近傍にまで減少したときにリーンガス導入制御が開始される際の酸素吸蔵量は、触媒の酸素吸蔵量が最大酸素吸蔵量の近傍にまで増大したときにリッチガス導入制御が開始される際の酸素吸蔵量よりも、中央酸素吸蔵量から離れた量となる。その結果、触媒の平均酸素吸蔵量が「不足側」に偏る場合がある（例えば、図１０を参照。）。
【００４６】
逆に、例えば、「減少側応答性の低下度」が増大側応答性の低下度よりも大きい場合、酸素濃度センサの出力値が減少する（触媒排出ガスの酸素濃度が「増大」する）ときの同出力値は、酸素濃度センサの出力値が増大する（同酸素濃度が減少する）ときの同出力値に比べ、実際の酸素濃度の変化（酸素吸蔵量の変化）に追従し難い。そのため、この場合、リッチガス導入制御がリーンガス導入制御よりも開始され難い。より具体的に述べると、この場合、触媒の酸素吸蔵量が最大酸素吸蔵量の近傍にまで増大したときにリッチガス導入制御が開始される際の酸素吸蔵量は、触媒の酸素吸蔵量がゼロの近傍にまで減少したときにリーンガス導入制御が開始される際の酸素吸蔵量よりも、中央酸素吸蔵量から離れた量となる。その結果、触媒の平均酸素吸蔵量が「過剰側」に偏る場合がある（例えば、図１０を参照。）。
【００４７】
触媒の酸素吸蔵量が不足側または過剰側に偏ると、上述したように、排ガスの浄化効率が高い状態が維持されない場合がある。そこで、空燃比制御手段は、下記（Ｂ−１）および下記（Ｂ−２）に示すように「増大側閾値」および「減少側閾値」を調整するようになっている。なお、以下、増大側応答性の低下度と減少側応答性の低下度とが異なるように酸素濃度センサの出力応答性が低下することを、「酸素濃度センサの出力応答性が非対称に低下する」とも称呼する。
【００４８】
（Ｂ−１）前記触媒の劣化度が「所定の閾値劣化度以下」である場合：
増大側応答性の低下度が減少側応答性の低下度よりも大きければ、空燃比制御手段は、「前記増大側閾値を小さく」する。さらに、前記減少側応答性の低下度が前記増大側応答性の低下度よりも大きければ、空燃比制御手段は、「前記減少側閾値を大きく」する。
（Ｂ−２）前記触媒の劣化度が「前記閾値劣化度よりも大きい」場合：
前記増大側応答性の低下度が前記減少側応答性の低下度よりも大きければ、空燃比制御手段は、「前記減少側閾値を小さく」する。さらに、前記減少側応答性の低下度が前記増大側応答性の低下度よりも大きければ、空燃比制御手段は、「前記増大側閾値を大きく」する。
【００４９】
上記「触媒の劣化度」は、触媒が本来有する（例えば、新品状態（未使用）の触媒が有する）排ガス浄化性能を基準とする排ガス浄化性能の低下の度合いを表し得る指標であればよく、特に制限されない。触媒の劣化度は、例えば、新品状態の触媒の最大酸素吸蔵量と、同劣化度を取得する時点における触媒の最大酸素吸蔵量と、を比較することによって取得され得る。さらに、触媒の劣化度は、例えば、触媒に吸蔵または吸着されている不要成分（例えば、硫黄成分など）の量に基づいて取得され得る。なお、本発明において、触媒の劣化度の値は、その値が大きいほど触媒の排ガス浄化性能の低下の度合いが大きいことを表す。
【００５０】
上記「増大側応答性の低下度」は、酸素濃度センサが本来有する（例えば、新品状態（未使用）の酸素濃度センサが有する）増大側応答性を基準とする増大側応答性の低下の度合いを表し得る指標であればよく、特に制限されない。また、上記「減少側応答性の低下度」は、酸素濃度センサが本来有する減少側応答性を基準とする減少側応答性の低下の度合いを表し得る指標であればよく、特に制限されない。なお、本発明において、増大側応答性の低下度の値は、その値が大きいほど増大側応答性の低下の度合いが大きいことを表す。また、減少側応答性の低下度の値は、その値が大きいほど減少側応答性の低下の度合いが大きいことを表す。
【００５１】
以下、本発明の空燃比制御手段が上記（Ｂ−１）および上記（Ｂ−２）に示すように増大側閾値および減少側閾値を調整する理由について説明する。
【００５２】
上述したように、「増大側応答性」の低下度が減少側応答性の低下度よりも大きい場合、リーンガス導入制御がリッチガス導入制御よりも開始され難い。換言すると、この場合、酸素濃度センサの出力値の変化率は、リーンガス導入制御を開始するための閾値である「増大側閾値」よりも大きくなり難い。
【００５３】
そこで、上記の場合、空燃比制御手段は、「増大側閾値を小さく」するように調整する（上記（Ｂ−１）の前段）。これにより、酸素濃度センサの出力値が増大するときの変化率が比較的小さくても、リーンガス導入制御が開始されるようになる。すなわち、リーンガス導入制御が開始され易くなる。その結果、触媒の平均酸素吸蔵量が不足側に偏ることが防がれる。
【００５４】
これに対し、「減少側応答性」の低下度が増大側応答性の低下度よりも大きい場合、上述したように、リッチガス導入制御がリーンガス導入制御よりも開始され難い。換言すると、この場合、酸素濃度センサの出力値の変化率（負の値）は、リッチガス導入制御を開始するための閾値である「減少側閾値（負の値）」よりも小さくなり難い。
【００５５】
そこで、この場合、空燃比制御手段は、「減少側閾値を大きく」するように調整する（上記（Ｂ−１）の後段）。これにより、酸素濃度センサの出力値が減少するときの変化率（負の値）が比較的大きくても、リッチガス導入制御が開始されるようになる。すなわち、リッチガス導入制御が開始され易くなる。その結果、触媒の平均酸素吸蔵量が過剰側に偏ることが防がれる。
【００５６】
なお、減少側閾値は負の値であるので、上記調整によって「減少側閾値の絶対値」は小さくされる。また、増大側閾値は正の値であるので、上記調整によって「増大側閾値の絶対値」は小さくされる。すなわち、上記調整によって、増大側閾値の絶対値および減少側閾値の絶対値の双方が小さくされる。
【００５７】
このように、リーンガス導入制御またはリッチガス導入制御を開始するための閾値（増大側閾値または減少側閾値）の絶対値を「小さく」することにより、酸素濃度センサの出力応答性が非対称に低下した場合であっても、触媒の平均酸素吸蔵量が不足側または過剰側に偏ることが防がれる。その結果、排ガスの浄化効率が高い状態が比較的確実に維持される。
【００５８】
しかしながら、「触媒の劣化度が大きい」場合には、増大側閾値または減少側閾値が上述したように調整されても、触媒の平均酸素吸蔵量が不足側または過剰側に偏ることが十分に防がれない場合がある。
【００５９】
具体的に述べると、一般に、触媒に導入される排ガス（触媒導入ガス）の酸素濃度の値は、内燃機関に供給される混合気の空燃比に起因する値である主成分と、種々の要因によって生じる外乱などに起因する値であるノイズ成分と、が合成された値（以下、便宜上、「合成値」とも称呼する。）であると考えられる。さらに、触媒から排出される排ガス（触媒排出ガス）の酸素濃度の値は、その合成値が触媒に処理されて得られる値であると考えることができる。ここで、触媒が合成値を「処理する」とは、触媒が「合成値の大きさに応じて（リーン側の値であるか又はリッチ側の値であるかに応じて）酸素を吸蔵または放出することによって合成値の大きさを変更または維持する」ことを意味する。
【００６０】
触媒の劣化度が十分に小さい場合（例えば、ノイズ成分の大きさ（振幅）に対して最大酸素吸蔵量が十分に大きい場合）、合成値は触媒によって適切に処理される。具体的に述べると、主成分はその大きさに応じた値に変更され、ノイズ成分は十分に減衰（吸収）される。その結果、この場合、触媒排出ガスの酸素濃度の値はノイズ成分に起因する乱れ（以下、単に「ノイズ」とも称呼する。）の少ない値となる。そのため、この場合、増大側閾値および減少側閾値の調整に対して、ノイズ成分は実質的に影響を与えない。
【００６１】
ところが、触媒の劣化度が大きい場合（例えば、ノイズ成分の大きさ（振幅）に対して最大酸素吸蔵量が小さい場合）、合成値が触媒によって適切に処理されない場合がある。具体的に述べると、主成分は適切に処理されても、ノイズ成分が十分に減衰（吸収）されない場合がある。その結果、この場合、触媒排出ガスの酸素濃度の値はノイズの多い値となる場合がある。そのため、この場合に閾値（増大側閾値または減少側閾値）の絶対値を「小さく」すると、ノイズ成分の影響により、リーンガス導入制御およびリッチガス導入制御が適切に行われない場合がある。
【００６２】
具体的に述べると、例えば、増大側閾値が「小さく」された場合、実際の触媒の酸素吸蔵量がゼロの近傍でなくても（すなわち、酸素吸蔵量が十分に大きくても）、ノイズの影響によって酸素濃度センサの出力値の変化率の大きさが増大側閾値よりも大きくなると、リーンガス導入制御が行われる。この結果、触媒の平均酸素吸蔵量が過剰側に偏る場合がある。また、例えば、減少側閾値が「大きく」された場合、実際の触媒の酸素吸蔵量が最大酸素吸蔵量の近傍でなくても（すなわち、酸素吸蔵量が十分に小さくても）、ノイズの影響によって同変化率の大きさがその減少側閾値よりも小さくなると、リッチガス導入制御が行われる。この結果、触媒の平均酸素吸蔵量が不足側に偏る場合がある。
【００６３】
そこで、空燃比制御手段は、触媒の劣化度が大きい場合、上記（Ｂ−１）とは異なる考え方にて増大側閾値および減少側閾値を調整する。
【００６４】
具体的に述べると、「増大側応答性」の低下度が減少側応答性の低下度よりも大きい場合、上述したように、リーンガス導入制御がリッチガス導入制御よりも開始され難い。逆に言えば、リッチガス導入制御がリーンガス導入制御よりも開始され易い。つまり、酸素濃度センサの出力値の変化率は、リッチガス導入制御を開始するための閾値である「減少側閾値」よりも小さくなり易い。
【００６５】
そこで、空燃比制御手段は、触媒の劣化度が所定の閾値劣化度よりも大きければ、上記の場合、「減少側閾値（負の値）を小さく」するように調整する（上記（Ｂ−２）の前段）。これにより、酸素濃度センサの出力値が減少するときの変化率が比較的小さくなるまで、リッチガス導入制御が開始されないようになる。すなわち、リッチガス導入制御が開始され難くなる。その結果、触媒の平均酸素吸蔵量が不足側に偏ることが防がれる。
【００６６】
これに対し、「減少側応答性」の低下度が増大側応答性の低下度よりも大きい場合、上述したように、リッチガス導入制御がリーンガス導入制御よりも開始され難い。逆に言うと、リーンガス導入制御がリッチガス導入制御よりも開始され易い。つまり、酸素濃度センサの出力値の変化率は、リーンガス導入制御を開始するための閾値である「増大側閾値」よりも大きくなり易い。
【００６７】
そこで、空燃比制御手段は、触媒の劣化度が所定の閾値劣化度よりも大きければ、上記の場合、「増大側閾値を大きく」するように調整する（上記（Ｂ−２）の後段）。これにより、酸素濃度センサの出力値が増大するときの変化率が比較的大きくなるまでリーンガス導入制御が開始されないようになる。その結果、触媒の平均酸素吸蔵量が過剰側に偏ることが防がれる。
【００６８】
このように、上記（Ｂ−１）に示す考え方とは逆にリーンガス導入制御またはリッチガス導入制御を開始するための閾値（増大側閾値または減少側閾値）の絶対値を「大きく」することにより、触媒の劣化度が大きい場合であっても、酸素濃度センサの出力応答性が非対称に低下したときに触媒の平均酸素吸蔵量が不足側または過剰側に偏ることが防がれる。以上が、本発明の空燃比制御手段が上記（Ｂ−１）および上記（Ｂ−２）に示すように増大側閾値および減少側閾値を調整する理由である。
【００６９】
以上、説明したように、本発明の制御装置は、上述した「増大側閾値および減少側閾値の調整方法（上記（Ｂ−１）および上記（Ｂ−２））」に従って定められる増大側閾値および減少側閾値を用いて、上記「空燃比制御の基本的な考え方（上記（Ａ−１）および上記（Ａ−２））」に従って空燃比を制御する。これにより、酸素濃度センサの出力応答性が低下した場合（なかでも、同出力応答性が非対称に低下した場合）であっても、排ガスの浄化効率が高い状態が維持される。すなわち、排ガスの酸素濃度を適切に調整することができる。
【００７０】
なお、触媒の劣化度についての上記「閾値劣化度」は、触媒の劣化度がその閾値劣化度よりも大きいときに上記ノイズ成分が触媒によって十分に減衰（吸収）されないと判断し得る適値に設定され得る。
【００７１】
３．増大側閾値および減少側閾値の具体例
上記「増大側閾値」は、酸素濃度センサの出力値の変化率がその増大側閾値よりも大きいときに「触媒の酸素吸蔵量がゼロの近傍にまでに近づいている」と判断し得る適値に設定されればよく、特に制限されない。さらに、上記「減少側閾値」は、酸素濃度センサの出力値の変化率がその減少側閾値よりも小さいときに「触媒の酸素吸蔵量が最大酸素吸蔵量の近傍にまでに近づいている」と判断し得る適値に設定されればよく、特に制限されない。
【００７２】
例えば、増大側閾値および減少側閾値の一の態様として、空燃比制御手段は、
前記増大側応答性の低下度が実質的にゼロであるときに前記増大側閾値を「増大側基準閾値」に設定し、かつ、前記減少側応答性の低下度が実質的にゼロであるときに前記減少側閾値を「減少側基準閾値」に設定する、ように構成され得る。
【００７３】
上記「増大側基準閾値」および上記「減少側基準閾値」は、例えば、排ガスの酸素濃度と酸素濃度センサの出力値との関係をあらかじめ実験などによって確認することにより、定められ得る。増大側基準閾値および減少側基準閾値は、同一の値であっても異なる値であってもよい。
【００７４】
さらに、増大側閾値および減少側閾値の他の態様として、空燃比制御手段は、
前記増大側閾値を小さくする場合に該増大側閾値を前記増大側基準閾値よりも小さくし、前記減少側閾値を大きくする場合に該減少側閾値を前記減少側基準閾値よりも大きくし、前記減少側閾値を小さくする場合に該減少側閾値を前記減少側基準閾値よりも小さくし、前記増大側閾値を大きくする場合に該増大側閾値を前記増大側基準閾値よりも大きくする、ように構成され得る。
【００７５】
加えて、増大側閾値および減少側閾値のさらに他の態様として、空燃比制御手段は、
増大側応答性の低下度と減少側応答性の低下度との差の絶対値である「非対称低下度」に応じ、下記（Ｃ−１）および下記（Ｃ−２）に示すように増大側閾値および減少側閾値を調整する、ように構成され得る。
【００７６】
（Ｃ−１）前記触媒の劣化度が「前記閾値劣化度以下」である場合：
前記増大側応答性の低下度が前記減少側応答性の低下度よりも大きければ、空燃比制御手段は、「非対称低下度が大きいほど前記増大側閾値を小さく」する。さらに、前記減少側応答性の低下度が前記増大側応答性の低下度よりも大きければ、空燃比制御手段は、「前記非対称低下度が大きいほど前記減少側閾値を大きく」する。
（Ｃ−２）前記触媒の劣化度が「前記閾値劣化度よりも大きい」場合：
前記増大側応答性の低下度が前記減少側応答性の低下度よりも大きければ、空燃比制御手段は、「前記非対称低下度が大きいほど前記減少側閾値を小さく」する。さらに、前記減少側応答性の低下度が前記増大側応答性の低下度よりも大きければ、空燃比制御手段は、「前記非対称低下度が大きいほど前記増大側閾値を大きく」する。
【００７７】
上記「増大側閾値および減少側閾値の調整方法」において述べたように、酸素濃度センサの出力応答性が非対称に低下するとき、触媒の平均酸素吸蔵量は不足側または過剰側に偏る場合がある。上記説明から理解されるように、この偏りの度合い（すなわち、中央酸素吸蔵量と平均酸素吸蔵量との差の絶対値）は、非対称低下度が大きいほどより大きくなると考えられる。
【００７８】
そこで、空燃比制御手段は、上記（Ｃ−１）および上記（Ｃ−２）に示すように、非対称低下度の大きさに応じて増大側閾値および減少側閾値を調整する。これにより、酸素濃度センサの出力応答性が非対称に低下した場合、触媒の平均酸素吸蔵量が過剰側または減少側に偏ることがより確実に防がれる。その結果、排ガスの浄化効率が高い状態がより確実に維持される。
【００７９】
４．出力応答性の具体例
上記「増大側応答性」としては、酸素濃度センサの出力値が増大するときの酸素濃度センサの応答性を表す指標が採用されればよく、特に制限されない。さらに、上記「減少側応答性」としては、酸素濃度センサの出力値が減少するときの酸素濃度センサの応答性を表す指標が採用されればよく、特に制限されない。
【００８０】
例えば、空燃比制御手段は、
前記増大側応答性の一の態様として、「前記酸素濃度センサの出力値が増大するときの前記酸素濃度センサの応答時定数」である増大側応答時定数を採用し、
前記減少側応答性の一の態様として、「前記酸素濃度センサの出力値が減少するときの前記酸素濃度センサの応答時定数」である減少側応答時定数を採用する、ように構成され得る。
【図面の簡単な説明】
【００８１】
【図１】本発明の第１実施形態に係る制御装置が適用される内燃機関の概略図である。
【図２】図１に示した上流側酸素濃度センサ７６の出力値と、排ガスの空燃比と、の関係を示すグラフである。
【図３】図１に示した下流側酸素濃度センサ７７の出力値と、排ガスの空燃比と、の関係を示すグラフである。
【図４】本発明の第１の実施形態に係る制御装置の作動を示す概略フローチャートである。
【図５】触媒上流側空燃比と、下流側酸素濃度センサの出力値と、触媒の酸素吸蔵量と、の関係を示すタイムチャートである。
【図６】触媒上流側空燃比と、下流側酸素濃度センサの出力値と、の関係を示すタイムチャートである。
【図７】触媒上流側空燃比と、下流側酸素濃度センサの出力値と、触媒の酸素吸蔵量と、の関係を示すタイムチャートである。
【図８】図７のＡ部を拡大した図である。
【図９】図７のＢ部を拡大した図である。
【図１０】下流側酸素濃度センサの出力値と、触媒の酸素吸蔵量と、の関係を示すタイムチャートである。
【図１１】本発明の第１実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１２】本発明の第１実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１３】本発明の第１実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１４】本発明の第１実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１５】本発明の第１実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１６】本発明の第１実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１７】本発明の第１実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１８】本発明の第１実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１９】本発明の第１実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図２０】本発明の第２実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図２１】本発明の第２実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【発明を実施するための形態】
【００８２】
以下、本発明による内燃機関の制御装置の各実施形態について、図面を参照しながら説明する。
【００８３】
（第１実施形態）
＜装置の概要＞
図１は、本発明の第１実施形態に係る制御装置（以下、「第１装置」とも称呼する。）を内燃機関１０に適用したシステムの概略構成を示している。内燃機関１０は、４サイクル火花点火式多気筒（４気筒）機関である。図１は、複数の気筒のうちの一の気筒の断面のみを示している。なお、他の気筒もこの一の気筒と同様の構成を備えている。以下、便宜上、「内燃機関１０」を単に「機関１０」とも称呼する。
【００８４】
この機関１０は、シリンダブロック部２０、シリンダブロック部２０の上部に固定されるシリンダヘッド部３０、シリンダブロック部２０に空気と燃料との混合気を導入するための吸気系統４０、および、シリンダブロック部２０から排出されるガス（排ガス）を機関１０の外部に放出するための排気系統５０、を備えている。
【００８５】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３、および、クランクシャフト２４、を有している。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランクシャフト２４に伝達され、これにより同クランクシャフト２４が回転するようになっている。シリンダ２１の内壁面、ピストン２２の上面およびシリンダヘッド部３０の下面は、燃焼室２５を画成している。
【００８６】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを有するとともに同インテークカムシャフトの位相角およびリフト量を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃料を吸気ポート３１内に噴射するインジェクタ３４、燃焼室２５に連通した排気ポート３５、排気ポート３５を開閉する排気弁３６、排気弁３６を駆動するエキゾーストカムシャフト３７、点火プラグ３８、および、点火プラグ３８に与える高電圧を発生するイグニッションコイルを含むイグナイタ３９、を有している。
【００８７】
なお、機関１０は、インジェクタ３４に代えて、または、インジェクタ３４とは別に、燃料を燃焼室２５内に直接噴射する筒内インジェクタ（図示省略。）を備えるように構成され得る。
【００８８】
吸気系統４０は、吸気ポート３１を介してそれぞれの気筒に連通されたインテークマニホールド４１、インテークマニホールド４１の上流側の集合部に接続された吸気管４２、吸気管４２の端部に設けられたエアクリーナ４３、吸気管４２の開口面積（開口断面積）を変更することができるスロットル弁（吸気絞り弁）４４、および、指示信号に応じてスロットル弁４４を回転駆動するスロットル弁アクチュエータ４４ａ、を有している。吸気ポート３１、インテークマニホールド４１および吸気管４２は、吸気通路を構成している。
【００８９】
排気系統５０は、排気ポート３５を介してそれぞれの気筒に連通されたエキゾーストマニホールド５１、エキゾーストマニホールド５１の下流側の集合部に接続された排気管５２、および、排気管５２に設けられた排ガス浄化用触媒５３、を有している。排気ポート３５、エキゾーストマニホールド５１および排気管５２は、排気通路を構成している。以下、排ガス浄化用触媒５３を、単に「触媒５３」とも称呼する。
【００９０】
触媒５３は、酸素吸蔵物質としてのセリア・ジルコニア共触媒（CeO2−ZrO2）と、担体としてのセラミクス（アルミナなど）と、触媒成分としての貴金属（白金およびロジウムなど）と、から構成される三元触媒である。この触媒５３は、触媒の温度がその活性温度以上であり、かつ、浄化される対象である排ガスの酸素濃度が「基準酸素濃度（理論空燃比の混合気が燃焼した際に生じる排ガスの酸素濃度）の近傍」である場合、排ガスに含まれる未燃物（HC，COなど）と窒素酸化物（NOx）との酸化還元反応を促進し、これらを高い浄化率にて同時に浄化することができる。
【００９１】
上記触媒成分は、未燃物と窒素酸化物との酸化還元反応（すなわち、排ガスの浄化）を促進する。さらに、上記酸素吸蔵物質は、排ガスの酸素濃度が基準酸素濃度よりも高いときに過剰な酸素を吸蔵し、排ガスの酸素濃度が基準酸素濃度よりも低いときに吸蔵されている酸素を上記酸化反応のために放出する。これにより、触媒に導入される排ガスの酸素濃度が基準酸素濃度の近傍とは異なる酸素濃度であっても、触媒成分における酸素濃度が基準酸素濃度に一致するように調節されるので、排ガスが高い浄化率にて浄化される状態が維持される。
【００９２】
機関１０の外部には、機関１０に加速要求および要求トルクなどを入力するためのアクセルペダル６１が設けられている。アクセルペダル６１は、機関１０の操作者によって操作される。
【００９３】
さらに、機関１０は、複数のセンサを備えている。具体的に述べると、第１装置は、吸入空気量センサ７１、スロットル弁開度センサ７２、カムポジションセンサ７３、クランクポジションセンサ７４、水温センサ７５、上流側酸素濃度センサ７６、下流側酸素濃度センサ７７、および、アクセル開度センサ７８、を備えている。
【００９４】
吸入空気量センサ７１は、吸気通路（吸気管４２）に設けられている。吸入空気量センサ７１は、吸気管４２内を流れる空気の質量流量である吸入空気量（すなわち、機関１０に吸入される空気の質量）に応じた信号を出力するようになっている。この信号に基づき、吸入空気量Gaの測定値が取得される。
【００９５】
スロットル弁開度センサ７２は、スロットル弁４４の近傍に設けられている。スロットル弁開度センサ７２は、スロットル弁４４の開度に応じた信号を出力するようになっている。この信号に基づき、スロットル弁開度TAが取得される。
【００９６】
カムポジションセンサ７３は、可変吸気タイミング装置３３の近傍に設けられている。カムポジションセンサ７３は、インテークカムシャフトが９０°回転する毎に（すなわち、クランクシャフト２４が１８０°回転する毎に）一つのパルスを有する信号を出力するようになっている。この信号に基づき、インテークカムシャフトの回転位置（カムポジション）の測定値が取得される。
【００９７】
クランクポジションセンサ７４は、クランクシャフト２４の近傍に設けられている。クランクポジションセンサ７４は、クランクシャフト２４が１０°回転する毎に幅の狭いパルスを有する信号を出力するとともに、クランクシャフト２４が３６０°回転する毎に幅の広いパルスを有する信号を出力するようになっている。これら信号に基づき、クランクシャフト２４の単位時間あたりの回転数の測定値（以下、単に「機関回転速度NE」とも称呼する。）が取得される。
【００９８】
水温センサ７５は、シリンダ２１に設けられている冷却水の通路に設けられている。水温センサ７５は、冷却水の温度に応じた信号を出力するようになっている。この信号に基づき、冷却水の温度THWの測定値が取得される。
【００９９】
上流側酸素濃度センサ７６は、触媒５３の上流側の排気通路（エキゾーストマニホールド５１の集合部の近傍、または、集合部の近傍よりも下流側）に設けられている。上流側酸素濃度センサ７６は、公知の限界電流式の酸素濃度センサである。この上流側酸素濃度センサ７６は、触媒５３に導入される排ガスの空燃比に応じた電圧であるVabyfsを出力するようになっている。
【０１００】
以下、触媒５３に導入される排ガスを「触媒導入ガス」とも称呼する。さらに、排ガスの酸素濃度を「排ガスの空燃比」とも称呼し、排ガスの酸素濃度が基準酸素濃度であることを「排ガスの空燃比が理論空燃比である」とも称呼する。加えて、以下、理論空燃比よりもリッチ側の空燃比を「リッチ空燃比」とも称呼し、理論空燃比よりもリーン側の空燃比を「リーン空燃比」とも称呼する。
【０１０１】
より具体的に述べると、排ガスの空燃比が「リッチ空燃比」であるとは、排ガスに「排ガスに含まれる未燃物を全て酸化するために必要な量よりも少ない量の酸素」が含まれている状態を表す。一方、排ガスの空燃比が「リーン空燃比」であるとは、排ガスに「排ガスに含まれる未燃物を全て酸化するために必要な量よりも多い量の酸素」が含まれている状態を表す。さらに、排ガスの空燃比が「理論空燃比」であるとは、排ガスに「排ガスに含まれる未燃物を全て酸化するために必要な量の酸素」が含まれている状態を表す。
【０１０２】
上流側酸素濃度センサ７６の出力値Vabyfsは、図２に示すように、触媒導入ガスの空燃比が理論空燃比であるときに値Vstoichに一致する。さらに、触媒導入ガスの空燃比が大きいほど、出力値Vabyfsは増大する。この出力値Vabyfsに基づき、触媒導入ガスの空燃比が取得される。以下、図２に示す出力値Vabyfsと空燃比A/Fとの関係は「テーブルMapabyfs」とも称呼される。
【０１０３】
再び図１を参照すると、下流側酸素濃度センサ７７は、触媒５３の下流側の排気通路（排気管５２）に設けられている。下流側酸素濃度センサ７７は、公知の起電力式（濃淡電池型）の酸素濃度センサである。下流側酸素濃度センサ７７は、触媒５３から排出される排ガスの空燃比に応じた電圧であるVoxsを出力するようになっている。以下、触媒５３から排出される排ガスを「触媒排出ガス」とも称呼する。
【０１０４】
下流側酸素濃度センサ７７の出力値Voxsは、図３に示すように、触媒排出ガスの空燃比が理論空燃比からリッチ側に向けて離れるほど増大し、触媒排出ガスの空燃比が理論空燃比からリーン側に向けて離れるほど減少する。より具体例に述べると、出力値Voxsは、触媒排出ガスの空燃比が理論空燃比からリッチ側に向けて離れるにつれて最大出力値max（例えば、約０．９Ｖ）に近づき、触媒排出ガスの空燃比が理論空燃比からリーン側に向けて離れるにつれて最小出力値min（例えば、約０．１Ｖ）に近づく。また、出力値Voxsは、触媒排出ガスの空燃比が理論空燃比であるときに最大出力値maxと最小出力値minとの略中間の電圧である中央値mid（例えば、約０．５Ｖ）となる。この出力値Voxsに基づき、触媒排出ガスの空燃比が取得される。
【０１０５】
以下、便宜上、触媒導入ガスの空燃比を「触媒上流側空燃比abyfs」とも称呼し、触媒排出ガスの空燃比を「触媒下流側空燃比oxs」とも称呼する。
【０１０６】
再び図１を参照すると、アクセル開度センサ７８は、アクセルペダル６１に設けられている。アクセル開度センサ７８は、アクセルペダル６１の開度に応じた信号を出力するようになっている。この信号に基づき、アクセルペダル開度Accpが取得される。
【０１０７】
さらに、機関１０は、電子制御装置８０を備えている。電子制御装置８０は、ＣＰＵ８１、ＣＰＵ８１が実行するプログラム、テーブル（マップ）および定数などをあらかじめ記憶したＲＯＭ８２、ＣＰＵ８１が必要に応じて一時的にデータを格納するＲＡＭ８３、電源が投入された状態でデータを格納すると共に格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ８４、ならびに、ＡＤコンバータを含むインターフェース８５を有する。ＣＰＵ８１、ＲＯＭ８２、ＲＡＭ８３、ＲＡＭ８４およびインターフェース８５は、互いにバスで接続されている。
【０１０８】
インターフェース８５は、上記各センサと接続され、ＣＰＵ８１にそれらセンサから出力される信号を伝えるようになっている。さらに、インターフェース８５は、可変吸気タイミング装置３３のアクチュエータ３３ａ、インジェクタ３４、イグナイタ３９およびスロットル弁アクチュエータ４４ａなどと接続され、ＣＰＵ８１の指示に応じてそれらに指示信号を送るようになっている。
【０１０９】
＜装置の作動の概要＞
以下、機関１０に適用される第１装置の作動の概要について、図４を参照しながら説明する。図４は、第１装置の作動の概要を示す「概略フローチャート」である。
【０１１０】
第１装置は、下流側酸素濃度センサ７７の出力応答性が低下した場合であっても触媒５３の排ガスの浄化効率が高い状態が維持されるように、機関１０に供給される混合気の空燃比を制御する。具体的に述べると、第１装置は、所定の時点における触媒５３の劣化度Dcat、同時点における増大側応答性（すなわち、下流側酸素濃度センサ７７の出力値が増大するときの同センサ７７の応答性）の低下度、および、同時点における減少側応答性（すなわち、同センサ７７の出力値が減少するときの同センサ７７の応答性）の低下度に基づき、混合気の空燃比を制御するための指標である「増大側閾値DIFupthおよび減少側閾値DIFdownth」を決定する。さらに、第１装置は、下流側酸素濃度センサ７７の出力値の変化率が増大側閾値DIFupthよりも大きくなると空燃比を「リーン空燃比」に制御し、同変化率が減少側閾値DIFdownthよりも小さくなると空燃比を「リッチ空燃比」に制御する。
【０１１１】
以下、増大側応答性の低下度を「増大側低下度」とも称呼し、減少側応答性の低下度を「減少側低下度」とも称呼する。さらに、以下、便宜上、混合気の空燃比を制御することを「触媒導入ガスの空燃比を制御する」とも称呼する。
【０１１２】
例えば、第１装置は、触媒５３の劣化度Dcatが「所定の閾値劣化度Dcatth以下」である場合、図４のステップ４１０にて「Ｙｅｓ」と判定してステップ４２０に進む。第１装置は、ステップ４２０にて、増大側閾値DIFupthおよび減少側閾値DIFdownthを決定する。具体的述べると、第１装置は、増大側低下度が減少側低下度よりも大きければ、増大側閾値DIFupthとして所定の基準閾値よりも小さい値を採用する。一方、第１装置は、減少側低下度が増大側低下度よりも大きければ、減少側閾値DIFdownth（負の値）として所定の基準閾値（負の値）よりも大きい値を採用する。換言すると、第１装置は、増大側低下度および減少側低下度のいずれが大きいかを判定するとともに、「増大側低下度が減少側低下度よりも大きければ増大側閾値DIFupth（正の値）の絶対値を小さくし、減少側低下度が増大側低下度よりも大きければ減少側閾値DIFdownth（負の値）の絶対値を小さく」する。
【０１１３】
これに対し、例えば、触媒５３の劣化度Dcatが「閾値劣化度Dcatthよりも大きい」場合、第１装置は、ステップ４１０にて「Ｎｏ」と判定してステップ４３０に進む。第１装置は、ステップ４３０にて、増大側閾値DIFupthおよび減少側閾値DIFdownthを決定する。ただし、第１装置は、上記ステップ４２０とは異なり、「増大側低下度が減少側低下度よりも大きければ減少側閾値DIFdownth（負の値）の絶対値を大きくし、減少側低下度が増大側低下度よりも大きければ増大側閾値DIFupth（正の値）の絶対値を大きく」する。具体的に述べると、第１装置は、増大側低下度が減少側低下度よりも大きければ、減少側閾値DIFdownth（負の値）として所定の基準閾値（負の値）よりも小さい値を採用する。さらに、第１装置は、減少側低下度が増大側低下度よりも大きければ、増大側閾値DIFupthとして所定の基準閾値よりも大きい値を採用する。
【０１１４】
なお、増大側低下度と減少側低下度とが同一である場合、第１装置は、増大側閾値DIFupthとして所定の基準閾値を採用し、減少側閾値DIFdownthとして所定の基準閾値を採用する（図示省略。）。
【０１１５】
次いで、第１装置は、出力値Voxsの変化率が増大側閾値DIFupthよりも大きければステップ４３０にて「Ｙｅｓ」と判定してステップ４５０に進み、触媒導入ガスの空燃比を「リーン空燃比」に制御する。一方、第１装置は、出力値Voxsの変化率が減少側閾値DIFdownthよりも小さければ、ステップ４４０にて「Ｎｏ」と判定するとともにステップ４６０にて「Ｙｅｓ」と判定してステップ４７０に進み、触媒導入ガスの空燃比を「リッチ空燃比」に制御する。さらに、第１装置は、出力値Voxsの変化率が減少側閾値DIFdownth以上であり且つ増大側閾値DIFupth以下であれば、第１装置は、ステップ４４０およびステップ４６０にて「Ｎｏ」と判定してステップ４８０に進み、出力値Voxsを所定の目標出力値に一致させるように触媒導入ガスの空燃比を制御する。以上が第１装置の作動の概要である。
【０１１６】
＜触媒の劣化度の取得方法＞
第１装置は、上記「触媒５３の劣化度Dcat」を触媒５３の最大酸素吸蔵量Cmaxに基づいて取得する。以下、劣化度Dcatの取得方法について、より詳細に説明する。
【０１１７】
１．最大酸素吸蔵量Cmaxの取得
第１装置は、後述する「触媒劣化度取得条件」が成立すれば、触媒５３の劣化度Dcatを取得するための制御（以下、「触媒劣化度取得制御」とも称呼する。）を行う。この触媒劣化度取得制御について、図５に示すタイムチャートを参照しながら説明する。
【０１１８】
図５は、（ａ）触媒上流側空燃比abyfsと、（ｂ）下流側酸素濃度センサ７７の出力値Voxsと、（ｃ）触媒５３の酸素吸蔵量OSAと、の関係を示すタイムチャートである。なお、図５においては、理解が容易になるように、実際の各値の波形が模式化されたものが示されている。このタイムチャートにおける時刻t0においては、触媒導入ガスの空燃比（触媒上流側空燃比abyfs）を理論空燃比stoichに一致させる「通常運転」が行われている。図５に示す例においては、時刻t0における下流側酸素濃度センサ７７の出力値Voxsは最大出力値maxであり、酸素吸蔵量OSAはゼロ近傍の所定値である、と仮定されている。なお、この所定値は、時刻t0における運転に応じて定まる値である。
【０１１９】
時刻t1にて「触媒劣化度取得条件」が成立すると、「触媒劣化度取得制御」が開始される。具体的に述べると、第１装置は、時刻t1にて、触媒導入ガスの空燃比（触媒上流側空燃比abyfs）がリーン空燃比leanとなるように機関１０を制御する。例えば、第１装置は、時刻t1において、機関１０にフューエルカット運転を行わせる。
【０１２０】
これにより、時刻t1において触媒上流側空燃比abyfsはリーン空燃比leanとなる。このとき、リーン空燃比leanの排ガス（すなわち、理論空燃比stoichの排ガスよりも酸素濃度が高い排ガス）が触媒５３に導入されるので、触媒５３はこの排ガスに含まれる過剰な酸素を吸蔵する。そのため、触媒５３の酸素吸蔵量OSAは、時刻t1以降において時間が経過するにつれて増大する。一方、このとき、触媒導入ガスに含まれる酸素の実質的に全てが消費されるので（排ガスの浄化に必要な量の酸素は触媒成分における酸化反応に用いられ、過剰な酸素は触媒５３に吸蔵されるので）、触媒排出ガスには酸素が実質的に含まれない。したがって、時刻t1以降においても、下流側酸素濃度センサ７７の出力値Voxsは最大出力値maxに維持される。
【０１２１】
なお、実際には、触媒上流側空燃比abyfsがリーン空燃比leanとなる制御が開始されてから、リーン空燃比leanの排ガスが上流側酸素濃度センサ７６に達するまで、には所定の時間長さを要する。そのため、実際には、時刻t1からその所定の時間長さが経過した後の時点にて、触媒導入ガスの酸素濃度abyfsがリーン空燃比leanとなる。しかし、本説明においては、理解が容易になるように、触媒導入ガスの酸素濃度abyfsは時刻t1において瞬時にリーン空燃比leanとなる、と仮定されている。以下、同様に、「触媒上流側空燃比abyfsを変更する制御が開始されてから、その変更に応じた空燃比の排ガスが上流側酸素濃度センサ７６に達するまで、の時間長さ」はゼロである、と仮定して説明を続ける。
【０１２２】
その後、時刻t2において、触媒５３の酸素吸蔵量OSAは最大酸素吸蔵量Cmaxに達する。このとき、触媒５３は触媒導入ガスに含まれる過剰な酸素を実質的に吸蔵することができないので、同過剰な酸素は、触媒５３から排出される。よって、時刻t2において、下流側酸素濃度センサ７７の出力値Voxsはリーン空燃比leanを表す値（本例においては、最小出力値min）となる。
【０１２３】
なお、実際には、後述するように、触媒５３の酸素吸蔵量OSAが最大酸素吸蔵量Cmaxに達するよりも前の時点から、触媒導入ガスに含まれる過剰な酸素の一部が触媒５３から排出され始める。しかし、本説明においては、理解が容易になるように、酸素吸蔵量OSAが最大酸素吸蔵量Cmaxに達した時点にて上記過剰な酸素の全てが触媒５３から排出され始める、と仮定されている。
【０１２４】
時刻t2において、第１装置は、触媒導入ガスの空燃比（触媒上流側空燃比abyfs）がリッチ空燃比richとなるように機関１０を制御する。例えば、第１装置は、時刻t2において、燃料噴射量を通常運転が行われる場合の燃料噴射量よりも増大させる運転を機関１０に行わせる。
【０１２５】
これにより、時刻t2において触媒上流側空燃比abyfsはリッチ空燃比richとなる。このとき、リッチ空燃比richの排ガス（すなわち、理論空燃比stoichの排ガスよりも酸素濃度が低い排ガス）が触媒５３に導入されるので、触媒５３は吸蔵されている酸素を排ガスの酸化反応のために放出する。そのため、触媒５３の酸素吸蔵量OSAは、時刻t2以降において時間が経過するにつれて減少する。一方、このとき、触媒５３に吸蔵されている酸素によって上記酸化反応が行われるので、触媒導入ガスに含まれる酸素（未燃酸素）は、上記酸化反応のために用いられない。よって、触媒導入ガスに含まれる未燃酸素は、触媒排出ガス中に残存する。したがって、時刻t2以降においても、下流側酸素濃度センサ７７の出力値Voxsは最小出力値minに維持される。
【０１２６】
その後、時刻t3において、触媒５３の酸素吸蔵量OSAはゼロに達する。このとき、触媒導入ガスに含まれる未燃酸素の実質的に全てが排ガスの酸化反応のために用いられるので、触媒排出ガスには酸素が実質的に含まれない。したがって、時刻t3において、排ガスの空燃比はリッチ空燃比richを表す値（本例においては、最大出力値max）となる。
【０１２７】
なお、実際には、後述するように、触媒５３の酸素吸蔵量OSAがゼロに達するよりも前の時点から、触媒導入ガスに含まれる未燃酸素の一部が排ガスの酸化反応のために用いられ始める。しかし、本説明においては、理解が容易になるように、酸素吸蔵量OSAがゼロに達した時点にて触媒導入ガスに含まれる未燃酸素の全てが上記酸化反応のために用いられ始める、と仮定されている。
【０１２８】
時刻t3以降において、第１装置は「通常運転」を再開する。これにより、時刻t3以降、触媒上流側空燃比abyfsは理論空燃比stoichとなる。なお、時刻t3以降における下流側酸素濃度センサ７７の出力値Voxsおよび触媒５３の酸素吸蔵量OSAは、機関１０の運転状態に応じた値となる。
【０１２９】
上記各運転を行った後、第１装置は、下記（１）式および下記（２）式に従い、触媒５３の最大酸素吸蔵量Cmaxを算出する。下記（１）式において、数値０．２３は標準状態における空気の酸素濃度（重量パーセント濃度）を、Fsumは単位時間Δt内における燃料噴射量の積算値を、abyfsaveは触媒上流側空燃比abyfsの単位時間Δt内の平均値を、stoichは理論空燃比を、表す。下記（２）式において、同式の右辺はΔO2を時刻t2から時刻t3までの範囲において時間tについて積分した値の絶対値を表す。なお、周知のように、標準状態とは、温度がゼロ℃（２７３．１５Ｋ）であり且つ圧力が１ｂａｒ（１０５Ｐａ）である状態を意味する。
【０１３０】
ΔO2＝0.23×Fsum×（abyfsave−stoich）    ・・・（１）
Cmax＝｜Σ［t＝t2，t3］（ΔO2）｜    ・・・（２）
【０１３１】
上記（１）式の右辺から明らかなように、上記（１）式により、「単位時間あたりに触媒５３に導入される排ガスに含まれる酸素量ΔO2を、理論空燃比の排ガスに含まれる酸素量を基準として表した値」が算出される。より簡便に述べると、ΔO2は、「理論空燃比の排ガスに含まれる酸素量を基準とする酸素の過剰量または不足量」を表す値である。なお、酸素量が過剰であればΔO2は正の値となり、酸素量が不足していればΔO2は負の値となる。換言すると、ΔO2が正の値であるときΔO2は単位時間あたりに触媒５３に「吸蔵」される酸素量を表し、ΔO2が負の値であるときΔO2は単位時間あたりに触媒５３から「放出」される酸素量を表す。
【０１３２】
したがって、上記（２）式に示すように、時刻t2（酸素吸蔵量OSAが最大酸素吸蔵量Cmaxである時点）から時刻t3（酸素吸蔵量OSAがゼロである時点）までの範囲においてΔO2を時間tについて積分することにより、触媒５３の最大酸素吸蔵量Cmaxが算出される。
【０１３３】
なお、上記説明から明らかなように、図５に示す例とは逆に「酸素吸蔵量OSAがゼロである時点」から「酸素吸蔵量OSAが最大酸素吸蔵量Cmaxである時点」までの範囲においてΔO2を時間tについて積分することによっても、触媒５３の最大酸素吸蔵量Cmaxが算出され得る。以上が、第１装置における最大酸素吸蔵量Cmaxの取得方法である。
【０１３４】
２．触媒の劣化度Dcatの取得
第１装置は、上述したように取得された最大酸素吸蔵量Cmaxに基づき、触媒５３の劣化度Dcatを取得する。具体的に述べると、第１装置は、下記（３）式に従い、触媒５３の劣化度Dcatを算出する。下記（３）式において、Cmaxnewは、触媒５３が新品状態であるときの最大酸素吸蔵量を表す。Cmaxnewは、あらかじめ実験などによって取得され得る。
【０１３５】
Dcat＝1−（Cmax／Cmaxnew）    ・・・（３）
【０１３６】
上記（３）式の右辺から明らかなように、触媒５３が全く劣化していなければ（すなわち、CmaxとCmaxnewとが一致していれば）劣化度Dcatはゼロである。一方、触媒５３の劣化の程度が大きくなるにつれて（すなわち、CmaxとCmaxnewとの差が大きくなるにつれて）劣化度Dcatは増大する。以上が第１装置における触媒５３の劣化度Dcatの取得方法である。
【０１３７】
＜下流側酸素濃度センサの出力応答性の低下度の取得方法＞
第１装置は、上記「増大側低下度および減少側低下度」を下流側酸素濃度センサ７７の応答時定数に基づいて取得する。以下、増大側低下度Dsupおよび減少側低下度Dsdownの取得方法について、より詳細に説明する。
【０１３８】
１．応答時定数の取得
第１装置は、後述する「センサ低下度取得条件」が成立すれば、応答時定数（増大側応答時定数TCupおよび減少側応答時定数TCdown）を取得するための制御（以下、「応答時定数取得制御」とも称呼する。）を行う。この応答時定数取得制御について、図６に示すタイムチャートを参照しながら説明する。
【０１３９】
図６は、（ａ）触媒上流側空燃比abyfsと、（ｂ）下流側酸素濃度センサ７７の出力値Voxsと、の関係を示すタイムチャートである。図６においては、理解を容易にするために、各値の波形が模式化されたものが記載されている。このタイムチャートにおける時刻t0においては、通常運転が行われている。図６に示す例においては、時刻t0における触媒上流側空燃比abyfsは所定のリッチ空燃比richであり、下流側酸素濃度センサ７７の出力値Voxsは最大出力値maxの近傍の所定値である、と仮定されている。
【０１４０】
時刻t1にて「センサ低下度取得条件」が成立すると、「センサ低下度取得制御」が開始される。具体的に述べると、第１装置は、時刻t1にて、触媒上流側空燃比abyfsが所定のリーン空燃比lean（理論空燃比stoichからリーン側に向けてαだけ離れた空燃比）となるように機関１０を制御する。このリーン空燃比leanは、出力値Voxsを最小出力値minとすることができる空燃比に設定される。
【０１４１】
これにより、時刻t1において、触媒上流側空燃比abyfsはリーン空燃比leanとなる。一方、上述したように、触媒上流側空燃比abyfsがリーン空燃比leanになってから所定の時間長さが経過した後に、出力値Voxsが減少し始める。そのため、出力値Voxsは、時刻t1から所定の時間長さが経過した後の時刻t2において、減少し始める。さらに、出力値Voxsが減少し始めてから同出力値Voxsがリーン空燃比leanに対応した値（最小出力値min）に達するまでには、所定の時間長さを要する。そのため、出力値Voxsは、時刻t2から所定の時間長さが経過した後に最小出力値minとなる。
【０１４２】
出力値Voxsが最小出力値minに達した時点から所定の時間長さが経過した後の時刻t3において、第１装置は、触媒上流側空燃比abyfsがリッチ空燃比rich（理論空燃比stoichからリッチ側に向けてβだけ離れた空燃比）となるように機関１０を制御する。このリッチ空燃比richは、出力値Voxsを最大出力値maxとすることができる空燃比に設定される。これにより、時刻t3において、触媒上流側空燃比abyfsは、「理論空燃比stoichからリーン側に向けてαだけ離れた空燃比」から「理論空燃比stoichからリッチ側に向けてβだけ離れた空燃比」までステップ状に変化する。
【０１４３】
このとき、出力値Voxsは、時刻t3から所定の時間長さが経過した後の時刻t4において、増大し始める。さらに、出力値Voxsが増大し始めてから同出力値Voxsが最大出力値maxに達するまで（最小出力値minから最大出力値maxまでの変化量Aだけ増大するため）には、所定の時間長さを要する。そのため、出力値Voxsは、時刻t4から所定の時間長さが経過した後に最大出力値maxとなる。ここで、第１装置は、「出力値Voxsが変化量Aのうちの所定割合γ（例えば、γ＝０．６３２）に相当する値（min＋γ・A）に達するまでの時間長さ（すなわち、時刻t4から時刻t5までの時間長さ）」を、増大側応答時定数TCupとして取得する。
【０１４４】
次いで、出力値Voxsが最大出力値maxに達した時点から所定の時間長さが経過した後の時刻t6において、第１装置は、触媒上流側空燃比abyfsが上記リーン空燃比leanとなるように機関１０を制御する。これにより、時刻t6において、触媒上流側空燃比abyfsは、「理論空燃比stoichからリッチ側に向けてβだけ離れた空燃比」から「理論空燃比stoichからリーン側に向けてαだけ離れた空燃比」までステップ状に変化する。
【０１４５】
このとき、出力値Voxsは、時刻t6から所定の時間長さが経過した後の時刻t7において、減少し始める。さらに、出力値Voxsが減少し始めてから同出力値Voxsが最小出力値minに達するまで（変化量Aだけ減少するため）には、所定の時間長さを要する。そのため、出力値Voxsは、時刻t7から所定の時間長さが経過した後に最小出力値minとなる。ここで、第１装置は、「出力値Voxsが変化量Aのうちの所定割合γ（例えば、上記同様、γ＝０．６３２）に相当する値（max−γ・A）に達するまでの時間長さ（すなわち、時刻t7から時刻t8までの時間長さ）」を、減少側応答時定数TCdownとして取得する。
【０１４６】
２．増大側低下度Dsupおよび減少側低下度Dsdownの取得
第１装置は、上述したように取得された増大側応答時定数TCupおよび減少側応答時定数TCdownに基づき、増大側低下度Dsupおよび減少側低下度Dsdownを取得する。具体的に述べると、第１装置は、下記（４）式に従って増大側低下度Dsupを算出し、下記（５）式に従って減少側低下度Dsdownを算出する。下記（４）式において、TCupnewは、下流側酸素濃度センサ７７が新品状態であるときの増大側応答時定数を表す。下記（５）式において、TCdownnewは、下流側酸素濃度センサ７７が新品状態であるときの減少側応答時定数を表す。TCupnewおよびTCdownnewは、あらかじめ実験などによって取得され得る。
【０１４７】
Dsup＝（TCup／TCupnew）−１    ・・・（４）
Dsdown＝（TCdown／TCdownnew）−１    ・・・（５）
【０１４８】
上記（４）式および上記（５）の右辺から明らかなように、下流側酸素濃度センサ７７の出力応答性が全く低下していなければ（すなわち、TCupとTCupnewとが一致しており、TCdownとTCdownnewとが一致していれば）、増大側低下度Dsupおよび減少側低下度Dsdownはゼロである。一方、同出力応答性の低下の程度が大きくなるにつれて（すなわち、TCupとTCupnewとの差が大きくなるにつれて、または、TCdownとTCdownnewとの差が大きくなるにつれて）増大側低下度Dsupおよび減少側低下度Dsdownは増大する。以上が第１装置における下流側酸素濃度センサ７７の出力応答性の低下度の取得方法である。
【０１４９】
＜空燃比制御＞
第１装置は、上記「装置の作動の概要」にて図４を参照しながら述べたように触媒導入ガスの空燃比を制御する。以下、この制御方法について、図７〜図１０を参照しながらより詳細に説明する。なお、図７〜図１０においては、理解が容易になるように、実際の各値の波形が模式化されたものが示されている。
【０１５０】
１．空燃比制御の概要
図７は、（ａ）触媒上流側空燃比abyfsと、（ｂ）下流側酸素濃度センサ７７の出力値Voxsと、（ｃ）触媒５３の酸素吸蔵量OSAと、の関係を示すタイムチャートである。このタイムチャートにおける時刻t0においては、触媒導入ガスの空燃比（触媒上流側空燃比abyfs）はリッチ空燃比richであり、出力値Voxsは最小出力値minであり、酸素吸蔵量OSAはゼロおよび最大酸素吸蔵量Cmaxとは異なる所定の値である、と仮定されている。以下、出力値Voxsの変化率を「出力変化率DIFVoxs」とも称呼する。
【０１５１】
上記仮定に従うと、リッチ空燃比richの排ガスが触媒５３に導入されているので、酸素吸蔵量OSAは、時刻t0以降において時間が経過するにつれて減少する。そして、時刻t0から所定の時間長さが経過した後の時刻t1において、酸素吸蔵量OSAは「ゼロに比較的近い量Clo」にまで減少する。このとき、触媒導入ガスに含まれる酸素（未燃酸素）の一部が排ガスの酸化反応に用いられるようになる。そのため、時刻t1において、触媒５３から排出される未燃酸素の量が減少し始める。さらに、触媒５３から排出される未燃酸素の量は、時刻t1以降において酸素吸蔵量OSAが減少するにつれて減少する。その結果、出力値Voxsは、時刻t1において増大し始め、時刻t1以降において時間が経過するにつれてさらに増大する。
【０１５２】
このときの出力値Voxsの推移についてより詳細に述べると、図７のＡ部を拡大した図である図８に示すように、出力値Voxsは、時刻t1から所定の時間長さが経過した後の時刻taにおいて出力値Voxstaにまで増大し、時刻taから所定の時間長さが経過した後の時刻t2において出力値Voxst2にまでさらに増大する。ここで、時刻t2における出力変化率DIFVoxst2（時刻t2よりも単位時間長さΔtだけ前の時刻t2dにおける出力値Voxst2dと、出力値Voxst2と、の差）は、時刻taにおける出力変化率DIFVoxsta（時刻taよりも単位時間長さΔtだけ前の時刻tadにおける出力値Voxstadと、出力値Voxstaと、の差）よりも「大きい」。
【０１５３】
このように、出力変化率DIFVoxsは、時刻t1以降において酸素吸蔵量OSAが減少するにつれて大きくなる。そこで、第１装置は、出力変化率DIFVoxsが上記「増大側閾値DIFupth」よりも大きくなったとき、「酸素吸蔵量OSAがゼロの近傍まで近づいている」と判断する。そして、このとき、第１装置は、酸素吸蔵量OSAを増大させるために触媒導入ガスの空燃比（触媒上流側空燃比abyfs）をリーン空燃比leanに制御する。
【０１５４】
本例においては、時刻t2において出力変化率（DIFVoxst2）が増大側閾値DIFupthよりも大きくなったと仮定して、説明を続ける。
【０１５５】
再び図７を参照すると、上記仮定に従い、時刻t2において触媒上流側空燃比abyfsがリーン空燃比leanに制御される。これにより、リーン空燃比leanの排ガスが触媒５３に導入されるので、時刻t2以降において酸素吸蔵量OSAは時間が経過するにつれて増大する。一方、このとき、触媒導入ガスに含まれる酸素の実質的に全てが消費されるので（上記「触媒の劣化度の取得方法」を参照。）、触媒排出ガスには酸素が実質的に含まれない。よって、出力値Voxsは、時刻t2以降においても増大を続け、時刻t2から所定の時間長さが経過した時刻t3において最大出力値maxに達する。
【０１５６】
出力値Voxsが最大出力値maxに達すると、出力変化率DIFVoxsは、増大側閾値DIFupth以下となる（図７においては、同変化率はゼロである。）。そこで、第１装置は、出力変化率DIFVoxsが増大側閾値DIFupth以下であって出力値Voxsが中央値midよりも大きいとき、「酸素吸蔵量OSAを引き続き増大させるべきである」と判断する。そして、このとき、第１装置は、出力値Voxsが中央値midに一致するように（酸素吸蔵量OSAを増大させることによって触媒排出ガスの酸素濃度を増大させ、出力値Voxsを低下させるように）触媒上流側空燃比abyfsを制御する。よって、時刻t3以降においても触媒上流側空燃比abyfsはリーン空燃比に維持される。
【０１５７】
触媒上流側空燃比abyfsがリーン空燃比に維持されると、酸素吸蔵量OSAは、時刻t3以降において時間が経過するにつれて増大する。そして、時刻t3から所定の時間長さが経過した後の時刻t4において、酸素吸蔵量OSAは「最大酸素吸蔵量Cmaxに比較的近い量Chi」にまで増大する。このとき、触媒５３は、酸素を効率良く吸蔵することができなくなる。そのため、時刻t4において、触媒導入ガスに含まれる過剰な酸素の一部が触媒５３から排出され始める。さらに、触媒５３から排出される酸素の量は、時刻t4以降において酸素吸蔵量OSAが増大するにつれて増大する。その結果、出力値Voxsは、時刻t4において減少し始め、時刻t4以降において時間が経過するにつれてさらに減少する。
【０１５８】
このときの出力値Voxsの推移についてより詳細に述べると、図７のＢ部を拡大した図である図９に示すように、出力値Voxsは、時刻t4から所定の時間長さが経過した後の時刻tbにおいて出力値Voxstbにまで減少し、時刻tbから所定の時間長さが経過した後の時刻t5において出力値Voxst5にまでさらに減少する。ここで、時刻t5における出力変化率DIFVoxst5（時刻t5よりも単位時間長さΔtだけ前の時刻t5dにおける出力値Voxst5dと、出力値Voxst5と、の差。ただし、負の値。）は、時刻tbにおける出力変化率DIFVoxstb（時刻tbよりも単位時間長さΔtだけ前の時刻tbdにおける出力値Voxstbdと、出力値Voxstbと、の差。負の値。）よりも「小さい」。なお、出力値Voxsが減少するときの出力変化率DIFVoxsは「負の値」であるので、時刻t5における出力変化率DIFVoxst5の絶対値は、時刻tbにおける出力変化率DIFVoxstbの絶対値よりも「大きい」。
【０１５９】
このように、出力変化率DIFVoxsは、時刻t4以降において酸素吸蔵量OSAが増大するにつれて小さくなる。そこで、第１装置は、出力変化率DIFVoxsが上記「減少側閾値DIFdownth」よりも小さくなったとき、「酸素吸蔵量OSAが最大酸素吸蔵量Cmaxの近傍まで近づいている」と判断する。そして、このとき、第１装置は、酸素吸蔵量OSAを減少させるために触媒導入ガスの空燃比（触媒上流側空燃比abyfs）をリッチ空燃比richに制御する。
【０１６０】
本例においては、時刻t5において出力変化率（DIFVoxst5）が減少側閾値DIFdownthよりも小さくなったと仮定して、説明を続ける。
【０１６１】
再び図７を参照すると、上記仮定に従い、時刻t5において触媒上流側空燃比abyfsがリッチ空燃比richに制御される。これにより、リッチ空燃比richの排ガスが触媒５３に導入されるので、時刻t5以降において酸素吸蔵量OSAは時間が経過するにつれて減少する。一方、このとき、触媒導入ガスに含まれる未燃酸素は排ガスの酸化反応に用いられないので（上記「触媒の劣化度の取得方法」を参照。）、触媒排出ガスには未燃酸素が残存する。よって、出力値Voxsは、時刻t5以降においても減少を続け、時刻t5から所定の時間長さが経過した時刻t6において最小出力値minに達する。
【０１６２】
出力値Voxsが最小出力値minに達すると、出力変化率DIFVoxsは、減少側閾値DIFdownth以上となる（図７においては、同変化率はゼロである。）。そこで、第１装置は、出力変化率DIFVoxsが減少側閾値DIFdownth以上であって出力値Voxsが中央値midよりも小さいとき、「酸素吸蔵量OSAを引き続き減少させるべきである」と判断する。そして、このとき、第１装置は、出力値Voxsが中央値midに一致するように（酸素吸蔵量OSAを減少させることによって触媒排出ガスの酸素濃度を減少させ、出力値Voxsを増大させるように）触媒上流側空燃比abyfsを制御する。よって、時刻t5以降においても触媒上流側空燃比abyfsはリッチ空燃比に維持される。
【０１６３】
その後、第１装置は、上述した空燃比の制御を繰り返す。これにより、酸素吸蔵量OSAは、最大酸素吸蔵量Cmaxの近傍とゼロの近傍との間を繰り返し往復するように推移する。これにより、触媒５３の酸素吸蔵量OSAが最大酸素吸蔵量Cmaxまたはゼロに達することが防がれるので、排ガスの浄化効率が高い状態が維持される。
【０１６４】
２．空燃比制御の具体的な方法
上述した空燃比制御を実現するため、第１装置は、触媒導入ガスの空燃比（触媒上流側空燃比abyfs）を制御するための「メインフィードバック制御」と、触媒排出ガスの空燃比（触媒下流側空燃比oxs）を制御するための「サブフィードバック制御」と、を実行する。
【０１６５】
より具体的に述べると、第１装置は、下記（１）〜（５）に示す処理をこの順に行う。
（１）第１装置は、触媒５３の劣化度Dcatおよび下流側酸素濃度センサ７７の出力応答性の低下度（増大側低下度Dsupおよび減少側低下度Dsdown）を考慮しながら、「触媒排出ガスの空燃比を制御するためのサブフィードバック量Vafsfb」を算出する。
（２）第１装置は、このサブフィードバック量Vafsfbを用いて上流側酸素濃度センサ７６の出力値Vabyfsを補正することにより、フィードバック制御用出力値Vabyfcを算出する。
（３）第１装置は、このフィードバック制御用出力値VabyfcをテーブルMapabyfs（図２を参照。）に適用することにより、フィードバック制御用空燃比abyfscを算出する。
（４）第１装置は、このフィードバック制御用空燃比abyfscを上流側目標空燃比abyfrに一致させるための「メインフィードバック量DFi」を算出する。
（５）第１装置は、このメインフィードバック量DFiを用いて燃料噴射量Fiを補正する。
【０１６６】
以下、上記サブフィードバック制御および上記メインフィードバック制御をより詳細に説明する。なお、これら制御においては、現時点（時刻k）における所定のパラメータの値と、現時点よりも過去の時点（時刻k−N）における所定のパラメータの値と、が用いられる。以下、特に注釈が付されることなくそれらパラメータの値が記載されている場合、それら値は現時点（時刻k）における値を表す。
【０１６７】
２−１．増大側閾値および減少側閾値の設定
図１０は、（ａ）出力応答性が低下していない場合における下流側酸素濃度センサ７７の出力値Voxsと、（ｂ）増大側応答性が低下した場合における同出力値Voxsと、（ｃ）減少側応答性が低下した場合における同出力値Voxsと、（ｄ）上記（ａ）〜（ｃ）のそれぞれに対応する触媒５３の酸素吸蔵量OSAと、の関係を示すタイムチャートである。
【０１６８】
出力応答性が低下していない場合（図１０（ａ）を参照。）、触媒５３の酸素吸蔵量OSAは、図１０（ｄ）の「実線」に示すように「所定の量C1」と「所定の量C2」との間を往復するように推移する。なお、上記「空燃比制御の概要」にて参照されている図７には、出力応答性が低下していない場合における各値が示されている。
【０１６９】
具体的に述べると、上記の場合、時刻ta1、時刻ta3および時刻ta5において酸素吸蔵量OSAが量C1にまで増大したとき、出力変化率DIFVoxsが減少側閾値DIFdownthよりも小さくなる。よって、第１装置は、これら時点にて酸素吸蔵量OSAを減少させるように空燃比を制御する。さらに、時刻ta2および時刻ta4において酸素吸蔵量OSAが量C2にまで減少したとき、出力変化率DIFVoxsは増大側閾値DIFupthよりも大きくなる。よって、第１装置は、これら時点にて酸素吸蔵量OSAを増大させるように空燃比を制御する。
【０１７０】
このとき、最大酸素吸蔵量Cmaxとゼロとの中間の量である中央酸素吸蔵量Cmidと量C1との差と、量C2と中央酸素吸蔵量Cmidとの差と、が等しくなるように増大側閾値DIFupthおよび減少側閾値DIFdownthが設定されていれば、酸素吸蔵量OSAの時間平均量は、中央酸素吸蔵量Cmidに一致する。
【０１７１】
一方、「増大側応答性」が低下した場合（図１０（ｂ）を参照。）、触媒５３の酸素吸蔵量OSAは、図１０（ｄ）の「破線」に示すように、「上記の量C1」と「上記の量C2よりも少ない量C3」との間を往復するように推移する。
【０１７２】
具体的に述べると、上記の場合、減少側応答性は低下していないので、酸素吸蔵量OSAが量C1にまで増大したとき、上記同様、出力変化率DIFVoxsが減少側閾値DIFdownthよりも小さくなる。よって、第１装置は、時刻tb1および時刻tb4にて酸素吸蔵量OSAを減少させるように空燃比を制御する。これに対し、増大側応答性は低下しているので、出力値Voxsが増大するときの出力変化率DIFVoxsは、触媒排出ガスの空燃比の変化（換言すると、触媒５３の酸素吸蔵量OSAの変化）に追従し難い。そのため、出力変化率DIFVoxsは、時刻tb2において酸素吸蔵量OSAが上記の量C2にまで減少しても増大側閾値DIFupthよりも大きくならず、時刻tb3において酸素吸蔵量OSAが「量C2よりも少ない量C3」にまで減少したときに増大側閾値DIFupthよりも大きくなる。よって、第１装置は、時刻tb3にて酸素吸蔵量OSAを増大させるように空燃比を制御する。なお、時刻tb5においても出力変化率DIFVoxsは増大側閾値DIFupthよりも大きくなるので、第１装置は、時刻t5においても酸素吸蔵量OSAを増大させるように空燃比を制御する。
【０１７３】
このとき、出力応答性が低下していない場合（図１０（ｄ）の実線）に比べて酸素吸蔵量OSAが中央酸素吸蔵量Cmidよりも小さくなる時間長さが長いので、酸素吸蔵量OSAの時間平均量は、「中央酸素吸蔵量Cmidよりも少ない不足側酸素吸蔵量Cavelo」となる。
【０１７４】
他方、「減少側応答性」が低下した場合（図１０（ｃ）を参照。）、触媒５３の酸素吸蔵量OSAは、図１０（ｄ）の「一点鎖線」に示すように、「上記の量C1よりも多い量C4」と「上記の量C2」との間を往復するように推移する。
【０１７５】
具体的に述べると、上記の場合、減少側応答性が低下しているので、出力値Voxsが減少するときの出力変化率DIFVoxsは、触媒排出ガスの空燃比（触媒５３の酸素吸蔵量OSA）の変化に追従し難い。そのため、出力変化率DIFVoxsは、時刻tc1において酸素吸蔵量OSAが上記の量C1にまで増大しても減少側閾値DIFdownthよりも小さくならず、時刻tc2において酸素吸蔵量OSAが「量C1よりも多い量C4」にまで増大したときに減少側閾値DIFdownthよりも小さくなる。よって、第１装置は、時刻tc2にて酸素吸蔵量OSAを減少させるように空燃比を制御する。なお、時刻tc4においても出力変化率DIFVoxsは減少側閾値DIFdownthよりも小さくなるので、第１装置は、時刻tc4においても酸素吸蔵量OSAを減少させるように空燃比を制御する。これに対し、増大側応答性は低下していないので、酸素吸蔵量OSAが量C2にまで減少したとき、上記同様、出力変化率DIFVoxsが増大側閾値DIFupthよりも大きくなる。よって、第１装置は、時刻tb3および時刻tc5にて酸素吸蔵量OSAを減少させるように空燃比を制御する。
【０１７６】
このとき、出力応答性が低下していない場合（図１０（ｄ）の実線）に比べて酸素吸蔵量OSAが中央酸素吸蔵量Cmidよりも大きくなる時間長さが長いので、酸素吸蔵量OSAの時間平均量は、「中央酸素吸蔵量Cmidよりも多い過剰側酸素吸蔵量Cavehi」となる。
【０１７７】
このように、増大側応答性または減少側応答性が低下すると、酸素吸蔵量OSAの時間平均量が中央酸素吸蔵量Cmidに一致しない場合がある。さらに、上述したように、触媒５３の劣化度Dcatが大きい場合、触媒排出ガスの酸素濃度の値に含まれるノイズの影響により、酸素吸蔵量OSAの時間平均量が中央酸素吸蔵量Cmidに一致しない場合もある。これらの場合、上述したように、酸素濃度が極度に低い（空燃比が極度に大きい）排ガスまたは酸素濃度が極度に高い（空燃比が極度に小さい）排ガスが触媒５３に導入されると、酸素吸蔵量OSAが最大酸素吸蔵量Cmaxまたはゼロに達することに起因して、排ガスの浄化効率が低下する場合がある。
【０１７８】
そこで、第１装置は、上記「装置の作動の概要」にて述べたように、触媒５３の劣化度Dcat、増大側低下度Dsupおよび減少側低下度Dsdownに基づいて増大側閾値DIFupthおよび減少側閾値DIFdownthを設定する。
【０１７９】
具体的に述べると、第１装置は、触媒５３の劣化度Dcatが閾値劣化度Dcatth以下である場合、増大側低下度Dsupが減少側低下度Dsdownよりも大きければ増大側閾値DIFupthを小さくし、減少側低下度Dsdownが増大側低下度Dsupよりも大きければ減少側閾値DIFdownthを大きくする。
【０１８０】
さらに、第１装置は、触媒５３の劣化度Dcatが閾値劣化度Dcatthよりも大きい場合、増大側低下度Dsupが減少側低下度Dsdownよりも大きければ減少側閾値DIFdownthを小さくし、減少側低下度Dsdownが増大側低下度Dsupよりも大きければ増大側閾値DIFupthを大きくする。
【０１８１】
ところで、上記説明においては、「増大側応答性および減少側応答性のうちの「一方」が低下した場合に平均酸素吸蔵量が中央酸素吸蔵量Cmidに一致しない」ことが述べられている。しかし、上記説明から理解されるように、増大側応答性および減少側応答性の「双方」が低下した場合であっても、増大側低下度Dsupと減少側低下度Dsdownとが「異なる」と、平均酸素吸蔵量は中央酸素吸蔵量Cmidに一致しない。そこで、この場合においても、第１装置は、上記同様に各閾値を調整する。以上が第１装置が行う増大側閾値DIFupthおよび減少側閾値DIFdownthの設定方法である。
【０１８２】
２−２．サブフィードバック制御
次いで、第１装置が行う「サブフィードバック制御」について説明する。第１装置は、下記（６）式に従い、下流側目標出力値Voxsrefから現時点の下流側酸素濃度センサ７７の出力値Voxs（k）を減算することにより、出力偏差量DVoxsを算出する。なお、第１装置においては、下流側目標出力値Voxsrefとして、理論空燃比stoichに対応する値（すなわち、中央値mid）が採用される。
【０１８３】
DVoxs＝Voxsref−Voxs（k）    ・・・（６）
【０１８４】
さらに、第１装置は、下記（７）式に従い、現時点（時刻k）における下流側酸素濃度センサ７７の出力値Voxs（k）から現時点よりもMサイクル前の時点（時刻k−M）における同出力値Voxs（k−M）を減算して得られる値を、上記Mサイクルに要した時間長さΔtmにて除算することにより、出力変化率DIFVoxsを算出する。なお、時間長さΔtmは、図８および図９における単位時間長さΔtに相当する。
【０１８５】
DIFVoxs＝｛Voxs（k）−Voxs（k−M）｝／Δtm    ・・・（７）
【０１８６】
次いで、第１装置は、出力変化率DIFVoxsが減少側閾値DIFdownthよりも小さい場合、または、出力変化率DIFVoxsが増大側閾値DIFupthよりも大きい場合、下記（８）式および下記（９）式に従い、サブフィードバック量Vafsfbの比例項SPおよび微分項SDを決定（算出）する。下記（９）式において、Kdはあらかじめ設定された微分ゲインを表す。この微分ゲインKdは「負の値」である。よって、出力変化率DIFVoxsが正の値であり且つ大きくなるほど（排ガスの空燃比がリッチ側に向けて急激に変化するほど。換言すると、酸素吸蔵量OSAがゼロに近づくほど）微分項SDは小さくなり、出力変化率DIFVoxsが負の値であり且つ小さくなるほど（排ガスの空燃比がリーン側に向けて急激に変化するほど。換言すると、酸素吸蔵量OSAが最大酸素吸蔵量Cmaxに近づくほど）微分項SDは大きくなる。
【０１８７】
SP＝０    ・・・（８）
SD＝Kd・DIFVoxs    ・・・（９）
【０１８８】
これに対し、第１装置は、出力変化率DIFVoxsが減少側閾値DIFdownth以上であり且つ増大側閾値DIFupth以下である場合、下記（１０）式および下記（１１）式に従い、サブフィードバック量Vafsfbの比例項SPおよび微分項SDを算出する。下記（１０）式において、Kpはあらかじめ設定された比例ゲインを表す。この比例ゲインKpは「正の値」である。よって、出力偏差量DVoxsが正の値であり且つ大きくなるほど（出力値Voxsが中央値midからリーン側に離れるほど）比例項SPは大きくなり、出力偏差量DVoxsが負の値であり且つ小さくなるほど（出力値Voxsが中央値midからリッチ側に離れるほど）比例項SPは小さくなる。
【０１８９】
SP＝Kp・DVoxs    ・・・（１０）
SD＝０    ・・・（１１）
【０１９０】
そして、第１装置は、下記（１２）式に従い、比例項SPに微分項SDを加算することにより、サブフィードバック量Vafsfbを算出する。
【０１９１】
Vafsfb＝SP＋SD    ・・・（１２）
【０１９２】
上記（８）式および上記（９）式に示すように、第１装置は、出力変化率DIFVoxs減少側閾値DIFdownthよりも小さい場合、または、出力変化率DIFVoxsが増大側閾値DIFupthよりも大きい場合、「微分項SDのみ」をサブフィードバック量Vafsfbとして採用する。これにより、出力変化率DIFVoxsの大きさに応じてサブフィードバック量Vafsfbが算出される。
【０１９３】
これに対し、上記（１０）式および上記（１１）式に示すように、第１装置は、減少側閾値DIFdownth以上であり且つ増大側閾値DIFupth以下である場合、「比例項SPのみ」をサブフィードバック量Vafsfbとして採用する。これにより、出力偏差量DVoxsの大きさに応じてサブフィードバック量Vafsfbが算出される。
【０１９４】
このように、第１装置は、比例微分制御の考え方に準じてサブフィードバック量Vafsfbを算出する。なお、第１装置は、上記（１２）式に積分項を加えた比例微分積分制御（PID制御）によってサブフィードバック量Vafsfbを算出するように構成されてもよい。以上が第１装置が行うサブフィードバック制御である。
【０１９５】
２−３．メインフィードバック制御
次いで、第１装置が行う「メインフィードバック制御」について説明する。第１装置は、下記（１３）式に従い、上流側酸素濃度センサ７６の出力値Vabyfsにサブフィードバック量Vafsfbを加算することにより、フィードバック制御用出力値Vabyfcを算出する。
【０１９６】
Vabyfc＝Vabyfs＋Vafsfb    ・・・（１３）
【０１９７】
次いで、第１装置は、下記（１４）式に従い、上記フィードバック制御用出力値VabyfcをテーブルMapabyfs（図２を参照。）に適用することにより、フィードバック制御用空燃比abyfscを決定する。
【０１９８】
abyfsc＝Mapabyfs（Vabyfc）    ・・・（１４）
【０１９９】
次いで、第１装置は、下記（１５）式に従い、現時点（時刻k）にて気筒内に吸入される空気の量である筒内吸入空気量Mc（k）を現時点（時刻k）における上流側目標空燃比abyfr（k）によって除算することにより、基本燃料噴射量Fbaseを算出する。上流側目標空燃比abyfr（k）の算出方法は後述される。
【０２００】
Fbase＝Mc（k）／abyfr（k）    ・・・（１５）
【０２０１】
上記筒内吸入空気量Mcは、各気筒において吸気行程が行われる毎に、その時点の吸入空気量Gaと機関回転速度NEとに基づいて算出される。例えば、筒内吸入空気量Mcは、吸入空気量Gaに対して一次遅れ処理を施した値を機関回転速度NEで除算することによって算出される。この筒内吸入空気量Mcは、吸気行程が行われる各時点（時刻k−N、・・・、時刻k−1、時刻k、時刻k＋1、・・・）と関連付けられたデータとして、ＲＡＭ８３内に格納される。なお、筒内吸入空気量Mcは、公知の吸入空気量モデル（吸気通路における空気の挙動を模して構築されたモデル）によって算出されてもよい。
【０２０２】
次いで、第１装置は、下記（１６）式に従い、上記基本燃料噴射量Fbaseをメインフィードバック量DFiによって補正する（基本燃料噴射量Fbaseにメインフィードバック量DFiを加える）ことにより、最終燃料噴射量Fiを算出する。そして、第１装置は、最終燃料噴射量Fiだけの燃料を吸気行程が行われる気筒のインジェクタ３４から噴射させる。メインフィードバック量DFiの算出方法は後述される。
【０２０３】
Fi＝Fbase＋DFi    ・・・（１６）
【０２０４】
上記（１６）式におけるメインフィードバック量DFiは、以下のように算出される。
まず、第１装置は、下記（１７）式に従い、現時点よりもNサイクル前の時点（時刻k−N）における筒内吸入空気量Mc（k−N）を上記フィードバック制御用空燃比（補正検出空燃比）abyfscにて除算することにより、現時点よりもNサイクル前の時点において燃焼室２５に供給された燃料の量である「筒内燃料供給量Fc（k−N）」を算出する。
【０２０５】
Fc（k−N）＝Mc（k−N）／abyfsc    ・・・（１７）
【０２０６】
なお、上記（１７）式においては、現時点からNサイクル前の筒内吸入空気量Mc（k−N）を（現時点における）フィードバック制御用空燃比abyfscで除算することにより、現時点からNサイクル前の筒内燃料供給量Fc（k−N）を算出している。これは、燃焼室２５内で燃焼された混合気が上流側酸素濃度センサ７６に達するまでにNサイクルに相当する時間を要するからである。
【０２０７】
次いで、第１装置は、下記（１８）式に従い、現時点からNサイクル前の筒内吸入空気量Mc（k−N）を現時点からNサイクル前の上流側目標空燃比abyfr（k−N）で除算することにより、現時点からNサイクル前の「目標筒内燃料供給量Fcr（k−N）」を算出する。なお、第１装置においては、上流側目標空燃比abyfrとして、理論空燃比stoichが採用される。
【０２０８】
Fcr（k−N）＝Mc（k−N）／abyfr（k−N）    ・・・（１８）
【０２０９】
次いで、第１装置は、下記（１９）式に従い、現時点からNサイクル前の目標筒内燃料供給量Fcr（k−N）から筒内燃料供給量Fc（k−N）を減算することにより、「筒内燃料供給量偏差DFc」を算出する。この筒内燃料供給量偏差DFcは、「Nサイクル前の時点で筒内に供給された燃料の過不足分」を表す。
【０２１０】
DFc＝Fcr（k−N）−Fc（k−N）    ・・・（１９）
【０２１１】
次いで、第１装置は、下記（２０）式に従い、メインフィードバック量DFiを算出する。下記（２０）式において、Gpはあらかじめ設定された比例ゲインを、Giはあらかじめ設定された積分ゲインを、KFBは所定の係数を、SDFcは筒内燃料供給量偏差DFcの積分値を、表す。比例ゲインGp、積分ゲインGiおよび係数KFBは、正の値である。よって、筒内燃料供給量偏差DFcおよび積分値SDFcが正の値であり且つ大きくなるほど（筒内に供給された燃料の不足量が大きいほど）メインフィードバック量DFiは大きくなる。
【０２１２】
DFi＝（Gp・DFc＋Gi・SDFc）・KFB    ・・・（２０）
【０２１３】
上記（１９）式および上記（２０）式に示すように、第１装置は、サブフィードバック量Vafsfbによって補正されたフィードバック制御用空燃比abyfscと、上流側目標空燃比abyfrと、に基づく比例積分制御によってメインフィードバック量DFiを算出する。このメインフィードバック量DFiは、上記（１６）式に示すように基本燃料噴射量Fbaseに加算される。これにより、最終燃料噴射量Fiが算出される。
【０２１４】
なお、第１装置は、上記（２０）式に微分項を加えた比例微分積分制御（PID制御）によってメインフィードバック量DFiを算出するように構成されてもよい。以上が第１装置が行うメインフィードバック制御である。
【０２１５】
３．空燃比制御の総括
以上に説明したように、第１装置は、上流側酸素濃度センサ７６の出力値Vabyfsにサブフィードバック量Vafsfbを加算することによって出力値Vabyfsを補正し、この補正によって得られたフィードバック制御用出力値Vabyfc（＝Vabyfs＋Vafsfb）に基づいてフィードバック制御用空燃比abyfscを算出する。そして、第１装置は、算出されたフィードバック制御用空燃比abyfscと、上流側目標空燃比abyfrと、が一致するように、燃料噴射量Fiを算出する。
【０２１６】
これにより、触媒導入ガスの空燃比が上流側目標空燃比abyfrに近づくとともに、下流側酸素濃度センサ７７の出力値Voxsが下流側目標出力値Voxsrefに近づく。さらに、触媒５３の酸素吸蔵量OSAが最大酸素吸蔵量Cmaxの近傍またはゼロの近傍にまで近づいたと判断し得る程度に出力値Voxsが変化すると、その変化（出力変化率DIFVoxsの大きさ）に応じたサブフィードバック量Vafsfbが算出される。よって、触媒５３の酸素吸蔵量が最大酸素吸蔵量Cmaxまたはゼロに達することが防がれる。以上が第１装置における空燃比の制御方法である。
【０２１７】
＜実際の作動＞
以下、第１装置の実際の作動について説明する。
第１装置において、ＣＰＵ８１は、図１１〜図１９にフローチャートによって示した各ルーチンを所定のタイミング毎に繰り返し実行するようになっている。ＣＰＵ８１は、これらルーチンにおいて、触媒劣化フラグXDCAT、増大側応答性低下フラグXDUPおよび減少側応答性低下フラグXDDOWNを用いる。
【０２１８】
触媒劣化フラグXDCATは、その値が「０」であるとき、触媒５３の劣化度Dcatが閾値劣化度Dcatth以下であることを表す。一方、触媒劣化フラグXDCATは、その値が「１」であるとき、触媒５３の劣化度Dcatが閾値劣化度Dcatthよりも大きいことを表す。
【０２１９】
増大側応答性低下フラグXDUPは、その値が「０」であるとき、増大側低下度Dsupが減少側低下度Dsdownよりも大きくないこと表す。一方、増大側応答性低下フラグXDUPは、その値が「１」であるとき、増大側低下度Dsupが減少側低下度Dsdownよりも大きいことを表す。
【０２２０】
減少側応答性低下フラグXDDOWNは、その値が「０」であるとき、減少側低下度Dsdownが増大側低下度Dsupよりも大きくないことを表す。一方、減少側応答性低下フラグXDDOWNは、その値が「１」であるとき、減少側低下度Dsdownが増大側低下度Dsupよりも大きいことを表す。
【０２２１】
以下、ＣＰＵ８１が実行する各ルーチンについて説明する。
まず、現時点において、触媒劣化フラグXDCATの値、増大側応答性低下フラグXDUPの値および減少側応答性低下フラグXDDOWNの値の全ては「０」に設定されている、と仮定する。以下、便宜上、この仮定を「初期設定仮定」とも称呼する。
【０２２２】
ＣＰＵ８１は、機関１０が始動されると、所定時間が経過する毎に、図１１にフローチャートによって示した「触媒温度推定ルーチン」を繰り返し実行するようになっている。ＣＰＵ８１は、このルーチンにより、触媒の温度TempCを取得（推定）する。
【０２２３】
具体的に述べると、ＣＰＵ８１は、所定のタイミングにて図１１のステップ１１００から処理を開始してステップ１１１０に進み、現時点が機関１０の始動直後であるか否かを判定する。現時点が機関１０の始動直後であれば、ＣＰＵ８１は、ステップ１１１０にて「Ｙｅｓ」と判定してステップ１１２０に進む。ここで、「現時点が機関１０の始動直後である」と仮定して、説明を続ける。
【０２２４】
上記仮定に従うと、ＣＰＵ８１は、ステップ１１２０に進む。ＣＰＵ８１は、ステップ１１２０にて、「始動時冷却水温THWSと、触媒温度TempCと、の関係」をあらかじめ定めた始動時触媒温度推定関数f（THWS）に、現時点における冷却水温THWSを適用することにより、現時点における触媒の温度TempCを取得（推定）する。
【０２２５】
始動時触媒温度推定関数f（TWS）において、触媒の温度TempCは、始動時冷却水温THWSが増大するにつれて増大するように定められる。
【０２２６】
次いで、ＣＰＵ８１は、ステップ１１３０に進む。ＣＰＵ８１は、ステップ１１３０にて、「筒内吸入空気量Mcと、機関回転速度NEと、排気温度Texと、の関係」をあらかじめ定めた排気温度テーブルMapTex（Mc，NE）に現時点における筒内吸入空気量Mcおよび機関回転速度NEを適用することにより、現時点における排気温度Texを取得（推定）する。
【０２２７】
次いで、ＣＰＵ８１はステップ１１４０に進む。ＣＰＵ８１は、ステップ１１４０にて、下記（２１）式に従って触媒の温度TempCを更新・取得する。下記（２１）式において、αは０よりも大きく且つ１よりも小さい定数を、TempC（k）は更新される前の触媒の温度TempCを、TempC（k+1）は更新された後の触媒の温度TempCを、表す。
【０２２８】
TempC（k+1）＝α・TempC（k）＋（1−α）・Tex    ・・・（２１）
【０２２９】
ステップ１１４０の処理を実行した後、ＣＰＵ８１は、ステップ１１９５に進んで本ルーチンを一旦終了する。なお、現時点が機関１０の始動直後ではない場合、ＣＰＵ８１は、ステップ１１１０にて「Ｎｏ」と判定してステップ１１３０に直接進む。よって、機関１０が始動されてから十分な時間が経過すると、ＣＰＵ８１は、ステップ１１２０の処理を行うことなく触媒の温度TempCを取得する。
【０２３０】
さらに、ＣＰＵ８１は、所定時間が経過する毎に、図１２にフローチャートによって示した「触媒劣化度取得ルーチン」を繰り返し実行するようになっている。ＣＰＵ８１は、このルーチンにより、触媒５３の劣化度Dcatを取得する。
【０２３１】
具体的に述べると、ＣＰＵ８１は、所定のタイミングにて図１２のステップ１２００から処理を開始してステップ１２１０に進み、触媒劣化フラグXDCATの値が「０」であるか否かを判定する。上記初期設定仮定に従うと、現時点における触媒劣化フラグXDCATの値は「０」であるので、ＣＰＵ８１は、ステップ１２１０にて「Ｙｅｓ」と判定してステップ１２２０に進む。
【０２３２】
ＣＰＵ８１は、ステップ１２２０にて、「触媒５３の劣化度Dcatを取得するための条件（触媒劣化度取得条件）」が成立しているか否かを判定する。より具体的に述べると、ＣＰＵ８１は、ステップ１２２０にて、以下の条件ａ−１〜ａ−３の全てが成立したとき、触媒劣化度取得条件が成立すると判定する。換言すると、ＣＰＵ８１は、条件ａ−１〜ａ−３のうちの少なくとも１つが成立しないとき、触媒劣化度取得条件が成立しないと判定する。
【０２３３】
（条件ａ−１）冷却水の温度THWが所定の閾値以上である。
（条件ａ−２）スロットル弁開度TAの単位時間あたりの変化量の絶対値が所定の閾値以下である。
（条件ａ−３）図示しない車速センサによって取得される車速の単位時間あたりの変化量の絶対値が所定の閾値以下である。
【０２３４】
条件ａ−１に係る所定の閾値は、機関１０の暖機が完了していると判断し得る適値に設定される。条件ａ−２および条件ａ−３に係る所定の閾値は、機関１０が定常運転されていると判断し得る適値に設定される。
【０２３５】
ＣＰＵ８１は、劣化度取得条件が「成立していない」とき、ステップ１２２０にて「Ｎｏ」と判定してステップ１２９５に直接進み、本ルーチンを一旦終了する。よって、劣化度取得条件が成立していないとき、触媒５３の劣化度Dcatは取得されない。これに対し、ＣＰＵ８１は、劣化度取得条件が「成立している」とき、ステップ１２２０にて「Ｙｅｓ」と判定してステップ１２３０に進む。以下、現時点にて劣化度取得条件が「成立している」と仮定して、説明を続ける。
【０２３６】
上記仮定に従うと、ＣＰＵ８１は、ステップ１２３０に進む。ＣＰＵ８１は、ステップ１２３０にて、上記（１）式および上記（２）式に従い、現時点における触媒５３の最大酸素吸蔵量Cmaxを取得する。
【０２３７】
次いで、ＣＰＵ８１は、ステップ１２４０に進む。ＣＰＵ８１は、ステップ１２４０にて、上記（３）式に従い、現時点における触媒５３の最大酸素吸蔵量Cmaxと、触媒５３が新品状態である場合における最大酸素吸蔵量Cmaxnewと、に基づいて触媒５３の劣化度Dcatを取得する。なお、この最大酸素吸蔵量Cmaxnewは、あらかじめ実験などによって取得されるとともにＲＯＭ８２に格納されている。
【０２３８】
次いで、ＣＰＵ８１は、ステップ１２５０に進む。ＣＰＵ８１は、ステップ１２５０にて、触媒５３の劣化度Dcatが閾値劣化度Dcatth以下であるか否かを判定する。閾値劣化度Dcatthは、触媒排出ガスの酸素濃度の値に含まれるノイズの大きさが空燃比制御に影響を与えない程度に小さいと判断し得る適値に設定されている。
【０２３９】
ここで、触媒５３の劣化度Dcatが閾値劣化度Dcatth以下である場合、ＣＰＵ８１は、ステップ１２５０にて「Ｙｅｓ」と判定してステップ１２９５に進み、本ルーチンを一旦終了する。一方、触媒５３の劣化度Dcatが閾値劣化度Dcatthよりも大きい場合、ＣＰＵ８１は、ステップ１２５０にて「Ｎｏ」と判定してステップ１２６０に進み、触媒劣化フラグXDCATの値に「１」を格納する。その後、ＣＰＵ８１は、ステップ１２９５に進み、本ルーチンを一旦終了する。
【０２４０】
このように、触媒５３の劣化度Dcatが閾値劣化度Dcatth以下である場合、触媒劣化フラグXDCATの値は上記初期設定仮定にて設定された「０」に維持される。一方、触媒５３の劣化度Dcatが閾値劣化度Dcatthよりも大きい場合、触媒劣化フラグXDCATの値は「１」に設定される。
【０２４１】
なお、触媒劣化フラグXDCATの値が一旦「１」に設定されると、ＣＰＵ８１は、図１２のルーチンが実行されたときにステップ１２１０にて常に「Ｎｏ」と判定する。そのため、触媒５３の劣化度Dcatが閾値劣化度Dcatthよりも一旦大きくなると、劣化度Dcatは取得されなくなる。触媒劣化フラグXDCATの値は、例えば、公知の劣化度回復方法などによって劣化度Dcatが低減されて閾値劣化度Dcatth以下となったときに「０」に再設定されるように、構成され得る（図示省略。）。
【０２４２】
さらに、ＣＰＵ８１は、所定時間が経過する毎に、図１３にフローチャートによって示した「センサ応答性低下度取得ルーチン」を繰り返し実行するようになっている。ＣＰＵ８１は、このルーチンにより、下流側酸素濃度センサ７７の増大側低下度Dsupおよび減少側低下度Dsdownを取得するとともに、下流側酸素濃度センサ７７の出力応答性が非対称に低下しているか否かを確認する。
【０２４３】
具体的に述べると、ＣＰＵ８１は、所定のタイミングにて、図１３のステップ１３００から処理を開始するとステップ１３０５に進む。ＣＰＵ８１は、ステップ１３０５にて、「下流側酸素濃度センサ７７の増大側低下度Dsupおよび減少側低下度Dsdownを取得するための条件（センサ低下度取得条件）」が成立しているか否かを判定する。より具体的に述べると、ＣＰＵ８１は、ステップ１３０５にて、以下の条件ｂ−１〜ｂ−４の全てが成立したとき、センサ低下度取得条件が成立すると判定する。換言すると、ＣＰＵ８１は、条件ｂ−１〜ｂ−４のうちの少なくとも１つが成立しないとき、センサ低下度取得条件が成立しないと判定する。
【０２４４】
（条件ｂ−１）冷却水の温度THWが所定の閾値以上である。
（条件ｂ−２）スロットル弁開度TAの単位時間あたりの変化量の絶対値が所定の閾値以下である。
（条件ｂ−３）図示しない車速センサによって取得される車速の単位時間あたりの変化量の絶対値が所定の閾値以下である。
（条件ｂ−４）下流側酸素濃度センサ７７が活性化している。
【０２４５】
条件ｂ−１〜ｂ−３は、上記条件ａ−１〜ａ−３と同一である。条件ｂ−４は、増大側低下度Dsupおよび減少側低下度Dsdownを取得する際に下流側酸素濃度センサ７７の出力値Voxsが用いられるために設けられている条件である。
【０２４６】
現時点においてセンサ低下度取得条件が「成立しない」場合、ＣＰＵ８１は、ステップ１３０５にて「Ｎｏ」と判定してステップ１３９５に直接進み、本ルーチンを一旦終了する。よって、この場合、増大側低下度Dsupおよび減少側低下度Dsdownは取得されない。一方、現時点においてセンサ低下度取得条件が「成立する」場合、ＣＰＵ８１は、ステップ１３０５にて「Ｙｅｓ」と判定してステップ１３１０に進む。以下、現時点にてセンサ低下度取得条件が「成立している」と仮定して、説明を続ける。
【０２４７】
上記仮定に従うと、ＣＰＵ８１は、ステップ１３１０に進む。ＣＰＵ８１は、ステップ１３１０にて、上記「増大側応答時定数および減少側応答時定数の取得方法」に従い、増大側応答時定数TCupおよび減少側応答時定数TCdownを取得する。
【０２４８】
次いで、ＣＰＵ８１は、ステップ１３１５に進む。ＣＰＵ８１は、ステップ１３１５にて、上記（４）式に従い、現時点における増大側低下度Dsupを取得する。なお、ステップ１３１５において、下流側酸素濃度センサ７７が新品状態である場合における増大側応答時定数TCupnewは、あらかじめ実験などによって取得されるとともにＲＯＭ８２に格納されている。
【０２４９】
次いで、ＣＰＵ８１は、ステップ１３２０に進む。ＣＰＵ８１は、ステップ１３２０にて、上記（５）式に従い、現時点における減少側低下度Dsdownを取得する。なお、ステップ１３２０において、下流側酸素濃度センサ７７が新品状態である場合における減少側応答時定数TCdownnewは、あらかじめ実験などによって取得されるとともにＲＯＭ８２に格納されている。
【０２５０】
次いで、ＣＰＵ８１は、ステップ１３２５に進む。ＣＰＵ８１は、ステップ１３２５にて、増大側低下度Dsupが減少側低下度Dsdownよりも大きいか否かを判定する。現時点において、増大側低下度Dsupが減少側低下度Dsdownよりも大きい場合、ＣＰＵ８１は、ステップ１３２５にて「Ｙｅｓ」と判定し、ステップ１３３０に進む。ＣＰＵ８１は、ステップ１３３０にて、増大側応答性低下フラグXDUPの値に「１」を格納する。その後、ＣＰＵ８１は、ステップ１３９５に進んで本ルーチンを一旦終了する。
【０２５１】
一方、現時点において、増大側低下度Dsupが減少側低下度Dsdownよりも大きくない場合、ＣＰＵ８１は、ステップ１３２５にて「Ｎｏ」と判定し、ステップ１３３５に進む。ＣＰＵ８１は、ステップ１３３５にて、増大側低下度Dsupが減少側低下度Dsdownよりも小さいか否かを判定する。現時点において、増大側低下度Dsupが減少側低下度Dsdownよりも小さければ、ＣＰＵ８１は、ステップ１３３５にて「Ｙｅｓ」と判定してステップ１３４０に進み、減少側応答性低下フラグXDDOWNの値に「１」を格納する。その後、ＣＰＵ８１は、ステップ１３９５に進み、本ルーチンを一旦終了する。
【０２５２】
また、現時点において、増大側低下度Dsupと減少側低下度Dsdownとが同一であれば、ＣＰＵ８１は、ステップ１３２５およびステップ１３３５の双方にて「Ｎｏ」と判定してステップ１３４５に進み、増大側応答性低下フラグXDUPの値に「０」を格納する。次いで、ＣＰＵ８１は、ステップ１３５０に進み、減少側応答性低下フラグXDDOWNの値に「０」を格納する。その後、ＣＰＵ８１は、ステップ１３９５に進み、本ルーチンを一旦終了する。
【０２５３】
このように、本ルーチンにより、下流側酸素濃度センサ７７の出力応答性が非対称に低下しているか否かが確認されるとともに、その結果に応じて各フラグの値が設定される。すなわち、増大側低下度Dsupが減少側低下度Dsdownよりも大きければ、増大側応答性低下フラグXDUPの値が「１」に設定される。さらに、減少側低下度Dsdownが増大側低下度Dsupよりも大きければ、減少側応答性低下フラグXDDOWNの値が「１」に設定される。加えて、増大側低下度Dsupと減少側低下度Dsdownとが同一であれば、増大側応答性低下フラグXDUPの値および減少側応答性低下フラグXDDOWNの値の双方が「０」に維持される。
【０２５４】
さらに、ＣＰＵ８１は、所定時間が経過する毎に、図１４にフローチャートによって示した「第１触媒低劣化時閾値設定ルーチン」を繰り返し実行するようになっている。ＣＰＵ８１は、このルーチンにより、劣化度Dcatが小さい触媒に適した値となるように、増大側閾値DIFupthおよび減少側閾値DIFdownthを設定する。
【０２５５】
具体的に述べると、ＣＰＵ８１は、所定のタイミングにて、図１４のステップ１４００から処理を開始するとステップ１４１０に進む。ＣＰＵ８１は、ステップ１４１０にて、増大側閾値DIFupthの値に増大側基準閾値DIFuprefを格納する。増大側基準閾値DIFuprefは、正の値であって増大側応答性が低下していない場合に用いられる閾値である。
【０２５６】
次いで、ＣＰＵ８１は、ステップ１４２０に進む。ＣＰＵ８１は、ステップ１４２０にて、減少側閾値DIFdownthの値に減少側基準閾値DIFdownrefを格納する。減少側基準閾値DIFdownrefは、負の値であって減少側応答性が低下していない場合に用いられる閾値である。
【０２５７】
なお、増大側基準閾値DIFuprefおよび減少側基準閾値DIFdownrefは、あらかじめ実験などによって取得されるとともにＲＯＭ８２に格納されている。
【０２５８】
次いで、ＣＰＵ８１は、ステップ１４３０に進む。ＣＰＵ８１は、ステップ１４３０にて、現時点における触媒劣化フラグXDCATの値が「０」であるか否かを判定する。
【０２５９】
現時点における触媒劣化フラグXDCATの値が「１」である場合、ＣＰＵ８１は、ステップ１４３０にて「Ｎｏ」と判定し、ステップ１４９５に進んで本ルーチンを一旦終了する。この場合、増大側閾値DIFupthは増大側基準閾値DIFuprefに維持され、減少側閾値DIFdownthは減少側基準閾値DIFdownrefに維持される。このように、本ルーチンにおいては、触媒劣化フラグXDCATの値が「１」であるとき（触媒５３の劣化度Dcatが閾値劣化度Dcatthよりも大きいとき。図１２のステップ１２５０およびステップ１２６０を参照。）、増大側閾値DIFupthおよび減少側閾値DIFdownthの調整はなされない。
【０２６０】
一方、現時点における触媒劣化フラグXDCATの値が「０」である場合、ＣＰＵ８１は、ステップ１４３０にて「Ｙｅｓ」と判定してステップ１４４０に進む。以下、現時点における触媒劣化フラグXDCATの値が「０」であると仮定して、説明を続ける。
【０２６１】
上記仮定に従うと、ＣＰＵ８１は、ステップ１４４０に進む。ＣＰＵ８１は、ステップ１４４０にて、増大側応答性低下フラグXDUPの値が「１」であるか否かを判定する。現時点における増大側応答性低下フラグXDUPの値が「１」であれば、ＣＰＵ８１は、ステップ１４４０にて「Ｙｅｓ」と判定してステップ１４５０に進む。ＣＰＵ８１は、ステップ１４５０にて、増大側閾値DIFupthの値に「増大側基準閾値DIFuprefよりも小さい値DIFupsmall」を格納する。その後、ＣＰＵ８１は、ステップ１４９５に進んで、本ルーチンを一旦終了する。
【０２６２】
一方、現時点において、増大側応答性低下フラグXDUPの値が「０」であれば、ＣＰＵ８１は、ステップ１４４０にて「Ｎｏ」と判定してステップ１４６０に進む。ＣＰＵ８１は、ステップ１４６０にて、減少側応答性低下フラグXDDOWNの値が「１」であるか否かを判定する。現時点において、減少側応答性低下フラグXDDOWNの値が「１」であれば、ＣＰＵ８１は、ステップ１４６０にて「Ｙｅｓ」と判定してステップ１４７０に進む。ＣＰＵ８１は、ステップ１４７０にて、減少側閾値DIFdownthの値に「減少側基準閾値DIFdownrefよりも大きい値DIFdownlarge」を格納する。その後、ＣＰＵ８１は、ステップ１４９５に進んで本ルーチンを一旦終了する。
【０２６３】
また、現時点において、増大側応答性低下フラグXDUPの値および減少側応答性低下フラグXDDOWNの値の双方が「０」であれば、ＣＰＵ８１は、ステップ１４４０およびステップ１４６０の双方にて「Ｎｏ」と判定してステップ１４９５に直接進み、本ルーチンを一旦終了する。
【０２６４】
このように、触媒５３の劣化度Dcatが閾値劣化度Dcatth以下であるとき（触媒劣化フラグXDCATの値が「０」であるとき）、増大側低下度Dsupが減少側低下度Dsdownよりも大きければ（増大側応答性低下フラグXDUPの値が「１」であれば）、増大側閾値DIFupthが小さくされる（DIFupsmallに設定される）。さらに、このとき、減少側低下度Dsdownが増大側低下度Dsupよりも大きければ（減少側応答性低下フラグXDDOWNの値が「１」であれば）、減少側閾値DIFdownthが大きくされる（DIFdownlargeに設定される）。加えて、増大側低下度Dsupと減少側低下度Dsdownとが同一であれば（増大側応答性低下フラグXDUPの値および減少側応答性低下フラグXDDOWNの値の双方が「０」であれば）、増大側閾値DIFupthは増大側基準閾値DIFuprefに維持され、減少側閾値DIFdownthは減少側基準閾値DIFdownrefに維持される。
【０２６５】
さらに、ＣＰＵ８１は、所定時間が経過する毎に、図１５にフローチャートによって示した「第１触媒高劣化時閾値設定ルーチン」を繰り返し実行するようになっている。ＣＰＵ８１は、このルーチンにより、劣化度Dcatが大きい触媒に適した値となるように、増大側閾値DIFupthおよび減少側閾値DIFdownthを設定する。
【０２６６】
具体的に述べると、ＣＰＵ８１は、所定のタイミングにて、図１５のステップ１５００から処理を開始するとステップ１５１０に進む。ＣＰＵ８１は、ステップ１５１０にて、増大側閾値DIFupthの値に増大側基準閾値DIFupref（図１４のステップ１４１０を参照。）を格納する。
【０２６７】
次いで、ＣＰＵ８１は、ステップ１５２０に進む。ＣＰＵ８１は、ステップ１５２０にて、減少側閾値DIFdownthの値に減少側基準閾値DIFdownref（図１４のステップ１４２０を参照。）を格納する。
【０２６８】
次いで、ＣＰＵ８１は、ステップ１５３０に進む。ＣＰＵ８１は、ステップ１５３０にて、現時点における触媒劣化フラグXDCATの値が「１」であるか否かを判定する。
【０２６９】
現時点における触媒劣化フラグXDCATの値が「０」である場合、ＣＰＵ８１は、ステップ１５３０にて「Ｎｏ」と判定し、ステップ１５９５に進んで本ルーチンを一旦終了する。この場合、増大側閾値DIFupthは増大側基準閾値DIFuprefに維持され、減少側閾値DIFdownthは減少側基準閾値DIFdownrefに維持される。このように、本ルーチンにおいては、触媒劣化フラグXDCATの値が「０」であるとき（触媒５３の劣化度Dcatが閾値劣化度Dcatth以下であるとき。図１２のステップ１２５０を参照。）、増大側閾値DIFupthおよび減少側閾値DIFdownthの調整はなされない。
【０２７０】
一方、現時点における触媒劣化フラグXDCATの値が「１」である場合、ＣＰＵ８１は、ステップ１５３０にて「Ｙｅｓ」と判定してステップ１５４０に進む。以下、現時点における触媒劣化フラグXDCATの値が「１」であると仮定して、説明を続ける。
【０２７１】
上記仮定に従うと、ＣＰＵ８１は、ステップ１５４０に進む。ＣＰＵ８１は、ステップ１５４０にて、増大側応答性低下フラグXDUPの値が「１」であるか否かを判定する。現時点における増大側応答性低下フラグXDUPの値が「１」であれば、ＣＰＵ８１は、ステップ１５４０にて「Ｙｅｓ」と判定してステップ１５５０に進む。ＣＰＵ８１は、ステップ１５５０にて、減少側閾値DIFdownthの値に「減少側基準閾値DIFdownrefよりも小さい値DIFdownsmall」を格納する。その後、ＣＰＵ８１は、ステップ１５９５に進んで、本ルーチンを一旦終了する。
【０２７２】
一方、現時点において、増大側応答性低下フラグXDUPの値が「０」であれば、ＣＰＵ８１は、ステップ１５４０にて「Ｎｏ」と判定してステップ１５６０に進む。ＣＰＵ８１は、ステップ１５６０にて、減少側応答性低下フラグXDDOWNの値が「１」であるか否かを判定する。現時点における減少側応答性低下フラグXDDOWNの値が「１」であれば、ＣＰＵ８１は、ステップ１５６０にて「Ｙｅｓ」と判定してステップ１５７０に進む。ＣＰＵ８１は、ステップ１５７０にて、増大側閾値DIFupthの値に「増大側基準閾値DIFuprefよりも大きい値DIFuplarge」を格納する。その後、ＣＰＵ８１は、ステップ１５９５に進んで本ルーチンを一旦終了する。
【０２７３】
また、現時点において、増大側応答性低下フラグXDUPの値および減少側応答性低下フラグXDDOWNの値の双方が「０」であれば、ＣＰＵ８１は、ステップ１５４０およびステップ１５６０の双方にて「Ｎｏ」と判定してステップ１５９５に直接進み、本ルーチンを一旦終了する。
【０２７４】
このように、触媒５３の劣化度Dcatが閾値劣化度Dcatthよりも大きいとき（触媒劣化フラグXDCATの値が「１」であるとき）、増大側低下度Dsupが減少側低下度Dsdownよりも大きければ（増大側応答性低下フラグXDUPの値が「１」であれば）、減少側閾値DIFdownthが小さくされる（DIFdownsmallに設定される）。さらに、このとき、減少側低下度Dsdownが増大側低下度Dsupよりも大きければ（減少側応答性低下フラグXDDOWNの値が「１」であれば）、増大側閾値DIFupthが大きくされる（DIFuplargeに設定される）。加えて、増大側低下度Dsupと減少側低下度Dsdownとが同一であれば（増大側応答性低下フラグXDUPの値および減少側応答性低下フラグXDDOWNの値の双方が「０」であれば）、増大側閾値DIFupthは増大側基準閾値DIFuprefに維持され、減少側閾値DIFdownthは減少側基準閾値DIFdownrefに維持される。
【０２７５】
ところで、第１装置においては、上記「増大側基準閾値DIFuprefよりも小さい値DIFupsmall」、上記「減少側基準閾値DIFdownrefよりも大きい値DIFdownlarge」、上記「減少側基準閾値DIFdownrefよりも小さい値DIFdownsmall」および上記「増大側基準閾値DIFuprefよりも大きい値DIFuplarge」として、あらかじめ実験などによって確認された出力応答性の低下の傾向などに基づいて定められる「固定値」が採用され得る。さらに、上記各閾値として、同出力応答性の低下に影響を与え得る所定のパラメータに基づいて定められる「可変値」が採用され得る。加えて、上記各閾値として、出力応答性が非対称に低下することによって生じる中央酸素吸蔵量Cmidに対する平均酸素吸蔵量のずれを出来る限り低減するように定められる「可変値」が採用され得る。すなわち、上記各閾値は、固定値であっても可変値であってもよい。
【０２７６】
さらに、ＣＰＵ８１は、任意の気筒のクランク角度が吸気行程前の所定クランク角度（例えば、排気上死点前９０度クランク角）θｆに一致する毎に、図１６にフローチャートによって示した「燃料噴射制御ルーチン」を繰り返し実行するようになっている。ＣＰＵ８１は、このルーチンにより、最終燃料噴射量Fiを決定するとともに、その最終燃料噴射量Fiだけの燃料をインジェクタ３４から噴射させる。以下、便宜上、クランク角が上記所定クランク角θｆに一致する吸気行程前の気筒を、「燃料噴射気筒」とも称呼する。
【０２７７】
具体的に述べると、ＣＰＵ８１は、所定のタイミングにて図１６のステップ１６００から処理を開始してステップ１６１０に進み、ステップ１６１０にて、上流側目標空燃比abyfr（k）に「理論空燃比stoich」を格納する。次いで、ＣＰＵ８１は、ステップ１６１０に続くステップ１６２０〜ステップ１６４０の処理を順に実行する。ステップ１６２０〜ステップ１６４０にて実行される処理は、以下の通りである。
【０２７８】
ステップ１６２０：ＣＰＵ８１は、吸入空気量Gaと機関回転速度NEとに基づき、燃料噴射気筒に吸入される空気の量である筒内吸入空気量Mc（k）を取得する。
ステップ１６３０：ＣＰＵ８１は、上記（１５）式に従い、基本燃料噴射量Fbaseを算出する。
ステップ１６４０：ＣＰＵ８１は、上記（１６）式に従い、基本燃料噴射量Fbaseをメインフィードバック量DFiによって補正することにより、最終燃料噴射量Fiを算出する。
【０２７９】
ステップ１６４０の処理を実行した後、ＣＰＵ８１は、ステップ１６５０に進み、「燃料噴射量をゼロとするフューエルカット制御を行い得る条件（フューエルカット制御条件）」が成立しているか否かを判定する。より具体的に述べると、ＣＰＵ８１は、ステップ１６５０にて、下記条件ｃ−１およびｃ−２の双方が成立したとき、フューエルカット制御条件が成立すると判定する。換言すると、ＣＰＵ８１は、下記条件ｃ−１およびｃ−２のうちの少なくとも一方が成立しないとき、フューエルカット制御条件が成立しないと判定する。
【０２８０】
（条件ｃ−１）アクセルペダル開度Accpがゼロである、または、スロットル弁開度TAがゼロである。
（条件ｃ−２）機関回転速度NEが所定の閾値以上である。
【０２８１】
条件ｃ−１は、機関１０に要求されているトルクの大きさが十分に小さいか否かを判断するために設けられている条件である。条件ｃ−２に係る所定の閾値は、燃料噴射量がゼロであっても機関１０の運転が継続され得ると判断し得る適値に設定される。よって、例えば、機関１０に対して加速要求が発せられている期間において、上記フィードバック制御条件は成立しない。
【０２８２】
現時点においてフィードバック制御条件が「成立しない」場合、ＣＰＵ８１は、ステップ１６５０にて「Ｎｏ」と判定してステップ１６６０に進む。ＣＰＵ８１は、ステップ１６６０にて、最終燃料噴射量Fiの燃料を噴射するよう燃料噴射気筒に設けられているインジェクタ３４に指示を与える。その後、ＣＰＵ８１は、ステップ１６９５に進んで本ルーチンを一旦終了する。
【０２８３】
これにより、上述した各処理によって算出された最終燃料噴射量Fiだけの燃料が燃料噴射気筒に噴射される。
【０２８４】
これに対し、現時点においてフィードバック制御条件が「成立する」場合、ＣＰＵ８１は、ステップ１６５０にて「Ｙｅｓ」と判定してステップ１６７０に進む。ＣＰＵ８１は、ステップ１６７０にて最終燃料噴射量Fiの値にゼロを格納する。次いで、ＣＰＵ８１は、ステップ１６６０に進み、最終燃料噴射量Fiの燃料を噴射するよう燃料噴射気筒に設けられているインジェクタ３４に指示を与える。その後、ＣＰＵ８１は、ステップ１６９５に進んで本ルーチンを一旦終了する。これにより、燃料は燃料噴射気筒に噴射されない。すなわち、燃料噴射量がゼロであるフューエルカット運転が実行される。
【０２８５】
さらに、ＣＰＵ８１は、任意の気筒のクランク角度が吸気行程前の所定クランク角度θｇに一致する毎に、図１７にフローチャートによって示した「メインフィードバック量算出ルーチン」を繰り返し実行するようになっている。ＣＰＵ８１は、このルーチンにより、メインフィードバック量DFiを算出する。
【０２８６】
具体的に述べると、ＣＰＵ８１は、所定のタイミングにて図１７のステップ１７００から処理を開始してステップ１７０５に進み、「上述したメインフィードバック制御を行い得る条件（メインフィードバック制御条件）」が成立しているか否かを判定する。より具体的に述べると、ＣＰＵ８１は、ステップ１７０５にて、下記条件ｄ−１〜ｄ−５の全てが成立したとき、メインフィードバック制御条件が成立すると判定する。換言すると、ＣＰＵ８１は、下記条件ｄ−１〜ｄ−５のうちの少なくとも１つが成立しないとき、メインフィードバック制御条件が成立しないと判定する。
【０２８７】
（条件ｄ−１）触媒の温度TempCが所定の閾値以上である。
（条件ｄ−２）冷却水温THWが所定の閾値以上である。
（条件ｄ−３）吸入空気量Gaが所定の閾値以下ある。
（条件ｄ−４）上流側酸素濃度センサ７６が活性化している。
（条件ｄ−５）フューエルカット運転が実行中ではない。
【０２８８】
条件ｄ−１に係る所定の閾値は、触媒５３が活性化していると判断し得る適値に設定される。条件ｄ−２に係る所定の閾値は、機関１０の暖機が完了していると判断し得る適値に設定される。条件ｄ−３に係る所定の閾値は、機関１０の負荷が過大ではないと判断し得る適値に設定される。条件ｄ−４は、メインフィードバック制御にて上流側酸素濃度センサ７６の出力値Vabyfsが用いられるために設けられている条件である。条件ｄ−５は、フューエルカット運転中は燃料噴射量を変化させることができないために設けられている条件である。よって、例えば、機関１０が暖機運転されている期間中およびフューエルカット運転が実行されている期間中などにおいては、上記メインフィードバック制御条件は成立しない。
【０２８９】
現時点においてメインフィードバック制御条件が「成立しない」場合、ＣＰＵ８１は、ステップ１７０５にて「Ｎｏ」と判定してステップ１７１０に進む。ＣＰＵ８１は、ステップ１７１０にて、メインフィードバック量DFiにゼロを格納する。
【０２９０】
次いで、ＣＰＵ８１は、ステップ１７１５に進む。ＣＰＵ８１は、ステップ１７１５にて、筒内燃料供給量偏差DFcの積分値SDFc（上記（１９）式および上記（２０）式を参照。）にゼロを格納する。その後、ＣＰＵ８１は、ステップ１７９５に進んで本ルーチンを一旦終了する。
【０２９１】
このように、メインフィードバック制御条件が「成立しない」場合、メインフィードバック量DFiはゼロに設定される。そのため、この場合、上述した「メインフィードバック量DFiによる基本燃料噴射量Fbaseの補正」は行われない（図１６のステップ１６４０を参照。）。
【０２９２】
次いで、ＣＰＵ８１は、任意の気筒のクランク角度が吸気行程前の所定クランク角度θｈに一致する毎に、図１８にフローチャートによって示した「サブフィードバック量算出ルーチン」を繰り返し実行するようになっている。ＣＰＵ８１は、このルーチンにより、サブフィードバック量Vafsfbを算出する。
【０２９３】
具体的に述べると、ＣＰＵ８１は、所定のタイミングにて図１８のステップ１８００から処理を開始してステップ１８１０に進み、「上述したサブフィードバック制御を行い得る条件（サブフィードバック制御条件）」が成立しているか否かを判定する。より具体的に述べると、ＣＰＵ８１は、ステップ１８１０にて、下記条件ｅ−１〜ｅ−３の全てが成立したとき、サブフィードバック制御条件が成立すると判定する。換言すると、ＣＰＵ８１は、下記条件ｅ−１〜ｅ−３のうちの少なくとも１つが成立しないとき、サブフィードバック制御条件が成立しないと判定する。
【０２９４】
（条件ｅ−１）上記メインフィードバック条件が成立している。
（条件ｅ−２）上流側目標空燃比abyfrが理論空燃比stoichに設定されている。
（条件ｅ−３）下流側酸素濃度センサ７７が活性化している。
【０２９５】
条件ｅ−１および条件ｅ−２は、サブフィードバック制御は上記メインフィードバック制御と並行して実行される制御であるために設けられている条件である。条件ｅ−３は、サブフィードバック制御にて下流側酸素濃度センサ７７の出力値Voxsが用いられるために設けられている条件である。よって、例えば、機関１０が暖機運転されている期間中およびフューエルカット運転が実行されている期間中などにおいては、上記サブフィードバック制御条件は成立しない。
【０２９６】
上述したように現時点においてメインフィードバック制御条件が成立していないので、サブフィードバック制御条件は「成立しない」（条件ｅ−１を参照。）。そのため、ＣＰＵ８１は、ステップ１８１０にて「Ｎｏ」と判定してステップ１８２０に進む。ＣＰＵ８１は、ステップ１８２０にて、サブフィードバック量Vafsfbにゼロを格納する。その後、ＣＰＵ８１は、ステップ１８９５に進んで本ルーチンを一旦終了する。
【０２９７】
このように、サブフィードバック制御条件が「成立しない」場合、サブフィードバック量Vafsfbはゼロに設定される。そのため、この場合、後述する「サブフィードバック量Vafsfbによる上流側酸素濃度センサ７６の出力値Vabyfsの補正」は行われない（図１７のステップ１７２０を参照。）。
【０２９８】
したがって、現時点においてメインフィードバック制御条件が「成立しない」場合、メインフィードバック量DFiがゼロに設定されるとともに、サブフィードバック量Vafsfbがゼロに設定される。そのため、吸入空気量Ga、機関回転速度NEおよび上流側目標空燃比abyfrに基づいて定められる基本燃料噴射量Fbaseの燃料が、燃料噴射気筒に噴射される（図１６のステップ１６２０〜ステップ１６６０を参照。）。
【０２９９】
これに対し、現時点においてメインフィードバック制御条件が「成立する」場合、ＣＰＵ８１は、図１７のステップ１７００から処理を開始してステップ１７０５に進むと、ステップ１７０５にて「Ｙｅｓ」と判定する。次いで、ＣＰＵ８１は、ステップ１７０５に続くステップ１７２０〜ステップ１７５０の処理をこの順に実行する。ステップ１７２０〜ステップ１７５０にて実行される処理は、以下の通りである。
【０３００】
ステップ１７２０：ＣＰＵ８１は、上記（１３）式に従い、フィードバック制御用出力値Vabyfcを算出する。
ステップ１７２５：ＣＰＵ８１は、上記（１４）式に従い、フィードバック制御用空燃比abyfscを決定する。
ステップ１７３０：ＣＰＵ８１は、上記（１７）式に従い、現時点よりもNサイクル前の時点における筒内燃料供給量Fc（k−N）を算出する。
ステップ１７３５：ＣＰＵ８１は、上記（１８）式に従い、現時点よりもNサイクル前の時点における目標筒内燃料供給量Fcr（k−N）を算出する。
ステップ１７４０：ＣＰＵ８１は、上記（１９）式に従い、筒内燃料供給量偏差DFcを算出する。
ステップ１７４５：ＣＰＵ８１は、上記（２０）式に従い、メインフィードバック量DFiを算出する。第１装置においては、係数KFBとして「１」が採用される。なお、筒内燃料供給量偏差DFcの積分値SDFcは、現時点までの筒内燃料供給量偏差DFcの値が積算された値である（下記ステップ１７５０を参照。）。
ステップ１７５０：ＣＰＵ８１は、現時点における筒内燃料供給量偏差DFcの積分値SDFcに上記ステップ１７４０にて取得された筒内燃料供給量偏差DFcを加算することにより、新たな筒内燃料供給量偏差の積分値SDFcを算出（更新）する。
【０３０１】
ステップ１７５０の処理を実行した後、ＣＰＵ８１は、ステップ１７９５に進んで本ルーチンを一旦終了する。
【０３０２】
上述した各処理により、メインフィードバック量DFiが比例積分制御により算出される（ステップ１７４５を参照。）。そして、このメインフィードバック量DFiを用いて最終燃料噴射量Fiが補正される（図１６のステップ１６４０を参照。）。
【０３０３】
さらに、ＣＰＵ８１は、所定のタイミングにて図１８のステップ１８００から処理を開始すると、ステップ１８１０に進む。現時点にてサブフィードバック制御条件が「成立しない」場合、上記同様、ＣＰＵ８１は、ステップ１８１０にて「Ｎｏ」と判定し、ステップ１８２０およびステップ１８３０を経由してステップ１８９５に進み、本ルーチンを一旦終了する。これにより、サブフィードバック量Vafsfbはゼロに設定される。
【０３０４】
これに対し、現時点にてサブフィードバック制御条件が「成立する」場合、ＣＰＵ８１は、ステップ１８１０にて「Ｙｅｓ」と判定してステップ１８３０に進む。以下、現時点にてサブフィードバック制御条件が「成立する」と仮定して説明を続ける。
【０３０５】
上記仮定に従うと、ＣＰＵ８１は、ステップ１８１０に続くステップ１８３０〜ステップ１８５０の処理をこの順に実行する。ステップ１８３０〜ステップ１８５０にて実行される処理は、以下の通りである。
【０３０６】
ステップ１８３０：ＣＰＵ８１は、図１９に示すサブルーチンとしての「比例項・微分項算出ルーチン」を実行することにより、サブフィードバック量Vafsfbの比例項SPおよび微分項SDを算出する。このサブルーチンについての説明は、後述される。
ステップ１８４０：ＣＰＵ８１は、上記（１２）式に従い、サブフィードバック量Vafsfbを算出する。
ステップ１８５０：ＣＰＵ８１は、現時点における下流側酸素濃度センサ７７の出力値Voxsを前回出力値Voxsoldに格納することにより、前回出力値Voxsoldを算出（更新）する。
【０３０７】
ステップ１８５０の処理を実行した後、ＣＰＵ８１は、ステップ１８９５に進んで本ルーチンを一旦終了する。
【０３０８】
上述した各処理により、サブフィードバック量Vafsfbが比例微分制御の考え方に準じて算出される（ステップ１８４０を参照。）。そして、このサブフィードバック量Vafsfbを用いて上流側酸素濃度センサ７６の出力値Vabyfsが補正される（図１７のステップ１７２０を参照。）。さらに、補正されたフィードバック制御用出力値Vabyfcに基づいてメインフィードバック量DFiが算出されるとともに（図１７のステップ１７４５を参照。）、このメインフィードバック量DFiを用いて最終燃料噴射量Fiが補正される（図１６のステップ１６４０を参照。）。
【０３０９】
次いで、上記ステップ１８３０における、比例項SPおよび微分項SDを算出するためのサブルーチンについて説明する。ＣＰＵ８１は、図１８のステップ１８３０に進んだとき、図１９にフローチャートよって示した「比例項・微分項算出ルーチン」を実行するようになっている。ＣＰＵ８１は、このルーチンにより、比例項SPおよび微分項SDを算出する。
【０３１０】
具体的に述べると、ＣＰＵ８１は、図１９のステップ１９００から処理を開始すると、ステップ１９１０に進む。ＣＰＵ８１は、ステップ１９１０にて、下流側目標空燃比Voxsrefに「中央値mid（理論空燃比stoichに対応する値）」を格納する。次いで、ＣＰＵ８１は、ステップ１９１０に続くステップ１９２０〜ステップ１９５０の処理をこの順に実行する。ステップ１９２０〜ステップ１９５０にて実行される処理は、以下の通りである。
【０３１１】
ステップ１９２０：ＣＰＵ８１は、上記（６）式に従い、出力偏差量DVoxsを算出する。本ステップにおいて、出力値Voxsは、上記（６）式における「現時点における出力値Voxs（k）」に相当する。
ステップ１９３０：ＣＰＵ８１は、上記（７）式に従い、出力変化率DIFVoxsを算出する。本ステップにおいて、出力値Voxsは上記（７）式における「現時点における出力値Voxs（k）」に相当し、前回出力値Voxsoldは同式における「現時点よりもMサイクル前の時点における出力値Voxs（k−M）」に相当する。さらに、本ステップにおいて、同式におけるMサイクルは「１サイクル」であり、同式における時間長さΔtmは「本ルーチンが前回実行された時点から今回実行される時点までの時間長さ」である。第１装置においては、処理が容易になるように、１サイクルに要する時間長さ（Δtm）は単位時間長さ（すなわち、１）とみなされる。
ステップ１９４０：ＣＰＵ８１は、上記（９）式に従い、微分項SDを算出する。なお、上述したように、微分ゲインKdは、あらかじめ定められた「負の値」であってＲＯＭ８２に格納されている。
ステップ１９５０：ＣＰＵ８１は、上記（１０）式に従い、比例項SPを算出する。なお、上述したように、比例ゲインKpは、あらかじめ定められた「正の値」であってＲＯＭ８２に格納されている。
【０３１２】
ステップ１９５０の処理を実行した後、ＣＰＵ８１は、ステップ１９６０に進む。ＣＰＵ８１は、ステップ１９６０にて、下流側酸素濃度センサ７７の出力変化率DIFVoxsが増大側閾値DIFupthよりも大きいこと、および、同出力変化率DIFVoxsが減少側閾値DIFdownthよりも小さいこと、のいずれか一方が満たされるか否かを判定する。
【０３１３】
ここで、第１装置が実行する運転を以下の２つの場合に場合を分けて説明する。
（場合１）出力変化率DIFVoxsが増大側閾値DIFupthよりも大きい場合、または、出力変化率DIFVoxsが減少側閾値DIFdownthよりも小さい場合
（場合２）出力変化率DIFVoxsが減少側閾値DIFdownth以上であり且つ増大側閾値DIFupth以下である場合
以下、説明を続ける。
【０３１４】
（場合１）出力変化率DIFVoxsが増大側閾値DIFupthよりも大きい場合、または、出力変化率DIFVoxsが減少側閾値DIFdownthよりも小さい場合
この場合、上記「空燃比制御」にて述べたように、ＣＰＵ８１は「微分項SDのみ」に基づいてサブフィードバック量Vafsfbを算出する。具体的に述べると、ＣＰＵ８１は、ステップ１９６０にて「Ｙｅｓ」と判定し、ステップ１９７０に進む。
【０３１５】
ＣＰＵ８１は、ステップ１９７０にて、比例項SPの値にゼロを格納する。その後、ＣＰＵ８１は、ステップ１９９５を経由して図１８のステップ１８４０に進む。
【０３１６】
再び図１８を参照すると、ＣＰＵ８１は、ステップ１８４０にてサブフィードバック量Vafsfbを算出する。この場合１において、比例項SPはゼロでありであり（ステップ１９７０を参照。）、微分項SDは図１９のルーチンにて算出された値（ステップ１９４０を参照。）。よって、サブフィードバック量Vafsfbは「微分項SDのみ」を含む。
【０３１７】
その後、ＣＰＵ８１は、ステップ１８５０を経由してステップ１８９５に進み、本ルーチンを一旦終了する。さらに、ＣＰＵ８１は、所定のタイミングにて図１６および図１７のルーチンを実行することにより、上記サブフィードバック量Vafsfbが適用されたメインフィードバック量DFiを用いて最終燃料噴射量Fiを補正する。
【０３１８】
より具体的に述べると、出力変化率DIFVoxsが増大側閾値DIFupthよりも大きい場合（触媒５３の酸素吸蔵量がゼロの近傍に近づいている場合）、微分項SDおよびサブフィードバック量Vafsfbは「負の値」に設定される（図１９のステップ１９４０および図１８のステップ１８４０を参照。）。よって、メインフィードバック量DFiは、上記サブフィードバック制御がなされない場合に比べて「小さい」値となる。これにより、最終燃料噴射量Fiは、上記サブフィードバック制御がなされない場合に比べて「減少」する。したがって、触媒上流側空燃比abyfsは「リーン空燃比」となるように制御される。その結果、触媒５３の酸素吸蔵量がゼロに達することが防がれる。
【０３１９】
一方、出力変化率DIFVoxsが減少側閾値DIFdownthよりも小さい場合（触媒５３の酸素吸蔵量が最大酸素吸蔵量Cmaxに近づいている場合）、微分項SDおよびサブフィードバック量Vafsfbは「正の値」に設定される。よって、メインフィードバック量DFiは、上記サブフィードバック制御がなされない場合に比べて「大きい」値となる。これにより、最終燃料噴射量Fiは、上記サブフィードバック制御がなされない場合に比べて「増大」する。したがって、触媒上流側空燃比abyfsは「リッチ空燃比」となるように制御される。その結果、触媒５３の酸素吸蔵量が最大酸素吸蔵量Cmaxに達することが防がれる。
【０３２０】
（場合２）出力変化率DIFVoxsが減少側閾値DIFdownth以上であり且つ増大側閾値DIFupth以下である場合
この場合、上記「空燃比制御」にて述べたように、ＣＰＵ８１は「比例項SPのみ」に基づいてサブフィードバック量Vafsfbを算出する。具体的に述べると、ＣＰＵ８１は、ステップ１９６０にて「Ｎｏ」と判定し、ステップ１９８０に進む。
【０３２１】
ＣＰＵ８１は、ステップ１９８０にて、微分項SDの値にゼロを格納する。その後、ＣＰＵ８１は、ステップ１９９５を経由して図１８のステップ１８４０に進む。
【０３２２】
再び図１８を参照すると、ＣＰＵ８１は、ステップ１８４０にてサブフィードバック量Vafsfbを算出する。この場合２において、比例項SPは図１９のルーチンにて算出された値（ステップ１９５０を参照。）であり、微分項SDはゼロである（ステップ１９８０を参照。）。よって、サブフィードバック量Vafsfbは「比例項SPのみ」を含む。
【０３２３】
その後、ＣＰＵ８１は、ステップ１８５０を経由してステップ１８９５に進み、本ルーチンを一旦終了する。さらに、ＣＰＵ８１は、所定のタイミングにて図１６および図１７のルーチンを実行することにより、上記サブフィードバック量Vafsfbが適用されたメインフィードバック量DFiを用いて最終燃料噴射量Fiを補正する。
【０３２４】
より具体的に述べると、出力変化率DIFVoxsが減少側閾値DIFdownth以上であり且つ増大側閾値DIFupth以下であって出力値Voxsが中央値midよりも大きい場合（触媒５３の酸素吸蔵量は増大中であるものの、触媒５３が酸素を吸蔵する余力は十分にある場合）、比例項SPおよびサブフィードバック量Vafsfbは「負の値」に設定される（図１９のステップ１９５０および図１８のステップ１８４０を参照。）。よって、メインフィードバック量DFiは、上記サブフィードバック制御がなされない場合に比べて「小さい」値となる。これにより、最終燃料噴射量Fiは、上記サブフィードバック制御がなされない場合に比べて「減少」する。したがって、触媒上流側空燃比abyfsは「リーン空燃比」となるように制御される。その結果、触媒５３の酸素吸蔵量は引き続き増大する。
【０３２５】
一方、出力変化率DIFVoxsが減少側閾値DIFdownth以上であり且つ増大側閾値DIFupth以下であって出力値Voxsが中央値midよりも小さい値である場合（触媒５３の酸素吸蔵量は減少中であるものの、触媒５３が酸素を放出する余力が十分にある場合）、比例項SPおよびサブフィードバック量Vafsfbは「正の値」に設定される。よって、メインフィードバック量DFiは、上記サブフィードバック制御がなされない場合に比べて「大きい」値となる。これにより、最終燃料噴射量Fiは、上記サブフィードバック制御がなされない場合に比べて「増大」する。したがって、触媒上流側空燃比abyfsは「リッチ空燃比」となるように制御される。その結果、触媒５３の酸素吸蔵量は引き続き減少する。
【０３２６】
以上、説明したように、第１装置は、触媒５３の劣化度Dcatおよび下流側酸素濃度センサ７７の出力応答性の低下度に応じ、増大側閾値DIFupthおよび減少側閾値DIFdownthを設定する。さらに、第１装置は、そのように設定された増大側閾値DIFupthおよび減少側閾値DIFdownthと、下流側酸素濃度センサ７７の出力変化率DIFVoxsと、に基づいて触媒５３の酸素吸蔵量OSAの大小を判断する。そして、第１装置は、酸素吸蔵量OSAがゼロまたは最大酸素吸蔵量Cmaxに達することを避けるように、触媒導入ガスの空燃比（触媒上流側空燃比abyfs）を制御する。したがって、第１装置は、下流側酸素濃度センサ７７の出力応答性が低下した場合であっても触媒導入ガスの空燃比（混合気の空燃比）を適切に制御することができる。
【０３２７】
ところで、第１装置においては、触媒５３の「劣化度Dcat」は、触媒５３の最大酸素吸蔵量Cmaxに基づいて取得されている（上記「触媒の劣化度の取得方法」を参照。）。しかし、劣化度Dcatは、例えば、触媒５３に吸蔵および吸着などされている不要成分（例えば、硫黄成分など）の量に基づいても取得され得る。すなわち、劣化度Dcatは、触媒５３が本来有する（例えば、新品状態（未使用）の触媒が有する）排ガス浄化性能を基準とする排ガス浄化性能の低下の度合いを表し得る指標であればよい。
【０３２８】
さらに、第１装置においては、下流側酸素濃度センサ７７の「出力応答性」として、下流側酸素濃度センサ７７の応答時定数が採用されている（上記「下流側酸素濃度センサの出力応答性の低下度の取得方法」を参照。）。しかし、出力応答性として、例えば、触媒排出ガスの酸素濃度が所定値だけステップ状に変化したときに出力値Voxsがその所定値に対応する値だけ変化するために必要な時間長さ（すなわち、応答時間）が採用され得る。すなわち、出力応答性は、触媒排出ガスの酸素濃度の変化に対する出力値Voxsの追従の程度を表し得る指標であればよい。
【０３２９】
（第２実施形態）
上述したように、上記第１装置においては、下流側酸素濃度センサ７７の出力応答性が非対称に低下している場合に採用される各閾値（DIFuplarge、DIFupsmall、DIFdownlargeおよびDIFdownsmall）は、固定値であってもよく可変値であってもよい。以下、本発明の第２の実施形態に係る制御装置（以下、「第２装置」とも称呼する。）として、上記各閾値が「可変値」である一の態様について述べる。
【０３３０】
＜装置の概要＞
第２装置は、第１装置が適用される機関１０と同様の構成を有する機関（図１を参照。以下、便宜上、「機関１０」と称呼する。）に適用される。そこで、第２装置が適用される装置の概要についての説明は、省略される。
【０３３１】
＜装置の作動の概要＞
第２装置は、増大側低下度Dsupと減少側低下度Dsdownとの差の絶対値である「非対称低下度Dsasym」を考慮して増大側閾値DIFupthおよび減少側閾値DIFdownthを設定する点のみにおいて、第１装置と相違する。
【０３３２】
すなわち、第２装置は、非対称低下度Dsasymの大きさに応じて増大側閾値DIFupthおよび減少側閾値DIFdownthを変更する。そして、第２装置は、そのように変更された増大側閾値DIFupthおよび減少側閾値DIFdownthを用いて、第１装置と同様の方法にて触媒導入ガスの空燃比を制御する。以上が第２装置の作動の概要である。
【０３３３】
＜触媒の劣化度の取得方法＞
第２装置は、第１装置と同様の方法によって触媒５３の劣化度Dcatを取得する。そこで、第２装置における同劣化度Dcatの取得方法についての説明は、省略される。
【０３３４】
＜下流側酸素濃度センサの出力応答性の低下度の取得方法＞
第２装置は、第１装置と同様の方法によって下流側酸素濃度センサ７７の出力応答性の低下度（増大側低下度Dsupおよび減少側低下度Dsdown）を取得する。そこで、第２装置における同低下度の取得方法についての説明は、省略される。
【０３３５】
＜空燃比制御＞
第２装置は、「非対称低下度Dsasymが大きいほど中央酸素吸蔵量Cmidに対する平均酸素吸蔵量のずれが大きい」と判断する。そこで、第２装置は、非対称低下度Dsasymの大きさに応じて上記ずれが出来る限り小さくなるように増大側閾値DIFupthおよび減少側閾値DIFdownthを設定する。
【０３３６】
具体的に述べると、第２装置は、触媒５３の劣化度Dcatが閾値劣化度Dcatth以下である場合、増大側低下度Dsupが減少側低下度Dsdownよりも大きければ「非対称低下度Dsasymが大きいほど増大側閾値DIFupthを小さく」し、減少側低下度Dsdownが増大側低下度Dsupよりも大きければ「非対称低下度Dsasymが大きいほど減少側閾値DIFdownthを大きく」する。
【０３３７】
さらに、第２装置は、触媒５３の劣化度Dcatが閾値劣化度Dcatthよりも大きい場合、増大側低下度Dsupが減少側低下度Dsdownよりも大きければ「非対称低下度Dsasymが大きいほど減少側閾値DIFdownthを小さく」し、減少側閾値DIFdownが増大側低下度Dsupよりも大きければ「非対称低下度Dsasymが大きいほど増大側閾値DIFupthを大きく」する。
【０３３８】
第２装置は、上述したように決定される増大側閾値DIFupthおよび減少側閾値DIFdownthを用いて、第１装置と同様のメインフィードバック制御およびサブフィードバック制御によって触媒導入ガスの空燃比を制御する。以上が第２装置における空燃比の制御方法である。
【０３３９】
＜実際の作動＞
以下、第２装置の実際の作動について説明する。
第２装置は、ＣＰＵ８１が図１４および図１５に示す各フローチャートに代えて図２０および図２１に示すフローチャートを実行する点についてのみ、第１装置と相違している。そこで、以下、この相違点を中心として、ＣＰＵ８１が実行する各ルーチンについて説明する。
【０３４０】
ＣＰＵ８１は、第１装置と同様、図１１〜図１３のルーチンを所定時間が経過する毎に繰り返し実行する。すなわち、第２装置は、排気温度Texに基づいて触媒の温度TempCの温度を取得（推定）し、触媒５３の最大酸素吸蔵量Cmaxに基づいて触媒５３の劣化度Dcatを取得し、下流側酸素濃度センサ７７の応答時定数に基づいて増大側低下度Dsupおよび減少側低下度Dsdownを取得する。
【０３４１】
さらに、ＣＰＵ８１は、所定時間が経過する毎に、図２０にフローチャートによって示した「第２触媒低劣化時閾値設定ルーチン」を繰り返し実行するようになっている。ＣＰＵ８１は、このルーチンにより、劣化度Dcatが小さい触媒に適した値となるように、増大側閾値DIFupthおよび減少側閾値DIFdownthを設定する。
【０３４２】
具体的に述べると、ＣＰＵ８１は、所定のタイミングにて、図２０のステップ２０００から処理を開始するとステップ２００５に進む。ＣＰＵ８１は、ステップ２００５にて、増大側閾値DIFupthの値に増大側基準閾値DIFuprefを格納する。増大側基準閾値DIFuprefは、第１装置と同様、正の値であって増大側応答性が低下していない場合に用いられる閾値である。
【０３４３】
次いで、ＣＰＵ８１は、ステップ２０１０に進む。ＣＰＵ８１は、ステップ２０１０にて、減少側閾値DIFdownthの値に減少側基準閾値DIFdownrefを格納する。減少側基準閾値DIFdownrefは、第１装置と同様、負の値であって減少側応答性が低下していない場合に用いられる閾値である。
【０３４４】
次いで、ＣＰＵ８１は、ステップ２０１５に進む。ＣＰＵ８１は、ステップ２０１５にて、現時点における触媒劣化フラグXDCATの値が「０」であるか否かを判定する。
【０３４５】
現時点における触媒劣化フラグXDCATの値が「１」である場合、ＣＰＵ８１は、ステップ２０１５にて「Ｎｏ」と判定し、ステップ２０９５に進んで本ルーチンを一旦終了する。この場合、増大側閾値DIFupthは増大側基準閾値DIFuprefに維持され、減少側閾値DIFdownthは減少側基準閾値DIFdownrefに維持される。このように、本ルーチンにおいては、第１装置と同様、触媒劣化フラグXDCATの値が「１」であるとき（触媒５３の劣化度Dcatが閾値劣化度Dcatthよりも大きいとき）、増大側閾値DIFupthおよび減少側閾値DIFdownthの調整はなされない。
【０３４６】
一方、現時点における触媒劣化フラグXDCATの値が「０」である場合、ＣＰＵ８１は、ステップ２０１５にて「Ｙｅｓ」と判定してステップ２０２０に進む。以下、現時点における触媒劣化フラグXDCATの値が「０」であると仮定して、説明を続ける。
【０３４７】
上記仮定に従うと、ＣＰＵ８１は、ステップ２０２０に進む。ＣＰＵ８１は、ステップ２０２０にて、増大側低下度Dsupと減少側低下度Dsdownとの差の絶対値を、非対称低下度Dsasymに格納する。
【０３４８】
次いで、ＣＰＵ８１は、ステップ２０２５に進む。ＣＰＵ８１は、ステップ２０２５にて、増大側応答性低下フラグXDUPの値が「１」であるか否かを判定する。現時点における増大側応答性低下フラグXDUPの値が「１」であれば、ＣＰＵ８１は、ステップ２０２５にて「Ｙｅｓ」と判定してステップ２０３０に進む。
【０３４９】
ＣＰＵ８１は、ステップ２０３０にて、「非対称低下度Dsasymと、増大側基準閾値DIFuprefを補正するための補正係数Kaと、の関係」をあらかじめ定めた補正係数算出テーブルMapKa（Dsasym）に、現時点における非対称低下度Dsasymを適用することにより、補正係数Kaを取得する。補正係数算出テーブルMapKa（Dsasym）において、補正係数Kaは、正の値であり、かつ、非対称低下度Dsasymがゼロのときに「１」であって非対称低下度Dsasymが大きいほど小さくなるように、定められる。
【０３５０】
次いで、ＣＰＵ８１は、ステップ２０３５に進む。ＣＰＵ８１は、ステップ２０３５にて、「補正係数Kaと増大側基準閾値DIFuprefとの積」を増大側閾値DIFupthの値に格納する。上述したように、増大側基準閾値DIFuprefは正の値であり、補正係数Kaは正の値である。したがって、非対称低下度Dsasymが大きいほど、増大側閾値DIFupthは小さくなる。その後、ＣＰＵ８１は、ステップ２０９５に進んで、本ルーチンを一旦終了する。
【０３５１】
一方、現時点において、増大側応答性低下フラグXDUPの値が「０」であれば、ＣＰＵ８１は、ステップ２０２５にて「Ｎｏ」と判定してステップ２０４０に進む。ＣＰＵ８１は、ステップ２０４０にて、減少側応答性低下フラグXDDOWNの値が「１」であるか否かを判定する。現時点において、減少側応答性低下フラグXDDOWNの値が「１」であれば、ＣＰＵ８１は、ステップ２０４０にて「Ｙｅｓ」と判定してステップ２０４５に進む。
【０３５２】
ＣＰＵ８１は、ステップ２０４５にて、「非対称低下度Dsasymと、減少側基準閾値DIFdownrefを補正するための補正係数Kbと、の関係」をあらかじめ定めた補正係数算出テーブルMapKb（Dsasym）に、現時点における非対称低下度Dsasymを適用することにより、補正係数Kbを取得する。補正係数算出テーブルMapKb（Dsasym）において、補正係数Kbは、正の値であり、かつ、非対称低下度Dsasymがゼロのときに「１」であって非対称低下度Dsasymが大きいほど小さくなるように、定められる。
【０３５３】
次いで、ＣＰＵ８１は、ステップ２０５０に進む。ＣＰＵ８１は、ステップ２０５０にて、減少側閾値DIFdownthの値に「補正係数Kbと減少側基準閾値DIFdownrefとの積」を格納する。上述したように、減少側基準閾値DIFdownrefは負の値であり、補正係数Kbは正の値である。したがって、非対称低下度Dsasymが大きいほど、減少側閾値DIFdownthは大きくなる。その後、ＣＰＵ８１は、ステップ２０９５に進んで、本ルーチンを一旦終了する。
【０３５４】
また、現時点において、増大側応答性低下フラグXDUPの値および減少側応答性低下フラグXDDOWNの値の双方が「０」であれば、ＣＰＵ８１は、ステップ２０２５およびステップ２０４０の双方にて「Ｎｏ」と判定してステップ２０９５に直接進み、本ルーチンを一旦終了する。
【０３５５】
このように、触媒５３の劣化度Dcatが閾値劣化度Dcatth以下であるとき（触媒劣化フラグXDCATの値が「０」であるとき）、増大側低下度Dsupが減少側低下度Dsdownよりも大きければ（増大側応答性低下フラグXDUPの値が「１」であれば）、非対称低下度Dsasymが大きいほど増大側閾値DIFupthが小さくされる。さらに、このとき、減少側低下度Dsdownが増大側低下度Dsupよりも大きければ（減少側応答性低下フラグXDDOWNの値が「１」であれば）、非対称低下度Dsasymが大きいほど減少側閾値DIFdownthが大きくされる。加えて、増大側低下度Dsupと減少側低下度Dsdownとが同一であれば（増大側応答性低下フラグXDUPの値および減少側応答性低下フラグXDDOWNの値の双方が「０」であれば）、増大側閾値DIFupthは増大側基準閾値DIFuprefに維持され、減少側閾値DIFdownthは減少側基準閾値DIFdownrefに維持される。
【０３５６】
さらに、ＣＰＵ８１は、所定時間が経過する毎に、図２１にフローチャートによって示した「第２触媒高劣化時閾値設定ルーチン」を繰り返し実行するようになっている。ＣＰＵ８１は、このルーチンにより、劣化度Dcatが大きい触媒に適した値となるように、増大側閾値DIFupthおよび減少側閾値DIFdownthを設定する。
【０３５７】
具体的に述べると、ＣＰＵ８１は、所定のタイミングにて、図２１のステップ２１００から処理を開始するとステップ２１０５に進む。ＣＰＵ８１は、ステップ２１０５にて、増大側閾値DIFupthの値に増大側基準閾値DIFupref（図２０のステップ２００５を参照。）を格納する。
【０３５８】
次いで、ＣＰＵ８１は、ステップ２１１０に進む。ＣＰＵ８１は、ステップ２１１０にて、減少側閾値DIFdownthの値に減少側基準閾値DIFdownref（図２０のステップ２０１０を参照。）を格納する。
【０３５９】
次いで、ＣＰＵ８１は、ステップ２１１５に進む。ＣＰＵ８１は、ステップ２１１５にて、現時点における触媒劣化フラグXDCATの値が「１」であるか否かを判定する。
【０３６０】
現時点における触媒劣化フラグXDCATの値が「０」である場合、ＣＰＵ８１は、ステップ２１１５にて「Ｎｏ」と判定し、ステップ２１９５に進んで本ルーチンを一旦終了する。この場合、増大側閾値DIFupthは増大側基準閾値DIFuprefに維持され、減少側閾値DIFdownthは減少側基準閾値DIFdownrefに維持される。このように、本ルーチンにおいては、第１装置と同様、触媒劣化フラグXDCATの値が「０」であるとき（触媒５３の劣化度Dcatが閾値劣化度Dcatth以下であるとき）、増大側閾値DIFupthおよび減少側閾値DIFdownthの調整はなされない。
【０３６１】
一方、現時点における触媒劣化フラグXDCATの値が「１」である場合、ＣＰＵ８１は、ステップ２１１５にて「Ｙｅｓ」と判定してステップ２１２０に進む。以下、現時点における触媒劣化フラグXDCATの値が「１」であると仮定して、説明を続ける。
【０３６２】
上記仮定に従うと、ＣＰＵ８１は、ステップ２１２０に進む。ＣＰＵ８１は、ステップ２１２０にて、増大側低下度Dsupと減少側低下度Dsdownとの差の絶対値を、非対称低下度Dsasymに格納する。
【０３６３】
次いで、ＣＰＵ８１は、ステップ２１２５に進む。ＣＰＵ８１は、ステップ２１２５にて、増大側応答性低下フラグXDUPの値が「１」であるか否かを判定する。現時点における増大側応答性低下フラグXDUPの値が「１」であれば、ＣＰＵ８１は、ステップ２１２５にて「Ｙｅｓ」と判定してステップ２１３０に進む。
【０３６４】
ＣＰＵ８１は、ステップ２１３０にて、「非対称低下度Dsasymと、減少側基準閾値DIFdownrefを補正するための補正係数Kcと、の関係」をあらかじめ定めた補正係数算出テーブルMapKc（Dsasym）に、現時点における非対称低下度Dsasymを適用することにより、補正係数Kcを取得する。補正係数算出テーブルMapKc（Dsasym）において、補正係数Kcは、正の値であり、かつ、非対称低下度Dsasymがゼロであるときに「１」であって非対称低下度Dsasymが大きいほど大きくなるように、定められる。
【０３６５】
次いで、ＣＰＵ８１は、ステップ２１３５に進む。ＣＰＵ８１は、ステップ２１３５にて、減少側閾値DIFdownthの値に「補正係数Kcと減少側基準閾値DIFdownrefとの積」を格納する。上述したように、減少側基準閾値DIFdownrefは負の値であり、補正係数Kcは正の値である。したがって、非対称低下度Dsasymが大きいほど、減少側閾値DIFdownthは小さくなる。その後、ＣＰＵ８１は、ステップ２１９５に進んで、本ルーチンを一旦終了する。
【０３６６】
一方、現時点において、増大側応答性低下フラグXDUPの値が「０」であれば、ＣＰＵ８１は、ステップ２１２５にて「Ｎｏ」と判定してステップ２１４０に進む。ＣＰＵ８１は、ステップ２１４０にて、減少側応答性低下フラグXDDOWNの値が「１」であるか否かを判定する。現時点において、減少側応答性低下フラグXDDOWNの値が「１」であれば、ＣＰＵ８１は、ステップ２１４０にて「Ｙｅｓ」と判定してステップ２１４５に進む。
【０３６７】
ＣＰＵ８１は、ステップ２１４５にて、「非対称低下度Dsasymと、増大側基準閾値DIFuprefを補正するための補正係数Kdと、の関係」をあらかじめ定めた補正係数算出テーブルMapKd（Dsasym）に、現時点における非対称低下度Dsasymを適用することにより、補正係数Kdを取得する。補正係数算出テーブルMapKd（Dsasym）において、補正係数Kdは、正の値であり、かつ、非対称低下度Dsasymがゼロのときに「１」であって非対称低下度Dsasymが大きいほど大きくなるように、定められる。
【０３６８】
次いで、ＣＰＵ８１は、ステップ２１５０に進む。ＣＰＵ８１は、ステップ２１５０にて、増大側閾値DIFupthの値に「補正係数Kdと増大側基準閾値DIFuprefとの積」を格納する。上述したように、増大側基準閾値DIFuprefは正の値であり、補正係数Kdは正の値である。したがって、非対称低下度Dsasymが大きいほど、増大側閾値DIFupthは大きくなる。その後、ＣＰＵ８１は、ステップ２１９５に進んで、本ルーチンを一旦終了する。
【０３６９】
また、現時点において、増大側応答性低下フラグXDUPの値および減少側応答性低下フラグXDDOWNの値の双方が「０」であれば、ＣＰＵ８１は、ステップ２１２５およびステップ２１４０の双方にて「Ｎｏ」と判定してステップ２１９５に直接進み、本ルーチンを一旦終了する。
【０３７０】
このように、触媒５３の劣化度Dcatが閾値劣化度Dcatthよりも大きいとき（触媒劣化フラグXDCATの値が「１」であるとき）、増大側低下度Dsupが減少側低下度Dsdownよりも大きければ（増大側応答性低下フラグXDUPの値が「１」であれば）、非対称低下度Dsasymが大きいほど減少側閾値DIFdownthが小さくされる。さらに、このとき、減少側低下度Dsdownが増大側低下度Dsupよりも大きければ（減少側応答性低下フラグXDDOWNの値が「１」であれば）、非対称低下度Dsasymが大きいほど増大側閾値DIFupthが大きくされる。加えて、増大側低下度Dsupと減少側低下度Dsdownとが同一であれば（増大側応答性低下フラグXDUPの値および減少側応答性低下フラグXDDOWNの値の双方が「０」であれば）、増大側閾値DIFupthは増大側基準閾値DIFuprefに維持され、減少側閾値DIFdownthは減少側基準閾値DIFdownrefに維持される。
【０３７１】
次いで、ＣＰＵ８１は、所定のタイミングにて図１８のルーチンを実行すると、サブフィードバック制御条件が成立すれば、ステップ１８３０（図１９のサブルーチン）にて比例項SPおよび微分項SDを算出する。このとき、ＣＰＵ８１は、上述したように決定された増大側閾値DIFupthおよび減少側閾値DIFdownthを用いて、比例項SPおよび微分項SDを算出する（図１９のステップ１９６０を参照。）。そして、ＣＰＵ８１は、ステップ１８４０にて、それら比例項SPおよび微分項SDに基づいてサブフィードバック量Vafsfbを算出する。
【０３７２】
さらに、ＣＰＵ８１は、所定のタイミングにて図１６および図１７のルーチンを実行することにより、上述したように算出されたサブフィードバック量Vafsfbが適用されたメインフィードバック量DFiを用いて最終燃料噴射量Fiを補正する。これにより、触媒導入ガスの空燃比（触媒上流側空燃比abyfs）が制御される。
【０３７３】
以上、説明したように、第２装置は、触媒５３の劣化度Dcat、下流側酸素濃度センサ７７の出力応答性の低下度（増大側低下度Dsupおよび減少側低下度Dsdown）、および、下流側酸素濃度センサ７７の非対称低下度Dsasymに基づき、増大側閾値DIFupthおよび減少側閾値DIFdownthを設定する。さらに、第２装置は、第１装置と同様、そのように設定された増大側閾値DIFupthおよび減少側閾値DIFdownthを用いて、触媒５３の酸素吸蔵量OSAがゼロまたは最大酸素吸蔵量Cmaxに達することを避けるように、触媒導入ガスの空燃比（触媒上流側空燃比abyfs）を制御する。したがって、第２装置は、下流側酸素濃度センサ７７の出力応答性が低下した場合において触媒導入ガスの空燃比をさらに適切に制御することができる。
【０３７４】
＜実施形態の総括＞
以上、説明したように、第１装置および第２装置は、
触媒５３と、
触媒排出ガスの酸素濃度（触媒下流側空燃比oxs）に応じた値Voxsを出力する酸素濃度センサ７７であって、前記触媒排出ガスの酸素濃度oxsが理論空燃比の混合気が燃焼したときに生じる排ガスの酸素濃度である基準酸素濃度stoichからリッチ側に向けて離れるほど該酸素濃度センサ７７の出力値Voxsがより増大し、前記触媒排出ガスの酸素濃度oxsが前記基準酸素濃度stoichからリーン側に向けて離れるほど該酸素濃度センサ７７の出力値Voxsがより減少する酸素濃度センサ（例えば、図３を参照。）と、
を備えた内燃機関１０に適用される。
【０３７５】
さらに、第１装置および第２装置は、
触媒導入ガスの酸素濃度（触媒上流側空燃比abyfs）を変更するように前記内燃機関１０に供給される混合気の空燃比を制御する空燃比制御手段であって、前記酸素濃度センサ７７の出力値Voxsが増大しており且つ前記酸素濃度センサ７７の出力値の変化率DIFVoxsが増大側閾値DIFupthよりも大きい場合には前記触媒導入ガスの酸素濃度abyfsが前記基準酸素濃度stoichよりもリーン側の酸素濃度となるように前記空燃比を制御し、前記酸素濃度センサ７７の出力値Voxsが減少しており且つ前記酸素濃度センサの出力値の変化率DIFVoxsが減少側閾値DIFdownthよりも小さい場合には前記触媒導入ガスの酸素濃度abyfsが前記基準酸素濃度stoichよりもリッチ側の酸素濃度となるように前記空燃比を制御する空燃比制御手段（図１６〜図１９のルーチンを参照。）、を備える。
【０３７６】
第１装置および第２装置において、前記空燃比制御手段は、
前記触媒５３の劣化度Dcatが所定の閾値劣化度Dcatth以下である場合、
前記酸素濃度センサ７７の出力値Voxsが増大するときの前記酸素濃度センサ７７の出力応答性である増大側応答性の低下度Dsupが前記酸素濃度センサ７７の出力値Voxsが減少するときの前記酸素濃度センサ７７の出力応答性である減少側応答性の低下度Dsdownよりも大きければ前記増大側閾値DIFupthを小さくし、前記減少側応答性の低下度Dsdownが前記増大側応答性の低下度Dsupよりも大きければ前記減少側閾値DIFdownthを大きくする、ように構成されている（例えば、図１４のルーチンを参照。）。
【０３７７】
また、第１装置および第２装置において、前記空燃比制御手段は、
前記触媒５３の劣化度Dcatが前記閾値劣化度Dcatthよりも大きい場合、
前記増大側応答性の低下度Dsupが前記減少側応答性の低下度Dsdownよりも大きければ前記減少側閾値DIFdownthを小さくし、前記減少側応答性の低下度Dsdownが前記増大側応答性の低下度Dsupよりも大きければ前記増大側閾値DIFupthを大きくする、ように構成されている（例えば、図１５のルーチンを参照。）。
【０３７８】
さらに、第１装置および第２装置において、前記空燃比制御手段は、
前記増大側応答性の低下度Dsupが実質的にゼロであるときに前記増大側閾値DIFupthを増大側基準閾値DIFuprefに設定し（例えば、図１４のステップ１４１０）、かつ、前記減少側応答性の低下度Dsdownが実質的にゼロであるときに前記減少側閾値DIFdownthを減少側基準閾値DIFdownrefに設定する、ように構成されている（例えば、図１４のステップ１４２０）。
【０３７９】
また、第１装置および第２装置において、前記空燃比制御装置は、
前記増大側閾値DIFupthを小さくする場合に該増大側閾値DIFupthを前記増大側基準閾値DIFuprefよりも小さくし（例えば、図１４のステップ１４５０）、前記減少側閾値DIFdownthを大きくする場合に該減少側閾値DIFdownthを前記減少側基準閾値DIFdownrefよりも大きくし（例えば、図１４のステップ１４７０）、前記減少側閾値DIFdownthを小さくする場合に該減少側閾値DIFdownthを前記減少側基準閾値DIFdownrefよりも小さくし（例えば、図１５のステップ１５５０）、前記増大側閾値DIFupthを大きくする場合に該増大側閾値DIFupthを前記増大側基準閾値DIFuprefよりも大きくする（例えば、図１５のステップ１５７０）、ように構成されている。
【０３８０】
さらに、第２装置において、前記空燃比制御手段は、
前記触媒５３の劣化度Dcatが前記閾値劣化度Dcatth以下である場合、
前記増大側応答性の低下度Dsupが前記減少側応答性の低下度Dsdownよりも大きければ前記増大側応答性の低下度Dsupと前記減少側応答性の低下度Dsdownとの差の絶対値である非対称低下度Dsasymが大きいほど前記増大側閾値DIFupthを小さくし（図１０のステップ２０３５）、前記減少側応答性の低下度Dsdownが前記増大側応答性の低下度Dsupよりも大きければ前記非対称低下度Dsasymが大きいほど前記減少側閾値DIFdownthを大きくする（図２０のステップ２０５０）、ように構成されている。
【０３８１】
また、第２装置において、前記空燃比制御装置は、
前記触媒５３の劣化度Dcatが前記閾値劣化度Dcatthよりも大きい場合、
前記増大側応答性の低下度Dsupが前記減少側応答性の低下度Dsdownよりも大きければ前記非対称低下度Dsasymが大きいほど前記減少側閾値DIFdownthを小さくし（図２１のステップ２１３５）、前記減少側応答性の低下度Dsdownが前記増大側応答性の低下度Dsupよりも大きければ前記非対称低下度Dsasymが大きいほど前記増大側閾値DIFupthを大きくする（図２１のステップ２１５０）、ように構成されている。
【０３８２】
さらに、第１装置および第２装置において、前記空燃比制御手段は、
前記増大側応答性として、前記酸素濃度センサ７７の出力値Voxsが増大するときの前記酸素濃度センサ７７の応答時定数である増大側応答時定数TCupを採用し、
前記減少側応答性として、前記酸素濃度センサ７７の出力値Voxsが減少するときの前記酸素濃度センサ７７の応答時定数である減少側応答時定数TCdownを採用する、ように構成されている（図６、および、図１３のステップ１３１０）。
【０３８３】
本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。
【０３８４】
例えば、第１装置および第２装置においては、酸素濃度センサの出力応答性の低下度などに基づき、増大側閾値DIFupthおよび減少側閾値DIFdownthの「一方のみ」が変更（増大または減少）されるようになっている。しかし、本発明の制御装置は、これら閾値の「双方」が増大または減少されるように構成され得る。
【０３８５】
具体的に述べると、例えば、本発明の制御装置は、増大側閾値DIFupthおよび減少側閾値DIFdownthの「一方」の変更量が所定の上限量（ガード量）に達した場合、その「一方」の変更量を同上限量に維持しながら、さらに「他方」を変更するように構成され得る。
【０３８６】
さらに、第１装置および第２装置においては、下流側酸素濃度センサ７７の出力応答性の低下度の大きさにかかわらず、増大側低下度Dsupと減少側低下度Dsdownとが一致しない場合（図１３のステップ１３２５またはステップ１３３５にて「Ｙｅｓ」と判定される場合）、増大側閾値DIFupthまたは減少側閾値DIFdownthが変更（増大または減少）されるようになっている。しかし、本発明の制御装置は、増大側低下度Dsupおよび減少側低下度Dsdownの少なくとも一方が所定の閾値よりも大きくなった場合に限り、上記変更を行うように構成され得る。
【０３８７】
加えて、第１装置および第２装置においては、下流側酸素濃度センサ７７として濃淡電池型の酸素濃度センサが採用されている。しかし、本発明の制御装置においては、下流側酸素濃度センサ７７として他の酸素濃度センサ（例えば、限界電流式の酸素濃度センサ）が採用され得る。
【０３８８】
さらに、第１装置および第２装置は、三元触媒を備えた機関（火花点火式機関）に適用されている。しかし、本発明の制御装置は、NOx吸蔵還元触媒を備えた機関（例えば、ディーゼル機関）に適用され得る。
【０３８９】
さらに、第１装置および第２装置は、１のみの触媒を備えている。しかし、本発明の制御装置は、複数の触媒を備える機関に適用され得る。
【符号の説明】
【０３９０】
１０…内燃機関、２５…燃焼室、３４…インジェクタ、５３…触媒、７６…上流側酸素濃度センサ、７７…下流側酸素濃度センサ、８０…電子制御装置
【図１】
2012087670.tif 000003
【図２】
2012087670.tif 000004
【図３】
2012087670.tif 000005
【図４】
2012087670.tif 000006
【図５】
2012087670.tif 000007
【図６】
2012087670.tif 000008
【図７】
2012087670.tif 000009
【図８】
2012087670.tif 000010
【図９】
2012087670.tif 000011
【図１０】
2012087670.tif 000012
【図１１】
2012087670.tif 000013
【図１２】
2012087670.tif 000014
【図１３】
2012087670.tif 000015
【図１４】
2012087670.tif 000016
【図１５】
2012087670.tif 000017
【図１６】
2012087670.tif 000018
【図１７】
2012087670.tif 000019
【図１８】
2012087670.tif 000020
【図１９】
2012087670.tif 000021
【図２０】
2012087670.tif 000022
【図２１】
2012087670.tif 000023