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