(57)【要約】【課題】エンジンの排気集合部に設置した空燃比センサの検出値と状態変数（各気筒の空燃比）とを関連付けたモデルに基づいて各気筒の空燃比を推定するシステムにおいて、運転状態急変時における各気筒の空燃比の推定精度の低下を抑制できるようにする。【解決手段】エンジン運転状態が急変して気筒別空燃比の推定困難な運転状態になったときに状態変数をリセットすることで、次に各気筒の空燃比を推定する際に、過去の運転状態の影響を受けた状態変数を用いずに、リセットされた状態変数を用いて現在の運転状態における各気筒の空燃比を推定して、運転状態急変時における各気筒の空燃比の推定精度の低下を少なくする。尚、定常的に気筒別空燃比の推定困難な運転状態になった場合は、当該運転状態の期間に常に状態変数をリセットした状態に保持し、過渡的に気筒別空燃比の推定困難な運転状態になった場合は、その瞬間のみ状態変数をリセットする。【選択図】図１
2008014178.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) の推定値を求めることを表す。
【００３１】
以上のようにして、気筒別空燃比推定モデルをカルマンフィルタ型オブザーバにて構成することにより、燃焼サイクルの進行に伴って各気筒の空燃比を順次推定することができる。
【００３２】
次に、各気筒の空燃比検出タイミング（空燃比センサ３７の出力のサンプルタイミング）の設定方法について説明する。本実施例では、各気筒から排出される排出ガスが空燃比センサ３７付近に到達してその空燃比が検出されるまでの遅れ（以下「排気系の応答遅れ」という）がエンジン運転状態によって変化することを考慮して、エンジン運転状態（例えばエンジン負荷、エンジン回転速度等）に応じてマップ等により各気筒の空燃比検出タイミングを設定する。一般に、エンジン負荷やエンジン回転速度が低下するほど、排気系の応答遅れが大きくなるため、各気筒の空燃比検出タイミングは、エンジン負荷やエンジン回転速度が低下するほど、遅角側にシフトされるように設定されている。
【００３３】
ところで、図２（ａ）に示すように、エンジン運転状態が急変したときに、通常と同じように各気筒の空燃比の推定を行うと、過去の異なる運転状態における状態変数Ｘを用いて現在の運転状態における各気筒の空燃比を推定することになるため、各気筒の空燃比の推定精度が著しく低下することがある。
【００３４】
この対策として、本実施例では、各気筒の空燃比の正しい推定が困難な運転状態（以下「気筒別空燃比の推定困難な運転状態」という）であるか否かを判定し、気筒別空燃比の推定困難な運転状態であると判定されたときに、状態変数Ｘを初期値（例えば０）にリセットするようにしている。これにより、図２（ｂ）に示すように、エンジン運転状態が急変して気筒別空燃比の推定困難な運転状態になったときに、状態変数Ｘをリセットして初期値（例えば０）に戻すことができるため、次に各気筒の空燃比を推定する際には、過去の異なる運転状態の影響を受けた状態変数Ｘを用いずに、リセットされた状態変数Ｘを用いて現在の運転状態における各気筒の空燃比を推定することができ、エンジン運転状態の急変時における各気筒の空燃比の推定精度の低下を少なくすることができる。
【００３５】
ここで、図３に示すように、気筒別空燃比の推定困難な運転状態は、大別して次の２つの場合が考えられる。１つ目は、エンジン運転状態（例えば回転速度と負荷）が気筒別空燃比の推定可能な運転領域（各気筒の空燃比の正しい推定が可能な運転領域）から気筒別空燃比の推定困難な運転領域（各気筒の空燃比の正しい推定が困難な運転領域）に変化して、定常的に気筒別空燃比の推定困難な運転状態になる場合である。２つ目は、エンジン運転状態が気筒別空燃比の推定可能な運転領域内で急変して過渡的（一時的）に気筒別空燃比の推定困難な運転状態になる場合である。
【００３６】
このような事情を考慮して、本実施例では、定常的に気筒別空燃比の推定困難な運転状態になった場合には、運転状態が変化した瞬間だけでなく、その後も気筒別空燃比の推定困難な運転状態が暫く継続するため、その間、状態変数Ｘをリセットした状態に維持して、各気筒の空燃比の推定を禁止する。
【００３７】
一方、エンジン運転状態が急変して過渡的（一時的）に気筒別空燃比の推定困難な運転状態になった場合には、その瞬間だけ状態変数Ｘをリセットし、その状態から各気筒の空燃比を推定する処理を継続する。
【００３８】
また、定常的に又は過渡的に気筒別空燃比の推定困難な運転状態であると判定されて状態変数Ｘがリセットされたときには、その状態変数Ｘのリセット直前に求めた各気筒の空燃比補正量（各気筒の燃料噴射量の補正量）を用いて各気筒の空燃比を補正し、状態変数Ｘのリセットが解除されてから各気筒の空燃比を精度良く推定できるようになるのに十分な所定期間が経過した後に通常の気筒別空燃比制御に復帰する。
【００３９】
以下、ＥＣＵ４０が実行する図４乃至図８の気筒別空燃比制御用の各ルーチンの処理内容を説明する。
【００４０】
［気筒別空燃比制御メインルーチン］
図４の気筒別空燃比制御メインルーチンは、クランク角センサ３３の出力パルスに同期して所定クランク角毎（例えば３０℃Ａ毎）に起動される。本ルーチンが起動されると、まず、ステップ１０１で、後述する図５の定常的推定困難運転状態判定ルーチンを実行して、定常的に気筒別空燃比の推定困難な運転状態であるか否かを判定した後、ステップ１０２に進み、後述する図６の過渡的推定困難運転状態判定ルーチンを実行して、過渡的に気筒別空燃比の推定困難な運転状態であるか否かを判定する。
【００４１】
この後、ステップ１０３に進み、後述する図７の気筒別空燃比推定ルーチンを実行して、前記気筒別空燃比推定モデルを用いて各気筒の空燃比を空燃比センサ３７の検出値に基づいて推定する。その際、定常的に気筒別空燃比の推定困難な運転状態であると判定された場合には、当該運転状態の期間中に常に状態変数Ｘをリセットした状態に維持すると共に、各気筒の空燃比の推定を禁止する。一方、過渡的に気筒別空燃比の推定困難な運転状態であると判定された場合には、当該運転状態になる瞬間のみ状態変数Ｘをリセットして、その後も各気筒の空燃比の推定を継続する。
【００４２】
この後、ステップ１０４に進み、全気筒の推定空燃比の平均値を算出して、その平均値を基準空燃比（全気筒の目標空燃比）に設定する。
この後、ステップ１０５に進み、後述する図８の気筒別空燃比制御ルーチンを実行して、各気筒の推定空燃比と基準空燃比との偏差を算出して、その偏差が小さくなるように各気筒の空燃比補正量（各気筒の燃料噴射量の補正量）を算出した後、各気筒の空燃比補正量に基づいて各気筒の燃料噴射量を補正することで、各気筒に供給する混合気の空燃比を各気筒毎に補正して気筒間の空燃比ばらつきを少なくするように制御する。
【００４３】
この際、定常的に又は過渡的に気筒別空燃比の推定困難な運転状態であると判定されて状態変数Ｘがリセットされたときには、状態変数Ｘのリセット直前に求めた各気筒の空燃比補正量を用いて各気筒の空燃比を補正し、状態変数Ｘのリセットが解除されてから所定期間が経過した後に通常の気筒別空燃比制御に復帰する。
【００４４】
［定常的推定困難運転状態判定ルーチン］
図５の定常的推定困難運転状態判定ルーチンは、図４の気筒別空燃比制御メインルーチンのステップ１０１で実行されるサブルーチンであり、特許請求の範囲でいう判定手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ２０１〜２０３で、定常的に気筒別空燃比の推定困難な運転状態であるか否かを次のようにして判定する。
【００４５】
まず、ステップ２０１で、エンジン運転状態が気筒別空燃比の推定可能な運転領域であるか否かを、例えば、次の(A1)〜(A5)の条件を全て満たすか否かによって判定する。
(A1)空燃比センサ３７のセンサ素子の温度が活性温度範囲内（センサ素子の抵抗値が所定範囲内）であること
(A2)目標空燃比が所定範囲（例えばストイキ及びその付近の範囲）内であること
(A3)空燃比センサ３７の検出値が所定範囲（例えばストイキ及びその付近の範囲）内であること
【００４６】
(A4)エンジン回転速度が所定範囲内であること
一般に、エンジン回転速度が高くなる高回転領域では、排出ガスの流速が速くなって、空燃比センサ３７の応答遅れの影響が大きくなり、各気筒の空燃比の正しい推定が困難になるため、エンジン回転速度の所定範囲は、例えば、空燃比センサ３７の応答遅れの影響が大きくなる高回転領域を除いた低・中回転領域に設定されている。
【００４７】
(A5)エンジン負荷（例えば吸入空気量や吸気管圧力等）が所定範囲内であること
一般に、エンジン負荷が低くなる低負荷領域では、各気筒の排出ガス量が少なくなるため、各気筒の排気マニホールド３５の長さ・容積・形状等の違いによる気筒間の排出ガスの流動ばらつきが大きくなり、各気筒の空燃比の正しい推定が困難になるため、エンジン負荷の所定範囲は、例えば、各気筒の空燃比ばらつきの影響が空燃比センサ３７の出力に現れ難くなる低負荷領域を除いた中・高負荷領域に設定されている。
【００４８】
これら(A1)〜(A5)の条件を全て満たせば、エンジン運転状態が気筒別空燃比の推定可能な運転領域であると判定するが、上記(A1)〜(A5)の条件のうちのいずれか１つでも満たさない条件があれば、エンジン運転状態が気筒別空燃比の推定可能な運転領域ではない（つまりエンジン運転状態が気筒別空燃比の推定困難な運転領域である）と判定する。このステップ２０１で、エンジン運転状態が気筒別空燃比の推定困難な運転領域であると判定された場合（つまり「Ｎｏ」と判定された場合）には、定常的に気筒別空燃比の推定困難な運転状態であると判定する。
【００４９】
また、空燃比制御に関連するセンサやアクチュエータ等に異常が発生したときにも、各気筒の空燃比の正しい推定が困難になるため、ステップ２０２では、空燃比制御に関連するセンサやアクチュエータ等に異常が発生しているか否かを判定することで、定常的に気筒別空燃比の推定困難な運転状態であるか否かを判定する。
【００５０】
この際、空燃比制御に関連するセンサやアクチュエータ等に異常が発生しているか否かは、例えば、車両に搭載された自己診断機能によって検出される次の(B1)〜(B14) の異常のうちの少なくとも１つが発生しているか否かによって判定する。
【００５１】
(B1)空燃比センサ３７のヒータ異常
(B2)空燃比センサ３７の断線・ショート異常
(B3)空燃比センサ３７の応答性異常
(B4)燃料系システムの異常
(B5)燃料噴射弁２０の異常
(B6)燃圧異常
(B7)吸気管圧力センサ１８の異常
(B8)大気圧センサ（図示せず）の異常
(B9)燃圧センサ２４の異常
(B10) 吸気温度センサ（図示せず）の異常
(B11) エアフローメータ１４の異常
(B12) 燃料蒸発ガスパージ系の常時オン異常（例えばパージ制御弁の開弁固着異常）
(B13) カム角センサ３１，３２やクランク角センサ３３の異常
(B14) 失火検出（失火異常）
【００５２】
これら(B1)〜(B14) の異常のうちの少なくとも１つが発生していれば、空燃比制御に関連するセンサやアクチュエータ等に異常が発生していると判定するが、上記(B1)〜(B14) のいずれの異常も発生していなければ、空燃比制御に関連するセンサやアクチュエータ等に異常が発生していないと判定する。このステップ２０２で、空燃比制御に関連するセンサやアクチュエータ等に異常が発生していると判定された場合（つまり「Ｙｅｓ」と判定された場合）には、各気筒の空燃比の正しい推定が困難になるため、定常的に気筒別空燃比の推定困難な運転状態であると判定する。
【００５３】
更に、空燃比センサ３７による空燃比検出に対する外乱が発生したときにも、各気筒の空燃比の正しい推定が困難になるため、ステップ２０３では、空燃比センサ３７による空燃比検出に対する外乱が発生しているか否かを判定することで、定常的に気筒別空燃比の推定困難な運転状態であるか否かを判定する。
【００５４】
この際、空燃比センサ３７による空燃比検出に対する外乱が発生しているか否かは、例えば、次の(C1)〜(C3)の条件のうちの少なくとも１つを満たすか否かによって判定する。
(C1)燃料系でベーパーが発生しやすい条件（例えば燃料温度が所定値以上）であること  (C2)燃料蒸発ガスパージシステムによって燃料蒸発ガスを吸気系にパージするパージ制御中であること
(C3)燃料カット（減筒運転を含む）の実施中であること
【００５５】
これら(C1)〜(C3)の条件のうちの少なくとも１つを満たせば、空燃比センサ３７による空燃比検出に対する外乱が発生していると判定するが、上記(C1)〜(C3)の条件を全て満たさなければ、空燃比センサ３７による空燃比検出に対する外乱が発生していないと判定する。このステップ２０３で、空燃比センサ３７による空燃比検出に対する外乱が発生していると判定された場合（つまり「Ｙｅｓ」と判定された場合）には、各気筒の空燃比の正しい推定が困難になるため、定常的に気筒別空燃比の推定困難な運転状態であると判定する。
【００５６】
上記ステップ２０１でエンジン運転状態が気筒別空燃比の推定可能な運転領域である（Ｙｅｓ）と判定され、且つ上記ステップ２０２で空燃比制御に関連するセンサやアクチュエータ等に異常が発生していない（Ｎｏ）と判定され、且つ上記ステップ２０３で空燃比センサ３７による空燃比検出に対する外乱が発生していない（Ｎｏ）と判定された場合には、気筒別空燃比の推定可能な運転状態であると判断して、ステップ２０４に進み、状態変数リセットフラグをＯＦＦにリセット（又は維持）すると共に、気筒別空燃比推定実行フラグをＯＮにセット（又は維持）する。
【００５７】
一方、上記ステップ２０１でエンジン運転状態が気筒別空燃比の推定困難な運転領域である（Ｎｏ）と判定された場合、又は上記ステップ２０２で空燃比制御に関連するセンサやアクチュエータ等に異常が発生している（Ｙｅｓ）と判定された場合、又は上記ステップ２０３で空燃比センサ３７による空燃比検出に対する外乱が発生している（Ｙｅｓ）と判定された場合には、定常的に気筒別空燃比の推定困難な運転状態であると判断して、ステップ２０５に進み、状態変数リセットフラグをＯＮにセット（又は維持）すると共に、気筒別空燃比推定実行フラグをＯＦＦにリセット（又は維持）する。
【００５８】
［過渡的推定困難運転状態判定ルーチン］
図６の過渡的推定困難運転状態判定ルーチンは、図４の気筒別空燃比制御メインルーチンのステップ１０２で実行されるサブルーチンであり、特許請求の範囲でいう判定手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ３０１，３０２で、過渡的に気筒別空燃比の推定困難な運転状態であるか否かを判定する。
【００５９】
ステップ３０１では、変速機（図示せず）のシフトレンジやギヤ位置が変更されたか否かを判定する。このステップ３０１で、シフトレンジやギヤ位置が変更されたと判定された場合（「Ｙｅｓ」と判定された場合）には、一時的にエンジン運転状態が急変して、一時的に各気筒の空燃比の正しい推定が困難になるため、過渡的に気筒別空燃比の推定困難な運転状態であると判定する。
【００６０】
一方、ステップ３０２では、吸気系の制御が切り換えられたか否かを判定する。例えば、可変バルブリフト装置を備えたシステムでは、可変バルブリフト装置によって吸気バルブ２５や排気バルブ２６のバルブリフト量が切り換えられたか否かによって、吸気系の制御が切り換えられたか否かを判定する。また、可変吸気装置を備えたシステムでは、可変吸気装置によって吸気管路の長さ、数、径等が切り換えられたか否かによって、吸気系の制御が切り換えられたか否かを判定するようにしても良い。更に、気流制御弁を備えたシステムでは、気流制御弁によって気流強度が切り換えられたか否かによって、吸気系の制御が切り換えられたか否かを判定するようにしても良い。
【００６１】
このステップ３０２で、吸気系の制御が切り換えられたと判定された場合（「Ｙｅｓ」と判定された場合）には、一時的にエンジン運転状態が急変して、一時的に各気筒の空燃比の正しい推定が困難になるため、過渡的に気筒別空燃比の推定困難な運転状態であると判定する。
【００６２】
上記ステップ３０１でシフトレンジやギヤ位置が変更されていない（Ｎｏ）と判定され、且つ上記ステップ３０２で吸気系の制御が切り換えられていない（Ｎｏ）と判定された場合には、気筒別空燃比の推定可能な運転状態であると判断して、ステップ３０３に進み、状態変数リセットフラグをＯＦＦにリセット（又は維持）すると共に、気筒別空燃比推定実行フラグをＯＮにセット（又は維持）する。
【００６３】
一方、上記ステップ３０１でシフトレンジやギヤ位置が変更された（Ｙｅｓ）と判定された場合、又は上記ステップ３０２で吸気系の制御が切り換えられた（Ｙｅｓ）と判定された場合には、過渡的に気筒別空燃比の推定困難な運転状態であると判断して、ステップ３０４に進み、状態変数リセットフラグをＯＮにセット（又は維持）するが、気筒別空燃比推定実行フラグはＯＦＦせずにＯＮに維持する。
【００６４】
［気筒別空燃比推定ルーチン］
図７の気筒別空燃比推定ルーチンは、図４の気筒別空燃比制御メインルーチンのステップ１０３で実行されるサブルーチンである。本ルーチンが起動されると、まず、ステップ４０１で、空燃比センサ３７の出力（空燃比検出値）を読み込んだ後、ステップ４０２に進み、状態変数リセットフラグがＯＦＦであるか否かを判定する。
【００６５】
このステップ４０２で、状態変数リセットフラグがＯＦＦであると判定された場合には、ステップ４０５に進み、前記気筒別空燃比推定モデルを用いて今回の空燃比推定対象となる気筒の空燃比を空燃比センサ３７の検出値に基づいて推定する。このステップ４０５の処理が特許請求の範囲でいう気筒別空燃比推定手段としての役割を果たす。
【００６６】
一方、上記ステップ４０２で、状態変数リセットフラグがＯＮであると判定された場合（つまり図５のルーチンで定常的に気筒別空燃比の推定困難な運転状態であると判定された場合、又は図６のルーチンで過渡的に気筒別空燃比の推定困難な運転状態であると判定された場合）には、ステップ４０３に進み、状態変数Ｘを初期値（例えば０）にリセットする。このステップ４０３の処理が特許請求の範囲でいう状態変数リセット手段としての役割を果たす。
【００６７】
この後、ステップ４０４に進み、気筒別空燃比推定実行フラグがＯＮであるか否かを判定し、気筒別空燃比推定実行フラグがＯＮであると判定された場合（つまり図６のルーチンで過渡的に気筒別空燃比の推定困難な運転状態であると判定された場合）には、ステップ４０５に進み、前記気筒別空燃比推定モデルを用いて今回の空燃比推定対象となる気筒の空燃比を空燃比センサ３７の検出値に基づいて推定する。
【００６８】
一方、上記ステップ４０４で、気筒別空燃比推定実行フラグがＯＦＦであると判定された場合（つまり図５のルーチンで定常的に気筒別空燃比の推定困難な運転状態であると判定された場合）には、ステップ４０５の処理（各気筒の空燃比を推定する処理）を実行することなく、本ルーチンを終了する。
【００６９】
以上の処理により、定常的に気筒別空燃比の推定困難な運転状態であると判定された場合には、当該運転状態において常に状態変数Ｘをリセットした状態に維持すると共に、各気筒の空燃比の推定を禁止する。つまり、定常的に気筒別空燃比の推定困難な運転状態になった場合には、運転状態が変化した瞬間だけでなく、その後も気筒別空燃比の推定困難な運転状態が暫く継続するため、その間、状態変数Ｘをリセットした状態に維持して、各気筒の空燃比の推定を禁止する。
【００７０】
一方、過渡的に気筒別空燃比の推定困難な運転状態であると判定された場合には、当該運転状態になる瞬間のみ状態変数Ｘをリセットして、その後も各気筒の空燃比の推定を継続する。つまり、エンジン運転状態が急変して過渡的（一時的）に気筒別空燃比の推定困難な運転状態になった場合には、その瞬間だけ状態変数Ｘをリセットして、各気筒の空燃比の推定を継続する。
【００７１】
［気筒別空燃比制御ルーチン］
図８の気筒別空燃比制御ルーチンは、図４の気筒別空燃比制御メインルーチンのステップ１０５で実行されるサブルーチンであり、特許請求の範囲でいう気筒別空燃比制御手段としての役割を果たす。
【００７２】
本ルーチンが起動されると、まず、ステップ５０１で、状態変数リセットフラグがＯＦＦであるか否かを判定する。このステップ５０１で、状態変数リセットフラグがＯＦＦであると判定された場合には、ステップ５０２に進み、状態変数リセットフラグが以前にＯＮされたことを意味する以前ＯＮフラグがＯＮであるか否かを判定し、以前ＯＮフラグがＯＦＦであれば、ステップ５０８に進み、各気筒の推定空燃比と基準空燃比との偏差を算出して、その偏差が小さくなるように各気筒の空燃比補正量（各気筒の燃料噴射量の補正量）を算出する。
【００７３】
その後、状態変数リセットフラグがＯＮにセットされた場合（状態変数Ｘがリセットされた場合）には、上記ステップ５０１からステップ５０３に進み、以前ＯＮフラグをＯＮにセットした後、ステップ５０４に進み、各気筒の空燃比補正量の前回値（つまり状態変数Ｘのリセット直前に求めた空燃比補正量）を各気筒の空燃比補正量の今回値とする。
【００７４】
その後、状態変数リセットフラグがＯＮからＯＦＦにリセットされた場合（状態変数Ｘのリセットが解除された場合）には、上記ステップ５０１からステップ５０２に進み、このステップ５０２で、以前ＯＮフラグがＯＮであると判定されて、ステップ５０５に進み、状態変数リセットフラグがＯＮからＯＦＦにリセットされた後（状態変数Ｘのリセットが解除された後）の経過時間Ｔを計測するカウンタをカウントアップする。
【００７５】
この後、ステップ５０６に進み、状態変数リセットフラグがＯＮからＯＦＦにリセットされた後の経過時間Ｔが所定時間（各気筒の空燃比を精度良く推定できるようになるのに十分な時間）を越えたか否かを判定し、所定時間を越えていなければ、ステップ５０３に進み、以前ＯＮフラグをＯＮにセットした後、ステップ５０４に進み、各気筒の空燃比補正量の前回値（つまり状態変数Ｘのリセット直前に求めた空燃比補正量）を各気筒の空燃比補正量の今回値とする。
【００７６】
その後、上記ステップ５０６で、状態変数リセットフラグがＯＮからＯＦＦにリセットされた後の経過時間Ｔが所定時間を越えたと判定されたときに、ステップ５０７に進み、以前ＯＮフラグをＯＦＦにリセットした後、ステップ５０８に進み、各気筒の推定空燃比と基準空燃比との偏差を算出して、その偏差が小さくなるように各気筒の空燃比補正量を算出する。
【００７７】
ステップ５０４又はステップ５０８で各気筒の空燃比補正量を算出した後は、ステップ５０９に進み、各気筒の空燃比補正量に基づいて各気筒の燃料噴射量を補正することで、各気筒に供給する混合気の空燃比を各気筒毎に補正して気筒間の空燃比ばらつきを少なくするように制御する。
【００７８】
以上の処理により、定常的に又は過渡的に気筒別空燃比の推定困難な運転状態であると判定されて状態変数Ｘがリセットされた場合には、状態変数Ｘのリセット直前に求めた各気筒の空燃比補正量を用いて各気筒の空燃比を補正し、状態変数Ｘのリセットが解除されてから所定時間が経過した後に通常の気筒別空燃比制御に復帰する。
【００７９】
以上説明した本実施例では、エンジン１１の排気集合部３６に設置した空燃比センサ３７の検出値（排気集合部３６の空燃比）と状態変数Ｘとしての気筒別空燃比（各気筒の空燃比）とを関連付けたモデルに基づいて各気筒の空燃比を推定するシステムにおいて、気筒別空燃比の推定困難な運転状態（各気筒の空燃比の正しい推定が困難な運転状態）であると判定されたときに状態変数Ｘをリセットする。これにより、エンジン運転状態が急変して気筒別空燃比の推定困難な運転状態になったときに、状態変数Ｘをリセットして初期値（例えば０）に戻すことができるため、次に各気筒の空燃比を推定する際には、過去の異なる運転状態の影響を受けた状態変数Ｘを用いずに、リセットされた状態変数Ｘを用いて現在の運転状態における各気筒の空燃比を推定することができ、エンジン運転状態の急変時における各気筒の空燃比の推定精度の低下を少なくすることができる。
【００８０】
また、本実施例では、定常的に気筒別空燃比の推定困難な運転状態になった場合には、運転状態が変化した瞬間だけでなく、その後の気筒別空燃比の推定困難な運転状態が暫く継続する間も、状態変数Ｘをリセットした状態に維持するようにしたので、定常的に気筒別空燃比の推定困難な運転状態になった場合でも、各気筒の空燃比の推定精度の低下を少なくすることができる。
【００８１】
更に、定常的に気筒別空燃比の推定困難な運転状態になった場合には、各気筒の空燃比を正しく推定することができない状態が比較的長く継続することを考慮して、各気筒の空燃比を推定する処理を禁止するようにしたので、各気筒の空燃比の誤った推定を防止できると共に、ＥＣＵ４０の演算負荷を軽減することができる。
【００８２】
また、本実施例では、過渡的に気筒別空燃比の推定困難な運転状態になった場合には、その後すぐに気筒別空燃比の推定可能な運転状態に戻ることを考慮して、状態変数Ｘを瞬間的にリセットするだけで、リセット状態を維持せずに、各気筒の空燃比の推定を継続するようにしたので、気筒別空燃比の推定可能な運転状態に戻ったときに、状態変数Ｘを速やかに更新して各気筒の空燃比を正しく推定することができる。
【００８３】
また、本実施例では、定常的に又は過渡的に気筒別空燃比の推定困難な運転状態であると判定されて状態変数Ｘがリセットされたときに、その状態変数Ｘのリセット直前に求めた空燃比補正量を用いて各気筒の空燃比を補正するようにしたので、状態変数Ｘがリセットされているときでも、状態変数Ｘのリセット直前に求めた空燃比補正量を用いて各気筒の空燃比ばらつきを補正することができ、排気エミッションを向上させることができる。      
【００８４】
更に、状態変数Ｘのリセットが解除されてから所定時間が経過した後に通常の気筒別空燃比制御を実行するようにしたので、状態変数Ｘのリセットが解除されてから各気筒の空燃比を精度良く推定できるようになるのに十分な時間が経過した後に、通常の気筒別空燃比制御に復帰することができ、気筒別空燃比制御の精度（各気筒の空燃比ばらつきの補正精度）を向上させることができる。
【００８５】
尚、本発明は、状態変数Ｘのリセットが解除されてからクランク角等で設定した所定期間が経過した後に通常の気筒別空燃比制御を実行するようにしても良い。
また、各気筒の空燃比を推定する方法は、上記実施例で説明した方法に限定されず、空燃比センサ３７の検出値と状態変数Ｘ（各気筒の空燃比）とを関連付けたモデルに基づいて各気筒の空燃比を推定する方法であれば、適宜変更しても良い。
【００８６】
その他、本発明は、吸気ポート噴射エンジンに限定されず、筒内噴射エンジンにも適用して実施できる等、要旨を逸脱しない範囲で種々変更して実施できる。
【図面の簡単な説明】
【００８７】
【図１】本発明の一実施例におけるエンジン制御システム全体の概略構成図である。
【図２】（ａ）は従来の気筒別空燃比推定の実行例を示すタイムチャートであり、（ｂ）は本実施例の気筒別空燃比推定の実行例を示すタイムチャートである。
【図３】定常的に気筒別空燃比の推定困難な運転状態と過渡的に気筒別空燃比の推定困難な運転状態を説明するための図である。
【図４】気筒別空燃比制御メインルーチンの処理の流れを示すフローチャートである。
【図５】定常的推定困難運転状態判定ルーチンの処理の流れを示すフローチャートである。
【図６】過渡的推定困難運転状態判定ルーチンの処理の流れを示すフローチャートである。
【図７】気筒別空燃比推定ルーチンの処理の流れを示すフローチャートである。
【図８】気筒別空燃比制御ルーチンの処理の流れを示すフローチャートである。
【符号の説明】
【００８８】
１１…エンジン（内燃機関）、１２…吸気管、１４…エアフローメータ、１５…スロットルバルブ、１９…吸気マニホールド、２０…燃料噴射弁、２７，２８…可変バルブタイミング機構、３５…排気マニホールド、３６…排気集合部、３７…空燃比センサ、３８…触媒、４０…ＥＣＵ（気筒別空燃比推定手段，判定手段，状態変数リセット手段，気筒別空燃比制御手段）
【図１】
2008014178.tif 000003
【図２】
2008014178.tif 000004
【図３】
2008014178.tif 000005
【図４】
2008014178.tif 000006
【図５】
2008014178.tif 000007
【図６】
2008014178.tif 000008
【図７】
2008014178.tif 000009
【図８】
2008014178.tif 000010