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