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