(57)【要約】【課題】制御対象の周波数特性の動的な変化の影響を適正に補償して、制御対象の出力の制御を良好に行うことができる制御装置を提供する。【解決手段】例えば排気系Ｅを制御対象とする制御ユニット７は、排気系Ｅの出力を検出するＯ2センサ６の出力等を用いて排気系Ｅのモデルのパラメータを同定し、その同定値を用いてＯ2センサ出力を所定の目標値に収束させるように排気系Ｅへの入力を規定する操作量を求める。パラメータの同定においては、モデルの出力とＯ2センサ６の出力との偏差にフィルタリング処理を施したものを最小化するように、パラメータを同定する。フィルタリング処理の周波数に対するゲイン特性は、排気系Ｅの周波数特性に影響を及ぼす排ガス流量に応じて適宜変更される。【選択図】図１
2006177369.tif 000002
【特許請求の範囲】
【請求項１】
所定の入力から所定の出力を生成する制御対象の出力を検出する検出手段と、前記制御対象の挙動を表現すべくあらかじめ構築された該制御対象のモデルに対し、前記検出手段の検出データと前記制御対象への実入力を表すデータとを用いて、前記モデルの出力と該制御対象の実出力との間の誤差を表す誤差データを逐次算出しつつ、該誤差データの値を最小化するように前記モデルの設定すべきパラメータを同定する同定手段と、該同定手段により同定された前記モデルパラメータの同定値を用いて、該モデルに基づき構築されたアルゴリズムにより前記検出手段の検出データを所定の目標値に収束させるように前記制御対象への実入力を規定する操作量を生成する操作量生成手段とを備え、前記同定手段は、前記モデルの出力と前記検出手段の検出データが表す前記制御対象の実出力との偏差にフィルタリング処理を施したものを前記誤差データとして算出する制御装置において、
前記制御対象の入力変化に対する出力変化のゲインの周波数特性に影響を及ぼす特性パラメータに応じて前記フィルタリング処理の周波数に対するゲイン特性を変更するようにしたことを特徴とする制御装置。
【請求項２】
前記フィルタリング処理は移動平均処理であり、該移動平均処理の移動平均タップ数を、前記特性パラメータに応じて変更することにより、該フィルタリング処理の周波数に対するゲイン特性を変更することを特徴とする請求項１記載の制御装置。
【請求項３】
前記操作量生成手段は、応答指定型のフィードバック制御処理により前記操作量を生成することを特徴とする請求項１又は２記載の制御装置。
【請求項４】
前記応答指定型のフィードバック制御処理は、スライディングモード制御の処理であることを特徴とする請求項３記載の制御装置。
【請求項５】
前記制御対象は、内燃機関の排気通路に設けられた触媒装置に進入する排ガスの空燃比を該制御対象の入力とすると共に、該触媒装置の下流側に設けられた前記検出手段としての酸素濃度センサの出力を該制御対象の出力とする該触媒装置を含む排気系であり、前記特性パラメータは、少なくとも前記排気系を流れる排ガス流量を含むことを特徴とする請求項１〜４のいずれか１項に記載の制御装置。
【請求項６】
前記フィルタリング処理の周波数に対するゲイン特性はローパス特性であり、前記排ガス流量が少ないほど、該フィルタリング処理のゲインが相対的に高ゲインとなる周波数域がより低周波側に偏るように、該フィルタリング処理の周波数に対するゲイン特性を変更することを特徴とする請求項５記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置に関する。
【背景技術】
【０００２】
例えば内燃機関の排気系を制御対象とする制御装置が特開平１１−１５３０５１号公報（特許文献１）等にて本願出願人により提案されている。この制御装置では、排ガス浄化用の触媒装置の下流側に酸素濃度センサ（Ｏ2センサ）を設けた内燃機関の排気系において、触媒装置の上流側から下流側の酸素濃度センサにかけての該触媒装置を含む排気系を制御対象とする制御装置である。この制御対象（以下、ここでは対象排気系という）は、具体的には、触媒装置に進入する排ガスの空燃比（より詳しくは、排ガスの酸素濃度により把握される空燃比）を該対象排気系の入力、触媒装置の下流側の酸素濃度センサの出力を該対象排気系の出力とするものである。そして、この制御装置では、触媒装置の良好な浄化性能を確保するために、前記酸素濃度センサの出力を所定の目標値に収束させるように、触媒装置に進入する排ガスの空燃比を操作するようにしている。
【０００３】
この制御装置では、対象排気系のモデルがあらかじめ構築されており、このモデルのパラメータ（モデルの挙動を確定する上である値に設定すべきパラメータ）が酸素濃度センサの出力データ（対象排気系の出力の検出データ）と、触媒装置の上流側に備えた空燃比センサの出力データ（対象排気系への入力の検出データ）とを用いて逐次同定される。この同定処理では、モデルに空燃比センサの出力データを入力したときに得られるモデルの出力と、酸素濃度センサの出力データ（対象排気系の実出力）との間の誤差を最小化するように、最小２乗法等のアルゴリズムにより、モデルのパラメータが同定される。この場合、実際の対象排気系の周波数特性（対象排気系の入力変化に対する出力変化のゲインの周波数軸上での特性）に、モデルの周波数特性を整合させるために、モデルの出力と酸素濃度センサの出力データとの偏差にフィルタリング処理を施したものが上記誤差として求められ、この誤差を用いてモデルのパラメータの同定処理が行われる。このフィルタリング処理は、対象排気系の周波数特性のゲインが低い周波数域で、モデルのパラメータの同定処理の周波数軸上での重み、すなわち同定重みがより高くなることの影響を補償し、モデルの周波数特性と対象排気系の周波数特性との整合性を高めるためのものである。
【０００４】
そして、前記操作量の生成に際しては、対象排気系のモデルに基づき構築されたフィードバック制御のアルゴリズム（具体的には適応スライディングモード制御のアルゴリズム）により、該モデルのパラメータの同定値を用いて前記操作量が生成される。
【０００５】
このような制御装置では、上述のようにパラメータが同定されるモデルの周波数特性と実際の対象排気系の周波数特性との整合性が高いものとなるため、対象排気系の動的な挙動変化の影響を補償しつつ、酸素濃度センサの出力を所要の目標値に収束させる上で好適な操作量を生成することができ、ひいては、酸素濃度センサの出力の目標値への収束制御の速応性や安定性を高めることができる。
【特許文献１】特開平１１−１５３０５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、本願発明者等のさらなる検討によれば、内燃機関の運転状態等によっては、対象排気系の周波数特性が比較的大きく変化することが判明した。例えば、内燃機関の回転数が比較的低い状態では、対象排気系の周波数特性は、特に、触媒装置を流れる排ガス流量の影響を受け易く、該排ガス流量の変化によって、対象排気系の周波数特性が比較的大きく変化することがある。そして、このような場合、対象排気系の周波数特性において、特にゲインの低い周波数域における前記同定処理の重み（同定重み）が増加しやすい。その結果、パラメータの同定値により定まるモデルの周波数特性と、実際の対象排気系の周波数特性との整合性が低下し、ひいては、酸素濃度センサの出力の目標値への収束制御の速応性や安定性が損なわれる虞れがあった。
【０００７】
また、一般に、制御対象のモデルのパラメータを上述のように同定し、その同定値を用いて、該制御対象の出力を制御する制御装置では、実際の制御対象の周波数特性の比較的大きな変化が生じると、上記と同様の不都合を生じる虞れがあった。
【０００８】
本発明はかかる背景に鑑みてなされたものであり、制御対象の周波数特性の動的な変化の影響を適正に補償して、制御対象の出力の制御を良好に行うことができる制御装置を提供することを目的とする。そして、特に、内燃機関の排ガス浄化用の触媒装置を含む排気系の制御に好適な制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の制御装置は、所定の入力から所定の出力を生成する制御対象の出力を検出する検出手段と、前記制御対象の挙動を表現すべくあらかじめ構築された該制御対象のモデルに対し、前記検出手段の検出データと前記制御対象への実入力を表すデータとを用いて、前記モデルの出力と該制御対象の実出力との間の誤差を表す誤差データを逐次算出しつつ、該誤差データの値を最小化するように前記モデルの設定すべきパラメータを同定する同定手段と、該同定手段により同定された前記モデルパラメータの同定値を用いて、該モデルに基づき構築されたアルゴリズムにより前記検出手段の検出データを所定の目標値に収束させるように前記制御対象への実入力を規定する操作量を生成する操作量生成手段とを備える。この場合、前記同定手段は、前記モデルの出力と前記検出手段の検出データが表す前記制御対象の実出力との偏差にフィルタリング処理を施したものを前記誤差データとして算出する。そして、本発明は、前記の目的を達成するために、前記制御対象の入力変化に対する出力変化のゲイン（以下、制御対象の入出力間ゲインということがある）の周波数特性に影響を及ぼす特性パラメータに応じて前記フィルタリング処理の周波数に対するゲイン特性（以下、対周波数ゲイン特性ということがある）を変更するようにしたことを特徴とするものである。
【００１０】
かかる本発明によれば、制御対象の入出力間ゲインの周波数特性に影響を及ぼす特性パラメータに応じて、前記同定手段が前記誤差データを算出するためのフィルタリング処理の対周波数ゲイン特性を変更することにより、制御対象の入出力間ゲインの周波数特性が変化しても、前記モデルの入出力間ゲイン（該モデルにおける入力変化に対する出力変化のゲイン）の周波数特性が実際の制御対象の入出力間ゲインの周波数特性に整合するように、該モデルのパラメータを前記同定手段の処理により同定することが可能となる。このため、そのモデルのパラメータの同定値を用いて前記操作量生成手段により生成される操作量を、前記検出手段により検出される制御対象の実出力を所定の目標値に収束させる上で好適なものとすることが可能となる。この結果、その収束制御の安定性や速応性を高め、該収束制御を良好に行うことができる。
【００１１】
尚、本発明に関して補足説明をしておくと、前記フィルタリング処理は、より詳しくは、前記制御対象への実入力を表すデータを前記モデルの出力と前記検出手段の検出データが表す前記制御対象の実出力との偏差の周波数軸上での成分の強弱を調整する処理である。そして、対象排気系の入出力間ゲインの周波数特性と、モデルの入出力間ゲインの周波数特性とを整合させる上では、該フィルタリング処理の対周波数ゲイン特性は、基本的には、制御対象の入出力間ゲインが相対的に高い周波数域において、該フィルタリング処理のゲインが他の周波数域（制御対象の入出力間ゲインが相対的に低い周波数域）よりも相対的に高くなるような特性である。また、前記フィルタリング処理による生成する誤差データは、結果的に、モデルの出力と制御対象の出力（実出力）との偏差にフィルタリング処理を施したものとなっていればよい。従って、該偏差そのものにフィルタリング処理を施すことで得られるものはもちろん、例えば、モデルの出力と制御対象の出力とに同一の対周波数ゲイン特性を有するフィルタリング処理をそれぞれ施したものの偏差を前記誤差データとして生成するようにしてもよい。
【００１２】
また、本発明において、前記制御対象のモデルは、例えば、該制御対象がその入力から応答遅れ要素を介して出力するものであるとして該制御対象の挙動を数式表現するモデル、あるいは、該制御対象がその入力から応答遅れ要素及び無駄時間要素を介して出力するものであるとして該制御対象の挙動を数式表現するモデル等がある。そして、制御対象のモデルを離散時間系で設定する場合には、各制御サイクル毎の制御対象の出力を、その各制御サイクルより過去の制御サイクルにおける制御対象の出力と入力との線形和により表現する自己回帰型のモデルが一般的である。
【００１３】
さらに、本発明において、制御対象のモデルのパラメータは、より詳しくは、該モデルの挙動を確定する上である値に設定すべきパラメータであり、一般的には、該モデルの数式表現中の各項に係る係数が該パラメータに該当する。例えば、上記自己回帰型のモデルでは、その数式表現中に現れる制御対象の出力及び入力に係る係数が該モデルのパラメータに該当する。この場合、前記同定手段の処理では、必ずしも、それらのパラメータの全てを同定する必要はなく、それらのパラメータのうちの一部のパラメータについては、その値をあらかじめ定めた固定値としたり、データテーブルやマップ等を用いて該パラメータの値を可変的に設定するようにしてもよい。
【００１４】
さらに、前記同定手段の処理のアルゴリズムとしては、最小２乗法、重み付最小２乗法等のアルゴリズムが挙げられる。
【００１５】
また、前記同定手段の処理に用いる、制御対象への実入力を表すデータは、該実入力を検出する検出手段（以下、ここでは第２の検出手段という）を備えた場合には、該第２の検出手段の検出データ（制御対象への実入力の検出値）を用いればよい。但し、制御対象への入力は、基本的には、前記操作量生成手段が生成する操作量により規定されるので、制御対象への実入力を表すデータとして、前記操作量生成手段が生成した操作量を用いることも可能である。尚、一般的には、前記第２の検出手段の検出データは、制御対象への実入力そのものの検出値であるので、制御対象を含む制御系の実際の挙動状態を反映させて前記モデルのパラメータを適正に同定する上では、該第２の検出手段の検出データを、制御対象への実入力を表すデータとして用いることが好適である。
【００１６】
かかる本発明では、前記フィルタリング処理としては、例えば移動平均処理が挙げられる。該移動平均処理は、一般的に言えば、所定の制御サイクル毎に、その移動平均処理の対象データの所定数（これは移動平均タップ数と言われる）の時系列データ（より詳しくは、現在から所定時間前までに得られた時系列データ）の平均値を求める処理である。この場合、本発明では、前記制御対象への実入力を表すデータを前記モデルに入力したときの該モデルの出力と前記検出手段の検出データが表す前記制御対象の実出力との偏差が上記対象データに該当する。そして、このように、前記フィルタリング処理として移動平均処理を用いた場合には、該移動平均処理の移動平均タップ数を、前記特性パラメータに応じて変更することにより、該フィルタリング処理の対周波数ゲイン特性を変更することができる。これによれば、フィルタリング処理の対周波数ゲイン特性を容易に変更することができる。
【００１７】
また、本発明では、前記操作量生成手段は、応答指定型のフィードバック制御処理により前記操作量を生成することが好適である。そして、特に、該応答指定型のフィードバック制御処理は、スライディングモード制御の処理であることが好適である。すなわち、応答指定型のフィードバック制御処理により前記操作量を生成することで、モデルの入出力間ゲインの周波数特性と、実際の制御対象の入出力間ゲインの周波数特性とが多少の誤差を生じても、制御対象の出力の目標値への収束制御の安定性を確保し得る操作量を生成することことができる。特に、スライディングモード制御の処理を用いることにより、制御対象の出力の目標値への収束制御の安定性を高めることができる。
【００１８】
尚、スライディングモード制御の処理は、所謂、等価制御入力に係わる制御則と到達則とに基づく通常的なスライディングモード制御の処理であってもよいが、これらの制御則に加えてさらに、適応則（適応アルゴリズム）を付加した適応スライディングモード制御の処理が好適である。該適応則は、外乱の影響、あるいは前記モデルと実際の制御対象との誤差（モデル化誤差）の影響を極力排除するための制御則である。このような適応スライディングモード制御の処理を用いることにより、制御対象の出力の目標値への収束制御の安定性をさらに高めることができる。
【００１９】
また、本発明では、前記制御対象は、例えば内燃機関の排気通路に設けられた触媒装置に進入する排ガスの空燃比を該制御対象の入力とすると共に、該触媒装置の下流側に設けられた前記検出手段としての酸素濃度センサの出力を該制御対象の出力とする該触媒装置を含む排気系である。そして、この場合、前記特性パラメータは、少なくとも前記排気系を流れる排ガス流量を含むことが好適である。
【００２０】
すなわち、前記制御対象が、前記触媒装置を含む排気系である場合、該排気系の入出力間ゲインの周波数特性は、本願発明者等の知見によれば、特に、該排気系を流れる排ガス流量の影響を受け易い。従って、前記特性パラメータとして、少なくとも排ガス流量を含めることにより、前記フィルタリング処理の対周波数ゲイン特性を適切に変更し、前記同定手段によりパラメータが同定されるモデルの入出力間ゲインの周波数特性を、実際の排気系の入出力間ゲインの周波数特性製に好適に整合させることが可能となる。その結果、触媒装置の下流側の酸素濃度センサの出力を所定の目標値に収束させる制御を良好に行うことができ、ひいては、触媒装置により排ガスの浄化性能を適正に確保することができる。
【００２１】
この場合、前記排気系は、一般に、低周波域で入出力間ゲインが比較的大きなものとなるローパス特性を有する。従って、前記モデルの入出力間ゲインの周波数特性と、前記排気系の入出力間ゲインの周波数特性とを整合させる上では、前記フィルタリング処理の対周波数ゲイン特性は、基本的には、低周波域で相対的にゲインが高くなるローパス特性であることが好適である。そして、本願発明者等の知見によれば、特に排ガス流量が少なくなると、排気系の入出力間ゲインが高ゲインとなる周波数域がより低周波側に偏る傾向がある。従って、この場合、排ガス流量が少ないほど、前記フィルタリング処理のゲインが相対的に高ゲインとなる周波数域がより低周波側に偏るように該フィルタリング処理の対周波数ゲイン特性を変更することが好適である。このようにすることにより、前記同定手段によりパラメータを同定する排気系のモデルの入出力間ゲインの周波数特性と、前記排気系の入出力間ゲインの周波数特性とを確実に整合させることができ、前記酸素濃度センサの出力を所定の目標値に収束させる制御の信頼性を高めることができる。
【００２２】
尚、前記フィルタリング処理として、前記移動平均処理を用いる場合、上記のようにフィルタリング処理の対周波数ゲイン特性を変更するためには、排ガス流量が少ないほど、前記移動平均タップ数を多くするようにすればよい。
【発明を実施するための最良の形態】
【００２３】
本発明の第１実施形態を図１〜図１７を参照して説明する。図１は本実施形態の装置の全体構成をブロック図で表したものであり、図中、１は例えば自動車やハイブリッド車に車両の推進源として搭載された４気筒のエンジン（内燃機関）である。このエンジン１が各気筒毎に燃料及び空気の混合気の燃焼により生成する排ガスは、エンジン１の近傍で共通の排気管２（排気通路）に集合され、該排気管２を介して大気中に放出される。そして、排気管２には、排ガスを浄化するために、三元触媒を用いて構成された二つの触媒装置３，４が該排気管２の上流側から順に介装されている。尚、下流側の触媒装置４はこれを省略してもよい。
【００２４】
本実施形態のシステムでは、触媒装置３の最適な浄化性能を確保するようにエンジン１の空燃比（より正確にはエンジン１で燃焼させる燃料及び空気の混合気の空燃比。以下、同様）を操作する。そして、この操作を行うために、本実施形態のシステムは、触媒装置３の上流側（より詳しくはエンジン１の各気筒毎の排ガスの集合箇所）で排気管２に設けられた空燃比センサ５と、触媒装置３の下流側（触媒装置４の上流側）で排気管２に設けられたＯ2センサ（酸素濃度センサ）６と、これらのセンサ５，６の出力（検出値）等に基づき後述の制御処理を行う制御ユニット７とを具備している。Ｏ2センサ６、空燃比センサ５はそれぞれ前述した検出手段、第２の検出手段に相当するものである。尚、制御ユニット７には、前記空燃比センサ５やＯ2センサ６の出力の他に、回転数センサや吸気圧センサ、冷却水温センサ等、エンジン１の運転状態を検出するための図示しない各種のセンサの出力が与えられる。
【００２５】
Ｏ2センサ６は、触媒装置３を通過した排ガス中の酸素濃度に応じたレベルの出力VO2/OUT（酸素濃度の検出値を示す出力）を生成する通常的なＯ2センサである。ここで、排ガス中の酸素濃度は、燃焼によりその排ガスとなった混合気の空燃比に応じたものとなる。そして、このＯ2センサ６の出力VO2/OUTは、図２に実線ａで示すように、排ガス中の酸素濃度に対応する空燃比が理論空燃比近傍の比較的狭い範囲Δに存するような状態で、該排ガス中の酸素濃度に対してほぼ線形に高感度な変化を生じるものとなる。また、その範囲Δを逸脱した空燃比に対応する酸素濃度では、Ｏ2センサ６の出力VO2/OUTはほぼ一定のレベルに飽和する。
【００２６】
空燃比センサ５は、触媒装置３に進入する排ガスの空燃比（より詳しくは触媒装置３に進入する排ガスの酸素濃度により把握される空燃比）の検出値を表す出力KACTを生成するものである。この空燃比センサ５は、例えば本願出願人が特開平４−３６９４７１号公報にて説明した広域空燃比センサにより構成されたものであり、図２に実線ｂで示すように、Ｏ2センサ５よりも排ガス中の酸素濃度の広範囲にわたってそれに比例したレベルの出力KACTを生成するものである。以下の説明では、この空燃比センサ５をＬＡＦセンサ５と称し、触媒装置３に進入する排ガスの空燃比（空燃比センサ５が検出する排ガスの空燃比）を触媒上流空燃比と称する。
【００２７】
制御ユニット７は、マイクロコンピュータを用いて構成されたものであり、触媒上流空燃比の目標値である目標空燃比KCMD（これはＬＡＦセンサ５の出力KACTの目標値でもある）を触媒上流空燃比を規定する操作量として逐次生成する処理を所定の制御サイクルで実行する排気側制御ユニット７ａと、該目標空燃比KCMDに応じてエンジン１の燃料供給量を調整することによって触媒上流空燃比を操作する処理を所定の制御サイクルで逐次実行する機関側制御ユニット７ｂとを具備している。尚、これらの制御ユニット７ａ，７ｂのうち、排気側制御ユニット７ａは本発明における操作量生成手段に相当するものである。また、機関側制御ユニット７ｂは、エンジン１と併せて、目標空燃比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が目標空燃比KCMDに一致する状態で「目標空燃比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に無駄時間を有する自己回帰モデル）により排気系Ｅの挙動が表現されている。
【００５４】
【数１】
2006177369.tif 000003
【００５５】
ここで、上式（１）において、「ｋ」は排気側制御ユニット７ａの離散時間的な制御サイクルの番数を示し、「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を空燃比操作系の出力とし、次式（２）のモデルにより空燃比操作系モデルの挙動が表現されている。
【００６１】
【数２】
2006177369.tif 000004
【００６２】
ここで、式（２）の「d2」は、空燃比操作系が有する無駄時間（詳しくは、各時点の目標空燃比KCMDがＬＡＦセンサ５の出力KACTに反映されるようになるまでに要する時間）を排気側制御ユニット７ａの制御サイクル数で表したものである。この場合、空燃比操作系の実際の無駄時間は、排気系Ｅの無駄時間と同様に、触媒装置３に供給される排ガスの流量と密接に関連しており、基本的には、排ガスの流量が少ないほど、該無駄時間が長くなる。これは基本的には、排ガスの流量が少ないほど、エンジン１の回転数が低い（クランク角周期が長い）ので、空燃比操作系の機関側制御ユニット７ｂの制御サイクルの周期が長くなるからである。このため、本実施形態では、後述するように触媒装置３に供給される排ガスの流量を逐次把握し、それに応じて、式（２）の空燃比操作系モデルにおける無駄時間d2の値を適宜可変的に設定するようにしている（以下、無駄時間d2の設定値を設定無駄時間d2という）。
【００６３】
前記式（２）により表現した空燃比操作系モデルは、該空燃比操作系が、その出力（触媒上流空燃比）としてのＬＡＦセンサ５の偏差出力kactが、空燃比操作系の無駄時間d2前の時点における空燃比操作系の入力としての目標偏差空燃比kcmdに一致するような系であるとして、該空燃比操作系の挙動を表現したものである。
【００６４】
尚、空燃比操作系には、実際には、無駄時間要素の他、エンジン１に起因した応答遅れ要素も含まれる。しかるに、目標空燃比KCMDに対する触媒上流空燃比の応答遅れは、基本的には前記機関側制御ユニット７ｂのフィードバック制御部１４（特に詳細を後述する適応制御器１８）によって補償されるため、排気側制御ユニット７ａから見た空燃比操作系では、エンジン１に起因する応答遅れ要素を考慮せずとも支障はない。
【００６５】
本実施形態における前記目標空燃比生成処理部１３は、式（１）により表した排気系モデル、並びに式（２）により表した空燃比操作系モデルに基づいて構築されたアルゴリズムによって、排気側制御ユニット７ａの制御サイクル毎に、目標空燃比KCMDを逐次算出する処理を行うものである。そして、該目標空燃比生成処理部１３は、その処理を行うために、図３に示すような機能的構成を具備している。
【００６６】
すなわち、目標空燃比生成処理部１３は、エンジン１の回転数NE、吸気圧PBの検出値から、触媒装置３に供給される排ガスの流量の推定値ABSV（以下、推定排ガスボリュームABSVという）を逐次算出する流量データ生成手段２８と、この推定排ガスボリュームABSVに応じて排気系モデル及び空燃比操作系モデルのそれぞれの設定無駄時間d1，d2を逐次設定する無駄時間設定手段２９とを具備している。
【００６７】
この場合、触媒装置３に供給される排ガスの流量は、エンジン１の回転数NEと吸気圧PBとの積に比例するので、流量データ生成手段２８は、エンジン１の回転数NE、吸気圧PBの検出値（現在値）から次式（３）により、前記推定排ガスボリュームABSVを逐次算出する。
【００６８】
【数３】
2006177369.tif 000005
【００６９】
ここで、式（３）において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バー（以下、推定偏差出力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)ハットという）を求める。
【００７９】
【数４】
2006177369.tif 000006
【００８０】
この式（４）は、排気系モデルを表す前記式（１）を１制御サイクル分、過去側にシフトし、ゲイン係数a1，a2，b1を同定ゲイン係数a1ハット(k-1)，a2ハット(k-1)，b1ハット(k-1)で置き換えると共に、排気系Ｅの無駄時間d1として設定無駄時間d1の最新値を用いたものである。
【００８１】
ここで、次式（５），（６）で定義されるベクトルΘ及びξを導入すると（式（５），（６）中の添え字「Ｔ」は転置を意味する。以下同様。）、
【００８２】
【数５】
2006177369.tif 000007
【００８３】
【数６】
2006177369.tif 000008
【００８４】
前記式（４）は、次式（７）により表される。
【００８５】
【数７】
2006177369.tif 000009
【００８６】
さらに同定器２５は、前記式（４）あるいは式（７）により求められるＯ2センサ６の同定偏差出力VO2(k)ハットと今現在のＯ2センサ６の偏差出力VO2(k)との偏差id/e(k)を排気系モデルの実際の排気系Ｅに対する基本的なモデル化誤差を表すものとして次式（８）により逐次求める（以下、偏差id/eを同定偏差id/eという）。
【００８７】
【数８】
2006177369.tif 000010
【００８８】
ここで、前記ゲイン係数a1，a2，b1を同定するためには、基本的には、上記同定偏差id/eを最小化するように、逐次型最小２乗法等のアルゴリズムにより、同定ゲイン係数a1ハット，a2ハット，b1ハットの値を求めるようにすればよい。しかるに、前記排気系Ｅの入力変化に対する出力変化のゲインの周波数特性、すなわち、触媒上流空燃比の変化に対するＯ2センサの出力変化のゲインの周波数特性（以下、単に排気系Ｅの周波数特性という）は、図５に実線グラフｐ，ｑで示すようにローパス特性を有する。このため、仮に、上記同定偏差id/eそのものを最小化するように同定器２５によりゲイン係数a1，a2，b1の値を同定した場合、その同定重みの周波数特性は、図６に破線グラフｒ，ｓで示すように、排気系Ｅの周波数特性と逆に、低周波側よりも高周波側で重みが高いものとなる。これは、高周波側では、排気系Ｅの入力変化に対する出力変化のゲインが小さいために、上記同定偏差id/eがより最小化しやすいためである。そして、このように同定重みの周波数特性が、排気系Ｅの周波数特性と逆に、低周波側よりも高周波側で重みが高いものとなると、ゲイン係数a1，a2，b1の同定値により定まる排気系モデルの周波数特性は、排気系Ｅの実際の周波数特性に対する整合性が低下する（具体的には、実際の周波数特性よりも低周波側におけるゲインが低くなりやすい）。
【００８９】
また、排気系Ｅの周波数特性は、エンジン１の運転状態等によって変化し、特に、エンジン１の低速回転域では、排気系Ｅを流れる排ガスの流量の影響を受け易い。すなわち、図５に示したように、排気系Ｅの周波数特性は、排ガス流量の影響を受け、基本的には、排ガス流量が小さいほど、比較的高ゲインとなる周波数域が低周波側に偏る。そして、この場合、上記同定重みの周波数特性は、図６に示したように、排ガス流量が小さいほど、高周波側での重みが高くなる。従って、排気系モデルの周波数特性と排気系Ｅの実際の周波数特性との整合性は、排ガス流量が小さいほど、より低下する。
【００９０】
上述のような現象に鑑み本実施形態では、同定器２５は、制御サイクル毎に逐次求める前記同定偏差id/eにさらにフィルタリング処理を施したものを、排気系モデルと実際の排気系Ｅとの間の誤差を表す誤差データとして求める。この場合、本実施形態では、そのフィルタリング処理として移動平均処理が用いられる。この移動平均処理は、具体的には、次式（９）により行われる。
【００９１】
【数９】
2006177369.tif 000011
【００９２】
すなわち、排気側制御ユニット７ａの制御サイクル毎に、同定偏差id/eの最新値及び過去値からなる時間的に連続した所定個数分（Ｎ個分）の時系列データid/e(k)，id/e(k-1)，id/e(k-2)，……，id/e(k-N+1）の平均値id/ef(k)が前記誤差データとして逐次求められる（以下、平均値id/ef(k)を誤差データid/e(k)という）。そして、このとき、本実施形態では、誤差データid/e(k)を求めるための同定偏差id/eの個数Ｎ、すなわち、移動平均タップ数Ｎが、流量データ生成手段２８により求められた推定排ガスボリュームABSV（これは本発明における特性パラメータに相当する）の最新値から、図７に示すようにあらかじめ定められたデータテーブルに基づいて逐次設定される。図７のデータテーブルでは、移動平均タップ数Ｎは、基本的には、推定排ガスボリュームABSVが小さい程、多くなるように定められている。また、前記式（９）による移動平均処理のゲインの周波数特性（対周波数ゲイン特性）は、基本的には図８に実線ｕ，ｖで示すように、ローパス特性のフィルタリング処理である。そして、移動平均タップ数Ｎが多いほど、該移動平均処理（フィルタリング処理）のゲインが、相対的に高ゲインとなる周波数域は、低周波側に偏る。従って、前記移動平均タップ数Ｎを推定排ガスボリュームABSVに応じて上述のように可変的に設定することにより、移動平均処理のゲインは、排ガス流量が小さい程、高ゲインとなる周波数域は、低周波側に偏ることとなる。
【００９３】
尚、図７のデータテーブルでは、移動平均タップ数Ｎは、推定排ガスボリュムABSVに対して連続的に変化するものとなっているが、該移動平均タップ数Ｎは、整数値である必要がある。このため、同定器２５は、実際には、例えば図７のデータテーブルに基づいて求められる移動平均タップ数Ｎの値の小数点以下を四捨五入してなる整数値を前記式（９）で用いる移動平均タップ数Ｎとして求める。
【００９４】
本実施形態における同定器２５は、上述のようにして同定偏差id/eに移動平均処理（フィルタリング処理）を施すこととにより求められる前記誤差データid/efを最小にするように新たな同定ゲイン係数a1(k)ハット，a2(k)ハット，b1(k)ハット、換言すれば、これらの同定ゲイン係数を要素とする新たな前記ベクトルΘ(k)（以下、このベクトルを同定ゲイン係数ベクトルΘという）を求めるもので、その算出を、次式（１０）により行う。すなわち、同定器２５は、前回の制御サイクルで決定した同定ゲイン係数a1ハット(k-1)，a2ハット(k-1)，b1ハット(k-1)を、誤差データid/ef(k)に比例させた量だけ変化させることで新たな同定ゲイン係数a1(k)ハット，a2(k)ハット，b1(k)ハットを求める。
【００９５】
【数１０】
2006177369.tif 000012
【００９６】
ここで、式（１０）中の「Ｋθ」は次式（１１）により決定される三次のベクトル（各同定ゲイン係数a1ハット，a2ハット，b1ハットの誤差データid/efに応じた変化度合いを規定するゲイン係数ベクトル）である。
【００９７】
【数１１】
2006177369.tif 000013
【００９８】
また、上式（１１）中の「Ｐ」は次式（１２）の漸化式により逐次更新される三次の正方行列である。
【００９９】
【数１２】
2006177369.tif 000014
【０１００】
尚、式（１２）中の「λ1」、「λ2」は０＜λ1≦１及び０≦λ2＜２の条件を満たすように設定され、また、「Ｐ」の初期値Ｐ(0)は、その各対角成分を正の数とする対角行列である。
【０１０１】
ここで、式（１２）中の「λ1」、「λ2」の値の設定の仕方によって、固定ゲイン法、漸減ゲイン法、重み付き最小二乗法、最小二乗法、固定トレース法等、各種の具体的なアルゴリズムが構成される。本実施形態では、例えば重み付き最小二乗法のアルゴリズムが採用され、「λ1」、「λ2」の値は、０＜λ1＜１、λ2＝１である。
【０１０２】
ここで、「λ1」は、重み付き最小２乗法の重みパラメータであり、本実施形態では、この重みパラメータλ1の値は、前記流量データ生成手段２８が逐次算出する推定排ガスボリュームABSVに応じて（結果的には、設定無駄時間d1に応じて）可変的に設定される。
【０１０３】
すなわち、本実施形態では、同定器２５は、排気側制御ユニット７ａの制御サイクル毎に、流量データ生成手段２８が求めた推定排ガスボリュームABSVの最新値から、図８に示すようにあらかじめ定められたデータテーブルに基づいて重みパラメータλ1の値を設定する。この場合、図８のデータテーブルでは、重みパラメータλ1の値は、基本的には、推定排ガスボリュームABSVが少ないほど、値が大きくなって、「１」に近づくようになっている。そして、同定器２５は、各制御サイクルで前記行列Ｐ(k)を式（１２）により更新するに際しては、上記のように推定排ガスボリュームABSVに応じて設定した重みパラメータλ1の値を用いる。尚、このように重みパラメータλ1の値を推定排ガスボリュームABSVに応じて設定するのは、次の理由による。すなわち、排ガス流量が比較的低いときに排気系Ｅが実際に有する無駄時間が増加し、それによるＯ2センサ６の出力の制御性が低下する。そこで、この出力の変動量が増大することに伴う同定ゲイン係数a1，a2，b1の変動やばらつきを抑制するために重みパラメータλ1の値を推定排ガスボリュームABSVに応じて設定する。
【０１０４】
本実施形態における同定器２５は基本的には前述のようなアルゴリズム（演算処理）によって、前記誤差データid/efを最小化するように逐次型の重み付き最小２乗法のアルゴリズムにより、排気系モデルの同定ゲイン係数a1ハット，a2ハット，b1ハットを制御サイクル毎に逐次求めるものである。この場合、前記誤差データid/efは、前記同定偏差id/eに前述のようにフィルタリング処理（移動平均処理）を施したものであるため、同定器２５の実質的な同定重みの周波数特性は、前記図６に実線グラフｔで示すように、高周波側におけるレベルが抑制されたものとなる。また、この場合、同定偏差id/eに施す移動平均処理の移動平均タップ数Ｎが排ガス流量の推定値である推定排ガスボリュームABSVに応じて適宜変更されることにより、同定重みの周波数特性は、排ガス流量によらずに、ほぼ、図６に実線グラフｔで示した特性に維持される。この結果、排気系モデルの周波数特性と排気系Ｅの周波数特性とが排ガス流量によらずに整合するような同定ゲイン係数a1ハット，a2ハット，b1ハットが同定器２５により求められることとなる。
【０１０５】
以上説明した演算処理が同定器２５による基本的な処理内容である。尚、本実施形態では、図１０（ａ）のブロック図で示すように、前記式（１０）で用いる誤差データid/efを、前記同定偏差id/eそのものにフィルタリング処理（移動平均処理）を施すことで得るようにした。但し、該フィルタリング処理は、結果的に、同定偏差id/eに施されていればよい。このため、例えば、図１０（ｂ）のブロック図に示すように、前記式（７）（≡（４））により求められる同定偏差出力VO2ハットとＯ2センサ６の偏差出力VO2とに、それぞれ各別にフィルタリング処理を施したものの偏差を前記式（１０）で用いる誤差データid/efとして求めるようにしてもよい。この場合、同定偏差出力VO2ハットとＯ2センサ６の偏差出力VO2とにそれぞれ施すフィルタリング処理は、互いに同一特性で且つ図８の実線グラフで示したものと同様の特性のものである。あるいは、図１０（ｃ）のブロック図に示すように、ＬＡＦセンサ５の偏差出力kactと、Ｏ2センサ６の偏差出力VO2とにそれぞれ各別にフィルタリング処理を施した上で、そのフィルタリング処理後の偏差出力kact，VO2とを用いて前記式（７）により求められる同定偏差出力VO2ハットと、当該フィルタリング処理後の偏差出力VO2との偏差を式（１０）で用いる誤差データとして求めるようにしてもよい。この場合、各偏差出力kact，VO2にそれぞれ施すフィルタリング処理は、互いに同一特性で且つ図８の実線グラフで示したものと同様の特性のものである。
【０１０６】
また、本実施形態では、同定器２５は、同定ゲイン係数a1ハット，a2ハット，b1ハットを求めるに際して、それらの値の制限処理等、付加的な処理も行うのであるが、これらについては後述する。
【０１０７】
次に、前記推定器２６は、後に詳細を説明するスライディングモード制御器２７による目標空燃比KCMDの算出処理に際しての排気系Ｅの無駄時間及び空燃比操作系の無駄時間d2の影響を補償するために、前記合計設定無駄時間ｄ（＝d1＋d2）後のＯ2センサ６の偏差出力VO2の推定値である前記推定偏差出力VO2バーを制御サイクル毎に逐次求めるものである。その推定処理のアルゴリズムは、次のように構築されている。
【０１０８】
まず、排気系モデルを表す前記式（１）に、空燃比操作系モデルを表す式（２）を適用すると、式（１）は次式（１３）に書き換えられる。
【０１０９】
【数１３】
2006177369.tif 000015
【０１１０】
この式（１３）は、排気系Ｅ及び空燃比操作系を合わせた系を、目標偏差空燃比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）とを用いて次式（１４）により表される。
【０１１２】
【数１４】
2006177369.tif 000016
【０１１３】
ここで、式（１４）において、α1，α2は、それぞれ同式（１４）中の但し書きで定義した行列Ａのべき乗Ａd（ｄ＝d1＋d2）の第１行第１列成分、第１行第２列成分である。また、βj（j=1，2，…，ｄ）は、それぞれ行列Ａのべき乗Ａj-1（j=1，2，…，ｄ）と同式（１４）中の但し書きで定義したベクトルＢとの積Ａj-1・Ｂの第１行成分である。
【０１１４】
さらに、式（１４）中の目標偏差空燃比kcmdの過去値の時系列データkcmd(k-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)に置き換えることができる。そして、この置き換えを行うことで、次式（１５）が得られる。
【０１１５】
【数１５】
2006177369.tif 000017
【０１１６】
この式（１５）が本実施形態において、推定器２６が推定偏差出力VO2(k+d)バーを制御サイクル毎に逐次算出するための基本式である。つまり、本実施形態では、推定器２６は、Ｏ2センサ６の偏差出力VO2の現在値及び過去値の時系列データVO2(k)及びVO2(k-1)と、スライディングモード制御器２７が過去に求めた目標空燃比KCMDを表す目標偏差空燃比kcmdの過去値のデータkcmd(k-j)（ｊ＝1，2，…，d2-1）と、ＬＡＦセンサ５の偏差出力kactの現在値及び過去値の時系列データkact(k-i)（ｉ＝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≧１である。図４参照）。この場合には、式（１４）中の目標偏差空燃比kcmdの過去値の時系列データkcmd(k-j)（ｊ＝1，2，…，ｄ）の全てをそれぞれＬＡＦセンサ５の偏差出力kactの現在以前に得られる時系列データkact(k)，kact(k-1)，…，kact(k-d+d2)に置き換えることができる。このため、この場合には、式（１４）は、目標偏差空燃比kcmdのデータを含まない次式（１６）に書き換えられる。
【０１１９】
【数１６】
2006177369.tif 000018
【０１２０】
つまり、設定無駄時間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に等しい。以下、この入力量をＳＬＤ操作入力Uslと称する）を逐次算出し、その算出したＳＬＤ操作入力Uslから前記目標空燃比KCMDを逐次求めるものである。そして、その処理のためのアルゴリズムは次のように構築されている。
【０１２６】
まず、スライディングモード制御器２７の適応スライディングモード制御の処理に必要な切換関数とこの切換関数により定義される超平面（これはすべり面とも言われる）とについて説明する。
【０１２７】
本実施形態におけるスライディングモード制御の基本的な考え方としては、制御すべき状態量として、例えば各制御サイクルで得られたＯ2センサ６の偏差出力VO2(k)と、その１制御サイクル前に得られた偏差出力VO2(k-1)とを用い、スライディングモード制御用の切換関数σを次式（１７）により定義する。すなわち、該切換関数σは、Ｏ2センサ６の偏差出力VO2の時系列データVO2(k)、VO2(k-1)を成分とする線形関数により定義される。尚、前記偏差出力VO2(k)，VO2(k-1)を成分とするベクトルとして式（１７）中で定義したベクトルＸを以下、状態量Ｘという。
【０１２８】
【数１７】
2006177369.tif 000019
【０１２９】
この場合、切換関数σの成分VO2(k)、VO2(k-1)にそれぞれ係る係数s1，s2は、次式（１８）の条件を満たすように設定される。
【０１３０】
【数１８】
2006177369.tif 000020
【０１３１】
尚、本実施形態では、簡略化のために係数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という）との総和により表される。
【０１３５】
【数１９】
2006177369.tif 000021
【０１３６】
そして、これらの等価制御入力Ｕeq、到達則入力Ｕrch及び適応則入力Ｕadpは、本実施形態では、排気系モデルと空燃比操作系モデルとを合わせた前記式（１３）に基づいて、次のように求められる。
【０１３７】
まず、状態量Ｘを超平面σ＝０に拘束するために排気系Ｅに与えるべき入力量成分である前記等価制御入力Ｕeqは、σ(k+1)＝σ(k)＝０という条件を満たす目標偏差空燃比kcmdである。そして、このような条件を満たす等価制御入力Ｕeqは、式（１３）と式（１７）とを用いて次式（２０）により与えられる。
【０１３８】
【数２０】
2006177369.tif 000022
【０１３９】
この式（２０）が本実施形態において、制御サイクル毎に等価制御入力Ｕeq(k)を求めるための基本式である。
【０１４０】
次に、前記到達則入力Ｕrchは、本実施形態では、基本的には次式（２１）により求められる。
【０１４１】
【数２１】
2006177369.tif 000023
【０１４２】
すなわち、到達則入力Ｕrchは、排気系Ｅ及び空燃比操作系の無駄時間を考慮し、前記合計設定無駄時間ｄ後の切換関数σの値σ(k+d)に比例するように決定される。
【０１４３】
この場合、式（２１）中の係数Ｆ（これは到達則のゲインを規定する）は、次式（２２）の条件を満たすように設定される。
【０１４４】
【数２２】
2006177369.tif 000024
【０１４５】
この式（２２）の条件は、外乱等が無い場合において、切換関数σの値を安定に超平面σ＝０に収束させるための条件である。尚、式（２２）中の好ましい条件は、切換関数σの値が超平面σ＝０に対して振動的な変化（所謂チャタリング）を生じるのを抑制する上で好適な条件である。
【０１４６】
次に、前記適応則入力Ｕadpは、本実施形態では、基本的には次式（２３）により求められる。ここで、式（２３）中のΔＴは排気側制御ユニット７ａの制御サイクルの周期である）。
【０１４７】
【数２３】
2006177369.tif 000025
【０１４８】
すなわち、適応則入力Ｕadpは、排気系Ｅ及び空燃比操作系の無駄時間を考慮し、前記合計設定無駄時間ｄ後までの切換関数σの値と排気側制御ユニット７ａの制御サイクルの周期ΔＴとの積の積算値（これは切換関数σの値の積分値に相当する）に比例させるように決定する。
【０１４９】
この場合、式（２３）中の係数Ｇ（これは適応則のゲインを規定する）は、次式（２４）の条件を満たすように設定する。
【０１５０】
【数２４】
2006177369.tif 000026
【０１５１】
この式（２４）の条件は、外乱等によらずに切換関数σの値を安定に超平面σ＝０に収束させるための条件である。
【０１５２】
尚、前記式（１８）、（２２）、（２４）の設定条件のより具体的な導出の仕方については、本願出願人が既に特開平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を算出する。
【０１５５】
【数２５】
2006177369.tif 000027
【０１５６】
また、本実施形態では、実際には、推定器２６により前述の如く逐次求められた推定偏差出力VO2バーの時系列データを制御すべき状態量とし、前記式（１７）により設定された切換関数σに代えて、次式（２６）により切換関数σバーを定義する（この線形関数σバーは、前記式（１７）の偏差出力VO2の時系列データを推定偏差出力VO2バーの時系列データで置き換えたものに相当する）。
【０１５７】
【数２６】
2006177369.tif 000028
【０１５８】
そして、スライディングモード制御器２７は、前記式（２１）により前記到達則入力Ｕrchを決定するための切換関数σの値の代わりに、前記式（２６）により表される切換関数σバーの値を用いて次式（２７）により制御サイクル毎の到達則入力Ｕrchを算出する。
【０１５９】
【数２７】
2006177369.tif 000029
【０１６０】
同様に、スライディングモード制御器２７は、前記式（２３）により前記適応則入力Ｕadpを決定するための切換関数σの値の代わりに、前記式（２６）により表される線形関数σバーの値を用いて次式（２８）により制御サイクル毎の適応則入力Ｕadpを算出する。
【０１６１】
【数２８】
2006177369.tif 000030
【０１６２】
尚、前記式（２５），（２７），（２８）により等価制御入力Ｕ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)を求める。
【０１６６】
【数２９】
2006177369.tif 000031
【０１６７】
以上が本実施形態でスライディングモード制御器２７により目標空燃比KCMDを逐次求めるための基本的アルゴリズムである。
【０１６８】
尚、本実施形態では、スライディングモード制御器２７による適応スライディングモード制御の安定性を判別して、前記ＳＬＤ操作入力Ｕslの値を制限したりするのであるが、これについては後述する。
【０１６９】
次に、前記機関側制御ユニット７ｂの大局的フィードバック制御部１５、特に前記適応制御器１８をさらに説明する。
【０１７０】
前記図１を参照して、大局的フィードバック制御部１５は、前述のようにＬＡＦセンサ５の出力KACTを目標空燃比KCMDに収束させるようにフィードバック制御を行うものである。このとき、このようなフィードバック制御を周知のＰＩＤ制御だけで行うようにすると、エンジン１の運転状態の変化や経年的特性変化等、動的な挙動変化に対して、安定した制御性を確保することが困難である。
【０１７１】
前記適応制御器１８は、上記のようなエンジン１の動的な挙動変化を補償したフィードバック制御を可能とする漸化式形式の制御器であり、Ｉ．Ｄ．ランダウ等により提唱されているパラメータ調整則を用いて、図１２に示すように、複数の適応パラメータを設定するパラメータ調整部３０と、設定された適応パラメータを用いて前記フィードバック操作量KSTRを算出する操作量算出部３１とにより構成されている。
【０１７２】
ここで、パラメータ調整部３０について説明すると、ランダウ等の調整則では、離散系の制御対象の伝達関数Ｂ（Ｚ-1）／Ａ（Ｚ-1）の分母分子の多項式を一般的に下記の式（３０），（３１）のようにおいたとき、パラメータ調整部３０が設定する適応パラメータθハット(j)（ｊは機関側制御ユニット７ｂの制御サイクルの番数を示す）は、式（３２）のようにベクトル（転置ベクトル）で表される。また、パラメータ調整部３０への入力ζ(j)は、式（３３）のように表される。この場合、本実施形態では、大局的フィードバック制御部１５の制御対象であるエンジン１が一次系で３制御サイクル分の無駄時間ｄp（エンジン１の燃焼サイクルの３サイクル分の時間）を持つプラントと考え、式（３０）〜式（３３）でｍ＝ｎ＝１，ｄp＝３とし、設定する適応パラメータはｓ0，ｒ1，ｒ2，ｒ3，ｂ0の５個とした（図１２参照）。尚、式（３３）の上段式及び中段式におけるｕs，ｙsは、それぞれ、制御対象への入力（操作量）及び制御対象の出力（制御量）を一般的に表したものであるが、本実施形態では、上記入力をフィードバック操作量KSTR、制御対象（エンジン１）の出力を前記ＬＡＦセンサ５の出力KACT（触媒上流空燃比の検出値）とし、パラメータ調整部３０への入力ζ(j)を、式（３３）の下段式により表す（図１２参照）。
【０１７３】
【数３０】
2006177369.tif 000032
【０１７４】
【数３１】
2006177369.tif 000033
【０１７５】
【数３２】
2006177369.tif 000034
【０１７６】
【数３３】
2006177369.tif 000035
【０１７７】
ここで、前記式（３２）に示される適応パラメータθハットは、適応制御器１８のゲインを決定するスカラ量要素ｂ0ハット（ｊ）、操作量を用いて表現される制御要素ＢRハット（Ｚ-1，ｊ）、及び制御量を用いて表現される制御要素Ｓ（Ｚ-1，ｊ）からなり、それぞれ、次式（３４）〜（３６）により表現される（図１２の操作量算出部３１のブロック図を参照）。
【０１７８】
【数３４】
2006177369.tif 000036
【０１７９】
【数３５】
2006177369.tif 000037
【０１８０】
【数３６】
2006177369.tif 000038
【０１８１】
パラメータ調整部３０は、これらのスカラ量要素や制御要素の各係数を設定して、それを式（３２）に示す適応パラメータθハットとして操作量算出部３１に与えるもので、現在から過去に渡るフィードバック操作量KSTRの時系列データとＬＡＦセンサ５の出力KACTとを用いて、該出力KACTが前記目標空燃比KCMDに一致するように、適応パラメータθハットを算出する。
【０１８２】
この場合、具体的には、適応パラメータθハットは、次式（３７）により算出する。
【０１８３】
【数３７】
2006177369.tif 000039
【０１８４】
同式（３７）において、Γ(j)は、適応パラメータθハットの設定速度を決定するゲイン行列（この行列の次数はｍ＋ｎ＋ｄp）、ｅアスタリスク(j)は、適応パラメータθハットの推定誤差を示すもので、それぞれ式（３８），（３９）のような漸化式で表される。
【０１８５】
【数３８】
2006177369.tif 000040
【０１８６】
【数３９】
2006177369.tif 000041
【０１８７】
ここで、式（３９）中の「Ｄ（Ｚ-1）」は、収束性を調整するための、漸近安定な多項式であり、本実施形態ではＤ（Ｚ-1）＝１としている。
【０１８８】
尚、式（３８）のλ1(j)，λ2(j)の選び方により、漸減ゲインアルゴリズム、可変ゲインアルゴリズム、固定トレースアルゴリズム、固定ゲインアルゴリズム等の種々の具体的なアルゴリズムが得られる。エンジン１の燃料噴射あるいは空燃比等の時変プラントでは、漸減ゲインアルゴリズム、可変ゲインアルゴリズム、固定ゲインアルゴリズム、および固定トレースアルゴリズムのいずれもが適している。
【０１８９】
前述のようにパラメータ調整部３０により設定される適応パラメータθハット（ｓ0，ｒ1，ｒ2，ｒ3，ｂ0）と、前記目標空燃比生成処理部１３により決定される目標空燃比KCMDとを用いて、操作量算出部３１は、次式（４０）の漸化式により、フィードバック操作量KSTRを求める。図１２の操作量算出部３１は、同式（４０）の演算をブロック図で表したものである。
【０１９０】
【数４０】
2006177369.tif 000042
【０１９１】
尚、式（４０）により求められるフィードバック操作量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を算出する。
【０２１１】
上記のようにしてフィードバック補正係数KFBが算出された後、さらに、前記ＳＴＥＰｆあるいはＳＴＥＰｇで決定された目標空燃比KCMDに応じた第２補正係数KCMDMが第２補正係数算出部１０により算出される（ＳＴＥＰｊ）。
【０２１２】
次いで、機関側制御ユニット７ｂは、前述のように求められた基本燃料噴射量Ｔimに、第１補正係数KTOTAL、第２補正係数KCMDM、フィードバック補正係数KFB、及び各気筒毎のフィードバック補正係数#nKLAFを乗算することで、各気筒毎の出力燃料噴射量#nＴoutを求める（ＳＴＥＰｋ）。そして、この各気筒毎の出力燃料噴射量#nＴoutが、付着補正部２３によって、エンジン１の吸気管の壁面への燃料の付着を考慮した補正を施された後（ＳＴＥＰｍ）、エンジン１の図示しない燃料噴射装置に出力される（ＳＴＥＰｎ）。そして、エンジン１にあっては、各気筒毎の出力燃料噴射量#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を目標値VO2/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)（式（８）参照）を算出する（ＳＴＥＰ７−７）。
【０２３０】
さらに同定器２５は、この同定偏差id/eの時系列データに対して、前記式（９）により移動平均処理（フィルタリング処理）を施すことにより、前記誤差データid/ef(k)を求める（ＳＴＥＰ７−８）。このとき、移動平均タップ数Ｎは、今回の制御サイクルで前記ＳＴＥＰ７−４において求められた値が用いられる。
【０２３１】
次いで、同定器２５は、ＳＴＥＰ７−８で求めた誤差データid/ef(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の組み合わせを規定する領域である。
【０２３９】
【数４１】
2006177369.tif 000043
【０２４０】
すなわち、式（４１）により表される系が安定となる条件は、その系の極（これは、次式（４２）により与えられる）が複素平面上の単位円内に存在することである。
【０２４１】
【数４２】
2006177369.tif 000044
【０２４２】
そして、図１８の三角形領域Ｑ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である場合には、それぞれ、同定ゲイン係数a1(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)バー，VO2(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バーと、同定器２５により同定された排気系モデルのパラメータであるゲイン係数a1，a2，b1の同定値（同定ゲイン係数a1ハット，a2ハット，b1ハット）とを用い、推定偏差出力VO2バーにより示される合計設定無駄時間ｄ後のＯ2センサ６の出力VO2/OUTの推定値を目標値VO2/TARGETに収束させるように目標空燃比KCMDを求める。
【０３０３】
このとき、特に本願発明に関連して、同定器２５は前述のように前記同定偏差id/eにフィルタリング処理（移動平均処理）を施してなる誤差データid/efを最小化するように重み付き最小２乗法のアルゴリズムにより同定ゲイン係数a1ハット，a2ハット，b1ハットを求める。さらに、このとき、排気系Ｅの周波数特性に影響を及ぼす排ガス流量の推定値、すなわち推定排ガスボリュームABSVに応じて移動平均タップ数Ｎを適宜変更することにより、上記フィルタリング処理の対周波数ゲイン特性が適宜変更される。これにより、排気系Ｅの周波数特性の変化によらずに、排気系モデルの周波数特性と実際の排気系Ｅの周波数特性とが好適に整合するような同定ゲイン係数a1ハット，a2ハット，b1ハットを求めることができる。
【０３０４】
このため、排気系モデルを基礎とするアルゴリズムにより、同定ゲイン係数a1ハット，a2ハット，b1ハットを用いて前記推定器２６が求める推定偏差出力VO2バーの信頼性が高まる（精度がよくなる）。同時に、排気系モデルを基礎とする適応スライディングモード制御の処理により、上記推定偏差出力VO2バーと同定ゲイン係数a1ハット，a2ハット，b1ハットとを用いてスライディングモード制御器２７が求める目標空燃比KCMDも、Ｏ2センサ６の出力VO2/OUTを目標値VO2/TARGETに収束させる上で好適なものとなる。
【０３０５】
さらに、本実施形態では、目標空燃比KCMDを求めるために、応答指定型制御の一形態としての適応スライディングモード制御の処理を用いるため、排気系モデルの周波数特性と実際の排気系Ｅの周波数特性との整合性が外乱等の影響で多少低下したとしても、Ｏ2センサ出力のVO2/OUTの目標値VO2/TARGETへの収束制御が不安定となるような事態を極力排除することができる。
【０３０６】
この結果、本実施形態では、Ｏ2センサ６の出力VO2/OUTの目標値VO2/TARGETへの収束制御を安定性や速応性を高めることができ、ひいては、触媒装置３の浄化性能を安定して良好に確保することができる。
【０３０７】
次に、本発明の内燃機関の空燃比制御装置の第２実施形態を説明する。尚、本実施形態は、基本的には前記推定器２６による演算処理のみが前述の実施形態と相違するものであるので、説明に際しての参照符号は前述の実施形態と同一のものを用いる。
【０３０８】
前述の実施形態では、排気系Ｅの無駄時間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−FLAF/BASE）の過去値の時系列データkact(k-j)（ｊ＝1，2，…，d1）とを用いて次式（４３）により表される。
【０３１０】
【数４３】
2006177369.tif 000045
【０３１１】
ここで、式（４３）において、α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」で置き換えた式により求めることとなる。
【０３１５】
かかる本実施形態の制御装置にあっては、同定器２５の処理は、前記第１実施形態と全く同一であるので、排気系モデルの周波数特性と排気系Ｅの周波数特性とが整合するような同定ゲイン係数a1ハット，a2ハット，b1ハットを求めることができる。従って、前記第１実施形態と同様の作用効果を奏することができる。
【０３１６】
尚、本発明の制御装置は、前述した実施形態に限定されるものではなく、例えば次のような変形態様も可能である。
【０３１７】
すなわち、前記実施形態では、同定器２５、推定器２６、スライディングモード制御器２７の演算処理において、ＬＡＦセンサ５の偏差出力kactやＯ2センサ６の偏差出力VO2、目標偏差空燃比kcmdを用いたが、ＬＡＦセンサ５の出力KACTやＯ2センサ６の出力VO2/OUT、目標空燃比KCMDをそのまま用いて同定器２５、推定器２６、スライディングモード制御器２７の演算処理を行うようにすることも可能である。
【０３１８】
さらに、前記同定器２５の処理では、排気系モデルの同定偏差出力VO2ハットを求めるために（式（４）参照）、排気系Ｅの入力である触媒上流空燃比を表すデータとしてＬＡＦセンサ５の出力KACTを用いたが、前記式（４）の右辺中の「kact(k-d1-1)」は、前記式（２）から明らかなようにkact(k-d1-1)＝kcmd(k-d-1)である。従って、同定偏差出力VO2ハットを求めるために、ＬＡＦセンサ５の出力KACTの代わりに、スライディングモード制御器２７が求める目標空燃比KCMDと用いるようにすることも可能である。
【０３１９】
また、前記各実施形態では、排気側制御ユニット７ａで生成する操作量を目標空燃比KCMD（排気系Ｅの目標入力）とし、その目標空燃比KCMDに従ってエンジン１で燃焼させる混合気の空燃比、ひいては触媒上流空燃比を操作するようにしたが、例えばエンジン１の燃料供給量の補正量を排気側制御ユニット７ａで決定するようにすることも可能であり、また、目標空燃比KCMDからフィードフォワード的にエンジン１の燃料供給量を調整して空燃比を操作するようにすることも可能である。
【０３２０】
また、前記各実施形態では、スライディングモード制御器２７は、外乱の影響を考慮した適応則（適応アルゴリズム）を加味した適応スライディングモード制御の処理を用いたが、該適応則を省略した通常的なスライディングモード制御の処理を用いるようにしてもよい。さらには、スライディングモード制御器２７に代えて、他の形態の応答指定型制御器等を用いることも可能である。
【０３２１】
さらに、前記各実施形態では、前記排気系Ｅを制御対象とする制御装置を例にとって説明したが、本発明はこのような制御装置に限られるものではない。以下に本発明の制御装置の第３実施形態を図２３を参照して説明する。
【０３２２】
図２３において、３２は本実施形態における制御対象としてのプラントであり、このプラント３２には、流量制御器３３（アクチュエータ）により流量を調整可能なアルカリ液が入力される。そして、該プラント３２は、与えられたアルカリ液に酸性液を合流させ、それを攪拌器３４により攪拌してなる混合液を出力するものである。
【０３２３】
本実施形態の制御装置は、このようなプラント３２が出力する混合液（アルカリ液と酸性液との混合液）のｐＨが所望のｐＨ（例えば中性に相当するｐＨ値）になるようにプラント３２に入力されるアルカリ液の流量を制御するもので、その制御のために次のような構成を備えている。
【０３２４】
すなわち、本実施形態の制御装置は、プラント３２の出力側に該プラント３２の出力である前記混合液のｐＨを検出すべく設けられたｐＨセンサ３５（検出手段）と、プラント３２の入力側に該プラントの入力であるアルカリ液の流量を検出すべく設けられた流量センサ３６（第２の検出手段）と、これらのｐＨセンサ３５及び流量センサ３６のそれぞれの出力V1/OUT，V2/OUTに基づき後述の演算処理を行う制御ユニット３７とを具備する。
【０３２５】
制御ユニット３７は、マイクロコンピュータ等により構成されたもので、ｐＨセンサ３５の出力V1/OUTとその目標値V1/TARGET（これは前記混合液の目標ｐＨに相当する）との偏差V1（＝V1/OUT−V1/TARGET）をｐＨセンサ３５の出力を示すデータとして算出する減算処理部３８と（以下、偏差V1をｐＨセンサ３５の偏差出力V1という）、流量センサ３６の出力V2/OUTと所定の基準値V2/REF（これは任意に設定してよい）との偏差V2（＝V2/OUT−V2/REF）を流量センサ３６の出力を示すデータとして算出する減算処理部３９と（以下、偏差V2を流量センサ３６の偏差出力V2という）、上記偏差出力V1，V2に基づいて、ｐＨセンサ３５の出力V1/OUTをその目標値V1/TARGETに収束させるためにプラント３２に与えるべきアルカリ液の目標流量V2CMDをプラント３２への入力を規定する操作量として生成する操作量生成部４０（操作量生成手段）と、流量センサ３６の出力V2/OUT（検出流量）を目標流量V2CMDに収束させるように前記流量制御器３３の動作量（具体的には流量制御器３３が備える弁の開度）をフィードバック制御するフィードバック制御部４１（アクチュエータ制御手段）とを具備する。
【０３２６】
尚、以下の説明において、前記目標流量V2CMDの前記基準値V2/REFに対する偏差（＝V2CMD−V2/REF）を目標偏差流量v2cmd（これは前述の実施形態における目標偏差空燃比kcmdに対応する）と称する。また、流量制御器３３及びフィードバック制御部４１を合わせたシステム、すなわち、目標流量V2CMDから流量センサ３４が検出する流量のアルカリ液を生成するシステムを流量操作系（これは前述の実施形態における空燃比操作系に対応する）と称する。
【０３２７】
前記操作量生成部４０は、具体的な図示は省略するが、前述の実施形態の目標空燃比生成処理部１３と同様に同定器、推定器及びスライディングモード制御器を機能的構成として備えている。そして、操作量生成部４０は、例えば前記式（１）のVO2，kactをそれぞれ前記偏差出力V1，V2で置き換えて成るプラント３２のモデルと、前記式（２）のkact，kcmdをそれぞれ前記偏差出力V2、目標偏差流量v2cmdで置き換えて成る前記流量操作系のモデルとに基づいて、前記第１実施形態の目標空燃比生成処理部１３の同定器２５、推定器２６及びスライディングモード制御器２７と同様の演算処理を行う。
【０３２８】
より具体的には、操作量生成部４０は、プラント３２のモデルのパラメータの同定値（これは前述の実施形態における同定ゲイン係数a1ハット、a2ハット、b1ハットに対応する）の算出や、プラント３２に存する無駄時間と流量操作系に存する無駄時間とを合わせた合計無駄時間後のｐＨセンサ３５の出力V1/OUTもしくは偏差出力V1の推定値（これは前述の実施形態における推定偏差出力VO2 バーに対応する）の算出、上記パラメータの同定値やｐＨセンサ３３の出力V1/OUTもしくは偏差出力V1の推定値を用いた前記目標流量V2CMD（これは前述の実施形態における目標空燃比KCMDに対応する）の算出を行う。
【０３２９】
この場合、プラント３２のモデルにおける無駄時間（前記式（１）のd1に相当するもの）の設定値や、流量操作系のモデルにおける無駄時間の設定値（前記式（２）のd2に相当するもの）は、プラント３２や流量制御器３１の動作特性、制御ユニット３７の制御サイクルの周期等を考慮し、あらかじめ実験等を通じて、例えば、ある一定値に定められる。あるいは、それらのプラント３２や流量操作系の実際の無駄時間が、例えば攪拌器３４の動作状態、流量制御器３３の動作状態等によって変化するような場合には、モデルにおける無駄時間の設定値を、該攪拌器３４の動作状態や流量制御器３３の動作状態等に応じて可変的に決定するようにしてもよい。
【０３３０】
また、プラント３２のモデルのパラメータの同定処理においては、プラント３２のモデルに流量センサ３６の出力V2/OUT（流量の検出値）を入力したときの該モデルの出力と、ｐＨセンサ３５の出力V1/OUTとの偏差（これや前記第１実施形態における同定偏差id/eに相当する）に、前記第１実施形態と同様に、フィルタリング処理（例えば移動平均処理）を施してなる誤差データを最小化するように、最小２乗法等のアルゴリズムにより該プラント３２のモデルのパラメータが同定される。そして、このとき、上記フィルタリング処理の周波数に対するゲイン特性は、プラント３２の入力変化（流量センサ３６の出力V2/OUTの変化）に対する出力変化（ｐＨセンサ３５の出力V1/OUTの変化）のゲインの周波数特性に影響を及ぼす特性パラメータ（例えば、流量制御器３３に供給されるアルカリ液のｐＨや、プラント３２内の酸性液のｐＨ等）に応じて適宜変更される。尚、上記フィルタリング処理の対周波数ゲイン特性は、基本的には、プラント３２の周波数特性において、比較的高ゲインとなる周波数域において、該フィルタリング処理のゲインが相対的に高くなるような特性とされる。
【０３３１】
さらに、同定器が同定するプラント３２のパラメータの値を制限するに際しては、ｐＨセンサ３５の出力V1/OUTの目標値V1/TARGETへの収束制御の安定性や、前記目標流量V2CMDの安定性もしくはそれに応じた流量制御器３３の動作の安定性等を考慮して、実験やシミュレーションを通じて上記パラメータの値もしくはその組み合わせを制限するための条件を前述の実施形態と同様に設定すればよい。この場合、その制限条件は、プラント３２の無駄時間等に応じて可変化するようにしてもよい。
【０３３２】
尚、前記フィードバック制御部４１は、例えば前述の実施形態の大局的フィードバック制御部１５と同様に、図示しないＰＩＤ制御器あるいは適応制御器等により、流量センサ３６の出力V2/OUT（検出流量）を前記目標流量V2CMDに収束させるように流量制御器３３の動作（弁開度）をフィードバック制御する。
【０３３３】
このような本実施形態の装置によれば、ｐＨセンサ３５の出力V1/OUT、すなわちプラント３２が生成する混合液のｐＨの所望のｐＨ（目標ｐＨ）への制御を安定して良好に行うことができる。
【０３３４】
尚、本実施形態のプラント３２の制御装置は、前記第１実施形態について説明した変形態様と同様の各種の変形態様が可能である。また、流量操作系の無駄時間が十分に小さいような場合には、前記第２実施形態と同様の形態の制御を行うようにすることも可能である。
【図面の簡単な説明】
【０３３５】
【図１】本発明の制御装置の第１実施形態の全体的システム構成を示すブロック図。
【図２】図１の装置で使用する酸素濃度センサ（Ｏ2センサ）の出力特性図。
【図３】図１の装置の目標空燃比生成処理部の基本構成を示すブロック図。
【図４】図３の目標空燃比生成処理部の無駄時間設定手段の処理を説明するための線図。
【図５】図１の装置の制御対象である排気系の周波数特性を示す線図。
【図６】図３の目標空燃比生成処理部の同定器の処理を説明するための線図。
【図７】図３の目標空燃比生成処理部の同定器の処理を説明するための線図。
【図８】図３の目標空燃比生成処理部の同定器の処理を説明するための線図。
【図９】図３の目標空燃比生成処理部の同定器の処理を説明するための線図。
【図１０】図３の目標空燃比生成処理部の同定器の処理を説明するためのブロック図。
【図１１】図３の目標空燃比生成処理部のスライディングモード制御器に係わる説明図。
【図１２】図１の装置の適応制御器の基本構成を示すブロック図。
【図１３】図１の装置の機関側制御ユニット（７ｂ）の処理を示すフローチャート。
【図１４】図１３のフローチャートにおけるサブルーチン処理を示すフローチャート。
【図１５】図１の装置の排気側制御ユニット（７ａ）の全体的処理を示すフローチャート。
【図１６】図１５のフローチャートのサブルーチン処理を示すフローチャート。
【図１７】図１５のフローチャートのサブルーチン処理を示すフローチャート。
【図１８】図１７のフローチャートの部分的処理の説明図。
【図１９】図１７のフローチャートの部分的処理の説明図。
【図２０】図１７のフローチャートの部分的処理の説明図。
【図２１】図１７のフローチャートのサブルーチン処理を示すフローチャート。
【図２２】図１５のフローチャートのサブルーチン処理を示すフローチャート。
【図２３】本発明の他の実施形態のシステム構成を示すブロック図。
【符号の説明】
【０３３６】
Ｅ…排気系（制御対象）、１…エンジン（内燃機関）、２…排気管（排気通路）、３…触媒装置、６…Ｏ2センサ（検出手段）、７ａ…排気側制御ユニット（操作量生成手段）、２５…同定器（同定手段）、２７…スライディングモード制御器、３２…プラント（制御対象）、３５…ｐＨセンサ（検出手段）、４０…操作量生成部（操作量生成手段）。
【図１】
2006177369.tif 000046
【図２】
2006177369.tif 000047
【図３】
2006177369.tif 000048
【図４】
2006177369.tif 000049
【図５】
2006177369.tif 000050
【図６】
2006177369.tif 000051
【図７】
2006177369.tif 000052
【図８】
2006177369.tif 000053
【図９】
2006177369.tif 000054
【図１０】
2006177369.tif 000055
【図１１】
2006177369.tif 000056
【図１２】
2006177369.tif 000057
【図１３】
2006177369.tif 000058
【図１４】
2006177369.tif 000059
【図１５】
2006177369.tif 000060
【図１６】
2006177369.tif 000061
【図１７】
2006177369.tif 000062
【図１８】
2006177369.tif 000063
【図１９】
2006177369.tif 000064
【図２０】
2006177369.tif 000065
【図２１】
2006177369.tif 000066
【図２２】
2006177369.tif 000067
【図２３】
2006177369.tif 000068