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