(57)【要約】【課題】触媒から流出する排ガスの状態に直接着目して空燃比をパータベーション制御することでエミッションの排出量を安定的、且つ確実に低減すること。【解決手段】この排気浄化装置は、排気通路に直列に配設された第１，第２触媒５３，５４からなる触媒装置、及び電気制御装置７０を備えている。電気制御装置７０は、触媒装置を排ガスの流れ方向に沿って複数のブロックに仮想的に分割し、各ブロックから流出するガスの酸素の過不足の程度を示す酸素濃度等を演算する触媒モデルを内蔵している。そして、電気制御装置は、触媒装置の酸素吸蔵能力の低下に伴い下流側に移動するように選択される制御用ブロックから流出するガス中の酸素濃度が「０」近傍の正の閾値より大きくなると空燃比を所定のリッチ空燃比に、同酸素濃度が「０」近傍の負の閾値より小さくなると同空燃比を所定のリーン空燃比に制御することで同空燃比をパータベーション制御する。【選択図】  図１
2004225618.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に介装された単数の触媒又は同排気通路に直列に介装された複数の触媒からなる触媒装置と、
前記触媒装置を単数のブロックと捉えたときの同単数のブロック又は同触媒装置を同触媒装置に流入するガスの流れ方向に沿って複数のブロックに分割して捉えたときの何れか一つのブロック、である制御用ブロックから流出するガスの空燃比に関連する値を取得するガス空燃比関連値取得手段と、
前記取得されたガスの空燃比に関連する値が同ガスの空燃比が理論空燃比よりも所定の程度を超えるリッチな空燃比であることを示す値となったとき前記触媒装置に流入するガスの空燃比を所定のリーン空燃比に制御するとともに、同ガスの空燃比に関連する値が同ガスの空燃比が理論空燃比よりも所定の程度を超えるリーンな空燃比であることを示す値となったとき同触媒装置に流入するガスの空燃比を所定のリッチ空燃比に制御することで同触媒装置に流入するガスの空燃比を強制的に振動させる空燃比強制振動手段と、
を備えた内燃機関の排気状態装置。
【請求項２】
請求項１に記載の内燃機関の排気浄化装置において、
前記ガス空燃比関連値取得手段は、前記制御用ブロックから流出するガス中の特定成分の量に関する値を前記ガスの空燃比に関連する値として計算により取得するように構成された内燃機関の排気浄化装置。
【請求項３】
請求項２に記載の内燃機関の排気浄化装置において、
前記ガス空燃比関連値取得手段は、前記制御用ブロックから流出するガス中の酸素の過不足量に関する値を前記ガス中の特定成分の量に関する値として取得するように構成され、
前記空燃比強制振動手段は、前記ガス中の酸素の過不足量に関する値が同ガス中の酸素の不足の程度が所定の程度を超えていることを示す値となったとき前記触媒装置に流入するガスの空燃比を前記所定のリーン空燃比に制御するとともに、同ガス中の酸素の過不足量に関する値が同ガス中の酸素の過剰の程度が所定の程度を超えていることを示す値となったとき同触媒装置に流入するガスの空燃比を前記所定のリッチ空燃比に制御することで同触媒装置に流入するガスの空燃比を強制的に振動させるように構成された内燃機関の排気浄化装置。
【請求項４】
請求項２に記載の内燃機関の排気浄化装置において、
前記ガス空燃比関連値取得手段は、前記制御用ブロックから流出するガス中の酸化剤の量に関する値と還元剤の量に関する値とをそれぞれ前記ガス中の特定成分の量に関する値として取得するように構成され、
前記空燃比強制振動手段は、前記ガス中の還元剤の量に関する値が同ガス中の還元剤の量が所定の程度を超えた量になっていることを示す値となったとき前記触媒装置に流入するガスの空燃比を前記所定のリーン空燃比に制御するとともに、前記ガス中の酸化剤の量に関する値が同ガス中の酸化剤の量が所定の程度を超えた量になっていることを示す値となったとき同触媒装置に流入するガスの空燃比を前記所定のリッチ空燃比に制御することで同触媒装置に流入するガスの空燃比を強制的に振動させるように構成された内燃機関の排気浄化装置。
【請求項５】
請求項１乃至請求項４の何れか一項に記載の内燃機関の排気浄化装置において、
前記ガス空燃比関連値取得手段は、前記触媒装置を複数のブロックに分割して捉えたときの最下流に位置するブロックよりも上流に位置する中間ブロックを前記制御用ブロックとして設定するように構成された内燃機関の排気浄化装置。
【請求項６】
請求項５に記載の内燃機関の排気浄化装置において、
前記ガス空燃比関連値取得手段は、前記触媒装置の酸素吸蔵能力の低下に応じて前記中間ブロックの位置を下流側に移動するように構成された内燃機関の排気浄化装置。
【請求項７】
請求項６に記載の内燃機関の排気浄化装置であって、
値ｎを自然数とするとき前記複数のブロックのうち最上流に位置するブロックである第１番目のブロックから第ｎ番目のブロックまでのブロックにより構成される触媒装置上流部の酸素吸蔵能力を表す値を取得する酸素吸蔵能力取得手段を備え、
前記ガス空燃比関連値取得手段は、前記取得された酸素吸蔵能力を表す値に基づいて所定の酸素吸蔵能力よりも大きい酸素吸蔵能力を有すると判定される前記触媒装置上流部のうち前記値ｎが最も小さい触媒装置上流部を構成する第ｎ番目のブロックを前記中間ブロックとして設定するように構成された内燃機関の排気浄化装置。
【請求項８】
請求項６又は請求項７に記載の内燃機関の排気浄化装置において、
前記酸素吸蔵能力を表す値は、前記触媒装置又は前記触媒装置上流部の最大酸素吸蔵量を示す値、又は同最大酸素吸蔵量と一定の相関を有する値である内燃機関の排気浄化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、排気通路に触媒を配設した内燃機関の排気浄化装置に関する。
【０００２】
【従来の技術】
従来より、この種の排気浄化装置においては、触媒に流入するガスの空燃比を理論空燃比を中心として強制的に振動させる制御（以下、「パータベーション制御」と称呼することもある。）を行うと触媒が活性化して同触媒の浄化率が向上することが知られている。そして、特許文献１は、かかるパータベーション制御を実行する際に常に触媒の最大浄化率を確保できる排気浄化装置（空燃比制御装置）を開示している。
【０００３】
より具体的に述べると、この排気浄化装置は、触媒が吸蔵している酸素量（以下、「酸素吸蔵量」と称呼する。）と、同触媒が吸蔵し得る酸素の最大量（以下、「最大酸素吸蔵量」と称呼する。）とに基づいて酸素利用率を演算し、同演算された酸素利用率に基づいて触媒の浄化率が最大となるように内燃機関に供給される混合気の空燃比を強制振動させる。同時に、この排気浄化装置は、排気ガス量に相当する空間速度及び触媒温度に応じて強制振動の周波数、及び振幅の変更速度を直線的に或いは双曲線的に更新していくようになっている。そして、特許文献１には、かかる構成によって、内燃機関の運転状態や触媒の状態に応じて常に触媒の最大浄化率を確保して排気ガスのエミッション特性を向上させることができると記載されている。
【０００４】
【特許文献１】
特開平７−２５９６００号公報
【０００５】
【発明が解決しようとする課題】
上記従来の排気浄化装置が行うパータベーション制御では、内燃機関に供給される混合気の空燃比は、上記演算された酸素利用率（触媒の浄化率）に着目して強制振動せしめられていて、触媒から流出する排ガスの状態、例えば、同排ガスの空燃比、同排ガス中の特定成分の排出量等に直接着目して強制振動せしめられていない。従って、内燃機関の運転状態により、触媒の浄化率が良好であっても同触媒から流出する排ガスの空燃比が一時的に理論空燃比から大きく偏移するような状況があった場合、同排ガス中のエミッションが多量に排出されてしまうという問題があった。
【０００６】
【発明の概要】
従って、本発明の目的は、触媒から流出する排ガスの状態に直接着目して触媒に流入するガスの空燃比をパータベーション制御することで、エミッションの排出量を安定的、且つ確実に低減し得る排気浄化装置を提供することにある。
【０００７】
かかる目的を達成するための本発明による内燃機関の排気浄化装置は、内燃機関の排気通路に介装された単数の触媒又は同排気通路に直列に介装された複数の触媒からなる触媒装置と、前記触媒装置を単数のブロックと捉えたときの同単数のブロック又は同触媒装置を同触媒装置に流入するガスの流れ方向に沿って複数のブロックに分割して捉えたときの何れか一つのブロック、である制御用ブロックから流出するガスの空燃比に関連する値を取得するガス空燃比関連値取得手段と、前記取得されたガスの空燃比に関連する値が同ガスの空燃比が理論空燃比よりも所定の程度を超えるリッチな空燃比であることを示す値となったとき前記触媒装置に流入するガスの空燃比を所定のリーン空燃比に制御するとともに、同ガスの空燃比に関連する値が同ガスの空燃比が理論空燃比よりも所定の程度を超えるリーンな空燃比であることを示す値となったとき同触媒装置に流入するガスの空燃比を所定のリッチ空燃比に制御することで同触媒装置に流入するガスの空燃比を強制的に振動させる空燃比強制振動手段と、を備える。
【０００８】
ここにおいて、前記「ブロック」は、一つの触媒（全体）を一つのブロックとして（触媒単位で）捉えたときのものであっても、複数の触媒からなる触媒装置を一つのブロックとして捉えたときのものであっても、一つの触媒を排ガスの流れ方向に沿って複数のブロックに仮想的に分割したときの同複数のブロックの各々を一つのブロックとして捉えたときのものであってもよい。また、触媒装置が複数の触媒からなる場合、前記触媒単位で捉えられたブロックと、前記一つの触媒を仮想的に分割したときの複数のブロックとが混在してもよい。また、前記「制御用ブロック」は、触媒装置、又は同触媒装置が複数の触媒からなる場合は同複数の触媒の何れか一つの触媒の最下流に位置するブロックであっても、同最下流に位置するブロックよりも上流に位置する中間ブロックであってもよい。
【０００９】
また、前記制御用ブロックから流出するガスの空燃比に関連する値を取得するガス空燃比関連値取得手段は、例えば、同制御用ブロックの下流の排気通路（同制御用ブロックの下流側に単数又は複数のブロックが存在する場合には同制御用ブロックの下流であって同制御用ブロックの下流側の最上流に位置するブロックの上流の排気通路）に配設された空燃比センサにより同制御用ブロックから流出するガスの空燃比を同ガスの空燃比に関連する値として物理的に検出する手段であっても、同制御用ブロックから流出するガス中の特定成分の量に関する値（例えば、特定成分の濃度、又は特定成分の絶対量等）を同ガスの空燃比に関連する値として同制御用ブロック内における反応を考慮した計算により推定（取得）する手段であってもよい。前記特定成分とは、例えば、一酸化炭素ＣＯ、炭化水素ＨＣ、窒素酸化物ＮＯｘ等の触媒で浄化すべき成分や、酸素Ｏ２（の過不足量）等のことを云う。なお、前記ガス空燃比関連値取得手段が前記空燃比センサから構成される場合、制御用ブロックは、同空燃比センサの上流に位置する直近の触媒内の最下流に位置するブロックに限られる。
【００１０】
また、前記触媒装置に流入するガスの空燃比を強制的に振動させる空燃比強制振動手段は、例えば、機関に供給される混合気の空燃比を強制振動させる手段であってもよく、或いは、同機関に吸入される混合気の空燃比の制御を行うとともに、同触媒装置の上流の排気通路に備えられたノズル等から空気や燃料を供給することで同触媒装置に流入するガスの空燃比を強制的に振動させる手段であってもよい。なお、機関に供給される混合気の空燃比を制御すれば、触媒装置に流入するガスの空燃比を制御することができる。
【００１１】
これによれば、前記触媒装置の一部又は全体を構成する制御用ブロックから流出するガスの空燃比に関連する値に直接着目して、同触媒装置に流入するガスの空燃比を前記所定のリッチ空燃比から前記所定のリーン空燃比、或いは同所定のリーン空燃比から同所定のリッチ空燃比へと切り替えるパータベーション制御を行うので、同制御用ブロックから流出するガスの空燃比を安定的、且つ確実に理論空燃比近傍に維持することができ、その結果、少なくとも制御用ブロックの下流側の有害成分の排出量を安定的、且つ確実に低減することができる。
【００１２】
この場合、前記ガス空燃比関連値取得手段は、前記制御用ブロックから流出するガス中の特定成分の量に関する値を前記ガスの空燃比に関連する値として計算により取得するように構成されることが好適である。
【００１３】
制御用ブロックの下流の排気通路に配設された空燃比センサ（例えば、Ｏ２センサ）により同制御用ブロックから流出するガスの空燃比を同ガスの空燃比に関連する値として検出する場合、制御用ブロックから流出した排ガスは同流出した時点から所定時間後に空燃比センサに到達し、その後、空燃比センサの応答遅れ時間が経過した時点で、その空燃比が検出される。従って、制御用ブロックから流出するガスの空燃比の変化が空燃比センサの出力変化として現れるまでには所定の時間が必要である。
【００１４】
これに対し、上記のように、前記制御用ブロックから流出するガス中の特定成分の量に関する値を前記ガスの空燃比に関連する値として計算により取得するように構成すれば、より適切なタイミングで触媒装置に流入するガスの空燃比を前記所定のリッチ空燃比から前記所定のリーン空燃比、或いは同所定のリーン空燃比から同所定のリッチ空燃比へと切り替えることが可能となる。この結果、制御用ブロックから流出するガスの空燃比をより確実に理論空燃比近傍に維持することができる。
【００１５】
また、上記排気浄化装置においては、前記ガス空燃比関連値取得手段は、前記制御用ブロックから流出するガス中の酸素の過不足量に関する値を前記ガス中の特定成分の量に関する値として取得するように構成され、前記空燃比強制振動手段は、前記ガス中の酸素の過不足量に関する値が同ガス中の酸素の不足の程度が所定の程度を超えていることを示す値となったとき前記触媒装置に流入するガスの空燃比を前記所定のリーン空燃比に制御するとともに、同ガス中の酸素の過不足量に関する値が同ガス中の酸素の過剰の程度が所定の程度を超えていることを示す値となったとき同触媒装置に流入するガスの空燃比を前記所定のリッチ空燃比に制御することで同触媒装置に流入するガスの空燃比を強制的に振動させるように構成されることが好適である。
【００１６】
制御ブロックから流出するガスの空燃比は同ガス中の酸素が過剰となっているときリーン空燃比となり、同ガス中の酸素が不足しているときリッチ空燃比となる。従って、ガス中の酸素の過不足量は同ガスの空燃比を示す（空燃比に関連する）値となり得る。従って、上記のように構成すれば、計算により取得される「制御用ブロックから流出するガス中の酸素の過不足量に関する値」という一つの値に基づいて触媒装置に流入するガスの空燃比を制御することができ、空燃比制御に必要な計算を簡易なものとすることができる。
【００１７】
或いは、上記排気浄化装置においては、前記ガス空燃比関連値取得手段は、前記制御用ブロックから流出するガス中の酸化剤の量に関する値と還元剤の量に関する値とをそれぞれ前記ガス中の特定成分の量に関する値として取得するように構成され、前記空燃比強制振動手段は、前記ガス中の還元剤の量に関する値が同ガス中の還元剤の量が所定の程度を超えた量になっていることを示す値となったとき前記触媒装置に流入するガスの空燃比を前記所定のリーン空燃比に制御するとともに、前記ガス中の酸化剤の量に関する値が同ガス中の酸化剤の量が所定の程度を超えた量になっていることを示す値となったとき同触媒装置に流入するガスの空燃比を前記所定のリッチ空燃比に制御することで同触媒装置に流入するガスの空燃比を強制的に振動させるように構成されることが好適である。ここにおいて、前記ガス中の「酸化剤」は、例えば、窒素酸化物ＮＯｘ、酸素Ｏ２であり、前記ガス中の「還元剤」は、例えば、一酸化炭素ＣＯ、炭化水素ＨＣである。
【００１８】
制御ブロックから流出するガスの空燃比は、同ガス中の酸化剤の量が多くなっているとき（このとき同ガス中の還元剤の量は微量となっている。）リーン空燃比となり、同ガス中の還元剤の量が多くなっているとき（このとき同ガス中の酸化剤の量は微量となっている。）リッチ空燃比となる。従って、ガス中の酸化剤の量及び還元剤の量は同ガスの空燃比を示す（空燃比に関連する）値となり得る。また、制御ブロックから流出するガス中の酸化剤の量は、触媒内（制御ブロック内）における酸素を吸蔵するＯ２ストレージ機能（以下、「酸素吸蔵機能」と称呼する。）に関連する酸素吸蔵速度に依存する一方で、同流出するガス中の還元剤の量は、前記酸素吸蔵機能に関連する酸素放出（吸脱）速度に依存する。従って、上記のように構成すれば、例えば、触媒内（制御ブロック内）での酸素吸蔵速度と酸素放出速度とを個別に設定してこれらの反応速度差を考慮することでそれぞれ個別に且つ正確に算出され得る同制御ブロックから流出する酸化剤の量及び還元剤の量に基づいて、触媒装置に流入するガスの空燃比の切り替え時期を決定することができ、この結果、制御用ブロックから流出するガスの空燃比をさらに確実に理論空燃比近傍に維持することができる。
【００１９】
また、上記排気浄化装置においては、前記ガス空燃比関連値取得手段は、前記触媒装置を複数のブロックに分割して捉えたときの最下流に位置するブロックよりも上流に位置する中間ブロックを前記制御用ブロックとして設定するように構成されることが好適である。
【００２０】
これによれば、排ガスの空燃比を前記触媒装置の中間ブロックの流出口の位置で理論空燃比近傍に維持することができる（或いは、排ガス中の特定成分の量を略「０」とすることができる）。従って、パータベーション制御（空燃比フィードバック制御）の不可避的な制御遅れにより前記中間ブロックから有害成分が流出した場合でも、その流出量は微量であって同中間ブロックより下流側に位置するブロックによりこれを浄化することができるので、触媒装置の最下流位置から流出する排ガス中の有害成分の排出量をより低減し得る。換言すると、前記中間ブロックよりも下流側のブロックを予備的な触媒として機能させることが可能となる。
【００２１】
この場合、前記ガス空燃比関連値取得手段は、前記触媒装置の酸素吸蔵能力の低下に応じて前記中間ブロックの位置を下流側に移動するように構成されることが好適である。
【００２２】
上記したパータベーション制御においては、触媒装置に流入するガスの空燃比が所定のリッチ空燃比に制御されているとき、最上流に位置するブロックから前記中間ブロックまでの各ブロック内に吸蔵されている酸素が総て消費されて各ブロック内の酸素吸蔵量が総て実質的に「０」に到達した時点以降、同中間ブロックから流出するガスの空燃比がリッチに転じることで同触媒装置に流入するガスの空燃比が所定のリーン空燃比に切り替えられる。同様に、触媒装置に流入するガスの空燃比が前記所定のリーン空燃比に制御されているとき、同各ブロック内の酸素吸蔵量が総て実質的に最大酸素吸蔵量に到達した時点以降、同中間ブロックから流出するガスの空燃比がリーンに転じることで同触媒装置に流入するガスの空燃比が前記所定のリッチ空燃比に切り替えられる。換言すれば、上記パータベーション制御における空燃比の切り替え周期は、最上流に位置するブロックから前記中間ブロックまでの各ブロックで構成される触媒装置の上流部分（或いは、触媒装置全体）の酸素吸蔵能力（最大酸素吸蔵量）が小さいほど短くなる。
【００２３】
従って、触媒装置が劣化する等の理由により、同触媒装置（の上流部分）の酸素吸蔵能力（最大酸素吸蔵量）がある程度まで小さくなると、パータベーション制御における空燃比の切り替え周期が極端に短くなることで同空燃比が大きく変動（ハンチング）し、その結果、同パータベーション制御が破綻するという問題が発生する。これに対し、上記のように、前記触媒装置の酸素吸蔵能力（例えば、最大酸素吸蔵量）の低下に応じて前記中間ブロックの位置を下流側に移動するように構成すれば、前記触媒装置の上流部分の酸素吸蔵能力が同中間ブロックの位置を下流側に移動した分だけ増大する。従って、触媒装置が劣化していっても、同触媒装置の上流部分の酸素吸蔵能力をパータベーション制御の破綻を来さない程度に大きい値に維持することができる。この結果、上述した空燃比のハンチングが回避され、排ガス中の有害成分の排出量の増大を回避することができる。
【００２４】
より具体的には、上記排気浄化装置は、値ｎを自然数とするとき前記複数のブロックのうち最上流に位置するブロックである第１番目のブロックから第ｎ番目のブロックまでのブロックにより構成される触媒装置上流部の酸素吸蔵能力を表す値を取得する酸素吸蔵能力取得手段を備え、前記ガス空燃比関連値取得手段は、前記取得された酸素吸蔵能力を表す値に基づいて所定の酸素吸蔵能力よりも大きい酸素吸蔵能力を有すると判定される前記触媒装置上流部のうち前記値ｎが最も小さい触媒装置上流部を構成する第ｎ番目のブロックを前記中間ブロックとして設定するように構成されることが好適である。
【００２５】
これによれば、最上流に位置するブロックから前記中間ブロックまでの各ブロックで構成される触媒装置上流部の酸素吸蔵能力を前記パータベーション制御の破綻を来さない程度に設定され得る所定の酸素吸蔵能力よりも大きい値に維持できるとともに、前述した予備的な触媒として機能し得る同中間ブロックよりも下流側のブロック数を最大とすることができる。従って、上述した空燃比のハンチングを回避しつつ、触媒装置の最下流位置から流出する有害成分の排出量を極力低減し得る。
【００２６】
また、上記した何れかの排気浄化装置において、前記酸素吸蔵能力を表す値は、前記触媒装置又は前記触媒装置上流部の最大酸素吸蔵量を示す値、又は同最大酸素吸蔵量と一定の相関を有する値であることが好適である。ここで、最大酸素吸蔵量と一定の相関を有する値は、同最大酸素吸蔵量を間接的に表す値であって、例えば、触媒装置（上流部）の温度、触媒装置（上流部）の使用時間（車両の走行時間や走行距離）、或いは、内燃機関の吸入空気流量等である。
【００２７】
【発明の実施の形態】
＜第１実施形態＞
以下、本発明による排気浄化装置の各実施形態について図面を参照しつつ説明する。図１は、本発明の第１実施形態に係る排気浄化装置（空燃比制御装置）を火花点火式多気筒（４気筒）内燃機関１０に適用したシステムの概略構成を示している。なお、図１においては、一つの気筒の断面が示されているが、他の気筒も同様の構成を備えている。
【００２８】
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０とを含んでいる。
【００２９】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３、及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００３０】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８、及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。
【００３１】
吸気系統４０は、吸気ポート３１に連通し同吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットル弁４３、及び、スロットル弁駆動手段を構成するＤＣモータからなるスロットル弁アクチュエータ４３ａを備えている。
【００３２】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１に接続されたエキゾーストパイプ（排気管）５２、エキゾーストパイプ５２に配設（介装）された上流側の第１触媒（上流側三元触媒、又はスタート・コンバータとも云う。）５３、及び第１触媒５３の下流のエキゾーストパイプ５２に配設（介装）された第２触媒（下流側三元触媒、又は、車両のフロア下方に配設されるため、アンダ・フロア・コンバータとも云う。）５４を備えている。ここで、排気ポート３４、エキゾーストマニホールド５１、及びエキゾーストパイプ５２は、排気通路を構成している。また、互いに直列に配設された第１触媒５３、及び第２触媒５４は、触媒装置を構成している。
【００３３】
一方、このシステムは、熱線式エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、水温センサ６５、第１触媒５３の上流の排気通路に配設された空燃比センサ６６（以下、「最上流空燃比センサ６６」と称呼する。）、第１触媒５３の下流であって第２触媒５４の上流の排気通路に配設された空燃比センサ６７（以下、「第１触媒下流空燃比センサ６７」と称呼する。）、第２触媒５４の下流の排気通路に配設された空燃比センサ６８（以下、「第２触媒下流空燃比センサ６８」と称呼する。）、及びアクセル開度センサ６９を備えている。
【００３４】
熱線式エアフローメータ６１は、吸気管４１内を流れる吸入空気の質量流量ＡＦＭ（＝Ｇａ）に応じた電圧を出力するようになっている。スロットルポジションセンサ６２は、スロットル弁４３の開度を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。カムポジションセンサ６３は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度ＮＥを表す。水温センサ６５は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。
【００３５】
最上流空燃比センサ６６は、図２に示したように、空燃比Ａ／Ｆに応じた電流を出力し、この電流に応じた電圧ｖａｂｙｆｓを出力するようになっている。図２から明らかなように、最上流空燃比センサ６６によれば、広範囲にわたる空燃比Ａ／Ｆを精度良く検出することができる。第１触媒下流空燃比センサ６７、及び第２触媒下流空燃比センサ６８は、図３に示したように、理論空燃比において急変する電圧Ｖｏｘｓ１，Ｖｏｘｓ２をそれぞれ出力するようになっている。より具体的に述べると、第１，第２触媒下流空燃比センサ６７，６８は、排ガスの空燃比が理論空燃比よりもリーンのときは略０．１（Ｖ）、同排ガスの空燃比が理論空燃比よりもリッチのときは略０．９（Ｖ）、及び同排ガスの空燃比が理論空燃比のときは略０．５（Ｖ）の電圧を出力するようになっている。アクセル開度センサ６９は、運転者によって操作されるアクセルペダル８１の操作量を検出し、同アクセルペダル８１の操作量Ａｃｃｐを表す信号を出力するようになっている。
【００３６】
更に、このシステムは電気制御装置７０を備えている。電気制御装置７０は、互いにバスで接続されたＣＰＵ７１、ＣＰＵ７１が実行するルーチン（プログラム）、テーブル（ルックアップテーブル、マップ）、及び定数等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ７４、並びにＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。インターフェース７５は、前記センサ６１〜６９と接続され、ＣＰＵ７１にセンサ６１〜６９からの信号を供給するとともに、同ＣＰＵ７１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９、及びスロットル弁アクチュエータ４３ａに駆動信号を送出するようになっている。
【００３７】
（第１実施形態のパータベーション制御）
次に、上記排気浄化装置のパータベーション制御について説明する。図４は、かかるパータベーション制御におけるタイムチャートであり、（Ａ）は機関１０に供給される混合気の空燃比（従って、第１触媒上流の排ガスの空燃比）を示し、（Ｂ）は後述する触媒モデルにより算出される後述する制御用ブロック（中間ブロック、第１触媒５３及び第２触媒５４からなる触媒装置としてのｉ番目のブロック、以下、「ブロックｉ」とも称呼する。）から流出する制御用酸素濃度ＣｇｏｕｔＯ２ｃを示している。
【００３８】
ここで前記触媒装置の一部を構成する制御用ブロック（ブロックｉ）から流出する制御用酸素濃度ＣｇｏｕｔＯ２ｃについて簡単に説明する。後述する触媒モデルにおいては、図５に示したように、円筒形の触媒を同円筒形の軸線に直交する平面にて同触媒の上流から等間隔で仮想的に分割して複数の概念上のブロックを形成する。そして、触媒モデルは、各触媒の各ブロック毎に所定の計算を行い、同各ブロックから流出する特定成分（例えば、酸素、一酸化炭素、炭化水素等、窒素酸化物等）の濃度Ｃｇｏｕｔを求める。各ブロックは、触媒毎に、各触媒の最上流（排ガスが流入する側）から順に、１番目のブロック、２番目のブロック、…ｎ番目のブロックと定められている。
【００３９】
また、本実施形態の触媒モデルは、第１触媒５３をｒ個（ｒは２以上の整数）、第２触媒５４をｍ個（ｍは２以上の整数）のブロックにそれぞれ分割して各種演算を行う。本明細書においては、特定成分をＸとするとともに、着目しているブロックを各触媒のｋ番目のブロック（ブロックｋ）とすると、第１触媒５３のブロックｋから流出する排ガス中の特定成分Ｘ（Ｘは、酸素の場合Ｏ２、一酸化炭素の場合ＣＯ、炭化水素の場合ＨＣ、窒素酸化物の場合ＮＯ）の濃度はＣｇｏｕｔＳＣ，Ｘ＜ｋ＞、第２触媒５４のｋ番目のブロックから流出する排ガス中の特定成分Ｘの濃度はＣｇｏｕｔＵＦ，Ｘ＜ｋ＞と表記する。
【００４０】
以上から明らかなように、上記制御用酸素濃度ＣｇｏｕｔＯ２ｃは、前記制御用ブロック（ブロックｉ）が第１触媒５３のｒ個のブロックのうちの一つに設定されているとき（１＜ｉ≦ｒ）は第１触媒５３のブロックｉから流出する排ガス中の酸素濃度ＣｇｏｕｔＳＣ，Ｏ２＜ｉ＞であって、同制御用ブロックが第２触媒５４のｍ個のブロックのうちの一つに設定されているとき（ｒ＜ｉ＜（ｒ＋ｍ））は第２触媒５４のブロック（ｉ−ｒ）から流出する排ガス中の酸素濃度ＣｇｏｕｔＵＦ，Ｏ２＜ｉ−ｒ＞である。即ち、値「ｉ」は「１」より大きく「ｒ＋ｍ」より小さい整数に定められている（１＜ｉ＜（ｒ＋ｍ））。ここで、上記制御用酸素濃度ＣｇｏｕｔＯ２ｃは、「第１触５３及び第２触媒５４からなる触媒装置を同触媒装置に流入する排ガスの流れ方向に沿って複数の（（ｒ＋ｍ）個の）ブロックに仮想的に分割したとき（複数のブロックに分割して捉えたとき）の最下流に位置するブロック（第２触媒５４のブロックｍ）よりも上流に位置する中間ブロック（制御用ブロック、ブロックｉ）から流出するガスの空燃比に関連する値」ということになる。また、制御用酸素濃度ＣｇｏｕｔＯ２ｃは、正の値であるときは酸素が過剰であってブロックｉからＮＯｘが流出している状態であることを意味し、負の値であるときは酸素が不足して同ブロックｉから未燃ＣＯ，ＨＣが流出している状態であることを意味していている。従って、制御用酸素濃度ＣｇｏｕｔＯ２ｃは、制御用ブロックから流出する排ガス中の酸素の過不足量に関する値とも云える。
【００４１】
再び、図４を参照すると、本排気浄化装置は、後述するように設定される制御用ブロックｉから流出する制御用酸素濃度ＣｇｏｕｔＯ２ｃを触媒モデルにより求め、同制御用酸素濃度ＣｇｏｕｔＯ２ｃを「０」付近に維持するように機関１０に供給される混合気の空燃比をパータベーション制御する。より具体的に述べると、本排気浄化装置は、ＣｇｏｕｔＯ２ｃが負の閾値Ｃｒｅｆｍｎｓより小さくなったとき（即ち、酸素の不足の程度が所定の程度を超えていることを示す値となったとき、或いは、ガスの空燃比が所定の程度を超えるリッチな空燃比であることを示す値となったとき）、制御用ブロックｉから未燃成分が多く流出し始めたことを意味するので、機関１０に供給される混合気の目標空燃比を理論空燃比よりも所定値α１だけリーンに設定するとともに機関１０に供給される混合気の実際の空燃比が同目標空燃比になるように制御する（時刻ｔ１，ｔ３を参照。）。
【００４２】
これに対し、ＣｇｏｕｔＯ２ｃが正の閾値Ｃｒｅｆｐｌｓより大きくなったとき（即ち、酸素の過剰の程度が所定の程度を超えていることを示す値となったとき、或いは、ガスの空燃比が所定の程度を超えるリーンな空燃比であることを示す値となったとき）、制御用ブロックｉから酸素（従って、ＮＯｘ）が多く流出し始めたことを意味するので、機関１０に供給される混合気の目標空燃比を理論空燃比よりも所定値α２だけリッチに設定するとともに前記実際の空燃比が同目標空燃比になるように制御する（時刻ｔ２を参照。）。なお、所定値α１と所定値α２とは異なる値でもよく、等しい値であってもよい。このようにして触媒装置に流入するガスの空燃比を強制的に振動させる（切り替える）手段が空燃比強制振動手段に相当する。
【００４３】
（触媒モデル）
次に、本排気浄化装置が採用する触媒モデル（推定モデル）について説明する。なお、触媒モデルを構築するにあたり、第１触媒５３と第２触媒５４とは、同様な構成及び機能を備えているので、以下、主として第１触媒５３を例にとって説明する。
【００４４】
第１触媒５３は、図６に外観を示したように、断面が楕円形（断面積がｄＡ一定）の柱状のモノリス触媒コンバータと称呼される三元触媒であり、軸に直交する平面で同第１触媒５３を切断した拡大断面図である図７に示したように、セラミックの一種であるコージェライトからなる担体５３ａにより、その内部が軸方向に延在する軸線方向空間に細分されている。各軸線方向空間は、軸線に垂直な平面で切断すると略正方形状を有していて、セルとも称呼される。担体５３ａは、アルミナのコート層５３ｂによりコーティングされていて、同コート層５３ｂは白金（Ｐｔ）等の貴金属からなる活性成分（触媒成分）及びセリア（ＣｅＯ２）等の成分を担持している。
【００４５】
かかる第１触媒５３は、白金等の貴金属を担持しているから、同第１触媒５３に流入する排ガスの空燃比が理論空燃比のときに未燃成分（ＨＣ，ＣＯ）を酸化し、同時に窒素酸化物（ＮＯｘ）を還元する触媒機能を有する。また、第１触媒５３は、上記セリア等の成分を担持することにより、同第１触媒５３に流入する排ガス中の酸素分子を吸蔵（貯蔵，吸着）及び放出する上述の酸素吸蔵機能を有していて、この酸素吸蔵機能により、空燃比が理論空燃比からある程度まで偏移したとしても、ＨＣ，ＣＯ、及びＮＯｘを浄化することができる。
【００４６】
従って、図４に示したようなパータベーション制御においては、第１触媒５３に流入するガスの空燃比が所定のリッチ空燃比（理論空燃比よりも前記所定値α２だけリッチな空燃比）に制御されているとき、第１触媒５３及び第２触媒５４から構成されている触媒装置内に吸蔵されている酸素は第１触媒５３の最上流に位置するブロック内のものから第２触媒５４の最下流に位置するブロック内のものまで順に消費されていき、同触媒装置内の総ての（（ｒ＋ｍ）個の）ブロック内に吸蔵されている酸素が実質的に総て消費された時点以降、第２触媒５４の最下流ブロックｍから未燃成分ＨＣ，ＣＯが多く流出し始めて同最下流ブロックｍから流出する排ガス中の酸素濃度ＣｇｏｕｔＵＦ，Ｏ２＜ｍ＞が前記負の閾値Ｃｒｅｆｍｎｓより小さくなる。
【００４７】
一方、第１触媒５３に流入するガスの空燃比が所定のリーン空燃比（理論空燃比よりも前記所定値α１だけリーンな空燃比）に制御されているとき、前記触媒装置内に流入した酸素は第１触媒５３の最上流に位置するブロック内から順に吸蔵されていき、同触媒装置内の総ての（（ｒ＋ｍ）個の）ブロックの酸素吸蔵量が実質的に総て最大酸素吸蔵量に到達した時点以降、第２触媒５４の最下流ブロックｍから窒素酸化物ＮＯｘが多く流出し始めて同第２触媒５４の最下流ブロックｍから流出する排ガス中の酸素濃度ＣｇｏｕｔＵＦ，Ｏ２＜ｍ＞が前記正の閾値Ｃｒｅｆｐｌｓより大きくなる。
【００４８】
よって、第２触媒５４から流出する排ガス中の酸素濃度ＣｇｏｕｔＵＦ，Ｏ２＜ｍ＞を時間遅れなく推定できれば、同酸素濃度に着目したパータベーション制御を行うことで、未燃成分（ＨＣ，ＣＯ）、窒素酸化物ＮＯｘ等の有害成分の排出を高精度に抑制することができる。更に、前記触媒装置において第２触媒５４の最下流ブロックｍよりも上流位置の前記中間ブロックｉ（制御用ブロック）から流出する排ガス中の酸素濃度を推定し、同推定した酸素濃度を所定の値（例えば、前記負の閾値Ｃｒｅｆｍｎｓから正の閾値Ｃｒｅｆｐｌｓまでの間の値）に維持するようにパータベーション制御を行えば、同制御に不可避的な制御遅れが存在していても、触媒装置の最下流位置から流出する有害成分の量を確実に低減できる。換言すると、中間ブロックｉよりも下流側のブロックを予備的な触媒（バッファ）として用いることができる。
【００４９】
また、このように中間ブロックｉから流出する排ガス中の酸素濃度を利用する場合、上記パータベーション制御における空燃比の切り替え周期は、第１触媒５３の最上流に位置するブロックから同中間ブロックまでの各ブロックで構成される触媒装置の上流部分の最大酸素吸蔵量が小さいほど短くなる。従って、前記触媒装置が劣化することにより、前記触媒装置の上流部分の最大酸素吸蔵量がある程度まで小さくなると、パータベーション制御における空燃比の切り替え周期が極端に短くなることで同空燃比が大きく変動（ハンチング）し、その結果、同パータベーション制御が破綻する場合がある。よって、前記触媒装置の上流部分の最大酸素吸蔵量が前記パータベーション制御の破綻を来さない程度に大きい値である閾値Ｃｔｈよりも常に大きい値になるように、同触媒装置の劣化に応じて中間ブロックｉの位置を順次下流側に移動するように構成すれば、上述した空燃比のハンチングの発生が回避され得る。
【００５０】
以上の要求から、本排気浄化装置は、触媒モデルを使用することにより、触媒５３，５４毎、且つ、ブロック毎に、各ブロックから流出する排ガス中の酸素濃度を含む各特定排ガス成分の濃度、及び、最大酸素吸蔵量を推定する。そして、本排気浄化装置は、第１触媒５３の最上流に位置する第１番目のブロックから順に現段階における各ブロックの最大酸素吸蔵量を積算していき、同第１番目のブロックから第ｎ番目（値ｎは自然数であって、１＜ｎ＜（ｒ＋ｍ））のブロックまでのブロックにより構成される触媒装置上流部の各ブロックの最大酸素吸蔵量の積算値が前記閾値Ｃｔｈよりも大きい値をとる同触媒装置上流部のうち値ｎが最も小さい触媒装置上流部を構成する第ｎ番目のブロックを現段階における前記中間ブロックｉ（制御用ブロック）として設定し、同設定した中間ブロックｉから流出する排ガス中の制御用酸素濃度ＣｇｏｕｔＯ２ｃに基づいて上述した図４に示したパータベーション制御を実行する。従って、前記中間ブロックｉは、触媒装置が劣化してその最大酸素吸蔵量が低下するにつれて徐々に下流側に移動することになる。
【００５１】
以下、触媒モデルの具体的構成・内容について説明する。この触媒モデルは、第１触媒５３及び第２触媒５４の何れにも適用されるものであるが、以下、説明の便宜上、第１触媒５３に対する触媒モデルについて説明する。
【００５２】
先ず、触媒モデルにおいては、前述したように、第１触媒５３を排ガスの入口（流入側、最上流側）Ｆｒから出口（流出側、最下流側）Ｒｒに向う軸線に直交する面により複数の領域であるブロックに分割する（図５を参照）。即ち、第１触媒５３を排ガスの流れ方向に沿って複数のブロックに仮想的に分割する。分割された各ブロックの軸線方向の長さはＬ（微小の長さでありｄｘとも書く。）である。なお、第１触媒５３の軸方向に直交する平面で切断した断面の面積をｄＡとする。
【００５３】
次に、任意のブロック（以下、「特定領域」と称呼する。）に注目し、同特定領域を通過する特定の化学種（特定成分）の物質の収支を考える。化学種は、排ガス中に含まれる成分であり、例えば、酸素Ｏ２、一酸化炭素ＣＯ、炭化水素ＨＣ、及び窒素酸化物ＮＯｘである。なお、化学種は、触媒に流入する排ガスの空燃比がリッチのときに同排ガス中に含まれる成分を総合したもの（リッチ成分）、或いは、触媒に流入する排ガスの空燃比がリーンのときに同排ガス中に含まれる成分を総合したもの（リーン成分）とすることもできる。触媒モデルにおいては、下記表１のように、種々の値が定義される。
【００５４】
【表１】
2004225618.tif 000003
【００５５】
いま、時刻ｔ〜ｔ＋Δｔの所与の期間における特定領域での化学種の収支を考えると、図８に示したように、特定領域の排ガス相（単に、「ガス相」とも称呼する。）における化学種の変化量ΔＭは、下記の（１）式に示したとおり、同特定領域に流入した同化学種の量Ｍｉｎから、同特定領域から流出した同化学種の量Ｍｏｕｔと同特定領域のコート層に奪われた同化学種の量Ｍｃｏａｔとを減算した量と等しい。このように、触媒モデルは各特定領域における特定成分の物質収支に基づいて構築される。
【００５６】
【数１】
2004225618.tif 000004
【００５７】
以下、（１）式の各項について個別に検討する。先ず、（１）式の左辺にある化学種の変化量ΔＭは、下記（２）式により求めることができる。（２）式は、上記所与の期間における化学種の濃度変化量（化学種の濃度Ｃｇの時間変化量を所与の期間に渡り積分した量）に微小体積σ・ｄＡ・ｄｘを乗じた値を着目しているブロック（特定領域）の全体に渡って軸方向に積分したものである。
【００５８】
【数２】
2004225618.tif 000005
【００５９】
（１）式の右辺第１項のＭｉｎは、単位時間あたりに特定領域に流入する排ガスの体積に相当する値である「特定領域に流入する排ガスの流速ｖｇｉｎと同特定領域の断面積ｄＡの積ｖｇｉｎ・ｄＡ（実際には、断面積ｄＡで開口率σの触媒内に流速ｖｇｉｎの排ガスが流れ込むので、触媒内部での排ガスの流速はｖｇｉｎ／σとなり、この実際の流速ｖｇｉｎ／σと触媒の実質的な断面積σ・ｄＡの積）」に同流入する排ガス中の化学種の濃度Ｃｇｉｎを乗じた値Ｃｇｉｎ・ｖｇｉｎ・ｄＡを所与の期間に渡り積分した値である。また、（１）式の右辺第２項のＭｏｕｔは、特定領域から流出する排ガスの流速ｖｇｏｕｔと同特定領域の断面積ｄＡの積ｖｇｏｕｔ・ｄＡ（実際には、排ガスの流速ｖｇｏｕｔ／σと実質的な断面積σ・ｄＡの積）に同流出する排ガス中の前記化学種の濃度Ｃｇｏｕｔを乗じた値Ｃｇｏｕｔ・ｖｇｏｕｔ・ｄＡを所与の期間に渡り積分した値である。即ち、上記（１）式の右辺第１項及び第２項は下記（３）式のように記述することができる。
【００６０】
【数３】
2004225618.tif 000006
【００６１】
ところで、特定領域に流入する排ガスの流速ｖｇｉｎと同特定領域から流出する排ガスの流速ｖｇｏｕｔとの間に大きな差異はないので、ｖｇ＝ｖｇｉｎ＝ｖｇｏｕｔとおくと、（３）式は、下記（４）式のように変形される。
【００６２】
【数４】
2004225618.tif 000007
【００６３】
次に、（１）式の右辺第３項のコート層に伝達される（移動する）化学種の量Ｍｃｏａｔについて検討する。幾何学的表面積Ｓｇｅｏは触媒の単位体積あたりの化学種の反応に寄与する表面積であるから、特定領域において化学種の反応に寄与する表面積はＳｇｅｏ・ｄＡ・ｄｘであり、同特定領域の単位長あたりに同反応に寄与する面積はＳｇｅｏ・ｄＡとなる。また、コート層に伝達される化学種の量は、フィックの法則から、排ガス相の化学種の濃度Ｃｇとコート層の化学種の濃度Ｃｗとの差に比例すると考えることができる。これらから、下記の（５）式が得られる。なお、ｈＤは比例定数であるが、上記の表１に示したように、物質伝達率と称呼される値である。
【００６４】
【数５】
2004225618.tif 000008
【００６５】
従って、上記（１），（２），（４）式、及び（５）式から、以下の（６）式が得られる。
【００６６】
【数６】
2004225618.tif 000009
【００６７】
この（６）式に準定常（ｑｕａｓｉ  ｓｔａｔｅ）近似を適用すると、（６）式の左辺は「０」（∂Ｃｇ／∂ｔ＝０）であると考えることができるから（即ち、濃度Ｃｇは瞬間的に定常値に至ると考えられるから）、下記の（７）式が得られる。
【００６８】
【数７】
2004225618.tif 000010
【００６９】
ここで、見かけの拡散速度（実質的な拡散速度）ＲＤを（８）式のようにおけば、（７）式は（９）式に書き直される。
【００７０】
【数８】
2004225618.tif 000011
【００７１】
【数９】
2004225618.tif 000012
【００７２】
次に、特定領域のコート層における化学種の収支（特定成分の物質収支）を上記と同様に考えると、下記（１０）式に示したように、コート層内における化学種の時間的変化量（単位時間あたりの変化量）ΔＭｃは、単位時間あたりに排ガス相からコート層へ伝達される同化学種の量Ｍｄから、同単位時間あたりにコート層にて反応により消費される同化学種の量Ｍｒを減じた量である。
【００７３】
【数１０】
2004225618.tif 000013
【００７４】
（１０）式の左辺（コート層内における化学種の時間的変化量）ΔＭｃは、下記（１１）式に示したように、化学種の濃度変化（∂Ｃｗ／∂ｔ）に体積（（１−σ）・ｄＡ・ｄｘ）を乗じることにより求められ、右辺第１項（単位時間あたりに排ガス相からコート層へ伝達される化学種の量Ｍｄ）は（５）式で説明した理由と同じ理由により、即ち、フィックの法則から考えると、下記（１２）式のように記述することができる。
【００７５】
【数１１】
2004225618.tif 000014
【００７６】
【数１２】
2004225618.tif 000015
【００７７】
また、（１０）式の右辺第２項（単位時間あたりにコート層にて反応により消費される化学種の量Ｍｒ）は、コート層での化学種の消費速度Ｒを用いた下記（１３）式により求められる。
【００７８】
【数１３】
2004225618.tif 000016
【００７９】
従って、（１０）〜（１３）式から、下記の（１４）式が得られる。
【００８０】
【数１４】
2004225618.tif 000017
【００８１】
この（１４）式に準定常（ｑｕａｓｉ  ｓｔａｔｅ）近似を適用すると（∂Ｃｗ／∂ｔ＝０）、下記の（１５）式が得られる。
【００８２】
【数１５】
2004225618.tif 000018
【００８３】
ここで、（１５）式に（８）式を適用すれば、下記の（１６）式が得られる。
【００８４】
【数１６】
2004225618.tif 000019
【００８５】
以上を要約すると、（９）式及び（１６）式が触媒モデルの基本式である。（９）式は、ある化学種の「特定領域への流入量」と「排ガス相からコート層への拡散量＋特定領域からの流出量」とが釣り合っていることを示し、（１６）式は、同化学種の「排ガス相からコート層への拡散量」と「コート層での消費量」とが釣り合っていることを示している。
【００８６】
次に、かかる触媒モデルを使用して特定領域から流出する特定の化学種ｉの濃度Ｃｇｏｕｔを実際に算出するための方法について説明する。先ず、（９）式を離散化すると、下記（１７）式が得られる。なお、以下においては上記ｄｘをＬとして表す。
【００８７】
【数１７】
2004225618.tif 000020
【００８８】
ここで、図９に概念的に示したように、特定領域Ｉから流出する化学種の濃度Ｃｇｏｕｔは同特定領域Ｉの化学種の濃度Ｃｇ（Ｉ）の影響を強く受けると考えられるので、下記の（１８）式のように置くことができる。かかる考え方は「風上法」と称呼される。換言すると、風上法とは、「特定領域Ｉに隣接する上流側の領域（Ｉ−１）における濃度Ｃｇ（Ｉ−１）の化学種が、特定領域Ｉに流入する。」という考え方であり、下記（１９）式のように記述することもできる。
【００８９】
【数１８】
2004225618.tif 000021
【００９０】
【数１９】
2004225618.tif 000022
【００９１】
ところで、反応速度論に基けば、ある化学種のコート層での消費速度Ｒは、その化学種のコート層の平均濃度Ｃｗの関数ｆｃｗ（例えば、Ｃｗのｎ乗に比例する関数）となるので、この関数ｆｃｗを最も簡便となるようにＣｗに比例すると設定すれば、消費速度Ｒは（２０）式にて示したように置くことができる。なお、以下において、（２０）式中のＲ＊を便宜上「消費速度定数」と称呼する。
【００９２】
【数２０】
2004225618.tif 000023
【００９３】
この（２０）式を上記（１６）式（Ｒ＝ＲＤ・（Ｃｇ−Ｃｗ）…（１６））に適用すると下記（２１）式が得られ、同（２１）式を変形することにより下記（２２）式が得られる。
【００９４】
【数２１】
2004225618.tif 000024
【００９５】
【数２２】
2004225618.tif 000025
【００９６】
また、上述した風上法によれば、Ｃｇ＝Ｃｇｏｕｔであるから、（２２）式は下記（２３）式に書き換えられる。
【００９７】
【数２３】
2004225618.tif 000026
【００９８】
そして、Ｃｇ＝Ｃｇｏｕｔなる関係を上記（１７）式に適用してＣｇを消去するとともに、同（１７）式と上記（２３）式とからＣｗを消去すると、下記（２４）式が得られる。
【００９９】
【数２４】
2004225618.tif 000027
【０１００】
そこで、値ＳＰを下記（２５）式のようにおけば、（２４）式は（２６）式のように書き直すことができる。値ＳＰは、見かけの拡散速度ＲＤと消費速度定数Ｒ＊のうちの小さい方の値に強い影響を受ける値であるから、Ｃｇｏｕｔの変化が物質の伝達（ＲＤ）又は化学的反応（Ｒ＊）の何れにより律速されているかを示す値となっており、従って、「反応律速因子」と呼ぶこともできる。
【０１０１】
【数２５】
2004225618.tif 000028
【０１０２】
【数２６】
2004225618.tif 000029
【０１０３】
以上のことから、消費速度定数Ｒ＊と見かけの拡散速度ＲＤとを決定できれば、特定領域に流入する化学種濃度Ｃｇｉｎを与えることにより、（２５）式と（２６）式とに基づいて同特定領域から流出する化学種の濃度Ｃｇｏｕｔを求めることができる。また、これにより、次の特定領域に流入する化学種濃度Ｃｇｉｎが定まるので、同次の特定領域の化学種の濃度Ｃｇｏｕｔを算出することが可能となる。以上が、化学種の濃度Ｃｇｏｕｔを算出する触媒モデルの基本的考え方である。
【０１０４】
次に、上記消費速度定数Ｒ＊と見かけの拡散速度ＲＤを決定するとともに、特定領域から流出する化学種濃度Ｃｇｏｕｔを求める際のより具体的な方法の一例について説明する。この例（触媒モデル）では、触媒での酸化・還元反応である三元反応は瞬時に且つ完全に終了するものと仮定し、その結果としての酸素の過不足に基く酸素の吸蔵・放出反応に着目することとする。なお、この仮定（触媒モデル）は、現実的であり且つ精度の良いものである。
【０１０５】
この場合、着目する化学種ｉは、例えば、酸素Ｏ２や窒素酸化物の一つである一酸化窒素ＮＯのように酸素を生成する（酸素をもたらす）化学種（ストレージ・エージェント）、及び、一酸化炭素ＣＯや炭化水素ＨＣのように酸素を消費する化学種（リダクション・エージェント）から選ばれた化学種である。
【０１０６】
また、以下において、ストレージ・エージェントの化学種ｉ（この場合、化学種ｉはＯ２又はＮＯ等）のＣｇｏｕｔをＣｇｏｕｔ，ｓｔｏｒ，ｉ、同化学種ｉのＣｗをＣｗ，ｓｔｏｒ，ｉ、同化学種ｉのＣｇｉｎをＣｇｉｎ，ｓｔｏｒ，ｉ、同化学種ｉの見かけの拡散速度ＲＤをＲＤ，ｉ、同化学種ｉの消費速度をＲｓｔｏｒ，ｉ、同化学種ｉの消費速度定数をＲ＊ｓｔｏｒ，ｉ、及び同化学種ｉの反応律速因子をＳＰｓｔｏｒ，ｉと表す。
【０１０７】
同様に、リダクション・エージェントの化学種ｉ（この場合、化学種ｉはＣＯ又はＨＣ等）のＣｇｏｕｔをＣｇｏｕｔ，ｒｅｄｕｃ，ｉ、同化学種ｉのＣｗをＣｗ，ｒｅｄｕｃ，ｉ、同化学種ｉのＣｇｉｎをＣｇｉｎ，ｒｅｄｕｃ，ｉ、同化学種ｉの見かけの拡散速度ＲＤをＲＤ，ｉ、同化学種ｉの消費速度をＲｒｅｄｕｃ，ｉ、同化学種ｉの消費速度定数をＲ＊ｒｅｄｕｃ，ｉ、及び同化学種ｉの反応律速因子ＳＰｒｅｄｕｃ，ｉと表す。このように各値を表すと、上記（２０），（２３），（２５），（２６）式から以下の（２７）〜（３４）式が得られる。
【０１０８】
【数２７】
2004225618.tif 000030
【０１０９】
【数２８】
2004225618.tif 000031
【０１１０】
【数２９】
2004225618.tif 000032
【０１１１】
【数３０】
2004225618.tif 000033
【０１１２】
【数３１】
2004225618.tif 000034
【０１１３】
【数３２】
2004225618.tif 000035
【０１１４】
【数３３】
2004225618.tif 000036
【０１１５】
【数３４】
2004225618.tif 000037
【０１１６】
これらの式に基づいて、Ｃｇｏｕｔ，ｓｏｔｒ，ｉ（具体的には、特定領域から流出する酸素の濃度Ｃｇｏｕｔ，Ｏ２、特定領域から流出する一酸化窒素の濃度Ｃｇｏｕｔ，ＮＯ）及びＣｇｏｕｔ，ｒｅｄｕｃ，ｉ（具体的には、特定領域から流出する一酸化炭素の濃度Ｃｇｏｕｔ，ＣＯ、特定領域から流出する炭化水素の濃度Ｃｇｏｕｔ，ＨＣ）を求めるため、先ず、消費速度定数Ｒ＊ｓｔｏｒ，ｉ及び消費速度定数Ｒ＊ｒｅｄｕｃ，ｉを求める。
【０１１７】
ところで、反応速度論によれば、特定領域のコート層で酸素が吸蔵される速度（酸素の吸蔵速度）であるストレージ・エージェントの消費速度Ｒｓｔｏｒ，ｉは、同コート層のストレージ・エージェント（Ｏ２、ＮＯｘ等）の濃度Ｃｗ，ｓｔｏｒ，ｉ（例えば、Ｃｗ，Ｏ２、Ｃｗ，ＮＯ）の関数ｆ１（Ｃｗ，ｓｔｏｒ，ｉ）の値に比例するとともに、特定領域のコート層の最大酸素吸蔵密度と実際の酸素吸蔵密度との差（Ｏｓｔｍａｘ−Ｏｓｔ）の関数ｆ２（Ｏｓｔｍａｘ−Ｏｓｔ）の値とに比例すると考えられる。この最大酸素吸蔵密度と酸素吸蔵密度との差（Ｏｓｔｍａｘ−Ｏｓｔ）は、着目している特定領域における酸素吸蔵余裕量を表す。
【０１１８】
そこで、簡単のために関数ｆ１（ｘ）＝ｆ２（ｘ）＝ｘとすると、下記の（３５）式が得られる。下記（３５）式のｋｓｔｏｒ，ｉは酸素吸蔵速度係数（吸蔵側反応速度係数，ストレージ・エージェントの消費速度係数）であって、よく知られたアレニウスの式で表される温度に依存して変化する係数であり、別途検出又は推定される触媒温度Ｔｅｍｐと所定の関数（酸素吸蔵速度係数ｋｓｔｏｒ，ｉと触媒温度Ｔｅｍｐとの間の関係を規定したマップでも良い。）とに基づいて求めることができる。なお、酸素吸蔵速度係数ｋｓｔｏｒ，ｉは、触媒劣化程度に応じても変化するので、同触媒劣化程度に応じて求めてもよい。
【０１１９】
【数３５】
2004225618.tif 000038
【０１２０】
従って、（２７）式と（３５）式とから、消費速度定数Ｒ＊ｓｔｏｒ，ｉは下記（３６）式により求めることができる。
【０１２１】
【数３６】
2004225618.tif 000039
【０１２２】
また、酸素の吸蔵（吸着）と放出のみに着目しているこの触媒モデルにおいては、還元剤であるリダクション・エージェントはコート層に吸蔵されている酸素の放出のみに使用されるから、同リダクション・エージェントの消費速度Ｒｒｅｄｕｃ，ｉはコート層に吸蔵されている酸素が放出される速度（酸素の放出速度）Ｒｒｅｌ，ｉと等しい。
【０１２３】
そこで、酸素の放出速度Ｒｒｅｌ，ｉについて検討すると、同放出速度Ｒｒｅｌ，ｉは、酸素の吸蔵速度Ｒｓｔｏｒ，ｉと同様に反応速度論に基き、同コート層において酸素を消費する化学種（例えば、ＣＯ，ＨＣ）の濃度Ｃｗ，ｒｅｄｕｃ，ｉ（例えば、Ｃｗ，ＣＯ、Ｃｗ，ＨＣ）の関数ｇ１（Ｃｗ，ｒｅｄｕｃ，ｉ）の値に比例するとともに、酸素吸蔵密度Ｏｓｔの関数ｇ２（Ｏｓｔ）の値とに比例すると考えられる。
【０１２４】
そこで、簡単のために関数ｇ１（ｘ）＝ｇ２（ｘ）＝ｘとすると、下記の（３７）式が得られる。下記（３７）式のｋｒｅｌ，ｉは酸素放出速度係数（吸脱側反応速度係数）であって、酸素吸蔵速度係数ｋｓｔｏｒ，ｉと同様にアレニウスの式で表される温度に依存して変化する係数であり、別途検出又は推定される触媒温度Ｔｅｍｐに基づいて所定の関数（酸素放出速度係数ｋｒｅｌ，ｉと触媒温度Ｔｅｍｐとの間の関係を規定したマップでも良い。）に基づいて求めることができる。なお、酸素放出速度係数ｋｒｅｌ，ｉは、触媒劣化程度に応じても変化するので、同触媒劣化程度に応じて求めてもよい。
【０１２５】
【数３７】
2004225618.tif 000040
【０１２６】
この結果、上述したようにリダクション・エージェントの消費速度Ｒｒｅｄｃｕ，ｉはコート層の酸素の放出速度Ｒｒｅｌ，ｉと等しいから、消費速度定数Ｒ＊ｒｅｄｕｃ，ｉは（３１）式と（３７）式とを比較することにより得られる下記（３８）式に基づいて求めることができる。
【０１２７】
【数３８】
2004225618.tif 000041
【０１２８】
以上のことから、酸素吸蔵密度Ｏｓｔが求められれば（酸素吸蔵密度Ｏｓｔの求め方については、後述する。）、（３６）式から消費速度定数Ｒ＊ｓｔｏｒ，ｉ（例えば、Ｒ＊Ｏ２）を求めることができる。一方、見かけの拡散速度ＲＤ，ｉ（例えば、ＲＤ，Ｏ２）は（８）式のようにＳｇｅｏ・ｈＤ，ｉであるから、温度と流量の関数（触媒の温度と同触媒を通過する排ガスの流量の関数）として実験的に求めておくことができる。この結果、（２９）式からＳＰｓｔｏｒ，ｉ（例えば、ＳＰｓｔｏｒ，Ｏ２）が決定されるので、境界条件としてＣｇｉｎ，ｓｔｏｒ，ｉ（例えば、Ｃｇｉｎ，Ｏ２）が与えられるとき、（３０）式からＣｇｏｕｔ，ｓｔｏｒ，ｉ（例えば、Ｃｏｕｔ，Ｏ２）が求められる。そして、新たなＣｗ，ｓｔｏｒ，ｉ（例えば、Ｃｗ，Ｏ２）が（２８）式により求められる。
【０１２９】
同様に、酸素吸蔵密度Ｏｓｔが求められれば、（３８）式から消費速度定数Ｒ＊ｒｅｄｕｃ，ｉ（例えば、Ｒ＊ｒｅｄｕｃ，ＣＯ）を求めることができる。一方、見かけの拡散速度ＲＤ，ｉ（例えば、ＲＤ，ＣＯ）は（８）式のようにＳｇｅｏ・ｈＤ，ｉであるから、温度と流量の関数（触媒の温度と同触媒を通過する排ガスの流量の関数）として実験的に求めておくことができる。この結果、（３３）式からＳＰｒｅｄｕｃ，ｉ（例えば、ＳＰｒｅｄｕｃ，ＣＯ）が決定されるので、境界条件としてＣｇｉｎ，ｒｅｄｕｃ，ｉ（例えば、Ｃｇｉｎ，ＣＯ）が与えられるとき、（３４）式からＣｇｏｕｔ，ｒｅｄｕｃ，ｉ（例えば、Ｃｇｏｕｔ，ＣＯ）が求められる。そして、新たなＣｗ，ｒｅｄｕｃ，ｉ（例えば、Ｃｗ，ＣＯ）が（３２）式により求められる。
【０１３０】
次に、Ｃｇｏｕｔ，ｓｔｏｒ，ｉ、Ｃｇｏｕｔ，ｒｅｄｕｃ，ｉを求めるために必要となる酸素吸蔵密度Ｏｓｔの求め方について説明する。
【０１３１】
先ず、コート層での化学種としての酸素の収支について着目すると、同収支はコート層での酸素の吸蔵分と酸素の放出分の差であるから、下記（３９）式により記述される。（３９）式でｄＡ・Ｌは特定領域の体積ｄＶである。
【０１３２】
【数３９】
2004225618.tif 000042
【０１３３】
この（３９）式を変形すると、下記（４０）式が得られる。
【０１３４】
【数４０】
2004225618.tif 000043
【０１３５】
この（４０）式を、（３５）式と（３７）式とを用いながら離散化すると、下記の（４１）式が得られる。
【０１３６】
【数４１】
2004225618.tif 000044
【０１３７】
この（４１）式を変形すると、下記（４２）式〜（４４）式が得られ、これらから酸素吸蔵密度Ｏｓｔを求めること（更新して行くこと）ができる。
【０１３８】
【数４２】
2004225618.tif 000045
【０１３９】
【数４３】
2004225618.tif 000046
【０１４０】
【数４４】
2004225618.tif 000047
【０１４１】
このように、式（４２）〜（４４）式から酸素吸蔵密度Ｏｓｔが求められるので、上述したようにＣｇｏｕｔ，ｓｔｏｒ，ｉ、Ｃｇｏｕｔ，ｒｅｄｕｃ，ｉを求めることができる。以上のようにして、各ブロックから流出する排ガス中の酸素濃度を求める手段がガス空燃比関連値取得手段に相当する。また、酸素吸蔵密度Ｏｓｔが求められるから、下記（４５）式に基づいて特定領域の酸素吸蔵量ＯＳＡを求めることができる。
【数４５】
2004225618.tif 000048
【０１４２】
従って、触媒に流入する化学種濃度Ｃｇｉｎ，ｉが境界条件として与えられたとき、触媒上流のブロック（特定領域）から、順次、（４５）式を用いて各ブロックの酸素吸蔵量ＯＳＡを求めることができ、これにより、触媒内部の酸素吸蔵量の分布が精度良く推定される。また、各ブロックの酸素吸蔵量ＯＳＡを触媒全体について積算すれば、同触媒全体の酸素吸蔵量についても精度良く推定することができる。以上が、本排気浄化装置が使用する触媒モデルである。そして、本排気浄化装置は、先に説明したように、別途後述するように求めた各ブロック毎の最大酸素吸蔵量に基づいて、第１触媒５３の各ブロック及び第２触媒５４の各ブロックの中から上述した制御用ブロックｉ（中間ブロックｉ、１＜ｉ＜（ｒ＋ｍ））を決定（選択）し、触媒モデルにより推定されている同決定された制御用ブロックｉから流出する排ガス中の制御用酸素濃度ＣｇｏｕｔＯ２ｃを用いて図４に示した空燃比のパータベーション制御を行う。
【０１４３】
（実際の作動）
次に、上記排気浄化装置の第１実施形態の実際の作動について、ＣＰＵ７１が実行するルーチンを示したフローチャートを参照しながら説明する。なお、本排気浄化装置の触媒モデルは、酸素及び一酸化窒素をストレージエージェントとして考慮し、一酸化炭素及び炭化水素をリダクションエージェントとして考慮している。これに対し、酸素のみでストレージエージェントを代表させてもよいし、一酸化炭素のみでリダクションエージェントを代表させてもよい。
【０１４４】
ＣＰＵ７１は、各気筒のクランク角が各吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、図１０に示したルーチンを繰り返し実行するようになっている。従って、任意の気筒のクランク角度が前記所定クランク角度になると、ＣＰＵ７１はステップ１０００から処理を開始してステップ１００５に進み、エアフローメータ６１により計測された吸入空気流量Ｇａと、エンジン回転速度ＮＥと、後述するルーチンにより求められている目標空燃比ａｂｙｆｒ（ｋ）とに基いて、機関に供給される混合気の空燃比を同目標空燃比ａｂｙｆｒ（ｋ）とするための基本燃料噴射量Ｆｂａｓｅをマップから求める。
【０１４５】
次いで、ＣＰＵ７１はステップ１０１０に進み、基本燃料噴射量Ｆｂａｓｅに係数Ｋを乗じた値に後述する空燃比フィードバック補正量（メインフィードバック制御量）ＤＦｉを加えた値を最終燃料噴射量Ｆｉとして設定する。この係数Ｋの値は、通常は「１．００」であり、後述するように、各触媒５３，５４の各最大酸素吸蔵量ＣｍａｘＳＣａｌｌ，ＣｍａｘＵＦａｌｌを求めるために強制的に空燃比を変更するとき、「１．００」以外の所定値に設定される。
【０１４６】
ついで、ＣＰＵ７１はステップ１０１５に進み、最終燃料噴射量Ｆｉの燃料を噴射するための指示をインジェクタ３９に対して行う。その後、ＣＰＵ７１はステップ１０２０に進み、その時点の燃料噴射量合計量ｍｆｒに最終燃料噴射量Ｆｉを加えた値を新たな燃料噴射量積算値ｍｆｒに設定する。この燃料噴射量積算値ｍｆｒは、後述する酸素吸蔵量を算出する際に用いられる。その後、ＣＰＵ７１はステップ１０９５に進み、本ルーチンを一旦終了する。以上により、フィードバック補正された最終燃料噴射量Ｆｉの燃料が吸気行程を迎える気筒に対して噴射される。
【０１４７】
次に、制御用ブロック及び制御用酸素濃度ＣｇｏｕｔＯ２ｃの決定方法について説明すると、ＣＰＵ７１は図１１に示したルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ１１００から処理を開始し、ステップ１１０５に進んで判定用最大酸素吸蔵量ＣｍａｘＳＣｈに「０」を設定し、続くステップ１１１０にてカウンタ値ｎの値を「０」に設定する。次いで、ＣＰＵ７１はステップ１１１５に進み、カウンタ値ｎの値を「１」だけ増大してステップ１１２０に進み、現時点の判定用最大酸素吸蔵量ＣｍａｘＳＣｈに、その時点で求められている第１触媒５３のブロックｎにおける最大酸素吸蔵量ＣｍａｘＳＣ＜ｎ＞（この時点ではカウンタ値ｎの値は「１」であるから、第１触媒５３のブロック１における最大酸素吸蔵量ＣｍａｘＳＣ＜１＞）を加えて新たな判定用最大酸素吸蔵量ＣｍａｘＳＣｈを求める。
【０１４８】
次に、ＣＰＵ７１はステップ１１２５に進み、判定用最大酸素吸蔵量ＣｍａｘＳＣｈが所定の閾値Ｃｔｈより大きいか否かを判定する。このとき、判定用最大酸素吸蔵量ＣｍａｘＳＣｈが所定の閾値Ｃｔｈより小さければ、ＣＰＵ７１はステップ１１２５にて「Ｎｏ」と判定してステップ１１３０に進みカウンタ値ｎの値が第１触媒５３の総ブロック数ｒと等しいか否かを判定する。
【０１４９】
現時点ではカウンタ値ｎの値は「１」である。従って、ＣＰＵ７１はステップ１１３０にて「Ｎｏ」と判定し、再びステップ１１１５に戻ってカウンタ値ｎの値を「１」だけ増大し、ステップ１１２０及びステップ１１２５の処理を実行する。この結果、判定用最大酸素吸蔵量ＣｍａｘＳＣｈは、第１触媒５３の最上流のブロックである第１番目のブロックと第２番目のブロックの最大酸素吸蔵量の積算値ＣｍａｘＳＣ＜１＞＋ＣｍａｘＳＣ＜２＞となる。そして、この積算値ＣｍａｘＳＣ＜１＞＋ＣｍａｘＳＣ＜２＞が閾値Ｃｔｈを超えなければＣＰＵ７１はステップ１１２５から再びステップ１１３０に進み、更に、カウンタ値ｎの値が前記ブロック数ｒと等しくなければ再びステップ１１１５にてカウント値ｎの値を「１」だけ増大し、ステップ１１２０の処理を実行する。この結果、その時点の判定用最大酸素吸蔵量ＣｍａｘＳＣｈ（この時点ではＣｍａｘＳＣ＜１＞＋ＣｍａｘＳＣ＜２＞）に第１触媒５３のブロックｎの最大酸素吸蔵量ＣｍａｘＳＣ＜ｎ＞（この時点ではｎ＝３であるあるからＣｍａｘＳＣ＜３＞）が加算され、新たな判定用最大酸素吸蔵量ＣｍａｘＳＣｈ（＝ＣｍａｘＳＣ＜１＞＋ＣｍａｘＳＣ＜２＞＋ＣｍａｘＳＣ＜３＞）が求められる。
【０１５０】
このような処理は、判定用最大酸素吸蔵量ＣｍａｘＳＣｈが閾値Ｃｔｈを超えない限り繰り返し行われる。従って、判定用最大酸素吸蔵量ＣｍａｘＳＣｈは、第１触媒５３の最上流のブロックである第１番目のブロックから第ｎ番目のブロックまでの各ブロックｎの最大酸素吸蔵量ＣｍａｘＳＣ＜ｎ＞の積算値（合計値）として求められる。
【０１５１】
このような処理の実行中、判定用最大酸素吸蔵量ＣｍａｘＳＣｈが所定の閾値Ｃｔｈより大きくなった場合、ＣＰＵ７１はステップ１１２５にて「Ｙｅｓ」と判定してステップ１１３５に進み、制御用酸素濃度ＣｇｏｕｔＯ２ｃに第１触媒５３の第ｎ番目のブロックｎから流出する後述する排ガス中の酸素濃度ＣｇｏｕｔＳＣ，Ｏ２＜ｎ＞を設定し、ステップ１１９５に進んで本ルーチンを一旦終了する。この場合、制御用ブロック（中間ブロック）ｉは、第１触媒５３の第ｎ番目のブロックｎとなる（ｉ＝ｎ）。
【０１５２】
また、第１触媒５３の第１番目のブロックから第ｒ番目のブロックの総べてのブロックの各最大酸素吸蔵量ＣｍａｘＳＣ＜ｎ＞の積算値（即ち、第１触媒５３全体の最大酸素吸蔵量ＣｍａｘＳＣａｌｌ）が所定の閾値Ｃｔｈより小さいとき、ＣＰＵ７１はステップ１１２５にて「Ｙｅｓ」と判定することはなく、カウンタ値ｎの値がｒとなったときにステップ１１３０にて「Ｙｅｓ」と判定し、ステップ１１４０に進んで判定用最大酸素吸蔵量ＣｍａｘＵＦｈに第１触媒５３全体の最大酸素吸蔵量ＣｍａｘＳＣａｌｌを設定する。次いで、ＣＰＵ７１は、ステップ１１４５にてカウンタ値ｎの値を「０」に設定し、ステップ１１５０以降に進む。
【０１５３】
ステップ１１５０〜ステップ１１６５までの処理は、ステップ１１１５〜ステップ１１３０までの処理と同様である。簡単に説明すると、ＣＰＵ７１は、ステップ１１５０及びステップ１１５５にて第１触媒５３全体の最大酸素吸蔵量ＣｍａｘＳＣａｌｌに第２触媒５４の最上流のブロック（第１番目のブロック）から同第２触媒５４の第ｎ番目のブロックまでの各ブロックｎの最大酸素吸蔵量ＣｍａｘＵＦ＜ｎ＞の積算値を加えた値を、判定用最大酸素吸蔵量ＣｍａｘＵＦｈとして求める。第２触媒５４の第ｎ番目となるブロックｎは第１触媒５３の最上流のブロックから数えて（ｒ＋ｎ）番目のブロックということになる。従って、（ｒ＋ｎ）をｐとするとき、判定用最大酸素吸蔵量ＣｍａｘＵＦｈは、第１触媒５３及び第２触媒５４を一つの触媒装置とみなしたときの最上流のブロックである第１番目のブロックから第ｐ番目のブロックまでのブロックにより構成される触媒装置上流部の各ブロックの最大酸素吸蔵量の積算値ということになる。
【０１５４】
そして、ＣＰＵ７１は、判定用最大酸素吸蔵量ＣｍａｘＵＦｈが所定の閾値Ｃｔｈより大きくなった場合、ステップ１１６０にて「Ｙｅｓ」と判定してステップ１１７０に進み、制御用酸素濃度ＣｇｏｕｔＯ２ｃに第２触媒５４の第ｎ番目のブロックから流出する後述する排ガス中の酸素濃度ＣｇｏｕｔＵＦ，Ｏ２＜ｎ＞を設定し、ステップ１９９５に進んで本ルーチンを一旦終了する。この場合、制御用ブロック（中間ブロック）ｉは、第２触媒５４の第ｎ番目のブロックｎとなる（ｉ＝ｒ＋ｎ）。
【０１５５】
また、第１触媒５３〜第２触媒５４の各最大酸素吸蔵量の和（ＣｍａｘＳＣａｌｌ＋ＣｍａｘＵＦａｌｌ）が所定の閾値Ｃｔｈより小さいとき、ＣＰＵ７１はステップ１１６０にて「Ｙｅｓ」と判定することはなく、カウンタ値ｎの値が第２触媒５４のブロック数ｍとなったときステップ１１６５にて「Ｙｅｓ」と判定し、この場合は上記ステップ１１７０を経由してステップ１１９５に進み、本ルーチンを一旦終了する。
【０１５６】
このように、ｎを自然数とし、第１触媒５３〜第２触媒５４を一つの触媒装置とみなしたとき、その触媒装置の第１番目のブロックから第ｎ番目のブロックまでのブロックにより構成される触媒装置上流部の各ブロックの最大酸素吸蔵量の積算値（判定用最大酸素吸蔵量）が所定の閾値Ｃｔｈを超える触媒装置上流部のうち、前記値ｎが最も小さい触媒装置上流部の最下流のブロック（第１触媒５３の第１番目のブロックから数えて第ｎ番目のブロック）である制御用ブロックｉから流出する排ガス中の酸素濃度が制御用酸素濃度ＣｇｏｕｔＯ２ｃとして設定される。従って、制御用ブロックｉは、触媒装置が劣化してその最大酸素吸蔵量が低下するにつれて徐々に下流側に移動することになる。
【０１５７】
次に、上記目標空燃比ａｂｙｆｒ（ｋ）の算出について説明すると、ＣＰＵ７１は図１２に示したルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ１２００から処理を開始し、ステップ１２０５に進んで、後述する空燃比強制設定制御実行中フラグＸＨＡＮの値が「０」であるか否かを判定する。なお、空燃比強制設定制御実行中フラグＸＨＡＮは、その値が「１」のとき最大酸素吸蔵量ＣｍａｘＳＣａｌｌ，ＣｍａｘＵＦａｌｌの算出のために強制的に空燃比を変更する空燃比制御（アクティブ制御）を実行していることを示し、その値が「０」のとき同最大酸素吸蔵量ＣｍａｘＳＣａｌｌ，ＣｍａｘＵＦａｌｌの算出のための空燃比制御を実行していないことを示す。
【０１５８】
いま、最大酸素吸蔵量算出のための空燃比制御を実行しておらず、且つ、上述した図１１のルーチンにて求められている制御用ブロックｉから流出する排ガス中の酸素濃度である制御用酸素濃度ＣｇｏｕｔＯ２ｃが正の閾値Ｃｒｅｆｐｌｓ以下の状態から同正の閾値Ｃｒｅｆｐｌｓより大きい状態へと変化したとして説明を続ける。この場合、ＣＰＵ７１はステップ１２０５にて「Ｙｅｓ」と判定してステップ１２１０に進み、ＣｇｏｕｔＯ２ｃが正の閾値Ｃｒｅｆｐｌｓより大きいか否かを判定する。前述の仮定に従えば、ＣｇｏｕｔＯ２ｃは正の閾値Ｃｒｅｆｐｌｓより大きいので、ＣＰＵ７１はステップ１２１０にて「Ｙｅｓ」と判定してステップ１２１５に進み、同ステップ１２１５にて本ルーチンを前回実行したときの（前回の）ＣｇｏｕｔＯ２ｃが閾値Ｃｒｅｆｐｌｓ以下であるか否かを判定する。前述の仮定に従えば、前回のＣｇｏｕｔＯ２ｃは正の閾値Ｃｒｅｆｐｌｓ以下であるので、ＣＰＵ７１はステップ１２１５にて「Ｙｅｓ」と判定してステップ１２２０に進み、同ステップ１２２０にて目標空燃比ａｂｙｆｒ（ｋ）に理論空燃比ｓｔｏｉｃｈよりも所定値α２だけリッチの空燃比を設定し、ステップ１２９５に進んで本ルーチンを一旦終了する。
【０１５９】
このように、本排気浄化装置は、制御用酸素濃度ＣｇｏｕｔＯ２ｃが正の閾値Ｃｒｅｆｐｌｓ以下の状態から同正の閾値Ｃｒｅｆｐｌｓより大きい状態へと変化したとき、目標空燃比ａｂｙｆｒ（ｋ）を理論空燃比ｓｔｏｉｃｈよりも所定値α２だけリッチの空燃比に変更し、これ以降、ＣＰＵ７１は図１０のステップ１００５に進んだとき基本燃料噴射量Ｆｂａｓｅを、機関に供給される混合気の空燃比（従って、第１触媒５３に流入する空燃比）を同目標空燃比ａｂｙｆｒ（ｋ）（理論空燃比ｓｔｏｉｃｈ−α２）とするための値に変更する。この結果、第１，第２触媒５３，５４にリッチな空燃比の排ガスが流入するようになり、図４の時刻ｔ２〜ｔ３に示したように、制御ブロックｉから流出する酸素濃度ＣｇｏｕｔＯ２ｃが略「０」に維持されるようになる。
【０１６０】
なお、今回及び前回の制御用酸素濃度ＣｇｏｕｔＯ２ｃが正の閾値Ｃｒｅｆｐｌｓより大きいとき、ＣＰＵ７１はステップ１２１０にて「Ｙｅｓ」、ステップ１２１５にて「Ｎｏ」と判定し、そのままステップ１２９５に進んで本ルーチンを一旦終了する。この結果、目標空燃比ａｂｙｆｒ（ｋ）は理論空燃比ｓｔｏｉｃｈ−α２に維持され、機関に供給される混合気の空燃比も理論空燃比−α２に近づくように調整される。
【０１６１】
一方、最大酸素吸蔵量算出のための空燃比制御を実行しておらず、且つ、制御用ブロックｉから流出する酸素濃度ＣｇｏｕｔＯ２ｃが負の閾値Ｃｒｅｆｍｎｓ以上の状態から同負の閾値Ｃｒｅｆｍｎｓより小さい状態へと変化したとして説明を続ける。この場合、ＣＰＵ７１はステップ１２０５にて「Ｙｅｓ」、ステップ１２１０にて「Ｎｏ」と判定してステップ１２２５に進み、ＣｇｏｕｔＯ２ｃが負の閾値Ｃｒｅｆｍｎｓより小さいか否かを判定する。前述の仮定に従えば、ＣｇｏｕｔＯ２ｃは負の閾値Ｃｒｅｆｍｎｓより小さいので、ＣＰＵ７１はステップ１２２５にて「Ｙｅｓ」と判定してステップ１２３０に進み、同ステップ１２３０にて本ルーチンを前回実行したときの（前回の）ＣｇｏｕｔＯ２ｃが閾値Ｃｒｅｆｍｎｓ以上であるか否かを判定する。前述の仮定に従えば、前回のＣｇｏｕｔＯ２ｃは閾値Ｃｒｅｆｍｎｓ以上であるので、ＣＰＵ７１はステップ１２３０にて「Ｙｅｓ」と判定してステップ１２３５に進み、同ステップ１２３５にて目標空燃比ａｂｙｆｒ（ｋ）に理論空燃比ｓｔｏｉｃｈよりも所定値α１だけリーンの空燃比を設定し、ステップ１２９５に進んで本ルーチンを一旦終了する。
【０１６２】
このように、本排気浄化装置は、制御用酸素濃度ＣｇｏｕｔＯ２ｃが負の閾値Ｃｒｅｆｍｎｓ以上の状態から同負の閾値Ｃｒｅｆｍｎｓより小さい状態へと変化したとき、目標空燃比ａｂｙｆｒ（ｋ）を理論空燃比ｓｔｏｉｃｈよりも所定値α１だけリーンの空燃比に変更し、これ以降、ＣＰＵ７１は図１０のステップ１００５に進んだとき基本燃料噴射量Ｆｂａｓｅを、機関に供給される混合気の空燃比を同目標空燃比ａｂｙｆｒ（ｋ）（理論空燃比ｓｔｏｉｃｈ＋α１）とするための値に変更する。この結果、第１，第２触媒５３，５４にリーンな空燃比の排ガスが流入するようになり、図４の時刻ｔ１〜ｔ２及び時刻ｔ３〜ｔ４に示したように、制御ブロックｉから流出する酸素濃度ＣｇｏｕｔＯ２ｃが略「０」に維持されるようになる。
【０１６３】
なお、今回及び前回の酸素濃度ＣｇｏｕｔＯ２ｃが負の閾値Ｃｒｅｆｍｎｓより小さいとき、ＣＰＵ７１はステップ１２１０にて「Ｎｏ」、ステップ１２２５にて「Ｙｅｓ」、ステップ１２３０にて「Ｎｏ」と判定し、そのままステップ１２９５に進んで本ルーチンを一旦終了する。この結果、目標空燃比ａｂｙｆｒ（ｋ）は理論空燃比ｓｔｏｉｃｈ＋α１に維持され、機関に供給される混合気の空燃比も理論空燃比＋α１に近づくように調整される。
【０１６４】
また、最大酸素吸蔵量算出のための空燃比制御を実行中であれば空燃比強制設定制御実行中フラグＸＨＡＮの値が「１」になっているので、ＣＰＵ７１はステップ１２０５にて「Ｎｏ」と判定してステップ１２４０に進み、同ステップ１２４０に目標空燃比ａｂｙｆｒ（ｋ）の値を理論空燃比ｓｔｏｉｃｈに設定し（上述したように最大酸素吸蔵量算出のための空燃比制御は図１０のステップ１０１０の係数Ｋの値を変更することで行う。）、次いでステップ１２９５に進んで本ルーチンを一旦終了する。以上のように、目標空燃比ａｂｙｆｒ（ｋ）は、制御用ブロックｉから流出する排ガス中の酸素濃度である制御用酸素濃度ＣｇｏｕｔＯ２ｃが正の閾値Ｃｒｅｆｐｌｓと負の閾値Ｃｒｅｆｍｎｓとの間の所定値になるように決定される。
【０１６５】
次に、上記メインフィードバック制御量ＤＦｉの算出について説明すると、ＣＰＵ７１は図１３にフローチャートにより示したルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ１３００から処理を開始し、ステップ１３０５に進んで空燃比フィードバック制御条件（メインフィードバック条件）が成立しているか否かを判定する。この空燃比フィードバック制御条件は、例えば、機関の冷却水温ＴＨＷが第１所定温度以上であり、機関の一回転当りの吸入空気量（負荷、筒内吸入空気量Ｍｃ）が所定値以下であり、最上流空燃比センサ６６が正常（活性状態であることを含む。）であり、且つ、後述する空燃比強制設定制御実行中フラグＸＨＡＮの値が「０」のときに成立する。
【０１６６】
いま、空燃比フィードバック制御条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１３０５にて「Ｙｅｓ」と判定してステップ１３１０に進み、現時点の最上流空燃比センサ６６の出力ｖａｂｙｆｓを図２に示したマップに基いて変換することにより、現時点における第１触媒５３上流の実空燃比ａｂｙｆｓを求める。
【０１６７】
次に、ＣＰＵ７１はステップ１３１５に進み、現時点からＮストローク（Ｎ回の吸気行程）前に吸気行程を迎えた気筒の吸入空気量である筒内吸入空気量Ｍｃ（ｋ−Ｎ）を前記求めた実空燃比ａｂｙｆｓで除することにより、現時点からＮストローク前の筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求める。値Ｎは、内燃機関の排気量、燃焼室２５から最上流空燃比センサ６６までの距離等により異なる値である。
【０１６８】
このように、現時点からＮストローク前の筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求めるために、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）を現時点における実空燃比ａｂｙｆｓで除するのは、燃焼室２５内で燃焼された混合気が最上流空燃比センサ６６に到達するまでには、Ｎストロークに相当する時間を要しているからである。なお、筒内吸入空気量Ｍｃは、各気筒の吸気行程に対応されながらＲＡＭ７３内に記憶されるようになっている。
【０１６９】
次いで、ＣＰＵ７１はステップ１３２０に進み、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）を現時点からＮストローク前の時点において図１２のルーチンにて既に求められている目標空燃比ａｂｙｆｒ（ｋ−Ｎ）で除することにより、現時点からＮストローク前の目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）を求める。そして、ＣＰＵ７１はステップ１３２５に進んで目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）から筒内燃料供給量Ｆｃ（ｋ−Ｎ）を減じた値を筒内燃料供給量偏差ＤＦｃとして設定する。つまり、筒内燃料供給量偏差ＤＦｃは、Ｎストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。次に、ＣＰＵ７１はステップ１３３０に進み、下記数４６に基いてメインフィードバック制御量ＤＦｉを求める。
【０１７０】
【数４６】
ＤＦｉ＝（Ｇｐ・ＤＦｃ＋Ｇｉ・ＳＤＦｃ）・ＫＦＢ
【０１７１】
上記数４６において、Ｇｐは予め設定された比例ゲイン（比例定数）、Ｇｉは予め設定された積分ゲイン（積分定数）である。なお、数４６の係数ＫＦＢはエンジン回転速度ＮＥ、及び筒内吸入空気量Ｍｃ等により可変とすることが好適であるが、ここでは「１」としている。また、値ＳＤＦｃは筒内燃料供給量偏差ＤＦｃの積分値であり、次のステップ１３３５にて更新される。即ち、ＣＰＵ７１は、ステップ１３３５にてその時点における筒内燃料供給量偏差ＤＦｃの積分値ＳＤＦｃに上記ステップ１３２５にて求めた筒内燃料供給量偏差ＤＦｃを加えて、新たな筒内燃料供給量偏差の積分値ＳＤＦｃを求め、ステップ１３９５にて本ルーチンを一旦終了する。
【０１７２】
以上により、メインフィードバック制御量ＤＦｉが比例積分制御により求められ、このメインフィードバック制御量ＤＦｉが前述した図１０のステップ１０１０により燃料噴射量に反映されるので、Ｎストローク前の燃料供給量の過不足が補償され、内燃機関に供給される混合気の空燃比の平均値が目標空燃比ａｂｙｆｒと略一致せしめられるようにフィードバック制御される。
【０１７３】
一方、ステップ１３０５の判定時において、空燃比フィードバック制御条件が不成立であると、ＣＰＵ７１は同ステップ１３０５にて「Ｎｏ」と判定してステップ１３４０に進み、メインフィードバック制御量ＤＦｉの値を「０」に設定し、その後ステップ１３９５に進んで本ルーチンを一旦終了する。このように、空燃比フィードバック制御条件が不成立であるとき（空燃比強制設定制御実行中を含む）は、メインフィードバック制御量ＤＦｉを「０」として空燃比（基本燃料噴射量Ｆｂａｓｅ）の補正を行わない。
【０１７４】
次に、最大酸素吸蔵量算出のために強制的に空燃比を変更する最大酸素吸蔵量取得制御について説明する。ＣＰＵ７１は図１４〜図１８のフローチャートにより示された各ルーチンを所定時間の経過毎に実行するようになっている。
【０１７５】
従って、所定のタイミングになると、ＣＰＵ７１は図１４のステップ１４００から処理を開始し、ステップ１４０５に進んで最大酸素吸蔵量取得制御実行中フラグＸＨＡＮの値が「０」であるか否かを判定する。いま、最大酸素吸蔵量算出のための最大酸素吸蔵量取得制御を行っておらず、且つ、最大酸素吸蔵量取得制御開始条件が成立していないとして説明を続けると、最大酸素吸蔵量取得制御実行中フラグＸＨＡＮの値は「０」となっている。従って、ＣＰＵ７１はステップ１４０５にて「Ｙｅｓ」と判定してステップ１４１０に進み、先に説明した図１０のステップ１０１０にて使用される係数Ｋの値を１．００に設定する。
【０１７６】
次いで、ＣＰＵ７１はステップ１４１５にて最大酸素吸蔵量取得制御の開始条件が成立しているか否かを判定する。この最大酸素吸蔵量取得制御の開始条件は、冷却水温ＴＨＷが所定温度以上であり、図示しない車速センサにより得られた車速が所定の高車速以上であり、スロットル弁開度ＴＡの単位時間あたりの変化量が所定量以下である等の機関が定常運転されている条件が成立し、第１，第２触媒下流空燃比センサ出力ｖｏｘｓ１，ｖｏｘｓ２が共に理論空燃比よりもリッチな空燃比に相当する出力を発生し、且つ、前回の最大酸素吸蔵量取得制御実行時点から所定時間が経過している場合等に成立する。現段階では、上述したように、最大酸素吸蔵量取得制御の開始条件は成立していないから、ＣＰＵ７１はステップ１４１５にて「Ｎｏ」と判定してステップ１４９５に進み、本ルーチンを一旦終了する。
【０１７７】
次に、現時点では最大酸素吸蔵量取得制御を行っていないが、最大酸素吸蔵量取得制御の開始条件が成立したものとして説明を続けると、この場合、ＣＰＵ７１はステップ１４０５にて「Ｙｅｓ」と判定してステップ１４１０に進み、同ステップ１４１０にて係数Ｋの値を１．００に設定する。次いで、ＣＰＵ７１は、開始条件が成立しているので、ステップ１４１５にて「Ｙｅｓ」と判定してステップ１４２０に進み、同ステップ１４２０にて最大酸素吸蔵量取得制御実行中フラグＸＨＡＮの値を「１」に設定する。
【０１７８】
そして、ＣＰＵ７１はステップ１４２５に進み、第１モードに移行するためにＭｏｄｅの値を「１」に設定するとともに、続くステップ１４３０にて係数Ｋの値を０．９８に設定し、ステップ１４９５に進んで本ルーチンを一旦終了する。これにより、前述の空燃比フィードバック制御条件が成立しなくなるから、ＣＰＵ７１は図１３のステップ１３０５にて「Ｎｏ」と判定してステップ１３４０に進むようになり、空燃比フィードバック補正量ＤＦｉの値は「０」に設定される。この結果、図１０のステップ１０１０の実行により、基本燃料噴射量Ｆｂａｓｅが０．９８倍された値が最終燃料噴射量Ｆｉとして算出され、この最終燃料噴射量Ｆｉの燃料が噴射されるので、機関に供給される混合気の空燃比（従って、第１触媒５３に流入するガスの空燃比）は理論空燃比よりもリーンな所定のリーン空燃比に制御される。
【０１７９】
以降、ＣＰＵ７１は図１４のルーチンの処理をステップ１４００から繰り返し実行するが、最大酸素吸蔵量取得制御実行中フラグＸＨＡＮの値が「１」となっていることから、ステップ１４０５にて「Ｎｏ」と判定して直ちにステップ１４９５に進み、本ルーチンを一旦終了するようになる。
【０１８０】
一方、ＣＰＵ７１は図１５に示した第１モード制御ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングとなると、ＣＰＵ７１はステップ１５００から処理を開始してステップ１５０５に進み、同ステップ１５０５にてＭｏｄｅの値が「１」であるか否かを判定する。このとき、Ｍｏｄｅの値が「１」でなければ、ＣＰＵ７１は直ちにステップ１５９５に進んで本ルーチンを一旦終了する。以下、先の図１４のステップ１４２５の処理によりＭｏｄｅの値が「１」に変更された直後であるとして説明を続けると、この場合、ＣＰＵ７１はステップ１５０５にて「Ｙｅｓ」と判定してステップ１５１０に進み、第１触媒下流空燃比センサ出力ｖｏｘｓ１、及び第２触媒下流空燃比センサ出力ｖｏｘｓ２が共に理論空燃比よりもリーンな空燃比に相当する出力（酸素が過剰に存在する場合の出力）となったか否かを判定する。
【０１８１】
現時点では、機関に供給される混合気の空燃比を所定のリーン空燃比に変更した直後であるから、第１触媒下流空燃比センサ出力ｖｏｘｓ１、及び第２触媒下流空燃比センサ出力ｖｏｘｓ２が共に理論空燃比よりもリーンな空燃比に相当する出力とはなっていないので、ＣＰＵ７１はステップ１５１０にて「Ｎｏ」と判定し、ステップ１５９５にて本ルーチンを一旦終了する。
【０１８２】
以降、ＣＰＵ７１は図１５のステップ１５００〜１５１０を繰り返し実行する。また、空燃比は所定のリーン空燃比に維持されているから、時間経過に伴って第１触媒５３から第２触媒５４の順に各酸素吸蔵量が各触媒の最大酸素吸蔵量に到達する。従って、これに応じて第１触媒下流空燃比センサ出力ｖｏｘｓ１、及び第２触媒下流空燃比センサ出力ｖｏｘｓ２は、順に理論空燃比よりもリーンな空燃比に相当する出力に変化する。これにより、ＣＰＵ７１はステップ１５１０に進んだとき、同ステップ１５１０にて「Ｙｅｓ」と判定してステップ１５１５に進み、同ステップ１５１５にてＭｏｄｅの値を「２」に設定するとともに、続くステップ１５２０にて係数Ｋの値を１．０２に設定し、その後ステップ１５９５にて本ルーチンを一旦終了する。この結果、機関に供給される混合気の空燃比が理論空燃比よりリッチな所定のリッチ空燃比に制御される。
【０１８３】
また、ＣＰＵ７１は図１６にフローチャートにより示した第２モード制御ルーチンを所定時間の経過毎に繰り返し実行している。従って、ＣＰＵ７１は、所定のタイミングになると、ステップ１６００から処理を開始し、ステップ１６０５にてＭｏｄｅの値が「２」であるか否かを判定し、Ｍｏｄｅの値が「２」でなければステップ１６０５からステップ１６９５に進んで本ルーチンを一旦終了するように作動している。
【０１８４】
一方、先のステップ１５１５の処理によりＭｏｄｅの値が「２」に変更されると、ＣＰＵ７１はステップ１６０５に進んだとき「Ｙｅｓ」と判定してステップ１６１０に進み、同ステップ１６１０にて第１触媒下流空燃比センサ６７の出力ｖｏｘｓ１が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化したか否かを判定する。この時点では、空燃比が前記所定のリッチ空燃比に変更された直後であるから、ＣＰＵ７１はステップ１６１０にて「Ｎｏ」と判定し、ステップ１６９５に進んで本ルーチンを一旦終了する。
【０１８５】
これ以降、機関に供給される混合気の空燃比は前記所定のリッチ空燃比に維持されるから、第１触媒５３に貯蔵されている酸素が消費されて行き、所定の時間が経過すると同第１触媒５３の酸素吸蔵量が「０」に至る。この結果、第１触媒５３から未燃ＨＣ，ＣＯが流出し始めるので、第１触媒下流空燃比センサ６７の出力ｖｏｘｓ１が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化する。これにより、ＣＰＵ７１は、ステップ１６１０に進んだとき同ステップ１６１０にて「Ｙｅｓ」と判定してステップ１６１５に進み、同ステップ１６１５にてＭｏｄｅの値を「３」に変更し、ステップ１６９５にて本ルーチンを一旦終了する。
【０１８６】
同様に、ＣＰＵ７１は、所定時間の経過毎に繰り返し実行する図１７にフローチャートにより示した第３モード制御ルーチンにおいて、ステップ１７０５にてＭｏｄｅの値が「３」であるか否かを判定し、Ｍｏｄｅの値が「３」でなければステップ１７０５からステップ１７９５に進んで本ルーチンを一旦終了している。
【０１８７】
一方、先のステップ１６１５の処理によりＭｏｄｅの値が「３」に変更されると、ＣＰＵ７１はステップ１７０５に進んだとき「Ｙｅｓ」と判定してステップ１７１０に進み、同ステップ１７１０にて第２触媒下流空燃比センサ６８の出力ｖｏｘｓ２が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化したか否かを判定する。この時点では、第１触媒５３から未燃ＨＣ，ＣＯが流出し始めた直後であり、第２触媒５４から未燃ＨＣ，ＣＯは流出してこないので、ＣＰＵ７１はステップ１７１０にて「Ｎｏ」と判定し、ステップ１７９５に進んで本ルーチンを一旦終了する。
【０１８８】
その後、機関に供給される混合気の空燃比は、引き続いて前記所定のリッチ空燃比に維持されるから、第２触媒５４に貯蔵されている酸素が消費されて行き、所定の時間が経過すると同第２触媒５４の酸素吸蔵量が「０」に至る。この結果、第２触媒５４から未燃ＨＣ，ＣＯが流出し始めるので、第２触媒下流空燃比センサ６８の出力ｖｏｘｓ２が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化する。これにより、ＣＰＵ７１はステップ１７１０からステップ１７１５に進み、Ｍｏｄｅの値を「０」に再設定し、続くステップ１７２０にて最大酸素吸蔵量取得制御から前述したパータベーション制御に移行するため目標空燃比ａｂｙｆｒ（ｋ）を理論空燃比ｓｔｏｉｃｈから前記所定値α１だけリーンな空燃比に設定した後、続くステップ１７２５にて最大酸素吸蔵量取得制御実行中フラグＸＨＡＮの値を「０」に設定し、ステップ１７９５に進んで本ルーチンを一旦終了する。
【０１８９】
この状態となると、ＣＰＵ７１は図１４のルーチンを実行する際、ステップ１４０５にて「Ｙｅｓ」と判定してステップ１４１０に進むので、係数Ｋの値が１．００に戻される。また、図１０のステップ１００５にて機関に供給される混合気の空燃比をリーン空燃比（ｓｔｏｉｃｈ＋α１）に設定されている目標空燃比ａｂｙｆｒ（ｋ）とするための基本燃料噴射量Ｆｂａｓｅが算出され、また、空燃比フィードバック制御条件が成立していれば、ＣＰＵ７１は図１３のルーチンのステップ１３０５にて「Ｙｅｓ」と判定するから、空燃比フィードバック制御（メインフィードバック制御）が再開される。
【０１９０】
以上、説明したように、最大酸素吸蔵量取得制御の開始条件が成立すると、機関に供給される混合気の空燃比が所定のリーン空燃比、所定のリッチ空燃比の順に１回づつ強制的に制御される。
【０１９１】
次に、最大酸素吸蔵量取得のための酸素吸蔵量の算出における作動について説明する。ＣＰＵ７１は図１８のフローチャートにより示されたルーチンを所定時間（演算周期ｔｓａｍｐｌｅ）の経過毎に実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ１８００から処理を開始し、ステップ１８０５に進んで下記数４７により酸素吸蔵量変化量ΔＯ２を求める。
【０１９２】
【数４７】
ΔＯ２＝０．２３・ｍｆｒ・（ｓｔｏｉｃｈ  −  ａｂｙｆｓａｖｅ）
【０１９３】
上記数４７において、値「０．２３」は大気中に含まれる酸素の重量割合である。ｍｆｒは所定時間ｔｓａｍｐｌｅ内の燃料噴射量Ｆｉの合計量であり、ｓｔｏｉｃｈは理論空燃比（例えば、１４．７）である。ａｂｙｆｓａｖｅは所定時間ｔｓａｍｐｌｅにおいて最上流空燃比センサ６６により検出された空燃比Ａ／Ｆの平均値である。この数４７に示したように、所定時間ｔｓａｍｐｌｅ内の噴射量の合計量ｍｆｒに、検出された空燃比Ａ／Ｆの平均値の理論空燃比からの偏移（ｓｔｏｉｃｈ  −  ａｂｙｆｓａｖｅ）を乗じることで、同所定時間ｔｓａｍｐｌｅにおける空気の消費量（不足量）が求められる。この空気の消費量に酸素の重量割合を乗じることで同所定時間ｔｓａｍｐｌｅにおける酸素の消費量（酸素吸蔵量変化量ΔＯ２）が求められる。
【０１９４】
次いで、ＣＰＵ７１はステップ１８１０に進んでＭｏｄｅの値が「２」であるか否か（第２モードであるか否か）を判定し、Ｍｏｄｅの値が「２」であれば同ステップ１８１０にて「Ｙｅｓ」と判定してステップ１８１５に進み、その時点の酸素吸蔵量ＯＳＡ１に上記酸素吸蔵量変化量ΔＯ２を加えた値を新たな酸素吸蔵量ＯＳＡ１として設定し、その後ステップ１８３０に進む。
【０１９５】
このような処置（ステップ１８００〜１８１５）は、Ｍｏｄｅの値が「２」である限り繰り返し実行される。この結果、第１触媒５３の上流の空燃比が所定のリッチ空燃比とされる第２モード（Ｍｏｄｅ＝２）において、第１触媒５３の酸素吸蔵量ＯＳＡ１が算出されて行く。第２モードにおいては、第１触媒５３に貯蔵されている酸素が消費されて行くからである。なお、ステップ１８１０での判定において「Ｎｏ」と判定される場合、ＣＰＵ７１は同ステップ１８１０からステップ１８２０に直接進む。
【０１９６】
ＣＰＵ７１は、ステップ１８２０に進んだ場合、Ｍｏｄｅの値が「３」であるか否か（第３モードであるか否か）を判定し、Ｍｏｄｅの値が「３」であれば同ステップ１８２０にて「Ｙｅｓ」と判定してステップ１８２５に進み、その時点の酸素吸蔵量ＯＳＡ２に上記酸素吸蔵量変化量ΔＯ２を加えた値を新たな酸素吸蔵量ＯＳＡ２として設定し、その後ステップ１８３０に進む。
【０１９７】
このような処置（ステップ１８００，１８０５，１８１０，１８２０，１８２５）は、Ｍｏｄｅの値が「３」である限り繰り返し実行される。この結果、第１触媒５３の上流の空燃比が所定のリッチ空燃比とされる第３モード（Ｍｏｄｅ＝３）において、第２触媒５４の酸素吸蔵量ＯＳＡ２が算出されて行く。第３モードにおいては、第２触媒５４に貯蔵されている酸素が消費されて行くからである。なお、ステップ１８２０での判定において「Ｎｏ」と判定される場合、ＣＰＵ７１は同ステップ１８２０からステップ１８３０に直接進む。そして、ＣＰＵ７１は、ステップ１８３０に進むと、燃料噴射量Ｆｉの合計量ｍｆｒを「０」に設定し、その後ステップ１８９５に進んで本ルーチンを一旦終了する。
【０１９８】
次に、第１，第２触媒５３，５４の各最大酸素吸蔵量ＣｍａｘＳＣａｌｌ，ＣｍａｘＵＦａｌｌ、及び各触媒の各ブロックの最大酸素吸蔵量ＣｍａｘＳＣ＜ｎ＞，ＣｍａｘＵＦ＜ｎ＞を算出する際の作動について説明する。ＣＰＵ７１は図１９のフローチャートにより示されたルーチンを所定時間の経過毎に実行するようになっている。
【０１９９】
従って、所定のタイミングになると、ＣＰＵ７１は図１９のステップ１９００から処理を開始し、ステップ１９０５に進んで最大酸素吸蔵量取得制御実行中フラグＸＨＡＮの値が「１」から「０」に変化したか否かをモニタする。このとき、最大酸素吸蔵量取得制御実行中フラグＸＨＡＮの値が変化していなければ、ＣＰＵ７１はステップ１９０５からステップ１９９５に直接進んで本ルーチンを一旦終了する。
【０２００】
一方、前述した第３モードが終了した直後であるとすると、図１７のステップ１７２５にて最大酸素吸蔵量取得制御実行中フラグＸＨＡＮの値が「１」から「０」に変更されるから、ＣＰＵ７１はステップ１９０５にて「Ｙｅｓ」と判定してステップ１９１０に進み、その時点の酸素吸蔵量ＯＳＡ１，ＯＳＡ２を、それぞれ第１触媒５３全体の最大酸素吸蔵量ＣｍａｘＳＣａｌｌ、第２触媒５４全体の最大酸素吸蔵量ＣｍａｘＵＦａｌｌとして格納する。
【０２０１】
次いでＣＰＵ７１はステップ１９１５に進み、カウンタ値ｎの値を「０」に設定した後、ステップ１９２０に進んで第１触媒５３のブロック毎の最大酸素吸蔵量を算出する処理を開始する。まず、ＣＰＵ７１はステップ１９２０においてカウンタ値ｎの値を「１」だけ増大して「１」に設定した後、ステップ１９２５に進んで上記ステップ１９１０にて取得した第１触媒５３全体の最大酸素吸蔵量ＣｍａｘＳＣａｌｌの値と、カウンタ値ｎの値と、ステップ１９２５内に記載した式とに基いて第１触媒５３のブロックｎにおける最大酸素吸蔵量ＣｍａｘＳＣ＜ｎ＞を算出する。この時点ではカウンタ値ｎの値は「１」であるから、第１触媒５３のブロック１における最大酸素吸蔵量ＣｍａｘＳＣ（１）が算出される。
【０２０２】
ここで、ステップ１９２５内に記載した式について図２０を用いて簡単に説明する。図２０は、第１触媒５３のブロック毎の最大酸素吸蔵量ＣｍａｘＳＣ＜ｎ＞  （ｎ＝１，・・・，ｒ）を求める考え方を示した最大酸素吸蔵量分布マップであり、斜線で示された部分の面積は第１触媒５３全体の最大酸素吸蔵量ＣｍａｘＳＣａｌｌの値に対応している。
【０２０３】
このように、第１触媒５３のブロック毎の各最大酸素吸蔵量ＣｍａｘＳＣ＜ｎ＞は、同各最大酸素吸蔵量ＣｍａｘＳＣ＜ｎ＞の総和が第１触媒５３全体の最大酸素吸蔵量ＣｍａｘＳＣａｌｌの値となるように設定されるとともに、上流側のブロック１から下流側のブロックｒに推移するに従い、所定の勾配をもって線形的に増加するように設定される。これは、第１触媒５３の上流側部分の方が下流側部分に比して、内部に流入する排ガス中の鉛や硫黄等により被毒し易いので、同上流側部分の最大酸素吸蔵量が同下流側部分のものに比して低下し易くなるからである。
【０２０４】
かかる図２０に示した最大酸素吸蔵量分布マップに基いて第１触媒５３のブロック毎の各最大酸素吸蔵量ＣｍａｘＳＣ＜ｎ＞を求める式がステップ１９２５内に記載の式である。前記ステップ１９２５内に記載の式において、値Ａ１は正の定数であって、上記所定の勾配に相当する値である。なお、第１触媒５３のブロック毎の各最大酸素吸蔵量は、上流側のブロックから下流側のブロックに推移するに従い増加するように設定されていればよく、例えば、非線形的に増加するように設定されていてもよい。
【０２０５】
再び、図１９を参照すると、ＣＰＵ７１はステップ１９２５からステップ１９３０に進んでカウンタ値ｎの値が第１触媒５３のブロック数ｒと等しいか否かを判定する。現時点ではカウンタ値ｎの値は「１」であるから、ＣＰＵ７１はステップ１９３０にて「Ｎｏ」と判定し、再びステップ１９２０に戻ってカウンタ値ｎの値を「１」だけ増大した後ステップ１９２５及びステップ１９３０の処理を実行する。即ち、ステップ１９２０及びステップ１９２５の処理は、カウンタ値ｎの値が第１触媒５３のブロック数ｒと等しくなるまで繰り返し実行される。これにより、第１触媒５３の最上流のブロック１から最下流のブロックｒまでの各ブロックｎの最大酸素吸蔵量ＣｍａｘＳＣ＜ｎ＞の値が順次算出されていく。
【０２０６】
前述のステップ１９２０の処理が繰り返されることによりカウンタ値ｎの値が第１触媒５３のブロック数ｒと等しくなると、ＣＰＵ７１はステップ１９３０にて「Ｙｅｓ」と判定してステップ１９３５に進み、カウンタ値ｎの値を「０」に設定した後、ステップ１９４０に進んで第２触媒５４のブロック毎の各最大酸素吸蔵量ＣｍａｘＵＦ＜ｎ＞  （ｎ＝１，・・・，ｍ）を算出する処理を開始する。
【０２０７】
この第２触媒５４のブロック毎の各最大酸素吸蔵量ＣｍａｘＵＦ＜ｎ＞を算出する処理は、上述したステップ１９２０〜ステップ１９３０の処理と同様であるステップ１９４０〜ステップ１９５０までの処理を第２触媒５４のブロック数ｍ回だけ繰り返し実行することにより達成される。ステップ１９４５における最大酸素吸蔵量ＣｍａｘＵＦ＜ｎ＞の算出は、上記ステップ１９１０にて取得した第２触媒５４全体の最大酸素吸蔵量ＣｍａｘＵＦａｌｌの値と、カウンタ値ｎの値と、前記ステップ１９２５内に記載の式と同様のステップ１９４５内に記載した式とに基いて行われる。これにより、第２触媒５４の最上流のブロック１から最下流のブロックｍまでの各ブロックｎの最大酸素吸蔵量ＣｍａｘＵＦ＜ｎ＞の値が順次算出されていく。ステップ１９４５内に記載の式において、値Ａ２は前記値Ａ１と同様に正の定数であって、上記所定の勾配に相当する値である。なお、値Ａ２は値Ａ１と同一の値であっても異なる値であってもよい。
【０２０８】
ステップ１９４０の処理が繰り返されることによりカウンタ値ｎの値が第２触媒５４のブロック数ｍと等しくなると、ＣＰＵ７１はステップ１９５０にて「Ｙｅｓ」と判定してステップ１９５５に進み、酸素吸蔵量ＯＳＡ１，ＯＳＡ２の各々の値を「０」に設定した後、ステップ１９９５に進んで本ルーチンを一旦終了する。
【０２０９】
次に、触媒モデルにより第１触媒５３の各特定成分のＣｇｏｕｔＳＣを算出するためのルーチンについて説明する。このルーチンは図２１〜図２５の一連のフローチャートにより示されていて、ＣＰＵ７１はこれらのルーチンを所定時間の経過毎に繰り返し実行することで第１触媒５３の各ブロックｊ（ｊ＝１，・・・，ｒ）から流出する酸素濃度ＣｇｏｕｔＳＣ，Ｏ２＜ｊ＞、一酸化窒素濃度ＣｇｏｕｔＳＣ，ＮＯ＜ｊ＞、一酸化炭素濃度ＣｇｏｕｔＳＣ，ＣＯ＜ｊ＞、及び炭化水素濃度ＣｇｏｕｔＳＣ，ＨＣ＜ｊ＞を逐次算出する。
【０２１０】
従って、所定のタイミングになると、ＣＰＵ７１はステップ２１００から処理を開始し、ステップ２１０５に進んで第１触媒５３用の酸素吸蔵速度係数ｋｓｔｏｒＳＣ，Ｏ２（ｋ）＜ｊ＞及びｋｓｔｏｒＳＣ，ＮＯ（ｋ）＜ｊ＞と、酸素放出速度係数ｋｒｅｌＳＣ，ＣＯ（ｋ）＜ｊ＞及びｋｒｅｌＳＣ，ＨＣ（ｋ）＜ｊ＞とを、第１触媒５３の温度ＴｅｍｐＳＣと同第１触媒５３の劣化程度を表す劣化指標値ＲＥＫＫＡＳＣと図２６に示したようなマップ（ルックアップテーブル）とから決定する。なお、例えば、ｋｓｔｏｒＳＣ，Ｏ２（ｋ）＜ｊ＞のように、ＳＣが付与されている値は第１触媒用の値であることを意味し、＜ｊ＞が付与されている値はブロックｊ（ｊ番目のブロック）に対する値であることを意味する（以下、同じ。）。
【０２１１】
上記触媒温度ＴｅｍｐＳＣ及び後述する第２触媒５４の触媒温度ＴｅｍｐＵＦは、機関１０の運転状態（例えば、吸入空気流量Ｇａとエンジン回転速度ＮＥ）に応じて推定される。上記第１触媒５３の劣化指標値ＲＥＫＫＡＳＣ及び後述する第２触媒５４の劣化指標値ＲＥＫＫＡＵＦは、前述の第１触媒５３の最大酸素吸蔵量ＣｍａｘＳＣａｌｌ及び第２触媒５４の最大酸素吸蔵量ＣｍａｘＵＦａｌｌに応じてそれぞれ求められる。例えば、劣化指標値ＲＥＫＫＡＳＣは最大酸素吸蔵量ＣｍａｘＳＣａｌｌが減少するほど増大する値として、劣化指標値ＲＥＫＫＡＵＦは最大酸素吸蔵量ＣｍａｘＵＦａｌｌが減少するほど増大する値として求められる。
【０２１２】
次に、ＣＰＵ７１はステップ２１１０に進んで変数ｊの値を「０」に設定する。この変数ｊは、以下において何番目のブロックについての演算を行うのかを決定する変数である。次いで、ＣＰＵ７１は、ステップ２１１５にて変数ｊの値を「１」だけ増大するとともに、ステップ２１２０にて変数ｊの値がｒ＋１と等しくなったか否か、即ち、第１触媒５３の総べてのブロックについて各特定成分の算出が終了したか否かを判定する。
【０２１３】
現段階での変数ｊの値は「１」であるから、ＣＰＵ７１はステップ２１２０にて「Ｎｏ」と判定してステップ２１２５に進み、前回の本ルーチンの演算時において後述するステップ２１６０にて算出された第１触媒５３のｊ番目のブロック（ブロックｊ）のコート層の酸素濃度ＣｗＳＣ，Ｏ２（ｋ＋１）＜ｊ＞を今回のコート層の酸素濃度ＣｗＳＣ，Ｏ２（ｋ）＜ｊ＞に設定し、続くステップ２１３０にて前回の本ルーチンの演算時において後述する図２５のステップ２５１５にて算出された酸素吸蔵密度ＯｓｔＳＣ（ｋ＋１）＜ｊ＞を今回の酸素吸蔵密度Ｏｓｔの値ＯｓｔＳＣ（ｋ）＜ｊ＞に設定する。なお、今回の演算が機関１０の始動後初めてである場合、上記各値には適当な初期値が与えられる。
【０２１４】
次いで、ＣＰＵ７１は、ステップ２１３５にて同ステップ２１３５内に記載した式（上記（３６）式を参照。）に従って酸素の消費速度定数Ｒ＊ｓｔｏｒＳＣ，Ｏ２（ｋ）＜ｊ＞を求める。ステップ２１３５にて用いる最大酸素吸蔵密度ＯｓｔＳＣｍａｘ＜ｊ＞は、一定値としてもよいが、前記劣化指標値ＲＥＫＫＡＳＣ（又は、最大酸素吸蔵量ＣｍａｘＳＣａｌｌ）に応じて決定されることが望ましい（以下、同じ。）。その後、ＣＰＵ７１はステップ２１４０にて見かけの拡散速度ＲＤＳＣ，Ｏ２（ｋ）＜ｊ＞を触媒温度ＴｅｍｐＳＣとマップＭａｐＲＤＳＣＯ２とから決定する。
【０２１５】
続いて、ＣＰＵ７１はステップ２１４５にて酸素の反応律速因子ＳＰｓｔｏｒＳＣ，Ｏ２＜ｊ＞を同ステップ２１４５内に記載した式（上記（２９）式を参照。）により求め、ステップ２１５０にて第１触媒５３のブロックｊよりも前の（即ち、上流の）ブロックｊ−１から流出する酸素濃度ＣｇｏｕｔＳＣ，Ｏ２（ｋ）＜ｊ−１＞を同ブロックｊに流入する酸素濃度ＣｇｉｎＳＣ，Ｏ２（ｋ）＜ｊ＞として取り込む。
【０２１６】
この段階でｊの値は「１」であるから、ブロックｊは第１触媒５３の最も上流のブロックであって、それより前の（上流の）ブロックｊ−１は存在しない。従って、ステップ２１５０における前のブロックのＣｇｏｕｔＳＣ，Ｏ２（ｋ）＜ｊ−１＞は、同第１触媒５３に流入する排ガスの酸素濃度ＣｇｉｎＳＣ，Ｏ２である。この第１触媒５３に流入する排ガスの酸素濃度ＣｇｉｎＳＣ，Ｏ２（＝Ｃｇｉｎ，Ｏ２）は、同第１触媒５３に流入する排ガスの空燃比と同排ガスの流量とに基く関数ｆＯ２により求められる。下記の（４８）式の右辺は、この関数ｆＯ２の具体例である。（４８）式で用いられる排ガスの空燃比ＡＦは、エアフローメータ６１が計測する単位時間あたりの吸入空気質量Ｇａを最終燃料噴射量Ｆｉとエンジン回転速度ＮＥとに基づいて求められる単位時間あたりの供給燃料質量Ｇｆで除することにより求められる。なお、この排ガスの空燃比ＡＦは、最上流空燃比センサ６６の出力ｖａｂｙｆｓと図２に示したマップとから求めても良い。
【０２１７】
【数４８】
2004225618.tif 000049
【０２１８】
上記（４８）式の導出過程を簡単に述べると、第１触媒５３に流入する排ガスの空燃比ＡＦはＧａ／Ｇｆであり、Ｇｆに対して理論空燃比を得るために必要な空気質量をＧａｓｔｏｉｃｈとすると、理論空燃比ＡＦｓｔｏｉｃｈはＧａｓｔｏｉｃｈ／Ｇｆとなる。一方、供給燃料質量がＧｆであるときに空燃比がＡＦとなったとき、理論空燃比ＡＦｓｔｏｉｃｈを得るために必要な空気質量に対する過剰な空気質量はＧａ−Ｇａｓｔｏｉｃｈであるから、酸素の質量をＭａｓｓＯ２とおくと、下記（４９）式が得られ、この（４９）式から上記（４８）式が得られる。
【０２１９】
【数４９】
2004225618.tif 000050
【０２２０】
次に、ＣＰＵ７１はステップ２１５５に進み、同ステップ２１５５に記述した式（上記（３０）式を参照。）に従ってＣｇｏｕｔＳＣ，Ｏ２（ｋ＋１）＜ｊ＞を求める。ｖｇの値はエアフローメータ６１が検出した吸入空気流量ＡＦＭ（＝Ｇａ）とする。このように、ステップ２１５５では、対象としているブロックｊから流出する酸素濃度ＣｇｏｕｔＳＣ，Ｏ２を新たに算出する。次いで、ＣＰＵ７１はステップ２１６０に進み、同ステップ２１６０に記述した式（上記（２８）式を参照。）に従ってＣｗＳＣ，Ｏ２（ｋ＋１）＜ｊ＞を求める。即ち、ＣＰＵ７１は、ステップ２１６０にて対象としている第１触媒５３のブロックｊのコート層の酸素濃度ＣｗＳＣ，Ｏ２を新たに算出し、ステップ２１６５を経由して図２２に示したステップ２２００に進む。このように、図２１により示したルーチンは、第１触媒５３のブロックｊ（特定領域ｊ）における排ガス相の酸素濃度推定手段、及びコート層の酸素濃度推定手段を構成している。
【０２２１】
図２２に示したルーチンは、一酸化窒素ＮＯについての演算を行うルーチンであり、酸素Ｏ２についての演算を行うための先に説明した図２１のルーチンと同様なルーチンである。簡単に説明すると、ＣＰＵ７１はステップ２２００からステップ２２０５に進んで、前回の本ルーチンの演算時において後述するステップ２２３５にて算出された第１触媒５３のｊ番目のブロック（ブロックｊ）のコート層の一酸化窒素濃度ＣｗＳＣ，ＮＯ（ｋ＋１）＜ｊ＞を今回のコート層の一酸化窒素濃度ＣｗＳＣ，ＮＯ（ｋ）＜ｊ＞に設定する。なお、今回の演算が機関１０の始動後初めてである場合、上記ＣｗＳＣ，ＮＯ（ｋ）＜ｊ＞には適当な初期値が与えられる。
【０２２２】
次いで、ＣＰＵ７１は、ステップ２２１０にて同ステップ２２１０内に記載した式（上記（３６）式を参照。）に従って消費速度定数Ｒ＊ｓｔｏｒＳＣ，ＮＯ（ｋ）＜ｊ＞を求める。ここで、酸素吸蔵密度ＯｓｔＳＣ（ｋ）＜ｊ＞，及び最大酸素吸蔵密度ＯｓｔＳＣｍａｘ＜ｊ＞は、前述のステップ２１３５にて使用した値をそれぞれ用いる。その後、ＣＰＵ７１はステップ２２１５にて見かけの拡散速度ＲＤＳＣ，ＮＯ（ｋ）＜ｊ＞を触媒温度ＴｅｍｐＳＣとマップＭａｐＲＤＳＣＮＯとから決定する。
【０２２３】
続いて、ＣＰＵ７１はステップ２２２０にて一酸化窒素の反応律速因子ＳＰｓｔｏｒＳＣ，ＮＯ＜ｊ＞を同ステップ２２２０内に記載した式（上記（２９）式を参照。）により求め、ステップ２２２５にて第１触媒５３のブロックｊよりも前の（即ち、上流の）ブロックｊ−１から流出する一酸化窒素濃度ＣｇｏｕｔＳＣ，ＮＯ（ｋ）＜ｊ−１＞を同ブロックｊに流入する一酸化窒素濃度ＣｇｉｎＳＣ，ＮＯ（ｋ）＜ｊ＞として取り込む。
【０２２４】
この段階でｊの値は「１」であるから、対象としているブロックｊは第１触媒５３の最も上流のブロックであって、それより上流のブロックｊ−１は存在しない。従って、ステップ２２２５における前のブロックのＣｇｏｕｔＳＣ，ＮＯ（ｋ）＜ｊ−１＞は、同第１触媒５３に流入する排ガスの一酸化窒素濃度ＣｇｉｎＳＣ，ＮＯである。この場合、第１触媒５３に流入する排ガスの空燃比Ａ／Ｆ（「Ｇａ／Ｇｆ」として計算により求められる。）と一酸化窒素濃度ＣｇｉｎＳＣ，ＮＯとの関係は図２７のグラフに示したようであるから、この関係を予め実験により求めてマップとして記憶しておき、計算により求められる実際の排ガスの空燃比Ａ／Ｆと同マップとから一酸化窒素濃度ＣｇｉｎＳＣ，ＮＯを求める。
【０２２５】
次に、ＣＰＵ７１はステップ２２３０に進み、同ステップ２２３０に記述した式（上記（３０）式を参照。）に従ってＣｇｏｕｔＳＣ，ＮＯ（ｋ＋１）＜ｊ＞を求める。即ち、対象としているブロックｊから流出する一酸化窒素濃度ＣｇｏｕｔＳＣ，ＮＯを新たに算出する。次いで、ＣＰＵ７１はステップ２２３５に進み、同ステップ２２３５に記述した式（上記（２８）式を参照。）に従ってＣｗＳＣ，ＮＯ（ｋ＋１）＜ｊ＞を求める。即ち、ＣＰＵ７１は、ステップ２２３５にて対象としている第１触媒５３のブロックｊのコート層の一酸化窒素濃度ＣｗＳＣ，ＮＯを新たに算出し、ステップ２２９５を経由して図２３に示したステップ２３００に進む。このように、図２２により示したルーチンは、第１触媒５３のブロックｊ（特定領域ｊ）における排ガス相の一酸化窒素濃度推定手段、及びコート層の一酸化窒素濃度推定手段を構成している。
【０２２６】
図２３に示したルーチンは、一酸化炭素ＣＯについての演算を行うルーチンである。ＣＰＵ７１はステップ２２００からステップ２２０５に進んで、前回の本ルーチンの演算時において後述するステップ２３３５にて算出されたコート層の一酸化炭素濃度ＣｗＳＣ，ＣＯ（ｋ＋１）＜ｊ＞を今回のコート層の一酸化炭素濃度ＣｗＳＣ，ＣＯ＜ｊ＞（ｋ）に設定する。なお、今回の演算が機関１０の始動後初めてである場合、上記ＣｗＳＣ，ＣＯ＜ｊ＞（ｋ）には適当な初期値が与えられる。
【０２２７】
次に、ＣＰＵ７１は、ステップ２３１０にて同ステップ２３１０内に記載した式（上記（３８）式を参照。）に従って消費速度定数Ｒ＊ｒｅｄｕｃＳＣ，ＣＯ（ｋ）＜ｊ＞を求め、その後、ステップ２３１５にて見かけの拡散速度ＲＤＳＣ，ＣＯ（ｋ）＜ｊ＞を触媒温度ＴｅｍｐＳＣとマップＭａｐＲＤＳＣＣＯとから決定する。
【０２２８】
続いて、ＣＰＵ７１はステップ２３２０にて一酸化炭素の反応律速因子ＳＰｒｅｄｕｃＳＣ，ＣＯ＜ｊ＞を同ステップ２３２０内に記載した式（上記（３３）式を参照。）により求め、ステップ２３２５にて、第１触媒５３のブロックｊよりも前の（即ち、上流の）ブロックｊ−１から流出する一酸化炭素濃度ＣｇｏｕｔＳＣ，ＣＯ（ｋ）＜ｊ−１＞を、ブロックｊに流入する一酸化炭素濃度ＣｇｉｎＳＣ，ＣＯ（ｋ）＜ｊ＞として取り込む。
【０２２９】
この段階でｊの値は「１」であるから、対象としているブロックｊは第１触媒５３の最も上流のブロックであって、それより上流のブロックｊ−１は存在しない。従って、ステップ２３２５における前のブロックのＣｇｏｕｔＳＣ，ＣＯ（ｋ）＜ｊ−１＞は、同第１触媒５３に流入する排ガスの一酸化炭素濃度ＣｇｉｎＳＣ，ＣＯである。この場合、第１触媒５３に流入する排ガスの空燃比Ａ／Ｆ（「Ｇａ／Ｇｆ」として計算により求められる。）と一酸化炭素濃度ＣｇｉｎＳＣ，ＣＯとの関係は図２８のグラフに示したようであるから、この関係を予め実験により求めてマップとして記憶しておき、計算により求められる実際の排ガスの空燃比Ａ／Ｆと同マップとから一酸化炭素濃度ＣｇｉｎＳＣ，ＣＯを求める。
【０２３０】
次に、ＣＰＵ７１はステップ２３３０に進み、同ステップ２３３０に記述した式（上記（３４）式を参照。）に従ってＣｇｏｕｔＳＣ，ＣＯ（ｋ＋１）＜ｊ＞を求める。即ち、第１触媒５３のブロックｊから流出する一酸化炭素濃度ＣｇｏｕｔＳＣ，ＣＯを新たに算出する。次いで、ＣＰＵ７１はステップ２３３５に進み、同ステップ２３３５に記述した式（上記（３２）式を参照。）に従ってＣｗＳＣ，ＣＯ（ｋ＋１）＜ｊ＞を求める。即ち、ＣＰＵ７１は、ステップ２３３５にて対象としている第１触媒５３のブロックｊのコート層の一酸化炭素濃度ＣｗＳＣ，ＣＯを新たに算出し、ステップ２３９５を経由して図２４に示したステップ２４００に進む。このように、図２３により示したルーチンは、第１触媒５３のブロックｊにおける排ガス相の一酸化炭素濃度推定手段、及びコート層の一酸化炭素濃度推定手段を構成している。
【０２３１】
図２４に示したルーチンは、炭化水素ＨＣについての演算を行うルーチンであり、一酸化炭素ＣＯについての演算を行うための先に説明した図２３のルーチンと同様なルーチンである。簡単に説明すると、ＣＰＵ７１はステップ２４００からステップ２４０５に進んで、前回の本ルーチンの演算時において後述するステップ２４３５にて算出されたコート層の炭化水素濃度ＣｗＳＣ，ＨＣ（ｋ＋１）＜ｊ＞を今回のコート層の炭化水素濃度Ｃｗ，ＨＣの値であるＣｗＳＣ，ＨＣ（ｋ）＜ｊ＞に設定する。なお、今回の演算が機関１０の始動後初めてである場合、上記各値には適当な初期値が与えられる。
【０２３２】
次に、ＣＰＵ７１は、ステップ２４１０にて同ステップ２４１０内に記載した式（上記（３８）式を参照。）に従って消費速度定数Ｒ＊ｒｅｄｕｃＳＣ，ＨＣ（ｋ）＜ｊ＞を求め、その後、ステップ２４１５にて見かけの拡散速度ＲＤＳＣ，ＨＣ（ｋ）＜ｊ＞を触媒温度ＴｅｍｐＳＣとマップＭａｐＲＤＳＣＨＣとから決定する。
【０２３３】
続いて、ＣＰＵ７１はステップ２４２０にて炭化水素の反応律速因子ＳＰｒｅｄｕｃＳＣ，ＨＣ＜ｊ＞を同ステップ２４２０内に記載した式（上記（３３）式を参照。）により求め、ステップ２４２５にて、第１触媒５３のブロックｊよりも前の（即ち、上流の）ブロックｊ−１から流出する炭化水素濃度ＣｇｏｕｔＳＣ，ＨＣ（ｋ）＜ｊ−１＞をブロックｊに流入する炭化水素濃度ＣｇｉｎＳＣ，ＨＣ（ｋ）＜ｊ＞として取り込む。
【０２３４】
この段階でｊの値は「１」であるから、ブロックｊは第１触媒５３の最も上流のブロックであって、それより上流のブロックｊ−１は存在しない。従って、ステップ２４２５におけるＣｇｏｕｔ，ＨＣ（ｋ）＜ｊ−１＞は、同第１触媒５３に流入する排ガスの炭化水素濃度Ｃｇｉｎ，ＨＣである。この場合、第１触媒５３に流入する排ガスの空燃比Ａ／Ｆ（「Ｇａ／Ｇｆ」として計算により求められる。）と炭化水素濃度Ｃｇｉｎ，ＨＣとの関係は図２９のグラフに示したようであるから、この関係を予め実験により求めてマップとして記憶しておき、計算により求められる実際の排ガスの空燃比Ａ／Ｆと同マップとから炭化水素濃度Ｃｇｉｎ，ＨＣを求める。
【０２３５】
次に、ＣＰＵ７１はステップ２４３０に進み、同ステップ２４３０に記述した式（上記（３４）式を参照。）に従ってＣｇｏｕｔＳＣ，ＨＣ（ｋ＋１）＜ｊ＞を求める。即ち、第１触媒５３のブロックｊから流出する炭化水素濃度ＣｇｏｕｔＳＣ，ＨＣを新たに算出する。次いで、ＣＰＵ７１はステップ２４３５に進み、同ステップ２４３５に記述した式（上記（３２）式を参照。）に従ってＣｗＳＣ，ＨＣ（ｋ＋１）＜ｊ＞を求める。即ち、ＣＰＵ７１は、ステップ２４３５にて第１触媒５３のブロックｊのコート層の炭化水素濃度Ｃｗ，ＨＣを新たに算出し、ステップ２４９５を経由して図２５に示したステップ２５００に進む。このように、図２４により示したルーチンは、第１触媒５３のブロックｊ（特定領域ｊ）における排ガス相の炭化水素濃度推定手段、及びコート層の炭化水素濃度推定手段を構成している。
【０２３６】
図２５に示したルーチンは、酸素吸蔵密度Ｏｓｔについての演算を行うルーチンである。ＣＰＵ７１は、ステップ２５００からステップ２５０５に進むと、上記（４３）式に基く同ステップ２５０５内に記述した式により係数Ｐ＜ｊ＞を求めるとともに、続くステップ２５１０にて上記（４４）式に基く同ステップ２５１０に記述した式により係数Ｑ＜ｊ＞を求める。次いで、ＣＰＵ７１はステップ２５１５にて上記（４２）式に基く同ステップ２５１５に記述した式により酸素吸蔵密度ＯｓｔＳＣ（ｋ＋１）＜ｊ＞を求め、次のステップ２５２０にて上記（４５）式に基づく同ステップ２５２０に記述した式によりこのブロックｊの酸素吸蔵量ＯｓｔＳＣ（ｋ＋１）＜ｊ＞・ｄＡ・Ｌをブロック１〜ブロックｊ−１までの酸素吸蔵量ＯＳＡＳＣ（ｊ−１）に加えることにより、ブロック１〜ブロックｊまでの酸素吸蔵量ＯＳＡＳＣ（ｊ）を求め、ステップ２５９５を経由して図２１のステップ２１１５に戻る。なお、酸素吸蔵量ＯＳＡＳＣ（０）の値は「０」に設定してある。このように、図２５に示したルーチンは、第１触媒５３のブロックｊの酸素吸蔵密度算出手段、及び第１触媒５３のブロック１〜ブロックｊまでの酸素吸蔵量算出手段を構成している。
【０２３７】
図２１のステップ２１１５に戻ったＣＰＵ７１は、変数ｊの値を「１」だけ増大するから、上述と同様にして第１触媒５３内の次に下流にあるブロックの各種値が順次演算されて行く。そして、ブロックｒまでの各種値が演算されると、変数ｊの値はステップ２１１５にてｒ＋１と等しくされるので、ＣＰＵ７１はステップ２１２０にて「Ｙｅｓ」と判定し、ステップ２１９５に進んで、第１触媒５３の各特定成分のＣｇｏｕｔＳＣを算出するための図２１〜図２５に示した一連のルーチンを一旦終了する。
【０２３８】
次に、触媒モデルにより第２触媒５４の各特定成分のＣｇｏｕｔＵＦを算出するためのルーチンについて説明する。このルーチンは前述の図２１〜図２５の一連のフローチャートに示されたルーチンとそれぞれ同様の図３０〜図３４の一連のフローチャートにより示されていて、ＣＰＵ７１はこれらのルーチンを実行することで第２触媒５４の各ブロックｊ（ｊ＝１，・・・，ｍ）から流出する酸素濃度ＣｇｏｕｔＵＦ，Ｏ２＜ｊ＞、一酸化窒素濃度ＣｇｏｕｔＵＦ，ＮＯ＜ｊ＞、一酸化炭素濃度ＣｇｏｕｔＵＦ，ＣＯ＜ｊ＞、及び炭化水素濃度ＣｇｏｕｔＵＦ，ＨＣ＜ｊ＞を算出する。かかる図３０〜図３４の一連のルーチンは前述の図２１〜図２５の一連のルーチンと同様であるので、これらの詳細な説明を省略する。
【０２３９】
なお、変数ｊの値が「１」である場合、ＣＰＵ７１は、図３０のステップ３０５０、図３１のステップ３１２５、図３２のステップ３２２５、及び図３３のステップ３３２５にてそれぞれ必要となる値である第２触媒５４に流入する排ガスの酸素濃度ＣｇｉｎＵＦ，Ｏ２（＝ＣｇｉｎＵＦ，Ｏ２（ｋ）＜１＞）、同排ガスの一酸化窒素濃度ＣｇｉｎＵＦ，ＮＯ（＝ＣｇｉｎＵＦ，ＮＯ（ｋ）＜１＞）、同排ガスの一酸化炭素濃度ＣｇｉｎＵＦ，ＣＯ（＝ＣｇｉｎＵＦ，ＣＯ（ｋ）＜１＞）、及び同排ガスの炭素水素濃度ＣｇｉｎＵＦ，ＨＣ（＝ＣｇｉｎＵＦ，ＨＣ（ｋ）＜１＞）として、第１触媒５３から流出する排ガス中の酸素濃度ＣｇｏｕｔＳＣ，Ｏ２＜ｒ＞の値、同排ガス中の一酸化窒素濃度ＣｇｏｕｔＳＣ，ＮＯ＜ｒ＞の値、同排ガス中の一酸化炭素濃度ＣｇｏｕｔＳＣ，ＣＯ＜ｒ＞の値、及び同排ガス中の炭素水素濃度ＣｇｏｕｔＳＣ，ＨＣ＜ｒ＞の値をそれぞれ使用する。第１触媒５３から流出した排ガスは外部との授受がないまま第２触媒５４に流入するので、第２触媒５４に流入する排ガス中の各特定成分の濃度は第１触媒５３から流出した排ガス中の各特定成分の濃度と等しいと考えられるからである。
【０２４０】
以上、図３０により示したルーチンは、第２触媒５４のブロックｊ（特定領域ｊ）における排ガス相の酸素濃度推定手段、及びコート層の酸素濃度推定手段を構成している。図３１により示したルーチンは、第２触媒５４のブロックｊ（特定領域ｊ）における排ガス相の一酸化窒素濃度推定手段、及びコート層の一酸化窒素濃度推定手段を構成している。図３２により示したルーチンは、第２触媒５４のブロックｊにおける排ガス相の一酸化炭素濃度推定手段、及びコート層の一酸化炭素濃度推定手段を構成している。図３３により示したルーチンは、第２触媒５４のブロックｊ（特定領域ｊ）における排ガス相の炭化水素濃度推定手段、及びコート層の炭化水素濃度推定手段を構成している。図３４に示したルーチンは、第２触媒５４のブロックｊの酸素吸蔵密度算出手段、及び第２触媒５４のブロック１〜ブロックｊまでの酸素吸蔵量算出手段を構成している。
【０２４１】
このように、ＣＰＵ７１は触媒モデルを使用し、第１，第２触媒５３，５４からなる触媒装置の劣化の進行（最大酸素吸蔵量の減少）に応じて下流側に移動する制御用ブロック（中間ブロック）ｉから流出するガスの空燃比に関連する値、即ち、制御用ブロックｉから流出する特定成分の量に関する値としての酸素の過不足量に関する値である制御用酸素濃度ＣｇｏｕｔＯ２ｃを取得し、同制御用酸素濃度ＣｇｏｕｔＯ２ｃが所定の程度を超えるリッチな空燃比であることを示す値となったとき（負の閾値Ｃｒｅｆｍｎｓよりも小さい値となったとき）同触媒装置に流入するガスの空燃比を所定のリーン空燃比（理論空燃比よりも所定値α１だけリーンな空燃比）に制御するとともに、同制御用酸素濃度ＣｇｏｕｔＯ２ｃが所定の程度を超えるリーンな空燃比であることを示す値となったとき（正の閾値Ｃｒｅｆｐｌｓよりも大きい値となったとき）同触媒装置に流入するガスの空燃比を所定のリッチ空燃比（理論空燃比よりも所定値α２だけリッチな空燃比）に制御することで同触媒装置に流入するガスの空燃比を強制的に振動させる（従って、パータベーション制御する）。
【０２４２】
従って、本排気浄化装置は、制御用ブロックｉの下流に設けられた空燃比センサの出力変化よりも早い時点で同制御用ブロックｉから流出するガスの空燃比の変化の情報（この場合、制御用酸素濃度ＣｇｏｕｔＯ２ｃ）を取得し、この取得した制御用ブロックｉから流出するガスの空燃比の変化の情報に直接着目して、触媒装置に流入するガスの空燃比を強制的に切り替えるタイミングを決定するパータベーション制御を行うので、同制御用ブロックｉから流出するガスの空燃比を安定的、且つ確実に理論空燃比近傍に維持することができ、その結果、制御用ブロックｉの下流側の有害成分の排出量を安定的、且つ確実に低減することができた。
【０２４３】
また、本排気浄化装置は、値ｎを自然数とするとき単数又は複数の触媒（第１，第２触媒５３，５４）からなる触媒装置の最上流のブロックである第１番目のブロックから第ｎ番目のブロックまでのブロックにより構成される触媒装置上流部の各ブロックの最大酸素吸蔵量を積算して同触媒装置上流部の最大酸素吸蔵量積算値（判定用酸素吸蔵量）を求める積算値算出手段（ステップ１１２０、１１５５）を備え、前記最大酸素吸蔵量積算値が所定の閾値Ｃｔｈより大きい値をとる前記触媒装置上流部のうち前記値ｎが最も小さい第ｎ番目のブロックまでからなる前記触媒装置上流部の第ｎ番目のブロックを制御用ブロック（中間ブロック）ｉとして設定する。換言すれば、触媒装置の劣化の進行（最大酸素吸蔵量の減少）に応じて制御用ブロックｉは下流側に移動する。
【０２４４】
この結果、触媒装置の最上流に位置するブロックから中間ブロックｉまでの各ブロックで構成される触媒装置上流部の酸素吸蔵能力をパータベーション制御の破綻を来さない程度に設定された前記所定の閾値Ｃｔｈに相当する所定の酸素吸蔵能力よりも大きい値に維持できるとともに、予備的な触媒（バッファ的な触媒）として機能し得る同中間ブロックｉよりも下流側のブロック数を最大とすることができる。従って、触媒装置に流入するガスの空燃比のハンチングを回避しつつ、触媒装置の最下流位置から流出する有害成分の排出量を極力低減できた。
【０２４５】
＜第２実施形態＞
次に、本発明による排気浄化装置の第２実施形態について説明すると、この排気浄化装置は、前記制御用ブロックｉから流出する排ガス中の酸素濃度である制御用酸素濃度ＣｇｏｕｔＯ２ｃに代えて、同制御用ブロックｉから流出する排ガス中の酸化剤の量に関する値である一酸化窒素濃度（制御用一酸化窒素濃度ＣｇｏｕｔＮＯｃ）、及び同制御用ブロックｉから流出する排ガス中の還元剤の量に関する値である一酸化炭素濃度（制御用一酸化炭素濃度ＣｇｏｕｔＣＯｃ）を利用して、触媒装置に流入するガスの空燃比を強制的に切り替えるタイミングを決定するパータベーション制御を行う点においてのみ、上記第１実施形態の排気浄化装置と異なっている。従って、以下、かかる相違点についてのみ説明する。
【０２４６】
（第２実施形態の空燃比制御（パータベーション制御））
先ず、第２実施形態に係る排気浄化装置の空燃比制御について説明する。図３５は、第２実施形態によるパータベーション制御におけるタイムチャートであり、（Ａ）は機関１０に供給される混合気の空燃比（従って、第１触媒上流の排ガスの空燃比）を示し、（Ｂ）は前述した触媒モデルにより算出される前述の制御用ブロックｉから流出する制御用一酸化炭素濃度ＣｇｏｕｔＣＯｃを示し、（Ｃ）は同制御用ブロックｉから流出する制御用一酸化窒素濃度ＣｇｏｕｔＮＯｃを示している。図３５に示すように、本排気浄化装置は、前記制御用ブロックｉから流出する（正の値のみを採る）制御用一酸化窒素濃度ＣｇｏｕｔＮＯｃ、及び制御用一酸化炭素濃度ＣｇｏｕｔＣＯｃを触媒モデルにより求め、同制御用一酸化窒素濃度ＣｇｏｕｔＮＯｃ、及び制御用一酸化炭素濃度ＣｇｏｕｔＣＯｃを「０」付近に維持するように機関１０に供給される混合気の空燃比をパータベーション制御する。
【０２４７】
より具体的に述べると、本排気浄化装置は、ＣｇｏｕｔＣＯｃが正の閾値Ｃｒｅｆｐｌｓ１より大きくなったとき（即ち、還元剤の量（濃度）が所定の程度を超えた量になっていることを示す値となったとき、或いは、ガスの空燃比が所定の程度を超えるリッチな空燃比であることを示す値となったとき）、制御用ブロックｉから未燃成分が多く流出し始めたことを意味するので、機関１０に供給される混合気の目標空燃比を理論空燃比よりも所定値α１だけリーンに設定するとともに機関１０に供給される混合気の実際の空燃比が同目標空燃比になるように制御する（時刻ｔ１１，ｔ１３を参照。）。
【０２４８】
これに対し、ＣｇｏｕｔＮＯｃが正の閾値Ｃｒｅｆｐｌｓ２より大きくなったとき（即ち、酸化剤の量（濃度）が所定の程度を超えた量になっていることを示す値となったとき、或いは、ガスの空燃比が所定の程度を超えるリーンな空燃比であることを示す値となったとき）、制御用ブロックｉから窒素酸化物ＮＯｘが多く流出し始めたことを意味するので、機関１０に供給される混合気の目標空燃比を理論空燃比よりも所定値α２だけリッチに設定するとともに前記実際の空燃比が同目標空燃比になるように制御する（時刻ｔ１２を参照。）。なお、所定値α１と所定値α２とは異なる値でもよく、等しい値であってもよい。また、正の閾値Ｃｒｅｆｐｌｓ１と正の閾値Ｃｒｅｆｐｌｓ２とは異なる値でもよく、等しい値であってもよい。
【０２４９】
（実際の作動）
次に、上記排気浄化装置の実際の作動について、ＣＰＵ７１が実行するルーチンを示したフローチャートを参照しながら説明する。本排気浄化装置のＣＰＵ７１は、図１１、図１２に代わる図３６、図３７にフローチャートにより示したルーチンを実行する点を除き、第１実施形態に係る排気浄化装置のＣＰＵ７１と同一のルーチンを実行する。図３６、図３７おいて図１１、図１２と同一のステップには同一の符号を付している。
【０２５０】
図３６のルーチンは、制御用ブロックｉから流出する排ガス中の酸素濃度である制御用酸素濃度ＣｇｏｕｔＯ２ｃに代えて、同制御用ブロックｉから流出する排ガス中の一酸化窒素濃度、及び一酸化炭素濃度である制御用一酸化窒素濃度ＣｇｏｕｔＮＯｃ、及び制御用一酸化炭素濃度ＣｇｏｕｔＣＯｃを求めるため、ステップ１１３５、１１７０に代えてステップ３６３５、３６７０を採用している点においてのみ図１１のルーチンと相違する。従って、図３６のルーチンの詳細な説明は省略する。
【０２５１】
また、図３７のルーチンは、正負の値を採りえる制御用酸素濃度ＣｇｏｕｔＯ２ｃに代えて、常に正の値のみを採る制御用一酸化窒素濃度ＣｇｏｕｔＮＯｃ、及び制御用一酸化炭素濃度ＣｇｏｕｔＣＯｃの各値を利用して触媒装置に流入するガスの空燃比を切り替えるため、ステップ１２１０、１２１５、１２２５、及び１２３０に代えてステップ３７１０、３７１５、３７２５、３７３０を採用している点においてのみ図１２のルーチンと相違する。従って、図３７のルーチンの詳細な説明は省略する。
【０２５２】
このように、第２実施形態に係る排気浄化装置は、触媒モデルにより触媒装置内での酸素吸蔵反応速度及び酸素放出反応速度をそれぞれ決定する酸素吸蔵速度係数（ｋｓｔｏｒＳＣ，Ｏ２（ｋ）＜ｊ＞及びｋｓｔｏｒＳＣ，ＮＯ（ｋ）＜ｊ＞）及び酸素放出速度係数（ｋｒｅｌＳＣ，ＣＯ（ｋ）＜ｊ＞及びｋｒｅｌＳＣ，ＨＣ（ｋ）＜ｊ＞）を個別に設定し、これらの反応速度差を考慮してそれぞれ個別に且つ正確に算出され得る制御用一酸化窒素濃度ＣｇｏｕｔＮＯｃ、及び制御用一酸化炭素濃度ＣｇｏｕｔＣＯｃの各値に基づいて、触媒装置に流入するガスの空燃比の切り替え時期を決定する。この結果、制御用ブロックｉから流出するガスの空燃比をさらに確実に理論空燃比近傍に維持することができ、触媒装置の最下流位置から流出する有害成分の排出量をさらに一層低減できた。
【０２５３】
なお、上記第２実施形態は、制御用ブロックｉから流出する制御用一酸化炭素濃度ＣｇｏｕｔＣＯｃが正の閾値Ｃｒｅｆｐｌｓ１より大きくなったとき、及び制御用ブロックｉから流出する制御用一酸化窒素濃度ＣｇｏｕｔＮＯｃが正の閾値Ｃｒｅｆｐｌｓ２より大きくなったときに触媒装置に流入するガスの空燃比を切り替えるように構成されているが、制御用ブロックｉから流出する炭化水素濃度である制御用炭化水素濃度ＣｇｏｕｔＨＣｃ及び同制御用一酸化炭素濃度ＣｇｏｕｔＣＯｃが共に正の閾値Ｃｒｅｆｐｌｓ１より大きくなったとき、並びに制御用ブロックｉから流出する酸素濃度である制御用酸素濃度ＣｇｏｕｔＯ２ｃ及び同制御用一酸化窒素濃度ＣｇｏｕｔＮＯｃが共に正の閾値Ｃｒｅｆｐｌｓ２より大きくなったときに触媒装置に流入するガスの空燃比を切り替えるように構成してもよい。
【０２５４】
本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記各実施形態においては、上述の触媒モデルを使用することなく、第１触媒５３の酸素吸蔵能力（最大酸素吸蔵量ＣｍａｘＳＣａｌｌ）が所定の酸素吸蔵能力よりも大きい（所定の閾値Ｃｔｈよりも大きい）ときは同第１触媒５３の下流であって第２触媒５４の上流の排気通路に配置された第１触媒下流空燃比センサ６７の出力を、第１触媒５３の酸素吸蔵能力（最大酸素吸蔵量ＣｍａｘＳＣａｌｌ）が所定の酸素吸蔵能力以下（所定の閾値Ｃｔｈ以下）のときは同第２触媒５４の下流の排気通路に配置された第２触媒下流空燃比センサ６８の出力を制御用空燃比センサ出力として選択し、選択された制御用空燃比センサ出力が理論空燃比よりも所定の程度を超えるリッチな空燃比であることを示す値（例えば、０．７Ｖ以上）となったとき触媒装置に流入するガスの空燃比を所定のリーン空燃比に制御するとともに、同選択された制御用空燃比センサ出力が理論空燃比よりも所定の程度を超えるリーンな空燃比であることを示す値（例えば、０．３Ｖ以下）となったとき同触媒装置に流入するガスの空燃比を所定のリッチ空燃比に制御することで同触媒装置に流入するガスの空燃比を強制的に振動させるように構成してもよい。
【０２５５】
また、上記各実施形態においては、第１触媒５３の酸素吸蔵能力（最大酸素吸蔵量ＣｍａｘＳＣａｌｌ）が所定の酸素吸蔵能力よりも大きい（所定の閾値Ｃｔｈよりも大きい）ときは同第１触媒５３から流出する排ガス中の特定成分の量に関する値（例えば、ＣｇｏｕｔＳＣ，Ｘ＜ｒ＞。Ｘは酸素の場合Ｏ２、一酸化炭素の場合ＣＯ、炭化水素の場合ＨＣ、窒素酸化物の場合ＮＯ）を、第１触媒５３の酸素吸蔵能力（最大酸素吸蔵量ＣｍａｘＳＣａｌｌ）が所定の酸素吸蔵能力以下（所定の閾値Ｃｔｈ以下）のときは同第２触媒５４から流出する排ガス中の特定成分の量に関する値（例えば、ＣｇｏｕｔＵＦ，Ｘ＜ｍ＞）を制御用特定成分量（例えば、制御用特定成分濃度ＣｇｏｕｔＸｃ）として選択し、選択された制御用特定成分量が理論空燃比よりも所定の程度を超えるリッチな空燃比であることを示す値となったとき（例えば、制御用酸素濃度ＣｇｏｕｔＯ２ｃが負の閾値Ｃｒｅｆｍｎｓよりも小さいとき）触媒装置に流入するガスの空燃比を所定のリーン空燃比に制御するとともに、同選択された制御用特定成分量が理論空燃比よりも所定の程度を超えるリーンな空燃比であることを示す値となったとき（例えば、制御用酸素濃度ＣｇｏｕｔＯ２ｃが正の閾値Ｃｒｅｆｐｌｓよりも大きいとき）同触媒装置に流入するガスの空燃比を所定のリッチ空燃比に制御することで同触媒装置に流入するガスの空燃比を強制的に振動させるように構成してもよい。
【０２５６】
また、上記各実施形態においては、制御用ブロックｉは第１，第２触媒５３，５４からなる触媒装置の最上流に位置するブロック（第１触媒５３のブロック１）から最下流に位置するブロック（第２触媒５４のブロックｍ）までのブロックの中から選択されるように構成されているが、制御用ブロックｉは第１触媒５３のみからなる触媒装置の最上流に位置するブロック（第１触媒５３のブロック１）から最下流に位置するブロック（第１触媒５３のブロックｒ）までのブロックの中から選択されるように構成し、第２触媒５４は予備的な触媒（バッファ的な触媒）として機能させるように構成してもよい。
【０２５７】
この場合、第２触媒５４を省略してもよい。また、第２触媒５４を省略した場合、第１触媒５３の酸素吸蔵能力（最大酸素吸蔵量ＣｍａｘＳＣａｌｌ）の大きさに係わらず、常に第１触媒下流空燃比センサ６７の出力を制御用空燃比センサ出力として使用し、同制御用空燃比センサ出力が理論空燃比よりも所定の程度を超えるリッチな空燃比であることを示す値（例えば、０．７Ｖ以上）となったとき触媒装置に流入するガスの空燃比を所定のリーン空燃比に制御するとともに、同選択された制御用空燃比センサ出力が理論空燃比よりも所定の程度を超えるリーンな空燃比であることを示す値（例えば、０．３Ｖ以下）となったとき同触媒装置に流入するガスの空燃比を所定のリッチ空燃比に制御することで同触媒装置に流入するガスの空燃比を強制的に振動させるように構成してもよい。
【０２５８】
また、第２触媒５４を省略した場合、第１触媒５３の酸素吸蔵能力（最大酸素吸蔵量ＣｍａｘＳＣａｌｌ）の大きさに係わらず、常に第１触媒５３から流出する排ガス中の特定成分の量に関する値（例えば、ＣｇｏｕｔＳＣ，Ｘ＜ｒ＞。Ｘは酸素の場合Ｏ２、一酸化炭素の場合ＣＯ、炭化水素の場合ＨＣ、窒素酸化物の場合ＮＯ）を制御用特定成分量（例えば、制御用特定成分濃度ＣｇｏｕｔＸｃ）として使用し、同制御用特定成分量が理論空燃比よりも所定の程度を超えるリッチな空燃比であることを示す値となったとき（例えば、制御用酸素濃度ＣｇｏｕｔＯ２ｃが負の閾値Ｃｒｅｆｍｎｓよりも小さいとき）触媒装置に流入するガスの空燃比を所定のリーン空燃比に制御するとともに、同選択された制御用特定成分量が理論空燃比よりも所定の程度を超えるリーンな空燃比であることを示す値となったとき（例えば、制御用酸素濃度ＣｇｏｕｔＯ２ｃが正の閾値Ｃｒｅｆｐｌｓよりも大きいとき）同触媒装置に流入するガスの空燃比を所定のリッチ空燃比に制御することで同触媒装置に流入するガスの空燃比を強制的に振動させるように構成してもよい。
【０２５９】
また、上記各実施形態においては、第１，第２触媒５３，５４からなる触媒装置の下流の排気通路に配設された第２触媒下流空燃比センサ６８の出力を常に制御用空燃比センサ出力として使用し、同制御用空燃比センサ出力に基づいて上記と同様に同触媒装置に流入するガスの空燃比を強制的に振動させるように構成してもよい。また、第１，第２触媒５３，５４からなる触媒装置から流出する排ガス中の特定成分の量に関する値（例えば、ＣｇｏｕｔＵＦ，Ｘ＜ｍ＞。Ｘは酸素の場合Ｏ２、一酸化炭素の場合ＣＯ、炭化水素の場合ＨＣ、窒素酸化物の場合ＮＯ）を常に制御用特定成分量（例えば、制御用特定成分濃度ＣｇｏｕｔＸｃ）として使用し、同制御用特定成分量の値に基づいて上記と同様に同触媒装置に流入するガスの空燃比を強制的に振動させるように構成してもよい。
【０２６０】
また、上記各実施形態においては、酸素吸蔵能力を示す値である前述の触媒装置上流部の最大酸素吸蔵量に基づいて制御用ブロックｉを選択していたが、触媒装置の酸素吸蔵能力を間接的に示す車両の走行距離、触媒装置の温度、吸入空気流量Ｇａに基づいて制御用ブロックｉを選択してもよい。
【０２６１】
この場合、走行距離の増加に応じて、触媒温度の低下に応じて、吸入空気流量Ｇａの増加に応じて、制御ブロックｉの位置を下流側に移動するように構成することが好適である。走行距離の増加に伴って触媒装置が劣化してその最大酸素吸蔵量が低下するからであり、触媒装置の温度の低下に伴って同触媒装置の酸素吸蔵能力が低下するからであり、また、吸入空気量Ｇａの増大に伴って触媒装置が吸蔵し得る酸素量（即ち、酸素吸蔵能力である実質的な最大酸素吸蔵量）が低下するからである。
【０２６２】
また、上記各実施形態においては、上記パータベーション制御における理論空燃比からの振幅α（α１，α２により表される。）は、図３８に示したように、第１触媒５３の温度ＴｅｍｐＳＣ（第２触媒５４の温度ＴｅｍｐＵＦ）、吸入空気量Ｇａ、及び第１触媒５３の劣化指標値ＲＥＫＫＡＳＣ（第２触媒５４の劣化指標値ＲＥＫＫＡＵＦ）等の少なくとも一つに応じて可変としてもよい。これによれば、触媒装置の酸素による一次被毒を適切に解消して、同触媒装置の状態をより良好に維持することが可能となる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係る排気浄化装置を搭載した内燃機関の概略図である。
【図２】図１に示した最上流空燃比センサの出力と空燃比との関係を示したグラフである。
【図３】図１に示した第１触媒下流空燃比センサ及び第２触媒下流空燃比センサの各出力と空燃比との関係を示したグラフである。
【図４】図１に示した排気浄化装置によるパータベーション制御を説明するためのタイムチャートである。
【図５】触媒モデルを説明するための触媒の模式図である。
【図６】図１に示した触媒の外観図である。
【図７】図６に示した触媒の部分断面図である。
【図８】触媒モデルを説明するための模式図である。
【図９】触媒モデルで使用する風上法を説明するための模式図である。
【図１０】図１に示したＣＰＵが実行する燃料噴射量計算のためのルーチンを示したフローチャートである。
【図１１】図１に示したＣＰＵが実行する制御用酸素濃度を決定するためのルーチンを示したフローチャートである。
【図１２】図１に示したＣＰＵが実行する目標空燃比を設定するためのルーチンを示したフローチャートである。
【図１３】図１に示したＣＰＵが実行する空燃比フィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図１４】図１に示したＣＰＵが実行する最大酸素吸蔵量取得制御を開始するか否かを決定するためのルーチンを示したフローチャートである。
【図１５】図１に示したＣＰＵが実行する第１モードのルーチンを示したフローチャートである。
【図１６】図１に示したＣＰＵが実行する第２モードのルーチンを示したフローチャートである。
【図１７】図１に示したＣＰＵが実行する第３モードのルーチンを示したフローチャートである。
【図１８】図１に示したＣＰＵが実行する酸素吸蔵量を算出するためのルーチンを示したフローチャートである。
【図１９】図１に示したＣＰＵが実行する最大酸素吸蔵量を算出するためのルーチンを示したフローチャートである。
【図２０】第１触媒全体の最大酸素吸蔵量から同第１触媒のブロック毎の最大酸素吸蔵量を求めるためのマップである。
【図２１】触媒モデルにしたがって第１触媒内部における酸素濃度を求めるためのルーチンを示したフローチャートである。
【図２２】触媒モデルにしたがって第１触媒内部における一酸化窒素濃度を求めるためのルーチンを示したフローチャートである。
【図２３】触媒モデルにしたがって第１触媒内部における一酸化炭素濃度を求めるためのルーチンを示したフローチャートである。
【図２４】触媒モデルにしたがって第１触媒内部における炭化水素濃度を求めるためのルーチンを示したフローチャートである。
【図２５】触媒モデルにしたがって第１触媒の酸素吸蔵密度と酸素吸蔵量を求めるためのルーチンを示したフローチャートである。
【図２６】触媒劣化度と触媒温度とから触媒モデルにて使用する各係数（各乗数）を求めるためのマップである。
【図２７】触媒に流入する一酸化窒素濃度を決定するために使用される排ガスの空燃比と同一酸化窒素濃度との関係を規定したマップである。
【図２８】触媒に流入する一酸化炭素濃度を決定するために使用される排ガスの空燃比と同一酸化炭素濃度との関係を規定したマップである。
【図２９】触媒に流入する炭化水素濃度を決定するために使用される排ガスの空燃比と同炭化水素濃度との関係を規定したマップである。
【図３０】触媒モデルにしたがって第２触媒内部における酸素濃度を求めるためのルーチンを示したフローチャートである。
【図３１】触媒モデルにしたがって第２触媒内部における一酸化窒素濃度を求めるためのルーチンを示したフローチャートである。
【図３２】触媒モデルにしたがって第２触媒内部における一酸化炭素濃度を求めるためのルーチンを示したフローチャートである。
【図３３】触媒モデルにしたがって第２触媒内部における炭化水素濃度を求めるためのルーチンを示したフローチャートである。
【図３４】触媒モデルにしたがって第２触媒の酸素吸蔵密度と酸素吸蔵量を求めるためのルーチンを示したフローチャートである。
【図３５】本発明の第２実施形態に係る排気浄化装置によるパータベーション制御を説明するためのタイムチャートである。
【図３６】第２実施形態に係る排気浄化装置のＣＰＵが実行する制御用一酸化窒素濃度、及び制御用一酸化炭素濃度を決定するためのルーチンを示したフローチャートである。
【図３７】第２実施形態に係る排気浄化装置のＣＰＵが実行する目標空燃比を設定するためのルーチンを示したフローチャートである。
【図３８】各実施形態のパータベーション制御における空燃比の制御幅を示したグラフである。
【符号の説明】
１０…内燃機関、５３…第１触媒、５４…第２触媒、６６…最上流空燃比センサ、６７…第１触媒下流空燃比センサ、６８…第２触媒下流空燃比センサ、７０…電気制御装置、７１…ＣＰＵ
【図１】
2004225618.tif 000051
【図２】
2004225618.tif 000052
【図３】
2004225618.tif 000053
【図４】
2004225618.tif 000054
【図５】
2004225618.tif 000055
【図６】
2004225618.tif 000056
【図７】
2004225618.tif 000057
【図８】
2004225618.tif 000058
【図９】
2004225618.tif 000059
【図１０】
2004225618.tif 000060
【図１１】
2004225618.tif 000061
【図１２】
2004225618.tif 000062
【図１３】
2004225618.tif 000063
【図１４】
2004225618.tif 000064
【図１５】
2004225618.tif 000065
【図１６】
2004225618.tif 000066
【図１７】
2004225618.tif 000067
【図１８】
2004225618.tif 000068
【図１９】
2004225618.tif 000069
【図２０】
2004225618.tif 000070
【図２１】
2004225618.tif 000071
【図２２】
2004225618.tif 000072
【図２３】
2004225618.tif 000073
【図２４】
2004225618.tif 000074
【図２５】
2004225618.tif 000075
【図２６】
2004225618.tif 000076
【図２７】
2004225618.tif 000077
【図２８】
2004225618.tif 000078
【図２９】
2004225618.tif 000079
【図３０】
2004225618.tif 000080
【図３１】
2004225618.tif 000081
【図３２】
2004225618.tif 000082
【図３３】
2004225618.tif 000083
【図３４】
2004225618.tif 000084
【図３５】
2004225618.tif 000085
【図３６】
2004225618.tif 000086
【図３７】
2004225618.tif 000087
【図３８】
2004225618.tif 000088