(57)【特許請求の範囲】
【請求項１】
内燃機関の排気通路に設けた触媒装置の下流側に該触媒装置を通過した排ガスの特定成分の濃度を検出すべく配置した排ガスセンサと、該排ガスセンサの出力を所定の目標値に収束させるように内燃機関で燃焼させる混合気の空燃比を操作するための操作量を逐次生成する操作量生成手段と、該操作量生成手段が生成した操作量の値を所定の許容範囲内の値に制限するリミット処理を行うリミット処理手段とを具備し、該リミット処理手段のリミット処理を施した操作量に基づき前記混合気の空燃比を操作する内燃機関の空燃比制御装置において、前記リミット処理の許容範囲を前記操作量生成手段が生成した操作量に応じて可変的に設定する手段を前記リミット処理手段に備え、該リミット処理手段による前記許容範囲の可変的な設定処理は、前記操作量生成手段が生成した操作量の値が該許容範囲の上限値及び下限値のいずれか一方の限界値側に該許容範囲から逸脱したとき、その逸脱側の限界値を該許容範囲の拡大方向に変化させて該許容範囲を更新する処理と、前記操作量生成手段が生成した操作量の値が該許容範囲内に存するとき、少なくとも該許容範囲の上限値及び下限値のいずれか一方を該許容範囲の縮小方向に変化させて該許容範囲を更新する処理とを含むことを特徴とする内燃機関の空燃比制御装置。
【請求項２】
前記リミット処理手段による前記許容範囲の可変的な設定処理は、前記操作量生成手段が生成した操作量の値が該許容範囲の上限値及び下限値のいずれか一方の限界値側に該許容範囲から逸脱したとき、その逸脱側の限界値と反対側の限界値を該許容範囲の縮小方向に変化させて該許容範囲を更新する処理を含むことを特徴とする請求項１記載の内燃機関の空燃比制御装置。
【請求項３】
内燃機関の排気通路に設けた触媒装置の下流側に該触媒装置を通過した排ガスの特定成分の濃度を検出すべく配置した排ガスセンサと、該排ガスセンサの出力を所定の目標値に収束させるように内燃機関で燃焼させる混合気の空燃比を操作するための操作量を逐次生成する操作量生成手段と、該操作量生成手段が生成した操作量の値を所定の許容範囲内の値に制限するリミット処理を行うリミット処理手段とを具備し、該リミット処理手段のリミット処理を施した操作量に基づき前記混合気の空燃比を操作する内燃機関の空燃比制御装置において、前記リミット処理の許容範囲を前記操作量生成手段が生成した操作量に応じて可変的に設定する手段を前記リミット処理手段に備え、前記リミット処理手段による前記許容範囲の可変的な設定処理は、前記操作量生成手段が生成した操作量の値が前記許容範囲の上限値よりも大きいか否かに応じてそれぞれ該上限値を該許容範囲の拡大方向、縮小方向に変化させると共に、前記操作量生成手段が生成した操作量の値が前記許容範囲の下限値よりも小さいか否かに応じてそれぞれ該下限値を該許容範囲の拡大方向、縮小方向に変化させることにより該許容範囲を更新する処理から成ることを特徴とする内燃機関の空燃比制御装置。
【請求項４】
前記リミット処理手段が前記許容範囲の拡大方向に前記上限値又は下限値を変化させる際における該上限値又は下限値の変化量は、前記許容範囲の縮小方向に前記上限値又は下限値を変化させる際における該上限値又は下限値の変化量よりも大きな値に定められていることを特徴とする請求項１〜３のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項５】
前記リミット処理手段は、前記許容範囲の更新前の許容範囲により前記リミット処理を行うことを特徴とする請求項１〜４のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項６】
前記リミット処理手段は、前記操作量生成手段が生成した操作量の値に応じて前記許容範囲の上限値又は下限値を変化させるとき、その変化後の上限値又は下限値を、該上限値又は下限値にそれぞれに対応してあらかじめ定めた所定の範囲内の値に制限することを特徴とする請求項１〜５のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項７】
前記操作量生成手段は、前記排ガスセンサの出力と前記所定の目標値との偏差を成分とする切換関数を用いるスライディングモード制御の処理により該切換関数の値を０に収束させるように前記操作量を生成することを特徴とする請求項１〜６のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項８】
前記リミット処理手段は、前記排ガスセンサの出力が安定であるか否かを逐次判断する手段を具備し、該排ガスセンサの出力が不安定であると判断したとき、少なくとも該排ガスの出力が不安定であるとの判断が継続している間は、前記許容範囲を強制的にあらかじめ定めた所定の範囲に設定することを特徴とする請求項７記載の内燃機関の空燃比制御装置。
【請求項９】
前記リミット処理手段は、前記排ガスセンサの出力が不安定であると判断するとき、その不安定さの度合いを複数段階に分別して判断する手段を具備し、該排ガスセンサの出力が不安定であると判断したときに該リミット処理手段が前記許容範囲として設定する前記所定の範囲は、該リミット処理手段が判断する前記不安定さの度合いが高い程、狭くなるように該不安定さの度合いに応じて定められていることを特徴とする請求項８記載の内燃機関の空燃比制御装置。
【請求項１０】
前記リミット処理手段は、前記スライディングモード制御の処理に用いる切換関数の値に基づき、前記排ガスセンサの出力が安定であるか否かの判断を行うことを特徴とする請求項８記載の内燃機関の空燃比制御装置。
【請求項１１】
前記リミット処理手段は、前記スライディングモード制御の処理に用いる切換関数の値に基づき、前記排ガスセンサの出力が安定であるか否かの暫定的な判断を逐次行い、その暫定的な判断結果が所定期間内において不安定となる頻度に基づき前記排ガスセンサの出力が安定であるか否か、及び前記不安定さの度合いの判断を行うことを特徴とする請求項９記載の内燃機関の空燃比制御装置。
【請求項１２】
前記操作量生成手段が生成する操作量並びに前記許容範囲の上限値及び下限値は、前記混合気の空燃比の所定の基準値に対する偏差量であり、前記操作量生成手段が生成した操作量に応じて前記所定の基準値を可変的に設定する基準値可変設定手段を具備したことを特徴とする請求項１〜６のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項１３】
前記操作量生成手段が生成する操作量並びに前記許容範囲の上限値及び下限値は、前記内燃機関の空燃比の所定の基準値に対する偏差量であり、前記操作量生成手段が生成した操作量に応じて前記所定の基準値を可変的に設定する基準値可変設定手段を具備したことを特徴とする請求項７〜１２のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項１４】
前記スライディングモード制御は適応スライディングモード制御であると共に、該適応スライディングモード制御により前記操作量生成手段が生成する操作量は、該適応スライディングモード制御の適応則に基づく適応則成分を含み、前記基準値可変設定手段は、該操作量の適応則成分の値に応じて前記所定の基準値を可変的に設定することを特徴とする請求項１３記載の内燃機関の空燃比制御装置。
【請求項１５】
前記基準値可変設定手段は、前記操作量の適応則成分の値の、あらかじめ定めた所定値又は該所定値を含む該所定値の近傍範囲に対する大小関係に応じて前記所定の基準値を増減させることにより該基準値を可変的に設定することを特徴とする請求項１４記載の内燃機関の空燃比制御装置。
【請求項１６】
前記基準値可変設定手段は、前記排ガスセンサの出力が安定であるか否かを逐次判断する手段を具備し、該排ガスセンサの出力が不安定であると判断したとき、前記操作量によらずに前記基準値を所定値に保持することを特徴とする請求項１３〜１５のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項１７】
前記基準値可変設定手段は、前記スライディングモード制御の処理に用いる切換関数の値に基づき、前記排ガスセンサの出力が安定であるか否かの判断を行うことを特徴とする請求項１６記載の内燃機関の空燃比制御装置。
【請求項１８】
前記基準値可変設定手段は、前記排ガスセンサの出力が前記目標値に略収束しているか否かを判断する手段を具備し、該排ガスセンサの出力が該目標値へ未収束状態であると判断したとき、前記操作量によらずに前記基準値を所定値に保持することを特徴とする請求項１２〜１７のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項１９】
前記リミット処理手段は、前記内燃機関の運転状態を把握し、その把握した運転状態に応じて前記許容範囲を設定する手段を具備することを特徴とする請求項１〜１８のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項２０】
前記排ガスセンサは酸素濃度センサであると共に、前記リミット処理手段が把握する前記内燃機関の運転状態は該内燃機関の始動後の経過時間を含み、該リミット処理手段は、該内燃機関の始動後の経過時間が所定時間に達するまでは、前記許容範囲の上限値及び下限値のうち、少なくとも前記混合気の空燃比のリッチ側に対応する限界値があらかじめ定めた所定値よりも前記許容範囲の縮小方向の値になるのを禁止するよう前記許容範囲を設定することを特徴とする請求項１９記載の内燃機関の空燃比制御装置。
【請求項２１】
前記排ガスセンサは酸素濃度センサであると共に、前記リミット処理手段が把握する前記内燃機関の運転状態は該内燃機関のフュエルカット後の経過時間を含み、該リミット処理手段は、該内燃機関のフュエルカット後の経過時間が所定時間に達するまでは、前記許容範囲の上限値及び下限値のうち、少なくとも前記混合気の空燃比のリッチ側に対応する限界値があらかじめ定めた所定値よりも前記許容範囲の縮小方向の値になるのを禁止するよう前記許容範囲を設定することを特徴とする請求項１９又は２０記載の内燃機関の空燃比制御装置。
【請求項２２】
前記排ガスセンサは酸素濃度センサであると共に、前記リミット処理手段が把握する前記内燃機関の運転状態は該内燃機関がその負荷の駆動を開始してからの経過時間を含み、該リミット処理手段は、該内燃機関がその負荷の駆動を開始してからの経過時間が所定時間に達するまでは、前記許容範囲の上限値及び下限値のうち、少なくとも前記混合気の空燃比のリーン側に対応する限界値があらかじめ定めた所定値よりも前記許容範囲の拡大方向の値になるのを禁止するよう前記許容範囲を設定することを特徴とする請求項１９〜２１のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項２３】
前記リミット処理手段が把握する前記内燃機関の運転状態は該内燃機関のアイドリング運転状態であるか該アイドリング運転以外の運転状態であるかを含み、前記リミット処理手段は、該内燃機関のアイドリング運転状態であるとき、前記操作量生成手段が生成する操作量によらずにあらかじめ定めた所定の範囲を前記許容範囲として設定し、該内燃機関のアイドリング運転以外の運転状態であるときに前記操作量生成手段が生成する操作量に応じて前記許容範囲を可変的に設定することを特徴とする請求項１９〜２２のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項２４】
前記排ガスセンサは酸素濃度センサであると共に、前記内燃機関の運転モードとして、前記リミット処理手段のリミット処理を施した前記操作量に基づき前記混合気の空燃比を操作する通常運転モードと該操作量によらずに前記混合気の空燃比をリーン状態の空燃比に操作するリーン運転モードとを有しており、前記リミット処理手段が把握する前記内燃機関の運転状態は、該内燃機関の運転モードの前記リーン運転モードから前記通常運転モードへの移行時からの経過時間を含み、該リミット処理手段は、該リーン運転モードから通常運転モードへの移行時からの経過時間が所定値に達するまでは、前記許容範囲の上限値及び下限値のうち、少なくとも前記混合気の空燃比のリーン側に対応する限界値があらかじめ定めた所定値よりも前記許容範囲の拡大方向の値になるのを禁止するよう前記許容範囲を設定することを特徴とする請求項１９〜２３のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項２５】
前記触媒装置は、これを通過する排ガス中の酸素濃度が前記混合気の空燃比のリーン状態に対応した酸素濃度であるとき排ガス中の窒素酸化物を吸収し、且つ該排ガス中の酸素濃度が前記混合気の空燃比のリッチ状態に対応した酸素濃度であるとき排ガス中の窒素酸化物を還元させる触媒装置であることを特徴とする請求項２４記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の空燃比制御装置に関する。
【０００２】
【従来の技術】
従来、本願出願人は、内燃機関の排気系に設けた三元触媒等から成る触媒装置の所要の浄化性能を確保するために内燃機関の空燃比（より詳しくは内燃機関で燃焼させる混合気の空燃比。以下、同様）を操作する技術として、例えば特開平９−２７３４３８号公報等に見られるような技術を既に提案している。
【０００３】
この技術は、触媒装置を通過した排ガス中の特定成分の濃度、例えば酸素濃度を検出する排ガスセンサ（Ｏ2 センサ）を触媒装置の下流側に配置し、この排ガスセンサの出力（酸素濃度の検出値）を所定の目標値（一定値）に整定させるように内燃機関の空燃比を操作することで、触媒装置の経時劣化等によらずに該触媒装置の最適な浄化性能を確保するものである。
【０００４】
より具体的には、この技術では、前記排ガスセンサの出力を目標値に収束させるように内燃機関の空燃比を操作するための操作量を、マイクロコンピュータを用いた操作量生成手段によるフィードバック制御処理（具体的にはスライディングモード制御の処理）により逐次生成する。そして、この操作量に基づいて内燃機関の燃料供給量を調整して該内燃機関の空燃比を操作することで、前記排ガスセンサの出力を目標値に収束させるような排ガスを内燃機関に生成させ、ひいては、触媒装置の最適な浄化性能を確保するようにしている。
【０００５】
尚、前記公報の技術では、前記操作量生成手段により生成する操作量は、内燃機関の目標空燃比、あるいは内燃機関の空燃比のある所定の基準値に対する偏差の目標値（これは目標空燃比と基準値との偏差である）であるが、この他にも内燃機関の燃料供給量の補正量等であってもよく、内燃機関の空燃比を規定し得るものであればよい。
【０００６】
また、前記公報の技術では、触媒装置の下流側に設けた排ガスセンサとしてＯ2 センサを用いているが、制御したい排ガス中の成分によっては、ＮＯx センサ、ＣＯセンサ、ＨＣセンサ等、他の排ガスセンサを用い、その排ガスセンサの出力を適当な目標値に収束させるように内燃機関の空燃比を操作することで、触媒装置の所要の浄化性能を確保するようにすることも可能である。
【０００７】
ところで、上記のように触媒装置の所要の浄化性能を確保するために、該触媒装置の下流側に配置した排ガスセンサの出力を所定の目標値に収束させるようにフィードバック制御処理により前記操作量生成手段が生成する前記操作量は外乱等の影響で過大な変化を生じる（例えば該操作量がスパイク状のものとなる）場合もある。そして、このような場合に該操作量生成手段が生成した操作量をそのまま用いて内燃機関の空燃比を操作すると、該空燃比の過大な変化を生じて内燃機関の運転状態が不安定なものとなる虞がある。
【０００８】
このため、従来は、内燃機関の空燃比を実際に操作するために用いる操作量の許容範囲を、あらかじめ固定的に定めた所定範囲に設定しておく。そして、生成された操作量の値を該許容範囲内の値に制限するリミット処理を行った上で、そのリミット処理を施した操作量に基づいて内燃機関の空燃比を操作するようにしていた。このリミット処理は、より具体的には、生成された操作量が前記許容範囲の上限値あるいは下限値を超えた場合に、該操作量の値を強制的に上限値あるいは下限値に制限する処理である。
【０００９】
このようなリミット処理を行うことで、前記操作量に応じた内燃機関の空燃比の過大な変化を回避し、内燃機関の安定した運転性能を確保することが可能となる。
【００１０】
しかるに、本願発明者等のさらなる検討によって、上記のように操作量の許容範囲を固定的に設定していた従来の技術では、次のような不都合を生じることがあることが判明した。
【００１１】
すなわち、触媒装置の下流側の排ガスセンサの出力を所定の目標値に収束させる上で要求される空燃比を規定するものとして前記操作量生成手段が生成する操作量の値の範囲（変動幅）、あるいはその範囲の中心的な値は、内燃機関の運転条件（例えば大気圧、吸気温度、湿度、回転数等）や、内燃機関の燃料性状、触媒装置の状態（触媒装置の温度状態や劣化状態等）等、種々様々の要因によって変化する。
【００１２】
このため、操作量生成手段が生成する操作量の値の範囲は、外乱等による影響の少ない安定した状態であっても、前述の如く固定的に定めた許容範囲に対して、該許容範囲の上限値あるいは下限値側に偏りを生じる（生成される操作量の値の範囲の中心的な値が許容範囲の中心的な値に対してオフセットを生じる）ことがある。
【００１３】
このような場合には、操作量生成手段が生成する操作量が内燃機関の安定した運転を行う上で支障のないものであっても、その操作量に前記リミット処理を施してなる操作量は、許容範囲の上限値あるいは下限値に制限される頻度が高くなる。そして、場合によっては、該操作量が許容範囲の上限値あるいは下限値に継続的に保持されてしまうことがある。
【００１４】
しかるに、このようにリミット処理により強制的に制限した操作量は、操作量生成手段が排ガスセンサの出力を目標値に収束させるべく生成した操作量、すなわち排ガスセンサの出力を目標値に収束させる上で要求される内燃機関の空燃比を規定する操作量とは異なる。このため、上記のようにリミット処理を施した操作量が、許容範囲の上限値あるいは下限値に制限される頻度が高くなったり、あるいは、上限値あるいは下限値に継続的に保持されてしまうような状態では、排ガスセンサの出力の目標値への制御性が悪化し（排ガスセンサの出力の目標値への制御の速応性や安定性が低下する）、ひいては、触媒装置の所要の浄化性能を確保することが困難となってしまう。
【００１５】
また、操作量生成手段が生成する操作量の値の範囲が、前記許容範囲に対して、該許容範囲の上限値あるいは下限値のいずれか一方の限界値側に偏りを生じた状況では、その操作量が、外乱等の影響で一時的に他方の限界値側に大きく変化するようなスパイク状のものとなったとき、そのようなスパイク状の操作量を前記リミット処理により適正に制限することができない場合が多くなる。この結果、該操作量により規定される空燃比も過大な変化を生じることがあり、ひいては内燃機関の運転状態の安定性が損なわれる虞があった。
【００１６】
【発明が解決しようとする課題】
本発明はかかる背景に鑑み、触媒装置の下流側の排ガスセンサの出力を所定の目標値に収束させるように内燃機関の空燃比を操作するための操作量を生成し、その操作量の値を所定の許容範囲に制限するリミット処理を行った上で該操作量に基づき内燃機関の空燃比を操作する内燃機関の空燃比制御装置において、前記操作量を適正に制限して内燃機関の運転状態の安定性を確保しつつ、前記排ガスセンサの出力の目標値への制御を良好に行うことができる内燃機関の空燃比制御装置を提供することを目的とする。
【００１７】
【課題を解決するための手段】
本発明の内燃機関の空燃比制御装置の第１の態様はかかる目的を達成するために、内燃機関の排気通路に設けた触媒装置の下流側に該触媒装置を通過した排ガスの特定成分の濃度を検出すべく配置した排ガスセンサと、該排ガスセンサの出力を所定の目標値に収束させるように内燃機関で燃焼させる混合気の空燃比を操作するための操作量を逐次生成する操作量生成手段と、該操作量生成手段が生成した操作量の値を所定の許容範囲内の値に制限するリミット処理を行うリミット処理手段とを具備し、該リミット処理手段のリミット処理を施した操作量に基づき前記混合気の空燃比を操作する内燃機関の空燃比制御装置において、前記リミット処理の許容範囲を前記操作量生成手段が生成した操作量に応じて可変的に設定する手段を前記リミット処理手段に備え、該リミット処理手段による前記許容範囲の可変的な設定処理は、前記操作量生成手段が生成した操作量の値が該許容範囲の上限値及び下限値のいずれか一方の限界値側に該許容範囲から逸脱したとき、その逸脱側の限界値を該許容範囲の拡大方向に変化させて該許容範囲を更新する処理と、前記操作量生成手段が生成した操作量の値が該許容範囲内に存するとき、少なくとも該許容範囲の上限値及び下限値のいずれか一方を該許容範囲の縮小方向に変化させて該許容範囲を更新する処理とを含むことを特徴とする（請求項１記載の発明）。
【００１８】
かかる本発明によれば、前記操作量生成手段が生成した操作量に応じて前記許容範囲を可変的に設定する。これにより、前記触媒装置の下流側の排ガスセンサの出力を前記目標値に収束させるように前記内燃機関で燃焼させる混合気の空燃比を操作するための操作量、すなわち排ガスセンサの出力を目標値に収束させる上で要求される前記混合気の空燃比を規定する操作量に適した前記許容範囲を適宜設定することが可能となる。この結果、前記操作量生成手段が生成した操作量（以下の本発明の説明ではこの操作量を要求操作量ということがある）が、前記リミット処理手段のリミット処理によって必要以上に制限されたり、該制限が不十分となるような事態を回避することが可能となる。従って、本発見によれば、前記要求操作量を適正に制限して内燃機関の運転状態の安定性を確保しつつ、前記排ガスセンサの出力の目標値への制御を良好に行うことが可能となる。
【００１９】
尚、前記要求操作量としては、前記混合気の目標空燃比、該混合気の空燃比のある所定の基準値に対する偏差の目標値（目標空燃比と基準値との偏差）、内燃機関の燃料供給量の補正量等が挙げられる。
【００２０】
また、前記要求操作量を目標空燃比あるいは該目標空燃比の所定の基準値に対する偏差としたとき、該要求操作量に前記リミット処理を施した操作量（以下、この操作量を指令操作量ということがある）に基づく空燃比の操作は、それを的確に行う上では、次のように行うことが好ましい。
【００２１】
すなわち、例えば前記混合気の実際の空燃比を適当なセンサを用いて検出し、その検出値（センサの出力）を、前記指令操作量により定まる目標空燃比に収束させるようにフィードバック制御により燃料供給量等を調整することで、空燃比を目標空燃比に操作する。但し、前記指令操作量により定まる目標空燃比からマップを用いて内燃機関の燃料供給量を決定する等することで、前記混合気の空燃比をフィードフォワード的に目標空燃比に操作するようにすることも可能である。
【００２３】
また、前記排ガスセンサの出力を前記目標値に収束させる上で要求される空燃比を規定するものとして前記操作量生成手段が逐次生成する要求操作量の値の範囲（変動幅）が全体的に前記許容範囲の上限値及び下限値のいずれか一方の限界値側に偏りを生じたような状況では、該要求操作量の値は、その値が排ガスセンサの出力を目標値に収束させ、また、内燃機関の運転状態の安定性を確保する上で適正なものであっても、許容範囲から上記一方の限界値側に逸脱しやすくなる。換言すれば、該要求操作量が前記リミット処理によって強制的な制限を頻繁に受け易くなる（前記指令操作量が強制的に許容範囲の上記一方の限界値に設定される頻度が高くなる）。そこで、本発明では、前記要求操作量の値が許容範囲を逸脱したとき、その逸脱側の限界値を許容範囲の拡大方向に変化させて該許容範囲を更新することで、該要求操作量の値が更新後の許容範囲内に収まり易くする。これにより、前記リミット処理手段のリミット処理による前記要求操作量の値の頻繁な強制的制限を回避し、該要求操作量そのものに基づく空燃比の操作（要求操作量に等しい指令操作量に基づく空燃比の操作）が行われ易くなるようにすることができる。この結果、排ガスセンサの出力の目標値への収束制御の速応性や安定性を確保しつつ該制御を良好に行うことができる。
さらに、前記要求操作量の値の許容範囲からの逸脱が生じないような状況では、該許容範囲が前記排ガスセンサの出力を目標値に収束させるための要求操作量の値の範囲に対して必要以上に過剰に広いものとなっていることが考えられる。そして、例えば外乱等による要求操作量の許容範囲からの一時的な逸脱が生じたような場合には、その逸脱に応じた前述のような許容範囲の更新処理（特に逸脱側の限界値を許容範囲の拡大方向に変化させる処理）によって、該許容範囲が本来の要求操作量の値の範囲に対して必要以上に広いものとなってしまうことがある。
このため、本発明では、前記要求操作量が許容範囲内に存するとき、少なくとも該許容範囲の上限値及び下限値のいずれか一方（好ましくは両者）を該許容範囲の縮小方向に変化させる。これにより、前記要求操作量の許容範囲からの逸脱に応じた前述のような許容範囲の更新処理によって前記許容範囲が本来の要求操作量の値の範囲に対して必要以上に広いものとなっても、該許容範囲を速やかに縮小させて本来の要求操作量の値の範囲に整合したものとすることができる。この結果、本来の要求操作量の値の範囲に適した前記リミット処理を行って、一時的なスパイク状の要求操作量に基づく空燃比の操作を確実に排除することができる。
【００２４】
上記のように前記要求操作量の許容範囲からの逸脱に応じて該許容範囲の逸脱側の限界値を該許容範囲の拡大方向に変化させて許容範囲を更新するとき、その逸脱側の限界値と反対側の限界値に関しては、排ガスセンサの出力の目標値への収束制御を良好に行う上では、該反対側の限界値を逸脱側の限界値と同様に許容範囲の拡大方向に変化させたり、あるいは、現状に維持したりしてもよい。
【００２５】
しかるに、例えば前記要求操作量の値の範囲が全体的に前記逸脱側の限界値寄りに偏りを生じているような状況では、該要求操作量の値の範囲は全体的に前記逸脱側と反対側の限界値から離間している。このため、前記要求操作量の値が外乱等により一時的なスパイク状に上記逸脱側の限界値と反対側の限界値側に大きく変化したような場合でも、該要求操作量の値が許容範囲内に収まりやすくなる。この結果、上記逸脱側と反対側での要求操作量に対するリミット処理が不十分なものとなりやすい。
【００２６】
また、例えば前記要求操作量の値の許容範囲からの逸脱が一時的なものであったような場合には、その逸脱に応じて逸脱側の限界値を該許容範囲の拡大方向に変化させると共に、逸脱側の限界値と反対側の限界値を許容範囲の拡大方向に変化させたり、現状に維持すると、更新後の許容範囲は、要求操作量の値の通常的な範囲に対して必要以上に広いものとなる。この結果、該許容範囲の上限値あるいは下限値側でのリミット処理が不十分なものとなる虞がある。
【００２７】
そこで、前述のように前記要求操作量の許容範囲からの逸脱に応じて該許容範囲の逸脱側の限界値を該許容範囲の拡大方向に変化させる本発明（請求項１記載の発明）にあっては、好ましくは、前記リミット処理手段による前記許容範囲の可変的な設定処理は、前記操作量生成手段が生成した操作量（要求操作量）の値が該許容範囲の上限値及び下限値のいずれか一方の限界値側に該許容範囲から逸脱したとき、その逸脱側の限界値と反対側の限界値を該許容範囲の縮小方向に変化させて該許容範囲を更新する処理を含む（請求項２記載の発明）。
【００２８】
これにより、前記要求操作量の値が許容範囲から逸脱したときには、その逸脱側の限界値が該許容範囲の拡大側に変化すると共に、その逸脱側と反対側の限界値は該許容範囲の縮小側に変化することとなる（このとき、許容範囲の全体が更新前の許容範囲の前記逸脱側の限界値方向にシフトするように該許容範囲が更新されることとなる）。このため、前記要求操作量の値の範囲が現在の許容範囲の上限値及び下限値のいずれか一方の限界値側に偏りを生じたような状況で、その一方の限界値側への要求操作量の値の許容範囲からの逸脱に応じて該許容範囲を更新した際には、その更新後の他方の限界値が要求操作量の値の範囲に接近する。また、前記要求操作量の値の許容範囲からの逸脱が一時的なものであったような場合には、逸脱側の限界値と反対側の限界値が許容範囲の縮小方向に変化することで、該許容範囲の更新後には、要求操作量が当該反対側の限界値側に逸脱しやすくなる。そして、その逸脱に応じて、前記のように許容範囲の限界値（上限値及び下限値の両者）を変化させて許容範囲を更新することで、該許容範囲は本来の要求操作量の値に適した範囲に復帰する。
【００２９】
よって、本発明（請求項２記載の発明）によれば、要求操作量の許容範囲からの逸脱に伴う前述のような許容範囲の更新（上限値及び下限値の両者の変化）によって、要求操作量の値の範囲に整合した許容範囲を設定することができる。そして、この結果、前記リミット処理手段のリミット処理による前記要求操作量の値の頻繁な強制的制限を回避することができると同時に、該リミット処理も良好に行うことができる。ひいては、排ガスセンサの出力の目標値への収束制御を良好に行うことができると共に、内燃機関の運転状態の安定性も確保することができる。
【００３３】
前記要求操作量の値に応じた前述のような許容範囲の更新処理を複合的に行うことが特に好適である。そこで、本発明の空燃比制御装置の第２の態様は、内燃機関の排気通路に設けた触媒装置の下流側に該触媒装置を通過した排ガスの特定成分の濃度を検出すべく配置した排ガスセンサと、該排ガスセンサの出力を所定の目標値に収束させるように内燃機関で燃焼させる混合気の空燃比を操作するための操作量を逐次生成する操作量生成手段と、該操作量生成手段が生成した操作量の値を所定の許容範囲内の値に制限するリミット処理を行うリミット処理手段とを具備し、該リミット処理手段のリミット処理を施した操作量に基づき前記混合気の空燃比を操作する内燃機関の空燃比制御装置において、前記リミット処理の許容範囲を前記操作量生成手段が生成した操作量に応じて可変的に設定する手段を前記リミット処理手段に備え、前前記リミット処理手段による前記許容範囲の可変的な設定処理は、前記操作量生成手段が生成した操作量（要求操作量）の値が前記許容範囲の上限値よりも大きいか否かに応じてそれぞれ該上限値を該許容範囲の拡大方向、縮小方向に変化させると共に、前記操作量生成手段が生成した操作量（要求操作量）の値が前記許容範囲の下限値よりも小さいか否かに応じてそれぞれ該下限値を該許容範囲の拡大方向、縮小方向に変化させることにより該許容範囲を更新する処理から成ることを特徴とする（請求項３記載の発明）。
【００３４】
かかる本発明によれば、前記要求操作量が許容範囲からその上限値側に逸脱したときには、該要求操作量の値は上限値及び下限値よりも大きいため、上限値が許容範囲の拡大方向に変化すると共に下限値が許容範囲の縮小方向に変化することとなる。また、前記要求操作量が許容範囲からその下限値側に逸脱したときには、該要求操作量の値は上限値及び下限値よりも小さいため、下限値が許容範囲の拡大方向に変化すると共に上限値が許容範囲の縮小方向に変化することとなる。さらに、前記要求操作量が許容範囲内の存するときには、該操作量の値は上限値以下で且つ下限値以上であるため、上限値及び下限値はその両者が許容範囲の縮小方向に変化することとなる。
【００３５】
このように許容範囲の上限値及び下限値を変化させて許容範囲を更新することで、前記要求操作量の値の範囲に過不足なく整合した最適な許容範囲を適応的に設定することができる。このため、前記リミット処理による前記要求操作量の値の強制的制限を必要最小限に留めることができると同時に、該リミット処理もより適正に行うことができる。ひいては、排ガスセンサの出力の目標値への収束制御をより良好に行うことができると共に、内燃機関の動作の安定性も確保もより確実に図ることができる。
【００３６】
前述の如く許容範囲の上限値又は下限値を許容範囲の拡大方向又は縮小方向に変化させて許容範囲を更新する本発明（請求項１〜３記載の発明）にあっては、前記リミット処理手段が前記許容範囲の拡大方向に前記上限値又は下限値を変化させる際における該上限値又は下限値の変化量は、前記許容範囲の縮小方向に前記上限値又は下限値を変化させる際における該上限値又は下限値の変化量よりも大きな値に定められていることが好ましい（請求項４記載の発明）。
【００３７】
このように許容範囲の拡大方向での上限値又は下限値の変化量を大きめにし、許容範囲の縮小方向での上限値又は下限値の変化量を小さめにすることで、前記要求操作量の値を許容範囲内に収まりやすくすることを迅速に行うことができる。この結果、排ガスセンサの出力の目標値への収束制御をより良好に行うことができる。
【００３８】
また、本発明では、前述の如く許容範囲を更新するとき、前記リミット処理は、更新後の許容範囲に基づいて行うようにすることも可能である。但し、前記要求操作量が外乱等により一時的に大きく変化したような場合に、そのような要求操作量に基づく空燃比の操作を確実に排除する上では、前記リミット処理手段は、前記許容範囲の更新前の許容範囲により前記リミット処理を行うことが好ましい（請求項５記載の発明）。
【００３９】
さらに、前述の如く許容範囲を更新する本発明では、前記リミット処理手段は、前記操作量生成手段が生成した操作量の値に応じて前記許容範囲の上限値又は下限値を変化させるとき、その変化後の上限値又は下限値を、該上限値又は下限値にそれぞれに対応してあらかじめ定めた所定の範囲内の値に制限する（請求項６記載の発明）。
【００４０】
これによれば、前述のような許容範囲の更新によって、該許容範囲の上限値や下限値が過大もしくは過小なものとなって、内燃機関の安定した運転を行う上で不適切な空燃比に内燃機関の空燃比を操作してしまうような要求操作量の許容範囲が設定されてしまうような事態を回避することができる。
【００４１】
尚、前述のような許容範囲の更新処理は、前記操作量生成手段による操作量の生成を所定の制御サイクルで行うとき、その生成の都度（制御サイクル毎に）逐次行うことが好ましいが、該制御サイクルより多少長いサイクルで定期的に行うようにしてもよい。
【００４２】
また、前記許容範囲の上限値及び下限値を変化させる際の変化量はそれぞれあらかじめ定めた固定値としてもよいが、要求操作量の許容範囲からの逸脱度合い等に応じて決定することも可能である。
【００４３】
以上説明したような本発明では、前記操作量生成手段は、ＰＩ制御等、種々のフィードバック制御手法により操作量（要求操作量）を生成することが可能であるが、特に好ましくは、前記操作量生成手段は、前記排ガスセンサの出力と前記所定の目標値との偏差を成分とする切換関数を用いるスライディングモード制御の処理により該切換関数の値を０に収束させるように前記操作量（要求操作量）を生成する（請求項７記載の発明）。
【００４４】
すなわち、スライディングモード制御は可変構造型のフィードバック制御手法であり、外乱等に対する安定性が極めて高いという特性を有している。このため、前記要求操作量の値は、外乱等の影響で過大な変化を生じたりすることが少ない。この結果、前述のような許容範囲の可変的な設定によって、内燃機関の運転状態の安定性を損なうことなく、確実に要求操作量の値の範囲に適した許容範囲を設定することができる。
【００４５】
尚、スライディングモード制御には、通常のスライディングモード制御に対して、外乱等の影響を極力排除するための適応則（適応アルゴリズム）という制御則を加味した適応スライディングモード制御があり、このような適応スライディングモード制御を用いることが特に好ましい。
【００４６】
このようにスライディングモード制御を用いて前記要求操作量を生成するとき、前記リミット処理手段は、前記排ガスセンサの出力が安定であるか否かを逐次判断する手段を具備し、該排ガスセンサの出力が不安定であると判断したとき、少なくとも該排ガスセンサの出力が不安定であるとの判断が継続している間は、前記許容範囲を強制的にあらかじめ定めた所定の範囲に設定することが好ましい（請求項８記載の発明）。
【００４７】
すなわち、前記排ガスセンサの出力が不安定なものとなる状況では、排ガスセンサの出力を安定化する上では、前記要求操作量に対して前記リミット処理を施して成る前記指令操作量（空燃比を操作するために用いる操作量）の変動幅を積極的に狭めに抑制することが好ましい。このために、本発明では、少なくとも前記排ガスセンサの出力が不安定であると判断される間は前記許容範囲を強制的に所定の範囲（この範囲は基本的には狭めの範囲が好ましい）に設定する。これにより、排ガスセンサの出力を安定化することができ、ひいては触媒装置の浄化性能の安定化を図ることができる。
【００４８】
この場合、本発明ではさらに、前記リミット処理手段は、前記排ガスセンサの出力が不安定であると判断するとき、その不安定さの度合いを複数段階に分別して判断する手段を具備し、該排ガスセンサの出力が不安定であると判断したときに該リミット処理手段が前記許容範囲として設定する前記所定の範囲は、該リミット処理手段が判断する前記不安定さの度合いが高い程、狭くなるように該不安定さの度合いに応じて定められている（請求項９記載の発明）。
【００４９】
このように排ガスセンサの出力の不安定さの度合いを判断し、その不安定さの度合いが高い程（より不安定である程）、前記許容範囲として設定する範囲を狭める。これにより、排ガスセンサの出力の安定化をより確実に図ることができる。また、不安定さの度合いがさほど高くない状態では、要求操作量そのものを用いた空燃比の操作（要求操作量に等しい前記指令操作量に基づく空燃比の操作）の頻度を可能な限り高め、排ガスセンサの出力の目標値への収束制御を図ることもできる。
【００５０】
上記のように前記排ガスセンサの出力が不安定であるか否かを判断する場合、前記リミット処理手段は、例えば前記スライディングモード制御の処理に用いる切換関数の値に基づき、前記排ガスセンサの出力が安定であるか否かの判断を行う（請求項１０記載の発明）。
【００５１】
また、前記排ガスセンサの出力の不安定さの度合いをも判断する場合、前記リミット処理手段は、例えば前記スライディングモード制御の処理に用いる切換関数の値に基づき、前記排ガスセンサの出力が安定であるか否かの暫定的な判断を逐次行い、その暫定的な判断結果が所定期間内において不安定となる頻度に基づき前記排ガスセンサの出力が安定であるか否か、及び前記不安定さの度合いの判断を行う（請求項１１記載の発明）。
【００５２】
すなわち、スライディングモード制御（適応スライディングモード制御を含む）では、その処理において切換関数といわれる関数が用いられ、この切換関数の値を安定に「０」に収束させることが、制御量（本発明では排ガスセンサの出力）を安定に目標値に収束させる上で重要な処理となる。従って、該切換関数の値に基づいて、排ガスセンサの出力の安定性を判断することができる。
【００５３】
例えば切換関数の値とその変化速度との積（これは切換関数に関するリアプノフ関数の時間微分値に相当する）を求めた場合、この積が正側の値であるとき切換関数の値が「０」から離間しつつある状態である。また、この積が負側の値であるとき切換関数の値が「０」に接近しつつある状態（「０」に収束しようとしている状態）である。従って、基本的には上記積の値が正側の値であるか負側の値であるかによって、それぞれ前記排ガスセンサの出力が不安定、安定と判断することが可能である。尚、この他にも、切換関数の値の大きさや、その変化速度の大きさを適当な所定値と比較する等して、排ガスセンサの出力の安定性を判断することも可能である。
【００５４】
また、不安定さの度合いをも判断する場合にあっては、上記のような切換関数の値に基づく安定性の判断（安定であるか否かの判断）を逐次暫定的なものとして行い、その暫定的な判断結果が所定期間内において不安定となる頻度に基づいて前記生成処理状態が安定であるか否か、及び前記不安定さの度合いの判断を行うことができる。例えば該頻度が所定値以下となる状況では排ガスセンサの出力が安定であると判断し、該頻度が所定値を超える状況では、該頻度が高い程、より不安定であると判断すればよい。
【００５５】
尚、前記切換関数は、例えば制御量と目標値との偏差の時系列データを成分とする線形関数等により表されるものである。
【００５６】
また、本発明では、前記操作量生成手段が生成する操作量（要求操作量）並びに前記許容範囲の上限値及び下限値は、前記混合気の空燃比の所定の基準値に対する偏差量であり、前記操作量生成手段が生成した操作量（要求操作量）に応じて前記所定の基準値を可変的に設定する基準値可変設定手段を具備する（請求項１２、１３記載の発明）。
【００５７】
このように前記要求操作量並びに前記許容範囲の上限値及び下限値が、前記内燃機関の空燃比の所定の基準値に対する偏差量であるときには、該基準値に要求操作量を加減算したものが、排ガスセンサの出力を目標値に収束させる上で要求される前記混合気の空燃比（目標空燃比）に相当するものとなる。そして、この場合、要求操作量に応じて基準値を可変的に設定することで、該要求操作量の値に応じて規定される内燃機関の目標空燃比の値の範囲を上記基準値を中心的な値として、該基準値の上下にバランスさせる（このことは要求操作量の値の範囲を「０」を中心的な値として正負にバランスさせることと同等である）ことが可能となる。この結果、前記許容範囲の上限値及び下限値を正負にバランスさせることができ、ひいては一時的なスパイク状の要求操作量等を前記リミット処理により適正に制限することができる。
【００５８】
この場合、前述の如く、操作量生成手段がスライディングモード制御により操作量（要求操作量）を生成しつつ、上記のように基準値を可変的に設定する場合（請求項１３記載の発明）にあっては、好ましくは、前記スライディングモード制御は適応スライディングモード制御であると共に、該適応スライディングモード制御により前記操作量生成手段が生成する操作量（要求操作量）は、該適応スライディングモード制御の適応則に基づく適応則成分を含み、前記基準値可変設定手段は、該操作量（要求操作量）の適応則成分の値に応じて前記所定の基準値を可変的に設定する（請求項１４記載の発明）。
【００５９】
すなわち、適応スライディングモード制御が、その制御対象に与えるべき制御入力として生成する前記要求操作量は、基本的には、切換関数の値を「０」に保持するための制御則に基づく成分（所謂等価制御入力）と、切換関数の値を「０」に収束させるための到達則に基づく成分と、切換関数の値を「０」に収束させるに際しての外乱等の影響を極力排除するための適応則（適応アルゴリズム）に基づく成分との総和として表される。そして、本願発明者等の知見によれば、上記適応則（適応アルゴリズム）に基づく成分（適応則成分）の値に応じて前記基準値を可変的に設定することで、内燃機関で燃焼させる混合気の目標空燃比の値の範囲を該基準値を中心的な値として、該基準値の上下に良好にバランスさせる（このことは要求操作量の値の範囲が正負にバランスすることと同等である）ことができる。尚、前記適応則成分は、具体的には、例えば前記切換関数の値の時間的積分値に比例させた成分である。
【００６０】
このように要求操作量の適応則成分の値に応じて基準値を可変的に設定するとき、より具体的には、前記基準値可変設定手段は、前記操作量の適応則成分の値の、あらかじめ定めた所定値又は該所定値を含む該所定値の近傍範囲に対する大小関係に応じて前記所定の基準値を増減させることにより該基準値を可変的に設定する（請求項１５記載の発明）。
【００６１】
このとき、前記基準値は、前記適応則成分の値が、前記所定値あるいはその近傍の値に収束していくようにして可変的に設定される。これにより、適応則成分の値に応じた基準値の可変的設定を適正に行うことができる。尚、前記基準値は操作量生成手段が適応スライディングモード制御により生成する要求操作量の基準となるものであるため、該基準値をあまり頻繁に変化させると、適応スライディングモード制御により生成する要求操作量に悪影響を及ぼし、前記排ガスセンサの出力の安定性を損なう虞がある。従って、適応則成分の値に応じた基準値の可変的な設定に際しては、前記所定値を含む該所定値の近傍範囲に対する適応則成分の値の大小関係に応じて該基準値を増減させる（適応則成分の値が上記近傍範囲内に存するときには基準値を変化させない）ことが好ましい。
【００６２】
前述の如く、スライディングモード制御により生成する要求操作量に応じて前記基準値を可変的に設定するとき、前記基準値可変設定手段は、前記排ガスセンサの出力が安定であるか否かを逐次判断する手段を具備し、該排ガスセンサの出力が不安定であると判断したとき、前記操作量によらずに所定値に保持することが好ましい（請求項１６記載の発明）。
【００６３】
すなわち、排ガスセンサの出力が不安定であると判断される状況では、前記要求操作量に応じて前記基準値を可変的に設定しても、該基準値の信頼性が乏しい。このため、該要求操作量に応じた基準値の可変的設定を行わず、該基準値を所定値（例えば現状の値や、あらかじめ定めた固定値）に保持する。これにより、内燃機関で燃焼させる混合気の目標空燃比の値の範囲の中心的な値としての前記基準値の信頼性を高めることができる。
【００６４】
この場合、前記基準値可変設定手段は、前述した前記リミット処理手段による安定性の判断の場合と同様に、前記スライディングモード制御の処理に用いる切換関数の値に基づき、前記排ガスセンサの出力が安定であるか否かの判断を行うことができる（請求項１７記載の発明）。
【００６５】
またさらに、本発明では、前記基準値可変設定手段は、前記排ガスセンサの出力が前記目標値に略収束しているか否かを判断する手段を具備し、該排ガスセンサの出力が該目標値へ未収束状態であると判断したとき、前記操作量（要求操作量）によらずに前記基準値を所定値に保持する（請求項１８記載の発明）。
【００６６】
すなわち、排ガスセンサの出力が目標値に未収束状態であると判断される状況では、要求操作量の生成状態が不安定なものとなり易いので、前記請求項１６記載の発明の場合と同様、基準値の可変的設定を行わず、該基準値を所定値（例えば現状の値や、あらかじめ定めた固定値）に保持する。これにより、内燃機関で燃焼させる混合気の目標空燃比の値の範囲の中心的な値としての前記基準値の信頼性を高めることができる。
【００６７】
尚、排ガスセンサの出力が目標値に略収束しているか否かの判断は、例えば、該排ガスセンサの出力と目標値との偏差の大きさを適当な所定値と比較することで行うことができる。より具体的には、該偏差の大きさが所定値以下であるときには略収束していると判断し、該偏差の大きさが所定値よりも大きいときには未収束状態であると判断すればよい。
【００６８】
またさらに、本発明では、前記リミット処理手段は、前記内燃機関の運転状態を把握し、その把握した運転状態に応じて前記許容範囲を設定する手段を具備する（請求項１９記載の発明）。
【００６９】
このように、内燃機関の運転状態に応じて前記許容範囲を設定することで、前記要求操作量に対する前記リミット処理を内燃機関の運転状態に適したものとして、内燃機関の種々の運転状態において前記排ガスセンサの目標値への収束制御の速応性や安定性を高めることが可能となる。
【００７０】
より具体的には、前記排ガスセンサが酸素濃度センサである場合にあっては、例えば前記リミット処理手段が把握する前記内燃機関の運転状態は該内燃機関の始動後の経過時間を含み、該リミット処理手段は、該内燃機関の始動後の経過時間が所定時間に達するまでは、前記許容範囲の上限値及び下限値のうち、少なくとも前記混合気の空燃比のリッチ側に対応する限界値があらかじめ定めた所定値よりも前記許容範囲の縮小方向の値になるのを禁止するよう前記許容範囲を設定する（請求項２０記載の発明）。
【００７１】
すなわち、一般に、内燃機関の始動時のクランキング動作中に触媒装置に送り込まれる空気（酸素）が触媒装置に貯えられる（所謂、Ｏ2 ストレージが生じる）ため、触媒装置の下流側の酸素濃度センサの出力（これは燃焼により排ガス化した混合気の空燃比に応じたものとなる）が目標値に対して空燃比のリーン側に偏る。また、このとき、前記要求操作量の値は、それが規定する空燃比をリッチ側に大きくするような値となる。このような状況において、排ガスセンサである酸素濃度センサの出力を速やかに目標値に収束させる上では、前記要求操作量に前記リミット処理を施した前記指令操作量に基づいて操作される混合気の空燃比ができるだけリッチ側に変化し得るようにすることが好ましい。このため、本発明では、内燃機関の始動後の経過時間が所定値に達するまでの始動直後の状態では、前記許容範囲の上限値及び下限値のうち、少なくとも前記混合気の空燃比のリッチ側に対応する限界値があらかじめ定めた所定値よりも前記許容範囲の縮小方向の値になるのを禁止するよう前記許容範囲を設定する。これにより、前記要求操作量にリミット処理を施した前記指令操作量は、空燃比のリッチ側に対応する前記許容範囲の限界値側に比較的大きな値を採ることが可能となって、該空燃比がリッチ側に変化しやすくなる。この結果、触媒装置の下流側の酸素濃度センサの出力の目標値への収束を内燃機関の始動後速やかに行うことができる。ひいては、触媒装置の所要の浄化性能を内燃機関の始動後、速やかに確保することができる。
【００７２】
また、排ガスセンサが酸素濃度センサである場合にあっては、前記リミット処理手段が把握する前記内燃機関の運転状態は該内燃機関のフュエルカット後の経過時間を含み、該リミット処理手段は、該内燃機関のフュエルカット後の経過時間が所定時間に達するまでは、前記許容範囲の上限値及び下限値のうち、少なくとも前記混合気の空燃比のリッチ側に対応する限界値があらかじめ定めた所定値よりも前記許容範囲の縮小方向の値になるのを禁止するよう前記許容範囲を設定する（請求項２１記載の発明）。
【００７３】
すなわち、一般に、内燃機関のフュエルカットを行った直後は、フュエルカット中に触媒装置が酸素を大量に貯えてしまうため、前記酸素濃度センサの出力が空燃比のリーン側に偏る傾向がある。このため、酸素濃度センサの出力を速やかに目標値に収束させる上では、前記要求操作量に前記リミット処理を施した操作量に基づいて操作される前記混合気の空燃比ができるだけリッチ側に変化し得るようにすることが好ましい。このため、本発明では、内燃機関のフュエルカット後の経過時間が前記所定値に達するまでの、フュエルカット直後の状態では、前記許容範囲の上限値及び下限値のうち、少なくとも前記混合気の空燃比のリッチ側に対応する限界値があらかじめ定めた所定値よりも前記許容範囲の縮小方向の値になるのを禁止するよう前記許容範囲を設定する。これにより、内燃機関の始動直後の場合と同様に、触媒装置の下流側の酸素濃度センサの出力の目標値への収束を内燃機関のフュエルカットの直後に速やかに行うことができる。ひいては、触媒装置の所要の浄化性能をフュエルカットの直後から速やかに確保することができる。
【００７４】
さらに、排ガスセンサが酸素濃度センサである場合にあっては、前記リミット処理手段が把握する前記内燃機関の運転状態は該内燃機関がその負荷の駆動を開始してからの経過時間を含み、該リミット処理手段は、該内燃機関がその負荷の駆動を開始してからの経過時間が所定時間に達するまでは、前記許容範囲の上限値及び下限値のうち、少なくとも前記混合気の空燃比のリーン側に対応する限界値があらかじめ定めた所定値よりも前記許容範囲の拡大方向の値になるのを禁止するよう前記許容範囲を設定する（請求項２２記載の発明）。
【００７５】
すなわち、内燃機関がその負荷（例えば、車両に搭載された内燃機関では、車両の駆動輪がその負荷に相当する）の駆動を開始した直後は、一般に、前記要求操作量に対応して規定される空燃比に対して、実際の空燃比がリーン側に偏る傾向がある。そして、このような場合に、要求操作量が空燃比のリーン側に対応する方向に比較的大きな値になったときに、該要求操作量をそのまま前記指令操作量として前記混合気の空燃比を操作すると、触媒装置の下流側の酸素濃度センサの出力が目標値に対して過剰に空燃比のリーン側に制御されてしまい易い。このため、本発明では、内燃機関がその負荷の駆動を開始してからの経過時間が前記所定値に達するまでは、前記許容範囲の上限値及び下限値のうち、前記許容範囲の上限値及び下限値のうち、少なくとも前記混合気の空燃比のリーン側に対応する限界値があらかじめ定めた所定値よりも前記許容範囲の拡大方向の値になるのを禁止するよう前記許容範囲を設定する。これにより、要求操作量にリミット処理を施してなる指令操作量が空燃比のリーン側に対応する限界値側にあまり大きくならないようにすることができる。ひいては、内燃機関で燃焼させる混合気の空燃比があまりリーン側に偏らないようにして、酸素濃度センサの出力が目標値に対して過剰に空燃比のリーン側に制御されてしまうような事態を回避することができる。
【００７６】
また、本発明では、前記リミット処理手段が把握する前記内燃機関の運転状態は該内燃機関のアイドリング運転状態であるか該アイドリング運転以外の運転状態であるかを含み、前記リミット処理手段は、該内燃機関のアイドリング運転状態であるとき、前記操作量生成手段が生成する操作量（要求操作量）によらずにあらかじめ定めた所定の範囲を前記許容範囲として設定し、該内燃機関のアイドリング運転以外の運転状態であるときに前記操作量生成手段が生成する操作量（要求操作量）に応じて前記許容範囲を可変的に設定することが好ましい（請求項２３記載の発明）。
【００７７】
すなわち、内燃機関のアイドリング運転状態では、該内燃機関の安定した運転を行う上で、空燃比をあまり変動させることは好ましくない。そして、このようなアイドリング運転時に、仮に前述の如く前記要求操作量の値に応じて前記許容範囲を可変的に設定すると、該許容範囲が大きくなり過ぎて、要求操作量にリミット処理を施した指令操作量に基づき操作される空燃比の変動が比較的大きなものとなる虞がある。このため、本発明では、内燃機関のアイドリング運転状態では、要求操作量によらずに、前記許容範囲をあらかじめ定めた所定の範囲（比較的小さめの範囲）に設定し、アイドリング運転以外の運転状態において、要求操作量に応じて許容範囲を可変的に設定するようにする。これにより、内燃機関のアイドリング運転状態では、内燃機関で燃焼させる混合気の空燃比の変動を抑え気味にして、内燃機関の安定した運転を行うことができる。そして、アイドリング運転以外の運転時には、要求操作量に応じて許容範囲を可変的に設定することで、排ガスセンサの出力の目標値への収束制御を良好に行うことができる。
【００７８】
さらにまた、排ガスセンサが酸素濃度センサである場合にあっては、本発明では前記内燃機関の運転モードとして、前記リミット処理手段のリミット処理を施した前記操作量に基づき前記混合気の空燃比を操作する通常運転モードと該操作量によらずに前記混合気の空燃比をリーン状態の空燃比に操作するリーン運転モードとを有する。そして、前記リミット処理手段が把握する前記内燃機関の運転状態は、該内燃機関の運転モードの前記リーン運転モードから前記通常運転モードへの移行時からの経過時間を含み、該リミット処理手段は、該リーン運転モードから通常運転モードへの移行時からの経過時間が所定値に達するまでは、前記許容範囲の上限値及び下限値のうち、少なくとも前記混合気の空燃比のリーン側に対応する限界値があらかじめ定めた所定値よりも前記許容範囲の拡大方向の値になるのを禁止するよう前記許容範囲を設定する（請求項２４記載の発明）。
【００７９】
すなわち、内燃機関の運転では、燃料消費量を低減するために、適当な運転条件下において、内燃機関で燃焼させる混合気の空燃比を、理論空燃比よりも燃料を少なくしたリーン状態として該内燃機関の運転（所謂リーン運転）を行う場合ある。そして、このように、リーン運転を行う状況では、排ガスセンサとしての酸素濃度センサの出力を目標値に収束させるように前記混合気の空燃比を操作することはできないので、前記操作量生成手段が生成した要求操作量にリミット処理を施してなる前記指令操作量に基づく空燃比の操作は行われないこととなる。従って、本発明において、内燃機関のリーン運転を適宜必要に応じて行う場合にあっては、内燃機関は、その運転モードとして、前記リミット処理手段のリミット処理を施した前記操作量（指令操作量）に基づき前記混合気の空燃比を操作する通常運転モードと該操作量によらずに前記混合気の空燃比をリーン状態の空燃比に操作するリーン運転モードとを有することなる。
【００８０】
このように内燃機関の運転モードとして、通常運転モードとリーン運転モードとを有する場合において、リーン運転モードでの内燃機関の運転中は、前記酸素濃度センサの出力が空燃比のリーン側に偏る。従って、リーン運転モードから通常運転モードへの移行の際に、酸素濃度センサの出力を速やかに目標値に収束させる上では、前記要求操作量に前記リミット処理を施した操作量（指令操作量）に基づいて操作される前記混合気の空燃比ができるだけリッチ側に変化し得るようにすることが好ましい。このため、本発明では、前記リミット処理手段は、前記リーン運転モードから通常運転モードへの移行時からの経過時間が前記所定値に達するまでの状態（リーン運転モードから通常運転モードへの移行直後の状態）では、前記許容範囲の上限値及び下限値のうち、少なくとも前記混合気の空燃比のリッチ側に対応する限界値があらかじめ定めた所定値よりも前記許容範囲の縮小方向の値になるのを禁止するよう前記許容範囲を設定する。これにより、内燃機関の始動直後の場合やフュエルカット直後の場合と同様に、触媒装置の下流側の酸素濃度センサの出力の目標値への収束を内燃機関のリーン運転の終了直後に速やかに行うことができる。ひいては、触媒装置の所要の浄化性能をリーン運転の終了直後から速やかに確保することができる。
【００８１】
このように内燃機関のリーン運転を考慮した本発明にあっては、前記触媒装置が、これを通過する排ガス中の酸素濃度が前記混合気の空燃比のリーン状態に対応した酸素濃度であるとき排ガス中の窒素酸化物を吸収し、且つ該排ガス中の酸素濃度が前記混合気の空燃比のリッチ状態に対応した酸素濃度であるとき排ガス中の窒素酸化物を還元させる触媒装置である場合に好適である（請求項２５記載の発明）。
【００８２】
すなわち、この種の触媒装置を備えた場合には、内燃機関の運転モードがリーン運転モードであるときに、排ガス中の窒素酸化物が触媒装置に吸収される。そして、内燃機関の運転モードがリーン運転モードから前記通常運転モードに移行すると、その移行直後に前記操作量生成手段が生成する要求操作量は、内燃機関で燃焼させる混合気の空燃比をリッチ側に大きく変化させるような操作量となる。さらに、上記の運転モードの移動直後において、前述のようにリミット処理手段のリミット処理の許容範囲を設定することで、上記要求操作量はリミット処理による制限を受けにくくなる。このため、該リミット処理により得られる指令操作量も、前記混合気の空燃比をリッチ側に大きく変化させるような操作量となる。この結果、前記リーン運転モードから通常運転モードへの移行直後に、前記混合気の空燃比は速やかにリッチ側に大きな空燃比に操作される。これにより、触媒装置に吸収された窒素酸化物が該触媒装置から速やかに還元される。同時に、このとき、前記混合気の空燃比は、前記酸素濃度センサ（排ガスセンサ）の出力を目標値に収束させるように操作されるので、触媒装置の所要の浄化性能を確保することができる。
【００８３】
尚、本発明において、前記排ガスセンサが酸素濃度センサである場合にあっては、該排ガスセンサの出力の目標値は所定の一定値とすることが触媒装置の最適な浄化性能を確保する上で好適である。
【００８４】
【発明の実施の形態】
本発明の一実施形態を図１乃至図２７を参照して説明する。
【００８５】
図１は本実施形態における内燃機関の空燃比制御装置の全体的システム構成を示すブロック図であり、図中、１は例えば自動車あるいはハイブリッド車に車両の推進源（図示しない駆動輪の駆動源）として搭載された４気筒のエンジン（内燃機関）である。このエンジン１が各気筒毎に燃料及び空気の混合気の燃焼により生成する排ガスは、エンジン１の近傍で共通の排気管２（排気通路）に集合され、該排気管２を介して大気中に放出される。そして、排気管２には、排ガスを浄化するために、図示しない三元触媒やＮＯx 吸収材（窒素酸化物吸収材）を用いて構成された二つの触媒装置３，４が該排気管２の上流側から順に介装されている。
【００８６】
ここで、各触媒装置３，４に含まれるＮＯx 吸収材としては、エンジン１で燃焼させる混合気の空燃比がリーン状態（理論空燃比よりも燃料が少ない状態）であって、排ガス中の酸素濃度が比較的高い状態（この状態では排ガス中のＮＯx が比較的多い）においてＮＯx を吸蔵する吸蔵式のもの、あるいは、上記のリーン状態で排ガス中のＮＯx を吸着する吸着式のものを使用している。吸蔵式のＮＯx 吸収材は例えば酸化バリウム（ＢａＯ）から成るものであり、吸着式のＮＯx 吸収材は例えばナトリウム（Ｎａ）、チタン（Ｔｉ）、ストロンチウム（Ｓｒ）から成るものである。
【００８７】
この場合、吸蔵式のＮＯx 吸収材にあっては、エンジン１で燃焼させる混合気の空燃比が理論空燃比の近傍状態もしくはリッチ状態（理論空燃比よりも燃料が多い状態）となり、排ガス中の酸素濃度が比較的低い状態になると、吸蔵したＮＯx を放出し、その放出されたＮＯx が排ガス中のＨＣ（ハイドロカーボン）やＣＯ（一酸化炭素）によって還元される。また、吸着式のＮＯx 吸収材にあっては、エンジン１で燃焼させる混合気の空燃比が理論空燃比の近傍状態もしくはリッチ状態となり、排ガス中の酸素濃度が比較的低い状態になると、吸着しているＮＯx が排ガス中のＨＣ（ハイドロカーボン）やＣＯ（一酸化炭素）によって還元され、その還元後の窒素ガスがＮＯx 吸収材から放出される。
【００８８】
尚、前記触媒装置３，４のうち、本発明に関連した触媒装置は、上流側の触媒装置３であり、下流側の触媒装置４はこれを省略してもよい。
【００８９】
本実施形態のシステムでは、触媒装置３の最適な浄化性能を確保するようにエンジン１の空燃比（より正確にはエンジン１で燃焼させる燃料及び空気の混合気の空燃比。以下、同様）を制御する。そして、この制御を行うために、触媒装置３の上流側（より詳しくはエンジン１の各気筒毎の排ガスの集合箇所）で排気管２に設けられた広域空燃比センサ５と、触媒装置３の下流側（触媒装置４の上流側）で排気管２に設けられた排ガスセンサとしてのＯ2 センサ（酸素濃度センサ）６と、これらのセンサ５，６の出力（検出値）等に基づき後述の制御処理を行う制御ユニット７とを具備している。尚、制御ユニット７には、前記広域空燃比センサ５やＯ2 センサ６の出力の他に、エンジン１の運転状態を検出するための図示しない回転数センサや吸気圧センサ、冷却水温センサ等、各種のセンサの出力が与えられる。
【００９０】
広域空燃比センサ５は、Ｏ2 センサを用いて構成されたものであり、触媒装置３に進入する排ガスをエンジン１での燃焼により生成した混合気の空燃比（これは触媒装置３に進入する排ガス中の酸素濃度により把握される）に応じたレベルの出力を生成する。この場合、広域空燃比センサ５（以下、ＬＡＦセンサ５と称する）は、該センサ５を構成するＯ2 センサの出力から図示しないリニアライザ等の検出回路によって、エンジン１で燃焼した混合気の空燃比の広範囲にわたって、それに比例したレベルの出力KACT、すなわち、該空燃比の検出値を表す出力KACTを生成するものである。このようなＬＡＦセンサ５は本願出願人が特開平４−３６９４７１号公報にて詳細に開示しているので、ここではさらなる説明を省略する。
【００９１】
また、触媒装置３の下流側のＯ2 センサ６は、触媒装置３を通過した排ガス中の酸素濃度に応じたレベルの出力VO2/OUT 、すなわち、該排ガス中の酸素濃度の検出値を表す出力VO2/OUT を通常的なＯ2 センサと同様に生成する。このＯ2 センサ６の出力VO2/OUT は、図２に示すように、触媒装置３を通過した排ガスの酸素濃度により把握される空燃比が理論空燃比近傍の範囲Δに存するような状態で、該排ガスの酸素濃度にほぼ比例した高感度な変化を生じるものとなる。
【００９２】
制御ユニット７はマイクロコンピュータを用いて構成されたものであり、エンジン１の目標空燃比KCMD（これはＬＡＦセンサ５の出力KACTの目標値でもある）を逐次生成するための処理を所定の制御サイクルで実行する制御ユニット７ａ（以下、排気側制御ユニット７ａという）と、上記目標空燃比KCMDにエンジン１の空燃比を操作するための処理を所定の制御サイクルで実行する制御ユニット７ｂ（以下、機関側制御ユニット７ｂという）とに大別される。
【００９３】
この場合、排気側制御ユニット７ａで生成する目標空燃比KCMDは、基本的には前記Ｏ2 センサ６の出力（酸素濃度の検出値）を所定の目標値（一定値）に整定させるために要求されるエンジン１の空燃比である。そして、排気側制御ユニット７ａがこの目標空燃比KCMDを生成するために実行する処理の制御サイクルは、本実施形態では触媒装置３を含む後述の排気系Ｅが有する比較的長い無駄時間や演算負荷等を考慮し、一定周期（例えば３０〜１００ms）としている。
【００９４】
一方、機関側制御ユニット７ｂによるエンジン１の空燃比の操作処理（より具体的にはエンジン１の燃料供給量を調整する処理）は、エンジン１の回転数に同期させる必要がある。このため、機関側制御ユニット７ｂが実行する処理の制御サイクルは、エンジン１のクランク角周期（所謂ＴＤＣ）に同期した周期とされている。そして、機関側制御ユニット７ｂは、ＬＡＦセンサ５やＯ2 センサ６等の各種センサの出力データの読み込みもクランク角周期（ＴＤＣ）に同期した制御サイクルで行うようにしている。
【００９５】
尚、排気側制御ユニット７ａの制御サイクルである前記一定周期は、前記クランク角周期（ＴＤＣ）よりも長いものとされている。
【００９６】
前記機関側制御ユニット７ｂは、その機能的構成として、エンジン１への基本燃料噴射量Ｔ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のデータ及びＯ2 センサ６の出力VO2/OUT のデータを用いて目標空燃比KCMDを排気側制御ユニット７ａの制御サイクルで逐次生成する目標空燃比生成処理部２８を具備する。
【０１１６】
この目標空燃比生成処理部２８は、図３に示す如く、エンジン１の空燃比に対する基準値FLAF/BASE （以下、空燃比基準値FLAF/BASE という。これは前記ＬＡＦセンサ５の出力KACTに対する基準値でもある）を逐次可変的に設定する基準値設定部１１（基準値可変設定手段）と、ＬＡＦセンサ５の出力KACT（空燃比の検出値）と該空燃比基準値FLAF/BASE との偏差kact（＝KACT−FLAF/BASE ）を求める減算処理部１２と、Ｏ2 センサ６の出力VO2/OUT とこれに対する目標値VO2/TARGETとの偏差VO2 （＝VO2/OUT −VO2/TARGET）を求める減算処理部１３とを備えている。この場合、本実施形態ではＯ2 センサ６の出力VO2/OUT がある所定の一定値に整定するような状態で、触媒装置３の経時劣化等によらずに該触媒装置３の最適な浄化性能が得られることから、Ｏ2 センサ６の出力VO2/OUT の目標値VO2/TARGETは上記所定の一定値（固定値）とされている（図２参照）。
【０１１７】
尚、以下の説明において、前記減算処理部１２，１３がそれぞれ求める偏差kact，VO2 をそれぞれＬＡＦセンサ５の偏差出力kact及びＯ2 センサ６の偏差出力VO2 と称する。
【０１１８】
排気側制御ユニット７ａの目標空燃比生成処理部２８はさらに、前記ＬＡＦセンサ５の偏差出力kact及びＯ2 センサ６の偏差出力VO2 のデータを用いて、Ｏ2 センサ６の出力VO2/OUT をその目標値VO2/TARGETに収束させる（偏差出力VO2 を「０」に収束させる）ようにエンジン１の空燃比を操作するための操作量ｕslを逐次生成する操作量生成部２９（操作量生成手段）と、この操作量ｕslを所定の許容範囲内の値に制限するリミット処理を該操作量ｕslに施してなる操作量kcmdを生成するリミッタ３０（リミット処理手段）と、該リミッタ３０が生成した操作量kcmdに前記基準値設定部１１で設定された前記空燃比基準値FLAF/BASE を加算する加算処理部３１とを備えている。
【０１１９】
この場合、本実施形態では、前記操作量生成部２９が後述の如く生成する操作量ｕslは、Ｏ2 センサ６の出力VO2/OUT をその目標値VO2/TARGETに収束させる上で要求されるエンジン１の実際の空燃比（ＬＡＦセンサ５で検出される空燃比）と前記空燃比基準値FLAF/BASE との偏差の目標値を表すものである。従って、基本的には、Ｏ2 センサ６の出力VO2/OUT をその目標値VO2/TARGETに収束させるためには、この操作量ｕsl（以下、要求偏差空燃比ｕslという）に前記空燃比基準値FLAF/BASE を加算したものを前記目標空燃比KCMDとして生成すればよい。
【０１２０】
しかるに、操作量生成部２９が生成する要求偏差空燃比ｕslは、外乱等の影響で比較的大きな変動を生じることもある。そして、このような要求偏差空燃比ｕslに対応して定まる目標空燃比（＝ｕsl＋FLAF/BASE ）にエンジン１の実際の空燃比（ＬＡＦセンサ５の出力）を操作すると、エンジン１の運転状態が不安定になる虞がある。
【０１２１】
このような不都合を回避するため、目標空燃比生成処理部２８は、前記リミッタ３０によって前記要求偏差空燃比ｕslにリミット処理を施すことで、その値を所定の許容範囲内に制限してなる前記操作量kcmdを生成するようにしている。
【０１２２】
ここで、リミッタ３０が行うリミット処理は、前記要求偏差空燃比ｕslの値が所定の許容範囲内に存する状態（通常的な状態）では、該要求偏差空燃比ｕslをそのまま前記操作量kcmdとして設定し、また、要求偏差空燃比ｕslの値が許容範囲から該許容範囲の上限値側あるいは下限値側に逸脱したときには、それぞれ前記操作量kcmdを強制的に該許容範囲の上限値、下限値に設定する処理である。
【０１２３】
そして、目標空燃比生成処理部２８は、このように要求偏差空燃比ｕslにリミット処理を施してなる操作量kcmd（以下、指令偏差空燃比kcmdという）に、前記加算処理部３１で前記空燃比基準値FLAF/BASE を加算することで前記目標空燃比KCMD、すなわち、前記機関側制御ユニット７ｂにエンジン１の空燃比の指令値として与える目標空燃比KCMD（＝kcmd＋FLAF/BASE ）を生成するようにしている。
【０１２４】
前記操作量生成部２９をさらに説明する。この操作量生成部２９は、排気管２のＬＡＦセンサ５の箇所（触媒装置３の上流側）からＯ2 センサ６の箇所（触媒装置３の下流側）にかけての触媒装置３を含む排気系（図１で参照符号Ｅを付した部分。以下、対象排気系Ｅという）が有する無駄時間や、前記エンジン１及び機関側制御ユニット７ｂが有する無駄時間、前記対象排気系Ｅの挙動変化等を考慮しつつ、フィードバック制御の一手法である適応スライディングモード制御を用いて、Ｏ2 センサ６の出力VO2/OUT をその目標値VO2/TARGETに収束させる（Ｏ2 センサ６の偏差出力VO2 を「０」に収束させる）ために対象排気系Ｅに与えるべき制御入力としての前記要求偏差空燃比ｕslを排気側制御ユニット７ａの制御サイクルで逐次生成するものである。
【０１２５】
そして、このような要求偏差空燃比ｕslの生成処理を行うために、本実施形態では、前記対象排気系Ｅを、エンジン１で燃焼した混合気（触媒装置３に進入する排ガスを燃焼により生成した混合気）の実際の空燃比と前記空燃比基準値FLAF/BASE との偏差に相当する前記ＬＡＦセンサ５の偏差出力kactから無駄時間及び応答遅れを有してＯ2 センサ６の偏差出力VO2 を生成する系と見なし、その挙動をあらかじめモデル化する。またさらに、本実施形態では前記エンジン１及び機関側制御ユニット７ｂから成る系（以下、この系を空燃比操作系と称する）を、前記目標空燃比KCMDと前記空燃比基準値FLAF/BASE との偏差（＝KCMD−FLAF/BASE ）である前記指令偏差空燃比kcmd（これは通常的には前記要求偏差空燃比ｕslに一致する）から無駄時間を有してＬＡＦセンサ５の偏差出力kactを生成する系、すなわち各時点のＬＡＦセンサ５の偏差出力kactが空燃比操作系の無駄時間前の指令偏差空燃比kcmdに一致する系と見なし、その挙動をあらかじめモデル化する。
【０１２６】
この場合、本実施形態では、対象排気系Ｅの挙動を表現するモデル（以下、排気系モデルという）は、次式（１）の如く離散時間系のモデル（より詳しくは対象排気系Ｅの入力である偏差出力kactに無駄時間を有する自己回帰モデル）により表現する。
【０１２７】
【数１】
0003913940.tif 000002
【０１２８】
ここで、上式（１）において、「ｋ」は排気側制御ユニット７ａの離散時間的な制御サイクルの番数を示し（以下、同様）、「d1」は対象排気系Ｅに存する無駄時間を制御サイクル数で表したものである。この場合、対象排気系Ｅの無駄時間（ＬＡＦセンサ５が検出する各時点の空燃比がＯ2 センサ６の出力VO2/OUT に反映されるようになるまでに要する時間）は、排気側制御ユニット７ａの制御サイクルの周期（一定周期）を３０〜１００ｍｓとしたとき、一般的には、３〜１０制御サイクル分の時間（d1＝３〜１０）である。そして、本実施形態では、式（１）により表した排気系モデルにおける無駄時間d1の値として、対象排気系Ｅの実際の無駄時間と等しいか、もしくはそれよりも若干長いものにあらかじめ設定した所定の一定値（本実施形態では例えばd1＝７）を用いる。
【０１２９】
また、式（１）の右辺第１項及び第２項はそれぞれ対象排気系Ｅの応答遅れに対応するもので、第１項は１次目の自己回帰項、第２項は２次目の自己回帰項である。そして、「a1」、「a2」はそれぞれ１次目の自己回帰項のゲイン係数、２次目の自己回帰項のゲイン係数である。これらのゲイン係数a1，a2は別の言い方をすれば、排気系モデルにおけるＯ2 センサ６の偏差出力VO2 に係る係数である。
【０１３０】
さらに、式（１）の右辺第３項は対象排気系Ｅの入力としてのＬＡＦセンサ５の偏差出力kactを対象排気系Ｅの無駄時間d1を含めて表現するものであり、「b1」はその入力（＝ＬＡＦセンサ５の偏差出力kact）に係るゲイン係数である。これらのゲイン係数a1，a2，b1は排気系モデルの挙動を規定する上である値に設定（同定）すべきパラメータであり、本実施形態では後述の同定器によって逐次同定するものである。
【０１３１】
このように式（１）により離散時間系で表現した排気系モデルは、それを言葉で表現すれば、排気側制御ユニット７ａの各制御サイクルにおける対象排気系Ｅの出力としての前記Ｏ2 センサ６の偏差出力VO2(k+1)を、該制御サイクルよりも過去の制御サイクルにおける複数（本実施形態では二つ）の偏差出力VO2(k)，VO2(k-1)とＬＡＦセンサ５の偏差出力kact(k-d1)とにより表したものである。
【０１３２】
一方、エンジン１及び機関側制御ユニット７ｂからなる前記空燃比操作系のモデル（以下、空燃比操作系モデルという）は、次式（２）の如く離散時間系のモデルにより表現する。
【０１３３】
【数２】
0003913940.tif 000003
【０１３４】
ここで、式（２）において、「d2」は空燃比操作系の無駄時間を排気側制御ユニット７ａの制御サイクル数で表したものである。この場合、空燃比操作系の無駄時間（各時点の目標空燃比KCMDもしくは指令偏差空燃比kcmdがＬＡＦセンサ５の出力KACTもしくは偏差出力kactに反映されるようになるまでに要する時間）は、エンジン１の回転数によって変化し、エンジン１の回転数が低くなる程、長くなる。そして、本実施形態では、式（２）により表した空燃比操作系モデルにおける無駄時間d2の値としては、上記のような空燃比操作系の無駄時間の特性を考慮し、例えばエンジン１のアイドリング回転数において実際の空燃比操作系が有する無駄時間（これは、エンジン１の任意の回転数において空燃比操作系が採り得る最大側の無駄時間である）と等しいか、もしくはそれよりも若干長いものにあらかじめ設定した所定の一定値（本実施形態では例えばd2＝３）を用いる。
【０１３５】
このように式（２）により表現した空燃比操作系モデルは、排気側制御ユニット７ａの各制御サイクルにおけるＬＡＦセンサ５の偏差出力kact(k) が空燃比操作系の無駄時間d2前の前記指令偏差空燃比kcmd(k-d2)に一致するとして、該偏差出力kact(k) を指令偏差空燃比kcmd(k-d2)により表したものである。
【０１３６】
尚、空燃比操作系には、実際には、無駄時間の他、エンジン１の応答遅れも含まれるのである。しかるに、目標空燃比KCMDもしくは指令偏差空燃比kcmdに対するＬＡＦセンサ５の出力KACTもしくは偏差出力kactの応答遅れは、基本的には前記機関側制御ユニット７ｂのフィードバック制御部１４（特に適応制御器１８）によって補償されるため、排気側制御ユニット７ａの操作量生成部２９から見た空燃比操作系では、エンジン１の応答遅れを考慮せずとも支障はない。
【０１３７】
前記操作量生成部２９は、式（１）及び式（２）によりそれぞれ表現した排気系モデル及び空燃比操作系モデルに基づいて構築された処理を排気側制御ユニット７ａの制御サイクルで行って、前記Ｏ2 センサ６の出力VO2/OUT をその目標値VO2/TARGETに収束させるために対象排気系Ｅに与えるべき入力としての前記要求操作量ｕslを逐次生成するものである。そして、この要求操作量ｕslを生成するために図３に示したような機能的構成を具備している。
【０１３８】
すなわち、操作量生成部２９は、ＬＡＦセンサ５の偏差出力kact及びＯ2 センサ６の偏差出力VO2 のデータを用いて、前記排気系モデル（式（１））の設定すべきパラメータである前記ゲイン係数a1，a2，b1の値を制御サイクル毎に逐次同定する同定器２５を備える。また、該操作量生成部２９は、ＬＡＦセンサ５の偏差出力kactのデータと、Ｏ2 センサ６の偏差出力VO2 のデータと、以下に述べるスライディングモード制御器２７が過去に求めた要求偏差空燃比ｕslに前記リミッタ３０でリミット処理を施してなる前記指令偏差空燃比kcmd（通常的にはkcmd＝ｕslである）のデータと、前記同定器２５により算出された前記ゲイン係数a1，a2，b1の同定値a1ハット，a2ハット，b1ハット（以下、同定ゲイン係数a1ハット，a2ハット，b1ハットという）とを用いて、対象排気系Ｅの無駄時間d1及び空燃比操作系の無駄時間d2を合わせた合計無駄時間ｄ（＝d1＋d2）後のＯ2 センサ６の偏差出力VO2 の推定値VO2 バー（以下、推定偏差出力VO2 バーという）を制御サイクル毎に逐次求める推定器２６を備える。さらに操作量生成部２９は、推定器２６により求められたＯ2 センサ６の推定偏差出力VO2 バーのデータと、前記同定ゲイン係数a1ハット，a2ハット，b1ハットとを用いて適応スライディングモード制御により前記要求偏差空燃比ｕslを制御サイクル毎に逐次算出するスライディングモード制御器２７を備える。
【０１３９】
これらの同定器２５、推定器２６及びスライディングモード制御器２７による演算処理のアルゴリズムは以下のように構築されている。
【０１４０】
まず、前記同定器２５は、前記式（１）により表現した排気系モデルの実際の対象排気系Ｅに対するモデル化誤差を極力小さくするように前記ゲイン係数a1，a2，b1の値をリアルタイムで逐次同定するものであり、その同定処理を次のように行う。
【０１４１】
すなわち、同定器２５は、排気側制御ユニット７ａの制御サイクル毎に、まず、今現在設定されている排気系モデルの同定ゲイン係数a1ハット，a2ハット，b1ハット、すなわち前回の制御サイクルで決定した同定ゲイン係数a1(k-1) ハット，a2(k-1) ハット，b1(k-1) ハットの値と、ＬＡＦセンサ５の偏差出力kact及びＯ2 センサ６の偏差出力VO2 の過去に得られたデータとを用いて、次式（３）により排気系モデル上でのＯ2 センサ６の偏差出力VO2 （排気系モデルの出力）の値VO2(k)ハット（以下、同定偏差出力VO2(k)ハットという）を求める。
【０１４２】
【数３】
0003913940.tif 000004
【０１４３】
この式（３）は、排気系モデルを表す前記式（１）を１制御サイクル分、過去側にシフトし、ゲイン係数a1，a2，b1を同定ゲイン係数a1ハット(k-1) ，a2ハット(k-1) ，b1ハット(k-1) で置き換えたものである。また、式（３）の第３項で用いる対象排気系Ｅの無駄時間d1の値は、前述の如く設定した一定値（本実施形態ではd1＝７）を用いる。
【０１４４】
ここで、次式（４），（５）で定義されるベクトルΘ及びξを導入すると（式（４），（５）中の添え字「Ｔ」は転置を意味する。以下同様。）、
【０１４５】
【数４】
0003913940.tif 000005
【０１４６】
【数５】
0003913940.tif 000006
【０１４７】
前記式（３）は、次式（６）により表される。
【０１４８】
【数６】
0003913940.tif 000007
【０１４９】
さらに同定器２５は、前記式（３）あるいは式（６）により求められるＯ2 センサ６の同定偏差出力VO2 ハットと今現在のＯ2 センサ６の偏差出力VO2 との偏差id/eを排気系モデルの実際の対象排気系Ｅに対するモデル化誤差を表すものとして次式（７）により求める（以下、偏差id/eを同定誤差id/eという）。
【０１５０】
【数７】
0003913940.tif 000008
【０１５１】
そして、同定器２５は、上記同定誤差id/eを最小にするように新たな同定ゲイン係数a1(k) ハット，a2(k) ハット，b1(k) ハット、換言すれば、これらの同定ゲイン係数を要素とする新たな前記ベクトルΘ(k) （以下、このベクトルを同定ゲイン係数ベクトルΘという）を求めるもので、その算出を、次式（８）により行う。すなわち、同定器２５は、前回の制御サイクルで決定した同定ゲイン係数a1ハット(k-1) ，a2ハット(k-1) ，b1ハット(k-1) を、同定誤差id/eに比例させた量だけ変化させることで新たな同定ゲイン係数a1(k) ハット，a2(k) ハット，b1(k) ハットを求める。
【０１５２】
【数８】
0003913940.tif 000009
【０１５３】
ここで、式（８）中の「Ｋθ」は次式（９）により決定される三次のベクトル（各同定ゲイン係数a1ハット，a2ハット，b1ハットの同定誤差id/eに応じた変化度合いを規定するゲイン係数ベクトル）である。
【０１５４】
【数９】
0003913940.tif 000010
【０１５５】
また、上式（９）中の「Ｐ」は次式（１０）の漸化式により決定される三次の正方行列である。
【０１５６】
【数１０】
0003913940.tif 000011
【０１５７】
尚、式（１０）中の「λ1 」、「λ2 」は０＜λ1 ≦１及び０≦λ2 ＜２の条件を満たすように設定され、また、「Ｐ」の初期値Ｐ(0) は、その各対角成分を正の数とする対角行列である。
【０１５８】
この場合、式（１０）中の「λ1 」、「λ2 」の設定の仕方によって、固定ゲイン法、漸減ゲイン法、重み付き最小二乗法、最小二乗法、固定トレース法等、各種の具体的なアルゴリズムが構成され、本実施形態では、例えば最小二乗法（この場合、λ1 ＝λ2 ＝１）を採用している。
【０１５９】
本実施形態における同定器２５は基本的には前述のようなアルゴリズム（演算処理）によって、前記同定誤差id/eを最小化するように排気系モデルの前記同定ゲイン係数a1ハット，a2ハット，b1ハットを制御サイクル毎に逐次求める。このような処理によって、実際の対象排気系Ｅに適合した同定ゲイン係数a1ハット，a2ハット，b1ハットが逐次得られる。
【０１６０】
以上説明した演算処理が同定器２５による基本的な処理内容である。尚、本実施形態では、同定器２５は、同定ゲイン係数a1ハット，a2ハット，b1ハットを求めるに際して、それらの値の制限処理等、付加的な処理も行うのであるが、これらについては後述する。
【０１６１】
次に、前記推定器２６は、後に詳細を説明するスライディングモード制御器２７による要求偏差空燃比ｕslの算出処理に際しての対象排気系Ｅの無駄時間d1及び前記空燃比操作系の無駄時間d2の影響を補償するために、前記合計無駄時間ｄ（＝d1＋d2）後のＯ2 センサ６の偏差出力VO2 の推定値である前記推定偏差出力VO2 バーを制御サイクル毎に逐次求めるものである。その推定処理のアルゴリズムは次のように構築されている。尚、この推定器２６の詳細は特願平１０−１３０８６４号にて本願出願人が説明しているので、ここでは、概略を説明する。
【０１６２】
まず、排気系モデルを表す前記式（１）に、空燃比操作系モデルを表す式（２）を適用すると、式（１）は次式（１１）に書き換えることができる。
【０１６３】
【数１１】
0003913940.tif 000012
【０１６４】
この式（１１）は、対象排気系Ｅ及び空燃比操作系を合わせた系を、前記指令偏差空燃比kcmdから対象排気系Ｅ及び空燃比操作系の両者の無駄時間と対象排気系Ｅの応答遅れとを有してＯ2 センサ６の偏差出力VO2 を生成する系と見なして、離散時間系のモデルで表現したものである。
【０１６５】
そして、この式（１１）を用いることで、各制御サイクルにおける前記合計無駄時間ｄ後のＯ2 センサ６の偏差出力VO2(k+d)の推定値である前記推定偏差出力VO2(k+d)バーは、Ｏ2 センサ６の偏差出力VO2 の現在値及び過去値の時系列データVO2(k)及びVO2(k-1)と、前記指令偏差空燃比kcmd（＝KCMD−FLAF/BASE ）の過去値の時系列データkcmd(k-j) （ｊ＝1,2,…,d）とを用いて次式（１２）により表される。
【０１６６】
【数１２】
0003913940.tif 000013
【０１６７】
ここで、式（１２）において、α1 ，α2 は、それぞれ同式（１２）中のただし書きで定義した行列Ａの巾乗Ａd （ｄ：合計無駄時間）の第１行第１列成分、第１行第２列成分である。また、βj （j=1,2,…,d）は、それぞれ行列Ａの巾乗Ａj-1 （j=1,2,…,d）と同式（１２）中のただし書きで定義したベクトルＢとの積Ａj-1 ・Ｂの第１行成分である。
【０１６８】
さらに、式（１２）中の指令偏差空燃比kcmdの過去値の時系列データkcmd(k-j) （ｊ＝1,2,…,d）のうち、現在から空燃比操作系の無駄時間d2以前の指令偏差空燃比kcmdの過去値の時系列データkcmd(k-d2)，kcmd(k-d2-1)，…，kcmd(k-d) は前記式（２）（空燃比操作系のモデル）に基づいて、それぞれ、ＬＡＦセンサ５の偏差出力kactの現在以前に得られるデータkact(k) ，kact(k-1) ，…，kact(k-d+d2)に置き換えることができる。そして、この置き換えを行うことで、次式（１３）が得られる。
【０１６９】
【数１３】
0003913940.tif 000014
【０１７０】
この式（１３）が本実施形態において、推定器２６が前記推定偏差出力VO2(k+d)バーを算出するための基本式である。つまり、本実施形態では、推定器２６は、制御サイクル毎に、Ｏ2 センサ６の偏差出力VO2 の現在値及び過去値の時系列データVO2(k)及びVO2(k-1)と、後述するスライディングモード制御器２７が生成する要求偏差空燃比ｕslにリミット処理を施してなる指令偏差空燃比kcmdの過去値のデータkcmd(k-j) （ｊ＝1,…,d2-1 ）と、ＬＡＦセンサ５の偏差出力kactの現在値及び過去値の時系列データkact(k-i) （i ＝０，…，d1）とを用いて式（１３）の演算を行うことによって、Ｏ2 センサ６の推定偏差出力VO2(k+d)バーを求める。
【０１７１】
この場合、本実施形態では、式（１３）により推定偏差出力VO2(k+d)バーを算出するために必要となる係数α1 ，α2 及びβj （j=1,2,…,d）の値は、基本的には、前記ゲイン係数a1，a2，b1（これらは式（１２）のただし書きで定義した行列Ａ及びベクトルＢの成分である）の同定値である前記同定ゲイン係数a1ハット，a2ハット，b1ハットを用いて算出する。また、式（１３）の演算で必要となる無駄時間d1，d2の値は、前述の如く設定した値を用いる。
【０１７２】
尚、推定偏差出力VO2(k+d)バーは、ＬＡＦセンサ５の偏差出力kactのデータを使用せずに、式（１２）の演算により求めるようにしてもよい。この場合には、Ｏ2 センサ６の推定偏差出力VO2(k+d)バーは、Ｏ2 センサ６の偏差出力VO2 の現在値及び過去値の時系列データVO2(k)及びVO2(k-1)と、指令偏差空燃比kcmdの過去値の時系列データkcmd(k-j) （j=1,2,…,d）と、前記同定ゲイン係数a1ハット，a2ハット，b1ハットにより定まる係数α1 ，α2 及びβj （j=1,2,…,d）の値とを用いて推定偏差出力VO2(k+d)バーを求めることとなる。但し、推定偏差出力VO2(k+d)バーの信頼性を高める上では、エンジン１等の実際の挙動が反映されるＬＡＦセンサ５の偏差出力kactのデータを用いた式（１３）の演算により推定偏差出力VO2(k+d)バーを求めることが好ましい。
【０１７３】
また、空燃比操作系の無駄時間d2を「１」に設定できるような場合には、式（１２）中の指令偏差空燃比kcmdの過去値の時系列データkcmd(k-j) （ｊ＝1,2,…,d）の全てをそれぞれ、ＬＡＦセンサ５の偏差出力kactの現在以前に得られる時系列データkact(k) ，kact(k-1) ，…，kact(k-d+d2)に置き換えることができる。このため、この場合には、推定偏差出力VO2(k+d)バーは、指令偏差空燃比kcmdのデータを含まない次式（１４）により求めることができる。
【０１７４】
【数１４】
0003913940.tif 000015
【０１７５】
また、本記実施形態では、Ｏ2 センサ６の推定偏差出力VO2 バーを推定器２６により制御サイクル毎に求めるに際しては、式（１２）中の目標偏差空燃比kcmdの時系列データのうち、空燃比操作系の無駄時間d2以前のものについては全て、ＬＡＦセンサ５の偏差出力kactに置き換えた式（１３）により推定偏差出力VO2 バーを求めるようにした。但し、式（１２）中の無駄時間d2以前の目標偏差空燃比kcmdの時系列データのうちの一部のみをＬＡＦセンサ５の偏差出力kactに置き換えた式によって推定偏差出力VO2 バーを求めるようにしてもよい。
【０１７６】
以上説明した演算処理が推定器２６により制御サイクル毎にＯ2 センサ６の偏差出力VO2 の前記合計無駄時間ｄ後の推定値である推定偏差出力VO2(k+d)バーを求めるための基本的なアルゴリズムである。
【０１７７】
次に、前記スライディングモード制御器２７を説明する。尚、このスライディングモード制御器２７の詳細は、特願平１０−１３０８６４号にて本願出願人が説明しているので、ここでは、概略を説明する。
【０１７８】
本実施形態のスライディングモード制御器２７は、通常的なスライディングモード制御に外乱等の影響を極力排除するための適応則を加味した適応スライディングモード制御により、Ｏ2 センサ６の出力VO2/OUT をその目標値VO2/TARGETに収束させるように（Ｏ2 センサ６の偏差出力VO2 を「０」に収束させるように）エンジン１の空燃比を操作するための操作量として前記要求偏差空燃比ｕslを逐次求めるものである。そして、その処理のためのアルゴリズムは次のように構築されている。
【０１７９】
まず、スライディングモード制御器２７の適応スライディングモード制御に必要な切換関数とこの切換関数により定義される超平面（これはすべり面とも言われる）とについて説明する。
【０１８０】
本実施形態におけるスライディングモード制御の基本的な考え方としては、制御すべき状態量として、例えば各制御サイクルで得られたＯ2 センサ６の偏差出力VO2(k)と、その１制御サイクル前に得られた偏差出力VO2(k-1)とを用い、スライディングモード制御用の切換関数σを次式（１５）により定義する。すなわち、該切換関数σは、Ｏ2 センサ６の偏差出力VO2 の現在値及び過去値の時系列データVO2(k)，VO2(k-1)を成分とする線形関数により定義する。尚、前記偏差出力VO2(k)，VO2(k-1)を成分とするベクトルとして式（１５）中で定義したベクトルＸを以下、状態量Ｘという。
【０１８１】
【数１５】
0003913940.tif 000016
【０１８２】
この場合、切換関数σの成分VO2(k)，VO2(k-1)に係る係数s1，s2は、次式（１６）の条件を満たすように設定する。
【０１８３】
【数１６】
0003913940.tif 000017
【０１８４】
尚、本実施形態では、簡略化のために係数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は、状態量Ｘを超平面σ＝０上に拘束するための制御則に従って対象排気系Ｅに与えるべき入力成分である等価制御入力ｕeqと、前記到達則に従って対象排気系Ｅに与えるべき入力成分ｕrch （以下、到達則入力ｕrch という）と、前記適応則に従って対象排気系Ｅに与えるべき入力成分ｕadp （以下、適応則入力ｕadp という）との総和により表される（次式（１７））。
【０１８９】
【数１７】
0003913940.tif 000018
【０１９０】
そして、これらの等価制御入力ｕeq、到達則入力ｕrch 及び適応則入力ｕadp は、本実施形態では、前記式（１１）により表される離散時間系のモデル（式（１）中のＬＡＦセンサ５の偏差出力kact(k-d1)を合計無駄時間ｄを用いた指令偏差空燃比kcmd(k-d) で置き換えたモデル）に基づいて、次のように決定する。
【０１９１】
まず、状態量Ｘを超平面σ＝０に拘束するために対象排気系Ｅに与えるべき入力成分である前記等価制御入力ｕeqは、σ(k+1) ＝σ(k) ＝０なる条件を満たす指令偏差空燃比kcmdである。そして、このような条件を満たす等価制御入力ｕeqは、式（１１）と式（１５）とを用いて次式（１８）により与えられる。
【０１９２】
【数１８】
0003913940.tif 000019
【０１９３】
この式（１８）が本実施形態において、制御サイクル毎に等価制御入力ｕeq(k) を求めるための基本式である。
【０１９４】
次に、前記到達則入力ｕrch は、本実施形態では、基本的には次式（１９）により決定するものとする。
【０１９５】
【数１９】
0003913940.tif 000020
【０１９６】
すなわち、到達則入力ｕrch は、前記合計無駄時間ｄを考慮し、合計無駄時間ｄ後の切換関数σの値σ(k+d) に比例させるように決定する。
【０１９７】
この場合、式（１９）中の係数Ｆ（これは到達則のゲインを規定する）は、次式（２０）の条件を満たすように設定する。
【０１９８】
【数２０】
0003913940.tif 000021
【０１９９】
尚、切換関数σの値の挙動に関しては、該切換関数σの値が「０」に対して振動的な変化（所謂チャタリング）を生じる虞れがあり、このチャタリングを抑制するためには、到達則入力ｕrch に係わる係数Ｆは、さらに次式（２１）の条件を満たすように設定することが好ましい。
【０２００】
【数２１】
0003913940.tif 000022
【０２０１】
次に、前記適応則入力ｕadp は、本実施形態では、基本的には次式（２２）により決定するものとする。ここで式（２２）中のΔＴは排気側制御ユニット７ａの制御サイクルの周期である。
【０２０２】
【数２２】
0003913940.tif 000023
【０２０３】
すなわち、適応則入力ｕadp は、合計無駄時間ｄを考慮し、該合計無駄時間ｄ後までの切換関数σの値の制御サイクル毎の積算値（これは切換関数σの値の積分値に相当する）に比例させるように決定する。
【０２０４】
この場合、式（２２）中の係数Ｇ（これは適応則のゲインを規定する）は、次式（２３）の条件を満たすように設定する。
【０２０５】
【数２３】
0003913940.tif 000024
【０２０６】
尚、前記式（１６）、（２０）、（２１）、（２３）の設定条件のより具体的な導出の仕方については、本願出願人が既に特開平１１−９３７４１号公報等にて詳細に説明しているので、ここでは詳細な説明を省略する。
【０２０７】
前記Ｏ2 センサ６の出力VO2/OUT をその目標値VO2/TARGETに収束させる（Ｏ2 センサ６の偏差出力VO2 を「０」に収束させる）上で対象排気系Ｅに与えるべき入力としての前記要求偏差空燃比ｕslは、基本的には前記式（１８）、（１９）、（２２）により決定される等価制御入力ｕeq、到達則入力ｕrch 及び適応則入力ｕadp の総和（ｕeq＋ｕrch ＋ｕadp ）として決定すればよい。しかるに、前記式（１８）、（１９）、（２２）で使用するＯ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を算出する。
【０２０９】
【数２４】
0003913940.tif 000025
【０２１０】
また、本実施形態では、実際には、推定器２６により前述の如く逐次求められた推定偏差出力VO2 バーの時系列データを制御すべき状態量とする。すなわち、前記式（１５）により設定された切換関数σに代えて、次式（２５）により切換関数σバーを定義する（この切換関数σバーは、前記式（１５）の偏差出力VO2 の時系列データを推定偏差出力VO2 バーの時系列データで置き換えたものに相当する）。
【０２１１】
【数２５】
0003913940.tif 000026
【０２１２】
そして、スライディングモード制御器２７は、前記式（１９）により前記到達則入力ｕrch を決定するための切換関数σの値の代わりに、前記式（２５）により表される切換関数σバーの値を用いて次式（２６）により制御サイクル毎の到達則入力ｕrch を算出する。
【０２１３】
【数２６】
0003913940.tif 000027
【０２１４】
同様に、スライディングモード制御器２７は、前記式（２２）により前記適応則入力ｕadp を決定するための切換関数σの値の代わりに、前記式（２５）により表される切換関数σバーの値を用いて次式（２７）により制御サイクル毎の適応則入力ｕadp を算出する。
【０２１５】
【数２７】
0003913940.tif 000028
【０２１６】
尚、前記式（２４），（２６），（２７）により等価制御入力ｕeq、到達則入力ｕrch 及び適応則入力ｕadp を算出する際に必要となる前記ゲイン係数a1，a2，b1としては、本実施形態では基本的には前記同定器２５により求められた最新の同定ゲイン係数a1(k) ハット，a2(k) ハット，b1(k) ハットを用いる。
【０２１７】
そして、スライディングモード制御器２７は、前記式（２４）、（２６）、（２７）によりそれぞれ求められる等価制御入力ｕeq、到達則入力ｕrch 及び適応則入力ｕadp の総和を前記要求偏差空燃比ｕslとして求める（前記式（１７）を参照）。尚、この場合において、前記式（２４）、（２６）、（２７）中で用いる前記係数s1，s2，Ｆ, Ｇの設定条件は前述の通りである。
【０２１８】
このようにしてスライディングモード制御器２７が求める要求偏差空燃比ｕslは、Ｏ2 センサ６の推定偏差出力VO2 バーを「０」に収束させ、その結果としてＯ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で、対象排気系Ｅに与えるべき入力、すなわちエンジン１の空燃比と前記基準値FLAF/BASE との偏差の目標値である。
【０２１９】
以上説明した処理が、本実施形態において、スライディングモード制御器２７により前記要求偏差空燃比ｕslを制御サイクル毎に生成するための演算処理（アルゴリズム）である。
【０２２０】
尚、前述した如く、排気側制御ユニット７ａの目標空燃比生成処理部２８は、上記のようにスライディングモード制御器２７が生成した要求偏差空燃比ｕslに前記リミッタ３０（図３参照）でリミット処理を施して前記指令偏差空燃比kcmd（通常的にはkcmd＝ｕsl）を求める。そして、この指令偏差空燃比kcmdに、次式（２８）のように前記加算処理部３１で前記空燃比基準値FLAF/BASE を加算することで機関側制御ユニット７ｂに与える目標空燃比KCMD（＝kcmd＋FLAF/BASE ）を確定するようにしている。
【０２２１】
【数２８】
0003913940.tif 000029
【０２２２】
また、本実施形態では、リミッタ３０は前記要求偏差空燃比ｕslにリミット処理を施すための許容範囲を要求偏差空燃比ｕslやエンジン１の運転状態等に応じて逐次可変的に設定するのであるが、これについては後述する。
【０２２３】
さらに、本実施形態では、要求偏差空燃比ｕslや指令偏差空燃比kcmdの基準としている前記空燃比基準値FLAF/BASE は、前記基準値設定部１１によって、スライディングモード制御器２７が生成する要求偏差空燃比ｕslの適応則成分である前記適応則入力ｕadp に応じて逐次可変的に設定されるのであるが、これについても後述する。
【０２２４】
次に、前記機関側制御ユニット７ｂの大局的フィードバック制御部１５、特に前記適応制御器１８をさらに説明する。
【０２２５】
前記図１を参照して、大局的フィードバック制御部１５は、前述のようにＬＡＦセンサ５の出力KACT（空燃比の検出値）を目標空燃比KCMDに収束させるようにフィードバック制御を行うものである。このとき、このようなフィードバック制御を周知のＰＩＤ制御だけで行うようにすると、エンジン１の運転状態の変化や経年的特性変化等、動的な挙動変化に対して、安定した制御性を確保することが困難である。
【０２２６】
前記適応制御器１８は、上記のようなエンジン１の動的な挙動変化を補償したフィードバック制御を可能とする漸化式形式の制御器であり、Ｉ．Ｄ．ランダウ等により提唱されているパラメータ調整則を用いて、図５に示すように、複数の適応パラメータを設定するパラメータ調整部３２と、設定された適応パラメータを用いて前記フィードバック操作量KSTRを算出する操作量算出部３３とにより構成されている。
【０２２７】
ここで、パラメータ調整部３２について説明すると、ランダウ等の調整則では、離散系の制御対象の伝達関数Ｂ（Ｚ-1）／Ａ（Ｚ-1）の分母分子の多項式を一般的に下記の式（２９），（３０）のようにおいたとき、パラメータ調整部３０が設定する適応パラメータθハット(j) （ｊは制御サイクルの番数を示す）は、式（３１）のようにベクトル（転置ベクトル）で表される。また、パラメータ調整部３２への入力ζ(j) は、式（３２）のように表される。この場合、本実施形態では、大局的フィードバック制御部１５の制御対象であるエンジン１が一次系で３制御サイクル分の無駄時間ｄp （エンジン１の燃焼サイクルの３サイクル分の時間）を持つプラントと考え、式（２９）〜式（３２）でｍ＝ｎ＝１，ｄp ＝３とし、設定する適応パラメータはｓ0 ，ｒ1 ，ｒ2 ，ｒ3 ，ｂ0 の５個とした（図５参照）。尚、式（３２）の上段式及び中段式におけるｕs ，ｙs は、それぞれ、制御対象への入力（操作量）及び制御対象の出力（制御量）を一般的に表したものであるが、本実施形態では、上記入力をフィードバック操作量KSTR、制御対象（エンジン１）の出力を前記ＬＡＦセンサ５の出力KACT（空燃比の検出値）とし、パラメータ調整部３２への入力ζ(j) を、式（３２）の下段式により表す（図５参照）。
【０２２８】
【数２９】
0003913940.tif 000030
【０２２９】
【数３０】
0003913940.tif 000031
【０２３０】
【数３１】
0003913940.tif 000032
【０２３１】
【数３２】
0003913940.tif 000033
【０２３２】
ここで、前記式（３１）に示される適応パラメータθハットは、適応制御器１８のゲインを決定するスカラ量要素ｂ0 ハット-1（Ｚ-1，ｊ）、操作量を用いて表現される制御要素ＢR ハット（Ｚ-1，ｊ）、及び制御量を用いて表現される制御要素Ｓ（Ｚ-1，ｊ）からなり、それぞれ、次式（３３）〜（３５）により表現される（図５の操作量算出部３３のブロック図を参照）。
【０２３３】
【数３３】
0003913940.tif 000034
【０２３４】
【数３４】
0003913940.tif 000035
【０２３５】
【数３５】
0003913940.tif 000036
【０２３６】
パラメータ調整部３２は、これらのスカラ量要素や制御要素の各係数を設定して、それを式（３１）に示す適応パラメータθハットとして操作量算出部３３に与えるものである。そして、現在から過去に渡るフィードバック操作量KSTRの時系列データとＬＡＦセンサ５の出力KACTとを用いて、該出力KACTが前記目標空燃比KCMDに一致するように、適応パラメータθハットを算出する。
【０２３７】
この場合、具体的には、適応パラメータθハットは、次式（３６）により算出する。
【０２３８】
【数３６】
0003913940.tif 000037
【０２３９】
同式（３６）において、Γ(j) は、適応パラメータθハットの設定速度を決定するゲイン行列（この行列の次数はｍ＋ｎ＋ｄp ）、ｅアスタリスク(j) は、適応パラメータθハットの推定誤差を示すもので、それぞれ式（３７），（３８）のような漸化式で表される。
【０２４０】
【数３７】
0003913940.tif 000038
【０２４１】
【数３８】
0003913940.tif 000039
【０２４２】
ここで、式（３８）中の「Ｄ（Ｚ-1）」は、収束性を調整するための、漸近安定な多項式であり、本実施形態ではＤ（Ｚ-1）＝１としている。
【０２４３】
尚、式（３７）のλ1(j)，λ2(j)の選び方により、漸減ゲインアルゴリズム、可変ゲインアルゴリズム、固定トレースアルゴリズム、固定ゲインアルゴリズム等の種々の具体的なアルゴリズムが得られる。エンジン１の燃料噴射あるいは空燃比等の時変プラントでは、漸減ゲインアルゴリズム、可変ゲインアルゴリズム、固定ゲインアルゴリズム、および固定トレースアルゴリズムのいずれもが適している。
【０２４４】
前述のようにパラメータ調整部３２により設定される適応パラメータθハット（ｓ0 ，ｒ1 ，ｒ2 ，ｒ3 ，ｂ0 ）と、前記排気側制御ユニット７ａにより決定される目標空燃比KCMDとを用いて、操作量算出部３３は、次式（３９）の漸化  式により、フィードバック操作量KSTRを求める。図５の操作量算出部３３は、同式（３９）の演算をブロック図で表したものである。
【０２４５】
【数３９】
0003913940.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(n=1,2,3,4)の算出処理について説明する。機関側制御ユニット７ｂは、各気筒毎の出力燃料噴射量#nＴout の算出処理をエンジン１のクランク角周期と同期した制御サイクルで次のように行う。
【０２５５】
機関側制御ユニット７ｂは、まず、前記ＬＡＦセンサ５及びＯ2 センサ６を含む各種センサの出力を読み込む（ＳＴＥＰａ）。この場合、ＬＡＦセンサ５の出力KACT及びＯ2 センサ６の出力VO2/OUT はそれぞれ過去に得られたものを含めて時系列的に図示しないメモリに記憶保持される。
【０２５６】
次いで、基本燃料噴射量算出部８によって、前述の如くエンジン１の回転数NE及び吸気圧PBに対応する燃料噴射量をスロットル弁の有効開口面積に応じて補正してなる基本燃料噴射量Ｔimが求められる（ＳＴＥＰｂ）。さらに、第１補正係数算出部９によって、エンジン１の冷却水温やキャニスタのパージ量等に応じた第１補正係数KTOTALが算出される（ＳＴＥＰｃ）。
【０２５７】
次いで、機関側制御ユニット７ｂは、エンジン１の運転モードを判別する処理を行なって、排気側制御ユニット７ａの目標空燃比生成処理部２８で生成される目標空燃比KCMDをエンジン１の空燃比の操作のために使用するか否かを規定するフラグf/prism/onの値を設定する（ＳＴＥＰｄ）。
【０２５８】
すなわち、本実施形態では、エンジン１の運転モード（詳しくはエンジン１の空燃比の操作形態）として、機関側制御ユニット７ｂが、目標空燃比生成処理部２８で生成される目標空燃比KCMD（これは基本的にはＯ2 センサ６の出力VO2/OUを目標値VO2/TARGETに収束させるための目標空燃比である）を使用し、その目標空燃比KCMDにＬＡＦセンサ５の出力KACT（空燃比の検出値）を収束させるようにエンジン１の空燃比を操作する（エンジン１の燃料噴射量を調整する）運転モードと、機関側制御ユニット７ｂが目標空燃比生成処理部２８で生成される目標空燃比KCMDを使用せずに、エンジン１の空燃比を操作する（エンジン１の燃料噴射量を調整する）運転モードとがある。
【０２５９】
この場合、前者の運転モードはエンジン１の稼動中の通常的な運転モード（以下、通常運転モードという）である。また、後者の運転モードは、複数種類有り、例えばエンジン１のフュエルカット（燃料供給の停止）を行なう運転モードや、エンジン１の図示しないスロットル弁の全開時の運転モード、エンジン１の空燃比をリーン状態に操作する運転モード（リーン運転モード）等がある。
【０２６０】
そして、上記ＳＴＥＰｄの判別処理は、エンジン１の運転モードが前記通常運転モードであるか否か、換言すれば、機関側制御ユニット７ｂが目標空燃比生成処理部２８で生成される目標空燃比KCMDを使用してエンジン１の空燃比を操作すべき状況であるか否かを判別する処理である。また、この処理により設定されるフラグf/prism/onの値は、それが「０」のとき、目標空燃比生成処理部２８で生成される目標空燃比KCMDを使用しないこと（運転モードが前記通常運転モードでないこと）を意味し、「１」のとき、目標空燃比生成処理部２８で生成される目標空燃比KCMDを使用すること（運転モードが前記通常運転モードであること）を意味する。
【０２６１】
上記の判別処理では、図７に示すように、まず、Ｏ2 センサ６及びＬＡＦセンサ５が活性化しているか否かの判別が行われる（ＳＴＥＰｄ−１，ｄ−２）。このとき、いずれかが活性化していない場合には、目標空燃比生成処理部２８の処理に使用するＯ2 センサ６及びＬＡＦセンサ５の検出データを精度よく得ることができないため、該目標空燃比生成処理部２８は適正な目標空燃比を生成することができない。従って、この場合には、前記通常運転モードでのエンジン１の運転を行なうことはできないので、フラグf/prism/onの値を「０」にセットする（ＳＴＥＰｄ−１０）。
【０２６２】
また、エンジン１のリーン運転を行う状態であるか否か（ＳＴＥＰｄ−３）、エンジン１の始動直後の触媒装置３の早期活性化を図るためにエンジン１の点火時期を遅角側に制御する運転を行なう状態であるか否か（ＳＴＥＰｄ−４）、エンジン１のスロットル弁が略全開とされた状態であるか否か（ＳＴＥＰｄ−５）、及びエンジン１のフュエルカットを行なう状態であるか否か（ＳＴＥＰｄ−６）の判別が行われる。そして、これらのいずれかの条件が成立している状況（いずれかの判別結果がＹＥＳとなる状況）では、エンジン１の運転モードは通常運転モードではないので、フラグf/prism/onの値を「０」にセットする（ＳＴＥＰｄ−１０）。
【０２６３】
さらに、エンジン１の回転数NE及び吸気圧PBがそれぞれ所定範囲内（正常な範囲内）にあるか否かの判別が行われる（ＳＴＥＰｄ−７，ｄ−８）。このとき、いずれかが所定範囲内にない場合には、目標空燃比生成処理部２８で生成される目標空燃比KCMDを使用してエンジン１の空燃比を操作することは好ましくない。従って、この場合には、前記通常運転モードでのエンジン１の運転を行なうことは不適当であるので、フラグf/prism/onの値を「０」にセットする（ＳＴＥＰｄ−１０）。
【０２６４】
そして、ＳＴＥＰｄ−１，ｄ−２，ｄ−７，ｄ−８の条件が満たされ、且つ、ＳＴＥＰｄ−３，ｄ−４，ｄ−５，ｄ−６の条件が成立していない場合に（これは通常的な場合である）、機関側制御ユニット７ｂは、エンジン１の運転モードが、目標空燃比生成処理部２８で生成される目標空燃比KCMDをエンジン１の空燃比の操作に使用する通常運転モードであるとして、フラグf/prism/onの値を「１」にセットする（ＳＴＥＰｄ−９）。
【０２６５】
尚、ＳＴＥＰｄ−１０でフラグf/prism/onの値を「０」にセットしたときには、フラグf/prism/onの値が「０」から「１」に切り替わる時点からの経過時間、すなわち、目標空燃比生成処理部２８で生成される目標空燃比KCMDによるエンジン１の空燃比の操作（Ｏ2 センサ６の出力VO2/OUT の目標値VO2/TARGETへの収束制御）を開始してからの経過時間を計時するタイマカウンタtm/stb（カントダウンタイマ）の値を所定の初期値TMSTB に設定して該タイマカウンタtm/stbを起動する（ＳＴＥＰｄ−１１）。このタイマカウンタtm/stbは、その値が一定周期（排気側制御ユニット７ａの制御サイクルの周期よりも長い周期）でカウントダウンされていくものである。そして、上記初期値TMSTB は、後述するスライディングモード制御器２７の安定性の判断を禁止する期間に相当するものである。
【０２６６】
図７に戻って、上記のようにフラグf/prism/onの値を設定した後、機関側制御ユニット７ｂは、フラグf/prism/onの値を判断する（ＳＴＥＰｅ）。このとき、f/prism/on＝１である場合には、目標空燃比生成処理部２８で生成された最新の目標空燃比KCMDを読み込む（ＳＴＥＰｆ）。また、f/prism/on＝０である場合には、目標空燃比KCMDを所定値に設定する（ＳＴＥＰｇ）。この場合、目標空燃比KCMDとして設定する所定値は、例えばエンジン１の回転数NEや吸気圧PBからあらかじめ定めたマップ等を用いて決定する。尚、特に、エンジン１のリーン運転を行なう場合に、ＳＴＥＰｇで設定される目標空燃比KCMDは、リーン領域の空燃比である。
【０２６７】
次いで、機関側制御ユニット７ｂは、前記局所的フィードバック制御部１６において、前述の如くオブザーバ２１によりＬＡＦセンサ５の出力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の値を「１」にセットする（ＳＴＥＰ１−７）。
【０２７８】
また、エンジン１のリーン運転が行なわれる状態であるか否か、及びエンジン１の始動直後の触媒装置３の早期活性化を図るためにエンジン１の点火時期を遅角側に制御する運転を行なう状態であるか否かの判別が行われる（ＳＴＥＰ１−３，１−４）。これらのいずれかの条件が成立している場合には、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させるような目標空燃比KCMDを生成しても、それをエンジン１の燃料制御に使用することはないので、フラグf/prism/cal の値を「０」にセットする（ＳＴＥＰ１−６）。さらに同定器２５の初期化を行うために、フラグf/id/resetの値を「１」にセットする（ＳＴＥＰ１−７）。
【０２７９】
そして、ＳＴＥＰ１−１，１−２の条件が満たされ、且つＳＴＥＰ１−３，１−４の条件が成立していない場合には、フラグf/prism/cal の値を「１」にセットする（ＳＴＥＰ１−５）。
【０２８０】
図８に戻って、上記のような判別処理を行った後、目標空燃比生成処理部２８は、さらに、同定器２５による前記ゲイン係数a1,a2,b1の同定処理（同定値の更新処理）を実行するか否かの判別処理を行って、その実行の可否をそれぞれ「１」、「０」で表すフラグf/id/calの値を設定する（ＳＴＥＰ２）。
【０２８１】
このＳＴＥＰ２の判別処理では、エンジン１のスロットル弁が略全開とされた状態であるか否か、及びエンジン１のフュエルカットを行なう状態であるか否かの判別が行われる。これらのいずれかの条件が成立している場合には、前記ゲイン係数a1,a2,b1の値を適正に同定することが困難であるため、フラグf/id/calの値を「０」にセットする。そして、上記のいずれの条件も成立していない場合には、同定器２５による前記ゲイン係数a1,a2,b1の同定処理（同定値の更新処理）を実行すべくフラグf/id/calの値を「１」にセットする。
【０２８２】
図８に戻って、目標空燃比生成処理部２８は、次に、前記減算処理部１２，１３により、それぞれ最新の前記偏差出力kact(k) （＝KACT−FLAF/BASE ）及びVO2(k)（＝VO2/OUT −VO2/TARGET）を算出する（ＳＴＥＰ３）。この場合、減算処理部１２，１３は、前記図６のＳＴＥＰａにおいて取り込まれて図示しないメモリに記憶されたＬＡＦセンサ５の出力KACT及びＯ2 センサ６の出力VO2/OUT の時系列データの中から、最新のものを選択して前記偏差出力kact(k) 及びVO2(k)を算出する。また、偏差出力kact(k) の算出に必要な空燃比基準値FLAF/BASE は、基準値設定部１１によって後述の如く設定される最新のものを用いる。そして、これらの偏差出力kact(k) 及びVO2(k)のデータは、排気側制御ユニット７ａ内において、過去に算出したものを含めて時系列的に図示しないメモリに記憶保持される。
【０２８３】
次いで、目標空燃比生成処理部２８は、前記ＳＴＥＰ１で設定されたフラグf/prism/cal の値を判断する（ＳＴＥＰ４）。このとき、f/prism/cal ＝０である場合、すなわち、目標空燃比生成処理部２８の演算処理を行わない場合には、目標空燃比KCMDを決定するための前記指令偏差空燃比kcmdの値を強制的に所定値に設定する（ＳＴＥＰ１３）。この場合、該所定値は、例えばあらかじめ定めた固定値（例えば「０」）あるいは前回の制御サイクルで決定した指令偏差空燃比kcmdの値とする。尚、このように指令偏差空燃比kcmdを所定値とした場合において、目標空燃比生成処理部２８は、その所定値の指令偏差空燃比kcmdに、前記加算処理部３１で前記空燃比基準値FLAF/BASE （基準値設定部１１で設定された最新のもの）を加算することで、今回の制御サイクルにおける目標空燃比KCMDを決定する（ＳＴＥＰ１１）。さらに、基準値設定部１１により空燃比基準値FLAF/BASE の後述する設定処理を行った後（ＳＴＥＰ１２）、今回の制御サイクルの処理を終了する。
【０２８４】
一方、ＳＴＥＰ４の判断で、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の値は「０」にリセットされる。
【０２８８】
次いで、同定器２５は、現在の同定ゲイン係数a1(k-1) ハット，a2(k-1) ハット，b1(k-1) ハットを用いて表される排気系モデル（前記式（３）参照）の出力である前記同定偏差出力VO2(k)ハットを、前記ＳＴＥＰ３で制御サイクル毎に算出される偏差出力VO2 及びkactの過去値のデータVO2(k-1)，VO2(k-2)，kact(k-d-1) と、上記同定ゲイン係数a1(k-1) ハット，a2(k-1) ハット，b1(k-1) ハットの値とを用いて前記式（３）あるいはこれと等価の前記式（６）により算出する（ＳＴＥＰ５−４）。
【０２８９】
さらに同定器２５は、新たな同定ゲイン係数a1ハット，a2ハット，b1ハットを決定する際に使用する前記ベクトルＫθ(k) を式（９）により算出した後（ＳＴＥＰ５−５）、前記同定誤差id/e（排気系モデル上でのＯ2 センサ６の同定偏差出力VO2 ハットと、実際の偏差出力VO2 との偏差。式（７）参照）を算出する（ＳＴＥＰ５−６）。
【０２９０】
ここで、ＳＴＥＰ５−６で求める同定誤差id/eは、基本的には、前記式（７）の演算により算出すればよい。但し、本実施形態では、前記ＳＴＥＰ３（図８参照）で制御サイクル毎に算出する偏差出力VO2 と、前記ＳＴＥＰ５−４で制御サイクル毎に算出する同定偏差出力VO2 ハットとから式（７）の演算により得られた値（＝VO2 −VO2 ハット）に、さらにローパス特性のフィルタリングを施すことで同定誤差id/eを求める。
【０２９１】
これは、触媒装置３を含む対象排気系Ｅは一般にローパス特性を有するため、前記排気系モデルのゲイン係数a1,a2,b1を適正に同定する上では、対象排気系Ｅの低周波数側の挙動を重視することが好ましいからである。
【０２９２】
尚、このようなフィルタリングは、結果的に、偏差出力VO2 及び同定偏差出力VO2 ハットの両者に同じローパス特性のフィルタリングが施されていればよい。このため、例えば偏差出力VO2 及び同定偏差出力VO2 ハットにそれぞれ各別にフィルタリングを施した後に式（７）の演算を行って同定誤差id/eを求めるようにしてもよい。また、前記のフィルタリングは、例えばディジタルフィルタの一手法である移動平均処理によって行われる。
【０２９３】
上記のようにして同定誤差id/eを求めた後、同定器２５は、この同定誤差id/eと、前記ＳＴＥＰ５−５で算出したＫθとを用いて前記式（８）により新たな同定ゲイン係数ベクトルΘ(k) 、すなわち、新たな同定ゲイン係数a1(k) ハット，a2(k) ハット，b1(k) ハットを算出する（ＳＴＥＰ５−７）。
【０２９４】
このようにして新たな同定ゲイン係数a1(k) ハット，a2(k) ハット，b1(k) ハットを算出した後、同定器２５は、以下に説明する如く、同定ゲイン係数a1ハット，a2ハット，b1ハット（同定ゲイン係数ベクトルΘの要素）の値を、所定の条件を満たすように制限する処理を行う（ＳＴＥＰ５−８）。
【０２９５】
この場合、同定ゲイン係数a1ハット、a2ハット、b1ハットの値を制限するための前記所定の条件は、同定ゲイン係数a1ハット、a2ハットの値の組み合わせを所定の組み合わせに制限するための条件（以下、第１制限条件という）と、同定ゲイン係数b1ハットの値を制限するための条件（以下、第２制限条件という）とがある。
【０２９６】
ここで、これらの第１及び第２制限条件、並びにＳＴＥＰ５−８の具体的な処理内容を説明する前に、同定ゲイン係数a1ハット、a2ハット、b1ハットの値を制限する理由を説明しておく。
【０２９７】
本願発明者等の知見によれば、本実施形態の装置において、同定ゲイン係数a1ハット、a2ハット、b1ハットの値を特に制限しない場合には、Ｏ2 センサ６の出力VO2/OUT がその目標値VO2/TARGETに安定して制御されている状態で、スライディングモード制御器２７により求められる前記要求偏差空燃比ｕsl、ひいては目標空燃比KCMDが平滑的な時間変化を呈する状況と、高周波振動的な時間変化を呈する状況との二種類の状況が生じることが判明した。この場合、いずれの状況においても、Ｏ2 センサ６の出力VO2/OUT をその目標値VO2/TARGETに制御する上では支障がないものの、目標空燃比KCMDが高周波振動的な時間変化を呈する状況は、エンジン１の円滑な運転を行う上では、あまり好ましくない。
【０２９８】
そして、上記の現象について本願発明者等が検討したところ、前記要求偏差空燃比ｕslあるいは目標空燃比KCMDが平滑的なものとなるか高周波振動的なものとなるかは、同定器２５により同定するゲイン係数a1，a2の値の組み合わせや、ゲイン係数b1の値の影響を受けることが判明した。
【０２９９】
このために、本実施形態では、前記第１制限条件と第２制限条件とを適切に設定し、これらの条件により、同定ゲイン係数a1ハット、a2ハットの値の組み合わせや、同定ゲイン係数b1ハットの値を適切に制限する。そして、この制限により、目標空燃比KCMDが高周波振動的なものとなるような状況を排除する。
【０３００】
この場合、本実施形態では前記第１制限条件及び第２制限条件は次のように設定する。
【０３０１】
まず、同定ゲイン係数a1ハット、a2ハットの値の組み合わせを制限するための第１制限条件に関し、本願発明者等の検討によれば、平滑的で安定した要求偏差空燃比ｕslや目標空燃比KCMDを得るためには、ゲイン係数a1，a2の値により定まる前記式（１２）〜（１４）の係数値α1 ，α2 、すなわち、前記推定器２６が前記推定偏差出力VO2(k+d)バーを求めるために使用する前記係数値α1 ，α2 （これらの係数値α1 ，α2 は前記式（１２）中で定義した行列Ａの巾乗Ａd の第１行第１列成分及び第１行第２列成分である）の組み合わせが密接に関連している。
【０３０２】
具体的には、図１１に示すように係数値α1 ，α2 をそれぞれ成分とする座標平面を設定したとき、係数値α1 ，α2 の組により定まる該座標平面上の点が図１１の斜線を付した領域（三角形Ｑ1 Ｑ2 Ｑ3 で囲まれた領域（境界を含む）。以下、この領域を推定係数安定領域という）に存するとき、要求偏差空燃比ｕslや目標空燃比KCMDが平滑的で安定したものとなりやすい。
【０３０３】
従って、同定器２５により同定するゲイン係数a1，a2の値、すなわち同定ゲイン係数a1ハット、a2ハットの値の組み合わせは、これらの値により定まる係数値α1 ，α2 の組に対応する図１１の座標平面上の点が上記推定係数安定領域内に存するように制限することが好ましい。
【０３０４】
尚、図１１において、上記推定係数安定領域を含んで座標平面上に表した三角形領域Ｑ1 Ｑ4 Ｑ3 は、次式（４０）により定義される系、すなわち、前記式（１２）の右辺のVO2(k)及びVO2(k-1)をそれぞれVO2(k)バー及びVO2(k-1)バー（これらのVO2(k)バー及びVO2(k-1)バーは、それぞれ、推定器２６により制御サイクル毎に求められる推定偏差出力及びその１制御サイクル前に求められる推定偏差出力を意味する）により置き換えてなる式により定義される系が、理論上、安定となるような係数値α1 ，α2 の組み合わせを規定する領域である。
【０３０５】
【数４０】
0003913940.tif 000041
【０３０６】
すなわち、式（４０）により表される系が安定となる条件は、その系の極（これは、次式（４１）により与えられる）が複素平面上の単位円内に存在することである。
【０３０７】
【数４１】
0003913940.tif 000042
【０３０８】
そして、図１１の三角形領域Ｑ1 Ｑ4 Ｑ3 は、上記の条件を満たす係数値α1 ，α2 の組み合わせを規定する領域である。従って、前記推定係数安定領域は、前記式（４０）により表される系が安定となるような係数値α1 ，α2 の組み合わせのうち、α1 ≧０となる組み合わせの領域である。
【０３０９】
一方、係数値α1 ，α2 は、ゲイン係数a1，a2の値の組み合わせにより定まるので、逆算的に、係数値α1 ，α2 の組み合わせからゲイン係数a1，a2の値の組み合わせも定まる。従って、係数値α1 ，α2 の好ましい組み合わせを規定する図１１の推定係数安定領域は、ゲイン係数a1，a2を座標成分とする図１２の座標平面上に変換することができる。この変換を行うと、該推定係数安定領域は、図１２の座標平面上では、例えば図１２の仮想線で囲まれた領域（下部に凹凸を有する大略三角形状の領域。以下、同定係数安定領域という）に変換される。すなわち、ゲイン係数a1，a2の値の組により定まる図１２の座標平面上の点が、同図の仮想線で囲まれた同定係数安定領域に存するとき、それらのゲイン係数a1，a2の値により定まる係数値α1 ，α2 の組に対応する図１１の座標平面上の点が前記推定係数安定領域内に存することとなる。
【０３１０】
従って、同定器２５により求める同定ゲイン係数a1ハット、a2ハットの値を制限するための前記第１制限条件は、基本的には、それらの値により定まる図１２の座標平面上の点が前記同定係数安定領域に存することとして設定することが好ましい。
【０３１１】
但し、図１２に仮想線で示した同定係数安定領域の境界の一部（図の下部）は凹凸を有する複雑な形状を呈しているため、実用上、同定ゲイン係数a1ハット、a2ハットの値により定まる図１２の座標平面上の点を同定係数安定領域内に制限するための処理が煩雑なものとなりやすい。
【０３１２】
そこで、本実施形態では、同定係数安定領域を、例えば図１２の実線で囲まれた四角形Ｑ5 Ｑ6 Ｑ7 Ｑ8 の領域（境界を直線状に形成した領域。以下、同定係数制限領域という）により大略近似する。この場合、この同定係数制限領域は、図示の如く、｜a1｜＋a2＝１なる関数式により表される折れ線（線分Ｑ5 Ｑ6 及び線分Ｑ5 Ｑ8 を含む線）と、a1＝A1L （A1L ：定数）なる定値関数式により表される直線（線分Ｑ6 Ｑ7 を含む直線）と、a2＝A2L （A2L ：定数）なる定値関数式により表される直線（線分Ｑ7 Ｑ8 を含む直線）とにより囲まれた領域である。そして、同定ゲイン係数a1ハット、a2ハットの値を制限するための前記第１制限条件を、それらの値により定まる図１２の座標平面上の点が上記同定係数制限領域に存することとして設定する。この場合、同定係数制限領域の下辺部の一部は、前記同定係数安定領域を逸脱しているものの、現実には同定器２５が求める同定ゲイン係数a1ハット、a2ハットの値により定まる点は上記の逸脱領域には入らないことを実験的に確認している。従って、上記の逸脱領域があっても、実用上は支障がない。
【０３１３】
尚、このような同定係数制限領域の設定の仕方は例示的なもので、該同定係数制限領域は、基本的には、前記同定係数安定領域に等しいか、もしくは該同定係数安定領域を大略近似し、あるいは、同定係数制限領域の大部分もしくは全部が同定係数安定領域に属するように設定すれば、どのような形状のものに設定してもよい。つまり、同定係数制限領域は、同定ゲイン係数a1ハット、a2ハットの値の制限処理の容易さ、実際上の制御性等を考慮して種々の設定が可能である。
【０３１４】
例えば本実施形態では、同定係数制限領域の上半部の境界を｜a1｜＋a2＝１なる関数式により規定しているが、この関数式を満たすゲイン係数a1，a2の値の組み合わせは、前記式（４１）により与えられる系の極が複素平面上の単位円周上に存するような理論上の安定限界の組み合わせである。従って、同定係数制限領域の上半部の境界を例えば｜a1｜＋a2＝ｒ（但し、ｒは上記の安定限界に対応する「１」よりも若干小さい値で、例えば０．９９）なる関数式により規定し、制御の安定性をより高めるようにしてもよい。
【０３１５】
また、前記同定係数制限領域の基礎となる図１２の同定係数安定領域も例示的なものであり、図１１の推定係数安定領域に対応する同定係数安定領域は、係数値α1 ，α2 の定義から明らかなように（式（１２）を参照）、前記合計無駄時間ｄ（より正確にはその設定値）の影響も受け、該合計無駄時間ｄの値によって、同定係数安定領域の形状が変化する。この場合、同定係数安定領域がどのような形状のものであっても、前記同定係数制限領域は、同定係数安定領域の形状に合わせて前述の如く設定すればよい。
【０３１６】
次に、同定器２５が同定する前記ゲイン係数ｂ1 の値、すなわち同定ゲイン係数ｂ1 ハットの値を制限するための前記第２制限条件は本実施形態では次のように設定する。
【０３１７】
すなわち、本願発明者等の知見によれば、前記目標空燃比KCMDの時間的変化が高周波振動的なものとなる状況は、同定ゲイン係数ｂ1 ハットの値が過大もしくは過小となるような場合にも生じ易い。そこで、本実施形態では、同定ゲイン係数ｂ1 ハットの値の上限値B1H 及び下限値B1L （B1H ＞B1L ＞０）をあらかじめ実験やシミュレーションを通じて定めておく。そして、前記第２制限条件を、同定ゲイン係数ｂ1 ハットの値が上限値B1H 以下で且つ下限値B1L 以上の値になること（B1L ≦ｂ1 ハット≦B1H の不等式を満たすこと）として設定する。
【０３１８】
以上説明した如く設定した第１制限条件及び第２制限条件により同定ゲイン係数a1ハット、a2ハット、b1ハットの値を制限するための前記ＳＴＥＰ５−８の処理は、具体的には次のように行われる。
【０３１９】
すなわち、図１３のフローチャートを参照して、同定器２５は、前記図１０のＳＴＥＰ５−７で前述の如く求めた同定ゲイン係数a1(k) ハット、a2(k) ハット、b1(k) ハットについて、まず、同定ゲイン係数a1(k) ハット、a2(k) ハットの値の組み合わせを前記第１制限条件により制限するための処理をＳＴＥＰ５−８−１〜５−８−８で行う。
【０３２０】
具体的には、同定器２５は、まず、ＳＴＥＰ５−７で求めた同定ゲイン係数a2(k) ハットの値が、前記同定係数制限領域におけるゲイン係数a2の下限値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の上限値A1H は、図１２から明らかなように折れ線｜a1｜＋a2＝１（但しa1＞０）と、直線a2＝A2L との交点Ｑ8 のa1座標成分であるので、A1H ＝１−A2L である。
【０３２３】
このとき、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) ハットの値が、前記下限値B1L 以上であるか否かを判断し（ＳＴＥＰ５−８−９）、B1L ＞b1(k) ハットである場合には、b1(k) ハットの値を強制的に上記下限値B1L に変更する（ＳＴＥＰ５−８−１０）。
【０３３３】
さらに、同定器２５は、同定ゲイン係数b1(k) ハットの値が、前記上限値B1H 以下であるか否かを判断し（ＳＴＥＰ５−８−１１）、B1H ＜b1(k) ハットである場合には、b1(k) ハットの値を強制的に上記上限値B1H に変更する（ＳＴＥＰ５−８−１２）。
【０３３４】
また、B1L ≦b1(k) ハット≦B1H である場合には、同定ゲイン係数b1(k) の値は、そのままに保持される。
【０３３５】
このようなＳＴＥＰ５−８−９〜５−８−１２の処理によって、同定ゲイン係数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(k) ハット，a2(k) ハット，b1(k) ハットの値の制限処理を行った後、同定器２５は、次回の制御サイクルの処理のために前記行列Ｐ(k) を前記式（１０）により更新し（ＳＴＥＰ５−９）、図８のメインルーチンの処理に復帰する。
【０３３９】
以上が図８のＳＴＥＰ５における同定器２５の演算処理である。
【０３４０】
図８のメインルーチン処理の説明に戻って、前述の通り同定器２５の演算処理を行った後、目標空燃比生成処理部２８はゲイン係数a1,a2,b1の値を決定する（ＳＴＥＰ６）。
【０３４１】
この処理では、前記ＳＴＥＰ２で設定されたフラグf/id/calの値が「１」である場合、すなわち、同定器２５によるゲイン係数a1,a2,b1の同定処理を行った場合には、ゲイン係数a1,a2,b1の値として、それぞれ前記ＳＴＥＰ５で前述の通り同定器２５により求められた同定ゲイン係数a1ハット，a2ハット，b1ハット（ＳＴＥＰ５−８の制限処理を施したもの）を設定する。また、f/id/cal＝０である場合、すなわち、同定器２５によるゲイン係数a1,a2,b1の同定処理を行わなかった場合には、ゲイン係数a1,a2,b1の値をそれぞれあらかじめ定めた所定値とする。
【０３４２】
次いで、目標空燃比生成処理部２８は、図８のメインルーチンにおいて、前記推定器２６による演算処理（推定偏差出力VO2 バーの算出処理）を行う（ＳＴＥＰ７）。
【０３４３】
この推定器２６の演算処理は図１４のフローチャートに示すように行われる。すなわち、推定器２６は、前記図８のＳＴＥＰ６で決定されたゲイン係数a1,a2,b1（これらの値は基本的には、前記図１０のＳＴＥＰ５−８の制限処理を経た同定ゲイン係数a1ハット，a2ハット，b1ハットである）を用いて、前記式（１３）で使用する係数値α1 ，α2 ，βj （ｊ＝1 〜ｄ）を前記式（１２）の但し書きの定義に従って算出する（ＳＴＥＰ７−１）。
【０３４４】
次いで、推定器２６は、前記図８のＳＴＥＰ３で制御サイクル毎に算出されるＯ2 センサの偏差出力VO2 の現在の制御サイクル以前の時系列データVO2(k)，VO2(k-1)、並びにＬＡＦセンサ５の偏差出力kactの現在の制御サイクル以前の時系列データkact(k-j) （ｊ＝０〜d1）と、後述の如く前記リミッタ３０によって制御サイクル毎に決定される前記指令偏差空燃比kcmd（要求偏差空燃比ｕslにリミット処理を施したもの）の前回の制御サイクル以前の時系列データkcmd(k-j) （通常的にはkcmd(k-j) ＝ｕsl(k-j) 。ｊ＝１〜d2-1）と、上記の如く算出した係数α1 ，α2 ，βj とを用いて前記式（１３）により、推定偏差出力VO2(k+d)バー（今回の制御サイクルの時点から前記合計無駄時間ｄ後の偏差出力VO2 の推定値）を算出する（ＳＴＥＰ７−２）。
【０３４５】
図８の説明に戻って、目標空燃比生成処理部２８は、次に、スライディングモード制御器２７によって、前記要求偏差空燃比ｕslを算出する（ＳＴＥＰ８）。
【０３４６】
この要求偏差空燃比ｕslの算出は、図１５のフローチャートに示すように行われる。
【０３４７】
すなわち、スライディングモード制御器２７は、まず、前記ＳＴＥＰ７で推定器２６により求められた推定偏差出力VO2 バーの時系列データVO2(k+d)バー，VO2(k+d-1)バー（推定偏差出力VO2 バーの今回値及び前回値）を用いて、前記式（２５）により定義された切換関数σバーの今回の制御サイクルから前記合計無駄時間ｄ後の値σ(k+d) バー（これは、式（１５）で定義された切換関数σの合計無駄時間ｄ後の推定値に相当する）を算出する（ＳＴＥＰ８−１）。
【０３４８】
尚、この場合、切換関数σバーが過大であると、この切換関数σバーの値に応じて定まる前記到達則入力ｕrch の値が過大となり、また、前記適応則入力ｕadp の急変が生じるため、スライディングモード制御器２７が求める要求偏差空燃比ｕsl、ひいては目標空燃比KCMDが不安定なものとなる虞がある。このため、本実施形態では、切換関数σバーの値があらかじめ定めた所定範囲内に収まるようにし、上記のように式（２５）により求めたσバーの値が、該所定範囲の上限値又は下限値を超えた場合には、それぞれσバーの値を強制的に該上限値又は下限値に設定する。
【０３４９】
次いで、スライディングモード制御器２７は、上記ＳＴＥＰ８−１で制御サイクル毎に算出される切換関数σバーの値（より正確にはσバーの値に排気側制御ユニット７ａの制御サイクルの周期（一定周期）を乗算したもの）を累積的に加算していく（前回の制御サイクルで求められた加算結果に今回の制御サイクルで算出されたσバーの値を加算する）ことで、σバーの積算値（これは式（２７）の右端の項に相当する）を算出する（ＳＴＥＰ８−２）。
【０３５０】
尚、この場合、σバーの積算値に応じて定まる前記適応則入力ｕadp が過大なものとなるのを回避するため、前記ＳＴＥＰ８−１の場合と同様、σバーの積算値があらかじめ定めた所定範囲内に収まるようにする。すなわち、上記の累積加算により求まるσ(k+d) バーの積算値が該所定範囲の上限値又は下限値を超えた場合には、それぞれσ(k+d) バーの積算値を強制的に該上限値又は下限値に制限する。
【０３５１】
次いで、スライディングモード制御器２７は、前記ＳＴＥＰ７で推定器２６により求められた推定偏差出力VO2 バーの時系列データVO2(k+d)バー，VO2(k+d-1)バーと、ＳＴＥＰ８−１及び８−２でそれぞれ求められた切換関数の値σ(k+d) バー及びその積算値と、ＳＴＥＰ６で決定したゲイン係数a1，a2，b1（これらの値は基本的には、前記図１０のＳＴＥＰ５−８の制限処理を経た同定ゲイン係数a1ハット，a2ハット，b1ハットである）とを用いて、前記式（２４）、（２６）、（２７）に従って、それぞれ等価制御入力ｕeq、到達則入力ｕrch 及び適応則入力ｕadp を算出する（ＳＴＥＰ８−３）。
【０３５２】
さらにスライディングモード制御器２７は、ＳＴＥＰ８−３で求めた等価制御入力ｕeq、到達則入力ｕrch 及び適応則入力ｕadp を加算することで、前記要求偏差空燃比ｕsl、すなわち、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で対象排気系Ｅに与えるべき入力を算出する（ＳＴＥＰ８−４）。
【０３５３】
これがＳＴＥＰ８におけるスライディングモード制御器２７の処理内容である。
【０３５４】
図８に戻って、目標空燃比生成処理部２８は、次に、前記リミッタ３０による処理を行う。この場合、該リミッタ３０は、前述の如くスライディングモード制御器２７が算出する要求偏差空燃比ｕslにリミット処理を施すに先立って、スライディングモード制御器２７による適応スライディングモード制御を用いて制御するＯ2 センサ６の出力VO2/OUT の状態（対象排気系Ｅの出力状態。以下、これをＳＬＤ制御状態という）の安定性を判別する処理を行う（ＳＴＥＰ９）。
【０３５５】
ここで、この安定性の判別処理の詳細を具体的に説明する前に、該判別処理の概要を説明しておく。
【０３５６】
本実施形態では、排気側制御ユニット７ａの各制御サイクルにおいてスライディングモード制御器２７が前述の如く前記ＳＴＥＰ８−１で求める切換関数σバーの値（今回値）σ(k+d) バーとその１制御サイクル前の値（前回値）σ(k+d-1) バーとの偏差Δσバー（これは切換関数σバーの値の変化速度に相当する）と、切換関数σバーの今回値σ(k+d) バーとの積σ(k+d) バー・Δσバーを前記ＳＬＤ制御状態の安定性を判別するための基本パラメータとして用いる（以下、σ(k+d) バー・Δσバーを安定性判別基本パラメータＰstb という）。
【０３５７】
この安定性判別基本パラメータＰstb （＝σ(k+d) バー・Δσバー）は、切換関数σバーに関する所謂リアプノフ関数σバー2 ／２の時間微分値に相当するものである。そして、基本的には、Ｐstb ≦０となる状態は、切換関数σバーの値が「０」に収束しているかもしくは収束しつつある状態（前記推定偏差出力VO2 バーの時系列データVO2(k+d)バー，VO2(k+d-1)バーからなる状態量が超平面σバー＝０に収束しているかもしくは収束しつつある状態）である。また、Ｐstb ＞０となる状態は、基本的には、切換関数σバーの値が「０」から離間しつつある状態（前記推定偏差出力VO2 バーの時系列データVO2(k+d)バー，VO2(k+d-1)バーからなる状態量が超平面σバー＝０から離間しつつある状態）である。
【０３５８】
従って、上記安定性判別基本パラメータＰstb の値が「０」以下であるか否かによって前記ＳＬＤ制御状態が安定であるか否かを判断することができる。
【０３５９】
但し、安定性判別基本パラメータＰstb の値を「０」と比較することでＳＬＤ制御状態の安定性を判断すると、σバーの値に僅かなノイズが含まれただけで、安定性の判別結果に影響を及ぼしてしまう。また、制御サイクル毎に安定性判別基本パラメータＰstb の値によって、安定性の判別結果を確定すると、その判断結果が頻繁に変わり過ぎる虞がある。
【０３６０】
このため、本実施形態では、排気側制御ユニット７ａの制御サイクル毎に、安定性判別基本パラメータＰstb の値が「０」よりも若干大きな正の値に定めた所定値ε以下であるか否かによってＳＬＤ制御状態が安定であるか否を暫定的に判断する。また、排気側制御ユニット７ａの制御サイクルよりも長い所定期間づつ、ＳＬＤ制御状態が安定性判別基本パラメータＰstb の値によって暫定的に不安定と判断される頻度cnt/judst （より詳しくは所定期間内においてＰstb ＞εとなる制御サイクルの回数。以下、暫定不安定判断頻度cnt/judst という）を計測する。そして、その暫定不安定判断頻度cnt/judst をあらかじめ定めた所定の閾値と比較することでＳＬＤ制御状態が安定であるか否かを判断するようにしている。
【０３６１】
この場合、本実施形態では、前記暫定不安定判断頻度cnt/judst と比較する前記閾値は、第１閾値SSTB1 と第２閾値SSTB2 との二種類（SSTB1 ＜SSTB2 ）があり、暫定不安定判断頻度cnt/judst が第１閾値SSTB1 以下（cnt/judst ≦SSTB1 ）であるときにはＳＬＤ制御状態が安定であると判断する。また、cnt/judst ＞SSTB1 であるときには、ＳＬＤ制御状態が不安定であると判断する。さらにＳＬＤ制御状態が不安定であると判断する場合（cnt/judst ＞SSTB1 の場合）にあっては、暫定不安定判断頻度cnt/judst が第２閾値SSTB2 以下（cnt/judst ≦SSTB2 ）であるときにはＳＬＤ制御状態の不安定さの度合いが低い（以下、この状態を低レベル不安定状態という）と判断する。さらに、cnt/judst ＞SSTB2 であるときには、ＳＬＤ制御状態の不安定さの度合いが高い（以下、この状態を高レベル不安定状態という）と判断する。つまり、本実施形態にあっては、ＳＬＤ制御状態が不安定であると判断する場合には、さらに暫定不安定判断頻度cnt/judst の値によって、不安定さの度合い（程度）も分別して判断するようにしている。
【０３６２】
以上説明したことを考慮しつつ前記ＳＴＥＰ９における安定性の判別処理をより詳細に説明する。
【０３６３】
この判別処理は図１６のフローチャートに示すように行われる。
【０３６４】
すなわち、リミッタ３０は、まず、スライディングモード制御器２７が前記ＳＴＥＰ８−１で求めた切換関数σバーの今回値σ(k+d) バーと前回値σ(k+d-1) バーとから、前述の如く定義した前記安定性判別基本パラメータＰstb （＝σ(k+d) バー・Δσバー）を算出する（ＳＴＥＰ９−１）。
【０３６５】
次いで、リミッタ３０は、前記図７のＳＴＥＰｄ−１１において初期化された前記タイマカウンタtm/stb（カウントダウンタイマ）の値が「０」になったか否か、すなわち、目標空燃比生成処理部２８が生成する目標空燃比KCMDによるエンジン１の空燃比の操作（Ｏ2 センサ６の出力VO2/OUT の目標値VO2/TARGETへの収束制御。以下、これを空燃比操作排気系出力制御ということがある）を開始してからの経過時間がタイマカウンタtm/stbの初期値TMSTB により表される所定時間に達したか否かを判断する（ＳＴＥＰ９−２）。
【０３６６】
このとき、tm/stb≠０で前記空燃比操作排気系出力制御を開始してからの経過時間が所定時間（：TMSTB ）に満たない場合（空燃比操作排気系出力制御の開始直後の状態）には、前記暫定不安定判断頻度cnt/judst の計測等、ＳＬＤ制御状態の安定性の判別を行うことなく、ＳＴＥＰ９−３の処理を行って、図８のメインルーチンに復帰する。
【０３６７】
上記ＳＴＥＰ９−３では、前記暫定不安定判断頻度cnt/judst の計測を行う前記所定期間を計時するタイマカウンタtm/judst（カウントダウンタイマ）の値を該所定期間の時間に相当する所定の初期値TMJUDST に設定する。また、このＳＴＥＰ９−３では、暫定不安定判断頻度cnt/judst の値を「０」に初期化する。さらに、該ＳＴＥＰ９−３では、ＳＬＤ制御状態が安定であるか否かをそれぞれ値「０」、「１」で表すフラグf/stb1の値を「０」に初期化すると共に、ＳＬＤ制御状態が前記低レベル不安定状態であるか高レベル不安定状態であるかをそれぞれ値「０」、「１」で表すフラグf/stb2の値を「０」に初期化する。
【０３６８】
一方、前記ＳＴＥＰ９−２で、タイマtm/stbの値が「０」である場合、すなわち前記空燃比操作排気系出力制御を開始してからの経過時間がタイマtm/stbの初期値TMSTB により表される所定時間に達した場合には、リミッタ３０は、前記安定性判別基本パラメータＰstb を所定値ε（＞０）と比較する（ＳＴＥＰ９−４）。このとき、Ｐstb ≦εである場合には、ＳＬＤ制御状態が暫定的に安定であるとして、前記暫定不安定判断頻度cnt/judst の値を現状の値（前回値）に保持する（ＳＴＥＰ９−５）。また、Ｐstb ＞εである場合には、ＳＬＤ制御状態が暫定的に不安定であるとして、前記暫定不安定判断頻度cnt/judst の値を現状の値（前回値）に「１」を加算した値に増加させる（ＳＴＥＰ９−６）。
【０３６９】
次いで、リミッタ３０は、ＳＴＥＰ９−５又は９−６で決定した今回の制御サイクルにおける暫定不安定判断頻度cnt/judst の値を前記第１閾値SSTB1 と比較する（ＳＴＥＰ９−７）。このとき、cnt/judst ≦SSTB1 である場合には、ＳＬＤ制御状態が安定であるとして、前記フラグf/stb1（以下、安定判別フラグf/stb1という）の値を「０」に設定する（ＳＴＥＰ９−８）。
【０３７０】
また、cnt/judst ＞SSTB1 である場合（ＳＬＤ制御状態が不安定である場合）には、リミッタ３０はさらに暫定不安定判断頻度cnt/judst の値を前記第２閾値SSTB2 と比較する（ＳＴＥＰ９−９）。このとき、cnt/judst ≦SSTB2 である場合には、ＳＬＤ制御状態が低レベル不安定状態であるとして、前記安定判別フラグf/stb1の値を「１」に設定する（ＳＴＥＰ９−１０）。また、cnt/judst ＞SSTB2 である場合には、ＳＬＤ制御状態が高レベル不安定状態であるとして、前記安定判別フラグf/stb1の値を「１」に設定すると共に前記フラグf/stb2（以下、不安定レベル判別フラグf/stb2という）の値を「１」に設定する（ＳＴＥＰ９−１１）。
【０３７１】
次いで、リミッタ３０は、前記タイマカウンタtm/judstの値を現在値（前回値）から「１」だけ減少させた値に更新する（ＳＴＥＰ９−１２）。そして、この更新後のタイマカウンタtm/judstの値が「０」になったか否か、すなわち、タイマカウンタtm/judstの初期値TMJUDST により表される所定期間を経過したか否を判断する（ＳＴＥＰ９−１３）。
【０３７２】
このとき、tm/judst≠０でまだ所定期間（：TMJUDST ）を経過していない場合（タイマカウンタtm/judstが未だタイムアップしていない場合）には、図８のメインルーチンの処理に復帰する。
【０３７３】
一方、tm/judst＝０で、所定期間（：TMJUDST ）を経過した場合（タイマカウンタtm/judstがタイムアップした場合）には、リミッタ３０はさらに、前記安定判別フラグf/stb1の値を判断する（ＳＴＥＰ９−１４）。このとき、f/stb1＝１である場合には、前記タイマカウンタtm/judstの値をその初期値TMJUDST にリセットすると共に、暫定不安定判断頻度cnt/judst の値を「０」にリセットする（ＳＴＥＰ９−１６）。そして、図８のメインルーチンの処理に復帰する。
【０３７４】
また、ＳＴＥＰ９−１４でf/stb1＝０である場合、すなわち、今回の制御サイクルでＳＬＤ制御状態が安定であると判断した場合には、前記不安定レベル判別フラグf/stb2の値を「０」にリセットした後（ＳＴＥＰ９−１５）、前記ＳＴＥＰ９−１６の処理を経てメインルーチンの処理に復帰する。
【０３７５】
以上説明したＳＬＤ制御状態の安定性の判別処理における安定性判別基本パラメータＰstb 、暫定不安定判断頻度cnt/judst 、安定判別フラグf/stb1、及び不安定レベル判別フラグf/stb2の値の変化の様子の様子をそれぞれ図１７の第１〜４段に例示的に示す。尚、図１７の第１段では、安定性判別基本パラメータＰstb の値は、説明の便宜上、「０」以上の値のみ採るようになっているが、実際には負の値も採り得る。
【０３７６】
同図１７のように、暫定不安定判断頻度cnt/judst 、すなわち、安定性判別基本パラメータＰstb の値がＰstb ＞εとなる頻度（回数）は、所定期間（：TMJUDST ）づつ計測され、該所定期間（：TMJUDST ）が経過する毎に「０」にリセットされる（前記ＳＴＥＰ９−１６を参照）。そして、図中の期間Ｔ１あるいはＴ２に示すように、所定期間内で暫定不安定判断頻度cnt/judst の値が第１閾値SSTB1 に達しないような場合、すなわち、安定性判別基本パラメータＰstb の値が所定値εを超えるような状況が生じないか、もしくは、そのような状況が一時的にしか生じない場合には、ＳＬＤ制御状態が安定であると判断され、安定判別フラグf/stb1の値が「０」に設定される（前記ＳＴＥＰ９−７，９−８を参照）。
【０３７７】
また、図中の期間Ｔ３に示すように、所定期間内で安定性判別基本パラメータＰstb の値が所定値εを超えるような状況がある程度継続したり、あるいはそのような状況がある程度頻繁に発生し、暫定不安定判断頻度cnt/judst の値が第１閾値SSTB1 を超えたような場合には、ＳＬＤ制御状態が低レベル不安定状態であると判断され、安定判別フラグf/stb1の値が「１」に設定される（前記ＳＴＥＰ９−９，９−１０を参照）。但し、この場合、暫定不安定判断頻度cnt/judst の値が所定期間毎にリセットされることに伴い、安定判別フラグf/stb1の値も所定期間毎に「０」にリセットされることとなる。
【０３７８】
また、図中の期間Ｔ４に示すように、所定期間内で安定性判別基本パラメータＰstb の値が所定値εを超えるような状況が比較的長い時間継続したり、あるいはそのような状況が頻繁に発生し、暫定不安定判断頻度cnt/judst の値が第２閾値SSTB2 を超えたような場合には、ＳＬＤ制御状態が高レベル不安定状態であると判断され、安定判別フラグf/stb1の値が「１」に設定されると共に不安定レベル判別フラグf/stb2の値が「１」に設定される（前記ＳＴＥＰ９−１１を参照）。この場合にあっては、不安定レベル判別フラグf/stb2の値は、次回の所定期間（期間Ｔ５）の間中、暫定不安定判断頻度cnt/judst の値にかかわらず「１」に維持される。そして、この次回の所定期間（期間Ｔ５）の間中、継続して暫定不安定判断頻度cnt/judst の値が第１閾値SSTB1 以下に維持され、安定判別フラグf/stb1の値が「０」に維持された場合にのみ、この期間Ｔ５の終了時に不安定レベル判別フラグf/stb2の値が「０」にリセットされる（前記ＳＴＥＰ９−１４，９−１５を参照）。つまり、ある所定期間内でＳＬＤ制御状態が高レベル不安定状態であると判断された場合には、その次の所定期間の間中、継続して暫定不安定判断頻度cnt/judst の値が第１閾値SSTB1 以下に維持されない限り、不安定レベル判別フラグf/stb2の値は高レベル不安定状態を表す「１」に維持され、実質的に高レベル不安定状態であるとの判断が継続することとなる。
【０３７９】
図８に戻って、目標空燃比生成処理部２８のリミッタ３０は、前述の如くＳＬＤ制御状態の安定性の判別処理を行った後、前記ＳＴＥＰ８でスライディングモード制御器２７が算出した要求偏差空燃比ｕslにリミット処理を施して前記指令偏差空燃比kcmdを決定する（ＳＴＥＰ１０）。
【０３８０】
ここで、上記リミット処理の詳細を具体的に説明する前に、該リミット処理で用いる許容範囲について説明しておく。
【０３８１】
リミッタ３０が行うリミット処理は、最終的に機関側制御ユニット７ｂに与えるべき目標空燃比KCMDを規定する指令偏差空燃比kcmdを所定の許容範囲内に収めるために、要求偏差空燃比ｕslがその許容範囲の上限値あるいは下限値を超えて該許容範囲を逸脱している場合にそれぞれ指令偏差空燃比kcmdを強制的に該許容範囲の上限値、下限値に設定する処理である。そして、要求偏差空燃比ｕslが許容範囲内に収まっている場合には、該要求偏差空燃比ｕslをそのまま指令偏差空燃比kcmdとして設定する処理である。
【０３８２】
この場合、本実施形態では、このリミット処理に用いる許容範囲には、図１８に示す如く複数種類のものがある。すなわち、該許容範囲には、前記ＳＴＥＰ９におけるＳＬＤ制御状態の安定性の判別結果が低レベル不安定状態（f/stb1＝１且つf/stb2＝０の場合）であるときに（但しエンジン１のアイドリング状態である場合を除く）、要求偏差空燃比ｕslのリミット処理に用いる低不安定用許容範囲と、ＳＬＤ制御状態の安定性の判別結果が高レベル不安定状態（f/stb2＝１の場合）であるときに、要求偏差空燃比ｕslのリミット処理に用いる高不安定用許容範囲とがある。
【０３８３】
さらに、このリミット処理用の許容範囲には、上記のようにＳＬＤ制御状態の安定性の判別結果が低レベル不安定状態又は高レベル不安定状態となる場合を除いて、エンジン１のフュエルカットを行った直後の状態（詳しくは、エンジン１のフュエルカットの終了後、所定時間が経過するまでの状態）で要求偏差空燃比ｕslのリミット処理に用いるＦＣ後許容範囲と、エンジン１の始動直後の状態（詳しくはエンジン１の始動後、所定時間が経過するまでの状態）で要求偏差空燃比ｕslのリミット処理に用いる始動後許容範囲と、エンジン１の運転モードがエンジン１の空燃比をリーン状態とするリーン運転モードから前記空燃比操作排気系出力制御を行なう通常運転モードに移行した直後の状態（詳しくはリーン運転モードの終了後、所定時間が経過するまでの状態）で要求偏差空燃比ｕslのリミット処理に用いるリーン運転後許容範囲とがある。尚、本実施形態では、ＦＣ後許容範囲、始動後許容範囲、及びリーン運転後許容範囲は同一形態の許容範囲であり、以下の説明ではこれらを合わせてＦＣ／始動／リーン後許容範囲という。
【０３８４】
また、要求偏差空燃比ｕslのリミット処理用の許容範囲には、ＳＬＤ制御状態の安定性の判別結果が低レベルもしくは高レベル不安定状態となる場合、並びに、エンジン１のフュエルカット直後の状態もしくは始動直後の状態もしくはリーン運転直後の状態である場合を除いて、エンジン１を搭載した車両の発進直後の状態（詳しくは、エンジン１がその負荷である車両の駆動輪の駆動を開始した後、所定時間が経過するまでの状態）であるときに、要求偏差空燃比ｕslのリミット処理に用いる負荷駆動後許容範囲と、ＳＬＤ制御状態の安定性の判別結果が高レベル不安定状態となる場合、並びに、エンジン１のフュエルカット直後の状態もしくは始動直後の状態もしくはリーン運転直後の状態である場合を除いて、エンジン１のアイドリング状態であるときに、要求偏差空燃比ｕslのリミット処理に用いるアイドル許容範囲とがある。
【０３８５】
さらには、要求偏差空燃比ｕslのリミット処理用の許容範囲には、上記の各許容範囲に対応する状態を除くエンジン１の通常的な運転状態において、要求偏差空燃比ｕslのリミット処理に用いる適応許容範囲とがある。
【０３８６】
ここで、前記低不安定用許容範囲は、その上限値及び下限値を、それぞれあらかじめ定めた固定的な所定値Ｈ，Ｌ（以下、所定値Ｈを上限側第３所定値Ｈ、所定値Ｌを下限側第４所定値という）とした固定的な許容範囲である。この低不安定用許容範囲は、その上限側及び下限側の両者について、前述の各許容範囲の中では、標準的（中間的）な広さを有するものとされている。
【０３８７】
また、前記高不安定用許容範囲は、その上限値及び下限値を、それぞれあらかじめ定めた固定的な所定値STABH ，STABL （以下、所定値STABH を上限側第１所定値STABH 、所定値STABL を前記下限側第１所定値STABL ）とした固定的な許容範囲である。この高不安定用許容範囲は、その上限側及び下限側の両者について、前述の各許容範囲の中では最も狭いものとされている。
【０３８８】
また、前記アイドル許容範囲は、その上限値及び下限値を、それぞれ固定的な所定値HI，LI（以下、所定値HIを上限側第２所定値HI、所定値LIを下限側第３所定値という）とした固定的な許容範囲である。このアイドル許容範囲は、その上限側及び下限側の両者について、比較的狭い（本実施形態では低不安定用許容範囲よりも狭い）ものとされている。
【０３８９】
また、前記ＦＣ／始動／リーン後許容範囲は、その上限値を固定的な所定値AFCH（以下、上限側第５所定値という）とすると共に、下限値を、前記下限側第１所定値STABL とこれよりも小さな所定値LL（以下、下限側第５所定値LLという）との間で該許容範囲に対する前記要求偏差空燃比ｕslの逸脱状況に応じて逐次（制御サイクル毎に）可変的に設定するようにした許容範囲である。この場合、該ＦＣ／始動／リーン後許容範囲の上限側は、前述の各許容範囲の中では最も広いものとされている。尚、ＦＣ／始動／リーン後許容範囲の下限値については、エンジン１のアイドリング状態では、可変的な設定は行われず、前記アイドル許容範囲の下限値である下限側第３所定値LIに設定される。
【０３９０】
また、前記負荷駆動後許容範囲は、その下限値を固定的な所定値VSTL（以下、下限側第２所定値という）とすると共に、上限値を、前記上限側第１所定値STABH とこれよりも大きい所定値HH（以下、上限側第４所定値HHという）との間で該許容範囲に対する前記要求偏差空燃比ｕslの逸脱状況に応じて逐次（制御サイクル毎に）可変的に設定するようにした許容範囲である。この場合、該負荷駆動後許容範囲の下限側は、比較的狭い（本実施形態ではアイドル許容範囲の下限側よりも狭い）ものとされている。
【０３９１】
さらに前記適応許容範囲は、その上限値を、前記上限側第１所定値STABH と上限側第４所定値HHとの間で該許容範囲に対する前記要求偏差空燃比ｕslの逸脱状況に応じて逐次（制御サイクル毎に）可変的に設定すると共に、下限値も、前記下限側第１所定値STABL と下限側第５所定値LLとの間で該許容範囲に対する前記要求偏差空燃比ｕslの逸脱状況に応じて逐次（制御サイクル毎に）可変的に設定するようにした許容範囲である。
【０３９２】
尚、本実施形態において前記各許容範囲によるリミット処理の対象とする前記要求偏差空燃比ｕslはエンジン１の空燃比と前記空燃比基準値FLAF/BASE との偏差であるので、前記各許容範囲の上限値及び下限値は該空燃比基準値FLAF/BASE に対する偏差量（空燃比基準値FLAF/BASE を「０」として表した正負の値）である。また、前記上限側第１〜第５所定値STABH ，HI，Ｈ，HH，AFCHの大小関係は、本実施形態では、図示のように０＜STABH ＜HI＜Ｈ＜HH＜AFCHである。同様に、前記下限側第１〜第５所定値STABL ，VSTL，LI，Ｌ，LLの大小関係は、本実施形態では０＞STABL ＞VSTL＞LI＞Ｌ＞LLである。
【０３９３】
以上説明したことを考慮しつつ、前記ＳＴＥＰ１０におけるリミット処理の詳細を具体的に説明する。このリミット処理は図１９のフロチャートに示すように行われる。尚、以下の説明においては、エンジン１のアイドリング状態で設定されるリミット処理用の許容範囲（これは前記アイドル許容範囲とは限らない）の上限値及び下限値にそれぞれ参照符号AHFI，ALFIを付し、それらをアイドル用上限値AHFI、アイドル用下限値ALFIと称する。また、アイドリング状態以外のエンジン１の運転状態で設定されるリミット処理用の許容範囲の上限値及び下限値にそれぞれ参照符号AHF ，ALF を付し、それらをアイドル外上限値AHF 、アイドル外下限値ALF と称する。さらに、前記適応許容範囲の可変的な上限値及び下限値にそれぞれ参照符号ah，alを付し、それらを適応上限値ah、適応下限値alと称する。
【０３９４】
図１９を参照して、目標空燃比生成処理部２８のリミッタ３０は、まず、今回の制御サイクルにおけるリミット処理用の許容範囲を決定する処理を行う（ＳＴＥＰ１０−１）。
【０３９５】
この処理は、図２０のフローチャートに示すように行われる。
【０３９６】
すなわち、リミッタ３０は、まず、前述したＳＬＤ制御状態の安定性の判別処理で設定した前記不安定レベル判別フラグf/stb2の値を判断する（ＳＴＥＰ１０−１−１）。このとき、f/stb2＝１の場合、すなわちＳＬＤ制御状態が高レベル不安定状態であると判断した場合には、前記アイドル用上限値AHFI、アイドル外上限値AHF 及び適応上限値ah（より詳しくは適応上限値ahの現在値ah(k-1) ）をいずれも前記高不安定用許容範囲（図１８参照）の上限値である上限側第１所定値STABH に設定すると共に、前記アイドル用下限値ALFI、アイドル外下限値ALF 及び適応下限値al（より詳しくは適応下限値alの現在値al(k-1) ）をいずれも該高不安定用許容範囲の下限値である下限側第１所定値STABL に設定する（ＳＴＥＰ１０−１−２）。そして、このＳＴＥＰ１０−１−２の処理の後、図１９のルーチン処理に復帰する。
【０３９７】
このＳＴＥＰ１０−１−２の処理により、前記要求偏差空燃比ｕslにリミット処理を施すための許容範囲は、エンジン１のどのような運転状態であっても、前記高不安定用許容範囲、すなわち、最も範囲の狭い固定的な許容範囲に設定される。また、後述の如く可変化される適応許容範囲は、高不安定用許容範囲に初期化される。
【０３９８】
前記ＳＴＥＰ１０−１−１でf/stb2＝０の場合には、リミッタ３０はさらに、ＳＬＤ制御状態の安定性の判別処理で設定した前記安定判別フラグf/stb1の値を判断する（ＳＴＥＰ１０−１−３）。このとき、f/stb1＝１の場合、すなわちＳＬＤ制御状態が低レベル不安定状態である場合には、前記アイドル用上限値AHFIを前記アイドル許容範囲（図１８参照）の上限値である上限側第２所定値HIに設定すると共に、アイドル用下限値ALFIを該アイドル許容範囲の下限値である下限側第３所定値LIに設定する（ＳＴＥＰ１０−１−４）。さらにこのＳＴＥＰ１０−１−４では、前記アイドル外上限値AHF 及び適応上限値ahの現在値ah(k-1) をいずれも前記低不安定用許容範囲（図１８参照）の固定的な上限値である上限側第３所定値Ｈに設定すると共に、アイドル外下限値ALF 及び適応下限値al（al(k-1) ）をいずれも該低不安定用許容範囲の下限値である下限側第４所定値Ｌに設定する。そして、このＳＴＥＰ１０−１−４の処理の後、図１９のルーチン処理に復帰する。
【０３９９】
このＳＴＥＰ１０−１−４の処理により、前記要求偏差空燃比ｕslにリミット処理を施すための許容範囲は、エンジン１のアイドリング状態以外の運転状態であれば、前記低不安定用許容範囲（固定的な標準的範囲）に設定され、エンジン１のアイドリング状態であれば、該低不安定用許容範囲よりも狭い前記アイドル許容範囲（固定的な狭めの範囲）に設定される。また、適応許容範囲は、低不安定用許容範囲に初期化される。
【０４００】
前記ＳＴＥＰ１０−１−３でf/stb1＝０の場合、すなわち、前記ＳＴＥＰ９でＳＬＤ制御状態が安定であると判断した場合には、リミッタ３０は、エンジン１のフュエルカット直後の状態であるか否か、すなわち、エンジン１のフュエルカットが終了してからの経過時間が所定時間に満たない状態であるか否かを判断する（ＳＴＥＰ１０−１−５）。
【０４０１】
この判断は次のように行われる。すなわち、本実施形態では、エンジン１のフュエルカットを行っているか否を表すデータが前記機関側制御ユニット７ｂから排気側制御ユニット７ａに与えるられるようになっている。そして、前記リミッタ３０は、このデータによりエンジン１のフュエルカットが終了したことを把握した時点から図示しないタイマを起動して該終了時点からの経過時間を計時し、この経過時間があらかじめ定めた所定時間（固定値）に達するまでの期間をフュエルカットの直後の状態であると判断する。
【０４０２】
尚、本実施形態では、フュエルカット中は、目標空燃比生成処理部２８が生成する目標空燃比KCMDによる空燃比の操作（Ｏ2 センサ６の出力VO2/OUT の目標値VO2/TARGETへの収束制御）は行わないが（図６のＳＴＥＰｄの処理に関する図７を参照）、目標空燃比生成処理部２８における演算処理（要求偏差空燃比ｕsl、目標空燃比KCMDの算出処理等）は行われる。そして、本実施形態では、便宜上、エンジン１のフュエルカット中の状態も、フュエルカット直後の状態であると判断するようにしている。
【０４０３】
上記ＳＴＥＰ１０−１−５の判断結果がフュエルカット直後の状態（フュエルカット中を含む）である場合には、リミッタ３０は、前記アイドル用上限値AHFI及びアイドル外上限値AHF をいずれも前記ＦＣ／始動／リーン後許容範囲（図１８参照）の上限値である上限側第５所定値AFCHに設定する（ＳＴＥＰ１０−１−６）。さらにこのＳＴＥＰ１０−１−６では、アイドル用下限値ALFIを前記アイドル許容範囲の下限値である下限側第３所定値LIに設定すると共に、アイドル外下限値ALF の値を現在の適応下限値al（前回の制御サイクルで決定された適応下限値al(k-1) ）の値に設定する。そして、このＳＴＥＰ１０−１−６の処理の後、図１９のルーチン処理に復帰する。
【０４０４】
このＳＴＥＰ１０−１−６の処理により、前記要求偏差空燃比ｕslにリミット処理を施すための許容範囲は、エンジン１のアイドリング状態であれば、下限値を前記アイドル許容範囲の下限値である下限側第３所定値LIに固定した前記ＦＣ／始動／リーン後許容範囲に設定される。また、エンジン１のアイドリング状態以外の運転状態では、下限値を逐次可変化する適応下限値alとしたＦＣ／始動／リーン後許容範囲に設定される。いずれにしても、前記要求偏差空燃比ｕslのリミット処理用の許容範囲は、特に上限側において最も広くなるような範囲（より一般的には上限値が前記上限側第５所定値AFCHを下回らないような範囲）に設定されることとなる。
【０４０５】
また、上記ＳＴＥＰ１０−１−５の判断結果がフュエルカットの直後の状態でない場合には、リミッタ３０は、次にエンジン１の始動直後の状態であるか否、すなわち、エンジン１を始動してから（より詳しくはエンジン１の所謂完爆が確認されてから）の経過時間が所定時間に満たない状態であるか否かを判断する（ＳＴＥＰ１０−１−７）。
【０４０６】
この場合、エンジン１が始動したか否（エンジン１の完爆が確認されたか否か）を表すデータが機関側制御ユニット７ｂから排気側制御ユニット７ａに与えられるようになっている。そして、リミッタ３０は、このデータによりエンジン１が始動したことを把握した時点から図示しないタイマを起動して該始動時からの経過時間を計時し、この経過時間があらかじめ定めた所定時間（固定値）に達するまでの期間を始動直後の状態であると判断する。
【０４０７】
上記ＳＴＥＰ１０−１−７の判断結果が、エンジン１の始動直後の状態である場合には、リミッタ３０は、フュエルカットの直後の場合と同様に前記ＳＴＥＰ１０−１−６の処理を行って、前記アイドル用上限値AHFI、アイドル外上限値AHF 、アイドル用下限値ALFI及びアイドル外下限値ALF を前述の通り設定した後、図１９のルーチン処理に復帰する。
【０４０８】
ＳＴＥＰ１０−１−７の判断結果が、エンジン１の始動直後の状態でない場合には、リミッタ３０は、さらに、エンジン１のリーン運転の終了直後の状態、すなわち、エンジン１の運転モードがリーン運転モードから通常運転モードに移行してからの経過時間が所定時間に満たない状態であるか否かを判断する（ＳＴＥＰ１０−１−８）。
【０４０９】
この場合、エンジン１のリーン運転を行なう状態であるか否かを表すデータが機関側制御ユニット７ｂから排気側制御ユニット７ａに与えられるようになっている。そして、リミッタ３０は、このデータによりエンジン１のリーン運転が終了したことを把握した時点から図示しないタイマを起動して該始動時からの経過時間を計時し、この経過時間があらかじめ定めた所定時間（固定値）に達するまでの期間をリーン運転の終了直後の状態（詳しくはエンジン１の運転モードがリーン運転モードから通常運転モードの移行した直後の状態）であると判断する。
【０４１０】
上記ＳＴＥＰ１０−１−８の判断結果が、エンジン１のリーン運転の終了直後の状態である場合には、リミッタ３０は、フュエルカットの直後の場合やエンジン１の始動直後の場合と同様に前記ＳＴＥＰ１０−１−６の処理を行って、前記アイドル用上限値AHFI、アイドル外上限値AHF 、アイドル用下限値ALFI及びアイドル外下限値ALF を前述の通り設定した後、図１９のルーチン処理に復帰する。
【０４１１】
上記ＳＴＥＰ１０−１−８の判断結果が、エンジン１のリーン運転の終了直後の状態でない場合には、リミッタ３０は、次にエンジン１のアイドリング状態であるか否かを判断する（ＳＴＥＰ１０−１−８）。
【０４１２】
この場合、エンジン１のアイドリング状態であるか否かを表すデータが機関側制御ユニット７ｂから排気側制御ユニット７ａに与えられるようになっており、リミッタ３０は、このデータによりエンジン１のアイドリング状態であるか否かを判断する。
【０４１３】
そして、このときエンジン１のアイドリング状態である場合には（このときＳＬＤ制御状態の低レベル不安定状態もしくは高レベル不安定状態、あるいはエンジン１のフュエルカット直後の状態、始動直後の状態、リーン運転の終了直後の状態のいずれでもない）、リミッタ３０は、前記アイドル用上限値AHFIを前記アイドル許容範囲の上限値である前記上限側第２所定値HIに設定すると共に、アイドル用下限値ALFIをアイドル許容範囲の下限値である前記下限側第３所定値LIに設定する（ＳＴＥＰ１０−１−１０）。そして、図１９のリーチン処理に復帰する。
【０４１４】
このＳＴＥＰ１０−１−１０の処理により、前記要求偏差空燃比ｕslにリミット処理を施すための許容範囲は、固定的なアイドル許容範囲に設定されることとなる。
【０４１５】
前記ＳＴＥＰ１０−１−９でエンジン１のアイドリング状態でない場合（この場合、ＳＬＤ制御状態の低レベル不安定状態もしくは高レベル不安定状態、あるいはエンジン１のフュエルカット直後の状態、始動直後の状態、リーン運転の終了直後の状態、アイドリング状態のいずれでもない）には、リミッタ３０は、以下に説明するＳＴＥＰ１０−１−１１〜１０−１−１４で前記適応上限値ahの現在値ah(k-1) （前回の制御サイクルで決定された値）を前記上限側第１所定値STABH と上限側第４所定値HH（図１８参照）との間の範囲内の値に制限する処理（適応上限値ahのリミット処理）を行う。
【０４１６】
すなわち、適応上限値ahの現在値ah(k-1) が上限側第１所定値STABH よりも小さければ、この現在値ah(k-1) を強制的に該上限側第１所定値STABH に設定し直す（ＳＴＥＰ１０−１−１１，１０−１０−１２）。また、適応上限値ahの現在値ah(k-1) が上限側第４所定値HHよりも大きければ、この現在値ah(k-1) を強制的に該上限側第４所定値HHに設定し直す（ＳＴＥＰ１０−１−１３，１０−１−１４）。そして、これら以外の場合には、適応上限値ahの現在値ah(k-1) を現状のままに保持する。
【０４１７】
さらに、リミッタ３０は、適応下限値alの現在値al(k-1) についても、適応上限値ahの場合と同様に、該現在値al(k-1) を前記下限側第１所定値STABL と下限側第５所定値LL（図１８参照）との間の範囲内の値に制限する処理（適応下限値alのリミット処理）を行う（ＳＴＥＰ１０−１−１５〜１０−１−１８。al，STABL ，LLは負の値であることに注意）。
【０４１８】
このように現在の適応上限値ah(k-1) 及び適応下限値al(k-1) の値の範囲を制限した後、リミッタ３０は、前記アイドル外上限値AHF 及びアイドル外下限値ALF を、それぞれ適応上限値ah(k-1) 、適応下限値al(k-1) の値に設定する（ＳＴＥＰ１０−１−１９）。
【０４１９】
さらに、リミッタ３０は、車両の発進直後の状態であるか否か、すなわち、エンジン１がその負荷である車両の駆動輪の駆動を開始してからの経過時間が所定時間に満たない状態であるか否かを判断する（ＳＴＥＰ１０−１−２０）。
【０４２０】
この判断は、例えば次のように行われる。すなわち、本実施形態では、エンジン１のアイドリング状態であるか否を表すデータと共に、車両の車速を表すデータが機関側制御ユニット７ｂから排気側制御ユニット７ａに与えられるようになっている。そして、リミッタ３０は、これらのデータにより、エンジン１のアイドリング状態で且つ車速が略「０」である状態（車両の駐停車状態）を把握し、その状態から車速が所定値（十分に小さい値）を超えた時を車両の発進開始時として認識する。さらにその認識した車両の発進時から図示しないタイマにより経過時間を計時し、その経過時間が所定時間に達するまでの期間を発進直後の状態として判断する。
【０４２１】
上記ＳＴＥＰ１０−１−１９の判断結果が車両の発進直後の状態である場合には、リミッタ３０は、前記アイドル外下限値ALF を前記負荷駆動後許容範囲（図１８参照）の下限値である前記下限側第２所定値VSTLに設定し直した後（ＳＴＥＰ１０−１−２１）、図１９のルーチン処理に復帰する。
【０４２２】
また、車両の発進直後の状態でない場合には、前記ＳＴＥＰ１０−１−１９で設定したアイドリング外上限値AHF 及びアイドリング外下限値ALF の値を維持したまま図１９のルーチン処理に復帰する。
【０４２３】
このＳＴＥＰ１０−１−１９〜１０−１−２１の処理によって、ＳＬＤ制御状態の低レベル不安定状態もしくは高レベル不安定状態、あるいはフュエルカットの直後の状態、始動直後の状態、リーン運転の終了直後の状態、アイドリング状態のいずれでもない場合においては、車両の発進直後の状態でもない場合（通常的な場合）に、前記要求偏差空燃比ｕslにリミット処理を施すための許容範囲は、後に説明するように上限値（適応上限値ah）及び下限値（適応下限値al）を逐次変化させる適応許容範囲に設定される。また、車両の発進直後の状態である場合には、要求偏差空燃比ｕslにリミット処理を施すための許容範囲は、前記負荷駆動後許容範囲、すなわち、特に、下限側において比較的狭くなるような範囲（より一般的には下限値が前記下限側第２所定値VSTLよりも小さくならないような範囲）に設定されることとなる。
【０４２４】
図１９に戻って、前述の如く要求偏差空燃比ｕslにリミット処理を施すための許容範囲を決定した後、リミッタ３０は、エンジン１のアイドリング状態であるか否かを前記ＳＴＥＰ１０−１−９の場合と同様に判断する（ＳＴＥＰ１０−２）。
【０４２５】
このとき、エンジン１のアイドリング状態であれば、リミッタ３０は、前記ＳＴＥＰ１０−１−２，１０−１−４，１０−１−６，１０−１−１０のいずれか（通常的にはＳＴＥＰ１０−１−１０）で設定されたアイドル用上限値AHFI及びアイドル用下限値ALFIにより定まる許容範囲（通常的には前記アイドル許容範囲）によって、前記要求偏差空燃比ｕslにリミット処理を施して前記指令偏差空燃比kcmdを決定する（ＳＴＥＰ１０−３〜１０−７）。
【０４２６】
すなわち、前記ＳＴＥＰ８（図８参照）でスライディングモード制御器２７が生成した要求偏差空燃比ｕslがアイドル用下限値ALFIを超えて許容範囲の下限側（負側）に逸脱している（ｕsl＜ALFI）場合には、指令偏差空燃比kcmdの値を強制的に該アイドル用下限値ALFIに制限する（ＳＴＥＰ１０−３，１０−４）。また、要求偏差空燃比ｕslがアイドル用上限値AHFIを超えて許容範囲の上限側（正側）に逸脱している（ｕsl＞AHFI）場合には、指令偏差空燃比kcmdの値を強制的に該アイドル用上限値AHFIに制限する（ＳＴＥＰ１０−５，１０−６）。そして、要求偏差空燃比ｕslが許容範囲内にある（ALFI≦ｕsl≦AHFI）ときには、該要求偏差空燃比ｕslをそのまま指令偏差空燃比kcmdとして設定する（ＳＴＥＰ１０−７）。
【０４２７】
尚、前記ＳＴＥＰ１０−３又は１０−５で前記要求偏差空燃比ｕslがアイドル用上限値AHFI及びアイドル用下限値ALFI間の許容範囲を逸脱していた場合には、前記スライディングモード制御器２７が要求偏差空燃比ｕslを生成する過程で求める適応則入力ｕadp の値が必要以上に大きくなるのを防止するため、前記切換関数σバーの積算値（図１５のＳＴＥＰ８−２を参照）を強制的に前回の制御サイクルで求めた該積算値の値に設定し直す（ＳＴＥＰ１０−８）。また、前述の如くエンジン１のアイドリング状態での要求偏差空燃比ｕslのリミット処理を行った場合には、前記適応上限値ah及び適応下限値alの値は現状の値に保持される（ＳＴＥＰ１０−９）。そして、前記ＳＴＥＰ１０−３〜１０−９の処理が終了した後には、図８のメインルーチンの処理に復帰する。
【０４２８】
一方、前記ＳＴＥＰ１０−２でエンジン１のアイドリング状態でない場合には、リミッタ３０は、前記ＳＴＥＰ１０−１−２，１０−１−４，１０−１−６，１０−１−１９，１０−１−２１のいずれか（通常的にはＳＴＥＰ１０−１−１９）で設定されたアイドル外上限値AHF 及びアイドル外下限値ALF により定まる許容範囲（通常的には前記適応許容範囲）によって、前記要求偏差空燃比ｕslにリミット処理を施して前記指令偏差空燃比kcmdを決定する（ＳＴＥＰ１０−１０〜１０−１４）。
【０４２９】
すなわち、前記ＳＴＥＰ８（図８参照）でスライディングモード制御器２７が生成した要求偏差空燃比ｕslがアイドル外下限値ALF を超えて許容範囲の下限側（負側）に逸脱している（ｕsl＜ALF ）場合には、指令偏差空燃比kcmdの値を強制的に該アイドル外下限値ALF に制限する（ＳＴＥＰ１０−１０，１０−１１）。また、要求偏差空燃比ｕslがアイドル外上限値AHF を超えて許容範囲の上限側（正側）に逸脱している（ｕsl＞AHF ）場合には、指令偏差空燃比kcmdの値を強制的に該アイドル外上限値AHF に制限する（ＳＴＥＰ１０−１２，１０−１３）。そして、要求偏差空燃比ｕslが許容範囲内にある（ALF ≦ｕsl≦AHF ）ときには、該要求偏差空燃比ｕslをそのまま指令偏差空燃比kcmdとして設定する（ＳＴＥＰ１０−１４）。
【０４３０】
このようにしてアイドル外上限値AHF 及びアイドル外下限値ALF により定まる許容範囲により要求偏差空燃比ｕslのリミット処理を行った場合には、次に、リミッタ３０は、前記適応許容範囲に係わる適応上限値ah及び適応下限値alの値を更新する（変化させる）ための処理を行う（ＳＴＥＰ１０−１５〜１０−１９）。
【０４３１】
すなわち、前記ＳＴＥＰ１０−１０、１０−１２で前記要求偏差空燃比ｕslが許容範囲内に収まっていた場合（ＳＴＥＰ１０−１４を実行した場合）には、リミッタ３０は、前記適応下限値alの現在値al(k-1) にあらかじめ定めた所定の変化量ΔDEC （＞０。以下、縮小側単位変化量ΔDEC という）だけ加算することで、新たな適応下限値al(k) を求める（ＳＴＥＰ１０−１５）。さらに、このＳＴＥＰ１０−１５では、前記適応上限値ahの現在値ah(k-1) から上記縮小側単位変化量ΔDEC を減算することで、新たな適応上限値ah(k) を求める。
【０４３２】
また、前記ＳＴＥＰ１０−１０で前記要求偏差空燃比ｕslがアイドル外下限値ALF を超えて許容範囲の下限側（負側）に逸脱していた場合（ＳＴＥＰ１０−１１を実行した場合）には、リミッタ３０は、前記図２０のＳＴＥＰ１０−１−２０の場合と同様に、車両の発進直後の状態であるか否かを判断する（ＳＴＥＰ１０−１６）。このとき、車両の発進直後の状態でない場合には、前記適応下限値alの現在値al(k-1) からあらかじめ定めた所定の変化量ΔINC （＞０。以下、拡大側単位変化量ΔINC という）を減算することで、新たな適応下限値al(k) を求める（ＳＴＥＰ１０−１７）。さらに、このＳＴＥＰ１０−１７では、適応上限値ahの現在値ah(k-1) から前記縮小側単位変化量ΔDEC だけ減算することで、新たな適応上限値ah(k) を求める。
【０４３３】
尚、ＳＴＥＰ１０−１６で、車両の発進直後の状態である場合には、前記適応上限値ah及び適応下限値alの値は現状の値に保持される（ＳＴＥＰ１０−１８）。
【０４３４】
また、本実施形態では、前記縮小側単位変化量ΔDEC と拡大側単位変化量ΔINC とに関しては、ΔDEC ＜ΔINC とされている。
【０４３５】
また、前記ＳＴＥＰ１０−１２で前記要求偏差空燃比ｕslがアイドル外上限値AHF を超えて許容範囲の上限側（正側）に逸脱していた場合には、リミッタ３０は、前記図２０のＳＴＥＰ１０−１−５、１０−１−７、１０−１−８の場合と同様に、エンジン１のフュエルカット直後の状態（フュエルカット中を含む）、始動開始直後の状態、及びリーン運転の終了直後の状態のいずれかの状態であるか否かを判断する（ＳＴＥＰ１０−１９）。このとき、いずれの状態でもない場合には、前記適応上限値ahの現在値ah(k-1) に前記拡大側単位変化量ΔINC を加算することで、新たな適応上限値ah(k) を求める（ＳＴＥＰ１０−２０）。さらに、このＳＴＥＰ１０−２０では、適応下限値alの現在値al(k-1) に前記縮小側単位変化量ΔDEC を加算することで、新たな適応下限値al(k) を求める。
【０４３６】
尚、ＳＴＥＰ１０−１９で、フュエルカット直後の状態、始動開始直後の状態、及びリーン運転の終了直後の状態のいずれかの状態である場合には、前記適応上限値ah及び適応下限値alの値は現状の値に保持される（ＳＴＥＰ１０−２１）。
【０４３７】
また、前記ＳＴＥＰ１０−１０又は１０−１２で前記要求偏差空燃比ｕslがアイドル外上限値AHF 及びアイドル外下限値ALF により定まる許容範囲を逸脱していた場合には、前記ＳＴＥＰ１０−８の場合と同様に、前記切換関数σバーの積算値（図１５のＳＴＥＰ８−２を参照）を強制的に前回の制御サイクルで求めた該積算値の値に設定し直す（ＳＴＥＰ１０−２２）。そして、ＳＴＥＰ１０−２２の処理が終了した後には、図８のメインルーチンの処理に復帰する。
【０４３８】
また、本実施形態では、排気側制御ユニット７ａの起動時（車両の運転開始時）における前記適応下限値al及び適応上限値ahの初期値はそれぞれ前記下限側第４所定値Ｌ及び上限側第３所定値Ｈである。つまり適応許容範囲の初期範囲は、前記低安定用許容範囲と同じである。
【０４３９】
また、本実施形態では、エンジン１のアイドリング状態以外の運転状態において、ＳＬＤ制御状態が低レベルもしくは高レベル不安定状態であるときに、ＳＴＥＰ１０−１５，１０−１７，１０−２０による適応上限値ah及び適応下限値alの更新処理が行われるようになっているが、上記不安定状態では、次回の制御サイクルにおける前記ＳＴＥＰ１０−１−２あるいは１０−１−４の処理（図２０を参照）によって、適応上限値ah及び適応下限値alは低不安定用許容範囲や高不安定用許容範囲に対応した固定的な所定値（前記上限側第１所定値STABH 等）に強制的に設定し直される。従って、ＳＬＤ制御状態が低レベルもしくは高レベル不安定状態であるときには、ＳＴＥＰ１０−１５，１０−１７，１０−２０の処理を省略してもよい。
【０４４０】
また、以上説明したＳＴＥＰ１０のリミット処理によって制御サイクル毎に決定される前記指令偏差空燃比kcmdは、図示しないメモリに時系列的に記憶保持され、それが、推定器２６の前述の演算処理のために使用される。
【０４４１】
以上説明したＳＴＥＰ１０のリミット処理によって、エンジン１のアイドリング状態では、前記低不安定用許容範囲、高不安定用許容範囲、ＦＣ／始動／リーン後許容範囲（詳しくは下限値を前記下限側第３所定値LI（図１８参照）に固定したＦＣ／始動／リーン後許容範囲）、並びにアイドル許容範囲のいずれかの固定的な許容範囲が、ＳＬＤ制御状態やエンジン１の運転状態に応じて、要求偏差空燃比ｕslに対するリミット処理用の許容範囲として設定される（通常的にはアイドル許容範囲が設定される）。そして、この設定された許容範囲により、要求偏差空燃比ｕslに対するリミット処理が施され、該要求偏差空燃比ｕslを該許容範囲内に制限してなる前記指令偏差空燃比kcmdが決定される。
【０４４２】
また、エンジン１のアイドリング状態以外の運転状態では、前記低不安定用許容範囲、高不安定用許容範囲、ＦＣ／始動／リーン後許容範囲（詳しくは下限値を可変的な適応下限値alとしたＦＣ／始動／リーン後許容範囲）、負荷駆動後許容範囲、並びに適応許容範囲のいずれかの許容範囲が、ＳＬＤ制御状態やエンジン１の運転状態に応じて、要求偏差空燃比ｕslに対するリミット処理用の許容範囲として設定される（通常的には適応許容範囲が設定される）。そして、この設定された許容範囲により、要求偏差空燃比ｕslに対するリミット処理が施され、該要求偏差空燃比ｕslを該許容範囲内に制限してなる前記指令偏差空燃比kcmdが決定される。
【０４４３】
この場合、エンジン１のアイドリング状態及びそれ以外の運転状態のいずれの運転状態であっても、前記ＳＴＥＰ９におけるＳＬＤ制御状態の安定性の判断結果が高レベル不安定状態であるときには、リミット処理用の許容範囲は、その上限値AHF 又はAHFI、及び下限値ALF 又はALFIをそれぞれ固定的な前記上限側第１所定値STABH 、下限側第１所定値STABL とした最も範囲の狭い前記高不安定用許容範囲に設定される（前記ＳＴＥＰ１０−１−２）。
【０４４４】
また、ＳＬＤ制御状態の安定性の判断結果が低レベル不安定状態であって、且つエンジン１のアイドリング状態以外の運転状態であるときには、リミット処理用の許容範囲は、その上限値AHF 及び下限値ALF をそれぞれ固定的な前記上限側第３所定値Ｈ、下限側第４所定値Ｌとした標準的な広さを有する低不安定用許容範囲に設定される（前記ＳＴＥＰ１０−１−４）。
【０４４５】
また、ＳＬＤ制御状態の高レベル不安定状態、エンジン１のフュエルカットの直後の状態、始動直後の状態、リーン運転の終了直後の状態、車両の発進直後の状態のいずれでもなく、且つエンジン１のアイドリング状態であるときには、リミット処理用の許容範囲は、その上限値AHFI及び下限値ALFIをそれぞれ固定的な前記上限側第２所定値HI、下限側第３所定値LIとした比較的範囲の狭いアイドル許容範囲に設定される（前記ＳＴＥＰ１０−１−４、１０−１−１０）。
【０４４６】
また、ＳＬＤ制御状態の低レベル不安定状態、高レベル不安定状態、エンジン１のフュエルカットの直後の状態、始動直後の状態、リーン運転の終了直後の状態、アイドリング状態、車両の発進直後の状態のいずれでもない通常的な状態では、リミット処理に用いる許容範囲は、その上限値AHF 及び下限値ALF をそれぞれ適応上限値ah、適応下限値alとした適応許容範囲に設定される（前記ＳＴＥＰ１０−１−１９）。
【０４４７】
そして、この適応許容範囲にあっては、要求偏差空燃比ｕslが該適応許容範囲内に存する状態では（このときkcmd＝ｕslとなる）、リミット処理の後に、該適応許容範囲の適応上限値ah及び適応下限値alが、それぞれ前記上限側第１所定値STABH 及び下限側第１所定値STABL を限界として、該適応許容範囲の上限側及び下限側の両者が縮小する方向で制御サイクル毎に前記縮小側単位変化量ΔDEC づつ更新されていくこととなる（前記ＳＴＥＰ１０−１５）。
【０４４８】
また、要求偏差空燃比ｕslが適応許容範囲から例えば上限側に逸脱した状況では（このときkcmd＝ah(k-1) となる）、リミット処理の後に、適応上限値ahが前記上限側第４所定値HHを限界として、適応許容範囲の上限側（逸脱を生じた側）が拡大する方向で制御サイクル毎に前記拡大側単位変化量ΔINC づつ更新される（前記ＳＴＥＰ１０−２０）。同時にこのとき、適応下限値alが前記下限側第１所定値STABL を限界として、 適応許容範囲の下限側（逸脱を生じた側と反対側）が縮小する方向で制御サイクル毎に前記縮小側単位変化量ΔDEC づつ更新される。
【０４４９】
同様に、要求偏差空燃比ｕslが適応許容範囲から例えば下限側に逸脱した状況では（このときkcmd＝al(k-1) となる）、リミット処理の後に、適応下限値alが前記下限側第５所定値LLを限界として、適応許容範囲の下限側（逸脱を生じた側）が拡大する方向で制御サイクル毎に前記拡大側単位変化量ΔINC づつ更新される（前記ＳＴＥＰ１０−１７）。同時にこのとき、適応上限値ahが前記上限側第１所定値STABH を限界として、 適応許容範囲の上限側（逸脱を生じた側と反対側）が縮小する方向で制御サイクル毎に前記縮小側単位変化量ΔDEC づつ更新される。
【０４５０】
このような適応許容範囲の時間的変化の様子を、要求偏差空燃比ｕslの時間的変化の様子と併せて図２１に例示的に示す。図示の如く、適応許容範囲は、要求偏差空燃比ｕslが該適応許容範囲内に存する（al＜ｕsl＜ah）ときには適応上限値ah及び適応下限値alの両者が適応許容範囲の縮小方向に更新されていくことで、該適応許容範囲の上限側及び下限側が漸次縮小されていく。
【０４５１】
さらに、要求偏差空燃比ｕslが適応上限値ah及び適応下限値alのいずれか一方の限界値ah又はal側に適応許容範囲から逸脱したときには（ｕsl＞ah又はｕsl＜al）、その一方（逸脱側）の限界値ah又はalが適応許容範囲の拡大方向に更新されていくことで、適応許容範囲の当該一方の限界値ah又はal側が漸次拡大されていく。同時に、他方（逸脱側と反対側）の限界値al又はahが適応許容範囲の縮小方向に更新されていくことで、適応許容範囲の当該他方の限界値al又はah側が漸次縮小されていく。
【０４５２】
また、ＳＬＤ制御状態が低レベルもしくは高レベル不安定状態である場合を除き、エンジン１のフュエルカット直後、始動直後、リーン運転の終了直後の状態であるときには、リミット処理用の許容範囲は、その上限値AHF 又はAHFIを固定的な前記上限側第５所定値AFCHとした前記ＦＣ／始動／リーン後許容範囲（上限側が最も広い許容範囲）に設定される。これにより、該上限値AHF 又はAHFIが上限側第５所定値AFCHよりも許容範囲の縮小方向の値になるのが禁止される（前記ＳＴＥＰ１０−１−６）。
【０４５３】
この場合、このＦＣ／始動／リーン後許容範囲にあっては、エンジン１のアイドリング状態では、下限値ALFIが、前記アイドル許容範囲の下限値である固定的な前記下限側第３所定値LIに設定される。また、エンジン１のアイドリング状態以外の運転状態では、ＦＣ／始動／リーン後許容範囲の下限値ALF は、可変的な適応下限値alに設定される。そして、この下限値ALF （＝al）は、要求偏差空燃比ｕslがＦＣ／始動／リーン後許容範囲の上限側に逸脱した場合を除いて、該要求偏差空燃比ｕslのＦＣ／始動／リーン後許容範囲からの逸脱状況に応じて前記適応許容範囲の適応下限値alと全く同様に制御サイクル毎に更新されることとなる（前記ＳＴＥＰ１０−１５，１０−１７，１０−２１）。
【０４５４】
このようなＦＣ／始動／リーン後許容範囲のうち、ＦＣ後許容範囲が許容範囲として設定される場合における該許容範囲の時間的変化の様子を要求偏差空燃比ｕslの時間的変化の様子と併せて図２２に例示的に示す。同様に、始動後許容範囲もしくはリーン運転後許容範囲が許容範囲として設定される場合における該許容範囲の時間的変化の様子をそれぞれ図２３、図２４に例示的に示す。
【０４５５】
図２２に示す如く、エンジン１のフュエルカットが開始すると、該フュエルカットの終了後、所定時間が経過するまでの間は（フュエルカットの直後の状態）、ＦＣ後許容範囲が要求偏差空燃比ｕslのリミット処理用の許容範囲として設定され、その上限値AHF が前記上限側第５所定値AFCHに固定的に維持される。従って、許容範囲（ＦＣ後許容範囲）の上限側は広いものとされる。この場合、図示の例では、エンジン１の運転状態はアイドリング状態以外の運転状態であり、ＦＣ後許容範囲の下限値ALF は適応下限値alに設定される。そして、このＦＣ後許容範囲の下限値ALF は基本的には、前記適応許容範囲の場合と同様に逐次更新されていく。但し、フュエルカット直後の状態（フュエルカット中を含む）で、要求偏差空燃比ｕslが、ＦＣ後許容範囲の上限値AHF （＝AFCH）を超えている状態では、前記ＳＴＥＰ１０−２１の処理によって、該ＦＣ後許容範囲の下限値ALF （＝al) は一定に保持される（更新されない）。
【０４５６】
尚、同図２２では、フュエルカットの開始前と、フュエルカットの終了後、所定時間が経過した後における許容範囲が、適応許容範囲に設定される場合（通常的な動作状態）を例示している。また、本実施形態では、フュエルカット中もフュエルカット直後の状態に含めているため、該フュエルカットの開始時から許容範囲をＦＣ後許容範囲とし、その上限値AHF を前記上限側第５所定値AFCHに設定するようにしている。しかるに、フュエルカット中は、目標空燃比生成処理部２８が生成する目標空燃比KCMDによる空燃比の操作を行わない。従って、該フュエルカット中の許容範囲は任意でよく、必ずしもＦＣ後許容範囲に設定する必要はない。あるいは、フュエルカット中は、要求偏差空燃比ｕslのリミット処理を行わないようにしてもよい。
【０４５７】
一方、始動後許容範囲の設定に関しては、図２３に示す如く、エンジン１の始動後、目標空燃比生成処理部２８の演算処理が開始すると（この開始タイミングは、基本的にはＯ2 センサ６及びＬＡＦセンサ５の両者の活性化が確認された時点である。図９を参照）、要求偏差空燃比ｕslの算出が開始される。また、この要求偏差空燃比ｕslにリミット処理を施す許容範囲は、始動後許容範囲に設定される。そして、その上限値AHFI（図示の例ではエンジン１の始動後の運転状態はアイドリング状態である）が、エンジン１の始動時から所定時間が経過するまでは、前記上限側第５所定値AFCHに固定的に維持される（許容範囲の上限側が広いものとされる）。この場合、エンジン１のアイドリング状態であるので、始動後許容範囲の下限値ALFIは、前記下限側第３所定値LIに設定される。
【０４５８】
尚、エンジン１の始動後の運転状態がアイドリング状態に維持されれば、エンジン１の始動後、所定時間が経過した後における許容範囲は基本的には、図示の如く前記アイドル許容範囲（AHFI ＝ HI、ALFI ＝ LI）に設定される。
【０４５９】
さらに、リーン運転後許容範囲の設定に関しては、図２４に示す如く、エンジン１の運転モードがリーン運転モードから通常運転モードに移行し、目標空燃比生成処理部２８の演算処理と該処理部２８が生成した目標空燃比KCMDによる空燃比の操作とが再開すると、その再開後、所定時間が経過するまでの間は（リーン運転の終了直後の状態）、リーン運転後許容範囲が要求偏差空燃比ｕslのリミット処理用の許容範囲として設定され、その上限値AHF が前記上限側第５所定値AFCHに固定的に維持される。従って、許容範囲（リーン運転後許容範囲）の上限側は広いものとされる。この場合、図示の例では、リーン運転後のエンジン１の運転状態はアイドリング状態以外の通常的な運転状態であり、リーン運転後許容範囲の下限値ALF は、適応下限値alに設定され、適応許容範囲の場合と同様に逐次更新されていく。但し、要求偏差空燃比ｕslが、リーン運転後許容範囲の上限値AHF （＝AFCH）を超えている状態では、前記ＳＴＥＰ１０−２１の処理によって、該リーン運転後許容範囲の下限値ALF （＝al) は一定に保持される。
【０４６０】
尚、リーン運転中は、目標空燃比生成処理部２８の演算処理を行なわないため、要求偏差空燃比ｕsl、許容範囲の上限値AHF 及び下限値ALF の値は、それぞれ、例えばリーン運転が開始される直前の値に保持される。また、本実施形態では、リーン運転後許容範囲を要求偏差空燃比ｕslのリミット処理用の許容範囲として設定する期間を、リーン運転の終了後、所定時間が経過するまでとしているが、例えばリーン運転の終了後に前記推定器２６が逐次求める前記推定偏差出力VO2 バーが略「０」になるまで（推定偏差出力VO2 バーにより定まるＯ2 センサ６の出力の推定値が前記基準空燃比FLAF/BASE にほぼ等しくなるまで）、リーン運転後許容範囲を設定しておくようにしてもよい。
【０４６１】
また、ＳＬＤ制御状態の低レベルもしくは高レベル不安定状態、エンジン１のフュエルカット直後の状態、始動直後の状態、リーン運転の終了直後の状態のいずれでもなく、エンジン１を搭載した車両の発進直後の状態であるときには（このときエンジン１のアイドリング状態ではない）、リミット処理用の許容範囲は、その下限値ALF を固定的な前記下限側第２所定値VSTLとした前記負荷駆動後許容範囲（下限側が狭い許容範囲）に設定され、該下限値ALF が下限側第２所定値VSTLよりも許容範囲の拡大方向の値になるのが禁止される（前記ＳＴＥＰ１０−１−２１）。
【０４６２】
この場合、この負荷駆動後許容範囲にあっては、その上限値AHF は、可変的な適応上限値ahに設定される（前記ＳＴＥＰ１０−１−１９）。そして、この上限値AHF （＝ah）は、要求偏差空燃比ｕslが負荷駆動後許容範囲の下限側に逸脱した場合を除いて、該要求偏差空燃比ｕslの負荷駆動後許容範囲からの逸脱状況に応じて前記適応許容範囲の適応上限値ahと全く同様に制御サイクル毎に更新されることとなる（前記ＳＴＥＰ１０−１５，１０−１８，１０−２０）。
【０４６３】
このような負荷駆動後許容範囲が許容範囲として設定される場合における該許容範囲の時間的変化の様子を要求偏差空燃比ｕslの時間的変化の様子と併せて図２５に例示的に示す。
【０４６４】
図２５に示す如く、エンジン１のアイドリング状態から車両の発進を開始する（エンジン１がその負荷の駆動を開始する）と、その発進開始後、所定時間が経過するまでの間は（発進直後の状態）、許容範囲は、負荷駆動後許容範囲とされ、その下限値ALF は、前記下限側第２所定値VSTLに固定的に維持される。従ってて、許容範囲（負荷駆動後許容範囲）の下限側は比較的狭いものとされる。この場合、該負荷駆動後許容範囲の上限値AHF は、適応上限値ahに設定され、前記適応許容範囲の場合と同様に逐次更新されていく。
【０４６５】
尚、車両の発進前のエンジン１のアイドリング状態では、許容範囲は図示の如く、通常的にはアイドル許容範囲（AHFI ＝ HI、ALFI ＝ LI）に設定される。また、図２５では、車両の発進後、所定時間が経過した後における許容範囲が、適応許容範囲に設定される場合（通常的な状態）を例示している。
【０４６６】
以上説明した内容が前記ＳＴＥＰ１０におけるリミット処理の詳細である。
【０４６７】
図８に戻って、目標空燃比生成処理部２８は、前述のようにリミッタ３０で求めた指令偏差空燃比kcmdに前記空燃比基準値FLAF/BASE （より詳しくは前回の制御サイクルにおける後述のＳＴＥＰ１２で基準値設定部１１が求めた空燃比基準値FLAF/BASE ）を前記加算処理部３１で加算することで、今回の制御サイクルにおける目標空燃比KCMDを算出する（ＳＴＥＰ１１）。
【０４６８】
このようにして求められた目標空燃比KCMDは、制御サイクル毎に図示しないメモリに時系列的に記憶保持される。そして、前記機関側制御ユニット７ｂが、排気側制御ユニット７ａの目標空燃比生成処理部２８で決定された目標空燃比KCMDを用いるに際しては（図６のＳＴＥＰｆを参照）、上記のように時系列的に記憶保持された目標空燃比KCMDの中から最新のものが選択される。
【０４６９】
次いで、目標空燃比生成処理部２８は、前記基準値設定部１１により空燃比基準値FLAF/BASE を設定する処理（更新処理）を行った後（ＳＴＥＰ１２）、今回の制御サイクルの処理を終了する。
【０４７０】
この場合、本実施形態では、空燃比基準値FLAF/BASE は、あらかじめ定めた一定値とした固定的な成分flaf/base （以下、基準値固定成分flaf/base という）と、可変的な成分flaf/adp（以下、基準値可変成分flaf/adpという）との和、すなわち、FLAF/BASE ＝flaf/base ＋flaf/adpとして定義している。そして、空燃比基準値FLAF/BASE を可変的に設定するに際しては、上記基準値可変成分flaf/adpの値を調整するようにしている。尚、上記基準値固定成分flaf/base は、本実施形態では、例えば「理論空燃比」としている。
【０４７１】
ＳＴＥＰ１２の処理は図２６のフローチャートに示すように行われる。
【０４７２】
すなわち、基準値設定部１１は、まず、前記Ｏ2 センサ６の偏差出力VO2 が「０」近傍にあらかじめ定めた所定範囲（下限値及び上限値をそれぞれ所定値（固定値）ADL （＜０）、ADH （＞０）とした範囲。以下、収束判別範囲という）内の値であるか否を判断する（ＳＴＥＰ１２−１）。換言すれば、Ｏ2 センサ６の出力VO2/OUT がその目標値VO2/TARGETにほぼ収束している状態であるか否かを判断する。尚、本実施形態では、上記収束判別範囲の上限値ADH 及び下限値ADL の絶対値は同一とされている（｜ADH ｜＝｜ADL ｜）
このとき、偏差出力VO2 が収束判別範囲内にあり（ADL ＜VO2 ＜ADH の条件が成立）、Ｏ2 センサ６の出力VO2/OUT が目標値VO2/TARGETにほぼ収束している場合には、基準値設定部１１はさらに、前記リミッタ３０が前記ＳＴＥＰ９の処理（ＳＬＤ制御状態の安定性の判別処理）で求めた前記安定性判別基本パラメータＰstb （図１６のＳＴＥＰ９−１を参照）の値をあらかじめ定めた所定値δ（＞０）と比較する（ＳＴＥＰ１２−２）。これにより、前記図１６のＳＴＥＰ９−４の場合と同様に、前記ＳＬＤ制御状態の安定性を判別する（ＳＴＥＰ１２−２）。
【０４７３】
尚、このＳＴＥＰ１２−２で安定性判別基本パラメータＰstb と比較する所定値δは、図１６のＳＴＥＰ９−４で用いた所定値εよりも小さな値とされ、ＳＬＤ制御状態を安定であると判断するための条件をより厳しいものとしている。
【０４７４】
この安定性の判別においてＰstb ＜δであって、ＳＬＤ制御状態が安定であると判断される場合には、基準値設定部１１は、前記図１５のＳＴＥＰ８−３でスライディングモード制御器２７が求めた適応則入力ｕadp （要求偏差空燃比ｕslの適応則成分）の値に応じて前記基準値可変成分flaf/adpを調整する処理を行う（ＳＴＥＰ１２−３〜１２−７）。
【０４７５】
さらに詳細には、基準値設定部１１は、適応則入力ｕadp の値を、「０」近傍にあらかじめ定めた所定範囲（下限値及び上限値をそれぞれ所定値（固定値）NRL （＜０）、NRH （＞０）とした範囲。以下、基準値調整用不感帯という）と比較する（ＳＴＥＰ１２−３，１２−５）。尚、本実施形態では、上記基準値調整用不感帯の上限値NRH 及び下限値NRL の絶対値は同一とされている（｜NRL ｜＝｜NRH ｜）。
【０４７６】
そして、基準値設定部１１は適応則入力ｕadp が該基準値調整用不感帯の下限値NRL よりも小さい場合（ｕadp ＜NRL である場合）には、前記基準値可変成分flaf/adpの現在値flaf/adp(k-1) （前回の制御サイクルで決定された値）から、あらかじめ定めた所定の（一定の）変化量Δflaf（＞０。以下、基準値単位変化量Δflaf）を減算することで新たな基準値可変成分flaf/adp(k) を求める（ＳＴＥＰ１２−４）。つまり、基準値可変成分flaf/adpの値を基準値単位変化量Δflafだけ減少させる。
【０４７７】
また、適応則入力ｕadp が上記基準値調整用不感帯の上限値NRH よりも大きい場合（ｕadp ＞NRH である場合）には、前記基準値可変成分flaf/adpの現在値flaf/adp(k-1) に、基準値単位変化量Δflafを加算することで新たな基準値可変成分flaf/adp(k) を求める（ＳＴＥＰ１２−６）。つまり、基準値可変成分flaf/adpの値を基準値単位変化量Δflafだけ増加させる。
【０４７８】
そして、適応則入力ｕadp が上記基準値調整用不感帯に収まっている場合（NRL ≦ｕadp ≦NRH の場合）には、基準値可変成分flaf/adpの値を変化させることなく、現在値flaf/adp(k-1) に保持する（ＳＴＥＰ１２−７）。
【０４７９】
次いで、基準値設定部１１は、このようにＳＴＥＰ１２−４，１２−６，１２−７のいずれかで決定した基準値可変成分flaf/adpの値を前記基準値固定成分flaf/base に加算することで、次回の制御サイクルにおける前記ＳＴＥＰ１１で目標空燃比KCMDを求めるために使用する空燃比基準値FLAF/BASE を決定し（ＳＴＥＰ１２−８）、図８のメインールチンの処理に復帰する。
【０４８０】
また、前記ＳＴＥＰ１２−１の判断において、Ｏ2 センサ６の出力VO2/OUT が目標値VO2/TARGETに未収束状態である場合（VO2 ≦ADL 又はVO2 ≧ADH の場合）、あるいは、ＳＴＥＰ１２−２の判断において、ＳＬＤ制御状態が不安定である場合（Ｐstb ≧δの場合）には、基準値可変成分flaf/adpの値を変更することなく前記ＳＴＥＰ１２−７の処理を行って基準値可変成分flaf/adpの値を現在値flaf/adp(k-1) に保持する。そして、前記ＳＴＥＰ１２−８の処理（空燃比基準値FLAF/BASE の決定）を経て図８のメインルーチンの処理に復帰する。
【０４８１】
尚、上記のようにして適応則入力ｕadp に応じて適宜変更する前記基準値可変成分flaf/adpの値は、エンジン１の運転を停止し、排気側制御ユニット７ａ等をＯＦＦ状態としても失われることの無いように図示しない不揮発性メモリ（例えばＥＥＰＲＯＭ）に記憶保持する。そして、その記憶保持した基準値可変成分flaf/adpの値は、次回のエンジン１の運転時における基準値可変成分flaf/adpの初期値として用いる。また、エンジン１の運転を最初に行ったときの基準値可変成分flaf/adpの初期値は「０」である。
【０４８２】
以上説明したＳＴＥＰ１２の処理における適応則入力ｕadp の変化の様子と、これに応じた前記基準値可変成分flaf/adp及び空燃比基準値FLAF/BASE の変化の様子とをそれぞれ図２７の第１段及び第２段に例示的に示す。
【０４８３】
図示の如く、適応則入力ｕadp が前記基準値調整用不感帯内に存するときには（図２７のＴ１，Ｔ３，Ｔ５期間）、基準値可変成分flaf/adp及び空燃比基準値FLAF/BASE は、変更されず、一定に保持される。一方、適応則入力ｕadp が基準値調整用不感帯の上限値NRH よりも大きい状態では（図２７のＴ２期間）、基準値可変成分flaf/adp及び空燃比基準値FLAF/BASE は、基準値単位変化量Δflafづつ制御サイクル毎に増加されていく。また、適応則入力ｕadp が基準値調整用不感帯の下限値NRL よりも小さい状態では（図２７のＴ４期間）、基準値可変成分flaf/adp及び空燃比基準値FLAF/BASE は、基準値単位変化量Δflafづつ制御サイクル毎に減少されていく。このようにして、最終的には、基準値可変成分flaf/adp及び空燃比基準値FLAF/BASE は、適応則入力ｕadp が基準値調整用不感帯内に収まるような値に収束していく。
【０４８４】
以上説明した内容が本実施形態の装置の詳細な作動である。
【０４８５】
すなわち、その作動を要約すれば、基本的には目標空燃比生成処理部２８の操作量生成部２９（スライディングモード制御器２７、推定器２６、同定器２５）によって、触媒装置３の下流側のＯ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させるために対象排気系Ｅに与えるべき入力としての要求偏差空燃比ｕsl（上記収束のために要求されるエンジン１の空燃比と空燃比基準値FLAF/BASE との偏差）が逐次生成される。そして、この要求偏差空燃比ｕslにリミット処理を施してなる指令偏差空燃比kcmd（基本的にはkcmd＝ｕsl）に空燃比基準値FLAF/BASE を加算することで目標空燃比KCMDが逐次決定される。さらに、機関側制御ユニット７ｂによって、この目標空燃比KCMDにＬＡＦセンサ５の出力（空燃比の検出値）を収束させるようにエンジン１の燃料噴射量を調整することで、エンジン１の空燃比が目標空燃比KCMDにフィードバック制御される。これにより、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束制御し、ひいては触媒装置３の経時劣化等によらずに、触媒装置３の最適な排ガス浄化性能を確保することができる。
【０４８６】
この場合、本実施形態では、操作量生成部２９は、スライディングモード制御器２７によって、外乱等の影響に対する安定性の高い適応スライディングモード制御の処理を実行することで要求偏差空燃比ｕslを算出する。そして、この要求偏差空燃比ｕslの算出に際しては、触媒装置３を含む対象排気系Ｅの無駄時間d1と空燃比操作系（エンジン１及び機関側制御ユニット７ｂからなる系）の無駄時間d2とを合わせた合計無駄時間ｄ後のＯ2 センサ６の偏差出力VO2 の推定値である推定偏差出力VO2 バーを推定器２６により逐次求める。そして、この推定偏差出力VO2 バーを用いて構築した適応スライディングモード制御の処理（より詳しくは推定偏差出力VO2 バーを「０」に収束させるように構築した適応スライディングモード制御の処理）をスライディングモード制御器２７に実行させることで要求偏差空燃比ｕslを求める。
【０４８７】
これにより、対象排気系Ｅ及び空燃比操作系の両者の無駄時間d1，d2の影響を補償しつつ、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束制御する上で適正な要求偏差空燃比ｕslを生成することができる。
【０４８８】
さらに、スライディングモード制御器２７による適応スライディングモード制御の処理や、推定器２６による推定偏差出力VO2 バーの算出処理に必要となる前記排気系モデル（対象排気系Ｅの挙動を表現するモデル）のパラメータとしての前記ゲイン係数a1,a2,b1を同定器２５によってリアルタイムで逐次同定する。そして、スライディングモード制御器２７や推定器２６は、それぞれ、このゲイン係数a1,a2,b1の同定値である前記同定ゲイン係数a1ハット，a2ハット，b1ハットを用いて前記要求偏差空燃比ｕsl、推定偏差出力VO2 バーを求める。
【０４８９】
これにより、同定ゲイン係数a1ハット，a2ハット，b1ハットの値を対象排気系Ｅの挙動状態に則したものとして、その信頼性を高めることができ、ひいては、要求偏差空燃比ｕslや推定偏差出力VO2 バーの信頼性を高めることができる。
【０４９０】
さらに、エンジン１の空燃比を操作する機関側制御ユニット７ｂにあっては、エンジン１の挙動変化等の影響を的確に補償し得る漸化式形式の制御器としての適応制御器１８を主体として、エンジン１の空燃比を目標空燃比KCMDに操作する。このため、エンジン１の空燃比を目標空燃比KCMDに安定して精度よく操作することができ、ひいてはＯ2 センサ６の出力VO2/OUT の目標値VO2/TARGETへの収束制御を安定して精度よく行うことができる。
【０４９１】
また、本実施形態では、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束制御すべく操作量生成部２９が生成する要求偏差空燃比ｕslにリミット処理を施して許容範囲内に制限してなる指令偏差空燃比kcmdによって最終的に目標空燃比KCMDを決定する。このため、要求偏差空燃比ｕslがスパイク状に大きな変動を生じた場合等に、目標空燃比KCMD、ひいてはエンジン１の実際の空燃比の過大な変動を回避し、エンジン１の運転状態の安定性を確保することができる。
【０４９２】
この場合、本実施形態では、要求偏差空燃比ｕslのリミット処理用の許容範囲として、通常的には、前記適応許容範囲が設定される。そして、この適応許容範囲の適応上限値ah及び適応下限値alは、前述の如く要求偏差空燃比ｕslの該許容範囲からの逸脱状況に応じて（詳しくは、上限値及び下限値に対する要求偏差空燃比ｕslの大小関係に応じて）逐次可変的に更新されていく（図２１を参照）。
【０４９３】
このため、適応許容範囲を、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させるために対象排気系Ｅに与えるべき入力として生成される要求偏差空燃比ｕslの値の範囲に過不足なく整合したものとすることができる。
【０４９４】
例えば、定常的に生成される要求偏差空燃比ｕslの値の範囲が比較的狭いものとなるような状況（要求偏差空燃比ｕslが定常的に適応許容範囲内に収まるような状況）では、それに合わせて適応許容範囲を狭めることができる。逆に、要求偏差空燃比ｕslの値の範囲が比較的広いものとなるような状況（要求偏差空燃比ｕslが頻繁に適応許容範囲から逸脱するような状況）では、それに合わせて適応許容範囲を広げることができる。また、例えば要求偏差空燃比ｕslの値の範囲が適応許容範囲の上限側（正側）に偏りを生じたような状況（要求偏差空燃比ｕslが頻繁に適応許容範囲の上限側に逸脱するような状況）では、それに合わせて適応許容範囲も正側に偏らせることができる。
【０４９５】
これにより、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で適正な要求偏差空燃比ｕslが許容範囲（適応許容範囲）内に収まりやすくなって、該要求偏差空燃比ｕslをそのまま指令偏差空燃比kcmdとして目標空燃比KCMDが決定される（KCMD＝ｕsl＋FLAF/BASE となる）機会が多くなる。そして、特に本実施形態では要求偏差空燃比ｕslを適応スライディングモード制御の処理を用いて生成するので、該要求偏差空燃比ｕslの安定性や信頼性が高い。この結果、Ｏ2 センサ６の出力VO2/OUT の目標値VO2/TARGETへの収束制御を安定して行うことができる。
【０４９６】
同時に、要求偏差空燃比ｕslが外乱等の影響で一時的に大きく変動してスパイク状のものとなり、許容範囲（適応許容範囲）を逸脱したような状況では、前記指令偏差空燃比kcmdを該許容範囲内の値に制限して、目標空燃比KCMDの大きな変動を避け、エンジン１の安定した運転状態を確保することができる。そして、この場合、要求偏差空燃比ｕslに対するリミット処理を行った後に適応許容範囲を更新するので、上記のような不適正な要求偏差空燃比ｕslをそのまま用いた目標空燃比KCMDの決定、及びこれに応じたエンジン１の空燃比の操作を確実に排除することができる。
【０４９７】
また、適応許容範囲の更新に際しては、その上限側あるいは下限側の拡大方向での適応上限値ahあるいは適応下限値alの１制御サイクル当たりの変化量を規定する前記拡大側単位変化量ΔINC を、縮小方向での適応上限値ahあるいは適応下限値alの１制御サイクル当たりの変化量を規定する前記縮小側単位変化量ΔDEC よりも大きいものとしている。このため、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で適正な要求偏差空燃比ｕslが適応許容範囲から逸脱するような状況では、速やかに、該要求偏差空燃比ｕslが内部に収まるような許容範囲に該適応許容範囲を変化させることができる。
【０４９８】
さらに、前記適応許容範囲は、その適応上限値ahが前記上限側第１所定値STABH と上限側第４所定値HHとの間の範囲に制限されると共に、適応下限値alが前記下限側第１所定値STABL と下限側第５所定値LLとの間の範囲に制限される（前記図２０のＳＴＥＰ１０−１−１１〜１０−１−１８を参照）。これにより、目標空燃比KCMDが、過剰にリーン側あるいはリッチ側の値になって、エンジン１の円滑な運転を行う上で不適正なものとなってしまうような事態を回避することができる。
【０４９９】
また、本実施形態では、上記のように要求偏差空燃比ｕslのリミット処理用の許容範囲を可変的な適応許容範囲に設定する他、ＳＬＤ制御状態が不安定であると判断される場合や、エンジン１の特定の運転状態（フュエルカット直後の状態やアイドリング状態等）においては、それぞれに応じた許容範囲を前述の如く設定することで次のような効果がある。
【０５００】
すなわち、ＳＬＤ制御状態が不安定であるような場合には、Ｏ2 センサ６の出力VO2/OUT が不安定となって、変動を生じ易い。しかるに、本実施形態では、このような状況では、比較的狭めの前記低不安定用許容範囲もしくは高不安定用許容範囲がリミット処理用の許容範囲として設定される。このため、前記指令偏差空燃比kcmd、ひいては目標空燃比KCMDの変動が抑えられ、この結果、Ｏ2 センサ６の出力VO2/OUT を安定化することができる
しかも、ＳＬＤ制御状態が不安定であると判断されるときに設定する許容範囲は、低レベル不安定状態である場合よりも高レベル不安定状態である場合の方が狭い（図１８参照）。つまり、ＳＬＤ制御状態の不安定さの度合いが高い程、許容範囲を狭くしている。このため、高レベル不安定状態では、指令偏差空燃比kcmd、ひいては目標空燃比KCMDの変動をできるだけ積極的に抑えて、Ｏ2 センサ６の出力VO2/OUT の安定性を確実に確保することができる。また、低レベル不安定状態では、Ｏ2 センサ６の出力VO2/OUT の安定化を図りつつ、該出力VO2/OUT の目標値VO2/TARGETへの収束性もある程度確保することができる。
【０５０１】
さらに、本実施形態では、目標空燃比生成処理部２８が生成する目標空燃比KCMDによるエンジン１の空燃比の操作（Ｏ2 センサ６の出力VO2/OUT の目標値VO2/TARGETへの収束制御）を開始してから所定時間（：TMSTB ）は、ＳＬＤ制御状態の安定性の判断を行わなず（ＳＬＤ制御状態が安定であると見なす。図７のＳＴＥＰｄ−１１、図１６のＳＴＥＰ９−２，９−３を参照）、前記低不安定用許容範囲や高不安定用許容範囲が要求偏差空燃比ｕslのリミット処理用の許容範囲として設定されるのを排除する。つまり、Ｏ2 センサ６の出力VO2/OUT の収束制御の開始直後は、該出力VO2/OUT が目標値VO2/TARGETに収束していない。そこで、その収束を促進するために、できるだけ、指令偏差空燃比kcmdが許容範囲の上限値あるいは下限値に制限されるのを避け、要求偏差空燃比ｕslがそのまま指令偏差空燃比kcmdとなるような頻度を高める。これにより、Ｏ2 センサ６の出力VO2/OUT を速やかに目標値VO2/TARGETに近づけていくことができる。
【０５０２】
また、エンジン１のフュエルカット直後の状態では、前記図２２に示した如く、リミット処理用の許容範囲をＦＣ後許容範囲とし、その上限側を広いものとする。すなわち、フュエルカット中は触媒装置３に大量の酸素が貯えられるため、Ｏ2 センサ６の出力VO2/OUT は、その目標値VO2/TARGETよりも空燃比のリーン側（Ｏ2 センサ６の出力VO2/OUT が小さくなる側。図２を参照）に離間する。従って、このフュエルカットの直後は、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させるための要求偏差空燃比ｕslは、図２２に示した如く、空燃比をリッチ側に変化させる方向（本実施形態では、これは要求偏差空燃比ｕslの正方向で、許容範囲の上限側である）で大きなものとなる。このため、本実施形態では、ＦＣ後許容範囲の上限値を前記上限側第５所定値AFCHとして、該許容範囲を上限側に広いものとする。これにより、フュエルカット直後における指令偏差空燃比kcmdが要求偏差空燃比ｕslに合わせて許容範囲の上限側に大きな値を採ることが可能となり、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETへの収束を迅速に行うことができる。
【０５０３】
また、エンジン１の始動直後の状態においては、前記図２３に示した如く、リミット処理用の許容範囲を始動後許容範囲とし、その上限側をフュエルカット直後の場合と同様に、広いものとする。すなわち、エンジン１の始動時のクランキング動作中に触媒装置３へ送り込まれる酸素が触媒装置３に貯えられるため、エンジン１の始動直後は、Ｏ2 センサ６の出力VO2/OUT が、目標値VO2/TARGETよりも空燃比のリーン側に離間した状態となり易い。このため、本実施形態では、フュエルカット直後の場合と同様に、始動後許容範囲の上限側（空燃比のリッチ側に対応する側）を広いものとする。これにより、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETへの収束を迅速に行うことができる。
【０５０４】
さらに、エンジン１のリーン運転の終了直後（リーン運転モードから通常運転モードへの移行直後）の状態においては、前記図２４に示した如く、リミット処理用の許容範囲をリーン運転後許容範囲とし、その上限側をフュエルカット直後の場合と同様に広いものとする。すなわち、エンジン１のリーン運転中は、エンジン１の空燃比がリーン状態に操作されるので、Ｏ2 センサ６の出力VO2/OUT が、目標値VO2/TARGETよりも空燃比のリーン側に離間した状態となる。このため、本実施形態では、フュエルカット直後の場合と同様に、リーン運転後許容範囲の上限側を広いものとする。これにより、リーン運転の終了直後における指令偏差空燃比kcmdが要求偏差空燃比ｕslに合わせて許容範囲の上限側に大きな値を採ることが可能となる。従って、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETへの収束を迅速に行ない、ひいては触媒装置３の適正な浄化性能を迅速に確保することができる。
【０５０５】
また、このとき、指令偏差空燃比kcmdが許容範囲の上限側（空燃比のリッチ側に対応する側）に大きな値を採ることによって、エンジン１の実際の空燃比も、リーン運転の終了後、速やかにリッチ状態の空燃比となる。従って、エンジン１のリーン運転中に触媒装置３，４に含まれるＮＯx 吸収材（図示しない）が吸収したＮＯx を速やかに還元することができる。従って、次回のリーン運転中には、排ガス中のＮＯx を触媒装置３，４のＮＯx 吸収材により、十分に吸収して排ガスを浄化することができる。
【０５０６】
また、車両の発進直後の状態、すなわち、エンジン１がその負荷の駆動を開始した直後の状態では、前記図２５に示した如く、リミット処理用の許容範囲を負荷駆動後許容範囲とし、その下限側を狭いものとする。すなわち、エンジン１がその負荷の駆動を開始した直後は、エンジン１の空燃比がリーン側に変移しやすい。そして、このような状況が、要求偏差空燃比ｕslにより空燃比をリーン方向（本実施形態では、これは要求偏差空燃比ｕslの負方向で、許容範囲の下限側である）に変化させようとしているときに生じると、Ｏ2 センサ６の出力VO2/OUT が目標値VO2/TARGETに対して過大に空燃比のリーン方向に変化してしまいやすい。このため、本実施形態では、負荷駆動後許容範囲の下限値を前記下限側第２所定値VSTLとして、該許容範囲を下限側に狭いものとする。これにより、車両の発進直後（エンジン１がその負荷の駆動を開始した直後）における指令偏差空燃比kcmdが許容範囲の下限側で採り得る値の大きさ（絶対値）を小さめの値に制限し、Ｏ2 センサ６の出力VO2/OUT の安定性を確保することができる。
【０５０７】
尚、本実施形態では、要求偏差空燃比ｕslを、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で対象排気系Ｅに与えるべき空燃比から空燃比基準値FLAF/BASE を減算したものとして定義している。このため、許容範囲の上限側（正側）が空燃比のリッチ側に対応し、下限側（負側）が空燃比のリーン側に対応するものとなっている。但し、要求偏差空燃比ｕslを、空燃比基準値FLAF/BASE から、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で対象排気系Ｅに与えるべき空燃比を減算したものとして定義することも可能である。この場合には、要求偏差空燃比ｕslの符号が本実施形態と逆になるため、許容範囲の上限側（正側）が空燃比のリーン側に対応し、下限側（負側）が空燃比のリッチ側に対応するものとなる。
【０５０８】
また、エンジン１のアイドリング状態では、リミット処理用の許容範囲を基本的には前記アイドル許容範囲に設定し、その上限側と下限側との両者を、比較的狭めのものとする。すなわち、エンジンのアイドリング状態では、エンジン１の空燃比をあまり変化させると、該アイドリング状態の安定性が損なわれやすい。このため、本実施形態では、エンジン１のアイドリング状態では、狭めのアイドル許容範囲を要求偏差空燃比ｕslのリミット処理用の許容範囲として設定する。これにより、エンジン１のアイドリング状態の安定性を確保しつつ、Ｏ2 センサ６の出力VO2/OUT の目標値VO2/TARGETへの収束制御を行うことができる。
【０５０９】
さらに、本実施形態では、前記空燃比基準値FLAF/BASE を、スライディングモード制御器２７が生成する要求偏差空燃比ｕslの適応則（適応アルゴリズム）に基づく成分である適応則入力ｕadp に応じて前述の如く可変的に設定する。これにより、該空燃比基準値FLAF/BASE が、これに要求偏差空燃比ｕslを加算してなる空燃比（＝ｕsl＋FLAF/BASE ）、すなわち、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で要求される空燃比（これは基本的には前記目標空燃比KCMDに等しい）の値の範囲の中心的な値になるようにすることができる。そして、この結果、スライディングモード制御器２７が逐次生成する要求偏差空燃比ｕslの値を正負にバランスさせ、ひいては、該要求偏差空燃比ｕslに応じて可変化させる適応許容範囲をその上限側（正側）と下限側（負側）とでバランスさせることができる。
【０５１０】
すなわち、Ｏ2 センサ６の出力VO2/OUT が目標値VO2/TARGETに定常的に収束した状態では、前記式（２４）〜（２６）を参照して明らかなように、前記要求偏差空燃比ｕslの適応則入力ｕadp 以外の成分である前記等価制御入力ｕeq及び到達則入力ｕrch は、それぞれ「０」となり、ｕsl＝ｕadp となる。つまり、この適応則入力ｕadp は、Ｏ2 センサ６の出力VO2/OUT が目標値VO2/TARGETに定常的に収束した状態における要求偏差空燃比ｕslの値の範囲の中心的な値としての意味を持つものである。そして、この場合、該適応則入力ｕadp に空燃比基準値FLAF/BASE を加算したものが、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で要求される空燃比、あるいは前記目標空燃比KCMDの中心的な値としての意味を持つこととなる。
【０５１１】
従って、上記適応則入力ｕadp が「０」近傍の値になるように空燃比基準値FLAF/BASE を調整すれば、該空燃比基準値FLAF/BASE をＯ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で要求される空燃比、あるいは前記目標空燃比KCMDの中心的な値にすることができる。このために、本実施形態では、前述の如く適応則入力ｕadp の値に応じて空燃比基準値FLAF/BASE を適宜変化させることで、適応則入力ｕadp の値が前記基準値調整用不感帯内の収まるように空燃比基準値FLAF/BASE を調整する。これにより、該空燃比基準値FLAF/BASE を、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で要求される空燃比、あるいは前記目標空燃比KCMDの中心的な値に調整することができる。そして、この結果、要求偏差空燃比ｕslの値を正負にバランスさせ、特に、該要求偏差空燃比ｕslに応じて可変化させる適応許容範囲をその上限側（正側）と下限側（負側）とでバランスさせることができる。さらに、このように適応許容範囲をその上限側（正側）と下限側（負側）とでバランスさせることで、該上限側と下限側との両者での要求偏差空燃比ｕslのリミット処理をバランスよく適正に行うことができる。
【０５１２】
この場合、本実施形態では、空燃比基準値FLAF/BASE の調整（更新）処理は、Ｏ2 センサ６の出力VO2/OUT が目標値VO2/TARGETにほぼ収束し、且つ、前記安定性判別基本パラメータＰstb によりＳＬＤ制御状態が安定であると判断される場合にのみ行う。このため、前記適応則入力ｕadp の値が安定した段階で空燃比基準値FLAF/BASE の調整が行われることとなり、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で要求される空燃比、あるいは前記目標空燃比KCMDの中心的な値としての空燃比基準値FLAF/BASE の信頼性を高めることができる。
【０５１３】
また、本実施形態では、空燃比基準値FLAF/BASE の調整処理に際しては、適応則入力ｕadp が前記基準値調整用不感帯内に存する状態では該空燃比基準値FLAF/BASE の値を変更しない。これにより、空燃比基準値FLAF/BASE の頻繁な変動を避け、ＳＬＤ制御状態等が不安定となるような事態を回避することができる。
【０５１４】
さらに、本実施形態では、上記のように空燃比基準値FLAF/BASE の調整を行うことで次のような効果もある。
【０５１５】
すなわち、空燃比基準値FLAF/BASE を前記適応則成分ｕadp に応じて変化させることで、Ｏ2 センサ６の出力VO2/OUT の目標値VO2/TARGETへの収束制御の速応性を高めることができる。この理由は次のように考えられる。すなわち、仮に空燃比基準値FLAF/BASE を一定とした場合（例えばFLAF/BASE ＝flaf/base とした場合）、エンジン１の実際の空燃比と目標空燃比KCMDとの間に定常的な誤差が含まれるような場合には、スライディングモード制御器２７が求める適応則入力ｕadp は、最終的にはその誤差分の学習値に相当するものとなる。そして、この誤差分が比較的大きいような場合には、適応則入力ｕadp は、最終的にその誤差分の学習値に相当するものとなるまでに時間を要する。ところが、本実施形態のように空燃比基準値FLAF/BASE を前記適応則成分ｕadp に応じて変化させることで、前述の如く適応則成分ｕadp を「０」近傍の十分に小さな値にすることができる。つまり、上記の誤差分を空燃比基準値FLAF/BASE 側で吸収することができ、この結果、Ｏ2 センサ６の出力VO2/OUT の目標値VO2/TARGETへの収束制御の速応性を高めることができると考えられる。
【０５１６】
また、空燃比基準値FLAF/BASE を前記適応則成分ｕadp に応じて変化させることで、前記推定器２６が求める前記推定偏差出力VO2 バーや、前記同定器２５が求める同定ゲイン係数a1ハット，a2ハット，b1ハットの精度を高めることができる。この理由は次のように考えられる。すなわち、前記空燃比基準値FLAF/BASE を対象排気系Ｅの入力の基準として式（１）で表した排気系モデルは、Ｏ2 センサ６の出力VO2/OUT が目標値VO2/TARGETに定常的に収束した状態において、ＬＡＦセンサ５の出力KACT（空燃比の検出値）が空燃比基準値FLAF/BASE になるようなモデルである。従って、該空燃比基準値FLAF/BASE は、排気系モデルにおいて、Ｏ2 センサ６の出力VO2/OUT が目標値VO2/TARGETに定常的に収束した状態におけるエンジン１の空燃比の中心的な値となるべきものである。そして、本実施形態では、空燃比基準値FLAF/BASE を前記適応則成分ｕadp に応じて変化させることで、前述のように、空燃比基準値FLAF/BASE を、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で要求される空燃比の中心的な値に調整することができる。この結果、排気系モデルの挙動を実際の対象排気系の挙動に、より整合したものとすることができる。このため、この排気系モデルに基づいて推定器２６が求める前記推定偏差出力VO2 バーの精度を高めることができると共に、該排気系モデルのパラメータの同定値として同定器２５が求める同定ゲイン係数a1ハット，a2ハット，b1ハットの精度を高めることができると考えられる。そして、このように推定偏差出力VO2 バーや同定ゲイン係数a1ハット，a2ハット，b1ハットの精度を高めることで、これらのデータを用いてスライディングモード制御器２７が求める要求偏差空燃比ｕslを、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させる上で最適なものとすることができる。この結果、Ｏ2 センサ６の出力VO2/OUT の目標値VO2/TARGETへの収束制御の精度を高めることができる。
【０５１７】
次に、本発明の内燃機関の空燃比制御装置の他の実施形態を説明する。尚、本実施形態は、基本的には前記推定器２６による演算処理のみが前述の実施形態と相違するものであるので、説明に際しての参照符号は前述の実施形態と同一のものを用いる。
【０５１８】
前述の実施形態では、対象排気系Ｅの無駄時間d1と空燃比操作系（エンジン１及び機関側制御ユニット７ｂ）の無駄時間d2とを合わせた合計無駄時間ｄの影響を補償するために、該合計無駄時間ｄ後のＯ2 センサ６の偏差出力VO2 の推定値（推定偏差出力VO2 バー）を求めるようにしている。しかるに、対象排気系Ｅの無駄時間d1に比して空燃比操作系の無駄時間d2が十分に小さいような場合には、対象排気系Ｅの無駄時間d1後のＯ2 センサ６の偏差出力VO2 の推定値VO2(k+d1) バー（以下の説明ではこれを第２推定偏差出力VO2 バーと称する）を求め、その第２推定偏差出力VO2 バーを用いて、要求偏差空燃比ｕslを求めるようにしてもよい。本実施形態は、このような第２推定偏差出力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 ）とを用いて次式（４２）により表される。
【０５２０】
【数４２】
0003913940.tif 000043
【０５２１】
ここで、式（４２）において、α3 ，α4 は、それぞれ前記式（１２）中のただし書きで定義した行列Ａの巾乗Ａd1（d1：対象排気系Ｅの無駄時間）の第１行第１列成分、第１行第２列成分である。また、γj （j=1,2,…,d1 ）は、それぞれ行列Ａの巾乗Ａj-1 （j=1,2,…,d1 ）と前記式（１２）中のただし書きで定義したベクトルＢとの積Ａj-1 ・Ｂの第１行成分である。
【０５２２】
この式（４２）が本実施形態において、推定器２６が前記第２推定偏差出力VO2(k+d1) バーを算出するための式である。この式（４２）は、前記式（１２）中の「kcmd」を「kact」に置き換えると共に、式（１２）中の「ｄ」を「d1」に置き換えた式である。つまり、本実施形態では、推定器２６は、制御サイクル毎に、Ｏ2 センサ６の偏差出力VO2 の時系列データVO2(k)及びVO2(k-1)と、ＬＡＦセンサ５の偏差出力kactの過去値の時系列データkact(k-j) （ｊ＝１，…，d1）とを用いて式（４２）の演算を行うことによって、Ｏ2 センサ６の第２推定偏差出力VO2(k+d1) バーを求める。
【０５２３】
この場合、式（４２）により第２推定偏差出力VO2(k+d1) バーを算出するために必要となる係数α3 ，α4 及びγj （j=1,2,…,d1)の値は、前述の実施形態の場合と同様、前記ゲイン係数a1，a2，b1の同定値である前記同定ゲイン係数a1ハット，a2ハット，b1ハットを用いて算出する。また、式（４２）の演算で必要となる無駄時間d1の値は、前述の実施形態と同様に設定した値を用いる。
【０５２４】
以上説明した以外の他の処理については前述の実施形態と基本的には同一である。但し、この場合において、スライディングモード制御器２７は、要求偏差空燃比ｕslの成分である等価制御入力ｕeqと到達則入力ｕrch と適応則入力ｕadp とを、それぞれ前記式（２４）、（２６）、（２７）の「ｄ」を「d1」で置き換えた式により求めることとなる。また、同定器２５が行う同定ゲイン係数a1ハット，a2ハットの組み合わせの制限処理に関しては、対象排気系Ｅの無駄時間d1の値によっては、該組み合わせを制限するための領域（これは前記図１２に示した前記同定係数安定領域あるいは同定係数制限領域に相当する）が前述の実施形態のものと異なるものとなる場合があるが、前述の実施形態と同様に設定すればよい。
【０５２５】
このような本実施形態の内燃機関の空燃比制御装置にあっても、特に、要求偏差空燃比ｕslのリミット処理や空燃比基準値FLAF/BASE の可変的な設定に関して、前述の実施形態と同一の作用効果を奏することができる。
【０５２６】
尚、本発明の内燃機関の空燃比制御装置は、前述した実施形態に限定されるものではなく、例えば次のような変形態様も可能である。
【０５２７】
すなわち、前記実施形態では、エンジン１の空燃比を検出するためにＬＡＦセンサ（広域空燃比センサ）５を用いたが、該空燃比を検出できるものであれば、通常のＯ2 センサ等、他の形式のセンサを用いてもよい。
【０５２８】
また、前記実施形態では、触媒装置３の下流側の排ガスセンサとしてＯ2 センサ６を用いたが、該排ガスセンサは、制御すべき触媒装置下流の排ガスの特定成分の濃度を検出できるセンサであれば、他のセンサを用いてもよい。すなわち、例えば触媒装置下流の排ガス中の一酸化炭素（ＣＯ）を制御する場合はＣＯセンサ、窒素酸化物（ＮＯX ）を制御する場合にはＮＯX センサ、炭化水素（ＨＣ）を制御する場合にはＨＣセンサを用いる。三元触媒装置を使用した場合には、上記のいずれのガス成分の濃度を検出するようにしても、触媒装置の浄化性能を最大限に発揮させるように制御することができる。また、還元触媒装置や酸化触媒装置を用いた場合には、浄化したいガス成分を直接検出することで、浄化性能の向上を図ることができる。
【０５２９】
また、前記実施形態では、要求偏差空燃比ｕslにリミット処理を施した後に、該リミット処理により得られる前記指令偏差空燃比kcmdに空燃比基準値FLAF/BASE を加算することで、目標空燃比KCMDを決定するようにした。但し、要求偏差空燃比ｕslに基準値FLAF/BASE を加算したもの（ここでは要求空燃比という）にリミット処理を施すことで目標空燃比KCMDを決定するようにするようにしてもよい。この場合には、要求偏差空燃比ｕslに対して前述の如く設定する許容範囲の上限値及び下限値にそれぞれ空燃比基準値FLAF/BASE を加算することで、上記要求空燃比に対する許容範囲を定める。そして、この許容範囲により該要求空燃比にリミット処理を施して目標空燃比KCMDを決定するようにすればよい。尚、この場合にあっては、上記要求空燃比を、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させるようにエンジン１の空燃比を操作するための操作量と見なすことができる。
【０５３０】
また、前記実施形態では、エンジン１のフュエルカット直後、始動直後、あるいはリーン運転の終了直後におけるリミット処理用の許容範囲、すなわちＦＣ／始動／リーン後許容範囲の上限値を前記上限側第５所定値AFCHに固定したが、該上限値を、上限側第５所定値AFCHよりも小さくならないようにしつつ、前記適応許容範囲の適応上限値ahと同様に可変的に設定するようにしてもよい。さらに、ＦＣ後許容範囲、始動後許容範囲、及びリーン運転後許容範囲の上限値はそれぞれ各別に設定するようにしてもよい。
【０５３１】
また、前記実施形態では、車両の発進直後の状態におけるリミット処理用の許容範囲、すなわち負荷駆動後許容範囲の下限値を前記下限側第２所定値VSTLに固定したが、該下限値（＜０）を、下限側第２所定値VSTL（＜０）よりも大きくならないようにしつつ、前記適応許容範囲の適応下限値alと同様に可変的に設定するようにしてもよい。
【０５３２】
また、前記実施形態では、排気系モデルのパラメータであるゲイン係数a1,a2,b1を同定器２５により同定するようにしたが、該ゲイン係数a1,a2,b1をあらかじめ定めた固定値に設定したり、あるいは、エンジン１の運転状態や触媒装置３の劣化状態等に応じてマップ等を用いて適宜設定するようにしてもよい。
【０５３３】
また、前記実施形態では、推定器２６とスライディングモード制御器２７とで対象排気系Ｅの共通の排気系モデルを使用したが、各別のモデルを使用してもよい。そして、この場合、スライディングモード制御器２７の処理に用いる排気系モデルの入力は、必ずしも空燃比基準値FLAF/BASE を用いて表す必要はない。
【０５３４】
また、前記実施形態では、排気系モデルを離散系（離散時間系）で表現したが、連続系（連続時間系）で表現し、そのモデルに基づいて推定器２６やスライディングモード制御器２７の処理のアルゴリズムを構築することも可能である。
【０５３５】
また、前記実施形態では、Ｏ2 センサ６の出力VO2/OUT を目標値VO2/TARGETに収束させるようにエンジン１の空燃比を操作するための操作量（前記実施形態では要求偏差空燃比ｕsl）を前記推定偏差出力VO2 バーを用いて生成するフィードバック制御処理として適応スライディングモード制御を用いた。但し、他の形式のフィードバック制御処理（好ましくは、前記適応則入力ｕadp に相当する操作量成分を生成するもの）を用いてもよい。
【０５３６】
また、前記実施形態では、エンジン１の空燃比をＬＡＦセンサ５の出力を用いて目標空燃比KCMDにフィードバック制御するようにした。但し、目標空燃比KCMDからマップ等を用いてフィードフォワード制御によりエンジン１の燃料供給量を調整することで、エンジン１の空燃比を目標空燃比KCMDに操作することも可能である。
【０５３７】
また、本実施形態では、前記空燃比基準値FLAF/BASE の設定に際しては、適応則入力ｕadp が「０」近傍の基準値調整用不感帯内に存する状態では、空燃比基準値FLAF/BASE を変更しないようにした。但し、例えば適応則入力ｕadp が「０」より大きいときには、空燃比基準値FLAF/BASE を前記基準値単位変化量Δflafづつ制御サイクル毎に増加させ、また、適応則入力ｕadp が「０」より小さいときには、空燃比基準値FLAF/BASE を前記基準値単位変化量Δflafづつ制御サイクル毎に減少させる、というようにして該空燃比基準値FLAF/BASE を変化させるようにしてもよい。このようにしても、適応則入力ｕadp が略「０」となるように空燃比基準値FLAF/BASE を調整することができる。
【０５３８】
さらに、前記実施形態では、前記空燃比基準値FLAF/BASE を適応スライディングモード制御による適応則入力ｕadp に応じて変化させるようにした。但し、例えば該適応則入力ｕadp を含まない通常のスライディングモード制御を用いて前記要求偏差空燃比ｕslを生成したような場合にも、前記実施形態と同様に空燃比基準値FLAF/BASE を可変的に設定することが可能である。すなわち、例えば要求偏差空燃比ｕslを、適応則を用いない通常のスライディングモード制御の処理によって前記等価制御入力ｕeqと到達則入力ｕrch との和として求めた場合（ｕsl＝ｕeq＋ｕrch として求める）には、前記安定性判別基本パラメータＰstb （＝σバー・Δσバー）の値、あるいは切換関数σバーの変化速度の値が定常的に略「０」となるような状態における前記到達則入力ｕrch が前記実施形態における適応則入力ｕadp に相当するものとなる。従って、上記のような状態における到達則入力ｕrch に応じて前記実施形態と同様に空燃比基準値FLAF/BASE を変化させることで、前記実施形態と同様の効果を奏することができる。
【０５３９】
また、前記実施形態では、車両に搭載したエンジン１の空燃比制御装置を例にとって説明したが、車両以外のもの（例えば発電機等）を駆動するエンジンについても本発明を適用することができる。
【図面の簡単な説明】
【図１】本発明の内燃機関の空燃比制御装置の一実施形態のシステムの全体的構成図。
【図２】図１のシステムで使用するＯ2 センサの出力特性図。
【図３】図１のシステムの要部の基本構成を示すブロック図。
【図４】図１のシステムで用いるスライディングモード制御を説明するための説明図。
【図５】図１のシステムで用いる適応制御器を説明するためのブロック図。
【図６】図１のシステムのエンジンの動作制御に係わる処理を説明するためのフローチャート。
【図７】図６のフローチャートのサブルーチン処理を説明するためのフローチャート。
【図８】図１のシステムの目標空燃比生成処理部の全体的処理を説明するためのフローチャート。
【図９】図８のフローチャートのサブルーチン処理を説明するためのフローチャート。
【図１０】図８のフローチャートのサブルーチン処理を説明するためのフローチャート。
【図１１】図１０のフローチャートの部分的処理を説明するための説明図。
【図１２】図１０のフローチャートの部分的処理を説明するための説明図。
【図１３】図１０のフローチャートのサブルーチン処理を説明するためのフローチャート。
【図１４】図８のフローチャートのサブルーチン処理を説明するための説明図。
【図１５】図８のフローチャートのサブルーチン処理を説明するためのフローチャート。
【図１６】図８のフローチャートのサブルーチン処理を説明するためのフローチャート。
【図１７】図１６のフローチャートの処理を説明するための説明図。
【図１８】図８のフローチャトのサブルーチン処理で行うリミット処理用の許容範囲を説明するための説明図。
【図１９】図８のフローチャートのサブルーチン処理を説明するためのフローチャート。
【図２０】図１９のフローチャートのサブルーチン処理を説明するためのフローチャート。
【図２１】図１９のフローチャートの処理を説明するための説明図。
【図２２】図１９のフローチャートの処理を説明するための説明図。
【図２３】図１９のフローチャートの処理を説明するための説明図。
【図２４】図１９のフローチャートの処理を説明するための説明図。
【図２５】図１９のフローチャートの処理を説明するための説明図。
【図２６】図８のフローチャートのサブルーチン処理を説明するためのフローチャート。
【図２７】図２６のフローチャートの処理を説明するための説明図。
【符号の説明】
１…エンジン（内燃機関）、２…排気管（排気通路）、３…触媒装置、Ｅ…排気系、６…Ｏ2 センサ（排ガスセンサ）、１１…基準値設定部（基準値可変設定手段）、２９…操作量生成部（操作量生成手段）、３０…リミッタ（リミット処理手段）。
【図１】
0003913940.tif 000044
【図２】
0003913940.tif 000045
【図３】
0003913940.tif 000046
【図４】
0003913940.tif 000047
【図５】
0003913940.tif 000048
【図６】
0003913940.tif 000049
【図７】
0003913940.tif 000050
【図８】
0003913940.tif 000051
【図９】
0003913940.tif 000052
【図１０】
0003913940.tif 000053
【図１１】
0003913940.tif 000054
【図１２】
0003913940.tif 000055
【図１３】
0003913940.tif 000056
【図１４】
0003913940.tif 000057
【図１５】
0003913940.tif 000058
【図１６】
0003913940.tif 000059
【図１７】
0003913940.tif 000060
【図１８】
0003913940.tif 000061
【図１９】
0003913940.tif 000062
【図２０】
0003913940.tif 000063
【図２１】
0003913940.tif 000064
【図２２】
0003913940.tif 000065
【図２３】
0003913940.tif 000066
【図２４】
0003913940.tif 000067
【図２５】
0003913940.tif 000068
【図２６】
0003913940.tif 000069
【図２７】
0003913940.tif 000070