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