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