(57)【要約】【課題】精度の良い触媒劣化判定を高頻度にて行い得る装置を提供すること。【解決手段】この触媒劣化判定装置は、排気管５２に備えられた第１触媒５３の最大酸素吸蔵量を算出するとともに、その算出期間における触媒温度（算出期間中触媒温度）を算出する。そして、算出期間中触媒温度が所定の温度領域（学習温度領域）にあるときに得られた最大酸素吸蔵量に基いて、その時点における第１触媒の特性値を決定する。また、本装置は、算出期間中触媒温度が学習温度領域以外の温度領域にあるときに最大酸素吸蔵量が算出された場合、同最大酸素吸蔵量を算出したときの算出期間中触媒温度と、前記特性値とに基いて、同算出された最大酸素吸蔵量を、算出期間中触媒温度が所定の温度（規格化温度）にあった場合に得られたであろう最大酸素吸蔵量に補正（規格化）し、その規格化後最大酸素吸蔵量と触媒劣化判定値との比較結果に基いて触媒劣化判定を行う。【選択図】　図１
2004028029.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に設けられた触媒が劣化したか否かを判定する触媒劣化判定装置であって、
前記触媒の劣化の程度に応じて変化する劣化指標値を取得する劣化指標値取得手段と、
前記取得された劣化指標値を同劣化指標値に影響を与える因子が所定の値であるときに取得された劣化指標値である規格化後指標値となるように同因子に基いて補正する指標値規格化手段と、
前記規格化後指標値が触媒劣化判定値より大きいか否かについての比較結果に基いて前記触媒が劣化しているか否かを判定する触媒劣化判定手段と、
を備えた触媒劣化判定装置。
【請求項２】
請求項１に記載の触媒劣化判定装置において、前記触媒の劣化の程度に応じて変化する劣化指標値は前記触媒の最大酸素吸蔵量である触媒劣化判定装置。
【請求項３】
請求項２に記載の触媒劣化判定装置において、前記因子は前記触媒の温度である触媒劣化判定装置。
【請求項４】
内燃機関の排気通路に設けられた触媒が劣化したか否かを判定する触媒劣化判定装置であって、
前記触媒の最大酸素吸蔵量を算出する最大酸素吸蔵量算出手段と、
前記最大酸素吸蔵量を算出した期間の前記触媒の温度である算出期間中触媒温度を取得する算出期間中触媒温度取得手段と、
前記触媒の温度と同触媒の最大酸素吸蔵量との関係を同触媒の劣化程度毎に予め記憶するとともにに同関係の各々に対応した劣化程度を特定する特性値を同関係に対応して予め記憶した記憶手段と、
前記最大酸素吸蔵量が算出された場合に同最大酸素吸蔵量の算出期間中触媒温度が所定温度領域内にあるとき、同最大酸素吸蔵量と同算出期間中触媒温度と前記記憶手段に記憶された前記関係及び前記特性値とに基いて同最大酸素吸蔵量が算出された時点での前記触媒の特性値を決定する特性値決定手段と、
前記最大酸素吸蔵量が新たに算出された場合に同新たに算出された最大酸素吸蔵量の算出期間中触媒温度が前記所定温度領域内にないとき、同新たに算出された最大酸素吸蔵量を、前記触媒が所定の規格化温度であるときの最大酸素吸蔵量である規格化後最大酸素吸蔵量となるように、前記決定された特性値と同規格化温度と同新たに算出された最大酸素吸蔵量の算出期間中触媒温度とに基いて補正する規格化手段と、
前記規格化手段による補正が適正であるか否かを判定する規格化適正判定手段と、
前記規格化適正判定手段により前記補正が適正であると判定されたとき前記規格化後最大酸素吸蔵量が触媒劣化判定値より大きいか否かについての判定結果に基いて前記触媒が劣化しているか否かを判定する触媒劣化判定手段と、
を備えた触媒劣化判定装置。
【請求項５】
請求項４に記載の触媒劣化判定装置において、
前記所定温度領域は、同温度領域内で算出される前記触媒の最大酸素吸蔵量が計測誤差により変動したとしても、劣化していると判定すべき触媒の最大酸素吸蔵量と劣化していないと判定すべき触媒の最大酸素吸蔵量とが同じ値となることがない領域に設定され、前記規格化温度は同所定温度領域内の温度であるように設定された触媒劣化判定装置。
【請求項６】
請求項４又は請求項５に記載の触媒劣化判定装置において、
前記記憶手段が記憶する前記特性値は、前記触媒の温度と同触媒の最大酸素吸蔵量との関係を一次式で表した場合の同一次式の傾きである触媒劣化判定装置。
【請求項７】
請求項６に記載の触媒劣化判定装置において、
前記規格化手段は、前記新たに最大酸素吸蔵量が算出されたときの算出期間中触媒温度と前記規格化温度との差に前記決定された特性値である一次式の傾きを乗じることにより補正量を求めるとともに、同補正量を用いて同新たに算出された最大酸素吸蔵量を補正することにより前記規格化後最大酸素吸蔵量を求めるように構成され、
前記規格化適正判定手段は、前記規格化後最大酸素吸蔵量を求める際に使用された前記新たに算出された最大酸素吸蔵量に対する前記補正量の比、又は同新たに算出された最大酸素吸蔵量に対する前記決定された傾きの比に基いて前記補正が適正であるか否かを判定するように構成された触媒劣化判定装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の排気通路に配設された触媒が劣化したか否かを判定するための触媒劣化判定装置に関する。
【０００２】
【従来の技術】
従来より、内燃機関の排気ガスを浄化するための三元触媒（本明細書においては、単に「触媒」と云うこともある。）が、同機関の排気通路に配設されている。この触媒は、酸素を貯蔵（吸蔵）するＯ２ストレージ機能（酸素貯蔵機能、酸素吸蔵機能）を有していて、流入するガスの空燃比がリッチである場合には貯蔵している酸素によりＨＣ，ＣＯ等の未燃成分を酸化するとともに、流入するガスの空燃比がリーンである場合には窒素酸化物（ＮＯｘ）を還元して同ＮＯｘから奪った酸素を内部に貯蔵する。これにより、三元触媒は、機関の空燃比が理論空燃比から偏移した場合でも、未燃成分や窒素酸化物を効率よく浄化することができる。従って、三元触媒が貯蔵し得る酸素量（以下、「酸素吸蔵量」と称呼する。）の最大値（以下、「最大酸素吸蔵量」と称呼する。）が大きいほど、三元触媒の浄化能力は高くなる。
【０００３】
一方、触媒は燃料中に含まれる鉛や硫黄等による被毒、或いは触媒に加わる熱により劣化する。この場合、前記被毒による劣化が進行するほど前記最大酸素吸蔵量は低下し、熱による劣化が進行するほど同一空燃比に対する有害排気成分の浄化効率が低下することが知られている。また、前記被毒による劣化の進行度合と熱による劣化の進行度合とは比較的強い相関があることも知られている。従って、図２５に示したように、触媒の最大酸素吸蔵量Ｃｍａｘを算出・取得できれば、同取得した最大酸素吸蔵量Ｃｍａｘに基いて同触媒が劣化したか否かを判定することができる。換言すると、最大酸素吸蔵量Ｃｍａｘは、触媒の劣化の程度に応じて変化する劣化指標値である。
【０００４】
特開平５−１３３２６４号公報に開示された触媒劣化度検出装置は、このような知見に基いて触媒劣化度を検出するものであって、触媒上流の空燃比を理論空燃比よりもリーン側の予め定められた空燃比に、又は理論空燃比よりもリッチ側の予め定められた空燃比に切り換え、その空燃比の切り換え後、触媒下流の排気ガス通路内に配置された空燃比センサにより検出される空燃比が空燃比切り換え後の上記予め定められた空燃比となるまでの間に上記触媒を流通する触媒流通ガス量を求め、理論空燃比に対する上記空燃比切り換え後の予め定められた空燃比の偏差及び上記触媒流通ガス量から触媒に吸着保持される酸素の絶対量（即ち、最大酸素吸蔵量Ｃｍａｘ）を算出し、この酸素の絶対量から触媒の劣化度を検出するようになっている。
【０００５】
【発明が解決しようとする課題】
しかしながら、図２６に示したように、最大酸素吸蔵量Ｃｍａｘは触媒温度Ｔｅｍｐｃ等の最大酸素吸蔵量に影響を及ぼす因子によっても変化するので、例えば、同触媒温度Ｔｅｍｐｃを考慮することなく求めた最大酸素吸蔵量Ｃｍａｘが触媒劣化判定値より大きいか否かの比較結果に基いて同触媒が劣化しているか否かを判定すると、その判定精度が良好でないという問題がある。
【０００６】
【本発明の概要】
本発明は、上述した課題に対処するためになされたものであって、その特徴は、内燃機関の排気通路に設けられた触媒が劣化したか否かを判定する触媒劣化判定装置が、前記触媒の劣化の程度に応じて変化する劣化指標値を取得する劣化指標値取得手段と、前記取得された劣化指標値を同劣化指標値に影響を与える因子が所定の値であるときに取得された劣化指標値である規格化後指標値となるように同因子に基いて補正する指標値規格化手段と、前記規格化後指標値が触媒劣化判定値より大きいか否かについての比較結果に基いて前記触媒が劣化しているか否かを判定する触媒劣化判定手段と、を備えたことにある。
【０００７】
これによれば、劣化指標値取得手段により触媒の劣化の程度に応じて変化する劣化指標値が取得される。この劣化指標値は、例えば、触媒の最大酸素吸蔵量、又は、触媒に流入する空燃比を理論空燃比にフィードバック制御している期間の触媒の上流側空燃比センサの出力が描く軌跡長と同触媒の下流側空燃比センサの出力が描く軌跡長との比（軌跡比）であり、これらに限定されない。
【０００８】
そして、この触媒の劣化指標値は、例えば、同劣化指標値を求めた際の同触媒の温度、或いは同劣化指標値を求めた際の同触媒に流入したガスの空燃比等である「劣化指標値に影響を与える因子」に基いて補正され、その結果、同因子が所定の値であるときに取得された劣化指標値、即ち「規格化後指標値」が求められ、この規格化後指標値が触媒劣化判定値より大きいか否かの比較結果に基いて触媒が劣化したか否かが判定される。
【０００９】
従って、触媒の劣化程度が同一であれば、劣化指標値を取得したときの前記因子の値が異なっていても、同一の規格化後指標値が得られ、その規格化後指標値と触媒劣化判定値との比較に基いて触媒の劣化判定が行われるので、前記因子の影響を受けて触媒が劣化しているか否かについての判定を誤ることを回避することが可能となる。また、前記因子が前記所定の値と大きく異なる場合に取得される劣化指標値をも触媒劣化判定値との比較による触媒劣化判定に使用できるので、触媒劣化判定の頻度を増大することができる。
【００１０】
本発明の他の特徴は、内燃機関の排気通路に設けられた触媒が劣化したか否かを判定する触媒劣化判定装置が、前記触媒の最大酸素吸蔵量を算出する最大酸素吸蔵量算出手段と、前記最大酸素吸蔵量を算出した期間の前記触媒の温度である算出期間中触媒温度を取得する算出期間中触媒温度取得手段と、前記触媒の温度と同触媒の最大酸素吸蔵量との関係を同触媒の劣化程度毎に予め記憶するとともにに同劣化程度を特定する特性値を予め記憶した記憶手段と、前記最大酸素吸蔵量が算出された場合に同最大酸素吸蔵量の算出期間中触媒温度が所定温度領域内にあるとき、同最大酸素吸蔵量と同算出期間中触媒温度と前記記憶手段に記憶された前記関係及び前記特性値とに基いて同最大酸素吸蔵量が算出された時点での前記触媒の特性値を決定する特性値決定手段と、前記最大酸素吸蔵量が新たに算出された場合に同新たに算出された最大酸素吸蔵量の算出期間中触媒温度が前記所定温度領域内にないとき、同新たに算出された最大酸素吸蔵量を、前記触媒が所定の規格化温度であるときの最大酸素吸蔵量である規格化後最大酸素吸蔵量となるように、前記決定された特性値と同規格化温度と同新たに算出された最大酸素吸蔵量の算出期間中触媒温度とに基いて補正する規格化手段と、前記規格化手段による補正が適正であるか否かを判定する規格化適正判定手段と、前記規格化適正判定手段により前記補正が適正であると判定されたとき前記規格化後最大酸素吸蔵量が触媒劣化判定値より大きいか否かについての判定結果に基いて前記触媒が劣化しているか否かを判定する触媒劣化判定手段と、を備えたことにある。
【００１１】
これによれば、最大酸素吸蔵量が算出されるともに、同最大酸素吸蔵量を算出した期間の触媒の温度（即ち、算出期間中触媒温度）が取得される。一方、記憶手段には、前記触媒の温度と同触媒の最大酸素吸蔵量との関係が同触媒の劣化程度毎に予め記憶されるとともに、同関係の各々に対応した劣化程度を特定する特性値が同関係に対応されて予め記憶されている。
【００１２】
そして、最大酸素吸蔵量が算出された場合に同最大酸素吸蔵量の算出期間中触媒温度が所定温度領域内にあるとき、同最大酸素吸蔵量と同算出期間中触媒温度と前記記憶手段に記憶された前記関係及び前記特性値とに基いて同最大酸素吸蔵量が算出された時点での前記触媒の特性値が決定される。
【００１３】
また、前記最大酸素吸蔵量が新たに算出された場合に同新たに算出された最大酸素吸蔵量の算出期間中触媒温度が前記所定温度領域内にないとき、同新たに算出された最大酸素吸蔵量が前記決定された特性値と所定の規格化温度と同新たに算出された最大酸素吸蔵量の算出期間中触媒温度とに基いて補正され、前記触媒が所定の規格化温度であるときの最大酸素吸蔵量である規格化後最大酸素吸蔵量に変換される。同時に、かかる規格化後最大酸素吸蔵量への補正（変換）が適正であるか否かが判定される。
【００１４】
そして、前記補正が適正であると判定されたとき、前記規格化後最大酸素吸蔵が所定の触媒劣化判定値より大きいか否かについての比較結果に基いて、前記触媒の劣化判定が行われる。
【００１５】
従って、触媒の温度が規格化温度とは異なる温度であるときに算出された最大酸素吸蔵量が、同規格化温度において算出される最大酸素吸蔵量と同等である規格化後最大酸素吸蔵量に変換され、その規格化後最大酸素吸蔵量と、その規格化温度において劣化と判定すべき触媒のとり得る最大酸素吸蔵量と劣化していないと判定すべき触媒のとり得る最大酸素吸蔵量との間に設定された触媒劣化判定値との比較結果に基いて触媒劣化判定がなされるから、最大酸素吸蔵量を算出したときの触媒温度に拘らず触媒劣化の判定精度を高めることができる。
【００１６】
また、規格化後最大酸素吸蔵量を得る際に行われる補正が適正であるか否か、換言すると、前記特性値が現在の触媒の状態に対して適切であるか否かが判定され、同補正が適正であると判定されたときに規格化後最大酸素吸蔵量に基く触媒劣化判定が行われるから、触媒の劣化が進行しているにも関わらず特性値が更新されず、そのために規格化後最大酸素吸蔵量が規格化温度での真の最大酸素吸蔵量に対して過大な値となった場合のように、劣化していると判定すべき触媒が劣化していないと判定されてしまうことを回避することができる。
【００１７】
また、最大酸素吸蔵量が前記所定の温度領域外で得られた場合にも、前記補正が適正であると判定される限り規格化後最大酸素吸蔵量に基く触媒劣化判定が行われるから、同触媒が劣化していないとの判定結果を新たに得ることが可能となり、同所定の温度領域内で得られた最大酸素吸蔵量のみに基いて触媒劣化判定を行うものに比べて、触媒劣化判定の頻度を高めることができる。
【００１８】
この場合、前記所定温度領域は、同温度領域内で算出される前記触媒の最大酸素吸蔵量が計測誤差により変動したとしても、劣化していると判定すべき触媒の最大酸素吸蔵量と劣化していないと判定すべき触媒の最大酸素吸蔵量とが同じ値となることがない領域に設定され、前記規格化温度は同所定温度領域内の温度であるように設定されることが好適である。
【００１９】
これによれば、最大酸素吸蔵量の計測誤差が存在していても、触媒劣化程度が異なるにも関わらず同最大酸素吸蔵量が同じ値とならないので、そのような最大酸素吸蔵量に基づいて決定される前記特性値が、確実に触媒の劣化程度に応じた値となる。また、規格化後最大酸素吸蔵量が、劣化している触媒と劣化していない触媒とで同一の値となることが回避される。従って、触媒劣化判定の精度を一層高めることができる。
【００２０】
また、触媒の温度と最大酸素吸蔵量との関係は、触媒の劣化程度に関わらず一次式（直線）により精度良く近似できるので、前記記憶手段が記憶する特性値は、前記触媒の温度と前記触媒の最大酸素吸蔵量との関係を一次式で表わした場合の直線の傾きとすることができる。
【００２１】
この場合、前記規格化手段は、前記新たに最大酸素吸蔵量が算出されたときの算出期間中触媒温度と前記規格化温度との差に前記決定された特性値である一次式の傾きを乗じることにより補正量を求めるとともに、同補正量を用いて同新たに算出された最大酸素吸蔵量を補正することにより前記規格化後最大酸素吸蔵量を求めるように構成され、前記規格化適正判定手段は、前記規格化後最大酸素吸蔵量を求める際に使用された前記新たに算出された最大酸素吸蔵量に対する前記補正量の比、又は同新たに算出された最大酸素吸蔵量に対する前記決定された傾きの比に基いて前記補正が適正であるか否かを判定するように構成されることが好適である。
【００２２】
このように、最大酸素吸蔵量と算出期間中触媒温度との関係を一次式により近似し、その近似に従って規格化のための補正量を求め、求めた補正量により規格化後最大酸素吸蔵量を求めれば、簡単な演算により同規格化後最大酸素吸蔵量を求めることができる。また、このような場合、前記新たに算出された最大酸素吸蔵量に対する前記補正量の比、又は同新たに算出された最大酸素吸蔵量に対する前記決定された傾きの比は、前記補正が適正である限り所定の値を超えないことが実験的に確かめられているから、同比を用いて同補正が適正であるか否かを簡単に判定することができる。
【００２３】
【発明の実施の形態】
以下、本発明による触媒劣化判定装置を含む内燃機関の空燃比制御装置の実施形態について図面を参照しつつ説明する。図１は、この空燃比制御装置を火花点火式多気筒（４気筒）内燃機関１０に適用したシステムの概略構成を示している。
【００２４】
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排気ガスを外部に放出するための排気系統５０とを含んでいる。
【００２５】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３、及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００２６】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８、及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。
【００２７】
吸気系統４０は、吸気ポート３１に連通し同吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットル弁４３、スロットル弁駆動手段を構成するＤＣモータからなるスロットル弁アクチュエータ４３ａ、スワールコントロールバルブ（以下、「ＳＣＶ」と称呼する。）４４、及びＤＣモータからなるＳＣＶアクチュエータ４４ａを備えている。
【００２８】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１に接続されたエキゾーストパイプ（排気管）５２、エキゾーストパイプ５２に配設（介装）された上流側の三元触媒５３（上流側触媒コンバータ、又はスタート・キャタリティック・コンバータとも云うが、以下「第１触媒５３」と称呼する。）、及びこの第１触媒５３の下流のエキゾーストパイプ５２に配設（介装）された下流側の三元触媒５４（車両のフロア下方に配設されるため、アンダ・フロア・キャタリティック・コンバータとも云うが、以下「第２触媒５４」と称呼する。）を備えている。排気ポート３４、エキゾーストマニホールド５１、及びエキゾーストパイプ５２は、排気通路を構成している。
【００２９】
一方、このシステムは、熱線式エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、水温センサ６５、第１触媒５３の上流の排気通路に配設された空燃比センサ６６（以下、「上流側空燃比センサ６６」と称呼する。）、第１触媒５３の下流であって第２触媒５４の上流の排気通路に配設された空燃比センサ６７（以下、「下流側空燃比センサ６７」と称呼する。）、及びアクセル開度センサ６８を備えている。
【００３０】
熱線式エアフローメータ６１は、吸気管４１内を流れる吸入空気の単位時間あたりの質量流量に応じた電圧Ｖｇを出力するようになっている。かかるエアフローメータ６１の出力Ｖｇと、計測された吸入空気量（流量）Ｇａとの関係は、図２に示したとおりである。スロットルポジションセンサ６２は、スロットル弁４３の開度を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。カムポジションセンサ６３は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度ＮＥを表す。水温センサ６５は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。
【００３１】
上流側空燃比センサ６６は、限界電流式の酸素濃度センサであり、図３に示したように、空燃比Ａ／Ｆに応じた電流を出力し、この電流に応じた電圧ｖａｂｙｆｓを出力するようになっている。図３から明らかなように、上流側空燃比センサ６６によれば、広範囲にわたる空燃比Ａ／Ｆを精度良く検出することができる。下流側空燃比センサ６７は、起電力式（濃淡電池式）の酸素濃度センサであり、図４に示したように、理論空燃比において急変する電圧Ｖｏｘｓを出力するようになっている。より具体的に述べると、下流側空燃比センサ６７は、空燃比が理論空燃比よりもリーンのときは略０．１（Ｖ）、空燃比が理論空燃比よりもリッチのときは略０．９（Ｖ）、及び空燃比が理論空燃比のときは略０．５（Ｖ）の電圧を出力するようになっている。アクセル開度センサ６８は、運転者によって操作されるアクセルペダル８１の操作量を検出し、同アクセルペダル８１の操作量Ａｃｃｐを表す信号を出力するようになっている。
【００３２】
電気制御装置７０は、互いにバスで接続されたＣＰＵ７１、ＣＰＵ７１が実行するルーチン（プログラム）、テーブル（ルックアップテーブル、マップ）、及び定数等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ７４、並びにＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。インターフェース７５は、前記センサ６１〜６８と接続され、ＣＰＵ７１にセンサ６１〜６８からの信号を供給するとともに、同ＣＰＵ７１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９、スロットル弁アクチュエータ４３ａ、及びＳＣＶアクチュエータ４４ａに駆動信号を送出するようになっている。
【００３３】
（通常時の制御の概要）
次に、上記のように構成された空燃比制御装置が行う制御の概要について説明する。
【００３４】
第１触媒５３（第２触媒５４も同様である。）は、同第１触媒５３に流入するガスの空燃比が理論空燃比であるときに、ＨＣ，ＣＯを酸化するとともにＮＯｘを還元し、これらの有害成分を高い効率で浄化する。また、第１触媒５３は、酸素を貯蔵（吸蔵）する機能（酸素貯蔵機能）を有し、この酸素貯蔵機能により、空燃比が理論空燃比からある程度まで偏移したとしても、ＨＣ，ＣＯ、及びＮＯｘを浄化することができる。即ち、機関の空燃比がリーンとなって第１触媒５３に流入するガスにＮＯｘが多量に含まれると、第１触媒５３はＮＯｘから酸素分子を奪って同酸素分子を吸蔵するとともに同ＮＯｘを還元し、これによりＮＯｘを浄化する。また、機関の空燃比がリッチになって第１触媒５３に流入するガスにＨＣ，ＣＯが多量に含まれると、三元触媒はこれらに吸蔵している酸素分子を与えて酸化し、これによりＨＣ，ＣＯを浄化する。
【００３５】
従って、第１触媒５３が連続的に流入する多量のＨＣ，ＣＯを効率的に浄化するためには、同第１触媒５３が酸素を多量に貯蔵していなければならず、逆に連続的に流入する多量のＮＯｘを効率的に浄化するためには、同第１触媒５３が酸素を十分に貯蔵し得る状態になければならないことになる。以上のことから、第１触媒５３の浄化能力は、同第１触媒５３が貯蔵し得る最大の酸素量（最大酸素吸蔵量）に依存する。
【００３６】
一方、第１触媒５３のような三元触媒は燃料中に含まれる鉛や硫黄等による被毒、或いは触媒に加わる熱により劣化し、これに伴い最大酸素吸蔵量が次第に低下してくる。このように最大酸素吸蔵量が低下した場合であっても、エミッションを良好に維持するには、第１触媒５３から排出されるガスの空燃比（従って、第１触媒５３に流入するガスの平均空燃比）が、理論空燃比に極めて近い状態となるように制御する必要がある。
【００３７】
そこで、本実施形態の空燃比制御装置は、機関１０の排気に関する状態量の一つである下流側空燃比センサ６７の出力が理論空燃比に略相当する目標値Ｖｏｘｓｒｅｆとなるように、下流側空燃比センサ６７の出力Ｖｏｘｓ（即ち、第１触媒下流の空燃比）に応じて機関１０に供給される混合気の空燃比（即ち、機関の空燃比）を制御する。
【００３８】
より具体的に述べると、空燃比制御装置は、下流側空燃比センサ６７の出力が理論空燃比よりリーンの空燃比を表す値となると、下流側空燃比センサ６７の出力Ｖｏｘｓと理論空燃比に略相当する目標値Ｖｏｘｓｒｅｆとの偏差を比例・積分処理（ＰＩ処理）してサブフィードバック制御量ｖａｆｓｆｂを求め、同サブフィードバック制御量ｖａｆｓｆｂ分だけ上流側空燃比センサ６６の出力ｖａｂｙｆｓを補正する。これにより、機関の実際の空燃比が、同上流側空燃比センサ６６の検出空燃比よりも見かけ上リーン側であるように設定される。
【００３９】
そして、その補正した見かけ上の空燃比が理論空燃比である目標空燃比ａｂｙｆｒと等しくなるように、機関に供給する燃料量（燃料噴射量）を調整するためのフィードバック制御量ＦＤｉを算出するとともに、機関の一吸気行程における筒内吸入空気量に相当する値Ｍｃを理論空燃比で除した値（即ち、基本燃料噴射量Ｆｂａｓｅ）を前記算出したフィードバック補正量ＦＤｉにより補正し、その補正した燃料噴射量をインジェクタ３９から噴射することで、機関の空燃比のフィードバック制御を実行する。
【００４０】
同様に、下流側空燃比センサ６７の出力が理論空燃比よりリッチの空燃比を表す値となると、下流側空燃比センサ６７の出力Ｖｏｘｓと理論空燃比に略相当する目標値Ｖｏｘｓｒｅｆとの偏差を比例・積分処理（ＰＩ処理）してサブフィードバック制御量ｖａｆｓｆｂを求め、同サブフィードバック制御量ｖａｆｓｆｂ分だけ上流側空燃比センサ６６の出力ｖａｂｙｆｓを補正し、これにより、機関の実際の空燃比が、同上流側空燃比センサ６６の検出空燃比よりも見かけ上リッチ側であるように設定し、その補正した見かけ上の空燃比が理論空燃比である目標空燃比ａｂｙｆｒとなるようにフィードバック制御する。以上により、第１触媒５３の上流の空燃比が理論空燃比と一致するようにフィードバック制御される。
【００４１】
（触媒劣化判定時の制御の概要）
上述したように、触媒が劣化するに従って同触媒の最大酸素吸蔵量は次第に低下してくる。即ち、最大酸素吸蔵量は、触媒の劣化の程度に応じて変化する劣化指標値である。一方、最大酸素吸蔵量は触媒温度によっても変化する。そこで、本空燃比制御装置は、触媒（本例では第１触媒５３）の実最大酸素吸蔵量ＣｍａｘＲを算出・推定し、この実最大酸素吸蔵量ＣｍａｘＲを補正して同触媒が一定の温度（以下、「規格化温度」と称呼する。）であるときに取るであろう最大酸素吸蔵量Ｃｍａｘ（以下、「規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍ」と称呼する。）を求め、同規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍが触媒劣化判定用の閾値（以下、「触媒劣化判定値」とも称呼する。）Ｃｍａｘｔｈより小さいか否かを判定することにより、第１触媒５３が劣化したか否かを判定する。以下、より具体的に説明する。
【００４２】
＜実最大酸素吸蔵量ＣｍａｘＲの求め方＞
先ず、本空燃比制御装置は、図５（Ａ）に示したように、時刻ｔ１にて第１触媒５３の上流のガスの空燃比（即ち、機関に供給される混合気の空燃比）を理論空燃比よりもリーンな所定の設定リーン空燃比ａｂｙｆＬｅａｎに制御する。
【００４３】
これにより、第１触媒５３にリーンな空燃比のガスが流入するから、図５（Ｃ）に示したように、第１触媒５３の酸素吸蔵量ＯＳＡは次第に増大し、時刻ｔ２にて最大酸素吸蔵量Ｃｍａｘ２に達する。この結果、時刻ｔ２にて、第１触媒５３から酸素を含むガス（リーン空燃比のガス）が流出し始め、図５（Ｂ）に示したように、下流側空燃比センサ６７の出力Ｖｏｘｓは理論空燃比よりリッチを示す値から理論空燃比よりリーンを示す値に変化する。この時刻ｔ１〜ｔ２間の作動を第１モード（Ｍｏｄｅ＝１）における作動と呼ぶ。
【００４４】
時刻ｔ２にて、下流側空燃比センサ６７の出力Ｖｏｘｓがリッチを示す値からリーンを示す値に変化すると、本装置は第１触媒５３の上流のガスの空燃比を理論空燃比よりもリッチな所定の設定リッチ空燃比ａｂｙｆＲｉｃｈに制御する。
【００４５】
この結果、第１触媒５３にリッチな空燃比のガスが流入するため、第１触媒５３の酸素が同第１触媒５３に流入する未燃ＨＣ，ＣＯの酸化のために消費され、第１触媒５３の酸素吸蔵量は最大酸素吸蔵量Ｃｍａｘ２から減少して行く。そして、時刻ｔ３になると、第１触媒５３の酸素吸蔵量は「０」となるから、第１触媒５３からリッチ空燃比のガスが流出し始め、下流側空燃比センサ６７の出力Ｖｏｘｓはリーンを示す値からリッチを示す値に変化する。この時刻ｔ２〜ｔ３間の作動を第２モード（Ｍｏｄｅ＝２）における作動と呼ぶ。
【００４６】
本空燃比制御装置は、かかる時刻ｔ２〜ｔ３間において、以下のようにして第１触媒５３の最大酸素吸蔵量Ｃｍａｘを最大酸素吸蔵量Ｃｍａｘ２として推定する。即ち、第１触媒上流空燃比を設定リッチ空燃比に設定した時刻ｔ２から、下流側空燃比センサ６７の出力Ｖｏｘｓがリッチを示す値に変化する時刻ｔ３までの間、下記数１、及び下記数２に基いて酸素吸蔵量の変化量ΔＯ２を算出するとともにこれを積算し、同時刻ｔ３での積算値を最大酸素吸蔵量Ｃｍａｘ２として算出する。
【００４７】
【数１】
ΔＯ２＝０．２３・ｍｆｒ・（ｓｔｏｉｃｈ　−　ａｂｙｆｓ）
【００４８】
【数２】
Ｃｍａｘ３＝ΣΔＯ２（区間ｔ＝ｔ２〜ｔ３）
【００４９】
上記数１において、値「０．２３」は大気中に含まれる酸素の重量割合である。ｍｆｒは所定時間（計算周期ｔｓａｍｐｌｅ）内の燃料噴射量Ｆｉの合計量であり、ｓｔｏｉｃｈは理論空燃比（例えば、１４．７）である。ａｂｙｆｓは所定時間ｔｓａｍｐｌｅにおいて上流側空燃比センサ６６により検出された空燃比Ａ／Ｆである。なお、ａｂｙｆｓは前記所定時間ｔｓａｍｐｌｅ内の上流側空燃比センサ６６により検出された空燃比Ａ／Ｆの平均値としてもよい。
【００５０】
この数１に示したように、所定時間ｔｓａｍｐｌｅ内の噴射量の合計量ｍｆｒに、検出された空燃比Ａ／Ｆの理論空燃比からの偏移（ｓｔｏｉｃｈ　−　ａｂｙｆｓ）を乗じることで、同所定時間ｔｓａｍｐｌｅにおける空気の不足量が求められ、この空気の不足量に酸素の重量割合を乗じることで同所定時間ｔｓａｍｐｌｅにおける酸素吸蔵量変化量（吸蔵酸素の消費量）ΔＯ２が求められる。そして、数２に示したように、酸素吸蔵量変化量ΔＯ２を時刻ｔ２〜ｔ３に渡って積算することで、第１触媒５３が酸素を最大限貯蔵していた状態から酸素を総べて消費した状態となるまでの酸素消費量、即ち最大酸素吸蔵量Ｃｍａｘ２が推定・算出される。
【００５１】
なお、本実施形態においては、時刻ｔ２〜ｔ３間で第１触媒上流空燃比は一定の設定リッチ空燃比ａｂｙｆＲｉｃｈに制御されるから、この期間で筒内吸入空気量Ｍｃが一定である場合には、時刻ｔ２〜ｔ３までの時間をΔｔ２、その間における単位時間当りの燃料供給量をｍｆｒ２とすれば、上記数１及び上記数２から、最大酸素吸蔵量Ｃｍａｘ２は０．２３・ｍｆｒ２・（ｓｔｏｉｃｈ　−　ａｂｙｆＲｉｃｈ）・Δｔ２として簡単に求めることもできる。
【００５２】
時刻ｔ３にて、下流側空燃比センサ６７の出力がリーンを示す値からリッチを示す値に変化すると、本装置は第１触媒５３の上流空燃比を理論空燃比よりもリーンな前記設定リーン空燃比ａｂｙｆＬｅａｎに制御する。これにより、第１触媒５３にリーンな空燃比のガスが流入する。また、時刻ｔ３の時点においては、第１触媒５３の酸素吸蔵量は「０」となっている。従って、時刻ｔ３以降において、第１触媒５３内の酸素吸蔵量は「０」から増大し続け、時刻ｔ４にて最大酸素吸蔵量Ｃｍａｘ３に達する。この結果、時刻ｔ４にて、第１触媒５３から酸素を含む理論空燃比よりもリーンなガスが流出し始め、下流側空燃比センサ６７の出力Ｖｏｘｓはリッチを示す値からリーンを示す値に変化する。この時刻ｔ３〜ｔ４間の作動を第３モード（Ｍｏｄｅ＝３）における作動と称呼する。
【００５３】
本装置は、かかる時刻ｔ３〜ｔ４間においても、以下のようにして第１触媒５３の最大酸素吸蔵量Ｃｍａｘを最大酸素吸蔵量Ｃｍａｘ３として推定する。即ち、時刻ｔ３において第１触媒５３の酸素吸蔵量は「０」であり、下流側空燃比センサ６７の出力Ｖｏｘｓがリーン空燃比を示す値となった時刻ｔ４では、第１触媒５３の酸素吸蔵量が最大酸素吸蔵量Ｃｍａｘに到達したことを意味するから、時刻ｔ３〜ｔ４までの間、下記数３及び下記数４に基いて酸素吸蔵量の変化量ΔＯ２を算出するとともにこれを積算し、同時刻ｔ４での積算値を最大酸素吸蔵量Ｃｍａｘ３として推定・算出する。
【００５４】
【数３】
ΔＯ２＝０．２３・ｍｆｒ・（ａｂｙｆｓ　−　ｓｔｏｉｃｈ）
【００５５】
【数４】
Ｃｍａｘ５＝ΣΔＯ２（区間ｔ＝ｔ３〜ｔ４）
【００５６】
この数３に示したように、所定時間ｔｓａｍｐｌｅ内の噴射量の合計量ｍｆｒに、空燃比Ａ／Ｆの理論空燃比からの偏移（ａｂｙｆｓ　−　ｓｔｏｉｃｈ）を乗じることで、同所定時間ｔｓａｍｐｌｅにおける空気の過剰量が求められ、この空気の過剰量に酸素の重量割合を乗じることで同所定時間ｔｓａｍｐｌｅにおける酸素吸蔵量変化量（吸蔵酸素量）ΔＯ２が求められる。そして、数４に示したように、酸素吸蔵量変化量ΔＯ２を時刻ｔ３〜ｔ４に渡って積算することで、第１触媒５３の酸素吸蔵量が「０」である状態から酸素を最大限に吸蔵する状態となるまでの酸素量、即ち最大酸素吸蔵量Ｃｍａｘ３が推定・算出される。
【００５７】
なお、この場合においても、時刻ｔ３〜ｔ４間で第１触媒上流空燃比は一定の設定リーン空燃比ａｂｙｆＬｅａｎに制御されるから、この期間で筒内吸入空気量Ｍｃが一定である場合には、時刻ｔ３〜ｔ４までの時間をΔｔ３、設定リーン空燃比をａｂｙｆＬｅａｎ、その間における単位時間当りの燃料供給量をｍｆｒ３とすれば、最大酸素吸蔵量Ｃｍａｘ３は０．２３・ｍｆｒ３・（ａｂｙｆＬｅａｎ　−　ｓｔｏｉｃｈ）・Δｔ３として簡単に求めることもできる。
【００５８】
一方、本装置は、機関の吸入空気流量Ｇａ等の運転状態に基いて、時刻ｔ２〜ｔ４、即ち第２モードと第３モードの期間（実最大酸素吸蔵量ＣｍａｘＲ算出期間）における触媒の平均温度を算出期間中触媒温度Ｔａｖｅとして算出するとともに、同期間中の吸入空気流量Ｇａの平均値を算出期間中吸入空気流量Ｇａａｖｅとして算出しておく。
【００５９】
そして、本装置は、時刻ｔ４にて機関に吸入される混合気の空燃比を理論空燃比に戻す上述した空燃比フィードバック制御を再開するとともに、同時刻ｔ４以降において、上記のように求めた最大酸素吸蔵量Ｃｍａｘ２及びＣｍａｘ３の平均値を第１触媒５３の実最大酸素吸蔵量ＣｍａｘＲとして算出する。以上が、第１触媒５３の実最大酸素吸蔵量ＣｍａｘＲの算出原理である。
【００６０】
＜実最大酸素吸蔵量ＣｍａｘＲの規格化の必要性と規格化、及び触媒劣化判定＞
次に、上記のようにして算出された実最大酸素吸蔵量ＣｍａｘＲの規格化の必要性と、その規格化方法、及び規格化された最大酸素吸蔵量Ｃｍａｘに基く触媒劣化判定方法について説明する。
【００６１】
図６は、実最大酸素吸蔵量ＣｍａｘＲと、同実最大酸素吸蔵量ＣｍａｘＲの算出期間中触媒温度Ｔａｖｅとの関係を示すグラフであり、図中ラインＬ１は劣化が全く生じていない触媒（以下、「新品の触媒」と称呼する。）、ラインＬ２は劣化がやや進行した触媒（以下、「中劣化触媒」と称呼する。）、及びラインＬ３は劣化が更に進行し劣化触媒であると判定しなければならない触媒（以下、「大劣化触媒」と称呼する。）についての特性をそれぞれ示している。
【００６２】
図６から明らかなように、新品の触媒と大劣化触媒にあっては、算出期間中触媒温度Ｔａｖｅが変化しても実最大酸素吸蔵量ＣｍａｘＲは殆ど変化しない。これに対し、中劣化触媒にあっては、算出期間中触媒温度Ｔａｖｅが上昇するにつれて実最大酸素吸蔵量ＣｍａｘＲが次第に大きくなる。
【００６３】
この点に関して更に説明すると、図７は、図６と同様に、実最大酸素吸蔵量ＣｍａｘＲと、算出期間中触媒温度Ｔａｖｅとの関係を示したグラフであり、図中ラインＬ４は劣化は開始しているものの未だ浄化能力は高く、劣化したと判定する必要のない中劣化触媒についての特性を、ラインＬ５は劣化が進行して浄化能力が低下したために劣化したと判定する必要のある大劣化触媒についての特性をそれぞれ示している。また、図中の太線の矢印は実最大酸素吸蔵量ＣｍａｘＲの不可避的な測定誤差の範囲を示し、一点鎖線は触媒劣化判定値Ｃｍａｘｔｈを示している。
【００６４】
この図７から明らかなように、実最大酸素吸蔵量ＣｍａｘＲと触媒劣化判定値Ｃｍａｘｔｈとの比較結果に基いて触媒が劣化したか否かを判定する際、実最大酸素吸蔵量ＣｍａｘＲの測定誤差が生じても同判定を誤らないようにするためには、中劣化触媒の実最大酸素吸蔵量ＣｍａｘＲ（ラインＬ４）が常に触媒劣化判定値Ｃｍａｘｔｈより大きく、大劣化触媒の実最大酸素吸蔵量ＣｍａｘＲ（ラインＬ５）が常に触媒劣化判定値Ｃｍａｘｔｈより小さくなっていることが必要であり、そのような実最大酸素吸蔵量ＣｍａｘＲが得られるように、同実最大酸素吸蔵量ＣｍａｘＲを算出する算出期間中触媒温度を限定しなければならない。その結果、通常の運転中に触媒温度はＴ１〜Ｔ６の温度となるのに対し、触媒劣化判定のための実最大酸素吸蔵量ＣｍａｘＲを算出できる温度（算出期間中触媒温度Ｔａｖｅ）はＴ３〜Ｔ４と極めて限定される。この結果、触媒劣化の判定頻度が低下するのである。
【００６５】
更に、本発明者は、触媒がある程度活性化した温度領域（通常の機関の運転状態において触媒が取り得る温度領域）において、算出期間中触媒温度Ｔａｖｅと実最大酸素吸蔵量ＣｍａｘＲとの関係について検討を重ねたところ、両者の間に図８に示したような関係があることを見い出した。なお、図８においては、新品の触媒（全く劣化していない触媒）の特性がラインＬ１１で示され、順に劣化が進んだ触媒の特性がそれぞれラインＬ１２，Ｌ１３，Ｌ１４で示されるとともに、完全に劣化してしまった触媒の特性がラインＬ１５で示されている。
【００６６】
即ち、図８から明らかなように、実最大酸素吸蔵量ＣｍａｘＲは算出期間中触媒温度Ｔａｖｅに対し略比例的に単調増加し、これらの間の関係は一次式（直線）で近似することができる。また、新品の触媒の実最大酸素吸蔵量ＣｍａｘＲは算出期間中触媒温度Ｔａｖｅに依存せず、算出期間中触媒温度Ｔａｖｅに対する最大酸素吸蔵量Ｃｍａｘの傾きＫａ（＝Ｃｍａｘ／Ｔａｖｅ）は略「０」となっている（傾きＫａ１を参照。）。そして、ラインＬ１２とＬ１３とから明らかなように、新品の触媒から次第に劣化するに従って、傾きＫａが略「０」から次第に大きくなる（Ｋａ１＜Ｋａ２＜Ｋａ３）。更に、ラインＬ１３〜Ｌ１５から明らかなように、触媒の劣化が一層進行するにつれて傾きＫａは逆に小さくなり（Ｋａ３＞Ｋａ４）、完全に劣化した触媒では同傾きＫａ（＝Ｋａ５）は再び略「０」となるのである。
【００６７】
そこで、本装置においては、図８に示した関係（算出期間中触媒温度Ｔａｖｅと同触媒の実最大酸素吸蔵量ＣｍａｘＲとの関係）を同触媒の劣化程度毎に予め求めておき、この関係と同関係の各々に対応した触媒の劣化程度を特定する特性値である傾きＫａを記憶手段としてのＲＯＭ７２内に傾き決定用マップとして格納しておく。また、劣化触媒でないと判定すべき触媒の実最大酸素吸蔵量ＣｍａｘＲと劣化触媒であると判定すべき触媒の実最大酸素吸蔵量ＣｍａｘＲとが同一の値を取ることがないような触媒温度領域（この領域は、本例では図７に示した従来の触媒劣化検出領域であるＴ３〜Ｔ４の温度領域と等しく選ばれ、以下、単に「学習領域」と称呼する。）で得られた実最大酸素吸蔵量ＣｍａｘＲと、その実最大酸素吸蔵量ＣｍａｘＲを得たときの算出期間中触媒温度Ｔａｖｅと、前記傾き決定用マップとに基いてその時点での傾きＫａを決定し、決定した傾きＫａをバックアップＲＡＭ７４内に格納しておく。即ち、傾きＫａを学習する。
【００６８】
そして、上記学習領域以外の温度領域で新たに実最大酸素吸蔵量ＣｍａｘＲが得られたとき、その場合の算出期間中触媒温度Ｔａｖｅと比例式である下記数５とに基いて、同新たに得られた実最大酸素吸蔵量ＣｍａｘＲを所定の触媒温度Ｔｃｓにおいて得られた最大酸素吸蔵量Ｃｍａｘへと補正・規格化し、この規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍが触媒劣化判定値Ｃｍａｘｔｈより小さいとき、触媒が劣化したと判定する。なお、前記温度Ｔｃｓは、以下において「規格化温度」と称呼する温度であり、学習領域Ｔ３〜Ｔ４内の所定の温度に選択されている。
【００６９】
【数５】
Ｃｍａｘｎｏｒｍ＝ＣｍａｘＲ　＋　Ｋａ・（Ｔｃｓ−Ｔａｖｅ）
【００７０】
図９は、上記数５による規格化の作動を概念的に示すグラフである。このように、劣化は開始しているものの未だ浄化能力は高く劣化触媒であると判定する必要のない正常触媒の実最大酸素吸蔵量ＣｍａｘＲ（実線）は、上記数５に基いて規格化されて破線で示した規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍとなり、劣化触媒であると判定すべき触媒の実最大酸素吸蔵量ＣｍａｘＲは、傾きＫａが「０」であることから規格化前後で変化せず、一点鎖線で示した規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍとなる。
【００７１】
この結果、特に触媒温度が相対的に低い温度であるときに計測誤差により同一の値として計測されることがある正常触媒（劣化していないと判定すべき触媒）と劣化触媒（劣化していると判定すべき触媒）の各最大酸素吸蔵量ＣｍａｘＲが、上記規格化により明らかに異なる値へと補正されるので、規格化後の最大酸素吸蔵量Ｃｍａｘｎｏｒｍが一定の閾値である触媒劣化判定値Ｃｍａｘｔｈ（図９において、一点鎖線と破線との間に設定される閾値）より大きいか小さいかを判定することで、触媒が劣化しているか否かを精度良く判定可能となる。換言すると、触媒劣化判定を行い得る（触媒劣化判定に使用する実最大酸素吸蔵量ＣｍａｘＲを取得・算出し得る）触媒温度領域を、図６のＴ３〜Ｔ４である従来の温度領域に対し、温度領域Ｔ１〜Ｔ６のように格段に拡張することができ、その結果、触媒劣化判定の頻度を増加することができる。
【００７２】
＜傾きＫａの学習条件＞
次に、上記傾きＫａの学習条件等について更に説明を加える。上述したように、傾きＫａは実最大酸素吸蔵量ＣｍａｘＲの算出期間中触媒温度Ｔａｖｅが学習領域Ｔ３〜Ｔ４にあるときに得られた同実最大酸素吸蔵量ＣｍａｘＲと傾き決定用マップとに基いて決定される。
【００７３】
しかしながら、車両が工場から出荷された直後である場合、或いは、車両のバッテリが取り外されて電気制御装置７０への電力供給が遮断される等の理由によりバックアップＲＡＭ７４内に格納していた傾きＫａの値が破壊・消失した場合、算出期間中触媒温度Ｔａｖｅが上記学習領域内に到達しない運転状態が続くことにより、正しい傾きＫａが得られるまでに長期間を要することがあり、その場合、傾きＫａが得られるまで触媒劣化判定を行わないこととすると、実際に触媒が劣化していても、触媒が劣化しているとの判定が遅れる場合があり得る。
【００７４】
そこで、本装置は、傾きＫａが得られていない場合、図７に示した通常走行時の温度領域Ｔ１〜Ｔ６よりも狭く、学習領域Ｔ３〜Ｔ４より広い温度領域Ｔ２〜Ｔ５を仮学習領域として定め、実最大酸素吸蔵量ＣｍａｘＲが得らたときの算出期間中触媒温度Ｔａｖｅが同仮学習領域Ｔ２〜Ｔ５の範囲内にあれば、その実最大酸素吸蔵量ＣｍａｘＲが閾値Ｃｍａｘｔｈより小さいか否かに基いて触媒が劣化したか否かを判定するとともに、同実最大酸素吸蔵量ＣｍａｘＲと前記傾き決定用マップとに基いて傾きＫａを決定し、以降、同傾きＫａを用いて実最大酸素吸蔵量ＣｍａｘＲを規格化して触媒劣化判定を行う。これにより、触媒が劣化した場合、より早く触媒が劣化しているとの判定を得ることができる。
【００７５】
なお、傾きＫａが得られていない場合、実最大酸素吸蔵量ＣｍａｘＲが得らたときの算出期間中触媒温度Ｔａｖｅが同仮学習領域Ｔ２〜Ｔ５の範囲内にあれば、その実最大酸素吸蔵量ＣｍａｘＲをバックアップＲＡＭ内に格納し、そのような実最大酸素吸蔵量ＣｍａｘＲが複数個得られたときに、それらの平均値を求め、その平均値が閾値Ｃｍａｘｔｈより小さいか否かに基いて触媒が劣化したか否かを判定すように構成してもよい。また、その平均値と前記傾き決定用マップとに基いて傾きＫａを決定するように構成してもよい。
【００７６】
＜誤った規格化の防止＞
本装置は、更に、誤った規格化が行われてしまうことを回避するため（１）傾きＫａの強制的クリア、及び（２）規格化に伴う補正率の監視を行う。以下、順に説明する。
【００７７】
（１）傾きＫａの強制的クリア
所定回のトリップ（イグニッションスイッチが「オフ」から「オン」へと変更されてから再び「オフ」へと変更されるまでを「一回のトリップ」と称呼する。）を経ても傾きＫａが更新されなかった場合、触媒の劣化が進行して傾きＫａが変化している可能性がある。
【００７８】
そこで、本装置は、所定回のトリップ内に傾きＫａが更新されなかった場合、傾きＫａをクリアし、工場出荷直後又はバッテリ取り外し後と同様な傾きＫａを仮学習領域で学習する上述した制御に移行する。これによれば、実最大酸素吸蔵量ＣｍａｘＲの誤った規格化を回避して、触媒劣化判定精度を向上することができる。また、触媒が劣化しているのにも関わらず、同触媒は劣化していないとする判定が続くことが回避され得る。
【００７９】
（２）補正率の監視
補正率Ｈｏｓｅｉｒｉｔｕは、下記数６により定義される値である。即ち、下記数６の右辺の分子である規格化温度Ｔｃｓと算出期間中触媒温度Ｔａｖｅとの差（Ｔｃｓ−Ｔａｖｅ）に傾きＫａを乗じた値は上記規格化による実最大酸素吸蔵量ＣｍａｘＲの補正量であるから、同補正率Ｈｏｓｅｉｒｉｔｕは、実最大酸素吸蔵量ＣｍａｘＲに対する規格化による補正量の比の値である。
【００８０】
【数６】
Ｈｏｓｅｉｒｉｔｕ＝Ｋａ・（Ｔｃｓ−Ｔａｖｅ）／ＣｍａｘＲ
【００８１】
この補正率Ｈｏｓｅｉｒｉｔｕは、規格化が正しく行われているとき所定値（補正異常判定値Ｈｔｈ）より小さく、規格化が正しく行われていないとき同補正異常判定値Ｈｔｈより大きくなる。このことは、傾きＫａと同一触媒温度条件下での（触媒温度がある一定の温度である場合の）最大酸素吸蔵量Ｃｍａｘとの関係を示した図１０に示したように、傾きＫａは最大酸素吸蔵量Ｃｍａｘに対して正規分布状に変化するから、その比（Ｋａ／Ｃｍａｘ）が同図１０の直線ＬＴの傾きよりも小さくなることから明らかである。なお、以上のことは、実験によっても確認された。
【００８２】
そこで、本装置は、補正率Ｈｏｓｅｉｒｉｔｕが補正異常判定値Ｈｔｈより大きくなったか否かを監視し、補正率Ｈｏｓｅｉｒｉｔｕが補正異常判定値Ｈｔｈより大きくなった場合には、規格化が正しく行われていないものとして傾きＫａをクリアし、工場出荷直後又はバッテリ取り外し後と同様な傾きＫａを仮学習領域で学習する上述した制御に移行する。これによれば、実最大酸素吸蔵量ＣｍａｘＲの誤った規格化を回避して、触媒劣化判定精度を向上することができる。
【００８３】
＜触媒に流入するガス量の影響分に対する対策と触媒劣化判定＞
実最大酸素吸蔵量ＣｍａｘＲは、触媒に流入するガス流量（従って、機関の吸入空気流量Ｇａ）にも依存して変化する。そこで、本装置は、吸入空気流量Ｇａに対する触媒劣化判定値Ｃｍａｘｔｈの関係（一般には、吸入空気流量Ｇａが大きい程Ｃｍａｘｔｈが小さくなる関係）を規定した閾値決定用マップをＲＯＭ７２内に格納しておき、この閾値決定用マップと、最大酸素吸蔵量Ｃｍａｘの算出期間中における吸入空気流量Ｇａの平均値である算出期間中吸入空気流量Ｇａａｖｅとに基いて触媒劣化判定値Ｃｍａｘｔｈを決定し、前記規格化された最大酸素吸蔵量Ｃｍａｘｎｏｒｍと、かかる触媒劣化判定値Ｃｍａｘｔｈとを比較し、同規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍが同触媒劣化判定値Ｃｍａｘｔｈより大きいとき触媒は劣化しておらず正常であり、同規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍが同触媒劣化判定値Ｃｍａｘｔｈ以下であるとき触媒は劣化している判定する。以上が、本発明の実施形態に係る触媒劣化判定装置の触媒劣化判定に関する作動原理である。
【００８４】
（実際の作動）
次に、上記空燃比制御装置の実際の作動について説明する。
【００８５】
＜通常の空燃比のフィードバック制御＞
ＣＰＵ７１は、図１１にフローチャートにより示した最終燃料噴射量Ｆｉの計算、及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が前記所定クランク角度になると、ＣＰＵ７１はステップ１１００から処理を開始してステップ１１０５に進み、エアフローメータ６１により計測された吸入空気流量Ｇａと、エンジン回転速度ＮＥとに基いて、機関の空燃比を理論空燃比とするための基本燃料噴射量Ｆｂａｓｅを求める。具体的には、エアフローメータ６１が計測している吸入空気流量Ｇａに一次遅れ処理を施した値（吸入空気量に応じた値）をエンジン回転速度ＮＥで除することで筒内吸入空気量Ｍｃを算出し、これを目標空燃比である理論空燃比で除する関数ｆにより基本燃料噴射量Ｆｂａｓｅを求める。
【００８６】
次いで、ＣＰＵ７１はステップ１１１０に進み、基本燃料噴射量Ｆｂａｓｅに係数Ｋを乗じた値に後述する空燃比フィードバック補正量（メインフィードバック制御量）ＤＦｉを加えた値を最終燃料噴射量Ｆｉとして設定する。この空燃比設定係数Ｋの値は、目標空燃比が理論空燃比であるとき「１」であり、機関の暖機前等において目標空燃比を理論空燃比よりリッチな空燃比とする場合、「１」より大きい値に設定される。
【００８７】
次いで、ＣＰＵ７１はステップ１１１５に進み、同ステップ１１１５にて同最終燃料噴射量Ｆｉの燃料を噴射するための指示をインジェクタ３９に対して行い、続くステップ１１２０に進んでその時点の燃料噴射量合計量ｍｆｒに最終燃料噴射量Ｆｉを加えた値を、新たな燃料噴射量積算値ｍｆｒに設定する。この燃料噴射量積算値ｍｆｒは、後述する酸素吸蔵量を算出する際に用いられる。その後、ＣＰＵ７１はステップ１１９５に進み、本ルーチンを一旦終了する。以上により、フィードバック補正された最終燃料噴射量Ｆｉの燃料が吸気行程を迎える気筒に対して噴射される。
【００８８】
次に、上記メインフィードバック制御量ＤＦｉを算出する際の作動について説明すると、ＣＰＵ７１は図１２にフローチャートにより示したルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ１２００から処理を開始し、ステップ１２０５に進んで空燃比フィードバック制御条件（メインフィードバック条件）が成立しているか否かを判定する。この空燃比フィードバック制御条件は、例えば、機関の冷却水温ＴＨＷが第１所定温度以上であり、機関の一回転当りの吸入空気量（負荷）が所定値以下であり、上流側空燃比センサ６６が正常であり、且つ、後述する空燃比強制設定制御実行中フラグＸＨＡＮの値が「０」であって最大酸素吸蔵量Ｃｍａｘ算出のために強制的に空燃比を変更する空燃比制御（アクティブ制御）を実行していないときに成立する。
【００８９】
なお、空燃比強制設定制御実行中フラグＸＨＡＮは、後述するように、その値が「１」のとき最大酸素吸蔵量Ｃｍａｘ算出のために強制的に空燃比を変更する空燃比制御を実行していることを示し、その値が「０」のとき同最大酸素吸蔵量Ｃｍａｘ算出のための空燃比制御を実行していないことを示す。
【００９０】
いま、空燃比フィードバック制御条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１２０５にて「Ｙｅｓ」と判定してステップ１２１０に進み、現時点の上流側空燃比センサ６６の出力ｖａｂｙｆｓと後述するサブフィードバック制御量ｖａｆｓｆｂとの和（ｖａｂｙｆｓ＋ｖａｆｓｆｂ）を図３に示したマップに基いて変換することにより、現時点におけるメインフィードバック制御用空燃比ａｂｙｆｓを求める。このメインフィードバック制御用空燃比ａｂｙｆｓが、上流側空燃比センサ６６の出力をサブフィードバック制御量ｖａｆｓｆｂにより補正した第１触媒５３の上流における上記「見かけ上の空燃比」である。
【００９１】
次に、ＣＰＵ７１はステップ１２１５に進み、現時点からＮストローク（Ｎ回の吸気行程）前に吸気行程を迎えた気筒の吸入空気量である筒内吸入空気量Ｍｃ（ｋ−Ｎ）を前記求めたメインフィードバック制御用空燃比ａｂｙｆｓで除することにより、現時点からＮストローク前の実際の筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求める。値Ｎは、内燃機関の排気量、及び燃焼室２５から上流側空燃比センサ６６までの距離等により異なる値である。
【００９２】
このように、現時点からＮストローク前の筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求めるために、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）をメインフィードバック制御用空燃比ａｂｙｆｓで除するのは、燃焼室２５内で燃焼された混合気が上流側空燃比センサ６６に到達するまでには、Ｎストロークに相当する時間を要しているからである。なお、筒内吸入空気量Ｍｃは、各気筒の吸気行程に対応されながらＲＡＭ７３内に記憶されるようになっている。
【００９３】
次いで、ＣＰＵ７１はステップ１２２０に進み、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）を現時点からＮストローク前の目標空燃比ａｂｙｆｒ（ｋ−Ｎ）で除することにより、現時点からＮストローク前の目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）を求める。なお、目標空燃比ａｂｙｆｒは、ここでは理論空燃比であって一定値である。
【００９４】
そして、ＣＰＵ７１はステップ１２２５に進んで目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）から筒内燃料供給量Ｆｃ（ｋ−Ｎ）を減じた値を筒内燃料供給量偏差ＤＦｃとして設定する。つまり、筒内燃料供給量偏差ＤＦｃは、Ｎストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。次に、ＣＰＵ７１はステップ１２３０に進み、下記数７に基いてメインフィードバック制御量ＤＦｉを求める。
【００９５】
【数７】
ＤＦｉ＝（Ｇｐ・ＤＦｃ＋Ｇｉ・ＳＤＦｃ）・ＫＦＢ
【００９６】
上記数７において、Ｇｐは予め設定された比例ゲイン（比例定数）、Ｇｉは予め設定された積分ゲイン（積分定数）である。なお、数７の係数ＫＦＢはエンジン回転速度ＮＥ、及び筒内吸入空気量Ｍｃ等により可変とすることが好適であるが、ここでは「１」としている。また、値ＳＤＦｃは筒内燃料供給量偏差ＤＦｃの積分値であり、次のステップ１２３５にて更新される。即ち、ＣＰＵ７１は、ステップ１２３５にてその時点における筒内燃料供給量偏差ＤＦｃの積分値ＳＤＦｃに上記ステップ１２２５にて求めた筒内燃料供給量偏差ＤＦｃを加えて、新たな筒内燃料供給量偏差の積分値ＳＤＦｃを求め、ステップ１２９５にて本ルーチンを一旦終了する。
【００９７】
以上により、メインフィードバック制御量ＤＦｉが比例積分制御により求められ、このメインフィードバック制御量ＤＦｉが前述した図１１のステップ１１１０により燃料噴射量に反映されるので、Ｎストローク前の燃料供給量の過不足が補償され、内燃機関の空燃比が目標空燃比ａｂｙｆｒと略一致せしめられるようにフィードバック制御される。
【００９８】
一方、ステップ１２０５の判定時において、空燃比フィードバック制御条件が不成立であると、ＣＰＵ７１は同ステップ１２０５にて「Ｎｏ」と判定してステップ１２４０に進んでメインフィードバック制御量ＤＦｉの値を「０」に設定し、その後ステップ１２９５に進んで本ルーチンを一旦終了する。このように、空燃比フィードバック制御条件が不成立であるときは、メインフィードバック制御量ＤＦｉを「０」として空燃比（フィードフォワード燃料供給量＝Ｋ・Ｆｂａｓｅ）の補正を行わない。
【００９９】
次に、下流側空燃比センサ６７の出力Ｖｏｘｓに基く空燃比フィードバック制御（サブフィードバック制御）について説明する。このサブフィードバック制御により、サブフィードバック制御量ｖａｆｓｆｂが算出される。
【０１００】
ＣＰＵ７１は、サブフィードバック制御量ｖａｆｓｆｂを求めるために、図１３に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ１３００から処理を開始し、ステップ１３０５に進んでサブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件は、例えば、前述したステップ１２０５での空燃比フィードバック制御条件に加え、機関の冷却水温ＴＨＷが前記第１所定温度よりも高い第２所定温度以上のとき、及び下流側空燃比センサ６７が正常であるときに成立する。
【０１０１】
いま、サブフィードバック制御条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１３０５にて「Ｙｅｓ」と判定してステップ１３１０に進み、所定の目標値Ｖｏｘｒｅｆから現時点の下流側空燃比センサ６７の出力Ｖｏｘｓを減じることにより、出力偏差量ＤＶｏｘｓを求める。この目標値Ｖｏｘｓｒｅｆは、略理論空燃比に対応した値に設定されている。次いで、ＣＰＵ７１はステップ１３１５に進み、下記数８に基いてサブフィードバック制御量ｖａｆｓｆｂを求める。
【０１０２】
【数８】
ｖａｆｓｆｂ＝Ｋｐ・ＤＶｏｘｓ＋Ｋｉ・ＳＤＶｏｘｓ
【０１０３】
上記数８において、Ｋｐは予め設定された比例ゲイン（比例定数）、Ｋｉは予め設定された積分ゲイン（積分定数）である。また、ＳＤＶｏｘｓは、出力偏差量ＤＶｏｘｓの積分値であって、次のステップ１３２０にて更新される値である。即ち、ＣＰＵ７１は、ステップ１３２０に進むと、その時点における出力偏差量の積分値ＳＤＶｏｘｓに上記ステップ１３１０にて求めた出力偏差量ＤＶｏｘｓを加えて、新たな出力偏差量の積分値ＳＤＶｏｘｓを求め、その後、ステップ１３９５に進んで本ルーチンを一旦終了する。
【０１０４】
このようにして、サブフィードバック制御量ｖａｆｓｆｂが求められ、この値は前述した図１２のステップ１２１０にて上流側空燃比センサ６６の実際の出力ｖａｂｙｆｓに加えられ、その和（ｖａｂｙｆｓ　＋　ｖａｆｓｆｂ）がＲＯＭ内に格納した図３に示したマップに基いてメインフィードバック制御用空燃比ａｂｙｆｓに変換される。このようにして、下流側空燃比センサ６７の出力Ｖｏｘｓに基いて求められるメインフィードバック制御用空燃比ａｂｙｆｓは、上流側空燃比センサ６６が実際に検出している空燃比ｖａｂｙｆｓに対して、サブフィードバック制御量ｖａｆｓｆｂに相当する分だけ異なる空燃比として求められる。
【０１０５】
この結果、前述した図１２のステップ１２１５にて計算される筒内燃料供給量Ｆｃ（ｋ−Ｎ）が下流側空燃比センサ６７の出力Ｖｏｘｓに応じて変化するので、ステップ１２２５，ステップ１２３０によってメインフィードバック制御量ＤＦｉが同下流側空燃比センサ６７の出力Ｖｏｘｓに応じて変更せしめられる。これにより、第１触媒５３の下流側の空燃比が目標値Ｖｏｘｓｒｅｆで表された空燃比に一致するように、機関の空燃比が制御せしめられる。
【０１０６】
一方、サブフィードバック制御条件が不成立であるとき、ＣＰＵ７１はステップ１３０５にて「Ｎｏ」と判定してステップ１３２５に進み、同ステップ１３２５にてサブフィードバック制御量ｖａｆｓｆｂを「０」に設定し、ステップ１３９５にて本ルーチンを一旦終了する。これにより、下流側空燃比センサ６７の出力Ｖｏｘｓに基くサブフィードバック制御が停止される。
【０１０７】
（最大酸素吸蔵量算出及び触媒劣化判定のための実際の作動）
次に、上述した第１触媒５３の最大酸素吸蔵量Ｃｍａｘの算出、及び同第１触媒５３の劣化判定についての本装置の作動について説明すると、ＣＰＵ７１は図１４のフローチャートにより示された酸素吸蔵量算出を開始すべきか否かを判定するためのルーチンを所定時間の経過毎に実行するようになっている。
【０１０８】
従って、所定のタイミングになると、ＣＰＵ７１は図１４のステップ１４００から処理を開始し、ステップ１４０５に進んで空燃比強制設定制御実行中フラグＸＨＡＮの値が「０」であるか否かを判定する。
【０１０９】
いま、最大酸素吸蔵量算出のための空燃比制御を行っておらず、且つ、最大酸素吸蔵量算出条件が成立していないとして説明を続けると、空燃比強制設定制御実行中フラグＸＨＡＮの値は「０」となっている。従って、ＣＰＵ７１はステップ１４０５にて「Ｙｅｓ」と判定してステップ１４１０に進み、先に説明した図１１のステップ１１１０にて使用される空燃比設定係数Ｋの値を１．００に設定する。
【０１１０】
次いで、ＣＰＵ７１はステップ１４１５にて最大酸素吸蔵量算出条件が成立しているか否かを判定する。この最大酸素吸蔵量算出条件は、冷却水温ＴＨＷが所定温度以上であり、図示しない車速センサにより得られた車速が所定の高車速以上であり、且つ、スロットル弁開度ＴＡの単位時間あたりの変化量が所定量以下であり、即ち、機関が暖機後において定常運転状態にあって触媒が活性化している場合に成立する。なお、この条件に、触媒温度Ｔｃａｃｔが図７に示した温度Ｔ１〜Ｔ６の範囲内にあるときという条件を加えても良い。触媒温度Ｔｃａｃｔは、後述する図１８にフローチャートにより示したルーチンにおいて、所定時間の経過毎に求められる。
【０１１１】
現段階では、上述したように、最大酸素吸蔵量算出条件は成立していないから、ＣＰＵ７１はステップ１４１５にて「Ｎｏ」と判定してステップ１４９５に進み、本ルーチンを一旦終了する。
【０１１２】
次に、先に説明した図５の時刻ｔ１のように、その時点までは最大酸素吸蔵量算出のための空燃比制御を行っていないが（即ち、上述の通常の空燃比制御を行っているが）、同時点にて最大酸素吸蔵量算出条件が成立したものとして説明を続けると、この場合においても、ＣＰＵ７１はステップ１４０５にて「Ｙｅｓ」と判定してステップ１４１０に進み、同ステップ１４１０にて空燃比設定係数Ｋの値を１．００に設定する。次いで、ＣＰＵ７１は、最大酸素吸蔵量算出条件が成立しているので、ステップ１４１５にて「Ｙｅｓ」と判定してステップ１４２０に進み、同ステップ１４２０にて空燃比強制設定制御実行中フラグＸＨＡＮの値を「１」に設定する。
【０１１３】
そして、ＣＰＵ７１はステップ１４２５に進み、第１モードに移行するためにＭｏｄｅの値を「１」に設定するとともに、続くステップ１４３０にて空燃比設定係数Ｋの値を０．９８に設定し、ステップ１４９５に進んで本ルーチンを一旦終了する。この結果、機関の空燃比は理論空燃比よりもリーンな前記設定リーン空燃比ａｂｙｆＬｅａｎに制御される。
【０１１４】
以降、ＣＰＵ７１は図１４のルーチンの処理をステップ１４００から繰り返し実行するが、空燃比強制設定制御実行中フラグＸＨＡＮの値が「１」となっていることから、ステップ１４０５にて「Ｎｏ」と判定して直ちにステップ１４９５に進み、本ルーチンを一旦終了するようになる。
【０１１５】
一方、ＣＰＵ７１は図１５に示した第１モード制御ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングとなると、ＣＰＵ７１はステップ１５００から処理を開始してステップ１５０５に進み、Ｍｏｄｅの値が「１」であるか否かを判定する。この場合、先の図１４のステップ１４２５の処理によりＭｏｄｅの値は「１」となっているので、ＣＰＵ７１はステップ１５０５にて「Ｙｅｓ」と判定してステップ１５１０に進み、下流側空燃比センサ６７の出力Ｖｏｘｓが理論空燃比よりもリッチな空燃比を示す値から同理論空燃比よりもリーンな空燃比を示す値に変化したか否かを判定する。
【０１１６】
現時点では、機関の空燃比を設定リーン空燃比ａｂｙｆＬｅａｎにする制御が開始された直後であるから、下流側空燃比センサ出力Ｖｏｘｓは理論空燃比よりもリッチな空燃比を示している。従って、ＣＰＵ７１はステップ１５１０にて「Ｎｏ」と判定し、ステップ１５９５にて本ルーチンを一旦終了する。
【０１１７】
以降、ＣＰＵ７１は図１５のステップ１５００〜１５１０を繰り返し実行する。また、空燃比は設定リーン空燃比ａｂｙｆＬｅａｎに略等しく制御されているから、所定の時間が経過すると図５の時刻ｔ２のように下流側空燃比センサ出力Ｖｏｘｓはリッチを示す値からリーンを示す値に変化する。これにより、ＣＰＵ７１はステップ１５１０に進んだとき、同ステップ１５１０にて「Ｙｅｓ」と判定してステップ１５１５に進み、Ｍｏｄｅの値を「２」に設定するとともに、続くステップ１５２０にて空燃比設定係数Ｋの値を１．０２に設定し、その後ステップ１５９５にて本ルーチンを一旦終了する。この結果、機関の空燃比は理論空燃比よりもリッチな前記設定リッチ空燃比ａｂｙｆＲｉｃｈに制御される。
【０１１８】
以降、ＣＰＵ７１は図１５のルーチンの処理をステップ１５００から繰り返し実行するが、Ｍｏｄｅの値が「２」となっていることから、ステップ１５０５にて「Ｎｏ」と判定して直ちにステップ１５９５に進み、本ルーチンを一旦終了するようになる。
【０１１９】
同様に、ＣＰＵ７１は図１６に示した第２モード制御ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングとなると、ＣＰＵ７１はステップ１６００から処理を開始してステップ１６０５に進み、Ｍｏｄｅの値が「２」であるか否かを判定する。この場合、先の図１５のステップ１５１５の処理によりＭｏｄｅの値が「２」となっているから、ＣＰＵ７１はステップ１６０５にて「Ｙｅｓ」と判定してステップ１６１０に進み、同ステップ１６１０にて下流側空燃比センサ６７の出力Ｖｏｘｓが理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化したか否かを判定し、かかる変化がない場合にはステップ１６９５に進んで本ルーチンを一旦終了する処理を行う。
【０１２０】
そして、図５の時刻ｔ３に示したように、下流側空燃比センサ６７の出力Ｖｏｘｓが理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化すると、ＣＰＵ７１はステップ１６１０からステップ１６１５に進んで第３モードに移行すべくＭｏｄｅの値を「３」に設定し、続くステップ１６２０にて空燃比設定係数Ｋの値を０．９８に設定する。この結果、Ｍｏｄｅの値が「１」である場合と同様に、機関の空燃比が前記設定リーン空燃比ａｂｙｆＬｅａｎに再び制御される。
【０１２１】
また、ＣＰＵ７１は図１７に示した第３モード制御ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングとなると、ＣＰＵ７１はステップ１７００から処理を開始してステップ１７０５に進み、Ｍｏｄｅの値が「３」であるか否かを判定する。この場合、先の図１２のステップ１２１５の処理によりＭｏｄｅの値は「３」となっているから、ＣＰＵ７１はステップ１７０５にて「Ｙｅｓ」と判定してステップ１７１０に進み、同ステップ１７１０にて下流側空燃比センサ６７の出力Ｖｏｘｓが理論空燃比よりリッチな空燃比を示す値から同理論空燃比よりリーンな空燃比を示す値に変化したか否かをモニタする。
【０１２２】
そして、図５の時刻ｔ４に示したように、下流側空燃比センサ６７の出力Ｖｏｘｓが理論空燃比よりリッチな空燃比を示す値から同理論空燃比よりリーンな空燃比を示す値に変化すると、ＣＰＵ７１はステップ１７１０からステップ１７１５に進んでＭｏｄｅの値を「０」に再設定し、続くステップ１７２０にて空燃比強制設定制御実行中フラグＸＨＡＮの値を「０」に設定した後、ステップ１７９５に進んで本ルーチンを一旦終了する。
【０１２３】
これにより、ＣＰＵ７１は図１４のルーチンを実行する際、ステップ１４０５にて「Ｙｅｓ」と判定してステップ１４１０に進むので、空燃比設定係数Ｋの値が１．００に戻される。また、空燃比強制設定制御実行中フラグＸＨＡＮの値が「０」に戻されたので、他のメインフィードバック制御条件、及びサブフィードバック制御条件が成立していれば、ＣＰＵ７１は図１２のステップ１２０５及び図１３のステップ１３０５にてそれぞれ「Ｙｅｓ」と判定するから、メインフィードバック制御及びサブフィードバック制御がそれぞれ再開され、これらにより空燃比が理論空燃比にフィードバック制御されるようになる。
【０１２４】
以上、説明したように、最大酸素吸蔵量算出条件が成立すると、機関の空燃比が設定リーン空燃比ａｂｙｆＬｅａｎ、設定リッチ空燃比ａｂｙｆＲｉｃｈ、及び設定リーン空燃比ａｂｙｆＬｅａｎの順に制御される。
【０１２５】
一方、ＣＰＵ７１は、第１触媒５３の最大酸素吸蔵量Ｃｍａｘを算出するために、図１８のフローチャートにより示されたルーチンを所定時間の経過毎に実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１は図１８のステップ１８００から処理を開始し、ステップ１８０５及びステップ１８１０にて第１触媒５３の温度Ｔｃａｃｔを推定する。
【０１２６】
具体的に述べると、ＲＯＭ７２内には、吸入空気流量Ｇａと収束触媒温度Ｔｒｅｆとの関係がマップとして格納されていて、ＣＰＵ７１は現時点での実際の吸入空気流量Ｇａと同マップとから現時点の収束触媒温度Ｔｒｅｆを求める。収束触媒温度Ｔｒｅｆとは、吸入空気流量Ｇａの運転状態が継続した場合に、第１触媒５３の温度が収束する温度である。
【０１２７】
次いで、ＣＰＵ７１はステップ１８１０に進み、下記数９に従って今回の触媒温度Ｔｃａｃｔ（ｋ）を求める。なお、数９中におけるＴｃａｃｔ（ｋ−１）は前回の本ルーチン実行時における触媒温度Ｔｃａｃｔ（ｋ）であり、αは０乃至１の所定の定数（例えば、０．００３）である。
【０１２８】
【数９】
Ｔｃａｃｔ（ｋ）＝Ｔｃａｃｔ（ｋ−１）＋α・（（Ｔｒｅｆ−Ｔｃａｃｔ（ｋ−１））
【０１２９】
そして、ＣＰＵ７１はステップ１８１５に進み、下記数１０により酸素吸蔵量変化量ΔＯ２を求める。
【０１３０】
【数１０】
ΔＯ２＝０．２３・ｍｆｒ・（ａｂｙｆｓ　−　ｓｔｏｉｃｈ）
【０１３１】
その後、ＣＰＵ７１はステップ１８２０に進んでＭｏｄｅの値が「２」であるか否かを判定し、Ｍｏｄｅの値が「２」であれば同ステップ１８２０にて「Ｙｅｓ」と判定してステップ１８２５に進み、その時点の第２モードの酸素吸蔵量ＯＳＡ２に上記酸素吸蔵量変化量ΔＯ２の絶対値を加えた値を新たな酸素吸蔵量ＯＳＡ２として設定した後、ステップ１８４０に進む。一方、ＣＰＵ７１はステップ１８２０にて「Ｎｏ」と判定したときステップ１８３０に進み、Ｍｏｄｅの値が「３」であるか否かを判定する。このとき、Ｍｏｄｅの値が「３」であれば、ＣＰＵ７１はステップ１８３０にて「Ｙｅｓ」と判定してステップ１８３５に進み、その時点の第３モードの酸素吸蔵量ＯＳＡ３に上記酸素吸蔵量変化量ΔＯ２の絶対値を加えた値を新たな酸素吸蔵量ＯＳＡ３として設定し、その後、ステップ１８４０に進む。
【０１３２】
続いて、ＣＰＵ７１はステップ１８４０にて、その時点の触媒温度積算値ＳＴｅｍｐｃに上記ステップ１８１０にて求めた触媒温度Ｔｃａｃｔ（ｋ）を加えて新たな触媒温度積算値ＳＴｅｍｐｃを求める。次いで、ＣＰＵ７１はステップ１８４５にてその時点の吸入空気流量積算値ＳＧａに現時点の吸入空気流量Ｇａを加えて新たな吸入空気流量積算値ＳＧａを求め、続くステップ１８５０にてカウンタＮｃの値を「１」だけ増大する。カウンタＮｃの値は、触媒温度積算値ＳＴｅｍｐｃ及び吸入空気流量積算値ＳＧａにそれぞれ足し込まれた触媒温度Ｔｃａｃｔ（ｋ）と吸入空気流量Ｇａのデータの個数を表す。そして、ＣＰＵ７１は、ステップ１８５５に進んで燃料噴射量Ｆｉの合計量ｍｆｒを「０」に設定し、その後ステップ１８９５に進んで本ルーチンを一旦終了する。
【０１３３】
ＣＰＵは、このような処理を繰り返し実行するので、ステップ１８１０にて所定時間の経過毎に触媒温度Ｔｃａｃｔが算出されるとともに、第１触媒５３の上流の空燃比が設定リッチ空燃比ａｂｙｆＲｉｃｈに制御される第２モード（Ｍｏｄｅ＝２）、及び空燃比が設定リーン空燃比ａｂｙｆＬｅａｎに制御される第３モード（Ｍｏｄｅ＝３）において、第１触媒５３の酸素吸蔵量ＯＳＡ２、及び酸素吸蔵量ＯＳＡ３がそれぞれ算出されて行く。なお、現時点が第２モードでも第３モードでもない場合、ＣＰＵ７１は、ステップ１８００〜ステップ１８２０、ステップ１８３０、及びステップ１８５５を経てステップ１８９５に直接進み、本ルーチンを一旦終了する。
【０１３４】
次に、最大酸素吸蔵量Ｃｍａｘの格納及び同最大酸素吸蔵量Ｃｍａｘを利用した触媒劣化判定、及び傾きＫａの学習を行う際の本装置の作動について説明する。
【０１３５】
この装置において、実最大酸素吸蔵量ＣｍａｘＲは、ＲＡＭ７３内の所定のアドレスＤＲ１〜ＤＲｎで指定されるｎ個の各記憶領域（以下、単に「アドレスＤＲ１〜ＤＲｎの記憶領域」と云う。）に格納される。また、後述する所定の条件下で算出された傾き（学習値）Ｋａの更新のための実最大酸素吸蔵量ＣｍａｘＲは、バックアップＲＡＭ７４内の所定のアドレスＤＢＲ１〜ＤＢＲｎのｎ個の各記憶領域（以下、単に「アドレスＤＢＲ１〜ＤＢＲｎの記憶領域」と云う。）に格納される。また、これらのデータにより更新された傾きＫａ、及び触媒劣化の判定結果を示す触媒劣化判定フラグＸＲＥＫＡもバックアップＲＡＭ７４内の所定のアドレスで指定される記憶領域に格納される。
【０１３６】
更に、実最大酸素吸蔵量ＣｍａｘＲのデータは、同実最大酸素吸蔵量ＣｍａｘＲのデータを算出したときの触媒温度Ｔｃａｃｔの平均値（第２モード及び第３モードの期間における触媒温度の平均値）である算出期間中触媒温度Ｔａｖｅと、同最大酸素吸蔵量Ｃｍａｘのデータを算出したときの吸入空気流量Ｇａの平均値（第２モード及び第３モードの期間における吸入空気流量Ｇａの平均値）である算出期間中吸入空気流量Ｇａａｖｅとともに各記憶領域に格納される。即ち、一組のデータ（ＣｍａｘＲ，Ｔａｖｅ，Ｇａａｖｅ）が上記アドレスＤＲ１〜ＤＲｎの記憶領域に格納されるとともに、場合により上記アドレスＤＢＲ１〜ＤＢＲｎの記憶領域に更に格納される。以下、この一組のデータを実最大酸素吸蔵量ＣｍａｘＲ等のデータと呼ぶ場合がある。
【０１３７】
先ず、工場出荷直後等であって実最大酸素吸蔵量ＣｍａｘＲが取得されておらず、従って、実最大酸素吸蔵量ＣｍａｘＲ等のデータがバックアップＲＡＭ７４内の所定のアドレスＤＢＲ１〜ＤＢＲｎの記憶領域に全く格納されていない状態、及び、バッテリが取り外されて電気制御装置７０への電力供給が遮断された後であって、同アドレスＤＢＲ１〜ＤＢＲｎ内の記憶領域の格納データが破壊されたことにより同実最大酸素吸蔵量ＣｍａｘＲ等のデータがアドレスＤＢＲ１〜ＤＢＲｎの記憶領域に全く格納されていない状態で、機関１０の運転が開始された場合から説明を開始する。このような場合、傾きＫａの学習が完了していない状態であり、後述するように、バックアップＲＡＭ７４内に格納される学習完了フラグＸＧＡＫＵの値は「０」に設定さる。
【０１３８】
ここで、ＣＰＵ７１は、図１９及びこれに続く図２０に示した最大酸素吸蔵量Ｃｍａｘの算出及び傾きＫａの学習のためのルーチンを所定時間の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ１９００から処理を開始し、ステップ１９０２に進んで空燃比強制設定制御実行中フラグＸＨＡＮの値が「１」から「０」に変化したか否かをモニタする。そして、上述した第３モードが終了した直後ではなければ（即ち、先に説明した図１７のステップ１７２０にて空燃比強制設定制御実行中フラグＸＨＡＮの値が「０」に変更された直後でなければ）、ＣＰＵ７１はステップ１９０２にて「Ｎｏ」と判定してステップ１９９５に進み、本ルーチンを一旦終了する。
【０１３９】
その後、運転が継続されることにより第１モード〜第３モードの制御が実行され、同第３モードの制御が終了して空燃比強制設定制御実行中フラグＸＨＡＮの値が「１」から「０」に変更されると、ＣＰＵ７１はステップ１９０２に進んだとき、同ステップ１９０２にて「Ｙｅｓ」と判定してステップ１９０４に進み、その時点の酸素吸蔵量ＯＳＡ２及び酸素吸蔵量ＯＳＡ３を、最大酸素吸蔵量Ｃｍａｘ２及びＣｍａｘ３としてそれぞれ格納する。次いで、ＣＰＵ７１はステップ１９０６に進み、同ステップ１９０６にて最大酸素吸蔵量Ｃｍａｘ２と最大酸素吸蔵量Ｃｍａｘ３の平均値を算出し、この平均値を第１触媒５３の実最大酸素吸蔵量ＣｍａｘＲとして格納する。
【０１４０】
次に、ＣＰＵ７１はステップ１９０８にて触媒温度積算値ＳＴｅｍｐｃをカウンタＮｃの値で除すことにより算出期間中触媒温度Ｔａｖｅを求め、続くステップ１９１０にて吸入空気流量積算値ＳＧａをカウンタＮｃの値で除すことにより算出期間中吸入空気流量Ｇａａｖｅを求め、その後、ステップ１９１２にてカウンタＮｃ、酸素吸蔵量ＯＳＡ２、酸素吸蔵量ＯＳＡ３、触媒温度積算値ＳＴｅｍｐｃ、及び吸入空気流量積算値ＳＧａの各値をそれぞれ「０」に設定する。
【０１４１】
次いで、ＣＰＵ７１はステップ１９１４に進んで、算出期間中触媒温度Ｔａｖｅと算出期間中吸入空気流量Ｇａａｖｅが図２１に領域Ａとして示した通常運転領域内（データ取得領域）にあるか否かを判定し、領域Ａ以外の場合にはステップ１９９５に直接進んで本ルーチンを一旦終了する。つまり、今回得られた実最大酸素吸蔵量ＣｍａｘＲは信頼性が低いために触媒劣化判定に使用できないので、ＲＡＭ７３内にもバックアップＲＡＭ７４内にも格納されない。
【０１４２】
これに対し、上記ステップ１９１４にて「Ｙｅｓ」と判定される場合、ＣＰＵ７１はステップ１９１６に進み、ＲＡＭ７３のアドレスＤＲ１〜ＤＲｎの記憶領域の何れかに最大酸素吸蔵量Ｃｍａｘ等のデータが格納されていない領域があるか否かを判定する。
【０１４３】
現段階は、機関１０の始動後に初めて実最大酸素吸蔵量ＣｍａｘＲが得られた場合であるから、アドレスＤＲ１〜ＤＲｎ内の記憶領域の何れにも最大酸素吸蔵量Ｃｍａｘ等のデータが格納されていないので、ＣＰＵ７１はステップ１９１６にて「Ｙｅｓ」と判定してステップ１９１８に進み、アドレスＤＲｘ（ｘは１〜ｎの整数）であって実最大酸素吸蔵量ＣｍａｘＲ等のデータが格納されていないアドレスの中で「ｘ」の最も小さいアドレスＤＲｘ（この場合は、ＤＲ１）のデータ領域に上記ステップ１９０６〜１９１０にてそれぞれ求めた実最大酸素吸蔵量ＣｍａｘＲ等のデータ、即ち、実最大酸素吸蔵量ＣｍａｘＲ、算出期間中触媒温度Ｔａｖｅ、及び算出期間中吸入空気流量Ｇａａｖｅを格納する。
【０１４４】
次に、ＣＰＵ７１はステップ１９２０に進み、学習完了フラグＸＧＡＫＵの値が「１」であるか否かを判定する。この場合、学習完了フラグＸＧＡＫＵの値は「０」であるから、ＣＰＵ７１はステップ１９２０にて「Ｎｏ」と判定してステップ１９２２に進み、算出期間中触媒温度Ｔａｖｅと算出期間中吸入空気流量Ｇａａｖｅが図２１に領域Ｂとして示した仮学習領域にあるか否かを判定し、領域Ｂ以外の場合には同ステップ１９２２からステップ１９９５に直接進んで本ルーチンを一旦終了する。即ち、この場合、実最大酸素吸蔵量ＣｍａｘＲ等のデータがバックアップＲＡＭ７４に格納されない。
【０１４５】
これに対し、ステップ１９２２にて「Ｙｅｓ」と判定されるとき、ＣＰＵ７１は図２０に示したステップ１９２４に進み、バックアップＲＡＭ７４のアドレスＤＢＲ１〜ＤＢＲｎの記憶領域の何れかに実最大酸素吸蔵量ＣｍａｘＲ等のデータが格納されていない領域があるか否かを判定する。
【０１４６】
前述したように、現段階においては、実最大酸素吸蔵量ＣｍａｘＲ等のデータはアドレスＤＢＲ１〜ＤＢＲｎ内の何れの記憶領域にも格納されていないので、ＣＰＵ７１はステップ１９２４にて「Ｙｅｓ」と判定してステップ１９２６に進み、アドレスＤＢＲｘ（ｘは１〜ｎの整数）であって実最大酸素吸蔵量ＣｍａｘＲ等のデータが格納されていないアドレスの中で「ｘ」の最も小さいアドレスＤＢＲｘ（この場合、ＤＢＲ１）のデータ領域に上記ステップ１９０６〜１９１０にてそれぞれ求めた実最大酸素吸蔵量ＣｍａｘＲ、算出期間中触媒温度Ｔａｖｅ、及び算出期間中吸入空気流量Ｇａａｖｅを格納する。
【０１４７】
次に、ＣＰＵ７１はステップ１９２８にてバックアップＲＡＭ７４内に格納されているデータ獲得回数カウンタＣ１の値を「１」だけ増大し、続くステップ１９３０にてカウンタＣ１の値が「ｎ（＞２）」と等しい所定値Ｃ１ｔｈ以上となったか否かを判定する。このカウンタＣ１の値は、工場出荷時及びバッテリからの電力の供給再開時に「０」にリセットされるようになっている。従って、この時点でカウンタＣ１の値は「１」であって所定値Ｃ１ｔｈより小さいので、ＣＰＵ７１はステップ１９３０にて「Ｎｏ」と判定してステップ１９９５に進み、本ルーチンを一旦終了する。この結果、現時点では、傾きＫａの学習も触媒劣化判定も実行されない。
【０１４８】
その後、仮学習領域（図２１の領域Ｂ）内で実最大酸素吸蔵量ＣｍａｘＲが算出される毎に、ＣＰＵ７１は上記ステップ１９１８と上記ステップ１９２６を実行するので、アドレスＤＲｘ及びアドレスＤＢＲｘに実最大酸素吸蔵量ＣｍａｘＲを含む上記一組のデータが格納され、また、ステップ１９２８の処理によりカウンタＣ１の値が「１」ずつ増大して行く。
【０１４９】
この結果、仮学習領域内で実最大酸素吸蔵量ＣｍａｘＲがＣ１ｔｈ回だけ算出されると、ＣＰＵ７１はステップ１９３０に進んだとき同ステップ１９３０にて「Ｙｅｓ」と判定してステップ１９３２に進み、学習完了フラグＸＧＡＫＵの値が「０」であるか否かを判定する。
【０１５０】
この段階では、学習完了フラグＸＧＡＫＵの値は依然として「０」であるから、ＣＰＵ７１はステップ１９３２にて「Ｙｅｓ」と判定してステップ１９３４に進み、バックアップＲＡＭ７４内のアドレスＤＢＲ１〜ＤＢＲｎの記憶領域に格納された仮学習領域において得られた実最大酸素吸蔵量ＣｍａｘＲのｎ個のデータの平均値が触媒劣化判定値Ｃｍａｘｔｈより大きいか否かを判定し、大きい場合には触媒は正常であるとして劣化判定フラグＸＲＥＫＡの値を「０」に設定し、小さい場合には触媒は劣化しているとして同劣化判定フラグＸＲＥＫＡの値を「１」に設定する。
【０１５１】
なお、ステップ１９３４において触媒劣化判定に使用される触媒劣化判定値Ｃｍａｘｔｈは、バックアップＲＡＭ７４内のアドレスＤＢＲ１〜ＤＢＲｎの記憶領域に格納された各算出期間中吸入空気流量Ｇａａｖｅの平均値とＲＯＭ７２内に格納された閾値（触媒劣化判定値）決定用マップとに基いて決定される。これにより、最大酸素吸蔵量Ｃｍａｘの吸入空気流量Ｇａ（触媒５３に流入するガス流量）に対する依存性が排除された触媒劣化判定が行われ得る。
【０１５２】
次いで、ＣＰＵ７１はステップ１９３６に進み、バックアップＲＡＭ７４内のアドレスＤＢＲ１〜ＤＢＲｎの記憶領域に格納された実最大酸素吸蔵量ＣｍａｘＲのｎ個のデータの平均値と、同記憶領域に格納された算出期間中触媒温度Ｔａｖｅのｎ個のデータの平均値と、ＲＯＭ７２内に格納された傾き決定用マップとに基いて傾きＫａを決定し、続くステップ１９３８にて決定した傾きＫａをバックアップＲＡＭ７４内のアドレスＤＢＲｎ＋ｋで指定される記憶領域に格納する。なお、ステップ１９３６は特性値決定手段に相当している。
【０１５３】
そして、ＣＰＵ７１はステップ１９４０及びステップ１９４２を実行し、バックアップＲＡＭ７４内の所定アドレスに格納されている学習完了フラグＸＧＡＫＵ及びカウンタＣ１の値を、それぞれ「１」及び「０」に設定し、ステップ１９９５に進んで本ルーチンを一旦終了する。以上のように、傾きＫａが得られていない場合、仮学習領域で得られたｎ個の実最大酸素吸蔵量ＣｍａｘＲ等のデータに基いて傾きＫａが仮学習されるとともに、そのｎ個の実最大酸素吸蔵量ＣｍａｘＲの各々は規格化されることなく触媒劣化判定に用いられる。
【０１５４】
以降において、通常運転領域（図２１の領域Ａ）内において実最大酸素吸蔵量ＣｍａｘＲが算出されると、ＣＰＵ７１はステップ１９１４にて「Ｙｅｓ」と判定してステップ１９１６に進み、この時点ではアドレスＤＲ１〜ＤＲｎの総べてに最大酸素吸蔵量Ｃｍａｘのデータが格納されているから、同ステップ１９１６にて「Ｎｏ」と判定してステップ１９４４に進み、同ステップ１９４４にてアドレスＤＲ１のデータを消去し、アドレスＤＲｍ＋１のデータをアドレスＤＲｍ（ｍ＝１〜ｎ−１）に順次移行するとともに、アドレスＤＲｎにステップ１９０４〜１９１０にて求めた一組のデータ（ＣｍａｘＲ，Ｔａｖｅ，Ｇａａｖｅ）を格納し、ステップ１９２０に進むようになる。
【０１５５】
また、学習完了フラグＸＧＡＫＵの値は先に実行されたステップ１９４０にて「１」に設定されていることから、ＣＰＵ７１はステップ１９２０に進んだとき、同ステップ１９２０にて「Ｙｅｓ」と判定してステップ１９４６に進み、算出期間中触媒温度Ｔａｖｅと算出期間中吸入空気流量Ｇａａｖｅが図２１に領域Ｃとして示した真の学習領域内にあるか否かを判定し、領域Ｃ以外の場合にはステップ１９４６からステップ１９９５に直接進んで本ルーチンを一旦終了する。この結果、ＲＡＭ７３のＤＲ１〜ＤＲｎのデータは更新されるが、バックアップＲＡＭ７４のＤＢＲ１〜ＤＢＲｎのデータは更新されない。
【０１５６】
一方、ステップ１９４６に進んだとき、同ステップ１９４６にて「Ｙｅｓ」と判定されるとき、即ち、今回の実最大酸素吸蔵量ＣｍａｘＲが真の学習領域内で得られたとき、ＣＰＵ７１は同ステップ１９４６にて「Ｙｅｓ」と判定して図２０のステップ１９２４に進む。そして、この場合にはバックアップＲＡＭ７４のアドレスＤＢＲ１〜ＤＢＲｎの各記憶領域に実最大酸素吸蔵量ＣｍａｘＲ等の各データが格納されているので、ＣＰＵ７１は同ステップ１９２４にて「Ｎｏ」と判定してステップ１９４８に進み、バックアップＲＡＭ７４のアドレスＤＢＲ１のデータを消去し、アドレスＤＢＲｍ＋１のデータをアドレスＤＢＲｍ（ｍ＝１〜ｎ−１）に順次移行するとともに、アドレスＤＢＲｎにステップ１９０４〜１９１０にて求めた一組のデータ（ＣｍａｘＲ，Ｔａｖｅ，Ｇａａｖｅ）を格納する。
【０１５７】
このように、今回得られた実最大酸素吸蔵量ＣｍａｘＲが真の学習領域（領域Ｃ）内にて得られたとき、同実最大酸素吸蔵量ＣｍａｘＲは傾きＫａの学習を行うに十分な信頼性があるとしてバックアップＲＡＭ７４内に格納されて行く。
【０１５８】
次いで、ＣＰＵ７１は、ステップ１９２８及びステップ１９３０を実行するが、現段階ではカウンタＣ１は「１」であるから同ステップ１９３０にて「Ｎｏ」と判定してステップ１９９５に進み、同ステップ１９９５にて本ルーチンを一旦終了する。
【０１５９】
その後、真の学習領域内において実最大酸素吸蔵量ＣｍａｘＲが得られる毎に、ステップ１９４８が実行され、アドレスＤＢＲ１〜ＤＢＲｎのデータが更新されて行く。そして、真の学習領域内において実最大酸素吸蔵量ＣｍａｘＲが閾値Ｃ１ｔｈ（＝ｎ）回だけ得られると、ＣＰＵ７１はステップ１９３０に進んだとき「Ｙｅｓ」と判定してステップ１９３２に進み、この場合、学習完了フラグＸＧＡＫＵの値は「１」であるから同ステップ１９３２にて「Ｎｏ」と判定してステップ１９３４を実行することなくステップ１９３６〜ステップ１９４２に進む。
【０１６０】
この結果、ステップ１９３６にて、真の学習領域内で得られたｎ個の実最大酸素吸蔵量ＣｍａｘＲの平均値と、ｎ個の算出期間中触媒温度Ｔａｖｅの平均値と、ＲＯＭ７２内の傾き決定用マップとから傾きＫａが決定され、その傾きＫａがステップ１９３８にてバックアップＲＡＭ７４のＤＢＲｎ＋ｋ内に格納される。即ち、傾きＫａが更新・学習される。
【０１６１】
このように、傾きＫａの学習完了後は、実最大酸素吸蔵量ＣｍａｘＲが得られた場合、同実最大酸素吸蔵量ＣｍａｘＲが真の学習領域内で得られた値であるならば、ＲＡＭ７３のアドレスＤＲ１〜ＤＲｎのデータ及びバックアップＲＡＭ７４内のアドレスＤＢＲ１〜ＤＢＲｎのデータが同実最大酸素吸蔵量ＣｍａｘＲによって更新されて行き、そのような実最大酸素吸蔵量ＣｍａｘＲがＣ１ｔｈ（＝ｎ）個だけ得られた時点で、傾きＫａの更新・学習が行われる。これに対し、実最大酸素吸蔵量ＣｍａｘＲが得られた場合、同実最大酸素吸蔵量ＣｍａｘＲが真の学習領域外であるが通常運転領域内で得られた値であるならば、ＲＡＭ７３のアドレスＤＲ１〜ＤＲｎのデータのデータのみが同実最大酸素吸蔵量ＣｍａｘＲによって更新されて行く。
【０１６２】
一方、ＣＰＵ７１は正規の触媒劣化判定を行うために、図２２にフローチャートにより示したルーチンを所定時間の経過毎に繰り返し実行するようになっている。従って、所定のタイミングとなるとＣＰＵ７１はステップ２２００から処理を開始し、ステップ２２０５にて新たな一組のデータ（ＣｍａｘＲ，Ｔａｖｅ，Ｇａａｖｅ）をＲＡＭ７３のアドレスＤＲｎに格納した直後であるか否か（換言すると、図１９のステップ１９４４を実行した直後であるか否か）を判定する。
【０１６３】
いま、既に傾きＫａの値が得られていて学習完了フラグＸＧＡＫＵの値が「１」となっている状態で新たな一組のデータ（ＣｍａｘＲ，Ｔａｖｅ，Ｇａａｖｅ）をＲＡＭ７３のアドレスＤＲｎに格納した直後であり、しかも、傾きＫａが適切であって上述した補正率Ｈｏｓｅｉｒｉｔｕが補正異常判定値Ｈｔｈより小さい状態であるとして説明を続けると、ＣＰＵ７１はステップ２２０５にて「Ｙｅｓ」と判定してステップ２２１０に進み、学習完了フラグＸＧＡＫＵの値が「１」であるか否かを判定する。
【０１６４】
この場合、学習完了フラグＸＧＡＫＵの値は「１」となっているから、ＣＰＵ７１はステップ２２１０にて「Ｙｅｓ」と判定してステップ２２１５に進み、同ステップ２２１５にて新たにアドレスＤＲｎに格納された実最大酸素吸蔵量ＣｍａｘＲと上記数６とに基いて補正率Ｈｏｓｅｉｒｉｔｕを計算し、続くステップ２２２０にて同補正率Ｈｏｓｅｉｒｉｔｕが補正異常判定値Ｈｔｈより小さいか否かを判定する。換言すると、ステップ２２２０においては、傾きＫａが適正であって実最大酸素吸蔵量ＣｍａｘＲの正常な規格化・補正がなされるか否かが判定される。なお、ステップ２２１５，及びステップ２２２０は規格化適正判定手段に相当している。
【０１６５】
この場合、即ち、前述した仮定に従えば、傾きＫａは適正であって補正率Ｈｏｓｅｉｒｉｔｕは補正異常判定値Ｈｔｈより小さいから、ＣＰＵ７１はステップ２２２０にて「Ｙｅｓ」と判定してステップ２２２５に進み、新たにアドレスＤＲｎに格納された実最大酸素吸蔵量ＣｍａｘＲと上記数５とに基いて同実最大酸素吸蔵量ＣｍａｘＲを補正・規格化し規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍを算出し、続くステップ２２３０にて算出期間中吸入空気流量Ｇａａｖｅと閾値決定用マップとに基いて触媒劣化判定値Ｃｍａｘｔｈを求め、触媒劣化判定手段に相当する続くステップ２２３５にて規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍが触媒劣化判定値Ｃｍａｘｔｈより大きいか否かを判定することにより、触媒が劣化しているか否かの判定を行う。なお、ステップ２２２５は指標値規格化手段、又は規格化手段に相当し、ステップ２２３０，２２３５は触媒劣化判定手段に相当している。
【０１６６】
そして、規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍが触媒劣化判定値Ｃｍａｘｔｈより大きいとき、ＣＰＵ７１は第１触媒５３は劣化していないと判定し、ステップ２２４０に進んで触媒劣化判定フラグＸＲＥＫＡの値を「０」に設定し、その後、ステップ２２９５に進んで本ルーチンを一旦終了する。また、ステップ２２３５の判定時において、規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍが触媒劣化判定値Ｃｍａｘｔｈ以下であるとき、ＣＰＵ７１は第１触媒５３が劣化したと判定し、ステップ２２４５に進んで触媒劣化判定フラグＸＲＥＫＡの値を「１」に設定し、その後、ステップ２２９５に進んで本ルーチンを一旦終了する。
【０１６７】
このように、傾きＫａが正常な値として学習されている場合、図２１の領域Ａで示した通常運転領域の範囲内で実最大酸素吸蔵量ＣｍａｘＲが得られる毎に、同最大酸素吸蔵量Ｃｍａｘが規格化され、その規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍに基いて触媒劣化判定が行われる。
【０１６８】
次に、失火により触媒が損傷し、或いは衝撃等により触媒が物理的損傷をうけ、傾きＫａの値、即ち、同触媒の劣化状態が同傾きＫａを学習した時点の劣化状態から急激且つ著しく変化した場合について説明する。この場合、補正率Ｈｏｓｅｉｒｉｔｕが補正異常判定値Ｈｔｈより大きくなるので、ＣＰＵ７１は図２２のステップ２２００〜ステップ２２１５を経由してステップ２２２０に進んだとき、同ステップ２２２０にて「Ｎｏ」と判定してステップ２２５０に進み、学習完了フラグＸＧＡＫＵの値を「０」に設定するとともに、バックアップＲＡＭのアドレスＤＢＲｎ＋ｋに格納されている傾きＫａの値を破棄（クリア）し、その後、触媒劣化判定を行うことなくステップ２２９５に進んで本ルーチンを一旦終了する。以上により、誤った規格化による触媒劣化の誤判定を回避することができる。
【０１６９】
なお、上記ステップ２２０５又はステップ２２１０にて「Ｎｏ」と判定されるとき、ＣＰＵ７１は直接ステップ２２９５に進んで本ルーチンを一旦終了する。従って、新たな実最大酸素吸蔵量ＣｍａｘＲを取得した直後でない場合、又は新たな実最大酸素吸蔵量ＣｍａｘＲを取得した直後であっても傾きＫａが得られておらず学習完了フラグＸＧＡＫＵの値が「０」となっている場合、ＣＰＵ７１は本ルーチンでの触媒劣化判定を行うことなく、直ちに本ルーチンを一旦終了する。
【０１７０】
また、ＣＰＵ７１は図２３にフローチャートにより示したバッテリ取り外し後の処理を行うルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになるとＣＰＵ７１はステップ２３００から処理を開始し、ステップ２３０５に進んでバッテリが取り外された直後か否か（バッテリから電気制御装置７０への電力供給が再開された直後か否か）を判定する。そして、バッテリが取り外された直後でなければ、ＣＰＵ７１はステップ２３０５にて「Ｎｏ」と判定してステップ２３９５に直接進み、本ルーチンを一旦終了する。
【０１７１】
これに対し、現時点が、バッテリが取り外された後に同バッテリが再び接続され、電気制御装置７０への電力供給が再開された直後である場合、ＣＰＵ７１はステップ２３０５に進んだとき、同ステップ２３０５にて「Ｙｅｓ」と判定してステップ２３１０に進み、バックアップＲＡＭ７４内のアドレスＤＢＲｎ＋ｋに格納されている傾きＫａを破棄するとともに、続くステップ２３１５にて学習完了フラグＸＧＡＫＵの値を「０」に設定し、ステップ２３９５に進んで本ルーチンを一旦終了する。以上により、バッテリが取り外されて傾きＫａの値の信頼性が失われたときは、同傾きＫａをクリアし再び学習するようになるので、誤った規格化による触媒劣化の誤判定を回避することができる。
【０１７２】
また、ＣＰＵ７１は図２４にフローチャートにより示した学習未更新継続時処理ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになるとＣＰＵ７１はステップ２４００から処理を開始し、ステップ２４０５に進んで図示しない車両のイグニッションスイッチが「オン」状態から「オフ」状態へと変更されたか否かを判定する。そして、イグニッションスイッチが「オン」状態から「オフ」状態へと変更されていなければ、ＣＰＵ７１はステップ２４０５にて「Ｎｏ」と判定してステップ２４９５に直接進み、本ルーチンを一旦終了する。
【０１７３】
これに対し、ＣＰＵ７１がステップ２４０５に進んだとき、イグニッションスイッチが「オン」状態から「オフ」状態へと変更された直後である場合、同ＣＰＵ７１はステップ２４０５にて「Ｙｅｓ」と判定してステップ２４１０に進み、今回の終了された運転が開始されてから（即ち、直前にイグニッションスイッチが「オフ」状態から「オン」状態へ変更されてから）現時点までに、換言すると、今回のトリップにおいて、真の学習領域（図２１の領域Ｃ）で得られた実最大酸素吸蔵量ＣｍａｘＲに基く傾きＫａの更新が一度でもなされたか否かを判定する。
【０１７４】
このとき、今回のトリップにおいて、真の学習領域で得られた実最大酸素吸蔵量ＣｍａｘＲに基く傾きＫａの更新が一度でもなされていれば，ＣＰＵ７１はステップ２４１０にて「Ｙｅｓ」と判定し、ステップ２４１５に進んでバックアップＲＡＭ７４内に格納されているカウンタＣ２の値を「０」に設定する。
【０１７５】
一方、ステップ２４１０の判定時において「Ｎｏ」と判定される場合、即ち、今回のトリップにおいて真の学習領域で得られた実最大酸素吸蔵量ＣｍａｘＲに基く傾きＫａの更新が一度もなされていなければ，ＣＰＵ７１は同ステップ２４１０にて「Ｎｏ」と判定してステップ２４２０に進み、同ステップ２４２０にてカウンタＣ２の値を「１」だけ増大し、続くステップ２４２５にてカウンタＣ２の値が閾値Ｃ２ｔｈより大きいか否かを判定する。そして、カウンタＣ２の値が閾値Ｃ２ｔｈより大きくなければ、ＣＰＵ７１はステップ２４２５にて「Ｎｏ」と判定してステップ２４９５に進み、同ステップ２４９５にて本ルーチンを一旦終了する。
【０１７６】
これから理解されるように、カウンタＣ２の値は、真の学習領域で得られた実最大酸素吸蔵量ＣｍａｘＲに基く傾きＫａの更新が一度もなされなかったトリップが何回連続したかを表す値となるから、真の学習領域で得られた実最大酸素吸蔵量ＣｍａｘＲに基く傾きＫａの更新が一度もなされなかったトリップが閾値Ｃ２ｔｈで表される回数より多く連続すると、ＣＰＵ７１はステップ２４２５に進んだとき、同ステップ２４２５にて「Ｙｅｓ」と判定してステップ２４３０に進み、バックアップＲＡＭ７４内のアドレスＤＢＲｎ＋ｋに格納されている傾きＫａを破棄し、続くステップ２４３５にて学習完了フラグＸＧＡＫＵの値を「０」に設定し、ステップ２４９５に進んで本ルーチンを一旦終了する。
【０１７７】
この結果、真の学習領域で得られた実最大酸素吸蔵量ＣｍａｘＲに基く傾きＫａの更新が一度もなされなかったトリップが閾値Ｃ２ｔｈで表される回数より多く連続して傾きＫａの信頼性が低下したとき、換言すると、傾きＫａを最後に更新してから触媒劣化が進行して同傾きＫａの値が適正ではない可能性が高くなったとき、ＣＰＵ７１は同傾きＫａによる実最大酸素吸蔵量ＣｍａｘＲの規格化、及びその規格化による規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍに基く触媒劣化判定を中止する。これにより、触媒の劣化判定をより精度良く行うことができる。
【０１７８】
以上、説明したように、本発明による触媒劣化判定装置（内燃機関の空燃比制御装置）は、計測誤差を考慮しても、劣化したと判定すべき触媒と劣化していないと判定すべき触媒とで実最大酸素吸蔵量ＣｍａｘＲに明らかに差異が生じる領域（真の学習領域）において算出された実最大酸素吸蔵量ＣｍａｘＲと算出期間中触媒温度Ｔａｖｅとから同触媒の特性値である傾きＫａを決定し、真の学習領域外で算出された実最大酸素吸蔵量ＣｍａｘＲを同決定した傾きＫａで補正することにより、同実最大酸素吸蔵量ＣｍａｘＲを規格化温度で得られた規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍに変換し、その規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍに基いて触媒劣化判定を行うようにした。このため、実最大酸素吸蔵量ＣｍａｘＲを算出したときの触媒温度に拘らず触媒劣化判定の精度を高めることができた。
【０１７９】
また、規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍを得る際に行われる補正が適正であるか否か、換言すると、前記特性値である傾きＫａが現在の触媒の状態に対して適切であるか否かが補正率Ｈｏｓｅｉｒｉｔｕに基いて判定され、同補正が適正であると判定されたときに規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍに基く触媒劣化判定が行われるから、劣化していると判定すべき触媒が劣化していないと判定することを回避することができる。また、実最大酸素吸蔵量ＣｍａｘＲが真の学習温度領域外で得られた場合にも、前記補正が適正であると判定される限り、規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍに基く触媒劣化判定が行われるので、同触媒が劣化していないとの判定結果（確認）を新たに得ることが可能となり、同学習温度領域内で算出された実最大酸素吸蔵量ＣｍａｘＲにのみ基いて触媒劣化判定を行う場合に比べ、触媒劣化判定の頻度を高めることができた。
【０１８０】
また、規格化温度Ｔｃｓは、実最大酸素吸蔵量ＣｍａｘＲの計測誤差が存在していても、前記特性値である傾きＫａが確実に触媒の劣化程度に応じた値になる温度に選ばれているので、規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍは、劣化している触媒と劣化していない触媒とで同一の値となることがない。この結果、触媒劣化判定の精度を一層高めることができた。
【０１８１】
なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記実施形態においては、算出期間中触媒温度Ｔａｖｅに基いて数５により実最大酸素吸蔵量ＣｍａｘＲの規格化を行っていたが、実最大酸素吸蔵量ＣｍａｘＲの大きさに影響を与える他の因子、（例えば、算出期間中吸入空気流量Ｇａａｖｅ、及び／又は、算出期間中において触媒に流入するガスの空燃比の理論空燃比からの偏差ＡｂｙＦ）に基いて同実最大酸素吸蔵量ＣｍａｘＲを所定の規格化空気流量Ｇｃｓ、及び／又は所定の空燃比偏差ＡｂｙＦｃｓの下で得られた最大酸素吸蔵量Ｃｍａｘに補正・変換・規格化し、その規格化した規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍに基いて触媒劣化の判定を行うように構成してもよい。
【０１８２】
また、上記実施形態においては、最大酸素吸蔵量Ｃｍａｘを規格化した値を触媒劣化判定に用いていたが、例えば、第１触媒５３に流入する空燃比を理論空燃比にフィードバック制御している期間の上流側空燃比センサ６６の出力が描く軌跡長と下流側空燃比センサの出力が描く軌跡長との比（軌跡比）、第１触媒５３に流入する空燃比を理論空燃比にフィードバック制御している期間の上流側空燃比センサ６６の出力が理論空燃比相当値を横切る頻度と下流側空燃比センサの出力が理論空燃比相当値を横切る頻度との比（反転比）、及び、第１触媒５３に流入する空燃比を理論空燃比にフィードバック制御している期間の上流側空燃比センサ６６の出力が描く軌跡と理論空燃比相当値との間で形成される面積と下流側空燃比センサの出力が描く軌跡と理論空燃比相当値との間で形成される面積との比（面積比）等の触媒劣化の程度に応じて変化する他の指標値（劣化指標値）を、同指標値に影響を及ぼす因子により規格化・補正することで規格化後の劣化指標値を求め、同規格化後の劣化指標値と触媒劣化判定値とを比較することで触媒劣化判定を行うように構成してもよい。
【０１８３】
また、図２２のステップ２２３５では、一つの実最大酸素吸蔵量ＣｍａｘＲを規格化した規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍに基いて触媒劣化判定を行っているが、傾きＫａが得られた後であって補正率Ｈｏｓｅｉｒｉｔｕが閾値Ｈｔｈより小さい場合には、実最大酸素吸蔵量ＣｍａｘＲが算出される毎に同実最大酸素吸蔵量ＣｍａｘＲを規格化し、同規格化した最大酸素吸蔵量ＣｍａｘｎｏｒｍをバックアップＲＡＭ７４内に順に格納しておき、新たな規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍが得られたとき、同新たな規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍと、前記バックアップＲＡＭ７４内に格納されている複数の規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍとの単純平均値、或いは新たな規格化後最大酸素吸蔵量Ｃｍａｘｎｏｒｍの重みを重くした加重平均値と触媒劣化判定値との比較により、触媒劣化判定を行ってもよい。
【０１８４】
また、上記図２２のステップ２２２０では、前記規格化後最大酸素吸蔵量を求める際に使用された前記新たに算出された実最大酸素吸蔵量ＣｍａｘＲに対する前記補正量の比である補正率Ｈｏｓｅｉｒｉｔｕに基いてステップ２２２５での補正の適否を判断していたが、新たに算出された実最大酸素吸蔵量ＣｍａｘＲに対する前記決定された傾きＫａの比（＝Ｋａ／ＣｍａｘＲ）に基いて前記補正が適正であるか否かを判定するように構成してもよい。
【０１８５】
また、上記サブフィードバック制御は、上記ＰＩ制御でなく、ＰＩＤ制御であってもよい。更に、下流側空燃比センサ６７は、上流側空燃比センサ６６と同様な空燃比センサであってもよい。
【０１８６】
また、上記実施形態では、実最大酸素吸蔵量ＣｍａｘＲを求めるとき、機関の空燃比を設定リーン空燃比ａｂｙｆＬｅａｎ、設定リッチ空燃比ａｂｙｆＲｉｃｈ、及び設定リーン空燃比ａｂｙｆＬｅａｎの順に制御し、同目標空燃比が同設定空燃比ａｂｙｆＲｉｃｈとされている期間（第２モード）で得られた最大酸素吸蔵量Ｃｍａｘ２と、これに続く同目標空燃比が同設定空燃比ａｂｙｆＬｅａｎとされている期間（第３モード）で得られた最大酸素吸蔵量Ｃｍａｘ３との平均を一つの最大酸素吸蔵量Ｃｍａｘのデータとして取得していたが、第２モードと第３モードを交互に複数回（例えば、４回）繰り返し、その各モードにおいて得られた各最大酸素吸蔵量Ｃｍａｘを平均することにより、その時点における一つの実最大酸素吸蔵量ＣｍａｘＲについてのデータを取得するように構成してもよい。
【０１８７】
更に、酸素吸蔵量算出条件が成立したとき、触媒下流空燃比センサ出力Ｖｏｘｓがリッチであることを示している場合、第１触媒上流空燃比を設定リッチ空燃比とする第２モードから制御を開始してもよい。但し、最初の第２モードにおいて推定される最大酸素吸蔵量Ｃｍａｘ２は正確ではないので破棄する。そして、第３モード、次いで第２モードを実行し、これらの各モードで得られた最大酸素吸蔵量Ｃｍａｘ３と最大酸素吸蔵量Ｃｍａｘ２の平均値を実最大酸素吸蔵量ＣｍａｘＲとして採用してもよい。
【０１８８】
また、上記実施形態では、図２１に示したように、データ取得領域（領域Ａ）、仮学習領域（領域Ｂ）、及び真の学習領域（領域Ｃ）を、算出期間中触媒温度と算出期間中吸入空気流量の２つの変数により定めたが、各領域を算出期間中触媒温度のみによって定めても良い。即ち、温度Ｔ１〜Ｔ６、温度Ｔ２〜Ｔ５、温度Ｔ３〜Ｔ４（Ｔ１＜Ｔ２＜Ｔ３＜Ｔ４＜Ｔ５＜Ｔ６）の各領域を、それぞれデータ取得領域（通常運転領域）、仮学習領域、及び真の学習領域として設定してもよい。
【図面の簡単な説明】
【図１】本発明の実施形態に係る空燃比制御装置（触媒劣化判定装置）を適用した内燃機関の概略図である。
【図２】図１に示したエアフローメータの出力電圧と計測された吸入空気流量との関係を示したグラフ（マップ）である。
【図３】図１に示した上流側空燃比センサの出力電圧と空燃比との関係を示したグラフ（マップ）である。
【図４】図１に示した下流側空燃比センサの出力電圧と空燃比との関係を示したマップである。
【図５】図１に示した第１触媒の最大酸素吸蔵量を求める場合の機関の空燃比、第１触媒の下流側空燃比センサの出力、及び第１触媒の酸素吸蔵量の変化を示したタイムチャートである。
【図６】実最大酸素吸蔵量と、同実最大酸素吸蔵量の算出期間中触媒温度との関係を示したグラフである。
【図７】実最大酸素吸蔵量と、同実最大酸素吸蔵量の算出期間中触媒温度との関係を示したグラフである。
【図８】実最大酸素吸蔵量と、同実最大酸素吸蔵量の算出期間中触媒温度との関係を示したグラフである。
【図９】最大酸素吸蔵量の規格化温度への規格化の作動を概念的に示したグラフである。
【図１０】算出期間中触媒温度に対する実最大酸素吸蔵量の比である傾きＫａと実最大酸素吸蔵量との関係を示したグラフである。
【図１１】図１に示したＣＰＵが実行する燃料噴射量計算のためのルーチンを示したフローチャートである。
【図１２】図１に示したＣＰＵが実行する空燃比フィードバック補正量（メインフィードバック制御量）を計算するためのルーチンを示したフローチャートである。
【図１３】図１に示したＣＰＵが実行するサブフィードバック制御量を計算するためのルーチンを示したフローチャートである。
【図１４】図１に示したＣＰＵが実行する酸素吸蔵量算出開始の判定を行うルーチンを示したフローチャートである。
【図１５】図１に示したＣＰＵが実行する第１モードのルーチンを示したフローチャートである。
【図１６】図１に示したＣＰＵが実行する第２モードのルーチンを示したフローチャートである。
【図１７】図１に示したＣＰＵが実行する第３モードのルーチンを示したフローチャートである。
【図１８】図１に示したＣＰＵが実行する第１触媒の酸素吸蔵量を算出するためのルーチンを示したフローチャートである。
【図１９】図１に示したＣＰＵが最大酸素吸蔵量を算出するとともに触媒の特性値（傾き）を学習するために実行するルーチンの前半部を示したフローチャートである。
【図２０】図１に示したＣＰＵが最大酸素吸蔵量を算出するとともに触媒の特性値（傾き）を学習するために実行するルーチンの後半部を示したフローチャートである。
【図２１】最大酸素吸蔵量と触媒の特性値（傾き）を算出する運転領域を示した図である。
【図２２】図１に示したＣＰＵが実行する第１触媒の劣化判定を行うためのルーチンを示したフローチャートである。
【図２３】図１に示したＣＰＵが実行するバッテリが取り外された際の処理を行うルーチンを示したフローチャートである。
【図２４】図１に示したＣＰＵが実行する学習未更新継続時の処理を行うためのルーチンを示したフローチャートである。
【図２５】触媒の劣化程度と最大酸素吸蔵量との関係を示したグラフである。
【図２６】触媒の温度と最大酸素吸蔵量との関係を示したグラフである。
【符号の説明】
１０…内燃機関、２５…燃焼室、３９…インジェクタ、５２…エキゾーストパイプ（排気管）、５３…三元触媒（第１触媒）、５４…三元触媒（第２触媒）、６６…上流側空燃比センサ、６７…下流側空燃比センサ、７０…電気制御装置、７１…ＣＰＵ。
【図１】
2004028029.tif 000003
【図２】
2004028029.tif 000004
【図３】
2004028029.tif 000005
【図４】
2004028029.tif 000006
【図５】
2004028029.tif 000007
【図６】
2004028029.tif 000008
【図７】
2004028029.tif 000009
【図８】
2004028029.tif 000010
【図９】
2004028029.tif 000011
【図１０】
2004028029.tif 000012
【図１１】
2004028029.tif 000013
【図１２】
2004028029.tif 000014
【図１３】
2004028029.tif 000015
【図１４】
2004028029.tif 000016
【図１５】
2004028029.tif 000017
【図１６】
2004028029.tif 000018
【図１７】
2004028029.tif 000019
【図１８】
2004028029.tif 000020
【図１９】
2004028029.tif 000021
【図２０】
2004028029.tif 000022
【図２１】
2004028029.tif 000023
【図２２】
2004028029.tif 000024
【図２３】
2004028029.tif 000025
【図２４】
2004028029.tif 000026
【図２５】
2004028029.tif 000027
【図２６】
2004028029.tif 000028