(57)【特許請求の範囲】
【請求項１】
エンジンの排気系に介装された触媒コンバータの上流と下流とにそれぞれフロント空燃比センサ、リア空燃比センサを配設し、両空燃比センサの出力に基づいて触媒の劣化を診断するエンジンの触媒劣化診断装置において、
所定の条件成立時に、フロント空燃比センサ出力電圧の挙動に基づいて計時される応答遅れ時間と吸入空気量をパラメータとして求まる基本遅れ時間とに基づいてフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間を算出し、当該応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出するフロント空燃比センサ応答劣化診断値算出手段と、
運転状態に基づいて診断条件が成立するか否かを判断する診断条件判別手段と、
診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する空燃比センサ出力電圧変化量積算手段と、
上記両積算値の比を算出する積算値比算出手段と、
上記フロント空燃比センサ応答劣化診断値に基づき上記積算値比に対する補正係数を算出する補正係数算出手段と、
上記積算値比を上記補正係数により補正する積算値比補正手段と、
補正後の上記積算値比を所定値と比較して触媒の劣化を診断する診断手段とを備えたことを特徴とするエンジンの触媒劣化診断装置。
【請求項２】
エンジンの排気系に介装された触媒コンバータの上流と下流とにそれぞれフロント空燃比センサ、リア空燃比センサを配設し、両空燃比センサの出力に基づいて触媒の劣化を診断するエンジンの触媒劣化診断装置において、
所定の条件成立時に、フロント空燃比センサ出力電圧の挙動に基づいて計時される応答遅れ時間と吸入空気量をパラメータとして求まる基本遅れ時間とに基づいてフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間を算出し、当該応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出するフロント空燃比センサ応答劣化診断値算出手段と、
運転状態に基づいて診断条件が成立するか否かを判断する診断条件判別手段と、
診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する空燃比センサ出力電圧変化量積算手段と、
上記両積算値の比を算出する積算値比算出手段と、
上記フロント空燃比センサ応答劣化診断値に基づきテーブル参照により触媒劣化を判定するための触媒劣化判定値を設定する触媒劣化判定値設定手段と、
上記積算値比を上記触媒劣化判定値と比較して触媒の劣化を診断する診断手段とを備えたことを特徴とするエンジンの触媒劣化診断装置。
【請求項３】
エンジンの排気系に介装された触媒コンバータの上流と下流とにそれぞれフロント空燃比センサ、リア空燃比センサを配設し、両空燃比センサの出力に基づいて触媒の劣化を診断するエンジンの触媒劣化診断装置において、
所定の条件成立時に、フロント空燃比センサ出力電圧の挙動に基づいて計時される応答遅れ時間と吸入空気量をパラメータとして求まる基本遅れ時間とに基づいてフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間を算出し、当該応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出するフロント空燃比センサ応答劣化診断値算出手段と、
運転状態に基づいて診断条件が成立するか否かを判断する診断条件判別手段と、
診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する空燃比センサ出力電圧変化量積算手段と、
上記両積算値の比を算出する積算値比算出手段と、
上記フロント空燃比センサ応答劣化診断値に基づき触媒劣化を判定するための触媒劣化判定値に対する補正係数を算出する補正係数算出手段と、
予め設定された触媒劣化判定値を上記補正係数により補正する触媒劣化判定値補正手段と、
上記積算値比を補正後の上記触媒劣化判定値と比較して触媒の劣化を診断する診断手段とを備えたことを特徴とするエンジンの触媒劣化診断装置。
【請求項４】
エンジンの排気系に介装された触媒コンバータの上流と下流とにそれぞれフロント空燃比センサ、リア空燃比センサを配設し、両空燃比センサの出力に基づいて触媒の劣化を診断するエンジンの触媒劣化診断装置において、
所定の条件成立時に、フロント空燃比センサ出力電圧の挙動に基づいて計時される応答遅れ時間と吸入空気量をパラメータとして求まる基本遅れ時間とに基づいてフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間を算出し、当該応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出するフロント空燃比センサ応答劣化診断値算出手段と、
運転状態に基づいて診断条件が成立するか否かを判断する診断条件判別手段と、
診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する空燃比センサ出力電圧変化量積算手段と、
上記両積算値の比を算出する積算値比算出手段と、
上記診断条件の成立時におけるエンジン負荷の平均値を算出するエンジン負荷平均値算出手段と、
上記フロント空燃比センサ応答劣化診断値と上記エンジン負荷平均値とに基づきテーブル参照により触媒劣化を判定するための触媒劣化判定値を設定する触媒劣化判定値設定手段と、
上記積算値比を上記触媒劣化判定値と比較して触媒の劣化を診断する診断手段とを備えたことを特徴とするエンジンの触媒劣化診断装置。
【請求項５】
エンジンの排気系に介装された触媒コンバータの上流と下流とにそれぞれフロント空燃比センサ、リア空燃比センサを配設し、両空燃比センサの出力に基づいて触媒の劣化を診断するエンジンの触媒劣化診断装置において、
所定の条件成立時に、フロント空燃比センサ出力電圧の挙動に基づいて計時される応答遅れ時間と吸入空気量をパラメータとして求まる基本遅れ時間とに基づいてフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間を算出し、当該応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出するフロント空燃比センサ応答劣化診断値算出手段と、
運転状態に基づいて診断条件が成立するか否かを判断する診断条件判別手段と、
診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する空燃比センサ出力電圧変化量積算手段と、
上記両積算値の比を算出する積算値比算出手段と、
上記診断条件の成立時におけるエンジン負荷の平均値を算出するエンジン負荷平均値算出手段と、
上記フロント空燃比センサ応答劣化診断値と上記エンジン負荷平均値とに基づき触媒劣化を判定するための触媒劣化判定値に対する補正係数を算出する補正係数算出手段と、
予め設定された触媒劣化判定値を上記補正係数により補正する触媒劣化判定値補正手段と、
上記積算値比を補正後の上記触媒劣化判定値と比較して触媒の劣化を診断する診断手段とを備えたことを特徴とするエンジンの触媒劣化診断装置。
【請求項６】
上記診断条件判別手段は、診断条件を判断するための運転状態を検出する各センサの出力値が正常で、上記各空燃比センサが共に活性状態、且つ空燃比フィードバック制御中であり、エンジン回転数及びエンジン負荷が予め設定された範囲内にあるとき、診断許可条件成立と判断し、又、エンジン過渡運転時、或いは、触媒劣化診断中に失火を検出した場合に、診断中止条件成立と判断し、上記診断許可条件が成立し、且つ、上記診断中止条件が非成立のとき、診断条件の成立とすることを特徴とする請求項１ないし請求項５の何れか１項に記載のエンジンの触媒劣化診断装置。
【請求項７】
上記積算値比算出手段は、診断条件の成立下において設定時間以上係属したときに、上記リア空燃比センサ出力電圧変化量による積算値をフロント空燃比センサ出力電圧変化量による積算値により除算して積算値の比を算出し、上記診断手段は、積算値比を触媒劣化を判定するための触媒劣化判定値と比較して、上記積算値比が触媒劣化判定値以上のとき、触媒の劣化と診断することを特徴とする請求項１ないし請求項５の何れか１項に記載のエンジンの触媒劣化診断装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エンジンの排気系に介装された触媒コンバータの上流と下流とにそれぞれ空燃比センサを配設し、両空燃比センサの出力に基づいて触媒の劣化を診断するエンジンの触媒劣化診断装置に関する。
【０００２】
【従来の技術】
一般に、エンジンの空燃比制御においては、触媒コンバータの上流に配設した空燃比センサ（Ｏ2センサ）の出力によって空燃比状態を検出し、空燃比をフィードバック制御するようにしているが、Ｏ2センサの出力特性のばらつき、燃料噴射弁等の部品の経時劣化等に起因する空燃比制御精度の悪化を改善するため、触媒コンバータの上流と下流とにそれぞれフロントＯ2センサ、リアＯ2センサを配設し、両Ｏ2センサの出力により空燃比を制御する、いわゆるダブルＯ2センサシステムが種々、提案されている。
【０００３】
そして、このダブルＯ2センサシステムにおいては、両Ｏ2センサの出力に基づいて触媒の劣化を診断するようにしている。
【０００４】
ここで、触媒の浄化性能は、触媒の有する酸素（Ｏ2）ストレージ効果と強い相関があり、触媒が新品のときには、図３９（ａ）に示すフロントＯ2センサの出力（出力電圧ＦＶＯ2）のリッチ（出力電圧がスライスレベルよりも大きい状態）からリーン（出力電圧ＦＶＯ2がスライスレベルよりも小さい状態）、リーンからリッチへの反転周期に対し、リアＯ2センサの出力（出力電圧ＲＶＯ2）の反転周期は、触媒のＯ2ストレージ効果により図３９（ｂ）に示すように、長くなる。そして、触媒の劣化が進むに従い触媒のＯ2ストレージ効果が低下し、図３９（ｃ）に示すように、リアＯ2センサの出力の反転周期は短くなる。
【０００５】
すなわち、触媒の劣化が進行するに従い、触媒コンバータ下流に配設したリアＯ2センサの出力特性が触媒コンバータ上流に配設したフロントＯ2センサの出力特性に近づき、両Ｏ2センサの出力電圧の反転回数の差が小さくなる。従って、フロントＯ2センサの出力電圧の反転回数に対するリア０2センサの出力電圧の反転回数の比を判定値と比較することで、触媒の劣化を診断することが可能となる。
【０００６】
例えば、本出願人による特開平５−２８９０４０２号公報（第１の先行例）には、エンジン運転状態パラメータに基づいて、フロントＯ2センサ出力電圧に対する上下１組の第１のスライスレベルと、リアＯ2センサ出力電圧に対する上下１組の第２のスライスレベルとをそれぞれ設定し、各Ｏ2センサの出力電圧をそれぞれ対応するスライスレベルと比較して、各Ｏ2センサの出力電圧がスライスレベルを横切る回数、すなわち各Ｏ2センサ出力電圧の反転回数をカウントし、所定時間における両Ｏ2センサの出力電圧の反転回数の比を予め設定された判定値と比較して、この反転回数の比が判定値以上のとき、触媒の劣化と診断する技術が開示されている。
【０００７】
また、特開平５−１０６４９３号公報（第２の先行例）には、リアＯ2センサの出力がリッチからリーンに反転するまでの時間ＴＬとリーンからリッチの反転するまでの時間ＴＲとを計測し、各時間ＴＬ，ＴＲの平均値が所定時間よりも短くなったときに、触媒の劣化判定を行い、上記時間ＴＬ，ＴＲの和もしくは平均値が所定時間以下のときに触媒が劣化したと診断する技術が開示されている。
【０００８】
また、特開平５−１０６４９４号公報（第３の先行例）には、運転状態が所定のモニタ条件を満足するとき、リアＯ2センサの出力のみに基づいて空燃比をフィードバック制御し、その際に空燃比を増加させるスキップ量（リッチ→リーン）を発生してからリアＯ2センサの出力がリッチ→リーンに反転するまでの時間ＴＬを測定すると共に、空燃比を減少させるスキップ量（リーン→リッチ）を発生してからリアＯ2センサの出力がリーン→リッチに反転するまでの時間ＴＲを測定し、これら時間ＴＬ，ＴＲに基づいて触媒の劣化を診断することで、触媒の劣化判定を行う際に、フロントＯ2センサの出力を使用せずに、リアＯ2センサの出力のみを使用して劣化判定を行い、フロントＯ2センサの単体特性や劣化による影響を受けることなく正確に触媒の劣化診断を行う技術が開示されている。
【０００９】
さらに、特開平５−９８９４７号公報（第４の先行例）には、リアＯ2センサの出力電圧の波形と該リアＯ2センサの出力電圧の極小値とで囲まれる面積を算出し、リアＯ2センサの出力電圧が理論空燃比に対応するスライスレベルを上下しない時間が所定時間継続したとき、上記面積に基づいて触媒の劣化を診断することで、リアＯ2センサの出力が理論空燃比より大きくずれたり、触媒の劣化が進行しておらずリアＯ2センサの出力電圧の振幅が大きい場合であっても、適切に触媒の劣化を診断可能とする技術が開示されている。
【００１０】
【発明が解決しようとする課題】
しかし、上記第１の先行例においては、図４０に示すように、Ｏ2センサの出力電圧ＶＯ2が上側スライスレベルＲＨを下から上、すなわちリーンからリッチ側に横切った時に、反転回数をカウントアップし、その後、Ｏ2センサ出力電圧ＶＯ2を下側スライスレベルＲＬと比較し、Ｏ2センサ出力電圧が下側スライスレベルＲＬを上から下、すなわちリッチからリーン側に横切ったときに反転回数をカウントアップするようにしている。
【００１１】
すなわち、上側スライスレベルＲＨによってＯ2センサ出力電圧ＶＯ２のリーンからリッチ側への反転を判断し、下側スライスレベルＲＬによってＯ2センサ出力電圧ＶＯ２のリッチからリーン側への反転を判断することで、反転回数をカウントする際に各スライスレベルＲＨ，ＲＬによってヒステリシスを与え、Ｏ2センサ出力電圧ＶＯ2の反転回数の誤カウントを防止するようにしている。
【００１２】
このため、例えば、図４１（ａ）に示すように、リアＯ2センサの出力電圧ＲＶＯ2がリーンシフトした場合、触媒の劣化に伴う該リアＯ2センサ出力電圧ＲＶＯ2の反転により、該リアＯ2センサ出力電圧ＲＶＯ2は、下側スライスレベルＲＬを横切るものの、上側スライスレベルＲＨを横切らず、従って、このときには、リアＯ2センサ出力電圧ＲＶＯ2が反転しているにも係わらず、リアＯ2センサ出力電圧ＲＶＯ2の反転回数をカウントアップすることができない。
【００１３】
また、逆にリアＯ2センサ出力電圧ＲＶＯ2がリッチシフトした場合にも、リアＯ2センサ出力電圧ＲＶＯ2が下側スライスレベルＲＬを横切らず、反転回数をカウントアップすることができない。
【００１４】
また、フロントＯ2センサの出力電圧ＦＶＯ2がリーンシフトしたり、或いはリッチシフトした場合にも、同様にフロントＯ2センサ出力電圧ＦＶＯ2の反転回数をカウントアップすることができない。
【００１５】
これに対処するに、上側スライスレベルＲＨと下側スライスレベルＲＬとのヒステリシス幅を狭めることも考えられるが、この場合には、図４１（ｂ）に示すように、触媒の劣化がさほど進行していない場合であっても、リアＯ2センサの出力電圧ＲＶＯ2がスライスレベルＲＨ，ＲＬを横切ることで、反転回数をカウントアップしてしまう。
【００１６】
更に、ある程度、触媒が劣化した場合には、リアＯ2センサの出力電圧ＲＶＯ２は、図４２に示すような波形を示し、スライスレベルの設定如何によって反転回数の計数値が変化する。
【００１７】
すなわち、第１の先行例においては、各スライスレベルＲＨ，ＲＬの設定如何によってＯ2センサ出力電圧の反転回数の計数値が変わってしまい、誤診断を生じる虞があり、触媒の劣化診断精度を十分に向上することができない。
【００１８】
更に、エンジン運転状態毎に各スライスレベルＲＨ，ＲＬを設定しなければならず、設計開発段階での各スライスレベルＲＨ，ＲＬのマッチング工数が著しく増大する不都合がある。
【００１９】
また、上記第２，第３の先行例においても、上記第１の先行例と同様に、各Ｏ2センサの出力電圧をスライスレベル（基準電圧）と比較することで、Ｏ2センサの出力のリッチからリーンへの反転、或いは、リーンからリッチの反転を判断しているため、上述と同様の不都合がある。
【００２０】
そして、上記第３の先行例においては、フロントＯ2センサの単体特性や劣化の影響を受けることなく触媒の劣化を診断することができるものの、触媒の劣化診断に際して、強制的に空燃比を変動させるため、この間、空燃比制御性が悪化して排気エミッションが悪化する不都合がある。
【００２１】
さらに、上記第４の先行例においては、リアＯ2センサの出力電圧の極小値を求めるための処理、及び、リアＯ2センサの出力電圧の波形と該リアＯ2センサの出力電圧の極小値とで囲まれる面積を算出するための算出処理を要し、触媒に対する劣化診断処理が煩雑化する不都合がある。
【００２２】
本発明は上記事情に鑑み、触媒の劣化に伴うフロント空燃比センサとリア空燃比センサとの出力電圧波形の差を簡単且つ正確に捕捉することができ、触媒に対する劣化診断精度を向上すると共に、触媒の劣化診断に際して、空燃比を強制的に変動させることなく実現でき、排気エミッションの悪化を生じることなく触媒の劣化診断を行うことが可能なエンジンの触媒劣化診断装置を提供することを目的とする。
【００２７】
【課題を解決するための手段】
上記目的を達成するため、請求項１記載の発明は、エンジンの排気系に介装された触媒コンバータの上流と下流とにそれぞれフロント空燃比センサ、リア空燃比センサを配設し、両空燃比センサの出力に基づいて触媒の劣化を診断するエンジンの触媒劣化診断装置において、図２（ｂ）の基本構成図に示すように、所定の条件成立時に、フロント空燃比センサ出力電圧の挙動に基づいて計時される応答遅れ時間と吸入空気量をパラメータとして求まる基本遅れ時間とに基づいてフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間を算出し、当該応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出するフロント空燃比センサ応答劣化診断値算出手段と、運転状態に基づいて診断条件が成立するか否かを判断する診断条件判別手段と、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する空燃比センサ出力電圧変化量積算手段と、上記両積算値の比を算出する積算値比算出手段と、上記フロント空燃比センサ応答劣化診断値に基づき上記積算値比に対する補正係数を算出する補正係数算出手段と、上記積算値比を上記補正係数により補正する積算値比補正手段と、補正後の上記積算値比を所定値と比較して触媒の劣化を診断する診断手段とを備えたことを特徴とする。
【００２８】
請求項２記載の発明は、エンジンの排気系に介装された触媒コンバータの上流と下流とにそれぞれフロント空燃比センサ、リア空燃比センサを配設し、両空燃比センサの出力に基づいて触媒の劣化を診断するエンジンの触媒劣化診断装置において、図２（ｃ）の基本構成図に示すように、所定の条件成立時に、フロント空燃比センサ出力電圧の挙動に基づいて計時される応答遅れ時間と吸入空気量をパラメータとして求まる基本遅れ時間とに基づいてフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間を算出し、当該応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出するフロント空燃比センサ応答劣化診断値算出手段と、運転状態に基づいて診断条件が成立するか否かを判断する診断条件判別手段と、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する空燃比センサ出力電圧変化量積算手段と、上記両積算値の比を算出する積算値比算出手段と、上記フロント空燃比センサ応答劣化診断値に基づきテーブル参照により触媒劣化を判定するための触媒劣化判定値を設定する触媒劣化判定値設定手段と、上記積算値比を上記触媒劣化判定値と比較して触媒の劣化を診断する診断手段とを備えたことを特徴とする。
【００２９】
請求項３記載の発明は、エンジンの排気系に介装された触媒コンバータの上流と下流とにそれぞれフロント空燃比センサ、リア空燃比センサを配設し、両空燃比センサの出力に基づいて触媒の劣化を診断するエンジンの触媒劣化診断装置において、図３（ａ）の基本構成図に示すように、所定の条件成立時に、フロント空燃比センサ出力電圧の挙動に基づいて計時される応答遅れ時間と吸入空気量をパラメータとして求まる基本遅れ時間とに基づいてフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間を算出し、当該応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出するフロント空燃比センサ応答劣化診断値算出手段と、運転状態に基づいて診断条件が成立するか否かを判断する診断条件判別手段と、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する空燃比センサ出力電圧変化量積算手段と、上記両積算値の比を算出する積算値比算出手段と、上記フロント空燃比センサ応答劣化診断値に基づき触媒劣化を判定するための触媒劣化判定値に対する補正係数を算出する補正係数算出手段と、予め設定された触媒劣化判定値を上記補正係数により補正する触媒劣化判定値補正手段と、上記積算値比を補正後の上記触媒劣化判定値と比較して触媒の劣化を診断する診断手段とを備えたことを特徴とする。
【００３０】
請求項４記載の発明は、エンジンの排気系に介装された触媒コンバータの上流と下流とにそれぞれフロント空燃比センサ、リア空燃比センサを配設し、両空燃比センサの出力に基づいて触媒の劣化を診断するエンジンの触媒劣化診断装置において、図３（ｂ）の基本構成図に示すように、所定の条件成立時に、フロント空燃比センサ出力電圧の挙動に基づいて計時される応答遅れ時間と吸入空気量をパラメータとして求まる基本遅れ時間とに基づいてフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間を算出し、当該応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出するフロント空燃比センサ応答劣化診断値算出手段と、運転状態に基づいて診断条件が成立するか否かを判断する診断条件判別手段と、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する空燃比センサ出力電圧変化量積算手段と、上記両積算値の比を算出する積算値比算出手段と、上記診断条件の成立時におけるエンジン負荷の平均値を算出するエンジン負荷平均値算出手段と、上記フロント空燃比センサ応答劣化診断値と上記エンジン負荷平均値とに基づきテーブル参照により触媒劣化を判定するための触媒劣化判定値を設定する触媒劣化判定値設定手段と、上記積算値比を上記触媒劣化判定値と比較して触媒の劣化を診断する診断手段とを備えたことを特徴とする。
【００３１】
請求項５記載の発明は、エンジンの排気系に介装された触媒コンバータの上流と下流とにそれぞれフロント空燃比センサ、リア空燃比センサを配設し、両空燃比センサの出力に基づいて触媒の劣化を診断するエンジンの触媒劣化診断装置において、図３（ｃ）の基本構成図に示すように、所定の条件成立時に、フロント空燃比センサ出力電圧の挙動に基づいて計時される応答遅れ時間と吸入空気量をパラメータとして求まる基本遅れ時間とに基づいてフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間を算出し、当該応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出するフロント空燃比センサ応答劣化診断値算出手段と、運転状態に基づいて診断条件が成立するか否かを判断する診断条件判別手段と、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する空燃比センサ出力電圧変化量積算手段と、上記両積算値の比を算出する積算値比算出手段と、上記診断条件の成立時におけるエンジン負荷の平均値を算出するエンジン負荷平均値算出手段と、上記フロント空燃比センサ応答劣化診断値と上記エンジン負荷平均値とに基づき触媒劣化を判定するための触媒劣化判定値に対する補正係数を算出する補正係数算出手段と、予め設定された触媒劣化判定値を上記補正係数により補正する触媒劣化判定値補正手段と、上記積算値比を補正後の上記触媒劣化判定値と比較して触媒の劣化を診断する診断手段とを備えたことを特徴とする。
【００３２】
請求項６記載の発明は、請求項１ないし請求項５の何れか１項に記載の発明において、上記診断条件判別手段は、診断条件を判断するための運転状態を検出する各センサの出力値が正常で、上記各空燃比センサが共に活性状態、且つ空燃比フィードバック制御中であり、エンジン回転数及びエンジン負荷が予め設定された範囲内にあるとき、診断許可条件成立と判断し、又、エンジン過渡運転時、或いは、触媒劣化診断中に失火を検出した場合に、診断中止条件成立と判断し、上記診断許可条件が成立し、且つ、上記診断中止条件が非成立のとき、診断条件の成立とすることを特徴とする。
【００３３】
請求項７記載の発明は、請求項１ないし請求項５の何れか１項に記載の発明において、上記積算値比算出手段は、診断条件の成立下において設定時間以上係属したときに、上記リア空燃比センサ出力電圧変化量による積算値をフロント空燃比センサ出力電圧変化量による積算値により除算して積算値の比を算出し、上記診断手段は、積算値比を触媒劣化を判定するための触媒劣化判定値と比較して、上記積算値比が触媒劣化判定値以上のとき、触媒の劣化と診断することを特徴とする。
【００３８】
すなわち、請求項１記載の発明では、所定の条件成立時に、フロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出する。また、運転状態に基づいて診断条件を判断し、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する。そして、両積算値の比を算出して、この積算値比を上記フロント空燃比センサ応答劣化診断値に基づき算出した補正係数によって補正することで、フロント空燃比センサの応答劣化に起因する積算値比の変化分を補償し、この補正後の積算値比を所定値と比較して触媒の劣化を診断する。
【００３９】
請求項２記載の発明では、所定の条件成立時に、フロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出する。また、運転状態に基づいて診断条件を判断し、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する。そして、両積算値の比を算出すると共に、上記フロント空燃比センサ応答劣化診断値に基づいてテーブル参照により触媒劣化を判定するための触媒劣化判定値を設定する。すなわち、フロント空燃比センサの応答劣化に起因する積算値比の変化分に対応して触媒の劣化を判定するための触媒劣化判定値を設定し、上記積算値比を該触媒劣化判定値と比較して触媒の劣化を診断することで、フロント空燃比センサに応答劣化が生じても正確な触媒劣化診断結果を得る。
【００４０】
請求項３記載の発明では、所定の条件成立時に、フロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出する。また、運転状態に基づいて診断条件を判断し、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する。そして、両積算値の比を算出すると共に、上記フロント空燃比センサ応答劣化診断値に基づいて算出した補正係数によって予め設定された触媒劣化判定値を補正する。すなわち、フロント空燃比センサの応答劣化に起因する積算値比の変化分に対応して触媒劣化判定値を補正する。そして、上記積算値比をこの補正後の触媒劣化判定値と比較して触媒の劣化を診断することで、フロント空燃比センサに応答劣化が生じても正確な触媒劣化診断結果を得る。
【００４１】
請求項４記載の発明では、所定の条件成立時に、フロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出する。また、運転状態に基づいて診断条件を判断し、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する。そして、両積算値の比を算出する。さらに、上記診断条件成立時におけるエンジン負荷の平均値を算出し、該エンジン負荷平均値と上記フロント空燃比センサ応答劣化診断値とに基づいてテーブル参照により触媒劣化を判定するための触媒劣化判定値を設定する。すなわち、フロント空燃比センサの応答劣化およびエンジン負荷に応じて変化する積算値比に対応して触媒の劣化を判定するための触媒劣化判定値を設定し、上記積算値比を該触媒劣化判定値と比較して触媒の劣化を診断することで、フロント空燃比センサに応答劣化が生じたり、診断時においてエンジン負荷が相違しても正確な触媒劣化診断結果を得る。
【００４２】
請求項５記載の発明では、所定の条件成立時に、フロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間に基づいてフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を算出する。また、運転状態に基づいて診断条件を判断し、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値とリア空燃比センサの出力電圧の変化量の絶対値とを各々積算する。そして、両積算値の比を算出する。さらに、上記診断条件成立時におけるエンジン負荷の平均値を算出し、該エンジン負荷平均値と上記フロント空燃比センサ応答劣化診断値に基づいて算出した補正係数によって予め設定された触媒劣化判定値を補正する。すなわち、フロント空燃比センサの応答劣化およびエンジン負荷に応じて変化する積算値比に対応して触媒劣化判定値を補正する。そして、上記積算値比をこの補正後の触媒劣化判定値と比較して触媒の劣化を診断することで、フロント空燃比センサに応答劣化が生じたり、診断時においてエンジン負荷が相違しても正確な触媒劣化診断結果を得る。
【００４３】
この際、請求項６記載の発明では、診断条件を判別するに際し、診断条件を判断するための運転状態を検出する各センサの出力値が正常で、上記各空燃比センサが共に活性状態、且つ空燃比フィードバック制御中であり、エンジン回転数及びエンジン負荷が予め設定された範囲内にあるとき、診断許可条件成立と判断し、又、エンジン過渡運転時、或いは、触媒劣化診断中に失火を検出した場合に、診断中止条件成立と判断する。そして、上記診断許可条件が成立し、且つ、上記診断中止条件が非成立のとき、診断条件の成立とする。
【００４４】
また、請求項７記載の発明では、上記積算値比を算出するに際し、診断条件の成立下において設定時間以上係属したとき、上記リア空燃比センサ出力電圧変化量による積算値をフロント空燃比センサ出力電圧変化量による積算値により除算して積算値の比を算出する。そして、上記積算値比を触媒劣化を判定するための触媒劣化判定値と比較し、上記積算値比が触媒劣化判定値以上のとき、触媒の劣化と診断する。
【００４５】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。図４〜図８は本発明の実施の第１形態を示す。
【００４６】
先ず、図７に基づいてエンジンの全体構成について説明する。同図において、符号１はエンジンであり、本形態においては水平対向式４気筒ガソリンエンジンである。このエンジン１のシリンダブロック１ａの左右両バンクには、シリンダヘッド２がそれぞれ設けられ、各シリンダヘッド２に吸気ポート２ａと排気ポート２ｂが形成されている。
【００４７】
このエンジン１の吸気系は、各吸気ポート２ａにインテークマニホルド３が連通され、このインテークマニホルド３に各気筒の吸気通路が集合するエアチャンバ４を介してスロットルチャンバ５が連通されている。そして、このスロットルチャンバ５上流側に吸気管６を介してエアクリーナ７が取り付けられ、このエアクリーナ７がエアインテークチャンバ８に連通されている。
【００４８】
また、上記スロットルチャンバ５には、アクセルペダルに連動するスロットル弁５ａが設けられている。上記吸気管６には、スロットル弁５ａをバイパスするバイパス通路９が接続され、このバイパス通路９に、アイドル時にその弁開度によって該バイパス通路９を流れるバイパス空気量を調整することでアイドル回転数を制御するアイドル回転数制御弁（ＩＳＣ弁）１０が介装されている。
【００４９】
更に、上記インテークマニホルド３の各気筒の吸気ポート２ａの直上流側にインジェクタ１１が配設されている。上記インジェクタ１１は燃料供給路１２を介して燃料タンク１３に連通されており、この燃料タンク１３にはインタンク式の燃料ポンプ１４が設けられている。この燃料ポンプ１４からの燃料が、上記燃料供給路１２に介装された燃料フィルタ１５を経て上記インジェクタ１１及びプレッシャレギュレータ１６に圧送され、このプレッシャレギュレータ１６から上記燃料タンク１３にリターンされて、上記インジェクタ１１への燃料圧力が所定の圧力に調圧される。
【００５０】
一方、上記シリンダヘッド２の各気筒毎に、先端の放電電極を燃焼室に露呈する点火プラグ１７が取り付けられ、この点火プラグ１７に、各気筒毎に配設された点火コイル１８を介してイグナイタ１９が接続されている。
【００５１】
また、エンジン１の排気系としては、上記シリンダヘッド２の各排気ポート２ｂに連通するエキゾーストマニホルド２０の集合部にフロント触媒コンバータ２１が配設され、このフロント触媒コンバータ２１の直下流にリア触媒コンバータ２２が配設されて排気管２３を介してマフラ２４に連通されている。
【００５２】
次に、エンジン運転状態を検出するためのセンサ類について説明する。上記吸気管６のエアクリーナ７の直下流に、ホットワイヤ或いはホットフィルム等を用いた熱式の吸入空気量センサ２５が介装され、更に、上記スロットルチャンバ５に設けられたスロットル弁５ａに、スロットル開度センサ２６ａとスロットル弁５ａの全閉でＯＮするアイドルスイッチ２６ｂとを内蔵したスロットルセンサ２６が連設されている。
【００５３】
また、エンジン１のシリンダブロック１ａにノックセンサ２７が取り付けられていると共に、シリンダブロック１ａの左右バンクを連通する冷却水通路２８に冷却水温センサ２９が臨まされている。
【００５４】
そして、上記フロント触媒コンバータ２１の上流にフロント空燃比センサとして排気ガス中の酸素濃度を検出するフロントＯ2 センサ（以下、「ＦＯ2センサ」と略記する）３０が配設され、リア触媒コンバータ２２の下流にリア空燃比センサとしてリアＯ2センサ（以下、「ＲＯ2センサ」と略記する）３１が配設されている。
【００５５】
また、エンジン１のクランクシャフト３２に軸着するクランクロータ３３の外周に、クランク角センサ３４が対設され、更に、クランクシャフト３２に対して１／２回転するカムシャフト３５に連設するカムロータ３６に、気筒判別用のカム角センサ３７が対設されている。
【００５６】
上記クランクロータ３３の外周には、所定クランク角毎にクランク角検出用の突起が形成されており、また、上記カムロータ３６の外周に気筒判別用の突起が形成されている。そして、エンジン運転に伴いクランクシャフト３２及びカムシャフト３５が回転し、これに伴い上記クランクロータ３３、カムロータ３６が回転してクランクロータ３３の各突起が上記クランク角センサ３４によって検出され、クランク角センサ３４から所定クランク角に対応するクランクパルスが出力され、また、上記カムロータ３６の気筒判別用突起が上記カム角センサ３７によって検出され、カム角センサ３７からカムパルスが出力される。
【００５７】
そして、後述する電子制御装置４０（図８参照）において、上記クランク角センサ３４から出力されるクランクパルスの入力間隔時間に基づいてエンジン回転数ＮEを算出し、また、上記カム角センサ３７からのカムパルスと、各気筒の燃焼行程順（例えば、＃１気筒→＃３気筒→＃２気筒→＃４気筒）とのパターンに基づいて、燃料噴射対象気筒や点火対象気筒等の気筒判別を行う。
【００５８】
上記インジェクタ１１、点火プラグ１７、ＩＳＣ弁１０等のアクチュエータ類に対する制御量の演算、制御信号の出力、すなわち燃料噴射制御、点火時期制御、アイドル回転数制御等のエンジン制御は、図８に示す電子制御装置（ＥＣＵ）４０によって行われる。
【００５９】
上記ＥＣＵ４０は、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、バックアップＲＡＭ４４、カウンタ・タイマ群４５、及びＩ／Ｏインターフェイス４６がバスラインを介して互いに接続されるマイクロコンピュータを中心として構成され、各部に安定化電源を供給する定電圧回路４７、上記Ｉ／Ｏインターフェイス４６に接続される駆動回路４８及びＡ／Ｄ変換器４９等の周辺回路が内蔵されている。
【００６０】
なお、上記カウンタ・タイマ群４５は、フリーランカウンタ、カム角センサ信号（カムパルス）の入力計数用カウンタ等の各種カウンタ、燃料噴射用タイマ、点火用タイマ、定期割り込みを発生させるための定期割り込み用タイマ、クランク角センサ出力信号（クランクパルス）の入力間隔計時用タイマ、及びシステム異常監視用のウオッチドッグタイマ等の各種タイマを便宜上総称するものであり、その他、各種のソフトウエアカウンタ・タイマが用いられる。
【００６１】
上記定電圧回路４７は、２回路のリレー接点を有する電源リレー５０の第１のリレー接点を介してバッテリ５１に接続され、バッテリ５１に、上記電源リレー５０のリレーコイルがイグニッションスイッチ５２を介して接続されている。また、上記定電圧回路４７は、直接、上記バッテリ５１に接続されており、イグニッションスイッチ５２がＯＮされて電源リレー５０の接点が閉となるとＥＣＵ４０内の各部へ電源を供給する一方、上記イグニッションスイッチ５２のＯＮ，ＯＦＦに拘らず、常時、上記バックアップＲＡＭ４４にバックアップ用の電源を供給する。更に、上記バッテリ５１には、燃料ポンプリレー５３のリレー接点を介して燃料ポンプ１４が接続されている。尚、上記電源リレー５０の第２のリレー接点には、上記バッテリ５１から各アクチュエータに電源を供給するための電源線が接続されている。
【００６２】
上記Ｉ／Ｏインターフェイス４６の入力ポートには、アイドルスイッチ２６ｂ、ノックセンサ２７、クランク角センサ３４、カム角センサ３７、及び車速を検出するために車速センサ３８が接続されており、更に、上記Ａ／Ｄ変換器４９を介して、吸入空気量センサ２５、スロットル開度センサ２６ａ、冷却水温センサ２９、ＦＯ2センサ３０、及びＲＯ2センサ３１が接続されると共に、バッテリ電圧ＶBが入力されてモニタされる。
【００６３】
一方、上記Ｉ／Ｏインターフェイス４６の出力ポートには、上記燃料ポンプリレー５３のリレーコイル、ＩＳＣ弁１０、インジェクタ１１、及び、図示しないインストルメントパネルに配設され各種警報を集中表示するＭＩＬランプ（警報ランプ）３９が上記駆動回路４８を介して接続されると共に、イグナイタ１９が接続されている。
【００６４】
また、上記Ｉ／Ｏインターフェイス４６には、外部接続用コネクタ５５が接続されており、この外部接続用コネクタ５５にシリアルモニタ（携帯型故障診断装置）６０を接続することで、シリアルモニタ６０によってＥＣＵ４０における入出力データ、及び、ＥＣＵ４０の自己診断機能により上記バックアップＲＡＭ４４にストアされた後述する触媒劣化の診断結果を表す触媒ＮＧフラグＦCATNGを含む故障部位、故障内容を示すトラブルデータを読み出して診断可能としている。更に、上記シリアルモニタ６０によって、上記トラブルデータのイニシャルセット（クリア）が行えるようになっている。
【００６５】
なお、このシリアルモニタ６０によるトラブルデータの診断、及びイニシャルセットについては、本出願人による特公平７−７６７３０号公報に詳述されている。
【００６６】
上記ＣＰＵ４１では、ＲＯＭ４２に記憶されている制御プログラムに従って、Ｉ／Ｏインターフェイス４６を介して入力されるセンサ・スイッチ類からの検出信号、及びバッテリ電圧等を処理し、ＲＡＭ４３に格納される各種データ、及びバックアップＲＡＭ４４に格納されている各種学習値データ，ＲＯＭ４２に記憶されている固定データ等に基づき、燃料噴射量、点火時期、ＩＳＣ弁１０に対する駆動信号のデューティ比等を演算し、燃料噴射制御、点火時期制御、アイドル回転数制御等のエンジン制御を行う。
【００６７】
このようなエンジン制御系において、ダブルＯ2センサシステムにより触媒の劣化を診断するに際し、ＥＣＵ４０は、運転状態に基づいて診断条件が成立するか否かを判断し、診断条件の成立時、所定時間毎にＦＯ2センサ３０の出力電圧変化量の絶対値とＲＯ2センサ３１の出力電圧変化量の絶対値とを各々積算し、エンジン運転状態が予め設定された診断領域に設定時間以上係属したときに、上記ＲＯ2センサ３１の出力電圧変化量による積算値ＲＤＳＶＰをＦＯ2センサ３０の出力電圧変化量による積算値ＦＤＳＶＰにより除算し、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴを算出する。そして、この積算値比ＣＨＡＮＴを触媒劣化判定値ＮＧＣＨＴと比較し、積算値比ＣＨＡＮＴが触媒劣化判定値ＮＧＣＨＴ以上のとき、触媒の劣化と診断する。
【００６８】
ここで、図６に示すように、エンジン１の排気ガス中の酸素濃度すなわち空燃比に応じてＦＯ2センサ３０の出力電圧ＦＶＯ2が上下し、また、触媒コンバータ２２の下流に配設されたＲＯ2センサ３１の出力電圧ＲＶＯ２は、触媒の劣化が進行するに従い触媒の酸素（Ｏ2）ストレージ効果が低下するため、位相遅れがあるもののＦＯ2センサ３０の出力電圧波形に近似する。また、各Ｏ2センサ出力電圧ＦＶＯ2，ＲＶＯ2の変化は、リーンからリッチへの上昇過程による変化と、リッチからリーンへの下降過程による変化とがある。
【００６９】
従って、触媒診断条件の成立時に、所定時間毎（例えば、５０msec毎）に、ＦＯ2センサ３０の出力電圧変化量ＦＤＶＰとして、前回（すなわち、５０msec前）のＦＯ2センサ出力電圧ＦＶＯ2n-1と現在のＦＯ2センサ出力電圧ＦＶＯ2nとの差の絶対値を算出して（ＦＤＶＰ←｜ＦＶＯ2n-1−ＦＶＯ2n｜）、このＦＯ2センサ出力電圧変化量ＦＤＶＰを積算すると共に（ＦＤＳＶＰ←ＦＤＳＶＰ＋ＦＤＶＰ）、ＲＯ2センサ３１の出力電圧変化量として、前回のＲＯ2センサ出力電圧ＲＶＯ2n-1と現在のＲＯ2センサ出力電圧ＲＶＯ2nとの差の絶対値を算出して（ＲＤＶＰ←｜ＲＶＯ2n-1−ＲＶＯ2n｜）、このＲＯ2センサ出力電圧変化量ＲＤＶＰを積算することで（ＲＤＳＶＰ←ＲＤＳＶＰ＋ＲＤＶＰ）、これら積算値ＦＤＳＶＰ，ＲＤＳＶＰの比によって触媒の劣化を捉えることが可能となる。
【００７０】
より具体的には、診断条件成立下において設定時間以上係属したとき、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯセンサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を算出することで、この積算値比ＣＨＡＮＴによって、ＦＯ2センサ３０とＲＯ2センサ３１との出力電圧波形の差、すなわち触媒の劣化を簡単且つ正確に捕捉することができる。
【００７１】
すなわち、触媒コンバータ２１，２２を構成する触媒の劣化が進行するに従い、触媒のＯ2ストレージ効果が低下し、ＲＯ2センサ出力電圧波形がＦＯ2センサ出力電圧波形に近似していくため、触媒の劣化に伴いＲＯ2センサ出力電圧ＲＶＯ2の変化量による積算値ＲＤＳＶＰが増加する。その結果、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）は、触媒が劣化するに従って必然的に増加する。
【００７２】
従って、上記積算値比ＣＨＡＮＴを、触媒が劣化したと見なし得る比率値として予め設定された触媒劣化判定値ＮＧＣＨＴと比較することで、上記積算値比ＣＨＡＮＴが触媒劣化判定値ＮＧＣＨＴ以上のとき、触媒の劣化と診断することができる。
【００７３】
その結果、各Ｏ2センサ３０、３１の出力電圧ＦＶＯ2，ＲＶＯ2をスライスレベルと比較することなく、触媒の劣化診断を行うことができ、触媒の劣化を簡素にして正確且つ確実に診断することが可能となり、触媒に対する劣化診断精度を向上することが可能となる。
【００７５】
以下、上記ＥＣＵ４０による本発明に係る触媒劣化診断処理について、図４〜図５に示すフローチャートに従って説明する。
【００７６】
先ず、イグニッションスイッチ５２がＯＮされ、ＥＣＵ４０に電源が投入されると、システムがイニシャライズされ、バックアップＲＡＭ４４に格納されている各種学習値等のデータ及びトラブルデータを除く、各フラグ、各カウンタ類が初期化される。そして、スタータスイッチ（図示せず）がＯＮされてエンジンが起動すると、クランク角センサ３４からのクランクパルス入力毎に、クランクパルスの入力間隔時間に基づきエンジン回転数ＮEを算出し、また、カム角センサ３７からのカムパルス入力により気筒判別を行う。尚、この気筒判別結果は、ここでは詳述しないが、燃料噴射制御、点火時期制御等に反映される。
【００７７】
そして、システムイニシャライズ後、図４〜図５に示す触媒劣化診断ルーチンが所定時間（例えば、５０msec）毎に実行される。
【００７８】
この触媒劣化診断ルーチンにおいては、先ず、ステップS1で、触媒劣化診断終了フラグＦCATENDを参照し、触媒劣化診断が終了しているか否かを判断する。
【００７９】
すなわち、本実施の形態においては、エンジンを始動してエンジン暖機完了状態となり、暖機完了状態でエンジンを運転して、イグニッションスイッチ５２のＯＦＦによりエンジンを停止するまでの間、すなわち１暖機サイクルにおいて触媒に対する劣化診断結果が１回得られた時点で、上記触媒診断終了フラグＦCATENDがセットされ、この暖機サイクルでの触媒劣化診断は終了する。そして、２暖機サイクル連続して触媒の劣化と診断されたとき、触媒の劣化と確定する。
【００８０】
従って、上記ステップS1で、ＦCATEND＝１の時には、本暖機サイクルにおいて既に触媒の劣化診断結果が得られており、このときは、そのままルーチンを抜ける。
【００８１】
一方、ＦCATEND＝０で、本暖機サイクルにおいて未だ触媒の劣化診断が終了していないときにはステップS2へ進み、ステップS2，S3で、運転状態に基づいて診断条件が成立するか否かを判断する。
【００８２】
ステップS2では、入力された各センサ類の出力値から診断許可条件が成立しているか否かを判断する。この診断許可条件としては、ＦＯ2センサ３０，ＲＯ2センサ３１を含む診断条件を判断するための運転状態を検出する各センサ類の出力値が正常で、ＦＯ2センサ３０及びＲＯ2センサ３１が共に活性状態、且つ空燃比フィードバック制御中であり、更に、エンジン回転数ＮE、エンジン負荷を表し基本燃料噴射量を定める基本燃料噴射パルス幅Ｔｐ（＝Ｋ×Ｑ／ＮE；Ｋはインジェクタ特性補正定数、Ｑは吸入空気量）、スロットル開度や車速等が予め設定された範囲内にあるとき、すなわち、運転状態が予め設定された診断領域にあるとき、診断許可条件成立と判断する。
【００８３】
すなわち、エンジン運転状態を検出するセンサが異常のときには、診断条件を判断できず、このとき触媒の劣化診断を行うと、誤診断を招き、また、ＦＯ2センサ３０，ＲＯ2センサ３１の非活性時には、ＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2，ＲＶＯ2が得られず、触媒の劣化を診断することができない。また、空燃比オープンループ制御時には、空燃比がストイキオ（理論空燃比）外のリッチ或いはリーンに制御されている場合があり、このときにもＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2，ＲＶＯ2に基づいて触媒の劣化を診断することができない。更に、エンジン運転状態が診断領域外の高負荷高回転領域にあるときには、空燃比がリッチ制御されており、同様に、ＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2，ＲＶＯ2に基づいて触媒の劣化を診断することができない。
【００８４】
従って、ＦＯ2センサ３０，ＲＯ2センサ３１を含むエンジン運転状態を検出する各センサ類の出力値が正常で、ＦＯ2センサ３０及びＲＯ2センサ３１が共に活性状態、且つ空燃比フィードバック制御中であり、更に、運転状態が診断領域にありエンジン安定状態にあるときに、触媒劣化診断許可条件の成立と判断する。
【００８５】
そして、診断許可条件の成立時には、ステップS3へ進み、診断中止条件を判断する。この診断中止条件としては、触媒劣化診断開始時からの上記基本燃料噴射パルス幅Ｔｐの変化量、或いはスロットル開度の変化量が予め定められた設定値を越えた場合、すなわちエンジン過渡運転時や、触媒劣化診断中に失火を検出した場合に、診断中止条件成立とする。
【００８６】
すなわち、加減速等のエンジン過渡運転時には、空燃比がリッチシフト或いはリーンシフトしており、ＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2，ＲＶＯ2に基づいて触媒の劣化を診断することができない。また、失火時には、オーバリーンによってＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2，ＲＶＯ2が異常値を示し、このときにも、触媒の劣化診断を行うと誤診断を生じる。
【００８７】
従って、基本燃料噴射パルス幅Ｔｐの変化量やスロットル開度変化量が設定値を越えたエンジン過渡運転時、或いは失火時には、触媒の劣化診断を中止する。そして、上記ステップS2において診断許可条件の非成立時、或いは上記ステップS3で診断中止条件の成立時には、ステップS24へジャンプして、ステップS24〜S27で、触媒劣化診断の継続時間を計時する診断時間カウント値ＭＴＭＣＡＴ、ＦＯ2センサ，ＲＯ2センサ出力電圧変化量による各積算値ＦＤＳＶＰ，ＲＤＳＶＰ、触媒劣化診断の初回ルーチン実行を判断するための初回判別フラグＦINIを、それぞれクリアして、ルーチンを抜ける。
【００８８】
一方、上記ステップS2で診断許可条件が成立し、且つ、ステップS3で診断中止条件が非成立でエンジン定常運転状態の時には、ステップS4へ進み、上記診断時間カウント値ＭＴＭＣＡＴをカウントアップし（ＭＴＭＣＡＴ←ＭＴＭＣＡＴ＋１）、続くステップS5で、初回判別フラグＦINIを参照して、触媒劣化診断の初回ルーチン実行か否かを判断する。
【００８９】
すなわち、触媒劣化診断の初回ルーチン実行時には、前回の値が得られていないため、ＦＯ2センサ出力電圧変化量ＦＤＶＰ、及びＲＯ2センサ出力電圧変化量ＲＤＶＰを算出することができない。従って、ＦINI＝０で触媒劣化診断の初回ルーチン実行時には、ステップS6へ進み、初回判別フラグＦINIをセットし（ＦINI←１）、次回に備えステップS7，S8で、それぞれ現在のＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2n，ＲＶＯ2nを読込み、この読込み値ＦＶＯ2n，ＲＶＯ2nを、前回すなわち本ルーチンの実行周期により定まる所定時間前（５０msec前）のＦＯ2センサ出力電圧ＦＶＯ2n-1，ＲＯ2センサ出力電圧ＲＶＯ2n-1とし（ＦＶＯ2n-1←ＦＶＯ2n、ＲＶＯ2n-1←ＲＶＯ2n）、ルーチンを抜ける。
【００９０】
そして、上記ステップS5においてＦINI＝１で、初回判別フラグＦINIのセットにより、診断条件成立中での２回目以降のルーチン実行時には、ステップS5からステップS9に進み、ステップS9〜S12の処理により各積算値ＦＤＳＶＰ，ＲＤＳＶＰを算出する。
【００９１】
ステップS9では、前回（５０msec前）のＦＯ2センサ出力電圧ＦＶＯ2n-1から現在のＦＯ2センサ出力電圧ＦＶＯ2nを減算し、ＦＯ2センサ出力電圧変化量の絶対値ＦＤＶＰを算出し（ＦＤＶＰ←｜ＦＶＯ2n-1−ＦＶＯ2n｜）、続くステップS10で、前回（５０msec前）のＲＯ2センサ出力電圧ＲＶＯ2n-1から現在のＲＯ2センサ出力電圧ＲＶＯ2nを減算して、ＲＯ2センサ出力電圧変化量の絶対値ＲＤＶＰを算出する（ＲＤＶＰ←｜ＲＶＯ2n-1−ＲＶＯ2n｜）。
【００９２】
次いでステップS11で、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに、上記ステップS9により算出したＦＯ2センサ出力電圧変化量絶対値ＦＤＶＰを加算して該積算値ＦＤＳＶＰを更新し（ＦＤＳＶＰ←ＦＤＳＶＰ＋ＦＤＶＰ）、続くステップS12で、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰに、上記ステップS10において算出したＲＯ2センサ出力電圧変化量絶対値ＲＤＶＰを加算し、該積算値ＲＤＳＶＰを更新する（ＲＤＳＶＰ←ＲＤＳＶＰ＋ＲＤＶＰ）。
【００９３】
その後、ステップS13へ進み、上記診断時間カウント値ＭＴＭＣＡＴを、設定値ＴＭＣＡＴと比較する。すなわち、触媒の劣化状態が上記ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰに反映されるまで、ある程度の時間を要する。従って、この時間を上記設定値ＴＭＣＡＴによって与える。
【００９４】
そして、ＭＴＭＣＡＴ＜ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達していないときには、上記ステップS7、S8を経て、それぞれ現在のＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2n，ＲＶＯ2nを、前回のＦＯ2センサ出力電圧ＦＶＯ2n-1，ＲＯ2センサ出力電圧ＲＶＯ2n-1とし、ルーチンを抜ける。
【００９５】
一方、上記ステップS13においてＭＴＭＣＡＴ≧ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達したとき、すなわち、エンジン運転状態が予め設定された診断領域に設定時間以上係属したとき、ステップS14へ進み、ステップS14〜S23で触媒に対する劣化判定処理を行う。
【００９６】
ステップS14では、上記ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰを、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰにより除算し、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴを算出する（ＣＨＡＮＴ←ＲＤＳＶＰ／ＦＤＳＶＰ）。
【００９７】
そして、ステップS15で、上記積算値比ＣＨＡＮＴを、触媒が劣化したと見なし得る比率値として予め設定された触媒劣化判定値ＮＧＣＨＴと比較する。そして、ＣＨＡＮＴ＜ＮＧＣＨＴのときには、触媒が劣化しておらず正常状態（触媒劣化なし）と判断して、ステップS16へ進み、ステップS16，S17で、それぞれバックアップＲＡＭ４４の所定アドレスにストアされる第１回目，第２回目の触媒劣化判定における触媒劣化を示す第１回目触媒ＮＧフラグＦCATNG1，第２回目触媒ＮＧフラグＦCATNG2をクリアする（ＦCATNG1←０、ＦCATNG2←０）。尚、このとき前記ＭＩＬランプ３９の点灯或いは点滅により触媒の劣化を警告中であれば、触媒の劣化なしによりＭＩＬランプ３９を消灯する。
【００９８】
そして、ステップS22へ進み、上記第１回目触媒ＮＧフラグＦCATNG1，第２回目触媒ＮＧフラグＦCATNG2による各データをモニタ用データとしてセットし、ステップS23で、触媒劣化診断終了フラグＦCATENDをセットする（ＦCATEND←１）。  従って、この場合、本暖機サイクルにおいて触媒劣化なし（触媒が正常）の触媒劣化診断結果が得られたことで、触媒劣化診断フラグＦCATENDがセットされ、次回以降のルーチン実行時には、ＦCATEND＝１によりステップS1からそのままルーチンを抜ける。これにより、１暖機サイクルにおいて、触媒に対する劣化診断結果が１回得られた時点で、触媒に対する劣化診断が終了される。
【００９９】
そして、上記ステップS24〜S27を経て、それぞれ上記診断時間カウント値ＭＴＭＣＡＴ、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰ、及び、初回判別フラグＦINIをクリアして、ルーチンを抜ける。
【０１００】
一方、上記ステップS15においてＣＨＡＮＴ≧ＮＧＣＨＴで、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰＦに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴが、上記触媒劣化判定値ＮＧＣＨＴ以上のときには、触媒が劣化した（触媒劣化あり）と判断して、ステップS18へ進み、バックアップＲＡＭ４４の所定アドレスにストアされ触媒劣化と判定されたときセットされる第１回目触媒ＮＧフラグＦCATNG1を参照する。
【０１０１】
そして、ＦCATNG1＝０で、触媒劣化と判定した初回のときには、ステップS19へ進み、該第１回目触媒ＮＧフラグＦCATNG1をセットして（ＦCATNG1←１）、上記ステップS22へ進んで、第１回目触媒ＮＧフラグＦCATNG1によるデータをモニタ用データとしてセットして、ステップS23で、触媒劣化診断終了フラグＦCATENDをセットし（ＦCATEND←１）、上記ステップS24〜S27を経てルーチンを抜ける。
【０１０２】
また、上記ステップS18においてＦCATNG1＝１で、既に触媒の劣化と判断されているときには、ステップS20へ進み、バックアップＲＡＭ４４の所定アドレスにストアされ触媒の劣化と確定する２回目触媒ＮＧフラグＦCATNG2をセットし（ＦCATNG2←１）、この触媒劣化の確定により、ステップS21で、警告処理を行い、具体的には上記ＭＩＬランプ３９を点灯或いは点滅させ、触媒が劣化したことを運転者に報知する。そして、上記ステップS22で、第１回目，第２回目触媒ＮＧフラグＦCATNG1，ＦCATNG2をモニタ用データとしてセットし、上記ステップS23〜S27を経てルーチンを抜ける。すなわち、２暖機サイクル連続して触媒の劣化と判定したときに、触媒の劣化と確定することで、触媒劣化診断の信頼性を向上する。
【０１０３】
その結果、触媒の劣化時には、ＭＩＬランプ３９の点灯或いは点滅により報知され、運転者は容易に触媒の劣化を知ることができる。また、ディーラ等のサービス工場でのトラブルシューティングの際に、外部接続用コネクタ５５にシリアルモニタ６０を接続することで、シリアルモニタ６０によってＥＣＵ４０における第１回目触媒ＮＧフラグＦCATNG1，第２回目触媒ＮＧフラグＦCATNG2によるトラブルデータを読み出して、触媒の劣化を的確に判断することができる。
【０１０４】
そして、触媒コンバータ２１，２２の少なくとも一方を交換後、上記シリアルモニタ６０により上記触媒ＮＧフラグＦCATNG1，ＦCATNG2をクリアする。尚、本実施の形態においては、触媒コンバータの交換後、シリアルモニタ６０にて上記触媒ＮＧフラグＦCATNG1，ＦCATNG2をクリアしなくても、上記触媒劣化診断ルーチンのステップS13において、ＣＨＡＮＴ＜ＮＧＣＨＴとなり、各触媒ＮＧフラグＦCATNG1，ＦCATNG2はクリアされる。
【０１０５】
また、本実施の形態においては、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＶＳＤＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を算出し、この積算値比ＣＨＡＮＴを触媒劣化判定値ＮＧＣＨＴと比較することで触媒の劣化を診断しているが、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰに対するＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰの比ＦＤＳＶＰ／ＲＤＳＶＰを算出し、この積算値比ＦＤＳＶＰ／ＲＤＳＶＰを触媒の劣化と見なし得る比率値と比較することで触媒の劣化を診断するようにしてもよい。この場合には、上記比率値は、上記触媒劣化判定値ＮＧＣＨＴに対し、１／ＮＧＣＨＴにより設定され、ＦＤＳＶＰ／ＲＤＳＶＰ≦１／ＮＧＣＨＴのとき、触媒の劣化と診断する。
【０１０６】
以上のように、触媒劣化診断条件の成立時に、所定時間毎にＦＯ2センサ３０の出力電圧変化量の絶対値の積算値ＦＤＳＶＰと、ＲＯ2センサ３１の出力電圧変化量の絶対値の積算値ＲＤＳＶＰとを各々算出し、この積算値比ＣＨＡＮＴを所定値としての触媒劣化判定値ＮＧＣＨＴと比較して触媒の劣化を診断するので、各Ｏ2センサ出力電圧ＦＶＯ2，ＲＶＯ2をスライスレベルと比較して各出力電圧ＦＶＯ2，ＲＶＯ2の反転回数を求めることなく、触媒の劣化を診断することができる。
【０１０７】
従って、触媒の劣化に伴うＦＯ2センサ３０とＲＯ2センサ３１との出力電圧波形の差を、簡易且つ確実に捕捉することが可能となり、簡単に触媒の劣化診断を行うことができ、触媒に対する劣化診断精度を向上することが可能となる。また、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰとＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰとの比ＣＨＡＮＴを、触媒劣化判定値ＮＧＣＨＴと比較して触媒の劣化を診断するため、先行例のようにエンジン運転状態毎にスライスレベルを設定することなく実現でき、設計開発段階でのマッチング工数を大幅に減少することが可能となる。
【０１０８】
さらに、触媒の劣化診断に際して、空燃比を強制的に変動させることなく実現でき、空燃比の強制変動による排気エミッションの悪化を生じることなく触媒の劣化診断を行うことができる。
【０１０９】
次に、図９〜図１２に基づいて、実施の第２形態を説明する。
【０１１０】
本実施の形態においては、各Ｏ2センサ３０、３１の劣化に伴い該Ｏ2センサ３０，３１の出力電圧特性が変化した場合であっても、正確に触媒の劣化診断を行うことを可能としたものである。
【０１１１】
すなわち、図９（ａ）に示すように、Ｏ2センサ３０，３１が劣化していないときには、空燃比のリッチ，リーンの切り換わりに伴う各Ｏ2センサ３０，３１の出力電圧ＦＶＯ2，ＲＶＯ2の振幅が大きいが、Ｏ2センサ３０，３１が劣化するに従い、図９（ｂ）に示すように、各Ｏ2センサ３０，３１の出力電圧ＦＶＯ2，ＲＶＯ2が相対的に低下して振幅が小さくなる、いわゆる電圧劣化が生じる。
【０１１２】
ここで、ＦＯ2センサ３０，ＲＯ2センサ３１が共に電圧劣化を生じていない場合、或いは両Ｏ2センサ３０，３１の電圧劣化の度合いが等しい場合には、問題ないが、例えば、ＦＯ2センサ３０が電圧劣化を生じておらず、ＲＯ2センサ３１のみ出力電圧ＲＶＯ2が相対的に低下する電圧劣化を生じた場合、ＲＯ2センサ出力電圧ＲＶＯ2の振幅の減少に伴って上記ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰが減少し、その結果、触媒の劣化度合いが同一状態の下でも、触媒劣化診断値としてのＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）が減少してしまい、この積算値比ＣＨＡＮＴと触媒劣化判定値ＮＧＣＨＴとの比較によって、触媒が劣化しているにも係わらず、ＣＨＡＮＴ＜ＮＧＣＨＴとなって、触媒が劣化してしないと誤診断する虞がある。
【０１１３】
また逆に、ＲＯ2センサ３１が電圧劣化を生じておらず、ＦＯ2センサ３０のみ出力電圧ＦＶＯ2が相対的に低下する電圧劣化を生じた場合、ＦＯ2センサ出力電圧ＦＶＯ2の振幅の減少に伴ってＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰが減少し、その結果、触媒の劣化度合いが同一状態の下でも、上記積算値比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）が増加してしまい、この積算値比ＣＨＡＮＴと触媒劣化判定値ＮＧＣＨＴとの比較によって、触媒が劣化していないにも係わらず、ＣＨＡＮＴ≧ＮＧＣＨＴとなり、触媒が劣化していると誤診断する虞がある。尚、これらの触媒劣化と各Ｏ2センサ３０，３１の電圧劣化とによる各積算値ＦＤＳＶＰ，ＲＤＳＶＰ、及び積算値比ＣＨＡＮＴの大小関係、並びに触媒劣化診断結果の可否、及びその整合性についての関係を図１０の図表に示す。
【０１１４】
従って、各Ｏ2センサ３０，３１の電圧劣化の進行度合いに応じて、各Ｏ2センサ出力電圧読込み値を補正する必要がある。
【０１１５】
このため、本実施の形態では、診断条件の成立時、触媒劣化診断を行うに際し、先ず、ダブルＯ2センサシステムによる空燃比フィードバック補正係数設定ルーチン等において算出されている周知の各Ｏ2センサ出力電圧ＦＶＯ2，ＲＶＯ2の極大値と極小値との差、すなわち極大極小値（Ｐeak  to  Ｐeak値；以下「Ｐ−Ｐ値」と略記する）ＦＶＰＰ，ＲＶＰＰを読み出す。ここで、上記各Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰは、それぞれＯ2センサ３０，３１の出力電圧がリッチとリーンとを交互に反転する毎に算出され、それぞれ現在の各Ｏ2センサ出力電圧ＦＶＯ2，ＲＶＯ2の実際の振幅を表す。
【０１１６】
そして、基準値として予めＲＯＭ４２にメモりされている各Ｏ2センサ３０，３１が電圧劣化を生じていないときに対応する基準Ｐ−Ｐ値ＢＶＰＰを、それぞれ各Ｏ2センサ出力電圧ＦＶＯ2，ＲＶＯ2の現在の実際の振幅に相当する上記各Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰにより除算することで、ＦＯ2センサ出力電圧補正係数ＦＫＶＰ，ＲＯ2センサ出力電圧補正係数ＲＫＶＰを算出し（ＦＫＶＰ←ＢＶＰＰ／ＦＶＰＰ，ＲＫＶＰ←ＢＶＰＰ／ＲＶＰＰ）、これら各補正係数ＦＫＶＰ，ＲＫＶＰによって各々Ｏ2センサ出力電圧読込み値ＦＶＯ2，ＲＶＯ2を補正してＦＯ2センサ補正出力電圧ＦＫＶＯ2，ＲＯ2センサ補正出力電圧ＲＫＶＯ2を算出する。
【０１１７】
そして、この補正後の各補正出力電圧ＦＫＶＯ2，ＲＫＶＯ2を用い、上記実施の第１形態と同様に、それぞれＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ，ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰを得る。
【０１１８】
すなわち、Ｏ2センサ３０，３１の電圧劣化が進行するに従って、各Ｏ2センサ出力電圧ＦＶＯ2，ＲＶＯ2の振幅すなわちＰ−Ｐ値ＦＶＰＰ，ＲＶＰＰが減少することに着目し、このＰ−Ｐ値ＦＶＰＰ，ＲＶＰＰと電圧劣化なしに相当する基準Ｐ−Ｐ値ＢＶＰＰとの比率によって、各Ｏ2センサ出力電圧読込み値ＦＶＯ2，ＲＶＯ2を補正することで、各Ｏ2センサ３０，３１に電圧劣化が生じても、電圧劣化なしに相当する出力電圧値を算出することが可能となる。そして、この値に基づいて各積算値ＦＤＳＶＰ，ＲＤＳＶＰを算出することで、各Ｏ2センサ３０，３１の少なくとも一方が電圧劣化を生じても、適正に触媒の劣化を診断することが可能となる。
【０１２０】
具体的には、本実施の形態では、上記実施の第１形態の図４に示す触媒劣化診断ルーチンに代えて、図１１の触媒劣化診断ルーチン、及び、図１２に示すＯ2センサ出力電圧劣化補正ルーチンを採用する。尚、触媒劣化診断ルーチンの後半については、上記実施の第１形態の図５のルーチンをそのまま採用する。また、上記実施の第１形態の触媒劣化診断ルーチンと同一のステップについては、同一の符号を付して、その詳細説明は省略する。
【０１２１】
図１１に示す触媒劣化診断ルーチンは、上記実施の第１形態と同様に、所定時間（例えば、５０msec）毎に実行され、先ず、ステップS1で、触媒劣化診断終了フラグＦCATENDを参照し、触媒劣化診断が終了しているか否かを判断し、ＦCATEND＝１で既に本暖機サイクルにおいて触媒の劣化診断結果が得られているときには、そのままルーチンを抜ける。
【０１２２】
また、上記ステップS1においてＦCATEND＝０で、本暖機サイクルにおいて未だ触媒の劣化診断が終了していないときにはステップS2へ進み、ステップS2，S3で、運転状態に基づいて診断条件が成立するか否かを判断し、診断許可条件の非成立時、或いは診断中止条件の成立時には、上記実施の第１形態と同様に、図５のステップS24へジャンプして、ステップS24〜S27で、それぞれ診断時間カウント値ＭＴＭＣＡＴ、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰ、及び、初回判別フラグＦINIをクリアして、ルーチンを抜ける。
【０１２３】
一方、ステップS2で診断許可条件が成立し、且つステップS3で診断中止条件の非成立時には、ステップS201へ進み、図１２に示すＯ2センサ出力電圧劣化補正ルーチンを実行し、各Ｏ2センサ３０，３１の電圧劣化に応じて各Ｏ2センサ出力電圧ＦＶＯ2，ＲＶＯ2を補正する。
【０１２４】
このＯ2センサ出力電圧劣化補正ルーチンについて説明すると、ステップS31，S32で、それぞれ図示しない空燃比フィードバック補正係数設定ルーチン等において算出されている周知の所定周期における各Ｏ2センサ出力電圧ＦＶＯ2，ＲＶＯ2のＰ−Ｐ値ＦＶＰＰ，ＲＶＰＰを読み出す。
【０１２５】
次いで、ステップS33へ進み、基準値として予めＲＯＭ４２の所定アドレスにメモリされているＯ2センサ３０，３１が電圧劣化を生じていないときに対応する基準Ｐ−Ｐ値ＢＶＰＰを読み出し、ステップS33，S34で、それぞれこの基準Ｐ−Ｐ値ＢＶＰＰを上記各Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰにより除算してＦＯ2センサ出力電圧補正係数ＦＫＶＰ，ＲＯ2センサ出力電圧補正係数ＲＫＶＰを算出する（ＦＫＶＰ←ＢＶＰＰ／ＦＶＰＰ、ＲＫＶＰ←ＢＶＰＰ／ＲＶＰＰ）。
【０１２６】
続くステップS35では、現在のＦＯ2センサ出力電圧ＦＶＯ2を読み込み、このＦＯ2センサ出力電圧ＦＶＯ2に上記ＦＯ2センサ出力電圧補正係数ＦＫＶＰを乗算することでＦＯ2センサ３０の電圧劣化を補償し、ＦＯ2センサ補正出力電圧ＦＫＶＯ2nを算出する（ＦＫＶＯ2n←ＦＶＯ2×ＦＫＶＰ）。そして、ステップS36で、現在のＲＯ2センサ出力電圧ＲＶＯ2を読み込み、このＲＯ2センサ出力電圧ＲＶＯ2に上記ＲＯ2センサ出力電圧補正係数ＲＫＶＰを乗算することでＲＯ2センサ３１の電圧劣化を補償し、ＲＯ2センサ補正出力電圧ＲＫＶＯ2nを算出する（ＲＫＶＯ2n←ＲＶＯ2×ＲＫＶＰ）。
【０１２７】
そして、Ｏ2センサ出力電圧劣化補正ルーチンの終了により、触媒劣化診断ルーチン（図１１参照）のステップS4へ進み、診断時間カウント値ＭＴＭＣＡＴをカウントアップし、続くステップS5で、初回判別フラグＦINIを参照する。
【０１２８】
そして、ＦINI＝０の触媒劣化診断の初回ルーチン実行時には、ステップS6へ進み、初回判別フラグＦINIをセットし、次回に備えステップS202，S203で、それぞれ上記Ｏ2センサ電圧劣化補正ルーチンのステップS35，S36において算出した今回のＦＯ2センサ補正出力電圧ＦＫＶＯ2n，ＲＯ2センサ補正出力電圧ＲＫＶＯ2nを、前回すなわち本ルーチンの実行周期により定まる所定時間前（５０msec前）のＦＯ2センサ補正出力電圧ＦＫＶＯ2n-1，ＲＯ2センサ補正出力電圧ＲＫＶＯ2n-1とし（ＦＫＶＯ2n-1←ＦＫＶＯ2n、ＲＫＶＯ2n-1←ＲＫＶＯ2n）、ルーチンを抜ける。
【０１２９】
また、上記ステップS5においてＦINI＝１で、診断条件が成立中での２回目以降のルーチン実行時には、ステップS5からステップS204へ進み、ステップS204〜S12の処理により各Ｏ2センサ補正出力電圧ＦＫＶＯ2，ＲＫＶＯ2に基づいて各々積算値ＦＤＳＶＰ，ＲＤＳＶＰを算出する。
【０１３０】
すなわち、ステップS204では、前回（５０msec前）のＦＯ2センサ補正出力電圧ＦＫＶＯ2n-1から上記Ｏ2センサ出力電圧劣化補正ルーチンのステップS35において算出した今回のＦＯ2センサ補正出力電圧ＦＫＶＯ2nを減算して、この減算値の絶対値をＦＯ2センサ出力電圧変化量ＦＤＶＰとし（ＦＤＶＰ←｜ＦＫＶＯ2n-1−ＦＫＶＯ2n｜）、続くステップS205で、前回（５０msec前）のＲＯ2センサ補正出力電圧ＲＫＶＯ2n-1から今回算出したＲＯ2センサ補正出力電圧ＲＫＶＯ2nを減算して、この減算値の絶対値をＲＯ2センサ出力電圧変化量ＲＤＶＰとする（ＲＤＶＰ←｜ＲＫＶＯ2n-1−ＲＫＶＯ2n｜）。
【０１３１】
次いでステップS11，S12で、それぞれＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ，ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰに、上記ＦＯ2センサ出力電圧変化量ＦＤＶＰ，ＲＯ2センサ出力電圧変化量ＲＤＶＰを加算して、各々積算値ＦＤＳＶＰ，ＲＤＳＶＰを更新し（ＦＤＳＶＰ←ＦＤＳＶＰ＋ＦＤＶＰ、ＲＤＳＶＰ←ＲＤＳＶＰ＋ＲＤＶＰ）、ステップS13で、上記診断時間カウント値ＭＴＭＣＡＴを、設定値ＴＭＣＡＴと比較する。
【０１３２】
そして、ＭＴＭＣＡＴ＜ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達していないときには、上記ステップS202，S203を経て、それぞれ今回のＦＯ2センサ補正出力電圧ＦＫＶＯ2n，ＲＯ2センサ補正出力電圧ＲＫＶＯ2nを、前回のＦＯ2センサ補正出力電圧ＦＫＶＯ2n-1，ＲＯ2センサ補正出力電圧ＲＫＶＯ2n-1とし、ルーチンを抜ける。
【０１３３】
一方、上記ステップS13においてＭＴＭＣＡＴ≧ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達したとき、すなわち、エンジン運転状態が予め設定された診断領域に設定時間以上係属したとき、上記実施の第１形態と同様に、図５のステップS14へ進み、ステップS14〜S23で、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴを算出し（ＣＨＡＮＴ←ＲＤＳＶＰ／ＦＤＳＶＰ）、この積算値比ＣＨＡＮＴを、触媒が劣化したと見なし得る比率値として予め設定された触媒劣化判定値ＮＧＣＨＴと比較して触媒に対する劣化判定処理を行った後、上記ステップS24〜S27を経て、ルーチンを抜ける。
【０１３４】
尚、ここで、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰに対するＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰの比ＦＤＳＶＰ／ＲＤＳＶＰを算出し、この積算値比ＦＤＳＶＰ／ＲＤＳＶＰを触媒の劣化と見なし得る比率値と比較することで触媒の劣化を診断するようにしてもよい。この場合には、上記比率値は、１／ＮＧＣＨＴにより設定され、ＦＤＳＶＰ／ＲＤＳＶＰ≦１／ＮＧＣＨＴのとき、触媒の劣化と診断する。
【０１３５】
以上のように、本実施の形態では、各Ｏ2センサ３０，３１の電圧劣化の進行に伴い減少する出力電圧ＦＶＯ2，ＲＶＯ2の振幅を表す現在のＰ−Ｐ値ＦＶＰＰ，ＲＶＰＰと、各Ｏ2センサ３０，３１が電圧劣化を生じていないときに対応する基準Ｐ−Ｐ値ＢＶＰＰとの比率によって各Ｏ2センサ出力電圧補正係数ＦＫＶＰ，ＲＫＶＰを算出し、この各補正係数ＦＫＶＰ，ＲＫＶＰによって各々Ｏ2センサ出力電圧ＦＶＯ2，ＲＶＯ2を補正することで、各Ｏ2センサ３０，３１の電圧劣化を補償して電圧劣化なしに相当する各補正出力電圧ＦＫＶＯ2，ＲＫＶＯ2を算出する。すなわち、各Ｏ2センサ３０，３１の電圧劣化の進行度合いに応じて、各Ｏ2センサ出力電圧読込み値ＦＶＯ2，ＲＶＯ2が補正され、この補正出力電圧ＦＫＶＯ2，ＲＫＶＯ2に基づいて各積算値ＦＤＳＶＰ，ＲＤＳＶＰを算出し、これらの積算値の比ＣＨＡＮＴに基づいて触媒の劣化を診断するので、例えば、ＦＯ2センサ３０が電圧劣化を生じておらず、ＲＯ2センサ３１のみ出力電圧ＲＶＯ2が相対的に低下する電圧劣化を生じた場合であっても、ＲＯ2センサ出力電圧ＲＶＯ2が電圧劣化に応じて補正され、電圧劣化なしに相当する補正出力電圧ＲＫＶＯ2によってＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰが算出されるため、ＲＯ2センサ３１の電圧劣化によりＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰが減少することが補償され、従って、ＲＯ2センサ３１のみ電圧劣化が生じても、触媒が劣化しているにも係わらず劣化していないと誤診断することはなくなる。
【０１３６】
また、ＲＯ2センサ３１が電圧劣化を生じておらず、ＦＯ2センサ３０のみ出力電圧ＦＶＯ2が相対的に低下する電圧劣化を生じた場合でも、ＦＯ2センサ出力電圧ＦＶＯ2が電圧劣化に応じて補正され、電圧劣化なしに相当する補正出力電圧ＦＫＶＯ2によってＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰが算出されるため、ＦＯ2センサ３０の電圧劣化に起因してＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰが減少することが補償され、従って、ＦＯ2センサ３０のみ電圧劣化が生じても、触媒が劣化していないにも係わらず劣化していると誤診断することはなくなる。
【０１３７】
すなわち、本実施の形態においては、ＦＯ2センサ３０とＲＯ2センサ３１との少なくとも一方が電圧劣化を生じても、これに伴う触媒劣化の誤診断を確実に防止することが可能となり、触媒に対する劣化診断精度をより向上させることが可能となる。
【０１３８】
次に、図１３〜図１６に基づいて、実施の第３形態を説明する。
【０１３９】
上記実施の第２形態においては、各Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰと基準Ｐ−Ｐ値ＢＶＰＰとの比率による出力電圧補正係数ＦＫＶＰ，ＲＫＶＰによって、各々Ｏ2センサ出力電圧ＦＶＯ2，ＲＶＯ2を補正してＯ2センサ補正出力電圧ＦＫＶＯ2，ＲＫＶＯ2を算出し、この各Ｏ2センサ補正出力電圧ＦＫＶＯ2，ＲＫＶＯ2を積算することで、各Ｏ2センサ３０，３１の電圧劣化を補償するのに対し、本実施の形態では、各Ｏ2センサ出力電圧ＦＶＯ2，ＲＶＯ2に対しては補正を行わず、最終パラメータとしての各積算値ＦＤＳＶＰ，ＲＤＳＶＰに対して補正を行い、上記実施の第２形態と同様に、各Ｏ2センサ３０、３１の劣化に伴い該Ｏ2センサ３０，３１の出力電圧特性が変化した場合であっても、正確に触媒の劣化診断を行うことを可能としたものである。
【０１４０】
すなわち、本実施の形態では、診断条件の成立時に、所定時間毎に各Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰを各々積算すると共に、各Ｏ2センサ出力電圧変化量の絶対値を各々積算する。そして、各Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰを各々積算したＰ−Ｐ積算値ＦＳＶＰＰ，ＲＳＶＰＰに基づいて診断条件成立下における各Ｏ2センサ３０，３１の平均Ｐ−Ｐ値ＦＡＶＰＰ，ＲＡＶＰＰを算出し、各平均Ｐ−Ｐ値ＦＡＶＰＰ，ＲＡＶＰＰと、基準値として予めＲＯＭ４２にメモりされている各Ｏ2センサ３０，３１が電圧劣化を生じていないときに対応する基準Ｐ−Ｐ値ＢＶＰＰとに基づいてＦＯ2センサ出力電圧補正係数ＦＫＶＰ，ＲＯ2センサ出力電圧補正係数ＲＫＶＰを算出する。そして、これら各補正係数ＦＫＶＰ，ＲＫＶＰによって各々Ｏ2センサ出力電圧変化量積算値ＦＤＳＶＰ，ＲＤＳＶＰを補正し、この補正後のＦＯ2センサ補正出力電圧変化量積算値ＦＫＤＳＶＰとＲＯ2センサ補正出力電圧変化量積算値ＲＫＤＳＶＰとの比ＣＨＡＮＴを算出して、この積算値の比ＣＨＡＮＴを触媒劣化判定値ＮＧＣＨＴと比較することで、触媒の劣化を診断する。
【０１４２】
具体的には、本実施の形態では、上記実施の各形態の触媒劣化診断ルーチン、及び上記実施の第２形態の図１２に示すＯ2センサ出力電圧劣化補正ルーチンに代えて、図１３〜図１４の触媒劣化診断ルーチン、図１５に示すＰ−Ｐ値積算ルーチン、及び図１６に示すＯ2センサ電圧劣化補正ルーチンを採用する。尚、上記各実施の形態と同一のステップについては、同一の符号を付して、その詳細説明は省略する。
【０１４３】
図１３に示す触媒劣化診断ルーチンは、上記各実施の形態と同様に、所定時間（例えば、５０msec）毎に実行され、先ずステップS1で、触媒劣化診断終了フラグＦCATENDを参照し、触媒劣化診断が終了しているか否かを判断し、ＦCATEND＝１で既に本暖機サイクルにおいて触媒の劣化診断結果が得られているときには、そのままルーチンを抜ける。
【０１４４】
また、上記ステップS1においてＦCATEND＝０で、本暖機サイクルにおいて未だ触媒の劣化診断が終了していないときにはステップS2へ進み、ステップS2，S3で、運転状態に基づいて診断条件が成立するか否かを判断し、診断許可条件の非成立時、或いは診断中止条件の成立時には、ステップS24（図１４参照）へジャンプして、ステップS24〜S27で、それぞれ診断時間カウント値ＭＴＭＣＡＴ、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰ、及び、初回判別フラグＦINIをクリアし、ステップS304，S305で、それぞれ各Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰを各々積算したＰ−Ｐ積算値ＦＳＶＰＰ，ＲＳＶＰＰをクリアして、ルーチンを抜ける。
【０１４５】
一方、ステップS2で診断許可条件が成立し、且つステップS3で診断中止条件の非成立時には、ステップS4へ進み、診断時間カウント値ＭＴＭＣＡＴをカウントアップして、続くステップS301で、図１５に示すＰ−Ｐ値積算ルーチンを実行し、各々Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰを積算する。
【０１４６】
このＰ−Ｐ値積算ルーチンについて説明すると、ステップS41，S42で、それぞれ図示しない空燃比フィードバック補正係数設定ルーチン等において算出されている周知の所定周期における各Ｏ2センサ出力電圧ＦＶＯ2，ＲＶＯ2のＰ−Ｐ値ＦＶＰＰ，ＲＶＰＰを読み出す。
【０１４７】
次いで、ステップS43へ進み、ステップS43，S44で、それぞれＰ−Ｐ積算値ＦＳＶＰＰ，ＲＳＶＰＰに上記Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰを加算して、該Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰを積算する（ＦＳＶＰＰ←ＦＳＶＰＰ＋ＦＶＰＰ、ＲＳＶＰＰ←ＲＳＶＰＰ＋ＲＶＰＰ）。
【０１４８】
そして、Ｐ−Ｐ値積算ルーチンの終了により、触媒劣化診断ルーチン（図１３参照）のステップS5へ進み、初回判別フラグＦINIを参照する。
【０１４９】
そして、ＦINI＝０の触媒劣化診断の初回ルーチン実行時には、ステップS6へ進み、初回判別フラグＦINIをセットし、次回に備えステップS7，S8で、それぞれ現在のＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2n，ＲＶＯ2nを読込み、この読込み値ＦＶＯ2n，ＲＶＯ2nを、前回すなわち本ルーチンの実行周期により定まる所定時間前（５０msec前）のＦＯ2センサ出力電圧ＦＶＯ2n-1，ＲＯ2センサ出力電圧ＲＶＯ2n-1とし（ＦＶＯ2n-1←ＦＶＯ2n、ＲＶＯ2n-1←ＲＶＯ2n）、ルーチンを抜ける。
【０１５０】
また、上記ステップS5においてＦINI＝１で、診断条件が成立中での２回目以降のルーチン実行時には、ステップS5からステップS9へ進み、ステップS9〜S12の処理により各積算値ＦＤＳＶＰ，ＲＤＳＶＰを算出する。
【０１５１】
ステップS9，S10では、それぞれ前回の各Ｏ2センサ出力電圧ＦＶＯ2n-1，ＲＶＯ2n-1から現在の各Ｏ2センサ出力電圧ＦＶＯ2n，ＲＶＯ2nを各々減算して、ＦＯ2センサ出力電圧変化量絶対値ＦＤＶＰ，ＲＯ2センサ出力電圧変化量絶対値ＲＤＶＰを算出する（ＦＤＶＰ←｜ＦＶＯ2n-1−ＦＶＯ2n｜、ＲＤＶＰ←｜ＲＶＯ2n-1−ＲＶＯ2n｜）。
【０１５２】
次いでステップS11，S12で、各Ｏ2センサ出力電圧変化量積算値ＦＤＳＶＰ，ＲＤＳＶＰに、それぞれ上記各Ｏ2センサ出力電圧変化量絶対値ＦＤＶＰ，ＲＤＶＰを加算して各々積算値ＦＤＳＶＰ，ＲＤＳＶＰを更新する（ＦＤＳＶＰ←ＦＤＳＶＰ＋ＦＤＶＰ、ＲＤＳＶＰ←ＲＤＳＶＰ＋ＲＤＶＰ）。
【０１５３】
その後、ステップS13へ進み、上記診断時間カウント値ＭＴＭＣＡＴを設定値ＴＭＣＡＴと比較する。そして、ＭＴＭＣＡＴ＜ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達していないときには、上記ステップS7、S8を経て、ルーチンを抜ける。
【０１５４】
一方、上記ステップS13においてＭＴＭＣＡＴ≧ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達したとき、すなわち、エンジン運転状態が予め設定された診断領域に設定時間以上係属したとき、ステップS302へ進み、図１６に示すＯ2センサ電圧劣化補正ルーチンを実行して、各Ｏ2センサ３０，３１の電圧劣化に応じて上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ，ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰをそれぞれ補正する。
【０１５５】
このＯ2センサ電圧劣化補正ルーチンについて説明すると、ステップS51，S52で、それぞれ上記ＦＯ2センサＰ−Ｐ積算値ＦＳＶＰＰ，ＲＯ2センサＰ−Ｐ積算値ＲＳＶＰＰを、上記診断時間カウント値ＭＴＭＣＡＴにより除算して各Ｏ2センサ３０，３１の平均Ｐ−Ｐ値ＦＡＶＰＰ，ＲＡＶＰＰを算出する（ＦＡＶＰＰ←ＦＳＶＰＰ／ＭＴＭＣＡＴ、ＲＡＶＰＰ←ＲＳＶＰＰ／ＭＴＭＣＡＴ）。
【０１５６】
ここで、上記診断時間カウント値ＭＴＭＣＡＴは、診断条件の成立時に本ルーチンの実行毎にカウントアップされ、且つこのとき、各Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰが読み出されて、これらＰ−Ｐ値ＦＶＰＰ，ＲＶＰＰが積算される。従って、上記診断時間カウント値ＭＴＭＣＡＴはＰ−Ｐ値ＦＶＰＰ，ＲＶＰＰのサンプリング回数を表し、上記各Ｐ−Ｐ積算値ＦＳＶＰＰ，ＲＳＶＰＰを該診断時間カウント値ＭＴＭＣＡＴにより除算することで、それぞれＦＯ2センサ３０の平均Ｐ−Ｐ値ＦＡＶＰＰ及びＲＯ2センサ３１の平均Ｐ−Ｐ値ＲＡＶＰＰを得ることができる。
【０１５７】
そして、ステップS53へ進み、基準値として予めＲＯＭ４２の所定アドレスにメモりされているＯ2センサ３０，３１が電圧劣化を生じていないときに対応する基準Ｐ−Ｐ値ＢＶＰＰを読み出し、ステップS53，S54で、それぞれこの基準Ｐ−Ｐ値ＢＶＰＰを上記各平均Ｐ−Ｐ値ＦＡＶＰＰ，ＲＡＶＰＰにより除算してＦＯ2センサ出力電圧補正係数ＦＫＶＰ，ＲＯ2センサ出力電圧補正係数ＲＫＶＰを算出する（ＦＫＶＰ←ＢＶＰＰ／ＦＡＶＰＰ、ＲＫＶＰ←ＢＶＰＰ／ＲＡＶＰＰ）。
【０１５８】
次いでステップS55で、上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに、上記ＦＯ2センサ出力電圧補正係数ＦＫＶＰを乗算してＦＯ2センサ補正出力電圧変化量積算値ＦＫＤＳＶＰを算出することで、ＦＯ2センサ３０の電圧劣化による積算値ＦＤＳＶＰの減少分を補償し（ＦＫＤＳＶＰ←ＦＤＳＶＰ×ＦＫＶＰ）、続くステップS56で、上記ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰに、上記ＲＯ2センサ出力電圧補正係数ＲＫＶＰを乗算してＲＯ2センサ補正出力電圧変化量積算値ＲＫＤＳＶＰを算出することで、ＲＯ2センサ３１の電圧劣化による積算値ＲＤＳＶＰの減少分を補償する（ＲＫＤＳＶＰ←ＲＤＳＶＰ×ＲＫＶＰ）。
【０１５９】
そして、以上のＯ2センサ電圧劣化補正ルーチンの終了により、触媒劣化診断ルーチン（図１３参照）のステップS303へ進み、上記ＲＯ2センサ補正出力電圧変化量積算値ＲＫＤＳＶＰを、ＦＯ2センサ補正出力電圧変化量積算値ＦＫＤＳＶＰにより除算し、ＦＯ2センサ補正出力電圧変化量積算値ＦＫＤＳＶＰに対するＲＯ2センサ補正出力電圧変化量積算値ＲＫＤＳＶＰの比ＣＨＡＮＴを算出する（ＣＨＡＮＴ←ＲＫＤＳＶＰ／ＦＫＤＳＶＰ）。
【０１６０】
そして、ステップS15〜S23で、この積算値比ＣＨＡＮＴを、触媒が劣化したと見なし得る比率値として予め設定された触媒劣化判定値ＮＧＣＨＴと比較して触媒に対する劣化判定処理を行った後、上記ステップS24〜S305を経て、ルーチンを抜ける。
【０１６１】
尚、ここで、ＲＯ2センサ補正出力電圧変化量積算値ＲＫＤＳＶＰに対するＦＯ2センサ補正出力電圧変化量積算値ＦＫＤＳＶＰの比ＦＫＤＳＶＰ／ＲＫＤＳＶＰを算出し、この積算値比ＦＫＤＳＶＰ／ＲＫＤＳＶＰを触媒の劣化と見なし得る比率値と比較することで触媒の劣化を診断するようにしてもよい。この場合には、上記比率値は、１／ＮＧＣＨＴにより設定され、ＦＫＤＳＶＰ／ＲＫＤＳＶＰ≦１／ＮＧＣＨＴのとき、触媒の劣化と診断する。
【０１６２】
以上のように、本実施の形態では、各Ｏ2センサ３０，３１の電圧劣化の進行に伴い減少する出力電圧ＦＶＯ2，ＲＶＯ2の振幅を表す現在の各Ｏ2センサ３０，３１のＰ−Ｐ値ＦＶＰＰ，ＲＶＰＰを各々積算し、このＰ−Ｐ積算値ＦＳＶＰＰ，ＲＳＶＰＰを診断時間カウント値ＭＴＭＣＡＴにより除算して平均Ｐ−Ｐ値ＦＡＶＰＰ，ＲＡＶＰＰを算出し、この平均Ｐ−Ｐ値ＦＡＶＰＰ，ＲＡＶＰＰと、各Ｏ2センサの劣化なしに対応する基準Ｐ−Ｐ値ＢＶＰＰとの比によって求めたＦＯ2センサ出力電圧補正係数ＦＫＶＰ，ＲＯ2センサ出力電圧補正係数ＲＫＶＰにより、各々Ｏ2センサ出力電圧変化量積算値ＦＤＳＶＰ，ＲＤＳＶＰを補正することで、Ｏ2センサ３０，３１の電圧劣化に伴う各積算値ＦＤＳＶＰ，ＲＤＳＶＰの減少分を補償する。
【０１６３】
すなわち、本実施の形態においては、各Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰを直接用いず、これを平均化した平均Ｐ−Ｐ値ＦＡＶＰＰ，ＲＡＶＰＰに基づいて各Ｏ2センサ出力電圧補正係数ＦＫＶＰ，ＲＫＶＰを算出するので、Ｐ−Ｐ値ＦＶＰＰ，ＲＶＰＰの一時的な変動の影響を受けることなく上記平均Ｐ−Ｐ値ＦＡＶＰＰ，ＲＡＶＰＰによって的確に各Ｏ2センサ３０，３１の電圧劣化の度合いが捕捉され、又、この平均Ｐ−Ｐ値ＦＡＶＰＰ，ＲＡＶＰＰによる補正係数ＦＫＶＰ，ＲＫＶＰによって各々積算値ＦＤＳＶＰ，ＲＤＳＶＰを補正するため、ＦＯ2センサ３０とＲＯ2センサ３１との少なくとも一方が電圧劣化を生じ、この電圧劣化に起因して積算値ＦＤＳＶＰ，ＲＤＳＶＰが減少しても、これを的確に補償して、触媒劣化の誤診断を確実に防止することができ、上記実施の第２形態に対し、触媒に対する劣化診断精度を更に向上させることが可能となる。
【０１６４】
次に、図１７〜図１９に基づいて、本発明の実施の第４形態を説明する。
【０１６５】
本実施の形態においては、ＦＯ2センサ３０の劣化に伴い該ＦＯ2センサ３０の応答特性が変化した場合には、触媒劣化診断を中止することで、誤診断を防止する。
【０１６６】
すなわち、図１７（ａ）に示すように、Ｏ2センサ３０，３１が劣化していないときには、空燃比のリッチ，リーンの切り換わりに伴い各Ｏ2センサ３０，３１が直ちに応答するため、各Ｏ2センサ３０，３１の出力電圧ＦＶＯ2，ＲＶＯ2のリッチからリーン、或いはリーンからリッチへの切換わり周期、すなわち応答周期が短いが、Ｏ2センサ３０，３１が劣化するに従い、各Ｏ2センサ３０，３１の応答性が悪化する、いわゆる応答劣化を生じる。
【０１６７】
ここで、ダブルＯ2センサシステムにおける空燃比制御は、基本的にＦＯ2センサ３０の出力電圧ＦＶＯ2とスライスレベルとの比較結果に応じて比例積分制御（ＰＩ制御）により空燃比フィードバック補正係数を設定し、この空燃比フィードバック補正係数によって燃料噴射量を補正することで、空燃比を補正している。そして、ＲＯ2センサ３１の出力電圧ＲＶＯ2とスライスレベルとの比較結果に応じて上記比例積分制御の制御定数に対する修正を行うようにしている。
【０１６８】
従って、ＦＯ2センサ３０に応答劣化が生じると、空燃比フィードバック制御における制御周期が相対的に長くなり、図１７（ｂ）に示すように、ＦＯ2センサ３０の出力電圧ＦＶＯ2のリッチからリーン、或いはリーンからリッチへの切換わり周期が相対的に長くなる。
【０１６９】
その結果、上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰが減少すると共に、空燃比フィードバック制御周期が長くなることによる空燃比制御性の悪化によって、空燃比のリッチ，リーンの変化幅が大きくなり、触媒のストレージ効果（触媒のウインド幅）を超えて排気ガスが吹き抜けてしまい、ＲＯ2センサ３１の出力電圧ＲＶＯ2の振幅が大きくなり、上記ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰが増加してしまう。
【０１７０】
このため、ＦＯ2センサ３０に応答劣化が生じると、触媒の劣化度合いが同一状態の下でも、図１８に示すように、触媒劣化診断値としてのＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）が増加してしまい、この積算値比ＣＨＡＮＴと触媒劣化判定値ＮＧＣＨＴとの比較によって、触媒が劣化していないにも係わらず、同図に斜線で示す誤診断領域において、ＣＨＡＮＴ≧ＮＧＣＨＴとなって、触媒が劣化していると誤診断する虞がある。
【０１７１】
尚、図１８における横軸は、ＦＯ2センサ３０の応答劣化の度合いを示すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭ（単位；msec）であり、本実施の形態においては、直接採用しない。このＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭは、詳しくは後述の実施の第５形態において記述するが、所定の条件成立時に（空燃比フィードバック制御中、且つ、空燃比がリッチ或いはリーンに張り付いていない等）、ＦＯ2センサ３０の出力電圧ＦＶＯ2のリーン→リッチ応答時間、及びリーン→リッチ応答時間に基づいて算出される時間値であり、この時間値が長いほど、ＦＯ2センサ３０の応答劣化が進行したことを表す。
【０１７２】
本実施の形態においては、ＦＯ2センサ３０に応答劣化が生じると上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰが減少することに着目し、診断条件の成立時、触媒劣化診断を行うに際し、上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰを、ＦＯ2センサ３０が応答劣化を生じていると見なし得る応答劣化判定値ＦＳＶＣＡＮと比較することで、ＦＯ2センサ３０の応答劣化を判断する。
【０１７３】
そして、上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰが応答劣化判定値ＦＳＶＣＡＮ以下の時、ＦＯ2センサ３０に応答劣化が生じている（ＦＯ2センサ応答劣化あり）と判断して、触媒劣化診断を中止し、ＦＯ2センサ３０の応答劣化に起因する触媒劣化診断の誤診断を防止する。
【０１７５】
具体的には、本実施の形態では、上記実施の第１形態の図４に示す触媒劣化診断ルーチンに代えて、図１９に示す触媒劣化診断ルーチンを採用する。尚、触媒劣化診断ルーチンの後半については、上記実施の第１形態の図５のルーチンをそのまま採用する。また、上記実施の第１形態の触媒劣化診断ルーチンと同一のステップについては、同一の符号を付して、その詳細説明は省略する。
【０１７６】
図１９に示す触媒劣化診断ルーチンは、上記実施の第１形態と同様に、所定時間（例えば、５０msec）毎に実行され、先ず、ステップS1で、触媒劣化診断終了フラグＦCATENDを参照し、触媒劣化診断が終了しているか否かを判断し、ＦCATEND＝１で既に本暖機サイクルにおいて触媒の劣化診断結果が得られているときには、そのままルーチンを抜ける。
【０１７７】
また、上記ステップS1においてＦCATEND＝０で、本暖機サイクルにおいて未だ触媒の劣化診断が終了していないときにはステップS2へ進み、ステップS2，S3で、運転状態に基づいて診断条件が成立するか否かを判断し、診断許可条件の非成立時、或いは診断中止条件の成立時には、実施の第１形態と同様に、図５のステップS24へジャンプして、ステップS24〜S27で、それぞれ診断時間カウント値ＭＴＭＣＡＴ、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰ、及び、初回判別フラグＦINIをクリアして、ルーチンを抜ける。
【０１７８】
一方、ステップS2で診断許可条件が成立し、且つステップS3で診断中止条件の非成立時には、ステップS4へ進み、診断時間カウント値ＭＴＭＣＡＴをカウントアップし、続くステップS5で、初回判別フラグＦINIを参照する。
【０１７９】
そして、ＦINI＝０の触媒劣化診断の初回ルーチン実行時には、ステップS6へ進み、初回判別フラグＦINIをセットし、次回に備えステップS7，S8で、それぞれ現在のＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2n，ＲＶＯ2nを読込み、この読込み値ＦＶＯ2n，ＲＶＯ2nを、前回すなわち本ルーチンの実行周期により定まる所定時間前（５０msec前）のＦＯ2センサ出力電圧ＦＶＯ2n-1，ＲＯ2センサ出力電圧ＲＶＯ2n-1としてルーチンを抜ける。
【０１８０】
また、上記ステップS5においてＦINI＝１で、診断条件が成立中での２回目以降のルーチン実行時には、ステップS5からステップS9へ進み、ステップS9〜S12の処理により各積算値ＦＤＳＶＰ，ＲＤＳＶＰを算出する。
【０１８１】
その後、ステップS13へ進み、上記診断時間カウント値ＭＴＭＣＡＴを設定値ＴＭＣＡＴと比較する。そして、ＭＴＭＣＡＴ＜ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達していないときには、上記ステップS7、S8を経て、ルーチンを抜ける。
【０１８２】
一方、上記ステップS13においてＭＴＭＣＡＴ≧ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達したとき、すなわち、エンジン運転状態が予め設定された診断領域に設定時間以上係属したとき、ステップS401へ進み、上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰを、ＦＯ2センサ３０に応答劣化が生じていると見なし得る積算値として予め設定された応答劣化判定値ＦＳＶＣＡＮと比較する。
【０１８３】
上記応答劣化判定値ＦＳＶＣＡＮは、予めシミュレーション或いは実験等により、ＦＯ2センサ３０が応答劣化を生じているときの上記設定値ＴＭＴＣＡＴにより定まる設定時間におけるＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰを求め、この積算値を応答劣化判定値ＦＳＶＣＡＮとして設定し、ＲＯＭ４２の所定アドレスに固定データとしてメモリされているものである。
【０１８４】
従って、上記積算値ＦＤＳＶＰを、応答劣化判定値ＦＳＶＣＡＮと比較することで、上記積算値ＦＤＳＶＰが応答劣化判定値ＦＳＶＣＡＮ以下の時、ＦＯ2センサ３０に応答劣化が生じていると判断することができる。
【０１８５】
尚、上述の図１８に示すように、上記応答劣化判定値ＦＳＶＣＡＮは、触媒の劣化なしの状態において、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）が触媒劣化判定値ＮＧＣＨＴとの比較によって、ＣＨＡＮＴ≧ＮＧＣＨＴとなる斜線で示す誤診断領域に掛かる前に、触媒の劣化診断を中止する値に設定される。
【０１８６】
そして、ＦＤＳＶＰ≦ＦＳＶＣＡＮで、ＦＯ2センサ３０が応答劣化しているときには、触媒劣化診断を中止して、上記ステップS24（図５参照）へジャンプし、上記ステップS24〜S27を経て、それぞれ診断時間カウント値ＭＴＭＣＡＴ、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰ、及び、初回判別フラグＦINIをクリアして、ルーチンを抜ける。
【０１８７】
一方、上記ステップS401で、ＦＤＳＶＰ＞ＦＳＶＣＡＮのときには、ＦＯ2センサ３０に応答劣化が生じていないと判断し、上記実施の第１形態と同様に、図５のステップS14へ進み、ステップS14〜S23で、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴを算出し（ＣＨＡＮＴ←ＲＤＳＶＰ／ＦＤＳＶＰ）、この積算値比ＣＨＡＮＴを、触媒が劣化したと見なし得る比率値として予め設定された触媒劣化判定値ＮＧＣＨＴと比較して触媒に対する劣化判定処理を行った後、上記ステップS24〜S27を経て、ルーチンを抜ける。
【０１８８】
尚、ここで、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰに対するＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰの比ＦＤＳＶＰ／ＲＤＳＶＰを算出し、この積算値比ＦＤＳＶＰ／ＲＤＳＶＰを触媒の劣化と見なし得る比率値と比較することで触媒の劣化を診断するようにしてもよい。この場合には、上記比率値は、１／ＮＧＣＨＴにより設定され、ＦＤＳＶＰ／ＲＤＳＶＰ≦１／ＮＧＣＨＴのとき、触媒の劣化と診断する。
【０１８９】
以上のように、本実施の形態では、診断条件の成立時、所定時間毎にＦＯ2センサ３０の出力電圧ＦＶＯ2の変化量の絶対値を積算したＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰを、予め設定されたＦＯ2センサが応答劣化を生じたと見なし得る応答劣化判定値ＦＳＶＣＡＮと比較して、ＦＯ2センサ３０の応答劣化を判断するので、容易にＦＯ2センサ３０の応答劣化を判断することができ、また、このとき、強制的に空燃比を変動させることなくＦＯ2センサ３０の応答劣化を判断することができ、この場合においても、空燃比の強制変動による排気エミッションの悪化を生じることなく実現できる。
【０１９０】
そして、上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰが応答劣化判定値ＦＳＶＣＡＮ以下の時、ＦＯ2センサ３０に応答劣化が生じていると判断し、触媒に対する劣化診断を中止するので、ＦＯ2センサ３０の応答劣化に起因して、上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰが減少すると共にＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰが増加し、触媒劣化診断値としてのＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）が増加することにより、触媒が劣化していないにも係わらず触媒が劣化していると誤診断することが、未然に防止される。
【０１９１】
すなわち、本実施の形態においては、ＦＯ2センサ３０の応答劣化による触媒劣化診断の誤診断を未然に防止することが可能となり、触媒に対する劣化診断精度をより向上させることが可能となる。
【０１９２】
尚、上記実施の第２形態、或いは第３形態に、本実施の形態におけるＦＯ2センサ３０の応答劣化時の触媒劣化診断中止処理を組み込むことで、各Ｏ2センサ３０，３１の電圧劣化を補正すると共に、ＦＯ2センサ３０の応答劣化に伴う誤診断をも確実に防止することが可能となり、触媒に対する劣化診断精度をさらに向上することが可能となる。
【０１９３】
ここで、上記実施の第２形態に、本実施の形態における触媒劣化診断中止処理を組み込む場合には、本形態のステップS401による処理を、図１１のステップS13と図５のステップS14との間に挿入し、ＦＤＳＶＰ≦ＦＳＶＣＡＮのとき、ステップS24へジャンプし、ＦＤＳＶＰ＞ＦＳＶＣＡＮのとき、ステップS14へ進むようにする。
【０１９４】
また、上記実施の第３形態に、本実施の形態における触媒劣化診断中止処理を組み込む場合には、本形態のステップS401による処理を、図１３のステップS13と、ステップS302との間に挿入し、ＦＤＳＶＰ≦ＦＳＶＣＡＮのとき、図１４のステップS24へジャンプし、ＦＤＳＶＰ＞ＦＳＶＣＡＮのとき、ステップS302へ進むようにする。
【０１９５】
次に、本発明の実施の第５形態を図２０〜図２６に基づいて説明する。
【０１９６】
上記実施の第４形態においては、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰを、予め設定されたＦＯ2センサが応答劣化を生じたと見なし得る応答劣化判定値ＦＳＶＣＡＮと比較し、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰが応答劣化判定値ＦＳＶＣＡＮ以下の時、ＦＯ2センサ３０に応答劣化が生じていると判断して、触媒に対する劣化診断を中止するのに対し、本実施の形態では、ＦＯ2センサ３０の応答劣化を補償し、触媒劣化診断を中止することなく実現可能としたものである。
【０１９７】
すなわち、本実施の形態においては、ＦＯ2センサ３０の出力電圧ＦＶＯ2がリッチとリーンとを交互に反転する応答時間に基づいて算出されるＦＯ2センサ３０の応答劣化の進行度合いを表すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを採用し、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて算出した補正係数ＫＯ2Ｒによって補正することで、ＦＯ2センサ３０の応答劣化に起因する上記積算値比ＣＨＡＮＴの増加を補償する。そして、この補正後の積算値比ＫＣＨＡＮＴを触媒劣化判定値ＮＧＣＨＴと比較して、触媒の劣化を診断する。
【０１９８】
すなわち、本実施の形態においては、前記ＥＣＵ４０は、請求項１記載の発明に係るフロント空燃比センサ応答劣化診断値算出手段、診断条件判別手段、空燃比センサ出力電圧変化量積算手段、積算値比算出手段、補正係数算出手段、積算値比補正手段、診断手段としての機能を実現する。
【０１９９】
具体的には、本実施の形態では、図２０〜図２３に示すＦＯ2センサ応答劣化診断ルーチンによって上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを算出し、また、上記実施の第１形態の図５に示す触媒劣化診断ルーチンに代えて、図２４の触媒劣化診断ルーチンを採用する。尚、触媒劣化診断ルーチンの前半については、上記実施の第１形態の図４のルーチンをそのまま採用する。また、上記各実施の形態と同一のステップについては、同一の符号を付して、その詳細説明は省略する。
【０２００】
先ず、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを得るためのＦＯ2センサ応答劣化診断ルーチンについて説明する。
【０２０１】
図２０〜図２３に示すＦＯ2センサ応答劣化診断ルーチンは、システムイニシャライズ後、所定時間（例えば、１０msec）毎に実行され、先ずステップS101で、ＦＯ2センサ応答劣化診断終了フラグＦ02ENDを参照し、ＦＯ2センサ３０に対する応答劣化診断が終了しているか否かを判断する。
【０２０２】
すなわち、本実施の形態においては、エンジンを始動してエンジン暖機完了状態となり、暖機完了状態でエンジンを運転して、イグニッションスイッチ５２のＯＦＦによりエンジンを停止するまでの間、すなわち１暖機サイクルにおいてＦＯ2センサ３０に対する応答劣化診断結果が１回得られた時点で、上記ＦＯ2センサ応答劣化診断終了フラグＦO2ENDがセットされ、この暖機サイクルでのＦＯ2センサ応答劣化診断は終了する。
【０２０３】
従って、上記ステップS101で、ＦO2END＝１の時には、本暖機サイクルにおいて既にＦＯ2センサ３０に対する応答劣化診断結果が得られており、このときは、そのままルーチンを抜ける。
【０２０４】
一方、ＦCATEND＝０で、本暖機サイクルにおいて未だＦＯ2センサ３０に対する応答劣化診断が終了していないときにはステップS102へ進み、所定の条件によりＦＯ2センサ応答劣化診断条件が成立するか否かを判断する。
【０２０５】
この診断条件として、具体的には、ＦＯ2センサ３０が活性状態で、空燃比フィードバック制御がクローズループ制御中であり、且つ空燃比フィードバック補正係数ＬＡＭＢＤＡがクランプ中でなく、且つ、空燃比フィードバック補正係数ＬＡＭＢＤＡの平均値が許容範囲にあり（例えば、０．９３≦ＬＡＭＢＤＡ≦１．１２５）空燃比がリッチ或いはリーンに張り付いておらず、更に、失火が検出されていないとき、すなわち、空燃比フィードバック制御によって空燃比がストイキオ（理論空燃比）を中心としてリッチとリーンとを交互に繰り返し、確実にＦＯ2センサ出力電圧ＦＶＯ2が振幅していると判断されるとき、診断条件成立と判断する。
【０２０６】
すなわち、ＦＯ2センサ３０の非活性時には、ＦＯ2センサ３０の出力電圧ＦＶＯ2が得られず、ＦＯ2センサ３０の応答劣化を診断することができない。また、空燃比オープンループ制御時には、空燃比がストイキオ（理論空燃比）外のリッチ或いはリーンに制御されている場合があり、また、空燃比フィードバック補正係数ＬＡＭＢＤＡがクランプ中の時には、ＦＯ2センサ３０の出力電圧ＦＶＯ2が振幅せず、従って、このときにもＦＯ2センサ出力電圧ＦＶＯ2に基づいてＦＯ2センサ３０の応答劣化を診断することができない。更に、空燃比フィードバック補正係数ＬＡＭＢＤＡの平均値が許容範囲外のときには、空燃比がリッチ或いはリーンに張り付いており、同様に、ＦＯ2センサ出力電圧ＦＶＯ2に基づいてＦＯ2センサ３０の応答劣化を診断することができない。また、失火時には、オーバリーンによってＦＯ2センサ３０の出力電圧ＦＶＯ2が異常値を示し、このときにも、ＦＯ2センサ３０の応答劣化診断を行うと誤診断を生じる。
【０２０７】
従って、上記ステップS102において診断条件の非成立時には、ステップS103へ進み、ＦＯ2センサ応答劣化診断に係る各計数値が初期設定（クリア）されていることを示す初期設定フラグＦO2INIを参照し、Ｆ02INI＝１で各計数値がクリアされているときには、そのままルーチンを抜ける。
【０２０８】
また、ＦO2INI＝０でＦＯ2センサ応答劣化診断に係る各計数値がクリアされていないときには、ステップS103からステップS104へ進み、診断条件非成立の継続時間をカウントする診断条件非成立継続時間カウント値ＴＭＯＣＡＮをカウントアップし（ＴＭＯＣＡＮ←ＴＭＯＣＡＮ＋１）、ステップS105で、診断条件非成立継続時間カウントＴＭＯＣＡＮを設定値ＴＯＣＡＮ（例えば、１０sec相当値）と比較する。
【０２０９】
そして、ＴＭＯＣＡＮ＜ＴＯＣＡＮで診断条件非成立の継続時間が上記設定値ＴＯＣＡＮによる設定時間に達していないときには、そのままルーチンを抜け、ＴＭＯＣＡＮ≧ＴＯＣＡＮで、診断条件非成立の継続時間が設定時間に達したとき、ステップS106へ進み、ステップS106〜S112で、リーン→リッチＦＯ2センサ応答遅れ時間最大値Ｏ2ＬＲＭＸ，リーン→リッチ応答時間積算値ＳＧＬＲＴＭ，ＦＯ2センサ出力電圧ＦＶＯ2によるリーン→リッチの切換わり回数をカウントするリーン→リッチ回数カウント値ＣＴＬＲ，リッチ→リーンＦＯ2センサ応答遅れ時間最大値Ｏ2ＲＬＭＸ，リッチ→リーン応答時間積算値ＳＧＲＬＴＭ，リッチ→リーンの切換わり回数をカウントするリッチ→リーン回数カウント値ＣＴＲＬ，ＦＯ2センサ応答劣化診断の診断時間を計時する診断時間計測用カウント値ＴＭＯ2ＲＳをそれぞれクリアし、これら各計数値のクリアによりステップS113で、上記初期設定フラグＦO2INIをセットして、ルーチンを抜ける。
【０２１０】
すなわち、診断条件非成立の継続時間が設定時間（本形態においては、１０sec）に達するまでは、診断条件の成立時にそれぞれ計数された値を保持することで、診断条件の一時的な非成立であっても各計数値を有効として、ＦＯ2センサ応答劣化診断に要する時間を短縮し、また、診断条件非成立の持続時間が設定時間に達したとき、各計数値を無効とすることで、各計数値の信頼性を向上する。
【０２１１】
一方、上記ステップS102で診断条件の成立時には、ステップS114へ進み、ステップS114〜S116で、ＦＯ2センサ応答劣化診断の終了条件を判断する。
【０２１２】
すなわち、ステップS114で、診断条件成立の継続時間すなわちＦＯ2センサ３０に対する応答劣化診断時間を計時する診断時間計測用カウント値ＴＭＯ2ＲＳを設定値ＴＯ2ＲＥＳ（例えば、２０sec相当値）と比較して、ＴＭＯ2ＲＳ≧ＴＯ2ＲＥＳで診断時間が上記設定値ＴＯ2ＲＥＳによる設定時間に達したとき、或いは、ステップS115で、ＦＯ2センサ出力電圧ＦＶＯ2によるリーン→リッチの切換わり回数をカウントするリーン→リッチ回数カウント値ＣＴＬＲを設定値ＣＮＴＬＲ（例えば、１５回）と比較して、ＣＴＬＲ≧ＣＮＴＬＲでＦＯ2センサ出力電圧ＦＶＯ2によるリーン→リッチの切換わり回数が上記設定値ＣＮＴＬＲにより定まる設定回数に達したとき、或いは、ステップS116で、ＦＯ2センサ出力電圧ＦＶＯ2によるリッチ→リーンの切換わり回数をカウントするリッチ→リーン回数カウント値ＣＴＲＬを設定値ＣＮＴＲＬ（例えば、１５回）と比較して、ＣＴＲＬ≧ＣＮＴＲＬでＦＯ2センサ出力電圧ＦＶＯ2によるリッチ→リーンの切換わり回数が上記設定値ＣＮＴＲＬにより定まる設定回数に達したとき、診断条件成立と判断して、ステップS159（図２３参照）へ進み、ステップS159以下の処理によってＦＯ2センサ３０に対する応答劣化診断結果を得ると共に、ＦＯ2センサ３０の応答劣化の度合いを表すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを算出する。
【０２１３】
一方、上記ステップS114〜S116において、ＴＭＯ2ＲＳ＜ＴＯ2ＲＥＳで診断時間が設定時間（本形態では、２０sec）に達しておらず、且つ、ＣＴＬＲ＜ＣＮＴＬＲでＦＯ2センサ出力電圧ＦＶＯ2によるリッチ→リーンの切換わり回数が設定回数（１５回）に達しておらず、且つ、ＣＴＲＬ＜ＣＮＴＲＬでリッチ→リーンの切換わり回数が設定回数（１５回）に達していないとき、ＦＯ2センサ応答劣化診断の終了条件の非成立と判断して、ステップS117へ進む。
【０２１４】
そして、ステップS117，S118で、それぞれ上記初期設定フラグＦO2INI，診断条件非成立継続時間カウントＴＭＯＣＡＮをクリアし、上述の診断条件非成立への移行へ備える。
【０２１５】
次いで、ステップS119〜S121で、リーン→リッチＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＬＲＴＭ，リッチ→リーンＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＲＬＴＭ，上記診断時間計測用カウント値ＴＭＯ2ＲＳをそれぞれカウントアップする。
【０２１６】
上記リーン→リッチＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＬＲＴＭは、図２５に示すように、ＦＯ2センサ出力電圧ＦＶＯ2が下降してスライスレベルＳＬLを横切り、リーン空燃比を検出し、その後リッチ空燃比を検出して、ＦＯ2センサ出力電圧ＦＶＯ2が再び下降してスライスレベルＳＬLを横切るまでの時間を計時するためのものであり、ＦＯ2センサ出力電圧ＦＶＯ2のリーン→リッチ１周期における応答遅れ時間を表す。また、上記リッチ→リーンＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＲＬＴＭは、同図に示すように、ＦＯ2センサ出力電圧ＦＶＯ2が上昇してスライスレベルＳＬHを横切り、リッチ空燃比を検出し、その後リーン空燃比を検出して、ＦＯ2センサ出力電圧ＦＶＯ2が再び上昇してスライスレベルＳＬHを横切るまでの時間を計時するためのものであり、ＦＯ2センサ出力電圧ＦＶＯ2のリッチ→リーン１周期の応答遅れ時間を表す。
【０２１７】
その後、図２１のステップS122へ進み、空燃比検出状態判別フラグＦRを参照する。この空燃比検出状態判別フラグＦRは、前回の空燃比検出がリッチ空燃比検出かリーン空燃比検出かを判断するためのものであり、今回の空燃比検出に反映させる。
【０２１８】
すなわち、ＦR＝１で、前回ルーチン実行時にリッチ空燃比が検出されているときには、ステップS123へ進み、現在のＦＯ2センサ出力電圧ＦＶＯ2をリーン判定用スライスレベルＳＬLと比較することで、リーン空燃比検出に反転したか否かを判断する。
【０２１９】
ここで、上記リーン判定用スライスレベルＳＬLは、ＦＯ2センサ出力電圧ＦＶＯ2による最新のＰ−Ｐ値ＦＶＰＰ及び極小値ＦＶＰＬにより次式によって設定される。
【０２２０】
ＳＬL←ＦＶＰＰ×ＫL＋ＦＶＰＬ        ＫL；係数
尚、図２５に示す後述のリッチ判定用スライスレベルＳＬHは、ＦＯ2センサ出力電圧ＦＶＯ2がリーン空燃比検出からリッチ空燃比検出に移行したことを判断するためのものである。また、リッチ側ヒステリシス用スライスレベルＯ2ＤＧＨＳＨは、ＦＯ2センサ出力電圧が該スライスレベルＯ2ＤＧＨＳＨを交差したとき、後述のリッチ側ヒステリシス用スライスレベル交差判別フラグＦRLHISをセットするためのものである。そして、この交差判別フラグＦRLHISと、リーン空燃比検出からリッチ空燃比検出に移行したときセットされる後述のリッチ側診断用スライスレベル交差判別フラグＦRLBFとが共にセット状態で、ＦＯ2センサ出力電圧ＦＶＯ2がリッチ側診断用スライスレベルＯ2ＤＧＳＬＨに対し、ＦＶＯ2≧Ｏ2ＤＧＳＬＨの状態から該リッチ側診断用スライスレベルＯ2ＤＧＳＬＨと交差してＦＶＯ2＜Ｏ2ＤＧＳＬＨに変化した時点（図２５の時間ｔ１，ｔ７）で、上記リッチ→リーンＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＲＬＴＭにより計測されたリッチ→リーン応答時間をリッチ→リーン応答時間積算値ＳＧＲＬＴＭに積算する。
【０２２１】
また、図２５に示す後述のリーン側ヒステリシス用スライスレベルＯ2ＤＧＨＳＬは、ＦＯ2センサ出力電圧が該スライスレベルＯ2ＤＧＨＳＬを交差したとき、後述のリーン側ヒステリシス用スライスレベル交差判別フラグＦLRHISをセットするためのものである。そして、この交差判別フラグＦLRHISと、リッチ空燃比検出からリーン空燃比検出に移行したときセットされる後述のリーン側診断用スライスレベル交差判別フラグＦLRBFとが共にセット状態で、ＦＯ2センサ出力電圧ＦＶＯ2がリーン側診断用スライスレベルＯ2ＤＧＳＬＬに対し、ＦＶＯ2＜Ｏ2ＤＧＳＬＬの状態から該リーン側診断用スライスレベルＯ2ＤＧＳＬＬと交差してＦＶＯ2≧Ｏ2ＤＧＳＬＬに変化した時点（図２５の時間ｔ４）で、上記リーン→リッチＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＬＲＴＭにより計測されたリーン→リッチ応答時間をリーン→リッチ応答時間積算値ＳＧＬＲＴＭに積算する。
【０２２２】
従って、上記各スライスレベルＯ2ＤＧＨＳＨ，Ｏ2ＤＧＳＬＨ，ＳＬH，Ｏ2ＤＧＳＬＬ，Ｏ2ＤＧＨＳＬは、それぞれ次式によって設定され、
Ｏ2ＤＧＨＳＨ←ＦＶＰＰ×ＫSH＋ＦＶＰＬ        ＫSH；係数
Ｏ2ＤＧＳＬＨ←ＦＶＰＰ×ＫLH＋ＦＶＰＬ        ＫLH；係数
ＳＬH←ＦＶＰＰ×ＫH＋ＦＶＰＬ        ＫH；係数
Ｏ2ＤＧＳＬＬ←ＦＶＰＰ×ＫLL＋ＦＶＰＬ        ＫLL；係数
Ｏ2ＤＧＨＳＬ←ＦＶＰＰ×ＫSL＋ＦＶＰＬ        ＫSL；係数
上記各係数が、ＫSH＞ＫLH＞ＫH＞ＫL＞ＫLL＞ＫSLに設定されることで、図２５に示すように、各スライスレベルの大小関係が、Ｏ2ＤＧＨＳＨ＞Ｏ2ＤＧＳＬＨ＞ＳＬH＞ＳＬL＞Ｏ2ＤＧＳＬＬ＞Ｏ2ＤＧＨＳＬに設定される。
【０２２３】
そして、上記ステップS123において、ＦＶＯ2＜ＳＬLのとき（図２５の時間ｔ２，ｔ８）、ＦＯ2センサ出力電圧ＦＶＯ2が下降して上記リーン判定用スライスレベルＳＬLを横切り、リッチ空燃比検出からリーン空燃比検出に移行したと判断して、ステップS124へ進み、上記リーン→リッチＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＬＲＴＭをクリアし、ＦＯ2センサ出力電圧ＦＶＯ2のリーン→リッチ１周期における応答遅れ時間の計測に備える。
【０２２４】
続くステップS125では、ＦＯ2センサ出力電圧ＦＶＯ2が上記リーン判定用スライスレベルＳＬLを交差した後、リーン側診断用スライスレベルＯ2ＤＧＳＬＬに対しＦＶＯ2＜Ｏ2ＤＧＳＬＬからＦＶＯ2≧Ｏ2ＤＧＳＬＬに変化して、該リーン側診断用スライスレベルＯ2ＤＧＳＬＬと交差したかを判断する（図２５の時間ｔ４における状態を判断する）ためのリーン側診断用スライスレベル交差判別フラグＦLRBFをセットする。そして更に、ステップS126で、リッチ側ヒステリシス用スライスレベル交差判別フラグＦRLHISをクリアして、次回のリッチ→リーン応答時間積算値ＳＧＲＬＴＭに対する積算時点の検出に備え、ステップS127で、リーン空燃比検出への移行により空燃比検出状態判別フラグＦRをクリアして、ルーチンを抜ける。
【０２２５】
そして、上記空燃比検出状態判別フラグＦRがクリア（ＦR＝０）されたことで、次回のルーチン実行時に診断条件が成立していれば、上記ステップS122から図２２のステップS128へ進む。
【０２２６】
ステップS128では、現在のＦＯ2センサ出力電圧ＦＶＯ2をリッチ判定用スライスレベルＳＬHと比較することで、リーン空燃比検出からリッチ空燃比検出に反転したか否かを判断する。
【０２２７】
そして、ＦＶＯ2＜ＳＬHでリーン空燃比検出状態が継続しているときには、ステップS129へ進み、上記リーン側診断用スライスレベル交差判別フラグＦLRBFを参照する。そして、このときには、上述のようにリーン空燃比検出への移行に伴って上記リーン側診断用スライスレベル交差判別フラグＦLRBFがセットされているため（ＦLRBF＝１）、ステップS130へ進み、リーン側ヒステリシス用スライスレベル交差判別フラグＦLRHISを参照し、ＦLRHIS＝０でリーン空燃比検出に移行後、ＦＯ2センサ出力電圧ＦＶＯ2が下降過程において、未だ上記リーン側ヒステリシス用スライスレベルＯ2ＤＧＨＳＬを横切っていないときには、ステップS131へ進み、該ＦＯ2センサ出力電圧ＦＶＯ2をリーン側ヒステリシス用スライスレベルＯ2ＤＧＨＳＬと比較する。
【０２２８】
そして、ＦＶＯ2≧Ｏ2ＤＧＨＳＬのときには（図２５の時間ｔ２〜ｔ３，ｔ８〜ｔ９の間に相当する）、そのままルーチンを抜け、一方、ＦＶＯ2＜Ｏ2ＤＧＨＳＬでＦＯ2センサ出力電圧ＦＶＯ2がリーン側ヒステリシス用スライスレベルＯ2ＤＧＨＳＬを交差したとき（図２５の時間ｔ３，ｔ９）、ステップS132へ進み、上記リーン側ヒステリシス用スライスレベル交差判別フラグＦLRHISをセットして、ルーチンを抜ける。
【０２２９】
この交差判別フラグＦLRHISと上記リーン側診断用スライスレベル交差判別フラグＦLRBFとが共にセット状態となったことで、次回以降のルーチン実行時には、上記ステップS130からステップS133へ進み、ＦＯ2センサ出力電圧ＦＶＯ2をリーン側診断用スライスレベルＯ2ＤＧＳＬＬと比較し、ＦＶＯ2＜Ｏ2ＤＧＳＬＬのときには（図２５の時間ｔ３〜ｔ４の間に相当する）、そのままルーチンを抜ける。
【０２３０】
やがて、ＦＯ2センサ出力電圧ＦＶＯ2が下降から上昇に転じ、その上昇過程において、上記ステップS133でＦＶＯ2≧Ｏ2ＤＧＳＬＬになると、すなわち、上記各交差判別フラグＦLRBF，ＦLRHISが共にセット状態で、ＦＯ2センサ出力電圧ＦＶＯ2がリーン側診断用スライスレベルＯ2ＤＧＳＬＬに対し、ＦＶＯ2＜Ｏ2ＤＧＳＬＬの状態から該リーン側診断用スライスレベルＯ2ＤＧＳＬＬと交差してＦＶＯ2≧Ｏ2ＤＧＳＬＬに変化した時点（図２５の時間ｔ４）で、ステップS133からステップS134へ進み、ステップS134以下の処理により上記リーン→リッチＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＬＲＴＭにより計測されたリーン→リッチ応答時間をリーン→リッチ応答時間積算値ＳＧＬＲＴＭに積算する。
【０２３１】
すなわち、ステップS134では、上記リーン側診断用スライスレベル交差判別フラグＦLRBFをクリアして次回以降の判定に備え、続くステップS135で、吸入空気量センサ２５による吸入空気量ＱＡをパラメータとしてテーブル参照により空燃比フィードバック制御によるリーン→リッチ基本遅れ時間ＴＬＲ（単位；msec）を設定する。
【０２３２】
このリーン→リッチ基本遅れ時間ＴＬＲは、空燃比フィードバック制御によって生じるリーン→リッチの遅れ時間、すなわち、空燃比フィードバック補正においてリーン空燃比に伴い燃料噴射量を増量補正し、この増量補正された燃料噴射量の燃料が噴射されて燃焼後、この燃焼後の排気ガスがＦＯ2センサ３０に至るまでの遅れ時間であり、この遅れ時間を予め実験或いはシミュレーション等により吸入空気量ＱＡによる運転領域毎に求めて、吸入空気量ＱＡをパラメータとするテーブルとして設定しＲＯＭ４２の一連のアドレスにメモリされているものである。ステップS135中に示すように、上記リーン→リッチ基本遅れ時間ＴＬＲは、吸入空気量ＱＡが増加するに従い漸次的に減少する。すなわち、上記リーン→リッチＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＬＲＴＭからリーン→リッチ基本遅れ時間ＴＬＲを減算することで、空燃比フィードバック制御による遅れ分を排除し、ＦＯ2センサ３０による真のリーン→リッチ応答時間を得ることが可能となる。
【０２３３】
そして、ステップS136で、上記リーン→リッチＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＬＲＴＭからリーン→リッチ基本遅れ時間ＴＬＲを減算し、この減算値（Ｏ2ＬＲＴＭ−ＴＬＲ）を上記リーン→リッチＦＯ2センサ応答遅れ時間最大値Ｏ2ＬＲＭＸと比較する。
【０２３４】
そして、Ｏ2ＬＲＭＸ≧（Ｏ2ＬＲＴＭ−ＴＬＲ）のときには、そのままステップS138へ進み、Ｏ2ＬＲＭＸ＜（Ｏ2ＬＲＴＭ−ＴＬＲ）のときには、ステップS137で、上記減算値（Ｏ2ＬＲＴＭ−ＴＬＲ）によりリーン→リッチＦＯ2センサ応答遅れ時間最大値Ｏ2ＬＲＭＸを更新し（Ｏ2ＬＲＭＸ←Ｏ2ＬＲＴＭ−ＴＬＲ）、ステップS138へ進む。
【０２３５】
続くステップS138では、上記減算値（Ｏ2ＬＲＴＭ−ＴＬＲ）をゼロと比較し、（Ｏ2ＬＲＴＭ−ＴＬＲ）≧０のときには、そのままステップS140へ進み、（Ｏ2ＬＲＴＭ−ＴＬＲ）＜０のときには、ステップS139で、上記減算値（Ｏ2ＬＲＴＭ−ＴＬＲ）をゼロに設定して（（Ｏ2ＬＲＴＭ−ＴＬＲ）←０）、ステップS140へ進む。すなわち、上記リーン→リッチＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＬＲＴＭによって計測されたリーン→リッチ応答時間は、基本的に空燃比フィードバック制御によるリーン→リッチ基本遅れ時間ＴＬＲよりも短くなることは通常有り得ないが、本実施の形態では、図２５に示すように、上記リーン→リッチＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＬＲＴＭによりリーン→リッチ１周期の応答遅れ時間を計測する中途で、上記カウント値Ｏ2ＬＲＴＭをリーン→リッチ応答時間積算値ＳＧＬＲＴＭに積算するため、上記減算値（Ｏ2ＬＲＴＭ−ＴＬＲ）がマイナス値を示すときには、該減算値（Ｏ2ＬＲＴＭ−ＴＬＲ）をゼロに設定するのである。
【０２３６】
そして、ステップS140で、上記減算値（Ｏ2ＬＲＴＭ−ＴＬＲ）すなわち空燃比フィードバック補正による遅れ時間を排除したＦＯ2センサ３０のリーン→リッチ応答時間をリーン→リッチ応答時間積算値ＳＧＬＲＴＭに積算し（ＳＧＬＲＴＭ←ＳＧＬＲＴＭ＋（Ｏ2ＬＲＴＭ−ＴＬＲ））、続くステップS141で、ＦＯ2センサ出力電圧ＦＶＯ2によるリーン→リッチの切換わり回数をカウントするリーン→リッチ回数カウント値ＣＴＬＲをカウントアップして（ＣＴＬＲ←ＣＴＬＲ＋１）、ルーチンを抜ける。
【０２３７】
そして、上記ステップS134においてリーン側診断用スライスレベル交差判別フラグＦLRBFがクリアされたことで、次回以降のルーチン実行時には、ステップS129からそのままルーチンを抜ける（図２５の時間ｔ４〜ｔ５の間に相当する）。
【０２３８】
やがて診断条件の成立下において、ＦＯ2センサ出力電圧ＦＶＯ2の上昇過程において、ＦＯ2センサ出力電圧ＦＶＯ2が上記リッチ判定用スライスレベルＳＬHを交差した時点で、上記ステップS128でＦＶＯ2≧ＳＬHとなり（図２５の時間ｔ５）、リーン空燃比検出からリッチ空燃比検出に移行したと判断して、ステップS142へ進む。
【０２３９】
ステップS142では、上記リッチ→リーンＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＲＬＴＭをクリアし、ＦＯ2センサ出力電圧ＦＶＯ2のリッチ→リーン１周期における応答遅れ時間の計測に備える。
【０２４０】
続くステップS143では、ＦＯ2センサ出力電圧ＦＶＯ2が上記リッチ判定用スライスレベルＳＬHを交差した後、リッチ側診断用スライスレベルＯ2ＤＧＳＬＨに対しＦＶＯ2≧Ｏ2ＤＧＳＬＨからＦＶＯ2＜Ｏ2ＤＧＳＬＬに変化して、該リッチ側診断用スライスレベルＯ2ＤＧＳＬＨと交差したかを判断する（図２５の時間ｔ７における状態を判断する）ためのリッチ側診断用スライスレベル交差判別フラグＦRLBFをセットする。そして更に、ステップS144で、上記リーン側ヒステリシス用スライスレベル交差判別フラグＦLRHISをクリアして、次回のリーン→リッチ応答時間積算値ＳＧＬＲＴＭに対する積算時点の検出に備え、ステップS145で、リッチ空燃比検出への移行により空燃比検出状態判別フラグＦRをセットして、ルーチンを抜ける。
【０２４１】
そして、上記空燃比検出状態判別フラグＦRがセット（ＦR＝１）されたことで、次回のルーチン実行時に診断条件が成立していれば、上記ステップS122からステップS123へ進み（図２１参照）、現在のＦＯ2センサ出力電圧ＦＶＯ2をリーン判定用スライスレベルＳＬLと比較する。
【０２４２】
そして、ＦＶＯ2≧ＳＬLでリッチ空燃比検出状態が継続しているときには、上記ステップS123からステップS146へ進み、上記リッチ側診断用スライスレベル交差判別フラグＦRLBFを参照する。そして、このときには、上述のようにリッチ空燃比検出への移行に伴って上記リッチ側診断用スライスレベル交差判別フラグＦRLBFがセットされているため（ＦRLBF＝１；ステップS143参照）、ステップS147へ進み、リッチ側ヒステリシス用スライスレベル交差判別フラグＦRLHISを参照し、ＦRLHIS＝０でリッチ空燃比検出に移行後、ＦＯ2センサ出力電圧ＦＶＯ2が上昇過程において、未だ上記リッチ側ヒステリシス用スライスレベルＯ2ＤＧＨＳＨを横切っていないときには、ステップS148へ進み、該ＦＯ2センサ出力電圧ＦＶＯ2をリッチ側ヒステリシス用スライスレベルＯ2ＤＧＨＳＨと比較する。
【０２４３】
そして、ＦＶＯ2＜Ｏ2ＤＧＨＳＨのときには（図２５の時間ｔ５〜ｔ６の間に相当する）、そのままルーチンを抜ける。一方、ＦＶＯ2≧Ｏ2ＤＧＨＳＨでＦＯ2センサ出力電圧ＦＶＯ2がリッチ側ヒステリシス用スライスレベルＯ2ＤＧＨＳＨを交差したとき（図２５の時間ｔ６）、ステップS149へ進み、上記リッチ側ヒステリシス用スライスレベル交差判別フラグＦRLHISをセットして、ルーチンを抜ける。
【０２４４】
この交差判別フラグＦRLHISと上記リッチ側診断用スライスレベル交差判別フラグＦRLBFとが共にセット状態となったことで、次回以降のルーチン実行時には、上記ステップS147からステップS150へ進み、ＦＯ2センサ出力電圧ＦＶＯ2をリッチ側診断用スライスレベルＯ2ＤＧＳＬＨと比較し、ＦＶＯ2≧Ｏ2ＤＧＳＬＨのときには（図２５の時間ｔ６〜ｔ７の間に相当する）、そのままルーチンを抜ける。
【０２４５】
やがて、ＦＯ2センサ出力電圧ＦＶＯ2が上昇から下降に転じ、その下降過程において、上記ステップS150でＦＶＯ2＜Ｏ2ＤＧＳＬＨになると、すなわち、上記各交差判別フラグＦRLBF，ＦRLHISが共にセット状態で、ＦＯ2センサ出力電圧ＦＶＯ2がリッチ側診断用スライスレベルＯ2ＤＧＳＬＨに対し、ＦＶＯ2≧Ｏ2ＤＧＳＬＨの状態から該リッチ側診断用スライスレベルＯ2ＤＧＳＬＨと交差してＦＶＯ2＜Ｏ2ＤＧＳＬＨに変化した時点（図２５の時間ｔ７，或いは時間ｔ１）で、ステップS150からステップS151へ進み、ステップS151以下の処理により上記リッチ→リーンＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＲＬＴＭにより計測されたリッチ→リーン応答時間をリッチ→リーン応答時間積算値ＳＧＲＬＴＭに積算する。
【０２４６】
すなわち、ステップS151では、上記リッチ側診断用スライスレベル交差判別フラグＦRLBFをクリアして次回以降の判定に備え、続くステップS152で、吸入空気量センサ２５による吸入空気量ＱＡをパラメータとしてテーブル参照により空燃比フィードバック制御によるリッチ→リーン基本遅れ時間ＴＲＬ（単位；msec）を設定する。
【０２４７】
このリッチ→リーン基本遅れ時間ＴＲＬは、空燃比フィードバック制御によって生じるリッチ→リーンの遅れ時間、すなわち、空燃比フィードバック補正においてリッチ空燃比に伴い燃料噴射量を減量補正し、この減量補正された燃料噴射量の燃料が噴射されて燃焼後、この燃焼後の排気ガスがＦＯ2センサ３０に至るまでの遅れ時間であり、この遅れ時間を、予め実験或いはシミュレーション等により吸入空気量ＱＡによる運転領域毎に求めて、吸入空気量ＱＡをパラメータとするテーブルとして設定しＲＯＭ４２の一連のアドレスにメモリされているものである。ステップS152中に示すように、上記リッチ→リーン基本遅れ時間ＴＲＬは、吸入空気量ＱＡが増加するに従い漸次的に減少する。
【０２４８】
すなわち、上記リッチ→リーンＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＲＬＴＭから上記リッチ→リーン基本遅れ時間ＴＲＬを減算することで、空燃比フィードバック制御による遅れ分を排除し、ＦＯ2センサ３０による真のリッチ→リーン応答時間を得ることが可能となる。
【０２４９】
そして、ステップS153で、上記リッチ→リーンＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＲＬＴＭから上記リッチ→リーン基本遅れ時間ＴＲＬを減算し、この減算値（Ｏ2ＲＬＴＭ−ＴＲＬ）を上記リッチ→リーンＦＯ2センサ応答遅れ時間最大値Ｏ2ＲＬＭＸと比較する。
【０２５０】
そして、Ｏ2ＲＬＭＸ≧（Ｏ2ＲＬＴＭ−ＴＲＬ）のときには、そのままステップS155へ進み、Ｏ2ＲＬＭＸ＜（Ｏ2ＲＬＴＭ−ＴＲＬ）のときには、ステップS154で、上記減算値（Ｏ2ＲＬＴＭ−ＴＲＬ）によりリッチ→リーンＦＯ2センサ応答遅れ時間最大値Ｏ2ＲＬＭＸを更新し（Ｏ2ＲＬＭＸ←Ｏ2ＲＬＴＭ−ＴＲＬ）、ステップS155へ進む。
【０２５１】
ステップS155では、上記減算値（Ｏ2ＲＬＴＭ−ＴＲＬ）をゼロと比較し、（Ｏ2ＲＬＴＭ−ＴＲＬ）≧０のときには、そのままステップS157へ進み、（Ｏ2ＲＬＴＭ−ＴＲＬ）＜０のときには、ステップS156で、上記減算値（Ｏ2ＲＬＴＭ−ＴＲＬ）をゼロに設定して（（Ｏ2ＲＬＴＭ−ＴＲＬ）←０）、ステップS157へ進む。すなわち、上記リッチ→リーンＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＲＬＴＭによって計測されたリッチ→リーン応答時間は、基本的に空燃比フィードバック制御によるリッチ→リーン基本遅れ時間ＴＲＬよりも短くなることは通常有り得ないが、本実施の形態では、図２５に示すように、上記リッチ→リーンＦＯ2センサ応答遅れ時間計測用カウント値Ｏ2ＲＬＴＭによりリッチ→リーン１周期の応答遅れ時間を計測する中途で、上記カウント値Ｏ2ＲＬＴＭをリッチ→リーン応答時間積算値ＳＧＲＬＴＭに積算するため、上記減算値（Ｏ2ＲＬＴＭ−ＴＲＬ）がマイナス値を示すときには、該減算値（Ｏ2ＲＬＴＭ−ＴＲＬ）をゼロに設定する。
【０２５２】
そして、ステップS157で、上記減算値（Ｏ2ＲＬＴＭ−ＴＲＬ）すなわち空燃比フィードバック補正による遅れ時間を排除したＦＯ2センサ３０のリッチ→リーン応答時間をリッチ→リーン応答時間積算値ＳＧＲＬＴＭに積算し（ＳＧＲＬＴＭ←ＳＧＲＬＴＭ＋（Ｏ2ＲＬＴＭ−ＴＲＬ））、続くステップS158で、ＦＯ2センサ出力電圧ＦＶＯ2によるリッチ→リーンの切換わり回数をカウントするリッチ→リーン回数カウント値ＣＴＲＬをカウントアップして（ＣＴＲＬ←ＣＴＲＬ＋１）、ルーチンを抜ける。
【０２５３】
そして、上記ステップS151においてリッチ側診断用スライスレベル交差判別フラグＦRLBFがクリアされたことで、次回以降のルーチン実行時には、ステップS146からそのままルーチンを抜ける（図２５の時間ｔ７〜ｔ８，ｔ１〜ｔ２の間に相当する）。
【０２５４】
以上の処理により、診断条件の成立下において、診断時間が設定時間に達したとき（ＴＭＯ2ＲＳ≧ＴＯ2ＲＥＳ）、或いは、リーン→リッチ回数カウント値ＣＴＬＲが設定値ＣＮＴＬＲに達したとき（ＣＴＬＲ≧ＣＮＴＬＲ）、或いはリッチ→リーン回数カウント値ＣＴＲＬが設定値ＣＮＴＲＬに達したとき（ＣＴＲＬ≧ＣＮＴＲＬ）、ＦＯ2センサ応答劣化診断の終了条件が成立し、上記ステップS114〜S116（図２０参照）の該当ステップから図２３のステップS159へ進み、ステップS159以下の処理によって、ＦＯ2センサ３０に対する応答劣化判定を行うと共に、ＦＯ2センサ３０の応答劣化度合いを表すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを算出する。
【０２５５】
すなわち、ステップS159〜S163の処理により先ずＦＯ2センサ３０によるリーン→リッチ応答時間平均値ＡＶＬＲＴＭを算出する。
【０２５６】
ステップS159では、上記リーン→リッチ回数カウント値ＣＴＬＲを参照し、ＣＴＬＲ＝０すなわち診断実行時にＦＯ2センサ出力電圧ＦＶＯ2によるリーンからリッチへの切換わりが一度もなかったときには、ステップS160へ進み、ＦＯ2センサ応答劣化診断時間を定める上記設定値ＴＯ2ＲＥＳ（本形態においては、２０sec）をＦＯ2センサ３０によるリーン→リッチ応答時間平均値ＡＶＬＲＴＭとする（ＡＶＬＲＴＭ←ＴＯ2ＲＥＳ）。
【０２５７】
また、上記ステップS159においてＣＴＬＲ≠０のときには、ステップS161へ進み、更に上記リーン→リッチ回数カウント値ＣＴＬＲが、ＣＴＬＲ＝１か否かを判断する。
【０２５８】
そして、ＣＴＬＲ＝１すなわち診断実行時にＦＯ2センサ出力電圧ＦＶＯ2によるリーンからリッチへの切換わりが一度しかなかった時には、ステップS162へ進み、上記リーン→リッチ応答時間積算値ＳＧＬＲＴＭをリーン→リッチ応答時間平均値ＡＶＬＲＴＭとする（ＡＶＬＲＴＭ←ＳＧＬＲＴＭ）。
【０２５９】
更に、上記ステップS161において、ＣＴＬＲ≠１すなわちＣＴＬＲ≧２で、診断実行時にＦＯ2センサ出力電圧ＦＶＯ2によるリーンからリッチへの切換わりが２回以上あったときには、ステップS163へ進み、上記リーン→リッチ応答時間積算値ＳＧＬＲＴＭ、リーン→リッチＦＯ2センサ応答遅れ時間最大値Ｏ2ＬＲＭＸ、及び上記リーン→リッチ回数カウント値ＣＴＬＲを用い、次式によってＦＯ2センサ３０によるリーン→リッチ応答時間平均値ＡＶＬＲＴＭを算出する。
【０２６０】
ＡＶＬＲＴＭ←（ＳＧＬＲＴＭ−Ｏ2ＬＲＭＸ）／（ＣＴＬＲ−１）
そして、上記リーン→リッチ応答時間平均値ＡＶＬＲＴＭの算出後、更にステップS164〜S168の処理によってＦＯ2センサ３０によるリッチ→リーン応答時間平均値ＡＶＲＬＴＭを算出する。
【０２６１】
ステップS164では、上記リッチ→リーン回数カウント値ＣＴＲＬを参照し、ＣＴＲＬ＝０すなわち診断実行時にＦＯ2センサ出力電圧ＦＶＯ2によるリッチからリーンへの切換わりが一度もなかったときには、ステップS165へ進み、上記設定値ＴＯ2ＲＥＳ（本形態においては、２０sec）をＦＯ2センサ３０によるリッチ→リーン応答時間平均値ＡＶＲＬＴＭとする（ＡＶＲＬＴＭ←ＴＯ2ＲＥＳ）。
【０２６２】
また、上記ステップS164においてＣＴＲＬ≠０のときには、ステップS166へ進み、更に上記リッチ→リーン回数カウント値ＣＴＲＬが、ＣＴＲＬ＝１か否かを判断する。
【０２６３】
そして、ＣＴＲＬ＝１で、診断実行時にＦＯ2センサ出力電圧ＦＶＯ2によるリッチからリーンへの切換わりが一度しかなかった時には、ステップS167へ進み、上記リッチ→リーン応答時間積算値ＳＧＲＬＴＭをリッチ→リーン応答時間平均値ＡＶＲＬＴＭとする（ＡＶＲＬＴＭ←ＳＧＲＬＴＭ）。
【０２６４】
更に、上記ステップS166において、ＣＴＲＬ≠１すなわちＣＴＲＬ≧２で、診断実行時にＦＯ2センサ出力電圧ＦＶＯ2によるリッチからリーンへの切換わりが２回以上あったときには、ステップS168へ進み、上記リッチ→リーン応答時間積算値ＳＧＲＬＴＭ、リッチ→リーンＦＯ2センサ応答遅れ時間最大値Ｏ2ＲＬＭＸ、及び上記リッチ→リーン回数カウント値ＣＴＲＬを用い、次式によってＦＯ2センサ３０によるリッチ→リーン応答時間平均値ＡＶＲＬＴＭを算出する。
【０２６５】
ＡＶＲＬＴＭ←（ＳＧＲＬＴＭ−Ｏ2ＲＬＭＸ）／（ＣＴＲＬ−１）
上記平均化処理の終了後、ステップS169へ進み、上記リーン→リッチ応答時間平均値ＡＶＬＲＴＭとリッチ→リーン応答時間平均値ＡＶＲＬＴＭとを加算して合計応答時間平均値ＡＶＳＵＴＭを算出する（ＡＶＳＵＴＭ←ＡＶＲＬＴＭ＋ＡＶＬＲＴＭ）。
【０２６６】
そして、ステップS170で、上記合計応答時間平均値ＡＶＳＵＴＭを、ＦＯ2センサ３０が応答劣化したと見なし得る予め設定されたＦＯ2センサ応答劣化判定値ＮＧＯ2ＳＵと比較する。そして、ＡＶＳＵＴＭ＜ＮＧＯ2ＳＵのときには、ＦＯ2センサ３０が応答劣化しておらず正常状態（応答劣化なし）と判断して、ステップS171へ進み、バックアップＲＡＭ４４の所定アドレスにストアされるＦＯ2センサ３０の応答劣化を示すＦＯ2センサＮＧフラグＦFO2NGをクリアする（ＦFO2NG←０）。
【０２６７】
一方、上記ステップS170においてＡＶＳＵＴＭ≧ＮＧＯ2ＳＵで、ＦＯ2センサ３０による合計応答時間平均値ＡＶＳＵＴＭが、上記ＦＯ2センサ応答劣化判定値ＮＧＯ2ＳＵ以上のときには、ＦＯ2センサ３０が応答劣化した（応答劣化あり）と判断して、ステップS172へ進み、バックアップＲＡＭ４４の所定アドレスにストアされＦＯ2センサ応答劣化を示すＦＯ2センサＮＧフラグＦFO2NGをセットして、上記ＭＩＬランプ３９を点灯或いは点滅させ、ＦＯ2センサ３０が応答劣化したことを運転者に報知する。
【０２６８】
そして、ＦＯ2センサ３０に対する応答劣化判定の終了後、ステップS173で、バックアップＲＡＭ４４の所定アドレスにストアされているＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを読み出して、該ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと上記合計応答時間平均値ＡＶＳＵＴＭとを平均し、この平均値によってＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを更新し（Ｏ2ＲＴＭ←（Ｏ2ＲＴＭ＋ＡＶＳＵＴＭ）／２）、続くステップS174で、上記ＦＯ2センサ応答劣化診断終了フラグＦO2ENDをセットして（ＦO2END←１）、ルーチンを抜ける。
【０２６９】
従って、本暖機サイクルにおいてＦＯ2センサ３０に対する応答劣化診断結果が得られたことで、ＦＯ2センサ応答劣化診断終了フラグＦO2ENDがセットされ、次回以降のルーチン実行時には、ＦO2END＝１により上記ステップS101からそのままルーチンを抜ける。これにより、１暖機サイクルにおいて、ＦＯ2センサ３０に応答劣化診断結果が１回得られた時点で、ＦＯ2センサ３０に対する応答劣化診断が終了される。
【０２７０】
そして、上記触媒ＮＧフラグＦCATNG1，ＦCATNG2と同様に、トラブルシューティングの際に、外部接続用コネクタ５５にシリアルモニタ６０を接続することで、シリアルモニタ６０によってＥＣＵ４０における上記ＦＯ2センサＮＧフラグＦFO2NGによるトラブルデータを読み出して、ＦＯ2センサ３０の応答劣化を的確に判断することが可能となる。
【０２７１】
また、ここで、ＦＯ2センサ３０によるリーン→リッチ応答時間と、リッチ→リーン応答時間との双方を用い、且つ、各応答時間の平均値を採用して、合計応答時間平均値ＡＶＳＵＴＭを算出し、この合計応答時間平均値ＡＶＳＵＴＭに基づいてＦＯ2センサ３０に対する応答劣化を判断するので、外乱等による影響を排除して確実にＦＯ2センサ３０の応答劣化を判断することができ、ＦＯ2センサ３０に対する応答劣化診断の信頼性が向上されると共に、上記合計応答時間平均値ＡＶＳＵＴＭとの平均処理によってＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを算出するので、該ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに的確にＦＯ2センサ３０の応答劣化の度合いが反映される。すなわち、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭによる時間値が長いほど、ＦＯ2センサ３０の応答劣化が進行していることを表す。
【０２７２】
そして、以上のＦＯ2センサ応答劣化診断ルーチンによりバックアップＲＡＭ４４にストアされた上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを、図２４に示す触媒劣化判定ルーチンにおいて参照し、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて算出した補正係数ＫＯ2Ｒによって補正することで、ＦＯ2センサ３０の応答劣化に起因する上記積算値比ＣＨＡＮＴの増加を補償する。
【０２７３】
次に、本形態の触媒劣化診断ルーチンについて説明する。
【０２７４】
図４の触媒劣化診断ルーチンにおいて、ステップS1で、触媒劣化診断終了フラグＦCATENDを参照し、ＦCATEND＝１で既に本暖機サイクルにおいて触媒の劣化診断結果が得られているときには、そのままルーチンを抜ける。
【０２７５】
また、上記ステップS1においてＦCATEND＝０で、本暖機サイクルにおいて未だ触媒の劣化診断が終了していないときにはステップS2へ進み、ステップS2，S3で、運転状態に基づいて診断条件が成立するか否かを判断し、診断許可条件の非成立時、或いは診断中止条件の成立時には、図２４のステップS24へジャンプして、ステップS24〜S27で、それぞれ診断時間カウント値ＭＴＭＣＡＴ、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰ、及び、初回判別フラグＦINIをクリアして、ルーチンを抜ける。
【０２７６】
一方、ステップS2で診断許可条件が成立し、且つステップS3で診断中止条件の非成立時には、ステップS4へ進み、診断時間カウント値ＭＴＭＣＡＴをカウントアップし、続くステップS5で、初回判別フラグＦINIを参照する。
【０２７７】
そして、ＦINI＝０の触媒劣化診断の初回ルーチン実行時には、ステップS6へ進み、初回判別フラグＦINIをセットし、次回に備えステップS7，S8で、それぞれ現在のＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2n，ＲＶＯ2nを読込み、この読込み値ＦＶＯ2n，ＲＶＯ2nを、前回すなわち本ルーチンの実行周期により定まる所定時間前（５０msec前）のＦＯ2センサ出力電圧ＦＶＯ2n-1，ＲＯ2センサ出力電圧ＲＶＯ2n-1とし、ルーチンを抜ける。
【０２７８】
また、上記ステップS5においてＦINI＝１で、診断条件が成立中での２回目以降のルーチン実行時には、ステップS5からステップS9へ進み、ステップS9〜S12の処理により各積算値ＦＤＳＶＰ，ＲＤＳＶＰを算出する。
【０２７９】
その後、ステップS13へ進み、上記診断時間カウント値ＭＴＭＣＡＴを設定値ＴＭＣＡＴと比較し、ＭＴＭＣＡＴ＜ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達していないときには、上記ステップS7、S8を経て、ルーチンを抜ける。
【０２８０】
一方、上記ステップS13においてＭＴＭＣＡＴ≧ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達したとき、すなわち、エンジン運転状態が予め設定された診断領域に設定時間以上係属したとき、図２４のステップS14へ進み、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴを算出する（ＣＨＡＮＴ←ＲＤＳＶＰ／ＦＤＳＶＰ）。
【０２８１】
そして、ステップS501で、上述のＦＯ2センサ応答劣化診断ルーチンによりバックアップＲＡＭ４４にストアされた上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを読み出し、続くステップS502で、該ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと、予めＲＯＭ４２に固定データとしてメモリされているＦＯ2センサ応答劣化補正基準値Ｏ2ＲＡとに基づいて、次式により上記積算値比ＣＨＡＮＴのＦＯ2センサ３０の応答劣化による増加分を補償するための応答劣化補正係数ＫＯ2Ｒを算出する。
【０２８２】
ＫＯ2Ｒ←Ｏ2ＲＴＭ／Ｏ2ＲＡ＋１
上記ＦＯ2センサ応答劣化補正基準値Ｏ2ＲＡは、触媒が劣化したと見なし得る比率値として予め設定される前記触媒劣化判定値ＮＧＣＨＴとの兼ね合いによって定まる固定値であり、予め実験或いはシミュレーション等によって最適値を求め、ＲＯＭ４２に固定データとしてメモリされるものである。
【０２８３】
従って、上記応答劣化補正係数ＫＯ2Ｒは、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが長く、ＦＯ2センサ３０の応答劣化が進行しているほど、大きい値に設定される。
【０２８４】
次いで、ステップS503へ進み、上記積算値比ＣＨＡＮＴを上記ステップS502において算出した応答劣化補正係数ＫＯ2Ｒによって除算して補正し、補正積算値比ＫＣＨＡＮＴを算出する（ＫＣＨＡＮＴ←ＣＨＡＮＴ／ＫＯ2Ｒ）。
【０２８５】
ここで、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが長く、ＦＯ2センサ３０の応答劣化が進行しているほど、上記応答劣化補正係数ＫＯ2Ｒが大きい値に設定されるため、この応答劣化補正係数ＫＯ2Ｒにより除算して算出される補正積算値比ＫＣＨＡＮＴは、小さい値となる。
【０２８６】
すなわち、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて算出した補正係数ＫＯ2Ｒによって補正し、補正積算値比ＫＣＨＡＮＴを得ることで、図２６に実線で示す積算値比ＣＨＡＮＴに対し、補正積算値比ＫＣＨＡＮＴは、同図に破線で示すように、ＦＯ2センサ３０の応答劣化に起因する上記積算値比ＣＨＡＮＴの増加分を減少補正した値となり、ＦＯ2センサ３０の応答劣化に応じて積算値比ＣＨＡＮＴの増加分を的確に補償することが可能となる。
【０２８７】
そして、ステップS504で、この補正後の補正積算値比ＫＣＨＡＮＴを、上記触媒劣化判定値ＮＧＣＨＴと比較して、触媒の劣化を診断する。
【０２８８】
そして、ＫＣＨＡＮＴ＜ＮＧＣＨＴのときには、触媒が劣化しておらず正常状態（触媒劣化なし）と判断して、上記実施の第１形態と同様に、ステップS16へ進み、ステップS16，S17で、それぞれバックアップＲＡＭ４４の所定アドレスにストアされる第１回目，第２回目触媒ＮＧフラグＦCATNG1，ＦCATNG2をクリアし、ステップS22で、上記第１回目，第２回目触媒ＮＧフラグＦCATNG1，ＦCATNG2による各データをモニタ用データとしてセットし、ステップS23で、触媒劣化診断終了フラグＦCATENDをセットして、上記ステップS24〜S27を経て、ルーチンを抜ける。
【０２８９】
一方、上記ステップS504においてＫＣＨＡＮＴ≧ＮＧＣＨＴで、上記補正積算値比ＫＣＨＡＮＴが触媒劣化判定値ＮＧＣＨＴ以上のときには、触媒が劣化した（触媒劣化あり）と判断して、ステップS18へ進み、バックアップＲＡＭ４４の所定アドレスにストアされ触媒劣化と判定されたときセットされる第１回目触媒ＮＧフラグＦCATNG1を参照する。
【０２９０】
そして、ＦCATNG1＝０で、触媒劣化と判定した初回のときには、ステップS19へ進み、第１回目触媒ＮＧフラグＦCATNG1をセットして上記ステップS22〜S27を経て、ルーチンを抜ける。また、上記ステップS18においてＦCATNG1＝１のときには、ステップS20へ進み、バックアップＲＡＭ４４の所定アドレスにストアされ触媒の劣化と確定する２回目触媒ＮＧフラグＦCATNG2をセットし、ステップS21で、警告処理を行い、上記ステップS22〜S27を経て、ルーチンを抜ける。
【０２９１】
尚、ここで、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰに対するＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰの比ＦＤＳＶＰ／ＲＤＳＶＰを算出し、この積算値比ＦＤＳＶＰ／ＲＤＳＶＰに上記応答劣化補正係数ＫＯ2Ｒを乗算して補正し、この補正後の積算値比（（ＦＤＳＶＰ／ＲＤＳＶＰ）×ＫＯ2Ｒ）を触媒の劣化と見なし得る比率値と比較することで触媒の劣化を診断するようにしてもよい。この場合には、上記比率値は、１／ＮＧＣＨＴにより設定され、（ＦＤＳＶＰ／ＲＤＳＶＰ）×ＫＯ2Ｒ≦１／ＮＧＣＨＴのとき、触媒の劣化と診断する。
【０２９２】
以上のように、本実施の形態では、ＦＯ2センサ３０の出力電圧ＦＶＯ2がリッチとリーンとを交互に反転する応答時間に基づいて算出されるＦＯ2センサ３０の応答劣化の進行度合いを表すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを採用し、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて算出した補正係数ＫＯ2Ｒによって補正することで、ＦＯ2センサ３０の応答劣化に起因する上記積算値比ＣＨＡＮＴの増加を補償し、この補正後の補正積算値比ＫＣＨＡＮＴを触媒劣化判定値ＮＧＣＨＴと比較して、触媒の劣化を診断するため、上記実施の第４形態に対し、ＦＯ2センサ３０に応答劣化が生じても、触媒劣化診断を中止することなく実現でき、触媒劣化診断可能領域を拡大することが可能となり、市場（ユーザによる使用状態下）での診断頻度を低下することなく精度の高い触媒劣化診断を行うことが可能となる。
【０２９３】
また、本実施の形態においても、強制的に空燃比を変動させることなくＦＯ2センサ３０の応答劣化を判断することができ、このＦＯ2センサ３０の応答劣化を補償して触媒劣化診断を行うので、空燃比の強制変動による排気エミッションの悪化を生じることなく実現できる。
【０２９４】
尚、上記実施の第２形態、或いは第３形態に、本実施の形態におけるＦＯ2センサ３０の応答劣化補正処理を組み込むことで、各Ｏ2センサ３０，３１の電圧劣化を補正すると共に、ＦＯ2センサ３０の応答劣化をも補正して、触媒に対する劣化診断精度をより向上することが可能となる。
【０２９５】
ここで、上記実施の第２形態に、本実施の形態におけるＦＯ2センサ応答劣化補正処理を組み込む場合には、本形態のステップS501〜S503による処理を、図５のステップS14とステップS15との間に挿入し、ステップS15に代え、本形態のステップS504を採用する。
【０２９６】
また、上記実施の第３形態に、本実施の形態におけるＦＯ2センサ３０の応答劣化補正処理を組み込む場合には、本形態のステップS501〜S503による処理を、図１３のステップS303と、図１４のステップS15との間に挿入し、ステップS15に代えて、本形態のステップS504を採用する。
【０２９７】
次に、本発明の実施の第６形態を図２７〜図２９に基づいて説明する。
【０２９８】
上記実施の第５形態においては、ＦＯ2センサ３０の応答劣化の進行度合いを表すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて算出した補正係数ＫＯ2Ｒによって、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を補正し、ＦＯ2センサ３０の応答劣化に起因する積算値比ＣＨＡＮＴの増加を補償し、この補正後の補正積算値比ＫＣＨＡＮＴを触媒劣化判定値ＮＧＣＨＴと比較して、触媒の劣化を診断するのに対し、本実施の形態では、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいてテーブル参照により触媒劣化判定値ＨＣＨＡＮＴを設定する。
【０２９９】
すなわち、本実施の形態では、ＦＯ2センサ３０の応答劣化に起因する積算値比ＣＨＡＮＴの増加分に対応して触媒の劣化を判定するための触媒劣化判定値ＨＣＨＡＮＴを設定し、上記積算値比ＣＨＡＮＴをこの触媒劣化判定値ＨＣＨＡＮＴと比較して触媒の劣化を診断することで、ＦＯ2センサ３０の応答劣化を補償し、上記実施の第５形態と同様に、触媒劣化診断を中止することなく実現可能としたものである。
【０３００】
すなわち、本実施の形態においては、前記ＥＣＵ４０は、請求項２記載の発明に係るフロント空燃比センサ応答劣化診断値算出手段、診断条件判別手段、空燃比センサ出力電圧変化量積算手段、積算値比算出手段、触媒劣化判定値設定手段、診断手段としての機能を実現する。
【０３０１】
具体的には、本実施の形態では、上記実施の第５形態の図２４に示す触媒劣化診断ルーチンに代えて、図２７の触媒劣化診断ルーチンを採用する。尚、触媒劣化診断ルーチンの前半については、上記実施の第５形態と同様、上記実施の第１形態の図４のルーチンをそのまま採用する。また、上記各実施の形態と同一のステップについては、同一の符号を付して、その詳細説明は省略する。
【０３０２】
本形態の触媒劣化診断ルーチンについて説明すると、図４の触媒劣化診断ルーチンにおいて、ステップS1で、触媒劣化診断終了フラグＦCATENDを参照し、ＦCATEND＝１で既に本暖機サイクルにおいて触媒の劣化診断結果が得られているときには、そのままルーチンを抜ける。
【０３０３】
また、上記ステップS1においてＦCATEND＝０で、本暖機サイクルにおいて未だ触媒の劣化診断が終了していないときにはステップS2へ進み、ステップS2，S3で、運転状態に基づいて診断条件が成立するか否かを判断し、診断許可条件の非成立時、或いは診断中止条件の成立時には、図２７のステップS24へジャンプして、ステップS24〜S27で、それぞれ診断時間カウント値ＭＴＭＣＡＴ、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰ、及び、初回判別フラグＦINIをクリアして、ルーチンを抜ける。
【０３０４】
一方、ステップS2で診断許可条件が成立し、且つステップS3で診断中止条件の非成立時には、ステップS4へ進み、診断時間カウント値ＭＴＭＣＡＴをカウントアップし、続くステップS5で、初回判別フラグＦINIを参照する。
【０３０５】
そして、ＦINI＝０の触媒劣化診断の初回ルーチン実行時には、ステップS6へ進み、初回判別フラグＦINIをセットし、次回に備えステップS7，S8で、それぞれ現在のＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2n，ＲＶＯ2nを読込み、この読込み値ＦＶＯ2n，ＲＶＯ2nを、前回すなわち本ルーチンの実行周期により定まる所定時間前（５０msec前）のＦＯ2センサ出力電圧ＦＶＯ2n-1，ＲＯ2センサ出力電圧ＲＶＯ2n-1としてルーチンを抜ける。
【０３０６】
また、上記ステップS5においてＦINI＝１で、診断条件が成立中での２回目以降のルーチン実行時には、ステップS5からステップS9へ進み、ステップS9〜S12の処理により各積算値ＦＤＳＶＰ，ＲＤＳＶＰを算出する。
【０３０７】
その後、ステップS13へ進み、上記診断時間カウント値ＭＴＭＣＡＴを設定値ＴＭＣＡＴと比較し、ＭＴＭＣＡＴ＜ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達していないときには、上記ステップS7、S8を経て、ルーチンを抜ける。
【０３０８】
一方、上記ステップS13においてＭＴＭＣＡＴ≧ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達したとき、すなわち、エンジン運転状態が予め設定された診断領域に設定時間以上係属したとき、図２７のステップS14へ進み、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴを算出する（ＣＨＡＮＴ←ＲＤＳＶＰ／ＦＤＳＶＰ）。
【０３０９】
そして、ステップS601で、上述のＦＯ2センサ応答劣化診断ルーチンによりバックアップＲＡＭ４４にストアされた上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを読み出し、続くステップS602で、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて触媒劣化判定値テーブルを補間計算付きで参照して触媒が劣化したと見なし得る比率値としての触媒劣化判定値ＨＣＨＡＮＴを設定する。
【０３１０】
すなわち、上記各実施の形態においては、触媒劣化判定値ＮＧＣＨＴは、一義的な値に設定されるが、本実施の形態では、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいてＦＯ2センサ３０の応答劣化の進行度合いに応じて触媒劣化判定値ＨＣＨＡＮＴが可変設定される。
【０３１１】
上記触媒劣化判定値ＨＣＨＡＮＴは、予め実験或いはシミュレーション等によりＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭによる領域毎に、ＦＯ2センサ３０の応答劣化に伴う上記積算値比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）の増加分を求め、この積算値比ＣＨＡＮＴの増加分に対応して触媒劣化と見なし得る比率値を、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭをパラメータとする１次元の触媒劣化判定値テーブルとして設定し（図２８参照）、ＲＯＭ４２の一連のアドレスにメモリされているものである。
【０３１２】
ここで、上記触媒劣化判定値テーブルには、ＦＯ2センサ３０の応答劣化の進行に伴いＦＯ2センサ応答劣化判定値Ｏ2ＲＴＭが増加するほど、これに伴って上記積算値比ＣＨＡＮＴが増加するため、このＦＯ2センサ３０の応答劣化による積算値比ＣＨＡＮＴの増加分に対応して、増大関数的な値の触媒劣化判定値ＨＣＨＡＮＴが格納されている。従って、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが長く、ＦＯ2センサ３０の応答劣化が進行しているほど、上記触媒劣化判定値ＨＣＨＡＮＴは大きい値に設定される。
【０３１３】
そして、ステップS603で、上記積算値比ＣＨＡＮＴを、上記ステップS602において設定した触媒劣化判定値ＨＣＨＡＮＴと比較することで、触媒の劣化を診断する。
【０３１４】
すなわち、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を、図２９に一点鎖線で示す一義的な値の触媒劣化判定値ＮＧＣＨＴと比較した場合には、ＦＯ2センサ３０の応答劣化の進行に応じＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが増加するに従い、前述のようにＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰが減少することで上記積算値比ＣＨＡＮＴが増加するため、同図に斜線で示す領域（誤診断領域）において触媒が劣化していないにも係わらず、触媒が劣化していると判定する誤診断を生じる。
【０３１５】
これに対し、本実施の形態では、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて触媒の劣化を判定するための触媒劣化判定値ＨＣＨＡＮＴを設定し、この触媒劣化判定値ＨＣＨＡＮＴは、図２９に破線で示すように、ＦＯ2センサ３０の応答劣化の進行に応じＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが増加し上記積算値比ＣＨＡＮＴが増加するに従い、これに対応して増加されるため、ＦＯ2センサの３０の応答劣化に起因して上記積算値比ＣＨＡＮＴが増加することによる触媒劣化の誤診断を確実に防止することが可能となる。
【０３１６】
そして、上記ステップS603においてＣＨＡＮＴ＜ＨＣＨＡＮＴのときには、触媒が劣化しておらず正常状態（触媒劣化なし）と判断して、ステップS16へ進み、ステップS16，S17で、それぞれバックアップＲＡＭ４４の所定アドレスにストアされる第１回目，第２回目触媒ＮＧフラグＦCATNG1，ＦCATNG2をクリアし、ステップS22で、上記第１回目，第２回目触媒ＮＧフラグＦCATNG1，ＦCATNG2による各データをモニタ用データとしてセットし、ステップS23で、触媒劣化診断終了フラグＦCATENDをセットして、上記ステップS24〜S27を経て、ルーチンを抜ける。
【０３１７】
一方、上記ステップS603においてＣＨＡＮＴ≧ＨＣＨＡＮＴで、上記積算値比ＣＨＡＮＴが触媒劣化判定値ＨＣＨＡＮＴ以上のときには、触媒が劣化した（触媒劣化あり）と判断して、ステップS18へ進み、第１回目触媒ＮＧフラグＦCATNG1を参照する。
【０３１８】
そして、ＦCATNG1＝０で、触媒劣化と判定した初回のときには、ステップS19へ進み、第１回目触媒ＮＧフラグＦCATNG1をセットし、また、上記ステップS18においてＦCATNG1＝１のときには、ステップS20へ進み、２回目触媒ＮＧフラグＦCATNG2をセットして、ステップS21で、警告処理を行い、上記ステップS22〜S27を経て、ルーチンを抜ける。
【０３１９】
尚、本実施の形態では、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を算出し、この積算値比ＣＨＡＮＴをＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて設定した触媒劣化判定値ＨＣＨＡＮＴと比較することで触媒の劣化を診断しているが、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰに対するＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰの比ＦＤＳＶＰ／ＲＤＳＶＰを算出し、この積算値比ＦＤＳＶＰ／ＲＤＳＶＰにより触媒の劣化を判断するようにしてもよい。この場合、ＦＤＳＶＰ／ＲＤＳＶＰ≦１／ＨＣＨＡＮＴのとき、触媒の劣化と診断する。また、１／ＨＣＨＡＮＴをＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭをパラメータとするテーブルとして設定してもよいことは勿論である。
【０３２０】
以上のように、本実施の形態では、ＦＯ2センサ３０の出力電圧ＦＶＯ2がリッチとリーンとを交互に反転する応答時間に基づいて算出されるＦＯ2センサ３０の応答劣化の進行度合いを表すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを採用し、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいてテーブル参照により設定したＦＯ2センサ３０の応答劣化による上記積算値比ＣＨＡＮＴの増加に対応する触媒劣化判定値ＨＣＨＡＮＴと比較して触媒の劣化を診断するので、上記実施の第５形態と同様に、ＦＯ2センサ３０に応答劣化が生じても、触媒劣化診断を中止することなく実現でき、触媒劣化診断可能領域を拡大することが可能となり、市場（ユーザによる使用状態下）での診断頻度を低下することなく精度の高い触媒劣化診断を行うことが可能となる。
【０３２１】
尚、上記実施の第２形態、或いは第３形態に、本実施の形態における触媒劣化判定値設定処理を組み込み、各Ｏ2センサ３０，３１の電圧劣化を補正すると共に、ＦＯ2センサ３０の応答劣化に伴う誤診断を防止し、触媒に対する劣化診断精度をより向上することが可能である。
【０３２２】
ここで、上記実施の第２形態に、本実施の形態における触媒劣化判定値設定処理を組み込む場合には、本形態のステップS601，S602による処理を、図５のステップS14とステップS15との間に挿入し、ステップS15に代え、本形態のステップS603を採用する。
【０３２３】
また、上記実施の第３形態に、本実施の形態における触媒劣化判定値設定処理を組み込む場合には、本形態のステップS601，S602による処理を、図１３のステップS303と、図１４のステップS15との間に挿入し、ステップS15に代えて、本形態のステップS603を採用する。
【０３２４】
次に、本発明の実施の第７形態を図３０及び図３１に基づいて説明する。
【０３２５】
上記実施の第５形態においては、ＦＯ2センサ３０の応答劣化の進行度合いを表すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて算出した補正係数ＫＯ2Ｒによって、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を補正し、ＦＯ2センサ３０の応答劣化に起因する積算値比ＣＨＡＮＴの増加を補償し、この補正後の補正積算値比ＫＣＨＡＮＴを一義的な値の触媒劣化判定値ＮＧＣＨＴと比較して、触媒の劣化を診断するのに対し、本実施の形態では、上記積算値比ＣＨＡＮＴに対しては補正を行わず、上記補正係数ＫＯ2Ｒによって予め設定された上記触媒劣化判定値ＮＧＣＨＴを補正して補正触媒劣化判定値ＳＣＨＡＮＴを算出する（ＳＣＨＡＮＴ←ＮＧＣＨＴ×ＫＯ2Ｒ）。すなわち、ＦＯ2センサ３０の応答劣化に起因する上記積算値比の増加分に対応して触媒劣化判定値ＮＧＣＨＴを補正し、上記積算値比ＣＨＡＮＴを補正触媒劣化判定値ＳＣＨＡＮＴと比較して触媒の劣化を診断することで、ＦＯ2センサ３０の応答劣化を補償し、上記実施の第５形態と同様に、触媒劣化診断を中止することなく実現可能としたものである。
【０３２６】
すなわち、本実施の形態においては、前記ＥＣＵ４０は、請求項３記載の発明に係るフロント空燃比センサ応答劣化診断値算出手段、診断条件判別手段、空燃比センサ出力電圧変化量積算手段、積算値比算出手段、補正係数算出手段、触媒劣化判定値補正手段、診断手段としての機能を実現する。
【０３２７】
具体的には、本実施の形態では、上記実施の第５形態の図２４に示す触媒劣化診断ルーチンに代えて、図３０の触媒劣化診断ルーチンを採用する。尚、触媒劣化診断ルーチンの前半については、上記実施の第５形態と同様、上記実施の第１形態の図４のルーチンをそのまま採用する。また、上記各実施の形態と同一のステップについては、同一の符号を付して、その詳細説明は省略する。
【０３２８】
本形態の触媒劣化診断ルーチンについて説明すると、図４の触媒劣化診断ルーチンにおいて、ステップS1で、触媒劣化診断終了フラグＦCATENDを参照し、ＦCATEND＝１で既に本暖機サイクルにおいて触媒の劣化診断結果が得られているときには、そのままルーチンを抜ける。
【０３２９】
また、上記ステップS1においてＦCATEND＝０で、本暖機サイクルにおいて未だ触媒の劣化診断が終了していないときにはステップS2へ進み、ステップS2，S3で、運転状態に基づいて診断条件が成立するか否かを判断し、診断許可条件の非成立時、或いは診断中止条件の成立時には、図３０のステップS24へジャンプして、ステップS24〜S27で、それぞれ診断時間カウント値ＭＴＭＣＡＴ、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰ、及び、初回判別フラグＦINIをクリアして、ルーチンを抜ける。
【０３３０】
一方、ステップS2で診断許可条件が成立し、且つステップS3で診断中止条件の非成立時には、ステップS4へ進み、診断時間カウント値ＭＴＭＣＡＴをカウントアップし、続くステップS5で、初回判別フラグＦINIを参照する。
【０３３１】
そして、ＦINI＝０の触媒劣化診断の初回ルーチン実行時には、ステップS6へ進み、初回判別フラグＦINIをセットし、次回に備えステップS7，S8で、それぞれ現在のＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2n，ＲＶＯ2nを読込み、この読込み値ＦＶＯ2n，ＲＶＯ2nを、前回すなわち本ルーチンの実行周期により定まる所定時間前（５０msec前）のＦＯ2センサ出力電圧ＦＶＯ2n-1，ＲＯ2センサ出力電圧ＲＶＯ2n-1とし、ルーチンを抜ける。
【０３３２】
また、上記ステップS5においてＦINI＝１で、診断条件が成立中での２回目以降のルーチン実行時には、ステップS5からステップS9へ進み、ステップS9〜S12の処理により各積算値ＦＤＳＶＰ，ＲＤＳＶＰを算出する。
【０３３３】
その後、ステップS13へ進み、上記診断時間カウント値ＭＴＭＣＡＴを設定値ＴＭＣＡＴと比較し、ＭＴＭＣＡＴ＜ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達していないときには、上記ステップS7、S8を経て、ルーチンを抜ける。
【０３３４】
一方、上記ステップS13においてＭＴＭＣＡＴ≧ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達したとき、すなわち、エンジン運転状態が予め設定された診断領域に設定時間以上係属したとき、図３０のステップS14へ進み、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴを算出する（ＣＨＡＮＴ←ＲＤＳＶＰ／ＦＤＳＶＰ）。
【０３３５】
そして、ステップS501で、上述のＦＯ2センサ応答劣化診断ルーチンによりバックアップＲＡＭ４４にストアされた上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを読み出し、続くステップS502で、該ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと、予めＲＯＭ４２に固定データとしてメモりされているＦＯ2センサ応答劣化補正基準値Ｏ2ＲＡとに基づいて応答劣化補正係数ＫＯ2Ｒを算出する（ＫＯ2Ｒ←Ｏ2ＲＴＭ／Ｏ2ＲＡ＋１）。
【０３３６】
本形態における上記ＦＯ2センサ応答劣化補正基準値Ｏ2ＲＡは、触媒が劣化したと見なし得る比率値として予め設定される前記触媒劣化判定値ＮＧＣＨＴとの兼ね合いによって定まる固定値であり、ＦＯ2センサ３０の応答劣化の進行度合いを表す上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて、一義的な値の上記触媒劣化判定値ＮＧＣＨＴをＦＯ2センサ３０の応答劣化による積算値比ＣＨＡＮＴの増加分に対応して補償するに適正な応答劣化補正係数ＫＯ2Ｒを得る最適値を、予め実験或いはシミュレーション等によって求め、ＲＯＭ４２に固定データとしてメモりされるものである。
【０３３７】
従って、上記応答劣化補正係数ＫＯ2Ｒは、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが長く、ＦＯ2センサ３０の応答劣化が進行しているほど、大きい値に設定される。
【０３３８】
次いで、ステップS701へ進み、予め設定されている一義的な値の上記触媒劣化判定値ＮＧＣＨＴに、上記ステップS502において算出した応答劣化補正係数ＫＯ2Ｒを乗算して、該触媒劣化判定値ＮＧＣＨＴを補正し、補正触媒劣化判定値ＳＣＨＡＮＴを算出する（ＳＣＨＡＮＴ←ＮＧＣＨＴ×ＫＯ2Ｒ）。
【０３３９】
ここで、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて算出された応答劣化補正係数ＫＯ2Ｒにより、ＦＯ2センサ３０の応答劣化の進行度合いに応じて触媒劣化判定値ＮＧＣＨＴが増加補正される。上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが長く、ＦＯ2センサ３０の応答劣化が進行しているほど、上記応答劣化補正係数ＫＯ2Ｒが大きい値に設定されるため、この応答劣化補正係数ＫＯ2Ｒによって上記触媒劣化判定値ＮＧＣＨＴが増加補正され、補正触媒劣化判定値ＳＣＨＡＮＴは、大きい値となる。
【０３４０】
すなわち、本実施の形態では、ＦＯ2センサ３０の応答劣化の進行に伴いＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが増加するほど、これに伴って上記積算値比ＣＨＡＮＴが増加するため、このＦＯ2センサ３０の応答劣化による積算値比ＣＨＡＮＴの増加分に対応して、上記応答劣化補正係数ＫＯ2Ｒにより触媒劣化判定値ＮＧＣＨＴを増加補正するのである。
【０３４１】
そして、ステップS702で、上記積算値比ＣＨＡＮＴを、上記ステップS701において算出した補正触媒劣化判定値ＳＣＨＡＮＴと比較することで、触媒の劣化を診断する。
【０３４２】
ここで、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を、図３１に一点鎖線で示す一義的な値の触媒劣化判定値ＮＧＣＨＴと比較した場合には、ＦＯ2センサ３０の応答劣化の進行に応じＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが増加するに従い、前述のようにＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰが減少することで上記積算値比ＣＨＡＮＴが増加するため、同図に斜線で示す領域（誤診断領域）において触媒が劣化していないにも係わらず、触媒が劣化していると判定する誤診断を生じる。
【０３４３】
これに対し、本実施の形態では、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて設定した応答劣化補正係数ＫＯ2Ｒにより触媒の劣化を判定するための触媒劣化判定値ＮＧＣＨＴを補正し、補正触媒劣化判定値ＳＣＨＡＮＴ（＝ＮＧＣＨＴ×ＫＯ2Ｒ）を算出する。この補正触媒劣化判定値ＳＣＨＡＮＴは、図３１に破線で示すように、ＦＯ2センサ３０の応答劣化の進行に応じＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが増加し上記積算値比ＣＨＡＮＴが増加するに従い、これに対応して増加されるため、ＦＯ2センサの３０の応答劣化に起因して上記積算値比ＣＨＡＮＴが増加することによる触媒劣化の誤診断を確実に防止することが可能となる。
【０３４４】
そして、上記ステップS702においてＣＨＡＮＴ＜ＳＣＨＡＮＴのときには、触媒が劣化しておらず正常状態（触媒劣化なし）と判断して、ステップS16へ進み、ステップS16，S17で、それぞれバックアップＲＡＭ４４の所定アドレスにストアされる第１回目，第２回目触媒ＮＧフラグＦCATNG1，ＦCATNG2をクリアし、ステップS22で、上記第１回目，第２回目触媒ＮＧフラグＦCATNG1，ＦCATNG2による各データをモニタ用データとしてセットし、ステップS23で、触媒劣化診断終了フラグＦCATENDをセットして、上記ステップS24〜S27を経て、ルーチンを抜ける。
【０３４５】
一方、上記ステップS702においてＣＨＡＮＴ≧ＳＣＨＡＮＴで、上記積算値比ＣＨＡＮＴが補正触媒劣化判定値ＳＣＨＡＮＴ以上のときには、触媒が劣化した（触媒劣化あり）と判断して、ステップS18へ進み、第１回目触媒ＮＧフラグＦCATNG1を参照する。
【０３４６】
そして、ＦCATNG1＝０で、触媒劣化と判定した初回のときには、ステップS19へ進み、第１回目触媒ＮＧフラグＦCATNG1をセットし、また、上記ステップS18においてＦCATNG1＝１のときには、ステップS20へ進み、２回目触媒ＮＧフラグＦCATNG2をセットして、ステップS21で、警告処理を行い、上記ステップS22〜S27を経て、ルーチンを抜ける。
【０３４７】
尚、本実施の形態では、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を算出し、この積算値比ＣＨＡＮＴを補正触媒劣化判定値ＳＣＨＡＮＴと比較することで触媒の劣化を診断しているが、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰに対するＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰの比ＦＤＳＶＰ／ＲＤＳＶＰを算出し、この積算値比ＦＤＳＶＰ／ＲＤＳＶＰにより触媒の劣化を判断するようにしてもよい。この場合、ＦＤＳＶＰ／ＲＤＳＶＰ≦１／ＳＣＨＡＮＴのとき、触媒の劣化と診断する。
【０３４８】
以上のように、本実施の形態では、ＦＯ2センサ３０の出力電圧ＦＶＯ2がリッチとリーンとを交互に反転する応答時間に基づいて算出されるＦＯ2センサ３０の応答劣化の進行度合いを表すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを採用し、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を、予め設定された触媒劣化判定値ＮＧＣＨＴを上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて算出した補正係数ＫＯ2Ｒによって補正したＦＯ2センサ３０の応答劣化による上記積算値比ＣＨＡＮＴの増加に対応する補正触媒劣化判定値ＳＣＨＡＮＴと比較して触媒の劣化を診断するので、上記実施の第５形態と同様に、ＦＯ2センサ３０に応答劣化が生じても、触媒劣化診断を中止することなく実現でき、触媒劣化診断可能領域を拡大することが可能となり、市場（ユーザによる使用状態下）での診断頻度を低下することなく精度の高い触媒劣化診断を行うことが可能となる。
【０３４９】
また、上記実施の第６形態に対し、触媒劣化判定値ＨＣＨＡＮＴを設定するための触媒劣化判定値テーブルを必要としないため、触媒劣化診断処理に係るメモリ（ＲＯＭ４２）の使用容量を低減することが可能となる。
【０３５０】
尚、上記実施の第２形態、或いは第３形態に、本実施の形態における触媒劣化判定値補正処理を組み込み、各Ｏ2センサ３０，３１の電圧劣化を補正すると共に、ＦＯ2センサ３０の応答劣化に伴う誤診断を防止することが可能である。
【０３５１】
上記実施の第２形態に、本実施の形態における触媒劣化判定値補正処理を組み込む場合には、本形態のステップS501，S502，S701による処理を、図５のステップS14とステップS15との間に挿入し、ステップS15に代え、本形態のステップS702を採用する。
【０３５２】
また、上記実施の第３形態に、本実施の形態における触媒劣化判定値補正処理を組み込む場合には、本形態のステップS501，S502，S701による処理を、図１３のステップS303と、図１４のステップS15との間に挿入し、ステップS15に代えて、本形態のステップS702を採用する。
【０３５３】
次に、本発明の実施の第８形態を図３２〜図３６に基づいて説明する。
【０３５４】
上記実施の第６形態においては、ＦＯ2センサ３０の応答劣化の進行度合いを表すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭのみをパラメータとして一次元の触媒劣化判定値テーブルを検索し触媒劣化判定値ＨＣＨＡＮＴを設定するのに対し、本実施の形態では、診断条件の成立時におけるエンジン負荷の平均値を算出し、該エンジン負荷平均値と上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭとに基づいてテーブル参照により触媒劣化を判定するための触媒劣化判定値を設定する。
【０３５５】
上述のように、ダブルＯ2センサシステムによる空燃比制御においては、基本的にＦＯ2センサ３０の出力電圧ＦＶＯ2とスライスレベルとの比較結果に応じて比例積分制御（ＰＩ制御）により空燃比フィードバック補正係数を設定し、この空燃比フィードバック補正係数によって燃料噴射量を補正することで、空燃比を補正している。そして、ＲＯ2センサ３１の出力電圧ＲＶＯ2とスライスレベルとの比較結果に応じて上記比例積分制御の制御定数に対する修正を行うようにしている。
【０３５６】
このため、ＦＯ2センサ３０に応答劣化が生じると、空燃比フィードバック制御における制御周期が相対的に長くなり、上記実施の第４形態における図１７に示すように、ＦＯ2センサ３０の出力電圧ＦＶＯ2のリッチからリーン、或いはリーンからリッチへの切換わり周期が相対的に長くなる。
【０３５７】
その結果、上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰが減少すると共に、空燃比フィードバック制御周期が長くなることによる空燃比制御性の悪化によって、空燃比のリッチ，リーンの変化幅が大きくなり、触媒のストレージ効果（触媒のウインド幅）を超えて排気ガスが吹き抜けてしまい、ＲＯ2センサ３１の出力電圧ＲＶＯ2の振幅が大きくなり、上記ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰが増加してしまう。
【０３５８】
ここで、排気ガス流量はエンジン負荷に比例し、エンジン負荷が増加するに伴い、触媒のストレージ効果を超えた排気ガスの吹き抜け量が増加する。
【０３５９】
従って、触媒の劣化度合いが同一状態の下でも、エンジン負荷が増加するほど、上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの増加割合が増し、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）は、図３２に破線で示す低負荷走行時に対し、実線で示す高負荷走行時のように、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが長くＦＯ2センサ３０の応答劣化が進行し、且つ、エンジン負荷が大きいほど、大きい値となる。
【０３６０】
このため、図３２に２点鎖線で示すように、低負荷走行時に対応して上記触媒劣化判定値ＨＣＨＡＮＴを設定すると、高負荷走行時において、触媒が劣化していないにも係わらず、上記積算値比ＣＨＡＮＴと触媒劣化判定値ＨＣＨＡＮＴとの比較によって、同図に斜線で示す誤診断領域において、ＣＨＡＮＴ≧ＨＣＨＡＮＴとなって、触媒が劣化していると誤診断する虞がある。
【０３６１】
また、高負荷走行時に対応して上記触媒劣化判定値ＨＣＨＡＮＴを設定すると、低負荷走行時において、上記積算値比ＣＨＡＮＴと触媒劣化判定値ＨＣＨＡＮＴとの間隔が大きくなり過ぎ、触媒が劣化しても、積算値比ＣＨＡＮＴが触媒劣化判定値ＨＣＨＡＮＴに到達せず、触媒が劣化していないと誤診断する虞が生じる。  すなわち、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭのみをパラメータとして触媒の劣化を判定するための劣化判定値ＨＣＨＡＮＴを設定した場合には、触媒劣化診断精度の向上に限界がある。
【０３６２】
従って、本実施の形態においては、エンジン負荷の一例として排気ガス流量と一義的な関係にある吸入空気量ＱＡを用い、診断条件の成立時における吸入空気量ＱＡの平均値すなわち平均吸入空気量ＣＡＴＡＶＱを算出し、該平均吸入空気量ＣＡＴＡＶＱと上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭとに基づいてテーブル参照により触媒劣化判定値ＨＣＨＡＮＴを設定する。すなわち、ＦＯ2センサ３０の応答劣化およびエンジン負荷に応じて変化する上記積算値比ＣＨＡＮＴに対応して触媒の劣化を判定するための触媒劣化判定値ＨＣＨＡＮＴを設定し、上記積算値比ＣＨＡＮＴを該触媒劣化判定値ＨＣＨＡＮＴと比較して触媒の劣化を診断することで、ＦＯ2センサ３０に応答劣化が生じたり、診断時においてエンジン負荷が相違しても正確な触媒劣化診断結果を得る。
【０３６３】
すなわち、本実施の形態においては、前記ＥＣＵ４０は、請求項４記載の発明に係るフロント空燃比センサ応答劣化診断値算出手段、診断条件判別手段、空燃比センサ出力電圧変化量積算手段、積算値比算出手段、エンジン負荷平均値算出手段、触媒劣化判定値設定手段、診断手段としての機能を実現する。
【０３６４】
具体的には、本実施の形態では、図３３〜図３４に示す触媒劣化診断ルーチンを採用する。尚、上記各実施の形態と同一のステップについては、同一の符号を付して、その詳細説明は省略する。
【０３６５】
図３３〜図３４に示す触媒劣化診断ルーチンは、上記実施の各形態と同様に、システムイニシャライズ後、所定時間（例えば、５０msec）毎に実行され、先ずステップS1で、触媒劣化診断終了フラグＦCATENDを参照し、ＦCATEND＝１で既に本暖機サイクルにおいて触媒の劣化診断結果が得られているときには、そのままルーチンを抜ける。
【０３６６】
また、上記ステップS1においてＦCATEND＝０で、本暖機サイクルにおいて未だ触媒の劣化診断が終了していないときにはステップS2へ進み、ステップS2，S3で、運転状態に基づいて診断条件が成立するか否かを判断し、診断許可条件の非成立時、或いは診断中止条件の成立時には、図３４のステップS24へジャンプして、ステップS24〜S27で、それぞれ診断時間カウント値ＭＴＭＣＡＴ、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰ、及び、初回判別フラグＦINIをクリアし、更にステップS806で、診断条件成立時において吸入空気量ＱＡを積算した吸入空気量積算値ＳＱＡをクリアして（ＳＱＡ←０）、ルーチンを抜ける。
【０３６７】
一方、ステップS2で診断許可条件が成立し、且つステップS3で診断中止条件の非成立時には、ステップS4へ進み、診断時間カウント値ＭＴＭＣＡＴをカウントアップし、ステップS801で、吸入空気量センサ２５による吸入空気量ＱＡを積算する（ＳＱＡ←ＳＱＡ＋ＱＡ）。
【０３６８】
そして、ステップS5で、初回判別フラグＦINIを参照し、ＦINI＝０の触媒劣化診断の初回ルーチン実行時には、ステップS6へ進み、初回判別フラグＦINIをセットし、次回に備えステップS7，S8で、それぞれ現在のＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2n，ＲＶＯ2nを読込み、この読込み値ＦＶＯ2n，ＲＶＯ2nを、前回すなわち本ルーチンの実行周期により定まる所定時間前（５０msec前）のＦＯ2センサ出力電圧ＦＶＯ2n-1，ＲＯ2センサ出力電圧ＲＶＯ2n-1としてルーチンを抜ける。
【０３６９】
また、上記ステップS5においてＦINI＝１で、診断条件が成立中での２回目以降のルーチン実行時には、ステップS5からステップS9へ進み、ステップS9〜S12の処理により各積算値ＦＤＳＶＰ，ＲＤＳＶＰを算出する。
【０３７０】
その後、ステップS13へ進み、上記診断時間カウント値ＭＴＭＣＡＴを設定値ＴＭＣＡＴと比較し、ＭＴＭＣＡＴ＜ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達していないときには、上記ステップS7，S8を経て、ルーチンを抜ける。
【０３７１】
一方、上記ステップS13においてＭＴＭＣＡＴ≧ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達したとき、すなわち、エンジン運転状態が予め設定された診断領域に設定時間以上係属したとき、図３４のステップS14へ進み、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴを算出する（ＣＨＡＮＴ←ＲＤＳＶＰ／ＦＤＳＶＰ）。
【０３７２】
そして、ステップS802で、上述のＦＯ2センサ応答劣化診断ルーチンによりバックアップＲＡＭ４４にストアされた上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを読み出し、続くステップS803で、上記ステップS801において積算した吸入空気量積算値ＳＱＡを、上記診断時間カウント値ＭＴＭＣＡＴにより除算して診断条件成立時における平均吸入空気量ＣＡＴＡＶＱを算出する（ＣＡＴＡＶＱ←ＳＱＡ／ＭＴＭＣＡＴ）。
【０３７３】
ここで、上記診断時間カウント値ＭＴＭＣＡＴは、診断条件の成立時に本ルーチンの実行毎にカウントアップされ、且つこのとき、上記吸入空気量ＱＡが吸入空気量積算値ＳＱＡに積算される。従って、上記診断時間カウント値ＭＴＭＣＡＴは吸入空気量ＱＡのサンプリング回数を表し、上記吸入空気量積算値ＳＱＡを該診断時間カウント値ＭＴＭＣＡＴにより除算することで、診断条件成立時における平均吸入空気量ＣＡＴＡＶＱを得ることができる。
【０３７４】
そして、ステップS804へ進み、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭ及び平均吸入空気量ＣＡＴＡＶＱに基づいて触媒劣化判定値テーブルを補間計算付きで参照して触媒が劣化したと見なし得る比率値としての触媒劣化判定値ＨＣＨＡＮＴを設定する。
【０３７５】
この触媒劣化判定値ＨＣＨＡＮＴは、予め実験或いはシミュレーション等によりＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと診断条件成立時における平均吸入空気量ＣＡＴＡＶＱとによる領域毎に、ＦＯ2センサ３０の応答劣化および吸入空気量の増加に伴う上記積算値比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）の増加分を求め、この積算値比ＣＨＡＮＴの増加分に対応して触媒劣化と見なし得る比率値を、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭ及び平均吸入空気量ＣＡＴＡＶＱをパラメータとする２次元の触媒劣化判定値テーブルとして設定し（図３５参照）、ＲＯＭ４２の一連のアドレスにメモリされているものである。
【０３７６】
ここで、上記触媒劣化判定値テーブルには、ＦＯ2センサ３０の応答劣化の進行に伴いＦＯ2センサ応答劣化判定値Ｏ2ＲＴＭが増加し、且つ、吸入空気量が増加するほど、これに伴って上記積算値比ＣＨＡＮＴが増加するため、このＦＯ2センサ３０の応答劣化および吸入空気量の増加による積算値比ＣＨＡＮＴの増加分に対応して、増大関数的な値の触媒劣化判定値ＨＣＨＡＮＴが格納されている。従って、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが長くＦＯ2センサ３０の応答劣化が進行し、且つ、上記平均吸入空気量ＣＡＴＡＶＱが増加するほど、上記触媒劣化判定値ＨＣＨＡＮＴは大きい値に設定される。
【０３７７】
そして、ステップS805で、上記積算値比ＣＨＡＮＴを、上記ステップS804において設定した触媒劣化判定値ＨＣＨＡＮＴと比較することで、触媒の劣化を診断する。
【０３７８】
ここで、上述のように、触媒の劣化度合いが同一状態の下でも、エンジン負荷が増加するほど、上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの増加割合が増し、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）は、図３６に破線で示す低負荷走行時に対し、同図に実線で示す高負荷走行時のように、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが長くＦＯ2センサ３０の応答劣化が進行し、且つ、エンジン負荷が大きいほど、大きい値となる。
【０３７９】
これに対応して、本実施の形態では、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと診断条件成立時における平均吸入空気量ＣＡＴＡＶＱとに基づいて触媒の劣化を判定するための触媒劣化判定値ＨＣＨＡＮＴを設定する。そして、この触媒劣化判定値ＨＣＨＡＮＴは、ＦＯ2センサ３０の応答劣化の進行に応じＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが増加し上記積算値比ＣＨＡＮＴが増加するに従い、これに対応して増加され、且つ、平均吸入空気量ＣＡＴＡＶＱすなわちエンジン負荷が増大し、図３６に破線で示す低負荷走行時の積算値比ＣＨＡＮＴに対して、同図に実線で示すように高負荷走行時の積算値比ＣＨＡＮＴが増加すると、これに伴って、同図に２点鎖線で示す低負荷走行時対応の状態から一点鎖線で示す高負荷走行時対応の状態に増加設定される。
【０３８０】
従って、触媒の劣化度合いが同一状態の下では、図３６に示すように、エンジン負荷の相違に係わらず上記積算値比ＣＨＡＮＴと触媒劣化判定値ＨＣＨＡＮＴとの間隔Ａが略同一となり、触媒劣化診断時にエンジン負荷が相違しても、誤診断を生じることなく、常に正確に触媒劣化診断を行うことが可能となる。
【０３８１】
すなわち、ＦＯ2センサ３０の応答劣化の進行度合い、及びエンジン負荷に応じて変化する積算値比ＣＨＡＮＴに対し、このＦＯ2センサ３０の応答劣化およびエンジン負荷による積算値ＣＨＡＮＴの変化に対応して的確に触媒劣化判定値ＨＣＨＡＮＴを設定することが可能となる。従って、ＦＯ2センサ３０に応答劣化が生じたり、診断時においてエンジン負荷が相違しても正確な触媒劣化診断結果を得ることができ、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭのみをパラメータとして触媒劣化判定値ＨＣＨＡＮＴを設定する上記実施の第６形態に対し、更に触媒劣化診断精度を向上することが可能となる。
【０３８２】
そして、上記ステップS805においてＣＨＡＮＴ＜ＨＣＨＡＮＴのときには、触媒が劣化しておらず正常状態（触媒劣化なし）と判断して、ステップS16へ進み、ステップS16，S17で、それぞれバックアップＲＡＭ４４の所定アドレスにストアされる第１回目，第２回目触媒ＮＧフラグＦCATNG1，ＦCATNG2をクリアし、ステップS22で、上記第１回目，第２回目触媒ＮＧフラグＦCATNG1，ＦCATNG2による各データをモニタ用データとしてセットし、ステップS23で、触媒劣化診断終了フラグＦCATENDをセットして、上記ステップS24〜S27，S806を経て、ルーチンを抜ける。
【０３８３】
一方、上記ステップS805においてＣＨＡＮＴ≧ＨＣＨＡＮＴで、上記積算値比ＣＨＡＮＴが触媒劣化判定値ＨＣＨＡＮＴ以上のときには、触媒が劣化した（触媒劣化あり）と判断して、ステップS18へ進み、第１回目触媒ＮＧフラグＦCATNG1を参照する。
【０３８４】
そして、ＦCATNG1＝０で、触媒劣化と判定した初回のときには、ステップS19へ進み、第１回目触媒ＮＧフラグＦCATNG1をセットし、また、上記ステップS18においてＦCATNG1＝１のときには、ステップS20へ進み、２回目触媒ＮＧフラグＦCATNG2をセットして、ステップS21で、警告処理を行い、上記ステップS22〜S27，S806を経て、ルーチンを抜ける。
【０３８５】
尚、本実施の形態では、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を算出し、この積算値比ＣＨＡＮＴをＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭ及び診断条件成立時における平均吸入空気量ＣＡＴＡＶＱに基づいて設定した触媒劣化判定値ＨＣＨＡＮＴと比較することで触媒の劣化を診断しているが、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰに対するＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰの比ＦＤＳＶＰ／ＲＤＳＶＰを算出し、この積算値比ＦＤＳＶＰ／ＲＤＳＶＰにより触媒の劣化を判断するようにしてもよい。この場合、ＦＤＳＶＰ／ＲＤＳＶＰ≦１／ＨＣＨＡＮＴのとき、触媒の劣化と診断する。また、１／ＨＣＨＡＮＴをＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと平均吸入空気量ＣＡＴＡＶＱとをパラメータとするテーブルとして設定してもよいことは勿論である。
【０３８６】
また、本実施の形態では、エンジン負荷の一例として吸入空気量を用いているが、本発明はこれに限定されず、エンジン負荷を表すものであれば良く、吸入空気量に代えて、スロットル開度、スロットル弁下流の吸気管圧力、或いは、上記吸入空気量ＱＡとエンジン回転数ＮEとにより算出され基本燃料噴射量を定める基本燃料噴射パルス幅Ｔｐ（＝Ｋ×ＱＡ／ＮE；Ｋはインジェクタ特性補正定数）等を用いるようにしてもよい。
【０３８７】
以上のように、本実施の形態では、ＦＯ2センサ３０の応答劣化の進行度合いを表すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと共に、診断条件成立時におけるエンジン負荷平均値として平均吸入空気量ＣＡＴＡＶＱを採用し、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと平均吸入空気量ＣＡＴＡＶＱとに基づいてテーブル参照により触媒劣化判定値ＨＣＨＡＮＴを設定するため、ＦＯ2センサ３０の応答劣化およびエンジン負荷の相違による上記積算値比ＣＨＡＮＴの変化に対応して的確な触媒劣化判定値ＨＣＨＡＮＴを設定することが可能となり、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を上記触媒劣化判定値ＨＣＨＡＮＴと比較することで、ＦＯ2センサの３０の応答劣化に起因して上記積算値比ＣＨＡＮＴが増加することによる触媒劣化の誤診断を確実に防止することができるのは勿論のこと、触媒劣化診断時にエンジン負荷が相違して上記積算値比ＣＨＡＮＴが変化することによる誤診断をも確実に防止することが可能となる。
【０３８８】
従って、上記実施の各形態に対し、本形態では、触媒劣化診断可能領域をより拡大することが可能となり、市場（ユーザによる使用状態下）での診断頻度を低下することなく更に精度の高い触媒劣化診断を行うことが可能となる。
【０３８９】
尚、上記実施の第２形態、或いは第３形態に、本実施の形態における触媒劣化判定値設定処理を組み込み、各Ｏ2センサ３０，３１の電圧劣化を補正すると共に、ＦＯ2センサ３０の応答劣化及びエンジン負荷の相違に伴う誤診断を防止し、触媒に対する劣化診断精度を更により向上することが可能である。
【０３９０】
ここで、上記実施の第２形態に、本実施の形態における触媒劣化判定値設定処理を組み込む場合には、本形態のステップS801による処理を、図１１のステップS4とステップS5との間に挿入し、また、本形態のステップS802〜S804による処理を、図５のステップS14とステップS15との間に挿入し、ステップS15に代え、本形態のステップS805を採用し、更に、本形態のステップS806を図５のステップS24以降に挿入する。
【０３９１】
また、上記実施の第３形態に、本実施の形態における触媒劣化判定値設定処理を組み込む場合には、本形態のステップS801による処理を、図１３のステップS4とステップS5との間に挿入し、また、本形態のステップS802〜S804による処理を、図１３のステップS303と、図１４のステップS15との間に挿入し、ステップS15に代えて、本形態のステップS805を採用し、更に、本形態のステップS806を図１４のステップS24以降に挿入する。
【０３９２】
次に、本発明の実施の第９形態を、図３７及び図３８に基づいて説明する。
【０３９３】
上記実施の第８形態においては、ＦＯ2センサ３０の応答劣化の進行度合いを表すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと共に、診断条件成立時におけるエンジン負荷平均値として平均吸入空気量ＣＡＴＡＶＱを採用し、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと平均吸入空気量ＣＡＴＡＶＱとに基づいてテーブル参照により触媒劣化判定値ＨＣＨＡＮＴを設定しているが、本実施の形態においては、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと上記平均吸入空気量ＣＡＴＡＶＱとに基づいて算出した補正係数ＫＯ2Ｒによって、予め設定された前記触媒劣化判定値ＮＧＣＨＴを補正して補正触媒劣化判定値ＳＣＨＡＮＴを算出する（ＳＣＨＡＮＴ←ＮＧＣＨＴ×ＫＯ2Ｒ）。すなわち、ＦＯ2センサ３０の応答劣化に起因する上記積算値比の増加分、及び触媒劣化診断時のエンジン負荷の相違による上記積算値の変化分に対応して触媒劣化判定値ＮＧＣＨＴを補正し、上記積算値比ＣＨＡＮＴを補正触媒劣化判定値ＳＣＨＡＮＴと比較して触媒の劣化を診断することで、上記実施の第８形態と同様に、ＦＯ2センサ３０に応答劣化が生じたり、診断時においてエンジン負荷が相違しても正確な触媒劣化診断結果を得る。
【０３９４】
すなわち、本実施の形態においては、前記ＥＣＵ４０は、請求項５記載の発明に係るフロント空燃比センサ応答劣化診断値算出手段、診断条件判別手段、空燃比センサ出力電圧変化量積算手段、積算値比算出手段、エンジン負荷平均値算出手段、補正係数算出手段、触媒劣化判定値補正手段、診断手段としての機能を実現する。
【０３９５】
具体的には、本実施の形態では、上記実施の第８形態の図３４に示す触媒劣化診断ルーチンに代えて、図３７の触媒劣化診断ルーチンを採用する。尚、触媒劣化診断ルーチンの前半については、上記実施の第８形態の図３３のルーチンをそのまま採用する。また、上記各実施の形態と同一のステップについては、同一の符号を付して、その詳細説明は省略する。
【０３９６】
本形態の触媒劣化診断ルーチンについて説明すると、図３３の触媒劣化診断ルーチンにおいて、ステップS1で、触媒劣化診断終了フラグＦCATENDを参照し、ＦCATEND＝１で既に本暖機サイクルにおいて触媒の劣化診断結果が得られているときには、そのままルーチンを抜ける。
【０３９７】
また、上記ステップS1においてＦCATEND＝０で、本暖機サイクルにおいて未だ触媒の劣化診断が終了していないときにはステップS2へ進み、ステップS2，S3で、運転状態に基づいて診断条件が成立するか否かを判断し、診断許可条件の非成立時、或いは診断中止条件の成立時には、図３７のステップS24へジャンプして、ステップS24〜S27，S806で、それぞれ診断時間カウント値ＭＴＭＣＡＴ、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰ、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰ、初回判別フラグＦINI、及び吸入空気量積算値ＳＱＡをクリアして、ルーチンを抜ける。
【０３９８】
一方、ステップS2で診断許可条件が成立し、且つステップS3で診断中止条件の非成立時には、ステップS4へ進み、診断時間カウント値ＭＴＭＣＡＴをカウントアップし、続くステップS801で、吸入空気量積算値ＳＱＡに吸入空気量ＱＡを積算する。
【０３９９】
そして、ステップS5で、初回判別フラグＦINIを参照し、ＦINI＝０の触媒劣化診断の初回ルーチン実行時には、ステップS6へ進み、初回判別フラグＦINIをセットし、次回に備えステップS7，S8で、それぞれ現在のＦＯ2センサ３０，ＲＯ2センサ３１の出力電圧ＦＶＯ2n，ＲＶＯ2nを読込み、この読込み値ＦＶＯ2n，ＲＶＯ2nを、前回すなわち本ルーチンの実行周期により定まる所定時間前（５０msec前）のＦＯ2センサ出力電圧ＦＶＯ2n-1，ＲＯ2センサ出力電圧ＲＶＯ2n-1とし、ルーチンを抜ける。
【０４００】
また、上記ステップS5においてＦINI＝１で、診断条件が成立中での２回目以降のルーチン実行時には、ステップS5からステップS9へ進み、ステップS9〜S12の処理により各積算値ＦＤＳＶＰ，ＲＤＳＶＰを算出する。
【０４０１】
その後、ステップS13へ進み、上記診断時間カウント値ＭＴＭＣＡＴを設定値ＴＭＣＡＴと比較し、ＭＴＭＣＡＴ＜ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達していないときには、上記ステップS7、S8を経て、ルーチンを抜ける。
【０４０２】
一方、上記ステップS13においてＭＴＭＣＡＴ≧ＴＭＣＡＴで、診断条件の成立下において触媒劣化診断の開始後、診断時間が上記設定値ＴＭＣＡＴにより定まる設定時間に達したとき、すなわち、エンジン運転状態が予め設定された診断領域に設定時間以上係属したとき、図３７のステップS14へ進み、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴを算出する（ＣＨＡＮＴ←ＲＤＳＶＰ／ＦＤＳＶＰ）。
【０４０３】
そして、ステップS802で、上述のＦＯ2センサ応答劣化診断ルーチンによりバックアップＲＡＭ４４にストアされた上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭを読み出し、続くステップS803で、上記ステップS801において積算した吸入空気量積算値ＳＱＡを、上記診断時間カウント値ＭＴＭＣＡＴにより除算して診断条件成立時における平均吸入空気量ＣＡＴＡＶＱを算出する（ＣＡＴＡＶＱ←ＳＱＡ／ＭＴＭＣＡＴ）。
【０４０４】
そして、ステップS901へ進み、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭ、平均吸入空気量ＣＡＴＡＶＱ、予めＲＯＭ４２に固定データとしてメモりされているＦＯ2センサ応答劣化補正基準値Ｏ2ＲＡ及びエンジン負荷補正基準値Ｏ2ＲＢとに基づいて応答劣化補正係数ＫＯ2Ｒを算出する（ＫＯ2Ｒ←（Ｏ2ＲＴＭ×ＣＡＴＡＶＱ）／（Ｏ2ＲＡ×Ｏ2ＲＢ）＋１）。
【０４０５】
本形態における上記ＦＯ2センサ応答劣化補正基準値Ｏ2ＲＡは、触媒が劣化したと見なし得る比率値として予め設定される前記触媒劣化判定値ＮＧＣＨＴとの兼ね合いによって定まる固定値であり、ＦＯ2センサ３０の応答劣化の進行度合いを表す上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭに基づいて、一義的な値の上記触媒劣化判定値ＮＧＣＨＴをＦＯ2センサ３０の応答劣化による積算値比ＣＨＡＮＴの増加分に対応して補償するに適正な応答劣化補正係数ＫＯ2Ｒを得る最適値を、予め実験或いはシミュレーション等によって求め、ＲＯＭ４２に固定データとしてメモりされるものである。
【０４０６】
また、上記エンジン負荷補正基準値Ｏ2ＲＢは、触媒劣化診断時におけるエンジン負荷平均値の一例としての上記平均吸入空気量ＣＡＴＡＶＱに基づいて、一義的な値の上記触媒劣化判定値ＮＧＣＨＴを触媒劣化診断時のエンジン負荷の相違による積算値比ＣＨＡＮＴの変化分に対応して、これを補償するに適正な応答劣化補正係数ＫＯ2Ｒを得る最適値を、予め実験或いはシミュレーション等によって求め、ＲＯＭ４２に固定データとしてメモりされるものである。
【０４０７】
従って、上記応答劣化補正係数ＫＯ2Ｒは、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが長くＦＯ2センサ３０の応答劣化が進行し、且つ、上記平均吸入空気量ＣＡＴＡＶＱが増加するほど、大きい値に設定される。
【０４０８】
次いで、ステップS902へ進み、予め設定されている一義的な値の上記触媒劣化判定値ＮＧＣＨＴに、上記ステップS901において算出した応答劣化補正係数ＫＯ2Ｒを乗算して、該触媒劣化判定値ＮＧＣＨＴを補正し、補正触媒劣化判定値ＳＣＨＡＮＴを算出する（ＳＣＨＡＮＴ←ＮＧＣＨＴ×ＫＯ2Ｒ）。
【０４０９】
ここで、上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭ及び平均吸入空気量ＣＡＴＡＶＱに基づいて算出された応答劣化補正係数ＫＯ2Ｒにより、ＦＯ2センサ３０の応答劣化の進行度合い、及び触媒劣化診断時のエンジン負荷に対応して触媒劣化判定値ＮＧＣＨＴが補正される。上記ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが長くＦＯ2センサ３０の応答劣化が進行しているほど、且つ、平均吸入空気量ＣＡＴＡＶＱが高く触媒劣化診断時にエンジン負荷が高いほど、上記応答劣化補正係数ＫＯ2Ｒが大きい値に設定されるため、この応答劣化補正係数ＫＯ2Ｒによって上記触媒劣化判定値ＮＧＣＨＴが、ＦＯ2センサ３０の応答劣化の進行、及びエンジン負荷の増大に伴い増加補正され、補正触媒劣化判定値ＳＣＨＡＮＴは、大きい値となる。
【０４１０】
すなわち、本実施の形態では、ＦＯ2センサ３０の応答劣化の進行に伴いＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが増加するほど、且つ、触媒劣化診断時においてエンジン負荷が高負荷であるほど、これに伴って上記積算値比ＣＨＡＮＴが増加するため、このＦＯ2センサ３０の応答劣化による積算値比ＣＨＡＮＴの増加分、及び、触媒劣化診断時におけるエンジン負荷の相違による積算値比ＣＨＡＮＴの変化分に対応して、上記応答劣化補正係数ＫＯ2Ｒにより触媒劣化判定値ＮＧＣＨＴを補正するのである。
【０４１１】
そして、ステップS903で、上記積算値比ＣＨＡＮＴを、上記ステップS902において算出した補正触媒劣化判定値ＳＣＨＡＮＴと比較することで、触媒の劣化を診断する。
【０４１２】
ここで、上述のように、触媒の劣化度合いが同一状態の下でも、エンジン負荷が増加するほど、上記ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの増加割合が増し、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）は、図３８に破線で示す低負荷走行時に対し、同図に実線で示す高負荷走行時のように、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが長くＦＯ2センサ３０の応答劣化が進行し、且つ、エンジン負荷が大きいほど、大きい値となる。
【０４１３】
これに対応して、本実施の形態では、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭ及び平均吸入空気量ＣＡＴＡＶＱに基づいて設定した応答劣化補正係数ＫＯ2Ｒにより触媒の劣化を判定するための触媒劣化判定値ＮＧＣＨＴを補正し、補正触媒劣化判定値ＳＣＨＡＮＴ（＝ＮＧＣＨＴ×ＫＯ2Ｒ）を算出する。そして、この補正触媒劣化判定値ＳＣＨＡＮＴは、ＦＯ2センサ３０の応答劣化の進行に応じＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭが増加し上記積算値比ＣＨＡＮＴが増加するに従い、これに対応して増加され、且つ、平均吸入空気量ＣＡＴＡＶＱすなわちエンジン負荷が増大し、図３８に破線で示す低負荷走行時の積算値比ＣＨＡＮＴに対して、同図に実線で示すように高負荷走行時の積算値比ＣＨＡＮＴが増加すると、これに対応して、同図に２点鎖線で示す低負荷走行時対応の状態から一点鎖線で示す高負荷走行時対応の状態に増加されるため、上記実施の第８形態と同様に、ＦＯ2センサの３０の応答劣化に起因して上記積算値比ＣＨＡＮＴが増加することによる触媒劣化の誤診断を確実に防止することができると共に、触媒劣化診断時にエンジン負荷が相違して上記積算値比ＣＨＡＮＴが変化することによる誤診断をも確実に防止することが可能となる。
【０４１４】
そして、上記ステップS903においてＣＨＡＮＴ＜ＳＣＨＡＮＴのときには、触媒が劣化しておらず正常状態（触媒劣化なし）と判断して、ステップS16へ進み、ステップS16，S17で、それぞれバックアップＲＡＭ４４の所定アドレスにストアされる第１回目，第２回目触媒ＮＧフラグＦCATNG1，ＦCATNG2をクリアし、ステップS22で、上記第１回目，第２回目触媒ＮＧフラグＦCATNG1，ＦCATNG2による各データをモニタ用データとしてセットし、ステップS23で、触媒劣化診断終了フラグＦCATENDをセットして、上記ステップS24〜S27，S806を経て、ルーチンを抜ける。
【０４１５】
一方、上記ステップS903においてＣＨＡＮＴ≧ＳＣＨＡＮＴで、上記積算値比ＣＨＡＮＴが補正触媒劣化判定値ＳＣＨＡＮＴ以上のときには、触媒が劣化した（触媒劣化あり）と判断して、ステップS18へ進み、第１回目触媒ＮＧフラグＦCATNG1を参照する。
【０４１６】
そして、ＦCATNG1＝０で、触媒劣化と判定した初回のときには、ステップS19へ進み、第１回目触媒ＮＧフラグＦCATNG1をセットし、また、上記ステップS18においてＦCATNG1＝１のときには、ステップS20へ進み、２回目触媒ＮＧフラグＦCATNG2をセットして、ステップS21で、警告処理を行い、上記ステップS22〜S27，S806を経て、ルーチンを抜ける。
【０４１７】
尚、本実施の形態では、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を算出し、この積算値比ＣＨＡＮＴを補正触媒劣化判定値ＳＣＨＡＮＴと比較することで触媒の劣化を診断しているが、ＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰに対するＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰの比ＦＤＳＶＰ／ＲＤＳＶＰを算出し、この積算値比ＦＤＳＶＰ／ＲＤＳＶＰにより触媒の劣化を判断するようにしてもよい。この場合、ＦＤＳＶＰ／ＲＤＳＶＰ≦１／ＳＣＨＡＮＴのとき、触媒の劣化と診断する。
【０４１８】
以上のように、本実施の形態では、ＦＯ2センサ３０の応答劣化の進行度合いを表すＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと共に、診断条件成立時におけるエンジン負荷平均値として平均吸入空気量ＣＡＴＡＶＱを採用し、ＦＯ2センサ応答劣化診断値Ｏ2ＲＴＭと平均吸入空気量ＣＡＴＡＶＱとに基づいて算出した応答劣化補正係数ＫＯ2Ｒによって上記触媒劣化判定値ＮＧＣＨＴを補正して補正触媒劣化判定値ＳＣＨＡＮＴを設定するため、ＦＯ2センサ３０の応答劣化およびエンジン負荷の相違による上記積算値比ＣＨＡＮＴの変化に対応して的確な補正触媒劣化判定値ＳＣＨＡＮＴを設定することが可能となり、ＦＯ2センサ出力電圧変化量積算値ＦＤＳＶＰに対するＲＯ2センサ出力電圧変化量積算値ＲＤＳＶＰの比ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）を上記補正触媒劣化判定値ＳＣＨＡＮＴと比較することで、ＦＯ2センサの３０の応答劣化に起因して上記積算値比ＣＨＡＮＴが増加することによる触媒劣化の誤診断を確実に防止することができるのは勿論のこと、触媒劣化診断時にエンジン負荷が相違して上記積算値比ＣＨＡＮＴが変化することによる誤診断をも確実に防止することが可能となる。
【０４１９】
従って、上記実施の第８形態と同様に、触媒劣化診断可能領域をより拡大することが可能となり、市場（ユーザによる使用状態下）での診断頻度を低下することなく更に精度の高い触媒劣化診断を行うことが可能となる。
【０４２０】
また、上記実施の第８形態に対し、本実施の形態では、触媒劣化判定値ＨＣＨＡＮＴを設定するための触媒劣化判定値テーブルを必要としないため、触媒劣化診断処理に係るメモリ（ＲＯＭ４２）の使用容量を低減することが可能となる。
【０４２１】
尚、上記実施の第２形態、或いは第３形態に、本実施の形態における触媒劣化判定値補正処理を組み込み、各Ｏ2センサ３０，３１の電圧劣化を補正すると共に、ＦＯ2センサ３０の応答劣化及びエンジン負荷の相違に伴う誤診断を防止することが可能である。
【０４２２】
上記実施の第２形態に、本実施の形態における触媒劣化判定値補正処理を組み込む場合には、本形態のステップS801による処理を、図１１のステップS4とステップS5との間に挿入し、また、本形態のステップS802〜S902による処理を、図５のステップS14とステップS15との間に挿入し、ステップS15に代え、本形態のステップS903を採用し、更に、本形態のステップS806を図５のステップS24以降に挿入する。
【０４２３】
また、上記実施の第３形態に、本実施の形態における触媒劣化判定値補正処理を組み込む場合には、本形態のステップS801による処理を、図１３のステップS4とステップS5との間に挿入し、また、本形態のステップS802〜S902による処理を、図１３のステップS303と、図１４のステップS15との間に挿入し、ステップS15に代えて、本形態のステップS903を採用し、更に、本形態のステップS806を図１４のステップS24以降に挿入する。
【０４２４】
さらに、本実施の形態では、エンジン負荷の一例として吸入空気量を用いているが、本発明はこれに限定されず、エンジン負荷を表すものであれば良く、吸入空気量に代えて、スロットル開度、スロットル弁下流の吸気管圧力、或いは、上記吸入空気量ＱＡとエンジン回転数ＮEとにより算出され基本燃料噴射量を定める基本燃料噴射パルス幅Ｔｐ（＝Ｋ×ＱＡ／ＮE；Ｋはインジェクタ特性補正定数）等を用いるようにしてもよい。
【０４３５】
【発明の効果】
請求項１記載の発明によれば、運転状態に基づいて診断条件を判断し、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値と、リア空燃比センサの出力電圧の変化量の絶対値とを各々積算する。そして、所定の条件成立時にフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間に基づいて算出されるフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を採用し、上記両積算値による比を、上記フロント空燃比センサ応答劣化診断値に基づいて算出した補正係数によって補正することで、フロント空燃比センサの応答劣化に起因する上記積算値比の変化分を補償し、この補正後の積算値比を所定値と比較して触媒の劣化を診断するので、フロント空燃比センサに応答劣化が生じても、触媒劣化診断を中止することなく実現でき、触媒劣化診断可能領域を拡大することが可能となり、市場（ユーザによる使用状態下）での診断頻度を低下することなく精度の高い触媒劣化診断を行うことができる。
【０４３６】
また、強制的に空燃比を変動させることなくフロント空燃比センサの応答劣化を判断することができ、このフロント空燃比センサの応答劣化を補償して触媒劣化診断を行うので、空燃比の強制変動による排気エミッションの悪化を生じることなく実現できる。
【０４３７】
請求項２記載の発明によれば、運転状態に基づいて診断条件を判断し、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値と、リア空燃比センサの出力電圧の変化量の絶対値とを各々積算する。そして、所定の条件成立時にフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間に基づいて算出されるフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を採用し、このフロント空燃比センサ応答劣化診断値に基づいてテーブル参照により触媒劣化を判定するための触媒劣化判定値を設定する。すなわち、フロント空燃比センサの応答劣化に起因する上記両積算値の比の変化分に対応して触媒の劣化を判定するための触媒劣化判定値を設定し、上記積算値比を該触媒劣化判定値と比較して触媒の劣化を診断するので、上記請求項１記載の発明と同様に、フロント空燃比センサに応答劣化が生じても、触媒劣化診断を中止することなく実現でき、触媒劣化診断可能領域を拡大することが可能となり、市場（ユーザによる使用状態下）での診断頻度を低下することなく精度の高い触媒劣化診断を行うことができ、且つ、空燃比の強制変動による排気エミッションの悪化を生じることなく実現できる。
【０４３８】
請求項３記載の発明によれば、運転状態に基づいて診断条件を判断し、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値と、リア空燃比センサの出力電圧の変化量の絶対値とを各々積算する。そして、所定の条件成立時にフロント空燃比センサ出力電圧がリッチとリーンとを交互に反転する応答時間に基づいて算出されるフロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を採用し、このフロント空燃比センサ応答劣化診断値に基づいて算出した補正係数によって予め設定された触媒劣化判定値を補正する。すなわち、フロント空燃比センサの応答劣化に起因する積算値比の変化分に対応して触媒劣化判定値を補正し、上記両積算値による比を補正後の触媒劣化判定値と比較して触媒の劣化を診断するので、上記請求項１記載の発明と同様に、フロント空燃比センサに応答劣化が生じても、触媒劣化診断を中止することなく実現でき、触媒劣化診断可能領域を拡大することが可能となり、市場（ユーザによる使用状態下）での診断頻度を低下することなく精度の高い触媒劣化診断を行うことができ、且つ、空燃比の強制変動による排気エミッションの悪化を生じることなく実現できる。
【０４３９】
また、上記請求項２記載の発明に対し、触媒劣化判定値を設定するためのテーブルを必要としないため、触媒劣化診断処理に係るメモリの使用容量を低減することができる効果を有する。
【０４４０】
請求項４記載の発明によれば、運転状態に基づいて診断条件を判断し、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値と、リア空燃比センサの出力電圧の変化量の絶対値とを各々積算する。そして、フロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を採用すると共に、診断条件成立時におけるエンジン負荷の平均値を算出し、このエンジン負荷平均値と上記フロント空燃比センサ応答劣化診断値とに基づいてテーブル参照により触媒劣化を判定するための触媒劣化判定値を設定する。すなわち、フロント空燃比センサの応答劣化およびエンジン負荷に応じて変化する上記両積算値の比に対応して触媒の劣化を判定するための触媒劣化判定値を設定し、上記積算値比を該触媒劣化判定値と比較して触媒の劣化を診断するので、フロント空燃比センサの応答劣化およびエンジン負荷の相違による上記積算値比の変化に対応して的確な触媒劣化判定値を設定することが可能となり、フロント空燃比センサの応答劣化に起因して上記積算値比が変化することによる触媒劣化の誤診断を確実に防止することができるのは勿論のこと、触媒劣化診断時にエンジン負荷が相違して上記積算値比が変化することによる誤診断をも確実に防止することができる。
【０４４１】
従って、上記請求項１ないし請求項３記載の発明に対し、触媒劣化診断可能領域をより拡大することが可能となり、市場（ユーザによる使用状態下）での診断頻度を低下することなく更に精度の高い触媒劣化診断を行うことができる。
【０４４２】
請求項５記載の発明によれば、運転状態に基づいて診断条件を判断し、診断条件の成立時、所定時間毎に上記フロント空燃比センサの出力電圧の変化量の絶対値と、リア空燃比センサの出力電圧の変化量の絶対値とを各々積算する。そして、フロント空燃比センサの応答劣化の進行度合いを表すフロント空燃比センサ応答劣化診断値を採用すると共に、診断条件成立時におけるエンジン負荷の平均値を算出し、このエンジン負荷平均値と上記フロント空燃比センサ応答劣化診断値とに基づいて算出した補正係数によって予め設定された触媒劣化判定値を補正する。すなわち、フロント空燃比センサの応答劣化およびエンジン負荷に応じて変化する上記両積算値の比に対応して触媒の劣化を判定するための触媒劣化判定値を補正し、上記積算値比を補正後の触媒劣化判定値と比較して触媒の劣化を診断するので、上記請求項４記載の発明と同様に、フロント空燃比センサの応答劣化およびエンジン負荷の相違による上記積算値比の変化に対応して的確な触媒劣化判定値を設定することが可能となり、フロント空燃比センサの応答劣化に起因して上記積算値比が変化することによる触媒劣化の誤診断を確実に防止することができるのは勿論のこと、触媒劣化診断時にエンジン負荷が相違して上記積算値比が変化することによる誤診断をも確実に防止することができ、触媒劣化診断可能領域をより拡大することが可能となり、市場（ユーザによる使用状態下）での診断頻度を低下することなく更に精度の高い触媒劣化診断を行うことができる。
【０４４３】
また、上記請求項４記載の発明に対し、触媒劣化判定値を設定するためのテーブルを必要としないため、触媒劣化診断処理に係るメモリの使用容量を低減することができる効果を有する。
【０４４４】
その際、請求項６記載の発明では、上記診断条件を判別するに際し、診断条件を判断するための運転状態を検出する各センサの出力値が正常で、上記各空燃比センサが共に活性状態、且つ空燃比フィードバック制御中であり、エンジン回転数及びエンジン負荷が予め設定された範囲内にあるとき、診断許可条件成立と判断し、又、エンジン過渡運転時、或いは、触媒劣化診断中に失火を検出した場合に、診断中止条件成立と判断する。そして、上記診断許可条件が成立し、且つ、上記診断中止条件が非成立のとき、診断条件の成立とするので、上記各請求項記載の発明の効果に加え、診断条件を判断するための運転状態を検出するセンサの異常、各空燃比センサの非活性、空燃比オープンループ制御によるリッチ或いはリーン空燃比、及び、エンジン回転数及びエンジン負荷が設定範囲外の高負荷高回転領域にあるときのリッチ空燃比に起因する触媒劣化診断の誤診断を未然に防止することができ、且つ、加減速等のエンジン過渡運転時における空燃比のリッチシフト或いはリーンシフト、及び、失火によるオーバリーンによって各空燃比センサの出力電圧が異常値を示すことに起因する触媒劣化診断の誤診断を未然に防止することができる効果を有する。
【０４４５】
また、請求項７記載の発明では、上記積算値比を算出するに際し、診断条件の成立下において設定時間以上係属したとき、上記リア空燃比センサ出力電圧変化量による積算値をフロント空燃比センサ出力電圧変化量による積算値により除算して積算値の比を算出するので、上記設定時間によって触媒の劣化状態がリア空燃比センサ出力電圧変化量積算値に確実に反映されるまでの時間が与えられる。また、触媒コンバータを構成する触媒の劣化が進行するに従い、触媒の酸素ストレージ効果が低下し、次第にリア空燃比センサ出力電圧波形がフロント空燃比センサ出力電圧波形に近似するため、触媒の劣化に伴いリア空燃比センサ出力電圧による積算値が増加し、リア空燃比センサ出力電圧変化量による積算値をフロント空燃比センサ出力電圧変化量による積算値により除算して算出した上記積算値比は、触媒が劣化するに従って増加する。従って、この積算値比によって、フロント空燃比センサとリア空燃比センサとの出力電圧波形の差、すなわち触媒の劣化を簡単且つ正確に捕捉することができる。そして、上記積算値比を触媒劣化を判定するための触媒劣化判定値と比較し、上記積算値比が触媒劣化判定値以上のとき、触媒の劣化と診断するので、触媒の劣化を簡素にして確実に診断することができる。
【図面の簡単な説明】
【図１】本発明の基本構成図
【図２】本発明の基本構成図（続き）
【図３】本発明の基本構成図（続き）
【図４】本発明の実施の第１形態に係り、触媒劣化診断ルーチンのフローチャート
【図５】同上、触媒劣化診断ルーチンのフローチャート（続き）
【図６】同上、Ｏ2センサの出力電圧と出力電圧変化量との関係を示すタイムチャート
【図７】同上、エンジンの全体概略図
【図８】同上、電子制御系の回路構成図
【図９】本発明の実施の第２形態に係り、Ｏ2センサが電圧劣化していないときのＯ2センサ出力電圧の波形と、電圧劣化を生じたときのＯ2センサ出力電圧波形を示すタイムチャート
【図１０】同上、触媒劣化と各Ｏ2センサの電圧劣化とによる各積算値ＦＤＳＶＰ，ＲＤＳＶＰ、及び積算値比ＣＨＡＮＴの大小関係、並びに触媒劣化診断結果の可否、及びその整合性についての関係を示す図表
【図１１】同上、触媒劣化診断ルーチンのフローチャート
【図１２】同上、Ｏ2センサ出力電圧劣化補正ルーチンのフローチャート
【図１３】本発明の実施の第３形態に係り、触媒劣化診断ルーチンのフローチャート
【図１４】同上、触媒劣化診断ルーチンのフローチャート（続き）
【図１５】同上、Ｐ−Ｐ値積算ルーチンのフローチャート
【図１６】同上、Ｏ2センサ電圧劣化補正ルーチンのフローチャート
【図１７】本発明の実施の第４形態に係り、Ｏ2センサが応答劣化していないときのＯ2センサ出力電圧の波形と、応答劣化を生じたときのＯ2センサ出力電圧波形を示すタイムチャート
【図１８】同上、ＦＯ2センサの応答劣化に伴うＦＯ2センサ出力電圧変化量積算値と、触媒劣化診断値としての積算値比との変化を示す説明図
【図１９】同上、触媒劣化診断ルーチンのフローチャート
【図２０】本発明の実施の第５形態に係り、ＦＯ2センサ応答劣化診断ルーチンのフローチャート
【図２１】同上、ＦＯ2センサ応答劣化診断ルーチンのフローチャート（続き）
【図２２】同上、ＦＯ2センサ応答劣化診断ルーチンのフローチャート（続き）
【図２３】同上、ＦＯ2センサ応答劣化診断ルーチンのフローチャート（続き）
【図２４】同上、触媒劣化診断ルーチンのフローチャート
【図２５】同上、ＦＯ2センサ出力電圧変化と各スライスレベルとの関係、各スライスレベル交差判別フラグ、各応答遅れ時間計測用カウント値、各応答時間積算値、及び各回数カウント値の関係を示すタイムチャート
【図２６】同上、ＦＯ2センサ応答劣化診断値に対する積算値比と、補正積算値比との関係を示す説明図
【図２７】本発明の実施の第６形態に係り、触媒劣化診断ルーチンのフローチャート
【図２８】同上、触媒劣化判定値テーブルの説明図
【図２９】同上、ＦＯ2センサ応答劣化診断値に対する積算値比及び触媒劣化判定値の関係を示す説明図
【図３０】本発明の実施の第７形態に係り、触媒劣化診断ルーチンのフローチャート
【図３１】同上、ＦＯ2センサ応答劣化診断値に対する積算値比及び触媒劣化判定値の関係を示す説明図
【図３２】本発明の実施の第８形態に係り、ＦＯ2センサ応答劣化診断値に対する低負荷走行時の積算値比と高負荷走行時の積算値比、及び触媒劣化判定値の関係を示す説明図
【図３３】同上、触媒劣化診断ルーチンのフローチャート
【図３４】同上、触媒劣化診断ルーチンのフローチャート（続き）
【図３５】同上、触媒劣化判定値テーブルの説明図
【図３６】同上、ＦＯ2センサ応答劣化診断値に対する低負荷走行時の積算値比と高負荷走行時の積算値比、及び各積算値比に対応して設定される触媒劣化判定値の関係を示す説明図
【図３７】本発明の実施の第９形態に係り、触媒劣化診断ルーチンのフローチャート
【図３８】同上、ＦＯ2センサ応答劣化診断値に対する積算値比及び補正触媒劣化判定値の関係を示す説明図
【図３９】従来例に係り、ＦＯ2センサの出力電圧波形に対する触媒新品時のＲＯ2センサの出力電圧波形と、触媒劣化時のＲＯ2センサの出力電圧波形との関係を示すタイムチャート
【図４０】同上、Ｏ2センサ出力電圧とスライスレベルとの比較によるＯ2センサ出力電圧反転回数の計測状態を示すタイムチャート
【図４１】同上、リアＯ2センサの出力電圧ＲＶＯ2がリーンシフトした場合のリアＯ2センサ出力電圧反転回数の計測状態と、上側スライスレベルＲＨと下側スライスレベルＲＬとのヒステリシス幅を狭めた場合のリアＯ2センサ出力電圧反転回数の計測状態を示すタイムチャート
【図４２】同上、触媒の劣化進行過程でのリアＯ2センサ出力電圧波形を示すタイムチャート
【符号の説明】
１  エンジン
２１，２２  触媒コンバータ
３０  フロントＯ2センサ（ＦＯ2センサ；フロント空燃比センサ）
３１  リアＯ2センサ（ＲＯ2センサ；リア空燃比センサ）
４０  電子制御装置（診断条件判別手段、空燃比センサ出力電圧変化量積算手段、積算値比算出手段、診断手段、空燃比センサ出力電圧補正係数算出手段、空燃比センサ出力電圧補正手段、空燃比センサ補正出力電圧変化量積算手段、極大極小値積算手段、平均極大極小値算出手段、空燃比センサ出力電圧変化量積算値補正手段、診断中止手段、フロント空燃比センサ応答劣化診断値算出手段、補正係数算出手段、積算値比補正手段、触媒劣化判定値設定手段、触媒劣化判定値補正手段、エンジン負荷平均値算出手段）
ＦＶＯ2  ＦＯ2センサ出力電圧（フロント空燃比センサ出力電圧）
ＲＶＯ2  ＲＯ2センサ出力電圧（リア空燃比センサ出力電圧）
ＦＤＳＶＰ  ＦＯ2センサ出力電圧変化量積算値
ＲＤＳＶＰ  ＲＯ2センサ出力電圧変化量積算値
ＣＨＡＮＴ  積算値比
ＮＧＣＨＴ，ＨＣＨＡＮＴ  触媒劣化判定値（所定値）
ＢＶＰＰ  基準Ｐ−Ｐ値（空燃比センサ出力電圧の極大値と極小値との差に対応する基準値）
ＦＶＰＰ  ＦＯ2センサ出力電圧Ｐ−Ｐ値（フロント空燃比センサ出力電圧の極大値と極小値との差による実極大極小値）
ＲＶＰＰ  ＲＯ2センサ出力電圧Ｐ−Ｐ値（リア空燃比センサ出力電圧の極大値と極小値との差による実極大極小値）
ＦＫＶＰ  ＦＯ2センサ出力電圧補正係数（フロント空燃比センサ出力電圧補正係数）
ＲＫＶＰ  ＲＯ2センサ出力電圧補正係数（リア空燃比センサ出力電圧補正係数）
ＦＫＶＯ2  ＦＯ2センサ補正出力電圧（フロント空燃比センサ補正出力電圧）
ＲＫＶＯ2  ＲＯ2センサ補正出力電圧（リア空燃比センサ補正出力電圧）
ＦＳＶＰＰ  ＦＯ2センサＰ−Ｐ積算値（フロント空燃比センサの極大極小積算値）
ＲＳＶＰＰ  ＲＯ2センサＰ−Ｐ積算値（リア空燃比センサの極大極小積算値）
ＦＡＶＰＰ  ＦＯ2センサ平均Ｐ−Ｐ値（フロント空燃比センサの平均極大極小値）
ＲＡＶＰＰ  ＲＯ2センサ平均Ｐ−Ｐ値（リア空燃比センサの平均極大極小値）
ＦＫＤＳＶＰ  ＦＯ2センサ補正出力電圧変化量積算値（補正後の積算値）
ＲＫＤＳＶＰ  ＲＯ2センサ補正出力電圧変化量積算値（補正後の積算値）
ＦＳＶＣＡＮ  応答劣化判定値
Ｏ2ＲＴＭ  ＦＯ2センサ応答劣化診断値（フロント空燃比センサ応答劣化診断値）
ＫＯ2Ｒ  応答劣化補正係数（補正係数）
ＫＣＨＡＮＴ  補正積算値比（補正後の積算値比）
ＳＣＨＡＮＴ  補正触媒劣化判定値（補正後の触媒劣化判定値）
ＣＡＴＡＶＱ  平均吸入空気量（エンジン負荷の平均値）
【図１】
0004037485.tif 000002
【図２】
0004037485.tif 000003
【図３】
0004037485.tif 000004
【図４】
0004037485.tif 000005
【図５】
0004037485.tif 000006
【図６】
0004037485.tif 000007
【図７】
0004037485.tif 000008
【図８】
0004037485.tif 000009
【図９】
0004037485.tif 000010
【図１０】
0004037485.tif 000011
【図１１】
0004037485.tif 000012
【図１２】
0004037485.tif 000013
【図１３】
0004037485.tif 000014
【図１４】
0004037485.tif 000015
【図１５】
0004037485.tif 000016
【図１６】
0004037485.tif 000017
【図１７】
0004037485.tif 000018
【図１８】
0004037485.tif 000019
【図１９】
0004037485.tif 000020
【図２０】
0004037485.tif 000021
【図２１】
0004037485.tif 000022
【図２２】
0004037485.tif 000023
【図２３】
0004037485.tif 000024
【図２４】
0004037485.tif 000025
【図２５】
0004037485.tif 000026
【図２６】
0004037485.tif 000027
【図２７】
0004037485.tif 000028
【図２８】
0004037485.tif 000029
【図２９】
0004037485.tif 000030
【図３０】
0004037485.tif 000031
【図３１】
0004037485.tif 000032
【図３２】
0004037485.tif 000033
【図３３】
0004037485.tif 000034
【図３４】
0004037485.tif 000035
【図３５】
0004037485.tif 000036
【図３６】
0004037485.tif 000037
【図３７】
0004037485.tif 000038
【図３８】
0004037485.tif 000039
【図３９】
0004037485.tif 000040
【図４０】
0004037485.tif 000041
【図４１】
0004037485.tif 000042
【図４２】
0004037485.tif 000043