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