(57)【特許請求の範囲】
【請求項１】
燃焼室に燃料を供給する燃料噴射部と、
前記燃焼室に供給された燃料に点火する点火部と、
クランクシャフトと、
前記クランクシャフトの回転位置であるクランク角度を検出し且つ前記クランクシャフトの回転速度である機関回転速度を検出する回転速度検出部と、
を備える内燃機関に適用され、
所定の自動停止条件が成立した場合に前記燃料噴射部による燃料の供給を停止して前記クランクシャフトの回転を停止させる自動停止制御を実行することができ、所定の再始動条件が成立した場合に内燃機関を再始動することができる制御部、を備える、
内燃機関の制御装置であって、
前記制御部は、
前記自動停止制御の実行中に、前記クランクシャフトの回転方向が最初に反転した時点である初回反転時点以降に所定の再始動条件が成立しているとき、膨張行程にある気筒の燃焼室に前記燃料噴射部によって燃料を供給し且つ当該気筒の燃焼室に供給された前記燃料に前記点火部によって点火する着火始動を実行するための処理が現時点において開始された場合に前記燃料の着火が起こると予測される時点である予測着火時における前記膨張行程にある気筒の上死点を基準とするクランク角度である予測クランク角度を所定期間が経過する毎に算出する予測クランク角度算出部と、
前記予測クランク角度が所定の上限角度以下であるときには前記着火始動によって前記内燃機関を再始動させ、前記予測クランク角度が前記上限角度よりも大きいときには前記着火始動を開始しない、着火始動部と、
を含む、
内燃機関の制御装置。
【請求項２】
請求項１に記載の内燃機関の制御装置において、
前記予測クランク角度算出部は、現時点から所定の着火所要期間が経過した時点を前記予測着火時として前記予測クランク角度を算出するように構成された、
内燃機関の制御装置。
【請求項３】
請求項２に記載の内燃機関の制御装置において、
前記予測クランク角度算出部は、現時点において前記着火始動を実行するための処理が開始された場合に燃料の点火から着火までに要する期間である着火期間を含む前記着火所要期間が経過した時点を前記予測着火時として、前記予測クランク角度を算出するように構成された、
内燃機関の制御装置。
【請求項４】
請求項２又は３に記載の内燃機関の制御装置において、
前記予測クランク角度算出部は、前記着火期間のみならず、現時点において前記着火始動を実行するための処理が開始された場合に前記燃料噴射部による燃料の供給から混合気の形成までに要する期間である混合気形成期間をも含む前記着火所要期間が現時点から経過した時点を前記予測着火時として、前記予測クランク角度を算出するように構成された、
内燃機関の制御装置。
【請求項５】
請求項２乃至４の何れか１項に記載の内燃機関の制御装置において、
前記予測クランク角度算出部は、膨張行程にある気筒の上死点を基準とするクランク角度と、同クランク角度にある同気筒において前記着火始動を実行するための処理を開始した場合における前記着火所要期間と、の対応関係を予め記憶しており、現時点における前記膨張行程にある気筒の上死点を基準とするクランク角度を前記対応関係に適用することによって前記着火所要期間を特定するように構成された、
内燃機関の制御装置。
【請求項６】
請求項２乃至５の何れか１項に記載の内燃機関の制御装置において、
前記予測クランク角度算出部は、現時点における前記膨張行程にある気筒の上死点を基準とするクランク角度と、時間的長さとしての前記着火所要期間と、所定の角速度と、に基づいて前記予測クランク角度を算出するように構成された、
内燃機関の制御装置。
【請求項７】
請求項６に記載の内燃機関の制御装置において、
前記予測クランク角度算出部は、現時点における機関回転速度に基づいて定まる前記角速度を用いて前記予測クランク角度を算出するように構成された、
内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関（以下、単に、「機関」と称される場合がある。）を自動的に停止し且つ自動的に再始動する機能を有する制御装置に関する。
【背景技術】
【０００２】
従来から、機関を搭載する車両の燃費の改善及び同車両から排出される排ガスの量の削減等を目的として、所定の自動停止条件が成立すると機関の運転（回転）を自動的に停止する自動停止制御を行う制御装置が知られている。
【０００３】
このような制御装置は、アクセルペダル操作がなされた場合或いはブレーキ操作が解除された場合等のように機関の再始動要求が発生すると、機関を自動的に再始動させる。この場合、制御装置は、再始動要求が発生した時点における機関回転速度に応じて、例えば、（１）通常制御、（２）着火始動制御、及び（３）スタータ始動制御、の何れかを行って、機関を再始動させる。
【０００４】
ところで、着火始動制御は、機関回転速度が完全には「０（ゼロ）」に到っていないが、通常制御（通常運転中における燃料噴射及び点火）によっては機関の再始動が困難な程度にまで低下しているときに行われる。着火始動制御によれば、圧縮行程にある気筒（以下、「圧縮行程気筒」と称される場合がある。）がその気筒の上死点を乗り越えられるように、膨張行程にある気筒（以下、「膨張行程気筒」と称される場合がある。）において燃料噴射及び点火を行う。
【０００５】
ところで、着火始動において、膨張行程気筒のピストンが上死点から離れていると、当該気筒のコンプレッションが不十分であり、その時点において燃料の噴射及び点火を実行しても、機関を再始動させるのに十分なイナーシャを着火後に得られない場合がある。そこで、着火始動において、機関の回転方向が逆転方向に反転するまで待機し、当該反転後に膨張行程気筒において燃料の噴射及び点火を実行することにより、機関を確実に再始動させようとする技術も提案されている（例えば、特許文献１を参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１６３６１２号公報
【発明の概要】
【０００７】
しかしながら、機関の回転方向が逆転方向に反転したからといって、必ずしも膨張行程気筒におけるコンプレッションが十分に高まっているとは限らない。膨張行程気筒におけるコンプレッションが十分に高くないときに燃料の噴射及び点火を実行しても、十分なイナーシャを着火後に得られず、機関を再始動させることができない場合がある。従って、着火始動によって機関をより確実に再始動させるためには、膨張行程気筒におけるコンプレッションが十分に高いときに燃料の噴射及び点火を実行することが必要である。
【０００８】
加えて、膨張行程気筒において着火始動を実行するための処理（例えば、燃料の噴射及び点火）を開始してから燃料が実際に着火するまでには所定の期間を要する。例えば、再始動条件が成立した時点において直ちに燃料の噴射及び点火を実行しても、燃料が実際に着火するのは所定の期間が経過した後であり、この間にもクランクシャフトは回転を続け、ピストンの位置が変化する。従って、再始動条件が成立した時点における膨張行程気筒のコンプレッションが十分に高くても、燃料が実際に着火する時点においてはコンプレッションが低下しており、機関を再始動させるのに十分なイナーシャを着火後に得られない場合がある。このような場合、着火始動によって機関を確実に再始動させることはできない。
【０００９】
本発明は、上述した課題に対処するために為されたものである。即ち、本発明の目的は、膨張行程気筒において燃料が実際に着火するときのコンプレッションを考慮して、着火始動によって機関をより確実に再始動させることができる技術を提供することが可能な制御装置を提供することにある。
【００１０】
本発明による内燃機関の制御装置（以下、「本発明装置」と称される場合がある。）は、燃焼室に燃料を供給する燃料噴射部と、前記燃焼室に供給された燃料に点火する点火部と、クランクシャフトと、前記クランクシャフトの回転位置であるクランク角度を検出し且つ前記クランクシャフトの回転速度である機関回転速度を検出する回転速度検出部と、を備える内燃機関に適用される。
【００１１】
更に、本発明装置は、所定の自動停止条件が成立した場合に前記燃料噴射部による燃料の供給を停止して前記クランクシャフトの回転を停止させる自動停止制御を実行することができ、所定の再始動条件が成立した場合に内燃機関を再始動することができる制御部を備える。
【００１２】
加えて、前記制御部は、予測クランク角度算出部と、着火始動部と、を含む。
予測クランク角度算出部は、前記自動停止制御の実行中に、前記クランクシャフトの回転方向が最初に反転した時点である初回反転時点以降に所定の再始動条件が成立しているとき、予測クランク角度を所定期間が経過する毎に算出する。予測クランク角度とは、予測着火時における前記膨張行程にある気筒の上死点を基準とするクランク角度である。予測着火時とは、着火始動を実行するための処理が現時点において開始された場合に前記燃料の着火が起こると予測される時点である。着火始動とは、膨張行程にある気筒の燃焼室に前記燃料噴射部によって燃料を供給し且つ当該気筒の燃焼室に供給された前記燃料に前記点火部によって点火することによって機関を始動させる方法である。
【００１３】
着火始動部は、前記予測クランク角度が所定の上限角度以下であるときには前記着火始動によって前記内燃機関を再始動させ、前記予測クランク角度が前記上限角度よりも大きいときには前記着火始動を開始しない。
【００１４】
上記のように、本発明装置によれば、膨張行程にある気筒の燃焼室に燃料を供給し且つ当該燃料に点火した後に燃料の着火が起こると予測される時点におけるクランク角度が上限角度以下となる場合に着火始動が行われ、当該クランク角度が上限角度を超える場合は着火始動が行われない。その結果、膨張行程気筒におけるコンプレッションが十分に高いときに燃料の着火が起こるので、十分なイナーシャが着火後に得られる。従って、本発明装置によれば、着火始動によって機関を確実に再始動させることができる。
【００１５】
上記において、前記予測クランク角度算出部は、現時点から所定の着火所要期間が経過した時点を前記予測着火時として前記予測クランク角度を算出するように構成され得る。
【００１６】
着火所要期間の大部分は、燃料の点火から着火までに要する期間（以降、「着火期間」と称される場合がある。）によって占められると考えることができる。
【００１７】
従って、前記予測クランク角度算出部は、現時点において前記着火始動を実行するための処理が開始された場合に燃料の点火から着火までに要する期間である着火期間を含む前記着火所要期間が現時点から経過した時点を前記予測着火時として、前記予測クランク角度を算出するように構成され得る。
【００１８】
この場合、予測クランク角度算出部は、着火期間を含む着火所要期間に基づいて予測着火時を特定し、特定された予測着火時における予測クランク角度を算出する。従って、予測クランク角度算出部はより正確な予測クランク角度を算出することができるので、着火始動によって機関をより確実に再始動させることができる。
【００１９】
ところで、燃焼室に供給された燃料が着火するためには、燃料と空気とが混ざり合い、燃焼可能な混合気を形成する必要がある。従って、予測着火時の算出に当たっては、点火部によって燃料に点火される時点のみならず、燃料噴射部によって燃料が供給される時点をも考慮することが望ましい。
【００２０】
そこで、前記予測クランク角度算出部は、現時点において前記着火始動が開始された場合に前記燃料噴射部によって燃料が供給される時点に基づいて特定される前記予測着火時における前記予測クランク角度を算出するように構成され得る。
【００２１】
より具体的には、前記予測クランク角度算出部は、現時点において前記着火始動を実行するための処理が開始された場合に、前記燃料噴射部による燃料の供給から混合気の形成までに要する期間である混合気形成期間を含む前記着火所要期間が現時点から経過した時点を前記予測着火時として、前記予測クランク角度を算出するように構成され得る。
【００２２】
上記において、予測クランク角度算出部は、燃料噴射部によって燃料が供給される時点に基づいて、予測着火時を特定する。即ち、燃焼室に供給された燃料と空気とが混ざり合い、燃焼可能な混合気を形成するまでに要する期間である混合気形成期間を考慮して、予測着火時が特定される。これによれば、着火始動によって機関をより確実に再始動させることができる。
【００２３】
尚、上記において、予測クランク角度算出部は、点火部によって燃料に点火される時点のみならず、燃料噴射部によって燃料が供給される時点にも基づいて、予測着火時を特定することができる。即ち、予測クランク角度算出部は、現時点において前記着火始動を実行するための処理が開始された場合に、燃料の点火から着火までに要する期間である着火期間のみならず、前記燃料噴射部による燃料の供給から混合気の形成までに要する期間である混合気形成期間をも考慮して、予測着火時を特定することができる。
【００２４】
具体的には、前記予測クランク角度算出部は、前記着火期間のみならず前記混合気形成期間を含む前記着火所要期間が現時点から経過した時点を前記予測着火時として、前記予測クランク角度を算出するように構成され得る。これによれば、着火始動によって機関を更に確実に再始動させることができる。
【００２５】
ところで、上記着火所要期間は、一定の固定値であってもよい。しかしながら、膨張行程気筒における混合気の形成及び着火等の挙動は、例えば機関回転速度及びクランク角度等の機関の状況に応じて変化する。例えば、膨張行程気筒におけるコンプレッションは燃料の着火挙動に大きな影響を及ぼす。コンプレッションはクランク角度に応じて変化するので、着火所要期間は、点火時におけるクランク角度に応じて変化する値とすることが望ましい。
【００２６】
従って、前記予測クランク角度算出部は、膨張行程にある気筒の上死点を基準とするクランク角度と、同クランク角度にある同気筒において前記着火始動を実行するための処理を開始した場合における前記着火所要期間と、の対応関係を予め記憶しており、現時点における前記膨張行程にある気筒の上死点を基準とするクランク角度を前記対応関係に適用することによって前記着火所要期間を特定するように構成され得る。
【００２７】
この場合、予測クランク角度算出部は、現時点における膨張行程気筒のクランク角度に応じた着火所要期間を上記対応関係に基づいて特定し、この特定された着火所要期間に基づいて予測着火時を特定し、特定された予測着火時における予測クランク角度を算出する。従って、予測クランク角度算出部はより正確な予測クランク角度を算出することができるので、着火始動によって機関を更に確実に再始動させることができる。
【００２８】
ところで、予測クランク角度は、上述したように、膨張行程にある気筒の予測着火時における（上死点を基準とする）クランク角度である。従って、膨張行程気筒の現時点におけるクランク角度と予測クランク角度との差は、現時点から予測着火時までの期間の時間的長さ（即ち、時間的長さとしての着火所要期間）と、その期間におけるクランクの回転速度（角速度）と、によって変化する。
【００２９】
そこで、本発明装置の一態様において、前記予測クランク角度算出部は、現時点における前記膨張行程にある気筒の上死点を基準とするクランク角度と、時間的長さとしての前記着火所要期間と、所定の角速度と、に基づいて前記予測クランク角度を算出するように構成されている。
【００３０】
上記角速度は、例えば、機関のクランクシャフトが正転状態にあるのか或いは逆転状態にあるのかに応じて異なる符号を有する一対の固定値であってもよい。より好ましくは、上記角速度は、機関回転速度に応じて変化する値とすることが望ましい。典型的には、上記角速度としては、現時点における機関回転速度に基づいて定まる値が採用される。
【００３１】
従って、前記予測クランク角度算出部は、現時点における機関回転速度に基づいて定まる前記角速度を用いて前記予測クランク角度を算出するように構成され得る。
【００３２】
上記によれば、予測クランク角度算出部は、より正確な角速度に基づいて、より正確な予測クランク角度を算出することができるので、着火始動によって機関をより一層確実に再始動させることができる。
【００３３】
本発明の他の目的、他の特徴及び付随する利点は、以下の図面を参照しつつ記述される本発明の各実施形態についての説明から容易に理解されるであろう。
【図面の簡単な説明】
【００３４】
【図１】図１は本発明の実施形態に係る「多気筒内燃機関の制御装置」及び同制御装置が適用される多気筒内燃機関の概略図である。
【図２】図２は着火始動制御における膨張行程気筒での燃料の点火及び着火の時期及びそれぞれの時期におけるクランク角度を示した模式的なタイムチャートである。
【図３】図３は図１に示したＣＰＵが実行するルーチンを示したフローチャートである。
【図４】図４は図１に示したＣＰＵが実行するルーチンを示したフローチャートである。
【図５】図５は図１に示したＣＰＵが実行するルーチンを示したフローチャートである。
【図６】図６は、クランクシャフトの回転方向の反転が起こった履歴が無い場合において、クランク角度ＣＡが第１上限角度ＣＡｔｈ１以下であるときに再始動条件が成立した状況の一例を示した模式的なタイムチャートである。
【図７】図７は、初回反転時直後のクランクシャフトの逆転中に、（ａ）予測クランク角度ＣＡｐが第２上限角度ＣＡｔｈ２よりも大きい状態から、時間の経過により、（ｂ）予測クランク角度ＣＡｐが第２上限角度ＣＡｔｈ２以下である状態へと変化する様子を示した模式的なタイムチャートである。
【図８】図８は、クランクシャフトの揺り返しが生じている期間における予測クランク角度ＣＡｐが第２上限角度ＣＡｔｈ２以下となる状況の１つの例を示した模式的なタイムチャートである。
【図９】図９は、クランクシャフトの揺り返しが生じている期間における予測クランク角度ＣＡｐが第２上限角度ＣＡｔｈ２以下となる状況のもう１つの例を示した模式的なタイムチャートである。
【図１０】図１０は、初回反転からある程度の経時後に、予測クランク角度ＣＡｐが第２上限角度ＣＡｔｈ２よりも大きい状態（ａ）から、時間の経過により、予測クランク角度ＣＡｐが第２上限角度ＣＡｔｈ２以下である状態（ｂ）へと変化する様子を示した模式的なタイムチャートである。
【図１１】図１１は、ＣＰＵが着火始動によって機関１０を再始動させることができる機会が今後発生しないと判定する状況の一例を示す模式的なタイムチャートである。
【図１２】図１２は図１に示したＣＰＵが実行するルーチンを示したフローチャートである。
【図１３】図１３は図１に示したＣＰＵが実行するルーチンを示したフローチャートである。
【発明を実施するための形態】
【００３５】
以下、本発明の実施形態に係る「内燃機関の制御装置（以下、「本装置」と称される場合がある。）について説明する。
【００３６】
（構成）
本装置は、図１に示した内燃機関（機関）１０に適用される。機関１０は、多気筒（本例においては、直列４気筒）・４サイクル・ピストン往復動型・筒内噴射（直噴）・火花点火式・ガソリン燃料・エンジンである。
【００３７】
機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０、シリンダブロック部２０の上に固定されるシリンダヘッド部３０、シリンダブロック部２０に空気を供給するための吸気システム４０、並びに、シリンダブロック部２０からの排ガスを外部に放出するための排気システム５０を備えている。
【００３８】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランクシャフト２４を備えている。ピストン２２は、シリンダ２１内を往復動する。ピストン２２の往復動は、コンロッド２３を介してクランクシャフト２４に伝達され、これにより、クランクシャフト２４が回転するようになっている。シリンダ２１、ピストン２２及びシリンダヘッド部３０は、燃焼室（気筒）２５を形成している。
【００３９】
シリンダブロック部２０は、スタータモータ（単に、「スタータ」とも称される。）２６を備えている。スタータ２６は、後述するエンジンＥＣＵ（電子制御ユニット）８０の指示に応答して作動して、クランクシャフト２４に取り付けられた図示しないリングギアを回転させるようになっている。即ち、スタータ２６はクランキングを実行する。
【００４０】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、燃焼室２５に連通した排気ポート３３、排気ポート３３を開閉する排気弁３４、燃焼室２５内の燃料に点火する点火装置３５、及び、燃焼室２５に燃料を直接噴射する燃料噴射弁３９を備えている。
【００４１】
点火装置３５は、点火プラグ３６、点火プラグ３６に与える高電圧を発生するイグニッションコイル３７及びイグナイタ３８を含む。点火プラグ３６の電極部（点火用の火花発生部）は燃焼室２５の上部の中央部において燃焼室２５に露出している。
【００４２】
燃料噴射弁３９は、その燃料噴射孔が燃焼室２５内に露出するようにシリンダヘッド部３０に配設されている。燃料噴射弁３９は、ＥＣＵ８０の指示に応答して開弁し、燃焼室２５に燃料を直接噴射する。
【００４３】
吸気システム４０は、吸気ポート３１に連通したインテークマニホールド４１、インテークマニホールド４１に連通したサージタンク４２、及び、サージタンク４２に一端が接続された吸気管４３を備えている。吸気ポート３１、インテークマニホールド４１、サージタンク４２及び吸気管４３は、吸気通路を構成している。
【００４４】
更に、吸気システム４０は、エアフィルタ４４及びスロットル弁４５を備えている。スロットル弁４５は、吸気管４３に回転可能に支持されている。スロットル弁アクチュエータ４５ａは、ＤＣモータからなり、ＥＣＵ８０の指示に応答してスロットル弁４５を駆動することにより、スロットル弁４５の開度を変更する。
【００４５】
排気システム５０は、排気ポート３３に連通するエキゾーストマニホールド５１及びエキゾーストマニホールド５１に接続された排気管５２を備えている。排気ポート３３、エキゾーストマニホールド５１及び排気管５２は、排気通路を構成している。
【００４６】
更に、排気システム５０は、三元触媒（三元触媒装置、排気浄化触媒）５３を備えている。三元触媒５３は、排気管５２に配設されていて、流入するガスの空燃比が理論空燃比であるとき、ＨＣ、ＣＯ、Ｈ２等の未燃成分を酸化すると共にＮＯｘ（窒素酸化物）を還元する機能を有する。三元触媒５３は、酸素を吸蔵（貯蔵）する酸素吸蔵機能を有し、この酸素吸蔵機能により、空燃比が理論空燃比から偏移したとしても未燃成分及びＮＯｘを浄化することができる。
【００４７】
機関１０はフューエルポンプシステム６２を備えている。フューエルポンプシステム６２は、図示しない「低圧ポンプ、高圧ポンプ及び燃圧調整用の電磁弁」を含む。フューエルポンプシステム６２は、図示しない燃料タンクからフューエルポンプによって燃料を汲み上げ、ＥＣＵ８０の指示に応答して燃料の圧力を目標燃圧に調整した上でその燃料を燃料噴射弁３９に供給する。
【００４８】
ＥＣＵ８０は、周知のマイクロコンピュータを含む電子回路であり、ＣＰＵ、ＲＯＭ、ＲＡＭ、バックアップＲＡＭ及びインターフェース等を含む。ＥＣＵ８０は、以下に述べるセンサ類と接続されていて、これらのセンサからの信号を受信する（入力される）。
【００４９】
エアフローメータ７１：これは、吸気管４３を通過して機関１０に吸入される空気の質量流量（吸入空気量Ｇａ）を測定し、この吸入空気量Ｇａを表す信号を出力する。
スロットルポジションセンサ７２：これは、スロットル弁４５の開度（スロットル弁開度ＴＡ）を検出し、このスロットル弁開度ＴＡを表す信号を出力する。
水温センサ７３：これは、機関１０を冷却する冷却水の温度（冷却水温ＴＨＷ）を測定し、この冷却水温ＴＨＷを表す信号を出力する。
【００５０】
クランク角度センサ７４：これは、クランクシャフト２４が一定角度（例えば、１０［ｄｅｇ］）回転する毎に１つのパルス信号を発生する。ＥＣＵ８０は、このクランク角度センサ７４及び図示しないカムポジションセンサからの信号に基づいて、所定の気筒の圧縮上死点を基準とした機関１０のクランク角度（絶対クランク角度）を取得する。更に、ＥＣＵ８０は、クランク角度センサ７４からの信号に基づいて、機関回転速度ＮＥを取得する。
【００５１】
燃圧センサ７５：これは、燃料噴射弁３９に供給される燃料の圧力（燃圧ＰＦ）を測定し、この燃圧ＰＦを表す信号を出力する。
アクセル操作量センサ７６：これは、アクセルペダル９１の操作量Ａｃｃｐを検出し、この操作量Ａｃｃｐを表す信号を出力する。
ブレーキスイッチ７７：これは、ブレーキペダル９２の操作を検出し、ブレーキペダル９２が操作されたことを表す信号を出力する。
車速センサ７８：これは、機関１０が搭載された車両の速度（車速ＳＰＤ）を測定し、この車速ＳＰＤを表す信号を出力する。
イグニッションスイッチ７９：これは、機関１０を作動させたり機関１０の作動を停止させたりするために運転者によって操作されるスイッチであり、そのオン・オフ状態を表す信号をＥＣＵ８０に送出する。
【００５２】
更に、ＥＣＵ８０は、各種アクチュエータ（スロットル弁アクチュエータ４５ａ、点火装置３５及び燃料噴射弁３９等）に指示（駆動）信号を送出する。
【００５３】
（本装置の作動の概要）
＜自動停止及び自動再始動制御＞
本装置は、所定の自動停止条件が成立すると、燃料噴射弁３９からの燃料の噴射を停止して機関１０の回転を停止させる自動停止制御を実行する。本例における自動停止条件は、以下の条件の総てが成立した場合に成立する。
（Ａ１）ブレーキペダル９２が踏み込まれていること（操作されていること）。
（Ａ２）アクセルペダル９１が踏み込まれていないこと（操作されていないこと）。
（Ａ３）車速ＳＰＤが所定速度ＳＰＤｔｈ以下であること。
【００５４】
自動停止制御が開始された後、再始動要求が発生したとき、本装置は、その時点の機関回転速度ＮＥに応じて以下の何れかの制御を実行することにより、機関１０を始動（再始動）させる。なお、本例において、再始動要求は、自動停止制御の開始後においてアクセルペダル９１が踏み込まれ始めたとき発生する。
【００５５】
（Ｂ１）再始動要求が発生した時点の機関回転速度ＮＥが第１閾値速度ＮＥ１よりも高い場合（ＮＥ＞ＮＥ１）、本装置は通常制御（通常運転始動制御）を実行して機関１０を再始動させる。通常制御は、圧縮行程後半において燃料噴射を行い、圧縮上死点近傍において点火を行う「通常運転中の制御」である。従って、通常制御によっては、スタータモータ２６は駆動されない。
【００５６】
（Ｂ２）再始動要求が発生した時点の機関回転速度ＮＥが第１閾値速度ＮＥ１以下であり且つ第２閾値速度ＮＥ２よりも高い場合（ＮＥ２＜ＮＥ≦ＮＥ１）、本装置は着火始動制御を実行して機関１０を再始動させる。着火始動制御は、再始動要求の発生時点において「膨張行程前半（例えば、圧縮上死点後クランク１０［ｄｅｇ］乃至３０［ｄｅｇ］の間）にある気筒」又は「再始動要求の発生後に最初に膨張行程前半を迎える気筒」において、膨張行程前半に燃料噴射を行い、その直後の時点において点火を行う制御である。以下、「再始動要求の発生時点において膨張行程前半にある気筒」又は「再始動要求の発生後に最初に膨張行程前半を迎える気筒」を「膨張行程気筒」と称する場合がある。更に、その膨張行程気筒が膨張行程にある期間において圧縮行程にある気筒を「圧縮行程気筒」と称する場合がある。なお、着火始動制御によっては、スタータモータ２６は駆動されない。
【００５７】
（Ｂ３）再始動要求が発生した時点の機関回転速度ＮＥが第２閾値速度ＮＥ２以下である場合（ＮＥ≦ＮＥ２）、本装置は機関回転速度ＮＥが第３閾値速度ＮＥ３（ＮＥ＜ＮＥ３＜ＮＥ２）まで低下するのを待ってスタータ始動制御を実行して機関１０を再始動させる。スタータ始動制御は、スタータ２６を作動させることにより機関１０をクランキングしながら、圧縮行程後半において燃料噴射を行い、圧縮上死点近傍において点火を行う制御である。
【００５８】
＜着火始動制御における点火及び着火＞
本装置の特徴の一つは、上述した着火始動制御において、膨張行程気筒内の燃料が実際に着火するときのコンプレッションを考慮して、燃料の噴射動作及び点火動作を制御する点にある。具体的には、現時点において燃料の噴射及び点火を行った場合における実際の着火時点及び同着火時点におけるクランク角度を所定期間が経過する毎に予測する。そして、同クランク角度が十分なコンプレッションを達成し得る所定の範囲に収まる場合は着火始動による機関の再始動を実行する。
【００５９】
そこで、着火始動制御における膨張行程気筒での燃料の点火及び着火の時期及びクランク角度につき、図２の（ａ）及び（ｂ）を参照しながら、以下に詳しく説明する。図２の（ａ）及び（ｂ）の何れにおいても、説明を容易にするために、自動停止制御の実行により機関１０が停止するまでの膨張行程気筒のクランク角度の経時的な変化が実線の曲線によって示されている。
【００６０】
先ず、図２の（ａ）は、自動停止制御が実行されている期間中に再始動要求が発生したものの、その時点において燃料の点火を行っても、実際に燃料が着火する時点においては機関１０を再始動させるのに十分なイナーシャを着火後に得ることができないクランク角度となる例を示している。
【００６１】
この例においては、時刻ｔ１において燃料噴射弁３９からの燃料の噴射を停止して機関１０の回転を停止させる自動停止制御が開始されている。その後、機関回転速度ＮＥが徐々に低下し、時刻ｔ２においてクランクシャフト２４の回転方向の正転から逆転への反転が初めて起こり、時刻ｔ３において再始動条件が成立している。この時刻ｔ３におけるクランク角度ＣＡ３は、機関１０を再始動させるのに十分なイナーシャを着火後に得ることができるクランク角度の上限値（上限角度ＣＡｔｈ２）以下である。換言すれば、クランク角度ＣＡ３は上死点に十分に近い。従って、この時点において燃料を着火させることができれば、機関１０を再始動させるのに十分なイナーシャを得ることができる。即ち、着火始動によって機関１０を再始動させることができる。
【００６２】
しかしながら、前述したように、着火始動を実行するための処理（例えば、燃料の噴射及び点火）を開始してから実際に燃料が着火するまでには所定の期間（着火所要期間）を要する。以下に記載する例においては、この着火所要期間の大半を、着火始動における燃料の点火から着火までに所定の期間（着火期間）が占めるものとして説明する。従って、再始動条件が成立した時刻ｔ３において直ちに燃料への点火を行っても、実際に燃料が着火するのは時刻ｔ４となる。この時刻ｔ３から時刻ｔ４への期間においてもクランクシャフト２４は回転し続け、ピストンの位置が変化する。その結果、時刻ｔ４における当該気筒のクランク角度ＣＡ４は時刻ｔ３におけるクランク角度ＣＡ３よりも大きくなっており、上述した上限角度ＣＡｔｈ２よりも大きくなっている。換言すれば、クランク角度ＣＡ３は上死点から遠すぎる。従って、この時点において燃料が着火しても、機関１０を再始動させるのに十分なイナーシャを得ることができない。即ち、着火始動によって機関１０を再始動させることができない。
【００６３】
一方、図２の（ｂ）は、図２の（ａ）と同様に、自動停止制御が実行されている期間中に再始動要求が発生した時点において燃料の点火を行うと、実際に燃料が着火する時点において機関１０を再始動させるのに十分なイナーシャを着火後に得ることができるクランク角度となる例を示している。
【００６４】
この例においても、時刻ｔ１において自動停止制御が開始され、その後、時刻ｔ２においてクランクシャフト２４の回転方向の反転が初めて起こり、時刻ｔ３において再始動条件が成立している。即ち、図２の（ｂ）に示した例も、ここまでは図２の（ａ）に示した例と同様である。しかしながら、この例においては、再始動条件が成立した時刻ｔ３において直ちに燃料に点火して着火始動を開始するのではなく、時刻ｔ３よりも遅い時刻ｔ５において燃料に点火している。
【００６５】
上記時刻ｔ５におけるクランク角度ＣＡ５は、機関１０を再始動させるのに十分なイナーシャを着火後に得ることができるクランク角度の上限値（上限角度ＣＡｔｈ２）を超えている。換言すれば、クランク角度ＣＡ５は上死点から遠すぎる。従って、この時点において燃料が着火した場合、機関１０を再始動させるのに十分なイナーシャを得ることができない。即ち、着火始動によって機関１０を再始動させることができない。
【００６６】
しかしながら、前述したように、着火始動における燃料の点火から着火までには着火期間を要する。従って、上記のようにクランク角度ＣＡ５が上死点から遠すぎる時刻ｔ５において燃料への点火を行っても、実際に燃料が着火するのは時刻ｔ５よりも遅い時刻ｔ６となる。この時刻ｔ５から時刻ｔ６への期間においてもクランクシャフト２４は回転し続け、ピストンの位置が変化する。その結果、時刻ｔ６における当該気筒のクランク角度ＣＡ６は時刻ｔ５におけるクランク角度ＣＡ５よりも小さくなっており、上述した上限角度ＣＡｔｈ２よりも小さくなっている。換言すれば、クランク角度ＣＡ６は上死点に十分に近くなっている。従って、この時点において燃料が着火した場合、機関１０を再始動させるのに十分なイナーシャを得ることができる。即ち、着火始動によって機関１０を再始動させることができる。
【００６７】
以上のように、本装置は、着火始動によって機関１０を再始動させる場合に、膨張行程気筒において燃料が実際に着火するときのコンプレッションを考慮して、着火始動の開始時期を調整する。具体的には、本装置は、現時点において着火始動を開始した場合における実際の着火時点及び同着火時点におけるクランク角度を所定期間が経過する毎に予測する。そして、同クランク角度が十分なコンプレッションを達成し得る所定の範囲に収まる場合は着火始動による機関１０の再始動を実行し、そうでない場合は着火始動を実行しない。これにより、本装置は、着火始動によって機関１０をより確実に再始動させることができる。以上が、本装置の概要である。
【００６８】
（具体的作動）
次に、本装置の具体的作動について説明する。本装置のＥＣＵ８０のＣＰＵ（以下、単に「ＣＰＵ」と称呼する。」は、所定時間が経過する毎に図３にフローチャートにより示したルーチンを実行するようになっている。このルーチンにより、自動停止制御が開始される。
【００６９】
所定のタイミングになると、ＣＰＵはステップ３００から処理を開始してステップ３１０に進み、現時点において機関１０が運転中であるか否かを判定する。即ち、ＣＰＵは、機関運転フラグＸｏｐの値が「１」であるか否かを判定する。機関運転フラグＸｏｐは、その値が「１」であるとき機関１０が運転中（始動後であって自動停止制御開始前）であることを示す。機関運転フラグＸｏｐは、その値が「０」であるとき機関１０が自動停止中（自動停止制御開始後であって再始動完了前）であることを示す。機関運転フラグＸｏｐの値が「０」である場合、ＣＰＵはステップ３１０にて「Ｎｏ」と判定してステップ３９５に進み、本ルーチンを一旦終了する。
【００７０】
機関運転フラグＸｏｐの値が「１」である場合、ＣＰＵはステップ３１０にて「Ｙｅｓ」と判定してステップ３２０に進み、上述した自動停止条件が成立しているか否かを判定する。より具体的には、ＣＰＵは停止条件成立フラグＸｓｔｐの値が「１」であるか否かを判定する。停止条件成立フラグＸｓｔｐの値は、ＣＰＵが図示しないルーチンを実行することにより、上述した自動停止条件が成立したときに「１」に設定され、上述した再始動要求が発生したときに「０」に設定される。停止条件成立フラグＸｓｔｐの値が「０」である場合、ＣＰＵはステップ２２０にて「Ｎｏ」と判定してステップ３９５に進み、本ルーチンを一旦終了する。従って、この場合、後述する自動停止制御は実行されない。
【００７１】
これに対し、停止条件成立フラグＸｓｔｐの値が「１」である場合、ＣＰＵはステップ３２０にて「Ｙｅｓ」と判定し、以下に述べるステップ３３０乃至ステップ３７０の処理を順に行い、ステップ３９５に進んで本ルーチンを一旦終了する。これにより、自動停止制御が実行される。
【００７２】
ステップ３３０：ＣＰＵは、燃料噴射弁３９に対する指示信号の送出を停止することにより、燃料噴射を停止する。
ステップ３４０：ＣＰＵは、点火装置３５（イグナイタ３８）への指示信号の送出を停止することにより、各気筒の一次側コイル３７ａを非通電状態に維持し、もって、点火を停止する。
ステップ３５０：ＣＰＵは、機関運転フラグＸｏｐの値を「０」に設定する。
ステップ３６０：ＣＰＵは、通常運転フラグＸｔｕｊｏの値を「０」に設定する。通常運転フラグＸｔｕｊｏの値は、後述するように、通常運転制御が実行されている場合に「１」に設定される。
ステップ３７０：ＣＰＵは、再始動要求フラグＸｓｔｒｅｑの値を「０」に設定する。再始動要求フラグＸｓｔｒｅｑの値は、ＣＰＵが図示しないルーチンを実行することによって、上述した再始動要求が発生したと判定されたときに「１」に設定される。
【００７３】
以上のように、本例においては、本装置は、所定の自動停止条件が成立すると、燃料噴射弁３９からの燃料の噴射を停止すると共に点火装置３５による点火を停止して機関１０の回転を停止させる自動停止制御を実行する。しかしながら、本装置は、点火を停止すること無く、燃料の噴射を停止することのみによって自動停止制御を実行してもよい。この場合、上記ステップ３４０は実行されない。
【００７４】
更に、ＣＰＵは、所定時間が経過する毎に図４にフローチャートにより示したルーチンを実行するようになっている。このルーチンにより、機関１０の再始動を行うために実行される制御が決定される。
【００７５】
所定のタイミングになると、ＣＰＵはステップ４００から処理を開始してステップ４０５に進み、現時点において機関１０の運転が停止中である（自動停止制御が実行中である）か否かを判定する。即ち、ＣＰＵは、機関運転フラグＸｏｐの値が「０」であるか否かを判定する。機関運転フラグＸｏｐの値が「１」である場合、ＣＰＵはステップ４０５にて「Ｎｏ」と判定し、ステップ４９５に進んで本ルーチンを一旦終了する。
【００７６】
これに対し、機関運転フラグＸｏｐの値が「０」である場合（自動停止制御が実行されている場合）、ＣＰＵはステップ４０５にて「Ｙｅｓ」と判定してステップ４１０に進み、再始動要求が発生しているか否かを判定する。より具体的に述べると、ＣＰＵは、再始動要求フラグＸｓｔｒｅｑの値が「１」であるか否かを判定する。
【００７７】
いま、再始動要求が発生していて、再始動要求フラグＸｓｔｒｅｑの値が「１」に設定されていると仮定する。この場合、ＣＰＵはステップ４１０にて「Ｙｅｓ」と判定してステップ４１５に進み、機関回転速度ＮＥが第１閾値速度ＮＥ１よりも大きいか否かを判定する。
【００７８】
機関回転速度ＮＥが第１閾値速度ＮＥ１より大きい場合、ＣＰＵはステップ４１５にて「Ｙｅｓ」と判定してステップ４２０に進み、上述した通常制御による始動（通常運転始動）を実行するように、通常運転フラグＸｔｕｊｏの値を「１」に設定する。通常制御については後に図１３を参照しながら詳述する。その後、ＣＰＵはステップ４２５に進んで再始動要求フラグＸｓｔｒｅｑの値を「０」に設定し、ステップ４９５に進んで本ルーチンを一旦終了する。この結果、再始動要求が発生した時点の機関回転速度ＮＥが第１閾値速度ＮＥ１より大きい場合、通常制御によって機関１０が再始動される。
【００７９】
一方、再始動要求が発生した時点の機関回転速度ＮＥが第１閾値速度ＮＥ１以下である場合、ＣＰＵはステップ４１５にて「Ｎｏ」と判定してステップ４３０に進み、機関回転速度ＮＥが第２閾値速度ＮＥ２より大きいか否かを判定する。第２閾値速度ＮＥ２は０よりも大きく、第１閾値速度ＮＥ１よりも小さい。
【００８０】
機関回転速度ＮＥが第２閾値速度ＮＥ２より大きい場合、ＣＰＵはステップ４３０にて「Ｙｅｓ」と判定してステップ４３５に進み、上述した着火始動制御を実行するように、着火始動制御フラグＸｃｈの値を「１」に設定する。着火始動制御については後に図５を参照しながら詳述する。その後、ＣＰＵはステップ４２５を経由して本ルーチンを一旦終了する。この結果、再始動要求が発生した時点の機関回転速度ＮＥが第１閾値速度ＮＥ１以下であり且つ第２閾値速度ＮＥ２より大きい場合、着火始動制御によって機関１０が再始動される。
【００８１】
一方、再始動要求が発生した時点の機関回転速度ＮＥが第２閾値速度ＮＥ２以下である場合、ＣＰＵはステップ４３０にて「Ｎｏ」と判定してステップ４４０に進み、機関回転速度ＮＥが第３閾値速度ＮＥ３より小さいか否かを判定する。第３閾値速度ＮＥ３は０よりも大きく、第２閾値速度ＮＥ２よりも小さい。
【００８２】
機関回転速度ＮＥが第３閾値速度ＮＥ３以上である場合、ＣＰＵはステップ４４０にて「Ｎｏ」と判定してステップ４９５に直接進み、本ルーチンを一旦終了する。この結果、次に本ルーチンが実行されると、ＣＰＵはステップ４０５乃至ステップ４１５、ステップ４３０及びステップ４４０と進む。その結果、ＣＰＵは、機関回転速度ＮＥが第３閾値速度ＮＥ３未満になるまで待機する。
【００８３】
そして、機関回転速度ＮＥが第３閾値速度ＮＥ３未満になると、ＣＰＵはステップ４４０にて「Ｙｅｓ」と判定してステップ４４５に進み、上述したスタータ始動制御を実行する。その後、ＣＰＵは、ステップ４５０に進んでバックアップ再始動フラグＸｂｋｕｐｓｔａｒｔの値を「０」に設定し、ステップ４２５を経由して本ルーチンを一旦終了する。この結果、機関回転速度ＮＥが第３閾値速度ＮＥ３未満になったとき、スタータ始動制御によって機関１０が再始動される。
【００８４】
ところで、ＣＰＵがステップ４１０の処理を実行する時点において、再始動要求フラグＸｓｔｒｅｑの値が「０」に設定されている（再始動要求が発生していていない）場合、ＣＰＵはそのステップ４１０にて「Ｎｏ」と判定してステップ４５５に進み、バックアップ再始動フラグＸｂｋｕｐｓｔａｒｔの値が「１」であるか否かを判定する。このフラグＸｂｋｕｐｓｔａｒｔの値が「０」であれば、ＣＰＵはステップ４５５にて「Ｎｏ」と判定して本ルーチンを一旦終了する。これに対し、フラグＸｂｋｕｐｓｔａｒｔの値が「１」であれば、ＣＰＵはステップ４５５にて「Ｙｅｓ」と判定してステップ４４０に進む。その結果、機関回転速度ＮＥが第３閾値速度ＮＥ３未満になると、スタータ始動制御によって機関１０が再始動される。このステップ４５５からステップ４４０及びステップ４４５への流れについては後述する。
【００８５】
＜着火始動制御の詳細＞
次に、上述した着火始動制御の詳細について説明する。ＣＰＵは、所定時間が経過する毎に図５のフローチャートにより示したルーチンを実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図５のステップ５００から処理を開始してステップ５０５に進み、着火始動制御フラグＸｃｈの値が「１」であるか否かを判定する。着火始動制御フラグＸｃｈの値が「１」でなければ、ＣＰＵはステップ５０５にて「Ｎｏ」と判定し、ステップ５９５に進んで本ルーチンを一旦終了する。
【００８６】
これに対し、着火始動制御フラグＸｃｈの値が「１」であると、ＣＰＵはステップ５０５にて「Ｙｅｓ」と判定してステップ５１０に進み、現時点が再始動条件の成立後であって且つクランクシャフト２４の回転方向の反転が起こった履歴があるか否かを判定する。
【００８７】
「現時点が再始動条件の成立後であって且つクランクシャフト２４の回転方向の反転が起こった履歴がある」との条件が成立しない場合、ＣＰＵはステップ５１０にて「Ｎｏ」と判定してステップ５４０に進み、その時点における膨張行程気筒のクランク角度ＣＡが所定の上限角度（即ち、第１上限角度ＣＡｔｈ１）以下であるか否かを判定する。
【００８８】
例えば、図６の黒丸によって示すように、再始動条件が成立した現時点（時刻ｔａ）における上記クランク角度ＣＡ（＝ＣＡａ）が第１上限角度ＣＡｔｈ１以下である場合、ＣＰＵはステップ５４０にて「Ｙｅｓ」と判定し、ステップ５４５にて当該膨張行程気筒への燃料の噴射及び点火を即時実行する。このときのクランク角度ＣＡ（＝ＣＡａ）は第１上限角度ＣＡｔｈ１以下である（即ち、上死点に十分に近い）。従って、当該膨張行程気筒への燃料の噴射及び点火を即時実行すれば、機関１０を再始動させるのに十分なイナーシャが着火後に得られる。その結果、膨張行程気筒の燃焼室において噴射された燃料により形成された混合気が着火・燃焼する。
【００８９】
その後、ＣＰＵはステップ５３０に進んで着火始動制御フラグＸｃｈの値を「０」に設定すると共に、バックアップ再始動フラグＸｂｋｕｐｓｔａｒｔの値を「１」に設定する。その後は、ステップ５３５に示すように、ＣＰＵは圧縮行程気筒に燃料を噴射し、当該気筒のクランク角度が圧縮上死点後の所定の角度にあるときに上記燃料により形成された混合気に点火することにより、機関１０の通常運転を行う。その後、ＣＰＵはステップ５９５に進んで本ルーチンを一旦終了する。これにより、着火始動制御による機関１０の再始動が行われる。
【００９０】
一方、現時点（時刻ｔａ）における上記クランク角度ＣＡ（＝ＣＡａ）が第１上限角度ＣＡｔｈ１以下ではない（ＣＡ＞ＣＡｔｈ１）場合、ＣＰＵはステップ５４０にて「Ｎｏ」と判定し、ステップ５９５に進んで本ルーチンを一旦終了する。即ち、この場合は、上記ステップ５４５のように当該膨張行程気筒への燃料の噴射及び点火を即時実行しても、機関１０を再始動させるのに十分なイナーシャを着火後に得られないと予測される。そのため、ＣＰＵは、その後のクランクシャフトの回転の正転と逆転との間での反転の繰り返し（揺り返し）に伴ってコンプレッションが上昇する機会を待機する。
【００９１】
現時点が再始動条件の成立後であって且つクランクシャフト２４の回転方向の反転が起こった履歴がある場合、ＣＰＵはステップ５１０にて「Ｙｅｓ」と判定し、ステップ５１５にて現時点において着火始動を開始した場合の予測着火時における膨張行程気筒のクランク角度ＣＡである予測クランク角度ＣＡｐを算出する。
【００９２】
本例においては、ＥＣＵ８０が、着火始動を実行するための処理（燃料の噴射及び点火）を開始してから燃料が着火するまでに要する期間である着火所要期間ΔＴと現時点におけるクランク角度ＣＡとの対応関係をマップとしてＲＯＭに予め記憶している。そして、ＣＰＵは、膨張行程気筒の現時点におけるクランク角度ＣＡを当該マップに適用することによって着火所要期間ΔＴを特定する。更に、ＣＰＵは、上記クランク角度ＣＡと、上記着火所要期間ΔＴと、現時点における機関回転速度ＮＥと、に基づいて、予測クランク角度ＣＡｐを算出する。
【００９３】
その後、ＣＰＵはステップ５２０に進む。ＣＰＵは、ステップ５２０にて予測クランク角度ＣＡｐが所定の上限角度（即ち、第２上限角度ＣＡｔｈ２）以下であるか否かを判定する。
【００９４】
例えば、図７の（ａ）に示した黒丸によって表すように、再始動条件が成立した現時点（時刻ｔｂ）において、膨張行程気筒のクランク角度ＣＡはＣＡｂとなっている（ＣＡ＝ＣＡｂ）。上述したように、ＣＰＵは、この時点におけるクランク角度ＣＡ（＝ＣＡｂ）と、現時点（時刻ｔｂ）から予測着火時（時刻ｔｃ）までの期間の時間的長さである着火所要期間ΔＴ（＝ｔｃ−ｔｂ）と、現時点における機関回転速度ＮＥと、に基づいて、予測クランク角度ＣＡｐを算出する。図７の（ａ）に示した白抜きの丸によって表すように、予測着火時（時刻ｔｃ）における予測クランク角度ＣＡｐはＣＡｃとなっており、第２上限角度ＣＡｔｈ２よりも大きい（ＣＡｐ＞ＣＡｔｈ２）。
【００９５】
上記の場合、ＣＰＵはステップ５２０にて「Ｎｏ」と判定し、ＣＰＵはステップ５５０に進む。ステップ５５０において、ＣＰＵは、着火始動によって機関１０を再始動させることができる機会が今後発生するか否かを判定する。具体的には、ステップ５２０にて「Ｎｏ」と判定される状況（即ち、ＣＡｐ＞ＣＡｔｈ２が成立する状況）が所定の期間に亘って継続している場合、着火始動によって機関１０を再始動させることができる機会が今後発生しないと、ＣＰＵは判定することができる。
【００９６】
或いは、将来出現するであろうクランク角度ＣＡの極値が第２上限角度ＣＡｔｈ２以下とならない場合、着火始動によって機関１０を再始動させることができる機会が今後発生しないと、ＣＰＵは判定することができる。この「将来出現するであろうクランク角度ＣＡの極値」は、例えば、上述した「揺り返し」における機関回転速度ＮＥとクランク角度ＣＡの極値との対応関係を表すマップ（データテーブル）、クランク物理モデル及びクランクシャフト２４の回転速度の極値の減衰特性を表す近似式等に基づいて算出され得る。
【００９７】
着火始動によって機関１０を再始動させることができる機会が今後発生しないと予測される場合、ＣＰＵはステップ５５０にて「Ｙｅｓ」と判定し、ステップ５５５に進んで着火始動制御フラグＸｃｈの値を「０」に設定すると共に、バックアップ再始動フラグＸｂｋｕｐｓｔａｒｔの値を「１」に設定する。その後、ＣＰＵはステップ５９５に進んで本ルーチンを一旦終了する。これにより、ＣＰＵは、着火始動制御による機関１０の再始動を断念する。
【００９８】
一方、着火始動によって機関１０を再始動させることができる機会が今後発生すると予測される場合、ＣＰＵはステップ５５０にて「Ｎｏ」と判定し、ステップ５９５に進んで本ルーチンを一旦終了する。これにより、ＣＰＵは、着火始動制御によって機関１０を再始動する次の機会まで待機する。
【００９９】
その後、時間が経過して時刻ｔｄとなり、図７の（ｂ）に示した黒丸によって表すように、膨張行程気筒のクランク角度ＣＡはＣＡｄとなっている（ＣＡ＝ＣＡｄ）。上述した時刻ｔｂから現時点である時刻ｔｄまでの期間において、クランクシャフト２４は逆転しており、膨張行程気筒のクランク角度ＣＡは上死点により近付いている。上述したように、ＣＰＵは、この時点におけるクランク角度ＣＡ（＝ＣＡｄ）等から、予測クランク角度ＣＡｐを算出する。図７の（ｂ）に示した白抜きの丸によって表すように、予測着火時（時刻ｔｅ）における予測クランク角度ＣＡｐはＣＡｅとなっており、第２上限角度ＣＡｔｈ２以下である（ＣＡｐ≦ＣＡｔｈ２）。
【０１００】
上記の場合、ＣＰＵはステップ５２０にて「Ｙｅｓ」と判定し、ＣＰＵはステップ５２５に進み、膨張行程気筒への燃料の噴射及び点火を行う。その結果、膨張行程気筒の燃焼室において噴射された燃料により形成された混合気が着火・燃焼する。その後、ＣＰＵは上述したステップ５３０及び５３５を経てステップ５９５に進んで本ルーチンを一旦終了する。これにより、着火始動制御による機関１０の再始動が行われる。
【０１０１】
図８及び図９に示すように、時刻ｔｄ以降の暫くの期間においては、上述したようにして算出される予測クランク角度ＣＡｐは第２上限角度ＣＡｔｈ２以下である（図８及び図９において、それぞれＣＡｇ≦ＣＡｔｈ２及びＣＡｉ≦ＣＡｔｈ２）。このような状況下で再始動要求が発生している（再始動条件が成立している）場合は、ＣＰＵはステップ５２０にて「Ｙｅｓ」と判定し、上述したステップ５２５以降の一連の処理を実行する。
【０１０２】
ところで、図７の（ｂ）及び図８に示す例においては、クランクシャフト２４の逆転に伴って膨張行程気筒のクランク角度ＣＡが減少している（即ち、ピストンが上死点に近づいている）ときに燃料を着火させた。これに対し、図９に示す例においては、クランクシャフト２４の正転に伴って膨張行程気筒のクランク角度ＣＡが増大している（即ち、ピストンが上死点から遠ざかっている）ときに燃料を着火させた。このように、着火始動制御は、機関１０が正転しながら膨張行程気筒のクランク角が圧縮上死点から遠ざかっているときに実行されてもよく、或いは、機関１０が逆転して膨張行程気筒のクランク角が圧縮上死点に近づいているときに実行されてもよい。
【０１０３】
ところで、図９に示した状況の後、図１０の（ａ）に示した状況においては、黒丸によって表すように、時刻ｔｊにおいて、算出される予測クランク角度ＣＡｐはＣＡｋとなっており（即ち、ピストンが上死点から遠ざかっている）、第２上限角度ＣＡｔｈ２よりも大きい（ＣＡｐ＞ＣＡｔｈ２）。このような状況下では、再始動要求が発生している場合であっても、ＣＰＵはステップ５２０にて「Ｎｏ」と判定し、上述したステップ５５０以降の一連の処理を実行する。
【０１０４】
その後、更に時間が経過して、図１０の（ｂ）に示した黒丸によって表すように、時刻ｔｌにおいては、算出される予測クランク角度ＣＡｐはＣＡｍとなっており、第２上限角度ＣＡｔｈ２以下である（ＣＡｐ≦ＣＡｔｈ２）。このような状況下で再始動要求が発生している（再始動条件が成立している）場合は、ＣＰＵはステップ５２０にて「Ｙｅｓ」と判定し、上述したステップ５２５以降の一連の処理を実行する。
【０１０５】
ところで、これまで説明してきた図６乃至図１０からも明らかであるように、自動停止制御の実行中にクランクシャフト２４の回転方向が最初に反転した時点である初回反転時点以降、膨張行程気筒のクランク角度ＣＡの揺り返しにおける振幅は徐々に小さくなる（減衰する）。従って、例えば、図１１に示すように、再始動条件が成立した現時点（図１１においては時刻ｔｎ）において算出される予測クランク角度ＣＡｐ（例えば、ＣＡｏ）は、やがて第２上限角度ＣＡｔｈ２以下とはならなくなる。
【０１０６】
上記の場合、ステップ５２０にて「Ｎｏ」と判定される状況（即ち、ＣＡｐ＞ＣＡｔｈ２が成立する状況）が所定の期間に亘って継続することとなる。従って、ＣＰＵは、上述したように、ステップ５５０にて「Ｙｅｓ」と判定する。
【０１０７】
上記の場合、ＣＡｐ＞ＣＡｔｈ２が成立する状況が所定の期間に亘って継続することを検知するまで、ＣＰＵは着火始動を実行する機会を待機することになる。しかしながら、ＣＰＵは、上述したように、将来出現するであろうクランク角度ＣＡの極値が第２上限角度ＣＡｔｈ２以下となるか否かを判定することにより、着火始動によって機関１０を再始動させることができる機会が今後発生するか否かを判定することができる。この場合は、ＣＡｐ＞ＣＡｔｈ２が成立する状況が所定の期間に亘って継続することを待つ必要が無いので、着火始動による機関１０の再始動の可否を迅速に判断して、機関１０をより迅速に再始動させることができる。
【０１０８】
以上のように、本装置によれば、予測着火時における膨張行程気筒のクランク角度が十分なコンプレッションを達成し得る所定の範囲に収まる場合（即ち、ＣＡｐ≦ＣＡｔｈ２が成立する場合）は着火始動による機関１０の再始動を実行し、そうでない場合は着火始動を実行しない。これにより、本装置は、着火始動によって機関１０をより確実に再始動させることができる。以上が、着火始動制御の詳細である。
【０１０９】
ところで、ステップ５３０又はステップ５５５において、バックアップ再始動フラグＸｂｋｕｐｓｔａｒｔの値が「１」に設定された後、ＣＰＵが図４のステップ４５５に進むと、ＣＰＵはそのステップ４５５にて「Ｙｅｓ」と判定してステップ４４０に進む。従って、着火始動制御により機関１０の再始動が成功しない場合であっても、機関回転速度ＮＥが第３閾値速度ＮＥ３未満になるとスタータ始動制御が実行され、その結果、機関１０は再始動される。
【０１１０】
更に、ＣＰＵは、所定時間が経過する毎に図１２にフローチャートにより示した「始動完了判定ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図１２のステップ１２００から処理を開始してステップ１２１０に進み、機関運転フラグＸｏｐの値が「０」であるか否かを判定する。機関運転フラグＸｏｐの値が「０」でなければ（即ち、機関１０が運転中であれば）、ＣＰＵはステップ１２１０にて「Ｎｏ」と判定し本ルーチンを一旦終了する。
【０１１１】
これに対し、機関運転フラグＸｏｐの値が「０」であると（即ち、機関１０が自動停止制御開始後であって再始動完了前であれば）、ＣＰＵはステップ１２１０にて「Ｙｅｓ」と判定してステップ１２２０に進み、再始動要求フラグＸｓｔｒｅｑの値が「１」から「０」になった後であるか否かを判定する。図４のステップ４１０及びステップ４２５から理解されるように、再始動要求が発生して再始動要求フラグＸｓｔｒｅｑの値が「１」に設定された後に何等かの始動制御（ステップ４２０、ステップ４３５及びステップ４４５を参照。）がなされると再始動要求フラグＸｓｔｒｅｑの値は「０」に戻される。従って、ステップ１２２０は、何等かの始動制御がなされたか否かを判定するステップである。
【０１１２】
再始動要求発生後において何らかの始動制御がなされていなければ、ＣＰＵはステップ１２２０にて「Ｎｏ」と判定し、本ルーチンを一旦終了する。一方、再始動要求発生後において何らかの始動制御がなされていると、ＣＰＵはステップ１２２０にて「Ｙｅｓ」と判定してステップ１２３０に進み、機関回転速度ＮＥが始動判定回転速度（本例では、第１閾値速度ＮＥ１）よりも大きいか否かを判定する。機関回転速度ＮＥが始動判定回転速度ＮＥ１以下であると、ＣＰＵはステップ１２３０にて「Ｎｏ」と判定し、本ルーチンを一旦終了する。
【０１１３】
これに対し、機関回転速度ＮＥが始動判定回転速度ＮＥ１よりも大きいと、ＣＰＵはステップ１２３０にて「Ｙｅｓ」と判定し、以下に述べるステップ１２４０乃至ステップ１２６０の処理を順に行い、本ルーチンを一旦終了する。
【０１１４】
ステップ１２４０：ＣＰＵは、機関運転フラグＸｏｐの値を「１」に設定する。即ち、ＣＰＵは機関１０の再始動が完了し、機関１０が通常運転されている状態に移行したと判定する。
ステップ１２５０：ＣＰＵは、通常運転フラグＸｔｕｊｏの値を「１」に設定する。この結果、後述する図１３のルーチンによる通常制御が実行される（図１３のステップ１３０５での「Ｙｅｓ」との判定を参照。）。
ステップ１２６０：ＣＰＵは、バックアップ再始動フラグＸｂｋｕｐｓｔａｒｔの値を「０」に設定する。
【０１１５】
更に、ＣＰＵは、所定時間が経過する毎に図１３にフローチャートにより示した「通常制御ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図１３のステップ１３００から処理を開始してステップ１３０５に進み、通常運転フラグＸｔｕｊｏの値が「１」であるか否かを判定する。通常運転フラグＸｔｕｊｏの値が「１」でなければ、ＣＰＵはステップ１３０５にて「Ｎｏ」と判定し本ルーチンを一旦終了する。
【０１１６】
これに対し、通常運転フラグＸｔｕｊｏの値が「１」であると、ＣＰＵはステップ１３０５にいて「Ｙｅｓ」と判定してステップ１３１０に進み、「機関回転速度ＮＥ及び機関負荷の代用値としてのアクセルペダル操作量Ａｃｃｐ」をルックアップテーブルＭａｐＱＦｔｇｔ（ＮＥ，Ａｃｃｐ）に適用することにより、目標噴射量ＱＦｔｇｔを取得する。
【０１１７】
次に、ＣＰＵはステップ８３０に進むと、機関回転速度ＮＥ及びアクセルペダル操作量ＡｃｃｐをルックアップテーブルＭａｐＴＦｔｇｔ（ＮＥ，Ａｃｃｐ）に適用することにより、目標噴射時期ＴＦｔｇｔを取得する。更に、ＣＰＵは以下に述べるステップ１３３５乃至ステップ１３４５の処理を順に行い、ステップ１３９５に進んで本ルーチンを一旦終了する。
【０１１８】
ステップ１３３５：ＣＰＵは、機関回転速度ＮＥ及びアクセルペダル操作量ＡｃｃｐをルックアップテーブルＭａｐＴＩｔｇｔ（ＮＥ，Ａｃｃｐ）に適用することにより、目標点火時期ＴＩｔｇｔを取得する。
ステップ１３４０：ＣＰＵは、機関回転速度ＮＥ及びアクセルペダル操作量ＡｃｃｐをルックアップテーブルＭａｐＴＡｔｇｔ（ＮＥ，Ａｃｃｐ）に適用することにより、目標スロットル弁開度ＴＡｔｇｔを取得する。
【０１１９】
ステップ１３４５：ＣＰＵは、目標噴射量ＱＦｔｇｔ、目標噴射時期ＴＦｔｇｔ、目標点火時期ＴＩｔｇｔ及び目標スロットル弁開度ＴＡｔｇｔに従って指示信号を燃料噴射弁３９、点火装置３５及びスロットル弁アクチュエータ４５ａにそれぞれ送出する。以上により、通常制御が実行される。
【０１２０】
以上、説明したように、本装置によれば、自動停止制御の実行中に再始動要求が発生した場合、機関回転速度ＮＥに応じて、通常運転制御、着火始動及びスタータ始動を使い分けると共に、着火始動に成功しない場合であっても、スタータ始動に切り替えて、機関を確実且つ迅速に再始動させることができる。加えて、本装置によれば、着火始動制御において、膨張行程気筒にて燃料が実際に着火するときのコンプレッションを考慮して、燃料の噴射動作及び点火動作を制御する。これにより、着火始動によって機関をより確実に再始動させることができる。
【０１２１】
本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記実施形態においては、再始動制御の実行時にクランクシャフトの回転方向の反転が起こった履歴が無い状況において、クランク角度ＣＡが第１上限角度ＣＡｔｈ１以下である場合、当該膨張行程気筒への燃料の噴射及び点火を即時実行した（ステップ５４５を参照。）。しかしながら、このような方法による再始動を行わなくてもよい。
【符号の説明】
【０１２２】
１０…内燃機関、３２…吸気弁、３４…排気弁、３５…点火装置、３６…点火プラグ、３７…イグニッションコイル、３８…イグナイタ、３９…燃料噴射弁、５３…三元触媒、８０…電子制御ユニット（ＥＣＵ）。
【図１】
0006260580.tif 000002
【図２】
0006260580.tif 000003
【図３】
0006260580.tif 000004
【図４】
0006260580.tif 000005
【図５】
0006260580.tif 000006
【図６】
0006260580.tif 000007
【図７】
0006260580.tif 000008
【図８】
0006260580.tif 000009
【図９】
0006260580.tif 000010
【図１０】
0006260580.tif 000011
【図１１】
0006260580.tif 000012
【図１２】
0006260580.tif 000013
【図１３】
0006260580.tif 000014