(57)【要約】【課題】  気筒判別精度を高めて内燃機関の始動性を高めること。【解決手段】  内燃機関制御装置は、カムセンサからのセンサ情報、クランクセンサからのセンサ情報、及び、クランクシャフトの逆転を検出する逆転検出センサからのセンサ情報であって、内燃機関停止条件の成立後から内燃機関が停止したと判定されるまでのセンサ情報を記憶する記憶装置と、内燃機関が停止したと判定された場合に、内燃機関が停止している間、前記記憶装置に蓄積された前記センサ情報に基づいて気筒判別を行うと共に、内燃機関始動条件が成立した場合に、前記気筒判別の結果に基づいて、内燃機関の始動を制御する処理装置とを含む。【選択図】  図３
2014190274.tif 000002
【特許請求の範囲】
【請求項１】
カムセンサからのセンサ情報、クランクセンサからのセンサ情報、及び、クランクシャフトの逆転を検出する逆転検出センサからのセンサ情報であって、内燃機関停止条件の成立後から内燃機関が停止したと判定されるまでのセンサ情報を記憶する記憶装置と、
内燃機関が停止したと判定された場合に、内燃機関が停止している間、前記記憶装置に蓄積された前記センサ情報に基づいて気筒判別を行うと共に、内燃機関始動条件が成立した場合に、前記気筒判別の結果に基づいて、内燃機関の始動を制御する処理装置とを含む、内燃機関制御装置。
【請求項２】
カムセンサからのセンサ情報、クランクセンサからのセンサ情報、及び、クランクシャフトの逆転を検出する逆転検出センサからのセンサ情報を、内燃機関停止条件の成立後から内燃機関が停止したと判定されるまで取得して蓄積し、
内燃機関が停止したと判定された場合に、内燃機関が停止している間、前記蓄積された前記センサ情報に基づいて気筒判別を行い、
内燃機関始動条件が成立した場合に、前記気筒判別の結果に基づいて、内燃機関の始動を制御する、内燃機関制御方法。
【請求項３】
カムセンサからのセンサ情報、クランクセンサからのセンサ情報、及び、クランクシャフトの逆転を検出する逆転検出センサからのセンサ情報を、内燃機関停止条件の成立後から内燃機関が停止したと判定されるまで取得して蓄積し、
内燃機関が停止したと判定された場合に、内燃機関が停止している間、前記蓄積された前記センサ情報に基づいて気筒判別を行い、
内燃機関始動条件が成立した場合に、前記気筒判別の結果に基づいて、内燃機関の始動を制御する、
処理をコンピューターに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、内燃機関制御装置、内燃機関制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、内燃機関のクランク軸の回転に同期して２つのセンサ部から位相の異なるパルス信号を周期的に出力するクランク角センサを備える異常診断装置が知られている（例えば、特許文献１参照）。クランク角センサは、２つのセンサ部からの２つのパルス信号の関係に基づいて前記クランク軸の回転方向を判定して、当該回転方向に応じて異なるパルス幅のクランク角信号を出力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2011-069282号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、内燃機関の回転が停止する間際は、クランクシャフトの回転速度が低速となり、クランクシャフトの逆転が生じうるため、クランクセンサから得られるパルス信号が不安定な波形となりうる。かかる不安定な波形に基づいて、気筒判別を行うと気筒判別精度が悪くなり、内燃機関の始動性が阻害される虞がある。
【０００５】
そこで、開示の技術は、気筒判別精度を高めて内燃機関の始動性を高めることが可能な内燃機関制御装置、内燃機関制御方法及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００６】
本開示の一局面によれば、カムセンサからのセンサ情報、クランクセンサからのセンサ情報、及び、クランクシャフトの逆転を検出する逆転検出センサからのセンサ情報であって、内燃機関停止条件の成立後から内燃機関が停止したと判定されるまでのセンサ情報を記憶する記憶装置と、
内燃機関が停止したと判定された場合に、内燃機関が停止している間、前記記憶装置に蓄積された前記センサ情報に基づいて気筒判別を行うと共に、内燃機関始動条件が成立した場合に、前記気筒判別の結果に基づいて、内燃機関の始動を制御する処理装置とを含む、内燃機関制御装置が提供される。
【発明の効果】
【０００７】
本開示の技術によれば、気筒判別精度を高めて内燃機関の始動性を高めることが可能な内燃機関制御装置、内燃機関制御方法及びプログラムが得られる。
【図面の簡単な説明】
【０００８】
【図１】一実施例の処理装置１０と各種センサとの関係の一例を示す図である。
【図２】処理装置１０のハードウェア構成の一例を示す図である。
【図３】処理装置１０により実行される処理の一例を示すフローチャートである。
【図４】図３に示す処理の説明図であり、内燃機関の状態と共に処理内容を示すタイミング図である。
【図５】比較例によるタイミング図である。
【図６】ロギングデータに基づく気筒判別処理の説明図である。
【図７】図３のステップ３０８の処理で用いられる間延びタイマカウンタの説明図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら各実施例について詳細に説明する。
【００１０】
図１は、一実施例の内燃機関制御装置１と各種センサとの関係の一例を示す図である。内燃機関制御装置１は、処理装置１０及びデータロガー(Data Logger)３０を含む。
【００１１】
処理装置１０は、任意の形態で構成されてもよい。処理装置１０の各種機能（以下で説明する機能を含む）は、任意のハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせにより実現されてもよい。例えば、処理装置１０の機能の任意の一部又は全部は、特定用途向けＡＳＩＣ（application-specific integrated circuit）、ＦＰＧＡ（Field Programmable Gate Array）等により実現されてもよい。また、処理装置１０は、複数の処理装置により実現されてもよい。
【００１２】
処理装置１０には、データロガー３０が接続される。データロガー３０は、クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ値（センサ情報）を蓄積する。
【００１３】
処理装置１０には、クランクセンサ２０と、カムセンサ２２と、逆転検出センサ２４とが接続されている。処理装置１０には、他のセンサや他の制御装置が接続されてよい。
【００１４】
処理装置１０は、クランクセンサ２０、カムセンサ２２、逆転検出センサ２４等からの情報に基づいて、内燃機関（図示せず）を制御する。例えば、処理装置１０は、燃料噴射制御や点火制御等を行ってよい。
【００１５】
クランクセンサ２０は、クランクシャフト（シグナルロータ）の回転角に応じたクランク角信号を生成する。クランク角信号は、所定クランク角ピッチ（例えば１０ＣＡピッチ）毎にパルスを発生させる信号であってよい。クランクセンサ２０の検出方式は任意であり、電磁誘導方式やホールセンサ方式であってよい。また、シグナルロータの外周は、所定クランク角ピッチに対応したピッチで突起（歯）を有しつつ、上死点検出用に欠歯部を有してもよい。
【００１６】
カムセンサ２２は、カムシャフト（図示せず）の回転角に応じたカム角信号を生成する。カム角信号は、クランク角信号と実質的に同様であり、例えば９０ＣＡ中に１回だけパルスを発生させる信号であってよい。カムセンサ２２の検出方式は任意であり、電磁誘導方式やホールセンサ方式であってよい。
【００１７】
逆転検出センサ２４は、クランクシャフトの逆転を検出する。逆転検出センサ２４は、クランクシャフトの逆転角を表す逆転角信号を生成する。
【００１８】
尚、逆転検出センサ２４とクランクセンサ２０は、構成自体は同一であってよく、クランクシャフトのシグナルロータの回転方向に離間して配置されてよい。例えば、逆転検出センサ２４とクランクセンサ２０は、シグナルロータの突起が対向位置を通過するときに"Ｈ"となり、突起間の谷間が対向位置を通過するときに"Ｌ"となる信号（クランク角信号及び逆転角信号）を生成するものであってよい。この場合、クランクセンサ２０が"Ｌ"から"Ｈ"に変化したときに逆転検出センサ２４が"Ｌ"である場合に、シグナルロータの正転方向に回転していると判定してよい。また、クランクセンサ２０が"Ｈ"から"Ｌ"に変化したときに逆転検出センサ２４が"Ｈ"である場合に、シグナルロータの正転方向に回転していると判定してよい。また、クランクセンサ２０が"Ｌ"から"Ｈ"に変化したときに逆転検出センサ２４が"Ｈ"である場合に、シグナルロータの逆転方向に回転していると判定してよい。また、クランクセンサ２０が"Ｈ"から"Ｌ"に変化したときに逆転検出センサ２４が"Ｌ"である場合に、シグナルロータの逆転方向に回転していると判定してよい。
【００１９】
尚、以下では、便宜上、逆転角信号は、クランクシャフトの逆転時のみ所定クランク角ピッチ（例えば１０ＣＡピッチ）毎にパルスを発生させる信号であるとして、説明を続ける。また、以下では、便宜上、クランクセンサ２０は、クランクシャフトの正転時のみ所定クランク角ピッチ（例えば１０ＣＡピッチ）毎にパルスを発生させる信号であるとして、説明を続ける。
【００２０】
図２は、処理装置１０のハードウェア構成の一例を示す図である。
【００２１】
図２に示す例では、処理装置１０は、制御部１０１、主記憶部１０２、補助記憶部１０３、及び、ハードウェアＩ／Ｆ部１０６を含む。
【００２２】
制御部１０１は、主記憶部１０２や補助記憶部１０３に記憶されたプログラムを実行する演算装置であり、記憶装置からデータを受け取り、演算、加工した上で、記憶装置などに出力する。制御部１０１は、例えばＣＰＵ(Central Processing Unit) やタイマカウンタ等を含んでよい。
【００２３】
主記憶部１０２は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部１０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００２４】
補助記憶部１０３は、ＥＥＰＲＯＭ（Electric-Erasable Programmable Read-Only Memory）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【００２５】
ハードウェアＩ／Ｆ部１０６は、有線及び／又は無線回線などで接続された車両ネットワーク（例えば、CAN（controller area network）等）や内燃機関の周辺機器（例えば、クランクセンサ２０等）と処理装置１０とのインターフェースである。
【００２６】
尚、図２に示す例において、以下で説明する各種処理は、プログラムを制御部１０１に実行させることで実現することができる。
【００２７】
図３は、処理装置１０により実行される処理の一例を示すフローチャートである。図３に示す処理ルーチンは、内燃機関を制御している間（例えば、イグニッションスイッチがオンである間）、所定周期毎に繰り返し実行されてよい。
【００２８】
ステップ３００では、内燃機関停止の指示を検出したか否かを判定する。即ち内燃機関停止条件が成立したか否かを判定する。尚、内燃機関停止の指示は、処理装置１０により生成されてもよいし、外部の制御装置から送信される指示であってよい。内燃機関停止条件は、アイドルストップ条件が成立した場合に成立してよい。アイドルストップ条件は、例えば、車両の停止状態（例えば車速が０である状態）が検出され、且つ、他の許可条件が成立した場合に成立してよい。他の許可条件は、例えば、冷却水温度に関する条件や、バッテリの温度等に関する条件、内燃機関の回転数に関する条件であってよい。内燃機関停止の指示を検出した場合は、ステップ３０２に進み、それ以外の場合は、内燃機関停止の指示の検出待ち状態となる。
【００２９】
ステップ３０２では、ロギングデータの解析が完了しているか否かを判定する。ロギングデータの解析が完了しているか否かは、解析完了フラグの状態で判定してもよい。ロギングデータの解析については後述する。ロギングデータの解析が完了している場合は、ステップ３１６に進み、ロギングデータの解析が未完了の場合は、ステップ３０４に進む。
【００３０】
ステップ３０４では、内燃機関の回転数が安定状態であるか否かを判定する。例えば、内燃機関の回転数が所定回転数よりも大きい場合、内燃機関の回転数が安定状態であると判定してもよい。所定回転数は、クランクシャフトの逆転が生じうる内燃機関の回転数の範囲の最大値に対応してよい。内燃機関の回転数が安定状態である場合は、ステップ３０６に進み、内燃機関の回転数が安定状態でない場合（例えば、内燃機関の回転数が所定回転数以下となった場合）、ステップ３０８に進む。
【００３１】
ステップ３０６では、安定状態の波形検出ロジックを用いて、データロガー３０は、クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ値をロギングする。安定状態の波形検出ロジックについては、通常的に用いられる任意の波形検出ロジックであってよい。
【００３２】
ステップ３０８では、不安定状態の波形検出ロジックを用いて、データロガー３０は、クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ値をロギングする。不安定状態の波形検出ロジックでは、安定状態の波形検出ロジックで用いるタイマカウンタのタイマカウンタ周期よりも長いタイマカウンタ周期のタイマカウンタが用いられる。これは、内燃機関停止直前は、内燃機関の回転数の低下に伴って、クランクセンサ２０等からの信号波形が間延び（パルス間隔が広くなる）するためである。以下では、区別のため、安定状態の波形検出ロジックで用いるタイマカウンタを、「通常タイマカウンタ」と称し、不安定状態の波形検出ロジックで用いるタイマカウンタを、「間延びタイマカウンタ」と称する。不安定状態の波形検出ロジックについては、図５を参照して後述する。
【００３３】
ステップ３１０では、内燃機関停止を検出したか否かを判定する。内燃機関停止は、クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ値に基づいて判定してもよい。例えば、クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ値が所定時間以上変化していない場合、内燃機関停止を検出したと判定してもよい。即ち、クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各信号のパルス間隔（例えば、前回の立ち下がりエッジから、立ち下がりエッジが検出されないまま経過した時間）が所定時間を越えた場合に、内燃機関停止を検出したと判定してもよい。尚、この内燃機関の停止判定（例えばパルス間隔の算出）は、不安定状態の波形検出ロジックで用いられる間延びタイマカウンタを用いて実現されてよい。内燃機関停止を検出した場合は、ステップ３１２に進み、それ以外の場合、ステップ３１６に進む。
【００３４】
ステップ３１２では、上記ステップ３０６及びステップ３０８でロギングしたデータをデータロガー３０に保存する。このようにして、内燃機関停止の指示を検出してから内燃機関停止を検出するまでのデータ（クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ信号の時系列）がデータロガー３０に蓄積される。
【００３５】
ステップ３１４では、データロガー３０に蓄積されたロギングデータ、即ち内燃機関停止の指示を検出してから内燃機関停止を検出するまでのロギングデータを解析し、気筒判別を行う。一般に、複数の気筒を備える自動車用内燃機関等の内燃機関においては、気筒毎に燃料噴射や点火が行われるため、気筒判別が実行される。気筒判別は、各気筒のうち燃料噴射や点火を行うべき気筒を判別する処理であり、クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ値に基づいて実現される。基本的には、クランクセンサ２０及びカムセンサ２２の各センサ値に基づいてクランクシャフト及びカムシャフトの回転位置が分かるので、これらのクランクセンサ２０及びカムセンサ２２の各センサ値で気筒判別は可能である。しかしながら、内燃機関の回転が停止する間際は、クランクシャフトの回転速度が低速となり、クランクシャフトの逆転が生じうる。このため、逆転検出センサ２４のセンサ値に基づいて、クランクシャフトの逆転を加味した気筒判別が実行される。尚、ロギングデータの解析が終了すると、その旨を表す解析完了フラグをセットしてよい（上記ステップ３０２の判定参照）。
【００３６】
ステップ３１６では、内燃機関停止を解除したか否かを判定する。即ち内燃機関始動条件が成立したか否かを判定する。内燃機関始動条件は、例えば、内燃機関始動条件は、アイドルストップ解除条件が成立した場合に成立してよい。例えば、車両がＡＴ（Automatic Transmission）車である場合は、アイドルストップ解除条件は、変速機のシフト位置が"Ｎ"レンジから"Ｄ"レンジ又は"Ｒ"レンジに移行した或いはブレーキ操作が解除された場合に成立してよい。また、車両がＭＴ（Manual Transmission）車である場合は、アイドルストップ解除条件は、クラッチペダルが踏み込まれた場合に成立してよい。内燃機関停止を解除した場合は、ステップ３１８に進み、それ以外の場合（内燃機関始動条件が未だ成立していない場合）は、ステップ３０２に戻る。
【００３７】
ステップ３１８では、内燃機関が停止中（停止状態）であるか否かを判定する。内燃機関が停止中である場合は、ステップ３２０に進み、それ以外の場合（即ち内燃機関が未だ停止していない場合）は、ステップ３２２に進む。
【００３８】
ステップ３２０では、上記ステップ３１４で得られた気筒判別結果に基づいて、内燃機関の再始動を制御する。これにより、上記ステップ３１４で得られた気筒判別結果に基づいて、１気筒目から燃料噴射や点火を開始することができ、アイドルストップ後の内燃機関の再始動性が向上する。
【００３９】
ステップ３２２では、通常のシーケンスに従って内燃機関の再始動を制御する。例えば、クランキング時に得られるクランクセンサ２０及びカムセンサ２２の各センサ値に基づいて気筒判別を行い、気筒判別が完了した時点から燃料噴射や点火を開始する。
【００４０】
ところで、内燃機関停止条件の成立後は、上述の如く、内燃機関の回転数が不安定になるので（クランクシャフトの逆転が生じうるので）、気筒判別精度が悪化しうる。この点、図３に示す処理によれば、内燃機関停止条件の成立直後から内燃機関が停止したと判定されるまでの間にデータロガー３０に蓄積されたロギングデータ（クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ値）が気筒判別に使用される。これにより、上記のようなデータロガー３０に蓄積されたロギングデータ（時系列データ）に基づいて、時間的に遡った解析が可能となり、気筒判別精度が向上する。
【００４１】
図４は、図３に示す処理の説明図であり、内燃機関の状態と共に処理内容を示すタイミング図である。図５は、比較例によるタイミング図である。以下では、４気筒の内燃機関が想定される。図４及び図５においては、（Ａ）は共通であり、内燃機関の状態の一例を示す。具体的には、上段の表は、クランク角と点火順（ＴＤＣ（上死点）となる気筒番号）の時系列を示す。例えば「＃１ＴＤＣ」は、１番気筒が上死点になることを意味する。また、（Ａ）において、表の下において、上から順に、イグニッションスイッチのオン／オフ状態の時系列、アイドルストップ条件の成立状態の時系列、カムセンサ２２の信号波形（時系列）、クランクセンサ２０の信号波形（時系列）を示す。また、更に、逆転検出センサ２４の信号波形（時系列）、及び、内燃機関停止状態の時系列を示す。尚、アイドルストップ条件の成立状態については、「ＯＮ」が「成立」を表し、内燃機関停止状態については、「ＯＮ」が「内燃機関が停止していること」を表す。
【００４２】
また、図４及び図５において、（Ｂ）は、それぞれ、気筒判別処理及び再始動処理のタイミングを示す。また、（Ｂ）において、下側の表は、気筒判別処理結果の一例を示す。
【００４３】
図４に示す例では、時刻ｔ０にて、アイドルストップ条件が成立し（図３のステップ３００のＹＥＳ参照）、データロギングが開始される（図３のステップ３０６，ステップ３０８参照）。時刻ｔ１にて、内燃機関停止が検出される（図３のステップ３１０のＹＥＳ参照）。従って、データロガー３０には、時刻ｔ０から時刻ｔ１までのロギングデータ（クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ値）が蓄積される（図３のステップ３１２参照）。時刻ｔ１では、データロガー３０に蓄積されたロギングデータ（時系列データ）に基づくデータ解析（気筒判別処理）が実行される（図３のステップ３１４参照）。その後、時刻ｔ２にて、アイドルストップ解除条件が成立し（図３のステップ３１６のＹＥＳ参照）、内燃機関再始動が開始される（図３のステップ３２０参照）。この際、内燃機関再始動は、時刻ｔ２までに得られた気筒判別結果に基づいて実行される。
【００４４】
図５に示す比較例でも、同様に、時刻ｔ０にて、アイドルストップ条件が成立する。比較例では、気筒判別がリアルタイムに実行される。比較例では、時刻ｔ３にて気筒判別が終了し、再始動要求待ちとなる。その後、時刻ｔ２にて、アイドルストップ解除条件が成立し、内燃機関再始動が開始される。この際、時刻ｔ３にて得られた気筒判別結果に基づいて実行される。ここで、時刻ｔ３は、実際の内燃機関が停止する時点ｔ１よりも手前である。尚、このような時刻ｔ３から時点ｔ１までの間の空白期間は、内燃機関停止直前のＣＰＵ処理負荷を低減するために、気筒判別が早めに切り上げられることにより生じる。また、このような時刻ｔ３から時点ｔ１までの間の空白期間は、内燃機関停止判定の精度が良好でない場合も生じうる。時刻ｔ３から時点ｔ１までの間、クランクシャフトは非常に低速ながらも依然として回転（又は逆転）しうるので、時刻ｔ３にて得られた気筒判別結果は精度が良好でない可能性がある。このため、図５に示す例では、２気筒目から燃料噴射が開始され、内燃機関の始動性が良好でない。
【００４５】
これに対して、本実施例によれば、上述の如く、時刻ｔ０から時刻ｔ１までのロギングデータ（クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ値）に基づいて気筒判別に使用される。これにより、内燃機関が停止する時点までのデータを使用するので、気筒判別精度が向上する。また、時間的に遡った解析（気筒判別処理）が可能となり、気筒判別精度が向上する。このため、図４に示す例では、１気筒目から燃料噴射が開始され、内燃機関の始動性が良好である。また、内燃機関停止直前は、気筒判別処理を実行しないので、内燃機関停止直前のＣＰＵ負荷を低減することができる。他言すると、比較的ＣＰＵ負荷の低い内燃機関停止中を利用して気筒判別用の解析を行うことで、ＣＰＵ負荷を増大することなく気筒判別処理を行うことができる。
【００４６】
図６は、ロギングデータに基づく気筒判別処理の説明図である。図６においては、図４等と同様、上段の表は、クランク角と点火順（ＴＤＣ（上死点）となる気筒番号）の遷移を示す。表の下において、上から順に、イグニッションスイッチのオン／オフ状態の時系列、アイドルストップ条件の成立状態の時系列、カムセンサ２２の信号波形（時系列）、クランクセンサ２０の信号波形（時系列）を示す。また、更に、逆転検出センサ２４の信号波形（時系列）、及び、内燃機関停止状態の時系列を示す。尚、アイドルストップ条件の成立状態については、「ＯＮ」が「成立」を表し、内燃機関停止状態については、「ＯＮ」が「内燃機関が停止していること」を表す。
【００４７】
図６に示す例では、逆転検出センサ２４の信号波形にパルスが発生しており（Ｚ１，Ｚ２，Ｚ３の３箇所）、内燃機関の停止直前に、クランクシャフトの逆転が生じている。これらに対応する期間には、クランクセンサ２０の信号波形にパルスが発生している（Ｙ１，Ｙ２，Ｙ３の３箇所）。これは、内燃機関の停止直前に、クランクシャフトが正転及び逆転を繰り返しながら停止したことを意味する。本実施例では、上述の如く、内燃機関の停止直前のロギングデータ（クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ値）が蓄積されるので、このような不安定な挙動を解析で事後的に突き止めることができる。これにより、気筒判別精度が向上する。具体的には、Ｙ１，Ｙ２，Ｙ３の３箇所で、クランクカウンタは、それぞれ、「３」、「３」及び「４」カウントアップされるが、Ｚ１，Ｚ２，Ｚ３の３箇所を考慮して、それぞれ、「３」、「３」及び「４」が減算（補正）される。
【００４８】
図７は、図３のステップ３０８の処理で用いられる間延びタイマカウンタの説明図である。図７においては、上から順に、クランクセンサ２０の信号波形（時系列）と、通常タイマカウンタのカウンタ値の時系列と、間延びタイマカウンタのカウンタ値の時系列とが示されている。
【００４９】
ここでは、一例として、時刻ｔ６にて内燃機関停止条件が成立したことを想定する。また、通常タイマカウンタ及び間延びタイマカウンタは、共にクランクセンサ２０の信号波形の立下りエッジを検出し、次の立ち下がりエッジまでの時間をカウントする。
【００５０】
時刻ｔ６以前は、図７に示すように、クランクセンサ２０の信号波形のパルス間隔は非常に短く安定しており、タイマカウンタ周期が短い通常タイマカウンタが好適となる。即ち、通常タイマカウンタのタイマカウンタ周期（"１"とカウントする時間単位）は、パルス間隔の短い波形の取り逃がしを防止するため、クランクセンサ２０の信号波形のパルス間隔の取りうる範囲の最小値よりも小さく設定される。
【００５１】
時刻ｔ６以降は、図７に示すように、クランクセンサ２０の信号波形のパルス間隔は、内燃機関の回転数の低下に伴って徐々に広くなっていく（間延びしていく）。この際、通常タイマカウンタを用いると、図７でＡ部にて示すように、通常タイマカウンタはオーバーフローする。このため、内燃機関の回転数が不安定な状態で通常タイマカウンタを用いると、パルス間隔の長い波形の取り逃がしが発生しうり、クランクセンサ２０の信号波形を精度良く検出することができないことになる。従って、内燃機関の回転数が不安定な状態で通常タイマカウンタを用いると、内燃機関停止判定（図３のステップ３０６参照）や気筒判別精度（図３のステップ３１４参照）が悪化する可能性がある。
【００５２】
これに対して、時刻ｔ６以降は、間延びタイマカウンタを用いると、通常タイマカウンタよりもタイマカウンタ周期が長いため、オーバーフローが発生しない。このため、間延びタイマカウンタを用いることで、内燃機関の回転数が不安定な状態でパルス間隔の長い波形の取り逃がしを防止することができる。これにより、クランクセンサ２０の信号波形を精度良く検出することができる。従って、内燃機関の回転数が不安定な状態で間延びタイマカウンタを用いると、内燃機関停止判定（図３のステップ３０６参照）や気筒判別精度（図３のステップ３１４参照）が向上する。
【００５３】
尚、通常タイマカウンタは、内燃機関の回転数が安定な状態で、クランクセンサ２０の信号波形の異常の有無を判定するために使用されてよい（安定状態の波形検出ロジック）。例えば、通常タイマカウンタのカウント値が所定値未満である場合には、クランクセンサ２０の信号波形が正常であると判定され、図３のステップ３０６の処理が実行されてもよい。他方、通常タイマカウンタのカウント値が所定値を越えた場合は、クランクセンサ２０の信号波形が異常であると判定される。この場合は、クランクセンサ２０の異常の可能性を表す情報が生成され、図３のステップ３０６の処理が実行されなくてよい。
【００５４】
他方、間延びタイマカウンタは、内燃機関の回転数が不安定な状態で、クランクセンサ２０の信号波形の異常の有無を判定するために使用されてよい（不安定状態の波形検出ロジック）。例えば、間延びタイマカウンタのカウント値が所定値未満である場合には、クランクセンサ２０の信号波形が正常であると判定され、図３のステップ３０８の処理が実行されてもよい。他方、間延びタイマカウンタのカウント値が所定値を越えた場合は、クランクセンサ２０の信号波形が異常であると判定される。この場合は、クランクセンサ２０の異常の可能性を表す情報が生成され、図３のステップ３０８の処理が実行されなくてよい。
【００５５】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【００５６】
例えば、上述した実施例では、データロガー３０が記憶装置の一例として用いられているが、データロガー３０に代わりに、処理装置１０の内部の記憶装置や、処理装置１０の外部の記憶装置が使用されてもよい。また、データロガー３０は、処理装置１０に内蔵されてもよい。
【００５７】
また、上述した実施例では、内燃機関停止条件の成立直後から内燃機関が停止したと判定されるまでの間のセンサ情報（クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ値）がデータロガー３０に蓄積され、気筒判別に使用されている。しかしながら、内燃機関停止条件の成立後からのセンサ情報であれば、内燃機関停止条件の成立直後からでなくてもよい。例えば、図３のステップ３０４で否定判定された後から内燃機関が停止したと判定されるまでの間のセンサ情報が蓄積・使用されてもよい。即ち、内燃機関の回転数が不安定になってから内燃機関が停止したと判定されるまでの間のセンサ情報が蓄積・使用されてもよい。
【００５８】
また、上述した実施例では、内燃機関停止条件の成立直後から内燃機関が停止したと判定されるまでの間のセンサ情報がデータロガー３０に蓄積されているが、より長い期間のセンサ情報がデータロガー３０に蓄積されてもよい。例えば、内燃機関停止条件の成立以前から内燃機関が停止したと判定されるまでの間のセンサ情報がデータロガー３０に蓄積されてもよい。この場合、解析には、データロガー３０に蓄積されたデータの一部（必要な部分だけ）が使用されればよい。
【００５９】
また、上述した実施例では、内燃機関停止条件の成立時にセンサ値のロギングが開始されているが、センサ値のロギングは、常に実行されてもよい。例えば、リングバッファ等を用いて、ＦＩＦＯ(first-in, first-out)形式で、一定期間のセンサ情報（クランクセンサ２０、カムセンサ２２、逆転検出センサ２４の各センサ値）を蓄積してもよい。この場合、一定期間を、例えば内燃機関停止条件の成立後から内燃機関が停止したと判定されるまでの期間の取りうる範囲の上限値に対応させればよい。
【００６０】
また、上述した実施例は、アイドルストップ後の内燃機関再始動時に関するものであるが、ユーザによる自主的な内燃機関オフ後の内燃機関再始動時に適用することも可能である。尚、内燃機関再始動（イグニッションスイッチのオン操作）は、内燃機関オフ後から長時間経過後に実行されるものであってよい。この場合も、同様に、内燃機関停止条件の成立後（ユーザによるイグニッションスイッチのオフ操作後）から内燃機関が停止したと判定されるまでの間のセンサ情報がデータロガー３０に蓄積されればよい。そして、次の再始動時までに、データロガー３０内のセンサ情報に基づいて気筒判別処理が実行されればよい。
【００６１】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
カムセンサからのセンサ情報、クランクセンサからのセンサ情報、及び、クランクシャフトの逆転を検出する逆転検出センサからのセンサ情報であって、内燃機関停止条件の成立後から内燃機関が停止したと判定されるまでのセンサ情報を記憶する記憶装置と、
内燃機関が停止したと判定された場合に、内燃機関が停止している間、前記記憶装置に蓄積された前記センサ情報に基づいて気筒判別を行うと共に、内燃機関始動条件が成立した場合に、前記気筒判別の結果に基づいて、内燃機関の始動を制御する処理装置とを含む、内燃機関制御装置。
（付記２）
前記記憶装置は、内燃機関停止条件の成立直後から内燃機関が停止したと判定されるまでのセンサ情報を記憶する、付記１に記載の内燃機関制御装置。
（付記３）
前記記憶装置は、内燃機関停止条件の成立後のクランクシャフトの回転数が所定値以下となった時点から内燃機関が停止したと判定されるまでのセンサ情報を記憶する、付記１に記載の内燃機関制御装置。
（付記４）
前記内燃機関停止条件は、アイドルストップ条件であり、前記内燃機関始動条件は、アイドルストップ解除条件である、付記１〜３のうちのいずれか１項に記載の内燃機関制御装置。
（付記５）
第１所定時間毎にカウントアップし、前記クランクセンサから得られるパルス信号のパルス発生間隔に応じた第１カウント値を生成する第１カウンタと、
前記第１カウンタによりも長い第２所定時間毎にカウントアップし、前記クランクセンサから得られるパルス信号のパルス発生間隔に応じた第２カウント値を生成する第２カウンタとを含み、
前記処理装置は、前記クランクシャフトの回転速度が所定値以上である場合に、前記第１カウンタの第１カウント値に基づいて、前記クランクセンサからのセンサ情報の異常の有無を判定すると共に、前記クランクシャフトの回転速度が前記所定値未満である場合に、前記第２カウンタの第２カウント値に基づいて、内燃機関が停止したか否かを判定する、付記１に記載の内燃機関制御装置。
（付記６）
カムセンサからのセンサ情報、クランクセンサからのセンサ情報、及び、クランクシャフトの逆転を検出する逆転検出センサからのセンサ情報を、内燃機関停止条件の成立後から内燃機関が停止したと判定されるまで取得して蓄積し、
内燃機関が停止したと判定された場合に、内燃機関が停止している間、前記蓄積された前記センサ情報に基づいて気筒判別を行い、
内燃機関始動条件が成立した場合に、前記気筒判別の結果に基づいて、内燃機関の始動を制御する、内燃機関制御方法。
（付記７）
カムセンサからのセンサ情報、クランクセンサからのセンサ情報、及び、クランクシャフトの逆転を検出する逆転検出センサからのセンサ情報を、内燃機関停止条件の成立後から内燃機関が停止したと判定されるまで取得して蓄積し、
内燃機関が停止したと判定された場合に、内燃機関が停止している間、前記蓄積された前記センサ情報に基づいて気筒判別を行い、
内燃機関始動条件が成立した場合に、前記気筒判別の結果に基づいて、内燃機関の始動を制御する、
処理をコンピューターに実行させるプログラム。
【符号の説明】
【００６２】
１    内燃機関制御装置
１０    処理装置
２０    クランクセンサ
２２    カムセンサ
２４    逆転検出センサ
３０    データロガー
【図１】
2014190274.tif 000003
【図２】
2014190274.tif 000004
【図３】
2014190274.tif 000005
【図４】
2014190274.tif 000006
【図５】
2014190274.tif 000007
【図６】
2014190274.tif 000008
【図７】
2014190274.tif 000009