以下、図面を参照しながら、本発明の第1実施形態に係る内燃機関の空燃比制御装置について説明する。図1は、この空燃比制御装置1およびこれを適用した内燃機関3の概略構成を示している。同図に示すように、この空燃比制御装置1は、ECU2を備えており、このECU2は、後述するように、内燃機関(以下「エンジン」という)3の運転状態に応じて、これに供給される混合気の空燃比を制御する。
このエンジン3は、図示しない車両に搭載された直列4気筒型ガソリンエンジンであり、第1〜第4の4つの気筒#1〜#4を備えている。このエンジン3の吸気管4のスロットル弁5の近傍には、例えばポテンショメータなどで構成されたスロットル弁開度センサ10が設けられている。このスロットル弁開度センサ10(運転状態パラメータ検出手段)は、スロットル弁5の開度(以下「スロットル弁開度」という)θTHを検出して、その検出信号をECU2に送る。なお、本実施形態では、このスロットル弁開度θTHは、運転状態パラメータに相当する。
さらに、吸気管4のスロットル弁5よりも下流側には、吸気管内絶対圧センサ11が設けられている。この吸気管内絶対圧センサ11(運転状態パラメータ検出手段)は、例えば半導体圧力センサなどで構成され、吸気管4内の吸気管内絶対圧PBAを検出し、その検出信号をECU2に出力する。この吸気管内絶対圧PBAは、本実施形態では、運転状態パラメータに相当する。
また、吸気管4は、インテークマニホールド4aの4つの分岐部4bを介して4つの気筒#1〜#4にそれぞれ接続されている。各分岐部4bには、各気筒の図示しない吸気ポートの上流側に、インジェクタ6が取り付けられている。各インジェクタ6は、エンジン3の運転時に、ECU2からの駆動信号によって、その開弁時間である最終燃料噴射量TOUTおよび噴射タイミングが制御される。
一方、エンジン3の本体には、例えばサーミスタなどで構成された水温センサ12が取り付けられている。水温センサ12は、エンジン3のシリンダブロック内を循環する冷却水の温度であるエンジン水温TWを検出し、その検出信号をECU2に出力する。
また、エンジン3のクランクシャフト(図示せず)には、クランク角センサ13が設けられている。このクランク角センサ13(運転状態パラメータ検出手段)は、クランクシャフトの回転に伴い、いずれもパルス信号であるCRK信号およびTDC信号をECU2に出力する。
CRK信号は、所定のクランク角(例えば30゜)ごとに1パルスが出力される。ECU2は、このCRK信号に応じ、エンジン3の回転数(以下「エンジン回転数」という)NEを算出する。このエンジン回転数NEは、本実施形態では、運転状態パラメータに相当する。また、TDC信号は、各気筒のピストン(図示せず)が吸気行程のTDC位置よりも若干、手前の所定のクランク角位置にあることを表す信号であり、所定クランク角ごとに1パルスが出力される。
一方、排気管7(排気通路)のエキゾーストマニホールド7aよりも下流側には、上流側から順に第1触媒装置8a(触媒装置、複数の触媒装置の1つ)および第2触媒装置8b(下流側触媒装置、複数の触媒装置の1つ)が間隔を存して設けられている。両触媒装置8a,8bはいずれも、NOx触媒と3元触媒を組み合わせたものであり、このNOx触媒は、図示しないが、イリジウム触媒(イリジウムを担持した炭化ケイ素ウイスカ粉末とシリカの焼成体)をハニカム構造の基材の表面に被覆し、その上にペロブスカイト型複酸化物(LaCoO3粉末とシリカの焼成体)をさらに被覆したものである。両触媒装置8a,8bは、NOx触媒による酸化還元作用により、リーンバーン運転時の排気ガス中のNOxを浄化するとともに、3元触媒の酸化還元作用により、リーンバーン運転以外の運転時の排気ガス中のCO、HCおよびNOxを浄化する。なお、両触媒装置8a,8bは、NOx触媒と3元触媒を組み合わせたものに限らず、排気ガス中のCO、HCおよびNOxを浄化できるものであればよい。例えば、両触媒装置8a,8bを、ペロブスカイト型触媒などの非金属触媒および/または3元触媒などの金属触媒で構成してもよい。
また、後述する理由により、第1触媒装置8aにおける非金属触媒および金属触媒の総担持量は、所定担持量M1(例えば8g)に設定されており、第2触媒装置8bにおける非金属触媒および金属触媒の総担持量は、所定担持量M1よりも少ない所定担持量M2(例えば0.75〜1.5g)に設定されている。さらに、第1触媒装置8aの担体の長さ(排気管7方向の長さ)は、所定長さL1(例えば容積1リットルの触媒では115mm)に設定されている。
これらの第1および第2触媒装置8a,8bの間には、酸素濃度センサ(以下「O2センサ」という)15が取り付けられている。このO2センサ15(下流側空燃比センサ)は、ジルコニアおよび白金電極などで構成され、第1触媒装置8aの下流側の排気ガス中の酸素濃度に基づく出力VoutをECU2に送る。このO2センサ15の出力Voutは、理論空燃比よりもリッチな混合気が燃焼したときには、ハイレベルの電圧値(例えば0.8V)となり、混合気がリーンのときには、ローレベルの電圧値(例えば0.2V)となるとともに、混合気が理論空燃比付近のときには、ハイレベルとローレベルの間の所定の目標値Vop(例えば0.6V)となる(図2参照)。
また、第1触媒装置8aよりも上流側のエキゾーストマニホールド7aの集合部付近には、LAFセンサ14(上流側空燃比センサ)が取り付けられている。このLAFセンサ14は、O2センサ15と同様のセンサとリニアライザなどの検出回路とを組み合わせることによって構成されており、リッチ領域からリーン領域までの広範囲な空燃比の領域において排気ガス中の酸素濃度をリニアに検出し、その酸素濃度に比例する出力KACTをECU2に送る。この出力KACTは、空燃比の逆数に比例する当量比として表される。
次に、図2を参照しながら、第1触媒装置8aの排気ガスの浄化率とO2センサ15の出力Vout(電圧値)との関係について説明する。同図は、第1触媒装置8aが、長時間の使用により浄化能力が低下した劣化状態と、浄化能力の高い未劣化状態の場合において、LAFセンサ14の出力KACTすなわちエンジン3に供給される混合気の空燃比が理論空燃比の付近で変化したときの、2つの第1触媒装置8aのHCおよびNOxの浄化率と、O2センサ15の出力Voutをそれぞれ測定した結果の一例を示している。同図において、破線で示すデータはいずれも、第1触媒装置8aが未劣化状態の場合の測定結果であり、実線で示すデータはいずれも、第1触媒装置8aが劣化状態の場合の測定結果である。また、LAFセンサ14の出力KACTが大きいほど、混合気の空燃比がよりリッチ側であることを示している。
同図に示すように、第1触媒装置8aが劣化している場合には、未劣化状態の場合と比べて、排気ガスの浄化能力が低下していることにより、LAFセンサ14の出力KACTがよりリーン側の値KACT1のときに、O2センサ15の出力Voutが目標値Vopを横切っている。一方、第1触媒装置8aは、その劣化・未劣化状態にかかわらず、O2センサ15の出力Voutが目標値Vopにあるときに、HCおよびNOxを最も効率よく浄化する特性を有している。したがって、O2センサ15の出力Voutが目標値Vopになるように、混合気の空燃比を制御することにより、第1触媒装置8aによって排気ガスを最も効率よく浄化できることが判る。このため、後述する空燃比制御では、O2センサ15の出力Voutが目標値Vopに収束するように、目標空燃比KCMDが制御される。
次に、図3を参照しながら、第1および第2触媒装置8a,8bによる排気ガスの浄化状態と、第1および第2触媒装置8a,8bにおける非金属触媒および金属触媒の総担持量との関係について説明する。同図は、上述した理由により、O2センサ15の出力Voutが目標値Vopに収束するように、目標空燃比KCMDが制御されている場合において、排気管7内の排気ガス中におけるCO、HCおよびNOxの残留量を、第1触媒装置8aの上流側、第1触媒装置8aと第2触媒装置8bとの間、および第2触媒装置8bの下流側の位置でそれぞれ測定した結果を示している。特に、COの残留量においては、実線で示す測定結果が、本実施形態の第1および第2触媒装置8a,8bを用いた場合のものであり、破線で示す測定結果は、比較のために、第2触媒装置8bにおける非金属触媒および金属触媒の総担持量を、第1触媒装置8aおける非金属触媒および金属触媒の総担持量と同一に設定した比較例のものである。
同図を参照すると、本実施形態の第1および第2触媒装置8a,8bを用いた場合、CO、HCおよびNOxの残留量は、第1触媒装置8aの上流側よりもその下流側の位置の方が、さらに、第1触媒装置8aの下流側よりも第2触媒装置8bの下流側の位置の方がそれぞれ少なくなっており、2つの触媒装置8a,8bの浄化能力が十分に発揮されていることが分かる。しかし、破線で示す比較例の測定結果においては、COの残留量は、第1触媒装置8aの上流側よりもその下流側の位置の方が少なくなっているにもかかわらず、第1触媒装置8aの下流側よりも第2触媒装置8bの下流側の位置の方が多くなっていることが分かる。このように、第2触媒装置8bとして、非金属触媒および金属触媒の総担持量が第1触媒装置8aおける非金属触媒および金属触媒の総担持量以上のものを用いると、第2触媒装置8b内において、COが再生成されてしまうという事実が実験により確認された。この事実は、第2触媒装置8bにおいて、非金属触媒または金属触媒のみが担体に担持されている場合でも、同様である。以上の理由により、本実施形態では、第2触媒装置8bにおける非金属触媒および金属触媒の総担持量は、第1触媒装置8aおける非金属触媒および金属触媒の総担持量M1よりも小さい所定担持量M2に設定されている。
さらに、ECU2には、アクセル開度センサ16、大気圧センサ17、吸気温センサ18および車速センサ19(運転状態パラメータ検出手段)などが接続されている。このアクセル開度センサ16は、車両の図示しないアクセルペダルの踏み込み量(以下「アクセル開度」という)APを検出し、その検出信号をECU2に出力する。また、大気圧センサ17、吸気温センサ18および車速センサ19はそれぞれ、大気圧PA、吸気温TAおよび車速VP(運転状態パラメータ)を検出し、その検出信号をECU2に出力する。
ECU2は、I/Oインターフェース、CPU、RAMおよびROMなどからなるマイクロコンピュータで構成されている。ECU2は、前述した各種のセンサ10〜19の出力に応じて、エンジン3の運転状態を判別するとともに、ROMに予め記憶された制御プログラムやRAMに記憶されたデータなどに従って、後述するΔΣ変調制御処理、適応スライディングモード制御処理またはマップ検索処理を実行することにより、目標空燃比KCMDを算出する。また、後述するように、この目標空燃比KCMDに基づいて、インジェクタ6の最終燃料噴射量TOUTを気筒ごとに出し、算出した最終燃料噴射量TOUTに基づいた駆動信号で、インジェクタ6を駆動することにより、混合気の空燃比を制御する。なお、本実施形態では、ECU2により、ゲイン設定手段、出力偏差算出手段、空燃比算出手段、空燃比制御手段、運転状態パラメータ検出手段、第1の空燃比算出手段、第2の空燃比算出手段、選択手段および運転モード判別手段が構成されている。
以下、ECU2により実行されるΔΣ変調制御について説明する。このΔΣ変調制御は、O2センサの出力Voutと目標値Vopとの偏差に基づき、ΔΣ変調アルゴリズムを適用した後述するΔΣ変調コントローラ40により、制御入力φop(k)(=目標空燃比KCMD)を算出し、これを制御対象に入力することにより、制御対象の出力としてのO2センサの出力Voutを目標値Vopに収束させるように制御するものである。なお、このΔΣ変調制御の具体的なプログラムの内容は後述する。
まず、図4のブロック図を参照しながら、ΔΣ変調アルゴリズムの特性について説明する。同図に示すように、このΔΣ変調アルゴリズムを適用した制御系では、まず、差分器41により、参照信号r(k)と遅延素子42で遅延されたDSM信号u(k−1)との偏差δ(k)が生成される。次に、積分器43により、偏差積分値σd(k)が、偏差δ(k)と遅延素子44で遅延された偏差積分値σd(k−1)との和の信号として生成される。
次いで、量子化器45(符号関数)により、DSM信号u(k)が、偏差積分値σd(k)を符号化した信号として生成される。そして、以上のように生成されたDSM信号u(k)が制御対象49に入力されることにより、制御対象49から出力信号y(k)が出力される。
このΔΣ変調アルゴリズムは、以下の数式(1)〜(3)で表される。
δ(k)=r(k)−u(k−1) ……(1)
σd(k)=σd(k−1)+δ(k) ……(2)
u(k)=sgn(σd(k)) ……(3)
ただし、符号関数sgn(σd(k))の値は、σd(k)≧0のときにはsgn(σd(k))=1となり、σd(k)<0のときにはsgn(σd(k))=−1となる(なお、σd(k)=0のときに、sgn(σd(k))=0と設定してもよい)。
次に、図5を参照しながら、以上のΔΣ変調アルゴリズムを適用した制御系の制御シミュレーション結果について説明する。同図に示すように、正弦波状の参照信号r(k)を制御系に入力した場合、DSM信号u(k)が矩形波状の信号として生成され、これを制御対象49に入力することにより、参照信号r(k)と異なる振幅で同じ周波数の、ノイズを有するものの全体として同様の波形の出力信号y(k)が、制御対象49から出力される。このように、ΔΣ変調アルゴリズムの特性は、制御対象49の出力信号y(k)が、参照信号r(k)に対して、異なる振幅で同じ周波数の、全体として同様の波形の信号となるように、制御対象49へのDSM信号u(k)を生成できるという点にある。言い換えれば、DSM信号u(k)を、参照信号r(k)が制御対象49の実際の出力y(k)に再現されるような値として、生成(算出)できるという点にある。
次いで、図6を参照しながら、本実施形態のDSMコントローラ40の特性について説明する。このDSMコントローラ40は、ΔΣ変調アルゴリズムの上述した特性を利用し、O2センサの出力Voutを目標値Vopに収束させるための制御入力φop(k)を生成するものである。その原理について説明すると、例えば図6に実線で示すように、O2センサの出力Voutが目標値Vopに対して揺らいでいる場合、出力Voutを目標値Vopに収束させるには、破線で示す逆位相波形の出力Vout'が制御対象49から実際に出力されるように、制御入力φop(k)を生成すればよい。ここで、O2センサの出力のサンプルデータVout(k)と目標値Vopとの偏差を出力偏差VO2(k)(=Vout(k)−Vop)とした場合、これを打ち消すような逆位相波形の出力偏差VO2'(k)は、VO2'(k)=−VO2(k)の関係が成立する値となる。よって、この出力偏差VO2'(k)が生成されるように、制御入力φop(k)を生成すればよい。したがって、このDSMコントローラ40では、以下に述べるように、出力偏差VO2(k)を打ち消すような、これと逆位相波形の出力偏差VO2'(k)が得られる出力Voutが発生するように、制御入力φop(k)が生成され、それにより、出力Voutを目標値Vopに収束させることができる。
次に、図7のブロック図を参照しながら、DSMコントローラ40について説明する。なお、本実施形態では、このDSMコントローラ40により、空燃比算出手段および第1の空燃比算出手段が構成される。また、同図において、上記図4と同じ構成については同じ符号を付すとともに、その説明は省略する。このDSMコントローラ40では、差分器48により、参照信号r(k)が、目標値Vopと制御対象49の出力y(k)(=Vout(k))との偏差(=出力偏差VO2'(k))として生成される。
また、増幅器46により、増幅DSM信号u'(k)が、量子化器45で生成したDSM信号u''(k)にゲインFを乗算した信号として生成される。次に、加算器47により、制御入力φop(k)が、増幅DSM信号u'(k)に値1を加算した信号として生成される。そして、以上のように生成した制御入力φop(k)(=目標空燃比KCMD)を制御対象49に入力することにより、目標値Vopに収束するように、Vout(k)が制御対象から出力される。本実施形態では、後述するように、制御入力φop(k)としての目標空燃比KCMDは、これをエンジン3の運転状態に応じて補正した最終燃料噴射量TOUTに基づく駆動信号として、制御対象49に入力される。また、制御対象49は、インジェクタ6を含むエンジン3の吸気系から、第1触媒装置8aを含む排気系の第1触媒装置8aの下流側までの系に相当する。
以上のDSMコントローラ40のアルゴリズムは、以下の数式(4)〜(9)で表される。
r(k)=VO2'(k)=Vop−Vout(k) ……(4)
δ(k)=r(k)−u''(k−1) ……(5)
σd(k)=σd(k−1)+δ(k) ……(6)
u''(k)=sgn(σd(k)) ……(7)
u'(k)=Fd・u''(k) ……(8)
φop(k)=1+u'(k) ……(9)
ただし、符号関数sgn(σd(k))の値は、σd(k)≧0のときにはsgn(σd(k))=1となり、σd(k)<0のときにはsgn(σd(k))=−1となる(なお、σd(k)=0のときに、sgn(σd(k))=0と設定してもよい)。
次に、図8を参照しながら、以上のDSMコントローラ40の制御シミュレーション結果について説明する。同図は、正弦波状の外乱を制御対象49に入力したときのシミュレーション結果の一例を示しており、出力Voutの波形において、実線で示す曲線は、DSMコントローラ40によるΔΣ変調制御を実行したときのものであり、1点鎖線で示す曲線はΔΣ変調制御を実行していないときのものである。両者を参照すると、ΔΣ変調制御を実行しないときの出力Voutは、目標値Vopに収束することなく、外乱を反映した状態で揺らいでいるのに対して、ΔΣ変調制御を実行したときの出力Voutが、目標値Vopに収束していることが判る。このように、DSMコントローラ40によるΔΣ変調制御により、出力Voutを目標値Vopに収束させることができることが確認できた。
次いで、ECU2により実行される適応スライディングモード制御(オンボード同定型スライディングモード制御)について説明する。この適応スライディングモード制御は、LAFセンサ14の出力KACT、O2センサの出力Voutおよび目標値Vopに応じて、後述するスライディングモードコントローラ52aを用いた制御により、制御入力としての目標空燃比KCMDを算出するものである。この適応スライディングモード制御のプログラムについては、後述する。
以下、図9のブロック図を参照しながら、適応スライディングモード制御を実行するPRISMコントローラ50について説明する。このPRISMコントローラ50のアルゴリズムは、その説明はここでは省略するが、後述する図17のPRISMコントローラ21のアルゴリズムと同様に構成されている。PRISMコントローラ50は、基準値設定部51や、制御量生成部52、リミッタ53、差分器54,55、加算器56などを備えている。
このPRISMコントローラ50では、基準値設定部51により、エンジン3の空燃比に対する基準値FLAFBASEが生成され、差分器54により、LAFセンサ14の出力KACTと基準値FLAFBASEとの偏差kactが算出される。また、差分器55により、O2センサの出力Voutと目標値Vopとの出力偏差VO2が算出される。
また、制御量生成部52により、出力偏差VO2および偏差kactに応じて、出力Voutを目標値Vopに収束させるための制御量Uslが生成される。この制御量生成部52は、スライディングモードコントローラ52a、オンボード同定器52b、および状態予測器52cで構成されている。これらのスライディングモードコントローラ52a、オンボード同定器52bおよび状態予測器52cのアルゴリズムはそれぞれ、その説明はここでは省略するが、後述する図17のスライディングモードコントローラ25、オンボード同定器23および状態予測器22のアルゴリズムと同様に構成されている。
さらに、リミッタ55により、制御量Uslにリミット処理を施すことによって、制御量kcmdが生成される。そして、加算器56により、制御量kcmdに基準値FLAFBASEを加算することによって、目標空燃比KCMDが生成される。
以下、ECU2により実行される燃料噴射量の算出処理について、図10および図11を参照しながら説明する。両図は、この制御処理のメインルーチンを示しており、本処理は、TDC信号の入力に同期して割り込み実行される。後述するように、この処理では、ΔΣ変調制御処理、適応スライディングモード制御処理、またはマップ検索処理のうちのいずれか1つにより算出された目標空燃比KCMDを用いることによって、燃料噴射量TOUTが気筒ごとに算出される。
まず、ステップ1(図では「S1」と略す。以下同じ)において、前述した各種のセンサ10〜19の出力を読み込む。
次に、ステップ2に進み、基本燃料噴射量Timを算出する。この処理では、エンジン回転数NEエンジン回転数および吸気管内絶対圧PBAに応じて、図示しないマップを検索することにより、基本燃料噴射量Timを算出する。
次いで、ステップ3に進み、総補正係数KTOTALを算出する。この総補正係数KTOTALは、各種の運転状態パラメータ(例えば吸気温TAや、大気圧PA、エンジン水温TW、アクセル開度APなど)に応じて、各種のテーブルやマップを検索することにより算出した各種の補正係数を乗算することにより、算出される。
次に、ステップ4に進み、後述する適応スライディングモード制御によるKCMD算出処理で算出された目標空燃比KCMDを使用する条件が成立しているか否かを判別する。言い換えれば、適応スライディングモード制御により空燃比制御を行うべき運転モードにあるか否かを判別する。この判別では、以下の(f1)〜(f6)の条件がいずれも成立しているときに、適応スライディングモード制御による目標空燃比KCMDの使用条件(選択条件)が成立していると判別される。
(f1)LAFセンサ14およびO2センサ15がいずれも活性化していること。
(f2)エンジン3がリーンバーン運転中でないこと。
(f3)スロットル弁5が全開状態でないこと。
(f4)点火時期の遅角制御中でないこと。
(f5)フューエルカット運転中でないこと。
(f6)エンジン回転数NEおよび吸気管内絶対圧PBAがいずれも、所定の適応スライディングモード制御用の範囲内の値であること。
ステップ4の判別結果がYESで、適応スライディングモード制御による目標空燃比KCMDの上記使用条件が成立しているときには、適応スライディングモード制御により空燃比制御を行うべき運転モードにあるとして、ステップ5に進み、適応スライディングモード制御によるKCMD算出処理で算出された目標空燃比KCMDを読み込む。
図12は、この適応スライディングモード制御によるKCMD算出処理を示しており、この処理では、ステップ20において、目標空燃比KCMDが算出される。このステップ20の具体的な内容の説明は省略するが、後述する図26,27のステップ120〜139(ただしステップ137を除く)と同様の処理が実行される。
図10に戻り、ステップ4の判別結果がNOのとき、すなわち適応スライディングモード制御による目標空燃比KCMDの上記使用条件が不成立のときには、ステップ6に進み、後述するΔΣ変調制御によるKCMD算出処理で算出された目標空燃比KCMDを使用する条件が成立しているか否かを判別する。言い換えれば、ΔΣ変調制御により空燃比制御を行うべき運転モードにあるか否かを判別する。この判別では、以下の(f7)〜(f13)の条件がいずれも成立しているときに、ΔΣ変調制御による目標空燃比KCMDの使用条件(選択条件)が成立していると判別される。
(f7)エンジン3がリーンバーン運転中でないこと。
(f8)LAFセンサ14およびO2センサ15がいずれも活性化していること。
(f9)スロットル弁5が全開状態でないこと。
(f10)フューエルカット運転中でないこと。
(f12)点火時期の遅角制御中でないこと。
(f13)エンジン回転数NEおよび吸気管内絶対圧PBAがいずれも、所定のΔΣ変調制御用の範囲内の値であること(例えば極低負荷の運転モード内の値であること)。
ステップ6の判別結果がYESで、ΔΣ変調制御による目標空燃比KCMDの上記使用条件が成立しているときには、ΔΣ変調制御により空燃比制御を行うべき運転モードにあるとして、ステップ7に進み、図13に示すΔΣ変調制御によるKCMD算出処理で算出された目標空燃比KCMDを読み込む。このΔΣ変調制御によるKCMD算出処理の具体的な内容については、後述する。
一方、ステップ6の判別結果がNOで、ΔΣ変調制御による目標空燃比KCMDの上記使用条件が不成立のときには、ステップ8に進み、エンジン回転数NEおよび吸気管内絶対圧PBAに応じて、図示しないマップを検索することにより、目標空燃比KCMDを算出する。
以上のステップ5,7または8に続く図11のステップ9では、オブザーバフィードバック補正係数#nKLAFを気筒ごとに算出する。このオブザーバフィードバック補正係数#nKLAFは、気筒ごとの実際の空燃比のばらつきを補正するためのものであり、具体的には、オブザーバによりLAFセンサ14の出力KACTから気筒ごとの実際の空燃比を推定し、これらの推定した空燃比に応じて、PID制御により算出される。なお、このオブザーバフィードバック補正係数#nKLAFの記号#nは、気筒の番号#1〜#4を表すものであり、これは、後述する要求燃料噴射量#nTCYLおよび最終燃料噴射量#nTOUTにおいても同様である。
次いで、ステップ10に進み、フィードバック補正係数KFBを算出する。このフィードバック補正係数KFBは、具体的には、以下のように算出される。すなわち、LAFセンサ14の出力KACTと目標空燃比KCMDとの偏差に応じて、PID制御によりフィードバック係数KLAFを算出する。また、図示しないSelf Tuning Regulator 型の適応コントローラによりフィードバック補正係数KSTRを算出し、これを目標空燃比KCMDで除算することにより、フィードバック補正係数kstrを算出する。そして、エンジン3の運転状態に応じて、これらの2つのフィードバック係数KLAFおよびフィードバック補正係数kstrの一方を、フィードバック補正係数KFBとして設定する。
次いで、ステップ11に進み、補正目標空燃比KCMDMを算出する。この補正目標空燃比KCMDMは、空燃比A/Fの変化による充填効率の変化を補償するためのものであり、前述したステップ5,7または8のいずれかで算出した目標空燃比KCMDに応じて、図示しないテーブルを検索することにより算出される。
次に、ステップ12に進み、以上のように算出した基本燃料噴射量Tim、総補正係数KTOTAL、オブザーバフィードバック補正係数#nKLAF、フィードバック補正係数KFB、および補正目標空燃比KCMDMを用い、下式(10)により、気筒ごとの要求燃料噴射量#nTCYLを算出する。
#nTCYL=Tim・KTOTAL・KCMDM・KFB・#nKLAF
……(10)
次に、ステップ13に進み、要求燃料噴射量#nTCYLを付着補正することにより、最終燃料噴射量#nTOUTを算出する。この最終燃料噴射量#nTOUTは、具体的には、今回の燃焼サイクルでインジェクタ6から噴射された燃料が燃焼室の内壁面に付着する割合などを、運転状態に応じて算出し、そのように算出した割合に基づいて、要求燃料噴射量#nTCYLを補正することにより、算出される。
次いで、ステップ14に進み、以上のように算出した最終燃料噴射量#nTOUTに基づく駆動信号を、対応する気筒のインジェクタ6に出力した後、本処理を終了する。
次に、図13および図14を参照しながら、前述したΔΣ変調制御によるKCMD算出処理について説明する。この処理は、図示しないプログラムタイマ処理により、所定の周期(例えば30〜60msec)で実行される。
この処理では、まず、ステップ30において、O2センサの出力VoutのサンプルデータVOUT(=Vout(k))を読み込む。次いで、ステップ31に進み、RAMに記憶されているDSM信号値の今回値SGNSIGMA[0](=u''(k))を、前回値SGNSIGMA[1](=u''(k−1))に設定する。
次に、ステップ32に進み、RAMに記憶されている偏差積分値の今回値SIGMA[0](=σd(k))を、前回値SIGMA[1](=σd(k−1))に設定する。
次いで、ステップ33に進み、目標値VO2TARGET(=Vop)からステップ30で読み込んだサンプルデータVOUTを減算した値を、出力偏差VO2R( =VO2'(k)=r(k))として設定する。この処理は、前記式(4)の内容に相当する。
次に、ステップ34に進み、出力偏差VO2RからDSM信号値の前回値SGNSIGMA[1]を減算した値を、偏差DELTA(=δ(k))として設定する。この処理は、前記式(5)の内容に相当する。
次いで、ステップ35に進み、偏差積分値の前回値SIGMA[1]に偏差DELTAを加算した値を、偏差積分値の今回値SIGMA[0]として設定する。この処理は、前記式(6)の内容に相当する。
次に、ステップ36に進み、ステップ35で算出された偏差積分値の今回値SIGMA[0]が「0」以上であるか否かを判別する。この判別結果がYESのときには、DSM信号値の今回値SGNSIGMA[0]を「1」に設定する(ステップ37)。一方、この判別結果がNOのときには、DSM信号値の今回値SGNSIGMA[0]を「−1」に設定する(ステップ38)。以上のステップ36〜38の処理が、前記式(7)の内容に相当する。
これらのステップ37またはステップ38に続くステップ39では、前記ステップ2で算出した基本燃料噴射量Timに応じて、図14に示すテーブルを検索することにより、ゲインFDSM(=Fd)を算出する。このテーブルでは、ゲインFDSMは、基本燃料噴射量Timが小さいほど、すなわちエンジン3の運転負荷が低いほど、より大きい値に設定されている。これは、エンジン3の運転負荷が低いほど、排気ガスボリュームが低下し、O2センサの出力Voutの応答性が低下するので、それを補償するためである。なお、ゲインFDSMの算出に用いるテーブルは、ゲインFDSMが基本燃料噴射量Timに応じて設定されている上記テーブルに限らず、エンジン3の運転負荷を表すパラメータ(例えば排気ガスボリュームAB_SV)に応じてゲインFDSMが予め設定されているものであればよい。また、触媒装置8a,8bの劣化判別器が設けられている場合には、この劣化判別器で判別された触媒装置8a,8bの劣化度合が大きいほど、ゲインFDSMをより小さい値に補正するようにしてもよい。
次に、ステップ40に進み、DSM信号値の今回値SGNSIGMA[0]にゲインFDSMを乗算した値を、目標空燃比KCMDの増幅中間値DKCMDA(=u'(k))として設定する。これらのステップ39,40の処理が、前記式(8)の内容に相当する。
次いで、ステップ41に進み、増幅中間値DKCMDAに値1を加算した値を、目標空燃比KCMD(=φop(k))に設定した後、本処理を終了する。この処理は、前記式(9)の内容に相当する。
以上のように、本実施形態の空燃比制御装置1によれば、エンジン3の運転状態に応じて、目標空燃比KCMDの算出処理が、適応スライディングモード制御処理、ΔΣ変調制御処理およびマップ検索処理のいずれか1つに切り換えられる。したがって、いずれかの処理で目標空燃比KCMDを算出すれば、目標値Vopに対する出力Voutの収束性を最も良好に得られるかを、エンジン3の様々な運転モードに対して、実験などにより予め決定しておくことによって、より良好な触媒後排気ガス特性を確保することができる。
また、ΔΣ変調制御による目標空燃比KCMDの使用条件が成立しているとき、例えばアイドル運転モードなどの極低負荷運転モードのときには、目標空燃比KCMDが、目標値VopとO2センサの出力Voutとの出力偏差VO2'(k)に応じて、ΔΣ変調制御処理により、算出される。これにより、出力偏差VO2(k)を打ち消すような、出力偏差VO2(k)と逆位相波形の偏差が得られる出力Voutが発生するように、混合気の目標空燃比KCMDを算出することができる。そして、このように算出した目標空燃比KCMDに基づいて、最終燃料噴射量TOUTを算出することにより、これを出力Voutが目標値Vopに収束するような値として算出することができる。それにより、目標空燃比KCMDの混合気がエンジン3に供給された際に、応答遅れやむだ時間を生じる排気ガスの空燃比、すなわちO2センサの出力Voutを、目標値Vopに対して、ばらつきを生じることなく、高い精度で迅速に収束させることができる。同じ理由により、極低負荷運転モードなどの、排気ガスボリュームが低下し、O2センサの出力Voutの応答遅れやむだ時間が大きくなるときでも、O2センサの出力Voutを、目標値Vopに対して、ばらつきを生じることなく、高い精度で迅速に収束させることができる。以上のように、O2センサの出力Voutを、目標値Vopに高精度で迅速に収束させることができることにより、前述したように、第1触媒装置8aによって排気ガスを最も効率よく浄化でき、したがって、極めて良好な触媒後排気ガス特性を得ることができる。
また、ΔΣ変調制御処理において、目標空燃比KCMDが、DSM信号値の今回値SGNSIGMA[0]にゲインFDSMを乗算した値に基づいて算出されるとともに、このゲインFDSMが要求燃料噴射量TCYLに応じて設定されるので、エンジン3の運転状態の変化に伴い、排気ガスの空燃比の応答状態が変化した場合でも、それに応じて設定されたゲインFDSMを用いることによって、適切な混合気の目標空燃比KCMDを生成することができ、制御の収束性および高い応答性を両立させることができる。
なお、DSMコントローラ40を、実施形態のプログラムに代えて、電気回路により構成してもよい。
また、上記第1実施形態では、ΔΣ変調アルゴリズムを用いることにより、目標空燃比KCMDを算出(生成)するようにしたが、これに代えて、ΣΔ変調アルゴリズムを用いることにより、目標空燃比KCMDを算出するようにしてもよい。以下、図15のブロック図を参照しながら、ΣΔ変調アルゴリズムの特性について説明する。
同図に示すように、このΣΔ変調アルゴリズムを適用した制御系では、まず、積分器60により、参照信号積分値σdr(k)が、参照信号r(k)と遅延素子61で遅延された参照信号積分値σdr(k−1)との和の信号として生成される。一方、積分器63により、SDM信号積分値σdu(k)が、遅延素子64で遅延されたSDM信号積分値σdu(k−1)と遅延素子65で遅延されたSDM信号u(k−1)との和の信号として生成される。そして、差分器62により、参照信号積分値σdr(k−1)とSDM信号積分値σdu(k)との偏差δ'(k)が生成される。
次いで、量子化器66(符号関数)により、SDM信号u(k)が、偏差δ'(k)を符号化した信号として生成される。そして、以上のように生成されたSDM信号u(k)が制御対象49に入力されることにより、制御対象49から出力信号y(k)が出力される。
このΣΔ変調アルゴリズムは、以下の数式(11)〜(14)で表される。
σdr(k)=r(k)+σdr(k−1) ……(11)
σdu(k)=σdu(k−1)+u(k−1) ……(12)
δ'(k) =σdr(k)−σdu(k) ……(13)
u(k)=sgn(δ'(k)) ……(14)
ただし、符号関数sgn(δ'(k))の値は、δ'(k)≧0のときにはsgn(δ'(k))=1となり、δ'(k)<0のときにはsgn(δ'(k))=−1となる(なお、δ'(k)=0のときに、sgn(δ'(k))=0と設定してもよい)。
以上のΣΔ変調アルゴリズムは、図示しないが、前述したΔΣ変調アルゴリズムと同様に、制御対象49の出力信号y(k)が、参照信号r(k)に対して、異なる振幅で同じ周波数の、全体として同様の波形の信号となるように、制御対象49への制御入力としてのSDM信号u(k)を生成できるという特性を備えている。したがって、このようなΣΔ変調アルゴリズムの特性を利用したコントローラにより、目標空燃比KCMDを算出することによって、ΔΣ変調アルゴリズムを用いた前記第1実施形態の場合と同様の効果を得ることができる。
さらに、第1実施形態のΔΣ変調アルゴリズムに代えて、Δ変調アルゴリズムを用いることにより、目標空燃比KCMDを算出するようにしてもよい。以下、図16のブロック図を参照しながら、Δ変調アルゴリズムの特性について説明する。
同図に示すように、このΔ変調アルゴリズムでは、積分器70により、DM信号積分値σdu(k)が、遅延素子71で遅延されたDM信号積分値σdu(k−1)と、遅延素子74で遅延されたDM信号u(k−1)との和の信号として生成される。そして、差分器72により、参照信号r(k)とDM信号積分値σdu(k)との偏差信号δ''(k)が生成される。
次いで、量子化器73(符号関数)により、DM信号u(k)が、この偏差信号δ''(k)を符号化した値として生成される。そして、以上のように生成されたSDM信号u(k)が制御対象49に入力されることにより、制御対象49から出力信号y(k)が出力される。
以上のΔ変調アルゴリズムは、以下の数式(15)〜(17)で表される。
σdu(k)=σdu(k−1)+u(k−1) ……(15)
δ''(k)=r(k)−σdu(k) ……(16)
u(k)=sgn(δ''(k)) ……(17)
ただし、符号関数sgn(δ''(k))の値は、δ''(k)≧0のときにはsgn(δ''(k))=1となり、δ''(k)<0のときにはsgn(δ''(k))=−1となる(なお、δ''(k)=0のときに、sgn(δ''(k))=0と設定してもよい)。
以上のΔ変調アルゴリズムは、図示しないが、前述したΔΣ変調アルゴリズムと同様に、制御対象49の出力信号y(k)が、参照信号r(k)に対して、異なる振幅で同じ周波数の、全体として同様の波形の信号となるように、制御対象49への制御入力としてのDM信号u(k)を生成できるという特性を備えている。したがって、このようなΔ変調アルゴリズムの特性を利用したコントローラにより、目標空燃比KCMDを算出することによって、ΔΣ変調アルゴリズムを用いた前記第1実施形態の場合と同様の効果を得ることができる。
次に、本発明の第2実施形態に係る内燃機関の空燃比制御装置について説明する。この空燃比制御装置1も、前述した第1実施形態の空燃比制御装置1と同様に、内燃機関の空燃比を制御するものであり、その概略構成は、図1に示すものと同様に構成されている。
すなわち、この空燃比制御装置1も、マイクロコンピュータで構成されたECU2を備えている。このECU2は、前述した各種のセンサ10〜19の出力に応じて、エンジン3の運転状態を判別するとともに、ROMに予め記憶された制御プログラムやRAMに記憶されたデータなどに従って、後述する適応空燃比制御処理またはマップ検索処理を実行することにより、目標空燃比KCMDを算出するとともに、混合気の空燃比を制御する。なお、本実施形態では、ECU2により、ゲイン設定手段、予測値算出手段、同定手段、モデルパラメータ設定手段、出力偏差算出手段、空燃比制御手段、空燃比算出手段、運転状態パラメータ検出手段、第1の空燃比制御手段、第2の空燃比制御手段、選択手段、運転モード判別手段、第1の空燃比算出手段、第2の空燃比算出手段が構成されている。
図17に示すように、この空燃比制御装置1は、目標空燃比KCMDを算出するADSMコントローラ20およびPRISMコントローラ21を備えており、両コントローラ20,21はいずれも、具体的には、ECU2により構成されている。
以下、ADSMコントローラ20について説明する。このADSMコントローラ20は、以下に述べる適応予測型ΔΣ変調制御(Adaptive prediction Delta Sigma Modulation Control:以下「ADSM」という)処理の制御アルゴリズムにより、O2センサ15の出力Voutを目標値Vopに収束させるための目標空燃比KCMDを算出するものであり、状態予測器22、オンボード同定器23およびDSMコントローラ24により構成されている。なお、このADSM処理の具体的なプログラムについては、後述する。
まず、状態予測器22(予測値算出手段)について説明する。この状態予測器22は、以下に述べる予測アルゴリズムにより、出力偏差VO2の予測値PREVO2を予測(算出)するものである。本実施形態では、制御対象への制御入力を混合気の目標空燃比KCMDとし、制御対象の出力をO2センサ15の出力Voutとし、インジェクタ6を含むエンジン3の吸気系から、第1触媒装置8aを含む排気系の第1触媒装置8aの下流側のO2センサ15までの系を、制御対象と見なすとともに、この制御対象を、下式(18)に示すように、離散時間系モデルであるARXモデル(auto-regressive model with exogeneous input:外部入力を持つ自己回帰モデル)としてモデル化する。
VO2(k)=a1・VO2(k-1)+a2・VO2(k-2)+b1・DKCMD(k-dt) ……(18)
ここで、VO2は、O2センサ15の出力Voutと前述した目標値Vopとの偏差(Vout−Vop)である出力偏差を表し、DKCMDは、目標空燃比KCMD(=φop)と基準値FLAFBASEとの偏差(KCMD−FLAFBASE)である空燃比偏差を表し、記号kは、各データのサンプリングサイクルの順番を表している。この基準値FLAFBASEは、所定の一定値に設定される。また、a1,a2,b1はモデルパラメータを表しており、オンボード同定器23により、後述するように逐次同定される。
さらに、上記式(18)のdtは、目標空燃比KCMDの混合気がインジェクタ6により吸気系に供給されてから、O2センサ15の出力Voutに反映されるまでの予測時間を表しており、下式(19)のように定義される。
dt=d+d'+dd ……(19)
ここで、dは、LAFセンサ14からO2センサ15までの排気系のむだ時間を、d'は、インジェクタ6からLAFセンサ14までの空燃比操作系のむだ時間を、ddは、排気系と空燃比操作系との間の位相遅れ時間をそれぞれ表している(なお、後述する適応空燃比制御処理の制御プログラムでは、ADSM処理とPRISM処理とに切り換えて目標空燃比KCMDを算出する処理を行うため、位相遅れ時間dd=0に設定されている)。
以上のように、制御対象モデルを、出力偏差VO2の時系列データおよび空燃比偏差DKCMDで構成した理由は以下による。すなわち、一般に、制御対象モデルでは、制御対象の入出力と所定値との偏差を、入出力を表す変数として定義した場合の方が、入出力の絶対値を変数として定義した場合よりも、モデルパラメータをより正確に同定または定義できることで、制御対象モデルの動特性を制御対象の実際の動特性に適合させることができるという事実が知られている。したがって、本実施形態の空燃比制御装置1のように、制御対象モデルを、出力偏差VO2の時系列データおよび空燃比偏差DKCMDで構成することにより、O2センサ15の出力Voutおよび目標空燃比KCMDの絶対値を変数とする場合と比べて、制御対象の実際の動特性に対する制御対象モデルの動特性の適合性を向上させることができ、それにより予測値PREVO2の算出精度を向上させることができる。
また、予測値PREVO2は、目標空燃比KCMDの混合気が吸気系に供給されてから予測時間dtが経過した後の出力偏差VO2(k+dt)を予測した値であり、上記式(18)に基づき、予測値PREVO2の算出式を導出すると、下式(20)が得られる。
PREVO2(k)≒VO2(k+dt)
=a1・VO2(k+dt-1)+a2・VO2(k+dt-2)+b1・DKCMD(k) ……(20)
この式(20)では、出力偏差VO2(k)の未来値に相当するVO2(k+dt−1),VO2(k+dt−2)の算出が必要となり、実際にプログラム化するのは困難である。そのため、マトリクスA,Bを、モデルパラメータa1,a2,b1を用いて図18に示す式(21),(22)のように定義するとともに、上式(20)の漸化式を繰り返し用いることにより、上式(20)を変形すると、図18に示す式(23)が得られる。予測アルゴリズムすなわち予測値PREVO2の算出式として、この式(23)を用いた場合、予測値PREVO2が、出力偏差VO2および空燃比偏差DKCMDにより算出される。
次に、LAF出力偏差DKACTを、LAFセンサ14の出力KACT(=φin)と基準値FLAFBASEとの偏差(KACT−FLAFBASE)として定義すると、DKACT(k)=DKCMD(k−d')の関係が成立するので、この関係を図18の式(23)に適用すると、図18に示す式(24)が得られる。
以上の式(23)または式(24)により算出される予測値PREVO2を用い、後述するように目標空燃比KCMDを算出することによって、制御対象の入出力間の応答遅れやむだ時間を適切に補償しながら、目標空燃比KCMDを算出することができる。特に、予測アルゴリズムとして、上記式(24)を用いた場合、予測値PREVO2が、出力偏差VO2、LAF出力偏差DKACTおよび空燃比偏差DKCMDにより算出されるので、第1触媒装置8aに実際に供給される排気ガスの空燃比の状態が反映された値として、予測値PREVO2を算出でき、その算出精度すなわち予測精度を上記式(23)を用いた場合よりも向上させることができる。また、式(24)を用いた場合において、d'≦1と見なせるときには、空燃比偏差DKCMDを用いることなく、出力偏差VO2およびLAF出力偏差DKACTのみにより、予測値PREVO2を算出できる。本実施形態では、LAFセンサ14がエンジン3に設けられているので、予測アルゴリズムとして上記式(24)を採用する。
なお、前述した式(18)の制御対象モデルは、DKACT(k)=DKCMD(k−d')の関係を適用することにより、出力偏差VO2およびLAF出力偏差DKACTを変数とするモデルとして定義することも可能である。
次に、オンボード同定器23(同定手段)について説明する。このオンボード同定器23は、以下に述べる逐次型同定アルゴリズムにより、前述した式(18)のモデルパラメータa1,a2,b1を同定(算出)するものである。具体的には、図19に示す式(25),(26)により、モデルパラメータのベクトルθ(k)を算出する。同図の式(25)において、KP(k)は、ゲイン係数のベクトルであり、ide_f(k)は同定誤差フィルタ値である。また、式(26)におけるθ(k)Tは、θ(k)の転置行列を表し、a1'(k)、a2'(k)およびb1'(k)は、後述するリミット処理を施す前のモデルパラメータを表している。なお、以下の説明では、「ベクトル」という表記を適宜、省略する。
上記式(25)の同定誤差フィルタ値ide_f(k)は、図19に示す式(28)〜(30)により算出される同定誤差ide(k)に、同図の式(27)に示す移動平均フィルタリング処理を施した値である。図19の式(27)のnは、移動平均フィルタリング処理のフィルタ次数(1以上の整数)を表しており、式(29)のVO2HAT(k)は、出力偏差VO2の同定値を表している。
この同定誤差フィルタ値ide_f(k)を用いる理由は以下による。すなわち、本実施形態の制御対象は、目標空燃比KCMDを制御入力とし、O2センサ15の出力Voutを制御対象の出力とするものであり、その周波数特性としてはローパス特性を有している。このようなローパス特性を有する制御対象では、オンボード同定器23の同定アルゴリズム、具体的には後述する重み付き最小2乗法アルゴリズムの周波数重み特性に起因して、制御対象の高周波特性が強調された状態で、モデルパラメータが同定されるため、制御対象モデルのゲイン特性が制御対象の実際のゲイン特性よりも低くなる傾向を示す。その結果、空燃比制御装置1によりADSM処理またはPRISM処理が実行された際、オーバーゲイン状態になることで、制御系が発散状態になり、不安定になる可能性がある。
したがって、本実施形態では、重み付き最小2乗法アルゴリズムの周波数重み特性を適切に補正し、制御対象モデルのゲイン特性を、制御対象の実際のゲイン特性に一致させるために、上記同定誤差ide(k)に移動平均フィルタリング処理を施した同定誤差フィルタ値ide_f(k)を用いるとともに、後述するように、移動平均フィルタリング処理のフィルタ次数nを、排気ガスボリュームAB_SVに応じて設定している。
さらに、前述した図19の式(25)のゲイン係数のベクトルKP(k)は、図19の式(31)により算出される。この式(31)のP(k)は、図19の式(32)で定義される3次の正方行列である。
以上のような同定アルゴリズムでは、式(32)の重みパラメータλ1、λ2の設定により、以下の4つの同定アルゴリズムのうちの1つが選択される。
すなわち、
λ1=1,λ2=0 ;固定ゲインアルゴリズム
λ1=1,λ2=1 ;最小2乗法アルゴリズム
λ1=1,λ2=λ ;漸減ゲインアルゴリズム
λ1=λ,λ2=1 ;重み付き最小2乗法アルゴリズム
ただし、λは、0<λ<1に設定される所定値。
本実施形態では、これらの4つの同定アルゴリズムのうちの重み付き最小2乗法アルゴリズムを採用する。これは、重みパラメータλ1の値をエンジン3の運転状態、具体的には排気ガスボリュームAB_SVに応じて設定することにより、同定精度と、モデルパラメータの最適値への収束速度とを適切に設定できることによる。例えば、低負荷運転モードのときには、それに応じて重みパラメータλ1の値を値1に近い値に設定することで、すなわち最小2乗法アルゴリズムに近いアルゴリズムに設定することで、低負荷時におけるむだ時間および応答遅れの増大により制御性が低下する(入出力の変動量が大きくなる)ときにも、モデルパラメータの変動を抑制することができ、良好な同定精度を確保できるとともに、高負荷運転モードのときには、それに応じて重みパラメータλ1の値を低負荷運転状態のときよりも小さい値に設定することにより、モデルパラメータを迅速に最適値に収束させることができる。以上のように、重みパラメータλ1の値を排気ガスボリュームAB_SVに応じて設定することにより、同定精度と、モデルパラメータの最適値への収束速度とを適切に設定することができ、それにより、触媒後排気ガス特性を向上させることができる。
以上の式(25)〜(32)の同定アルゴリズムにおいて、前述したDKACT(k)=DKCMD(k−d')の関係を適用すると、図20に示す式(33)〜(40)の同定アルゴリズムが得られる。本実施形態では、LAFセンサ14がエンジン3に設けられているので、これらの式(33)〜(40)を用いる。これらの式(33)〜(40)を用いた場合、前述した理由により、モデルパラメータを、第1触媒装置8aに実際に供給される排気ガスの空燃比の状態がより反映された値として同定することができ、それにより、上記式(25)〜(32)の同定アルゴリズムを用いた場合よりも、モデルパラメータの同定精度を向上させることができる。
また、このオンボード同定器23では、以上の同定アルゴリズムにより算出されたモデルパラメータa1'(k)、a2'(k)およびb1'(k)に、後述するリミット処理を施すことにより、モデルパラメータa1(k)、a2(k)およびb1(k)が算出される。さらに、前述した状態予測器22では、このようにリミット処理を施した後のモデルパラメータa1(k)、a2(k)およびb1(k)に基づき、予測値PREVO2が算出される。
次に、DSMコントローラ24(空燃比算出手段、第1の空燃比算出手段)について説明する。このDSMコントローラ24は、ΔΣ変調アルゴリズム(前記式(1)〜(3))を応用した制御アルゴリズムにより、状態予測器22で算出された予測値PREVO2に基づき、制御入力φop(k)(=目標空燃比KCMD)を生成(算出)するとともに、これを制御対象に入力することにより、制御対象の出力としてのO2センサ15の出力Voutを目標値Vopに収束させるように制御するものである。ΔΣ変調アルゴリズムの特性については、第1実施形態ですでに述べたので、ここでは説明は省略する。
図21を参照しながら、このDSMコントローラ24の原理について説明する。例えば同図に1点鎖線で示すように、出力偏差VO2が値0に対して揺らいでいる場合(すなわち、O2センサ15の出力Voutが目標値Vopに対して揺らいでいる場合)、出力偏差VO2を値0に収束させる(すなわち出力Voutを目標値Vopに収束させる)には、第1実施形態で述べたように、図21に破線で示す、出力偏差VO2を打ち消すような逆位相波形の出力偏差VO2*が生じるように、制御入力φop(k)を生成すればよい。
しかし、前述したように、本実施形態のような制御対象では、制御入力φop(k)としての目標空燃比KCMDが制御対象に入力されてからO2センサ15の出力Voutに反映されるまでに、予測時間dt分の時間遅れが発生するため、現在の出力偏差VO2に基づいて、制御入力φop(k)を算出した場合の出力偏差VO2#は、図21に実線で示すように、出力偏差VO2*に対して遅れを生じ、それにより、制御タイミングのずれが生じてしまう。したがって、これを補償するために、本実施形態のADSMコントローラ20におけるDSMコントローラ24では、出力偏差VO2の予測値PREVO2を用いることにより、制御入力φop(k)が、制御タイミングのずれを生じることなく、現在の出力偏差VO2を打ち消すような出力偏差(逆位相波形の出力偏差VO2*と同様の出力偏差)を生じさせる信号として生成される。
具体的には、このDSMコントローラ24では、図22に示すように、反転増幅器24aにより、参照信号r(k)が、値−1、参照信号用のゲインGdおよび予測値PREVO2(k)を互いに乗算した信号として生成される。次に、差分器24bにより、この参照信号r(k)と遅延素子24cで遅延されたDSM信号u''(k−1)との偏差として偏差信号δ(k)が生成される。
次いで、積分器24dにより、偏差積分値σd(k)が、偏差信号δ(k)と遅延素子24eで遅延された偏差積分値σd(k−1)との和の信号として生成され、次に、量子化器24f(符号関数)により、DSM信号u''(k)が、この偏差積分値σd(k)を符号化した値として生成される。そして、増幅器24gにより、増幅DSM信号u(k)がDSM信号u''(k)を所定のゲインFdで増幅した値として生成され、次に、加算器24hにより、この増幅DSM信号u(k)を所定の基準値FLAFBASEに加算した値として、制御入力φop(k)が生成される。
以上のDSMコントローラ24の制御アルゴリズムは、以下の式(41)〜(46)で表される。
r(k)=−1・Gd・PREVO2(k) ……(41)
δ(k)=r(k)−u''(k−1) ……(42)
σd(k)=σd(k−1)+δ(k) ……(43)
u''(k)=sgn(σd(k)) ……(44)
u(k)=Fd・u''(k) ……(45)
φop(k)=FLAFBASE+u(k) ……(46)
ここで、Gd,Fdはゲインを表す。また、符号関数sgn(σd(k))の値は、σd(k)≧0のときにはsgn(σd(k))=1となり、σd(k)<0のときにはsgn(σd(k))=−1となる(なお、σd(k)=0のときに、sgn(σd(k))=0と設定してもよい)。
このDSMコントローラ24では、以上の式(41)〜(46)に示す制御アルゴリズムにより、前述したように、制御入力φop(k)が、制御タイミングのずれを生じることなく、出力偏差VO2を打ち消すような出力偏差VO2*を生じさせる値として算出される。すなわち、制御入力φop(k)が、O2センサ15の出力Voutを目標値Vopに収束させることができる値として算出される。また、制御入力φop(k)が、増幅DSM信号u(k)を所定の基準値FLAFBASEに加算した値として算出されるので、制御入力φop(k)を値0を中心して正負反転する値だけでなく、基準値FLAFBASEを中心として増減を繰り返す値として算出できる。これにより、通常のΔΣ変調アルゴリズムと比べて、制御の自由度を高めることができる。
次に、前記PRISMコントローラ21について説明する。このPRISMコントローラ21は、以下に述べるオンボード同定型スライディングモード制御処理(以下「PRISM処理」という)の制御アルゴリズムにより、O2センサ15の出力Voutを目標値Vopに収束させるための目標空燃比KCMDを算出するものであり、状態予測器22、オンボード同定器23およびスライディングモードコントローラ(以下「SLDコントローラ」という)25により構成されている。なお、このPRISM処理の具体的なプログラムについては後述する。
このPRISMコントローラ21のうちの状態予測器22およびオンボード同定器23については、既に説明したので、ここではSLDコントローラ25についてのみ説明する。このSLDコントローラ25(第2の空燃比算出手段)は、スライディングモード制御アルゴリズムに基づいてスライディングモード制御を行うものであり、以下、一般的なスライディングモード制御アルゴリズムについて説明する。このスライディングモード制御アルゴリズムでは、前述した式(18)の離散時間系モデルを制御対象モデルとして用いるため、切換関数σは、下式(47)に示すように、出力偏差VO2の時系列データの線形関数として設定される。
σ(k)=S1・VO2(k)+S2・VO2(k−1) ……(47)
ここで、S1,S2は、−1<(S2/S1)<1の関係が成立するように設定される所定の係数である。
一般にスライディングモード制御アルゴリズムでは、切換関数σが2つの状態変数(本実施形態では出力偏差VO2の時系列データ)で構成されている場合、2つの状態変数で構成される位相空間は、これらをそれぞれ縦軸および横軸とする2次元の位相平面となるため、この位相平面上において、σ=0を満たす2つの状態変数の値の組み合わせは、切換直線と呼ばれる直線上に載ることになる。したがって、制御対象への制御入力を、2つの状態変数の組み合わせが切換直線上に収束する(載る)ように適切に決定することにより、2つの状態変数をいずれも、値0になる平衡点に収束(スライディング)させることができる。さらに、スライディングモード制御アルゴリズムでは、切換関数σの設定により、状態変数の動特性、より具体的には収束挙動や収束速度を指定することができる。例えば、本実施形態のように、切換関数σが2つの状態変数で構成されている場合には、切換直線の傾きを値1に近づけると、状態変数の収束速度が遅くなる一方、値0に近づけると、収束速度が速くなる。以上のように、スライディングモード制御は、いわゆる応答指定型制御の一手法である。
本実施形態では、前記式(47)に示すように、切換関数σが出力偏差VO2の2つの時系列データ、すなわち出力偏差VO2の今回値VO2(k)および前回値VO2(k−1)により構成されているので、これらの今回値VO2(k)および前回値VO2(k−1)の組み合わせを切換直線上に収束させるように、制御対象への制御入力すなわち目標空燃比KCMDを設定すればよい。具体的には、制御量Usl(k)を、基準値FLAFBASEとの和が目標空燃比KCMDとなる値として定義すると、今回値VO2(k)および前回値VO2(k−1)の組み合わせを切換直線上に収束させるための制御量Usl(k)は、適応スライディングモード制御アルゴリズムにより、図23に示す式(48)のように、等価制御入力Ueq(k)、到達則入力Urch(k)および適応則入力Uadp(k)の総和として設定される。
この等価制御入力Ueq(k)は、出力偏差VO2の今回値VO2(k)および前回値VO2(k−1)の組み合わせを切換直線上に拘束しておくためのものであり、具体的には、図23に示す式(49)のように定義される。また、到達則入力Urch(k)は、外乱やモデル化誤差などにより、出力偏差VO2の今回値VO2(k)および前回値VO2(k−1)の組み合わせが切換直線上から外れた際に、これらを切換直線上に収束させるためのものであり、具体的には、図23に示す式(50)のように定義される。この式(50)において、Fはゲインを表す。
さらに、適応則入力Uadp(k)は、制御対象の定常偏差、モデル化誤差および外乱の影響を抑制しながら、出力偏差VO2の今回値VO2(k)および前回値VO2(k−1)の組み合わせを、切換超平面上に確実に収束させるためのものであり、具体的には、図23に示す式(51)のように定義される。この式(51)において、Gはゲインを、ΔTは制御周期をそれぞれ表す。
本実施形態のPRISMコントローラ21のSLDコントローラ25では、前述したように、出力偏差VO2に代えて予測値PREVO2を用いるので、PREVO2(k)≒VO2(k+dt)の関係を適用することにより、以上の式(47)〜(51)のアルゴリズムを、図24に示す式(52)〜(56)に書き換えて用いる。この式(52)におけるσPREは、予測値PREVO2を用いたときの切換関数(以下「予測切換関数」という)の値である。すなわち、このSLDコントローラ25では、以上のアルゴリズムで算出される制御量Usl(k)を基準値FLAFBASEに加算することによって、目標空燃比KCMDが算出される。
以下、ECU2により実行される燃料噴射量の算出処理について、図25を参照しながら説明する。同図に示すように、この算出処理は、前述した図10,11の算出処理と比べて、ステップ104〜107のみが異なっており、それ以外の点は同じであるので、以下、ステップ104〜107についてのみ説明する。なお、以下の説明では、今回値であることを示す記号(k)を適宜、省略する。
すなわち、この処理では、ステップ103に続くステップ104において、適応制御フラグF_PRISMONの設定処理を実行する。この処理の内容は図示しないが、具体的には、以下の(f14)〜(f19)の条件がいずれも成立しているときには、適応空燃比制御処理で算出された目標空燃比KCMDを使用する条件が成立しているとして、言い換えれば、適応空燃比制御処理により空燃比制御を行うべき運転モードにあるとして、それを表すために、適応制御フラグF_PRISMONが「1」にセットされる。一方、(f14)〜(f19)の条件のうちの少なくとも1つが成立していないときには、適応制御フラグF_PRISMONが「0」にセットされる。
(f14)LAFセンサ14およびO2センサ15がいずれも活性化していること。
(f15)エンジン3がリーンバーン運転中でないこと。
(f16)スロットル弁5が全開状態でないこと。
(f17)点火時期の遅角制御中でないこと。
(f18)フューエルカット運転中でないこと。
(f19)エンジン回転数NEおよび吸気管内絶対圧PBAがいずれも、適応空燃比制御処理用の所定の範囲内の値であること。
次に、ステップ105に進み、ステップ104で設定された適応制御フラグF_PRISMONが「1」であるか否かを判別する。この判別結果がYESのときには、ステップ106に進み、目標空燃比KCMDを、後述する適応空燃比制御処理で算出された適応目標空燃比KCMDSLDに設定する。
一方、ステップ105の判別結果がNOのときには、ステップ107に進み、目標空燃比KCMDをマップ値KCMDMAPに設定する。このマップ値KCMDMAPは、エンジン回転数NEおよび吸気管内絶対圧PBAに応じて、図示しないマップを検索することにより、算出される。そして、これ以降のステップ108〜113は、前述した図10,11のステップ9〜14と同様に実行される。
次に、図26および図27を参照しながら、ADSM処理およびPRISM処理を含む適応空燃比制御処理について説明する。この処理は、所定の周期(例えば10msec)で実行される。また、この処理では、エンジン3の運転状態に応じて、ADSM処理、PRISM処理、またはスライディングモード制御量DKCMDSLDを所定値SLDHOLDに設定する処理により、目標空燃比KCMDが算出される。
この処理では、まず、ステップ120において、F/C後判定処理を実行する。この処理の内容は図示しないが、この処理では、フューエルカット運転中は、それを表すためにF/C後判定フラグF_AFCが「1」にセットされ、フューエルカット運転の終了後、所定時間X_TM_AFCが経過したときには、それを表すためにF/C後判定フラグF_AFCが「0」にセットされる。
次に、ステップ121に進み、車速VPに基づいて、エンジン3を搭載した車両が発進したか否かを判定する発進判定処理を実行する。図28に示すように、この処理では、まず、ステップ149において、アイドル運転フラグF_IDLEが「1」であるか否かを判別する。このアイドル運転フラグF_IDLEは、エンジン回転数NE、車速VPおよびスロットル弁開度θTHなどに基づき、エンジン3がアイドル運転モード中であるか否かを判別することによって設定され、具体的には、アイドル運転モードであるときに「1」に、それ以外のときに「0」にセットされる。
この判別結果がYESで、アイドル運転モード中であるときには、ステップ150に進み、車速VPが所定車速VSTART(例えば1km/h)より小さいか否かを判別する。この判別結果がYESで、停車中であるときには、ステップ151に進み、ダウンカウント式の第1発進判定タイマのタイマ値TMVOTVSTを第1所定時間TVOTVST(例えば3msec)に設定する。
次いで、ステップ152に進み、ダウンカウント式の第2発進判定タイマのタイマ値TMVSTを、上記第1所定時間TVOTVSTよりも長い第2所定時間TVST(例えば500msec)に設定する。次いで、ステップ153,154において、第1および第2発進フラグF_VOTVST,F_VSTをいずれも「0」にセットした後、本処理を終了する。
一方、ステップ149または150の判別結果がNOのとき、すなわちアイドル運転にないか、または車両が発進したときには、ステップ155に進み、第1発進判定タイマのタイマ値TMVOTVSTが値0より大きいか否かを判別する。この判別結果がYESで、アイドル運転の終了後または車両の発進後、第1所定時間TVOTVSTが経過していないときには、第1発進モード中であるとして、ステップ156に進み、それを表すために第1発進フラグF_VOTVSTを「1」にセットする。
一方、ステップ155の判別結果がNOで、アイドル運転の終了後または車両の発進後、第1所定時間TVOTVSTが経過したときには、第1発進モードが終了したとして、ステップ157に進み、第1発進フラグF_VOTVSTを「0」にセットする。
ステップ156または157に続くステップ158では、第2発進判定タイマのタイマ値TMVSTが値0より大きいか否かを判別する。この判別結果がYESで、アイドル運転の終了後または車両の発進後、第2所定時間TVSTが経過していないときには、第2発進モード中であるとして、ステップ159に進み、それを表すために第2発進フラグF_VSTを「1」にセットした後、本処理を終了する。
一方、ステップ158の判別結果がNOで、アイドル運転の終了後または車両の発進後、第2所定時間TVSTが経過したときには、第2発進モードが終了したとして、前記ステップ154を実行した後、本処理を終了する。
図26に戻り、ステップ121に続くステップ122では、状態変数の設定処理を実行する。図示しないが、この処理では、RAM内に記憶されている、目標空燃比KCMD、LAFセンサ14の出力KACTおよび出力偏差VO2の時系列データをいずれも、1サンプリングサイクル分ずつ過去側にシフトさせる。その後、KCMD、KACTおよびVO2の時系列データの最新の値と、基準値FLAFBASEと、後述する適応補正項FLAFADPとに基づき、KCMD、KACTおよびVO2の今回値を算出する。
次に、ステップ123に進み、PRISM/ADSM処理の実行判定処理を行う。この処理は、PRISM処理またはADSM処理の実行条件が成立しているか否かを判定するものであり、具体的には、図29に示すフローチャートのように実行される。
すなわち、図29のステップ160〜163において、以下の(f20)〜(f23)の条件がいずれも成立しているときには、PRISM処理またはADSM処理を実行すべき運転モードにあるとして、それを表すために、ステップ164で、PRISM/ADSM実行フラグF_PRISMCALを「1」にセットした後、本処理を終了する。一方、(f20)〜(f23)の条件の少なくとも1つが成立していないときには、PRISM処理またはADSM処理を実行すべき運転モードにないとして、それを表すために、ステップ165で、PRISM/ADSM実行フラグF_PRISMCALを「0」にセットした後、本処理を終了する。
(f20)O2センサ15が活性化していること。
(f21)LAFセンサ14が活性化していること。
(f22)エンジン3がリーンバーン運転中でないこと。
(f23)点火時期の遅角制御中でないこと。
図26に戻り、ステップ123に続くステップ124では、同定器演算の実行判定処理を行う。この処理は、オンボード同定器23によるパラメータ同定の実行条件が成立しているか否かを判定するものであり、具体的には、図30に示すフローチャートのように実行される。
すなわち、図30のステップ170および171の判別結果がいずれもNOのとき、言い換えれば、スロットル弁開度θTHが全開状態でなく、かつフューエルカット運転中でないときには、パラメータ同定を実行すべき運転モードであるとして、ステップ172に進み、同定実行フラグF_IDCALを「1」にセットした後、本処理を終了する。一方、ステップ170または171の判別結果がYESのときには、パラメータ同定を実行すべき運転モードにないとして、ステップ173に進み、同定実行フラグF_IDCALを「0」にセットした後、本処理を終了する。
図26に戻り、ステップ124に続くステップ125では、各種パラメータ(排気ガスボリュームAB_SVなど)を算出する。この処理の具体的な内容は、後述する。
次に、ステップ126に進み、前記ステップ123で設定されたPRISM/ADSM実行フラグF_PRISMCALが「1」であるか否かを判別する。この判別結果がYESで、PRISM処理またはADSM処理の実行条件が成立しているときには、ステップ127に進み、前記ステップ124で設定された同定実行フラグF_IDCALが「1」であるか否かを判別する。
この判別結果がYESで、オンボード同定器23によるパラメータ同定を実行すべき運転モードのときには、ステップ128に進み、パラメータ初期化フラグF_IDRSETが「1」であるか否かを判別する。この判別結果がNOで、RAMに記憶されているモデルパラメータa1,a2,b1の初期化が不要であるときには、後述するステップ131に進む。
一方、この判別結果がYESで、モデルパラメータa1,a2,b1の初期化が必要であるときには、ステップ129に進み、モデルパラメータa1,a2,b1を、それぞれの初期値に設定した後、それを表すためにステップ130に進み、パラメータ初期化フラグF_IDRSETを「0」にセットする。
このステップ130または128に続くステップ131では、オンボード同定器23の演算を実行し、モデルパラメータa1,a2,b1を同定した後、後述する図27のステップ132に進む。このオンボード同定器23の演算の具体的な内容については、後述する。
一方、ステップ127の判別結果がNOで、パラメータ同定を実行すべき運転モードでないときには、以上のステップ128〜131をスキップして、図27のステップ132に進む。ステップ127または131に続くステップ132では、モデルパラメータa1,a2,b1として、同定値または所定値を選択する。この処理の内容は図示しないが、具体的には、前記ステップ124で設定された同定実行フラグF_IDCALが「1」のときには、モデルパラメータa1,a2,b1をステップ131で同定された同定値に設定する。一方、同定実行フラグF_IDCALが「0」のときには、モデルパラメータa1,a2,b1を所定値に設定する。
次に、ステップ133に進み、後述するように、状態予測器22の演算を実行し、予測値PREVO2を算出する。その後、ステップ134に進み、後述するように、制御量Uslを算出する。
次いで、ステップ135に進み、SLDコントローラ25の安定判別を実行する。この処理の内容は図示しないが、具体的には、予測切換関数σPREの値に基づき、SLDコントローラ25によるスライディングモード制御が安定状態にあるか否かを判別する。
次に、ステップ136および137において、後述するように、SLDコントローラ25およびDSMコントローラ24により、スライディングモード制御量DKCMDSLDおよびΔΣ変調制御量DKCMDDSMをそれぞれ算出する。
次いで、ステップ138に進み、後述するように、SLDコントローラ25により算出されたスライディングモード制御量DKCMDSLD、またはDSMコントローラ24により算出されたΔΣ変調制御量DKCMDDSMを用いて、適応目標空燃比KCMDSLDを算出する。この後、ステップ139に進み、後述するように、適応補正項FLAFADPを算出した後、本処理を終了する。
一方、図26に戻り、前記ステップ126の判別結果がNOで、PRISM処理およびADSM処理の実行条件がいずれも成立していないときには、ステップ140に進み、パラメータ初期化フラグF_IDRSETを「1」にセットする。次に、図27のステップ141に進み、スライディングモード制御量DKCMDSLDを所定値SLDHOLDにセットする。次いで、前述したステップ138,139を実行した後、本処理を終了する。
次に、図31を参照しながら、前述したステップ125の各種パラメータを算出する処理について説明する。この処理では、まず、ステップ180において、下式(58)により、排気ガスボリュームAB_SV(空間速度の推定値)を算出する。
AB_SV=(NE/1500)・PBA・X_SVPRA ……(58)
ここで、X_SVPRAは、エンジン排気量に基づいて決定される所定の係数である。
次に、ステップ181に進み、前述した空燃比操作系のむだ時間KACT_D(=d')、排気系のむだ時間CAT_DELAY(=d)および予測時間dtを算出する。具体的には、ステップ180で算出された排気ガスボリュームAB_SVに応じて、図32に示すテーブルを検索することにより、むだ時間KACT_D,CAT_DELAYをそれぞれ算出するとともに、これらの和(KACT_D+CAT_DELAY)を予測時間dtとして設定する。すなわち、この制御プログラムでは、位相遅れ時間ddが値0に設定される。
このテーブルでは、排気ガスボリュームAB_SVが大きいほど、むだ時間KACT_D,CAT_DELAYがより小さい値に設定されている。これは、排気ガスボリュームAB_SVが大きいほど、排気ガスの流速が大きくなることで、むだ時間KACT_D,CAT_DELAYが短くなることによる。以上のように、むだ時間KACT_D,CAT_DELAYおよび予測時間dtが、排気ガスボリュームに応じて算出されるので、これらを用いて算出した出力偏差VO2の予測値PREVO2に基づき、後述する適応目標空燃比KCMDSLDを算出することにより、制御対象の入出力間の制御タイミングのずれを解消することができる。また、モデルパラメータa1,a2,b1が、上記むだ時間CAT_DELAYを用いて同定されるので、制御対象モデルの動特性を、制御対象の実際の動特性に適合させることができ、それにより、制御対象の入出力間の制御タイミングのずれをさらに解消することができる。
次に、ステップ182に進み、同定アルゴリズムの重みパラメータλ1,λ2の値を算出する。具体的には、重みパラメータλ2を値1に設定すると同時に、重みパラメータλ1を、排気ガスボリュームAB_SVに応じて、図33に示すテーブルを検索することにより算出する。
このテーブルでは、排気ガスボリュームAB_SVが大きいほど、重みパラメータλ1がより小さい値に設定されており、言い換えれば、排気ガスボリュームAB_SVが小さいほど、重みパラメータλ1がより大きくかつ値1により近い値に設定されている。これは、排気ガスボリュームAB_SVが大きいほど、言い換えればより高負荷の運転モードであるほど、モデルパラメータの同定をより迅速に行う必要があるので、重みパラメータλ1をより小さく設定することによって、モデルパラメータの最適値への収束速度を高めるためである。これに加えて、排気ガスボリュームAB_SVが小さいほど、すなわちより低負荷の運転モードであるほど、空燃比が変動しやすくなり、触媒後排気ガス特性が不安定になりやすいことで、モデルパラメータの良好な同定精度を確保する必要があるので、重みパラメータλ1を値1に近づける(最小2乗法アルゴリズムに近づける)ことによって、モデルパラメータの同定精度をより高めるためである。
次に、ステップ183に進み、モデルパラメータa1,a2の値を制限するための下限値X_IDA2Lと、モデルパラメータb1の値を制限するための下限値X_IDB1Lおよび上限値X_IDB1Hとを、排気ガスボリュームAB_SVに応じて、図34に示すテーブルを検索することにより算出する。
このテーブルでは、下限値X_IDA2Lは、排気ガスボリュームAB_SVが大きいほど、より大きい値に設定されている。これは、排気ガスボリュームAB_SVの変化に応じたむだ時間の増減に伴い、制御系が安定状態となるモデルパラメータa1,a2の組み合わせが変化することによる。また、下限値X_IDB1Lおよび上限値X_IDB1Hも、排気ガスボリュームAB_SVが大きいほど、より大きい値に設定されている。これは、排気ガスボリュームAB_SVが大きいほど、触媒前空燃比(第1触媒装置8aよりも上流側の排気ガスの空燃比)がO2センサ15の出力Voutに及ぼす影響の度合、すなわち制御対象のゲインがより大きくなることによる。
次いで、ステップ184に進み、移動平均フィルタリング処理のフィルタ次数nを算出した後、本処理を終了する。この処理では、フィルタ次数nを、排気ガスボリュームAB_SVに応じて、図35に示すテーブルを検索することにより、算出する。
このテーブルでは、排気ガスボリュームAB_SVが大きいほど、フィルタ次数nがより小さい値に設定されている。これは、以下の理由による。すなわち、前述したように、排気ガスボリュームAB_SVが変化すると、制御対象の周波数特性、特にゲイン特性が変化するので、制御対象モデルのゲイン特性を、制御対象の実際のゲイン特性に一致させるためには、重み付き最小2乗法アルゴリズムの周波数重み特性を、排気ガスボリュームAB_SVに応じて適切に補正する必要がある。したがって、移動平均フィルタリング処理のフィルタ次数nを、上記テーブルのように排気ガスボリュームAB_SVに応じて設定することにより、排気ガスボリュームAB_SVの変化にかかわらず、一定の同定重みを同定アルゴリズムにおいて確保できるとともに、制御対象モデルと制御対象との間で互いのゲイン特性を一致させることができ、これにより、同定精度を向上させることができる。
次に、図36を参照しながら、前記ステップ131のオンボード同定器23の演算処理について説明する。同図に示すように、この処理では、まず、ステップ190において、前述した式(39)より、ゲイン係数KP(k)を算出する。次に、ステップ191に進み、前述した式(37)より、出力偏差VO2の同定値VO2HAT(k)を算出する。
次いで、ステップ192に進み、前述した式(35),(36)より、同定誤差フィルタ値ide_f(k)を算出する。次に、ステップ193に進み、前述した式(33)より、モデルパラメータのベクトルθ(k)を算出した後、ステップ194に進み、モデルパラメータのベクトルθ(k)の安定化処理を実行する。この処理については後述する。
次いで、ステップ195に進み、前述した式(40)より、正方行列P(k)の次回値P(k+1)を算出する。この次回値P(k+1)は、次回のループでの算出において、正方行列P(k)の値として用いられる。
以下、図37を参照しながら、上記ステップ194におけるモデルパラメータのベクトルθ(k)の安定化処理について説明する。同図に示すように、まず、ステップ200で、3つのフラグF_A1STAB,F_A2STAB,F_B1STABをいずれも「0」にセットする。
次に、ステップ201に進み、後述するように、a1'&a2'のリミット処理を実行する。次いで、ステップ202で、後述するように、b1'のリミット処理を実行した後、本処理を終了する。
以下、図38を参照しながら、上記ステップ201のa1'&a2'のリミット処理について説明する。同図に示すように、まず、ステップ210において、前記ステップ193で算出したモデルパラメータの同定値a2'が、前記図31のステップ183で算出された下限値X_IDA2L以上であるか否かを判別する。この判別結果がNOのときには、ステップ211に進み、制御系を安定化させるために、モデルパラメータa2を下限値X_IDA2Lに設定すると同時に、モデルパラメータa2の安定化を実行したことを表すために、フラグF_A2STABを「1」にセットする。一方、この判別結果がYESで、a2'≧X_IDA2Lのときには、ステップ212に進み、モデルパラメータa2を同定値a2'に設定する。
これらのステップ211または212に続くステップ213では、前記ステップ193で算出したモデルパラメータの同定値a1'が、所定の下限値X_IDA1L(例えば値−2以上で値0より小さい一定値)以上であるか否かを判別する。この判別結果がNOのときには、ステップ214に進み、制御系を安定化させるために、モデルパラメータa1を下限値X_IDA1Lに設定すると同時に、モデルパラメータa1の安定化を実行したことを表すために、フラグF_A1STABを「1」にセットする。
一方、ステップ213の判別結果がYESのときには、ステップ215に進み、同定値a1'が、所定の上限値X_IDA1H(例えば値2)以下であるか否かを判別する。この判別結果がYESで、X_IDA1L≦a1'≦X_IDA1Hのときには、ステップ216に進み、モデルパラメータa1を同定値a1'に設定する。一方、この判別結果がNOで、X_IDA1H<a1'のときには、ステップ217に進み、モデルパラメータa1を上限値X_IDA1Hに設定すると同時に、モデルパラメータa1の安定化を実行したことを表すために、フラグF_A1STABを「1」にセットする。
これらのステップ214、216または217に続くステップ218では、以上のように算出したモデルパラメータa1の絶対値と、モデルパラメータa2との和(|a1|+a2)が、所定の判定値X_A2STAB(例えば値0.9)以下であるか否かを判別する。この判別結果がYESのときには、モデルパラメータa1,a2の組み合わせが、制御系の安定性を確保できる範囲(図39にハッチングで示す規制範囲)内にあるとして、そのまま本処理を終了する。
一方、ステップ218の判別結果がNOのときには、ステップ219に進み、モデルパラメータa1が、判定値X_A2STABから下限値X_IDA2Lを減算した値(X_A2STAB−X_IDA2L)以下であるか否かを判別する。この判別結果がYESのときには、ステップ220に進み、モデルパラメータa2を、判定値X_A2STABからモデルパラメータa1の絶対値を減算した値(X_A2STAB−|a1|)に設定すると同時に、モデルパラメータa2の安定化を実行したことを表すために、フラグF_A2STABを「1」にセットした後、本処理を終了する。
一方、ステップ219の判別結果がNOで、a1>(X_A2STAB−X_IDA2L)のときには、ステップ221に進み、制御系を安定化させるために、モデルパラメータa1を、判定値X_A2STABから下限値X_IDA2Lを減算した値(X_A2STAB−X_IDA2L)に設定し、モデルパラメータa2を下限値X_IDA2Lに設定する。これと同時に、モデルパラメータa1,a2の安定化を実行したことを表すために、フラグF_A1STAB,F_A2STABをいずれも「1」にセットする。その後、本処理を終了する。
前述したように、逐次型の同定アルゴリズムでは、制御対象の入出力が定常状態になると、自己励起条件の不足化に起因して、同定されたモデルパラメータの絶対値が増大する、いわゆるドリフト現象が発生しやすくなることで、制御系が不安定になったり、振動状態になったりすることがある。また、その安定限界も、エンジン3の運転状態に応じて変化する。例えば、低負荷運転状態のときには、排気ガスボリュームAB_SVが小さくなることで、供給された混合気に対する排気ガスの応答遅れやむだ時間などが大きくなり、それにより、O2センサ15の出力Voutが振動状態になりやすい。
これに対して、以上のa1'&a2'のリミット処理では、モデルパラメータa1,a2の組み合わせが、図39にハッチングで示す規制範囲内の値に収まるように設定されるとともに、この規制範囲を決定する下限値X_IDA2Lが、排気ガスボリュームAB_SVに応じて設定されるので、この規制範囲をエンジン3の運転状態の変化、すなわち制御対象の動特性の変化に伴う安定限界の変化が反映された適切な安定限界の範囲として設定することができ、そのような規制範囲内に収まるように規制されたモデルパラメータa1,a2を用いることにより、上記ドリフト現象の発生を回避でき、制御系の安定性を確保することができる。これに加えて、モデルパラメータa1,a2の組み合わせを、制御系の安定性を確保できる上記規制範囲内の値として設定することにより、モデルパラメータa1およびモデルパラメータa2を単独で規制した場合における、制御系の不安定な状態の発生を回避できる。以上により、制御系の安定性を向上させることができ、触媒後排気ガス特性を向上させることができる。
次に、図40を参照しながら、前記ステップ202のb1'のリミット処理について説明する。同図に示すように、この処理では、ステップ230において、前記ステップ193で算出されたモデルパラメータの同定値b1'が、前記図31のステップ183で算出された下限値X_IDB1L以上であるか否かを判別する。
この判別結果がYESで、b1'≧X_IDB1Lのときには、ステップ2311に進み、モデルパラメータの同定値b1'が、前記図31のステップ183で算出された上限値X_IDB1H以下であるか否かを判別する。この判別結果がYESで、X_IDB1L≦b1'≦X_IDB1Hのときには、ステップ232に進み、モデルパラメータb1を同定値b1'に設定した後、本処理を終了する。
一方、ステップ231の判別結果がNOで、b1'>X_IDB1Hのときには、ステップ233に進み、モデルパラメータb1を上限値X_IDB1Hに設定すると同時に、それを表すためにフラグF_B1LMTを「1」にセットした後、本処理を終了する。
一方、ステップ230の判別結果がNOで、b1'<X_IDB1Lのときには、ステップ234に進み、モデルパラメータb1を下限値X_IDB1Lに設定すると同時に、それを表すためにフラグF_B1LMTを「1」にセットした後、本処理を終了する。
以上のb1'のリミット処理を実行することにより、モデルパラメータb1を、X_IDB1L以上かつX_IDB1H以下の規制範囲内の値に制限することができ、それにより、逐次型の同定アルゴリズムによるドリフト現象の発生を回避できる。さらに、前述したように、これらの上下限値X_IDB1H,X_IDB1Lが、排気ガスボリュームAB_SVに応じて設定されるので、規制範囲をエンジン3の運転状態の変化、すなわち制御対象の動特性の変化に伴う安定限界の変化が反映された適切な安定限界の範囲として、設定することができ、そのような規制範囲内に規制されたモデルパラメータb1を用いることにより、制御系の安定性を確保することができる。以上により、制御系の安定性を向上させることができ、触媒後排気ガス特性を向上させることができる。
次に、図41を参照しながら、前述したステップ133の状態予測器22の演算処理について説明する。この処理では、まず、ステップ240において、前述した式(24)の行列要素α1,α2,βi,βjを算出する。次いで、ステップ241に進み、ステップ240で算出した行列要素α1,α2,βi,βjを式(24)に適用することにより、出力偏差VO2の予測値PREVO2を算出した後、本処理を終了する。
次に、図42を参照しながら、前述したステップ134の制御量Uslを算出する処理について説明する。この処理では、まず、ステップ250において、前述した図24の式(52)により、予測切換関数σPREを算出する。
次に、ステップ251に進み、予測切換関数σPREの積算値SUMSIGMAを算出する。この処理では、図43に示すように、まず、ステップ260において、下記の3つの条件(f24)〜(f26)のうちの少なくとも1つが成立しているか否かを判別する。
(f24)適応制御フラグF_PRISMONが「1」であること。
(f25)後述する積算値保持フラグF_SS_HOLDが「0」であること。
(f26)後述するADSM実行済みフラグF_KOPRが「0」であること。
このステップ260の判別結果がYESのとき、すなわち積算値SUMSIGMAの算出条件が成立しているときには、ステップ261に進み、積算値SUMSIGMAの今回値SUMSIGMA(k)を、前回値SUMSIGMA(k−1)に、制御周期ΔTと予測切換関数σPREとの積を加算した値[SUMSIGMA(k−1)+ΔT・σPRE]に設定する。
次いで、ステップ262に進み、ステップ261で算出した今回値SUMSIGMA(k)が所定の下限値SUMSLより大きいか否かを判別する。この判別結果がYESのときには、ステップ262に進み、今回値SUMSIGMA(k)が所定の上限値SUMSHより小さいか否かを判別する。この判別結果がYESで、SUMSL<SUMSIGMA(k)<SUMSHのときには、そのまま本処理を終了する。
一方、ステップ263の判別結果がNOで、SUMSIGMA(k)≧SUMSHのときには、ステップ264に進み、今回値SUMSIGMA(k)を上限値SUMSHに設定した後、本処理を終了する。一方、ステップ262の判別結果がNOで、SUMSIGMA(k)≦SUMSLのときには、ステップ265に進み、今回値SUMSIGMA(k)を下限値SUMSLに設定した後、本処理を終了する。
一方、ステップ260の判別結果がNOのとき、すなわち3つの条件(f24)〜(f26)がいずれも不成立で、積算値SUMSIGMAの算出条件が不成立であるときには、ステップ266に進み、今回値SUMSIGMA(k)を前回値SUMSIGMA(k−1)に設定する。すなわち、積算値SUMSIGMAをホールドする。この後、本処理を終了する。
図42に戻り、ステップ251に続くステップ252〜254において、前述した図24の式(54)〜(56)により、等価制御入力Ueq、到達則入力Urchおよび適応則入力Uadpをそれぞれ算出する。
次に、ステップ255に進み、これらの等価制御入力Ueq、到達則入力Urchおよび適応則入力Uadpの和を、制御量Uslとして設定した後、本処理を終了する。
次に、図44、45を参照しながら、前述した図27のステップ136のスライディングモード制御量DKCMDSLDの算出処理について説明する。この処理では、まず、ステップ270において、制御量Uslのリミット値算出処理を実行する。この処理では、その詳細は説明は省略するが、前述したステップ135のコントローラの安定判別処理の判別結果と、後述する制御量Uslの適応上下限値Usl_ah,Usl_alとに基づいて、非アイドル運転用の上下限値Usl_ahf,Usl_alfと、アイドル運転用の上下限値Usl_ahfi,Usl_alfiとをそれぞれ算出する。
次いで、ステップ271に進み、アイドル運転フラグF_IDLEが「0」であるか否かを判別する。この判別結果がYESで、アイドル運転モードにないときには、ステップ272に進み、前述した図30の処理で算出された制御量Uslが、非アイドル運転用の下限値Usl_alf以下であるか否かを判別する。
この判別結果がNOで、Usl>Usl_alfのときには、ステップ273に進み、制御量Uslが非アイドル運転用の上限値Usl_ahf以上であるか否かを判別する。この判別結果がNOで、Usl_alf<Usl<Usl_ahfのときには、ステップ274に進み、スライディングモード制御量DKCMDSLDを制御量Uslに設定すると同時に、積算値保持フラグF_SS_HOLDを「0」にセットする。
次いで、ステップ275に進み、適応下限値の今回値Usl_al(k)を、前回値Usl_al(k−1)に所定の減少側値X_AL_DECを加算した値[Usl_al(k−1)+X_AL_DEC]に設定すると同時に、適応上限値の今回値Usl_ah(k)を、前回値Usl_ah(k−1)から所定の減少側値X_AL_DECを減算した値[Usl_al(k−1)−X_AL_DEC]に設定した後、本処理を終了する。
一方、ステップ273の判別結果がYESで、Usl≧Usl_ahfのときには、ステップ276に進み、スライディングモード制御量DKCMDSLDを非アイドル運転用の適応上限値Usl_ahfに設定すると同時に、積算値保持フラグF_SS_HOLDを「1」にセットする。
次いで、ステップ277に進み、始動後タイマのタイマ値TMACRが所定時間X_TMAWASTより小さいこと、またはF/C後判定フラグF_AFCが「1」であることが成立しているか否かを判別する。この始動後タイマは、エンジン3の始動後の経過時間を計時するアップカウント式のタイマである。
この判別結果がYESのとき、すなわち、エンジン始動後、所定時間X_TMAWASTが経過していないか、またはフューエルカット運転の終了後、所定時間X_TM_AFCが経過していないときには、そのまま本処理を終了する。
一方、ステップ277の判別結果がNOのとき、すなわち、エンジン始動後、所定時間X_TMAWASTが経過し、かつフューエルカット運転の終了後、所定時間X_TM_AFCが経過したときには、ステップ278に進み、適応下限値の今回値Usl_al(k)を、前回値Usl_al(k−1)に減少側値X_AL_DECを加算した値[Usl_al(k−1)+X_AL_DEC]に設定すると同時に、適応上限値の今回値Usl_ah(k)を、前回値Usl_ah(k−1)に所定の増大側値X_AL_INCを加算した値[Usl_ah(k−1)+X_AL_INC]に設定した後、本処理を終了する。
一方、ステップ272の判別結果がYESで、Usl≦Usl_alfのときには、ステップ279に進み、スライディングモード制御量DKCMDSLDを非アイドル運転用の適応下限値Usl_alfに設定すると同時に、積算値保持フラグF_SS_HOLDを「1」にセットする。
次いで、ステップ280に進み、第2発進フラグF_VSTが「1」であるか否かを判別する。この判別結果がYESで、車両の発進後、第2所定時間TVSTが経過しておらず、第2発進モード中であるときには、そのまま本処理を終了する。
一方、ステップ280の判別結果がNOで、車両の発進後、第2所定時間TVSTが経過し、第2発進モードが終了したときには、ステップ281に進み、適応下限値の今回値Usl_al(k)を、前回値Usl_al(k−1)から増大側値X_AL_INCを減算した値[Usl_al(k−1)−X_AL_INC]に設定すると同時に、適応上限値の今回値Usl_ah(k)を、前回値Usl_ah(k−1)から減少側値X_AL_DECを減算した値[Usl_ah(k−1)−X_AL_DEC]に設定する。その後、本処理を終了する。
一方、ステップ271の判別結果がNOで、アイドル運転モード中であるときには、図45のステップ282に進み、制御量Uslが、アイドル運転用の下限値Usl_alfi以下であるか否かを判別する。この判別結果がNOで、Usl>Usl_alfiのときには、ステップ283に進み、制御量Uslがアイドル運転用の上限値Usl_ahfi以上であるか否かを判別する。
この判別結果がNOで、Usl_alfi<Usl<Usl_ahfiのときには、ステップ284に進み、スライディングモード制御量DKCMDSLDを制御量Uslに設定すると同時に、積算値保持フラグF_SS_HOLDを「0」にセットした後、本処理を終了する。
一方、ステップ283の判別結果がYESで、Usl≧Usl_ahfiのときには、ステップ285に進み、スライディングモード制御量DKCMDSLDをアイドル運転用の上限値Usl_ahfiに設定すると同時に、積算値保持フラグF_SS_HOLDを「1」にセットした後、本処理を終了する。
一方、ステップ282の判別結果がYESで、Usl≦Usl_alfiのときには、ステップ286に進み、スライディングモード制御量DKCMDSLDをアイドル運転用の下限値Usl_alfiに設定すると同時に、積算値保持フラグF_SS_HOLDを「1」にセットした後、本処理を終了する。
次に、図46を参照しながら、前述した図27のステップ137のΔΣ変調制御量DKCMDDSMを算出する処理について説明する。同図に示すように、この処理では、まず、ステップ290において、RAMに記憶されている、前回のループで算出されたDSM信号値の今回値DSMSGNS(k)[=u''(k)]を、前回値DSMSGNS(k−1)[=u''(k−1)]として設定する。
次に、ステップ291に進み、RAMに記憶されている、前回のループで算出された偏差積分値の今回値DSMSIGMA(k)[=σd(k)]を、前回値DSMSIGMA(k−1)[=σd(k−1)]として設定する。
次いで、ステップ292に進み、出力偏差の予測値PREVO2(k)が値0以上であるか否かを判別する。この判別結果がYESのときには、エンジン3が混合気の空燃比をリーン側に変更すべき運転モードにあるとして、ステップ293に進み、参照信号値用のゲインKRDSM(=Gd)を、リーン化用の値KRDSMLに設定した後、後述するステップ295に進む。
一方、ステップ292の判別結果がNOのときには、エンジン3が混合気の空燃比をリッチ側に変更すべき運転モードにあるとして、ステップ294に進み、参照信号値用のゲインKRDSMを、リーン化用の値KRDSMLよりも大きいリッチ化用の値KRDSMRに設定した後、ステップ295に進む。
このように、リーン化用の値KRDSMLおよびリッチ化用の値KRDSMRが互いに異なる値に設定されている理由は、以下による。すなわち、混合気の空燃比をリーン側に変更する際には、第1触媒装置8aのNOx浄化率を確保すべく、リーンバイアスによるNOx排出量の抑制効果を得るために、リーン化用の値KRDSMLをリッチ化用の値KRDSMRよりも小さい値に設定することで、O2センサ15の出力Voutの目標値Vopへの収束速度がリッチ側への変更時よりも遅くなるように、空燃比を制御する。一方、混合気の空燃比をリッチ側に変更する際には、第1および第2触媒装置8a,8bのNOx浄化率を十分に回復させるため、リッチ化用の値KRDSMRをリーン化用の値KRDSMLよりも大きい値に設定することで、O2センサ15の出力Voutの目標値Vopへの収束速度がリーン側への変更時よりも速くなるように、空燃比を制御する。以上により、混合気の空燃比をリッチ側およびリーン側に変更する際、良好な触媒後排気ガス特性を確保することができる。
ステップ293または294に続くステップ295では、値−1、参照信号値用のゲインKRDSMおよび予測値の今回値PREVO2(k)を互いに乗算した値から、上記ステップ290で算出したDSM信号値の前回値DSMSGNS(k−1)を減算した値[−1・KRDSM・PREVO2(k)−DSMSGNS(k−1)]を、偏差信号値DSMDELTA[=δ(k)]として設定する。この処理は、前述した式(41),(42)に相当する。
次いで、ステップ296に進み、偏差積分値の今回値DSMSIGMA(k)を、ステップ291で算出した前回値DSMSIGMA(k−1)と、ステップ295で算出した偏差信号値DSMDELTAとの和[DSMSIGMA(k−1)+DSMDELTA]に設定する。この処理は、前述した式(43)に相当する。
次に、ステップ297〜299において、ステップ296で算出した偏差積分値の今回値DSMSIGMA(k)が値0以上のときには、DSM信号値の今回値DSMSGNS(k)を値1に設定し、偏差積分値の今回値DSMSIGMA(k)が値0よりも小さいときには、DSM信号値の今回値DSMSGNS(k)を値−1に設定する。以上のステップ297〜299の処理は、前述した式(44)に相当する。
次いで、ステップ300において、排気ガスボリュームAB_SVに応じて、図47に示すテーブルを検索することにより、DSM信号値用のゲインKDSM(=Fd)を算出する。同図に示すように、このゲインKDSMは、排気ガスボリュームAB_SVが小さいほど、より大きな値に設定されている。これは、排気ガスボリュームAB_SVが小さいほど、すなわちエンジン3の運転負荷が小さい状態であるほど、O2センサ15の出力Voutの応答性が低下するので、それを補償するためである。このようにゲインKDSMを設定することにより、ΔΣ変調制御量DKCMDDSMを、例えばオーバーゲイン状態などを回避しながら、エンジン3の運転状態に応じて適切に算出することができ、それにより、触媒後排気ガス特性を向上させることができる。
なお、このゲインKDSMの算出に用いるテーブルは、ゲインKDSMが排気ガスボリュームAB_SVに応じて設定されている上記テーブルに限らず、エンジン3の運転負荷を表すパラメータ(例えば基本燃料噴射量Tim)に応じてゲインKDSMが予め設定されているものであればよい。また、触媒装置8aの劣化判別器が設けられている場合には、この劣化判別器で判別された触媒装置8aの劣化度合が大きいほど、ゲインDSMをより小さい値に補正するようにしてもよい。さらに、ゲインKDSMを、オンボード同定器23によって同定されたモデルパラメータに応じて決定してもよい。例えば、モデルパラメータb1の逆数(1/b1)の値が大きいほど、言い換えればモデルパラメータb1の値が小さいほど、ゲインKDSMをより大きい値に設定してもよい。
次に、ステップ301に進み、ΔΣ変調制御量DKCMDDSMを、DSM信号値用のゲインKDSMと、DSM信号値の今回値DSMSGNS(k)とを互いに乗算した値[KDSM・DSMSGNS(k)]に設定した後、本処理を終了する。この処理が、前述した式(45)に相当する。
次に、図48を参照しながら、前述した図27のステップ138の適応目標空燃比KCMDSLDを算出する処理について説明する。同図に示すように、この処理では、まず、ステップ310において、アイドル運転フラグF_IDLEが「1」であること、およびアイドル時ADSM実行フラグF_SWOPRIが「1」であることがいずれも成立しているか否かを判別する。このアイドル時ADSM実行フラグF_SWOPRIは、エンジン3がアイドル運転モード中で、かつADSM処理を実行すべき運転状態のときに「1」に、それ以外のときに「0」にセットされる。
この判別結果がYESのとき、すなわちエンジン3がアイドル運転モード中でADSM処理により適応目標空燃比KCMDSLDを算出すべき運転状態のときには、ステップ311に進み、適応目標空燃比KCMDSLDを、基準値FLAFBASEにΔΣ変調制御量DKCMDDSMを加算した値[FLAFBASE+DKCMDDSM]に設定する。この処理が、前述した式(46)に相当する。
次いで、ステップ312に進み、ADSM処理を実行したことを表すために、ADSM実行済みフラグF_KOPRを「1」に設定した後、本処理を終了する。
一方、ステップ310の判別結果がNOのときには、ステップ313に進み、触媒/O2センサフラグF_FCATDSMが「1」であるか否かを判別する。この触媒/O2センサフラグF_FCATDSMは、以下の4つの条件(f27)〜(f30)のうちの少なくとも1つが成立しているときに「1」に、それ以外は「0」にセットされる。
(f27)第1触媒装置8aの担体の長さ(排気管7が延びる方向の長さ)が所定長さL1以上であること。
(f28)第1触媒装置8aの非金属触媒および金属触媒の総担持量が所定担持量M1以上であること。
(f29)LAFセンサ14がエンジン3の排気管7に設けられていないこと。
(f30)O2センサ15が触媒装置のうちの最も下流側のもの(本実施形態では第2触媒装置8b)よりも下流に設けられていること。
この判別結果がYESのときには、ステップ314に進み、第1発進フラグF_VOTVST、および発進中ADSM実行フラグF_SWOPRVSTがいずれも「1」であるか否かを判別する。この発進中ADSM実行フラグF_SWOPRVSTは、車両が前記第1発進モード中で、かつエンジン3がADSM処理を実行すべき運転モードのときに「1」に、それ以外のときに「0」にセットされる。
この判別結果がYESのとき、すなわち第1発進モード中で、かつADSM処理を実行すべき運転モードのときには、前述したように、ステップ311,312を実行した後、本処理を終了する。
一方、ステップ314の判別結果がNOのときには、ステップ315に進み、排気ガスボリュームAB_SVが所定値OPRSVH以下であること、および小排気時ADSM実行フラグF_SWOPRSVが「1」であることがいずれも成立しているか否かを判別する。小排気時ADSM実行フラグF_SWOPRSVは、エンジン3の排気ガスボリュームAB_SVが小さい状態(負荷が小さい状態)で、かつエンジン3がADSM処理を実行すべき運転モードのときに「1」に、それ以外のときに「0」にセットされる。
この判別結果がYESのとき、すなわち排気ガスボリュームAB_SVが小さく、かつエンジン3がADSM処理を実行すべき運転モードのときには、前述したように、ステップ311,312を実行した後、本処理を終了する。
一方、ステップ315の判別結果がNOのときには、ステップ316に進み、排気ガスボリュームAB_SVの今回値と前回値との偏差ΔAB_SVが所定値ΔAB_SVREF以上であるか否かを判別する。この判別結果がYESのとき、すなわちエンジン3が負荷変動の大きい過渡運転モードにあるときには、ADSM処理を実行すべきであるとして、前述したように、ステップ311,312を実行した後、本処理を終了する。
一方、ステップ316の判別結果がNOのとき、すなわちエンジン3が低負荷ではないとともに、定常運転モードを含む負荷変動の比較的、小さい運転モードにあるときには、PRISM処理を実行すべきであるとして、ステップ317に進み、適応目標空燃比KCMDSLDを、基準値FLAFBASEに適応補正項FLAFADPおよびスライディングモード制御量DKCMDSLDを加算した値[FLAFBASE+FLAFADP+DKCMDSLD]に設定する。次いで、ステップ318に進み、PRISM処理を実行したことを表すために、ADSM実行済みフラグF_KOPRを「0」にセットした後、本処理を終了する。
一方、前記ステップ313の判別結果がNOのとき、すなわち前述した4つの条件(f27)〜(f30)がいずれも成立していないときには、ステップ314〜316をスキップし、前述したステップ317,318を実行した後、本処理を終了する。この場合、ステップ313の判別結果がNOになるのは、より具体的には、触媒装置8a,8b、LAFセンサ14およびO2センサ15がいずれも、本実施形態のように配置されている場合において、第1触媒装置8aの触媒の担体長さが所定長さL1未満のときか、または第1触媒装置8aの非金属触媒および金属触媒の総担持量が所定担持量M1未満のときである。
以上のように、この適応目標空燃比KCMDSLDの算出処理では、適応目標空燃比KCMDSLDが、エンジン3の運転モードに応じて、ADSM処理またはPRISM処理に切り換えて算出される。より具体的には、アイドル運転モードのときには、触媒装置8a,8b、LAFセンサ14およびO2センサ15の配置や、第1触媒装置8aの担体の長さおよび触媒の総担持量などにかかわらず、適応目標空燃比KCMDSLDすなわち目標空燃比KCMDが、ADSM処理により算出される。これは、以下の理由による。すなわち、PRISM処理により目標空燃比KCMDを算出した場合、アイドル運転モードなどの極低負荷の運転モードでは、排気ガスボリュームAB_SVが低下し、O2センサ15の応答遅れやむだ時間が大きくなるとともに、エンジン3の安定した燃焼状態を確保可能な空燃比の幅が狭くなることにより、O2センサ15の出力Voutの目標値Vopへの収束性が低下してしまう。これに対して、ADSM処理により目標空燃比KCMDを算出した場合、出力偏差VO2を打ち消すような、これと逆位相波形の出力偏差が得られるO2センサ15の出力Voutが発生するように、目標空燃比KCMDが算出されるので、上記PRISM処理の場合のような問題が生じることがなく、PRISM処理よりも、O2センサ15の出力Voutの目標値Vopへの収束性を良好な状態に確保できる。したがって、本実施形態では、アイドル運転モードのときに、ADSM処理により目標空燃比KCMDが算出され、それにより、O2センサ15の出力Voutの目標値Vopへの収束性を向上させることができ、良好な触媒後排気ガス特性を確保できる。
また、触媒装置8a,8b、LAFセンサ14およびO2センサ15などの機器がいずれも本実施形態のように配置されている場合、第1触媒装置8aの担体の長さが所定長さL1未満のとき、または第1触媒装置8aの非金属触媒および金属触媒の総担持量が所定担持量M1未満のときには、PRISM処理により目標空燃比KCMDが算出される。これは、O2センサ15よりも上流側に配置された第1触媒装置8aにおいて、触媒の総担持量が少ないほど、または触媒を担持する担体の長さが短いほど、第1触媒装置8aに供給される排気ガスに対する、O2センサ15の出力Voutの応答遅れやむだ時間などが小さくなるため、目標空燃比KCMDをPRISM処理により算出した方が、ADSM処理で算出したときよりも、O2センサ15の出力Voutの目標値Vopへの収束性を高められることによる。したがって、第1触媒装置8aの担体の長さが所定長さL1未満の場合か、または第1触媒装置8aの非金属触媒および金属触媒の総担持量が所定担持量M1未満の場合、すなわち本実施形態と異なる構成の場合には、PRISM処理により目標空燃比KCMDが算出され、それにより、O2センサ15の出力Voutの目標値Vopへの収束性を向上させることができる。
さらに、上記各機器が本実施形態のように配置されているか、第1触媒装置8aの担体の長さが所定長さL1以上であるか、または第1触媒装置8aの非金属触媒および金属触媒の総担持量が所定担持量M1以上である場合において、第1発進モードのとき、排気ガスボリュームAB_SVが所定値よりも小さい低負荷の運転モードのとき、または負荷変動の大きい過渡運転モードのときには、ADSM処理処理により目標空燃比KCMDが算出される。これは、以下の理由による。すなわち、上記の条件の場合において、発進モード、低負荷運転モードおよび過渡運転モードのときには、第1触媒装置8aに供給される排気ガスの空燃比に対する目標空燃比KCMDの追従性が外乱(例えば負荷変動、バルブタイミングの切り換え、EGR弁のON/OFFなど)により低下するため、目標空燃比KCMDをADSM処理で算出した方が、PRISM処理で算出したときよりも、O2センサ15の出力Voutの目標値Vopへの収束性を高められることによる。したがって、本実施形態では、第1触媒装置8aの担体の長さが所定長さL1以上で、かつ第1触媒装置8aの非金属触媒および金属触媒の総担持量が所定担持量M1以上であるので、ADSM処理により目標空燃比KCMDが算出され、それにより、O2センサ15の出力Voutの目標値Vopへの収束性を向上させることができる。
次に、図49を参照しながら、図27のステップ139の適応補正項FLAFADPの算出処理について説明する。同図に示すように、この処理では、まず、ステップ320において、出力偏差VO2が所定の範囲(ADL<VO2<ADH)内の値であるか否かを判別する。この判別結果がYESのとき、すなわち出力偏差VO2が小さく、O2センサ15の出力Voutが目標値Vopの近傍にあるときには、ステップ321に進み、適応則入力Uadpが所定の下限値NRLより小さいか否かを判別する。
この判別結果がNOで、Uadp≧NRLのときには、ステップ322に進み、適応則入力Uadpが所定の上限値NRHより大きいか否かを判別する。この判別結果がNOで、NRL≦Uadp≦NRHのときには、ステップ323に進み、適応補正項の今回値FLAFADP(k)を前回値FLAFADP(k−1)に設定する。すなわち、適応補正項FLAFADPの値をホールドする。この後、本処理を終了する。
一方、ステップ322の判別結果がYESで、Uadp>NRHのときには、ステップ324に進み、適応補正項の今回値FLAFADP(k)を、前回値FLAFADP(k−1)に所定の更新値X_FLAFDLTを加算した値[FLAFADP(k−1)+X_FLAFDLT]に設定した後、本処理を終了する。
一方、ステップ321の判別結果がYESで、Uadp<NRLのときには、ステップ325に進み、適応補正項の今回値FLAFADP(k)を、前回値FLAFADP(k−1)から所定の更新値X_FLAFDLTを減算した値[FLAFADP(k−1)−X_FLAFDLT]に設定した後、本処理を終了する。
以上のように、第2実施形態の内燃機関の空燃比制御装置1によれば、目標空燃比KCMDを制御入力とし、O2センサ15の出力Voutを出力とする、位相遅れやむだ時間などが比較的大きい動特性を有する制御対象において、制御対象の入出力間での制御タイミングのずれを適切に解消することができ、それにより、制御の安定性および制御性を向上させることができ、触媒後排気ガス特性を向上させることができる。
以下、本発明の第3〜第9実施形態に係る内燃機関の空燃比制御装置について説明する。なお、以下の各実施形態の説明では、上述した第2実施形態と同じまたは同等の構成要素については、同一の参照番号を付し、その説明は適宜、省略するものとする。
まず、図50を参照しながら、第3実施形態の内燃機関の空燃比制御装置について説明する。同図に示すように、この第3実施形態の空燃比制御装置1は、第2実施形態の空燃比制御装置1と比べて、オンボード同定器23のみが異なっている。具体的には、第2実施形態のオンボード同定器23では、KACT、Voutおよびφop(KCMD)に基づいて、モデルパラメータa1,a2,b1が算出されるのに対して、本実施形態のオンボード同定器23では、Voutおよびφopに基づいて、モデルパラメータa1,a2,b1が算出される。
すなわち、このオンボード同定器23では、第2実施形態の図20の式(33)〜(40)に示す同定アルゴリズムに代えて、前述した図19の式(25)〜(32)に示す同定アルゴリズムにより、モデルパラメータの同定値a1',a2',b1'が算出されるとともに、これらに前述した図38,40のリミット処理を施すことにより、モデルパラメータa1,a2,b1が算出される。このオンボード同定器23の演算処理の具体的なプログラムは、図示しないが、第2実施形態ものとほぼ同様に構成される。以上のような本実施形態の空燃比制御装置1によれば、第2実施形態の空燃比制御装置1と同様の効果を得ることができる。
次に、図51を参照しながら、第4実施形態の内燃機関の空燃比制御装置について説明する。同図に示すように、この第4実施形態の空燃比制御装置1は、第2実施形態の空燃比制御装置1と比べて、状態予測器22のみが異なっている。具体的には、第2実施形態の状態予測器22では、a1、a2、b1、KACT、Voutおよびφop(KCMD)に基づいて、予測値PREVO2が算出されるのに対して、本実施形態のオンボード同定器23では、a1、a2、b1、Voutおよびφopに基づいて、予測値PREVO2が算出される。
すなわち、この状態予測器22では、第2実施形態の図18の式(24)に示す予測アルゴリズムに代えて、同図の式(23)に示す予測アルゴリズムにより、出力偏差VO2の予測値PREVO2が算出される。この状態予測器22の演算処理の具体的なプログラムは、図示しないが、第2実施形態のものとほぼ同様に構成される。この空燃比制御装置1によれば、第2実施形態の空燃比制御装置1と同様の効果を得ることができる。
次に、図52を参照しながら、第5実施形態の内燃機関の空燃比制御装置について説明する。同図に示すように、この第5実施形態の空燃比制御装置1は、第2実施形態の空燃比制御装置1と比べると、ADSMコントローラ20、PRISMコントローラ21およびオンボード同定器23に代えて、スケジュール型DSMコントローラ20A、スケジュール型状態予測スライディングモードコントローラ21Aおよびパラメータスケジューラ28(モデルパラメータ設定手段)を用いることで、モデルパラメータa1,a2,b1を算出する点のみが異なっている。
このパラメータスケジューラ28では、まず、前述した式(58)により、エンジン回転数NEおよび吸気管内絶対圧PBAに基づいて、排気ガスボリュームAB_SVが算出される。次いで、図53に示すテーブルにより、排気ガスボリュームAB_SVに応じて、モデルパラメータa1,a2,b1が算出される。
このテーブルでは、モデルパラメータa1は、排気ガスボリュームAB_SVが大きいほど、より小さい値に設定されており、これとは逆に、モデルパラメータa2,b1は、排気ガスボリュームAB_SVが大きいほど、より大きい値に設定されている。これは、排気ガスボリュームAB_SVの増大に伴い、制御対象の出力すなわちO2センサ15の出力Voutが安定化する一方、排気ガスボリュームAB_SVの減少に伴い、O2センサ15の出力Voutが振動的になることによる。
スケジュール型DSMコントローラ20Aは、以上のように算出されたモデルパラメータa1,a2,b1を用い、前述した第2実施形態と同様のDSMコントローラ24により目標空燃比KCMDを算出する。また、スケジュール型状態予測スライディングモードコントローラ21Aも、以上のように算出されたモデルパラメータa1,a2,b1を用い、前述した第2実施形態と同様のSLDコントローラ25により目標空燃比KCMDを算出する。
この空燃比制御装置1によれば、第2実施形態の空燃比制御装置1と同様の効果を得ることができる。これに加えて、パラメータスケジューラ28を用いることにより、オンボード同定器23を用いる場合と比べて、モデルパラメータa1,a2,b1を、より迅速に算出することができる。これにより、制御の応答性を向上させることができ、良好な触媒後排気ガス特性をより迅速に確保することができる。
次に、図54を参照しながら、第6実施形態の内燃機関の空燃比制御装置について説明する。この第6実施形態の空燃比制御装置1は、第2実施形態の空燃比制御装置1のDSMコントローラ24に代えて、SDMコントローラ29を用いる点のみが異なっている。このSDMコントローラ29は、前記ΣΔ変調アルゴリズム(数式(11)〜(14)参照)を適用した制御アルゴリズムにより、予測値PREVO2(k)に基づいて、制御入力φop(k)を算出するものである。なお、本実施形態では、SDMコントローラ29により、空燃比算出手段および第1の空燃比算出手段が構成される。
同図に示すように、このSDMコントローラ29では、反転増幅器29aにより、参照信号r(k)が、値−1、参照信号用のゲインGdおよび予測値PREVO2(k)を互いに乗算した信号として生成される。次に、積分器29bにより、参照信号積分値σdr(k)が、遅延素子29cで遅延された参照信号積分値σdr(k−1)と参照信号r(k)との和の信号として生成される。一方、積分器29dにより、SDM信号積分値σdu(k)が、遅延素子29eで遅延されたSDM信号積分値σdu(k−1)と、遅延素子29jで遅延されたSDM信号u''(k−1)との和の信号として生成される。そして、差分器29fにより、参照信号積分値σdr(k)とSDM信号積分値σdu(k)との偏差信号δ''(k)が生成される。
次いで、量子化器29g(符号関数)により、SDM信号u''(k)が、この偏差信号δ''(k)を符号化した値として生成される。そして、増幅器29hにより、増幅SDM信号u(k)がSDM信号u''(k)を所定のゲインFdで増幅した値として生成され、次に、加算器29iにより、この増幅SDM信号u(k)を所定の基準値FLAFBASEに加算した値として、制御入力φop(k)が生成される。
以上のSDMコントローラ29の制御アルゴリズムは、以下の数式(59)〜(65)で表される。
r(k)=−1・Gd・PREVO2(k) ……(59)
σdr(k)=σdr(k−1)+r(k) ……(60)
σdu(k)=σdu(k−1)+u''(k−1) ……(61)
δ''(k)=σdr(k)−σdu(k) ……(62)
u''(k)=sgn(δ''(k)) ……(63)
u(k)=Fd・u''(k) ……(64)
φop(k)=FLAFBASE+u(k) ……(65)
ここで、Gd,Fdはゲインを表す。また、符号関数sgn(δ''(k))の値は、δ''(k)≧0のときにはsgn(δ''(k))=1となり、δ''(k)<0のときにはsgn(δ''(k))=−1となる(なお、δ''(k)=0のときに、sgn(δ''(k))=0と設定してもよい)。
以上のSDMコントローラ29の制御アルゴリズムにおけるΣΔ変調アルゴリズムの特性は、ΔΣ変調アルゴリズムと同様に、SDM信号u(k)を、これを制御対象に入力した際、参照信号r(k)が制御対象の出力に再現されるような値として、生成(算出)できるという点にある。すなわち、SDMコントローラ29は、前述したDSMコントローラ24と同様の制御入力φop(k)を生成できるという特性を備えている。したがって、このSDMコントローラ29を用いる本実施形態の空燃比制御装置1によれば、第2実施形態の空燃比制御装置1と同様の効果を得ることができる。なお、SDMコントローラ29の具体的なプログラムは図示しないが、DSMコントローラ24とほぼ同様に構成される。
次に、図55を参照しながら、第7実施形態の内燃機関の空燃比制御装置について説明する。この第7実施形態の空燃比制御装置1は、第2実施形態の空燃比制御装置1のDSMコントローラ24に代えて、DMコントローラ30を用いる点のみが異なっている。このDMコントローラ30は、前記Δ変調アルゴリズム(数式(15)〜(17)参照)を適用した制御アルゴリズムにより、予測値PREVO2(k)に基づいて、制御入力φop(k)を算出するものである。なお、本実施形態では、DMコントローラ30により、空燃比算出手段および第1の空燃比算出手段が構成される。
すなわち、同図に示すように、このDMコントローラ30では、反転増幅器30aにより、参照信号r(k)が、値−1、参照信号用のゲインGdおよび予測値PREVO2(k)を互いに乗算した信号として生成される。一方、積分器30bにより、DM信号積分値σdu(k)が、遅延素子30cで遅延されたDM信号積分値σdu(k−1)と、遅延素子30hで遅延されたDM信号u''(k−1)との和の信号として生成される。そして、差分器30dにより、参照信号r(k)とDM信号積分値σdu(k)との偏差信号δ''(k)が生成される。
次いで、量子化器30e(符号関数)により、DM信号u''(k)が、この偏差信号δ''(k)を符号化した値として生成される。そして、増幅器30fにより、増幅DM信号u(k)がDM信号u''(k)を所定のゲインFdで増幅した値として生成され、次に、加算器30gにより、この増幅DM信号u(k)を所定の基準値FLAFBASEに加算した値として、制御入力φop(k)が生成される。
以上のDMコントローラ30の制御アルゴリズムは、以下の式(66)〜(71)で表される。
r(k)=−1・Gd・PREVO2(k) ……(66)
σdu(k)=σdu(k−1)+u''(k−1) ……(67)
δ''(k)=r(k)−σdu(k) ……(68)
u''(k)=sgn(δ''(k)) ……(69)
u(k)=Fd・u''(k) ……(70)
φop(k)=FLAFBASE+u(k) ……(71)
ここで、Gd,Fdはゲインを表す。また、符号関数sgn(δ''(k))の値は、δ''(k)≧0のときにはsgn(δ''(k))=1となり、δ''(k)<0のときにはsgn(δ''(k))=−1となる(なお、δ''(k)=0のときに、sgn(δ''(k))=0と設定してもよい)。
以上のDMコントローラ30の制御アルゴリズムすなわちΔ変調アルゴリズムの特性は、ΔΣ変調アルゴリズムおよびΣΔ変調アルゴリズムと同様に、DM信号u(k)を制御対象に入力した際、参照信号r(k)が制御対象の出力に再現されるような値として、DM信号u(k)を生成(算出)できるという点にある。すなわち、DMコントローラ30は、前述したDSMコントローラ24およびSDMコントローラ29と同様の制御入力φop(k)を生成できるという特性を備えている。したがって、このDMコントローラ30を用いる本実施形態の空燃比制御装置1によれば、第2実施形態の空燃比制御装置1と同様の効果を得ることができる。なお、DMコントローラ30の具体的なプログラムは図示しないが、DSMコントローラ24とほぼ同様に構成される。
次に、図56および図57を参照しながら、第8実施形態の内燃機関の空燃比制御装置について説明する。図56に示すように、この第8実施形態の空燃比制御装置1は、第2実施形態の空燃比制御装置1と比べて、LAFセンサ14がエンジン3に設けられていないとともに、O2センサ15が第2触媒装置8bよりも下流側に設けられている点のみが異なっている。
また、LAFセンサ14を備えていないため、この空燃比制御装置1では、図57に示すように、オンボード同定器23により、O2センサ15の出力Voutおよび制御入力φop(目標空燃比KCMD)に基づいて、モデルパラメータa1,a2,b1が算出される。すなわち、このオンボード同定器23では、前述した図19の式(25)〜(32)に示す同定アルゴリズムにより、モデルパラメータの同定値a1',a2',b1'が算出されるとともに、これらに前述したリミット処理を施すことにより、モデルパラメータa1,a2,b1が算出される。
さらに、状態予測器22により、モデルパラメータa1,a2,b1、O2センサ15の出力Voutおよび制御入力φopに基づいて、出力偏差VO2の予測値PREVO2が算出される。すなわち、この状態予測器22では、図18の式(23)に示す予測アルゴリズムにより、出力偏差VO2の予測値PREVO2が算出される。なお、これらの状態予測器22およびオンボード同定器23の演算処理の具体的なプログラムは、図示しないが、第2実施形態のものとほぼ同様に構成され、それら以外のプログラムも、第2実施形態のものと同様に構成される。
また、この空燃比制御装置1では、LAFセンサ14がエンジン3に設けられていないとともに、O2センサ15が第2触媒装置8bよりも下流側に設けられているため、前記図48のステップ313の判別結果がYESとなる。したがって、前述したように、第1発進モード、排気ガスボリュームAB_SVが所定値よりも小さい低負荷の運転モードおよび過渡運転モードのときには、ADSM処理により目標空燃比KCMDが算出される。これは、以下の理由による。すなわち、O2センサ15および触媒装置8a,8bが本実施形態のようにレイアウトされている場合、言い換えればO2センサ15の上流側に複数の触媒装置が配置されている場合において、上記の運転モードのときには、第1触媒装置8aに供給される排気ガスに対する、O2センサ15の出力Voutの応答遅れやむだ時間などが大きくなるため、目標空燃比KCMDをADSM処理により算出した方が、PRISM処理で算出したときよりも、O2センサ15の出力Voutの目標値Vopへの収束性を高めることができ、第1触媒装置8aに流入する排気ガスの変動幅を小さくでき、その結果、両触媒装置8a,8b、特に上流側に配置された第1触媒装置8aによる排気ガスの浄化状態を良好に保つことができるためである。本実施形態の空燃比制御装置1による空燃比制御において、ここでは実験データは示さないが、例えば過渡運転モードでは、目標空燃比KCMDをADSM処理で算出することにより、PRISM処理で算出したときと比べて、排気ガス中のNOx量を数パーセント低減できることが、実験により確認された。
以上のような本実施形態の空燃比制御装置1によれば、第2実施形態の空燃比制御装置1と同様の効果を得ることができる。特に、前述したように、図46のステップ292〜294において、参照信号値用のゲインKRDSMを、排気ガスをリーン側に制御する場合と、リッチ側に制御する場合とで互いに異なる値に設定し、目標空燃比KCMDの目標値Vopへの収束速度を変更することにより、本実施形態のようなO2センサ15のみで空燃比を制御する場合においても、混合気の空燃比をリッチ側およびリーン側に変更する際、良好な触媒後排気ガス特性を確実に得ることができる。これに加えて、LAFセンサ14を用いることなく、良好な触媒後排気ガス特性を確保できるので、その分、製造コストを削減することができる。
次に、図58を参照しながら、第9実施形態の内燃機関の空燃比制御装置について説明する。同図に示すように、この第9実施形態の空燃比制御装置1は、上記第8実施形態の空燃比制御装置1において、ADSMコントローラ20、PRISMコントローラ21およびオンボード同定器23を、前記第5実施形態のスケジュール型DSMコントローラ20A、スケジュール型状態予測スライディングモードコントローラ21Aおよびパラメータスケジューラ28に置き換えたものであり、これらのコントローラ20A,21Aおよびパラメータスケジューラ28は、第5実施形態のものと同様に構成されている。この空燃比制御装置1によれば、上記第8実施形態の空燃比制御装置1と同様の効果を得ることができる。これに加えて、パラメータスケジューラ28を用いることにより、オンボード同定器23を用いる場合と比べて、モデルパラメータa1,a2,b1を、より迅速に算出することができる。これにより、制御の応答性を向上させることができ、良好な触媒後排気ガス特性をより迅速に確保することができる。
なお、ADSMコントローラ20およびPRISMコントローラ21を、実施形態のプログラムに代えて、電気回路により構成してもよい。
また、以上の第1〜第9実施形態は、応答指定型制御としてスライディングモード制御を用いた例であるが、応答指定型制御は、これに限らず、出力偏差VO2の収束挙動を指定できるものであればよい。例えば、応答指定型制御として、設計パラメータの調整により出力偏差VO2の収束挙動を指定可能なバックステッピング制御を用いてもよく、その場合にも、実施形態と同様の切換関数σの設定方法を採用することにより、前述したような効果を得ることができる。
さらに、以上の第2〜第9実施形態では、制御対象モデルとして離散時間系モデルを用いたが、制御対象モデルはこれに限らず、連続時間系モデルを用いてもよい。