(57)【特許請求の範囲】
【請求項１】
予測アルゴリズムに基づき、制御対象の出力を表す値の予測値を算出する予測値算出手段と、
Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムのうちのいずれか１つの変調アルゴリズムに基づき、前記算出された予測値に応じて、前記制御対象の出力を制御するための、前記制御対象への制御入力を算出する制御入力算出手段と、
を備え、
前記予測値算出手段は、前記予測アルゴリズムに基づき、前記算出された制御入力と前記制御対象に入力された制御入力を反映する値との少なくとも一方、および前記制御対象の出力に応じて、前記予測値を算出し、
前記制御対象の出力は、内燃機関の排気通路の触媒よりも下流側に配置され、当該触媒を通過した後の排気ガスの空燃比を検出する下流側空燃比センサの出力であり、
前記制御対象の出力を表す値は、前記下流側空燃比センサの出力と所定の目標値との偏差である出力偏差であり、
前記制御対象への制御入力は、前記内燃機関に供給される混合気の目標空燃比であり、
前記制御対象に入力された制御入力を反映する値は、前記排気通路の前記触媒よりも上流側に配置され、当該触媒を通過する前の排気ガスの空燃比を検出する上流側空燃比センサの出力であり、
前記予測値算出手段は、前記予測アルゴリズムに基づき、前記内燃機関に供給された混合気の目標空燃比および前記上流側空燃比センサの出力の少なくとも一方と、前記下流側空燃比センサの出力とに応じて、前記出力偏差の予測値を算出し、
前記制御入力算出手段は、前記１つの変調アルゴリズムに基づき、前記算出された出力偏差の予測値に応じて、前記下流側空燃比センサの出力を前記所定の目標値に収束させるための、前記内燃機関に供給すべき混合気の目標空燃比を算出する空燃比算出手段で構成されており、
前記算出された前記出力偏差の予測値に補正係数を乗算する乗算手段と、
当該補正係数を、前記出力偏差の予測値が所定値以上のときに、所定値未満のときよりも小さい値に設定する補正係数設定手段と、をさらに備え、
前記空燃比算出手段は、前記１つの変調アルゴリズムに基づき、前記補正係数が乗算された前記出力偏差の予測値に応じて、前記混合気の目標空燃比を算出することを特徴とする制御装置。
【請求項２】
予測アルゴリズムに基づき、制御対象の出力を表す値の予測値を算出する予測値算出手段と、
Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムのうちのいずれか１つの変調アルゴリズムに基づき、前記算出された予測値に応じて、前記制御対象の出力を制御するための、前記制御対象への制御入力を算出する制御入力算出手段と、
を備え、
前記予測値算出手段は、前記予測アルゴリズムに基づき、前記算出された制御入力および前記制御対象の出力に応じて、前記予測値を算出し、
前記制御対象の出力は、内燃機関の排気通路の触媒よりも下流側に配置され、当該触媒を通過した後の排気ガスの空燃比を検出する空燃比センサの出力であり、
前記制御対象の出力を表す値は、前記空燃比センサの出力と所定の目標値との偏差である出力偏差であり、
前記制御対象への制御入力は、前記内燃機関に供給される混合気の目標空燃比であり、
前記予測値算出手段は、前記予測アルゴリズムに基づき、前記内燃機関に供給された混合気の目標空燃比および前記空燃比センサの出力に応じて、前記出力偏差の予測値を算出し、
前記制御入力算出手段は、前記１つの変調アルゴリズムに基づき、前記算出された出力偏差の予測値に応じて、前記空燃比センサの出力を前記所定の目標値に収束させるための、前記内燃機関に供給すべき混合気の目標空燃比を算出する空燃比算出手段で構成されており、
前記算出された前記出力偏差の予測値に補正係数を乗算する乗算手段と、
当該補正係数を、前記出力偏差の予測値が所定値以上のときに、所定値未満のときよりも小さい値に設定する補正係数設定手段と、をさらに備え、
前記空燃比算出手段は、前記１つの変調アルゴリズムに基づき、前記補正係数が乗算された前記出力偏差の予測値に応じて、前記混合気の目標空燃比を算出することを特徴とする制御装置。
【請求項３】
前記空燃比算出手段は、前記補正係数が乗算された前記出力偏差の予測値を、前記１つの変調アルゴリズムを適用した変調アルゴリズムで変調することにより、第１の変調値を算出するとともに、当該算出された第１の変調値に所定のゲインを乗算した値に基づき、前記混合気の目標空燃比を算出することを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記空燃比算出手段は、前記補正係数が乗算された前記出力偏差の予測値を、前記１つの変調アルゴリズムを適用した変調アルゴリズムで変調することにより、第２の変調値を算出するとともに、当該算出された第２の変調値に所定値を加算した値に基づき、前記混合気の目標空燃比を算出することを特徴とする請求項１または２に記載の制御装置。
【請求項５】
Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムのうちのいずれか１つの変調アルゴリズムと、制御対象をモデル化した制御対象モデルとに基づき、前記制御対象の出力を制御するための、前記制御対象への制御入力を算出する制御入力算出手段を備え、
前記制御対象モデルは、離散時間系モデルとして構成されており、
前記制御対象モデルのモデルパラメータを、前記算出された制御入力と前記制御対象に入力された制御入力を反映する値との一方と、前記制御対象の出力とに応じて、逐次同定する同定手段をさらに備え、
前記制御対象の出力は、内燃機関の排気通路の触媒よりも下流側に配置され、当該触媒を通過した後の排気ガスの空燃比を検出する下流側空燃比センサの出力であり、
前記制御対象への制御入力は、前記内燃機関に供給される混合気の目標空燃比であり、
前記制御対象に入力された制御入力を反映する値は、前記内燃機関の前記排気通路の前記触媒よりも上流側に配置され、当該触媒を通過する前の排気ガスの空燃比を検出する上流側空燃比センサの出力であり、
前記制御対象モデルは、前記下流側空燃比センサの出力を表す値と、前記目標空燃比を表す値および前記上流側空燃比センサの出力を表す値の一方とを変数とするモデルであり、
前記同定手段は、前記下流側空燃比センサの出力を表す値に乗算されるモデルパラメータと、前記目標空燃比を表す値および前記上流側空燃比センサの出力を表す値の一方に乗算されるモデルパラメータとを、前記上流側空燃比センサの出力および前記目標空燃比の一方と、前記下流側空燃比センサの出力とに応じて逐次同定し、
前記制御入力算出手段は、前記１つの変調アルゴリズムおよび前記制御対象モデルに基づき、前記下流側空燃比センサの出力を所定の目標値に収束させるための、前記内燃機関に供給すべき混合気の目標空燃比を算出する空燃比算出手段で構成されており、
前記内燃機関の運転状態を検出する運転状態検出手段をさらに備え、
前記空燃比算出手段は、
前記目標空燃比の混合気が前記内燃機関に供給されてから前記下流側空燃比センサの出力に反映されるまでの予測時間を、前記検出された内燃機関の運転状態に応じて算出する予測時間算出手段と、
当該算出された予測時間に応じて、前記制御対象モデルを適用した予測アルゴリズムに基づき、前記目標空燃比を表す値の予測値を算出する予測値算出手段と、
前記１つの変調アルゴリズムに基づき、当該算出された予測値に応じて前記目標空燃比を算出する目標空燃比算出手段と、
を備え、
前記予測値に補正係数を乗算する乗算手段と、
当該補正係数を、前記予測値が所定値以上のときに、所定値未満のときよりも小さい値に設定する補正係数設定手段と、をさらに備え、
前記目標空燃比算出手段は、前記１つの変調アルゴリズムに基づき、前記補正係数が乗算された前記予測値に応じて、前記混合気の目標空燃比を算出することを特徴とする制御装置。
【請求項６】
Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムのうちのいずれか１つの変調アルゴリズムと、制御対象をモデル化した制御対象モデルとに基づき、前記制御対象の出力を制御するための、前記制御対象への制御入力を算出する制御入力算出手段を備え、
前記制御対象モデルは、離散時間系モデルとして構成されており、
前記制御対象モデルのモデルパラメータを、前記算出された制御入力および前記制御対象の出力に応じて、逐次同定する同定手段をさらに備え、
前記制御対象の出力は、内燃機関の排気通路の触媒よりも下流側に配置され、当該触媒を通過した後の排気ガスの空燃比を検出する空燃比センサの出力であり、
前記制御対象への制御入力は、前記内燃機関に供給される混合気の目標空燃比であり、
前記制御対象モデルは、前記空燃比センサの出力を表す値および前記目標空燃比を表す値を変数とするモデルであり、
前記同定手段は、前記空燃比センサの出力を表す値に乗算されるモデルパラメータと、前記目標空燃比を表す値に乗算されるモデルパラメータを、前記空燃比センサの出力および前記混合気の目標空燃比に応じて逐次同定し、
前記制御入力算出手段は、前記１つの変調アルゴリズムおよび前記制御対象モデルに基づき、前記空燃比センサの出力を所定の目標値に収束させるための、前記内燃機関に供給すべき混合気の目標空燃比を算出する空燃比算出手段で構成されており、
前記内燃機関の運転状態を検出する運転状態検出手段をさらに備え、
前記空燃比算出手段は、
前記目標空燃比の混合気が前記内燃機関に供給されてから前記空燃比センサの出力に反映されるまでの予測時間を、前記検出された内燃機関の運転状態に応じて算出する予測時間算出手段と、
当該算出された予測時間に応じて、前記制御対象モデルを適用した予測アルゴリズムに基づき、前記目標空燃比を表す値の予測値を算出する予測値算出手段と、
前記１つの変調アルゴリズムに基づき、当該算出された予測値に応じて前記目標空燃比を算出する目標空燃比算出手段と、
を備え、
前記予測値に補正係数を乗算する乗算手段と、
当該補正係数を、前記予測値が所定値以上のときに、所定値未満のときよりも小さい値に設定する補正係数設定手段と、をさらに備え、
前記目標空燃比算出手段は、前記１つの変調アルゴリズムに基づき、前記補正係数が乗算された前記予測値に応じて、前記混合気の目標空燃比を算出することを特徴とする制御装置。
【請求項７】
前記目標空燃比算出手段は、前記補正係数が乗算された予測値を、前記１つの変調アルゴリズムを適用した変調アルゴリズムで変調することにより、第１の変調値を算出するとともに、当該算出された第１の変調値に所定のゲインを乗算した値に基づき、前記混合気の目標空燃比を算出することを特徴とする請求項５または６に記載の制御装置。
【請求項８】
前記目標空燃比算出手段は、前記補正係数が乗算された予測値を、前記１つの変調アルゴリズムを適用した変調アルゴリズムで変調することにより、第２の変調値を算出するとともに、当該算出された第２の変調値に所定値を加算した値に基づき、前記混合気の目標空燃比を算出することを特徴とする請求項５または６に記載の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、制御対象への制御入力をΔΣ変調アルゴリズムなどに基づいて算出することにより、制御対象の出力を目標値に収束させるように制御する制御装置に関する。
【０００２】
【従来の技術】
従来、この種の制御装置として、例えば特開２００１−１５４７０４号公報に記載されたものが知られている。この制御装置は、制御対象の出力を検出し、その検出結果をアナログ量の検出信号として出力する検出手段と、上位装置から入力されるアナログ量の目標値と検出信号との偏差を演算する偏差演算手段と、演算された偏差を１ビットデジタル信号に変換する変換手段と、変換手段からの１ビットデジタル信号を補償し、操作信号として出力する補償手段とを備えている（同公報の図６参照）。
【０００３】
この制御装置では、偏差演算手段により、検出信号と目標値との偏差（アナログ量）が演算され、この演算偏差は、変換手段でのΔΣ変調によって１ビットデジタル信号に変換され、さらに補償手段により補償された後、操作信号として制御対象に入力される。以上の構成により、制御対象の出力と目標値との偏差を打ち消すように、偏差と逆位相の操作量が生成され、制御対象に入力される。その結果、制御対象の出力が目標値に収束するようにフィードバック制御される。
【０００４】
【発明が解決しようとする課題】
上記従来の制御装置によれば、制御対象の動特性が比較的大きな位相遅れやむだ時間などを有している場合、それに起因して、制御対象への入力信号の入力後、入力信号を反映する出力信号が制御対象から出力されるまでに時間がかかり、制御対象の入出力間での制御タイミングのずれを生じる。その結果、制御系が不安定になってしまうおそれがある。例えば、内燃機関の燃料噴射量を入力として、内燃機関の排気ガスの空燃比を制御する場合、燃料噴射が実際に行われてから、排気ガスの空燃比の状態が実際に変化するまでに時間を要するため、空燃比制御の安定性および制御性が低下し、触媒で浄化された排気ガスの特性が不安定な状態になってしまうことがある。
【０００５】
本発明は、上記課題を解決するためになされたもので、制御対象が位相遅れやむだ時間などが比較的大きい動特性を示す場合でも、制御対象の入出力間での制御タイミングのずれを解消することができ、それにより、制御の安定性および制御性を向上させることができる制御装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
この目的を達成するために、請求項１に係る制御装置１は、予測アルゴリズム（式（６），（７））に基づき、制御対象の出力を表す値（出力偏差ＶＯ２）の予測値ＰＲＥＶＯ２を算出する予測値算出手段（ＥＣＵ２、状態予測器２２、ステップ３３）と、Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムのうちのいずれか１つの変調アルゴリズムに基づき、算出された予測値ＰＲＥＶＯ２に応じて、制御対象の出力を制御するための、制御対象への制御入力（目標空燃比ＫＣＭＤ）を算出する制御入力算出手段（ＥＣＵ２、ＡＤＳＭコントローラ２０、ステップ３８）と、を備え、予測値算出手段は、予測アルゴリズムに基づき、算出された制御入力（目標空燃比ＫＣＭＤ）と制御対象に入力された制御入力を反映する値（ＬＡＦセンサ１４の出力ＫＡＣＴ）との少なくとも一方、および制御対象の出力（酸素濃度センサ１５の出力Ｖｏｕｔ）に応じて、予測値ＰＲＥＶＯ２を算出し、制御対象の出力は、内燃機関３の排気通路（排気管７）の触媒（第１触媒装置８ａ）よりも下流側に配置され、触媒を通過した後の排気ガスの空燃比を検出する下流側空燃比センサ（酸素濃度センサ１５）の出力Ｖｏｕｔであり、制御対象の出力を表す値は、下流側空燃比センサの出力Ｖｏｕｔと所定の目標値Ｖｏｐとの偏差である出力偏差ＶＯ２であり、制御対象への制御入力は、内燃機関３に供給される混合気の目標空燃比ＫＣＭＤであり、制御対象に入力された制御入力を反映する値は、排気通路の触媒（第１触媒装置８ａ）よりも上流側に配置され、触媒を通過する前の排気ガスの空燃比を検出する上流側空燃比センサ（ＬＡＦセンサ１４）の出力ＫＡＣＴであり、予測値算出手段は、予測アルゴリズムに基づき、内燃機関に供給された混合気の目標空燃比ＫＣＭＤおよび上流側空燃比センサの出力ＫＡＣＴの少なくとも一方と、下流側空燃比センサの出力Ｖｏｕｔとに応じて、出力偏差ＶＯ２の予測値ＰＲＥＶＯ２を算出し、制御入力算出手段は、１つの変調アルゴリズムに基づき、算出された出力偏差の予測値に応じて、下流側空燃比センサの出力Ｖｏｕｔを所定の目標値Ｖｏｐに収束させるための、内燃機関に供給すべき混合気の目標空燃比ＫＣＭＤを算出する空燃比算出手段（ＥＣＵ２、ステップ３８）で構成されており、算出された出力偏差の予測値ＰＲＥＶＯ２に補正係数（ゲインＫＲＤＳＭ）を乗算する乗算手段（ＥＣＵ２、ステップ１９５）と、補正係数を、出力偏差の予測値が所定値（値０）以上のときに、所定値未満のときよりも小さい値に設定する補正係数設定手段（ＥＣＵ２、ステップ１９２〜１９４）と、をさらに備え、空燃比算出手段は、１つの変調アルゴリズムに基づき、補正係数が乗算された出力偏差の予測値に応じて、混合気の目標空燃比ＫＣＭＤを算出することを特徴とする。
【０００７】
この制御装置によれば、Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムのうちのいずれか１つの変調アルゴリズムに基づき、制御対象の出力を表す値の予測値に応じて、制御入力が算出されるので、このような予測値を、例えば制御対象の位相遅れやむだ時間などの動特性を反映させた値として算出することにより、制御対象の入出力間での制御タイミングのずれを解消することが可能になる。その結果、制御の安定性の確保および制御性の向上が可能になる（なお、本明細書における、「予測値の算出」および「制御入力の算出」などの「算出」は、プログラムにより演算することに限らず、ハードウエアによりそれらを表す電気信号を生成することを含む）。また、予測値を、制御入力の状態を反映させながら算出することができ、その分、予測値の算出精度（予測精度）を高めることができる。その結果、制御の安定性を確保でき、制御性を向上させることができる。
【０００８】
さらに、所定の目標値と下流側空燃比センサの出力との偏差である出力偏差の予測値が、内燃機関に供給された混合気の目標空燃比、上流側空燃比センサの出力および下流側空燃比センサの出力に応じて算出されるとともに、このように算出された出力偏差の予測値に応じて、下流側空燃比センサの出力を所定の目標値に収束させるための混合気の目標空燃比が、１つの変調アルゴリズムに基づき、算出される。制御入力が以上のように算出されるので、所定の目標値を適切に設定することにより、排気ガスの空燃比を、触媒による排気ガスの浄化状態が良好な状態になるように制御することができ、その結果、触媒で浄化された排気ガスの特性（以下「触媒後排気ガス特性」という）を向上させることができる。また、予測値が、触媒よりも上流側に設けた上流側空燃比センサの出力に応じて算出されるので、触媒に実際に供給される排気ガスの空燃比の状態を予測値により適切に反映させることができ、その分、予測値の算出精度を向上させることができる。
【０００９】
以上に加えて、混合気の目標空燃比が、補正係数を乗算した出力偏差の予測値に応じて算出されるとともに、この補正係数が、出力偏差の予測値が所定値以上のときに、所定値未満のときよりも小さい値に設定されるので、出力偏差の予測値の所定値に対する大小関係に応じて、下流側空燃比センサの出力を目標値に収束させる収束速度を変更することができる。したがって、例えばこの所定値を値０に設定した場合、出力偏差の予測値が値０以上のとき、すなわち下流側空燃比センサの出力が目標値よりも大きいことで、目標空燃比をリーン側に変更すべきときには、リッチ側に変更するときよりも収束速度が小さく設定されることにより、リーンバイアスによるＮＯｘ排出量の抑制効果を得ることができる。一方、目標空燃比をリッチ側に変更すべきときには、リーン側に変更するときよりも収束速度が大きい値に設定されることにより、触媒のＮＯｘ浄化率を十分に回復させることができる。
【００１０】
請求項２に係る制御装置１は、予測アルゴリズム（式（６））に基づき、制御対象の出力を表す値（出力偏差ＶＯ２）の予測値ＰＲＥＶＯ２を算出する予測値算出手段（ＥＣＵ２、状態予測器２２）と、Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムのうちのいずれか１つの変調アルゴリズムに基づき、算出された予測値ＰＲＥＶＯ２に応じて、制御対象の出力を制御するための、制御対象への制御入力（目標空燃比ＫＣＭＤ）を算出する制御入力算出手段（ＥＣＵ２、ＡＤＳＭコントローラ２０）と、を備え、予測値算出手段は、予測アルゴリズムに基づき、算出された制御入力（目標空燃比ＫＣＭＤ）および制御対象の出力（酸素濃度センサ１５の出力Ｖｏｕｔ）に応じて、予測値ＰＲＥＶＯ２を算出し、制御対象の出力は、内燃機関の排気通路の触媒（第２触媒装置８ｂ）よりも下流側に配置され、触媒を通過した後の排気ガスの空燃比を検出する空燃比センサ（酸素濃度センサ１５）の出力Ｖｏｕｔであり、制御対象の出力を表す値は、空燃比センサの出力Ｖｏｕｔと所定の目標値Ｖｏｐとの偏差である出力偏差ＶＯ２であり、制御対象への制御入力は、内燃機関に供給される混合気の目標空燃比ＫＣＭＤであり、予測値算出手段は、予測アルゴリズムに基づき、内燃機関に供給された混合気の目標空燃比および空燃比センサの出力に応じて、出力偏差の予測値ＰＲＥＶＯ２を算出し、制御入力算出手段は、１つの変調アルゴリズムに基づき、算出された出力偏差の予測値ＰＲＥＶＯ２に応じて、空燃比センサの出力Ｖｏｕｔを所定の目標値Ｖｏｐに収束させるための、内燃機関に供給すべき混合気の目標空燃比を算出する空燃比算出手段（ＥＣＵ２）で構成されており、算出された出力偏差の予測値ＰＲＥＶＯ２に補正係数（ゲインＫＲＤＳＭ）を乗算する乗算手段（ＥＣＵ２）と、補正係数を、出力偏差の予測値が所定値（値０）以上のときに、所定値未満のときよりも小さい値に設定する補正係数設定手段（ＥＣＵ２）と、をさらに備え、空燃比算出手段は、１つの変調アルゴリズムに基づき、補正係数が乗算された出力偏差の予測値に応じて、混合気の目標空燃比ＫＣＭＤを算出することを特徴とする。
【００１１】
この制御装置によれば、Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムのうちのいずれか１つの変調アルゴリズムに基づき、制御対象の出力を表す値の予測値に応じて、制御入力が算出されるので、このような予測値を、例えば制御対象の位相遅れやむだ時間などの動特性を反映させた値として算出することにより、制御対象の入出力間での制御タイミングのずれを解消することが可能になる。その結果、制御の安定性の確保および制御性の向上が可能になる。また、予測値を、制御入力の状態を反映させながら算出することができ、その分、予測値の算出精度（予測精度）を高めることができる。その結果、制御の安定性を確保でき、制御性を向上させることができる。
【００１２】
さらに、所定の目標値と空燃比センサの出力との偏差である出力偏差の予測値が、内燃機関に供給された混合気の目標空燃比および空燃比センサの出力に応じて算出されるとともに、このように算出された出力偏差の予測値に応じて、空燃比センサの出力を所定の目標値に収束させるための混合気の目標空燃比が、１つの変調アルゴリズムに基づき、算出される。制御入力が以上のように算出されるので、所定の目標値を適切に設定することにより、排気ガスの空燃比を、触媒による排気ガスの浄化状態が良好な状態になるように制御することができ、その結果、触媒後排気ガス特性を向上させることができる。また、単一の空燃比センサを用いるだけでよいので、このような制御装置を比較的、安価に実現することができる。
【００１３】
以上に加えて、混合気の目標空燃比が、補正係数を乗算した出力偏差の予測値に応じて算出されるとともに、この補正係数が、出力偏差の予測値が所定値以上のときに、所定値未満のときよりも小さい値に設定されるので、出力偏差の予測値の所定値に対する大小関係に応じて、空燃比センサの出力を目標値に収束させる収束速度を変更することができる。したがって、例えばこの所定値を値０に設定した場合、出力偏差の予測値が値０以上のとき、すなわち空燃比センサの出力が目標値よりも大きいことで、目標空燃比をリーン側に変更すべきときには、リッチ側に変更するときよりも収束速度が小さく設定されることにより、リーンバイアスによるＮＯｘ排出量の抑制効果を得ることができる。一方、目標空燃比をリッチ側に変更すべきときには、リーン側に変更するときよりも収束速度が大きい値に設定されることにより、触媒のＮＯｘ浄化率を十分に回復させることができる。
【００１４】
請求項３に係る発明は、請求項１または２に記載の制御装置において、空燃比算出手段は、補正係数が乗算された出力偏差の予測値を、１つの変調アルゴリズムを適用した変調アルゴリズムで変調することにより、第１の変調値（ＤＳＭ信号値ＤＳＭＳＧＮＳ）を算出するとともに、算出された第１の変調値に所定のゲイン（ＫＤＳＭ）を乗算した値に基づき、混合気の目標空燃比ＫＣＭＤ（適応目標空燃比ＫＣＭＤＳＬＤ）を算出することを特徴とする。
【００１５】
一般に、ΔΣ変調アルゴリズム、ΣΔ変調アルゴリズムおよびΔ変調アルゴリズムの各々は、制御対象のゲインが値１であるとして制御入力を決定するものであるので、制御対象の実際のゲインが値１と異なる場合には、制御入力が適切な値に算出されなくなることで、制御性が低下することがある。例えば、制御対象の実際のゲインが値１よりも大きい場合には、制御入力が必要以上に大きい値として算出されるため、オーバーゲインの状態になってしまうおそれがある。これに対して、この制御装置によれば、補正係数が乗算された出力偏差の予測値を、１つの変調アルゴリズムを適用した変調アルゴリズムで変調することにより、第１の変調値が算出されるとともに、この第１の変調値に所定のゲインを乗算した値に基づき、混合気の目標空燃比が算出されるので、この所定のゲインを適切に設定することにより、良好な制御性を確保することができる。
【００１６】
請求項４に係る発明は、請求項１または２に記載の制御装置において、空燃比算出手段は、補正係数が乗算された出力偏差の予測値を、１つの変調アルゴリズムを適用した変調アルゴリズムで変調することにより、第２の変調値（ΔΣ変調制御量ＤＫＣＭＤＤＳＭ）を算出するとともに、算出された第２の変調値に所定値（基準値ＦＬＡＦＢＡＳＥ）を加算した値に基づき、混合気の目標空燃比ＫＣＭＤ（適応目標空燃比ＫＣＭＤＳＬＤ）を算出することを特徴とする。
【００１７】
一般に、Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムはいずれも、値０を中心とした正負反転型の制御入力しか算出できない。これに対して、この制御装置によれば、補正係数が乗算された出力偏差の予測値を、１つの変調アルゴリズムを適用した変調アルゴリズムで変調することにより、第２の変調値が算出されるとともに、この第２の変調値に所定値を加算した値に基づき、混合気の目標空燃比が算出されるので、混合気の目標空燃比を、値０を中心として正負反転する値だけでなく、所定値を中心として所定幅の増減を繰り返す値として算出することができ、制御の自由度を高めることができる。
【００１８】
請求項５に係る制御装置１は、Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムのうちのいずれか１つの変調アルゴリズムと、制御対象をモデル化した制御対象モデル（式（１））とに基づき、制御対象の出力（酸素濃度センサ１５の出力Ｖｏｕｔ）を制御するための、制御対象への制御入力（目標空燃比ＫＣＭＤ）を算出する制御入力算出手段（ＥＣＵ２、ＡＤＳＭコントローラ２０）を備え、制御対象モデルは、離散時間系モデルとして構成されており、制御対象モデルのモデルパラメータ（同定値ａ１’，ａ２'，ｂ１'）を、算出された制御入力（目標空燃比ＫＣＭＤ）と制御対象に入力された制御入力を反映する値（ＬＡＦセンサ１４の出力ＫＡＣＴ）との一方と、制御対象の出力（酸素濃度センサ１５の出力Ｖｏｕｔ）とに応じて、逐次同定する同定手段（ＥＣＵ２、オンボード同定器２３）をさらに備え、制御対象の出力は、内燃機関の排気通路の触媒（第１触媒装置８ａ）よりも下流側に配置され、触媒を通過した後の排気ガスの空燃比を検出する下流側空燃比センサ（酸素濃度センサ１５）の出力Ｖｏｕｔであり、制御対象への制御入力は、内燃機関に供給される混合気の目標空燃比ＫＣＭＤであり、制御対象に入力された制御入力を反映する値は、内燃機関の排気通路の触媒よりも上流側に配置され、触媒を通過する前の排気ガスの空燃比を検出する上流側空燃比センサ（ＬＡＦセンサ１４）の出力ＫＡＣＴであり、制御対象モデルは、下流側空燃比センサの出力を表す値（出力偏差ＶＯ２）と、目標空燃比を表す値（空燃比偏差ＤＫＣＭＤ）および上流側空燃比センサの出力を表す値（ＬＡＦ出力偏差ＤＫＡＣＴ）の一方とを変数とするモデルであり、同定手段は、下流側空燃比センサの出力を表す値に乗算されるモデルパラメータａ１，ａ２と、目標空燃比を表す値および上流側空燃比センサの出力を表す値の一方に乗算されるモデルパラメータｂ１とを、上流側空燃比センサの出力および目標空燃比の一方と、下流側空燃比センサの出力とに応じて逐次同定し、制御入力算出手段は、１つの変調アルゴリズムおよび制御対象モデルに基づき、下流側空燃比センサの出力を所定の目標値に収束させるための、内燃機関に供給すべき混合気の目標空燃比を算出する空燃比算出手段（ＥＣＵ２）で構成されており、内燃機関の運転状態（吸気管内絶対圧ＰＢＡ、エンジン回転数ＮＥ）を検出する運転状態検出手段（ＥＣＵ２、吸気管内絶対圧センサ１１、クランク角センサ１３）をさらに備え、空燃比算出手段は、目標空燃比の混合気が内燃機関に供給されてから下流側空燃比センサの出力に反映されるまでの予測時間ｄｔを、検出された内燃機関の運転状態に応じて算出する予測時間算出手段（ＥＣＵ２、ステップ８０，８１）と、算出された予測時間ｄｔに応じて、制御対象モデルを適用した予測アルゴリズムに基づき、目標空燃比を表す値の予測値ＰＲＥＶＯ２を算出する予測値算出手段（ＥＣＵ２、ステップ３３）と、１つの変調アルゴリズムに基づき、算出された予測値に応じて目標空燃比ＫＣＭＤを算出する目標空燃比算出手段（ＥＣＵ２）と、を備え、予測値ＰＲＥＶＯ２に補正係数（ゲインＫＲＤＳＭ）を乗算する乗算手段（ＥＣＵ２、ステップ１９５）と、補正係数を、予測値が所定値（値０）以上のときに、所定値未満のときよりも小さい値に設定する補正係数設定手段（ＥＣＵ２、ステップ１９２〜１９４）と、をさらに備え、目標空燃比算出手段は、１つの変調アルゴリズムに基づき、補正係数が乗算された予測値に応じて、混合気の目標空燃比ＫＣＭＤを算出することを特徴とする。
【００１９】
この制御装置によれば、Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムのうちのいずれか１つの変調アルゴリズムと、制御対象をモデル化した制御対象モデルとに基づき、制御入力が算出されるので、この制御対象モデルを、制御対象の位相遅れやむだ時間などの動特性が適切に反映されたものとして定義することにより、制御入力を制御対象の動特性を反映させた値として算出することが可能になり、その結果、制御の安定性の確保および制御性の向上が可能になる。また、モデルパラメータが、上流側空燃比センサの出力および目標空燃比の一方と、下流側空燃比センサの出力とに応じて逐次同定される、すなわちリアルタイムに同定されるとともに、そのようにモデルパラメータが同定される制御対象モデルおよび１つの変調アルゴリズムに基づいて、内燃機関に供給すべき混合気の目標空燃比が算出される。これにより、触媒および両空燃比センサの特性が環境の変化によってばらついたり、経年変化したりしている場合でも、それらの影響を回避しながら、下流側空燃比センサの出力を所定の目標値に収束させることができる。また、モデルパラメータが、触媒よりも上流側に設けた上流側空燃比センサの出力に応じて同定されるので、触媒に実際に供給される排気ガスの状態をより的確に反映させながら、モデルパラメータを同定することができ、それにより、モデルパラメータの同定精度を向上させることができる。以上により、内燃機関に供給された混合気に対する排気ガスの応答遅れおよびむだ時間などに起因する、空燃比制御の制御タイミングのずれを適切に補正することができ、触媒後排気ガス特性を向上させることができる。
【００２０】
さらに、目標空燃比の混合気が内燃機関に供給されてから下流側空燃比センサの出力に反映されるまでの予測時間が、検出された内燃機関の運転状態に応じて算出され、算出された予測時間に応じて、目標空燃比を表す値の予測値が算出されるとともに、算出された予測値に応じて目標空燃比が算出されるので、制御対象の入出力間の応答遅れやむだ時間、すなわち内燃機関に供給された混合気に対する下流側空燃比センサの出力の間の応答遅れやむだ時間を反映させながら、目標空燃比を算出することができ、それにより、空燃比制御の制御タイミングのずれをより一層、確実に解消することができる。
【００２１】
以上に加えて、混合気の目標空燃比が、補正係数を乗算した出力偏差の予測値に応じて算出されるとともに、この補正係数が、出力偏差の予測値が所定値以上のときに、所定値未満のときよりも小さい値に設定されるので、出力偏差の予測値の所定値に対する大小関係に応じて、下流側空燃比センサの出力を目標値に収束させる収束速度を変更することができる。したがって、例えばこの所定値を値０に設定した場合、出力偏差の予測値が値０以上のとき、すなわち下流側空燃比センサの出力が目標値よりも大きいことで、目標空燃比をリーン側に変更すべきときには、リッチ側に変更するときよりも収束速度が小さく設定されることにより、リーンバイアスによるＮＯｘ排出量の抑制効果を得ることができる。一方、目標空燃比をリッチ側に変更すべきときには、リーン側に変更するときよりも収束速度が大きい値に設定されることにより、触媒のＮＯｘ浄化率を十分に回復させることができる。
【００２２】
請求項６に係る制御装置１は、Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムのうちのいずれか１つの変調アルゴリズムと、制御対象をモデル化した制御対象モデル（式（１））とに基づき、制御対象の出力（酸素濃度センサ１５の出力Ｖｏｕｔ）を制御するための、制御対象への制御入力（目標空燃比ＫＣＭＤ）を算出する制御入力算出手段（ＥＣＵ２、ＡＤＳＭコントローラ２０）を備え、制御対象モデルは、離散時間系モデルとして構成されており、制御対象モデルのモデルパラメータ（同定値ａ１’，ａ２'，ｂ１'）を、算出された制御入力（目標空燃比ＫＣＭＤ）および制御対象の出力（酸素濃度センサ１５の出力Ｖｏｕｔ）に応じて、逐次同定する同定手段（ＥＣＵ２、オンボード同定器２３）をさらに備え、制御対象の出力は、内燃機関の排気通路の触媒（第２触媒装置８ｂ）よりも下流側に配置され、触媒を通過した後の排気ガスの空燃比を検出する空燃比センサ（酸素濃度センサ１５）の出力Ｖｏｕｔであり、制御対象への制御入力は、内燃機関に供給される混合気の目標空燃比ＫＣＭＤであり、制御対象モデルは、空燃比センサの出力を表す値（出力偏差ＶＯ２）および目標空燃比ＫＣＭＤを表す値を変数とするモデルであり、同定手段は、空燃比センサの出力を表す値に乗算されるモデルパラメータａ１，ａ２と、目標空燃比を表す値に乗算されるモデルパラメータｂ１を、空燃比センサの出力および混合気の目標空燃比に応じて逐次同定し、制御入力算出手段は、１つの変調アルゴリズムおよび制御対象モデルに基づき、空燃比センサの出力Ｖｏｕｔを所定の目標値Ｖｏｐに収束させるための、内燃機関に供給すべき混合気の目標空燃比ＫＣＭＤを算出する空燃比算出手段（ＥＣＵ２）で構成されており、内燃機関の運転状態（吸気管内絶対圧ＰＢＡ、エンジン回転数ＮＥ）を検出する運転状態検出手段（ＥＣＵ２、吸気管内絶対圧センサ１１、クランク角センサ１３）をさらに備え、空燃比算出手段は、目標空燃比の混合気が内燃機関に供給されてから空燃比センサの出力に反映されるまでの予測時間ｄｔを、検出された内燃機関の運転状態に応じて算出する予測時間算出手段（ＥＣＵ２）と、算出された予測時間ｄｔに応じて、制御対象モデルを適用した予測アルゴリズムに基づき、目標空燃比を表す値の予測値ＰＲＥＶＯ２を算出する予測値算出手段（ＥＣＵ２）と、１つの変調アルゴリズムに基づき、算出された予測値に応じて目標空燃比ＫＣＭＤを算出する目標空燃比算出手段（ＥＣＵ２）と、を備え、予測値ＰＲＥＶＯ２に補正係数（ゲインＫＲＤＳＭ）を乗算する乗算手段（ＥＣＵ２）と、補正係数を、予測値が所定値（値０）以上のときに、所定値未満のときよりも小さい値に設定する補正係数設定手段（ＥＣＵ２）と、をさらに備え、目標空燃比算出手段は、１つの変調アルゴリズムに基づき、補正係数が乗算された予測値に応じて、混合気の目標空燃比ＫＣＭＤを算出することを特徴とする。
【００２３】
この制御装置によれば、Δ変調アルゴリズム、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムのうちのいずれか１つの変調アルゴリズムと、制御対象をモデル化した制御対象モデルとに基づき、制御入力が算出されるので、この制御対象モデルを、制御対象の位相遅れやむだ時間などの動特性が適切に反映されたものとして定義することにより、制御入力を制御対象の動特性を反映させた値として算出することが可能になり、その結果、制御の安定性の確保および制御性の向上が可能になる。また、制御対象モデルのモデルパラメータが、目標空燃比および空燃比センサの出力に応じて逐次同定される、すなわちリアルタイムに同定されるとともに、そのようにモデルパラメータが同定される制御対象モデルおよび１つの変調アルゴリズムに基づいて、内燃機関に供給すべき混合気の目標空燃比が算出される。これにより、触媒および空燃比センサの特性が環境の変化によってばらついたり、経年変化したりしている場合でも、それらの影響を回避しながら、空燃比センサの出力を所定の目標値に収束させることができる。以上により、内燃機関に供給された混合気に対する排気ガスの応答遅れおよびむだ時間などに起因する、空燃比制御の制御タイミングのずれを適切に補正することができ、触媒後排気ガス特性を向上させることができる。さらに、単一の空燃比センサを用いるだけでよいので、このような制御装置を比較的、安価に実現することができる。
【００２４】
さらに、目標空燃比の混合気が内燃機関に供給されてから空燃比センサの出力に反映されるまでの予測時間が、検出された内燃機関の運転状態に応じて算出され、算出された予測時間に応じて、目標空燃比を表す値の予測値が算出されるとともに、算出された予測値に応じて目標空燃比が算出されるので、制御対象の入出力間の応答遅れやむだ時間、すなわち内燃機関に供給された混合気に対する空燃比センサの出力の間の応答遅れやむだ時間を反映させながら、目標空燃比を算出することができ、それにより、空燃比制御の制御タイミングのずれをより一層、確実に解消することができる。
【００２５】
以上に加えて、混合気の目標空燃比が、補正係数を乗算した出力偏差の予測値に応じて算出されるとともに、この補正係数が、出力偏差の予測値が所定値以上のときに、所定値未満のときよりも小さい値に設定されるので、出力偏差の予測値の所定値に対する大小関係に応じて、空燃比センサの出力を目標値に収束させる収束速度を変更することができる。したがって、例えばこの所定値を値０に設定した場合、出力偏差の予測値が値０以上のとき、すなわち空燃比センサの出力が目標値よりも大きいことで、目標空燃比をリーン側に変更すべきときには、リッチ側に変更するときよりも収束速度が小さく設定されることにより、リーンバイアスによるＮＯｘ排出量の抑制効果を得ることができる。一方、目標空燃比をリッチ側に変更すべきときには、リーン側に変更するときよりも収束速度が大きい値に設定されることにより、触媒のＮＯｘ浄化率を十分に回復させることができる。
【００２６】
請求項７に係る発明は、請求項５または６に記載の制御装置において、目標空燃比算出手段は、補正係数が乗算された予測値を、１つの変調アルゴリズムを適用した変調アルゴリズムで変調することにより、第１の変調値（ＤＳＭ信号値ＤＳＭＳＧＮＳ）を算出するとともに、算出された第１の変調値に所定のゲイン（ＫＤＳＭ）を乗算した値に基づき、混合気の目標空燃比ＫＣＭＤ（適応目標空燃比ＫＣＭＤＳＬＤ）を算出することを特徴とする。
【００２７】
この制御装置によれば、請求項３に係る発明と同様の作用効果を得ることができる。
【００２８】
請求項８に係る発明は、請求項５または６に記載の制御装置において、目標空燃比算出手段は、補正係数が乗算された予測値を、１つの変調アルゴリズムを適用した変調アルゴリズムで変調することにより、第２の変調値（ΔΣ変調制御量ＤＫＣＭＤＤＳＭ）を算出するとともに、算出された第２の変調値に所定値（基準値ＦＬＡＦＢＡＳＥ）を加算した値に基づき、混合気の目標空燃比ＫＣＭＤ（適応目標空燃比ＫＣＭＤＳＬＤ）を算出することを特徴とする
【００２９】
この制御装置によれば、請求項４に係る発明と同様の作用効果を得ることができる。
【０１３２】
【発明の実施の形態】
以下、図面を参照しながら、本発明の第１実施形態に係る制御装置について説明する。この第１実施形態は、制御装置を内燃機関の空燃比を制御するものとして構成した例であり、図１は、この制御装置１およびこれを適用した内燃機関３の概略構成を示している。同図に示すように、この制御装置１は、ＥＣＵ２を備えており、このＥＣＵ２は、後述するように、内燃機関（以下「エンジン」という）３の運転状態に応じて、これに供給する混合気の空燃比を制御する。
【０１３３】
このエンジン３は、図示しない車両に搭載された直列４気筒型ガソリンエンジンであり、第１〜第４の４つの気筒＃１〜＃４を備えている。このエンジン３の吸気管４のスロットル弁５の近傍には、例えばポテンショメータなどで構成されたスロットル弁開度センサ１０が設けられている。このスロットル弁開度センサ１０は、スロットル弁５の開度（以下「スロットル弁開度」という）θＴＨを検出して、その検出信号をＥＣＵ２に送る。
【０１３４】
さらに、吸気管４のスロットル弁５よりも下流側には、吸気管内絶対圧センサ１１が設けられている。この吸気管内絶対圧センサ１１（運転状態検出手段）は、例えば半導体圧力センサなどで構成され、吸気管４内の吸気管内絶対圧ＰＢＡを検出し、その検出信号をＥＣＵ２に出力する。
【０１３５】
また、吸気管４は、インテークマニホールド４ａの４つの分岐部４ｂを介して４つの気筒＃１〜＃４にそれぞれ接続されている。各分岐部４ｂには、各気筒の図示しない吸気ポートの上流側に、インジェクタ６が取り付けられている。各インジェクタ６は、エンジン３の運転時に、ＥＣＵ２からの駆動信号によって、その開弁時間である最終燃料噴射量ＴＯＵＴおよび噴射タイミングが制御される。
【０１３６】
一方、エンジン３の本体には、例えばサーミスタなどで構成された水温センサ１２が取り付けられている。水温センサ１２は、エンジン３のシリンダブロック内を循環する冷却水の温度であるエンジン水温ＴＷを検出し、その検出信号をＥＣＵ２に出力する。
【０１３７】
また、エンジン３のクランクシャフト（図示せず）には、クランク角センサ１３が設けられている。このクランク角センサ１３（運転状態検出手段）は、クランクシャフトの回転に伴い、いずれもパルス信号であるＣＲＫ信号およびＴＤＣ信号をＥＣＵ２に出力する。
【０１３８】
ＣＲＫ信号は、所定のクランク角（例えば３０゜）ごとに１パルスが出力される。ＥＣＵ２は、このＣＲＫ信号に応じ、エンジン３の回転数（以下「エンジン回転数」という）ＮＥを算出する。また、ＴＤＣ信号は、各気筒のピストン（図示せず）が吸気行程のＴＤＣ位置よりも若干、手前の所定のクランク角位置にあることを表す信号であり、所定クランク角ごとに１パルスが出力される。
【０１３９】
一方、排気管７（排気通路）のエキゾーストマニホールド７ａよりも下流側には、上流側から順に第１および第２の触媒装置８ａ，８ｂ（触媒）が間隔を存して設けられている。各触媒装置８は、ＮＯｘ触媒と３元触媒を組み合わせたものであり、このＮＯｘ触媒は、図示しないが、イリジウム触媒（イリジウムを担持した炭化ケイ素ウイスカ粉末とシリカの焼成体）をハニカム構造の基材の表面に被覆し、その上にペロブスカイト型複酸化物（ＬａＣｏＯ3粉末とシリカの焼成体）をさらに被覆したものである。触媒装置８は、ＮＯｘ触媒による酸化還元作用により、リーンバーン運転時の排気ガス中のＮＯｘを浄化するとともに、３元触媒の酸化還元作用により、リーンバーン運転以外の運転時の排気ガス中のＣＯ、ＨＣおよびＮＯｘを浄化する。なお、触媒装置８は、ＮＯｘ触媒と３元触媒を組み合わせたものに限らず、排気ガス中のＣＯ、ＨＣおよびＮＯｘを浄化できるものであればよい。例えば、触媒装置８を、ペロブスカイト型触媒などの非金属触媒および／または３元触媒などの金属触媒で構成してもよい。
【０１４０】
これらの第１および第２触媒装置８ａ，８ｂの間には、酸素濃度センサ（以下「Ｏ２センサ」という）１５が取り付けられている。このＯ２センサ１５（下流側空燃比センサ）は、ジルコニアおよび白金電極などで構成され、第１触媒装置８ａの下流側の排気ガス中の酸素濃度に基づく出力ＶｏｕｔをＥＣＵ２に送る。このＯ２センサ１５の出力Ｖｏｕｔ（制御対象の出力）は、理論空燃比よりもリッチな混合気が燃焼したときには、ハイレベルの電圧値（例えば０．８Ｖ）となり、混合気がリーンのときには、ローレベルの電圧値（例えば０．２Ｖ）となるとともに、混合気が理論空燃比付近のときには、ハイレベルとローレベルの間の所定の目標値Ｖｏｐ（例えば０．６Ｖ）となる（図２参照）。
【０１４１】
また、第１触媒装置８ａよりも上流側のエキゾーストマニホールド７ａの集合部付近には、ＬＡＦセンサ１４（上流側空燃比センサ）が取り付けられている。このＬＡＦセンサ１４は、Ｏ２センサ１５と同様のセンサとリニアライザなどの検出回路とを組み合わせることによって構成されており、リッチ領域からリーン領域までの広範囲な空燃比の領域において排気ガス中の酸素濃度をリニアに検出し、その酸素濃度に比例する出力ＫＡＣＴをＥＣＵ２に送る。この出力ＫＡＣＴは、空燃比の逆数に比例する当量比として表される。
【０１４２】
次に、図２を参照しながら、第１触媒装置８ａの排気ガスの浄化率とＯ２センサ１５の出力Ｖｏｕｔ（電圧値）との関係について説明する。同図は、第１触媒装置８ａが、長時間の使用により浄化能力が低下した劣化状態と、浄化能力の高い未劣化状態の場合において、ＬＡＦセンサ１４の出力ＫＡＣＴすなわちエンジン３に供給される混合気の空燃比が理論空燃比の付近で変化したときの、２つの第１触媒装置８ａのＨＣおよびＮＯｘの浄化率と、Ｏ２センサ１５の出力Ｖｏｕｔをそれぞれ測定した結果の一例を示している。同図において、破線で示すデータはいずれも、第１触媒装置８ａが未劣化状態の場合の測定結果であり、実線で示すデータはいずれも、第１触媒装置８ａが劣化状態の場合の測定結果である。また、ＬＡＦセンサ１４の出力ＫＡＣＴが大きいほど、混合気の空燃比がよりリッチ側であることを示している。
【０１４３】
同図に示すように、第１触媒装置８ａが劣化している場合には、未劣化状態の場合と比べて、排気ガスの浄化能力が低下していることにより、ＬＡＦセンサ１４の出力ＫＡＣＴがよりリーン側の値ＫＡＣＴ１のときに、Ｏ２センサ１５の出力Ｖｏｕｔが目標値Ｖｏｐを横切っている。一方、第１触媒装置８ａは、その劣化・未劣化状態にかかわらず、Ｏ２センサ１５の出力Ｖｏｕｔが目標値Ｖｏｐにあるときに、ＨＣおよびＮＯｘを最も効率よく浄化する特性を有している。したがって、Ｏ２センサ１５の出力Ｖｏｕｔが目標値Ｖｏｐになるように、混合気の空燃比を制御することにより、第１触媒装置８ａによって排気ガスを最も効率よく浄化できることが判る。このため、後述する空燃比制御では、Ｏ２センサ１５の出力Ｖｏｕｔが目標値Ｖｏｐに収束するように、目標空燃比ＫＣＭＤが制御される。
【０１４４】
さらに、ＥＣＵ２には、アクセル開度センサ１６、大気圧センサ１７、吸気温センサ１８および車速センサ１９などが接続されている。このアクセル開度センサ１６は、車両の図示しないアクセルペダルの踏み込み量（以下「アクセル開度」という）ＡＰを検出し、その検出信号をＥＣＵ２に出力する。また、大気圧センサ１７、吸気温センサ１８および車速センサ１９はそれぞれ、大気圧ＰＡ、吸気温ＴＡおよび車速ＶＰを検出し、その検出信号をＥＣＵ２に出力する。
【０１４５】
次に、ＥＣＵ２（予測値算出手段や、制御入力算出手段、空燃比算出手段、運転状態検出手段、目標空燃比算出手段、乗算手段、補正係数設定手段、同定手段、予測時間算出手段）について説明する。
【０１４６】
このＥＣＵ２は、Ｉ／Ｏインターフェース、ＣＰＵ、ＲＡＭおよびＲＯＭなどからなるマイクロコンピュータから構成されており、前述した各種のセンサ１０〜１９の出力に応じて、エンジン３の運転状態を判別するとともに、ＲＯＭに予め記憶された制御プログラムやＲＡＭに記憶されたデータなどに従って、後述する適応空燃比制御処理またはマップ検索処理を実行することにより、目標空燃比ＫＣＭＤ（制御入力）を算出する。さらに、後述するように、この目標空燃比ＫＣＭＤに基づいて、インジェクタ６の最終燃料噴射量ＴＯＵＴを気筒ごとに算出し、この算出した最終燃料噴射量ＴＯＵＴに基づいた駆動信号で、インジェクタ６を駆動することにより、混合気の空燃比を制御する。
【０１４７】
図３に示すように、制御装置１は、目標空燃比ＫＣＭＤを算出するＡＤＳＭコントローラ２０およびＰＲＩＳＭコントローラ２１を備えており、両コントローラ２０，２１はいずれも、具体的には、ＥＣＵ２により構成されている。
【０１４８】
以下、ＡＤＳＭコントローラ２０（制御入力算出手段）について説明する。このＡＤＳＭコントローラ２０は、以下に述べる適応予測型ΔΣ変調制御（Adaptive prediction Delta Sigma Modulation Control：以下「ＡＤＳＭ」という）処理の制御アルゴリズムにより、Ｏ２センサ１５の出力Ｖｏｕｔを目標値Ｖｏｐに収束させるための目標空燃比ＫＣＭＤを算出するものであり、状態予測器２２、オンボード同定器２３およびＤＳＭコントローラ２４により構成されている。なお、このＡＤＳＭ処理の具体的なプログラムについては、後述する。
【０１４９】
まず、状態予測器２２（予測値算出手段）について説明する。この状態予測器２２は、以下に述べる予測アルゴリズムにより、出力偏差ＶＯ２の予測値ＰＲＥＶＯ２を予測（算出）するものである。本実施形態では、制御対象への制御入力を混合気の目標空燃比ＫＣＭＤとし、制御対象の出力をＯ２センサ１５の出力Ｖｏｕｔとし、インジェクタ６を含むエンジン３の吸気系から、第１触媒装置８ａを含む排気系の第１触媒装置８ａの下流側のＯ２センサ１５までの系を、制御対象と見なすとともに、この制御対象を、下式（１）に示すように、離散時間系モデルであるＡＲＸモデル（auto-regressive model with exogeneous input:外部入力を持つ自己回帰モデル）としてモデル化する。
【０１５０】
VO2(k)＝a1・VO2(k-1)＋a2・VO2(k-2)＋b1・DKCMD(k-dt)         ……（１）
ここで、ＶＯ２は、Ｏ２センサ１５の出力Ｖｏｕｔと前述した目標値Ｖｏｐとの偏差（Ｖｏｕｔ−Ｖｏｐ）である出力偏差を表し、ＤＫＣＭＤは、目標空燃比ＫＣＭＤ（＝φｏｐ）と基準値ＦＬＡＦＢＡＳＥとの偏差（ＫＣＭＤ−ＦＬＡＦＢＡＳＥ）である空燃比偏差を表し、記号ｋは、各データのサンプリングサイクルの順番を表している。この基準値ＦＬＡＦＢＡＳＥは、所定の一定値に設定される。また、ａ１，ａ２，ｂ１はモデルパラメータを表しており、オンボード同定器２３により、後述するように逐次同定される。
【０１５１】
さらに、上記式（１）のｄｔは、目標空燃比ＫＣＭＤの混合気がインジェクタ６により吸気系に供給されてから、Ｏ２センサ１５の出力Ｖｏｕｔに反映されるまでの予測時間を表しており、下式（２）のように定義される。
ｄｔ＝ｄ＋ｄ'＋ｄｄ                                        ……（２）
ここで、ｄは、ＬＡＦセンサ１４からＯ２センサ１５までの排気系のむだ時間を、ｄ'は、インジェクタ６からＬＡＦセンサ１４までの空燃比操作系のむだ時間を、ｄｄは、排気系と空燃比操作系との間の位相遅れ時間をそれぞれ表している（なお、後述する適応空燃比制御処理の制御プログラムでは、ＡＤＳＭ処理とＰＲＩＳＭ処理とに切り換えて目標空燃比ＫＣＭＤを算出する処理を行うため、位相遅れ時間ｄｄ＝０に設定されている）。
【０１５２】
以上のように、制御対象モデルを、出力偏差ＶＯ２の時系列データおよび空燃比偏差ＤＫＣＭＤで構成した理由は以下による。すなわち、一般に、制御対象モデルでは、制御対象の入出力と所定値との偏差を、入出力を表す変数として定義した場合の方が、入出力の絶対値を変数として定義した場合よりも、モデルパラメータをより正確に同定または定義できることで、制御対象モデルの動特性を制御対象の実際の動特性に適合させることができるという事実が知られている。したがって、本実施形態の制御装置１のように、制御対象モデルを、出力偏差ＶＯ２の時系列データおよび空燃比偏差ＤＫＣＭＤで構成することにより、Ｏ２センサ１５の出力Ｖｏｕｔおよび目標空燃比ＫＣＭＤの絶対値を変数とする場合と比べて、制御対象の実際の動特性に対する制御対象モデルの動特性の適合性を向上させることができ、それにより予測値ＰＲＥＶＯ２の算出精度を向上させることができる。
【０１５３】
また、予測値ＰＲＥＶＯ２は、目標空燃比ＫＣＭＤの混合気が吸気系に供給されてから予測時間ｄｔが経過した後の出力偏差ＶＯ２（ｋ＋ｄｔ）を予測した値であり、上記式（１）に基づき、予測値ＰＲＥＶＯ２の算出式を導出すると、下式（３）が得られる。
0003904923.tif 000002
【０１５４】
この式（３）では、出力偏差ＶＯ２（ｋ）の未来値に相当するＶＯ２（ｋ＋ｄｔ−１），ＶＯ２（ｋ＋ｄｔ−２）の算出が必要となり、実際にプログラム化するのは困難である。そのため、マトリクスＡ、Ｂを、モデルパラメータａ１，ａ２，ｂ１を用いて図４に示す式（４）、（５）のように定義するとともに、上式（３）の漸化式を繰り返し用いることにより、上式（３）を変形すると、図４に示す式（６）が得られる。予測アルゴリズムすなわち予測値ＰＲＥＶＯ２の算出式として、この式（６）を用いた場合、予測値ＰＲＥＶＯ２が、出力偏差ＶＯ２および空燃比偏差ＤＫＣＭＤにより算出される。
【０１５５】
次に、ＬＡＦ出力偏差ＤＫＡＣＴを、ＬＡＦセンサ１４の出力ＫＡＣＴ（＝φｉｎ）と基準値ＦＬＡＦＢＡＳＥとの偏差（ＫＡＣＴ−ＦＬＡＦＢＡＳＥ）として定義すると、ＤＫＡＣＴ（ｋ）＝ＤＫＣＭＤ（ｋ−ｄ'）の関係が成立するので、この関係を図４の式（６）に適用すると、図４に示す式（７）が得られる。
【０１５６】
以上の式（６）または式（７）により算出される予測値ＰＲＥＶＯ２を用い、後述するように目標空燃比ＫＣＭＤを算出することによって、制御対象の入出力間の応答遅れやむだ時間を適切に補償しながら、目標空燃比ＫＣＭＤを算出することができる。特に、予測アルゴリズムとして、上記式（７）を用いた場合、予測値ＰＲＥＶＯ２が、出力偏差ＶＯ２、ＬＡＦ出力偏差ＤＫＡＣＴおよび目標空燃比ＫＣＭＤにより算出されるので、第１触媒装置８ａに実際に供給される排気ガスの空燃比の状態が反映された値として、予測値ＰＲＥＶＯ２を算出でき、その算出精度すなわち予測精度を上記式（６）を用いた場合よりも向上させることができる。また、式（７）を用いた場合において、ｄ'≦１と見なせるときには、空燃比偏差ＤＫＣＭＤを用いることなく、出力偏差ＶＯ２およびＬＡＦ出力偏差ＤＫＡＣＴのみにより、予測値ＰＲＥＶＯ２を算出できる。本実施形態では、ＬＡＦセンサ１４がエンジン３に設けられているので、予測アルゴリズムとして上記式（７）を採用する。
【０１５７】
なお、前述した式（１）の制御対象モデルは、ＤＫＡＣＴ（ｋ）＝ＤＫＣＭＤ（ｋ−ｄ'）の関係を適用することにより、出力偏差ＶＯ２およびＬＡＦ出力偏差ＤＫＡＣＴを変数とするモデルとして定義することも可能である。
【０１５８】
次に、オンボード同定器２３（同定手段）について説明する。このオンボード同定器２３は、以下に述べる逐次型同定アルゴリズムにより、前述した式（１）のモデルパラメータａ１，ａ２，ｂ１を同定（算出）するものである。具体的には、図５に示す式（８），（９）により、モデルパラメータのベクトルθ（ｋ）を算出する。同図の式（８）において、ＫＰ（ｋ）は、ゲイン係数のベクトルであり、ｉｄｅ＿ｆ（ｋ）は同定誤差フィルタ値である。また、式（９）におけるθ（ｋ）Tは、θ（ｋ）の転置行列を表し、ａ１'(ｋ)、ａ２'(ｋ)およびｂ１'(ｋ)は、後述するリミット処理を施す前のモデルパラメータを表している。なお、以下の説明では、「ベクトル」という表記を適宜、省略する。
【０１５９】
上記式（８）の同定誤差フィルタ値ｉｄｅ＿ｆ（ｋ）は、図５に示す式（１１）〜（１３）により算出される同定誤差ｉｄｅ（ｋ）に、図５の式（１０）に示す移動平均フィルタリング処理を施した値である。図５の式（１０）のｎは、移動平均フィルタリング処理のフィルタ次数（１以上の整数）を表しており、式（１２）のＶＯ２ＨＡＴ（ｋ）は、出力偏差ＶＯ２の同定値を表している。
【０１６０】
この同定誤差フィルタ値ｉｄｅ＿ｆ（ｋ）を用いる理由は以下による。すなわち、本実施形態の制御対象は、目標空燃比ＫＣＭＤを制御入力とし、Ｏ２センサ１５の出力Ｖｏｕｔを制御対象の出力とするものであり、その周波数特性としてはローパス特性を有している。このようなローパス特性を有する制御対象では、オンボード同定器２３の同定アルゴリズム、具体的には後述する重み付き最小２乗法アルゴリズムの周波数重み特性に起因して、制御対象の高周波特性が強調された状態で、モデルパラメータが同定されるため、制御対象モデルのゲイン特性が制御対象の実際のゲイン特性よりも低くなる傾向を示す。その結果、制御装置１によりＡＤＳＭ処理またはＰＲＩＳＭ処理が実行された際、オーバーゲイン状態になることで、制御系が発散状態になり、不安定になる可能性がある。
【０１６１】
したがって、本実施形態では、重み付き最小２乗法アルゴリズムの周波数重み特性を適切に補正し、制御対象モデルのゲイン特性を、制御対象の実際のゲイン特性に一致させるために、上記同定誤差ｉｄｅ（ｋ）に移動平均フィルタリング処理を施した同定誤差フィルタ値ｉｄｅ＿ｆ（ｋ）を用いるとともに、後述するように、移動平均フィルタリング処理のフィルタ次数ｎを、排気ガスボリュームＡＢ＿ＳＶに応じて設定している。
【０１６２】
さらに、前述した図５の式（８）のゲイン係数のベクトルＫＰ（ｋ）は、図５の式（１４）により算出される。この式（１４）のＰ（ｋ）は、図５の式（１５）で定義される３次の正方行列である。
【０１６３】
以上のような同定アルゴリズムでは、式（１５）の重みパラメータλ１、λ２の設定により、以下の４つの同定アルゴリズムのうちの１つが選択される。
すなわち、
λ１＝１，λ２＝０  ；固定ゲインアルゴリズム
λ１＝１，λ２＝１  ；最小２乗法アルゴリズム
λ１＝１，λ２＝λ  ；漸減ゲインアルゴリズム
λ１＝λ，λ２＝１  ；重み付き最小２乗法アルゴリズム
ただし、λは、０＜λ＜１に設定される所定値。
【０１６４】
本実施形態では、これらの４つの同定アルゴリズムのうちの重み付き最小２乗法アルゴリズムを採用する。これは、重みパラメータλ１の値をエンジン３の運転状態、具体的には排気ガスボリュームＡＢ＿ＳＶに応じて設定することにより、同定精度と、モデルパラメータの最適値への収束速度とを適切に設定できることによる。例えば、低負荷運転状態のときには、それに応じて重みパラメータλ１の値を値１に近い値に設定することで、すなわち最小２乗法アルゴリズムに近いアルゴリズムに設定することで、良好な同定精度を確保できるとともに、高負荷運転状態のときには、それに応じて重みパラメータλ１の値を低負荷運転状態のときよりも小さい値に設定することにより、モデルパラメータを迅速に最適値に収束させることができる。以上のように、重みパラメータλ１の値を排気ガスボリュームＡＢ＿ＳＶに応じて設定することにより、同定精度と、モデルパラメータの最適値への収束速度とを適切に設定することができ、それにより、触媒後排気ガス特性を向上させることができる。
【０１６５】
以上の式（８）〜（１５）の同定アルゴリズムにおいて、前述したＤＫＡＣＴ（ｋ）＝ＤＫＣＭＤ（ｋ−ｄ'）の関係を適用すると、図６に示す式（１６）〜（２３）の同定アルゴリズムが得られる。本実施形態では、ＬＡＦセンサ１４がエンジン３に設けられているので、これらの式（１６）〜（２３）を用いる。これらの式（１６）〜（２３）を用いた場合、前述した理由により、モデルパラメータを、第１触媒装置８ａに実際に供給される排気ガスの空燃比の状態がより反映された値として同定することができ、それにより、上記式（８）〜（１５）の同定アルゴリズムを用いた場合よりも、モデルパラメータの同定精度を向上させることができる。
【０１６６】
また、このオンボード同定器２３では、以上の同定アルゴリズムにより算出されたモデルパラメータａ１'(ｋ)、ａ２'(ｋ)およびｂ１'(ｋ)に、後述するリミット処理を施すことにより、モデルパラメータａ１(ｋ)、ａ２(ｋ)およびｂ１(ｋ)が算出される。さらに、前述した状態予測器２２では、このようにリミット処理を施した後のモデルパラメータａ１(ｋ)、ａ２(ｋ)およびｂ１(ｋ)に基づき、予測値ＰＲＥＶＯ２が算出される。
【０１６７】
次に、ＤＳＭコントローラ２４について説明する。このＤＳＭコントローラ２４は、ΔΣ変調アルゴリズムを応用した制御アルゴリズムにより、状態予測器２２で算出された予測値ＰＲＥＶＯ２に基づき、制御入力φｏｐ(ｋ)（＝目標空燃比ＫＣＭＤ）を生成（算出）するとともに、これを制御対象に入力することにより、制御対象の出力としてのＯ２センサ１５の出力Ｖｏｕｔを目標値Ｖｏｐに収束させるように制御するものである。
【０１６８】
まず、一般的なΔΣ変調アルゴリズムについて説明する。図７は、ΔΣ変調アルゴリズムを適用したコントローラ２６により、制御対象２７を制御する制御系の構成を示している。同図に示すように、このコントローラ２６では、差分器２６ａにより、参照信号ｒ(ｋ)と遅延素子２６ｂで遅延されたＤＳＭ信号ｕ(ｋ−１)との偏差として偏差信号δ(ｋ)が生成される。次に、積分器２６ｃにより、偏差積分値σd(ｋ)が、偏差信号δ(ｋ)と遅延素子２６ｄで遅延された偏差積分値σd(ｋ−１)との和の信号として生成される。次いで、量子化器２６ｅ（符号関数）により、ＤＳＭ信号ｕ(ｋ)が、この偏差積分値σd(ｋ)を符号化した信号として生成される。そして、以上のように生成されたＤＳＭ信号ｕ(ｋ)が制御対象２７に入力されることにより、出力信号 ｙ(ｋ)が制御対象２７から出力される。
【０１６９】
以上のΔΣ変調アルゴリズムは、以下の数式（２４）〜（２６）で表される。
δ(ｋ)＝ｒ(ｋ)−ｕ(ｋ−１)                                ……（２４）
σd(ｋ)＝σd(ｋ−１)＋δ(ｋ)                               ……（２５）
ｕ(ｋ)＝ｓｇｎ（σd(ｋ)）                                 ……（２６）
ただし、符号関数ｓｇｎ（σd(ｋ)）の値は、σd(ｋ)≧０のときにはｓｇｎ（σd(ｋ)）＝１となり、σd(ｋ)＜０のときにはｓｇｎ（σd(ｋ)）＝−１となる（なお、σd(ｋ)＝０のときに、ｓｇｎ（σd(ｋ)）＝０と設定してもよい）。
【０１７０】
図８は、以上の制御系の制御シミュレーション結果を示している。同図に示すように、正弦波状の参照信号ｒ(ｋ)を制御系に入力した場合、ＤＳＭ信号ｕ(ｋ)が矩形波状の信号として生成され、これを制御対象２７に入力することにより、参照信号ｒ(ｋ)と異なる振幅で同じ周波数の、ノイズを有するものの全体として同様の波形の出力信号ｙ(ｋ)が、制御対象２７から出力される。このように、ΔΣ変調アルゴリズムの特性は、参照信号ｒ(ｋ)から生成されたＤＳＭ信号ｕ(ｋ)を制御対象２７に入力したときに、制御対象２７の出力ｙ(ｋ)が、参照信号ｒ(ｋ)に対して、異なる振幅で同じ周波数の、全体として同様の波形の信号となるような値として、ＤＳＭ信号ｕ(ｋ)を生成できるという点にある。言い換えれば、ＤＳＭ信号ｕ(ｋ)を、参照信号ｒ(ｋ)が制御対象２７の実際の出力ｙ(ｋ)に再現されるような値として、生成（算出）できるという点にある。
【０１７１】
ＤＳＭコントローラ２４は、このようなΔΣ変調アルゴリズムの特性を利用し、Ｏ２センサ１５の出力Ｖｏｕｔを目標値Ｖｏｐに収束させるための制御入力φｏｐ(ｋ)を算出するものである。その原理について説明すると、例えば図９に１点鎖線で示すように、出力偏差ＶＯ２が値０に対して揺らいでいる場合（すなわち、Ｏ２センサ１５の出力Ｖｏｕｔが目標値Ｖｏｐに対して揺らいでいる場合）、出力偏差ＶＯ２を値０に収束させる（すなわち出力Ｖｏｕｔを目標値Ｖｏｐに収束させる）には、図９に破線で示す、出力偏差ＶＯ２を打ち消すような逆位相波形の出力偏差ＶＯ２*が生じるように、制御入力φｏｐ(ｋ)を生成すればよい。
【０１７２】
しかし、前述したように、本実施形態の制御対象では、制御入力φｏｐ(ｋ)としての目標空燃比ＫＣＭＤが制御対象に入力されてからＯ２センサ１５の出力Ｖｏｕｔに反映されるまでに、予測時間ｄｔ分の時間遅れが発生するため、現在の出力偏差ＶＯ２に基づいて、制御入力φｏｐ(ｋ)を算出した場合の出力偏差ＶＯ２#は、図９に実線で示すように、出力偏差ＶＯ２*に対して遅れを生じ、それにより、制御タイミングのずれが生じてしまう。したがって、これを補償するために、本実施形態のＡＤＳＭコントローラ２０におけるＤＳＭコントローラ２４では、出力偏差ＶＯ２の予測値ＰＲＥＶＯ２を用いることにより、制御入力φｏｐ(ｋ)が、制御タイミングのずれを生じることなく、現在の出力偏差ＶＯ２を打ち消すような出力偏差（逆位相波形の出力偏差ＶＯ２*と同様の出力偏差）を生じさせる信号として生成される。
【０１７３】
具体的には、このＤＳＭコントローラ２４では、図１０に示すように、反転増幅器２４ａにより、参照信号ｒ(ｋ)が、値−１、参照信号用のゲインＧdおよび予測値ＰＲＥＶＯ２(ｋ)を互いに乗算した信号として生成される。次に、差分器２４ｂにより、この参照信号ｒ(ｋ)と遅延素子２４ｃで遅延されたＤＳＭ信号ｕ''(ｋ−１)との偏差として偏差信号δ(ｋ)が生成される。
【０１７４】
次いで、積分器２４ｄにより、偏差積分値σd(ｋ)が、偏差信号δ(ｋ)と遅延素子２４ｅで遅延された偏差積分値σd(ｋ−１)との和の信号として生成され、次に、量子化器２４ｆ（符号関数）により、ＤＳＭ信号ｕ''(ｋ)が、この偏差積分値σd(ｋ)を符号化した値として生成される。そして、増幅器２４ｇにより、増幅ＤＳＭ信号ｕ(ｋ)がＤＳＭ信号ｕ''(ｋ)を所定のゲインＦdで増幅した値として生成され、次に、加算器２４ｈにより、この増幅ＤＳＭ信号ｕ(ｋ)を所定の基準値ＦＬＡＦＢＡＳＥに加算した値として、制御入力φｏｐ(ｋ)が生成される。
【０１７５】
以上のＤＳＭコントローラ２４の制御アルゴリズムは、以下の式（２７）〜（３２）で表される。
ｒ(ｋ)＝−１・Ｇd・ＰＲＥＶＯ２(ｋ)                   ……（２７）
δ(ｋ)＝ｒ(ｋ)−ｕ''(ｋ−１)                          ……（２８）
σd(ｋ)＝σd(ｋ−１)＋δ(ｋ)                           ……（２９）
ｕ''(ｋ)＝ｓｇｎ（σd(ｋ)）                             ……（３０）
ｕ(ｋ)＝Ｆd・ｕ''(ｋ)                                 ……（３１）
φｏｐ(ｋ)＝ＦＬＡＦＢＡＳＥ＋ｕ(ｋ)                      ……（３２）
ここで、Ｇd，Ｆdはゲインを表す。また、符号関数ｓｇｎ（σd(ｋ)）の値は、σd(ｋ)≧０のときにはｓｇｎ（σd(ｋ)）＝１となり、σd(ｋ)＜０のときにはｓｇｎ（σd(ｋ)）＝−１となる（なお、σd(ｋ)＝０のときに、ｓｇｎ（σd(ｋ)）＝０と設定してもよい）。
【０１７６】
このＤＳＭコントローラ２４では、以上の式（２７）〜（３２）に示す制御アルゴリズムにより、前述したように、制御入力φｏｐ(ｋ)が、制御タイミングのずれを生じることなく、出力偏差ＶＯ２を打ち消すような出力偏差ＶＯ２*を生じさせる値として算出される。すなわち、制御入力φｏｐ(ｋ)が、Ｏ２センサ１５の出力Ｖｏｕｔを目標値Ｖｏｐに収束させることができる値として算出される。また、制御入力φｏｐ(ｋ)が、増幅ＤＳＭ信号ｕ(ｋ)を所定の基準値ＦＬＡＦＢＡＳＥに加算した値として算出されるので、制御入力φｏｐ(ｋ)を値０を中心して正負反転する値だけでなく、基準値ＦＬＡＦＢＡＳＥを中心として増減を繰り返す値として算出できる。これにより、通常のΔΣ変調アルゴリズムと比べて、制御の自由度を高めることができる。
【０１７７】
次に、前記ＰＲＩＳＭコントローラ２１について説明する。このＰＲＩＳＭコントローラ２１は、以下に述べるオンボード同定型スライディングモード制御処理（以下「ＰＲＩＳＭ処理」という）の制御アルゴリズムにより、Ｏ２センサ１５の出力Ｖｏｕｔを目標値Ｖｏｐに収束させるための目標空燃比ＫＣＭＤを算出するものであり、状態予測器２２、オンボード同定器２３およびスライディングモードコントローラ（以下「ＳＬＤコントローラ」という）２５により構成されている。なお、このＰＲＩＳＭ処理の具体的なプログラムについては後述する。
【０１７８】
このＰＲＩＳＭコントローラ２１のうちの状態予測器２２およびオンボード同定器２３については、既に説明したので、ここではＳＬＤコントローラ２５についてのみ説明する。このＳＬＤコントローラ２５は、スライディングモード制御アルゴリズムに基づいてスライディングモード制御を行うものであり、以下、一般的なスライディングモード制御アルゴリズムについて説明する。このスライディングモード制御アルゴリズムでは、前述した式（１）の離散時間系モデルを制御対象モデルとして用いるため、切換関数σは、下式（３３）に示すように、出力偏差ＶＯ２の時系列データの線形関数として設定される。
σ（ｋ）＝Ｓ１・ＶＯ２（ｋ）＋Ｓ２・ＶＯ２（ｋ−１）      ……（３３）
ここで、Ｓ１，Ｓ２は、−１＜（Ｓ２／Ｓ１）＜１の関係が成立するように設定される所定の係数である。
【０１７９】
一般にスライディングモード制御アルゴリズムでは、切換関数σが２つの状態変数（本実施形態では出力偏差ＶＯ２の時系列データ）で構成されている場合、２つの状態変数で構成される位相空間は、これらをそれぞれ縦軸および横軸とする２次元の位相平面となるため、この位相平面上において、σ＝０を満たす２つの状態変数の値の組み合わせは、切換直線と呼ばれる直線上に載ることになる。したがって、制御対象への制御入力を、２つの状態変数の組み合わせが切換直線上に収束する（載る）ように適切に決定することにより、２つの状態変数をいずれも、値０になる平衡点に収束（スライディング）させることができる。さらに、スライディングモード制御アルゴリズムでは、切換関数σの設定により、状態変数の動特性、より具体的には収束挙動や収束速度を指定することができる。例えば、本実施形態のように、切換関数σが２つの状態変数で構成されている場合には、切換直線の傾きを値１に近づけると、状態変数の収束速度が遅くなる一方、値０に近づけると、収束速度が速くなる。
【０１８０】
本実施形態では、前記式（３３）に示すように、切換関数σが出力偏差ＶＯ２の２つの時系列データ、すなわち出力偏差ＶＯ２の今回値ＶＯ２（ｋ）および前回値ＶＯ２（ｋ−１）により構成されているので、これらの今回値ＶＯ２（ｋ）および前回値ＶＯ２（ｋ−１）の組み合わせを切換直線上に収束させるように、制御対象への制御入力すなわち目標空燃比ＫＣＭＤを設定すればよい。具体的には、制御量Ｕｓｌ（ｋ）を、基準値ＦＬＡＦＢＡＳＥとの和が目標空燃比ＫＣＭＤとなる値として定義すると、今回値ＶＯ２（ｋ）および前回値ＶＯ２（ｋ−１）の組み合わせを切換直線上に収束させるための制御量Ｕｓｌ（ｋ）は、適応スライディングモード制御アルゴリズムにより、図１１に示す式（３４）のように、等価制御入力Ｕｅｑ（ｋ）、到達則入力Ｕｒｃｈ（ｋ）および適応則入力Ｕａｄｐ（ｋ）の総和として設定される。
【０１８１】
この等価制御入力Ｕｅｑ（ｋ）は、出力偏差ＶＯ２の今回値ＶＯ２（ｋ）および前回値ＶＯ２（ｋ−１）の組み合わせを切換直線上に拘束しておくためのものであり、具体的には、図１１に示す式（３５）のように定義される。また、到達則入力Ｕｒｃｈ（ｋ）は、外乱やモデル化誤差などにより、出力偏差ＶＯ２の今回値ＶＯ２（ｋ）および前回値ＶＯ２（ｋ−１）の組み合わせが切換直線上から外れた際に、これらを切換直線上に収束させるためのものであり、具体的には、図１１に示す式（３６）のように定義される。この式（３６）において、Ｆはゲインを表す。
【０１８２】
さらに、適応則入力Ｕａｄｐ（ｋ）は、制御対象の定常偏差、モデル化誤差および外乱の影響を抑制しながら、出力偏差ＶＯ２の今回値ＶＯ２（ｋ）および前回値ＶＯ２（ｋ−１）の組み合わせを、切換超平面上に確実に収束させるためのものであり、具体的には、図１１に示す式（３７）のように定義される。この式（３７）において、Ｇはゲインを、ΔＴは制御周期をそれぞれ表す。
【０１８３】
本実施形態のＰＲＩＳＭコントローラ２１のＳＬＤコントローラ２５では、前述したように、出力偏差ＶＯ２に代えて予測値ＰＲＥＶＯ２を用いるので、ＰＲＥＶＯ２（ｋ）≒ＶＯ２（ｋ＋ｄｔ）の関係を適用することにより、以上の式（３３）〜（３７）のアルゴリズムを、図１２に示す式（３８）〜（４２）に書き換えて用いる。この式（３８）におけるσＰＲＥは、予測値ＰＲＥＶＯ２を用いたときの切換関数（以下「予測切換関数」という）の値である。すなわち、このＳＬＤコントローラ２５では、以上のアルゴリズムで算出される制御量Ｕｓｌ（ｋ）を基準値ＦＬＡＦＢＡＳＥに加算することによって、目標空燃比ＫＣＭＤが算出される。
【０１８４】
以下、ＥＣＵ２により実行される燃料噴射量の算出処理について、図１３を参照しながら説明する。なお、以下の説明では、今回値であることを示す記号（ｋ）を適宜、省略する。図１３は、この制御処理のメインルーチンを示しており、本処理は、ＴＤＣ信号の入力に同期して割り込み実行される。この処理では、後述する適応空燃比制御処理、またはマップ検索処理により算出された目標空燃比ＫＣＭＤを用いることによって、燃料噴射量ＴＯＵＴが気筒ごとに算出される。
【０１８５】
まず、ステップ１（図では「Ｓ１」と略す。以下同じ）において、前述した各種のセンサ１０〜１９の出力を読み込むとともに、読み込んだデータをＲＡＭ内に記憶する。
【０１８６】
次に、ステップ２に進み、基本燃料噴射量Ｔｉｍを算出する。この処理では、エンジン回転数ＮＥおよび吸気管内絶対圧ＰＢＡに応じて、図示しないマップを検索することにより、基本燃料噴射量Ｔｉｍを算出する。
【０１８７】
次いで、ステップ３に進み、総補正係数ＫＴＯＴＡＬを算出する。この総補正係数ＫＴＯＴＡＬは、各種の運転パラメータ（例えば吸気温ＴＡや、大気圧ＰＡ、エンジン水温ＴＷ、アクセル開度ＡＰなど）に応じて、各種のテーブルやマップを検索することで各種の補正係数を算出するとともに、これらの各種の補正係数を互いに乗算することにより、算出される。
【０１８８】
次に、ステップ４に進み、適応制御フラグＦ＿ＰＲＩＳＭＯＮの設定処理を実行する。この処理の内容は図示しないが、具体的には、以下の（ａ）〜（ｆ）の条件がいずれも成立しているときには、適応空燃比制御処理で算出された目標空燃比ＫＣＭＤを使用する条件が成立しているとして、それを表すために、適応制御フラグＦ＿ＰＲＩＳＭＯＮが「１」にセットされる。一方、（ａ）〜（ｆ）の条件のうちの少なくとも１つが成立していないときには、適応制御フラグＦ＿ＰＲＩＳＭＯＮが「０」にセットされる。
（ａ）ＬＡＦセンサ１４およびＯ２センサ１５がいずれも活性化していること。
（ｂ）エンジン３がリーンバーン運転中でないこと。
（ｃ）スロットル弁５が全開状態でないこと。
（ｄ）点火時期の遅角制御中でないこと。
（ｅ）フューエルカット運転中でないこと。
（ｆ）エンジン回転数ＮＥおよび吸気管内絶対圧ＰＢＡがいずれも、所定の範囲囲内の値であること。
【０１８９】
次に、ステップ５に進み、ステップ４で設定された適応制御フラグＦ＿ＰＲＩＳＭＯＮが「１」であるか否かを判別する。この判別結果がＹＥＳのときには、ステップ６に進み、目標空燃比ＫＣＭＤを、後述する適応空燃比制御処理で算出された適応目標空燃比ＫＣＭＤＳＬＤに設定する。
【０１９０】
一方、ステップ５の判別結果がＮＯのときには、ステップ７に進み、目標空燃比ＫＣＭＤをマップ値ＫＣＭＤＭＡＰに設定する。このマップ値ＫＣＭＤＭＡＰは、エンジン回転数ＮＥおよび吸気管内絶対圧ＰＢＡに応じて、図示しないマップを検索することにより、算出される。
【０１９１】
以上のステップ６または７に続くステップ８では、オブザーバフィードバック補正係数＃ｎＫＬＡＦを気筒ごとに算出する。このオブザーバフィードバック補正係数＃ｎＫＬＡＦは、気筒ごとの実際の空燃比のばらつきを補正するためのものであり、具体的には、オブザーバによりＬＡＦセンサ１４の出力ＫＡＣＴから気筒ごとの実際の空燃比を推定し、これらの推定した空燃比に応じて、ＰＩＤ制御により算出される。なお、このオブザーバフィードバック補正係数＃ｎＫＬＡＦの記号＃ｎは、気筒の番号＃１〜＃４を表すものであり、これは、後述する要求燃料噴射量＃ｎＴＣＹＬおよび最終燃料噴射量＃ｎＴＯＵＴにおいても同様である。
【０１９２】
次いで、ステップ９に進み、フィードバック補正係数ＫＦＢを算出する。このフィードバック補正係数ＫＦＢは、具体的には、以下のように算出される。すなわち、ＬＡＦセンサ１４の出力ＫＡＣＴと目標空燃比ＫＣＭＤとの偏差に応じて、ＰＩＤ制御によりフィードバック係数ＫＬＡＦを算出する。また、図示しないSelf Tuning Regulator 型の適応制御器によりフィードバック補正係数ＫＳＴＲを算出し、これを目標空燃比ＫＣＭＤで除算することにより、フィードバック補正係数ｋｓｔｒを算出する。そして、エンジン３の運転状態に応じて、これらの２つのフィードバック係数ＫＬＡＦおよびフィードバック補正係数ｋｓｔｒの一方を、フィードバック補正係数ＫＦＢとして設定する。
【０１９３】
次いで、ステップ１０に進み、補正目標空燃比ＫＣＭＤＭを算出する。この補正目標空燃比ＫＣＭＤＭは、空燃比Ａ／Ｆの変化による充填効率の変化を補償するためのものであり、前述したステップ６または７で算出された目標空燃比ＫＣＭＤに応じて、図示しないテーブルを検索することにより算出される。
【０１９４】
次に、ステップ１１に進み、以上のように算出した基本燃料噴射量Ｔｉｍ、総補正係数ＫＴＯＴＡＬ、オブザーバフィードバック補正係数＃ｎＫＬＡＦ、フィードバック補正係数ＫＦＢ、および補正目標空燃比ＫＣＭＤＭを用い、下式（４３）により、気筒ごとの要求燃料噴射量＃ｎＴＣＹＬを算出する。
0003904923.tif 000003
【０１９５】
次に、ステップ１２に進み、要求燃料噴射量＃ｎＴＣＹＬを付着補正することにより、最終燃料噴射量＃ｎＴＯＵＴを算出する。この最終燃料噴射量＃ｎＴＯＵＴは、具体的には、今回の燃焼サイクルでインジェクタ６から噴射された燃料が燃焼室の内壁面に付着する割合などを、運転状態に応じて算出し、そのように算出した割合に基づいて、要求燃料噴射量＃ｎＴＣＹＬを補正することにより、算出される。
【０１９６】
次いで、ステップ１３に進み、以上のように算出した最終燃料噴射量＃ｎＴＯＵＴに基づく駆動信号を、対応する気筒のインジェクタ６に出力した後、本処理を終了する。
【０１９７】
次に、図１４および図１５を参照しながら、ＡＤＳＭ処理およびＰＲＩＳＭ処理を含む適応空燃比制御処理について説明する。この処理は、所定の周期（例えば１０ｍｓｅｃ）で実行される。また、この処理では、エンジン３の運転状態に応じて、ＡＤＳＭ処理、ＰＲＩＳＭ処理、またはスライディングモード制御量ＤＫＣＭＤＳＬＤを所定値ＳＬＤＨＯＬＤに設定する処理により、目標空燃比ＫＣＭＤが算出される。
【０１９８】
この処理では、まず、ステップ２０において、Ｆ／Ｃ後判定処理を実行する。この処理の内容は図示しないが、この処理では、フューエルカット運転中は、それを表すためにＦ／Ｃ後判定フラグＦ＿ＡＦＣが「１」にセットされ、フューエルカット運転の終了後、所定時間Ｘ＿ＴＭ＿ＡＦＣが経過したときには、それを表すためにＦ／Ｃ後判定フラグＦ＿ＡＦＣが「０」にセットされる。
【０１９９】
次に、ステップ２１に進み、車速ＶＰに基づいて、エンジン３を搭載した車両が発進したか否かを判定する発進判定処理を実行する。図１６に示すように、この処理では、まず、ステップ４９において、アイドル運転フラグＦ＿ＩＤＬＥが「１」であるか否かを判別する。このアイドル運転フラグＦ＿ＩＤＬＥは、アイドル運転中であるときに「１」に、それ以外のときに「０」にセットされる。
【０２００】
この判別結果がＹＥＳで、アイドル運転中であるときには、ステップ５０に進み、車速ＶＰが所定車速ＶＳＴＡＲＴ（例えば１ｋｍ／ｈ）より小さいか否かを判別する。この判別結果がＹＥＳで、停車中であるときには、ステップ５１に進み、ダウンカウント式の第１発進判定タイマのタイマ値ＴＭＶＯＴＶＳＴを第１所定時間ＴＶＯＴＶＳＴ（例えば３ｍｓｅｃ）に設定する。
【０２０１】
次いで、ステップ５２に進み、ダウンカウント式の第２発進判定タイマのタイマ値ＴＭＶＳＴを、上記第１所定時間ＴＶＯＴＶＳＴよりも長い第２所定時間ＴＶＳＴ（例えば５００ｍｓｅｃ）に設定する。次いで、ステップ５３，５４において、第１および第２発進フラグＦ＿ＶＯＴＶＳＴ，Ｆ＿ＶＳＴをいずれも「０」にセットした後、本処理を終了する。
【０２０２】
一方、ステップ４９または５０の判別結果がＮＯのとき、すなわちアイドル運転中でないか、または車両が発進したときには、ステップ５５に進み、第１発進判定タイマのタイマ値ＴＭＶＯＴＶＳＴが値０より大きいか否かを判別する。この判別結果がＹＥＳで、アイドル運転の終了後または車両の発進後、第１所定時間ＴＶＯＴＶＳＴが経過していないときには、第１発進モード中であるとして、ステップ５６に進み、それを表すために第１発進フラグＦ＿ＶＯＴＶＳＴを「１」にセットする。
【０２０３】
一方、ステップ５５の判別結果がＮＯで、アイドル運転の終了後または車両の発進後、第１所定時間ＴＶＯＴＶＳＴが経過したときには、第１発進モードが終了したとして、ステップ５７に進み、第１発進フラグＦ＿ＶＯＴＶＳＴを「０」にセットする。
【０２０４】
ステップ５６または５７に続くステップ５８では、第２発進判定タイマのタイマ値ＴＭＶＳＴが値０より大きいか否かを判別する。この判別結果がＹＥＳで、アイドル運転の終了後または車両の発進後、第２所定時間ＴＶＳＴが経過していないときには、第２発進モード中であるとして、ステップ５９に進み、それを表すために第２発進フラグＦ＿ＶＳＴを「１」にセットした後、本処理を終了する。
【０２０５】
一方、ステップ５９の判別結果がＮＯで、アイドル運転の終了後または車両の発進後、第２所定時間ＴＶＳＴが経過したときには、第２発進モードが終了したとして、前記ステップ５４を実行した後、本処理を終了する。
【０２０６】
図１４に戻り、ステップ２１に続くステップ２２では、状態変数の設定処理を実行する。図示しないが、この処理では、ＲＡＭ内に記憶されている、目標空燃比ＫＣＭＤ、ＬＡＦセンサ１４の出力ＫＡＣＴおよび出力偏差ＶＯ２の時系列データをいずれも、１サンプリングサイクル分ずつ過去側にシフトさせる。その後、ＫＣＭＤ、ＫＡＣＴおよびＶＯ２の時系列データの最新の値と、基準値ＦＬＡＦＢＡＳＥと、後述する適応補正項ＦＬＡＦＡＤＰとに基づき、ＫＣＭＤ、ＫＡＣＴおよびＶＯ２の今回値を算出する。
【０２０７】
次に、ステップ２３に進み、ＰＲＩＳＭ／ＡＤＳＭ処理の実行判定処理を行う。この処理は、ＰＲＩＳＭ処理またはＡＤＳＭ処理の実行条件が成立しているか否かを判定するものであり、具体的には、図１７に示すフローチャートのように実行される。
【０２０８】
すなわち、図１７のステップ６０〜６３において、以下の（ｇ）〜（ｊ）の条件がいずれも成立しているときには、ＰＲＩＳＭ処理またはＡＤＳＭ処理を実行すべき運転状態にあるとして、それを表すために、ステップ６４で、ＰＲＩＳＭ／ＡＤＳＭ実行フラグＦ＿ＰＲＩＳＭＣＡＬを「１」にセットした後、本処理を終了する。一方、（ｇ）〜（ｊ）の条件の少なくとも１つが成立していないときには、ＰＲＩＳＭ処理またはＡＤＳＭ処理を実行すべき運転状態にないとして、それを表すために、ステップ６５で、ＰＲＩＳＭ／ＡＤＳＭ実行フラグＦ＿ＰＲＩＳＭＣＡＬを「０」にセットした後、本処理を終了する。
（ｇ）Ｏ２センサ１５が活性化していること。
（ｈ）ＬＡＦセンサ１４が活性化していること。
（ｉ）エンジン３がリーンバーン運転中でないこと。
（ｊ）点火時期の遅角制御中でないこと。
【０２０９】
図１４に戻り、ステップ２３に続くステップ２４では、同定器演算の実行判定処理を行う。この処理は、オンボード同定器２３によるパラメータ同定の実行条件が成立しているか否かを判定するものであり、具体的には、図１８に示すフローチャートのように実行される。
【０２１０】
すなわち、図１８のステップ７０および７１の判別結果がいずれもＮＯのとき、言い換えれば、スロットル弁開度θＴＨが全開状態でなく、かつフューエルカット運転中でないときには、パラメータ同定を実行すべき運転状態であるとして、ステップ７２に進み、同定実行フラグＦ＿ＩＤＣＡＬを「１」にセットした後、本処理を終了する。一方、ステップ７０または７１の判別結果がＹＥＳのときには、パラメータ同定を実行すべき運転状態にないとして、ステップ７３に進み、同定実行フラグＦ＿ＩＤＣＡＬを「０」にセットした後、本処理を終了する。
【０２１１】
図１４に戻り、ステップ２４に続くステップ２５では、各種パラメータ（排気ガスボリュームＡＢ＿ＳＶなど）を算出する。この処理の具体的な内容は、後述する。
【０２１２】
次に、ステップ２６に進み、前記ステップ２３で設定されたＰＲＩＳＭ／ＡＤＳＭ実行フラグＦ＿ＰＲＩＳＭＣＡＬが「１」であるか否かを判別する。この判別結果がＹＥＳで、ＰＲＩＳＭ処理またはＡＤＳＭ処理の実行条件が成立しているときには、ステップ２７に進み、前記ステップ２４で設定された同定実行フラグＦ＿ＩＤＣＡＬが「１」であるか否かを判別する。
【０２１３】
この判別結果がＹＥＳで、オンボード同定器２３によるパラメータ同定を実行すべき運転状態のときには、ステップ２８に進み、パラメータ初期化フラグＦ＿ＩＤＲＳＥＴが「１」であるか否かを判別する。この判別結果がＮＯで、ＲＡＭに記憶されているモデルパラメータａ１，ａ２，ｂ１の初期化が不要であるときには、後述するステップ３１に進む。
【０２１４】
一方、この判別結果がＹＥＳで、モデルパラメータａ１，ａ２，ｂ１の初期化が必要であるときには、ステップ２９に進み、モデルパラメータａ１，ａ２，ｂ１を、それぞれの初期値に設定した後、それを表すためにステップ３０に進み、パラメータ初期化フラグＦ＿ＩＤＲＳＥＴを「０」にセットする。
【０２１５】
このステップ３０または２８に続くステップ３１では、オンボード同定器２３の演算を実行し、モデルパラメータａ１，ａ２，ｂ１を同定した後、後述する図１５のステップ３２に進む。このオンボード同定器２３の演算の具体的な内容については、後述する。
【０２１６】
一方、ステップ２７の判別結果がＮＯで、パラメータ同定を実行すべき運転状態でないときには、以上のステップ２８〜３１をスキップして、図１５のステップ３２に進む。ステップ２７または３１に続くステップ３２では、モデルパラメータａ１，ａ２，ｂ１として、同定値または所定値を選択する。この処理の内容は図示しないが、具体的には、前記ステップ２４で設定された同定実行フラグＦ＿ＩＤＣＡＬが「１」のときには、モデルパラメータａ１，ａ２，ｂ１をステップ３１で同定された同定値に設定する。一方、同定実行フラグＦ＿ＩＤＣＡＬが「０」のときには、モデルパラメータａ１，ａ２，ｂ１を所定値に設定する。
【０２１７】
次に、ステップ３３に進み、後述するように、状態予測器２２の演算を実行し、予測値ＰＲＥＶＯ２を算出する。その後、ステップ３４に進み、後述するように、制御量Ｕｓｌを算出する。
【０２１８】
次いで、ステップ３５に進み、ＳＬＤコントローラ２５の安定判別を実行する。この処理の内容は図示しないが、具体的には、予測切換関数σＰＲＥの値に基づき、ＳＬＤコントローラ２５によるスライディングモード制御が安定状態にあるか否かを判別する。
【０２１９】
次に、ステップ３６および３７において、後述するように、ＳＬＤコントローラ２５およびＤＳＭコントローラ２４により、スライディングモード制御量ＤＫＣＭＤＳＬＤおよびΔΣ変調制御量ＤＫＣＭＤＤＳＭをそれぞれ算出する。
【０２２０】
次いで、ステップ３８に進み、後述するように、ＳＬＤコントローラ２５により算出されたスライディングモード制御量ＤＫＣＭＤＳＬＤ、またはＤＳＭコントローラ２４により算出されたΔΣ変調制御量ＤＫＣＭＤＤＳＭを用いて、適応目標空燃比ＫＣＭＤＳＬＤを算出する。この後、ステップ３９に進み、後述するように、適応補正項ＦＬＡＦＡＤＰを算出した後、本処理を終了する。
【０２２１】
一方、図１４に戻り、前記ステップ２６の判別結果がＮＯで、ＰＲＩＳＭ処理およびＡＤＳＭ処理の実行条件がいずれも成立していないときには、ステップ４０に進み、パラメータ初期化フラグＦ＿ＩＤＲＳＥＴを「１」にセットする。次に、図１５のステップ４１に進み、スライディングモード制御量ＤＫＣＭＤＳＬＤを所定値ＳＬＤＨＯＬＤにセットする。次いで、前述したステップ３８，３９を実行した後、本処理を終了する。
【０２２２】
次に、図１９を参照しながら、前述したステップ２５の各種パラメータを算出する処理について説明する。この処理では、まず、ステップ８０において、下式（４４）により、排気ガスボリュームＡＢ＿ＳＶ（空間速度の推定値）を算出する。
ＡＢ＿ＳＶ＝（ＮＥ／１５００）・ＰＢＡ・Ｘ＿ＳＶＰＲＡ   ……（４４）
ここで、Ｘ＿ＳＶＰＲＡは、エンジン排気量に基づいて決定される所定の係数である。
【０２２３】
次に、ステップ８１に進み、前述した空燃比操作系のむだ時間ＫＡＣＴ＿Ｄ（＝ｄ'）、排気系のむだ時間ＣＡＴ＿ＤＥＬＡＹ（＝ｄ）および予測時間ｄｔを算出する。具体的には、ステップ８０で算出された排気ガスボリュームＡＢ＿ＳＶに応じて、図２０に示すテーブルを検索することにより、むだ時間ＫＡＣＴ＿Ｄ，ＣＡＴ＿ＤＥＬＡＹをそれぞれ算出するとともに、これらの和（ＫＡＣＴ＿Ｄ＋ＣＡＴ＿ＤＥＬＡＹ）を予測時間ｄｔとして設定する。すなわち、この制御プログラムでは、位相遅れ時間ｄｄが値０に設定される。
【０２２４】
このテーブルでは、排気ガスボリュームＡＢ＿ＳＶが大きいほど、むだ時間ＫＡＣＴ＿Ｄ，ＣＡＴ＿ＤＥＬＡＹがより小さい値に設定されている。これは、排気ガスボリュームＡＢ＿ＳＶが大きいほど、排気ガスの流速が大きくなることで、むだ時間ＫＡＣＴ＿Ｄ，ＣＡＴ＿ＤＥＬＡＹが短くなることによる。以上のように、むだ時間ＫＡＣＴ＿Ｄ，ＣＡＴ＿ＤＥＬＡＹおよび予測時間ｄｔが、排気ガスボリュームに応じて算出されるので、これらを用いて算出した出力偏差ＶＯ２の予測値ＰＲＥＶＯ２に基づき、後述する適応目標空燃比ＫＣＭＤＳＬＤを算出することにより、制御対象の入出力間の制御タイミングのずれを解消することができる。また、モデルパラメータａ１，ａ２，ｂ１が、上記むだ時間ＣＡＴ＿ＤＥＬＡＹを用いて同定されるので、制御対象モデルの動特性を、制御対象の実際の動特性に適合させることができ、それにより、制御対象の入出力間の制御タイミングのずれをさらに解消することができる。
【０２２５】
次に、ステップ８２に進み、同定アルゴリズムの重みパラメータλ１，λ２の値を算出する。具体的には、重みパラメータλ２を値１に設定すると同時に、重みパラメータλ１を、排気ガスボリュームＡＢ＿ＳＶに応じて、図２１に示すテーブルを検索することにより算出する。
【０２２６】
このテーブルでは、排気ガスボリュームＡＢ＿ＳＶが大きいほど、重みパラメータλ１がより小さい値に設定されており、言い換えれば、排気ガスボリュームＡＢ＿ＳＶが小さいほど、重みパラメータλ１がより大きくかつ値１により近い値に設定されている。これは、排気ガスボリュームＡＢ＿ＳＶが大きいほど、言い換えれば高負荷運転状態であるほど、モデルパラメータの同定をより迅速に行う必要があるので、重みパラメータλ１をより小さく設定することによって、モデルパラメータの最適値への収束速度を高めるためである。これに加えて、排気ガスボリュームＡＢ＿ＳＶが小さいほど、すなわち低負荷運転状態であるほど、空燃比が変動しやすくなり、触媒後排気ガス特性が不安定になりやすいことで、モデルパラメータの良好な同定精度を確保する必要があるので、重みパラメータλ１を値１に近づける（最小２乗法アルゴリズムに近づける）ことによって、モデルパラメータの同定精度をより高めるためである。
【０２２７】
次に、ステップ８３に進み、モデルパラメータａ１，ａ２の値を制限するための下限値Ｘ＿ＩＤＡ２Ｌと、モデルパラメータｂ１の値を制限するための下限値Ｘ＿ＩＤＢ１Ｌおよび上限値Ｘ＿ＩＤＢ１Ｈとを、排気ガスボリュームＡＢ＿ＳＶに応じて、図２２に示すテーブルを検索することにより算出する。
【０２２８】
このテーブルでは、下限値Ｘ＿ＩＤＡ２Ｌは、排気ガスボリュームＡＢ＿ＳＶが大きいほど、より大きい値に設定されている。これは、排気ガスボリュームＡＢ＿ＳＶの変化に応じたむだ時間の増減に伴い、制御系が安定状態となるモデルパラメータａ１，ａ２の組み合わせが変化することによる。また、下限値Ｘ＿ＩＤＢ１Ｌおよび上限値Ｘ＿ＩＤＢ１Ｈも、排気ガスボリュームＡＢ＿ＳＶが大きいほど、より大きい値に設定されている。これは、排気ガスボリュームＡＢ＿ＳＶが大きいほど、触媒前空燃比（第１触媒装置８ａよりも上流側の排気ガスの空燃比）がＯ２センサ１５の出力Ｖｏｕｔに及ぼす影響の度合、すなわち制御対象のゲインがより大きくなることによる。
【０２２９】
次いで、ステップ８４に進み、移動平均フィルタリング処理のフィルタ次数ｎを算出した後、本処理を終了する。この処理では、フィルタ次数ｎを、排気ガスボリュームＡＢ＿ＳＶに応じて、図２３に示すテーブルを検索することにより、算出する。
【０２３０】
このテーブルでは、排気ガスボリュームＡＢ＿ＳＶが大きいほど、フィルタ次数ｎがより小さい値に設定されている。これは、以下の理由による。すなわち、前述したように、排気ガスボリュームＡＢ＿ＳＶが変化すると、制御対象の周波数特性、特にゲイン特性が変化するので、制御対象モデルのゲイン特性を、制御対象の実際のゲイン特性に一致させるためには、重み付き最小２乗法アルゴリズムの周波数重み特性を、排気ガスボリュームＡＢ＿ＳＶに応じて適切に補正する必要がある。したがって、移動平均フィルタリング処理のフィルタ次数ｎを、上記テーブルのように排気ガスボリュームＡＢ＿ＳＶに応じて設定することにより、排気ガスボリュームＡＢ＿ＳＶの変化にかかわらず、一定の同定重みを同定アルゴリズムにおいて確保できるとともに、制御対象モデルと制御対象との間で互いのゲイン特性を一致させることができ、これにより、同定精度を向上させることができる。
【０２３１】
次に、図２４を参照しながら、前記ステップ３１のオンボード同定器２３の演算処理について説明する。同図に示すように、この処理では、まず、ステップ９０において、前述した式（２２）より、ゲイン係数ＫＰ（ｋ）を算出する。次に、ステップ９１に進み、前述した式（２０）より、出力偏差ＶＯ２の同定値ＶＯ２ＨＡＴ（ｋ）を算出する。
【０２３２】
次いで、ステップ９２に進み、前述した式（１８）（１９）より、同定誤差フィルタ値ｉｄｅ＿ｆ（ｋ）を算出する。次に、ステップ９３に進み、前述した式（１６）より、モデルパラメータのベクトルθ（ｋ）を算出した後、ステップ９４に進み、モデルパラメータのベクトルθ（ｋ）の安定化処理を実行する。この処理については後述する。
【０２３３】
次いで、ステップ９５に進み、前述した式（２３）より、正方行列Ｐ（ｋ）の次回値Ｐ（ｋ＋１）を算出する。この次回値Ｐ（ｋ＋１）は、次回のループでの算出において、正方行列Ｐ（ｋ）の値として用いられる。
【０２３４】
以下、図２５を参照しながら、上記ステップ９４におけるモデルパラメータのベクトルθ（ｋ）の安定化処理について説明する。同図に示すように、まず、ステップ１００で、３つのフラグＦ＿Ａ１ＳＴＡＢ，Ｆ＿Ａ２ＳＴＡＢ，Ｆ＿Ｂ１ＳＴＡＢをいずれも「０」にセットする。
【０２３５】
次に、ステップ１０１に進み、後述するように、ａ１'＆ａ２'のリミット処理を実行する。次いで、ステップ１０２で、後述するように、ｂ１'のリミット処理を実行した後、本処理を終了する。
【０２３６】
以下、図２６を参照しながら、上記ステップ１０１のａ１'＆ａ２'のリミット処理について説明する。同図に示すように、まず、ステップ１１０において、前記ステップ９３で算出したモデルパラメータの同定値ａ２'が、前記図１９のステップ８３で算出された下限値Ｘ＿ＩＤＡ２Ｌ以上であるか否かを判別する。この判別結果がＮＯのときには、ステップ１１１に進み、制御系を安定化させるために、モデルパラメータａ２を下限値Ｘ＿ＩＤＡ２Ｌに設定すると同時に、モデルパラメータａ２の安定化を実行したことを表すために、フラグＦ＿Ａ２ＳＴＡＢを「１」にセットする。一方、この判別結果がＹＥＳで、ａ２'≧Ｘ＿ＩＤＡ２Ｌのときには、ステップ１１２に進み、モデルパラメータａ２を同定値ａ２'に設定する。
【０２３７】
これらのステップ１１１または１１２に続くステップ１１３では、前記ステップ９３で算出したモデルパラメータの同定値ａ１'が、所定の下限値Ｘ＿ＩＤＡ１Ｌ（例えば値−２以上で値０より小さい一定値）以上であるか否かを判別する。この判別結果がＮＯのときには、ステップ１１４に進み、制御系を安定化させるために、モデルパラメータａ１を下限値Ｘ＿ＩＤＡ１Ｌに設定すると同時に、モデルパラメータａ１の安定化を実行したことを表すために、フラグＦ＿Ａ１ＳＴＡＢを「１」にセットする。
【０２３８】
一方、ステップ１１３の判別結果がＹＥＳのときには、ステップ１１５に進み、同定値ａ１'が、所定の上限値Ｘ＿ＩＤＡ１Ｈ（例えば値２）以下であるか否かを判別する。この判別結果がＹＥＳで、Ｘ＿ＩＤＡ１Ｌ≦ａ１'≦Ｘ＿ＩＤＡ１Ｈのときには、ステップ１１６に進み、モデルパラメータａ１を同定値ａ１'に設定する。一方、この判別結果がＮＯで、Ｘ＿ＩＤＡ１Ｈ＜ａ１'のときには、ステップ１１７に進み、モデルパラメータａ１を上限値Ｘ＿ＩＤＡ１Ｈに設定すると同時に、モデルパラメータａ１の安定化を実行したことを表すために、フラグＦ＿Ａ１ＳＴＡＢを「１」にセットする。
【０２３９】
これらのステップ１１４、１１６または１１７に続くステップ１１８では、以上のように算出したモデルパラメータａ１の絶対値と、モデルパラメータａ２との和（｜ａ１｜＋ａ２）が、所定の判定値Ｘ＿Ａ２ＳＴＡＢ（例えば値０．９）以下であるか否かを判別する。この判別結果がＹＥＳのときには、モデルパラメータａ１，ａ２の組み合わせが、制御系の安定性を確保できる範囲（図２７にハッチングで示す規制範囲）内にあるとして、そのまま本処理を終了する。
【０２４０】
一方、ステップ１１８の判別結果がＮＯのときには、ステップ１１９に進み、モデルパラメータａ１が、判定値Ｘ＿Ａ２ＳＴＡＢから下限値Ｘ＿ＩＤＡ２Ｌを減算した値（Ｘ＿Ａ２ＳＴＡＢ−Ｘ＿ＩＤＡ２Ｌ）以下であるか否かを判別する。この判別結果がＹＥＳのときには、ステップ１２０に進み、モデルパラメータａ２を、判定値Ｘ＿Ａ２ＳＴＡＢからモデルパラメータａ１の絶対値を減算した値（Ｘ＿Ａ２ＳＴＡＢ−｜ａ１｜）に設定すると同時に、モデルパラメータａ２の安定化を実行したことを表すために、フラグＦ＿Ａ２ＳＴＡＢを「１」にセットした後、本処理を終了する。
【０２４１】
一方、ステップ１１９の判別結果がＮＯで、ａ１＞（Ｘ＿Ａ２ＳＴＡＢ−Ｘ＿ＩＤＡ２Ｌ）のときには、ステップ１２１に進み、制御系を安定化させるために、モデルパラメータａ１を、判定値Ｘ＿Ａ２ＳＴＡＢから下限値Ｘ＿ＩＤＡ２Ｌを減算した値（Ｘ＿Ａ２ＳＴＡＢ−Ｘ＿ＩＤＡ２Ｌ）に設定し、モデルパラメータａ２を下限値Ｘ＿ＩＤＡ２Ｌに設定する。これと同時に、モデルパラメータａ１，ａ２の安定化を実行したことを表すために、フラグＦ＿Ａ１ＳＴＡＢ，Ｆ＿Ａ２ＳＴＡＢをいずれも「１」にセットする。その後、本処理を終了する。
【０２４２】
前述したように、逐次型の同定アルゴリズムでは、制御対象の入出力が定常状態になると、自己励起条件の不足化に起因して、同定されたモデルパラメータの絶対値が増大する、いわゆるドリフト現象が発生しやすくなることで、制御系が不安定になったり、振動状態になったりすることがある。また、その安定限界も、エンジン３の運転状態に応じて変化する。例えば、低負荷運転状態のときには、排気ガスボリュームＡＢ＿ＳＶが小さくなることで、供給された混合気に対する排気ガスの応答遅れやむだ時間などが大きくなり、それにより、Ｏ２センサ１５の出力Ｖｏｕｔが振動状態になりやすい。
【０２４３】
これに対して、以上のａ１'＆ａ２'のリミット処理では、モデルパラメータａ１，ａ２の組み合わせが、図２７にハッチングで示す規制範囲内の値に収まるように設定されるとともに、この規制範囲を決定する下限値Ｘ＿ＩＤＡ２Ｌが、排気ガスボリュームＡＢ＿ＳＶに応じて設定されるので、この規制範囲をエンジン３の運転状態の変化、すなわち制御対象の動特性の変化に伴う安定限界の変化が反映された適切な安定限界の範囲として設定することができ、そのような規制範囲内に収まるように規制されたモデルパラメータａ１，ａ２を用いることにより、上記ドリフト現象の発生を回避でき、制御系の安定性を確保することができる。これに加えて、モデルパラメータａ１，ａ２の組み合わせを、制御系の安定性を確保できる上記規制範囲内の値として設定することにより、モデルパラメータａ１およびモデルパラメータａ２を単独で規制した場合における、制御系の不安定な状態の発生を回避できる。以上により、制御系の安定性を向上させることができ、触媒後排気ガス特性を向上させることができる。
【０２４４】
次に、図２８を参照しながら、前記ステップ１０２のｂ１'のリミット処理について説明する。同図に示すように、この処理では、ステップ１３０において、前記ステップ９３で算出されたモデルパラメータの同定値ｂ１'が、前記図１９のステップ８３で算出された下限値Ｘ＿ＩＤＢ１Ｌ以上であるか否かを判別する。
【０２４５】
この判別結果がＹＥＳで、ｂ１'≧Ｘ＿ＩＤＢ１Ｌのときには、ステップ１３１１に進み、モデルパラメータの同定値ｂ１'が、前記図１９のステップ８３で算出された上限値Ｘ＿ＩＤＢ１Ｈ以下であるか否かを判別する。この判別結果がＹＥＳで、Ｘ＿ＩＤＢ１Ｌ≦ｂ１'≦Ｘ＿ＩＤＢ１Ｈのときには、ステップ１３２に進み、モデルパラメータｂ１を同定値ｂ１'に設定した後、本処理を終了する。
【０２４６】
一方、ステップ１３１の判別結果がＮＯで、ｂ１'＞Ｘ＿ＩＤＢ１Ｈのときには、ステップ１３３に進み、モデルパラメータｂ１を上限値Ｘ＿ＩＤＢ１Ｈに設定すると同時に、それを表すためにフラグＦ＿Ｂ１ＬＭＴを「１」にセットした後、本処理を終了する。
【０２４７】
一方、ステップ１３０の判別結果がＮＯで、ｂ１'＜Ｘ＿ＩＤＢ１Ｌのときには、ステップ１３４に進み、モデルパラメータｂ１を下限値Ｘ＿ＩＤＢ１Ｌに設定すると同時に、それを表すためにフラグＦ＿Ｂ１ＬＭＴを「１」にセットした後、本処理を終了する。
【０２４８】
以上のｂ１'のリミット処理を実行することにより、モデルパラメータｂ１を、Ｘ＿ＩＤＢ１Ｌ以上かつＸ＿ＩＤＢ１Ｈ以下の規制範囲内の値に制限することができ、それにより、逐次型の同定アルゴリズムによるドリフト現象の発生を回避できる。さらに、前述したように、これらの上下限値Ｘ＿ＩＤＢ１Ｈ，Ｘ＿ＩＤＢ１Ｌが、排気ガスボリュームＡＢ＿ＳＶに応じて設定されるので、規制範囲をエンジン３の運転状態の変化、すなわち制御対象の動特性の変化に伴う安定限界の変化が反映された適切な安定限界の範囲として、設定することができ、そのような規制範囲内に規制されたモデルパラメータｂ１を用いることにより、制御系の安定性を確保することができる。以上により、制御系の安定性を向上させることができ、触媒後排気ガス特性を向上させることができる。
【０２４９】
次に、図２９を参照しながら、前述したステップ３３の状態予測器２２の演算処理について説明する。この処理では、まず、ステップ１４０において、前述した式（７）の行列要素α１，α２，βｉ，βｊを算出する。次いで、ステップ１４１に進み、ステップ１４０で算出した行列要素α１，α２，βｉ，βｊを式（７）に適用することにより、出力偏差ＶＯ２の予測値ＰＲＥＶＯ２を算出した後、本処理を終了する。
【０２５０】
次に、図３０を参照しながら、前述したステップ３４の制御量Ｕｓｌを算出する処理について説明する。この処理では、まず、ステップ１５０において、前述した図１２の式（３８）により、予測切換関数σＰＲＥを算出する。
【０２５１】
次に、ステップ１５１に進み、予測切換関数σＰＲＥの積算値ＳＵＭＳＩＧＭＡを算出する。この処理では、図３１に示すように、まず、ステップ１６０において、下記の３つの条件（ｌ）〜（ｎ）のうちの少なくとも１つが成立しているか否かを判別する。
（ｌ）適応制御フラグＦ＿ＰＲＩＳＭＯＮが「１」であること。
（ｍ）後述する積算値保持フラグＦ＿ＳＳ＿ＨＯＬＤが「０」であること。
（ｎ）後述するＡＤＳＭ実行フラグＦ＿ＫＯＰＲが「０」であること。
【０２５２】
このステップ１６０の判別結果がＹＥＳのとき、すなわち積算値ＳＵＭＳＩＧＭＡの算出条件が成立しているときには、ステップ１６１に進み、積算値ＳＵＭＳＩＧＭＡの今回値ＳＵＭＳＩＧＭＡ（ｋ）を、前回値ＳＵＭＳＩＧＭＡ（ｋ−１）に、制御周期ΔＴと予測切換関数σＰＲＥとの積を加算した値［ＳＵＭＳＩＧＭＡ（ｋ−１）＋ΔＴ・σＰＲＥ］に設定する。
【０２５３】
次いで、ステップ１６２に進み、ステップ１６１で算出した今回値ＳＵＭＳＩＧＭＡ（ｋ）が所定の下限値ＳＵＭＳＬより大きいか否かを判別する。この判別結果がＹＥＳのときには、ステップ１６２に進み、今回値ＳＵＭＳＩＧＭＡ（ｋ）が所定の上限値ＳＵＭＳＨより小さいか否かを判別する。この判別結果がＹＥＳで、ＳＵＭＳＬ＜ＳＵＭＳＩＧＭＡ（ｋ）＜ＳＵＭＳＨのときには、そのまま本処理を終了する。
【０２５４】
一方、ステップ１６３の判別結果がＮＯで、ＳＵＭＳＩＧＭＡ（ｋ）≧ＳＵＭＳＨのときには、ステップ１６４に進み、今回値ＳＵＭＳＩＧＭＡ（ｋ）を上限値ＳＵＭＳＨに設定した後、本処理を終了する。一方、ステップ１６２の判別結果がＮＯで、ＳＵＭＳＩＧＭＡ（ｋ）≦ＳＵＭＳＬのときには、ステップ１６５に進み、今回値ＳＵＭＳＩＧＭＡ（ｋ）を下限値ＳＵＭＳＬに設定した後、本処理を終了する。
【０２５５】
一方、ステップ１６０の判別結果がＮＯのとき、すなわち３つの条件（ｌ）〜（ｎ）がいずれも不成立で、積算値ＳＵＭＳＩＧＭＡの算出条件が不成立であるときには、ステップ１６６に進み、今回値ＳＵＭＳＩＧＭＡ（ｋ）を前回値ＳＵＭＳＩＧＭＡ（ｋ−１）に設定する。すなわち、積算値ＳＵＭＳＩＧＭＡをホールドする。この後、本処理を終了する。
【０２５６】
図３０に戻り、ステップ１５１に続くステップ１５２〜１５４において、前述した図１２の式（４０）〜（４２）により、等価制御入力Ｕｅｑ、到達則入力Ｕｒｃｈおよび適応則入力Ｕａｄｐをそれぞれ算出する。
【０２５７】
次に、ステップ１５５に進み、これらの等価制御入力Ｕｅｑ、到達則入力Ｕｒｃｈおよび適応則入力Ｕａｄｐの和を、制御量Ｕｓｌとして設定した後、本処理を終了する。
【０２５８】
次に、図３２，３３を参照しながら、前述した図１５のステップ３６のスライディングモード制御量ＤＫＣＭＤＳＬＤの算出処理について説明する。この処理では、まず、ステップ１７０において、制御量Ｕｓｌのリミット値算出処理を実行する。この処理では、その詳細は説明は省略するが、前述したステップ３５のコントローラの安定判別処理の判別結果と、後述する制御量Ｕｓｌの適応上下限値Ｕｓｌ＿ａｈ，Ｕｓｌ＿ａｌとに基づいて、非アイドル運転用の上下限値Ｕｓｌ＿ａｈｆ，Ｕｓｌ＿ａｌｆと、アイドル運転用の上下限値Ｕｓｌ＿ａｈｆｉ，Ｕｓｌ＿ａｌｆｉとをそれぞれ算出する。
【０２５９】
次いで、ステップ１７１に進み、アイドル運転フラグＦ＿ＩＤＬＥが「０」であるか否かを判別する。この判別結果がＹＥＳで、アイドル運転中でないときには、ステップ１７１に進み、前述した図３０の処理で算出された制御量Ｕｓｌが、非アイドル運転用の下限値Ｕｓｌ＿ａｌｆ以下であるか否かを判別する。
【０２６０】
この判別結果がＮＯで、Ｕｓｌ＞Ｕｓｌ＿ａｌｆのときには、ステップ１７３に進み、制御量Ｕｓｌが非アイドル運転用の上限値Ｕｓｌ＿ａｈｆ以上であるか否かを判別する。この判別結果がＮＯで、Ｕｓｌ＿ａｌｆ＜Ｕｓｌ＜Ｕｓｌ＿ａｈｆのときには、ステップ１７４に進み、スライディングモード制御量ＤＫＣＭＤＳＬＤを制御量Ｕｓｌに設定すると同時に、積算値保持フラグＦ＿ＳＳ＿ＨＯＬＤを「０」にセットする。
【０２６１】
次いで、ステップ１７５に進み、適応下限値の今回値Ｕｓｌ＿ａｌ（ｋ）を、前回値Ｕｓｌ＿ａｌ（ｋ−１）に所定の減少側値Ｘ＿ＡＬ＿ＤＥＣを加算した値［Ｕｓｌ＿ａｌ（ｋ−１）＋Ｘ＿ＡＬ＿ＤＥＣ］に設定すると同時に、適応上限値の今回値Ｕｓｌ＿ａｈ（ｋ）を、前回値Ｕｓｌ＿ａｈ（ｋ−１）から所定の減少側値Ｘ＿ＡＬ＿ＤＥＣを減算した値［Ｕｓｌ＿ａｌ（ｋ−１）−Ｘ＿ＡＬ＿ＤＥＣ］に設定した後、本処理を終了する。
【０２６２】
一方、ステップ１７３の判別結果がＹＥＳで、Ｕｓｌ≧Ｕｓｌ＿ａｈｆのときには、ステップ１７６に進み、スライディングモード制御量ＤＫＣＭＤＳＬＤを非アイドル運転用の適応上限値Ｕｓｌ＿ａｈｆに設定すると同時に、積算値保持フラグＦ＿ＳＳ＿ＨＯＬＤを「１」にセットする。
【０２６３】
次いで、ステップ１７７に進み、始動後タイマのタイマ値ＴＭＡＣＲが所定時間Ｘ＿ＴＭＡＷＡＳＴより小さいこと、またはＦ／Ｃ後判定フラグＦ＿ＡＦＣが「１」であることが成立しているか否かを判別する。この始動後タイマは、エンジン３の始動後の経過時間を計時するアップカウント式のタイマである。
【０２６４】
この判別結果がＹＥＳのとき、すなわち、エンジン始動後、所定時間Ｘ＿ＴＭＡＷＡＳＴが経過していないか、またはフューエルカット運転の終了後、所定時間Ｘ＿ＴＭ＿ＡＦＣが経過していないときには、そのまま本処理を終了する。
【０２６５】
一方、ステップ１７７の判別結果がＮＯのとき、すなわち、エンジン始動後、所定時間Ｘ＿ＴＭＡＷＡＳＴが経過し、かつフューエルカット運転の終了後、所定時間Ｘ＿ＴＭ＿ＡＦＣが経過したときには、ステップ１７８に進み、適応下限値の今回値Ｕｓｌ＿ａｌ（ｋ）を、前回値Ｕｓｌ＿ａｌ（ｋ−１）に減少側値Ｘ＿ＡＬ＿ＤＥＣを加算した値［Ｕｓｌ＿ａｌ（ｋ−１）＋Ｘ＿ＡＬ＿ＤＥＣ］に設定すると同時に、適応上限値の今回値Ｕｓｌ＿ａｈ（ｋ）を、前回値Ｕｓｌ＿ａｈ（ｋ−１）に所定の増大側値Ｘ＿ＡＬ＿ＩＮＣを加算した値［Ｕｓｌ＿ａｈ（ｋ−１）＋Ｘ＿ＡＬ＿ＩＮＣ］に設定した後、本処理を終了する。
【０２６６】
一方、ステップ１７２の判別結果がＹＥＳで、Ｕｓｌ≦Ｕｓｌ＿ａｌｆのときには、ステップ１７９に進み、スライディングモード制御量ＤＫＣＭＤＳＬＤを非アイドル運転用の適応下限値Ｕｓｌ＿ａｌｆに設定すると同時に、積算値保持フラグＦ＿ＳＳ＿ＨＯＬＤを「１」にセットする。
【０２６７】
次いで、ステップ１８０に進み、第２発進フラグＦ＿ＶＳＴが「１」であるか否かを判別する。この判別結果がＹＥＳで、車両の発進後、第２所定時間ＴＶＳＴが経過しておらず、第２発進モード中であるときには、そのまま本処理を終了する。
【０２６８】
一方、ステップ１８０の判別結果がＮＯで、車両の発進後、第２所定時間ＴＶＳＴが経過し、第２発進モードが終了したときには、ステップ１８１に進み、適応下限値の今回値Ｕｓｌ＿ａｌ（ｋ）を、前回値Ｕｓｌ＿ａｌ（ｋ−１）から増大側値Ｘ＿ＡＬ＿ＩＮＣを減算した値［Ｕｓｌ＿ａｌ（ｋ−１）−Ｘ＿ＡＬ＿ＩＮＣ］に設定すると同時に、適応上限値の今回値Ｕｓｌ＿ａｈ（ｋ）を、前回値Ｕｓｌ＿ａｈ（ｋ−１）から減少側値Ｘ＿ＡＬ＿ＤＥＣを減算した値［Ｕｓｌ＿ａｈ（ｋ−１）−Ｘ＿ＡＬ＿ＤＥＣ］に設定する。その後、本処理を終了する。
【０２６９】
一方、ステップ１７１の判別結果がＮＯで、アイドル運転中であるときには、図３３のステップ１８２に進み、制御量Ｕｓｌが、アイドル運転用の下限値Ｕｓｌ＿ａｌｆｉ以下であるか否かを判別する。この判別結果がＮＯで、Ｕｓｌ＞Ｕｓｌ＿ａｌｆｉのときには、ステップ１８３に進み、制御量Ｕｓｌがアイドル運転用の上限値Ｕｓｌ＿ａｈｆｉ以上であるか否かを判別する。
【０２７０】
この判別結果がＮＯで、Ｕｓｌ＿ａｌｆｉ＜Ｕｓｌ＜Ｕｓｌ＿ａｈｆｉのときには、ステップ１８４に進み、スライディングモード制御量ＤＫＣＭＤＳＬＤを制御量Ｕｓｌに設定すると同時に、積算値保持フラグＦ＿ＳＳ＿ＨＯＬＤを「０」にセットした後、本処理を終了する。
【０２７１】
一方、ステップ１８３の判別結果がＹＥＳで、Ｕｓｌ≧Ｕｓｌ＿ａｈｆｉのときには、ステップ１８５に進み、スライディングモード制御量ＤＫＣＭＤＳＬＤをアイドル運転用の上限値Ｕｓｌ＿ａｈｆｉに設定すると同時に、積算値保持フラグＦ＿ＳＳ＿ＨＯＬＤを「１」にセットした後、本処理を終了する。
【０２７２】
一方、ステップ１８２の判別結果がＹＥＳで、Ｕｓｌ≦Ｕｓｌ＿ａｌｆｉのときには、ステップ１８６に進み、スライディングモード制御量ＤＫＣＭＤＳＬＤをアイドル運転用の下限値Ｕｓｌ＿ａｌｆｉに設定すると同時に、積算値保持フラグＦ＿ＳＳ＿ＨＯＬＤを「１」にセットした後、本処理を終了する。
【０２７３】
次に、図３４を参照しながら、前述した図１５のステップ３７のΔΣ変調制御量ＤＫＣＭＤＤＳＭを算出する処理について説明する。同図に示すように、この処理では、まず、ステップ１９０において、ＲＡＭに記憶されている、前回のループで算出されたＤＳＭ信号値の今回値ＤＳＭＳＧＮＳ（ｋ）［＝ｕ''（ｋ）］を、前回値ＤＳＭＳＧＮＳ（ｋ−１）［＝ｕ''（ｋ−１）］として設定する。
【０２７４】
次に、ステップ１９１に進み、ＲＡＭに記憶されている、前回のループで算出された偏差積分値の今回値ＤＳＭＳＩＧＭＡ（ｋ）［＝σd（ｋ）］を、前回値ＤＳＭＳＩＧＭＡ（ｋ−１）［＝σd（ｋ−１）］として設定する。
【０２７５】
次いで、ステップ１９２に進み、出力偏差の予測値ＰＲＥＶＯ２（ｋ）が値０以上であるか否かを判別する。この判別結果がＹＥＳのときには、エンジン３が混合気の空燃比をリーン側に変更すべき運転状態にあるとして、ステップ１９３に進み、参照信号値用のゲインＫＲＤＳＭ（＝Ｇd）を、リーン化用の値ＫＲＤＳＭＬに設定した後、後述するステップ１９５に進む。
【０２７６】
一方、ステップ１９２の判別結果がＮＯのときには、エンジン３が混合気の空燃比をリッチ側に変更すべき運転状態にあるとして、ステップ１９４に進み、参照信号値用のゲインＫＲＤＳＭを、リーン化用の値ＫＲＤＳＭＬよりも大きいリッチ化用の値ＫＲＤＳＭＲに設定した後、ステップ１９５に進む。
【０２７７】
このように、リーン化用の値ＫＲＤＳＭＬおよびリッチ化用の値ＫＲＤＳＭＲが互いに異なる値に設定されている理由は、以下による。すなわち、混合気の空燃比をリーン側に変更する際には、第１触媒装置８ａのＮＯｘ浄化率を確保すべく、リーンバイアスによるＮＯｘ排出量の抑制効果を得るために、リーン化用の値ＫＲＤＳＭＬをリッチ化用の値ＫＲＤＳＭＲよりも小さい値に設定することで、Ｏ２センサ１５の出力Ｖｏｕｔの目標値Ｖｏｐへの収束速度がリッチ側への変更時よりも遅くなるように、空燃比を制御する。一方、混合気の空燃比をリッチ側に変更する際には、第１および第２触媒装置８ａ，８ｂのＮＯｘ浄化率を十分に回復させるため、リッチ化用の値ＫＲＤＳＭＲをリーン化用の値ＫＲＤＳＭＬよりも大きい値に設定することで、Ｏ２センサ１５の出力Ｖｏｕｔの目標値Ｖｏｐへの収束速度がリーン側への変更時よりも速くなるように、空燃比を制御する。以上により、混合気の空燃比をリッチ側およびリーン側に変更する際、良好な触媒後排気ガス特性を確保することができる。
【０２７８】
ステップ１９３または１９４に続くステップ１９５では、値−１、参照信号値用のゲインＫＲＤＳＭおよび予測値の今回値ＰＲＥＶＯ２（ｋ）を互いに乗算した値から、上記ステップ１９０で算出したＤＳＭ信号値の前回値ＤＳＭＳＧＮＳ（ｋ−１）を減算した値［−１・ＫＲＤＳＭ・ＰＲＥＶＯ２（ｋ）−ＤＳＭＳＧＮＳ（ｋ−１）］を、偏差信号値ＤＳＭＤＥＬＴＡ［＝δ（ｋ）］として設定する。この処理は、前述した式（２７），（２８）に相当する。
【０２７９】
次いで、ステップ１９６に進み、偏差積分値の今回値ＤＳＭＳＩＧＭＡ（ｋ）を、ステップ１９１で算出した前回値ＤＳＭＳＩＧＭＡ（ｋ−１）と、ステップ１９５で算出した偏差信号値ＤＳＭＤＥＬＴＡとの和［ＤＳＭＳＩＧＭＡ（ｋ−１）＋ＤＳＭＤＥＬＴＡ］に設定する。この処理は、前述した式（２９）に相当する。
【０２８０】
次に、ステップ１９７〜１９９において、ステップ１９６で算出した偏差積分値の今回値ＤＳＭＳＩＧＭＡ（ｋ）が値０以上のときには、ＤＳＭ信号値の今回値ＤＳＭＳＧＮＳ（ｋ）を値１に設定し、偏差積分値の今回値ＤＳＭＳＩＧＭＡ（ｋ）が値０よりも小さいときには、ＤＳＭ信号値の今回値ＤＳＭＳＧＮＳ（ｋ）を値−１に設定する。以上のステップ１９７〜１９９の処理は、前述した式（３０）に相当する。
【０２８１】
次いで、ステップ２００において、排気ガスボリュームＡＢ＿ＳＶに応じて、図３５に示すテーブルを検索することにより、ＤＳＭ信号値用のゲインＫＤＳＭ（＝Ｆd）を算出する。同図に示すように、このゲインＫＤＳＭは、排気ガスボリュームＡＢ＿ＳＶが小さいほど、より大きな値に設定されている。これは、排気ガスボリュームＡＢ＿ＳＶが小さいほど、すなわちエンジン３の運転負荷が小さい状態であるほど、Ｏ２センサ１５の出力Ｖｏｕｔの応答性が低下するので、それを補償するためである。このようにゲインＫＳＤＭを設定することにより、ΔΣ変調制御量ＤＫＣＭＤＤＳＭを、例えばオーバーゲイン状態などを回避しながら、エンジン３の運転状態に応じて適切に算出することができ、それにより、触媒後排気ガス特性を向上させることができる。
【０２８２】
なお、このゲインＫＤＳＭの算出に用いるテーブルは、ゲインＫＤＳＭが排気ガスボリュームＡＢ＿ＳＶに応じて設定されている上記テーブルに限らず、エンジン３の運転負荷状態を表すパラメータ（例えば基本燃料噴射時間Ｔｉｍ）に応じてゲインＫＤＳＭが予め設定されているものであればよい。また、触媒装置８ａ，８ｂの劣化判別器が設けられている場合には、この劣化判別器で判別された触媒装置８ａ，８ｂの劣化度合が大きいほど、ゲインＤＳＭをより小さい値に補正するようにしてもよい。
【０２８３】
次に、ステップ２０１に進み、ΔΣ変調制御量ＤＫＣＭＤＤＳＭを、ＤＳＭ信号値用のゲインＫＤＳＭと、ＤＳＭ信号値の今回値ＤＳＭＳＧＮＳ（ｋ）とを互いに乗算した値［ＫＤＳＭ・ＤＳＭＳＧＮＳ（ｋ）］に設定した後、本処理を終了する。この処理が、前述した式（３１）に相当する。
【０２８４】
次に、図３６を参照しながら、前述した図１５のステップ３８の適応目標空燃比ＫＣＭＤＳＬＤを算出する処理について説明する。同図に示すように、この処理では、まず、ステップ２１０において、アイドル運転フラグＦ＿ＩＤＬＥが「１」であること、およびアイドル時ＡＤＳＭ実行フラグＦ＿ＳＷＯＰＲＩが「１」であることがいずれも成立しているか否かを判別する。このアイドル時ＡＤＳＭ実行フラグＦ＿ＳＷＯＰＲＩは、エンジン３がアイドル運転中で、かつＡＤＳＭ処理を実行すべき運転状態のときに「１」に、それ以外のときに「０」にセットされる。
【０２８５】
この判別結果がＹＥＳのとき、すなわちエンジン３がアイドル運転中でＡＤＳＭ処理により適応目標空燃比ＫＣＭＤＳＬＤを算出すべき運転状態のときには、ステップ２１１に進み、適応目標空燃比ＫＣＭＤＳＬＤを、基準値ＦＬＡＦＢＡＳＥにΔΣ変調制御量ＤＫＣＭＤＤＳＭを加算した値［ＦＬＡＦＢＡＳＥ＋ＤＫＣＭＤＤＳＭ］に設定する。この処理が、前述した式（３２）に相当する。
【０２８６】
次いで、ステップ２１２に進み、ＡＤＳＭ処理を実行したことを表すために、ＡＤＳＭ実行済みフラグＦ＿ＫＯＰＲを「１」に設定した後、本処理を終了する。
【０２８７】
一方、ステップ２１０の判別結果がＮＯのときには、ステップ２１３に進み、触媒／Ｏ２センサフラグＦ＿ＦＣＡＴＤＳＭが「１」であるか否かを判別する。この触媒／Ｏ２センサフラグＦ＿ＦＣＡＴＤＳＭは、以下の４つの条件（ｏ）〜（ｒ）のうちの少なくとも１つが成立しているときに「１」に、それ以外は「０」にセットされる。
（ｏ）第１触媒装置８ａの触媒容量が所定値以上であること。
（ｐ）第１触媒装置８ａの貴金属含有量が所定値以上であること。
（ｑ）ＬＡＦセンサ１４がエンジン３の排気管７に設けられていないこと。
（ｒ）Ｏ２センサ１５が第２触媒装置８ｂよりも下流に設けられていること。
【０２８８】
この判別結果がＹＥＳのときには、ステップ２１４に進み、第１発進フラグＦ＿ＶＯＴＶＳＴ、および発進後ＡＤＳＭ実行フラグＦ＿ＳＷＯＰＲＶＳＴがいずれも「１」であるか否かを判別する。この発進後ＡＤＳＭ実行フラグＦ＿ＳＷＯＰＲＶＳＴは、車両の発進後で、かつエンジン３がＡＤＳＭ処理を実行すべき運転状態のときに「１」に、それ以外のときに「０」にセットされる。
【０２８９】
この判別結果がＹＥＳのとき、すなわち車両の発進後、第１所定時間ＴＶＯＴＶＳＴが経過し、かつＡＤＳＭ処理を実行すべき運転状態のときには、前述したように、ステップ２１１，２１２を実行した後、本処理を終了する。
【０２９０】
一方、ステップ２１４の判別結果がＮＯのときには、ステップ２１５に進み、排気ガスボリュームＡＢ＿ＳＶが所定値ＯＰＲＳＶＨ以下であること、および小排気時ＡＤＳＭ実行フラグＦ＿ＳＷＯＰＲＳＶが「１」であることがいずれも成立しているか否かを判別する。小排気時ＡＤＳＭ実行フラグＦ＿ＳＷＯＰＲＳＶは、エンジン３の排気ガスボリュームＡＢ＿ＳＶが小さい状態で、かつエンジン３がＡＤＳＭ処理を実行すべき運転状態のときに「１」に、それ以外のときに「０」にセットされる。
【０２９１】
この判別結果がＹＥＳのとき、すなわち排気ガスボリュームＡＢ＿ＳＶが小さく、かつエンジン３がＡＤＳＭ処理を実行すべき運転状態のときには、前述したように、ステップ２１１，２１２を実行した後、本処理を終了する。
【０２９２】
一方、ステップ２１５の判別結果がＮＯのときには、エンジン３がＰＲＩＳＭ処理を実行すべき運転状態であるとして、ステップ２１６に進み、適応目標空燃比ＫＣＭＤＳＬＤを、基準値ＦＬＡＦＢＡＳＥに適応補正項ＦＬＡＦＡＤＰおよびスライディングモード制御量ＤＫＣＭＤＳＬＤを加算した値［ＦＬＡＦＢＡＳＥ＋ＦＬＡＦＡＤＰ＋ＤＫＣＭＤＳＬＤ］に設定する。次いで、ステップ２１７に進み、ＰＲＩＳＭ処理を実行したことを表すために、ＡＤＳＭ実行済みフラグＦ＿ＫＯＰＲを「０」にセットした後、本処理を終了する。
【０２９３】
一方、前記ステップ２１３の判別結果がＮＯのとき、すなわち前述した４つの条件（ｏ）〜（ｒ）がいずれも成立していないときには、ステップ２１４，２１５をスキップし、前述したステップ２１６，２１７を実行した後、本処理を終了する。以上のように、この適応目標空燃比ＫＣＭＤＳＬＤの算出処理では、適応目標空燃比ＫＣＭＤＳＬＤが、エンジン３の運転状態に応じて、ＡＤＳＭ処理またはＰＲＩＳＭ処理に切り換えて算出される。
【０２９４】
次に、図３７を参照しながら、図１５のステップ３９の適応補正項ＦＬＡＦＡＤＰの算出処理について説明する。同図に示すように、この処理では、まず、ステップ２２０において、出力偏差ＶＯ２が所定の範囲（ＡＤＬ＜ＶＯ２＜ＡＤＨ）内の値であるか否かを判別する。この判別結果がＹＥＳのとき、すなわち出力偏差ＶＯ２が小さく、Ｏ２センサ１５の出力Ｖｏｕｔが目標値Ｖｏｐの近傍にあるときには、ステップ２２１に進み、適応則入力Ｕａｄｐが所定の下限値ＮＲＬより小さいか否かを判別する。
【０２９５】
この判別結果がＮＯで、Ｕａｄｐ≧ＮＲＬのときには、ステップ２２２に進み、適応則入力Ｕａｄｐが所定の上限値ＮＲＨより大きいか否かを判別する。この判別結果がＮＯで、ＮＲＬ≦Ｕａｄｐ≦ＮＲＨのときには、ステップ２２３に進み、適応補正項の今回値ＦＬＡＦＡＤＰ（ｋ）を前回値ＦＬＡＦＡＤＰ（ｋ−１）に設定する。すなわち、適応補正項ＦＬＡＦＡＤＰの値をホールドする。この後、本処理を終了する。
【０２９６】
一方、ステップ２２２の判別結果がＹＥＳで、Ｕａｄｐ＞ＮＲＨのときには、ステップ２２４に進み、適応補正項の今回値ＦＬＡＦＡＤＰ（ｋ）を、前回値ＦＬＡＦＡＤＰ（ｋ−１）に所定の更新値Ｘ＿ＦＬＡＦＤＬＴを加算した値［ＦＬＡＦＡＤＰ（ｋ−１）＋Ｘ＿ＦＬＡＦＤＬＴ］に設定した後、本処理を終了する。
【０２９７】
一方、ステップ２２１の判別結果がＹＥＳで、Ｕａｄｐ＜ＮＲＬのときには、ステップ２２５に進み、適応補正項の今回値ＦＬＡＦＡＤＰ（ｋ）を、前回値ＦＬＡＦＡＤＰ（ｋ−１）から所定の更新値Ｘ＿ＦＬＡＦＤＬＴを減算した値［ＦＬＡＦＡＤＰ（ｋ−１）−Ｘ＿ＦＬＡＦＤＬＴ］に設定した後、本処理を終了する。
【０２９８】
以上のように、第１実施形態の制御装置１によれば、目標空燃比ＫＣＭＤを制御入力とし、Ｏ２センサ１５の出力Ｖｏｕｔを出力とする、位相遅れやむだ時間などが比較的大きい動特性を有する制御対象において、制御対象の入出力間での制御タイミングのずれを適切に解消することができ、それにより、制御の安定性および制御性を向上させることができ、触媒後排気ガス特性を向上させることができる。
【０２９９】
以下、本発明の第２〜第８実施形態に係る制御装置について説明する。なお、以下の各実施形態の説明では、上述した第１実施形態と同じまたは同等の構成要素については、同一の参照番号を付し、その説明は適宜、省略するものとする。
【０３００】
まず、図３８を参照しながら、第２実施形態の制御装置について説明する。同図に示すように、この第２実施形態の制御装置１は、第１実施形態の制御装置１と比べて、オンボード同定器２３のみが異なっている。具体的には、第１実施形態のオンボード同定器２３では、ＫＡＣＴ、Ｖｏｕｔおよびφｏｐ（ＫＣＭＤ）に基づいて、モデルパラメータａ１，ａ２，ｂ１が算出されるのに対して、本実施形態のオンボード同定器２３では、Ｖｏｕｔおよびφｏｐに基づいて、モデルパラメータａ１，ａ２，ｂ１が算出される。
【０３０１】
すなわち、このオンボード同定器２３では、第１実施形態の図６の式（１６）〜（２３）に示す同定アルゴリズムに代えて、前述した図５の式（８）〜（１５）に示す同定アルゴリズムにより、モデルパラメータの同定値ａ１'，ａ２'，ｂ１'が算出されるとともに、これらに前述した図２６，２８のリミット処理を施すことにより、モデルパラメータａ１，ａ２，ｂ１が算出される。このオンボード同定器２３の演算処理の具体的なプログラムは、図示しないが、第１実施形態ものとほぼ同様に構成される。以上のような本実施形態の制御装置１によれば、第１実施形態の制御装置１と同様の効果を得ることができる。
【０３０２】
次に、図３９を参照しながら、第３実施形態の制御装置について説明する。同図に示すように、この第３実施形態の制御装置１は、第１実施形態の制御装置１と比べて、状態予測器２２のみが異なっている。具体的には、第１実施形態の状態予測器２２では、ａ１、ａ２、ｂ１、ＫＡＣＴ、Ｖｏｕｔおよびφｏｐ（ＫＣＭＤ）に基づいて、予測値ＰＲＥＶＯ２が算出されるのに対して、本実施形態のオンボード同定器２３では、ａ１、ａ２、ｂ１、Ｖｏｕｔおよびφｏｐに基づいて、予測値ＰＲＥＶＯ２が算出される。
【０３０３】
すなわち、この状態予測器２２では、第１実施形態の図４の式（７）に示す予測アルゴリズムに代えて、同図の式（６）に示す予測アルゴリズムにより、出力偏差ＶＯ２の予測値ＰＲＥＶＯ２が算出される。この状態予測器２２の演算処理の具体的なプログラムは、図示しないが、第１実施形態のものとほぼ同様に構成される。この制御装置１によれば、第１実施形態の制御装置１と同様の効果を得ることができる。
【０３０４】
次に、図４０を参照しながら、第４実施形態の制御装置について説明する。同図に示すように、この第４実施形態の制御装置１は、第１実施形態の制御装置１と比べると、ＡＤＳＭコントローラ２０、ＰＲＩＳＭコントローラ２１およびオンボード同定器２３に代えて、スケジュール型ＤＳＭコントローラ２０Ａ、スケジュール型状態予測スライディングモードコントローラ２１Ａおよびパラメータスケジューラ２８（モデルパラメータ設定手段）を用いることで、モデルパラメータａ１，ａ２，ｂ１を算出する点のみが異なっている。
【０３０５】
このパラメータスケジューラ２８では、まず、前述した式（４４）により、エンジン回転数ＮＥおよび吸気管内絶対圧ＰＢＡに基づいて、排気ガスボリュームＡＢ＿ＳＶが算出される。次いで、図４１に示すテーブルにより、排気ガスボリュームＡＢ＿ＳＶに応じて、モデルパラメータａ１，ａ２，ｂ１が算出される。
【０３０６】
このテーブルでは、モデルパラメータａ１は、排気ガスボリュームＡＢ＿ＳＶが大きいほど、より小さい値に設定されており、これとは逆に、モデルパラメータａ２，ｂ１は、排気ガスボリュームＡＢ＿ＳＶが大きいほど、より大きい値に設定されている。これは、排気ガスボリュームＡＢ＿ＳＶの増大に伴い、制御対象の出力すなわちＯ２センサ１５の出力Ｖｏｕｔが安定化する一方、排気ガスボリュームＡＢ＿ＳＶの減少に伴い、Ｏ２センサ１５の出力Ｖｏｕｔが振動的になることによる。
【０３０７】
スケジュール型ＤＳＭコントローラ２０Ａは、以上のように算出されたモデルパラメータａ１，ａ２，ｂ１を用い、前述した第１実施形態と同様のＤＳＭコントローラ２４により目標空燃比ＫＣＭＤを算出する。また、スケジュール型状態予測スライディングモードコントローラ２１Ａも、以上のように算出されたモデルパラメータａ１，ａ２，ｂ１を用い、前述した第１実施形態と同様のＳＬＤコントローラ２５により目標空燃比ＫＣＭＤを算出する。
【０３０８】
この制御装置１によれば、第１実施形態の制御装置１と同様の効果を得ることができる。これに加えて、パラメータスケジューラ２８を用いることにより、オンボード同定器２３を用いる場合と比べて、モデルパラメータａ１，ａ２，ｂ１を、より迅速に算出することができる。これにより、制御の応答性を向上させることができ、良好な触媒後排気ガス特性をより迅速に確保することができる。
【０３０９】
次に、図４２を参照しながら、第５実施形態の制御装置について説明する。この第５実施形態の制御装置１は、第１実施形態の制御装置１のＤＳＭコントローラ２４に代えて、ＳＤＭコントローラ２９を用いる点のみが異なっている。このＳＤＭコントローラ２９は、ΣΔ変調アルゴリズムを適用した制御アルゴリズムにより、予測値ＰＲＥＶＯ２（ｋ）に基づいて、制御入力φｏｐ（ｋ）を算出するものである。
【０３１０】
すなわち、同図に示すように、このＳＤＭコントローラ２９では、反転増幅器２９ａにより、参照信号ｒ(ｋ)が、値−１、参照信号用のゲインＧdおよび予測値ＰＲＥＶＯ２(ｋ)を互いに乗算した信号として生成される。次に、積分器２９ｂにより、参照信号積分値σdｒ(ｋ)が、遅延素子２９ｃで遅延された参照信号積分値σdｒ(ｋ−１)と参照信号ｒ(ｋ)との和の信号として生成される。一方、積分器２９ｄにより、ＳＤＭ信号積分値σdｕ(ｋ)が、遅延素子２９ｅで遅延されたＳＤＭ信号積分値σdｕ(ｋ−１)と、遅延素子２９ｊで遅延されたＳＤＭ信号ｕ''(ｋ−１)との和の信号として生成される。そして、差分器２９ｆにより、参照信号積分値σdｒ(ｋ)とＳＤＭ信号積分値σdｕ(ｋ)との偏差信号δ''(ｋ)が生成される。
【０３１１】
次いで、量子化器２９ｇ（符号関数）により、ＳＤＭ信号ｕ''(ｋ)が、この偏差信号δ''(ｋ)を符号化した値として生成される。そして、増幅器２９ｈにより、増幅ＳＤＭ信号ｕ(ｋ)がＳＤＭ信号ｕ''(ｋ)を所定のゲインＦdで増幅した値として生成され、次に、加算器２９ｉにより、この増幅ＳＤＭ信号ｕ(ｋ)を所定の基準値ＦＬＡＦＢＡＳＥに加算した値として、制御入力φｏｐ（ｋ）が生成される。
【０３１２】
以上のＳＤＭコントローラ２９の制御アルゴリズムは、以下の式（４５）〜（５１）で表される。
ｒ(ｋ)＝−１・Ｇd・ＰＲＥＶＯ２(ｋ)                   ……（４５）
σdｒ(ｋ)＝σdｒ(ｋ−１)＋ｒ(ｋ)                         ……（４６）
σdｕ(ｋ)＝σdｕ(ｋ−１)＋ｕ''(ｋ−１)                   ……（４７）
δ''(ｋ)＝σdｒ(ｋ)−σdｕ(ｋ)                          ……（４８）
ｕ''(ｋ)＝ｓｇｎ（δ''(ｋ)）                            ……（４９）
ｕ(ｋ)＝Ｆd・ｕ''(ｋ)                                 ……（５０）
φｏｐ(ｋ)＝ＦＬＡＦＢＡＳＥ＋ｕ(ｋ)                      ……（５１）
ここで、Ｇd，Ｆdはゲインを表す。また、符号関数ｓｇｎ（δ''(ｋ)）の値は、δ''(ｋ)≧０のときにはｓｇｎ（δ''(ｋ)）＝１となり、δ''(ｋ)＜０のときにはｓｇｎ（δ''(ｋ)）＝−１となる（なお、δ''(ｋ)＝０のときに、ｓｇｎ（δ''(ｋ)）＝０と設定してもよい）。
【０３１３】
以上のＳＤＭコントローラ２９の制御アルゴリズムにおけるΣΔ変調アルゴリズムの特性は、ΔΣ変調アルゴリズムと同様に、ＳＤＭ信号ｕ(ｋ)を、これを制御対象に入力した際、参照信号ｒ(ｋ)が制御対象の出力に再現されるような値として、生成（算出）できるという点にある。すなわち、ＳＤＭコントローラ２９は、前述したＤＳＭコントローラ２４と同様の制御入力φｏｐ（ｋ）を生成できるという特性を備えている。したがって、このＳＤＭコントローラ２９を用いる本実施形態の制御装置１によれば、第１実施形態の制御装置１と同様の効果を得ることができる。なお、ＳＤＭコントローラ２９の具体的なプログラムは図示しないが、ＤＳＭコントローラ２４とほぼ同様に構成される。
【０３１４】
次に、図４３を参照しながら、第６実施形態の制御装置について説明する。この第６実施形態の制御装置１は、第１実施形態の制御装置１のＤＳＭコントローラ２４に代えて、ＤＭコントローラ３０を用いる点のみが異なっている。このＤＭコントローラ３０は、Δ変調アルゴリズムを適用した制御アルゴリズムにより、予測値ＰＲＥＶＯ２（ｋ）に基づいて、制御入力φｏｐ（ｋ）を算出するものである。
【０３１５】
すなわち、同図に示すように、このＤＭコントローラ３０では、反転増幅器３０ａにより、参照信号ｒ(ｋ)が、値−１、参照信号用のゲインＧdおよび予測値ＰＲＥＶＯ２(ｋ)を互いに乗算した信号として生成される。一方、積分器３０ｂにより、ＤＭ信号積分値σdｕ(ｋ)が、遅延素子３０ｃで遅延されたＤＭ信号積分値σdｕ(ｋ−１)と、遅延素子３０ｈで遅延されたＤＭ信号ｕ''(ｋ−１)との和の信号として生成される。そして、差分器３０ｄにより、参照信号ｒ(ｋ)とＤＭ信号積分値σdｕ(ｋ)との偏差信号δ''(ｋ)が生成される。
【０３１６】
次いで、量子化器３０ｅ（符号関数）により、ＤＭ信号ｕ''(ｋ)が、この偏差信号δ''(ｋ)を符号化した値として生成される。そして、増幅器３０ｆにより、増幅ＤＭ信号ｕ(ｋ)がＤＭ信号ｕ''(ｋ)を所定のゲインＦdで増幅した値として生成され、次に、加算器３０ｇにより、この増幅ＤＭ信号ｕ(ｋ)を所定の基準値ＦＬＡＦＢＡＳＥに加算した値として、制御入力φｏｐ（ｋ）が生成される。
【０３１７】
以上のＤＭコントローラ３０の制御アルゴリズムは、以下の式（５２）〜（５７）で表される。
ｒ(ｋ)＝−１・Ｇd・ＰＲＥＶＯ２(ｋ)                   ……（５２）
σdｕ(ｋ)＝σdｕ(ｋ−１)＋ｕ''(ｋ−１)                   ……（５３）
δ''(ｋ)＝ｒ(ｋ)−σdｕ(ｋ)                             ……（５４）
ｕ''(ｋ)＝ｓｇｎ（δ''(ｋ)）                            ……（５５）
ｕ(ｋ)＝Ｆd・ｕ''(ｋ)                                 ……（５６）
φｏｐ(ｋ)＝ＦＬＡＦＢＡＳＥ＋ｕ(ｋ)                      ……（５７）
ここで、Ｇd，Ｆdはゲインを表す。また、符号関数ｓｇｎ（δ''(ｋ)）の値は、δ''(ｋ)≧０のときにはｓｇｎ（δ''(ｋ)）＝１となり、δ''(ｋ)＜０のときにはｓｇｎ（δ''(ｋ)）＝−１となる（なお、δ''(ｋ)＝０のときに、ｓｇｎ（δ''(ｋ)）＝０と設定してもよい）。
【０３１８】
以上のＤＭコントローラ３０の制御アルゴリズムすなわちΔ変調アルゴリズムの特性は、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムと同様に、ＤＭ信号ｕ(ｋ)を制御対象に入力した際、参照信号ｒ(ｋ)が制御対象の出力に再現されるような値として、ＤＭ信号ｕ(ｋ)を生成（算出）できるという点にある。すなわち、ＤＭコントローラ３０は、前述したＤＳＭコントローラ２４およびＳＤＭコントローラ２９と同様の制御入力φｏｐ（ｋ）を生成できるという特性を備えている。したがって、このＤＭコントローラ３０を用いる本実施形態の制御装置１によれば、第１実施形態の制御装置１と同様の効果を得ることができる。なお、ＤＭコントローラ３０の具体的なプログラムは図示しないが、ＤＳＭコントローラ２４とほぼ同様に構成される。
【０３１９】
次に、図４４および図４５を参照しながら、第７実施形態の制御装置について説明する。図４４に示すように、この第７実施形態の制御装置１は、第１実施形態の制御装置１と比べて、ＬＡＦセンサ１４がエンジン３に設けられていないとともに、Ｏ２センサ１５が第２触媒装置８ｂよりも下流側に設けられている点のみが異なっている。
【０３２０】
また、ＬＡＦセンサ１４を備えていないため、この制御装置１では、図４５に示すように、オンボード同定器２３により、Ｏ２センサ１５の出力Ｖｏｕｔおよび制御入力φｏｐ（目標空燃比ＫＣＭＤ）に基づいて、モデルパラメータａ１，ａ２，ｂ１が算出される。すなわち、このオンボード同定器２３では、前述した図５の式（８）〜（１５）に示す同定アルゴリズムにより、モデルパラメータの同定値ａ１'，ａ２'，ｂ１'が算出されるとともに、これらに前述したリミット処理を施すことにより、モデルパラメータａ１，ａ２，ｂ１が算出される。
【０３２１】
さらに、状態予測器２２により、モデルパラメータａ１，ａ２，ｂ１、Ｏ２センサ１５の出力Ｖｏｕｔおよび制御入力φｏｐに基づいて、出力偏差ＶＯ２の予測値ＰＲＥＶＯ２が算出される。すなわち、この状態予測器２２では、図４の式（６）に示す予測アルゴリズムにより、出力偏差ＶＯ２の予測値ＰＲＥＶＯ２が算出される。なお、これらの状態予測器２２およびオンボード同定器２３の演算処理の具体的なプログラムは、図示しないが、第１実施形態のものとほぼ同様に構成され、それら以外のプログラムも、第１実施形態のものと同様に構成される。
【０３２２】
以上のような本実施形態の制御装置１によれば、第１実施形態の制御装置１と同様の効果を得ることができる。特に、前述したように、図３４のステップ１９２〜１９４において、参照信号値用のゲインＫＲＤＳＭを、排気ガスをリーン側に制御する場合と、リッチ側に制御する場合とで互いに異なる値に設定し、目標空燃比ＫＣＭＤの目標値Ｖｏｐへの収束速度を変更することにより、本実施形態のようなＯ２センサ１５のみで空燃比を制御する場合においても、混合気の空燃比をリッチ側およびリーン側に変更する際、良好な触媒後排気ガス特性を確実に得ることができる。これに加えて、ＬＡＦセンサ１４を用いることなく、良好な触媒後排気ガス特性を確保できるので、その分、製造コストを削減することができる。
【０３２３】
次に、図４６を参照しながら、第８実施形態の制御装置について説明する。同図に示すように、この第８実施形態の制御装置１は、上記第７実施形態の制御装置１において、ＡＤＳＭコントローラ２０、ＰＲＩＳＭコントローラ２１およびオンボード同定器２３を、前記第４実施形態のスケジュール型ＤＳＭコントローラ２０Ａ、スケジュール型状態予測スライディングモードコントローラ２１Ａおよびパラメータスケジューラ２８に置き換えたものであり、これらのコントローラ２０Ａ，２１Ａおよびパラメータスケジューラ２８は、第４実施形態のものと同様に構成されている。この制御装置１によれば、上記第７実施形態の制御装置１と同様の効果を得ることができる。これに加えて、パラメータスケジューラ２８を用いることにより、オンボード同定器２３を用いる場合と比べて、モデルパラメータａ１，ａ２，ｂ１を、より迅速に算出することができる。これにより、制御の応答性を向上させることができ、良好な触媒後排気ガス特性をより迅速に確保することができる。
【０３２４】
なお、以上の各実施形態は、本発明の制御装置を内燃機関３の空燃比を制御するものとして構成した例であるが、本発明はこれに限らず、他の任意の制御対象を制御する制御装置に広く適用可能であることは言うまでもない。また、ＡＤＳＭコントローラ２０およびＰＲＩＳＭコントローラ２１を、実施形態のプログラムに代えて、電気回路により構成してもよい。
【０３２５】
【発明の効果】
以上のように、本発明の制御装置によれば、制御対象が位相遅れやむだ時間などが比較的大きい動特性を示す場合でも、制御対象の入出力間での制御タイミングのずれを解消することができ、それにより、制御の安定性および制御性を向上させることができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係る制御装置およびこれを適用した内燃機関の概略構成を示す図である。
【図２】劣化状態および未劣化状態の第１触媒装置を用いた場合において、ＬＡＦセンサの出力ＫＡＣＴに対する、両第１触媒装置のＨＣおよびＮＯｘの浄化率と、Ｏ２センサ１５の出力Ｖｏｕｔとをそれぞれ測定した結果の一例を示す図である。
【図３】第１実施形態の制御装置のＡＤＳＭコントローラおよびＰＲＩＳＭコントローラの構成を示すブロック図である。
【図４】状態予測器の予測アルゴリズムの数式の一例を示す図である。
【図５】オンボード同定器の同定アルゴリズムの数式の一例を示す図である。
【図６】オンボード同定器の同定アルゴリズムの数式の他の一例を示す図である。
【図７】ΔΣ変調を実行するコントローラおよびこれを備えた制御系の構成を示すブロック図である。
【図８】図７の制御系の制御結果の一例を示すタイミングチャートである。
【図９】第１実施形態のＡＤＳＭコントローラによる適応予測型ΔΣ変調制御の原理を説明するためのタイミングチャートである。
【図１０】ＡＤＳＭコントローラのうちのＤＳＭコントローラの構成を示すブロック図である。
【図１１】スライディングモード制御アルゴリズムの数式を示す図である。
【図１２】ＰＲＩＳＭコントローラのスライディングモード制御アルゴリズムの数式を示す図である。
【図１３】内燃機関の燃料噴射制御処理を示すフローチャートである。
【図１４】適応空燃比制御処理を示すフローチャートである。
【図１５】図１４の続きを示すフローチャートである。
【図１６】図１４のステップ２１における発進判定処理を示すフローチャートである。
【図１７】図１４のステップ２３におけるＰＲＩＳＭ／ＡＤＳＭ処理の実行判定処理を示すフローチャートである。
【図１８】図１４のステップ２４における同定器演算の実行判定処理を示すフローチャートである。
【図１９】図１４のステップ２５における各種パラメータの算出処理を示すフローチャートである。
【図２０】むだ時間ＣＡＴ＿ＤＥＬＡＹ，ＫＡＣＴ＿Ｄの算出に用いるテーブルの一例を示す図である。
【図２１】重みパラメータλ１の算出に用いるテーブルの一例を示す図である。
【図２２】モデルパラメータａ１，ａ２，ｂ１の値を制限するリミット値Ｘ＿ＩＤＡ２Ｌ，Ｘ＿ＩＤＢ１Ｌ，Ｘ＿ＩＤＢ１Ｈの算出に用いるテーブルの一例を示す図である。
【図２３】フィルタ次数ｎの算出に用いるテーブルの一例を示す図である。
【図２４】図１４のステップ３１における同定器の演算処理を示すフローチャートである。
【図２５】図２４のステップ９４におけるθ（ｋ）の安定化処理を示すフローチャートである。
【図２６】図２５のステップ１０１におけるａ１'＆ａ２'のリミット処理を示すフローチャートである。
【図２７】図２６の処理によりａ１'＆ａ２'の組み合わせが規制される規制範囲を示す図である。
【図２８】図２５のステップ１０２におけるｂ１'のリミット処理を示すフローチャートである。
【図２９】図１５のステップ３３の状態予測器の演算処理を示すフローチャートである。
【図３０】図１５のステップ３４の制御量Ｕｓｌの算出処理を示すフローチャートである。
【図３１】図３０のステップ１５１の予測切換関数σＰＲＥの積算値算出処理を示すフローチャートである。
【図３２】図１５のステップ３６のスライディングモード制御量ＤＫＣＭＤＳＬＤの算出処理を示すフローチャートである。
【図３３】図３２の続きを示すフローチャートである。
【図３４】図１５のステップ３７のΔΣ変調制御量ＤＫＣＭＤＤＳＭの算出処理を示すフローチャートである。
【図３５】ＫＤＳＭの算出に用いるテーブルの一例を示す図である。
【図３６】図１５のステップ３８の適応目標空燃比ＫＣＭＤＳＬＤの算出処理を示すフローチャートである。
【図３７】図１５のステップ３９の適応補正項ＦＬＡＦＡＤＰの算出処理を示すフローチャートである。
【図３８】第２実施形態の制御装置の概略構成を示すブロック図である。
【図３９】第３実施形態の制御装置の概略構成を示すブロック図である。
【図４０】第４実施形態の制御装置の概略構成を示すブロック図である。
【図４１】第４実施形態の制御装置のパラメータスケジューラにおいて、モデルパラメータの算出に用いるテーブルの一例を示す図である。
【図４２】第５実施形態の制御装置のＳＤＭコントローラの概略構成を示すブロック図である。
【図４３】第６実施形態の制御装置のＤＭコントローラの概略構成を示すブロック図である。
【図４４】第７実施形態に係る制御装置およびこれを適用した内燃機関の概略構成を示す図である。
【図４５】第７実施形態の制御装置の構成を示すブロック図である。
【図４６】第８実施形態の制御装置の構成を示すブロック図である。
【符号の説明】
１    制御装置
２    ＥＣＵ（予測値算出手段、制御入力算出手段、空燃比算出手段、運 転状態検出手段、目標空燃比算出手段、乗算手段、補正係数設定手                    段、同定手段、予測時間算出手段）
３    内燃機関
７    排気管（排気通路）
８ａ  第１触媒装置（触媒）
８ｂ  第２触媒装置（触媒）
１１    吸気管内絶対圧センサ（運転状態検出手段）
１３    クランク角センサ（運転状態検出手段）
１４    ＬＡＦセンサ（上流側空燃比センサ）
１５    酸素濃度センサ（空燃比センサ、下流側空燃比センサ）
２０    ＡＤＳＭコントローラ（制御入力算出手段）
２２    状態予測器（予測値算出手段）
２３    オンボード同定器（同定手段）
ＮＥ    エンジン回転数（運転状態を表すパラメータ）
ＰＢＡ    吸気管内絶対圧（運転状態を表すパラメータ）
ＫＡＣＴ    ＬＡＦセンサの出力（上流側空燃比センサの出力）
ＤＫＡＣＴ    ＬＡＦ出力偏差（上流側空燃比センサの出力を表す値）
ＫＣＭＤ    目標空燃比
ＤＫＣＭＤ    空燃比偏差（目標空燃比を表す値）
ＦＬＡＦＢＡＳＥ    基準値（所定値）
ＫＣＭＤＳＬＤ    適応目標空燃比（目標空燃比）
ＤＳＭＳＧＮＳ    ＤＳＭ信号値（第１の変調値）
ＫＤＳＭ    ゲイン
ＤＫＣＭＤＤＳＭ    ΔΣ変調制御量（第２の変調値）
ＫＣＭＤＳＬＤ    適応目標空燃比（目標空燃比）
Ｖｏｕｔ    酸素濃度センサの出力（下流側空燃比センサの出力、空燃比センサ の出力）
Ｖｏｐ    目標値
ＶＯ２    出力偏差（下流側空燃比センサの出力を表す値、空燃比センサの出 力を表す値）
ｄｔ    予測時間
ａ１'   モデルパラメータの同定値
ａ２'   モデルパラメータの同定値
ｂ１'   モデルパラメータの同定値
【図１】
0003904923.tif 000004
【図２】
0003904923.tif 000005
【図３】
0003904923.tif 000006
【図４】
0003904923.tif 000007
【図５】
0003904923.tif 000008
【図６】
0003904923.tif 000009
【図７】
0003904923.tif 000010
【図８】
0003904923.tif 000011
【図９】
0003904923.tif 000012
【図１０】
0003904923.tif 000013
【図１１】
0003904923.tif 000014
【図１２】
0003904923.tif 000015
【図１３】
0003904923.tif 000016
【図１４】
0003904923.tif 000017
【図１５】
0003904923.tif 000018
【図１６】
0003904923.tif 000019
【図１７】
0003904923.tif 000020
【図１８】
0003904923.tif 000021
【図１９】
0003904923.tif 000022
【図２０】
0003904923.tif 000023
【図２１】
0003904923.tif 000024
【図２２】
0003904923.tif 000025
【図２３】
0003904923.tif 000026
【図２４】
0003904923.tif 000027
【図２５】
0003904923.tif 000028
【図２６】
0003904923.tif 000029
【図２７】
0003904923.tif 000030
【図２８】
0003904923.tif 000031
【図２９】
0003904923.tif 000032
【図３０】
0003904923.tif 000033
【図３１】
0003904923.tif 000034
【図３２】
0003904923.tif 000035
【図３３】
0003904923.tif 000036
【図３４】
0003904923.tif 000037
【図３５】
0003904923.tif 000038
【図３６】
0003904923.tif 000039
【図３７】
0003904923.tif 000040
【図３８】
0003904923.tif 000041
【図３９】
0003904923.tif 000042
【図４０】
0003904923.tif 000043
【図４１】
0003904923.tif 000044
【図４２】
0003904923.tif 000045
【図４３】
0003904923.tif 000046
【図４４】
0003904923.tif 000047
【図４５】
0003904923.tif 000048
【図４６】
0003904923.tif 000049