"内燃機関の停止時に気筒判別情報を記憶する気筒判別情報記憶手段と、前記内燃機関の各気筒の実行程を判別する実行程判別手段と、前記記憶された気筒判別情報にもとづいて所定の気筒へ燃料を噴射するとともに、前記実行程判別手段による実行程判別後は、実行程に応じた燃料噴射タイミングにて運転状態に応じた燃料噴射量を噴射させて前記内燃機関を始動させる燃料噴射制御手段と、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記実行程判別手段による前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを判別する噴射タイミング判別手段と、を備え、前記燃料噴射制御手段は、前記噴射タイミング判別手段による前記判別の結果にもとづいて前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにおける燃料噴射制御を行うことを特徴とする内燃機関の制御装置。前記燃料噴射制御手段は、前記噴射タイミング判別手段により、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与しないと判別される場合は、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにおける燃料の噴射を、前記運転状態に応じた燃料噴射量とさせるとともに、前記噴射タイミング判別手段により、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与すると判別される場合は、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにおける燃料の噴射を行わないことを特徴とする請求の範囲第1項に記載の内燃機関の制御装置。前記内燃機関は、燃料噴射弁が吸気通路に配設されたポート噴射式内燃機関であって、前記噴射タイミング判別手段は、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを、前記所定の気筒の実行程判別時の行程が吸入行程における下死点前であるか否かにより行うことを特徴とする請求の範囲第1項に記載の内燃機関の制御装置。前記内燃機関は、燃料噴射弁が吸気通路に配設されたポート噴射式内燃機関であって、前記噴射タイミング判別手段は、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを、前記所定の気筒の実行程判別時の行程が吸入行程における下死点前であるか否かにより行うことを特徴とする請求の範囲第2項に記載の内燃機関の制御装置。前記内燃機関は、燃料噴射弁が燃焼室に向けて配設された直噴式内燃機関であって、前記噴射タイミング判別手段は、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを、前記所定の気筒の実行程判別時の行程が排気行程における上死点前であるか否かにより行うことを特徴とする請求の範囲第1項に記載の内燃機関の制御装置。前記内燃機関は、燃料噴射弁が燃焼室に向けて配設された直噴式内燃機関であって、前記噴射タイミング判別手段は、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを、前記所定の気筒の実行程判別時の行程が排気行程における上死点前であるか否かにより行うことを特徴とする請求の範囲第2項に記載の内燃機関の制御装置。しかしながら、特許文献1に開示される技術では、第1の判別手段による気筒判別と第2の判別手段による気筒判別の結果に不整合が生じており、かつ、第1の判別手段による気筒判別にもとづいて燃料噴射が既に行われている場合に、その燃料噴射が気筒内へ導入されたか否かの判定を行っていない。その結果、先の燃料噴射された燃料が気筒内に全量導入されていても、常に次サイクルの燃料噴射量を減算するので、次サイクルにおいて燃料不足を生じ、失火やエミッションガスの悪化につながるおそれがある。そこで本発明は、内燃機関の始動時のエミッション特性を向上できる内燃機関の制御装置を提供することを目的とする。前記課題を解決するために請求の範囲第1項に係わる発明の内燃機関の制御装置は、内燃機関の停止時に気筒判別情報を記憶する気筒判別情報記憶手段と、前記内燃機関の各気筒の実行程を判別する実行程判別手段と、前記記憶された気筒判別情報にもとづいて所定の気筒へ燃料を噴射するとともに、前記実行程判別手段による実行程判別後は、実行程に応じた燃料噴射タイミングにて運転状態に応じた燃料噴射量を噴射させて前記内燃機関を始動させる燃料噴射制御手段と、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記実行程判別手段による前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを判別する噴射タイミング判別手段と、を備え、前記燃料噴射制御手段は、前記噴射タイミング判別手段による前記判別の結果にもとづいて前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにおける燃料噴射制御を行うことを特徴とする。請求の範囲第1項に記載の発明によれば、前回停止時の記憶された気筒判別情報にもとづいて所定の気筒へ燃料を噴射して内燃機関を始動させる内燃機関の制御装置において、実行程判別前に、記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かの判別が可能となる。その結果、その判別結果に応じて前記所定の気筒の実行程判別後の最初の燃料噴射タイミングの燃料の噴射制御を行うため、前記所定の気筒の実行程判別後の最初の燃料噴射における誤った燃料の噴射を防止でき、内燃機関の始動特性の悪化やエミッション特性の悪化を防止できる。請求の範囲第2項に係わる発明の内燃機関の制御装置は、請求の範囲第1項に記載の発明の構成に加え、前記燃料噴射制御手段は、前記噴射タイミング判別手段により、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与しないと判別される場合は、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにおける燃料の噴射を、前記運転状態に応じた燃料噴射量とさせるとともに、前記噴射タイミング判別手段により、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与すると判別される場合は、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにおける燃料の噴射を行わないことを特徴とする。請求の範囲第2項に記載の発明によれば、実行程判別前に、記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて前記所定の気筒へ噴射される燃料と同じ燃焼タイミングで寄与しないと判別される場合は、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにおいて燃料噴射を実行し、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与すると判別される場合は、燃料噴射を行わない。その結果、前者においては失火を防止でき、後者においては過剰な燃料によるエミッションの悪化を防止できる。請求の範囲第3項に係わる発明の内燃機関の制御装置は、請求の範囲第1項に記載の発明の構成に加え、前記内燃機関は、燃料噴射弁が吸気通路に配設されたポート噴射式内燃機関であって、前記噴射タイミング判別手段は、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを、前記所定の気筒の実行程判別時の行程が吸入行程における下死点前であるか否かにより行うことを特徴とする。請求の範囲第4項に係わる発明の内燃機関の制御装置は、請求の範囲第2項に記載の発明の構成に加え、前記内燃機関は、燃料噴射弁が吸気通路に配設されたポート噴射式内燃機関であって、前記噴射タイミング判別手段は、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを、前記所定の気筒の実行程判別時の行程が吸入行程における下死点前であるか否かにより行うことを特徴とする。請求の範囲第3項または請求の範囲第4項に記載の発明によれば、ポート噴射式内燃機関において、記憶された気筒判別情報にもとづいて実行程判別前に燃料が噴射された気筒の実行程判別時の行程が、吸入行程における下死点前であるか否かによって、記憶された気筒判別情報にもとづいて実行程判別前に噴射された燃料と、前記実行程判別前に噴射された気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料とが同じ燃焼タイミングで寄与するか否かを判断するので、実行程判別前に噴射された燃料に対して確実に燃料の燃焼寄与状態が把握できる。また、既存の内燃機関並びにその周辺機器及び制御装置のハード構成の中で実現できるため、内燃機関の製造コスト増にならずに実現できる。具体的には、ポート噴射式内燃機関において、記憶された気筒判別情報にもとづいて実行程判別前に前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の燃料噴射タイミングにて噴射される燃料の燃焼タイミング以前において、気筒内への燃料の導入になっていないと判定された場合、前記所定気筒の実行程判別後の最初の燃料噴射タイミングにて再び燃料を噴射するのをやめる。その結果、従来技術では、実行程判別後の最初の燃料噴射タイミングにて再び燃料噴射を行いリッチな燃焼になり過ぎて、エミッション特性を悪化させることになるのを防止できる。逆に、ポート噴射式内燃機関において、記憶された気筒判別情報にもとづいて実行程判別前に前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別時に、気筒内への燃料の導入になっていると判定された場合、実行程判別後の最初の燃料噴射タイミングで再び燃料を噴射させる。その結果、従来技術では、噴射量を減算してリーンになり過ぎて、失火またはエミッション特性を悪化させることになるのを防止できる。請求の範囲第5項に係わる発明の内燃機関の制御装置は、請求の範囲第1項の記載の発明の構成に加え、前記内燃機関は、燃料噴射弁が燃焼室に向けて配設された直噴式内燃機関であって、前記噴射タイミング判別手段は、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを、前記所定の気筒の実行程判別時の行程が排気行程における上死点前であるか否かにより行うことを特徴とする。請求の範囲第6項に係わる発明の内燃機関の制御装置は、請求の範囲第2項の記載の発明の構成に加え、前記内燃機関は、燃料噴射弁が燃焼室に向けて配設された直噴式内燃機関であって、前記噴射タイミング判別手段は、前記記憶された気筒判別情報にもとづいて前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを、前記所定の気筒の実行程判別時の行程が排気行程における上死点前であるか否かにより行うことを特徴とする。請求の範囲第5項または請求の範囲第6項に記載の発明によれば、直噴式内燃機関において、記憶された気筒判別情報にもとづいて実行程判別前に噴射された気筒の実行程判別時の行程が、排気行程における上死点前であるか否かによって、実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを判断するので、実行程判別前に噴射された燃料に対して確実に燃料の燃焼寄与状態が把握できる。また、既存の内燃機関並びにその周辺機器及び制御装置のハード構成の中で実現できるため、内燃機関の製造コスト増にならずに実現できる。具体的には、直噴式内燃機関において、記憶された気筒判別情報にもとづいて実行程判別前に前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別後の燃料噴射タイミングにて噴射される燃料の燃焼タイミング以前において、気筒内で爆発、または気筒外へ排出されていないと判定された場合、実行程判別後の最初の燃料噴射タイミングにて再び燃料を噴射するのをやめる。その結果、従来技術では、実行程判別後の最初の燃料噴射タイミングにて再び燃料噴射を行い、リッチな燃焼になり過ぎて、エミッション特性を悪化させることになるのを防止できる。逆に、直噴式内燃機関において、記憶された気筒判別情報にもとづいて実行程判別前に前記所定の気筒へ噴射された燃料が、前記所定の気筒の実行程判別時に、気筒内で爆発、または気筒外へ排出されたと判定された場合、実行程判別後の最初の燃料噴射タイミングにて再び燃料を噴射させる。その結果、従来技術では、噴射量を減算してリーンになり過ぎて、失火またはエミッション特性を悪化させることになるのを防止できる。本発明によれば、内燃機関の始動時のエミッション特性を向上できる内燃機関の制御装置を提供することができる。《第1の実施形態》以下、本発明の第1の実施形態に係わる内燃機関の制御装置の前提とする内燃機関について、簡単に説明する。内燃機関の概要内燃機関ポート噴射式内燃機関は、例えば、4気筒直列型のエンジン本体図示せずを備えている。エンジン本体の吸気管には、吸入空気の温度を検出する吸気温センサ11図1参照と、吸入空気の流量である吸入空気量を検出するエアフローメータ14図1参照が設けられている。この吸気管のエアフローメータ14の下流側には、スロットルバルブ駆動モータ10図1参照によって開度調節されるスロットルバルブ図示省略とスロットル開度を検出するスロットル開度センサ16図1参照とが設けられている。さらに、吸気管のスロットルバルブの下流側には、サージタンク図示せずが設けられ、このサージタンクに、吸気圧力吸気マニホールド圧とも称するを検出する吸気圧センサ18図1参照が設けられている。また、サージタンクとエンジン本体のシリンダヘッドとの間には、エンジン本体の各気筒に空気を導入するように吸気マニホールドが配設されている。また、エンジン本体のシリンダヘッドには、吸気弁、排気弁、各気筒の吸気ポートに燃料を噴射する燃料噴射弁20A図1参照、点火プラグ21図1参照が取り付けられている。各点火プラグ21は、ディストリビュータ29を介して火花放電によって燃焼室内の混合気に着火する。ここで、ディストリビュータ29は、例えば、電子式のディストリビュータである。一方、エンジン本体の排気管図示省略には、排気ガス中のCO,HC,NOx等を浄化する三元触媒等の触媒を含んだ触媒装置図示省略が設けられ、この触媒装置の上流側に、排気ガスの空燃比またはリーン/リッチ等を検出する排気ガスセンサ空燃比センサ、酸素センサ等24図1参照が設けられている。また、エンジン本体のシリンダブロックには、冷却水温度を検出する水温センサ25図1参照や、エンジン本体のクランク軸が一定クランク角、例えば、6deg.回転する毎にパルス信号を出力するクランクセンサ26図1参照が取り付けられている。その他に、カム軸図示せずには、TDCTopDeadCenterセンサ28図1参照が設けられ、各気筒においてピストンが上死点に対応するクランク角毎にTDCパルスを出力する。このクランクセンサ26の出力信号とTDCセンサ28の出力信号にもとづいて、クランク角がエンジン制御ECUElectricControlUnit27A図1参照で算出され、また、クランクセンサ26の出力信号にもとづいてエンジン回転速度Neが算出される。ここで、エンジン制御ECU27Aが請求の範囲に記載の内燃機関の制御装置に対応する。燃料供給系次に、内燃機関の燃料供給系について簡単に説明する。内燃機関は、燃料タンク図示せずからフュエルポンプモータ4図1参照を内蔵したフュエルポンプによって送油管図示せずを介してデリバリパイプ図示せずに供給される。デリバリパイプからは、4本の燃料配管図示せずを介して、各気筒の吸気ポートに配置された燃料噴射弁20A,20A,20A,20A図1参照に燃料が供給される。ちなみに、本実施形態では、燃料噴射弁20Aは、エンジン制御ECU27AのCPUの実行する機能である後記する燃料噴射制御部燃料噴射制御手段215Aにより、例えば、排気行程噴射するように制御される。フュエルポンプのフュエルポンプモータ4は、エンジン制御ECU27Aにより制御されるスイッチ回路131図1参照でオン、オフされる。《エンジン制御ECUの機能》図1を参照しながらエンジン制御ECUの機能の概要について説明する。図1は、第1の実施形態におけるエンジン制御ECUのブロック構成図である。センサ11,14,16,18,24,25,26,28からの出力の他、アクセルペダルの踏み込み量を検出するアクセルポジションセンサ43からの出力、車速を車輪速等から検出して出力する車速センサ45等が、エンジン制御ECU27Aに入力される。このエンジン制御ECU27Aは、マイクロコンピュータ27aを主体として構成されている。マイクロコンピュータ27aは、図示しないCPUCentralProcessingUnit、ROMReadOnlyMemory、RAMRandomAccessMemoryや、高速書き込みができる不揮発メモリ、入力インタフェース回路27b、出力インタフェース回路27c等から構成されている。そして、マイクロコンピュータ27aは、例えば、ROMに格納されているプログラムをCPUが実行して、運転者のアクセルペダルの踏み込み量やエンジン運転状態に応じて、スロットルバルブ図示せずの開度制御や燃料噴射弁20Aの燃料噴射量の制御や点火プラグ21の点火時期の制御を行う。ちなみに、エンジン制御ECU27Aには、バッテリBからの電源を受けて、エンジン制御ECU27A内のマイクロコンピュータ27a、スロットルバルブの開度を制御するスロットルバルブ駆動モータ10を駆動するための駆動回路120、燃料噴射弁20Aを駆動する駆動回路121等へ電力を供給するECU電源回路110を含んでいる。ECU電源回路110はイグニッションスイッチ111以下、IG-SW111と称するにより、オン状態になり、ディストリビュータ29へ高電圧を発生させて供給する図示しないイグナイターへの給電もオン状態となる。マイクロコンピュータ27aは、ROMに内蔵されたプログラムを読み出して実行することにより実現される機能部である、エンジン回転速度演算部210、タイミング制御部211A、要求出力演算部212、燃料供給系制御部214A、燃料噴射制御部215A、点火時期制御部216等を含んで構成されている。エンジン回転速度演算部タイミング制御部211Aは、エンジン制御の全体制御を行うために、IG-SW111の操作位置信号を検出するとともに、その操作位置信号に対応した操作位置検出フラグFLAGIGSWを設定処理する。また、エンジン回転速度演算部210は、クランクセンサ26からの信号にもとづいてエンジン回転速度Neを算出し、要求出力演算部212、燃料供給系制御部214A、点火時期制御部216へ入力する。タイミング制御部タイミング制御部211Aは、クランクセンサ26からの信号以下、CRKパルスと称する及びTDCセンサ28からの信号以下、TDCパルスと称するを読み込み、それらの信号にもとづいて各気筒の吸入行程の開始のTDCタイミングを基準クランク角=0ゼロdeg.として検出する。そして、基準クランク角0ゼロdeg.からCRKパルスを新たに受信する毎に、例えば、6deg.減算して現在の各気筒のクランク角を演算し、クランク角記憶部211a,211b,211c,211dに記憶させる。なお、クランク角が-180deg.のときその値を540deg.と読み替え、引き続き、CRKパルスを新たに受信する毎に減算する。このクランク角記憶部211a,211b,211c,211dは、具体的には前記した高速書き込み可能な不揮発メモリで構成される。ここで、クランク角記憶部211a,211b,211c,211dが請求の範囲に記載の気筒判別情報記憶手段に対応する。図2は、TDCパルス、CRKパルス及び各気筒の行程を示すタイムチャートである。本実施形態では、タイミング制御部211Aにおいて、図2の最上段のTDCと表示したTDCパルス及び2段目にCRKと表示したCRKパルスのそれぞれのタイムチャートのA部、B部、C部、D部で示すように所定のBTDCBeforeTDC角の期間において、CRKパルスの形状とTDCパルスの形状の組み合わせのいずれが入力されたかを判定して、どの気筒の排気行程のTDCであるかを判定する。図2に示したCRKパルスの形状とTDCパルスの形状の組み合わせの例においては、4気筒の各排気行程のTDCタイミング毎に異なるCRKパルスの形状とTDCパルスの形状の組み合わせとなっており、1つの気筒の排気行程のTDCタイミングをタイミング制御部211Aが検出することによって、どの気筒が吸入行程に入るのかの気筒判別と、各気筒に対する前記した基準クランク角0に対する現在のクランク角を算出可能になっている。ちなみに、図2逆三角印▽と、NN=1~4で示した符号は、その▽印を付したタイミングでどの気筒が爆発行程に入ったかを示している。以下、本実施形態では、内燃機関の各気筒の1つの燃焼サイクルを構成する4ストロークを、吸入行程、圧縮行程、爆発行程、排気行程と称する。なお、吸入行程は吸気行程とも呼ばれ、爆発行程は膨張行程とも呼ばれる。ちなみに、エンジン制御ECU27Aは、IG-SW111が、イグニッションONの位置に回されると、そのマイクロコンピュータ27aが起動されて初期化処理を開始する。また、IG-SW111が、スタータ駆動の位置に回されると、スタータがエンジンを回転させ始め、マイクロコンピュータ27aの初期化処理が終了すると、タイミング制御部211Aは、クランクセンサ26からのCRKパルスとTDCセンサ28からのTDCパルスを一定の周期で読み込みを開始する。そして、初期化処理が終了した直後は、タイミング制御部211Aは、各気筒のクランク角を、前回のエンジン停止時にクランク角記憶部211a,211b,211c,211dに記憶させたクランク角に、CRKパルスを検出のつど6deg.減算して各気筒のクランク角として算出する。このように算出されたクランク角を記憶にもとづくクランク角とか第1の手段にもとづくクランク角と称する。そして、マイクロコンピュータ27aの初期化処理が終了した後に、タイミング制御部211Aが最初のTDCパルスを検出したタイミングで、記憶にもとづくクランク角と、CRKパルスの形状とTDCパルスの形状の組み合わせにもとづいて決定した各気筒のクランク角とが一致するか否かを判定し、一致する場合は、そのまま各気筒のクランク角を更新算出し、クランク角記憶部211a,211b,211c,211dに記憶更新する。以下、CRKパルスの形状とTDCパルスの形状の組み合わせにもとづいて決定した各気筒のクランク角を、ハードにもとづくクランク角とか、第2の手段にもとづくクランク角と称する。記憶にもとづくクランク角と、ハードにもとづくクランク角とが一致しなくなる原因としては、エンジン制御ECU27Aの起動前、もしくは、停止している状態でクランク軸が動かされることが挙げられる。具体的には、エンジンを始動させる際にエンジン制御ECU27Aが起動する前にスタータが駆動する場合や、サービス工場での修理の際にクランク軸が動かされる場合、タイヤとエンジンがつながった状態ギアイン状態において坂道で車両が動いた場合等である。記憶にもとづくクランク角とハードにもとづくクランク角とが一致しない場合は、各気筒のクランク角のズレを修正して、その後は、修正されたクランク角にもとづいてCRKパルスの検出毎に6deg.を減算して各気筒のクランク角を更新計算し、クランク角記憶部211a,211b,211c,211dに記憶更新する。なお、図2のA部、C部に示すようにCRKパルスが6deg.の基準パルスよりも広幅のパルスが検出する場合は、タイミング制御部211Aは、その前後のCRKパルスと間隔が異なるので容易に判別でき、例えば、広幅のパルスの1周期分は18deg.に対応するとして、クランク角6deg.の3個分として算出を行う。また、タイミング制御部211Aは、6deg.毎のクランク角の算出のつどクランク角受信信号を燃料噴射制御部215Aに出力する。タイミング制御部211Aは、エンジン始動時の最初は記憶にもとづくクランク角を燃料噴射制御部215A、点火時期制御部216に出力し、その後に記憶にもとづくクランク角をハードにもとづくクランク角でチェックする。記憶にもとづくクランク角とハードにもとづくクランク角との間に誤差がある場合は、記憶にもとづくクランク角が間違っていると判定して、その時点でハードにもとづくクランク角に修正し、その後は修正されたクランク角を燃料噴射制御部215A、点火時期制御部216に出力する。要求出力演算部要求出力演算部212は、主に、アクセルポジションセンサ43からの信号や車速センサ45からの信号、エンジン回転速度演算部210で算出されたエンジン回転速度Ne等にもとづいて、トランスミッションの減速段を推定し、現在のエンジン出力トルクを推定し、要求トルクを算出したり、それに応じた吸気量を算出し、スロットルバルブ駆動モータ10によるスロットルバルブ図示せずの開度を制御したりする。要求出力演算部212で推定された現在のエンジン出力トルクは、燃料供給系制御部214A、燃料噴射制御部215Aに入力される。なお、要求出力演算部212における要求トルクに応じた吸気量の算出に当たっては、例えば、水温センサ25からのエンジン冷却水の水温、スロットル開度センサ16からのスロットル開度、吸気温センサ11からの吸気空気の温度、エアフローメータ14からの吸気流量、吸気圧センサ18からの吸気圧等が用いられる。ここで、エンジン回転速度Neや、車速や、要求出力演算部212で算出された現在の推定トルクや要求トルク、アクセルポジションセンサ43からの信号等が、請求の範囲に記載の運転状態であり、クランクセンサ26、アクセルポジションセンサ43、車速センサ45、エンジン回転速度演算部210、要求出力演算部212等が、運転状態を検出するための運転状態検出手段である。燃料供給系制御部燃料供給系制御部214Aは、フュエルポンプモータ4を制御する。燃料噴射制御部燃料噴射制御部215Aは、要求出力演算部212において算出された要求トルクや、エンジン回転速度Neに応じて、燃料噴射量、具体的には、燃料噴射時間を設定し、タイミング制御部211Aからの各気筒のクランク角信号に応じて予め設定された噴射開始のタイミングマップ図示せずにもとづいて、各気筒の燃料噴射弁20Aに対して燃料噴射の制御を行う。燃料噴射制御部215Aは、排気ガスセンサ24からの排気ガス中の酸素濃度の信号にもとづいて、燃料噴射量を調節し、排気ガス規制に適合するような燃焼状態に調節する。点火時期制御部点火時期制御部216は、エンジン回転速度Ne、タイミング制御部211Aからの前記した各気筒のクランク角信号にもとづいて、出力トルク制御と排気ガス制御の観点から点火時期制御を行う。この点火時期制御の方法は公知の技術であり、詳細な説明は省略する。《燃料噴射制御の全体フローチャート》次に、図3、図4を参照しながらエンジン制御ECU27Aのマイクロコンピュータ27aのCPUにおけるエンジン始動時、エンジン通常運転時、エンジン停止時の燃料噴射制御の概要について説明する。図3、図4は、エンジン制御ECUにおけるエンジンの始動時から停止時までの燃料噴射制御の流れを示す全体フローチャートである。ここでスタートは、運転者によるIG-SW111の操作により、エンジン制御ECU27Aのマイクロコンピュータ27aが起動し、ステップS01では、IG-SW111の操作位置検出フラグを、イグニッションONを意味する図示省略のFLAGIGSW=1と設定する。ステップS02では、CPUにおいて初期化処理が開始され、その処理の中で、タイミング制御部211A、燃料噴射制御部215Aにおいて初回燃料噴射に係わるフラグの初期化処理が行なわれる。具体的には、例えば、以下のフラグやデータをリセット処理する。燃料噴射制御部215Aは、エンジン始動の際の各気筒における初回の燃料噴射をしたことを示す初回燃料噴射フラグF_FIRSTINJiのリセットを行うF_FIRSTINJi=0,i=1~N。ここでiは気筒数N本実施形態ではN=4個のうち気筒番号を示す引数である。また、燃料噴射制御部215Aは、前記した初回の燃料噴射をしたクランク角を記憶したことを示す初回燃料噴射時期の格納済み記憶済みを示すフラグF_FIRSTINJSETiのリセットを行うF_FIRSTINJSETi=0,i=1~N。さらに、タイミング制御部211Aは、実行程判別後に、クランク角の修正や、初回燃料噴射に続く次回の燃料噴射の制御のための燃料噴射済みフラグの修正処理が必要に応じてなされたことを示すフラグF_CRKAGLCRをリセットしたりF_CRKAGLCR=0、記憶されたクランク角CAiにもとづく初回燃料噴射から実行程判別までに進んだクランク角であるCYLJUDAGLiをリセットしたりするCYLJUDAGLi=0,i=1~N。そして、マイクロコンピュータ27aのCPUがステップS02の前記した初期化処理を終了直後、つまりエンジンECU27Aの起動完了直後から、タイミング制御部211Aが、CRKパルス及びTDCパルスを読み込む。このCRKパルス及びTDCパルスを読み込みは、CRKパルス入力毎、または、一定パルス間隔毎で繰り返される。そして、ステップS03では、タイミング制御部211Aは、CRKパルスを検出したか否かをチェックする。CRKパルスを検出した場合Yesは、ステップS04へ進み、CRKパルスを検出しない場合Noは、結合子Aに従って、図4のステップS17へ進む。ステップS04では、タイミング制御部211Aは、CRKパルス検出毎に各気筒のクランク角CAiを、クランク角記憶部211a,211b,211c,211dに記憶更新する。具体的には、タイミング制御部211Aは、CRKパルスを読み込む毎にクランク角記憶部211a,211b,211c,211dに記憶されたクランク角を読み出し、読み出したクランク角CAiに、例えば、6deg.減算して新たなクランク角CAiとして記憶させる。ここでiは気筒数N本実施形態ではN=4個のうちの気筒番号を示す引数である。なお、6deg.減算された新たなクランク角CAiが-180deg.となったときは、それを540deg.と読み直してクランク角記憶部211a,211b,211c,211dに記憶する。ステップS05では、燃料噴射制御部215Aが、CRKパルスの検出毎に燃料噴射済みフラグの初期化処理を行う。この燃料噴射済みフラグの初期化処理については、図6に示す詳細フローチャートの説明において後記する。ステップS06では、タイミング制御部211Aは、フラグF_CRKAGLCR=1であるか否かをチェックする。フラグF_CRKAGLCR=1の場合Yesは、結合子Bに従って、図4のステップS13へ進み、フラグF_CRKAGLCR≠1の場合Noは、ステップS07へ進む。ステップS07では、タイミング制御部211Aは、CRKパルス、TDCパルスから実クランク角を判別したか否かをチェックする。具体的には、CRKパルス形状とTDCパルス形状の組み合わせから、各気筒の実クランク角を判別できたか否かをチェックする。CRKパルス、TDCパルスから実クランク角を判別した場合Yesは、結合子Cに従って、図4のステップS08へ進み、実クランク角を判別しなかった場合Noは、結合子Bに従って、図4のステップS13へ進む。ちなみに、CRKパルス形状とTDCパルス形状の組み合わせから、各気筒の実クランク角は、それぞれ一意に決まる。ステップS08では、タイミング制御部211Aは、図3のフローチャートのステップS04において記憶更新されたクランク角CAiとステップS07で判定された実クランク角のズレ幅DCRKAGL0~720deg.を算出する。ステップS09では、タイミング制御部211Aは、ズレ幅DCRKAGL=0か否かをチェックする。ズレ幅DCRKAGL=0の場合Yesは、ステップS12へ進み、ズレ幅DCRKAGL≠0の場合Noは、ステップS10へ進む。ステップS10では、タイミング制御部211Aは、各気筒のクランク角CAiをズレ幅DCRKAGLで修正し、クランク角記憶部211a,211b,211c,211dに格納記憶させる。ステップS11では、燃料噴射制御部215Aが、過去の制御サイクルで後記するステップS13の処理の中で燃料噴射制御の実行に伴って立てられた燃料噴射済みフラグの修正処理を行う。このステップS11の詳細な処理は、図10に示す詳細フローチャートの説明において後記する。そして、ステップS12では、タイミング制御部211Aは、ハードにもとづくクランク角で、必要に応じてクランク角CAiの修正や燃料噴射済みフラグの修正がされたことを示すフラグF_CRKAGLCRを立てるF_CRKAGLCR=1。ステップS13では、燃料噴射制御部215Aが、燃料噴射実行処理を行う。このステップS13の詳細な処理は、図7に示す詳細フローチャートの説明において後記する。ステップS14では、燃料噴射制御部215Aが、記憶にもとづくクランク角CAiにより燃料噴射した気筒の燃料噴射時期を記憶する記憶で噴射した気筒の噴射時期を格納。このステップS14の詳細な処理は、図8に示す詳細フローチャートの説明において後記する。ステップS15では、燃料噴射制御部215Aが、その気筒に対して記憶にもとづくクランク角により燃料噴射したときから実行程判別ハードにもとづくクランク角のチェックの完了までに進んだクランク角の算出の処理を行う噴射から進んだ角度を算出。このステップS15の詳細な処理は、図9に示す詳細フローチャートの説明において後記する。ステップS16では、点火時期制御部216が、タイミング制御部211Aから入力されるクランク角CAiに従って、所定のクランク角を検出したとき、各気筒の点火を行う点火。ステップS17では、タイミング制御部211Aは、IG-SW111がエンジン停止の操作位置に操作されたか否かをチェックする。つまり、IG-SW111がOFFされたか否かをチェックするIG-SWOFF。このチェックは、エンジンECU27Aの起動完了直後から所定の周期でなされる。IG-SW111がOFFされた場合Yesは、燃料供給系制御部214A、燃料噴射制御部215A、点火時期制御部216は、エンジン停止制御を行い、タイミング制御部211Aは、一連のエンジン制御を終了する手続きを開始する。IG-SW111がOFFされなかった場合Noは、結合子Dに従って、図3のステップS03に戻る。ここで、ステップS07において、実クランク角を判別してYesとなるまでは、ステップS08~S12は通過せず、基本的にステップS03~S07、続いてステップS13~S17、そして再びステップS03へ戻る繰り返しとなる。その繰り返しの期間、ステップS14では、記憶で噴射した気筒の噴射時期を格納し、噴射から進んだ角度を算出する。そして、ステップS07において実クランク角を判別してYesとなった場合に、ステップS08~S12を1回だけ通過し、図3、図4の全体フローチャートのその次の繰り返しにおいては、ステップS06においてYesとなり、ステップS08~S12を再び通過しなくなる制御となっている。従って、ステップS07において実クランク角を判別してYesとなった場合に、ステップS08~S12を1回だけ通過した後は、ステップS13の後、ステップS14,S15をジャンプしてステップS16へ進むようにしても良い。ステップS17においてYesとなり、タイミング制御部211Aにおける一連のエンジン制御を終了する手続きは、IG-SW111の操作位置検出フラグを、エンジン停止を意味するFLAGIGSW=0とし、CRKパルスを監視し、エンジンの回転が停止したか否かを判定し、エンジンの回転が停止したと判定したときに、各気筒のクランク角CAiを不揮発メモリに格納し、一連のエンジン制御を終了する手続きが完了する。以上のように、エンジン制御ECU27Aは、IG-SW111がOFFされても、しばらく動作状態にあり、タイミング制御部211Aがエンジンの回転停止までCRKパルスを検出して、各気筒のクランク角CAiの記憶更新をする。ここで、エンジンの回転停止時に最終的に記憶された各気筒のクランク角CAiが、特許請求範囲に記載の内燃機関の停止時に記憶された気筒判別情報に対応する。図3に示すフローチャートにおけるステップS07は、請求の範囲に記載の実行程判別手段に対応し、ステップS07におけるTDCパルスを検出した場合の、CRKパルス形状とTDCパルス形状の組み合わせから各気筒の実クランク角を判別するタイミングが、請求の範囲に記載の実行程判別のタイミングに対応する。図5は、TDCパルス形状及びCRKパルス形状にもとづく実行程判別の説明図である。図5のaは、エンジン制御ECU27AのCPUが、クランキング開始後に記憶にもとづくクランク角から認識している行程は、3の気筒が圧縮行程であり、爆発行程に接近している状態図5のaでは記憶気筒3と表示を示し、エンジン制御ECU27AのCPUが起動完了後に始めてTDCパルス形状及びCRKパルス形状の組み合わせから3気筒が次に爆発行程に入るTDCパルスを検出したと判定した場合である。この場合は、エンジン停止時に記憶されたクランク角にもとづいて現在のクランク角を算出し、次の爆発行程の気筒が、所定クランク角の範囲内でTDCパルスが立下りの後に立ち上がりを示す基準パルスで、かつ、TDCパルスの前後でのCRKパルスが6deg.の基準パルス群だけから構成されていることから、図2のB部に示すように3気筒が次に爆発行程に入ることが正しい判定なので、爆発気筒の気筒判別が正しく、クランク角の記憶OKの判定となる。なお、気筒判別が正しくても記憶にもとづくクランク角と実クランク角にズレがある場合もクランク角の記憶間違い判定がなされる。図5のbは、エンジン制御ECU27AのCPUが、クランキング開始後に記憶にもとづくクランク角から認識している行程は、3の気筒が圧縮行程であり、爆発行程に接近している状態図5のbでは記憶気筒3と表示を示し、エンジン制御ECU27AのCPUが起動完了後に始めてTDCパルス形状及びCRKパルス形状の組み合わせから4気筒が次に爆発行程に入るTDCパルスを検出したと判定した場合である。この場合は、エンジン停止時に記憶されたクランク角にもとづいて現在のクランク角を算出し、次の爆発行程の気筒が、所定クランク角の範囲内でTDCパルスが立下りのみの単エッジのパルス形状で、かつ、TDCパルスの前後でのCRKパルスが6deg.を超える広幅パルスを含んで構成されていることから、図2のC部に示すように4気筒が次に爆発行程に入ることが正しい判定なので、爆発気筒の気筒判別が誤っており、クランク角の記憶間違い判定となる。《燃料噴射済みフラグの初期化処理》次に、図6を参照しながら図3に示した全体フローチャートのステップS05における燃料噴射済みフラグの初期化処理の詳細な制御について説明する。図6は、燃料噴射済みフラグの初期化処理の制御の流れを示す詳細フローチャートである。この処理は燃料噴射制御部215Aにおいて、タイミング制御部211Aから入力されるCRKパルスの検出毎に行われる。ステップS35は、プログラミング言語の1種であるC言語で表示のループカウンタを示し、引数iの1~Nまでの繰り返しの開始を意味するステップである。ステップS36は、i気筒の圧縮行程開始を検出したか否かをクランク角記憶部211a~211dのうちのi気筒に対応するクランク角記憶部に記憶されたクランク角CAiから判定するi気筒の圧縮行程開始。i気筒の圧縮行程開始を検出した場合Yesは、ステップS37へ進み、燃料噴射済みフラグF_INJiをリセットするF_INJi=0。ステップS36でi気筒の圧縮行程開始を検出しなかった場合Noは、ステップS38へ進む。ステップS38では、C言語で表示の繰り返しの範囲の最後を示す。前記した引数iがN未満の場合は、ステップS35に戻り、次の引数iに対して繰り返し、引数iがN以上の場合、図3の全体フローチャートに戻る。ちなみに、ステップS05の燃料噴射済みフラグの初期化処理は、エンジンの運転中はCRKパルスの検出に同期した周期で繰り返し処理されるものであり、ステップS35~S38の繰り返しが引数iに対して1~Nまで一順したら終了することを意味しない。《燃料噴射実行処理》次に、図7を参照しながら図4に示した全体フローチャートのステップS13における燃料噴射実行処理の詳細な制御について説明する。図7は、燃料噴射実行処理の制御の流れを示す詳細フローチャートである。この処理は燃料噴射制御部215Aにおいて実行される。ステップS41は、プログラミング言語の1種であるC言語で表示のループカウンタを示し、引数iの1~Nまでの繰り返しの開始を意味するステップである。ステップS42では、i気筒の燃料噴射時期であるか否かをクランク角記憶部211a~211dのうちのi気筒に対応するクランク角記憶部に記憶されたクランク角CAiから判定するCAi=INJOB。i気筒が燃料噴射時期の場合Yesは、ステップS43へ進み、i気筒が燃料噴射時期でない場合Noは、ステップS48へ進む。ここで、INJOBは、燃料噴射時期を示す所定のクランク角の値を示し、排気行程噴射の場合は、INJOBの値は、0~180deg.未満の値で設定される。ちなみに、エンジン制御ECU27Aが起動すると、燃料噴射制御部215Aは、最初に燃料が噴射されるi気筒に対してのみは、エンジンの始動の早期化を促進するため、エンジンのクランキングが開始して最初のCRKパルスの入力を受けたタイミングで燃料噴射を実行する。その次に続く各気筒の燃料噴射は、クランク角CAiにもとづく所定の燃料噴射タイミングで燃料噴射をさせる。具体的には、本実施形態のように排気行程噴射の場合は、記憶更新されたクランク角CAiにもとづき、排気行程のタイミングの、例えば、クランク角90deg.で燃料噴射させる。ステップS43では、i気筒は、燃料噴射済みか否かを燃料噴射済みフラグF_INJiが立っているか否かでチェックするF_INJi=1。i気筒が燃料噴射済みの場合Yesは、ステップS48へ進み、i気筒が燃料噴射済みでない場合Noは、ステップS44へ進む。ステップS44では、i気筒に対して燃料噴射を実行する。もちろん、このステップS44における燃料噴射制御部215Aの燃料噴射制御は、要求出力演算部212が算出した要求トルクに対応する噴射時間であり、この場合はエンジン始動時の要求トルクに応じた燃料噴射量である。ステップS45では、i気筒に燃料噴射済みフラグF_INJiを立てるF_INJi=1。ステップS46では、初回燃料噴射済みか否かを初回燃料噴射フラグF_FIRSTINJiが立っているか否かでチェックするF_FIRSTINJi=1。初回燃料噴射済みの場合Yesは、ステップS48へ進み、初回燃料噴射済みでない場合Noは、ステップS47へ進む。そして、ステップS47では、初回燃料噴射フラグF_FIRSTINJiを立てるF_FIRSTINJi=1。その後、ステップS48へ進む。ステップS48では、C言語で表示の繰り返しの範囲の最後を示す。前記した引数iがN未満の場合は、ステップS41に戻り、次の引数iに対して繰り返し、引数iがN以上の場合、図4の全体フローチャートに戻る。《記憶噴射した気筒の噴射時期の格納の処理》次に、図8を参照しながら図4に示した全体フローチャートのステップS14における記憶噴射した気筒の噴射時期を格納の処理の詳細な制御について説明する。図8は、記憶にもとづくクランク角により燃料噴射をした気筒の燃料噴射時期の格納の制御の流れを示す詳細フローチャートである。この処理は燃料噴射制御部215Aにおいて実行される。ステップS51は、プログラミング言語の1種であるC言語で表示のループカウンタを示し、引数iの1~Nまでの繰り返しの開始を意味するステップである。ステップS52では、初回燃料噴射時期の格納済み記憶済みか否かを初回燃料噴射時期の記憶済みフラグF_FIRSTINJSETiが立っているか否かでチェックするF_FIRSTINJSETi=1。初回燃料噴射時期の格納済みの場合Yesは、ステップS56へ進み、そうではない場合Noは、ステップS53へ進む。ステップS53では、初回燃料噴射か否かをチェックするF_FIRSTINJi=1。初回燃料噴射の場合Yesは、ステップS54へ進み、そうでない場合Noは、ステップS56へ進む。ステップS54では、その燃料噴射時のクランク角CAiを初回燃料噴射時期として格納記憶する初回燃料噴射時期として格納FIINJAGLi=CAi。ステップS55では、初回燃料噴射時期の格納済みのフラグを立てるF_FIRSTINJSETi=1。その後、ステップS56へ進む。ステップS56では、C言語で表示の繰り返しの範囲の最後を示す。前記した引数iがN未満の場合は、ステップS51に戻り、次の引数iに対して繰り返し、引数iがN以上の場合は、図4の全体フローチャートに戻る。《噴射から進んだ角度を算出》次に、図9を参照しながら図4に示した全体フローチャートのステップS15における噴射から進んだ角度を算出の処理の詳細な制御について説明する。図9は、記憶にもとづくクランク角により燃料噴射をした気筒のその燃料噴射から実行程判別までに進んだクランク角の算出の制御の流れを示す詳細フローチャートである。この処理は燃料噴射制御部215Aにおいて実行される。ステップS61は、プログラミング言語の1種であるC言語で表示のループカウンタを示し、引数iの1~Nまでの繰り返しの開始を意味するステップである。ステップS62では、初回燃料噴射フラグF_FIRSTINJiが立っているか否かをチェックする初回燃料噴射F_FIRSTINJi=1。初回燃料噴射フラグF_FIRSTINJiが立っている場合Yesは、ステップS63へ進み、立っていない場合Noは、ステップS64へ進む。ステップS63では、記憶にもとづくクランク角により燃料噴射をした気筒のその燃料噴射から実行程判別までに進んだクランク角CYLJUDAGLiの算出のためのクランク角の積算をして、格納する噴射から進んだ角度を算出して格納CYLJUDAGLi=CYLJUDAGLi6deg.。この角度の算出は、CRKパルス検出毎に、図3に示す全体フローチャートのステップS06においてYesとなるまでの間繰り返される。ステップS64では、C言語で表示の繰り返しの範囲の最後を示す。前記した引数iがN未満の場合は、ステップS61に戻り、次の引数iに対して繰り返し、引数iがN以上の場合は、図4の全体フローチャートに戻る。《燃料噴射済みフラグの修正処理》次に、図10を参照しながら図4に示した全体フローチャートのステップS11における燃料噴射済みフラグの修正処理の詳細な制御について説明する。図10は、燃料噴射済みフラグの修正処理の制御の流れを示す詳細フローチャートである。この処理は燃料噴射制御部215Aにおいて所定クランク角毎に実行される制御である。ステップS71は、プログラミング言語の1種であるC言語で表示のループカウンタを示し、引数iの1~Nまでの繰り返しの開始を意味するステップである。ステップS72では、初回燃料噴射済みF_FIRSTINJi=1か否かをチェックする。初回燃料噴射済みの場合Yesは、ステップS73へ進み、そうでない場合Noは、ステップS78へ進む。ステップS73では、初回燃料噴射時期の修正をする。具体的には、FIINJAGLCRi=FIINJAGLi-DCRKAGLの計算を行う。ここで、FIINJAGLiは、図8に示した詳細フローチャートのステップS54で記憶させたものであり、DCRKAGLは、図4に示した全体フローチャートのステップS08で算出したズレ幅DCRKAGLである。そして、初回燃料噴射時期を示す実クランク角FIINJAGLCRiを、クランク角CAiと同様に540deg.~-174deg.の範囲で算出する。ちなみに、-180deg.は540deg.と読み替える。ステップS74では、次回のi気筒の燃料噴射の可否判定用角度INTKJUDAGLiを算出する。具体的には、INTKJUDAGLi=FIINJAGLCRi-CYLJUDAGLiを算出する。ここで、CYLJUDAGLiは、図9に示した詳細フローチャートのステップS63において格納された初回燃料噴射時期からのクランク角の進みCYLJUDAGLiである。そして、ここで算出されたINTKJUDAGLiの値は、最大値を540deg.とし、それ以下のクラン角表示の値であり、負値側の最低値に制限を設けないこととする。図11は、燃料噴射済みフラグF_INJi修正のための実燃料噴射時期FIINJAGLCRiクランク角表示と、次回のi気筒の燃料の燃料噴射の可否判定用角度INTKJUDAGLiの設定の説明図である。CYLJUDAGLiは、必ず正の値であるので、図11に示すINTKJUDAGLiの値がFIINJAGLCRiの値より大きな値を取ることはない。そして、INTKJUDAGLiの値は、例えば、-720までの負値を許容している。ステップS75では、INTKJUDAGLiが-180deg.より大きいか否かをチェックするINTKJUDAGLi>-180deg.。INTKJUDAGLiが-180deg.より大きい場合Yesは、ステップS76へ進み、燃料噴射済みとする。つまり、既に燃料噴射済みフラグF_INJi=1の場合はそのままとし、燃料噴射済みフラグF_INJi=0の場合は、そのフラグを立てるF_INJi=1。INTKJUDAGLiが-180deg.以下の場合Noは、ステップS77へ進み、燃料未噴射とする。つまり、既に燃料噴射済みフラグF_INJi=0の場合はそのままとし、燃料噴射済みフラグF_INJi=1の場合は、そのフラグを倒すF_INJi=0。これは、図11に示すようにINTKJUDAGLi>-180deg.の領域Xの場合は、現在の実クランク角が、記憶にもとづくクランク角によるi気筒の初回燃料噴射と同一のサイクルにあると判定して、つまり、初回燃料噴射による燃料は燃焼にまだ寄与していないと判定して、燃料噴射済みフラグF_INJiが既に立っている場合は立てたままとし、そのフラグが立っていない場合は立てるものである。また、図11に示すようにINTKJUDAGLi≦-180deg.の領域Yの場合は、現在の実クランク角が、記憶にもとづくクランク角によるi気筒の初回燃料噴射の次のサイクルにあると判定して、つまり、初回燃料噴射による燃料は気筒内に導入され、次のサイクルとなっていると判定して、燃料噴射済みフラグF_INJiが既に立っている場合は倒し、そのフラグが立っていない場合はそのままとするものである。ステップS76またはステップS77の後、ステップS78へ進む。ステップS78では、C言語で表示の繰り返しの範囲の最後を示す。前記した引数iがN未満の場合は、ステップS71に戻り、次の引数iに対して繰り返し、引数iがN以上の場合は、図4の全体フローチャートに戻る。このようなエンジン始動時の記憶にもとづくクランク角と実クランク角のズレ修正にもとづく燃料噴射済みフラグの修正処理は、図3に示した全体フローチャートのステップS07におけるYesとなる実行程判別タイミング記憶間違い判定タイミングとも称するtJUD図12参照より前に、記憶にもとづくクランク角に従って行われた初回燃料噴射に対してのみ燃料噴射済みフラグF_INJiの修正を必要に応じて行う。本実施形態においては、図2に示すように180deg.毎にTDCパルス形状とCRKパルス形状から実クランク角を判定できるようになっているので、各気筒の全ての初回燃料噴射が記憶間違い判定タイミングtJUDの前になされるとは限らないための配慮である。ここで、図10に示した燃料噴射済みフラグの修正処理の制御の流れを示す詳細フローチャートにおけるステップS73~S77は、請求の範囲に記載の噴射タイミング判別手段に対応する。次に、図12を参照しながら本実施形態におけるエンジン始動時の各気筒の記憶にもとづくクランク角による初回燃料噴射後の次回の燃料噴射の制御結果について説明する。図12は、ポート噴射式エンジンにおける排気行程噴射の場合の燃料噴射済みフラグの修正の方法の説明図であり、aは、通常運転状態の説明図、bは、エンジン始動時のクランク角の記憶間違い例1における燃料噴射済みフラグの修正の説明図である。図12のaには、実行程を示すバーチャートと、燃料噴射制御部215Aから各気筒の燃料噴射弁20A図1参照に対して出力される開弁期間を示す制御信号以下、INJ信号と称すると、燃料噴射済みフラグF_INJフローチャートでは、気筒番号を示す引数iを加えてF_INJiと表示を示す。図12のaに示すように、通常運転状態の場合は、INJ信号は、排気行程の所定のクランク角INJOBのタイミングt1を起点として、所定の期間t1~t2だけオン図12中、1で表示状態となる。所定の期間t1~t2は、要求トルクとエンジンの機関温度等の環境条件などに応じた燃料噴射量により変化する。燃料噴射済みフラグF_INJは、INJ信号がオンになった、例えば、タイミングt1で立ち=1、圧縮行程を迎えると、タイミングt3において次の燃料噴射を可能とするようにリセット=0する。次に、図12のbには、実行程を示すバーチャートと、エンジン制御ECU27AのCPUの認識する行程図中、ECU認識の行程と表示と、INJ信号と、燃料噴射済みフラグF_INJを示す。図12のbは、エンジン始動時の記憶にもとづくクランク角による初回燃料噴射を行い、その後に記憶にもとづくクランク角では吸入行程であると認識している行程の途中、例えば、-90deg.のクランク角の記憶間違い判定タイミングtJUDにおいて、実クランク角がTDCパルス形状及びCRKパルス形状にもとづいて圧縮行程に入っていると判定された場合の例を示している。図12のb中、実線で示すINJ信号と燃料噴射済みフラグF_INJは、従来技術の場合を示し、一点鎖線で示すINJ信号と燃料噴射済みフラグF_INJは、本実施形態における従来技術から変化した部分を示している。初回燃料噴射は、INJ信号に示すように、記憶にもとづくクランク角の排気行程の所定のクランク角INJOBのタイミングt1を起点として、所定の期間t1~t2燃料噴射タイミングだけオンされている。そして、燃料噴射済みフラグF_INJは、INJ信号がオンになったタイミングt1で立ち=1、クランク角の記憶間違い判定タイミングtJUDにおいて、記憶にもとづくクランク角ここでは吸入行程中で燃料噴射済みフラグの初期化処理図3のステップS05が行われるため、燃料噴射済みフラグF_INJは立ったままとなり、その後の処理にてクランク角の記憶間違い判定にもとづくクランク角の修正が行われる図4のステップS10。そして、次回の処理サイクルの燃料噴射済みフラグF_INJの初期化処理ではすでに圧縮行程の開始を過ぎているため、燃料噴射済みフラグを倒すことはなく、タイミングtJUDの後も実線で示されているように燃料噴射済みフラグF_INJは立ったままである。従って、次の排気行程の所定の期間t1N~t2Nにおいて燃料噴射を実行させる制御ができない。具体的には、図7の燃料噴射実行処理の詳細フローチャートのステップS43に示すように、燃料噴射済みフラグF_INJiが1でない場合に、ステップS44へ進むことができ、燃料噴射が実行できるようになっているためである。しかし、本実施形態では、図12のbに示すようにタイミングtJUDにおいてクランク角の記憶間違い判定を行い、ECU認識の行程を修正し、燃料噴射制御部215Aは、初回燃料噴射時期を示す実クランク角FIINJAGLCRiが、図11に示すように0deg.であり、初回燃料噴射時期からのクランク角の進みCYLJUDAGLiが、180deg.である。そして、ITKJUDAGL=0-180=-180deg.、つまり、-180deg.以下となる。従って、図4のステップS11において立っていた燃料噴射済みフラグF_INJを、クランク角の記憶間違い判定タイミングtJUDの後、一点鎖線で示すように倒す=0。その結果、燃料噴射制御部215Aは、燃料噴射済みフラグF_INJがリセットされているので、一点鎖線で示すように次の燃料噴射が実クランク角で排気行程のt1N~t2Nの期間にINJ信号を出力する。それに伴って燃料噴射済みフラグF_INJが、一点鎖線で示すt1N~t3Nの期間立っている。図12のbに示すように初回燃料噴射t1~t2の期間のINJ信号は実クランク角で遡って換算すると、吸入行程において行われており、当然噴射された燃料は気筒内へ導入されており、仮にクランク角の記憶間違い判定タイミングtJUDの実行程判別後の最初の燃料噴射タイミングである次の排気行程のt1N~t2Nの期間に燃料噴射しないとすると、この燃焼サイクルにおいて筒内へ燃料が導入されていないため失火することになり、エンジン始動時のエンジンの回転を滑らかにすることができない。そこで、燃料噴射制御部215Aは、実行程判別後の最初の燃料噴射タイミングにて予定される次回のi気筒の燃料噴射が、実行程判別前の記憶されたクランク角CAiもとづいて初回燃料噴射された燃料の燃焼タイミングと同じか否かを、次回のi気筒の燃料の燃料噴射の可否判定用角度INTKJUDAGLiで判定し、次回のi気筒の燃料噴射を実行するかどうかの制御を行う。また、特許文献1に記載の従来技術のように、初回燃料噴射の量だけ次回の燃料噴射量を減じるような制御を行わないので、次回燃料噴射量が不足して失火するということも防止できる。つまり、始動性の悪化を防止できる。なお、この次回のi気筒の燃料の燃料噴射の可否判定用角度INTKJUDAGLiでの判定が、請求の範囲に記載の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを判別するに対応している。《第1の実施形態の吸入行程噴射への適用例》第1の実施形態では、燃料噴射制御部215Aは各気筒の排気行程の所定の期間に燃料噴射弁20Aから燃料噴射をするように制御するものとしたがそれに限定されるものではない。ポート噴射式エンジンにおける吸入行程噴射の場合にも同様に適用できる。図13は、ポート噴射式エンジンにおける吸入行程噴射の場合の燃料噴射済みフラグの修正の方法の説明図であり、aは、通常運転状態の説明図、bは、エンジン始動時のクランク角の記憶間違い例2における燃料噴射済みフラグの修正の説明図である。図13のaには、実行程を示すバーチャートと、燃料噴射制御部215Aから各気筒の燃料噴射弁20A図1参照に対して出力されるINJ信号と、燃料噴射済みフラグF_INJフローチャートでは、気筒番号を示す引数iを加えてF_INJiと表示を示す。図13のaに示すように、通常運転状態の場合は、INJ信号は、吸入行程の所定のクランク角INJOBのタイミングt1を起点として、所定の期間t1~t2だけオン図13中、1で表示状態となる。所定の期間t1~t2は、要求トルクとエンジンの機関温度等の環境条件などに応じた燃料噴射量により変化する。燃料噴射済みフラグF_INJは、INJ信号がオンになった、例えば、タイミングt1で立ち=1、圧縮行程を迎えると、タイミングt2において次の燃料噴射を可能とするようにリセット=0する。図13のbには、実行程を示すバーチャートと、エンジン制御ECU27AのCPUの認識する行程図中、ECU認識の行程と表示と、INJ信号と、燃料噴射済みフラグF_INJを示す。図13のbは、エンジン始動時の記憶にもとづくクランク角による初回燃料噴射を行い、その後に記憶にもとづくクランク角では圧縮行程であると認識している行程の途中、例えば、450deg.のクランク角の記憶間違い判定タイミングtJUDにおいて、実クランク角がTDCパルス形状及びCRKパルス形状にもとづいて爆発行程に入っていると判定された場合の例を示している。図13のb中、実線で示すINJ信号と燃料噴射済みフラグF_INJは、従来技術の場合を示し、一点鎖線で示すINJ信号と燃料噴射済みフラグF_INJは、本実施形態における従来技術から変化した部分を示している。初回燃料噴射は、INJ信号に示すように、記憶にもとづくクランク角の吸入行程の所定のクランク角INJOBのタイミングt1を起点として、所定の期間t1~t2燃料噴射タイミングだけオンされている。そして、燃料噴射済みフラグF_INJは、INJ信号がオンになったタイミングt1で立ち=1、クランク角の記憶間違い判定タイミングtJUDの前では、CRKパルスの検出毎に記憶にもとづくクランク角で燃料噴射済みフラグF_INJの初期化処理図3のステップS05参照が行われるため、すでに圧縮行程の開始を迎えたと認識し、タイミングt2において実線のように燃料噴射済みフラグF_INJは0にリセットされている。従って、従来技術では、クランク角の記憶間違い判定タイミングtJUD後の次の吸入行程の所定の期間t1N~t2Nにおいても、燃料噴射を実行させる制御をしてしまう。具体的には、図7の燃料噴射実行処理の詳細フローチャートのステップS43に示すように、燃料噴射済みフラグF_INJiが1でない場合は、ステップS44へ進むことができ、燃料噴射が実行できるようになっているためである。しかし、本実施形態では、図13のbに示すようにタイミングtJUDにおいてクランク角の記憶間違い判定を行い、ECU認識の行程を修正し、初回燃料噴射時期を示す実クランク角FIINJAGLCRiは、図11に示すように540deg.であり、初回燃料噴射時期からのクランク角の進みCYLJUDAGLiは、180deg.である。そして、ITKJUDAGL=540-180=360deg.、つまり、-180deg.よりも大きくなる。従って、クランク角の記憶間違い判定タイミングtJUDの後、リセットされていた燃料噴射済みフラグF_INJを一点鎖線で示すように立てる=1。その結果、燃料噴射制御部215Aは、燃料噴射済みフラグF_INJが立てられているので、一点鎖線で示すように次の燃料噴射が実クランク角で吸入行程のt1N~t2Nの期間にINJ信号を出力不可能となる。図13のbに示すように初回燃料噴射t1~t2の期間のINJ信号は実クランク角で遡って換算すると、圧縮行程のほぼ開始時期において行われており、次の吸入行程のt1N~t2Nの期間の燃料噴射と同サイクルになる。もし、実線で示す従来技術におけるようにt1N~t2Nの期間に燃料噴射を行ったとすると、この気筒は2回分の燃料を吸入行程で導入することになり、リッチ状態になり未燃ガスを排出する可能性を生じる。本実施形態では、このようなエミッションの悪化を防止できる。このように、ポート噴射式の吸入行程噴射に対しても、燃料噴射タイミングINJOBの設定を変更するだけで、第1の実施形態が容易に適用できることが分かる。ちなみに、ポート噴射式の排気行程噴射の場合もポート噴射式の吸入行程噴射の場合も、エンジン始動時にエンジン制御ECU27Aのマイクロコンピュータ27aの初期化処理が完了した直後に、タイミング制御部211Aと燃料噴射制御部215Aとが、協調制御して、記憶にもとづくクランク角CAiに従って、初爆の気筒と判定した気筒における最初の燃料噴射のみ、エンジン始動早期化のために、CRKパルスが入力された際に燃料噴射するように設定されている。《第1の実施形態の変形例》次に、第1の実施形態の変形例について図14を参照しながら説明する。前記した第1の実施形態では、TDCパルス形状とCRKパルス形状の組み合わせによる実クランク角の判定は、180deg.間隔のTDCパルスのタイミングに行っているが、それに限定されるものではない。本変形例では、各気筒の爆発行程の開始位置、つまり、TDCを知らせるTDCパルスの形状を単純な所定角度幅の単パルスとし、それに組み合わせるCRKパルスの形状を、例えば、1つの気筒のTDCパルスの位置だけ欠け歯パルスとして、4気筒のうちの代表気筒のTDCを判別させることによって実クラン角を判定するようにしても良い。その場合、当該の気筒における記憶にもとづくクランク角による最初の燃料噴射から実クランク角の判定までに最大720deg.進んだCYLJUDAGLiとなる可能性があるが、第1の実施形態と同様に適用できる。図14を参照して、これまでに説明した第1の実施形態における図2に示したような180deg.毎にTDCパルス形状とCRKパルス形状の組み合わせにより、実クランク角の判定ができる場合と異なり、例えば、クランク角720deg.に1度代表気筒の実気筒判別がされる場合のポート噴射式エンジンにおける排気行程噴射のケースの燃料噴射済みフラグの修正の方法について説明する。図14は、第1の実施形態の変形例のポート噴射式エンジンにおける排気行程噴射の場合の燃料噴射済みフラグの修正の方法の説明図であり、aは、通常運転状態の説明図、bは、エンジン始動時のクランク角の記憶間違い例3における燃料噴射済みフラグの修正の説明図である。図14のaは、図12のaと同じであり重複する説明を省略する。図14のbには、実行程を示すバーチャートと、エンジン制御ECU27AのCPUの認識する行程図中、ECU認識の行程と表示と、INJ信号と、燃料噴射済みフラグF_INJを示す。図14のbは、エンジン始動時の記憶にもとづくクランク角による初回燃料噴射を行い、その後に記憶にもとづくクランク角では圧縮行程であると認識している行程の途中、例えば、450deg.のクランク角の記憶間違い判定タイミングtJUDにおいて、実クランク角がTDCパルス形状及びCRKパルス形状にもとづいて排気行程に入っていると判定された場合の例を示している。図14のb中、実線で示すINJ信号と燃料噴射済みフラグF_INJは、従来技術の場合を示し、一点鎖線で示すINJ信号と燃料噴射済みフラグF_INJは、本変形例における従来技術から変化した部分を示している。初回燃料噴射は、INJ信号に示すように、記憶にもとづくクランク角の排気行程の所定のクランク角INJOBのタイミングt1を起点として、所定の期間t1~t2燃料噴射タイミングだけオンされている。そして、燃料噴射済みフラグF_INJは、INJ信号がオンになったタイミングt1で立ち=1、クランク角の記憶間違い判定タイミングtJUDの前に、つまり、クランク角の記憶間違い判定前に、すでに圧縮行程の開始を迎えたと認識し、タイミングt3において実線のように燃料噴射済みフラグF_INJは0にリセットされている。従って、従来技術では、クランク角の記憶間違い判定タイミングtJUD後の次の排気行程の所定の期間t1N~t2Nにおいても、燃料噴射を実行させる制御をしてしまう。具体的には、図7の燃料噴射実行処理の詳細フローチャートのステップS43に示すように、燃料噴射済みフラグF_INJiが1でない場合は、ステップS44へ進むことができ、燃料噴射が実行できるようになっているためである。しかし、本変形例では、図14のbに示すようにタイミングtJUDにおいてクランク角の記憶間違い判定を行い、ECU認識の行程を修正し、図14のbの気筒では、燃料噴射制御部215Aは、初回燃料噴射時期を示す実クランク角FIINJAGLCRiが、図11に示すように540deg.であり、初回燃料噴射時期からのクランク角の進みCYLJUDAGLiが、360deg.である。そして、ITKJUDAGL=540-360=180deg.、つまり、-180deg.よりも大きくなる。従って、クランク角の記憶間違い判定タイミングtJUDの後、リセットされていた燃料噴射済みフラグF_INJを一点鎖線で示すように立てる=1。その結果、燃料噴射制御部215Aは、燃料噴射済みフラグF_INJが立てられているので、一点鎖線で示すように次の燃料噴射が実クランク角で排気行程のt1N~t2Nの期間にINJ信号を出力しない。図14のbに示すように初回燃料噴射t1~t2の期間のINJ信号は実クランク角で遡って換算すると、圧縮行程のほぼ開始時期において行われており、クランク角の記憶間違い判定タイミングtJUDの実行程判別後の最初の燃料噴射タイミングである次の排気行程のt1N~t2Nの期間の燃料噴射と同サイクルになる。もし、t1N~t2Nの期間に燃料噴射を行ったとすると、この気筒は2回分の燃料を吸入行程で導入することになり、リッチ状態になり未燃ガスを排出する可能性を生じる。本変形例では、このようなエミッションの悪化を防止できる。《第2の実施形態》次に、図15を参照しながら本発明の第2の実施形態に係わる内燃機関の制御装置の前提とする内燃機関について、第1の実施形態において前提とした内燃機関と異なる燃料供給系を簡単に説明する。第1の実施形態において前提とした内燃機関と同じ構成については重複する説明を省略する。内燃機関の概要第2の実施形態に係わる内燃機関の制御装置の前提とする内燃機関は、いわゆる直噴エンジン直噴式内燃機関である。従って、エンジン本体のシリンダヘッドには、吸気弁、排気弁、各気筒の燃焼室内に直接燃料を噴射する燃料噴射弁20B図15参照、点火プラグ21図15参照が取り付けられている。内燃機関は、燃料タンク図示せずからフュエルポンプモータ4図15参照を内蔵したフュエルポンプによって送油管図示せずを介して高圧ポンプ図示せずに送られた燃料は、エンジン本体のカム軸図示せずによってそれぞれ駆動される高圧ポンプ図示せずによりさらに昇圧されてデリバリパイプ図示せずに送られる。デリバリパイプ内の燃料の圧力は、デリバリパイプに接続され、エンジン制御ECU27Bで制御されるレギュレータ7で調圧され、余分な燃料は戻り管図示せずを介して燃料タンクに戻される。デリバリパイプからは、それぞれ4本の高圧燃料供給管図示せずを介して、各気筒の燃料噴射弁20B,20B,20B,20Bに燃料が供給される。ちなみに、本実施形態では、燃料噴射弁20Bは、エンジン制御ECU27BのCPUの実行する機能である後記する燃料噴射制御部燃料噴射制御手段215Bにより、例えば、圧縮行程噴射または爆発行程噴射するように制御される。デリバリパイプには、デリバリパイプの内圧以下、燃圧と称するを検出する燃圧センサ41が設けられている。フュエルポンプは、フュエルポンプモータ4に供給される電力が、エンジン制御ECU27Bによりオン、オフ制御されるとともに、低負荷Lowと高負荷Hiに切替えられる。高圧ポンプは、エンジン制御ECU27Bに制御される高圧ポンプ電磁弁5を内蔵し、吐出状態と非吐出状態を切替得られるようになっている。さらに、エンジン制御ECU27Bに制御され、高圧ポンプは、低負荷Low時も高負荷Hi時も吐出状態に動作する。ちなみに、高圧ポンプの吐出側には、逆止弁が設けられ、非吐出状態のとき、デリバリパイプから送油管への逆流を防止する。《エンジン制御ECUの機能》次に、図15を参照しながら本実施形態におけるエンジン制御ECUの機能の第1の実施形態から異なる点について説明する。図15は、第2の実施形態におけるエンジン制御ECUのブロック構成図である。エンジン制御ECU27Bには、センサ11,14,16,18,24,25,26,28からの出力、アクセルポジションセンサ43からの出力、車速センサ45からの出力の他、燃圧センサ41、燃料温度センサ図示せず等の出力が、エンジン制御ECU27Bに入力される。このエンジン制御ECU27Bは、マイクロコンピュータ27aを主体として構成されている。そして、マイクロコンピュータ27aは、例えば、ROMに格納されているプログラムをCPUが実行して、運転者のアクセルペダルの踏み込み量やエンジン運転状態に応じて、スロットルバルブ図示せずの開度制御や燃料噴射弁20Bの燃料噴射量の制御や点火プラグ21の点火時期の制御、高圧ポンプ電磁弁5やレギュレータ7の動作制御を通じたデリバリパイプの燃圧の制御等行う。ちなみに、エンジン制御ECU27Bには、燃料噴射弁20Bを駆動する駆動回路121、高圧ポンプ電磁弁5を駆動する駆動回路122、レギュレータ7に含まれる電磁弁を駆動する駆動回路124を含んでいる。ECU電源回路110はIG-SW111により、オン状態になり、ディストリビュータ29へ高電圧を発生させて供給する図示しないイグナイタへの給電もオン状態となる。マイクロコンピュータ27aは、ROMに内蔵されたプログラムを読み出して実行することにより実現される機能部である、エンジン回転速度演算部210、タイミング制御部211B、要求出力演算部212、燃料供給系制御部214B、燃料噴射制御部215B、点火時期制御部216等を含んで構成されている。エンジン回転速度演算部210及び要求出力演算部212、点火時期制御部216の機能は、第1の実施形態の場合と同じである。タイミング制御部211B、燃料供給系制御部214B、燃料噴射制御部215Bの機能に一部差異がある。タイミング制御部タイミング制御部211Bは、エンジン制御の全体制御を行うために、IG-SW111の操作位置信号を検出するとともに、その操作位置信号に対応した操作位置検出フラグFLAGIGSWを設定処理する。また、タイミング制御部211Bは、CRKパルス及びTDCパルスにもとづいて各気筒の吸入行程の開始のTDCタイミングを基準クランク角=0ゼロdeg.として検出する。そして、基準クランク角0ゼロdeg.を720deg.と読み直して720deg.からCRKパルスを新たに受信する毎に、例えば、6deg.減算して現在の各気筒のクランク角を演算し、クランク角記憶部211a,211b,211c,211dに記憶させる。つまり、起点を0deg.とし、714,708,,12,6,0deg.とクランク軸の正回転の方向に6deg.のCRKパルスに対応して減算定義される。このクランク角記憶部211a,211b,211c,211dは、具体的には前記した高速書き込み可能な不揮発メモリで構成される。ここで、クランク角記憶部211a,211b,211c,211dが請求の範囲に記載の気筒判別情報記憶手段に対応する。また、第2の実施形態では、第1の実施形態の変形例のように、例えば、各気筒の爆発行程の開始位置、つまり、TDCを知らせるTDCパルスの形状を単純な所定角度幅の単パルスとし、それに組み合わせるCRKパルスの形状を、1つの気筒のTDCパルスの位置だけ欠け歯パルスとして、4気筒のうちの代表気筒のTDCを判別させることによって実クラン角を判定する場合の例で説明する。ちなみに、エンジン制御ECU27Bは、IG-SW111が、イグニッションONの位置に回されると、そのマイクロコンピュータ27aが起動されて初期化処理を開始する。また、IG-SW111が、スタータ駆動の位置に回されると、スタータがエンジンを回転させ始め、マイクロコンピュータ27aの初期化処理が終了すると、タイミング制御部211Bは、CRKパルスとTDCパルスを一定の周期で読み込みを開始する。そして、エンジン始動時の初期化処理が終了した直後は、タイミング制御部211Bは、各気筒のクランク角を、前回のエンジン停止時にクランク角記憶部211a,211b,211c,211dに記憶させたクランク角に、CRKパルスを検出のつど6deg.減算して各気筒のクランク角として算出する。このように算出されたクランク角を記憶にもとづくクランク角とか第1の手段にもとづくクランク角と称する。そして、マイクロコンピュータ27aの初期化処理が終了した後に、タイミング制御部211Bが最初のTDCパルスを検出したタイミングで、第1の実施形態変形例と同様に記憶にもとづくクランク角と、CRKパルスの形状とTDCパルスの形状の組み合わせにもとづいて決定した各気筒のクランク角とが一致するか否かを判定し、一致する場合は、そのまま各気筒のクランク角を更新算出し、クランク角記憶部211a,211b,211c,211dに記憶更新する。以下、CRKパルスの形状とTDCパルスの形状の組み合わせにもとづいて決定した各気筒のクランク角を、ハードにもとづくクランク角とか、第2の手段にもとづくクランク角と称する。記憶にもとづくクランク角とハードにもとづくクランク角とが一致しない場合は、各気筒のクランク角のズレを修正して、その後は、修正されたクランク角にもとづいてCRKパルスの検出毎に6deg.を減算して各気筒のクランク角を更新計算し、クランク角記憶部211a,211b,211c,211dに記憶更新する。タイミング制御部211Bは、エンジン始動時の最初は記憶にもとづくクランク角を燃料噴射制御部215B、点火時期制御部216に出力し、その後に記憶にもとづくクランク角をハードにもとづくクランク角でチェックする。記憶にもとづくクランク角とハードにもとづくクランク角との間に誤差がある場合は、記憶にもとづくクランク角が間違っていると判定して、その時点でハードにもとづくクランク角に修正し、その後は修正されたクランク角を燃料噴射制御部215B、点火時期制御部216に出力する。燃料供給系制御部燃料供給系制御部214Bは、フュエルポンプモータ4の回転速度の制御、燃圧センサ41からの信号にもとづく高圧ポンプの高圧ポンプ電磁弁5の制御、及びレギュレータ7の制御を行い、エンジン回転速度Ne、要求トルクをパラメータにした予め設定された目標燃圧マップに、もとづいて燃圧の調整を行う。例えば、エンジン回転速度Neをパラメータとした、予め設定されたフュエルポンプ制御マップにもとづいて、フュエルポンプモータ4の回転速度をLow状態及びHi状態のいずれかに切替え制御する。また、燃料供給系制御部214Bは、例えば、エンジン回転速度Ne、要求トルクをパラメータに、高圧ポンプの高圧ポンプ電磁弁5を制御して、高圧ポンプからの吐出量を制御する。燃料噴射制御部燃料噴射制御部215Bは、要求出力演算部212において算出された要求トルクや、エンジン回転速度Neに応じて、燃料噴射量、具体的には、デリバリパイプの燃圧センサ41からの燃圧に応じ、予め設定された燃圧をパラメータとした燃料噴射時間を設定し、タイミング制御部211Bからの各気筒のクランク角信号に応じて予め設定された噴射開始のタイミングマップ図示せずにもとづいて、各気筒の燃料噴射弁20Bに対して燃料噴射の制御を行う。燃料噴射制御部215Bは、排気ガスセンサ24からの排気ガス中の酸素濃度の信号にもとづいて、燃料噴射量を調節し、排気ガス規制に適合するような燃焼状態に調節する。《燃料噴射制御の全体フローチャート及び詳細フローチャート》本実施形態においても全体フローチャートは、基本的に第1の実施形態の図3、図4のものと同じであるが、ステップS05の燃料噴射済みフラグ初期化処理の詳細フローチャートと、ステップS11の燃料噴射済みフラグの修正処理の詳細フローチャートが一部異なる。ステップS05の燃料噴射済みフラグ初期化処理、ステップS11の燃料噴射済みフラグの修正処理の詳細フローチャートの本実施形態における第1の実施形態との相違点について説明する。まず、図6の燃料噴射済みフラグ初期化処理の詳細フローチャートにおけるステップS36を、図16に示すようにステップS36Aのi気筒の吸入行程開始に読み替える。また、図10の燃料噴射済みフラグの修正処理の詳細フローチャートにおいて、ステップS73とステップS74の間に、図17に示すようにステップS73Aを挿入する。ステップ73Aでは、ステップS73で算出されたFIINJAGLCRiが所定の実クランク角X0deg.より大きいか否かをチェックするFIINJAGLCRi>X0deg.。FIINJAGLCRiが所定の実クランク角X0deg.より大きい場合Yesは、ステップS74に進み、FIINJAGLCRiが所定の実クランク角X0deg.以下の場合Noは、ステップS78へ進む。ここで、X0の値は、本実施形態では、例えば、10deg.である。このX0の値は、排気行程で燃焼室内へ燃料噴射を開始した場合に、燃料が排気系へ排出されずに燃焼室内に残存してしまう角度を、予め実験により求めて設定する。ステップS73AでNoの場合は、実行程における初回燃料噴射された燃料が、排気系へ排出されずに燃焼室内に残存してしまう場合であり、実行程判別前に初回燃料噴射された燃料は、実行程判別後の次回燃料噴射と重複することになるので、既に立っている燃料噴射済みフラグの修正処理をしないで、ステップS78へ進む。また、図17に示すように図10の燃料噴射済みフラグの修正処理の詳細フローチャートにおけるステップS75のINTKJUDAGLi>-180deg.を、ステップS75AのINTKJUDAGLi>0deg.に置き換える。そして、本実施形態では、記憶にもとづくクランク角で示す初回燃料噴射時期FIINJAGLi、それを図3のフローチャートのステップS04において記憶更新されるクランク角CAi、図17の詳細フローチャートのステップS73において演算される初回燃料噴射時期の実クランク角FIINJAGLCRiは、ともに吸入行程の最初を0deg.とし、0deg.から減算するとき720deg.と読み直し、714,708,,12,6,0deg.とクランク軸の正回転の方向に6deg.のCRKパルスに対応して減算定義される。ここで、図17に示した燃料噴射済みフラグの修正処理の制御の流れを示す詳細フローチャートにおけるステップS73~S77は、請求の範囲に記載の噴射タイミング判別手段に対応する。図18は、燃料噴射済みフラグF_INJi修正のための実燃料噴射時期FIINJAGLCRiクランク角表示と、次回のi気筒の燃料の燃料噴射の可否判定用角度INTKJUDAGLiの設定の説明図である。本実施形態における次回のi気筒の燃料噴射の可否判定用角度INTKJUDAGLiの値は、図18に示すように最大値を540deg.とし、それ以下のクラン角表示の値であり、負値側の最低値に制限を設けないこととする。次に、図19を参照しながら本実施形態におけるエンジン始動時の各気筒の記憶にもとづくクランク角による初回燃料噴射後の次回の燃料噴射の制御結果について説明する。図19は、直噴式エンジンにおける圧縮行程噴射の場合の燃料噴射済みフラグの修正の方法の説明図であり、aは、通常運転状態の説明図、bは、エンジン始動時のクランク角の記憶間違い例1における燃料噴射済みフラグの修正の説明図である。図19のaには、実行程を示すバーチャートと、燃料噴射制御部215Bから各気筒の燃料噴射弁20B図15参照に対して出力されるINJ信号と、燃料噴射済みフラグF_INJフローチャートでは、気筒番号を示す引数iを加えてF_INJiと表示を示す。図19のaに示すように、通常運転状態の場合は、INJ信号は、圧縮行程の所定のクランク角INJOBのタイミングt1を起点として、所定の期間t1~t2だけオン図19中、1で表示状態となる。所定の期間t1~t2は、要求トルクとエンジンの機関温度等の環境条件などに応じた燃料噴射量により変化する。燃料噴射済みフラグF_INJは、INJ信号がオンになった、例えば、タイミングt1で立ち=1、吸入行程を迎えると、タイミングt3において次の燃料噴射を可能とするようにリセット=0する。次に、図19のbには、実行程を示すバーチャートと、エンジン制御ECU27BのCPUの認識する行程図中、ECU認識の行程と表示と、INJ信号と、燃料噴射済みフラグF_INJを示す。図19のbは、エンジン始動時の記憶にもとづくクランク角による初回燃料噴射を行い、その後に記憶にもとづくクランク角では爆発行程であると認識している行程の途中、例えば、252deg.のクランク角の記憶間違い判定タイミングtJUDにおいて、実クランク角がTDCパルス形状及びCRKパルス形状にもとづいて圧縮行程に入っていると判定された場合の例を示している。図19のb中、実線で示すINJ信号と燃料噴射済みフラグF_INJは、従来技術の場合を示し、一点鎖線で示すINJ信号と燃料噴射済みフラグF_INJは、本実施形態における従来技術から変化した部分を示している。初回燃料噴射は、INJ信号に示すように、記憶にもとづくクランク角の圧縮行程の所定のクランク角INJOBのタイミングt1を起点として、所定の期間t1~t2燃料噴射タイミングだけオンされている。そして、燃料噴射済みフラグF_INJは、INJ信号がオンになったタイミングt1で立ち=1、クランク角の記憶間違い判定タイミングtJUD、つまり、クランク角の記憶間違い判定時に、すでに吸入行程の開始を過ぎているため、実線のように燃料噴射済みフラグF_INJは立ったままである。従って、従来技術では、次の圧縮行程の所定の期間t1N~t2Nにおいて燃料噴射を実行させる制御ができない。具体的には、図7の燃料噴射実行処理の詳細フローチャートのステップS43に示すように、燃料噴射済みフラグF_INJiが1でない場合に、ステップS44へ進むことができ、燃料噴射が実行できるようになっているためである。しかし、本実施形態では、図19のbに示すようにタイミングtJUDにおいてクランク角の記憶間違い判定を行い、ECU認識の行程を修正し、燃料噴射制御部215Bは、初回燃料噴射時期を示す実クランク角FIINJAGLCRiが、図18に示すように60deg.であり、初回燃料噴射時期からのクランク角の進みCYLJUDAGLiが、240deg.である。そして、ITKJUDAGL=60-240=-180deg.、つまり、0deg.を超えないこととなる。従って、クランク角の記憶間違い判定タイミングtJUDの後、立っていた燃料噴射済みフラグF_INJを一点鎖線で示すように倒す=0。その結果、燃料噴射制御部215Bは、燃料噴射済みフラグF_INJがリセットされているので、一点鎖線で示すように次の燃料噴射が実クランク角で圧縮行程のt1N~t2Nの期間にINJ信号を出力する。それに伴って燃料噴射済みフラグF_INJが、一点鎖線で示すt1N~t3Nの期間立っている。図19のbに示すように初回燃料噴射t1~t2の期間のINJ信号は実クランク角で遡って換算すると、排気行程で行われておりそのまま排気されており、仮にクランク角の記憶間違い判定タイミングtJUDの実行程判別後の最初の燃料噴射タイミングである次の圧縮行程のt1N~t2Nの期間に燃料噴射しないとすると、この気筒は失火することになり、エンジン始動時のエンジンの回転が滑らかにすることができない。そこで、燃料噴射制御部215Bは、実行程判別後の最初の燃料噴射タイミングにて予定される次回のi気筒の燃料噴射が、実行程判別前の記憶されたクランク角CAiもとづいて初回燃料噴射された燃料の噴射が、実行程において気筒内で爆発、または気筒外へ排出されていないかを、次回のi気筒の燃料の燃料噴射の可否判定用角度INTKJUDAGLiで判定し、次回のi気筒の燃料噴射を実行するかどうかの制御を行う。また、特許文献1に記載の従来技術のように、初回燃料噴射の量だけ次回の燃料噴射量を減じるような制御を行わないので、次回燃料噴射量が不足して失火するということも防止できる。つまり、始動性の悪化を防止できる。ちなみに、この次回のi気筒の燃料の燃料噴射の可否判定用角度INTKJUDAGLiでの判定が、請求の範囲に記載の実行程判別後の最初の燃料噴射タイミングにて噴射される燃料と同じ燃焼タイミングで寄与するか否かを判別するに対応している。図20は、直噴式エンジンにおける爆発行程噴射の場合の燃料噴射済みフラグの修正の方法の説明図であり、aは、通常運転状態の説明図、bは、エンジン始動時のクランク角の記憶間違い例2における燃料噴射済みフラグの修正の説明図である。図20のaに示すように、通常運転状態の場合は、INJ信号は、爆発行程の所定のクランク角INJOBのタイミングt1を起点として、所定の期間t1~t2だけオン図20中、1で表示状態となる。所定の期間t1~t2は、要求トルクとエンジンの機関温度等の環境条件などに応じた燃料噴射量により変化する。燃料噴射済みフラグF_INJは、INJ信号がオンになった、例えば、タイミングt1で立ち=1、吸入行程を迎えると、タイミングt3において次の燃料噴射を可能とするようにリセット=0する。図20のbには、実行程を示すバーチャートと、エンジン制御ECU27BのCPUの認識する行程図中、ECU認識の行程と表示と、INJ信号と、燃料噴射済みフラグF_INJを示す。図20のbは、エンジン始動時の記憶にもとづくクランク角による初回燃料噴射を行い、その後に記憶にもとづくクランク角では吸入行程であると認識している行程の途中、例えば、660deg.のクランク角の記憶間違い判定タイミングtJUDにおいて、実クランク角がTDCパルス形状及びCRKパルス形状にもとづいて爆発行程に入っていると判定された場合の例を示している。初回燃料噴射は、INJ信号に示すように、記憶にもとづくクランク角の爆発行程の所定のクランク角INJOBのタイミングt1を起点として、所定の期間t1~t2燃料噴射タイミングだけオンされている。そして、燃料噴射済みフラグF_INJは、INJ信号がオンになったタイミングt1で立ち=1、クランク角の記憶間違い判定タイミングtJUDの前に、つまり、クランク角の記憶間違い判定前に、すでに吸入行程の開始を迎えたと認識し、タイミングt3において実線のように燃料噴射済みフラグF_INJは0にリセットされている。従って、クランク角の記憶間違い判定タイミングtJUD後の次の爆発行程の所定の期間t1N~t2Nにおいても、燃料噴射を実行させる制御をしてしまう。具体的には、図7の燃料噴射実行処理の詳細フローチャートのステップS43に示すように、燃料噴射済みフラグF_INJiが1でない場合は、ステップS44へ進むことができ、燃料噴射が実行できるようになっているためである。しかし、本実施形態では、図20のbに示すようにタイミングtJUDにおいてクランク角の記憶間違い判定を行い、ECU認識の行程を修正し、燃料噴射制御部215Bは、初回燃料噴射時期を示す実クランク角FIINJAGLCRiが、図18に示すように60deg.であり、初回燃料噴射時期からのクランク角の進みCYLJUDAGLiは、420deg.である。そして、ITKJUDAGL=60-420=-360deg.、つまり、0deg.を超えないこととなる。従って、クランク角の記憶間違い判定タイミングtJUDの後、燃料噴射済みフラグF_INJを立てない。その結果、燃料噴射制御部215Bは、燃料噴射済みフラグF_INJが立っていないので、実線で示すように次の燃料噴射が実クランク角で爆発行程のt1N~t2Nの期間にINJ信号を出力する。それに伴って燃料噴射済みフラグF_INJが、一点鎖線で示すt1N~t3Nの期間立っている。図20のbに示すように初回燃料噴射t1~t2の期間のINJ信号は実クランク角で遡って換算すると、排気行程で完了し噴射された燃料はそのまま排気されている。仮に次の爆発行程のt1N~t2Nの期間に燃料噴射しないとすると、この気筒は失火することになり、エンジン始動時のエンジンの回転が滑らかにすることができない。以上のように本実施形態により、直噴式エンジンにおける燃料の圧縮行程噴射、爆発行程噴射の場合でも、記憶にもとづくクランク角による初回燃料噴射に続く、クランク角の記憶間違い判定tJUD後の同じ気筒の次回の燃料噴射を適切に制御でき、失火や二重噴射によるエミッションの悪化を防止できる。なお、第1の実施形態、第2の実施形態において、IG-SW111のON操作によるエンジン制御ECU27A,27Bの起動完了後においては、常に、各気筒iのクラン角CAiを、不揮発メモリを用いたクランク角記憶部211a~211dに記憶更新することとしたがそれに限定されるものではない。IG-SW111がOFFされたときだけ、エンジン停止まで各気筒iのクラン角CAiをクランク角記憶部211a~211dに記憶更新することにし、エンジン始動後は、一時記憶だけとしても良い。なお、第1の実施形態、第2の実施形態において直列4気筒エンジンを例に説明したがそれに限定されるものではない。直列6気筒、直列8気筒、V型6気筒のエンジン等にも本発明は適用できる。"