以下、図面を参照しながら、本発明の好ましい実施形態を詳細に説明する。図2に示すように、本実施形態によるEGR制御装置1は、EGR制御を含む各種の制御を実行するためのECU2を備えており、図1に示す内燃機関(以下「エンジン」という)3に適用される。エンジン3は、車両(図示せず)に搭載されたガソリンエンジンである。エンジン3は、例えば4つの気筒3a(1つのみ図示)を有しており、各気筒3aのピストン3bとシリンダヘッド3cとの間には、燃焼室3dが形成されている。
シリンダヘッド3cには、気筒3aごとに燃料噴射弁(以下「インジェクタ」という)4および点火プラグ5(図2参照)が、燃焼室3dに臨むように取り付けられている(いずれも1つのみ図示)。このインジェクタ4の開弁タイミングおよび開弁時間は、ECU2からの駆動信号によって制御され、それにより、燃料噴射時期および燃料噴射量が制御される。また、点火プラグ5の点火時期θIGは、ECU2からの駆動信号によって制御される。
エンジン3には、ノックセンサ51が設けられている。このノックセンサ51は、圧電素子で構成され、燃焼の際の振動のレベル(以下「ノック振動レベル」という)LVKを検出し、その検出信号をECU2に出力する。
エンジン3のクランクシャフト3eには、クランク角センサ52が設けられている。クランク角センサ52は、クランクシャフト3eの回転に伴い、パルス信号であるCRK信号およびTDC信号をECU2に出力する。
CRK信号は、所定クランク角(例えば1°)ごとに出力される。ECU2は、このCRK信号に基づき、エンジン3の回転数(以下「エンジン回転数」という)NEを算出する。また、TDC信号は、各気筒3aにおいてピストン3bが吸気行程の開始時の上死点よりも若干、手前の所定のクランク角位置にあることを表す信号であり、本実施形態のようにエンジン3が4気筒の場合には、クランク角180゜ごとに出力される。
エンジン3の吸気通路6には、スロットル弁8が設けられている。スロットル弁8には、例えば直流モータで構成されたアクチュエータ8aが接続されている。スロットル弁8の開度は、アクチュエータ8aに供給される電流のデューティ比をECU2で制御することによって、変更され、それにより、吸気通路6内を流れる空気の流量が調整される。
また、排気通路7には、触媒9が設けられている。この触媒9は、例えば三元触媒で構成されており、排気通路7を流れる排ガス中のHCやCOを酸化させるとともに、NOxを還元させることによって、排ガスを浄化する。
EGR制御装置1は、外部EGR装置20および内部EGR装置30などで構成されている。外部EGR装置20は、排気通路7に排出された排ガスの一部を吸気通路6に還流させるものである。本実施形態では、この外部EGR装置20により還流する排ガスが、低温ガスに相当する。
外部EGR装置20は、吸気通路6のスロットル弁8よりも下流側と排気通路7の触媒9よりも下流側に接続されたEGR通路21と、このEGR通路21を開閉するEGR制御弁22と、EGR通路21に設けられたEGRクーラ23などで構成されている。EGRクーラ23は、水冷式のものであり、EGR制御弁22の下流側に配置されている。EGR通路21を介して吸気通路6に還流する排ガスは、EGRクーラ23を通過する際に冷却される。
EGR制御弁22は、そのリフトが連続的に変化する電磁弁で構成され、ECU2に電気的に接続されている。EGR制御弁22のリフトは、ECU2からのEGRリフト制御入力U_LEGRに応じて制御され、それにより、排ガスの還流量(以下「外部EGR量」という)GEGREXが制御される。
また、EGR制御弁22のリフト(以下「EGRリフト」という)LEGRは、EGRリフトセンサ53によって検出され、その検出信号はECU2に出力される。
内部EGR装置30は、燃焼により気筒3a内に発生した既燃ガスの一部を気筒3a内に残留させる内部EGRを実行するものである。この既燃ガスは、外部EGR装置20により還流する排ガスよりも温度が高く、本実施形態では高温ガスに相当する。
図3に示すように、内部EGR装置30は、排気カムシャフト31、排気カム32、排気カム位相可変機構33および排気リフト可変機構40などを備えている。
排気カムシャフト31は、排気スプロケットおよびタイミングチェーン(いずれも図示せず)を介して、クランクシャフト3eに連結されており、クランクシャフト3eが2回転するごとに1回転する。
排気カム位相可変機構33は、クランクシャフト3eに対する排気カムシャフト31の相対的な位相(以下「排気カム位相」という)CAEXを、無段階に変更するものである。その構成は、本出願人が特開2005−315161号公報で既に提案したものと同様であるので、以下、その概略を説明する。
排気カム位相可変機構33は、排気カムシャフト31の排気スプロケット側の端部に設けられており、電磁弁34と、これを介して油圧が供給される進角室および遅角室(いずれも図示せず)などを備えている。この電磁弁34は、ECU2に接続されており、ECU2からの位相制御入力U_CAEXに応じて、進角室および遅角室に供給する油圧を変化させることで、排気カム位相CAEXを所定の最遅角値と所定の最進角値との間で無段階に変化させる。
一方、排気カムシャフト31の排気カム位相可変機構33と反対側の端部には、カム角センサ54が設けられている。このカム角センサ54は、排気カムシャフト31の回転に伴い、パルス信号であるCAM信号を所定のカム角(例えば1゜)ごとにECU2に出力する。ECU2は、このCAM信号、およびクランク角センサ52からのCRK信号に基づき、排気カム位相CAEXを算出する。
排気リフト可変機構40は、排気弁10のリフト(以下「排気リフト」という)を値0と所定の最大リフトLEXMAX(図4参照)との間で無段階に変更するものである。その構成は、本出願人が特開2007−100522号で既に提案したものと同様であるので、以下、その概略を説明する。なお、本明細書では、排気リフトは、排気弁10の最大揚程を表すものとする。
排気リフト可変機構40は、コントロールシャフト41およびロッカアームシャフト42と、これらのシャフト41、42上に気筒3aごとに設けられたロッカアーム機構43と、これらのロッカアーム機構43を同時に駆動するアクチュエータ46(図2参照)などを備えている。
このロッカアーム機構43は、リンク44a、ローラ軸44b、ローラ44cおよびロッカアーム45などを備えている。また、アクチュエータ46は、モータおよび減速ギヤ機構(いずれも図示せず)などを組み合わせたものであり、ECU2からの後述するリフト制御入力U_SAAEXによって駆動されると、コントロールシャフト41を回動させ、それにより、リンク44aをローラ軸44bを中心として回動させる。
このリンク44aが図4に実線で示すゼロリフト位置にある場合、排気カムシャフト31の回転に伴い、排気カム32によりローラ44cがロッカアームシャフト42側に押されると、リンク44aは、コントロールシャフト41を中心として、図3の時計回りに回動する。その際、ロッカアーム45の案内面45aがコントロールシャフト41を中心とする円弧と一致するような形状を有しているので、バルブスプリングの付勢力により、ロッカアーム45は図3に示す閉弁位置に保持される。それにより、排気リフトは値0に保持され、排気弁10は閉弁状態に保持される。
一方、リンク44aがゼロリフト位置から最大リフト位置(図3の2点鎖線で示す位置)側の位置に回動し、保持されている状態では、排気カム32の回転により、リンク44aがコントロールシャフト41を中心として図3の時計回りに回動すると、ロッカアーム45は、バルブスプリングの付勢力に抗しながら、図3に示す閉弁位置から下方に回動し、排気弁10を開弁する。その際、ロッカアーム45の回動量すなわち排気リフトは、リンク44aが最大リフト位置に近い位置にあるほど、より大きくなる。
以上の構成により、排気弁10は、リンク44aが最大リフト位置に近い位置にあるほど、より大きなリフトで開弁する。より具体的には、排気カム32の回転中、排気弁10は、リンク44aが最大リフト位置にあるときには、図4に実線で示すバルブリフト曲線に従って開弁し、排気リフトは最大リフトLEXMAXになる。したがって、この排気リフト可変機構40では、アクチュエータ46を介して、リンク44aをゼロリフト位置と最大リフト位置との間で回動させることにより、排気リフトを値0と所定の最大リフトLEXMAXとの間で無段階に変化させることができる。また、前述した排気カム位相CAEXが同じ場合、排気リフトが大きいほど、排気弁10の開弁タイミングは早くなり、閉弁タイミングは遅くなる。
また、排気リフト可変機構40には、排気リフトを検出するための排気リフトセンサ55が設けられている(図2参照)。この排気リフトセンサ55は、コントロールシャフト41の回動角SAAEXを検出し、それを表す検出信号をECU2に出力する。排気リフトは、コントロールシャフト41の回動角SAAEXから一義的に定まるので、検出された回動角SAAEXは、実際の排気リフトを表す。
以上のように、このエンジン3では、内部EGR装置30により、排気弁10のバルブタイミングおよびリフトが無段階に変更され、それにより、気筒3a内に残留する既燃ガスの量(以下「内部EGR量」という)GEGRINが制御される。
また、ECU2には、アクセル開度センサ56から、車両のアクセルペダル(図示せず)の踏み込み量(以下「アクセル開度」という)APを表す検出信号が出力される。
ECU2は、I/Oインターフェース、CPU、RAMおよびROM(いずれも図示せず)などから成るマイクロコンピュータで構成されている。前述したセンサ51〜56の検出信号はそれぞれ、I/OインターフェースでA/D変換や整形がなされた後、CPUに入力される。
CPUは、これらの検出信号に応じ、ROMに記憶された制御プログラムなどに従って、点火時期θIGを制御する点火時期制御処理を実行する。具体的には、基本点火時期θBASEを、エンジン回転数NEおよび吸気圧に応じて設定するとともに、この基本点火時期θBASEに後述する補正量CIGを加算することによって、点火時期θIGを算出する。なお、吸気圧は、スロットル弁8の下流側の吸気通路6内の圧力を表す。また、CPUは、外部EGR量GEGREXおよび内部EGR量GEGRINを制御するEGR制御を実行する。
なお、本実施形態では、ECU2が、燃焼状態検出手段、温度パラメータ算出手段、比率設定手段、運転状態検出手段、目標EGR量設定手段、制御手段、ノッキング制御手段、ノッキング制御終了手段、進角量設定手段および目標総EGR量補正手段に相当する。
図5は、本発明の第1実施形態によるEGR制御処理のメインフローを示している。本処理は、TDC信号の発生に同期して実行される。本処理では、まずステップ1(「S1」と図示。以下同じ)において、ノッキング判定処理を実行する。
図6は、このノッキング判定処理のサブルーチンを示している。本処理では、まずステップ21において、ノック振動レベルLVKが所定値KREF以上であるか否かを判別する。この判別結果がNOのときには、ノッキングが発生していないと判定し、そのことを表すために、ノッキングフラグF_KNOCKを「0」にセットし(ステップ22)、本処理を終了する。
一方、ステップ21の判別結果がYESのときには、燃焼に伴う振動が大きく、ノッキングが発生していると判定し、そのことを表すために、ノッキングフラグF_KNOCKを「1」にセットし(ステップ23)、本処理を終了する。なお、以下では、ノッキングが発生していると判定されることを「ノッキングの検出」という。
図5に戻り、前記ステップ1に続くステップ2では、燃焼悪化判定処理を実行する。図7は、この燃焼悪化判定処理のサブルーチンを示している。本処理では、まずステップ31において、CRK信号に基づいて算出されたクランクシャフト3eの角速度ωの変化量Δωが、所定値ωREF以上であるか否かを判別する。この変化量Δωは、所定のクランク角(例えばTDCの発生時)における角速度ωを基準値とし、1燃焼サイクルにおける角速度ωの最大値からこの基準値を減算した値である。
このステップ31の判別結果がYESで、変化量Δωが所定値ωREF以上のときには、角速度の変化量が大きいため、失火に至る前の燃焼状態の悪化が発生していないと判定し、そのことを表すために、燃焼悪化フラグF_COMBDETを「0」にセットし(ステップ32)、本処理を終了する。
一方、ステップ31の判別結果がNOのときには、角速度の変化量が小さいため、燃焼悪化が発生していると判定し、そのことを表すために、燃焼悪化フラグF_COMBDETを「1」にセットし(ステップ33)、本処理を終了する。なお、以下では、燃焼悪化が発生していると判定されることを「燃焼悪化の検出」という。
図5に戻り、前記ステップ2に続くステップ3では、点火時期の補正量CIGを算出する。この補正量CIGは、前述した点火時期θIGを燃焼状態に応じて補正するためのものであり、その値が小さいほど、点火時期θIGはより遅角側に制御される。図8は、この補正量CIGの算出処理のサブルーチンを示している。本処理では、まずステップ41において、それまでに設定されていた補正量CIGを前回値CIGZにシフトする。なお、補正量CIGは、エンジン3の始動時に値0にリセットされる。
次に、前記ステップ32または33においてセットされた燃焼悪化フラグF_COMBDETが、「1」であるか否かを判別する(ステップ42)。この判別結果がNOのときには、前記ステップ22または23においてセットされたノッキングフラグF_KNOCKが、「1」であるか否かを判別する(ステップ43)。この判別結果がNOのとき、すなわち燃焼悪化およびノッキングがいずれも検出されていないときには、遅角量ΔIGを値0に設定する(ステップ44)。
次いで、ノッキングフラグF_KNOCKが、前回と今回の間で「1」から「0」に変化したか否かを判別する(ステップ45)。この判別結果がNOのときには、ステップ49に進む。このステップ49では、リタード復帰フラグF_RRTが「1」であるか否かを判別する。このリタード復帰フラグF_RRTは、後述するリタード復帰制御の実行中に「1」にセットされるものである。
この判別結果がNOのときには、係数KIGRを値1に設定する(ステップ50)。そして、次式(1)によって、補正量CIGを算出し(ステップ51)、本処理を終了する。この補正量CIGを前述したようにして算出された基本点火時期θBASEに加算することによって、点火時期θIGが算出される。
CIG=CIGZ×KIGR−ΔIG …(1)
前述したように、補正量CIGは、エンジン3の始動時に値0にリセットされる。また、燃焼悪化およびノッキングがいずれも検出されていないときには、前記ステップ44で遅角量ΔIGが値0に設定され、リタード復帰制御中でないときには、前記ステップ50で係数KIGRが値1に設定される。以上から、燃焼悪化およびノッキングが検出されていない場合には、リタード復帰制御中を除き、補正量CIGは、式(1)によって値0に設定される。
一方、前記ステップ43の判別結果がYESで、ノッキングが検出されているときには、遅角量ΔIGを所定値IGREF(IGREF>0)に設定する(ステップ47)とともに、リタード復帰フラグF_RRTを「0」にセットした(ステップ48)後、前記ステップ49以降を実行する。
ノッキングが検出された直後には、補正量の前回値CIGZは値0になる。また、ノッキングが検出されているときには、遅角量ΔIGは、前記ステップ47で値0よりも大きな所定値IGREFに設定される。以上から、ノッキングが検出された直後には、式(1)で算出される補正量CIGは負値になり、この負値の補正量CIGを基本点火時期θBASEに加算することによって、点火時期θIGを遅角側に制御するノッキング制御が開始される。
このノッキング制御中には、ノッキングが解消されない限り、前記ステップ43の判別結果がYESになることで、前記ステップ47〜51が繰り返し実行され、それにより、点火時期θIGは遅角量ΔIGずつ徐々に遅角側に制御される。このノッキング制御に伴い、ノック振動レベルLVKが所定値KREFを下回ると、ノッキングが解消したとして、図6のノッキング判定処理により、ノッキングフラグF_KNOCKが「0」にセットされる。これにより、ノッキングフラグF_KNOCKが前回と今回の間で「1」から「0」に変化し、前記ステップ45の判別結果がYESになる。その場合には、ノッキング制御を終了するとともに、遅角量、すなわちノッキング制御により遅角された点火時期θIGを徐々に進角側に戻すためのリタード復帰制御を実行すべく、そのことを表すために、リタード復帰フラグF_RRTを「1」にセットし(ステップ46)、前記ステップ49に進む。
このステップ46が実行された後には、前記ステップ49の判別結果がYESになり、その場合には、補正量CIGの前回値の絶対値|CIGZ|が、第1所定値CREF1以上であるか否かを判別する(ステップ52)。この判別結果がYESのときには、係数KIGRを所定値KREF(0≦KREF<1)に設定した(ステップ53)後、前記ステップ51を実行し、本処理を終了する。
以上のように、リタード復帰制御中には、前記ステップ44および53により、遅角量ΔIGが値0に、係数KIGRが1よりも小さな値にそれぞれ設定される。このため、前記ステップ49〜53が繰り返し実行されることによって、補正量の絶対値|CIG|が徐々に小さくなることで、点火時期θIGは徐々に進角側に制御される。このような制御に伴って、前回値の絶対値|CIGZ|が第1所定値CREF1を下回ると、前記ステップ52の判別結果がNOになり、その場合には、リタード復帰制御を終了すべく、そのことを表すために、リタード復帰フラグF_RRTを「0」にセットするとともに、補正量CIGを値0に設定し(ステップ54)、本処理を終了する。
また、前記ステップ42の判別結果がYESで、燃焼悪化フラグF_COMBDET=1のとき、すなわち燃焼悪化が検出されているときには、前記ステップ54を実行し、本処理を終了する。
図5に戻り、前記ステップ3に続くステップ4では、温度偏差DTEGRを算出する。この温度偏差DTEGRは、所定の基準温度に対する気筒3a内の点火直前における混合気の温度のずれの度合いを表す。また、この基準温度は、良好な燃焼状態が得られるような、点火直前の混合気の温度に設定されている。
図9は、この温度偏差DTEGRの算出処理のサブルーチンを示している。本処理では、まずステップ61において、燃焼悪化フラグF_COMBDETが「1」であるか否かを判別する。この判別結果がNOで、燃焼悪化が検出されていないときには、それまでに設定されていた温度偏差DTEGRを前回値DTEGRZにシフトする(ステップ62)。
次に、リタード復帰フラグF_RRTが「1」であるか否かを判別する(ステップ63)。この判別結果がNOで、リタード復帰制御中でないときには、本処理をそのまま終了する。
一方、前記ステップ63の判別結果がYESで、リタード復帰制御中のときには、ノッキングフラグF_KNOCKが前回と今回の間で「1」から「0」に変化したか否かを判別する(ステップ66)。この判別結果がYESで、リタード復帰制御の開始直後のときには、図8のステップ51で算出した補正量CIGに応じ、図10に示すテーブルを検索することによって、温度偏差DTEGRの補正値ΔTEGRを算出する(ステップ67)。このテーブルでは、補正値ΔTEGRは、補正量CIGが値0のときに、値0に設定され、補正量の絶対値|CIG|が大きいほど、ノッキングの発生の頻度が高かったことを表すため、より大きな値に設定されている。
次に、温度偏差DTEGRの前回値DTEGRZに補正値ΔTEGRを加算した値(=DTEGRZ+ΔTEGR)を、温度偏差DTEGRの推定値(以下「偏差推定値」という)DTESとして設定する(ステップ68)。そして、図8のステップ53で設定したリタード復帰制御中の係数KIGR、偏差推定値DTESおよび前回値DTEGRZを用い、次式(2)に従って、温度偏差DTEGRを算出し(ステップ69)、本処理を終了する。
DTEGR=(1−KIGR)×DTES+KIGR×DTEGRZ …(2)
この式(2)から明らかなように、温度偏差DTEGRは、偏差推定値DTESと前回値DTEGRZの加重平均によって算出され、係数KIGRは、この加重平均の重み係数として用いられる。以上のように、ノッキング制御を終了し、リタード復帰制御を開始する際には、ノッキング制御中に設定された補正量CIGに応じて、偏差推定値DTESを補正する。前述したように、この偏差推定値DTESは、温度偏差DTEGRの前回値DTEGRZが同じである場合、補正量の絶対値|CIG|が大きいほど、より大きな値に設定される。このため、この偏差推定値DTESを用いて算出される温度偏差DTEGRもまた、補正量の絶対値|CIG|が大きいほど、すなわちノッキング制御中に補正された点火時期θIGが遅角側にあるほど、より大きな値に設定される。
一方、前記ステップ66の判別結果がNOで、リタード復帰制御の開始直後でないときには、前記ステップ69にそのまま進む。これにより、リタード復帰制御中には、リタード復帰制御による進角側への制御の実行タイミングに同期して、温度偏差DTEGRが徐々に大きくなる。
また、前記ステップ61の判別結果がYESで、燃焼悪化が検出されているときには、ノッキングフラグF_KNOCKが「1」であるか否かを判別する(ステップ70)。この判別結果がNOで、ノッキングが検出されていないときには、気筒3a内の温度が低いとして、温度偏差DTEGRを前回値DTEGRZにシフトし(ステップ71)、この前回値DTEGRZから所定値DTREFを減算した値(=DTEGRZ−DTREF)を温度偏差DTEGRとして設定した(ステップ72)後、本処理を終了する。
また、前記ステップ61および70の判別結果がいずれもYESで、燃焼悪化およびノッキングがいずれも検出されているときには、前回値DTEGRZおよび温度偏差DTEGRをいずれも値0にリセットした(ステップ73および74)後、本処理を終了する。
図5に戻り、前記ステップ4に続くステップ5では、総EGR率目標値KEGRCMDを算出する。図11は、この総EGR率目標値KEGRCMDの算出処理を示すサブルーチンである。本処理では、まずステップ81において、それまでに設定されていた補正係数KKEGRを前回値KKEGRZにシフトする。
次に、エンジン回転数NEおよび要求トルクPMCMDに応じ、所定のマップ(図示せず)を検索することによって、総EGR率目標値KEGRCMDの基本値KEGRBを算出する(ステップ82)。この基本値KEGRBは、気筒3a内に存在する総ガス量(=新気量+GEGRIN+GEGREX)に対する、新気量の比率を表す。なお、要求トルクPMCMDは、エンジン回転数NEおよびアクセル開度APに応じて、算出される。
次いで、燃焼悪化フラグF_COMBDETが「1」であり、かつノッキングフラグF_KNOCKが「1」であるか否かを判別する(ステップ83)。この判別結果がYESのときには、気筒3a内の温度が低すぎるとも高すぎるともいえない不明な状況であるとして、補正係数KKEGRの前回値KKEGRZから所定値KREFを減算した値を、補正係数KKEGRとして設定する(ステップ86)。
次に、補正係数KKEGRが値0以上であるか否かを判別し(ステップ87)、この判別結果がYESのときには、ステップ89に直接、進む一方、ステップ87の判別結果がNOのときには、補正係数KKEGRを値0に設定(制限)した(ステップ88)後、ステップ89に進む。
このステップ89では、前記ステップ82で算出した補正係数KKEGRの基本値KEGRB、および上述したようにして設定された補正係数KKEGRを用い、次式(3)に従って、総EGR率目標値KEGRCMDを算出した後、本処理を終了する。
KEGRCMD=1−(1−KEGRB)×KKEGR …(3)
前述したように、基本値KEGRBは、総ガス量に対する新気量の比率を表すため、右辺の第2項の1−KEGRBは、総ガス量に対する、外部EGR量GERGEXと内部EGR量GEGRINとの和(総EGR量)の比率を表す。このため、式(3)によって算出される総EGR率目標値KEGRCMDは、値1から、総ガス量における総EGR量の比率を減算した値に相当し、言い換えれば、気筒3a内に吸入すべき新気量の比率に相当する。したがって、総EGR率目標値KEGRCMDは、補正係数KKEGRが小さいほど、より大きくなり、その場合には、総EGR量はより少なくなる。
一方、前記ステップ83の判別結果がNOのときには、補正量の絶対値|CIG|が前述した第1所定値CREF1よりも大きな第2所定値CREF2以上であり、かつノッキングフラグF_KNOCKが「1」であるか否かを判別する(ステップ84)。この判別結果がYESのときには、ノッキング制御による点火時期θIGの遅角制御だけではノッキングが解消されないため、総EGR量を減少させるべく、前記ステップ86以降を実行し、本処理を終了する。
また、前記ステップ84の判別結果がNOのときには、温度偏差DTEGRが所定値TREFよりも小さく、かつ燃焼悪化フラグF_COMBDETが「1」であるか否かを判別する(ステップ85)。この判別結果がYESのときには、気筒3a内の温度が低すぎると判定し、前記ステップ86以降を実行し、本処理を終了する。
一方、前記ステップ83〜85の判別結果がいずれもNOのときには、補正係数KKEGRの前回値KKEGRZに所定値KREFを加算した値を補正係数KKEGRとして設定する(ステップ90)。
次に、この補正係数KKEGRが値1以下であるか否かを判別し(ステップ91)、この判別結果がYESのときには、ステップ89を実行し、本処理を終了する。一方、ステップ91の判別結果がNOのときには、補正係数KKEGRを値1に設定(制限)した(ステップ92)後、ステップ89を実行し、本処理を終了する。
図5に戻り、前記ステップ5に続くステップ6では、総EGR量に対する外部EGR量GEGREXの比率を表す外部EGR率KEGREXを算出する。具体的には、エンジン回転数NE、要求トルクPMCMDおよび温度偏差DTEGRに応じ、図12に示すマップを検索することによって、外部EGR率KEGREXを算出する。このマップは、エンジン回転数NEごとに設定されている。このマップでは、外部EGR率KEGREXは、3つの所定の温度偏差DTEGRH,DTEGRM,DTEGRL(それぞれ例えば100度,0度,−100度)に対して設定されており、温度偏差DTEGRがこれらの温度偏差DTEGRH,DTEGRM,DTEGRLのいずれにも一致しないときには、補間演算によって求められる。このマップでは、温度偏差DTEGRH,DTEGRM,DTEGRLはいずれも、要求トルクPMCMDが大きいほど、またエンジン回転数NEが高いほど、より大きな値に設定されている。
次に、前記ステップ5および6で算出した総EGR率目標値KEGRCMDおよび外部EGR率KEGREXを用い、次式(4)に従って、外部EGR率目標値KEGREXCMDを算出する(ステップ7)。
KEGREXCMD=1−(1−KEGRCMD)×KEGREX …(4)
この外部EGR率目標値KEGREXCMDは、値1から、総EGR量における外部EGR量の比率の目標値を減算した値に相当し、言い換えれば、内部EGR量が値0に制御されていると仮定した場合において、外部EGR量の制御により、気筒3a内に吸入すべき新気量の比率の目標値に相当する。
次いで、総EGR率目標値KEGRCMDおよび外部EGR率KEGREXを用い、次式(5)に従って、内部EGR率目標値KEGRINCMDを算出する(ステップ8)。
KEGRINCMD=1−(1−KEGRCMD)×(1−KEGREX) …(5)
この式(5)の右辺の第2項の1−KEGREXは、内部EGR率であり、総EGR量に対する内部EGR量GEGRINの比率を表す。また、この内部EGR率目標値KEGRINCMDは、値1から、総EGR量における内部EGR量の比率を減算した値に相当し、言い換えれば、外部EGR量が値0に制御されていると仮定した場合において、内部EGR量の制御により、気筒3a内に吸入すべき新気量の比率に相当する。
そして、外部EGR装置20による外部EGR制御を実行する(ステップ9)とともに、内部EGR装置30による内部EGR制御を実行し(ステップ10)、本処理を終了する。
図13は、上記の外部EGR制御処理を示すサブルーチンである。本処理では、まずステップ101において、算出した外部EGR率目標値KEGREXCMDおよびエンジン回転数NEに応じ、所定のマップ(図示せず)を検索することによって、EGR制御弁22のリフトの目標となる目標EGRリフトLEGRCMDを算出する。次いで、算出した目標EGRリフトLEGRCMDと検出されたEGRリフトLEGRに応じ、EGRリフト制御入力U_LEGRを算出する(ステップ102)とともに、算出したEGRリフト制御入力U_LEGRに応じてEGR制御弁22を駆動し(ステップ103)、本処理を終了する。以上により、EGR制御弁22のリフトが目標EGRリフトLEGRCMDになるように制御され、それにより、外部EGR量GEGREXが目標値になるように制御される。
図14は、内部EGR制御処理を示すサブルーチンである。本処理では、まずステップ111において、算出した内部EGR率目標値KEGRINCMDおよびエンジン回転数NEに応じ、所定のマップ(図示せず)を検索することによって、排気カム位相CAEXの目標となる目標排気カム位相CAEXCMDを算出する。
次に、算出した目標排気カム位相CAEXCMDと検出された排気カム位相CAEXに応じ、位相制御入力U_CAEXを算出する(ステップ112)とともに、算出した位相制御入力U_CAEXに応じて電磁弁34を駆動する(ステップ113)。以上により、排気カム位相CAEXが目標排気カム位相CAEXCMDになるように制御される。
次いで、内部EGR率目標値KEGRINCMDおよび排気カム位相CAEXに応じて、コントロールシャフト41の回動角SAAEXの目標となる目標回動角SAAEXCMDを算出する(ステップ114)。次に、回動角SAAEXおよび目標回動角SAAEXCMDに応じて、リフト制御入力U_SAAEXを算出する(ステップ115)。そして、リフト制御入力U_SAAEXに応じて、アクチュエータ46を駆動する(ステップ116)。以上により、回動角SAAEXが目標回動角SAAEXCMDになるように制御される。以上のように、排気カム位相可変機構33および排気リフト可変機構40によって排気カム位相CAEXおよび回動角SAAEXを制御することによって、内部EGR量GEGRINが目標値になるように制御される。
以上のように、本実施形態によれば、ノッキングおよび燃焼悪化の発生の有無に応じて、気筒3a内の温度のずれの度合いを表す温度偏差DTEGRを算出するので、気筒3a内の実際の温度が高すぎる状況または低すぎる状況のいずれの温度状況においても、その温度状況を反映させながら、温度偏差DTEGRを精度良く算出することができる。そして、この温度偏差DTEGRに応じて設定した外部EGR率KEGREXに基づいて、外部EGR装置20および内部EGR装置30を制御する。このような制御により、気筒3a内の温度のずれの度合いに応じて、外部EGR量GEGREXおよび内部EGR量GEGRINを適切に制御することができる。その結果、ノッキングおよび燃焼悪化を抑制できるなど、良好な燃焼状態を確保でき、それにより、排ガス特性および燃費を向上させることができる。
また、ノッキング制御に伴う点火時期θIGの遅角量を表す補正量CIGに応じて温度偏差DTEGRを算出する(ステップ67〜69)とともに、この温度偏差DTEGRに応じて外部EGR率KEGREXを設定する(ステップ6)ので、ノッキングの発生度合いに応じて外部EGR量GEGREXおよび内部EGR量GEGRINを適切に制御でき、気筒3a内の温度をより適切に制御することができる。
さらに、燃焼悪化が検出されておらず、かつノッキングが検出されているとき(ステップ61:NO、ステップ66:YES)には、補正量CIGに応じて算出された温度偏差DTEGRが大きくなり、それを用いて算出された外部EGR率KEGREXも大きくなるので、より多くの低温ガスを気筒3a内に存在させ、気筒3a内の温度を十分に低下させることによって、ノッキングを抑制できる結果、良好な燃焼状態を確保することができる。
また、燃焼悪化が検出されており、かつノッキングが検出されていないとき(ステップ61:YES、ステップ70:NO)には、温度偏差DTEGRとして、その前回値DTEGRZから所定値DTREFを減算した値が用いられ、それに応じて外部EGR率KEGREXは小さな値に算出される。このため、上記のような気筒3a内の温度が低すぎる状況では、内部EGR率が大きくなるので、より多くの高温ガスを気筒3a内に存在させ、気筒3a内の温度を十分に高めることによって、良好な燃焼状態を確保することができる。
さらに、リタード復帰制御中には、点火時期θIGを徐々に進角側に制御するので、ノッキング制御の終了に伴うトルクの急激な変動を防止することができる。さらに、リタード復帰制御と温度偏差DTEGRの算出が、互いに同じ周期で実行されるので、点火時期θIGの進角側への変更に伴って外部EGR量GEGREXおよび内部EGR量GEGRINが制御される結果、安定した燃焼状態を得ながらノッキング制御を終了することができる。
また、ノッキングおよび燃焼悪化の双方が検出されているとき(ステップ83:YES)、ノッキング制御による点火時期θIGの遅角制御だけではノッキングが解消されないとき(ステップ84:YES)、または気筒3a内の温度が低すぎるとき(ステップ85:YES)には、総EGR率目標値KEGRCMDを大きな値に設定することによって、気筒3a内に存在させる総EGR量を減少させる。これにより、外部EGRおよび内部EGRによる気筒3a内の温度への影響を抑制でき、より安定した燃焼状態を得ることができる。
さらに、燃焼悪化の有無、ノッキングの有無、および温度偏差DTEGRに応じて総EGR率目標値KEGRCMDを適切に設定することができるので、それに応じて気筒3a内に低温ガスおよび高温ガスを過不足なく供給でき、安定した燃焼状態が得られるとともに、排ガス特性を向上させることができる。
図15は、本発明の第2実施形態によるEGR制御処理のメインフローを示している。この第2実施形態では、前述した第1実施形態による図5の処理と比較し、図15のステップ201の温度偏差DTEGRとステップ202の総EGR率目標値KEGRCMDの算出方法のみが異なる。すなわち、第1実施形態では、ノッキング制御による補正量CIGを用いて温度偏差DTEGRおよび総EGR率目標値を算出するのに対し、第2実施形態では、補正量CIGを用いずに温度偏差DTEGRおよび総EGR率目標値KEGRCMDを算出する。
図16は、上記の温度偏差DTEGRの算出処理を示すサブルーチンである。本処理では、まずステップ211において、それまでに設定されていた温度偏差DTEGRを前回値DTEGRZにシフトする。次に、燃焼悪化フラグF_COMBDETが「0」であり、かつノッキングフラグF_KNOCKが「1」であるか否かを判別する(ステップ212)。この判別結果がYESで、燃焼悪化が検出されておらず、かつノッキングが検出されているときには、気筒3a内の温度が高いとして、温度偏差DTEGRの前回値DTEGRZに所定値DTREFを加算した値(=DTEGRZ+DTREF)を、温度偏差DTEGRとして設定し(ステップ213)、本処理を終了する。
一方、前記ステップ212の判別結果がNOのときには、燃焼悪化フラグF_COMBDETが「1」であり、かつノッキングフラグF_KNOCKが「0」であるか否かを判別する(ステップ214)。この判別結果がYESで、燃焼悪化が検出されており、かつノッキングが検出されていないときには、気筒3a内の温度が低いとして、温度偏差DTEGRの前回値DTEGRZから所定値DTREFを減算した値(=DTEGRZ−DTREF)を、温度偏差DTEGRとして設定し(ステップ215)、本処理を終了する。
また、前記ステップ212および214がいずれもNOのとき、すなわち燃焼悪化フラグF_COMBDETおよびノッキングフラグF_KNOCKがいずれも「1」または「0」のときには、そのまま本処理を終了する。
図17は、総EGR率目標値KEGRCMDの算出処理を示すサブルーチンである。なお、以下の説明では、第1実施形態による図11の処理と同様の実行内容については、同じステップ番号を付し、その詳細な説明は省略するものとする。第1実施形態のステップ84と対比されるステップ221では、温度偏差DTEGRが第1所定値TREF1よりも大きく、かつノッキングフラグF_KNOCKが「1」であるか否かを判別する。この判別結果がYESのときには、気筒3a内の温度が高いとして、総EGR量を減少させるべく、前記ステップ86以降を実行し、本処理を終了する。
一方、ステップ221の判別結果がNOのときには、温度偏差DTEGRが第1所定値TREF1よりも小さな第2所定値TREF2よりも小さく、かつ燃焼悪化フラグF_COMBDETが「1」であるか否かを判別する(ステップ222)。この判別結果がYESのときには、気筒3a内の温度が低いとして、総EGR量を減少させるべく、前記ステップ86以降を実行し、本処理を終了する。一方、ステップ222の判別結果がNOのときには、前記ステップ90以降を実行し、本処理を終了する。
以上のように、第2実施形態によれば、燃焼悪化が検出されており、かつノッキングが検出されていないとき(ステップ214:YES)には、温度偏差DTEGRがより小さな値になるので、それに応じて、外部EGR率KEGREXもより小さな値に設定される。このため、気筒3a内の温度が低すぎるときには、内部EGR率が大きくなり、より多くの高温ガスを気筒3a内に存在させ、気筒3a内の温度を十分に高めることができる結果、良好な燃焼状態を確保することができる。
また、燃焼悪化が検出されておらず、かつノッキングが検出されているとき(ステップ212:YES)には、温度偏差DTEGRがより大きな値になるので、外部EGR率KEGREXはより大きな値に設定される。このため、気筒3a内の温度が高すぎるときには、より多くの低温ガスを気筒3a内に存在させ、気筒3a内の温度を十分に低下させることができ、それにより、良好な燃焼状態を確保することができる。
なお、本発明は、説明した実施形態に限定されることなく、種々の態様で実施することができる。例えば、実施形態では、外部EGR率目標値KEGREXCMDおよび内部EGR率目標値KEGRINCMDの算出を、総EGR率目標値KEGRCMDを算出するとともに、この総EGR率目標値KEGRCMDに外部EGR率KEGREXを乗算することによって行っているが、それらの算出方法はこれに限らず、例えば算出した外部EGR率目標値および内部EGR率目標値の基本値を外部EGR率に応じて補正することによって、外部EGR率目標値および内部EGR率目標値を算出してもよい。
また、実施形態では、低温EGR装置として外部EGR装置20を、高温EGR装置として内部EGR装置30を用いているが、これに限らず、外部EGR装置がEGRクーラおよびバイパス弁を有する場合、EGRクーラを通る排ガスを低温ガスとして用い、EGRクーラをバイパスする排ガスを高温ガスとして用いてもよい。また、外部EGR装置が長短2つのEGR通路を有する場合、長い通路を流れる排ガスを低温ガスとして用い、短い通路を流れる排ガスを高温ガスとして用いてもよい。
また、実施形態では、ノッキングの有無を、ノックセンサ51で検出したノック振動レベルLVKに応じて判定しているが、他の適当なパラメータ、例えば筒内圧センサで検出した筒内圧に応じて判定してもよい。
さらに、実施形態では、燃焼状態が悪化しているか否かを、燃焼悪化の有無に応じて検出しているが、これに代えて、あるいはこれとともに、着火遅れの有無に応じて検出してもよい。また、実施形態では、燃焼悪化の有無を、クランク角センサ52で検出した角速度ωに応じて検出しているが、他の適当なパラメータ、例えば筒内圧などに応じて算出された燃焼変動率に応じて検出してもよい。
さらに、実施形態では、内部EGR量を、排気カム位相可変機構および排気リフト可変機構の双方によって制御しているが、いずれか一方で制御してもよい。また、これらの排気カム位相可変機構および/または排気リフト可変機構に代えて、あるいはこれらとともに、吸気カムを可変する吸気カム位相可変機構および吸気弁のリフトを可変する吸気リフト可変機構の少なくとも一方によって内部EGR量を制御してもよい。また、排気弁のバルブタイミングに加えて吸気弁のバブルタイミングを制御する場合、例えば、排気弁の閉弁タイミングを早めることによって、内部EGR量を増加させる際に、吸気弁の開弁タイミングを遅らせることによって、ポンピングロスを低減するようにしてもよい。
また、実施形態では、EGR制御弁22を、EGRクーラ23の上流側に配置しているが、これに限らず、EGR制御弁22の開度に対する外部EGR量の応答性を高める観点から、下流側に配置してもよい。
さらに、実施形態は、本発明を車両に搭載されたガソリンエンジンに適用した例であるが、本発明は、これに限らず、ガソリンエンジン以外のディーゼルエンジンなどの各種のエンジンに適用してもよく、また、車両用以外のエンジン、例えば、クランク軸を鉛直に配置した船外機などのような船舶推進機用エンジンにも適用可能である。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。