"吸入空気量を調整するスロットル23を備え、クランキングにより始動する内燃エンジン1の始動制御方法において:内燃エンジン1のクランキング開始を検出し;内燃エンジン1のクランキング開始時のエンジン温度と大気圧の一方または両方を検出し;クランキング開始時のエンジン温度と大気圧の一方または両方に基づき初期開度を設定し;クランキング開始時にはスロットル開度を初期開度へと制御し;クランキング開始後の所定の開動タイミングにおいて、スロットル23を初期開度から開動する;内燃エンジン1の始動制御方法。初期開度は、クランキング開始時のエンジン温度が高いほど小さくなる値に設定される、請求項1の内燃エンジン1の始動制御方法。初期開度は、大気圧が高いほど小さくなる値に設定される、請求項1または2の内燃エンジン1の始動制御方法。クランキング開始後の所定の開動タイミングにおいて、スロットル23を初期開度から、初期開度より大きな予め設定された目標アイドル回転速度に向けて開動する、請求項1から3のいずれかの内燃エンジン1の始動制御方法。内燃エンジン1のクランキング開始からのストローク数または回転数をカウントするとともに、所定の開動タイミングはカウント数が所定数に達するタイミングに設定される、請求項4の内燃エンジン1の始動制御方法。所定数は、その後も実吸気負圧が発達し、かつ目標アイドル回転速度の維持に必要な吸入空気量が得られるように予め設定される、請求項5の内燃エンジン1の始動制御方法。始動した内燃エンジン1の回転速度が所定のアイドル目標回転速度に達したかどうかを判定し、判定が肯定的な場合に、点火タイミングを遅角させる、請求項5または6の内燃エンジン1の始動制御方法。吸入空気量を調整するスロットル23を備え、クランキングにより始動する内燃エンジン1の始動制御装置において:内燃エンジン1のクランキング開始を検出するセンサ36と;内燃エンジン1のクランキング開始時のエンジン温度と大気圧の一方または両方を検出するセンサ37,38と;次のようにプログラムされたプログラマブルコントローラ31:クランキング開始時のエンジン温度と大気圧の一方または両方に基づき初期開度を設定し;クランキング開始時にはスロットル開度を初期開度へと制御し;クランキング開始後の所定の開動タイミングにおいて、スロットル23を初期開度から開動する;と、を備える内燃エンジン1の始動制御装置。図面のFIG.1を参照すると、車両用の4ストロークサイクル内燃エンジン1はスロットル23で調量した空気を吸気コレクタ2に蓄えた後、吸気マニホールド3及び吸気バルブ15を介して各気筒の燃焼室5に吸入する。内燃エンジン1は多気筒火花点火式の往復動型エンジンで構成される。各気筒の吸気ポート4には燃料インジェクタ21が設けられる。燃料インジェクタ21は所定のタイミングで燃料を吸気ポート4内に向けて間欠的に噴射供給する。吸気ポート4に噴射された燃料は、吸入空気と混合して混合気を形成する。混合気は吸気バルブ15を閉じることで燃焼室5内に閉じこめられる。各気筒の燃焼室5内に閉じこめられた混合気は、各気筒に備えるピストン6の上昇によって圧縮され、点火プラグ14により着火して燃焼する。燃焼によるガス圧はピストン6を押し下げ、ピストン6に往復運動をもたらす。ピストン6の往復運動はクランクシャフト7の回転運動へと変換される。燃焼後のガスは排気バルブ16を介して排気として排気通路8へ排出される。排気通路8は各気筒に接続された排気マニホールドを備える。排気マニホールドにはスタートアップ触媒としての第1触媒9が設けられる。排気通路8は車両の床下に至る。床下部分の排気通路8には第2触媒10が設けられる。第1触媒9と第2触媒10は、例えばいずれも三元触媒で構成される。三元触媒は空燃比が理論空燃比を中心とした狭い範囲にある場合に、排気に含まれるHC、一酸化炭素CO及び窒素酸化物NOxを同時に効率よく除去できる。内燃エンジン1の運転はエンジンコントローラ31によって制御される。具体的にはエンジンコントローラ31はスロットル23の吸入空気量、燃料インジェクタ21の燃料噴射量、及び点火プラグ14の点火タイミングを制御する。エンジンコントローラ31は中央演算装置CPU、読み出し専用メモリROM、ランダムアクセスメモリRAM及び入出力インタフェースI/Oインタフェースを備えたマイクロコンピュータで構成される。エンジンコントローラ31を複数のマイクロコンピュータで構成することも可能である。上記の制御のために、エンジンコントローラ31には、吸入空気量を検出するエアフローメータ32、内燃エンジン1の基準回転位置と単位角度の回転とを検出するクランク角センサ、排気中の酸素濃度を検出する排気通路8の第1触媒9の上流に設けた酸素センサ35、車両のアクセルペダル41の踏み込み量を検出するアクセルペダル踏み込み量センサ42,車両のドライバが内燃エンジン1のクランキングを指示するスタータスイッチ36、エンジン冷却水温を検出する水温センサ37、及び吸入空気圧を検出する圧力センサ38から、それぞれ検出値に相当する信号が入力される。クランク角センサは、内燃エンジン1の単位角度の回転を検出するポジションセンサ33と、内燃エンジン1の基準回転位置を検出するフェーズセンサ34からなる。エンジンコントローラ31はこれらのセンサからの入力信号に基づいて燃料インジェクタ21の基本燃料噴射量を定めるとともに、第1触媒9の上流に設けた酸素センサ35からの信号に基づいて燃焼室5に形成される空燃比をフィードバック制御する。内燃エンジン1の冷間始動時には触媒9,10を早期に活性化すると共に、酸素センサ35をも早期に活性化して空燃比のフィードバック制御を早期に実現することが望ましい。そのため、酸素センサ35は始動直後からヒータによって加熱される。エンジンコントローラ31は酸素センサ35からの入力信号から、酸素センサ35の活性化を判定する。エンジンコントローラ31は酸素センサ35が活性化すると空燃比のフィードバック制御を開始する。触媒9と10は三元触媒に限定されない。例えば、エンジンの暖機完了後の燃費向上のため、低負荷運転領域において理論空燃比よりもリーンな混合気を燃焼室5に供給してリーン空燃比で運転を行う車両がある。こうした車両では、リーン空燃比のもとで多く発生するNOxを吸収する必要がある。そこで、第2触媒10をNOxトラップ触媒で構成し、NOxトラップ触媒に三元触媒機能を持たせている。こうした触媒を使用する車両にもこの発明は適用可能である。スロットル23の吸入空気量の制御は、スロットル23を駆動するスロットルモータ24の制御によって行われる。ドライバの要求トルクはアクセルペダル41の踏み込み量として入力される。エンジンコントローラ31はアクセルペダルの踏み込み量に基づき目標トルクを定める。エンジンコントローラ31は目標トルクを実現するための目標吸入空気量を計算し、目標吸入空気量に対応する信号をスロットルモータ24に出力することで、スロットル23の開度を制御する。内燃エンジン1は、吸気バルブ15のバルブリフト量を連続的に変化させる多節リンクで構成される可変バルブリフト機構26と、クランクシャフト7と吸気バルブ用カムシャフト25との回転位相差を連続的に可変制御して、吸気バルブ15の開閉タイミングを進角または遅角させる可変バルブタイミング機構27とを備える。エンジンコントローラ31は内燃エンジン1の始動時に下記の制御を行なう。1クランキング後にエンジン回転速度がアイドル時の目標回転速度に到達したタイミングで点火タイミングを始動用の点火タイミングから所定の点火タイミング、例えば触媒暖機促進用の点火タイミングへとステップ的に、もしくは少なくともエンジン回転速度の吹け上がりを防止できる十分な速さの変化速度で、遅角し;2エンジン回転速度が目標アイドル回転速度に到達したタイミングでエンジン回転速度をアイドル時の目標回転速度に保持させるに必要な吸入空気量が燃焼室5に供給されるように、エンジン回転速度が目標アイドル回転速度に到達するタイミングよりも所定期間前にスロットル23を開き始める。以上の制御により、第1触媒9の暖気が促進される。また、エンジン回転速度が目標アイドル回転速度に到達した後の吹け上がりを抑制するとともに、空燃比を理論空燃比で安定させることで排気中のHCの増加防止が図られる。このためにエンジンコントローラ31が実行する制御ルーチンを次に説明する。なお、最初にFIGS.2-5を参照して、前記従来技術による、内燃エンジン1の始動時における点火タイミング、スロットル開度、及び燃料噴射量の制御を説明し、その後にこの発明に固有の制御を説明する。FIG.2は完爆フラグと目標アイドル回転到達フラグの設定ルーチンを示す。エンジンコントローラ31は、車両が備えるイグニッションスイッチがONの状態でこのルーチンを一定間隔、例えば100ミリ秒ごと、に実行する。なお、エンジンコントローラ31はイグニッションスイッチがOFFからONに切り換わることで起動し、イグニッションスイッチがONの間は常に稼働状態にあるものとする。ステップS1で、エンジンコントローラ31はエンジン回転速度Neを読み込む。エンジン回転速度Neはポジションセンサ33とフェーズセンサ34とで構成されたクランク角センサからの入力信号に基づいて算出される。ステップS2で、エンジンコントローラ31は完爆フラグを判定する。完爆フラグは内燃エンジン1が完爆しているかどうかを示すフラグであり、イグニッションスイッチまたはスタータスイッチがOFFよりONに切り換わると同時にゼロに初期設定される。このため、最初のルーチン実行時には完爆フラグ=0である。完爆フラグ=0の場合には、エンジンコントローラ31はステップS3で、エンジン回転速度Neと完爆回転速度N0を比較する。完爆回転速度N0は内燃エンジン1が完爆したかどうかを判定するための値であり、例えば1000回転/分rpmとする。エンジン回転速度Neが完爆回転速度N0に到達していなければ、エンジンコントローラ31は直ちにルーチンを終了する。一方、エンジン回転速度Neが完爆回転速度N0に到達している場合には、すなわち、Ne≧N0の場合には、エンジンコントローラ31はステップS4で完爆フラグを1にセットする。次のステップS5、エンジンコントローラ31はタイマを起動する。タイマはエンジン回転速度Neが完爆回転速度N0に到達したタイミングからの経過時間を計測するもので、タイマの起動とともにタイマ値TIMEがゼロにリセットされる。ステップS5の処理の後、エンジンコントローラ31はルーチンを終了する。このようにして、ステップS4で完爆フラグが1にセットされると、次回移行のルーチン実行では、ステップS2の判定が肯定的に転じ、その結果ステップS6-S8の処理が行なわれる。ステップS6で、エンジンコントローラ31はタイマ値TIMEを所定値DTと比較する。所定値DTは、エンジン回転速度Neが完爆回転速度N0に到達したタイミングから目標アイドル回転速度NSETに到達するタイミングまでの時間間隔を意味する。所定値DTは実験もしくはシミュレーションにより予め設定される。タイマを起動した直後のタイマ値TIMEは所定値DT未満であるので、ステップS6の判定は否定的となる。その場合には、エンジンコントローラ31はステップS7でタイマ値TIMEを所定のインクリメントのもとで増量する。所定のインクリメントはルーチンの実行周期に対応した値とする。このようにして、タイマ値TIMEはルーチン実行のつど増大する。その結果、タイマ値TIMEが所定値DT以上となり、ステップS6の判定が否定的から肯定的に転じる。その場合に、エンジンコントローラ31はステップS8で目標アイドル回転速度NSETに到達したことを示す目標アイドル回転到達フラグを1にセットする。なお、目標アイドル回転到達フラグの初期値はゼロである。言い換えれば、目標アイドル回転到達フラグはイグニッションスイッチまたはスタータスイッチのOFFからONへの切り換わりに伴ってゼロにリセットされる。ステップS7またはS8の処理の後、エンジンコントローラ31はルーチンを終了する。以上のように、エンジンコントローラ31はイグニッションスイッチがOFFからONに転じた直後から、完爆フラグと目標アイドル回転到達フラグの設定ルーチンを一定周期で繰り返し実行することで、内燃エンジン1の完爆と目標アイドル回転速度への到達とを判定し、対応するフラグを設定する。なお、ステップS6では、内燃エンジン1が完爆してから所定値DT相当の時間が経過することで、エンジン回転速度が目標アイドル回転速度NSETに到達したと判定している。しかしながら、この判定に関しては、クランク角センサが検出するエンジン回転速度Neを目標アイドル回転速度NSETと直接比較することももちろん可能である。FIG.3は点火タイミング及びスロットル開度の制御ルーチンを示す。エンジンコントローラ31は、イグニッションスイッチがONの状態でこのルーチンをFIG.2のルーチンに引き続いて一定間隔、例えば100ミリ秒ごと、に実行する。ステップS21で、エンジンコントローラ31は今回のルーチン実行タイミングが、イグニッションスイッチがOFFからONへ切り換わった直後であるかどうかを判定する。ステップS21の判定が肯定的な場合は、エンジンコントローラ31はステップS22で、水温センサ37が検出する内燃エンジン1の冷却水温TWを始動時水温TWINTとして取り込む。エンジンコントローラ31は始動時水温TWINTに応じて第1点火タイミングADV1を算出する。第1点火タイミングADV1はエンジン始動に最適な点火タイミングであり、ここでは通常運転時の点火タイミングより大幅に進角した値として算出される。ステップS23で、エンジンコントローラ31は点火タイミング指令値ADVを算出した第1点火タイミングADV1に等しく設定する。ステップS24ではスロットル目標開度tTVOに初期値を入れる。初期値は例えばゼロとする。ステップS24の処理の後、エンジンコントローラ31はルーチンを終了する。一方、ステップS21の判定が否定的な場合は、エンジンコントローラ31は、ステップS25で完爆フラグが1であるかどうかを判定する。完爆フラグが1でない場合は、エンジンコントローラ31は、ステップS27で点火タイミング指令値ADVを前回値に等しく設定する。このようにして、内燃エンジン1が完爆したと判定されるまで、点火タイミング指令値ADVは第1点火タイミングADV1に維持される。ステップS27の処理の後、エンジンコントローラ31は、ステップS24でスロットル目標開度tTVOに初期値のゼロを入れてルーチンを終了する。このようにして、内燃エンジン1のクランキング開始後、完爆に至るまでの期間においては、点火タイミング指令値ADVは第1点火タイミングADV1に維持され、スロットル目標開度tTVOはゼロに維持される。一方、ステップS25の判定において、完爆フラグが1の場合は、エンジンコントローラ31はステップS26で目標アイドル回転到達フラグが1であるかどうかを判定する。目標アイドル回転到達フラグが1でない場合は、エンジンコントローラ31はステップS28で点火タイミング指令値ADVを前回値に等しく設定する。したがって、内燃エンジン1が完爆したと判定された後も、タイマ値TIMEが所定値DTに達するまで、言い換えればエンジン回転速度Neが目標アイドル回転速度NESTに達するまでは、点火タイミング指令値ADVは第1点火タイミングADV1に等しい値に維持される。ステップS28の処理の後、エンジンコントローラ31はステップS29でスロットル目標開度tTVOを次式1により算出する。tTVO=tTVO前回ΔTVO1ただし、ΔTVO=一定値;tTVO前回=tTVOの前回値。式1のtTVO前回はスロットル目標開度の前回値であり、初期値はゼロである。式1の所定増分ΔTVOはスロットル目標開度の所定時間当たりの増量分を定めた値である。所定増分ΔTVOは、エンジン回転速度Neが目標アイドル回転速度NSETに到達するタイミングで、スロットル目標開度tTVOが目標アイドル開度TVO1に到達するように定められる。ここで、目標アイドル開度TVO1は内燃エンジン1が目標回転速度NSETを維持可能なトルクを発生させるのに必要な最低の吸入空気量に対応するスロットル開度である。目標アイドル開度TVO1の値は実験もしくはシミュレーションにより予め設定される。ステップS29でスロットル目標開度tTVOを設定した後、エンジンコントローラ31はステップS30でスロットル目標開度tTVOと目標アイドル開度TVO1を比較する。ステップS26の判定が初めて否定的に転じた状態、すなわちエンジン回転速度Neが目標アイドル回転速度NESTに到達した直後は、スロットル目標開度tTVOは目標アイドル開度TVO1未満である。その場合には、エンジンコントローラ31はそれ以上の処理を行なうことなくルーチンを終了する。次回以降のルーチン実行においては、ステップS29の処理の実行により、ルーチン実行ごとにスロットル目標開度tTVOが所定増分ΔTVOずつ増加する。その結果、スロットル目標開度tTVOが目標アイドル開度TVO1を超過し、ステップS30の判定が肯定的に転じると、エンジンコントローラ31はステップS31でスロットル目標開度tTVOをTVO1に維持する。ステップS31の処理の後、エンジンコントローラ31はルーチンを終了する。以後のルーチン実行においては、したがって、ルーチンの実行を重ねてもスロットル目標開度tTVOは増量されずに目標アイドル開度TVO1に維持される。一方、ステップS26の判定において、目標アイドル回転到達フラグが1になると、エンジンコントローラ31はステップS32で、水温センサ37が検出する内燃エンジン1の冷却水温TWに応じて第2点火タイミングADV2を算出する。第2点火タイミングADV2は例えば内燃エンジン1の冷間始動時における第1触媒9の暖機促進用の点火タイミングに設定することができる。あるいは、吸入空気量を急に増大させることでエンジン回転速度がオーバーシュート気味になるのを抑制するために、一時的に遅角側の点火タイミングを設定することもできる。このようにして、第2点火タイミングADV2は第1点火タイミングADV1より遅角した値として算出される。次のステップS33でエンジンコントローラ31は点火タイミング指令値ADVを第2点火タイミングADV2に等しく設定する。以上の処理の結果、エンジン回転速度Neが目標回転速度NSETに到達すると同時に、点火タイミング指令値ADVは第1点火タイミングADV1から第2点火タイミングADV2へとステップ的に切り換えられる。ステップS34で、エンジンコントローラ31はスロットル目標開度tTVOを前回と同じ値、すなわちTVO1に維持する。ステップS34の処理の後、エンジンコントローラ31はルーチンを終了する。このようにして、エンジン回転速度Neが目標回転速度NSETに到達した後は、点火タイミング指令値ADVが第2点火タイミングADV2へとステップ的に切り換えられる。一方、スロットル目標開度tTVOは目標アイドル開度TVO1に維持される。ここでは、点火タイミング指令値ADVをステップ的に一気にADV2へと切り換えているが、エンジン傾転速度が吹け上がるのを防止できる範囲の所定の変化速度で切り換えるようにすることもできる。FIG.4はエンジンコントローラ31が実行する目標当量比TFBYAの算出ルーチンを示す。当量比は空燃比の逆数に相当する。エンジンコントローラ31は、イグニッションスイッチがONの状態でこのルーチンを一定間隔、例えば100ミリ秒ごと、に実行する。なお、エンジンコントローラ31はイグニッションスイッチがOFFからONに切り換わることで起動し、イグニッションスイッチがONの間は常に稼働状態にあるものとする。ステップS41で、エンジンコントローラ31は今回のルーチン実行タイミングが、イグニッションスイッチがOFFからONへ切り換わった直後に相当するかどうかを判定する。判定が肯定的な場合には、エンジンコントローラ31はステップS42で始動時増量補正係数の初期値KAS0を、水温センサ37が現出する始動時水温TWINTに基づき算出する。始動時増量補正係数の初期値KAS0は始動時水温TWINTが低くなるほど大きくなる値である。次のステップS43で、エンジンコントローラ31は始動時増量補正係数KASを初期値KAS0に等しく設定する。ステップS43の処理の後、エンジンコントローラ31はステップS50の処理を行なう。一方、ステップS41の判定が否定的な場合には、前回以前のルーチン実行において、イグニッションスイッチが既にONに切り換わっていることを意味する。この場合には、エンジンコントローラ31はステップS44で、目標アイドル回転到達フラグが1であるかどうかを判定する。目標アイドル回転到達フラグは前述のように、イグニッションスイッチがONに切り換わる際にゼロにリセットされ、FIG.2のステップS8で1に設定されるフラグである。目標アイドル回転到達フラグが1である場合には、エンジン回転速度Neが目標アイドル回転速度NSETに達していることを意味する。さて、ステップS44の判定が否定的な場合は、エンジンコントローラ31はステップS45で、始動時増量補正係数KASを前回と同じ値に設定する。このルーチンにおいては、ステップS44の判定が肯定に転じるまで始動時増量補正係数KASは初期値KAS0に維持される。ステップS45の処理の後、エンジンコントローラ31はステップS50の処理を行なう。一方、ステップS44の判定が肯定に転じると、エンジンコントローラ31はステップS46で始動時増量補正係数KASがゼロかどうかを判定する。前述のように内燃エンジン1の始動直後にステップS43で始動時増量補正係数KASが初期値KAS0に設定される。エンジン回転速度Neが目標アイドル回転速度NSETに達した直後には、始動時増量補正係数KASが初期値KAS0に設定されているので、始動時増量補正係数KASがゼロと一致することはない。この場合には、エンジンコントローラ31はステップS47で、始動時増量補正係数KASを次式2により設定する。KAS=KAS前回-Δt×KAS前回2ただし、Δt=所定減率、KAS前回=前回ルーチン実行時の始動時増量補正係数KASの値。ここで、所定減率Δtは始動時増量補正係数KASの所定時間当たりの減少分を定める値であり、この値は吸入負圧が一定値に収束するタイミングで始動時増量補正係数KASがゼロとなるように、適合により予め定めておく。始動時増量補正係数の前回値であるKAS前回の初期値はKAS0である。目標回転到達フラグが1に達した後に、エンジンコントローラ31はステップS46とS47の処理を繰り返し行ない、その結果、始動時増量補正係数KASは徐々に小さくなってゆく。そこで、ステップS48で始動時増量補正係数KASとゼロを比較し、始動時増量補正係数KASが負の値になったときにはステップS49に進んで始動時増量補正係数KASを0にリセットする。ステップS49の処理の後、エンジンコントローラ31はステップS50の処理を行なう。一方、ステップS48の判定において、始動時増量補正係数KASがゼロ以上の値である場合には、エンジンコントローラ31は始動時増量補正係数KASを再設定することなく、ステップS50の処理を行なう。ステップS50でエンジンコントローラ31は水温増量補正係数KTWをあらかじめROMに格納されたマップを参照して内燃エンジン1の冷却水温Twに基づき計算する。水温増量補正係数KTWは冷却水温Twが低くなるほど大きくなる値である。次のステップS51でエンジンコントローラ31は水温増量補正係数KTWと始動時増量補正係数KASとを用いて次式3により目標当量比TFBYAを算出する。TFBYA=1KTWKAS3目標当量比TFBYAは1.0を中心とする値である。内燃エンジン1の暖機完了後であれば、TFBYA=1KTW=0、KAS=0となる。TFBYA=1は理論空燃比の混合気に相当する。内燃エンジン1の冷間始動時には、始動時増量補正係数KASが加算されることで目標当量比TFBYAは1.0を超える値となる。始動時増量補正係数KASは冷間始動時の燃料壁流量を考慮したものである。結果として、目標当量比TFBYAは1.0を超える値になる。これらの補正は燃焼室5に供給される混合気を理論空燃比とするための補正である。FIG.5はエンジンコントローラ31が実行する燃料噴射パルス幅Tiの算出ルーチンを示す。エンジンコントローラ31は、イグニッションスイッチがONの状態でこのルーチンを一定間隔、例えば100ミリ秒ごと、に実行する。FIG.2の完爆フラグと目標アイドル回転到達フラグの設定ルーチンとFIG.3の点火タイミングとスロットル開度の制御ルーチンとはシークエンシャルに実行される。一方、FIG.4の目標当量比TFBYAの算出ルーチンとFIG.5の燃料噴射パルス幅Tiの算出ルーチンは、FIGS.2と3のルーチンと並行かつ独立して実行される。燃料噴射パルス幅Tiは燃料インジェクタ21の燃料噴射量を代表する値である。ステップS61で、エンジンコントローラ31は始動時燃料噴射パルス幅Ti1を次式4により算出する。Ti1=TST×KNST×KTST4ただし、TST=始動時基本噴射パルス幅;KNST=回転速度補正係数;KTST=時間補正係数。始動時基本噴射パルス幅TST、回転速度補正係数KNST、時間補正係数KTSTの求め方は公知であるので、詳細な説明は省略する。ステップS62で、エンジンコントローラ31はエアフローメータ32からの信号が入力しているかどうかを判定する。エアフローメータ32からの信号が入力していなければ、エンジンコントローラ31はステップS65で最終の燃料噴射パルス幅Tiに始動時燃料噴射パルス幅Ti1を設定する。ステップS65の処理の後、エンジンコントローラ31はルーチンを終了する。エアフローメータ32からの信号が入力している場合は、エンジンコントローラ31はステップS63で、直前に実行されたFIG.4の目標当量比TFBYAの算出ルーチンで得た目標当量比TFBYAを用いて次式5により通常時の燃料噴射パルス幅Ti2を算出する。Ti2=Tp×TFBYAKathos×ααm-1Ts5ただし、Tp=基本噴射パルス幅;TFBYA=目標当量比;Kathos=過渡補正量;α=空燃比フィードバック補正係数;αm=空燃比学習値;Ts=無効噴射パルス幅。過渡補正量Kathosは吸気ポート4の壁面を伝う燃料壁流量を考慮し、基本的にエンジン負荷、エンジン回転速度及び燃料付着部の温度に基づいて算出される公知の補正量である。内燃エンジン1の始動時には燃料噴射量のうち吸気ポート4の壁面を伝う燃料が遅れて燃焼室5に到達するため、その分を燃料噴射量の増量によって補う。空燃比フィードバック補正係数α、空燃比学習値αm、無効噴射パルス幅Tsの概念と計算方法は公知である。基本噴射パルス幅Tpは次式6で算出する。Tp=K×Qa/Ne6ただし、Qa=エアフローメータ32が検出する吸入空気量。式6の定数Kは、混合気の空燃比が理論空燃比となるように設定されている。始動時増量補正係数KASがゼロを超える正の値である間は、燃料インジェクタ21からの燃料噴射量、すなわち燃料噴射パルス幅Tiは増量補正されることとなる。ステップS64-S66で、エンジンコントローラ31は始動時燃料噴射パルス幅Ti1と通常時燃料噴射パルス幅Ti2を比較し、値の大きい方を最終の燃料噴射パルス幅Tiに設定した後、ルーチンを終了する。燃料噴射パルス幅Tiは出力レジスタに移され、各気筒において燃料インジェクタ21が所定の燃料噴射タイミングになると、燃料噴射パルス幅Tiに規定された期間に渡って吸気ポート4に燃料を噴射する。以上説明した、内燃エンジン1の始動時における点火タイミング、スロットル開度、及び燃料噴射量の制御に関して、日本国特許庁が2007年10月25日に公開した前記従来技術JP2007-27803Aの内容をここに引用により合体する。次に内燃エンジン1の始動時に適用されるこの発明固有のスロットル制御について説明する。前記従来技術においては、クランキングの開始から完爆に至る期間のスロットルを全閉位置などの固定位置に保持している。ここで、全閉位置は慣用的用語であって、実際には、スロットル23とスロットル23周囲の吸気管壁面との間に所定の隙間が設定されている。そのため、スロットル23が全閉位置にあってもこの隙間を介して空気は燃焼室5へ吸い込まれる。スロットル23をクラキング開始より一律に固定位置に保持すると、大気圧及びエンジン温度によって、最適な吸入空気量が得られなくなる。その理由を以下に具体的に説明する。クランキング時のスロットル23の開度をある基準温度を想定して固定した場合を考える。クランキング開始時のエンジン温度が基準温度より低いと、エンジンの摩擦抵抗が大きくなり、アイドル回転維持に必要なエンジントルクが増大する。アイドル回転維持に必要な吸入空気量もこれに伴って増大することになる。また、車両が低地から高地に移動すると大気圧が低下する。クランキング時のスロットル23の開度が変わらなければ、スロットル23は実質的に絞られた状態となる。この場合には、低地よりも吸入負圧は発達するが、同時に吸入空気量が低地より減少することになる。内燃エンジン1のクランキング時におけるスロットル開度を、全閉位置を含む固定位置に保持する場合には、以上のように内燃エンジン1の始動性が、クランキング開始時の大気圧とエンジン温度の影響を受けることは避けられない。クランキング開始時には大気圧より低い吸入負圧を発生させるためにスロットル23をまず閉じる。この時のスロットル23の開度をスロットル23の初期開度と称する。この発明は、スロットル23の初期開度をクランキング開始時の大気圧とエンジン温度に応じて異なる値に設定することで、これらの要素の影響を排除する。FIGS.6-10を参照して、この発明によるエンジンコントローラ31が実行する上記の制御を含む、内燃エンジン1の始動制御を説明する。エンジンコントローラ31は、イグニッションスイッチがONの状態で前記従来技術のFIG.2の完爆フラグと目標アイドル回転到達フラグの設定ルーチン実行に引き続き、FIG.3のルーチンに代えてFIG.6の点火タイミングの制御ルーチンと、FIG.7のフラグ設定ルーチンと、FIG.8のスロットル制御ルーチンとを実行する。一方、前記従来技術と同様に、FIG.4の目標当量比TFBYAの算出ルーチンとFIG.5の燃料噴射パルス幅Tiの算出ルーチンがFIG.2のルーチンに対して並行かつ互いに独立して実行される。FIG.6に示す点火タイミング指令値の計算ルーチンは、前記従来技術のFIG.3のルーチンから、スロットル制御に関するステップS24,S30,S31,及びS34を削除したものに相当する。エンジンコントローラ31はこのルーチンにおいては、点火プラグ14の点火タイミングのみを制御し、FIGS.7と8のルーチンでスロットル23の制御を行なう。FIG.7のフラグ設定ルーチンは、FIG.6の点火タイミング算出ルーチンに引き続いて実行される。FIG.7を参照すると、ステップS111で、エンジンコントローラ31は今回のルーチン実行タイミングが、イグニッションスイッチがOFFからONへ切り換わった直後であるかどうかを判定する。判定が肯定的な場合に、エンジンコントローラ31はステップS112で、吸入負圧発達始動許可フラグを1に、スロットル絞りフラグを1に、スロットル制御フラグをゼロに、それぞれ設定した後、ルーチンを終了する。ステップS111の判定が否定的な場合は、エンジンコントローラ31はステップS113で、クランキング開始からのストローク数が所定数6以上であるかどうかを判定する。ストローク数が所定数6未満の場合には、エンジンコントローラ31は何もおこなわずにルーチンを終了する。ストローク数が所定数6以上の場合には、エンジンコントローラ31はステップS114で、スロットル絞りフラグをゼロに、スロットル制御フラグを1に、それぞれ設定するここで、ストローク数を所定数6と比較する意味を説明する。始動時において、スロットル23は実際の吸入負圧が燃料の気化を促進するのに十分な大きさの吸入負圧となり、かつ目標アイドル回転速度の維持に必要な吸入空気量が得られるようになった時点で開くことが望ましい。このときの吸入負圧を開要求吸入負圧しきい値と称する。前記従来技術はFIG.3のステップS25で完爆フラグが1に転じることで開要求吸入負圧しきい値に達すると仮定し、ステップS29で目標スロットル開度tTVOを増大させている。しかしながら、クランキング時の吸入負圧は大きく脈動し、吸入負圧が開要求吸入負圧しきい値までいったんは増大しても、直後に吸入負圧は減少に転じる。ここで、吸入負圧の減少は大気圧に向けての圧力上昇を意味する。このタイミングで、吸気スロットル23を開くと、その後の吸入負圧の発達が阻害され、吸入負圧は開要求吸入負圧しきい値付近で波打つこととなってしまう。吸入負圧が開要求吸入負圧しきい値よりさらに増大しないと、燃料の気化が十分に促進されず、冷間始動時に多く発生するHCの増加を抑制できない。吸入負圧の発達を妨げないようにするには、実際の吸入負圧が燃料の気化を促進するのに十分な大きさの吸入負圧となり、かつ目標アイドル回転速度の維持に必要な吸入空気量が得られるようになるタイミングを、吸入負圧がクランキング開始後2度目に開要求吸入負圧しきい値に到達するタイミングと見なし、これをスロットル23を開き始めるタイミングとすることが望ましい。このタイミンクを4気筒または8気筒エンジンを想定して、クランキング開始からのストローク数に換算して設定したのが所定数6である。吸入負圧が2度目に開要求吸入負圧しきい値に到達するタイミングに相当するストローク数を、所定数として実験もしくはシミュレーションによりあらかじめ求めておく。したがって、所定数は6に限定されない。次のステップS115で、エンジンコントローラ31は目標スロットル開度tTVOが目標アイドル開度TVO1に達したかどうかを判定する。判定が否定的な場合は、エンジンコントローラ31は直ちにルーチンを終了する。判定が肯定的な場合は、エンジンコントローラ31はステップS116で吸入負圧発達始動許可フラグとスロットル制御フラグをともにゼロに切り換える。スロットル絞りフラグはゼロの状態を維持する。以上のルーチン実行により、スロットル23はクランキング開始からのストローク数が所定数6に達するまでは開動を開始せず、ストローク数が6に達すると開動を開始することになる。FIG.8のスロットル制御ルーチンはFIG.7のフラグ設定ルーチンに引き続いて実行される。FIG.8を参照すると、ステップS131で、エンジンコントローラ31は吸入負圧発達始動許可フラグが1かどうかを判定する。吸入負圧発達始動許可フラグが1である場合は、エンジンコントローラ31は、ステップS132で通常始動モードであるかどうかを判定する。通常始動モードは内燃エンジン1が高温状態で始動することを意味する。内燃エンジン1の運転停止直後にドライバが始動操作を行った場合や、アイドルストップからの再始動など、前回の運転の余熱により暖機された状態で内燃エンジン1の始動が行なわれる場合がこれに当たる。この場合には吸入負圧発達を必要としない。この発明は吸入負圧発達を必要とする内燃エンジン1の冷間始動を対象としているため、通常始動モードではこの発明による制御を行なわずに、ステップS133で通常始動を行なう。ステップS131で吸入負圧発達始動許可フラグが1でない場合も、エンジンコントローラ31は、ステップS133で通常始動を行なう。通常始動は内燃エンジン1が暖機を必要としないケースで適用される始動制御を意味するステップS133の処理の後、エンジンコントローラ31はルーチンを終了する。内燃エンジン1の冷間始動を行なう場合は、ステップS132の判定は否定的となる。その場合には、エンジンコントローラ31はステップS134で、スロットル絞りフラグが1かどうかを判定する。スロットル絞りフラグが1である場合には、エンジンコントローラ31はステップS141以降の処理を行なう。一方、スロットル絞りフラグが0である場合は、エンジンコントローラ31はステップS136でスロットル制御フラグを判定する。スロットル制御フラグが1である場合にはステップS137でスロットル目標開度tTVOを前述の式1で計算する。ステップS137の処理の後、エンジンコントローラ31はルーチンを終了する。ステップS141でエンジンコントローラ31は初期開度設定済みフラグが1かどうかを判定する。初期開度設定済みフラグの初期値はゼロである。言い換えれば、初期開度設定済みフラグはイグニッションスイッチまたはスタータスイッチのOFFからONへの切り換わりに伴ってゼロにリセットされる。初期開度設定済みフラグがゼロである場合は、エンジンコントローラ31はステップS142-144でスロットル23の初期開度を設定する。すなわち、ステップS142で、クランキング開始時に水温センサ37が検出した冷却水温以下、始動時水温と称する。TWINTと、クランキング開始時に圧力センサ38が検出した大気圧Paとから、FIG.9に示す内容のマップを参照してスロットル23の初期開度TVOiniを設定する。始動時水温TWINTは、始動時のエンジン温度を代表する値として用いられる。クランキング開始時のコレクタ2内は大気圧Paに保たれる。したがって、クランキング開始時に圧力センサ38が検出する圧力も大気圧Paに等しい。このように、吸気圧を検出するための圧力センサ38を用いてクランキング開始時の大気圧Paを検出するので、大気圧を検出するための専用の圧力センサを別途に備える必要はない。FIG.9を参照すると、大気圧Paが一定の場合、スロットル23の初期開度TVOiniは始動時水温TWINTが高いほど小さくなり、始動時水温TWINTが最も高い場合に全閉位置となるようにマップの特性が設定される。始動時水温TWINTが最も低い場合をデフォルト開度とする。始動時水温TWINTが低いほど、エンジン1の摩擦抵抗が大きく始動性が悪い。始動時水温TWINTが低くなるにつれてスロットル23の初期開度TVOiniを増大させて、クランキング中の吸入空気量を増やすことで、摩擦抵抗に対抗してエンジンの発生トルクを増大させることができる。一方、始動時冷却水温TWINTが一定の場合には、スロットル23の初期開度TVOiniは大気圧Paが低くなるほど大きくなるようにマップの特性が設定される。大気圧Paが低い高地では、大気圧Paが高い低地より空気密度が小さく、実質的な吸入空気量が少ない。その結果、エンジン発生トルクが減少して始動性が悪くなる、実質的な吸入空気量の減少を補うために、大気圧Paが低い高地ではスロットル23の初期開度TVOiniを増大させて、吸入空気量を増やすことで、エンジン発生トルクの減少を防止するのである。圧力センサ38は吸気コレクタ2に取り付けられ、エンジン始動後の吸入負圧を検出する。クランクキング開始直前には吸気コレクタ2内は大気圧となっているので、クランクキング開始タイミングにおいて圧力センサ38が検出する圧力は大気圧に等しい。スロットル23の初期開度TVOiniを決定するパラメータとして、始動時水温TWINTに代えて、クランキング開始時のエンジンオイル温度やクランキング開始時のトランスミッションオイル温度を用いることができる。大気圧は大気の空気密度の代表値であるので、空気密度を直接検出するようにしてもかまわない。以上のルーチン実行により、クランキング開始からのストローク数が所定数6に達するまでの期間のスロットル23の初期開度TVOiniが始動時水温TWINTと大気圧Paに応じて設定される。FIGS.10A-10FとFIGS.11A-11Fを参照して、FIGS.6-8のルーチン実行がもたらす作用を次に説明する。FIGS.10A-10Fは内燃エンジン1の冷間始動時のエンジン回転速度、空燃比、スロットル開度、吸入負圧、エンジントルク、及び燃料噴射量を示す。これらの図において、実線はFIGS.6-8のルーチンを常温始動に適用した場合、一点鎖線はFIGS.6-8のルーチンを低温始動において実行した場合を示す。破線は本発明によらずに始動時のスロットル開度を固定した場合を示す。横軸はクランキング開始からの経過時間を示す。なお、常温始動と低温始動はともに内燃エンジン1の冷間始動に関する呼称であり、クランキング開始時のエンジン温度によって区別される。クランキング開始時のエンジン温度は大気温度に準じる。正確には、常温始動は常温下での内燃エンジン1の冷間始動であり、低温始動は、低温下での内燃エンジン1の冷間始動を意味する。内燃エンジン1の運転停止直後の再始動のように、内燃エンジン1が前回運転時の余熱により暖機された状態で再始動する場合には、前述のように通常始動モードと称して冷間始動と区別する。さて、常温始動時には、始動時水温TWINTから、FIG.8のステップS142でFIG.9のマップを参照して求められる、スロットル23の初期開度TVOiniは、FIG.10Cの実線に示すように相対的に小さな値に設定される。そのため、FIG.10Dに示すように吸入負圧の十分な発達を促すことができ、噴射された燃料の気化促進に好ましい効果が得られる。また、初期開度TVOiniを小さな値とすることで、吸入空気量を完爆に適した吸入空気量に制御することができる。その結果、FIG.10Aに示すように、目標アイドル回転速度を超えた吹け上がりを抑制し、FIG.10Fに示すように始動に要する燃料噴射量を減らすことができる。さらに、実際の吸入負圧が燃料の気化を促進するのに十分な大きさの吸入負圧となり、かつ目標アイドル回転速度の維持に必要な吸入空気量が得られるようになるタイミングを、吸入負圧が2度目に開要求吸入負圧しきい値に到達するタイミングと見なし、スロットル23を開き始めるタイミングをこのタイミングに設定することで、FIG.10Bに示すように、空燃比の過度のリーン化を防止することができる。一方、低温始動においては、FIG.8のステップS142でFIG.9のマップに基づき、スロットル23の初期開度TVOiniがFIG.10Cの鎖線に示すように常温始動時より大きな値に設定される。低温始動においては、エンジン1の摩擦抵抗が大きく始動性が悪い。この場合には、スロットル23の初期開度TVOiniを増大させて、クランキング中の吸入空気量を増やすことで、FIG.10Eに示すようにエンジントルクを初爆から増大させるので、摩擦抵抗に抗して内燃エンジン1のスムーズな始動が確保される。初期開度TVOiniが大きいと、吸入負圧は発達しにくい。噴射燃料の気化は吸入負圧の発達によって促進されるので、低温始動においてはFIG.10Bに示すように常温始動と比べて噴射された燃料の気化促進効果は小さく、空燃比のリーン化防止効果も限定的となる。ただし、その場合でも図の破線に示すように、本発明を適用せずに初爆前にデフォルト開度からスロットル23を開き始めるケースと比べれば、吸入空気圧の発達に関しても一定の好ましい効果が得られる。FIG.11A-11Fは内燃エンジン1の始動時のエンジン回転速度、空燃比、スロットル開度、吸入負圧、エンジントルク、及び燃料噴射量を示す。これらの図において、実線はFIGS.6-8のルーチンを大気圧の高い低地での始動に適用した場合、一点鎖線はFIGS.6-8のルーチンを大気圧の低い高地での始動に適用した場合を示す。破線は本発明によらずに始動時のスロットル開度を固定した場合を示す。横軸はクランキング開始からの経過時間を示す。大気圧の高い低地での始動においては、始動時水温Tiniから、FIG.8のステップS142でFIG.9のマップを参照して求められる、スロットル23の初期開度TVOiniは、FIG.11Cの実線に示すように相対的に小さな値に設定される。そのため、FIG.11Dに示すように、吸入負圧の十分な発達を促すことができ、噴射された燃料の気化促進に好ましい効果が得られる。また、初期開度TVOiniを小さな値とすることで、吸入空気量を完爆に適した吸入空気量に制御することができる。その結果、FIG.11Aに示すように、目標アイドル回転速度を超えた吹け上がりを抑制し、FIG.11Fに示すように始動に要する燃料噴射量を減らすことができる。さらに、実際の吸入負圧が燃料の気化を促進するのに十分な大きさの吸入負圧となり、かつ目標アイドル回転速度の維持に必要な吸入空気量が得られるようになるタイミングを、吸入負圧が2度目に開要求吸入負圧しきい値に到達するタイミングと見なし、スロットル23を開き始めるタイミングをこのタイミングに設定することで、FIG.11Bに示すように、空燃比の過度のリーン化を防止することができる。一方、大気圧の低い高地での始動においては、FIG.8のステップS142でFIG.9のマップに基づき、スロットル23の初期開度TVOiniがFIG.11Cの鎖線に示すように低地での始動より大きな値に設定される。大気圧Paが低い高地では、大気圧Paが高い低地より空気密度が小さく、実質的な吸入空気量が少ない。その結果、エンジントルクが減少して始動性が悪くなる。これに対して、スロットル23の初期開度TVOiniを増大させると、吸入空気量が初爆から増加し、空気密度による吸入空気量の実質的な減少を補うことができる。その結果、エンジントルクの減少を阻止して、内燃エンジン1のスムーズな始動が確保される。初期開度TVOiniが大きいと、吸入負圧は発達しにくい。噴射燃料の気化は吸入負圧の発達によって促進されるので、低温始動においてはFIG.11Bに示すように常温始動と比べて噴射された燃料の気化促進効果は小さく、空燃比のリーン化防止効果も限定的となる。ただし、その場合でも図の破線に示すように、本発明を適用せずに初爆前にデフォルト開度からスロットル23を開き始めるケースと比べれば、吸入空気圧の発達に関しても一定の好ましい効果が得られる。以上の制御により、内燃エンジン1の冷間始動時の吸入負圧の発達促進と、アイドル回転速度維持に必要な量の空気供給との両立を、温度及び気圧によらずに常に最適なバランスのもとで実現することができる。この実施形態では、内燃エンジン1の始動時のエンジン温度としての始動時水温TWINTと大気圧Paの双方をパラメータとして初期開度TVOiniを設定している。しかしながら、始動時水温TWINTと大気圧Paの一方のみに基づき初期開度TVOiniを設定することでも、相応の効果を得ることができる。以上の説明に関して2010年12月27日を出願日とする日本国における特願2010-290176号、の内容をここに引用により合体する。以上、この発明をいくつかの特定の実施例を通じて説明してきたが、この発明は上記の各実施例に限定されるものではない。当業者にとっては、クレームの技術範囲でこれらの実施例にさまざまな修正あるいは変更を加えることが可能である。"