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