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