(57)【特許請求の範囲】
【請求項１】
燃焼室にて火花を発生する点火手段を備えた気筒を複数有するとともに、空気と燃料とを含む混合ガスを同燃焼室にて形成し同点火手段が発生する火花により同形成された混合ガスに点火して同混合ガスを同燃焼室にて燃焼させることにより出力軸を回転駆動するように構成された内燃機関の始動制御装置であって、
前記出力軸の回転速度であるエンジン回転速度を取得する回転速度取得手段と、
前記内燃機関を始動させるための始動操作後の始動初期期間中、前記エンジン回転速度を同始動初期期間において最初に燃焼が発生した初爆時点からの前記出力軸の回転角度に基づいて設定された基準エンジン回転速度に一致させるように前記取得されたエンジン回転速度に基づいて第１の点火時期を決定し、前記点火手段が火花を発生する点火時期を同決定された第１の点火時期に設定する点火時期設定手段と、
前記複数の気筒のうちの１つである特定気筒の前記燃焼室内のガスの圧力により発生するトルクであって前記出力軸を回転駆動しようとするトルクである図示トルクを取得する図示トルク取得手段と、
前記始動初期期間中、前記取得された図示トルクが前記初爆時点からの前記出力軸の回転角度に基づいて設定された基準下限図示トルクよりも大きい場合に前記特定気筒の図示トルクに影響を及ぼす制御量であって前記点火時期以外の制御量を第１の制御量に設定し、一方、同取得された図示トルクが同基準下限図示トルクよりも小さい場合に同第１の制御量よりも同特定気筒の図示トルクを小さくする第２の制御量に同制御量を設定するトルク変動抑制手段と、
を備える内燃機関の始動制御装置において、
前記制御量は、前記燃焼室へ前記燃料を供給するために噴射される燃料の量である燃料噴射量であり、
前記トルク変動抑制手段は、前記取得された図示トルクが前記基準下限図示トルクよりも小さい場合であっても、前記初爆時点から現時点までの間の前記特定気筒の図示トルクが同基準下限図示トルクよりも小さい場合には、前記第２の制御量に代えて同第２の制御量よりも多い第４の制御量に前記燃料噴射量を設定するように構成された内燃機関の始動制御装置。
【請求項２】
請求項１に記載の内燃機関の始動制御装置において、
前記トルク変動抑制手段は、前記初爆時点からの前記出力軸の回転角度に基づいて設定され且つ任意の同出力軸の回転角度に対して前記基準下限図示トルクよりも大きくなるように設定された基準上限図示トルクよりも前記取得された図示トルクが大きい場合、前記第１の制御量に代えて同第１の制御量よりも前記特定気筒の図示トルクを大きくする第３の制御量に前記制御量を設定するように構成された内燃機関の始動制御装置。
【請求項３】
請求項１又は請求項２に記載の内燃機関の始動制御装置において、
前記点火時期設定手段は、前記初爆時点から現時点までの間の前記特定気筒の図示トルクが前記基準下限図示トルクよりも小さい場合、前記特定気筒が備える前記点火手段が火花を発生する点火時期を前記第１の点火時期に代えて同第１の点火時期よりも進角側の燃焼発生用点火時期に設定するように構成された内燃機関の始動制御装置。
【請求項４】
燃焼室にて火花を発生する点火手段を備えた気筒を複数有するとともに、空気と燃料とを含む混合ガスを同燃焼室にて形成し同点火手段が発生する火花により同形成された混合ガスに点火して同混合ガスを同燃焼室にて燃焼させることにより出力軸を回転駆動するように構成された内燃機関の始動制御装置であって、
前記出力軸の回転速度であるエンジン回転速度を取得する回転速度取得手段と、
前記内燃機関を始動させるための始動操作後の始動初期期間中、前記エンジン回転速度を同始動初期期間において最初に燃焼が発生した初爆時点からの前記出力軸の回転角度に基づいて設定された基準エンジン回転速度に一致させるように前記取得されたエンジン回転速度に基づいて第１の点火時期を決定し、前記点火手段が火花を発生する点火時期を同決定された第１の点火時期に設定する点火時期設定手段と、
前記複数の気筒のうちの１つである特定気筒の前記燃焼室内のガスの圧力により発生するトルクであって前記出力軸を回転駆動しようとするトルクである図示トルクを取得する図示トルク取得手段と、
前記始動初期期間中、前記取得された図示トルクが前記初爆時点からの前記出力軸の回転角度に基づいて設定された基準下限図示トルクよりも大きい場合に前記特定気筒の図示トルクに影響を及ぼす制御量であって前記点火時期以外の制御量を第１の制御量に設定し、一方、同取得された図示トルクが同基準下限図示トルクよりも小さい場合に同第１の制御量よりも同特定気筒の図示トルクを小さくする第２の制御量に同制御量を設定するトルク変動抑制手段と、
を備える内燃機関の始動制御装置において、
前記点火時期設定手段は、前記初爆時点から現時点までの間の前記特定気筒の図示トルクが前記基準下限図示トルクよりも小さい場合、前記特定気筒が備える前記点火手段が火花を発生する点火時期を前記第１の点火時期に代えて同第１の点火時期よりも進角側の燃焼発生用点火時期に設定するように構成された内燃機関の始動制御装置。
【請求項５】
請求項４に記載の内燃機関の始動制御装置において、
前記トルク変動抑制手段は、前記初爆時点からの前記出力軸の回転角度に基づいて設定され且つ任意の同出力軸の回転角度に対して前記基準下限図示トルクよりも大きくなるように設定された基準上限図示トルクよりも前記取得された図示トルクが大きい場合、前記第１の制御量に代えて同第１の制御量よりも前記特定気筒の図示トルクを大きくする第３の制御量に前記制御量を設定するように構成された内燃機関の始動制御装置。
【請求項６】
燃焼室にて火花を発生する点火手段を備えた気筒を複数有するとともに、空気と燃料とを含む混合ガスを同燃焼室にて形成し同点火手段が発生する火花により同形成された混合ガスに点火して同混合ガスを同燃焼室にて燃焼させることにより出力軸を回転駆動するように構成された内燃機関の始動制御装置であって、
前記出力軸の回転速度であるエンジン回転速度を取得する回転速度取得手段と、
前記内燃機関を始動させるための始動操作後の始動初期期間中、前記エンジン回転速度を同始動初期期間において最初に燃焼が発生した初爆時点からの前記出力軸の回転角度に基づいて設定された基準エンジン回転速度に一致させるように前記取得されたエンジン回転速度に基づいて、前記燃焼室内のガスの圧力により発生するトルクであって前記出力軸を回転駆動しようとするトルクである図示トルクを最大とする最大トルク点火時期よりも遅角側の時期を第１の点火時期として決定し、前記点火手段が火花を発生する点火時期を同決定された第１の点火時期に設定する点火時期設定手段と、
前記複数の気筒のうちの１つである特定気筒の前記燃焼室内のガスの圧力により発生する図示トルクを取得する図示トルク取得手段と、
前記始動初期期間中、前記取得された図示トルクが前記初爆時点からの前記出力軸の回転角度に基づいて設定された基準下限図示トルクよりも小さい場合、前記特定気筒が備える前記点火手段が火花を発生する点火時期を前記第１の点火時期に代えて同第１の点火時期よりも遅角側の第２の点火時期に設定するトルク変動抑制手段と、
を備える内燃機関の始動制御装置において、
前記トルク変動抑制手段は、前記取得された図示トルクが前記基準下限図示トルクよりも小さい場合であっても、前記初爆時点から現時点までの間の前記特定気筒の図示トルクが同基準下限図示トルクよりも小さい場合には、前記特定気筒が備える前記点火手段が火花を発生する点火時期を前記第２の点火時期に代えて同第２の点火時期よりも進角側の第４の点火時期に設定するように構成された内燃機関の始動制御装置。
【請求項７】
請求項６に記載の内燃機関の始動制御装置において、
前記トルク変動抑制手段は、前記初爆時点からの前記出力軸の回転角度に基づいて設定され且つ任意の同出力軸の回転角度に対して前記基準下限図示トルクよりも大きくなるように設定された基準上限図示トルクよりも前記取得された図示トルクが大きい場合、前記特定気筒が備える前記点火手段が火花を発生する点火時期を前記第１の点火時期に代えて同第１の点火時期よりも進角側の第３の点火時期に設定するように構成された内燃機関の始動制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の始動時にエンジン回転速度に基づいて点火時期を変更する装置に関する。
【背景技術】
【０００２】
一般に、内燃機関に供給される燃料として、相対的に霧化しやすい（軽質側の）燃料である軽質燃料と、相対的に霧化しにくい（重質側の）燃料である重質燃料と、が存在する。
【０００３】
内燃機関を始動させるための始動操作後の始動初期期間においては、気筒にて燃焼に供される燃料量は、噴射された燃料が霧化しやすいほど多くなる。従って、軽質燃料が噴射されると、重質燃料が噴射された場合と比較して多い量の燃料が燃焼に供されるので、気筒内のガスの圧力により発生するトルクであって内燃機関の出力軸を回転駆動しようとするトルクである図示トルクは大きくなる。
【０００４】
従って、想定されていた燃料よりも軽質側の燃料が噴射された場合には、始動初期期間においてエンジン回転速度が過度に高くなる吹き上がりが発生する。一方、想定されていた燃料よりも重質側の燃料が噴射された場合には、図示トルクが過度に小さくなることにより内燃機関を迅速に始動できない場合があった。
【０００５】
そこで、従来の内燃機関の始動制御装置の一つは、始動初期期間において、エンジン回転速度が所定の基準エンジン回転速度よりも高い場合に図示トルクが小さくなるように点火時期を遅角側に補正し、一方、エンジン回転速度が所定の基準エンジン回転速度よりも低い場合に図示トルクが大きくなるように点火時期を進角側に補正する（例えば、特許文献１を参照。）。
【特許文献１】特開２００４−１９５７１号公報
【０００６】
これにより、エンジン回転速度が基準エンジン回転速度よりも高い場合には図示トルクが小さくなり、一方、エンジン回転速度が基準エンジン回転速度よりも低い場合には図示トルクが大きくなる。従って、エンジン回転速度を基準エンジン回転速度に近づけることができる。この結果、吹き上がりの発生を防止できるとともに、内燃機関を迅速に始動させることができる。
【発明の開示】
【０００７】
ところで、混合ガスの燃焼が急速に進行することにより混合ガスが点火されてから燃焼が完了するまでの期間（燃焼期間）が短くなるほど、膨張行程における燃焼室内のガスの圧力がより早い時期に極めて高い圧力まで上昇する。従って、膨張行程において燃焼室内のガスがピストンに対して行う仕事の量が大きくなる。即ち、図示トルクが大きくなる。その結果、燃焼室内のガスから奪われるエネルギーが大きくなるので、膨張行程が終了した時点における燃焼室内のガス（未燃ガス及び既燃ガス等）の温度が低くなる。
【０００８】
このガスの一部は、次の燃焼サイクルに供される混合ガスに残留ガスとして含まれる。従って、燃焼期間が過度に短くなると、次の燃焼サイクルに供される混合ガスの温度が過度に低くなる。その結果、次の燃焼サイクルの圧縮行程においては混合ガス中の燃料の予反応（燃料分子の分解等の予備的な反応）が起こりにくくなる。従って、次の燃焼サイクルにおいては、燃焼が緩慢に進行し、その結果、燃焼期間が長くなる。
【０００９】
一方、混合ガスの燃焼が緩慢に進行することにより燃焼期間が長くなるほど、膨張行程における燃焼室内のガスの圧力がより遅い時期まで比較的低い圧力に維持される。従って、膨張行程において燃焼室内のガスがピストンに対して行う仕事の量が小さくなる。即ち、図示トルクが小さくなる。その結果、燃焼室内のガスから奪われるエネルギーが小さくなるので、膨張行程が終了した時点における燃焼室内のガスの温度が高くなる。従って、燃焼期間が過度に長くなると、次の燃焼サイクルに供される混合ガスの温度が過度に高くなる。その結果、次の燃焼サイクルの圧縮行程においては混合ガス中の燃料の予反応が起こりやすくなる。従って、次の燃焼サイクルにおいては、燃焼が急速に進行し、その結果、燃焼期間が短くなる。
【００１０】
このように、ある気筒において燃焼期間の長さが何らかの理由によって比較的大きく変化すると、その後、その気筒において燃焼期間が長い燃焼と燃焼期間が短い燃焼とが燃焼サイクルの経過に伴って交互に繰り返し発生する。その結果、その気筒における燃焼により発生する図示トルクも燃焼サイクルの経過に伴って増加と減少とを交互に繰り返しながら比較的大きく変動する（過大なトルク変動が継続する）。この結果、過大な振動や音（騒音）が発生する。
【００１１】
ところで、上記従来の制御装置によれば、エンジン回転速度が基準エンジン回転速度よりも低い場合、図示トルクが大きくなるように点火時期が進角側に補正される。従って、上記従来の制御装置においては、エンジン回転速度が基準エンジン回転速度よりも低い場合であって、ある気筒において燃焼期間が過度に長くなった場合、その気筒の次の燃焼サイクルにおいては、燃焼期間が過度に短くなるとともに点火時期が進角側に補正されるので、図示トルクが極めて大きくなり、その結果、エンジン回転速度が基準エンジン回転速度よりも過度に高くなってしまう虞があった。
【００１２】
本発明は上述した課題に対処するためになされたものであって、その目的の一つは、始動時においてエンジン回転速度が基準エンジン回転速度よりも過度に高くなることを防止することが可能な内燃機関の始動制御装置を提供することにある。
【００１３】
かかる目的を達成するため本発明に係る内燃機関の始動制御装置は、
燃焼室にて火花を発生する点火手段を備えた気筒を複数有するとともに、空気と燃料とを含む混合ガスを同燃焼室にて形成し同点火手段が発生する火花により同形成された混合ガスに点火して同混合ガスを同燃焼室にて燃焼させることにより出力軸を回転駆動するように構成された内燃機関に適用される。
【００１４】
更に、この始動制御装置は、
前記出力軸の回転速度であるエンジン回転速度を取得する回転速度取得手段と、
前記内燃機関を始動させるための始動操作後の始動初期期間中、前記エンジン回転速度を同始動初期期間において最初に燃焼が発生した初爆時点からの前記出力軸の回転角度に基づいて設定された基準エンジン回転速度に一致させるように前記取得されたエンジン回転速度に基づいて第１の点火時期を決定し、前記点火手段が火花を発生する点火時期を同決定された第１の点火時期に設定する点火時期設定手段と、
前記複数の気筒のうちの１つである特定気筒の前記燃焼室内のガスの圧力により発生するトルクであって前記出力軸を回転駆動しようとするトルクである図示トルクを取得する図示トルク取得手段と、
前記始動初期期間中、前記取得された図示トルクが前記初爆時点からの前記出力軸の回転角度に基づいて設定された基準下限図示トルクよりも大きい場合に前記特定気筒の図示トルクに影響を及ぼす制御量であって前記点火時期以外の制御量を第１の制御量に設定し、一方、同取得された図示トルクが同基準下限図示トルクよりも小さい場合に同第１の制御量よりも同特定気筒の図示トルクを小さくする第２の制御量に同制御量を設定するトルク変動抑制手段と、を備える。
そして、前記制御量は、前記燃焼室へ前記燃料を供給するために噴射される燃料の量である燃料噴射量であり、
前記トルク変動抑制手段は、前記取得された図示トルクが前記基準下限図示トルクよりも小さい場合であっても、前記初爆時点から現時点までの間の前記特定気筒の図示トルクが同基準下限図示トルクよりも小さい場合には、前記第２の制御量に代えて同第２の制御量よりも多い第４の制御量に前記燃料噴射量を設定するように構成されることが好適である。
【００１５】
なお、エンジン回転速度は、ある時点にて取得された内燃機関の出力軸の回転速度であってもよいし、複数の時点にて取得された内燃機関の出力軸の回転速度の平均値であってもよい。また、エンジン回転速度は、内燃機関の出力軸の回転速度を表すパラメータにより表されていてもよい。このパラメータは、例えば、混合ガスの燃焼が最初に発生した気筒が、その燃焼が発生する燃焼サイクルにおける圧縮上死点を迎えた時点（初爆時点）から経過した時間（経過時間）である。この場合、「エンジン回転速度が高い」ことは、「経過時間が短い」ことに対応していると言うことができる。
【００１６】
また、特定気筒の図示トルクに影響を及ぼす制御量であって点火時期以外の制御量は、燃焼室へ燃料を供給するために噴射される燃料の量（燃料噴射量）、燃焼室にて形成される混合ガスの空燃比、又は、燃料を噴射させるタイミング等である。
【００１７】
これによれば、始動初期期間中、エンジン回転速度を基準エンジン回転速度に一致させるように、取得されたエンジン回転速度に基づいて第１の点火時期が決定される。そして、決定された第１の点火時期にて混合ガスが点火される。これにより、エンジン回転速度を基準エンジン回転速度に近づけることができる。この結果、吹き上がりの発生を防止することができるとともに、内燃機関を迅速に始動させることができる。
【００１８】
ところで、ある気筒において燃焼期間がかなり長くなった場合、その燃焼により発生する図示トルクはかなり小さくなる。更に、この場合、その気筒の次の燃焼サイクルに供される混合ガスの温度が高くなる。従って、圧縮行程においては混合ガス中の燃料の予反応が起こりやすくなる。その結果、その気筒の次の燃焼サイクルにおいては、燃焼が急速に進行し、燃焼期間が短くなる。即ち、図示トルクが過大となる虞がある。
【００１９】
そこで、上記構成のように、特定気筒における図示トルクが基準下限図示トルクよりも大きい場合に制御量（例えば、燃料噴射量）を第１の制御量（例えば、第１の燃料噴射量）に設定し、一方、特定気筒における図示トルクが基準下限図示トルクよりも小さい場合に第１の制御量よりも特定気筒の図示トルクを小さくする第２の制御量（例えば、第１の燃料噴射量よりも少ない第２の燃料噴射量）に制御量を設定すれば、特定気筒において燃焼期間がかなり長くなった場合であっても、特定気筒の次の燃焼サイクルにおいて図示トルクが過大となることを防止することができる。この結果、エンジン回転速度が基準エンジン回転速度よりも過度に高くなることを防止することができる。
また、上述した制御装置において、制御量として燃料噴射量が採用された場合、特定気筒における図示トルクが基準下限図示トルクよりも小さいときには、燃料噴射量は、第１の制御量よりも少ない第２の制御量に設定される。これにより、燃焼が発生している気筒において燃焼期間がかなり長くなった場合であっても、その気筒の次の燃焼サイクルにおいて図示トルクが過大となることを防止することができる。
ところで、始動初期期間中、ある気筒において混合ガスが燃焼した時点以降において、他の気筒にて火花を発生させても混合ガスが燃焼しない（失火が発生している）状態が継続する場合がある。この場合、失火が発生している気筒によって発生する図示トルクが基準下限図示トルクよりも小さい状態が継続する。
従って、上述した制御装置によれば、失火が発生している気筒においても燃料噴射量が第２の制御量に設定されるので、燃料噴射量が第１の制御量に設定される場合よりも失火が発生している状態が継続しやすいという問題がある。
これに対し、上記構成によれば、取得された図示トルクが基準下限図示トルクよりも小さい場合であっても、初爆時点から現時点までの間の特定気筒の図示トルクが基準下限図示トルクよりも小さい場合には、第２の制御量よりも多い第４の制御量に燃料噴射量が設定される。これにより、燃料噴射量が第２の制御量に設定される場合よりも特定気筒において混合ガスを燃焼させやすくすることができる。この結果、特定気筒において失火が発生している状態が継続することを防止することができる。
【００２０】
この場合、前記トルク変動抑制手段は、前記初爆時点からの前記出力軸の回転角度に基づいて設定され且つ任意の同出力軸の回転角度に対して前記基準下限図示トルクよりも大きくなるように設定された基準上限図示トルクよりも前記取得された図示トルクが大きい場合、前記第１の制御量に代えて同第１の制御量よりも前記特定気筒の図示トルクを大きくする第３の制御量に前記制御量を設定するように構成されることが好適である。
【００２１】
ある気筒において燃焼期間がかなり短くなった場合、その燃焼により発生する図示トルクはかなり大きくなる。更に、この場合、その気筒の次の燃焼サイクルに供される混合ガスの温度が低くなる。従って、圧縮行程においては混合ガス中の燃料の予反応が起こりにくくなる。その結果、その気筒の次の燃焼サイクルにおいては、燃焼が緩慢に進行し、燃焼期間が長くなる。即ち、図示トルクが過小となる虞がある。
【００２２】
そこで、上記構成のように、特定気筒における図示トルクが基準上限図示トルクよりも大きい場合に第１の制御量（例えば、第１の燃料噴射量）よりも特定気筒の図示トルクを大きくする第３の制御量（例えば、第１の燃料噴射量よりも多い第３の燃料噴射量）に制御量を設定すれば、特定気筒において燃焼期間がかなり短くなった場合であっても、特定気筒の次の燃焼サイクルにおいて図示トルクが過小となることを防止することができる。この結果、エンジン回転速度が基準エンジン回転速度よりも過度に低くなることを防止することができる。
【００２３】
この場合、前記点火時期設定手段は、前記初爆時点から現時点までの間の前記特定気筒の図示トルクが前記基準下限図示トルクよりも小さい場合、前記特定気筒が備える前記点火手段が火花を発生する点火時期を前記第１の点火時期に代えて同第１の点火時期よりも進角側の燃焼発生用点火時期に設定するように構成されることが好適である。
【００２４】
これによれば、初爆時点から現時点までの間の特定気筒の図示トルクが基準下限図示トルクよりも小さい場合、特定気筒の点火時期が第１の点火時期よりも進角側の燃焼発生用点火時期に設定される。これにより、特定気筒において、点火時期が第１の点火時期に設定される場合よりも混合ガスを燃焼させやすくすることができる。この結果、特定気筒において失火が発生している状態が継続することをより一層確実に防止することができる。
【００２６】
また、上記目的を達成するため本発明に係る内燃機関の始動制御装置は、
燃焼室にて火花を発生する点火手段を備えた気筒を複数有するとともに、空気と燃料とを含む混合ガスを同燃焼室にて形成し同点火手段が発生する火花により同形成された混合ガスに点火して同混合ガスを同燃焼室にて燃焼させることにより出力軸を回転駆動するように構成された内燃機関に適用される。
更に、この始動制御装置は、
前記出力軸の回転速度であるエンジン回転速度を取得する回転速度取得手段と、
前記内燃機関を始動させるための始動操作後の始動初期期間中、前記エンジン回転速度を同始動初期期間において最初に燃焼が発生した初爆時点からの前記出力軸の回転角度に基づいて設定された基準エンジン回転速度に一致させるように前記取得されたエンジン回転速度に基づいて第１の点火時期を決定し、前記点火手段が火花を発生する点火時期を同決定された第１の点火時期に設定する点火時期設定手段と、
前記複数の気筒のうちの１つである特定気筒の前記燃焼室内のガスの圧力により発生するトルクであって前記出力軸を回転駆動しようとするトルクである図示トルクを取得する図示トルク取得手段と、
前記始動初期期間中、前記取得された図示トルクが前記初爆時点からの前記出力軸の回転角度に基づいて設定された基準下限図示トルクよりも大きい場合に前記特定気筒の図示トルクに影響を及ぼす制御量であって前記点火時期以外の制御量を第１の制御量に設定し、一方、同取得された図示トルクが同基準下限図示トルクよりも小さい場合に同第１の制御量よりも同特定気筒の図示トルクを小さくする第２の制御量に同制御量を設定するトルク変動抑制手段と、を備える。
そして、前記点火時期設定手段は、前記初爆時点から現時点までの間の前記特定気筒の図示トルクが前記基準下限図示トルクよりも小さい場合、前記特定気筒が備える前記点火手段が火花を発生する点火時期を前記第１の点火時期に代えて同第１の点火時期よりも進角側の燃焼発生用点火時期に設定するように構成される。
【００２７】
なお、エンジン回転速度は、ある時点にて取得された内燃機関の出力軸の回転速度であってもよいし、複数の時点にて取得された内燃機関の出力軸の回転速度の平均値であってもよい。また、エンジン回転速度は、内燃機関の出力軸の回転速度を表すパラメータにより表されていてもよい。このパラメータは、例えば、混合ガスの燃焼が最初に発生した気筒が、その燃焼が発生する燃焼サイクルにおける圧縮上死点を迎えた時点（初爆時点）から経過した時間（経過時間）である。この場合、「エンジン回転速度が高い」ことは、「経過時間が短い」ことに対応していると言うことができる。
また、特定気筒の図示トルクに影響を及ぼす制御量であって点火時期以外の制御量は、燃焼室へ燃料を供給するために噴射される燃料の量（燃料噴射量）、燃焼室にて形成される混合ガスの空燃比、又は、燃料を噴射させるタイミング等である。
これによれば、始動初期期間中、エンジン回転速度を基準エンジン回転速度に一致させるように、取得されたエンジン回転速度に基づいて第１の点火時期が決定される。そして、決定された第１の点火時期にて混合ガスが点火される。これにより、エンジン回転速度を基準エンジン回転速度に近づけることができる。この結果、吹き上がりの発生を防止することができるとともに、内燃機関を迅速に始動させることができる。
ところで、ある気筒において燃焼期間がかなり長くなった場合、その燃焼により発生する図示トルクはかなり小さくなる。更に、この場合、その気筒の次の燃焼サイクルに供される混合ガスの温度が高くなる。従って、圧縮行程においては混合ガス中の燃料の予反応が起こりやすくなる。その結果、その気筒の次の燃焼サイクルにおいては、燃焼が急速に進行し、燃焼期間が短くなる。即ち、図示トルクが過大となる虞がある。
そこで、上記構成のように、特定気筒における図示トルクが基準下限図示トルクよりも大きい場合に制御量（例えば、燃料噴射量）を第１の制御量（例えば、第１の燃料噴射量）に設定し、一方、特定気筒における図示トルクが基準下限図示トルクよりも小さい場合に第１の制御量よりも特定気筒の図示トルクを小さくする第２の制御量（例えば、第１の燃料噴射量よりも少ない第２の燃料噴射量）に制御量を設定すれば、特定気筒において燃焼期間がかなり長くなった場合であっても、特定気筒の次の燃焼サイクルにおいて図示トルクが過大となることを防止することができる。この結果、エンジン回転速度が基準エンジン回転速度よりも過度に高くなることを防止することができる。
また、初爆時点から現時点までの間の特定気筒の図示トルクが基準下限図示トルクよりも小さい場合、特定気筒の点火時期が第１の点火時期よりも進角側の燃焼発生用点火時期に設定される。これにより、特定気筒において、点火時期が第１の点火時期に設定される場合よりも混合ガスを燃焼させやすくすることができる。この結果、特定気筒において失火が発生している状態が継続することをより一層確実に防止することができる。
【００２８】
この場合、前記トルク変動抑制手段は、前記初爆時点からの前記出力軸の回転角度に基づいて設定され且つ任意の同出力軸の回転角度に対して前記基準下限図示トルクよりも大きくなるように設定された基準上限図示トルクよりも前記取得された図示トルクが大きい場合、前記第１の制御量に代えて同第１の制御量よりも前記特定気筒の図示トルクを大きくする第３の制御量に前記制御量を設定するように構成されることが好適である。

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