(57)【要約】【課題】安定余裕が大きく、ロバスト性の高い制御を実現できる内燃機関の制御装置を提供する。【解決手段】内燃機関3の制御装置１のECU2は、検出空燃比KACTの推定値KACT_ESTを、これと、空燃比ばらつき係数Φiおよび複数の模擬値KACT_OSiとの関係を定義したモデル[式(2)]から推定し、この推定値KACT_ESTが検出空燃比KACTに一致するように、空燃比ばらつき係数Φiを同定し(ステップ8)、同定された空燃比ばらつき係数Φiに応じて、空燃比ばらつき補正係数KOBSViを気筒毎に算出し(ステップ9)、空燃比ばらつき補正係数の学習補正値KOBSV_LSiを気筒毎に算出し(ステップ10)、空燃比ばらつき補正係数KOBSViおよび学習補正値KOBSV_LSiにより基本燃料噴射量TIBSを補正することで、最終燃料噴射量TOUTiを気筒毎に算出する(ステップ11,12)。【選択図】  図２
2008169849.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の第１内部変数の挙動を反映する検出値を検出する検出手段と、
前記第１内部変数の、前記内燃機関のクランク角に対応する挙動を予め仮定した所定の模擬値を生成する模擬値生成手段と、
前記検出値の推定値を、当該推定値と前記模擬値との関係を定義したモデルに基づいて推定する推定手段と、
前記推定された推定値が前記検出された検出値に一致するように、前記検出された検出値および前記生成された模擬値に応じて、前記モデルのモデルパラメータをオンボードで同定する同定手段と、
当該同定されたモデルパラメータに応じて、前記内燃機関に入力する第１入力を決定する第１制御手段と、
を備えることを特徴とする内燃機関の制御装置。
【請求項２】
前記検出値を所定の目標値に収束させるように、前記内燃機関に入力する第２入力を決定する第２制御手段をさらに備え、
前記第１内部変数は、複数の第１内部変数で構成され、
前記模擬値は、前記複数の第１内部変数の、前記内燃機関のクランク角に対応する挙動をそれぞれ予め仮定した複数の模擬値で構成され、
前記モデルパラメータは、複数のモデルパラメータで構成され、
前記同定手段は、前記推定値が前記検出値に一致するように、前記検出値および前記複数の模擬値に応じて、前記複数のモデルパラメータを同定し、
前記第１制御手段は、前記同定された複数のモデルパラメータが当該同定された複数のモデルパラメータの平均値に収束するように、前記第１入力を決定することを特徴とする請求項１に記載の内燃機関の制御装置。
【請求項３】
前記第１制御手段は、
逐次型統計アルゴリズムを用いることにより、前記第１入力の学習補正値を算出する学習補正値算出手段と、
当該算出された学習補正値により前記第１入力を補正する補正手段と、
当該補正された第１入力を前記内燃機関に入力する入力手段と、
を備えることを特徴とする請求項１または２に記載の内燃機関の制御装置。
【請求項４】
前記学習補正値算出手段は、
前記第１入力の前記学習補正値を、当該学習補正値を従属変数としかつ前記第１内部変数に影響を及ぼす第２内部変数を独立変数とする回帰式により算出するとともに、当該回帰式の回帰係数および定数項を前記逐次型統計アルゴリズムにより算出することを特徴とする請求項３に記載の内燃機関の制御装置。
【請求項５】
前記第１制御手段は、前記第１入力に含まれる入力成分を、前記モデルパラメータと所定の目標値との偏差に基づいて決定することを特徴とする請求項１ないし４のいずれかに記載の内燃機関の制御装置。
【請求項６】
前記第１制御手段は、前記第１入力に含まれる前記入力成分以外の他の入力成分を、前記モデルパラメータに基づいて決定することを特徴とする請求項５に記載の内燃機関の制御装置。
【請求項７】
前記第１制御手段は、応答指定型制御アルゴリズムにより、前記モデルパラメータに応じて前記第１入力を決定することを特徴とする請求項１ないし５のいずれかに記載の内燃機関の制御装置。
【請求項８】
前記同定手段は、前記モデルパラメータを固定ゲイン法により同定することを特徴とする請求項１ないし７のいずれかに記載の内燃機関の制御装置。
【請求項９】
前記同定手段は、モデルパラメータ基準値を前記第２内部変数に応じて算出し、当該算出したモデルパラメータ基準値に所定の補正成分を加算することにより、前記モデルパラメータを同定することを特徴とする請求項４に記載の内燃機関の制御装置。
【請求項１０】
前記検出値および前記模擬値の一方を、所定の遅延時間分、遅延する遅延手段をさらに備え、
前記同定手段は、前記検出値および前記模擬値の前記遅延された一方と、前記検出値および前記模擬値の他方とに応じて、前記モデルパラメータを同定することを特徴とする請求項１ないし９のいずれかに記載の内燃機関の制御装置。
【請求項１１】
前記検出値に所定のフィルタリング処理を施すことにより、前記検出値のフィルタ値を生成するフィルタ手段をさらに備え、
前記同定手段は、前記検出値のフィルタ値および前記模擬値に応じて、前記モデルパラメータを同定することを特徴とする請求項１ないし９のいずれかに記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラントとしての内燃機関の内部変数の挙動を模擬化した模擬値と、内部変数の挙動を反映する検出値との関係を定義したモデルを用いることにより、内燃機関を制御する内燃機関の制御装置に関する。
【背景技術】
【０００２】
近年、車両用の内燃機関においては、社会的な要請に起因して、良好な排気ガス特性すなわち良好な触媒浄化率を確保することが要求されている。一方、複数の気筒を有する内燃機関では、ＥＧＲ装置、蒸発燃料処理装置およびインジェクタなどの不具合に起因して、複数の気筒に供給される混合気の空燃比が気筒間でばらつくことがあり、その場合には、触媒浄化率の低下を招くおそれがある。これを防止するための内燃機関の制御装置として、最適制御理論によるオブザーバを適用することにより、複数の気筒間の空燃比のばらつきを補正する内燃機関の空燃比制御装置が知られている（例えば、特許文献１参照）。この空燃比制御装置は、内燃機関の排気管の集合部に設けられ、排気ガス中の空燃比を検出するＬＡＦセンサと、このＬＡＦセンサの検出信号（検出空燃比）が入力される制御ユニットと、内燃機関の吸気管のインテークマニホールドに気筒毎に設けられ、制御ユニットに接続されたインジェクタなどを備えている。
【０００３】
この制御ユニットでは、ＬＡＦセンサの検出空燃比に基づき、各インジェクタの燃料噴射量である気筒毎燃料噴射量を、以下のようにオブザーバおよびＰＩＤ制御を用いて算出することにより、複数の気筒から排出される排気ガスの空燃比、すなわち複数の気筒に供給される混合気の空燃比における気筒間のばらつきが補正される。
【０００４】
すなわち、制御ユニットは、内燃機関の運転状態に応じて、基本噴射量を算出し、これに各種の補正係数を乗算することにより、出力噴射量を算出する。次いで、後述するように、オブザーバにより気筒毎の推定空燃比を推定し、ＰＩＤ制御により、気筒毎の推定空燃比に基づいて気筒毎フィードバック補正係数をそれぞれ算出し、これらの気筒毎フィードバック補正係数を出力噴射量に乗算することにより、気筒毎燃料噴射量がそれぞれ算出される。
【０００５】
また、上記オブザーバでは、気筒毎の推定空燃比が最適制御理論に基づいて推定される。具体的には、気筒毎の燃空比および集合部（ＬＡＦセンサの取り付け部）の燃空比の関係を表す離散時間系のモデルを用いることにより、気筒毎の推定空燃比が算出される。さらに、前記ＰＩＤ制御では、集合部空燃比すなわち検出空燃比をフィードバック補正係数の前回値の平均値で除算した値を目標値とし、この目標値とオブザーバにより推定された気筒毎の推定空燃比との偏差が値０に収束するように、気筒毎のフィードバック補正係数が算出される。
【０００６】
さらに、他の空燃比制御装置として、複数の気筒における吸入空気量を気筒毎に推定した推定吸入空気量と、上記と同様のオブザーバにより気筒毎に推定した推定空燃比とに基づいて、燃料噴射量を気筒毎に算出するものが知られている（例えば、特許文献２参照）。
【０００７】
具体的には、この空燃比制御装置では、エンジン回転数および吸気管内圧に応じてマップを検索することにより、目標吸入燃料量が算出される。また、内燃機関の吸気系に流体力学モデルを適用することにより、推定吸入空気量が気筒毎に算出され、前述したオブザーバにより推定空燃比が気筒毎に算出される。さらに、推定吸入空気量を推定空燃比で除算することにより、推定吸入燃料量が気筒毎に算出され、適応制御器により、推定吸入燃料量が目標吸入燃料量に一致するように、最終的な燃料噴射量が算出される。
【０００８】
【特許文献１】特許第３２９６４７２号公報（第１９〜２３頁、図３５，３６）
【特許文献２】特開平６−７４０７６号公報（第３〜１２頁、図１，３１）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
近年、内燃機関では、前述した良好な触媒浄化率の確保要求とは別に、高出力・高トルク化が要求されており、これを達成するために、排気系レイアウトを複雑な形状（例えばエキゾーストマニホールドの排気通路が４→２→１とその数を漸減しながら集合するような形状）とすることで、排気抵抗や排気干渉を減らす手法が知られている。しかし、そのような排気系レイアウトを有する内燃機関に、前者の空燃比制御装置を適用した場合、従来の最適制御理論では、オブザーバが成立しなくなるため、気筒間の空燃比のばらつきを適切に補正することができず、触媒浄化率の低下を招くおそれがある。これは、従来の最適制御理論では、想定モデルおよび最適制御理論自体において、モデル化誤差およびモデルの動特性変化が考慮されていないため、オブザーバの安定余裕が小さく、ロバスト性が低いので、燃料付着などに起因するＬＡＦセンサの検出空燃比における各気筒の排気ガスの寄与度の変化、ＬＡＦセンサの応答ばらつきおよびＬＡＦセンサの経年変化に対して安定性が不十分であることによる。
【００１０】
また、後者の空燃比制御装置においても、前者と同様のオブザーバを用いているため、前述した理由によりオブザーバが成立しなくなることがあり、その場合には、燃料噴射量を気筒毎に適切に算出できなくなることで、触媒浄化率の低下を招くおそれがある。さらに、多気筒式内燃機関では、吸入空気量も気筒間でばらつきを生じるのが一般的であるのに対して、後者の空燃比制御装置では、この吸入空気量のばらつきの補正が考慮されておらず、流体力学モデルを適用することにより、吸入空気量を気筒毎に推定しているに過ぎない。そのため、気筒間の吸入空気量のばらつきを適切に補正することができず、気筒間の空燃比のばらつきを招くことで、触媒浄化率がさらに低下するおそれがある。
【００１１】
本発明は、上記課題を解決するためになされたもので、安定余裕が大きく、ロバスト性の高い制御を実現できる内燃機関の制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、請求項１に係る内燃機関３の制御装置１は、内燃機関３の第１内部変数の挙動を反映する検出値（例えば実施形態における（以下、この項において同じ）検出空燃比ＫＡＣＴ、吸入空気量ＧＡＩＲ、吸気管内絶対圧ＰＢＡ）を検出する検出手段（ＬＡＦセンサ１４、エアフローセンサ９、吸気管内絶対圧センサ１１）と、第１内部変数の、内燃機関３のクランク角に対応する挙動を予め仮定した所定の模擬値ＫＡＣＴ＿ＯＳ，ＧＡＩＲ＿ＯＳを生成する模擬値生成手段（ＥＣＵ２、適応オブザーバ３１，６１）と、検出値の推定値ＫＡＣＴ＿ＥＳＴ，ＧＡＩＲ＿ＥＳＴを、推定値と模擬値との関係を定義したモデル［式（２），（５９）］を用いることにより推定する推定手段（ＥＣＵ２、適応オブザーバ３１，６１）と、推定された推定値が検出された検出値に一致するように、検出された検出値および生成された模擬値に応じて、モデルのモデルパラメータ（空燃比ばらつき係数Φ、吸気量ばらつき係数Ψ）をオンボードで同定する同定手段（ＥＣＵ２、適応オブザーバ３１，６１）と、同定されたモデルパラメータに応じて、内燃機関３に入力する第１入力（空燃比ばらつき補正係数ＫＯＢＳＶ、吸気量ばらつき補正係数ＫＩＣＹＬ）を決定する第１制御手段（ＥＣＵ２、空燃比ばらつき補正係数算出部３２，吸気量ばらつき補正係数算出部６２）と、を備えることを特徴とする。
【００１３】
この内燃機関の制御装置によれば、内燃機関の第１内部変数の挙動を反映する検出値が検出され、この検出値の推定値が、第１内部変数の挙動を模擬化した模擬値との関係を定義したモデルを用いることにより推定され、この推定値が検出値に一致するように、検出値および模擬値に応じて、モデルパラメータがオンボードで同定されるとともに、同定されたモデルパラメータに応じて、第１入力が決定される。このように、推定値が検出値に一致するように、モデルパラメータがオンボードで同定されるので、このモデルパラメータを、第１内部変数の実際の挙動が適切かつリアルタイムに反映された値として同定することができる。さらに、そのように同定されたモデルパラメータに応じて、第１入力が決定されるので、実際の第１内部変数が急激に変動するような場合でも、そのような第１内部変数の挙動が迅速かつ適切に反映された値として、第１入力を決定でき、そのような第１入力を用いることにより、第１内部変数を所定の状態または所定の値に迅速かつ適切に制御することができる。その結果、例えば、第１入力により、検出手段の検出値が所定の目標値に収束するように内燃機関を制御した場合、検出手段のＳ／Ｎ比や感度が低いときでも、第１内部変数の挙動を反映することで、その影響を受ける検出値を、所定の目標値に安定した状態で迅速に整定することができる。すなわち、従来よりも安定余裕が大きく、ロバスト性の高い制御を実現することができる。
【００１４】
請求項２に係る発明は、請求項１に記載の内燃機関３の制御装置１において、検出値（検出空燃比ＫＡＣＴ、吸入空気量ＧＡＩＲ）を所定の目標値（目標空燃比ＫＣＭＤ）に収束させるように、内燃機関に入力する第２入力（フィードバック補正係数ＫＳＴＲ）を決定する第２制御手段（ＥＣＵ２、第２空燃比コントローラ４０）をさらに備え、第１内部変数は、複数の第１内部変数で構成され、模擬値は、複数の第１内部変数の、内燃機関３のクランク角に対応する挙動をそれぞれ予め仮定した複数の模擬値ＫＡＣＴ＿ＯＳi，ＧＡＩＲ＿ＯＳiで構成され、モデルパラメータは、複数のモデルパラメータ（空燃比ばらつき係数Φi、吸気量ばらつき係数Ψi）で構成され、同定手段は、推定値ＫＡＣＴ＿ＥＳＴ，ＧＡＩＲ＿ＥＳＴが検出値（検出空燃比ＫＡＣＴ、吸入空気量ＧＡＩＲ）に一致するように、検出値および複数の模擬値に応じて、複数のモデルパラメータを同定し、第１制御手段は、同定された複数のモデルパラメータが同定された複数のモデルパラメータの平均値（移動平均値Φａｖｅ，Ψａｖｅ）に収束するように、第１入力を決定することを特徴とする。
【００１５】
この内燃機関の制御装置によれば、第２制御手段により、内燃機関に入力する第２入力が、検出値を所定の目標値に収束させるように決定される。また、同定手段により、複数のモデルパラメータが、検出値および複数の模擬値に応じて、推定値が検出値に一致するように同定され、第１制御手段により、第１入力が、同定された複数のモデルパラメータが同定された複数のモデルパラメータの平均値に収束するように決定される。このように、第１入力が、複数のモデルパラメータの同定値がこれらの同定値の平均値に収束するように決定されるので、検出手段の検出値を所定の目標値に収束させるための制御処理と、第１内部変数を制御するための制御処理とが互いに干渉し合うのを回避することができると同時に、複数の第１内部変数間の挙動のばらつきを補正することができる。
【００１６】
請求項３に係る発明は、請求項１または２に記載の内燃機関３の制御装置１において、第１制御手段は、逐次型統計アルゴリズム［式（１５）〜（２１），（６０）〜（６６）］を用いることにより、第１入力の学習補正値ＫＯＢＳＶ＿ＬＳ，ＫＩＣＹＬ＿ＬＳを算出する学習補正値算出手段（ＥＣＵ２、学習補正値算出部３３，６３）と、算出された学習補正値により第１入力を補正する補正手段（ＥＣＵ２、乗算部３４，６４）と、補正された第１入力を内燃機関に入力する入力手段（ＥＣＵ２）と、を備えることを特徴とする。
【００１７】
同定演算アルゴリズムとしては、最小２乗法が一般的であるけれども、この最小２乗法による同定演算では、演算用の各種のデータを所定数、収集した後、それらのデータに基づいて一括演算が行われるため、制御の開始時には、データの収集が終了するまでの間、モデルパラメータの同定が実行されないので、その間、モデルパラメータの同定値に応じて第１入力を算出できず、制御性の低下を招くおそれがある。これに対して、この内燃機関の制御装置によれば、第１入力の学習補正値が、逐次型統計アルゴリズムにより算出されるので、制御の開始時でも、制御サイクル毎に算出された学習補正値により、第１入力を補正することができる。したがって、例えば、第１入力の初期値を予め設定しておくことにより、制御の開始時、モデルパラメータが新たに同定されるまでの間でも、制御サイクル毎に算出された学習補正値により、第１入力を常に補正することができ、それにより、制御開始時の制御性を向上させることができる。
【００１８】
請求項４に係る発明は、請求項３に記載の内燃機関３の制御装置１において、学習補正値算出手段は、第１入力の学習補正値を、学習補正値を従属変数としかつ第１内部変数に影響を及ぼす第２内部変数（排気ガスボリュームＥＳＶ）を独立変数とする回帰式［式（２２），（７８）］により算出するとともに、回帰式の回帰係数ＡＯＢＳＶ＿ＬＳ，ＡＩＣＹＬ＿ＬＳおよび定数項ＢＯＢＳＶ＿ＬＳ，ＢＩＣＹＬ＿ＬＳを逐次型統計アルゴリズム［式（１５）〜（２１），（７１）〜（７７）］により算出することを特徴とする。
【００１９】
この内燃機関の制御装置によれば、第１入力の学習補正値が、これを従属変数としかつ第１内部変数に影響を及ぼす第２内部変数を独立変数とする回帰式により算出されるとともに、回帰式の回帰係数および定数項が逐次型統計アルゴリズムにより算出されるので、第２内部変数の変化速度が非常に速いことで、その影響により第１内部変数の変化速度も速く、その推定が困難な場合でも、学習補正値を、第１内部変数の実際の状態が適切に反映された値として算出することができる。これにより、第１入力による第１内部変数の制御性をさらに向上させることができる。
【００２０】
請求項５に係る発明は、請求項１ないし４のいずれかに記載の内燃機関３の制御装置１において、第１制御手段は、第１入力に含まれる入力成分を、モデルパラメータ（空燃比ばらつき係数Φ、吸気量ばらつき係数Ψ）と所定の目標値（移動平均値Φａｖｅ，Ψａｖｅ）との偏差ｅ，ｅ’に基づいて決定することを特徴とする。
【００２１】
この内燃機関の制御装置によれば、第１制御手段により、第１入力に含まれる入力成分が、モデルパラメータと所定の目標値との偏差に基づいて決定されるので、モデルパラメータが所定の目標値に収束するように、内燃機関を制御することができ、それにより、内燃機関の第１内部変数を、定常偏差を生じることなく所定の値に収束するように制御することができる。
【００２２】
請求項６に係る発明は、請求項５に記載の内燃機関３の制御装置１において、第１制御手段は、第１入力に含まれる入力成分以外の他の入力成分を、モデルパラメータ（空燃比ばらつき係数Φ、吸気量ばらつき係数Ψ）に基づいて決定することを特徴とする。
【００２３】
この内燃機関の制御装置によれば、第１入力が、モデルパラメータと所定の目標値との偏差に基づいて決定される入力成分に加えて、モデルパラメータに基づいて決定される他の入力成分をさらに含んでいるので、例えば、モデルパラメータが所定の目標値に収束するように内燃機関を制御した場合、内燃機関の第１内部変数を、オーバーシュートや振動的挙動を生じることなく、所定の値に収束するように制御することができる。その結果、検出値を、振動状態やオーバーシュート状態になるのを回避しながら安定した状態に制御することができる。
【００２４】
請求項７に係る発明は、請求項１ないし４のいずれかに記載の内燃機関３の制御装置１において、第１制御手段は、応答指定型制御アルゴリズム［式（４７）〜（４９），（８９）〜（９１）］により、モデルパラメータ（空燃比ばらつき係数Φ、吸気量ばらつき係数Ψ）に応じて第１入力を決定することを特徴とする。
【００２５】
この内燃機関の制御装置によれば、応答指定型制御アルゴリズムにより、第１入力がモデルパラメータに応じて決定されるので、例えば、モデルパラメータが所定の目標値に収束するように、内燃機関を制御することができ、それにより、内燃機関の第１内部変数を、オーバーシュートや振動的挙動を生じることなく、所定の値に収束するように制御することができる。その結果、第１入力により内燃機関を制御した場合、検出値を、振動状態やオーバーシュート状態になるのを回避しながら安定した状態に制御することができる。
【００２６】
請求項８に係る発明は、請求項１ないし７のいずれかに記載の内燃機関３の制御装置１において、同定手段は、モデルパラメータ（空燃比ばらつき係数Φ、吸気量ばらつき係数Ψ）を固定ゲイン法［式（５０）〜（５７），（９２）〜（９９）］により同定することを特徴とする。
【００２７】
この内燃機関の制御装置によれば、モデルパラメータが固定ゲイン法により同定されるので、同定手段の演算負荷を低減することができる。それにより、第１入力の演算時間を短縮することができるので、第１内部変数の変化速度が速いときでも、第１内部変数の挙動が適切に反映された値として、第１入力を迅速かつ適切に算出することができる。また、固定ゲイン法として、モデルパラメータを、その基準値に所定の補正成分を加算することによって同定する手法を用いた場合には、この基準値の付近にモデルパラメータの同定値を拘束できるので、第１内部変数の変化速度の増大などに起因して、第１内部変数の状態がモデルパラメータの同定値に不適切に反映されるのを回避でき、制御の安定性を向上させることができる。
【００２８】
請求項９に係る発明は、請求項４に記載の内燃機関３の制御装置１において、同定手段は、モデルパラメータ基準値（基準値ベクトルφｂａｓｅ，ψｂａｓｅ）を第２内部変数（排気ガスボリュームＥＳＶ）に応じて算出し、算出したモデルパラメータ基準値に所定の補正成分（補正項ベクトルｄφ,ｄψ）を加算することにより、モデルパラメータ（空燃比ばらつき係数Φ、吸気量ばらつき係数Ψ）を同定することを特徴とする。
【００２９】
この内燃機関の制御装置によれば、第２内部変数に応じて算出したモデルパラメータ基準値に所定の補正成分を加算することにより、モデルパラメータが同定されるので、このモデルパラメータ基準値の付近にモデルパラメータの同定値を拘束できることにより、第２内部変数の変動の影響により第１内部変数の変化速度が速いときでも、第１内部変数の挙動が適切に反映された値として、第１入力を迅速かつ適切に算出することができ、制御の安定性を向上させることができる。
【００３０】
請求項１０に係る発明は、請求項１ないし９のいずれかに記載の内燃機関３の制御装置１において、検出値（検出空燃比ＫＡＣＴ、吸入空気量ＧＡＩＲ）および模擬値（模擬値ＫＡＣＴ＿ＯＳ，ＧＡＩＲ＿ＯＳ）の一方を、所定の遅延時間（むだ時間ｄ，ｄ’）分、遅延する遅延手段（ＥＣＵ２、適応オブザーバ３１，６１）をさらに備え、同定手段は、検出値および模擬値の遅延された一方と、検出値および模擬値の他方とに応じて、モデルパラメータ（空燃比ばらつき係数Φ）を同定することを特徴とする。
【００３１】
この内燃機関の制御装置によれば、モデルパラメータが、所定の遅延時間分、遅延された検出値および模擬値の一方と、検出値および模擬値の他方とに応じて同定されるので、例えば、検出値または模擬値にむだ時間が生じる場合、そのむだ時間を加味しながら、モデルパラメータを精度良く同定することができ、制御の安定性をさらに向上させることができる。
【００３２】
請求項１１に係る発明は、請求項１ないし９のいずれかに記載の内燃機関３の制御装置１において、検出値（吸入空気量ＧＡＩＲ）に所定のフィルタリング処理を施すことにより、検出値のフィルタ値（フィルタ値ＧＡＩＲ＿Ｆ）を生成するフィルタ手段（フィルタ６１ｊ）をさらに備え、同定手段は、検出値のフィルタ値および模擬値に応じて、モデルパラメータ（吸気量ばらつき係数Ψ）を同定することを特徴とする。
【００３３】
一般に、この種の制御装置では、検出値の絶対値の変動幅が大きい場合、同定手段による同定処理がその変動に追従できないことなどに起因して、モデルパラメータの同定遅れが生じ、その同定精度が低下するおそれがある。これに対して、この内燃機関の制御装置によれば、同定手段により、所定のフィルタリング処理を施された検出値のフィルタ値および模擬値に応じて、モデルパラメータが同定されるので、このフィルタリング処理のフィルタ特性を適切に設定することにより、検出値の絶対値の変動幅が大きい場合でも、モデルパラメータの同定に必要な情報、すなわち内部変数の挙動を示す情報を確保しながら、検出値の変動幅が抑制された値として、検出値のフィルタ値を生成できる。したがって、そのようなフィルタ値および模擬値に応じて、モデルパラメータを同定することにより、モデルパラメータの同定遅れを抑制でき、その同定精度を高めることができ、制御の安定性と速応性をより一層、向上させることができる。
【発明を実施するための最良の形態】
【００３４】
以下、図面を参照しながら、本発明の第１実施形態に係る内燃機関の制御装置について説明する。図１は、第１実施形態の制御装置１およびこれを適用した内燃機関３の概略構成を示している。同図に示すように、この制御装置１は、ＥＣＵ２を備えており、このＥＣＵ２は、後述するように、内燃機関（以下「エンジン」という）３の運転状態に応じて、これに供給する燃料量を制御することにより、混合気の空燃比を制御する。
【００３５】
このエンジン３は、図示しない車両に搭載された直列４気筒型ガソリンエンジンであり、１〜４番気筒＃１〜＃４を備えている。このエンジン３の吸気管４は、１本の吸気通路を構成する主管部４ａと、これに接続されたインテークマニホールド４ｂとを備えており、この主管部４ａの途中には、スロットル弁５が設けられている。
【００３６】
この主管部４ａのスロットル弁５より上流側および下流側にはそれぞれ、エアフローセンサ９および吸気管内絶対圧センサ１１が設けられている。このエアフローセンサ９（検出手段）は、吸気管４を介してエンジン３に吸入される吸入空気量ＧＡＩＲ（検出値）を検出し、その検出信号をＥＣＵ２に出力する。
【００３７】
また、吸気管内絶対圧センサ１１（検出手段）は、例えば半導体圧力センサなどで構成され、吸気管４内の吸気管内絶対圧ＰＢＡ（検出値）を検出し、その検出信号をＥＣＵ２に出力する。
【００３８】
さらに、主管部４ａのスロットル弁５の近傍には、例えばポテンショメータなどで構成されたスロットル弁開度センサ１０が設けられている。このスロットル弁開度センサ１０は、スロットル弁５の開度（以下「スロットル弁開度」という）ＴＨを検出して、その検出信号をＥＣＵ２に出力する。
【００３９】
また、吸気管４のインテークマニホールド４ｂは、主管部４ａに接続された集合部４ｃと、これから分岐し、４つの気筒＃１〜＃４にそれぞれ接続された４つの分岐部４ｄとで構成されている。各分岐部４ｄには、各気筒の図示しない吸気ポートの上流側に、インジェクタ６が取り付けられている。各インジェクタ６は、エンジン３の運転時に、ＥＣＵ２からの駆動信号によって、その開弁時間である燃料噴射量および噴射タイミングが制御される。
【００４０】
一方、エンジン３の本体には、例えばサーミスタなどで構成された水温センサ１２が取り付けられている。水温センサ１２は、エンジン３のシリンダブロック内を循環する冷却水の温度であるエンジン水温ＴＷを検出し、その検出信号をＥＣＵ２に出力する。
【００４１】
また、エンジン３のクランクシャフト（図示せず）には、クランク角センサ１３が設けられている。このクランク角センサ１３は、クランクシャフトの回転に伴い、いずれもパルス信号であるＣＲＫ信号およびＴＤＣ信号をＥＣＵ２に出力する。
【００４２】
ＣＲＫ信号は、所定のクランク角（例えば３０゜）ごとに１パルスが出力される。ＥＣＵ２は、このＣＲＫ信号に応じ、エンジン３の回転数（以下「エンジン回転数」という）ＮＥを算出する。また、ＴＤＣ信号は、各気筒のピストン（図示せず）が吸気行程のＴＤＣ位置よりも若干、手前の所定のクランク角位置にあることを表す信号であり、所定クランク角ごとに１パルスが出力される。
【００４３】
一方、排気管７は、４つの気筒＃１〜＃４に接続されたエキゾーストマニホールド７ｂと、その集合部７ｊに接続された主管部７ａとを備えており、このエキゾーストマニホールド７ｂは、４つの気筒＃１〜＃４からそれぞれ延びる４つの排気管部７ｃ〜７ｆが４→２→１の順に集合する形状を有している。すなわち、エキゾーストマニホールド７ｂでは、１番および４番気筒＃１，＃４から延びる２つ排気管部７ｃ，７ｆが１つに集合した集合部７ｇと、２番および３番気筒＃２，＃３から延びる排気管部７ｄ，７ｅが１つに集合した集合部７ｈと、これらの集合部７ｇ，７ｈが１つに集合した集合部７ｊ（１つの排気通路）とが一体に構成されている。このような形状により、エキゾーストマニホールド７ｂの排気抵抗は、４つの排気管部が４→１の順に集合する通常のエキゾーストマニホールドよりも小さい値に設定されており、これにより、エンジン３は、通常のエキゾーストマニホールドを有するものと比較して、より高い出力およびトルクを発生するように構成されている。
【００４４】
また、排気管７の主管部７ａには、上流側から順に第１および第２の触媒装置８ａ，８ｂが間隔を存して設けられている。各触媒装置８は、ＮＯｘ触媒と３元触媒を組み合わせたものであり、このＮＯｘ触媒は、図示しないが、イリジウム触媒（イリジウムを担持した炭化ケイ素ウイスカ粉末とシリカの焼成体）をハニカム構造の基材の表面に被覆し、その上にペロブスカイト型複酸化物（ＬａＣｏＯ3粉末とシリカの焼成体）をさらに被覆したものである。触媒装置８は、ＮＯｘ触媒による酸化還元作用により、リーンバーン運転時の排気ガス中のＮＯｘを浄化するとともに、３元触媒の酸化還元作用により、リーンバーン運転以外の運転時の排気ガス中のＣＯ、ＨＣおよびＮＯｘを浄化する。
【００４５】
これらの第１および第２触媒装置８ａ，８ｂの間の主管部７ａには、酸素濃度センサ（以下「Ｏ２センサ」という）１６が取り付けられている。このＯ２センサ１５は、ジルコニアおよび白金電極などで構成され、第１触媒装置８ａの下流側の排気ガス中の酸素濃度に基づく出力ＶｏｕｔをＥＣＵ２に送る。このＯ２センサ１５の出力Ｖｏｕｔは、理論空燃比よりもリッチな混合気が燃焼したときには、ハイレベルの電圧値（例えば０．８Ｖ）となり、混合気がリーンのときには、ローレベルの電圧値（例えば０．２Ｖ）となるとともに、混合気が理論空燃比付近のときには、ハイレベルとローレベルの間の所定の目標値Ｖｏｐ（例えば０．６Ｖ）となる。
【００４６】
また、エキゾーストマニホールド７ａの集合部７ｊ付近には、ＬＡＦセンサ１４が取り付けられている。このＬＡＦセンサ１４（検出手段）は、Ｏ２センサ１５と同様のセンサとリニアライザなどの検出回路とを組み合わせることによって構成されており、リッチ領域からリーン領域までの広範囲な空燃比の領域において排気ガス中の酸素濃度をリニアに検出し、その酸素濃度に比例する検出信号をＥＣＵ２に出力する。ＥＣＵ２は、このＬＡＦセンサ１４の検出信号に基づき、集合部７ｊ付近の排気ガス中の空燃比を表す検出空燃比ＫＡＣＴ（検出値）を算出する。なお、この検出空燃比ＫＡＣＴは、具体的には当量比として算出される。
【００４７】
さらに、ＥＣＵ２には、アクセル開度センサ１６、大気圧センサ１７、吸気温センサ１８および車速センサ１９などが接続されている。このアクセル開度センサ１６は、車両の図示しないアクセルペダルの踏み込み量（以下「アクセル開度」という）ＡＰを検出し、その検出信号をＥＣＵ２に出力する。また、大気圧センサ１７、吸気温センサ１８および車速センサ１９はそれぞれ、大気圧ＰＡ、吸気温ＴＡおよび車速ＶＰを検出し、その検出信号をＥＣＵ２に出力する。
【００４８】
次に、ＥＣＵ２について説明する。このＥＣＵ２は、Ｉ／Ｏインターフェース、ＣＰＵ、ＲＡＭおよびＲＯＭなどからなるマイクロコンピュータで構成されており、前述した各種のセンサ９〜１９の出力に応じて、エンジン３の運転状態を判別するとともに、ＲＯＭに予め記憶された制御プログラムやＲＡＭに記憶されたデータなどに従って、後述する空燃比制御処理を実行することにより、目標空燃比ＫＣＭＤ、フィードバック補正係数ＫＳＴＲ、空燃比ばらつき補正係数ＫＯＢＳＶiおよびその学習補正値ＫＯＢＳＶ＿ＬＳiなどを算出する。さらに、後述するように、これらのＫＣＭＤ、ＫＳＴＲ、ＫＯＢＳＶiおよびＫＯＢＳＶ＿ＬＳiの算出値などに基づいて、インジェクタ６の最終燃料噴射量ＴＯＵＴiを気筒毎に算出し、この算出した最終燃料噴射量ＴＯＵＴiに基づいた駆動信号で、インジェクタ６を駆動することにより、混合気の空燃比すなわち排気ガスの空燃比を気筒毎に制御する。なお、この最終燃料噴射量ＴＯＵＴiにおける添字「ｉ」は、気筒の番号を表す気筒番号値であり（ｉ＝１〜４）、この点は、上記空燃比ばらつき補正係数ＫＯＢＳＶi、学習補正値ＫＯＢＳＶ＿ＬＳiおよび後述する各パラメータなどにおいても、同様である。
【００４９】
なお、本実施形態では、ＥＣＵ２により、模擬値生成手段、推定手段、同定手段、第１制御手段、第２制御手段、学習補正値算出手段、補正手段、入力手段および遅延手段が構成されている。
【００５０】
図２に示すように、制御装置１は、基本燃料噴射量算出部２０、第１空燃比コントローラ３０、第２空燃比コントローラ４０および付着補正部５０などを備えており、これらはいずれも、具体的には、ＥＣＵ２により構成されている。この制御装置１では、燃料量決定手段としての基本燃料噴射量算出部２０により、基本燃料噴射量ＴＩＢＳが、吸入空気量ＧＡＩＲに応じて、図示しないテーブルを検索することにより算出される。
【００５１】
また、後述するように、第１空燃比コントローラ３０により、気筒間の空燃比のばらつきを補正するために、空燃比ばらつき補正係数ＫＯＢＳＶiおよびその学習補正値ＫＯＢＳＶ＿ＬＳiがそれぞれ算出され、第２空燃比コントローラ４０により、検出空燃比ＫＡＣＴを目標空燃比ＫＣＭＤに収束させるために、フィードバック補正係数ＫＳＴＲが算出される。そして、基本燃料噴射量ＴＩＢＳに、補正目標空燃比ＫＣＭＤＭ、総補正係数ＫＴＯＴＡＬ、フィードバック補正係数ＫＳＴＲ、空燃比ばらつき補正係数ＫＯＢＳＶi、および学習補正値ＫＯＢＳＶ＿ＬＳiがそれぞれ乗算されることにより、要求燃料噴射量ＴＣＹＬiが気筒毎に算出される。次いで、付着補正部５０により、最終燃料噴射量ＴＯＵＴiが、要求燃料噴射量ＴＣＹＬiに基づいて気筒毎に算出される。
【００５２】
次に、上記第１空燃比コントローラ３０について説明する。この第１空燃比コントローラ３０は、気筒間の空燃比のばらつきを補正するためのものであり、適応オブザーバ３１、空燃比ばらつき補正係数算出部３２、学習補正値算出部３３および乗算部３４で構成されている。
【００５３】
この第１空燃比コントローラ３０では、以下に述べるアルゴリズムにより、適応オブザーバ３１（模擬値生成手段、推定手段、同定手段、遅延手段）において、空燃比ばらつき係数Φiが気筒毎に算出され、空燃比ばらつき補正係数算出部３２（第１制御手段）において、空燃比ばらつき補正係数ＫＯＢＳＶiが気筒毎に算出され、学習補正値算出部３３（学習補正値算出手段）において、空燃比ばらつき補正係数の学習補正値ＫＯＢＳＶ＿ＬＳiが気筒毎に算出される。さらに、乗算部３４（補正手段）により、空燃比ばらつき補正係数ＫＯＢＳＶ1〜ＫＯＢＳＶ4に、学習補正値ＫＯＢＳＶ＿ＬＳ1〜ＫＯＢＳＶ＿ＬＳ4がそれぞれ乗算される。すなわち、空燃比ばらつき補正係数ＫＯＢＳＶiが学習補正値ＫＯＢＳＶ＿ＬＳiにより補正される。
【００５４】
次に、上記適応オブザーバ３１のアルゴリズムについて説明する。まず、図３に示すように、エンジン３の排気系を、４つの模擬値ＫＡＣＴ＿ＯＳ1〜ＫＡＣＴ＿ＯＳ4および４つの空燃比ばらつき係数Φ1〜Φ4で表される系として見なす。これらの模擬値ＫＡＣＴ＿ＯＳiは、排気ガスの排出タイミングおよび排気挙動を気筒毎に模擬化した値であり、空燃比ばらつき係数Φiは、気筒間の排気ガスの空燃比のばらつきおよび排気挙動の変動分を表す値である。この系を離散時間系モデルとしてモデル化すると、図４に示す式（１）が得られる。同式（１）において、記号ｋは離散化した時間を表しており、記号（ｋ）付きの各離散データ（時系列データ）は、ＴＤＣ信号が発生する毎にサンプリングされたデータであることを示している。この点は、以下の本明細書中の他の離散データにおいても同様である（なお、離散データを、ＣＲＫ信号が発生する毎にサンプリングしたデータとしてもよい）。また、ｄは、各気筒から排出された排気ガスがＬＡＦセンサ１４に到達するまでのむだ時間（所定の遅延時間）を表しており、本実施形態では、所定の一定値に予め設定される。なお、むだ時間ｄをエンジン３の運転状態（エンジン回転数ＮＥなど）に応じて設定してもよい。
【００５５】
本実施形態の適応オブザーバ３１では、上記式（１）の左辺を検出空燃比の推定値ＫＡＣＴ＿ＥＳＴ（ｋ）に置き換えた式、すなわち図４の式（２）がモデルとして用いられ、模擬値ＫＡＣＴ＿ＯＳiが、後述するように信号発生器３１ａにより生成されるとともに、式（２）のモデルパラメータとしての空燃比ばらつき係数Φiのベクトルφ（ｋ）が、推定値ＫＡＣＴ＿ＥＳＴ（ｋ）が検出空燃比ＫＡＣＴ（ｋ）に一致するように、図４の式（３）〜（９）に示す可変ゲイン型の逐次型最小２乗法アルゴリズムにより、同定される。
【００５６】
同式（３）におけるＫＰ（ｋ）はゲイン係数のベクトルを、ｉｄｅ（ｋ）は同定誤差をそれぞれ表している。また、式（４）におけるφ（ｋ）Tは、φ（ｋ）の転置行列を表している。なお、以下の説明では、「ベクトル」という表記を適宜、省略する。式（３）の同定誤差ｉｄｅ（ｋ）は、図４の式（５）〜（７）により算出され、この式（６）のζ（ｋ）は、式（７）のように定義される模擬値のベクトルである。さらに、上記ゲイン係数のベクトルＫＰ（ｋ）は、図４の式（８）により算出され、この式（８）のＰ（ｋ）は、図４の式（９）で定義される４次の正方行列である。
【００５７】
この適応オブザーバ３１では、以上の式（２）〜（９）に示す逐次型最小２乗法アルゴリズムにより、空燃比ばらつき係数Φiのベクトルφ（ｋ）が同定される。それにより、エンジン３の運転状態が急変することなどに伴う排気挙動のノイズ的な変動成分を、空燃比ばらつき係数Φiから除去（フィルタリング）することができ、空燃比ばらつき係数Φiを、気筒間の空燃比のばらつきを実質的に示す値として算出することができる。
【００５８】
以上の適応オブザーバ３１の構成を、ブロック図で表すと図５に示すものとなる。すなわち、同図に示すように、この適応オブザーバ３１では、信号発生器３１ａにより、模擬値ＫＡＣＴ＿ＯＳiのベクトルζ（ｋ）が生成される。具体的には、この信号発生器３１ａでは、図６に示すように、模擬値ＫＡＣＴ＿ＯＳiは、互いの和が常に値１になるように、三角波や台形波などを交互に組み合わせたような波形の信号値として生成される。さらに、乗算器３１ｂにおいて、この模擬値のベクトルζ（ｋ）に、空燃比ばらつき係数のベクトルφ（ｋ−１）を乗算した値として、検出空燃比の推定値ＫＡＣＴ＿ＥＳＴ（ｋ）が生成される。そして、差分器３１ｄにより、検出空燃比ＫＡＣＴ（ｋ）と推定値ＫＡＣＴ＿ＥＳＴ（ｋ）との偏差として、同定誤差ｉｄｅ（ｋ）が生成される。
【００５９】
また、論理演算器３１ｅにより、模擬値のベクトルζ（ｋ）に基づいて、ゲイン係数のベクトルＫＰ（ｋ）が生成され、乗算器３１ｆにおいて、同定誤差ｉｄｅ（ｋ）とゲイン係数のベクトルＫＰ（ｋ）の積［ｉｄｅ（ｋ）・ＫＰ（ｋ）］が生成される。次に、加算器３１ｇにより、積［ｉｄｅ（ｋ）・ＫＰ（ｋ）］と、遅延された空燃比ばらつき係数のベクトルφ（ｋ−１）との和として、空燃比ばらつき係数のベクトルφ（ｋ）が生成される。
【００６０】
次に、前記空燃比ばらつき補正係数算出部３２における、空燃比ばらつき補正係数ＫＯＢＳＶi（第１入力）を算出するアルゴリズムについて説明する。この空燃比ばらつき補正係数算出部３２では、まず、図７の式（１０）により、適応オブザーバ３１で気筒毎に算出された空燃比ばらつき係数Φi（ｋ）に基づき、空燃比ばらつき係数の移動平均値Φａｖｅ（ｋ）が算出される。次に、空燃比ばらつき係数Φi（ｋ）を移動平均値Φａｖｅ（ｋ）に収束させるように、空燃比ばらつき補正係数ＫＯＢＳＶiをＩ−ＰＤ制御（比例・微分先行型ＰＩＤ制御）アルゴリズムにより気筒毎に算出する。このＩ−ＰＤ制御アルゴリズムは、図７の式（１１），（１２）に示すものとなる。この式（１２）のｅ（ｋ）は、追従誤差を表す。
【００６１】
以上のように、空燃比ばらつき補正係数算出部３２では、Ｉ−ＰＤ制御アルゴリズムにより、空燃比ばらつき係数Φi（ｋ）をその移動平均値Φａｖｅ（ｋ）に収束させるように、空燃比ばらつき補正係数ＫＯＢＳＶiが算出される。これは、空燃比ばらつき係数Φi（ｋ）の移動平均値Φａｖｅ（ｋ）への収束挙動において、オーバーシュートが発生しないように制御することにより、第１空燃比コントローラ３０による、気筒間の空燃比のばらつきを補正する空燃比制御が、後述する第２空燃比コントローラ４０による空燃比制御と互いに干渉し合うのを回避するためである。
【００６２】
次に、前記学習補正値算出部３３による、空燃比ばらつき補正係数ＫＯＢＳＶiの学習補正値ＫＯＢＳＶ＿ＬＳiを算出するアルゴリズムについて説明する。上記空燃比ばらつき補正係数ＫＯＢＳＶiは、エンジン３の運転状態の影響を受けやすいものであるため、エンジン３の運転状態が変化すると、それに応じて変化する。図８（ａ）は、エンジン３の運転状態を表す運転状態パラメータとしての排気ガスボリュームＥＳＶ（ｋ）と空燃比ばらつき補正係数ＫＯＢＳＶi（ｋ）との関係を示している。この排気ガスボリュームＥＳＶ（ｋ）（第２内部変数、運転状態パラメータ）は、空間速度の推定値であり、図９の式（１３）により算出される。なお、同式（１３）において、ＳＶＰＲＡは、エンジン３の排気量によって予め決定される所定の係数である。
【００６３】
図８（ａ）を参照すると、空燃比ばらつき補正係数ＫＯＢＳＶi（ｋ）においては、これを従属変数とし、排気ガスボリュームＥＳＶ（ｋ）を独立変数とする１次式により、空燃比ばらつき補正係数ＫＯＢＳＶi（ｋ）の近似値すなわち推定値を算出できることが判る（図８（ｂ）参照）。したがって、学習補正値算出部３３では、空燃比ばらつき補正係数の学習補正値ＫＯＢＳＶ＿ＬＳi（ｋ）を、図９の式（１４）に示す回帰式により算出される推定値として定義するとともに、その回帰係数ＡＯＢＳＶ＿ＬＳiおよび定数項ＢＯＢＳＶ＿ＬＳiのベクトル（以下「回帰係数ベクトル」という）θＯＢＳＶ＿ＬＳi（ｋ）が、図９の式（１５）〜（２１）に示す逐次型最小２乗法により算出される。
【００６４】
この式（１５）において、ＫＱi（ｋ）はゲイン係数のベクトルを、Ｅｏｖi（ｋ）は誤差をそれぞれ表している。また、この誤差Ｅｏｖi（ｋ）は、図９の式（１７）〜（１９）により算出される。さらに、上記ゲイン係数のベクトルＫＱi（ｋ）は、図９の式（２０）により算出され、この式（２０）のＱi（ｋ）は、図９の式（２１）で定義される２次の正方行列である。
【００６５】
また、学習補正値ＫＯＢＳＶ＿ＬＳi（ｋ）は、具体的には、図９の式（２２）により算出される。なお、後述するように、エンジン３が極端な運転状態または運転環境にあるときには、以上の逐次型最小２乗法による回帰係数ＡＯＢＳＶ＿ＬＳiおよび定数項ＢＯＢＳＶ＿ＬＳiの算出は回避され、その回帰係数ベクトルの前回値θＯＢＳＶ＿ＬＳi（ｋ−１）が、学習補正値ＫＯＢＳＶ＿ＬＳi（ｋ）の算出において、今回値θＯＢＳＶ＿ＬＳi（ｋ）として使用される。
【００６６】
以上の式（１３），（１５）〜（２２）に示すアルゴリズムにより、学習補正値算出部３３では、学習補正値ＫＯＢＳＶ＿ＬＳi（ｋ）が、これと空燃比ばらつき補正係数ＫＯＢＳＶi（ｋ）との積に収束するように、算出される。
【００６７】
次に、前記第２空燃比コントローラ４０（第２制御手段）について説明する。この第２空燃比コントローラ４０は、具体的には、オンボード同定器４１およびＳＴＲコントローラ４２を備えたＳＴＲ（Self Tuning Regulator）として構成されている。この第２空燃比コントローラ４０では、検出空燃比ＫＡＣＴを目標空燃比ＫＣＭＤ（所定の目標値）に収束させるように、フィードバック補正係数ＫＳＴＲが算出される。より具体的には、以下に述べるアルゴリズムにより、オンボード同定器４１で１番気筒＃１のモデルパラメータベクトルθが同定され、ＳＴＲコントローラ４２でフィードバック補正係数ＫＳＴＲ（第２入力）が算出される。
【００６８】
まず、１番気筒＃１を、フィードバック補正係数ＫＳＴＲを入力とし、検出空燃比ＫＡＣＴを出力とする制御対象として見なすとともに、この制御対象を離散時間系モデルとしてモデリングすると、図１０の式（２３）に示すものとなる。同式（２３）において、記号ｎは離散化した時間を表しており、記号（ｎ）付きの各離散データは、１燃焼サイクル毎すなわちのＴＤＣ信号が連続して４回発生する毎にサンプリングされたデータであることを示している。この点は、以下の離散データにおいても同様である。
【００６９】
ここで、目標空燃比ＫＣＭＤに対する検出空燃比ＫＡＣＴのむだ時間は、燃焼サイクル３回分程度と推定されるので、ＫＣＭＤ（ｎ）＝ＫＡＣＴ（ｎ＋３）の関係が成立し、これを式（２３）に適用すると、図１０の式（２４）が導出される。
【００７０】
また、式（２３）のモデルパラメータｂ０（ｎ），ｒ１（ｎ），ｒ２（ｎ），ｒ３（ｎ），ｓ０（ｎ）のベクトルθ（ｎ）は、図に示す式（２５）〜（３１）の同定アルゴリズムにより同定される。同式（２５）におけるＫΓ（ｎ）はゲイン係数のベクトルを、ｉｄｅ＿ｓｔ（ｎ）は同定誤差をそれぞれ表している。また、式（２６）におけるθ（ｎ）Tは、θ（ｎ）の転置行列を表している。
【００７１】
上記式（２５）の同定誤差ｉｄｅ＿ｓｔ（ｎ）は、図１０の式（２７）〜（２９）により算出され、式（２８）のＫＡＣＴＨＡＴ（ｎ）は、検出空燃比ＫＡＣＴの同定値を表している。さらに、上記ゲイン係数のベクトルＫΓ（ｎ）は、図１０の式（３０）により算出され、この式（３０）のΓ（ｎ）は、図１０の式（３１）で定義される５次の正方行列である。
【００７２】
本実施形態のような制御系では、以上の式（２４）〜（３１）のアルゴリズムにより空燃比制御を実行した場合、ＬＡＦセンサ１４のローパス特性が強いときに、モデルパラメータベクトルθの更新周期の整数倍の周期で、制御系の共振が起きることがある。それを解消するために、本実施形態の第２空燃比コントローラ４０では、以下のように、フィードバック補正係数ＫＳＴＲを算出する。
【００７３】
すなわち、本実施形態の第２空燃比コントローラ４０では、オンボード同定器４１により同定された１番気筒＃１のモデルパラメータベクトルθを、ＴＤＣ信号の発生タイミングに同期してオーバーサンプリングするとともに、その移動平均値θ＿ａｖｅを算出する。具体的には、モデルパラメータベクトルθの移動平均値θ＿ａｖｅ（ｋ）を、図１１の式（３２）により算出するとともに、これを用いて、図１１の式（３４）により、フィードバック補正係数ＫＳＴＲ（ｋ）を算出する。なお、式（３２）におけるθｂｕｆは、１番気筒＃１のモデルパラメータベクトルθのオーバーサンプリング値を示しており、移動平均値θ＿ａｖｅ（ｋ）は、図１１の式（３３）のように規定される。また、式（３２）のｍは、所定の整数であり、本実施形態では、ｍ＝１１に設定される。
【００７４】
前述したように、これらの式（３２）〜（３４）における記号（ｋ）付きの各離散データは、ＴＤＣ信号の発生タイミングに同期してサンプリングされたデータであるので、ｎ−ｆ＝ｋ−４・ｆ（ｆ：整数）の関係が成立し、これを図１０の式（２４）に適用すると、上記式（３４）が導出される。さらに、モデルパラメータベクトルθ（ｋ）を同定する同定アルゴリズムは、図１１の式（３５）〜（４１）に示すものとなる。
【００７５】
以上のように、本実施形態の第２空燃比コントローラ４０のオンボード同定器４１では、図１１の式（３５）〜（４１）に示す同定アルゴリズムによって、モデルパラメータベクトルθが同定され、ＳＴＲコントローラ４２では、図１１の式（３２）〜（３４）により、フィードバック補正係数ＫＳＴＲ（ｋ）が算出される。
【００７６】
以下、ＥＣＵ２により実行される空燃比制御について、図１２〜図１７を参照しながら説明する。なお、以下の説明では、今回値であることを示す記号（ｋ），（ｎ）を適宜、省略する。図１２は、この制御処理のメインルーチンを示しており、本処理は、ＴＤＣ信号の入力に同期して割り込み実行される。この処理では、以下に述べるように、最終燃料噴射量ＴＯＵＴiが気筒毎に算出される。
【００７７】
まず、ステップ１（図では「Ｓ１」と略す。以下同じ）において、前述した各種のセンサ９〜１９の出力を読み込むとともに、読み込んだデータをＲＡＭ内に記憶する。
【００７８】
次に、ステップ２に進み、基本燃料噴射量ＴＩＢＳを算出する。この処理では、吸入空気量ＧＡＩＲに応じて、図示しないテーブルを検索することにより、基本燃料噴射量ＴＩＢＳが算出される。
【００７９】
次いで、ステップ３に進み、総補正係数ＫＴＯＴＡＬを算出する。この総補正係数ＫＴＯＴＡＬは、各種の運転パラメータ（例えば吸気温ＴＡや、大気圧ＰＡ、エンジン水温ＴＷ、アクセル開度ＡＰ、スロットル弁開度ＴＨなど）に応じて、各種のテーブルやマップを検索することで各種の補正係数を算出するとともに、これらの各種の補正係数を互いに乗算することにより、算出される。
【００８０】
次に、ステップ４に進み、目標空燃比ＫＣＭＤを算出する。この目標空燃比ＫＣＭＤの算出処理の内容は、ここでは図示しないが、特開２０００−１７９３８５号公報に記載の制御手法と同様に実行される。すなわち、目標空燃比ＫＣＭＤは、エンジン３の運転状態に応じて、スライディングモード制御処理またはマップ検索処理により、Ｏ２センサ１５の出力Ｖｏｕｔが所定の目標値Ｖｏｐに収束するように、算出される。
【００８１】
次いで、ステップ５に進み、補正目標空燃比ＫＣＭＤＭを算出する。この補正目標空燃比ＫＣＭＤＭは、空燃比Ａ／Ｆの変化による充填効率の変化を補償するためのものであり、上記ステップ４で算出された目標空燃比ＫＣＭＤに応じて、図示しないテーブルを検索することにより算出される。
【００８２】
次に、ステップ６および７において、１番気筒＃１のモデルパラメータベクトルθおよびフィードバック補正係数ＫＳＴＲをそれぞれ算出する。これらの算出処理については、後述する。
【００８３】
次いで、ステップ８〜１０において、空燃比ばらつき係数のベクトルφ、空燃比ばらつき補正係数ＫＯＢＳＶiおよびその学習補正値ＫＯＢＳＶ＿ＬＳiをそれぞれ算出する。これらの算出処理については、後述する。
【００８４】
次に、ステップ１１に進み、以上のように算出した基本燃料噴射量ＴＩＢＳ、総補正係数ＫＴＯＴＡＬ、補正目標空燃比ＫＣＭＤＭ、フィードバック補正係数ＫＳＴＲ、空燃比ばらつき補正係数ＫＯＢＳＶiおよび学習補正値ＫＯＢＳＶ＿ＬＳiを用い、下式（４２）により要求燃料噴射量ＴＣＹＬiを算出する。
【００８５】
TCYLi＝TIBS・KTOTAL・KCMDM・KSTR・KOBSVi・KOBSV_LSi      ……（４２）
【００８６】
次いで、ステップ１２に進み、要求燃料噴射量ＴＣＹＬiを付着補正することにより、最終燃料噴射量ＴＯＵＴiを算出する。この最終燃料噴射量ＴＯＵＴiは、具体的には、今回の燃焼サイクルでインジェクタ６から噴射された燃料が燃焼室の内壁面に付着する割合などを、エンジン３の運転状態に応じて算出し、そのように算出した割合に基づいて、要求燃料噴射量ＴＣＹＬiを補正することにより、算出される。
【００８７】
次に、ステップ１３に進み、以上のように算出した最終燃料噴射量ＴＯＵＴiに基づく駆動信号を、対応する気筒のインジェクタ６に出力した後、本処理を終了する。
【００８８】
次に、前記ステップ６のモデルパラメータベクトルθの算出処理について説明する。この処理では、まず、ステップ２０において、各パラメータの添字「ｉ」に相当する気筒番号値ｉの設定処理を実行する。
【００８９】
この処理では、図示しないが、気筒番号値ｉが、ＲＡＭに記憶されている、前回ループで設定された気筒番号値ｉの前回値ＰＲＶｉに基づいて、以下のように設定される。具体的には、ＰＲＶｉ＝１のときにはｉ＝３に、ＰＲＶｉ＝２のときにはｉ＝１に、ＰＲＶｉ＝３のときにはｉ＝４に、ＰＲＶｉ＝４のときにはｉ＝２にそれぞれに設定される。以上のように、気筒番号値ｉは、例えば「１→３→４→２→１→３→４→２→１……」の順に、繰り返し設定される。
【００９０】
次いで、ステップ２１に進み、上記ステップ２０で設定された気筒番号値ｉが値１であるか否かを判別する。この判別結果がＹＥＳで、１番気筒＃１のモデルパラメータベクトルθを算出すべきときには、ステップ２２に進み、ＲＡＭに記憶されている、前回のループでのモデルパラメータベクトルθの算出値を、その前回値ＰＲＶθ［＝θ（ｎ−１）］として設定する。
【００９１】
次に、ステップ２３に進み、前述した図１１の式（３９）により、ベクトルξを算出した後、ステップ２４で、前述した図１１の式（３８）により、ＫＡＣＴの同定値ＫＡＣＴ＿ＨＡＴを算出する。
【００９２】
次いで、ステップ２５に進み、前述した図１１の式（３７）により、同定誤差ｉｄｅ＿ｓｔを算出した後、ステップ２６で、ＲＡＭに記憶されている、前回のループでの正方行列の次回値ＮＥＸΓ［＝Γ（ｎ＋１）］の算出値を、その今回値Γとして設定する。
【００９３】
次に、ステップ２７に進み、前述した図１１の式（４０）により、ゲイン係数のベクトルＫΓを算出した後、ステップ２８に進み、前述した図１１の式（３５）により、モデルパラメータベクトルθを算出する。
【００９４】
次いで、ステップ２９に進み、前述した図１１の式（４１）により、正方行列の次回値ＮＥＸΓを算出した後、ステップ３０に進み、ＲＡＭに記憶されている、前回以前の所定個数（本実施形態では１２個）の検出空燃比ＫＡＣＴの値を更新する。具体的には、ＲＡＭ内のＫＡＣＴの各々の値を、１制御サイクル分、古い値としてセットする（例えば、今回値ＫＡＣＴ（ｋ）を前回値ＫＡＣＴ（ｋ−１）として、前回値ＫＡＣＴ（ｋ−１）を前々回値ＫＡＣＴ（ｋ−２）としてそれぞれセットする）。
【００９５】
次いで、ステップ３１に進み、ＲＡＭに記憶されている、所定個数（本実施形態では１２個）の１番気筒＃１のモデルパラメータベクトルθのオーバーサンプリング値θｂｕｆを更新する。具体的には、上記ステップ３０と同様に、ＲＡＭ内のθｂｕｆの各々の値を、１制御サイクル分、古い値としてセットする（例えば、今回値θｂｕｆ（ｋ）を前回値θｂｕｆ（ｋ−１）として、前回値θｂｕｆ（ｋ−１）を前々回値θｂｕｆ（ｋ−２）としてそれぞれセットする）。この後、本処理を終了する。
【００９６】
一方、前記ステップ２１の判別結果がＮＯで、モデルパラメータベクトルθを算出する必要がないときには、ステップ２２〜２９をスキップし、ステップ３０，３１を上記のように実行した後、本処理を終了する。
【００９７】
次に、図１４を参照しながら、前記ステップ７のフィードバック補正係数ＫＳＴＲの算出処理について説明する。この処理では、まず、ステップ４０において、前述した図１１の式（３２）により、モデルパラメータベクトルの移動平均値θ＿ａｖｅを、上記ステップ３１で更新されたオーバーサンプリング値θｂｕｆに基づいて算出する。
【００９８】
次いで、ステップ４１で、前述した図１１の式（３４）により、上記ステップ４１で算出した移動平均値θ＿ａｖｅに基づき、フィードバック補正係数ＫＳＴＲを算出する。
【００９９】
次に、ステップ４２に進み、ＲＡＭに記憶されている、前回以前の所定個数（本実施形態では１２個）のフィードバック補正係数ＫＳＴＲの値を更新する。具体的には、ＲＡＭ内のＫＳＴＲの各々の値を、１制御サイクル分、古い値としてセットする（例えば、今回値ＫＳＴＲ（ｋ）を前回値ＫＳＴＲ（ｋ−１）として、前回値ＫＳＴＲ（ｋ−１）を前々回値ＫＳＴＲ（ｋ−２）としてそれぞれセットする）。この後、本処理を終了する。
【０１００】
次に、図１５を参照しながら、前記ステップ８の空燃比ばらつき係数のベクトルφの算出処理について説明する。この処理では、まず、ステップ５０において、ＲＡＭに記憶されている、前回のループでの空燃比ばらつき係数のベクトルφの算出値を、その前回値ＰＲＶφ［＝φ（ｋ−１）］として設定する。
【０１０１】
次いで、ステップ５１に進み、前記図４の式（７）により、模擬値のベクトルζを算出した後、ステップ５２に進み、前記図４の式（６）により、検出空燃比の推定値ＫＡＣＴ＿ＥＳＴを算出する。
【０１０２】
次に、ステップ５３に進み、前述した図４の式（５）により、同定誤差ｉｄｅを算出した後、ステップ５４に進み、ＲＡＭに記憶されている、前回のループでの正方行列の次回値ＮＥＸＰ［＝Ｐ（ｋ＋１）］の算出値を、その今回値Ｐとして設定する。
【０１０３】
次いで、ステップ５５に進み、前述した図４の式（８）により、ゲイン係数のベクトルＫＰを算出した後、ステップ５６に進み、前述した図４の式（３）により、空燃比ばらつき係数のベクトルφを算出する。
【０１０４】
次に、ステップ５７に進み、前述した図４の式（９）により、正方行列の次回値ＮＥＸＰ［＝Ｐ（ｋ＋１）］を算出した後、ステップ５８に進み、ＲＡＭに記憶されている所定個数（本実施形態では１２個）の模擬値ＫＡＣＴ＿ＯＳiの時系列データを更新する。具体的には、ＲＡＭ内の模擬値ＫＡＣＴ＿ＯＳiの各々の値を、１制御サイクル分、古い値としてセットする（例えば、今回値ＫＡＣＴ＿ＯＳi（ｋ）を前回値ＫＡＣＴ＿ＯＳi（ｋ−１）として、前回値ＫＡＣＴ＿ＯＳi（ｋ−１）を前々回値ＫＡＣＴ＿ＯＳi（ｋ−２）としてそれぞれセットする）。
【０１０５】
次いで、ステップ５９に進み、模擬値の今回値ＫＡＣＴ＿ＯＳiを算出した後、本処理を終了する。
【０１０６】
次に、図１６を参照しながら、前記ステップ９の空燃比ばらつき補正係数ＫＯＢＳＶiの算出処理について説明する。この処理では、まず、ステップ７０において、前述した図７の式（１０）により、空燃比ばらつき係数の移動平均値Φａｖｅを算出する。
【０１０７】
次いで、ステップ７１に進み、前述した図７の式（１２）により、追従誤差ｅを算出した後、ステップ７２で、追従誤差の積分値Σｅを算出する。次に、ステップ７３に進み、上記ステップ７０，７２で算出した空燃比ばらつき係数の移動平均値Φａｖｅおよび追従誤差の積分値Σｅを用い、前述した図７の式（１１）により、空燃比ばらつき補正係数ＫＯＢＳＶiを算出した後、本処理を終了する。
【０１０８】
次に、図１７を参照しながら、前記ステップ１０における空燃比ばらつき補正係数の学習補正値ＫＯＢＳＶ＿ＬＳiの算出処理について説明する。この処理では、まず、ステップ８０において、前述した図９の式（１３）により、排気ガスボリュームＥＳＶを算出する。
【０１０９】
次いで、ステップ８１に進み、ＲＡＭに記憶されている、前回のループでの回帰係数ベクトルθＯＢＳＶ＿ＬＳiの算出値を、その前回値ＰＲＶθＯＢＳＶ＿ＬＳi［＝θＯＢＳＶ＿ＬＳi（ｋ−１）］として設定する。
【０１１０】
次に、ステップ８２に進み、前述した図９の式（２２）により、学習補正値ＫＯＢＳＶ＿ＬＳiを算出する。この後、ステップ８３に進み、下記の５つの条件（ａ１）〜（ａ５）がいずれも成立しているか否かを判別する。
（ａ１）エンジン水温ＴＷが所定の下限値ＴＷＯＢＳＬより高くかつ所定の上限値ＴＷＯＢＳＨよりも低いこと。
（ａ２）吸気温ＴＡが所定の下限値ＴＡＯＢＳＬより高くかつ所定の上限値ＴＡＯＢＳＨよりも低いこと。
（ａ３）エンジン回転数ＮＥが所定の下限値ＮＥＯＢＳＬより高くかつ所定の上限値ＮＥＯＢＳＨよりも低いこと。
（ａ４）吸気管内絶対圧ＰＢＡが所定の下限値ＰＢＯＢＳＬより高くかつ所定の上限値ＰＢＯＢＳＨよりも低いこと。
（ａ５）車速ＶＰが所定の下限値ＶＰＯＢＳＬより高くかつ所定の上限値ＶＰＯＢＳＨよりも低いこと。
【０１１１】
以上の５つの条件（ａ１）〜（ａ５）がいずれも成立しているときには、逐次型最小２乗法により、回帰係数ベクトルθＯＢＳＶ＿ＬＳiを算出すべき運転状態にあるとして、ステップ８４に進み、前述した図９の式（１９）により、排気ガスボリュームのベクトルＺを算出する。
【０１１２】
次に、ステップ８５に進み、前述した図９の式（１７）により、誤差Ｅｏｖiを算出した後、ステップ８６に進み、ＲＡＭに記憶されている、前回のループでの正方行列の次回値ＮＥＸＱi［＝Ｑi（ｋ＋１）］の算出値を、その今回値Ｑiとして設定する。
【０１１３】
次いで、ステップ８７に進み、前述した図９の式（２０）により、ゲイン係数のベクトルＫＱiを算出した後、ステップ８８に進み、前述した図９の式（１５）により、回帰係数ベクトルθＯＢＳＶ＿ＬＳiを算出する。次に、ステップ８９に進み、前述した図９の式（２１）により、正方行列の次回値ＮＥＸＱi［＝Ｑi（ｋ＋１）］を算出した後、本処理を終了する。
【０１１４】
一方、前記ステップ８３の判別結果がＮＯで、前記５つの条件（ａ１）〜（ａ５）の少なくとも１つが成立していないときには、ステップ９０に進み、前記ステップ８１で設定した回帰係数ベクトルの前回値ＰＲＶθＯＢＳＶ＿ＬＳiを、今回値θＯＢＳＶ＿ＬＳiに設定した後、本処理を終了する。これにより、例えば次回のループでのステップ８１の処理において、回帰係数ベクトルの前回値ＰＲＶθＯＢＳＶ＿ＬＳiとして、今回のループでステップ８４〜８９の逐次型最小２乗法により算出された値が用いられる。
【０１１５】
次に、図１８および図１９を参照しながら、以上の制御装置１により空燃比を制御した場合の動作について説明する。図１８は、本実施形態の制御装置１により空燃比を制御した場合を示しており、より具体的には、第２空燃比コントローラ４０により、検出空燃比ＫＡＣＴが値１（理論空燃比に相当する当量比）になるように制御している場合において、第１空燃比コントローラ３０を停止状態から作動させたとき、すなわち、第１空燃比コントローラ３０により、空燃比ばらつき係数Φi、空燃比ばらつき補正係数ＫＯＢＳＶiおよび学習補正値ＫＯＢＳＶ＿ＬＳiの算出を開始したときの動作例を示している。
【０１１６】
また、図１９は、比較のために、学習補正値ＫＯＢＳＶ＿ＬＳiを、前述した式（１１），（１２）のＩ−ＰＤ制御アルゴリズムに代えて、通常のＰＩＤ制御アルゴリズム（図２０の式（４３），（４４）に示すアルゴリズム）により算出した場合の動作の比較例を示している。また、両図において、ＫＡＣＴ1〜4の値はそれぞれ、１番〜４番気筒＃１〜＃４から排出された、互いに混じり合っていない状態の排気ガス中の空燃比（当量比換算値）を表しており、具体的には、４つの測定用のＬＡＦセンサ（図示せず）を、エキゾーストマニホールド７ａの気筒＃１〜＃４の排気ポートの直後の部分に追加して設けるとともに、これらのＬＡＦセンサの出力に基づいてＫＡＣＴ1〜4の値が算出される。
【０１１７】
図１８に示すように、本実施形態の動作例では、第１空燃比コントローラ３０が停止されているときには、各気筒から排出された排気ガスの空燃比を表すＫＡＣＴ1〜4が不安定な状態となり、その影響で、検出空燃比ＫＡＣＴも若干、不安定な状態となる。しかし、第１空燃比コントローラ３０が作動すると（時刻ｔ１）、若干の時間が経過した後、ＫＡＣＴ1〜4がいずれも値１（理論空燃比に相当する当量比）に収束し、それに伴って、検出空燃比ＫＡＣＴも値１に収束していることが判る。すなわち、気筒間の空燃比のばらつきが適切に補正されていることが判る。また、空燃比ばらつき補正係数および学習補正値の積ＫＯＢＳＶi・ＫＯＢＳＶ＿ＬＳi（ｉ＝１〜４）の値も安定していることが判る。
【０１１８】
これに対して、図１９の比較例では、第１空燃比コントローラ３０が作動した時点（時刻ｔ２）から、ＫＡＣＴ1〜4がいずれも値１に収束するまでの整定時間が本実施形態の動作例よりも長く、それに伴い、検出空燃比ＫＡＣＴも値１になかなか収束しないことが判る。これに加えて、空燃比ばらつき補正係数および学習補正値の積ＫＯＢＳＶi・ＫＯＢＳＶ＿ＬＳiの値もなかなか安定しないことが判る。すなわち、本実施形態のように、Ｉ−ＰＤ制御アルゴリズムを用いることにより、通常のＰＩＤ制御アルゴリズムを用いた場合と比べて、気筒間の空燃比のばらつきを迅速かつ適切に補正できることが判る。これは、Ｉ−ＰＤ制御アルゴリズムの方が、ＰＩＤ制御アルゴリズムよりも、空燃比ばらつき係数Φiの移動平均値Φａｖｅへの収束挙動において、オーバーシュートが発生しないように、学習補正値ＫＯＢＳＶ＿ＬＳiを算出できることによる。
【０１１９】
以上のように、本実施形態の制御装置１によれば、第１空燃比コントローラ３０により、空燃比ばらつき係数Φiが算出され、これが移動平均値Φａｖｅに収束するように、空燃比ばらつき補正係数ＫＯＢＳＶiが算出され、その学習補正値ＫＯＢＳＶ＿ＬＳiが算出される。また、第２空燃比コントローラ４０により、検出空燃比ＫＡＣＴが目標空燃比ＫＣＭＤに収束するように、フィードバック補正係数ＫＳＴＲが算出される。そして、算出されたフィードバック補正係数ＫＳＴＲ、空燃比ばらつき補正係数ＫＯＢＳＶiおよび学習補正値ＫＯＢＳＶ＿ＬＳiによって、基本燃料噴射量ＴＩＢＳが補正されることにより、最終燃料噴射量ＴＯＵＴiが気筒毎に算出される。
【０１２０】
この第１空燃比コントローラ３０の適応オブザーバ３１では、検出空燃比ＫＡＣＴの推定値ＫＡＣＴ＿ＥＳＴが、これと、模擬値ＫＡＣＴ＿ＯＳiおよび空燃比ばらつき係数Φiとにより定義されるモデル［式（２）］を用いることによって推定され、さらに、この推定値ＫＡＣＴ＿ＥＳＴが検出空燃比ＫＡＣＴに一致するように、モデルパラメータとしての空燃比ばらつき係数Φiが逐次型最小２乗法により同定される。これにより、エンジン３の運転状態が急変することなどに伴う排気挙動のノイズ的な変動成分を、空燃比ばらつき係数Φiから除去（フィルタリング）することができ、空燃比ばらつき係数Φiを、気筒間の空燃比のばらつきを実質的に示す値として算出することができる。したがって、そのような空燃比ばらつき係数Φiに基づいて算出された空燃比ばらつき補正係数ＫＯＢＳＶiにより、基本燃料噴射量ＴＩＢＳが気筒毎に補正されるので、各気筒での燃料付着による検出空燃比ＫＡＣＴへの各気筒の寄与度の変化、ＬＡＦセンサ１４の応答ばらつきおよび経年変化などによって、制御対象の動特性が変化したときでも、従来と異なり、制御対象の動特性の変化をモデルに反映させながら、気筒間の空燃比のばらつきを補正するように、最終燃料噴射量ＴＯＵＴiを気筒毎に算出することができる。その結果、第１実施形態のように、複雑な排気レイアウトを有するエンジン３の空燃比を制御する場合でも、安定余裕が大きく、ロバスト性の高い空燃比制御を実現することができ、良好な触媒浄化率を確保することができる。
【０１２１】
また、第１空燃比コントローラ３０では、空燃比ばらつき補正係数ＫＯＢＳＶiがＩ−ＰＤ制御アルゴリズムにより算出されるので、空燃比ばらつき係数Φiの移動平均値Φａｖｅへの収束挙動において、オーバーシュートが発生しないように、空燃比ばらつき補正係数ＫＯＢＳＶiを算出することができる。これより、各気筒の空燃比の挙動が振動的になるのを回避しながら、気筒間の空燃比のばらつきを補正できる。さらに、空燃比ばらつき補正係数ＫＯＢＳＶiが、空燃比ばらつき係数Φiを移動平均値Φａｖｅに収束させるように算出されるので、第１空燃比コントローラ３０による空燃比制御が、第２空燃比コントローラ４０による空燃比制御と互いに干渉し合うのを回避しながら、気筒間の空燃比のばらつきを補正できる。
【０１２２】
さらに、第１空燃比コントローラ３０では、空燃比ばらつき補正係数ＫＯＢＳＶiの学習補正値ＫＯＢＳＶ＿ＬＳiが、排気ガスボリュームＥＳＶを独立変数とする回帰式［式（２２）］により算出されるとともに、この回帰式の回帰係数ＡＯＢＳＶ＿ＬＳiおよび定数項ＢＯＢＳＶ＿ＬＳiのベクトルである回帰係数ベクトルθＯＢＳＶ＿ＬＳiが、逐次型最小２乗法により算出される。そのため、エンジン３が過渡運転状態などの急激に変化する運転状態にあることで、その影響により気筒間の空燃比のばらつき状態が急激に変化するときでも、学習補正値ＫＯＢＳＶ＿ＬＳiを気筒間の空燃比のばらつき状態が適切に反映された値として算出することができる。その結果、エンジン３が過渡運転状態にあるときでも、気筒間の空燃比のばらつきを補償しながら、空燃比を適切に制御することができる。
【０１２３】
また、空燃比ばらつき係数Φiおよび回帰係数ベクトルθＯＢＳＶ＿ＬＳiが、逐次型最小２乗法により算出されるので、統計アルゴリズムとして一般的な最小２乗法を用いる場合と比べて、空燃比制御の開始時でも、空燃比ばらつき補正係数ＫＯＢＳＶiおよび学習補正値ＫＯＢＳＶ＿ＬＳiを制御サイクル毎に算出することができる。したがって、例えば、ＫＯＢＳＶi，ＫＯＢＳＶiの初期値を予め設定しておくことにより、空燃比制御の開始時、制御サイクル毎に算出された学習補正値ＫＯＢＳＶ＿ＬＳiと、空燃比ばらつき補正係数ＫＯＢＳＶiとの積により常に補正された値として、最終燃料噴射量ＴＯＵＴiを算出することができ、空燃比制御の開始時における制御性を向上させることができる。それにより、空燃比制御の開始時における触媒浄化率をさらに向上させることができる。
【０１２４】
なお、第１実施形態は、学習補正値ＫＯＢＳＶ＿ＬＳiの算出に用いる回帰式として１次式を用いた例であるが、回帰式はこれに限らず、ｎ次式（ｎは２以上の整数）でもよい。そのようにした場合でも、ｎ次式の回帰係数および定数項を逐次型最小２乗法で算出することにより、第１実施形態と同様の作用効果を得ることができる。また、回帰式の回帰係数および定数項として、複数の運転領域毎に予め設定された所定値を用いることにより、学習補正値ＫＯＢＳＶ＿ＬＳiを算出してもよい。このようにすれば、学習補正値ＫＯＢＳＶ＿ＬＳiの演算時間を短縮することができ、ＥＣＵ２の演算負荷を低減することができる。
【０１２５】
また、空燃比ばらつき係数Φiをその移動平均値Φａｖｅに収束させるために、空燃比ばらつき補正係数ＫＯＢＳＶiを算出する制御アルゴリズムは、第１実施形態のＩ−ＰＤ制御アルゴリズムに限らず、他の制御アルゴリズムを用いてもよいことは言うまでもない。例えば、Ｉ−ＰＤ制御アルゴリズムに代えて、図２０の式（４５），（４６）に示すＩＰ−Ｄ制御アルゴリズム（微分先行型ＰＩＤ制御アルゴリズム）を用いることにより、空燃比ばらつき補正係数ＫＯＢＳＶiを算出してもよく、また、同図の式（４７）〜（４９）に示す応答指定型制御アルゴリズム（スライディングモード制御アルゴリズムまたはバックステッピング制御アルゴリズム）を用いることにより、空燃比ばらつき補正係数ＫＯＢＳＶiを算出してもよい。これらの制御アルゴリズムを用いた場合でも、実施形態のＩ−ＰＤ制御アルゴリズムを用いた場合と同様に、空燃比ばらつき係数Φiの移動平均値Φａｖｅへの収束挙動において、オーバーシュートが発生しないように、空燃比ばらつき補正係数ＫＯＢＳＶiを算出することができ、その結果、気筒間の空燃比のばらつきを迅速かつ適切に補正できる。
【０１２６】
さらに、以上のように、空燃比ばらつき補正係数ＫＯＢＳＶiの算出において、Ｉ−ＰＤ制御アルゴリズム、ＩＰ−Ｄ制御アルゴリズムおよび応答指定型制御アルゴリズムを用いた場合には、そのフィードバックゲインを最適レギュレータ理論またはＨ∞制御理論に基づいて決定してもよい。このようにすれば、空燃比ばらつき係数Φiの移動平均値Φａｖｅへの収束挙動において、オーバーシュートの発生をより効果的に抑制でき、その結果、気筒間の空燃比のばらつき補正の精度をさらに向上させることができる。
【０１２７】
また、空燃比ばらつき係数Φiが移動平均値Φａｖｅに収束するまでの整定時間が長くてもよい場合には、前述した図２０の式（４３），（４４）に示すＰＩＤ制御アルゴリズムにより、空燃比ばらつき補正係数ＫＯＢＳＶiを算出してもよいことは言うまでもない。さらに、空燃比ばらつき係数Φiを収束させる目標値としての空燃比ばらつき係数の平均値は、実施形態の移動平均値Φａｖｅに限らず、加重平均値などでもよい。
【０１２８】
さらに、第１実施形態の第１空燃比コントローラ３０の適応オブザーバ３１は、図４の式（３）〜（９）に示す可変ゲイン型の逐次型最小２乗法により、空燃比ばらつき係数のベクトルφ（ｋ）を同定した例であるが、適応オブザーバ３１における空燃比ばらつき係数のベクトルφ（ｋ）の同定アルゴリズムは、これに限らないことは言うまでもない。例えば、図２１の式（５０）〜（５７）に示すδ修正法を適用した固定ゲイン法により、空燃比ばらつき係数のベクトルφ（ｋ）を同定してもよい。
【０１２９】
同図の式（５０）のφｂａｓｅは、式（５１）のように定義される基準値ベクトル（モデルパラメータ基準値）であり、このベクトルの４つの要素である基準値Φｂａｓｅ１〜Φｂａｓｅ４は、排気ガスボリュームＥＳＶに応じて、図２２に示すテーブルを検索することにより算出される。同図に示すように、４つの基準値Φｂａｓｅ１〜Φｂａｓｅ４は、いずれも値１付近の値として設定されている。また、式（５０）のｄφ（ｋ）は、式（５２）のように定義される補正項（補正成分）であり、式（５３）〜（５７）により算出される。
【０１３０】
以上のδ修正法を適用した固定ゲイン法により、空燃比ばらつき係数のベクトルφ（ｋ）を同定した場合には、逐次型最小２乗法の場合と比べて、演算時間を短縮でき、ＥＣＵ２における演算負荷を低減できる。その結果、ＥＣＵ２の小型化・低コスト化を図ることができる。これに加えて、ベクトルφ（ｋ）の同定値を、値１の付近に拘束できるので、エンジン３が過渡運転状態などの空燃比の変化が激しい運転状態にあるときでも、気筒間の空燃比のばらつきを表す空燃比ばらつき係数のベクトルφ（ｋ）を、空燃比の挙動が適切に反映された値として、迅速かつ適切に算出することができ、空燃比制御の安定性を向上させることができる。
【０１３１】
なお、上記の固定ゲイン法において、図２２に示すテーブルが予め準備できない場合には、４つの要素Φｂａｓｅ１〜Φｂａｓｅ４をいずれも、値１に設定してもよい。
【０１３２】
また、図１２のステップ２における基本燃料噴射量ＴＩＢＳの算出手法は、基本燃料噴射量ＴＩＢＳを、吸入空気量ＧＡＩＲに応じてテーブルを検索することにより算出した第１実施形態の例に限らず、例えば、吸気管内絶対圧ＰＢＡおよびエンジン回転数ＮＥに応じて、マップ検索することにより、基本燃料噴射量ＴＩＢＳを算出する手法でもよい。
【０１３３】
次に、本発明の第２実施形態に係る制御装置１について説明する。この制御装置１は、前述した第１実施形態の制御装置１と比べると、図２３，２４に示すように、第３空燃比コントローラ６０を備える点のみが異なっており、それ以外は同様に構成されている。したがって、以下、この第３空燃比コントローラ６０を中心に説明するとともに、第１実施形態と同じ構成要素については、同一の参照番号を付し、その説明は適宜、省略する。
【０１３４】
この制御装置１では、後述するように、第３空燃比コントローラ６０により、気筒間の吸入空気量のばらつきを補正するために、吸気量ばらつき補正係数ＫＩＣＹＬiおよびその学習補正値ＫＩＣＹＬ＿ＬＳiがそれぞれ算出される。そして、基本燃料噴射量ＴＩＢＳに、補正目標空燃比ＫＣＭＤＭ、総補正係数ＫＴＯＴＡＬ、フィードバック補正係数ＫＳＴＲ、空燃比ばらつき補正係数ＫＯＢＳＶi、、空燃比ばらつき補正係数の学習補正値ＫＯＢＳＶ＿ＬＳi、吸気量ばらつき補正係数ＫＩＣＹＬiおよび吸気量ばらつき補正係数の学習補正値ＫＩＣＹＬ＿ＬＳiがそれぞれ乗算されることにより、要求燃料噴射量ＴＣＹＬiが気筒毎に算出される。次いで、付着補正部５０により、最終燃料噴射量ＴＯＵＴiが、要求燃料噴射量ＴＣＹＬiに基づいて気筒毎に算出される。
【０１３５】
次に、第３空燃比コントローラ６０について説明する。図２５に示すように、エアフローセンサ９によりエンジン３への吸入空気量ＧＡＩＲを検出した場合、各気筒の吸気挙動に起因して吸気の脈動も検出される。この吸気の脈動は、気筒間に吸入空気量のばらつきが生じた場合には、同図に示すように、不規則なものとなる。すなわち、同図は、４番気筒＃４における吸入空気量が他の気筒よりも少ない例を示している。
【０１３６】
この第３空燃比コントローラ６０は、上記のような気筒間の吸入空気量のばらつきを推定し、それに応じて燃料噴射量を補正するためのものであり、適応オブザーバ６１、吸気量ばらつき補正係数算出部６２、学習補正値算出部６３および乗算部６４で構成されている。この第３空燃比コントローラ６０では、以下に述べるアルゴリズムにより、適応オブザーバ６１（模擬値生成手段、推定手段、同定手段、遅延手段）において、吸気量ばらつき係数Ψiが気筒毎に算出され、吸気量ばらつき補正係数算出部６２（第１制御手段）において、吸気量ばらつき補正係数ＫＩＣＹＬiが気筒毎に算出され、学習補正値算出部６３（学習補正値算出手段）において、吸気量ばらつき補正係数の学習補正値ＫＩＣＹＬ＿ＬＳiが気筒毎に算出される。さらに、乗算部６４（補正手段）により、吸気量ばらつき補正係数ＫＩＣＹＬ1〜ＫＩＣＹＬ4に、学習補正値ＫＩＣＹＬ＿ＬＳ1〜ＫＩＣＹＬ＿ＬＳ4がそれぞれ乗算される。すなわち、吸気量ばらつき補正係数ＫＩＣＹＬiが学習補正値ＫＩＣＹＬ＿ＬＳiにより補正される。
【０１３７】
次に、上記適応オブザーバ６１のアルゴリズムについて説明する。まず、図２６に示すように、エンジン３の吸気系を、４つの模擬値ＧＡＩＲ＿ＯＳ1〜ＧＡＩＲ＿ＯＳ4および４つの吸気量ばらつき係数Ψ1〜Ψ4で表される系として見なす。これらの模擬値ＧＡＩＲ＿ＯＳiは、吸入空気の吸気開始タイミングおよび吸気挙動を気筒毎に模擬化した値であり、吸気量ばらつき係数Ψiは、気筒間の吸入空気量のばらつきおよび吸気挙動の変動分を表す値である。この系を離散時間系モデルとしてモデル化すると、図２７に示す式（５８）が得られる。同式（５８）において、ｄ’は、吸気管４内を流れる空気がエアフローセンサ９から各気筒に到達するまでのむだ時間（所定の遅延時間）を表しており、本実施形態では、所定の一定値に予め設定される。なお、むだ時間ｄ’をエンジン３の運転状態（エンジン回転数ＮＥなど）に応じて設定してもよい。
【０１３８】
本実施形態の適応オブザーバ６１では、上記式（５８）の左辺を吸入空気量の推定値ＧＡＩＲ＿ＥＳＴ（ｋ）に置き換えた式、すなわち図２７の式（５９）がモデルとして用いられ、模擬値ＧＡＩＲ＿ＯＳiが、後述するように信号発生器６１ａにより生成されるとともに、式（５９）のモデルパラメータとしての吸気量ばらつき係数Ψiのベクトルψ（ｋ）が、推定値ＧＡＩＲ＿ＥＳＴ（ｋ）が吸入空気量ＧＡＩＲ（ｋ−ｄ’）に一致するように、図２７の式（６０）〜（６６）に示す可変ゲイン型の逐次型最小２乗法アルゴリズムにより、同定される。
【０１３９】
同式（６０）におけるＫＲ（ｋ）はゲイン係数のベクトルを、ｉｄｅ’（ｋ）は同定誤差をそれぞれ表している。また、式（６１）におけるψ（ｋ）Tは、ψ（ｋ）の転置行列を表している。式（６０）の同定誤差ｉｄｅ’（ｋ）は、図２７の式（６２）〜（６４）により算出され、この式（６３）のζ’（ｋ）は、式（６４）のように定義される模擬値のベクトルである。さらに、上記ゲイン係数のベクトルＫＲ（ｋ）は、図２７の式（６５）により算出され、この式（６５）のＲ（ｋ）は、図２７の式（６６）で定義される４次の正方行列である。
【０１４０】
以上のように、この適応オブザーバ６１では、上記式（６０）〜（６６）に示す逐次型最小２乗法アルゴリズムにより、吸気量ばらつき係数Ψiのベクトルψ（ｋ）が同定される。それにより、エンジン３の運転状態が急変することなどに伴う吸気挙動のノイズ的な変動成分を、吸気量ばらつき係数Ψiから除去（フィルタリング）することができ、吸気量ばらつき係数Ψiを、気筒間の吸入空気量のばらつきを実質的に示す値として算出することができる。
【０１４１】
以上の適応オブザーバ６１の構成は、前述した第１空燃比コントローラ３０の適応オブザーバ３１と同様に、図２８のブロック図に示すものとなる。すなわち、同図に示すように、この適応オブザーバ６１では、信号発生器６１ａにより、模擬値ＧＡＩＲ＿ＯＳiのベクトルζ’（ｋ）が生成される。より具体的には、この信号発生器６１ａでは、図２９に示すように、模擬値ＧＡＩＲ＿ＯＳiは、互いの和が常に値１になるように、三角波や台形波などを交互に組み合わせたような信号値として生成される。さらに、乗算器６１ｂにおいて、この模擬値のベクトルζ’（ｋ）に、吸気量ばらつき係数のベクトルψ（ｋ−１）を乗算した値として、吸入空気量の推定値ＧＡＩＲ＿ＥＳＴ（ｋ）が生成される。そして、差分器６１ｄにより、吸入空気量ＧＡＩＲ（ｋ−ｄ’）と推定値ＧＡＩＲ＿ＥＳＴ（ｋ）との偏差として、同定誤差ｉｄｅ’（ｋ）が生成される。
【０１４２】
また、論理演算器６１ｅにより、模擬値のベクトルζ’（ｋ）に基づいて、ゲイン係数のベクトルＫＲ（ｋ）が生成され、乗算器６１ｆにおいて、同定誤差ｉｄｅ’（ｋ）とゲイン係数のベクトルＫＲ（ｋ）の積［ｉｄｅ’（ｋ）・ＫＲ（ｋ）］が生成される。次に、加算器６１ｇにより、積［ｉｄｅ’（ｋ）・ＫＲ（ｋ）］と、遅延された吸気量ばらつき係数のベクトルψ（ｋ−１）との和として、吸気量ばらつき係数のベクトルψ（ｋ）が生成される。
【０１４３】
次に、前記吸気量ばらつき補正係数算出部６２における、吸気量ばらつき補正係数ＫＩＣＹＬi（第１入力、第３補正値）を算出するアルゴリズムについて説明する。この吸気量ばらつき補正係数算出部６２では、まず、図３０の式（６７）により、適応オブザーバ６１で算出された吸気量ばらつき係数のベクトルψ（ｋ）、すなわち４つの吸気量ばらつき係数Ψ1（ｋ）〜Ψ4（ｋ）に基づき、吸気量ばらつき係数の移動平均値Ψａｖｅ（ｋ）が算出される。次に、吸気量ばらつき係数Ψi（ｋ）を移動平均値Ψａｖｅ（ｋ）に収束させるように、吸気量ばらつき補正係数ＫＩＣＹＬiをＩ−ＰＤ制御（比例・微分先行型ＰＩＤ制御）アルゴリズムにより気筒毎に算出する。このＩ−ＰＤ制御アルゴリズムは、図３０の式（６８），（６９）に示すものとなる。
【０１４４】
ここで、第３空燃比コントローラ６０による気筒間の吸入空気量のばらつきを補正するための空燃比制御は、第１空燃比コントローラ３０による気筒間の空燃比のばらつきを補正するための空燃比制御と互いに干渉し合う可能性があるので、これを回避するために、２つのコントローラ３０，６０において、空燃比ばらつき係数Φi（ｋ）の移動平均値Φａｖｅへの収束速度と、吸気量ばらつき係数Ψi（ｋ）の移動平均値Ψａｖｅ（ｋ）への収束速度とを互いに異ならせる必要がある。
【０１４５】
本実施形態では、上記式（６８）のフィードバックゲインＦＩ’，ＧＩ’，ＨＩ’は、その絶対値が、前述した式（１１）のフィードバックゲインＦＩ，ＧＩ，ＨＩの絶対値よりも大きい値になるように設定される。すなわち、０＜｜ＦＩ｜＜｜ＦＩ’｜、０＜｜ＧＩ｜＜｜ＧＩ’｜、０＜｜ＨＩ｜＜｜ＨＩ’｜の関係が成立するように、各フィードバックゲインが設定される。これにより、吸気量ばらつき係数Ψi（ｋ）の移動平均値Ψａｖｅ（ｋ）への収束速度が、空燃比ばらつき係数Φi（ｋ）の移動平均値Φａｖｅへの収束速度よりも速くなるように、空燃比が制御される。これは、エアフローセンサ９の方が、ＬＡＦセンサ１４よりもＳ／Ｎ比が良いので、各フィードバックゲインを上記のような関係に設定することにより、２つのコントローラ３０，６０による空燃比制御が互いに干渉し合うのを回避しながら、空燃比制御の安定性を全体として確保できることによる。
【０１４６】
これに加えて、Ｉ−ＰＤ制御アルゴリズムにより、吸気量ばらつき補正係数ＫＩＣＹＬiが、吸気量ばらつき係数Ψi（ｋ）をその移動平均値Ψａｖｅ（ｋ）に収束させるように、算出されるので、吸気量ばらつき係数Ψi（ｋ）の移動平均値Ψａｖｅ（ｋ）への収束挙動において、オーバーシュートが発生しないように制御できる。それにより、第３空燃比コントローラ６０により、気筒間の空燃比のばらつきを補正するための空燃比制御が実行された場合、この空燃比制御による集合部空燃比の変化によって、第２空燃比コントローラ４０による空燃比制御の制御性が低下するのを回避することができる。
【０１４７】
次に、前記学習補正値算出部６３による、吸気量ばらつき補正係数ＫＩＣＹＬiの学習補正値ＫＩＣＹＬ＿ＬＳiを算出するアルゴリズムについて説明する。上記吸気量ばらつき補正係数ＫＩＣＹＬiは、エンジン３の運転状態の影響を受けやすいものであり、エンジン３の運転状態が変化すると、それに応じて変化する。図３１は、エンジン３の運転状態を表す運転状態パラメータとしての排気ガスボリュームＥＳＶ（ｋ）と吸気量ばらつき補正係数ＫＩＣＹＬi（ｋ）との関係を示している。
【０１４８】
図３１を参照すると、この吸気量ばらつき補正係数ＫＩＣＹＬi（ｋ）においても、前述した空燃比ばらつき補正係数ＫＯＢＳＶi（ｋ）と同様に、吸気量ばらつき補正係数ＫＩＣＹＬi（ｋ）を従属変数とし、排気ガスボリュームＥＳＶ（ｋ）を独立変数とする１次式により、吸気量ばらつき補正係数ＫＩＣＹＬi（ｋ）の近似値すなわち推定値を算出できることが判る。したがって、学習補正値算出部６３では、吸気量ばらつき補正係数の学習補正値ＫＩＣＹＬ＿ＬＳi（ｋ）を、図３２の式（７０）に示す回帰式により算出される推定値として定義するとともに、その回帰係数ＡＩＣＹＬ＿ＬＳiおよび定数項ＢＩＣＹＬ＿ＬＳiのベクトル（以下「回帰係数ベクトル」という）θＩＣＹＬ＿ＬＳi（ｋ）が、図３２の式（７１）〜（７７）に示す逐次型最小２乗法により算出される。
【０１４９】
この式（７１）において、ＫＵi（ｋ）はゲイン係数のベクトルを、Ｅｉｃi（ｋ）は誤差をそれぞれ表している。また、この誤差Ｅｉｃi（ｋ）は、図３２の式（７３）により算出される。さらに、上記ゲイン係数のベクトルＫＵi（ｋ）は、図３２の式（７６）により算出され、この式（７６）のＵi（ｋ）は、図３２の式（７７）で定義される２次の正方行列である。
【０１５０】
また、学習補正値ＫＩＣＹＬ＿ＬＳi（ｋ）は、具体的には、図３２の式（７８）により算出される。なお、後述するように、エンジン３が極端な運転状態または運転環境にあるときには、以上の逐次型最小２乗法による回帰係数ＡＩＣＹＬ＿ＬＳiおよび定数項ＢＩＣＹＬ＿ＬＳiの算出は回避され、その回帰係数ベクトルの前回値θＩＣＹＬ＿ＬＳi（ｋ−１）が、学習補正値ＫＩＣＹＬ＿ＬＳi（ｋ）の算出において、今回値θＩＣＹＬ＿ＬＳi（ｋ）として使用される。
【０１５１】
以上の式（７１）〜（７８）に示すアルゴリズムにより、学習補正値算出部６３では、学習補正値ＫＩＣＹＬ＿ＬＳi（ｋ）が、これと吸気量ばらつき補正係数ＫＩＣＹＬi（ｋ）との積に収束するように算出される。
【０１５２】
なお、図２５に示すように、吸気管内絶対圧センサ１１で吸気管内絶対圧ＰＢＡを検出した場合でも、吸気の脈動を検出することができるので、以上の式（５８）〜（７８）において、「ＧＡＩＲ」で表されるパラメータを「ＰＢＡ」で表されるパラメータに置き換えたアルゴリズムと、吸気管内絶対圧センサ１１で検出された吸気管内絶対圧ＰＢＡとを用いることにより、気筒間の吸入空気量のばらつきを補正するための空燃比コントローラを構成することができる。
【０１５３】
以下、第２実施形態における空燃比制御処理について、図３３〜図３６を参照しながら説明する。図３３は、この制御処理のメインルーチンを示しており、本処理は、ＴＤＣ信号の入力に同期して割り込み実行される。同図に示すように、本処理は、ステップ１１１〜１１３以外の各ステップは、第１実施形態の図１２のステップ１〜１３と同様であるので、ここでは、ステップ１１１〜１１３を中心に説明する。
【０１５４】
すなわち、ステップ１１０で、空燃比ばらつき補正係数の学習補正値ＫＯＢＳＶ＿ＬＳiを算出した後、ステップ１１１において、後述するように、吸気量ばらつき係数のベクトルψを算出する。
【０１５５】
次いで、ステップ１１２に進み、吸気量ばらつき補正係数ＫＩＣＹＬiを算出した後、ステップ１１３に進み、吸気量ばらつき補正係数の学習補正値ＫＩＣＹＬ＿ＬＳiを算出する。次に、前述したステップ１１〜１３と同様に、ステップ１１４〜１１６を実行した後、本処理を終了する。
【０１５６】
次に、図３４を参照しながら、上記ステップ１１１の吸気量ばらつき係数のベクトルψの算出処理について説明する。この処理では、前述した図１５の空燃比ばらつき係数のベクトルφの算出処理と同様の手法により、吸気量ばらつき係数のベクトルψが算出される。すなわち、ステップ１２０において、ＲＡＭに記憶されている、前回のループでの吸気量ばらつき係数のベクトルψの算出値を、その前回値ＲＲＶψ［＝ψ（ｋ−１）］として設定する。
【０１５７】
次いで、ステップ１２１に進み、模擬値の今回値ＧＡＩＲ＿ＯＳiを算出した後、ステップ１２２に進み、前記図２７の式（６４）により、模擬値のベクトルζ’を算出する。
【０１５８】
次に、ステップ１２３に進み、前記図２７の式（６３）により、吸入空気量の推定値ＧＡＩＲ＿ＥＳＴを算出した後、ステップ１２４に進み、前述した図２７の式（６２）により、同定誤差ｉｄｅ’を算出する。
【０１５９】
次いで、ステップ１２５に進み、ＲＡＭに記憶されている、前回のループでの正方行列の次回値ＮＥＸＲ［＝Ｒ（ｋ＋１）］の算出値を、その今回値Ｒとして設定した後、ステップ１２６に進み、前述した図２７の式（６５）により、ゲイン係数のベクトルＫＲを算出する。
【０１６０】
次に、ステップ１２７に進み、前述した図２７の式（６０）により、吸気量ばらつき係数のベクトルψを算出した後、ステップ１２８に進み、前述した図２７の式（６６）により、正方行列の次回値ＮＥＸＲ［＝Ｒ（ｋ＋１）］を算出する。
【０１６１】
次いで、ステップ１２９に進み、ＲＡＭに記憶されている所定個数（本実施形態では１２個）の吸入空気量ＧＡＩＲの時系列データを更新する。具体的には、ＲＡＭ内の吸入空気量ＧＡＩＲの各々の値を、１制御サイクル分、古い値としてセットする（例えば、今回値ＧＡＩＲ（ｋ）を前回値ＧＡＩＲ（ｋ−１）として、前回値ＧＡＩＲ（ｋ−１）を前々回値ＧＡＩＲ（ｋ−２）としてそれぞれセットする）。この後、本処理を終了する。
【０１６２】
次に、図３５を参照しながら、前記ステップ１１２の吸気量ばらつき補正係数ＫＩＣＹＬiの算出処理について説明する。この処理では、前述した図１６の空燃比ばらつき補正係数ＫＯＢＳＶiの算出処理と同様の手法により、吸気量ばらつき補正係数ＫＩＣＹＬiが算出される。すなわち、まず、ステップ１４０において、前述した図３０の式（６７）により、吸気量ばらつき係数の移動平均値Ψａｖｅを算出する。
【０１６３】
次いで、ステップ１４１に進み、前述した図３０の式（６９）により、追従誤差ｅ’を算出した後、ステップ１４２で、追従誤差の積分値Σｅ’を算出する。次に、ステップ１４３に進み、上記ステップ１４０，１４２で算出した吸気量ばらつき係数の移動平均値Ψａｖｅおよび追従誤差の積分値Σｅ’を用い、前述した図３０の式（６８）により、空燃比ばらつき補正係数ＫＩＣＹＬiを算出した後、本処理を終了する。
【０１６４】
次に、図３６を参照しながら、前記ステップ１１３の吸気量ばらつき補正係数の学習補正値ＫＩＣＹＬ＿ＬＳiの算出処理について説明する。この処理では、前述した図１７の空燃比ばらつき補正係数の学習補正値ＫＯＢＳＶ＿ＬＳiの算出処理と同様の手法により、吸気量ばらつき補正係数の学習補正値ＫＩＣＹＬ＿ＬＳiが算出される。すなわち、まず、ステップ１５０において、前述した図９の式（１３）により、排気ガスボリュームＥＳＶを算出する。
【０１６５】
次いで、ステップ１５１に進み、ＲＡＭに記憶されている、前回のループでの回帰係数ベクトルθＩＣＹＬ＿ＬＳiの算出値を、その前回値ＰＲＶθＩＣＹＬ＿ＬＳi［＝θＩＣＹＬ＿ＬＳi（ｋ−１）］として設定する。
【０１６６】
次に、ステップ１５２に進み、前述した図３２の式（７８）により、学習補正値ＫＩＣＹＬ＿ＬＳiを算出する。この後、ステップ１５３に進み、下記の５つの条件（ａ６）〜（ａ１０）がいずれも成立しているか否かを判別する。
（ａ６）エンジン水温ＴＷが所定の下限値ＴＷＩＣＹＬより高くかつ所定の上限値ＴＷＩＣＹＨよりも低いこと。
（ａ７）吸気温ＴＡが所定の下限値ＴＡＩＣＹＬより高くかつ所定の上限値ＴＡＩＣＹＨよりも低いこと。
（ａ８）エンジン回転数ＮＥが所定の下限値ＮＥＩＣＹＬより高くかつ所定の上限値ＮＥＩＣＹＨよりも低いこと。
（ａ９）吸気管内絶対圧ＰＢＡが所定の下限値ＰＢＩＣＹＬより高くかつ所定の上限値ＰＢＩＣＹＨよりも低いこと。
（ａ１０）車速ＶＰが所定の下限値ＶＰＩＣＹＬより高くかつ所定の上限値ＶＰＩＣＹＨよりも低いこと。
【０１６７】
以上の５つの条件（ａ６）〜（ａ１０）がいずれも成立しているときには、逐次型最小２乗法により、回帰係数ベクトルθＩＣＹＬ＿ＬＳiを算出すべき運転状態にあるとして、ステップ１５４に進み、前述した図３２の式（７５）により、排気ガスボリュームのベクトルＺ’を算出する。
【０１６８】
次に、ステップ１５５に進み、前述した図３２の式（７３）により、誤差Ｅｉｃiを算出した後、ステップ１５６に進み、ＲＡＭに記憶されている、前回のループでの正方行列の次回値ＮＥＸＵi［＝Ｕi（ｋ＋１）］の算出値を、その今回値Ｕiとして設定する。
【０１６９】
次いで、ステップ１５７に進み、前述した図３２の式（７６）により、ゲイン係数のベクトルＫＵiを算出した後、ステップ１５８に進み、前述した図３２の式（７１）により、回帰係数ベクトルθＩＣＹＬ＿ＬＳiを算出する。次に、ステップ１５９に進み、前述した図３２の式（７７）により、正方行列の次回値ＮＥＸＵi［＝Ｕi（ｋ＋１）］を算出した後、本処理を終了する。
【０１７０】
一方、前記ステップ１５３の判別結果がＮＯで、前記５つの条件（ａ６）〜（ａ１０）の少なくとも１つが成立していないときには、ステップ１６０に進み、前記ステップ１５１で設定した回帰係数ベクトルの前回値ＰＲＶθＩＣＹＬ＿ＬＳiを、今回値θＩＣＹＬ＿ＬＳiに設定した後、本処理を終了する。これにより、例えば次回のループでのステップ１５１の処理において、回帰係数ベクトルの前回値ＰＲＶθＩＣＹＬ＿ＬＳiとして、今回のループでステップ１５４〜１５９の逐次型最小２乗法により算出された値が用いられる。
【０１７１】
以上のように、第２実施形態の制御装置１によれば、第１空燃比コントローラ３０により、空燃比ばらつき補正係数ＫＯＢＳＶiおよび学習補正値ＫＯＢＳＶ＿ＬＳiが算出され、第２空燃比コントローラ４０により、フィードバック補正係数ＫＳＴＲが算出される。さらに、第３空燃比コントローラ６０により、吸気量ばらつき係数Ψiが算出され、これが移動平均値Ψａｖｅに収束するように、吸気量ばらつき補正係数ＫＩＣＹＬiが算出され、その学習補正値ＫＩＣＹＬ＿ＬＳiが算出される。そして、算出されたフィードバック補正係数ＫＳＴＲ、空燃比ばらつき補正係数ＫＯＢＳＶi、学習補正値ＫＯＢＳＶ＿ＬＳi、吸気量ばらつき補正係数ＫＩＣＹＬiおよび学習補正値ＫＩＣＹＬ＿ＬＳiによって、基本燃料噴射量ＴＩＢＳが補正されることにより、最終燃料噴射量ＴＯＵＴiが気筒毎に算出される。
【０１７２】
この第３空燃比コントローラ６０の適応オブザーバ６１では、吸入空気量ＧＡＩＲの推定値ＧＡＩＲ＿ＥＳＴが、これと、模擬値ＧＡＩＲ＿ＯＳiおよび吸気量ばらつき係数Ψiとにより定義されるモデル［式（５９）］を用いることによって推定され、さらに、この推定値ＧＡＩＲ＿ＥＳＴが吸入空気量ＧＡＩＲに一致するように、モデルパラメータとしての吸気量ばらつき係数Ψiが逐次型最小２乗法により同定される。これにより、エンジン３の運転状態が急変することなどに伴う吸気挙動のノイズ的な変動成分を、吸気量ばらつき係数Ψiから除去（フィルタリング）することができ、吸気量ばらつき係数Ψiを、気筒間の空燃比のばらつきを実質的に示す値として算出することができる。したがって、そのような吸気量ばらつき係数Ψiに基づいて算出された吸気量ばらつき補正係数ＫＩＣＹＬiにより、基本燃料噴射量ＴＩＢＳが気筒毎に補正されるので、エアフローセンサ９の応答ばらつきおよび経年変化などによって、制御対象の動特性が変化したときでも、制御対象の動特性の変化をモデルに反映させながら、気筒間の吸入空気量のばらつきを補正するように、最終燃料噴射量ＴＯＵＴiを気筒毎に算出することができる。その結果、本実施形態のように、複雑な排気レイアウトを有するエンジン３の空燃比を制御する場合でも、第１実施形態の制御装置１よりも、さらに安定余裕が大きく、ロバスト性の高い空燃比制御を実現することができ、より良好な触媒浄化率を確保することができる。
【０１７３】
また、第３空燃比コントローラ６０では、吸気量ばらつき補正係数ＫＩＣＹＬiがＩ−ＰＤ制御アルゴリズムにより算出されるので、吸気量ばらつき係数Ψiの移動平均値Ψａｖｅへの収束挙動において、オーバーシュートが発生しないように、吸気量ばらつき補正係数ＫＩＣＹＬiを算出することができる。これより、各気筒の吸入空気量の挙動が振動的になるのを回避しながら、気筒間の吸入空気量のばらつきを補正できる。これに加えて、Ｉ−ＰＤ制御アルゴリズムにおいて、吸気量ばらつき係数Ψiの移動平均値Ψａｖｅへの収束速度が、空燃比ばらつき係数Φiの移動平均値Φａｖｅへの収束速度よりも速くなるように、各フィードバックゲインＦＩ’，ＧＩ’，ＨＩ’の値が設定されるので、第３空燃比コントローラ６０による空燃比制御と、第１空燃比コントローラ３０による空燃比制御とが互いに干渉し合うのを回避できる。さらに、吸気量ばらつき補正係数ＫＩＣＹＬiが、吸気量ばらつき係数Ψiを移動平均値Ψａｖｅに収束させるように算出されるので、第３空燃比コントローラ６０による空燃比制御と、第２空燃比コントローラ４０による空燃比制御とが互いに干渉し合うのを回避できる。以上により、第３空燃比コントローラ６０による空燃比制御、第１空燃比コントローラによる空燃比制御、および第２空燃比コントローラ４０による空燃比制御が互いに干渉し合うのを回避しながら、気筒間の吸入空気量のばらつきを補正できる。
【０１７４】
さらに、第３空燃比コントローラ６０では、吸気量ばらつき補正係数ＫＩＣＹＬiの学習補正値ＫＩＣＹＬ＿ＬＳiが、排気ガスボリュームＥＳＶを独立変数とする回帰式［式（７８）］により算出されるとともに、この回帰式の回帰係数ＡＩＣＹＬ＿ＬＳiおよび定数項ＢＩＣＹＬ＿ＬＳiのベクトルである回帰係数ベクトルθＩＣＹＬ＿ＬＳiが、逐次型最小２乗法により算出されるので、エンジン３が過渡運転状態などの急激に変化する運転状態にあることで、その影響により気筒間の吸入空気量のばらつき状態が急激に変化するときでも、学習補正値ＫＩＣＹＬ＿ＬＳiを気筒間の吸入空気量のばらつき状態が適切に反映された値として算出することができる。その結果、エンジン３が過渡運転状態にあるときでも、気筒間の吸入空気量のばらつきを補償しながら、空燃比を適切に制御することができる。
【０１７５】
また、吸気量ばらつき係数Ψiおよび回帰係数ベクトルθＩＣＹＬ＿ＬＳiが、逐次型最小２乗法により算出されるので、統計アルゴリズムとして一般的な最小２乗法を用いる場合と異なり、空燃比制御の開始時でも、吸気量ばらつき補正係数ＫＩＣＹＬiおよび学習補正値ＫＩＣＹＬ＿ＬＳiを、制御サイクル毎に算出することができる。したがって、例えば、ＫＩＣＹＬi，ＫＩＣＹＬ＿ＬＳiの初期値を予め設定しておくことにより、空燃比制御の開始時、制御サイクル毎に算出された吸気量ばらつき補正係数ＫＩＣＹＬiと学習補正値ＫＩＣＹＬ＿ＬＳiとの積により常に補正された値として、最終燃料噴射量ＴＯＵＴiを算出することができ、空燃比制御の開始時における制御性を向上させることができる。それにより、空燃比制御の開始時における触媒浄化率をさらに向上させることができる。
【０１７６】
なお、第３空燃比コントローラによる空燃比制御では、吸入空気量ＧＡＩＲの特性として、その絶対値の変動量が、検出空燃比ＫＡＣＴと比べて非常に大きくなる場合があり、その場合には、前述した適応オブザーバ６１において、式（６０）〜（６６）の同定アルゴリズムにより同定される吸気量ばらつき係数のベクトルψ（ｋ）の同定値の変動量が非常に大きくなることで、制御系が不安定になるおそれがある。これを回避するには、図３７に示すように、適応オブザーバ６１を構成すればよい。すなわち、適応オブザーバ６１において、図３８に示すハイパスフィルタ［１］，［２］、および図３９に示すバンドパスフィルタ［１］〜［３］のいずれか１つからなるフィルタ６１ｊ（フィルタ手段）を設け、このフィルタ６１ｊにより吸入空気量ＧＡＩＲ（ｋ）をフィルタリングしたフィルタ値ＧＡＩＲ＿Ｆ（ｋ）を用いて、空燃比制御を実行すればよい。
【０１７７】
このフィルタ６１ｊは、図４０の式（７９）で表される。同式（７９）において、ｍ*，ｎ*は、所定の整数を表す。また、このような適応オブザーバ６１における吸気量ばらつき係数のベクトルψ（ｋ）の同定アルゴリズムは、図４０の式（８０）〜（８６）に示すものとなる。以上のように構成することにより、吸入空気量ＧＡＩＲ（ｋ）の変動が大きいような運転状態のときでも、吸気量ばらつき係数のベクトルψ（ｋ）の同定に必要な情報を確保しながら、吸入空気量ＧＡＩＲ（ｋ）の変動幅が抑制された値として、フィルタ値ＧＡＩＲ＿Ｆ（ｋ）を生成できる。したがって、そのようなフィルタ値ＧＡＩＲ＿Ｆ（ｋ）に応じて、吸気量ばらつき係数のベクトルψ（ｋ）を同定することにより、同定遅れを抑制でき、その同定精度を高めることができ、空燃比制御の安定性と速応性をより一層、向上させることができる。
【０１７８】
また、第２実施形態は、学習補正値ＫＩＣＹＬ＿ＬＳiの算出に用いる回帰式として１次式を用いた例であるが、回帰式はこれに限らず、ｎ次式（ｎは２以上の整数）でもよい。そのようにした場合でも、ｎ次式の回帰係数および定数項を逐次型最小２乗法で算出することにより、第２実施形態と同様の作用効果を得ることができる。さらに、回帰式の回帰係数および定数項として、複数の運転領域毎に予め設定された所定値を用いることにより、学習補正値ＫＩＣＹＬ＿ＬＳiを算出してもよい。このようにすれば、学習補正値ＫＩＣＹＬ＿ＬＳiの演算時間を短縮することができ、ＥＣＵ２の演算負荷を低減することができる。
【０１７９】
さらに、吸気量ばらつき係数Ψiをその移動平均値Ψａｖｅに収束させるための制御アルゴリズムは、第２実施形態のＩ−ＰＤ制御アルゴリズムに限らず、他の制御アルゴリズムを用いてもよいことは言うまでもない。例えば、Ｉ−ＰＤ制御アルゴリズムに代えて、図４１の式（８７），（８８）に示すＩＰ−Ｄ制御アルゴリズム、または図４１の式（８９）〜（９１）に示す応答指定型制御アルゴリズムを用いることにより、吸気量ばらつき補正係数ＫＩＣＹＬiを算出してもよい。これらの制御アルゴリズムを用いた場合でも、実施形態のＩ−ＰＤ制御アルゴリズムを用いた場合と同様に、吸気量ばらつき係数Ψiの移動平均値Ψａｖｅへの収束挙動において、オーバーシュートが発生しないように、吸気量ばらつき補正係数ＫＩＣＹＬiを算出することができ、その結果、気筒間の吸入空気量のばらつきを迅速かつ適切に補正できる。
【０１８０】
また、以上のように、吸気量ばらつき補正係数ＫＩＣＹＬiの算出において、ＩＰ−Ｄ制御アルゴリズムまたは応答指定型制御アルゴリズムを用いた場合にも、吸気量ばらつき係数Ψi（ｋ）の移動平均値Ψａｖｅへの収束速度が、空燃比ばらつき係数Φi（ｋ）の移動平均値Φａｖｅへの収束速度よりも速くなるように、各フィードバックゲインや切換関数設定パラメータの値を設定することにより、前述したように、第３空燃比コントローラ６０による空燃比制御と、第１空燃比コントローラ３０による空燃比制御とが互いに干渉し合うのを回避することができる。これに加えて、各フィードバックゲインを、最適レギュレータ理論またはＨ∞制御理論に基づいて決定してもよい。このようにすれば、吸気量ばらつき係数Ψiの移動平均値Ψａｖｅへの収束挙動において、オーバーシュートの発生をより効果的に抑制でき、その結果、気筒間の吸入空気量のばらつき補正の精度をさらに向上させることができる。
【０１８１】
さらに、吸気量ばらつき係数Ψiが移動平均値Ψａｖｅに収束するまでの整定時間が長くてもよい場合には、前述したＰＩＤ制御アルゴリズムにより、吸気量ばらつき補正係数ＫＩＣＹＬiを算出してもよい。また、吸気量ばらつき係数Ψiを収束させる目標値としての吸気量ばらつき係数の平均値は、第２実施形態の移動平均値Ψａｖｅに限らず、加重平均値などでもよい。
【０１８２】
また、第２実施形態の第３空燃比コントローラ６０の適応オブザーバ６１は、図２７の式（６０）〜（６６）に示す可変ゲイン型の逐次型最小２乗法により、吸気量ばらつき係数のベクトルψ（ｋ）を同定した例であるが、適応オブザーバ６１における吸気量ばらつき係数のベクトルψ（ｋ）の同定アルゴリズムとして、例えば、図４２の式（９２）〜（９９）に示すδ修正法を適用した固定ゲイン法により、吸気量ばらつき係数のベクトルψ（ｋ）を同定してもよい。
【０１８３】
同図の式（９２）において、ψｂａｓｅは、式（９３）のように定義される基準値ベクトル（基準値）であり、このベクトルの４つの要素である基準値Ψｂａｓｅ１〜Ψｂａｓｅ４は、排気ガスボリュームＥＳＶに応じて、図４３に示すテーブルを検索することにより算出される。また、式（９２）のｄψ（ｋ）は、式（５２）のように定義される補正項（補正成分）であり、式（９４）〜（９９）により算出される。
【０１８４】
以上のδ修正法を適用した固定ゲイン法により、吸気量ばらつき係数のベクトルψ（ｋ）を同定した場合には、逐次型最小２乗法の場合と比べて、演算時間を短縮でき、ＥＣＵ２における演算負荷を低減できる。その結果、ＥＣＵ２の小型化・低コスト化を図ることができる。これに加えて、ベクトルψ（ｋ）の同定値を、値１の付近に拘束できるので、エンジン３が過渡運転状態などの空燃比の変化が激しい運転状態にあるときでも、気筒間の吸入空気量のばらつきを表す吸気量ばらつき係数のベクトルψ（ｋ）を、空燃比の挙動が適切に反映された値として、迅速かつ適切に算出することができ、空燃比制御の安定性を向上させることができる。
【０１８５】
また、以上の各実施形態は、本発明の制御装置を車両用のエンジン３の空燃比を制御する制御装置に適用した例であるが、本発明の制御装置は、これに限らず、船舶用の内燃機関や、他の産業機器にも適用可能であることは言うまでもない。
【図面の簡単な説明】
【０１８６】
【図１】本発明の第１実施形態に係る制御装置およびこれを適用した内燃機関の概略構成を示す図である。
【図２】第１実施形態の制御装置のブロック図である。
【図３】第１空燃比コントローラの適応オブザーバにおける空燃比ばらつき係数Φの算出アルゴリズムを説明するための模式図である。
【図４】適応オブザーバにおける空燃比ばらつき係数Φの算出アルゴリズムの数式を示す図である。
【図５】適応オブザーバの構成を示すブロック図である。
【図６】適応オブザーバの信号発生器から出力される模擬値ＫＡＣＴ＿ＯＳを示す図である。
【図７】空燃比ばらつき補正係数ＫＯＢＳＶの算出に用いるＩ−ＰＤ制御アルゴリズムの数式を示す図である。
【図８】（ａ）排気ガスボリュームＥＳＶと空燃比ばらつき補正係数ＫＯＢＳＶの関係を示す図と（ｂ）排気ガスボリュームＥＳＶと、空燃比ばらつき補正係数ＫＯＢＳＶおよび学習補正値ＫＯＢＳＶ＿ＬＳとの関係を示す図である。
【図９】空燃比ばらつき補正係数の学習補正値ＫＯＢＳＶ＿ＬＳiの算出アルゴリズムの数式を示す図である。
【図１０】第２空燃比コントローラにおけるフィードバック補正係数ＫＳＴＲの算出アルゴリズムを説明するための数式を示す図である。
【図１１】第２空燃比コントローラにおけるフィードバック補正係数ＫＳＴＲの算出アルゴリズムの数式を示す図である。
【図１２】空燃比制御処理を示すフローチャートである。
【図１３】図１２のステップ６におけるモデルパラメータベクトルθの算出処理を示すフローチャートである。
【図１４】図１２のステップ７におけるＫＳＴＲ算出処理を示すフローチャートである。
【図１５】図１２のステップ８における空燃比ばらつき係数のベクトルφの算出処理を示すフローチャートである。
【図１６】図１２のステップ９における空燃比ばらつき補正係数ＫＯＢＳＶiの算出処理を示すフローチャートである。
【図１７】図１２のステップ１０における空燃比ばらつき補正係数の学習補正値ＫＯＢＳＶ＿ＬＳiの算出処理を示すフローチャートである。
【図１８】第１実施形態の制御装置による空燃比制御の動作例を示すタイミングチャートである。
【図１９】空燃比制御の動作の比較例を示すタイミングチャートである。
【図２０】ＰＩＤ制御アルゴリズム、ＩＰ−Ｄ制御アルゴリズムおよび応答指定型制御アルゴリズムによる空燃比ばらつき補正係数ＫＯＢＳＶiの算出式を示す図である。
【図２１】δ修正法を適用した固定ゲイン法による空燃比ばらつき係数のベクトルφの同定アルゴリズムを示す図である。
【図２２】Φｂａｓｅiの算出に用いるテーブルの一例を示す図である。
【図２３】本発明の第２実施形態に係る制御装置における第３空燃比コントローラを中心とする構成を示すブロック図である。
【図２４】第２実施形態の制御装置における第１および第２空燃比コントローラを中心とする構成を示すブロック図である。
【図２５】エアフローセンサにより検出される吸気の脈動を示す図である。
【図２６】第３空燃比コントローラの適応オブザーバにおける吸気量ばらつき係数Ψの算出アルゴリズムを説明するための模式図である。
【図２７】適応オブザーバにおける吸気量ばらつき係数Ψの算出アルゴリズムの数式を示す図である。
【図２８】適応オブザーバの構成を示すブロック図である。
【図２９】適応オブザーバの信号発生器から出力される模擬値ＧＡＩＲ＿ＯＳを示す図である。
【図３０】吸気量ばらつき補正係数ＫＩＣＹＬの算出に用いるＩ−ＰＤ制御アルゴリズムの数式を示す図である。
【図３１】排気ガスボリュームＥＳＶと、吸気量ばらつき補正係数ＫＩＣＹＬおよび学習補正値ＫＩＣＹＬ＿ＬＳとの関係を示す図である。
【図３２】吸気量ばらつき補正係数の学習補正値ＫＩＣＹＬ＿ＬＳの算出アルゴリズムの数式を示す図である。
【図３３】第２実施形態に係る制御装置により実行される空燃比制御処理を示すフローチャートである。
【図３４】図３４のステップ１１１における吸気量ばらつき係数のベクトルψの算出処理を示すフローチャートである。
【図３５】図３４のステップ１１２における吸気量ばらつき補正係数ＫＩＣＹＬiの算出処理を示すフローチャートである。
【図３６】図３４のステップ１１３における吸気量ばらつき補正係数の学習補正値ＫＩＣＹＬ＿ＬＳiの算出処理を示すフローチャートである。
【図３７】第３空燃比コントローラの適応オブザーバの変形例の構成を示すブロック図である。
【図３８】適応オブザーバの変形例におけるフィルタの一例を示す図である。
【図３９】適応オブザーバの変形例におけるフィルタの他の例を示す図である。
【図４０】適応オブザーバの変形例におけるフィルタを表す数式、および吸気量ばらつき係数Ψの算出アルゴリズムの数式を示す図である。
【図４１】吸気量ばらつき補正係数ＫＩＣＹＬiの算出において、ＩＰ−Ｄ制御アルゴリズムまたは応答指定型制御アルゴリズムを用いた場合の数式を示す図である。
【図４２】δ修正法を適用した固定ゲイン法による吸気量ばらつき係数のベクトルψの同定アルゴリズムを示す図である。
【図４３】Ψｂａｓｅiの算出に用いるテーブルの一例を示す図である。
【符号の説明】
【０１８７】
１    制御装置
２    ＥＣＵ（模擬値生成手段、推定手段、同定手段、第１制御手段、第２制御手            段、学習補正値算出手段、補正手段、入力手段、遅延手段）
３    内燃機関
９    エアフローセンサ（検出手段）
１１    吸気管内絶対圧センサ（検出手段）
１４    ＬＡＦセンサ（検出手段）
３１    適応オブザーバ（模擬値生成手段、推定手段、同定手段、遅延手段）
３２    空燃比ばらつき補正係数算出部（第１制御手段）
３３    学習補正値算出部（学習補正値算出手段）
３４    乗算部（補正手段）
４０    第２空燃比コントローラ（第２制御手段）
６１    適応オブザーバ（模擬値生成手段、推定手段、同定手段、遅延手段）
６１ｊ  フィルタ（フィルタ手段）
６２    吸気量ばらつき補正係数算出部（第１制御手段）
６３    学習補正値算出部（学習補正値算出手段）
６４    乗算部（補正手段）
ＫＡＣＴ  検出空燃比（検出値）
ＫＡＣＴ＿ＯＳi  ４つの模擬値（所定の複数の模擬値）
ＫＡＣＴ＿ＥＳＴ  検出空燃比の推定値（検出値の推定値）
Φi  ４つの空燃比ばらつき係数（複数のモデルパラメータ）
Φａｖｅ  移動平均値（平均値）
ｅ  偏差
φｂａｓｅ  基準値ベクトル（モデルパラメータ基準値）
ｄφ  補正項ベクトル（補正成分）
ＫＯＢＳＶi  空燃比ばらつき補正係数（第１入力）
ＫＯＢＳＶ＿ＬＳi  空燃比ばらつき補正係数の学習補正値（第１入力の学習値）
ＡＯＢＳＶ＿ＬＳi  回帰係数
ＢＯＢＳＶ＿ＬＳi  定数項
ＫＣＭＤ  目標空燃比（所定の目標値）
ＫＳＴＲ  フィードバック補正係数（第２入力）
ＥＳＶ  排気ガスボリューム（第２内部変数）
ｄ  むだ時間（所定の遅延時間）
ＧＡＩＲ  吸入空気量（検出値）
ＧＡＩＲ＿ＯＳi  ４つの模擬値（所定の複数の模擬値）
ＧＡＩＲ＿ＥＳＴ  吸入空気量の推定値（検出値の推定値）
ＧＡＩＲ＿Ｆ  吸入空気量のフィルタ値（検出値のフィルタ値）
Ψi  ４つの吸気量ばらつき係数（複数のモデルパラメータ）
Ψａｖｅ  移動平均値（平均値）
ｅ’偏差
ψｂａｓｅ  基準値ベクトル（モデルパラメータ基準値）
ｄψ  補正項ベクトル（補正成分）
ＫＩＣＹＬi  吸気量ばらつき補正係数（第１入力）
ＫＩＣＹＬ＿ＬＳi  吸気量ばらつき補正係数の学習補正値（第１入力の学習値）
ＡＩＣＹＬ＿ＬＳi  回帰係数
ＢＩＣＹＬ＿ＬＳi  定数項
ｄ’むだ時間（所定の遅延時間）
ＰＢＡ  吸気管内絶対圧（検出値）
【図１】
2008169849.tif 000003
【図２】
2008169849.tif 000004
【図３】
2008169849.tif 000005
【図４】
2008169849.tif 000006
【図５】
2008169849.tif 000007
【図６】
2008169849.tif 000008
【図７】
2008169849.tif 000009
【図８】
2008169849.tif 000010
【図９】
2008169849.tif 000011
【図１０】
2008169849.tif 000012
【図１１】
2008169849.tif 000013
【図１２】
2008169849.tif 000014
【図１３】
2008169849.tif 000015
【図１４】
2008169849.tif 000016
【図１５】
2008169849.tif 000017
【図１６】
2008169849.tif 000018
【図１７】
2008169849.tif 000019
【図１８】
2008169849.tif 000020
【図１９】
2008169849.tif 000021
【図２０】
2008169849.tif 000022
【図２１】
2008169849.tif 000023
【図２２】
2008169849.tif 000024
【図２３】
2008169849.tif 000025
【図２４】
2008169849.tif 000026
【図２５】
2008169849.tif 000027
【図２６】
2008169849.tif 000028
【図２７】
2008169849.tif 000029
【図２８】
2008169849.tif 000030
【図２９】
2008169849.tif 000031
【図３０】
2008169849.tif 000032
【図３１】
2008169849.tif 000033
【図３２】
2008169849.tif 000034
【図３３】
2008169849.tif 000035
【図３４】
2008169849.tif 000036
【図３５】
2008169849.tif 000037
【図３６】
2008169849.tif 000038
【図３７】
2008169849.tif 000039
【図３８】
2008169849.tif 000040
【図３９】
2008169849.tif 000041
【図４０】
2008169849.tif 000042
【図４１】
2008169849.tif 000043
【図４２】
2008169849.tif 000044
【図４３】
2008169849.tif 000045