(57)【特許請求の範囲】
【請求項１】
燃料供給が停止されるフューエルカット運転可能な内燃機関の排気系の触媒よりも下流側に配置され、排気ガス中の酸素濃度を表す検出信号を出力する酸素濃度センサの故障判定装置であって、
フューエルカット運転が終了した後の経過時間を計時する計時手段と、
フューエルカット運転が終了した後に前記酸素濃度センサの検出信号値が所定しきい値を横切ったか否かを判別する酸素濃度変化判別手段と、
フューエルカット運転が終了した後に排出された排気ガスの積算量を算出する排気ガス量算出手段と、
前記酸素濃度変化判別手段により前記検出信号値が前記所定しきい値を横切っていないと判別されている場合において、前記排気ガスの積算量が所定値に達したときに、前記酸素濃度センサが故障したと判定する故障判定手段と、
前記酸素濃度変化判別手段により前記検出信号値が前記所定しきい値を横切っていないと判別されている場合において、前記排気ガスの積算量が前記所定値に達する前に、前記計時手段によって計時された経過時間が所定時間に達したときに、次回のフューエルカット運転が開始されるまでの間、前記故障判定手段による故障判定を禁止する故障判定禁止手段と、
を備えることを特徴とする酸素濃度センサの故障判定装置。
【請求項２】
前記フューエルカット運転の終了直後に前記内燃機関に供給する混合気を理論空燃比よりもリッチ化する混合気リッチ化手段をさらに備えることを特徴とする請求項１に記載の酸素濃度センサの故障判定装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の排気系の触媒よりも下流側に配置され、排気ガス中の酸素濃度を検出する酸素濃度センサの故障判定装置に関する。
【０００２】
【従来の技術】
従来、内燃機関の排気系に配置された酸素濃度センサの故障判定装置として、例えば特開平４−３６６５１号公報に記載されたものが知られている。この故障判定装置では、酸素濃度センサ（以下「Ｏ２センサ」という）の故障判定が以下のようにして行われる。まず、内燃機関への燃料供給を停止するフューエルカット運転（以下「Ｆ／Ｃ運転」という）中を含むその前後の期間において、酸素濃度センサの検出出力（以下「センサ出力」という）をサンプリングする。そして、Ｆ／Ｃ運転の開始時のセンサ出力の立ち下がり勾配（応答性）が所定基準値よりも小さい場合、Ｆ／Ｃ運転の終了時のセンサ出力の立ち上がり勾配が所定基準値よりも小さい場合、またはＦ／Ｃ運転中のセンサ出力の最小値と、Ｆ／Ｃ運転終了後のセンサ出力の最大値との偏差が所定値よりも小さい場合に、Ｏ２センサが故障（劣化）したと判定する。
【０００３】
【発明が解決しようとする課題】
上記従来の故障判定装置によれば、例えばＦ／Ｃ運転の終了直後にアイドリング運転状態になった場合などに、Ｏ２センサに供給される排気ガス量がきわめて少なくなることにより、センサ出力の立ち上がり勾配が上記所定基準値よりも小さくなることがある。その結果、Ｏ２センサが故障していないにもかかわらず、故障したと誤判定されるおそれがある。
【０００４】
また、この故障判定装置を排気管の触媒よりも下流側に配置されたＯ２センサに適用した場合、Ｆ／Ｃ運転中に酸素が触媒に蓄えられることにより、Ｆ／Ｃ運転終了後には、触媒を通過した排気ガス中の酸素濃度が高くなることで、上記センサ出力の立ち上がり勾配が所定基準値よりも小さくなり、または上記偏差が所定値よりも小さくなる。その結果、上記と同様の誤判定が生じる。
【０００５】
本発明は、上記課題を解決するためになされたもので、酸素濃度センサの故障を精度よく適切なタイミングでかつ迅速に判定することができる酸素濃度センサの故障判定装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
この目的を達成するために、請求項１に係る発明は、燃料供給が停止されるフューエルカット運転可能な内燃機関３の排気系の触媒（例えば実施形態における（以下、この項において同じ）触媒装置８）よりも下流側に配置され、排気ガス中の酸素濃度を表す検出信号を出力する酸素濃度センサ２５の故障判定装置１であって、フューエルカット運転が終了した後の経過時間を計時する計時手段と（ＥＣＵ２、タイマｔｍＭＦＣＣＫＤ）、フューエルカット運転が終了した後に酸素濃度センサ２５の検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切ったか否かを判別する酸素濃度変化判別手段（ＥＣＵ２、ステップ３２〜３４）と、フューエルカット運転が終了した後に排出された排気ガスの積算量ＳＵＭＳＶＳを算出する排気ガス量算出手段（ＥＣＵ２、ステップ１３）と、酸素濃度変化判別手段により検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切っていないと判別されている場合（ステップ５１の判別結果がＮＯの場合）において、排気ガスの積算量ＳＵＭＳＶＳが所定値＃ＳＵＭＳＶＡＦＣに達したとき（ステップ５３の判別結果がＹＥＳのとき）に、酸素濃度センサ２５が故障したと判定する故障判定手段（ＥＣＵ２、ステップ５１，５３，５４）と、酸素濃度変化判別手段により検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切っていないと判別されている場合（ステップ５１の判別結果がＮＯの場合）において、排気ガスの積算量ＳＵＭＳＶＳが所定値＃ＳＵＭＳＶＡＦＣに達する前（ステップ５３の判別結果がＮＯのとき）に、計時手段によって計時された経過時間が所定時間＃ＴＭＦＣＣＫＤに達したとき（ステップ１２の判別結果がＹＥＳのとき）に、次回のフューエルカット運転が開始されるまで（ステップ１０の判別結果がＮＯ、かつステップ１１の判別結果がＹＥＳになるまで）の間、故障判定手段による故障判定を禁止する故障判定禁止手段（ＥＣＵ２）と、を備えることを特徴とする。
【０００７】
この酸素濃度センサの故障判定装置によれば、酸素濃度センサの検出信号値がフューエルカット運転の終了後に所定しきい値を横切ったか否かを判別するとともに、検出信号値が所定しきい値を横切っていない場合において、排気ガスの積算量が所定値に達したときに、酸素濃度センサが故障したと判定する。このように排気ガスの積算量が所定値に達したときに酸素濃度センサの故障判定を実行するので、排気ガスの排出量が少ないときでも、排気ガスが触媒に十分に供給された時点、すなわちフューエルカット運転中に触媒に蓄えられた酸素が十分に消費されることにより触媒における酸素の蓄積過多状態が解消された時点で、酸素濃度センサの故障を判定することができる。これにより、酸素濃度センサの故障の判定を精度よく行うことができる。さらに、検出信号値が所定しきい値を横切っていない場合において、排気ガスの積算量が所定値に達する前に、フューエルカット運転が終了した後の経過時間が所定時間に達したときには、酸素濃度センサの故障判定が禁止される。これにより、酸素濃度センサの故障の誤判定を防止することができる。また、この故障判定の禁止は、次回のフューエルカット運転が開始されるまで継続される。
【００１０】
請求項２に係る発明は、請求項１に記載の酸素濃度センサ２５の故障判定装置１において、フューエルカット運転の終了直後に内燃機関３に供給する混合気を理論空燃比よりもリッチ化する混合気リッチ化手段（ＥＣＵ２）をさらに備えることを特徴とする。
【００１１】
この酸素濃度センサの故障判定装置によれば、理論空燃比よりもリッチな混合気が内燃機関に供給されることにより、高ＨＣ濃度および高ＣＯ濃度の排気ガスが、フューエルカット運転の終了直後に触媒に供給される。これにより、フューエルカット運転中に触媒に蓄えられた酸素を積極的に消費させることによって、触媒における酸素の蓄積過多状態を早期に解消することができる。その結果、酸素濃度の低いリッチな空燃比の排気ガスを酸素濃度センサにより早く供給できることにより、上記故障判定を迅速に行うことができる。
【００１２】
【発明の実施の形態】
以下、図面を参照しながら、本発明の一実施形態に係る酸素濃度センサの故障判定装置について説明する。図１は、本発明の故障判定装置の概略構成を示している。同図に示すように、この故障判定装置１は、ＥＣＵ２（酸素濃度変化判別手段、排気ガス量算出手段、故障判定手段、故障判定保留手段、混合気リッチ化手段）を備えている。このＥＣＵ２は、後述するように内燃機関３（以下「エンジン３」という）の空燃比を制御するとともに、内燃機関３から排出される排気ガスの状態に基づき、酸素濃度センサの故障判定を行う。
【００１３】
エンジン３は、燃料を直接、燃焼室内に噴射する、いわゆる直噴式の直列４気筒タイプのものである。各気筒のシリンダヘッド３ａには、燃料噴射弁４（以下「インジェクタ４」という）が取り付けられている。インジェクタ４は、ＥＣＵ２に電気的に接続されており、その燃料噴射時間ＴＯＵＴがＥＣＵ２からの駆動信号により制御される。これにより、エンジン３への燃料供給量が制御される。
【００１４】
また、エンジン３のクランクシャフト（図示せず）には、マグネットロータ２０ａが取り付けられており、マグネットロータ２０ａは、ＭＲＥ（磁気抵抗素子）ピックアップ２０ｂとともに、クランク角センサ２０を構成している。クランク角センサ２０は、クランクシャフトの回転に伴い、ともにパルス信号であるＣＲＫ信号およびＴＤＣ信号をＥＣＵ２に出力する。ＣＲＫ信号は、クランクシャフトの回転角度位置を示す信号であり、所定のクランク角（例えば、１゜）ごとに１パルスが出力される。ＥＣＵ２は、このＣＲＫ信号に基づき、エンジン３のエンジン回転数ＮＥを算出する。ＴＤＣ信号は、各気筒におけるピストン３ｂの吸気行程開始時の上死点位置付近の所定タイミングで発生するパルス信号であり、このエンジン３では、クランクシャフトが１８０゜回転するごとに１パルスが出力される。
【００１５】
一方、エンジン３の本体には、サーミスタなどから成る水温センサ２１が取り付けられている。この水温センサ２１は、エンジン３の冷却水温であるエンジン水温ＴＷを検出して、その検出信号をＥＣＵ２に送る。
【００１６】
さらに、エンジン３の吸気管５のスロットルバルブ６よりも下流側には、吸気管内絶対圧センサ２２が取り付けられている。吸気管内絶対圧センサ２２は、半導体圧力センサなどで構成されており、吸気管５内の吸気管内絶対圧ＰＢＡを検出して、その検出信号をＥＣＵ２に送る。この吸気管内絶対圧センサ２２の下流側には、吸気温センサ２３が取り付けられている。吸気温センサ２３は、サーミスタで構成されており、吸気管５内の吸気温ＴＡを検出して、その検出信号をＥＣＵ２に送る。
【００１７】
一方、排気管７の途中には、触媒装置８（触媒）が取り付けられている。この触媒装置８は、ＮＯｘ触媒と３元触媒を組み合わせたものであり、ＮＯｘ触媒による酸化還元作用により、リーンバーン運転時の排気ガス中のＮＯｘを浄化する。また、３元触媒の酸化還元作用により、リーンバーン運転以外の運転時の排気ガス中のＣＯ、ＨＣおよびＮＯｘを浄化する。
【００１８】
触媒装置８の上流側には、ＬＡＦセンサ２４が取り付けられている。ＬＡＦセンサ２４は、ジルコニアおよび白金電極などで構成され、リッチ領域からリーン領域までの広範囲な空燃比の領域において排気ガス中の酸素濃度をリニアに検出し、その酸素濃度に比例する検出信号をＥＣＵ２に送る。
【００１９】
また、触媒装置８の下流側には、酸素濃度センサ２５（以下「Ｏ２センサ２５」という）が取り付けられている。このＯ２センサ２５は、ジルコニアおよび白金電極などで構成され、触媒装置８の下流側の排気ガス中の酸素濃度を検出して、その酸素濃度に基づく検出信号をＥＣＵ２に出力する。具体的には、Ｏ２センサ２５の検出信号値ＳＶＯ２は、理論空燃比よりもリッチな混合気を燃焼させたときには、ハイレベルの電圧値（例えば０．８Ｖ）となり、リーンな混合気を燃焼させたときには、ローレベルの電圧値（例えば０Ｖ）となる。
【００２０】
さらに、エンジン３を搭載した車両（図示せず）には、車速センサ２６が設けられている。この車速センサ２６は、車両の車速ＶＰを検出して、その検出信号をＥＣＵ２に送る。
【００２１】
一方、ＥＣＵ２は、ＣＰＵ、ＲＡＭ、ＲＯＭおよびＩ／Ｏインターフェースなどからなるマイクロコンピュータで構成されている（いずれも図示せず）。ＥＣＵ２に入力された各センサ２０〜２６の検出信号はそれぞれ、入力インターフェースでＡ／Ｄ変換や整形がなされた後、ＣＰＵに入力される。ＣＰＵは、これらの入力信号に応じて、以下に述べるように、Ｏ２センサ２５の故障判定の実行条件判別処理および故障判定処理を行う。
【００２２】
また、運転状態に応じて目標空燃比ＫＣＭＤを求め、ＬＡＦセンサ２４の検出信号値ＫＡＣＴが目標空燃比ＫＣＭＤになるように空燃比をフィードバック制御する（図７参照）。これら目標空燃比ＫＣＭＤおよび検出信号値ＫＡＣＴは、空燃比の逆数に比例する当量比として表され、特に、目標空燃比ＫＣＭＤは、理論空燃比のときに値１．０に、理論空燃比よりもリッチ側であるときに値１．０よりも大きな値にそれぞれ設定されるものである。この空燃比制御においては、減速フューエルカット運転（以下「Ｆ／Ｃ運転」という）条件が成立したときに、インジェクタ４による燃焼室への燃料供給を停止することにより、エンジン３をＦ／Ｃ運転させる。
【００２３】
さらに、Ｆ／Ｃ運転が終了した後には、目標空燃比ＫＣＭＤを所定時間（図７の時刻ｔ２〜ｔ３の時間）、理論空燃比（１．０）よりも高い値（例えば１．２）に保持する。すなわち、混合気をリッチ化させることにより、触媒装置８に対して酸素濃度の低いリッチな排気ガスを供給する。このように空燃比を制御する理由は、以下による。すなわち、Ｆ／Ｃ運転中には、酸素濃度の極めて高いリーンな排気ガスが触媒装置８に供給されることにより、酸素が触媒装置８に過剰に蓄えられ、Ｏ２センサ２５の検出信号値ＳＶ０２がローレベルからハイレベルに変化しない状態が継続し、その結果、後述するＯ２センサ２５の故障判定を正確に行えなくなるので、上記のようにＦ／Ｃ運転の終了後に空燃比をリッチ化することによって、触媒装置８の酸素過多状態を早期に解消するためである。
【００２４】
図２および図３は、エンジン３の運転状態に応じて、後述するＯ２センサ２５の故障判定処理を行うための実行条件が成立しているか否かを判別するとともに、その判別結果に応じてフラグおよびモニタを設定する故障判定の実行条件判別処理の手順を示すフローチャートである。本処理は、ＴＤＣ信号が入力されたときに、このＴＤＣ信号に同期して割込み実行される。
【００２５】
本処理では、まず、ステップ１（図では「Ｓ１」と略す。以下、同様）において、ＲＡＭに記憶されているフラグＦ＿ＭＣＮＤおよびモニタＭＦＣＣＨＫの値をそれぞれ、これらの前回値Ｆ＿ＭＣＮＤ１およびＭＦＣＣＨＫ１にセットする。
【００２６】
次に、ステップ２に進み、フラグＦ＿ＮＳＯ２が１であるか否かを判別する。このフラグＦ＿ＮＳＯ２は、Ｏ２センサ２５が活性状態であるときに「１」にセットされ、不活性状態であるときに「０」にセットされるものである。ステップ２の判別結果がＹＥＳのとき、すなわちフラグＦ＿ＮＳＯ２＝１のときは、ステップ３に進み、エンジン３の始動後の経過時間Ｔ２０ＡＣＲが所定時間＃ＴＭＭＣＮＤより大きいか否かを判別する。この判別は、エンジン３の始動直後において、Ｏ２センサ２５の素子温度が低く、不安定な動作状態になることによって故障判定が不正確になるのを避けるために行われる。そのため、所定時間＃ＴＭＭＣＮＤは、Ｏ２センサ２５の動作状態が安定するのに十分な値（例えば６０ｓｅｃ）に設定される。
【００２７】
ステップ３の判別結果がＹＥＳのとき、すなわちＴ２０ＡＣＲ＞＃ＴＭＭＣＮＤのときは、ステップ４に進み、エンジン回転数ＮＥ、エンジン水温ＴＷおよび吸気温ＴＡがそれぞれ下記条件を満たしているか否かを判別する。
【００２８】
＃ＮＥＳＯ２ＣＫＬ＜ＮＥ＜＃ＮＥＳＯ２ＣＫＨ
＃ＴＷＳＯ２ＣＫＬ＜ＴＷ＜＃ＴＷＳＯ２ＣＫＨ
＃ＴＡＳＯ２ＣＫＬ＜ＴＡ＜＃ＴＡＳＯ２ＣＫＨ
これらの上限値および下限値は、エンジン３がＯ２センサ２５の故障判定を行ってもよいと想定されるような安定した運転状態にあるか否かを判別するためのものである。エンジン回転数ＮＥの下限値＃ＮＥＳＯ２ＣＫＬおよび上限値＃ＮＥＳＯ２ＣＫＨは、例えば５００ｒｐｍおよび４０００ｒｐｍにそれぞれ設定される。エンジン水温ＴＷの下限値ＴＷＳＯ２ＣＫＬおよび上限値＃ＴＷＳＯ２ＣＫＨは、例えば５０℃および１００℃にそれぞれ設定される。また、吸気温ＴＡの下限値＃ＴＡＳＯ２ＣＫＬおよび上限値＃ＴＡＳＯ２ＣＫＨは、例えば０℃および５０℃にそれぞれ設定される。
【００２９】
ステップ４の判別結果がＹＥＳのとき、すなわちエンジン回転数ＮＥ、エンジン水温ＴＷおよび吸気温ＴＡがいずれも上記条件を満たしているときには、ステップ５に進み、フラグＦ＿ＭＣＮＤを「１」にセットする。
【００３０】
次に、図３のステップ６に進み、フラグＦ＿ＤＥＣＦＣが「１」であるか否かを判別する。このフラグＦ＿ＤＥＣＦＣは、Ｆ／Ｃ運転時に「１」にセットされ、それ以外の運転時に「０」にセットされるものである。ステップ６の判別結果がＹＥＳのとき、すなわちＦ＿ＤＥＣＦＣ＝１のときは、ステップ７に進み、ダウンカウント式のタイマｔｍＭＦＣＣＫＤに所定時間＃ＴＭＦＣＣＫＤをセットする。このタイマｔｍＭＦＣＣＫＤは、プログラムにより構成されるプログラムタイマであり、Ｆ／Ｃ運転の終了後に所定時間＃ＴＭＦＣＣＫＤが経過したか否かを判別するためのものである。この所定時間＃ＴＭＦＣＣＫＤは、Ｆ／Ｃ運転の終了後に、通常の運転状態で触媒装置８に対してリッチな排気ガスが十分に供給されることにより、前述した触媒装置８の酸素過多状態が解消されると想定されるような値（例えば３０ｓｅｃ）に設定される。
【００３１】
次に、ステップ８に進み、積算量ＳＵＭＳＶＳを値０に設定し、さらに、ステップ９に進み、モニタＭＦＣＣＨＫを「１」にセットして、本処理を終了する。この積算量ＳＵＭＳＶＳは、Ｆ／Ｃ運転の終了後に排出された排気ガス量の積算値であり、後述するステップ１３で算出される。また、モニタＭＦＣＣＨＫは、故障判定を行う際に用いられるものであり、上記のように、Ｆ／Ｃ運転中にＯ２センサ２５の故障判定を行うための実行条件が満たされているときには「１」にセットされる。
【００３２】
一方、ステップ６の判別結果がＮＯのとき、すなわちＦ＿ＤＥＣＦＣ＝０であってＦ／Ｃ運転中でないときには、ステップ１０に進み、モニタＭＦＣＣＨＫの前回値ＭＦＣＣＨＫ１が「２」であるか否かを判別し、この判別結果がＮＯのときには、ステップ１１でモニタＭＦＣＣＨＫの前回値ＭＦＣＣＨＫ１が「１」であるか否かを判別する。今回の処理がＦ／Ｃ運転を終了した直後の処理であるときには、ステップ１０の判別結果が「ＮＯ」、ステップ１１の判別結果が「ＹＥＳ」となるので、ステップ１２に進み、タイマｔｍＭＦＣＣＫＤがタイムアップしているか否かを判別する。
【００３３】
今回の処理がＦ／Ｃ運転を終了した直後の処理であるときには、ステップ１２の判別結果がＮＯとなるので、ステップ１３に進み、積算量ＳＵＭＳＶＳを算出する。この積算量ＳＵＭＳＶＳは、エンジン回転数ＮＥ、吸気管内絶対圧ＰＢＡおよび触媒容量から決まる空間速度を用いて算出される。次に、ステップ１４に進み、算出した積算量ＳＵＭＳＶＳが所定値＃ＳＵＭＳＶＡＦＣ以上であるか否かを判別する。この所定値＃ＳＵＭＳＶＡＦＣは、Ｆ／Ｃ運転の終了後に触媒装置８における酸素の蓄積過多状態を解消させるのに十分な値として設定される。
【００３４】
ステップ１４の判別結果がＹＥＳのとき、すなわちＳＵＭＳＶＳ≧＃ＳＵＭＳＶＡＦＣのときには、Ｆ／Ｃ運転の終了後に触媒装置８に対して排気ガスが十分に供給されることにより、その酸素の蓄積過多状態が解消されているとして、それを表すために、ステップ１５に進み、積算量フラグＦ＿ＳＶＣＨを「１」にセットする。一方、ステップ１４の判別結果がＮＯのとき、すなわちＳＵＭＳＶＳ＜＃ＳＵＭＳＶＡＦＣのときには、Ｆ／Ｃ運転の終了後における触媒装置８への排気ガスの供給量が不十分であるとして、それを表すために、ステップ１６に進み、積算量フラグＦ＿ＳＶＣＨを「０」にセットする。
【００３５】
両ステップ１５，１６に続いて、ステップ１７に進み、モニタＭＦＣＣＨＫを「２」にセットして、本処理を終了する。以上のように、Ｆ／Ｃ運転の終了後においてＯ２センサ２５の故障判定を行うための実行条件が満たされ、かつタイマｔｍＭＦＣＣＫＤがタイムアップしていないときに、モニタＭＦＣＣＨＫは「２」にセットされる。
【００３６】
また、今回の処理がＦ／Ｃ運転を終了した後の２回目以降の処理であるときには、ステップ１０の判別結果が「ＹＥＳ」となるので、ステップ１１をスキップしてステップ１２に進み、上記と同様にステップ１２〜１７の処理を実行して、本処理を終了する。そして、Ｆ／Ｃ運転を終了した直後から所定時間＃ＴＭＦＣＣＫＤが経過したときに、ステップ１２の判別結果がＹＥＳとなるので、ステップ２０に進み、モニタＭＦＣＣＨＫを「０」にセットして、本処理を終了する。このように、所定時間＃ＴＭＦＣＣＫＤが経過するまで、積算量ＳＵＭＳＶＳの積算が実行される。
【００３７】
一方、ステップ２、ステップ３またはステップ４の判別結果がＮＯのときには、フラグＦ＿ＭＣＮＤを「０」にセットし、積算量ＳＵＭＳＶＳを値０にセットし、さらに、モニタＭＦＣＣＨＫを「０」にセットして（ステップ１８〜２０）、本処理を終了する。以上のように、Ｏ２センサ２５の故障判定を行うための実行条件が満たされていないとき、またはＦ／Ｃ運転を終了した直後から所定時間＃ＴＭＦＣＣＫＤが経過したときに、モニタＭＦＣＣＨＫが「０」にセットされる。
【００３８】
次に、Ｏ２センサ２５の故障判定処理のメインルーチンについて、図４〜図６のフローチャートを参照しながら説明する。この故障判定処理は、ＴＤＣ信号が入力されたときに、上述した故障判定の実行条件判別処理に続いて割込み実行される。また、図５および図６における１点鎖線で囲んだ部分は、Ｆ／Ｃ運転中の故障判定処理およびＦ／Ｃ運転が終了した後の故障判定処理をそれぞれ示している。
【００３９】
本処理では、まず、ステップ３０において、フラグＦ＿ＤＯＮＥが「１」であるか否かを判別する。このフラグＦ＿ＤＯＮＥは、エンジン３の始動時に「０」にセットされ、後述するように、本処理によるＯ２センサ２５の故障判定を実行したときに「１」にセットされる（ステップ４５参照）。
【００４０】
ステップ３０の判別結果がＹＥＳのとき、すなわちフラグＦ＿ＤＯＮＥ＝１であって、Ｏ２センサ２５の故障判定を実行済みのときには、図６のステップ５５に進み、フラグＦ＿ＡＦＣＣＨＫおよびフラグＦ＿ＦＣＴＭを「０」にセットする。このフラグＦ＿ＡＦＣＣＨＫは、後述するように、空燃比がリーン側にある運転状態からＦ／Ｃ運転に移行したときに「１」にセットされるものであり、このようなときにＦ／Ｃ運転終了後の故障判定を実行するようにするためのものである。また、フラグＦ＿ＦＣＴＭは、所定時間＃ＴＦＣＣＨＫが経過するまで「１」にセットされるものであり、この所定時間＃ＴＦＣＣＨＫが経過することなくＦ／Ｃ運転が終了したときにＦ／Ｃ運転終了後の故障判定を行わないようにするためのものである。
【００４１】
次に、ステップ５６に進み、ダウンカウント式のタイマｔｍＦＣＣＨＫに所定時間＃ＴＦＣＣＨＫをセットして、本処理を終了する。この所定時間＃ＴＦＣＣＨＫは、Ｆ／Ｃ運転に移行してから排気ガス中の酸素濃度が安定するまでＯ２センサ２５の故障判定の実施を遅延させるための遅延時間（例えば１ｓｅｃ）として設定される。
【００４２】
ステップ３０の判別結果がＮＯのとき、すなわちＦ＿ＤＯＮＥ＝０であって、故障判定を実行していないときには、ステップ３１に進み、ＲＡＭ内に記憶されているフラグＦ＿ＳＺＯＮＥの値を、その前回値Ｆ＿ＳＺＯＮＥ１としてセットする。
【００４３】
次に、ステップ３２に進み、Ｏ２センサ２５の検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫ以下であるか否かを判別する。この所定しきい値＃ＳＶ０２ＣＨＫは、混合気の空燃比がリーン側とリッチ側の間で変化したことに伴って、検出信号値ＳＶ０２がローレベルとハイレベルの間で変化する際に確実に横切る値（例えば０．２Ｖ）に設定される。
【００４４】
ステップ３２の判別結果がＹＥＳのとき、すなわちＳＶ０２≦＃ＳＶ０２ＣＨＫであって、空燃比がリーンであるときには、ステップ３３に進み、そのことを表すために、フラグＦ＿ＳＺＯＮＥを「０」にセットする。一方、ステップ３２の判別結果がＮＯのとき、すなわちＳＶ０２＞＃ＳＶ０２ＣＨＫであって、空燃比がリッチであるときには、ステップ３４に進み、そのことを表すために、フラグＦ＿ＳＺＯＮＥを「１」にセットする。
【００４５】
ステップ３３またはステップ３４に続いて、ステップ３５に進み、図２の前記ステップ５または前記ステップ１８で設定されたフラグＦ＿ＭＣＮＤが「１」であるか否かを判別する。ステップ３５の判別結果がＮＯのとき、すなわちフラグＦ＿ＭＣＮＤ＝０であって、Ｏ２センサ２５の故障判定の実行条件が成立していないときは、前述したステップ５５，５６を実行して、本処理を終了する。
【００４６】
一方、ステップ３５の判別結果がＹＥＳのとき、すなわちフラグＦ＿ＭＣＮＤ＝１であって、Ｏ２センサ２５の故障判定の実行条件が成立しているときは、ステップ３６に進み、モニタＭＦＣＣＨＫが「１」であるか否かを判別する。ステップ３６の判別結果がＹＥＳのとき、すなわちＭＦＣＣＨＫ＝１であってＦ／Ｃ運転中で、かつＦ／Ｃ運転中の故障判定条件が成立しているときは、図５のステップ３７に進み、モニタＭＦＣＣＨＫの前回値ＭＦＣＣＨＫ１が「１」であるか否かを判別する。
【００４７】
ステップ３７の判別結果がＮＯのとき、すなわちＭＦＣＣＨＫ１≠１であって、Ｆ／Ｃ運転に移行しかつＦ／Ｃ運転中の故障判定条件が成立した最初の処理であるときには、ステップ３８に進み、フラグＦ＿ＳＺＯＮＥの前回値Ｆ＿ＳＺＯＮＥ１が「１」であるか否かを判別する。
【００４８】
ステップ３８の判別結果がＮＯのとき、すなわちＦ＿ＳＺＯＮＥ１＝０であって、前回の処理において空燃比がリーンであったときには、ステップ４６に進み、フラグＦ＿ＡＦＣＣＨＫを「１」にセットし、フラグＦ＿ＦＣＴＭを「０」にセットして、本処理を終了する。以上のように、空燃比がリーン側にある運転状態からＦ／Ｃ運転に移行したときには、Ｏ２センサ２５の検出信号値ＳＶ０２がローレベルから変化しないと想定されるので、故障判定が実行されない。
【００４９】
一方、ステップ３８の判別結果がＹＥＳのとき、すなわちＦ＿ＳＺＯＮＥ１＝１であって、前回の処理において空燃比がリッチであり、かつ今回の処理でＦ／Ｃ運転に移行したときは、ステップ３９に進む。
【００５０】
また、ステップ３７の判別結果がＹＥＳのとき、すなわちＭＦＣＣＨＫ１＝１であって、前回以前の処理においてＦ／Ｃ運転に移行していたときには、ステップ３８をスキップしてステップ３９に進む。
【００５１】
このステップ３９では、フラグＦ＿ＡＦＣＣＨＫが「１」であるか否かを判別する。ステップ３９の判別結果がＹＥＳのとき、すなわちフラグＦ＿ＡＦＣＣＨＫ＝１であって、前回以前の処理において空燃比がリーン側にある場合にＦ／Ｃ運転に移行したときには、故障判定を実行することなく、本処理を終了する。一方、ステップ３９の判別結果がＮＯのとき、すなわちフラグＦ＿ＡＦＣＣＨＫ＝０であるときには、ステップ４０に進み、タイマｔｍＦＣＣＨＫがタイムアップしているか否かを判別する。
【００５２】
ステップ４０の判別結果がＮＯのとき、すなわちｔｍＦＣＣＨＫ≠０であって、前記所定時間＃ＴＦＣＣＨＫが経過していないときには、ステップ４７に進み、フラグＦ＿ＦＣＴＭを「１」にセットして、本処理を終了する。一方、ステップ４０の判別結果がＹＥＳのとき、すなわちｔｍＦＣＣＨＫ＝０であって、所定時間＃ＴＦＣＣＨＫが経過したときには、ステップ４１に進み、フラグＦ＿ＳＺＯＮＥが「０」であるか否かを判別する。
【００５３】
ステップ４１の判別結果がＹＥＳのとき、すなわちＦ＿ＳＺＯＮＥ＝０であって、Ｏ２センサ２５の検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切ってハイレベル側（リッチ側）からローレベル側（リーン側）に移行したときには、Ｏ２センサが正常であるとして、ステップ４２に進み、故障判定フラグＦ＿ＯＫを「１」にセットする。一方、ステップ４１の判別結果がＮＯのとき、すなわちＦ＿ＳＺＯＮＥ＝１であって、検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切ることなくハイレベル側にあるときには、Ｏ２センサが故障しているとして、ステップ４３に進み、フェイルセーフフラグＦ＿ＦＳＤを「１」にセットし、かつ故障判定フラグＦ＿ＯＫを「０」にセットする。以上のように、故障判定フラグＦ＿ＯＫは、Ｏ２センサ２５が正常であるときに「１」にセットされ、故障しているときに「０」にセットされる。
【００５４】
ステップ４２またはステップ４３に続いて、ステップ４４に進み、フラグＦ＿ＡＦＣＣＨＫおよびフラグＦ＿ＦＣＴＭを「０」にセットする。次に、ステップ４５に進み、フラグＦ＿ＤＯＮＥを「１」にセットして、本処理を終了する。以上のように、故障判定を実行したときにフラグＦ＿ＤＯＮＥは「１」にセットされる。
【００５５】
一方、前記ステップ３６の判別結果がＮＯのとき、すなわちＭＦＣＣＨＫ≠１であるときは、図６のステップ４８に進み、モニタＭＦＣＣＨＫが「２」であるか否かを判別する。
【００５６】
この判別結果がＹＥＳのとき、すなわちＦ／Ｃ運転の終了後における故障判定の実行条件が成立しているときは、ステップ４９，５０で、フラグＦ＿ＦＣＴＭが「０」であるか否か、およびフラグＦ＿ＡＦＣＣＨＫが「１」であるか否かをそれぞれ判別する。
【００５７】
両ステップ４９，５０の判別結果がいずれもＹＥＳのとき、すなわちＦ＿ＦＣＴＭ＝０およびＦ＿ＡＦＣＣＨＫ＝１であって、リーンな空燃比の運転状態からＦ／Ｃ運転に移行したためにＦ／Ｃ運転中にＯ２センサ２５の故障判定を行わなかったときには、ステップ５１に進み、フラグＦ＿ＳＺＯＮＥが「１」であるか否かを判別する。
【００５８】
ステップ５１の判別結果がＹＥＳのとき、すなわちＯ２センサ２５の検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫよりも大きい値を示しているときには、Ｆ／Ｃ運転の終了後に検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切ったとし、Ｏ２センサ２５が正常であるとして、それを表すように、ステップ５２に進み、故障判定フラグＦ＿ＯＫを「１」にセットする。次に、前述したステップ４４〜４５を実行して、本処理を終了する。
【００５９】
一方、ステップ５１の判別結果がＮＯのとき、すなわち検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫ以下の値を示している（所定しきい値＃ＳＶ０２ＣＨＫを横切っていない）ときには、ステップ５３に進み、積算量フラグＦ＿ＳＶＣＨが「１」であるか否かを判別する。
【００６０】
このステップ５３の判別結果がＮＯのときには、Ｆ／Ｃ運転の終了後における触媒装置８への排気ガスの供給量が不十分であるとして、前述したステップ５６を実行して、本処理を終了する。
【００６１】
これに対して、ステップ５３の判別結果がＹＥＳのときには、Ｆ／Ｃ運転の終了後における触媒装置８への排気ガスの供給量が十分であるにもかかわらず、Ｏ２センサ２５の検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切ってこの値よりも大きくなったことを確認できず、Ｏ２センサ２５が故障しているとして、それを表すために、ステップ５４に進み、前述したステップ４３と同様にフェイルセーフフラグＦ＿ＦＳＤを「１」にセットし、かつ故障判定フラグＦ＿ＯＫを「０」にセットする。次に、前述したステップ４４〜４５を実行して、本処理を終了する。
【００６２】
以上のように、Ｆ／Ｃ運転の終了後に故障判定条件が成立しているときには、検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫよりも大きくなったか否か（空燃比がリッチ側になったか否か）が常時、監視され、ＳＶ０２＞＃ＳＶ０２ＣＨＫとなったときに、ただちにＯ２センサ２５が正常であると判定することができる。これと同様に、積算量ＳＵＭＳＶＳが所定値＃ＳＵＭＳＶＡＦＣ以上であるか否かも常時、監視され、ＳＶ０２≦＃ＳＶ０２ＣＨＫであっても、ＳＵＭＳＶＳ≧＃ＳＵＭＳＶＡＦＣとなったときに、ただちにＯ２センサ２５が故障していると判定することができる。
【００６３】
一方、ステップ４９，５０のうちのいずれか１つの判別結果がＮＯのとき、すなわちＦ／Ｃ運転期間が短かったとき、またはＦ／Ｃ運転から移行した運転状態でないときには、ステップ５１の判別を行うことなく、前述したステップ５５を実行して、本処理を終了する。
【００６４】
一方、ステップ４８の判別結果がＮＯのとき、すなわちＭＦＣＣＨＫ≠２（＝０）であって、Ｆ／Ｃ運転の終了後に所定時間＃ＴＭＦＣＣＫＤが経過した時点以降であるときには、前述したステップ５８を実行して、本処理を終了する。このように、積算量ＳＵＭＳＶＳが所定値＃ＳＵＭＳＶＡＦＣに達しておらず、かつ検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切っていないときには、Ｆ／Ｃ運転の終了後に所定時間＃ＴＭＦＣＣＫＤが経過した時点で、故障判定が保留される。これにより、排気ガスの供給量が少ないことによって積算量ＳＵＭＳＶＳの誤差が大きくなるのを回避できる。
【００６５】
図７のタイミングチャートは、前述したＯ２センサ２５の故障判定の実行条件判別処理および故障判定処理を実行したときの車速ＶＰ、ＬＡＦセンサ２４の検出信号値ＫＡＣＴ、Ｏ２センサ２５の検出信号値ＳＶＯ２および目標空燃比ＫＣＭＤの経時変化の一例を、フラグＦ＿ＤＥＣＦＣ，Ｆ＿ＭＣＮＤおよびモニタＭＦＣＣＨＫの変化とともに示している。
【００６６】
同図に示すように、故障判定の実行条件が成立している（フラグＦ＿ＭＣＮＤ＝１）ときに、減速中にＦ／Ｃ運転が開始されると（時刻ｔ１）、フラグＦ＿ＤＥＣＦＣが「０」から「１」に変化する。これに同期して目標空燃比ＫＣＭＤがリーンな値に設定されるとともに、モニタＭＦＣＣＨＫが「０」から「１」に変化する。これに伴い、Ｏ２センサが正常であるときは、時刻ｔ１から少し遅れて、Ｏ２センサ２５の検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切ってハイレベルからローレベルに変化する。Ｆ／Ｃ運転の開始から所定時間＃ＴＦＣＣＨＫが経過した（タイマｔｍＦＣＣＨＫがタイムアップした）時点で、検出信号値ＳＶ０２のレベルの変化に基づき、Ｏ２センサ２５の故障判定（前記ステップ４１〜４３）が実行される。
【００６７】
その後、Ｆ／Ｃ運転が終了した時点（時刻ｔ２）で、フラグＦ＿ＤＥＣＦＣが「１」から「０」に変化する。これに同期して目標空燃比ＫＣＭＤが理論空燃比よりもリッチな値（１．２）に設定されるとともに、モニタＭＦＣＣＨＫが「１」から「２」に変化する。この時刻ｔ２から時刻ｔ３までの間は、目標空燃比ＫＣＭＤがリッチな値に保持される。また、例えばＦ／Ｃ運転前の空燃比がリーンであった（ステップ３８の判別結果がＮＯ）ことによりＦ／Ｃ運転中にＯ２センサ２５の故障判定を実行しなかった場合には、時刻ｔ２から所定時間＃ＴＭＦＣＣＫＤが経過する時刻ｔ４までの間に、Ｏ２センサ２５の故障判定（前記ステップ４９〜５１）が実行される。
【００６８】
図６（ｃ）に実線で示すように、Ｏ２センサが正常であるときには、この判定期間内において、Ｏ２センサ２５の検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切ってローレベルからハイレベルに変化することで、Ｏ２センサが正常であると判定される。一方、Ｏ２センサが故障しているときには、所定時間＃ＴＭＦＣＣＫＤが経過するまでの間に、検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切っておらず、排気ガスの積算量ＳＵＭＳＶＳが所定値＃ＳＵＭＳＶＡＦＣに達したときに、Ｏ２センサ２５が故障していると判定される。また、同図に破線で示すように、Ｏ２センサ２５の検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切ることなく、ローレベルのままであって、かつ積算量ＳＵＭＳＶＳが所定値＃ＳＵＭＳＶＡＦＣ未満である場合に、所定時間＃ＴＭＦＣＣＫＤが経過すると（時刻ｔ４）、Ｏ２センサ２５への排気ガスの供給量が不足しているとして、Ｏ２センサ２５の故障判定が保留される。また、時刻ｔ４において、モニタＭＦＣＣＨＫが「２」から「０」に変化する。この後の時刻ｔ５は、エンジン回転数ＮＥの低下などによりフラグＦ＿ＭＣＮＤが「１」から「０」に変化した時点を示す。
【００６９】
以上詳述したように、本実施形態に係る故障判定装置１によれば、Ｆ／Ｃ運転の終了後に所定時間＃ＴＭＦＣＣＫＤが経過するまでの間において、排気ガスの積算量ＳＵＭＳＶＳが所定値＃ＳＵＭＳＶＡＦＣに達する前に、検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切ったときに、その時点でＯ２センサ２５が正常であると判定する。また、Ｆ／Ｃ運転の終了後に所定時間＃ＴＭＦＣＣＫＤが経過するまでの間に、検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫを横切ることなく、排気ガスの積算量ＳＵＭＳＶＳが所定値＃ＳＵＭＳＶＡＦＣに達したときに、その時点でＯ２センサ２５が故障したと判定する。このように積算量ＳＵＭＳＶＳが所定値＃ＳＵＭＳＶＡＦＣに達した場合に、検出信号値ＳＶ０２に基づいて判定するので、排気ガスの排出量の少ないときでも、排気ガスが触媒装置８に十分に供給された時点、すなわち触媒装置８における酸素の蓄積過多状態が解消された時点で、Ｏ２センサ２５の故障を判定することができる。これにより、酸素濃度センサの故障の判定を精度よく行うことができる。
【００７０】
これに対して、積算量ＳＵＭＳＶＳが所定値＃ＳＵＭＳＶＡＦＣに達することなく、検出信号値ＳＶ０２が所定しきい値＃ＳＶ０２ＣＨＫ以下のローレベルのままで所定時間＃ＴＭＦＣＣＫＤが経過したときは、Ｏ２センサ２５の故障の判定が保留される。これにより、排気ガスの供給量が少ないことによって排気ガスの積算量ＳＵＭＳＶＳの誤差が大きくなることを回避でき、その結果、Ｏ２センサ２５の故障の誤判定を防止することができる。また、上記のように経過時間＃ＴＭＦＣＣＫＤにより故障判定を保留するので、故障判定の打ち切りタイミングを適切に決定することができる。
【００７１】
さらに、Ｆ／Ｃ運転の終了直後に、理論空燃比よりもリッチな混合気がエンジン３に供給されることにより、高ＨＣ濃度および高ＣＯ濃度の排気ガスが触媒装置８に供給される。これにより、Ｆ／Ｃ運転中に触媒装置８に蓄えられた酸素を積極的に消費させることによって、触媒装置８における酸素の蓄積過多状態をより早く解消することができる。その結果、酸素濃度の低いリッチな空燃比の排気ガスをＯ２センサ２５に早期に供給できることにより、上記故障判定を迅速に行うことができる。
【００７２】
なお、前述した実施形態においては、酸素濃度センサとして、混合気の空燃比によりハイレベルとローレベルの間で出力電圧値が変化するものを用いたが、これに代えて、排気ガス中の酸素濃度をリニアに検出し、その酸素濃度に比例する検出信号を出力する、いわゆるＬＡＦセンサを用いてもよい。この場合、所定しきい値は、空燃比がリッチとリーンの間で変化する際に確実に横切る値、例えば理論空燃比付近の値に設定すればよい。また、酸素濃度センサとして、上記Ｏ２センサ２５とは逆のレベルの電圧値を出力するものを用いてもよい。
【００７３】
【発明の効果】
以上のように、本発明の酸素濃度センサの故障判定装置によれば、酸素濃度センサの故障を精度よくかつ迅速に判定することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る酸素濃度センサの故障判定装置およびこれを適用した内燃機関の概略構成を示す図である。
【図２】酸素濃度センサの故障判定の実行条件判別処理の一部を示すフローチャートである。
【図３】図２の続きの処理を示すフローチャートである。
【図４】酸素濃度センサの故障判定処理の一部を示すフローチャートである。
【図５】図４の続きの処理を示し、特にフューエルカット運転中の故障判定処理を含む処理を示すフローチャートである。
【図６】図４の続きの処理を示し、特にフューエルカット運転が終了した後の故障判定処理を含む処理を示すフローチャートである。
【図７】図２〜図６の処理を実行したときの車速ＶＰ、ＬＡＦセンサの検出信号値ＫＡＣＴ、酸素濃度センサの検出信号値ＳＶＯ２および目標空燃比ＫＣＭＤの経時変化の一例を示すタイミングチャートである。
【符号の説明】
１    故障判定装置
２    ＥＣＵ（酸素濃度変化判別手段、排気ガス量算出手段、
故障判定手段、故障判定保留手段、混合気リッチ化手段）
３    内燃機関
８    触媒装置（触媒）
２５    酸素濃度センサ
SUMSVS    積算量
#SUMSVAFC   所定値
SVO2    検出信号値
#SVO2CHK    所定しきい値
#TMFCCKD    所定時間
【図１】
0003676641.tif 000002
【図２】
0003676641.tif 000003
【図３】
0003676641.tif 000004
【図４】
0003676641.tif 000005
【図５】
0003676641.tif 000006
【図６】
0003676641.tif 000007
【図７】
0003676641.tif 000008