(57)【特許請求の範囲】
【請求項１】
エンジンに吸入されるガスの空気過剰率を調整可能なターボ過給機と、
エンジンに吸入されるガスの酸素濃度としてのＥＧＲ率を調整可能なＥＧＲ装置と、
運転条件に応じた空気過剰率とＥＧＲ率の目標値を設定する目標値設定手段と、
実ＥＧＲ率を演算する実ＥＧＲ率演算手段と、
ＥＧＲ率の目標値が実ＥＧＲ率より小さいときに、ＥＧＲ率の目標値が実ＥＧＲ率と一致するときよりもＥＧＲ率の応答の時定数が大きくなるようにゲインを変更するゲイン変更手段と、
ＥＧＲ率の目標値及びこの変更されたゲインに基づいて目標ＥＧＲ量を演算する目標ＥＧＲ量演算手段と、
この目標ＥＧＲ量が得られるように前記ＥＧＲ装置を制御する制御手段と、
前記空気過剰率の目標値に基づいて前記ターボ過給機を制御する制御手段と
を備えることを特徴とするディーゼルエンジンの制御装置。
【請求項２】
前記ゲイン変更手段は、ＥＧＲ率の目標値が実ＥＧＲ率と一致するときにデフォルト値を前記ゲインとし、ＥＧＲ率の目標値が実ＥＧＲ率より小さいときにこのデフォルト値に１より小さい正の定数を乗算した値を前記ゲインとすることを特徴とする請求項１に記載のディーゼルエンジンの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はディーゼルエンジンの制御装置、特にＥＧＲ装置（排気の一部を吸気通路へ再循環させる装置）と過給機を備えるものに関する。
【０００２】
【従来の技術】
各エンジン運転条件毎にスモークおよびパーティキュレートをあまり発生させない最適な空気過剰率とＮＯｘをあまり発生させない最適なＥＧＲ率との組み合わせが存在することに着目して、理想的な空気過剰率とＥＧＲ率との関係を直線で表し（図７６の直線Ｍ参照）、吸入空気については現在の空気過剰率λｎが目標空気過剰率λｔと一致するように両者の偏差Δλに基づいてターボ過給機の可変ノズルの開度を制御するとともに、ＥＧＲ率については現在の空気過剰率λｎに対して直線Ｍの関係を満たすＥＧＲ率γｔを目標として現在のＥＧＲ率γｎとの偏差Δγに基づきＥＧＲ弁開度を制御するようにしたものが提案されている（特開平１０−２８８０４３号公報参照）。
【０００３】
【発明が解決しようとする課題】
ところで、エンジンに吸入されるガスの空気過剰率を調整する手段としての可変容量ターボ過給機は、過給機の流量可変手段である可変ノズルの開口割合を大きくするほどたとえば過給圧が小さくなり空気過剰率が減少してゆく。またエンジンに吸入されるガスの酸素濃度を調整する手段としてのＥＧＲ装置は、ＥＧＲ率（ＥＧＲ量）を大きくするほど酸素濃度が減少してゆく。
【０００４】
これらエンジンに吸入されるガス中の空気過剰率や酸素濃度が燃費や排気エミッション（特にＮＯｘ）に及ぼす影響は次の通りである。すなわち、空気に対する燃料分が増えて空気過剰率が低くなると燃費が悪くなり、この逆に空気過剰率が高くなると燃費がよくなる。また、エンジンに吸入されるガス中の酸素濃度が高くなると燃焼状態がよくなって高温で発生するＮＯｘが増え、この逆に酸素濃度が低くなると燃焼温度が抑えられＮＯｘが減る。
【０００５】
これらの特性より過渡時に燃費を良くしかつＮＯｘを低減するには過渡時においても空気過剰率を高くしかつ酸素濃度を低くすることが望まれる。すなわち、空気過剰率と酸素濃度がそれぞれ目標値へと過渡的に変化するとき、空気過剰率に対する酸素濃度の変化の経路を酸素濃度が低い側に調整して、酸素濃度が低くかつ空気過剰率が高い状態にある時間を長くすることが望まれる。
【０００６】
たとえば図７５（ａ）に示すように運転条件がＡ点にある状態から酸素濃度と空気過剰率がともに高くなるＢ点（目標値）へと過渡的に変化するとき、従来装置ではターボ過給機による空気過剰率の変更動作がＥＧＲ装置による酸素濃度の変更動作より遅れて開始するため酸素濃度の方が空気過剰率より速く目標値に近づこうとすることから、結果的に図で上に凸の経路▲１▼を辿って目標値に達する。すなわちＡ点からＢ点へと直線的に変化する場合より酸素濃度が高くかつ空気過剰率が低い状態にある時間が長くなり、これによりＮＯｘが増えるとともに燃費も悪くなる。
【０００７】
さらに考えると空気過剰率、酸素濃度の目標値の過渡的な変化は全部で４つある。すなわち過渡的な変化は図７５（ａ）に示した変化を含めて図７５（ｂ）に示すように次の４つになる。
【０００８】
〈１〉Ａ点からＢ点への変化（空気過剰率と酸素濃度の各目標値がともに高くなる方向への変化）、
〈２〉Ｃ点からＢ点への変化（酸素濃度の目標値が高くなりかつ空気過剰率の目標値が低くなる方向への変化）、
〈３〉Ｄ点からＢ点への変化（空気過剰率と酸素濃度の各目標値がともに低くなる方向への変化）、
〈４〉Ｅ点からＢ点への変化（酸素濃度の目標値が低くなりかつ空気過剰率の目標値が高くなる方向への変化）、
ここで、〈２〉の場合にも前述した〈１〉の場合と同様、従来装置ではターボ過給機による空気過剰率の変更動作がＥＧＲ装置による酸素濃度の変更動作より遅れて開始するため酸素濃度の方が空気過剰率より速く目標値に近づこうとするので、図で上に凸の経路▲３▼を辿って目標値に達する。すなわちＣ点からＢ点へと直線的に変化する場合より酸素濃度が高くかつ空気過剰率が低い状態にある時間が長くなり、これによりＮＯｘが増えるとともに燃費も悪くなる。
【０００９】
なお、従来装置の図７６においてｕ点からｐ点へと変化する場合が図７５（ａ）、（ｂ）のＡ点からＢ点へと変化する場合に対応する。これは、図７６においてｕ点から図で下に凸の経路を通ってｐ点へと達しているが（一点鎖線参照）、図７６に示す縦軸のＥＧＲ率と図７５（ａ）、（ｂ）に示す縦軸の酸素濃度とはちょうど反比例の関係を有するため、図７６のｕ点からｐ点への下に凸の変化を図７５（ａ）、（ｂ）に移すと上に凸の変化となり▲１▼と一致するからである。
【００１０】
このように、従来装置では排気と燃費が最適となるように設定した空気過剰率とＥＧＲ率（酸素濃度）の目標値に対して最短時間で到達するように制御を行うだけで過渡状態の瞬時の排気および燃費のレベルが最適になっているかどうかまでは考慮していないため、過渡状態の時間が短くても過渡時全体の排気、燃費が最適であるとはいえない。
【００１１】
そこで本発明は、過給機（空気過剰率調整手段）とＥＧＲ装置（酸素濃度調整手段）を用いて空気過剰率と酸素濃度とをともに制御するに際して、少なくとも酸素濃度の目標値が高くなる側に変化する場合すなわち図７５（ｂ）のうちＡ点またはＣ点からＢ点の目標値へと変化する場合（上記〈１〉または〈２〉の場合）に、空気過剰率に対する酸素濃度の変化の経路が酸素濃度の低い側になるよう図で経路▲１▼または▲３▼よりも下側の経路、例えば経路▲２▼または▲６▼を辿らせ、経路▲１▼または▲３▼を辿る従来装置より酸素濃度が低くかつ空気過剰率が高い状態にある時間を長くすることにより、過渡時全体としてＮＯｘ低減と燃費向上をともに図ることを目的とする。
【００１２】
なお、図７５（ｂ）のうちＤ点またはＥ点からＢ点へと変化する場合（上記〈３〉、〈４〉の場合）には図で下に凸の経路▲４▼または▲５▼を辿り、Ｄ点またはＥ点から直線的にＢ点へと変化する場合より酸素濃度が低くかつ空気過剰率が高い状態にある時間が長くなるので、このままで問題ない。
【００１３】
【課題を解決するための手段】
第１の発明は、図７７に示すように
エンジンに吸入されるガスの空気過剰率を調整可能なターボ過給機７１と、エンジンに吸入されるガスの酸素濃度としてのＥＧＲ率を調整可能なＥＧＲ装置７２と、運転条件に応じた空気過剰率とＥＧＲ率の目標値を設定する目標値設定手段７３、７４と、実ＥＧＲ率を演算する実ＥＧＲ率演算手段７５と、ＥＧＲ率の目標値が実ＥＧＲ率より小さいときに、ＥＧＲ率の目標値が実ＥＧＲ率と一致するときよりもＥＧＲ率の応答の時定数が大きくなるようにゲインを変更するゲイン変更手段７６と、ＥＧＲ率の目標値及びこの変更されたゲインに基づいて目標ＥＧＲ量を演算する目標ＥＧＲ量演算手段７７と、この目標ＥＧＲ量が得られるように前記ＥＧＲ装置７２を制御する制御手段７８と、前記空気過剰率の目標値に基づいて前記ターボ過給機７１を制御する制御手段７９とを備える。
【００２０】
【発明の効果】
運転条件の変化により酸素濃度の目標値が高くなる側に変化したとき、たとえば図７５（ｂ）に示したように運転条件の変化により空気過剰率と酸素濃度の目標値がともに高くなる側に変化したときや空気過剰率の目標値が低くなりかつ酸素濃度の目標値が高くなる側に変化したとき（Ａ点やＣ点よりＢ点へと変化する場合）に、従来装置では空気過剰率が低くかつ酸素濃度が高い経路である、<１>や<３>を辿るのに対して、第１の発明によればゲイン変更手段によりターボ過給機による空気過剰率の変更動作とＥＧＲ装置による酸素濃度の変更動作のうちＥＧＲ装置の変更動作に要する時間または変更動作の開始時期を調整して、変更動作中の空気過剰率に対する酸素濃度の変化の経路を酸素濃度が低い側にすることで酸素濃度が低くかつ空気過剰率が高い経路である<２>や<６>を辿ることから酸素濃度が低くかつ空気過剰率が高い状態にある時間が長くなり、過渡時のＮＯｘと燃料消費率をともに低減することが可能となる。
【００２３】
【発明の実施の形態】
図１に、熱発生率のパターンが単段燃焼となる、いわゆる低温予混合燃焼を行わせるための構成を示す。なお、この構成そのものは特開平８−８６２５１号公報などにより公知である。
【００２４】
さて、ＮＯｘの生成は燃焼温度に大きく依存し、その低減には燃焼温度の低温化が有効である。低温予混合燃焼では、ＥＧＲによる酸素濃度の低減で、低温燃焼を実現するため、排気通路２と吸気通路３のコレクタ部３ａとを結ぶＥＧＲ通路４に、圧力制御弁５からの制御圧力に応動するダイヤフラム式のＥＧＲ弁６（ＥＧＲ装置）を備えている。
【００２５】
圧力制御弁５は、コントロールユニット４１からのデューティ制御信号により駆動されるもので、これによって運転条件に応じた所定のＥＧＲ率を得るようにしている。たとえば、低回転低負荷域でＥＧＲ率を最大の１００パーセントとし、回転速度、負荷が高くなるに従い、ＥＧＲ率を減少させる。高負荷側では排気温度が上昇するため、多量のＥＧＲガスを還流すると、吸気温度の上昇によってＮＯｘ低減の効果が減少したり、噴射燃料の着火遅れ期間が短くなって予混合燃焼が実現できなくなる等のため、ＥＧＲ率を段階的に減少させている。
【００２６】
ＥＧＲ通路４の途中には、ＥＧＲガスの冷却装置７を備える。これは、ＥＧＲ通路４の周りに形成されエンジン冷却水の一部が循環されるウォータジャケット８と、冷却水の導入口７ａに設けられ冷却水の循環量を調整可能な流量制御弁９とからなり、コントロールユニット４１からの指令により、制御弁９を介して循環量を増やすほどＥＧＲガスの冷却度が増す。
【００２７】
燃焼促進のため吸気ポート近傍の吸気通路に所定の切欠を有するスワールコントロールバルブ（図示しない）を備える。コントロールユニット４１により、このスワールコントロールバルブが低回転速度低負荷域で閉じられると、燃焼室に吸入される吸気の流速が高まり燃焼室にスワールが生成される。
【００２８】
燃焼室は大径トロイダル燃焼室（図示しない）である。これは、ピストンキャビティを、入口を絞らずピストンの冠面から底部まで円筒状に形成したもので、その底部中央には、圧縮行程後期にピストンキャビティの外部から旋回しながら流れ込むスワールに抵抗を与えないように、さらに空気と燃料の混合を良好にするため、円錐部が形成されている。この入口を絞らない円筒状のピストンキャビティにより、前述のスワールバルブ等によって生成されたスワールは、燃焼過程でピストンが下降していくのに伴い、ピストンキャビティ内からキャビティ外に拡散され、キャビティ外でもスワールが持続される。
【００２９】
エンジンにはコモンレール式の燃料噴射装置１０を備える。これを図２により概説する。
【００３０】
この燃料噴射装置１０は、主に燃料タンク１１、燃料供給通路１２、サプライポンプ１４、コモンレール（蓄圧室）１６、気筒毎に設けられるノズル１７からなり、サプライポンプ１４により加圧された燃料は燃料供給通路１５を介して蓄圧室１６にいったん蓄えられたあと、蓄圧室１６の高圧燃料が気筒数分のノズル１７に分配される。
【００３１】
ノズル１７は、針弁１８、ノズル室１９、ノズル室１９への燃料供給通路２０、リテーナ２１、油圧ピストン２２、針弁１８を閉弁方向（図で下方）に付勢するリターンスプリング２３、油圧ピストン２２への燃料供給通路２４、この通路２４に介装される三方弁（電磁弁）２５などからなり、ノズル内の通路２０と２４が連通して油圧ピストン２２上部とノズル室１９にともに高圧燃料が導かれる三方弁２５のＯＦＦ時（ポートＡとＢが連通、ポートＢとＣが遮断）には、油圧ピストン２２の受圧面積が針弁１８の受圧面積より大きいことから、針弁１８が着座状態にあるが、三方弁２５がＯＮ状態（ポートＡとＢが遮断、ポートＢとＣが連通）になると、油圧ピストン２２上部の燃料が戻し通路２８を介して燃料タンク１１に戻され、油圧ピストン２２に作用する燃料圧力が低下する。これによって針弁１８が上昇してノズル先端の噴孔より燃料が噴射される。三方弁２５をふたたびＯＦＦ状態に戻せば、油圧ピストン２２に蓄圧室１６の高圧燃料が導びかれて燃料噴射が終了する。つまり、三方弁２５のＯＦＦからＯＮへの切換時期により燃料の噴射開始時期が、またＯＮ時間により燃料噴射量が調整され、蓄圧室１６の圧力が同じであれば、ＯＮ時間が長くなるほど燃料噴射量が多くなる。２６は逆止弁、２７はオリフィスである。
【００３２】
この燃料噴射装置１０にはさらに、蓄圧室圧力を調整するため、サプライポンプ１４から吐出された燃料を戻す通路１３に圧力調整弁３１を備える。この調整弁３１は通路１３の流路を開閉するもので、蓄圧室１６への燃料吐出量を調整することにより蓄圧室圧力を調整する。蓄圧室１６の燃料圧力（噴射圧）によって燃料噴射率が変化し、蓄圧室１６の燃料圧力が高くなるほど燃料噴射率が高くなる。
【００３３】
アクセル開度センサ３３、エンジン回転速度とクランク角度を検出するセンサ３４、気筒判別のためのセンサ３５、水温センサ３６からの信号が入力されるコントロールユニット４１では、エンジン回転速度とアクセル開度に応じて目標燃料噴射量と蓄圧室１６の目標圧力を演算し、圧力センサ３２により検出される蓄圧室圧力がこの目標圧力と一致するように圧力調整弁３１を介して蓄圧室１６の燃料圧力をフィードバック制御する。
【００３４】
また、演算した目標燃料噴射量に対応して三方弁２５のＯＮ時間を制御するほか、三方弁２５のＯＮへの切換時期を制御することで、運転条件に応じた所定の噴射開始時期を得るようにしている。たとえば、高ＥＧＲ率の低回転速度低負荷側で噴射燃料の着火遅れ期間が長くなるように燃料の噴射時期（噴射開始時期）をピストン上死点（ＴＤＣ）にまで遅延している。この遅延により、着火時期の燃焼室内の温度を低温状態にし、予混合燃焼比率を増大させることにより、高ＥＧＲ率域でのスモークの発生を抑える。これに対して、回転速度、負荷が高くなるにしたがい、噴射時期を進めている。これは、着火遅れの時間が一定であっても、着火遅れクランク角度（着火遅れの時間をクランク角度に換算した値）がエンジン回転速度の増加に比例して大きくなり、低ＥＧＲ率時に所定の着火時期を得るために、噴射時期を進めるのである。
【００３５】
図１に戻り、ＥＧＲ通路４の開口部下流の排気通路２に可変容量ターボ過給機を備える。これは、排気タービン５２のスクロール入口に、圧力アクチュエータ５４により駆動される可変ノズル５３を設けたもので、コントロールユニット４１により、可変ノズル５３は低回転速度域から所定の過給圧が得られるように、低回転速度側では排気タービン５２に導入される排気の流速を高めるノズル開度（傾動状態）に、高回転速度側では排気を抵抗なく排気タービン５２に導入させノズル開度（全開状態）に制御する。
【００３６】
上記の圧力アクチュエータ５４は、制御圧力に応動して可変ノズル５３を駆動するダイヤフラムアクチュエータ５５と、このアクチュエータ５５への制御圧力を調整する圧力制御弁５６とからなり、可変ノズル５３の開口割合が、後述するようにして得られる目標開口割合Ｒｖｎｔとなるように、デューティ制御信号が作られ、このデューティ制御信号が圧力制御弁５６に出力される。
【００３７】
さて、過給圧制御という観点からみると、ＥＧＲ制御も、過給圧制御の役割を物理的に果たしている。つまり、ＥＧＲ量を変化させることにより過給圧も変化する。逆に、過給圧を変化させると、排気圧力が変化するため、ＥＧＲ量も変化することになり、過給圧とＥＧＲ量とは独立に制御できない。また、ややもするとお互いに制御上の外乱となっている。なお、一方を変化させた場合に、制御精度を確保するには、他方を適合し直すことであるが、他方を適合し直した後には、もう一方を再適合しなければならなくなるので、この方法では、過渡時の制御精度を確保することが困難である。
【００３８】
このように、過給圧とＥＧＲ量とはお互いに影響を与え、ＥＧＲ量を変えると、ノズル開度を変える必要があるなど適切な適合が困難な上に、特に過渡時は双方の制御精度が低下するので、コントロールユニット４１では、目標吸入空気量ｔＱａｃと目標ＥＧＲ量や目標ＥＧＲ率Ｍｅｇｒに遅れ処理を施した値である実ＥＧＲ量Ｑｅｃや実ＧＲ率Ｍｅｇｒｄからターボ過給機の作動目標値である可変ノズル５３の目標開口割合Ｒｖｎｔを設定するほか、目標空気過剰率Ｔｌａｍｂと実ＥＧＲ率Ｍｅｇｒｄとから所定の演算式（後述する）により目標当量比Ｔｆｂｙａを設定し、この目標当量比Ｔｆｂｙａに基づいて上記の目標吸入空気量ｔＱａｃと最終目標噴射量Ｑｆｉｎを演算し、これら目標吸入空気量ｔＱａｃと最終目標噴射量Ｑｆｉｎが得られるように吸入空気量と噴射量を制御するようにしている。
【００３９】
また、運転条件の変化を受けて少なくとも目標ＥＧＲ率Ｍｅｇｒ（目標酸素濃度）が高くなる側に変化したとき、ＥＧＲ装置（酸素濃度調整手段）による酸素濃度の変更動作に要する時間が、ターボ過給機（空気過剰率調整手段）による空気過剰率の変更動作に要する時間より長くなるように空気過剰率とＥＧＲ率を制御する。
【００４０】
コントロールユニット４１で実行されるこの制御の内容を、以下のフローチャートにしたがって説明する。
【００４１】
まず、図３は目標燃料噴射量Ｑｓｏｌを演算するためのもので、ＲＥＦ信号（クランク角の基準位置信号で、４気筒エンジンでは１８０度毎、６気筒エンジンでは１２０度毎の各信号）の入力毎に実行する。
【００４２】
ステップ１、２でエンジン回転速度Ｎｅとアクセル開度Ｃｌを読み込み、ステップ３では、これらＮｅとＣｌに基づいて、図４を内容とするマップを検索すること等により、基本燃料噴射量Ｍｑｄｒｖを演算し、ステップ４ではこの基本燃料噴射量Ｍｑｄｒｖに対してエンジン冷却水温等による増量補正を行い、補正後の値を目標燃料噴射量Ｑｓｏｌとして設定する。
【００４３】
図５はＥＧＲ弁６の開口面積Ａｅｖを演算するためのもので、ＲＥＦ信号の入力毎に実行する。ステップ１では目標ＥＧＲ量Ｔｑｅｋを演算する。このＴｑｅｋの演算については図７のフローにより説明する。
【００４４】
図７（図５ステップ１のサブルーチン）において、ステップ１、２では１シリンダ当たりの吸入空気量Ｑａｃｎと目標ＥＧＲ率Ｍｅｇｒを演算する。
【００４５】
ここで、Ｑａｃｎの演算については図８のフローにより、またＭｅｇｒの演算については図１１のフローにより説明する。
【００４６】
まず、図８において、ステップ１ではエンジン回転速度Ｎｅを読み込み、このエンジン回転速度Ｎｅとエアフローメータより得られる吸入空気量Ｑａｓ０とから
【００４７】
【数１】
Ｑａｃ０＝（Ｑａｓ０／Ｎｅ）×ＫＣＯＮ＃、
ただし、ＫＣＯＮ＃：定数、
の式により１シリンダ当たりの吸入空気量Ｑａｃ０を演算する。
【００４８】
上記のエアフローメータ３９（図１参照）は、コンプレッサ上流の吸気通路３に設けており、エアフローメータ３９からコレクタ部３ａまでの輸送遅れ分のディレイ処理を行うため、ステップ３ではＬ（ただしＬは定数）回前のＱａｃ０の値をコレクタ入口部３ａ位置における１シリンダ当たりの吸入空気量Ｑａｃｎとして求めている。そして、ステップ４ではこのＱａｃｎに対して
【００４９】
【数２】
Ｑａｃ＝Ｑａｃn-1×（１−ＫＩＮ×ＫＶＯＬ）＋Ｑａｃｎ×ＫＩＮ×ＫＶＯＬ、
ただし、ＫＩＮ：体積効率相当値、
ＫＶＯＬ：ＶＥ／ＮＣ／ＶＭ、
ＶＥ：排気量、
ＮＣ：気筒数、
ＶＭ：吸気系容積、
Ｑａｃn-1：前回のＱａｃ、
の式（一次遅れの式）により吸気弁位置における１シリンダ当たりの吸入空気量（この吸入空気量を、以下「シリンダ吸入空気量」で略称する。）Ｑａｃを演算する。これはコレクタ入口部３ａから吸気弁までのダイナミクスを補償するためのものである。
【００５０】
上記数１式右辺の吸入空気量Ｑａｓ０の検出については図９のフローにより説明する。図９のフローは４ｍｓ毎に実行する。
【００５１】
ステップ１ではエアフローメータ３９の出力電圧Ｕｓを読み込み、このＵｓからステップ２で図１０を内容とする電圧−流量変換テーブルを検索すること等により吸入空気量Ｑａｓ０ ｄを演算する。さらに、ステップ３でこのＱａｓ０ ｄに対して加重平均処理を行い、その加重平均処理値を吸入空気量Ｑａｓ０として設定する。
【００５２】
次に、図１１において、ステップ１ではエンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌ、エンジン冷却水温Ｔｗを読み込む。ステップ２ではエンジン回転速度Ｎｅと目標燃料噴射量Ｑｓｏｌから図１２を内容とするマップを検索すること等により基本目標ＥＧＲ率Ｍｅｇｒｂを演算する。この場合、基本目標ＥＧＲ率は、エンジンの使用頻度の高い領域、つまり低回転速度、低負荷（低噴射量）になるほど大きくなり、スモークが発生しやすい高出力時には小さくする。
【００５３】
次にステップ３で冷却水温Ｔｗから図１３を内容とするテーブルを検索すること等により、基本目標ＥＧＲ率の水温補正係数Ｋｅｇｒ ｔｗを演算する。そして、ステップ４において、基本目標ＥＧＲ率とこの水温補正係数とから、
【００５４】
【数３】
Ｍｅｇｒ＝Ｍｅｇｒｂ×Ｋｅｇｒ ｔｗ
の式により目標ＥＧＲ率Ｍｅｇｒを算出する。
【００５５】
ステップ５ではエンジンの状態が完爆状態であるか否かを判定する。ただし、この完爆の判定は、図１４のフローで後述する。
【００５６】
ステップ６では完爆状態かどうかみて、完爆状態のときは、今回の処理をそのまま終了し、完爆状態でないと判定されたときは、目標ＥＧＲ率Ｍｅｇｒを０として今回の処理を終了する。
【００５７】
これにより、エンジンの完爆後にＥＧＲ制御が行われ、完爆前は安定した始動性を確保するためにもＥＧＲは行われない。
【００５８】
図１４はエンジンの完爆を判定するためのものである。ステップ１でエンジン回転速度Ｎｅを読み込み、このエンジン回転速度Ｎｅと完爆回転速度に相当する完爆判定スライスレベルＮＲＰＭＫとをステップ２において比較する。Ｎｅのほうが大きいときは完爆と判断し、ステップ３に進む。ここでは、カウンタＴｍｒｋｂと所定時間ＴＭＲＫＢＰとを比較し、カウンタＴｍｒｋｂが所定時間よりも大きいときは、ステップ４に進み、完爆したものとして処理を終了する。
【００５９】
これに対して、ステップ２でＮｅのほうが小さいときは、ステップ６に進み、カウンタＴｍｒｋｂをクリアし、ステップ７で完爆状態にはないものとして処理を終了する。また、ステップ２でＮｅよりも大きいときでも、ステップ３でカウンタＴｍｒｋｂが所定時間よりも小さいときは、ステップ５でカウンタをインクリメントし、完爆でないと判断する。
【００６０】
これらにより、エンジン回転速度が所定値（たとえば４００ｒｐｍ）以上であって、かつこの状態が所定時間にわたり継続されたときに完爆したものと判定するのである。
【００６１】
このようにして図８によりシリンダ吸入空気量Ｑａｃｎ、図１１により目標ＥＧＲ率Ｍｅｇｒの演算を終了したら、図７のステップ３に戻り、両者から
【００６２】
【数４】
Ｍｑｅｃ＝Ｑａｃｎ×Ｍｅｇｒ
の式により要求ＥＧＲ量Ｍｑｅｃを演算する。
【００６３】
ステップ４ではこのＭｑｅｃに対して、ＫＩＮ×ＫＶＯＬを加重平均係数とする
【００６４】
【数５】
Ｒｑｅｃ＝Ｍｑｅｃ×ＫＩＮ×ＫＶＯＬ＋Ｒｑｅｃn-1×（１−ＫＩＮ×ＫＶＯＬ）、
ただし、ＫＩＮ：体積効率相当値、
ＫＶＯＬ：ＶＥ／ＮＣ／ＶＭ、
ＶＥ：排気量、
ＮＣ：気筒数、
ＶＭ：吸気系容積、
Ｒｑｅｃn-1：前回の中間処理値、
の式により、中間処理値（加重平均値）Ｒｑｅｃを演算し、このＲｑｅｃと要求ＥＧＲ量Ｍｑｅｃを用いてステップ５で
【００６５】
【数６】
Ｔｑｅｃ＝Ｍｑｅｃ×ＧＫＱＥＣ＋Ｒｑｅｃn-1×（１−ＧＫＱＥＣ）、
ただし、ＧＫＱＥＣ：進み補正ゲイン、
の式により進み補正を行って、１シリンダ当たりの目標ＥＧＲ量Ｔｑｅｃを演算する。要求値に対して吸気系の遅れ（すなわちＥＧＲ弁６→コレクタ部３ａ→吸気マニホールド→吸気弁の容量分の遅れ）があるので、ステップ４、５はこの遅れ分の進み処理を行うものである。
【００６６】
数６式の進み補正ゲインＧＫＱＥＣは目標ＥＧＲ量の応答の時定数と逆数の関係にあり、進み補正ゲインを大きくするほど応答の時定数が小さくなり（応答が速くなり）、この逆に補正ゲインを小さくすると応答の時定数が大きくなる（応答が遅くなる）。この進み補正ゲインの演算については図７４によりさらに説明する。
【００６７】
図７４においてステップ１では目標ＥＧＲ率Ｍｅｇｒ、実ＥＧＲ率Ｍｅｇｒｄ（図１７で後述する）、進み補正ゲインのデフォルト値（初期設定値）ＧＫＱＥＣ０を読み込み、ステップ２で目標ＥＧＲ率Ｍｅｇｒと実ＥＧＲ率Ｍｅｇｒｄを比較する。定常状態であれば目標ＥＧＲ率と実ＥＧＲ率は一致するので、目標ＥＧＲ率が実ＥＧＲ率より小さい場合とは、運転条件の変化により目標ＥＧＲ率が低くなる側に変化しその目標値へと遅れて実ＥＧＲ率が追従している過渡期間中（すなわち酸素濃度の目標値が高くなる側に変化し実際の酸素濃度がその目標値に到達するまでの過渡期間中）である。この場合にはＥＧＲ率の応答（つまり酸素濃度の変更動作）の時定数を空気過剰率の応答（つまり空気過剰率の変更動作）の時定数より大きくしてＥＧＲ率の応答を空気過剰率の応答より遅らせるためステップ３に進み、
ＧＫＱＥＣ＝ＧＫＱＥＣ０×Ｋｇｋｑｅｃ、
ただし、Ｋｇｋｑｅｃ：１より小さい正の定数、
の式により進み補正ゲインＧＫＱＥＣを算出する。
【００６８】
ここで、定数Ｋｇｋｑｅｃの値を小さくするほどＥＧＲ率の応答が遅くなるので、ＥＧＲ率の応答が空気過剰率の応答より遅れるようにＫｇｋｑｅｃを運転性に影響を及ぼさない範囲でなるべく小さい値に設定する。なお、ＥＧＲ量とＥＧＲ率は厳密には異なるが、進み補正ゲインＧＫＱＥＣによりＥＧＲ量の応答を定めることはＥＧＲ率の応答を定めることに通ずる。
【００６９】
ＥＧＲ率（酸素濃度）の応答を空気過剰率の応答より遅らせる方法はこれに限られない。理論的には次の４つの方法が考えられこのうち実施形態は〔１〕を採用するものである。
【００７０】
〔１〕空気過剰率の応答はそのままで酸素濃度の応答を遅くする。
【００７１】
〔２〕酸素濃度の応答はそのままで空気過剰率の応答を速くする。
【００７２】
〔３〕空気過剰率の応答を速くするとともに酸素濃度の応答を遅くする。
【００７３】
〔４〕酸素濃度の応答を遅くするとともに空気過剰率の応答を速くする。
【００７４】
実際には、吸入空気（空気過剰率）の応答が遅れがちな過給機（空気過剰率調整手段）を備える場合に、空気過剰率の応答を速くすることになる〔２〕〜〔４〕の方法は現実的でない。もちろん将来的に応答の速い空気過剰率調整手段が出現したときには〔２〕〜〔４〕の方法を採用することが可能となる。
【００７５】
なお、空気過剰率の応答の時定数は図２９で後述する進み補正ゲインＧｋｖｎｔにより定まるがこの値は変更しない。
【００７６】
一方、目標ＥＧＲ率Ｍｅｇｒが実ＥＧＲ率Ｍｅｇｒｄに等しいとき（定常時）および目標ＥＧＲ率Ｍｅｇｒが実ＥＧＲ率Ｍｅｇｒｄより大きいとき（目標ＥＧＲ率が大きくなる側に変化するとき）にはステップ２よりステップ４に進み、デフォルト値ＧＫＱＥＣ０をそのまま進み補正ゲインＧＫＱＥＣとする。
【００７７】
図７に戻りステップ６では
【００７８】
【数７】
Ｔｑｅｋ＝Ｔｑｅｃ×（Ｎｅ／ＫＣＯＮ＃）／Ｋｑａｃ００
ただし、Ｋｑａｃ００：ＥＧＲ量フィードバック補正係数、
ＫＣＯＮ＃：定数、
の式により単位変換（１シリンダ当たり→単位時間当たり）を行って、目標ＥＧＲ量Ｔｑｅｋを求める。なお、ＥＧＲ量フィードバック補正係数Ｋｑａｃ００の演算については後述する（図５４参照）。
【００７９】
このようにして目標ＥＧＲ量Ｔｑｅｋの演算を終了したら、図５のステップ２に戻り、ＥＧＲガス（ＥＧＲ弁を流れるガス）の流速（このＥＧＲガスの流速を以下、単に「ＥＧＲ流速」という）Ｃｑｅを演算し、このＥＧＲ流速Ｃｑｅと目標ＥＧＲ量Ｔｑｅｋとから
【００８０】
【数８】
Ａｅｖ＝Ｔｑｅｋ／Ｃｑｅ
の式でＥＧＲ弁開口面積Ａｅｖを演算する。なお、ＥＧＲ流速Ｃｑｅの演算については後述する（図６３により参照）。
【００８１】
このようにして得られたＥＧＲ弁開口面積Ａｅｖは、図示しないフローにおいて図６を内容とするテーブルを検索する等によりＥＧＲ弁６のリフト量に変換され、このＥＧＲ弁リフト量になるように、圧力制御弁５へのデューティ制御信号が作られ、このデューティ制御信号が圧力制御弁５に出力される。
【００８２】
次に、図１５、図１６はターボ過給機駆動用の圧力制御弁５６に与える制御指令デューティ値Ｄｔｙｖｎｔを演算するためのもので、一定時間毎（たとえば１０ｍｓ毎）に実行する。
【００８３】
図１５を第１実施形態、図１６を第２実施形態とすると、２つの実施形態では可変ノズル５３の目標開口割合Ｒｖｎｔを演算するのに用いるパラメータに違いがある（図１５の第１実施形態では実ＥＧＲ量Ｑｅｃに基づいて、また図１６の第２実施形態では実ＥＧＲ率Ｍｅｇｒｄに基づいて可変ノズル５３の目標開口割合Ｒｖｎｔを演算する）。
【００８４】
なお、図１５、図１６はメインルーチンで、制御の大きな流れは図示のステップに従うものであり、各ステップの処理に対してサブルーチンが用意されている。したがって、以下ではサブルーチンを中心に説明していく。
【００８５】
図１７（図１６のステップ２のサブルーチン）は実ＥＧＲ率を演算するためのもので、１０ｍｓの入力毎に実行する。ステップ１で目標ＥＧＲ率Ｍｅｇｒ（図１１で既に得ている）を読み込み、ステップ２でコレクタ容量分の時定数相当値Ｋｋｉｎを演算する。このＫｋｉｎの演算については図１８のフローにより説明する。
【００８６】
図１８（図１７のステップ２のサブルーチン）において、ステップ１でエンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌ、後述する実ＥＧＲ率の前回値であるＭｅｇｒｄn-1［％］を読み込み、このうちＮｅとＱｓｏｌからステップ２において図１９を内容とするマップを検索すること等により体積効率相当基本値Ｋｉｎｂを演算し、ステップ３では
【００８７】
【数９】
Ｋｉｎ＝Ｋｉｎｂ×１／（１＋Ｍｅｇｒｄn-1／１００）
の式により体積効率相当値Ｋｉｎを演算する。これはＥＧＲによって体積効率が減少するので、その分の補正を行うようにしたものである。
【００８８】
このようにして求めたＫｉｎに対し、ステップ４において吸気系容積とシリンダ容積の比相当の定数であるＫＶＯＬ（図８のステップ４参照）を乗じた値をコレクタ容量分の時定数相当値Ｋｋｉｎとして演算する。
【００８９】
このようにしてＫｋｉｎの演算を終了したら図１７のステップ３に戻り、このＫｋｉｎと目標ＥＧＲ率Ｍｅｇｒを用い、
【００９０】
【数１０】
Ｍｅｇｒｄ＝Ｍｅｇｒ×Ｋｋｉｎ×Ｎｅ×ＫＥ２＃＋Ｍｅｇｒｄn-1×（１−Ｋｋｉｎ×Ｎｅ×ＫＥ２＃）、
ただし、Ｋｋｉｎ：Ｋｉｎ×ＫＶＯＬ＃、
ＫＥ２＃：定数、
Ｍｅｇｒｄn-1：前回のＭｅｇｒｄ、
の式で遅れ処理と単位変換（１シリンダ当たり→単位時間当たり）を同時に行って吸気弁位置におけるＥＧＲ率Ｍｅｇｒｄを演算する。数１０式の右辺のＮｅ×ＫＥ２＃が単位変換のための値である。目標ＥＧＲ率Ｍｅｇｒに対してこのＭｅｇｒｄは一次遅れで応答するため、このＭｅｇｒｄを、以下「実ＥＧＲ率」という。
【００９１】
図２０（図１５、図１６のステップ２のサブルーチン）は目標吸入空気量ｔＱａｃを演算するためのものである。ステップ１で実ＥＧＲ率Ｍｅｇｒｄ（図１７で既に得ている）を読み込み、ステップ２で目標空気過剰率Ｔｌａｍｂを演算する。この目標空気過剰率Ｔｌａｍｂの演算については図２１のフローにより説明する。
【００９２】
図２１において、ステップ１ではエンジン回転速度Ｎｅ、基本燃料噴射量Ｍｑｄｒｖ、水温Ｔｗ、リッチスパイク実行フラグｆｒｓｐｋを読み込む。リッチスパイク実行フラグｆｒｓｐｋは、ｆｒｓｐｋ＝１のときリッチスパイクを実行することを、これに対してｆｒｓｐｋ＝０のときリッチスパイクを実行しないことを意味する。ここで、リッチスパイクとは空気過剰率を１以下にすることをいう。
【００９３】
ここで、リッチスパイク実行フラグｆｒｓｐｋの設定について図６７のフローにより説明する。まずステップ１でエンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌ、水温Ｔｗを読み込む。
【００９４】
ステップ２、３、４はリッチスパイク許可条件であるかどうかを判定する部分である。すなわち、水温Ｔｗが所定温度ＴＷＲＳＫ＃を超えているかどうか、エンジン回転速度Ｎｅと目標燃料噴射量Ｑｓｏｌとがともに所定の範囲に入っているかどうかをみる。水温Ｔｗが所定温度ＴＷＲＳＫ＃を超えており（エンジンの暖機が完了している）、かつＮｅとＱｓｏｌとがともに所定の範囲に入っているとき（リッチスパイクにより供給されるＨＣを用いて触媒にトラップしているＮＯｘを還元浄化できる温度域にあるとき、したがって低負荷域のように排気温度が低い領域はＮＯｘ触媒が働かないので除く）、リッチスパイク許可条件にあると判断し、ステップ５、６に進んでリッチスパイク終了フラグｆｒｓｐｋ１とリッチスパイク実行フラグの前回値であるｆｒｓｐｋn-1をみる。
【００９５】
ｆｒｓｐｋ１＝０かつｆｒｓｐｋn-1＝０のとき（リッチスパイク実行フラグｆｒｓｐｋの０から１への切換時）には、ステップ７、８でリッチスパイク実行カウンタＣｔｒｒｈを所定値ＴＭＲＲＳＫ＃（正の値）に設定するとともに、リッチスパイク実行フラグｆｒｓｐｋ＝１として今回の処理を終了する。上記の所定値ＴＭＲＲＳＫ＃はリッチスパイクを実行する時間を定めるもので、触媒の容量によって異なる値とする。
【００９６】
このフラグｆｒｓｐｋ＝１により次回からもリッチスパイク許可条件にあればステップ５、６よりステップ８に進み、リッチスパイク実行カウンタＣｔｒｒｈをカウントダウンし、ステップ９でそのカウントダウンしたリッチスパイク実行カウンタＣｔｒｒｈとゼロを比較する。
【００９７】
カウントダウンの開始当初はＣｔｒｒｈ＞０であるので、ステップ１２の操作を行って今回の処理を繰り返す。次回以降もリッチスパイク許可条件にあればステップ８、９の操作を繰り返す。やがてリッチスパイク実行カウンタＣｔｒｒｈ＝０となればリッチスパイクを終了させるためステップ１０、１１に進み、リッチスパイク終了フラグｆｒｓｐｋ１＝１とするとともにリッチスパイク実行フラグｆｒｓｐｋ＝０として今回の処理を終了する。
【００９８】
リッチスパイク終了フラグｆｒｓｐｋ１＝１より次回にリッチスパイク許可条件であったとしても、ステップ５よりステップ６以降に進むことができない。
【００９９】
一方、リッチスパイク許可条件でないときやリッチスパイクの途中でリッチスパイク許可条件からはずれたときにはステップ２、３、４よりステップ１１、１３に進んで、２つのフラグｆｒｓｐｋ１＝０、ｆｒｓｐｋ＝０として今回の処理を終了する。
【０１００】
このように、リッチスパイク許可条件（運転条件）が成立し、まだリッチスパイクを行っていないときには所定時間リッチスパイクを実行して終了し、その後はリッチスパイク許可条件が続いていてもリッチスパイクを行わず、一度、リッチスパイク許可条件から外れて再びリッチスパイク条件が成立したときリッチスパイクをまた実行することで、不必要なリッチスパイクが行われることを防止している。
【０１０１】
図２１に戻り、ステップ２ではエンジン回転速度Ｎｅと基本燃料噴射量Ｍｑｄｒｖより図２２を内容とするマップを用いて目標空気過剰率基本値Ｔｌａｍｂｂを設定する。スモーク対策のため高負荷域でだけ空気過剰率に対する制限値を設定していた従来と異なり、本実施形態では図２２に示したように全ての運転条件（Ｎｅ、Ｍｑｄｒｖ）で最適な空気過剰率を設定している。すなわち、Ｔｌａｍｂｂの値はエンジン回転速度が一定であれば基本燃料噴射量Ｍｑｄｒｖが大きくなるほど小さくなり、またエンジン回転速度が高いほど小さくなる特性である。
【０１０２】
続いてステップ３、４、５で、水温Ｔｗ、吸気温Ｔａ、大気圧Ｐａより図２３、図６５、図６６を内容とするテーブルを検索することにより水温補正係数Ｋｌａｍｂ ｔｗ、吸気温補正係数Ｋｌａｍｂ ｔａ、大気圧補正係数Ｋｌａｍｂ ｐａを設定し、リッチスパイク実行フラグｆｒｓｐｋ＝０（リッチスパイク非実行条件）のときにはステップ６よりステップ７に進み、目標空気過剰率基本値Ｔｌａｍｂｂに対してこれら３つの補正係数Ｋｌａｍｂ ｔｗ、Ｋｌａｍｂ ｔａ、Ｋｌａｍｂ Ｐａを乗じた値を目標空気過剰率Ｔｌａｍｂとして演算する。
【０１０３】
ここで、水温補正係数Ｋｌａｍｂ ｔｗは低温時に増大するフリクションや燃焼の安定化のために空気過剰率を大きくして空気量を増大させるためのものである。吸気温補正係数Ｋｌａｍｂ ｔａは吸気温Ｔａが高い領域（図では８０度以上）で空気過剰率を大きくして空気密度が低い分の空気量を増大するとともに燃焼温度を下げるためのもの、また大気圧補正係数Ｋｌａｍｂ Ｐａも１気圧より低くなる高地で空気過剰率を大きくして、空気密度が低くなる分の空気量を大きくするためのものである。
【０１０４】
一方、リッチスパイク実行フラグｆｒｓｐｋ＝１（リッチスパイク実行条件）のときにはステップ６よりステップ８に進み、目標空気過剰率Ｔｌａｍｂを１．０以下の一定値ＴＬＡＭＲＣ＃とする。図示しないが、排気通路にＮＯｘをトラップする触媒を設けている。ここでのリッチスパイクは還元剤としてのＨＣをこの触媒に供給することを目的としており、空気過剰率を１．０以下の値とすることで、排気中のＨＣ濃度を高めることができる。
【０１０５】
このようにして目標空気過剰率Ｔｌａｍｂを設定したら図２０に戻り、ステップ３でこの目標空気過剰率Ｔｌａｍｂと実ＥＧＲ率Ｍｅｇｒｄとを用いて、
0004639480.tif 000002
の式で目標当量比Ｔｆｂｙａを演算する。
【０１０６】
上記の（３１）式は次のようにして導いたものである。
【０１０７】
空気過剰率λは吸入空気量と燃料量から定まる供給空燃比を理論空燃比の14.7で割った値（吸入空気量と燃料量から定まる供給空燃比と理論空燃比との関係を表す値）であるから、Ｇａを吸入空気量（新気量）、ＧｅをＥＧＲ量、Ｇｆを燃料量とすれば、定常状態で次式が成立する。
【０１０８】
λ＝｛Ｇａ＋Ｇｅ×（λ−１）／λ｝／（Ｇｆ×14.7）・・・（３２）
ここで、右辺の分子の第２項はＥＧＲ量の中に含まれる新気量である。これは、空気過剰率は本来、
λ＝Ｇａ／（Ｇｆ×14.7）                          ・・・（３３）
の式により定義される値であるが、ディーゼルエンジンでは空気過多の状態で運転されＥＧＲガス中に多くの新気量が含まれるため、本実施形態ではこの分を考慮したものである。（λ−１）／λはＥＧＲガス中の酸素割合を示すのでＧｅにこの酸素割合を乗じることでＥＧＲ量の中に含まれる新気量を求めている。
【０１０９】
（３２）式を次のように変形する。
【０１１０】
0004639480.tif 000003
ただし、ＥＧＲ率＝Ｇｅ／Ｇａである。
【０１１１】
ここで、当量比と空気過剰率とは逆数の関係にあり、
当量比＝Ｇｆ×14.7／Ｇａ                              ・・・（３５）
の式で定義されるので、（３４）式右辺のＧａ／（Ｇｆ×14.7）＝１／当量比であるから、これを（３４）式に代入する。
【０１１２】
λ＝（１／当量比）×｛１＋ＥＧＲ率×（λ−１）／λ｝・・・（３６）
（３６）式を当量比について整理すると次式を得る。
【０１１３】
0004639480.tif 000004
（３７）式の当量比、ＥＧＲ率にそれぞれ目標当量比Ｔｆｂｙａ、実ＥＧＲ率Ｍｅｇｒｄを代入すると、上記（３１）式が得られる。
【０１１４】
このようにして求められる目標空気過剰率Ｔｌａｍｂと基本燃料噴射量Ｍｑｄｒｖとを用い、ステップ４において
ｔＱａｃ＝Ｍｑｄｒｖ×ＢＬＡＭＢ＃／Ｔｆｂｙａ        ・・・（３８）
ただし、ＢＬＡＭＢ＃：14.7、
の式により目標吸入空気量ｔＱａｃを演算する。
【０１１５】
図６８は最終目標燃料噴射量Ｑｆｉｎを設定するためのもので、ＲＥＦ信号の入力毎に実行する。ステップ１では目標当量比Ｔｆｂｙａ（図２０のステップ３で既に得ている）、シリンダ吸入空気量Ｑａｃ（図８で既に得ている）を読み込み、これらより
Ｑｆｉｎ＝（Ｑａｃ／ＢＬＡＭＢ＃）×Ｔｆｂｙａ      ・・・（３８）
ただし、ＢＬＡＭＢ＃：14.7
の式で最終目標燃料噴射量Ｑｆｉｎを演算する。求められた最終目標燃料噴射量Ｑｆｉｎは図示しないフローにより三方弁２５のＯＮ時間に変換されて三方弁２５へと出力される。
【０１１６】
このように本実施形態では、従来と相違して目標当量比Ｔｆｂｙａに基づいて燃料噴射量が演算される。したがって、基本燃料噴射量Ｍｑｄｒｖや目標燃料噴射量Ｑｓｏｌ（図３、図４参照）が燃料噴射量の基本となることはなく、これらはもっぱらエンジン負荷相当として扱われる。
【０１１７】
図６９は吸気絞り弁の開度を設定するためのもので、一定時間毎（たとえば１０ｍｓ毎）に実行する。ステップ１では上記の目標吸入空気量ｔＱａｃ（図２０により既に得ている）のほか、エンジン回転速度Ｎｅ、目標ＥＧＲ率Ｍｅｇｒ、基本燃料噴射量Ｍｑｄｒｖを読み込む。
【０１１８】
これらのうちエンジン回転速度Ｎｅと目標ＥＧＲ率Ｍｅｇｒからステップ２で図７０を内容とするマップを検索することにより過給機の可変ノズル５３で制御しうる最低吸入空気量基本値ａＱａｃｂを演算するとともに、ステップ３では基本燃料噴射量Ｍｑｄｒｖから図７１を内容とするテーブルを検索することにより負荷補正係数ｋａＱｑｃを演算し、この負荷補正係数ｋａＱｑｃをステップ４において最低吸入空気量基本値ａＱａｃｂに乗じた値を過給機制御可能最低吸入空気量ａＱａｃとして算出する。
【０１１９】
ここで、ａＱａｃｂの値は図７０に示したようにエンジン回転速度Ｎｅが一定であれば目標ＥＧＲ率Ｍｅｇｒが大きくなるほど小さくなり、また目標ＥＧＲ率Ｍｅｇｒが一定のときエンジン回転速度Ｎｅが高いほど大きくなる特性である。また、負荷補正係数ｋａＱｑｃは高負荷になるほど過給圧が上昇して吸入空気量が増加するので、これに合わせるためのものである。
【０１２０】
このようにして求めた過給機制御可能最低吸入空気量ａＱａｃと目標吸入空気量ｔＱａｃとをステップ５で比較する。目標吸入空気量ｔＱａｃが過給機制御可能最低吸入空気量ａＱａｃ以上であれば過給機の可変ノズル５３による制御で目標吸入空気量ｔＱａｃを達成することが可能であるためステップ９に進んで吸気絞り弁開度ＴＶＯを絞り弁全開状態を表す所定値ＴＶＯＷＯＴ＃（たとえば約８０度）とすることで、吸気絞り弁６０を閉じることによるポンピングロスを低減し、燃費の悪化を防止する。
【０１２１】
これに対して目標吸入空気量ｔＱａｃが過給機制御可能最低吸入空気量ａＱａｃより小さいときには過給機の可変ノズル５３による制御で目標吸入空気量ｔＱａｃを達成することが不可能であるため（過給圧が最も高くなるように可変ノズル５３を全閉としてもｔＱａｃが得られない）、ステップ６〜８で吸気絞りにより目標吸入空気量ｔＱａｃを達成する。
【０１２２】
このうちステップ６、７はｔＱａｃ（重量流量）を吸気絞り弁が制御できる体積流量に変換する部分である。すなわちステップ６で目標吸入空気量ｔＱａｃより図７２を内容とするテーブルを検索することにより吸気量比ｔＤＮＶを演算し、これにステップ７においてエンジン回転速度Ｎｅと排気量ＶＯＬ＃を乗じて吸気絞り弁の目標開口面積ｔＡｔｖｏを算出する。そしてこの目標開口面積ｔＡｔｖｏからステップ８において図７３を内容とするテーブルを検索することにより吸気絞り弁開度ＴＶＯを演算する。
【０１２３】
このようにしてステップ８で演算されあるいはステップ９で設定される吸気絞り弁開度ＴＶＯとなるようにスロットルアクチュエータにより吸気絞り弁が駆動される。
【０１２４】
図２４(図１５のステップ３のサブルーチン）は実ＥＧＲ量を演算するためのものである。ステップ１でコレクタ入口部３ａ位置における１シリンダ当たりの吸入空気量Ｑａｃｎ（図８のステップ３で既に得ている）、目標ＥＧＲ率Ｍｅｇｒ、コレクタ容量分の時定数相当値Ｋｋｉｎを読み込む。このうちＱａｃｎとＭｅｇｒからステップ２で
【０１２５】
【数１１】
Ｑｅｃ０＝Ｑａｃｎ×Ｍｅｇｒ
の式によりコレクタ入口部３ａ位置における１シリンダ当たりのＥＧＲ量Ｑｅｃ０を演算し、このＱｅｃ０とＫｋｉｎを用いステップ３において、
【０１２６】
【数１２】
Ｑｅｃ＝Ｑｅｃ０×Ｋｋｉｎ×Ｎｅ×ＫＥ＃＋Ｑｅｃn-1×（１−Ｋｋｉｎ×Ｎｅ×ＫＥ＃）、
ただし、Ｋｋｉｎ：Ｋｉｎ×ＫＶＯＬ、
ＫＥ＃：定数、
Ｑｅｃn-1：前回のＱｅｃ、
の式により、上記の数１０式と同様に遅れ処理と単位変換（１シリンダ当たり→単位時間当たり）を同時に行ってシリンダ吸入ＥＧＲ量Ｑｅｃを演算する。数１２式の右辺のＮｅ×ＫＥ＃が単位変換のための値である。このＱｅｃは目標ＥＧＲ量Ｔｑｅｋに対して一次遅れで応答するため、以下このＱｅｃを「実ＥＧＲ量」という。また、目標吸入空気量ｔＱａｃに対して一次遅れで応答する上記のＱａｃを、以下「実吸入空気量」という。
【０１２７】
図２５（図１５のステップ４のサブルーチン）、図２７（図１６のステップ３のサブルーチン）は可変ノズル５３の目標開口割合Ｒｖｎｔを演算するためのものである（図２５が第１実施形態、図２７が第２実施形態）。
【０１２８】
ここで、可変ノズル５３の開口割合とは、可変ノズル５３の全開時のノズル面積に対する現在のノズル面積の比のことである。したがって、可変ノズル５３の全開時に開口割合は１００％、全閉時に開口割合は０％となる。開口割合を採用する理由は汎用性を持たせる（ターボ過給機の容量と関係ない値とする）ためである。もちろん、可変ノズルの開口面積を採用してもかまわない。
【０１２９】
なお、実施形態のターボ過給機は、全開時に過給圧が最も小さく、全閉時に過給圧が最も高くなるタイプのものであるため、開口割合が小さいほど過給圧が高くなる。
【０１３０】
まず、第１実施形態の図２５のほうから説明すると、ステップ１で目標吸入空気量ｔＱａｃ、実ＥＧＲ量Ｑｅｃ、エンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌを読み込む。
【０１３１】
ステップ２、３では
【０１３２】
【数１３】
ｔＱａｓ０＝（ｔＱａｃ＋Ｑｓｏｌ×ＱＦＧＡＮ＃）×Ｎｅ／ＫＣＯＮ＃、
Ｑｅｓ０＝（Ｑｅｃ＋Ｑｓｏｌ×ＱＦＧＡＮ＃）×Ｎｅ／ＫＣＯＮ＃、
ただし、ＱＦＧＡＮ＃：ゲイン、
ＫＣＯＮ＃：定数、
の２つの式により、目標開口割合を設定するための吸入空気量相当値ｔＱａｓ０（以下、この吸入空気量相当値を「設定吸入空気量相当値」という）と同じく目標開口割合を設定するためのＥＧＲ量相当値Ｑｅｓ０（以下、このＥＧＲ量相当値を「設定ＥＧＲ量相当値」という）を演算する。数１３式において、ｔＱａｃ、ＱｅｃにＱｓｏｌ×ＱＦＧＡＮ＃を加算しているのは、設定吸入空気量相当値、設定ＥＧＲ量相当値に対して負荷補正を行えるようにし、かつその感度をゲインＱＦＧＡＮ＃で調整するようにしたものである。また、Ｎｅ／ＫＣＯＮ＃は単位時間当たりの吸入空気量、ＥＧＲ量に変換するための値である。
【０１３３】
このようにして求めた設定吸入空気量相当値ｔＱａｓ０と設定ＥＧＲ量相当値ｔＱｅｓ０からステップ４ではたとえば図２６を内容とするマップを検索することにより可変ノズル５３の目標開口割合Ｒｖｎｔを設定する。
【０１３４】
一方、第２実施形態の図２７のほうでは、ステップ１で目標吸入空気量ｔＱａｃ、実ＥＧＲ率Ｍｅｇｒｄ、エンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌを読み込み、ステップ２において、上記数１３式のうち上段の式により設定吸入空気量相当値ｔＱａｓ０を演算し、この設定吸入空気量相当値ｔＱａｓ０と実ＥＧＲ率Ｍｅｇｒｄからステップ３でたとえば図２８を内容とするマップを検索することにより可変ノズル５３の目標開口割合Ｒｖｎｔを設定する。
【０１３５】
図２６、図２８に示した特性は燃費重視で設定したものである。なお、排気重視で設定することも可能である。ただし、排気重視の設定例との違いは具体的な数値にしかないので、両者に共通する特性を先に説明し、その後に両者の違いについて説明する。なお、図２８の特性は、縦軸が図２６と相違するものの（図２６において原点からの傾斜がＥＧＲ率を示す）、基本的に図２６と変わるものでないため、図２６のほうで説明する。
【０１３６】
図２６に示すように、設定吸入空気量相当値ｔＱａｓ０の大きな右側の領域において設定ＥＧＲ量相当値Ｑｅｓ０が増えるほど目標開口割合を小さくしている。これは次の理由からである。ＥＧＲ量が多くなると、そのぶん新気が減り、これによって空燃比がリッチ側に傾くとスモークが発生する。そこで、ＥＧＲ量が多くなるほど、目標開口割合を小さくして過給圧を高める必要があるからである。
【０１３７】
これに対して、ｔＱａｓ０の小さな左側の領域では過給効果があまり得られない。この領域でｔＱａｓ０が小さくなるほど目標開口割合を小さくしている。これは次の理由からである。この領域でも目標開口割合を大きくすると、排気圧が立ち上がりにくいのでこれを避けたいこと、また全開加速のためにはその初期において開口割合が小さいほうがよいことのためである。このように、異なる２つの要求から図２６の特性が基本的に定まっている。
【０１３８】
さて、図２６で代表させた目標開口割合の傾向は、燃費重視と排気重視に共通のもので、両者の違いは具体的な数値にある。同図において「小」とある位置の数値は、ターボ過給機が効率よく働く最小の値であるため、燃費重視の設定例、排気重視の設定例とも同じで、たとえば２０程度である。一方、「大」とある位置の数値が両者で異なり、燃費重視の設定例の場合に６０程度、排気重視の設定例になると３０程度になる。
【０１３９】
なお、目標開口割合の設定は上記のものに限られるものでない。第１実施形態では設定吸入空気量相当値ｔＱａｓ０と設定ＥＧＲ量相当値ｔＱｅｓ０とから目標開口割合を設定しているが、これに代えて、目標吸入空気量ｔＱａｃと実ＥＧＲ量Ｑｅｃから設定してもかまわない。さらに、これに代えて目標吸入空気量ｔＱａｃと目標ＥＧＲ量（Ｑｅｃ０）から設定してもかまわない。同様にして、第２実施形態では設定吸入空気量相当値ｔＱａｓ０と実ＥＧＲ率Ｍｅｇｒｄから目標開口割合を設定しているが、これに代えて、目標吸入空気量ｔＱａｃと実ＥＧＲ率Ｍｅｇｒｄから設定してもかまわない。さらに、これに代えて目標吸入空気量ｔＱａｃと目標ＥＧＲ率Ｍｅｇｒから設定してもかまわない。
【０１４０】
図２９（図１５のステップ５、図１６のステップ４のサブルーチン）は、上記のようにして求めた目標開口割合Ｒｖｎｔに対して、可変ノズル駆動用の圧力アクチュエータ５４（圧力制御弁５６とダイヤフラムアクチュエータ５５からなる）のダイナミクスを補償するため、進み処理を行うものである。これは、可変ノズル５３のアクチュエータが圧力アクチュエータである場合には、ステップモータである場合と異なり、無視できないほどの応答遅れがあるためである。
【０１４１】
ステップ１で目標開口割合Ｒｖｎｔを読み込み、このＲｖｎｔと前回の予想開口割合であるＣａｖｎｔn-1をステップ２において比較する。ここで、予想開口割合Ｃａｖｎｔとは、すぐ後で述べるように、目標開口割合Ｒｖｎｔの加重平均値である（ステップ１０参照）。
【０１４２】
Ｒｖｎｔ＞Ｃａｖｎｔn-1であれば（可変ノズル５３を開く側に動かしているとき）、ステップ３、４に進み、所定値ＧＫＶＮＴＯ＃を進み補正ゲインＧｋｖｎｔ、所定値ＴＣＶＮＴＯ＃を進み補正の時定数相当値Ｔｃｖｎｔとして設定し、これに対して、Ｒｖｎｔ＜Ｃａｖｎｔn-1であるとき（可変ノズル５３を閉じる側に動かしているとき）は、ステップ６、７に進み、所定値ＧＫＶＮＴＣ＃を進み補正ゲインＧｋｖｎｔ、所定値ＴＣＶＮＴＣ＃を進み補正の時定数相当値Ｔｃｖｎｔとして設定する。また、ＲｖｎｔとＣａｖｎｔn-1が同一であればステップ８、９に進み、前回の進み補正ゲイン、進み補正の時定数相当値を維持する。
【０１４３】
可変ノズル５３を開き側に動かしているときと閉じ側に動かしているときとで進み補正ゲインＧｋｖｎｔ、進み補正の時定数相当値Ｔｃｖｎｔを相違させ、ＧＫＶＮＴＯ＃＜ＧＫＶＮＴＣ＃、ＴＣＶＮＴＯ＃＜ＴＣＶＮＴＣ＃としている。これは、可変ノズル５３を閉じ側に動かすときは、排気圧に抗する必要があるので、そのぶんゲインＧｋｖｎｔを大きくし、かつ時定数を小さくする（時定数と逆数の関係にある時定数相当値Ｔｃｖｎｔは大きくする）必要があるからである。
【０１４４】
ステップ１０ではこのようにして求めた進み補正の時定数相当値Ｔｃｖｎｔと目標開口割合Ｒｖｎｔを用いて、
【０１４５】
【数１４】
Ｃａｖｎｔ＝Ｒｖｎｔ×Ｔｃｖｎｔ＋Ｃａｖｎｔn-1×（１−Ｔｃｖｎｔ）、
ただし、Ｃａｖｎｔn-1：前回のＣａｖｎｔ、
の式により予想開口割合Ｃａｖｎｔを演算し、この値と目標開口割合Ｒｖｎｔからステップ１１において、
【０１４６】
【数１５】
Ａｖｎｔ ｆ＝Ｇｋｖｎｔ×Ｒｖｎｔ−（Ｇｋｖｎｔ−１）×Ｃａｖｎｔn-1、
ただし、Ｃａｖｎｔn-1：前回のＣａｖｎｔ、
の式により進み補正を行い、目標開口割合のフィードフォワード量Ａｖｎｔ ｆを演算する。ステップ１０、１１の進み処理そのものは、図７のステップ４、５に示した進み処理と基本的に同様である。
【０１４７】
図３０（図１５のステップ６、図１６のステップ５の各サブルーチン）は目標開口割合のフィードバック量Ａｖｎｔ ｆｂを演算するためのものである。ステップ１で目標吸入空気量ｔＱａｃ、目標ＥＧＲ率Ｍｅｇｒ、エンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌ、実吸入空気量Ｑａｃを読み込み、ステップ２では目標ＥＧＲ率Ｍｅｇｒと所定値ＭＥＧＲＬＶ＃を比較する。
【０１４８】
Ｍｅｇｒ≧ＭＥＧＲＬＶ＃であるとき（ＥＧＲの作動域であるとき）は、ステップ４において
【０１４９】
【数１６】
ｄＱａｃ＝ｔＱａｃ／Ｑａｃ−１
の式により目標吸入空気量からの誤差割合ｄＱａｃを演算する。ｄＱａｃの値は０を中心とし、実際値としてのＱａｃが目標値としてのｔＱａｃより小さいとき正の値に、この逆にＱａｃがｔＱａｃより大きいとき負の値になる。
【０１５０】
一方、Ｍｅｇｒ＜ＭＥＧＲＬＶ＃であるとき（ＥＧＲの非作動域であるとき）は、ステップ３に進み、誤差割合ｄＱａｃ＝０とする（すなわち、フィードバックを禁止する）。
【０１５１】
ステップ５ではＮｅとＱｓｏｌから所定のマップを検索することによりフィードバックゲインの補正係数Ｋｈを演算し、この値をステップ６において各定数（比例定数ＫＰＢ＃、積分定数ＫＩＢ＃、微分定数ＫＤＢ＃）に掛けることによってフィードバックゲインＫｐ、Ｋｉ、Ｋｄを算出し、これらの値を用いて目標開口割合のフィードバック量Ａｖｎｔ ｆｂをステップ７において演算する。このフィードバック量の演算方法は周知のＰＩＤ処理である。
【０１５２】
上記の補正係数Ｋｈは、運転条件（Ｎｅ、Ｑｓｏｌ）により適正なフィードバックゲインが変化するのに対応して導入したもので、負荷および回転速度が大きくなるほど大きくなる。
【０１５３】
図３１（図１５のステップ７、図１６のステップ６の各サブルーチン）は、目標開口割合に対して線型化処理を行うためのものである。ステップ１で目標開口割合のフィードフォワード量Ａｖｎｔ ｆとフィードバック量Ａｖｎｔ ｆｂを読み込み、この両者をステップ２において加算した値を指令開口割合Ａｖｎｔとして算出する。ステップ３ではこの指令開口割合Ａｖｎｔからたとえば図３２を内容とするテーブル（線型化テーブル）を検索することにより指令開口割合線型化処理値Ｒａｔｄｔｙを設定する。
【０１５４】
この線型化処理は、図３２のように開口割合（あるいは開口面積）に対して、ターボ過給機を駆動するアクチュエータへの指令信号が非線型な特性を有する場合に必要となるものである。たとえば、図３３に示したように空気量（過給圧）の変化幅が同じでも、空気量の小さな領域と空気量の大きな領域とでは、開口面積の変化幅がｄＡ０、ｄＡ１と大きく異なる（ただしＥＧＲなしのとき）。さらにＥＧＲの有無（図では「ｗ／ｏ ＥＧＲ」がＥＧＲなし、「ｗ／ ＥＧＲ」がＥＧＲありを表す）によっても開口面積の変化幅が変わる。したがって、運転条件に関係なく同じフィードバックゲインとしたのでは目標の吸入空気量（過給圧）が得られない。そこで、フィードバックゲインの適合を容易にするため、上記のように運転条件に応じたフィードバックゲインの補正係数Ｋｈを導入しているのである。
【０１５５】
図３４（図１５のステップ８、図１６のステップ７の各サブルーチン）は圧力制御弁５６に与えるＯＮデューティ値（以下、単に「デューティ値」という）である制御指令値Ｄｔｙｖｎｔを設定するためのものである。まず、ステップ１でエンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌ、指令開口割合線型化処理値Ｒａｔｄｔｙ、進み補正の時定数相当値Ｔｃｖｎｔ、水温Ｔｗを読み込む。
【０１５６】
ステップ２ではデューティ選択信号フラグの設定を行う。このフラグ設定については図３５のフローより説明する。図３５において、ステップ１で指令開口割合Ａｖｎｔと進み補正の時定数相当値Ｔｃｖｎｔを読み込み、これらからステップ２において、
【０１５７】
【数１７】
Ａｄｌｙｖｎｔ＝Ａｖｎｔ×Ｔｃｖｎｔ＋Ａｄｌｙｖｎｔn-1×（１−Ｔｃｖｎｔ）、
ただし、Ａｄｌｙｖｎｔn-1：前回のＡｄｌｙｖｎｔ、
の式により遅れ処理を行って予想開口割合Ａｄｌｙｖｎｔを演算し、この値と前回の予想開口割合のＭ（ただしＭは定数）回前の値であるＡｄｌｙｖｎｔn-Mとをステップ３において比較する。
【０１５８】
Ａｄｌｙｖｎｔ≧Ａｄｌｙｖｎｔn-Mであるとき（増加傾向または定常状態にあるとき）は、増加傾向または定常状態にあることを示すためステップ４で作動方向指令フラグｆｖｎｔ＝１とし、それ以外ではステップ５で作動方向指令フラグｆｖｎｔ＝０とする。ステップ６ではさらに増加傾向である場合と定常状態とを分離するため、ＡｄｌｙｖｎｔとＡｄｌｙｖｎｔn-Mを比較し、Ａｄｌｙｖｎｔ＝Ａｄｌｙｖｎｔn-Mであるときは、ステップ７でデューティ保持フラグｆｖｎｔ２＝１とし、それ以外ではステップ８でデューティ保持フラグｆｖｎｔ２＝０とする。
【０１５９】
このようにして２つのフラグｆｖｎｔ、ｆｖｎｔ２の設定を終了したら、図３４のステップ３に戻り、デューティ値の温度補正量Ｄｔｙ ｔを演算する。この演算については図３６のフローより説明する。
【０１６０】
図３６において、ステップ１でエンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌ、水温Ｔｗを読み込み、このうちＮｅとＱｓｏｌからステップ２においてたとえば図３７を内容とするマップを検索すること等により基本排気温度Ｔｅｘｈｂを演算する。ここで、Ｔｅｘｈｂは暖機完了後の排気温度である。これに対して暖機途中であれば暖機完了後の排気温度とは異なってくるため、ステップ３で水温Ｔｗよりたとえば図３８を内容とするテーブルを検索すること等により排気温度の水温補正係数Ｋｔｅｘｈ ｔｗを演算し、この値をステップ４において上記の基本排気温度に乗算した値を排気温度Ｔｅｘｈｉとして演算する。
【０１６１】
ステップ５ではこの排気温度Ｔｅｘｈｉから
【０１６２】
【数１８】
Ｔｅｘｈｄｌｙ＝Ｔｅｘｈｉ×ＫＥＸＨ＃＋Ｔｅｘｈｄｌｙn-1×（１−ＫＥＸＨ＃）、
ただし、ＫＥＸＨ＃：定数、
Ｔｅｘｈｄｌｙn-1：前回のＴｅｘｈｄｌｙ、
の式により遅れ処理を行った値を実排気温度Ｔｅｘｈｄｌｙとして演算する。これは、熱慣性分の遅れ処理を行うものである。
【０１６３】
ステップ６では基本排気温度Ｔｅｘｈｂとこの実排気温度Ｔｅｘｈｄｌｙとの差ｄＴｅｘｈを演算し、この差ｄＴｅｘｈからステップ７においてたとえば図３９を内容とするテーブルを検索すること等によりデューティ値の温度補正量Ｄｔｙ ｔを演算する。ステップ６、７は、後述するヒステリシス対応に用いるマップ（Ｄｕｔｙ ｈ ｐ、Ｄｕｔｙ ｈ ｎ、Ｄｕｔｙ ｌ ｐ、Ｄｕｔｙ ｌ ｎのマップ）を暖機完了後に対して設定することを念頭に置き、その状態からの差分（つまりｄＴｅｘｈ）に応じた補正量を持たせるものである。なお、温度補正量Ｄｔｙ ｔによる補正は、雰囲気温度による温度特性を有するターボ過給機駆動用アクチュエータを使用する場合に必要となる処理である（図４０参照）。
【０１６４】
このようにして温度補正量Ｄｔｙ ｔの演算が終了したら、図３４のステップ４に戻る。
【０１６５】
図３４のステップ４〜９はヒステリシス処理を行うものである。この処理を図４５を用いて先に説明しておくと、これは、指令開口割合線型化処理値Ｒａｔｄｔｙが増加傾向にあるときに上側の特性（Ｄｕｔｙ ｌ ｐを可変ノズル全開時の指令信号、Ｄｕｔｙ ｈ ｐを可変ノズル全閉時の指令信号とする直線特性）を用いるのに対して、指令開口割合線型化処理値Ｒａｔｄｔｙが減少傾向にあるときには、もう一つの下側の特性（Ｄｕｔｙ ｌ ｎを可変ノズル全開時の指令信号、Ｄｕｔｙ ｈ  ｎを可変ノズル全閉時の指令信号とする直線特性）を用いるものである。なお、Ｒａｔｄｔｙが１に近い領域で２つの特性がひっくり返っている領域があるが、この領域が実際に使われることはない。
【０１６６】
図３４に戻り、ステップ４でフラグｆｖｎｔ１をみる。ｆｖｎｔ＝１のとき（すなわち開口割合が増加傾向にあるかまたは定常状態にあるとき）は、ステップ５、６に進み、たとえば図４１を内容とするマップ（Ｄｕｔｙ ｈ ｐマップ）と図４２を内容とするマップ(Ｄｕｔｙ ｌ ｐマップ）を検索することにより可変ノズル全閉時のデューティ値Ｄｕｔｙ ｈと可変ノズル全開時のデューティ値Ｄｕｔｙ ｌをそれぞれ設定する。一方、ｆｖｎｔ＝０のとき（すなわち開口割合が減少傾向にあるとき）は、ステップ７、８に進み、たとえば図４３を内容とするマップ（Ｄｕｔｙ ｈ ｎマップ）と図４４を内容とするマップ(Ｄｕｔｙ ｌ ｎマップ）を検索することにより可変ノズル全閉時のデューティ値Ｄｕｔｙ ｈと可変ノズル全開時のデューティ値Ｄｕｔｙ ｌをそれぞれ設定する。
【０１６７】
このようにして設定した可変ノズル全閉時のデューティ値Ｄｕｔｙ ｈ、可変ノズル全開時のデューティ値Ｄｕｔｙ ｌと上記の指令開口割合線型化処理値Ｒａｔｄｔｙを用いステップ９において、
【０１６８】
【数１８】
Ｄｔｙ ｈ＝（Ｄｕｔｙ ｈ−Ｄｕｔｙ ｌ）×Ｒａｔｄｔｙ＋Ｄｕｔｙ ｌ＋Ｄｔｙ ｔ
の式により線型補間計算を行って指令デューティ値基本値Ｄｔｙ ｈを演算する。つまり、線型補間計算に用いる直線の特性を、指令開口割合線型化処理値が増加傾向にあるかまたは定常状態にあるときと指令開口割合線型化処理値が減少傾向にあるときとで変更する（ヒステリシス処理を行う）ことで、指令開口割合線型化処理値が同じであっても、指令開口割合線型化処理値が増加傾向（または定常状態）にあるときのほうが、減少傾向にあるときより指令デューティ値基本値Ｄｔｙ ｈが大きくなる。
【０１６９】
ステップ１０ではもう一つのフラグｆｖｎｔ２をみる。ｆｖｎｔ２＝１（すなわち指令開口割合線型化処理値の変化がない）ときは、ステップ１１に進み、前回の制御指令デューティ値（後述する）であるＤｔｙｖｎｔn-1を通常指令デューティ値Ｄｔｙｖに入れ（デューティ値をホールドし）、ｆｖｎｔ２＝０（すなわち開口割合が減少傾向にある）ときは、ステップ１２に進み、最新の演算値であるＤｔｙ ｈをＤｔｙｖとする。
【０１７０】
ステップ１３では動作確認制御処理を行う。この処理については図４６のフローより説明する。図４６において、ステップ１で通常指令デューティ値Ｄｔｙｖ、エンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌ、水温Ｔｗを読み込む。
【０１７１】
動作確認制御に入るための条件判定は、ステップ２、３、４、５の内容を一つずつチェックすることにより行い、各項目のすべてが満たされたときにさらに制御実行までの時間の計測に入る。すなわち、
ステップ２：Ｑｓｏｌが所定値ＱＳＯＬＤＩＺ＃未満（つまり燃料カット時）である、
ステップ３：Ｎｅが所定値ＮＥＤＩＺ＃未満（つまり中回転速度域）である、
ステップ４：Ｔｗが所定値ＴＷＤＩＺ＃未満（つまり暖機完了前）である、
ステップ５：動作確認制御済みフラグｆｄｉｚ＝０である（まだ動作確認制御を行っていない）、
とき、ステップ６で動作確認制御カウンタＣｔｒｄｉｚをインクリメントする。
【０１７２】
ステップ７ではこの動作確認制御カウンタと所定値ＣＴＲＤＩＺＨ＃、ＣＴＲＤＩＺＬ＃を比較する。ここで、所定値ＣＴＲＤＩＺＬ＃、ＣＴＲＤＩＺＨ＃は動作確認制御カウンタの下限リミット、上限リミットをそれぞれ定めるもので、ＣＴＲＤＩＺＬ＃はたとえば２秒程度、ＣＴＲＤＩＺＨ＃はたとえば７秒程度の値である。したがって、動作確認制御カウンタが下限リミットであるＣＴＲＤＩＺＬ＃と一致したタイミングより、動作確認制御カウンタが上限リミットであるＣＴＲＤＩＺＨ＃未満であるあいだ、ステップ９に進み、動作確認制御指令デューティ値を設定する。つまり、ＣＴＲＤＩＺＨ＃−ＣＴＲＤＩＺＬ＃が動作確認制御実行時間となる。
【０１７３】
動作確認制御指令デューティ値の設定については図４７のフローにより説明する。図４７においてステップ１で動作確認制御カウンタＣｔｒｄｉｚ、エンジン回転速度Ｎｅを読み込み、ステップ２においてＣｔｒｄｉｚ−ＣＴＲＤＩＺＬ＃（≧０）よりたとえば図４８を内容とするテーブルを検索することにより制御パターンＤｕｔｙ ｐｕを設定する。これは、短い周期で可変ノズル５３を全閉位置と全開位置とに動かすものである。
【０１７４】
ステップ３では、エンジン回転速度Ｎｅからたとえば図４９を内容とするテーブルを検索することによりデューティ値Ｄｕｔｙ ｐ ｎｅを設定し、このＤｕｔｙ ｐ ｎｅにステップ４において上記の制御パターンＤｕｔｙ ｐｕを乗じた値を制御指令デューティ値Ｄｔｙｖｎｔとして演算する。図４９のように、制御パターンＤｕｔｙ ｐｕに乗じるデューティ値Ｄｕｔｙ ｐ ｎｅをエンジン回転速度Ｎｅに応じた値としている。これは、エンジン回転速度により可変ノズル５３の開閉動作を確認するデューティの指令値が異なることを想定したものである。たとえば、可変ノズル５３は排気圧に抗して閉じる必要があるが、その排気圧は高回転になるほど高くなるので、これに対応してデューティの指令値を大きくしている。また、さらに高回転側では当制御による悪影響を受けないようにその値を下げるようにしている。
【０１７５】
図４６に戻り、動作確認制御カウンタが下限リミットとしてのＣＴＲＤＩＺＬ＃未満のときは、ステップ８よりステップ１５に進み、通常指令デューティ値Ｄｔｙｖを制御指令デューティ値Ｄｔｙｖｎｔとする。
【０１７６】
また、動作確認制御カウンタが上限リミットとしてのＣＴＲＤＩＺＨ＃以上になると、ステップ７よりステップ１０に進み、前回の動作確認制御カウンタであるＣｔｒｄｉｚn-1と上限リミットとしてのＣＴＲＤＩＺＨ＃を比較する。Ｃｔｒｄｉｚn-1＜ＣＴＲＤＩＺＨ＃であれば、動作確認制御カウンタが上限リミットとしてのＣＴＲＤＩＺＨ＃以上になった直後と判断し、動作確認制御を終了するため、ステップ１１で制御指令デューティ値Ｄｔｙｖｎｔ＝０とする。これは、動作確認制御終了時に一度、可変ノズル５３を全開にして、通常制御時の制御精度を確保するためである。ステップ１２では、動作確認制御済みフラグｆｄｉｚ＝１として、今回の処理を終了する。このフラグｆｄｉｚ＝１により、次回以降ステップ６以降に進むことができないので、エンジンを始動した後に動作確認制御が２度行われることはない。
【０１７７】
動作確認制御カウンタが上限リミットとしてのＣＴＲＤＩＺＨ＃以上になった直後でないときは、ステップ１０よりステップ１４に進み、次回に備えるため動作確認制御カウンタＣｔｒｄｉｚ＝０とした後、ステップ１５の処理を実行する。
【０１７８】
一方、Ｑｓｏｌが所定値ＱＳＯＬＤＩＺ＃以上（燃料カット時でない）であるとき、Ｎｅが所定値ＮＥＤＩＺ＃以上（高回転速度域）であるとき、Ｔｗが所定値ＴＷＤＩＺ＃以上（暖機完了後）であるときは動作確認制御を禁止するため、ステップ２、３、４よりステップ１３に進み、フラグｆｄｉｚ＝０としたあと、ステップ１４、１５の処理を実行する。
【０１７９】
このように、特に低温時など、ターボ過給機駆動用アクチュエータの動作が不安定な場合に動作確認制御を行わせることで、可変ノズルの動きが滑らかとなり、ターボ過給機駆動用アクチュエータの動作をより確実にすることができる。
【０１８０】
以上で、図１５、図１６の説明を終了する。
【０１８１】
次に、図５０はＥＧＲ量の演算とＥＧＲ流速の演算に用いる２つのフィードバック補正係数Ｋｑａｃ００、Ｋｑａｃ０とＥＧＲ流速学習補正係数Ｋｑａｃを演算するためのもので、ＲＥＦ信号の入力毎に実行する。
【０１８２】
まず、ステップ１で目標吸入空気量ｔＱａｃ、実吸入空気量Ｑａｃ、エンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌを読み込む。ステップ２では、目標吸入空気量ｔＱａｃから
【０１８３】
【数１９】
ｔＱａｃｄ＝ｔＱａｃ×ＫＩＮ×ＫＶＯＬ×ＫＱＡ＃＋ｔＱａｃｄn-1×（１−ＫＩＮ×ＫＶＯＬ×ＫＱＡ＃）、
ただし、ＫＩＮ：体積効率相当値、
ＫＶＯＬ：ＶＥ／ＮＣ／ＶＭ、
ＶＥ：排気量、
ＮＣ：気筒数、
ＶＭ：吸気系容積、
ＫＱＡ＃：定数、
ｔＱａｃｄn-1：前回のＱａｃｄ、
の式（一次遅れの式）により目標吸入空気量遅れ処理値ｔＱａｃｄを演算する。これは、吸気系容積分の存在に伴う空気の供給遅れのために、後述する２つのフィードバック補正係数Ｋｑａｃ００、Ｋｑａｃ０や学習値Ｒｑａｃが大きくならないように遅れ処理を施したものである。
【０１８４】
ステップ３ではフィードバック関連の各種フラグを読み込む。これらの設定については図５１、図５２、図５３のフローより説明する。
【０１８５】
図５１、図５２、図５３は図５０と独立に一定時間毎（たとえば１０ｍｓ毎）に実行する。
【０１８６】
図５１はフィードバック許可フラグｆｅｆｂを設定するためのものである。ステップ１でエンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌ、実ＥＧＲ率Ｍｅｇｒｄ、水温Ｔｗを読み込む。
【０１８７】
フィードバック許可条件の判定は、ステップ２〜５、８の内容を一つずつチェックすることにより行い、各項目のすべてが満たされたときにフィードバックを許可し、一つでも反するときはフィードバックを禁止する。すなわち、
ステップ２：Ｍｅｇｒｄが所定値ＭＥＧＲＦＢ＃を超えている（つまりＥＧＲの作動域）、
ステップ３：Ｔｗが所定値ＴＷＦＢＬ＃（たとえば３０℃程度）を超えている、
ステップ４：Ｑｓｏｌが所定値ＱＳＯＬＦＢＬ＃を超えている（燃料カットしていない）、
ステップ５：Ｎｅが所定値ＮＥＦＢＬ＃を超えている（エンストになる回転速度域でない）、
ステップ８：フィードバック開始カウンタＣｔｒｆｂが所定値ＴＭＲＦＢ＃（たとえば１秒未満の値）を超えている
とき、ステップ９でフィードバックを許可するためフィードバック許可フラグｆｅｆｂ＝１とし、そうでなければステップ１０に移行し、フィードバックを禁止するためフィードバック許可フラグｆｅｆｂ＝０とする。
【０１８８】
なお、フィードバック開始カウンタはステップ２〜５の成立時にカウントアップし（ステップ６）、ステップ２〜５の不成立時にフィードバック開始カウンタをリセットする（ステップ７）。
【０１８９】
図５２は学習値反映許可フラグｆｅｌｒｎ２を設定するためのものである。ステップ１でエンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌ、実ＥＧＲ率Ｍｅｇｒｄ、水温Ｔｗを読み込む。
【０１９０】
学習値反映許可条件の判定も、ステップ２〜５、８の内容を一つずつチェックすることにより行い、各項目のすべてが満たされたときに学習値の反映を許可し、一つでも反するときは学習値の反映を禁止する。すなわち、
ステップ２：Ｍｅｇｒｄが所定値ＭＥＧＲＬＮ２＃を超えている（つまりＥＧＲの作動域）、
ステップ３：Ｔｗが所定値ＴＷＬＮＬ２＃（たとえば２０℃程度）を超えている、
ステップ４：Ｑｓｏｌが所定値ＱＳＯＬＬＮＬ２＃を超えている（燃料カットしていない）、
ステップ５：Ｎｅが所定値ＮＥＬＮＬ２＃を超えている（エンストになる回転速度域でない）、
ステップ８：学習値反映カウンタＣｔｒｌｎ２が所定値ＴＭＲＬＮ２＃（たとえば０．５秒程度）を超えている
とき、ステップ９で学習値の反映を許可するため学習値反映許可フラグｆｅｌｎ２＝１とし、そうでなければステップ１０に移行し、学習値の反映を禁止するため学習値反映許可フラグｆｅｌｎ２＝０とする。
【０１９１】
なお、学習値反映カウンタはステップ２〜５の成立時にカウントアップし（ステップ６）、ステップ２〜５の不成立時にリセットする（ステップ７）。
【０１９２】
図５３は学習許可フラグｆｅｌｒｎを設定するためのものである。ステップ１でエンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌ、実ＥＧＲ率Ｍｅｇｒｄ、水温Ｔｗを読み込む。
【０１９３】
学習許可条件の判定は、ステップ２〜７、１０の内容を一つずつチェックすることにより行い、各項目のすべてが満たされたときに学習を許可し、一つでも反するときは学習を禁止する。すなわち、
ステップ２：Ｍｅｇｒｄが所定値ＭＥＧＲＬＮ＃を超えている（つまりＥＧＲの作動域）、
ステップ３：Ｔｗが所定値ＴＷＬＮＬ＃（たとえば７０〜８０℃程度）を超えている、
ステップ４：Ｑｓｏｌが所定値ＱＳＯＬＬＮＬ＃を超えている（燃料カットしていない）、
ステップ５：Ｎｅが所定値ＮＥＬＮＬ＃を超えている（エンストになる回転速度域でない）、
ステップ６：フィードバック許可フラグｆｅｆｂ＝１である、
ステップ７：学習値反映許可フラグｆｅｌｒｎ２＝１である、
ステップ１０：学習ディレイカウンタＣｔｒｌｎが所定値ＴＭＲＬＮ＃（たとえば４秒程度）を超えている
とき、ステップ１１で学習を許可するため学習許可フラグｆｅｌｎ＝１とし、そうでなければステップ１２に移行し、学習を禁止するため学習許可フラグｆｅｌｎ＝０とする。
【０１９４】
なお、学習ディレイカウンタはステップ２〜７の成立時にカウントアップし（ステップ８）、ステップ２〜７の不成立時にリセットする（ステップ９）。
【０１９５】
図５０に戻り、このようにして設定される３つのフラグのうち、ステップ４でフィードバック許可フラグｆｅｆｂをみる。ｆｅｆｂ＝１のときはステップ５、６でＥＧＲ量のフィードバック補正係数Ｋｑａｃ００とＥＧＲ流速のフィードバック補正係数Ｋｑａｃ０を演算する。一方、ｆｅｆｂ＝０のとき（フィードバックを禁止するとき）はステップ４よりステップ７、８に進み、Ｋｑａｃ００＝１、Ｋｑａｃ０＝１とする。
【０１９６】
ここで、ＥＧＲ量フィードバック補正係数Ｋｑａｃ００の演算については図５４のフローにより、またＥＧＲ流速フィードバック補正係数Ｋｑａｃ０の演算については図５７のフローにより説明する。
【０１９７】
まず図５４（図５０のステップ５のサブルーチン）において、ステップ１で目標吸入空気量遅れ処理値ｔＱａｃｄ、実吸入空気量Ｑａｃ、エンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌ、水温Ｔｗを読み込む。
【０１９８】
ステップ２ではＮｅとＱｓｏｌからたとえば図５５を内容とするマップを検索すること等によりＥＧＲ流量の補正ゲインＧｋｆｂを、またステップ３では補正ゲインの水温補正係数ＫｇｆｂｔｗをＴｗからたとえば図５６を内容とするテーブルを検索すること等によりそれぞれ演算し、これらを用いステップ４において
【０１９９】
【数２０】
Ｋｑａｃ００＝（ｔＱａｃｄ／Ｑａｃ−１）×Ｇｋｆｂ×Ｋｇｆｂｔｗ＋１の式によりＥＧＲ量フィードバック補正係数Ｋｑａｃ００を演算する。
【０２００】
この式の右辺第１項の（ｔＱａｃｄ／Ｑａｃ−１）は目標吸入空気量遅れ処理値からの誤差割合であり、これに１を加えることで、Ｋｑａｃ００は１を中心とする値になる。数２０式は、目標吸入空気量遅れ処理値からの誤差割合に比例させてＥＧＲ量フィードバック補正係数Ｋｑａｃ００を演算するものである。
【０２０１】
次に、図５７（図５０のステップ６のサブルーチン）において、ステップ１で目標吸入空気量遅れ処理値ｔＱａｃｄ、実吸入空気量Ｑａｃ、エンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌ、水温Ｔｗを読み込む。
【０２０２】
ステップ２ではＮｅとＱｓｏｌからたとえば図５８を内容とするマップを検索すること等によりＥＧＲ流速の補正ゲインＧｋｆｂｉを、またステップ３では補正ゲインの水温補正係数ＫｇｆｂｉｔｗをＴｗからたとえば図５９を内容とするテーブルを検索すること等によりそれぞれ演算し、これらを用いステップ４において
【０２０３】
【数２１】
Ｒｑａｃ０＝（ｔＱａｃｄ／Ｑａｃ−１）×Ｇｋｆｂｉ×ｋＧｆｂｉｔｗ＋Ｒｑａｃ０n-1、
ただし、Ｒｑａｃ０n-1：前回のＲｑａｃ０、
の式により誤差割合Ｒｑａｃ０を更新し、この誤差割合Ｒｑａｃ０に対してステップ５において１を加えた値をＥＧＲ流速フィードバック補正係数Ｋｑａｃ０として算出する。
【０２０４】
これは、目標吸入空気量遅れ処理値からの誤差割合（ｔＱａｃｄ／Ｑａｃ−１）の積算値（積分値）に比例させてＥＧＲ流速フィードバック補正係数Ｋｑａｃ０を演算する（積分制御）ものである。
【０２０５】
図５５、図５８のように、補正ゲインを運転条件（Ｎｅ、Ｑｓｏｌ）に応じた値としたのは次の理由による。同じゲインでも運転条件によりハンチングを生じたり生じなかったりするので、ハンチングを生じる領域では補正ゲインを小さくするためである。図５６、図５９のように低水温のとき（暖機完了前）に値を小さくしているのは、エンジン回転の不安定な低水温域でのエンジンの安定化を図るためである。
【０２０６】
このようにしてＥＧＲ量フィードバック補正係数Ｋｑａｃ００とＥＧＲ流速フィードバック補正係数Ｋｑａｃ０の演算を終了したら、図５０に戻り、ステップ９で学習値反映許可フラグｆｅｌｒｎ２をみる。学習反映許可フラグｆｅｌｒｎ２＝１のとき（学習値の反映を許可するとき）は、ステップ１０に進み、ＮｅとＱｓｏｌよりたとえば図６０の学習マップを検索することにより誤差割合学習値Ｒｑａｃを読み出し、これに１を足した値をＥＧＲ流速学習補正係数Ｋｑａｃとして演算する。一方、学習反映許可フラグｆｅｌｒｎ２＝０のとき（学習値の反映を禁止するとき）は、ステップ９よりステップ１２に進み、ＥＧＲ流速学習補正係数Ｋｑａｃ＝１とする。
【０２０７】
続いてステップ１３では、学習許可フラグｆｅｌｒｎをみる。学習許可フラグｆｅｌｒｎ＝１であれば（学習を許可するとき）、ステップ１４に進み、ＥＧＲ流速フィードバック補正係数Ｋｑａｃ０から１を減算して誤差割合Ｒｑａｃｎとする。一方、学習許可フラグｆｅｌｒｎ＝０であるとき（学習を禁止するとき）は、ステップ１３よりステップ１５に進み、誤差割合Ｒｑａｃｎ＝０とする。
【０２０８】
このようにして求めた誤差割合Ｒｑａｃｎに基づいてステップ１６では誤差割合学習値Ｒｑａｃの更新を行う。この学習値の更新については図６１のフローにより説明する。
【０２０９】
図６１（図５０のステップ１６のサブルーチン）において、ステップ１で誤差割合Ｒｑａｃｎ、エンジン回転速度Ｎｅ、目標燃料噴射量Ｑｓｏｌを読み込む。ＮｅとＱｓｏｌからステップ２で学習速度Ｔｃｌｒｎをたとえば図６２を内容とするマップを検索すること等により演算する。ステップ３ではＮｅ、Ｑｓｏｌより上記図６０の学習マップから誤差割合学習値Ｒｑａｃを読み出す。ステップ４で
【０２１０】
【数２２】
Ｒｑａｃn＝Ｒｑａｃｎ×Ｔｃｌｒｎ＋Ｒｑａｃn-1×（１−Ｔｃｌｒｎ）、
ただし、Ｒｑａｃn：更新後の誤差割合学習値、
Ｒｑａｃn-1：更新前の誤差割合学習値（＝学習値読み出し値）、の式により加重平均処理を行い、更新後の学習値をステップ５で図６０の学習マップにストアする（更新前の値に対して更新後の値を上書きする）。
【０２１１】
図６３（図５のステップ２のサブルーチン）はＥＧＲ流速Ｃｑｅを演算するためのものである。
【０２１２】
ステップ１、２で実ＥＧＲ量Ｑｅｃ、実ＥＧＲ率Ｍｅｇｒｄ、実吸入空気量Ｑａｃ、ＥＧＲ流速フィードバック補正係数Ｋｑａｃ０、ＥＧＲ流速学習補正係数Ｋｑａｃを読み込み、ステップ３において
【０２１３】
【数２３】
Ｑｅｃ ｈ＝Ｑｅｃ×Ｋｑａｃ×Ｋｑａｃ０
の式により、Ｋｑａｃ０とＫｑａｃで実ＥＧＲ量Ｑｅｃを補正した値を補正実ＥＧＲ量Ｑｅｃ ｈとして算出し、この補正実ＥＧＲ量Ｑｅｃ ｈと実ＥＧＲ率Ｍｅｇｒｄよりステップ８において、たとえば図６４を内容とするマップを検索することにより、ＥＧＲ流速Ｃｑｅを演算する。なお、説明しなかったステップ４〜７は後述する。
【０２１４】
図６４のＥＧＲ流速の特性は、非線型性が強く運転条件に応じてＥＧＲのフィードバックの感度が相違することを示しているため、運転条件に対するフィードバック量の差が小さくなるように、ＥＧＲ流速フィードバック補正係数Ｋｑａｃ０は、流速マップの検索に用いる実ＥＧＲ量Ｑｅｃへのフィードバックとしている。
【０２１５】
ただし、図６４において特性の傾きが急になる右端に近い部分は、マップの適合誤差が生じ勝ちな領域であるため、適合誤差があると、その適合誤差の影響を受けてＥＧＲ弁開口面積Ａｅｖが変化してしまう。つまり、ＥＧＲ弁開口面積Ａｅｖを演算する式であるＡｅｖ＝Ｔｑｅｋ／ＣｑｅにおいてＣｑｅには適合誤差が生じるのであるから、これに対処するには、目標ＥＧＲ量Ｔｑｅｋに対しても流速誤差分の補正を行う必要がある。そのため新たに導入したのが上記のＥＧＲ量フィードバック補正係数Ｋｑａｃ００で、このＫｑａｃ００により図７のステップ６で目標ＥＧＲ量Ｔｑｅｋを補正している。
【０２１６】
この場合、Ｋｑａｃ００を演算する式である上記数２０式は、目標吸入空気量遅れ処理値からの誤差割合に比例させてＫｑａｃ００を演算するので、この比例制御により図６４のＥＧＲ流速マップの適合誤差に対して即座に補正できることになる。たとえば、簡単のため数２０式において、補正ゲインＧｋｆｂ＝１かつ暖機完了後で考えると、Ｋｑａｃ００＝（ｔＱａｃｄ／Ｑａｃ−１）＋１となる。この場合に、目標値としてのｔＱａｃｄより実吸入空気量Ｑａｃが小さいと、Ｋｑａｃ００が１より大きな値となり、これによってＴｑｅｃが即座に減量される。目標ＥＧＲ量が即座に減量されると、相対的に新気量（吸入空気量）が増え、これによって実吸入空気量Ｑａｃが目標値としてのｔＱａｃｄへと収束する。
【０２１７】
説明しなかった図６３のステップ４〜７はＥＧＲの作動開始時の初期値を設定する部分である。具体的には、ステップ４では補正実ＥＧＲ量Ｑｅｃ ｈと０を比較する。Ｑｅｃ ｈ＝０（つまりＥＧＲの非作動時）であるときは、ステップ５に進み、
【０２１８】
【数２４】
Ｑｅｃ ｈ＝Ｑａｃ×ＭＥＧＲＬ＃、
ただし、ＭＥＧＲＬ＃：定数、
の式により、補正実ＥＧＲ量Ｑｅｃ ｈを設定する。同様にして、ステップ６では実ＥＧＲ率Ｍｅｇｒｄと０を比較し、Ｍｅｇｒｄ＝０のときはステップ７で
【０２１９】
【数２５】
Ｍｅｇｒｄ＝ＭＥＧＲＬ＃
の式により実ＥＧＲ率Ｍｅｇｒｄを設定する。
【０２２０】
ＥＧＲ弁６の全閉時にＥＧＲ弁６を通過するＥＧＲ流速は当然のことながらゼロであるが、数２４式、数２５式はＥＧＲの作動開始時のことを考えて、流速の演算に用いるパラメータの初期値を設定する。ＭＥＧＲＬ＃の値は前述したようにたとえば０．５である。さらに述べると、運転条件によってＥＧＲの作動開始時のＥＧＲ弁前後の差圧（したがってＥＧＲ流速も）が異なるため、これに対処するものである。この場合、ＥＧＲの作動開始時のＥＧＲ弁前後の差圧は実吸入空気量Ｑａｃに関係する。そこで、数２４式によりＱａｃに比例してＱｅｃ ｈの初期値を与えることで、ＥＧＲの作動開始時のＥＧＲ流速の演算精度が向上する。
【０２２１】
ここで、本実施形態（第１、第２の２つの実施形態）の作用を説明すると、本実施形態では、目標空気過剰率Ｔｌａｍｂと実ＥＧＲ率Ｍｅｇｒｄ（ＥＧＲ装置の制御目標値）とから上記の（３１）式により目標当量比Ｔｆｂｙａが設定され、この目標当量比Ｔｆｂｙａに基づいて目標吸入空気量ｔＱａｃと最終目標噴射量Ｑｆｉｎ（目標燃料量）が演算され、これら目標吸入空気量ｔＱａｃと最終目標噴射量Ｑｆｉｎが得られるように吸入空気量と噴射量がそれぞれ制御される。すなわち、本実施形態によれば最適な空気過剰率およびＥＧＲ率が得られるように目標空気過剰率Ｔｌａｍｂと目標ＥＧＲ率Ｍｅｇｒとを運転条件に応じて予め定めておけば（空気過剰率について図２２、ＥＧＲ率について図１２参照）、空気過剰率とＥＧＲ率とが運転条件（Ｎｅ、ＱｓｏｌあるいはＭｑｄｒｖ）に応じてどのように変化しようと、過渡を含めてその変化する空気過剰率とＥＧＲ率となるように吸入空気量と噴射量が同時に制御されるので、空気過剰率とＥＧＲ率とから定まる最適な燃焼状態をトレースすることができる。
【０２２２】
この場合、図２２と図１２から定まる空気過剰率とＥＧＲ率の関係は従来装置の図７４の直線Ｍのように限定されるものでなく、両者の関係が線型の場合も含めて非線型の場合にも対応できる。
【０２２３】
また、リッチスパイクを行いたいときには、ＥＧＲ率が一定となる定常時を選んで目標空気過剰率を１．０以下の値に固定するだけで、ＥＧＲ率が一定で空気過剰率だけを変化させることができる。本実施形態は排気通路に排気中のＮＯｘをトラップする触媒を備えており、リッチスパイク許可条件（触媒のトラップしたＮＯｘを還元浄化する条件）になると、リッチスパイクを実行するので、触媒のトラップしたＮＯｘを還元浄化することができる。同様にして空気過剰率が一定でＥＧＲ率だけを変化させることも可能である。
【０２２４】
また、本実施形態では吸入空気可変装置としてターボ過給機および吸気絞り弁６０の２つを備えており、目標吸入空気量ｔＱａｃを達成するに際してはターボ過給機の制御を優先するので、不要な吸気絞りによる燃焼悪化を防止することができる。
【０２２５】
また、吸気絞り弁６０を閉じることでも（吸気絞り装置を作動させても）目標吸入空気量ｔＱａｃを達成できる場合があるものの、吸気絞り弁６０を閉じることによりポンピング仕事が増して燃費の悪化を招くことになるが、本実施形態では目標吸入空気量ｔＱａｃが過給機により制御可能な最低吸入空気量ａＱａｃ以上のとき吸気絞り弁６０を全開とし（吸気絞り装置の作動を停止し）、過給機制御により目標吸入空気量ｔＱａｃを達成するので、こうした燃費や運転性の悪化を防止できる。
【０２２６】
また、本実施形態では目標空気過剰率基本値Ｔｌａｍｂｂを、アクセル開度により定まる基本燃料噴射量Ｍｑｄｒｖ（エンジン負荷相当）に応じ、Ｍｑｄｒｖが大きくなるほど小さくなるように設定していることから（図２２参照）、ドライバーがアクセルペダルを大きく踏み込めば目標空気過剰率が小さくなってトルクが増し、この逆にドライバーがアクセルペダルを少ししか踏み込まないときには目標空気過剰率が大きくなってトルクが減少するので、運転性が悪くなることはない。
【０２２７】
また、本実施形態では低水温時に目標空気過剰率を大きくして空気量を増大させることで低温時に増大するフリクションを抑制できるとともに燃焼状態を安定させることができる。また、吸気温が高い領域で空気過剰率を大きくして空気密度が低い分の空気量を増大することで燃焼温度を下げることができ、さらに高地で空気過剰率を大きくすることで、空気密度が低くなる分の空気量を補うことができる。
【０２２８】
また、目標ＥＧＲ率Ｍｅｇｒを用いて目標当量比Ｔｆｂｙａを演算したのでは過渡時にＥＧＲガスの吸気遅れによる目標値との誤差分が生じるのであるが、本実施形態では目標ＥＧＲ率Ｍｅｇｒに遅れ処理を施した値である実ＥＧＲ率Ｍｅｇｒｄを用いて目標当量比Ｔｆｂｙａを演算するので、こうした過渡時のＥＧＲガスの吸気遅れによる目標値との誤差分が生じないようにすることができる。
【０２２９】
また、触媒のトラップしたＮＯｘを還元浄化する許可条件を定めておき、この許可条件が成立したときリッチスパイクを所定の期間実行し、リッチスパイクを終了した後は前記許可条件がいったん不成立となるまでリッチスパイクを禁止するので、燃費や排気を悪化させるリッチスパイクを不必要に行うことがない。
【０２３０】
さらに本実施形態では、図７４に示したように目標ＥＧＲ率が実ＥＧＲ率より小さい場合に、進み補正ゲインＧＫＱＥＣが小さくされる（ステップ２、３）。ここで、目標ＥＧＲ率が実ＥＧＲ率より小さい場合とは、目標ＥＧＲ率が低くなる側に変化する場合、すなわちＥＧＲ率と逆数の関係にある酸素濃度の目標値が高くなる側に変化する場合である。これを図７５（ｂ）でみると、図７５（ｂ）のうちＡ点またはＣ点からＢ点の目標値へと変化する場合である。この場合に、本実施形態では進み補正ゲインＧＫＱＥＣの減少でＥＧＲ装置によるＥＧＲ量（ＥＧＲ率ひいては酸素濃度）の応答がターボ過給機による空気過剰率の応答より遅れるため、空気過剰率のほうが酸素濃度より速く目標値に近づこうとすることから、図で下に凸の経路▲２▼または▲６▼を辿って目標値に達する。この結果、同じ条件で上に凸の経路▲１▼または▲３▼を辿る従来装置より酸素濃度が低くかつ空気過剰率が高い状態にある時間が長くなり、過渡時全体でみればＮＯｘが減るとともに燃費もよくなる。
【０２３１】
一方、目標ＥＧＲ率が実ＥＧＲ率より大きい場合、すなわち図７５（ｂ）のうちＤ点またはＥ点からＢ点の目標値へと変化する場合には、もともとターボ過給機による空気過剰率の応答がＥＧＲ装置による酸素濃度の応答より遅れるため、酸素濃度のほうが空気過剰率より速く目標値に近づこうとすることから、図で下に凸の経路▲４▼または▲５▼を辿って目標値に達する。したがって、この場合には進み補正ゲインＧＫＱＥＣを変更しなくても（図７４のステップ２、４）、酸素濃度が低くかつ空気過剰率が高い状態にある時間が長くなり、過渡時全体でＮＯｘが減るとともに燃費もよくなる。
【０２３２】
このように本実施形態では図７５（ｂ）において空気過剰率と酸素濃度の目標値がともに変化する４つのいずれの場合においても下に凸の経路▲２▼、▲６▼、▲４▼、▲５▼を辿って目標値に達するため、過渡時全体でのＮＯｘの低減と燃費向上とをともに図ることができる。
【０２３３】
また、従来装置に対して進み補正ゲインＧＫＱＥＣの変更だけで対処可能であるため、酸素濃度調整手段としてのＥＧＲ装置や空気過剰率調整手段としての過給機の構成を変更することが不要となる。
【０２３４】
また、低温予混合燃焼領域ではＮＯｘとＰＭを同時に低減できるため、過渡時のＮＯｘだけでなくＰＭも合わせて低減することが可能となる。
【０２３５】
実施形態では、運転条件の変化により酸素濃度の目標値が高い側に変化したとき、変更動作調整手段が、空気過剰率調整手段による空気過剰率の変更動作と酸素濃度調整手段による酸素濃度の変更動作のうち少なくとも一方の変更動作に要する時間を調整して、変更動作中の空気過剰率に対する酸素濃度の変化の経路を酸素濃度が低い側にする場合で説明したが、変更動作に要する時間に代えて変更動作の開始時期を用いてもかまわない。すなわち、運転条件の変化により酸素濃度の目標値が高い側に変化したとき、変更動作調整手段が、空気過剰率調整手段による空気過剰率の変更動作と酸素濃度調整手段による酸素濃度の変更動作のうち少なくとも一方の変更動作の開始時期を調整して、変更動作中の空気過剰率に対する酸素濃度の変化の経路を酸素濃度が低い側にするように構成する。
【０２３６】
実施形態では、可変ノズルの開口割合に応じて過給圧が変化するターボ過給機で説明したが、これに限られるものでなく、以下のものにも適用がある。
【０２３７】
▲１▼流量に応じて過給圧が変化する別のタイプのターボ過給機、
▲２▼ウェストゲートバルブを備える一定容量のターボ過給機、
▲３▼スーパーチャージャ、
たとえば、▲１▼のターボ過給圧に対しては当該過給機の流量可変手段の開口割合や開口面積あるいは当該過給機駆動用のアクチュエータに与える制御割合や作動割合を、▲２▼のターボ過給機に対してはウェストゲートバルブの開口割合や開口面積を、▲３▼のスーパーチャージャに対しては当該スーパーチャージャ駆動用のアクチュエータに与える制御割合や作動割合を過給機の作動目標値として用いればよい。
【０２３８】
本発明の実施形態では、熱発生のパターンが単段燃焼となる、いわゆる低温予混合燃焼を行わせる場合で説明したが、予混合燃焼の後に拡散燃焼が付加される、通常のディーゼル燃焼の場合でも、本発明を適用できることはいうまでもない。
【図面の簡単な説明】
【図１】一実施形態の制御システム図。
【図２】コモンレール式燃料噴射装置の概略構成図。
【図３】目標燃料噴射量の演算を説明するためのフローチャート。
【図４】基本燃料噴射量のマップ特性図。
【図５】ＥＧＲ弁開口面積の演算を説明するためのフローチャート。
【図６】ＥＧＲ弁開口面積に対するＥＧＲ弁駆動信号の特性図。
【図７】目標ＥＧＲ量の演算を説明するためのフローチャート。
【図８】シリンダ吸入空気量の演算を説明するためのフローチャート。
【図９】吸入空気量の検出を説明するためのフローチャート。
【図１０】エアフローメータ出力電圧に対する吸入空気量の特性図。
【図１１】目標ＥＧＲ率の演算を説明するためのフローチャート。
【図１２】基本目標ＥＧＲ率のマップ特性図。
【図１３】水温補正係数のテーブル特性図。
【図１４】完爆判定を説明するためのフローチャート。
【図１５】第１実施形態の圧力制御弁に与える制御指令デューティ値の演算を説明するためのフローチャート。
【図１６】第２実施形態の圧力制御弁に与える制御指令デューティ値の演算を説明するためのフローチャート。
【図１７】実ＥＧＲ率の演算を説明するためのフローチャート。
【図１８】コレクタ容量分の時定数相当値の演算を説明するためのフローチャート。
【図１９】体積効率相当基本値のマップ特性図。
【図２０】目標吸入空気量の演算を説明するためのフローチャート。
【図２１】目標空気過剰率の演算を説明するためのフローチャート。
【図２２】目標空気過剰率基本値のマップ特性図。
【図２３】目標空気過剰率の水温補正係数のテーブル特性図。
【図２４】実ＥＧＲ量の演算を説明するためのフローチャート。
【図２５】第１実施形態の目標開口割合の演算を説明するためのフローチャート。
【図２６】目標開口割合のマップ特性図。
【図２７】第２実施形態の目標開口割合の演算を説明するためのフローチャート。
【図２８】目標開口割合のマップ特性図。
【図２９】目標開口割合のフィードフォワード量の演算を説明するためのフローチャート。
【図３０】目標開口割合のフィードバック量の演算を説明するためのフローチャート。
【図３１】線型化処理を説明するためのフローチャート。
【図３２】線型化のテーブル特性図。
【図３３】開口面積と過給圧の関係を示す特性図。
【図３４】信号変換を説明するためのフローチャート。
【図３５】デューティ選択信号フラグの設定を説明するためのフローチャート。
【図３６】デューティ値の温度補正量の演算を説明するためのフローチャート。
【図３７】基本排気温度のマップ特性図。
【図３８】水温補正係数のテーブル特性図。
【図３９】温度補正量のテーブル特性図。
【図４０】ターボ過給機駆動用アクチュエータの温度特性図。
【図４１】可変ノズル全閉時のデューティ値のマップ特性図。
【図４２】可変ノズル全開時のデューティ値のマップ特性図。
【図４３】可変ノズル全閉時のデューティ値のマップ特性図。
【図４４】可変ノズル全開時のデューティ値のマップ特性図。
【図４５】指令開口割合線型化処理値をデューティ値に変換するときのヒステリシス図。
【図４６】動作確認制御を説明するためのフローチャート。
【図４７】動作確認制御指令デューティ値の設定を説明するためのフローチャート。
【図４８】制御パターンのテーブル特性図。
【図４９】動作確認制御時のデューティ値のテーブル特性図。
【図５０】ＥＧＲ制御の２つのフィードバック補正係数と学習補正係数の演算を説明するためのフローチャート。
【図５１】フィードバック許可フラグの設定を説明するためのフローチャート。
【図５２】学習値反映許可フラグの設定を説明するためのフローチャート。
【図５３】学習許可フラグの設定を説明するためのフローチャート。
【図５４】ＥＧＲ量フィードバック補正係数の演算を説明するためのフローチャート。
【図５５】ＥＧＲ流量の補正ゲインのマップ特性図。
【図５６】水温補正係数のテーブル特性図。
【図５７】ＥＧＲ流速フィードバック補正係数の演算を説明するためのフローチャート。
【図５８】ＥＧＲ流速の補正ゲインのマップ特性図。
【図５９】水温補正係数のテーブル特性図。
【図６０】誤差割合学習値の学習マップの表図。
【図６１】学習値の更新を説明するためのフローチャート。
【図６２】学習速度のマップ特性図。
【図６３】ＥＧＲ流速の演算を説明するためのフローチャート。
【図６４】ＥＧＲ流速のマップ特性図。
【図６５】目標空気過剰率の吸気温補正係数のテーブル特性図。
【図６６】目標空気過剰率の大気圧補正係数のテーブル特性図。
【図６７】リッチスパイク実行フラグの設定を説明するためのフローチャート。
【図６８】最終目標噴射量の設定を説明するためのフローチャート。
【図６９】吸気絞り弁開度の設定を説明するためのフローチャート。
【図７０】最低吸入空気量基本値のマップ特性図。
【図７１】最低吸入空気量の負荷補正係数のテーブル特性図。
【図７２】吸気量比のテーブル特性図。
【図７３】絞り弁開度のテーブル特性図。
【図７４】進み補正ゲインの演算を説明するためのフローチャート。
【図７５】空気過剰率と酸素濃度の目標値が変化する場合の本発明の作用を説明するための特性図。
【図７６】従来装置の説明図。
【図７７】第１の発明のクレーム対応図。
【符号の説明】
４  ＥＧＲ通路
６  ＥＧＲ弁（ＥＧＲ装置）
４１  コントロールユニット
５２  排気タービン
５３  可変ノズル
５４  圧力アクチュエータ
５５  ダイヤフラムアクチュエータ
【図１】
0004639480.tif 000005
【図２】
0004639480.tif 000006
【図３】
0004639480.tif 000007
【図４】
0004639480.tif 000008
【図５】
0004639480.tif 000009
【図６】
0004639480.tif 000010
【図７】
0004639480.tif 000011
【図８】
0004639480.tif 000012
【図９】
0004639480.tif 000013
【図１０】
0004639480.tif 000014
【図１１】
0004639480.tif 000015
【図１２】
0004639480.tif 000016
【図１３】
0004639480.tif 000017
【図１４】
0004639480.tif 000018
【図１５】
0004639480.tif 000019
【図１６】
0004639480.tif 000020
【図１７】
0004639480.tif 000021
【図１８】
0004639480.tif 000022
【図１９】
0004639480.tif 000023
【図２０】
0004639480.tif 000024
【図２１】
0004639480.tif 000025
【図２２】
0004639480.tif 000026
【図２３】
0004639480.tif 000027
【図２４】
0004639480.tif 000028
【図２５】
0004639480.tif 000029
【図２６】
0004639480.tif 000030
【図２７】
0004639480.tif 000031
【図２８】
0004639480.tif 000032
【図２９】
0004639480.tif 000033
【図３０】
0004639480.tif 000034
【図３１】
0004639480.tif 000035
【図３２】
0004639480.tif 000036
【図３３】
0004639480.tif 000037
【図３４】
0004639480.tif 000038
【図３５】
0004639480.tif 000039
【図３６】
0004639480.tif 000040
【図３７】
0004639480.tif 000041
【図３８】
0004639480.tif 000042
【図３９】
0004639480.tif 000043
【図４０】
0004639480.tif 000044
【図４１】
0004639480.tif 000045
【図４２】
0004639480.tif 000046
【図４３】
0004639480.tif 000047
【図４４】
0004639480.tif 000048
【図４５】
0004639480.tif 000049
【図４６】
0004639480.tif 000050
【図４７】
0004639480.tif 000051
【図４８】
0004639480.tif 000052
【図４９】
0004639480.tif 000053
【図５０】
0004639480.tif 000054
【図５１】
0004639480.tif 000055
【図５２】
0004639480.tif 000056
【図５３】
0004639480.tif 000057
【図５４】
0004639480.tif 000058
【図５５】
0004639480.tif 000059
【図５６】
0004639480.tif 000060
【図５７】
0004639480.tif 000061
【図５８】
0004639480.tif 000062
【図５９】
0004639480.tif 000063
【図６０】
0004639480.tif 000064
【図６１】
0004639480.tif 000065
【図６２】
0004639480.tif 000066
【図６３】
0004639480.tif 000067
【図６４】
0004639480.tif 000068
【図６５】
0004639480.tif 000069
【図６６】
0004639480.tif 000070
【図６７】
0004639480.tif 000071
【図６８】
0004639480.tif 000072
【図６９】
0004639480.tif 000073
【図７０】
0004639480.tif 000074
【図７１】
0004639480.tif 000075
【図７２】
0004639480.tif 000076
【図７３】
0004639480.tif 000077
【図７４】
0004639480.tif 000078
【図７５】
0004639480.tif 000079
【図７６】
0004639480.tif 000080
【図７７】
0004639480.tif 000081