(57)【特許請求の範囲】
【請求項１】
排気管の触媒の下流に配置された排ガスセンサの故障を検出する装置であって、
前記排ガスセンサの出力および前記触媒の上流に配置された空燃比センサの出力をフィルタリングするフィルタと、
前記フィルタリングされた排ガスセンサの出力の振幅と、前記フィルタリングされた空燃比センサの出力の振幅との比に基づいて、前記排ガスセンサの故障を検出する手段と、を備え、
前記フィルタは、前記触媒の劣化により影響される周波数成分とは異なり、かつ前記排ガスセンサの劣化により影響される周波数成分を通過させるフィルタである、
装置。
【請求項２】
前記比は、前記排ガスセンサの出力のうち所定値以上の振幅と、前記空燃比センサの出力のうち所定値以上の振幅と、に基づいて求められる、請求項１に記載の排ガスセンサの故障を検出する装置。
【請求項３】
前記比は、前記排ガスセンサの出力のうち局所的に極大となる振幅と、前記空燃比センサの出力のうち局所的に極大となる振幅と、に基づいて求められる、請求項１または請求項２のいずれかに記載の排ガスセンサの故障を検出する装置。
【請求項４】
前記比は、前記排ガスセンサの出力のうち局所的に極大となる振幅および該極大となる振幅の周辺の振幅と、前記空燃比センサの出力のうち局所的に極大となる振幅および該極大となる振幅の周辺の振幅と、に基づいて求められる、請求項１または請求項２のいずれかに記載の排ガスセンサの故障を検出する装置。
【請求項５】
前記比に対し、逐次型最小２乗法により統計処理を実施する統計処理手段をさらに備え、
前記統計処理手段によって算出された値に基づいて前記排ガスセンサの故障を検出する、請求項１から請求項４のいずれかに記載の排ガスセンサの故障を検出する装置。
【請求項６】
前記排ガスセンサの出力および前記空燃比センサの出力のそれぞれに対し、逐次型最小２乗法により統計処理を実施する統計処理手段をさらに備え、
前記比は、前記統計処理手段によって算出された前記排ガスセンサの出力の振幅と、前記統計処理手段によって算出された前記空燃比センサの出力の振幅との比である、請求項１から請求項４のいずれかに記載の排ガスセンサの故障を検出する装置。
【請求項７】
前記排ガスセンサの出力および前記空燃比センサの出力は、車両がクルーズ状態にあるときに取得される、請求項１から請求項６のいずれかに記載の排ガスセンサの故障を検出する装置。
【請求項８】
前記排ガスセンサの出力および前記空燃比センサの出力は、車両の内燃機関が所定の運転状態にあるときに取得される、請求項１から請求項６のいずれかに記載の排ガスセンサの故障を検出する装置。
【請求項９】
前記フィルタは、バンドパスフィルタを含む、請求項１から８のいずれかに記載の排ガスセンサの故障を検出する装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、内燃機関の排気系に設けられた排ガスセンサの故障を検出する装置に関する。
【０００２】
【従来の技術】
内燃機関の排気系には、触媒装置が設けられている。触媒装置は、内燃機関に供給される混合気の空燃比がリーンのとき、排気ガス中に存在する過剰の酸素でＨＣおよびＣＯを酸化し、空燃比がリッチのとき、ＨＣおよびＣＯによってＮｏｘを還元する。空燃比が理論空燃比領域にあるとき、ＨＣ、ＣＯおよびＮｏｘが同時にかつ効果的に浄化される。
【０００３】
触媒装置の下流には、排ガスセンサが設けられている。排ガスセンサは、排気系に排気されたガス中の酸素濃度を検出する。排ガスセンサの検出値は、内燃機関の様々な制御に用いられる。排ガスセンサの応答性が劣化すると、内燃機関を適切に制御することができなくなり、運転状態の悪化を招くおそれがある。
【０００４】
特許第２８１２２５２号公報は、排ガスセンサの出力の微分値に基づいて、排ガスセンサの異常を検出する方法を開示する。排ガスセンサの出力の微分値が所定値以上である頻度が所定回数以下であるとき、排ガスセンサが異常と判定する。この判定手法は、排ガスセンサが正常である場合、該排ガスセンサの出力を時間で微分した値がゼロ近傍以外の大きさのものも存在するのに対し、排ガスセンサが故障している場合、該時間微分値はゼロ近傍のものしか存在しないという知見に基づいている。
【０００５】
【発明が解決しようとする課題】
触媒装置と排ガスセンサは直列に配置されているので、排ガスセンサの出力の微分値は、触媒の遅れ特性（ローパス特性）の影響を受ける。すなわち、触媒の劣化の程度が変化すると、排ガスセンサの出力も変化する。従来技術に示されるような排ガスセンサ出力の微分値の変動を分析しても、該変動が触媒の応答特性の変化に起因するのか、排ガスセンサの応答特性の変化に起因するのかを判別することは困難である。
【０００６】
したがって、排ガスセンサの故障を、触媒の劣化と区別して検出することのできる装置および方法が必要とされている。
【０００７】
【課題を解決するための手段】
この発明の一つの側面によると、排気管の触媒の下流に配置された排ガスセンサの故障を検出する装置は、該排ガスセンサの出力の振幅と、触媒の上流に配置された空燃比センサの出力の振幅との比に基づいて、排ガスセンサの故障を検出する。
【０００８】
この発明によると、空燃比センサにより検出される空燃比変動に応じた排ガスセンサの変動を評価して、排ガスセンサの正常／故障を判別することができる。振幅比に基づいて故障を検出するので、空燃比の変動によって空燃比センサの出力が変動した場合でも、排ガスセンサの故障を安定的に検出することができる。さらに、この発明によると、故障検出のために空燃比を意図的に操作せず、偶発的に生じた空燃比変動が用いられる。したがって、有害な排ガス成分の排出量を増加させることなく、故障検出を実施することができる。
【０００９】
この発明の一つの側面によると、排ガスセンサの出力のうち所定値以上となる振幅と、空燃比センサの出力のうち所定値以上となる振幅との比に基づいて、排ガスセンサの故障を検出する。この発明によると、排ガスセンサの故障を顕著に検出することのできる空燃比変動を空燃比センサにより取得することができる。該取得された空燃比変動に対応する排ガスセンサの出力を評価して、排ガスセンサの状態を良好な精度で判別することができる。
【００１０】
この発明の一実施形態によると、排ガスセンサの出力のうち局所的に極大となる振幅と、空燃比センサの出力のうち局所的に極大となる振幅との比に基づいて、排ガスセンサの故障を検出する。
【００１１】
また、この発明の他の実施形態によると、排ガスセンサの出力のうち局所的に極大となる振幅および該極大となる振幅の周辺の振幅と、空燃比センサの出力のうち局所的に極大となる振幅および該極大となる振幅の周辺の振幅との比に基づいて、排ガスセンサの故障を検出する。
【００１２】
空燃比センサの出力の極大値と、排ガスセンサの出力の極大値を取得することにより、高い相関性を持つ一対の出力値に基づいて排ガスセンサの故障を検出することができる。極大値の周辺の値を取得すれば、高い相関性を持つ数組の対の出力値に基づいて排ガスセンサの故障を検出することができる。内燃機関の運転状態に応じて、空燃比センサ出力と排ガスセンサ出力との間の時間的な相関関係は変化する。しかしながら、両者の極大値を相関させることにより、該時間差の影響を最小限にすることができる。
【００１３】
この発明の一つの側面によると、排ガスセンサの出力の振幅と空燃比センサの出力の振幅との比に対し、逐次型最小２乗法により統計処理が実施される。統計処理された振幅比に基づいて、排ガスセンサの故障を検出する。
【００１４】
この発明の他の側面によると、空燃比センサの出力に対して逐次型最小２乗法により統計処理を実施することによって算出された値と、排ガスセンサの出力に対して逐次型最小２乗法により統計処理を実施することによって算出された値との比に基づいて、排ガスセンサの故障を検出する。
【００１５】
ノイズの影響、車両および内燃機関の運転状態の影響により、空燃比センサおよび排ガスセンサの出力にはバラツキが生じる。逐次型最小２乗法によって統計処理を実施することにより、このバラツキに起因する故障検出への影響を最小にすることができる。
【００１６】
この発明の一つの側面によると、排ガスセンサの出力および空燃比センサの出力は、車両がクルーズ状態にあるときに取得される。車両がクルーズ状態で安定的に走行している時のセンサ出力を用いることで、故障検出の精度を向上させることができる。
【００１７】
また、この発明の他の側面によると、排ガスセンサの出力および空燃比センサの出力は、車両の内燃機関が所定の運転状態にあるときに取得される。車両および内燃機関の運転状態により、センサ出力にはバラツキが生じる。所定の運転状態という条件を課すことにより、このようなバラツキを抑制して故障検出の精度を向上させることができる。
【００１８】
この発明の一つの側面によると、故障検出装置は、フィルタをさらに備え、上記の排ガスセンサの出力は、フィルタによってフィルタリング処理を施された排ガスセンサの出力であり、上記の空燃比センサの出力は、該フィルタによってフィルタリング処理を施された空燃比センサの出力である。この発明によると、排ガスセンサおよび空燃比センサの出力にフィルタリング処理が施されるので、排ガスセンサの出力に対する触媒の劣化またはノイズの影響を小さくし、故障検出の精度を向上させることができる。
【００１９】
この発明の一実施形態によると、フィルタリング処理は、バンドパスフィルタを用いて実施される。好ましくは、フィルタリング処理は、触媒の劣化により影響される周波数成分とは異なり、かつ排ガスセンサの劣化により影響される周波数成分を通過させるフィルタを用いて実施される。こうして、触媒の劣化が影響を与える周波数成分を除去しつつ、排ガスセンサの劣化が大きく影響する周波数成分の変動を強調するので、故障検出の精度を向上させることができる。
【００２０】
【発明の実施の形態】
内燃機関および制御装置の構成  
次に図面を参照してこの発明の実施の形態を説明する。図１は、この発明の実施形態による内燃機関（以下、「エンジン」という）およびその制御装置の全体的なシステム構成図である。
【００２１】
電子制御ユニット（以下、「ＥＣＵ」）という）５は、車両の各部から送られてくるデータを受け入れる入力インターフェース５ａ、車両の各部の制御を行うための演算を実行するＣＰＵ５ｂ、読み取り専用メモリ（ＲＯＭ）およびランダムアクセスメモリ（ＲＡＭ）を有するメモリ５ｃ、および車両の各部に制御信号を送る出力インターフェース５ｄを備えている。メモリ５ｃのＲＯＭには、車両の各部の制御を行うためのプログラムおよび各種のデータが格納されている。この発明に従う故障検出を実現するためのプログラム、および該プログラムの実行の際に用いるデータおよびテーブルは、このＲＯＭに格納されている。ＲＯＭは、ＥＥＰＲＯＭのような書き換え可能なＲＯＭでもよい。ＲＡＭには、ＣＰＵ５ｂによる演算のための作業領域が設けられる。車両の各部から送られてくるデータおよび車両の各部に送り出す制御信号は、ＲＡＭに一時的に記憶される。
【００２２】
エンジン１は、たとえば４気筒を備えるエンジンである。吸気管２が、エンジン１に連結されている。吸気管２の上流側にはスロットル弁３が設けられている。スロットル弁３に連結されたスロットル弁開度センサ（θＴＨ）４は、スロットル弁３の開度に応じた電気信号を、ＥＣＵ５に供給する。
【００２３】
スロットル弁３をバイパスする通路２１が、吸気管２に設けられている。エンジン１に供給する空気量を制御するためのバイパス弁２２が、バイパス通路２１に設けられている。バイパス弁２２は、ＥＣＵ５からの制御信号に従って駆動される。
【００２４】
燃料噴射弁６は、エンジン１とスロットル弁３の間であって、吸気管２の吸気弁（図示せず）の少し上流側に各気筒毎に設けられている。燃料噴射弁６は、燃料ポンプ（図示せず）に接続され、該燃料ポンプを介して燃料タンク（図示せず）から燃料の供給を受ける。燃料噴射弁６は、ＥＣＵ５からの制御信号に従って駆動される。
【００２５】
吸気管圧力（Ｐｂ）センサ８および吸気温（Ｔａ）センサ９は、吸気管２のスロットル弁３の下流側に設けられている。Ｐｂセンサ８およびＴａセンサ９によって検出された吸気管圧力Ｐｂおよび吸気温Ｔａは、それぞれＥＣＵ５に送られる。
【００２６】
エンジン水温（Ｔｗ）センサ１０は、エンジン１のシリンダブロックの、冷却水が充満した気筒周壁（図示せず）に取り付けられる。Ｔｗセンサ１０によって検出されたエンジン冷却水の温度Ｔｗは、ＥＣＵ５に送られる。
【００２７】
回転数（Ｎｅ）センサ１３は、エンジン１のカム軸またはクランク軸（共に図示せず）周辺に取り付けられる。Ｎｅセンサ１３は、たとえばピストンのＴＤＣ位置に関連したクランク角度で出力されるＴＤＣ信号パルスの周期よりも短いクランク角度（たとえば、３０度）の周期で、ＣＲＫ信号パルスを出力する。ＣＲＫ信号パルスは、ＥＣＵ５によってカウントされ、エンジン回転数Ｎｅが検出される。
【００２８】
エンジン１の下流側には排気管１４が連結されている。エンジン１は、排気管１４を介して排気する。排気管１４の途中に設けられた触媒装置１５は、排気管１４を通る排気ガス中のＨＣ、ＣＯ、ＮＯｘなどの有害成分を浄化する。触媒装置１５には、２つの触媒が設けられている。上流側に設けられた触媒を上流触媒と呼び、下流側に設けられた触媒を下流触媒と呼ぶ。
【００２９】
広域空燃比センサ（ＬＡＦ）センサ１６は、触媒装置１５の上流に設けられている。ＬＡＦセンサ１６は、リーンからリッチにわたる広範囲の空燃比領域において、排気ガス中の酸素濃度をリニアに検出する。検出された酸素濃度は、ＥＣＵ５に送られる。
【００３０】
Ｏ２（排ガス）センサ１７は、上流触媒と下流触媒の間に設けられている。Ｏ２センサ１７は２値型の排気ガス濃度センサである。Ｏ２センサは、空燃比が理論空燃比よりもリッチであるとき高レベルの信号を出力し、空燃比が理論空燃比よりもリーンであるとき低レベルの信号を出力する。出力された電気信号は、ＥＣＵ５に送られる。
【００３１】
車両の速度を検出する車速（ＶＰ）センサ２３がＥＣＵ５に接続され、検出した車速信号をＥＣＵ５に送る。
【００３２】
ＥＣＵ５に向けて送られた信号は入力インターフェース５ａに渡され、アナログ−デジタル変換される。ＣＰＵ５ｂは、変換されたデジタル信号を、メモリ５ｃに格納されているプログラムに従って処理し、車両のアクチュエータに送るための制御信号を作り出す。出力インターフェース５ｄは、これらの制御信号を、バイパス弁２２、燃料噴射弁６、およびその他の機械要素のアクチュエータに送る。
【００３３】
図２の（ａ）は、触媒装置１５の構造を示す。排気管１４に流入した排気ガスは、上流触媒２５を通過し、その後下流触媒２６を通過する。上流および下流触媒の間に設けられたＯ２センサの出力に基づく空燃比制御の方が、下流触媒の下流に設けられたＯ２センサの出力に基づく空燃比制御よりも、Ｎｏｘの浄化率を最適に維持しやすいことがわかっている。そのため、この発明に従う実施形態では、Ｏ２センサ１７を、上流および下流触媒の間に設ける。Ｏ２センサ１７は、上流触媒２５を通過した後の排気ガスの酸素濃度を検出する。
【００３４】
図２の（ｂ）は、図２の（ａ）のＬＡＦセンサ１６からＯ２センサ１７にいたるブロック図である。ＬＡＦセンサ１６は、上流触媒２５に供給される排ガスの空燃比Kactを検出する。Ｏ２センサ１７は、上流触媒２５によって浄化された排ガスの酸素濃度を、電圧Voutとして出力する。
【００３５】
上流触媒２５とＯ２センサ１７は、直列に配置されている。したがって、空燃比KactとＯ２センサ１７の出力Voutとの間には、上流触媒２５およびＯ２センサ１７の遅れおよびむだ時間が存在する。
【００３６】
図３は、Ｏ２センサ出力Voutをフーリエ変換した結果を示す。触媒の劣化が進むと、センサ出力Voutのパワースペクトルは、矢印４１によって示される方向に増大する。反対に、触媒が新品に近いほど、センサ出力Voutのパワースペクトルは、矢印４２によって示される方向に減少する。この特性に基づいて、触媒の劣化を判定することができる。一方、Ｏ２センサが劣化すると、その遅れ特性が大きくなるので、センサ出力Voutのパワースペクトルは、矢印４２の方向に減少する。
【００３７】
このように、Ｏ２センサが劣化または故障すると、センサ出力Voutのパワースペクトルが減少するので、触媒の劣化を正確に検出することができなくなる。言い換えると、センサ出力Voutのパワースペクトルの変化からは、触媒が新品の状態とＯ２センサが劣化している状態とを区別することができない。
【００３８】
触媒劣化とＯ２センサ故障の判別    
発明の理解を助けるため、触媒の劣化とＯ２センサの故障を区別する手法の概念を説明する。最初に、図４および図５を参照して、触媒の劣化を検出する手法の概念を説明する。
【００３９】
図４は、（ａ）触媒が新品の時、（ｂ）触媒の浄化率が十分残っている時、（ｃ）触媒の浄化率が不十分な時の、Ｏ２センサ出力Voutのパワースペクトルを示す。図４の（ａ）〜（ｃ）における、周波数３〜７Ｈｚに対応するセンサ出力Voutのパワースペクトルのレベル変化が、参照番号４５によって示されている。
【００４０】
図５の（ａ）から（ｃ）は、図４の（ａ）から（ｃ）のセンサ出力Voutに、バンドパスフィルタによってフィルタリング処理を施した結果をそれぞれ示す。周波数３〜７Ｈｚにおけるセンサ出力Voutのパワースペクトルが、フィルタによって強調されている。参照番号４６によって示されるように、触媒が劣化するほど、周波数３〜７Ｈｚにおけるセンサ出力Voutのパワースペクトルが増加している。このように、周波数３〜７Ｈｚにおけるセンサ出力Voutを評価することにより、触媒の劣化状態を判定することができる。
【００４１】
次に、Ｏ２センサの故障を検出する手法の概念を説明する。図６の（ａ）は、ＬＡＦセンサによって検出される空燃比Kactの変動の一例を示す、図６の（ｂ）は、図６の（ａ）の空燃比Kactの変動に応じたＯ２センサの出力を示す。グラフ５１は、正常なＯ２センサからの出力Voutを示し、グラフ５２は、故障したＯ２センサからの出力Voutを示す。
【００４２】
正常なＯ２センサと故障したＯ２センサとの間には、空燃比Kactの変動に応じた出力に差があることがわかる。特に、時間５０〜８０において、振幅の大きい低周波の変動が空燃比Kactに生じたとき、正常なＯ２センサの出力と故障したＯ２センサの出力との間に顕著な差が現れる。正常なＯ２センサの出力の振幅は大きく、故障したＯ２センサの出力の振幅は小さい。このように、低周波の大きな空燃比変動が生じた時のＯ２センサ出力の振幅に基づいて、Ｏ２センサの故障を検出することができる。
【００４３】
図６に示される空燃比Kactの低周波の大きな変動、および該空燃比の変動に対応するＯ２センサ出力を強調して抽出するため、空燃比Kactおよびセンサ出力Voutに対し、バンドパスフィルタによるフィルタリング処理を施す。図７の（ａ）および（ｂ）は、空燃比Kactについて用いられるバンドパスフィルタのフィルタ特性の一例を示し、図７の（ｃ）および（ｄ）は、センサ出力Voutについて用いられるバンドパスフィルタのフィルタ特性の一例を示す。
【００４４】
空燃比Kact用のフィルタは、０．０５〜１．０（Ｈｚ）の周波数成分を抽出するように設計されている。センサ出力Voutのフィルタは、０．１〜１．０（Ｈｚ）の周波数成分を抽出するように設計されている。この実施例では、より良好な精度でＯ２センサの故障を検出するため、異なる通過特性を持つフィルタを用いて、空燃比Kactおよびセンサ出力Voutにフィルタリング処理を施す。
【００４５】
図８の（ａ）は、図６の（ａ）の空燃比がフィルタリング処理された空燃比Kact_fを示す。図８の（ｂ）は、図６の（ｂ）のＯ２センサが正常な場合のセンサ出力５１がフィルタリング処理されたセンサ出力Vout_fを示す。図８の（ｃ）は、図６の（ｂ）のＯ２センサが故障している場合のセンサ出力５２がフィルタリング処理されたセンサ出力Vout_fを示す。図６と比較して明らかなように、フィルタリング処理を実施することにより、空燃比Kact_fの変動とＯ２センサ出力Vout_fの変動との相関性がはっきり現れる。低周波の大きな空燃比Kact_fの変動が生じた時の、正常なＯ２センサの出力と故障したＯ２センサの出力の振幅差５５が、顕著に抽出されている。この振幅差５５を評価することにより、Ｏ２センサの正常／故障を判定することができる。
【００４６】
図９は、低周波の大きな空燃比変動およびそれに応じたセンサ出力の振幅差を抽出するために設定されるしきい値を示す。図９の（ａ）に示されるように、フィルタリングされた空燃比Kact_fに、上限値Kact_f_Hおよび下限値Kact_f_Lが設定される。図９の（ｂ）に示されるように、センサ出力Voutに、上限値Vout_f_Hおよび下限値Vout_f_Lが設定される。
【００４７】
図１０は、フィルタリングされた空燃比Kact_fおよびセンサ出力Vout_fの相関関係を示す。フィルタリングされた空燃比Kact_fがゼロより大きい領域はリッチ領域であり、ゼロより小さい領域はリーン領域である。
【００４８】
点６１は、Ｏ２センサが正常な場合に、上限値Kact_f_Hを超えた空燃比Kact_fについてセンサ出力Vout_fをプロットしたものである。点６２は、Ｏ２センサが正常な場合に、下限値Kact_f_Lを下回った空燃比Kact_fについてセンサ出力Vout_fをプロットしたものである。点６３は、Ｏ２センサが故障している場合に、上限値Kact_f_Hを超えた空燃比Kact_fについてセンサ出力Vout_fをプロットしたものである。点６４は、Ｏ２センサが故障している場合に、下限値Kact_f_Lを下回った空燃比Kact_fについてセンサ出力Vout_fをプロットしたものである。
【００４９】
プロットされた点６１および６２に基づいて直線６６を描画することができる。プロットされた点６３および６４に基づいて直線６７を描画することができる。直線６６および６７は、空燃比Kact_fとセンサ出力Vout_fの相関関数を表しており、該相関関数の傾きは、空燃比Kact_fの変動量とセンサ出力Vout_fの変動量の比を表している。Ｏ２センサの正常／故障は、この傾きの差として現れる。したがって、本発明は、相関関数の傾きを算出し、該算出された傾きに基づいてＯ２センサの故障を検出する。
【００５０】
リッチ領域およびリーン領域の相関関数は、それぞれ式（１）および（２）のように表されることができる。ここで、Ａｏ２ｒおよびＡｏ２ｌは、リッチ領域における相関関数の傾きおよびリーン領域における相関関数の傾きをそれぞれ表す。Ａｏ２ｒおよびＡｏ２ｌは、以下、リッチ相関係数およびリーン相関係数と呼ばれる。ｄは、上流触媒およびＯ２センサにおけるむだ時間を示す。ｋは、制御サイクルを識別する識別子である。相関係数Ａｏ２ｒおよびＡｏ２ｌを算出し、該算出された相関係数Ａｏ２ｒおよびＡｏ２ｌに基づいて、Ｏ２センサの正常／故障を判定することができる。
【００５１】
【数１】
0003967630.tif 000002
【００５２】
【数２】
0003967630.tif 000003
【００５３】
このように、触媒の劣化は、主に３〜７Ｈｚの周波数域におけるＯ２センサ出力に影響を与えるので、該周波数域におけるＯ２センサ出力Voutを比較することにより検出される。一方、より低い周波数域において大きな空燃比変動が生じたときの、空燃比センサの出力KactとＯ２センサ出力Voutを比較することにより、Ｏ２センサの劣化を検出することができる。両者の手法は、異なる周波数域におけるＯ２センサ出力に基づくので、触媒の劣化とＯ２センサの劣化を明確に区別することができる。
【００５４】
故障検出装置の構成    
図１１は、本発明の第１の実施例に従う、Ｏ２センサの故障を検出する装置の機能ブロック図である。ＬＡＦセンサ１６およびＯ２センサ１７によってそれぞれ検出された空燃比Kactおよびセンサ出力Voutは、図７に示されるようなフィルタ特性を有するバンドパスフィルタに適用される。第１のバンドパスフィルタ７１は、式（３）に従って、空燃比Kactをフィルタリングする。第２のバンドパスフィルタ７２は、式（４）に従って、センサ出力Voutをフィルタリングする。ak1,ak2,...,akn,bk0,bk1,...,bkmおよびav1,av2,...,avn,bv0,bv1,...,bvmは、予めシミュレーション等で定められるフィルタ係数である。
【００５５】
【数３】
0003967630.tif 000004
【００５６】
【数４】
0003967630.tif 000005
【００５７】
この実施例では、図７を参照して説明したように、空燃比Kactとセンサ出力Voutについて、異なる通過特性を持つフィルタを使用する。しかしながら、同じ通過特性を持つフィルタを用いてもよい。代替的に、バンドパスフィルタの代わりに、ローパスフィルタを用いてもよい。また、低周波の通過域を持つバンドパスフィルタは不安定になりやすいので、ハイパスフィルタとローパスフィルタを順番に適用してもよい。
【００５８】
第１のサンプリング部７３は、フィルタリングされた空燃比Kact_fと、上記の上限値Kact_f_Hを比較し、上限値Kact_f_Hを超えるKact_fをサンプリングする。サンプリングされたサンプルを、リッチ側サンプルと呼ぶ。同様に、第１のサンプリング部７３は、フィルタリングされた空燃比Kact_fと、上記の下限値Kact_f_Lを比較し、下限値Kact_f_Lを下回るKact_fをサンプリングする。サンプリングされたサンプルを、リーン側サンプルと呼ぶ。第２のサンプリング部７４は、第１のサンプリング部７３によってサンプリングされたKact_fに対応するセンサ出力Vout_fをサンプリングする。
【００５９】
第１のピーク処理部７５は、第１のサンプリング部７３によってサンプリングされたリッチ側サンプルKact_fのうち、最大の絶対値を持つサンプルをピーク値として抽出し、保持する（ピークホールド処理）。さらに、第１のピーク処理部７５は、該保持されたピーク値を基準として、該ピーク値の周辺にあるサンプルを抽出する。
【００６０】
同様に、第１のピーク処理部７５は、第１のサンプリング部７３によってサンプリングされたリーン側サンプルKact_fのうち、最大の絶対値を持つサンプルをピーク値として抽出し、保持する（ピークホールド処理）。さらに、第１のピーク処理部７５は、該保持されたピーク値を基準として、該ピーク値の周辺にあるサンプルを抽出する。
【００６１】
第２のピーク処理部７６は、第２のサンプリング部７４によってサンプリングされたリッチ側サンプルVout_fのうち、最大の絶対値を持つサンプルをピーク値として抽出し、保持する（ピークホールド処理）。さらに、第２のピーク処理部７６は、該保持されたピーク値を基準として、該ピーク値の周辺にあるサンプルを抽出する。
【００６２】
同様に、第２のピーク処理部７６は、第２のサンプリング部７４によってサンプリングされたリーン側サンプルKact_fのうち、最大の絶対値を持つサンプルをピーク値として抽出し、保持する（ピークホールド処理）。さらに、第２のピーク処理部７６は、該保持されたピーク値を基準として、該ピーク値の周辺にあるサンプルを抽出する。
【００６３】
ここで、ピークホールド処理の理解を助けるため、図１２を参照する。曲線８１は、リッチ領域におけるフィルタリングされた空燃比Kact_fの変化の一例を示し、曲線８２は、リッチ領域におけるフィルタリングされたセンサ出力Vout_fの変化の一例を示す。
【００６４】
第１のサンプリング部７３により、上限値Kact_f_Hを超えるサンプルＰ１〜Ｐ７がサンプリングされる。第１のピーク処理部７５は、サンプルＰ１〜Ｐ７のうち、最大の振幅を持つサンプルＰ４を、ピーク値Kact_f_peakrとして保持する。第１のピーク処理部７５は、さらに、サンプルＰ４を基準に、左側にある３個のサンプルＰ１〜Ｐ３、および右側にある３個のサンプルＰ５〜Ｐ７を抽出する。
【００６５】
同様の処理が、センサ出力Voutにも適用される。第１のサンプリング部７３によってサンプリングされたサンプルＰ１からＰ７に対応するサンプルＰ１１〜Ｐ１７が、第２のサンプリング部７４によってサンプリングされる。サンプリングされたサンプルＰ１１〜Ｐ１７のうち、サンプルＰ１４が、ピーク値Vout_f_peakrとして保持される。サンプルＰ１４を基準に、左側にある３個のサンプルＰ１１〜Ｐ１３および右側にある３個のサンプルＰ１５〜Ｐ１７が抽出される。
【００６６】
このピークホールド処理を実施することにより、フィルタリングされた空燃比Kact_fおよびセンサ出力Vout_fの相関性を高めることができる。すなわち、Kact_fのピーク値と出力Vout_fのピーク値を対応づけることにより、Kact_fの他のサンプルとVout_fの他のサンプルが時間的に適切に対応づけられる。こうして、ピーク値の対（Ｐ４，Ｐ１４）を基準として、（Ｐ１，Ｐ１１）、（Ｐ２，Ｐ１２）、（Ｐ３，Ｐ１３）、（Ｐ５，Ｐ１５）、（Ｐ６，Ｐ１６）、（Ｐ７，Ｐ１７）が生成される。空燃比とセンサ出力の相関性を高めることにより、より良好な精度で相関係数を求めることができる。
【００６７】
図１１に戻り、統計処理部７７は、抽出されたサンプルに逐次型最小２乗法を適用し、相関係数Ａｏ２ｒおよびＡｏ２ｌを算出する。式（５）〜（８）は、抽出されたリッチ側サンプルに逐次型最小２乗法を適用して、リッチ側相関係数Ａｏ２ｒを算出する式を示す。
【００６８】
【数５】
0003967630.tif 000006
【００６９】
式（５）に示される誤差Eo2r(k)は式（６）に従って算出され、ゲイン係数KPr(k)は式（７）に従って算出される。
【００７０】
【数６】
0003967630.tif 000007
【００７１】
【数７】
0003967630.tif 000008
【００７２】
式（７）におけるPrは、式（８）に従って算出される。
【００７３】
【数８】
0003967630.tif 000009
【００７４】
同様に、リーン側相関係数Ａｏ２ｌは、抽出されたリーン側サンプルに、式（９）〜（１２）に従って逐次型最小２乗法を適用することにより算出される。
【００７５】
【数９】
0003967630.tif 000010
【００７６】
式（９）に示される誤差Eo2l(k)は式（１０）に従って算出され、ゲイン係数KPl(k)は式（１１）に従って算出される。
【００７７】
【数１０】
0003967630.tif 000011
【００７８】
【数１１】
0003967630.tif 000012
【００７９】
式（１１）におけるPlは、式（１２）に従って決定される。
【００８０】
【数１２】
0003967630.tif 000013
【００８１】
ノイズの影響、または車両や内燃機関の運転状態の影響によって、ＬＡＦセンサ出力およびＯ２センサ出力にはバラツキがある。逐次型最小２乗法を適用することにより、該バラツキが故障検出に及ぼす影響を最小にすることができる。さらに、逐次型最小２乗法を実施することにより、各サイクルで統計処理が完了した後は、該サイクルの空燃比Kact_fおよびセンサ出力Vout_fを保持する必要がないので、メモリを節約することができる。
【００８２】
代替的に、逐次型ではない最小２乗法を用いてもよい。また、上記の式（８）および（１２）におけるλ１およびλ２の値により、適用する最小２乗法の種類が定められる。たとえば、固定ゲイン法では、λ１＝１、λ２＝０である。最小２乗法では、λ１＝１、λ２＝１である。漸減ゲイン法では、λ１＝１、λ２＝λである。重み付き最小２乗法では、λ１＝λ、λ２＝１である。
【００８３】
故障判定部７８は、統計処理部７７によって求められた相関係数に基づいて、Ｏ２センサの正常／故障を判定する。リッチ領域においては、相関係数Ａｏ２ｒが所定値Ａｏ２ｒ＿ＢＲより小さければ、Ｏ２センサは故障していると判断する。相関係数Ａｏ２ｒが該所定値Ａｏ２ｒ＿ＢＲ以上ならば、Ｏ２センサは正常と判定する。
【００８４】
同様に、故障判定部７８は、リーン領域において、相関係数Ａｏ２ｌが所定値Ａｏ２ｌ＿ＢＲより小さければ、Ｏ２センサは故障していると判断する。相関係数Ａｏ２ｌが該所定値Ａｏ２ｌ＿ＢＲ以上ならば、Ｏ２センサは正常と判定する。
【００８５】
Ｏ２センサが正常と判定されれば、フラグＦ＿Ｏ２ＢＲはゼロにセットされる。Ｏ２センサが故障と判定されれば、フラグＦ＿Ｏ２ＢＲは１にセットされる。フラグＦ＿Ｏ２ＢＲの値が１のとき、ＭＩＬ（警告灯）を点灯して、Ｏ２センサに異常が生じていることを示すようにしてもよい。
【００８６】
故障判定部７８は、リッチ領域およびリーン領域のいずれかにおいてフラグＦ＿Ｏ２ＢＲに１がセットされたならば、Ｏ２センサが故障していると判定する。代替的に、リッチ領域またはリーン領域のどちらか一方の相関係数を算出し、Ｏ２センサの正常／故障を判定するようにしてもよい。
【００８７】
図１３は、本発明の第２の実施例に従う、Ｏ２センサの故障を検出する装置の機能ブロック図である。上記の第１の実施例では、図１０に示される相関関数の傾きに対して統計処理を実施したのに対し、第２の実施例では、フィルタリングされた空燃比Kact_fおよびセンサ出力Vout_fのそれぞれに統計処理を実施し、統計処理されたKact_fおよびVout_fから相関関数の傾きを算出する。
【００８８】
第１および第２のバンドパスフィルタ７１および７２、第１および第２のサンプリング部７３および７４、第１および第２のピーク処理部７５および７６は、第１の実施例と同様の動作を実行する。
【００８９】
第１の統計処理部９１は、第１のピーク処理部７５によって抽出されたリッチ側サンプルKact_fに、式（１３）〜（１６）に従って逐次型２乗法を適用し、リッチ領域についての統計処理済みKact_f_LSHを求める。
【００９０】
【数１３】
0003967630.tif 000014
【００９１】
式（１３）に示される誤差Ekah(k)は式（１４）に従って算出され、ゲイン係数KPkah(k)は式（１５）に従って算出される。
【００９２】
【数１４】
0003967630.tif 000015
【００９３】
【数１５】
0003967630.tif 000016
【００９４】
式（１５）におけるPkahは、式（１６）に従って決定される。
【００９５】
【数１６】
0003967630.tif 000017
【００９６】
同様に、第１の統計処理部９１は、第１のピーク処理部７５によって抽出されたリーン側サンプルKact_fに、式（１７）〜（２０）に従って逐次型２乗法を適用し、リーン領域についての統計処理済みKact_f_LSLを求める。
【００９７】
【数１７】
0003967630.tif 000018
【００９８】
式（１７）に示される誤差Ekal(k)は式（１８）に従って算出され、ゲイン係数KPkal(k)は式（１９）に従って算出される。
【００９９】
【数１８】
0003967630.tif 000019
【０１００】
【数１９】
0003967630.tif 000020
【０１０１】
式（１９）におけるPkalは、式（２０）に従って決定される。
【０１０２】
【数２０】
0003967630.tif 000021
【０１０３】
第２の統計処理部９２は、第２のピーク処理部７６によって抽出されたリッチ側サンプルVout_fに、式（２１）〜（２４）に従って逐次型２乗法を適用し、リッチ領域についての統計処理済みVout_f_LSHを求める。
【０１０４】
【数２１】
0003967630.tif 000022
【０１０５】
式（２１）に示される誤差Eo2h(k)は式（２２）に従って算出され、ゲイン係数KPo2h(k)は式（２３）に従って算出される。
【０１０６】
【数２２】
0003967630.tif 000023
【０１０７】
【数２３】
0003967630.tif 000024
【０１０８】
式（２３）におけるPko2hは、式（２４）に従って決定される。
【０１０９】
【数２４】
0003967630.tif 000025
【０１１０】
同様に、第２の統計処理部９２は、第２のピーク処理部７６によって抽出されたリーン側サンプルVout_fに、式（２５）〜（２８）に従って逐次型２乗法を適用し、リーン領域についての統計処理済みVout_f_LSLを求める。
【０１１１】
【数２５】
0003967630.tif 000026
【０１１２】
式（２５）に示される誤差Eo2l(k)は式（２６）に従って算出され、ゲイン係数KPo2l(k)は式（２７）に従って算出される。
【０１１３】
【数２６】
0003967630.tif 000027
【０１１４】
【数２７】
0003967630.tif 000028
【０１１５】
式（２７）におけるPo2lは、式（２８）に従って決定される。
【０１１６】
【数２８】
0003967630.tif 000029
【０１１７】
故障判定部９３は、リッチ側領域について、第１および第２の統計処理部９１および９２によって算出された統計処理済みKact_f_LSHとセンサ出力Vout_f_LSHの比を求める。該比Vout_f_LSH/Kact_f_LSHが、所定値Ａｏ２ｒ＿ＢＲより小さければ、Ｏ２センサが故障していると判定する。該比Vout_f_LSH/Kact_f_LSHが所定値Ａｏ２ｒ＿ＢＲ以上ならば、Ｏ２センサは正常と判定する。所定値Ａｏ２ｒ＿ＢＲは、第１の実施例において用いられたものと同じである。
【０１１８】
同様に、故障判定部９３は、リーン領域について、第１および第２の統計処理部９１および９２によって算出された統計処理済みKact_f_LSLとセンサ出力Vout_f_LSLの比を求める。該比Vout_f_LSL/Kact_f_LSLが所定値Ａｏ２ｒ＿ＢＲより小さければ、Ｏ２センサが故障していると判定する。該比Vout_f_LSL/Kact_f_LSLが所定値Ａｏ２ｒ＿ＢＲ以上ならば、Ｏ２センサは正常と判定する。
【０１１９】
Ｏ２センサが正常と判定されれば、フラグＦ＿Ｏ２ＢＲはゼロにセットされる。Ｏ２センサが故障と判定されれば、フラグＦ＿Ｏ２ＢＲは１にセットされる。
【０１２０】
Ｏ２センサの故障を検出するフローチャート  
図１４は、この発明の第１の実施例に従う、Ｏ２センサの故障を検出するメインルーチンを示す。ステップＳ１０１において、センサ活性フラグが１かどうかを調べる。センサ活性フラグは、Ｏ２センサおよびＬＡＦセンサの両方が活性化された時に１にセットされるフラグである。センサ活性フラグがゼロならば、タイマＴＭＦＬＴＳＴに所定値ＴＭＦＳＴＷＴをセットする（Ｓ１０２）。所定値ＴＭＦＳＴＷＴは、バンドパスフィルタの出力が安定するのに必要な時間（たとえば、１．０秒）が設定される。ステップＳ１０３およびＳ１０４において、継続フラグF_CKactHおよびF_CKactLがゼロに初期化される。
【０１２１】
ステップＳ１０１においてセンサ活性フラグが１ならば、上記の式（３）および（４）に従い、空燃比Kactおよびセンサ出力Voutにフィルタリング処理を施し、Kact_f(k)およびVout_f(k)を求める（Ｓ１０５）。ステップＳ１０６において、車両のクルーズ状態を検出するため、式（２９）に従って車速Ｖｐにローパスフィルタを適用し、車速フィルタリング値Vfltを求める。ここで、afl,...,afnおよびbf0,...,bfmは、ローパスフィルタ係数を示す。ローパスフィルタは、たとえばバタワースフィルタ等を用いることができる。
【０１２２】
【数２９】
0003967630.tif 000030
【０１２３】
ステップＳ１０７において、ステップＳ１０２でセットされたタイマＴＭＦＬＴＳＴがゼロになったかどうかを調べる。タイマがゼロになっていれば、Ｏ２フィードバック制御が実施されているかどうかを調べる（Ｓ１０８）。Ｏ２フィードバック制御が実施されていれば、ステップＳ１０９に進む。こうして、バンドパスフィルタの出力が安定し、Ｏ２フィードバック制御によって空燃比が適切に制御されている時に、Ｏ２センサの故障検出が実施されるようにする。
【０１２４】
ステップＳ１０９において、ステップＳ１０６で求められた、今回のサイクルにおける車速フィルタリング値Vflt(k)および前回のサイクルにおける車速フィルタリング値Vflt(k-1)を比較し、車速の変動が所定値より大きいかどうかを判断する。車速の変動が所定値X_DVLMより大きければ、車速の変動が大きく、Ｏ２センサの故障検出に適切な状況ではないので、ステップＳ１０３に進む。ステップＳ１１０において、エンジン回転数ＮＥが所定範囲内（下限値X_NELおよび上限値X_NEHの間）にあるかどうかを調べる。エンジン回転数ＮＥが所定範囲に無いならば、エンジン回転数の変動が大きく、Ｏ２センサの故障検出に適切な状況ではないので、ステップＳ１０３に進む。ステップＳ１１０において、吸気管圧力ＰＢが所定範囲内（下限値X_PBLおよび上限値X_PBHの間）にあるかどうかを調べる。吸気管圧力ＰＢが所定範囲に無いならば、エンジン負荷の変動が大きく、Ｏ２センサの故障検出に適切な状況ではないので、ステップＳ１０３に進む。。
【０１２５】
ステップＳ１０９〜Ｓ１１１のすべての判断がＹｅｓならば、故障検出を実施するためにステップＳ１１２に進む。ステップＳ１１２において、リッチ領域において空燃比Kact_fおよびセンサ出力Vout_fのサンプルを求める処理（図１５）を実施する。ステップＳ１１３において、リーン領域において空燃比Kact_fおよび出力Vout_fのサンプルを求める処理（図１６）を実施する。ステップＳ１１４においてリッチ側相関係数Ａｏ２Ｒを算出し（図１７）、ステップＳ１１５においてリーン側相関係数Ａｏ２ｌを算出する（図１８）。ステップＳ１１６において、相関係数Ａｏ２ＲおよびＡｏ２ｌに基づいて、Ｏ２センサの故障を判定する（図１９）。
【０１２６】
図１５は、図１４のステップＳ１１２において実施されるリッチ側サンプルを求める処理のフローチャートを示す。ステップＳ１２０において、今回のサイクルにおけるフィルタリングされた空燃比Kact_f(k-d)と、所定の上限値Katct_f_H（図９および図１０参照）とを比較する。フィルタリングされた空燃比Kact_f(k-d)が上限値Katct_f_Hより大きければ、継続フラグF_CKactHに１がセットされているかどうかを調べる（Ｓ１２１）。継続フラグF_CKactHは、所与のサイクルでリッチ側サンプルの抽出処理が完了したときに１がセットされるフラグである。
【０１２７】
ステップＳ１２１において継続フラグF_CKactHがゼロならば、前回のサイクルにおいてリッチ側サンプルの抽出処理が実施されなかったことを示す。この場合、ステップＳ１２２〜Ｓ１３０における初期化を実施する。初期化において、Kact_fおよびVout_fのそれぞれについて用意されたリングバッファKact_f_Br(j)およびVout_f_Br(j)をクリアする。バッファは、それぞれ、この実施例では２０個用意されている。
【０１２８】
ステップＳ１２７において、空燃比Kact_fのピーク値が格納されるバッファ番号を示すIPKKAr、およびセンサ出力Vout_fのピーク値が格納されるバッファ番号を示すIPKO2ｒをゼロに初期化する。ステップＳ１２９およびＳ１３０において、Kact_fのピーク値を記憶するKact_f_peakrおよびVout_fのピーク値を記憶するVout_f_peakrをそれぞれゼロに初期化する。
【０１２９】
ステップＳ１２１において継続フラグF_CKact_Hが１ならば、前回のサイクルにおいてリッチ側サンプルの抽出処理が実施されたことを示す。ステップＳ１３１に進み、ｉに１をセットする。ステップＳ１３２およびＳ１３３において、Kact_fおよびVact_fのそれぞれのリングバッファを１つだけシフトする。すなわち、（ｉ−１）番目のバッファKact_f_Br(i-1)に格納されているKact_fを、ｉ番目のバッファKact_f_Br(i)にシフトし、（ｉ−１）番目のバッファVout_f_Br(i-1)に格納されているVout_fを、ｉ番目のバッファVout_f_Br(i)にシフトする。このシフトを、ｉ＝１からｉ＝２０になるまで繰り返す（Ｓ１３７）。こうして、０番目のバッファKact_f_Br(0)およびVout_f_Br(0)を空にする。
【０１３０】
リングバッファを１つだけシフトしたので、ピークバッファ番号IPKKArおよびIPKO2rに１を加算する（Ｓ１３５およびＳ１３６）。ステップＳ１３８およびＳ１３９において、シフト操作によって空にされたゼロ番目のバッファに、今回のサイクルにおけるKact_f(k-d)およびVout_f(k-d)を格納する。
【０１３１】
ステップS１４０において、今回のサイクルにおけるKact_f（k-d）が、現在のピーク値Kact_f_peakrより大きければ、該Kat_f(k-d)でピーク値Kact_f_peakrを更新する（Ｓ１４１）。ゼロ番目のバッファにピーク値が格納されたので、ピークバッファ番号IPKKArにゼロをセットする（Ｓ１４２）。
【０１３２】
ステップS１４３において、今回のサイクルにおけるVout_f（k-d）が、現在のピーク値Vout_f_peakrより大きければ、該Vout_f(k-d)でピーク値Vout_f_peakrを更新する（S１４４）。ゼロ番目のバッファにピーク値が格納されたので、ピークバッファ番号IPKO2rにゼロをセットする（Ｓ１４５）。今回のサイクルにおけるサンプル抽出処理が完了したので、継続フラグF_CKactHに１をセットする（Ｓ１４６）。
【０１３３】
ステップＳ１２０に戻り、フィルタリングされた空燃比Kact_f(k-d)が上限値Katct_f_H以下ならば、継続フラグF_CKactHの値を調べる（Ｓ１４７）。継続フラグF_CKactHが１ならば、前回のサイクルまでに抽出されたリッチ側サンプルに基づいて相関係数を算出するため、許可フラグF_AO2RLSGOに１をセットし（Ｓ１４８）、継続フラグF_CKactHにゼロをセットする（Ｓ１４９）。ステップＳ１４７において継続フラグF_CKactHがゼロならば、許可フラグF_AO2RLSGOにゼロをセットする（Ｓ１５０）。
【０１３４】
図１６は、図１４のステップＳ１１３において実施される、リーン側サンプルを求める処理のフローチャートを示す。リーン側サンプルを求める処理は、図１５のリッチ側サンプルを求める処理と同様の手順を有するので、詳細な説明は省略する。
【０１３５】
今回のサイクルの空燃比Kact_f(k-d)が下限値Kact_f_L（図９および図１０参照）より小さく（Ｓ１６０）、かつ継続フラグF_CKactLがゼロのとき（Ｓ１６１）、ステップS１６２〜Ｓ１７０で示される初期化を行う。
【０１３６】
ステップＳ１６１において継続フラグF_CKactLが１のとき、前回のサイクルにおいてリーン側サンプルの抽出処理が実施されたことを示す。ステップＳ１７１〜Ｓ１７７において、リーン側サンプルのために用意されたリングバッファKact_f_Bl(i)およびVout_f_Bl(i)のそれぞれを、１つだけシフトする。ステップＳ１７８およびＳ１７９において、今回のサイクルのフィルタリングされた空燃比Kact_f(K-d)および出力Vout_f(k-d)を、それぞれ、バッファKact_f_Bl(0)およびVout_f_Bl(0)に格納する。ステップＳ１８０からＳ１８２において、フィルタリングされた空燃比Kact_fのリーン側ピーク値Kact_f_peaklを更新し、ピークバッファ番号IPKKAlをゼロにする。ステップＳ１８３からＳ１８５において、フィルタリングされた出力のVout_fのリーン側ピーク値Vout_f_peaklを更新し、ピークバッファ番号IPKO2ｌをゼロにする。ステップＳ１８６において、継続フラグF_CKactLに１をセットする。
【０１３７】
ステップＳ１６０に戻り、今回のサイクルにおけるフィルタリングされた空燃比Kact_f(k-d)が下限値Kact_f_L以上で、継続フラグF_CKactLが１ならば（Ｓ１８７）、前回のサイクルまでに抽出されたリーン側サンプルに基づいて相関係数を算出するため、許可フラグF_AO2LLSGOに１をセットし（Ｓ１８８）、継続フラグF_CKactLにゼロをセットする（Ｓ１８９）。ステップＳ１８７において継続フラグF_CKactLがゼロならば、許可フラグF_AO2LLSGOにゼロをセットする（Ｓ１９０）。
【０１３８】
図１７は、図１４のステップＳ１１４において実施される、リッチ側相関係数Ａｏ２Ｒを算出する処理のフローチャートを示す。この実施例では、図１２に示されるように、ピーク値を基準とした７個のサンプルに基づいて相関係数Ａｏ２Ｒを算出する。許可フラグF_AO2RLSGOに１がセットされているとき、このルーチンに入る（Ｓ２０１）。
【０１３９】
ステップＳ２０２において、ピークバッファ番号IPKKArおよびIPKO2ｒが３以上かどうかを調べる。ピークバッファ番号IPKKArおよびIPKO2ｒは、ピーク値を格納するバッファの番号を示す。ピークバッファ番号IPKKAｒが２以下の場合、空燃比Kact_fについて、ピーク値を基準としたサンプル数が５個以下であることを示す。同様に、ピークバッファ番号IPKO2ｒが２以下の場合、センサ出力Vout_fについて、ピーク値を基準としたサンプル数が５個以下であることを示す。抽出されたサンプルKact_fおよびVout_fの数が少なすぎると、適切な統計処理を実施することができない。したがって、ピークバッファ番号IPKKArおよびIPKO2ｒのいずれかが２以下の場合、このルーチンを抜ける。
【０１４０】
ステップＳ２０３において、ｋにゼロをセットする。ステップＳ２０４〜２０７において、逐次型最小２乗法による統計処理を実施する。ステップＳ２０４では、上記の式（６）に従って誤差Eo2rを求める。ステップＳ２０４で示されるＡｏ２ｒは、前回のサイクルで求められたリッチ側相関係数である。ステップS２０５において、上記の式（７）に従ってゲイン係数KPｒを求める。ステップＳ２０５で示されるＰｒは、前回のサイクルにおいて上記の式（８）に従って計算されたものである。ステップＳ２０６において、次回のサイクルで使用されるＰｒを算出する。ステップＳ２０７において、上記の式（５）に従い、ステップＳ２０４およびＳ２０５で算出された誤差Eo2rおよびゲイン係数Kprを用いて、リッチ側相関係数Ａｏ２ｒを算出する。
【０１４１】
ステップ２０４から２０７の演算は、ステップＳ２０９においてｋ＝６に等しくなるまで実施される。たとえば、ピーク値が４番目のバッファに格納されているとすると、１番目のバッファから７番目のバッファに格納されたサンプルが処理される。
【０１４２】
図１８は、図１４のステップＳ１１５において実施される、リーン側相関係数Ａｏ２ｌを算出する処理のフローチャートを示す。リーン側相関係数を算出する処理は、リッチ側相関係数を算出する処理と同様の手順を有するので、詳細な説明は省略する。ピーク値（絶対値が最大）を中心とした７個のサンプル（ピーク値を基準に、左側に３個および右側に３個）のそれぞれに、逐次型２乗法が適用され、相関係数Ａｏ２ｌが求められる。
【０１４３】
図１９は、算出された相関係数Ａｏ２ｒおよびＡｏ２ｌに基づいてＯ２センサの故障を判定する処理のフローチャートを示す。ステップＳ２５１において、リッチ側相関係数Ａｏ２ｒが所定値Ａｏ２ｒ＿ＢＲより小さいとき、Ｏ２センサに故障があると判定される。ステップＳ２５２において、リーン側相関係数Ａｏ２ｌが所定値Ａｏ２ｌ＿ＢＲより小さいとき、Ｏ２センサに故障があると判定される。故障があると判定されたときは、フラグＦ＿Ｏ２ＢＲに１がセットされる。
【０１４４】
ステップＳ２５１およびＳ２５２の判断が両方ともＮｏのとき、Ｏ２センサは正常と判定され、故障フラグＦ＿Ｏ２ＢＲに１をセットすることなくこのルーチンを抜ける。
【０１４５】
なお、相関係数Ａｏ２ｒおよびＡｏ２ｌの初期値は、ゼロとするか、またはバックアップＲＡＭに格納された、前回のエンジン停止時のものを用いてもよい。
【０１４６】
本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンにも適用が可能である。
【０１４７】
【発明の効果】
この発明によると、触媒の下流に設けられた排ガスセンサの故障を、該触媒の劣化と区別して検出することができる。
【図面の簡単な説明】
【図１】この発明の一実施例に従う、内燃機関およびその制御装置を概略的に示す図。
【図２】この発明の一実施例に従う、触媒装置および排ガスセンサの配置を示す図。
【図３】排ガスセンサ出力の周波数応答の一例を示す図。
【図４】排ガスセンサ出力の周波数応答が、触媒の劣化の程度に応じて変化する様子を示す図。
【図５】フィルタリングされた排ガスセンサ出力の周波数応答が、触媒の劣化の程度に応じて変化する様子を示す図。
【図６】空燃比の変動に応じて、排ガスセンサの正常／故障により該排ガスセンサの出力が変動する様子を示す図。
【図７】この発明の一実施例に従う、バンドパスフィルタのフィルタ特性を示す図。
【図８】この発明の一実施例に従う、図６の空燃比および排ガスセンサ出力をフィルタリングした結果を示す図。
【図９】この発明の一実施例に従う、フィルタリングされた空燃比および排ガスセンサ出力に設定されるしきい値を示す図。
【図１０】この発明の一実施例に従う、排ガスセンサが正常な場合と故障している場合とにおける空燃比と排ガスセンサ出力の相関関係を示す図。
【図１１】この発明の第１の実施例に従う、故障検出装置の機能ブロック図。
【図１２】この発明の一実施例に従う、空燃比と排ガスセンサ出力のピークホールド処理において抽出されたサンプルを示す図。
【図１３】この発明の第２の実施例に従う、故障検出装置の機能ブロック図。
【図１４】この発明の一実施例に従う、故障検出処理のメインルーチンを示すフローチャート。
【図１５】この発明の一実施例に従う、リッチ側サンプルを抽出するルーチンを示すフローチャート。
【図１６】この発明の一実施例に従う、リーン側サンプルを抽出するルーチンを示すフローチャート。
【図１７】この発明の一実施例に従う、リッチ側相関係数を算出するルーチンを示すフローチャート。
【図１８】この発明の一実施例に従う、リーン側相関係数を算出するルーチンを示すフローチャート。
【図１９】この発明の一実施例に従う、故障判定ルーチンを示すフローチャート。
【符号の説明】
１  エンジン
５  ＥＣＵ
１４  排気管
１５  触媒装置
１６  ＬＡＦセンサ
１７  Ｏ２センサ
２５  上流触媒
２６  下流触媒
【図１】
0003967630.tif 000031
【図２】
0003967630.tif 000032
【図３】
0003967630.tif 000033
【図４】
0003967630.tif 000034
【図５】
0003967630.tif 000035
【図６】
0003967630.tif 000036
【図７】
0003967630.tif 000037
【図８】
0003967630.tif 000038
【図９】
0003967630.tif 000039
【図１０】
0003967630.tif 000040
【図１１】
0003967630.tif 000041
【図１２】
0003967630.tif 000042
【図１３】
0003967630.tif 000043
【図１４】
0003967630.tif 000044
【図１５】
0003967630.tif 000045
【図１６】
0003967630.tif 000046
【図１７】
0003967630.tif 000047
【図１８】
0003967630.tif 000048
【図１９】
0003967630.tif 000049