以下、図面を参照しながら、本発明の一実施形態に係る内燃機関のEGR制御装置について説明する。図2に示すように、このEGR制御装置1は、ECU2を備えており、このECU2は、後述するように、内燃機関(以下「エンジン」という)3の運転状態に応じて、EGR制御などの各種の制御処理を実行する。
図1および図3に示すように、エンジン3は、4つの気筒3a(1つのみ図示)を有する直列4気筒ガソリンエンジンであり、車両(図示せず)に搭載されている。各気筒3aのピストン3bとシリンダヘッド3cとの間には、燃焼室3gが形成されている。
エンジン3は、気筒3aごとに設けられた一対の吸気弁4,4および一対の排気弁7,7と、吸気カムシャフト5および吸気カム6を有し、各吸気弁4を開閉駆動する吸気側動弁機構40と、排気カムシャフト8および排気カム9を有し、各排気弁7を開閉駆動する排気側動弁機構60と、燃料噴射弁10(図2参照)と、点火プラグ11(図2参照)などを備えている。
吸気弁4のステム4aは、ガイド4bに摺動自在に嵌合しており、このガイド4bは、シリンダヘッド3cに固定されている。さらに、吸気弁4は、上下のスプリングシート4c,4dを備えており、これらの間に設けられたバルブスプリング4eにより、閉弁方向に付勢されている。
また、吸気カムシャフト5および排気カムシャフト8はそれぞれ、ホルダ(図示せず)を介して、シリンダヘッド3cに回動自在に支持され、気筒3aの配列方向に沿って延びている。この吸気カムシャフト5の一端部には、吸気スプロケット(図示せず)が同軸に配置され、回転自在に設けられている。この吸気スプロケットは、タイミングチェーン(図示せず)を介してクランクシャフト3dに連結され、後述する吸気カム位相可変機構を介して吸気カムシャフト5に連結されている。以上の構成により、吸気カムシャフト5は、クランクシャフト3dが2回転するごとに1回転する。
また、吸気カム6は、吸気カムシャフト5と一体に設けられており、図示しないが、気筒3aごとに設けられた2つの低速カムと、気筒3aごとに設けられ、低速カムよりも高いカムノーズを有する1つの高速カムで構成されている。
さらに、吸気側動弁機構40は、クランクシャフト3dの回転に伴う吸気カムシャフト5の回転により、各気筒3aの吸気弁4を開閉駆動するものであり、後述するように、吸気弁4のリフトを2段階に切り換えるとともに、吸気弁4のバルブタイミングを無段階に変更する可変式の動弁機構で構成されている。なお、本実施形態では、「吸気弁4のリフト(以下「吸気リフト」という)」は、吸気弁4の最大揚程を表すものとする。
一方、排気弁7のステム7aは、ガイド7bに摺動自在に嵌合しており、このガイド7bは、シリンダヘッド3cに固定されている。さらに、排気弁7は、上下のスプリングシート7c,7dを備えており、これらの間に設けられたバルブスプリング7eにより、閉弁方向に付勢されている。
また、排気カムシャフト8の一端部には、排気スプロケット(図示せず)が同軸に配置され、回転自在に設けられている。この排気スプロケットは、タイミングチェーン(図示せず)を介してクランクシャフト3dに連結され、後述する排気カム位相可変機構を介して排気カムシャフト8に連結されている。以上の構成により、排気カムシャフト8は、クランクシャフト3dが2回転するごとに1回転する。さらに、排気カム9は、排気カムシャフト8と一体に気筒3aごとに設けられている。
さらに、排気側動弁機構60は、クランクシャフト3dの回転に伴う排気カムシャフト8の回転により、各気筒3aの排気弁7を開閉駆動するものであり、後述するように、排気弁7のリフトおよびバルブタイミングを無段階に変更する可変式の動弁機構で構成されている。なお、本実施形態では、「排気弁7のリフト(以下「排気リフト」という)」は、排気弁7の最大揚程を表すものとする。
一方、燃料噴射弁10は、気筒3aごとに設けられ、燃料を燃焼室3g内に直接、噴射するようにシリンダヘッド3cに取り付けられている。すなわち、エンジン3は直噴エンジンとして構成されている。燃料噴射弁10の開弁時間および開弁タイミングは、ECU2により、後述する燃料噴射量TOUTに基づいて制御される。
また、点火プラグ11も、気筒3aごとに設けられ、シリンダヘッド3cに取り付けられている。点火プラグ11の放電状態は、ECU2により、点火時期に応じたタイミングで燃焼室3g内の混合気を燃焼させるように制御される。
一方、エンジン3には、クランク角センサ20および水温センサ21が設けられている。このクランク角センサ20は、マグネットロータおよびMREピックアップで構成されており、クランクシャフト3dの回転に伴い、いずれもパルス信号であるCRK信号およびTDC信号をECU2に出力する。
このCRK信号は、所定クランク角(例えば10゜)ごとに出力され、ECU2は、このCRK信号に基づき、エンジン3の回転数(以下「エンジン回転数」という)NEを算出する。また、TDC信号は、各気筒3aのピストン3bが吸気行程のTDC位置よりも若干、手前の所定のクランク角位置にあることを表す信号であり、所定クランク角ごとに出力される。
さらに、水温センサ21は、エンジン3のシリンダブロック3e内を循環する冷却水の温度であるエンジン水温TWを表す検出信号を、ECU2に出力する。
一方、エンジン3の吸気管12には、上流側から順に、エアフローセンサ22およびスロットル弁機構13が設けられている。エアフローセンサ22は、吸気管12内を流れる新気の流量(以下「新気流量」という)GINを表す検出信号をECU2に出力する。
さらに、スロットル弁機構13は、スロットル弁13aおよびこれを開閉駆動するTHアクチュエータ13bなどを備えている。スロットル弁13aは、吸気管12の途中に回動自在に設けられており、当該回動に伴う開度の変化により吸気管12内の新気流量を変化させる。THアクチュエータ13bは、ECU2に接続されたモータにギヤ機構(いずれも図示せず)を組み合わせたものであり、ECU2からの後述する制御入力U_THによって駆動されることにより、スロットル弁13aの開度を変化させる。
また、吸気管12のスロットル弁機構13よりも下流側には、吸気温センサ23および吸気管内圧センサ24(いずれも図2参照)が設けられている。この吸気温センサ23は、吸気管12内を流れる空気の温度(以下「吸気温」という)TAを表す検出信号をECU2に出力する。吸気管内圧センサ24は、吸気管12内の圧力(以下「吸気管内圧」という)PBAを表す検出信号をECU2に出力する。この吸気管内圧PBAは、絶対圧として検出される。
一方、エンジン3の排気管14には、上流側から順に、LAFセンサ25および触媒装置15がそれぞれ設けられている。LAFセンサ25は、ジルコニアおよび白金電極などで構成され、理論空燃比よりもリッチなリッチ領域から極リーン領域までの広範囲な空燃比の領域において、排気管14内を流れる排ガス中の酸素濃度をリニアに検出し、それを表す検出信号をECU2に出力する。ECU2は、このLAFセンサ25の検出信号の値に基づき、排ガス中の空燃比を表す検出空燃比KACTを算出する。この場合、検出空燃比KACTは、当量比として算出される。
また、エンジン3には、排気還流機構16が設けられている。この排気還流機構16は、排気管14内の排ガスの一部を吸気管12側に還流させるものであり、吸気管12および排気管14の間に接続されたEGR管16aと、このEGR管16aを開閉するEGR制御弁16bなどで構成されている。EGR管16aの一端は、排気管14の触媒装置15よりも上流側の部分に開口し、他端は、吸気管12のスロットル弁機構13よりも下流側の部分に開口している。
また、EGR制御弁16bは、リニア電磁弁タイプのものであり、ECU2からの後述するEGRリフト制御入力U_LIFTに応じて、そのリフト(以下「EGRリフト」という)が最大値と最小値との間でリニアに変化するように構成されており、それにより、EGR管16aの開度すなわち排気還流量(以下「外部EGR量」という)を変化させる。
このEGR制御弁16bには、EGRリフトセンサ26が取り付けられており、EGRリフトセンサ26は、EGR制御弁16bの実際のEGRリフトLACTを検出し、その検出信号をECU2に出力する。ECU2は、後述するように、EGR制御弁16bを介して、EGRリフトLACTが目標EGRリフトLCMDに収束するように、外部EGR量を制御する。なお、以下の説明では、排気還流機構16により排気を還流させることを「外部EGR」という。
次に、前述した吸気側動弁機構40について説明する。この吸気側動弁機構40は、図4に示すように、吸気カムシャフト5、吸気カム6、吸気リフト切換機構41および吸気カム位相可変機構50などを備えている。
吸気リフト切換機構41は、本出願人が特開2000−227013号公報などで既に開示したものと同様に構成されているので、その詳細な説明は省略するが、ロッカアームシャフト42と、これに回動自在に取り付けられ、気筒3aごとに設けられた2つの低速ロッカアーム43,43(1つのみ図示)および高速ロッカアーム(図示せず)と、ECU2に接続された吸気リフト電磁弁44(図2参照)などを備えている。低速ロッカアーム43,43は、各気筒3aの吸気弁4,4にそれぞれ当接している。
この吸気リフト切換機構41では、ECU2からの吸気リフト制御入力U_VTECにより吸気リフト電磁弁44が制御されることによって、吸気リフト切換機構41の動作モードが低リフトモードおよび高リフトモードに切り換えられる。この低リフトモードでは、吸気カムシャフト5が回転すると、低速カムにより低速ロッカアーム43が駆動され、高速カムにより高速ロッカアームが駆動されるものの、高速ロッカアームは、吸気弁4とは無関係にロッカアームシャフト42の回りを回動する。それにより、各吸気弁4は、低速ロッカアーム43によって開閉駆動され、所定のリフトでかつ所定の開弁時間で開閉する。
一方、高リフトモードでは、高速ロッカアームが低速ロッカアーム43,43に一体に連結され、吸気カムシャフト5が回転すると、高速カムにより駆動された高速ロッカアームが回動するとともに、これと一体に低速ロッカアーム43が回動する。その結果、吸気弁4は、低速ロッカアーム43を介して高速ロッカアームにより開閉駆動され、それによって、低リフトモードと比べて、より高いリフトでかつより長い開弁時間で開閉する。なお、エンジン3が後述する圧縮着火燃焼モードで運転されるときには、吸気リフト切換機構41の動作モードが低リフトモードに設定される。
次に、吸気カム位相可変機構50について説明する。この吸気カム位相可変機構50は、吸気カムシャフト5のクランクシャフト3dに対する相対的な位相(以下「吸気カム位相」という)CAINを、進角側または遅角側に無段階に変更するものであり、吸気カムシャフト5の吸気スプロケット側の端部に設けられている。図5に示すように、吸気カム位相可変機構50は、ハウジング51、3枚羽根式のベーン52、油圧ポンプ53および吸気カム位相電磁弁54などを備えている。
このハウジング51は、吸気カムシャフト5の吸気スプロケットと一体に構成されており、周方向に等間隔に形成された3つの隔壁51aを備えている。ベーン52は、吸気カムシャフト5の吸気スプロケット側の端部に同軸に取り付けられ、吸気カムシャフト5から外方に放射状に延びるとともに、ハウジング51内に回転可能に収容されている。また、ハウジング51内には、隔壁51aとベーン52の間に、3つの進角室55および3つの遅角室56が形成されている。
油圧ポンプ53は、クランクシャフト3dに連結された機械式のものであり、クランクシャフト3dの回転に伴い、エンジン3のオイルパン3eに蓄えられた潤滑用のオイルを、油路57cを介して吸い込むとともに、これを昇圧した状態で、油路57cを介して吸気カム位相電磁弁54に供給する。
吸気カム位相電磁弁54は、スプール弁機構54aおよびソレノイド54bを組み合わせたものであり、進角油路57aおよび遅角油路57bを介して、進角室55および遅角室56にそれぞれ接続されていて、油圧ポンプ53から供給された油圧Poilを、進角油圧Padおよび遅角油圧Prtとして、進角室55および遅角室56にそれぞれ出力する。吸気カム位相電磁弁54のソレノイド54bは、ECU2からの後述する吸気位相制御入力U_CAINにより、スプール弁機構54aのスプール弁体を所定の移動範囲内で移動させることによって、進角油圧Padおよび遅角油圧Prtを変化させる。
以上の吸気カム位相可変機構50では、油圧ポンプ53の動作中、吸気カム位相電磁弁54が吸気位相制御入力U_CAINに応じて作動することにより、進角油圧Padが進角室55に、遅角油圧Prtが遅角室56にそれぞれ供給され、それにより、ベーン52とハウジング51との間の相対的な位相が進角側または遅角側に変更される。その結果、前述した吸気カム位相CAINが、所定の最遅角値と所定の最進角値との間で連続的に変化し、それにより、吸気弁4のバルブタイミングは、図6に実線で示す最遅角タイミングと、2点鎖線で示す最進角タイミングとの間で無段階に変更される。
一方、吸気カムシャフト5の吸気カム位相可変機構50と反対側の端部には、吸気カム角センサ27(図2参照)が設けられている。この吸気カム角センサ27は、例えばマグネットロータおよびMREピックアップで構成されており、吸気カムシャフト5の回転に伴い、パルス信号であるINCAM信号を所定のカム角(例えば1゜)ごとにECU2に出力する。ECU2は、このINCAM信号および前述したCRK信号に基づき、吸気カム位相CAINを算出する。
次に、前述した排気側動弁機構60について説明する。この排気側動弁機構60は、図7に示すように、排気カムシャフト8、排気カム9、排気リフト可変機構70および排気カム位相可変機構90などを備えている。
この排気リフト可変機構70は、クランクシャフト3dの回転に伴う排気カムシャフト8の回転により排気弁7を開閉駆動するとともに、排気リフトを値0と所定の最大値LEXMAX(図10参照)との間で無段階に変更するものである。図8〜9に示すように、排気リフト可変機構70は、コントロールシャフト71およびロッカアームシャフト72と、これらのシャフト71,72に気筒3aごとに設けられたロッカアーム機構73と、これらのロッカアーム機構73を同時に駆動する排気リフトアクチュエータ80などを備えている。
コントロールシャフト71は、回動軸部71a、ホルダ部71bおよび偏心軸部71cを一体に組み立てたものであり、排気カムシャフト8に沿って延び、シリンダヘッド3cに回動自在に支持されるとともに、その一端部が排気リフトアクチュエータ80に連結されている。
一方、各ロッカアーム機構73は、上下のロッカアーム74,75を組み合わせたものであり、上ロッカアーム74は、一対のリンク74a,74a、ローラ軸74b、ローラ74cおよび一対のコイルばね74d,74dを備えている。ローラ軸74bは、その両端部において、リンク74a,74aの一端部にそれぞれ回転自在に支持されている。また、ローラ74cは、このローラ軸74bに回転自在に設けられている。
また、各リンク74aの他端部は、コントロールシャフト71の偏心軸部71cに回動自在に支持されるとともに、コイルばね74dを介してホルダ部71bに連結されている。リンク74aでは、このコイルばね74dの付勢力により、ローラ74cが排気カム9のカム面に当接するとともに、ローラ74cが排気カム9のカム面のベース円部に当接しているときに、ローラ軸74bは回動軸部71aと同軸の原点位置(図7に示す位置)に保持される。
一方、下ロッカアーム75は、その一端部においてロッカアームシャフト72に回動自在に支持され、他端部にはアジャストボルト75a,75aが取り付けられており、これらのアジャストボルト75a,75aを介して、各排気弁7の上端に当接している。下ロッカアーム75は、図7に示す閉弁位置にある場合には、排気弁7を閉弁状態に保持するとともに、ロッカアームシャフト72を中心として閉弁位置から下方に回動すると、バルブスプリング7eの付勢力に抗しながら、ステム7aを下方に駆動し、排気弁7を開放する。
また、下ロッカアーム75は、上方に突出する一対の案内部75b,75bを備えている。各案内部75bは、その上面が上ロッカアーム74のローラ軸74bを案内する案内面75cになっており、バルブスプリング7eの付勢力により、この案内面75cを介してローラ軸74bに当接している。この案内面75cは、リンク74aが図7に実線で示す閉弁位置にあるときに偏心軸部71cと同心になるような、下方に凸の所定の円弧状に形成されている。また、案内部75bとローラ軸74bが互いに当接している状態では、ローラ74cは、案内部75b,75b間に位置するとともに、下ロッカアーム75に当接することなく、排気カム9のみに当接する。
一方、排気リフトアクチュエータ80は、モータおよび減速ギヤ機構(いずれも図示せず)などを組み合わせたものであり、ECU2により駆動されることによって、コントロールシャフト71をその回動軸部71aを中心として回動させる。このコントロールシャフト71の回動に伴い、リンク74aもローラ軸74bを中心として回動する。
次に、以上のように構成された排気リフト可変機構70の動作について説明する。この排気リフト可変機構70では、ECU2からの後述する排気リフト制御入力U_SAAEXにより、排気リフトアクチュエータ80が駆動されると、コントロールシャフト71が回動する。その際、ストッパ(図示せず)により、コントロールシャフト71の回動角SAAEXは所定範囲内に規制され、それにより、リンク74aの回動範囲も、例えばローラ軸74bが前述した原点位置にある場合、図7に実線で示すゼロリフト位置と2点鎖線で示す最大リフト位置との間に規制される。
このようにリンク74aがゼロリフト位置にある場合、排気カム9が回転し、そのカムノーズによりローラ74cがロッカアームシャフト72側に押されると、リンク74aは偏心軸部71cを中心として、図7の時計回りに回動する。その際、前述したように、下ロッカアーム75の案内面75cが偏心軸部71cを中心とする円弧と一致するような形状を有しているので、バルブスプリング7eの付勢力により、下ロッカアーム75は、図7に示す閉弁位置に保持される。それにより、排気リフトは値0に保持され、排気弁7は閉弁状態に保持される。
一方、リンク74aがゼロリフト位置から最大リフト位置側に回動した状態では、排気カム9の回転により、リンク74aが偏心軸部71cを中心として図7の時計回りに回動し、それに伴い、下ロッカアーム75は、バルブスプリング7eの付勢力に抗しながら、図7に示す閉弁位置から下方に回動し、排気弁7を開放する。その際、下ロッカアーム75の回動量すなわち排気リフトは、リンク74aが最大リフト位置に近い位置にあるほど、より大きくなる。
以上のように、排気弁7は、リンク74aが最大リフト位置に近い位置にあるほど、より大きなリフトで開弁する。具体的には、排気カム9の回転中、排気弁7は、リンク74aが最大リフト位置にあるときには、図10に実線で示すバルブリフト曲線に従って開弁し、排気リフトは、最大値LEXMAXになる。したがって、この排気リフト可変機構70では、排気リフトアクチュエータ80を介して、リンク74aをゼロリフト位置と最大リフト位置との間で回動させることにより、排気リフトを値0と所定の最大値LEXMAXとの間で無段階に変化させることができる。
また、排気リフト可変機構70には、回動角センサ28が設けられており(図2参照)、この回動角センサ28は、コントロールシャフト71の回動角SAAEXを検出し、それを表す検出信号をECU2に出力する。
次に、排気カム位相可変機構90について説明する。この排気カム位相可変機構90は、排気カムシャフト8のクランクシャフト3dに対する相対的な位相(以下「排気カム位相」という)CAEXを進角側または遅角側に無段階に変更するものであり、排気カムシャフト8の排気スプロケット側の端部に設けられている。
この排気カム位相可変機構90は、前述した吸気カム位相可変機構50と同様に構成されているので、その詳細な説明は省略するが、排気カム位相電磁弁91などを備えており、ECU2からの後述する排気位相制御入力U_CAEXにより排気カム位相電磁弁91が駆動されると、排気カム位相CAEXを、所定の最遅角値と所定の最進角値との間で連続的に変化させる。それにより、排気弁7のバルブタイミングは、図6に実線で示す最遅角タイミングと、2点鎖線で示す最進角タイミングとの間で無段階に変更される。
一方、排気カムシャフト8の排気カム位相可変機構90と反対側の端部には、排気カム角センサ29(図2参照)が設けられている。この排気カム角センサ29は、例えばマグネットロータおよびMREピックアップで構成されており、排気カムシャフト8の回転に伴い、パルス信号であるEXCAM信号を所定のカム角(例えば1゜)ごとにECU2に出力する。ECU2は、このEXCAM信号および前述したCRK信号に基づき、排気カム位相CAEXを算出する。
以上のように、このエンジン3では、吸気側動弁機構40により、吸気弁4のバルブタイミングを無段階に変更できるとともに、排気側動弁機構60により、排気弁7のリフトおよびバルブタイミングを無段階に変更できるので、これらの2つの動弁機構40,60によって、燃焼行程後に燃焼室3g内に残留する既燃ガスの量(以下「内部EGR量」という)を自在に変更できる。
例えば、内部EGR量は、排気リフト可変機構70により排気リフトを変更することによって、連続的に変化し、排気リフトが最大値LEXMAXのときに最小になり、値0のときに最大になる。また、内部EGR量は、排気リフトが最大値LEXMAXに制御され、かつ排気カム位相可変機構90により排気カム位相CAEXが最遅角値に制御されているときに、値0になる。なお、以下の説明では、2つの動弁機構40,60により既燃ガスを燃焼室3g内に残留させることを「内部EGR」という。
さらに、ECU2には、大気圧センサ30、アクセル開度センサ31およびスロットル弁開度センサ32が接続されている。この大気圧センサ30は、大気圧PAを検出し、それを表す検出信号をECU2に出力する。
また、アクセル開度センサ31は、アクセルペダル(図示せず)の操作量であるアクセル開度APを検出し、それを表す検出信号をECU2に出力する。さらに、スロットル弁開度センサ32は、スロットル弁13bの開度(以下「スロットル弁開度」という)THを検出し、それを表す検出信号をECU2に出力する。
ECU2は、本実施形態において、運転状態検出手段、内部EGR目標値設定手段、目標作動量設定手段、EGR制御手段、目標排気カム位相設定手段、および目標吸気カム位相設定手段を構成するものであり、CPU、RAM、ROMおよびI/Oインターフェース(いずれも図示せず)などから成るマイクロコンピュータで構成されている。ECU2は、前述した各種のセンサ20〜32の検出信号などに応じ、ROMに記憶された制御プログラムなどに従って、エンジン3の運転状態を判別するとともに、後述するように、各種の制御処理を実行する。
具体的には、ECU2は、エンジン3の運転状態に応じて、後述するように、燃料噴射制御処理、EGR制御処理、点火時期制御処理および可変機構制御処理などを実行する。これらの制御処理により、エンジン3は、所定の圧縮着火燃焼領域では、混合気を火花点火することなく圧縮自着火により燃焼させる圧縮着火燃焼モードで運転され、それ以外の火花点火燃焼領域では、混合気を火花点火により燃焼させる火花点火燃焼モードで運転される。
以下、ECU2によって実行される制御処理について説明する。図11はこの制御処理のメインフローを示している。本処理は、TDC信号の発生に同期して実行される。この処理では、まず、ステップ1(「S1」と図示。以下同じ)で、燃料噴射制御処理を実行する。この燃料噴射制御処理は、燃料噴射弁10から燃焼室3g内に噴射すべき燃料量(以下「燃料噴射量」という)TOUTを算出するものであり、その詳細については後述する。なお、以下の説明において算出される各種の値は、ECU2のRAM内に記憶されるものとする。
次いで、ステップ2で、EGR制御処理を実行する。このEGR制御処理は、排気還流機構16を介して外部EGR量を制御するための目標EGRリフトLCMDを算出するとともに、排気側動弁機構60および吸気側動弁機構40を介して内部EGR量を制御するための、目標回動角SAAEXCMD、目標排気カム位相CAEXCMDおよび目標吸気カム位相CAINCMDを算出するものであり、その詳細については後述する。
次に、ステップ3で、点火時期制御処理を実行した後、本処理を終了する。この点火時期制御処理では、その詳細については省略するが、火花点火燃焼モードでは、点火時期がエンジン負荷に応じて算出され、圧縮着火燃焼モードでは、点火時期の算出が中止される。その結果、火花点火燃焼モードでは、点火プラグ11による点火が実行される一方、圧縮着火燃焼モードでは、点火プラグ11による点火が停止される。
次に、図12を参照しながら、前述した燃料噴射制御処理について説明する。この処理では、まず、ステップ10で、エンジン回転数NEおよびアクセル開度APに応じ、図13に示すマップを検索することによって、要求トルクPMCMDを算出する。このマップでは、要求トルクPMCMDは、エンジン回転数NEが高いほど、またアクセル開度APが大きいほど、より大きな値に設定されている。これは、エンジン回転数NEが高いほど、またアクセル開度APが大きいほど、エンジン負荷がより大きくなるためである。
次いで、ステップ11に進み、基本燃料噴射量TIMを算出する。この基本燃料噴射量TIMは、具体的には図14に示すようにして算出される。
すなわち、まず、ステップ30において、吸入新気量GAIRCYL(第1吸入新気量)を算出する。この吸入新気量GAIRCYLは、気筒3a内に実際に吸入されたと推定される新気量であり、エアフローセンサ22により検出された新気流量GINおよびエンジン回転数NEなどに基づいて算出される。
次いで、ステップ31に進み、上記ステップ30で算出した吸入新気量GAIRCYLに応じ、図15に示すマップを検索することによって、第1基本燃料噴射量TIMAFMXを算出する。このマップでは、吸入新気量GAIRCYLが大きいほど、第1基本燃料噴射量TIMAFMXがより大きい値に設定されている。これは、吸入新気量GAIRCYLが大きいほど、エンジン3に要求される出力がより大きくなることによる。以上の算出方法から明らかなように、第1基本燃料噴射量TIMAFMXは、吸入新気量GAIRCYL、すなわち気筒3a内に実際に吸入される新気量に対応している。
次に、ステップ32に進み、吸気リフトフラグF_VTECが「1」であるか否かを判別する。この吸気リフトフラグF_VTECは、エンジン3の運転領域が吸気リフト切換機構41の動作モードを前述した高リフトモードに設定すべき領域にあるときに「1」にセットされ、低リフトモードに設定すべき領域にあるときに「0」にセットされる。なお、図中では、低リフトモードを「LO.MD」と表記し、高リフトモードを「HI.MD」と表記する。
ステップ32の判別結果がNOで、吸気リフト切換機構41の動作モードが低リフトモードに設定されているときには、ステップ33に進み、エンジン回転数NEおよび吸気カム位相CAINに応じ、マップ(図示せず)を検索することによって、低リフトモード用の燃料補正係数ATIを算出する。
次いで、ステップ34で、エンジン回転数NEおよび吸気カム位相CAINに応じ、マップ(図示せず)を検索することによって、低リフトモード用の燃料補正項BTIを算出する。
一方、ステップ32の判別結果がYESで、吸気リフト切換機構41の動作モードが高リフトモードに設定されているときには、ステップ35に進み、エンジン回転数NEおよび吸気カム位相CAINに応じ、マップ(図示せず)を検索することによって、高リフトモード用の燃料補正係数ATIを算出する。
次いで、ステップ36で、エンジン回転数NEおよび吸気カム位相CAINに応じ、マップ(図示せず)を検索することによって、高リフトモード用の燃料補正項BTIを算出する。
ステップ34または36に続くステップ37では、吸気管内圧および燃料補正係数の積と燃料補正項との和(PBA・ATI+BTI)を、第2基本燃料噴射量TIMBSXとして設定する。
以上の算出方法から明らかなように、この第2基本燃料噴射量TIMBSXは、エンジン回転数NEおよび吸気管内圧PBAを用い、スピードデンシティ方式によって求めた体積効率に基づく吸入新気量に対応している。また、上記のマップでは、燃料補正係数ATIおよび燃料補正項BTIはいずれも、排気リフト機構70が排気リフトを最大値LEXMAXに制御し、排気カム位相可変機構90が排気カム位相CAEXを最遅角値に制御するとともに、排気還流機構16が外部EGRを停止した基準状態にあることを前提として設定されている。したがって、第2基本燃料噴射量TIMBSXは、内部EGR量および外部EGR量がともに値0の状態で気筒3a内に吸入される新気量に対応している。
次いで、ステップ38に進み、エンジン始動フラグF_ENGSTARTが「1」であるか否かを判別する。このエンジン始動フラグF_ENGSTARTは、エンジン始動制御中すなわちクランキング中であるときに「1」に、それ以外のときに「0」にそれぞれセットされる。この判別結果がNOで、エンジン始動が終了しているときには、ステップ39に進み、基本燃料噴射量TIMを第2基本燃料噴射量TIMBSXに設定した後、本処理を終了する。
一方、ステップ38の判別結果がYESで、エンジン始動中であるときには、ステップ41で、エンジン水温TWに応じ、マップ(図示せず)を検索することによって、始動時用の基本燃料噴射量TIMSTXを算出する。次いで、ステップ41で、基本燃料噴射量TIMを始動時用の基本燃料噴射量TIMSTXに設定した後、本処理を終了する。
図12に戻り、ステップ11で以上のように基本燃料噴射量TIMを算出した後、ステップ12に進み、実新気率KEGRを算出する。この実新気率KEGRは、気筒3a内に吸入される新気量と総ガス量(新気量+内部EGR量+外部EGR量)との比率に相当するとともに、値1.0からこの実新気率KEGRを減算した値(1.0−KEGR)が、総還流ガス量(内部EGR量+外部EGR量)と総ガス量との比率すなわちEGR率に相当する。すなわち、実新気率KEGRは、EGR率をも表す。この実新気率KEGRは、具体的には図16に示すようにして算出される。
すなわち、まず、ステップ50で、次式(1)によって、実新気率KEGRの今回算出値KEGRORGを算出する。
ここで、KTAは、吸気温補正係数であり、吸気温TAに応じ、マップ(図示せず)を検索することによって算出される。この式(1)から明らかなように、今回算出値KEGRORGは、基本的に、第1基本燃料噴射量TIMAFMXと第2基本燃料噴射量TIMBSXの比として算出される。前述したように、第1基本燃料噴射量TIMAFMXは、気筒3aに実際に吸入される新気量に対応する一方、第2基本燃料噴射量TIMBSXは、内部EGR量および外部EGR量がともに値0に制御される基準状態にあるときに気筒3a内に吸入される新気量に対応するので、今回算出値KEGRORGは、今回得られた実新気率(新気量/総ガス量)に相当する。
次いで、ステップ51に進み、今回算出値KEGRORGが値1.0以上であるか否かを判別する。この判別結果がNOのときには、後述するステップ53に進む。一方、この判別結果がYESのときには、ステップ52で、今回算出値KEGRORGを値1.0に設定した後、ステップ53に進む。
ステップ51または52に続くステップ53では、RAM内に記憶されているm個の今回算出値KEGRORGのバッファ値KEGR_TMPn(n=1〜m)を更新する。具体的には、RAM内のバッファ値の各々を、燃料噴射制御における1制御サイクル分、前の値としてセットする(例えば、バッファ値の今回値KEGR_TMP1を前回値KEGR_TMP2にシフトし、前回値KEGR_TMP2を前々回値KEGR_TMP3にシフトする)とともに、ステップ51または52で算出した今回算出値KEGRORGをバッファ値の今回値KEGR_TMP1としてセットする。
次いで、ステップ54に進み、次式(2)によって、バッファ値KEGR_TMPnの移動平均値KEGR_AVEを算出する。
次に、ステップ55で、実新気率KEGRを上記ステップ54で算出した移動平均値KEGR_AVEに設定した後、本処理を終了する。
図12に戻り、ステップ12で以上のように実新気率KEGRを算出した後、ステップ13に進み、内部EGR目標値KEGRCMDINおよび外部EGR目標値KEGRCMDEXを算出する。これらの値KEGRCMDIN,KEGRCMDEXは、具体的には図17に示すようにして算出される。
すなわち、まず、ステップ60で、要求トルクPMCMDおよびエンジン回転数NEに応じ、図18に示すマップを検索することによって、実新気率KEGRの目標値KEGRCMDを算出する。
次いで、ステップ61に進み、要求トルクPMCMDおよびエンジン回転数NEに応じ、図19に示すマップを検索することによって、内部EGR割合EGRDIVINを算出する。その後、ステップ62で、外部EGR割合EGRDIVEXを、値1から内部EGR割合EGRDIVINを減算した値に設定する。
次に、ステップ63で、内部EGR割合EGRDIVINおよび目標値KEGRCMDに基づき、次式(3)によって、内部EGR目標値KEGRCMDINを算出する。すなわち、内部EGR目標値KEGRCMDINは、値1から、総EGR量における内部EGR量の割合の目標値を減算した値に相当する。言い換えれば、内部EGR目標値KEGRCMDINは、外部EGR量が値0に制御されていると仮定した場合において、内部EGR量の制御により、気筒3a内に吸入すべき新気量の割合の目標値を表し、この意味において、本発明の、総ガス量に対する内部EGR量の比率を表す内部EGR率パラメータの目標値に相当する。
次いで、ステップ64で、外部EGR割合EGRDIVEXおよび目標値KEGRCMDに基づき、次式(4)により、外部EGR目標値KEGRCMDEXを算出した後、本処理を終了する。すなわち、外部EGR目標値KEGRCMDEXは、値1から、総EGR量における外部EGR量の割合の目標値を減算した値に相当する。言い換えれば、外部EGR目標値KEGRCMDEXは、内部EGR量が値0に制御されていると仮定した場合において、外部EGR量の制御により、気筒3a内に吸入すべき新気量の割合の目標値を表し、この意味において、総ガス量に対する外部EGR量の比率を表す外部EGR率パラメータの目標値に相当する。
図12に戻り、ステップ13で以上のように2つの目標値KEGRCMDIN,KEGRCMDEXを算出した後、ステップ14に進み、目標空燃比KCMDを算出する。この目標空燃比KCMDは、具体的には図20に示すようにして算出される。
すなわち、まず、ステップ70で、要求トルクPMCMDおよびエンジン回転数NEに応じ、図21に示すマップを検索することによって、目標空燃比のマップ値KCMDMAPを算出する。
次いで、ステップ71に進み、外部EGR過小故障フラグFS_EXEGRDNが「1」であるか否かを判別する。この判別結果がYESで、EGR制御弁16bの故障により外部EGR量が過小な状態にあるときには、ステップ72に進み、目標空燃比KCMDを、マップ値と実新気率の目標値との積KCMDMAP・KEGRCMDに設定した後、本処理を終了する。
一方、ステップ71の判別結果がNOのときには、ステップ73に進み、目標空燃比KCMDをマップ値KCMDMAPに設定した後、本処理を終了する。
図12に戻り、ステップ14で以上のように目標空燃比KCMDを算出した後、ステップ15に進み、空燃比補正係数KAFを算出する。この空燃比補正係数KAFは、具体的には、以下のようにして算出される。
すなわち、空燃比フィードバック制御の実行条件が成立しているときには、空燃比補正係数KAFは、検出空燃比KACTを目標空燃比KCMDに収束させるように、図示しない所定のフィードバック制御アルゴリズム(例えば、PID制御アルゴリズムや応答指定型制御アルゴリズムなど)により算出される。一方、空燃比フィードバック制御の実行条件が不成立であるときには、空燃比補正係数KAFは、値1に設定される。
次いで、ステップ16に進み、総補正係数KTOTALおよびバッテリ電圧補正項TIVBを算出する。この総補正係数KTOTALは、各種の運転パラメータ(例えば、吸気温TA、エンジン水温TWおよび大気圧PAなど)に応じて、各種のマップ(図示せず)を検索することで、各種の補正係数を算出するとともに、これらの各種の補正係数を互いに乗算することによって算出される。また、バッテリ電圧補正項TIVBは、バッテリ電圧に応じ、マップ(図示せず)を検索することによって、算出される。
次に、ステップ17で、以上のように算出した各種の値に基づき、次式(5)によって、燃料噴射量TOUTを算出した後、本処理を終了する。以上のようにして算出した燃料噴射量TOUTに応じて、燃料噴射弁10の開弁タイミングおよび開弁時間が制御される。
次に、図22を参照しながら、前述したEGR制御処理について説明する。本処理ではまず、ステップ80において、実新気率KEGRを目標値KEGRCMDに収束させるためのフィードバック補正係数(以下「F/B補正係数」という)KEGRFBを算出する。その具体的な内容については後述するが、この処理では、F/B補正係数KEGRFBに加えて、その内部EGR用学習値KEGRREFINおよび外部EGR用学習値KEGRREFEXが算出される。
次に、図17のステップ63で求めた内部EGR割合EGRDIVINが0.5以上であるか否かを判別する(ステップ81)。この判別結果がYESのとき、すなわち内部EGR量が外部EGR量以上のときには、図17のステップ63で求めた内部EGR目標値KEGRCMDINに、上記ステップ80で算出したF/B補正係数KEGRFBを乗じた値を、補正後内部EGR率KEGRMAPINとして算出する(ステップ82)。
一方、前記ステップ81の判別結果がNOで、内部EGR量が外部EGR量よりも小さいときには、内部EGR目標値KEGRCMDINに、F/B補正係数の内部EGR用学習値KEGRREFINを乗じた値を、補正後内部EGR率KEGRMAPINとして算出する(ステップ83)。
ステップ82または83に続くステップ84では、前述した吸気リフトフラグF_VTECが「1」であるか否かを判別する。この判別結果がNOで、吸気リフト切換機構41が低リフトモードに設定されているときには、ステップ82または83で算出した補正後内部EGR率KEGRMAPINとエンジン回転数NEに応じ、図23に示すマップを検索することによって、低リフトモード用の排気リフト可変機構70の目標回動角SAAEXCMDを算出する(ステップ85)。この目標回動角SAAEXCMDは、後述するように、コントロールシャフト71の回動角SAAEXの目標値として用いられる。
次いで、ステップ86では、補正後内部EGR率KEGRMAPINおよびエンジン回転数NEに応じ、図24に示すマップを検索することによって、低リフトモード用の排気カム位相可変機構90の目標排気カム位相CAEXCMDを算出する。この目標排気カム位相CAEXCMDは、後述するように、排気カム位相可変機構90の排気カム位相CAEXの目標値として用いられる。
同様に、ステップ87では、補正後内部EGR率KEGRMAPINおよびエンジン回転数NEに応じ、図25に示すマップを検索することによって、低リフトモード用の吸気カム位相可変機構50の目標吸気カム位相CAINCMDを算出する。この目標吸気カム位相CAINCMDは、後述するように、吸気カム位相可変機構50の吸気カム位相CAINの目標値として用いられる。
一方、前記ステップ84の判別結果がYESで、吸気リフト切換機構41が高リフトモードに設定されているときには、要求トルクPMCMDおよびエンジン回転数NEに応じ、それぞれの所定のマップ(図示せず)を検索することによって、高リフトモード用の目標回動角SAAEXCMD、目標排気カム位相CAEXCMDおよび目標吸気カム位相CAINCMDを算出する(ステップ88〜90)。
前記ステップ87または90に続くステップ91では、外部EGR割合EGRDIVEXが0.5よりも大きいか否かを判別する。この判別結果がYESで、外部EGR量が内部EGR量よりも大きいときには、図17のステップ64で求めた外部EGR目標値KEGRCMDEXにF/B補正係数KEGRFBを乗じた値を、補正後外部EGR率KEGRMAPEXとして算出する(ステップ92)。
一方、上記ステップ91の判別結果がNOで、外部EGR量が内部EGR量以下のときには、外部EGR目標値KEGRCMDEXに、F/B補正係数の外部EGR用学習値KEGRREFEXを乗じた値を、補正後外部EGR率KEGRMAPEXとして算出する(ステップ93)。
次いで、ステップ94において、ステップ92または93で算出した補正後外部EGR率KEGRMAPEXと吸気管内ゲージ圧HPBGAに応じ、図26に示すマップを検索することによって、排気還流機構16の目標EGRリフトLCMDを算出し、本処理を終了する。この吸気管内ゲージ圧HPBGAは、吸気管内圧PBAおよび大気温TAに基づいて算出される。また、目標EGRリフトLCMDは、後述するように、排気還流機構16のEGRリフトLACTの目標値として用いられる。
次に、図27および図28を参照しながら、図22のステップ80で実行されるF/B補正係数KEGRFBの算出処理について説明する。本処理ではまず、ステップ100において、空燃比フィードバックフラグF_LAFFBが「0」であり、または、実新気率KEGRの目標値KEGRCMDが1.0に等しいか否かを判別する。
この判別結果がYESのとき、すなわち、LAFセンサ25の検出空燃比KACTに基づく空燃比フィードバック制御の実行中でないとき、または目標値KEGRCMDが1.0で、内部EGRおよび外部EGRがともに停止中のときには、実新気率KEGRのフィードバック制御領域にないとして、F/B補正係数KEGRFBを1.0に設定し(ステップ113)、本処理を終了する。
一方、前記ステップ100の判別結果がNOのとき、すなわち、空燃比フィードバック制御の実行中で、かつ内部EGRおよび外部EGRの少なくとも一方の実行中のときには、以下のステップ101〜106において、F/B補正係数KEGRFBをI−PDフィードバック制御アルゴリズムによって算出する。
すなわち、まずステップ101では、エンジン回転数NEおよび要求トルクPMCMDに応じ、それぞれのマップ(図示せず)を検索することによって、P項ゲインKEIPDP、I項ゲインKEIPDIおよびD項ゲインKEIPDDを算出する。
次いで、算出したP項ゲインKEIPDP、I項ゲインKEIPDIおよびD項ゲインKEIPDDを用い、次式(6)〜(8)によって、P項KEGRFB_P、I項KEGRFB_IおよびD項KEGRFB_Dをそれぞれ算出する(ステップ102〜104)。なお、式(6)および(8)のKEGRZ1は、F/B補正係数の前回値を表し、式(8)のKEGRZ2は、F/B補正係数の前々回値を表す。
次に、算出したこれらのP項KEGRFB_P、I項KEGRFB_IおよびD項KEGRFB_Dを用い、次式(9)によって、I−PD項KEGRFB_Sを算出する(ステップ105)。
次いで、このI−PD項KEGRFB_SにF/B補正係数の前回値KEGRFB_Zを加算することによって、F/B補正係数KEGRFBを算出する(ステップ106)。
次いで、F/B補正係数KEGRFBの内部EGR用学習値KEGRREFINおよび外部EGR用学習値KEGRREFEXを算出する(ステップ107)とともに、F/B補正係数KEGRFBのリミットチェックを行う(ステップ108)。これらの具体的な処理については後述する。
次に、上記ステップ107または108の処理で後述するようにして設定される、外部EGR故障フラグFS_EXEGRFAIL、外部EGR過大故障フラグFS_EXEGRO、外部EGR過小故障フラグFS_EXEGRDN、内部EGR故障フラグFS_INEGRFAIL、内部EGR過大故障フラグFS_INEGROおよび内部EGR過小故障フラグFS_INEGRDNのいずれかが「1」であるか否かを判別する(ステップ109)。
この判別結果がNOで、上記6つのフラグがいずれも「0」のときには、内部EGRおよび外部EGRがいずれも正常に行われているとして、EGR正常フラグF_EGROKを「1」にセットする(ステップ110)。
一方、ステップ109の判別結果がYESで、上記のフラグのいずれかが「1」のときには、内部EGRおよび/または外部EGRが正常に行われていないとして、EGR正常フラグF_EGROKを「0」にセットする(ステップ111)。
次いで、実新気率の前回値KEGRZ1を前々回値KEGRZ2に、実新気率KEGRを前回値KEGRZ1に、F/B補正係数KEGRFBを前回値KEGRFB_Zにそれぞれシフトし(ステップ112)、本処理を終了する。
次に、図29を参照しながら、図27のステップ107で実行される、F/B補正係数KEGRFBの内部EGR用学習値KEGRREFINおよび外部EGR用学習値KEGRREFEXの算出処理について説明する。
本処理ではまず、ステップ120において、内部EGR割合EGRDIVINが1.0に等しいか否かを判別する。この判別結果がYESのとき、すなわち内部EGRのみが実行されているときには、内部EGR用学習値KEGRREFINを、次式(10)によって算出する(ステップ121)。
ここで、KEGRREFINZは、内部EGR用学習値KEGRREFINの前回値、CREFEGRINは、値0と1.0の間に設定される所定の重み係数である。
次に、ステップ122〜126において、算出した内部EGR用学習値KEGRREFINのリミットチェック処理を行う。まず、内部EGR用学習値KEGRREFINが所定の下限値KEGRREFINLL以下であるか否かを判別し(ステップ122)、その判別結果がNOのときには、所定の上限値KEGRREFINLH以上であるか否かを判別する(ステップ123)。この判別結果がNOのとき、すなわち内部EGR用学習値KEGRREFINが、上・下限値KEGRREFINLH/L間にあるときには、内部EGRが正常に行われているとして、内部EGR故障フラグFS_INEGRFAILを「0」にセットし(ステップ124)、本処理を終了する。
一方、前記ステップ123の判別結果がYESで、KEGRREFIN≧KEGRREFINLHのときには、内部EGR用学習値KEGRREFINをこの上限値KEGRREFINLHに設定する(ステップ125)。また、内部EGRが正常に行われていないとして、内部EGR故障フラグFS_INEGRFAILを「1」にセットし(ステップ126)、本処理を終了する。
一方、前記ステップ122の判別結果がYESで、KEGRREFIN≦KEGRREFINLLのときには、内部EGR用学習値KEGRREFINをこの下限値KEGRREFINLLに設定する(ステップ127)とともに、内部EGRが正常に行われていないとして、前記ステップ126に進み、内部EGR故障フラグFS_INEGRFAILを「1」にセットする。
一方、前記ステップ120の判別結果がNOのときには、外部EGR割合EGRDIVEXが1.0に等しいか否かを判別する(ステップ128)。この判別結果がYESで、外部EGRのみが実行されているときには、外部EGR用学習値KEGRREFINを、次式(11)によって算出する(ステップ129)。
ここで、KEGRREFEXZは、外部EGR用学習値KEGRREFEXの前回値、CREFEGREXは、値0と1.0の間に設定される所定の重み係数である。
次に、ステップ130〜134において、前記ステップ122〜126と同様にして、外部EGR用学習値KEGRREFEXのリミットチェック処理を行う。まず、外部EGR用学習値KEGRREFEXが所定の下限値KEGRREFEXLL以下であるか否かを判別し(ステップ130)、その判別結果がNOのときには、所定の上限値KEGRREFEXLH以上であるか否かを判別する(ステップ131)。この判別結果がNOで、外部EGR用学習値KEGRREFEXが、上・下限値KEGRREFEXLH/L間にあるときには、外部EGRが正常に行われているとして、外部EGR故障フラグFS_EXEGRFAILを「0」にセットし(ステップ132)、本処理を終了する。
一方、前記ステップ131の判別結果がYESで、KEGRREFEX≧KEGRREFEXLHのときには、外部EGR用学習値KEGRREFEXをこの上限値KEGRREFEXLHに設定する(ステップ133)とともに、外部EGRが正常に行われていないとして、外部EGR故障フラグFS_EXEGRFAILを「1」にセットし(ステップ134)、本処理を終了する。
一方、前記ステップ130の判別結果がYESで、KEGRREFEX≦KEGRREFEXLLのときには、外部EGR用学習値KEGRREFEXをこの下限値KEGRREFEXLLに設定する(ステップ135)とともに、前記ステップ134に進み、外部EGR故障フラグFS_EXEGRFAILを「1」にセットする。
さらに、前記ステップ128の判別結果がNOで、内部EGRおよび外部EGRの双方が実行されているときには、そのまま本処理を終了する。すなわち、この場合には、内部EGR用および外部EGR用学習値KEGRREFIN,KEGRREFEXの算出は行われない。
次に、図30を参照しながら、図27のステップ108で実行されるF/B補正係数KEGRFBのリミットチェック処理について説明する。本処理ではまず、ステップ150において、F/B補正係数KEGRFBが所定の上限値KSTEPEIPDLH以上であるか否かを判別する。この判別結果がYESのときには、F/B補正係数KEGRFBをこの上限値KSTEPEIPDLHに設定する(ステップ151)とともに、過大故障判定用のカウンタ値C_STEPEPCをインクリメントする(ステップ152)。
次に、このカウンタ値C_STEPEPCが所定値STEPEPCCONT(例えば5)を超えたか否かを判別し(ステップ153)、その判別結果がNOのときには、そのまま本処理を終了する。一方、この判別結果がYESのとき、すなわち、図27のステップ106で算出したF/B補正係数KEGRFBが上限値KSTEPEIPDLH以上になった回数が、所定回数を超えたときには、EGR量が過大な状態で張り付いた過大故障が生じていると判定し、次いで、内部EGR割合EGRDIVINが0.5よりも大きいか否かを判別する(ステップ154)。
この判別結果がYESで、内部EGR量が外部EGR量よりも大きいときには、内部EGR側の故障であると判定して、内部EGR過大故障フラグFS_INEGROを「1」にセットする(ステップ155)。一方、ステップ154の判別結果がNOで、外部EGR量が内部EGR量以上であるときには、外部EGR側の故障であると判定して、外部EGR過大故障フラグFS_EXEGROを「1」にセットし(ステップ156)、本処理を終了する。
一方、前記ステップ150の判別結果がNOのときには、F/B補正係数KEGRFBが所定の下限値KSTEPEIPDLL以下であるか否かを判別する(ステップ157)。この判別結果がYESのときには、F/B補正係数KEGRFBをこの下限値KSTEPEIPDLLに設定する(ステップ158)とともに、過小故障判定用のカウンタ値C_STEPEVOをインクリメントする(ステップ159)。
次に、このカウンタ値C_STEPEVOが所定値STEPEVOCONT(例えば5)を超えたか否かを判別し(ステップ160)、その判別結果がNOのときには、そのまま本処理を終了する。一方、この判別結果がYESのとき、すなわち、F/B補正係数KEGRFBが下限値KSTEPEIPDLL以下になった回数が、所定回数を超えたときには、EGR量が過小な状態で張り付いた過小故障が生じていると判定し、次いで、内部EGR割合EGRDIVINが0.5よりも大きいか否かを判別する(ステップ161)。
この判別結果がYESで、内部EGR量が外部EGR量よりも大きいときには、内部EGR側の故障であると判定して、内部EGR過小故障フラグFS_INEGRDNを「1」にセットする(ステップ162)。一方、ステップ161の判別結果がNOで、外部EGR量が内部EGR量以上であるときには、外部EGR側の故障であると判定して、外部EGR過小故障フラグFS_EXEGRDNを「1」にセットし(ステップ163)、本処理を終了する。
また、前記ステップ157の判別結果がNOのとき、すなわちF/B補正係数KEGRFBが上・下限値KSTEPEIPDLH/Lの間にあるときには、過大・過小故障判定用のカウンタ値C_STEPEPC,C_STEPEVOを、それぞれ0にリセットし(ステップ164)、本処理を終了する。
次に、図31を参照しながら、本実施形態の6つの可変機構、すなわちスロットル弁機構13、排気還流機構16、吸気リフト切換機構41、吸気カム位相可変機構50、排気リフト可変機構70および排気カム位相可変機構90を制御する処理について説明する。この処理は、以下に述べるように、6つの可変機構をそれぞれ制御するための6つの制御入力U_VTEC,U_SAAEX,U_CAEX,U_CAIN,U_LIFT,U_THを算出するものであり、タイマ設定により所定周期(例えば10msec)で実行される。
まず、ステップ180において、可変機構故障フラグF_VDNGが「1」であるか否かを判別する。この可変機構故障フラグF_VDNGは、前述した各種の故障フラグの値などに基づき、上記の可変機構13,16,41,50,70,90の少なくとも1つが故障していると判定されたときに、「1」にセットされるものである。
このステップ180の判別結果がNOで、これらの可変機構がいずれも正常なときには、吸気リフトフラグF_VTECが「1」であるか否かを判別する(ステップ181)。この判別結果がNOで、吸気リフト切換機構41が低リフトモードに設定されているときには、吸気リフト制御入力U_VTECを0に設定する(ステップ182)。また、ステップ181の判別結果がYESで、吸気リフト切換機構41が高リフトモードに設定されているときには、吸気リフト制御入力U_VTECを高リフトモード用の所定値U_HIVTに設定する(ステップ183)。
前記ステップ182または183に続くステップ184では、前述した図22のステップ85または88で算出された目標回動角SAAEXCMDをサンプリングする。次いで、この目標回動角SAAEXCMDと回動角SAAEXに基づいて、排気リフト可変機構70を制御するための排気リフト制御入力U_SAAEXを算出する(ステップ185)。具体的には、排気リフト制御入力U_SAAEXは、回動角SAAEXが目標回動角SAAEXCMDに収束するように、所定のフィードバック制御アルゴリズム(例えばPID制御アルゴリズムや応答指定型制御アルゴリズム)によって算出される。
次に、図22のステップ86または89で算出した目標排気カム位相CAEXCMDをサンプリングする(ステップ186)。その後、上記ステップ185と同様の手法により、排気カム位相可変機構90を制御するための排気位相制御入力U_CAEXを算出する(ステップ187)。すなわち、排気位相制御入力U_CAEXは、排気カム位相CAEXが目標排気カム位相CAEXCMDに収束するように、所定のフィードバック制御アルゴリズムによって算出される。
次に、図22のステップ87または90で算出した目標吸気カム位相CAINCMDをサンプリングする(ステップ188)。その後、上記ステップ185,187と同様の手法により、吸気カム位相可変機構50を制御するための吸気位相制御入力U_CAINを算出する(ステップ189)。すなわち、吸気位相制御入力U_CAINは、吸気カム位相CAINが目標吸気カム位相CAINCMDに収束するように、所定のフィードバック制御アルゴリズムによって算出される。
次いで、図22のステップ94で算出した目標EGRリフトLCMDをサンプリングする(ステップ190)。その後、前述したステップ185,187,189と同様の手法により、EGR制御弁16bを制御するためのEGRリフト制御入力U_LIFTを算出する(ステップ191)。すなわち、EGRリフト制御入力U_LIFTは、EGRリフトLACTが目標EGRリフトLCMDに収束するように、所定のフィードバック制御アルゴリズムによって算出される。
次に、スロットル弁機構13を制御するためのTH制御入力U_THを、前述したステップ185,187,189,191と同様の手法により算出する(ステップ192)。すなわち、要求トルクPMCMDおよびエンジン回転数NEに応じ、マップ(図示せず)の検索によって、目標スロットル弁開度THCMDを算出し、スロットル弁開度THが目標スロットル弁開度THCMDに収束するように、所定のフィードバック制御アルゴリズムによって、TH制御入力U_THを算出する。このステップ192の実行の後、本処理を終了する。
一方、前述したステップ180の判別結果がYESで、前述した6つの可変機構の少なくとも1つが故障しているときには、ステップ193に進み、6つの制御入力U_VTEC,U_SAAEX,U_CAEX,U_CAIN,U_LIFTおよびU_THを、いずれも0に設定した後、本処理を終了する。このように6つの制御入力がいずれも0に設定された場合、所定の吸入空気量および排気状態が確保され、それにより、停車中は、エンジン始動やアイドル運転が可能になるとともに、走行中は低速走行を継続することが可能となる。
以上のように、本実施形態によれば、排気リフト可変機構70により排気弁7のリフトを変更することによって、内部EGRを制御するので、従来のような吸排気カム位相の変更によって吸排気弁のバルブオーバーラップを変更する場合と異なり、比較的小さな排気弁7のリフトの変化量で、内部EGR量を大きく変化させることができる。また、排気弁7に機械的に連結されたコントロールシャフト71によって、排気弁7のリフトを直接的にかつ無段階に変更するので、内部EGR量を迅速にかつ精度良く制御することができる。
さらに、検出されたエンジン回転数NEおよびアクセル開度APに応じて算出した要求トルクPMCMDとエンジン回転数NEに応じて、気筒3a内に存在する総ガス量に対する内部EGR量の比率を表す内部EGR率パラメータの目標値である内部EGR目標値KEGRCMDINを設定する(ステップ60,61,63)。また、この内部EGR目標値KEGRCMDINに応じて目標回動角SAAEXを設定する(ステップ82,83,85)とともに、この目標回動角SAAEXに基づいて、排気リフト可変機構70のコントロールシャフト71のの回動角SAAEXを制御する(ステップ184,185)。したがって、内部EGR量を、エンジン3の運転状態に応じて適切に制御することができる。また、従来のようなバルブオーバーラップ面積の演算が不要になるため、演算負荷を軽減することができる。
また、上述した排気リフト可変機構70による排気弁7のリフトの制御に加え、排気カム位相可変機構90により排気弁7の開閉タイミングを制御することによって、内部EGR量を制御する。具体的には、内部EGR目標値KEGRCMDINに応じて目標排気カム位相CAEXCMDを設定する(ステップ82,83,86)とともに、設定された目標排気カム位相CAEXCMDに基づいて排気カム位相可変機構90の排気カム位相CAEXを制御する(ステップ186,187)。このように、排気カム位相可変機構90による排気弁7の開閉タイミングの制御を併用することによって、内部EGR量のきめ細かな制御が可能になり、内部EGR量を迅速にかつより精度良く制御することができる。また、排気リフト可変機構70の制御のみを行う場合よりも、内部EGR量の制御範囲を拡大でき、必要に応じて内部EGR量を増量することができる。
さらに、上述した排気リフト可変機構70による排気弁7のリフトの制御、および排気カム位相可変機構90による排気弁7の開閉タイミングの制御に加え、吸気カム位相可変機構50により吸気弁4の開閉タイミングを制御することによって、内部EGR量を制御する。具体的には、内部EGR目標値KEGRCMDINに応じて目標吸気カム位相CAINCMDを設定する(ステップ82,83,87)とともに、設定された目標吸気カム位相CAINCMDに基づいて吸気カム位相可変機構50の吸気カム位相CAINを制御する(ステップ188,189)。このように、吸気カム位相可変機構50による吸気弁4の開閉タイミングの制御をさらに併用することによって、内部EGR量の不足を補い、必要な内部EGR量を確保することができる。また、内部EGR量のさらにきめ細かな制御が可能になり、内部EGR量をさらに精度良く制御することができる。
なお、本発明は、説明した実施形態に限定されることなく、種々の態様で実施することができる。例えば、実施形態は、排気リフト可変機構70、排気カム位相可変機構90および吸気カム位相可変機構50による内部EGRの制御に加えて、排気還流機構16による外部EGRの制御を併用した例であるが、外部EGRの制御を省略することも、さらには排気カム位相可変機構90や吸気カム位相可変機構50を省略することも、本発明の範囲内である。また、排気リフト可変機構70は、実施形態で例示したタイプに限らず、排気弁のリフトを変更できるものであれば、任意のタイプのものを採用できる。
また、実施形態では、内部EGR率パラメータの目標値として、内部EGRを実行した際の気筒3a内における総ガス量に対する新気量の比率の目標値である内部EGR目標値KEGRCMDINを用いているが、これに代えて、総ガス量に対する内部EGR量の比率の目標値を用いてもよいことはもちろんである。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。