以下、図面を参照しながら、本発明の第1実施形態に係る制御装置について説明する。本実施形態の制御装置は、内燃機関の空燃比を制御するものとして構成した例であり、図1は、この制御装置1およびこれを適用した内燃機関3の概略構成を示している。同図に示すように、この制御装置1は、ECU2を備えており、このECU2は、後述するように、内燃機関(以下「エンジン」という)3の運転状態に応じて、これに供給される混合気の空燃比を制御する。
このエンジン3は、図示しない車両に搭載された直列4気筒型ガソリンエンジンであり、第1〜第4の4つの気筒#1〜#4を備えている。このエンジン3の吸気管4のスロットル弁5の近傍には、例えばポテンショメータなどで構成されたスロットル弁開度センサ10が設けられている。このスロットル弁開度センサ10は、スロットル弁5の開度(以下「スロットル弁開度」という)θTHを検出して、その検出信号をECU2に送る。
さらに、吸気管4のスロットル弁5よりも下流側には、吸気管内絶対圧センサ11が設けられている。この吸気管内絶対圧センサ11は、例えば半導体圧力センサなどで構成され、吸気管4内の吸気管内絶対圧PBAを検出し、その検出信号をECU2に出力する。
また、吸気管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を算出する。また、TDC信号は、各気筒のピストン(図示せず)が吸気行程のTDC位置よりも若干、手前の所定のクランク角位置にあることを表す信号であり、所定クランク角ごとに1パルスが出力される。
一方、排気管7(排気通路)のエキゾーストマニホールド7aよりも下流側には、上流側から順に第1触媒装置8aおよび第2触媒装置8bが間隔を存して設けられている。両触媒装置8a,8b(触媒装置)はいずれも、NOx触媒と3元触媒を組み合わせたものであり、NOx触媒による酸化還元作用により、リーンバーン運転時の排気ガス中のNOxを浄化するとともに、3元触媒の酸化還元作用により、リーンバーン運転以外の運転時の排気ガス中のCO、HCおよびNOxを浄化する。
これらの第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が制御される。
さらに、ECU2には、アクセル開度センサ16、大気圧センサ17、吸気温センサ18および車速センサ19などが接続されている。このアクセル開度センサ16は、車両の図示しないアクセルペダルの踏み込み量(以下「アクセル開度」という)APを検出し、その検出信号をECU2に出力する。また、大気圧センサ17、吸気温センサ18および車速センサ19はそれぞれ、大気圧PA、吸気温TAおよび車速VPを検出し、その検出信号をECU2に出力する。
このECU2は、I/Oインターフェース、CPU、RAMおよびROMなどからなるマイクロコンピュータから構成されており、前述した各種のセンサ10〜19の出力に応じて、エンジン3の運転状態を判別するとともに、ROMに予め記憶された制御プログラムやRAMに記憶されたデータなどに従って、後述する適応空燃比制御処理またはマップ検索処理を実行することにより、目標空燃比KCMD(制御入力)を算出する。さらに、後述するように、この目標空燃比KCMDに基づいて、インジェクタ6の最終燃料噴射量TOUTを気筒ごとに算出し、この算出した最終燃料噴射量TOUTに基づいた駆動信号で、インジェクタ6を駆動することにより、混合気の空燃比を制御する。なお、本実施形態では、ECU2により、参照入力算出手段、制限値算出手段、変調出力算出手段、制御入力算出手段、制限手段および空燃比制御手段が構成されている。
図3に示すように、制御装置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により構成されている。
まず、状態予測器22について説明する。この状態予測器22は、以下に述べる予測アルゴリズムにより、出力偏差VO2の予測値PREVO2を算出するものである。本実施形態では、制御対象への制御入力を混合気の目標空燃比KCMDとし、制御対象の出力をO2センサ15の出力Voutとし、インジェクタ6を含むエンジン3の吸気系から、第1触媒装置8aを含む排気系の第1触媒装置8aの下流側のO2センサ15までの系を、制御対象と見なすとともに、この制御対象を、下式(1)に示すように、離散時間系モデルであるARXモデル(auto-regressive model with exogeneous input:外部入力を持つ自己回帰モデル)としてモデル化する。
VO2(k)=a1・VO2(k-1)+a2・VO2(k-2)+b1・DKCMD(k-dt) ……(1)
ここで、VO2は、O2センサ15の出力Voutと前述した目標値Vopとの偏差(Vout−Vop)である出力偏差を表し、DKCMDは、目標空燃比KCMD(=φop)と基準値FLAFBASEとの偏差(KCMD−FLAFBASE)である空燃比偏差を表し、記号kは、各離散データのサンプリングサイクルの順番を表している。この基準値FLAFBASEは、所定の一定値に設定される。また、a1,a2,b1はモデルパラメータを表しており、オンボード同定器23により、後述するように逐次同定される。
さらに、上記式(1)のdtは、目標空燃比KCMDの混合気がインジェクタ6により吸気系に供給されてから、O2センサ15の出力Voutに反映されるまでの予測時間を表しており、下式(2)のように定義される。
dt=d+d'+dd ……(2)
ここで、dは、LAFセンサ14からO2センサ15までの排気系のむだ時間を、d'は、インジェクタ6からLAFセンサ14までの空燃比操作系のむだ時間を、ddは、排気系と空燃比操作系との間の位相遅れ時間をそれぞれ表している(なお、後述する適応空燃比制御処理の制御プログラムでは、ADSM処理とPRISM処理とに切り換えて目標空燃比KCMDを算出する処理を行うため、位相遅れ時間dd=0に設定されている)。
また、予測値PREVO2は、目標空燃比KCMDの混合気が吸気系に供給されてから予測時間dtが経過した後の出力偏差VO2(k+dt)を予測した値であり、上記式(1)に基づき、予測値PREVO2の算出式を導出すると、下式(3)が得られる。
PREVO2(k)≒VO2(k+dt)
=a1・VO2(k+dt-1)+a2・VO2(k+dt-2)+b1・DKCMD(k) ……(3)
この式(3)では、出力偏差VO2(k)の未来値に相当するVO2(k+dt−1),VO2(k+dt−2)の算出が必要となり、実際にプログラム化するのは困難である。そのため、マトリクスA、Bを、モデルパラメータa1,a2,b1を用いて図4に示す式(4)、(5)のように定義するとともに、上式(3)の漸化式を繰り返し用いることにより、上式(3)を変形すると、図4に示す式(6)が得られる。さらに、LAF出力偏差DKACTを、LAFセンサ14の出力KACT(=φin)と基準値FLAFBASEとの偏差(KACT−FLAFBASE)として定義すると、DKACT(k)=DKCMD(k−d')の関係が成立するので、この関係を図4の式(6)に適用すると、図4に示す式(7)が得られる。この式(7)を用いた場合、予測値PREVO2が、出力偏差VO2、LAF出力偏差DKACTおよび空燃比偏差DKCMDにより算出されるので、第1触媒装置8aに実際に供給される排気ガスの空燃比の状態が反映された値として、予測値PREVO2を算出でき、その算出精度すなわち予測精度を上記式(6)を用いた場合よりも向上させることができる。この理由により、本実施形態では、予測アルゴリズムとして上記式(7)を採用する。
次に、オンボード同定器23について説明する。このオンボード同定器23は、以下に述べる逐次型同定アルゴリズムにより、前述した式(1)のモデルパラメータa1,a2,b1を算出(同定)するものである。具体的には、図5に示す(8),(9)により、モデルパラメータのベクトルθ(k)を算出する。同図の式(8)において、KP(k)は、ゲイン係数のベクトルであり、ide_f(k)は同定誤差フィルタ値である。また、式(9)におけるθ(k)Tは、θ(k)の転置行列を表している。なお、以下の説明では、「ベクトル」という表記を適宜、省略する。
上記式(8)の同定誤差フィルタ値ide_f(k)は、図5に示す式(11)〜(13)により算出される同定誤差ide(k)に、図5の式(10)に示す移動平均フィルタリング処理を施した値である。図5の式(10)のnは、移動平均フィルタリング処理のフィルタ次数(1以上の整数)を表しており、式(12)のVO2HAT(k)は、出力偏差VO2の同定値を表している。このフィルタ次数nは、後述するように、排気ガスボリュームAB_SVに応じて設定される。
さらに、前述した図5の式(8)のゲイン係数のベクトルKP(k)は、図5の式(14)により算出される。この式(14)のP(k)は、図5の式(15)で定義される3次の正方行列である。本実施形態では、同定アルゴリズムとして、重み付き最小2乗法アルゴリズムを用いるため、式(15)の重みパラメータλ1、λ2は、λ1=λ,λ2=1(λは、0<λ<1に設定される所定値)に設定されている。
次に、DSMコントローラ24(変調出力算出手段)について説明する。このDSMコントローラ24は、ΔΣ変調アルゴリズムを応用した制御アルゴリズムにより、状態予測器22で算出された予測値PREVO2に基づき、制御入力φop(=目標空燃比KCMD)を算出するとともに、これを制御対象に入力することにより、制御対象の出力としてのO2センサ15の出力Voutを目標値Vopに収束させるように制御するものである。
まず、一般的なΔΣ変調アルゴリズムについて説明する。図6は、ΔΣ変調アルゴリズムを適用したコントローラ26により、制御対象27を制御する制御系の構成を示している。同図に示すように、このコントローラ26では、差分器26aにより、参照入力r(k)と遅延素子26bで遅延されたDSM出力u(k−1)との偏差として偏差信号δ(k)が生成される。次に、積分器26cにより、偏差積分値σd(k)が、偏差信号δ(k)と遅延素子26dで遅延された偏差積分値σd(k−1)との和の信号として生成される。次いで、量子化器26e(符号関数)により、変調出力としてのDSM出力u(k)が、この偏差積分値σd(k)を符号化した信号として生成される。そして、以上のように生成されたDSM出力u(k)が制御対象27に入力されることにより、出力信号 y(k)が制御対象27から出力される。
以上のΔΣ変調アルゴリズムは、以下の式(16)〜(18)で表される。
δ(k)=r(k)−u(k−1) ……(16)
σd(k)=σd(k−1)+δ(k) ……(17)
u(k)=sgn(σd(k)) ……(18)
ただし、符号関数sgn(σd(k))の値は、σd(k)≧0のときにはsgn(σd(k))=1となり、σd(k)<0のときにはsgn(σd(k))=−1となる(なお、σd(k)=0のときに、sgn(σd(k))=0と設定してもよい)。
図7は、以上の制御系の制御シミュレーション結果を示している。同図に示すように、正弦波状の参照入力r(k)を制御系に入力した場合、DSM出力u(k)が矩形波状の信号として生成され、これを制御対象27に入力することにより、参照入力r(k)と異なる振幅で同じ周波数の、ノイズを有するものの全体として同様の波形の出力信号y(k)が、制御対象27から出力される。このように、ΔΣ変調アルゴリズムの特性は、参照入力r(k)から生成されたDSM出力u(k)を制御対象27に入力したときに、制御対象27の出力y(k)が、参照入力r(k)に対して、異なる振幅で同じ周波数の、全体として同様の波形の信号となるような値として、DSM出力u(k)を生成できるという点にある。言い換えれば、DSM出力u(k)を、参照入力r(k)が制御対象27の実際の出力y(k)に再現されるような値として、生成(算出)できるという点にある。
DSMコントローラ24は、このようなΔΣ変調アルゴリズムの特性を利用し、O2センサ15の出力Voutを目標値Vopに収束させるための制御入力φop(k)、すなわち目標空燃比KCMD(k)を算出するものである。その原理について説明すると、例えば図8に1点鎖線で示すように、出力偏差VO2が値0に対して揺らいでいる場合(すなわち、O2センサ15の出力Voutが目標値Vopに対して揺らいでいる場合)、出力偏差VO2を値0に収束させる(すなわち出力Voutを目標値Vopに収束させる)には、図8に破線で示す、出力偏差VO2を打ち消すような逆位相波形の出力偏差VO2*が生じるように、目標空燃比KCMD(k)を生成すればよい。
しかし、前述したように、本実施形態の制御対象では、目標空燃比KCMD(k)が制御対象に入力されてからO2センサ15の出力Voutに反映されるまでに、予測時間dt分の時間遅れが発生するため、現在の出力偏差VO2に基づいて、目標空燃比KCMD(k)を算出した場合の出力偏差VO2#は、図8に実線で示すように、出力偏差VO2*に対して遅れを生じ、それにより、制御タイミングのずれが生じてしまう。したがって、これを補償するために、本実施形態のADSMコントローラ20におけるDSMコントローラ24では、出力偏差VO2の予測値PREVO2を用いることにより、目標空燃比KCMD(k)が、制御タイミングのずれを生じることなく、現在の出力偏差VO2を打ち消すような出力偏差(逆位相波形の出力偏差VO2*と同様の出力偏差)を生じさせる信号として生成される。
具体的には、このDSMコントローラ24では、図9に示すように、予測値PREVO2(k)が反転増幅器24aに入力されると、この反転増幅器24aにより、参照入力r(k)が、予測値PREVO2(k)に値−1および後述する非線形ゲインGd(所定の値)を乗算した信号として生成され、この参照入力r(k)がリミッタ24b(図10参照、制限値算出手段)に入力されることにより、参照入力r(k)の制限値rl(k)が生成される。さらに、差分器24cにより、この制限値rl(k)と遅延素子24dで遅延されたDSM出力u(k−1)との偏差として偏差信号δ(k)が生成される。
次いで、積分器24eにより、偏差積分値σd(k)が、偏差信号δ(k)と遅延素子24fで遅延された偏差積分値σd(k−1)との和の信号として生成され、次に、量子化器24g(符号関数)により、DSM出力u(k)が、この偏差積分値σd(k)を符号化した値として生成される。そして、増幅器24hにより、増幅DSM出力u''(k)がDSM出力u(k)を所定のゲインFdで増幅した値として生成され、次に、加算器24iにより、この増幅DSM出力u''(k)に後述する所定の基準値FLAFBASEと適応補正項FLAFADPとの和を加算した値として、目標空燃比KCMD(k)が生成される。
以上のDSMコントローラ24の制御アルゴリズムは、以下の式(19)〜(25)で表される。
r(k)=−1・Gd・PREVO2(k) ……(19)
rl(k)=sat(r(k)) ……(20)
δ(k)=rl(k)−u(k−1) ……(21)
σd(k)=σd(k−1)+δ(k) ……(22)
u(k)=sgn(σd(k)) ……(23)
u''(k)=Fd・u(k) ……(24)
KCMD(k)=FLAFBASE+FLAFADP+u''(k) ……(25)
ここで、非線形ゲインGdの値は、PREVO2(k)≧0のときには正の所定値Gd1(例えば値0.2)に、PREVO2(k)<0のときには所定値Gd1よりも大きい所定値Gd2(例えば値2)にそれぞれ設定される。このような非線形ゲインGdを用いる理由については後述する。また、sat(r(k))は、飽和関数であり、その値は、図10に示すように、r(k)<−1のときにはsat(r(k))=−1となり、−1≦r(k)≦1のときにはsat(r(k))=r(k)となり、r(k)>1のときにはsat(r(k))=1となる。さらに、sgn(σd(k))は符号関数であり、その値は、σd(k)≧0のときにはsgn(σd(k))=1となり、σd(k)<0のときにはsgn(σd(k))=−1となる(なお、σd(k)=0のときに、sgn(σd(k))=0と設定してもよい)。
図11は、以上のDSMコントローラ24の制御シミュレーション結果を示しており、図12は、DSMコントローラ24のリミッタ24bを省略した比較例の制御シミュレーション結果を示している。また、両図に示すデータは、理解の容易化のために、(FLAFBASE+FLAFADP)の値を、値1.0(理論空燃比に相当する当量比の値)に設定した場合のものである。
まず、図12を参照すると、この比較例では、リミッタ24bがないことによって、積分器24eにおける積分値σd(k)が増大し、それに伴い、予測値PREVO2(k)の符号反転から、目標空燃比KCMD(k)がリッチ側とリーン側との間で変化するまでの間に、むだ時間(時刻t10〜t11の間、t12〜t13の間)を生じていることが分かる。これは、積分値σd(k)の増大に伴い、予測値PREVO2(k)の符号反転から、DSM出力u(k)の符号反転までの間に、むだ時間を生じることによる。
これに対して、図11を参照すると、本実施形態のDSMコントローラ24では、リミッタ24bを用いることにより、積分器24eにおける偏差積分値σd(k)が増大することなく抑制されており、それに伴い、予測値PREVO2(k)の符号反転と同時に、目標空燃比KCMD(k)がリッチ側とリーン側との間で変化している。すなわち、予測値PREVO2(k)の符号反転から、DSM出力u(k)の符号反転までの間に、むだ時間を生じていないことが分かる。このように、本実施形態のDSMコントローラ24によれば、予測値PREVO2の符号反転に対して、むだ時間を生じることなく目標空燃比KCMDをリッチ側とリーン側との間で変化させることができる。
次に、前記PRISMコントローラ21について説明する。このPRISMコントローラ21は、以下に述べるオンボード同定型スライディングモード制御処理(以下「PRISM処理」という)の制御アルゴリズムにより、O2センサ15の出力Voutを目標値Vopに収束させるための目標空燃比KCMDを算出するものであり、状態予測器22、オンボード同定器23およびスライディングモードコントローラ(以下「SLDコントローラ」という)25により構成されている。
このPRISMコントローラ21のうちの状態予測器22およびオンボード同定器23については、既に説明したので、ここではSLDコントローラ25についてのみ説明する。このSLDコントローラ25は、スライディングモード制御アルゴリズムに基づいてスライディングモード制御を行うものであり、その制御アルゴリズムは、前述した式(1)の離散時間系モデルおよび出力偏差VO2の予測値PREVO2を用いることにより、図13に示す式(26)〜(30)のように定義される。
図13の式(26)は、予測値PREVO2を用いた場合の切換関数σPREを表しており、同式におけるS1,S2は、−1<(S2/S1)<1の関係が成立するように設定される所定の係数である。また、式(27)は、予測値の今回値PREVO2(k)および前回値PREVO2(k−1)の組み合わせを切換直線上に収束させるための操作量Usl(k)を表しており、この操作量Usl(k)は、等価制御入力Ueq(k)、到達則入力Urch(k)および適応則入力Uadp(k)の総和として設定されるとともに、これらの等価制御入力Ueq(k)、到達則入力Urch(k)および適応則入力Uadp(k)はそれぞれ、式(28)〜(30)のように定義される。なお、式(29)において、Fはゲインを表し、式(30)において、Gはゲインを、ΔTは制御周期をそれぞれ表す。このSLDコントローラ25では、以上のアルゴリズムで算出される操作量Usl(k)に、基準値FLAFBASEおよび適応補正項FLAFADPを加算することによって、目標空燃比KCMDが算出される。
以下、ECU2により実行される燃料噴射量の算出処理について、図14を参照しながら説明する。なお、以下の説明では、今回値であることを示す記号(k)を適宜、省略する。図14は、この制御処理のメインルーチンを示しており、本処理は、TDC信号の入力に同期して割り込み実行される。この処理では、後述する適応空燃比制御処理、またはマップ検索処理により算出された目標空燃比KCMDを用いることによって、燃料噴射量TOUTが気筒ごとに算出される。
まず、ステップ1(図では「S1」と略す。以下同じ)において、前述した各種のセンサ10〜19の出力を読み込むとともに、読み込んだデータをRAM内に記憶する。
次に、ステップ2に進み、基本燃料噴射量Timを算出する。この処理では、エンジン回転数NEおよび吸気管内絶対圧PBAに応じて、図示しないマップを検索することにより、基本燃料噴射量Timを算出する。
次いで、ステップ3に進み、総補正係数KTOTALを算出する。この総補正係数KTOTALは、各種の運転パラメータ(例えば吸気温TAや、大気圧PA、エンジン水温TW、アクセル開度APなど)に応じて、各種のテーブルやマップを検索することで各種の補正係数を算出するとともに、これらの各種の補正係数を互いに乗算することにより、算出される。
次に、ステップ4に進み、適応制御フラグF_PRISMONの設定処理を実行する。この処理の内容は図示しないが、具体的には、以下の(a)〜(f)の条件がいずれも成立しているときには、適応空燃比制御処理で算出された目標空燃比KCMDを使用する条件が成立しているとして、それを表すために、適応制御フラグF_PRISMONが「1」にセットされる。一方、(a)〜(f)の条件のうちの少なくとも1つが成立していないときには、適応制御フラグF_PRISMONが「0」にセットされる。
(a)LAFセンサ14およびO2センサ15がいずれも活性化していること。
(b)エンジン3がリーンバーン運転中でないこと。
(c)スロットル弁5が全開状態でないこと。
(d)点火時期の遅角制御中でないこと。
(e)フューエルカット運転中でないこと。
(f)エンジン回転数NEおよび吸気管内絶対圧PBAがいずれも、所定の範囲囲内の値であること。
次に、ステップ5に進み、ステップ4で設定された適応制御フラグF_PRISMONが「1」であるか否かを判別する。この判別結果がYESのときには、ステップ6に進み、目標空燃比KCMDを、後述する適応空燃比制御処理で算出された適応目標空燃比KCMDSLDに設定する。
一方、ステップ5の判別結果がNOのときには、ステップ7に進み、目標空燃比KCMDをマップ値KCMDMAPに設定する。このマップ値KCMDMAPは、エンジン回転数NEおよび吸気管内絶対圧PBAに応じて、図示しないマップを検索することにより、算出される。
以上のステップ6または7に続くステップ8では、オブザーバフィードバック補正係数#nKLAFを気筒ごとに算出する。このオブザーバフィードバック補正係数#nKLAFは、気筒ごとの実際の空燃比のばらつきを補正するためのものであり、具体的には、オブザーバによりLAFセンサ14の出力KACTから気筒ごとの実際の空燃比を推定し、これらの推定した空燃比に応じて、PID制御により算出される。なお、このオブザーバフィードバック補正係数#nKLAFの記号#nは、気筒の番号#1〜#4を表すものであり、これは、後述する要求燃料噴射量#nTCYLおよび最終燃料噴射量#nTOUTにおいても同様である。
次いで、ステップ9に進み、フィードバック補正係数KFBを算出する。このフィードバック補正係数KFBは、具体的には、以下のように算出される。すなわち、LAFセンサ14の出力KACTと目標空燃比KCMDとの偏差に応じて、PID制御によりフィードバック係数KLAFを算出する。また、図示しないSelf Tuning Regulator 型の適応制御器によりフィードバック補正係数KSTRを算出し、これを目標空燃比KCMDで除算することにより、フィードバック補正係数kstrを算出する。そして、エンジン3の運転状態に応じて、これらの2つのフィードバック係数KLAFおよびフィードバック補正係数kstrの一方を、フィードバック補正係数KFBとして設定する。
次いで、ステップ10に進み、補正目標空燃比KCMDMを算出する。この補正目標空燃比KCMDMは、空燃比A/Fの変化による充填効率の変化を補償するためのものであり、前述したステップ6または7で算出された目標空燃比KCMDに応じて、図示しないテーブルを検索することにより算出される。
次に、ステップ11に進み、以上のように算出した基本燃料噴射量Tim、総補正係数KTOTAL、オブザーバフィードバック補正係数#nKLAF、フィードバック補正係数KFB、および補正目標空燃比KCMDMを用い、下式(31)により、気筒ごとの要求燃料噴射量#nTCYLを算出する。
#nTCYL=Tim・KTOTAL・KCMDM・KFB・#nKLAF
……(31)
次に、ステップ12に進み、要求燃料噴射量#nTCYLを付着補正することにより、最終燃料噴射量#nTOUTを算出する。この最終燃料噴射量#nTOUTは、具体的には、今回の燃焼サイクルでインジェクタ6から噴射された燃料が燃焼室の内壁面に付着する割合などを、運転状態に応じて算出し、そのように算出した割合に基づいて、要求燃料噴射量#nTCYLを補正することにより、算出される。
次いで、ステップ13に進み、以上のように算出した最終燃料噴射量#nTOUTに基づく駆動信号を、対応する気筒のインジェクタ6に出力した後、本処理を終了する。
次に、図15を参照しながら、ADSM処理およびPRISM処理を含む適応空燃比制御処理について説明する。この処理は、所定の周期(例えば10msec)で実行される。また、この処理では、エンジン3の運転状態に応じて、ADSM処理またはPRISM処理により、適応目標空燃比KCMDSLDが算出される。
この処理では、まず、ステップ20において、各種パラメータを算出する。このステップ20では、図示しない算出式により、エンジン回転数NEおよび吸気管内絶対圧PBAに基づいて、排気ガスボリュームAB_SVを算出する。さらに、この排気ガスボリュームAB_SVに応じて、図示しないテーブルを検索することにより、前述した同定アルゴリズムにおける重みパラメータλ1およびフィルタ次数nなどを算出する。
次に、ステップ21に進み、オンボード同定器23の演算を実行する。具体的には、上記ステップ20で算出した前述した重みパラメータλ1およびフィルタ次数nを用い、前述した式(8)〜(15)に基づくプログラム(図示せず)により、モデルパラメータa1,a2,b1を算出する。
次いで、ステップ22に進み、状態予測器22の演算を実行する。具体的には、上記ステップ21で算出したモデルパラメータa1,a2,b1を用い、前述した式(7)に基づくプログラム(図示せず)により、出力偏差VO2の予測値PREVO2を算出する。
次に、ステップ23に進み、前述した式(26)〜(30)に基づくプログラム(図示せず)により、操作量Uslを算出する。
次いで、ステップ24に進み、スライディングモード操作量DKCMDSLDを算出する。このステップ24では、図示しないプログラムにより、エンジン3の運転状態に応じた補正値を、上記ステップ23で算出した操作量Uslに加減算することによって、スライディングモード操作量DKCMDSLDを算出する。
次に、ステップ25に進み、ΔΣ変調操作量DKCMDDSMを算出する。このΔΣ変調操作量DKCMDDSMを算出する処理については、後述する。
次いで、ステップ26に進み、適応目標空燃比KCMDSLDを算出する。具体的には、図示しないが以下のように適応目標空燃比KCMDSLDを算出する。まず、DSMモードフラグF_DSMMODEが「1」であるか否かを判別する。このDSMモードフラグF_DSMMODEは、エンジン3が、適応目標空燃比KCMDSLDをADSM処理で算出すべき運転モードにあるとき、すなわち低負荷運転モード、負荷変動の大きい過渡運転モードおよびアイドル運転モードにあるときなどには「1」にセットされ、それ以外のときには「0」にセットされる。
この判別結果がYESのとき、すなわちF_DSMMODE=1で、エンジン3がADSM処理で適応目標空燃比KCMDSLDを算出すべき運転モードにあるときには、上記ステップ25で算出したΔΣ変調操作量DKCMDDSMを用い、下式(32)により、適応目標空燃比KCMDSLDを算出する。なお、この式(32)は、前述した式(25)に相当する。
KCMDSLD=DKCMDDSM+FLAFBASE+FLAFADP
……(32)
ここで、FLAFADPは、適応補正項であり、次のステップ27でその次回値が算出される。
一方、上記判別結果がNOのとき、すなわちF_DSMMODE=0で、エンジン3がPRISM処理で適応目標空燃比KCMDSLDを算出すべき運転モードにあるときには、前記ステップ24で算出したスライディングモード操作量DKCMDSLDを用い、下式(33)により、適応目標空燃比KCMDSLDを算出する。
KCMDSLD=DKCMDSLD+FLAFBASE+FLAFADP
……(33)
次に、ステップ27に進み、適応補正項FLAFADPの次回値を算出する。具体的には、図示しないプログラムにより、出力偏差VO2および適応則入力Uadpに応じた補正値を、適応補正項FLAFADPの今回値に加減算することによって、適応補正項FLAFADPの次回値を算出する。この後、本処理を終了する。
次に、図16および図17を参照しながら、前述した図15のステップ25のΔΣ変調操作量DKCMDDSMを算出する処理について説明する。同図に示すように、この処理では、まず、ステップ30において、前述したDSMモードフラグF_DSMMODEが「1」であるか否かを判別する。
ステップ30の判別結果がYESで、エンジン3が適応目標空燃比KCMDSLDをADSM処理で算出すべき運転モードにあるときには、ステップ31に進み、RAMに記憶されている、前回のループで算出されたDSM出力の今回値DSMSGNS(k)[=u(k)、変調出力]を、前回値DSMSGNS(k−1)[=u(k−1)]として設定する。
次に、ステップ32に進み、RAMに記憶されている、前回のループで算出された偏差積分値の今回値DSMSIGMA(k)[=σd(k)]を、前回値DSMSIGMA(k−1)[=σd(k−1)]として設定する。
次いで、ステップ33に進み、出力偏差の予測値PREVO2(k)が値0以上であるか否かを判別する。この判別結果がYESのときには、エンジン3が混合気の空燃比をリーン側に変更すべき運転状態にあるとして、ステップ34に進み、参照入力用の非線形ゲインKRDSM(=Gd)を、リーン化用の値KRDSML(=Gd1)に設定した後、後述するステップ36に進む。
一方、ステップ33の判別結果がNOのときには、エンジン3が混合気の空燃比をリッチ側に変更すべき運転状態にあるとして、ステップ35に進み、参照入力用の非線形ゲインKRDSMを、リーン化用の値KRDSMLよりも大きいリッチ化用の値KRDSMR(=Gd2)に設定した後、ステップ36に進む。このように、混合気の空燃比をリッチ側またはリーン側に変更する際、非線形ゲインKRDSMの値が異なる値に設定される理由については後述する。
ステップ34または35に続くステップ36では、参照入力DSMVO2[=r(k)]を、値−1、参照入力用の非線形ゲインKRDSMおよび予測値の今回値PREVO2(k)を互いに乗算した値[−1・KRDSM・PREVO2(k)]に設定する。この処理は、前述した式(19)に相当する。
次いで、ステップ37に進み、上記ステップ36で算出した参照入力SMVO2が値−1よりも小さいか否かを判別する。この判別結果がYESで、DSMVO2<−1のときには、ステップ38に進み、参照入力の制限値DSMVO2L(=rl(k))を値−1に設定し、次に、後述する図17のステップ42に進む。
一方、ステップ37の判別結果がNOで、−1≦DSMVO2のときには、ステップ39に進み、参照入力DSMVO2が値1よりも大きいか否かを判別する。この判別結果がYESで、1<DSMVO2のときには、ステップ40に進み、参照入力の制限値DSMVO2Lを値1に設定し、次いで、後述する図17のステップ42に進む。一方、ステップ39の判別結果がNOで、−1≦DSMVO2≦1のときには、ステップ41に進み、参照入力の制限値DSMVO2Lをステップ36で算出した参照入力DSMVO2に設定し、次いで、図17のステップ42に進む。以上のステップ37〜40の処理が、前述したリミッタ24bおよび式(20)に相当する。
ステップ38、40または41に続く図17のステップ42では、参照入力の制限値DSMVO2Lから、ステップ31で算出したDSM出力の前回値DSMSGNS(k−1)を減算した値[DSMVO2L−DSMSGNS(k−1)]を、偏差信号値DSMDELTAとして設定する。この処理は、前述した式(21)に相当する。
次に、ステップ43に進み、偏差積分値の今回値DSMSIGMA(k)を、ステップ32で算出した前回値DSMSIGMA(k−1)と、ステップ42で算出した偏差信号値DSMDELTAとの和[DSMSIGMA(k−1)+DSMDELTA]に設定する。この処理は、前述した式(22)に相当する。
次に、ステップ44〜46において、ステップ43で算出した偏差積分値の今回値DSMSIGMA(k)が値0以上のときには、DSM出力の今回値DSMSGNS(k)を値1に設定し、偏差積分値の今回値DSMSIGMA(k)が値0よりも小さいときには、DSM出力の今回値DSMSGNS(k)を値−1に設定する。以上のステップ44〜46の処理は、前述した式(23)に相当する。
次いで、ステップ47において、排気ガスボリュームAB_SVに応じて、図18に示すテーブルを検索することにより、DSM出力用のゲインKDSM(=Fd)を算出する。同図に示すように、このゲインKDSMは、排気ガスボリュームAB_SVが小さいほど、より大きな値に設定されている。これは、排気ガスボリュームAB_SVが小さいほど、すなわちエンジン3の負荷が小さい状態であるほど、O2センサ15の出力Voutの応答性が低下するので、それを補償するためである。このようにゲインKDSMを設定することにより、ΔΣ変調操作量DKCMDDSMを、例えばオーバーゲイン状態などを回避しながら、エンジン3の運転状態に応じて適切に算出することができ、それにより、触媒後排気ガス特性(触媒装置8a,8bにより浄化された排気ガスの特性)を向上させることができる。
なお、このゲインKDSMの算出に用いるテーブルは、ゲインKDSMが排気ガスボリュームAB_SVに応じて設定されている上記テーブルに限らず、エンジン3の運転負荷状態を表すパラメータ(例えば基本燃料噴射時間Tim)に応じてゲインKDSMが予め設定されているものであればよい。また、触媒装置8a,8bの劣化判別器が設けられている場合には、この劣化判別器で判別された触媒装置8a,8bの劣化度合が大きいほど、ゲインDSMをより小さい値に補正するようにしてもよい。さらに、ゲインKDSMを、オンボード同定器23によって同定されたモデルパラメータに応じて決定してもよい。例えば、モデルパラメータb1の逆数(1/b1)の値が大きいほど、言い換えればモデルパラメータb1の値が小さいほど、ゲインKDSMをより大きい値に設定してもよい。
次に、ステップ48に進み、ΔΣ変調操作量DKCMDDSMを、DSM出力用のゲインKDSMと、DSM出力の今回値DSMSGNS(k)とを互いに乗算した値[KDSM・DSMSGNS(k)]に設定した後、本処理を終了する。この処理が、前述した式(24)に相当する。
図16に戻り、ステップ30の判別結果がNOで、エンジン3が適応目標空燃比KCMDSLDをADSM処理で算出すべき運転モードにないときには、ステップ49に進み、DSM出力の今回値DSMSGNS(k)および前回値DSMSGNS(k−1)をいずれも値1に設定する。
次いで、ステップ50に進み、偏差積分値の今回値DSMSIGMA(k)および前回値DSMSIGMA(k−1)をいずれも値0に設定する。次いで、図17のステップ51に進み、ΔΣ変調操作量DKCMDDSMを値0に設定した後、本処理を終了する。
次に、図19および図20を参照しながら、前述した非線形ゲインKRDSM(=Gd)が、混合気の空燃比をリッチ側に変更する場合とリーン側に変更する場合とで、異なる値KRDSML(=Gd1),KRDSMR(=Gd2>Gd1)に設定される理由について説明する。図19は、本実施形態の非線形ゲインKRDSMを用いた制御装置1により空燃比を制御した場合の動作の一例を示しており、図20は、比較のために非線形ゲインKRDSMに代えて線形ゲイン(一定値のゲイン)を用いた場合の動作の比較例を示している。両図に示すデータは、理解の容易化のために、(FLAFBASE+FLAFADP)の値を、値1.0(理論空燃比に相当する当量比の値)に設定した場合のものである。また、両図に示すNOxのデータは、第2触媒装置8bの下流側における測定データである。
両図のデータを比較すると、非線形ゲインKRDSMを用いた場合、O2センサ15の出力Voutがリッチ側にある状態(Vout>Vopの状態)、およびリーン側にある状態(Vout<Vopの状態)のいずれにおいても、線形ゲインを用いた場合よりも、第1および第2触媒装置8a,8bによるNOxの浄化率が向上することが分かる。これは、以下の理由による。
すなわち、線形ゲインを用いると、図20に示すように、O2センサ15の出力Voutがリッチ側にあることで、混合気を空燃比をリッチ側からリーン側に変化させる場合と、これと逆の場合とで、目標空燃比KCMDの変化パターンは、値1.0のラインに対して線対称の傾向を示す。その結果、混合気を空燃比をリッチ側からリーン側に変化させる場合には、目標空燃比KCMDがリッチ側の値に保持される時間よりも、リーン側の値に保持される時間が長くなるため、第1触媒装置8a内の触媒の上流側端部が過度にリーン化されることで、第1および第2触媒装置8a,8bによるNOx浄化率の低下を招く。一方、混合気を空燃比をリーン側からリッチ側に変化させる場合には、第1および第2触媒装置8a,8b全体がリーン雰囲気に保持されるため、第1および第2触媒装置8a,8bによるNOx浄化率の低下を招く。
これに対して、図19に示すように、本実施形態の制御装置1では、混合気の空燃比をリッチ側からリーン側に変更する際には、非線形ゲインKRDSMを、リッチ化用の値KRDSMRよりも小さいリーン化用の値KRDSMLに設定することで、目標空燃比KCMDがリーン側の値に保持される時間(t20〜t21の間の時間)を短縮し、それにより、第1触媒装置8a内の触媒の上流側端部がリーン化されるのを防止することで、第1および第2触媒装置8a,8bによるNOx浄化率を向上させている。一方、混合気の空燃比をリーン側からリッチ側に変更する際には、非線形ゲインKRDSMを、リーン化用の値KRDSMLよりも大きいリッチ化用の値KRDSMRに設定することで、目標空燃比KCMDを、長時間(t22〜t23の間の時間)リッチ側の値に保持し、第1および第2触媒装置8a,8bのリーン雰囲気を迅速に解消させ、リッチ雰囲気に移行させる。それにより、第1および第2触媒装置8a,8bにおけるNOx浄化能力を迅速に回復させることによって、両者のNOx浄化率を向上させている。以上により、混合気の空燃比をリッチ側およびリーン側に変更する際、良好な触媒後排気ガス特性を確保することができる。
以上のように、本実施形態に係る制御装置1によれば、参照入力VO2DSMの制限値が、その絶対値がΔΣ変調アルゴリズムからの出力の絶対値を超えないように算出されるので、従来と異なり、偏差積分値DSMSIGMAの絶対値が増大化するのを回避でき、それにより、予測値PREVO2の符号が反転した際、DSM出力DSMSGNの符号を迅速に反転させることができ、ΔΣ変調アルゴリズムにおける入出力間でのむだ時間の発生を防止することができる。その結果、むだ時間や応答遅れの大きい特性を有する、内燃機関3の混合気を制御する制御系において、参照入力VO2DSMすなわち出力偏差VO2の予測値PREVO2を、目標空燃比KCMDすなわちO2センサ15に供給される排気ガスに迅速に反映させることができ、O2センサ15の出力Voutの目標値Vopへの収束性を向上させることができる。その結果、空燃比制御の制御性を向上させることができる。
また、参照入力VO2DSMが、予測値PREVO2の正負に応じた非線形ゲインKRDSMを予測値PREVO2に乗算することにより、算出されるとともに、非線形ゲインKRDSMの値が前述したように設定されることにより、混合気の空燃比をリッチ側およびリーン側に変更する際、良好な触媒後排気ガス特性を確保することができる。
次に、図21〜図23を参照しながら、本発明の第2実施形態に係る制御装置について説明する。以下の説明では、第1実施形態と異なる点についてのみ説明するとともに、第1実施形態と同じまたは同等の構成要素については、同一の参照番号を付し、その説明は省略する。図21に示すように、本実施形態の制御装置1は、第1実施形態の制御装置1と比べて、DSMコントローラ24のみが異なっている。
このDSMコントローラ24では、予測値PREVO2(k)が反転増幅器24aに入力されると、この反転増幅器24aにより、参照入力r(k)が、予測値PREVO2(k)に値−1および非線形ゲインGdを乗算した信号として生成される。次いで、差分器24cにより、この参照入力r(k)と遅延素子24dで遅延されたDSM出力u(k−1)との偏差として偏差信号δ(k)が生成される。
次いで、積分器24jにより、偏差積分値σd(k)が、偏差信号δ(k)と遅延素子24fで遅延された偏差積分値の制限値σdl(k−1)との和の信号として生成される。次に、この偏差積分値σd(k)がリミッタ24k(図22参照、制限手段)に入力されることにより、偏差積分値の制限値σdl(k)が生成され、そして、量子化器24g(符号関数)により、DSM出力u(k)が、この制限値σdl(k)を符号化した値として生成される。そして、DSM出力u(k)に基づき、前述したように目標空燃比KCMD(k)が生成される。
以上のDSMコントローラ24の制御アルゴリズムは、以下の式(34)〜(40)で表される。
r(k)=−1・Gd・PREVO2(k) ……(34)
δ(k)=r(k)−u(k−1) ……(35)
σd(k)=σdl(k−1)+δ(k) ……(36)
σdl(k)=sat(σd(k)) ……(37)
u(k)=sgn(σdl(k)) ……(38)
u''(k)=Fd・u(k) ……(39)
KCMD(k)=FLAFBASE+FLAFADP+u''(k) ……(40)
ここで、非線形ゲインGdの値は、PREVO2(k)≧0のときには正の所定値Gd1(例えば値0.2)に、PREVO2(k)<0のときには所定値Gd1よりも大きい所定値Gd2(例えば値2)にそれぞれ設定される。また、sat(σd(k))は、飽和関数であり、その値は、図22に示すように、σd(k)<−2のときにはsat(σd(k))=−2となり、−2≦σd(k)≦2のときにはsat(σd(k))=σd(k)となり、σd(k)>2のときにはsat(σd(k))=2となる。さらに、sgn(σdl(k))は符号関数であり、その値は、σdl(k)≧0のときにはsgn(σdl(k))=1となり、σdl(k)<0のときにはsgn(σdl(k))=−1となる(なお、σdl(k)=0のときに、sgn(σdl(k))=0と設定してもよい)。
なお、以上のDSMコントローラ24の演算処理の具体的なプログラムは、図示しないが、第1実施形態の図16,17に示すものとほぼ同様に構成される。
図23は、以上のDSMコントローラ24の制御シミュレーション結果を示しており、同図に示すデータは、理解の容易化のために、(FLAFBASE+FLAFADP)の値を、値1.0(理論空燃比に相当する当量比の値)に設定した場合のものである。
同図を参照すると、本実施形態のDSMコントローラ24では、リミッタ24kを用いることにより、積分器24jにおける偏差積分値σd(k)が、その絶対値が値2以下になるように抑制されており、それに伴い、予測値PREVO2(k)の符号が反転した際、予測値PREVO2(k)の符号反転から、目標空燃比KCMD(k)がリッチ側とリーン側との間で変化するまでの間のむだ時間(時刻t30〜t31の間、t32〜t33の間)が、リミッタを省略した図12の比較例におけるむだ時間(時刻t10〜t11の間、t12〜t13の間)よりも短縮され、改善されていることが分かる。
以上のように、本実施形態の制御装置1によれば、積分器24jにおける偏差積分値σd(k)が、その絶対値が値2以下になるように抑制されることにより、従来と異なり、偏差積分値σd(k)の絶対値が増大化するのを回避でき、それにより、予測値PREVO2の符号が反転した際、目標空燃比KCMD(k)が反転するまでのむだ時間を従来よりも短縮できる。その結果、内燃機関3の混合気を制御する制御系において、参照入力VO2DSMすなわち出力偏差VO2の予測値PREVO2を、目標空燃比KCMDすなわちO2センサ15に供給される排気ガスに従来よりも短時間で反映させることができ、O2センサ15の出力Voutの目標値Vopへの収束性を向上させることができる。その結果、空燃比制御の制御性を向上させることができる。
また、参照入力r(k)が、予測値PREVO2(k)に値−1および非線形ゲインGdを乗算した値として算出されるので、第1実施形態と同様の作用効果を得ることができる。なお、リミッタ24kの上下限値は、本実施形態の値2および値−2に限らず、任意に変更可能であることは言うまでもない。
次に、図24を参照しながら、本発明の第3実施形態に係る制御装置について説明する。同図に示すように、本実施形態の制御装置1は、第1実施形態の制御装置1のDSMコントローラ24に代えてSDMコントローラ29を用いる点のみが異なっている。このSDMコントローラ29(変調出力算出手段)は、ΣΔ変調アルゴリズムを適用した制御アルゴリズムにより、予測値PREVO2(k)に基づいて、目標空燃比KCMD(k)を算出するものである。
このSDMコントローラ29では、予測値PREVO2(k)が反転増幅器29aに入力されると、この反転増幅器29aにより、参照入力r(k)が、予測値PREVO2(k)に値−1および非線形ゲインGdを乗算した信号として生成され、この参照入力r(k)が前記リミッタ24bと同様のリミッタ29b(制限値算出手段)に入力されることにより、参照入力r(k)の制限値rl(k)が生成される。さらに、積分器29cにより、制限値の積分値σdrl(k)が、遅延素子29dで遅延された制限値の積分値σdrl(k−1)と制限値rl(k)との和の信号として生成される。一方、積分器29eにより、SDM出力積分値σdu'(k)が、遅延素子29fで遅延されたSDM出力積分値σdu'(k−1)と、遅延素子29gで遅延されたSDM出力u'(k−1)との和の信号として生成される。そして、差分器29hにより、制限値の積分値σdrl(k)とSDM出力積分値σdu'(k)との偏差信号δ(k)が生成される。
次いで、量子化器29i(符号関数)により、変調出力としてのSDM出力u'(k)が、この偏差信号δ(k)を符号化した値として生成される。そして、増幅器29jにより、増幅SDM出力u'''(k)がSDM出力u'(k)を所定のゲインFdで増幅した値として生成され、次に、加算器29kにより、この増幅SDM出力u'''(k)に所定の基準値FLAFBASEおよび適応補正項FLAFADPを加算した値として、目標空燃比KCMD(k)が生成される。
以上のSDMコントローラ29の制御アルゴリズムは、以下の式(41)〜(48)で表される。
r(k)=−1・Gd・PREVO2(k) ……(41)
rl(k)=sat(r(k)) ……(42)
σdrl(k)=σdrl(k−1)+rl(k) ……(43)
σdu'(k)=σdu'(k−1)+u'(k−1) ……(44)
δ(k)=σdrl(k)−σdu'(k) ……(45)
u'(k)=sgn(δ(k)) ……(46)
u'''(k)=Fd・u'(k) ……(47)
KCMD(k)=FLAFBASE+FLAFADP+u'''(k) ……(48)
ここで、非線形ゲインGdの値は、PREVO2(k)≧0のときには正の所定値Gd1(例えば値0.2)に、PREVO2(k)<0のときには所定値Gd1よりも大きい所定値Gd2(例えば値2)にそれぞれ設定される。また、sat(r(k))は、飽和関数であり、その値は、r(k)<−1のときにはsat(r(k))=−1となり、−1≦r(k)≦1のときにはsat(r(k))=r(k)となり、r(k)>1のときにはsat(r(k))=1となる。さらに、sgn(δ(k))は符号関数であり、その値は、δ(k)≧0のときにはsgn(δ(k))=1となり、δ(k)<0のときにはsgn(δ(k))=−1となる(なお、δ(k)=0のときに、sgn(δ(k))=0と設定してもよい)。
なお、以上のSDMコントローラ29の演算処理の具体的なプログラムは、図示しないが、一部を除いて、第1実施形態の図16,17に示すものと同様に構成される。
以上の本実施形態に係る制御装置1によれば、参照入力r(k)の制限値rl(k)が、その絶対値がSDM出力u'(k)の絶対値を超えないように算出されるので、従来と異なり、制限値の積分値σdrl(k)とSDM出力の積分値σdu'(k)と偏差δ(k)の絶対値が増大するのを回避でき、それにより、予測値PREVO2(k)の符号が反転した際、SDM出力u'(k)の符号を迅速に反転させることができ、ΣΔ変調アルゴリズムにおける入出力間でのむだ時間の発生を防止することができる。その結果、前述した第1実施形態の制御装置1と同様の効果を得ることができる。
なお、以上の各実施形態は、本発明の制御装置を内燃機関3の空燃比を制御するものとして構成した例であるが、本発明はこれに限らず、他の産業機器に適用可能であることは言うまでもない。
また、各実施形態は、予測値PREVO2(k)の正負に応じた非線形ゲインGd,KRDSMを予測値PREVO2(k)に乗算することにより、参照入力r(k),VO2DSMを算出した例であるが、参照入力r(k),VO2DSMを算出する手法はこれに限らず、予測値PREVO2(k)に乗算する値を予測値PREVO2(k)の正負に応じた異なる値として設定することにより、参照入力r(k),VO2DSMを算出する手法であればよい。例えば、ゲインスケジューラを用いることにより、参照入力r(k),VO2DSMを算出してもよい。
さらに、各実施形態では、ADSMコントローラ20およびDSMコントローラ24をプログラムにより構成したが、ADSMコントローラ20およびDSMコントローラ24を、電気回路により構成してもよい。