(57)【特許請求の範囲】
【請求項１】
内燃機関の排気系に設けられた空燃比検出手段と、前記機関の排気系の挙動を記述するモデルに基づいてその内部状態を観測するオブザーバを設定し、前記空燃比検出手段の出力を入力として各気筒の空燃比を推定する気筒別空燃比推定手段とを備えた内燃機関の気筒別空燃比推定装置において、
前記気筒別空燃比推定手段は、前記オブザーバの前記各気筒の空燃比の推定に用いられるゲインを前記機関の運転状態に応じて変更することを特徴とする内燃機関の気筒別空燃比推定装置。
【請求項２】
前記気筒別空燃比推定手段は前記ゲインを、前記機関の回転数及び前記機関の吸気系内の圧力に応じて変更することを特徴とする請求項１記載の気筒別空燃比推定装置。
【請求項３】
前記気筒別空燃比推定手段は前記ゲインを、前記機関の回転数が増加するほど大きな値に設定することを特徴とする請求項２記載の気筒別空燃比推定装置。
【請求項４】
前記気筒別空燃比推定手段は前記ゲインを、前記吸気系内の圧力が減少するほど大きな値に設置することを特徴とする請求項２又は３記載の気筒別空燃比推定装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、現代制御理論に基づくオブザーバを応用して、内燃機関の気筒別の空燃比を推定する気筒別空燃比推定装置に関する。
【０００２】
【従来の技術】
内燃機関の排気系の挙動を記述するモデルに基づいてその内部状態を観測するオブザーバを設定し、機関の排気系集合部に設けられ、空燃比に比例する出力を発生する空燃比センサの出力に基づいて、機関の気筒別の空燃比を推定するようにした気筒別空燃比推定方法が、従来より知られている（特開平５−１８００４０号公報）。
【０００３】
この推定方法では、上記排気系モデルの特性を規定するパラメータは、機関運転状態によって変化する点に着目し、該パラメータの値を機関運転状態に応じて変更するようにしている。
【０００４】
【発明が解決しようとする課題】
しかしながら、オブザーバの特性を機関運転状態に拘わらず最適とするためには、上記パラメータを機関運転状態に応じて変更するだけでは、必ずしも十分ではなく、特にオブザーバの安定性と収束性（収束速度）を最適とする上で改善の余地が残されていた。
【０００５】
本発明はこの点に着目してなされたものであり、オブザーバの安定性と収束性を、機関運転状態に拘わらず最適に設定することができる気筒別空燃比推定装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、請求項１記載の気筒別空燃比推定装置は、内燃機関の排気系に設けられた空燃比検出手段と、前記機関の排気系の挙動を記述するモデルに基づいてその内部状態を観測するオブザーバを設定し、前記空燃比検出手段の出力を入力として各気筒の空燃比を推定する気筒別空燃比推定手段とを備えた内燃機関の気筒別空燃比推定装置において、前記気筒別空燃比推定手段は、前記オブザーバの前記各気筒の空燃比の推定に用いられるゲイン（ゲイン行列Ｋ）を前記機関の運転状態に応じて変更することを特徴とする。
請求項２記載の気筒別空燃比推定装置は、請求項１記載の気筒別空燃比推定装置において、前記気筒別空燃比推定手段は前記ゲインを、前記機関の回転数及び前記機関の吸気系内の圧力に応じて変更することを特徴とする。
請求項３記載の気筒別空燃比推定装置は、請求項２記載の気筒別空燃比推定装置において、前記気筒別空燃比推定手段は前記ゲインを、前記機関の回転数が増加するほど大きな値に設定することを特徴とする。
請求項４記載の気筒別空燃比推定装置は、請求項２又は３記載の気筒別空燃比推定装置において、前記気筒別空燃比推定手段は前記ゲインを、前記吸気系内の圧力が減少するほど大きな値に設置することを特徴とする。
【０００７】
本発明によれば、オブザーバの各気筒の空燃比の推定に用いられるゲインが機関運転状態に応じて変更される。
【０００８】
【発明の実施の形態】
以下本発明の実施の形態を図面を参照して説明する。
【０００９】
図１は本発明の実施の一形態にかかる内燃機関（以下「エンジン」という）及びその制御装置の構成を示す図である。同図中、１は４気筒のエンジンである。
【００１０】
エンジン１の吸気管２は分岐部（吸気マニホルド）１１を介してエンジン１の各気筒の燃焼室に連通する。吸気管２の途中にはスロットル弁３が配されている。スロットル弁３にはスロットル弁開度（θＴＨ）センサ４が連結されており、スロットル弁開度θＴＨに応じた電気信号を出力して電子コントロールユニット（以下「ＥＣＵ」という）５に供給する。吸気管２には、スロットル弁３をバイパスする補助空気通路６が設けられており、該通路６の途中には補助空気量制御弁７が配されている。補助空気量制御弁７は、ＥＣＵ５に接続されており、ＥＣＵ５によりその開弁量が制御される。
【００１１】
吸気管２のスロットル弁３の上流側には吸気温（ＴＡ）センサ８が装着されており、その検出信号がＥＣＵ５に供給される。吸気管２のスロットル弁３と吸気マニホルド１１の間には、チャンバ９が設けられており、チャンバ９には吸気管内絶対圧（ＰＢＡ）センサ１０が取り付けられている。ＰＢＡセンサ１０の検出信号はＥＣＵ５に供給される。
【００１２】
エンジン１の本体にはエンジン水温（ＴＷ）センサ１３が装着されており、その検出信号がＥＣＵ５に供給される。ＥＣＵ５には、エンジン１のクランク軸（図示せず）の回転角度を検出するクランク角度位置センサ１４が接続されており、クランク軸の回転角度に応じた信号がＥＣＵ５に供給される。クランク角度位置センサ１４は、エンジン１の特定の気筒の所定クランク角度位置で信号パルス（以下「ＣＹＬ信号パルス」という）を出力する気筒判別センサ、各気筒の吸入行程開始時の上死点（ＴＤＣ）に関し所定クランク角度前のクランク角度位置で（４気筒エンジンではクランク角１８０度毎に）ＴＤＣ信号パルスを出力するＴＤＣセンサ及びＴＤＣ信号パルスより短い一定クランク角周期（例えば３０度周期）で１パルス（以下「ＣＲＫ信号パルス」という）を発生するＣＲＫセンサから成り、ＣＹＬ信号パルス、ＴＤＣ信号パルス及びＣＲＫ信号パルスがＥＣＵ５に供給される。これらの信号パルスは、燃料噴射時期、点火時期等の各種タイミング制御及びエンジン回転数ＮＥの検出に使用される。
【００１３】
吸気マニホルド１１の吸気弁の少し上流側には、各気筒毎に燃料噴射弁１２が設けられており、各噴射弁は図示しない燃料ポンプに接続されているとともにＥＣＵ５に電気的に接続されて、ＥＣＵ５からの信号により燃料噴射時期及び燃料噴射時間（開弁時間）が制御される。エンジン１の点火プラグ（図示せず）もＥＣＵ５に電気的に接続されており、ＥＣＵ５により点火時期θＩＧが制御される。
【００１４】
排気管１６は分岐部（排気マニホルド）１５を介してエンジン１の燃焼室に接続されている。排気管１６には分岐部１５が集合する部分の直ぐ下流側に、広域空燃比センサ（以下「ＬＡＦセンサ」という）１７が設けられている。さらにＬＡＦセンサ１７の下流側には直下三元触媒１９及び床下三元触媒２０が配されており、またこれらの三元触媒１９及び２０の間には酸素濃度センサ（以下「Ｏ２センサ」という）１８が装着されている。三元触媒１９、２０は、排気ガス中のＨＣ，ＣＯ，ＮＯｘ等の浄化を行う。
【００１５】
ＬＡＦセンサ１７は、ローパスフィルタ２２を介してＥＣＵ５に接続されており、排気ガス中の酸素濃度（空燃比）に略比例した電気信号を出力し、その電気信号をＥＣＵ５に供給する。Ｏ２センサ１８は、その出力が理論空燃比の前後において急激に変化する特性を有し、その出力は理論空燃比よりリッチ側で高レベルとなり、リーン側で低レベルとなる。Ｏ２センサ１８は、ローパスフィルタ２３を介してＥＣＵ５に接続されており、その検出信号はＥＣＵ５に供給される。
【００１６】
排気還流機構３０は、吸気管２のチャンバ９と排気管１６とを接続する排気還流路３１と、排気還流路３１の途中に設けられ、排気還流量を制御する排気還流弁（ＥＧＲ弁）３２と、ＥＧＲ弁３２の弁開度を検出し、その検出信号をＥＣＵ５に供給するリフトセンサ３３とから成る。ＥＧＲ弁３２は、ソレノイドを有する電磁弁であり、ソレノイドはＥＣＵ５に接続され、その弁開度がＥＣＵ５からの制御信号により変化させることができるように構成されている。
【００１７】
エンジン１は、吸気弁及び排気弁のうち少なくとも吸気弁のバルブタイミングを、エンジンの高速回転領域に適した高速バルブタイミングと、低速回転領域に適した低速バルブタイミングとの２段階に切換可能なバルブタイミング切換機構６０を有する。このバルブタイミングの切換は、弁リフト量の切換も含み、さらに低速バルブタイミング選択時は２つの吸気弁のうちの一方を休止させて、空燃比を理論空燃比よりリーン化する場合においても安定した燃焼を確保するようにしている。
【００１８】
バルブタイミング切換機構６０は、バルブタイミングの切換を油圧を介して行うものであり、この油圧切換を行う電磁弁及び油圧センサ（図示せず）がＥＣＵ５接続されている。油圧センサの検出信号はＥＣＵ５に供給され、ＥＣＵ５は電磁弁を制御してバルブタイミングの切換制御を行う。
【００１９】
また、ＥＣＵ５には、大気圧を検出する大気圧（ＰＡ）センサ２１が接続されており、その検出信号がＥＣＵ５に供給される。
【００２０】
ＥＣＵ５は、上述した各種センサからの入力信号波形を整形して電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変化する等の機能を有する入力回路と、中央処理回路（ＣＰＵ）と、該ＣＰＵで実行される各種演算プログラムや後述する各種マップ及び演算結果等を記憶するＲＯＭ及びＲＡＭからなる記憶回路と、燃料噴射弁１２等の各種電磁弁や点火プラグに駆動信号を出力する出力回路とを備えている。
【００２１】
ＥＣＵ５は、上述の各種エンジン運転パラメータ信号に基づいて、ＬＡＦセンサ１７及びＯ２センサ１８の出力に応じたフィードバック制御運転領域やオープン制御運転領域等の種々のエンジン運転状態を判別するとともに、エンジン運転状態に応じ、下記数式１により燃料噴射弁１２の燃料噴射時間ＴＯＵＴを演算し、この演算結果に基づいて燃料噴射弁１２を駆動する信号を出力する。
【００２２】
【数１】
0003683357.tif 000002
図２は上記数式１による燃料噴射時間ＴＯＵＴの算出手法を説明するための機能ブロック図であり、これを参照して本実施の形態における燃料噴射時間ＴＯＵＴの算出手法の概要を説明する。なお、本実施の形態ではエンジンへの燃料供給量は燃料噴射時間として算出されるが、これは噴射される燃料量に対応するので、ＴＯＵＴを燃料噴射量若しくは燃料量とも呼んでいる。
【００２３】
図２においてブロックＢ１は、吸入空気量に対応した基本燃料量ＴＩＭＦを算出する。この基本燃料量ＴＩＭＦは、基本的にはエンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに応じて設定されるが、スロットル弁３からエンジン１の燃焼室に至る吸気系をモデル化し、その吸気系モデルに基づいて吸入空気の遅れを考慮した補正を行うことが望ましい。その場合には、検出パラメータとしてスロットル弁開度θＴＨ及び大気圧ＰＡをさらに用いる。
【００２４】
ブロックＢ２〜Ｂ４は乗算ブロックであり、ブロックの入力パラメータを乗算して出力する。これらのブロックにより、上記数式１の演算が行われ、燃料噴射量ＴＯＵＴが得られる。
【００２５】
ブロックＢ９は、エンジン水温ＴＷに応じて設定されるエンジン水温補正係数ＫＴＷ，排気還流実行中に排気還流量に応じて設定されるＥＧＲ補正係数ＫＥＧＲ，蒸発燃料処理装置によるパージ実行時にパージ燃料量に応じて設定されるパージ補正係数ＫＰＵＧ等のフィードフォワード系補正係数をすべて乗算することにより、補正係数ＫＴＯＴＡＬを算出し、ブロックＢ２に入力する。
【００２６】
ブロックＢ２１は、エンジン回転数ＮＥ、吸気管内絶対圧ＰＢＡ等に応じて目標空燃比係数ＫＣＭＤを決定し、ブロック２２に入力する。目標空燃比係数ＫＣＭＤは、空燃比Ａ／Ｆの逆数、すなわち燃空比Ｆ／Ａに比例し、理論空燃比のとき値１．０をとるので、目標当量比ともいう。ブロックＢ２２は、ローパスフィルタ２３を介して入力されるＯ２センサ出力ＶＭＯ２に基づいて目標空燃比係数ＫＣＭＤを修正し、ブロックＢ１８及びＢ２３に入力する。ブロックＢ２３は、ＫＣＭＤ値に応じて燃料冷却補正を行い最終目標空燃比係数ＫＣＭＤＭを算出し、ブロックＢ３に入力する。
【００２７】
ブロックＢ１０は、ローパスフィルタ２２を介して入力されるＬＡＦセンサ出力値を、ＣＲＫ信号パルスの発生毎にサンプリングし、そのサンプル値をリングバッファメモリに順次記憶し、エンジン運転状態に応じて最適のタイミングでサンプリングしたサンプル値を選択し（ＬＡＦセンサ出力選択処理）、ブロックＢ１１に入力するとともにローパスフィルタブロックＢ１６を介してブロックＢ１８に入力する。このＬＡＦセンサ出力選択処理は、サンプリングのタイミングによっては変化する空燃比を正確に検出できないこと、燃焼室から排出される排気ガスがＬＡＦセンサ１７に到達するまでの時間やＬＡＦセンサ自体の反応時間がエンジン運転状態によって変化することを考慮したものである。
【００２８】
ブロックＢ１１は、いわゆるオブザーバとしての機能を有し、ＬＡＦセンサ１７によって検出される集合部（各気筒から排出された排気ガスの混合ガス）の空燃比に基づいて、各気筒毎の空燃比を推定し、４つの気筒に対応しているブロックＢ１２〜Ｂ１５に入力する。図２においては、ブロックＢ１２が気筒＃１に対応し、ブロックＢ１３が気筒＃２に対応し、ブロックＢ１４が気筒＃３に対応し、ブロックＢ１５が気筒＃４に対応する。ブロックＢ１２〜Ｂ１５は、各気筒の空燃比（オブザーバブロックＢ１１が推定した空燃比）が、集合部空燃比に一致するようにＰＩＤ制御により気筒別補正係数ＫＯＢＳＶ＃Ｎ（Ｎ＝１〜４）を算出し、それぞれブロックＢ５〜Ｂ８に入力する。
【００２９】
ブロックＢ１８は、検出空燃比と目標空燃比との偏差に応じてＰＩＤ制御によりＰＩＤ補正係数ＫＬＡＦを算出してブロックＢ４に入力する。
【００３０】
以上のように本実施の形態では、ＬＡＦセンサ１７の出力の応じて通常のＰＩＤ制御により算出したＰＩＤ補正係数ＫＬＡＦを上記数式１に適用するとともに、ＬＡＦセンサ出力に基づいて推定した各気筒の空燃比に応じて設定される気筒別補正係数ＫＯＢＳＶ＃Ｎをさらに上記数式１に適用して、気筒毎の燃料噴射量ＴＯＵＴ（Ｎ）を算出している。気筒別補正係数ＫＯＢＳＶ＃Ｎにより気筒毎の空燃比のばらつきを解消して、触媒の浄化率を向上させ、種々のエンジン運転状態において良好な排気ガス特性を得ることができる。
【００３１】
本実施の形態では、上述した図２の各ブロックの機能は、ＥＣＵ５のＣＰＵによる演算処理により実現されるので、この処理のフローチャートを参照して処理の内容を具体的に説明する。
【００３２】
図３は、ＬＡＦセンサ１７の出力に応じてＰＩＤ補正係数ＫＬＡＦ及び気筒別補正係数ＫＯＢＳＶを算出する処理のフローチャートである。本処理はＴＤＣ信号パルスの発生毎に実行される。
【００３３】
ステップＳ１では、始動モードか否か、すなわちクランキング中か否かを判別し、始動モードのときは始動モードの処理へ移行する。始動モードでなければ、目標空燃比係数（目標当量比）ＫＣＭＤ及び最終目標空燃比係数ＫＣＭＤＭの算出（ステップＳ２）及びＬＡＦセンサ出力選択処理を行う（ステップＳ３）とともに検出当量比ＫＡＣＴの演算を行う（ステップＳ４）。検出当量比ＫＡＣＴは、ＬＡＦセンサ１７の出力を当量比に変換したものである。
【００３４】
次いでＬＡＦセンサ１７の活性化が完了したか否かの活性判別を行う（ステップＳ５）。これは、例えばＬＡＦセンサ１７の出力電圧とその中心電圧との差を所定値（例えば０．４Ｖ）と比較し、該差が所定値より小さいとき活性化が完了したと判別するものである。
【００３５】
次にエンジン運転状態がＬＡＦセンサ１７の出力に基づくフィードバック制御を実行する運転領域（以下「ＬＡＦフィードバック領域」という）にあるか否かの判別を行う（ステップＳ６）。これは、例えばＬＡＦセンサ１７の活性化が完了し、且つフュエルカット中やスロットル全開運転中でないとき、ＬＡＦフィードバック領域と判定するものである。この判別の結果、ＬＡＦフィードバック領域にないときはリセットフラグＦＫＬＡＦＲＥＳＥＴを「１」に設定し、ＬＡＦフィードバック領域にあるときは「０」とする。
【００３６】
続くステップＳ７では、リセットフラグＦＫＬＡＦＲＥＳＥＴが「１」か否かを判別し、ＦＫＬＡＦＲＥＳＥＴ＝１のときは、ステップＳ８に進んでＰＩＤ補正係数ＫＬＡＦを「１．０」に、また気筒別補正係数ＫＯＢＳＶを後述する気筒別補正係数学習値ＫＯＢＳＶ＃Ｎｓｔｙに設定するとともに、ＰＩＤ制御の積分項ＫＬＡＦＩを「０」に設定して、本処理を終了する。
【００３７】
一方ステップＳ７でＦＫＬＡＦＲＥＳＥＴ＝０のときは、気筒別空燃比補正係数ＫＯＢＳＶ＃Ｎ及びＰＩＤ補正係数ＫＬＡＦの演算を行って（ステップＳ９、Ｓ１０）、本処理を終了する。
【００３８】
次に図３のステップＳ９における気筒別補正係数ＫＯＢＳＶ＃Ｎの算出処理について説明する。
【００３９】
最初にオブザーバによる気筒別空燃比の推定手法について説明し、次に推定した気筒別空燃比に応じた気筒別補正係数ＫＯＢＳＶ＃Ｎの算出手法を説明する。
【００４０】
排気系集合部の空燃比を各気筒の空燃比の時間的な寄与度を考慮した加重平均であると考え、時刻ｋのときの値を数式２のように表した。なお、燃料量（Ｆ）を操作量としたため、数式２では燃空比Ｆ／Ａを用いている。
【００４１】
【数２】
0003683357.tif 000003
すなわち、集合部の燃空比は、気筒毎の過去の燃焼履歴に重み係数Ｃ（例えば直前に燃焼した気筒は４０％、その前が３０％、…など）を乗算したものの合計で表した。このモデルをブロック線図で表すと、図４のようになり、その状態方程式は数式３のようになる。
【００４２】
【数３】
0003683357.tif 000004
また、集合部の燃空比をｙ（ｋ）とおくと、出力方程式は数式４のように表すことができる。数式４のＣ１〜Ｃ４が重み係数である。
【００４３】
【数４】
0003683357.tif 000005
数式４において、ｕ（ｋ）は観測不可能であるため、この状態方程式からオブザーバを設計してもｘ（ｋ）は観測することができない。そこで、４ＴＤＣ前（すなわち、同一気筒）の空燃比は急激に変化しない定常運転状態にあると仮定してｘ（ｋ＋１）＝ｘ（ｋ−３）とすると、数式４は数式５のようになる。
【００４４】
【数５】
0003683357.tif 000006
このように設定したモデルが４気筒エンジンの排気系をよくモデル化していることは実験的に確認されている。従って、集合部Ａ／Ｆから気筒別空燃比を推定する問題は、数式６で示される状態方程式と出力方程式にてｘ（ｋ）を観察する通常のカルマンフィルタの問題に帰着する。その荷重行列Ｑ，Ｒを数式７のようにおいてリカッチの方程式を解くと、ゲイン行列Ｋ（数式８）のＫ１〜Ｋ４を決定することができる。
【００４５】
【数６】
0003683357.tif 000007
【００４６】
【数７】
0003683357.tif 000008
【００４７】
【数８】
0003683357.tif 000009
本実施形態のモデルでは、一般的なオブザーバの構成における入力ｕ（ｋ）がないので、図５に示すようにｙ（ｋ）のみを入力とする構成となり、これを数式で表すと数式９のようになる。
【００４８】
【数９】
0003683357.tif 000010
したがって、集合部燃空比ｙ（ｋ）及び過去の気筒別燃空比の推定値Ｘハット（ｋ）から、今回の気筒別燃空比の推定値Ｘハット（ｋ）を算出することができる。
【００４９】
上記数式９を用いて気筒別燃空比Ｘハット（ｋ＋１）を算出する場合、集合部燃空比ｙ（ｋ）として、検出当量比ＫＡＣＴ（ｋ）が適用されるが、この検出当量比ＫＡＣＴ（ｋ）は、ＬＡＦセンサ１７の応答遅れを含んでいるのに対し、ＣＸハット（ｋ）（４つの気筒別燃空比の重み付け加算値）は、遅れを含んでいない。そのため、数式９を用いたのでは、ＬＡＦセンサ１７の応答遅れの影響で、気筒別燃空比を正確に推定することはできない。特にエンジン回転数ＮＥが高いときは、ＴＤＣ信号パルスの発生間隔が短くなるので応答遅れの影響が大きくなる。
【００５０】
そこで本実施形態では、数式１０により集合部燃空比の推定値ｙハット（ｋ）を算出し、これを数式１１に適用することにより、気筒別燃空比の推定値Ｘハット（ｋ＋１）を算出するようにした。
【００５１】
【数１０】
0003683357.tif 000011
【００５２】
【数１１】
0003683357.tif 000012
上記数式１０において、ＤＬはＬＡＦセンサ１７の応答遅れの時定数に相当するパラメータである。また、数式１０及び１１において、Ｘハット（ｋ）の初期ベクトルは、例えば構成要素（ｘハット（ｋ−３），ｘハット（ｋ−２），ｘハット（ｋ−１），ｘハット（ｋ））の値が全て「１．０」のベクトルとし、数式１０においてｙハット（ｋ−１）の初期値は「１．０」とする。
【００５３】
このように、数式９におけるＣＸハット（ｋ）を、ＬＡＦセンサの応答遅れを含んだ集合部燃空比の推定値ｙハット（ｋ）に置き換えた数式１１を用いることにより、ＬＡＦセンサの応答遅れを適切に補償して正確な気筒別空燃比の推定を行うことができる。なお、以下の説明における各気筒の推定当量比ＫＡＣＴ＃１（ｋ）〜ＫＡＣＴ＃４（ｋ）が、それぞれｘハット（ｋ）に相当する。
【００５４】
次に本実施形態におけるゲイン行列Ｋ、重み係数Ｃ及び遅れ時定数ＤＬの具体的な設定手法を説明する。
【００５５】
一般には、重み係数Ｃ（Ｃ１、Ｃ２、Ｃ３、Ｃ４）を定めると、上述したように、リカッチの方程式を解くことによりゲイン行列Ｋを決定することでができるが、本実施形態では、Ｃ１＝Ｃ２＝０とし、Ｃ３及びＣ４を図６（ａ）に示すように設定されたＣテーブルを用いて、エンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに応じて設定するとともに、ゲイン行列Ｋも図７に示すように設定されたＫテーブルを用いて、エンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに応じて設定している（Ｋ４は、Ｋ４＝−Ｋ２とする）。これらの図において、ＰＢＡ１及びＰＢＡ２はそれぞれ例えば６６０ｍｍＨｇ及び２６０ｍｍＨｇであり、適宜補間演算を行って、検出したエンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに応じた重み係数Ｃ及びゲイン行列Ｋの算出を行う。
【００５６】
Ｃテーブルは、エンジン回転数ＮＥが増加するほど、また吸気管内絶対圧ＰＢＡが低下するほどＣ３値が増加し、Ｃ４値が減少するように設定されている。また、Ｋテーブルは、Ｋ１、Ｋ２及びＫ３のいずれも、エンジン回転数ＮＥが増加するほど、吸気管内絶対圧ＰＢＡが減少するほど、増加するように設定されている。
【００５７】
また、遅れ時定数ＤＬは、図６（ｂ）に示すようにエンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに応じて設定されたＤＬテーブルを用いて算出される。ＰＢＡ１及びＰＢＡ２はそれぞれ例えば６６０ｍｍＨｇ及び２６０ｍｍＨｇであり、適宜補間演算を行って、検出したエンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに応じた遅れ時定数ＤＬの算出を行う。ＤＬテーブルは、エンジン回転数ＮＥが増加するほど、また吸気管内絶対圧ＰＢＡが減少するほど、ＤＬ値が増加するように設定されている。なお、遅れ時定数ＤＬの値は、実際の応答遅れ時間に相当する値より２０％程度遅い時間に相当する値が最適であることが実験的に確認されている。
【００５８】
以上のように本実施形態では、重み係数Ｃだけでなくゲイン行列Ｋもエンジン運転状態の応じて設定するようにしたので、オブザーバの安定性と収束性を、エンジン運転状態に拘わらず最適に設定することができる。
【００５９】
次に推定した気筒別空燃比に基づいて気筒別補正係数ＫＯＢＳＶ＃Ｎを算出する手法を、図８を参照して説明する。
【００６０】
先ず、数式１２に示すように、集合部Ａ／Ｆに対応する検出当量比ＫＡＣＴを全気筒の気筒別補正係数ＫＯＢＳＶ＃Ｎの平均値の前回演算値で除算して目標Ａ／Ｆに対応する当量比としての目標値ＫＣＭＤＯＢＳＶ（ｋ）を算出し、＃１気筒の気筒別補正係数ＫＯＢＳＶ＃１は、その目標値ＫＣＭＤＯＢＳＶ（ｋ）と＃１気筒の推定当量比ＫＡＣＴ＃１（ｋ）との偏差ＤＫＡＣＴ＃１（ｋ）（＝ＫＡＣＴ＃１（ｋ）−ＫＣＭＤＯＢＳＶ（ｋ））が０となるように、ＰＩＤ制御により求める。
【００６１】
【数１２】
0003683357.tif 000013
より具体的には、数式１３により比例項ＫＯＢＳＶＰ＃１、積分項ＫＯＢＳＶＩ＃１及び微分項ＫＯＢＳＶＤ＃１を求め、さらに数式１４により気筒別補正係数ＫＯＢＳＶ＃１を算出する。
【００６２】
【数１３】
ＫＯＢＳＶＰ＃１（ｋ）＝ＫＰＯＢＳＶ×ＤＫＡＣＴ＃１（ｋ）
ＫＯＢＳＶＩ＃１（ｋ）＝ＫＩＯＢＳＶ×ＤＫＡＣＴ＃１（ｋ）＋ＫＯＢＳＶＩ＃１（ｋ−１）
ＫＯＢＳＶＤ＃１（ｋ）＝ＫＤＯＢＳＶ×（ＤＫＡＣＴ＃１（ｋ）−ＤＫＡＣＴ＃１（ｋ−１））
【数１４】
ＫＯＢＳＶ＃１（ｋ）＝ＫＯＢＳＶＰ＃１（ｋ）＋ＫＯＢＳＶＩ＃１（ｋ）＋ＫＯＢＳＶＤ＃１（ｋ）＋１．０
＃２〜＃４気筒についても同様の演算を行い、ＫＯＢＳＶ＃２〜＃４を算出する。
【００６３】
これにより、各気筒の空燃比は集合部空燃比に収束し、集合部空燃比はＰＩＤ補正係数ＫＬＡＦにより、目標空燃比に収束するので、結果的にすべての気筒の空燃比を目標空燃比に収束させることができる。
【００６４】
さらに、この気筒別補正係数ＫＯＢＳＶ＃Ｎの学習値である気筒別補正係数学習値ＫＯＢＳＶ＃Ｎｓｔｙを下記の式により、運転領域毎に算出して、バッテリでバックアップされたＲＡＭに記憶する。
【００６５】
【数１５】
0003683357.tif 000014
ここで、Ｃｓｔｙは重み係数、右辺のＫＯＢＳＶ＃Ｎｓｔｙは前回学習値である。
【００６６】
図９は、図３のステップＳ９における気筒別補正係数ＫＯＢＳＶ＃Ｎ算出処理のフローチャートである。
【００６７】
先ずステップＳ３３１では、ＬＡＦセンサ１７のリーン劣化を検出しているか否かを判別し、検出していないときは、直ちにステップＳ３３６に進む一方、検出しているときは、目標当量比ＫＣＭＤが１．０であるか否か、即ち目標空燃比が理論空燃比か否かを判別する（ステップＳ３３２）。ここで、ＬＡＦセンサのリーン劣化とは、理論空燃比よりリーン側の空燃比に対応する出力のずれが所定以上となった状態をいう。そして、ＫＣＭＤ＝１．０であるときは、ステップＳ３３６に進む一方、ＫＣＭＤ≠１．０であるときは、すべての気筒の気筒別補正係数ＫＯＢＳＶ＃Ｎを１．０に設定して（ステップＳ３４４）、即ち気筒別空燃比フィードバック制御は行わずに本処理を終了する。ステップＳ３３６では、上述したオブザーバによる気筒別空燃比の推定処理を行い、次いでＰＩＤ補正係数ＫＬＡＦを現在値に維持すべきことを「１」で示すホールドフラグＦＫＬＡＦＨＯＬＤが「１」か否かを判別し、ＦＫＬＡＦＨＯＬＤ＝１であるときは、直ちに本処理を終了する。
【００６８】
続くステップＳ３３８では、リセットフラグＦＫＬＡＦＲＥＳＥＴが「１」か否かを判別し、ＦＫＬＡＦＲＥＳＥＴ＝０であるときは、エンジン回転数ＮＥが所定回転数ＮＯＢＳＶ（例えば３５００ｒｐｍ）より高いか否かを判別し（ステップＳ３３９）、ＮＥ≦ＮＯＢＳＶであるときは、吸気管内絶対圧ＰＢＡが所定上限圧ＰＢＯＢＳＶＨ（例えば６５０ｍｍＨｇ）より高いか否かを判別し（ステップＳ３４０）、ＰＢＡ≦ＰＢＯＢＳＶＨであるときは、エンジン回転数ＮＥに応じて図１１に示すように設定されたＰＢＯＢＳＶＬテーブルを検索して、下限圧ＰＢＯＢＳＶＬを決定し（ステップＳ３４１）、吸気管内絶対圧ＰＢＡが下限圧ＰＢＯＢＳＶＬより低いか否かを判別する（ステップＳ３４２）。
【００６９】
以上の判別の結果、ステップＳ３３８〜Ｓ３４０またはＳ３４２のいずれかの答が肯定（ＹＥＳ）のときは、前記ステップＳ３４４に進み、気筒別空燃比フィードバック制御は行わない。一方、ステップＳ３３８〜Ｓ３４０及びＳ３４２の答がすべて否定（ＮＯ）のときは、エンジン運転状態が図１１に斜線で示す領域にあり、気筒別空燃比フィードバック制御が実行可能と判定して、上述した手法により気筒別補正係数ＫＯＢＳＶ＃Ｎ及び学習値ＫＯＢＳＶ＃Ｎｓｔｙの演算を行い（ステップＳ３４３）、本処理を終了する。
【００７０】
図１０は、図９のステップＳ３３６における気筒別空燃比の推定処理のフローチャートである。
【００７１】
同図において、ステップＳ３６１では、高速バルブタイミング用のオブザーバ演算（即ち気筒別空燃比の推定演算）を行い、続くステップＳ３６２では、低速バルブタイミング用のオブザーバ演算を行う。そして、現在のバルブタイミングが高速バルブタイミングか否かを判別し（ステップＳ３６３）、高速バルブタイミングのときは、高速バルブタイミング用のオブザーバ演算結果を選択し（ステップＳ３６４）、低速バルブタイミングのときは、低速バルブタイミング用のオブザーバ演算結果を選択する（ステップＳ３６５）。
【００７２】
このように、現在のバルブタイミングに拘わらず、高速及び低速バルブタイミング用のオブザーバ演算をともに行い、現在のバルブタイミングに応じて、演算結果を選択するようにしたのは、気筒別空燃比の推定演算は、収束するまでに数回の演算を要するからである。これにより、バルブタイミング切換直後の気筒別空燃比の推定精度を向上させることができる。
【００７３】
【発明の効果】
以上詳述したように本発明によれば、オブザーバの各気筒の空燃比の推定に用いられるゲインが機関運転状態に応じて変更されるので、オブザーバの安定性と収束性を、機関運転状態に拘わらず最適に設定することができる。
【図面の簡単な説明】
【図１】本発明の実施の一形態にかかる内燃機関及びその制御装置の構成を示す図である。
【図２】本実施形態における空燃比制御手法を説明するための機能ブロック図である。
【図３】ＬＡＦセンサ出力に基づいて空燃比補正係数を算出する処理のフローチャートである。
【図４】内燃機関の排気系の挙動を示すモデルのブロック図である。
【図５】本実施形態におけるオブザーバの構成を示すブロック図である。
【図６】オブザーバの重み係数（Ｃ）及びＬＡＦセンサの応答遅れ時定数（ＤＬ）を設定するためのテーブルを示す図である。
【図７】オブザーバのゲイン行列（Ｋ）を設定するためのテーブルを示す図である。
【図８】気筒別空燃比フィードバック制御を説明するためのブロック図である。
【図９】気筒別補正係数（ＫＯＢＳＶ＃Ｎ）を算出する処理のフローチャートである。
【図１０】気筒別空燃比推定処理のフローチャートである。
【図１１】気筒別空燃比フィードバック制御を実行する運転領域を示す図である。
【符号の説明】
１  内燃機関（本体）
２  吸気管
５  電子コントロールユニット（ＥＣＵ）
１２  燃料噴射弁
１６  排気管
１７  広域空燃比センサ
１８  酸素濃度センサ
【図１】
0003683357.tif 000015
【図２】
0003683357.tif 000016
【図３】
0003683357.tif 000017
【図４】
0003683357.tif 000018
【図５】
0003683357.tif 000019
【図６】
0003683357.tif 000020
【図７】
0003683357.tif 000021
【図８】
0003683357.tif 000022
【図９】
0003683357.tif 000023
【図１０】
0003683357.tif 000024
【図１１】
0003683357.tif 000025