(57)【要約】【課題】エンジンの排気合流部に設置した空燃比センサの出力に基づいて各気筒の空燃比（気筒別空燃比）を推定するシステムにおいて、気筒別空燃比の推定精度を高めて、気筒別空燃比制御の制御精度や気筒別空燃比異常診断の診断精度を向上させる。【解決手段】エンジン運転状態（例えばエンジン回転速度や負荷等）に応じて各気筒の推定空燃比を補正することで、エンジン運転状態の変化による各気筒の推定空燃比の推定誤差を精度良く補正した後、更に、空燃比センサ３７の応答性に応じて各気筒の推定空燃比を補正することで、空燃比センサ３７の応答性の低下による各気筒の推定空燃比の推定誤差を精度良く補正する。これらの補正によって推定精度を高めた各気筒の推定空燃比を用いて気筒別空燃比制御や気筒別空燃比異常診断を実施することで、気筒別空燃比制御の制御精度や気筒別異常診断の診断精度を向上させる。【選択図】図１
2008144639.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)を空燃比センサ３７の検出値に基づいて推定する。このステップ１０４の処理が特許請求の範囲でいう気筒別空燃比推定手段としての役割を果たす。
【００３２】
この後、ステップ１０５に進み、エンジン運転状態（例えばエンジン回転速度や負荷等）に応じて各気筒の推定空燃比ＡＦ(#i)を補正する。
【００３３】
具体的には、図６に示す補正係数ＫＣのマップを参照して、エンジン回転速度ＮＥと吸気管圧力ＰＭ（又は吸入空気量）とに応じた第ｉ気筒＃ｉの補正係数ＫＣ(#i)を算出すると共に、図７に示す補正量ＦＣのマップを参照して、エンジン回転速度ＮＥと吸気管圧力ＰＭ（又は吸入空気量）とに応じた第ｉ気筒＃ｉの補正量ＦＣ(#i)を算出する。これらの補正係数ＫＣ(#i)のマップと補正量ＦＣ(#i)のマップは、予め試験データや設計データ等に基づいて各気筒毎に設定されている。
【００３４】
そして、第ｉ気筒＃ｉの推定空燃比ＡＦ(#i)に補正係数ＫＣ(#i)を乗算すると共に補正量ＦＣ(#i)を加算することで、エンジン運転状態の変化による推定空燃比ＡＦ(#i)の推定誤差を補正する。
ＡＦ(#i)＝ＡＦ(#i)×ＫＣ(#i)＋ＦＣ(#i)
【００３５】
尚、補正係数ＫＣ(#i)だけで推定空燃比ＡＦ(#i)の推定誤差をある程度補正できる場合には、補正係数ＫＣ(#i)のみを算出し、推定空燃比ＡＦ(#i)に補正係数ＫＣ(#i)を乗算して推定空燃比ＡＦ(#i)を補正するようにしても良い。
ＡＦ(#i)＝ＡＦ(#i)×ＫＣ(#i)
【００３６】
また、補正量ＦＣ(#i)だけで推定空燃比ＡＦ(#i)の推定誤差をある程度補正できる場合には、補正量ＦＣ(#i)のみを算出し、推定空燃比ＡＦ(#i)に補正量ＦＣ(#i)を加算して推定空燃比ＡＦ(#i)を補正するようにしても良い。
ＡＦ(#i)＝ＡＦ(#i)＋ＦＣ(#i)
この後、ステップ１０６に進み、空燃比センサ３７の応答性に応じて各気筒の推定空燃比ＡＦ(#i)を補正する。
【００３７】
具体的には、後述する図５のセンサ異常診断ルーチンで算出した空燃比センサ３７の応答性指標Ｒs に応じた補正係数をマップ等により算出し、この補正係数を用いて各気筒の推定空燃比ＡＦ(#i)を補正することで、空燃比センサ３７の応答性の低下による推定空燃比ＡＦ(#i)の推定誤差を補正する。この際、各気筒の推定空燃比ＡＦ(#i)を一律に同一の補正係数で補正するようにしても良いが、各気筒の推定空燃比ＡＦ(#i)をそれぞれ気筒毎に重みを乗じた補正係数で補正するようにしても良い。尚、センサ異常診断ルーチンとは別に、空燃比センサ３７の応答性を検出するための専用の処理を実行して、空燃比センサ３７の応答性指標Ｒs を求めるようにしても良い。
これらのステップ１０５と１０６の処理が特許請求の範囲でいう気筒別推定空燃比補正手段としての役割を果たす。
【００３８】
この後、ステップ１０７に進み、エンジン運転状態と空燃比センサ３７の応答性に応じて補正した第ｉ気筒＃ｉの推定空燃比ＡＦ(#i)と基準空燃比（全気筒の推定空燃比の平均値又は制御目標値）との偏差を算出することで、第ｉ気筒＃ｉの空燃比の気筒間ばらつきΔＡＦ(#i)を算出する。
【００３９】
この後、ステップ１０８に進み、各気筒の空燃比の気筒間ばらつきΔＡＦ(#i)が小さくなるように各気筒の空燃比補正量（各気筒の燃料噴射量の補正量）を算出した後、ステップ１０９に進み、各気筒の空燃比補正量に基づいて各気筒の燃料噴射量を補正することで、各気筒に供給する混合気の空燃比を各気筒毎に補正して各気筒の空燃比の気筒間ばらつきを小さくするように制御する気筒別空燃比制御を実施する。
【００４０】
［気筒別空燃比異常診断ルーチン］
図３及び図４に示す気筒別空燃比異常診断ルーチンは、ＥＣＵ３５の電源オン中に所定周期で実行され、特許請求の範囲でいう気筒別空燃比異常診断手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ２０１で、エンジン回転速度、負荷（吸気管圧力や吸入空気量）等のエンジン運転状態を読み込んだ後、ステップ２０２に進み、所定の気筒別空燃比異常診断実行条件が成立しているか否かを判定する。その結果、気筒別空燃比異常診断実行条件が成立していないと判定された場合には、以降の処理を行うことなく、本ルーチンを終了する。
【００４１】
これに対して、上記ステップ２０２で、気筒別空燃比異常診断実行条件が成立していると判定された場合には、ステップ２０３に進み、ダイアグ実行フラグを「１」にセットした後、次のステップ２０４〜２０８で、前記図２のステップ１０３〜１０７と同様の処理を実行することで、空燃比センサ３７の検出値に基づいて推定空燃比ＡＦ(#i)を求め、この推定空燃比ＡＦ(#i)をエンジン運転状態と空燃比センサ３７の応答性に応じて補正し、補正した推定空燃比ＡＦ(#i)と基準空燃比との偏差を算出することで、空燃比の気筒間ばらつきΔＡＦ(#i)を算出する。尚、前記図２のステップ１０７で算出した空燃比の気筒間ばらつきΔＡＦ(#i)を読み込むようにしても良い。
【００４２】
この後、図４のステップ２０９に進み、第ｉ気筒＃ｉの空燃比の気筒間ばらつきΔＡＦ(#i)が所定の判定値Ｆよりも大きいか否かを判定する。その結果、第ｉ気筒＃ｉの空燃比の気筒間ばらつきΔＡＦ(#i)が判定値Ｆ以下であると判定された場合には、ステップ２１５に進み、第ｉ気筒＃ｉの空燃比の異常無し（正常）と判定して、第ｉ気筒＃ｉの正常フラグＸafnorm(#i)を「１」にセットした後、本ルーチンを終了する。
【００４３】
これに対して、上記ステップ２０９で、第ｉ気筒＃ｉの空燃比の気筒間ばらつきΔＡＦ(#i)が判定値Ｆよりも大きいと判定された場合には、ステップ２１０に進み、第ｉ気筒＃ｉの空燃比の気筒間ばらつきΔＡＦ(#i)が判定値Ｆよりも大きくなってからの経過時間を計測する第ｉ気筒＃ｉのディレイカウンタＤ(#i)のカウント値を「１」だけインクリメントした後、ステップ２１１に進み、ディレイカウンタＤ(#i)のカウント値が所定のディレイ値を越えたか否かを判定することで、気筒間ばらつきΔＡＦ(#i)が判定値Ｆよりも大きくなってから所定のディレイ時間が経過したか否かを判定する。
【００４４】
このステップ２１１で、ディレイカウンタＤ(#i)のカウント値が所定のディレイ値を越えた（つまり気筒間ばらつきΔＡＦ(#i)が判定値Ｆよりも大きくなってから所定のディレイ時間が経過した）と判定された時点で、ステップ２１２に進み、第ｉ気筒＃ｉの異常カウンタＴ(#i)のカウント値を「１」だけインクリメントする処理を開始した後、ステップ２１３に進み、異常カウンタＴ(#i)のカウント値が所定の異常判定値を越えたか否かを判定する。
【００４５】
このステップ２１３で、異常カウンタＴ(#i)のカウント値が異常判定値よりも小さいと判定された場合には、そのまま本ルーチンを終了して、気筒間ばらつきΔＡＦ(#i)が判定値Ｆよりも大きいときに、異常カウンタＴ(#i)のカウント値をインクリメントする処理（ステップ２０１〜２１２）を繰り返す。尚、気筒間ばらつきΔＡＦ(#i)が判定値Ｆ以下のときには、異常カウンタＴ(#i)のカウント値をインクリメントせずに現在のカウント値で保持（ホールド）する。
【００４６】
その後、ステップ２１３で、異常カウンタＴ(#i)のカウント値が異常判定値を越えたと判定された場合には、ステップ２１４に進み、第ｉ気筒＃ｉの空燃比に異常有りと判定して、第ｉ気筒＃ｉの異常フラグＸaffail(#i)を「１」にセットすると共に、第ｉ気筒＃ｉの正常フラグＸafnorm(#i)を「０」に維持するか又はリセットし、運転席のインストルメントパネルに設けられた警告ランプ（図示せず）を点灯したり、或は、運転席のインストルメントパネルの警告表示部（図示せず）に警告表示して運転者に警告すると共に、その異常情報（異常コード等）をＥＣＵ４０のバックアップＲＡＭ（図示せず）等の書き換え可能な不揮発性メモリに記憶して、本ルーチンを終了する。
【００４７】
［センサ異常診断ルーチン］
図５に示すセンサ異常診断ルーチンは、ＥＣＵ３５の電源オン中に所定周期で実行される。本ルーチンが起動されると、まず、ステップ３０１で、所定のセンサ異常診断実行条件が成立しているか否かを判定する。その結果、センサ異常診断実行条件が成立していないと判定された場合には、以降の処理を行うことなく、本ルーチンを終了する。
【００４８】
これに対して、上記ステップ３０１で、センサ異常診断実行条件が成立していると判定された場合には、ステップ３０２に進み、燃料カットが開始されたか否かを判定し、燃料カットが開始されたと判定された時点で、ステップ３０３に進み、燃料カット開始時の空燃比センサ３７の出力Ｉ1 を読み込んでＥＣＵ４０のメモリ等に記憶すると共に、タイマを作動させて燃料カット開始からの経過時間を計測する。
【００４９】
この後、ステップ３０４に進み、空燃比センサ３７の出力が所定値Ｉ2 まで変化したか否かを判定し、空燃比センサ３７の出力が所定値Ｉ2 まで変化したと判定された時点で、ステップ３０５に進み、タイマのカウント値に基づいて燃料カット開始から空燃比センサ３７の出力が所定値Ｉ2 に変化するまでに要した応答時間Ｔ1 を計測する。
【００５０】
この後、ステップ３０６に進み、空燃比センサ３７の応答時間Ｔ1 を応答性指標Ｒs に変換する。この場合、例えば、応答時間Ｔ1 の逆数を応答性指標Ｒs とすることで、空燃比センサ３７の応答性が高い（つまり応答時間Ｔ1 が短い）ほど応答性指標Ｒs が大きくなるように設定する。この応答性指標Ｒs は、前述した図２の気筒別空燃比制御ルーチンや前述した図４及び図５の気筒別空燃比異常診断ルーチンで空燃比センサ３７の応答性に応じて推定空燃比を補正する際に用いられる。このステップ３０６の処理が特許請求の範囲でいうセンサ応答性検出手段としての役割を果たす。
【００５１】
この後、ステップ３０７に進み、空燃比センサ３７の出力変化率ΔＩを次式より算出する。
ΔＩ＝（Ｉ2 −Ｉ1 ）／Ｔ1
尚、この出力変化率ΔＩを応答性指標Ｒs として用いるようにしても良い。
この後、ステップ３０８に進み、空燃比センサ３７の出力変化率ΔＩが所定の異常判定値Ｉfcよりも小さいか否かを判定する。
【００５２】
その結果、空燃比センサ３７の出力変化率ΔＩが異常判定値Ｉfcよりも小さいと判定された場合には、空燃比センサ３７の異常有りと判定して、ステップ３０９に進み、空燃比センサ３７の異常フラグを「１」にセットし、運転席のインストルメントパネルに設けられた警告ランプ（図示せず）を点灯したり、或は、運転席のインストルメントパネルの警告表示部（図示せず）に警告表示して運転者に警告すると共に、その異常情報（異常コード等）をＥＣＵ４０のバックアップＲＡＭ（図示せず）等の書き換え可能な不揮発性メモリに記憶して、本ルーチンを終了する。
【００５３】
これに対して、上記ステップ３０８で、空燃比センサ３７の出力変化率ΔＩが異常判定値Ｉfc以上であると判定された場合には、空燃比センサ３７の異常無し（正常）と判定して、本ルーチンを終了する。
【００５４】
以上説明した本実施例の気筒別空燃比異常診断の実行例を、図８のタイムチャートを用いて説明する。図８に示すように、気筒別空燃比異常診断実行条件が成立した時点ｔ1 で、ダイアグ実行フラグを「１」にセットして気筒別空燃比異常診断を開始する。
【００５５】
まず、空燃比センサ３７の検出値に基づいて第ｉ気筒＃ｉの推定空燃比ＡＦ(#i)を求め、この推定空燃比ＡＦ(#i)をエンジン運転状態（エンジン回転速度ＮＥと吸気管圧力ＰＭ）と空燃比センサ３７の応答性に応じて補正し、補正後の推定空燃比ＡＦ(#i)と基準空燃比との偏差を算出することで、空燃比の気筒間ばらつきΔＡＦ(#i)を算出する。
【００５６】
この気筒間ばらつきΔＡＦ(#i)が所定の判定値Ｆを越えた時点ｔ2 で、ディレイカウンタＤ(#i)のカウント値をインクリメントする処理を開始し、このディレイカウンタＤ(#i)のカウント値が所定のディレイ値を越えた時点ｔ3 （つまり気筒間ばらつきΔＡＦ(#i)が判定値Ｆを越えてから所定のディレイ時間が経過した時点）で、異常カウンタＴ(#i)のカウント値をインクリメントする処理を開始する。
【００５７】
その後、異常カウンタＴ(#i)のカウント値が所定の異常判定値を越えた時点ｔ4 で、第ｉ気筒＃ｉの空燃比に異常有りと判定して、第ｉ気筒＃ｉの異常フラグＸaffail(#i)を「１」にセットすると共に、ダイアグ終了フラグを「１」にセットして、気筒別異常診断を終了する。
【００５８】
以上説明した本実施例では、空燃比センサ３７の検出値に基づいて各気筒の空燃比を推定し、エンジン運転状態（例えばエンジン回転速度や負荷等）に応じて各気筒の推定空燃比を補正するようにしたので、エンジン運転状態の変化による各気筒の推定空燃比の推定誤差を精度良く補正することができ、更に、空燃比センサ３７の応答性に応じて各気筒の推定空燃比を補正するようにしたので、空燃比センサ３７の応答性の低下による各気筒の推定空燃比の推定誤差を精度良く補正することができ、エンジン運転状態や空燃比センサ３７の応答性に左右されずに各気筒の推定空燃比を精度良く求めることができる。
【００５９】
そして、これらの補正によって推定精度を高めた各気筒の推定空燃比を用いて気筒別空燃比制御や気筒別空燃比異常診断を実施するようにしたので、気筒別空燃比制御の制御精度や気筒別異常診断の診断精度を向上させることができる。
【００６０】
尚、上記実施例では、エンジン運転状態に応じて各気筒の推定空燃比を補正し、更に、空燃比センサ３７の応答性に応じて各気筒の推定空燃比を補正するようにしたが、空燃比センサ３７の応答性の影響が小さい場合（例えば空燃比センサ３７の応答性がほとんど低下していない場合）は、空燃比センサ３７の応答性に応じた補正を省略するようにしても良い。また、エンジン運転状態に応じて各気筒の推定空燃比を補正する方法や空燃比センサ３７の応答性に応じて各気筒の推定空燃比を補正する方法は、上記実施例で説明した方法に限定されず、適宜変更しても良いことは言うまでもない。
【００６１】
また、上記実施例では、空燃比センサ３７の検出値と各気筒の空燃比とを関連付けた気筒別空燃比推定モデルを用いて各気筒の空燃比を推定するようにしたが、気筒別空燃比の推定方法は、気筒別空燃比推定モデルを用いた方法に限定されず、適宜変更しても良く、例えば、各気筒毎に空燃比を強制的に変化させる空燃比ディザ制御を実行したときの空燃比センサ３７の出力に基づいて各気筒の空燃比を推定するようにしても良い。
【００６２】
更に、気筒別空燃比異常診断の診断方法や空燃比センサ３７の応答性の検出方法も、上記実施例で説明した方法に限定されず、適宜変更しても良い。
その他、本発明は、上記実施例で説明した４気筒エンジンに限定されず、２気筒エンジンや３気筒エンジン或は５気筒以上のエンジンに適用しても良い等、種々変形して実施できる。
【図面の簡単な説明】
【００６３】
【図１】本発明の一実施例におけるエンジン制御システム全体の概略構成図である。
【図２】気筒別空燃比制御ルーチンの処理の流れを説明するフローチャートである。
【図３】気筒別空燃比異常診断ルーチンの処理の流れを説明するフローチャート（その１）である。
【図４】気筒別空燃比異常診断ルーチンの処理の流れを説明するフローチャート（その２）である。
【図５】センサ異常診断ルーチンの処理の流れを説明するフローチャートである。
【図６】補正係数ＫＣのマップの一例を概念的に示す図である。
【図７】補正量ＦＣのマップの一例を概念的に示す図である。
【図８】気筒別空燃比異常診断の実行例を説明するタイムチャートである。
【符号の説明】
【００６４】
１１…エンジン（内燃機関）、１２…吸気管、１５…スロットルバルブ、２０…燃料噴射弁、３５…排気マニホールド、３６…排気合流部、３７…空燃比センサ、４０…ＥＣＵ（気筒別空燃比推定手段，気筒別推定空燃比補正手段，気筒別空燃比制御手段，センサ応答性検出手段，気筒別空燃比異常診断手段）
【図１】
2008144639.tif 000003
【図２】
2008144639.tif 000004
【図３】
2008144639.tif 000005
【図４】
2008144639.tif 000006
【図５】
2008144639.tif 000007
【図６】
2008144639.tif 000008
【図７】
2008144639.tif 000009
【図８】
2008144639.tif 000010