(57)【特許請求の範囲】
【請求項１】
内燃機関の排気通路に備えた触媒装置の下流側に該触媒装置を通過した排ガス中の特定成分の濃度を検出すべく設けられた排ガスセンサと、前記触媒装置の上流側から前記排ガスセンサにかけての該触媒装置を含む排気系が有する無駄時間として設定された設定無駄時間を用い、該設定無駄時間後の前記排ガスセンサの出力の推定値を表すデータを逐次生成する推定手段と、該推定手段が生成したデータを用い、前記排ガスセンサの出力を所定の目標値に収束させるように前記触媒装置に進入する排ガスの空燃比を規定する操作量を生成する操作量生成手段と、該操作量に応じて内燃機関で燃焼させる混合気の空燃比を操作する空燃比操作手段とを備えた内燃機関の空燃比制御装置において、
前記触媒装置に供給される排ガスの流量を表すデータを逐次生成する流量データ生成手段と、該流量データ生成手段が生成したデータの値に応じて前記推定手段における前記設定無駄時間の値を可変的に設定する無駄時間設定手段と、前記排気系を、前記触媒装置に進入する排ガスの空燃比から前記設定無駄時間の無駄時間要素と応答遅れ要素とを介して前記排ガスセンサの出力を生成する系として該排気系の挙動を表現するようあらかじめ定められた該排気系のモデルに対し、該モデルの所定のパラメータの値を前記無駄時間設定手段が設定した設定無駄時間の値を用いて逐次同定する同定手段とを備え、
前記推定手段は、前記排気系のモデルに基づきあらかじめ構築された所定の推定アルゴリズムにより、前記同定手段が求めた前記パラメータの同定値を用いて前記排ガスセンサの出力の推定値を表すデータを生成し、
前記同定手段は、前記排気系のモデルのパラメータの同定値を前記流量データ生成手段が生成したデータの値に応じて定めた所定の範囲内の値に制限して求めることを特徴とする内燃機関の空燃比制御装置。
【請求項２】
内燃機関の排気通路に備えた触媒装置の下流側に該触媒装置を通過した排ガス中の特定成分の濃度を検出すべく設けられた排ガスセンサと、該排ガスセンサの出力を所定の目標値に収束させるように前記触媒装置に進入する排ガスの空燃比を規定する操作量を逐次生成する操作量生成手段と、該操作量に応じて前記内燃機関で燃焼させる混合気の空燃比を操作する空燃比操作手段と、前記触媒装置の上流側から前記排ガスセンサにかけての該触媒装置を含む排気系が有する無駄時間として設定された第１設定無駄時間と前記空燃比操作手段及び内燃機関からなる空燃比操作系が有する無駄時間として設定された第２設定無駄時間とを用い、該第１設定無駄時間及び第２設定無駄時間を合わせた合計設定無駄時間後の前記排ガスセンサの出力の推定値を表すデータを逐次生成する推定手段とを備え、前記操作量生成手段が前記推定手段により生成されたデータを用いて前記操作量を生成する内燃機関の空燃比制御装置において、
前記触媒装置に供給される排ガスの流量を表すデータを逐次生成する流量データ生成手段と、該流量データ生成手段が生成したデータの値に応じて前記推定手段における前記第１設定無駄時間及び第２設定無駄時間のそれぞれの値を可変的に設定する無駄時間設定手段と、前記排気系を、前記触媒装置に進入する排ガスの空燃比から前記第１設定無駄時間の無駄時間要素と応答遅れ要素とを介して前記排ガスセンサの出力を生成する系として該排気系の挙動を表現するようあらかじめ定められた該排気系のモデルに対し、該モデルの所定のパラメータの値を前記無駄時間設定手段が設定した第１設定無駄時間の値を用いて逐次同定する同定手段とを備え、
前記推定手段は、前記排気系のモデルと、前記空燃比操作系が前記第２設定無駄時間の無駄時間要素を介して前記操作量から前記空燃比センサにより検出される空燃比を生成する系であるとして該空燃比操作系の挙動を表現するようあらかじめ定められた該空燃比操作系のモデルとに基づきあらかじめ構築された所定の推定アルゴリズムにより、前記同定手段が求めた前記パラメータの同定値を用いて前記排ガスセンサの出力の推定値を表すデータを生成し、
前記同定手段は、前記排気系のモデルのパラメータの同定値を前記流量データ生成手段が生成したデータの値に応じて定めた所定の範囲内の値に制限して求めることを特徴とする内燃機関の空燃比制御装置。
【請求項３】
前記同定手段は、前記排気系のモデルにおける前記排ガスセンサの出力と該排ガスセンサの実際の出力との間の誤差を最小化するアルゴリズムにより前記パラメータの値を同定する手段であり、
該アルゴリズムの重みパラメータの値を前記流量データ生成手段が生成したデータの値に応じて可変的に設定する手段を備えたことを特徴とする請求項１又は２記載の内燃機関の空燃比制御装置。
【請求項４】
前記操作量生成手段は、前記同定手段が求めた前記排気系のモデルのパラメータの同定値とを用いて前記操作量を生成することを特徴とする請求項１〜３のいずれか１項に記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は内燃機関の空燃比制御装置に関する。
【０００２】
【従来の技術】
内燃機関の排気通路に備えた三元触媒等の触媒装置の適正な浄化性能を確保するために、触媒装置の下流側に設けた排ガスセンサ、例えばＯ2センサ（酸素濃度センサ）の出力を所定の目標値（一定値）に収束させるように内燃機関で燃焼させる混合気の空燃比を操作する技術が本願出願人により既に提案されている（例えば特開平11-324767号公報、特開2000-179385号等）。
【０００３】
これらの技術では、触媒装置の上流側から下流側のＯ2センサにかけての排気系が、触媒装置に進入する排ガスの空燃比を入力量、Ｏ2センサの出力を出力量とする一つの制御対象とされている。そして、該排気系への入力量を規定する操作量（例えば排気系への入力量の目標値）が、Ｏ2センサの出力を前記目標値に収束させるようにフィードバック制御（具体的には適応スライディングモード制御）の処理により逐次生成され、この操作量に応じて内燃機関で燃焼させる混合気の空燃比が操作される。
【０００４】
この場合、一般に、触媒装置を含む前記排気系には比較的長い無駄時間が存在する。また、前記操作量から排気系の実際の入力量を生成する系、すなわち、内燃機関等から構成される空燃比操作系が有する無駄時間は、一般には排気系の無駄時間に比して小さいものの、内燃機関の運転状態等によっては比較的長いものとなることがある。そして、これらの無駄時間は、Ｏ2センサの出力を目標値に円滑に制御する上で妨げとなりやすい。
【０００５】
そこで、前記の技術では、排気系が有する無駄時間後のＯ2センサの出力、あるいは、該排気系の無駄時間と前記空燃比操作系の無駄時間とを合わせた合計無駄時間後のＯ2センサの出力の推定値を表すデータが、該排気系のモデル等に基づいて構築された所定の推定アルゴリズムにより逐次算出される。そして、前記操作量を生成するフィードバック制御の処理ではその推定値が該操作量の生成のために用いられる。具体的には、例えば、該推定値を前記目標値に収束させるように操作量が生成される。
【０００６】
尚、前記の技術では、前記推定アルゴリズムの基礎となる排気系のモデルの所定のパラメータの値が、触媒装置の上流側に設けた空燃比センサと前記Ｏ2センサとの出力のサンプリングデータを用いて逐次同定される。そして、前記推定アルゴリズムでは、Ｏ2センサの出力を推定するために、排気系のモデルのパラメータの同定値が用いられる。
【０００７】
前記の技術では、上述のような制御処理を行うことにより、排気系や空燃比操作系が有する無駄時間の影響や、排気系の挙動変化の影響を補償し、Ｏ2センサの出力を目標値に収束させる制御、換言すれば、触媒装置の適正な浄化性能を確保するための空燃比制御を安定して円滑に行うことを可能としている。
【０００８】
ところで、前記の技術では、基本的には、排気系の無駄時間や空燃比操作系の無駄時間が一定値であると見なし、それらの無駄時間の値としてあらかじめ固定的に定めた設定無駄時間を用いている。そして、Ｏ2センサの出力の推定処理においては、排気系の設定無駄時間後のＯ2センサの出力や、排気系の設定無駄時間と空燃比操作系の設定無駄時間とを合わせた固定的な合計設定無駄時間後のＯ2センサの出力を逐次推定するようにしている。また、前記排気系のモデルのパラメータの同定処理においても、排気系の固定的な設定無駄時間の値が用いられている。
【０００９】
ところが、本願発明者等の知見によれば、排気系や空燃比操作系の実際の無駄時間は、内燃機関の回転数等の状態によって変化する。特に、排気系の無駄時間の変化幅は、内燃機関の運転状態によって比較的大きなものとなることがある。このため、内燃機関の運転状態によっては、Ｏ2センサの出力の推定値が、実際の無駄時間後のＯ2センサの出力に対して誤差が大きくなることがある。また、排気系のモデルのパラメータの同定処理においても該モデルにおける設定無駄時間と実際の無駄時間との誤差（排気系の無駄時間要素に係わるモデル化誤差）に起因して、該パラメータの同定値のばらつきが大きくなり、ひいては、その同定値を用いて求められるＯ2センサの出力の推定値の誤差が助長されることがある。
【００１０】
この場合、前記の技術では、前記操作量を生成するフィードバック制御の処理に、適応スライディングモード制御のような安定性の高い制御処理を用いているため、基本的にはＯ2センサの出力の目標値への収束制御の安定性が大きく損なわれるような事態を回避することが可能となっている。
【００１１】
しかるに、上記のようにＯ2センサの出力の推定値の誤差が比較的大きくなるような状態では、その推定値を用いて前記操作量を生成し、該操作量に応じて混合気の空燃比を操作したときに、Ｏ2センサの出力が目標値に対してばらつきを生じ易くなったり、Ｏ2センサの出力の目標値への収束制御の速応性が低下し易くなる。そして、これが触媒装置の浄化性能をさらに向上させる妨げとなっていた。
【００１２】
尚、本願出願人は、特開平11-324767号公報にて、空燃比操作系の実際の無駄時間が内燃機関の回転数等に応じて変化することを考慮し、該空燃比操作系の設定無駄時間を内燃機関の回転数等に応じて可変的に設定する技術を提案している。しかし、この技術では、空燃比操作系の無駄時間よりもＯ2センサの出力の制御に及ぼす影響の高い排気系の無駄時間が内燃機関の運転状態に応じて変化することを考慮しておらず、該排気系の設定無駄時間をあらかじめ定めた固定値としている。このため、同公報の技術でも、上記の不都合を生じるものとなっていた。
【００１３】
【発明が解決しようとする課題】
本発明はかかる背景に鑑みてなされたものであり、触媒装置の下流側のＯ2センサ等の排ガスセンサの出力を所定の目標値に収束させるように空燃比を操作して触媒装置の適正な浄化性能を確保するシステムにおいて、触媒装置を含む排気系や内燃機関を含む空燃比操作系が有する無駄時間の影響をより的確に補償することができ、ひいては、触媒装置の浄化性能をさらに向上させることができる内燃機関の空燃比制御装置を提供することを目的とする。
【００１４】
【課題を解決するための手段】
本願発明者等の知見によれば、触媒装置を含む排気系の実際の無駄時間は、特に、該触媒装置に供給される排ガスの流量状態と密接に関連しており、該排ガスの流量が小さい程、排気系の実際の無駄時間は長くなる（図４の実線ｃを参照）。また、内燃機関を含む空燃比操作系の無駄時間も、排ガスの流量との相関性が高く、該排ガスの流量のが小さい程、空燃比操作系の無駄時間は長くなる（図４の実線ｄを参照）。
【００１５】
本発明の内燃機関の空燃比制御装置は、このような現象に着目したものであり、特に触媒装置を含む排気系の無駄時間の影響を補償し得る第１の態様と、該排気系の無駄時間に加えて、内燃機関を含む空燃比操作系の無駄時間の影響をも補償し得る第２の態様とがある。
【００１６】
すなわち、本発明の内燃機関の空燃比制御装置の第１の態様は、内燃機関の排気通路に備えた触媒装置の下流側に該触媒装置を通過した排ガス中の特定成分の濃度を検出すべく設けられた排ガスセンサと、前記触媒装置の上流側から前記排ガスセンサにかけての該触媒装置を含む排気系が有する無駄時間として設定された設定無駄時間を用い、該設定無駄時間後の前記排ガスセンサの出力の推定値を表すデータを逐次生成する推定手段と、該推定手段が生成したデータを用い、前記排ガスセンサの出力を所定の目標値に収束させるように前記触媒装置に進入する排ガスの空燃比を規定する操作量を生成する操作量生成手段と、該操作量に応じて内燃機関で燃焼させる混合気の空燃比を操作する空燃比操作手段とを備えた内燃機関の空燃比制御装置において、前記触媒装置に供給される排ガスの流量を表すデータを逐次生成する流量データ生成手段と、該流量データ生成手段が生成したデータの値に応じて前記推定手段における前記設定無駄時間の値を可変的に設定する無駄時間設定手段と、前記排気系を、前記触媒装置に進入する排ガスの空燃比から前記設定無駄時間の無駄時間要素と応答遅れ要素とを介して前記排ガスセンサの出力を生成する系として該排気系の挙動を表現するようあらかじめ定められた該排気系のモデルに対し、該モデルの所定のパラメータの値を前記無駄時間設定手段が設定した設定無駄時間の値を用いて逐次同定する同定手段とを備え、前記推定手段は、前記排気系のモデルに基づきあらかじめ構築された所定の推定アルゴリズムにより、前記同定手段が求めた前記パラメータの同定値を用いて前記排ガスセンサの出力の推定値を表すデータを生成し、前記同定手段は、前記排気系のモデルのパラメータの同定値を前記流量データ生成手段が生成したデータの値に応じて定めた所定の範囲内の値に制限して求めることを特徴とするものである。
【００１７】
また、本発明の内燃機関の空燃比制御装置の第２の態様は、内燃機関の排気通路に備えた触媒装置の下流側に該触媒装置を通過した排ガス中の特定成分の濃度を検出すべく設けられた排ガスセンサと、該排ガスセンサの出力を所定の目標値に収束させるように前記触媒装置に進入する排ガスの空燃比を規定する操作量を逐次生成する操作量生成手段と、該操作量に応じて前記内燃機関で燃焼させる混合気の空燃比を操作する空燃比操作手段と、前記触媒装置の上流側から前記排ガスセンサにかけての該触媒装置を含む排気系が有する無駄時間として設定された第１設定無駄時間と前記空燃比操作手段及び内燃機関からなる空燃比操作系が有する無駄時間として設定された第２設定無駄時間とを用い、該第１設定無駄時間及び第２設定無駄時間を合わせた合計設定無駄時間後の前記排ガスセンサの出力の推定値を表すデータを逐次生成する推定手段とを備え、前記操作量生成手段が前記推定手段により生成されたデータを用いて前記操作量を生成する内燃機関の空燃比制御装置において、前記触媒装置に供給される排ガスの流量を表すデータを逐次生成する流量データ生成手段と、該流量データ生成手段が生成したデータの値に応じて前記推定手段における前記第１設定無駄時間及び第２設定無駄時間のそれぞれの値を可変的に設定する無駄時間設定手段と、前記排気系を、前記触媒装置に進入する排ガスの空燃比から前記第１設定無駄時間の無駄時間要素と応答遅れ要素とを介して前記排ガスセンサの出力を生成する系として該排気系の挙動を表現するようあらかじめ定められた該排気系のモデルに対し、該モデルの所定のパラメータの値を前記無駄時間設定手段が設定した第１設定無駄時間の値を用いて逐次同定する同定手段とを備え、
前記推定手段は、前記排気系のモデルと、前記空燃比操作系が前記第２設定無駄時間の無駄時間要素を介して前記操作量から前記空燃比センサにより検出される空燃比を生成する系であるとして該空燃比操作系の挙動を表現するようあらかじめ定められた該空燃比操作系のモデルとに基づきあらかじめ構築された所定の推定アルゴリズムにより、前記同定手段が求めた前記パラメータの同定値を用いて前記排ガスセンサの出力の推定値を表すデータを生成し、前記同定手段は、前記排気系のモデルのパラメータの同定値を前記流量データ生成手段が生成したデータの値に応じて定めた所定の範囲内の値に制限して求めることを特徴とするものである。
【００１８】
前述の本発明の第１の態様では、前記無駄時間設定手段は、流量データ生成手段が生成したデータの値、すなわち排ガスの流量を表すデータの値に応じて前記排気系の設定無駄時間の値を設定する。このため、この設定無駄時間を、排気系の実際の無駄時間に精度よく合致させることが可能となる。尚、この場合、前記設定無駄時間は、基本的には、流量データ生成手段が生成するデータが表す排ガスの流量が小さい程、大きくなるように設定されることとなる。
【００１９】
そして、本発明の第１の態様では、前記推定手段は、このように設定された設定無駄時間を用い、該設定無駄時間後の前記排ガスセンサの出力の推定値を表すデータを逐次生成する。このため、そのデータが表す排ガスセンサの出力の推定値は、排気系の実際の無駄時間後の排ガスセンサの出力の推定値として信頼性の高いものとなり、該推定値の精度が高まる。さらに本発明の第１の態様では、このように排気系の実際の無駄時間後の排ガスセンサの出力の推定値を表すデータとして信頼性の高いデータを用いて前記操作量が操作量生成手段により生成され、その操作量に応じて空燃比操作手段により空燃比が操作される。このため、排気系が有する実際の無駄時間の長さに合わせて該無駄時間の影響を適正に補償することが可能となり、ひいては、排ガスセンサの出力の目標値への収束制御の精度や速応性が高まる。その結果、触媒装置の浄化性能を向上させることができる。
【００２０】
また、前述の本発明の第２の態様では、前記無駄時間設定手段は、流量データ生成手段が生成した排ガスの流量を表すデータの値に応じて前記排気系の無駄時間としての第１設定無駄時間の値と、前記空燃比操作系の無駄時間としての第２設定無駄時間とを設定する。このため、これらの第１及び第２設定無駄時間を、それぞれ、排気系の実際の無駄時間、空燃比操作系の実際の無駄時間に精度よく合致させることが可能となる。尚、この場合、前記第１設定無駄時間及び第２設定無駄時間はいずれも、基本的には、流量データ生成手段が生成するデータが表す排ガスの流量が小さい程、大きくなるように設定されることとなる。
【００２１】
そして、本発明の第２の態様では、前記推定手段は、このように設定された第１及び第２設定無駄時間を用い、それらの設定無駄時間を合わせた合計設定無駄時間後の排ガスセンサの出力の推定値を表すデータを生成する。このため、そのデータが表す排ガスセンサの出力の推定値は、前記排気系の実際の無駄時間と前記空燃比操作系の実際の無駄時間とを合わせた実際の合計無駄時間後の排ガスセンサの出力の推定値として信頼性の高いものとなり、該推定値の精度が高まる。さらに本発明の第２の態様では、このように実際の合計無駄時間後の排ガスセンサの出力の推定値を表すデータとして信頼性の高いデータを用いて前記操作量生成手段により操作量が生成され、その操作量に応じて空燃比操作手段により空燃比が操作される。このため、排気系及び空燃比操作系がそれぞれ有する実際の無駄時間の長さに合わせて、それらの無駄時間の影響を適正に補償することが可能となり、ひいては、排ガスセンサの出力の目標値への収束制御の精度や速応性が高まる。その結果、触媒装置の浄化性能を向上させることができる。
【００２２】
尚、本発明の第１の態様は、空燃比操作系の無駄時間が排気系の無駄時間に比して十分に小さい場合に適しており、本発明の第２の態様は、空燃比操作系の無駄時間が比較的長いものとなるような場合に適している。また、本発明の第１及び第２の態様では、排気系の無駄時間、あるいはこれに空燃比操作系の無駄時間を合わせた合計無駄時間の影響を補償する上で好適な前記操作量を生成するためには、前記操作量生成手段は、例えば、前記推定手段が生成したデータにより表される排ガスセンサの出力の推定値を前記目標値に収束させるようにフィードバック制御の処理により前記操作量を生成することが好ましい。また、前記操作量としては、例えば前記触媒装置に進入する排ガスの空燃比の目標値（目標空燃比）や内燃機関の燃料供給量の補正量等が挙げられる。そして、前記操作量を上記目標空燃比とした場合には、触媒装置に進入する排ガスの空燃比を検出する空燃比センサを触媒装置の上流側に設け、前記空燃比操作手段は、この空燃比センサの出力（空燃比の検出値）を目標空燃比に収束させるようにフィードバック制御の処理により内燃機関で燃焼させる混合気の空燃比を操作することが好適である。
【００２３】
さらに、前記した本発明の第１の態様では、前記排気系を、前記触媒装置に進入する排ガスの空燃比から前記設定無駄時間の無駄時間要素と応答遅れ要素とを介して前記排ガスセンサの出力を生成する系として該排気系の挙動を表現するようあらかじめ定められた該排気系のモデルに対し、該モデルの所定のパラメータの値を前記無駄時間設定手段が設定した設定無駄時間の値を用いて逐次同定する同定手段を備え、前記推定手段は、前記排気系のモデルに基づきあらかじめ構築された所定の推定アルゴリズムにより、前記同定手段が求めた前記パラメータの同定値を用いて前記排ガスセンサの出力の推定値を表すデータを生成する。
【００２４】
すなわち、前記推定手段により排気系の設定無駄時間後の排ガスセンサの出力の推定値を表すデータを適正に生成し得る推定アルゴリズムは、例えば上記のように定めた排気系のモデルに基づいて構築することができる。そして、このとき、該推定アルゴリズムでは、前記設定無駄時間の値はもちろんのこと、該排気系のモデルの所定のパラメータ（モデルの挙動を規定する上である値に設定すべきパラメータで、例えば排気系のモデルの無駄時間要素や応答遅れ要素に係る係数パラメータ）の値が必要となる。また、排気系の実際の挙動に整合するモデルのパラメータの値は、一般に、排気系の挙動状態や特性の変化に応じて変化する。このため、本発明では、排気系の挙動状態や特性の変化の影響を補償するために、該モデルのパラメータの値を逐次同定する同定手段を備える。この場合、該同定手段の同定処理では、排気系のモデルの無駄時間要素の無駄時間として、無駄時間設定手段が設定する設定無駄時間、すなわち、排気系の実際の無駄時間と精度よく合致する設定無駄時間の値を用いることにより、排気系のモデルと実際の排気系の挙動特性との整合性が高まり、該モデルのパラメータの同定値の信頼性を高めることができる。従って、このパラメータの同定値を用いて前記推定手段が前記推定アルゴリズムにより排ガスセンサの出力の推定値を表すデータを生成することにより、排気系の実際の無駄時間後の排ガスセンサの出力の推定値を表すデータとして信頼性の高いデータを排気系の挙動状態等の変化によらずに生成することが可能となる。そして、この結果、排ガスセンサの出力の目標値への制御の精度や速応性がより高まり、ひいては触媒装置の浄化性能をより向上させることができる。
【００２５】
また、本発明の第２の態様では、前記排気系を、前記触媒装置に進入する排ガスの空燃比から前記第１設定無駄時間の無駄時間要素と応答遅れ要素とを介して前記排ガスセンサの出力を生成する系として該排気系の挙動を表現するようあらかじめ定められた該排気系のモデルに対し、該モデルの所定のパラメータの値を前記無駄時間設定手段が設定した第１設定無駄時間の値を用いて逐次同定する同定手段を備え、前記推定手段は、前記排気系のモデルと、前記空燃比操作系が前記第２設定無駄時間の無駄時間要素を介して前記操作量から前記空燃比センサにより検出される空燃比を生成する系であるとして該空燃比操作系の挙動を表現するようあらかじめ定められた該空燃比操作系のモデルとに基づきあらかじめ構築された所定の推定アルゴリズムにより、前記同定手段が求めた前記パラメータの同定値を用いて前記排ガスセンサの出力の推定値を表すデータを生成する。
【００２６】
すなわち、本発明の第２の態様では、前記推定手段により前記合計設定無駄時間後の排ガスセンサの出力の推定値を表すデータを適正に生成し得る推定アルゴリズムは、例えば上記のように定めた排気系のモデルと空燃比操作系のモデルとに基づいて構築することができる。そして、このとき、該推定アルゴリズムでは、前記第１及び第２設定無駄時間の値のほか、前記第１の態様の場合と同様に、排気系のモデルの所定のパラメータの値が必要となる。そして、本発明では、前記第１の態様の場合と同様に、排気系の挙動状態や特性の変化の影響を補償するために、該パラメータの値を逐次同定する同定手段を備え、該同定手段は、排気系のモデルのパラメータの同定値を求めるために、排気系のモデルの無駄時間要素の無駄時間として、無駄時間設定手段が設定する第１設定無駄時間（これは排気系の実際の無駄時間と精度よく合致する）の値を用いる。このため、排気系のモデルと実際の排気系の挙動特性との整合性が高まり、排気系のモデルのパラメータの同定値の信頼性が高まる。従って、このパラメータの同定値を用いて前記推定手段が前記推定アルゴリズムにより排ガスセンサの出力の推定値を表すデータを生成することにより、排気系の実際の無駄時間と空燃比操作系の実際の無駄時間とを合わせた実際の合計無駄時間後の排ガスセンサの出力の推定値を表すデータとして信頼性の高いデータを排気系の挙動状態等の変化によらずに生成することが可能となる。そして、この結果、排ガスセンサの出力の目標値への制御の精度や速応性がより高まり、ひいては触媒装置の浄化性能をより向上させることができる。
【００２７】
尚、本発明の第１の態様における前記推定アルゴリズムでは、より具体的には、例えば、触媒装置に進入する排ガスの空燃比（以下、触媒上流空燃比ということがある）を表すデータ（時系列データ）と、排ガスセンサの出力のデータと、前記排気系の設定無駄時間の値と、排気系のモデルのパラメータの同定値とを用いて排ガスセンサの出力の推定値を表すデータを適正に生成することが可能である。同様に、本発明の第２の態様における推定アルゴリズムでは、例えば、前記触媒上流空燃比を表すデータ（時系列データ）と、排ガスセンサの出力のデータと、前記第１及び第２設定無駄時間の値と、排気系のモデルのパラメータの同定値とを用いて排ガスセンサの出力の推定値を表すデータを適正に生成することが可能である。この場合、いずれの態様においても、前記触媒上流空燃比は、前記操作量により規定されるため、該触媒上流空燃比を表すデータとして、該操作量のデータを用いることができる。但し、該推定値を表すデータをより適正なものとする上では、触媒上流空燃比を検出する空燃比センサを触媒装置の上流側に備え、触媒上流空燃比を表すデータとして、該空燃比センサの出力のデータを用い、もしくは、該空燃比センサの出力のデータと操作量のデータとの両者を用いることが好ましい。
【００２８】
また、本発明の第１及び第２の態様における前記同定手段は、より具体的には、触媒上流空燃比を表すデータと、排ガスセンサの出力のデータと、排気系のモデルの設定無駄時間（第２の態様では第１設定無駄時間）の値とを用いて逐次型最小２乗法等のアルゴリズムにより排気系のモデルのパラメータの値を同定することが可能である。そして、この場合、前記推定アルゴリズムの場合と同様、触媒上流空燃比を表すデータとして、前記操作量のデータを用いることも可能であるが、触媒上流空燃比を検出する空燃比センサを触媒装置の上流側に備え、その空燃比センサの出力のデータを触媒上流空燃比を表すデータとして用いることが好適である。
【００２９】
また、本発明の第１及び第２の態様における前記排気系のモデルは、例えば、所定の制御サイクル毎の排ガスセンサの出力のデータを、その制御サイクルよりも過去の制御サイクルにおける排ガスセンサの出力のデータと、前記排気系の設定無駄時間以前の制御サイクルにおける触媒上流空燃比を表すデータ（前記空燃比センサの出力のデータ、前記操作量のデータ等）とにより表現するモデルであることが好ましい。別の言い方をすれば、該モデルは、例えば、排気系の入力量としての前記触媒上流空燃比に無駄時間（排気系の設定無駄時間）を有する自己回帰モデルであることが好ましい。この場合、該モデルのパラメータは、前記過去の制御サイクルにおける排ガスのセンサの出力のデータ（排気系の出力量に関する自己回帰項）に係る係数や、前記触媒上流空燃比を表すデータ（排気系の入力量）に係る係数である。また、前記第２の態様における前記空燃比操作系のモデルは、例えば所定の制御サイクル毎の触媒上流空燃比が、前記第２設定無駄時間前の前記操作量により定まる空燃比に一致するような系として表現される。
【００３０】
また、本発明の第１及び第２の態様では、前記同定手段は、前記排気系のモデルのパラメータの同定値を前記流量データ生成手段が生成したデータの値に応じて定めた所定の範囲内の値に制限して求める。
【００３１】
すなわち、前記推定手段により生成するデータ（排ガスセンサの出力の推定値を表すデータ）の精度を高め、Ｏ2センサの出力を円滑に目標値に収束させ得る操作量を生成するために好適な前記パラメータの同定値は、一般に、排気系が有する実際の無駄時間の影響を受ける。そこで、本発明では、流量データ生成手段が生成したデータの値、すなわち、排ガスの流量を表すデータの値に応じて定めた所定の範囲内の値に前記同定値を制限する。これにより、Ｏ2センサの出力を円滑に目標値に収束させ得る操作量を生成するために好適な前記同定値を前記同定手段により求めることが可能となる。
【００３２】
尚、前記同定手段により同定する排気系のモデルのパラメータが複数ある場合には、それらのパラメータの同定値を制限する前記所定の範囲は、それぞれのパラメータの同定値毎の範囲であってもよいが、複数のパラメータの同定値の組合わせの範囲であってもよい。例えば、上述のように排気系のモデルが自己回帰モデルであって、その自己回帰項が１次目及び２次目の二つの自己回帰項（これらは排気系の応答遅れ要素に対応する）を有する場合には、各自己回帰項にそれぞれ係る二つのパラメータの同定値の組合わせを所定の範囲（詳しくは、二つのパラメータの値を二つの座標軸とする座標平面上の所定の領域）内に制限することが好適である。また、上記自己回帰モデルの前記触媒上流空燃比に係るパラメータについては、そのパラメータの同定値を所定の範囲（上下限値を有する範囲）内の値に制限することが好適である。
【００３３】
また、前記同定手段を備えた本発明の第１及び第２の態様では、該同定手段は、前記排気系のモデルにおける前記排ガスセンサの出力と該排ガスセンサの実際の出力との間の誤差を最小化するアルゴリズム、例えば重み付き最小２乗法のアルゴリズムにより前記パラメータの値を同定する手段であり、該アルゴリズムの重みパラメータの値を前記流量データ生成手段が生成したデータの値に応じて可変的に設定する手段を備えることが好適である。
【００３４】
すなわち、前記同定手段により排気系のモデルのパラメータを同定するためのアルゴリズムとしては、最小２乗法、重み付き最小２乗法、固定ゲイン法、漸減ゲイン法等、種々のアルゴリズムが挙げられるが、本願発明者等の知見によれば、排気系の実際の無駄時間が長くなるほど、排気系のモデルのパラメータの同定値の変動を生じやすく、ひいては、前記推定手段が生成するデータの誤差が生じやすくなって、排ガスセンサの出力の目標値への制御の速応性等が損なわれ易い。この場合、例えば重み付き最小２乗法のアルゴリズムでは、その重みパラメータの値を調整することにより、排気系のモデルのパラメータの同定値の変動を抑えることが可能である。
【００３５】
このため、本発明では、排気系のモデルのパラメータの値の同定処理のために重み付き最小２乗法等のアルゴリズムが用いられ、その重みパラメータの値が前記流量データ生成手段が生成したデータ（排ガスの流量を表すデータ）の値に応じて可変的に設定される。これにより、前記重みパラメータの値を排気系の実際の無駄時間に合わせて調整することが可能となる。この結果、排気系のモデルのパラメータの同定値の変動を抑えて、前記推定手段により生成するデータの精度を高めることが可能となり、ひいては、排ガスセンサの出力の目標値への収束制御の速応性や精度を高めることができる。
【００３６】
さらに、前記同定手段を備えた本発明の第１及び第２の態様では、前記操作量生成手段は、前記同定手段が求めた前記排気系のモデルのパラメータの同定値とを用いて前記操作量を生成することが好ましい。
【００３７】
これによれば、排気系のモデルの実際の挙動状態や特性を反映させて前記操作量を生成することができるため、排ガスセンサの出力を目標値に収束させる上でより好適な操作量を生成することができる。ひいては、排ガスセンサの出力の目標値への制御の速応性や精度をより高めることができ、触媒装置の浄化性能を向上させることができる。特に、排気系モデルのパラメータの同定値を流量データ生成手段が生成するデータに応じた所定の範囲に制限し、あるいは、同定手段のアルゴリズムの重みパラメータの値を流量データ生成手段が生成するデータに応じて設定したときには、前述のように排気系のモデルのパラメータの同定値の適性が高まるため、上記の効果が高まる。
【００３８】
尚、操作量生成手段が前記操作量を生成するためのフィードバック制御の処理は、適応制御の処理が好ましく、より具体的には、例えばスライディングモード制御の処理が好適である。ここで、スライディングモード制御の処理は、所謂、等価制御入力に係わる制御則と到達則とに基づく通常的なスライディングモード制御の処理であってもよいが、これらの制御則に加えてさらに適応則（適応アルゴリズム）を付加した適応スライディングモード制御の処理が好適である。
【００３９】
【発明の実施の形態】
本発明の第１実施形態を図１〜図１７を参照して説明する。本実施形態は、本発明の第２の態様に係わる実施形態である。
【００４０】
図１は本実施形態の装置の全体構成をブロック図で表したものであり、図中、１は例えば自動車やハイブリッド車に車両の推進源として搭載された４気筒のエンジン（内燃機関）である。このエンジン１が各気筒毎に燃料及び空気の混合気の燃焼により生成する排ガスは、エンジン１の近傍で共通の排気管２（排気通路）に集合され、該排気管２を介して大気中に放出される。そして、排気管２には、排ガスを浄化するために、三元触媒を用いて構成された二つの触媒装置３，４が該排気管２の上流側から順に介装されている。尚、下流側の触媒装置４はこれを省略してもよい。
【００４１】
本実施形態のシステムでは、触媒装置３の最適な浄化性能を確保するようにエンジン１の空燃比（より正確にはエンジン１で燃焼させる燃料及び空気の混合気の空燃比。以下、同様）を制御する。そして、この制御を行うために、本実施形態のシステムは、触媒装置３の上流側（より詳しくはエンジン１の各気筒毎の排ガスの集合箇所）で排気管２に設けられた空燃比センサ５と、触媒装置３の下流側（触媒装置４の上流側）で排気管２に設けられた排ガスセンサとしてのＯ2センサ（酸素濃度センサ）６と、これらのセンサ５，６の出力（検出値）等に基づき後述の制御処理を行う制御ユニット７とを具備している。尚、制御ユニット７には、前記空燃比センサ５やＯ2センサ６の出力の他に、回転数センサや吸気圧センサ、冷却水温センサ等、エンジン１の運転状態を検出するための図示しない各種のセンサの出力が与えられる。
【００４２】
Ｏ2センサ６は、触媒装置３を通過した排ガス中の酸素濃度に応じたレベルの出力VO2/OUT（酸素濃度の検出値を示す出力）を生成する通常的なＯ2センサである。ここで、排ガス中の酸素濃度は、燃焼によりその排ガスとなった混合気の空燃比に応じたものとなる。そして、このＯ2センサ６の出力VO2/OUTは、図２に実線ａで示すように、排ガス中の酸素濃度に対応する空燃比が理論空燃比近傍の比較的狭い範囲Δに存するような状態で、該排ガス中の酸素濃度に対してほぼ線形に高感度な変化を生じるものとなる。また、その範囲Δを逸脱した空燃比に対応する酸素濃度では、Ｏ2センサ６の出力VO2/OUTはほぼ一定のレベルに飽和する。
【００４３】
空燃比センサ５は、触媒装置３に進入する排ガスの空燃比（より詳しくは触媒装置３に進入する排ガスの酸素濃度により把握される空燃比）の検出値を表す出力KACTを生成するものである。この空燃比センサ５は、例えば本願出願人が特開平４−３６９４７１号公報にて説明した広域空燃比センサにより構成されたものであり、図２に実線ｂで示すように、Ｏ2センサ５よりも排ガス中の酸素濃度の広範囲にわたってそれに比例したレベルの出力KACTを生成するものである。以下の説明では、この空燃比センサ５をＬＡＦセンサ５と称し、触媒装置３に進入する排ガスの空燃比を触媒上流空燃比と称する。
【００４４】
制御ユニット７は、マイクロコンピュータを用いて構成されたものであり、触媒上流空燃比の目標値である目標空燃比KCMD（これはＬＡＦセンサ５の出力KACTの目標値でもある）を触媒上流空燃比を規定する操作量としてを逐次生成する処理を所定の制御サイクルで実行する排気側制御ユニット７ａと、該目標空燃比KCMDに応じてエンジン１の燃料供給量を調整することによって触媒上流空燃比を操作する処理を所定の制御サイクルで逐次実行する機関側制御ユニット７ｂとを具備している。これらの制御ユニット７ａ，７ｂは、それぞれ本発明における操作量生成手段、空燃比操作手段に相当するものである。
【００４５】
ここで、本実施形態では、各制御ユニット７ａ，７ｂがそれぞれの処理を実行する制御サイクルは各別の制御サイクルとされている。すなわち、排気側制御ユニット７ａの処理の制御サイクルは、触媒装置３を含む後述の排気系Ｅが有する比較的長い無駄時間や演算負荷等を考慮し、あらかじめ定めた一定の周期（例えば３０〜１００ｍｓ程度の周期）とされている。また、機関側制御ユニット７ｂの処理の制御サイクルは、エンジン１の燃料供給量の調整処理をエンジン１の燃焼サイクルに同期させて行う必要があることから、エンジン１のクランク角周期（所謂ＴＤＣ）に同期した周期とされている。そして、排気側制御ユニット７ａの制御サイクルの周期は、エンジン１のクランク角周期（ＴＤＣ）よりも長いものとされている。
【００４６】
これらの制御ユニット７ａ，７ｂの処理をさらに説明する。まず、機関側制御ユニット７ｂは、その機能的構成として、エンジン１への基本燃料噴射量Ｔimを求める基本燃料噴射量算出部８と、基本燃料噴射量Ｔimを補正するための第１補正係数KTOTAL及び第２補正係数KCMDMをそれぞれ求める第１補正係数算出部９及び第２補正係数算出部１０とを具備する。
【００４７】
前記基本燃料噴射量算出部８は、エンジン１の回転数NEと吸気圧PBとから、それらにより規定されるエンジン１の基準の燃料噴射量（燃料供給量）をあらかじめ設定されたマップを用いて求め、その基準の燃料噴射量をエンジン１の図示しないスロットル弁の有効開口面積に応じて補正することで基本燃料噴射量Ｔimを算出するものである。
【００４８】
また、第１補正係数算出部９が求める第１補正係数KTOTALは、エンジン１の排気還流率（エンジン１の吸入空気中に含まれる排ガスの割合）や、エンジン１の図示しないキャニスタのパージ時にエンジン１に供給される燃料のパージ量、エンジン１の冷却水温、吸気温等を考慮して前記基本燃料噴射量Ｔimを補正するためのものである。
【００４９】
また、第２補正係数算出部１０が求める第２補正係数KCMDMは、排気側制御ユニット７ａが後述の如く算出する目標空燃比KCMDに対応してエンジン１へ流入する燃料の冷却効果による吸入空気の充填効率を考慮して基本燃料噴射量Ｔimを補正するためのものである。
【００５０】
これらの第１補正係数KTOTAL及び第２補正係数KCMDMによる基本燃料噴射量Ｔimの補正は、第１補正係数KTOTAL及び第２補正係数KCMDMを基本燃料噴射量Ｔimに乗算することで行われ、この補正によりエンジン１の要求燃料噴射量Ｔcylが得られる。
【００５１】
尚、前記基本燃料噴射量Ｔimや、第１補正係数KTOTAL、第２補正係数KCMDMのより具体的な算出手法は、特開平５−７９３７４号公報等に本願出願人が開示しているので、ここでは詳細な説明を省略する。
【００５２】
機関側制御ユニット７ｂは、上記の機能的構成の他、さらに、排気側制御ユニット７ａ（詳細は後述する）が逐次算出する目標空燃比KCMDにＬＡＦセンサ５の出力KACT（触媒上流空燃比の検出値）を収束させるようにフィードバック制御の処理によりエンジン１の燃料噴射量を調整することでエンジン１の空燃比を操作するフィードバック制御部１４を備えている。
【００５３】
このフィードバック制御部１４は、本実施形態では、エンジン１の各気筒の全体的な空燃比をフィードバック制御する大局的フィードバック制御部１５と、エンジン１の各気筒毎の空燃比をフィードバック制御する局所的フィードバック制御部１６とから構成されている。
【００５４】
前記大局的フィードバック制御部１５は、ＬＡＦセンサ５の出力KACTが前記目標空燃比KCMDに収束するように、前記要求燃料噴射量Ｔcylを補正する（要求燃料噴射量Ｔcylに乗算する）フィードバック補正係数KFBを逐次求めるものである。そして、該大局的フィードバック制御部１５は、ＬＡＦセンサ５の出力KACTと目標空燃比KCMDとの偏差に応じて周知のＰＩＤ制御の処理により前記フィードバック補正係数KFBとしてのフィードバック操作量KLAFを生成するＰＩＤ制御器１７と、ＬＡＦセンサ５の出力KACTと目標空燃比KCMDとからエンジン１の運転状態の変化や特性変化等を考慮して前記フィードバック補正係数KFBを規定するフィードバック操作量KSTRを適応的に求める適応制御器１８（図ではＳＴＲと称している）とをそれぞれ独立的に具備している。
【００５５】
ここで、本実施形態では、前記ＰＩＤ制御器１７が生成するフィードバック操作量KLAFは、ＬＡＦセンサ５の出力KACT（触媒上流空燃比の検出値）が目標空燃比KCMDに一致している状態で「１」となり、該操作量KLAFをそのまま前記フィードバック補正係数KFBとして使用できるようになっている。一方、適応制御器１８が生成するフィードバック操作量KSTRはＬＡＦセンサ５の出力KACTが目標空燃比KC MDに一致する状態で「目標空燃比KCMD」となるものである。このため、該フィードバック操作量KSTRを除算処理部１９で目標空燃比KCMDにより除算してなるフィードバック操作量kstr（＝KSTR／KCMD）が前記フィードバック補正係数KFBとして使用できるようになっている。
【００５６】
そして、大局的フィードバック制御部１５は、ＰＩＤ制御器１７により生成されるフィードバック操作量KLAFと、適応制御器１８が生成するフィードバック操作量KSTRを目標空燃比KCMDにより除算してなるフィードバック操作量kstrとを切換部２０で適宜、択一的に選択する。さらに、大局的フィードバック制御部１５は、その選択したフィードバック操作量KLAF又はkstrを前記フィードバック補正係数KFBとして使用し、該補正係数KFBを前記要求燃料噴射量Ｔcylに乗算することにより該要求燃料噴射量Ｔcylを補正する。尚、かかる大局的フィードバック制御部１５（特に適応制御器１８）については後にさらに詳細に説明する。
【００５７】
前記局所的フィードバック制御部１６は、ＬＡＦセンサ５の出力KACTから各気筒毎の実空燃比#nA/F(n=1，2，3，4)を推定するオブザーバ２１と、このオブザーバ２１により推定された各気筒毎の実空燃比#nA/Fから各気筒毎の空燃比のばらつきを解消するよう、ＰＩＤ制御を用いて各気筒毎の燃料噴射量のフィードバック補正係数#nKLAFをそれぞれ求める複数（気筒数個）のＰＩＤ制御器２２とを具備する。
【００５８】
ここで、オブザーバ２１は、それを簡単に説明すると、各気筒毎の実空燃比#nA/Fの推定を次のように行うものである。すなわち、エンジン１からＬＡＦセンサ５の箇所（各気筒毎の排ガスの集合部）にかけての系を、エンジン１の各気筒毎の実空燃比#nA/FからＬＡＦセンサ５が検出する触媒上流空燃比を生成する系と考え、この系が、ＬＡＦセンサ５の検出応答遅れ（例えば一次遅れ）や、触媒上流空燃比に対するエンジン１の各気筒毎の空燃比の時間的寄与度を考慮してあらかじめモデル化されている。そして、そのモデルの基で、ＬＡＦセンサ５の出力KACTから、逆算的に各気筒毎の実空燃比#nA/Fを推定する。
【００５９】
尚、このようなオブザーバ２１は、本願出願人が例えば特開平７−８３０９４号公報に詳細に開示しているので、ここでは、さらなる説明を省略する。
【００６０】
また、局所的フィードバック制御部１６の各ＰＩＤ制御器２２は、ＬＡＦセンサ５の出力KACTを、前回の制御サイクルで各ＰＩＤ制御器２２により求められたフィードバック補正係数#nKLAFの全気筒についての平均値により除算してなる値を各気筒の空燃比の目標値とする。そして、各ＰＩＤ制御器２２は、その目標値とオブザーバ２１により求められた各気筒毎の実空燃比#nA/Fの推定値との偏差が解消するように、今回の制御サイクルにおける各気筒毎のフィードバック補正係数#nKLAFを求める。
【００６１】
そして、局所的フィードバック制御部１６は、前記要求燃料噴射量Ｔcylに大局的フィードバック制御部１５のフィードバック補正係数KFBを乗算してなる値に、各気筒毎のフィードバック補正係数#nKLAFを乗算することで、各気筒の出力燃料噴射量#nＴout(n=1，2，3，4)を求める。
【００６２】
このようにして求められる各気筒の出力燃料噴射量#nＴoutは、機関側制御ユニット７ｂに備えた各気筒毎の付着補正部２３により吸気管の壁面への燃料の付着を考慮した補正が各気筒毎になされた後、エンジン１の図示しない燃料噴射装置に与えられる。そして、その付着補正がなされた出力燃料噴射量#nＴoutで、エンジン１の各気筒への燃料噴射が行われる。
【００６３】
尚、上記付着補正については、本願出願人が例えば特開平８−２１２７３号公報に詳細に開示しているので、ここではさらなる説明を省略する。また、図１において、参照符号２４を付したセンサ出力選択処理部は、前記オブザーバ２１による各気筒毎の実空燃比#nA/Fの推定に適したＬＡＦセンサ５の出力KACTをエンジン１の運転状態に応じて選択するもので、これについては、本願出願人が特開平７−２５９５８８号公報にて詳細に開示しているので、ここではさらなる説明を省略する。
【００６４】
一方、前記排気側制御ユニット７ａは、ＬＡＦセンサ５の出力KACTと所定の空燃比基準値FLAF/BASEとの偏差kact（＝KACT−FLAF/BASE）を逐次求める減算処理部１１と、Ｏ2センサ６の出力VO2/OUTとその目標値VO2/TARGETとの偏差VO2（＝VO2/OUT−VO2/TARGET）を逐次求める減算処理部１２とを備えている。
【００６５】
ここで、Ｏ2センサ６の出力VO2/OUTの目標値VO2/TARGETは、触媒装置３の最適な浄化性能（具体的には排ガス中のNOx、HC、CO等の浄化率）が得られるようなＯ2センサ６の出力値としてあらかじめ定めた所定値であり、図２に示すように排ガスの空燃比が理論空燃比近傍の範囲Δに存するような状態においてＯ2センサ６が生成し得る出力値である。また、ＬＡＦセンサ５の出力KACTに係わる前記空燃比基準値FLAF/BASEは、本実施形態では「理論空燃比」（一定値）に設定されている。
【００６６】
尚、以下の説明において、前記減算処理部１１，１２がそれぞれ求める偏差kact，VO2をそれぞれＬＡＦセンサ５の偏差出力kact及びＯ2センサ６の偏差出力VO2と称する。
【００６７】
排気側制御ユニット７ａはさらに、上記の偏差出力kact，VO2のデータをそれぞれＬＡＦセンサ５の出力及びＯ2センサ６の出力を表すデータとして用い、それらのデータに基づいて前記目標空燃比KCMD（触媒上流空燃比の目標値）を逐次算出する目標空燃比生成処理部１３を備えている。
【００６８】
この目標空燃比生成処理部１３は、排気管２のＬＡＦセンサ５の箇所からＯ2センサ６の箇所にかけての触媒装置３を含む排気系（図１で参照符号Ｅを付した部分）を制御対象とする。そして、該目標空燃比生成処理部１３は、上記排気系Ｅが有する無駄時間や、前記エンジン１及び機関側制御ユニット７ｂからなる空燃比操作系が有する無駄時間、排気系Ｅの挙動変化等を考慮しつつ、フィードバック制御の一手法であるスライディングモード制御（詳しくは適応スライディングモード制御）の処理を用いてＯ2センサ６の出力VO2/OUTをその目標値VO2/TARGETに収束（整定）させるようにエンジン１の目標空燃比KCMDを逐次算出するものである。
【００６９】
このような目標空燃比生成処理部１３の制御処理を行うために、本実施形態では、前記排気系Ｅが、前記ＬＡＦセンサ５の出力KACT（ＬＡＦセンサ５が検出する触媒上流空燃比）から無駄時間要素及び応答遅れ要素を介してＯ2センサ６の出力VO2/OUTを生成する系であるとして、該排気系Ｅの挙動を表現するモデルがあらかじめ構築されている。また、前記エンジン１及び機関側制御ユニット７ｂから成る空燃比操作系が、目標空燃比KCMDから無駄時間要素を介してＬＡＦセンサ５の出力KACTを生成する系であるとして、該空燃比操作系の挙動を表現するモデルがあらかじめ構築されている。
【００７０】
この場合、排気系Ｅのモデル（以下、排気系モデルという）に関しては、ＬＡＦセンサ５の出力KACT及びＯ2センサ６の出力VO2/OUTの代わりに、ＬＡＦセンサ５の前記偏差出力kact（＝KACT−FLAF/BASE）を排気系Ｅに対する入力量、Ｏ2センサ６の前記偏差出力VO2（＝VO2/OUT−VO2/TARGET）を排気系Ｅの出力量とし、次式（１）の離散時間系の自己回帰モデル（詳しくは、排気系Ｅの入力量としての偏差出力kactに無駄時間を有する自己回帰モデル）により排気系Ｅの挙動が表現されている。
【００７１】
【数１】
0004490000.tif 000002
【００７２】
ここで、上式（１）において、「ｋ」は排気側制御ユニット７ａの離散時間的な制御サイクルの番数を示し、「d1」は排気系Ｅの無駄時間（詳しくは、ＬＡＦセンサ５が検出する各時点の触媒上流空燃比がＯ2センサ６の出力VO2/OUTに反映されるようになるまでに要する無駄時間）を制御サイクル数で表したものである。この場合、排気系Ｅの実際の無駄時間は、触媒装置３に供給される排ガスの流量と密接に関連しており、基本的には、該排ガスの流量が少ないほど、該無駄時間が長くなる。これは基本的には、排ガスの流量が少ないほど、排ガスが触媒装置３を通過するのに要する時間が長くなるためである。このため、本実施形態では、後述するように触媒装置３に供給される排ガスの流量を逐次把握し、それに応じて、式（１）の排気系モデルにおける無駄時間d1の値を適宜可変的に設定するようにしている（以下、無駄時間d1の設定値を設定無駄時間d1という）。
【００７３】
また、式（１）の右辺第１項及び第２項はそれぞれ排気系Ｅの応答遅れ要素に対応するもので、第１項は１次目の自己回帰項、第２項は２次目の自己回帰項である。そして、「a1」、「a2」はそれぞれ１次目の自己回帰項のゲイン係数、２次目の自己回帰項のゲイン係数である。該ゲイン係数a1，a2は別の言い方をすれば、排気系Ｅの出力量としてのＯ2センサ６の偏差出力VO2に係る係数である。
【００７４】
さらに、式（１）の右辺第３項は排気系Ｅの無駄時間要素に対応するもので、排気系Ｅの入力量であるＬＡＦセンサ５の偏差出力kactに排気系Ｅの無駄時間d1を含めて該無駄時間要素を表現したものである。そして、「b1」はその無駄時間要素（無駄時間d1を有する入力量）に係るゲイン係数である。
【００７５】
そして、前記ゲイン係数a1，a2，b1は排気系Ｅのモデルの挙動を規定する上である値に設定すべきパラメータであり、本実施形態では後述の同定器によって逐次同定されるものである。
【００７６】
このように式（１）により表現した排気系モデルは、それを言葉で表現すれば、排気側制御ユニット７ａの制御サイクル毎の排気系Ｅの入力量としてのＯ2センサの偏差出力VO2(k+1)を、その制御サイクルよりも過去の制御サイクルにおける偏差出力VO2(k)，VO2(k-1)と、排気系Ｅの無駄時間d1以前の制御サイクルにおける排気系Ｅの入力量（触媒上流空燃比）としてのＬＡＦセンサ５の偏差出力kact(k-d1)とにより表現するものである。
【００７７】
一方、エンジン１及び機関側制御ユニット７ｂからなる前記空燃比操作系のモデル（以下、空燃比操作系モデルという）に関しては、本実施形態では、前記目標空燃比KCMDと前記空燃比基準値FLAF/BASEとの偏差kcmd（＝KCMD−FLAF/BASE。以下、目標偏差空燃比kcmdという）を空燃比操作系の入力量、ＬＡＦセンサ５の偏差出力kactを空燃比操作系の出力量とし、次式（２）のモデルにより空燃比操作系モデルの挙動が表現されている。
【００７８】
【数２】
0004490000.tif 000003
【００７９】
ここで、式（２）の「d2」は、空燃比操作系が有する無駄時間（詳しくは、各時点の目標空燃比KCMDがＬＡＦセンサ５の出力KACTに反映されるようになるまでに要する無駄時間）を排気側制御ユニット７ａの制御サイクル数で表したものである。この場合、空燃比操作系の実際の無駄時間は、排気系Ｅの無駄時間と同様に、触媒装置３に供給される排ガスの流量と密接に関連しており、基本的には、排ガスの流量が少ないほど、該無駄時間が長くなる。これは基本的には、排ガスの流量が少ないほど、エンジン１の回転数が低い（クランク角周期が長い）ので、空燃比操作系の機関側制御ユニット７ｂの制御サイクルの周期が長くなるからである。このため、本実施形態では、後述するように触媒装置３に供給される排ガスの流量を逐次把握し、それに応じて、式（２）の空燃比操作系モデルにおける無駄時間d2の値を適宜可変的に設定するようにしている（以下、無駄時間d2の設定値を設定無駄時間d2という）。
【００８０】
前記式（２）により表現した空燃比操作系モデルは、該空燃比操作系が、その出力量（触媒上流空燃比）としてのＬＡＦセンサ５の偏差出力kactが、空燃比操作系の無駄時間d2前の時点における空燃比操作系の入力量としての目標偏差空燃比kcmdに一致するような系であるとして、該空燃比操作系の挙動を表現したものである。
【００８１】
尚、空燃比操作系には、実際には、無駄時間要素の他、エンジン１に起因した応答遅れ要素も含まれる。しかるに、目標空燃比KCMDに対する触媒上流空燃比の応答遅れは、基本的には前記機関側制御ユニット７ｂのフィードバック制御部１４（特に詳細を後述する適応制御器１８）によって補償されるため、排気側制御ユニット７ａから見た空燃比操作系では、エンジン１に起因する応答遅れ要素を考慮せずとも支障はない。
【００８２】
本実施形態における前記目標空燃比生成処理部１３は、式（１）により表した排気系モデル、並びに式（２）により表した空燃比操作系モデルに基づいて構築されたアルゴリズムによって、排気側制御ユニット７ａの制御サイクル毎に、目標空燃比KCMDを逐次算出する処理を行うものである。そして、該目標空燃比生成処理部１３は、その処理を行うために、図３に示すような機能的構成を具備している。
【００８３】
すなわち、目標空燃比生成処理部１３は、エンジン１の回転数NE、吸気圧PBの検出値から、触媒装置３に供給される排ガスの流量の推定値ABSV（以下、推定排ガスボリュームABSVという）を逐次算出する流量データ生成手段２８と、この推定排ガスボリュームABSVに応じて排気系モデル及び空燃比操作系モデルのそれぞれの設定無駄時間d1，d2を逐次設定する無駄時間設定手段２９とを具備している。
【００８４】
この場合、触媒装置３に供給される排ガスの流量は、エンジン１の回転数NEと吸気圧PBとの積に比例するので、流量データ生成手段２９は、エンジン１の回転数NE、吸気圧PBの検出値（現在値）から次式（３）により、前記推定排ガスボリュームABSVを逐次算出する。
【００８５】
【数３】
0004490000.tif 000004
【００８６】
ここで、式（３）においてSVPRAは、エンジン１の排気量（気筒容量）等に応じてあらかじめ設定された定数である。尚、本実施形態では、エンジン１の回転数NEが1500rpmであるときの排ガスの流量を基準としているため、式（３）では、回転数NEを1500[rpm]により除算している。
【００８７】
前記無駄時間設定手段２９は、このように流量データ生成手段２８が逐次算出する推定排ガスボリュームABSVの値から、例えば図４に実線ｃで示すようにあらかじめ設定されたデータテーブルにより、排気系Ｅの実際の無駄時間を表す値としての設定無駄時間d1を逐次求める。また、これと同様に、無駄時間設定手段２９は、推定排ガスボリュームABSVの値から、図４に実線ｄで示すようにあらかじめ設定されたデータテーブルにより、空燃比操作系の実際の無駄時間を表す値としての設定無駄時間d2を逐次求める。
【００８８】
この場合、このようなデータテーブルは、実験やシミュレーションに基づいて設定されている。そして、排気系Ｅの実際の無駄時間は、前述のように、基本的には触媒装置３に供給される排ガスの流量が少ないほど、長くなるので、図４の実線ｃの設定無駄時間d1は、このような傾向で、推定排ガスボリュームABSVに対して変化する。同様に、空燃比操作系の実際の無駄時間も、基本的には、触媒装置３に供給される排ガスの流量が少ないほど、長くなるので、図４の実線ｄの設定無駄時間d2も、このような傾向で、推定排ガスボリュームABSVに対して変化する。また、空燃比操作系の実際の無駄時間の排ガス流量に対する変化の度合いは、排気系Ｅの実際の無駄時間の変化度合いよりも小さいので、図４のデータテーブルにおいても、推定排ガスボリュームABSVの変化に対する設定無駄時間d2の変化の度合いは、設定無駄時間d1の変化度合いよりも小さいものとなっている。
【００８９】
尚、図４のデータテーブルでは、設定無駄時間d1，d2は、推定排ガスボリュムABSVに対して連続的に変化するものとなっているが、前記排気系モデルや空燃比操作系モデルにおける設定無駄時間d1，d2は排気側制御ユニット７ａの制御サイクル数で表すため、該設定無駄時間d1，d2は整数値である必要がある。このため、無駄時間設定手段２９は、実際には、例えば図４のデータテーブルに基づいて求められる設定無駄時間d1，d2の値の小数点以下を四捨五入してなる整数値を設定無駄時間d1，d2として求める。
【００９０】
また、本実施形態では、触媒装置３に供給される排ガス流量を、エンジン１の回転数NE及び吸気圧PBから推定するようにしているが、フローセンサ等を用いて直接的に排ガス流量を検出するようにしてもよい。
【００９１】
目標空燃比生成処理部１３は、さらに、排気系モデルのパラメータである前記ゲイン係数a1，a2，b1の値を逐次同定する同定器２５（同定手段）と、排気系Ｅの設定無駄時間d1及び空燃比操作系の設定無駄時間d2を合わせた合計設定無駄時間ｄ（＝d1＋d2）後のＯ2センサ６の偏差出力VO2の推定値VO2バー（以下、推定偏差出力VO2バーという）を逐次求める推定器２６（推定手段）と、適応スライディングモード制御の処理により前記目標空燃比KCMDを逐次求めるスライディングモード制御器２７とを具備している。
【００９２】
これらの同定器２５、推定器２６及びスライディングモード制御器２７の演算処理のアルゴリズムは排気系モデルや空燃比操作系モデルに基づいて以下のように構築されている。
【００９３】
まず、同定器２５に関し、排気系モデルのゲイン係数a1，a2，b1に対応する実際の排気系Ｅのゲイン係数は一般に該排気系Ｅの挙動状態や経時的な特性変化等によって変化する。従って、排気系モデル（式（１））の実際の排気系Ｅに対するモデル化誤差を極力少なくして該モデルの精度を高めるためには、ゲイン係数a1，a2，b1を実際の対象排気系Ｅの挙動状態等に則して適宜、リアルタイムで同定することが好ましい。
【００９４】
前記同定器２５は、上記のように排気系モデルのモデル化誤差を極力小さくするために、ゲイン係数a1，a2，b1をリアルタイムで逐次同定するものであり、その同定処理は次のように行われる。
【００９５】
すなわち、同定器２５は、排気側制御ユニット７ａの制御サイクル毎に、まず、今現在設定されている排気系モデルの同定ゲイン係数a1ハット，a2ハット，b1ハット、すなわち前回の制御サイクルで決定した同定ゲイン係数a1(k-1)ハット，a2(k-1)ハット，b1(k-1)ハットと、ＬＡＦセンサ５の偏差出力kact及びＯ2センサ６の偏差出力VO2の過去に得られたデータと、前記無駄時間設定手段２９により設定された排気系Ｅの設定無駄時間d1の最新値とを用いて、次式（４）により今現在設定されている排気系モデル上でのＯ2センサ６の偏差出力VO2の同定値VO2(k)ハット（以下、同定偏差出力VO2(k)ハットという）を求める。
【００９６】
【数４】
0004490000.tif 000005
【００９７】
この式（４）は、排気系モデルを表す前記式（１）を１制御サイクル分、過去側にシフトし、ゲイン係数a1，a2，b1を同定ゲイン係数a1ハット(k-1)，a2ハット(k-1)，b1ハット(k-1)で置き換えると共に、排気系Ｅの無駄時間d1として設定無駄時間d1の最新値を用いたものである。
【００９８】
ここで、次式（５），（６）で定義されるベクトルΘ及びξを導入すると（式（５），（６）中の添え字「Ｔ」は転置を意味する。以下同様。）、
【００９９】
【数５】
0004490000.tif 000006
【０１００】
【数６】
0004490000.tif 000007
【０１０１】
前記式（４）は、次式（７）により表される。
【０１０２】
【数７】
0004490000.tif 000008
【０１０３】
さらに同定器２５は、前記式（４）あるいは式（７）により求められるＯ2センサ６の同定偏差出力VO2(k)ハットと今現在のＯ2センサ６の偏差出力VO2(k)との偏差id/e(k)を排気系モデルの実際の排気系Ｅに対するモデル化誤差を表すものとして次式（８）により求める（以下、偏差id/eを同定誤差id/eという）。
【０１０４】
【数８】
0004490000.tif 000009
【０１０５】
そして、同定器２５は、上記同定誤差id/eを最小にするように新たな同定ゲイン係数a1(k)ハット，a2(k)ハット，b1(k)ハット、換言すれば、これらの同定ゲイン係数を要素とする新たな前記ベクトルΘ(k)（以下、このベクトルを同定ゲイン係数ベクトルΘという）を求めるもので、その算出を、次式（９）により行う。すなわち、同定器２５は、前回の制御サイクルで決定した同定ゲイン係数a1ハット(k-1)，a2ハット(k-1)，b1ハット(k-1)を、同定誤差id/e(k)に比例させた量だけ変化させることで新たな同定ゲイン係数a1(k)ハット，a2(k)ハット，b1(k)ハットを求める。
【０１０６】
【数９】
0004490000.tif 000010
【０１０７】
ここで、式（９）中の「Ｋθ」は次式（１０）により決定される三次のベクトル（各同定ゲイン係数a1ハット，a2ハット，b1ハットの同定誤差id/eに応じた変化度合いを規定するゲイン係数ベクトル）である。
【０１０８】
【数１０】
0004490000.tif 000011
【０１０９】
また、上式（１０）中の「Ｐ」は次式（１１）の漸化式により逐次更新される三次の正方行列である。
【０１１０】
【数１１】
0004490000.tif 000012
【０１１１】
尚、式（１１）中の「λ1」、「λ2」は０＜λ1≦１及び０≦λ2＜２の条件を満たすように設定され、また、「Ｐ」の初期値Ｐ(0)は、その各対角成分を正の数とする対角行列である。
【０１１２】
ここで、式（１１）中の「λ1」、「λ2」の値の設定の仕方によって、固定ゲイン法、漸減ゲイン法、重み付き最小二乗法、最小二乗法、固定トレース法等、各種の具体的なアルゴリズムが構成される。本実施形態では、例えば重み付き最小二乗法のアルゴリズムが採用され、「λ1」、「λ2」の値は、０＜λ1＜１、λ2＝１である。
【０１１３】
ここで、「λ1」は、重み付き最小２乗法の重みパラメータであり、本実施形態では、この重みパラメータλ1の値が、前記流量データ生成手段２８が逐次算出する推定排ガスボリュームABSVに応じて（結果的には、設定無駄時間d1に応じて）可変的に設定される。
【０１１４】
すなわち、本実施形態では、同定器２５は、排気側制御ユニット７ａの制御サイクル毎に、流量データ生成手段２８が求めた推定排ガスボリュームABSVの最新値から、図５に示すようにあらかじめ定められたデータテーブルに基づいて重みパラメータλ1の値を設定する。この場合、図５のデータテーブルでは、重みパラメータλ1の値は、基本的には、推定排ガスボリュームABSVが少ないほど、値が大きくなって、「１」に近づくようになっている。そして、同定器２５は、各制御サイクルで前記行列Ｐ(k)を式（１１）により更新するに際しては、上記のように推定排ガスボリュームABSVに応じて設定した重みパラメータλ1の値を用いる。
【０１１５】
本実施形態における同定器２５は基本的には前述のようなアルゴリズム（演算処理）によって、前記同定誤差id/eを最小化するように逐次型の重み付き最小２乗法のアルゴリズムにより、排気系モデルの同定ゲイン係数a1ハット，a2ハット，b1ハットを制御サイクル毎に逐次求めるものである。
【０１１６】
以上説明した演算処理が同定器２５による基本的な処理内容である。尚、本実施形態では、同定器２５は、同定ゲイン係数a1ハット，a2ハット，b1ハットを求めるに際して、それらの値の制限処理等、付加的な処理も行うのであるが、これらについては後述する。
【０１１７】
次に、前記推定器２６は、後に詳細を説明するスライディングモード制御器２７による目標空燃比KCMDの算出処理に際しての排気系Ｅの無駄時間及び空燃比操作系の無駄時間d2の影響を補償するために、前記合計設定無駄時間ｄ（＝d1＋d2）後のＯ2センサ６の偏差出力VO2の推定値である前記推定偏差出力VO2バーを制御サイクル毎に逐次求めるものである。その推定処理のアルゴリズムは、次のように構築されている。
【０１１８】
まず、排気系モデルを表す前記式（１）に、空燃比操作系モデルを表す式（２）を適用すると、式（１）は次式（１１）に書き換えられる。
【０１１９】
【数１２】
0004490000.tif 000013
【０１２０】
この式（１２）は、排気系Ｅ及び空燃比操作系を合わせた系を、目標偏差空燃比kcmdから排気系Ｅ及び空燃比操作系の両者の無駄時間要素と排気系Ｅの応答遅れ要素とを介してＯ2センサ６の偏差出力VO2を生成する系として、該系の挙動を離散時間系で表現したものである。
【０１２１】
そして、この式（１２）を用いることで、各制御サイクルにおける合計設定無駄時間ｄ後のＯ2センサの偏差出力VO2(k+d)バーは、Ｏ2センサ６の偏差出力VO2の現在値及び過去値の時系列データVO2(k)及びVO2(k-1)と、スライディングモード制御器２７が求める目標空燃比KCMD（詳細な求め方は後述する）に相当する目標偏差空燃比kcmd（＝KCMD−FLAF/BASE）の過去値の時系列データkcmd(k-j)（ｊ＝1，2，…，d）とを用いて次式（１３）により表される。
【０１２２】
【数１３】
0004490000.tif 000014
【０１２３】
ここで、式（１３）において、α1，α2は、それぞれ同式（１３）中の但し書きで定義した行列Ａのべき乗Ａd（ｄ＝d1＋d2）の第１行第１列成分、第１行第２列成分である。また、βj（j=1，2，…，ｄ）は、それぞれ行列Ａのべき乗Ａj-1（j=1，2，…，ｄ）と同式（１３）中の但し書きで定義したベクトルＢとの積Ａj-1・Ｂの第１行成分である。
【０１２４】
さらに、式（１３）中の目標偏差空燃比kcmdの過去値の時系列データkc md(k-j)（j=1，2，…，ｄ）のうち、現在から空燃比操作系の無駄時間d2以前の目標偏差空燃比kcmdの過去値の時系列データkcmd(k-d2)，kcmd(k-d2-1)，…，kcmd(k-d)は前記式（２）によって、それぞれ、ＬＡＦセンサ５の偏差出力kactの現在以前に得られるデータkact(k)，kact(k-1)，…，kact(k-d+d2)に置き換えることができる。そして、この置き換えを行うことで、次式（１４）が得られる。
【０１２５】
【数１４】
0004490000.tif 000015
【０１２６】
この式（１４）が本実施形態において、推定器２６が推定偏差出力VO2(k+d)バーを制御サイクル毎に逐次算出するための基本式である。つまり、本実施形態では、推定器２６は、Ｏ2センサ６の偏差出力VO2の現在値及び過去値の時系列データVO2(k)及びVO2(k-1)と、スライディングモード制御器２７が過去に求めた目標空燃比KCMDを表す目標偏差空燃比kcmdの過去値のデータkcmd(k-j)（ｊ＝1，2，…，d2-1）と、ＬＡＦセンサ５の偏差出力kactの現在値及び過去値の時系列データkact(k-j)（ｊ＝0，1，…，d1）とを用いて式（１４）の演算を行うことによってＯ2センサ６の推定偏差出力VO2(k+d)バーを求める。
【０１２７】
この場合、式（１４）により推定偏差出力VO2(k+d)バーを算出するために必要となる係数値α1，α2及びβj（j=1，2，…，ｄ）の値は、基本的には、前記ゲイン係数a1，a2，b1（これらは式（１３）の但し書きで定義した行列Ａ及びベクトルＢの成分である）の最新の同定値である同定ゲイン係数a1(k)ハット、a2(k)ハット、b1(k)ハットが用いられる。また、式（１４）の演算で必要となる無駄時間d1，d2の値は、前記無駄時間設定手段２９が前述のように設定する設定無駄時間d1，d2の最新値が用いられる。
【０１２８】
ところで、本実施形態では、式（１４）で用いる設定無駄時間d1，d2の値は、推定排ガスボリュームABSVによって変化し、これに伴い、式（１４）により推定偏差出力VO2(k+d)バーの算出に必要な目標偏差空燃比kcmdのデータ及びＬＡＦセンサ５の偏差出力kactのデータの個数も変化する。そして、この場合、空燃比操作系の設定無駄時間d2の値が「１」となる場合がある（本実施形態ではd1＞d2≧１である。図４参照）。この場合には、式（１３）中の目標偏差空燃比kcm dの過去値の時系列データkcmd(k-j)（ｊ＝1，2，…，ｄ）の全てをそれぞれＬＡＦセンサ５の偏差出力kactの現在以前に得られる時系列データkact(k)，kact(k-1)，…，kact(k-d+d2)に置き換えることができる。このため、この場合には、式（１３）は、目標偏差空燃比kcmdのデータを含まない次式（１５）に書き換えられる。
【０１２９】
【数１５】
0004490000.tif 000016
【０１３０】
つまり、設定無駄時間d2の値が「１」である場合には、Ｏ2センサ６の推定偏差出力VO2(k+d)バーは、Ｏ2センサ６の偏差出力VO2の時系列データVO2(k)及びVO2(k-1)と、ＬＡＦセンサ５の偏差出力kactの現在値及び過去値の時系列データkact(k-j)（ｊ＝0，1，…，ｄ-1）と、同定ゲイン係数a1ハット、a2ハット、b1ハットにより定まる係数値α1，α2及びβj（j=1，2，…，ｄ）と、設定無駄時間d1，d2の和の合計設定無駄時間ｄ（＝d1＋d2）とを用いて求めることができる。
【０１３１】
このため、本実施形態では、推定器２６は、空燃比操作系の設定無駄時間d2がd2＞１である場合には、前記式（１４）の演算により推定偏差出力VO2(k+d)バーを求め、d2＝１である場合には、式（１５）の演算により推定偏差出力VO2(k+d)を求める。
【０１３２】
尚、推定偏差出力VO2(k+d)バーは、ＬＡＦセンサ５の偏差出力kactのデータを使用せずに、式（１３）の演算により求めるようにしてもよい。この場合には、Ｏ2センサ６の推定偏差出力VO2(k+d)バーは、Ｏ2センサ６の偏差出力VO2の時系列データVO2(k)及びVO2(k-1)と、目標偏差空燃比kcmdの過去値の時系列データkcmd(k-j)（ｊ＝1，2，…，ｄ）と、同定ゲイン係数a1ハット、a2ハット、b1ハットにより定まる係数値α1，α2及びβj（j=1，2，…，ｄ）と、設定無駄時間d1，d2の和の合計設定無駄時間ｄ（＝d1＋d2）とを用いて求められることとなる。さらには、式（１３）中の設定無駄時間d2以前の目標偏差空燃比kcmdの時系列データのうちの一部のみをＬＡＦセンサ５の偏差出力kactに置き換えた式によって推定偏差出力VO2(k+d)バーを求めることも可能である。但し、推定偏差出力VO2(k+d)バーの信頼性を高める上では、エンジン１等の実際の挙動が反映されるＬＡＦセンサ５の偏差出力kactのデータを可能な限り用いた式（１４）又は式（１５）の演算により推定偏差出力VO2(k+d)バーを求めることが好ましい。
【０１３３】
以上説明した演算処理のアルゴリズムが、推定器２６により制御サイクル毎にＯ2センサ６の偏差出力VO2の合計設定無駄時間ｄ後の推定値である推定偏差出力VO2(k+d)バーを求めるための基本的なアルゴリズムである。
【０１３４】
次に、前記スライディングモード制御器２７を説明する。
【０１３５】
スライディングモード制御器２７は、通常的なスライディングモード制御に外乱等の影響を極力排除するための適応則（適応アルゴリズム）を加味した適応スライディングモード制御の処理により、Ｏ2センサ６の出力VO2/OUTをその目標値VO2/TARGETに収束させるように（Ｏ2センサ６の偏差出力VO2を「０」に収束させるように）、排気系Ｅに与えるべき入力量（詳しくは、ＬＡＦセンサ５の出力KACT（空燃比の検出値）と前記空燃比基準値FLAF/BASEとの偏差の目標値で、これは前記目標偏差空燃比kcmdに等しい。以下、この入力量をＳＬＤ操作入力ｕslと称する）を逐次算出し、その算出したＳＬＤ操作入力ｕslから前記目標空燃比KCMDを逐次求めるものである。そして、その処理のためのアルゴリズムは次のように構築されている。
【０１３６】
まず、スライディングモード制御器２７の適応スライディングモード制御の処理に必要な切換関数とこの切換関数により定義される超平面（これはすべり面とも言われる）とについて説明する。
【０１３７】
本実施形態におけるスライディングモード制御の基本的な考え方としては、制御すべき状態量として、例えば各制御サイクルで得られたＯ2センサ６の偏差出力VO2(k)と、その１制御サイクル前に得られた偏差出力VO2(k-1)とを用い、スライディングモード制御用の切換関数σを次式（１６）により定義する。すなわち、該切換関数σは、Ｏ2センサ６の偏差出力VO2の時系列データVO2(k)、VO2(k-1)を成分とする線形関数により定義される。尚、前記偏差出力VO2(k)，VO2(k-1)を成分とするベクトルとして式（１６）中で定義したベクトルＸを以下、状態量Ｘという。
【０１３８】
【数１６】
0004490000.tif 000017
【０１３９】
この場合、切換関数σの成分VO2(k)、VO2(k-1)にそれぞれ係る係数s1，s2は、次式（１７）の条件を満たすように設定される。
【０１４０】
【数１７】
0004490000.tif 000018
【０１４１】
尚、本実施形態では、簡略化のために係数s1をs1＝１とし（この場合、s2／s1＝s2である）、−１＜s2＜１の条件を満たすように係数s2の値を設定している。
【０１４２】
このように切換関数σを定義したとき、スライディングモード制御用の超平面はσ＝０なる式によって定義されるものである。この場合、状態量Ｘは二次系であるので超平面σ＝０は図６に示すように直線となる。該超平面は位相空間の次数によって切換線又は切換面とも言われる
尚、本実施形態では、切換関数の変数成分である状態量として、実際には前記推定器２６により求められる前記推定偏差出力VO2バーの時系列データを用いるのであるがこれについては後述する。
【０１４３】
本実施形態で用いる適応スライディングモード制御は、状態量Ｘ＝（VO2(k)，VO2(k-1)）を上記の如く設定した超平面σ＝０に収束させる（切換関数σの値を「０」に収束させるための制御則である到達則と、その超平面σ＝０への収束に際して外乱等の影響を補償するための制御則である適応則（適応アルゴリズム）とにより該状態量Ｘを超平面σ＝０に収束させる（図６のモード１）。そして、該状態量Ｘを所謂、等価制御入力によって超平面σ＝０に拘束しつつ（切換関数σの値を「０」に保持する）、該状態量Ｘを超平面σ＝０上の平衡点であるVO2(k)＝VO2(k-1)＝０となる点、すなわち、Ｏ2センサ６の出力VO2/OUTの時系列データVO2/OUT(k)，VO2/OUT(k-1)が目標値VO2/TARGETに一致するような点に収束させる（図６のモード２）。
【０１４４】
上記のように状態量Ｘを超平面σ＝０の平衡点に収束させるためにスライディングモード制御器２７が生成する前記ＳＬＤ操作入力Ｕsl（＝目標偏差空燃比kcmd）は、次式（１８）のように、状態量Ｘを超平面σ＝０上に拘束するための制御則に従って排気系Ｅに与えるべき入力量成分である等価制御入力Ｕeqと、前記到達則に従って排気系Ｅに与えるべき入力量成分Ｕrch（以下、到達則入力Ｕrchという）と、前記適応則に従って排気系Ｅに与えるべき入力量成分Ｕadp（以下、適応則入力Ｕadpという）との総和により表される。
【０１４５】
【数１８】
0004490000.tif 000019
【０１４６】
そして、これらの等価制御入力Ｕeq、到達則入力Ｕrch及び適応則入力Ｕadpは、本実施形態では、排気系モデルと空燃比操作系モデルとを合わせた前記式（１２）に基づいて、次のように求められる。
【０１４７】
まず、状態量Ｘを超平面σ＝０に拘束するために排気系Ｅに与えるべき入力量成分である前記等価制御入力Ｕeqは、σ(k+1)＝σ(k)＝０という条件を満たす目標偏差空燃比kcmdである。そして、このような条件を満たす等価制御入力Ｕeqは、式（１２）と式（１６）とを用いて次式（１９）により与えられる。
【０１４８】
【数１９】
0004490000.tif 000020
【０１４９】
この式（１９）が本実施形態において、制御サイクル毎に等価制御入力Ｕeq(k)を求めるための基本式である。
【０１５０】
次に、前記到達則入力Ｕrchは、本実施形態では、基本的には次式（２０）により求められる。
【０１５１】
【数２０】
0004490000.tif 000021
【０１５２】
すなわち、到達則入力Ｕrchは、排気系Ｅ及び空燃比操作系の無駄時間を考慮し、前記合計設定無駄時間ｄ後の切換関数σの値σ(k+d)に比例するように決定される。
【０１５３】
この場合、式（２０）中の係数Ｆ（これは到達則のゲインを規定する）は、次式（２１）の条件を満たすように設定される。
【０１５４】
【数２１】
0004490000.tif 000022
【０１５５】
この式（２１）の条件は、外乱等が無い場合において、切換関数σの値を安定に超平面σ＝０に収束させるための条件である。尚、式（２１）中の好ましい条件は、切換関数σの値が超平面σ＝０に対して振動的な変化（所謂チャタリング）を生じるのを抑制する上で好適な条件である。
【０１５６】
次に、前記適応則入力Ｕadpは、本実施形態では、基本的には次式（２２）により求められる。ここで、式（２７）中のΔＴは排気側制御ユニット７ａの制御サイクルの周期である）。
【０１５７】
【数２２】
0004490000.tif 000023
【０１５８】
すなわち、適応則入力Ｕadpは、排気系Ｅ及び空燃比操作系の無駄時間を考慮し、前記合計設定無駄時間ｄ後までの切換関数σの値と排気側制御ユニット７ａの制御サイクルの周期ΔＴとの積の積算値（これは切換関数σの値の積分値に相当する）に比例させるように決定する。
【０１５９】
この場合、式（２２）中の係数Ｇ（これは適応則のゲインを規定する）は、次式（２３）の条件を満たすように設定する。
【０１６０】
【数２３】
0004490000.tif 000024
【０１６１】
この式（２３）の条件は、外乱等によらずに切換関数σの値を安定に超平面σ＝０に収束させるための条件である。
【０１６２】
尚、前記式（１７）、（２１）、（２３）の設定条件のより具体的な導出の仕方については、本願出願人が既に特開平11-93741号公報等にて詳細に説明しているので、ここでは詳細な説明を省略する。
【０１６３】
本実施形態におけるスライディングモード制御器２７は、基本的には前記式（１９）、（２０）、（２２）により決定される等価制御入力Ｕeq、到達則入力Ｕrch及び適応則入力Ｕadpの総和（Ｕeq＋Ｕrch＋Ｕadp）を排気系Ｅに与えるべきＳＬＤ操作入力Ｕslとして決定するのであるが、前記式（１９）、（２０）、（２２）で使用するＯ2センサ６の偏差出力VO2(k+d)，VO2(k+d-1)や、切換関数σの値σ(k+d)等は未来値であるので直接的には得られない。
【０１６４】
そこで、本実施形態では、スライディングモード制御器２７は、実際には、前記式（１９）により前記等価制御入力Ｕeqを決定するためのＯ2センサ６の偏差出力VO2(k+d)，VO2(k+d-1)の代わりに、前記推定器２６で求められる推定偏差出力VO2 (k+d)バー，VO2(k+d-1)バーを用い、次式（２４）により制御サイクル毎の等価制御入力Ｕeqを算出する。
【０１６５】
【数２４】
0004490000.tif 000025
【０１６６】
また、本実施形態では、実際には、推定器２６により前述の如く逐次求められた推定偏差出力VO2バーの時系列データを制御すべき状態量とし、前記式（１６）により設定された切換関数σに代えて、次式（２５）により切換関数σバーを定義する（この線形関数σバーは、前記式（１６）の偏差出力VO2の時系列データを推定偏差出力VO2バーの時系列データで置き換えたものに相当する）。
【０１６７】
【数２５】
0004490000.tif 000026
【０１６８】
そして、スライディングモード制御器２７は、前記式（２０）により前記到達則入力Ｕrchを決定するための切換関数σの値の代わりに、前記式（２５）により表される切換関数σバーの値を用いて次式（２６）により制御サイクル毎の到達則入力Ｕrchを算出する。
【０１６９】
【数２６】
0004490000.tif 000027
【０１７０】
同様に、スライディングモード制御器２７は、前記式（２２）により前記適応則入力Ｕadpを決定するための切換関数σの値の代わりに、前記式（２５）により表される線形関数σバーの値を用いて次式（２７）により制御サイクル毎の適応則入力Ｕadpを算出する。
【０１７１】
【数２７】
0004490000.tif 000028
【０１７２】
尚、前記式（２４），（２６），（２７）により等価制御入力Ｕeq、到達則入力Ｕrch及び適応則入力Ｕadpを算出する際に必要となる前記ゲイン係数a1，a2，b1としては、本実施形態では基本的には前記同定器２５により求められた最新の同定ゲイン係数a1(k)ハット，a2(k)ハット，b1(k)ハットが用いられる。また、到達則入力Ｕrch及び適応則入力Ｕadpを算出する際に必要となる各制御サイクルにおける切換関数σバーの値は、推定器２６により求められた最新の推定偏差出力VO2(k+d)バーと、その１制御サイクル前に推定器２６により求められた推定偏差出力VO2(k+d-1)バーである。
【０１７３】
そして、スライディングモード制御器２７は、前記式（２４）、（２６）、（２７）によりそれぞれ求められる等価制御入力Ｕeq、到達則入力Ｕrch及び適応則入力Ｕadpの総和を排気系Ｅに与えるべき前記ＳＬＤ操作入力Ｕslとして求める（前記式（１８）を参照）。尚、この場合において、前記式（２４）、（２６）、（２７）中で用いる前記係数s1，s2，Ｆ，Ｇの設定条件は前述の通りである。
【０１７４】
これが、本実施形態において、スライディングモード制御器２７により、排気系Ｅに与えるべきＳＬＤ操作入力Ｕsl（＝目標偏差空燃比kcmd）を制御サイクル毎に求めるための基本的なアルゴリズムである。このようにしてＳＬＤ操作入力Ｕslを求めることで、該ＳＬＤ操作入力Ｕslは、Ｏ2センサ６の推定偏差出力VO2バーを「０」に収束させるように（結果的にはＯ2センサ６の出力VO2/OUTを目標値VO2/TARGETに収束させるように）求められる。
【０１７５】
ところで、本実施形態におけるスライディングモード制御器２７は最終的には前記目標空燃比KCMDを制御サイクル毎に逐次求めるものあるが、前述のように求められるＳＬＤ操作入力Ｕslは、ＬＡＦセンサ５で検出される触媒上流空燃比と前記空燃比基準値FLAF/BASEとの偏差の目標値、すなわち前記目標偏差空燃比kcmdである。このため、スライディングモード制御器２７は、最終的には、次式（２８）に示すように、制御サイクル毎に、前述の如く求めたＳＬＤ操作入力Ｕsl(k)に空燃比基準値FLAF/BASEを加算することで、目標空燃比KCMD(k)を求める。
【０１７６】
【数２８】
0004490000.tif 000029
【０１７７】
以上が本実施形態でスライディングモード制御器２７により目標空燃比KCMDを逐次求めるための基本的アルゴリズムである。
【０１７８】
尚、本実施形態では、スライディングモード制御器２７による適応スライディングモード制御の安定性を判別して、前記ＳＬＤ操作入力Ｕslの値を制限したりするのであるが、これについては後述する。
【０１７９】
次に、前記機関側制御ユニット７ｂの大局的フィードバック制御部１５、特に前記適応制御器１８をさらに説明する。
【０１８０】
前記図１を参照して、大局的フィードバック制御部１５は、前述のようにＬＡＦセンサ５の出力KACTを目標空燃比KCMDに収束させるようにフィードバック制御を行うものである。このとき、このようなフィードバック制御を周知のＰＩＤ制御だけで行うようにすると、エンジン１の運転状態の変化や経年的特性変化等、動的な挙動変化に対して、安定した制御性を確保することが困難である。
【０１８１】
前記適応制御器１８は、上記のようなエンジン１の動的な挙動変化を補償したフィードバック制御を可能とする漸化式形式の制御器であり、Ｉ．Ｄ．ランダウ等により提唱されているパラメータ調整則を用いて、図７に示すように、複数の適応パラメータを設定するパラメータ調整部３０と、設定された適応パラメータを用いて前記フィードバック操作量KSTRを算出する操作量算出部３１とにより構成されている。
【０１８２】
ここで、パラメータ調整部３０について説明すると、ランダウ等の調整則では、離散系の制御対象の伝達関数Ｂ（Ｚ-1）／Ａ（Ｚ-1）の分母分子の多項式を一般的に下記の式（２９），（３０）のようにおいたとき、パラメータ調整部３０が設定する適応パラメータθハット(j)（ｊは機関側制御ユニット７ｂの制御サイクルの番数を示す）は、式（３１）のようにベクトル（転置ベクトル）で表される。また、パラメータ調整部３０への入力ζ(j)は、式（３２）のように表される。この場合、本実施形態では、大局的フィードバック制御部１５の制御対象であるエンジン１が一次系で３制御サイクル分の無駄時間ｄp（エンジン１の燃焼サイクルの３サイクル分の時間）を持つプラントと考え、式（２９）〜式（３２）でｍ＝ｎ＝１，ｄp＝３とし、設定する適応パラメータはｓ0，ｒ1，ｒ2，ｒ3，ｂ0の５個とした（図７参照）。尚、式（３２）の上段式及び中段式におけるｕs，ｙsは、それぞれ、制御対象への入力（操作量）及び制御対象の出力（制御量）を一般的に表したものであるが、本実施形態では、上記入力をフィードバック操作量KSTR、制御対象（エンジン１）の出力を前記ＬＡＦセンサ５の出力KACT（触媒上流空燃比の検出値）とし、パラメータ調整部３０への入力ζ(j)を、式（３２）の下段式により表す（図７参照）。
【０１８３】
【数２９】
0004490000.tif 000030
【０１８４】
【数３０】
0004490000.tif 000031
【０１８５】
【数３１】
0004490000.tif 000032
【０１８６】
【数３２】
0004490000.tif 000033
【０１８７】
ここで、前記式（３６）に示される適応パラメータθハットは、適応制御器１８のゲインを決定するスカラ量要素ｂ0ハット（ｊ）、操作量を用いて表現される制御要素ＢRハット（Ｚ-1，ｊ）、及び制御量を用いて表現される制御要素Ｓ（Ｚ-1，ｊ）からなり、それぞれ、次式（３３）〜（３５）により表現される（図７の操作量算出部３１のブロック図を参照）。
【０１８８】
【数３３】
0004490000.tif 000034
【０１８９】
【数３４】
0004490000.tif 000035
【０１９０】
【数３５】
0004490000.tif 000036
【０１９１】
パラメータ調整部３０は、これらのスカラ量要素や制御要素の各係数を設定して、それを式（３１）に示す適応パラメータθハットとして操作量算出部３１に与えるもので、現在から過去に渡るフィードバック操作量KSTRの時系列データとＬＡＦセンサ５の出力KACTとを用いて、該出力KACTが前記目標空燃比KCMDに一致するように、適応パラメータθハットを算出する。
【０１９２】
この場合、具体的には、適応パラメータθハットは、次式（３６）により算出する。
【０１９３】
【数３６】
0004490000.tif 000037
【０１９４】
同式（３６）において、Γ(j)は、適応パラメータθハットの設定速度を決定するゲイン行列（この行列の次数はｍ＋ｎ＋ｄp）、ｅアスタリスク(j)は、適応パラメータθハットの推定誤差を示すもので、それぞれ式（３７），（３８）のような漸化式で表される。
【０１９５】
【数３７】
0004490000.tif 000038
【０１９６】
【数３８】
0004490000.tif 000039
【０１９７】
ここで、式（３８）中の「Ｄ（Ｚ-1）」は、収束性を調整するための、漸近安定な多項式であり、本実施形態ではＤ（Ｚ-1）＝１としている。
【０１９８】
尚、式（３７）のλ1(j)，λ2(j)の選び方により、漸減ゲインアルゴリズム、可変ゲインアルゴリズム、固定トレースアルゴリズム、固定ゲインアルゴリズム等の種々の具体的なアルゴリズムが得られる。エンジン１の燃料噴射あるいは空燃比等の時変プラントでは、漸減ゲインアルゴリズム、可変ゲインアルゴリズム、固定ゲインアルゴリズム、および固定トレースアルゴリズムのいずれもが適している。
【０１９９】
前述のようにパラメータ調整部３０により設定される適応パラメータθハット（ｓ0，ｒ1，ｒ2，ｒ3，ｂ0）と、前記目標空燃比生成処理部１３により決定される目標空燃比KCMDとを用いて、操作量算出部３１は、次式（３９）の漸化式により、フィードバック操作量KSTRを求める。図７の操作量算出部３１は、同式（３９）の演算をブロック図で表したものである。
【０２００】
【数３９】
0004490000.tif 000040
【０２０１】
尚、式（３９）により求められるフィードバック操作量KSTRは、ＬＡＦセンサ５の出力KACTが目標空燃比KCMDに一致する状態において、「目標空燃比KCMD」となる。このために、前述の如く、フィードバック操作量KSTRを除算処理部１９によって目標空燃比KCMDで除算することで、前記フィードバック補正係数KFBとして使用できるフィードバック操作量kstrを求めるようにしている。
【０２０２】
このように構築された適応制御器１８は、前述したことから明らかなように、制御対象であるエンジン１の動的な挙動変化を考慮した漸化式形式の制御器であり、換言すれば、エンジン１の動的な挙動変化を補償するために、漸化式形式で記述された制御器である。そして、より詳しくは、漸化式形式の適応パラメータ調整機構を備えた制御器と定義することができる。
【０２０３】
尚、この種の漸化式形式の制御器は、所謂、最適レギュレータを用いて構築する場合もあるが、この場合には、一般にはパラメータ調整機構は備えられておらず、エンジン１の動的な挙動変化を補償する上では、前述のように構成された適応制御器１８が好適である。
【０２０４】
以上が、本実施形態で採用した適応制御器１８の詳細である。
【０２０５】
尚、適応制御器１８と共に、大局的フィードバック制御部１５に具備したＰＩＤ制御器１７は、一般のＰＩＤ制御と同様に、ＬＡＦセンサ５の出力KACTと、その目標空燃比KCMDとの偏差から、比例項（Ｐ項）、積分項（Ｉ項）及び微分項（Ｄ項）を算出し、それらの各項の総和をフィードバック操作量KLAFとして算出する。この場合、本実施形態では、積分項（Ｉ項）の初期値を「１」とすることで、ＬＡＦセンサ５の出力KACTが目標空燃比KCMDに一致する状態において、フィードバック操作量KLAFが「１」になるようにし、該フィードバック操作量KLAFをそのまま燃料噴射量を補正するための前記フィードバック補正係数KFBとして使用することができるようしている。また、比例項、積分項及び微分項のゲインは、エンジン１の回転数と吸気圧とから、あらかじめ定められたマップを用いて決定される。
【０２０６】
また、大局的フィードバック制御部１５の前記切換部２０は、エンジン１の冷却水温の低温時や、高速回転運転時、吸気圧の低圧時等、エンジン１の燃焼が不安定なものとなりやすい場合、あるいは、目標空燃比KCMDの変化が大きい時や、空燃比のフィードバック制御の開始直後等、これに応じたＬＡＦセンサ６の出力KACTが、そのＬＡＦセンサ５の応答遅れ等によって、信頼性に欠ける場合、あるいは、エンジン１のアイドル運転時のようにエンジン１の運転状態が極めて安定していて、適応制御器１８による高ゲイン制御を必要としない場合には、ＰＩＤ制御器１７により求められるフィードバック操作量KLAFを燃料噴射量を補正するためのフィードバック補正量数KFBとして出力する。そして、上記のような場合以外の状態で、適応制御器１８により求められるフィードバック操作量KSTRを目標空燃比KCMDで除算してなるフィードバック操作量kstrを燃料噴射量を補正するためのフィードバック補正係数KFBとして出力する。これは、適応制御器１８が、高ゲイン制御で、ＬＡＦセンサ５の出力KACTを急速に目標空燃比KCMDに収束させるように機能するため、上記のようにエンジン１の燃焼が不安定となったり、ＬＡＦセンサ５の出力KACTの信頼性に欠ける等の場合に、適応制御器１８のフィードバック操作量KSTRを用いると、かえって空燃比の制御が不安定なものとなる虞れがあるからである。
【０２０７】
このような切換部２０の作動は、例えば特開平８−１０５３４５号公報に本願出願人が詳細に開示しているので、ここでは、さらなる説明を省略する。
【０２０８】
次に本実施形態の装置の作動の詳細を説明する。
【０２０９】
まず、図８のフローチャートを参照して、前記機関側制御ユニット７ｂによる処理について説明する。機関側制御ユニット７ｂは、各気筒毎の出力燃料噴射量#nＴoutの算出処理をエンジン１のクランク角周期（ＴＤＣ）と同期した制御サイクルで次のように行う。
【０２１０】
機関側制御ユニット７ｂは、まず、前記ＬＡＦセンサ５及びＯ2センサ６を含む各種センサの出力を読み込む（ＳＴＥＰａ）。この場合、ＬＡＦセンサ５の出力KACT及びＯ2センサ６の出力VO2/OUTはそれぞれ過去に得られたものを含めて時系列的に図示しないメモリに記憶保持される。
【０２１１】
次いで、基本燃料噴射量算出部８によって、前述の如くエンジン１の回転数NE及び吸気圧PBに対応する燃料噴射量をスロットル弁の有効開口面積に応じて補正してなる基本燃料噴射量Ｔimが求められる（ＳＴＥＰｂ）。さらに、第１補正係数算出部９によって、エンジン１の冷却水温やキャニスタのパージ量等に応じた第１補正係数KTOTALが算出される（ＳＴＥＰｃ）。
【０２１２】
次いで、機関側制御ユニット７ｂは、エンジン１の運転モードが排気側制御ユニット７ａの目標空燃比生成処理部１３が生成する目標空燃比KCMDを使用して燃料噴射量の調整を行う運転モード（以下、通常運転モード）であるか否かの判別処理を行って、該運転モードが通常運転モードであるか否かをそれぞれ値「１」，「０」で表すフラグf/prism/onの値を設定する（ＳＴＥＰｄ）。
【０２１３】
上記の判別処理では、図９に示すように、Ｏ2センサ６及びＬＡＦセンサ５が活性化しているか否かの判別が行われる（ＳＴＥＰｄ−１，ｄ−２）。このとき、いずれかが活性化していない場合には、目標空燃比生成処理部１３の処理に使用するＯ2センサ６やＬＡＦセンサ５の検出データを精度よく得ることができない。従って、この場合には、エンジン１の運転モードは通常運転モードではないとされ、フラグf/prism/onの値が「０」にセットされる（ＳＴＥＰｄ−１０）。
【０２１４】
また、エンジン１のリーン運転中（希薄燃焼運転）であるか否か（ＳＴＥＰｄ−３）、エンジン１の始動直後の触媒装置３の早期活性化を図るためにエンジン１の点火時期が遅角側に制御されているか否か（ＳＴＥＰｄ−４）、エンジン１のスロットル弁が略全開であるか否か（ＳＴＥＰｄ−５）、及びエンジン１への燃料供給の停止中（フュエルカット中）であるか否か（ＳＴＥＰｄ−６）の判別が行われる。これらのいずれかの条件が成立している場合には、目標空燃比生成処理部１３が生成する目標空燃比KCMDを使用してエンジン１の燃料供給を制御することは好ましくないか、もしくは制御することができない。従って、この場合には、エンジン１の運転モードは通常運転モードではないとされ、フラグf/prism/onの値が「０」にセットされる（ＳＴＥＰｄ−１０）。
【０２１５】
さらに、エンジン１の回転数NE及び吸気圧PBがそれぞれ所定範囲内（正常な範囲内）にあるか否かの判別が行われる（ＳＴＥＰｄ−７，ｄ−８）。このとき、いずれかが所定範囲内にない場合には、目標空燃比生成処理部１３が生成する目標空燃比KCMDを使用してエンジン１の燃料供給を制御することは好ましくない。従って、この場合には、エンジン１の運転モードは通常運転モードではないとされ、フラグf/prism/onの値が「０」にセットされる（ＳＴＥＰｄ−１０）。
【０２１６】
そして、ＳＴＥＰｄ−１，ｄ−２，ｄ−７，ｄ−８の条件が満たされ、且つ、ＳＴＥＰｄ−３，ｄ−４，ｄ−５，ｄ−６の条件が成立していない場合（これは、エンジン１の通常的な運転状態である）に、エンジン１の運転モードが通常運転モードであるとして、フラグf/prism/onの値が「１」にセットされる（ＳＴＥＰｄ−９）。
【０２１７】
図８の説明に戻って、上記のようにフラグf/prism/onの値を設定した後、機関側制御ユニット７ｂは、フラグf/prism/onの値を判断し（ＳＴＥＰｅ）、f/prism/on＝１である場合には、排気側制御ユニット７ａの目標空燃比生成処理部１３で生成された最新の目標空燃比KCMDを読み込む（ＳＴＥＰｆ）。また、f/prism/on＝０である場合には、目標空燃比KCMDを所定値に設定する（ＳＴＥＰｇ）。この場合、目標空燃比KCMDとして設定する所定値は、例えばエンジン１の回転数NEや吸気圧PBからあらかじめ定めたマップ等を用いて決定する。
【０２１８】
次いで、機関側制御ユニット７ｂは、前記局所的フィードバック制御部１６において、前述の如くオブザーバ２１によりＬＡＦセンサ５の出力KACTから推定した各気筒毎の実空燃比#nA/Fに基づき、ＰＩＤ制御器２２により、各気筒毎のばらつきを解消するようにフィードバック補正係数#nKLAFを算出する（ＳＴＥＰｈ）。さらに、大局的フィードバック制御部１５により、フィードバック補正係数KFBを算出する（ＳＴＥＰｉ）。
【０２１９】
この場合、大局的フィードバック制御部１５は、前述の如く、ＰＩＤ制御器１７により求められるフィードバック操作量KLAFと、適応制御器１８により求められるフィードバック操作量KSTRを目標空燃比KCMDで除算してなるフィードバック操作量kstrとから、切換部２０によってエンジン１の運転状態等に応じていずれか一方のフィードバック操作量KLAF又はkstrを選択する（通常的には適応制御器１８側のフィードバック操作量kstrを選択する）。そして、選択したフィードバック操作量KLAF又はkstrを燃料噴射量を補正するためのフィードバック補正量数KFBとして出力する。
【０２２０】
尚、フィードバック補正係数KFBを、ＰＩＤ制御器１７側のフィードバック操作量KLAFから適応制御器１８側のフィードバック操作量kstrに切り換える際には、該補正係数KFBの急変を回避するために、適応制御器１８は、その切換えの際の制御サイクルに限り、補正係数KFBを前回の補正係数KFB（＝KLAF）に保持するように、フィードバック操作量KSTRを求める。同様に、補正係数KFBを、適応制御器１８側のフィードバック操作量kstrからＰＩＤ制御器１７側のフィードバック操作量KLAFに切り換える際には、ＰＩＤ制御器１７は、自身が前回の制御サイクルで求めたフィードバック操作量KLAFが、前回の補正係数KFB（＝kstr）であったものとして、今回の補正係数KLAFを算出する。
【０２２１】
上記のようにしてフィードバック補正係数K FBが算出された後、さらに、前記ＳＴＥＰｆあるいはＳＴＥＰｇで決定された目標空燃比KCMDに応じた第２補正係数KCMDMが第２補正係数算出部１０により算出される（ＳＴＥＰｊ）。
【０２２２】
次いで、機関側制御ユニット７ｂは、前述のように求められた基本燃料噴射量Ｔimに、第１補正係数KTOTAL、第２補正係数KCMDM、フィードバック補正係数KFB、及び各気筒毎のフィードバック補正係数#nKLAFを乗算することで、各気筒毎の出力燃料噴射量#nＴoutを求める（ＳＴＥＰｋ）。そして、この各気筒毎の出力燃料噴射量#nＴou tが、付着補正部２３によって、エンジン１の吸気管の壁面への燃料の付着を考慮した補正を施された後（ＳＴＥＰｍ）、エンジン１の図示しない燃料噴射装置に出力される（ＳＴＥＰｎ）。そして、エンジン１にあっては、各気筒毎の出力燃料噴射量#nＴoutに従って、各気筒への燃料噴射が行われる。
【０２２３】
以上のような各気筒毎の出力燃料噴射量#nＴoutの算出及びそれに応じたエンジン１への燃料噴射がエンジン１のクランク角周期に同期したサイクルタイムで逐次行われ、これによりＬＡＦセンサ５の出力KACT（触媒上流空燃比の検出値）が、目標空燃比KCMDに収束するように、エンジン１の空燃比が制御される。この場合、特に、フィードバック補正係数KFBとして、適応制御器１８側のフィードバック操作量kstrを使用している状態では、エンジン１の運転状態の変化や特性変化等の挙動変化に対して、高い安定性を有して、ＬＡＦセンサ５の出力KACTが迅速に目標空燃比KCMDに収束制御される。また、エンジン１が有する応答遅れの影響も適正に補償される。
【０２２４】
一方、前述のようなエンジン１の燃料供給の制御と並行して、前記排気側制御ユニット７ａは、一定周期の制御サイクルで図１０のフローチャートに示すメインルーチン処理を実行する。
【０２２５】
すなわち、排気側制御ユニット７ａは、まず、目標空燃比生成処理部１３の演算処理（詳しくは同定器２５、推定器２６及びスライディングモード制御器２７の演算処理）を実行するか否かの判別処理を行って、その実行の可否を規定するフラグf/prism/calの値を設定する（ＳＴＥＰ１）。尚、フラグf/prism/calの値は、それが「０」のとき、目標空燃比生成処理部１３における演算処理を行わないことを意味し、「１」のとき、その演算処理を行うことを意味する。
【０２２６】
上記の判別処理は、図１１のフローチャートに示すように行われる。すなわち、Ｏ2センサ６及びＬＡＦセンサ５が活性化しているか否かの判別が行われる（ＳＴＥＰ１−１，１−２）。このとき、いずれかが活性化していない場合には、目標空燃比生成処理部１３の処理に使用するＯ2センサ６及びＬＡＦセンサ５の検出データを精度よく得ることができないため、フラグf/prism/calの値を「０」にセットする（ＳＴＥＰ１−６）。さらにこのとき、同定器２５の後述する初期化を行うために、その初期化を行うか否かを規定するフラグf/id/resetの値を「１」にセットする（ＳＴＥＰ１−７）。ここで、フラグf/id/resetの値は、それが「１」であるとき、同定器２５の初期化を行うことを意味し、「０」であるとき、初期化を行わないことを意味する。
【０２２７】
また、エンジン１のリーン運転中（希薄燃焼運転）であるか否か（ＳＴＥＰ１−３）、及びエンジン１の始動直後の触媒装置３の早期活性化を図るためにエンジン１の点火時期が遅角側に制御されているか否か（ＳＴＥＰ１−４）の判別が行われる。これらのいずれかの条件が成立している場合には、Ｏ2センサ６の出力VO2/OUTを目標値V O2/TARGETに整定させるような目標空燃比KCMDを算出しても、それをエンジン１の燃料供給の制御に使用することはないので、フラグf/prism/calの値を「０」にセットする（ＳＴＥＰ１−６）。さらにこのとき、同定器２５の初期化を行うために、フラグf/id/resetの値を「１」にセットする（ＳＴＥＰ１−７）。
【０２２８】
図１０の説明に戻って、上記のような判別処理を行った後、排気側制御ユニット７ａは、さらに、同定器２５による前記ゲイン係数a1，a2，b1の同定（更新）処理を実行するか否かの判別処理を行って、その実行の可否を規定するフラグf/id/calの値を設定する（ＳＴＥＰ２）。尚、フラグf/id/calの値は、それが「０」のとき、同定器２５による前記ゲイン係数a1，a2，b1の同定（更新）処理を行わないことを意味し、「１」のとき、同定（更新）処理を行うことを意味する。
【０２２９】
このＳＴＥＰ２の判別処理では、エンジン１のスロットル弁が略全開であるか否か、及びエンジン１への燃料供給の停止中（フュエルカット中）であるか否かの判別が行われる。これらのいずれかの条件が成立している場合には、前記ゲイン係数a1，a2，b1を適正に同定することが困難であるため、フラグf/id/calの値を「０」にセットする。そして、上記のいずれの条件も成立していない場合には、同定器２５による前記ゲイン係数a1，a2，b1の同定（更新）処理を実行すべくフラグf/id/calの値を「１」にセットする。
【０２３０】
次いで、排気側制御ユニット７ａは、前記流量データ生成手段２８により、エンジン１の回転数NE及び吸気圧PBの最新の検出値（これは前記図８のＳＴＥＰａで機関側制御ユニット７ｂにより取得される）から前記式（３）により推定排ガスボリュームABSVを算出する（ＳＴＥＰ３）。そして、排気側制御ユニット７ａは、前記無駄時間設定手段２９によって、この推定排ガスボリュームABSVの算出値から前記図４のデータテーブルにより排気系Ｅ及び空燃比操作系のそれぞれの設定無駄時間d1，d2の値を求める（ＳＴＥＰ４）。尚、このＳＴＥＰ４で求められる設定無駄時間d1，d2の値は、詳しくは、前述したように図４のデータテーブルに求められる値の小数点以下を四捨五入して得られる整数値である。
【０２３１】
次いで、排気側制御ユニット７ａは、前記減算処理部１１，１２によりそれぞれ最新の前記偏差出力kact(k)（＝KACT−FLAF/BASE）及びVO2(k)（＝VO2/OUT−VO2/TARGET）を算出する（ＳＴＥＰ５）。この場合、減算処理部１１，１２は、前記図８のＳＴＥＰａにおいて取り込まれて図示しないメモリに記憶されたＬＡＦセンサ５の出力KACT及びＯ2センサ６の出力VO2/OUTの時系列データの中から、最新のものを選択して前記偏差出力kact(k)及びVO2(k)を算出する。そしてこの偏差出力kact(k)及びVO2(k)は、排気側制御ユニット７ａにおいて、過去に算出したものを含めて時系列的に図示しないメモリに記憶保持される。
【０２３２】
次いで、排気側制御ユニット７ａは、前記ＳＴＥＰ１で設定したフラグf/prism/calの値を判断する（ＳＴＥＰ６）。このとき、f/prism/cal＝０である場合、すなわち、目標空燃比生成処理部１３の演算処理を行わない場合には、スライディングモード制御器２７で求めるべき前記ＳＬＤ操作入力Ｕsl（目標偏差空燃比kcmd）を強制的に所定値に設定する（ＳＴＥＰ１４）。この場合、該所定値は、例えばあらかじめ定めた固定値（例えば「０」）あるいは前回の制御サイクルで決定したＳＬＤ操作入力Ｕslの値である。
【０２３３】
尚、このようにＳＬＤ操作入力Ｕslを所定値とした場合において、排気側制御ユニット７ａは、その所定値のＳＬＤ操作入力Ｕslに前記基準値FLAF/BASEを加算することで、今回の制御サイクルにおける目標空燃比KCMDを決定し（ＳＴＥＰ１５）、今回の制御サイクルの処理を終了する。
【０２３４】
一方、ＳＴＥＰ６の判断で、f/prism/cal＝１である場合、すなわち、目標空燃比生成処理部１３の演算処理を行う場合には、排気側制御ユニット７ａは、まず、前記同定器２５による演算処理を行う（ＳＴＥＰ７）。
【０２３５】
この同定器２５による演算処理は図１２のフローチャートに示すように行われる。すなわち、同定器２５は、まず、前記ＳＴＥＰ２で設定されたフラグf/id/calの値を判断する（ＳＴＥＰ７−１）。このときf/id/cal＝０であれば、同定器２５によるゲイン係数a1，a2，b1の同定処理を行わないので、直ちに図１０のメインルーチンに復帰する。
【０２３６】
一方、f/id/cal＝１であれば、同定器２５は、さらに該同定器２５の初期化に係わる前記フラグf/id/resetの値（これは、前記ＳＴＥＰ１でその値が設定される）を判断し（ＳＴＥＰ７−２）、f/id/reset＝１である場合には、同定器２５の初期化を行う（ＳＴＥＰ７−３）。この初期化では、前記同定ゲイン係数a1ハット，a2ハット，b1ハットの各値があらかじめ定めた初期値に設定され（式（５）の同定ゲイン係数ベクトルΘの初期化）、また、前記式（１１）の行列Ｐ（対角行列）の各成分があらかじめ定めた初期値に設定される。さらに、フラグf/id/resetの値は「０」にリセットされる。
【０２３７】
次いで、同定器２５は、前記ＳＴＥＰ３で流量データ生成手段２８が求めた推定排ガスボリュームABSVの現在値から、前記図５のデータテーブルにより同定器２５の重み付き最小２乗法のアルゴリズムの重みパラメータλ1、すなわち前記式（１１）で用いる重みパラメータλ1の値を求める（ＳＴＥＰ７−４）。
【０２３８】
次いで、同定器２５は、現在の同定ゲイン係数a1(k-1)ハット，a2(k-1)ハット，b1(k-1)ハットの値と、前記ＳＴＥＰ５で制御サイクル毎に算出される偏差出力VO2及びkactの過去値のデータVO2(k-1)，VO2(k-2)，kact(k-d1-1)とを用いて、前記式（４）により前記同定偏差出力VO2(k)ハットを算出する（ＳＴＥＰ７−５）。ここで、この算出に用いる偏差出力kact(k-d1-1)は、より詳しく言えば、前記ＳＴＥＰ４で無駄時間設定手段２９が設定した排気系Ｅの設定無駄時間d1により定まる過去時点における偏差出力kactであり、現在の制御サイクルから（d1+1）制御サイクル前の制御サイクルで得られた偏差出力kactである。
【０２３９】
さらに同定器２５は、新たな同定ゲイン係数a1ハット，a2ハット，b1ハットを求める際に使用する前記ベクトルＫθ(k)を式（１０）により算出した後（ＳＴＥＰ７−６）、前記同定誤差id/e(k)（前記同定偏差出力VO2ハットと、実際の偏差出力VO2との偏差。式（８）参照）を算出する（ＳＴＥＰ７−７）。
【０２４０】
ここで、同定誤差id/e(k)は、基本的には、前記式（８）に従って算出すればよいのであるが、本実施形態では、前記ＳＴＥＰ３で制御サイクル毎に算出する偏差出力VO2と、前記ＳＴＥＰ７−５で制御サイクル毎に算出する同定偏差出力VO2ハットとから式（８）の演算により得られた値（＝VO2(k)−VO2(k)ハット）に、さらにローパス特性のフィルタリングを施すことで同定誤差id/e(k)を求める。
【０２４１】
これは、触媒装置３を含む排気系Ｅの挙動は一般にローパス特性を有するため、排気系モデルのゲイン係数a1，a2，b1を適正に同定する上では、排気系Ｅの低周波数側の挙動を重視することが好ましいからである。
【０２４２】
尚、このようなフィルタリングは、結果的に、偏差出力VO2及び同定偏差出力VO2ハットの両者に同じローパス特性のフィルタリングが施されていればよく、例えば偏差出力VO2及び同定偏差出力VO2ハットにそれぞれ各別にフィルタリングを施した後に式（７）の演算を行って同定誤差id/e(k)を求めるようにしてもよい。また、前記のフィルタリングは、例えばディジタルフィルタの一手法である移動平均処理によって行われる。
【０２４３】
次いで、同定器２５は、ＳＴＥＰ７−７で求めた同定誤差id/e(k)と、前記ＳＴＥＰ７−６で算出したＫθ(k)とを用いて前記式（９）により新たな同定ゲイン係数ベクトルΘ(k)、すなわち、新たな同定ゲイン係数a1(k)ハット，a2(k)ハット，b1(k)ハットを算出する（ＳＴＥＰ７−８）。
【０２４４】
このようにして新たな同定ゲイン係数a1(k)ハット，a2(k)ハット，b1(k)ハットを算出した後、同定器２５は、該同定ゲイン係数a1ハット，a2ハット，b1ハットの値を、所定の範囲に制限する処理を以下に説明するように行う（ＳＴＥＰ７−９）。そして、同定器２５は次回の制御サイクルの処理のために前記行列Ｐ(k)を前記式（１１）により更新した後（ＳＴＥＰ７−１０）、図１０のメインルーチンの処理に復帰する。
【０２４５】
前記ＳＴＥＰ７−９において同定ゲイン係数a1ハット、a2ハット、b1ハットの値を制限する処理は、スライディングモード制御器２７により求められる目標空燃比KCMDが高周波振動的な変化を生じるような状況を排除するための処理である。すなわち、本願発明者等の知見によれば、同定ゲイン係数a1ハット、a2ハット、b1ハットの値を特に制限しない場合には、Ｏ2センサ６の出力VO2/OUTがその目標値VO2/TARGETに安定して制御されている状態で、スライディングモード制御器２７により求められる目標空燃比KCMDが平滑的な時間変化を呈する状況と、高周波振動的な時間変化を呈する状況との二種類の状況とがある。そして、目標空燃比KCMDが平滑的なものとなるか高周波振動的なものとなるかは、特に、排気系モデルの応答遅れ要素（より詳しくは式（１）右辺の１次目の自己回帰項及び２次目の自己回帰項）に係わる同定ゲイン係数a1ハット、a2ハットの値の組み合わせや、排気系モデルの無駄時間要素に係わる同定ゲイン係数b1ハットの値の影響を受ける。
【０２４６】
このため、ＳＴＥＰ７−９の制限処理は、それを大別すると、同定ゲイン係数a1ハット、a2ハットの値の組み合わせを所定の範囲に制限する処理と、同定ゲイン係数b1ハットの値を所定の範囲に制限する処理とがある。
【０２４７】
この場合、同定ゲイン係数a1ハット、a2ハットの値の組み合わせを制限する範囲と、同定ゲイン係数b1の値を制限する範囲は、次のように設定されている。
【０２４８】
まず、同定ゲイン係数a1ハット、a2ハットの値の組み合わせを制限するための範囲に関し、本願発明者等の検討によれば、目標空燃比KCMDが平滑的なものとなるか高周波振動的なものとなるかは、前記推定器２６が前記推定偏差出力VO2(k+d)バーを求めるために使用する前記係数値α1，α2（これらの係数値α1，α2は前記式（１３）中で定義した行列Ａのべき乗Ａdの第１行第１列成分及び第１行第２列成分である）の組み合わせが密接に関連している。
【０２４９】
具体的には、図１３に示すように係数値α1，α2をそれぞれ成分とする座標平面を設定したとき、係数値α1，α2の組により定まる該座標平面上の点が図１３の斜線を付した領域（三角形Ｑ1Ｑ2Ｑ3で囲まれた領域（境界を含む）。以下、この領域を推定係数安定領域という）に存するとき、目標空燃比KCMDの時間的変化が平滑的なものとなりやすい。逆に、係数値α1，α2の組により定まる点が上記の推定係数安定領域を逸脱しているような場合には、目標空燃比KCMDの時間的変化が高周波振動的なものとなったり、あるいは、Ｏ2センサ６の出力VO2/OUTの目標値VO2/TARGETへの制御性が悪化しやすい。
【０２５０】
従って、同定ゲイン係数a1ハット、a2ハットの値の組み合わせは、これらの値により定まる係数値α1，α2の組に対応する図１３の座標平面上の点が上記推定係数安定領域内に存するように制限することが好ましい。
【０２５１】
尚、図１３において、上記推定係数安定領域を含んで座標平面上に表した三角形領域Ｑ1Ｑ4Ｑ3は、次式（４０）により定義される系、すなわち、前記式（１３）の右辺のVO2(k)及びVO2(k-1)をそれぞれVO2(k)バー及びVO2(k-1)バー（これらのVO2(k)バー及びVO2(k-1)バーは、それぞれ、推定器２６により制御サイクル毎に求められる推定偏差出力及びその１制御サイクル前に求められる推定偏差出力を意味する）により置き換えてなる式により定義される系が、理論上、安定となるような係数値α1，α2の組み合わせを規定する領域である。
【０２５２】
【数４０】
0004490000.tif 000041
【０２５３】
すなわち、式（４０）により表される系が安定となる条件は、その系の極（これは、次式（４１）により与えられる）が複素平面上の単位円内に存在することである。
【０２５４】
【数４１】
0004490000.tif 000042
【０２５５】
そして、図１３の三角形領域Ｑ1Ｑ4Ｑ3は、上記の条件を満たす係数値α1，α2の組み合わせを規定する領域である。従って、前記推定係数安定領域は、前記式（４０）により表される系が安定となるような係数値α1，α2の組み合わせのうち、α1≧０となる組み合わせの領域である。
【０２５６】
一方、係数値α1，α2は、前記式（１３）中の定義から明らかなように、前記合計設定無駄時間ｄの値をある値に定めたとき、ゲイン係数ａ1，ａ2の値の組み合わせにより定まるので、その合計設定無駄時間ｄの値を用いて逆算的に、係数値α1，α2の組み合わせからゲイン係数ａ1，ａ2の値の組み合わせも定まる。従って、係数値α1，α2の好ましい組み合わせを規定する図１３の推定係数安定領域は、ゲイン係数a1，a2を座標成分とする図１４の座標平面上に変換することができる。
【０２５７】
ここで、合計設定無駄時間ｄの値をある値に定めて上記の変換を行うと、該推定係数安定領域は、図１４の座標平面上では、例えば同図の仮想線で囲まれた領域（下部に凹凸を有する大略三角形状の領域。以下、同定係数安定領域という）に変換される。すなわち、ゲイン係数a1，a2の値の組により定まる図１４の座標平面上の点が、同図の仮想線で囲まれた同定係数安定領域に存するとき、それらのゲイン係数a1，a2の値により定まる係数値α1，α2の組に対応する図１３の座標平面上の点が前記推定係数安定領域内に存することとなる。尚、同定係数安定領域は、合計設定無駄時間ｄの値によって変化するが、これについては後述する。以下の説明では、しばらくの間、合計設定無駄時間ｄの値は、ある値（ここでの説明では、以下、参照符号ｄxを付する）に固定されているものとする。
【０２５８】
従って、同定器２５により求める同定ゲイン係数a1ハット、a2ハットの値の組合わせは、基本的には、それらの値により定まる図１４の座標平面上の点が前記同定係数安定領域に存するような範囲に制限することが好ましい。
【０２５９】
但し、図１４に仮想線で示した同定係数安定領域の境界の一部（図の下部）は凹凸を有する複雑な形状を呈しているため、実用上、同定ゲイン係数a1ハット、a2ハットの値により定まる図１４の座標平面上の点を同定係数安定領域内に制限するための処理が煩雑なものとなりやすい。
【０２６０】
そこで、本実施形態では、同定係数安定領域（合計設定無駄時間ｄxに対応する同定係数安定領域）を、例えば図１４の実線で囲まれた四角形Ｑ5Ｑ6Ｑ7Ｑ8の領域（境界を直線状に形成した領域。以下、同定係数制限領域という）により大略近似する。この同定係数制限領域（合計設定無駄時間ｄxに対応する同定係数制限領域）は、図示の如く、｜a1｜＋a2＝１なる関数式により表される折れ線（線分Ｑ5Ｑ6及び線分Ｑ5Ｑ8を含む線）と、a1＝A1Lなる定値関数式により表される直線（線分Ｑ6Ｑ7を含む直線）と、a2＝A2Lなる定値関数式により表される直線（線分Ｑ7Ｑ8を含む直線）とにより囲まれた領域である。そして、本実施形態では、同定ゲイン係数a1ハット、a2ハットの値の組合わせを制限するための範囲として、この同定係数制限領域を用いる。この場合、同定係数制限領域の下辺部の一部は、前記同定係数安定領域を逸脱しているものの、現実には同定器２５が求める同定ゲイン係数a1ハット、a2ハットの値により定まる点は上記の逸脱領域には入らないことを実験的に確認している。従って、上記の逸脱領域があっても、実用上は支障がない。
【０２６１】
ところで、前記同定係数制限領域の基礎となる同定係数安定領域は、前記式（１３）の係数値α1，α2の定義から明らかなように、前記合計設定無駄時間ｄの値によって変化する。そして、本実施形態では、排気系Ｅの設定無駄時間d1及び空燃比操作系の設定無駄時間d2の値、ひいては、合計設定無駄時間ｄ（＝d1+d2）の値は、推定排ガスボリュームABSVの応じて逐次可変的に設定される。
【０２６２】
この場合、本願発明者等の知見によれば、同定係数安定領域は、主に、その下部（概ね図１４のＱ7からＱ8にかけての凹凸を有する部分）の形状のみが合計設定無駄時間ｄの値に応じて変化し、基本的には該合計設定無駄時間ｄの値が長くなる程、同定係数安定領域の下部が下方（a2軸の負方向）に拡大する傾向がある。そして、該同定係数安定領域の上半部（概ね図１４の三角形Ｑ5Ｑ6Ｑ8で囲まれた部分）の形状は、合計設定無駄時間ｄの値の影響をほとんど受けない。
【０２６３】
そこで、本実施形態では、同定ゲイン係数a1ハット、a2ハットの値の組合わせを制限するための同定係数制限領域におけるゲイン係数a2の下限値A2Lを、排気系Ｅ及び空燃比操作系の無駄時間d1，d2を規定する推定排ガスボリュームABSVに応じて可変的に設定する。この場合、本実施形態では、ゲイン係数a2の下限値A2Lは、例えば図１５に実線ｅで示すようにあらかじめ定められたデータテーブルに基づいて、推定排ガスボリュームABSVの値（最新値）から求められる。該データテーブルでは、下限値A2Lの値（＜０）は、基本的には、推定排ガスボリュームABSVの値が大きい程（合計設定無駄時間ｄが短いほど）、小さくなる（絶対値が大きくなる）ように定められている。これにより、同定係数制限領域は、推定排ガスボリュームABSVが大きい程（合計設定無駄時間ｄが短いほど）、下方に拡大するように設定されることとなる。例えば、合計設定無駄時間ｄの値が、図１４の実線示の同定係数制限領域に対応する値dxよりも長い場合には、図１４に破線で示すように、同定係数制限領域の下部がｄ＝ｄxの同定係数制限領域よりも下方に拡大する。
【０２６４】
尚、上述のような同定係数制限領域の設定の仕方は例示的なもので、該同定係数制限領域は、基本的には、合計設定無駄時間ｄの各値に対応する前記同定係数安定領域に等しいか、もしくは該同定係数安定領域を大略近似し、あるいは、同定係数制限領域の大部分もしくは全部が同定係数安定領域に属するように設定すれば、どのような形状のものに設定してもよい。つまり、同定係数制限領域は、同定ゲイン係数a1ハット、a2ハットの値の制限処理の容易さ、実際上の制御性等を考慮して種々の設定が可能である。例えば本実施形態では、同定係数制限領域の上半部の境界を｜a1｜＋a2＝１なる関数式により規定しているが、この関数式を満たすゲイン係数a1，a2の値の組み合わせは、前記式（４０）の系の極が複素平面上の単位円周上に存するような理論上の安定限界の組み合わせである。従って、同定係数制限領域の上半部の境界を例えば｜a1｜＋a2＝ｒ（但し、ｒは上記の安定限界に対応する「１」よりも若干小さい値で、例えば０．９９）なる関数式により規定し、制御の安定性をより高めるようにしてもよい。
【０２６５】
次に、同定ゲイン係数ｂ1ハットの値を制限するための範囲は、次のように設定されている。
【０２６６】
すなわち、本願発明者等の知見によれば、前記目標空燃比KCMDの時間的変化が高周波振動的なものとなる状況は、同定ゲイン係数b1ハットの値が過大もしくは過小となるような場合にも生じ易い。また、目標空燃比KCMDの時間的変化が平滑的なものとなるような好適な同定ゲイン係数b1ハットの値は、合計設定無駄時間ｄの影響を受け、基本的には、該合計設定無駄時間ｄが短いほど、好適な同定ゲイン係数b1ハットの値は大きくなる傾向がある。そこで、本実施形態では、ゲイン係数b1の値の範囲を規定する上限値B1H及び下限値B1L（B1H＞B1L＞０）を、合計設定無駄時間ｄの値を規定する推定排ガスボリュームABSVの値（最新値）に応じて逐次設定し、その上限値B1H及び下限値B1Lにより定まる範囲に同定ゲイン係数b1ハットの値を制限する。この場合、本実施形態では、ゲイン係数b1の値の範囲を規定する上限値B1H及び下限値B1Lは、推定排ガスボリュームABSVの値から、図１５に実線ｆ，ｇでそれぞれ示すように実験やシミュレーションを通じてあらかじめ定められたデータテーブルに基づいて求められる。そして、該データテーブルは、基本的には推定排ガスボリュームABSVが大きい程（合計設定無駄時間ｄが短いほど）、上限値B1H及び下限値B1Lが大きくなるように設定されている。
【０２６７】
上述のように同定ゲイン係数a1ハット、a2ハットの値の組合わせ、並びに、同定ゲイン係数b1の値の範囲を制限する前記ＳＴＥＰ７−９の処理は、具体的には次のように行われる。
【０２６８】
すなわち、図１６のフローチャートを参照して、同定器２５は、まず、前記図１０のＳＴＥＰ３で流量データ生成手段２８が求めた推定排ガスボリュームABSVの最新値から、前記図１５のデータテーブルに基づいて、前記同定係数制限領域におけるゲイン係数a2の下限値A2L、並びに、ゲイン係数b1の上限値B1H及び下限値B1Lをそれぞれ設定する（ＳＴＥＰ７−９−１）。
【０２６９】
そして、同定器２５は、前記図１２のＳＴＥＰ７−８で前述の如く求めた同定ゲイン係数a1(k)ハット、a2(k)ハット、b1(k)ハットについて、まず、同定ゲイン係数a1(k)ハット、a2(k)ハットの値の組み合わせを前記同定係数制限領域内に制限するための処理をＳＴＥＰ７−９−２〜７−９−９で行う。
【０２７０】
具体的には、同定器２５は、まず、ＳＴＥＰ７−８で求めた同定ゲイン係数a2(k)ハットの値が、ＳＴＥＰ７−９−１で設定した下限値A2L（図１４参照）以上の値であるか否かを判断する（ＳＴＥＰ７−９−２）。
【０２７１】
このとき、a2(k)ハット＜A2Lであれば、同定ゲイン係数a1(k)ハット、a2(k)ハットの値の組により定まる図１４の座標平面上の点（以下、この点を（a1(k)ハット，a2(k)ハット）で表す）が同定係数制限領域から逸脱しているので、a2(k)ハットの値を強制的に上記下限値A2Lに変更する（ＳＴＥＰ７−９−３）。この処理により、図１４の座標平面上の点（a1(k)ハット，a2(k)ハット）は、少なくともa2＝A2Lにより表される直線（線分Ｑ7Ｑ8を含む直線）の上側（該直線上を含む）の点に制限される。
【０２７２】
次いで、同定器２５は、ＳＴＥＰ７−８で求めた同定ゲイン係数a1(k)ハットの値が、前記同定係数制限領域におけるゲイン係数a1の下限値A1L（図１４参照）以上の値であるか否か、並びに、同定係数制限領域におけるゲイン係数a1の上限値A1H（図１４参照）以下の値であるか否かを順次判断する（ＳＴＥＰ７−９−４、７−９−６）。尚、本実施形態ではゲイン係数a1の下限値A1Lはあらかじめ定めた固定値である。また、ゲイン係数a1の上限値A1Hは、図１４から明らかなように折れ線｜a1｜＋a2＝１（但しa1＞０）と、直線a2＝A2Lとの交点Ｑ8のa1座標成分であるので、A1H＝１−A2Lである。従って、ゲイン係数a1の下限値A1Lは、ＳＴＥＰ７−９−１で設定されるゲイン係数a2の下限値A2Lに応じて変化し、基本的には、推定排ガスボリュームABSVが大きい程（合計設定無駄時間ｄが短いほど）、該下限値A1Lは大きくなる。
【０２７３】
このとき、a1(k)ハット＜A1Lである場合、あるいは、a1(k)ハット＞A1Hである場合には、図１４の座標平面上の点（a1(k)ハット，a2(k)ハット）が同定係数制限領域から逸脱しているので、a1(k)ハットの値をそれぞれの場合に応じて、強制的に上記下限値A1Lあるいは上限値A1Hに変更する（ＳＴＥＰ７−９−５、７−９−７）。
【０２７４】
この処理により、図１４の座標平面上の点（a1(k)ハット，a2(k)ハット）は、a1＝A1Lにより表される直線（線分Ｑ6Ｑ7を含む直線）と、a1＝A1Hにより表される直線（点Ｑ8を通ってa1軸に直行する直線）との間の領域（両直線上を含む）に制限される。
【０２７５】
尚、ＳＴＥＰ７−９−４〜７−９−７の処理は、前記ＳＴＥＰ７−９−２及び７−９−３の処理の前に行うようにしてもよい。
【０２７６】
次いで、同定器２５は、前記ＳＴＥＰ７−９−２〜７−９−７の処理を経た今現在のa1(k)ハット，a2(k)ハットの値が｜a1｜＋a2≦１なる不等式を満たすか否か、すなわち、点（a1(k)ハット，a2(k)ハット）が｜a1｜＋a2＝１なる関数式により表される折れ線（線分Ｑ5Ｑ6及び線分Ｑ5Ｑ8を含む線）の下側（折れ線上を含む）にあるか上側にあるかを判断する（ＳＴＥＰ７−９−８）。
【０２７７】
このとき、｜a1｜＋a2≦１なる不等式が成立しておれば、前記ＳＴＥＰ７−９−２〜７−９−７の処理を経たa1(k)ハット，a2(k)ハットの値により定まる点（a1(k)ハット，a2(k)ハット）は、同定係数制限領域（その境界を含む）に存している。
【０２７８】
一方、｜a1｜＋a2＞１である場合は、点（a1(k)ハット，a2(k)ハット）が、同定係数制限領域からその上方側に逸脱している場合であり、この場合には、a2(k)ハットの値を強制的に、a1(k)ハットの値に応じた値（１−｜a1(k)ハット｜）に変更する（ＳＴＥＰ７−９−９）。換言すれば、a1(k)ハットの値を現状に保持したまま、点（a1(k)ハット，a2(k)ハット）を｜a1｜＋a2＝１なる関数式により表される折れ線上（同定係数制限領域の境界である線分Ｑ5Ｑ6上、もしくは線分Ｑ5Ｑ8上）に移動させる。
【０２７９】
以上のようなＳＴＥＰ７−９−２〜７−９−９の処理によって、同定ゲイン係数a1(k)ハット，a2(k)ハットの値は、それらの値により定まる点（a1(k)ハット，a2(k)ハット）が同定係数制限領域内に存するように制限される。尚、前記ＳＴＥＰ７−８で求められた同定ゲイン係数a1(k)ハット，a2(k)ハットの値に対応する点（a1(k)ハット，a2(k)ハット）が同定係数制限領域内に存する場合は、それらの値は保持される。
【０２８０】
この場合、前述の処理によって、前記排気系モデルの１次目の自己回帰項に係わる同定ゲイン係数a1(k)ハットに関しては、その値が、同定係数制限領域における下限値A1L及び上限値A1Hの間の値となっている限り、その値が強制的に変更されることはない。また、a1(k)ハット＜A1Lである場合、あるいは、a1(k)ハット＞A1Hである場合には、それぞれ、同定ゲイン係数a 1(k)ハットの値は、同定係数制限領域においてゲイン係数a1が採りうる最小値である下限値A1Lと、同定係数制限領域においてゲイン係数a1が採りうる最大値である下限値A1Hとに強制的に変更されるので、これらの場合における同定ゲイン係数a1(k)ハットの値の変更量は最小なものとなる。つまり、ＳＴＥＰ７−８で求められた同定ゲイン係数a1(k)ハット，a2(k)ハットの値に対応する点（a1(k)ハット，a2(k)ハット）が同定係数制限領域から逸脱している場合には、同定ゲイン係数a1(k)ハットの値の強制的な変更は最小限に留められる。
【０２８１】
このようにして、同定ゲイン係数a1(k)ハット，a2(k)ハットの値を制限したのち、同定器２５は、同定ゲイン係数b1(k)ハットの値を制限する処理をＳＴＥＰ７−９−１０〜７−９−１３で行う。
【０２８２】
すなわち、同定器２５は、前記ＳＴＥＰ７−８で求めた同定ゲイン係数b1(k)ハットの値が、ＳＴＥＰ７−９−１で設定したゲイン係数b1の下限値B1L以上であるか否かを判断し（ＳＴＥＰ７−９−１０）、B1L＞b1(k)ハットである場合には、b1(k)ハットの値を強制的に上記下限値B1Lに変更する（ＳＴＥＰ７−９−１１）。
【０２８３】
さらに、同定器２５は、同定ゲイン係数b1(k)ハットの値が、ＳＴＥＰ７−９−１で設定したゲイン係数b1の上限値B1H以上であるか否かを判断し（ＳＴＥＰ７−９−１２）、B1H＜b1(k)ハットである場合には、b1(k)ハットの値を強制的に上記上限値B1Hに変更する（ＳＴＥＰ７−９−１３）。
【０２８４】
このようなＳＴＥＰ７−９−１０〜７−９−１３の処理によって、同定ゲイン係数b1(k)ハットの値は、下限値B1L及び上限値B1Hの間の範囲の値に制限される。
【０２８５】
このようにして、同定ゲイン係数a1(k)ハット，a2(k)ハットの値の組み合わせと同定ゲイン係数b1(k)ハットの値とを制限した後には、同定器２５の処理は図１２のフローチャートの処理に復帰する。
【０２８６】
尚、図１２のＳＴＥＰ７−８で同定ゲイン係数a1(k)ハット，a2(k)ハット，b1(k)ハットを求めるために使用する同定ゲイン係数の前回値a1(k-1)ハット，a2(k-1)ハット，b1(k-1)ハットは、前回の制御サイクルにおけるＳＴＥＰ７−９の制限処理を施した同定ゲイン係数の値である。
【０２８７】
以上説明した処理が図１０のＳＴＥＰ７における同定器２５の演算処理である。
【０２８８】
図１０の説明に戻って、上記のように同定器２５の演算処理を行った後、排気側制御ユニット７ａは、ゲイン係数a1，a2，b1の値を決定する（ＳＴＥＰ８）。この処理では、前記ＳＴＥＰ２で設定されたフラグf/id/calの値が「１」である場合、すなわち、同定器２５によるゲイン係数a1，a2，b1の同定処理を行った場合には、ゲイン係数a1，a2，b1の値として、それぞれ前記ＳＴＥＰ７で前述の通り同定器２５により求められた最新の同定ゲイン係数a1(k)ハット，a2(k)ハット，b1(k)ハット（ＳＴＥＰ７−９の制限処理を施したもの）を設定する。また、f/id/cal＝０である場合、すなわち、同定器２５によるゲイン係数a1，a2，b1の同定処理を行わなかった場合には、ゲイン係数a1，a2，b1の値をそれぞれあらかじめ定めた所定値とする。
【０２８９】
次いで、排気側制御ユニット７ａは、前記推定器２６による演算処理を行う（ＳＴＥＰ９）。
【０２９０】
すなわち、推定器２６は、まず、前記ＳＴＥＰ８で決定されたゲイン係数a1，a2，b1（これらの値は基本的には、同定ゲイン係数a1ハット，a2ハット，b1ハットの最新値である）と、前記ＳＴＥＰ４で設定された排気系Ｅの設定無駄時間d1及び空燃比操作系の設定無駄時間d2の値とを用いて、前記式（１４）あるいは式（１５）で使用する係数値α1，α2，βj（j=1，2，…，ｄ）を、式（１３）の但し書きの定義に従って算出する。
【０２９１】
そして、推定器２６は、空燃比操作系の設定無駄時間d2が、d2＞１（d2≧２）である場合には、前記ＳＴＥＰ５で制御サイクル毎に算出されるＯ2センサの偏差出力VO2の現在値及び過去値の時系列データVO2(k)，VO2(k-1)、並びにＬＡＦセンサ５の偏差出力kactの現在値及び過去値の時系列データkact(k-j)（j=0，1，…，d1）と、スライディングモード制御器２７から制御サイクル毎に与えられる前記目標偏差空燃比kcmd（＝ＳＬＤ操作入力Ｕsl）の過去値のデータkcmd(k-j)（＝ｕsl(k-j)。j=1，2，…，d2-1）と、上記の如く算出した係数値α1，α2，βj（j=1，2，…，ｄ）とを用いて前記式（１４）により、推定偏差出力VO2(k+d)バー（今回の制御サイクルの時点から前記合計設定無駄時間ｄ後の偏差出力VO2の推定値）を算出する。
【０２９２】
また、推定器２６は、空燃比操作系の設定無駄時間d2が、d2＝１である場合には、Ｏ2センサの偏差出力VO2の現在値及び過去値の時系列データVO2(k)，VO2(k-1)、並びにＬＡＦセンサ５の偏差出力kactの現在値及び過去値の時系列データkact(k-j)（j=0，1，…，d-1）と、前記係数値α1，α2，βj（j=1，2，…，ｄ）とを用いて前記式（１５）により、推定偏差出力VO2(k+d)バーを算出する。
【０２９３】
排気側制御ユニット７ａは、次に、スライディングモード制御器２７によって、前記ＳＬＤ操作入力Ｕsl（＝目標偏差空燃比kcmd）を算出する（ＳＴＥＰ１０）。
【０２９４】
すなわち、スライディングモード制御器２７は、まず、前記ＳＴＥＰ９で推定器２６により求められた推定偏差出力VO2バーの時系列データVO2(k+d)バー，VO2(k+d-1)バー（推定偏差出力VO2バーの今回値及び前回値）を用いて、前記式（２５）により定義された切換関数σバーの今回値σ(k+d)バー（これは、式（１６）で定義された切換関数σの合計設定無駄時間ｄ後の推定値に相当する）を算出する。
【０２９５】
尚、この場合、切換関数σバーの値があらかじめ定めた所定の許容範囲内に収まるようにし、上記の如く求められるσ(k+d)バーがその許容範囲の上限値又は下限値を超えた場合には、それぞれσバーの値σ(k+d)バーを強制的に該上限値又は下限値に制限する。
【０２９６】
さらに、スライディングモード制御器２７は、上記切換関数σバーの今回値σ(k+d)バーに、排気側制御ユニット７ａの制御サイクルの周期ΔＴを乗算したものσ(k+d)バー・ΔＴを累積的に加算していく、すなわち、前回の制御サイクルで求められた加算結果に今回の制御サイクルで算出されたσ(k+d)バーと周期ΔＴとの積σ(k+d)バー・ΔＴを加算することで、前記式（２７）のΣ（σバー・ΔＴ）の項の演算結果であるσバーの積算値（以下、この積算値をΣσバーにより表す）を算出する。
【０２９７】
尚、この場合、本実施形態では、上記積算値Σσバーがあらかじめ定めた所定の許容範囲内に収まるようにし、該積算値Σσバーがその許容範囲の上限値又は下限値を超えた場合には、それぞれ該積算値Σσバーを強制的に該上限値又は下限値に制限する。
【０２９８】
そして、スライディングモード制御器２７は、前記ＳＴＥＰ９で推定器２６により求められた推定偏差出力VO2バーの現在値及び過去値の時系列データVO2(k+d)バー，V O2(k+d-1)バーと、上記の如く求めた切換関数の値σ(k+d) バー及びその積算値Σσバーと、ＳＴＥＰ８で決定したゲイン係数a1，a2，b1（これらの値は基本的には、最新の同定ゲイン係数a1(k)ハット，a2(k)ハット，b1(k)ハットである）とを用いて、前記式（２４）、（２６）、（２７）に従って、それぞれ等価制御入力Ｕeq、到達則入力Ｕrch及び適応則入力Ｕadpを算出する。
【０２９９】
さらにスライディングモード制御器２７は、この等価制御入力Ｕeq、到達則入力Ｕrch及び適応則入力Ｕadpを加算することで、前記ＳＬＤ操作入力Ｕsl、すなわち、Ｏ2センサ６の出力VO2/OUTを目標値VO2/TARGETに収束させるために必要な排気系Ｅへの入力量（＝目標偏差空燃比kcmd）を算出する。
【０３００】
上記のようにＳＬＤ操作入力Ｕslを算出した後、スライディングモード制御器２７は、適応スライディングモード制御の安定性（より詳しくは、適応スライディングモード制御に基づくＯ2センサ６の出力VO2/OUTの制御状態（以下、ＳＬＤ制御状態という）の安定性）を判別する処理を行って、該ＳＬＤ制御状態が安定であるか否かをそれぞれ値「１」、「０」で表すフラグf/sld/stbの値を設定する（ＳＴＥＰ１１）。
【０３０１】
この安定性の判別処理は図１７のフローチャートに示すように行われる。
【０３０２】
すなわち、スライディングモード制御器２７は、まず、前記ＳＴＥＰ１０で算出される切換関数σバーの今回値σ(k+d)バーと前回値σ(k+d-1)バーとの偏差Δσバー（これは切換関数σバーの変化速度に相当する）を算出する（ＳＴＥＰ１１−１）。
【０３０３】
次いで、スライディングモード制御器２７は、上記偏差Δσバーと切換関数σバーの今回値σ(k+d)バーとの積Δσバー・σ(k+d)バー（これはσバーに関するリアプノフ関数σバー2／２の時間微分関数に相当する）があらかじめ定めた所定値ε（≧０）以下であるか否かを判断する（ＳＴＥＰ１１−２）。
【０３０４】
ここで、上記積Δσバー・σ(k+d)バー（以下、これを安定判別パラメータＰstbという）について説明すると、この安定判別パラメータＰstbの値がＰstb＞０となる状態は、基本的には、切換関数σバーの値が「０」から離間しつつある状態である。また、安定判別パラメータＰstbの値がＰstb≦０となる状態は、基本的には、切換関数σバーの値が「０」に収束しているか、もしくは収束しつつある状態である。そして、一般に、スライディングモード制御ではその制御量を目標値に安定に収束させるためには、切換関数の値が安定に「０」に収束する必要がある。従って、基本的には、前記安定判別パラメータＰstbの値が「０」以下であるか否かによって、それぞれ前記ＳＬＤ制御状態が安定、不安定であると判断することができる。
【０３０５】
但し、安定判別パラメータＰstbの値を「０」と比較することでＳＬＤ制御状態の安定性を判断すると、切換関数σバーの値に僅かなノイズが含まれただけで、安定性の判別結果に影響を及ぼしてしまう。このため、本実施形態では、前記ＳＴＥＰ１１−２で安定判別パラメータＰstbと比較する所定値εは、「０」よりも若干大きな正の値としている。
【０３０６】
そして、ＳＴＥＰ１１−２の判断で、Ｐstb＞εである場合には、ＳＬＤ制御状態が不安定であるとされ、前記ＳＴＥＰ１０で算出されるＳＬＤ操作入力Ｕslを用いた目標空燃比KCMDの決定を所定時間、禁止するためにタイマカウンタｔm（カウントダウンタイマ）の値が所定の初期値ＴMにセットされる（タイマカウンタｔmの起動。ＳＴＥＰ１１−４）。さらに、前記フラグf/sld/stbの値が「０」に設定された後（ＳＴＥＰ１１−５）、図１０のメインルーチンの処理に復帰する。
【０３０７】
一方、前記ＳＴＥＰ１１−２の判断で、Ｐstb≦εである場合には、スライディングモード制御器２７は、切換関数σバーの今回値σ(k+d)バーがあらかじめ定めた所定範囲内にあるか否かを判断する（ＳＴＥＰ１１−３）。
【０３０８】
この場合、切換関数σバーの今回値σ(k+d)バーが、所定範囲内に無い状態は、該今回値σ(k+d)バーが「０」から大きく離間している状態であるので、ＳＬＤ制御状態が不安定であると考えられる。このため、ＳＴＥＰ１１−３の判断で、切換関数σバーの今回値σ(k+d)バーが、所定範囲内に無い場合には、ＳＬＤ制御状態が不安定であるとされ、前述の場合と同様に、ＳＴＥＰ１１−４及び１１−５の処理により、タイマカウンタｔmが起動されると共に、フラグf/sld/stbの値が「０」に設定される。
【０３０９】
尚、本実施形態では、前述のＳＴＥＰ１０の処理において、切換関数σバーの値を所定の許容範囲内に制限するので、ＳＴＥＰ１１−３の判断処理は省略してもよい。
【０３１０】
また、ＳＴＥＰ１１−３の判断で、切換関数σバーの今回値σ(k+d)バーが、所定範囲内にある場合には、スライディングモード制御器２７は、前記タイマカウンタｔmを所定時間Δｔm分、カウントダウンする（ＳＴＥＰ１１−６）。そして、このタイマカウンタｔmの値が「０」以下であるか否か、すなわち、タイマカウンタｔmを起動してから前記初期値ＴM分の所定時間が経過したか否かが判断される（ＳＴＥＰ１１−７）。
【０３１１】
このとき、ｔm＞０である場合、すなわち、タイマカウンタｔmが計時動作中でまだタイムアップしていない場合は、ＳＴＥＰ１１−２あるいはＳＴＥＰ１１−３の判断でＳＬＤ制御状態が不安定であると判断されてから、さほど時間を経過していないので、ＳＬＤ制御状態が不安定なものとなりやすい。このため、ＳＴＥＰ１１−７でｔm＞０である場合には、前記ＳＴＥＰ１１−５の処理により、前記フラグf/sld/stbの値が「０」に設定される。
【０３１２】
そして、ＳＴＥＰ１１−７の判断でｔm≦０である場合、すなわち、タイマカウンタｔmがタイムアップしている場合には、ＳＬＤ制御状態が安定であるとして、フラグf/sld/stbの値が「１」に設定される（ＳＴＥＰ９−８）。
【０３１３】
以上のような処理によって、ＳＬＤ制御状態の安定性が判断され、不安定であると判断された場合には、フラグf/sld/stbの値が「０」に設定され、安定であると判断された場合には、フラグf/sld/stbの値が「１」に設定される。
【０３１４】
尚、以上説明したＳＬＤ制御状態の安定性の判断の手法は例示的なもので、この他の手法によって安定性の判断を行うようにすることも可能である。例えば制御サイクルよりも長い所定期間毎に、各所定期間内における前記安定判別パラメータＰstbの値が前記所定値εよりも大きくなる頻度を計数する。そして、その頻度があらかじめ定めた所定値を超えるような場合にＳＬＤ制御状態が不安定であると判断し、逆の場合に、ＳＬＤ制御状態が安定であると判断するようにしてもよい。
【０３１５】
図１０の説明に戻って、上記のようにＳＬＤ制御状態の安定性を示すフラグf/sld/stbの値を設定した後、スライディングモード制御器２７は、フラグf/sld/stbの値を判断する（ＳＴＥＰ１２）。このとき、f/sld/stb＝１である場合、すなわち、ＳＬＤ制御状態が安定であると判断された場合には、スライディングモード制御器２７は前記ＳＴＥＰ１０で算出したＳＬＤ操作入力Ｕslのリミット処理を行う（ＳＴＥＰ１３）。このリミット処理では、ＳＴＥＰ１０で算出されたＳＬＤ操作入力Ｕslの今回値Ｕsl(k)が所定の許容範囲内にあるか否かが判断され、該今回値Ｕslがその許容範囲の上限値又は下限値を超えている場合には、それぞれ、ＳＬＤ操作入力Ｕslの今回値ｕsl(k)が強制的に該上限値又は下限値に制限される。
【０３１６】
尚、ＳＴＥＰ１３のリミット処理を経たＳＬＤ操作入力Ｕsl（＝目標偏差空燃比kcmd）は、図示しないメモリに時系列的に記憶保持され、それが、推定器２６の前述の演算処理のために使用される。
【０３１７】
次いで、スライディングモード制御器２７は、ＳＴＥＰ１３のリミット処理を経たＳＬＤ操作入力Ｕslに前記空燃比基準値FLAF/BASEを加算することで、前記目標空燃比KCMDを算出する（ＳＴＥＰ１５）。これにより、排気側制御ユニット７ａの今回の制御サイクルの処理が終了する。
【０３１８】
また、前記ＳＴＥＰ１２の判断でf/sld/stb＝０である場合、すなわち、ＳＬＤ制御状態が不安定であると判断された場合には、スライディングモード制御器２７は、今回の制御サイクルにおけるＳＬＤ操作入力Ｕslの値を強制的に所定値（固定値あるいはＳＬＤ操作入力Ｕslの前回値）に設定した後（ＳＴＥＰ１４）、このＳＬＤ操作入力Ｕslに空燃比基準値FLAF/BASEを加算することで目標空燃比KCMDを算出する（ＳＴＥＰ１５）。これにより排気側制御ユニット７ａの今回の制御サイクルの処理が終了する。
【０３１９】
尚、ＳＴＥＰ１５で最終的に決定される目標空燃比KCMDは、制御サイクル毎に図示しないメモリに時系列的に記憶保持される。そして、前記大局的フィードバック制御器１５等が、排気側制御ユニット７ａで決定された目標空燃比KCMDを用いるに際しては（図８のＳＴＥＰｆを参照）、上記のように時系列的に記憶保持された目標空燃比KCMDの中から最新のものが選択される。
【０３２０】
以上説明した内容が本実施形態の装置の詳細な作動である。
【０３２１】
すなわち、その作動を要約すれば、排気側制御ユニット７ａによって、触媒装置３の下流側のＯ2センサ６の出力VO2/OUTを目標値VO2/TARGETに収束（整定）させるように、触媒上流空燃比の目標値である目標空燃比KCMDが逐次算出される。さらに、この目標空燃比KCMDにＬＡＦセンサ５の出力を収束させるようにエンジン１の燃料噴射量を調整することで、触媒上流空燃比が目標空燃比KCMDにフィードバック制御され、ひいては、Ｏ2センサ６の出力VO2/OUTが目標値VO2/TARGETに収束制御される。これにより、触媒装置３の最適な排ガス浄化性能を確保することができる。
【０３２２】
この場合、排気側制御ユニット７ａは、スライディングモード制御器２７の適応スライディングモード制御の処理により目標空燃比KCMDを算出するために、推定器２６により求められた推定偏差出力VO2バー、すなわち排気系Ｅの設定無駄時間d1と前記空燃比操作系（エンジン１及び機関側制御ユニット７ｂからなるシステム）の設定無駄時間d2とを合わせた合計設定無駄時間ｄ後のＯ2センサ６の偏差出力VO2の推定値である推定偏差出力VO2バーを用い、その推定偏差出力VO2バーにより示される合計設定無駄時間ｄ後のＯ2センサ６の出力VO2/OUTの推定値を目標値VO2/TARGETに収束させるように目標空燃比KCMDを求める。
【０３２３】
このとき、推定器２６が求める推定偏差出力VO2バーは、流量データ生成手段２８が求めた推定排ガスボリュームABSVに応じて無駄時間設定手段２９が設定した設定無駄時間d1，d2、すなわち、排気系Ｅ及び空燃比操作系の実際の無駄時間にほぼ等しい設定無駄時間d 1，d2により定まる合計設定無駄時間ｄ後のＯ2センサ６の偏差出力VO2の推定値である。さらに、該推定器２６により推定偏差出力VO2バーを算出するためのアルゴリズムは、設定無駄時間d1，d2の無駄時間要素をそれぞれ有する排気系モデル及び空燃比操作系モデルを基礎として構築されている。そして、特に排気系モデルのパラメータであるゲイン係数a1，a2，b1の値は、同定器２５によって、該排気系モデル上でのＯ2センサ６の偏差出力VO2を表す前記同定偏差出力VO2ハットと実際の偏差出力VO2との間の誤差を最小化するように逐次同定され、その同定値a1ハット、a2ハット、b1ハットが推定器２６による推定偏差出力VO2バーの算出処理に用いられる。この場合、排気系モデルの無駄時間として排気系Ｅの実際の無駄時間とほぼ等しい前記設定無駄時間d1が用いられるため、排気系モデルと実際の排気系Ｅの挙動特性の整合性が高まり、排気系Ｅの実際の挙動状態を的確に反映した同定ゲイン係数a1ハット、a2ハット、b1ハットが同定器２５により求められる。
【０３２４】
このため、推定器２６により求められる推定偏差出力VO2バーは、排気系Ｅ及び空燃比操作系の実際の無駄時間の変化によらずに、それらを合わせた合計無駄時間後のＯ2センサ６の出力を表すものとして精度の高いものとなる。そして、この推定偏差出力VO2バーを用いてスライディングモード制御器２７により目標空燃比KCMDを求めることにより、排気系Ｅや空燃比操作系の無駄時間の影響を最適に補償し得る目標空燃比KCMDを求めることができ、ひいては、Ｏ2センサ６の出力VO2/OUTの目標値VO2/TARGETへの収束制御を精度よく高い速応性で行うことができる。この結果、触媒装置３の浄化性能を高めることができる。
【０３２５】
また、目標空燃比K CMDを求めるスライディングモード制御器２７の適応スライディングモード制御のアルゴリズムは、推定器２６と同様に、排気系Ｅの実際の無駄時間とほぼ等しい設定無駄時間d1を有する排気系モデルを基礎として構築され、該目標空燃比KCMDを求めるために、前記同定器２５が逐次求める同定ゲイン係数a1ハット、a2ハット、b1ハットが用いられる。このため、排気系Ｅの実際の挙動状態を的確に反映させて目標空燃比KCMDを求めることができ、ひいては、Ｏ2センサ６の出力VO2/OUTの目標値VO2/TARGETへの収束制御の速応性等を高めて、触媒装置３の浄化性能を向上させることができる。
【０３２６】
さらに、同定器２５は、求める同定ゲイン係数a1ハット、a2ハットの組合わせを、前記設定無駄時間d1，d2を規定する推定排ガスボリュームABSVに応じて可変的に設定する同定係数制限領域内の値に制限すると共に、同定ゲイン係数b1の値も推定排ガスボリュームABSVに応じて可変的に設定する範囲内の値に制限する。また、同定器２５は、同定ゲイン係数a1ハット、a2ハット、b1ハットを求めるための重み付き最小２乗法のアルゴリズムにおける重みパラメータλ1の値を上記推定排ガスボリュームABSVに応じて可変的に調整する。このため、排気系Ｅや空燃比操作系の実際の無駄時間の変化によらずに、これらの同定ゲイン係数a1ハット、a2ハット、b1ハットの誤差やばらつきを抑制し、その信頼性を高めることができる。この結果、該同定ゲイン係数a1ハット、a2ハット、b1ハットを用いて前記推定器２６により求められる推定偏差出力VO2の精度を安定して確保することができると共に、Ｏ2センサの出力VO2/OUTを目標値VO2/OUTに高い速応性で円滑に収束させ得る目標空燃比KCMDを安定して求めることができ、ひいては、触媒装置３の高い浄化性能を安定して確保することができる。
【０３２７】
次に、本発明の内燃機関の空燃比制御装置の第２実施形態を説明する。本実施形態は本発明の第１の態様に係わる実施形態である。尚、本実施形態は、基本的には前記推定器２６による演算処理のみが前述の実施形態と相違するものであるので、説明に際しての参照符号は前述の実施形態と同一のものを用いる。
【０３２８】
前述の実施形態では、排気系Ｅの無駄時間d1と空燃比操作系（エンジン１及び機関側制御ユニット７ｂからなる系）の無駄時間d2との両者の影響を補償するために、前記設定合計無駄時間ｄ（＝d1＋d2）後のＯ2センサ６の偏差出力VO2の推定値を求めるようにした。しかるに、排気系Ｅの無駄時間d1に比して空燃比操作系の無駄時間d2が十分に小さいような場合（d2≒０とみなせる場合）には、排気系Ｅの設定無駄時間d1後のＯ2センサ６の偏差出力VO2の推定値VO2(k+d1)バー（以下の説明ではこれを第２推定偏差出力VO2バーと称する）を求め、その第２推定偏差出力VO2バーを用いて、目標空燃比KCMDを求めるようにしてもよい。本実施形態は、このような第２推定偏差出力VO2バーを求めて、Ｏ2センサ６の出力VO2/OUTの目標値VO2/TARGETへの収束制御を行うものである。
【０３２９】
この場合、推定器２６は次のようにして第２推定偏差出力VO2バーを求める。すなわち、排気系Ｅの排気系モデルを表す前記式（１）を用いることで、各制御サイクルにおける排気系Ｅの無駄時間d1後のＯ2センサ６の偏差出力VO2の推定値である前記第２推定偏差出力VO2(k+d1)バーは、Ｏ2センサ６の偏差出力VO2の時系列データVO2(k)及びVO2(k-1)と、ＬＡＦセンサ５の偏差出力kact（＝KACT−FLA F/BASE）の過去値の時系列データkact(k-j)（ｊ＝1，2，…，d1）とを用いて次式（４２）により表される。
【０３３０】
【数４２】
0004490000.tif 000043
【０３３１】
ここで、式（４２）において、α3，α4は、それぞれ前記式（１３）中のただし書きで定義した行列Ａの巾乗Ａd1（d1：排気系Ｅの無駄時間）の第１行第１列成分、第１行第２列成分である。また、γj（j=1，2，…，d1）は、それぞれ行列Ａの巾乗Ａj-1（j=1，2，…，d1）と前記式（１３）中のただし書きで定義したベクトルＢとの積Ａj-1・Ｂの第１行成分である。
【０３３２】
この式（４２）が本実施形態において、推定器２６が前記第２推定偏差出力VO2(k+d1)バーを算出するための式である。この式（４２）は、前記第１実施形態で説明した式（１３）において、kcmd(k)＝kact(k)、ｄ=d1とする（空燃比操作系の無駄時間d2を「０」とみなす）ことで、該式（１３）から得られる式である。つまり、本実施形態では、推定器２６は、制御サイクル毎に、Ｏ2センサ６の偏差出力VO2の時系列データVO2(k)及びVO2(k-1)と、ＬＡＦセンサ５の偏差出力kactの過去値の時系列データkact(k-j)（ｊ＝1，2，…，d1）とを用いて式（４２）の演算を行うことによって、Ｏ2センサ６の第２推定偏差出力VO2(k+d1)バーを求める。
【０３３３】
この場合、式（４２）により第２推定偏差出力VO2(k+d1)バーを算出するために必要となる係数値α3，α4及びγj（j=1，2，…，d1)の値は、前述の実施形態の場合と同様、前記ゲイン係数a1，a2，b1の同定値である前記同定ゲイン係数a1ハット，a2ハット，b1ハットを用いて算出される。また、式（４２）の演算で必要となる無駄時間d1の値は、第１実施形態と同様に前記無駄時間設定手段２９が制御サイクル毎に逐次求める設定無駄時間d1が用いられる。尚、この場合、無駄時間設定手段２９は、空燃比操作系の設定無駄時間d2を求める必要は無いことはもちろんである。
【０３３４】
以上説明した以外の他の処理については前述の第１実施形態と基本的には同一である。但し、この場合において、スライディングモード制御器２７は、ＳＬＤ操作入力Ｕsl（＝目標偏差空燃比kcmd）の成分である等価制御入力Ｕeqと到達則入力Ｕrchと適応則入力Ｕadpとを、それぞれ前記式（２４）、（２６）、（２７）の「ｄ」を「d1」で置き換えた式により求めることとなる。
【０３３５】
かかる本実施形態の内燃機関の空燃比制御装置にあっては、Ｏ2センサ６の出力VO2/OUTを目標値VO2/TARGET収束させる上で考慮すべき排気系Ｅの設定無駄時間d1が実際の無駄時間とほぼ等しくなるように推定排ガスボリュームに応じて可変的に設定される。そして、この設定無駄時間d1の値を用いて、同定器２５、推定器２６、スライディングモード制御器２７による処理が前記第１実施形態と同様に行われる。従って、前記第１実施形態と同様の作用効果を奏することができる。
【０３３６】
尚、本発明の内燃機関の空燃比制御装置は、前述した実施形態に限定されるものではなく、例えば次のような変形態様も可能である。
【０３３７】
すなわち、前記第１及び第２実施形態では、触媒装置３の下流側の排ガスセンサとしてＯ2センサ６を用いたが、該排ガスセンサは、制御すべき触媒装置下流の排ガスの特定成分の濃度を検出できるセンサであれば、他のセンサを用いてもよい。例えば触媒装置下流の排ガス中の一酸化炭素（ＣＯ）を制御する場合はＣＯセンサ、窒素酸化物（ＮＯX）を制御する場合にはＮＯXセンサ、炭化水素（ＨＣ）を制御する場合にはＨＣセンサを用いるようにすればよい。
【０３３８】
また、前記実施形態では、同定器２５、推定器２６、スライディングモード制御器２７の演算処理において、ＬＡＦセンサ５の偏差出力kactやＯ2センサ６の偏差出力VO2、目標偏差空燃比kcmdを用いたが、ＬＡＦセンサ５の出力KACTやＯ2センサ６の出力VO2/OUT、目標空燃比KCMDをそのまま用いて同定器２５、推定器２６、スライディングモード制御器２７の演算処理を行うようにすることも可能である。
【０３３９】
また、前記実施形態では、排気側制御ユニット７ａで生成する操作量を目標空燃比KCMD（排気系Ｅの目標入力）とし、その目標空燃比KCMDに従ってエンジン１で燃焼させる混合気の空燃比を操作するようにしたが、例えばエンジン１の燃料供給量の補正量を排気側制御ユニット７ａで決定するようにすることも可能であり、また、目標空燃比KCMDからフィードフォワード的にエンジン１の燃料供給量を調整して空燃比を操作するようにすることも可能である。
【０３４０】
また、前記実施形態では、スライディングモード制御器２７は、外乱の影響を考慮した適応則（適応アルゴリズム）を加味した適応スライディングモード制御の処理を用いたが、該適応則を省略した通常的なスライディングモード制御の処理を用いるようにしてもよい。さらには、スライディングモード制御器２７に代えて、他の形態の適応制御器、例えばバックステッピング制御器等を用いることも可能である。
【図面の簡単な説明】
【図１】本発明の内燃機関の空燃比制御装置の第１実施形態の全体的システム構成図。
【図２】図１の装置で使用するＯ2センサの出力特性図。
【図３】図１の装置の目標空燃比生成処理部の基本構成を示すブロック図。
【図４】図３の目標空燃比生成処理部の無駄時間設定手段の処理を説明するための線図。
【図５】図３の目標空燃比生成処理部の同定器の処理を説明するための線図。
【図６】図３の目標空燃比生成処理部のスライディングモード制御器に係わる説明図。
【図７】図１の装置の適応制御器の基本構成を示すブロック図。
【図８】図１の装置の機関側制御ユニット（７ｂ）の処理を示すフローチャート。
【図９】図８のフローチャートにおけるサブルーチン処理を示すフローチャート。
【図１０】図１の装置の排気側制御ユニット（７ａ）の全体的処理を示すフローチャート。
【図１１】図１０のフローチャートのサブルーチン処理を示すフローチャート。
【図１２】図１０のフローチャートのサブルーチン処理を示すフローチャート。
【図１３】図１２のフローチャートの部分的処理の説明図。
【図１４】図１２のフローチャートの部分的処理の説明図。
【図１５】図１２のフローチャートの部分的処理の説明図。
【図１６】図１２のフローチャートのサブルーチン処理を示すフローチャート。
【図１７】図１０のフローチャートのサブルーチン処理を示すフローチャート。
【符号の説明】
１…エンジン（内燃機関）、２…排気管（排気通路）、３…触媒装置、５…ＬＡＦセンサ（空燃比センサ）、６…Ｏ2センサ、７ａ…排気側制御ユニット（操作量生成手段）、７ｂ…機関側制御ユニット（空燃比操作手段）、２５…同定器、２６…推定器、２８…流量データ生成手段、２９…無駄時間設定手段。
【図１】
0004490000.tif 000044
【図２】
0004490000.tif 000045
【図３】
0004490000.tif 000046
【図４】
0004490000.tif 000047
【図５】
0004490000.tif 000048
【図６】
0004490000.tif 000049
【図７】
0004490000.tif 000050
【図８】
0004490000.tif 000051
【図９】
0004490000.tif 000052
【図１０】
0004490000.tif 000053
【図１１】
0004490000.tif 000054
【図１２】
0004490000.tif 000055
【図１３】
0004490000.tif 000056
【図１４】
0004490000.tif 000057
【図１５】
0004490000.tif 000058
【図１６】
0004490000.tif 000059
【図１７】
0004490000.tif 000060