図1に、熱発生のパターンが単段燃焼となる、いわゆる低温予混合燃焼を行わせるための構成を示す。なお、この構成そのものは特開平8−86251号公報などにより公知である。
さて、NOxの生成は燃焼温度に大きく依存し、その低減には燃焼温度の低温化が有効である。低温予混合燃焼では、EGRによる酸素濃度の低減で、低温燃焼を実現するため、排気通路2と吸気通路3のコレクタ部3aとを結ぶEGR通路4に、圧力制御弁5からの制御圧力に応動するダイヤフラム式のEGR弁6を備えている。
圧力制御弁5は、コントロールユニット41からのデューティ制御信号により駆動されるもので、これによって運転条件に応じた所定のEGR率を得るようにしている。たとえば、低回転低負荷域でEGR率を最大の100パーセントとし、回転速度、負荷が高くなるに従い、EGR率を減少させる。高負荷側では排気温度が上昇するため、多量のEGRガスを還流すると、吸気温度の上昇によってNOx低減の効果が減少したり、噴射燃料の着火遅れ期間が短くなって予混合燃焼が実現できなくなる等のため、EGR率を段階的に減少させている。
EGR通路4の途中には、EGRガスの冷却装置7を備える。これは、EGR通路4の周りに形成されエンジン冷却水の一部が循環されるウォータジャケット8と、冷却水の導入口7aに設けられ冷却水の循環量を調整可能な流量制御弁9とからなり、コントロールユニット41からの指令により、制御弁9を介して循環量を増やすほどEGRガスの冷却度が増す。
燃焼促進のため吸気ポート近傍の吸気通路に所定の切欠を有するスワールコントロールバルブ(図示しない)を備える。コントロールユニット41により、このスワールコントロールバルブが低回転低負荷域で閉じられると、燃焼室に吸入される吸気の流速が高まり燃焼室にスワールが生成される。
燃焼室は大径トロイダル燃焼室(図示しない)である。これは、ピストンキャビティを、入口を絞らずピストンの冠面から底部まで円筒状に形成したもので、その底部中央には、圧縮行程後期にピストンキャビティの外部から旋回しながら流れ込むスワールに抵抗を与えないように、さらに空気と燃料の混合を良好にするため、円錐部が形成されている。この入口を絞らない円筒状のピストンキャビティにより、前述のスワールバルブ等によって生成されたスワールは、燃焼過程でピストンが下降していくのに伴い、ピストンキャビティ内からキャビティ外に拡散され、キャビティ外でもスワールが持続される。
エンジンにはコモンレール式の燃料噴射装置10を備える。コモンレール式の燃料噴射装置10の構成も公知(第13回内燃機関シンポジウム講演論文集第73頁〜第77頁参照)であり、図2により概説する。
この燃料噴射装置10は、主に燃料タンク11、燃料供給通路12、サプライポンプ14、コモンレール(蓄圧室)16、気筒毎に設けられるノズル17からなり、サプライポンプ14により加圧された燃料は燃料供給通路15を介して蓄圧室16にいったん蓄えられたあと、蓄圧室16の高圧燃料が気筒数分のノズル17に分配される。
ノズル17は、針弁18、ノズル室19、ノズル室19への燃料供給通路20、リテーナ21、油圧ピストン22、針弁18を閉弁方向(図で下方)に付勢するリターンスプリング23、油圧ピストン22への燃料供給通路24、この通路24に介装される三方弁(電磁弁)25などからなり、ノズル内の通路20と24が連通して油圧ピストン22上部とノズル室19にともに高圧燃料が導かれる三方弁25のOFF時(ポートAとBが連通、ポートBとCが遮断)には、油圧ピストン22の受圧面積が針弁18の受圧面積より大きいことから、針弁18が着座状態にあるが、三方弁25がON状態(ポートAとBが遮断、ポートBとCが連通)になると、油圧ピストン22上部の燃料が戻し通路28を介して燃料タンク11に戻され、油圧ピストン22に作用する燃料圧力が低下する。これによって針弁18が上昇してノズル先端の噴孔より燃料が噴射される。三方弁25をふたたびOFF状態に戻せば、油圧ピストン22に蓄圧室16の高圧燃料が導びかれて燃料噴射が終了する。つまり、三方弁25のOFFからONへの切換時期により燃料の噴射開始時期が、またON時間により燃料噴射量が調整され、蓄圧室16の圧力が同じであれば、ON時間が長くなるほど燃料噴射量が多くなる。26は逆止弁、27はオリフィスである。
この燃料噴射装置10にはさらに、蓄圧室圧力を調整するため、サプライポンプ14から吐出された燃料を戻す通路13に圧力調整弁31を備える。この調整弁31は通路13の流路を開閉するもので、蓄圧室16への燃料吐出量を調整することにより蓄圧室圧力を調整する。蓄圧室16の燃料圧力(噴射圧)によって燃料噴射率が変化し、蓄圧室16の燃料圧力が高くなるほど燃料噴射率が高くなる。
アクセル開度センサ33、エンジン回転速度とクランク角度を検出するセンサ34、気筒判別のためのセンサ35、水温センサ36からの信号が入力されるコントロールユニット41では、エンジン回転速度とアクセル開度に応じて目標燃料噴射量と蓄圧室16の目標圧力を演算し、圧力センサ32により検出される蓄圧室圧力がこの目標圧力と一致するように圧力調整弁31を介して蓄圧室16の燃料圧力をフィードバック制御する。
また、演算した目標燃料噴射量に対応して三方弁25のON時間を制御するほか、三方弁25のONへの切換時期を制御することで、運転条件に応じた所定の噴射開始時期を得るようにしている。たとえば、高EGR率の低回転低負荷側で噴射燃料の着火遅れ期間が長くなるように燃料の噴射時期(噴射開始時期)をピストン上死点(TDC)にまで遅延している。この遅延により、着火時期の燃焼室内の温度を低温状態にし、予混合燃焼比率を増大させることにより、高EGR率域でのスモークの発生を抑える。これに対して、回転速度、負荷が高くなるにしたがい、噴射時期を進めている。これは、着火遅れの時間が一定であっても、着火遅れクランク角度(着火遅れの時間をクランク角度に換算した値)がエンジン回転速度の増加に比例して大きくなり、低EGR率時に所定の着火時期を得るために、噴射時期を進めるのである。
図1に戻り、EGR通路4の開口部下流の排気通路2に可変容量ターボ過給機を備える。これは、排気タービン52のスクロール入口に、アクチュエータ54により駆動される可変ノズル53を設けたもので、コントロールユニット41により、可変ノズル53は低回転域から所定の過給圧が得られるように、低回転側では排気タービン52に導入される排気の流速を高めるノズル開度(傾動状態)に、高回転側では排気を抵抗なく排気タービン52に導入させノズル開度(全開状態)に制御する。
上記のアクチュエータ54は、制御圧力に応動して可変ノズル53を駆動するダイヤフラムアクチュエータ55と、このダイヤフラムアクチュエータ55への制御圧力を調整する圧力制御弁56とからなり、可変ノズル53の開口割合が、後述するようにして得られる目標開口割合Rvntとなるように、デューティ制御信号が作られ、このデューティ制御信号が圧力制御弁56に出力される。
過給圧制御という観点からみると、EGR制御も、過給圧制御の役割を物理的に果たしている。つまり、EGR量を変化させることにより過給圧も変化する。逆に、過給圧を変化させると、排気圧力が変化するため、EGR量も変化することになり、過給圧とEGR量とは独立に制御できない。また、ややもするとお互いに制御上の外乱となっている。なお、一方を変化させた場合に、制御精度を確保するには、他方を適合し直すことであるが、他方を適合し直した後には、もう一方を再適合しなければならなくなるので、この方法では、過渡時の制御精度を確保することが困難である。
このように、過給圧とEGR量とはお互いに影響を与え、EGR量を変えると、ノズル開度を変える必要があるなど適切な適合が困難な上に、特に過渡時は双方の制御精度が低下するので、コントロールユニット41では、運転条件に応じて目標吸入空気量tQacを演算し、この目標吸入空気量tQacと目標EGR量や目標EGR率Megrに遅れ処理を施した値である実EGR量Qecや実EGR率Megrdからターボ過給機の作動目標値である可変ノズル53の目標開口割合Rvntを設定するようにしている。
コントロールユニット41ではまた、過給機・吸排気の応答遅れを補償するための進み処理とアクチュエータ54そのものの応答遅れを補償するための進み処理とを前記目標開口割合Rvntに対して独立に行う。その際、過給機・吸排気の応答遅れを補償するための進み処理を先に行い、その後にアクチュエータ54そのものの応答遅れを補償するための進み処理を行う。
ただし、加速に合わせて吸入空気量を増やすにしても、排気量の増加に伴いターボ効率が上昇する領域と、排気量の増加に伴い却ってターボ効率が低下する領域とがあるので、過給機・吸排気の応答遅れを補償するための進み処理は排気量の増加に伴いターボ効率が上昇する領域だけとし、これに対して排気量の増加に伴いターボ効率が低下する領域になると、進み処理に代え、遅れ処理を目標開口割合Rvntに対して行う。したがって、排気量の増加に伴いターボ効率が低下する領域では、この遅れ処理後の値に対してアクチュエータそのものの応答遅れを補償するための進み処理を行う。
コントロールユニット41で実行されるこの制御の内容を、以下のフローチャートにしたがって説明する。なお、後述する図3〜図40、図54(ステップ1〜3のみ)、図59(ステップ1、2のみ)、図62、図87〜図102は先願装置ですでに提案しているところと同様である。
まず、図3は目標燃料噴射量Qsolを演算するためのもので、REF信号(クランク角の基準位置信号で、4気筒エンジンでは180度毎、6気筒エンジンでは120度毎の各信号)の入力毎に実行する。
ステップ1、2でエンジン回転速度Neとアクセル開度Clを読み込み、ステップ3では、これらNeとClに基づいて、図4を内容とするマップを検索すること等により、基本燃料噴射量Mqdrvを演算し、ステップ4ではこの基本燃料噴射量Mqdrvに対してエンジン冷却水温等による増量補正を行い、補正後の値を目標燃料噴射量Qsolとして設定する。
図5はEGR弁6の開口面積Aevを演算するためのもので、REF信号の入力毎に実行する。
なお、図5はメインルーチンで、制御の大きな流れは図示のステップに従うものであり、各ステップの処理に対してサブルーチンが用意されている。したがって、以下ではサブルーチンを中心に説明していく。
図7(図5のステップ1のサブルーチン)は1シリンダ当たりの目標EGR量Tqecを演算するためのもので、REF信号の入力毎に実行する。
ステップ1、2では1シリンダ当たりの吸入空気量Qacnと目標EGR率Megrを演算する。
ここで、Qacnの演算については図8のフローにより、またMegrの演算については図11のフローにより説明する。
まず、図8において、ステップ1ではエンジン回転速度Neを読み込み、このエンジン回転速度Neとエアフローメータより得られる吸入空気量Qas0とから
(数1)
Qac0=(Qas0/Ne)×KCON#、
ただし、KCON#:定数、
の式により1シリンダ当たりの吸入空気量Qac0を演算する。
上記のエアフローメータ39(図1参照)は、コンプレッサ上流の吸気通路3に設けており、エアフローメータ39からコレクタ部3aまでの輸送遅れ分のディレイ処理を行うため、ステップ3ではL(ただしLは整数の定数)回前のQac0の値をコレクタ入口部3a位置における1シリンダ当たりの吸入空気量Qacnとして求めている。そして、ステップ4ではこのQacnに対して
(数2)
Qac=Qacn-1×(1−KIN×KVOL)
+Qacn×KIN×KVOL、
ただし、KIN:体積効率相当値、
KVOL:VE/NC/VM、
VE:排気量、
NC:気筒数、
VM:吸気系容積、
Qacn-1:前回のQac、
の式(一次遅れの式)により吸気弁位置における1シリンダ当たりの吸入空気量(この吸入空気量を、以下「シリンダ吸入空気量」で略称する。)Qacを演算する。これはコレクタ入口部3aから吸気弁までのダイナミクスを補償するためのものである。
上記数1式右辺の吸入空気量Qas0の検出については図9のフローにより説明する。図9のフローは4ms毎に実行する。
ステップ1ではエアフローメータ39の出力電圧Usを読み込み、このUsからステップ2で図10を内容とする電圧−流量変換テーブルを検索すること等により吸入空気量Qas0 dを演算する。さらに、ステップ3でこのQas0 dに対して加重平均処理を行い、その加重平均処理値を吸入空気量Qas0として設定する。
次に、図11において、ステップ1ではエンジン回転速度Ne、目標燃料噴射量Qsol、エンジン冷却水温Twを読み込む。ステップ2ではエンジン回転速度Neと目標燃料噴射量Qsolから図12を内容とするマップを検索すること等により基本目標EGR率Megrbを演算する。この場合、基本目標EGR率は、エンジンの使用頻度の高い領域、つまり低回点、低負荷(低噴射量)になるほど大きくなり、スモークが発生しやすい高出力時には小さくする。
次にステップ3で冷却水温Twから図13を内容とするテーブルを検索すること等により、基本目標EGR率の水温補正係数Kegr twを演算する。そして、ステップ4において、基本目標EGR率とこの水温補正係数とから、
(数3)
Megr=Megrb×Kegr tw
の式により目標EGR率Megrを算出する。
ステップ5ではエンジンの状態が完爆状態であるか否かを判定する。ただし、この完爆の判定は、図14のフローで後述する。
ステップ6では完爆状態かどうかみて、完爆状態のときは、今回の処理をそのまま終了し、完爆状態でないと判定されたときは、目標EGR率Megrを0として今回の処理を終了する。
これにより、エンジンの完爆後にEGR制御が行われ、完爆前は安定した始動性を確保するためにもEGRは行われない。
図14はエンジンの完爆を判定するためのものである。ステップ1でエンジン回転速度Neを読み込み、このエンジン回転速度Neと完爆回転速度に相当する完爆判定スライスレベルNRPMKとをステップ2において比較する。Neのほうが大きいときは完爆と判断し、ステップ3に進む。ここでは、カウンタTmrkbと所定時間TMRKBPとを比較し、カウンタTmrkbが所定時間よりも大きいときは、ステップ4に進み、完爆したものとして処理を終了する。
これに対して、ステップ2でNeのほうが小さいときは、ステップ6に進み、カウンタTmrkbをクリアし、ステップ7で完爆状態にはないものとして処理を終了する。また、ステップ2でNeよりも大きいときでも、ステップ3でカウンタTmrkbが所定時間よりも小さいときは、ステップ5でカウンタをインクリメントし、完爆でないと判断する。
これらにより、エンジン回転速度が所定値(たとえば400rpm)以上であって、かつこの状態が所定時間にわたり継続されたときに完爆したものと判定するのである。
このようにして図8によりシリンダ吸入空気量Qacn、図11により目標EGR率Megrの演算を終了したら、図7のステップ3に戻り、両者から
(数4)
Mqec=Qacn×Megr
の式により要求EGR量Mqecを演算する。
ステップ4ではこのMqecに対して、KIN×KVOLを加重平均係数とする
(数5)
Rqec=Mqec×KIN×KVOL
+Rqecn-1×(1−KIN×KVOL)、
ただし、KIN:体積効率相当値、
KVOL:VE/NC/VM、
VE:排気量、
NC:気筒数、
VM:吸気系容積、
Rqecn-1:前回の中間処理値、
の式により、中間処理値(加重平均値)Rqecを演算し、このRqecと要求EGR量Mqecを用いてステップ5で
(数6)
Tqec=Mqec×GKQEC+Rqecn-1×(1−GKQEC)、
ただし、GKQEC:進み補正ゲイン、
の式により進み補正を行って、1シリンダ当たりの目標EGR量Tqecを演算する。要求値に対して吸気系の遅れ(すなわちEGR弁6→コレクタ部3a→吸気マニホールド→吸気弁の容量分の遅れ)があるので、ステップ4、5はこの遅れ分の進み処理を行うものである。
次に、図15、図16は目標吸入空気量tQacを演算するためのもので、一定時間毎(たとえば10ms毎)に実行する。
図15を第1実施形態、図16を第2実施形態とすると、2つの実施形態では可変ノズル53の目標開口割合Rvntを演算するのに用いるパラメータに違いがある(第1実施形態では実EGR量Qecに基づいて、また第2実施形態では実EGR率Megrdに基づいて可変ノズル53の目標開口割合Rvntを演算する)。
なお、図15、図16もメインルーチンで、各ステップの処理に対してサブルーチンが用意されているため、サブルーチンを中心に説明していく。
図17(図15、図16のステップ1のサブルーチン)は実EGR率を演算するためのもので、10ms毎に実行する。ステップ1で目標EGR率Megr(図11で得ている)を読み込み、ステップ2でコレクタ容量分の時定数相当値Kkinを演算する。このKkinの演算については図18のフローにより説明する。
図18(図17のステップ2のサブルーチン)において、ステップ1でエンジン回転速度Ne、目標燃料噴射量Qsol、後述する実EGR率の前回値であるMegrdn-1[%]を読み込み、このうちNeとQsolからステップ2において図19を内容とするマップを検索すること等により体積効率相当基本値Kinbを演算し、ステップ3では
(数7)
Kin=Kinb×1/(1+Megrdn-1/100)
の式により体積効率相当値Kinを演算する。これはEGRによって体積効率が減少するので、その分の補正を行うようにしたものである。
このようにして求めたKinに対し、ステップ4において吸気系容積とシリンダ容積の比相当の定数であるKVOL(図8のステップ4参照)を乗じた値をコレクタ容量分の時定数相当値Kkinとして演算する。
このようにしてKkinの演算を終了したら図17のステップ3に戻り、このKkinと目標EGR率Megrを用い、
(数8)
Megrd=Megr×Kkin×Ne×KE2#
+Megrdn-1×(1−Kkin×Ne×KE2#)、
ただし、Kkin:Kin×KVOL#、
KE2#:定数、
Megrdn-1:前回のMegrd、
の式で遅れ処理と単位変換(1シリンダ当たり→単位時間当たり)を同時に行って吸気弁位置におけるEGR率Megrdを演算する。数8式の右辺のNe×KE2#が単位変換のための値である。目標EGR率Megrに対してこのMegrdは一次遅れで応答するため、このMegrdを、以下「実EGR率」という。
図20(図15、図16のステップ2のサブルーチン)は目標吸入空気量tQacを演算するためのものである。ステップ1でエンジン回転速度Ne、実EGR率Megrd、目標燃料噴射量Qsolを読み込み、ステップ2でMegrdと所定値MEGRLV#を比較する。
ここで、所定値MEGRLV#はEGRの作動の有無を判定するための値(たとえば0.5)で、Megrd>MEGRLV#であるときはEGRの作動域であると判断してステップ3、4、5に進み、これに対してMegrd≦MEGRLV#であるときはEGRの非作動域であると判断してステップ6に進む。MEGRLV#が0でないのは、微量のEGRが行われる場合にも、EGRが行われない場合と同一に扱いたいという要求があるので、これに応じるものである。
EGRの作動域であるときは、ステップ3でエンジン回転速度Neと実EGR率Megrdよりたとえば図21を内容とするマップを検索すること等により目標吸入空気量基本値tQacbを演算する。エンジン回転が一定の条件であれば、図21のように実EGR率が大きいときほど目標吸入空気量を増やすのである。
ステップ4ではNeとQsolよりたとえば図22を内容とするマップを検索すること等により目標吸入空気量の補正係数ktQacを演算し、この補正係数を上記の目標吸入空気量基本値に掛けた値を目標吸入空気量tQacとして算出する。補正係数ktQacは運転条件(Ne、Qsol)により目標吸入空気量を変えたいという要求に応えるためのものである。
一方、EGRの非作動域であるときは、ステップ6に進み、NeとQsolよりたとえば図23を内容とするマップを検索すること等により目標吸入空気量tQacを演算する。
図24(図15のステップ3のサブルーチン)は実EGR量を演算するためのものである。ステップ1でコレクタ入口部3a位置における1シリンダ当たりの吸入空気量Qacn(図8のステップ3で得ている)、目標EGR率Megr、コレクタ容量分の時定数相当値Kkinを読み込む。このうちQacnとMegrからステップ2で
(数9)
Qec0=Qacn×Megr
の式によりコレクタ入口部3a位置における1シリンダ当たりのEGR量Qec0を演算し、このQec0とKkinを用いステップ3において、
(数10)
Qec=Qec0×Kkin×Ne×KE#
+Qecn-1×(1−Kkin×Ne×KE#)、
ただし、Kkin:Kin×KVOL、
KE#:定数、
Qecn-1:前回のQec、
の式により、上記の数8式と同様に遅れ処理と単位変換(1シリンダ当たり→単位時間当たり)を同時に行ってシリンダ吸入EGR量Qecを演算する。数10式の右辺のNe×KE#が単位変換のための値である。このQecは目標EGR量Tqek(図40で後述する)に対して一次遅れで応答するため、以下このQecを「実EGR量」という。また、目標吸入空気量tQacに対して一次遅れで応答する上記のQacを、以下「実吸入空気量」という。
なお、これら実EGR量Qec、目標吸入空気量tQac、実吸入空気量Qac、後述する目標EGR量Tqekの単位はいずも流量であるが、EGR量、空気量で慣用されているので、本発明でもこれにならう。
図25(図5のステップ2のサブルーチン)はEGR量の演算とEGRガス(EGR弁を流れるガス)の流速(このEGRガスの流速を以下、単に「EGR流速」という)の演算に用いる2つのフィードバック補正係数Kqac00、Kqac0とEGR流速学習補正係数Kqacを演算するためのもので、REF信号の入力毎に実行する。
まず、ステップ1で目標吸入空気量tQac、実吸入空気量Qac、エンジン回転速度Ne、目標燃料噴射量Qsolを読み込む。
ステップ2では、目標吸入空気量tQacから
(数11)
tQacd=tQac×KIN×KVOL×KQA#
+tQacdn-1×(1−KIN×KVOL×KQA#)、
ただし、KIN:体積効率相当値、
KVOL:VE/NC/VM、
VE:排気量、
NC:気筒数、
VM:吸気系容積、
KQA#:定数、
tQacdn-1:前回のQacd、
の式(一次遅れの式)により目標吸入空気量遅れ処理値tQacdを演算する。これは、吸気系容積分の存在に伴う空気の供給遅れのために、後述する2つのフィードバック補正係数Kqac00、Kqac0や学習値Rqacが大きくならないように遅れ処理を施したものである。
ステップ3ではフィードバック関連の各種フラグを読み込む。これらの設定については図26、図27、図28のフローより説明する。
図26、図27、図28は図25と独立に一定時間毎(たとえば10ms毎)に実行する。
図26はフィードバック許可フラグfefbを設定するためのものである。ステップ1でエンジン回転速度Ne、目標燃料噴射量Qsol、実EGR率Megrd、水温Twを読み込む。
フィードバック許可条件の判定は、ステップ2〜5、8の内容を一つずつチェックすることにより行い、各項目のすべてが満たされたときにフィードバックを許可し、一つでも反するときはフィードバックを禁止する。すなわち、
ステップ2:Megrdが所定値MEGRFB#を超えている(つまりEGRの作動域 )、
ステップ3:Twが所定値TWFBL#(たとえば30℃程度)を超えている、
ステップ4:Qsolが所定値QSOLFBL#を超えている(燃料カットしていない )、
ステップ5:Neが所定値NEFBL#を超えている(エンストになる回転速度域でな い)、
ステップ8:フィードバック開始カウンタCtrfbが所定値TMRFB#(たとえば 1秒未満の値)を超えている
とき、ステップ9でフィードバックを許可するためフィードバック許可フラグfefb=1とし、そうでなければステップ10に移行し、フィードバックを禁止するためフィードバック許可フラグfefb=0とする。
なお、フィードバック開始カウンタはステップ2〜5の成立時にカウントアップし(ステップ6)、ステップ2〜5の不成立時にフィードバック開始カウンタをリセットする(ステップ7)。
図27は学習値反映許可フラグfelrn2を設定するためのものである。ステップ1でエンジン回転速度Ne、目標燃料噴射量Qsol、実EGR率Megrd、水温Twを読み込む。
学習値反映許可条件の判定も、ステップ2〜5、8の内容を一つずつチェックすることにより行い、各項目のすべてが満たされたときに学習値の反映を許可し、一つでも反するときは学習値の反映を禁止する。すなわち、
ステップ2:Megrdが所定値MEGRLN2#を超えている(つまりEGRの作動 域)、
ステップ3:Twが所定値TWLNL2#(たとえば20℃程度)を超えている、
ステップ4:Qsolが所定値QSOLLNL2#を超えている(燃料カットしていな い)、
ステップ5:Neが所定値NELNL2#を超えている(エンストになる回転速度域で ない)、
ステップ8:学習値反映カウンタCtrln2が所定値TMRLN2#(たとえば0. 5秒程度)を超えている
とき、ステップ9で学習値の反映を許可するため学習値反映許可フラグfeln2=1とし、そうでなければステップ10に移行し、学習値の反映を禁止するため学習値反映許可フラグfeln2=0とする。
なお、学習値反映カウンタはステップ2〜5の成立時にカウントアップし(ステップ6)、ステップ2〜5の不成立時にリセットする(ステップ7)。
図28は学習許可フラグfelrnを設定するためのものである。ステップ1でエンジン回転速度Ne、目標燃料噴射量Qsol、実EGR率Megrd、水温Twを読み込む。
学習許可条件の判定は、ステップ2〜7、10の内容を一つずつチェックすることにより行い、各項目のすべてが満たされたときに学習を許可し、一つでも反するときは学習を禁止する。すなわち、
ステップ2:Megrdが所定値MEGRLN#を超えている(つまりEGRの作動域 )、
ステップ3:Twが所定値TWLNL#(たとえば70〜80℃程度)を超えている、
ステップ4:Qsolが所定値QSOLLNL#を超えている(燃料カットしていない )、
ステップ5:Neが所定値NELNL#を超えている(エンストになる回転速度域でな い)、
ステップ6:フィードバック許可フラグfefb=1である、
ステップ7:学習値反映許可フラグfelrn2=1である、
ステップ10:学習ディレイカウンタCtrlnが所定値TMRLN#(たとえば4秒 程度)を超えている
とき、ステップ11で学習を許可するため学習許可フラグfeln=1とし、そうでなければステップ12に移行し、学習を禁止するため学習許可フラグfeln=0とする。
なお、学習ディレイカウンタはステップ2〜7の成立時にカウントアップし(ステップ8)、ステップ2〜7の不成立時にリセットする(ステップ9)。
図25に戻り、このようにして設定される3つのフラグのうち、ステップ4でフィードバック許可フラグfefbをみる。fefb=1のときはステップ5、6でEGR量のフィードバック補正係数Kqac00とEGR流速のフィードバック補正係数Kqac0を演算する。一方、fefb=0のとき(フィードバックを禁止するとき)はステップ4よりステップ7、8に進み、Kqac00=1、Kqac0=1とする。
ここで、EGR量フィードバック補正係数Kqac00の演算については図29のフローにより、またEGR流速フィードバック補正係数Kqac0の演算については図32のフローにより説明する。
まず図29(図25のステップ5のサブルーチン)において、ステップ1で目標吸入空気量遅れ処理値tQacd、実吸入空気量Qac、エンジン回転速度Ne、目標燃料噴射量Qsol、水温Twを読み込む。
ステップ2ではNeとQsolからたとえば図30を内容とするマップを検索すること等によりEGR流量の補正ゲインGkfbを、またステップ3では補正ゲインの水温補正係数KgfbtwをTwからたとえば図31を内容とするテーブルを検索すること等によりそれぞれ演算し、これらを用いステップ4において
(数12)
Kqac00=(tQacd/Qac−1)×Gkfb×Kgfbtw+1
の式によりEGR量フィードバック補正係数Kqac00を演算する。
この式の右辺第1項の(tQacd/Qac−1)は目標吸入空気量遅れ処理値からの誤差割合であり、これに1を加えることで、Kqac00は1を中心とする値になる。数12式は、目標吸入空気量遅れ処理値からの誤差割合に比例させてEGR量フィードバック補正係数Kqac00を演算するものである。
次に、図32(図25のステップ6のサブルーチン)において、ステップ1で目標吸入空気量遅れ処理値tQacd、実吸入空気量Qac、エンジン回転速度Ne、目標燃料噴射量Qsol、水温Twを読み込む。
ステップ2ではNeとQsolからたとえば図33を内容とするマップを検索すること等によりEGR流速の補正ゲインGkfbiを、またステップ3では補正ゲインの水温補正係数KgfbitwをTwからたとえば図34を内容とするテーブルを検索すること等によりそれぞれ演算し、これらを用いステップ4において
(数13)
Rqac0=(tQacd/Qac−1)×Gkfbi×kGfbitw
+Rqac0n-1、
ただし、Rqac0n-1:前回のRqac0、
の式により誤差割合Rqac0を更新し、この誤差割合Rqac0に対してステップ5において1を加えた値をEGR流速Cqe(図38で後述する)のフィードバック補正係数Kqac0として算出する。
これは、目標吸入空気量遅れ処理値からの誤差割合(tQacd/Qac−1)の積算値(積分値)に比例させてEGR流速フィードバック補正係数Kqac0を演算する(積分制御)ものである。
図30、図33のように、補正ゲインを運転条件(Ne、Qsol)に応じた値としたのは次の理由による。同じゲインでも運転条件によりハンチングを生じたり生じなかったりするので、ハンチングを生じる領域では補正ゲインを小さくするためである。図31、図34のように低水温のとき(暖機完了前)に値を小さくしているのは、エンジン回転の不安定な低水温域でのエンジンの安定化を図るためである。
このようにしてEGR量フィードバック補正係数Kqac00とEGR流速フィードバック補正係数Kqac0の演算を終了したら、図25に戻り、ステップ9で学習値反映許可フラグfelrn2をみる。学習反映許可フラグfelrn2=1のとき(学習値の反映を許可するとき)は、ステップ10に進み、NeとQsolよりたとえば図35の学習マップを検索することにより誤差割合学習値Rqacを読み出し、これに1を足した値をEGR流速学習補正係数Kqacとして演算する。一方、学習反映許可フラグfelrn2=0のとき(学習値の反映を禁止するとき)は、ステップ9よりステップ12に進み、EGR流速学習補正係数Kqac=1とする。
続いてステップ13では、学習許可フラグfelrnをみる。学習許可フラグfelrn=1であれば(学習を許可するとき)、ステップ14に進み、EGR流速フィードバック補正係数Kqac0から1を減算して誤差割合Rqacnとする。一方、学習許可フラグfelrn=0であるとき(学習を禁止するとき)は、ステップ13よりステップ15に進み、誤差割合Rqacn=0とする。
このようにして求めた誤差割合Rqacnに基づいてステップ16では誤差割合学習値Rqacの更新を行う。この学習値の更新については図36のフローにより説明する。
図36(図25のステップ16のサブルーチン)において、ステップ1で誤差割合Rqacn、エンジン回転速度Ne、目標燃料噴射量Qsolを読み込む。NeとQsolからステップ2で学習速度Tclrnをたとえば図37を内容とするマップを検索すること等により演算する。ステップ3ではNe、Qsolより上記図35の学習マップから誤差割合学習値Rqacを読み出す。ステップ4で
(数14)
Rqacn=Rqacn×Tclrn+Rqacn-1×(1−Tclrn)、
ただし、Rqacn:更新後の誤差割合学習値、
Rqacn-1:更新前の誤差割合学習値(=学習値読み出し値)、
の式により加重平均処理を行い、更新後の学習値をステップ5で図35の学習マップにストアする(更新前の値に対して更新後の値を上書きする)。
図38(図5のステップ3のサブルーチン)は、EGR流速Cqeを演算するためのものである。
ステップ1、2で実EGR量Qec、実EGR率Megrd、実吸入空気量Qac、EGR流速フィードバック補正係数Kqac0、EGR流速学習補正係数Kqacを読み込み、ステップ3において
(数15)
Qec h=Qec×Kqac×Kqac0
の式により、Kqac0とKqacで実EGR量Qecを補正した値を補正実EGR量Qec hとして算出し、この補正実EGR量Qec hと実EGR率Megrdよりステップ8において、たとえば図39を内容とするマップを検索することにより、EGR流速Cqeを演算する。なお、説明しなかったステップ4〜7は後述する。
図39のEGR流速の特性は、非線型性が強く運転条件に応じてEGRのフィードバックの感度が相違することを示しているため、運転条件に対するフィードバック量の差が小さくなるように、EGR流速フィードバック補正係数Kqac0は、流速マップの検索に用いる実EGR量Qecへのフィードバックとしている。
ただし、図39において特性の傾きが急になる右端に近い部分は、マップの適合誤差が生じ勝ちな領域であるため、適合誤差があると、その適合誤差の影響を受けてEGR弁開口面積Aevが変化してしまう。つまり、EGR弁開口面積Aevを演算する式であるAev=Tqek/Cqe(図40で後述する)においてCqeには適合誤差が生じるのであるから、これに対処するには、目標EGR量Tqekに対しても流速誤差分の補正を行う必要がある。そのため新たに導入したのが上記のEGR量フィードバック補正係数Kqac00で、このKqac00により、後述する図40のステップ2で目標EGR量Tqekを補正している。
この場合、Kqac00を演算する式である上記数12式は、目標吸入空気量遅れ処理値からの誤差割合に比例させてKqac00を演算するので、この比例制御により図39のEGR流速マップの適合誤差に対して即座に補正できることになる。たとえば、簡単のため数12式において、補正ゲインGkfb=1かつ暖機完了後で考えると、Kqac00=(tQacd/Qac−1)+1となる。この場合に、目標値としてのtQacdより実吸入空気量Qacが小さいと、Kqac00が1より大きな値となり、これによって目標EGR量Tqekが即座に減量される。目標EGR量Tqekが即座に減量されると、相対的に新気量(吸入空気量)が増え、これによって実吸入空気量Qacが目標値としてのtQacdへと収束する。
説明しなかった図38のステップ4〜7はEGRの作動開始時の初期値を設定する部分である。具体的には、ステップ4では補正実EGR量Qec hと0を比較する。Qec h=0(つまりEGRの非作動時)であるときは、ステップ5に進み、
(数16)
Qec h=Qac×MEGRL#、
ただし、MEGRL#:定数、
の式により、補正実EGR量Qec hを設定する。同様にして、ステップ6では実EGR率Megrdと0を比較し、Megrd=0のときはステップ7で
(数17)
Megrd=MEGRL#
の式により実EGR率Megrdを設定する。
EGR弁6の全閉時にEGR弁6を通過するEGR流速は当然のことながらゼロであるが、数16式、数17式はEGRの作動開始時のことを考えて、流速の演算に用いるパラメータの初期値を設定する。MEGRL#の値は前述したようにたとえば0.5である。さらに述べると、運転条件によってEGRの作動開始時のEGR弁前後の差圧(したがってEGR流速も)が異なるため、これに対処するものである。この場合、EGRの作動開始時のEGR弁前後の差圧は実吸入空気量Qacに関係する。そこで、数16式によりQacに比例してQec hの初期値を与えることで、EGRの作動開始時のEGR流速の演算精度が向上する。
図40(図5のステップ4のサブルーチン)はEGR弁開口面積Aevを演算するためのものである。ステップ1では1シリンダ当たり目標EGR量Tqec、EGR量フィードバック補正係数Kqac00、EGR流速Cqeを読み込む。ステップ2では1シリンダ当たり目標EGR量TqecをEGR量フィードバック補正係数Kqac00で補正した値(Tqec/Kqac00)に対して
(数18)
Tqek=Tqec×(Ne/KCON#)/Kqac00、
ただし、Kqac00:EGR量フィードバック補正係数、
KCON#:定数、
の式により単位変換(1シリンダ当たり→単位時間当たり)を行って、目標EGR量Tqekを求め、この目標EGR量TqekとEGR流速Cqeとからステップ3おいて
(数19)
Aev=Tqek/Cqe
の式でEGR弁開口面積Aevを演算する。
このようにして得られたEGR弁開口面積Aevは、図示しないフローにおいて図6を内容とするテーブルを検索する等によりEGR弁6のリフト量に変換され、このEGR弁リフト量になるように、圧力制御弁5へのデューティ制御信号が作られ、このデューティ制御信号が圧力制御弁5に出力される。
次に、図41はアクチュエータ54に与える制御指令デューティ値Dtyvntを演算するためのもので、一定時間毎(たとえば10ms毎)に実行する。図41もメインルーチンであるため、各ステップの処理に対して用意しているサブルーチンを中心に説明する。
図42(図41のステップ1のサブルーチン)はオーバーブースト判定フラグFOVBSTを設定するためのものである。ここで、オーバーブーストとは、運転条件の変化に対して可変ノズル53を閉じる側(過給圧が立ち上がる側)にアクチュエータ54を動かすとき、過給圧の実際値が過給限界を超えて大きくなる現象のことである。
まず、ステップ1でエンジン回転速度Ne、目標燃料噴射量Qsol、実吸入空気量Qacおよびこれらのk(整数の定数)サイクル前の値であるNen-k、Qsoln-k、Qacn-k並びに実EGR率Megrdを読み込む。
ステップ2では実吸入空気量Qacと実EGR率Megrdを用いて
(数20)
Qcyl=Qac×(1+Megrd/100)
の式によりシリンダ内に吸入されるガス量Qcyl[mg/st.cyl]を演算する。数20式の右辺第2項(Qac×Megrd/100)は実EGR量であり、実吸入空気量Qac(新気量)にこの実EGR量を加えたものをシリンダ内に吸入されるガス量としている。
なお、実EGR量としては図24の実EGR量Qecを用いてもかまわない(したがって、このときにはQcyl=Qac+Qecとなる)。
ステップ3では
(数21)
Qexh=(Qac+Qsol×GKQFVNT#)×Ne/KCON#、
ただし、GKQFVNT#:換算係数、
KCON#:定数、
の式で実排気量Qexh[mg/st.cyl]を演算する。これは、Qsolの燃料が燃焼して排気になる分と実吸入空気量Qacの合計が排気量であるとみなすものである(温度の上昇を無視する)。ここで、Qsolの単位は[mm3/st.cyl]であるため、これに換算係数GKQFVNT#[mg/mm3]を乗算することによって、Qexhの単位をQac[mg/st.cyl]と同じ単位に変換している。また、Ne/KCON#を乗算するのは[mg/st.cyl]から[g/s]への変換を行うためのものである。
ステップ4では、Ne、Qsol、Qacとkサイクル前の値との差分をそれぞれエンジン回転速度変化量DNE、燃料噴射量変化量DQSOL、実吸入空気量変化量DQACとして算出し、これらエンジン回転速度Ne、目標燃料噴射量Qsolに基づき、ステップ5〜7でオーバーブーストが発生するかどうかを判定する。すなわち、
ステップ5:Ne≧所定値KNEOB#かつDNE≧所定値KDNEOB#である、
ステップ6:Qsol≧所定値KQFOB#かつDQSOL≧所定値KDQFOB#で ある、
ステップ7:DQAC≧所定値KDQACOB#である
のいずれが成立するときオーバーブーストが発生すると判定し、ステップ11、12に進んでオーバブースト判定フラグFOVBT=1とするとともに、オーバーブーストタイマTMROBをリセットする(TMROB=0)。
図54、図59により後述するように、このフラグFOVBSTは目標割合基本値Rvnt0の演算に用いられ、吸入空気量、EGR量が同じ条件でフラグFOVBT=1のときにはフラグFOVBT=0のときより大きな値の目標割合基本値Rvnt0が演算される。目標割合基本値Rvnt0はこの値が小さくなるほど可変ノズル53が閉じられ過給圧が高くなるので、フラグFOVBT=1のときにはフラグFOVBT=0のときより可変ノズル53がより開き側にされ(過給圧が立ち上がりにくくなる)これによってオーバーブーストが抑制されることになる。すなわち、フラグFOVBT=1のときがオーバーブースト抑制時、これに対してフラグFOVBT=0のときが通常運転時である。
オーバーブーストタイマTMROBはフラグFOVBTが1に切換えられてからの経過時間を計測するためのものである。なお、図示しないが、このタイマTMROBのリセットはフラグFOVBTを0より1とするタイミングだけとし、2回目以降はスルーする(ステップ12の処理を飛ばす)。タイマTMROBはたとえばCPUの内部タイマで構成すればよく、このタイマのリセットによりタイマ値が時間とともに増加していく。
アクセルペダルを急激に踏み込んだ場合の変化をモデル的に図43に示すと、オーバーブーストの発生を判定するタイミングが目標燃料噴射量Qsol、エンジン回転速度Ne、実吸入空気量Qacの順に早く、その都度、フラグFOVBT=1となっている。これは、実吸入空気量Qacのみに基づいてオーバーブーストの発生を判定しようとすると判定のタイミングが遅いため、アクセルペダルの踏み込みが急激な場合にはオーバーブーストへの対処が遅れオーバーブーストが発生してしまう可能性があるので、目標燃料噴射量Qsolやエンジン回転速度Neをオーバーブースト判定のためのパラメータとして追加し、オーバーブースト判定のタイミングを少しでも早めるようにしたものである。
なお、図43には三者(Qsol、Ne、Qac)の信号の時間的ずれがよくわかるように、過渡初期にスモークリミットの制限を受けてQsolが小さな値となっている場合で示している。したがって、このようにスモークリミットの燃料制限を伴う場合に実吸入空気量Qacのみに基づいてオーバーブーストの発生を判定しようとすると判定のタイミングが大きく遅れることになるが、本実施形態によれば、スモークリミットの燃料制限を伴う場合においても、オーバーブースト抑制の対処に時間的余裕が生まれ、確実にオーバーブーストを防ぐことができる。
ステップ5〜7に示した上記3つの条件のいずれも成立しない場合は図42のステップ5、6、7よりステップ8に進み、実排気量Qexhからたとえば図44を内容とするマップを検索することによりオーバーブースト判定吸入ガス量TQcylを演算し、上記のシリンダ吸入ガス量QcylとこのTQcylを図42のステップ9で比較する。QcylがTQcyl以上であるときもオーバーブーストが発生すると判定し、ステップ11、12の処理を実行する。
一方、QcylがTQcyl未満のときにはオーバーブーストが発生しないので、ステップ9よりステップ10に進みオーバーブースト判定フラグFOVBST=0とする。
図44に示したようにオーバーブースト判定吸入ガス量TQcylは、実排気量Qexhに対してほぼ山型になる特性である。これは図45に示すターボ過給機のターボ効率の特性を考慮したものである。すなわち、図45においてターボ過給機では実排気量Qexhが小さい値から増加するにつれてターボ効率η(新気量)が増加し、さらに実排気量Qexhを増加するとターボ効率ηが低下するので、これに合わせてTQcylを設定したものである。なお、縦軸は圧力比(マニホールド圧Pm/大気圧Pa)である。
また、同じ実排気量Qexhでも大気圧Paが低くなるほどTQcylを小さくすることが好ましい(図44参照)。
図46は(図41のステップ2のサブルーチン)はオーバーブースト解除移行フラグFCLROBを設定するためのものである。このフラグFCLROBを導入した理由は次の通りである。オーバーブーストの抑制は所定の時間(後述するオーバーブースト抑制時間TTMROB)だけ行われる。しかしながら、その時間が経過したからといって直ちに可変ノズル53を閉め側(過給圧が立ち上がる側)に戻すとそれが原因となってオーバーブーストを起こす恐れがある。そこで、このオーバーブースト解除移行フラグFCLROBを導入し、図47に示したように、オーバーブースト判定フラグFOVBSTを1より0とするタイミング(つまりオーバーブースト抑制を終了するタイミング)でこのオーバーブースト解除移行フラグFCLROBを0より1に切換え、オーバーブースト解除移行フラグFCLROB=1となっている期間で可変ノズル53をオーバーブースト抑制開始前の位置へとゆっくり戻すようにするものである。
フローを具体的に説明すると、図46のステップ1ではオーバーブーストタイマTMROBとオーバーブースト判定フラグFOVBSTをみる。オーバーブーストタイマTMROBがオーバーブースト抑制時間TTMROB以下のときまたはオーバーブースト判定フラグFOVBST=1のときはオーバーブースト抑制中であるので、ステップ4に進んでオーバーブースト判定フラグFOVBST=1の状態を継続する。
一方、それ以外のとき(たとえばオーバーブーストタイマTMROBがオーバーブースト抑制時間TTMROBを超えたときやオーバーブーストを抑制している途中でオーバーブーストが発生する条件でなくなったとき)にはステップ1よりステップ2、3に進み、オーバーブーストの抑制を終了して通常運転時に戻すためオーバーブースト判定フラグFOVBST=0とするとともに、オーバーブーストクリアタイマTMRCLROBをリセットする(TMRCLROB=0)。
オーバーブーストクリアタイマTMRCLROBはオーバーブースト判定フラグFOVBST=0となってからの経過時間を計測するためのものである。なお、図示しないが、このタイマTMRCLROBのリセットもオーバーブースト判定フラグFOVBSTが1より0に切換わったタイミングだけとし、2回目以降はスルーする(ステップ3を飛ばす)。このタイマTMRCLROBもたとえばCPUの内部タイマで構成すればよく、このタイマのリセットによりタイマ値が時間とともに増加していく。
ステップ5では同タイマTMRCLROBとオーバーブースト解除移行時間TTMRCLROBを比較する。タイマTMRCLROBをリセットした直後はTMRCLROB<TTMRCLROBであるためステップ7に進み、オーバーブースト解除移行フラグFCLROB=1とする。
次回(つまり10ms後)よりステップ1、2、5と進み、タイマTMRCLROBとオーバーブースト解除移行時間TTMRCLROBを比較する。TMRCLROBがTTMRCLROB以下である間はステップ7の処理を繰り返し、やがてタイマTMRCLROBがTTMRCLROBを超えるとステップ5よりステップ6に進んで、オーバーブースト解除移行フラグFCLROB=0とする。これによって通常運転時に移行する。
図46に用いた上記のオーバーブースト抑制時間TTMROBとオーバーブースト解除移行時間TTMRCLROBはそれぞれ図48、図51で示したように常時(たとえば10ms毎)演算している。
まず図48から説明すると、ステップ1ではエンジン回転速度変化量DNEと燃料噴射量変化量DQSOLとからたとえば図49を内容とするマップを検索することによりオーバーブースト制御時間基本値TTMROB0を、またステップ2で実吸入空気量変化量DQACと、シリンダ吸入ガス量Qcylのオーバーブースト判定吸入ガス量TQcylからのずれとからたとえば図50を内容とするマップを検索することによりオーバーブースト制御時間の補正係数KTMROBを演算し、これらの積をステップ3においてオーバーブースト抑制時間TTMROBとして演算する。なお、DQSOL、DNE、DQAC、Qcyl、TQcylの演算方法は図42と同様であるので図48のフローに示していない。
図49に示したようにDNEやDQSOLが大きいほどオーバーブースト制御時間基本値TTMROB0を大きくしているのは次の理由による。エンジン回転速度Neやエンジン負荷としての目標燃料噴射量Qsolの変化が大きいほどオーバーブーストが生じやすい。そこで、NeやQsolの変化が大きいほど(つまりDNEやDQSOLが大きいほど)オーバーブースト抑制時間が長くなるようにしたものである。図50のようにDQACやQcyl−TQcylが大きいほど補正係数KTMROBの値を大きくしているのも、実吸入空気量Qacの変化(つまりDQAC)や判定値からのずれ(つまりQcyl−TQcyl)が大きいほどオーバーブーストが発生しやすいので、これに合わせてオーバーブースト抑制時間が長くなるようにしたものである。
次に、図51に移ると、ステップ1では大気圧センサ38(図1参照)により検出される大気圧Paからたとえば図52を内容とするテーブルを検索することによりオーバーブースト解除移行時間基本値TTMRCLROB0を、またステップ2で実排気量Qexh(図42ステップ3で得ている)からたとえば図53を内容とするテーブルを検索することによりオーバーブースト解除移行時間の補正係数KTMRCLROBを演算し、これらの積をステップ3でオーバーブースト解除移行時間TTMRCLROBとして演算する。
図52のように大気圧Paが低くなる条件(たとえば高地)でオーバーブースト解除移行時間基本値TTMRCLROB0を大きくしたのは次の理由による。排気量は排気圧と大気圧の差圧に応じて大きくなるため大気圧が低い条件で排気量が大きくなり、これに応じてターボ過給機の行う仕事が大きくなる(オーバーブーストが生じやすくなる)。そこで、大気圧Paが低い条件ではオーバーブースト解除移行時間基本値TTMRCLROB0が大きくなるようにしたものである。図53のように実排気量Qexhが所定値以上の領域でオーバーブースト解除移行時間の補正係数KTMRCLROBを大きくしたのは、実排気量Qexhが所定値を超えたところからオーバーブーストが生じやすくなるので、これに応じて実排気量Qexhが所定値を超えた領域でオーバーブースト解除移行時間が大きくなるようにしたものである。
図54、図59(図41のステップ3のサブルーチン)は可変ノズル53の目標開口割合Rvntを演算するためのものである(図54が第1実施形態、図59が第2実施形態)。
ここで、可変ノズル53の開口割合とは、可変ノズル53の全開時のノズル面積に対する現在のノズル面積の比のことである。したがって、可変ノズル53の全開時に開口割合は100%、全閉時に開口割合は0%となる。開口割合を採用する理由は汎用性を持たせる(ターボ過給機の容量と関係ない値とする)ためである。もちろん、可変ノズルの開口面積を採用してもかまわわない。
なお、実施形態のターボ過給機は、全開時に過給圧が最も小さく、全閉時に過給圧が最も高くなるタイプのものであるため、開口割合が小さいほど過給圧が高くなる。
まず、第1実施形態の図54のほうから説明すると、ステップ1で目標吸入空気量tQac、実EGR量Qec、エンジン回転速度Ne、目標燃料噴射量Qsol、目標EGR率Megrを読み込む。
ステップ2、3では
(数22)
tQas0=(tQac+Qsol×QFGAN#)×Ne/KCON#、
Qes0=(Qec+Qsol×QFGAN#)×Ne/KCON#、
ただし、QFGAN#:ゲイン、
KCON#:定数、
の2つの式により、目標開口割合基本値を設定するための吸入空気量相当値tQas0(以下、この吸入空気量相当値を「設定吸入空気量相当値」という)と、同じく目標開口割合基本値を設定するためのEGR量相当値Qes0(以下、このEGR量相当値を「設定EGR量相当値」という)を演算する。数22式において、tQac、QecにQsol×QFGAN#を加算しているのは、設定吸入空気量相当値、設定EGR量相当値に対して負荷補正を行えるようにし、かつその感度をゲインQFGAN#で調整するようにしたものである。また、Ne/KCON#は単位時間当たりの吸入空気量、EGR量に変換するための値である。
ステップ4〜10は目標EGR率Megrとオーバーブースト判定フラグFOVBSTに基づいて、
〈1〉Megr≧所定値KEMRAV#かつFOVBST=1のとき(EGRの作動域 かつオーバーブースト抑制時)、
〈2〉Megr≧所定値KEMRAV#かつFOVBST=0のとき(EGRの作動域 かつ通常運転時)、
〈3〉Megr<所定値KEMRAV#かつFOVBST=1のとき(EGRの非作動 域かつオーバーブースト抑制時)、
〈4〉Megr<所定値KEMRAV#かつFOVBST=0のとき(EGRの非作動 域かつ通常運転時)
の4つの場合分けを行い、4つの各場合に最適な開口割合を目標開口割合基本値Rvnt0(過給機の作動目標値)として設定する部分である。すなわち、〈1〉のときにはステップ7で設定吸入空気量相当値tQas0と設定EGR量相当値tQes0からたとえば図55を内容とするマップを検索することにより、また〈2〉のときにはステップ8で同じくtQas0とtQes0からたとえば図56を内容とするマップを検索することにより目標開口割合基本値Rvnt0を設定する。同様にして〈3〉のときにはステップ10でtQas0と目標燃料噴射量Qsolからたとえば図57を内容とするマップを検索することにより、また〈4〉のときにはステップ9で同じくtQas0とQsolからたとえば図58を内容とするマップを検索することにより目標開口割合基本値Rvnt0を設定する。
一方、第2実施形態の図59のほうでは、設定EGR量相当値Qes0に代えて目標EGR率Megrを用いる点だけが第1実施形態と相違する(したがって図54のステップ3はない)。すなわち、〈1〉のときにステップ7でtQas0とMegrからたとえば図60を内容とするマップを検索することにより、また〈2〉のときステップ8でtQas0とMegrからたとえば図61を内容とするマップを検索することにより目標開口割合基本値Rvnt0を設定する。
他は第1実施形態と同様であるため、フローの説明は省略する。
ここで、図60、図61の特性は、縦軸が図55、図56と相違するものの、基本的に図55、図56と変わるものでないため、図55、図56のほうで目標開口割合基本値Rvnt0の特性を説明する。
図55、図56に示すように、設定吸入空気量相当値tQas0の大きな右側の領域において設定EGR量相当値Qes0が増えるほど目標開口割合基本値を小さくしている。これは、EGR量が多くなるとそのぶん新気が減り、これによって空燃比がリッチ側に傾くとスモークが発生するので、EGR量が多くなるほど目標開口割合基本値を小さくして過給圧を高める必要があるからである。
また、図55、図56で代表させた目標開口割合基本値の傾向は、燃費重視と排気重視に共通のもので、両者の違いは具体的な数値にある。たとえば、同図において最小の数値は、ターボ過給機が効率よく働く値であるため、燃費重視の設定例、排気重視の設定例とも同じであるのに対して、数値が大きい領域では燃費重視の設定例と排気重視の設定例とで異なり、tQas0とQes0が同じ条件のとき燃費重視の設定例ほうが大きくなる。なお、目標開口割合基本値を加速重視の設定例とすることもできる。
ここで、燃費重視、排気重視、加速性重視の3つの特性のいずれを採用するかについては、図62によりまとめて説明すると(ただし上記〈1〉と〈2〉の場合である)、同図はエンジン回転速度とエンジントルクが一定の条件のもとで、EGR率を大と小で相違させた場合に、燃費、排気(NOxとPM)、吸入空気量がどのように変化するかを示したものである。同図より、エンジン回転速度とエンジントルクが同一でも、燃費が最良となる可変ノズルの開口面積、排気が最良となる可変ノズルの開口面積、吸入空気量が最大となる(つまり加速性が最良となる)可変ノズルの開口面積はそれぞれ異なることがわかる。したがって、たとえば燃費重視の特性を作成するには、エンジン回転速度とエンジントルクを相違させて、燃費が最良となる開口面積(開口割合)のデータを多数求め、これらデータを改めて、tQas0とQes0(Megr)をパラメータとするマップに割り付ければよいわけである。
次に、オーバーブースト抑制時の目標開口割合基本値(第1実施形態では図55と図57、第2実施形態では図60と図57参照)を通常運転時の目標開口割合基本値(第1実施形態では図56と図58、第2実施形態では図61と図58参照)より大きくしている。これは、オーバーブースト抑制のためには過給圧を弱める側つまり可変ノズル53を開く側(Rvnt0を大きくする側)にすればよいからである。
なお、目標開口割合基本値の設定は上記のものに限られるものでない。第1実施形態では図55、図56のように設定吸入空気量相当値tQas0と設定EGR量相当値Qes0とから目標開口割合基本値を設定しているが、これに代えて、目標吸入空気量tQacと実EGR量Qecから設定してもかまわない。さらに、これに代えて目標吸入空気量tQacと目標EGR量(Qec0)から設定してもかまわない。同様にして、第2実施形態では図60、図61のように設定吸入空気量相当値tQas0と目標EGR率Megrから目標開口割合基本値を設定しているが、これに代えて、目標吸入空気量tQacと実EGR率Megrdから設定してもかまわない。さらに、これに代えて目標吸入空気量tQacと目標EGR率Megrから設定してもかまわない。
このように、目標吸入空気量tQacと実EGR量Qecとに基づいて、また目標吸入空気量tQacと実EGR率Megrdとに基づいて過給機の作動目標値である目標開口割合基本値Rvnt0を設定すると、EGR装置の制御目標値である目標EGR量(Qec0)や目標EGR率Megrが変化しても、燃費、排気、加速性を最適にする目標吸入空気量が得られることになり、過渡を含めたターボ過給機とEGR装置の制御性が向上し、これによってお互いの性能を十分に発揮させることができる。また、適合の簡易化、ロジックの簡易化も可能である。
特に過渡時には、目標EGR量や目標EGR率Megrがステップ的に変化しても、実EGR量Qecや実EGR率Megrdが目標EGR量や目標EGR率Megrに追いつくまでに遅れがあり、目標EGR量や目標EGR率Megrからのずれ分だけ目標開口割合基本値Rvnt0に誤差が生じ、燃費、排気、加速性を最適にする目標吸入空気量が得られなくなる可能性があるが、目標開口割合基本値Rvnt0を設定するに際して、目標EGR量に遅れ処理を施した値である実EGR量Qecを、また目標EGR率Megrに遅れ処理を施した値である実EGR量Megrdを用いれば、過渡時においても、燃費、排気、加速性を最適にする目標吸入空気量が得られるようにターボ過給機を制御できる。
図54においてステップ11ではオーバーブースト解除移行フラグFCLROBをみる。FCLROB=1のとき(オーバーブースト解除移行時)にはステップ13に進み、
(数23)
Rvnt=(1/TMRCLROB#)×Rvnt0
+(1−(1/TMRCLROB#))×Rvntn-1、
ただし、TMRCLROB#:時定数、
Rvntn-1:前回のRvnt、
の式により、目標開口割合基本値Rvnt0に対して遅れ処理を行って目標開口割合Rvntを演算する。このオーバーブースト解除移行時の処理は、オーバーブースト抑制時に可変ノズル53を開き側(過給圧の立ち上がらない側)にしていた後に、急に可変ノズル53を閉め側(過給圧の立ち上がる側)に戻すとそれが原因となってオーバーブーストを起こす恐れがあるため、可変ノズル53をゆっくりと閉じ側に戻すようにするものである。
そして、フラグFCLROB=0になる(オーバーブースト解除移行が終了する)と、ステップ11よりステップ12に進み、目標開口割合基本値Rvnt0をそのまま目標開口割合Rvntとする。
図63(図41のステップ4のサブルーチン)は上記のようにして求めた目標開口割合Rvntに対して、吸気系のダイナミクスを補償するため、進み処理を行うものである。
アクチュエータ54への制御指令値に対する新気量の応答遅れは、吸排気のガス流れの応答遅れ、ターボラグ、アクチュエータ54そのものの応答遅れからなるため、本実施形態ではターボラグを吸排気のガス流れの応答遅れに含めて、アクチュエータ54そのものの応答遅れと分離し、ターボラグを含めた吸排気のガス流れの応答遅れ(この遅れを以下「過給機・吸排気の応答遅れ」という。)とアクチュエータ54そのものの各応答遅れに対して独立に進み処理を行う。
このうち図63では過給機・吸排気の応答遅れだけを考慮して進み処理を行う(アクチュエータ54の応答遅れだけを考慮した進み処理は図85参照)。この場合に、過給機・吸排気の応答遅れの時定数は排気量に大きく依存するので、進み補正ゲインGkvntと進み補正の時定数相当値Tcvntとを排気量をパラメータとして設定する。さらに、可変ノズル53を開く側に動かす場合と閉じる側に動かす場合とで応答の時定数が違うため、各場合に応じたものとする。以下詳述する。
図63においてステップ1で目標開口割合Rvnt、目標吸入空気量遅れ処理値tQacd、目標燃料噴射量Qsol、エンジン回転速度Neを読み込み、ステップ2では、
(数24)
Tqexh=(tQacd+Qsol×QFGAN#)×Ne/KCON#、
ただし、QFGAN#:ゲイン、
KCON#:定数、
の式で実排気量相当値Tqexh[mg/st.cyl]を演算する。このTqexhは、数22式のうちの設定吸入空気量相当値tQas0を求める上段の式において目標吸入空気量tQacに代えて目標吸入空気量遅れ処理値tQacdを用いて得られる値である。これは、実際の排気量が応答するときの時定数とほぼ同じ時定数で変化する信号を作ったものである。たとえば、目標燃料噴射量Qsolをステップ的に増加させたときの変化を図64に示すと、実際の排気量の変化(最下段の破線参照)に対して、実排気量相当値Tqexh(最下段の実線参照)が応答よく追従している。
図63のステップ3では目標開口割合Rvntと前回の予想開口割合であるCavntn-1を比較する。ここで、予想開口割合Cavntとは、すぐ後で述べるように、目標開口割合Rvntの加重平均値である(図63のステップ11参照)。
Rvnt>Cavntn-1であれば(可変ノズル53を開く側に動かしているとき)、ステップ4、5に進み、実排気量相当値Tqexhdからたとえば図65を内容とするテーブルを検索して得た値TGKVNTOを進み補正ゲインGkvnt、同じく実排気量相当値Tqexhdからたとえば図67を内容とするテーブルを検索して得た値TTCVNTOを進み補正の時定数相当値Tcvntとして設定し、これに対して、Rvnt<Cavntn-1であるとき(可変ノズル53を閉じる側に動かしているとき)は、ステップ7、8に進み、実排気量相当値Tqexhdからたとえば図66を内容とするテーブルを検索して得た値TGKVNTCを進み補正ゲインGkvnt、同じく実排気量相当値Tqexhdからたとえば図68を内容とするテーブルを検索して得た値TTCVNTCを進み補正の時定数相当値Tcvntとして設定する。また、RvntとCavntn-1が同一であればステップ9、10に進み、進み処理の安定性を確保するため前回の進み補正ゲイン、進み補正の時定数相当値を維持する。
進み補正ゲインGkvntを定めるテーブルでは図65、図66に示したように小、中、大のほぼ3つの流量域でテーブル値TGKVNTO、TGKVNTCが異なっている。すなわち、小排気量域(小排気流量域)ではテーブル値TGKVNTO、TGKVNTCが1.0を超える値であるのに対して、大排気量域(大排気流量域)ではTGKVNTO、TGKVNTCが1.0未満の正の値である。また、中間領域(中排気流量域)はテーブル値TGKVNTO、TGKVNTCが基本的に1.0でよいのであるが、値を不連続に変化させると運転性に影響があるため、図示のように両端の流量域の値のあいだを滑らかにつないでいる。
ここで、小排気量域とは排気量の増加に伴いターボ効率が上昇する領域のこと、また大排気量域とは排気量の増加に伴いターボ効率が低下する領域のことである。これを説明すると、ターボ効率の特性においては、横軸を修正流量、縦軸を圧力比として図103に示したようにほぼ中央の領域で最もターボ効率が高くその領域より外れるほどターボ効率が低くなることが知られている。そこで、この特性を、横軸を排気量(排気流量)、縦軸をEGR量(EGR流量)とする領域に移し替えてみると、厳密ではないが図104のようにほぼ排気量のみに依存して3つの領域に区分けされることを見出した。そこで、排気量の増加に伴いターボ効率が上昇する領域を小排気量域、排気量の増加に伴いターボ効率が低下する領域を大排気量域、ターボ効率の変化が少ない領域を中間領域として区分けしたものである。さらに述べると、排気量の増加に伴いターボ効率が上昇する領域であるかどうかはターボ効率そのものに基づいてもわかるのであるが、ターボ効率そのものを演算させることは演算が複雑になるので、ターボ効率に代えて排気量を便宜的に用いるものである。
また、移し替えた図104の特性によれば、排気量(実排気量相当値Tqexhd)のみをパラメータとしてテーブル値TGKVNTO、TGKVNTCを設定すればよいこともわかる。なお、図103において修正流量Q*は
Q*=Q(T/P)1/2、
ただし、Q:体積流量[m3/s]、
T:タービン入口での排気の絶対温度[K]、
P:タービン入口での排気の絶対圧力[Pa]、
の式により、また圧力比πは
π=P1/P0、
ただし、P1:コンプレッサ出口圧[Pa]=マニホールド圧Pm、
P0:コンプレッサ入口圧[Pa]=大気圧Pa、
の式により定義される値である。
次に、図65、図66において大排気量域でテーブル値TGKVNTOを1.0未満の正の値としたのは、後述する数26式の進み補正の式により実質的には遅れ処理を行わせるためである。
なお、図65、図66において小排気量域でテーブル値TGKVNTO、TGKVNTCをほぼ一定の値としているが、排気量が小さいほど過給機・吸排気の応答遅れが大きくなることに対応して、実排気量相当値Tqexhdが小さくなるほどテーブル値TGKVNTO、TGKVNTCを大きくすることが好ましい。同様にして、大排気量域でもテーブル値TGKVNTO、TGKVNTCをほぼ一定の値としているが、排気量が大きいほど過給機・吸排気の応答遅れが小さいことに対応して、実排気量相当値Tqexhdが大きくなるほどテーブル値TGKVNTO、TGKVNTCを小さくすることが好ましい。
また、実排気量相当値Tqexhdが同じでも可変ノズル53を閉じる側に動かす場合(図66)のほうを開く側に動かす場合(図65)よりテーブル値を大きくしているのは、閉じる側に動かすほうが過給圧が立ちづらいので補正ゲインを大きくする必要があるからある。
進み補正の時定数相当値Tcvntを定めるテーブル値TTCVNTO、TTCVNTCは図67、図68に示したように実排気量相当値Tqexhdが小さくなるほど小さくなる値である。これは、排気量が小さいほど過給機・吸排気の応答遅れの時定数が大きくなるので、時定数を小排気量域ほど大きく(したがって時定数と逆数の関係にある時定数相当値Tcvntを小排気量域ほど小さく)したものである。また、実排気量相当値Tqexhdが同じでも可変ノズル53を閉じる側に動かす場合(図68)のほうを開く側に動かす場合(図67)よりテーブル値を小さくしているのは、閉じる側に動かすほうが時定数が大きいのでこれに合わせたものである。
図63のステップ11ではこのようにして求めた進み補正の時定数相当値Tcvntと目標開口割合Rvntを用いて、
(数25)
Cavnt=Rvnt×Tcvnt
+Cavntn-1×(1−Tcvnt)、
ただし、Cavntn-1:前回のCavnt、
の式により予想開口割合Cavntを演算し、この値と目標開口割合Rvntからステップ12において、
(数26)
Avnt f=Gkvnt×Rvnt
−(Gkvnt−1)×Cavntn-1、
ただし、Cavntn-1:前回のCavnt、
の式により進み補正を行い、目標開口割合のフィードフォワード量Avnt fを演算する。ステップ11、12の進み処理そのものは、図7のステップ4、5に示した進み処理と基本的に同様である。
ただし、数26式が進み補正の式となるのは数26式の進み補正ゲインGkvntが1.0を超える値であるときだけである。本実施形態では進み補正ゲインGkvntに1.0未満の正の値を設定することがあり、このときには数26式は実質的に遅れ補正の式となる。遅れ補正の式といえば一次遅れの式が有名であり、数26式を実質的な遅れ補正の式として用いるのは一般的な使い方でない。それでは、数26式を実質的な遅れ補正の式として用いた場合に目標開口割合のフィードフォワード量Avnt fがどのように変化するかを、たとえば進み補正ゲインGkvntを0.5、進み補正の時定数相当値Tcvntを0.1としてシミュレーションした結果を図106に示す。目標開口割合Rvntがステップ変化するタイミングでフィードフォワード量Avnt fも同時にかつステップ的に立ち上がる点が一次遅れの処理と大きく異なり、したがって一次遅れ処理値を用いる場合より応答がよいのが特徴的である。なお、比較のため進み補正ゲインGkvntを2.0、進み補正の時定数相当値Tcvntを0.1として数26式を本来の進み補正の式として用いた場合のフィードフォワード量Avnt fのシミュレーションの結果を図105に示す。
さらに図63のステップ13では
(数27)
Rvnte=Rvnt×TCVNT#
+(1−TCVNT#)×Rvnten-1、
ただし、TCVNT#:アクチュエータ54の応答遅れの時定数、
Rvnten-1:前回のRvnte、
の式により、目標開口割合Rvntに対して遅れ処理を行って実開口割合Rvnteを演算する。アクチュエータ54そのものの応答遅れの時定数TCVNT#はアクチュエータ54を可変ノズル53の開き側に動かす場合も閉じ側に動かす場合も変わらないため一定値である。
この実開口割合Rvnteは、後述するフィードバックゲインの設定に際してのPIゲイン開口割合補正係数Gkvavntの演算(図72のステップ7、図76)、開口割合学習値の反映領域で用いられる開口割合反映係数Gkvntlavの演算(図80のステップ9、図83)に用いられる。
図69(図41のステップ5のサブルーチン)は開口割合補正値(開口割合のフィードバック量Avnt fbと開口割合学習値Ravlr)を演算するためのもので、一定時間毎(10ms毎)に実行する。図69は図41に対してはサブルーチンであるが、図69の各ステップの処理に対してさらに下位のサブルーチンを用意しているため、この下位のサブルーチンを中心に説明する。
図70(図69のステップ1のサブルーチン)は開口割合のフィードバックの許可判定を行うためのものである。
まず、ステップ1では開口割合のフィードバック領域にあるかどうかをみる。図71に示したようにフィードバック領域(図ではF/B領域で略記)とは低負荷かつ低流量の領域を除いた残りの領域である。低負荷かつ低流量の領域を除いたのは、この領域では可変ノズル53の開口割合を変化させても新気量を殆ど変化させることができない(つまり開口割合の変化に対する新気量の感度が小さい)からである。これによって開口割合の変化に対する排気量の感度が小さい領域での吸入空気量制御(過給圧制御)の安定性を高めることができる。
なお、フィードバック領域と非フィードバック領域の境界にヒステリシス領域を設けている。
運転条件(Ne、負荷)がフィードバック領域にある場合は、図70のステップ2でフィードバック領域フラグFVNFBNEQF=1とし、そうでないときはステップ3で同フラグFVNFBNEQF=0とする。
ステップ4〜6では目標EGR率Megr、指令開口割合クランプフラグFCLPVNDTY(図85で後述する)の前回値であるFCLPVNDTYn-1、エアフローメータ故障フラグFDGMAFに基づき、開口割合のフィードバック許可条件であるかどうかを判定する。すなわち、
ステップ4:Megr>所定値KVNFBMEGR#である(EGRの作動域)、
ステップ5:FCLPVNDTYn-1=1である(指令開口割合Avntのクラ
ンプ時)、
ステップ6:FDGMAF=1である(エアフローメータの故障時)
のいずれが成立するときステップ8に進み、開口割合のフィードバックを禁止するためフィードバック許可フラグFVNFB=0とし、それ以外の場合にステップ7に進んで同フラグFVNFB=1とする。
EGRの作動域で開口割合のフィードバックを禁止するのは次の理由からである。EGRの作動域ではEGR弁開度をフィードバック制御するので、この領域で可変ノズル53の開口割合をもフィードバック制御すると、2つのフィードバック制御の干渉によるハンチングが生じるので、これを避けるためである。
指令開口割合Avntがクランプされている場合にフィードバックを禁止するのは次の理由による。指令開口割合Avntがクランプされるのは、後述するように指令開口割合Avntの変化が収束した場合である(図85のステップ2、9参照)。したがって、指令開口割合Avntがクランプされている場合には開口割合をそれ以上フィードバック制御する必要がないからである。また、エアフローメータの故障時にフィードバックを禁止するのはフェールセーフのためである。
図72(図69のステップ2のサブルーチン)は開口割合のフィードバック制御に用いるフィードバックゲインを設定するためのものである。
ステップ1では目標吸入空気量遅れ処理値tQacd、実吸入空気量Qac、実排気量相当値Tqexhd、実開口割合Rvnteを読み込む。
ステップ2ではフィードバック許可フラグFVNFBをみる。フラグFVNFB=1である(開口割合のフィードバック制御を行う)ときは、ステップ4において
(数28)
Eqac0=Qac−tQacd
の式により、実吸入空気量Qacの目標値(tQacd)からの制御誤差Eqac0を演算する。
ここで、通常のフィードバック制御では、運転条件により設定される目標吸入空気量tQacがそのままフィードバック制御における目標となるが、本実施形態では無駄時間および応答の時定数がともに大きな制御対象であるため、数28式のように目標吸入空気量遅れ処理値tQacdをフィードバック制御における目標値として制御誤差Eqac0を求めている(後述する図77のステップ4も同じ)。
一方、フラグFVNFB=0である(開口割合のフィードバック制御を行わない)ときにはステップ3に進み、制御誤差Eqac0=0とする。
ステップ5では制御誤差Eqac0からたとえば図73、図74を内容とするテーブルを検索することにより比例ゲイン基本値Gkvntp0、積分ゲイン基本値Gkvnti0を演算する。図73、図74において不感帯が設けてあるのは目標値の近傍での制御安定性を得るためである。
図72のステップ6、7では実排気量相当値Tqexhdからたとえば図75を内容とするテーブルを検索することによりPIゲインの排気量補正係数Gkvqexhを、また実開口割合Rvnteからたとえば図76を内容とするテーブルを検索することによりPIゲインの開口割合補正係数Gkvavntを演算し、ステップ8において
(数29)
Gkvntp=Gkvntp0×Gkvqexh×Gkvavnt、
Gkvnti=Gkvnti0×Gkvqexh×Gkvavnt、
の式により比例ゲインGkvntp、積分ゲインGkvntiを演算する。
図75に示したように、PIゲインの排気量補正係数Gkvqexhは実排気量相当値Tqexhdが大きくなるほど小さくなる値である。これは、可変ノズル53の開口割合の変化幅は同じでも大排気量側のほうが小排気量側より目標へと近づけやすいので、補正係数としては大排気量側のほうが小排気量側より小さくてよいからである。
図76のように、PIゲインの開口割合補正係数Gkvavntは実開口割合Rvnteが小さくなるほど小さくなる値である。可変ノズル53が閉じている側(実開口割合Rvnteが小さい側)のほうが可変ノズル53が開いている側(実開口割合Rvnteが大きい側)より過給圧が立っているため、可変ノズル53が閉じている側のほうが可変ノズル53の開口割合を少し変化させただけでも新気量が敏感に変化するので、これに合わせて可変ノズル53が閉じているほど補正係数を小さくする必要があるからである。
図77(図69のステップ3のサブルーチン)は開口割合のフィードバック量Avnt fbを演算するためのものである。
ステップ1〜4では図72のステップ1〜4と同様にしてフィードバック許可フラグFVNFBの値に応じて制御誤差Eqacを演算したあと、ステップ5で、
(数30)
Ravfbp=Gkvntp×Eqac
の式により比例補正値Ravfbpを、またステップ6で
(数31)
Ravfbi=Ravfbin-1+Gkvnti×Eqac
−dTravlr、
ただし、Ravfbin-1:前回のRavfbi、
dTravlr:開口割合学習値の変化分、
の式により積分補正値Ravfbiを演算し、ステップ7においてこれらの和を開口割合のフィードバック量Avnt fbとして算出する。
ここで、数31式の右辺第2項までが通常の学習動作の場合で、本実施形態では新たに右辺第3項を追加し、今回の積分補正値であるRavfbin-1+Gkvnti×Eqacより開口割合学習値Travlrの前回から今回までの変化分であるdTravlrを差し引くようにしている(積分補正値と開口割合学習値の演算周期は10msで同じ)。開口割合学習値Ravlrは後述するように積分補正値Ravfbiに基づいて更新するものであり(図80のステップ2〜6参照)、こうして積分補正値Ravfbiの全部または一部を開口割合学習値Ravlrに置き換える一方で、開口割合学習値Ravlrに置き換えた分だけ次のサイクルで積分補正値から減算するようにしているのは、トータルの開口割合補正値(=Avnt fb+Travlr)を開口割合学習中、一定とするためである。
図78(図69のステップ4のサブルーチン)は開口割合学習に用いる学習許可フラグFVNLRを設定するためのものである。ステップ1で目標EGR率Megr、大気圧Pa、水温Tw、制御誤差Eqac0(図72により得ている)、目標吸入空気量遅れ処理値tQacdを読み込む。
学習許可条件の判定は、ステップ2〜9の内容を一つずつチェックすることにより行い、各項目の全てが満たされたときに開口割合学習を許可し、一つでも反するときには開口割合学習を禁止する。すなわち、
ステップ2:学習領域にある、
ステップ3:フィードバック許可フラグFVNFB=1である、
ステップ4:Megrが所定値KVNLRMEGR#以下である(つまりEGRの非作 動域)、
ステップ5:Paが所定値KVNLRPA#以上である(高地でない)、
ステップ6:Twが所定値KVNLRTW#以上である(暖機完了している)、
ステップ7:tQacdに対するEqac0の比の絶対値が所定値KVNLREQA# 以下である(外乱が入っていない)、
ステップ8:オーバーブースト判定フラグFOVRBST=0かつオーバーブースト解 除移行フラグFCLROB=0である、
ステップ9:エアフローメータ故障判定フラグFDGMAF=0である
のすべてが成立するとき、ステップ10で開口割合学習を許可するため学習許可フラグFVNLR=1とし、そうでなければステップ11に移行し、開口割合学習を禁止するため学習許可フラグFVNLR=0とする。
なお、ステップ7で制御誤差Eqac0と目標(tQacd)の比率を採っているのは、目標が変化しても目標に対する制御誤差の比率を一定にしたいためである。簡単には、制御誤差の絶対値と所定値を比較させるようにしてもよい。
ここで、学習領域としては図79に示したようにエンジン負荷としての目標燃料噴射量Qsolとエンジン回転速度Neに対して所定の領域が予め与えられている。ただし、図79はあくまでモデル的に示したに過ぎず、実際には図71のように開口割合のフィードバック領域中の一部に設けている。学習領域の望ましい条件としては、開口割合学習の感度がよい(開口割合に対する新気量の変化が大きい)ことが挙げられる。
図80(図69のステップ5のサブルーチン)は開口割合学習値Ravlrを演算するためのものである。
ステップ1ではメモリEEPROM(不揮発性RAM)に格納されている開口割合学習値Ravlrを読み出し、前回の開口割合学習値であるRavlrzとしてストアした後、ステップ2で学習許可フラグFVNLRをみる。学習許可フラグFVNLR=1のときにはステップ3〜6に進んで通常の学習方法と同じに開口割合学習値を演算(更新)する。すなわち、ステップ3、4で開口割合のフィードバック量としての積分補正値Ravfbiを開口割合学習初期値Ravlr0に入れ、運転条件(Ne、Qsol)からたとえば図81を内容とするマップを検索することにより学習速度Kvntlrnを演算し、これら開口割合学習初期値Ravlr0、学習速度Kvntlrnを用い、ステップ5において
(数32)
Ravlr=Ravlr0×Kvntlrn
+(1−Kvntlrn)×Ravlrn-1、
ただし、Ravlr:更新後の開口割合学習値、
Ravlrn-1:更新前の開口割合学習値(=学習値読み出し値) 、
の式により加重平均処理を行い、更新後の開口割合学習値をステップ6で上記メモリEEPROMにストアする(更新前の値に対して更新後の値を上書きする)。これによって、たとえば学習速度Kvntlrnが最大の1であれば積分補正値Ravfbiの全部が、また学習速度Kvntlrnが1より小さいときには積分補正値Ravfbiの一部が開口割合学習値Ravlrに置き換えられる。
図81に示したように学習速度KvntlrnはQsol、Neが大きくなるほど大きくなる値(ただし、Kvntlrn≦1)としている。これは、Qsol、Neが大きくなるほど感度が高い(開口割合に対する新気量の変化が大きい)ことに対応して、Qsol、Neが大きくなるほど開口割合学習を早く終わらせるためである。
一方、学習許可フラグFVNLR=0のときは学習領域外であるため、開口割合学習値を演算(更新)することはできない。
しかしながら、この場合に本実施形態では図80のステップ7〜10を新たに追加し、学習領域で得た開口割合学習値Ravlrを学習領域外に反映させるための開口割合学習値を演算する。ただし、学習領域外で演算する開口割合学習値も、学習値の記号としては学習領域で更新する開口割合学習値と同じRavlrを用いる。開口割合学習値を反映させるための開口割合学習値を演算する領域は、開口割合のフィードバック領域のうち学習領域を除いた領域である。
具体的には図80のステップ7で前回の開口割合学習値であるRavlrn-1(ステップ7の処理を実行する直前にメモリEEPROMに格納されている開口割合学習値)を開口割合学習初期値Ravlr0に入れる。ステップ8、9では、運転条件(Qsol、Ne)からたとえば図82を内容とするマップを検索することにより開口割合学習値の運転領域反映係数Gkvntlnqを、また実開口割合Rvnte(過給圧の作動実際値)からたとえば図83を内容とするテーブルを検索することにより開口割合学習値の開口割合反映係数Gkvntlavを演算し、図80のステップ10において
(数33)
Ravlr=Ravlr0×Gkvntlnq×Gkvntlav
の式により反映領域における開口割合学習値Ravlrを演算する。
数33式により得た開口割合学習値はあくまで学習領域の外に開口割合学習値を反映させるためだけに用いるので、学習領域で更新される開口割合学習値と相違して、メモリEEPROMにストアすることはしない(ステップ6に対応するステップがない)。
図82に示したように運転領域反映係数Gkvntlnqは学習領域より外れるほど1より小さくなる値である(学習領域で最大の1)。これは、学習領域の近くでは学習領域とほぼ同等の学習値でよいとみなせるのに対して、学習領域から大きく外れた領域でも学習領域と同じ開口割合学習値を与えたのでは真の開口割合学習値からのずれが大きすぎ、オーバーブーストが生じる可能性があるので、これを避けるため学習領域より外れるほど反映係数を小さくしたものである。
図83のように開口割合反映係数Gkvntlavは実開口割合Rvnteが小さい領域で小さくなる値である。これは、開口割合に対する新気量の特性が反比例特性にほぼ類似の特性であり、開口割合が小さい領域(過給圧の立ち上がりが急激な領域)においても開口割合が大きい領域(過給圧の立ち上がりが悪い領域)と同じ開口割合学習値を与えたのでは開口割合学習値が大きすぎ、オーバーブーストが生じる可能性があるので、開口割合が小さい領域では開口割合が大きい領域よりも小さな反映係数を与えるようにしたものである。
図80のステップ11では、このようにして求めた開口割合学習値Ravlrと前回の開口割合学習値であるRavlrzとから
(数34)
dTravlr=Ravlr−Ravlrz
の式により開口割合学習値の変化分(演算周期10ms当たりの変化分)dTravlrを演算する。この変化分dTravlrが開口割合のフィードバック量Avnt fbの演算に用いられる(図77のステップ6参照)。したがって、本実施形態では、学習領域に限らず反映領域においてもトータルの開口割合補正値が一定に保たれる。
これで図69の説明をすべて終了する。
次に、図84(図41のステップ6のサブルーチン)は最終指令開口割合Trvntを演算するためのものである。
ステップ1で目標開口割合のフィードフォワード量Avnt f、開口割合のフィードバック量Avnt fb、開口割合学習値Ravlrを読み込み、これらをステップ2において加算した値を指令開口割合Avntとして算出する。
ステップ3では、アクチュエータ54のダイナミクスを補償するため、進み処理を行う。これは、アクチュエータ54が圧力アクチュエータである場合には、ステップモータである場合と異なり無視できないほどの応答遅れがあるためである。このアクチュエータ54の進み処理については図85により説明する。
図85(図84のステップ3のサブルーチン)においてステップ1で指令開口割合Avnt(図84のステップ2で得ている)を読み込み、この値と前回の指令開口割合であるAvntn-1との差の絶対値を所定値EPSDTY#と比較する。AvntとAvntn-1との差の絶対値が所定値EPSDTY#以上のとき(指令開口割合が変化途中にある)にはステップ3で指令開口割合のクランプフラグFCLPVNDTY=0とし、AvntとAvntn-1との差の絶対値が所定値EPSDTY#未満になると、ステップ2よりステップ9に進み、指令開口割合のクランプフラグFCLPVNDTY=1とする。
クランプフラグFCLPVNDTYは本実施形態で新たに導入したもので、開口割合のフィードバック制御を禁止するために用いられる(図70参照)。すなわち、クランプフラグFCLPVNDTY=1になると、次回からフィードバック制御が禁止される。これは、クランプフラグFCLPVNDTY=1(つまり指令開口割合Avntの変化が所定値未満になった)より指令開口割合Avntの変化が収束したと判断され、この場合には開口割合をそれ以上フィードバック制御する必要がないからである。
ステップ3クランプフラグFCLPVNDTY=0とした後はステップ4以降に進む。
ステップ4では指令開口割合Avntと前回の指令開口割合であるAvntn-1を比較する。Avnt>Avntn-1であれば(アクチュエータ54を可変ノズル53の開き側に動かしているとき)、ステップ5、6に進み、所定値GKVACTP#をアクチュエータ進み補正ゲインGkact、所定値TCVACTP#をアクチュエータ進み補正の時定数相当値Tcactとして設定し、これに対して、Avnt<Avntn-1であるとき(アクチュエータ54を可変ノズル53の閉じ側に動かしているとき)は、ステップ7、8に進み、所定値GKVACTN#をアクチュエータ進み補正ゲインGkact、所定値TCVACTN#をアクチュエータ進み補正の時定数相当値Tcactとして設定する。
アクチュエータ54を可変ノズル53の開き側に動かしているときと閉じ側に動かしているときとでアクチュエータ進み補正ゲインGkact、アクチュエータ進み補正の時定数相当値Tcactを相違させ、GKVACTP#<GKVACTN#、TCVACTP#<TCVACTN#としている。これは、アクチュエータ54を可変ノズル53の閉じ側に動かすときは、排気圧に抗する必要があるので、そのぶんゲインGkactを大きくし、かつ時定数を小さくする(時定数と逆数の関係にある時定数相当値Tcactは大きくする)必要があるからである。
一方、ステップ9でクランプフラグFCLPVNDTY=1とした後には、アクチュエータ進み処理の安定性を確保するためステップ10、11に進み、前回のアクチュエータ進み補正ゲイン、アクチュエータ進み補正の時定数相当値を維持する。
ステップ12ではこのようにして求めたアクチュエータ進み補正の時定数相当値Tcactと指令開口割合Avntを用いて、
(数35)
Cvact=Avnt×Tcact
+Cvactn-1×(1−Tcact)、
ただし、Cvactn-1:前回のCvact、
の式により予想開口割合Cvactを演算し、この値と指令開口割合Avntからステップ13において、
(数36)
Trvnt=Gkact×Avnt
−(Gkact−1)×Cvactn-1、
ただし、Cvactn-1:前回のCvact、
の式により進み補正を行い、最終指令開口割合Trvntを演算する。ステップ12、13の進み処理そのものも、図7のステップ4、5に示した進み処理と基本的に同様である。
このように、図85のフローではアクチュエータ54の応答遅れだけを考慮した進み処理を行う(過給機・吸排気の応答遅れだけを考慮した進み処理は図63で前述した)。
このようにして、アクチュエータ54そのものの応答遅れを考慮した進み処理を行った後の値である最終指令開口割合Trvntを演算したら図84に戻りステップ4でこの最終指令開口割合Trvntからたとえば図86を内容とするテーブル(線型化テーブル)を検索することにより指令開口割合線型化処理値Ratdtyを設定する。
この線型化処理は、図86のように開口割合(あるいは開口面積)に対して、アクチュエータへの指令信号が非線型な特性を有する場合に必要となるものである。
図87(図41のステップ7のサブルーチン)は圧力制御弁56に与えるONデューティ値(以下、単に「デューティ値」という)である制御指令デューティ値Dtyvntを設定するためのものである。まず、ステップ1でエンジン回転速度Ne、目標燃料噴射量Qsol、指令開口割合線型化処理値Ratdty、アクチュエータ54の時定数相当値Tcact、水温Twを読み込む。
ステップ2ではデューティ選択信号フラグの設定を行う。このフラグ設定については図88のフローにより説明する。図88において、ステップ1で指令開口割合Avntとアクチュエータ54の時定数相当値Tcactを読み込み、これらからステップ2において、
(数37)
Adlyvnt=Avnt×Tcact
+Adlyvntn-1×(1−Tcact)、
ただし、Adlyvntn-1:前回のAdlyvnt、
の式により遅れ処理を行って予想開口割合Adlyvntを演算し、この値と前回の予想開口割合のM(ただしMは整数の定数)回前の値であるAdlyvntn-Mとをステップ3において比較する。
Adlyvnt≧Adlyvntn-Mであるとき(増加傾向または定常状態にあるとき)は、増加傾向または定常状態にあることを示すためステップ4で作動方向指令フラグfvnt=1とし、それ以外ではステップ5で作動方向指令フラグfvnt=0とする。ステップ6ではさらに増加傾向である場合と定常状態とを分離するため、AdlyvntとAdlyvntn-Mを比較し、Adlyvnt=Adlyvntn-Mであるときは、ステップ7でデューティ保持フラグfvnt2=1とし、それ以外ではステップ8でデューティ保持フラグfvnt2=0とする。
このようにして2つのフラグfvnt、fvnt2の設定を終了したら、図87のステップ3に戻り、デューティ値の温度補正量Dty tを演算する。この演算については図89のフローより説明する。
図89において、ステップ1でエンジン回転速度Ne、目標燃料噴射量Qsol、水温Twを読み込み、このうちNeとQsolからステップ2においてたとえば図90を内容とするマップを検索すること等により基本排気温度Texhbを演算する。ここで、Texhbは暖機完了後の排気温度である。これに対して暖機途中であれば暖機完了後の排気温度とは異なってくるため、ステップ3で水温Twよりたとえば図91を内容とするテーブルを検索すこと等により排気温度の水温補正係数Ktexh twを演算し、この値をステップ4において上記の基本排気温度に乗算した値を排気温度Texhiとして演算する。
ステップ5ではこの排気温度Texhiから
(数38)
Texhdly=Texhi×KEXH#
+Texhdlyn-1×(1−KEXH#)、
ただし、KEXH#:定数、
Texhdlyn-1:前回のTexhdly、
の式により遅れ処理を行った値を実排気温度Texhdlyとして演算する。これは、熱慣性分の遅れ処理を行うものである。
ステップ6では基本排気温度Texhbとこの実排気温度Texhdlyとの差dTexhを演算し、この差dTexhからステップ7においてたとえば図92を内容とするテーブルを検索すること等によりデューティ値の温度補正量Dty tを演算する。ステップ6、7は、後述するヒステリシス対応に用いるマップ(Duty h p、Duty h n、Duty l p、Duty l nのマップ)を暖機完了後に対して設定することを念頭に置き、その状態からの差分(つまりdTexh)に応じた補正量を持たせるものである。なお、温度補正量Dty tによる補正は、雰囲気温度による温度特性を有するアクチュエータを使用する場合に必要となる処理である(図93参照)。
このようにして温度補正量Dty tの演算が終了したら、図87のステップ4に戻る。
図87のステップ4〜9はヒステリシス処理を行うものである。この処理を図98を用いて先に説明しておくと、これは、指令開口割合線型化処理値Ratdtyが増加傾向にあるときに上側の特性(Duty l pを可変ノズル全開時の指令信号、Duty h pを可変ノズル全閉時の指令信号とする直線特性)を用いるのに対して、指令開口割合線型化処理値Ratdtyが減少傾向にあるときには、もう一つの下側の特性(Duty l nを可変ノズル全開時の指令信号、Duty h nを可変ノズル全閉時の指令信号とする直線特性)を用いるものである。なお、Ratdtyが1に近い領域で2つの特性がひっくり返っている領域があるが、この領域が実際に使われることはない。
図87に戻り、ステップ4でフラグfvnt1をみる。fvnt=1のとき(すなわち開口割合が増加傾向にあるかまたは定常状態にあるとき)は、ステップ5、6に進み、たとえば図94を内容とするマップ(Duty h pマップ)と図95を内容とするマップ(Duty l pマップ)を検索することにより可変ノズル全閉時のデューティ値Duty hと可変ノズル全開時のデューティ値Duty lをそれぞれ設定する。一方、fvnt=0のとき(すなわち開口割合が減少傾向にあるとき)は、ステップ7、8に進み、たとえば図96を内容とするマップ(Duty h nマップ)と図97を内容とするマップ(Duty l nマップ)を検索することにより可変ノズル全閉時のデューティ値Duty hと可変ノズル全開時のデューティ値Duty lをそれぞれ設定する。
このようにして設定した可変ノズル全閉時のデューティ値Duty h、可変ノズル全開時のデューティ値Duty lと上記の指令開口割合線型化処理値Ratdtyを用いステップ9において、
(数39)
Dty h=(Duty h−Duty l)×Ratdty
+Duty l+Dty t
の式により線型補間計算を行って指令デューティ値基本値Dty hを演算する。つまり、線型補間計算に用いる直線の特性を、指令開口割合線型化処理値が増加傾向にあるかまたは定常状態にあるときと指令開口割合線型化処理値が減少傾向にあるときとで変更する(ヒステリシス処理を行う)ことで、指令開口割合線型化処理値が同じであっても、指令開口割合線型化処理値が増加傾向(または定常状態)にあるときのほうが、減少傾向にあるときより指令デューティ値基本値Dty hが大きくなる。
ステップ10ではもう一つのフラグfvnt2をみる。fvnt2=1(すなわち指令開口割合線型化処理値の変化がない)ときは、ステップ11に進み、前回の制御指令デューティ値(後述する)であるDtyvntn-1を通常指令デューティ値Dtyvに入れ(デューティ値をホールドし)、fvnt2=0(すなわち開口割合が減少傾向にある)ときは、ステップ12に進み、最新の演算値であるDty hをDtyvとする。
ステップ13では動作確認制御処理を行う。この処理については図99のフローより説明する。図99において、ステップ1で通常指令デューティ値Dtyv、エンジン回転速度Ne、目標燃料噴射量Qsol、水温Twを読み込む。
動作確認制御に入るための条件判定は、ステップ2、3、4、5の内容を一つずつチェックすることにより行い、各項目のすべてが満たされたときにさらに制御実行までの時間の計測に入る。すなわち、
ステップ2:Qsolが所定値QSOLDIZ#未満(つまり燃料カット時)である、
ステップ3:Neが所定値NEDIZ#未満(つまり中回転速度域)である、
ステップ4:Twが所定値TWDIZ#未満(つまり暖機完了前)である、
ステップ5:動作確認制御済みフラグfdiz=0である(まだ動作確認制御を行って いない)、
とき、ステップ6で動作確認制御カウンタCtrdizをインクリメントする。
ステップ7ではこの動作確認制御カウンタと所定値CTRDIZH#、CTRDIZL#を比較する。ここで、所定値CTRDIZL#、CTRDIZH#は動作確認制御カウンタの下限リミット、上限リミットをそれぞれ定めるもので、CTRDIZL#はたとえば2秒程度、CTRDIZH#はたとえば7秒程度の値である。したがって、動作確認制御カウンタが下限リミットであるCTRDIZL#と一致したタイミングより、動作確認制御カウンタが上限リミットであるCTRDIZH#未満であるあいだ、ステップ9に進み、動作確認制御指令デューティ値を設定する。つまり、CTRDIZH#−CTRDIZL#が動作確認制御実行時間となる。
動作確認制御指令デューティ値の設定については図100のフローにより説明する。図100においてステップ1で動作確認制御カウンタCtrdiz、エンジン回転速度Neを読み込み、ステップ2においてCtrdiz−CTRDIZL#(≧0)よりたとえば図101を内容とするテーブルを検索することにより制御パターンDuty puを設定する。これは、短い周期で可変ノズル53を全閉位置と全開位置とに動かすものである。
ステップ3では、エンジン回転速度Neからたとえば図102を内容とするテーブルを検索することによりデューティ値Duty p neを設定し、このDuty p neにステップ4において上記の制御パターンDuty puを乗じた値を制御指令デューティ値Dtyvntとして演算する。図102のように、制御パターンDuty puに乗じるデューティ値Duty p neをエンジン回転速度Neに応じた値としている。これは、エンジン回転速度により可変ノズル53の開閉動作を確認するデューティの指令値が異なることを想定したものである。たとえば、可変ノズル53は排気圧に抗して閉じる必要があるが、その排気圧は高回転になるほど高くなるので、これに対応してデューティの指令値を大きくしている。また、さらに高回転側では当制御による悪影響を受けないようにその値を下げるようにしている。
図99に戻り、動作確認制御カウンタが下限リミットとしてのCTRDIZL#未満のときは、ステップ8よりステップ15に進み、通常指令デューティ値Dtyvを制御指令デューティ値Dtyvntとする。
また、動作確認制御カウンタが上限リミットとしてのCTRDIZH#以上になると、ステップ7よりステップ10に進み、前回の動作確認制御カウンタであるCtrdizn-1と上限リミットとしてのCTRDIZH#を比較する。Ctrdizn-1<CTRDIZH#であれば、動作確認制御カウンタが上限リミットとしてのCTRDIZH#以上になった直後と判断し、動作確認制御を終了するため、ステップ11で制御指令デューティ値Dtyvnt=0とする。これは、動作確認制御終了時に一度、可変ノズル53を全開にして、通常制御時の制御精度を確保するためである。ステップ12では、動作確認制御済みフラグfdiz=1として、今回の処理を終了する。このフラグfdiz=1により、次回以降ステップ6以降に進むことができないので、エンジンを始動した後に動作確認制御が2度行われることはない。
動作確認制御カウンタが上限リミットとしてのCTRDIZH#以上になった直後でないときは、ステップ10よりステップ14に進み、次回に備えるため動作確認制御カウンタCtrdiz=0とした後、ステップ15の処理を実行する。
一方、Qsolが所定値QSOLDIZ#以上(燃料カット時でない)であるとき、Neが所定値NEDIZ#以上(高回転域)であるとき、Twが所定値TWDIZ#以上(暖機完了後)であるときは動作確認制御を禁止するため、ステップ2、3、4よりステップ13に進み、フラグfdiz=0としたあと、ステップ14、15の処理を実行する。
このように、特に低温時など、アクチュエータ54の動作が不安定な場合に動作確認制御を行わせることで、可変ノズル53の動きが滑らかとなり、アクチュエータ54の動作をより確実にすることができる。
以上で、図41の説明をすべて終了する。
ここで、2つの実施形態の加速時の作用を図107、図108を参照しながら説明すると、まず図107は小排気量域(排気量の増加に伴いターボ効率が上昇する領域)で加速を行う場合のものである。本実施形態では、アクチュエータ54への制御指令値に対する実吸入空気量の応答遅れを、過給機・吸排気の応答遅れとアクチュエータ54そのものの応答遅れに分離し、各応答遅れに対して独立に進み処理を行うので(過給機・吸排気の応答遅れを補償するための進み処理について図63を、アクチュエータ54そのものの応答遅れを補償するための進み処理について図85を参照)、運転条件の変化により目標開口割合Rvntがt1のタイミングでステップ的に減少するとき(可変ノズルは閉じられて過給圧が高まる)、目標開口割合Rvntに対して過給機・吸排気の応答遅れを補償するための進み処理を行った後の値である目標開口割合のフィードフォワード量Avnt fは、t1のタイミングでステップ変化してRvntよりも小さくなった後、ゆっくりと目標開口割合Rvntへと近づいてゆく(図107の波形図の第3段目、第4段目の破線参照)。そして、このフィードフォワード量Avnt fに対してさらにアクチュエータ54そのものの応答遅れを補償するための進み処理を行った後の値はt1のタイミングでステップ変化してフィードフォワード量Avnt fよりもさらに小さくなった後、フィードフォワード量Avnt fを追ってゆっくりと目標開口割合Rvntへと近づいてゆく(図107の波形図の第4段目の実線参照)。
このように、本実施形態では、過給機・吸排気の応答遅れ、アクチュエータ54そのものの応答遅れといった性格の異なる2つの応答遅れに対応して独立に進み処理を行うので、2つの応答遅れとも精度よく補償されて実吸入空気量Qacが応答良く増加するので、従来装置の場合より進み処理の制御精度が一段と向上する。
また、過給圧が大きくなる側にアクチュエータ54を動かす場合のほうが、過給圧が小さくなる側にアクチュエータ54を動かす場合より過給圧が立ちづらいことに対応して、過給圧が大きくなる側にアクチュエータ54を動かす場合に用いるテーブル値TGKVNTCのほうを、過給圧が小さくなる側にアクチュエータ54を動かす場合に用いるテーブル値TGKVNTOより大きく設定することにより(図65、図66参照)、過給圧が大きくなる側にアクチュエータ54を動かす場合のほうを、過給圧が小さくなる側にアクチュエータ54を動かす場合より進み補正ゲインGkvntを大きくしたので、過給圧が大きくなる側にアクチュエータ54を動かす場合にも応答良く過給圧を立ち上げることができる。
また、過給圧が大きくなる側にアクチュエータ54を動かす場合のほうが、過給圧が小さくなる側にアクチュエータ54を動かす場合より過給機・吸排気の遅れの時定数が大きくなる(この時定数と逆数の関係にある時定数相当値が小さくなる)ことに対応して、過給圧が大きくなる側にアクチュエータ54を動かす場合のほうを、過給圧が小さくなる側にアクチュエータ54を動かす場合より進み補正の時定数相当値Tcvntを小さくするようにしたので、進み補正における時定数相当値の設定精度が向上する。
次に、図108は大排気量域(排気量の増加に伴いターボ効率が低下する領域)で加速を行う場合のものである。この場合には、可変ノズルが閉じられる小流量域とは反対に、可変ノズル53が開かれるように目標開口割合Rvntがステップ的に大きくなることから、進み補正ゲインGkvntが1.0未満の正の値となる(図65のテーブル値TGKVNTOのうちで大排気量域の値が検索されるため)。1.0未満の正の値を進み補正ゲインGkvntとする上記数26式の進み補正の式は、このとき実質的に遅れ補正の式となり、したがって、このときの目標開口割合Rvntのフィードフォワード量Avnt fは、目標開口割合Rvntがステップ増加するt2のタイミングでステップ増加し(ただしその増加量はRvntよりは少ない)、その後は遅れて目標開口割合Rvntに近づいてゆく(図108の波形図の第3段目、第4段目の破線参照)。
そして、大排気量域でも小排気量域と同じにフィードフォワード量Avnt fに対してアクチュエータ54そのものの応答遅れ補償のための進み処理が行われると、この進み処理が行われた後の値はAvnt fを少し大きくした値になるが(図108の波形図の第4段目の実線参照)、その値が目標開口割合Rvntを超えて大きくなることはない(アクチュエータ54そのものの応答遅れ補償のための進み処理が数26式による実質的な遅れ補正の効果をうち消すことはない)。すなわち、アクチュエータ54そのものの応答遅れを補償するための進み処理を行った後も、全体としては数26式による実質的な遅れ補正のほうが支配的であるため、この遅れ補正により可変ノズル53がゆっくり開かれる(過給圧可変機構が過給圧が低下する側にゆっくり駆動される)ことから、タービン回転速度が一時的に低下することが避けられ、これによって加速を大排気量域において行う場合においても実吸入空気量Qacの増加が遅れなく行われる(図108の波形図の最下段の実線参照)。
また、排気量の増加に伴いターボ効率が低下する領域であるかどうか、あるいは排気量の増加に伴いターボ効率が上昇する領域であるかどうかをターボ効率そのものに基づいて判定させることが考えられるが、この方法だとターボ効率そのものを演算させるのがなかなか困難である。これに対して本実施形態ではターボ効率に代えて従来装置や先願装置において用いられている排気量をそのまま用いることができるので、演算が容易になり、制御システムが簡素になる。
図111のフローチャートは第3実施形態で、第1、第2の2つの実施形態で共用する図5と置き換わるものである。図5と同一部分には同一のステップ番号を付けている。
第1、第2の実施形態はEGR流速Cqeを演算し、これと目標EGR量TqekとからEGR装置の制御目標値(EGR弁開口面積Aev)を演算するものを対象として本発明を適用したものであったが、第3実施形態は、過給機の作動目標値をEGR弁前後差圧を近似する値として採用し、この値と目標EGR値(目標EGR量または目標EGR率)とをパラメータとしてEGR装置の制御目標値を演算するものを対象として本発明を適用するものである。第3実施形態のように、過給機の作動目標値をEGR弁前後差圧を近似する値として採用し、この値と目標EGR値とをパラメータとしてEGR装置の制御目標値を演算するものでは、EGR流速を演算しなくとも直接的にEGR装置の制御目標値を求めることが可能となり、これによって簡単なロジックでEGR制御を最適化できる(詳しくは特願2000−139929号参照)。
第1、第2の実施形態と相違する部分を主に説明すると、ステップ11では、
(数40)
Tqek2
=Tqec/(Kqac×Kqac0×Kqac00)/SVOL#、
ただし、Kqac00:EGR量フィードバック補正係数、
Kqac0:EGR流速フィードバック補正係数、
Kqac:EGR流速学習補正係数、
SVOL#:排気量、
の式により1シリンダ当たりかつ単位排気量当たりの目標EGR量Tqek2を求める。
ステップ12では実開口割合Rvnte(図63のステップ13で得ている)を読み込み、この実開口割合Rvnteと1シリンダ当たりかつ単位排気量当たりの目標EGR量Tqek2とからステップ13において図112を内容とするマップを検索することにより、単位排気量当たりの目標EGR弁開口面積Eaevを演算する。
図112において横軸の実開口割合RvnteはEGR弁6の前後差圧を近似する値として採用している。たとえば、EGR弁開度を一定としたとき、Rvnteが小さくなるほど可変ノズル53が閉じられて過給圧が高くなるためEGR弁6の前後差圧が大きくなり、この逆にRvnteが大きくなるほど可変ノズル53が開かれて過給圧が低くなるためEGR弁6の前後差圧が小さくなる。
このようにEGR弁6の前後差圧を近似した値であるRvnteを横軸に、EGR量を縦軸にとると、これらをパラメータとしてEGR弁6の開口面積を直接的に与えることができる。このときの特性は、図113のようにEGR量を一定とすればRvnteが大きくなる(EGR弁前後差圧が小さくなる)ほどEGR弁開口面積が小さくなり、Rvnteを一定とすればEGR量が大きくなるほど開口面積が大きくなる。ただし、図113は理論的な特性で、図112が実験データである。実験データによれば、値が急激に変化するような特異な領域がなく、ほぼ滑らかな特性であるため、このマップ特性を用いてEGR率を制御しても制御性が悪くなることはない。なお、図112において右上部分が図113と大きく相違しているが、この領域は実際には使われない領域であるため、これらの領域の値が制御に影響するということはない。また、図112の数値は大小を表すだけの仮りの値である。
また、図112の特性はEGR弁6の開口面積そのものでなく、単位排気量当たりの値として割り付けている。これは、エンジン排気量に関係なく汎用性を持たせるためである。
このようにして、単位排気量当たりの目標EGR弁開口面積Eaevを求めた後は、ステップ14でこのEaevと排気量SVOL#から
(数41)
Aev=Eaev×SVOL#
の式で目標EGR弁開口面積Aevを演算する。
目標開口割合Rvnt(過給機の作動目標値)に対してアクチュエータ54そのものの応答遅れに対応する遅れ処理を施した値である実開口割合Rvnteは、可変ノズル53の実際の開口割合(過給機の作動実際値)を良く表すので、この実開口割合Rvnteを、目標開口割合Rvntに代えてEGR弁前後差圧を近似する値として採用した第3実施形態によれば、上記第2の先願装置(特願2000−139929号)の効果(EGR流速を演算しなくとも直接的にEGR装置の制御目標値を求めることが可能となり、これによって簡単なロジックでEGR制御を最適化できる)に加えて、EGR制御精度を一段と向上させることができる。
実施形態では、排気量の増加に伴いターボ効率が上昇する領域と、排気量の増加に伴いターボ効率が低下する領域とに区別したが、排気量が増加する前提として吸入空気量が増加するので、吸入空気量の増加に伴いターボ効率が上昇する領域と、吸入空気量の増加に伴いターボ効率が低下する領域とに区別してもかまわない。同様にして図65、図66では排気量(排気流量)をパラメータとしてテーブル値TGKVNTO、TGKVNTCを設定したが、吸入空気量(吸入空気流量)をパラメータとしてテーブル値TGKVNTO、TGKVNTCを設定してもかまわない。このときには、小吸入空気量域(小吸入空気流量域)、大吸入空気量域(大吸入空気流量域)、中間領域(中吸入空気量域)でテーブル値を異ならせることになる。
実施形態では、アクチュエータ54が圧力アクチュエータである場合で説明したが、これに限られるものでない。
実施形態では過給機の作動目標値が目標開口割合Rvntである場合で説明したが、これに限られるものでなく、目標開口面積でもかまわない。
実施形態では目標吸入空気量tQacを演算する場合で説明したが、目標吸入空気量tQacに代えて目標過給圧を用いてもかまわない。
実施形態では、可変ノズルの開口割合に応じて過給圧が変化するターボ過給機で説明したが、これに限られるものでなく、以下のものにも適用がある。すなわち、排気タービンではガスが通過する面積を変えてやれば過給圧が変化するので、ノズルのほかスクロールやディフューザの開口割合を変えても過給圧が変化する。これらは結局、排気タービンの幾何学形状(ジオメトリー)を変え得るものであるので、可変ジオメトリックターボ過給機(Variable Geometric Turbocharger)で総称される。本発明はこうした可変ジオメトリックターボ過給機に適用がある。また、ウェストゲートバルブを備える一定容量のターボ過給機にも適用がある。可変ジオメトリックターボ過給機ではたとえば過給機の開口面積または開口面積相当値の目標値が、またウェストゲートバルブを備える一定容量のターボ過給機たとえばそのバルブ開度の目標値が過給機の作動目標値となる。
実施形態では、熱発生のパターンが単段燃焼となる、いわゆる低温予混合燃焼を行わせる場合で説明したが、予混合燃焼の後に拡散燃焼が付加される、通常のディーゼル燃焼の場合でも、本発明を適用できることはいうまでもない。