(57)【要約】【課題】エンジンの排気合流部に設置した空燃比センサの検出値に基づいて各気筒の空燃比（気筒別空燃比）を推定するシステムにおいて、空燃比センサの応答性の低下による気筒別空燃比の推定精度の低下を少なくする。【解決手段】空燃比センサ３７の応答性が通常範囲内（空燃比センサ３７の応答性がほとんど低下していない状態）の場合には、気筒別空燃比推定方法としてモデル法を選択して、空燃比センサ３７の検出値と各気筒の空燃比とを関連付けたモデルを用いて各気筒の空燃比を推定する。一方、空燃比センサ３７の応答性が通常範囲よりも低下した場合には、気筒別空燃比推定方法を、空燃比センサ３７の応答性の低下の影響が少ない推定方法であるディザ方法に切り換えて、各気筒毎に空燃比を強制的に変化させる空燃比ディザ制御を実行したときの空燃比センサ３７の出力に基づいて各気筒の空燃比を推定する。【選択図】図１
2008128080.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) の推定値を求めることを表す。
【００２５】
以上のようにして、気筒別空燃比推定モデルをカルマンフィルタ型オブザーバにて構成することにより、燃焼サイクルの進行に伴って各気筒の空燃比を順次推定することができる。
【００２６】
一方、ディザ法は、各気筒毎に空燃比を強制的に変化させる空燃比ディザ制御を実行し、この空燃比ディザ制御を実行したときの空燃比センサ３７の出力に基づいて各気筒の空燃比を推定する方法である。
【００２７】
具体的には、図２（ａ）に示すように、今回の空燃比推定対象となる第ｉ気筒＃ｉ（４気筒エンジンの場合はｉ＝１〜４）において、空燃比ディザ制御の開始前（空燃比を強制的に変化させる前）に空燃比センサ３７で検出した第ｉ気筒＃ｉの検出空燃比と基準空燃比との偏差Ｙ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 まで変化したか否かを判定し、空燃比センサ３７の出力が所定値Ｉ2 まで変化したと判定された時点で、ステップ１０４に進み、タイマのカウント値に基づいて燃料カット開始から空燃比センサ３７の出力が所定値Ｉ2 に変化するまでに要した応答時間Ｔ1 を計測する。
【００４１】
この後、ステップ１０５に進み、空燃比センサ３７の応答時間Ｔ1 を応答性指標Ｒs に変換する。この場合、例えば、応答時間Ｔ1 の逆数を応答性指標Ｒs とすることで、空燃比センサ３７の応答性が高い（つまり応答時間Ｔ1 が短い）ほど応答性指標Ｒs が大きくなるように設定する。この応答性指標Ｒs は、後述する図４及び図５の気筒別異常診断ルーチンで空燃比センサ３７の応答性を判定する際に用いられる。このステップ１０５の処理が特許請求の範囲でいう応答性検出手段としての役割を果たす。
【００４２】
この後、ステップ１０６に進み、空燃比センサ３７の出力変化率ΔＩを次式より算出する。
ΔＩ＝（Ｉ2 −Ｉ1 ）／Ｔ1
尚、この出力変化率ΔＩを応答性指標Ｒs として用いるようにしても良い。
【００４３】
この後、ステップ１０７に進み、空燃比センサ３７の出力変化率ΔＩが所定の異常判定値Ｉfcよりも小さいか否かを判定する。
その結果、空燃比センサ３７の出力変化率ΔＩが異常判定値Ｉfcよりも小さいと判定された場合には、空燃比センサ３７の異常有りと判定して、ステップ１０８に進み、空燃比センサ３７の異常フラグを「１」にセットし、運転席のインストルメントパネルに設けられた警告ランプ（図示せず）を点灯したり、或は、運転席のインストルメントパネルの警告表示部（図示せず）に警告表示して運転者に警告すると共に、その異常情報（異常コード等）をＥＣＵ４０のバックアップＲＡＭ（図示せず）等の書き換え可能な不揮発性メモリに記憶して、本ルーチンを終了する。
【００４４】
これに対して、上記ステップ１０７で、空燃比センサ３７の出力変化率ΔＩが異常判定値Ｉfc以上であると判定された場合には、空燃比センサ３７の異常無し（正常）と判定して、本ルーチンを終了する。
【００４５】
［気筒別異常診断ルーチン］
図４及び図５に示す気筒別異常診断ルーチンは、ＥＣＵ４０の電源オン中に所定周期で実行され、特許請求の範囲でいう気筒別異常診断手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ２０１で、空燃比の応答性に影響を与える他の異常（例えば、燃料噴射弁の異常や燃料ポンプの異常等）が発生しているか否かを判定する。
【００４６】
このステップ２０１で、空燃比の応答性に影響を与える他の異常が発生していると判定された場合には、気筒別異常診断の診断精度が低下する可能性があると判断して、ステップ２０２以降の処理を実行することなく、本ルーチンを終了する。
【００４７】
一方、上記ステップ２０１で、空燃比の応答性に影響を与える他の異常が発生していないと判定された場合には、ステップ２０２に進み、エンジン回転速度、エンジン負荷（吸入空気量や吸気管圧力）等のエンジン運転状態を読み込んだ後、ステップ２０３に進み、現在のエンジン運転状態が所定領域であるか否かを判定する。ここで、所定領域は、空燃比センサ３７の検出値に基づいた気筒別空燃比の推定精度が高くなる運転領域であり、例えば、低回転且つ高負荷領域に設定されている。
【００４８】
このステップ２０３で、現在のエンジン運転状態が所定領域ではないと判定された場合には、気筒別空燃比の推定結果を用いた気筒別異常診断の診断精度が低下する可能性があると判断して、ステップ２０４以降の処理を実行することなく、本ルーチンを終了する。      
【００４９】
一方、上記ステップ２０３で、現在のエンジン運転状態が所定領域であると判定された場合には、気筒別空燃比の推定結果を用いた気筒別異常診断の診断精度を確保できると判断して、ステップ２０４以降の処理を次のようにして実行する。
【００５０】
まず、ステップ２０４で、ダイアグ実行フラグを「１」にセットした後、ステップ２０５に進み、前記図３のセンサ異常診断ルーチンで算出した空燃比センサ３７の応答性指標Ｒs が第１の判定値Ｒr1よりも大きいか否かによって、空燃比センサ３７の応答性が通常範囲内（空燃比センサ３７の応答性がほとんど低下していない状態）であるか否かを判定する。
【００５１】
このステップ２０５で、空燃比センサ３７の応答性指標Ｒs が第１の判定値Ｒr1よりも大きいと判定された場合（空燃比センサ３７の応答性が通常範囲内であると判定された場合）には、ステップ２０６に進み、気筒別空燃比推定方法としてモデル法を選択し、図示しないモデル法の気筒別空燃比推定ルーチンを実行して、前記気筒別空燃比推定モデルを用いて今回の空燃比推定対象となる第ｉ気筒＃ｉ気筒の空燃比を推定する。
【００５２】
一方、上記ステップ２０５で、空燃比センサ３７の応答性指標Ｒs が第１の判定値Ｒr1以下であると判定された場合（空燃比センサ３７の応答性が通常範囲よりも低下していると判定された場合）には、気筒別空燃比推定方法としてディザ法を選択する。この場合、次のステップ２０７，２０８で、空燃比センサ３７の応答性指標Ｒs を第２の判定値Ｒr2や第３の判定値Ｒr3（但し、Ｒr1＞Ｒr2＞Ｒr3）と比較して空燃比センサ３７の応答性の低下度合を判定した後、ステップ２０９〜２１１で、空燃比センサ３７の応答性の低下度合に応じて空燃比ディザ制御の空燃比変化量ΔＸを３段階の変化量ΔＸ1 〜ΔＸ3 （但し、ΔＸ1 ＜ΔＸ2 ＜ΔＸ3 ）のうちの１つに設定する。
【００５３】
まず、ステップ２０７で、空燃比センサ３７の応答性指標Ｒs が第２の判定値Ｒr2よりも大きいか否かを判定し、空燃比センサ３７の応答性指標Ｒs が第２の判定値Ｒr2よりも大きいと判定された場合には、空燃比センサ３７の応答性の低下度合が小さいと判断して、ステップ２０９に進み、空燃比ディザ制御の空燃比変化量ΔＸを３段階の中で最も小さい変化量ΔＸ1 に設定する。
【００５４】
一方、上記ステップ２０７で、空燃比センサ３７の応答性指標Ｒs が第２の判定値Ｒr2以下であると判定された場合には、ステップ２０８に進み、空燃比センサ３７の応答性指標Ｒs が第３の判定値Ｒr3よりも大きいか否かを判定し、空燃比センサ３７の応答性指標Ｒs が第３の判定値Ｒr3よりも大きいと判定された場合には、空燃比センサ３７の応答性の低下度合が中程度であると判断して、ステップ２１０に進み、空燃比ディザ制御の空燃比変化量ΔＸを３段階の中で２番目に小さい変化量ΔＸ2 に設定する。
【００５５】
また、上記ステップ２０８で、空燃比センサ３７の応答性指標Ｒs が第３の判定値Ｒr3以下であると判定された場合には、空燃比センサ３７の応答性の低下度合が大きいと判断して、ステップ２１１に進み、空燃比ディザ制御の空燃比変化量ΔＸを３段階の中で最も大きい変化量ΔＸ3 に設定する。
【００５６】
尚、上記ステップ２０７〜２１１では、空燃比センサ３７の応答性の低下度合に応じて空燃比ディザ制御の空燃比変化量ΔＸを３段階で変化させるようにしたが、２段階或は４段階以上で変化させるようにしても良い。また、空燃比センサ３７の応答性の低下度合に応じて空燃比ディザ制御の空燃比変化量ΔＸを連続的に変化させるようにしても良い。
【００５７】
このようにして、空燃比ディザ制御の空燃比変化量ΔＸを設定した後、ステップ２１２に進み、後述する図６のディザ法の気筒別空燃比推定ルーチンを実行して、空燃比ディザ制御を実行したときの空燃比センサ３７の出力に基づいて今回の空燃比推定対象となる第ｉ気筒＃ｉ気筒の空燃比を推定する。これらのステップ２０５〜２１２の処理が特許請求の範囲でいう気筒別空燃比推定手段としての役割を果たす。
【００５８】
上記ステップ２０６又は上記ステップ２１２で、第ｉ気筒＃ｉ気筒の空燃比を推定した後、図５のステップ２１３に進み、エンジン運転状態（エンジン回転速度やエンジン負荷等）に応じて推定空燃比を補正した後、ステップ２１４に進み、第ｉ気筒＃ｉの推定空燃比ＡＦ(#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) を算出することで、空燃比ディザ制御の開始前の第ｉ気筒＃ｉの検出空燃比の気筒間偏差Ｙ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)と基準空燃比（全気筒の推定空燃比の平均値又は制御目標値）とに基づいて第ｉ気筒＃ｉの空燃比を算出した後、ステップ３０９に進み、空燃比ディザ制御を終了すると共に、空燃比ディザ制御フラグをオフにリセットした後、本ルーチンを終了する。
【００７３】
以上説明した本実施例では、空燃比センサ３７の応答性が経時劣化等によって低下した場合に、気筒別空燃比推定方法を、空燃比センサ３７の応答性の低下の影響が少ない推定方法（例えばディザ法）に切り換えることができるため、空燃比センサ３７の応答性が低下した場合でも、気筒別空燃比の推定精度の低下を少なくすることができ、気筒別空燃比の推定結果を用いた気筒別異常診断の診断精度の低下を少なくすることができる。
【００７４】
また、本実施例では、空燃比センサ３７の応答性が通常範囲内（空燃比センサ３７の応答性がほとんど低下していない状態）の場合に、気筒別空燃比推定方法として、気筒別空燃比推定モデルを用いて各気筒の空燃比を推定するモデル法を選択するようにしたので、空燃比センサ３７の応答性が通常範囲内の場合には、モデル法によって各気筒の空燃比を精度良く推定することができる。しかも、ディザ法は、各気筒毎に空燃比を強制的に変化させる空燃比ディザ制御を実行するため、ドライバビリティや排気エミッションが低下する可能性があるが、モデル法は、空燃比を強制的に変化させる必要がないため、ドライバビリティや排気エミッションの低下を招くことなく、各気筒の空燃比を精度良く推定することができる。
【００７５】
一方、空燃比センサ３７の応答性が通常範囲よりも低下した場合に、気筒別空燃比推定方法として、各気筒毎に空燃比を強制的に変化させる空燃比ディザ制御を実行したときの空燃比センサ３７の出力に基づいて各気筒の空燃比を推定するディザ法を選択するようにしたので、各気筒の空燃比をモデル法よりも精度良く推定することができ、空燃比センサ３７の応答性が低下した場合でも気筒別空燃比の推定精度の低下を少なくすることができる。
【００７６】
また、本実施例では、気筒別空燃比推定方法としてディザ法を選択した場合には、空燃比センサ３７の応答性の低下度合に応じて空燃比ディザ制御の空燃比変化量を設定するようにしたので、空燃比センサ３７の応答性の低下度合に応じて空燃比ディザ制御の空燃比変化量を変化させて、気筒別空燃比の推定精度を適度に確保しながら、ドライバビリティや排気エミッションに与える悪影響をできるだけ小さくするように、空燃比ディザ制御の空燃比変化量を設定することができる。
【００７７】
尚、気筒別空燃比推定方法や気筒別異常診断の診断方法は、上記実施例で説明した方法に限定されず、適宜変更しても良い。例えば、吸気バルブ２５と排気バルブ２６のいずれか一方又は両方を電磁駆動バルブ（気筒毎に独立して開閉動作可能なバルブ装置）としたシステムでは、空燃比センサ３７の応答性が通常範囲よりも低下した場合に、特定気筒休止法で各気筒の空燃比を推定するようにしても良い。
【００７８】
この特定気筒休止方法は、減速時燃料カット期間中に、エンジン１１の４つの気筒のうちの１つの気筒を除いて燃料噴射及び吸気／排気バルブ２５，２６の開閉動作を休止してそれらの気筒の吸気／排気ポートを閉じた状態で、残りの１つの気筒についてのみ燃料噴射及び吸気／排気バルブ２５，２６の開閉動作を実行する。以下の説明では、燃料噴射及び吸気／排気バルブ２５，２６の開閉動作を休止する気筒を「休止気筒」と呼び、燃料噴射及び吸気／排気バルブ２５，２６の開閉動作を実行する気筒を「運転気筒」と呼ぶ。減速時燃料カット期間中に、所定時間毎に運転気筒を１気筒ずつ順番に切り替え、その都度、空燃比センサ３７の出力に基づいて運転気筒の空燃比を検出する。この場合、１つの気筒を除いて残り全ての気筒を休止気筒としてそれらの休止気筒の吸気／排気ポートを閉じた状態で、１つの運転気筒についてのみ燃料噴射及び吸気／排気バルブ２５，２６の開閉動作を実行するため、当該運転気筒の空燃比を空燃比センサ３７の出力に基づいて精度良く検出することができる。
【００７９】
また、上記実施例では、気筒別空燃比の推定結果に基づいて各気筒の異常の有無を判定する気筒別異常診断を実施するシステムにおいて、空燃比センサ３７の応答性に応じて気筒別空燃比推定方法を切り換えるようにしたが、気筒別空燃比の推定結果に基づいて各気筒の空燃比の気筒間ばらつきを小さくするように各気筒の空燃比を制御する気筒別空燃比制御を実施するシステムにおいて、空燃比センサ３７の応答性に応じて気筒別空燃比推定方法を切り換えるようにしても良い。
【００８０】
また、上記実施例では、本発明を４気筒エンジンに適用したが、２気筒エンジンや３気筒エンジン或は５気筒以上のエンジンに本発明を適用しても良い。
その他、本発明は、３種類以上の気筒別空燃比推定方法の中から空燃比センサ３７の応答性に応じて気筒別空燃比推定方法を切り換えるようにしても良い。
【図面の簡単な説明】
【００８１】
【図１】本発明の一実施例におけるエンジン制御システム全体の概略構成図である。
【図２】（ａ）と（ｂ）はディザ法による気筒別空燃比推定方法を説明するための図である。
【図３】センサ異常診断ルーチンの処理の流れを説明するフローチャートである。
【図４】気筒別異常診断ルーチンの処理の流れを説明するフローチャート（その１）である。
【図５】気筒別異常診断ルーチンの処理の流れを説明するフローチャート（その２）である。
【図６】ディザ法の気筒別空燃比推定ルーチンの処理の流れを説明するフローチャートである。
【符号の説明】
【００８２】
１１…エンジン（内燃機関）、１２…吸気管、１５…スロットルバルブ、２０…燃料噴射弁、３５…排気マニホールド、３６…排気合流部、３７…空燃比センサ、４０…ＥＣＵ（気筒別空燃比推定手段，応答性検出手段，気筒別異常診断手段）
【図１】
2008128080.tif 000003
【図２】
2008128080.tif 000004
【図３】
2008128080.tif 000005
【図４】
2008128080.tif 000006
【図５】
2008128080.tif 000007
【図６】
2008128080.tif 000008