以下、本発明の実施形態を図面に基づいて説明する。
図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や実GR率Megrdからターボ過給機の作動目標値である可変ノズル53の目標開口割合Rvntを設定するようにしている。
また、この目標開口割合Rvntは圧力制御弁56への指令値に変換するのであるが、その際に、アクチュエータ54のヒステリシスを考慮しないのでは、目標開口面積に安定させることが困難であるので、これに対処するため、目標開口割合Rvntが増加する方向であるのか減少する方向であるのかを判定し、この判定結果より、作動目標値が同じであっても増加方向と減少方向とで圧力制御弁56に与える指令値を異ならせる処理を行って指令値基本値Dty hを演算する。
この場合、アクチュエータ54の温度によっても目標開口割合と圧力アクチュエータ54への指令値の関係が相違するため、排気温度を予測し、この予測排気温度Texhiとこの予測排気温度Texhiに対して熱慣性分の遅れ処理を施した値Texhdlyとの差分で上記の指令値基本値Dty hを補正する。
また、アクチュエータ54のダイナミクスを補償するための進み処理(フィードフォワード)を行う場合にも、可変ノズル53を閉じ側に動かすときだけ排気圧に抗する必要があるので、進み処理に用いる進み補正ゲイン(フィードフォワードゲイン)Gkvntと時定数相当値Tcvntを、作動目標値が同じであっても可変ノズル53を閉じ側に動かすときと開き側に動かすときとで異ならせ、可変ノズル53を閉じ側に動かすときのほうが進み補正ゲインGkvntを大きくし、かつ時定数相当値Tcvntを大きくする(なぜなら時定数相当値と逆数の関係にある時定数を小さくするため)。
一方、エンジンの暖機完了前にはアクチュエータ54の動作が渋って、実開口割合が目標開口割合Rvntに達しなかったり、動きが緩慢になって実開口割合が目標開口割合Rvntに達するのが大きく遅れることがあるので、これに対処するため目標開口割合に関係なくアクチュエータ54の動作を確認する制御を行う。この動作確認制御は、たとえばアクチュエータ54の駆動範囲の下限から上限までを往復動させることである(このとき可変ノズル53は全開位置から全閉位置までを動く)。さらに詳細には、エンジン回転速度によりアクチュエータ54の駆動範囲の下限から上限までを動かす指令値が異なるので、アクチュエータ54の駆動範囲の下限から上限までを短い周期で動かすことを指示する制御パターンDuty puとエンジン回転速度に応じた指令値Duty p neとの積から圧力制御弁56への制御指令値Dtyvntを演算する。
コントロールユニット41で実行されるこの制御の内容を、以下のフローチャートにしたがって説明する。なお、後述する図3、図4、図8〜図14は先願装置(特開平10−288071号公報参照)で、また図1、図2、図5〜図7、図15〜図64は別の先願装置(特願平11−233892号参照)ですでに提案しているところと同様である。
まず、図3は目標燃料噴射量Qsolを演算するためのもので、REF信号(クランク角の基準位置信号で、4気筒エンジンでは180度毎、6気筒エンジンでは120度毎の各信号)の入力毎に実行する。
ステップ1、2でエンジン回転速度Neとアクセル開度Clを読み込み、ステップ3では、これらNeとClに基づいて、図4を内容とするマップを検索すること等により、基本燃料噴射量Mqdrvを演算し、ステップ4ではこの基本燃料噴射量Mqdrvに対してエンジン冷却水温等による増量補正を行い、補正後の値を目標燃料噴射量Qsolとして設定する。
図5はEGR弁6の開口面積Aevを演算するためのもので、REF信号の入力毎に実行する。ステップ1では目標EGR量Tqekを演算する。このTqekの演算については図7のフローにより説明する。
図7(図5ステップ1のサブルーチン)において、ステップ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はこの遅れ分の進み処理を行うものである。
ステップ6では
(数7)
Tqek=Tqec×(Ne/KCON#)/Kqac00、
ただし、Kqac00:EGR量フィードバック補正係数、
KCON# :定数、
の式により単位変換(1シリンダ当たり→単位時間当たり)を行って、目標EGR量Tqekを求める。なお、EGR量フィードバック補正係数Kqac00の演算については後述する(図54参照)。
このようにして目標EGR量Tqekの演算を終了したら、図5のステップ2に戻り、EGRガス(EGR弁を流れるガス)の流速(このEGRガスの流速を以下、単に「EGR流速」という)Cqeを演算し、このEGR流速Cqeと目標EGR量Tqekとから
(数8)
Aev=Tqek/Cqe
の式でEGR弁開口面積Aevを演算する。なお、EGR流速Cqeの演算については後述する(図63参照)。
このようにして得られたEGR弁開口面積Aevは、図示しないフローにおいて図6を内容とするテーブルを検索する等によりEGR弁6のリフト量に変換され、このEGR弁リフト量になるように、圧力制御弁5へのデューティ制御信号が作られ、このデューティ制御信号が圧力制御弁5に出力される。
次に、図15、図16はターボ過給機駆動用の圧力制御弁56に与える制御指令デューティ値Dtyvntを演算するためのもので、一定時間毎(たとえば10ms毎)に実行する。
図15を第1実施形態、図16を第2実施形態とすると、2つの実施形態では可変ノズル53の目標開口割合Rvntを演算するのに用いるパラメータに違いがある(図15の第1実施形態では実EGR量Qecに基づいて、また図16の第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では
(数9)
Kin=Kinb×1/(1+Megrdn-1/100)
の式により体積効率相当値Kinを演算する。これはEGRによって体積効率が減少するので、その分の補正を行うようにしたものである。
このようにして求めたKinに対し、ステップ4において吸気系容積とシリンダ容積の比相当の定数であるKVOL(図8のステップ4参照)を乗じた値をコレクタ容量分の時定数相当値Kkinとして演算する。
このようにしてKkinの演算を終了したら図17のステップ3に戻り、このKkinと目標EGR率Megrを用い、
(数10)
Megrd=Megr×Kkin×Ne×KE2#
+Megrdn-1×(1−Kkin×Ne×KE2#)、
ただし、Kkin :Kin×KVOL#、
KE2# :定数、
Megrdn-1:前回のMegrd、
の式で遅れ処理と単位変換(1シリンダ当たり→単位時間当たり)を同時に行って吸気弁位置におけるEGR率Megrdを演算する。数10式の右辺の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で
(数11)
Qec0=Qacn×Megr
の式によりコレクタ入口部3a位置における1シリンダ当たりのEGR量Qec0を演算し、このQec0とKkinを用いステップ3において、
(数12)
Qec=Qec0×Kkin×Ne×KE#
+Qecn-1×(1−Kkin×Ne×KE#)、
ただし、Kkin:Kin×KVOL、
KE# :定数、
Qecn-1:前回のQec、
の式により、上記の数10式と同様に遅れ処理と単位変換(1シリンダ当たり→単位時間当たり)を同時に行ってシリンダ吸入EGR量Qecを演算する。数12式の右辺のNe×KE#が単位変換のための値である。このQecは目標EGR量Tqekに対して一次遅れで応答するため、以下このQecを「実EGR量」という。また、目標吸入空気量tQacに対して一次遅れで応答する上記のQacを、以下「実吸入空気量」という。
図25(図15のステップ4のサブルーチン)、図27(図16のステップ3のサブルーチン)は可変ノズル53の目標開口割合Rvntを演算するためのものである(図25が第1実施形態、図27が第2実施形態)。
ここで、可変ノズル53の開口割合とは、可変ノズル53の全開時のノズル面積に対する現在のノズル面積の比のことである。したがって、可変ノズル53の全開時に開口割合は100%、全閉時に開口割合は0%となる。開口割合を採用する理由は汎用性を持たせる(ターボ過給機の容量と関係ない値とする)ためである。もちろん、可変ノズルの開口面積を採用してもかまわわない。
なお、実施形態のターボ過給機は、全開時に過給圧が最も小さく、全閉時に過給圧が最も高くなるタイプのものであるため、開口割合が小さいほど過給圧が高くなる。
まず、第1実施形態の図25のほうから説明すると、ステップ1で目標吸入空気量tQac、実EGR量Qec、エンジン回転速度Ne、目標燃料噴射量Qsolを読み込む。
ステップ2、3では
(数13)
tQas0=(tQac+Qsol×QFGAN#)×Ne/KCON#
Qes0=(Qec+Qsol×QFGAN#)×Ne/KCON#、
ただし、QFGAN#:ゲイン、
KCON# :定数、
の2つの式により、目標開口割合を設定するための吸入空気量相当値tQas0(以下、この吸入空気量相当値を「設定吸入空気量相当値」という)と同じく目標開口割合を設定するためのEGR量相当値Qes0(以下、このEGR量相当値を「設定EGR量相当値」という)を演算する。数13式において、tQac、QecにQsol×QFGAN#を加算しているのは、設定吸入空気量相当値、設定EGR量相当値に対して負荷補正を行えるようにし、かつその感度をゲインQFGAN#で調整するようにしたものである。また、Ne/KCON#は単位時間当たりの吸入空気量、EGR量に変換するための値である。
このようにして求めた設定吸入空気量相当値tQas0と設定EGR量相当値tQes0からステップ4ではたとえば図26を内容とするマップを検索することにより可変ノズル53の目標開口割合Rvntを設定する。
一方、第2実施形態の図27のほうでは、ステップ1で目標吸入空気量tQac、実EGR率Megrd、エンジン回転速度Ne、目標燃料噴射量Qsolを読み込み、ステップ2において、上記数13式のうち上段の式により設定吸入空気量相当値tQas0を演算し、この設定吸入空気量相当値tQas0と実EGR率Megrdからステップ3でたとえば図28を内容とするマップを検索することにより可変ノズル53の目標開口割合Rvntを設定する。
図26、図28に示した特性は燃費重視で設定したものである。ただし、後述する排気重視の設定例との違いは具体的な数値にしかないので、両者に共通する特性を先に説明し、その後に両者の違いについて説明する。なお、図28の特性は、縦軸が図26と相違するものの(図26において原点からの傾斜がEGR率を示す)、基本的に図26と変わるものでないため、図26のほうで説明する。
図26に示すように、設定吸入空気量相当値tQas0の大きな右側の領域において設定EGR量相当値Qes0が増えるほど目標開口割合を小さくしている。これは次の理由からである。EGR量が多くなると、そのぶん新気が減り、これによって空燃比がリッチ側に傾くとスモークが発生する。そこで、EGR量が多くなるほど、目標開口割合を小さくして過給圧を高める必要があるからである。
これに対して、tQas0の小さな左側の領域では過給効果があまり得られない。この領域でtQas0が小さくなるほど目標開口割合を小さくしている。これは次の理由からである。この領域でも目標開口割合を大きくすると、排気圧が立ち上がりにくいのでこれを避けたいこと、また全開加速のためにはその初期において開口割合が小さいほうがよいことのためである。このように、異なる2つの要求から図26の特性が基本的に定まっている。このため、目標吸入空気量の変化が小さい場合と大きい場合とでは、目標開口割合の変化が異なる。
さて、図26で代表させた目標開口割合の傾向は、燃費重視と排気重視に共通のもので、両者の違いは具体的な数値にある。同図において「小」とある位置の数値は、ターボ過給機が効率よく働く最小の値であるため、燃費重視の設定例、排気重視の設定例とも同じで、たとえば20程度である。一方、「大」とある位置の数値が両者で異なり、燃費重視の設定例の場合に60程度、排気重視の設定例になると30程度になる。
なお、目標開口割合の設定は上記のものに限られるものでない。第1実施形態では設定吸入空気量相当値tQas0と設定EGR量相当値Qes0とから目標開口割合を設定しているが、これに代えて、目標吸入空気量tQacと実EGR量Qecから設定してもかまわない。さらに、これに代えて目標吸入空気量tQacと目標EGR量(Qec0)から設定してもかまわない。同様にして、第2実施形態では設定吸入空気量相当値tQas0と実EGR率Megrdから目標開口割合を設定しているが、これに代えて、目標吸入空気量tQacと実EGR率Megrdから設定してもかまわない。さらに、これに代えて目標吸入空気量tQacと目標EGR率Megrから設定してもかまわない。
図29(図15のステップ5、図16のステップ4のサブルーチン)は、上記のようにして求めた目標開口割合Rvntに対して、可変ノズル駆動用のアクチュエータ54(圧力制御弁56とダイヤフラムアクチュエータ55からなる)のダイナミクスを補償するため、進み処理を行うものである。これは、可変ノズル53のアクチュエータが指令値に応じた圧力の供給を受けて駆動されるアクチュエータである場合には、ステップモータである場合と異なり、無視できないほどの応答遅れがあるためである。
ステップ1で目標開口割合Rvntを読み込み、このRvntと前回の予想開口割合であるCavntn-1をステップ2において比較する。ここで、予想開口割合Cavntとは、すぐ後で述べるように、目標開口割合Rvntの加重平均値である(ステップ10参照)。
Rvnt>Cavntn-1であれば(可変ノズル53を開く側に動かしているとき)、ステップ3、4に進み、所定値GKVNTO#を進み補正ゲインGkvnt、所定値TCVNTO#を時定数相当値Tcvntとして設定し、これに対して、Rvnt<Cavntn-1であるとき(可変ノズル53を閉じる側に動かしているとき)は、ステップ6、7に進み、所定値GKVNTC#を進み補正ゲインGkvnt、所定値TCVNTC#を時定数相当値Tcvntとして設定する。また、RvntとCavntn-1が同一であればステップ8、9に進み、前回の進み補正ゲイン、時定数相当値を維持する。
可変ノズル53を開き側に動かしているときと閉じ側に動かしているときとで進み補正ゲインGkvnt、時定数相当値Tcvntを相違させ、GKVNTO#<GKVNTC#、TCVNTO#<TCVNTC#としている。これは、可変ノズル53を閉じ側に動かすときは、排気圧に抗する必要があるので、そのぶんゲインGkvntを大きくし、かつ時定数を小さくする(時定数と逆数の関係にある時定数相当値Tcvntは大きくする)必要があるからである。
ステップ10ではこのようにして求めた時定数相当値Tcvntと目標開口割合Rvntを用いて、
(数14)
Cavnt=Rvnt×Tcvnt+Cavntn-1×(1−Tcvnt)、
ただし、Cavntn-1:前回のCavnt、
の式により予想開口割合Cavntを演算し、この値と目標開口割合Rvntからステップ11において、
(数15)
Avnt f=Gkvnt×Rvnt−(Gkvnt−1)×Cavntn-1、
ただし、Cavntn-1:前回のCavnt、
の式により進み補正を行い、目標開口割合のフィードフォワード量Avnt fを演算する。ステップ10、11の進み処理そのものは、図7のステップ4、5に示した進み処理と基本的に同様である。
図30(図15のステップ6、図16のステップ5の各サブルーチン)は目標開口割合のフィードバック量Avnt fbを演算するためのものである。ステップ1で目標吸入空気量tQac、目標EGR率Megr、エンジン回転速度Ne、目標燃料噴射量Qsol、実吸入空気量Qacを読み込み、ステップ2では目標EGR率Megrと所定値MEGRLV#を比較する。
Megr≧MEGRLV#であるとき(EGRの作動域であるとき)は、ステップ4において
(数16)
dQac=tQac/Qac−1
の式により目標吸入空気量からの誤差割合dQacを演算する。dQacの値は0を中心とし、実際値としてのQacが目標値としてのtQacより小さいとき正の値に、この逆にQacがtQacより大きいとき負の値になる。
一方、Megr<MEGRLV#であるとき(EGRの非作動域であるとき)は、ステップ3に進み、誤差割合dQac=0とする(すなわち、フィードバックを禁止する)。
ステップ5ではNeとQsolから所定のマップを検索することによりフィードバックゲインの補正係数Khを演算し、この値をステップ6において各定数(比例定数KPB#、積分定数KIB#、微分定数KDB#)に掛けることによってフィードバックゲインKp、Ki、Kdを算出し、これらの値を用いて目標開口割合のフィードバック量Avnt fbをステップ7において演算する。このフィードバック量の演算方法は周知のPID処理である。
上記の補正係数Khは、運転条件(Ne、Qsol)により適正なフィードバックゲインが変化するのに対応して導入したもので、負荷および回転速度が大きくなるほど大きくなる。
図31(図15のステップ7、図16のステップ6の各サブルーチン)は、目標開口割合に対して線型化処理を行うためのものである。ステップ1で目標開口割合のフィードフォワード量Avnt fとフィードバック量Avnt fbを読み込み、この両者をステップ2において加算した値を指令開口割合Avntとして算出する。ステップ3ではこの指令開口割合Avntからたとえば図32を内容とするテーブル(線型化テーブル)を検索することにより指令開口割合線型化処理値Ratdtyを設定する。
この線型化処理は、図32のように開口割合(あるいは開口面積)に対して、ターボ過給機を駆動するアクチュエータへの指令信号が非線型な特性を有する場合に必要となるものである。たとえば、図33に示したように空気量(過給圧)の変化幅が同じでも、空気量の小さな領域と空気量の大きな領域とでは、開口面積の変化幅がdA0、dA1と大きく異なる(ただしEGRなしのとき)。さらにEGRの有無(図では「w/o EGR」がEGRなし、「w/ EGR」がEGRありを表す)によっても開口面積の変化幅が変わる。したがって、運転条件に関係なく同じフィードバックゲインとしたのでは目標の吸入空気量(過給圧)が得られない。そこで、フィードバックゲインの適合を容易にするため、上記のように運転条件に応じたフィードバックゲインの補正係数Khを導入しているのである。
図34(図15のステップ8、図16のステップ7の各サブルーチン)は圧力制御弁56に与えるONデューティ値(以下、単に「デューティ値」という)である制御指令値Dtyvntを設定するためのものである。まず、ステップ1でエンジン回転速度Ne、目標燃料噴射量Qsol、指令開口割合線型化処理値Ratdty、時定数相当値Tcvnt、水温Twを読み込む。
ステップ2ではデューティ選択信号フラグの設定を行う。このフラグ設定については図35のフローより説明する。図35において、ステップ1で指令開口割合Avntと時定数相当値Tcvntを読み込み、これらからステップ2において、
(数17)
Adlyvnt=Avnt×Tcvnt
+Adlyvntn-1×(1−Tcvnt)、
ただし、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の設定を終了したら、図34のステップ3に戻り、デューティ値の温度補正量Dty tを演算する。この演算については図36のフローより説明する。
図36において、ステップ1でエンジン回転速度Ne、目標燃料噴射量Qsol、水温Twを読み込み、このうちNeとQsolからステップ2においてたとえば図37を内容とするマップを検索すること等により基本排気温度Texhbを演算する。ここで、Texhbは暖機完了後の排気温度である。これに対して暖機途中であれば暖機完了後の排気温度とは異なってくるため、ステップ3で水温Twよりたとえば図38を内容とするテーブルを検索すること等により排気温度の水温補正係数Ktexh twを演算し、この値をステップ4において上記の基本排気温度に乗算した値を排気温度Texhiとして演算する。
ステップ5ではこの排気温度Texhiから
(数18)
Texhdly=Texhi×KEXH#
+Texhdlyn-1×(1−KEXH#)、
ただし、KEXH# :定数、
Texhdlyn-1:前回のTexhdly、
の式により遅れ処理を行った値を実排気温度Texhdlyとして演算する。これは、熱慣性分の遅れ処理を行うものである。
ステップ6では基本排気温度Texhbとこの実排気温度Texhdlyとの差dTexhを演算し、この差dTexhからステップ7においてたとえば図39を内容とするテーブルを検索すること等によりデューティ値の温度補正量Dty tを演算する。ステップ6、7は、後述するヒステリシス対応に用いるマップ(Duty h p、Duty h n、Duty l p、Duty l nのマップ)を暖機完了後に対して設定することを念頭に置き、その状態からの差分(つまりdTexh)に応じた補正量を持たせるものである。なお、温度補正量Dty tによる補正は、雰囲気温度による温度特性を有するターボ過給機駆動用アクチュエータを使用する場合に必要となる処理である(図40参照)。
このようにして温度補正量Dty tの演算が終了したら、図34のステップ4に戻る。
図34のステップ4〜9はヒステリシス処理を行うものである。この処理を図45を用いて先に説明しておくと、これは、指令開口割合線型化処理値Ratdtyが増加傾向にあるときに上側の特性(Duty l pを可変ノズル全開時の指令信号、Duty h pを可変ノズル全閉時の指令信号とする直線特性)を用いるのに対して、指令開口割合線型化処理値Ratdtyが減少傾向にあるときには、もう一つの下側の特性(Duty l nを可変ノズル全開時の指令信号、Duty h nを可変ノズル全閉時の指令信号とする直線特性)を用いるものである。なお、Ratdtyが1に近い領域で2つの特性がひっくり返っている領域があるが、この領域が実際に使われることはない。
さらに説明すると、アクチュエータ54は、運転条件(エンジン回転速度、エンジン負荷)とアクチュエータ温度により、デューティ値の有効作動範囲(図45に示す特性の縦方向幅や図40に示す特性の縦方向の位置のこと)が変化する。そこで、目標開口割合としてのRatdtyと実開口割合が一致するように、目標開口割合の増減の向きを考慮し、さらにアクチュエータ温度の変化によるデューティ値の有効作動範囲の変化にも対応したものである。
図34に戻り、ステップ4でフラグfvnt1をみる。fvnt=1のとき(すなわち開口割合が増加傾向にあるかまたは定常状態にあるとき)は、ステップ5、6に進み、たとえば図41を内容とするマップ(Duty h pマップ)と図42を内容とするマップ(Duty l pマップ)を検索することにより可変ノズル全閉時のデューティ値Duty hと可変ノズル全開時のデューティ値Duty lをそれぞれ設定する。一方、fvnt=0のとき(すなわち開口割合が減少傾向にあるとき)は、ステップ7、8に進み、たとえば図43を内容とするマップ(Duty h nマップ)と図44を内容とするマップ(Duty l nマップ)を検索することにより可変ノズル全閉時のデューティ値Duty hと可変ノズル全開時のデューティ値Duty lをそれぞれ設定する。
このようにして設定した可変ノズル全閉時のデューティ値Duty h、可変ノズル全開時のデューティ値Duty lと上記の指令開口割合線型化処理値Ratdtyを用いステップ9において、
(数19)
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では動作確認制御処理を行う。この処理については図46のフローより説明する。図46において、ステップ1で通常指令デューティ値Dtyv、エンジン回転速度Ne、目標燃料噴射量Qsol、水温Twを読み込む。
動作確認制御に入るための条件判定は、ステップ2、3、4、5の内容を一つずつチェックすることにより行い、各項目のすべてが満たされたときにさらに制御実行までの時間の計測に入る。すなわち、
ステップ2:Qsolが所定値QSOLDIZ#未満(つまり燃料カット時)である、
ステップ3:Neが所定値NEDIZ#未満(つまり中回転速度域)である、
ステップ4:Twが所定値TWDIZ#未満(つまり暖機完了前)である、
ステップ5:動作確認制御済みフラグfdiz=0である(まだ動作確認制御を行って いない)、
とき、ステップ6で動作確認制御カウンタCtrdizをインクリメントする。
なお、動作確認制御に入るための条件はこれに限られるものでなく、アクチュエータ54の動作が不安定な領域であるエンジンの始動時またはエンジン排気流量が少ない領域(たとえば減速時、低負荷時または低回転速度時)とすることができる。
ステップ7、8ではこの動作確認制御カウンタと所定値CTRDIZH#、CTRDIZL#を比較する。ここで、所定値CTRDIZL#、CTRDIZH#は動作確認制御カウンタの下限リミット、上限リミットをそれぞれ定めるもので、CTRDIZL#はたとえば2秒程度、CTRDIZH#はたとえば7秒程度の値である。したがって、動作確認制御カウンタが下限リミットであるCTRDIZL#と一致したタイミングより、動作確認制御カウンタが上限リミットであるCTRDIZH#未満であるあいだ、ステップ9に進み、動作確認制御指令デューティ値を設定する。つまり、CTRDIZH#−CTRDIZL#が動作確認制御実行時間となる。
動作確認制御指令デューティ値の設定については図47のフローにより説明する。図47においてステップ1で動作確認制御カウンタCtrdiz、エンジン回転速度Neを読み込み、ステップ2においてCtrdiz−CTRDIZL#(≧0)よりたとえば図48を内容とするテーブルを検索することにより制御パターンDuty puを設定する。これは、短い周期で可変ノズル53を全閉位置と全開位置とに動かすものである。
ステップ3では、エンジン回転速度Neからたとえば図49を内容とするテーブルを検索することによりデューティ値Duty p neを設定し、このDuty p neにステップ4において上記の制御パターンDuty puを乗じた値を制御指令デューティ値Dtyvntとして演算する。図49のように、制御パターンDuty puに乗じるデューティ値Duty p neをエンジン回転速度Neに応じた値としている。これは、エンジン回転速度により可変ノズル53の開閉動作を確認するデューティの指令値が異なることを想定したものである。たとえば、可変ノズル53は排気圧に抗して閉じる必要があるが、その排気圧は高回転速度になるほど高くなるので、これに対応してデューティの指令値を大きくしている。また、さらに高回転速度側では当制御による悪影響を受けないようにその値を下げるようにしている。
図46に戻り、動作確認制御カウンタが下限リミットとしての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の処理を実行する。
以上で、図15、図16の説明を終了する。
次に、図50はEGR量の演算とEGR流速の演算に用いる2つのフィードバック補正係数Kqac00、Kqac0とEGR流速学習補正係数Kqacを演算するためのもので、REF信号の入力毎に実行する。
まず、ステップ1で目標吸入空気量tQac、実吸入空気量Qac、エンジン回転速度Ne、目標燃料噴射量Qsolを読み込む。ステップ2では、目標吸入空気量tQacから
(数20)
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ではフィードバック関連の各種フラグを読み込む。これらの設定については図51、図52、図53のフローより説明する。
図51、図52、図53は図50と独立に一定時間毎(たとえば10ms毎)に実行する。
図51はフィードバック許可フラグ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)。
図52は学習値反映許可フラグ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)。
図53は学習許可フラグ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)。
図50に戻り、このようにして設定される3つのフラグのうち、ステップ4でフィードバック許可フラグfefbをみる。fefb=1のときはステップ5、6でEGR量のフィードバック補正係数Kqac00とEGR流速のフィードバック補正係数Kqac0を演算する。一方、fefb=0のとき(フィードバックを禁止するとき)はステップ4よりステップ7、8に進み、Kqac00=1、Kqac0=1とする。
ここで、EGR量フィードバック補正係数Kqac00の演算については図54のフローにより、またEGR流速フィードバック補正係数Kqac0の演算については図57のフローにより説明する。
まず図54(図50のステップ5のサブルーチン)において、ステップ1で目標吸入空気量遅れ処理値tQacd、実吸入空気量Qac、エンジン回転速度Ne、目標燃料噴射量Qsol、水温Twを読み込む。
ステップ2ではNeとQsolからたとえば図55を内容とするマップを検索すること等によりEGR流量の補正ゲインGkfbを、またステップ3では補正ゲインの水温補正係数KgfbtwをTwからたとえば図56を内容とするテーブルを検索すること等によりそれぞれ演算し、これらを用いステップ4において
(数21)
Kqac00=(tQacd/Qac−1)×Gkfb×Kgfbtw+1
の式によりEGR量フィードバック補正係数Kqac00を演算する。
この式の右辺第1項の(tQacd/Qac−1)は目標吸入空気量遅れ処理値からの誤差割合であり、これに1を加えることで、Kqac00は1を中心とする値になる。数21式は、目標吸入空気量遅れ処理値からの誤差割合に比例させてEGR量フィードバック補正係数Kqac00を演算するものである。
次に、図57(図50のステップ6のサブルーチン)において、ステップ1で目標吸入空気量遅れ処理値tQacd、実吸入空気量Qac、エンジン回転速度Ne、目標燃料噴射量Qsol、水温Twを読み込む。
ステップ2ではNeとQsolからたとえば図58を内容とするマップを検索すること等によりEGR流速の補正ゲインGkfbiを、またステップ3では補正ゲインの水温補正係数KgfbitwをTwからたとえば図59を内容とするテーブルを検索すること等によりそれぞれ演算し、これらを用いステップ4において
(数22)
Rqac0=(tQacd/Qac−1)×Gkfbi×kGfbitw
+Rqac0n-1、
ただし、Rqac0n-1:前回のRqac0、
の式により誤差割合Rqac0を更新し、この誤差割合Rqac0に対してステップ5において1を加えた値をEGR流速フィードバック補正係数Kqac0として算出する。
これは、目標吸入空気量遅れ処理値からの誤差割合(tQacd/Qac−1)の積算値(積分値)に比例させてEGR流速フィードバック補正係数Kqac0を演算する(積分制御)ものである。
図55、図58のように、補正ゲインを運転条件(Ne、Qsol)に応じた値としたのは次の理由による。同じゲインでも運転条件によりハンチングを生じたり生じなかったりするので、ハンチングを生じる領域では補正ゲインを小さくするためである。図56、図59のように低水温のとき(暖機完了前)に値を小さくしているのは、エンジン回転速度の不安定な低水温域でのエンジンの安定化を図るためである。
このようにしてEGR量フィードバック補正係数Kqac00とEGR流速フィードバック補正係数Kqac0の演算を終了したら、図50に戻り、ステップ9で学習値反映許可フラグfelrn2をみる。学習反映許可フラグfelrn2=1のとき(学習値の反映を許可するとき)は、ステップ10に進み、NeとQsolよりたとえば図60の学習マップを検索することにより誤差割合学習値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の更新を行う。この学習値の更新については図61のフローにより説明する。
図61(図50のステップ16のサブルーチン)において、ステップ1で誤差割合Rqacn、エンジン回転速度Ne、目標燃料噴射量Qsolを読み込む。NeとQsolからステップ2で学習速度Tclrnをたとえば図62を内容とするマップを検索すること等により演算する。ステップ3ではNe、Qsolより上記図60の学習マップから誤差割合学習値Rqacを読み出す。ステップ4で
(数23)
Rqacn=Rqacn×Tclrn+Rqacn-1×(1−Tclrn)、
ただし、Rqacn :更新後の誤差割合学習値、
Rqacn-1:更新前の誤差割合学習値(=学習値読み出し値)、
の式により加重平均処理を行い、更新後の学習値をステップ5で図60の学習マップにストアする(更新前の値に対して更新後の値を上書きする)。
図63(図5のステップ2のサブルーチン)はEGR流速Cqeを演算するためのものである。
ステップ1、2で実EGR量Qec、実EGR率Megrd、実吸入空気量Qac、EGR流速フィードバック補正係数Kqac0、EGR流速学習補正係数Kqacを読み込み、ステップ3において
(数24)
Qec h=Qec×Kqac×Kqac0
の式により、Kqac0とKqacで実EGR量Qecを補正した値を補正実EGR量Qec hとして算出し、この補正実EGR量Qec hと実EGR率Megrdよりステップ8において、たとえば図64を内容とするマップを検索することにより、EGR流速Cqeを演算する。なお、説明しなかったステップ4〜7は後述する。
図64のEGR流速の特性は、非線型性が強く運転条件に応じてEGRのフィードバックの感度が相違することを示しているため、運転条件に対するフィードバック量の差が小さくなるように、EGR流速フィードバック補正係数Kqac0は、流速マップの検索に用いる実EGR量Qecへのフィードバックとしている。
ただし、図64において特性の傾きが急になる右端に近い部分は、マップの適合誤差が生じ勝ちな領域であるため、適合誤差があると、その適合誤差の影響を受けてEGR弁開口面積Aevが変化してしまう。つまり、EGR弁開口面積Aevを演算する式であるAev=Tqek/CqeにおいてCqeには適合誤差が生じるのであるから、これに対処するには、目標EGR量Tqekに対しても流速誤差分の補正を行う必要がある。そのため新たに導入したのが上記のEGR量フィードバック補正係数Kqac00で、このKqac00により図7のステップ6で目標EGR量Tqekを補正している。
この場合、Kqac00を演算する式である上記数20式は、目標吸入空気量遅れ処理値からの誤差割合に比例させてKqac00を演算するので、この比例制御により図64のEGR流速マップの適合誤差に対して即座に補正できることになる。たとえば、簡単のため数20式において、補正ゲインGkfb=1かつ暖機完了後で考えると、Kqac00=(tQacd/Qac−1)+1となる。この場合に、目標値としてのtQacdより実吸入空気量Qacが小さいと、Kqac00が1より大きな値となり、これによってTqecが即座に減量される。目標EGR量が即座に減量されると、相対的に新気量(吸入空気量)が増え、これによって実吸入空気量Qacが目標値としてのtQacdへと収束する。
説明しなかった図63のステップ4〜7はEGRの作動開始時の初期値を設定する部分である。具体的には、ステップ4では補正実EGR量Qec hと0を比較する。Qec h=0(つまりEGRの非作動時)であるときは、ステップ5に進み、
(数25)
Qec h=Qac×MEGRL#、
ただし、MEGRL#:定数、
の式により、補正実EGR量Qec hを設定する。同様にして、ステップ6では実EGR率Megrdと0を比較し、Megrd=0のときはステップ7で
(数26)
Megrd=MEGRL#
の式により実EGR率Megrdを設定する。
EGR弁6の全閉時にEGR弁6を通過するEGR流速は当然のことながらゼロであるが、数25式、数26式はEGRの作動開始時のことを考えて、流速の演算に用いるパラメータの初期値を設定する。MEGRL#の値は前述したようにたとえば0.5である。さらに述べると、運転条件によってEGRの作動開始時のEGR弁前後の差圧(したがってEGR流速も)が異なるため、これに対処するものである。この場合、EGRの作動開始時のEGR弁前後の差圧は実吸入空気量Qacに関係する。そこで、数25式によりQacに比例してQec hの初期値を与えることで、EGRの作動開始時のEGR流速の演算精度が向上する。
ここで、2つの実施形態の作用を説明する。
本実施形態によれば、指令値に応じた圧力の供給を受けるアクチュエータ54により可変ノズル53を駆動する場合に、目標開口割合(過給機の作動目標値)が増加する方向であるのか減少する方向であるのかを判定し、この判定結果より、目標開口割合が同じであっても増加方向と減少方向とで圧力制御弁56に与える指令値を異ならせるようにしたので、可変ノズル53に作用する排気反力等に起因して、目標開口割合が小さくなる方向にアクチュエータ54を動かすときと、この逆に目標開口割合が大きくなる方向にアクチュエータ54を動かすときとで同じ目標開口割合を得るための指令値が異なってしまう、というヒステリシスがアクチュエータ54にあっても、どちらの方向に開口割合が変化するかに関係なく目標開口割合を得ることができる。
開口割合と指令値とがヒステリシス特性と非線形特性を有するアクチュエータ54の場合、目標開口割合Rvnt(あるいは指令開口割合Avnt)を指令デューティ値Dty h(指令値)に変換するには、目標開口割合Rvntに対応させて指令デューティ値を記憶しておく制御マップを目標開口割合の変化方向毎に記憶しておく必要あり、記憶しておくべきデータ量が多くなる。これに対して本実施形態では、所定の線形化関数(図32参照)を用いて目標開口割合Rvntを指令デューティ値と線形関係にある線形化処理値Ratdtyに変換し、この線形化処理値Ratdtyを指令デューティ値に変換する際に、目標開口割合の変化方向が増加方向であるか減少方向であるかを判定する判定結果に応じて、線形化処理値Ratdtyが0であるときの指令値Duty lと線形化処理値Ratdtyが1であるときの指令値Duty hとを目標開口割合Rvntの変化方向毎に記憶する手段から読み出した2つの指令値Dhty lとDuty hの差を傾きとし、かつ、線形化処理値Ratdtyが0であるときの指令値Duty lを初期値とする一次関数を生成し、この生成された一次関数を用いて線形化処理値Ratdtyを指令デューティ値Dty h(アクチュエータヘの指令値)に変換するようにしたので、目標開口割合Rvntを線形化処理値Ratdtyに変換する線形化関数(制御マップ)と、2つの一次関数を生成するための4つのデータ(Duty l p、Duty l n、Duty h p、Duty h n)とを記憶しておくだけで良くなり、これによって記憶しておくべきデータ量を少なくすることができる。
可変ノズル53(排気流れ調整手段)の制御にフィードフォワード制御やフィードバック制御を加える場合、目標開口割合Rvnt(作動基本目標値)を指令値に変換した後、この指令値をフィードフォワード量やフィードバック量で補正する方法も考えられるが、このような方法ではフィードフォワード量やフィードバック量にアクチュエータのヒステリシス特性が反映されておらず、安定した制御を行なうことが困難となる。また、フィードフォワード量やフィードバック量を算出する際にアクチュエータのヒステリシス特性を考慮することも可能であるが、この場合はフィードフォワード手段やフィードバック手段がそれぞれヒステリシス処理手段を備える必要が生じ、制御系が複雑になり好ましくない。これに対して本実施形態では、指令開口割合Avnt(作動目標値)を算出する際にフィードフォワード量Avnt fやフィードバック量Avnt fbを反映させ、この指令開口割合Avntを指令デューティ値Dty h(指令値)に変換する際にヒステリシス処理を施すようにしたので、効率の良い制御系を得ることができる。
また、アクチュエータ54の温度によってアクチュエータ54の作動量(=可変ノズル53の作動状態)と指令値との関係が変化する場合に、本実施形態ではアクチュエータ54の温度に基いて指令デューティ値Dty h(アクチュエータヘの指令値)を補正するようにしたので、アクチュエータ54の温度に関係なく常に可変ノズル53を所望の状態に調整することができる。
また、指令デューティ値Dty hを補正するに際して、エンジン回転速度とエンジン負荷に基いてエンジン暖機完了後の排気温度Texhb(エンジン暖機完了後のアクチュエータ温度)を算出するとともに、この排気温度Texhbに対し所定の遅れ処理を施して現在の排気温度Texhdly(現在のアクチュエータ温度)を算出し、これら2つの温度Texhb、Texhdlyの差に基くようにしたので、目標開口割合Rvnt(作動目標値)を指令デューティ値(指令値)に変換する関数をエンジン暖機完了後の状態で適合している場合に、エンジン暖機完了後のアクチュエータの温度と現在のアクチュエータの温度との差で指令デューティ値を補正するといった簡単な処理でアクチュエータ54の温度に関係なく常に可変ノズル53を所望の状態に調整することができる。
過給圧(空気量)が可変ノズル53により制御される場合、図33で前述したように、開口面積が大きな領域と開口面積が小さな領域とで、開口面積の変化に対する過給圧変化の変化幅が大きく異なるため、一定のフィードバックゲインを用いて開口面積のフィードバック量を求めたのでは開口面積が大きな領域と開口面積が小さな領域とで制御の応答性と安定性が異なってしまうのであるが、本実施形態では、可変ノズル53の開口面積を決定する主要なパラメータであるエンジン回転速度とエンジン負荷に基いてフィードバックゲインを設定するようにしたので、常に同等な制御の応答性と安定性を得ることができる。
また、フィードバックゲインを設定するに際して、エンジン回転速度とエンジン負荷に基いてフィードバックゲインの補正係数Khを算出し、フィードバックゲインの基本値(KPB#、KIB#、KDB#)を前記補正係数Khで補正した値をフィードバックゲインとして設定するようにしたので、フィードバックゲインそのものをエンジン回転速度とエンジン負荷に対応させて設定するよりも、適合が容易となる。
一方、本実施形態によれば、目標開口面積Rvnt(作動目標値)に関係なくアクチュエータ54の動作を確認する制御、たとえばアクチュエータ54の動作範囲の下限から上限までを作動させることで、アクチュエータ54の作動範囲の全部で動作が滑らかとなり、アクチュエータ54の応答性が改善されることから、アクチュエータ54の動きが渋りなどで緩慢になり、目標開口割合Rvntに駆動できなくなるのを防止でき、これによって吸入空気量や過給圧の制御精度が向上する。
また、エンジン回転速度によりアクチュエータ54の動作範囲の下限から上限までを動かす指令値が異なるが、本実施形態によれば、アクチュエータ54を動作範囲の下限から上限まで短い周期で繰り返し作動させる制御パターンDuty pu(第3指令値)とエンジン回転速度に応じたデューティ値Duty p ne(第4指令値)との積を制御指令デューティ値Dtyvnt(第2指令値)として生成するようにしたので、エンジン回転速度によりアクチュエータの動作範囲の下限から上限までを動かす指令値が異なる場合にも、エンジン回転速度に応じた指令値を予め設定しておくことで対応できる。
アクチュエータ54の渋り対策とはいえ、全ての運転域でアクチュエータ54の動作確認制御を行ったのでは、吸入空気量に影響を与えることがあるが、本実施形態によれば、アクチュエータ54の動作確認制御を行う運転域をエンジンの始動時、エンジンの暖機完了前またはエンジン排気流量が少ない運転領域だけに限ったので、吸入空気量に影響することがない。
実施施形態では、目標開口割合Rvnt(排気流れ調整手段の作動基本目標値)に基いてアクチュエータ54のダイナミクスを補償するためのフィードフォワード量Avnt fを算出するとともに、目標吸入空気量tQac(過給圧パラメータ目標値)と実吸入空気量Qac(過給圧パラメータ実際値)との比に基いてフィードバック量Avnt fbを算出し、これら2つの値Avnt f、Avnt fbの和を指令開口割合Avnt(作動目標値)として設定する場合で説明したが、フィードフォワード量Avnt f、フィードバック量Avnt fbのいずれか一つだけを算出させるようにしてもかまわない。また、フィードバック量Avnt fbは目標吸入空気量tQacと実吸入空気量Qacとの差に基いて算出することもできる。
実施形態では2つの排気温度Texhb、Texhdlyの差に基いて指令デューティ値Dty hを補正する場合で説明したが、2つの排気温度Texhb、Texhdlyの比に基いて指令デューティ値Dty hを補正するようにすることもできる。
実施形態では、可変ノズル全閉時の指令値Duty hと可変ノズル全開時の指令値Duty lをエンジン回転速度とエンジン負荷に対して有し、この2つの指令値の差分(Duty h−Duty l)に前記目標開口割合Rvntを乗じた値に前記可変ノズル全開時の指令値Duty lを加えた値を指令デューティ値基本値Dtyvとして演算する場合で説明したが、目標開口割合Rvntに代えて目標開口面積を用いてもかまわないことはいうまでもない。
実施形態では排気温度を予測し、この予測排気温度Texhiとこの予測排気温度に対して熱慣性分の遅れ処理を施した値Texhdlyとの差分で指令デューティ値基本値Dty hを補正(図34のステップ9参照)する場合で説明したが、排気温度を予測し、その予測排気温度Texhiにより指令デューティ値基本値Dty hを補正するようにしてもかまわない。
実施形態では目標吸入空気量tQacを演算し、この値とEGR装置の制御実際値である実EGR量Qecや実EGR率Megrdとに基づいて過給機の作動目標値である目標開口割合Rvntを設定する場合で説明したが、目標吸入空気量tQacに代えて目標過給圧を用いてもかまわない。
実施形態では、可変ノズルの開口割合に応じて過給圧が変化するターボ過給機で説明したが、これに限られるものでなく、以下のものにも適用がある。
〈1〉流量に応じて過給圧が変化する別のタイプのターボ過給機、
〈2〉ウェストゲートバルブを備える一定容量のターボ過給機、
〈3〉スーパーチャージャ、
たとえば、〈1〉のターボ過給圧に対しては当該過給機の流量可変手段の開口割合や開口面積あるいは当該過給機駆動用のアクチュエータに与える制御割合や作動割合を、〈2〉のターボ過給機に対してはウェストゲートバルブの開口割合や開口面積を、〈3〉のスーパーチャージャに対しては当該スーパーチャージャ駆動用のアクチュエータに与える制御割合や作動割合を過給機の作動目標値として用いればよい。
実施形態では、圧力を用いて過給機のアクチュエータを作動させるものとして、圧力の供給を受けるアクチュエータによりターボ過給機の可変ノズルを駆動するもので説明したが、上記〈1〉、〈2〉のターボ過給機にも適用がある。
実施形態では、熱発生のパターンが単段燃焼となる、いわゆる低温予混合燃焼を行わせる場合で説明したが、予混合燃焼の後に拡散燃焼が付加される、通常のディーゼル燃焼の場合でも、本発明を適用できることはいうまでもない。