(57)【要約】【課題】失火が発生することを防止しながらエンジン回転速度を基準エンジン回転速度に迅速に近づけることが可能な内燃機関の始動制御装置を提供すること。【解決手段】制御装置は機関の始動直後の期間中、エンジン回転速度ＮＥが基準エンジン回転速度よりも高いとき、エンジン回転速度に基づいて点火時期ＳＡを補正量ΔＳＡだけ遅角側に補正する（ステップ７３０）。装置は筒内空気量が基準量よりも多くなる空気量条件が成立しているか否かを判定する（ステップ７０５）。このとき、空気量条件が成立していると判定された場合における補正量ΔＳＡ（ステップ７２５，７４５）は、空気量条件が成立していないと判定された場合における補正量ΔＳＡ（ステップ７１０，７２５）よりも小さい量に設定される。これにより、出力トルクが低減されるとともに筒内空気量が基準量よりも多い場合に点火時期が過度に遅角側の時期に設定されることが回避される。【選択図】図７
2009024686.tif 000002
【特許請求の範囲】
【請求項１】
エンジン回転速度を取得するとともに、同取得されたエンジン回転速度が、気筒内に導入される空気量である筒内空気量が所定の基準筒内空気量であるという条件が成立している状態において同気筒内に導入された空気と燃料とを含む混合ガスに所定の基準点火時期にて点火した場合に取得されるエンジン回転速度である基準エンジン回転速度よりも高いとき、同基準点火時期を遅角側に補正することにより点火時期を決定し同決定された点火時期にて同混合ガスに点火することによりエンジン回転速度を同基準エンジン回転速度に近づけるように構成された内燃機関の始動制御装置であって、
前記筒内空気量が前記基準筒内空気量よりも多くなる空気量条件が成立しているか否かを判定する空気量判定手段と、
前記内燃機関が始動させられた直後の始動初期期間にて、前記取得されたエンジン回転速度が前記基準エンジン回転速度よりも高い場合において前記空気量判定手段により前記空気量条件が成立していないと判定されたとき、第１の点火時期補正量だけ前記基準点火時期を遅角側に補正することにより前記点火時期を決定する第１の点火時期補正手段と、
前記始動初期期間にて、前記取得されたエンジン回転速度が前記基準エンジン回転速度よりも高い場合において前記空気量判定手段により前記空気量条件が成立していると判定されたとき、第２の点火時期補正量だけ前記基準点火時期を遅角側に補正することにより、前記第１の点火時期補正手段が使用されると仮定した場合に決定される点火時期よりも進角側の時期に前記点火時期を決定する第２の点火時期補正手段と、
を備える内燃機関の始動制御装置。
【請求項２】
請求項１に記載の内燃機関の始動制御装置であって、
所定の制御量を変更することにより前記気筒内に供給される空気量を変更する空気量変更手段と、
前記制御量を目標制御量に一致させるように前記空気量変更手段を制御する空気量制御手段と、
所定のフィードバック条件が成立している場合、前記取得されたエンジン回転速度が所定の目標エンジン回転速度に一致するように、フィードバック制御量を算出するとともに同算出されたフィードバック制御量に基づいて前記目標制御量を決定するフィードバック制御手段と、
前記フィードバック条件が成立している場合に前記算出されたフィードバック制御量に基づいて学習制御量を算出するとともに同算出された学習制御量を記憶手段が保持するように同記憶手段に記憶させ、一方、同フィードバック条件が成立していない場合において同学習制御量が保持されているときに同保持されている学習制御量に基づいて前記目標制御量を決定する学習制御手段と、
前記内燃機関を始動させるために同内燃機関が操作された際、前記学習制御量が保持されている場合に同保持されている学習制御量に基づいて前記目標制御量を決定し一方同学習制御量が保持されていない場合に所定の初期目標制御量を前記目標制御量として採用する始動時目標制御量設定手段と、
を備え、
前記空気量判定手段は、前記始動初期期間にて、前記学習制御量が保持されている場合に前記空気量条件が成立していないと判定し一方同学習制御量が保持されていない場合に同空気量条件が成立していると判定するように構成された内燃機関の始動制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の始動時にエンジン回転速度に基づいて点火時期を変更する装置に関する。
【背景技術】
【０００２】
一般に、内燃機関に供給される燃料には、相対的に霧化しやすい燃料である軽質燃料と、相対的に霧化しにくい燃料である重質燃料と、が存在する。
【０００３】
内燃機関が始動させられた直後の始動初期期間においては、気筒にて燃焼に供される燃料量は、噴射された燃料が霧化しやすいほど多くなる。従って、軽質燃料が噴射されると、重質燃料が噴射された場合と比較して多い量の燃料が燃焼に供されるので、気筒内に形成された混合ガスが燃焼することにより内燃機関が出力するトルク（出力トルク）は大きくなる。この結果、軽質燃料が噴射された場合には、始動初期期間においてエンジン回転速度が過度に高くなる吹き上がりが発生する。
【０００４】
そこで、従来の内燃機関の始動制御装置の一つは、始動初期期間において、エンジン回転速度が所定の基準エンジン回転速度よりも高いとき、補正量（遅角補正量）だけ所定の基準点火時期を補正することにより点火時期を遅角させる。この遅角補正量は、エンジン回転速度から基準エンジン回転速度を減じた値が大きくなるほど大きくなるように設定されている（例えば、特許文献１を参照。）。
【特許文献１】特開２００４−１９５７１号公報
【０００５】
これによれば、吹き上がりが発生した場合、点火時期が遅角されることにより出力トルクが低減される。従って、エンジン回転速度は基準エンジン回転速度に近づけられる。この結果、エンジン回転速度が過度に高くなることを防止することができる。換言すると、吹き上がりを抑制することができる。
【０００６】
ところで、点火時期を遅角させ過ぎると、混合ガスに点火しても混合ガスが燃焼しない失火が発生する。失火は、燃料が霧化しにくくなるほど発生しやすくなる。即ち、重質燃料が噴射された場合、軽質燃料が噴射された場合よりも失火が発生しやすい。一方、上記従来の制御装置においては、燃料が霧化しにくくなるほど出力トルクが小さくなるので遅角補正量は小さくなる。従って、重質燃料が噴射された場合であっても失火が発生する可能性は低い。
【発明の開示】
【０００７】
しかしながら、始動初期期間において、気筒内に供給される空気量（筒内空気量）が何らかの理由により所定の基準筒内空気量よりも比較的多くなる場合がある。この場合、出力トルクが大きくなるので、エンジン回転速度も高くなる。従って、上記従来の制御装置によれば、始動初期期間にて筒内空気量が比較的多い場合において重質燃料が噴射されたとき、失火が発生しやすい重質燃料を含む混合ガスにとって遅角補正量が過大となって失火が発生する可能性が高まるという問題があった。
【０００８】
本発明は上述した課題に対処するためになされたものであって、その目的の一つは、失火が発生することを防止しながらエンジン回転速度を基準エンジン回転速度に迅速に近づけることが可能な内燃機関の始動制御装置を提供することにある。
【０００９】
かかる目的を達成するため本発明に係る内燃機関の始動制御装置は、
エンジン回転速度を取得するとともに、同取得されたエンジン回転速度が、気筒内に導入される空気量である筒内空気量が所定の基準筒内空気量であるという条件が成立している状態において同気筒内に導入された空気と燃料とを含む混合ガスに所定の基準点火時期にて点火した場合に取得されるエンジン回転速度である基準エンジン回転速度よりも高いとき、同基準点火時期を遅角側に補正することにより点火時期を決定し同決定された点火時期にて同混合ガスに点火することによりエンジン回転速度を同基準エンジン回転速度に近づけるように構成される装置である。
【００１０】
更に、この始動制御装置は、
前記筒内空気量が前記基準筒内空気量よりも多くなる空気量条件が成立しているか否かを判定する空気量判定手段と、
前記内燃機関が始動させられた直後の始動初期期間にて、前記取得されたエンジン回転速度が前記基準エンジン回転速度よりも高い場合において前記空気量判定手段により前記空気量条件が成立していないと判定されたとき、第１の点火時期補正量だけ前記基準点火時期を遅角側に補正することにより前記点火時期を決定する第１の点火時期補正手段と、
前記始動初期期間にて、前記取得されたエンジン回転速度が前記基準エンジン回転速度よりも高い場合において前記空気量判定手段により前記空気量条件が成立していると判定されたとき、第２の点火時期補正量だけ前記基準点火時期を遅角側に補正することにより、前記第１の点火時期補正手段が使用されると仮定した場合に決定される点火時期よりも進角側の時期に前記点火時期を決定する第２の点火時期補正手段と、を備える。
【００１１】
なお、エンジン回転速度は、内燃機関の出力軸の回転速度そのものであってもよいし、複数の時点にて取得された内燃機関の出力軸の回転速度の平均値であってもよい。また、エンジン回転速度は、内燃機関の出力軸の回転速度を表すパラメータにより表されていてもよい。このパラメータは、例えば、混合ガスの燃焼が最初に発生した気筒が、その燃焼が発生する燃焼サイクルにおける圧縮上死点を迎えた時点（初爆時点）から経過した時間（経過時間）である。即ち、「エンジン回転速度が高い」ことは、「経過時間が短い」ことに対応していると言うことができる。
【００１２】
これによれば、始動初期期間にて、エンジン回転速度が基準エンジン回転速度よりも高い場合において空気量条件が成立していないとき、第１の点火時期補正手段によって、点火時期は、基準点火時期が第１の点火時期補正量だけ遅角側に補正されることにより決定される。これにより、気筒における混合ガスの燃焼によって出力されるトルク（出力トルク）が適切に低減させられる。この結果、エンジン回転速度を基準エンジン回転速度に迅速に近づけることができる。
【００１３】
なお、空気量条件が成立していない場合に吹き上がりが発生したときは、軽質燃料が使用されている可能性が高い。従って、比較的大きい第１の点火時期補正量だけ基準点火時期を遅角側に補正することによりエンジン回転速度を比較的大きく低下させても、失火は発生しにくい。
【００１４】
一方、始動初期期間にて、エンジン回転速度が基準エンジン回転速度よりも高い場合において空気量条件が成立しているときは、重質燃料が使用されている可能性が否定できない。そこで、点火時期は、第２の点火時期補正手段によって、第２の点火時期補正量だけ基準点火時期が遅角側に補正されることにより第１の点火時期補正手段が使用されると仮定した場合に決定される点火時期よりも進角側の時期に決定される。これにより、出力トルクが低減されるとともに、点火時期が過度に遅角側の時期に設定されることが回避される。この結果、エンジン回転速度を基準エンジン回転速度に近づけることができるとともに、重質燃料が使用されていても失火が発生する（混合ガスに点火しても混合ガスが燃焼しない）ことを防止することができる。
【００１５】
なお、軽質燃料が使用されている場合にも、空気量条件が成立しているときには、空気量条件が成立していないときよりも出力トルクが大きくなる。従って、例えば、制御装置が、エンジン回転速度と基準エンジン回転速度との差が大きくなるほど大きくなる点火時期補正量だけ基準点火時期を遅角側に補正するように構成されている場合には、軽質燃料が使用されていても点火時期が過度に遅角側に補正されることにより失火が発生する虞がある。これに対し、上記構成によれば、空気量条件が成立している場合、点火時期は、空気量条件が成立していない場合よりも進角側の時期に決定されるので、失火が発生することを防止することができる。
【００１６】
この場合、上記内燃機関の始動制御装置は、
所定の制御量を変更することにより前記気筒内に供給される空気量を変更する空気量変更手段と、
前記制御量を目標制御量に一致させるように前記空気量変更手段を制御する空気量制御手段と、
所定のフィードバック条件が成立している場合、前記取得されたエンジン回転速度が所定の目標エンジン回転速度に一致するように、フィードバック制御量を算出するとともに同算出されたフィードバック制御量に基づいて前記目標制御量を決定するフィードバック制御手段と、
前記フィードバック条件が成立している場合に前記算出されたフィードバック制御量に基づいて学習制御量を算出するとともに同算出された学習制御量を記憶手段が保持するように同記憶手段に記憶させ、一方、同フィードバック条件が成立していない場合において同学習制御量が保持されているときに同保持されている学習制御量に基づいて前記目標制御量を決定する学習制御手段と、
前記内燃機関を始動させるために同内燃機関が操作された際、前記学習制御量が保持されている場合に同保持されている学習制御量に基づいて前記目標制御量を決定し一方同学習制御量が保持されていない場合に所定の初期目標制御量を前記目標制御量として採用する始動時目標制御量設定手段と、
を備え、
前記空気量判定手段は、前記始動初期期間にて、前記学習制御量が保持されている場合に前記空気量条件が成立していないと判定し一方同学習制御量が保持されていない場合に同空気量条件が成立していると判定するように構成されることが好適である。
【００１７】
これによれば、フィードバック条件が成立している場合、取得されたエンジン回転速度が目標エンジン回転速度に一致するようにフィードバック制御量が算出されるとともに、少なくとも算出されたフィードバック制御量に基づいて目標制御量が決定される。そして、制御量が決定された目標制御量に一致するように空気量変更手段が制御される。これにより、制御量が適切に変更されるので、エンジン回転速度を目標エンジン回転速度に十分に近づけることができる。
【００１８】
更に、この場合、算出されたフィードバック制御量に基づいて学習制御量が算出されるとともに算出された学習制御量が記憶手段により保持される。
【００１９】
また、内燃機関を始動させるために内燃機関が操作された際、学習制御量が保持されている場合、保持されている学習制御量に基づいて目標制御量が決定される。一方、学習制御量が保持されていない場合、初期目標制御量が目標制御量として採用される。
【００２０】
ところで、初期目標制御量は、内燃機関を始動させるために必要な出力トルクを確保するために筒内空気量を比較的多い量とするように設定されている。このため、制御装置へ電力を供給するバッテリが交換されること等により記憶手段が保持していた学習制御量が消去された場合には、始動初期期間にて筒内空気量が基準筒内空気量よりも多くなる。
【００２１】
従って、上記構成のように、始動初期期間にて、学習制御量が保持されている場合に空気量条件が成立していないと判定し一方学習制御量が保持されていない場合に空気量条件が成立していると判定することにより、筒内空気量が基準筒内空気量よりも多くなる空気量条件が成立しているか否かを適切に判定することができる。
【発明を実施するための最良の形態】
【００２２】
＜構成＞
以下、本発明による内燃機関の始動制御装置（制御装置）の実施形態について図面を参照しながら説明する。図１は、この制御装置を火花点火式多気筒（４気筒）内燃機関に適用したシステムの概略構成を示している。なお、図１は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
【００２３】
内燃機関１０は、４サイクル運転方式により運転されるように構成されている。４サイクル運転方式は、排気上死点から吸気下死点までの吸気行程、吸気下死点から圧縮上死点までの圧縮行程、圧縮上死点から膨張下死点までの膨張行程及び膨張下死点から排気上死点までの排気行程の４つの行程からなる燃焼サイクルを各気筒が繰り返す運転方式である。内燃機関１０は、４つの気筒の燃焼サイクルの位相が１つの行程に対応する大きさ（後述するクランク角度にて１８０°）ずつ異なるように構成されている。
【００２４】
内燃機関１０は、車両に搭載されている。内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０に燃料と空気とを含む混合ガスを供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０と、を含んでいる。
【００２５】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及び出力軸としてのクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これによりクランク軸２４が回転するようになっている。シリンダ２１、ピストン２２のヘッド及びシリンダヘッド部３０は、燃焼室（気筒）２５を形成している。
【００２６】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともにこのインテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料噴射手段としてのインジェクタ３９を備えている。
【００２７】
インジェクタ３９は、図示しない燃料タンクＦＴに接続されている。インジェクタ３９には、その燃料タンクＦＴ内の燃料が供給される。インジェクタ３９は、供給された燃料を指示信号に応答して吸気ポート３１内に噴射することにより燃焼室２５内へ燃料を供給するようになっている。
【００２８】
吸気系統４０は、各気筒の吸気ポート３１にそれぞれ連通する独立した複数の通路を有するインテークマニホールド４１、インテークマニホールド４１のすべての通路に連通したサージタンク４２、サージタンク４２に一端が接続され吸気ポート３１とインテークマニホールド４１とサージタンク４２とともに吸気通路を形成する吸気ダクト４３、吸気ダクト４３の他端部から下流（サージタンク４２）に向けて順に吸気ダクト４３に配設されたエアフィルタ４４、空気量変更手段としてのスロットル弁４５及び空気量制御手段としてのスロットル弁アクチュエータ４５ａを備えている。
【００２９】
スロットル弁４５は、吸気ダクト４３に回転可能に支持されている。スロットル弁４５は、スロットル弁アクチュエータ４５ａにより駆動（制御）されることによって、制御量としての開度（スロットル弁開度ＴＡ）を調整して吸気ダクト４３の通路断面積を調整するようになっている。このような構成により、スロットル弁４５は、スロットル弁開度ＴＡを変更することにより、吸気ダクト４３（吸気通路）を通過する空気の量を変更でき、その結果、気筒内に供給される空気量を変更できる。
【００３０】
ＤＣモータからなるスロットル弁アクチュエータ４５ａは、後述する電気制御装置７０により送出される駆動信号に応じて、実際のスロットル弁４５の開度（スロットル弁開度）ＴＡが目標スロットル弁開度ＴＡｔｇｔに一致するようにスロットル弁４５を駆動するようになっている。
【００３１】
排気系統５０は、各気筒の排気ポート３４にそれぞれ連通する独立した複数の通路を有するエキゾーストマニホールド５１、エキゾーストマニホールド５１に接続され排気ポート３４とエキゾーストマニホールド５１とともに排気通路を形成する排気管５２及び排気管５２に配設された三元触媒装置５３を備えている。
【００３２】
一方、このシステムは、熱線式のエアフローメータ６１、吸気温度センサ６２、吸気圧力センサ６３、スロットルポジションセンサ６４、カムポジションセンサ６５、クランクポジションセンサ６６、アクセル開度センサ６７、冷却水温度センサ６８、車速センサ６９及び電気制御装置７０を備えている。
【００３３】
エアフローメータ６１は、エアフィルタ４４とスロットル弁４５との間の吸気ダクト４３に配設されている。エアフローメータ６１は、吸気ダクト４３内を通過する空気の流量（即ち、吸気流量）を検出し、吸気流量Ｇａを表す信号を出力するようになっている。
吸気温度センサ６２は、エアフィルタ４４とスロットル弁４５との間の吸気ダクト４３に配設されている。吸気温度センサ６２は、スロットル弁４５の上流における空気の温度（即ち、吸気温度）を検出し、吸気温度Ｔａを表す信号を出力するようになっている。
吸気圧力センサ６３は、エアフィルタ４４とスロットル弁４５との間の吸気ダクト４３に配設されている。吸気圧力センサ６３は、スロットル弁４５の上流における空気の圧力（即ち、吸気圧力）を検出し、吸気圧力Ｐａを表す信号を出力するようになっている。
【００３４】
スロットルポジションセンサ６４は、スロットル弁４５の開度（スロットル弁開度）を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
カムポジションセンサ６５は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）生じるパルスを有する信号（Ｇ２信号）を出力するようになっている。
【００３５】
クランクポジションセンサ６６は、クランク軸２４が１０°回転する毎に生じる幅狭のパルスを有するとともにクランク軸２４が３６０°回転する毎に生じる幅広のパルスを有する信号を出力するようになっている。この信号は、クランク軸２４が３０°回転する間に経過する時間である第１回転所要時間Ｔ３０と、クランク軸２４が１８０°回転する間に経過する時間である第２回転所要時間Ｔ１８０と、クランク軸２４が３６０°回転する間に経過する時間の逆数であるエンジン回転速度ＮＥと、を取得するために使用される。
【００３６】
アクセル開度センサ６７は、運転者によって操作されるアクセルペダル８１の操作量を検出し、アクセルペダルの操作量（アクセルペダル操作量）Accpを表す信号を出力するようになっている。
冷却水温度センサ６８は、シリンダ２１の側壁内を循環する冷却水の温度（冷却水温度）を検出し、冷却水温度Ｔｗを表す信号を出力するようになっている。
車速センサ６９は、車両の速度である車速Ｖを検出し、検出された車速Ｖを表す信号を出力するようになっている。
【００３７】
電気制御装置７０は、互いにバスによって接続されたＣＰＵ７１、ＲＯＭ７２、ＲＡＭ７３、バックアップＲＡＭ７４及びインターフェース７５を含むマイクロコンピュータである。なお、バックアップＲＡＭ７４は記憶手段を構成している。
【００３８】
ＣＰＵ７１は、所定のプログラムを実行することにより、種々の指示信号を送るようになっている。
ＲＯＭ７２は、電力が供給されている間に、保持しているデータをＣＰＵ７１が読み取れるように構成された記憶媒体である。ＲＯＭ７２は、ＣＰＵ７１により実行されるプログラム、テーブル（ルックアップテーブル、マップ）、定数等のデータ（情報）を予め保持している。
【００３９】
ＲＡＭ７３及びバックアップＲＡＭ７４は、電力が供給されている間に、ＣＰＵ７１からの指示に応じてデータを記憶することにより記憶したデータを保持するように構成されるとともに保持しているデータをＣＰＵ７１が読み取れるように構成された記憶媒体である。
【００４０】
インターフェース７５は、ＡＤコンバータを介して前記センサ６１〜６９と接続されている。インターフェース７５は、ＣＰＵ７１にセンサ６１〜６９からの信号を供給するとともに、ＣＰＵ７１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９及びスロットル弁アクチュエータ４５ａに駆動信号（指示信号）を送出するようになっている。
【００４１】
更に、電気制御装置７０は、図示しないバッテリＢＴに接続されている。
バッテリＢＴは、電気制御装置７０に接続された状態において、図示しないイグニッション・スイッチＩＳがオン状態に設定されている場合にＣＰＵ７１、ＲＯＭ７２、ＲＡＭ７３、バックアップＲＡＭ７４及びインターフェース７５へ電力を供給し、一方、イグニッション・スイッチＩＳがオフ状態に設定されている場合にバックアップＲＡＭ７４にのみ電力を供給するようになっている。
【００４２】
このような構成により、ＲＡＭ７３は、イグニッション・スイッチＩＳがオン状態に設定されている場合にＣＰＵ７１がプログラムを実行することによって生成されるデータを一時的に保持する。また、バックアップＲＡＭ７４は、イグニッション・スイッチＩＳがオフ状態となっている間に保持する必要があるデータを保持する。
【００４３】
＜作動の概要＞
次に、上記のように構成された内燃機関の始動制御装置の作動の概要について説明する。
【００４４】
この制御装置は、アクセルペダル操作量Accpが「０」であるとき（アイドル運転状態にあるとき）であって内燃機関１０の温度が略一定となったとき（本例では、冷却水温度Ｔｗが所定の閾値温度Ｔｗｔｈ以上となったとき）、エンジン回転速度ＮＥが目標エンジン回転速度ＮＥｒｅｆに一致するように、フィードバック制御量ＴＡｆｂを算出する。このフィードバック制御量ＴＡｆｂは、エンジン回転速度ＮＥが目標エンジン回転速度ＮＥｒｅｆよりも高いときに減少させられ、一方、エンジン回転速度ＮＥが目標エンジン回転速度ＮＥｒｅｆよりも低いときに増大させられる。
【００４５】
そして、この制御装置は、算出したフィードバック制御量ＴＡｆｂに基づいてスロットル弁開度ＴＡをフィードバック制御する。更に、制御装置は、フィードバック制御量ＴＡｆｂに基づいて学習制御量ＴＡｇを算出し（学習を行い）、算出された学習制御量ＴＡｇをバックアップＲＡＭ７４に保持させる。
【００４６】
ところで、このバックアップＲＡＭ７４は、前述したように、イグニッション・スイッチＩＳがオフ状態に設定されている場合にもバッテリＢＴから電力が供給されることにより学習制御量ＴＡｇを保持する。従って、バッテリＢＴが交換されること等によりバックアップＲＡＭ７４への電力の供給が途絶えると、学習制御量ＴＡｇは消失する。この場合、学習を再度行わなければならない。換言すると、学習完了条件は不成立となる。
【００４７】
そこで、この制御装置は、内燃機関１０を始動させるために内燃機関１０が操作された際（本例では、イグニッション・スイッチＩＳが始動位置に移動されて（オフ状態からオン状態へ切り替えられて）スタータ・モータが駆動された際（以下、単に「始動操作時」とも称呼する。））、学習完了条件が成立していれば、即ち、学習制御量ＴＡｇが得られていてバックアップＲＡＭ７４に保持されていれば、スロットル弁開度ＴＡをその学習制御量ＴＡｇに基づく開度に調整する。
【００４８】
これに対し、始動操作時に学習完了条件が成立していなければ、即ち、学習制御量ＴＡｇがバックアップＲＡＭ７４に保持されていなければ、スロットル弁開度ＴＡを初期目標スロットル弁開度ＴＡ０に調整する。この初期目標スロットル弁開度ＴＡ０は、供給される燃料が重質燃料であっても内燃機関１０が始動時に必要なトルクを出力できるように、比較的大きい開度に定められている。なお、始動時においては、内燃機関１０の始動性を良好にするために、内燃機関１０に供給される混合ガスの空燃比を理論空燃比よりもリッチ側のリッチ空燃比とするような比較的多量の燃料が噴射される。
【００４９】
一方、制御装置は、内燃機関１０が始動させられた直後の始動初期期間中の時点（本例では、各気筒において２回目の燃焼が発生する燃焼サイクルにおける圧縮上死点をその気筒が迎えた時点）にて、経過時間Ｔｉが基準経過時間Ｔｒｅｆよりも短いとき（即ち、エンジン回転速度ＮＥの平均値が基準エンジン回転速度の平均値よりも高いとき）、経過時間Ｔｉに基づいて点火時期ＳＡを点火時期補正量ΔＳＡだけ遅角側に補正する。ここで、経過時間Ｔｉは、混合ガスの燃焼が最初に発生した気筒が、その燃焼が発生する燃焼サイクルにおける圧縮上死点を迎えた（ピストン２２が圧縮上死点位置に位置した）時点（初爆時点）から経過した時間である。この点火時期補正量ΔＳＡは、経過時間Ｔｉと基準経過時間Ｔｒｅｆとの差に応じて定められる。このように点火時期が遅角される結果、経過時間Ｔｉを基準経過時間Ｔｒｅｆに近づけることができる。
【００５０】
ところで、スロットル弁開度ＴＡが初期目標スロットル弁開度ＴＡ０に調整されると筒内空気量（燃焼室２５内に導入される空気量、吸入空気量）が多くなる。これにより、出力トルクが増大してエンジン回転速度が大きく上昇する場合が生じる。その結果、特に、遅角された点火時期に対して失火し易い重質燃料が供給されていると、点火時期が過度に遅角側に補正されることにより失火が発生する可能性が高まる。
【００５１】
そこで、この制御装置は、始動操作時において学習完了条件が成立していない場合（スロットル弁開度ＴＡが初期目標スロットル弁開度ＴＡ０に設定される場合）、その後の点火時期の点火時期補正量ΔＳＡを、始動操作時において学習完了条件が成立している場合よりも小さい量に設定する。この結果、点火時期を重質燃料にとって失火が生じない程度の時期に設定することができる。
【００５２】
また、軽質燃料が供給されている状態にて筒内空気量が比較的多い場合には、エンジン回転速度が極めて大きくなる場合がある。この場合においても、点火時期補正量ΔＳＡを学習完了条件が成立している場合と同じ量に設定していると、点火時期が過度に遅角側に移行される。その結果、供給される燃料が軽質燃料であっても失火が発生する虞がある。これに対し、この制御装置は、スロットル弁開度ＴＡが初期目標スロットル弁開度ＴＡ０に設定される場合には点火時期補正量ΔＳＡを小さくするので、そのような事態（軽質燃料供給時の失火）の発生をも回避することができる。
【００５３】
＜作動の詳細＞
次に、電気制御装置７０の実際の作動について、図２〜図１２を参照しながら説明する。
先ず、後述するように、所定の学習完了条件が成立することにより値が「１」に設定された学習完了フラグＸｇｄと、エンジン回転速度ＮＥに基づいてスロットル弁開度ＴＡがフィードバック制御されることにより算出された学習制御量ＴＡｇと、がバックアップＲＡＭ７４に保持されている状態であって、燃料タンクＦＴに軽質燃料が充填された状態において、内燃機関１０の運転が開始することを運転者が希望する場合から説明する。
【００５４】
ここで、学習完了フラグＸｇｄは、所定の学習完了条件（図１０のステップ１０４０を参照。）が成立しているか否かを表すフラグであって、その値が「１」であれば成立しており、「０」であれば成立していないことを示す。なお、学習完了フラグＸｇｄの値が「１」であることは、実質的に学習制御量ＴＡｇが記憶手段に保持されていることを表す。また、学習完了フラグＸｇｄの値が「０」であることは、実質的に学習制御量ＴＡｇが記憶手段に保持されていないことを表す。
【００５５】
この場合、運転者は、内燃機関１０を始動させるためにイグニッション・スイッチＩＳをオフ状態からオン状態へ切り替える（内燃機関１０が操作される）。これにより、ＣＰＵ７１は、図示しないスタータ・モータによりクランク軸２４を回転させる（クランキングを開始させる）ためにそのスタータ・モータに駆動信号を送る。その結果、クランキングが開始させられる。
【００５６】
一方、ＣＰＵ７１は、イグニッション・スイッチＩＳがオフ状態からオン状態へ切り替えられた時、図示しない学習読込ルーチンを実行する。
具体的には、ＣＰＵ７１は、バックアップＲＡＭ７４に保持されている学習制御量ＴＡｇ及び学習完了フラグＸｇｄをＲＡＭ７３に記憶させることによりＲＡＭ７３に保持させる。なお、学習制御量ＴＡｇ及び学習完了フラグＸｇｄは、バックアップＲＡＭ７４への電力の供給が途絶え、その後、バックアップＲＡＭ７４へ電力が供給されると、それぞれが「０」に設定される（「０」に初期化される）ようになっている。
【００５７】
（フィードバック制御実行判定）
また、ＣＰＵ７１は、図２にフローチャートにより示したフィードバック制御実行判定ルーチンを、いずれかの気筒が圧縮上死点を迎える（いずれかの気筒におけるピストン２２が圧縮上死点位置に位置する）毎に（即ち、クランク軸２４の回転角度であるクランク角度が１８０°ずつ変化する毎に）実行するようになっている。
【００５８】
従って、所定のタイミングになると、ＣＰＵ７１は、ステップ２００から処理を開始してステップ２０５に進み、アクセル開度センサ６７により検出されたアクセルペダル操作量Accp（機関１０の負荷）を読み込む。次いで、ＣＰＵ７１は、ステップ２１０に進んで、上記ステップ２０５にて読み込まれたアクセルペダル操作量Accpが「０」であるか否かを判定する。
【００５９】
この時点では、運転者はアクセルペダル８１を操作していないので、アクセルペダル操作量Accpは「０」である。従って、ＣＰＵ７１は、ステップ２１０にて「Ｙｅｓ」と判定してステップ２１５に進み、車速センサ６９により検出された車速Ｖを読み込む。次いで、ＣＰＵ７１は、ステップ２２０に進んで上記ステップ２１５にて読み込まれた車速Ｖが「０」であるか否かを判定する。
【００６０】
この時点では、車両は停止しているので、車速Ｖは「０」である。従って、ＣＰＵ７１は、ステップ２２０にて「Ｙｅｓ」と判定してステップ２２５に進み、アイドル運転フラグＸｉｄｌの値を「１」に設定する。
【００６１】
ここで、アイドル運転フラグＸｉｄｌは、内燃機関１０がアイドル運転状態にあるか否かを表すフラグであって、その値が「１」であればアイドル運転状態にあり、「０」であればアイドル運転状態にないことを示す。後述する通り、アイドル運転フラグＸｉｄｌの値は、アクセルペダル操作量Accp及び車速Ｖのいずれかが「０」でない場合に「０」に設定される（ステップ２５０を参照。）。
【００６２】
そして、ＣＰＵ７１は、ステップ２３０に進んで冷却水温度センサ６８により検出された冷却水温度Ｔｗを読み込む。次いで、ＣＰＵ７１は、ステップ２３５に進んで上記ステップ２３０にて読み込まれた冷却水温度Ｔｗが閾値温度Ｔｗｔｈ以上であるか否かを判定する。ここで、閾値温度Ｔｗｔｈは、冷却水温度Ｔｗが閾値温度Ｔｗｔｈである場合において内燃機関１０が運転され続けても冷却水温度Ｔｗが略一定となるような温度に予め設定されている。本例では、閾値温度Ｔｗｔｈは７０℃（３４３Ｋ）である。
【００６３】
なお、ステップ２１０、ステップ２２０及びステップ２３５のすべての条件が成立していることは、フィードバック条件が成立していることに対応している。また、ステップ２１０、ステップ２２０及びステップ２３５のいずれかの条件が成立していないことは、フィードバック条件が成立していないことに対応している。
【００６４】
この時点では、内燃機関１０が始動された直後であるので、冷却水温度Ｔｗは大気の温度と略等しい。従って、ＣＰＵ７１は、ステップ２３５にて「Ｎｏ」と判定してステップ２４０に進み、フィードバック実行フラグ（ＦＢ実行フラグ）Ｘｆｂの値を「０」に設定する。
【００６５】
ここで、ＦＢ実行フラグＸｆｂは、スロットル弁開度ＴＡのフィードバック制御を実行するか否かを表すフラグであって、その値が「１」であればフィードバック制御を実行し、「０」であればフィードバック制御を実行しないことを示す。後述する通り、ＦＢ実行フラグＸｆｂの値は、アクセルペダル操作量Accp及び車速Ｖがいずれも「０」であり且つ冷却水温度Ｔｗが上記閾値温度Ｔｗｔｈ以上となった場合に「１」に設定される（ステップ２４５を参照。）。
そして、ＣＰＵ７１はステップ２９９に進んで本ルーチンを一旦終了する。
【００６６】
（スロットル弁開度制御）
更に、ＣＰＵ７１は、図３にフローチャートにより示したスロットル弁開度制御ルーチンを、フィードバック制御実行判定ルーチンに続いて実行するようになっている。
【００６７】
従って、フィードバック制御実行判定ルーチンの実行が終了すると、ＣＰＵ７１は、ステップ３００から処理を開始してステップ３０５に進み、アイドル運転フラグＸｉｄｌの値が「１」に設定されているか否かを判定する。
【００６８】
この時点では、アイドル運転フラグＸｉｄｌの値が「１」に設定されているので、ＣＰＵ７１は、ステップ３０５にて「Ｙｅｓ」と判定してステップ３１０に進み、ＦＢ実行フラグＸｆｂの値が「１」であるか否かを判定する。
【００６９】
この時点では、ＦＢ実行フラグＸｆｂの値が「０」に設定されているので、ＣＰＵ７１は、ステップ３１０にて「Ｎｏ」と判定してステップ３１５に進み、フィードバック制御量ＴＡｆｂを「０」に設定する。即ち、スロットル弁開度ＴＡのフィードバック制御は実質的に行われない。
そして、ＣＰＵ７１は、ステップ３２０に進んで学習完了フラグＸｇｄの値が「１」であるか否かを判定する。
【００７０】
この状態においては、上述したように、ＣＰＵ７１が学習読込ルーチンを実行することにより学習完了フラグＸｇｄの値は「１」に設定されている。従って、ＣＰＵ７１は、ステップ３２０にて「Ｙｅｓ」と判定してステップ３２５に進み、初期目標制御量としての初期目標スロットル弁開度ＴＡ０に上記ステップ３１５にて設定されたフィードバック制御量ＴＡｆｂ（ここでは、ＴＡｆｂ＝０）及びＣＰＵ７１が学習読込ルーチンを実行することによりＲＡＭ７３に保持されている学習制御量ＴＡｇを加えた値ＴＡ０＋ＴＡｆｂ＋ＴＡｇ（＝ＴＡ０＋ＴＡｇ＝ＴＡ１）に目標スロットル弁開度（目標制御量）ＴＡｔｇｔを設定する。
【００７１】
ここで、初期目標スロットル弁開度ＴＡ０は、内燃機関１０を始動させるために必要な出力トルクを確保するために比較的多い量の空気が燃焼室２５に導入されるように、実験による測定値に基づいて予め設定されている。従って、後述するように、学習完了条件が成立している状態においては、学習制御量ＴＡｇは負の値となる。
なお、ステップ３１０、ステップ３１５、ステップ３２０及びステップ３２５の処理が実行されることは、学習制御手段の機能の一部が達成されることに対応している。
【００７２】
次いで、ＣＰＵ７１は、ステップ３３０に進んで過去のフィードバック制御量ＴＡｆｂｏｌｄを本ルーチンの今回実行時の上記ステップ３１５にて設定されたフィードバック制御量ＴＡｆｂに設定する。
【００７３】
そして、ＣＰＵ７１は、ステップ３３５に進んでスロットル弁開度ＴＡを上記ステップ３２５にて設定された目標スロットル弁開度ＴＡｔｇｔに一致させるための指示信号をスロットル弁アクチュエータ４５ａに送る。
そして、ＣＰＵ７１はステップ３９９に進んで本ルーチンを一旦終了する。
これにより、各気筒の燃焼室２５内に基準筒内空気量の空気が導入される。
【００７４】
（燃焼開始判定）
更に、ＣＰＵ７１は、図４にフローチャートにより示した燃焼開始判定ルーチンを、スロットル弁開度制御ルーチンに続いて実行するようになっている。
【００７５】
従って、スロットル弁開度制御ルーチンの実行が終了すると、ＣＰＵ７１は、ステップ４００から処理を開始してステップ４０５に進み、燃焼開始フラグＸｂの値が「０」であるか否かを判定する。
【００７６】
ここで、燃焼開始フラグＸｂは、クランキングの開始時点から現時点までの間にいずれかの気筒にて混合ガスの燃焼が発生したか否かを表すフラグであって、その値が「１」であれば発生し、「０」であれば発生しなかったことを示す。後述する通り、燃焼開始フラグＸｂの値は、本ルーチンにおいて第１回転所要時間Ｔ３０が所定の閾値時間δよりも短くなった時に「１」に設定され（ステップ４２０を参照。）、イグニッション・スイッチＩＳがオフ状態からオン状態へ切り替えられた時に「０」に設定される。
【００７７】
従って、この時点では、燃焼開始フラグＸｂの値は「０」であるから、ＣＰＵ７１は、ステップ４０５にて「Ｙｅｓ」と判定してステップ４１０に進み、現時点からクランク角度にて９０°だけ前の時点にてクランクポジションセンサ６６からの信号に基づいて別途算出されていた第１回転所要時間Ｔ３０を読み込む。
【００７８】
次いで、ＣＰＵ７１は、ステップ４１５に進んで上記ステップ４１０にて読み込まれた第１回転所要時間Ｔ３０が閾値時間δよりも短いか否かを判定する。ここで、閾値時間δは、クランキング中に燃焼が発生しないと仮定した場合における第１回転所要時間Ｔ３０の最小値よりも僅かに短い時間に設定されている。
【００７９】
この時点では、混合ガスの燃焼は発生していない。従って、第１回転所要時間Ｔ３０が閾値時間δよりも長いので、ＣＰＵ７１は、ステップ４１５にて「Ｎｏ」と判定してステップ４９９に直接進み本ルーチンを一旦終了する。
【００８０】
（点火時期制御）
更に、ＣＰＵ７１は、図５にフローチャートにより示した点火時期制御ルーチンを、燃焼開始判定ルーチンに続いて実行するようになっている。
【００８１】
従って、燃焼開始判定ルーチンの実行が終了すると、ＣＰＵ７１は、ステップ５００から処理を開始してステップ５０５に進み、アイドル運転フラグＸｉｄｌの値が「１」に設定されているか否かを判定する。
【００８２】
この時点では、アイドル運転フラグＸｉｄｌの値が「１」に設定されているので、ＣＰＵ７１は、ステップ５０５にて「Ｙｅｓ」と判定してステップ５１０に進み、燃焼開始フラグＸｂの値が「１」であるか否かを判定する。
【００８３】
この時点では、燃焼開始フラグＸｂの値が「０」であるから、ＣＰＵ７１は、ステップ５１０にて「Ｎｏ」と判定してステップ５１５に進み、圧縮上死点到来回数Ｎｔｄｃを「１」に設定する。
【００８４】
ここで、圧縮上死点到来回数Ｎｔｄｃは、クランキングの開始後に混合ガスの燃焼が最初に発生した気筒が、その燃焼が発生した燃焼サイクルにおける圧縮上死点を迎えた（ピストン２２が圧縮上死点位置に位置した）時点（初爆時点）以降において本ルーチンを実行した回数（いずれかの気筒が圧縮上死点を迎えた回数）を表す整数である。
【００８５】
次いで、ＣＰＵ７１は、ステップ５２０に進んで後述する図７の第２の点火時期決定ルーチンにて点火時期補正量ΔＳＡを算出するために使用される経過時間Ｔｉを「０」に設定する。ここで、経過時間Ｔｉは、上記初爆時点から現時点（本ルーチンの実行時点、即ち、いずれかの気筒が圧縮上死点を迎える時点）までに経過した時間である。なお、経過時間Ｔｉは、初爆時点から現時点までの期間におけるエンジン回転速度ＮＥの平均値を表すパラメータであると言うこともできる。
【００８６】
そして、ＣＰＵ７１は、ステップ５２５に進んで冷却水温度センサ６８により検出された冷却水温度Ｔｗを読み込む。そして、ＣＰＵ７１は、ステップ５３０に進んで、冷却水温度Ｔｗと基準点火時期としての始動時点火時期ＳＡ０との関係を規定するテーブルMapSA0及び上記ステップ５２５にて読み込まれた冷却水温度Ｔｗに基づいて始動時点火時期ＳＡ０を決定する。ここで、テーブルMapSA0は、冷却水温度Ｔｗが低くなるほど、求められる始動時点火時期ＳＡ０が進角側の時期となるように予め設定されている。
【００８７】
また、以下の説明において、MapX(a)と表記されるテーブルは、変数aと値Xとの関係を規定するテーブルを意味することとする。また、値XをテーブルMapX(a)に基づいて求めるとは、値Xを現時点の変数aと、テーブルMapX(a)と、に基づいて求める（決定する）ことを意味することとする。なお、変数は２つ以上であってもよい。
【００８８】
また、始動時点火時期ＳＡ０は、ＢＴＤＣにより表される。ＢＴＤＣは、気筒毎に定義されている。ＢＴＤＣは、各気筒における圧縮上死点（ＴＤＣ）を原点としクランク軸２４の回転方向と逆方向を正にとったクランク軸２４の回転角度（クランク角度）である。なお、後述する点火時期ＳＡもＢＴＤＣにより表される。
【００８９】
そして、ＣＰＵ７１は、ステップ５３５に進んで圧縮上死点到来回数Ｎｔｄｃが「４」よりも小さいか否かを判定する。この時点では、圧縮上死点到来回数Ｎｔｄｃの値が「１」であるから、ＣＰＵ７１は、ステップ５３５にて「Ｙｅｓ」と判定してステップ５４０に進み、点火時期ＳＡを上記ステップ５３０にて決定された始動時点火時期ＳＡ０に設定する。
【００９０】
次いで、ＣＰＵ７１は、ステップ５４５に進んで上記ステップ５４０にて決定された点火時期ＳＡに応じた指示信号を、現時点にて圧縮上死点を迎えた気筒の次に圧縮上死点を迎える気筒のイグナイタ３８に対して送出する。
そして、ＣＰＵ７１はステップ５９９に進んで本ルーチンを一旦終了する。
【００９１】
（燃料噴射量決定）
一方、ＣＰＵ７１は、図示しない燃料噴射量決定ルーチンを、いずれかの気筒が排気上死点よりもクランク角度にて７５°だけ進角された燃料噴射量決定時点を迎える毎に実行する。
【００９２】
従って、所定のタイミングになると、ＣＰＵ７１は、燃料噴射量決定ルーチンの処理を開始する。ＣＰＵ７１は、圧縮上死点到来回数Ｎｔｄｃが「４」よりも小さい場合、初期燃料噴射量を燃料噴射量として採用する。一方、ＣＰＵ７１は、圧縮上死点到来回数Ｎｔｄｃが「４」以上である場合、エアフローメータ６１により検出された吸気流量Ｇａに基づいて燃料噴射量を決定する。
【００９３】
ここで、初期燃料噴射量は、筒内空気量が基準筒内空気量と相違していても内燃機関１０を始動させるために必要な出力トルクが確保されるように、比較的多い量に設定されている。
そして、ＣＰＵ７１は、決定された燃料噴射量に応じた指示信号を、現時点にて燃料噴射量決定時点を迎えた気筒のインジェクタ３９に対して送出する。
【００９４】
そして、ある気筒（初爆発生気筒）の燃焼室２５にて混合ガスの燃焼が発生する。これにより、図６に示したように、クランク軸２４の回転に伴って（時間の経過に伴って）、エンジン回転速度ＮＥが増加するとともに、冷却水温度Ｔｗが上昇する。
【００９５】
そして、その燃焼が発生した燃焼サイクルにおける圧縮上死点を初爆発生気筒が迎えた時点（初爆時点）からクランク軸２４が１８０°だけ回転した時点になると、ＣＰＵ７１は、再び図４の燃焼開始判定ルーチンの処理を開始してステップ４１５に進む。
【００９６】
この時点では、初爆発生気筒にて混合ガスの燃焼が発生したことにより、クランク軸２４を回転させるトルク（出力トルク）が発生しているので、第１回転所要時間Ｔ３０は上記閾値時間δよりも短くなっている。
【００９７】
従って、ＣＰＵ７１は、ステップ４１５にて「Ｙｅｓ」と判定してステップ４２０に進み、燃焼開始フラグＸｂの値を「１」に設定する。
そして、ＣＰＵ７１はステップ４９９に進んで本ルーチンを一旦終了する。
【００９８】
更に、この時点にて、ＣＰＵ７１が図５の点火時期制御ルーチンの処理を開始してステップ５１０に進んだとき、ＣＰＵ７１は、ステップ５１０にて「Ｙｅｓ」と判定してステップ５５０に進む。
【００９９】
ＣＰＵ７１は、ステップ５５０にて圧縮上死点到来回数Ｎｔｄｃに「１」を加えた値Ｎｔｄｃ＋１に圧縮上死点到来回数Ｎｔｄｃを設定する（圧縮上死点到来回数Ｎｔｄｃに「１」を加えることにより圧縮上死点到来回数Ｎｔｄｃを更新する）。即ち、この時点では、圧縮上死点到来回数Ｎｔｄｃは「２」に設定される。
【０１００】
次いで、ＣＰＵ７１は、ステップ５５５に進んでクランクポジションセンサ６６からの信号に基づいて別途算出されている第２回転所要時間Ｔ１８０を読み込む（取得する）。そして、ＣＰＵ７１は、ステップ５６０に進んで経過時間Ｔｉに上記ステップ５５５にて読み込まれた第２回転所要時間Ｔ１８０を加えた値Ｔｉ＋Ｔ１８０に経過時間Ｔｉを設定する。
【０１０１】
次いで、ＣＰＵ７１は、ステップ５２５以降のステップに進んで、始動時点火時期ＳＡ０に応じた指示信号を、現時点にて圧縮上死点を迎えた気筒の次に圧縮上死点を迎える気筒のイグナイタ３８に対して送出した後、図５のルーチンを一旦終了する。
【０１０２】
そして、クランク軸２４が更に１８０°だけ回転すると、ＣＰＵ７１は、上述した場合と同様の処理を実行する。従って、この時点においては、ステップ５５０の処理が実行されることにより、圧縮上死点到来回数Ｎｔｄｃは「３」になる。
【０１０３】
そして、クランク軸２４が更に１８０°だけ回転すると、ステップ５５０の処理が実行されることにより圧縮上死点到来回数Ｎｔｄｃが「４」となるので、ＣＰＵ７１がステップ５３５に進んだとき、ＣＰＵ７１は、ステップ５３５にて「Ｎｏ」と判定してステップ５６５に進み、圧縮上死点到来回数Ｎｔｄｃが「８」よりも小さいか否かを判定する。なお、本例では、圧縮上死点到来回数Ｎｔｄｃが「４」以上の値であって「８」よりも小さい値に設定されている期間は、始動初期期間とも呼ばれる期間である。
【０１０４】
圧縮上死点到来回数Ｎｔｄｃは「４」であるから、ＣＰＵ７１は、ステップ５６５にて「Ｙｅｓ」と判定してステップ５７０に進み、経過時間Ｔｉに基づいて点火時期を補正するため、図７のフローチャートに示した第２の点火時期決定ルーチンのステップ７００に進む。
【０１０５】
ＣＰＵ７１は、ステップ７０５に進んで学習完了フラグＸｇｄの値が「１」であるか否かを判定する。この時点では、学習完了フラグＸｇｄの値は「１」であるから、ＣＰＵ７１は、ステップ７０５にて「Ｙｅｓ」と判定してステップ７１０に進む。なお、ステップ７０５の処理が実行されることは、空気量判定手段の機能が達成されることに対応している。
【０１０６】
ＣＰＵ７１は、ステップ７１０にて補正係数Ｋを正の第１の補正係数Ｋ１に設定するとともに、遅角限界クランク角ＧＤＲを第１の遅角限界クランク角ＧＤＲ１に設定する。
次いで、ＣＰＵ７１は、ステップ７１５に進んで冷却水温度センサ６８により検出された冷却水温度Ｔｗを読み込む。
【０１０７】
次いで、ＣＰＵ７１は、ステップ７２０に進んでテーブルMapTref(Ntdc,Tw)に基づいて基準経過時間Ｔｒｅｆを決定する。
【０１０８】
ここで、基準経過時間Ｔｒｅｆは、学習完了条件が成立した状態にて算出された学習制御量ＴＡｇがバックアップＲＡＭ７４に保持されていた場合（即ち、筒内空気量が基準筒内空気量であるという条件が成立している場合）であって、内燃機関１０に供給されることが想定される燃料のうちの最も霧化しにくい燃料（最重質燃料）を使用し且つ始動時点火時期ＳＡ０にて混合ガスが点火された場合における経過時間である。
【０１０９】
なお、基準経過時間Ｔｒｅｆは、この場合に取得されるエンジン回転速度ＮＥである基準エンジン回転速度の、初爆時点から現時点までの期間における平均値を表すパラメータであると言うこともできる。テーブルMapTref(Ntdc,Tw)は、実験による測定値に基づいて予め設定されている。
【０１１０】
そして、ＣＰＵ７１は、ステップ７２５に進んで上記ステップ７２０にて決定された基準経過時間Ｔｒｅｆから図５のステップ５６０にて算出された経過時間Ｔｉを減じた値Ｔｒｅｆ−Ｔｉに上記ステップ７１０にて設定された補正係数Ｋを乗じた値Ｋ・（Ｔｒｅｆ−Ｔｉ）を点火時期補正量ΔＳＡに設定する。即ち、点火時期補正量ΔＳＡは、経過時間Ｔｉが基準経過時間Ｔｒｅｆよりも短くなるほど大きくなる量である（即ち、エンジン回転速度ＮＥの平均値が基準エンジン回転速度の平均値よりも高くなるほど大きくなる量である。）。なお、ステップ７１０にて設定された補正係数Ｋ（即ち、第１の補正係数Ｋ１）を用いて算出された点火時期補正量ΔＳＡは、第１の点火時期補正量とも呼ばれる量である。
【０１１１】
図８は、圧縮上死点到来回数Ｎｔｄｃに対する経過時間Ｔｉ及び基準経過時間Ｔｒｅｆの変化を示したグラフである。図８の三角のプロットＭ１は、経過時間Ｔｉの変化を示している。図８の丸のプロットＭ２は、基準経過時間Ｔｒｅｆの変化を示している。図８の四角のプロットＭ３は、基準経過時間Ｔｒｅｆから経過時間Ｔｉを減じた値Ｔｒｅｆ−Ｔｉの変化を示している。
【０１１２】
この状態においては、軽質燃料が使用されているので、図８に示したように、経過時間Ｔｉは基準経過時間Ｔｒｅｆよりも短い。従って、値Ｔｒｅｆ−Ｔｉが正の値となるので、点火時期補正量ΔＳＡは正の値である。
【０１１３】
次いで、ＣＰＵ７１は、ステップ７３０に進んで、図５のステップ５３０にて決定された始動時点火時期ＳＡ０から上記ステップ７２５にて算出された点火時期補正量ΔＳＡを減じた値ＳＡ０−ΔＳＡに点火時期ＳＡを設定する。即ち、ここでは、点火時期ＳＡは、始動時点火時期ＳＡ０を点火時期補正量ΔＳＡだけ遅角側に補正した時期に設定される。
このように、経過時間Ｔｉが基準経過時間Ｔｒｅｆよりも短い場合、即ち、エンジン回転速度ＮＥの平均値が基準エンジン回転速度の平均値よりも高い場合、始動時点火時期ＳＡ０が遅角側に補正されることにより点火時期ＳＡが決定される。
【０１１４】
そして、ＣＰＵ７１は、ステップ７３５に進んで上記ステップ７３０にて算出された点火時期ＳＡが上記ステップ７１０にて設定された遅角限界クランク角ＧＤＲよりも小さいか否かを判定する。
【０１１５】
この状態においては、点火時期補正量ΔＳＡはそれほど大きくないので、点火時期ＳＡは遅角限界クランク角ＧＤＲよりも大きい。従って、ＣＰＵ７１は、ステップ７３５にて「Ｎｏ」と判定してステップ７９９に直接進み本ルーチンを一旦終了する。
【０１１６】
なお、ステップ７４０にて点火時期ＳＡが遅角限界クランク角ＧＤＲに設定された場合には、始動時点火時期ＳＡ０から遅角限界クランク角ＧＤＲを減じた値が実質的な点火時期補正量ΔＳＡである。従って、この場合、始動時点火時期ＳＡ０からステップ７１０にて設定された遅角限界クランク角ＧＤＲ（即ち、第１の遅角限界クランク角ＧＤＲ１）を減じた値が第１の点火時期補正量とも呼ばれる量である。
【０１１７】
加えて、ステップ７０５〜ステップ７４０の処理が実行されることは、第１の点火時期補正手段の機能が達成されることに対応している。
【０１１８】
上述した場合と同様の処理は、図５のステップ５５０の処理の実行が完了した時点にて設定されている圧縮上死点到来回数Ｎｔｄｃが「８」よりも小さい間、クランク軸２４の回転に伴って繰り返し実行される。従って、この間、上述した場合と同様に、点火時期ＳＡは、基準経過時間Ｔｒｅｆから経過時間Ｔｉを減じた値Ｔｒｅｆ−Ｔｉに比例する点火時期補正量ΔＳＡだけ始動時点火時期ＳＡ０を遅角側に補正した時期に設定される。
【０１１９】
但し、ステップ７３０にて設定された点火時期ＳＡが遅角限界クランク角ＧＤＲよりも小さくなった場合（図６に示した例においては、Ｎｔｄｃ＝７のとき）、ＣＰＵ７１は、図７のステップ７３５に進んだとき、ステップ７３５にて「Ｙｅｓ」と判定してステップ７４０に進み、点火時期ＳＡを遅角限界クランク角ＧＤＲに設定する。
【０１２０】
そして、図５のステップ５５０の処理の実行が完了した時点にて設定されている圧縮上死点到来回数Ｎｔｄｃが「８」以上になると、ＣＰＵ７１は、ステップ５６５に進んだとき、ステップ５６５にて「Ｎｏ」と判定してステップ５７５に進み、エンジン回転速度ＮＥに基づいて点火時期を補正するため、図９のフローチャートに示した第３の点火時期決定ルーチンのステップ９００に進む。
【０１２１】
ＣＰＵ７１は、ステップ９０５に進んでクランクポジションセンサ６６からの信号に基づいて別途算出されているエンジン回転速度ＮＥを読み込む。次いで、ＣＰＵ７１は、ステップ９１０に進んで上記ステップ９０５にて読み込んだエンジン回転速度ＮＥが所定の目標エンジン回転速度ＮＥｒｅｆ（本例では、１０００ｒｐｍ）よりも低いか否かを判定する。
【０１２２】
ＣＰＵ７１は、エンジン回転速度ＮＥが目標エンジン回転速度ＮＥｒｅｆよりも低い場合、ＣＰＵ７１は、ステップ９１０にて「Ｙｅｓ」と判定してステップ９１５に進み、図５の点火時期制御ルーチンの前回実行時にて決定された点火時期ＳＡに予め設定された正の点火時期補正量ΔＳＡ１を加えることにより点火時期ＳＡを進角側に補正する。
【０１２３】
一方、エンジン回転速度ＮＥが目標エンジン回転速度ＮＥｒｅｆ以上である場合、ＣＰＵ７１は、ステップ９１０にて「Ｎｏ」と判定してステップ９２０に進み、図５の点火時期制御ルーチンの前回実行時にて決定された点火時期ＳＡから上記点火時期補正量ΔＳＡ１を減じることにより点火時期ＳＡを遅角側に補正する。
【０１２４】
次いで、ＣＰＵ７１は、ステップ９２５に進んで上記ステップ９１５又はステップ９２０にて補正された点火時期ＳＡが予め設定された進角限界クランク角ＧＤＡよりも大きい（進角限界クランク角ＧＤＡよりも進角側の時期である）か否かを判定する。そして、ＣＰＵ７１は、点火時期ＳＡが進角限界クランク角ＧＤＡよりも大きい場合にはステップ９２５にて「Ｙｅｓ」と判定してステップ９３０に進み、点火時期ＳＡを進角限界クランク角ＧＤＡに設定する。
【０１２５】
次いで、ＣＰＵ７１は、ステップ９３５に進んで上記ステップ９１５又はステップ９２０にて補正された点火時期ＳＡが図７の第２の点火時期決定ルーチンにおいて設定された遅角限界クランク角ＧＤＲよりも小さい（遅角限界クランク角ＧＤＲよりも遅角側の時期である）か否かを判定する。そして、ＣＰＵ７１は、点火時期ＳＡが遅角限界クランク角ＧＤＲよりも小さい場合にはステップ９３５にて「Ｙｅｓ」と判定してステップ９４０に進み、点火時期ＳＡを遅角限界クランク角ＧＤＲに設定する。
次いで、ＣＰＵ７１はステップ９９９に進んで本ルーチンを一旦終了する。
【０１２６】
そして、時間の経過に伴って、冷却水温度Ｔｗが上昇する。そして、圧縮上死点到来回数Ｎｔｄｃが「Ｎｔｄｃ１」となる時点（図６を参照。）にて冷却水温度Ｔｗが閾値温度Ｔｗｔｈ以上となる。
【０１２７】
従って、この時点にてＣＰＵ７１が図２のフィードバック制御実行判定ルーチンの処理を開始してステップ２３５に進んだとき、ＣＰＵ７１は、同ステップ２３５にて「Ｙｅｓ」と判定してステップ２４５に進む。ＣＰＵ７１は、ステップ２４５にてＦＢ実行フラグＸｆｂの値を「１」に設定し、続くステップ２９９にて本ルーチンを一旦終了する。
【０１２８】
この状態において、ＣＰＵ７１が図３のスロットル弁開度制御ルーチンの処理を開始してステップ３１０に進んだとき、ＣＰＵ７１は、ステップ３１０にて「Ｙｅｓ」と判定してステップ３４０に進み、フィードバック制御量ＴＡｆｂを算出するため、図１０のフローチャートに示したフィードバック制御量算出ルーチンのステップ１０００に進む。なお、図１０のルーチンの処理が実行されることは、フィードバック制御手段の機能の一部が達成されることに対応している。
【０１２９】
次いで、ＣＰＵ７１は、ステップ１００５に進んでクランクポジションセンサ６６からの信号に基づいて別途算出されているエンジン回転速度ＮＥを読み込むとともに、続くステップ１０１０にてクランクポジションセンサ６６からの信号に基づいて別途算出されている第２回転所要時間Ｔ１８０を読み込む。
【０１３０】
そして、ＣＰＵ７１は、ステップ１０１５に進んで目標エンジン回転速度ＮＥｒｅｆから上記ステップ１００５にて読み込んだエンジン回転速度ＮＥを減じた値ＮＥｒｅｆ−ＮＥに回転速度差ＤＮＥを設定する。
【０１３１】
次いで、ＣＰＵ７１は、ステップ１０２０に進んで、上記ステップ１０１５にて設定された回転速度差ＤＮＥに上記ステップ１０１０にて読み込まれた第２回転所要時間Ｔ１８０を乗じた値ＤＮＥ・Ｔ１８０を本ルーチンの前回実行時にて算出された回転速度差積算値ＳＤＮＥに加えた値ＳＤＮＥ＋ＤＮＥ・Ｔ１８０に回転速度差積算値ＳＤＮＥを設定する。
【０１３２】
ここで、回転速度差積算値ＳＤＮＥは、イグニッション・スイッチＩＳがオフ状態からオン状態へ切り替えられた時に「０」に設定される。従って、この時点では、回転速度差積算値ＳＤＮＥは、値ＤＮＥ・Ｔ１８０である。
【０１３３】
次いで、ＣＰＵ７１は、ステップ１０２５に進んで、予め設定された比例係数Ｋｐに上記ステップ１０１５にて設定された回転速度差ＤＮＥを乗じた値Ｋｐ・ＤＮＥと、予め設定された積分係数Ｋｉに上記ステップ１０２０にて設定された回転速度差積算値ＳＤＮＥを乗じた値Ｋｉ・ＳＤＮＥと、の和Ｋｐ・ＤＮＥ＋Ｋｉ・ＳＤＮＥにフィードバック制御量ＴＡｆｂを設定する。後述するように、このフィードバック制御量ＴＡｆｂを用いてスロットル弁開度ＴＡが制御される。即ち、スロットル弁開度ＴＡはＰＩ制御される。
【０１３４】
そして、ＣＰＵ７１は、ステップ１０３０に進んで、目標エンジン回転速度ＮＥｒｅｆとエンジン回転速度ＮＥとの差の大きさ｜ＮＥｒｅｆ−ＮＥ｜が所定の閾値α１よりも小さく、且つ、上記ステップ１０２５にて設定されたフィードバック制御量ＴＡｆｂと図３のスロットル弁開度制御ルーチンの前回実行時にてステップ３３０にて設定された過去のフィードバック制御量ＴＡｆｂｏｌｄとの差の大きさ｜ＴＡｆｂ−ＴＡｆｂｏｌｄ｜が所定の閾値β１よりも小さいという学習実行条件が成立しているか否かを判定する。
【０１３５】
この状態においては、学習制御量ＴＡｇが適切に設定されているので、値｜ＮＥｒｅｆ−ＮＥ｜及び値｜ＴＡｆｂ−ＴＡｆｂｏｌｄ｜のいずれもが略０である。従って、ＣＰＵ７１は、ステップ１０３０にて「Ｙｅｓ」と判定してステップ１０３５に進み、学習制御量ＴＡｇを算出するため、図１１のフローチャートに示した学習制御量算出ルーチンのステップ１１００に進む。なお、図１１の学習制御量算出ルーチンの処理が実行されることは、学習制御手段の機能の一部が達成されることに対応している。
【０１３６】
次いで、ＣＰＵ７１は、ステップ１１０５に進んで、図１０のステップ１０２５にて設定されたフィードバック制御量ＴＡｆｂを本ルーチンの前回実行時にて算出された積算量Ｉｇに加えることにより積算量Ｉｇを更新する。積算量Ｉｇは、イグニッション・スイッチＩＳがオフ状態からオン状態へ切り替えられた時に「０」に設定される。
【０１３７】
そして、ＣＰＵ７１は、ステップ１１１０に進んで、本ルーチンの前回実行時にて算出された積算回数Ｎｓに「１」を加えることにより積算回数Ｎｓを更新する。積算回数Ｎｓは、イグニッション・スイッチＩＳがオフ状態からオン状態へ切り替えられた時に「０」に設定される。
次いで、ＣＰＵ７１は、ステップ１１１５に進んで、上記ステップ１１１０にて更新された積算回数Ｎｓが所定の閾値回数Ｎｓｔｈ（本例では、「１０」）以上であるか否かを判定する。
【０１３８】
この時点では、積算回数Ｎｓは「１」であるから、ＣＰＵ７１は、ステップ１１１５にて「Ｎｏ」と判定してステップ１１９９を経由して図１０のステップ１０４０に進む。
ＣＰＵ７１は、ステップ１０４０にて目標エンジン回転速度ＮＥｒｅｆとエンジン回転速度ＮＥとの差の大きさ｜ＮＥｒｅｆ−ＮＥ｜が上記閾値α１よりも小さい閾値α２よりも小さく、且つ、ステップ１０２５にて設定されたフィードバック制御量ＴＡｆｂの大きさ｜ＴＡｆｂ｜が所定の閾値β２よりも小さいという学習完了条件が成立しているか否かを判定する。
【０１３９】
この状態においては、学習制御量ＴＡｇが負の適切な値に設定されているので、値｜ＮＥｒｅｆ−ＮＥ｜及び値｜ＴＡｆｂ｜のいずれもが略０である。従って、ＣＰＵ７１は、ステップ１０４０にて「Ｙｅｓ」と判定してステップ１０４５に進み、学習完了フラグＸｇｄの値を「１」に設定する。即ち、学習完了フラグＸｇｄの値は「１」に維持される。
【０１４０】
そして、ＣＰＵ７１は、ステップ１０９９を経由して図３のステップ３２０以降のステップに進んで、図１０のステップ１０２５にて設定されたフィードバック制御量ＴＡｆｂを用いて目標スロットル弁開度ＴＡｔｇｔを決定するとともに、スロットル弁開度ＴＡを決定された目標スロットル弁開度ＴＡｔｇｔに一致させるための指示信号をスロットル弁アクチュエータ４５ａに送出した後、図３のルーチンを一旦終了する。
【０１４１】
なお、ステップ３１０、ステップ３４０及びステップ３２５（又はステップ３６０）の処理が実行されることは、フィードバック制御手段の機能の一部が達成されることに対応している。
【０１４２】
そして、クランク軸２４の回転に伴って、上述した場合と同様の処理が繰り返し実行される。従って、ＣＰＵ７１がステップ１１１０の処理を実行することにより積算回数Ｎｓが増加する。
【０１４３】
その結果、積算回数Ｎｓが閾値回数Ｎｓｔｈ以上となると、ＣＰＵ７１は、ステップ１１１５に進んだとき、ステップ１１１５にて「Ｙｅｓ」と判定してステップ１１２０に進み、積算量Ｉｇを積算回数Ｎｓによって除した値Ｉｇ／Ｎｓを学習制御量ＴＡｇに加えた値ＴＡｇ＋Ｉｇ／Ｎｓに学習制御量ＴＡｇを設定する。
【０１４４】
次いで、ＣＰＵ７１は、ステップ１１２５に進んで、積分係数Ｋｉを積算回数Ｎｓに乗じた値Ｋｉ・Ｎｓによって積算量Ｉｇを除した値Ｉｇ／（Ｋｉ・Ｎｓ）を回転速度差積算値ＳＤＮＥから減じた値ＳＤＮＥ−Ｉｇ／（Ｋｉ・Ｎｓ）に回転速度差積算値ＳＤＮＥを設定する。
【０１４５】
そして、ＣＰＵ７１は、ステップ１１３０に進んで積算量Ｉｇを「０」に設定するとともに積算回数Ｎｓを「０」に設定する。
その後、ＣＰＵ７１はステップ１１９９に進んで図１１のルーチンを一旦終了する。
【０１４６】
その後、運転者がアクセルペダル８１を操作することによりアクセルペダル操作量Accpが「０」よりも大きくなった時点にてＣＰＵ７１が図２のフィードバック制御実行判定ルーチンの処理を開始してアクセルペダル操作量Accpが「０」であるか否かを判定するステップ２１０に進んだとき、ＣＰＵ７１は、ステップ２１０にて「Ｎｏ」と判定してステップ２５０に進む。
【０１４７】
ＣＰＵ７１は、ステップ２５０にてアイドル運転フラグＸｉｄｌの値を「０」に設定するとともに、続くステップ２４０に進んでＦＢ実行フラグＸｆｂの値を「０」に設定する。そして、ＣＰＵ７１はステップ２９９に進んで本ルーチンを一旦終了する。
【０１４８】
更に、ＣＰＵ７１が図３のスロットル弁開度制御ルーチンの処理を開始して、アイドル運転フラグＸｉｄｌの値が「１」であるか否かを判定するステップ３０５に進んだとき、ＣＰＵ７１は、ステップ３０５にて「Ｎｏ」と判定してステップ３４５に進む。
【０１４９】
ＣＰＵ７１は、ステップ３４５にてアクセル開度センサ６７により検出されたアクセルペダル操作量Accpを読み込むとともに、続くステップ３５０にてクランクポジションセンサ６６からの信号に基づいて別途算出されているエンジン回転速度ＮＥを読み込む。次いで、ＣＰＵ７１は、ステップ３５５に進んでテーブルMapTAtgt(Accp,NE)に基づいて目標スロットル弁開度ＴＡｔｇｔを決定する。
【０１５０】
次いで、ＣＰＵ７１は、ステップ３３５に進んで、スロットル弁開度ＴＡを上記ステップ３５５にて決定された目標スロットル弁開度ＴＡｔｇｔに一致させるための指示信号をスロットル弁アクチュエータ４５ａに送る。
そして、ＣＰＵ７１はステップ３９９に進んで本ルーチンを一旦終了する。
【０１５１】
加えて、ＣＰＵ７１が図５の点火時期制御ルーチンの処理を開始して、アイドル運転フラグＸｉｄｌの値が「１」であるか否かを判定するステップ５０５に進んだとき、ＣＰＵ７１は、ステップ５０５にて「Ｎｏ」と判定してステップ５８０に進む。
【０１５２】
ＣＰＵ７１は、ステップ５８０にてアクセル開度センサ６７により検出されたアクセルペダル操作量Accpを読み込むとともに、続くステップ５８５にてクランクポジションセンサ６６からの信号に基づいて別途算出されているエンジン回転速度ＮＥを読み込む。次いで、ＣＰＵ７１は、ステップ５９０に進んでテーブルMapSA(Accp,NE)に基づいて点火時期ＳＡを決定する。
【０１５３】
次いで、ＣＰＵ７１は、ステップ５４５に進んで、上記ステップ５９０にて決定された点火時期ＳＡに応じた指示信号を、現時点にて圧縮上死点を迎えた気筒の次に圧縮上死点を迎える気筒のイグナイタ３８に対して送出する。
そして、ＣＰＵ７１はステップ５９９に進んで本ルーチンを一旦終了する。
【０１５４】
その後、内燃機関１０の運転が停止することを運転者が希望した場合、運転者は、イグニッション・スイッチＩＳをオン状態からオフ状態へ切り替える。
【０１５５】
一方、ＣＰＵ７１は、イグニッション・スイッチＩＳがオン状態からオフ状態へ切り替えられたとき、バッテリＢＴからのＣＰＵ７１、ＲＯＭ７２、ＲＡＭ７３及びインターフェース７５への電力の供給が停止される前に図示しない学習書出ルーチンを実行する。
【０１５６】
具体的には、ＣＰＵ７１は、ＲＡＭ７３に保持されている学習制御量ＴＡｇ及び学習完了フラグＸｇｄをバックアップＲＡＭ７４に記憶させることによりバックアップＲＡＭ７４に保持させる。なお、学習書出ルーチンの処理が実行されることは、学習制御手段の機能の一部が達成されることに対応している。
【０１５７】
上述したように、バックアップＲＡＭ７４に保持されている学習制御量ＴＡｇ及び学習完了フラグＸｇｄは、イグニッション・スイッチＩＳがオフ状態からオン状態へ切り替えられた時にＣＰＵ７１が学習読込ルーチンを実行することによってＲＡＭ７３に保持されるデータである。
【０１５８】
（学習制御量が消去された場合）
次に、バッテリＢＴを交換する際にバッテリＢＴが電気制御装置７０から一時的に取り外されたことにより、バックアップＲＡＭ７４に保持されていた学習制御量ＴＡｇ及び学習完了フラグＸｇｄが消去された（それぞれの値が「０」に初期化された）場合であって、燃料タンクＦＴに最重質燃料が充填された状態において内燃機関１０の運転が開始することを運転者が希望する場合について説明する。
【０１５９】
この場合、運転者は、イグニッション・スイッチＩＳをオフ状態からオン状態へ切り替える。これにより、クランキングが開始する。
【０１６０】
一方、ＣＰＵ７１は、イグニッション・スイッチＩＳがオフ状態からオン状態へ切り替えられた時、学習読込ルーチンを実行する。この状態においては、ＣＰＵ７１は、学習制御量ＴＡｇ及び学習完了フラグＸｇｄのそれぞれの値が「０」であることを表すデータをＲＡＭ７３に保持させる（学習制御量ＴＡｇ及び学習完了フラグＸｇｄのそれぞれを「０」に設定する）。
【０１６１】
また、ＣＰＵ７１は、上述したように、所定のタイミングにて図２のフィードバック制御実行判定ルーチンの処理を実行する。
具体的には、ＣＰＵ７１は、アクセルペダル操作量Accpが「０」であるか否かを判定するステップ２１０及び車速Ｖが「０」であるか否かを判定するステップ２２０にて「Ｙｅｓ」と判定して、ステップ２２５にてアイドル運転フラグＸｉｄｌの値を「１」に設定する。更に、ＣＰＵ７１は、冷却水温度Ｔｗが閾値温度Ｔｗｔｈ以上であるか否かを判定するステップ２３５にて「Ｎｏ」と判定してステップ２４０にてＦＢ実行フラグＸｆｂの値を「０」に設定する。
【０１６２】
加えて、ＣＰＵ７１は、図３のスロットル弁開度制御ルーチンの処理を実行する。
具体的には、ＣＰＵ７１は、アイドル運転フラグＸｉｄｌの値が「１」であるか否かを判定するステップ３０５にて「Ｙｅｓ」と判定し、且つ、ＦＢ実行フラグＸｆｂの値が「１」であるか否かを判定するステップ３１０にて「Ｎｏ」と判定して、ステップ３１５にてＴＡｆｂを「０」に設定する。
【０１６３】
更に、ＣＰＵ７１は、学習完了フラグＸｇｄの値が「１」であるか否かを判定するステップ３２０にて「Ｎｏ」と判定して、ステップ３６０にて初期目標スロットル弁開度ＴＡ０にフィードバック制御量ＴＡｆｂ（＝０）を加えた値ＴＡ０＋ＴＡｆｂ（＝ＴＡ０）に目標スロットル弁開度ＴＡｔｇｔを設定する。即ち、初期目標スロットル弁開度ＴＡ０が目標スロットル弁開度ＴＡｔｇｔとして採用される。なお、ステップ３２０、ステップ３２５及びステップ３６０の処理が実行されることは、始動時目標制御量設定手段の機能の一部が達成されることに対応している。
【０１６４】
そして、ＣＰＵ７１は、ステップ３３５にてスロットル弁開度ＴＡを上記ステップ３６０にて設定された目標スロットル弁開度ＴＡｔｇｔに一致させるための指示信号をスロットル弁アクチュエータ４５ａに送る。
【０１６５】
上述したように、初期目標スロットル弁開度ＴＡ０は、内燃機関１０を始動させるために必要な出力トルクを確保するために比較的多い量の空気が燃焼室２５に導入されるように設定されている。また、学習完了条件が成立している場合には、学習制御量ＴＡｇは負の値となる。ところで、この状態においては、学習完了条件が成立していない。従って、学習制御量ＴＡｇに基づいて目標スロットル弁開度ＴＡｔｇｔが決定される場合よりもスロットル弁開度ＴＡが大きくされるので、各気筒の燃焼室２５内に基準筒内空気量よりも多い量の空気が導入される。
【０１６６】
また、ＣＰＵ７１は、図４の燃焼開始判定ルーチンの処理を実行する。
具体的には、ＣＰＵ７１は、燃焼開始フラグＸｂの値が「０」であるか否かを判定するステップ４０５にて「Ｙｅｓ」と判定し、且つ、第１回転所要時間Ｔ３０が閾値時間δよりも短いか否かを判定するステップ４１５にて「Ｎｏ」と判定する。従って、燃焼開始フラグＸｂの値は「０」に維持される。
【０１６７】
更に、ＣＰＵ７１は、図５の点火時期制御ルーチンの処理を実行する。
具体的には、ＣＰＵ７１は、アイドル運転フラグＸｉｄｌの値が「１」であるか否かを判定するステップ５０５にて「Ｙｅｓ」と判定し、且つ、燃焼開始フラグＸｂの値が「１」であるか否かを判定するステップ５１０にて「Ｎｏ」と判定して、ステップ５１５にて圧縮上死点到来回数Ｎｔｄｃを「１」に設定するとともにステップ５２０にて経過時間Ｔｉを「０」に設定する。
【０１６８】
更に、ＣＰＵ７１は、圧縮上死点到来回数Ｎｔｄｃが「４」よりも小さいか否かを判定するステップ５３５にて「Ｙｅｓ」と判定して、ステップ５４０にて点火時期ＳＡを冷却水温度Ｔｗに基づいて決定された始動時点火時期ＳＡ０に設定する。
【０１６９】
そして、ステップ５４５にて、ＣＰＵ７１は、上記ステップ５４０にて決定された点火時期ＳＡに応じた指示信号を、現時点にて圧縮上死点を迎えた気筒の次に圧縮上死点を迎える気筒のイグナイタ３８に対して送出する。
【０１７０】
そして、ある気筒（初爆発生気筒）の燃焼室２５にて混合ガスの燃焼が発生する。これにより、図１２に示したように、クランク軸２４の回転に伴って、エンジン回転速度ＮＥが増加するとともに、冷却水温度Ｔｗが上昇する。
【０１７１】
そして、その燃焼が発生した燃焼サイクルにおける圧縮上死点を初爆発生気筒が迎えた時点（初爆時点）からクランク軸２４が１８０°だけ回転した時点になる。
【０１７２】
この時点では、初爆発生気筒にて混合ガスの燃焼が発生したことにより、クランク軸２４を回転させるトルク（出力トルク）が発生しているので、第１回転所要時間Ｔ３０は上記閾値時間δよりも短くなっている。
【０１７３】
従って、ＣＰＵ７１が図４の燃焼開始判定ルーチンの処理を開始すると、ＣＰＵ７１は、第１回転所要時間Ｔ３０が閾値時間δよりも短いか否かを判定するステップ４１５にて「Ｙｅｓ」と判定して、ステップ４２０にて燃焼開始フラグＸｂの値を「１」に設定する。
【０１７４】
更に、ＣＰＵ７１が図５の点火時期制御ルーチンの処理を開始すると、ＣＰＵ７１は、ステップ５０５及びステップ５１０にて「Ｙｅｓ」と判定することによりステップ５５０〜ステップ５６０の処理を実行して、圧縮上死点到来回数Ｎｔｄｃに「１」を加算するとともに経過時間Ｔｉに第２回転所要時間Ｔ１８０を加算する。
【０１７５】
そして、ＣＰＵ７１は、ステップ５２５〜ステップ５４５の処理を実行して、冷却水温度Ｔｗに基づいて決定された始動時点火時期ＳＡ０に点火時期ＳＡを設定し設定された点火時期ＳＡに応じた指示信号を、現時点にて圧縮上死点を迎えた気筒の次に圧縮上死点を迎える気筒のイグナイタ３８に対して送出する。
【０１７６】
そして、クランク軸２４が更に１８０°だけ回転すると、ＣＰＵ７１は、上述した場合と同様の処理を実行する。従って、この時点においては、ステップ５５０の処理が実行されることにより、圧縮上死点到来回数Ｎｔｄｃは「３」になる。
【０１７７】
そして、クランク軸２４が更に１８０°だけ回転すると、ＣＰＵ７１がステップ５５０の処理を実行することにより圧縮上死点到来回数Ｎｔｄｃは「４」となる。従って、ＣＰＵ７１は、圧縮上死点到来回数Ｎｔｄｃが「４」よりも小さいか否かを判定するステップ５３５にて「Ｎｏ」と判定し、且つ、圧縮上死点到来回数Ｎｔｄｃが「８」よりも小さいか否かを判定するステップ５６５にて「Ｙｅｓ」と判定して、ステップ５７０にて図７の第２の点火時期決定ルーチンの処理を開始する。
【０１７８】
この時点では、学習完了フラグＸｇｄの値は「０」である。従って、ＣＰＵ７１は、学習完了フラグＸｇｄの値が「１」であるか否かを判定するステップ７０５にて「Ｎｏ」と判定してステップ７４５に進む。
【０１７９】
なお、上述したように、目標スロットル弁開度ＴＡｔｇｔを決定するために学習制御量ＴＡｇが用いられるか否かは、学習完了フラグＸｇｄの値が「１」であるか否かによって決定される（図３のステップ３２０）。従って、ステップ７０５の処理は、筒内空気量が基準筒内空気量よりも多くなる空気量条件が成立しているか否かを判定していると言うこともできる。
【０１８０】
ＣＰＵ７１は、ステップ７４５にて補正係数Ｋを第１の補正係数Ｋ１よりも小さい正の第２の補正係数Ｋ２に設定するとともに、遅角限界クランク角ＧＤＲを第１の遅角限界クランク角ＧＤＲ１よりも進角側の第２の遅角限界クランク角ＧＤＲ２に設定する。
【０１８１】
次いで、ＣＰＵ７１は、ステップ７１５以降のステップに進んで、基準経過時間Ｔｒｅｆから経過時間Ｔｉを減じた値Ｔｒｅｆ−Ｔｉに上記ステップ７４５にて設定された補正係数Ｋを乗じた値Ｋ・（Ｔｒｅｆ−Ｔｉ）を点火時期補正量ΔＳＡに設定するとともに、始動時点火時期ＳＡ０から点火時期補正量ΔＳＡを減じた値ＳＡ０−ΔＳＡに点火時期ＳＡを設定する。
【０１８２】
なお、ステップ７４５にて設定された補正係数Ｋ（即ち、第２の補正係数Ｋ２）を用いて算出された点火時期補正量ΔＳＡは、第２の点火時期補正量とも呼ばれる量である。また、ステップ７４０にて点火時期ＳＡが遅角限界クランク角ＧＤＲに設定された場合、始動時点火時期ＳＡ０からステップ７４５にて設定された遅角限界クランク角ＧＤＲ（即ち、第２の遅角限界クランク角ＧＤＲ２）を減じた値が第２の点火時期補正量とも呼ばれる量である。
【０１８３】
上述したように、第２の補正係数Ｋ２は、第１の補正係数Ｋ１よりも小さく、且つ、第２の遅角限界クランク角ＧＤＲ２は、第１の遅角限界クランク角ＧＤＲ１よりも進角側のクランク角度である。従って、第２の点火時期補正量は、ステップ７１０にて補正係数Ｋが第１の補正係数Ｋ１に設定されるとともに遅角限界クランク角ＧＤＲが第１の遅角限界クランク角ＧＤＲ１に設定されると仮定した場合に設定される第１の点火時期補正量よりも小さい。
【０１８４】
また、ステップ７０５、ステップ７１５〜ステップ７４０及びステップ７４５の処理が実行されることは、第２の点火時期補正手段の機能が達成されることに対応している。
【０１８５】
上述した場合と同様の処理は、図５のステップ５５０の処理の実行が完了した時点にて設定されている圧縮上死点到来回数Ｎｔｄｃが「８」よりも小さい間、クランク軸２４の回転に伴って繰り返し実行される。従って、この間、上述した場合と同様に、点火時期ＳＡは、基準経過時間Ｔｒｅｆから経過時間Ｔｉを減じた値Ｔｒｅｆ−Ｔｉに比例する点火時期補正量ΔＳＡだけ始動時点火時期ＳＡ０を遅角側に補正した時期に設定される。
【０１８６】
但し、ステップ７３０にて設定された点火時期ＳＡが遅角限界クランク角ＧＤＲよりも小さくなった場合（図１２に示した例においては、Ｎｔｄｃ＝７のとき）、ＣＰＵ７１は、図７のステップ７３５に進んだとき、ステップ７３５にて「Ｙｅｓ」と判定してステップ７４０に進み、点火時期ＳＡを遅角限界クランク角ＧＤＲに設定する。
【０１８７】
上述したように、燃料タンクＦＴに充填されている燃料は、最重質燃料である。一方、目標スロットル弁開度ＴＡｔｇｔは初期目標スロットル弁開度ＴＡ０に設定されている。従って、学習完了条件が成立した状態にて算出された学習制御量ＴＡｇに基づいて目標スロットル弁開度ＴＡｔｇｔが設定された場合と比較して筒内空気量は多くなる。
【０１８８】
これにより、各気筒における最初の燃焼に供される混合ガスの空燃比が出力トルクを最大にする空燃比に近づけられるとともに、各気筒における２回目以降の燃焼に供される燃料の量が多くなる。即ち、各気筒において実際に燃焼させられる燃料の量が多くなる。その結果、出力トルクが大きくなる。この結果、エンジン回転速度ＮＥは基準経過時間Ｔｒｅｆに対応した基準エンジン回転速度よりも高くなる。
【０１８９】
ところで、学習完了フラグＸｇｄの値が「０」に設定されている場合、学習完了フラグＸｇｄの値が「１」に設定されている場合と比較して、補正係数Ｋは小さい値に設定され、且つ、遅角限界クランク角ＧＤＲは進角側に設定されている。従って、学習完了フラグＸｇｄの値が「０」に設定されている場合、同一の値Ｔｒｅｆ−Ｔｉに対して求められる点火時期補正量ΔＳＡは、学習完了フラグＸｇｄの値が「１」に設定されている場合よりも小さくなる。即ち、学習完了フラグＸｇｄの値が「０」に設定されている場合、同一の値Ｔｒｅｆ−Ｔｉに対して求められる点火時期ＳＡは、学習完了フラグＸｇｄの値が「１」に設定されている場合（図１２の符号Ｃ１が付された点線）よりも進角側の時期となる。
【０１９０】
これにより、出力トルクが低減されるとともに、点火時期ＳＡが過度に遅角側の時期に設定されることが回避される。この結果、エンジン回転速度ＮＥを基準エンジン回転速度に近づけることができるとともに、筒内空気量が基準筒内空気量よりも多くなったとしても失火が発生する（混合ガスに点火しても混合ガスが燃焼しない）ことを防止することができる。また、仮に軽質燃料が使用された場合であっても、点火時期ＳＡが過度に遅角されることがないので、失火が発生することを防止することができる。
【０１９１】
そして、図５のステップ５５０の処理の実行が完了した時点にて設定されている圧縮上死点到来回数Ｎｔｄｃが「８」以上になると、ＣＰＵ７１は、ステップ５６５に進んだとき、ステップ５６５にて「Ｎｏ」と判定してステップ５７５に進み、図９の第３の点火時期決定ルーチンを実行することにより、エンジン回転速度ＮＥに基づいて点火時期ＳＡを補正する。
【０１９２】
そして、時間の経過に伴って、冷却水温度Ｔｗが上昇する。そして、圧縮上死点到来回数Ｎｔｄｃが「Ｎｔｄｃ１」となる時点（図１２を参照。）にて冷却水温度Ｔｗが閾値温度Ｔｗｔｈ以上となる。
【０１９３】
従って、この時点にてＣＰＵ７１が図２のフィードバック制御実行判定ルーチンの処理を開始してステップ２３５に進んだとき、ＣＰＵ７１は、ステップ２３５にて「Ｙｅｓ」と判定してステップ２４５にてＦＢ実行フラグＸｆｂの値を「１」に設定する。
【０１９４】
この状態において、ＣＰＵ７１が図３のスロットル弁開度制御ルーチンの処理を開始してステップ３１０に進んだとき、ＣＰＵ７１は、ステップ３１０にて「Ｙｅｓ」と判定してステップ３４０に進み、図１０のフィードバック制御量算出ルーチンの処理を実行する。
【０１９５】
具体的には、ＣＰＵ７１は、ステップ１００５〜ステップ１０２５の処理を実行することにより、エンジン回転速度ＮＥと目標エンジン回転速度ＮＥｒｅｆとに基づいてフィードバック制御量ＴＡｆｂを算出する。
【０１９６】
上述したように、算出されたフィードバック制御量ＴＡｆｂは、ステップ３６０にて目標スロットル弁開度ＴＡｔｇｔが算出される際に使用される。従って、エンジン回転速度ＮＥを目標エンジン回転速度ＮＥｒｅｆに一致させるように、スロットル弁開度ＴＡがフィードバック制御される。
【０１９７】
そして、ＣＰＵ７１は、学習実行条件が成立しているか否かを判定するステップ１０３０にて「Ｎｏ」と判定し、且つ、学習完了条件が成立しているか否かを判定するステップ１０４０にて「Ｎｏ」と判定して、ステップ１０５０にて学習完了フラグＸｇｄの値を「０」に設定する。即ち、学習完了フラグＸｇｄの値は、「０」に維持される。
【０１９８】
そして、クランク軸２４の回転に伴って、エンジン回転速度ＮＥが目標エンジン回転速度ＮＥｒｅｆに近づけられるとともに、フィードバック制御量ＴＡｆｂの変化量が減少する。そして、圧縮上死点到来回数Ｎｔｄｃが「Ｎｔｄｃ２」となる時点（図１２を参照。）にて、学習実行条件が成立する。
【０１９９】
従って、この時点にてＣＰＵ７１が図１０のフィードバック制御量算出ルーチンの処理を開始してステップ１０３０に進んだとき、ＣＰＵ７１は、ステップ１０３０にて「Ｙｅｓ」と判定してステップ１０３５に進み、図１１の学習制御量算出ルーチンの処理を実行する。
【０２００】
そして、クランク軸２４の回転に伴って、学習制御量算出ルーチンの処理が繰り返し実行されることにより、フィードバック制御量ＴＡｆｂを積算した積算量Ｉｇに基づく値Ｉｇ／Ｎｓが学習制御量ＴＡｇに加算されるとともに、積算量Ｉｇに対応した値Ｉｇ／（Ｋｉ・Ｎｓ）が回転速度差積算値ＳＤＮＥから減算される。これにより、回転速度差積算値ＳＤＮＥは、「０」に近づけられる。従って、クランク軸２４の回転に伴って、エンジン回転速度ＮＥが目標エンジン回転速度ＮＥｒｅｆに更に近づけられるとともに、フィードバック制御量ＴＡｆｂが減少する。
【０２０１】
そして、圧縮上死点到来回数Ｎｔｄｃが「Ｎｔｄｃ３」となる時点（図１２を参照。）にて、学習完了条件が成立する。
【０２０２】
従って、この時点にてＣＰＵ７１が図１０のフィードバック制御量算出ルーチンの処理を開始してステップ１０４０に進んだとき、ＣＰＵ７１は、ステップ１０４０にて「Ｙｅｓ」と判定してステップ１０４５に進み、学習完了フラグＸｇｄの値を「１」に設定する。
【０２０３】
以上、説明したように、本発明による内燃機関の始動制御装置の実施形態によれば、始動初期期間にて、エンジン回転速度ＮＥの平均値が基準エンジン回転速度の平均値よりも高い場合において空気量条件が成立していないとき、点火時期ＳＡは、第１の補正係数Ｋ１及び第１の遅角限界クランク角ＧＤＲ１に基づいて算出される第１の点火時期補正量だけ始動時点火時期（基準点火時期）ＳＡ０が遅角側に補正されることにより決定される。
【０２０４】
これにより、気筒における混合ガスの燃焼によって出力されるトルク（出力トルク）が適切に低減させられる。この結果、エンジン回転速度ＮＥを基準エンジン回転速度に迅速に近づけることができる。
【０２０５】
一方、始動初期期間にて、エンジン回転速度ＮＥの平均値が基準エンジン回転速度の平均値よりも高い場合において空気量条件が成立しているとき、点火時期ＳＡは、第２の補正係数Ｋ２及び第２の遅角限界クランク角ＧＤＲ２に基づいて算出される第２の点火時期補正量だけ始動時点火時期（基準点火時期）ＳＡ０が遅角側に補正されることにより決定される。第２の点火時期補正量は、第１の点火時期補正量よりも小さい量に設定される。
【０２０６】
これにより、出力トルクが低減されるとともに、点火時期ＳＡが過度に遅角側の時期に設定されることが回避される。この結果、エンジン回転速度ＮＥを基準エンジン回転速度に近づけることができるとともに、筒内空気量が基準筒内空気量よりも多くなったとしても失火が発生することを防止することができる。
【０２０７】
更に、上記実施形態は、始動初期期間にて、学習完了フラグＸｇｄの値が「１」に設定されている（学習制御量ＴＡｇが記憶手段に保持されている）場合に空気量条件が成立していないと判定し一方学習完了フラグＸｇｄの値が「０」に設定されている（学習制御量ＴＡｇが保持されていない）場合に空気量条件が成立していると判定する。これにより、筒内空気量が基準筒内空気量よりも多くなる空気量条件が成立しているか否かを適切に判定することができる。
【０２０８】
なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記実施形態は、各気筒にて２回目の燃焼が発生した燃焼サイクルにおける点火時期ＳＡを経過時間Ｔｉに基づいて決定する（即ち、４≦Ｎｔｄｃ＜８が成立するとき、図７の第２の点火時期決定ルーチンを実行する）ように構成されていたが、各気筒にて１回目の燃焼が発生した燃焼サイクルにおける点火時期ＳＡも経過時間Ｔｉに基づいて決定する（例えば、２≦Ｎｔｄｃ＜８が成立するとき、図７の第２の点火時期決定ルーチンを実行する）ように構成されていてもよい。また、各気筒にて３回目以降の燃焼が発生した燃焼サイクルにおける点火時期ＳＡも経過時間Ｔｉに基づいて決定するように構成されていてもよい。
【０２０９】
加えて、上記実施形態において、学習完了条件は、目標エンジン回転速度ＮＥｒｅｆとエンジン回転速度ＮＥとの差の大きさ｜ＮＥｒｅｆ−ＮＥ｜が閾値α２よりも小さく、且つ、フィードバック制御量ＴＡｆｂの大きさ｜ＴＡｆｂ｜が閾値β２よりも小さいという条件であった（図１０のステップ１０４０を参照。）が、図１１のステップ１１２０の処理が実行されることにより学習制御量ＴＡｇが更新された回数（学習制御量更新回数）が所定の閾値回数以上であるという条件であってもよい。
【０２１０】
また、上記実施形態においては、経過時間Ｔｉが基準経過時間Ｔｒｅｆよりも短い場合、即ち、エンジン回転速度ＮＥの平均値が基準エンジン回転速度の平均値よりも高い場合に点火時期ＳＡを遅角側に補正するように構成されていた（図７のステップ７２５及びステップ７３０）が、ある時点のエンジン回転速度ＮＥがその時点の基準エンジン回転速度よりも高い場合に点火時期ＳＡを遅角側に補正するように構成されていてもよい。
【０２１１】
なお、上記実施形態は、学習完了条件が成立した状態にて算出された学習制御量ＴＡｇがバックアップＲＡＭ７４に保持されていない場合に空気量条件が成立していると判定するように構成されていたが、内燃機関１０を始動させる際の大気圧が、バックアップＲＡＭ７４に保持されている学習制御量ＴＡｇが算出された際の大気圧よりも相当高い場合に空気量条件が成立していると判定するように構成されていてもよい。
【図面の簡単な説明】
【０２１２】
【図１】本発明の実施形態に係る始動制御装置を火花点火式多気筒内燃機関に適用したシステムの概略構成図である。
【図２】図１に示したＣＰＵが実行するプログラムであってフィードバック制御を実行するか否かを決定するためのプログラムを示したフローチャートである。
【図３】図１に示したＣＰＵが実行するプログラムであってスロットル弁開度を制御するためのプログラムを示したフローチャートである。
【図４】図１に示したＣＰＵが実行するプログラムであって燃焼が開始したか否かを判定するためのプログラムを示したフローチャートである。
【図５】図１に示したＣＰＵが実行するプログラムであって点火時期を制御するためのプログラムを示したフローチャートである。
【図６】エンジン回転速度、冷却水温度、スロットル弁開度、点火時期及び各種フラグの変化を示したタイムチャートである。
【図７】図１に示したＣＰＵが実行するプログラムであって点火時期を決定するためのプログラムを示したフローチャートである。
【図８】圧縮上死点到来回数に対する経過時間及び基準経過時間の変化を示したグラフである。
【図９】図１に示したＣＰＵが実行するプログラムであって点火時期を決定するためのプログラムを示したフローチャートである。
【図１０】図１に示したＣＰＵが実行するプログラムであってフィードバック制御量を算出するためのプログラムを示したフローチャートである。
【図１１】図１に示したＣＰＵが実行するプログラムであって学習制御量を算出するためのプログラムを示したフローチャートである。
【図１２】エンジン回転速度、冷却水温度、スロットル弁開度、点火時期及び各種フラグの変化を示したタイムチャートである。
【符号の説明】
【０２１３】
１０…内燃機関、２０…シリンダブロック部、２１…シリンダ、２２…ピストン、２４…クランク軸、２５…燃焼室、３０…シリンダヘッド部、３７…点火プラグ、３８…イグナイタ、３９…インジェクタ、４０…吸気系統、４５…スロットル弁、４５ａ…スロットル弁アクチュエータ、６４…スロットルポジションセンサ、６６…クランクポジションセンサ、７０…電気制御装置、７１…ＣＰＵ、７３…ＲＡＭ、７４…バックアップＲＡＭ、ＢＴ…バッテリ。
【図１】
2009024686.tif 000003
【図２】
2009024686.tif 000004
【図３】
2009024686.tif 000005
【図４】
2009024686.tif 000006
【図５】
2009024686.tif 000007
【図６】
2009024686.tif 000008
【図７】
2009024686.tif 000009
【図８】
2009024686.tif 000010
【図９】
2009024686.tif 000011
【図１０】
2009024686.tif 000012
【図１１】
2009024686.tif 000013
【図１２】
2009024686.tif 000014