(57)【要約】【課題】  燃焼モードの切換時に、内燃機関の出力トルクを要求トルクに良好に一致させることができ、それにより、ドライバビリティを向上させることができる内燃機関の制御装置を提供する。【解決手段】  制御装置１のＥＣＵ２は、成層燃焼モードと均一燃焼モードとに燃焼モードを切り換えるとともに、算出した要求燃料量ＴＣＹＬに応じて燃料噴射量を制御する。また、燃焼モードが切り換えられたときに、この切換直前での要求燃料量ＴＣＹＬＭＩＮＩ、この切換直前から今回までの要求トルクＰＭＣＭＤの変化量を表すトルク変化量パラメータＴＣＹＬＤＰＭ、および今回の燃焼効率ＫＴＣＬＤＳ、ＫＴＣＬＬＤに応じて、要求燃料量ＴＣＹＬとして切換時要求燃料量ＴＣＹＬＤＳ、ＴＣＹＬＤＬ、ＴＣＹＬＳＤ、ＴＣＹＬＬＤを算出する（ステップ１３０，ステップ４２，ステップ２５）。【選択図】  図１１
2005155428.tif 000002
【特許請求の範囲】
【請求項１】
混合気を成層燃焼させる成層燃焼モードと均一燃焼させる均一燃焼モードとに燃焼モードを切り換えて運転するとともに、算出された要求燃料量に応じて燃料噴射量を制御する筒内噴射式の内燃機関の制御装置であって、
当該内燃機関の運転状態を検出する運転状態検出手段と、
当該検出された内燃機関の運転状態に応じて、前記要求燃料量を算出する要求燃料量算出手段と、
前記検出された内燃機関の運転状態に応じて、前記内燃機関の要求トルクを算出する要求トルク算出手段と、
前記燃焼モードが切り換えられる直前に算出された前記要求燃料量を記憶する記憶手段と、
前記算出された要求トルクの前記燃焼モードの切換直前から今回までの変化量を表すトルク変化量パラメータを算出するトルク変化量パラメータ算出手段と、
前記内燃機関の燃焼効率を推定する燃焼効率推定手段と、
前記燃焼モードが切り換えられたときに、前記記憶された要求燃料量、前記算出された今回のトルク変化量パラメータ、および前記推定された今回の燃焼効率に応じて、前記要求燃料量として切換時要求燃料量を算出する切換時要求燃料量算出手段と、
を備えることを特徴とする内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、成層燃焼モードと均一燃焼モードとに燃焼モードを切り換えて運転するとともに、算出された要求燃料量に応じて燃料噴射量を制御する筒内噴射式の内燃機関の制御装置に関する。
【背景技術】
【０００２】
従来、この種の制御装置として、例えば特許文献１に開示されたものが知られている。この制御装置では、車両に搭載された内燃機関の燃焼モードが成層燃焼モードから均一燃焼モードに切り換えられたときに、複数の気筒のうちの一部の気筒については、引き続き成層燃焼が行われる。そして、この一部の気筒の燃料噴射量が、次のようにして算出される。すなわち、前回の最終的な燃料噴射量と、内燃機関の回転数に基づいて設定されたトルク補正量の今回値と前回値との比と、基本燃料噴射量の今回値と前回値との比とを互いに乗算した値が、最終的な燃料噴射量として算出される。より具体的には、トルク補正量は、内燃機関の回転数の前回値と今回値との間の増減に応じて一定量、増減した値として設定される。また、基本燃料噴射量は、その前回値と、吸入空気量と内燃機関の回転数に基づいて算出される今回の燃料噴射量とを加重平均した値として設定される。上記のように燃料噴射量を算出することにより、内燃機関の回転数や吸入空気量の変化状態を反映させながら、燃料噴射量を制御するとともに、制御装置の演算負荷を軽減するようにしている。
【０００３】
しかし、上述した従来の制御装置には、次のような問題がある。すなわち、上述した燃料噴射量の算出手法では、燃焼モードの切換時に、前回の燃料噴射量をベースとして、これにトルク補正量の前回値と今回値との比と、基本燃料噴射量の前回値と今回値との比を乗算した値が、燃料噴射量として算出される。上述したように、トルク補正量は、内燃機関の回転数の増減に応じて、一定量、増減される値に過ぎないので、その前回値と今回値との比は、内燃機関の回転数の変化に基づく内燃機関のトルクの変化を正しく反映しない。また、基本燃料噴射量は、その前回値と、吸入空気量と内燃機関の回転数に応じて設定される基本燃料噴射量の今回値とを加重平均した、すなわち、なまされた値であるので、その前回値と今回値との比もまた、吸入空気量および内燃機関の回転数に基づくトルクの変化を正しく反映しない。したがって、これらのパラメータに基づいて算出された燃料噴射量によって得られる内燃機関の出力トルクが、要求トルクと一致しなくなってしまい、その結果、ドライバビリティ（運転性）の低下を招いてしまう。
【０００４】
本発明は、このような課題を解決するためになされたものであり、燃焼モードの切換時に、内燃機関の出力トルクを要求トルクに良好に一致させることができ、それにより、ドライバビリティを向上させることができる内燃機関の制御装置を提供することを目的とする。
【０００５】
【特許文献１】特開平１１−５０８９５号公報（第５頁１欄〜第８頁２欄および図３〜１２）
【発明の開示】
【課題を解決するための手段】
【０００６】
上記の目的を達成するため、請求項１に係る発明は、混合気を成層燃焼させる成層燃焼モードと均一燃焼させる均一燃焼モードとに燃焼モードを切り換えて運転するとともに、算出された要求燃料量（実施形態における（以下本項において同じ）要求燃料噴射量ＴＣＹＬ）に応じて燃料噴射量を制御する筒内噴射式の内燃機関３の制御装置１であって、内燃機関３の運転状態を検出する運転状態検出手段（クランク角センサ２２、エアフローセンサ２４、吸気管内絶対圧センサ２６、アクセル開度センサ３０、ＥＣＵ２）と、検出された内燃機関３の運転状態に応じて、要求燃料量を算出する要求燃料量算出手段（ＥＣＵ２、図２のステップ７，図４のステップ２０，２１，図７のステップ７２，７３，図６のステップ３３，図４のステップ２５）と、検出された内燃機関３の運転状態に応じて、内燃機関３の要求トルクＰＭＣＭＤを算出する要求トルク算出手段（ＥＣＵ２、図３のステップ１５）と、燃焼モードが切り換えられる直前に算出された要求燃料量（切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩ）を記憶する記憶手段（ＥＣＵ２、図８のステップ９６）と、算出された要求トルクＰＭＣＭＤの燃焼モードの切換直前から今回までの変化量を表すトルク変化量パラメータ（トルク変化量補正項ＴＣＹＬＤＰＭ）を算出するトルク変化量パラメータ算出手段（ＥＣＵ２、図８のステップ１０５）と、内燃機関３の燃焼効率（第１燃焼効率パラメータＫＴＣＬＤＳ、第４燃焼効率パラメータＫＴＣＬＬＤ）を推定する燃焼効率推定手段（ＥＣＵ２、図１０ステップ１２５，１２９、図１６のステップ１５０）と、燃焼モードが切り換えられたときに、記憶された要求燃料量、算出された今回のトルク変化量パラメータ、および推定された今回の燃焼効率に応じて、要求燃料量として切換時要求燃料量（第１リミット値ＴＣＹＬＤＳ、第２リミット値ＴＣＹＬＤＬ、第３リミット値ＴＣＹＬＳＤ、第４リミット値ＴＣＹＬＬＤ）を算出する切換時要求燃料量算出手段（ＥＣＵ２、図１１のステップ１３０，図６のステップ４２、図５のステップ４６，図６のステップ４７、図５のステップ４９，図６のステップ５０、図１６のステップ１５１，図６のステップ５３、図４のステップ２５）と、を備えることを特徴とする。
【０００７】
この内燃機関の制御装置によれば、要求燃料量算出手段により、各燃焼モードにおける要求燃料量が内燃機関の運転状態に応じて算出され、算出された要求燃料量に応じて、燃料噴射量が制御される。また、燃焼モードが切り換えられたときには、要求燃料量として切換時要求燃料量が、切換時要求燃料量算出手段によって算出される。これは次の理由による。すなわち、一般に、成層燃焼モードでは、吸入空気量が非常に大きく、極めてリーンな空燃比で燃焼が行われる一方、均一燃焼モードでは、成層燃焼モードよりも吸入空気量が小さく、よりリッチな空燃比で燃焼が行われる。また、燃焼モードが切り換えられたときには、吸入空気量が、即座には変化せず、応答遅れを伴うことで、切換後の燃焼モードに適した値に収束するのに時間がかかる。そのような状況で、燃焼モードの切換時に、吸入空気量などの運転状態に応じて要求燃料量を算出した場合、要求燃料量が急激に変動してしまい、その結果、内燃機関の出力トルクが要求トルクに一致しにくくなるためである。
【０００８】
また、本発明によれば、要求トルク算出手段により、内燃機関の要求トルクが内燃機関の運転状態に応じて算出されるとともに、トルク変化量パラメータ算出手段により、要求トルクの燃焼モードの切換直前から今回までの変化量を表すトルク変化量パラメータが算出され、燃焼効率推定手段により、内燃機関の燃焼効率が推定される。さらに、上記の切換時要求燃料量が、この切換の直前に算出された要求燃料量、今回のトルク変化量パラメータ、および今回の燃焼効率に応じて算出される。
【０００９】
このように、燃焼モードの切換直前における要求燃料量をベースとして切換時要求燃料量を算出するので、この切換前後においてトルクの急激な段差を生じることなく、燃焼モードの移行を滑らかに行うことができる。また、燃焼モードの切換直前から今回までの要求トルクの変化量を表すトルク変化量パラメータに応じて、切換時要求燃料量を算出するので、燃焼モードの切換直前からその時点までの実際の要求トルクの変化分を良好に反映させながら、切換時要求燃料量を適切に設定できる。さらに、成層燃焼モードと均一燃焼モードでは燃焼効率が互いに異なるため、切換時には燃焼効率が変化するのに対し、上述した構成によれば、今回の燃焼効率に応じて切換時要求燃料量を算出するので、これをそのときの実際の燃焼効率に応じた適切な値に設定できる。以上により、燃焼モードの切換時において、内燃機関の出力トルクを要求トルクに良好に一致させることができ、それにより、ドライバビリティを向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態による制御装置およびこれを適用した内燃機関の概略構成を示す図である。
【図２】燃料噴射制御処理のメインルーチンを示すフローチャートである。
【図３】要求トルクＰＭＣＭＤ算出処理を示すフローチャートである。
【図４】図２の要求燃料噴射量ＴＣＹＬの算出処理を示すフローチャートである。
【図５】図４の暫定要求燃料噴射量ＴＣＹＬＬＭＴの算出処理を示すフローチャートである。
【図６】図５の処理の続きを示すフローチャートである。
【図７】図５の処理のＴＣＹＬＬＭＴＰＡＲＡ算出のサブルーチンを示すフローチャートである。
【図８】図７の処理の続きを示すフローチャートである。
【図９】図８の処理で用いられるＴＣＹＬＤＰＭテーブルの一例を示す図である。
【図１０】図５の処理の第１リミット値ＴＣＹＬＤＳの算出処理のサブルーチンを示すフローチャートである。
【図１１】図１０の処理の続きを示すフローチャートである。
【図１２】図１０の処理で用いられる第１テーブルの一例を示す図である。
【図１３】図１０の処理で用いられる第２テーブルの一例を示す図である。
【図１４】図１０の処理で用いられる第３テーブルの一例を示す図である。
【図１５】図１０の処理で用いられるＫＴＣＬＤＳＰテーブルの一例を示す図である。
【図１６】図５の処理の第４リミット値ＴＣＹＬＬＤの算出処理のサブルーチンを示すフローチャートである。
【図１７】図１６の処理で用いられるＫＴＣＬＬＤテーブルの一例を示す図である。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照しながら、本発明の一実施形態による内燃機関の制御装置について説明する。図１に示すように、制御装置１はＥＣＵ２を備えており、このＥＣＵ２は、後述するように、内燃機関（以下「エンジン」という）３の燃料噴射制御処理などを行う。
【００１２】
エンジン３は、車両（図示せず）に搭載された直列４気筒（１つのみ図示）タイプのガソリンエンジンであり、各気筒のピストン３ａとシリンダヘッド３ｂとの間に燃焼室３ｃが形成されている。ピストン３ａの上面の中央部には、凹部３ｄが形成されている。また、シリンダヘッド３ｂには、燃焼室３ｃに臨むように燃料噴射弁（以下「インジェクタ」という）４および点火プラグ５が取り付けられており、燃料は燃焼室３ｃ内に直接、噴射される。すなわちエンジン３は、筒内噴射式のものである。
【００１３】
インジェクタ４は、燃焼室３ｃの天壁中央部に配置されており、燃料パイプ４ｂを介して高圧ポンプ４ａに接続されている。燃料は、燃料タンク（図示せず）からこの高圧ポンプ４ａで高圧に昇圧された後、レギュレータ（図示せず）で調圧された状態でインジェクタ４に供給されるとともに、インジェクタ４を介して、ピストン３ａの凹部３ｄ側に向かって噴射される。これにより、燃料は、凹部３ｄを含むピストン３ａの上面に衝突して燃料噴流を形成する。特に、後述する成層燃焼のときには、インジェクタ４が噴射した燃料の大部分は、凹部３ｄに衝突して燃料噴流を形成する。
【００１４】
また、燃料パイプ４ｂのインジェクタ４の付近には、燃料圧センサ２０が取り付けられている。この燃料圧センサ２０は、インジェクタ４が噴射する燃料の燃料圧ＰＦを検出して、その検出信号をＥＣＵ２に出力する。さらに、ＥＣＵ２には、燃料温センサ２１から、燃料の温度（以下「燃料温」という）ＴＦを表す検出信号が出力される。また、インジェクタ４は、後述するように、ＥＣＵ２からの駆動信号により、その開弁時間である燃料噴射時間および燃料噴射時期（開弁タイミングおよび閉弁タイミング）が制御される。なお、このインジェクタ４の燃料噴射時間は、気筒内に噴射される燃料量すなわち燃料噴射量に相当するので、以下、インジェクタ４の燃料噴射時間を燃料噴射量という。
【００１５】
また、点火プラグ５は、ＥＣＵ２から点火時期に応じたタイミングで高電圧が加えられることによって放電し、それにより燃焼室３ｃ内の混合気を燃焼させる。
【００１６】
さらに、エンジン３は、ＤＯＨＣ型のものであり、吸気カムシャフト６および排気カムシャフト７を備えている。これらのカムシャフト６，７はそれぞれ、吸気弁８および排気弁９を開閉駆動する吸気カム６ａおよび排気カム７ａを有している。吸気および排気カムシャフト６，７は、タイミングベルト（図示せず）を介してクランクシャフト３ｅに連結されており、クランクシャフト３ｅの回転に従って、これが２回転するごとに１回転する。この吸気カムシャフト６の一端部には、カム位相可変機構（以下「ＶＴＣ」という）１０が設けられている。
【００１７】
ＶＴＣ１０は、油圧が供給されることによって作動し、クランクシャフト３ｅに対する吸気カム６ａの位相を無段階に進角または遅角させることにより、吸気弁８の開閉タイミングを早めまたは遅らせる。これにより、吸気弁８と排気弁９のバルブオーバーラップを長くまたは短くすることによって、内部ＥＧＲ量を増加または減少させるとともに、充填効率を変化させる。また、ＶＴＣ１０には、ＶＴＣ電磁制御弁１０ａが接続されている。このＶＴＣ電磁制御弁１０ａは、ＥＣＵ２からの駆動信号によって駆動され、その駆動信号のデューティ比に応じて、エンジン３の潤滑系の油圧ポンプ（図示せず）からの油圧をＶＴＣ１０に供給する。これにより、ＶＴＣ１０は、吸気カム６ａのカム位相を進角または遅角させる。
【００１８】
さらに、図示しないが、吸気カム６ａおよび排気カム７ａの各々は、低速カムと、低速カムよりも高いカムノーズを有する高速カムとで構成されている。また、エンジン３には、複数のバルブタイミング切換機構（以下「ＶＴＥＣ（登録商標）」という）１１が設けられている。各ＶＴＥＣ１１は、吸気カム６ａおよび排気カム７ａを低速カムと高速カムの間で切り換えることにより、吸気弁８および排気弁９のバルブタイミングを低速バルブタイミング（以下「ＬＯ．ＶＴ」という）と高速バルブタイミング（以下「ＨＩ．ＶＴ」という）との間で切り換える。この場合、ＬＯ．ＶＴと比較し、ＨＩ．ＶＴのときには、吸気弁８および排気弁９の開弁期間と、両者のバルブオーバーラップが長くなるとともに、バルブリフト量も大きくなることにより、充填効率が高められる。このＶＴＥＣ１１も、上記ＶＴＣ１０と同様に、ＥＣＵ２によりＶＴＥＣ電磁制御弁１１ａを介して油圧が供給されることによって作動し、上記切換動作を実行する。
【００１９】
一方、前記クランクシャフト３ｅには、マグネットロータ２２ａが取り付けられている。このマグネットロータ２２ａは、ＭＲＥピックアップ２２ｂとともに、クランク角センサ２２（運転状態検出手段）を構成している。クランク角センサ２２は、クランクシャフト３ｅの回転に伴い、いずれもパルス信号であるＣＲＫ信号およびＴＤＣ信号を出力する。ＣＲＫ信号は、所定のクランク角（例えば３０゜）ごとに１パルスが出力される。ＥＣＵ２は、このＣＲＫ信号に基づき、エンジン３の回転数（以下「エンジン回転数」という）ＮＥを求める。ＴＤＣ信号は、各気筒のピストン３ａが吸気行程開始時のＴＤＣ（上死点）付近の所定クランク角度位置にあることを表す信号であり、４気筒タイプの本例では、クランク角１８０゜ごとに１パルスが出力される。
【００２０】
また、エンジン３の本体には、水温センサ２３が取り付けられている。水温センサ２３は、サーミスタで構成されており、エンジン３の本体内を循環する冷却水の温度であるエンジン水温ＴＷを検出して、その検出信号をＥＣＵ２に出力する。
【００２１】
さらに、エンジン３の吸気管１２には、上流側から順に、エアフローセンサ２４（運転状態検出手段）、スロットル弁機構１３、スロットル弁開度センサ２５および吸気管内絶対圧センサ２６（運転状態検出手段）などが設けられている。
【００２２】
エアフローセンサ２４は、熱線式エアフローメータで構成されており、スロットル弁機構１３の後述するスロットル弁１３ａを通過する吸入空気量（以下「ＴＨ通過吸入空気量」という）ＧＴＨを表す検出信号をＥＣＵ２に出力する。
【００２３】
スロットル弁機構１３は、スロットル弁１３ａおよびこれを開閉駆動するアクチュエータ１３ｂなどを備えている。スロットル弁１３ａは、吸気管１２の途中に回動自在に設けられており、当該回動に伴う開度の変化によりＴＨ通過吸入空気量ＧＴＨを変化させる。アクチュエータ１３ｂは、ＥＣＵ２に接続されたモータにギヤ機構（いずれも図示せず）を組み合わせたものであり、ＥＣＵ２からの駆動信号によって駆動されることにより、スロットル弁１３ａの開度（以下「スロットル弁開度」という）ＴＨを変化させる。
【００２４】
スロットル弁開度センサ２５は、例えばポテンショメータなどで構成され、スロットル弁開度ＴＨを検出して、その検出信号をＥＣＵ２に出力する。吸気管内絶対圧センサ２６は、半導体圧力センサなどで構成されており、吸気管１２内の絶対圧である吸気管内絶対圧ＰＢＡを検出して、その検出信号をＥＣＵ２に出力する。さらに、吸気管１２には、吸気温センサ２７が設けられている。吸気温センサ２７は、サーミスタで構成されており、吸気管１２内の吸気温ＴＡを検出して、その検出信号をＥＣＵ２に出力する。
【００２５】
また、エンジン３の排気管１４には、触媒装置１７が設けられている。この触媒装置１７は、ＮＯｘ触媒と３元触媒を組み合わせたものであり、このＮＯｘ触媒は、図示しないが、イリジウム触媒（イリジウムを担持した炭化ケイ素ウイスカ粉末とシリカの焼成体）をハニカム構造の基材の表面に被覆し、その上にペロブスカイト型複酸化物（ＬａＣｏＯ３粉末とシリカの焼成体）をさらに被覆したものである。触媒装置１７は、ＮＯｘ触媒による還元作用により、後述する成層燃焼モードでの運転時およびリーンバーン運転時の排気ガス中のＮＯｘを浄化するとともに、３元触媒の酸化還元作用により、リーンバーン運転以外の運転時の排気ガス中のＣＯ、ＨＣおよびＮＯｘを浄化する。
【００２６】
さらに、吸気管１２のスロットル弁機構１３よりも下流側と、排気管１４の触媒装置１７よりも上流側との間には、ＥＧＲ管１５が接続されている。このＥＧＲ管１５を介して、エンジン３の排気ガスが吸気側に再循環することによって、前記燃焼室３ｃ内の燃焼温度を下げることにより排気ガス中のＮＯｘを低減させるＥＧＲ動作が行われる。また、ＥＧＲ管１５には、ＥＧＲ制御弁１６が取り付けられている。ＥＧＲ制御弁１６は、リニア電磁弁であり、ＥＣＵ２からの駆動信号に応じてそのバルブリフト量がリニアに変化し、これによってＥＧＲ管１５を開閉する。また、ＥＧＲ制御弁１６のバルブリフト量は、バルブリフト量センサ（図示せず）によって検出され、その検出信号はＥＣＵ２に出力される。
【００２７】
ＥＣＵ２は、エンジン３の運転状態に応じてＥＧＲ制御弁１６の目標バルブリフト量を算出するとともに、実際のバルブリフト量が目標バルブリフト量になるように、ＥＧＲ制御弁１６を制御することにより、ＥＧＲ量を制御する。
【００２８】
さらに、排気管１４の触媒装置１７よりも上流側および下流側にはそれぞれ、ＬＡＦセンサ２８およびＯ２センサ（図示せず）が設けられている。ＬＡＦセンサ２８は、ジルコニアおよび白金電極などで構成され、理論空燃比よりもリッチなリッチ領域から極リーン領域までの広範囲な空燃比の領域において、排気ガス中の酸素濃度をリニアに検出し、それを表す検出信号をＥＣＵ２に出力する。ＥＣＵ２は、このＬＡＦセンサ２８の検出信号に基づき、排気ガス中の空燃比を表す検出空燃比ＫＡＣＴを算出する。なお、この検出空燃比ＫＡＣＴは、具体的には当量比として算出される。また、Ｏ２センサは、排気ガス中の酸素濃度を表す検出信号をＥＣＵ２に出力する。
【００２９】
さらに、ＥＣＵ２には、大気圧センサ２９、アクセル開度センサ３０（運転状態検出手段）、シフト位置センサ３１および車速センサ３２が接続されている。この大気圧センサ２９は、半導体圧力センサで構成されており、大気圧ＰＡを検出して、その検出信号をＥＣＵ２に出力する。また、アクセル開度センサ３０は、アクセルペダル（図示せず）の操作量であるアクセル開度ＡＰを検出して、その検出信号をＥＣＵ２に出力する。さらに、シフト位置センサ３１および車速センサ３２はそれぞれ、自動変速機（図示せず）のシフト位置ＰＯＳＩおよび車速ＶＰを検出して、その検出信号をＥＣＵ２に出力する。
【００３０】
ＥＣＵ２は、ＣＰＵ２ａ、ＲＡＭ２ｂおよびＲＯＭ２ｃなどからなるマイクロコンピュータで構成されている。ＥＣＵ２は、前述した各種のセンサ２０〜３２の検出信号に応じ、ＲＯＭ２ｃに記憶された制御プログラムなどに基づいて各種の演算処理を実行する。具体的には、上記各種の検出信号からエンジン３の運転状態を判別し、その判別結果に基づいて、エンジン３の燃焼モード（燃焼形態）を決定するとともに、決定された燃焼モードに従って、インジェクタ４の燃料噴射量および点火プラグ５の点火時期などを制御する。なお、本実施形態では、ＥＣＵ２により、運転状態検出手段、要求燃料量算出手段、要求トルク算出手段、記憶手段、トルク変化量パラメータ算出手段、燃焼効率推定手段、および切換時要求燃料量算出手段が構成されている。
【００３１】
上記の燃焼モードは、エンジン回転数ＮＥ、および後述するようにして算出される要求トルクＰＭＣＭＤに応じて決定され、原則として、アイドル運転時などの極低負荷運転時には成層燃焼モードに、極低負荷運転時以外の運転時には均一燃焼モードにそれぞれ決定される。また、両燃焼モード間の切換時には、燃焼モードが、２回噴射燃焼モードに決定される。
【００３２】
上記の成層燃焼モードでは、燃料をインジェクタ４から圧縮行程中に燃焼室３ｃ内に噴射し、噴射燃料の大部分を凹部３ｄに衝突させることにより燃料噴流が形成される。この燃料噴流と、吸気管１２からの流入空気の流動とによって混合気が生成されるとともに、ピストン３ａが圧縮行程の上死点に近い位置にあることで、混合気を点火プラグ５の付近に偏在させながら、成層燃焼が行われる。また、成層燃焼モードでの混合気の空燃比は、スロットル弁１３ａをほぼ全開状態に制御することにより、理論空燃比よりも極めてリーンな空燃比（例えば２７〜６０）に制御される。
【００３３】
均一燃焼モードでは、燃料を吸気行程中に燃焼室３ｃ内に噴射し、燃料噴流と空気の流動とによって生成した混合気を燃焼室３ｃ内に均一に分散させながら、均一燃焼が行われる。また、均一燃焼モードでの空燃比は、成層燃焼モード中のときと比較して、スロットル弁１３ａを小さな開度に制御することにより吸入空気量を小さくすることで、成層燃焼モードよりもリッチな空燃比（例えば１２〜２２）に制御される。さらに、均一燃焼モードでのＥＧＲ制御弁１６の目標バルブリフト量は、成層燃焼モードの場合よりも小さな値に設定される。
【００３４】
さらに、２回噴射燃焼モードでは、原則として１燃焼サイクル中に燃料を間隔をあけて２回噴射し、成層燃焼モードよりもリッチな空燃比（例えば１４．７〜２７）で、燃焼が行われる。この場合の２回の燃料噴射は、吸気行程中と圧縮行程中に実行される。
【００３５】
なお、均一燃焼モードには、ストイキ燃焼モードおよびリーン燃焼モードが含まれ、これらは、エンジン３の運転状態に従って決定される。前者での空燃比は、理論空燃比またはこれよりもリッチ側に制御される。また、リーン燃焼モードでの空燃比は、ストイキ燃焼モードの場合よりもリーン側に制御される。
【００３６】
次に、燃料噴射制御処理について、図２〜図１７を参照しながら説明する。図２は、この燃料噴射制御処理のメインルーチンを示しており、本処理は、ＴＤＣ信号の入力に同期して割り込み実行される。まず、ステップ１（「Ｓ１」と図示。以下同じ）において、各種の補正係数を算出する。これら各種の補正係数はそれぞれ、各種のパラメータ、例えば吸気温ＴＡ、大気圧ＰＡやエンジン水温ＴＷなどに応じて、各種のテーブルやマップ（いずれも図示せず）を検索することによって算出される。
【００３７】
次いで、ステップ２および３において、吸気行程噴射用の目標空燃比ＫＣＭＤ１ＳＴおよび圧縮行程噴射用の目標空燃比ＫＣＭＤ２ＮＤをそれぞれ算出する。これらの吸気・圧縮行程噴射用の目標空燃比ＫＣＭＤ１ＳＴ，ＫＣＭＤ２ＮＤは、エンジン回転数ＮＥや要求トルクＰＭＣＭＤなどに応じて算出される。この要求トルクＰＭＣＭＤは、図３に示す要求トルクＰＭＣＭＤ算出処理によって算出され、具体的には、そのステップ１５において、エンジン回転数ＮＥおよびアクセル開度ＡＰに応じ、マップ（図示せず）を検索することによって算出される。なお、要求トルクＰＭＣＭＤは、燃焼時の図示平均有効圧力を示す。
【００３８】
ステップ３に続くステップ４では、Ｆ／Ｂ補正係数ＫＡＦを算出する。このＦ／Ｂ補正係数ＫＡＦは、燃焼モードに応じて算出される。具体的には、検出空燃比ＫＡＣＴや上記ステップ２および３で求めた吸気または圧縮行程噴射用の目標空燃比ＫＣＭＤ１ＳＴ，ＫＣＭＤ２ＮＤなどに応じて、フィードバック制御アルゴリズムにより算出される。
【００３９】
次いで、吸気行程噴射用の基本燃料噴射量ＴＩＭ１ＳＴを算出する（ステップ５）。この基本燃料噴射量ＴＩＭ１ＳＴは、次のようにして算出される。すなわち、ＴＨ通過吸入空気量ＧＴＨおよび吸気管内絶対圧ＰＢＡなどに基づいて、気筒内に実際に吸入されたと推定される吸入空気量として実吸入空気量を算出する。そして、算出した実吸入空気量に応じ、テーブル（図示せず）を検索することなどによって、吸気行程噴射用の基本燃料噴射量ＴＩＭ１ＳＴが算出される。
【００４０】
次に、圧縮行程噴射用の基本燃料噴射量ＴＩＭ２ＮＤを算出する（ステップ６）。この基本燃料噴射量ＴＩＭ２ＮＤは、上記の吸気行程噴射用の基本燃料噴射量ＴＩＭ１ＳＴとほぼ同様にして算出される。その算出方法の説明については省略する。
【００４１】
次いで、要求燃料噴射量ＴＣＹＬ（要求燃料量）を算出する（ステップ７）。この算出処理については後述する。次に、算出した要求燃料噴射量ＴＣＹＬを、燃料圧ＰＦおよび燃料温ＴＦに基づくそれぞれの補正係数で補正することにより、最終燃料噴射量ＴＯＵＴを算出する（ステップ８）。次いで、算出した最終燃料噴射量ＴＯＵＴに基づく駆動信号をインジェクタ４に出力することによって、燃料噴射を実行し（ステップ９）、本処理を終了する。なお、２回噴射燃焼モードでは、最終燃料噴射量ＴＯＵＴを分割することによって、吸気行程中および圧縮行程中に噴射する燃料噴射量が求められ、求めた燃料噴射量に基づく駆動信号がインジェクタ４に出力される。
【００４２】
次に、図２の上記ステップ７の要求燃料噴射量ＴＣＹＬを算出する処理について、図４のフローチャートを参照しながら説明する。まず、ステップ２０において、吸気行程噴射用の要求燃料噴射量ＴＣＹＬ１ＳＴＴを算出する。この要求燃料噴射量ＴＣＹＬ１ＳＴＴは、均一燃焼モードにおいて、要求燃料噴射量ＴＣＹＬとして用いられるものである。また、吸気行程噴射用の要求燃料噴射量ＴＣＹＬ１ＳＴＴは、上述した図２の処理で求めた各種の補正係数、吸気行程噴射用の目標空燃比ＫＣＭＤ１ＳＴ、Ｆ／Ｂ補正係数ＫＡＦ、および吸気行程噴射用の基本燃料噴射量ＴＩＭ１ＳＴを互いに乗算することにより算出される。
【００４３】
次いで、圧縮行程噴射用の要求燃料噴射量ＴＣＹＬ２ＮＤＴを算出する（ステップ２１）。この要求燃料噴射量ＴＣＹＬ２ＮＤＴは、成層燃焼モードにおいて、要求燃料噴射量ＴＣＹＬとして用いられるものである。また、圧縮行程噴射用の要求燃料噴射量ＴＣＹＬ２ＮＤＴは、各種の補正係数、圧縮行程噴射用の目標空燃比ＫＣＭＤ２ＮＤ、Ｆ／Ｂ補正係数ＫＡＦ、および圧縮行程噴射用の基本燃料噴射量ＴＩＭ２ＮＤを互いに乗算することにより算出される。
【００４４】
次に、暫定要求燃料噴射量ＴＣＹＬＬＭＴを算出する（ステップ２２）。この算出処理については後述する。次いで、膨張行程噴射用の要求燃料噴射量ＴＣＹＬ３ＲＤを算出する（ステップ２３）。この膨張行程噴射は、触媒装置１７に吸着されたＮＯｘおよび硫黄をそれぞれ還元および脱離させることにより、触媒装置１７の吸着能力を回復させるために、膨張行程中に気筒内に燃料を噴射するものである。上記の要求燃料噴射量ＴＣＹＬ３ＲＤは、この膨張行程噴射に用いられる燃料量である。なお、その算出方法の説明については省略する。
【００４５】
次に、成層燃焼許可フラグＦ＿ＤＩＳＣＯＫが「１」であるか否かを判別する（ステップ２４）。この成層燃焼許可フラグＦ＿ＤＩＳＣＯＫは、成層燃焼の実行条件が成立していることを「１」で表すものであり、その判定処理（図示せず）においてセットされる。なお、成層燃焼許可フラグＦ＿ＤＩＳＣＯＫが「１」のときには、原則として、燃焼モードが成層燃焼モードに決定される。
【００４６】
上記ステップ２４の答がＹＥＳで、成層燃焼の実行条件が成立しているときには、上記ステップ２２で算出した暫定要求燃料噴射量ＴＣＹＬＬＭＴを要求燃料噴射量ＴＣＹＬとして設定し（ステップ２５）、本処理を終了する。
【００４７】
一方、ステップ２４の答がＮＯで、Ｆ＿ＤＩＳＣＯＫ＝０、すなわち、成層燃焼の実行条件が成立していないときには、膨張行程噴射フラグＦ＿ＤＩＢＣが「１」であるか否かを判別する（ステップ２６）。この膨張行程噴射フラグＦ＿ＤＩＢＣは、上述した膨張行程噴射の実行条件が成立していることを「１」で表すものであり、その判定処理（図示せず）においてセットされる。
【００４８】
ステップ２６の答がＹＥＳで、膨張行程噴射の実行条件が成立しているときには、暫定要求燃料噴射量ＴＣＹＬＬＭＴと膨張行程噴射用の要求燃料噴射量ＴＣＹＬ３ＲＤとの和を、要求燃料噴射量ＴＣＹＬとして設定し（ステップ２７）、本処理を終了する。一方、ステップ２６の答がＮＯのときには、前記ステップ２５を実行し、本処理を終了する。
【００４９】
次いで、前記ステップ２２の暫定要求燃料噴射量ＴＣＹＬＬＭＴを算出する処理について、図５および図６のフローチャートを参照しながら説明する。本処理では、暫定要求燃料噴射量ＴＣＹＬＬＭＴは、原則として、均一燃焼モード中には吸気行程噴射用の要求燃料噴射量ＴＣＹＬ１ＳＴＴに設定され、成層燃焼モード中には圧縮行程噴射用の要求燃料噴射量ＴＣＹＬ２ＮＤＴに設定され、両燃焼モード間の切換時には、後述する第１〜第４のリミット値ＴＣＹＬＤＳ，ＴＣＹＬＤＬ，ＴＣＹＬＳＤ，ＴＣＹＬＬＤ（切換時要求燃料量）のいずれかに設定される。
【００５０】
これは次の理由による。すなわち、前述したように成層燃焼モードと均一燃焼モードとの間で設定されるべき吸入空気量およびＥＧＲ量は大きく異なり、また、切換時におけるこれらの変化には応答遅れがある。このため、前述したように気筒内に実際に吸入される吸入空気量に応じて設定される吸気・圧縮行程噴射用の要求燃料噴射量ＴＣＹＬ１ＳＴＴ，ＴＣＹＬ２ＮＤＴのうち、均一燃焼モードへの切換時に、前者ＴＣＹＬ１ＳＴＴは、設定すべき値よりも大きな値に設定され、これと逆の切換時に、後者ＴＣＹＬ２ＮＤＴは、設定すべき値よりも小さな値に設定される傾向にある。このような傾向にあることから、吸入空気量などが安定するまでの間、吸気・圧縮行程噴射用の要求燃料噴射量ＴＣＹＬ１ＳＴＴ，ＴＣＹＬ２ＮＤＴを制限するためである。このため、第１リミット値ＴＣＹＬＤＳなどは、吸気・圧縮行程噴射用の要求燃料噴射量ＴＣＹＬ１ＳＴＴ，ＴＣＹＬ２ＮＤＴを、均一燃焼モードへの切換時には上限側で、その逆の成層燃焼モードへの切換時には下限側でそれぞれ制限するように設定される。なお、第１リミット値ＴＣＹＬＤＳなどによる制限を以下「リミット」という。
【００５１】
まず、図５のステップ３０において、暫定要求燃料噴射量ＴＣＹＬＬＭＴの算出に用いられる各種のパラメータを算出する。この算出処理について、図７および図８を参照しながら説明する。
【００５２】
図７のステップ７０では、後述する切換ステータスの今回値ＥＭＯＤ＿ＳＴＳを、その前回値ＥＭＯＤ＿ＳＴＳＺとして設定する。次いで、成層燃焼許可フラグＦ＿ＤＩＳＣＯＫが「１」であるか否かを判別する（ステップ７１）。この答がＹＥＳ、すなわち、成層燃焼の実行条件が成立しているときには、図４の前記ステップ２１で求めた圧縮行程噴射用の要求燃料噴射量ＴＣＹＬ２ＮＤＴを、通常時要求燃料噴射量ＴＣＹＬＴとして設定する（ステップ７２）。一方、ステップ７１の答がＮＯで、Ｆ＿ＤＩＳＣＯＫ＝０、すなわち、成層燃焼の実行条件が成立していないときには、前記ステップ２０で求めた吸気行程噴射用の要求燃料噴射量ＴＣＹＬ１ＳＴＴを、通常時要求燃料噴射量ＴＣＹＬＴとして設定する（ステップ７３）。
【００５３】
上記ステップ７２または７３に続くステップ７４では、フューエルカットフラグの前回値Ｆ＿ＦＣＺが「１」であるか否かを判別する。この答がＹＥＳで、Ｆ＿ＦＣＺ＝１のとき、すなわち、前回のループでフューエルカット（以下「Ｆ／Ｃ」という）運転が実行されていたときには、以下のステップ７５〜８０において、上記の各種のパラメータを初期化する。まず、ステップ７５〜７７では、リミット時間ＴＭＴＣＹＬＭＴを値０にリセットし、切換ステータスＥＭＯＤ＿ＳＴＳを「０」にリセットするとともに、切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩ（燃焼モードが切り換えられる直前に算出された要求燃料量）を、所定値ＴＣＹＬＲＥＦに設定する。続くステップ７８〜８０では、切換直前要求トルクＰＭＴＣＹＬＩＮ、トルク変化量ＤＰＭＴＣＬＩＮおよびトルク変化量補正項ＴＣＹＬＤＰＭ（トルク変化量パラメータ）をそれぞれ値０に設定し、本処理を終了する。
【００５４】
以上のように、前回のループでＦ／Ｃ運転が実行されていた場合に、各種のパラメータを初期化するのは次の理由による。すなわち、後述するように、第１リミット値ＴＣＹＬＤＳなどは、燃焼モードの切換直前に算出された要求燃料噴射量ＴＣＹＬに応じて算出されるので、上記のような場合には、第１リミット値ＴＣＹＬＤＳなどの算出およびそれによるリミットを適切に行えないため、各種のパラメータを初期化することにより、この算出を行わないようにするためである。
【００５５】
一方、前記ステップ７４の答がＮＯ、すなわち、前回のループでＦ／Ｃが実行されていなかったときには、成層燃焼許可フラグの今回値Ｆ＿ＤＩＳＣＯＫがその前回値Ｆ＿ＤＩＳＣＯＫＺと等しいか否かを判別する（ステップ８１）。この答がＮＯで、Ｆ＿ＤＩＳＣＯＫ≠Ｆ＿ＤＩＳＣＯＫＺのとき、すなわち、今回のループが成層燃焼の実行条件が成立したまたは不成立になった直後のループであるときには、成層燃焼許可フラグＦ＿ＤＩＳＣＯＫが「１」であるか否かを判別する（ステップ８２）。
【００５６】
この答がＹＥＳ、すなわち、成層燃焼の実行条件が成立しているときには、吸気行程噴射用の目標空燃比の前回値ＫＣＭＤ１ＳＴＺが、予混合リーンバーン空燃比相当の所定のしきい値ＫＣＭＤＴＣＬＭＴ（例えば０．８８）以上であるか否かを判別する（ステップ８３）。この答がＹＥＳで、前回のループでの混合気の空燃比が、予混合リーンバーン空燃比以上でリッチ側に制御されていたときには、今回のループが、均一燃焼モードのうちのストイキ燃焼モードから成層燃焼モードに燃焼モードを切り換えた最初のループであるとして、リミット時間ＴＭＴＣＹＬＭＴを第１の所定時間ＴＭＴＣＹＬＭＳＤ（例えば３．０ｓｅｃ）に設定し（ステップ８４）、燃焼モードがストイキ燃焼モードから成層燃焼モードに切り換えられたことを表すために、切換ステータスＥＭＯＤ＿ＳＴＳを「３」にセットする（ステップ８５）。
【００５７】
一方、ステップ８３の答がＮＯで、ＫＣＭＤ１ＳＴＺ＜ＫＣＭＤＴＣＬＭＴのときには、今回のループが、均一燃焼モードのうちのリーン燃焼モードから成層燃焼モードに燃焼モードを切り換えた最初のループであるとして、リミット時間ＴＭＴＣＹＬＭＴを第２の所定時間ＴＭＴＣＹＬＭＬＤ（例えば２．５ｓｅｃ）に設定し（ステップ８６）、燃焼モードがリーン燃焼モードから成層燃焼モードに切り換えられたことを表すために、切換ステータスＥＭＯＤ＿ＳＴＳを「４」にセットする（ステップ８７）。
【００５８】
一方、上記ステップ８２の答がＮＯで、Ｆ＿ＤＩＳＣＯＫ＝０のとき、すなわち、成層燃焼の実行条件が成立していないときには、吸気行程噴射用の目標空燃比ＫＣＭＤ１ＳＴが、上記ステップ８３で用いたしきい値ＫＣＭＤＴＣＬＭＴ以上であるか否かを判別する（ステップ８８）。この答がＹＥＳで、今回の空燃比が、予混合リーンバーン空燃比以上でリッチ側に制御されているときには、今回のループが、成層燃焼モードからストイキ燃焼モードに燃焼モードを切り換えた最初のループであるとして、ステップ８９〜９３を実行する。
【００５９】
まず、ステップ８９および９０ではそれぞれ、車速ＶＰおよびエンジン回転数ＮＥがそれぞれ、所定車速ＶＰＴＣＬＭＤＳ（例えば１０ｋｍ／ｈ）および所定回転数ＮＥＴＣＬＭＤＳ（例えば８５０ｒｐｍ）よりも小さいか否かを判別する。これらの答がいずれもＮＯのときには、ステップ９１で、リミット時間ＴＭＴＣＹＬＭＴを第３の所定時間ＴＭＴＣＹＬＭＤＳＳ（例えば２．０ｓｅｃ）に設定する。一方、上記、ステップ８９および９０の答のいずれかがＹＥＳで、車速ＶＰまたはエンジン回転数ＮＥが小さいときには、エンジン３が低負荷運転状態にあるとして、ステップ９２で、リミット時間ＴＭＴＣＹＬＭＴを第４の所定時間ＴＭＴＣＹＬＭＤＳ（例えば５．０ｓｅｃ）に設定する。また、ステップ９１またはステップ９２に続くステップ９３では、燃焼モードが成層燃焼モードからストイキ燃焼モードに切り換えられたことを表すために、切換ステータスＥＭＯＤ＿ＳＴＳを「１」にセットする。
【００６０】
一方、前記ステップ８８の答がＮＯで、ＫＣＭＤ１ＳＴ＜ＫＣＭＤＴＣＬＭＴのときには、今回のループが、成層燃焼モードからリーン燃焼モードに燃焼モードを切り換えた最初のループであるとして、リミット時間ＴＭＴＣＹＬＭＴを第５の所定時間ＴＭＴＣＹＬＭＤＬ（例えば２．０ｓｅｃ）に設定し（ステップ９４）、燃焼モードが成層燃焼モードからリーン燃焼モードに切り換えられたことを表すために、切換ステータスＥＭＯＤ＿ＳＴＳを「２」にセットする（ステップ９５）。
【００６１】
前記ステップ８５、８７、９３または９５に続くステップ９６では、そのときの暫定要求燃料噴射量ＴＣＹＬＬＭＴ、すなわち燃焼モードの切換直前に得られた暫定要求燃料噴射量ＴＣＹＬＬＭＴを、切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩとして設定する。次いで、要求トルクの前回値ＰＭＣＭＤＺ、すなわち燃焼モードの切換直前での要求トルクＰＭＣＭＤが、所定の下限トルクＰＭＴＣＹＬＭＩＮ（例えば０．２ｋｇｆ／ｃｍ2 ）よりも小さいか否かを判別する（ステップ９７）。この答がＮＯのときには、切換直前要求トルクＰＭＴＣＹＬＩＮを要求トルクの前回値ＰＭＣＭＤＺに設定し（ステップ９８）、ステップ１００に進む。一方、ステップ９７の答がＹＥＳで、ＰＭＣＭＤＺ＜ＰＭＴＣＹＬＭＩＮのときには、切換直前要求トルクＰＭＴＣＹＬＩＮを下限トルクＰＭＴＣＹＬＭＩＮに設定し（ステップ９９）、リミット処理し、ステップ１００に進む。
【００６２】
一方、前記ステップ８１の答がＹＥＳで、Ｆ＿ＤＩＳＣＯＫ＝Ｆ＿ＤＩＳＣＯＫＺ、すなわち、今回のループが燃焼モードを切り換えた２回目以降のループであるときには、リミット実行フラグＦ＿ＴＣＹＬＬＭＴが「１」であるか否かを判別する（ステップ１０１）。このリミット実行フラグＦ＿ＴＣＹＬＬＭＴは、前述したリミットを実行していることを「１」で表すものである。
【００６３】
この答がＹＥＳで、リミットを実行しているときには、ステップ１００に進む一方、この答がＮＯのときには、前記ステップ７５以降を実行することで、各種のパラメータをリセットし、本処理を終了する。
【００６４】
以上のように、燃焼モードが切り換えられた直後において、前記ステップ９６が実行され、それにより、切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩは、燃焼モードの切換直前に算出された暫定要求燃料噴射量ＴＣＹＬＬＭＴに設定される。また、前述したように、この暫定要求燃料噴射量ＴＣＹＬＬＭＴは、膨張行程噴射が実行されない限り、要求燃料噴射量ＴＣＹＬに等しい（図４の前記ステップ２５）。したがって、切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩは、燃焼モードの切換直前における要求燃料噴射量ＴＣＹＬを表す。また、同様に、燃焼モードの切換直後において、前記ステップ９７〜９９が実行されるため、切換直前要求トルクＰＭＴＣＹＬＩＮは、上述したステップ９９によるリミット処理が行われない限り、燃焼モードの切換直前に算出された要求トルクＰＭＣＭＤに相当する。
【００６５】
前記ステップ９８、９９または１０１に続く、ステップ１００では、要求トルクＰＭＣＭＤが値０よりも小さいか否かを判別する。この答がＮＯのときには、算出用要求トルクＰＭＣＭＤＴＭＰを要求トルクＰＭＣＭＤに設定する（ステップ１０２）。一方、この答がＹＥＳで、要求トルクＰＭＣＭＤが負値のときには、算出用要求トルクＰＭＣＭＤＴＭＰを値０に設定し（ステップ１０３）、リミット処理する。
【００６６】
次に、ステップ１０４では、上記ステップ１０２または１０３で設定した算出用要求トルクＰＭＣＭＤＴＭＰから、上記ステップ９８または９９で設定した切換直前要求トルクＰＭＴＣＹＬＩＮを減算した値を、トルク変化量ＤＰＭＴＣＬＩＮとして設定する。このトルク変化量ＤＰＭＴＣＬＩＮは、その算出方法から明らかなように、上述したステップ９９および１０３によるリミット処理が行われない限り、燃焼モードの切換直前から今回までの要求トルクＰＭＣＭＤの変化量を表す。
【００６７】
次いで、上記ステップ１０４で設定したトルク変化量ＤＰＭＴＣＬＩＮに応じて、図９に示すＴＣＹＬＤＰＭテーブルを検索することにより、トルク変化量補正項ＴＣＹＬＤＰＭを求め（ステップ１０５）、本処理を終了する。このトルク変化量補正項ＴＣＹＬＤＰＭは、燃焼モードの切換直前から今回までの要求トルクＰＭＣＭＤの変化分を燃料量に換算したものであり、後述するように第１リミット値ＴＣＹＬＤＳなどを算出する際に加算項として用いられる。
【００６８】
上記のＴＣＹＬＤＰＭテーブルでは、トルク変化量補正項ＴＣＹＬＤＰＭは、トルク変化量ＤＰＭＴＣＬＩＮが、負値である第１所定値ＤＰ１（例えば−９ｋｇｆ／ｃｍ2 ）以下では負値である最小値ＴＤＰＭＭＩＮ（例えば値−３．１）に設定されるとともに、値０のときには値０に設定され、正値である第２所定値ＤＰ２（例えば９ｋｇｆ／ｃｍ2 ）以上では最大値ＴＤＰＭＭＡＸ（例えば値３．１）に設定されている。また、トルク変化量補正項ＴＣＹＬＤＰＭは、トルク変化量ＤＰＭＴＣＬＩＮが第１所定値ＤＰ１と第２所定値ＤＰ２との間では、ＤＰＭＴＣＬＩＮ値が大きいほど、より大きな値になるようにリニアに設定されている。これは、トルク変化量ＤＰＭＴＣＬＩＮの絶対値が大きいほど、すなわち、要求トルクＰＭＣＭＤの燃焼モードの切換直前からの増加量または減少量が大きいほど、それに応じてエンジン３の出力トルクを増加または減少させるために、燃料噴射量をより大きく増減させる必要があるので、トルク変化量補正項ＴＣＹＬＤＰＭを加算項として補正される第１リミット値ＴＣＹＬＤＳなどをより大きく増減させるためである。
【００６９】
以上のように、切換ステータスＥＭＯＤ＿ＳＴＳは、燃焼モードの切換直後（前記ステップ８１：ＮＯ）に、前記ステップ８２〜９５が実行されることにより、そのときの燃焼モードの切換パターンに応じて、上述したように「１」〜「４」にセットされる。また、切換ステータスＥＭＯＤ＿ＳＴＳは、リミットが終了したとき（前記ステップ１０１：ＮＯ）、またはＦ／Ｃ運転が実行されたとき（前記ステップ７４：ＹＥＳ）に、「０」にリセットされる。
【００７０】
次いで、図５に戻り、前記ステップ３０に続くステップ３１では、要求トルクＰＭＣＭＤが値０よりも大きいか否かを判別する。この答がＮＯで、エンジン３にトルクが要求されていないときには、アップカウント式の切換後経過時間タイマのタイマ値ＴＴＣＹＬＭＣを所定時間ＴＴＣＹＬＲＥＦ（例えば６．０ｓｅｃ）にセットし（ステップ３２）、暫定要求燃料噴射量ＴＣＹＬＬＭＴを、図７の前記ステップ７２または７３で設定した通常時要求燃料噴射量ＴＣＹＬＴに設定する（ステップ３３）。また、リミット実行フラグＦ＿ＴＣＹＬＬＭＴを「０」にセットし、リミットを実行しないようにする（ステップ３４）。これは、エンジン３にトルクが要求されていないことにより、燃料噴射量が値０かまたは極少量であるために、リミットを実行する必要性に乏しいためである。
【００７１】
一方、ステップ３１の答がＹＥＳで、ＰＭＣＭＤ＞０のときには、切換ステータスＥＭＯＤ＿ＳＴＳが「０」であるか否かを判別する（ステップ３５）。この答がＹＥＳ、すなわち、燃焼モードが切り換えられていないときには、前記ステップ３２〜３４を実行する。
【００７２】
一方、ステップ３５の答がＮＯで、ＥＭＯＤ＿ＳＴＳ≠０のときには、切換ステータスの今回値ＥＭＯＤ＿ＳＴＳが、その前回値ＥＭＯＤ＿ＳＴＳＺと等しいか否かを判別する（ステップ３６）。この答がＹＥＳで、切換ステータスＥＭＯＤ＿ＳＴＳが変化しておらず、今回のループが燃焼モードの切換直後でないときには、リミット実行フラグＦ＿ＴＣＹＬＬＭＴが「１」であるか否かを判別する（ステップ３７）。この答がＮＯで、リミットを実行していないときには、前記ステップ３２〜３４を実行する。一方、ステップ３７の答がＹＥＳで、リミットを実行しているときには、ステップ３９に進む。
【００７３】
一方、上記ステップ３６の答がＮＯで、ＥＭＯＤ＿ＳＴＳ≠ＥＭＯＤ＿ＳＴＳＺ、すなわち、今回のループが燃焼モードの切換直後であるときには、前記ステップ３２でセットした切換後経過時間タイマのタイマ値ＴＴＣＹＬＭＣを値０にリセットし（ステップ３８）、ステップ３９に進む。
【００７４】
このステップ３９では、切換後経過時間タイマのタイマ値ＴＴＣＹＬＭＣが、図７の前記ステップ８４、８６、９１、９２または９４で設定したリミット時間ＴＭＴＣＹＬＭＴよりも小さいか否かを判別する。この答がＹＥＳ、すなわち、燃焼モードの切換後、切換パターンに応じたリミット時間ＴＭＴＣＹＬＭＴが経過していないときには、切換ステータスＥＭＯＤ＿ＳＴＳが「１」であるか否かを判別する（ステップ４０）。この答がＹＥＳ、すなわち、切換パターンが成層燃焼モード→ストイキ燃焼モードのときには、この切換パターン用の第１リミット値ＴＣＹＬＤＳを算出する（ステップ４１）。次いで、算出した第１リミット値ＴＣＹＬＤＳを暫定要求燃料噴射量ＴＣＹＬＬＭＴとして設定し（ステップ４２）、リミット実行フラグＦ＿ＴＣＹＬＬＭＴを第１リミット値算出フラグＦ＿ＴＣＹＬＤＳにセットされている値にセットする（ステップ４３）。
【００７５】
一方、ステップ４０の答がＮＯのときには、上記ステップ４０〜４３と同様に、ステップ４４〜５４を実行する。まず、ステップ４４および４５では、切換ステータスＥＭＯＤ＿ＳＴＳが「２」および「３」であるか否かをそれぞれ判別する。そして、ステップ４４の答がＹＥＳ（ＥＭＯＤ＿ＳＴＳ＝２）で、切換パターンが成層燃焼モード→リーン燃焼モードのときには、この切換パターン用の第２リミット値ＴＣＹＬＤＬを算出し（ステップ４６）、この第２リミット値ＴＣＹＬＤＬを暫定要求燃料噴射量ＴＣＹＬＬＭＴとして設定し（ステップ４７）、リミット実行フラグＦ＿ＴＣＹＬＬＭＴを第２リミット値算出フラグＦ＿ＴＣＹＬＤＬの値にセットする（ステップ４８）。
【００７６】
また、上記ステップ４５の答がＹＥＳ（ＥＭＯＤ＿ＳＴＳ＝３）で、切換パターンがストイキ燃焼モード→成層燃焼モードのときには、この切換パターン用の第３リミット値ＴＣＹＬＳＤを算出し（ステップ４９）、この第３リミット値ＴＣＹＬＳＤを暫定要求燃料噴射量ＴＣＹＬＬＭＴとして設定し（ステップ５０）、リミット実行フラグＦ＿ＴＣＹＬＬＭＴを第３リミット値算出フラグＦ＿ＴＣＹＬＳＤの値にセットする（ステップ５１）。さらに、上記ステップ４５の答がＮＯ（ＥＭＯＤ＿ＳＴＳ＝４）で、切換パターンがリーン燃焼モード→成層燃焼モードのときには、この切換パターン用の第４リミット値ＴＣＹＬＬＤを算出し（ステップ５２）、この第４リミット値ＴＣＹＬＬＤを暫定要求燃料噴射量ＴＣＹＬＬＭＴとして設定し（ステップ５３）、リミット実行フラグＦ＿ＴＣＹＬＬＭＴを第４リミット値算出フラグＦ＿ＴＣＹＬＬＤの値にセットする（ステップ５４）。
【００７７】
一方、前記ステップ３９の答がＮＯで、ＴＴＣＹＬＭＣ≧ＴＭＴＣＹＬＭＴのとき、すなわち、燃焼モードの切換後、リミット時間ＴＭＴＣＹＬＭＴが経過したときには、リミットの実行期間が終了したとして、前記ステップ３３および３４を実行し、リミットを終了する。
【００７８】
前記ステップ３４、４３、４８、５１または５４に続くステップ５５では、リミット実行フラグＦ＿ＴＣＹＬＬＭＴが「１」であるか否かを判別する。この答がＹＥＳで、リミットを実行しているときには、成層燃焼許可フラグＦ＿ＤＩＳＣＯＫが「０」であるか否かを判別する（ステップ５６）。この答がＹＥＳで、成層燃焼の実行条件が成立していないときには、ダウンカウント式のディレイタイマのタイマ値ＴＡＦＤＴＯＳを所定の待機時間ＴＭＡＦＤＴＯＳ（例えば３．０ｓｅｃ）にセットし（ステップ５７）、ステップ５８に進む。一方、ステップ５５の答がＮＯで、Ｆ＿ＴＣＹＬＬＭＴ＝０のとき、またはステップ５６の答がＮＯで、Ｆ＿ＤＩＳＣＯＫ＝１のときには、ステップ５７をスキップし、ステップ５８に進む。
【００７９】
このステップ５８では、上記ステップ５７でセットしたディレイタイマのタイマ値ＴＡＦＤＴＯＳが値０であるか否かを判別する。この答がＮＯのときには、成層燃焼モードを禁止するために、成層燃焼モードフラグＦ＿ＴＡＦＤＴＯＳ０を「０」にセットし（ステップ５９）、本処理を終了する。一方、この答がＹＥＳで、ＴＡＦＤＴＯＳ＝０のときには、成層燃焼モードフラグＦ＿ＴＡＦＤＴＯＳ０を「１」にセットし（ステップ６０）、本処理を終了する。
【００８０】
以上のように、上記ステップ５５〜５９から明らかなように、成層燃焼モードから均一燃焼モードへの切換パターンでのリミットが実行されている状態から、このリミットが終了した後、または成層燃焼の実行条件が成立した後、待機時間ＴＭＡＦＤＴＯＳが経過するまでは、成層燃焼モードが禁止される。これにより、成層燃焼モードから均一燃焼モードへの切換時に、成層燃焼の実行条件の成立あるいはリミットの終了に応じて、燃焼モードが再び成層燃焼モードにすぐに切り換えられるのを防止することができる。
【００８１】
また、燃焼モードの切換時（前記ステップ３５：ＮＯ）には、前記ステップ４０〜５４により、そのときの切換パターンに応じて、第１〜第４のリミット値ＴＣＹＬＤＳ，ＴＣＹＬＤＬ，ＴＣＹＬＳＤ，ＴＣＹＬＬＤのいずれかが算出され、算出されたリミット値によるリミットが実行される。そして、燃焼モードの切換後、リミット時間ＴＭＴＣＹＬＭＴが経過すると（前記ステップ３９：ＮＯ）、前記ステップ３３および３４により、リミットが終了される。
【００８２】
なお、前述したように、ストイキ燃焼モードへの切換時にリミット時間ＴＭＴＣＹＬＭＴとして用いられる第３および第４の所定時間ＴＭＴＣＹＬＭＤＳＳ，ＴＭＴＣＹＬＭＤＳは、ＴＭＴＣＹＬＭＤＳＳ＜ＴＭＴＣＹＬＭＤＳの大小関係に設定されている。これは次の理由による。すなわち、前述したように、第４の所定時間ＴＭＴＣＹＬＭＤＳは、前記ステップ８９および９０により、車速ＶＰまたはエンジン回転数ＮＥが小さいとき、すなわち、エンジン３が低負荷運転状態にあるときのリミット時間ＴＭＴＣＹＬＭＴとして用いられる。また、ストイキ燃焼モードでの低負荷運転中の吸入空気量は、成層燃焼モードのときよりも遥かに小さいことによって、低負荷運転状態でのストイキ燃焼モードへの切換時では、吸入空気量がストイキ燃焼モードに適した大きさになるのに特に時間がかかるので、その分、リミットの実行期間を延長するためである。
【００８３】
また、第１〜第３の所定時間ＴＭＴＣＹＬＭＳＤ，ＴＭＴＣＹＬＭＬＤ，ＴＭＴＣＹＬＭＤＳＳ、および第５の所定時間ＴＭＴＣＹＬＭＤＬは、前述したように成層燃焼モードでのＥＧＲ制御弁１６の目標バルブリフト量が均一燃焼モードの場合よりも大きいことと、ＥＧＲ制御弁１６の応答性を考慮し、実際のバルブリフト量が切換後の燃焼モードに適した値に確実に達するのに必要な時間としてそれぞれ設定されている。具体的には、均一燃焼モードへの切換時用の第３および第５の所定時間ＴＭＴＣＹＬＭＤＳＳ，ＴＭＴＣＹＬＭＤＬは、成層燃焼モードへの切換時用の第１および第２の所定時間ＴＭＴＣＹＬＭＳＤ，ＴＭＴＣＹＬＭＬＤよりも短い時間に設定されている。これは、均一燃焼モードへの切換時におけるＥＧＲ制御弁１６の閉弁時には、ＥＧＲ制御弁１６の弁体に、ステッピングモータによる閉じ側への駆動力に加えて、ばねによる閉じ側への反力がさらに作用するので、上記の弁体の閉弁に必要な時間が、開弁時間よりも短いためである。以上により、燃焼モードの切換時におけるＥＧＲ制御弁１６の応答遅れの間、リミットを確実に実行することができる。
【００８４】
次いで、図５の前記ステップ４１で実行される、成層燃焼モードからストイキ燃焼モードへの切換時用の第１リミット値ＴＣＹＬＤＳの算出処理について、図１０および図１１を参照しながら説明する。まず、ステップ１１０では、リミット実行フラグＦ＿ＴＣＹＬＬＭＴが「１」であるか否かを判別する。この答がＹＥＳで、リミットを実行しているときには、それまでにセットされていた要求トルク領域外フラグＦ＿ＴＣＹＬＤＳＰＭの値を、その暫定フラグＦ＿ＴＣＹＬＤＳＰＭＴＭＰにシフトする（ステップ１１１）。この要求トルク領域外フラグＦ＿ＴＣＹＬＤＳＰＭは、リミットの実行中に、要求トルクＰＭＣＭＤが非常に大きくなったことを「１」で表すものである。一方、ステップ１１０の答がＮＯ、すなわち、リミットを実行しておらず、今回のループがリミットを開始した最初のループであるときには、暫定フラグＦ＿ＴＣＹＬＤＳＰＭＴＭＰを「０」にセットする（ステップ１１２）。
【００８５】
次に、ステップ１１３では、暫定フラグＦ＿ＴＣＹＬＤＳＰＭＴＭＰが「１」であるか否かを判別する。この答がＮＯのときには、要求トルクＰＭＣＭＤが、所定の上限トルクＰＭＴＣＹＬＬＧ（例えば６．０ｋｇｆ／ｃｍ2 ）以下であるか否かを判別する（ステップ１１４）。この答がＹＥＳで、要求トルクＰＭＣＭＤがあまり大きくないときには、暫定フラグＦ＿ＴＣＹＬＤＳＰＭＴＭＰの値を、要求トルク領域外フラグＦ＿ＴＣＹＬＤＳＰＭにシフトする（ステップ１１５）。
【００８６】
次いで、運転状態ステータスＮＫＥＮＧＣＮＤが「１」であるか否かを判別する（ステップ１１６）。この運転状態ステータスＮＫＥＮＧＣＮＤは、エンジン３の運転状態を表すものであり、具体的には、エンジン３がアイドル運転状態のときに「１」に、高負荷運転状態のときに「２」に、低負荷運転状態のときに「３」に、それぞれセットされる。
【００８７】
このステップ１１６の答がＹＥＳで、ＮＫＥＮＧＣＮＤ＝１のとき、すなわち、エンジン３がアイドル運転状態にあるときには、図５の前記ステップ３８で初期化される切換後経過時間タイマのタイマ値ＴＴＣＹＬＭＣに応じて、図１２の第１テーブルを検索することにより、アイドル運転時用の第１テーブル値ＫＴＣＹＬＤＳＴを求め（ステップ１１７）、燃焼効率係数ＫＴＣＬＤＳＴとして設定する（ステップ１１８）。この第１テーブルでは、第１テーブル値ＫＴＣＹＬＤＳＴは、タイマ値ＴＴＣＹＬＭＣが大きいほど、すなわち燃焼モードの切換後の経過時間が長いほど、徐々に大きくなるように設定され、タイマ値ＴＴＣＹＬＭＣが所定時間Ｔα（例えば２ｓｅｃ）以上のときには、最大値ＫＴＤＳＴＭＡＸ（例えば値１）に設定されている。
【００８８】
一方、上記ステップ１１６の答がＮＯのときには、上記ステップ１１６〜１１８と同様に、ステップ１１９〜１２３において以下の処理を実行する。すなわち、ステップ１１９で、運転状態ステータスＮＫＥＮＧＣＮＤが「２」であるか否かを判別し、この答がＹＥＳで、高負荷運転状態のときには、ステップ１２０および１２１で、切換後経過時間タイマのタイマ値ＴＴＣＹＬＭＣに応じて、図１３に示す第２テーブルを検索することにより、高負荷運転時用の第２テーブル値ＫＴＣＹＬＤＳＴ２を求め、燃焼効率係数ＫＴＣＬＤＳＴとして設定する。
【００８９】
一方、ステップ１１９の答がＮＯで、低負荷運転状態のときには、ステップ１２２および１２３において、タイマ値ＴＴＣＹＬＭＣに応じて、図１４に示す第３テーブルを検索することにより、低負荷運転時用の第３テーブル値ＫＴＣＹＬＤＳＴ３を求め、燃焼効率係数ＫＴＣＬＤＳＴとして設定する。
【００９０】
上記の第２および第３のテーブルでは、第２および第３のテーブル値ＫＴＣＹＬＤＳＴ２，ＫＴＣＹＬＤＳＴ３は、タイマ値ＴＴＣＹＬＭＣが大きいほど、徐々に大きくなるように設定され、上述した第１テーブル値ＫＴＣＹＬＤＳＴと同様、タイマ値ＴＴＣＹＬＭＣが上記の所定時間Ｔα以上のときには、上記の最大値ＫＴＤＳＴＭＡＸに設定されている。また、この場合の第２および第３のテーブル値ＫＴＣＹＬＤＳＴ２，ＫＴＣＹＬＤＳＴ３の切換後の初期における増加度合は、第１テーブル値ＫＴＣＹＬＤＳＴの場合よりも大きく設定されている。
【００９１】
次いで、前記ステップ１１８、１２１または１２３に続くステップ１２４では、図８のステップ１０４で設定したトルク変化量ＤＰＭＴＣＬＩＮに応じて、図１５に示すＫＴＣＬＤＳＰテーブルを検索することにより、トルク補正係数ＫＴＣＬＤＳＰを求める。このテーブルでは、トルク補正係数ＫＴＣＬＤＳＰは、トルク変化量ＤＰＭＴＣＬＩＮが第３所定値ＤＰ３（例えば１ｋｇｆ／ｃｍ2 ）以下では、最小値ＫＴＤＳＰＭＩＮ（例えば値１）に設定され、第３所定値ＤＰ３とこれよりも大きい第４所定値ＤＰ４（例えば４ｋｇｆ／ｃｍ2 ）との間では、トルク変化量ＤＰＭＴＣＬＩＮが大きいほど、より大きな値に設定され、第４所定値ＤＰ４以上では、最大値ＫＴＤＳＰＭＡＸ（例えば値２）に設定されている。
【００９２】
次いで、前記ステップ１１８、１２１または１２３で設定した燃焼効率係数ＫＴＣＬＤＳＴに、上記ステップ１２４で求めたトルク補正係数ＫＴＣＬＤＳＰを乗算することによって、第１燃焼効率パラメータＫＴＣＬＤＳ（燃焼効率）を算出し（ステップ１２５）、後述するステップ１３０に進む。
【００９３】
一方、前記ステップ１１３の答がＹＥＳで、Ｆ＿ＴＣＹＬＤＳＰＭＴＭＰ＝１のとき、または前記ステップ１１４の答がＮＯで、ＰＭＣＭＤ＞ＰＭＴＣＹＬＬＧ、すなわち要求トルクＰＭＣＭＤが非常に大きいときには、ステップ１２６〜１２９において、以下の処理を実行し、ステップ１３０に進む。すなわち、暫定フラグＦ＿ＴＣＹＬＤＳＰＭＴＭＰを「１」にセットし、燃焼効率係数ＫＴＣＬＤＳＴおよびトルク補正係数ＫＴＣＬＤＳＰをそれぞれ値１に設定し、第１燃焼効率パラメータＫＴＣＬＤＳを所定値ＫＴＣＬＤＳαに設定する。なお、この所定値ＫＴＣＬＤＳαは、上記ステップ１２５で設定される第１燃焼効率パラメータＫＴＣＬＤＳよりも大きな値に設定されている。
【００９４】
上記のステップ１３０では、第１リミット値ＴＣＹＬＤＳを、上記ステップ１２５または１２９で設定した第１燃焼効率パラメータＫＴＣＬＤＳ、図８の前記ステップ９６および１０５でそれぞれ設定した切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩ、およびトルク変化量補正項ＴＣＹＬＤＰＭを用いて、次式（１）により算出する。
TCYLDS=(TCYLMINI+TCYLDPM)・(1+KTCLDS)      ……  （１）
【００９５】
なお、燃焼効率は、燃焼モードの切換が実行されるような低負荷運転中では、成層燃焼モードよりも均一燃焼モードの方が低い。このため、前者から後者への燃焼モードの切換時には、燃焼効率が低下し、それに伴い、同一のトルクを出力するための要求燃料噴射量ＴＣＹＬが増加する傾向にある。このため、上式（１）では、値１に第１燃焼効率パラメータＫＴＣＬＤＳを加算した値（１＋ＫＴＣＬＤＳ）を、切換直前を基準とした燃焼効率の低下度合を表す値として設定し、これを乗算しており、それにより、第１リミット値ＴＣＹＬＤＳがより大きな値に設定される。また、この場合の燃焼効率は、燃焼モードの切換後、時間が経過するにつれて次第に低下する。これに対応して、図１２〜図１４の第１〜第３のテーブルでは、前述したように、それぞれのテーブル値ＫＴＣＹＬＤＳＴ，ＫＴＣＹＬＤＳＴ２，ＫＴＣＹＬＤＳＴ３が、切換後経過時間タイマのタイマ値ＴＴＣＹＬＭＣの増加に伴って、徐々に大きくなるように設定されている。これにより、上記の値（１＋ＫＴＣＬＤＳ）を、燃焼モードの切換後の時間の経過に応じて変化する実際の燃焼効率に見合うように適切に設定することができる。
【００９６】
また、前述した図１５のテーブルでは、トルク変化量ＤＰＭＴＣＬＩＮが第３所定値ＤＰ３よりも大きく、燃焼モードの切換後、要求トルクＰＭＣＭＤが増加しているときには、トルク補正係数ＫＴＣＬＤＳＰはトルク変化量ＤＰＭＴＣＬＩＮが大きいほどより大きな値に設定されているので、これにより第１燃焼効率パラメータＫＴＣＬＤＳを増大補正し、要求燃料噴射量ＴＣＹＬを増量補正することによって、運転者の加速要求を満たすことができる。
【００９７】
さらに、前記ステップ１１２〜１１４および１２９により、リミットの実行中に一旦、要求トルクＰＭＣＭＤが非常に大きくなると、その後リミットが終了するまで、第１燃焼効率パラメータＫＴＣＬＤＳが、ステップ１２５によって算出する場合よりも大きな所定値ＫＴＣＬＤＳαに設定される。これにより、要求トルクＰＭＣＭＤが非常に大きいときに、第１リミット値ＴＣＹＬＤＳによるリミットを緩めて、より大きなエンジン３の出力トルクを確保することができる。
【００９８】
次に、前記ステップ１３０に続く、ステップ１３１では、算出した第１リミット値ＴＣＹＬＤＳが、切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩよりも小さいか否かを判別する。この答がＹＥＳで、第１リミット値ＴＣＹＬＤＳが切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩを下回ったときには、第１リミット値ＴＣＹＬＤＳを切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩに設定し（ステップ１３２）、ステップ１３３に進む一方、ＮＯのときには、そのままステップ１３３に進む。
【００９９】
上記ステップ１３１および１３２の趣旨は次によるものである。すなわち、前述したように、均一燃焼モードへの燃焼モードの切換時では、燃焼効率が低下する傾向にあるので、通常、第１リミット値ＴＣＹＬＤＳは、切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩよりも大きくなり、ステップ１３１の答はＮＯになる。一方、低負荷運転状態においてエアコンなどの補機がＯＮされることによって、均一燃焼モードに燃焼モードが切り換えられた後、そのリミット中にＯＦＦされたような場合には、それに応じて要求トルクＰＭＣＭＤが減少するのに伴い、トルク変化量補正項ＴＣＹＬＤＰＭが減少する結果、第１リミット値ＴＣＹＬＤＳが過小に算出される場合がある。そのような第１リミット値ＴＣＹＬＤＳをそのまま用いてリミットを実行すると、空燃比が極めてリーンになることで、燃焼が不安定になるおそれがある。ステップ１３１の判別は、このような事態を想定したものであり、第１リミット値ＴＣＹＬＤＳが切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩを下回ったときに、ステップ１３２により第１リミット値ＴＣＹＬＤＳを切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩに設定することによって、空燃比をリッチ側に維持することで、安定した燃焼を確保することができる。
【０１００】
上記ステップ１３３では、通常時要求燃料噴射量ＴＣＹＬＴが第１リミット値ＴＣＹＬＤＳよりも大きいか否かを判別する（ステップ１３３）。この答がＹＥＳのときには、第１リミット値ＴＣＹＬＤＳによるリミットの実行中であることを表すために、第１リミット値算出フラグＦ＿ＴＣＹＬＤＳを「１」にセットする（ステップ１３４）とともに、暫定フラグＦ＿ＴＣＹＬＤＳＰＭＴＭＰの値を要求トルク領域外フラグＦ＿ＴＣＹＬＤＳＰＭにシフトし（ステップ１３５）、本処理を終了する。
【０１０１】
一方、ステップ１３３の答がＮＯで、ＴＣＹＬＴ≦ＴＣＹＬＤＳのときには、通常時要求燃料噴射量ＴＣＹＬＴを第１リミット値ＴＣＹＬＤＳとして設定する（ステップ１３６）。また、第１リミット値ＴＣＹＬＤＳが通常時要求燃料噴射量ＴＣＹＬＴ以上の関係になっていて、リミットを行えない状態であるので、第１リミット値ＴＣＹＬＤＳの算出を終了させ、リミットを終了させるために、第１リミット値算出フラグＦ＿ＴＣＹＬＤＳを「０」にリセットする（ステップ１３７）とともに、暫定フラグＦ＿ＴＣＹＬＤＳＰＭＴＭＰを「０」にリセットし（ステップ１３８）、上記ステップ１３５を実行し、本処理を終了する。
【０１０２】
なお、図５の前記ステップ４６で実行される、成層燃焼モードからリーン燃焼モードへの燃焼モードの切換時用の第２リミット値ＴＣＹＬＤＬの算出処理については、上述した第１リミット値ＴＣＹＬＤＳの算出処理とほぼ同様に行われる。その説明については省略する。また、前記ステップ４７および４８の第３および第４のリミット値ＴＣＹＬＳＤ，ＴＣＹＬＬＤの算出処理は、ほぼ同様に行われる。以下、これらを代表して、リーン燃焼モードから成層燃焼モードへの燃焼モードの切換時用の後者ＴＣＹＬＬＤの算出処理について、図１６を参照しながら説明する。
【０１０３】
まず、ステップ１５０では、切換後経過時間タイマのタイマ値ＴＴＣＹＬＭＣに応じて、図１７に示すＫＴＣＬＬＤテーブルを検索することにより、第４燃焼効率パラメータＫＴＣＬＬＤ（燃焼効率）を求める。このテーブルでは、第４燃焼効率パラメータＫＴＣＬＬＤは、このタイマ値ＴＴＣＹＬＭＣが大きいほど、徐々に大きくなるように設定されている。
【０１０４】
次いで、ステップ１５１において、第４リミット値ＴＣＹＬＬＤを、上記の第４燃焼効率パラメータＫＴＣＬＬＤ、切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩおよびトルク変化量補正項ＴＣＹＬＤＰＭを用いて、次式（２）により算出する。
TCYLLD=(TCYLMINI+TCYLDPM)・(1-KTCLLD)      ……  （２）
【０１０５】
なお、前述したように、均一燃焼モードから成層燃焼モードへの燃焼モードの切換時では、燃焼効率が上昇し、それに伴い、同一のトルクを出力するための要求燃料噴射量ＴＣＹＬが減少する傾向にある。このため、上式（２）では、前式（１）と異なり、値１から第４燃焼効率パラメータＫＴＣＬＬＤを減算した値（１−ＫＴＣＬＬＤ）を、切換直前を基準とした燃焼効率の上昇度合を表す値として設定し、これを乗算しており、それにより、第４リミット値ＴＣＹＬＬＤがより小さな値に設定される。また、この場合の燃焼効率は、燃焼モードの切換後、時間が経過するにつれて次第に上昇する。これに対応して、図１７のテーブルでは、第４燃焼効率パラメータＫＴＣＬＬＤは、上述したように、切換後経過時間タイマのタイマ値ＴＴＣＹＬＭＣの増加に伴って、徐々に大きくなるように設定されている。これにより、上記の値（１−ＫＴＣＬＬＤ）を、燃焼モードの切換後の時間の経過に応じて変化する実際の燃焼効率に見合うように適切に設定することができる。
【０１０６】
次いで、算出した第４リミット値ＴＣＹＬＬＤが、切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩよりも大きいか否かを判別する（ステップ１５２）。この答がＹＥＳで、第４リミット値ＴＣＹＬＬＤが切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩを上回ったときには、第４リミット値ＴＣＹＬＬＤを切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩに設定し（ステップ１５３）、ステップ１５４に進む一方、ＮＯのときには、そのままステップ１５４に進む。
【０１０７】
上記ステップ１５２および１５３の趣旨は、前記ステップ１３１および１３２の趣旨と同様である。すなわち、低負荷運転状態において補機がＯＦＦされることによって燃焼モードが成層燃焼モードに切り換えられた後、そのリミット中に補機がＯＮされたような場合には、それに応じて要求トルクＰＭＣＭＤが増加するのに伴い、第４リミット値ＴＣＹＬＬＤが過大に算出される場合がある。そのような第４リミット値ＴＣＹＬＬＤをそのまま用いてリミットを実行すると、空燃比が極めてリッチになることで、燃焼が不安定になるおそれがある。ステップ１５２の判別は、このような事態を想定したものであり、第４リミット値ＴＣＹＬＬＤが切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩを上回ったときに、ステップ１５３により第４リミット値ＴＣＹＬＬＤを切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩに設定することによって、空燃比をリーン側に維持することで、安定した燃焼を確保することができる。
【０１０８】
上記ステップ１５２または１５３に続くステップ１５４では、通常時要求燃料噴射量ＴＣＹＬＴが第４リミット値ＴＣＹＬＬＤよりも小さいか否かを判別する。この答がＹＥＳのときには、第４リミット値ＴＣＹＬＬＤによるリミットの実行中であることを表すために、第４リミット値算出フラグＦ＿ＴＣＹＬＬＤを「１」にセットし（ステップ１５５）、本処理を終了する。
【０１０９】
一方、ステップ１５４の答がＮＯで、ＴＣＹＬＴ≧ＴＣＹＬＬＤのときには、通常時要求燃料噴射量ＴＣＹＬＴを第４リミット値ＴＣＹＬＬＤとして設定する（ステップ１５６）。また、第４リミット値ＴＣＹＬＬＤが通常時要求燃料噴射量ＴＣＹＬＴ以下の関係になっていて、リミットを行えない状態であるので、第４リミット値ＴＣＹＬＬＤの算出を終了させ、リミットを終了させるために、第４リミット値算出フラグＦ＿ＴＣＹＬＬＤを「０」にセットし（ステップ１５７）、本処理を終了する。
【０１１０】
以上のように、本実施形態によれば、燃焼モードの切換時に、第１〜第４のリミット値ＴＣＹＬＤＳ，ＴＣＹＬＤＬ，ＴＣＹＬＳＤ，ＴＣＹＬＬＤを、切換直前要求燃料噴射量ＴＣＹＬＭＩＮＩをベースとして算出するので、この切換前後においてトルクの急激な段差を生じることなく、燃焼モードの移行を滑らかに行うことができる。また、第１リミット値ＴＣＹＬＤＳなどをトルク変化量補正項ＴＣＹＬＤＰＭに応じて算出するので、前述したように実吸入空気量に応じて算出される吸気行程噴射用および圧縮行程噴射用の要求燃料噴射量ＴＣＹＬ１ＳＴＴ，ＴＣＹＬ２ＮＤＴと異なり、切換直前からその時点までの実際の要求トルクＰＭＣＭＤの変化分を良好に反映させながら、第１リミット値ＴＣＹＬＤＳなどを急激に変動させることなく適切に設定できる。さらに、第１または第４の燃焼効率パラメータＫＴＣＬＤＳ，ＫＴＣＬＬＤに応じて、対応するリミット値を算出するので、これをそのときの実際の燃焼効率に応じた適切な値に設定できる。以上により、燃焼モードの切換時において、内燃機関の出力トルクを要求トルクに良好に一致させることができ、それにより、ドライバビリティを向上させることができる。
【０１１１】
なお、本発明は、説明した実施形態に限定されることなく、種々の態様で実施することができる。例えば、実施形態では、トルク変化量パラメータとして、トルク変化量補正項ＴＣＹＬＤＰＭを、要求トルクＰＭＣＭＤの燃焼モードの切換直前から今回までの変化量を燃料量に換算した加算項として算出したが、トルク変化量パラメータは、これに限らず、要求トルクＰＭＣＭＤの燃焼モードの切換直前から今回までの変化量を表すものであればよく、例えば、乗算される補正係数として算出してもよい。また、本発明は、クランク軸を鉛直方向に配置した船外機などのような船舶推進機用エンジンを含む、様々な産業用の筒内噴射式の内燃機関の制御装置に適用することが可能である。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。
【符号の説明】
【０１１２】
１  制御装置
２  ＥＣＵ（運転状態検出手段、要求燃料量算出手段、
要求トルク算出手段、記憶手段、トルク変化量パラメータ
算出手段、燃焼効率推定手段、切換時要求燃料量算出手段）
３  エンジン
２２  クランク角センサ（運転状態検出手段）
２４  エアフローセンサ（運転状態検出手段）
２６  吸気管内絶対圧センサ（運転状態検出手段）
３０  アクセル開度センサ（運転状態検出手段）
ＴＣＹＬ  要求燃料噴射量（要求燃料量）
ＰＭＣＭＤ  要求トルク
ＴＣＹＬＭＩＮＩ  切換直前要求燃料噴射量（燃焼モードが切り換えられる直前に算出
された要求燃料量）
ＴＣＹＬＤＰＭ  トルク変化量補正項（トルク変化量パラメータ）
ＫＴＣＬＤＳ  第１燃焼効率パラメータ（燃焼効率）
ＫＴＣＬＬＤ  第４燃焼効率パラメータ（燃焼効率）
ＴＣＹＬＤＳ  第１リミット値（切換時要求燃料量）
ＴＣＹＬＤＬ  第２リミット値（切換時要求燃料量）
ＴＣＹＬＳＤ  第３リミット値（切換時要求燃料量）
ＴＣＹＬＬＤ  第４リミット値（切換時要求燃料量）
【図１】
2005155428.tif 000003
【図２】
2005155428.tif 000004
【図３】
2005155428.tif 000005
【図４】
2005155428.tif 000006
【図５】
2005155428.tif 000007
【図６】
2005155428.tif 000008
【図７】
2005155428.tif 000009
【図８】
2005155428.tif 000010
【図９】
2005155428.tif 000011
【図１０】
2005155428.tif 000012
【図１１】
2005155428.tif 000013
【図１２】
2005155428.tif 000014
【図１３】
2005155428.tif 000015
【図１４】
2005155428.tif 000016
【図１５】
2005155428.tif 000017
【図１６】
2005155428.tif 000018
【図１７】
2005155428.tif 000019