以下、図面を参照しながら、本発明の一実施形態による内燃機関の制御装置について説明する。図1に示すように、制御装置1はECU2を備えており、このECU2は、後述するように、内燃機関(以下「エンジン」という)3の燃料噴射制御処理などを行う。
エンジン3は、車両(図示せず)に搭載された直列4気筒(1つのみ図示)タイプのガソリンエンジンであり、各気筒のピストン3aとシリンダヘッド3bとの間に燃焼室3cが形成されている。ピストン3aの上面の中央部には、凹部3dが形成されている。また、シリンダヘッド3bには、燃焼室3cに臨むように燃料噴射弁(以下「インジェクタ」という)4および点火プラグ5が取り付けられており、燃料は燃焼室3c内に直接、噴射される。すなわちエンジン3は、筒内噴射式のものである。
インジェクタ4は、燃焼室3cの天壁中央部に配置されており、燃料パイプ4bを介して高圧ポンプ4aに接続されている。燃料は、燃料タンク(図示せず)からこの高圧ポンプ4aで高圧に昇圧された後、レギュレータ(図示せず)で調圧された状態でインジェクタ4に供給されるとともに、インジェクタ4を介して、ピストン3aの凹部3d側に向かって噴射される。これにより、燃料は、凹部3dを含むピストン3aの上面に衝突して燃料噴流を形成する。特に、後述する成層燃焼のときには、インジェクタ4が噴射した燃料の大部分は、凹部3dに衝突して燃料噴流を形成する。また、インジェクタ4は、後述するように、ECU2からの駆動信号により、その開弁時間である燃料噴射時間および燃料噴射時期(開弁タイミングおよび閉弁タイミング)が制御される。なお、このインジェクタ4の燃料噴射時間は、気筒内に噴射される燃料量に相当するので、以下、インジェクタ4の燃料噴射時間を燃料噴射量という。
燃料パイプ4bのインジェクタ4の付近には、燃料圧センサ20が取り付けられている。この燃料圧センサ20は、インジェクタ4が噴射する燃料の燃料圧PFを検出して、その検出信号をECU2に出力する。さらに、ECU2には、燃料温センサ21から、燃料の温度(以下「燃料温」という)TFを表す検出信号が出力される。
また、点火プラグ5は、ECU2から点火時期に応じたタイミングで高電圧が加えられることによって放電し、それにより燃焼室3c内の混合気を燃焼させる。
エンジン3のクランクシャフト3eには、マグネットロータ22aが取り付けられている。このマグネットロータ22aは、MREピックアップ22bとともに、クランク角センサ22(運転状態検出手段)を構成している。クランク角センサ22は、クランクシャフト3eの回転に伴い、いずれもパルス信号であるCRK信号およびTDC信号を出力する。CRK信号は、所定のクランク角(例えば30゜)ごとに1パルスが出力される。ECU2は、このCRK信号に基づき、エンジン3の回転数(以下「エンジン回転数」という)NEを求める。TDC信号は、各気筒のピストン3aが吸気行程開始時のTDC(上死点)付近の所定クランク角度位置にあることを表す信号であり、4気筒タイプの本例では、クランク角180゜ごとに1パルスが出力される。
また、エンジン3の本体には、水温センサ23が取り付けられている。水温センサ23は、サーミスタで構成されており、エンジン3の本体内を循環する冷却水の温度であるエンジン水温TWを検出して、その検出信号をECU2に出力する。
さらに、エンジン3の吸気管12には、上流側から順に、エアフローセンサ24(運転状態検出手段)、スロットル弁機構13、スロットル弁開度センサ25および吸気管内絶対圧センサ26(運転状態検出手段)などが設けられている。
エアフローセンサ24は、熱線式エアフローメータで構成されており、スロットル弁機構13の後述するスロットル弁13aを通過する吸入空気量(以下「TH通過吸入空気量」という)GTHを表す検出信号をECU2に出力する。
スロットル弁機構13は、スロットル弁13aおよびこれを開閉駆動するアクチュエータ13bなどを備えている。スロットル弁13aは、吸気管12の途中に回動自在に設けられており、当該回動に伴う開度の変化によりTH通過吸入空気量GTHを変化させる。アクチュエータ13bは、ECU2に接続されたモータにギヤ機構(いずれも図示せず)を組み合わせたものであり、ECU2からの駆動信号によって駆動されることにより、スロットル弁13aの開度(以下「スロットル弁開度」という)THを変化させる。
スロットル弁開度センサ25は、例えばポテンショメータなどで構成され、スロットル弁開度THを検出して、その検出信号をECU2に出力する。吸気管内絶対圧センサ26は、半導体圧力センサなどで構成されており、吸気管12内の絶対圧である吸気管内絶対圧PBAを検出して、その検出信号をECU2に出力する。さらに、吸気管12には、吸気温センサ27が設けられている。吸気温センサ27は、サーミスタで構成されており、吸気管12内の吸気温TAを検出して、その検出信号をECU2に出力する。
また、エンジン3の排気管14には、触媒装置17が設けられている。この触媒装置17は、NOx触媒と3元触媒を組み合わせたものであり、このNOx触媒は、図示しないが、イリジウム触媒(イリジウムを担持した炭化ケイ素ウイスカ粉末とシリカの焼成体)をハニカム構造の基材の表面に被覆し、その上にペロブスカイト型複酸化物(LaCoO3粉末とシリカの焼成体)をさらに被覆したものである。触媒装置17は、NOx触媒による還元作用により、排気ガス中のNOxを浄化するとともに、3元触媒の酸化還元作用により、排気ガス中のCO、HCおよびNOxを浄化する。
さらに、吸気管12のスロットル弁機構13よりも下流側と、排気管14の触媒装置17よりも上流側との間には、EGR管15が接続されている。このEGR管15を介して、エンジン3の排気ガスが吸気側に再循環することによって、前記燃焼室3c内の燃焼温度を下げることにより排気ガス中のNOxを低減させるEGR動作が行われる。また、EGR管15には、EGR制御弁16が取り付けられている。EGR制御弁16は、リニア電磁弁であり、ECU2からの駆動信号に応じてそのバルブリフト量がリニアに変化し、これによってEGR管15を開閉する。また、EGR制御弁16のバルブリフト量は、バルブリフト量センサ(図示せず)によって検出され、その検出信号はECU2に出力される。
ECU2は、エンジン3の運転状態に応じてEGR制御弁16の目標バルブリフト量を算出するとともに、実際のバルブリフト量が目標バルブリフト量になるように、EGR制御弁16を制御することにより、EGR量を制御する。
さらに、排気管14の触媒装置17よりも上流側および下流側にはそれぞれ、LAFセンサ28およびO2センサ(図示せず)が設けられている。LAFセンサ28は、ジルコニアおよび白金電極などで構成され、理論空燃比よりもリッチなリッチ領域から極リーン領域までの広範囲な空燃比の領域において、排気ガス中の酸素濃度をリニアに検出し、それを表す検出信号をECU2に出力する。ECU2は、このLAFセンサ28の検出信号に基づき、排気ガス中の空燃比を表す検出空燃比KACTを算出する。なお、この検出空燃比KACTは、具体的には当量比として算出される。また、O2センサは、排気ガス中の酸素濃度を表す検出信号をECU2に出力する。
さらに、ECU2には、大気圧センサ29、アクセル開度センサ30(運転状態検出手段)および車速センサ31が接続されている。この大気圧センサ29は、半導体圧力センサで構成されており、大気圧PAを検出し、その検出信号をECU2に出力する。また、アクセル開度センサ30は、アクセルペダル(図示せず)の操作量であるアクセル開度APを検出し、その検出信号をECU2に出力する。さらに、車速センサ31は、車速VPを検出し、その検出信号をECU2に出力する。
ECU2は、CPU2a、RAM2bおよびROM2cなどからなるマイクロコンピュータで構成されている。ECU2は、前述した各種のセンサ20〜31の検出信号に応じ、ROM2cに記憶された制御プログラムなどに基づいて各種の演算処理を実行する。具体的には、上記各種の検出信号からエンジン3の運転状態を判別し、その判別結果に基づいて、エンジン3の燃焼モード(燃焼形態)を決定するとともに、決定された燃焼モードに従って、インジェクタ4の燃料噴射量および点火プラグ5の点火時期などを制御する。なお、本実施形態では、ECU2により、運転状態検出手段、要求燃料量算出手段、要求トルク算出手段、記憶手段、燃焼効率推定手段、切換時要求燃料量算出手段、および制限手段が構成されている。
上記の燃焼モードは、エンジン回転数NE、および後述するようにして算出される要求トルクPMCMDに応じて決定され、原則として、アイドル運転時などの極低負荷運転時には成層燃焼モードに、極低負荷運転時以外の運転時には均一燃焼モードにそれぞれ決定される。また、両燃焼モード間の切換時には、燃焼モードが、2回噴射燃焼モードに決定される。
上記の成層燃焼モードでは、燃料をインジェクタ4から圧縮行程中に燃焼室3c内に噴射し、噴射燃料の大部分を凹部3dに衝突させることにより燃料噴流が形成される。この燃料噴流と、吸気管12からの流入空気の流動とによって混合気が生成されるとともに、ピストン3aが圧縮行程の上死点に近い位置にあることで、混合気を点火プラグ5の付近に偏在させながら、成層燃焼が行われる。また、成層燃焼モードでの混合気の空燃比は、スロットル弁13aをほぼ全開状態に制御することにより、理論空燃比よりも極めてリーンな空燃比(例えば27〜60)に制御される。
均一燃焼モードでは、燃料を吸気行程中に燃焼室3c内に噴射し、燃料噴流と空気の流動とによって生成した混合気を燃焼室3c内に均一に分散させながら、均一燃焼が行われる。また、均一燃焼モードでの空燃比は、成層燃焼モード中のときと比較して、スロットル弁13aを小さな開度に制御することにより吸入空気量を小さくすることで、成層燃焼モードよりもリッチな空燃比(例えば12〜22)に制御される。さらに、均一燃焼モードでのEGR制御弁16の目標バルブリフト量は、成層燃焼モードの場合よりも小さな値に設定される。
さらに、2回噴射燃焼モードでは、原則として1燃焼サイクル中に燃料を間隔をあけて2回噴射し、成層燃焼モードよりもリッチな空燃比(例えば14.7〜27)で、燃焼が行われる。この場合の2回の燃料噴射は、吸気行程中と圧縮行程中に実行される。
なお、均一燃焼モードには、ストイキ燃焼モードおよびリーン燃焼モードが含まれ、これらは、エンジン3の運転状態に従って決定される。前者での空燃比は、理論空燃比またはこれよりもリッチ側に制御される。また、リーン燃焼モードでの空燃比は、ストイキ燃焼モードの場合よりもリーン側に制御される。
次に、燃料噴射制御処理について、図2〜図17を参照しながら説明する。図2は、この燃料噴射制御処理のメインルーチンを示しており、本処理は、TDC信号の入力に同期して割り込み実行される。まず、ステップ1(「S1」と図示。以下同じ)において、各種の補正係数を算出する。これら各種の補正係数はそれぞれ、各種のパラメータ、例えば吸気温TA、大気圧PAやエンジン水温TWなどに応じて、各種のテーブルやマップ(いずれも図示せず)を検索することによって算出される。
次いで、ステップ2および3において、吸気行程噴射用の目標空燃比KCMD1STおよび圧縮行程噴射用の目標空燃比KCMD2NDをそれぞれ算出する。これらの吸気・圧縮行程噴射用の目標空燃比KCMD1ST,KCMD2NDは、エンジン回転数NEや要求トルクPMCMDなどに応じて算出される。この要求トルクPMCMDは、図3に示す要求トルクPMCMD算出処理によって算出され、具体的には、そのステップ15において、エンジン回転数NEおよびアクセル開度APに応じ、マップ(図示せず)を検索することによって算出される。なお、要求トルクPMCMDは、燃焼時の図示平均有効圧力を示す。
ステップ3に続くステップ4では、F/B補正係数KAFを算出する。このF/B補正係数KAFは、燃焼モードに応じて算出される。具体的には、検出空燃比KACTや上記ステップ2および3で求めた吸気または圧縮行程噴射用の目標空燃比KCMD1ST,KCMD2NDなどに応じて、フィードバック制御アルゴリズムにより算出される。
次いで、吸気行程噴射用の基本燃料噴射量TIM1STを算出する(ステップ5)。この基本燃料噴射量TIM1STは、次のようにして算出される。すなわち、TH通過吸入空気量GTHおよび吸気管内絶対圧PBAなどに基づいて、気筒内に実際に吸入されたと推定される吸入空気量として実吸入空気量を算出する。そして、算出した実吸入空気量に応じ、テーブル(図示せず)を検索することなどによって、吸気行程噴射用の基本燃料噴射量TIM1STが算出される。
次に、圧縮行程噴射用の基本燃料噴射量TIM2NDを算出する(ステップ6)。この基本燃料噴射量TIM2NDは、上記の吸気行程噴射用の基本燃料噴射量TIM1STとほぼ同様にして算出される。その算出方法の説明については省略する。
次いで、要求燃料噴射量TCYL(要求燃料量)を算出する(ステップ7)。この算出処理については後述する。次に、算出した要求燃料噴射量TCYLを、燃料圧PFおよび燃料温TFに基づくそれぞれの補正係数で補正することにより、最終燃料噴射量TOUTを算出する(ステップ8)。次いで、算出した最終燃料噴射量TOUTに基づく駆動信号をインジェクタ4に出力することによって、燃料噴射を実行し(ステップ9)、本処理を終了する。なお、2回噴射燃焼モードでは、最終燃料噴射量TOUTを分割することによって、吸気行程中および圧縮行程中に噴射する燃料噴射量が求められ、求めた燃料噴射量に基づく駆動信号がインジェクタ4に出力される。
次に、図2の上記ステップ7の要求燃料噴射量TCYLを算出する処理について、図4のフローチャートを参照しながら説明する。まず、ステップ20において、吸気行程噴射用の要求燃料噴射量TCYL1STTを算出する。この要求燃料噴射量TCYL1STTは、均一燃焼モードにおいて、要求燃料噴射量TCYLとして用いられるものである。また、吸気行程噴射用の要求燃料噴射量TCYL1STTは、上述した図2の処理で求めた各種の補正係数、吸気行程噴射用の目標空燃比KCMD1ST、F/B補正係数KAF、および吸気行程噴射用の基本燃料噴射量TIM1STを互いに乗算することにより算出される。
次いで、圧縮行程噴射用の要求燃料噴射量TCYL2NDTを算出する(ステップ21)。この要求燃料噴射量TCYL2NDTは、成層燃焼モードにおいて、要求燃料噴射量TCYLとして用いられるものである。また、圧縮行程噴射用の要求燃料噴射量TCYL2NDTは、各種の補正係数、圧縮行程噴射用の目標空燃比KCMD2ND、F/B補正係数KAF、および圧縮行程噴射用の基本燃料噴射量TIM2NDを互いに乗算することにより算出される。
次に、暫定要求燃料噴射量TCYLLMTを算出する(ステップ22)。この算出処理については後述する。次いで、膨張行程噴射用の要求燃料噴射量TCYL3RDを算出する(ステップ23)。この膨張行程噴射は、触媒装置17に吸着されたNOxおよび硫黄をそれぞれ還元および脱離させることにより、触媒装置17の吸着能力を回復させるために、膨張行程中に気筒内に燃料を噴射するものである。上記の要求燃料噴射量TCYL3RDは、この膨張行程噴射に用いられる燃料量である。なお、その算出方法の説明については省略する。
次に、成層燃焼許可フラグF_DISCOKが「1」であるか否かを判別する(ステップ24)。この成層燃焼許可フラグF_DISCOKは、成層燃焼の実行条件が成立していることを「1」で表すものであり、その判定処理(図示せず)においてセットされる。なお、成層燃焼許可フラグF_DISCOKが「1」のときには、原則として、燃焼モードが成層燃焼モードに決定される。
上記ステップ24の答がYESで、成層燃焼の実行条件が成立しているときには、上記ステップ22で算出した暫定要求燃料噴射量TCYLLMTを要求燃料噴射量TCYLとして設定し(ステップ25)、本処理を終了する。
一方、ステップ24の答がNOで、F_DISCOK=0、すなわち、成層燃焼の実行条件が成立していないときには、膨張行程噴射フラグF_DIBCが「1」であるか否かを判別する(ステップ26)。この膨張行程噴射フラグF_DIBCは、上述した膨張行程噴射の実行条件が成立していることを「1」で表すものであり、その判定処理(図示せず)においてセットされる。
ステップ26の答がYESで、膨張行程噴射の実行条件が成立しているときには、暫定要求燃料噴射量TCYLLMTと膨張行程噴射用の要求燃料噴射量TCYL3RDとの和を、要求燃料噴射量TCYLとして設定し(ステップ27)、本処理を終了する。一方、ステップ26の答がNOのときには、前記ステップ25を実行し、本処理を終了する。
次いで、前記ステップ22の暫定要求燃料噴射量TCYLLMTを算出する処理について、図5および図6のフローチャートを参照しながら説明する。本処理では、暫定要求燃料噴射量TCYLLMTは、原則として、均一燃焼モード中には吸気行程噴射用の要求燃料噴射量TCYL1STTに設定され、成層燃焼モード中には圧縮行程噴射用の要求燃料噴射量TCYL2NDTに設定され、両燃焼モード間の切換時には、後述する第1〜第4のリミット値TCYLDS,TCYLDL,TCYLSD,TCYLLD(切換時要求燃料量)のいずれかに設定される。
これは次の理由による。すなわち、前述したように成層燃焼モードと均一燃焼モードとの間で設定されるべき吸入空気量およびEGR量は大きく異なり、また、切換時におけるこれらの変化には応答遅れがある。このため、前述したように気筒内に実際に吸入される吸入空気量に応じて設定される吸気・圧縮行程噴射用の要求燃料噴射量TCYL1STT,TCYL2NDTのうち、均一燃焼モードへの切換時に、前者TCYL1STTは、設定すべき値よりも大きな値に設定され、これと逆の切換時に、後者TCYL2NDTは、設定すべき値よりも小さな値に設定される傾向にある。このような傾向にあることから、吸入空気量などが安定するまでの間、吸気・圧縮行程噴射用の要求燃料噴射量TCYL1STT,TCYL2NDTを制限するためである。このため、第1リミット値TCYLDSなどは、吸気・圧縮行程噴射用の要求燃料噴射量TCYL1STT,TCYL2NDTを、均一燃焼モードへの切換時には上限側で、その逆の成層燃焼モードへの切換時には下限側でそれぞれ制限するように設定される。なお、第1リミット値TCYLDSなどによる制限を以下「リミット」という。
まず、図5のステップ30において、暫定要求燃料噴射量TCYLLMTの算出に用いられる各種のパラメータを算出する。この算出処理について、図7および図8を参照しながら説明する。
図7のステップ70では、後述する切換ステータスの今回値EMOD_STSを、その前回値EMOD_STSZとして設定する。次いで、成層燃焼許可フラグF_DISCOKが「1」であるか否かを判別する(ステップ71)。この答がYES、すなわち、成層燃焼の実行条件が成立しているときには、図4の前記ステップ21で求めた圧縮行程噴射用の要求燃料噴射量TCYL2NDTを、通常時要求燃料噴射量TCYLTとして設定する(ステップ72)。一方、ステップ71の答がNOで、F_DISCOK=0、すなわち、成層燃焼の実行条件が成立していないときには、前記ステップ20で求めた吸気行程噴射用の要求燃料噴射量TCYL1STTを、通常時要求燃料噴射量TCYLTとして設定する(ステップ73)。
上記ステップ72または73に続くステップ74では、フューエルカットフラグの前回値F_FCZが「1」であるか否かを判別する。この答がYESで、F_FCZ=1のとき、すなわち、前回のループでフューエルカット(以下「F/C」という)運転が実行されていたときには、以下のステップ75〜80において、上記の各種のパラメータを初期化する。まず、ステップ75〜77では、リミット時間TMTCYLMTを値0にリセットし、切換ステータスEMOD_STSを「0」にリセットするとともに、切換直前要求燃料噴射量TCYLMINI(切換直前要求燃料量)を、所定値TCYLREFに設定する。続くステップ78〜80では、切換直前要求トルクPMTCYLIN、トルク変化量DPMTCLINおよびトルク変化量補正項TCYLDPMをそれぞれ値0に設定し、本処理を終了する。
以上のように、前回のループでF/C運転が実行されていた場合に、各種のパラメータを初期化するのは次の理由による。すなわち、後述するように、第1リミット値TCYLDSなどは、燃焼モードの切換直前に算出された要求燃料噴射量TCYLに応じて算出されるので、上記のような場合には、第1リミット値TCYLDSなどの算出およびそれによるリミットを適切に行えないため、各種のパラメータを初期化することにより、この算出を行わないようにするためである。
一方、前記ステップ74の答がNO、すなわち、前回のループでF/Cが実行されていなかったときには、成層燃焼許可フラグの今回値F_DISCOKがその前回値F_DISCOKZと等しいか否かを判別する(ステップ81)。この答がNOで、F_DISCOK≠F_DISCOKZのとき、すなわち、今回のループが成層燃焼の実行条件が成立したまたは不成立になった直後のループであるときには、成層燃焼許可フラグF_DISCOKが「1」であるか否かを判別する(ステップ82)。
この答がYES、すなわち、成層燃焼の実行条件が成立しているときには、吸気行程噴射用の目標空燃比の前回値KCMD1STZが、予混合リーンバーン空燃比相当の所定のしきい値KCMDTCLMT(例えば0.88)以上であるか否かを判別する(ステップ83)。この答がYESで、前回のループでの混合気の空燃比が、予混合リーンバーン空燃比以上でリッチ側に制御されていたときには、今回のループが、均一燃焼モードのうちのストイキ燃焼モードから成層燃焼モードに燃焼モードを切り換えた最初のループであるとして、リミット時間TMTCYLMTを第1の所定時間TMTCYLMSD(例えば3.0sec)に設定し(ステップ84)、燃焼モードがストイキ燃焼モードから成層燃焼モードに切り換えられたことを表すために、切換ステータスEMOD_STSを「3」にセットする(ステップ85)。
一方、ステップ83の答がNOで、KCMD1STZ<KCMDTCLMTのときには、今回のループが、均一燃焼モードのうちのリーン燃焼モードから成層燃焼モードに燃焼モードを切り換えた最初のループであるとして、リミット時間TMTCYLMTを第2の所定時間TMTCYLMLD(例えば2.5sec)に設定し(ステップ86)、燃焼モードがリーン燃焼モードから成層燃焼モードに切り換えられたことを表すために、切換ステータスEMOD_STSを「4」にセットする(ステップ87)。
一方、上記ステップ82の答がNOで、F_DISCOK=0のとき、すなわち、成層燃焼の実行条件が成立していないときには、吸気行程噴射用の目標空燃比KCMD1STが、上記ステップ83で用いたしきい値KCMDTCLMT以上であるか否かを判別する(ステップ88)。この答がYESで、今回の空燃比が、予混合リーンバーン空燃比以上でリッチ側に制御されているときには、今回のループが、成層燃焼モードからストイキ燃焼モードに燃焼モードを切り換えた最初のループであるとして、ステップ89〜93を実行する。
まず、ステップ89および90ではそれぞれ、車速VPおよびエンジン回転数NEがそれぞれ、所定車速VPTCLMDS(例えば10km/h)および所定回転数NETCLMDS(例えば850rpm)よりも小さいか否かを判別する。これらの答がいずれもNOのときには、ステップ91で、リミット時間TMTCYLMTを第3の所定時間TMTCYLMDSS(例えば2.0sec)に設定する。一方、上記、ステップ89および90の答のいずれかがYESで、車速VPまたはエンジン回転数NEが小さいときには、エンジン3が低負荷運転状態にあるとして、ステップ92で、リミット時間TMTCYLMTを第4の所定時間TMTCYLMDS(例えば5.0sec)に設定する。また、ステップ91またはステップ92に続くステップ93では、燃焼モードが成層燃焼モードからストイキ燃焼モードに切り換えられたことを表すために、切換ステータスEMOD_STSを「1」にセットする。
一方、前記ステップ88の答がNOで、KCMD1ST<KCMDTCLMTのときには、今回のループが、成層燃焼モードからリーン燃焼モードに燃焼モードを切り換えた最初のループであるとして、リミット時間TMTCYLMTを第5の所定時間TMTCYLMDL(例えば2.0sec)に設定し(ステップ94)、燃焼モードが成層燃焼モードからリーン燃焼モードに切り換えられたことを表すために、切換ステータスEMOD_STSを「2」にセットする(ステップ95)。
前記ステップ85、87、93または95に続くステップ96では、そのときの暫定要求燃料噴射量TCYLLMT、すなわち燃焼モードの切換直前に得られた暫定要求燃料噴射量TCYLLMTを、切換直前要求燃料噴射量TCYLMINIとして設定する。次いで、要求トルクの前回値PMCMDZ、すなわち燃焼モードの切換直前での要求トルクPMCMDが、所定の下限トルクPMTCYLMIN(例えば0.2kgf/cm2 )よりも小さいか否かを判別する(ステップ97)。この答がNOのときには、切換直前要求トルクPMTCYLINを要求トルクの前回値PMCMDZに設定し(ステップ98)、ステップ100に進む。一方、ステップ97の答がYESで、PMCMDZ<PMTCYLMINのときには、切換直前要求トルクPMTCYLINを下限トルクPMTCYLMINに設定し(ステップ99)、リミット処理し、ステップ100に進む。
一方、前記ステップ81の答がYESで、F_DISCOK=F_DISCOKZ、すなわち、今回のループが燃焼モードを切り換えた2回目以降のループであるときには、リミット実行フラグF_TCYLLMTが「1」であるか否かを判別する(ステップ101)。このリミット実行フラグF_TCYLLMTは、前述したリミットを実行していることを「1」で表すものである。
この答がYESで、リミットを実行しているときには、ステップ100に進む一方、この答がNOのときには、前記ステップ75以降を実行することで、各種のパラメータをリセットし、本処理を終了する。
以上のように、燃焼モードが切り換えられた直後において、前記ステップ96が実行され、それにより、切換直前要求燃料噴射量TCYLMINIは、燃焼モードの切換直前に算出された暫定要求燃料噴射量TCYLLMTに設定される。また、前述したように、この暫定要求燃料噴射量TCYLLMTは、膨張行程噴射が実行されない限り、要求燃料噴射量TCYLに等しい(図4の前記ステップ25)。したがって、切換直前要求燃料噴射量TCYLMINIは、燃焼モードの切換直前における要求燃料噴射量TCYLを表す。また、同様に、燃焼モードの切換直後において、前記ステップ97〜99が実行されるため、切換直前要求トルクPMTCYLINは、上述したステップ99によるリミット処理が行われない限り、燃焼モードの切換直前に算出された要求トルクPMCMDに相当する。
前記ステップ98、99または101に続く、ステップ100では、要求トルクPMCMDが値0よりも小さいか否かを判別する。この答がNOのときには、算出用要求トルクPMCMDTMPを要求トルクPMCMDに設定する(ステップ102)。一方、この答がYESで、要求トルクPMCMDが負値のときには、算出用要求トルクPMCMDTMPを値0に設定し(ステップ103)、リミット処理する。
次に、ステップ104では、上記ステップ102または103で設定した算出用要求トルクPMCMDTMPから、上記ステップ98または99で設定した切換直前要求トルクPMTCYLINを減算した値を、トルク変化量DPMTCLINとして設定する。このトルク変化量DPMTCLINは、その算出方法から明らかなように、上述したステップ99および103によるリミット処理が行われない限り、燃焼モードの切換直前から今回までの要求トルクPMCMDの変化量を表す。
次いで、上記ステップ104で設定したトルク変化量DPMTCLINに応じて、図9に示すTCYLDPMテーブルを検索することにより、トルク変化量補正項TCYLDPMを求め(ステップ105)、本処理を終了する。このトルク変化量補正項TCYLDPMは、燃焼モードの切換直前から今回までの要求トルクPMCMDの変化分を燃料量に換算したものであり、後述するように第1リミット値TCYLDSなどを算出する際に加算項として用いられる。
上記のTCYLDPMテーブルでは、トルク変化量補正項TCYLDPMは、トルク変化量DPMTCLINが、負値である第1所定値DP1(例えば−9kgf/cm2 )以下では負値である最小値TDPMMIN(例えば値−3.1)に設定されるとともに、値0のときには値0に設定され、正値である第2所定値DP2(例えば9kgf/cm2 )以上では最大値TDPMMAX(例えば値3.1)に設定されている。また、トルク変化量補正項TCYLDPMは、トルク変化量DPMTCLINが第1所定値DP1と第2所定値DP2との間では、DPMTCLIN値が大きいほど、より大きな値になるようにリニアに設定されている。これは、トルク変化量DPMTCLINの絶対値が大きいほど、すなわち、要求トルクPMCMDの燃焼モードの切換直前からの増加量または減少量が大きいほど、それに応じてエンジン3の出力トルクを増加または減少させるために、燃料噴射量をより大きく増減させる必要があるので、トルク変化量補正項TCYLDPMを加算項として補正される第1リミット値TCYLDSなどをより大きく増減させるためである。
以上のように、切換ステータスEMOD_STSは、燃焼モードの切換直後(前記ステップ81:NO)に、前記ステップ82〜95が実行されることにより、そのときの燃焼モードの切換パターンに応じて、上述したように「1」〜「4」にセットされる。また、切換ステータスEMOD_STSは、リミットが終了したとき(前記ステップ101:NO)、またはF/C運転が実行されたとき(前記ステップ74:YES)に、「0」にリセットされる。
次いで、図5に戻り、前記ステップ30に続くステップ31では、要求トルクPMCMDが値0よりも大きいか否かを判別する。この答がNOで、エンジン3にトルクが要求されていないときには、アップカウント式の切換後経過時間タイマのタイマ値TTCYLMCを所定時間TTCYLREF(例えば6.0sec)にセットし(ステップ32)、暫定要求燃料噴射量TCYLLMTを、図7の前記ステップ72または73で設定した通常時要求燃料噴射量TCYLTに設定する(ステップ33)。また、リミット実行フラグF_TCYLLMTを「0」にセットし、リミットを実行しないようにする(ステップ34)。これは、エンジン3にトルクが要求されていないことにより、燃料噴射量が値0かまたは極少量であるために、リミットを実行する必要性に乏しいためである。
一方、ステップ31の答がYESで、PMCMD>0のときには、切換ステータスEMOD_STSが「0」であるか否かを判別する(ステップ35)。この答がYES、すなわち、燃焼モードが切り換えられていないときには、前記ステップ32〜34を実行する。
一方、ステップ35の答がNOで、EMOD_STS≠0のときには、切換ステータスの今回値EMOD_STSが、その前回値EMOD_STSZと等しいか否かを判別する(ステップ36)。この答がYESで、切換ステータスEMOD_STSが変化しておらず、今回のループが燃焼モードの切換直後でないときには、リミット実行フラグF_TCYLLMTが「1」であるか否かを判別する(ステップ37)。この答がNOで、リミットを実行していないときには、前記ステップ32〜34を実行する。一方、ステップ37の答がYESで、リミットを実行しているときには、ステップ39に進む。
一方、上記ステップ36の答がNOで、EMOD_STS≠EMOD_STSZ、すなわち、今回のループが燃焼モードの切換直後であるときには、前記ステップ32でセットした切換後経過時間タイマのタイマ値TTCYLMCを値0にリセットし(ステップ38)、ステップ39に進む。
このステップ39では、切換後経過時間タイマのタイマ値TTCYLMCが、図7の前記ステップ84、86、91、92または94で設定したリミット時間TMTCYLMTよりも小さいか否かを判別する。この答がYES、すなわち、燃焼モードの切換後、切換パターンに応じたリミット時間TMTCYLMTが経過していないときには、切換ステータスEMOD_STSが「1」であるか否かを判別する(ステップ40)。この答がYES、すなわち、切換パターンが成層燃焼モード→ストイキ燃焼モードのときには、この切換パターン用の第1リミット値TCYLDSを算出する(ステップ41)。次いで、算出した第1リミット値TCYLDSを暫定要求燃料噴射量TCYLLMTとして設定し(ステップ42)、リミット実行フラグF_TCYLLMTを第1リミット値算出フラグF_TCYLDSにセットされている値にセットする(ステップ43)。
一方、ステップ40の答がNOのときには、上記ステップ40〜43と同様に、ステップ44〜54を実行する。まず、ステップ44および45では、切換ステータスEMOD_STSが「2」および「3」であるか否かをそれぞれ判別する。そして、ステップ44の答がYES(EMOD_STS=2)で、切換パターンが成層燃焼モード→リーン燃焼モードのときには、この切換パターン用の第2リミット値TCYLDLを算出し(ステップ46)、この第2リミット値TCYLDLを暫定要求燃料噴射量TCYLLMTとして設定し(ステップ47)、リミット実行フラグF_TCYLLMTを第2リミット値算出フラグF_TCYLDLの値にセットする(ステップ48)。
また、上記ステップ45の答がYES(EMOD_STS=3)で、切換パターンがストイキ燃焼モード→成層燃焼モードのときには、この切換パターン用の第3リミット値TCYLSDを算出し(ステップ49)、この第3リミット値TCYLSDを暫定要求燃料噴射量TCYLLMTとして設定し(ステップ50)、リミット実行フラグF_TCYLLMTを第3リミット値算出フラグF_TCYLSDの値にセットする(ステップ51)。さらに、上記ステップ45の答がNO(EMOD_STS=4)で、切換パターンがリーン燃焼モード→成層燃焼モードのときには、この切換パターン用の第4リミット値TCYLLDを算出し(ステップ52)、この第4リミット値TCYLLDを暫定要求燃料噴射量TCYLLMTとして設定し(ステップ53)、リミット実行フラグF_TCYLLMTを第4リミット値算出フラグF_TCYLLDの値にセットする(ステップ54)。
一方、前記ステップ39の答がNOで、TTCYLMC≧TMTCYLMTのとき、すなわち、燃焼モードの切換後、リミット時間TMTCYLMTが経過したときには、リミットの実行期間が終了したとして、前記ステップ33および34を実行し、リミットを終了する。
前記ステップ34、43、48、51または54に続くステップ55では、リミット実行フラグF_TCYLLMTが「1」であるか否かを判別する。この答がYESで、リミットを実行しているときには、成層燃焼許可フラグF_DISCOKが「0」であるか否かを判別する(ステップ56)。この答がYESで、成層燃焼の実行条件が成立していないときには、ダウンカウント式のディレイタイマのタイマ値TAFDTOSを所定の待機時間TMAFDTOS(例えば3.0sec)にセットし(ステップ57)、ステップ58に進む。一方、ステップ55の答がNOで、F_TCYLLMT=0のとき、またはステップ56の答がNOで、F_DISCOK=1のときには、ステップ57をスキップし、ステップ58に進む。
このステップ58では、上記ステップ57でセットしたディレイタイマのタイマ値TAFDTOSが値0であるか否かを判別する。この答がNOのときには、成層燃焼モードを禁止するために、成層燃焼モードフラグF_TAFDTOS0を「0」にセットし(ステップ59)、本処理を終了する。一方、この答がYESで、TAFDTOS=0のときには、成層燃焼モードフラグF_TAFDTOS0を「1」にセットし(ステップ60)、本処理を終了する。
以上のように、上記ステップ55〜59から明らかなように、成層燃焼モードから均一燃焼モードへの切換パターンでのリミットが実行されている状態から、このリミットが終了した後、または成層燃焼の実行条件が成立した後、待機時間TMAFDTOSが経過するまでは、成層燃焼モードが禁止される。これにより、成層燃焼モードから均一燃焼モードへの切換時に、成層燃焼の実行条件の成立あるいはリミットの終了に応じて、燃焼モードが再び成層燃焼モードにすぐに切り換えられるのを防止することができる。
また、燃焼モードの切換時(前記ステップ35:NO)には、前記ステップ40〜54により、そのときの切換パターンに応じて、第1〜第4のリミット値TCYLDS,TCYLDL,TCYLSD,TCYLLDのいずれかが算出され、算出されたリミット値によるリミットが実行される。そして、燃焼モードの切換後、リミット時間TMTCYLMTが経過すると(前記ステップ39:NO)、前記ステップ33および34により、リミットが終了される。
なお、前述したように、ストイキ燃焼モードへの切換時にリミット時間TMTCYLMTとして用いられる第3および第4の所定時間TMTCYLMDSS,TMTCYLMDSは、TMTCYLMDSS<TMTCYLMDSの大小関係に設定されている。これは次の理由による。すなわち、前述したように、第4の所定時間TMTCYLMDSは、前記ステップ89および90により、車速VPまたはエンジン回転数NEが小さいとき、すなわち、エンジン3が低負荷運転状態にあるときのリミット時間TMTCYLMTとして用いられる。また、ストイキ燃焼モードでの低負荷運転中の吸入空気量は、成層燃焼モードのときよりも遥かに小さいことによって、低負荷運転状態でのストイキ燃焼モードへの切換時では、吸入空気量がストイキ燃焼モードに適した大きさになるのに特に時間がかかるので、その分、リミットの実行期間を延長するためである。
また、第1〜第3の所定時間TMTCYLMSD,TMTCYLMLD,TMTCYLMDSS、および第5の所定時間TMTCYLMDLは、前述したように成層燃焼モードでのEGR制御弁16の目標バルブリフト量が均一燃焼モードの場合よりも大きいことと、EGR制御弁16の応答性を考慮し、実際のバルブリフト量が切換後の燃焼モードに適した値に確実に達するのに必要な時間としてそれぞれ設定されている。具体的には、均一燃焼モードへの切換時用の第3および第5の所定時間TMTCYLMDSS,TMTCYLMDLは、成層燃焼モードへの切換時用の第1および第2の所定時間TMTCYLMSD,TMTCYLMLDよりも短い時間に設定されている。これは、均一燃焼モードへの切換時におけるEGR制御弁16の閉弁時には、EGR制御弁16の弁体に、ステッピングモータによる閉じ側への駆動力に加えて、ばねによる閉じ側への反力がさらに作用するので、上記の弁体の閉弁に必要な時間が、開弁時間よりも短いためである。以上により、燃焼モードの切換時におけるEGR制御弁16の応答遅れの間、リミットを確実に実行することができる。
次いで、図5の前記ステップ41で実行される、成層燃焼モードからストイキ燃焼モードへの切換時用の第1リミット値TCYLDSの算出処理について、図10および図11を参照しながら説明する。まず、ステップ110では、リミット実行フラグF_TCYLLMTが「1」であるか否かを判別する。この答がYESで、リミットを実行しているときには、それまでにセットされていた要求トルク領域外フラグF_TCYLDSPMの値を、その暫定フラグF_TCYLDSPMTMPにシフトする(ステップ111)。この要求トルク領域外フラグF_TCYLDSPMは、リミットの実行中に、要求トルクPMCMDが非常に大きくなったことを「1」で表すものである。一方、ステップ110の答がNO、すなわち、リミットを実行しておらず、今回のループがリミットを開始した最初のループであるときには、暫定フラグF_TCYLDSPMTMPを「0」にセットする(ステップ112)。
次に、ステップ113では、暫定フラグF_TCYLDSPMTMPが「1」であるか否かを判別する。この答がNOのときには、要求トルクPMCMDが、所定の上限トルクPMTCYLLG(例えば6.0kgf/cm2 )以下であるか否かを判別する(ステップ114)。この答がYESで、要求トルクPMCMDがあまり大きくないときには、暫定フラグF_TCYLDSPMTMPの値を、要求トルク領域外フラグF_TCYLDSPMにシフトする(ステップ115)。
次いで、運転状態ステータスNKENGCNDが「1」であるか否かを判別する(ステップ116)。この運転状態ステータスNKENGCNDは、エンジン3の運転状態を表すものであり、具体的には、エンジン3がアイドル運転状態のときに「1」に、高負荷運転状態のときに「2」に、低負荷運転状態のときに「3」に、それぞれセットされる。
このステップ116の答がYESで、NKENGCND=1のとき、すなわち、エンジン3がアイドル運転状態にあるときには、図5の前記ステップ38で初期化される切換後経過時間タイマのタイマ値TTCYLMCに応じて、図12の第1テーブルを検索することにより、アイドル運転時用の第1テーブル値KTCYLDSTを求め(ステップ117)、燃焼効率係数KTCLDSTとして設定する(ステップ118)。この第1テーブルでは、第1テーブル値KTCYLDSTは、タイマ値TTCYLMCが大きいほど、すなわち燃焼モードの切換後の経過時間が長いほど、徐々に大きくなるように設定され、タイマ値TTCYLMCが所定時間Tα(例えば2sec)以上のときには、最大値KTDSTMAX(例えば値1)に設定されている。
一方、上記ステップ116の答がNOのときには、上記ステップ116〜118と同様に、ステップ119〜123において以下の処理を実行する。すなわち、ステップ119で、運転状態ステータスNKENGCNDが「2」であるか否かを判別し、この答がYESで、高負荷運転状態のときには、ステップ120および121で、切換後経過時間タイマのタイマ値TTCYLMCに応じて、図13に示す第2テーブルを検索することにより、高負荷運転時用の第2テーブル値KTCYLDST2を求め、燃焼効率係数KTCLDSTとして設定する。
一方、ステップ119の答がNOで、NKENGCND=3、すなわち、低負荷運転状態のときには、ステップ122および123において、タイマ値TTCYLMCに応じて、図14に示す第3テーブルを検索することにより、低負荷運転時用の第3テーブル値KTCYLDST3を求め、燃焼効率係数KTCLDSTとして設定する。
上記の第2および第3のテーブルでは、第2および第3のテーブル値KTCYLDST2,KTCYLDST3は、タイマ値TTCYLMCが大きいほど、徐々に大きくなるように設定され、上述した第1テーブル値KTCYLDSTと同様、タイマ値TTCYLMCが上記の所定時間Tα以上のときには、上記の最大値KTDSTMAXに設定されている。また、この場合の第2および第3のテーブル値KTCYLDST2,KTCYLDST3の切換後の初期における増加度合は、第1テーブル値KTCYLDSTの場合よりも大きく設定されている。
次いで、前記ステップ118、121または123に続くステップ124では、図8のステップ104で設定したトルク変化量DPMTCLINに応じて、図15に示すKTCLDSPテーブルを検索することにより、トルク補正係数KTCLDSPを求める。このテーブルでは、トルク補正係数KTCLDSPは、トルク変化量DPMTCLINが第3所定値DP3(例えば1kgf/cm2 )以下では、最小値KTDSPMIN(例えば値1)に設定され、第3所定値DP3とこれよりも大きい第4所定値DP4(例えば4kgf/cm2 )との間では、トルク変化量DPMTCLINが大きいほど、より大きな値に設定され、第4所定値DP4以上では、最大値KTDSPMAX(例えば値2)に設定されている。
次いで、前記ステップ118、121または123で設定した燃焼効率係数KTCLDSTに、上記ステップ124で求めたトルク補正係数KTCLDSPを乗算することによって、第1燃焼効率パラメータKTCLDS(燃焼効率)を算出し(ステップ125)、後述するステップ130に進む。
一方、前記ステップ113の答がYESで、F_TCYLDSPMTMP=1のとき、または前記ステップ114の答がNOで、PMCMD>PMTCYLLG、すなわち要求トルクPMCMDが非常に大きいときには、ステップ126〜129において、以下の処理を実行し、ステップ130に進む。すなわち、暫定フラグF_TCYLDSPMTMPを「1」にセットし、燃焼効率係数KTCLDSTおよびトルク補正係数KTCLDSPをそれぞれ値1に設定し、第1燃焼効率パラメータKTCLDSを所定値KTCLDSαに設定する。なお、この所定値KTCLDSαは、上記ステップ125で設定される第1燃焼効率パラメータKTCLDSよりも大きな値に設定されている。
上記のステップ130では、第1リミット値TCYLDSを、上記ステップ125または129で設定した第1燃焼効率パラメータKTCLDS、図8の前記ステップ96および105でそれぞれ設定した切換直前要求燃料噴射量TCYLMINI、およびトルク変化量補正項TCYLDPMを用いて、次式(1)により算出する。
TCYLDS=(TCYLMINI+TCYLDPM)・(1+KTCLDS) …… (1)
なお、燃焼効率は、燃焼モードの切換が実行されるような低負荷運転中では、成層燃焼モードよりも均一燃焼モードの方が低い。このため、前者から後者への燃焼モードの切換時には、燃焼効率が低下し、それに伴い、同一のトルクを出力するための要求燃料噴射量TCYLが増加する傾向にある。このため、上式(1)では、値1に第1燃焼効率パラメータKTCLDSを加算した値(1+KTCLDS)を、切換直前を基準とした燃焼効率の低下度合を表す値として設定し、これを乗算しており、それにより、第1リミット値TCYLDSがより大きな値に設定される。また、この場合の燃焼効率は、燃焼モードの切換後、時間が経過するにつれて次第に低下する。これに対応して、図12〜図14の第1〜第3のテーブルでは、前述したように、それぞれのテーブル値KTCYLDST,KTCYLDST2,KTCYLDST3が、切換後経過時間タイマのタイマ値TTCYLMCの増加に伴って、徐々に大きくなるように設定されている。これにより、上記の値(1+KTCLDS)を、燃焼モードの切換後の時間の経過に応じて変化する実際の燃焼効率に見合うように適切に設定することができる。
また、前述した図15のテーブルでは、トルク変化量DPMTCLINが第3所定値DP3よりも大きく、燃焼モードの切換後、要求トルクPMCMDが増加しているときには、トルク補正係数KTCLDSPはトルク変化量DPMTCLINが大きいほどより大きな値に設定されているので、これにより第1燃焼効率パラメータKTCLDSを増大補正し、要求燃料噴射量TCYLを増量補正することによって、運転者の加速要求を満たすことができる。
さらに、前記ステップ112〜114および129により、リミットの実行中に一旦、要求トルクPMCMDが非常に大きくなると、その後リミットが終了するまで、第1燃焼効率パラメータKTCLDSが、ステップ125によって算出する場合よりも大きな所定値KTCLDSαに設定される。これにより、要求トルクPMCMDが非常に大きいときに、第1リミット値TCYLDSによるリミットを緩めて、より大きなエンジン3の出力トルクを確保することができる。
次に、前記ステップ130に続く、ステップ131では、算出した第1リミット値TCYLDSが、切換直前要求燃料噴射量TCYLMINIよりも小さいか否かを判別する。この答がYESで、第1リミット値TCYLDSが切換直前要求燃料噴射量TCYLMINIを下回ったときには、第1リミット値TCYLDSを切換直前要求燃料噴射量TCYLMINIに設定し(ステップ132)、ステップ133に進む一方、NOのときには、そのままステップ133に進む。
上記ステップ131および132の趣旨は次によるものである。すなわち、前述したように、均一燃焼モードへの燃焼モードの切換時では、燃焼効率が低下する傾向にあるので、通常、第1リミット値TCYLDSは、切換直前要求燃料噴射量TCYLMINIよりも大きくなり、ステップ131の答はNOになる。一方、低負荷運転状態においてエアコンなどの補機がONされることによって、均一燃焼モードに燃焼モードが切り換えられた後、そのリミット中にOFFされたような場合には、それに応じて要求トルクPMCMDが減少するのに伴い、トルク変化量補正項TCYLDPMが減少する結果、第1リミット値TCYLDSが過小に算出される場合がある。そのような第1リミット値TCYLDSをそのまま用いてリミットを実行すると、空燃比が極めてリーンになることで、燃焼が不安定になるおそれがある。ステップ131の判別は、このような事態を想定したものであり、第1リミット値TCYLDSが切換直前要求燃料噴射量TCYLMINIを下回ったときに、ステップ132により第1リミット値TCYLDSを切換直前要求燃料噴射量TCYLMINIに設定することによって、空燃比をリッチ側に維持することで、安定した燃焼を確保することができる。
上記ステップ133では、通常時要求燃料噴射量TCYLTが第1リミット値TCYLDSよりも大きいか否かを判別する(ステップ133)。この答がYESのときには、第1リミット値TCYLDSによるリミットの実行中であることを表すために、第1リミット値算出フラグF_TCYLDSを「1」にセットする(ステップ134)とともに、暫定フラグF_TCYLDSPMTMPの値を要求トルク領域外フラグF_TCYLDSPMにシフトし(ステップ135)、本処理を終了する。
一方、ステップ133の答がNOで、TCYLT≦TCYLDSのときには、通常時要求燃料噴射量TCYLTを第1リミット値TCYLDSとして設定する(ステップ136)。また、第1リミット値TCYLDSが通常時要求燃料噴射量TCYLT以上の関係になっていて、リミットを行えない状態であるので、第1リミット値TCYLDSの算出を終了させ、リミットを終了させるために、第1リミット値算出フラグF_TCYLDSを「0」にリセットする(ステップ137)とともに、暫定フラグF_TCYLDSPMTMPを「0」にリセットし(ステップ138)、上記ステップ135を実行し、本処理を終了する。
なお、図5の前記ステップ46で実行される、成層燃焼モードからリーン燃焼モードへの燃焼モードの切換時用の第2リミット値TCYLDLの算出処理については、上述した第1リミット値TCYLDSの算出処理とほぼ同様に行われる。その説明については省略する。また、前記ステップ47および48の第3および第4のリミット値TCYLSD,TCYLLDの算出処理は、ほぼ同様に行われる。以下、これらを代表して、リーン燃焼モードから成層燃焼モードへの燃焼モードの切換時用の後者TCYLLDの算出処理について、図16を参照しながら説明する。
まず、ステップ150では、切換後経過時間タイマのタイマ値TTCYLMCに応じて、図17に示すKTCLLDテーブルを検索することにより、第4燃焼効率パラメータKTCLLD(燃焼効率)を求める。このテーブルでは、第4燃焼効率パラメータKTCLLDは、このタイマ値TTCYLMCが大きいほど、徐々に大きくなるように設定されている。
次いで、ステップ151において、第4リミット値TCYLLDを、上記の第4燃焼効率パラメータKTCLLD、切換直前要求燃料噴射量TCYLMINIおよびトルク変化量補正項TCYLDPMを用いて、次式(2)により算出する。
TCYLLD=(TCYLMINI+TCYLDPM)・(1-KTCLLD) …… (2)
なお、前述したように、均一燃焼モードから成層燃焼モードへの燃焼モードの切換時では、燃焼効率が上昇し、それに伴い、同一のトルクを出力するための要求燃料噴射量TCYLが減少する傾向にある。このため、上式(2)では、前式(1)と異なり、値1から第4燃焼効率パラメータKTCLLDを減算した値(1−KTCLLD)を、切換直前を基準とした燃焼効率の上昇度合を表す値として設定し、これを乗算しており、それにより、第4リミット値TCYLLDがより小さな値に設定される。また、この場合の燃焼効率は、燃焼モードの切換後、時間が経過するにつれて次第に上昇する。これに対応して、図17のテーブルでは、第4燃焼効率パラメータKTCLLDは、上述したように、切換後経過時間タイマのタイマ値TTCYLMCの増加に伴って、徐々に大きくなるように設定されている。これにより、上記の値(1−KTCLLD)を、燃焼モードの切換後の時間の経過に応じて変化する実際の燃焼効率に見合うように適切に設定することができる。
次いで、算出した第4リミット値TCYLLDが、切換直前要求燃料噴射量TCYLMINIよりも大きいか否かを判別する(ステップ152)。この答がYESで、第4リミット値TCYLLDが切換直前要求燃料噴射量TCYLMINIを上回ったときには、第4リミット値TCYLLDを切換直前要求燃料噴射量TCYLMINIに設定し(ステップ153)、ステップ154に進む一方、NOのときには、そのままステップ154に進む。
上記ステップ152および153の趣旨は、前記ステップ131および132の趣旨と同様である。すなわち、前述したように、成層燃焼モードへの燃焼モードの切換時では、燃焼効率が上昇する傾向にあるので、通常、第4リミット値TCYLLDは、切換直前要求燃料噴射量TCYLMINIよりも小さくなり、ステップ152の答はNOになる。一方、低負荷運転状態において補機がOFFされることによって燃焼モードが成層燃焼モードに切り換えられた後、そのリミット中に補機がONされたような場合には、それに応じて要求トルクPMCMDが増加するのに伴い、第4リミット値TCYLLDが過大に算出される場合がある。そのような第4リミット値TCYLLDをそのまま用いてリミットを実行すると、空燃比が極めてリッチになることで、燃焼が不安定になるおそれがある。ステップ152の判別は、このような事態を想定したものであり、第4リミット値TCYLLDが切換直前要求燃料噴射量TCYLMINIを上回ったときに、ステップ153により第4リミット値TCYLLDを切換直前要求燃料噴射量TCYLMINIに設定することによって、空燃比をリーン側に維持することで、安定した燃焼を確保することができる。
上記ステップ152または153に続くステップ154では、通常時要求燃料噴射量TCYLTが第4リミット値TCYLLDよりも小さいか否かを判別する。この答がYESのときには、第4リミット値TCYLLDによるリミットの実行中であることを表すために、第4リミット値算出フラグF_TCYLLDを「1」にセットし(ステップ155)、本処理を終了する。
一方、ステップ154の答がNOで、TCYLT≧TCYLLDのときには、通常時要求燃料噴射量TCYLTを第4リミット値TCYLLDとして設定する(ステップ156)。また、第4リミット値TCYLLDが通常時要求燃料噴射量TCYLT以下の関係になっていて、リミットを行えない状態であるので、第4リミット値TCYLLDの算出を終了させ、リミットを終了させるために、第4リミット値算出フラグF_TCYLLDを「0」にセットし(ステップ157)、本処理を終了する。
以上のように、本実施形態によれば、燃焼モードの切換時に、第1〜第4のリミット値TCYLDS,TCYLDL,TCYLSD,TCYLLDを、切換直前要求燃料噴射量TCYLMINIをベースとして算出するので、この切換前後においてトルクの急激な段差を生じることなく、燃焼モードの移行を滑らかに行うことができる。また、第1リミット値TCYLDSなどをトルク変化量補正項TCYLDPMに応じて算出するので、前述したように実吸入空気量に応じて算出される吸気行程噴射用および圧縮行程噴射用の要求燃料噴射量TCYL1STT,TCYL2NDTと異なり、切換直前からその時点までの実際の要求トルクPMCMDの変化分を良好に反映させながら、第1リミット値TCYLDSなどを急激に変動させることなく適切に設定できる。さらに、第1または第4の燃焼効率パラメータKTCLDS,KTCLLDに応じて、対応するリミット値を算出するので、これをそのときの実際の燃焼効率に応じた適切な値に設定できる。以上により、燃焼モードの切換時において、内燃機関の出力トルクを要求トルクに良好に一致させることができ、それにより、ドライバビリティを向上させることができる。
また、均一燃焼モードへの切換時に、第1リミット値TCYLDSを、切換直前要求燃料噴射量TCYLMINI以上に制限するので、燃焼効率に応じた適正な値に制限できるとともに、空燃比をリッチ側に維持できる。また、成層燃焼モードへの切換時に、第4リミット値TCYLLDを、切換直前要求燃料噴射量TCYLMINI以下に制限するので、燃焼効率に応じた適正な値に制限できるとともに、空燃比をリーン側に維持できる。以上により、燃焼モードの切換時に、安定した燃焼を確保することができる。
なお、本発明は、説明した実施形態に限定されることなく、種々の態様で実施することができる。例えば、実施形態では、第1リミット値TCYLDSなどを、トルク変化量補正項TCYLDPMに応じて算出したが、この算出方法はこれに限らず、少なくとも要求トルクに応じて算出すればよく、例えば、今回の要求トルクと燃焼モードの切換直前における要求トルクとの比に応じて算出してもよい。また、本発明は、クランク軸を鉛直方向に配置した船外機などのような船舶推進機用エンジンを含む、様々な産業用の筒内噴射式の内燃機関の制御装置に適用することが可能である。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。