(57)【特許請求の範囲】
【請求項１】
内燃機関の排気通路に設けられ、前記内燃機関の排ガスの空燃比である排ガス空燃比を検出する空燃比センサの異常を判定する空燃比センサの異常判定装置であって、
前記内燃機関の混合気の空燃比である混合気空燃比を、所定のリーン空燃比および当該リーン空燃比よりもリッチ側の所定のリッチ空燃比の一方に選択的に制御する空燃比制御手段と、
当該空燃比制御手段によって、前記リッチ空燃比から前記リーン空燃比への前記混合気空燃比の切換、および前記リーン空燃比から前記リッチ空燃比への前記混合気空燃比の切換の少なくとも一方が行われた後に、当該切換により変化する前記空燃比センサの出力の変化量が所定変化量になってから再び当該所定変化量に戻るまでの期間を表す出力変化期間パラメータを算出する出力変化期間パラメータ算出手段と、
当該算出された出力変化期間パラメータによって表される期間内に得られた前記空燃比センサの出力の変化量の極値である出力変化量極値を算出する出力変化量極値算出手段と、
前記出力変化期間パラメータと前記出力変化量極値との間に前記空燃比センサが正常なときに成立すべき所定の関係が成立しているか否かを、前記出力変化期間パラメータと前記出力変化量極値との相関関係に基づいて判定することにより、前記空燃比センサの異常を判定する異常判定手段と、
を備えることを特徴とする空燃比センサの異常判定装置。
【請求項２】
前記異常判定手段は、前記出力変化期間パラメータに対する前記出力変化量極値の比に基づいて、前記空燃比センサの異常を判定することを特徴とする、請求項１に記載の空燃比センサの異常判定装置。
【請求項３】
前記排気通路の前記空燃比センサよりも上流側には、排ガスを浄化するための触媒が設けられており、
前記空燃比センサは、排ガス空燃比が混合気の理論空燃比に相当する理論排ガス空燃比の付近にあるときに、排ガス空燃比に対する出力の変化量が最大になる出力特性を有し、
前記リーン空燃比は理論空燃比よりもリーン側であり、前記リッチ空燃比は理論空燃比よりもリッチ側であることを特徴とする、請求項１または２に記載の空燃比センサの異常判定装置。
【請求項４】
排ガスの流量の積算値である排ガス流量積算値を算出する排ガス流量積算値算出手段をさらに備え、
前記空燃比制御手段は、前記内燃機関の運転中に当該内燃機関への燃料の供給を停止するフューエルカット運転を実行することによって、前記混合気空燃比を前記リーン空燃比に制御するとともに、前記フューエルカット運転の終了に伴って前記内燃機関に燃料を供給することによって、前記混合気空燃比を前記リッチ空燃比に制御し、
前記異常判定手段は、前記フューエルカット運転が開始された以降の前記排ガス流量積算値が第１所定値になってから第２所定値に達するまでの第１判定期間、および、前記フューエルカット運転の終了に伴って前記燃料の供給が開始された以降の前記排ガス流量積算値が第３所定値になってから第４所定値に達するまでの第２判定期間の少なくとも一方の判定期間が経過するまでに、前記空燃比センサの異常の判定が終了しているときには、当該判定結果に基づいて前記空燃比センサの異常を確定し、前記少なくとも一方の判定期間が経過した場合において、前記出力変化期間パラメータおよび前記出力変化量極値の算出が完了していないときには、前記空燃比センサが異常であるとの判定を確定することを特徴とする、請求項１ないし３のいずれかに記載の空燃比センサの異常判定装置。
【請求項５】
前記異常判定手段は、前記混合気空燃比の前記切換が行われた後に前記空燃比センサの出力の変化量が極値になったときに得られた前記空燃比センサの出力が所定範囲内にないときに、前記空燃比センサの異常判定を保留することを特徴とする、請求項１ないし４のいずれかに記載の空燃比センサの異常判定装置。
【請求項６】
前記異常判定手段は、前記空燃比センサの異常判定中に、複数の前記出力変化量極値が算出されたときに、当該空燃比センサの異常判定を保留することを特徴とする、請求項１ないし４のいずれかに記載の空燃比センサの異常判定装置。
【請求項７】
前記異常判定手段は、前記出力変化期間パラメータに基づいて算出した第１しきい値と前記出力変化量極値との比較結果、および、前記出力変化量極値に基づいて算出した第２しきい値と前記出力変化期間パラメータとの比較結果の一方に基づいて、前記空燃比センサの異常を判定することを特徴とする、請求項１に記載の空燃比センサの異常判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排ガスの空燃比を検出する空燃比センサの異常を判定する空燃比センサの異常判定装置に関する。
【背景技術】
【０００２】
従来、この種の空燃比センサの異常判定装置として、例えば特許文献１に開示されたものが知られている。この異常判定装置では、空燃比センサがその経年劣化などで異常であるときには、異常でない場合と比較して、内燃機関のフューエルカット運転の終了後の燃料供給の復帰時に得られる空燃比センサの出力が、緩やかに変化することに着目し、空燃比センサの異常が次のようにして判定される。すなわち、燃料供給が復帰してから空燃比センサの出力が安定するまでに得られた空燃比センサの出力の変化量の最大値（以下「出力変化量最大値」という）を算出する。次いで、算出された出力変化量最大値が所定の判定基準値よりも小さいときに、空燃比センサが異常であると判定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−０２０９８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したように、従来の異常判定装置では、出力変化量最大値が判定基準値よりも小さいときに空燃比センサが異常であると判定しているにすぎない。これに対して、燃料供給の復帰時、内燃機関の複数の気筒の間で空燃比のばらつきが発生している場合には、それにより、排ガスの空燃比自体が、不安定な状態で変化したり、その変化量が小さくなったりする。その場合には、従来の異常判定装置では、空燃比センサが正常であっても、出力変化量最大値が判定基準値を下回ることがあり、その結果、空燃比センサが異常であると誤判定するおそれがある。
【０００５】
また、排ガスを浄化するための触媒の下流側に、空燃比センサが配置されているときには、触媒の酸素の吸蔵状態によっては、フューエルカット運転の終了により空燃比がリッチ側に変化しても、触媒における酸化反応によって、触媒の下流側では、排ガスの空燃比がリッチ側にすぐには変化せず、一時的に停滞する場合がある。その場合には、それにより実際の排ガスの空燃比が、その変化量が大きくなる前に停滞するため、空燃比センサが正常であっても、出力変化量最大値が判定基準値を下回り、空燃比センサが異常であると誤判定するおそれがある。
【０００６】
本発明は、以上のような課題を解決するためになされたものであり、排ガスの空燃比の変化量が比較的小さい場合でも、空燃比センサの異常を精度良く判定することができる空燃比センサの異常判定装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、請求項１に係る発明は、内燃機関３の排気通路６に設けられ、内燃機関３の排ガスの空燃比である排ガス空燃比を検出する空燃比センサ（実施形態における（以下、本項において同じ）Ｏ２センサ２４）の異常を判定する空燃比センサの異常判定装置１であって、内燃機関３の混合気の空燃比である混合気空燃比を、所定のリーン空燃比およびリーン空燃比よりもリッチ側の所定のリッチ空燃比の一方に選択的に制御する空燃比制御手段（ＥＣＵ２）と、空燃比制御手段によって、リッチ空燃比からリーン空燃比への混合気空燃比の切換、およびリーン空燃比からリッチ空燃比への混合気空燃比の切換の少なくとも一方が行われた後に（ステップ３６：ＹＥＳ、ステップ１１７：ＹＥＳ）、当該切換により変化する空燃比センサの出力の変化量（出力変化量ＤＳＶＯ２）が所定変化量（第１所定変化量ＤＶＲＥＦＲＬ、第２所定変化量ＤＶＲＥＦＬＲ）になってから再び所定変化量に戻るまでの期間を表す出力変化期間パラメータ（第１出力変化期間パラメータＷＤＳＶＯ２ＲＬ、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲ）を算出する出力変化期間パラメータ算出手段（ＥＣＵ２、ステップ６８、１４８）と、算出された出力変化期間パラメータによって表される期間内に得られた空燃比センサの出力の変化量の極値である出力変化量極値（第１出力変化量極値ＨＤＳＶＯ２ＲＬ、第２出力変化量極値ＨＤＳＶＯ２ＬＲ）を算出する出力変化量極値算出手段（ＥＣＵ２、ステップ５４、１３４）と、出力変化期間パラメータと出力変化量極値との間に空燃比センサが正常なときに成立すべき所定の関係が成立しているか否かを、出力変化期間パラメータと出力変化量極値との相関関係に基づいて判定することにより、空燃比センサの異常を判定する異常判定手段（ＥＣＵ２、ステップ１４〜１６、１８、２０、２１、２３、９４〜９６、９８、１００、１０１、１０３、２０１、２０２、２１１、２１２）と、を備えることを特徴とする。
【０００８】
この構成によれば、排ガス空燃比を検出する空燃比センサの異常が、次のようにして判定される。すなわち、空燃比制御手段による所定のリッチ空燃比から所定のリーン空燃比への混合気空燃比の切換、およびリーン空燃比からリッチ空燃比への混合気空燃比の切換の少なくとも一方が行われた後に、この切換により空燃比センサの出力の変化量（以下「出力変化量」という）が所定変化量になってから再び所定変化量に戻るまでの期間（以下「出力変化期間」という）を表す出力変化期間パラメータが、出力変化期間パラメータ算出手段によって算出される。また、出力変化期間パラメータによって表される出力変化期間内に得られた出力変化量の極値である出力変化量極値が、出力変化量極値算出手段によって算出される。さらに、異常判定手段によって、出力変化期間パラメータと出力変化量極値との間に空燃比センサが正常なときに成立すべき所定の関係が成立しているか否かを、出力変化期間パラメータと出力変化量極値との相関関係に基づいて判定することにより、空燃比センサの異常が判定される。
【０００９】
図１９は、リッチ空燃比およびリーン空燃比を、理論空燃比よりもリッチ側およびリーン側にそれぞれ設定するとともに、リッチ空燃比からリーン空燃比に混合気空燃比を切り換えた場合における空燃比センサの出力および出力変化量の推移の一例を示している。同図において、ＶＯ２は空燃比センサの出力であり、ＤＶＯ２およびＤＶＲＥＦはそれぞれ、出力変化量および所定変化量である。また、図１９の実線は空燃比センサが正常な場合について、破線は空燃比センサが経年劣化などにより異常である場合について、それぞれ示している。さらに、ＨＤＶＯＫおよびＨＤＶＮＧはそれぞれ、空燃比センサが正常な場合および異常な場合の出力変化量極値であり、ＷＤＶＯＫおよびＷＤＶＮＧはそれぞれ、空燃比センサが正常な場合および異常な場合の出力変化期間である。
【００１０】
この空燃比センサは、いわゆる二値型のものであり、排ガス空燃比が、混合気の理論空燃比に相当する理論排ガス空燃比を含む所定排ガス空燃比領域よりもリッチ側にあるときにその出力が最大になり、リーン側にあるときに出力ＶＯ２が最小になるとともに、排ガス空燃比が理論排ガス空燃比付近にあるときに、その出力変化量ＤＶＯ２（絶対値）が最大になる出力特性を有している。
【００１１】
図１９に示すように、混合気空燃比がリーン空燃比に切り換えられると、それにより排ガス空燃比が変化するのに応じて、空燃比センサの出力ＶＯ２が変化する。空燃比センサが異常の場合には、正常な場合と比較して、その応答特性が低下しているため、上記の混合気空燃比の切換によって生じる空燃比センサの出力ＶＯ２の変化が緩やかになり、その出力変化量ＤＶＯ２が小さくなるとともに、リッチ空燃比に対応する最大値から切換後のリーン空燃比に対応する最小値に安定するまでにかかる時間が長くなる。
【００１２】
その結果、空燃比センサが異常の場合には、正常な場合と比較して、出力変化期間ＷＤＶＮＧが長くなるのに対し、出力変化量極値ＨＤＶＮＧが小さくなる。このことは、混合気空燃比がリーン空燃比に切り換えられた場合だけでなく、リッチ空燃比に切り換えられた場合にも、同様に当てはまる。また、空燃比センサとして、上述した二値型のものではなく、理論空燃比よりもリッチなリッチ領域から極リーン領域までの広範囲の混合気空燃比の領域において、排ガス空燃比をリニアに検出するタイプのセンサを用いた場合にも、同様に当てはまる。以上から、前述した構成によれば、出力変化期間と出力変化量極値との関係に基づいて、空燃比センサの異常を精度良く判定することができる。
【００１３】
また、図２０は、空燃比センサが正常な場合における空燃比センサの出力ＶＯ２および出力変化量ＤＶＯ２の推移の一例を、二値型の空燃比センサを用い、リッチ空燃比およびリーン空燃比を図１９の場合と同様に設定するとともに、リーン空燃比に混合気空燃比を切り換えた場合について示している。
【００１４】
図２０において、一点鎖線は、例えば内燃機関の複数の気筒の間での空燃比のばらつきや空燃比センサの上流側に設けられた触媒における酸素の吸蔵などの影響により、排ガス空燃比が、リーン空燃比に相当する排ガス空燃比（以下「リーン排ガス空燃比」という）にすぐには収束せずに、リーン排ガス空燃比よりもリッチ側の排ガス空燃比に短時間の間、停滞した場合（以下、この停滞を「排ガス空燃比停滞」という）について示している。また、実線は、この排ガス空燃比停滞が発生していない場合について示している。さらに、図２０において、ＷＤＶ１およびＷＤＶ２はそれぞれ、排ガス空燃比停滞が発生していない場合および発生した場合の出力変化期間であり、ＨＤＶ１およびＨＤＶ２はそれぞれ、排ガス空燃比停滞が発生していない場合および発生した場合の出力変化量極値である。
【００１５】
図２０に一点鎖線で示すように、空燃比センサが正常であり、かつ、排ガス空燃比停滞が発生した場合、空燃比センサの出力ＶＯ２は、一旦、最小値よりも大きな値で停滞し、その後、最小値に収束する。排ガス空燃比停滞が発生した場合、発生していない場合（実線）と比較して、この排ガス空燃比停滞により排ガス空燃比が実際に変化している期間が短くなるため、出力変化期間ＷＤＶ２は短くなるとともに、出力変化量極値ＨＤＶ２が小さくなる。この場合、図１９に破線で示す空燃比センサが異常の場合と異なり、空燃比センサの応答特性は低下していないので、出力変化期間ＷＤＶ２が長くなることはない。以上のように、出力変化期間と出力変化量極値は互いに密接に関係しており、空燃比センサが正常であれば、排ガス空燃比停滞が発生している場合でも、出力変化期間と出力変化量極値との間に、排ガス空燃比停滞が発生していない場合と同様の所定の関係が成立する。
【００１６】
このことは、混合気空燃比がリーン空燃比に切り換えられた場合だけでなく、リッチ空燃比に切り換えられた場合にも、同様に当てはまる。また、空燃比センサとして、上述した二値型のものではなく、理論空燃比よりもリッチなリッチ領域から極リーン領域までの広範囲の混合気空燃比の領域において、排ガス空燃比をリニアに検出するタイプのセンサを用いた場合にも、同様に当てはまる。
【００１７】
以上から、排ガス空燃比停滞の影響により排ガス空燃比の変化量が比較的小さい場合でも、出力変化期間パラメータと出力変化量極値との関係に基づいて、空燃比センサの異常を精度良く判定することができる。また、出力変化期間パラメータとして、出力変化量が所定変化量になってから再び所定変化量に戻るまでの期間を算出するので、ノイズなどの外乱などにより空燃比センサの出力が一時的に小さく変動したときの出力変化期間に基づいて異常の判定が行われるのを防止することができる。
【００１８】
さらに、空燃比センサの応答特性は、リーン空燃比への混合気空燃比の切換時（以下「リーン空燃比切換時」という）と、リッチ空燃比への混合気空燃比の切換時（以下「リッチ空燃比切換時」という）とで、互いに異なる場合がある。このため、上述した出力変化期間パラメータと出力変化量極値との関係に基づく空燃比センサの異常判定を、リーン空燃比切換時およびリッチ空燃比切換時の双方において行うことにより、この双方における空燃比センサの応答特性の異常を精度良く判定することができる。
【００１９】
なお、請求項１に係る発明において、出力変化量極値には、値０を基準とする出力変化量の極値と、出力変化期間を規定する所定変化量を基準とする出力変化量の極値が含まれる。
【００２０】
請求項２に係る発明は、請求項１に記載の空燃比センサの異常判定装置１において、異常判定手段は、出力変化期間パラメータに対する出力変化量極値の比（第１判定用パラメータＫＪＵＤＳＶＯ２ＲＬ、第２判定用パラメータＫＪＵＤＳＶＯ２ＬＲ）に基づいて、空燃比センサの異常を判定する（ステップ１４〜１６、１８、２０、２１、２３、９４〜９６、９８、１００、１０１、１０３）ことを特徴とする。
【００２１】
この構成によれば、空燃比センサの異常の判定を、出力変化期間パラメータに対する出力変化量極値の比に基づいて行うので、出力変化期間と出力変化量極値との関係に直接的に基づいて適切に行うことができる。
【００２２】
請求項３に係る発明は、請求項１または２に記載の空燃比センサの異常判定装置１において、排気通路６の空燃比センサよりも上流側には、排ガスを浄化するための触媒（三元触媒７）が設けられており、空燃比センサは、排ガス空燃比が混合気の理論空燃比に相当する理論排ガス空燃比の付近にあるときに、排ガス空燃比に対する出力の変化量が最大になる出力特性を有し、リーン空燃比は理論空燃比よりもリーン側であり、リッチ空燃比は理論空燃比よりもリッチ側であることを特徴とする。
【００２３】
この構成によれば、排気通路の空燃比センサよりも上流側には、排ガス浄化用の触媒が設けられている。このため、リーン空燃比とリッチ空燃比との間の混合気空燃比の切換時、この触媒における酸素の吸蔵と酸化反応によって、前述した排ガス空燃比停滞が発生する場合がある。また、空燃比センサが、排ガス空燃比が混合気の理論空燃比に相当する排ガス空燃比である理論排ガス空燃比付近にあるときに、排ガス空燃比に対する出力の変化量が最大になる出力特性を有している。
【００２４】
さらに、上述した出力特性を有する空燃比センサに対し、混合気空燃比を、理論空燃比よりもリーンなリーン空燃比とリッチなリッチ空燃比との間で切り換えるので、算出された出力変化期間パラメータと出力変化量極値との関係は、空燃比センサの異常の有無をより良好に表す。したがって、前述した効果、すなわち、排ガス空燃比停滞の影響により排ガス空燃比の変化量が小さい場合でも空燃比センサの異常を精度良く判定することができるという効果を、有効に得ることができる。
【００２５】
また、排ガス空燃比が複数の気筒間でばらついている場合でも、排ガスが触媒において攪拌されるので、このばらつきに起因する排ガス空燃比の変動による異常判定への影響を抑制することができる。
【００２６】
請求項４に係る発明は、請求項１ないし３のいずれかに記載の空燃比センサの異常判定装置１において、排ガスの流量の積算値である排ガス流量積算値（第１排ガス流量積算値ＳＵＭＳＶＲＬ、第２排ガス流量積算値ＳＵＭＳＶＬＲ）を算出する排ガス流量積算値算出手段（ＥＣＵ２、ステップ３７、１１８）をさらに備え、空燃比制御手段は、内燃機関３の運転中に内燃機関３への燃料の供給を停止するフューエルカット運転を実行することによって、混合気空燃比をリーン空燃比に制御するとともに、フューエルカット運転の終了に伴って内燃機関３に燃料を供給することによって、混合気空燃比をリッチ空燃比に制御し、異常判定手段は、フューエルカット運転が開始された以降の排ガス流量積算値が第１所定値ＳＵＭＲＬ１になって（ステップ３９：ＹＥＳ）から第２所定値ＳＵＭＲＬ２に達する（ステップ１１：ＹＥＳ）までの第１判定期間、および、フューエルカット運転の終了に伴って燃料の供給が開始された以降の排ガス流量積算値が第３所定値（第１所定値ＳＵＭＬＲ１）になって（ステップ１２０：ＹＥＳ）から第４所定値（第２所定値ＳＵＭＬＲ２）に達する（ステップ９１：ＹＥＳ）までの第２判定期間の少なくとも一方の判定期間が経過するまでに、空燃比センサの異常の判定が終了しているとき（ステップ１９：ＹＥＳ、ステップ９９：ＹＥＳ）には、当該判定結果に基づいて空燃比センサの異常を確定し（ステップ２０、２１、２３、１００、１０１、１０３）、少なくとも一方の判定期間が経過した場合において、出力変化期間パラメータおよび出力変化量極値の算出が完了していないとき（ステップ１９：ＮＯ、ステップ９９：ＮＯ）には、空燃比センサが異常であるとの判定を確定する（ステップ２３、１０３）ことを特徴とする。
【００２７】
この構成によれば、排ガスの流量の積算値である排ガス流量積算値が、排ガス流量積算値算出手段によって算出される。また、リーン空燃比とリッチ空燃比との間の混合気空燃比の切換が、フューエルカット運転と、フューエルカット運転終了後の燃料の供給とを利用して行われる。さらに、第１判定期間および第２判定期間の少なくとも一方の判定期間が経過するまでに、空燃比センサの異常の判定が終了しているときには、その判定結果に基づいて空燃比センサの異常が確定される。この場合、第１判定期間が、フューエルカット運転が開始された以降の排ガス流量積算値が第１所定値になってから第２所定値に達するまでの期間に設定されており、第２判定期間が、フューエルカット運転の終了に伴って燃料の供給が開始された以降の排ガス流量積算値が第３所定値になってから第４所定値に達するまでの期間に設定されている。
【００２８】
このように、フューエルカット運転の開始後すなわちリーン空燃比への混合気空燃比の切換開始後、排ガス流量の積算値が第１所定値に達した後に、そのときに得られた空燃比センサの異常の判定結果に基づいて、空燃比センサの異常が確定される。したがって、リーン空燃比への混合気空燃比の切換開始後、リーン空燃比の混合気空燃比が燃焼することによって生成された排ガスが空燃比センサに到達するまでのむだ時間を補償しながら、空燃比センサの異常を適切に判定することができる。
【００２９】
同様に、フューエルカット運転の終了に伴う燃料の供給の開始後すなわちリッチ空燃比への混合気空燃比の切換開始後、排ガス流量の積算値が第３所定値に達した後に、そのときに得られた空燃比センサの異常の判定結果に基づいて、空燃比センサの異常が確定される。したがって、リッチ空燃比への混合気空燃比の切換開始後、リッチ空燃比の混合気が燃焼することによって生成された排ガスが空燃比センサに到達するまでのむだ時間を補償しながら、空燃比センサの異常を精度良く判定することができる。
【００３０】
また、空燃比センサが異常の場合には、リーン空燃比またはリッチ空燃比への混合気空燃比の切換開始後、多量の排ガスが空燃比センサを通過しても、空燃比センサの出力がほとんど変化せず、その結果、出力変化期間パラメータおよび出力変化量極値の少なくとも一方の算出が完了しない。前述した構成によれば、少なくとも一方の判定期間が経過した場合において、出力変化期間パラメータおよび出力変化量極値の算出が完了していないときには、空燃比センサが異常であるとの判定が確定される。
【００３１】
このように、リーン空燃比への混合気空燃比の切換開始後、排ガス流量の積算値が第２所定値を超えてもなお、すなわち、多量の排ガスが空燃比センサを通過してもなお、出力変化期間パラメータおよび出力変化量極値の算出が完了していないときに、空燃比センサが異常であるとの判定を確定するので、空燃比センサの異常を精度良く判定することができる。同様に、リッチ空燃比への混合気空燃比の切換開始後、排ガス流量の積算値が第４所定値を超えてもなお、すなわち、多量の排ガスが空燃比センサを通過してもなお、出力変化期間パラメータおよび出力変化量極値の算出が完了していないときに、空燃比センサが異常であるとの判定を確定するので、空燃比センサの異常を精度良く判定することができる。
【００３２】
請求項５に係る発明は、請求項１ないし４のいずれかに記載の空燃比センサの異常判定装置１において、異常判定手段は、混合気空燃比の前記切換が行われた後に空燃比センサの出力の変化量が極値になったときに得られた空燃比センサの出力（第１ピーク時出力ＳＶＯ２ＰＫＲＬ、第２ピーク時出力ＳＶＯ２ＰＫＬＲ）が所定範囲内にないとき（ステップ１７５：ＮＯ、ステップ１９５：ＮＯ）に、空燃比センサの異常判定を保留する（ステップ１７４、１６３、１９４、１８３）ことを特徴とする。
【００３３】
リーン空燃比とリッチ空燃比との間で混合気空燃比を変化させた場合において、前述した排ガス空燃比停滞が発生しないときには、通常、排ガス空燃比が、リーン空燃比に対応する排ガス空燃比とリッチ空燃比に対応する排ガス空燃比との間の所定排ガス空燃比であるときに、排ガス空燃比の変化量は最大になる。このため、排ガス空燃比停滞が発生していない場合には、空燃比センサの出力で表される排ガス空燃比が所定排ガス空燃比であるときに、空燃比センサの出力変化量が極値になる。
【００３４】
このことから明らかなように、混合気空燃比の切換後に空燃比センサの出力の変化量が極値になったときに得られた空燃比センサの出力で表される排ガス空燃比が、上記の所定排ガス空燃比でないときには、排ガス空燃比停滞が発生している可能性がある。さらに、この場合、排ガス空燃比が、所定排ガス空燃比を含む所定排ガス空燃比範囲内にないときには、混合気空燃比の切換直後に、排ガス空燃比がほとんど変化せずに停滞することで、排ガス空燃比の変化量が非常に小さくなる場合がある。その場合には、前述した出力変化期間パラメータと出力変化量極値との関係に基づいて異常を判定しても、空燃比センサが正常なときに異常と誤判定するおそれがある。以下、このように混合気空燃比の切換直後に発生する排ガス空燃比停滞を「切換直後排ガス空燃比停滞」という。
【００３５】
上述した構成によれば、リーン空燃比およびリッチ空燃比の少なくとも一方への混合気空燃比の切換が行われた後、空燃比センサの出力変化量が極値になったときに得られた空燃比センサの出力が所定範囲内にないときに、空燃比センサの異常判定が保留される。したがって、この所定範囲を、上述した所定排ガス空燃比範囲に相当する範囲に設定することによって、切換直後排ガス空燃比停滞の発生中における空燃比センサの異常判定を保留できるので、上述した誤判定を防止することができる。
【００３６】
請求項６に係る発明は、請求項１ないし４のいずれかに記載の空燃比センサの異常判定装置１において、異常判定手段は、空燃比センサの異常判定中に、複数の出力変化量極値が算出されたとき（ステップ１７３：ＹＥＳ、ステップ１９３：ＹＥＳ）に、空燃比センサの異常判定を保留する（ステップ１７４、１６３、１９４、１８３）ことを特徴とする。
【００３７】
請求項５に係る発明の説明で述べたように、切換直後排ガス空燃比停滞が発生した場合には、空燃比センサが正常なときに異常と誤判定するおそれがある。また、切換直後排ガス空燃比停滞が発生したときには、空燃比センサの出力が、停滞してから再度変化した後に安定するため、複数の出力変化量の極値が発生する。
【００３８】
上述した構成によれば、空燃比センサの異常判定中に、複数の出力変化量極値が算出されたときに、すなわち、切換直後排ガス空燃比停滞が発生したときに、空燃比センサの異常判定を保留するので、上述した誤判定を防止することができる。
【００３９】
請求項７に係る発明は、請求項１に記載の空燃比センサの異常判定装置１において、異常判定手段は、出力変化期間パラメータに基づいて算出した第１しきい値（第１判定用しきい値ＨＤＲＥＦＲＬ、第２判定用しきい値ＨＤＲＥＦＬＲ）と出力変化量極値との比較結果、および、出力変化量極値に基づいて算出した第２しきい値と出力変化期間パラメータとの比較結果の一方に基づいて、空燃比センサの異常を判定する（ステップ２０１、２０２、１６、１８、２０、２１、２３、２１１、２１２、９６、９８、１００、１０１、１０３）ことを特徴とする。
【００４０】
この構成によれば、出力変化期間パラメータに基づいて算出された第１しきい値と出力変化量極値との比較結果、および、出力変化量極値に基づいて算出された第２しきい値と出力変化期間パラメータとの比較結果の一方に基づいて、空燃比センサの異常が判定される。したがって、出力変化期間パラメータと出力変化量極値との関係に基づく空燃比センサの異常判定を、適切に行うことができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の第１実施形態による空燃比センサの異常判定装置を、これを適用した内燃機関とともに概略的に示す図である。
【図２】第１実施形態による第１異常判定処理のメインルーチンを示すフローチャートである。
【図３】図２の第１異常判定処理で実行される第１実行条件判定処理のサブルーチンを示すフローチャートである。
【図４】図２の第１異常判定処理で実行されるＨＤＳＶＯ２ＲＬ算出処理のサブルーチンを示すフローチャートである。
【図５】図４のＨＤＳＶＯ２ＲＬ算出処理の動作例を示す図である。
【図６】図２の第１異常判定処理で実行されるＷＤＳＶＯ２ＲＬ算出処理のサブルーチンを示すフローチャートである。
【図７】図６のＷＤＳＶＯ２ＲＬ算出処理の動作例を示す図である。
【図８】第１実施形態による第２異常判定処理のメインルーチンを示すフローチャートである。
【図９】図８の第２異常判定処理で実行される第２実行条件判定処理のサブルーチンを示すフローチャートである。
【図１０】図８の第２異常判定処理で実行されるＨＤＳＶＯ２ＬＲ算出処理のサブルーチンを示すフローチャートである。
【図１１】図８の第２異常判定処理で実行されるＷＤＳＶＯ２ＬＲ算出処理のサブルーチンを示すフローチャートである。
【図１２】本発明の第２実施形態による第１異常判定処理のメインルーチンを示すフローチャートである。
【図１３】図１２の第１異常判定処理で実行されるＨＤＳＶＯ２ＲＬ算出処理のサブルーチンを示すフローチャートである。
【図１４】第２実施形態による第２異常判定処理のメインルーチンを示すフローチャートである。
【図１５】図１４の第２異常判定処理で実行されるＨＤＳＶＯ２ＬＲ算出処理のサブルーチンを示すフローチャートである。
【図１６】本発明の第３実施形態による第１異常判定処理のメインルーチンを示すフローチャートである。
【図１７】図１６の第１異常判定処理で用いられるマップの一例である。
【図１８】第３実施形態による第２異常判定処理のメインルーチンを示すフローチャートである。
【図１９】本発明における空燃比センサの出力および出力変化量の推移を、空燃比センサが正常な場合および異常な場合のそれぞれについて示す図である。
【図２０】本発明における空燃比センサの出力および出力変化量の推移を、排ガス空燃比停滞が発生した場合および発生していない場合のそれぞれについて示す図である。
【発明を実施するための形態】
【００４２】
以下、図面を参照しながら、本発明の好ましい実施形態を詳細に説明する。図１に示す内燃機関（以下「エンジン」という）３は、４つの気筒（図示せず）を有する４サイクルタイプのガソリンエンジンであり、車両（図示せず）に動力源として搭載されている。エンジン３のクランク軸（図示せず）には、クランク角センサ２１が設けられている。クランク角センサ２１は、クランク軸の回転に伴い、パルス信号であるＣＲＫ信号およびＴＤＣ信号を、制御装置１の後述するＥＣＵ２に出力する。
【００４３】
ＣＲＫ信号は、所定のクランク角（例えば３０゜）ごとに出力される。ＥＣＵ２は、このＣＲＫ信号に基づき、エンジン３の回転数（以下「エンジン回転数」という）ＮＥを算出する。ＴＤＣ信号は、４つの気筒のいずれかのピストンが吸気行程開始時のＴＤＣ（上死点）付近にあることを表す信号であり、４気筒タイプの本例では、クランク角１８０゜ごとに出力される。また、エンジン３には、気筒判別センサ（図示せず）が設けられており、気筒判別センサは、気筒を判別するためのパルス信号である気筒判別信号をＥＣＵ２に出力する。ＥＣＵ２は、これらの気筒判別信号、ＣＲＫ信号およびＴＤＣ信号に基づいて、クランク角度位置を気筒ごとに算出する。
【００４４】
エンジン３の吸気通路４には、上流側から順に、エアフローセンサ２２および燃料噴射弁５が設けられている。エアフローセンサ２２は、吸気通路４を介して各気筒に吸入される吸入空気量ＱＡを検出するとともに、その検出信号をＥＣＵ２に出力する。燃料噴射弁５は、気筒ごとに、吸気ポートに臨むように設けられている（１つのみ図示）。燃料噴射弁５の開弁時間および開弁タイミングは、ＥＣＵ２によって制御され、それにより、燃料噴射弁５による燃料の噴射動作が制御される。
【００４５】
エンジン３にはさらに、燃焼室内の混合気に点火するための点火プラグ（図示せず）が、気筒ごとに設けられている。この点火プラグの点火動作は、ＥＣＵ２によって制御される。
【００４６】
また、エンジン３の排ガスを排出するための排気通路６には、上流側から順に、ＬＡＦセンサ２３、三元触媒７およびＯ２センサ２４が設けられている。ＬＡＦセンサ２３は、ジルコニアや白金電極で構成されており、燃焼室で燃焼した混合気の空燃比の領域が理論空燃比よりもリッチな領域からリーンな領域までの広範囲な領域において、排ガスの空燃比（以下「排ガス空燃比」という）をリニアに検出するとともに、その検出信号をＥＣＵ２に出力する。
【００４７】
上記の三元触媒７は、排ガス中の酸素を吸蔵する酸素吸蔵能力を有しており、排ガス中のＨＣおよびＣＯを酸化するとともに、ＮＯｘを還元することによって、排ガスを浄化する。Ｏ２センサ２４は、ジルコニアや白金電極で構成されており、三元触媒７のすぐ下流側の排ガス空燃比に基づく出力（以下「Ｏ２センサ出力」という）ＳＶＯ２を、ＥＣＵ２に出力する。このＯ２センサ出力ＳＶＯ２は、排ガス空燃比が混合気の理論空燃比に相当する理論排ガス空燃比よりもリッチ側のときにはＨｉレベルになるとともに、リーン側のときにはＬｏレベルになり、理論排ガス空燃比の前後において急激に変化する。このように、排ガス空燃比に対するＯ２センサ出力ＳＶＯ２の変化量は、排ガス空燃比が理論排ガス空燃比の付近にあるときに最大になる。
【００４８】
ＥＣＵ２にはさらに、アクセル開度センサ２５から、車両のアクセルペダル（図示せず）の操作量であるアクセル開度ＡＰを表す検出信号が出力される。
【００４９】
ＥＣＵ２は、ＣＰＵ、ＲＡＭ、ＲＯＭおよびＩ／Ｏインターフェース（いずれも図示せず）などからなるマイクロコンピュータで構成されている。ＥＣＵ２は、前述した各種のセンサ２１〜２５からの検出信号に基づき、ＲＯＭに記憶された制御プログラムに従い、エンジン３を制御するとともに、Ｏ２センサ２４の異常を判定する。
【００５０】
具体的には、ＥＣＵ２は、算出されたエンジン回転数ＮＥや要求トルクに応じ、リーン化運転やリッチ化運転を実行する。このリッチ化運転の実行中、燃料噴射弁５を介して、混合気の空燃比（以下「混合気空燃比」という）を理論空燃比よりもリッチ側の所定のリッチ空燃比に制御する。また、エンジン３の減速運転中に、エンジン３への燃料供給を停止するフューエルカット運転を実行する。さらに、フューエルカット運転の終了に伴ってＣＡＴ還元モードを実行する。このＣＡＴ還元モードは、フューエルカット運転の実行により三元触媒７に吸蔵された酸素を放出させ、還元するために、混合気空燃比をリッチ空燃比に制御する運転モードであり、フューエルカット運転が終了してから比較的長い所定時間（例えば１０ｓｅｃ）が経過するまで実行される。
【００５１】
また、ＥＣＵ２は、図２に示す第１異常判定処理を実行する。この第１異常判定処理では、混合気空燃比が上記のリッチ空燃比から理論空燃比よりもリーン側の所定のリーン空燃比に切り換えられたときにおけるＯ２センサ２４の応答特性の異常が判定される。この場合におけるリッチ空燃比からリーン空燃比への混合気空燃比の切換として、リッチ化運転からフューエルカット運転へのエンジン３の運転モードの切換が利用される。また、本処理は、エンジン３の始動後、所定周期（例えば１０ｍｓｅｃ〜５０ｍｓｅｃの範囲内の所定の周期）で繰り返し実行される。
【００５２】
まず、図２のステップ１（「Ｓ１」と図示。以下同じ）では、第１異常判定完了フラグＦ＿ＤＯＮＥＲＬが「１」であるか否かを判別する。この第１異常判定完了フラグＦ＿ＤＯＮＥＲＬは、本処理（第１異常判処理）による異常判定が完了したときに「１」にセットされるものであり、エンジン３の始動時に「０」にリセットされる。
【００５３】
このステップ１の答がＮＯで、本処理による異常判定が完了していないときには、第１実行条件判定処理を実行する（ステップ２）。この第１実行条件判定処理は、第１異常判定処理による異常判定を実行するための条件である第１実行条件が成立しているか否かを判定するものであり、図３に示すフローチャートに従って実行される。
【００５４】
まず、図３のステップ３１では、指定故障が発生しているか否かを判定する。この判定では、例えば次の条件（ａ）〜（ｃ）がいずれも成立しているときに、指定故障が発生していると判定される。
（ａ）燃料系故障判定処理（図示せず）により燃料噴射弁５などの燃料供給系が故障していると判定されていること。
（ｂ）点火系故障判定処理（図示せず）により点火プラグが故障していると判定されていること。
（ｃ）Ｏ２センサ２４以外の各種のセンサがセンサ故障判定処理により故障していると判定されていること。
【００５５】
このステップ３１の答がＹＥＳで、燃料噴射弁５などが故障しているときには、後述する第１排ガス流量積算値ＳＵＭＳＶＲＬを値０にリセットする（ステップ３２）。次いで、燃料噴射弁５などの故障によってＯ２センサ２４の異常を精度良く判定できないため、第１実行条件が成立していないとみなし、そのことを表すために、第１実行条件成立フラグＦ＿ＪＵＤＲＬを「０」に設定し（ステップ３３）、本処理を終了する。
【００５６】
一方、ステップ３１の答がＮＯのときには、エンジン３の暖機が完了しているか否かを判別する（ステップ３４）。この判別は、センサなどで検出されたエンジン３の冷却水の温度に基づいて行われる。このステップ３４の答がＮＯで、エンジン３の暖機が完了していないときには、上記ステップ３２を実行するとともに、エンジン３の運転状態が安定していないことによってＯ２センサ２４の異常を精度良く判定できないおそれがあるため、第１実行条件が成立していないとして、上記ステップ３３を実行し、本処理を終了する。
【００５７】
一方、ステップ３４の答がＹＥＳのときには、Ｏ２センサ２４が活性済みであるか否かを判別する（ステップ３５）。この判別では、Ｏ２センサ出力ＳＶＯ２が所定値よりも大きいときに、Ｏ２センサ２４が活性済みであると判別される。このステップ３５の答がＮＯで、Ｏ２センサ２４が活性済みでないときには、それによりＯ２センサ２４の異常を精度良く判定できないおそれがあるため、第１実行条件が成立していないとして、上記ステップ３３を実行し、本処理を終了する。
【００５８】
一方、ステップ３５の答がＹＥＳのときには、フューエルカットフラグＦ＿Ｆ／Ｃが「１」であるか否かを判別する（ステップ３６）。このフューエルカットフラグＦ＿Ｆ／Ｃは、エンジン３の運転モードが前述したリッチ化運転からフューエルカット運転に切り換えられたときに、「１」にセットされ、その後、当該フューエルカット運転の実行中に、「１」に保持される。このステップ３６の答がＮＯのときには、第１実行条件が成立していないとみなし、前記ステップ３２および３３を実行し、本処理を終了する。
【００５９】
このように、リッチ化運転後のフューエルカット運転の実行中でないときに第１実行条件が成立していないとみなすのは、前述したように、第１異常判定処理では、リッチ空燃比からリーン空燃比への混合気空燃比の切換時におけるＯ２センサ２４の応答特性の異常が判定され、この場合における混合気空燃比の切換として、リッチ化運転からフューエルカット運転への運転モードの切換を利用するためである。
【００６０】
一方、ステップ３６の答がＹＥＳのときには、そのときに得られている第１排ガス流量積算値ＳＵＭＳＶＲＬすなわちその前回値に、第１排ガス流量ＳＶＲＬを加算することによって、第１排ガス流量積算値の今回値ＳＵＭＳＶＲＬを算出する（ステップ３７）。この第１排ガス流量ＳＶＲＬは、今回の処理サイクルでエンジン３から排出された排ガスの流量に相当し、検出された吸入空気量ＱＡに応じて算出される。また、第１排ガス流量積算値ＳＵＭＳＶＲＬは、フューエルカット運転の開始時から今回までに排出された排ガスの流量の積算値に相当する。その理由は次のとおりである。
【００６１】
すなわち、ステップ３１、３４およびステップ３５の判別結果は、エンジン３の始動後、最初のフューエルカット運転が実行される前に、得られる。それに加え、ステップ３６の答がＹＥＳにならない限り、すなわちフューエルカット運転が実行されない限り、前記ステップ３２の実行によって第１排ガス流量積算値ＳＵＭＳＶＲＬが値０に保持されるとともに、第１排ガス流量積算値ＳＵＭＳＶＲＬが、その前回値に今回の処理サイクルでエンジン３から排出された排ガスの流量（第１排ガス流量ＳＶＲＬ）を加算することによって算出されるためである。
【００６２】
上記ステップ３７に続くステップ３８では、第１実行条件成立フラグＦ＿ＪＵＤＲＬが「１」であるか否かを判別する。この答がＮＯ（Ｆ＿ＪＵＤＲＬ＝０）のときには、前記ステップ３７で算出された第１排ガス流量積算値ＳＵＭＳＶＲＬが第１所定値ＳＵＭＲＬ１以上であるか否かを判別する（ステップ３９）。
【００６３】
このステップ３９の答がＮＯ（ＳＵＭＳＶＲＬ＜ＳＵＭＲＬ１）で、フューエルカット運転の開始時からの排ガス流量の積算値が、第１所定値ＳＵＭＲＬ１よりも小さいときには、フューエルカット運転の開始によりリッチ空燃比からリーン空燃比に切り換えられた混合気空燃比に対応する排ガスが、Ｏ２センサ２４にまだ到達していないとみなす。また、それによりＯ２センサ２４の異常を精度良く判定できないため、第１実行条件が成立していないとして、前記ステップ３３を実行し、本処理を終了する。
【００６４】
一方、ステップ３９の答がＹＥＳ（ＳＵＭＳＶＲＬ≧ＳＵＭＲＬ１）で、フューエルカット運転の開始時からの排ガス流量の積算値が第１所定値ＳＵＭＲＬ１に達したときには、Ｏ２センサ出力ＳＶＯ２が第１所定出力ＶＲＥＦＲＬ以上であるか否かを判別する（ステップ４０）。
【００６５】
このステップ４０の答がＮＯ（ＳＶＯ２＜ＶＲＥＦＲＬ）のときには、Ｏ２センサ出力ＳＶＯ２で表される排ガス空燃比がリーン側にあることから、リッチ空燃比からリーン空燃比への混合気空燃比の切換時におけるＯ２センサ２４の異常を精度良く判定できないおそれがあるため、第１実行条件が成立していないとして、前記ステップ３３を実行し、本処理を終了する。
【００６６】
一方、ステップ４０の答がＹＥＳで、Ｏ２センサ出力ＳＶＯ２が第１所定出力ＶＲＥＦＲＬ以上であるときには、第１実行条件が成立したとして、第１実行条件成立フラグＦ＿ＪＵＤＲＬを「１」に設定し（ステップ４１）、本処理を終了する。また、このステップ４１の実行によって、前記ステップ３８の答がＹＥＳ（Ｆ＿ＪＵＤＲＬ＝１）になり、その場合には、そのまま本処理を終了する。
【００６７】
図２に戻り、前記ステップ２に続くステップ３では、第１実行条件成立フラグＦ＿ＪＵＤＲＬが「１」であるか否かを判別する。この答がＮＯ（Ｆ＿ＪＵＤＲＬ＝０）で、第１実行条件が成立していないときには、ステップ４〜７においてそれぞれ、後述する第１開始時排ガス流量積算値算出済みフラグＦ＿ＷＤＳＶＯ２ＳＴＲＬ、第１出力変化量極値算出済みフラグＦ＿ＨＤＳＶＯ２ＲＬ、第１出力変化期間パラメータ算出済みフラグＦ＿ＷＤＳＶＯ２ＲＬ、および第１仮判定済みフラグＦ＿ＴＭＰＪＵＤＲＬを「０」にリセットし、本処理を終了する。
【００６８】
一方、上記ステップ３の答がＹＥＳ（Ｆ＿ＪＵＤＲＬ＝１）で、第１実行条件が成立しているときには、ステップ８において、そのときに得られている出力変化量ＤＳＶＯ２をその前回値ＤＳＶＯ２Ｚとしてシフトするとともに、出力変化量の今回値ＤＳＶＯ２を算出する。この出力変化量ＤＳＶＯ２は、Ｏ２センサ出力ＳＶＯ２の変化量であり、今回の処理サイクルで検出されたＯ２センサ出力ＳＶＯ２（今回値）から、前回の処理サイクルで検出されたＯ２センサ出力ＳＶＯ２（前回値）を減算することによって算出する。
【００６９】
ステップ８に続くステップ９では、図４に示すＨＤＳＶＯ２ＲＬ算出処理を実行する。前述したように、本処理を含む第１異常判定処理では、リッチ空燃比からリーン空燃比への混合気空燃比の切換時におけるＯ２センサ２４の応答特性の異常が判定される。この場合、図５に示すように、Ｏ２センサ出力ＳＶＯ２は、この混合気空燃比の切換によってＨｉレベルからＬｏレベルに変化し、それに伴い、Ｏ２センサ出力ＳＶＯ２の変化量である出力変化量ＤＳＶＯ２は、値０から負値になり、その絶対値が増大し、極値となった後、その絶対値が減少し、再び値０に戻る。本処理では、出力変化量ＤＳＶＯ２が後述する第１所定変化量ＤＶＲＥＦＲＬになってから再び第１所定変化量ＤＶＲＥＦＲＬに戻るまでの期間内における出力変化量ＤＳＶＯ２の極値として、第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出される。
【００７０】
まず、図４のステップ５１では、そのときに得られている第１出力変化量増大中フラグＦ＿ＲＮＷＨＤＳＶＯ２ＲＬを、その前回値Ｆ＿ＲＮＷＨＤＳＶＯ２ＲＬＺとしてシフトする。この第１出力変化量増大中フラグＦ＿ＲＮＷＨＤＳＶＯ２ＲＬの詳細については、後述する。
【００７１】
次いで、図２のステップ８で算出された出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬ以下であるか否かを判別する（ステップ５２）。この第１所定変化量ＤＶＲＥＦＲＬは、出力変化量ＤＳＶＯ２が確実に変化しているか否かを判定できるような負の所定値に設定されている（図５参照）。このステップ５２の答がＮＯのときには、そのまま本処理を終了する一方、ＹＥＳで、出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬ以下であるときには、出力変化量の今回値ＤＳＶＯ２がその前回値ＤＳＶＯ２Ｚ以下であるか否かを判別する（ステップ５３）。
【００７２】
このステップ５３の答がＹＥＳで、ＤＳＶＯ２≦ＤＳＶＯ２Ｚのとき、すなわち、負値である出力変化量ＤＳＶＯ２（絶対値）が増大しているときには、出力変化量ＤＳＶＯ２を第１出力変化量極値ＨＤＳＶＯ２ＲＬとして設定する（ステップ５４）とともに、出力変化量ＤＳＶＯ２（絶対値）の増大中であることを表すために、第１出力変化量増大中フラグＦ＿ＲＮＷＨＤＳＶＯ２ＲＬを「１」に設定し（ステップ５５）、本処理を終了する。なお、第１出力変化量増大中フラグＦ＿ＲＮＷＨＤＳＶＯ２ＲＬは、エンジン３の始動時に「０」にリセットされる。
【００７３】
一方、ステップ５３の答がＮＯで、出力変化量の今回値ＤＳＶＯ２がその前回値ＤＳＶＯ２Ｚよりも大きいときには、出力変化量ＤＳＶＯ２（絶対値）が減少側に変化しているとして、第１出力変化量増大中フラグＦ＿ＲＮＷＨＤＳＶＯ２ＲＬを「０」に設定する（ステップ５６）。次いで、前記ステップ５１で設定された第１出力変化量増大中フラグの前回値Ｆ＿ＲＮＷＨＤＳＶＯ２ＲＬＺが「１」であるか否かを判別する（ステップ５７）。
【００７４】
このステップ５７の答がＹＥＳ（Ｆ＿ＲＮＷＨＤＳＶＯ２ＲＬＺ＝１）のときには、前回の処理サイクルにおける前記ステップ５４の実行により第１出力変化量極値ＨＤＳＶＯ２ＲＬの算出（設定）が完了したとして、そのことを表すために、第１出力変化量極値算出済みフラグＦ＿ＨＤＳＶＯ２ＲＬを「１」に設定し（ステップ５８）、本処理を終了する。一方、ステップ５７の答がＮＯのとき、すなわち、出力変化量ＤＳＶＯ２が減少中のときには、そのまま本処理を終了する。
【００７５】
上述したようにして第１出力変化量極値ＨＤＳＶＯ２ＲＬを算出するのは、次の理由による。すなわち、第１出力変化量極値ＨＤＳＶＯ２ＲＬは、出力変化量ＤＳＶＯ２がその前回値ＤＳＶＯ２Ｚ以下である限り（ステップ５３：ＹＥＳ）、すなわち出力変化量ＤＳＶＯ２が増大している限り、ステップ５４の実行によって、今回の出力変化量ＤＳＶＯ２に更新される。また、図５に示すように、それまで増大側に変化していた出力変化量ＤＳＶＯ２（絶対値）が減少側に変化し始めると（図５の時点ｔ１）、それに伴い、第１出力変化量増大中フラグＦ＿ＲＮＷＨＤＳＶＯ２ＲＬが「０」にリセットされる（ステップ５６）。
【００７６】
この時点ｔ１では、第１出力変化量増大中フラグの前回値Ｆ＿ＲＮＷＨＤＳＶＯ２ＲＬＺは「１」であり、その結果、ステップ５７の答がＹＥＳになる。このことから明らかなように、ステップ５７の答がＹＥＳになる直前の処理サイクルで得られた出力変化量ＤＳＶＯ２は、その極値に相当し、ステップ５７の答がＹＥＳになった時点で、ステップ５４による第１出力変化量極値ＨＤＳＶＯ２ＲＬの算出（設定）が完了するためである。なお、図５に示すように、出力変化量ＤＳＶＯ２は、その極値になった後、再び第１所定変化量ＤＶＲＥＦＲＬに戻り、第１所定変化量ＤＶＲＥＦＲＬよりも大きくなる（ステップ５２：ＮＯ）。以上のように、第１出力変化量極値ＨＤＳＶＯ２ＲＬは、出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬになってから再び第１所定変化量ＤＶＲＥＦＲＬに戻るまでの期間内に得られた出力変化量ＤＳＶＯ２の極値である。
【００７７】
図２に戻り、前記ステップ９に続くステップ１０では、図６に示すＷＤＳＶＯ２ＲＬ算出処理を実行する。本処理では、出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬになってから再び第１所定変化量ＤＶＲＥＦＲＬに戻るまでの期間（図７参照）を表す第１出力変化期間パラメータＷＤＳＶＯ２ＲＬが算出される。
【００７８】
まず、図６のステップ６１では、第１開始時排ガス流量積算値算出済みフラグＦ＿ＷＤＳＶＯ２ＳＴＲＬが「１」であるか否かを判別する。この第１開始時排ガス流量積算値算出済みフラグＦ＿ＷＤＳＶＯ２ＳＴＲＬは、後述する第１開始時排ガス流量積算値ＳＵＭＳＶＳＴＲＬの算出が完了したときに、「１」に設定されるものであり、エンジン３の始動時に「０」にリセットされる。
【００７９】
このステップ６１の答がＮＯ（Ｆ＿ＷＤＳＶＯ２ＳＴＲＬ＝０）で、第１開始時排ガス流量積算値ＳＵＭＳＶＳＴＲＬの算出が完了していないときには、出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬ以下であるか否かを判別する（ステップ６２）。この答がＮＯのときには、そのまま本処理を終了する。
【００８０】
一方、上記ステップ６２の答がＹＥＳで、出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬ以下になったときには、図３のステップ３７で算出された第１排ガス流量積算値ＳＵＭＳＶＲＬを第１開始時排ガス流量積算値ＳＵＭＳＶＳＴＲＬとして設定する（ステップ６３）。次いで、第１開始時排ガス流量積算値ＳＵＭＳＶＳＴＲＬの算出（設定）が完了したとして、そのことを表すために、第１開始時排ガス流量積算値算出済みフラグＦ＿ＷＤＳＶＯ２ＳＴＲＬを「１」に設定し（ステップ６４）、本処理を終了する。
【００８１】
第１開始時排ガス流量積算値ＳＵＭＳＶＳＴＲＬは、その算出手法から明らかなように、フューエルカット運転を開始してから、出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬになるまでの排ガス流量の積算値に相当する（図７参照）。
【００８２】
また、上記ステップ６４の実行によって、前記ステップ６１の答がＹＥＳ（Ｆ＿ＷＤＳＶＯ２ＳＴＲＬ＝１）になり、その場合には、第１出力変化期間パラメータ算出済みフラグＦ＿ＷＤＳＶＯ２ＲＬが「１」であるか否かを判別する（ステップ６５）。この第１出力変化期間パラメータ算出済みフラグＦ＿ＷＤＳＶＯ２ＲＬは、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬの算出が完了したときに、「１」にセットされるものである。
【００８３】
このステップ６５の答がＮＯ（Ｆ＿ＷＤＳＶＯ２ＲＬ＝０）で、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬの算出が完了していないときには、出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬ以上であるか否かを判別する（ステップ６６）。この答がＮＯのときには、そのまま本処理を終了する。
【００８４】
一方、ステップ６６の答がＹＥＳで、出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬ以上になったときには、第１排ガス流量積算値ＳＵＭＳＶＲＬを第１終了時排ガス流量積算値ＳＵＭＳＶＥＮＤＲＬとして設定する（ステップ６７）。第１終了時排ガス流量積算値ＳＵＭＳＶＥＮＤＲＬは、その算出手法から明らかなように、フューエルカット運転を開始してから、出力変化量ＤＳＶＯ２が再び第１所定変化量ＤＶＲＥＦＲＬに戻るまでの排ガス流量の積算値に相当する（図７参照）。
【００８５】
次いで、上記ステップ６７で設定された第１終了時排ガス流量積算値ＳＵＭＳＶＥＮＤＲＬから、ステップ６３で設定された第１開始時排ガス流量積算値ＳＵＭＳＶＳＴＲＬを減算することによって、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬを算出する（ステップ６８）。次に、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬの算出が完了したとして、そのことを表すために、第１出力変化期間パラメータ算出済みフラグＦ＿ＷＤＳＶＯ２ＲＬを「１」に設定し（ステップ６９）、本処理を終了する。
【００８６】
また、このステップ６９の実行によって、前記ステップ６５の答がＹＥＳ（Ｆ＿ＷＤＳＶＯ２ＲＬ＝１）になり、その場合には、そのまま本処理を終了する。
【００８７】
前述したように、第１開始時排ガス流量積算値ＳＵＭＳＶＳＴＲＬは、フューエルカット運転を開始してから、出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬになるまでの排ガス流量の積算値に相当し、第１終了時排ガス流量積算値ＳＵＭＳＶＥＮＤＲＬは、フューエルカット運転を開始してから、出力変化量ＤＳＶＯ２が再び第１所定変化量ＤＶＲＥＦＲＬに戻るまでの排ガス流量の積算値に相当する。したがって、図７に示すように、後者（ＳＵＭＳＶＥＮＤＲＬ）から前者（ＳＵＭＳＶＳＴＲＬ）を減算することで算出された第１出力変化期間パラメータＷＤＳＶＯ２ＲＬは、出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬになってから再び第１所定変化量ＤＶＲＥＦＲＬに戻るまでの排ガス流量の積算値に相当し、出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬになってから再び第１所定変化量ＤＶＲＥＦＲＬに戻るまでの期間（図７にＴＩＲＬで図示）を良好に表す。
【００８８】
図２に戻り、前記ステップ１０に続くステップ１１では、第１排ガス流量積算値ＳＵＭＳＶＲＬが第２所定値ＳＵＭＲＬ２以上であるか否かを判別する。この答がＮＯ（ＳＵＭＳＶＲＬ＜ＳＵＭＲＬ２）のときには、図４のステップ５８で設定された第１出力変化量極値算出済みフラグＦ＿ＨＤＳＶＯ２ＲＬが「１」であるか否かを判別する（ステップ１２）。この答がＮＯで、第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出されていないときには、前記ステップ７を実行し、本処理を終了する。
【００８９】
一方、上記ステップ１２の答がＹＥＳで、第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出されているときには、図６のステップ６９で設定された第１出力変化期間パラメータ算出済みフラグＦ＿ＷＤＳＶＯ２ＲＬが「１」であるか否かを判別する（ステップ１３）。この答がＮＯで、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬが算出されていないときには、前記ステップ７を実行し、本処理を終了する。
【００９０】
一方、上記ステップ１３の答がＹＥＳのとき、すなわち、第１出力変化量極値ＨＤＳＶＯ２ＲＬおよび第１出力変化期間パラメータＷＤＳＶＯ２ＲＬがいずれも算出されているときには、図６のステップ６８で算出された第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに対する、図４のステップ５４で設定された第１出力変化量極値の絶対値｜ＨＤＳＶＯ２ＲＬ｜の比（｜ＨＤＳＶＯ２ＲＬ｜／ＷＤＳＶＯ２ＲＬ）を、第１判定用パラメータＫＪＵＤＳＶＯ２ＲＬとして算出する（ステップ１４）。次いで、算出された第１判定用パラメータＫＪＵＤＳＶＯ２ＲＬが第１判定値ＫＲＥＦＲＬ以下であるか否かを判別する（ステップ１５）。
【００９１】
この答がＹＥＳで、第１判定用パラメータＫＪＵＤＳＶＯ２ＲＬが第１判定値ＫＲＥＦＲＬ以下のときには、リーン空燃比への空燃比の切換時におけるＯ２センサ２４の応答特性の異常（以下「第１異常」という）が発生していると仮判定し、そのことを表すために、第１仮異常フラグＦ＿ＴＭＰＮＧＲＬを「１」にセットする（ステップ１６）。次いで、第１異常の仮判定結果が得られたことを表すために、第１仮判定済みフラグＦ＿ＴＭＰＪＵＤＲＬを「１」に設定し（ステップ１７）、本処理を終了する。
【００９２】
一方、上記ステップ１５の答がＮＯで、第１判定用パラメータＫＪＵＤＳＶＯ２ＲＬが第１判定値ＫＲＥＦＲＬよりも大きいときには、第１異常が発生していないと仮判定し、そのことを表すために、第１仮異常フラグＦ＿ＴＭＰＮＧＲＬを「０」に設定する（ステップ１８）。次いで、上記ステップ１７を実行し、本処理を終了する。
【００９３】
以上のようにＯ２センサ２４の第１異常を仮判定するのは、図１９および図２０を用いて前述したように、Ｏ２センサ２４が異常であるときには、第１出力変化量極値の絶対値｜ＨＤＳＶＯ２ＲＬ｜が小さくなるとともに、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬが大きくなる結果、第１判定用パラメータＫＪＵＤＳＶＯ２ＲＬすなわち第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに対する第１出力変化量極値の絶対値｜ＨＤＳＶＯ２ＲＬ｜の比が、第１判定値ＫＲＥＦＲＬ以下になるためである。
【００９４】
なお、一旦、ステップ１５、１６および１８による第１異常の仮判定の結果が得られると、その後、本処理が完了するまで（前記ステップ１がＹＥＳになるまで）の間に、第１出力変化量極値ＨＤＳＶＯ２ＲＬが再度、算出されても、ステップ１２〜１８は実行されず、第１異常の仮判定の結果が変更されることはない。このため、本処理では、第２実施形態で後述するように複数の第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出された場合に、そのうちの最先の第１出力変化量極値ＨＤＳＶＯ２ＲＬと、それに対応する第１出力変化期間パラメータＷＤＳＶＯ２ＲＬとの関係に基づいて、Ｏ２センサ２４の第１異常が仮判定される。
【００９５】
一方、前記ステップ１１の答がＹＥＳで、第１排ガス流量積算値ＳＵＭＳＶＲＬが第２所定値ＳＵＭＲＬ２に達したとき、すなわち、リーン空燃比への混合気空燃比の切換の開始時から多量の排ガスがＯ２センサ２４を通過しときには、前記ステップ７または１７で設定された第１仮判定済みフラグＦ＿ＴＭＰＪＵＤＲＬが「１」であるか否かを判別する（ステップ１９）。この答がＹＥＳで、第１異常の仮判定結果が得られているときには、第１仮異常フラグＦ＿ＴＭＰＮＧＲＬが「１」であるか否かを判別する（ステップ２０）。
【００９６】
この答がＮＯ（Ｆ＿ＴＭＰＮＧＲＬ＝０）のとき、すなわち、リーン空燃比への混合気空燃比の切換の開始時から多量の排ガスがＯ２センサ２４を通過しており、かつ、Ｏ２センサ２４の第１異常が発生していないと仮判定されているときには、第１異常が発生していないとの判定を確定し、そのことを表すために、第１異常フラグＦ＿ＮＧＲＬを「０」に設定する（ステップ２１）。次いで、本処理による異常判定が完了したとして、そのことを表すために、第１異常判定完了フラグＦ＿ＤＯＮＥＲＬを「１」に設定し（ステップ２２）、本処理を終了する。
【００９７】
一方、上記ステップ２０の答がＹＥＳ（Ｆ＿ＴＭＰＮＧＲＬ＝１）のとき、すなわち、リーン空燃比への混合気空燃比の切換の開始時から多量の排ガスがＯ２センサ２４を通過しており、かつ、Ｏ２センサ２４の第１異常が発生していると仮判定されているときには、第１異常が発生しているとの判定を確定し、そのことを表すために、第１異常フラグＦ＿ＮＧＲＬを「１」に設定する（ステップ２３）。次いで、上記ステップ２２を実行し、本処理を終了する。
【００９８】
一方、前記ステップ１９の答がＮＯで、第１仮判定済みフラグＦ＿ＴＭＰＪＵＤＲＬが「０」のとき、すなわち、リーン空燃比への混合気空燃比の切換の開始時から多量の排ガスがＯ２センサ２４を通過しており、かつ、第１出力変化量極値ＨＤＳＶＯ２ＲＬおよび／または第１出力変化期間パラメータＷＤＳＶＯ２ＲＬが算出されていないことで、第１異常の仮判定結果が得られていないときには、第１異常が発生しているとの判定を確定するとともに、上記ステップ２３および２２を実行し、本処理を終了する。
【００９９】
また、ステップ２２の実行により前記ステップ１の答がＹＥＳ（Ｆ＿ＤＯＮＥＲＬ＝１）になり、その場合には、第１実行条件成立フラグＦ＿ＪＵＤＲＬを「０」にリセットする（ステップ２４）とともに、前記ステップ４〜７を実行し、本処理を終了する。
【０１００】
次に、図８〜図１１を参照しながら、第２異常判定処理について説明する。この第２異常判定処理では、混合気空燃比がリーン空燃比からリッチ空燃比に切り換えられたときにおけるＯ２センサ２４の応答特性の異常が、第１異常判定処理と同様、出力変化量ＤＳＶＯ２の変化期間と当該変化期間における極値との関係に基づいて判定される。この場合におけるリッチ空燃比への混合気空燃比の切換として、フューエルカット運転から前述したＣＡＴ還元モードへのエンジン３の運転モードの切換が利用される。また、第２異常判定処理は、第１異常判定処理と同様、エンジン３の始動後、所定周期（例えば１０ｍｓｅｃ〜５０ｍｓｅｃの範囲内の所定の周期）で繰り返し実行される。
【０１０１】
まず、図８のステップ８１では、第２異常判定完了フラグＦ＿ＤＯＮＥＬＲが「１」であるか否かを判別する。この第２異常判定完了フラグＦ＿ＤＯＮＥＲＬは、本処理（第２異常判処理）による異常判定が完了したときに「１」にセットされるものであり、エンジン３の始動時に「０」にリセットされる。
【０１０２】
このステップ８１の答がＮＯで、本処理による異常判定が完了していないときには、第２実行条件判定処理を実行する（ステップ８２）。この第２実行条件判定処理は、本処理による異常判定を実行するための条件である第２実行条件が成立しているか否かを判定するものであり、図９に示すフローチャートに従って実行される。
【０１０３】
まず、図９のステップ１１１、１１２および１１３においてそれぞれ、図３のステップ３１、３４および３５と同様、指定故障が発生しているか、エンジン３の暖機が完了しているか否か、および、Ｏ２センサ２４が活性済みであるか否かを判別する。このステップ１１１の答がＹＥＳ、または、ステップ１１２若しくは１１３の答がＮＯのときには、第２排ガス流量積算値ＳＵＭＳＶＬＲを値０にリセットする（ステップ１１４）とともに、第２実行条件が成立していないとして、第２実行条件成立フラグＦ＿ＪＵＤＬＲを「０」にリセットし（ステップ１１５）、本処理を終了する。
【０１０４】
一方、ステップ１１１の答がＮＯで指定故障が発生しておらず、ステップ１１２の答がＹＥＳでエンジン３の暖機が完了しており、且つ、ステップ１１３の答がＹＥＳでＯ２センサ２４が活性化済みであるときには、ステップ１１６および１１７において、フューエルカットフラグＦ＿Ｆ／Ｃが「１」であるか否か、および、ＣＡＴ還元モード中であるか否かを、それぞれ判別する。
【０１０５】
このステップ１１６の答がＹＥＳでフューエルカット運転の実行中であるとき、または、ステップ１１７の答がＮＯでＣＡＴ還元モードの実行中でないときには、第２実行条件が成立していないとして、前記ステップ１１４および１１５を実行し、本処理を終了する。このようにフューエルカット運転の実行中であるとき、または、ＣＡＴ還元モードの実行中でないときに、第２実行条件が成立していないとみなすのは、次の理由による。すなわち、前述したように、第２異常判定処理では、リーン空燃比からリッチ空燃比への混合気空燃比の切換時におけるＯ２センサ２４の応答特性の異常が判定され、この場合における混合気空燃比の切換として、フューエルカット運転からＣＡＴ還元モードへの運転モードの切換を利用するためである。
【０１０６】
一方、ステップ１１６の答がＮＯで、かつ、ステップ１１７の答がＹＥＳのとき、すなわち、フューエルカット運転の実行中でなく、かつ、ＣＡＴ還元モードの実行中であるときには、そのときに得られている第２排ガス流量積算値ＳＵＭＳＶＬＲすなわちその前回値に、第２排ガス流量ＳＶＬＲを加算することによって、第２排ガス流量積算値の今回値ＳＵＭＳＶＬＲを算出する（ステップ１１８）。この第２排ガス流量ＳＶＬＲは、今回の処理サイクルでエンジン３から排出された排ガスの流量に相当し、検出された吸入空気量ＱＡに応じて算出される。また、第２排ガス流量積算値ＳＵＭＳＶＬＲは、フューエルカット運転の終了に伴って開始されたＣＡＴ還元モードの開始時から今回までに排出された排ガスの流量の積算値に相当する。その理由は次のとおりである。
【０１０７】
すなわち、ステップ１１１〜１１３の判別結果は、ステップ３１、３４およびステップ３５と同様、エンジン３の始動後、最初のフューエルカット運転が実行される前に、すなわち、最初のフューエルカット運転の終了に伴ってＣＡＴ還元モードが実行される前に、得られる。それに加え、ステップ１１７の答がＹＥＳにならない限り、すなわち、ＣＡＴ還元モードが開始されない限り、前記ステップ１１４の実行によって第２排ガス流量積算値ＳＵＭＳＶＬＲが値０に保持されるとともに、第２排ガス流量積算値ＳＵＭＳＶＬＲが、その前回値に今回の処理サイクルでエンジン３から排出された排ガスの流量（第２排ガス流量ＳＶＬＲ）を加算することによって算出されるためである。
【０１０８】
上記ステップ１１８に続くステップ１１９では、第２実行条件成立フラグＦ＿ＪＵＤＬＲが「１」であるか否かを判別する。この答がＮＯ（Ｆ＿ＪＵＤＬＲ＝０）のときには、ステップ１１８で算出された第２排ガス流量積算値ＳＵＭＳＶＬＲが第１所定値ＳＵＭＬＲ１以上であるか否かを判別する（ステップ１２０）。
【０１０９】
このステップ１２０の答がＮＯ（ＳＵＭＳＶＬＲ＜ＳＵＭＬＲ１）で、ＣＡＴ還元モードの開始時からの排ガス流量の積算値が、第１所定値ＳＵＭＬＲ１よりも小さいときには、ＣＡＴ還元モードの開始によりリーン空燃比からリッチ空燃比に切り換えられた混合気空燃比に対応する排ガスが、Ｏ２センサ２４にまだ到達していないとみなす。また、それによりＯ２センサ２４の異常を精度良く判定できないため、第２実行条件が成立していないとして、前記ステップ１１５を実行し、本処理を終了する。
【０１１０】
一方、ステップ１２０の答がＹＥＳ（ＳＵＭＳＶＬＲ≧ＳＵＭＬＲ１）で、ＣＡＴ還元モードの開始時からの排ガス流量の積算値が第１所定値ＳＵＭＬＲ１に達したときには、Ｏ２センサ出力ＳＶＯ２が第２所定出力ＶＲＥＦＬＲ以下であるか否かを判別する（ステップ１２１）。
【０１１１】
このステップ１２１の答がＮＯ（ＳＶＯ２＞ＶＲＥＦＬＲ）のときには、Ｏ２センサ出力ＳＶＯ２で表される排ガス空燃比がリッチ側にあることから、リーン空燃比からリッチ空燃比への混合気空燃比の切換時におけるＯ２センサ２４の異常を精度良く判定できないおそれがあるため、第２実行条件が成立していないとして、前記ステップ１１５を実行し、本処理を終了する。
【０１１２】
一方、ステップ１２１の答がＹＥＳで、Ｏ２センサ出力ＳＶＯ２が第２所定出力ＶＲＥＦＬＲ以下であるときには、第２実行条件が成立したとして、第２実行条件成立フラグＦ＿ＪＵＤＬＲを「１」に設定し（ステップ１２２）、本処理を終了する。また、このステップ１２２の実行によって、前記ステップ１１９の答がＹＥＳ（Ｆ＿ＪＵＤＬＲ＝１）になり、その場合には、そのまま本処理を終了する。
【０１１３】
図８に戻り、前記ステップ８２に続くステップ８３では、第２実行条件成立フラグＦ＿ＪＵＤＬＲが「１」であるか否かを判別する。この答がＮＯ（Ｆ＿ＪＵＤＬＲ＝０）で、第２実行条件が成立していないときには、ステップ８４〜８７においてそれぞれ、後述する第２開始時排ガス流量積算値算出済みフラグＦ＿ＷＤＳＶＯ２ＳＴＬＲ、第２出力変化量極値算出済みフラグＦ＿ＨＤＳＶＯ２ＬＲ、第２出力変化期間パラメータ算出済みフラグＦ＿ＷＤＳＶＯ２ＬＲ、および第２仮判定済みフラグＦ＿ＴＭＰＪＵＤＬＲを「０」にリセットし、本処理を終了する。
【０１１４】
一方、上記ステップ８３の答がＹＥＳ（Ｆ＿ＪＵＤＬＲ＝１）で、第２実行条件が成立しているときには、ステップ８８において、図２のステップ８と同様、そのときに得られている出力変化量ＤＳＶＯ２をその前回値ＤＳＶＯ２Ｚとしてシフトするとともに、出力変化量の今回値ＤＳＶＯ２を算出する。
【０１１５】
ステップ８８に続くステップ８９では、図１０に示すＨＤＳＶＯ２ＬＲ算出処理を実行する。前述したように、本処理を含む第２異常判定処理では、リーン空燃比からリッチ空燃比への混合気空燃比の切換時におけるＯ２センサ２４の応答特性の異常が判定される。この場合、図５に示すリーン空燃比への混合気空燃比の切換時の場合とは逆に、Ｏ２センサ出力ＳＶＯ２は、リッチ空燃比への混合気空燃比の切換によってＬｏレベルからＨｉレベルに変化し、それに伴い、Ｏ２センサ出力ＳＶＯ２の変化量である出力変化量ＤＳＶＯ２は、値０から増大し、正の極値となった後に減少し、再び値０に戻る。本処理では、出力変化量ＤＳＶＯ２が後述する第２所定変化量ＤＶＲＥＦＬＲになってから再び第２所定変化量ＤＶＲＥＦＬＲに戻るまでの期間内における出力変化量ＤＳＶＯ２の極値として、第２出力変化量極値ＨＤＳＶＯ２ＬＲが算出される。
【０１１６】
まず、図１０のステップ１３１では、そのときに得られている第２出力変化量増大中フラグＦ＿ＲＮＷＨＤＳＶＯ２ＬＲを、その前回値Ｆ＿ＲＮＷＨＤＳＶＯ２ＬＲＺとしてシフトする。この第２出力変化量増大中フラグＦ＿ＲＮＷＨＤＳＶＯ２ＬＲの詳細については、後述する。
【０１１７】
次いで、図２のステップ８８で算出された出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲ以上であるか否かを判別する（ステップ１３２）。この第２所定変化量ＤＶＲＥＦＬＲは、出力変化量ＤＳＶＯ２が確実に変化しているか否かを判定できるような正の所定値に設定されており、その絶対値が、前述した第１所定変化量ＤＶＲＥＦＲＬと等しい。このステップ１３２の答がＮＯのときには、そのまま本処理を終了する一方、ＹＥＳで、出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲ以上であるときには、出力変化量の今回値ＤＳＶＯ２がその前回値ＤＳＶＯ２Ｚ以上であるか否かを判別する（ステップ１３３）。
【０１１８】
このステップ１３３の答がＹＥＳで、ＤＳＶＯ２≧ＤＳＶＯ２Ｚのとき、すなわち、出力変化量ＤＳＶＯ２が増大しているときには、出力変化量ＤＳＶＯ２を第２出力変化量極値ＨＤＳＶＯ２ＬＲとして設定する（ステップ１３４）とともに、出力変化量ＤＳＶＯ２の増大中であることを表すために、第２出力変化量増大中フラグＦ＿ＲＮＷＨＤＳＶＯ２ＬＲを「１」に設定し（ステップ１３５）、本処理を終了する。なお、第２出力変化量増大中フラグＦ＿ＲＮＷＨＤＳＶＯ２ＬＲは、エンジン３の始動時に「０」にリセットされる。
【０１１９】
一方、ステップ１３３の答がＮＯで、出力変化量の今回値ＤＳＶＯ２がその前回値ＤＳＶＯ２Ｚよりも小さいときには、出力変化量ＤＳＶＯ２が減少側に変化しているとして、第２出力変化量増大中フラグＦ＿ＲＮＷＨＤＳＶＯ２ＬＲを「０」に設定する（ステップ１３６）。次いで、前記ステップ１３１で設定された第１出力変化量増大中フラグの前回値Ｆ＿ＲＮＷＨＤＳＶＯ２ＬＲＺが「１」であるか否かを判別する（ステップ１３７）。
【０１２０】
このステップ１３７の答がＹＥＳ（Ｆ＿ＲＮＷＨＤＳＶＯ２ＬＲＺ＝１）のときには、前回の処理サイクルにおける前記ステップ１３４の実行により第２出力変化量極値ＨＤＳＶＯ２ＬＲの算出（設定）が完了したとして、そのことを表すために、第２出力変化量極値算出済みフラグＦ＿ＨＤＳＶＯ２ＬＲを「１」に設定し（ステップ１３８）、本処理を終了する。一方、ステップ１３７の答がＮＯのとき、すなわち、出力変化量ＤＳＶＯ２が減少中のときには、そのまま本処理を終了する。
【０１２１】
上述したようにして第２出力変化量極値ＨＤＳＶＯ２ＬＲを算出するのは、第１出力変化量極値ＨＤＳＶＯ２ＲＬと同様の理由による。このため、その詳細な説明については省略する。
【０１２２】
図８に戻り、前記ステップ８９に続くステップ９０では、図１１に示すＷＤＳＶＯ２ＬＲ算出処理を実行する。本処理では、出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲになってから再び第２所定変化量ＤＶＲＥＦＬＲに戻るまでの期間を表す第２出力変化期間パラメータＷＤＳＶＯ２ＬＲが算出される。
【０１２３】
まず、図１１のステップ１４１では、第２開始時排ガス流量積算値算出済みフラグＦ＿ＷＤＳＶＯ２ＳＴＬＲが「１」であるか否かを判別する。この第２開始時排ガス流量積算値算出済みフラグＦ＿ＷＤＳＶＯ２ＳＴＬＲは、後述する第２開始時排ガス流量積算値ＳＵＭＳＶＳＴＬＲの算出が完了したときに、「１」に設定されるものであり、エンジン３の始動時に「０」にリセットされる。
【０１２４】
このステップ１４１の答がＮＯ（Ｆ＿ＷＤＳＶＯ２ＳＴＬＲ＝０）で、第２開始時排ガス流量積算値ＳＵＭＳＶＳＴＬＲの算出が完了していないときには、出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲ以上であるか否かを判別する（ステップ１４２）。この答がＮＯのときには、そのまま本処理を終了する。
【０１２５】
一方、上記ステップ１４２の答がＹＥＳで、出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲ以上になったときには、図９のステップ１１８で算出された第２排ガス流量積算値ＳＵＭＳＶＬＲを第２開始時排ガス流量積算値ＳＵＭＳＶＳＴＬＲとして設定する（ステップ１４３）。次いで、第２開始時排ガス流量積算値ＳＵＭＳＶＳＴＬＲの算出（設定）が完了したとして、そのことを表すために、第２開始時排ガス流量積算値算出済みフラグＦ＿ＷＤＳＶＯ２ＳＴＬＲを「１」に設定し（ステップ１４４）、本処理を終了する。
【０１２６】
第２開始時排ガス流量積算値ＳＵＭＳＶＳＴＬＲは、その算出手法から明らかなように、ＣＡＴ還元モードを開始してから、出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲになるまでの排ガス流量の積算値に相当する。
【０１２７】
また、上記ステップ１４４の実行によって、前記ステップ１４１の答がＹＥＳ（Ｆ＿ＷＤＳＶＯ２ＳＴＬＲ＝１）になり、その場合には、第２出力変化期間パラメータ算出済みフラグＦ＿ＷＤＳＶＯ２ＬＲが「１」であるか否かを判別する（ステップ１４５）。この第２出力変化期間パラメータ算出済みフラグＦ＿ＷＤＳＶＯ２ＬＲは、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲの算出が完了したときに、「１」にセットされるものである。
【０１２８】
このステップ１４５の答がＮＯ（Ｆ＿ＷＤＳＶＯ２ＬＲ＝０）で、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲの算出が完了していないときには、出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲ以下であるか否かを判別する（ステップ１４６）。この答がＮＯのときには、そのまま本処理を終了する。
【０１２９】
一方、ステップ１４６の答がＹＥＳで、出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲ以下になったときには、第２排ガス流量積算値ＳＵＭＳＶＬＲを第２終了時排ガス流量積算値ＳＵＭＳＶＥＮＤＬＲとして設定する（ステップ１４７）。第２終了時排ガス流量積算値ＳＵＭＳＶＥＮＤＬＲは、その算出手法から明らかなように、ＣＡＴ還元モードを開始してから、出力変化量ＤＳＶＯ２が再び第２所定変化量ＤＶＲＥＦＬＲに戻るまでの排ガス流量の積算値に相当する。
【０１３０】
次いで、上記ステップ１４７で設定された第２終了時排ガス流量積算値ＳＵＭＳＶＥＮＤＬＲから、ステップ１４３で設定された第２開始時排ガス流量積算値ＳＵＭＳＶＳＴＬＲを減算することによって、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲを算出する（ステップ１４８）。次に、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲの算出が完了したとして、そのことを表すために、第２出力変化期間パラメータ算出済みフラグＦ＿ＷＤＳＶＯ２ＬＲを「１」に設定し（ステップ１４９）、本処理を終了する。
【０１３１】
また、このステップ１４９の実行によって、前記ステップ１４５の答がＹＥＳ（Ｆ＿ＷＤＳＶＯ２ＬＲ＝１）になり、その場合には、そのまま本処理を終了する。
【０１３２】
前述したように、第２開始時排ガス流量積算値ＳＵＭＳＶＳＴＬＲは、ＣＡＴ還元モードを開始してから、出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲになるまでの排ガス流量の積算値に相当し、第２終了時排ガス流量積算値ＳＵＭＳＶＥＮＤＬＲは、ＣＡＴ還元モードを開始してから、出力変化量ＤＳＶＯ２が再び第２所定変化量ＤＶＲＥＦＬＲに戻るまでの排ガス流量の積算値に相当する。したがって、後者（ＳＵＭＳＶＥＮＤＬＲ）から前者（ＳＵＭＳＶＳＴＬＲ）を減算することで算出された第２出力変化期間パラメータＷＤＳＶＯ２ＬＲは、出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲになってから再び第２所定変化量ＤＶＲＥＦＬＲに戻るまでの排ガス流量の積算値に相当し、出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲになってから再び第２所定変化量ＤＶＲＥＦＬＲに戻るまでの期間を良好に表す。
【０１３３】
図８に戻り、前記ステップ９０に続くステップ９１では、第２排ガス流量積算値ＳＵＭＳＶＬＲが第２所定値ＳＵＭＬＲ２以上であるか否かを判別する。この答がＮＯ（ＳＵＭＳＶＬＲ＜ＳＵＭＬＲ２）のときには、図１０のステップ１３８で設定された第２出力変化量極値算出済みフラグＦ＿ＨＤＳＶＯ２ＬＲが「１」であるか否かを判別する（ステップ９２）。この答がＮＯで、第２出力変化量極値ＨＤＳＶＯ２ＬＲが算出されていないときには、前記ステップ８７を実行し、本処理を終了する。
【０１３４】
一方、上記ステップ９２の答がＹＥＳで、第２出力変化量極値ＨＤＳＶＯ２ＬＲが算出されているときには、図１１のステップ１４９で設定された第２出力変化期間パラメータ算出済みフラグＦ＿ＷＤＳＶＯ２ＬＲが「１」であるか否かを判別する（ステップ９３）。この答がＮＯで、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲが算出されていないときには、前記ステップ８７を実行し、本処理を終了する。
【０１３５】
一方、上記ステップ９３の答がＹＥＳのとき、すなわち、第２出力変化量極値ＨＤＳＶＯ２ＬＲおよび第２出力変化期間パラメータＷＤＳＶＯ２ＬＲがいずれも算出されているときには、図１１のステップ１４８で算出された第２出力変化期間パラメータＷＤＳＶＯ２ＬＲに対する、図１０のステップ１３４で設定された第２出力変化量極値の絶対値｜ＨＤＳＶＯ２ＬＲ｜の比（｜ＨＤＳＶＯ２ＬＲ｜／ＷＤＳＶＯ２ＬＲ）を、第２判定用パラメータＫＪＵＤＳＶＯ２ＬＲとして算出する（ステップ９４）。次いで、算出された第２判定用パラメータＫＪＵＤＳＶＯ２ＬＲが第２判定値ＫＲＥＦＬＲ以下であるか否かを判別する（ステップ９５）。
【０１３６】
この答がＹＥＳで、第２判定用パラメータＫＪＵＤＳＶＯ２ＬＲが第２判定値ＫＲＥＦＬＲ以下のときには、リッチ空燃比への空燃比の切換時におけるＯ２センサ２４の応答特性の異常（以下「第２異常」という）が発生していると仮判定し、そのことを表すために、第２仮異常フラグＦ＿ＴＭＰＮＧＬＲを「１」にセットする（ステップ９６）。次いで、第２異常の仮判定結果が得られたことを表すために、第２仮判定済みフラグＦ＿ＴＭＰＪＵＤＬＲを「１」に設定し（ステップ９７）、本処理を終了する。
【０１３７】
一方、上記ステップ９５の答がＮＯで、第２判定用パラメータＫＪＵＤＳＶＯ２ＬＲが第２判定値ＫＲＥＦＬＲよりも大きいときには、第２異常が発生していないと仮判定し、そのことを表すために、第２仮異常フラグＦ＿ＴＭＰＮＧＬＲを「０」に設定する（ステップ９８）。次いで、上記ステップ９７を実行し、本処理を終了する。
【０１３８】
以上のようにＯ２センサ２４の第２異常を仮判定するのは、図１９および図２０を用いて前述したように、Ｏ２センサ２４が異常であるときには、第２出力変化量極値の絶対値｜ＨＤＳＶＯ２ＬＲ｜が小さくなるとともに、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲが大きくなる結果、第２判定用パラメータＫＪＵＤＳＶＯ２ＬＲすなわち第２出力変化期間パラメータＷＤＳＶＯ２ＬＲに対する第２出力変化量極値の絶対値｜ＨＤＳＶＯ２ＬＲ｜の比が、第２判定値ＫＲＥＦＬＲ以下になるためである。
【０１３９】
なお、一旦、ステップ９５、９６および９８による第２異常の仮判定の結果が得られると、その後、本処理が完了するまで（前記ステップ８１がＹＥＳになるまで）の間に、第２出力変化量極値ＨＤＳＶＯ２ＬＲが再度、算出されても、ステップ９２〜９８は実行されず、第２異常の仮判定の結果が変更されることはない。このため、本処理では、第２実施形態で後述するように複数の第２出力変化量極値ＨＤＳＶＯ２ＬＲが算出された場合に、そのうちの最先の第２出力変化量極値ＨＤＳＶＯ２ＬＲと、それに対応する第２出力変化期間パラメータＷＤＳＶＯ２ＬＲとの関係に基づいて、Ｏ２センサ２４の第２異常が仮判定される。
【０１４０】
一方、前記ステップ９１の答がＹＥＳで、第２排ガス流量積算値ＳＵＭＳＶＬＲが第２所定値ＳＵＭＬＲ２に達したとき、すなわち、リッチ空燃比への混合気空燃比の切換の開始時から多量の排ガスがＯ２センサ２４を通過しときには、前記ステップ８７または９７で設定された第２仮判定済みフラグＦ＿ＴＭＰＪＵＤＬＲが「１」であるか否かを判別する（ステップ９９）。この答がＹＥＳで、第２異常の仮判定結果が得られているときには、第２仮異常フラグＦ＿ＴＭＰＮＧＬＲが「１」であるか否かを判別する（ステップ１００）。
【０１４１】
この答がＮＯ（Ｆ＿ＴＭＰＮＧＬＲ＝０）のとき、すなわち、リッチ空燃比への混合気空燃比の切換の開始時から多量の排ガスがＯ２センサ２４を通過しており、かつ、Ｏ２センサ２４の第２異常が発生していないと仮判定されているときには、第２異常が発生していないとの判定を確定し、そのことを表すために、第２異常フラグＦ＿ＮＧＬＲを「０」に設定する（ステップ１０１）。次いで、本処理による異常判定が完了したとして、そのことを表すために、第２異常判定完了フラグＦ＿ＤＯＮＥＬＲを「１」に設定し（ステップ１０２）、本処理を終了する。
【０１４２】
一方、上記ステップ１００の答がＹＥＳ（Ｆ＿ＴＭＰＮＧＬＲ＝１）のとき、すなわち、リッチ空燃比への混合気空燃比の切換の開始時から多量の排ガスがＯ２センサ２４を通過しており、かつ、Ｏ２センサ２４の第２異常が発生していると仮判定されているときには、第２異常が発生しているとの判定を確定し、そのことを表すために、第２異常フラグＦ＿ＮＧＬＲを「１」に設定する（ステップ１０３）。次いで、上記ステップ１０２を実行し、本処理を終了する。
【０１４３】
一方、前記ステップ９９の答がＮＯで、第２仮判定済みフラグＦ＿ＴＭＰＪＵＤＬＲが「０」のとき、すなわち、リッチ空燃比への混合気空燃比の切換の開始時から多量の排ガスがＯ２センサ２４を通過しており、かつ、第２出力変化量極値ＨＤＳＶＯ２ＬＲおよび／または第２出力変化期間パラメータＷＤＳＶＯ２ＬＲが算出されていないことで、第２異常の仮判定結果が得られていないときには、第２異常が発生しているとの判定を確定するとともに、上記ステップ１０３および１０２を実行し、本処理を終了する。
【０１４４】
また、ステップ１０２の実行により前記ステップ８１の答がＹＥＳ（Ｆ＿ＤＯＮＥＬＲ＝１）になり、その場合には、第２実行条件成立フラグＦ＿ＪＵＤＬＲを「０」にリセットする（ステップ１０４）とともに、前記ステップ８４〜８７を実行し、本処理を終了する。
【０１４５】
また、第１実施形態における各種の要素と、各請求項に係る発明における各種の要素との対応関係は、次のとおりである。すなわち、第１実施形態におけるＯ２センサ２４および三元触媒７が、本発明における空燃比センサおよび触媒にそれぞれ相当するとともに、第１実施形態におけるＥＣＵ２が、本発明における空燃比制御手段、出力変化期間パラメータ算出手段、出力変化量極値算出手段、異常判定手段、および排ガス流量積算値算出手段に相当する。
【０１４６】
また、第１実施形態における出力変化量ＤＳＶＯ２が、本発明における空燃比センサの出力の変化量に相当するとともに、第１実施形態における第１および第２所定変化量ＤＶＲＥＦＲＬ、ＤＶＲＥＦＬＲが、本発明における所定変化量に相当する。さらに、第１実施形態における第１および第２出力変化期間パラメータＷＤＳＶＯ２ＲＬ、ＷＤＳＶＯ２ＬＲが、本発明における出力変化期間パラメータに相当するとともに、第１実施形態における第１および第２出力変化量極値ＨＤＳＶＯ２ＲＬ、ＨＤＳＶＯ２ＬＲが、本発明における出力変化量極値に相当する。また、第１実施形態における第１および第２判定用パラメータＫＪＵＤＳＶＯ２ＲＬ、ＫＪＵＤＳＶＯ２ＬＲが、本発明における出力変化期間パラメータと出力変化量極値との関係、および出力変化期間パラメータに対する出力変化量極値の比に相当する。さらに、第１実施形態における第１および第２排ガス流量積算値ＳＵＭＳＶＲＬ、ＳＵＭＳＶＬＲが、本発明における排ガス流量積算値に相当するとともに、第１実施形態における第１および第２所定値ＳＵＭＬＲ１、ＳＵＭＬＲ２が、本発明における第３および第４所定値にそれぞれ相当する。
【０１４７】
以上のように、第１実施形態によれば、第１異常判定処理が実行されることによって、リッチ空燃比からリーン空燃比への混合気空燃比の切換が行われた後に、この切換により出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬになってから再び第１所定変化量ＤＶＲＥＦＲＬに戻るまでの期間（以下「第１出力変化期間」という）を表す第１出力変化期間パラメータＷＤＳＶＯ２ＲＬが算出される（図６のステップ６８）。また、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬによって表される第１出力変化期間内に得られた出力変化量ＤＳＶＯ２の極値である第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出される（図４のステップ５４）。さらに、算出された第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに対する、第１出力変化量極値の絶対値｜ＨＤＳＶＯ２ＲＬ｜の比に基づいて、Ｏ２センサ２４の第１異常が仮判定される（図２のステップ１４〜１６および１８）。
【０１４８】
また、第２異常判定処理が実行されることによって、リーン空燃比からリッチ空燃比への混合気空燃比の切換が行われた後に、この切換により出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲになってから再び第２所定変化量ＤＶＲＥＦＬＲに戻るまでの期間（以下「第２出力変化期間」という）を表す第２出力変化期間パラメータＷＤＳＶＯ２ＬＲが算出される（図１１のステップ１４８）。また、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲによって表される第２出力変化期間内に得られた出力変化量ＤＳＶＯ２の極値である第２出力変化量極値ＨＤＳＶＯ２ＬＲが算出される（図１０のステップ１３４）。さらに、算出された第２出力変化期間パラメータＷＤＳＶＯ２ＬＲに対する、第２出力変化量極値の絶対値｜ＨＤＳＶＯ２ＬＲ｜の比に基づいて、Ｏ２センサ２４の第２異常が仮判定される（図８のステップ９４〜９６および９８）。
【０１４９】
以上により、図２０を用いて説明した排ガス空燃比停滞の影響により排ガス空燃比の変化量が比較的小さい場合でも、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬと第１出力変化量極値ＨＤＳＶＯ２ＲＬとの関係に基づいて、Ｏ２センサ２４の第１異常を精度良く判定することができる。同様に、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲと第２出力変化量極値ＨＤＳＶＯ２ＬＲとの関係に基づいて、Ｏ２センサ２４の第２異常を精度良く判定することができる。
【０１５０】
また、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬとして、出力変化量ＤＳＶＯ２が第１所定変化量ＤＶＲＥＦＲＬになってから再び第１所定変化量ＤＶＲＥＦＲＬに戻るまでの期間を算出するので、ノイズなどの外乱などによりＯ２センサ出力ＳＶＯ２が一時的に小さく変動したときの第１出力変化期間に基づいて第１異常の判定が行われるのを防止することができる。同様に、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲとして、出力変化量ＤＳＶＯ２が第２所定変化量ＤＶＲＥＦＬＲになってから再び第２所定変化量ＤＶＲＥＦＬＲに戻るまでの期間を算出するので、ノイズなどの外乱などによりＯ２センサ出力ＳＶＯ２が一時的に小さく変動したときの第２出力変化期間に基づいて第２異常の判定が行われるのを防止することができる。
【０１５１】
さらに、Ｏ２センサ２４の応答特性が、リーン空燃比への混合気空燃比の切換時（以下「リーン空燃比切換時」という）と、リッチ空燃比への混合気空燃比の切換時（以下「リッチ空燃比切換時」という）とで、互いに異なる場合でも、リーン空燃比切換時におけるＯ２センサ２４の異常である第１異常とリッチ空燃比切換時におけるＯ２センサ２４の異常である第２異常の双方を精度良く判定することができる。
【０１５２】
また、Ｏ２センサ２４の第１異常の判定を、第１判定用パラメータＫＪＵＤＳＶＯ２ＲＬ、すなわち第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに対する第１出力変化量極値の絶対値｜ＨＤＳＶＯ２ＲＬ｜の比に基づいて行うので、第１出力変化期間と第１出力変化量極値ＨＤＳＶＯ２ＲＬとの関係に直接的に基づいて適切に行うことができる。同様に、Ｏ２センサ２４の第２異常の判定を、第２判定用パラメータＫＪＵＤＳＶＯ２ＬＲ、すなわち第２出力変化期間パラメータＷＤＳＶＯ２ＬＲに対する第２出力変化量極値の絶対値｜ＨＤＳＶＯ２ＬＲ｜の比に基づいて行うので、第２出力変化期間と第２出力変化量極値ＨＤＳＶＯ２ＬＲとの関係に直接的に基づいて適切に行うことができる。
【０１５３】
さらに、排ガス空燃比が理論排ガス空燃比の付近にあるときに、排ガス空燃比に対する出力変化量ＤＳＶＯ２が最大になるという出力特性を、Ｏ２センサ２４が有しており、そのようなＯ２センサ２４に対し、混合気空燃比を、理論空燃比よりもリーンなリーン空燃比とリッチなリッチ空燃比との間で切り換えるので、算出された第１および第２判定用パラメータＫＪＵＤＳＶＯ２ＲＬ，ＫＪＵＤＳＶＯ２ＬＲはそれぞれ、Ｏ２センサ２４の第１および第２異常の有無をより良好に表す。したがって、前述した効果、すなわち、排ガス空燃比停滞の影響により排ガス空燃比の変化量が小さい場合でもＯ２センサ２４の第１および第２異常を精度良く判定することができるという効果を、有効に得ることができる。
【０１５４】
また、Ｏ２センサ２４の上流側に三元触媒７が設けられているので、排ガス空燃比がエンジン３の複数の気筒間でばらついている場合でも、排ガスが三元触媒７において攪拌されるので、このばらつきに起因する排ガス空燃比の変動による異常判定への影響を抑制することができる。
【０１５５】
さらに、第１異常判定処理において、リーン空燃比への混合気空燃比の切換が、フューエルカット運転への運転モードの切換を利用して行われ（図３のステップ３６）、フューエルカット運転が開始された以降の排ガス流量の積算値である第１排ガス流量積算値ＳＵＭＳＶＲＬが算出される（図３のステップ３７）。そして、算出された第１排ガス流量積算値ＳＵＭＳＶＲＬが第１所定値ＳＵＭＲＬ１以上になって（図３のステップ３９：ＹＥＳ）から第２所定値ＳＵＭＲＬ２に達する（図２のステップ１１：ＹＥＳ）までの期間（以下「第１判定期間」という）が経過するまでに、第１判定用パラメータＫＪＵＤＳＶＯ２ＲＬに基づくＯ２センサ２４の第１異常の判定が終了しているとき（図２のステップ１９：ＹＥＳ）には、当該判定結果に基づいてＯ２センサ２４の第１異常が確定される（ステップ２０、２１および２３）。
【０１５６】
また、第２異常判定処理において、リッチ空燃比への混合気空燃比の切換が、フューエルカット運転終了後のＣＡＴ還元処理モードへの運転モードの切換を利用して行われ（図９のステップ１１６および１１７）、ＣＡＴ還元モードが開始された以降の排ガス流量の積算値である第２排ガス流量積算値ＳＵＭＳＶＬＲが算出される（図９のステップ１１８）。そして、算出された第２排ガス流量積算値ＳＵＭＳＶＬＲが第１所定値ＳＵＭＬＲ１以上になって（図９のステップ１２０：ＹＥＳ）から第２所定値ＳＵＭＬＲ２に達する（図８のステップ９１：ＹＥＳ）までの期間（以下「第２判定期間」という）が経過するまでに、第２判定用パラメータＫＪＵＤＳＶＯ２ＬＲに基づくＯ２センサ２４の第２異常の判定が終了しているとき（図８のステップ９９：ＹＥＳ）には、当該判定結果に基づいてＯ２センサ２４の第２異常が確定される（ステップ１００、１０１および１０３）。
【０１５７】
このように、フューエルカット運転の開始後すなわちリーン空燃比への混合気空燃比の切換開始後、第１排ガス流量積算値ＳＵＭＳＶＲＬが第１所定値ＳＵＭＲＬ１に達した後に、そのときに得られたＯ２センサ２４の第１異常の判定結果に基づいて、Ｏ２センサ２４の異常が確定される。したがって、リーン空燃比への混合気空燃比の切換開始後、リーン空燃比の混合気空燃比が燃焼することによって生成された排ガスがＯ２センサ２４に到達するまでのむだ時間を補償しながら、Ｏ２センサ２４の異常を適切に判定することができる。
【０１５８】
同様に、ＣＡＴ還元モードの開始後すなわちリッチ空燃比への混合気空燃比の切換開始後、第２排ガス流量積算値ＳＵＭＳＶＬＲが第１所定値ＳＵＭＬＲ１に達した後に、そのときに得られたＯ２センサ２４の異常の判定結果に基づいて、Ｏ２センサ２４の異常が確定される。したがって、リッチ空燃比への混合気空燃比の切換開始後、リッチ空燃比の混合気が燃焼することによって生成された排ガスがＯ２センサ２４に到達するまでのむだ時間を補償しながら、Ｏ２センサ２４の異常を精度良く判定することができる。
【０１５９】
また、Ｏ２センサ２４が異常の場合には、リーン空燃比への混合気空燃比の切換開始後、多量の排ガスがＯ２センサ２４を通過しても、Ｏ２センサ出力ＳＶＯ２がほとんど変化せず、その結果、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬおよび第１出力変化量極値ＨＤＳＶＯ２ＲＬの少なくとも一方の算出が完了しない。同様に、Ｏ２センサ２４が異常の場合には、リッチ空燃比への混合気空燃比の切換開始後、多量の排ガスがＯ２センサ２４を通過しても、Ｏ２センサ出力ＳＶＯ２がほとんど変化せず、その結果、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲおよび第２出力変化量極値ＨＤＳＶＯ２ＬＲの少なくとも一方の算出が完了しない。
【０１６０】
これに対して、第１異常判定処理では、リーン空燃比への混合気空燃比の切換開始後、第１排ガス流量積算値ＳＵＭＳＶＲＬが第２所定値ＳＵＭＲＬ２を超えても（図２のステップ１１：ＹＥＳ）なお、すなわち、多量の排ガスがＯ２センサ２４を通過してもなお、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬおよび第１出力変化量極値ＨＤＳＶＯ２ＲＬの算出が完了していないとき（図２のステップ１９：ＮＯ）に、Ｏ２センサ２４の第１異常が発生しているとの判定を確定する（ステップ２３）。したがって、第１異常を精度良く判定することができる。
【０１６１】
同様に、第２異常判定処理では、リッチ空燃比への混合気空燃比の切換開始後、第２排ガス流量積算値ＳＵＭＳＶＬＲが第２所定値ＳＵＭＬＲ２を超えても（図８のステップ９１：ＹＥＳ）なお、すなわち、多量の排ガスがＯ２センサ２４を通過してもなお、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲおよび第２出力変化量極値ＨＤＳＶＯ２ＬＲの算出が完了していないとき（図８のステップ９９：ＮＯ）に、Ｏ２センサ２４の第２異常が発生しているとの判定を確定する（ステップ１０３）。したがって、Ｏ２センサ２４の第２異常を精度良く判定することができる。
【０１６２】
また、Ｏ２センサ２４の応答特性が同じであっても、第１出力変化期間は、Ｏ２センサ２４を通過する排ガスの流量が少ないほど、より長くなる。これに対し、上述した第１実施形態によれば、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬを、時間ではなく、排ガスの流量で表すので、第１異常の判定を排ガスの流量に応じて精度良く行うことができる。同様に、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲを、時間ではなく、排ガスの流量で表すので、第２異常の判定を、排ガスの流量に応じて精度良く行うことができる。
【０１６３】
次に、図１２〜図１５を参照しながら、本発明の第２実施形態による第１および第２異常判定処理について説明する。この第２実施形態は、第１実施形態と比較して、後述する所定の条件が成立しているときにＯ２センサ２４の異常判定を保留する点のみが異なっている。これらの図１２〜図１５において、第１実施形態と同じ実行内容のステップについては、同じステップ番号を付している。以下、第２実施形態による第１および第２異常判定処理について、第１実施形態と異なる実行内容を中心に説明する。
【０１６４】
まず、図１２に示す第１異常判定処理では、前記ステップ６に続くステップ１６１において、後述する第１極値カウンタのカウンタ値ＣＨＤＳＶＯ２ＲＬを値０にリセットする。次いで、前記ステップ７を実行し、本処理を終了する。
【０１６５】
前記ステップ８に続くステップ１６２では、図１３に示すＨＤＳＶＯ２ＲＬ算出処理を実行する。本処理では、図４に示す第１実施形態のＨＤＳＶＯ２ＲＬ算出処理と異なり、第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出されたときのＯ２センサ出力ＳＶＯ２と、第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出された回数とに基づいて、Ｏ２センサ２４の第１異常の判定を保留すべきか否かが判定される。
【０１６６】
図１３の前記ステップ５５に続くステップ１７１では、Ｏ２センサ出力ＳＶＯ２を第１ピーク時出力ＳＶＯ２ＰＫＲＬとして設定し、本処理を終了する。また、前記ステップ５８に続くステップ１７２では、図１２のステップ１６１でリセットされた第１極値カウンタのカウンタ値ＣＨＤＳＶＯ２ＲＬをインクリメントする。
【０１６７】
図４を用いて説明したように、ステップ５７の答がＹＥＳになったときに、第１出力変化量極値ＨＤＳＶＯ２ＲＬの算出（設定）が完了し、そのことを表す第１出力変化量極値算出済みフラグＦ＿ＨＤＳＶＯ２ＲＬが「１」にセットされる（ステップ５８）。それに加え、第１極値カウンタのカウンタ値ＣＨＤＳＶＯ２ＲＬは、第１実行条件が成立していない限り（図１２のステップ３：ＮＯ）、図１２のステップ１６１の実行により値０にリセットされるとともに、上記ステップ５８に続くステップ１７２の実行によりインクリメントされる。以上から、第１極値カウンタのカウンタ値ＣＨＤＳＶＯ２ＲＬは、リーン空燃比への混合気空燃比の切換開始後に、第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出された回数を表す。
【０１６８】
ステップ１７２に続くステップ１７３では、第１極値カウンタのカウンタ値ＣＨＤＳＶＯ２ＲＬが値１よりも大きいか否かを判別する。この答がＹＥＳで、複数の第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出されているときには、Ｏ２センサ２４の第１異常の判定を保留すべきとして、そのことを表すために、第１判定許可フラグＦ＿ＨＤＳＶＯ２ＲＬＯＫを「０」に設定し（ステップ１７４）、本処理を終了する。
【０１６９】
一方、上記ステップ１７３の答がＮＯのとき、すなわち、算出された第１出力変化量極値ＨＤＳＶＯ２ＲＬが１つのときには、前記ステップ１７１で設定された第１ピーク時出力ＳＶＯ２ＰＫＲＬが、第１下限値ＶＬＭＬＲＬおよび第１上限値ＶＬＭＨＲＬで規定される第１所定範囲内にあるか否かを判別する（ステップ１７５）。これらの第１下限値ＶＬＭＬＲＬおよび第１上限値ＶＬＭＨＲＬは、両者で規定された第１所定範囲で表される排ガス空燃比の範囲が理論排ガス空燃比を含む理論排ガス空燃比の付近の所定の範囲になるように、設定されている。すなわち、第１所定範囲で表される排ガス空燃比の範囲が、リーン空燃比に対応するリーン排ガス空燃比とリッチ空燃比に対応するリッチ排ガス空燃比との間の理論排ガス空燃比の付近の所定の範囲になるように設定されている。
【０１７０】
上記ステップ１７５の答がＮＯで、第１ピーク時出力ＳＶＯ２ＰＫＲＬが第１所定範囲内にないときには、Ｏ２センサ２４の第１異常の判定を保留すべきとして、前記ステップ１７４を実行し、本処理を終了する。
【０１７１】
一方、ステップ１７５の答がＹＥＳのとき、すなわち、算出された第１出力変化量極値ＨＤＳＶＯ２ＲＬが１つで、かつ、第１ピーク時出力ＳＶＯ２ＰＫＲＬが第１所定範囲内にあるときには、Ｏ２センサ２４の第１異常の判定を保留せずに、許可すべきとして、第１判定許可フラグＦ＿ＨＤＳＶＯ２ＲＬＯＫを「１」にセットし（ステップ１７６）、本処理を終了する。
【０１７２】
前述したように、第１ピーク時出力ＳＶＯ２ＰＫＲＬは、第１出力変化量極値ＨＤＳＶＯ２ＲＬと同様、出力変化量ＤＳＶＯ２がその前回値ＤＳＶＯ２Ｚ以下である限り（ステップ５３：ＹＥＳ）、すなわち出力変化量ＤＳＶＯ２が増大している限り、今回のＯ２センサ出力ＳＶＯ２に更新される（ステップ１７１）。このことと、第１実施形態で述べた第１出力変化量極値ＨＤＳＶＯ２ＲＬの算出手法の説明から明らかなように、第１ピーク時出力ＳＶＯ２ＰＫＲＬは、出力変化量ＤＳＶＯ２が極値になったときに得られたＯ２センサ出力ＳＶＯ２に相当する。
【０１７３】
図１２に戻り、前記ステップ１１の答がＹＥＳのときには、図１３のステップ１７４または１７６で設定された第１判定許可フラグＦ＿ＨＤＳＶＯ２ＲＬＯＫが「１」であるか否かを判別する（ステップ１６３）。この答がＹＥＳ（Ｆ＿ＨＤＳＶＯ２ＲＬＯＫ＝１）で、Ｏ２センサ２４の第１異常の判定が保留されておらず、許可されているときには、前記ステップ１９〜２３を実行することによって、前述したように第１異常の判定を確定し、本処理を終了する。
【０１７４】
一方、ステップ１６３の答がＮＯ（Ｆ＿ＨＤＳＶＯ２ＲＬＯＫ＝０）で、Ｏ２センサ２４の第１異常の判定が保留されているときには、ステップ１９〜２３をスキップし、第１異常の判定を確定せずに、そのまま本処理を終了する。
【０１７５】
図１４に示す第２異常判定処理では、前記ステップ８６に続くステップ１８１において、後述する第２極値カウンタのカウンタ値ＣＨＤＳＶＯ２ＬＲを値０にリセットする。次いで、前記ステップ８７を実行し、本処理を終了する。
【０１７６】
前記ステップ８８に続くステップ１８２では、図１５に示すＨＤＳＶＯ２ＬＲ算出処理を実行する。本処理では、図１０に示す第１実施形態のＨＤＳＶＯ２ＬＲ算出処理と異なり、第２出力変化量極値ＨＤＳＶＯ２ＬＲが算出されたときのＯ２センサ出力ＳＶＯ２と、第２出力変化量極値ＨＤＳＶＯ２ＬＲが算出された回数とに基づいて、Ｏ２センサ２４の第２異常の判定を保留すべきか否かが判定される。
【０１７７】
図１５の前記ステップ１３５に続くステップ１９１では、Ｏ２センサ出力ＳＶＯ２を第２ピーク時出力ＳＶＯ２ＰＫＬＲとして設定し、本処理を終了する。また、前記ステップ１３８に続くステップ１９２では、図１４のステップ１８１でリセットされた第２極値カウンタのカウンタ値ＣＨＤＳＶＯ２ＬＲをインクリメントする。
【０１７８】
図１０を用いて説明したように、ステップ１３７の答がＹＥＳになったときに、第２出力変化量極値ＨＤＳＶＯ２ＬＲの算出（設定）が完了し、そのことを表す第２出力変化量極値算出済みフラグＦ＿ＨＤＳＶＯ２ＬＲが「１」にセットされる（ステップ１３８）。それに加え、第２極値カウンタのカウンタ値ＣＨＤＳＶＯ２ＬＲは、第２実行条件が成立していない限り（図１４のステップ８３：ＮＯ）、図１４のステップ１８１の実行により値０にリセットされるとともに、上記ステップ１３８に続くステップ１９２の実行によりインクリメントされる。以上から、第２極値カウンタのカウンタ値ＣＨＤＳＶＯ２ＬＲは、リッチ空燃比への混合気空燃比の切換開始後に、第２出力変化量極値ＨＤＳＶＯ２ＬＲが算出された回数を表す。
【０１７９】
ステップ１９２に続くステップ１９３では、第２極値カウンタのカウンタ値ＣＨＤＳＶＯ２ＬＲが値１よりも大きいか否かを判別する。この答がＹＥＳで、複数の第２出力変化量極値ＨＤＳＶＯ２ＬＲが算出されているときには、Ｏ２センサ２４の第２異常の判定を保留すべきとして、そのことを表すために、第２判定許可フラグＦ＿ＨＤＳＶＯ２ＬＲＯＫを「０」に設定し（ステップ１９４）、本処理を終了する。
【０１８０】
一方、上記ステップ１９３の答がＮＯのとき、すなわち、算出された第２出力変化量極値ＨＤＳＶＯ２ＬＲが１つのときには、前記ステップ１９１で設定された第２ピーク時出力ＳＶＯ２ＰＫＬＲが、第２下限値ＶＬＭＬＬＲおよび第２上限値ＶＬＭＨＬＲで規定される第２所定範囲内にあるか否かを判別する（ステップ１９５）。図１３のステップ１７５で用いられる第１下限値ＶＬＭＬＲＬおよび第１上限値ＶＬＭＨＲＬと同様、これらの第２下限値ＶＬＭＬＬＲおよび第２上限値ＶＬＭＨＬＲは、両者で規定された第２所定範囲で表される排ガス空燃比の範囲が理論排ガス空燃比を含む理論排ガス空燃比の付近の所定の範囲になるように、設定されている。すなわち、第２所定範囲で表される排ガス空燃比の範囲が、リーン排ガス空燃比とリッチ排ガス空燃比との間の理論排ガス空燃比の付近の所定の範囲になるように、第２下限値ＶＬＭＬＬＲおよび第２上限値ＶＬＭＨＬＲが設定されている。
【０１８１】
上記ステップ１９５の答がＮＯで、第２ピーク時出力ＳＶＯ２ＰＫＬＲが第２所定範囲内にないときには、Ｏ２センサ２４の第２異常の判定を保留すべきとして、前記ステップ１９４を実行し、本処理を終了する。
【０１８２】
一方、ステップ１９５の答がＹＥＳのとき、すなわち、算出された第２出力変化量極値ＨＤＳＶＯ２ＬＲが１つで、かつ、第２ピーク時出力ＳＶＯ２ＰＫＬＲが第２所定範囲内にあるときには、Ｏ２センサ２４の第２異常の判定を保留せずに、許可すべきとして、第２判定許可フラグＦ＿ＨＤＳＶＯ２ＬＲＯＫを「１」にセットし（ステップ１９６）、本処理を終了する。
【０１８３】
前述したように、第２ピーク時出力ＳＶＯ２ＰＫＬＲは、第２出力変化量極値ＨＤＳＶＯ２ＬＲと同様、出力変化量ＤＳＶＯ２がその前回値ＤＳＶＯ２Ｚ以上である限り（ステップ１３３：ＹＥＳ）、すなわち出力変化量ＤＳＶＯ２が増大している限り、今回のＯ２センサ出力ＳＶＯ２に更新される（ステップ１９１）。このことと、第１実施形態で述べた第２出力変化量極値ＨＤＳＶＯ２ＬＲの算出手法の説明から明らかなように、第２ピーク時出力ＳＶＯ２ＰＫＬＲは、出力変化量ＤＳＶＯ２が極値になったときに得られたＯ２センサ出力ＳＶＯ２に相当する。
【０１８４】
図１４に戻り、前記ステップ９１の答がＹＥＳのときには、図１５のステップ１９４または１９６で設定された第２判定許可フラグＦ＿ＨＤＳＶＯ２ＬＲＯＫが「１」であるか否かを判別する（ステップ１８３）。この答がＹＥＳ（Ｆ＿ＨＤＳＶＯ２ＬＲＯＫ＝１）で、Ｏ２センサ２４の第２異常の判定が保留されておらず、許可されているときには、前記ステップ９９〜１０３を実行することによって、前述したように第２異常の判定を確定し、本処理を終了する。
【０１８５】
一方、ステップ１８３の答がＮＯ（Ｆ＿ＨＤＳＶＯ２ＬＲＯＫ＝０）で、Ｏ２センサ２４の第２異常の判定が保留されているときには、ステップ９９〜１０３をスキップし、第２異常の判定を確定せずに、そのまま本処理を終了する。
【０１８６】
また、第２実施形態における各種の要素と、本発明における各種の要素との対応関係は、次のとおりである。すなわち、第２実施形態における第１および第２ピーク時出力ＳＶＯ２ＰＫＲＬ、ＳＶＯ２ＰＫＬＲが、本発明における空燃比センサの出力の変化量が極値になったときに得られた空燃比センサの出力に相当する。
【０１８７】
以上のように、第２実施形態によれば、リーン空燃比への混合気空燃比の切換後、出力変化量ＤＳＶＯ２が極値になったときに得られたＯ２センサ出力ＳＶＯ２に相当する第１ピーク時出力ＳＶＯ２ＰＫＲＬが算出される（図１３のステップ１７１）。また、第１ピーク時出力ＳＶＯ２ＰＫＲＬが第１下限値ＶＬＭＬＲＬおよび第１上限値ＶＬＭＨＲＬで規定される第１所定範囲内にないとき（図１３のステップ１７５：ＮＯ、図１２のステップ１６３：ＮＯ）に、Ｏ２センサ２４の第１異常の判定が保留される。さらに、リッチ空燃比への混合気空燃比の切換後、出力変化量ＤＳＶＯ２が極値になったときに得られたＯ２センサ出力ＳＶＯ２に相当する第２ピーク時出力ＳＶＯ２ＰＫＬＲが算出される（図１５のステップ１９１）。また、第２ピーク時出力ＳＶＯ２ＰＫＬＲが第１下限値ＶＬＭＬＬＲおよび第１上限値ＶＬＭＨＬＲで規定される第２所定範囲内にないとき（図１５のステップ１９５：ＮＯ、図１４のステップ１８３：ＮＯ）に、Ｏ２センサ２４の第２異常の判定が保留される。
【０１８８】
リーン空燃比とリッチ空燃比との間で混合気空燃比を変化させた場合において、前述した排ガス空燃比停滞が発生しないときには、通常、排ガス空燃比が、リーン排ガス空燃比（リーン空燃比に対応する排ガス空燃比）とリッチ排ガス空燃比（リッチ空燃比に対応する排ガス空燃比）との間の理論排ガス空燃比であるときに、排ガス空燃比の変化量は最大になる。このため、排ガス空燃比停滞が発生していない場合には、空燃比センサの出力で表される排ガス空燃比が理論排ガス空燃比付近にあるときに、空燃比センサの出力変化量の極値が発生する。
【０１８９】
このことから明らかなように、混合気空燃比の切換が行われた後に出力変化量ＤＳＶＯ２が極値になったときに得られたＯ２センサ出力ＳＶＯ２で表される排ガス空燃比が、上記の理論排ガス空燃比付近にないときには、排ガス空燃比停滞が発生している可能性がある。さらに、この場合、排ガス空燃比が、理論排ガス空燃比を含む所定排ガス空燃比範囲内にないときには、前述した切換直後排ガス空燃比停滞の発生により排ガス空燃比がほとんど変化せずにすぐに停滞することで、排ガス空燃比の変化量が非常に小さくなっている場合がある。その場合には、前述した第１および第２判定用パラメータＫＪＵＤＳＶＯ２ＲＬ，ＫＪＵＤＳＶＯ２ＬＲに基づいて第１異常および第２異常をそれぞれ判定しても、Ｏ２センサ２４が正常なときに第１および第２異常が発生していると誤判定するおそれがある。
【０１９０】
これに対して、第２実施形態によれば、第１ピーク時出力ＳＶＯ２ＰＫＲＬが第１所定範囲内にないときに、Ｏ２センサ２４の第１異常の判定が保留されるとともに、この第１所定範囲で表される排ガス空燃比の範囲が、リーン排ガス空燃比とリッチ排ガス空燃比との間の理論排ガス空燃比の付近の所定の範囲になるように設定されている。これにより、切換直後排ガス空燃比停滞の発生中における第１異常の判定を保留できるので、上述した誤判定を防止することができる。
【０１９１】
同様に、第２ピーク時出力ＳＶＯ２ＰＫＬＲが第２所定範囲内にないときに、Ｏ２センサ２４の第２異常の判定が保留されるとともに、この第２所定範囲で表される排ガス空燃比の範囲が、リーン排ガス空燃比とリッチ排ガス空燃比との間の理論排ガス空燃比の付近の所定の範囲になるように設定されている。これにより、切換直後排ガス空燃比停滞の発生中における第２異常の判定を保留できるので、上述した誤判定を防止することができる。
【０１９２】
また、複数の第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出されているとき（図１３のステップ１７３：ＹＥＳ、図１２のステップ１６３：ＮＯ）に、第１異常の判定が保留されるとともに、複数の第２出力変化量極値ＨＤＳＶＯ２ＬＲが算出されているとき（図１５のステップ１９３：ＹＥＳ、図１４のステップ１８３：ＮＯ）に、第２異常の判定が保留される。このことによっても、切換直後排ガス空燃比停滞の発生中における第１および第２異常の判定を保留できるので、上述した誤判定を防止することができる。その他、第１実施形態による効果を同様に得ることができる。
【０１９３】
さらに、第１異常の判定が保留された後、一旦、第１実行条件が成立しなくなる（ステップ３：ＮＯ）と、ステップ４〜７および１６１において、各種のフラグが「０」にリセットされる。そして、その後のエンジン３の運転中に、第１実行条件が成立すると、再度、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬおよび第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出されるとともに、算出された第１出力変化期間パラメータＷＤＳＶＯ２ＲＬと第１出力変化量極値ＨＤＳＶＯ２ＲＬとの関係に基づいて、第１異常が判定される。このことは、第２異常の判定についても同様である。したがって、エンジン３の停止および次回の始動を待つことなく、エンジン３の今回の運転中に、第１および第２異常の判定を改めて実行することができる。
【０１９４】
なお、第１および第２実施形態では、Ｏ２センサ２４の第１異常を、第１判定用パラメータＫＪＵＤＳＶＯ２ＲＬ、すなわち第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに対する第１出力変化量極値の絶対値｜ＨＤＳＶＯ２ＲＬ｜の比に基づいて判定しているが、前者ＷＤＳＶＯ２ＲＬと後者ＨＤＳＶＯ２ＲＬとの関係を表す他の適当なパラメータ、例えば次のパラメータ（Ａ）〜（Ｈ）に基づいて判定してもよい。
（Ａ）第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに対する第１出力変化量極値ＨＤＳＶＯ２ＲＬそのものの比
（Ｂ）第１判定用パラメータＫＪＵＤＳＶＯ２ＲＬの逆数、すなわち、第１出力変化量極値の絶対値｜ＨＤＳＶＯ２ＲＬ｜（または第１出力変化量極値ＨＤＳＶＯ２ＲＬ）に対する第１出力変化期間パラメータＷＤＳＶＯ２ＲＬの比（ＷＤＳＶＯ２ＲＬ／｜ＨＤＳＶＯ２ＲＬ｜）
（Ｃ）第１出力変化期間パラメータＷＤＳＶＯ２ＲＬと第１出力変化量極値ＨＤＳＶＯ２ＲＬとの偏差（ＷＤＳＶＯ２ＲＬ−ＨＤＳＶＯ２ＲＬ）、またはこの偏差の絶対値
（Ｄ）第１出力変化量極値ＨＤＳＶＯ２ＲＬと第１出力変化期間パラメータＷＤＳＶＯ２ＲＬとの偏差（ＨＤＳＶＯ２ＲＬ−ＷＤＳＶＯ２ＲＬ）、またはこの偏差の絶対値
【０１９５】
（Ｅ）第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに対する、第１出力変化量極値ＨＤＳＶＯ２ＲＬ（または絶対値｜ＨＤＳＶＯ２ＲＬ｜）と第１出力変化期間パラメータＷＤＳＶＯ２ＲＬとの偏差（またはこの偏差の絶対値）の比（（ＨＤＳＶＯ２ＲＬ−ＷＤＳＶＯ２ＲＬ）／ＷＤＳＶＯ２ＲＬ）
（Ｆ）（Ｅ）の逆数（ＷＤＳＶＯ２ＲＬ／（ＨＤＳＶＯ２ＲＬ−ＷＤＳＶＯ２ＲＬ））
（Ｇ）第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに対する、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬと第１出力変化量極値ＨＤＳＶＯ２ＲＬ（または絶対値｜ＨＤＳＶＯ２ＲＬ｜）との偏差（またはこの偏差の絶対値）の比（（ＷＤＳＶＯ２ＲＬ−ＨＤＳＶＯ２ＲＬ）／ＷＤＳＶＯ２ＲＬ）
（Ｈ）（Ｇ）の逆数（ＷＤＳＶＯ２ＲＬ／（ＷＤＳＶＯ２ＲＬ−｜ＨＤＳＶＯ２ＲＬ｜））
【０１９６】
また、第２実施形態では、複数の第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出されておらず、かつ、第１ピーク時出力ＳＶＯ２ＰＫＲＬが第１所定範囲内にあるときに、第１異常の判定を保留せずに許可しているが、これらの条件の一方のみが成立しているときに、第１異常の判定を許可してもよい。同様に、第２実施形態では、複数の第２出力変化量極値ＨＤＳＶＯ２ＬＲが算出されておらず、かつ、第２ピーク時出力ＳＶＯ２ＰＫＬＲが第２所定範囲内にあるときに、第２異常の判定を保留せずに許可しているが、これらの条件の一方のみが成立しているときに、第２異常の判定を許可してもよい。
【０１９７】
次に、図１６〜図１８を参照しながら、本発明の第３実施形態による第１および第２異常判定処理について説明する。図１６に示す第３実施形態の第１異常判定処理は、第１実施形態と比較して、第１判定用パラメータＫＪＵＤＳＶＯ２ＲＬ、すなわち第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに対する第１出力変化量極値の絶対値｜ＨＤＳＶＯ２ＲＬ｜の比ではなく、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに基づいて算出された第１判定用しきい値ＨＤＲＥＦＲＬと第１出力変化量極値ＨＤＳＶＯ２ＲＬとの比較結果に基づいて、Ｏ２センサ２４の第１異常を判定する点のみが異なっている。
【０１９８】
図１６において、第１実施形態の第１異常判定処理と同じ実行内容のステップについては、同じステップ番号を付している。図１６と図２との比較から明らかなように、前記ステップ１４および１５に代えて、ステップ２０１および２０２をそれぞれ実行する点のみが異なっているので、以下、この点を中心に説明する。
【０１９９】
前記ステップ１３の答がＹＥＳのときには、図６のステップ６８で算出された第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに基づき、図１７に示すマップを検索することによって、第１判定用しきい値ＨＤＲＥＦＲＬを算出する（ステップ２０１）。このマップでは、第１判定用しきい値ＨＤＲＥＦＲＬは、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬが大きいほど、より大きな値にリニアに設定されている。
【０２００】
次いで、図４のステップ５４で設定された第１出力変化量極値の絶対値｜ＨＤＳＶＯ２ＲＬ｜が、ステップ２０１で算出された第１判定用しきい値ＨＤＲＥＦＲＬ以下であるか否かを判別する（ステップ２０２）。この答がＹＥＳのときには、Ｏ２センサ２４の第１異常が発生していると仮判定し、前記ステップ１６を実行し、第１仮異常フラグＦ＿ＴＭＰＮＧＲＬを「１」にセットするとともに、前記ステップ１７を実行し、本処理を終了する。
【０２０１】
一方、ステップ２０２の答がＮＯで、第１出力変化量極値の絶対値｜ＨＤＳＶＯ２ＲＬ｜が第１判定用しきい値ＨＤＲＥＦＲＬよりも小さいときには、Ｏ２センサ２４の第１異常が発生していないと仮判定し、前記ステップ１８を実行し、第１仮異常フラグＦ＿ＴＭＰＮＧＲＬを「０」にセットするとともに、前記ステップ１７を実行し、本処理を終了する。
【０２０２】
また、図１８に示す第３実施形態の第２異常判定処理は、第１実施形態と比較して、第２判定用パラメータＫＪＵＤＳＶＯ２ＬＲ、すなわち第２出力変化期間パラメータＷＤＳＶＯ２ＬＲに対する第２出力変化量極値の絶対値｜ＨＤＳＶＯ２ＬＲ｜の比ではなく、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲに基づいて算出された第２判定用しきい値ＨＤＲＥＦＬＲと第２出力変化量極値ＨＤＳＶＯ２ＬＲとの比較結果に基づいて、Ｏ２センサ２４の第２異常を判定する点のみが異なっている。
【０２０３】
図１８において、第１実施形態の第２異常判定処理と同じ実行内容のステップについては、同じステップ番号を付している。図１８と図８との比較から明らかなように、前記ステップ９４および９５に代えて、ステップ２１１および２１２をそれぞれ実行する点のみが異なっているので、以下、この点を中心に説明する。
【０２０４】
前記ステップ９３の答がＹＥＳのときには、図１１のステップ１４８で算出された第２出力変化期間パラメータＷＤＳＶＯ２ＬＲに基づき、マップ（図示せず）を検索することによって、第２判定用しきい値ＨＤＲＥＦＬＲを算出する（ステップ２１１）。このマップでは、第２判定用しきい値ＨＤＲＥＦＬＲは、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに基づく第１判定用しきい値ＨＤＲＥＦＲＬの設定と同様、第２出力変化期間パラメータＷＤＳＶＯ２ＬＲが大きいほど、より大きな値にリニアに設定されている。
【０２０５】
次いで、図１０のステップ１３４で設定された第２出力変化量極値の絶対値｜ＨＤＳＶＯ２ＬＲ｜が、ステップ２１１で算出された第２判定用しきい値ＨＤＲＥＦＬＲ以下であるか否かを判別する（ステップ２１２）。この答がＹＥＳのときには、Ｏ２センサ２４の第２異常が発生していると仮判定し、前記ステップ９６を実行し、第２仮異常フラグＦ＿ＴＭＰＮＧＬＲを「１」にセットするとともに、前記ステップ９７を実行し、本処理を終了する。
【０２０６】
一方、ステップ２１２の答がＮＯで、第２出力変化量極値の絶対値｜ＨＤＳＶＯ２ＬＲ｜が第２判定用しきい値ＨＤＲＥＦＬＲよりも小さいときには、Ｏ２センサ２４の第２異常が発生していないと仮判定し、前記ステップ９８を実行し、第２仮異常フラグＦ＿ＴＭＰＮＧＬＲを「０」にセットするとともに、前記ステップ９７を実行し、本処理を終了する。
【０２０７】
また、第３実施形態における各種の要素と、本発明における各種の要素との対応関係は、次のとおりである。すなわち、第３実施形態における第１および第２判定用しきい値ＨＤＲＥＦＲＬ、ＨＤＲＥＦＬＲが、本発明における第１しきい値に相当する。
【０２０８】
以上により、第３実施形態によれば、第１実施形態による効果を同様に得ることができる。
【０２０９】
なお、第３実施形態では、第１出力変化期間パラメータＷＤＳＶＯ２ＲＬに基づいて算出された第１判定用しきい値ＨＤＲＥＦＲＬと第１出力変化量極値ＨＤＳＶＯ２ＲＬとの比較結果に基づいて、Ｏ２センサ２４の第１異常を判定しているが、これとは逆に、第１出力変化量極値ＨＤＳＶＯ２ＲＬに基づいて算出されたしきい値と第１出力変化期間パラメータＷＤＳＶＯ２ＲＬとの比較結果に基づいて、Ｏ２センサ２４の第１異常を判定してもよい。このことは、第２判定用しきい値ＨＤＲＥＦＬＲおよび第２出力変化量極値ＨＤＳＶＯ２ＬＲについても、同様に当てはまる。
【０２１０】
また、第３実施形態では、第２実施形態で述べた第１および第２異常の判定の保留（図１３のステップ１７３〜１７６、図１２のステップ１６３、図１５のステップ１９３〜１９６、図１４のステップ１８３）を、行っていないが、行ってもよい。この場合、第２実施形態の場合と異なり、複数の第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出されていないという条件、および、第１ピーク時出力ＳＶＯ２ＰＫＲＬが第１所定範囲内にあるという条件の一方が成立しているときに、第１異常の判定を保留せずに許可してもよい。このことは、第２異常の判定の保留についても同様である。
【０２１１】
さらに、第１および第３実施形態では、第２実施形態で述べたように複数の第１出力変化量極値ＨＤＳＶＯ２ＲＬが算出された場合に、最先の第１出力変化量極値ＨＤＳＶＯ２ＲＬと、それに対応する第１出力変化期間パラメータＷＤＳＶＯ２ＲＬとの関係に基づいて、第１異常を判定しているが、複数のＨＤＳＶＯ２ＲＬ値のうちの最大の第１出力変化量極値ＨＤＳＶＯ２ＲＬと、それに対応する第１出力変化期間パラメータＷＤＳＶＯ２ＲＬとの関係に基づいて、Ｏ２センサ２４の第１異常を判定してもよい。あるいは、複数の第１出力変化量極値ＨＤＳＶＯ２ＲＬのうち、最後に算出された第１出力変化量極値ＨＤＳＶＯ２ＲＬと、それに対応する第１出力変化期間パラメータＷＤＳＶＯ２ＲＬとの関係に基づいて、第１異常を判定してもよい。以上の点は、第２出力変化量極値ＨＤＳＶＯ２ＬＲおよび第２出力変化期間パラメータＷＤＳＶＯ２ＬＲについても同様である。
【０２１２】
なお、本発明は、説明した第１〜第３実施形態（以下、総称して「実施形態」という）に限定されることなく、種々の態様で実施することができる。例えば、実施形態では、第１所定変化量ＤＶＲＥＦＲＬおよび第２所定変化量ＤＶＲＥＦＬＲの絶対値を、互いに等しい値に設定しているが、互いに異なる値に設定してもよい。また、実施形態では、第１および第２出力変化期間パラメータＷＤＳＶＯ２ＲＬ，ＷＤＳＶＯ２ＬＲを、排ガスの流量で表しているが、時間で表してもよい。さらに、実施形態では、第１および第２出力変化量極値ＨＤＳＶＯ２ＲＬ，ＨＤＳＶＯ２ＬＲを、値０を基準としているが、第１および第２所定変化量ＤＶＲＥＦＲＬ，ＤＶＲＥＦＬＲをそれぞれ基準としてもよい。
【０２１３】
また、実施形態では、第１および第２異常判定処理の双方を実行しているが、両者の一方のみを実行してもよい。さらに、実施形態では、Ｏ２センサ２４の上流側に三元触媒７が設けられているが、この三元触媒７を省略してもよい。また、実施形態では、Ｏ２センサ２４は、ジルコニアタイプであるが、チタニアタイプでもよい。
【０２１４】
さらに、実施形態では、本発明の空燃比センサは、いわゆる二値型のＯ２センサ２４であるが、排ガス空燃比を検出する他の適当なセンサ、例えば、前述したＬＡＦセンサ２３でもよい。この場合、リーン空燃比およびリッチ空燃比を、必ずしも実施形態で述べたように理論空燃比よりもリーン側およびリッチ側にそれぞれ設定する必要はなく、両者の間で相対的にリーン側およびリッチ側であればよい。この条件を満たす限り、リーン空燃比およびリッチ空燃比の双方を、理論空燃比よりもリーン側に、あるいはリッチ側に、設定してもよい。さらに、この場合、前述した第１下限値ＶＬＭＬＲＬおよび第１上限値ＶＬＭＨＲＬで規定される第１所定範囲は、排ガス空燃比の変化量が最大になる所定排ガス空燃比を実験により求め、求めた所定排ガス空燃比を含む所定排ガス空燃比の付近の所定の範囲に設定される。このことは、第２下限値ＶＬＭＬＬＲおよび第２上限値ＶＬＭＨＬＲで規定される第２所定範囲についても同様である。
【０２１５】
また、実施形態では、リーン空燃比への混合気空燃比の切換を、リッチ化運転からフューエルカット運転への運転モードの切換を利用して行うとともに、リッチ空燃比への混合気空燃比の切換をフューエルカット運転からＣＡＴ還元モードへの運転モードの切換を利用して行っているが、例えば、ＥＣＵ２による燃料噴射弁５を介した空燃比制御によって、混合気空燃比を積極的にリーン空燃比とリッチ空燃比との間で切り換えてもよい。あるいは、三元触媒７を活性化すべく昇温するために混合気空燃比をリーン空燃比とリッチ空燃比との間で切り換えるパータべーション制御を利用してもよい。また、リッチ空燃比からリーン空燃比への混合気空燃比の切換時におけるリッチ空燃比と、リーン空燃比からリッチ空燃比への混合気空燃比の切換時におけるリッチ空燃比とが、互いに異なっていてもよく、同様に、リッチ空燃比からリーン空燃比への混合気空燃比の切換時におけるリーン空燃比と、リーン空燃比からリッチ空燃比への混合気空燃比の切換時におけるリーン空燃比とが、互いに異なっていてもよい。
【０２１６】
さらに、実施形態では、Ｏ２センサ２４の第１および第２異常を仮判定した後、当該仮判定に基づく第１および第２異常の確定を、第１および第２排ガス流量積算値ＳＵＭＳＶＲＬ，ＳＵＭＳＶＬＲが第２所定値ＳＵＭＲＬ２およびＳＵＭＬＲ２にそれぞれ達する（ステップ１１，９１：ＹＥＳ）のを待って、行っているが、当該仮判定の結果が得られた時にすぐに行ってもよい。また、実施形態では、本発明の内燃機関は、車両用のガソリンエンジンであるエンジン３であるが、例えば、ディーゼルエンジンやＬＰＧエンジン、クランク軸が鉛直方向に配置された船外機などのような船舶推進機用エンジンを含む、様々な産業用の内燃機関でもよい。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。
【符号の説明】
【０２１７】
１  異常判定装置
２  ＥＣＵ（空燃比制御手段、出力変化期間パラメータ算出手段、
出力変化量極値算出手段、異常判定手段、排ガス流量積算値算出                      手段）
３  エンジン
６  排気通路
７  三元触媒（触媒）
２４  Ｏ２センサ（空燃比センサ）
ＤＳＶＯ２  出力変化量（空燃比センサの出力の変化量）
ＤＶＲＥＦＲＬ  第１所定変化量（所定変化量）
ＤＶＲＥＦＬＲ  第２所定変化量（所定変化量）
ＷＤＳＶＯ２ＲＬ  第１出力変化期間パラメータ（出力変化期間パラメータ）
ＷＤＳＶＯ２ＬＲ  第２出力変化期間パラメータ（出力変化期間パラメータ）
ＨＤＳＶＯ２ＲＬ  第１出力変化量極値（出力変化量極値）
ＨＤＳＶＯ２ＬＲ  第２出力変化量極値（出力変化量極値）
ＫＪＵＤＳＶＯ２ＲＬ  第１判定用パラメータ（出力変化期間パラメータと出力変化量極                      値との関係、出力変化期間パラメータに対する出力変化量極値の                      比）
ＫＪＵＤＳＶＯ２ＬＲ  第２判定用パラメータ（出力変化期間パラメータと出力変化量極                      値との関係、出力変化期間パラメータに対する出力変化量極値の                      比）
ＳＵＭＳＶＲＬ  第１排ガス流量積算値（排ガス流量積算値）
ＳＵＭＳＶＬＲ  第２排ガス流量積算値（排ガス流量積算値）
ＳＵＭＲＬ１  第１所定値
ＳＵＭＲＬ２  第２所定値
ＳＵＭＬＲ１  第１所定値（第３所定値）
ＳＵＭＬＲ２  第２所定値（第４所定値）
ＳＶＯ２ＰＫＲＬ  第１ピーク時出力（空燃比センサの出力の変化量が極値になった                      ときに得られた空燃比センサの出力）
ＳＶＯ２ＰＫＬＲ  第２ピーク時出力（空燃比センサの出力の変化量が極値になった                      ときに得られた空燃比センサの出力）
ＨＤＲＥＦＲＬ  第１判定用しきい値（第１しきい値）
ＨＤＲＥＦＬＲ  第２判定用しきい値（第１しきい値）
【図１】
0005346989.tif 000002
【図２】
0005346989.tif 000003
【図３】
0005346989.tif 000004
【図４】
0005346989.tif 000005
【図５】
0005346989.tif 000006
【図６】
0005346989.tif 000007
【図７】
0005346989.tif 000008
【図８】
0005346989.tif 000009
【図９】
0005346989.tif 000010
【図１０】
0005346989.tif 000011
【図１１】
0005346989.tif 000012
【図１２】
0005346989.tif 000013
【図１３】
0005346989.tif 000014
【図１４】
0005346989.tif 000015
【図１５】
0005346989.tif 000016
【図１６】
0005346989.tif 000017
【図１７】
0005346989.tif 000018
【図１８】
0005346989.tif 000019
【図１９】
0005346989.tif 000020
【図２０】
0005346989.tif 000021