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