(57)【要約】【課題】エンジンの排気合流部に設置した空燃比センサの出力に基づいた気筒別異常診断の診断精度を向上させる。【解決手段】空燃比ディザ制御によって第ｉ気筒＃ｉの空燃比を強制的に変化させたときの実際の空燃比の変化量ΔＸ(#i)と、そのときの空燃比センサの検出空燃比の変化量ΔＹ(#i)｛＝Ｙ2(#i) −Ｙ1(#i) ｝と、空燃比ディザ制御の開始前の空燃比センサの検出空燃比の気筒間偏差Ｙ1(#i) とを用いて、空燃比ディザ制御の開始前の実際の空燃比の気筒間偏差Ｘ(#i)を求めることで、各気筒の実際の空燃比の気筒間偏差Ｘ(#i)を精度良く推定する。そして、エンジン１１の始動から停止までの間に、各気筒毎にそれぞれ空燃比の気筒間偏差Ｘ(#i)が所定の判定値αを越えた回数をカウントし、そのカウント値が所定回数Ｋよりも大きくなった場合に、その気筒に異常が発生したと判定する。【選択図】図２
2008121534.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の各気筒の排出ガスが集合して流れる排気合流部に、該排出ガスの空燃比を検出する空燃比センサを設置した内燃機関の異常診断装置において、
各気筒毎に空燃比を強制的に変化させる空燃比ディザ制御を実行したときの前記空燃比センサの出力に基づいて各気筒の空燃比又は空燃比の気筒間偏差を推定する気筒別空燃比情報検出手段と、
内燃機関の始動から停止までの間に前記気筒別空燃比情報検出手段で推定した同一気筒の空燃比又は空燃比の気筒間偏差が所定の判定値を越えた回数が所定回数よりも大きくなった場合に、その気筒に異常が発生したと判定する気筒別異常判定手段と
を備えていることを特徴とする内燃機関の異常診断装置。
【請求項２】
内燃機関の排出ガスの空燃比を検出する空燃比センサを備えた内燃機関の異常診断装置において、
内燃機関の運転状態に応じて区分された複数の異常診断領域毎に前記空燃比センサの出力に基づいて各気筒の空燃比又は空燃比の気筒間偏差を推定する気筒別空燃比情報検出手段と、
前記複数の異常診断領域のうちの全ての異常診断領域において前記気筒別空燃比情報検出手段で推定した同一気筒の空燃比又は空燃比の気筒間偏差が所定の判定値を越えた場合に、その気筒に異常が発生したと判定する気筒別異常判定手段と
を備えていることを特徴とする内燃機関の異常診断装置。
【請求項３】
内燃機関の排出ガスの空燃比を検出する空燃比センサを備えた内燃機関の異常診断装置において、
内燃機関の運転状態に応じて区分された複数の異常診断領域毎に前記空燃比センサの出力に基づいて各気筒の空燃比又は空燃比の気筒間偏差を推定する気筒別空燃比情報検出手段と、
前記複数の異常診断領域のうちの所定数以上の異常診断領域において前記気筒別空燃比情報検出手段で推定した同一気筒の空燃比又は空燃比の気筒間偏差が所定の判定値を越えた場合に、その気筒に異常が発生したと判定する気筒別異常判定手段と
を備えていることを特徴とする内燃機関の異常診断装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、空燃比センサの出力に基づいて気筒別に異常診断する内燃機関の異常診断装置に関する発明である。
【背景技術】
【０００２】
近年、内燃機関の空燃比制御精度を向上させるために、特許文献１（特許第２６８４０１１号公報）に記載されているように、複数の気筒の排出ガスが合流する排気合流部に設置した１つの空燃比センサの検出値（排気合流部の空燃比）と各気筒の空燃比とを関連付けたモデルを用いて各気筒の空燃比を推定すると共に、各気筒の空燃比の気筒間の偏差（気筒間のばらつき）が小さくなるように気筒毎に空燃比フィードバック補正量を算出し、この気筒毎の空燃比フィードバック補正量に基づいて各気筒の空燃比（燃料噴射量）を気筒毎に制御する気筒別空燃比制御を実施するようにしたものがある。更に、この特許文献１（特許第２６８４０１１号公報）では、気筒毎の空燃比フィードバック補正量が所定範囲内であるか否かを判定し、気筒毎の空燃比フィードバック補正量が所定範囲を越えた場合に、その気筒に異常（例えば燃料噴射弁の故障等）が発生したと判定する気筒別異常診断を実施するようにしている。
【特許文献１】特許第２６８４０１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、内燃機関の排気管の形状等によっては、運転状態の変化によって空燃比センサに対する排出ガスの当り具合が変化することがあり、これが原因で空燃比センサの検出値が実際の空燃比に対してずれることがある。しかし、上記特許文献１の技術では、空燃比センサに対する排出ガスの当り具合の変化に起因する空燃比センサの検出値のずれが全く考慮されていないため、この空燃比センサの検出値のずれによって空燃比センサの出力に基づいた気筒別異常診断の診断精度が低下する可能性がある。
【０００４】
本発明は、このような事情を考慮してなされたものであり、従って本発明の目的は、空燃比センサの出力に基づいた気筒別異常診断の診断精度を向上させることができる内燃機関の異常診断装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、請求項１に係る発明は、内燃機関の各気筒の排出ガスが集合して流れる排気合流部に、該排出ガスの空燃比を検出する空燃比センサを設置した内燃機関の異常診断装置において、各気筒毎に空燃比を強制的に変化させる空燃比ディザ制御を実行したときの前記空燃比センサの出力に基づいて各気筒の空燃比又は空燃比の気筒間偏差を気筒別空燃比情報検出手段により推定し、内燃機関の始動から停止までの間に気筒別空燃比情報検出手段で推定した同一気筒の空燃比又は空燃比の気筒間偏差が所定の判定値を越えた回数が所定回数よりも大きくなった場合に、その気筒に異常が発生したと気筒別異常判定手段により判定するようにしたものである。
【０００６】
空燃比ディザ制御によって対象となる気筒の空燃比を強制的に変化させたときの実際の空燃比の変化量と、そのときの空燃比センサの検出空燃比（出力）の変化量と、空燃比ディザ制御の開始前の空燃比センサの検出空燃比（又は検出空燃比の気筒間偏差）とを用いれば、空燃比ディザ制御の開始前の実際の空燃比（又は空燃比の気筒間偏差）を求めることができる。これにより、空燃比センサに対する排出ガスの当り具合の変化等によって空燃比センサの検出空燃比が実際の空燃比に対してずれている場合でも、各気筒の実際の空燃比（又は空燃比の気筒間偏差）を精度良く推定することができる。そして、内燃機関の始動から停止までの間に、このようにして推定した同一気筒の空燃比又は空燃比の気筒間偏差が所定の判定値を越えた回数が所定回数よりも大きくなった場合に、その気筒に異常が発生したと判定するようにすれば、各気筒の異常の有無を精度良く判定することができ、気筒別異常診断の診断精度を向上させることができる。
【０００７】
ところで、例えば、内燃機関の運転状態の変化によって空燃比センサに対する排出ガスの当り具合等が変化して空燃比センサの検出空燃比が実際の空燃比に対してずれる場合、そのずれが比較的大きくなる運転領域では空燃比センサの出力に基づいた気筒別異常診断の診断精度が低下する可能性がある。
【０００８】
そこで、請求項２のように、内燃機関の運転状態に応じて区分された複数の異常診断領域毎に空燃比センサの出力に基づいて各気筒の空燃比又は空燃比の気筒間偏差を推定し、複数の異常診断領域のうちの全ての異常診断領域において同一気筒の空燃比又は空燃比の気筒間偏差が所定の判定値を越えた場合に、その気筒に異常が発生したと判定するようにしても良い。このようにすれば、特定の運転領域（例えば、空燃比センサの検出空燃比のずれが比較的大きくなる運転領域）で空燃比センサの出力に基づいた異常診断精度が低下する場合でも、各気筒の異常の有無を精度良く判定することができ、気筒別異常診断の診断精度を向上させることができる。
【０００９】
或は、請求項３のように、複数の異常診断領域のうちの所定数以上の異常診断領域において同一気筒の空燃比又は空燃比の気筒間偏差が所定の判定値を越えた場合に、その気筒に異常が発生したと判定するようにしても良い。このようにしても、気筒別異常診断の診断精度を向上させることができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実施するための最良の形態を具体化した幾つかの実施例を説明する。
【実施例１】
【００１１】
本発明の実施例１を図１乃至図５に基づいて説明する。
まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。
内燃機関である例えば直列４気筒のエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、モータ等によって開度調節されるスロットルバルブ１５とスロットル開度を検出するスロットル開度センサ１６とが設けられている。
【００１２】
更に、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７には、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。エンジン運転中は、燃料タンク２１内の燃料が燃料ポンプ２２によりデリバリパイプ２３に送られ、各気筒の噴射タイミング毎に各気筒の燃料噴射弁２０から燃料が噴射される。デリバリパイプ２３には、燃料圧力（燃圧）を検出する燃圧センサ２４が取り付けられている。
【００１３】
また、エンジン１１には、吸気バルブ２５と排気バルブ２６の開閉タイミングをそれぞれ可変する可変バルブタイミング機構２７，２８が設けられている。更に、エンジン１１には、吸気カム軸２９と排気カム軸３０の回転に同期してカム角信号を出力する吸気カム角センサ３１と排気カム角センサ３２が設けられていると共に、エンジン１１のクランク軸の回転に同期して所定クランク角毎（例えば３０℃Ａ毎）にクランク角信号のパルスを出力するクランク角センサ３３が設けられている。
【００１４】
一方、エンジン１１の各気筒の排気マニホールド３５が合流する排気合流部３６には、排出ガスの空燃比を検出する空燃比センサ３７が設置され、この空燃比センサ３７の下流側に排出ガス中のＣＯ，ＨＣ，ＮＯｘ等を浄化する三元触媒等の触媒３８が設けられている。
【００１５】
上述した空燃比センサ３７等の各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）４０に入力される。このＥＣＵ４０は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、エンジン運転状態に応じて各気筒の燃料噴射弁２０の燃料噴射量や点火時期を制御する。
【００１６】
また、ＥＣＵ４０は、後述する図３乃至図５の気筒別異常診断用の各ルーチンを実行することで、次のようにして気筒別異常診断を行う。まず、所定の気筒間偏差推定実行条件が成立したときに各気筒毎に空燃比を強制的に変化させる空燃比ディザ制御を実行し、この空燃比ディザ制御を実行したときの空燃比センサ３７の出力に基づいて各気筒（第１気筒＃１〜第４気筒＃４）の空燃比の気筒間偏差Ｘ(#1)〜Ｘ(#4)を推定する。
【００１７】
具体的には、図２（ａ）に示すように、今回の対象となる第ｉ気筒＃ｉ（ｉ＝１〜４）において、空燃比ディザ制御の開始前（空燃比を強制的に変化させる前）に空燃比センサ３７で検出した第ｉ気筒＃ｉの検出空燃比と基準空燃比との偏差Ｙ1(#i) を算出することで、空燃比ディザ制御の開始前の第ｉ気筒＃ｉの検出空燃比の気筒間偏差Ｙ1(#i) を求める。ここで、基準空燃比は、空燃比ディザ制御の開始前に空燃比センサ３７で検出した全気筒の検出空燃比の平均値に設定する。或は、基準空燃比を所定の固定値（例えば１４．７）に設定しても良い。
【００１８】
この後、第ｉ気筒＃ｉの空燃比を強制的にリッチ方向又はリーン方向に所定変化量ΔＸ(#i)だけ変化させる空燃比ディザ制御を実行し、図２（ｂ）に示すように、空燃比ディザ制御の開始後（空燃比を強制的に変化させた後）に空燃比センサ３７で検出した第ｉ気筒＃ｉの検出空燃比と基準空燃比との偏差Ｙ2(#i) を算出することで、空燃比ディザ制御の開始後の第ｉ気筒＃ｉの検出空燃比の気筒間偏差Ｙ2(#i) を求める。
【００１９】
この後、空燃比ディザ制御によって第ｉ気筒＃ｉの空燃比（例えば燃料噴射量）を強制的に変化させたときの実際の空燃比の変化量ΔＸ(#i)と、そのときの空燃比センサ３７の検出空燃比の変化量ΔＹ(#i)｛＝Ｙ2(#i) −Ｙ1(#i) ｝と、空燃比ディザ制御の開始前の空燃比センサ３７の検出空燃比の気筒間偏差Ｙ1(#i) とを用いて、空燃比ディザ制御の開始前の実際の空燃比の気筒間偏差Ｘ(#i)を次式により求める。
Ｘ(#i)＝ΔＸ(#i)×Ｙ1(#i) ／ΔＹ(#i)
＝ΔＸ(#i)×Ｙ1(#i) ／｛Ｙ2(#i) −Ｙ1(#i) ｝
【００２０】
そして、エンジン１１の始動から停止までの間（例えばＥＣＵ４０の電源オン中）に、各気筒毎にそれぞれ空燃比の気筒間偏差Ｘ(#i)が所定の判定値αを越えた回数をカウントし、そのカウント値が所定回数Ｋよりも大きくなった場合に、その気筒に異常（例えば、燃料噴射弁２０の経時劣化や噴口詰り、ＥＧＲポートのデポジット、可変バルブタイミング機構や可変バルブリフト機構の特性異常等）が発生したと判定する。
【００２１】
以下、ＥＣＵ４０が実行する図３乃至図５の気筒別異常診断用の各プログラムの処理内容を説明する。
【００２２】
［気筒別異常診断メインルーチン］
図３に示す気筒別異常診断メインルーチンは、エンジン１１の始動から停止までの間（例えばＥＣＵ４０の電源オン中）に所定周期（例えば３０℃Ａ周期）で実行され、特許請求の範囲でいう気筒別異常判定手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ１０１で、所定の気筒間偏差推定実行条件が成立しているか否かを判定する。ここで、気筒間偏差推定実行条件としては、例えば、次の(1) と(2) の条件が判定される。
(1) エンジン運転状態が定常状態であること
(2) 空燃比センサ３７が活性状態であること
【００２３】
尚、(1) の条件であるエンジン運転状態が定常状態であるか否かの判定は、例えば、吸入空気量が所定値以下であるか否か、エンジン回転速度が所定範囲内であるか否か、エンジン負荷（吸入空気量や吸気管圧力）が所定範囲内であるか否か、冷却水温が所定値以上であるか否か等によって判定する。
【００２４】
これらの(1) と(2) の条件を両方とも満たせば、気筒間偏差推定実行条件が成立するが、上記(1) と(2) の条件のどちらか一方でも満たさない条件があれば、気筒間偏差推定実行条件が不成立となる。
【００２５】
このステップ１０１で、気筒間偏差推定実行条件が成立していると判定された場合には、ステップ１０２に進み、エンジン回転速度とエンジン負荷とに基づいて気筒別の空燃比推定タイミング（今回の対象気筒である第ｉ気筒＃ｉの排出ガスの空燃比が空燃比センサ３７で検出されるタイミング）を算出する。
【００２６】
この後、ステップ１０３に進み、現在のクランク角が気筒別の空燃比推定タイミングであるか否かを判定し、気筒別の空燃比推定タイミングであると判定されたときに、ステップ１０４に進み、後述する図４の気筒間偏差推定ルーチンを実行して、第ｉ気筒＃ｉの空燃比の気筒間偏差Ｘ(#i)を算出する。
【００２７】
この後、ステップ１０５に進み、後述する図５の異常検出ルーチンを実行して、エンジン１１の始動から停止までの間、第ｉ気筒＃ｉの空燃比の気筒間偏差Ｘ(#i)が所定の判定値αを越える毎に第ｉ気筒＃ｉの異常判定カウンタＣＭ(#i)のカウント値をインクリメントする。
【００２８】
この後、ステップ１０６に進み、第ｉ気筒＃ｉの異常判定カウンタＣＭ(#i)のカウント値が所定回数Ｋよりも大きいか否かによって、エンジン１１の始動から停止までの間に第ｉ気筒＃ｉの空燃比の気筒間偏差Ｘ(#i)が判定値αを越えた回数が所定回数Ｋよりも大きいか否かを判定する。
【００２９】
その結果、第ｉ気筒＃ｉの異常判定カウンタＣＭ(#i)のカウント値が所定回数Ｋよりも大きい（つまり第ｉ気筒＃ｉの空燃比の気筒間偏差Ｘ(#i)が判定値αを越えた回数が所定回数Ｋよりも大きい）と判定された場合には、ステップ１０７に進み、第ｉ気筒＃ｉに異常（例えば、燃料噴射弁２０の経時劣化や噴口詰り、ＥＧＲポートのデポジット、可変バルブタイミング機構や可変バルブリフト機構の特性異常等）が発生したと判定して異常フラグをＯＮにセットし、運転席のインストルメントパネルに設けられた警告ランプ（図示せず）を点灯したり、或は、運転席のインストルメントパネルの警告表示部（図示せず）に警告表示して運転者に警告すると共に、その異常情報（異常コード等）をＥＣＵ４０のバックアップＲＡＭ（図示せず）等の書き換え可能な不揮発性メモリに記憶して、本ルーチンを終了する。
【００３０】
これに対して、上記ステップ１０６で、第ｉ気筒＃ｉの異常判定カウンタＣＭ(#i)のカウント値が所定回数Ｋ以下である（つまり第ｉ気筒＃ｉの空燃比の気筒間偏差Ｘ(#i)が判定値αを越えた回数が所定回数Ｋ以下である）と判定された場合には、第ｉ気筒＃ｉの異常無し（正常）と判定して、本ルーチンを終了する。
【００３１】
［気筒間偏差推定ルーチン］
図４に示す気筒間偏差推定ルーチンは、前記図３の気筒別異常診断メインルーチンのステップ１０４で実行されるサブルーチンであり、特許請求の範囲でいう気筒別空燃比情報検出手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ２０１で、空燃比ディザ制御フラグが、今回の対象気筒である第ｉ気筒＃ｉの空燃比を強制的に変化させる空燃比ディザ制御が実行されていることを意味する「オン」にセットされているか否かを判定する。
【００３２】
このステップ２０１で、空燃比ディザ制御フラグがオフ（つまり空燃比ディザ制御の開始前）であると判定された場合には、ステップ２０２に進み、空燃比ディザ制御の開始前（空燃比を強制的に変化させる前）に空燃比センサ３７で検出した第ｉ気筒＃ｉの検出空燃比と基準空燃比との偏差Ｙ1(#i) を算出することで、空燃比ディザ制御の開始前の第ｉ気筒＃ｉの検出空燃比の気筒間偏差Ｙ1(#i) を求める。
【００３３】
この後、ステップ２０３に進み、第ｉ気筒＃ｉの空燃比を強制的にリッチ方向又はリーン方向に所定変化量ΔＸ(#i)だけ変化させる空燃比ディザ制御を実行する。この空燃比ディザ制御は、例えば、第ｉ気筒＃ｉの燃料噴射弁２０の燃料噴射量を所定量だけ増量又は減量することで第ｉ気筒＃ｉの空燃比を強制的に所定変化量ΔＸだけ変化させる。この場合、吸入空気量が変化しない一定の運転状態で燃料噴射量を増量又は減量するようにしても良く、これにより空燃比を精度良く所定変化量ΔＸだけ変化させることができる。
【００３４】
尚、各気筒毎にスロットルバルブを設けたシステムの場合には、第ｉ気筒＃ｉのスロットルバルブの開度を調整して第ｉ気筒＃ｉの吸入空気量を所定量だけ増量又は減量することで第ｉ気筒＃ｉの空燃比を強制的に所定変化量ΔＸだけ変化させるようにしても良い。この場合、各気筒の燃料噴射量が変化しない一定の運転状態で吸入空気量を増量又は減量するようにしても良く、これにより空燃比を精度良く所定変化量ΔＸだけ変化させることができる。
【００３５】
この後、ステップ２０４に進み、空燃比ディザ制御フラグをオンにセットした後、ステップ２０５に進む。
【００３６】
一方、空燃比ディザ制御フラグをオンにセットした後は、上記ステップ２０１で、空燃比ディザ制御フラグがオンであると判定されるため、ステップ２０２〜２０４の処理を飛ばして、ステップ２０５に進む。
【００３７】
このステップ２０５では、空燃比ディザ制御を開始してから所定期間（空燃比を強制的に変化させた後の第ｉ気筒＃ｉの排出ガスの空燃比が空燃比センサ３７で検出されるまでに要する時間）が経過したか否かを判定し、所定期間が経過したと判定されたときに、ステップ２０６に進み、空燃比ディザ制御の開始後（空燃比を強制的に変化させた後）に空燃比センサ３７で検出した第ｉ気筒＃ｉの検出空燃比と基準空燃比との偏差Ｙ2(#i) を算出することで、空燃比ディザ制御の開始後の第ｉ気筒＃ｉの検出空燃比の気筒間偏差Ｙ2(#i) を求める。
【００３８】
この後、ステップ２０７に進み、空燃比ディザ制御によって第ｉ気筒＃ｉの空燃比を強制的に変化させたときの実際の空燃比の変化量ΔＸ(#i)と、そのときの空燃比センサ３７の検出空燃比の変化量ΔＹ(#i)｛＝Ｙ2(#i) −Ｙ1(#i) ｝と、空燃比ディザ制御の開始前の空燃比センサ３７の検出空燃比の気筒間偏差Ｙ1(#i) とを用いて、空燃比ディザ制御の開始前の第ｉ気筒＃ｉの実際の空燃比の気筒間偏差Ｘ(#i)を次式により求める。
Ｘ(#i)＝ΔＸ(#i)×Ｙ1(#i) ／ΔＹ(#i)
＝ΔＸ(#i)×Ｙ1(#i) ／｛Ｙ2(#i) −Ｙ1(#i) ｝
【００３９】
この後、ステップ２０８に進み、空燃比ディザ制御を終了すると共に、空燃比ディザ制御フラグをオフにリセットした後、本ルーチンを終了する。
【００４０】
［異常検出ルーチン］
図５に示す異常検出ルーチンは、前記図３の気筒別異常診断メインルーチンのステップ１０５で実行されるサブルーチンである。本ルーチンが起動されると、まず、ステップ３０１で、今回の対象気筒である第ｉ気筒＃ｉの空燃比の気筒間偏差ΔＸ(#i)が所定の判定値αよりも大きいか否かを判定する。その結果、第ｉ気筒＃ｉの空燃比の気筒間偏差ΔＸ(#i)が判定値αよりも大きいと判定された場合には、ステップ３０２に進み、第ｉ気筒＃ｉの異常判定カウンタＣＭ(#i)のカウント値を「１」だけインクリメントする。
ＣＭ(#i)＝ＣＭ(#i)＋１
【００４１】
一方、上記ステップ３０１で、第ｉ気筒＃ｉの空燃比の気筒間偏差ΔＸ(#i)が判定値α以下であると判定された場合には、第ｉ気筒＃ｉの異常判定カウンタＣＭ(#i)のカウント値をインクリメントすることなく、本ルーチンを終了する。
【００４２】
以上説明した本実施例１では、空燃比ディザ制御によって第ｉ気筒＃ｉの空燃比を強制的に変化させたときの実際の空燃比の変化量ΔＸ(#i)と、そのときの空燃比センサ３７の検出空燃比の変化量ΔＹ(#i)｛＝Ｙ2(#i) −Ｙ1(#i) ｝と、空燃比ディザ制御の開始前の空燃比センサ３７の検出空燃比の気筒間偏差Ｙ1(#i) とを用いて、空燃比ディザ制御の開始前の実際の空燃比の気筒間偏差Ｘ(#i)を求めるようにしたので、空燃比センサ３７に対する排出ガスの当り具合の変化等によって空燃比センサ３７の検出空燃比が実際の空燃比に対してずれている場合でも、各気筒の実際の空燃比の気筒間偏差Ｘ(#i)を精度良く推定することができる。
【００４３】
そして、エンジン１１の始動から停止までの間に、各気筒毎にそれぞれ空燃比の気筒間偏差Ｘ(#i)が判定値αを越えた回数をカウントし、そのカウント値が所定回数Ｋよりも大きくなった場合に、その気筒に異常が発生したと判定するようにしたので、各気筒の異常の有無を精度良く判定することができ、気筒別異常診断の診断精度を向上させることができる。
【００４４】
尚、上記実施例１では、空燃比ディザ制御を実行したときの空燃比センサ３７の出力に基づいて各気筒の空燃比の気筒間偏差を推定するようにしたが、空燃比ディザ制御を実行したときの空燃比センサ３７の出力に基づいて各気筒の空燃比を推定し、エンジン１１の始動から停止までの間に推定した同一気筒の空燃比が所定の判定値を越えた回数が所定回数よりも大きくなった場合に、その気筒に異常が発生したと判定するようにしても良い。
【実施例２】
【００４５】
次に、図６乃至図８を用いて本発明の実施例２を説明する。
本実施例２では、後述する図６及び図７の各ルーチンを実行することで、エンジン１１の運転状態に応じて区分された複数の異常診断領域毎に空燃比センサ３７の出力に基づいて各気筒の空燃比の気筒間偏差Ｘ(#i)を推定し、全ての異常診断領域において同一気筒の空燃比の気筒間偏差Ｘ(#i)が所定の判定値αを越えた場合に、その気筒に異常が発生したと判定するようにしている。
【００４６】
図６に示す気筒別異常診断メインルーチンでは、気筒間偏差推定実行条件が成立したときに、図４の気筒間偏差推定ルーチンを実行して、後述する複数の異常診断領域毎に第ｉ気筒＃ｉの空燃比の気筒間偏差Ｘ(#i)を算出する（ステップ１０１〜１０４）。
【００４７】
この後、ステップ１０５に進み、図７の異常検出ルーチンを実行する。この異常検出ルーチンでは、まず、ステップ４０１で、今回の対象気筒である第ｉ気筒＃ｉの空燃比の気筒間偏差ΔＸ(#i)が所定の判定値αよりも大きいか否かを判定する。
【００４８】
その結果、第ｉ気筒＃ｉの空燃比の気筒間偏差ΔＸ(#i)が判定値αよりも大きいと判定された場合には、ステップ４０２〜４０７で、図８に示す異常診断領域のマップを参照して、現在のエンジン運転領域（つまり第ｉ気筒＃ｉの空燃比の気筒間偏差Ｘ(#i)を算出した運転領域）が複数（例えば６つ）の異常診断領域のうちのいずれであるかを判定する。図８の異常診断領域のマップは、エンジン運転状態（例えばエンジン回転速度とエンジン負荷）に応じて６つの異常診断領域（第１〜第６の異常診断領域ＡＲＥＡ１〜ＡＲＥＡ６）が区分されて設定されている。
【００４９】
その結果、上記ステップ４０２で、現在のエンジン運転領域が第１の異常診断領域ＡＲＥＡ１であると判定された場合には、ステップ４０８に進み、第ｉ気筒＃ｉの第１の異常フラグＸarea1(#i) を「１」にセットする。
【００５０】
また、上記ステップ４０３で、現在のエンジン運転領域が第２の異常診断領域ＡＲＥＡ２であると判定された場合には、ステップ４０９に進み、第ｉ気筒＃ｉの第２の異常フラグＸarea2(#i) を「１」にセットする。
【００５１】
また、上記ステップ４０４で、現在のエンジン運転領域が第３の異常診断領域ＡＲＥＡ３であると判定された場合には、ステップ４１０に進み、第ｉ気筒＃ｉの第３の異常フラグＸarea3(#i) を「１」にセットする。
【００５２】
また、上記ステップ４０５で、現在のエンジン運転領域が第４の異常診断領域ＡＲＥＡ４であると判定された場合には、ステップ４１１に進み、第ｉ気筒＃ｉの第４の異常フラグＸarea4(#i) を「１」にセットする。
【００５３】
また、上記ステップ４０６で、現在のエンジン運転領域が第５の異常診断領域ＡＲＥＡ５であると判定された場合には、ステップ４１２に進み、第ｉ気筒＃ｉの第５の異常フラグＸarea5(#i) を「１」にセットする。
【００５４】
また、上記ステップ４０７で、現在のエンジン運転領域が第６の異常診断領域ＡＲＥＡ６であると判定された場合には、ステップ４１３に進み、第ｉ気筒＃ｉの第６の異常フラグＸarea6(#i) を「１」にセットする。
【００５５】
この後、図６のステップ１０６ａに進み、第ｉ気筒＃ｉの第１〜第６の異常フラグＸarea1(#i) 〜Ｘarea6(#i) が全て「１」にセットされているか否かによって、全ての異常診断領域ＡＲＥＡ１〜ＡＲＥＡ６において第ｉ気筒＃ｉの空燃比の気筒間偏差Ｘ(#i)が判定値αを越えたか否かを判定する。
【００５６】
その結果、第ｉ気筒＃ｉの第１〜第６の異常フラグＸarea1(#i) 〜Ｘarea6(#i) が全て「１」にセットされている（つまり全ての異常診断領域ＡＲＥＡ１〜ＡＲＥＡ６において第ｉ気筒＃ｉの空燃比の気筒間偏差Ｘ(#i)が判定値αを越えた）と判定された場合には、ステップ１０７に進み、第ｉ気筒＃ｉに異常が発生したと判定する。
【００５７】
ところで、例えば、エンジン１１の運転状態の変化によって空燃比センサ３７に対する排出ガスの当り具合等が変化して空燃比センサ３７の検出空燃比が実際の空燃比に対してずれる場合、そのずれが比較的大きくなる運転領域では空燃比センサ３７の出力に基づいた気筒別異常診断の診断精度が低下する可能性がある。
【００５８】
その点、本実施例２では、エンジン１１の運転状態に応じて区分された複数の異常診断領域毎に空燃比センサ３７の出力に基づいて各気筒の空燃比の気筒間偏差Ｘ(#i)を推定し、全ての異常診断領域において同一気筒の空燃比の気筒間偏差Ｘ(#i)が所定の判定値αを越えた場合に、その気筒に異常が発生したと判定するようにしたので、特定の運転領域（例えば、空燃比センサ３７の検出空燃比のずれが比較的大きくなる運転領域）で空燃比センサ３７の出力に基づいた異常診断精度が低下する場合でも、各気筒の異常の有無を精度良く判定することができ、気筒別異常診断の診断精度を向上させることができる。
【実施例３】
【００５９】
次に、図９を用いて本発明の実施例３を説明する。
前記実施例２では、全ての異常診断領域において同一気筒の空燃比の気筒間偏差Ｘ(#i)が所定の判定値αを越えた場合に、その気筒に異常が発生したと判定するようにしたが、本実施例３では、後述する図９のルーチンを実行することで、複数の異常診断領域のうちの所定数以上の異常診断領域において同一気筒の空燃比の気筒間偏差Ｘ(#i)が所定の判定値αを越えた場合に、その気筒に異常が発生したと判定するようにしている。
【００６０】
図９に示す気筒別異常診断メインルーチンでは、気筒間偏差推定実行条件が成立したときに、図４の気筒間偏差推定ルーチンを実行して、複数の異常診断領域毎に第ｉ気筒＃ｉの空燃比の気筒間偏差Ｘ(#i)を算出する（ステップ１０１〜１０４）。
【００６１】
この後、ステップ１０５に進み、図７の異常検出ルーチンを実行して、第ｉ気筒＃ｉの空燃比の気筒間偏差ΔＸ(#i)が判定値αよりも大きいと判定された場合に、今回の異常診断領域に対応する第ｉ気筒＃ｉの異常フラグＸarea(#i)を「１」にセットする。
【００６２】
この後、ステップ１０６ｂに進み、第ｉ気筒＃ｉの第１〜第６の異常フラグＸarea1(#i) 〜Ｘarea6(#i) のうちの所定数（例えば４つ）以上の異常フラグが「１」にセットされているか否かによって、第１〜第６の異常診断領域ＡＲＥＡ１〜ＡＲＥＡ６のうちの所定数（例えば４つ）以上の異常診断領域において第ｉ気筒＃ｉの空燃比の気筒間偏差Ｘ(#i)が判定値αを越えたか否かを判定する。
【００６３】
その結果、第ｉ気筒＃ｉの第１〜第６の異常フラグＸarea1(#i) 〜Ｘarea6(#i) のうちの所定数以上の異常フラグが「１」にセットされている（つまり第１〜第６の異常診断領域ＡＲＥＡ１〜ＡＲＥＡ６のうちの所定数以上の異常診断領域において第ｉ気筒＃ｉの空燃比の気筒間偏差Ｘ(#i)が判定値αを越えた）と判定された場合には、ステップ１０７に進み、第ｉ気筒＃ｉに異常が発生したと判定する。
【００６４】
以上説明した本実施例３では、エンジン１１の運転状態に応じて区分された複数の異常診断領域毎に空燃比センサ３７の出力に基づいて各気筒の空燃比の気筒間偏差Ｘ(#i)を推定し、所定数以上の異常診断領域において同一気筒の空燃比の気筒間偏差Ｘ(#i)が所定の判定値αを越えた場合に、その気筒に異常が発生したと判定するようにしたので、特定の運転領域（例えば、空燃比センサ３７の検出空燃比のずれが比較的大きくなる運転領域）で空燃比センサ３７の出力に基づいた異常診断精度が低下する場合でも、各気筒の異常の有無を精度良く判定することができ、気筒別異常診断の診断精度を向上させることができる。
【００６５】
尚、上記各実施例２，３では、気筒間偏差ΔＸ(#i)が判定値αを越えたときに異常フラグＸarea(#i)を「１」にセットするようにしたが、気筒間偏差ΔＸ(#i)が判定値αを越えた回数が所定回数よりも大きくなったときに異常フラグＸarea(#i)を「１」にセットするようにしても良い。
【００６６】
また、上記各実施例２，３では、空燃比ディザ制御を実行したときの空燃比センサ３７の出力に基づいて各気筒の空燃比の気筒間偏差を推定するようにしたが、空燃比ディザ制御を実行したときの空燃比センサ３７の出力に基づいて各気筒の空燃比を推定し、全ての異常診断領域又は所定数以上の異常診断領域において同一気筒の空燃比が所定の判定値を越えた場合に、その気筒に異常が発生したと判定するようにしても良い。
【００６７】
また、上記各実施例２，３では、空燃比ディザ制御を実行したときの空燃比センサ３７の出力に基づいて各気筒の空燃比や空燃比の気筒間偏差を推定するようにしたが、各気筒の空燃比や空燃比の気筒間偏差を算出する方法は適宜変更しても良い。例えば、排気合流部３６におけるガス交換に着目して、空燃比センサ３７の検出値を、排気合流部３６における各気筒の推定空燃比の履歴と空燃比センサ３７の検出値の履歴とにそれぞれ所定の重みを乗じて加算したものとしてモデル化し、該モデルを用いて各気筒の空燃比や空燃比の気筒間偏差を推定するようにしても良い。
【００６８】
また、上記各実施例２，３では、排気合流部に設置した１つの空燃比センサの出力に基づいて各気筒の空燃比や空燃比の気筒間偏差を推定するようにしたが、各気筒の排気マニホールドにそれぞれ空燃比センサを設置し、各気筒の空燃比センサの出力に基づいて各気筒の空燃比や空燃比の気筒間偏差を算出するようにしても良い。
【００６９】
また、上記各実施例１〜３では、本発明を４気筒エンジンに適用したが、２気筒エンジンや３気筒エンジン或は５気筒以上のエンジンに本発明を適用しても良い。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施例１におけるエンジン制御システム全体の概略構成図である。
【図２】（ａ）と（ｂ）は空燃比の気筒間偏差の算出方法を説明するための図である。
【図３】実施例１の気筒別異常診断メインルーチンの処理の流れを説明するフローチャートである。
【図４】実施例１の気筒間偏差推定ルーチンの処理の流れを説明するフローチャートである。
【図５】実施例１の異常検出ルーチンの処理の流れを説明するフローチャートである。
【図６】実施例２の気筒別異常診断メインルーチンの処理の流れを説明するフローチャートである。
【図７】実施例２の異常検出ルーチンの処理の流れを説明するフローチャートである。
【図８】異常診断領域のマップの一例を概念的に示す図である。
【図９】実施例３の気筒別異常診断メインルーチンの処理の流れを説明するフローチャートである。
【符号の説明】
【００７１】
１１…エンジン（内燃機関）、１２…吸気管、１５…スロットルバルブ、２０…燃料噴射弁、３５…排気マニホールド、３６…排気合流部、３７…空燃比センサ、４０…ＥＣＵ（気筒別空燃比情報検出手段，気筒別異常判定手段）
【図１】
2008121534.tif 000003
【図２】
2008121534.tif 000004
【図３】
2008121534.tif 000005
【図４】
2008121534.tif 000006
【図５】
2008121534.tif 000007
【図６】
2008121534.tif 000008
【図７】
2008121534.tif 000009
【図８】
2008121534.tif 000010
【図９】
2008121534.tif 000011