(57)【特許請求の範囲】
【請求項１】
内燃機関の回転数が高くなるのに応じて時間間隔が短くなる回転信号を出力し内燃機関の特定回転位相においては前記回転信号を他の回転位相よりも長い時間間隔にする内燃機関回転状態検出手段を備え、該内燃機関回転状態検出手段からの回転信号単独あるいは他の検出手段の信号を組み合わせて、内燃機関のクランク角が検出される内燃機関において、
内燃機関の回転において位置エネルギーが極大となる回転位相を極大位置エネルギー位相として設定し、内燃機関の停止処理後に内燃機関の回転が停止するまでの期間に、前記回転信号が、最初に、前記特定回転位相および前記極大位置エネルギー位相以外の回転位相にて前後の回転信号の時間間隔よりも長い時間間隔となった場合のクランク角を逆転クランク角として検出する逆転クランク角検出手段と、
前記逆転クランク角検出手段にて検出された逆転クランク角に基づいて内燃機関の停止時の行程状態を決定する停止行程判別手段と、
を備えたことを特徴とする内燃機関の停止行程判別装置。
【請求項２】
内燃機関の回転数が高くなるのに応じて時間間隔が短くなる回転信号を出力する内燃機関回転状態検出手段を備え、該内燃機関回転状態検出手段からの回転信号単独あるいは他の検出手段の信号を組み合わせて、内燃機関のクランク角が検出される内燃機関において、
内燃機関の回転において位置エネルギーが極大となる回転位相を極大位置エネルギー位相として設定し、内燃機関の停止処理後に内燃機関の回転が停止するまでの期間に、前記回転信号が、最初に、前記極大位置エネルギー位相以外の回転位相にて前後の回転信号の時間間隔よりも長い時間間隔となった場合のクランク角を逆転クランク角として検出する逆転クランク角検出手段と、
前記逆転クランク角検出手段にて検出された逆転クランク角に基づいて内燃機関の停止時の行程状態を決定する停止行程判別手段と、
を備えたことを特徴とする内燃機関の停止行程判別装置。
【請求項３】
請求項１または２記載の構成において、内燃機関のカムシャフトの回転位相を判別する信号を出力するカム角検出手段を備え、
内燃機関のクランク角は、前記内燃機関回転状態検出手段の回転信号と、前記カム角検出手段の信号とに基づいて検出されていることを特徴とする内燃機関の停止行程判別装置。
【請求項４】
請求項３記載の構成において、前記カム角検出手段は、カムシャフトの回転位相の内で特定の一カ所において他と異なる状態となる信号を出力するものであることを特徴とする内燃機関の停止行程判別装置。
【請求項５】
請求項１〜４のいずれか記載の構成において、前記極大位置エネルギー位相を境界として内燃機関のクランク角領域を分割設定し、
前記停止行程判別手段は、前記逆転クランク角検出手段にて検出された逆転クランク角が属するクランク角領域と該クランク角領域の直前のクランク角領域とを、内燃機関の停止時の行程状態として決定することを特徴とする内燃機関の停止行程判別装置。
【請求項６】
請求項１〜５のいずれか記載の内燃機関の停止行程判別装置を備えるとともに、
内燃機関の始動時においては、直前の内燃機関停止時において前記停止行程判別手段にて決定されている行程状態に基づいて、燃料噴射した場合に最も早期に点火燃焼が可能な気筒に対して燃料噴射を実行する始動時燃料噴射手段を備えたことを特徴とする内燃機関の燃料噴射制御装置。
【請求項７】
請求項６記載の構成において、内燃機関が吸気ポート燃料噴射タイプである場合には、前記始動時燃料噴射手段は、前記停止行程判別手段にて決定されている行程状態において吸気行程にある気筒の吸気ポートに燃料を供給することを特徴とする内燃機関の燃料噴射制御装置。
【請求項８】
請求項６記載の構成において、内燃機関が筒内燃料噴射タイプである場合には、前記始動時燃料噴射手段は、前記停止行程判別手段にて決定されている行程状態において圧縮行程にある気筒の燃焼室内に燃料を供給することを特徴とする内燃機関の燃料噴射制御装置。
【請求項９】
請求項５記載の内燃機関の停止行程判別装置または請求項６〜８のいずれか記載の内燃機関の燃料噴射制御装置を備えるとともに、
内燃機関の始動時において、直前の内燃機関停止時において前記停止行程判別手段にて決定されている行程状態の内から、前記内燃機関回転状態検出手段の信号および前記カム角検出手段の信号の内の一方または両方における出力開始初期の状態に基づいて、始動時の行程状態を選別する始動時行程選別手段を備えたことを特徴とする内燃機関の始動時行程判別装置。
【請求項１０】
請求項５記載の内燃機関の停止行程判別装置または請求項６〜８のいずれか記載の燃料噴射制御装置を備えるとともに、
内燃機関の始動時において、直前の内燃機関停止時において前記停止行程判別手段にて決定されている行程状態の内から、前記内燃機関回転状態検出手段の信号および前記カム角検出手段の信号の内の一方または両方における出力開始初期の状態に基づいて、始動時の行程状態を選別し、かつ該選別時点でのクランク角を決定する始動時行程選別手段を備えたことを特徴とする内燃機関の始動時行程判別装置。
【請求項１１】
請求項１０記載の構成に加えて、
前記始動時行程選別手段により得られた始動時の行程状態と、該選別時点でのクランク角とに基づいて、最も早く燃焼が可能な気筒に点火を実行する初爆点火実行手段を備えたことを特徴とする内燃機関の始動時行程判別装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の停止行程判別装置、この停止行程判別装置により決定された行程状態に基づいて燃料噴射を実行する燃料噴射制御装置、およびこの停止行程判別装置により決定された行程状態内を始動時に更に選別する始動時行程判別装置に関する。
【０００２】
【従来の技術】
内燃機関の始動時において迅速にクランク角や各気筒の行程状態を決定し燃料噴射制御と点火制御に反映させて、初爆を早期に行うことで、内燃機関の始動性を向上させるシステムが知られている（特開平１１−６２６８１号公報、特開平５−１３３２６８号公報）。
【０００３】
このようなシステムは、燃費の改善などのために、自動車が交差点等で走行停止した時に内燃機関を自動停止し発進操作時にスタータを回転させて内燃機関を自動始動して自動車を発進可能とさせる自動停止始動装置、いわゆるエコノミーランニングシステム（以下、「エコランシステム」と略す）において発進を円滑に実行させるために重要である。更に、このようなエコランシステムに限らず、通常の始動においても良好な始動性を実現する上で重要である。
【０００４】
【発明が解決しようとする課題】
しかし、始動時におけるクランク角や行程状態の決定は、クランクシャフトに設けられた回転数センサおよびカムシャフトに設けられたカム角センサが、回転し始めたクランクシャフトやカムシャフトの回転を検出し、その内で特徴的な信号状態を検出してから初めて可能となる。このため、スタータの回転から実際に燃料噴射や点火を実行するまでに比較的時間がかかり、始動性が十分なものとは言えない。
【０００５】
この他に、内燃機関の停止時におけるクランク角や各気筒の行程状態を決定しておくことにより、内燃機関の始動時における燃料噴射制御と点火制御に反映させるシステムが知られている（特開平７−８３０９３号公報）。このシステムでは、エンジンのイグニッション・オフ時のクランク角を記憶し、始動時にこのクランク角から始動したものとして機関制御を開始している。
【０００６】
しかし、イグニッション・オフしても燃焼中である気筒からは出力トルクが発生しており、また燃焼がなされなくなっても実際に内燃機関のクランクシャフトの回転が停止するまで、内燃機関は更に慣性回転する。したがって、特開平７−８３０９３号公報のごとく、イグニッション・オフ時のクランク角を記憶しても、実際に停止した行程状態とはずれを生じ、始動する際の行程状態を正確に反映した燃料噴射や点火制御が困難となるおそれがある。
【０００７】
これを解決する手法として、イグニッション・オフ後も完全にクランクシャフトの回転が停止するまで回転数センサのパルス数カウントを継続することが考えられる。すなわち、完全にクランクシャフトの回転が停止したタイミングで計測されているクランク角を記憶することが考えられる。
【０００８】
ところが、内燃機関がこのような慣性回転にある時においては、圧縮行程にある気筒のピストンはクランクシャフトを逆方向に回転させる逆回転トルクを発生させ、膨張行程にある気筒のピストンはクランクシャフトを正方向に回転させる正回転トルクを発生させている。このため、内燃機関の燃焼停止から回転停止までの期間においては、慣性回転力、フリクション、前記逆回転トルク、前記正回転トルクなどにより、クランクシャフトの回転速度は決定されている。この内、前記逆回転トルクおよび前記正回転トルクはクランク角により周期的に変化するため、停止直前においては、クランクシャフトは、それまで正回転していた状態から逆転し、逆回転・正回転を繰り返す状態となり、その後に完全に停止する。そして最終的停止位置は、上述したトルクの周期的変化状態により決定される位置エネルギーが極小となる安定した回転位相にて停止するか、あるいはフリクションなどの原因により、その近傍にて停止することになる。
【０００９】
しかし、停止直前に、前述した逆転現象が一旦生じると、実際にはクランク角が減少している時間が存在するにもかかわらず、正回転と同様に継続的に増加しているものとして計算されてしまう。したがって、実際のクランク角と完全停止時に求められているクランク角とが大きく異なり、クランク角から決定した行程状態と実際の行程状態とが全く異なることとなる。このため、停止時に得られたクランク角を始動時の行程判定に反映させて燃料噴射制御や点火制御を実行した場合には、予想したような初爆が早期に行われなかったりして、内燃機関の始動性が低下するおそれがある。
【００１０】
更に、従来技術では、例え正確に停止時の行程状態が求められたとしても、始動以後の制御に用いられるクランク角の正確な位置は、回転数センサおよびカム角センサの両者から特徴的な信号が発生するまでは、決定することができなかった。このため、初爆以降の機関制御に遅れを生じて、始動が不安定化するおそれがある。
【００１１】
本発明は、内燃機関のクランクシャフトが実際に停止した時における内燃機関の行程状態を、停止時におけるクランクシャフトの挙動に基づいて正確に限定することを目的とするものである。また、本発明は、このように限定された行程状態に基づいて再始動時の早期の初爆を実現させることを目的とするものである。また、このように限定された行程状態に基づいて再始動時に更に正確に行程状態を限定することを目的とするものである。また、このように限定された行程状態に基づいて再始動以後のクランク角の決定を早期化することを目的とするものである。
【００１２】
【課題を解決するための手段】
以下、上記目的を達成するための手段およびその作用効果について記載する。
請求項１記載の内燃機関の停止行程判別装置は、内燃機関の回転数が高くなるのに応じて時間間隔が短くなる回転信号を出力し内燃機関の特定回転位相においては前記回転信号を他の回転位相より長い時間間隔にする内燃機関回転状態検出手段を備え、該内燃機関回転状態検出手段からの回転信号単独あるいは他の検出手段の信号を組み合わせて、内燃機関のクランク角が検出される内燃機関において、内燃機関の回転において位置エネルギーが極大となる回転位相を極大位置エネルギー位相として設定し、内燃機関の停止処理後に内燃機関の回転が停止するまでの期間に、前記回転信号が、最初に、前記特定回転位相および前記極大位置エネルギー位相以外の回転位相にて前後の回転信号の時間間隔よりも長い時間間隔となった場合のクランク角を逆転クランク角として検出する逆転クランク角検出手段と、前記逆転クランク角検出手段にて検出された逆転クランク角に基づいて内燃機関の停止時の行程状態を決定する停止行程判別手段とを備えたことを特徴とする。
【００１３】
停止までに惰性回転している内燃機関が正回転から逆回転に移る場合は、逆転時に一旦回転が停止するので、その前後の位相よりも回転速度が鈍る。このため、この時に内燃機関回転状態検出手段が出力する回転信号は、前後における回転信号の時間間隔よりも長い時間間隔となる。したがって最初に前後の時間間隔よりも長い時間間隔の回転信号となった場合には、その時のクランク角が最初に逆転したクランク角であると判断できる。
【００１４】
ただし、前述したごとく極大位置エネルギー位相では、正回転と逆回転との間で切り替わらなくても、その前後の位相よりも回転速度が鈍る。したがって、この時にも、内燃機関回転状態検出手段が出力する回転信号は、前後における回転信号の時間間隔よりも長い時間間隔となる。また、内燃機関回転状態検出手段は、内燃機関の特定回転位相においては回転信号を他の回転位相より長い時間間隔にしているため、このような特定位相においても、内燃機関回転状態検出手段が出力する回転信号が、前後における回転信号の時間間隔よりも長い時間間隔となり、逆転時とは区別が困難となる場合がある。したがって、逆転クランク角検出手段は、最初に、前記特定回転位相および前記極大位置エネルギー位相以外の回転位相にて前後の回転信号の時間間隔よりも長い時間間隔となった場合のクランク角を逆転クランク角として検出する。
【００１５】
このように逆転クランク角検出手段により検出された逆転クランク角が、実際に最初に正回転から逆回転になった場合の逆転位相である場合には、クランク角は逆転クランク角以上進むことがないことから、逆転クランク角より遅角側に存在する位置エネルギーが極小の位相（以下、「極小位置エネルギー位相」と称する）あるいはその位相近傍で停止することが判る。
【００１６】
また、最初に正回転から逆回転になった場合の逆転位相が前記特定回転位相および前記極大位置エネルギー位相に重複していた場合には、この時のクランク角は逆転クランク角としては検出されず、２番目の逆転位相、すなわち逆回転から正回転に戻った場合の逆転位相、あるいは３番目以降の逆転位相が逆転クランク角として検出される。この２番目以降の逆転により得られた逆転クランク角は、逆回転による位相変化分が加算されているため、実際のクランク角よりも大きくなっている。すなわち実際のクランク角は、得られている逆転クランク角とは極大位置エネルギー位相を挟んでクランク角が小さい側に存在する。このことから、実際のクランク角は、計算上の逆転クランク角よりも遅角側の極大位置エネルギー位相の更に遅角側に存在する極小位置エネルギー位相あるいはその位相近傍で停止することが判る。
【００１７】
したがって、逆転クランク角検出手段にて検出された逆転クランク角に基づいて、停止行程判別手段では、上述したごとく回転停止のクランク角範囲を絞ることができることから、内燃機関の行程状態を、停止時におけるクランクシャフトの挙動に基づいて正確に限定することができる。
【００２１】
請求項２記載の内燃機関の停止行程判別装置は、内燃機関の回転数が高くなるのに応じて時間間隔が短くなる回転信号を出力する内燃機関回転状態検出手段を備え、該内燃機関回転状態検出手段からの回転信号単独あるいは他の検出手段の信号を組み合わせて、内燃機関のクランク角が検出される内燃機関において、内燃機関の回転において位置エネルギーが極大となる回転位相を極大位置エネルギー位相として設定し、内燃機関の停止処理後に内燃機関の回転が停止するまでの期間に、前記回転信号が、最初に、前記極大位置エネルギー位相以外の回転位相にて前後の回転信号の時間間隔よりも長い時間間隔となった場合のクランク角を逆転クランク角として検出する逆転クランク角検出手段と、前記逆転クランク角検出手段にて検出された逆転クランク角に基づいて内燃機関の停止時の行程状態を決定する停止行程判別手段とを備えたことを特徴とする。
【００２２】
本請求項では、前記請求項１と異なり、内燃機関回転状態検出手段は特定回転位相における回転信号の時間間隔が他の回転位相の時間間隔よりも長くなる構成とされていない。したがって、逆転クランク角検出手段は、内燃機関の停止処理後に内燃機関の回転が停止するまでの期間に、最初に、前記極大位置エネルギー位相以外の回転位相にて前後の回転信号の時間間隔よりも長い時間間隔となった場合のクランク角を逆転クランク角として検出する。
【００２３】
このことにより請求項１にて述べたごとくのメカニズムにより、逆転クランク角検出手段により検出された逆転クランク角が、実際に最初に正回転から逆回転になった場合の逆転位相である場合には、クランク角は逆転クランク角以上進むことがないことから、逆転クランク角より遅角側に存在する極小位置エネルギー位相あるいはその位相近傍で停止することが判る。
【００２４】
また、最初に正回転から逆回転になった場合の逆転位相が極大位置エネルギー位相に重複していた場合には、この時のクランク角は逆転クランク角としては検出されず、２番目以降の逆転位相が検出される。このことから、実際のクランク角は、計算上の逆転クランク角よりも遅角側の極大位置エネルギー位相の更に遅角側に存在する極小位置エネルギー位相あるいはその位相近傍で停止することが判る。
【００２５】
したがって、逆転クランク角検出手段にて検出された逆転クランク角に基づいて、停止行程判別手段では、上述したごとく回転停止のクランク角範囲を絞ることができることから、内燃機関の行程状態を、停止時におけるクランクシャフトの挙動に基づいて正確に限定することができる。
【００２９】
請求項３記載の内燃機関の停止行程判別装置は、請求項１または２記載の構成において、内燃機関のカムシャフトの回転位相を判別する信号を出力するカム角検出手段を備え、内燃機関のクランク角は、前記内燃機関回転状態検出手段の回転信号と、前記カム角検出手段の信号とに基づいて検出されていることを特徴とする。
【００３０】
より具体的には、内燃機関のクランク角は、内燃機関回転状態検出手段の回転信号と、カム角検出手段の信号とに基づいて検出するように構成することができる。このようにして構成された内燃機関の停止行程判別装置において、正確に検出された逆転クランク角に基づいて、停止行程判別手段では、内燃機関の行程状態を、停止時におけるクランクシャフトの挙動に基づいて正確に限定することができる。
【００３１】
請求項４記載の内燃機関の停止行程判別装置は、請求項３記載の構成において、前記カム角検出手段は、カムシャフトの回転位相の内で特定の一カ所において他と異なる状態となる信号を出力するものであることを特徴とする。
【００３２】
より具体的には、カム角検出手段は、カムシャフトの回転位相の内で特定の一カ所において他と異なる状態となる信号を出力するものとして構成することができる。
【００３３】
請求項５記載の内燃機関の停止行程判別装置は、請求項１〜４のいずれか記載の構成において、前記極大位置エネルギー位相を境界として内燃機関のクランク角領域を分割設定し、前記停止行程判別手段は、前記逆転クランク角検出手段にて検出された逆転クランク角が属するクランク角領域と該クランク角領域の直前のクランク角領域とを、内燃機関の停止時の行程状態として決定することを特徴とする。
【００３４】
前述したごとく、最初に得られた逆転クランク角からは、そのクランク角より遅角側の極小位置エネルギー位相あるいはその位相近傍で停止するか、あるいは更にもう一つ遅角側の極小位置エネルギー位相あるいはその位相近傍でクランク角は停止することが判る。
【００３５】
このため、極大位置エネルギー位相を境界として内燃機関のクランク角領域を分割設定した場合に、停止行程判別手段は、逆転クランク角が属するクランク角領域とこのクランク角領域の直前（遅角側）のクランク角領域とを内燃機関の停止時の行程状態として限定することができることになる。このように、停止行程判別手段は、内燃機関の行程状態を正確に限定することができる。
【００３６】
請求項６記載の内燃機関の燃料噴射制御装置は、請求項１〜５のいずれか記載の内燃機関の停止行程判別装置を備えるとともに、内燃機関の始動時においては、直前の内燃機関停止時において前記停止行程判別手段にて決定されている行程状態に基づいて、燃料噴射した場合に最も早期に点火燃焼が可能な気筒に対して燃料噴射を実行する始動時燃料噴射手段を備えたことを特徴とする。
【００３７】
本燃料噴射制御装置は、請求項１〜５のいずれか記載の内燃機関の停止行程判別装置を備えることにより、従来よりも正確に内燃機関の行程状態を限定することができる。このように限定された行程状態に基づいて再始動時の早期の初爆を実現させることができるようになり、始動性をより高いものとできる。
【００３８】
請求項７記載の内燃機関の燃料噴射制御装置は、請求項６記載の構成において、内燃機関が吸気ポート燃料噴射タイプである場合には、前記始動時燃料噴射手段は、前記停止行程判別手段にて決定されている行程状態において吸気行程にある気筒の吸気ポートに燃料を供給することを特徴とする。
【００３９】
このようにすることにより、吸気ポート燃料噴射タイプの内燃機関において、一層確実に始動時燃料噴射手段が吸気行程にある気筒の吸気ポートに燃料噴射することができる。このため、始動時において、一層確実に早期の初爆を実現することができるようになり、始動性をより高いものとできる。
【００４０】
請求項８記載の内燃機関の燃料噴射制御装置は、請求項６記載の構成において、内燃機関が筒内燃料噴射タイプである場合には、前記始動時燃料噴射手段は、前記停止行程判別手段にて決定されている行程状態において圧縮行程にある気筒の燃焼室内に燃料を供給することを特徴とする。
【００４１】
このようにすることにより、筒内燃料噴射タイプの内燃機関において、一層確実に始動時燃料噴射手段が圧縮行程にある気筒の燃焼室内に燃料噴射することができる。このため、始動時において、一層確実に早期の初爆を実現することができるようになり、始動性をより高いものとできる。
【００４２】
請求項９記載の内燃機関の始動時行程判別装置は、請求項５記載の内燃機関の停止行程判別装置または請求項６〜８のいずれか記載の内燃機関の燃料噴射制御装置を備えるとともに、内燃機関の始動時において、直前の内燃機関停止時において前記停止行程判別手段にて決定されている行程状態の内から、前記内燃機関回転状態検出手段の信号および前記カム角検出手段の信号の内の一方または両方における出力開始初期の状態に基づいて、始動時の行程状態を選別する始動時行程選別手段を備えたことを特徴とする。
【００４３】
本始動時行程判別装置は、請求項５記載の内燃機関の停止行程判別装置または請求項６〜８のいずれか記載の内燃機関の燃料噴射制御装置を備えることにより、前記停止行程判別手段にて正確に限定された停止時の行程状態を得ている。そして、始動時においては、このように正確に限定された行程状態から、始動時行程選別手段が、内燃機関回転状態検出手段の信号およびカム角検出手段の信号の内の一方または両方における出力開始初期の状態に基づいて、始動時の行程状態を選別することで、更に行程状態を限定している。このことにより、始動時において早期に一層確実な行程状態に絞ることができる。こうして、始動時の制御を一層精密なものとできる。
【００４４】
請求項１０記載の内燃機関の始動時行程判別装置は、請求項５記載の内燃機関の停止行程判別装置または請求項６〜８のいずれか記載の内燃機関の燃料噴射制御装置を備えるとともに、内燃機関の始動時において、直前の内燃機関停止時において前記停止行程判別手段にて決定されている行程状態の内から、前記内燃機関回転状態検出手段の信号および前記カム角検出手段の信号の内の一方または両方における出力開始初期の状態に基づいて、始動時の行程状態を選別し、かつ該選別時点でのクランク角を決定する始動時行程選別手段を備えたことを特徴とする。
【００４５】
本請求項１０では、始動時行程選別手段は、始動時の行程状態を選別するとともに、この選別時点でのクランク角を決定している。このため、選別以後はクランク角にしたがって内燃機関の通常の制御が可能となる。このように限定された行程状態に基づいて再始動時に更に正確に行程状態を限定し、このように一層正確に限定された行程状態に基づいて再始動以後のクランク角の決定が早期化できる。したがって、迅速に安定した運転を開始することができるようになる。
【００４６】
請求項１１記載の内燃機関の始動時行程判別装置は、請求項１０記載の構成に加えて、前記始動時行程選別手段により得られた始動時の行程状態と、該選別時点でのクランク角とに基づいて、最も早く燃焼が可能な気筒に点火を実行する初爆点火実行手段を備えたことを特徴とする。
【００４７】
行程状態が正確に限定できることと、この行程状態に基づいて再始動以後のクランク角の決定が早期化できることから、初爆点火実行手段は最も早く初爆が可能な気筒を迅速に判断することができる。このことから、一層安定した始動が可能となる。
【００４８】
前記請求項６〜８に記載したごとく始動時燃料噴射手段にて始動時に燃料噴射を行っている場合も、この燃料噴射された気筒に対して点火チャンスを逃すことなく適切に点火燃焼でき、初爆を最も早いタイミングで確実に実行させることができる。
【００４９】
【発明の実施の形態】
［実施の形態１］
図１，２に上述した発明が適用された自動車用４気筒ガソリンエンジン（以下「エンジン」と略す）２の要部縦断面図を示す。図１はクランクシャフト４に直交する縦断面を示し、図２はクランクシャフト４に平行な縦断面を示している。
【００５０】
エンジン２のシリンダブロック２ａには１番気筒（以下「＃１」で表す）、２番気筒（以下「＃２」で表す）、３番気筒（以下「＃３」で表す）、４番気筒（以下「＃４」で表す）の４つの気筒を有する。これら各気筒（＃１〜＃４）毎にピストン６が往復移動可能に設けられている。これらのピストン６は、エンジン２の出力軸であるクランクシャフト４にコネクティングロッド６ａを介してそれぞれ連結されている。ピストン６の往復移動は、コネクティングロッド６ａによってクランクシャフト４の回転へと変換される。またエンジン２においては、始動に用いられるスタータ８が設けられている。手動による始動時にはイグニッションスイッチ１０の操作に基づきスタータ８を駆動してクランクシャフト４を回転させることによりエンジン２を始動させる。またエコランシステムにより自動停止しているエンジン２を自動始動させる場合には、自動始動条件が満足されると、後述するＥＣＵ５０によりスタータ８が駆動されてクランクシャフト４が回転しエンジン２が始動される。
【００５１】
図１に示すように（図２では略している）、クランクシャフト４にはシグナルロータ１２が取り付けられている。このシグナルロータ１２の外周部には、クランクシャフト４の軸線を中心として等角度間隔（ここでは１０°間隔）に配置された３４個の突起１２ａと、１個の幅広の欠歯１２ｂが設けられている。そして、シグナルロータ１２の外周部に対向して、クランクポジションセンサ１４が設けられている。このように構成されていることにより、クランクシャフト４が回転した場合には、シグナルロータ１２の各突起１２ａおよび欠歯１２ｂが順次クランクポジションセンサ１４の近傍を通過することにより、クランクポジションセンサ１４からはそれら各突起１２ａおよび欠歯１２ｂの通過数に対応したパルス状の回転信号（以下「ＮＥ信号」と称する）が出力される。
【００５２】
また、シリンダブロック２ａ上にはシリンダヘッド１６が設けられている。シリンダヘッド１６とピストン６との間には燃焼室１８が設けられ、この燃焼室１８には吸気通路２０および排気通路２２が接続されている。そして、燃焼室１８と吸気通路２０とは吸気バルブ２４の開閉動作によって連通・遮断され、燃焼室１８と排気通路２２とは排気バルブ２６の開閉動作によって連通・遮断される。
【００５３】
更に、シリンダヘッド１６には吸気バルブ２４および排気バルブ２６を開閉駆動するための吸気カムシャフト２８および排気カムシャフト３０が回転可能に支持されている。これら吸気カムシャフト２８および排気カムシャフト３０は、タイミングプーリおよびタイミングベルト（共に図示せず）を介してクランクシャフト４に連結され、クランクシャフト４の回転に連動して回転する。
【００５４】
吸気カムシャフト２８の外周面には３個の突起３２，３４，３６が吸気カムシャフト２８の軸線を中心として９０°（１８０°ＣＡに相当する）間隔に配列して設けられている。したがって両端の突起３２と突起３６との間隔は１８０°（３６０°ＣＡに相当する）となっている。これら突起３２〜３６に対向するように、シリンダヘッド１６においては、突起３２〜３６を検出して検出信号を出力するカムポジションセンサ３８が設けられている。吸気カムシャフト２８が回転した場合には、突起３２〜３６がカムポジションセンサ３８の近傍を通過する。このことにより、カムポジションセンサ３８からは、突起３２〜３６のそれぞれの通過に対応してパルス状の検出信号が出力される。
【００５５】
なお、吸気カムシャフト２８に取り付けられているタイミングプーリと一体に可変バルブタイミング機構（以下「ＶＶＴ」と称する）３９が設けられている。このＶＶＴ３９は、クランクシャフト４に対して吸気カムシャフト２８の回転位相を進角量を調整することにより、吸気バルブ２４のバルブタイミングを可変とする装置である。したがってカムポジションセンサ３８の検出信号は気筒判別信号であると共に、吸気バルブ２４のバルブタイミングの検出信号でもある。
【００５６】
吸気通路２０には、燃料を吸気ポート２０ａへ向けて噴射する燃料噴射弁４０が設けられている。この燃料噴射弁４０からは、必要なタイミング、通常は吸気行程時に、エンジン２の運転状態に応じて算出された量の燃料噴射が行われる。この燃料噴射によって吸気ポート２０ａの空気と共に混合気が形成されて燃焼室１８内に吸入される。更にシリンダヘッド１６には点火プラグ４２が設けられ、この点火プラグ４２によって圧縮行程中に燃焼室１８内の混合気に対して点火が行われる。この点火プラグ４２の点火時期は、点火プラグ４２の上方に設けられたイグナイタ４４によって制御される。そして、燃焼室内の混合気が点火されて燃焼すると、このときの燃焼エネルギによりピストン６が往復移動してエンジン２が回転駆動される。
【００５７】
次に、本実施の形態における制御系統の電気的構成について図３を参照して説明する。この制御系統には、燃料噴射制御および点火時期制御など、エンジン２の運転状態を制御するための電子制御ユニット（以下、ＥＣＵという）５０を備えている。このＥＣＵ５０は、ＣＰＵ５０ａ、ＲＯＭ５０ｂ、ＲＡＭ５０ｃ、およびバックアップＲＡＭ５０ｄ等を備える算術論理演算回路として構成されている。ここで、ＣＰＵ５０ａはＲＯＭ５０ｂに記憶された各種制御プログラムやマップに基づいて演算処理を実行する。ＲＡＭ５０ｃはＣＰＵ５０ａでの演算結果や各センサから入力されたデータ等を一時的に記憶するメモリであり、バックアップＲＡＭ５０ｄはエンジン２の停止時にその記憶されたデータ等を保存する不揮発性のメモリである。そして、ＣＰＵ５０ａ、ＲＯＭ５０ｂ、ＲＡＭ５０ｃおよびバックアップＲＡＭ５０ｄは、バス５０ｅを介して互いに接続されるとともに、外部入力回路５０ｆおよび外部出力回路５０ｇと接続されている。
【００５８】
外部入力回路５０ｆには、クランクポジションセンサ１４、カムポジションセンサ３８、スタータ８、およびイグニッションスイッチ１０等が接続されている。また、外部出力回路５０ｇには、スタータ８の駆動回路、＃１〜＃４の各燃料噴射弁４０、イグナイタ４４およびＶＶＴ３９等がそれぞれ接続されている。
【００５９】
上述したごとく構成されたＥＣＵ５０においては、その通電状態がイグニッションスイッチ１０の操作に基づき切り換えられる。イグニッションスイッチ１０は、オフ位置、アクセサリ位置、オン位置、およびスタート位置の４つの位置に切り換え可能なものであって、オフ位置もしくはアクセサリ位置にあるときにはＥＣＵ５０が非通電状態となる。イグニッションスイッチ１０がオン位置にある時にはＥＣＵ５０は通電状態となる。またイグニッションスイッチ１０がスタート位置にある時にはスタータ８が駆動されてクランクシャフト４の強制的な回転（クランキング）が実行され、エンジン２の始動がなされる。
【００６０】
エンジン２の運転中においては、吸気行程、圧縮行程、膨張行程、および排気行程の各行程が、＃１→＃３→＃４→＃２→＃１の順で行われる。そして、各気筒（＃１〜＃４）においては、吸気行程中に燃料噴射弁４０からの燃料噴射が実行されるとともに、圧縮上死点近傍、通常は圧縮上死点直前にて点火プラグ４２による点火が実行される。
【００６１】
ここで、エンジン２が駆動している時においてＥＣＵ５０に入力されるクランクポジションセンサ１４、およびカムポジションセンサ３８からの信号を図４に示す。図４において、（ａ）は吸気カムシャフト２８の回転に伴いカムポジションセンサ３８内に発生する電圧波形を示すものである。（ｂ）は（ａ）の電圧波形をパルス状のカム角信号に変換したものである。（ｃ）はクランクシャフト４の回転に伴いクランクポジションセンサ１４内に発生する電圧波形を示すものである。（ｄ）は（ｃ）の電圧波形をＮＥ信号に変換したものである。このＮＥ信号の内、突起１２ａに対応するパルス数は、クランクシャフト４の１回転（３６０°ＣＡ）当たりに「３４」となっている。また、クランクポジションセンサ１４から出力される回転信号のうち、欠歯１２ｂに対応する部分ではパルスの間隔が２パルス存在しないことにより広くされている。このパルス間隔が広い部分の数は、クランクシャフト４の１回転（３６０°ＣＡ）当たりに「１」となっている。そして、欠歯１２ｂに対応する部分は、図５の行程状態説明図にてＫＫＢで示すように、＃２および＃３の圧縮行程中にクランクポジションセンサ１４から出力される。すなわち、こうしたタイミングで欠歯１２ｂに対応するパルス信号が出力されるよう欠歯１２ｂの位置が設定されている。
【００６２】
ＥＣＵ５０は、上述したクランクポジションセンサ１４のＮＥ信号およびカムポジションセンサ３８からのカム角信号に基づきクランクシャフト４および吸気カムシャフト２８の回転位相を検知する。そして、ＥＣＵ５０は、クランクシャフト４および吸気カムシャフト２８の回転位相から各気筒（＃１〜＃４）について気筒判別を行い、それら各気筒（＃１〜＃４）のうち燃料噴射や点火を行うべき気筒を選択する。また、ＥＣＵ５０は、クランクポジションセンサ１４のＮＥ信号や、図示していないアクセル開度センサ、吸入空気量センサ、水温センサ等の出力にもとづいて、燃料噴射量、燃料噴射時期、点火時期、ＶＶＴ３９によるバルブタイミングの調整を行っている。
【００６３】
なお、運転中のエンジン２を運転者が手動で停止させる際には、イグニッションスイッチ１０をオン位置からアクセサリ位置もしくはオフ位置に切り換える。このようにイグニッションスイッチ１０が切り換えられる（停止指令がなされる）と、ＥＣＵ５０により燃料噴射弁４０からの燃料噴射が停止されるのでエンジン２の駆動は停止する。なお、このイグニッションスイッチ１０の切り換え時には直ちにＥＣＵ５０が非通電状とされるのではなく、少なくともクランクシャフト４の回転が完全に停止するまではＥＣＵ５０には通電され、その後、適当なタイミングでＥＣＵ５０が非通電とされる。このように燃料噴射停止後もクランクシャフト４の回転中はＥＣＵ５０を通電状態に維持するのは、後述する停止行程判別処理を完遂させるためである。
【００６４】
これ以外にエンジン２が停止する状況としては、前述したエコランシステムによってエンジン２が自動停止される場合がある。この場合には、クランクシャフト４の回転停止有無にかかわらずＥＣＵ５０は通電状態に維持されている。
【００６５】
ところで、エンジン２を停止させるために燃料噴射弁４０からの燃料噴射を停止すると、エンジン２は惰性回転に移り、クランクシャフト４の回転速度（エンジン回転数）が徐々に低下する。この状態にあっては、圧縮行程中の密閉された燃焼室１８から生じる逆方向の回転トルク、および膨張行程中の密閉された燃焼室１８から生じる正方向の回転トルクがクランクシャフト４の回転に影響する。すなわち、図５に示したごとく、行程の中央部分（９０，２７０，４５０，６３０°ＣＡ）が極小位置エネルギー回転位相となり、行程の境界部分（０，１８０，３６０，５４０°ＣＡ）が極大位置エネルギー位相となる。
【００６６】
このため、エンジン２が惰性回転にある場合には、図６（ｂ）に示すごとく、クランクポジションセンサ１４に発生する電圧波形は、行程の境界部分（０，１８０，３６０，５４０°ＣＡ）の極大位置エネルギー位相ＴＯＰを乗り越える際には一旦エンジン回転数が低下する。したがって、極大位置エネルギー位相ＴＯＰ通過の際には前後よりも長い波長（周波数としては低い）となる。すなわちＮＥ信号のパルス間隔が前後よりも長くなる。また、欠歯１２ｂの回転位相ＫＫＢにおいては、前述した構成により自ずと前後よりも長い波長となり、ＮＥ信号のパルス間隔が前後よりも長くなるようにされている。
【００６７】
そして、惰性回転しているエンジン２がフリクション等により次第に回転エネルギーを失い、極大位置エネルギー位相ＴＯＰを乗り越えられなくなると、エンジン２の回転は一旦停止する。そして、この回転位相を逆転回転位相ＲＶＳとして、正回転から逆回転へと逆転現象を生じる。この逆転回転位相ＲＶＳにおいても一旦回転が停止することから、クランクポジションセンサ１４に発生する電圧波形は前後より長波長となり、ＮＥ信号のパルス間隔が前後よりも長くなる。
【００６８】
以後、逆回転しても遅角側の極大位置エネルギー位相ＴＯＰを乗り越える回転エネルギーは無いので、乗り越えられなかった極大位置エネルギー位相ＴＯＰとその遅角側の極大位置エネルギー位相ＴＯＰとの間に挟まれた領域内で、逆転を繰り返して、最後には完全にエンジン２の惰性回転は停止する。したがって最初にＮＥ信号のパルス間隔が前後よりも長くなったクランク角を、最初の逆転回転位相ＲＶＳとして検出すれば、エンジン２が実際に停止した時の各気筒（＃１〜＃４）の行程状態が判明し、始動時でのエンジン制御に用いることができる。
【００６９】
しかし、極大位置エネルギー位相ＴＯＰを乗り越える際にも、そして欠歯１２ｂの回転位相ＫＫＢにおいても、ＮＥ信号のパルス間隔が前後よりも長くなるため、本実施の形態のＥＣＵ５０は、次に説明する図７の停止行程判別処理により、エンジン２の停止時の行程状態を決定している。
【００７０】
停止行程判別処理（図７）について説明する。この処理は、運転者がイグニッションスイッチ１０をオン位置からアクセサリ位置もしくはオフ位置に切り換えた時、あるいはエコランシステムにより自動停止された時から、エンジン２の回転が完全に停止するまで繰り返し実行される処理である。実際には、停止行程判別処理は、図４（ｄ）に示したＮＥ信号のパルス出力がなされる毎に繰り返し実行され、必要に応じてＮＥ信号のパルス出力がなされなくなってクランクシャフト４の回転が完全に停止した場合にも割り込み実行される。
【００７１】
本処理が開始されると、まず、図４（ｄ）に示したＮＥ信号による割り込みか否かが判定される（Ｓ１１０）。ＮＥ信号のパルス出力による割り込みであれば（Ｓ１１０で「ＹＥＳ」）、次にＣＰＵ５０ａに内蔵されているタイマーによりカウントされている現在の時刻を表す数値を時刻変数ｔ（ｎ）に設定する（Ｓ１２０）。そして、次式１に示すごとく、今回の時刻変数ｔ（ｎ）から前回の制御周期でのステップＳ１２０の処理にて設定されている時刻変数ｔ（ｎ−１）を減算して（Ｓ１３０）、ＮＥパルス出力の時間間隔を表すパルス幅Ｔｎｅ（ｎ）を算出する（Ｓ１３０）。
【００７２】
【数１】
Ｔｎｅ（ｎ）  ←  ｔ（ｎ）  −  ｔ（ｎ−１）    …  ［式１］
次に、クランク角を表すクランクカウンタＣＣＲＮＫの更新処理を行う。このクランクカウンタＣＣＲＮＫは、ＮＥ信号を３分周してカウントアップされる値であり、図８にＣＣＲＮＫ更新処理の詳細を示す。
【００７３】
ＣＣＲＮＫ更新処理では、まず、今回のパルスが欠歯１２ｂを検出しているか否かが判定される（Ｓ１４１）。欠歯１２ｂか否かはパルス幅Ｔｎｅ（ｎ）が前回の制御周期でのパルス幅Ｔｎｅ（ｎ−１）に対して基準比率（例えば、２．５））よりも大きい（例えば、Ｔｎｅ（ｎ）＞２．５×Ｔｎｅ（ｎ−１））ことにより、極大位置エネルギー位相ＴＯＰでのパルス幅Ｔｎｅ（ｎ）の極大化や逆転回転位相ＲＶＳでの極大化とは区別して判定できる。
【００７４】
欠歯１２ｂによるものでなければ（Ｓ１４１で「ＮＯ」）、次にパルス出力のカウント数を表す変数ｍを「１」増加させる（Ｓ１４２）。そして変数ｍが３以上となったか否かが判定される（Ｓ１４３）。ｍ≧３であれば（Ｓ１４３で「ＹＥＳ」）、次に変数ｍに「０」を設定し（Ｓ１４４）、更に、クランクカウンタＣＣＲＮＫを「１」増加させる（Ｓ１４５）。そして、クランクカウンタＣＣＲＮＫが「２３」より大きいか否かが判定される（Ｓ１４６）。ＣＣＲＮＫ＞２３であれば（Ｓ１４６で「ＹＥＳ」）、クランクカウンタＣＣＲＮＫに「０」を設定する（Ｓ１４７）。
【００７５】
なお、ステップＳ１４３でｍ＜３の場合は（Ｓ１４３で「ＮＯ」）、クランクカウンタＣＣＲＮＫは「１」増加させることなく一旦ＣＣＲＮＫ更新処理を出る。また、ステップＳ１４６でＣＣＲＮＫ≦２３であれば（Ｓ１４６で「ＮＯ」）、クランクカウンタＣＣＲＮＫに「０」を設定することなく、一旦ＣＣＲＮＫ更新処理を出る。
【００７６】
今回のパルス出力が欠歯１２ｂを検出したものであった場合には（Ｓ１４１で「ＹＥＳ」）、次に今回の欠歯検出と前回の欠歯検出との間に２回のカム角信号ＰＣＡが入力されているか否かが判定される（Ｓ１４８）。２回のカム角信号ＰＣＡが入力されていれば（Ｓ１４８で「ＹＥＳ」）、クランクカウンタＣＣＲＮＫに「４」が設定される（Ｓ１４９）。２回のカム角信号ＰＣＡが入力されていなければ（Ｓ１４８で「ＮＯ」）、クランクカウンタＣＣＲＮＫに「１６」が設定される（Ｓ１５０）。
【００７７】
なお、このＣＣＲＮＫ更新処理（Ｓ１４０：図８）はエンジン２の駆動中にも行われている。本実施の形態では、上述したごとくエンジン２の駆動停止後もクランクシャフト４が停止するまで実行されることになる。
【００７８】
ＣＣＲＮＫ更新処理（Ｓ１４０：図８）が終了すると、次にＮＥ信号のパルス幅Ｔｎｅが極大となったか否かが判定される（Ｓ１６０）。例えば、前々回のパルス幅Ｔｎｅ（ｎ−２）から前回のパルス幅Ｔｎｅ（ｎ−１）へはパルス幅が増加しており、今回のパルス幅Ｔｎｅ（ｎ）が前回のパルス幅Ｔｎｅ（ｎ−１）よりも減少している場合に、前回の制御周期にてパルス幅Ｔｎｅ（ｎ−１）が極大となったと判定される。すなわち前後の状態よりもパルス幅Ｔｎｅ（ｎ−１）が長ければ、その位相で極大となったと判定される。パルス幅Ｔｎｅ（ｎ−１）が極大となっていなければ（Ｓ１６０で「ＮＯ」）、このまま、停止行程判別処理を一旦終了する。パルス幅Ｔｎｅが極大となっていれば（Ｓ１６０で「ＹＥＳ」）、次に行程状態変数Ｎ設定処理が実行される（Ｓ１７０）。
【００７９】
図９に行程状態変数Ｎ設定処理の詳細を示す。行程状態変数Ｎ設定処理では、まず、前回制御周期時のクランクカウンタＣＣＲＮＫ（ｎ−１）が「０，４，６，１２，１６，１８」のいずれかに該当するか否かを判定する（Ｓ１７１）。この内、ＣＣＲＮＫ（ｎ−１）＝「４，１６」は、欠歯１２ｂによりパルス幅Ｔｎｅに極大が現れるクランク角位相に対応している。また、ＣＣＲＮＫ（ｎ−１）＝「０，６，１２，１８」は、極大位置エネルギー位相ＴＯＰを通過する際に一旦回転数が低下することによりパルス幅Ｔｎｅに極大が現れるクランク角位相に対応している。
【００８０】
このように、正回転を継続していてもＣＣＲＮＫ（ｎ−１）＝「０，４，６，１２，１６，１８」である場合にはパルス幅Ｔｎｅが極大となる。このような極大位相が生じたことが判明すると（Ｓ１７１で「ＹＥＳ」）、このまま一旦行程状態変数Ｎ設定処理から出る。
【００８１】
ＣＣＲＮＫ（ｎ−１）＝「０，４，６，１２，１６，１８」でない場合には（Ｓ１７１で「ＮＯ」）、次にＣＣＲＮＫ（ｎ−１）＝「１８〜２３」か否かが判定される（Ｓ１７２）。このようにＣＣＲＮＫ（ｎ−１）＝「１８〜２３」である状態は、図５に示されているごとく、＃１が圧縮行程、＃２が膨張行程、＃３が吸気行程および＃４が排気行程にある状態を示している。なお、以下、行程状態は、圧縮行程の気筒にて代表して述べるものとする。したがって、この場合の行程状態は＃１が圧縮行程となっている状態である。
【００８２】
ＣＣＲＮＫ（ｎ−１）＝「１８〜２３」であれば（Ｓ１７２で「ＹＥＳ」）、行程状態変数Ｎに「１」が設定され（Ｓ１７３）、このまま一旦行程状態変数Ｎ設定処理を出る。なお、行程状態変数Ｎには初期値として「０」が予め設定されているものとする。
【００８３】
ここで、ステップＳ１７２にて「ＹＥＳ」と判定された状態は、前回制御周期でのクランクカウンタＣＣＲＮＫ（ｎ−１）が「１８〜２３」にある時に、パルス幅Ｔｎｅ（ｎ−１）が極大になったことを示している。ただし、ＣＣＲＮＫ（ｎ−１）＝「１８」については、ステップＳ１７１にて「ＹＥＳ」となるため、ステップＳ１７２にて「ＹＥＳ」と判定されることはない。すなわち、ステップＳ１７２にて「ＹＥＳ」と判定された状態は、＃１が圧縮行程である状態において、正回転を継続していたのでは通常生じないクランク角位相にて、パルス幅Ｔｎｅ（ｎ−１）が最初に極大となったことを示している。
【００８４】
この状態となるには、２つの場合が考えられる。第１の場合は、＃１が圧縮行程にある時に最初の逆転が生じた場合である。したがって、この場合は、クランクシャフト４は、以後、クランク角位相５４０°ＣＡと０（７２０）°ＣＡとの間の領域で、逆回転と正回転とを繰り返して、極小位置エネルギー回転位相ＢＴＭ（６３０°ＣＡ）あるいはこの位相近傍にて回転を停止する。
【００８５】
第２の場合は、最初の逆転が実際には、ＣＣＲＮＫ（ｎ−１）＝「０，４，６，１２，１６，１８」と重なったために、ステップＳ１７１にて「ＹＥＳ」と判定されて、最初の逆転は検出されず、実際には２番目の逆転が最初の逆転として検出された場合である。例えば、ＣＣＲＮＫ（ｎ−１）＝「１６」または「１８」にて最初の逆転が生じたが、ステップＳ１７１にて「ＹＥＳ」と判定されて検出されず、２番目の逆転、すなわち逆回転から正回転への逆転時に生じたパルス幅Ｔｎｅ（ｎ−１）の極大を捉えた場合である。この場合は、実際には＃２の圧縮行程（ＣＣＲＮＫ（ｎ−１）＝「１２〜１７」）にて逆回転と正回転とを繰り返して、極小位置エネルギー回転位相ＢＴＭ（４５０°ＣＡ）あるいはこの位相近傍にて回転を停止することになる。しかし、逆回転においてもＮＥ信号がカウントされてクランクカウンタＣＣＲＮＫがカウントアップされるので、逆転の検出時のクランクカウンタＣＣＲＮＫ（ｎ−１）の数値は、＃１が圧縮行程状態にあるかのような値を示す。
【００８６】
このように、第１の場合と第２の場合とが存在するため、行程状態変数Ｎ＝「１」は、完全停止時のクランク角位相が＃１と＃２とのいずれかが圧縮行程にあることを表すものとなる。
【００８７】
また、ステップＳ１７１，Ｓ１７２にて共に「ＮＯ」と判定されると、次にＣＣＲＮＫ（ｎ−１）＝「０〜５」か否かが判定される（Ｓ１７４）。このようにＣＣＲＮＫ（ｎ−１）＝「０〜５」である状態は、＃３が圧縮行程にある状態を示している。ＣＣＲＮＫ（ｎ−１）＝「０〜５」であれば（Ｓ１７４で「ＹＥＳ」）、行程状態変数Ｎに「２」が設定され（Ｓ１７５）、このまま一旦行程状態変数Ｎ設定処理を出る。
【００８８】
ここで、ステップＳ１７４にて「ＹＥＳ」と判定された状態は、クランクカウンタＣＣＲＮＫ（ｎ−１）が「０〜５」にある時に、パルス幅Ｔｎｅ（ｎ−１）が極大になったことを示している。ただし、ＣＣＲＮＫ（ｎ−１）＝「０」および「４」については、ステップＳ１７１にて「ＹＥＳ」となるため、ステップＳ１７４にて「ＹＥＳ」と判定されることはない。すなわち、正回転を継続していたのでは通常生じないクランク角位相にて、最初にパルス幅Ｔｎｅ（ｎ−１）が極大となったことを示している。
【００８９】
この状態となるには、２つの場合が考えられる。第１の場合は、＃３が圧縮行程にある時に最初の逆転が生じた場合である。したがって、この場合は、クランクシャフト４は、以後、クランク角位相０°ＣＡと１８０°ＣＡとの間の領域で、逆回転と正回転とを繰り返して、極小位置エネルギー回転位相ＢＴＭ（９０°ＣＡ）あるいはこの位相近傍にて回転を停止する。
【００９０】
第２の場合は、最初の逆転が実際には、ＣＣＲＮＫ＝「０，４，６，１２，１６，１８」と重なったために、ステップＳ１７１にて「ＹＥＳ」と判定されて、最初の逆転は検出されず、２番目の逆転が最初の逆転であると検出された場合である。例えば、ＣＣＲＮＫ＝「０」にて最初の逆転が生じたが、ステップＳ１７１にて「ＹＥＳ」と判定されて検出されず、２番目の逆転、すなわち逆回転から正回転に切り替わった場合に生じたパルス幅Ｔｎｅ（ｎ−１）の極大を捉えた場合である。この場合は、実際には＃１の圧縮行程（ＣＣＲＮＫ（ｎ−１）＝「１８〜２３」）にて逆回転と正回転とを繰り返して、極小位置エネルギー回転位相ＢＴＭ（６３０°ＣＡ）あるいはこの位相近傍にて回転を停止することになる。しかし、逆回転においてもＮＥ信号がカウントされてクランクカウンタＣＣＲＮＫがカウントアップされるので、クランクカウンタＣＣＲＮＫ（ｎ−１）の数値は、＃３が圧縮行程にあるかのような値を示すようになる。
【００９１】
このように、行程状態変数Ｎ＝「２」は、完全停止時のクランク角位相が＃１と＃３とのいずれかが圧縮行程状態にあることを表すものとなる。
また、ステップＳ１７１，Ｓ１７２，Ｓ１７４にて共に「ＮＯ」と判定されると、次にＣＣＲＮＫ（ｎ−１）＝「６〜１１」か否かが判定される（Ｓ１７６）。このようにＣＣＲＮＫ（ｎ−１）＝「６〜１１」である状態は、＃４が圧縮行程にある状態を示している。ＣＣＲＮＫ（ｎ−１）＝「６〜１１」であれば（Ｓ１７６で「ＹＥＳ」）、行程状態変数Ｎに「３」が設定され（Ｓ１７７）、このまま一旦行程状態変数Ｎ設定処理を出る。
【００９２】
ここで、ステップＳ１７６にて「ＹＥＳ」と判定された状態は、クランクカウンタＣＣＲＮＫ（ｎ−１）が「６〜１１」にある時に、パルス幅Ｔｎｅ（ｎ−１）が極大になったことを示している。ただし、ＣＣＲＮＫ（ｎ−１）＝「６」については、ステップＳ１７１にて「ＹＥＳ」となるため、ステップＳ１７６にて「ＹＥＳ」と判定されることはない。すなわち、正回転を継続していたのでは通常生じないクランク角位相にて、最初にパルス幅Ｔｎｅ（ｎ−１）が極大となったことを示している。
【００９３】
この状態となるには、２つの場合が考えられる。第１の場合は、＃４が圧縮行程にある時に最初の逆転が生じた場合である。したがって、この場合は、クランクシャフト４は、以後、クランク角位相１８０°ＣＡと３６０°ＣＡとの間の領域で、逆回転と正回転とを繰り返して、極小位置エネルギー回転位相ＢＴＭ（２７０°ＣＡ）あるいはこの位相近傍にて回転を停止する。
【００９４】
第２の場合は、最初の逆転が実際には、ＣＣＲＮＫ（ｎ−１）＝「０，４，６，１２，１６，１８」と重なったために、ステップＳ１７１にて「ＹＥＳ」と判定されて、実際には最初の逆転は検出されず、２番目の逆転が最初の逆転として検出された場合である。例えば、ＣＣＲＮＫ＝「４」または「６」にて最初の逆転が生じたが、ステップＳ１７１にて「ＹＥＳ」と判定されて検出されず、２番目の逆転、すなわち逆回転から正回転に切り替わった場合に生じたパルス幅Ｔｎｅ（ｎ−１）の極大を捉えた場合である。この場合は、実際には＃３の圧縮行程（ＣＣＲＮＫ（ｎ−１）＝「０〜５」）にて逆回転と正回転とを繰り返して、極小位置エネルギー回転位相ＢＴＭ（９０°ＣＡ）あるいはこの位相近傍にて回転を停止することになる。しかし、逆回転においてもＮＥ信号がカウントされてクランクカウンタＣＣＲＮＫがカウントアップされるので、クランクカウンタＣＣＲＮＫ（ｎ−１）の数値は、＃４が圧縮行程にあるかのような値を示す。
【００９５】
このように、行程状態変数Ｎ＝「３」は、完全停止時のクランク角位相が＃３と＃４とのいずれかが圧縮行程状態にあることを表すものとなる。
また、ステップＳ１７１，Ｓ１７２，Ｓ１７４，Ｓ１７６にて共に「ＮＯ」と判定されると、次にＣＣＲＮＫ（ｎ−１）＝「１２〜１７」か否かが判定される（Ｓ１７８）。このようにＣＣＲＮＫ（ｎ−１）＝「１２〜１７」である状態は、＃２が圧縮行程にある状態を示している。ＣＣＲＮＫ（ｎ−１）＝「１２〜１７」であれば（Ｓ１７８で「ＹＥＳ」）、行程状態変数Ｎに「４」が設定され（Ｓ１７９）、このまま一旦行程状態変数Ｎ設定処理を出る。
【００９６】
ここで、ステップＳ１７８にて「ＹＥＳ」と判定された状態は、クランクカウンタＣＣＲＮＫ（ｎ−１）が「１２〜１７」にある時に、パルス幅Ｔｎｅ（ｎ−１）が極大になったことを示している。ただし、ＣＣＲＮＫ＝「１２」および「１６」については、ステップＳ１７１にて「ＹＥＳ」となるため、ステップＳ１７８にて「ＹＥＳ」と判定されることはない。すなわち、正回転を継続していたのでは通常生じないクランク角位相にて、最初にパルス幅Ｔｎｅ（ｎ−１）が極大となったことを示している。
【００９７】
この状態となるには、２つの場合が考えられる。第１の場合は、＃２が圧縮行程にある時に最初の逆転が生じた場合である。したがって、この場合は、クランクシャフト４は、以後、クランク角位相３６０°ＣＡと５４０°ＣＡとの間の領域で、逆回転と正回転とを繰り返して、極小位置エネルギー回転位相ＢＴＭ（４３０°ＣＡ）あるいはこの位相近傍にて回転を停止する。
【００９８】
第２の場合は、最初の逆転が実際には、ＣＣＲＮＫ＝「０，４，６，１２，１６，１８」と重なったために、ステップＳ１７１にて「ＹＥＳ」と判定されて、最初の逆転は検出されず、２番目の逆転が最初の逆転として検出された場合である。例えば、ＣＣＲＮＫ＝「１２」にて最初の逆転が生じたが、ステップＳ１７１にて「ＹＥＳ」と判定されて検出されず、２番目の逆転、すなわち逆回転から正回転に切り替わった場合に生じたパルス幅Ｔｎｅ（ｎ−１）の極大を捉えた場合である。この場合は、実際には＃４の圧縮行程（ＣＣＲＮＫ（ｎ−１）＝「６〜１１」）にて逆回転と正回転とを繰り返して、極小位置エネルギー回転位相ＢＴＭ（２７０°ＣＡ）あるいはこの位相近傍にて回転を停止することになる。しかし、逆回転においてもＮＥ信号がカウントされてクランクカウンタＣＣＲＮＫがカウントアップされるので、クランクカウンタＣＣＲＮＫ（ｎ−１）の数値は、＃２が圧縮行程状態にあるかのような値を示すようになる。
【００９９】
このように、行程状態変数Ｎ＝「４」は、完全停止時のクランク角位相が＃２と＃４とのいずれかが圧縮行程状態にあることを表すものとなる。
なお、３番目以降の逆転において前述したステップＳ１７２，Ｓ１７４，Ｓ１７６，Ｓ１７８にて「ＹＥＳ」と判定される場合は極めて少ない。しかし、このように３番目以降の逆転が最初の逆転として検出されたとしても、正回転および逆回転の繰り返しによるクランクカウンタＣＣＲＮＫの増加は大きなものでない。したがって行程状態変数Ｎにて限定した完全停止時のクランク角位相から外れるような誤差は生じない。
【０１００】
次に、ステップＳ１７１，Ｓ１７２，Ｓ１７４，Ｓ１７６，Ｓ１７８にて共に「ＮＯ」と判定されると、このまま一旦行程状態変数Ｎ設定処理を出る。したがって、この場合は行程状態変数Ｎは初期設定の「０」のままである。
【０１０１】
なお、停止行程判別処理（図７）において、ＮＥ信号のパルス出力による割り込みでなく、クランクシャフト４の回転停止時の割り込みである場合は（Ｓ１１０で「ＮＯ」）、逆転が検出されずに停止したことを示しており、停止したクランク角位相でのクランクカウンタＣＣＲＮＫについて判定される。この場合は、上述した行程状態変数Ｎ設定処理（図９）のステップＳ１７２から実行される。
【０１０２】
したがって、ＣＣＲＮＫ（ｎ−１）＝「１８〜２３」であれば（Ｓ１７２で「ＹＥＳ」）、行程状態変数Ｎに「１」が設定され（Ｓ１７３）、＃１と＃２とのいずれかが圧縮行程にあることを示す。すなわち、全く逆転せずにＣＣＲＮＫ（ｎ−１）＝「１８〜２３」の値であれば＃１の圧縮行程で回転停止したことになる。また、最初の逆転が実際には、ＣＣＲＮＫ＝「０，４，６，１２，１６，１８」と重なったために、ステップＳ１７１にて「ＹＥＳ」と判定され、その後、逆転無しでＣＣＲＮＫ（ｎ−１）＝「１８〜２３」の値となれば＃２の圧縮行程で回転停止したことになる。最初の逆転ばかりでなくすべての逆転がことごとくＣＣＲＮＫ＝「０，４，６，１２，１６，１８」と重なった場合も＃２の圧縮行程で回転停止したことになる。
【０１０３】
同様にして、ＣＣＲＮＫ＝「０〜５」であれば（Ｓ１７４で「ＹＥＳ」）、行程状態変数Ｎに「２」が設定され（Ｓ１７５）、＃１と＃３とのいずれかが圧縮行程にあることを示す。また、ＣＣＲＮＫ＝「６〜１１」であれば（Ｓ１７６で「ＹＥＳ」）、行程状態変数Ｎに「３」が設定され（Ｓ１７７）、＃３と＃４とのいずれかが圧縮行程にあることを示す。また、ＣＣＲＮＫ＝「１２〜１７」であれば（Ｓ１７８で「ＹＥＳ」）、行程状態変数Ｎに「４」が設定され（Ｓ１７９）、＃２と＃４とのいずれかが圧縮行程にあることを示す。
【０１０４】
このようにして、行程状態変数Ｎ設定処理（Ｓ１７０：図９）が終了すると次に行程状態変数Ｎ＝「０」か否かが判定される（Ｓ１８０）。行程状態変数Ｎが「０」であって（Ｓ１８０で「ＹＥＳ」）、未だ行程状態変数Ｎが設定されていなければ、一旦、停止行程判別処理を終了する。
【０１０５】
一方、行程状態変数Ｎに「１〜４」のいずれかの値が設定されいてれば（Ｓ１８０で「ＮＯ」）、停止行程判別処理割り込み実行を停止する設定をして（Ｓ１９０）、停止行程判別処理を終了する。この停止行程判別処理割り込み実行の停止設定（Ｓ１９０）により、再度、運転者がイグニッションスイッチ１０をオン位置からアクセサリ位置もしくはオフ位置に切り換えるまで、あるいはエコランシステムにより自動停止されるまで、停止行程判別処理（図７）は停止される。なお、行程状態変数Ｎの値は、バックアップＲＡＭ５０ｄに記憶されるので、停止行程判別処理（図７）後にＥＣＵ５０の電源が切られた場合でも、次の始動時まで保持される。
【０１０６】
次に、上述したごとくに設定されバックアップＲＡＭ５０ｄに記憶された行程状態変数Ｎの値に基づいて始動時に行われる処理について説明する。この始動時とは、イグニッションスイッチ１０をスタート位置にした時、あるいはエコランシステムにより自動始動を開始した時である。
【０１０７】
図１０に行程状態変数Ｎの値に基づいて行われる始動時燃料噴射処理を示す。本処理は始動時に１回実行される処理である。本処理が開始されると、まず、行程状態変数Ｎが「１」か否かが判定される（Ｓ２１０）。Ｎ＝「１」であれば（Ｓ２１０で「ＹＥＳ」）、＃１と＃２とのいずれかが圧縮行程状態にあることを示していることから、この行程状態では＃１と＃３とのいずれかが吸気行程にあることになる。したがって、＃１と＃３との両方に燃料噴射を実行する（Ｓ２２０）。すなわち、始動時に冷却水温ＴＨＷに基づいて設定された燃料量を、＃１と＃３との両方の燃料噴射弁４０から、各吸気ポート２０ａに向けて噴射する。こうして始動時燃料噴射処理を終了する。このことにより、吸気行程にある＃１と＃３とのいずれかの燃焼室１８に、エンジン２のクランキングにより、燃料は吸気とともに直ちに吸い込まれる。そして、引き続いて圧縮行程となり、圧縮行程の終了近傍で点火がなされて初爆がなされる。
【０１０８】
例えば、実際には停止状態では＃１が圧縮行程にあった場合には（ＣＣＲＮＫ＝「１８〜２３」）、この時に吸気行程にあるのは＃３である。したがって、＃３の吸気ポート２０ａに向けて噴射された燃料が直ちに吸入されて、クランク角位相＝１８０°ＣＡ近傍にて初爆となる。そして、＃１の吸気ポート２０ａに向けて噴射された燃料は、３行程後に訪れる吸気行程にて＃１の燃焼室１８に吸入されて燃焼に用いられる。
【０１０９】
また、実際には＃２が圧縮行程であった場合には（ＣＣＲＮＫ＝「１２〜１７」）、吸気行程にあるのは＃１となる。したがって、＃１の吸気ポート２０ａに向けて噴射された燃料が直ちに吸入されて、クランク角位相＝０°ＣＡ近傍にて初爆となる。そして、＃３の吸気ポート２０ａに向けて噴射された燃料は、更に直後の吸気行程にて＃３の燃焼室１８に吸入されてクランク角位相＝１８０°ＣＡ近傍にて点火燃焼される。
【０１１０】
Ｎ＝「１」でなければ（Ｓ２１０で「ＮＯ」）、次に行程状態変数Ｎが「２」か否かが判定される（Ｓ２３０）。Ｎ＝「２」であれば（Ｓ２３０で「ＹＥＳ」）、＃１と＃３とのいずれかが圧縮行程状態にあることを示していることから、この行程状態では＃３と＃４とのいずれかが吸気行程にある。したがって、＃３と＃４との両方に燃料噴射を実行する（Ｓ２４０）。すなわち、始動時に冷却水温ＴＨＷに基づいて設定された燃料量を、＃３と＃４との両方の燃料噴射弁４０から、各吸気ポート２０ａに向けて噴射する。こうして始動時燃料噴射処理を終了する。このことにより、吸気行程にある＃３と＃４とのいずれかの燃焼室１８に、エンジン２のクランキング時に、燃料は吸気とともに直ちに吸い込まれる。そして、引き続いて圧縮行程となり、圧縮行程の終了時に点火がなされて初爆がなされる。
【０１１１】
例えば、実際には＃３が圧縮行程であった場合には（ＣＣＲＮＫ＝「０〜５」）、吸気行程にあるのは＃４である。したがって、＃４の吸気ポート２０ａに向けて噴射された燃料が直ちに吸入されて、クランク角位相＝３６０°ＣＡ近傍にて初爆となる。そして、＃３の吸気ポート２０ａに向けて噴射された燃料は、３行程後に訪れる吸気行程にて＃３の燃焼室１８に吸入されて燃焼に用いられる。
【０１１２】
また、実際には＃１が圧縮行程であった場合には（ＣＣＲＮＫ＝「１８〜２３」）、吸気行程にあるのは＃３である。したがって、＃３の吸気ポート２０ａに向けて噴射された燃料が直ちに吸入されて、クランク角位相＝１８０°ＣＡ近傍にて初爆となる。そして、＃４の吸気ポート２０ａに向けて噴射された燃料は、更に直後の吸気行程にて＃４の燃焼室１８に吸入されてクランク角位相＝３６０°ＣＡ近傍にて点火燃焼される。
【０１１３】
Ｎ＝「２」でなければ（Ｓ２３０で「ＮＯ」）、次に行程状態変数Ｎが「３」か否かが判定される（Ｓ２５０）。Ｎ＝「３」であれば（Ｓ２５０で「ＹＥＳ」）、＃３と＃４とのいずれかが圧縮行程状態にあることを示していることから、この行程状態では＃２と＃４とのいずれかが吸気行程にある。したがって、＃２と＃４との両方に燃料噴射を実行する（Ｓ２６０）。すなわち、始動時に冷却水温ＴＨＷに基づいて設定された燃料量を、＃２と＃４との両方の燃料噴射弁４０から、各吸気ポート２０ａに向けて噴射する。こうして始動時燃料噴射処理を終了する。このことにより、吸気行程にある＃２と＃４とのいずれかの燃焼室１８に、エンジン２のクランキング時に燃料は吸気とともに直ちに吸い込まれる。そして、引き続いて圧縮行程となり、圧縮行程の終了時に点火がなされて初爆がなされる。
【０１１４】
例えば、実際には＃４が圧縮行程であった場合には（ＣＣＲＮＫ＝「６〜１１」）、吸気行程にあるのは＃２である。したがって、＃２の吸気ポート２０ａに向けて噴射された燃料が直ちに吸入されて、クランク角位相＝５４０°ＣＡ近傍にて初爆となる。そして、＃４の吸気ポート２０ａに向けて噴射された燃料は、３行程後に訪れる吸気行程にて＃４の燃焼室１８に吸入されて燃焼に用いられる。
【０１１５】
また、実際には＃３が圧縮行程であった場合には（ＣＣＲＮＫ＝「０〜５」）、吸気行程にあるのは＃４である。したがって、＃４の吸気ポート２０ａに向けて噴射された燃料が直ちに吸入されて、クランク角位相＝３６０°ＣＡ近傍にて初爆となる。そして、＃２の吸気ポート２０ａに向けて噴射された燃料は、更に直後の吸気行程にて＃２の燃焼室１８に吸入されてクランク角位相＝５４０°ＣＡ近傍にて点火燃焼される。
【０１１６】
Ｎ＝「３」でなければ（Ｓ２５０で「ＮＯ」）、行程状態変数Ｎが「４」である。このことは、＃２と＃４とのいずれかが圧縮行程状態にあることを示していることから、この行程状態では＃１と＃２とのいずれかが吸気行程にある。したがって、＃１と＃２との両方に燃料噴射を実行する（Ｓ２７０）。すなわち、始動時に冷却水温ＴＨＷに基づいて設定された燃料量を、＃１と＃２との両方の燃料噴射弁４０から、各吸気ポート２０ａに向けて噴射する。こうして始動時燃料噴射処理を終了する。このことにより、吸気行程にある＃１と＃２とのいずれかの燃焼室１８に、エンジン２のクランキング時に燃料は吸気とともに直ちに吸い込まれる。そして、引き続いて圧縮行程となり、圧縮行程の終了時に点火がなされて初爆がなされる。
【０１１７】
例えば、実際には＃２が圧縮行程であった場合には（ＣＣＲＮＫ＝「１２〜１７」）、吸気行程にあるのは＃１である。したがって、＃１の吸気ポート２０ａに向けて噴射された燃料が直ちに吸入されて、クランク角位相＝７２０°ＣＡ近傍にて初爆となる。そして、＃２の吸気ポート２０ａに向けて噴射された燃料は、３行程後に訪れる吸気行程にて＃２の燃焼室１８に吸入されて燃焼に用いられる。
【０１１８】
また、実際には＃４が圧縮行程であった場合には（ＣＣＲＮＫ＝「６〜１１」）、吸気行程にあるのは＃２である。したがって、＃２の吸気ポート２０ａに向けて噴射された燃料が直ちに吸入されて、クランク角位相＝５４０°ＣＡにて初爆となる。そして、＃１の吸気ポート２０ａに向けて噴射された燃料は、更に直後の吸気行程にて＃１の燃焼室１８に吸入されてクランク角位相＝０°ＣＡ近傍にて点火燃焼される。
【０１１９】
次に、イグニッションスイッチ１０をスタート位置にした時以後、あるいはエコランシステムにより自動始動を開始した時以後に行われるクランク角設定処理について図１１〜１５に基づいて説明する。本クランク角設定処理はＮＥ信号のパルス出力毎に割り込み実行される処理である。
【０１２０】
クランク角設定処理が開始されると、まず、選別完了フラグＦｓが「ＯＦＦ」か否かが判定される（Ｓ３１０）。ここで、選別完了フラグＦｓは後述する各選別処理（図１２〜１５）にて、始動開始時に圧縮行程にある気筒が選別された場合に「ＯＮ」に設定されるフラグであり、始動時にはＦｓ＝「ＯＦＦ」に初期化されている。したがって、最初はＦｓ＝「ＯＦＦ」（Ｓ３１０で「ＹＥＳ」）であるので、次にスタータ８がオンしてからの回転クランク角Ｓｃａをカウントする（Ｓ３１５）。すなわち、ステップＳ３１５の実行毎に１０°ＣＡが加算される。ただし欠歯１２ｂであった場合には３０°ＣＡが加算される。
【０１２１】
次にバックアップＲＡＭ５０ｄに記憶されている行程状態変数Ｎを読み出して、Ｎ＝「１」か否かを判定する（Ｓ３２０）。ここで、Ｎ＝「１」であれば（Ｓ３２０で「ＹＥＳ」）、図１２に示す＃１，２選別処理が実行される（Ｓ３３０）。Ｎ＝「１」では、前述したごとくエンジン２の停止時の行程状態は、＃１あるいは＃２のいずれかが圧縮行程にあることが判明している。すなわち、＃１，２選別処理は、実際には＃１あるいは＃２のいずれの圧縮行程が停止時（始動時）の行程状態であるかを決定し、クランクカウンタＣＣＲＮＫを早期に設定するための処理である。
【０１２２】
＃１，２選別処理が開始されると、まず、今回の割り込み実行に対応するＮＥ信号が欠歯１２ｂに該当するものか否かを判定する（Ｓ３３１）。欠歯１２ｂに該当しない内は（Ｓ３３１で「ＮＯ」）、次に、カム角信号ＰＣＡが２回入力したか否かが判定される（Ｓ３３２）。カム角信号ＰＣＡが入力されていなかったり、あるいはカム角信号ＰＣＡがいまだ１回である内は（Ｓ３３２で「ＮＯ」）、このまま＃１，２選別処理（図１２）を出る。そしてクランク角設定処理（図１１）についても一旦終了する。
【０１２３】
一方、ＮＥ信号が欠歯１２ｂに該当すれば（Ｓ３３１で「ＹＥＳ」）、前記回転クランク角Ｓｃａが８０°ＣＡ以内か否かが判定される（Ｓ３３３）。Ｓｃａ≦８０°ＣＡであれば（Ｓ３３３で「ＹＥＳ」）、始動時に圧縮行程にある気筒として＃２が該当することから、ＲＡＭ５０ｃ内に設定されている始動時気筒変数ＳＳに「＃２」を記憶する（Ｓ３３４）。
【０１２４】
図５に示したごとく、Ｎ＝「１」では、停止時のエンジン２は＃１あるいは＃２のいずれかが圧縮行程にあり、しかも、この内でも極小位置エネルギー回転位相ＢＴＭ（４５０°ＣＡまたは６３０°ＣＡ）、あるいはこの近傍の回転位相にある。この状態からエンジン２が回転して、スタータ８のオンから８０°ＣＡ以内に欠歯１２ｂの回転位相ＫＫＢとなるのは、始動開始時に＃２が圧縮行程にある状態のみである。したがって、始動時気筒変数ＳＳに「＃２」が記憶されることになる。なお、図５は、ＶＶＴ３９が、クランクシャフト４に対する吸気カムシャフト２８の相対位相を、始動時の位相である最遅角位相に配置している状態を示している。
【０１２５】
そして、＃２が圧縮行程にある状態から回転開始したことが判れば、最初に欠歯１２ｂを検出する回転位相ＫＫＢは４８０°ＣＡである。このためクランクカウンタＣＣＲＮＫに「１６」を設定する（Ｓ３３５）。そして、選別完了フラグＦｓに「ＯＮ」を設定して（Ｓ３３６）、＃１，２選別処理（図１２）を出る。
【０１２６】
一方、欠歯１２ｂが検出されない内に（Ｓ３３１で「ＮＯ」）、カム角信号ＰＣＡが２回入力すると（Ｓ３３２で「ＹＥＳ」）、始動時に圧縮行程にある気筒として＃２が該当することから、始動時気筒変数ＳＳに「＃２」を記憶する（Ｓ３３７）。
【０１２７】
図５に示したごとく、停止時のエンジン２が、実際に＃２が圧縮行程にある状態にあったとしても、フリクションなどの関係で最初に欠歯１２ｂを検出する回転位相ＫＫＢである４８０°ＣＡにあるかわずかに越えている場合も考えられる。この場合には、欠歯１２ｂが検出される前にカム角信号ＰＣＡが２回入力することになる。したがって、このような場合には始動時気筒変数ＳＳには「＃２」が記憶される。
【０１２８】
そして、＃２が圧縮行程にある状態から回転開始したことが判れば、２つ目のカム角信号ＰＣＡが入力する回転位相は０°ＣＡである。このためクランクカウンタＣＣＲＮＫに「０」を設定する（Ｓ３３８）。そして、選別完了フラグＦｓに「ＯＮ」を設定して（Ｓ３３６）、＃１，２選別処理（図１２）を出る。
【０１２９】
また２回のカム角信号ＰＣＡが検出されない内に欠歯１２ｂが検出され（Ｓ３３１で「ＹＥＳ」）、しかも回転クランク角Ｓｃａが８０°ＣＡを越えていた場合は（Ｓ３３３で「ＮＯ」）、始動時に圧縮行程にある気筒としては＃１が該当する。このため始動時気筒変数ＳＳに「＃１」を記憶する（Ｓ３３９）。
【０１３０】
図５に示したごとく、Ｎ＝「１」の停止状態からエンジン２が回転して、２回のカム角信号ＰＣＡが検出されない内にスタータ８のオンから８０°ＣＡを越えた後に欠歯１２ｂの回転位相ＫＫＢとなるのは、始動開始時に＃１が圧縮行程にある場合のみである。したがって、始動時気筒変数ＳＳに「＃１」が記憶されることになる。
【０１３１】
そして、＃１が圧縮行程にある状態から回転開始したことが判れば、最初に欠歯１２ｂを検出する回転位相ＫＫＢは、１２０°ＣＡである。このためクランクカウンタＣＣＲＮＫに「４」を設定する（Ｓ３４０）。そして、選別完了フラグＦｓに「ＯＮ」を設定して（Ｓ３３６）、＃１，２選別処理（図１２）を出る。
【０１３２】
クランク角設定処理（図１１）にて、Ｎ＝「１」でない場合には（Ｓ３２０で「ＮＯ」）、次にＮ＝「２」か否かが判定される（Ｓ３５０）。Ｎ＝「２」であれば（Ｓ３５０で「ＹＥＳ」）、図１３に示す＃１，３選別処理が実行される（Ｓ３６０）。Ｎ＝「２」では、前述したごとくエンジン２の停止時の行程状態は、＃１あるいは＃３のいずれかが圧縮行程にあることが判明している。すなわち、＃１，３選別処理は、実際には＃１あるいは＃３のいずれが停止時（始動時）の行程状態であるかを決定し、クランクカウンタＣＣＲＮＫを早期に設定するための処理である。
【０１３３】
＃１，３選別処理が開始されると、まず、今回の割り込み実行に対応するＮＥ信号が欠歯１２ｂに該当するものか否かを判定する（Ｓ３６１）。欠歯１２ｂに該当しない内は（Ｓ３６１で「ＮＯ」）、次に、カム角信号ＰＣＡが入力したか否かが判定される（Ｓ３６２）。カム角信号ＰＣＡが入力されていない内は（Ｓ３６２で「ＮＯ」）、このまま＃１，３選別処理（図１３）を出る。そしてクランク角設定処理（図１１）についても一旦終了する。
【０１３４】
一方、ＮＥ信号が欠歯１２ｂに該当すれば（Ｓ３６１で「ＹＥＳ」）、始動時に圧縮行程にある気筒として＃３が始動時気筒変数ＳＳに記憶される（Ｓ３６４）。図５に示したごとく、Ｎ＝「２」では、停止時のエンジン２は＃１あるいは＃３のいずれかが圧縮行程にあり、しかも、この内でも極小位置エネルギー回転位相ＢＴＭ（６３０°ＣＡまたは９０°ＣＡ）、あるいはこの近傍の回転位相状態にある。この状態からエンジン２が回転して、スタータ８のオンからカム角信号ＰＣＡが入力しない内に欠歯１２ｂの回転位相ＫＫＢとなるのは、始動開始時に＃３が圧縮行程にある場合のみである。したがって、始動時気筒変数ＳＳに「＃３」が記憶されることになる。
【０１３５】
そして、＃３が圧縮行程にある状態から回転開始したことが判れば、最初に欠歯１２ｂを検出する回転位相ＫＫＢは、１２０°ＣＡである。このためクランクカウンタＣＣＲＮＫに「４」を設定する（Ｓ３６５）。そして、選別完了フラグＦｓに「ＯＮ」を設定して（Ｓ３６６）、＃１，３選別処理（図１３）を出る。
【０１３６】
一方、欠歯１２ｂが検出されない内に（Ｓ３６１で「ＮＯ」）、カム角信号ＰＣＡの入力があると（Ｓ３６２で「ＹＥＳ」）、次に前記回転クランク角Ｓｃａが１８０°ＣＡ以内か否かが判定される（Ｓ３６７）。Ｓｃａ≦１８０°ＣＡであれば（Ｓ３６７で「ＹＥＳ」）、始動時に圧縮行程にある気筒として「＃１」が始動時気筒変数ＳＳに記憶される（Ｓ３６８）。Ｎ＝「２」の停止状態では、スタータ８のオンから１８０°ＣＡ以内にカム角信号ＰＣＡの入力があるのは、始動開始時に＃１が圧縮行程にある場合のみである。したがって、始動時気筒変数ＳＳに「＃１」が記憶されることになる。
【０１３７】
そして、＃１が圧縮行程にある状態から回転開始したことが判れば、最初にカム角信号ＰＣＡの入力があるのは、０°ＣＡである。このためクランクカウンタＣＣＲＮＫに「０」を設定する（Ｓ３６９）。そして、選別完了フラグＦｓに「ＯＮ」を設定して（Ｓ３６６）、＃１，３選別処理（図１３）を出る。
【０１３８】
また、Ｓｃａ＞１８０°ＣＡであれば（Ｓ３６７で「ＮＯ」）、始動時に圧縮行程にある気筒として「＃３」が始動時気筒変数ＳＳに記憶される（Ｓ３７０）。図５に示したごとく、停止時に＃３が圧縮行程にあったとしても、フリクションなどの関係で最初に欠歯１２ｂを検出する回転位相ＫＫＢである１２０°ＣＡにあるかわずかに越えている場合が考えられる。この場合には、Ｓｃａ＞１８０°ＣＡとなった後、クランク角４８０°ＣＡの欠歯１２ｂが検出される前にクランク角３６０°ＣＡにてカム角信号ＰＣＡが入力することになる。したがって、このような場合には始動時気筒変数ＳＳには「＃３」が記憶される。
【０１３９】
そして、＃３が圧縮行程にある状態から回転開始したことが判れば、Ｓｃａ＞１８０°ＣＡとなった後、カム角信号ＰＣＡが入力する回転位相は３６０°ＣＡである。このためクランクカウンタＣＣＲＮＫに「１２」を設定する（Ｓ３７１）。そして、選別完了フラグＦｓに「ＯＮ」を設定して（Ｓ３６６）、＃１，３選別処理（図１３）を出る。
【０１４０】
クランク角設定処理（図１１）にて、Ｎ＝「２」でない場合には（Ｓ３５０で「ＮＯ」）、次にＮ＝「３」か否かが判定される（Ｓ３８０）。Ｎ＝「３」であれば（Ｓ３８０で「ＹＥＳ」）、図１４に示す＃３，４選別処理が実行される（Ｓ３９０）。Ｎ＝「３」では、前述したごとくエンジン２の停止時の行程状態は、＃３あるいは＃４のいずれかが圧縮行程にあることが判明している。すなわち、＃３，４選別処理は、＃３あるいは＃４のいずれが停止時（始動時）の行程状態であるかを決定し、クランクカウンタＣＣＲＮＫを早期に設定するための処理である。
【０１４１】
＃３，４選別処理が開始されると、まず、今回の割り込み実行に対応するＮＥ信号が欠歯１２ｂに該当するものか否かを判定する（Ｓ３９１）。欠歯１２ｂに該当しない内は（Ｓ３９１で「ＮＯ」）、次に、カム角信号ＰＣＡが入力したか否かが判定される（Ｓ３９２）。カム角信号ＰＣＡが入力されていない内は（Ｓ３９２で「ＮＯ」）、このまま＃３，４選別処理（図１４）を出る。そしてクランク角設定処理（図１１）についても一旦終了する。
【０１４２】
一方、ＮＥ信号が欠歯１２ｂに該当すれば（Ｓ３９１で「ＹＥＳ」）、始動時に圧縮行程にある気筒として「＃３」が始動時気筒変数ＳＳに記憶される（Ｓ３９４）。図５に示したごとく、Ｎ＝「３」では、停止時のエンジン２は＃３あるいは＃４のいずれかが圧縮行程にあり、しかも、この内でも極小位置エネルギー回転位相ＢＴＭ（９０°ＣＡまたは２７０°ＣＡ）、あるいはこの近傍の回転位相状態にある。この状態からエンジン２が回転して、スタータ８のオンからカム角信号ＰＣＡが入力しない内に、欠歯１２ｂの回転位相ＫＫＢとなるのは、始動開始時に＃３が圧縮行程にある場合のみである。したがって、始動時気筒変数ＳＳに「＃３」が記憶されることになる。
【０１４３】
そして、＃３が圧縮行程にある状態から回転開始したことが判れば、最初に欠歯１２ｂを検出する回転位相ＫＫＢは１２０°ＣＡである。このためクランクカウンタＣＣＲＮＫに「４」を設定する（Ｓ３９５）。そして、選別完了フラグＦｓに「ＯＮ」を設定して（Ｓ３９６）、＃３，４選別処理（図１４）を出る。
【０１４４】
一方、欠歯１２ｂが検出されない内に（Ｓ３９１で「ＮＯ」）、カム角信号ＰＣＡの入力があると（Ｓ３９２で「ＹＥＳ」）、次に前記回転クランク角Ｓｃａが１８０°ＣＡ以内か否かが判定される（Ｓ３９７）。Ｓｃａ≦１８０°ＣＡであれば（Ｓ３９７で「ＹＥＳ」）、始動時に圧縮行程にある気筒として「＃４」が始動時気筒変数ＳＳに記憶される（Ｓ３９８）。Ｎ＝「３」の停止状態では、始動開始時から１８０°ＣＡ以内にカム角信号ＰＣＡの入力があるのは、始動開始時に＃４が圧縮行程にある場合のみである。したがって、始動時気筒変数ＳＳに「＃４」が記憶されることになる。
【０１４５】
そして、＃４が圧縮行程にある状態から回転開始したことが判れば、最初にカム角信号ＰＣＡの入力があるのは、３６０°ＣＡである。このためクランクカウンタＣＣＲＮＫに「１２」を設定する（Ｓ３９９）。そして、選別完了フラグＦｓに「ＯＮ」を設定して（Ｓ３９６）、＃３，４選別処理（図１４）を出る。
【０１４６】
また、Ｓｃａ＞１８０°ＣＡであれば（Ｓ３９７で「ＮＯ」）、始動時に圧縮行程にある気筒として「＃３」が始動時気筒変数ＳＳに記憶される（Ｓ４００）。図５に示したごとく、停止時のエンジン２が＃３が圧縮行程にある状態にあったとしても、フリクションなどの関係で最初に欠歯１２ｂを検出する回転位相ＫＫＢである１２０°ＣＡにあるかわずかに越えている場合が考えられる。この場合には、Ｓｃａ＞１８０°ＣＡとなった後、クランク角４８０°ＣＡの欠歯１２ｂが検出される前にクランク角３６０°ＣＡにてカム角信号ＰＣＡが入力することになる。したがって、このような場合には始動時気筒変数ＳＳには「＃３」が記憶される。
【０１４７】
そして、＃３が圧縮行程にある状態から回転開始したことが判れば、Ｓｃａ＞１８０°ＣＡとなった後、カム角信号ＰＣＡが入力する回転位相は３６０°ＣＡである。このためクランクカウンタＣＣＲＮＫに「１２」を設定する（Ｓ４０１）。そして、選別完了フラグＦｓに「ＯＮ」を設定して（Ｓ３９６）、＃３，４選別処理（図１４）を出る。
【０１４８】
クランク角設定処理（図１１）にて、Ｎ＝「３」でない場合には（Ｓ３８０で「ＮＯ」）、Ｎ＝「４」である。したがって、図１５に示す＃２，４選別処理が実行される（Ｓ４１０）。Ｎ＝「４」では、前述したごとくエンジン２の停止時の行程状態は、＃２あるいは＃４のいずれかが圧縮行程にあることが判明している。すなわち、＃２，４選別処理は、＃２あるいは＃４のいずれが停止時（始動時）の行程状態であるかを決定し、クランクカウンタＣＣＲＮＫを早期に設定するための処理である。
【０１４９】
＃２，４選別処理が開始されると、まず、今回の割り込み実行に対応するＮＥ信号が欠歯１２ｂに該当するものか否かを判定する（Ｓ４１１）。欠歯１２ｂに該当しない場合は（Ｓ４１１で「ＮＯ」）、カム角信号ＰＣＡが２回入力したか否かが判定される（Ｓ４１６）。カム角信号ＰＣＡが２回入力していなければ（Ｓ４１６で「ＮＯ」）、このまま＃２，４選別処理（図１５）を出る。そしてクランク角設定処理（図１１）についても一旦終了する。
【０１５０】
一方、ＮＥ信号が欠歯１２ｂに該当すれば（Ｓ４１１で「ＹＥＳ」）、次に前記回転クランク角Ｓｃａが８０°ＣＡ以内か否かが判定される（Ｓ４１２）。Ｓｃａ≦８０°ＣＡであれば（Ｓ４１２で「ＹＥＳ」）、始動時に圧縮行程にある気筒として「＃２」が始動時気筒変数ＳＳに記憶される（Ｓ４１３）。Ｎ＝「４」の停止状態では、スタータ８のオンから８０°ＣＡ以内に欠歯１２ｂとなるのは、始動開始時に＃２が圧縮行程にある場合のみである。したがって、始動時気筒変数ＳＳに「＃２」が記憶されることになる。
【０１５１】
そして、＃２が圧縮行程にある状態から回転開始したことが判れば、最初に欠歯１２ｂとなるのは４８０°ＣＡである。このためクランクカウンタＣＣＲＮＫに「１６」を設定する（Ｓ４１４）。そして、選別完了フラグＦｓに「ＯＮ」を設定して（Ｓ４１５）、＃２，４選別処理（図１５）を出る。
【０１５２】
また、カム角信号ＰＣＡが２回入力しない内に（Ｓ４１６で「ＮＯ」）、欠歯１２ｂが検出され、Ｓｃａ＞８０°ＣＡであれば（Ｓ４１２で「ＮＯ」）、始動時に圧縮行程にある気筒として「＃４」が始動時気筒変数ＳＳに記憶される（Ｓ４１７）。Ｎ＝「４」の停止状態では、始動開始時から８０°ＣＡを越え、かつカム角信号ＰＣＡが２回入力しない内に欠歯１２ｂとなるのは、始動開始時に＃４が圧縮行程にある場合のみである。したがって、始動時気筒変数ＳＳに「＃４」が記憶されることになる。
【０１５３】
そして、＃４が圧縮行程にある状態から回転開始したことが判れば、最初に欠歯１２ｂとなるのは４８０°ＣＡである。このためクランクカウンタＣＣＲＮＫに「１６」を設定する（Ｓ４１８）。そして、選別完了フラグＦｓに「ＯＮ」を設定して（Ｓ４１５）、＃２，４選別処理（図１５）を出る。
【０１５４】
また、欠歯１２ｂが検出される前に（Ｓ４１１で「ＮＯ」）、カム角信号ＰＣＡが２回入力されると（Ｓ４１６で「ＹＥＳ」）、始動時に圧縮行程にある気筒として「＃２」が始動時気筒変数ＳＳに記憶される（Ｓ４１９）。図５に示したごとく、実際に停止時のエンジン２が、＃２が圧縮行程にある状態にあったとしても、フリクションなどの関係で最初に欠歯１２ｂを検出する回転位相ＫＫＢである４８０°ＣＡにあるかわずかに越えている場合が考えられる。この場合には、欠歯１２ｂが検出される前にカム角信号ＰＣＡが２回入力する。したがって、このような場合には始動時気筒変数ＳＳには「＃２」が記憶される。
【０１５５】
そして、＃２が圧縮行程にある状態から回転開始したことが判れば、カム角信号ＰＣＡが２回入力した時の回転位相は０°ＣＡである。このためクランクカウンタＣＣＲＮＫに「０」を設定する（Ｓ４２０）。そして、選別完了フラグＦｓに「ＯＮ」を設定して（Ｓ４１５）、＃２，４選別処理（図１５）を出る。
【０１５６】
このように各選別処理（図１２〜１５）にて、始動時気筒変数ＳＳとクランクカウンタＣＣＲＮＫとが決定されて、選別完了フラグＦｓに「ＯＮ」が設定されると、クランク角設定処理（図１１）の次の制御周期では、Ｆｓ＝「ＯＮ」であることから（Ｓ３１０で「ＮＯ」）、クランクカウンタＣＣＲＮＫ更新処理が実行される（Ｓ４３０）。このクランクカウンタＣＣＲＮＫ更新処理は図８に示したクランクカウンタＣＣＲＮＫ更新処理と同じ処理である。以後、運転者がイグニッションスイッチ１０をオン位置からアクセサリ位置もしくはオフ位置に切り換えるまで、あるいはエコランシステムにより自動停止されるまでは、このステップＳ４３０処理が繰り返し実行される。
【０１５７】
次に、図１６に示す点火時期・燃料噴射時期設定処理について説明する。この点火時期・燃料噴射時期設定処理は、前記選別処理（図１２〜１５）にてＦｓ＝「ＯＮ」と設定されることで、ＮＥ信号により割り込み実行を許可される処理である。
【０１５８】
点火時期・燃料噴射時期設定処理が開始されると、まずＦｓ＝「ＯＮ」となった後の最初の制御周期であるか否かが判定される（Ｓ５１０）。最初であれば（Ｓ５１０で「ＹＥＳ」）、次に、行程状態変数Ｎ、始動時気筒変数ＳＳおよびクランクカウンタＣＣＲＮＫに基づいて、最初に点火する初期点火気筒とその点火タイミングを設定する（Ｓ５２０）。この設定は、図１７に示したごとく、ＲＯＭ５０ｂに記憶されている関係から求められる。例えば、Ｎ＝「１」、ＳＳ＝「１」およびＣＣＲＮＫ＝「４」の場合、初期点火気筒として＃３が設定され、点火タイミングとしては１７５°ＣＡが設定される。これらの設定理由については後述する。
【０１５９】
次に、同じ行程状態変数Ｎ、始動時気筒変数ＳＳおよびクランクカウンタＣＣＲＮＫに基づいて、最初に燃料噴射する初期燃料噴射気筒とその燃料噴射タイミングを設定する（Ｓ５３０）。この設定も、図１７に示したごとく、ＲＯＭ５０ｂに記憶されている関係から求められる。例えば、Ｎ＝「１」、ＳＳ＝「１」およびＣＣＲＮＫ＝「４」の場合、初期燃料噴射気筒として４番気筒は＃４が設定され、燃料噴射タイミングとしては吸気行程中のクランク角が設定される。これらの設定理由については後述する。
【０１６０】
こうして一旦本処理を終了する。そして、次の制御周期以降においては、ステップＳ５１０にては「ＮＯ」と判定されて、次に、ＴＤＣか否かが判定される（Ｓ５４０）。すなわち、クランク角＝０，１８０，３６０，５４０°ＣＡのいずれかのタイミングか否かが判定される。ＴＤＣでなければ（Ｓ５４０で「ＮＯ」）、このまま一旦本処理を終了する。
【０１６１】
ＴＤＣであれば（Ｓ５４０で「ＹＥＳ」）、ステップＳ５２０にて実行された初期点火気筒に引き続いて、クランク角の変化に従って順次点火気筒が設定され、エンジン２の運転状態に応じた点火時期が設定される（Ｓ５５０）。そして、次にステップＳ５３０にて実行された初期燃料噴射気筒に引き続いて、クランク角の変化に従って順次燃料噴射気筒が設定され、エンジン２の運転状態に応じた噴射時期が設定される（Ｓ５６０）。以後、エンジン運転が継続している限りＴＤＣ毎にステップＳ５５０，Ｓ５６０の処理が繰り返される。
【０１６２】
ここで、図１７の内容の設定理由について説明する。Ｎ＝「１」の場合には、停止時の行程状態は、＃１あるいは＃２が圧縮行程にある状態（クランク角４５０°，６３０°ＣＡあるいはこの近傍）には絞られている。そして始動時にＮＥ信号とカム角信号とに基づいて始動時気筒変数ＳＳ＝「＃２」でクランクカウンタＣＣＲＮＫ＝「１６」であったものとする。
【０１６３】
この場合には、実際にはクランク角４５０°ＣＡあるいはこの近傍にて、＃１と＃３とに燃料噴射を実行したことになる。＃１は吸気行程であるので吸気ポート２０ａに噴射された燃料は直ちに＃１の燃焼室１８内に吸入される。＃３は排気行程であるので吸気ポート２０ａに噴射された燃料は１行程待って吸気行程になったところで＃３の燃焼室１８内に吸入される。
【０１６４】
そして、実際にクランクカウンタＣＣＲＮＫの値が判明するのが、スタータ８による回転直後のＣＣＲＮＫ＝「１６」からである。このため、始動時に噴射された＃１の圧縮行程のＢＴＤＣ５°ＣＡである７１５°ＣＡにて＃１に点火し、迅速に初爆ができる。そして、引き続き始動時に燃料噴射された＃３の点火時期となる。また＃４に対して＃４の吸気行程時に初期の燃料噴射が実行されて、以後、順次、各気筒の吸気ポート２０ａに燃料が噴射され点火燃焼される。このため、以後順番に燃焼が継続し安定した始動となる。
【０１６５】
また、Ｎ＝「１」の場合に始動時気筒変数ＳＳ＝「＃２」でクランクカウンタＣＣＲＮＫ＝「０」であったものとする。この場合にも、実際にはクランク角４８０°ＣＡあるいはこれより大きい側の近傍にて、＃１と＃３とに燃料噴射を実行したことになる。＃１の吸気ポート２０ａに噴射された燃料は直ちに＃１の燃焼室１８内に吸入され、＃３では吸気ポート２０ａに噴射された燃料は１行程待って＃３の燃焼室１８内に吸入される。そして、実際にクランクカウンタＣＣＲＮＫの値が判明するのが、スタータ８による回転後のＣＣＲＮＫ＝「０」からである。このため、直ちに、始動時に噴射された＃１の圧縮行程のＴＤＣである０°ＣＡにて＃１に点火し迅速に初爆ができる。そして、引き続き始動時に燃料噴射された＃３の点火時期となる。また＃４に対して初期の燃料噴射が実行されて、以後順次、各気筒の吸気ポート２０ａに燃料が噴射され点火燃焼される。このため、以後順番に燃焼が継続し安定した始動となる。
【０１６６】
また、Ｎ＝「１」の場合に始動時気筒変数ＳＳ＝「＃１」でクランクカウンタＣＣＲＮＫ＝「４」であったものとする。この場合には、実際にはクランク角６３０°ＣＡあるいはこの近傍にて、＃１と＃３とに燃料噴射を実行したことになる。＃１は既に圧縮行程となっているので、吸気ポート２０ａに噴射された燃料は３行程後に＃１の燃焼室１８内に吸入されることになる。一方、＃３は吸気行程であるので、吸気ポート２０ａに噴射された燃料は直ちに＃３の燃焼室１８内に吸入される。そして、実際にクランクカウンタＣＣＲＮＫの値が判明するのが、スタータ８による回転後のＣＣＲＮＫ＝「４」からである。このため、始動時に噴射された＃３の圧縮行程のＢＴＤＣ５°ＣＡである１７５°ＣＡにて＃３に点火し迅速に初爆ができる。また＃４はＣＣＲＮＫ＝「４」では既に吸気行程であるので、直ちに初期の燃料噴射が実行されて、以後順次、各気筒の吸気ポート２０ａに燃料が噴射され点火燃焼される。このため、以後順番に燃焼が継続し安定した始動となる。ただし、始動時に燃料噴射された＃１は、３行程の間は燃料が吸気ポート２０ａに留まり、その後に吸気行程となった場合に吸入される。したがってステップＳ５６０による＃１に対する最初の燃料噴射のみ省略する。
【０１６７】
次に、Ｎ＝「２」の場合について説明する。Ｎ＝「２」の場合には、停止時の行程状態は、＃１あるいは＃３が圧縮行程にある状態（クランク角６３０°，９０°ＣＡあるいはこの近傍）には絞られている。そして始動時にＮＥ信号とカム角信号とに基づいて始動時気筒変数ＳＳ＝「＃１」でクランクカウンタＣＣＲＮＫ＝「０」であったものとする。
【０１６８】
この場合には、実際にはクランク角６３０°ＣＡあるいはこの近傍にて、＃３と＃４とに燃料噴射を実行したことになる。＃３は吸気行程であるので吸気ポート２０ａに噴射された燃料は直ちに＃３の燃焼室１８内に吸入される。＃４は排気行程であるので吸気ポート２０ａに噴射された燃料は１行程待って＃４の燃焼室１８内に吸入される。
【０１６９】
そして、実際にクランクカウンタＣＣＲＮＫの値が判明するのが、スタータ８による回転直後のＣＣＲＮＫ＝「０」からである。このため、始動時に噴射された３番気筒＃３の圧縮行程のＢＴＤＣ５°ＣＡである１７５°ＣＡにて＃３に点火し迅速に初爆ができる。更に引き続いて＃４に対して点火される。また＃２に初期の燃料噴射が実行されて、以後順次、各気筒の吸気ポート２０ａに燃料が噴射され点火燃焼される。このため以後順番に燃焼が継続し安定した始動となる。
【０１７０】
また、Ｎ＝「２」の場合に始動時気筒変数ＳＳ＝「＃３」でクランクカウンタＣＣＲＮＫ＝「４」であったものとする。この場合には、実際にはクランク角９０°ＣＡあるいはこの近傍にて、＃３と＃４とに燃料噴射を実行したことになる。＃４の吸気ポート２０ａに噴射された燃料は直ちに＃４の燃焼室１８内に吸入され、＃３では吸気ポート２０ａに噴射された燃料は３行程待って＃３の燃焼室１８内に吸入される。そして実際にクランクカウンタＣＣＲＮＫの値が判明するのが、スタータ８による回転直後のＣＣＲＮＫ＝「４」からである。このため、始動時に噴射された＃４の圧縮行程のＢＴＤＣ５°ＣＡである３５５°ＣＡにて＃４に点火し迅速に初爆ができる。また＃２に対して初期の燃料噴射が実行されて、以後順次、各気筒の吸気ポート２０ａに燃料が噴射され点火燃焼される。このため、以後順番に燃焼が継続し安定した始動となる。ただし、始動時に燃料噴射された＃３は、３行程の間は燃料が吸気ポート２０ａに留まり、その後に吸気行程となった場合に吸入される。したがってステップＳ５６０による＃３に対する最初の燃料噴射のみ省略する。
【０１７１】
また、Ｎ＝「２」の場合に始動時気筒変数ＳＳ＝「＃３」でクランクカウンタＣＣＲＮＫ＝「１２」であったものとする。この場合には、実際にはクランク角１２０°ＣＡあるいはこれより大きい側の近傍にて、＃３と＃４とに燃料噴射を実行したことになる。＃４は吸気行程であるので、吸気ポート２０ａに噴射された燃料は直ちに＃４の燃焼室１８内に吸入されることになる。一方、＃３は圧縮行程であるので、吸気ポート２０ａに噴射された燃料は３行程後に＃３の燃焼室１８内に吸入される。そして、実際にクランクカウンタＣＣＲＮＫの値が判明するのが、スタータ８による回転後のＣＣＲＮＫ＝「１２」からである。このため、直ちに、始動時に噴射された＃４に対して３６０°ＣＡにて点火し迅速に初爆ができる。また初期の燃料噴射は＃１になされるので、１行程おいて＃１にも点火される。以後順次、各気筒の吸気ポート２０ａに燃料が噴射され点火燃焼される。このため、以後順番に燃焼が継続し安定した始動となる。ただし、始動時に燃料噴射された＃３は、３行程の間は燃料が吸気ポート２０ａに留まり、その後に吸気行程となった場合に吸入される。したがって、ステップＳ５６０による３番気筒＃３に対する最初の燃料噴射のみ省略する。
【０１７２】
次に、Ｎ＝「３」の場合について説明する。Ｎ＝「３」の場合には、停止時の行程状態は、＃３あるいは＃４が圧縮行程にある状態（クランク角９０°，２７０°ＣＡあるいはこの近傍）には絞られている。そして始動時にＮＥ信号とカム角信号とに基づいて始動時気筒変数ＳＳ＝「＃３」でクランクカウンタＣＣＲＮＫ＝「４」であったものとする。
【０１７３】
この場合には、実際にはクランク角９０°ＣＡあるいはこの近傍にて、＃２と＃４とに燃料噴射を実行したことになる。＃４は吸気行程であるので吸気ポート２０ａに噴射された燃料は直ちに＃４の燃焼室１８内に吸入される。＃２は排気行程であるので吸気ポート２０ａに噴射された燃料は１行程待って＃２の燃焼室１８内に吸入される。
【０１７４】
そして、実際にクランクカウンタＣＣＲＮＫの値が判明するのが、スタータ８による回転直後のＣＣＲＮＫ＝「４」からである。このため、始動時に噴射された＃４の圧縮行程のＢＴＤＣ５°ＣＡである３５５°ＣＡにて＃４に点火し迅速に初爆ができる。更に引き続き＃２の点火燃焼がなされる。また、＃１に対して初期の燃料噴射が実行されて、以後順次、各気筒の吸気ポート２０ａに燃料が噴射され点火燃焼される。このため以後順番に燃焼が継続し安定した始動となる。
【０１７５】
また、Ｎ＝「３」の場合に始動時気筒変数ＳＳ＝「＃３」でクランクカウンタＣＣＲＮＫ＝「１２」であったものとする。この場合には、実際にはクランク角１２０°ＣＡあるいはこれより大きい側の近傍にて、＃２と＃４とに燃料噴射を実行したことになる。＃４の吸気ポート２０ａに噴射された燃料は直ちに＃４の燃焼室１８内に吸入され、＃２では吸気ポート２０ａに噴射された燃料は１行程待って＃２の燃焼室１８内に吸入される。そして、実際にクランクカウンタＣＣＲＮＫの値が判明するのが、スタータ８による回転後のＣＣＲＮＫ＝「１２」からである。このため、直ちに、始動時に噴射された＃４の圧縮行程のＴＤＣである３６０°ＣＡにて＃４に点火し迅速に初爆ができる。更に引き続き＃２の点火燃焼がなされる。また＃１に対して初期の燃料噴射が実行されて、以後順次、各気筒の吸気ポート２０ａに燃料が噴射され点火燃焼される。このため、以後順番に燃焼が継続し安定した始動となる。
【０１７６】
また、Ｎ＝「３」の場合に始動時気筒変数ＳＳ＝「＃４」でクランクカウンタＣＣＲＮＫ＝「１２」であったものとする。この場合には、実際にはクランク角２７０°ＣＡあるいはこの近傍にて、＃２と＃４とに燃料噴射を実行したことになる。＃２は吸気行程であるので、吸気ポート２０ａに噴射された燃料は直ちに＃２の燃焼室１８内に吸入されることになる。一方、＃４は圧縮行程であるので、吸気ポート２０ａに噴射された燃料は３行程後に＃４の燃焼室１８内に吸入される。そして、実際にクランクカウンタＣＣＲＮＫの値が判明するのが、スタータ８による回転後のＣＣＲＮＫ＝「１２」からである。このため、始動時に噴射された＃２の圧縮行程のＢＴＤＣ５°ＣＡである５３５°ＣＡにて＃２に点火し迅速に初爆ができる。また、初期の燃料噴射は１番気筒＃１になされるので、更に、引き続き１番気筒＃１にも点火される。以後順次、各気筒の吸気ポート２０ａに燃料が噴射され点火燃焼される。このため、以後順番に燃焼が継続し安定した始動となる。ただし、始動時に燃料噴射された＃４は、３行程の間は燃料が吸気ポート２０ａに留まり、その後に吸気行程となった場合に吸入される。したがって、ステップＳ５６０による＃４に対する最初の燃料噴射のみ省略する。
【０１７７】
次に、Ｎ＝「４」の場合について説明する。Ｎ＝「４」の場合には、停止時の行程状態は、＃２あるいは＃４が圧縮行程にある状態（クランク角２７０°，４５０°ＣＡあるいはこの近傍）には絞られている。そして始動時にＮＥ信号とカム角信号とに基づいて始動時気筒変数ＳＳ＝「＃２」でクランクカウンタＣＣＲＮＫ＝「１６」であったものとする。
【０１７８】
この場合には、実際にはクランク角４５０°ＣＡあるいはこの近傍にて、＃１と＃２とに燃料噴射を実行したことになる。＃１は吸気行程であるので吸気ポート２０ａに噴射された燃料は直ちに＃１の燃焼室１８内に吸入される。＃２は圧縮行程であるので吸気ポート２０ａに噴射された燃料は３行程待って＃２の燃焼室１８内に吸入される。
【０１７９】
そして、実際にクランクカウンタＣＣＲＮＫの値が判明するのが、スタータ８による回転直後のＣＣＲＮＫ＝「１６」からである。このため、始動時に噴射された＃１の圧縮行程のＢＴＤＣ５°ＣＡである７１５°ＣＡにて＃１に点火し迅速に初爆ができる。また＃３に対して初期の燃料噴射が実行されて、以後順次、各気筒の吸気ポート２０ａに燃料が噴射され点火燃焼される。このため、以後順番に燃焼が継続し安定した始動となる。ただし、始動時に燃料噴射された＃２は、３行程の間は燃料が吸気ポート２０ａに留まり、その後に吸気行程となった場合に吸入される。したがって、ステップＳ５６０による＃２に対する最初の燃料噴射のみ省略する。
【０１８０】
また、Ｎ＝「４」の場合に始動時気筒変数ＳＳ＝「＃２」でクランクカウンタＣＣＲＮＫ＝「０」であったものとする。この場合にも、実際にはクランク角４８０°ＣＡあるいはこれより大きい側の近傍にて、＃１と＃２とに燃料噴射を実行したことになる。＃１の吸気ポート２０ａに噴射された燃料は直ちに＃１の燃焼室１８内に吸入され、＃２では吸気ポート２０ａに噴射された燃料は３行程待って＃２の燃焼室１８内に吸入される。そして、実際にクランクカウンタＣＣＲＮＫの値が判明するのが、スタータ８による回転後のＣＣＲＮＫ＝「０」からである。このため、直ちに、始動時に噴射された＃１の圧縮行程のＴＤＣである０°ＣＡにて＃１に点火し迅速に初爆ができる。また＃４に対して初期の燃料噴射が実行されて、初爆から１行程おいて点火燃焼される。以後順次、各気筒の吸気ポート２０ａに燃料が噴射され点火燃焼される。このため、以後順番に燃焼が継続し安定した始動となる。ただし、始動時に燃料噴射された＃２は、３行程の間は燃料が吸気ポート２０ａに留まり、その後に吸気行程となった場合に吸入される。したがって、ステップＳ５６０による＃２に対する最初の燃料噴射のみ省略する。
【０１８１】
また、Ｎ＝「４」の場合に始動時気筒変数ＳＳ＝「＃４」でクランクカウンタＣＣＲＮＫ＝「１６」であったものとする。この場合には、実際にはクランク角２７０°ＣＡあるいはこの近傍にて、＃１と＃２とに燃料噴射を実行したことになる。＃２は吸気行程であるので、吸気ポート２０ａに噴射された燃料は直ちに＃２の燃焼室１８内に吸入されることになる。一方、＃１は排気行程であるので、吸気ポート２０ａに噴射された燃料は１行程後に＃１の燃焼室１８内に吸入される。そして、実際にクランクカウンタＣＣＲＮＫの値が判明するのが、スタータ８による回転後のＣＣＲＮＫ＝「１６」からである。このため、始動時に噴射された＃２の圧縮行程のＢＴＤＣ５°ＣＡである５３５°ＣＡにて＃２に点火し迅速に初爆ができる。更に、引き続き＃１に点火される。また、初期の燃料噴射は＃３になされるので、更に、＃３にも点火される。以後順次、各気筒の吸気ポート２０ａに燃料が噴射され点火燃焼される。このため、以後順番に燃焼が継続し安定した始動となる。
【０１８２】
本実施の形態において、シグナルロータ１２とクランクポジションセンサ１４との組み合わせが内燃機関回転状態検出手段に、突起３２〜３６とカムポジションセンサ３８との組み合わせがカム角検出手段に相当する。また、停止行程判別処理（図７）のステップＳ１２０〜Ｓ１６０および行程状態変数Ｎ設定処理（図９）のステップＳ１７１が逆転クランク角検出手段としての処理に、行程状態変数Ｎ設定処理（図９）のステップＳ１７２〜Ｓ１７９が停止行程判別手段としての処理に、始動時燃料噴射処理（図１０）が始動時燃料噴射手段としての処理に、クランク角設定処理（図１１）のステップＳ３１５〜Ｓ４１０が始動時行程選別手段としての処理に、点火時期・燃料噴射時期設定処理（図１６）のステップＳ５２０が初爆点火実行手段に相当する。
【０１８３】
以上説明した本実施の形態１によれば、以下の効果が得られる。
（イ）．行程状態変数Ｎ設定処理（図９）では、クランクシャフト４に逆転を生じなくてもＮＥ信号のパルス出力間隔が前後の位相よりも長くなる極大位置エネルギー位相ＴＯＰと欠歯１２ｂの位相とを除いて（Ｓ１７１）、最初にＮＥ信号のパルス出力間隔が前後の位相よりも長くなる位相を検出している。したがって、クランクシャフト４において実際に最初に逆転した位相または２番目以降に逆転した位相が、逆転クランク角として検出される。
【０１８４】
前述したごとく、検出した逆転クランク角が、実際に最初の逆転位相であった場合には、クランク角は逆転クランク角以上進むことがないことから、回転を阻んだ極大位置エネルギー位相ＴＯＰとその直前にある極大位置エネルギー位相ＴＯＰとの間のクランク角領域にてクランクシャフト４の回転が停止したと判断することができる。この領域の内でも特に極小位置エネルギー回転位相ＢＴＭあるいはその近傍でクランクシャフト４の回転が停止したと判断することができる。
【０１８５】
また、前述したごとく、検出した逆転クランク角が２番目以降に逆転した位相であった場合は、逆転クランク角が実際に最初の逆転位相であった場合に比較して、計算上で回転を阻んだ極大位置エネルギー位相ＴＯＰとその直前にある極大位置エネルギー位相ＴＯＰとの間のクランク角領域よりも、更に１つ前のクランク角領域にてクランクシャフト４の回転が停止したと判断することができる。
【０１８６】
したがって、行程状態変数Ｎ設定処理（図９）にて検出された逆転クランク角に基づいて、クランクシャフト４の停止クランク角を、エンジン２が取り得る４つのクランク角領域の内の２つに正確に限定することが可能となる。
【０１８７】
従来では、惰性回転時のクランクシャフト４の回転や逆転については考慮していないので、実際とは異なる行程状態で停止しているおそれがある。このため始動時に予測とは異なる気筒から回転を開始したと判断して始動時あるいは始動時以後の制御が不適切なものとなるおそれがある。
【０１８８】
本実施の形態では、惰性回転時のクランクシャフト４の挙動に基づいて正確にクランクシャフト４が停止したクランク角領域を限定している。このことにより、始動時において、従来よりも正確な行程判別が可能となり、始動時あるいは始動時以後の制御を、より適切なものとすることができる。
【０１８９】
（ロ）．突起３２〜３６によってカムポジションセンサ３８が検出するカム角信号ＰＣＡは図５に示すごとくの配置（始動時）となっている。このため、始動時において、欠歯１２ｂとともにカム角信号ＰＣＡを利用することで、停止時に正確に限定した行程状態を迅速に限定することができる。そして、このことにより早期に、より確実な行程状態に絞ることができる。したがって始動時あるいは始動時以後の制御を、より精密で適切なものとすることができる。
【０１９０】
（ハ）．始動時燃料噴射処理（図１０）により、始動時おいては、行程状態変数Ｎ設定処理（図９）にて決定されている行程状態において吸気行程にある気筒の吸気ポート２０ａに燃料を供給している。このようにすることにより、本実施の形態のごとく吸気ポート燃料噴射タイプのエンジン２において、一層確実に吸気行程にある気筒の吸気ポート２０ａに燃料噴射することができる。このため、始動時において、一層確実に早期に初爆を開始させることができるようになり、始動性をより高いものとできる。
【０１９１】
（ニ）．エンジン２の始動時においては、クランク角設定処理（図１１）では直前のエンジン停止時において行程状態変数Ｎ設定処理（図９）にて決定されている２つのクランク角領域から、ＮＥ信号およびカム角信号における出力開始初期の状態に基づいて、始動時のクランク角領域（始動時気筒変数ＳＳ）を選別し、選別時点でのクランク角を決定している。
【０１９２】
このことにより、始動時において早期にクランク角領域を１つに絞ることができる。そして、選別以後はクランク角に従って通常のエンジン制御が可能となる。このため迅速に始動できると共に、その後の運転を安定したものとすることができる。
【０１９３】
（ホ）．クランク角設定処理（図１１）にて選別された始動時のクランク角領域と選別時点でのクランク角とに基づくことにより、点火時期・燃料噴射時期設定処理（図１６）では、最も早く燃焼が可能な気筒に点火を迅速に実行することができる。また、このように、迅速にクランク角が判明し始動時のクランク角領域も判明するので、始動時燃料噴射処理（図１０）にて燃料噴射された気筒に対しても、点火チャンスを逃すことなく適切に点火燃焼でき、初爆を最も早いタイミングで確実に実行させることができる。
【０１９４】
［実施の形態２］
本実施の形態では、４気筒エンジンの代わりに６気筒エンジンを用いる。６気筒エンジンでは、図１８の行程状態説明図に示すごとく１２０°ＣＡ毎に極大位置エネルギー位相ＴＯＰが存在する。このため、エンジン停止時の行程状態としては、ＣＣＲＮＫ＝０〜３の＃５圧縮行程（一部＃３も圧縮行程であるが全域が圧縮行程の＃５を代表とする。以下同じ）、ＣＣＲＮＫ＝４〜７の＃３圧縮行程、ＣＣＲＮＫ＝８〜１１の＃６圧縮行程、ＣＣＲＮＫ＝１２〜１５の＃２圧縮行程、ＣＣＲＮＫ＝１６〜１９の＃４圧縮行程、ＣＣＲＮＫ＝２０〜２３の＃１圧縮行程の６つに行程状態を分割する。
【０１９５】
このことにより、エンジン停止時の行程状態変数Ｎ設定処理としては、極大位置エネルギー位相ＴＯＰおよび欠歯１２ｂの位相であるＣＣＲＮＫ＝０，４，８，１２，１６，２０以外で、ＮＥ信号のパルス間隔が最初に極大となる位相が、ＣＣＲＮＫ＝０〜２３のいずれの位置であるかを判定する。例えば、極大位相がＣＣＲＮＫ＝１７〜１９であればＮ＝１に、ＣＣＲＮＫ＝２１〜２３であればＮ＝２に設定し、ＣＣＲＮＫ＝１〜３であればＮ＝３に設定し、ＣＣＲＮＫ＝５〜７であればＮ＝４に設定し、ＣＣＲＮＫ＝９〜１１であればＮ＝５に設定し、ＣＣＲＮＫ＝１３〜１５であればＮ＝６に設定する。
【０１９６】
ここで、Ｎ＝１の場合は、前記実施の形態１で説明したごとくエンジンが実際に停止した行程状態は＃２，４圧縮行程のいずれかの圧縮行程であると限定できる。同様に、Ｎ＝２での停止時行程状態は＃１，４圧縮行程のいずれか、Ｎ＝３での停止時行程状態は＃１，５圧縮行程のいずれか、Ｎ＝４での停止時行程状態は＃３，５圧縮行程のいずれか、Ｎ＝５での停止時行程状態は＃３，６圧縮行程のいずれか、Ｎ＝６での停止時行程状態は＃２，６圧縮行程のいずれかであると限定できる。
【０１９７】
そして、始動時には、図１９に示すごとく、始動時燃料噴射処理により、Ｎ＝１では＃１，５に、Ｎ＝２では＃３，５に、Ｎ＝３では＃３，６に、Ｎ＝４では＃２，６に、Ｎ＝５では＃２，４に、Ｎ＝６では＃１，４に燃料噴射する。また、クランク角設定処理では、欠歯１２ｂの出現位相ＫＫＢとカム角信号ＰＣＡの出現位相との関係から、図１９に示したごとく、始動時気筒変数ＳＳが判明し、始動時気筒変数ＳＳの判明時のクランクカウンタＣＣＲＮＫが決定される。そして、このようにして求められた始動時気筒変数ＳＳとクランクカウンタＣＣＲＮＫとに基づいて、図１９に示したごとく、初期点火気筒、点火タイミング、初期燃料噴射気筒および燃料噴射タイミングが決定される。
【０１９８】
すなわち、エンジン停止時にＮ＝１に決定されていた場合、その後の始動時においては、スタータ・オンから最初に欠歯１２ｂが出現（ＫＫＢ）すれば、ＳＳ＝＃２であることが判明し、判明時にＣＣＲＮＫ＝１６（４８０°ＣＡ）となる。したがって、７１５°ＣＡにて＃１に点火可能となり、始動時に燃料噴射された＃１，５に引き続いて＃３の吸気行程にて＃３に燃料噴射が可能となる。またＮ＝１の場合に、スタータ・オンから５０°ＣＡ以内にカム角信号ＰＣＡが最初に出現すれば、ＳＳ＝＃４であることが判明し、判明時にＣＣＲＮＫ＝１８（５４０°ＣＡ）となる。したがって、１１５°ＣＡにて＃５に点火可能となり、始動時に燃料噴射された＃１，５に引き続いて＃３の吸気行程にて＃３に燃料噴射が可能となる。なお、＃１に噴射された燃料はほとんど燃焼室内には吸い込まれていないので、１サイクル後の吸気行程時に燃焼室内に吸い込まれて燃焼に用いられる。したがって、スタータ・オンから１サイクル後の＃１の吸気行程時には＃１には燃料噴射は行わない。またＮ＝１の場合に、スタータ・オンから５０°ＣＡ越えてからカム角信号ＰＣＡが最初に出現すれば、ＳＳ＝＃４であることが判明し、判明時にＣＣＲＮＫ＝０（０°ＣＡ）となる。したがって、１１５°ＣＡにて＃５に点火可能となり、始動時に燃料噴射された＃１，５に引き続いて＃３の吸気行程にて＃３に燃料噴射が可能となる。なお＃１については上述したごとくの理由によりスタータ・オンから１サイクル後の吸気行程時には燃料噴射は行わない。
【０１９９】
エンジン停止時にＮ＝２に決定されていた場合に、スタータ・オンから最初に２つのカム角信号ＰＣＡが出現すれば、ＳＳ＝＃４であることが判明し、判明時にＣＣＲＮＫ＝０（０°ＣＡ）となる。したがって、１１５°ＣＡにて＃５に点火可能となり、始動時に燃料噴射された＃５，３に引き続いて＃６の吸気行程にて＃６に燃料噴射が可能となる。また、Ｎ＝２の場合に、２つのカム角信号ＰＣＡが出現しない内に、スタータ・オンから２３０°ＣＡを越えた後に欠歯１２ｂが出現（ＫＫＢ）すれば、ＳＳ＝＃４であることが判明し、判明時のＣＣＲＮＫ＝４（１２０°ＣＡ）となる。したがって、１２０°ＣＡにて＃５に点火可能となり、始動時に燃料噴射された＃５，３に引き続いて＃６の吸気行程にて＃６に燃料噴射が可能となる。また、Ｎ＝２の場合に、２つのカム角信号ＰＣＡが出現しない内に、スタータ・オンから２３０°ＣＡ以内に欠歯１２ｂが出現（ＫＫＢ）すれば、ＳＳ＝＃１であることが判明し、判明時のＣＣＲＮＫ＝４（１２０°ＣＡ）となる。したがって、２３５°ＣＡにて＃３に点火可能となり、始動時に燃料噴射された＃５，３に引き続いて＃６の吸気行程にて＃６に燃料噴射が可能となる。なお＃５についてはＮ＝１の場合で述べたごとくの理由によりスタータ・オンから１サイクル後の吸気行程時には燃料噴射は行わない。
【０２００】
エンジン停止時にＮ＝３に決定されていた場合に、最初にカム角信号ＰＣＡが出現すれば、ＳＳ＝＃１であることが判明し、判明時にＣＣＲＮＫ＝０（０°ＣＡ）となる。したがって、２３５°ＣＡにて＃３に点火可能となり、始動時に燃料噴射された＃３，６に引き続いて＃２の吸気行程にて＃２に燃料噴射が可能となる。また、Ｎ＝３の場合に、最初に欠歯１２ｂが出現（ＫＫＢ）すれば、ＳＳ＝＃５であることが判明し、判明時のＣＣＲＮＫ＝４（１２０°ＣＡ）となる。したがって、３５５°ＣＡにて＃６に点火可能となり、始動時に燃料噴射された＃３，６に引き続いて＃２の吸気行程にて＃２に燃料噴射が可能となる。なお＃３についてはＮ＝１の場合で述べたごとくの理由によりスタータ・オンから１サイクル後の吸気行程時には燃料噴射は行わない。
【０２０１】
エンジン停止時にＮ＝４に決定されていた場合に、最初にカム角信号ＰＣＡが出現すれば、ＳＳ＝＃３であることが判明し、判明時にＣＣＲＮＫ＝１２（３６０°ＣＡ）となる。したがって、４７５°ＣＡにて＃２に点火可能となり、始動時に燃料噴射された＃６，２に引き続いて＃４の吸気行程にて＃４に燃料噴射が可能となる。なお＃６についてはＮ＝１の場合で述べたごとくの理由によりスタータ・オンから１サイクル後の吸気行程時には燃料噴射は行わない。また、Ｎ＝４の場合に、最初に欠歯１２ｂが出現（ＫＫＢ）すれば、ＳＳ＝＃５であることが判明し、判明時のＣＣＲＮＫ＝４（１２０°ＣＡ）となる。したがって、３５５°ＣＡにて＃６に点火可能となり、始動時に燃料噴射された＃６，２に引き続いて＃４の吸気行程にて＃４に燃料噴射が可能となる。
【０２０２】
エンジン停止時にＮ＝５に決定されていた場合に、スタータ・オンから１１０°ＣＡを越えて最初にカム角信号ＰＣＡが出現すれば、ＳＳ＝＃３であることが判明し、判明時にＣＣＲＮＫ＝１２（３６０°ＣＡ）となる。したがって、４７５°ＣＡにて＃２に点火可能となり、始動時に燃料噴射された＃２，４に引き続いて＃１の吸気行程にて＃１に燃料噴射が可能となる。また、Ｎ＝５の場合に、スタータ・オンから１１０°ＣＡ以内に最初にカム角信号ＰＣＡが出現すれば、ＳＳ＝＃６であることが判明し、判明時のＣＣＲＮＫ＝１２（３６０°ＣＡ）となる。したがって、５９５°ＣＡにて＃４に点火可能となり、始動時に燃料噴射された＃２，４に引き続いて＃１の吸気行程にて＃１に燃料噴射が可能となる。なお＃２についてはＮ＝１の場合で述べたごとくの理由によりスタータ・オンから１サイクル後の吸気行程時には燃料噴射は行わない。
【０２０３】
エンジン停止時にＮ＝６に決定されていた場合に、スタータ・オン後に最初にカム角信号ＰＣＡが出現すれば、ＳＳ＝＃６であることが判明し、判明時にＣＣＲＮＫ＝１２（３６０°ＣＡ）となる。したがって、５９５°ＣＡにて＃４に点火可能となり、始動時に燃料噴射された＃４，１に引き続いて＃５の吸気行程にて＃５に燃料噴射が可能となる。また、Ｎ＝６の場合に、スタータ・オン後に最初に欠歯１２ｂが出現（ＫＫＢ）すれば、ＳＳ＝＃２であることが判明し、判明時のＣＣＲＮＫ＝１６（４８０°ＣＡ）となる。したがって、７１５°ＣＡにて＃１に点火可能となり、始動時に燃料噴射された＃４，１に引き続いて＃５の吸気行程にて＃５に燃料噴射が可能となる。なお＃４についてはＮ＝１の場合で述べたごとくの理由によりスタータ・オンから１サイクル後の吸気行程時には燃料噴射は行わない。
【０２０４】
以上説明した本実施の形態２によれば、以下の効果が得られる。
（イ）．前述した実施の形態１と同様の効果を得ることができる。
（ロ）．特に、停止時の行程状態を６つのクランク角領域の内の２つに正確に限定できるので４気筒の場合よりもより限定範囲が狭まるという効果を生じる。
【０２０５】
［その他の実施の形態］
・前記各実施の形態においては、シグナルロータ１２には欠歯１２ｂが存在したが、欠歯１２ｂ以外の方法で基準となる回転位相が検出される構成であれば、行程状態変数Ｎ設定処理のステップＳ１７１において、検出された極大クランク角から除くクランクカウンタＣＣＲＮＫの値は、極大位置エネルギー位相ＴＯＰのみで良い。このことによっても前述した各実施の形態と同様の効果を生じさせることができる。
【０２０６】
・前記各実施の形態においては、ＶＶＴ３９により吸気カムシャフト２８がクランクシャフト４に対して相対回転する構成であったが、ＶＶＴ３９を備えていない場合にも、本発明は同様に適用できる。この場合は、カム角信号ＰＣＡは、クランク角に対して完全に固定されているので、始動時において始動時気筒変数ＳＳやクランクカウンタＣＣＲＮＫの決定が迅速にできる。更にこの構成により、上述したごとくシグナルロータ１２に欠歯１２ｂを設けずに、カムポジションセンサ３８からの信号によりクランク角の基準位置を決定することができる。
【０２０７】
・前述した各実施の形態では、４気筒と６気筒のエンジンの例を示したが、これ以外の気筒数（例えば８気筒）においても同様に適用できる。この場合も、極大位置エネルギー位相により区画されたクランク角領域の２つに正確に限定できる。そして、始動時にこの内の１つに絞ることにより、早期の初爆と安定した始動を実現できる。
【０２０８】
・前述した各実施の形態では、吸気ポートに燃料を噴射するタイプのガソリンエンジンに適用した例を示したが、これ以外に、直接燃焼室内に燃料を噴射する筒内噴射タイプのガソリンエンジンに適用することもできる。この場合には、始動時の燃料噴射は圧縮行程にある気筒に噴射することができる。
【０２０９】
・なお、エンジンの停止中にも坂道などで車両が移動し、これに連動してクランクシャフトが回転する場合がある。この場合には、エンジンの行程状態が変化するおそれがあるので、エンジン停止中にクランクポジションセンサの信号を検出し、図２０（ａ）に示すごとくの時間的に長く連続出力される信号がクランクポジションセンサから発生した場合には、行程状態の変化のおそれがあるものとして始動時燃料噴射処理（図１０）、クランク角設定処理（図１１）および点火時期・燃料噴射時期設定処理（図１６）のステップＳ５２０，Ｓ５３０の実行を禁止しても良い。ただし、図２０（ｂ）に示すごとく、頻度は多いが短時間に発生する信号は単に橋梁等の上における車両振動により生ずることから、この場合には実行禁止をしないようにしても良い。
【図面の簡単な説明】
【図１】実施の形態１の自動車用４気筒ガソリンエンジンの要部縦断面図。
【図２】図１とは直交する方向での前記エンジンの要部縦断面図。
【図３】実施の形態１の制御系統の電気的構成説明図。
【図４】実施の形態１のカムポジションセンサおよびクランクポジションセンサにおける電圧波形と信号の状態説明図。
【図５】実施の形態１の４気筒ガソリンエンジンにおける行程状態説明図。
【図６】実施の形態１のカムポジションセンサおよびクランクポジションセンサにおいてエンジン回転完全停止時に発生する電圧波形の説明図。
【図７】実施の形態１のＥＣＵにて実行される停止行程判別処理のフローチャート。
【図８】同じくクランクカウンタＣＣＲＮＫ更新処理のフローチャート。
【図９】同じく行程状態変数Ｎ設定処理のフローチャート。
【図１０】同じく始動時燃料噴射処理のフローチャート。
【図１１】同じくクランク角設定処理のフローチャート。
【図１２】同じく＃１，２選別処理のフローチャート。
【図１３】同じく＃１，３選別処理のフローチャート。
【図１４】同じく＃３，４選別処理のフローチャート。
【図１５】同じく＃２，４選別処理のフローチャート。
【図１６】同じく点火時期・燃料噴射時期設定処理のフローチャート。
【図１７】実施の形態１のＥＣＵによる始動時の制御内容説明図。
【図１８】実施の形態２の６気筒ガソリンエンジンにおける行程状態説明図。
【図１９】実施の形態２のＥＣＵによる始動時の制御内容説明図。
【図２０】他の実施の形態において処理の実行有無を判定するためのクランクポジションセンサにおける電圧波形説明図。
【符号の説明】
２…エンジン、２ａ…シリンダブロック、４…クランクシャフト、６…ピストン、６ａ…コネクティングロッド、８…スタータ、１０…イグニッションスイッチ、１２…シグナルロータ、１２ａ…突起、１２ｂ…欠歯、１４…クランクポジションセンサ、１６…シリンダヘッド、１８…燃焼室、２０…吸気通路、２０ａ…吸気ポート、２２…排気通路、２４…吸気バルブ、２６…排気バルブ、２８…吸気カムシャフト、３０…排気カムシャフト、３２，３４，３６…突起、３８…カムポジションセンサ、３９…ＶＶＴ、４０…燃料噴射弁、４２…点火プラグ、４４…イグナイタ、５０…ＥＣＵ、５０ａ…ＣＰＵ、５０ｂ…ＲＯＭ、５０ｃ…ＲＡＭ、５０ｄ…バックアップＲＡＭ、５０ｅ…バス、５０ｆ…外部入力回路、５０ｇ…外部出力回路。
【図１】
0003873598.tif 000002
【図２】
0003873598.tif 000003
【図３】
0003873598.tif 000004
【図４】
0003873598.tif 000005
【図５】
0003873598.tif 000006
【図６】
0003873598.tif 000007
【図７】
0003873598.tif 000008
【図８】
0003873598.tif 000009
【図９】
0003873598.tif 000010
【図１０】
0003873598.tif 000011
【図１１】
0003873598.tif 000012
【図１２】
0003873598.tif 000013
【図１３】
0003873598.tif 000014
【図１４】
0003873598.tif 000015
【図１５】
0003873598.tif 000016
【図１６】
0003873598.tif 000017
【図１７】
0003873598.tif 000018
【図１８】
0003873598.tif 000019
【図１９】
0003873598.tif 000020
【図２０】
0003873598.tif 000021