(57)【特許請求の範囲】
【請求項１】
内燃機関の排気通路に設けた触媒に吸蔵した窒素酸化物を還元浄化するために、内燃機関のリーン運転中に空燃比を一時的にリッチ側に制御するリッチスパイク制御を行うリッチスパイク制御手段と、
機関制御システムの異常の有無を診断する異常診断手段と、
前記リッチスパイク制御実施中及び／又は前記リッチスパイク制御終了後の所定期間に前記異常診断手段による所定の異常診断を禁止又は遅延する異常診断禁止手段と
を備え、
前記異常診断手段は、内燃機関の回転変動に基づいて失火の有無を診断することを特徴とする内燃機関の制御装置。
【請求項２】
内燃機関の排気通路に設けた触媒に吸蔵した窒素酸化物を還元浄化するために、内燃機関のリーン運転中に空燃比を一時的にリッチ側に制御するリッチスパイク制御を行うリッチスパイク制御手段と、
機関制御システムの異常の有無を診断する異常診断手段と、
前記リッチスパイク制御実施中及び／又は前記リッチスパイク制御終了後の所定期間に前記異常診断手段による所定の異常診断を禁止又は遅延する異常診断禁止手段と、
前記触媒の下流側で排出ガスの空燃比又はリッチ／リーンを検出する下流側センサと
を備え、
前記異常診断手段は、前記下流側センサの出力に基づいて前記触媒の劣化の有無を診断することを特徴とする内燃機関の制御装置。
【請求項３】
前記異常診断手段は、内燃機関の排出ガスの空燃比又はリッチ／リーンを検出するセンサの異常の有無を診断することを特徴とする請求項１又は２に記載の内燃機関の制御装置。
【請求項４】
前記異常診断手段は、燃料系の異常の有無を診断することを特徴とする請求項１乃至３のいずれかに記載の内燃機関の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、触媒に吸蔵した窒素酸化物（以下「ＮＯｘ」と表記する）を還元浄化するために、空燃比を一時的にリッチ側に制御するリッチスパイク制御を行う内燃機関の制御装置に関するものである。
【０００２】
【従来の技術】
近年、燃費向上等を目的として、空燃比を理論空燃比よりもリーン側に制御するリーンバーンエンジンや筒内噴射エンジンが開発されている。これらのエンジンでは、ＮＯｘ排出量を低減するために、ＮＯｘ吸蔵還元型触媒（以下「ＮＯｘ触媒」と表記する）を採用したものがある。このＮＯｘ触媒は、排出ガスの空燃比がリーンのときに排出ガス中のＮＯｘを吸蔵し、空燃比がリッチになったときに吸蔵ＮＯｘを還元浄化して放出する特性をもっている。
【０００３】
そこで、リーン運転中にＮＯｘ触媒のＮＯｘ吸蔵量が飽和するのを防止するため、特開２０００−３４９４３号公報に示すように、リーン運転時間とリッチ運転時間を所定比率（例えば５０：１）に設定して、リーン運転中に所定周期で空燃比を一時的にリッチにするリッチスパイク制御を実施することで、リーン運転中にＮＯｘ触媒に吸蔵したＮＯｘを還元浄化する処理を繰り返すようにしたものがある。
【０００４】
また、近年の電子制御化されたエンジン制御システムでは、エンジン運転中に各種の異常診断を実施してシステムの故障、劣化等の異常の有無を自己診断して、エンジン制御システムの信頼性を向上させるようにしている。
【０００５】
【発明が解決しようとする課題】
前述したように、リッチスパイク制御を周期的に実施するエンジン制御システムでは、エンジン運転中に異常診断を繰り返すうちに、異常診断の実施時期がリッチスパイク制御の実施時期と重なることがある。リッチスパイク制御を実施すると、空燃比が急変し、且つ、その影響でエンジン回転変動も発生するため、このような時期に異常診断を実施すると、異常診断の種類によっては、リッチスパイク制御によって生じた空燃比変化やエンジン回転変動の影響を受けた異常診断パラメータに基づいて異常の有無を診断してしまい、その結果、異常診断精度が低下してエンジン制御システムの信頼性が低下するおそれがある。
【０００６】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、リッチスパイク制御の影響を受けた異常診断パラメータに基づいて異常診断することを未然に防止することができて、異常診断精度を向上することができる内燃機関の制御装置を提供することにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１の内燃機関の制御装置は、リッチスパイク制御実施中及び／又はリッチスパイク制御終了後の所定期間は、異常診断禁止手段によって所定の異常診断を禁止又は遅延することを第１の特徴とし、更に、内燃機関の回転変動に基づいて失火の有無を診断することを第２の特徴とするものである。このように、リッチスパイク制御実施中及び／又はリッチスパイク制御終了後の所定期間は、所定の異常診断を禁止又は遅延するようにすれば、リッチスパイク制御の影響を受ける異常診断パラメータ（つまり空燃比変化や回転変動の影響を受けるパラメータ）を用いて異常診断する場合に、リッチスパイク制御実施中やリッチスパイク制御終了直後は、他の異常診断実施条件が成立していても、異常診断を実施しないようにすることができる。これにより、リッチスパイク制御によって一時的に変化した異常診断パラメータに基づいて異常診断してしまうことを未然に防止することができて、異常診断パラメータがリッチスパイク制御の影響を受けないときに精度良く異常診断することができ、異常診断精度を向上することができる。
【０００８】
本発明におけるリッチスパイク制御実施中及び／又はリッチスパイク制御終了後の所定期間は、所定の異常診断を禁止又は遅延するという技術事項は、リッチスパイク制御によって生じた空燃比変化やエンジン回転変動の影響を受ける異常診断パラメータに基づいて異常診断するシステムに広く適用でき、例えば、請求項１のように、内燃機関の回転変動に基づいて失火の有無を診断するシステムに適用しても良い。つまり、リッチスパイク制御実施中やその直後の所定期間に、回転変動に基づいた失火診断を禁止又は遅延すれば、リッチスパイク制御によって生じた回転変動による失火診断精度の低下を未然に防止することができる。
【０００９】
また、請求項２のように、触媒の下流側に排出ガスの空燃比又はリッチ／リーンを検出する下流側センサを設け、その下流側センサの出力に基づいて触媒の劣化の有無を診断するシステムに本発明を適用しても良い。或は、請求項３のように、排出ガスの空燃比又はリッチ／リーンを検出するセンサの異常の有無を診断するシステムに本発明を適用しても良い。排出ガスの空燃比やリッチ／リーンを検出するセンサの出力は、リッチスパイク制御によって生じた空燃比変化の影響を受けて変動する。従って、リッチスパイク制御実施中やその直後の所定期間に、下流側センサ出力に基づいた触媒劣化診断、或は、センサ自体の異常診断を禁止又は遅延すれば、リッチスパイク制御による触媒劣化診断精度の低下やセンサ異常診断精度の低下を未然に防止することができる。
【００１０】
また、請求項４のように、燃料系の異常の有無を診断するシステムに本発明を適用しても良い。燃料系は燃料噴射制御（空燃比制御）の制御対象となるシステムであり、燃料系の異常診断に用いるパラメータは、リッチスパイク制御によって生じた空燃比変化の影響を受けて変動する。従って、リッチスパイク制御実施中やその直後の所定期間に、燃料系異常診断を禁止又は遅延すれば、リッチスパイク制御による燃料系異常診断精度の低下を未然に防止することができる。
【００１１】
【発明の実施の形態】
以下、本発明をリーンバーンエンジンに適用した一実施形態を図面に基づいて説明する。
【００１２】
まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。内燃機関であるエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側には、吸気温度を検出する吸気温センサ１４が設けられている。この吸気温センサ１４の下流側には、スロットルバルブ１５とスロットル開度を検出するスロットル開度センサ１６とが設けられている。
【００１３】
更に、スロットルバルブ１５の下流側には、吸気管圧力を検出する吸気管圧力センサ１７が設けられ、この吸気管圧力センサ１７の下流側に、サージタンク１８が設けられている。このサージタンク１８には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。エンジン１１のシリンダヘッドには、気筒毎に点火プラグ２１が取り付けられ、各気筒の点火プラグ２１には、点火時期毎に点火装置２２で発生した高電圧が印加される。
【００１４】
一方、エンジン１１の排気管２３の途中には、排出ガスを浄化するＮＯｘ吸蔵還元型触媒（以下「ＮＯｘ触媒」と表記する）２４が設置されている。このＮＯｘ触媒２４は、排出ガス中の酸素濃度が高いリーン運転中に排出ガス中のＮＯｘを吸蔵し、空燃比がリッチ（又はストイキ）に切り換えられて排出ガス中の酸素濃度が低下したリッチ運転中に、それまでに吸蔵したＮＯｘを還元浄化して放出する。
【００１５】
このＮＯｘ触媒２４の上流側には、排出ガスの空燃比に応じたリニアな空燃比信号ＡＦを出力する空燃比センサ（リニアＡ／Ｆセンサ）２５が設けられ、ＮＯｘ触媒２４の下流側には排出ガスの空燃比が理論空燃比に対してリッチかリーンかによって出力電圧ＶＯＸ２が反転する酸素センサ２６（下流側センサ）が設けられている。尚、ＮＯｘ触媒２４の下流側に、酸素センサ２６に代えて、空燃比センサ（リニアＡ／Ｆセンサ）を設けても良い。エンジン１１のシリンダブロックには、冷却水温を検出する水温センサ２７や、エンジン回転速度を検出するクランク角センサ２８が取り付けられている。
【００１６】
エンジン制御回路（以下「ＥＣＵ」と表記する）２９は、ＣＰＵ３０、ＲＯＭ３１、ＲＡＭ３２、バッテリ（図示せず）でバックアップされたバックアップＲＡＭ３３、入力ポート３４、出力ポート３５等からなるマイクロコンピュータを主体として構成されている。入力ポート３４には、前述した各種センサの出力信号が入力される。また、出力ポート３５には、燃料噴射弁２０、点火装置２２等が接続されている。ＥＣＵ２９は、ＲＯＭ３１に記憶された各種のエンジン制御プログラムをＣＰＵ３０で実行することでエンジン１１の運転を制御する。
【００１７】
ＥＣＵ２９は、エンジン運転状態に基づいてリーン運転時間とリッチ運転時間を所定比率（例えば５０：１）で設定して、リーン運転中に一時的にリッチ運転を実施するリッチスパイク制御を実施する。これにより、ＮＯｘ触媒２４では、リーン運転中に排出ガス中のＮＯｘを吸蔵し、その吸蔵ＮＯｘをリッチスパイク制御により還元浄化して放出する処理が繰り返される。
【００１８】
また、ＥＣＵ２９は、エンジン運転中に各種の異常診断を実施してシステムの故障、劣化等の異常の有無を自己診断するようにようにしているが、リッチスパイク制御を実施すると、空燃比が急変し、且つ、その影響で回転変動も発生するため、このような時期に異常診断を実施すると、異常診断の種類によっては、リッチスパイク制御によって生じた空燃比変化や回転変動の影響を受けた異常診断パラメータに基づいて異常の有無を診断してしまい、その結果、異常診断精度が低下してエンジン制御システムの信頼性が低下するおそれがある。
【００１９】
そこで、ＥＣＵ２９は、リッチスパイク制御実施中及びリッチスパイク制御終了後の所定期間は、リッチスパイク制御の影響を受ける異常診断パラメータ（つまり空燃比変化や回転変動の影響を受ける異常診断パラメータ）を用いる異常診断、例えば、後述する失火診断、触媒劣化診断、センサ異常診断、燃料系異常診断等を禁止して、リッチスパイク制御の影響を受けた異常診断パラメータに基づいて異常診断することを未然に防止する。
以下、ＥＣＵ２９が実行する各ルーチンの具体的な処理内容を説明する。
【００２１】
［燃料噴射量設定］
図２の燃料噴射量設定ルーチンは、空燃比のＦ／Ｂ（フィードバック）制御を通じて燃料噴射量ＴＡＵを設定するルーチンであり、各気筒の燃料噴射タイミング毎に実行される。本ルーチンが起動されると、まず、ステップ１０１で、エンジン運転状態（エンジン回転速度Ｎｅ、吸気圧ＰＭ、冷却水温Ｔｗ等）を読み込み、次のステップ１０２で、ＲＯＭ３１に予め記憶されている基本噴射量マップを検索して、現在のエンジン回転速度Ｎｅと吸気圧ＰＭに応じた基本噴射量Ｔｐを算出する。この後、ステップ１０３に進み、空燃比Ｆ／Ｂ条件が成立しているか否かを判定する。ここで、空燃比Ｆ／Ｂ条件は、冷却水温Ｔｗが所定温度以上であること、運転状態が高回転・高負荷領域でないこと、空燃比センサ２５が活性状態であること等であり、これらの条件を全て満たしたときに空燃比Ｆ／Ｂ条件が成立する。
【００２２】
上記ステップ１０３で、空燃比Ｆ／Ｂ条件が不成立と判定された場合には、ステップ１０７に進み、空燃比補正係数ＦＡＦを「１．０」に設定して、ステップ１０６に進む。この場合は、空燃比の補正は行われない。
【００２３】
一方、上記ステップ１０３で、空燃比Ｆ／Ｂ条件成立と判定された場合には、ステップ１０４に進み、後述する図３の目標空燃比設定ルーチンを実行して目標空燃比ＡＦＴＧを設定し、次のステップ１０５で、空燃比センサ２５で検出した実空燃比ＡＦと目標空燃比ＡＦＴＧとの偏差に基づいて空燃比補正係数ＦＡＦを算出する。
【００２４】
この後、ステップ１０６に進み、基本噴射量Ｔｐ、空燃比補正係数ＦＡＦ、他の補正係数ＦＡＬＬ（冷却水温、エアコン負荷等の各種補正係数）及び補正係数学習ルーチン（図示せず）で学習した学習補正係数ＫＧを用いて、次式により燃料噴射量ＴＡＵを算出して、本ルーチンを終了する。
ＴＡＵ＝Ｔｐ×ＦＡＦ×ＦＡＬＬ×ＫＧ
【００２５】
［目標空燃比設定］
次に、図２のステップ１０４で実行される図３の目標空燃比設定ルーチンの処理内容を説明する。本ルーチンは、リーン運転中に所定周期でリッチスパイク制御が実施されるように（図６参照）、リーン運転時間とリッチ運転時間の時間比を設定すると共に、リーン運転時とリッチ運転時の目標空燃比ＡＦＴＧをそれぞれ設定するルーチンであり、特許請求の範囲でいうリッチスパイク制御手段に相当する役割を果たす。
【００２６】
本ルーチンが起動されると、まず、ステップ２０１で、前回のリッチスパイク制御終了後のリーン運転時間をカウントする周期カウンタの値が「０」であるか否か（つまりリッチスパイク制御終了時であるか否か）を判定し、周期カウンタ＝０であれば、ステップ２０２に進み、エンジン回転速度Ｎｅと吸気圧ＰＭに基づいてリーン運転時間ＴＬとリッチ運転時間ＴＲを設定する。ここで、リーン運転時間ＴＬとリッチ運転時間ＴＲは、それぞれリーン空燃比での燃料噴射回数、リッチ空燃比での燃料噴射回数に相当するものであって、基本的には、エンジン回転速度Ｎｅが高いほど又は吸気圧ＰＭが高いほど、リーン運転時間ＴＬとリッチ運転時間ＴＲが大きな値に設定される。本実施形態では、図４に示すリッチ運転時間ＴＲのマップを検索して、現在のエンジン回転速度Ｎｅと吸気圧ＰＭに応じたリッチ運転時間ＴＲを算出し、このリッチ運転時間ＴＲに所定係数αを乗算することでリーン運転時間ＴＬを算出する。
ＴＬ＝ＴＲ×α
【００２７】
ここで、係数αは、演算処理の簡略化のために固定値（例えば５０）としても良いが、エンジン運転状態（エンジン回転速度Ｎｅ、吸気圧ＰＭ等）に応じて可変しても良い。このようにしてリーン運転時間ＴＬとリッチ運転時間ＴＲを設定した後、ステップ２０３に進む。
【００２８】
前回までの処理で周期カウンタがインクリメントされている場合（リーン運転中）は、上記ステップ２０１で、周期カウンタ≠０と判定されて、ステップ２０２の処理を飛び越して、ステップ２０３に進む。
【００２９】
リーン運転中は、ステップ２０３で、周期カウンタを「１」だけインクリメントしてリーン運転時間をカウントし、次のステップ２０４で、周期カウンタの値が上記ステップ２０２で設定したリーン運転時間ＴＬに相当する値に達したか否かを判定する。もし、周期カウンタの値が設定リーン運転時間ＴＬに達していなければ、ステップ２０５に進み、図５に示す目標空燃比ＡＦＴＧのマップを検索して、現在のエンジン回転速度Ｎｅと吸気圧ＰＭに応じた目標空燃比ＡＦＴＧを算出し、本ルーチンを終了する。この場合、目標空燃比ＡＦＴＧは、リーン制御値（例えば空燃比＝２０〜２３に相当する値）に設定され、リーン運転が継続される。但し、過渡運転時等で、リーン運転の実施条件が不成立となる場合には、目標空燃比ＡＦＴＧは、ストイキ近傍の値に設定される。
【００３０】
その後、周期カウンタの値が設定リーン運転時間ＴＬに達したときに、ステップ２０４からステップ２０６に進み、目標空燃比ＡＦＴＧをリッチ制御値に設定する。この場合、目標空燃比ＡＦＴＧは、演算処理の簡略化のために固定値としても良いが、エンジン回転速度Ｎｅや吸気圧ＰＭをパラメータとするマップを検索して目標空燃比ＡＦＴＧを設定しても良い。マップ検索を行う場合は、エンジン回転速度Ｎｅが高いほど又は吸気圧ＰＭが高いほど、そのリッチ度合いが強くなるように目標空燃比ＡＦＴＧを設定することが好ましい。
【００３１】
目標空燃比ＡＦＴＧの設定後、ステップ２０７に進み、リッチスパイク制御フラグＸＲＳを、リッチスパイク制御実行を意味する「１」にセットした後、ステップ２０８に進み、周期カウンタの値がリーン運転時間ＴＬとリッチ運転時間ＴＲの合計時間「ＴＬ＋ＴＲ」に相当する値に達したか否かを判定し、周期カウンタ＜ＴＬ＋ＴＲの期間中（リッチスパイク制御中）は、そのまま本ルーチンを終了し、その後、周期カウンタ≧ＴＬ＋ＴＲと判定されたときに（つまりリッチスパイク制御を終了するときに）、ステップ２０８からステップ２０９に進み、周期カウンタを「０」にクリアすると共に、リッチスパイク制御フラグＸＲＳを、リッチスパイク制御解除を意味する「０」にリセットして、本ルーチンを終了する。
【００３２】
これにより、図６に示すように、周期カウンタ＝０〜ＴＬの期間（時刻ｔ１〜ｔ２の期間）は、空燃比をリーン制御するリーン運転を実施して、排出ガス中のＮＯｘをＮＯｘ触媒２４に吸蔵する。そして、周期カウンタ＝ＴＬ〜ＴＬ＋ＴＲの期間（時刻ｔ２〜ｔ３の期間）は、空燃比をリッチに制御するリッチスパイク制御を実施して、排出ガス中のリッチ成分（ＨＣ、ＣＯ）によりＮＯｘ触媒２４の吸蔵ＮＯｘを還元して放出する。
【００３３】
［失火診断］
図７の失火診断ルーチンは、クランク角速度変動量Δωを失火判定値と比較してエンジン１１の失火の有無を診断するルーチンであり、特許請求の範囲の請求項２に記載した異常診断手段に相当する役割を果たす。以下、６気筒エンジンの場合について説明する。
【００３４】
本ルーチンは、クランク角６０℃Ａ毎に割り込み処理により起動される。本ルーチンが起動されると、まず、ステップ３０１で、クランク軸が１２０℃Ａ回転するのに要した時間Ｔ１２０(i) を次のようにして算出する。本ルーチンの前回の割り込み時刻から今回の割り込み時刻までの時間を、クランク軸が６０℃Ａ回転するのに要した時間Ｔ６０(i) として算出し、本ルーチンの割り込みタイミングがＡＴＤＣ６０℃Ａになる毎（つまり１２０℃Ａ回転する毎）に、Ｔ６０の過去２回分のデータを積算してＴ１２０(i) を算出する。
【００３５】
Ｔ１２０(i) の算出後、ステップ３０２に進み、今回のクランク角速度ω(n) を次式により算出する。
ω(n) ＝（ＫＤＳＯＭＧ−ΔθnL）／Ｔ１２０(i)
上式において、ＫＤＳＯＭＧは、回転時間を角速度に変換するための変換係数であり、ΔθnLは、気筒間クランク角速度偏差学習ルーチン（図示せず）で学習した学習値である。
【００３７】
この後、ステップ３０３に進み、クランク角速度変動量Δω(n-A-1) を次式により算出する。
Δω(n-A-1) ＝｛ω(n-A-2) −ω(n-A-1) ｝−｛ω(n-1) −ω(n) ｝
ここで、Ａは、失火による回転変動がクランク角速度変動量Δω(n-A-1) に大きく現れるように０〜５の範囲（６気筒エンジンの場合）で設定される。
【００３９】
この後、ステップ３０４に進み、リッチスパイク制御実施中又はリッチスパイク制御終了から所定期間内であるか否かを判定する。ここで、リッチスパイク制御実施中か否かは、リッチスパイク制御フラグＸＲＳが「１」にセットされているか否かによって判定し、リッチスパイク制御終了から所定期間内であるか否かは、リッチスパイク制御フラグＸＲＳが「１」から「０」に切り換わってから所定期間内か否かによって判定すれば良い。
【００４０】
本ルーチンは、次のステップ３０５でクランク角速度変動量Δω(n-A-1) を用いて失火診断するため、リッチスパイク制御中やリッチスパイク制御終了直後に失火診断すると、リッチスパイク制御による一時的な回転変動の影響を受けたクランク角速度変動量Δω(n-A-1) に基づいて失火の有無を診断してしまう。従って、ステップ３０４で、リッチスパイク制御実施中又はリッチスパイク制御終了から所定期間内と判定された場合は、以降の失火診断処理を行わずにステップ３０７に進む。これにより、失火診断を禁止し、リッチスパイク制御の影響による失火診断精度の低下を防止する。このステップ３０４の処理が、特許請求の範囲でいう異常診断禁止手段に相当する役割を果たす。
【００４１】
上記ステップ３０４で、リッチスパイク制御実施中でなく且つリッチスパイク制御終了から所定期間内でもないと判定された場合は、ステップ３０５の失火診断処理に進み、クランク角速度変動量Δω(n-A-1) が所定の失火判定値ＲＥＦ１よりも大きいか否かを判定する。もし、クランク角速度変動量Δω(n-A-1) が失火判定値ＲＥＦ１よりも大きいと判定されれば、失火が発生していると判断して、ステップ３０６に進み、失火カウンタＣＭＩＳ(n-A-1) をインクリメントした後、ステップ３０７に進む。尚、失火カウンタＣＭＩＳ(n-A-1) のカウント値が所定値に達した場合、失火による触媒２４の損傷等が懸念されるため、ＥＣＵ２９のメモリに失火の情報を記憶すると共に、警告ランプ（図示せず）を点灯又は点滅させて運転者に警告する。
【００４２】
一方、クランク角速度変動量Δω(n-A-1) が失火判定値ＲＥＦ１以下と判定された場合は、失火が発生していないと判断して、ステップ３０６の処理を飛び越してステップ３０７に進む。
【００４３】
このステップ３０７では、ＲＡＭ３２に記憶されているクランク角速度データω(n-5) 、ω(n-4) 、ω(n-3) 、ω(n-2) 、ω(n-1) を、それぞれω(n-4) 、ω(n-3) 、ω(n-2) 、ω(n-1) 、ω(n) で更新して本ルーチンを終了する。
以上説明した失火診断に関連する技術は、特開平９−１６６０４２号公報に詳細に記載されている。
【００４５】
［触媒劣化診断］
図８の触媒劣化診断ルーチンは、触媒２４下流側の酸素センサ２６の出力電圧ＶＯＸ２の変化幅を積算することで、触媒２４内での浄化ガス成分量を反映する診断データΣＶ（酸素センサ２６の出力電圧変動の軌跡長）を求め、この診断データΣＶを所定の劣化判定値と比較して触媒２４の劣化の有無を診断するルーチンであり、特許請求の範囲の請求項３に記載した異常診断手段に相当する役割を果たす。
【００４６】
本ルーチンは、所定時間毎（例えば６４ｍｓ毎）に実行される。本ルーチンが起動されると、まず、ステップ４０１で、触媒温度ＴＣＡＴが劣化診断開始温度（例えば１５０℃）を越えたか否かを判定し、越えていなければ、以降の触媒劣化診断処理を行うことなく、本ルーチンを終了する。これは、触媒温度ＴＣＡＴが劣化診断開始温度に達していない状態では、酸素センサ２６の温度が低く、そのセンサ出力ＶＯＸ２が安定しないので、この期間中に触媒劣化診断を禁止することで、触媒劣化診断精度低下を防ぐものである。
【００４７】
そして、触媒温度ＴＣＡＴが劣化診断開始温度（例えば１５０℃）を越えた時点で、ステップ４０２に進み、リッチスパイク制御実施中又はリッチスパイク制御終了から所定期間内であるか否かを判定する。本ルーチンは、後述するステップ４０８で、酸素センサ２６の出力電圧ＶＯＸ２を用いて算出した診断データΣＶを用いて触媒劣化診断するため、リッチスパイク制御中やリッチスパイク制御終了直後に触媒劣化診断すると、リッチスパイク制御による一時的な空燃比変化（酸素センサ２６の出力変動）の影響を受けた診断データΣＶに基づいて触媒２４の劣化の有無を診断してしまう。従って、ステップ４０２で、リッチスパイク制御実施中又はリッチスパイク制御終了から所定期間内と判定された場合は、そのまま本ルーチンを終了して、触媒劣化診断を禁止し、リッチスパイク制御の影響による触媒劣化診断精度の低下を防止する。このステップ４０２の処理が、特許請求の範囲でいう異常診断禁止手段に相当する役割を果たす。
【００４８】
一方、ステップ４０２で、リッチスパイク制御実施中でなく且つリッチスパイク制御終了から所定期間内でもないと判定された場合は、ステップ４０３に進み、浄化ガス成分量を反映する診断データΣＶ1 （酸素センサ２６の出力電圧変動の軌跡長）を次式により算出する。
ΣＶ1(n)＝ΣＶ1(n-1)＋｜ＶＯＸ２(i) −ＶＯＸ２(i-1) ｜
【００４９】
ここで、ＶＯＸ２(i) は今回処理時における酸素センサ２６の出力電圧であり、ＶＯＸ２(i-1) は前回処理時における酸素センサ２６の出力電圧である。上式は、所定のサンプリング周期（例えば６４ｍｓ）で触媒２４下流側の酸素センサ２６の出力電圧ＶＯＸ２の変化幅を積算することで、酸素センサ２６の出力電圧変動の軌跡長を求め、触媒２４内での浄化ガス成分量を評価するものである。
【００５０】
更に、このステップ４０３では、触媒流入ガス成分変動を数値化したデータΣΔＡ／Ｆ・Ｑ1 を次式により算出する。
ΣΔＡＦ・Ｑ1(n)＝ΣΔＡＦ・Ｑ1(n-1)＋Ｑ×｜ＡＦＴＧ−ＡＦ｜
【００５１】
ここで、Ｑは吸入空気流量であり、排出ガス流量を代用するデータとして用いられている。上式は、所定のサンプリング周期（例えば６４ｍｓ）で触媒２４上流側の空燃比センサ２５で検出した空燃比ＡＦの目標空燃比ＡＦＴＧからの偏差｜ＡＦＴＧ−ＡＦ｜と排出ガス流量（＝吸入空気流量Ｑ）とを乗算して、その乗算値を積算することで、触媒流入ガス成分変動のデータΣΔＡＦ・Ｑ1 を求めるものである。
【００５２】
この後、ステップ４０４で、診断データΣＶ1 とΣΔＡＦ・Ｑ1 の算出開始から所定時間（例えば１０秒）経過したか否かを判定し、所定時間内のΣＶ1 とΣΔＡＦ・Ｑ1 を算出した時点で、ステップ４０５に進み、前回のΣＶ1 の積算値ΣＶに今回のΣＶ1 を積算してΣＶを更新すると共に、前回のΣΔＡＦ・Ｑ1 の積算値ΣΔＡＦ・Ｑに今回のΣΔＡＦ・Ｑ1 を積算してΣΔＡＦ・Ｑを更新した後、ステップ４０６に進み、ΣＶ1 及びΣΔＡＦ・Ｑ1 を共にクリアする。
【００５３】
この後、ステップ４０７に進み、触媒温度ＴＣＡＴが所定温度（例えば５５０℃）を越えたか否かを判定し、越えていなければ、触媒２４の劣化を診断することなく、本ルーチンを終了する。そして、触媒温度ＴＣＡＴが所定温度を越えた時点で、ステップ４０８に進み、それまでに積算した浄化ガス成分量を反映する診断データΣＶ（触媒２４下流側の酸素センサ２６の出力電圧変動の軌跡長）が劣化判定値よりも大きいか否かを判定する。この劣化判定値は、ＲＯＭ３１に記憶されているデータテーブルを用いてΣΔＡＦ・Ｑに応じて設定される。診断データΣＶが劣化判定値より大きい場合には、触媒２４の劣化と判定し（ステップ４０９）、ＥＣＵ２９のメモリに触媒劣化の情報を記憶すると共に、警告ランプ（図示せず）を点灯又は点滅させて運転者に警告する。一方、診断データΣＶが劣化判定値以下の場合には、正常と判定する（ステップ４１０）。
【００５４】
以上説明した触媒劣化診断に関連する技術は、特開平９−３１０６１２号公報に詳細に記載されている。
【００５５】
上述した図８の触媒劣化診断ルーチンは、触媒２４の劣化に伴ってその下流側の酸素センサ２６の出力変動の軌跡長が長くなる（酸素センサ２６の出力変動の振幅と周波数が増加する）という特性を利用して触媒劣化診断を実行するものであるが、その他の触媒劣化診断方法として、例えば次の▲１▼〜▲４▼のようなものが挙げられる。
【００５６】
▲１▼センサ出力の面積（センサ出力と目標値との差の積算値）を用いる方法
触媒２４の劣化により、酸素センサ２６の出力の振幅と周波数が増加すると、酸素センサ２６の出力の面積（センサ出力と目標値との差の積算値）が増加する特性を利用して、触媒２４の劣化の有無を判定する。
【００５７】
▲２▼センサ出力のリッチ／リーンの反転回数（周波数、周期）を用いる方法
触媒２４が劣化すると、酸素センサ２６の出力の周波数（リッチ／リーンの反転回数）が増加し、周期が短くなる特性を利用して、触媒２４の劣化の有無を判定する。
【００５８】
▲３▼センサ出力の振幅を用いる方法
触媒２４が劣化すると、酸素センサ２６の出力の振幅が増加する特性を利用して、触媒２４の劣化の有無を判定する。
【００５９】
▲４▼センサの応答遅れ時間を用いる方法
触媒２４が劣化すると、触媒２４のストレージ量（排出ガス成分の飽和吸着量）が減少するため、触媒２４で浄化されずに通り抜ける排出ガス成分が増加する。この関係で、目標空燃比λTGのリッチ／リーンを反転させてから酸素センサ２６の出力のリッチ／リーンが反転するまでの応答遅れ時間は、触媒２４が劣化すると短くなる。従って、酸素センサ２６の応答遅れ時間が所定の判定値以下であるか否かで、触媒２４の劣化の有無を判定することができる。
【００６０】
尚、触媒２４の下流側に、酸素センサ２６に代えて空燃比センサ（リニアＡ／Ｆセンサ）を設けたシステムの場合は、触媒２４下流側の空燃比センサの出力に基づいて触媒劣化診断を行っても良い。また、ＮＯｘ触媒２４の下流側（又は上流側）に他の触媒を設置したシステムでは、その触媒の下流側のセンサ（空燃比センサ、酸素センサ等）の出力に基づいて該触媒の劣化診断を行うようにしても良い。
【００６１】
［センサ異常診断］
図９のセンサ異常診断ルーチンは、減速時等に実施される燃料カットからの復帰後（燃料噴射再開後）の空燃比センサ２５の出力の変化率ΔＩを求め、その変化率ΔＩを異常判定値Ｉfcと比較して空燃比センサ２５の異常の有無を診断するルーチンであり、特許請求の範囲の請求項４に記載した異常診断手段に相当する役割を果たす。
【００６２】
本ルーチンは、所定時間毎又は所定クランク角毎に実行される。本ルーチンが起動されると、まず、ステップ５０１で、燃料カット復帰（燃料噴射再開）か否かを判定し、燃料カット復帰でなければ、以降のセンサ異常診断処理を行わずに本ルーチンを終了する。
【００６３】
その後、燃料カット復帰が行われた時点で、ステップ５０２に進み、燃料カット復帰時の空燃比センサ２５の出力（以下「センサ出力」という）Ｉ1 を読み込んで記憶すると共に、タイマを作動させて燃料カット復帰後の経過時間をカウントする。
【００６４】
この後、ステップ５０３に進み、リッチスパイク制御実施中又はリッチスパイク制御終了から所定期間内であるか否かを判定する。本ルーチンは、後述するステップ５０７で、センサ出力の変化率ΔＩを用いてセンサ異常診断するため、リッチスパイク制御中やリッチスパイク制御終了直後にセンサ異常診断すると、リッチスパイク制御による一時的な空燃比変化（空燃比センサ２５の出力変動）の影響を受けたセンサ出力の変化率ΔＩに基づいて空燃比センサ２５の異常の有無を診断してしまう。従って、ステップ５０３で、リッチスパイク制御実施中又はリッチスパイク制御終了から所定期間内と判定された場合は、そのまま本ルーチンを終了して、センサ異常診断を禁止し、リッチスパイク制御の影響によるセンサ異常診断精度の低下を防止する。このステップ５０３の処理が、特許請求の範囲でいう異常診断禁止手段に相当する役割を果たす。
【００６５】
一方、ステップ５０３で、リッチスパイク制御実施中でなく且つリッチスパイク制御終了から所定期間内でもないと判定された場合は、ステップ５０４に進み、センサ出力がＩ2 まで低下したか否かを判定し、センサ出力がＩ2 まで低下したときに、ステップ５０５に進み、燃料カット復帰からセンサ出力がＩ2 に低下するまでの時間Ｔを前述したタイマのカウント値から読み取って記憶した後、ステップ５０６に進んで、センサ出力の変化率ΔＩを次式により算出する。
ΔＩ＝（Ｉ2 −Ｉ1 ）／Ｔ
【００６６】
この後、ステップ５０７に進み、上式により算出したセンサ出力の変化率ΔＩを異常判定値Ｉfrと比較し、センサ出力の変化率ΔＩが異常判定値Ｉfr以下の場合（絶対値の比較では｜ΔＩ｜≧｜Ｉfr｜の場合）には、空燃比センサ２５の応答性は劣化しておらず、センサ出力は正常であるので、本ルーチンを終了する。しかし、空燃比センサ２５の応答性が劣化するに従って、センサ出力の変化率ΔＩの絶対値が小さくなることから、センサ出力の変化率ΔＩが異常判定値Ｉfrより大きくなった場合（絶対値の比較では｜ΔＩ｜＜｜Ｉfr｜となった場合）には、空燃比センサ２５の異常（劣化）有りと判定される。この場合には、ステップ５０８に進んで、ＥＣＵ２９のメモリにセンサ異常の情報を記憶すると共に、警告ランプ（図示せず）を点灯又は点滅させて運転者に警告する。
【００６７】
以上説明したセンサ異常診断に関連する技術は、特開平８−１７７５７５号公報に詳細に記載されている。
尚、異常診断の対象となるセンサは、触媒２４上流側の空燃比センサ２５に限定されず、触媒２４下流側の酸素センサ２６等、排出ガスの空燃比又はリッチ／リーンを検出する他のセンサの異常診断をするようにしても良い。
【００６９】
［燃料系異常診断］
図１０の燃料系異常診断パラメータ算出ルーチンは、実空燃比ＡＦと目標空燃比ＡＦＴＧとの差、空燃比補正係数ＦＡＦ、学習補正係数ＫＧに基づいて異常診断パラメータＤＧＤＥＬＡＦを求め、これをなまし処理して異常診断パラメータなまし値ＤＧＤＥＬＡＦＳＭを算出するルーチンであり、図１１の燃料系異常診断実行ルーチンは、異常診断パラメータなまし値ＤＧＤＥＬＡＦＳＭを異常診断基準値と比較して燃料系の異常の有無を診断するルーチンである。これら図１０の燃料系異常診断パラメータ算出ルーチン及び図１１の燃料系異常診断実行ルーチンルーチンが、特許請求の範囲の請求項５に記載した異常診断手段に相当する役割を果たす。
【００７０】
図１０の燃料系異常診断パラメータ算出ルーチンは、所定クランク角毎に実行される。本ルーチンが起動されると、まず、ステップ６０１で、空燃比フィードバック制御中（図２のステップ１０３で空燃比フィードバック条件が成立している時）であるか否かを判定し、空燃比フィードバック制御中でない場合は、ステップ６０４，６０５に進み、異常診断パラメータＤＧＤＥＬＡＦと異常診断パラメータなまし値ＤＧＤＥＬＡＦＳＭを、共に、異常無しを意味する「１．０」に設定して本ルーチンを終了する。
【００７１】
一方、空燃比フィードバック制御中の場合には、ステップ６０２に進み、▲１▼空燃比センサ２５で検出した実空燃比ＡＦと目標空燃比ＡＦＴＧとの差と、▲２▼空燃比補正係数ＦＡＦと、▲３▼学習補正係数ＫＧとを合計して異常診断パラメータＤＧＤＥＬＡＦを求める。
ＤＧＤＥＬＡＦ＝（ＡＦ−ＡＦＴＧ）＋ＦＡＦ＋ＫＧ
【００７２】
この後、ステップ６０３に進んで、異常診断パラメータＤＧＤＥＬＡＦを次式によりなまし処理して異常診断パラメータなまし値ＤＧＤＥＬＡＦＳＭを算出する。
0004453061.tif 000002
上式は、なまし係数が１／４であるが、１／３、１／６、１／８等であっても良い。
【００７４】
図１１の燃料系異常診断実行ルーチンは、所定時間毎に実行される。本ルーチンが起動されると、まず、ステップ７０１で、燃料系異常診断実行条件が成立した状態が所定時間（例えば２０秒）継続したか否かを判定する。ここで、燃料系異常診断実行条件としては、エンジン始動後の経過時間が所定時間（例えば６０秒）を越えていること、空燃比フィードバック制御中であること等であり、これらの条件を全て満たしていれば、燃料系異常診断実行条件が成立する。
【００７５】
上記ステップ７０１で、燃料系異常診断実行条件が成立した状態が所定時間（例えば２０秒）継続していないと判定された場合には、以降の燃料系異常診断処理を行わずに本ルーチンを終了する。
【００７６】
その後、燃料系異常診断実行条件が成立した状態が所定時間（例えば２０秒）継続した時点で、ステップ７０１から７０２に進み、リッチスパイク制御実施中又はリッチスパイク制御終了から所定期間内であるか否かを判定する。本ルーチンは、後述するステップ７０３，７０６で、実空燃比ＡＦを用いて算出した異常診断パラメータなまし値ＤＧＤＥＬＡＦＳを用いて燃料系の異常診断を行うため、リッチスパイク制御中やリッチスパイク制御終了直後に燃料系の異常診断を行うと、リッチスパイク制御による一時的な空燃比変化の影響を受けた異常診断パラメータなまし値ＤＧＤＥＬＡＦＳに基づいて燃料系の異常の有無を診断してしまう。従って、ステップ７０２で、リッチスパイク制御実施中又はリッチスパイク制御終了から所定期間内と判定された場合は、そのまま本ルーチンを終了して、燃料系異常診断を禁止し、リッチスパイク制御の影響による燃料系異常診断精度の低下を防止する。このステップ７０２の処理が、特許請求の範囲でいう異常診断禁止手段に相当する役割を果たす。
【００７７】
一方、ステップ７０２で、リッチスパイク制御実施中でなく且つリッチスパイク制御終了から所定期間内でもないと判定された場合は、ステップ７０３に進み、異常診断パラメータなまし値ＤＧＤＥＬＡＦＳＭをリッチ側異常診断基準値ｔＤＦＡＦＲと比較し、ＤＧＤＥＬＡＦＳＭ≦ｔＤＦＡＦＲ（リッチ側の異常）であれば、ステップ７０４に進み、リッチ側の異常が所定時間（例えば２０秒）継続したか否かを判定し、所定時間継続すれば、ステップ７０５に進み、最終的に燃料供給系のリッチ側の異常と診断して、リッチ側異常診断フラグＤＧＦＵＥＬＲＮＧをリッチ側の異常を意味する「１」にセットし、次のステップ７０９で、警告ランプ（図示せず）を点灯又は点滅させて運転者に警告すると共に、ＥＣＵ２９のメモリにリッチ側の異常の情報を記憶して本プログラムを終了する。
【００７８】
上記ステップ７０４で、リッチ側の異常が所定時間（例えば２０秒）継続していない場合には、最終的な診断結果を出さずに本プログラムを終了する。
【００７９】
また、上記ステップ７０３で、ＤＧＤＥＬＡＦＳＭ＞ｔＤＦＡＦＲ（リッチ側正常）と判定された場合には、ステップ７０６に進み、異常診断パラメータなまし値ＤＧＤＥＬＡＦＳＭをリーン側異常診断基準値ｔＤＦＡＦＬと比較し、ＤＧＤＥＬＡＦＳＭ≧ｔＤＦＡＦＬ（リーン側の異常）であれば、ステップ７０７に進み、リーン側の異常が所定時間（例えば２０秒）継続したか否かを判定し、所定時間継続すれば、ステップ７０８に進み、最終的に燃料供給系のリーン側の異常と診断してリーン側異常診断フラグＤＧＦＵＥＬＬＮＧをリーン側の異常を意味する「１」にセットし、次のステップ７０９で、警告ランプを点灯又は点滅させて運転者に警告すると共に、ＥＣＵ２９のメモリにリッチ側の異常の情報を記憶して本プログラムを終了する。
【００８０】
上記ステップ７０６で、リーン側の異常が所定時間（例えば２０秒）継続していない場合には、最終的な診断結果を出さずに本プログラムを終了する。
以上説明したセンサ異常診断に関連する技術は、特開平１１−８２１１７号公報に詳細に記載されている。
【００８２】
以上説明した本実施形態によれば、リッチスパイク制御実施中及びリッチスパイク制御終了から所定期間内は、リッチスパイク制御の影響を受ける失火診断、触媒劣化診断、センサ異常診断及び燃料系異常診断を禁止するようにしたので、リッチスパイク制御による一時的な空燃比変化や回転変動の影響を受けた異常診断パラメータに基づいて異常診断を行ってしまうことを防止することができて、各異常診断の精度を向上することができ、エンジン制御システムの信頼性を向上することができる。
【００８３】
尚、上記実施形態では、リッチスパイク制御実施中及びリッチスパイク制御終了から所定期間内は、他の異常診断実行条件が成立しても異常診断が実施されない。この場合、リッチスパイク制御終了から所定期間が経過して異常診断の禁止が解除された後に、他の異常診断実行条件が成立していることを条件に、異常診断を実施するようにしても良いが、リッチスパイク制御実施中及びリッチスパイク制御終了から所定期間内に、他の異常診断実行条件が成立したときは、異常診断の実施を遅延させ、リッチスパイク制御終了から所定期間が経過した後に異常診断を実施するようにしても良い。
【００８４】
また、上記実施形態では、失火診断、触媒劣化診断、センサ異常診断及び燃料系異常診断を全て実施するシステムに本発明を適用したが、これらの異常診断のうちの１つ又は複数の異常診断を実施するシステムに本発明を適用しても良く、また、異常診断方法を適宜変更しても良い。更に、リッチスパイク制御による一時的な空燃比変化や回転変動の影響を受ける他の異常診断を実施するシステムに本発明を適用しても良い。また、本発明は、異常診断を禁止（又は遅延）する期間をリッチスパイク制御中のみに限定しても良い。
【００８５】
その他、本発明は、リーンバーンエンジン以外に、直噴エンジン等、リッチスパイク制御によって吸蔵ＮＯｘを還元浄化する必要がある触媒を備えたエンジンに適用することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態を示すエンジン制御システム全体の概略構成図
【図２】燃料噴射量設定ルーチンの処理の流れを示すフローチャート
【図３】目標空燃比設定ルーチンの処理の流れを示すフローチャート
【図４】リッチ運転時間ＴＲの算出マップを概念的に示す図
【図５】目標空燃比ＡＦＴＧの算出マップを概念的に示す図
【図６】空燃比と周期カウンタの挙動を示すタイムチャート
【図７】失火診断ルーチンの処理の流れを示すフローチャート
【図８】触媒劣化診断ルーチンの処理の流れを示すフローチャート
【図９】センサ異常診断ルーチンの処理の流れを示すフローチャート
【図１０】燃料系異常診断パラメータ算出ルーチンの処理の流れを示すフローチャート
【図１１】燃料系異常診断実行ルーチンの処理の流れを示すフローチャート
【符号の説明】
１１…エンジン（内燃機関）、２０…燃料噴射弁、２３…排気管、２４…ＮＯｘ触媒、２５…空燃比センサ、２６…酸素センサ（下流側センサ）、２９…ＥＣＵ（リッチスパイク制御手段，異常診断手段，異常診断禁止手段）。
【図１】
0004453061.tif 000003
【図２】
0004453061.tif 000004
【図３】
0004453061.tif 000005
【図４】
0004453061.tif 000006
【図５】
0004453061.tif 000007
【図６】
0004453061.tif 000008
【図７】
0004453061.tif 000009
【図８】
0004453061.tif 000010
【図９】
0004453061.tif 000011
【図１０】
0004453061.tif 000012
【図１１】
0004453061.tif 000013