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