(57)【要約】【課題】エンジンの排気合流部に設置した空燃比センサの検出値に基づいて気筒別空燃比を推定し、その推定結果に基づいて行う気筒別異常診断の診断精度を向上させる。【解決手段】エンジン運転状態が所定の特定運転領域（空燃比センサの検出値に基づいた気筒別空燃比推定の推定精度が高くなる運転領域）であるか否かを判定し、エンジン運転状態が特定運転領域のときに、空燃比センサの検出値に基づいて第ｉ気筒＃ｉの空燃比を推定し、その推定空燃比ＡＦ(#i)と基準空燃比との偏差である気筒間偏差Δaf(#i)を算出する。この気筒間偏差Δaf(#i)が所定の判定値Ｆを越えた場合には、気筒間偏差Δaf(#i)が判定値Ｆを越えてから所定のディレイ時間が経過した時点で、異常カウンタＴ(#i)のカウント値をインクリメントする処理を開始し、異常カウンタＴ(#i)のカウント値が所定の異常判定値を越えた時点で、第ｉ気筒＃ｉの空燃比に異常有りと判定する。【選択図】図４
2008121632.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の複数の気筒の排出ガスが合流する排気合流部に、該排出ガスの空燃比を検出する空燃比センサを設置し、前記空燃比センサの検出値に基づいて各気筒の空燃比を推定する気筒別空燃比推定を行う気筒別空燃比推定手段と、前記気筒別空燃比推定の推定結果に基づいて各気筒の異常の有無を判定する気筒別異常診断を行う気筒別異常診断手段とを備えた内燃機関の気筒別異常診断装置において、
内燃機関の運転状態が前記気筒別空燃比推定の推定精度が高くなる特定運転領域であるか否かを判定する判定手段を備え、
前記気筒別異常診断手段は、前記判定手段により内燃機関の運転状態が前記特定運転領域であると判定されたときに前記気筒別異常診断を実行することを特徴とする内燃機関の気筒別異常診断装置。
【請求項２】
前記気筒別空燃比推定の推定結果に基づいて各気筒の空燃比の気筒間ばらつきを小さくするように各気筒の空燃比を制御する気筒別空燃比制御を行う気筒別空燃比制御手段を備え、
内燃機関の運転状態が前記特定運転領域以外の運転領域でも前記気筒別空燃比推定手段により前記気筒別空燃比推定を実行して前記気筒別空燃比制御手段により前記気筒別空燃比制御を実行することを特徴とする請求項１に記載の内燃機関の気筒別異常診断装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気合流部に設置した空燃比センサの検出値に基づいて各気筒の空燃比を推定し、その推定結果に基づいて各気筒の異常の有無を判定する内燃機関の気筒別異常診断装置に関する発明である。
【背景技術】
【０００２】
近年、内燃機関の空燃比制御精度を向上させるために、例えば、特許文献１（特許第２６８４０１１号公報）や特許文献２（特開２００５−２０７４０５号公報）に記載されているように、複数の気筒の排出ガスが合流する排気合流部に設置した１つの空燃比センサの検出値（排気合流部の空燃比）と各気筒の空燃比とを関連付けたモデルを用いて各気筒の空燃比を推定する気筒別空燃比推定を実施すると共に、その気筒別空燃比推定の推定結果に基づいて各気筒の空燃比の気筒間ばらつきが小さくなるように気筒毎に空燃比補正量を算出し、この気筒毎の空燃比補正量に基づいて各気筒の空燃比（燃料噴射量）を気筒毎に制御する気筒別空燃比制御を実施するようにしたものがある。
【０００３】
更に、上記特許文献１（特許第２６８４０１１号公報）では、気筒別空燃比推定の推定結果に基づいて算出した気筒毎の空燃比補正量が所定範囲内であるか否かを判定し、気筒毎の空燃比補正量が所定範囲を越えた場合に、その気筒に異常が発生したと判定する気筒別異常診断を実施するようにしている。
【特許文献１】特許第２６８４０１１号公報
【特許文献２】特開２００５−２０７４０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、排気合流部に設置した１つの空燃比センサの検出値に基づいて各気筒の空燃比を推定する気筒別空燃比推定では、内燃機関の運転領域によって気筒別空燃比推定の推定精度が変化し、例えば、各気筒の排出ガスの排出間隔が短くなる高回転領域や排出ガス量が少なくなる低負荷領域では、空燃比センサの検出値に基づいた気筒別空燃比推定の推定精度が低下する傾向がある。
【０００５】
しかし、上記特許文献１の技術では、内燃機関の運転領域の違いによる気筒別空燃比推定の推定精度の変化が全く考慮されていないため、気筒別空燃比推定の推定精度が低下する運転領域でも気筒別空燃比推定の推定結果を用いた気筒別異常診断を行う可能性があり、気筒別異常診断の診断精度が低下する可能性がある。
【０００６】
本発明は、このような事情を考慮してなされたものであり、従って本発明の目的は、気筒別空燃比推定の推定結果を用いた気筒別異常診断の診断精度を向上させることができる内燃機関の気筒別異常診断装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、請求項１に係る発明は、内燃機関の複数の気筒の排出ガスが合流する排気合流部に、該排出ガスの空燃比を検出する空燃比センサを設置し、この空燃比センサの検出値に基づいて各気筒の空燃比を推定する気筒別空燃比推定を行う気筒別空燃比推定手段と、この気筒別空燃比推定の推定結果に基づいて各気筒の異常の有無を判定する気筒別異常診断を行う気筒別異常診断手段とを備えた内燃機関の気筒別異常診断装置において、内燃機関の運転状態が気筒別空燃比推定の推定精度が高くなる特定運転領域であるか否かを判定手段により判定し、気筒別異常診断手段は、判定手段により内燃機関の運転状態が特定運転領域であると判定されたときに気筒別異常診断を実行するようにしたものである。
【０００８】
この構成では、内燃機関の運転状態が気筒別空燃比推定の推定精度が高くなる特定運転領域のときにのみ、気筒別空燃比推定の推定結果を用いた気筒別異常診断を実行して、気筒別空燃比推定の推定精度が低くなる運転領域では、気筒別空燃比推定の推定結果を用いた気筒別異常診断を行うことを防止することができるため、気筒別空燃比推定の推定結果を用いた気筒別異常診断の診断精度を向上させることができる。
【０００９】
この場合、請求項２のように、気筒別空燃比推定の推定結果に基づいて各気筒の空燃比の気筒間ばらつきを小さくするように各気筒の空燃比を制御する気筒別空燃比制御を行うシステムでは、内燃機関の運転状態が特定運転領域以外の運転領域でも気筒別空燃比推定を実行して気筒別空燃比制御を実行するようにしても良い。このようにすれば、特定運転領域で気筒別異常診断を実行して気筒別異常診断の診断精度を確保しながら、特定運転領域以外の運転領域でも気筒別空燃比制御を実行して各気筒の空燃比の気筒間ばらつきを小さくすることができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実施するための最良の形態を具体化した一実施例を説明する。
まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。
内燃機関である例えば直列４気筒のエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、モータ等によって開度調節されるスロットルバルブ１５とスロットル開度を検出するスロットル開度センサ１６とが設けられている。
【００１１】
更に、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７には、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。エンジン運転中は、燃料タンク２１内の燃料が燃料ポンプ２２によりデリバリパイプ２３に送られ、各気筒の噴射タイミング毎に各気筒の燃料噴射弁２０から燃料が噴射される。デリバリパイプ２３には、燃料圧力（燃圧）を検出する燃圧センサ２４が取り付けられている。
【００１２】
また、エンジン１１には、吸気バルブ２５と排気バルブ２６の開閉タイミングをそれぞれ可変する可変バルブタイミング機構２７，２８が設けられている。更に、エンジン１１には、吸気カム軸２９と排気カム軸３０の回転に同期してカム角信号を出力する吸気カム角センサ３１と排気カム角センサ３２が設けられていると共に、エンジン１１のクランク軸の回転に同期して所定クランク角毎（例えば３０℃Ａ毎）にクランク角信号のパルスを出力するクランク角センサ３３が設けられている。
【００１３】
一方、エンジン１１の各気筒の排気マニホールド３５が合流する排気合流部３６には、排出ガスの空燃比を検出する空燃比センサ３７が設置され、この空燃比センサ３７の下流側に排出ガス中のＣＯ，ＨＣ，ＮＯｘ等を浄化する三元触媒等の触媒３８が設けられている。
【００１４】
上述した空燃比センサ３７等の各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）４０に入力される。このＥＣＵ４０は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、エンジン運転状態に応じて各気筒の燃料噴射弁２０の燃料噴射量や点火時期を制御する。
【００１５】
また、ＥＣＵ４０は、図２の気筒別空燃比制御ルーチンを実行することで、エンジン運転中に後述する気筒別空燃比推定モデルを用いて空燃比センサ３７の検出値（排気合流部３６を流れる排出ガスの実空燃比）に基づいて各気筒の空燃比を推定する気筒別空燃比推定を実施し、全気筒の推定空燃比の平均値を算出して、その平均値を基準空燃比（全気筒の目標空燃比）に設定すると共に、各気筒の推定空燃比と基準空燃比との偏差を各気筒毎に算出して、その偏差が小さくなるように各気筒の空燃比補正量（各気筒の燃料噴射量の補正量）を算出し、その算出結果に基づいて各気筒の燃料噴射量を補正することで、各気筒に供給する混合気の空燃比を各気筒毎に補正して各気筒の空燃比の気筒間ばらつきを小さくするように制御する気筒別空燃比制御を実施する。
【００１６】
ここで、空燃比センサ３７の検出値（排気合流部３６を流れる排出ガスの実空燃比）に基づいて各気筒の空燃比を推定するモデル（以下「気筒別空燃比推定モデル」という）の具体例を説明する。
【００１７】
排気合流部３６におけるガス交換に着目して、空燃比センサ３７の検出値を、排気合流部３６における各気筒の推定空燃比の履歴と空燃比センサ３７の検出値の履歴とにそれぞれ所定の重みを乗じて加算したものとしてモデル化し、該モデルを用いて各気筒の空燃比を推定するようにしている。この際、オブザーバとしてはカルマンフィルタを用いる。
【００１８】
より具体的には、排気合流部３６におけるガス交換のモデルを次の（１）式にて近似する。
ｙs(t)＝ｋ1 ×ｕ(t-1) ＋ｋ2 ×ｕ(t-2) −ｋ3 ×ｙs(t-1)−ｋ4 ×ｙs(t-2)
……（１）
ここで、ｙs は空燃比センサ３７の検出値、ｕは排気合流部３６に流入するガスの空燃比、ｋ1 〜ｋ4 は定数である。
【００１９】
排気系では、排気合流部３６におけるガス流入及び混合の一次遅れ要素と、空燃比センサ３７の応答遅れによる一次遅れ要素とが存在する。そこで、上記（１）式では、これらの一次遅れ要素を考慮して過去２回分の履歴を参照することとしている。
【００２０】
上記（１）式を状態空間モデルに変換すると、次の（２ａ）、（２ｂ）式が導き出される。
Ｘ(t+1) ＝Ａ・Ｘ(t) ＋Ｂ・ｕ(t) ＋Ｗ(t)       ……（２ａ）
Ｙ(t) ＝Ｃ・Ｘ(t) ＋Ｄ・ｕ(t)                 ……（２ｂ）
ここで、Ａ，Ｂ，Ｃ，Ｄはモデルのパラメータ、Ｙは空燃比センサ３７の検出値、Ｘは状態変数としての各気筒の推定空燃比、Ｗはノイズである。
【００２１】
更に、上記（２ａ）、（２ｂ）式によりカルマンフィルタを設計すると、次の（３）式が得られる。
Ｘ＾(k+1｜k)＝Ａ・Ｘ＾(k｜k-1)＋Ｋ｛Ｙ(k) −Ｃ・Ａ・Ｘ＾(k｜k-1)｝  ……（３）  ここで、Ｘ＾（エックスハット）は各気筒の推定空燃比、Ｋはカルマンゲインである。Ｘ＾(k+1｜k)の意味は、時間(k) の推定値により次の時間(k+1) の推定値を求めることを表す。
【００２２】
以上のようにして、気筒別空燃比推定モデルをカルマンフィルタ型オブザーバにて構成することにより、燃焼サイクルの進行に伴って各気筒の空燃比を順次推定することができる。
【００２３】
ところで、排気合流部３６に設置した１つの空燃比センサ３７の検出値に基づいて各気筒の空燃比を推定する気筒別空燃比推定では、エンジン１１の運転領域によって気筒別空燃比推定の推定精度が変化する。例えば、各気筒の排出ガスの排出間隔が長くなる低回転領域や排出ガス量が多くなる高負荷領域では、空燃比センサ３７の検出値に基づいた気筒別空燃比推定の推定精度が高くなる傾向があり、各気筒の排出ガスの排出間隔が短くなる高回転領域や排出ガス量が少なくなる低負荷領域では、空燃比センサ３７の検出値に基づいた気筒別空燃比推定の推定精度が低下する傾向がある。このため、気筒別空燃比推定の推定精度が低下する運転領域で、気筒別空燃比推定の推定結果に基づいて各気筒の異常の有無を判定する気筒別異常診断を行うと、気筒別異常診断の診断精度が低下する可能性がある。
【００２４】
そこで、本実施例では、ＥＣＵ４０が後述する図３の気筒別異常診断ルーチンを実行することで、気筒別空燃比推定の推定結果に基づいて各気筒の異常の有無を判定する気筒別異常診断を次のようにして行う。まず、エンジン運転状態が所定の特定運転領域であるか否かを判定する。ここで、特定運転領域は、空燃比センサ３７の検出値に基づいた気筒別空燃比推定の推定精度が高くなる運転領域であり、例えば、低回転且つ高負荷領域に設定されている。尚、特定運転領域は、適宜変更しても良く、例えば、低回転領域に設定したり、或は、高負荷領域に設定しても良く、要は、空燃比センサ３７の検出値に基づいた気筒別空燃比推定の推定精度が適度（気筒別異常診断の診断精度を確保できる程度）に高くなる運転領域に設定すれば良い。
【００２５】
そして、エンジン運転状態が特定運転領域であると判定されたときに気筒別空燃比推定の推定結果を用いた気筒別異常診断を実行する。これにより、気筒別空燃比推定の推定精度が高くなる特定運転領域のときにのみ、気筒別空燃比推定の推定結果を用いた気筒別異常診断を実行して、気筒別空燃比推定の推定精度が低くなる運転領域で気筒別空燃比推定の推定結果を用いた気筒別異常診断を行うことを防止する。
【００２６】
尚、図２の気筒別空燃比制御ルーチンでは、エンジン運転状態が特定運転領域以外の運転領域でも気筒別空燃比推定を実行して気筒別空燃比制御を実行するようにしている。
以上説明した気筒別空燃比制御と気筒別異常診断は、ＥＣＵ４０によって図２及び図３の各ルーチンに従って実行される。以下、各ルーチンの処理内容を説明する。
【００２７】
［気筒別空燃比制御ルーチン］
図２に示す気筒別空燃比制御ルーチンは、ＥＣＵ４０の電源オン中に所定周期（例えば３０℃Ａ周期）で実行され、特許請求の範囲でいう気筒別空燃比制御手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ１０１で、空燃比センサ３７の出力（空燃比検出値）を読み込む。この後、ステップ１０２に進み、前記気筒別空燃比推定モデルを用いて今回の空燃比推定対象となる気筒の空燃比を空燃比センサ３７の検出値に基づいて推定する。このステップ１０２の処理が特許請求の範囲でいう気筒別空燃比推定手段としての役割を果たす。
【００２８】
この後、ステップ１０３に進み、全気筒の推定空燃比の平均値を算出して、その平均値を基準空燃比（全気筒の目標空燃比）に設定する。この後、ステップ１０４に進み、各気筒の推定空燃比と基準空燃比との偏差を算出して、その偏差が小さくなるように気筒別空燃比補正量（各気筒の燃料噴射量の補正量）を算出する。
【００２９】
この後、ステップ１０５に進み、各気筒の気筒別空燃比補正量に基づいて各気筒の燃料噴射量を補正することで、各気筒に供給する混合気の空燃比を各気筒毎に補正して各気筒の空燃比の気筒間ばらつきを小さくするように制御する気筒別空燃比制御を実行する。
【００３０】
［気筒別異常診断ルーチン］
図３に示す気筒別異常診断ルーチンは、ＥＣＵ４０の電源オン中に所定周期（例えば３０℃Ａ周期）で実行され、特許請求の範囲でいう気筒別異常診断手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ２０１で、エンジン回転速度、エンジン負荷（吸入空気量や吸気管圧力）等のエンジン運転状態を読み込んだ後、ステップ２０２に進み、現在のエンジン運転状態が所定の特定運転領域であるか否かを判定する。ここで、特定運転領域は、空燃比センサ３７の検出値に基づいた気筒別空燃比推定の推定精度が高くなる運転領域であり、例えば、低回転且つ高負荷領域に設定されている。このステップ２０２の処理が特許請求の範囲でいう判定手段としての役割を果たす。
【００３１】
このステップ２０２で、現在のエンジン運転状態が特定運転領域ではないと判定された場合には、気筒別空燃比推定の推定精度が低下する運転領域であるため、気筒別空燃比推定の推定結果を用いた気筒別異常診断の診断精度が低下する可能性があると判断して、ステップ２０３以降の気筒別異常診断に関する処理を実行することなく、本ルーチンを終了する。
【００３２】
一方、上記ステップ２０２で、現在のエンジン運転状態が特定運転領域であると判定された場合には、気筒別空燃比推定の推定精度が高くなる運転領域であるため、気筒別空燃比推定の推定結果を用いた気筒別異常診断の診断精度を確保できると判断して、ステップ２０３以降の気筒別異常診断に関する処理を次のようにして実行する。
【００３３】
まず、ステップ２０３で、ダイアグ実行フラグを「１」にセットした後、ステップ２０４に進み、前記気筒別空燃比推定モデルを用いて今回の対象となる第ｉ気筒＃ｉ（４気筒エンジンの場合はｉ＝１〜４）の空燃比を空燃比センサ３７の検出値に基づいて推定する。尚、前記図２の気筒別空燃比制御ルーチンで推定した第ｉ気筒＃ｉの空燃比を読み込むようにしても良い。このステップ２０４の処理が特許請求の範囲でいう気筒別空燃比推定手段としての役割を果たす。
【００３４】
この後、ステップ２０５に進み、第ｉ気筒＃ｉの推定空燃比ＡＦ(#i)と基準空燃比（全気筒の推定空燃比の平均値又は制御目標値）との偏差を算出することで、第ｉ気筒＃ｉの空燃比の気筒間偏差Δaf(#i)を算出した後、ステップ２０６に進み、第ｉ気筒＃ｉの空燃比の気筒間偏差Δaf(#i)が所定の判定値Ｆよりも大きいか否かを判定する。
【００３５】
その結果、第ｉ気筒＃ｉの空燃比の気筒間偏差Δaf(#i)が判定値Ｆ以下であると判定された場合には、ステップ２１２に進み、第ｉ気筒＃ｉの空燃比の異常無し（正常）と判定して、第ｉ気筒＃ｉの正常フラグＸafnorm(#i)を「１」にセットした後、本ルーチンを終了する。
【００３６】
これに対して、上記ステップ２０６で、第ｉ気筒＃ｉの空燃比の気筒間偏差Δaf(#i)が判定値Ｆよりも大きいと判定された場合には、ステップ２０７に進み、第ｉ気筒＃ｉの空燃比の気筒間偏差Δaf(#i)が判定値Ｆよりも大きくなってからの経過時間を計測する第ｉ気筒＃ｉのディレイカウンタＤ(#i)のカウント値を「１」だけインクリメントした後、ステップ２０８に進み、ディレイカウンタＤ(#i)のカウント値が所定のディレイ値を越えたか否かを判定することで、気筒間偏差Δaf(#i)が判定値Ｆよりも大きくなってから所定のディレイ時間が経過したか否かを判定する。
【００３７】
このステップ２０８で、ディレイカウンタＤ(#i)のカウント値が所定のディレイ値を越えた（気筒間偏差Δaf(#i)が判定値Ｆよりも大きくなってから所定のディレイ時間が経過した）と判定された時点で、ステップ２０９に進み、第ｉ気筒＃ｉの異常カウンタＴ(#i)のカウント値を「１」だけインクリメントする処理を開始した後、ステップ２１０に進み、異常カウンタＴ(#i)のカウント値が所定の異常判定値を越えたか否かを判定する。
【００３８】
このステップ２１０で、異常カウンタＴ(#i)のカウント値が異常判定値よりも小さいと判定された場合には、そのまま本ルーチンを終了して、エンジン運転状態が特定運転領域であり、且つ、気筒間偏差Δaf(#i)が判定値Ｆよりも大きいときに、異常カウンタＴ(#i)のカウント値をインクリメントする処理（ステップ２０１〜２０９）を繰り返す。尚、エンジン運転状態が特定運転領域ではないときや、気筒間偏差Δaf(#i)が判定値Ｆ以下のときには、異常カウンタＴ(#i)のカウント値をインクリメントせずに現在のカウント値で保持（ホールド）する。
【００３９】
その後、ステップ２１０で、異常カウンタＴ(#i)のカウント値が異常判定値を越えたと判定された場合には、ステップ２１１に進み、第ｉ気筒＃ｉの空燃比に異常有りと判定して、第ｉ気筒＃ｉの異常フラグＸaffail(#i)を「１」にセットし、運転席のインストルメントパネルに設けられた警告ランプ（図示せず）を点灯したり、或は、運転席のインストルメントパネルの警告表示部（図示せず）に警告表示して運転者に警告すると共に、その異常情報（異常コード等）をＥＣＵ４０のバックアップＲＡＭ（図示せず）等の書き換え可能な不揮発性メモリに記憶して、本ルーチンを終了する。
【００４０】
一方、上記ステップ２１０で異常カウンタＴ(#i)のカウント値が異常判定値を越えたと判定される前に、上記ステップ２０６で気筒間偏差Δaf(#i)が判定値Ｆ以下であると判定された場合には、ステップ２１２に進み、第ｉ気筒＃ｉの空燃比の異常無し（正常）と判定して、第ｉ気筒＃ｉの正常フラグＸafnorm(#i)を「１」にセットした後、本ルーチンを終了する。
【００４１】
以上説明した本実施例の気筒別異常診断の実行例を、図４のタイムチャートを用いて説明する。図４に示すように、エンジン運転状態が所定の特定運転領域（気筒別空燃比推定の推定精度が高くなる運転領域であり、例えば、低回転且つ高負荷領域）となった時点ｔ1 で、ダイアグ実行フラグを「１」にセットして気筒別異常診断を開始する。
【００４２】
まず、空燃比センサ３７の検出値に基づいて第ｉ気筒＃ｉの空燃比を推定し、その推定空燃比ＡＦ(#i)と基準空燃比との偏差である気筒間偏差Δaf(#i)を算出する。この気筒間偏差Δaf(#i)が所定の判定値Ｆを越えた時点ｔ2 で、ディレイカウンタＤ(#i)のカウント値をインクリメントする処理を開始し、このディレイカウンタＤ(#i)のカウント値が所定のディレイ値を越えた時点ｔ3 （つまり気筒間偏差Δaf(#i)が判定値Ｆを越えてから所定のディレイ時間が経過した時点）で、異常カウンタＴ(#i)のカウント値をインクリメントする処理を開始する。
【００４３】
その後、エンジン運転状態が特定運転領域以外の運転領域となる期間（特定運転領域以外の運転領域となった時点ｔ4 から再び特定運転領域となる時点ｔ5 までの期間）は、異常カウンタＴ(#i)のカウント値をインクリメントせずに保持（ホールド）し、エンジン運転状態が再び特定運転領域となった時点ｔ5 で、気筒間偏差Δaf(#i)が判定値Ｆを越えていれば、異常カウンタＴ(#i)のカウント値をインクリメントする処理を再開する。
【００４４】
その後、異常カウンタＴ(#i)のカウント値が所定の異常判定値を越えた時点ｔ6 で、第ｉ気筒＃ｉの空燃比に異常有りと判定して、第ｉ気筒＃ｉの異常フラグＸaffail(#i)を「１」にセットすると共に、ダイアグ終了フラグを「１」にセットして、気筒別異常診断を終了する。
【００４５】
以上説明した本実施例では、エンジン運転状態が所定の特定運転領域（気筒別空燃比推定の推定精度が高くなる運転領域）であるか否かを判定し、エンジン運転状態が特定運転領域であると判定されたときに気筒別空燃比推定の推定結果を用いた気筒別異常診断を実行する。これにより、気筒別空燃比推定の推定精度が高くなる特定運転領域のときにのみ、気筒別空燃比推定の推定結果を用いた気筒別異常診断を実行して、気筒別空燃比推定の推定精度が低くなる運転領域で気筒別空燃比推定の推定結果を用いた気筒別異常診断を行うことを防止することができるため、気筒別空燃比推定の推定結果を用いた気筒別異常診断の診断精度を向上させることができる。
【００４６】
また、本実施例では、エンジン運転状態が特定運転領域以外の運転領域でも気筒別空燃比推定を実行して気筒別空燃比制御を実行するようにしたので、特定運転領域で気筒別異常診断を実行して気筒別異常診断の診断精度を確保しながら、特定運転領域以外の運転領域でも気筒別空燃比制御を実行して各気筒の空燃比の気筒間ばらつきを小さくすることができる。
【００４７】
尚、気筒別空燃比推定の推定方法や気筒別異常診断の診断方法は、上記実施例で説明した方法に限定されず、適宜変更しても良く、例えば、各気筒毎に空燃比を強制的に変化させる空燃比ディザ制御を実行したときの空燃比センサ３７の出力に基づいて各気筒の空燃比を推定するようにしても良い。
【００４８】
また、上記実施例では、本発明を４気筒エンジンに適用したが、２気筒エンジンや３気筒エンジン或は５気筒以上のエンジンに本発明を適用しても良い。
【図面の簡単な説明】
【００４９】
【図１】本発明の一実施例におけるエンジン制御システム全体の概略構成図である。
【図２】気筒別空燃比制御ルーチンの処理の流れを説明するフローチャートである。
【図３】気筒別異常診断ルーチンの処理の流れを説明するフローチャートである。
【図４】本実施例の気筒別異常診断の実行例を説明するタイムチャートである。
【符号の説明】
【００５０】
１１…エンジン（内燃機関）、１２…吸気管、１５…スロットルバルブ、２０…燃料噴射弁、３５…排気マニホールド、３６…排気合流部、３７…空燃比センサ、４０…ＥＣＵ（気筒別空燃比推定手段，気筒別異常診断手段，判定手段，気筒別空燃比制御手段）
【図１】
2008121632.tif 000003
【図２】
2008121632.tif 000004
【図３】
2008121632.tif 000005
【図４】
2008121632.tif 000006