(57)【要約】【課題】ロータ公差を正確に補償し、失火判定を正確に行う。【解決手段】クランクシャフト２０と共に回転するロータ２３の外歯の角速度をそれぞれ検出する角速度センサ２４を具備する。機関運転停止中にスタータモータ２２によりクランキングを行うことによりロータ２３をほぼ一定の角速度で回転させると共にこのとき外歯の角速度をそれぞれ検出する。ロータ公差を補償するための補正係数をこれら検出された外歯の角速度に基づいて更新する。機関運転中に検出された外歯の角速度を更新された補正係数でもってそれぞれ補正し、これら補正された外歯の角速度に基づいて失火判定を行う。【選択図】図１
2009228524.tif 000002
【特許請求の範囲】
【請求項１】
クランクシャフトと共に回転するロータの外歯の角速度をそれぞれ検出する角速度センサを具備し、機関運転停止中にクランキングを行うことによりロータをほぼ一定の角速度で回転させると共にこのとき前記外歯の角速度をそれぞれ検出し、ロータ公差を補償するための補正係数をこれら検出された外歯の角速度に基づいて更新し、機関運転中に検出された前記外歯の角速度を該更新された補正係数でもってそれぞれ補正し、これら補正された外歯の角速度に基づいて失火判定を行うようにした内燃機関の失火判定装置。
【請求項２】
前記補正係数が前記外歯ごとに設定されており、これら外歯の補正係数を、機関運転停止中のクランキング時に検出されたそれぞれ対応する外歯の角速度に基づいて更新するようにした請求項１に記載の内燃機関の失火判定装置。
【請求項３】
機関運転停止中にあらかじめ定められた更新条件が成立しているか否かを判断し、該更新条件が成立しているときには前記補正係数の更新作用を行い、該更新条件が成立していないときには前記補正係数の更新作用を行わないようにした請求項１又は２に記載の内燃機関の失火判定装置。
【請求項４】
機関運転停止中のクランキング時に前記ロータの角速度が一定であると仮定して前記補正係数を更新するようにした請求項１から３までのいずれか一項に記載の内燃機関の失火判定装置。
【請求項５】
機関運転停止中のクランキング時に前記ロータの角速度が振動すると仮定して前記補正係数を更新するようにした請求項１から３までのいずれか一項に記載の内燃機関の失火判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は内燃機関の失火判定装置に関する。
【背景技術】
【０００２】
クランクシャフトと共に回転するロータの外歯の角速度をそれぞれ検出する角速度センサを具備し、これら外歯の角速度をそれぞれ検出し、ロータ公差を補償するための補正係数をこれら検出された外歯の角速度に基づいて更新し、これら検出された外歯の角速度をこれら更新された補正係数でもってそれぞれ補正し、これら補正された外歯の角速度に基づいて失火判定を行うようにした内燃機関の失火判定装置が公知である（特許文献１参照）。すなわち、特許文献１では、補正係数が機関運転中の外歯の角速度に基づいて更新される。
【０００３】
【特許文献１】特許第２８５３３３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、機関運転中には、燃焼変動やロータ又は角速度センサの振動といった外乱の影響が大きいので、機関運転中の外歯の角速度に基づいて更新された補正係数はロータ公差を正確に補償するための補正係数を必ずしも正確に表しておらず、したがって、失火判定を正確に行うのが困難であるという問題点がある。
【課題を解決するための手段】
【０００５】
前記課題を解決するために本発明によれば、クランクシャフトと共に回転するロータの外歯の角速度をそれぞれ検出する角速度センサを具備し、機関運転停止中にクランキングを行うことによりロータをほぼ一定の角速度で回転させると共にこのとき前記外歯の角速度をそれぞれ検出し、ロータ公差を補償するための補正係数をこれら検出された外歯の角速度に基づいて更新し、機関運転中に検出された前記外歯の角速度を該更新された補正係数でもってそれぞれ補正し、これら補正された外歯の角速度に基づいて失火判定を行うようにしている。
【発明の効果】
【０００６】
ロータ公差を正確に補償することができるので、失火判定を正確に行うことができる。
【発明を実施するための最良の形態】
【０００７】
図１は本発明を火花点火式内燃機関に適用した場合を示している。しかしながら、本発明を圧縮着火式内燃機関にも適用することができる。
【０００８】
図1を参照すると、機関本体1は例えば４つの気筒１ａを具備する。これら気筒１ａはそれぞれ対応する吸気枝管２を介してサージタンク３に連結され、サージタンク３は吸気ダクト４を介してエアクリーナ５に連結される。吸気ダクト４内には、吸入空気量を検出するためのエアフローメータ６と、ステップモータ７により駆動されるスロットル弁８とが配置される。また、吸気枝管２内には燃料噴射弁９がそれぞれ取り付けられ、気筒１ａには点火栓１０がそれぞれ設けられる。一方、気筒１ａは排気マニホルド１１及び排気管１２を介して触媒コンバータ１３に連結され、触媒コンバータ１３は排気管１４に連結される。なお、図１に示される内燃機関では１番気筒、３番気筒、４番気筒、２番気筒の順に燃焼が行われる。
【０００９】
機関のクランクシャフト２０には電気制御式のクラッチ２１を介してスタータモータ２２が連結される。クラッチ２１がオフであるとクランクシャフト２０とスタータモータ２２とが互いに分離され、クラッチ２１がオンにされるとクランクシャフト２０がスタータモータ２２に機械的に接続されしたがってスタータモータ２２によって回転駆動される。この場合、クランクシャフト２０はスタータモータ２２によってほぼ一定の角速度ω０で回転される。
【００１０】
また、クランクシャフト２０にはクランクシャフト２０と共に回転するよう外歯付きロータ２３が取り付けられ、ロータ２３の外歯に対面して電磁ピックアップからなる角速度センサないしクランク角センサ２４が配置される。図２（Ａ）に示されるように、ロータ２３の外周上には周方向に互いに離間して複数の外歯２３ａが形成されている。本発明による実施例では、１０°クランク角（ＣＡ）ごとに３６個の外歯２３ａが形成されている。したがって、外歯２３ａが角速度センサ２４を通過するごとに、すなわちクランクシャフト２０ないしロータ２３が１０°ＣＡ回転するごとに、角速度センサ２４は図２（Ｂ）に示されるようなパルスを発生する。ここで、ｉ番目の外歯２３ａ（ｉ＝１，２，…，３６）が角速度センサ２４を通過したときに発生するパルスの時間幅Ｔ１０（ｉ）はｉ番目の外歯２３ａが角速度センサ２４を通過する際にクランクシャフト２０が１０°ＣＡだけ回転するのに要した所要時間を表しており、所要時間Ｔ１０（ｉ）の逆数はｉ番目の外歯２３ａが角速度センサ２４を通過する際のｉ番目の外歯２３ａの角速度ω（ｉ）を表している。したがって、角速度センサ２４のそれぞれ対応する出力パルスから所要時間Ｔ１０（ｉ）を算出しその逆数を算出することにより、ｉ番目の外歯２３ａの角速度ω（ｉ）が検出される。
【００１１】
また、クランクシャフト２０と連動して回転する例えばカムシャフト（図示しない）には気筒判別センサ２５が設けられている。この気筒判別センサ２５はクランクシャフト２０が基準クランク角になるごとに出力パルスを発生する。本発明による実施例では、１番気筒が圧縮上死点にある０°ＣＡに基準クランク角が設定されている。したがって、角速度センサ２４からの出力パルスがどの外歯２３ａによる出力パルスであるかを気筒判別センサ２５からの出力パルスに基づいて判別することができる。
【００１２】
再び図１を参照すると、電子制御ユニット３０はデジタルコンピュータからなり、双方向性バス３１によって相互に接続されたＲＯＭ（リードオンリメモリ）３２、ＲＡＭ（ランダムアクセスメモリ）３３，ＣＰＵ（マイクロプロセッサ）３４、入力ポート３５及び出力ポート３６を具備する。アクセルペダル３９にはアクセルペダル３９の踏み込み量ＤＥＰに比例した出力電圧を発生する負荷センサ４０が接続される。エアフローメータ６及び負荷センサ４０の出力電圧はそれぞれ対応するＡＤ変換器３７を介して入力ポート３５に入力される。また、入力ポート３５には角速度センサ２４と気筒判別センサ２５とが接続され、角速度センサ２４及び気筒判別センサ２５からの出力パルスが入力ポート３５に入力される。ＣＰＵ３４では角速度センサ２４からの出力パルスに基づいて機関回転数Ｎｅが算出される。一方、出力ポート３６は対応する駆動回路３８を介してステップモータ７、燃料噴射弁９、点火栓１０、クラッチ２１及びスタータモータ２２に接続される。
【００１３】
さて、本発明による実施例では、各気筒に失火が生じているか否かを判定する失火判定が角速度センサ２４により検出されるクランクシャフト２０の角速度に基づいて行われる。クランクシャフト２０の角速度に基づく失火判定には種々の方法を採用できるが、本発明による実施例では次のようにして失火判定が行われる。すなわち、例えば３番気筒で失火が生じると、このときの３番気筒の例えば点火時期直後におけるクランクシャフト２０の角速度が、一つ前に燃焼が行われた１番気筒の点火時期直後におけるクランクシャフト２０の角速度よりも大幅に低下する。そこで、或る気筒の点火時期直後におけるクランクシャフト２０の角速度が、一つ前に燃焼が行われた気筒の点火時期直後におけるクランクシャフト２０の角速度よりも一定値以上小さいときには当該或る気筒において失火が生じていると判断し、それ以外は失火が生じていないと判断するようにしている。
【００１４】
この場合、ロータ２３又はその外歯２３ａには一般に製造上の公差が存在しており、角速度センサ２４により検出されるｉ番目の外歯２３ａの角速度すなわち角速度検出値ω（ｉ）はｉ番目の外歯２３ａの角速度を正確に表していない場合がある。そこで本発明による実施例では、この公差を補償するための補正係数ｋｍ（ｉ）を導入し、この補正係数ｋｍ（ｉ）でもって角速度検出値ω（ｉ）をそれぞれ補正し、補正された角速度すなわち角速度補正値ωｃ（ｉ）に基づいて失火判定を行うようにしている。
【００１５】
すなわち、まず、例えば機関１サイクルすなわちクランクシャフト２０の２回転ないし７２０°ＣＡにわたり、ｉ番目の外歯２３ａの所要時間Ｔ１０（ｉ）（ｓｅｃ）が角速度センサ２４からのそれぞれ対応する出力パルスに基づいて算出される（ｉ＝１，２，…，３６）。次いで、ｉ番目の外歯２３ａの角速度検出値ω（ｉ）（ｒａｄ／ｓｅｃ）が次式に基づいて算出される。
【００１６】
ω（ｉ）＝（１０／Ｔ１０（ｉ））・（２π／３６０）
次いで、次式に示されるように、これら角速度検出値ω（ｉ）がそれぞれ対応する補正係数ｋｍ（ｉ）でもって補正され、角速度補正値ωｃ（ｉ）が算出される。
【００１７】
ωｃ（ｉ）＝ω（ｉ）・ｋｍ（ｉ）
次いで、これら角速度補正値ωｃ（ｉ）に基づいて失火判定が行われる。
【００１８】
次に、本発明による実施例における補正係数ｋｍ（ｉ）の更新方法を説明する。
【００１９】
本発明による実施例では、機関運転が停止されると、クラッチ２１がオンにされると共にスタータモータ２２がオンにされ、したがってクランキングが開始される。なお、このとき燃料噴射及び点火作用は停止されている。その結果、クランクシャフト２０及びロータ２３がほぼ一定の角速度ω０で回転される。この状態の下で、ロータ２３の１回転ないし３６０°ＣＡにわたり、ｉ番目の外歯２３ａの所要時間Ｔ１０（ｉ）（ｓｅｃ）が角速度センサ２４からの出力パルスに基づいて算出される（ｉ＝１，２，…，３６）。次いで、ｉ番目の外歯２３ａの角速度検出値ω（ｉ）がそれぞれ対応する所要時間Ｔ１０（ｉ）から算出される。次いで、これら角速度検出値ω（ｉ）の平均値ωａが算出される（ωａ＝（Σω（ｉ））／３６）。次いで、ｉ番目の外歯２３ａのための補正係数ｋｍ（ｉ）が次式に基づいて算出される。
【００２０】
ｋｍ（ｉ）＝ωａ／ω（ｉ）
このようにしているのは次の理由による。すなわち、角速度検出値ω（ｉ）の平均値がωａであるときには、ロータ２３を一定の角速度ωａで回転させたものと考えることができる。この場合、角速度検出値ω（ｉ）は角速度平均値ωａないしω０に一致するはずである。しかしながら、実際には、図３に白丸で示されるように角速度検出値ω（ｉ）は角速度平均値ωａに正確に一致しない場合がある。これはロータ２３ないし外歯２３ａの公差の影響によるものと考えることができ、この公差による影響は角速度平均値ωａに対する角速度検出値ω（ｉ）の偏差（ω（ｉ）／ωａ）で表すことができる。そうすると、角速度検出値ω（ｉ）にこの偏差の逆数（ωａ／ω（ｉ））を乗算して得られる積は公差の影響を受けないことになる。そこで本発明による実施例では、角速度検出値ω（ｉ）及び角速度平均値ωａに基づいて補正係数ｋｍ（ｉ）を更新するようにしている。
【００２１】
したがって、一般化して言うと、本発明による実施例では、機関運転停止中のクランキング時にロータ２３の角速度が一定値ωａであると仮定して補正係数ｋｍ（ｉ）を更新しているということになる。
【００２２】
このように本発明による実施例では、燃焼が行われていないときに補正係数ｋｍ（ｉ）が更新されるので、補正係数ｋｍ（ｉ）は燃焼変動やロータ又は角速度センサの振動といった外乱の影響を受けず、したがって補正係数ｋｍ（ｉ）を正確に算出することができる。また、補正係数ｋｍ（ｉ）が外歯２３ａごとに設定されており、それぞれ対応する外歯２３ａの角速度検出値ω（ｉ）に基づいて更新されるので、他の外歯２３ａの公差の影響を受けることなく、補正係数ｋｍ（ｉ）を正確に算出することができる。したがって、失火判定を正確に行うことができる。
【００２３】
なお、補正係数ｋｍ（ｉ）を更新すべくクランキングが開始された後、ロータ２３の角速度が安定するまでは角速度検出値ω（ｉ）の検出は行われず、ロータ２３の角速度が安定すると、角速度検出値ω（ｉ）の検出が開始される。ロータ２３の角速度が安定したか否かは例えば次のようにして判断することができる。すなわち、クランキングが開始された後、例えばロータ１回転にわたりｉ番目の外歯２３ａの所要時間Ｔ１０（ｉ）が繰り返し算出される（ｉ＝１，２，…，３６）。次いで、各外歯２３ａにおいて前回の所要時間Ｔ１０（ｉ）と今回の所要時間Ｔ１０（ｉ）とが比較される。その上で、今回の所要時間Ｔ１０（ｉ）が前回の所要時間Ｔ１０（ｉ）よりも小さくなっている外歯２３ａの数が一定範囲内にあるときに、ロータ２３の角速度が安定していると判断され、それ以外は不安定であると判断される。この一定範囲は例えば外歯２３ａの総数（３６個）の４０から６０％に設定することができる。
【００２４】
図４は本発明による実施例の失火判定ルーチンを示している。このルーチンはあらかじめ定められた設定時間ごとの割り込みによって実行される。
【００２５】
図４を参照すると、ステップ１００では今回の処理サイクルにおける機関回転数Ｎｅが読み込まれる。続くステップ１０１では今回の処理サイクルにおける機関回転数Ｎｅがゼロよりも大きいか否かすなわち今回の処理サイクルにおいてクランクシャフト２０が回転しているか否かが判別される。Ｎｅ＝０すなわちクランクシャフト２０の回転が停止しているときには次いでステップ１０２に進み、前回の処理サイクルにおける機関回転数ＮｅＰがゼロよりも大きいか否かすなわち前回の処理サイクルにおいてクランクシャフト２０が回転していたか否かが判別される。ＮｅＰ＞０のときすなわち前回の処理サイクルにおいてクランクシャフト２０が回転していたときには、クランクシャフト２０の回転が停止した直後であると判断し、次いでステップ１０３に進んで図５に示される補正係数ｋｍ（ｉ）の更新ルーチンが実行される。次いでステップ１０８に進み、今回の処理サイクルにおける機関回転数ＮｅがＮｅＰとして記憶される。
【００２６】
その後、機関運転が再開されるまでは、Ｎｅ＝０かつＮｅＰ＝０であるので、ステップ１００，１０１，１０２，１０８が順次繰り返される。次いで、機関運転が再開されるとＮｅ＞０となるので、ステップ１０１からステップ１０４に進む。ステップ１０４ではロータ１回転にわたり所要時間Ｔ１０（ｉ）が検出される（ｉ＝１，２，…，３６）。続くステップ１０５では、ステップ１０４において検出された所要時間Ｔ１０（ｉ）から角速度検出値ω（ｉ）がそれぞれ算出される。続くステップ１０６ではステップ１０５において算出された角速度検出値ω（ｉ）がそれぞれ対応する補正係数ｋｍ（ｉ）でもって補正されることにより角速度補正値ωｃ（ｉ）が算出される。続くステップ１０７では角速度補正値ωｃ（ｉ）に基づいて失火判定が行われる。次いでステップ１０８に進み、今回の処理サイクルにおける機関回転数ＮｅがＮｅＰとして記憶される。
【００２７】
補正係数ｋｍ（ｉ）の更新ルーチンを示す図５を参照すると、ステップ２００ではクラッチ２１がオンにされ、スタータモータ２２がオンにされ、したがってクランキングが開始される。続くステップ２０１ではロータ２３の回転が安定したか否かが判別される。ロータ２３の回転が未だ不安定であると判別されたときにはステップ２０１に戻り、ロータ２３の回転が安定したと判別されたときには次いでステップ２０２に進む。ステップ２０２ではロータ１回転にわたり所要時間Ｔ１０（ｉ）が検出される（ｉ＝１，２，…，３６）。続くステップ２０３ではステップ２０２において検出された所要時間Ｔ１０（ｉ）から角速度検出値ω（ｉ）がそれぞれ算出される。続くステップ２０４ではステップ２０３において算出された角速度検出値ω（ｉ）の平均値ωａが算出される。続くステップ２０５では補正係数ｋｍ（ｉ）がそれぞれ更新される（ｋｍ（ｉ）＝ωａ／ω（ｉ））。続くステップ２０６ではクラッチ２１がオフにされ、スタータモータ２２がオフにされ、したがってクランキングが停止される。
【００２８】
なお、上述した本発明による実施例では、機関運転が停止されると直ちに補正係数ｋｍ（ｉ）の更新が行われる。しかしながら、機関運転停止中であれば、どのような時期に補正係数ｋｍ（ｉ）の更新を行ってもよい。
【００２９】
次に、本発明による別の実施例を説明する。
【００３０】
上述した本発明による実施例では、クランクシャフト２０の回転が停止するごとに補正係数ｋｍ（ｉ）の更新作用が行われる。ところが、このようにすると、機関始動が完了しなかった場合やアイドリング時に機関運転を停止する場合にも補正係数ｋｍ（ｉ）の更新作用が行われ、したがってスタータモータ２２が頻繁に運転されるおそれがある。
【００３１】
そこで本発明による別の実施例では、機関運転停止中にあらかじめ定められた更新条件が成立しているか否かを判断し、更新条件が成立しているときには補正係数ｋｍ（ｉ）の更新作用を行い、更新条件が成立していないときには補正係数ｋｍ（ｉ）の更新作用を行わないようにしている。その結果、スタータモータ２２の運転を伴う補正係数ｋｍ（ｉ）の更新作用が頻繁に行われるのが阻止され、したがってバッテリの電力消費を抑制できる。
【００３２】
更新条件には種々の条件が考えられる。本発明による別の実施例では、機関運転中に機関回転数Ｎｅの積算値ΣＮｅが算出され、この機関回転数積算値ΣＮｅがあらかじめ定められた閾値ＴＨを越えたときに更新条件が成立したと判断され、それ以外は更新条件が成立していないと判断される。
【００３３】
すなわち、図６にＸで示される時期に機関運転が停止されてもこのとき機関回転数積算値ΣＮｅは閾値ＴＨよりも小さいので、補正係数ｋｍ（ｉ）の更新作用は行われない。次いで、図６にＹで示される時期に機関運転が停止されるとこのとき機関回転数積算値ΣＮｅは閾値ＴＨよりも大きいので、補正係数ｋｍ（ｉ）の更新作用が行われる。次いで、機関回転数積算値ΣＮｅがゼロに戻される。
【００３４】
図７は本発明による別の実施例の失火判定ルーチンを示している。このルーチンはあらかじめ定められた設定時間ごとの割り込みによって実行される。
【００３５】
図７を参照すると、ステップ１００では今回の処理サイクルにおける機関回転数Ｎｅが読み込まれる。続くステップ１０１では今回の処理サイクルにおける機関回転数Ｎｅがゼロよりも大きいか否かすなわち今回の処理サイクルにおいてクランクシャフト２０が回転しているか否かが判別される。Ｎｅ＝０すなわちクランクシャフト２０の回転が停止しているときには次いでステップ１０２に進み、前回の処理サイクルにおける機関回転数ＮｅＰがゼロよりも大きいか否かすなわち前回の処理サイクルにおいてクランクシャフト２０が回転していたか否かが判別される。ＮｅＰ＞０のときすなわち前回の処理サイクルにおいてクランクシャフト２０が回転していたときには、クランクシャフト２０の回転が停止した直後であると判断し、次いでステップ１０２ａに進んで機関回転数積算値ΣＮｅが閾値ＴＨよりも大きいか否かが判別される。ΣＮｅ＞ＴＨのときには次いでステップ１０３に進んで補正係数ｋｍ（ｉ）の更新ルーチンが実行される。続くステップ１０３ａでは機関回転数積算値ΣＮｅがゼロに戻される。次いでステップ１０８に進み、今回の処理サイクルにおける機関回転数ＮｅがＮｅＰとして記憶される。一方、ΣＮｅ≦ＴＨのときにもステップ１０２ａからステップ１０８に進む。したがって、このとき補正係数ｋｍ（ｉ）の更新ルーチンは実行されない。
【００３６】
その後、機関運転が再開されるまでは、Ｎｅ＝０かつＮｅＰ＝０であるので、ステップ１００，１０１，１０２，１０８が順次繰り返される。次いで、機関運転が再開されるとＮｅ＞０となるので、ステップ１０１からステップ１０４に進む。ステップ１０４ではロータ１回転にわたり所要時間Ｔ１０（ｉ）が検出される（ｉ＝１，２，…，３６）。続くステップ１０５では、ステップ１０４において検出された所要時間Ｔ１０（ｉ）から角速度検出値ω（ｉ）がそれぞれ算出される。続くステップ１０６ではステップ１０５において算出された角速度検出値ω（ｉ）がそれぞれ対応する補正係数ｋｍ（ｉ）でもって補正されることにより角速度補正値ωｃ（ｉ）が算出される。続くステップ１０７では角速度補正値ωｃ（ｉ）に基づいて失火判定が行われる。続くステップ１０７ａでは機関回転数積算値ΣＮｅが算出される（ΣＮｅ＝ΣＮｅ＋Ｎｅ）。次いでステップ１０８に進み、今回の処理サイクルにおける機関回転数ＮｅがＮｅＰとして記憶される。
【００３７】
次に、本発明によるさらに別の実施例を説明する。
【００３８】
図３を参照して説明した本発明による実施例では、機関運転停止中のクランキング時にロータ２３の角速度が一定値ωａであると仮定して補正係数ｋｍ（ｉ）が更新される。しかしながら、ロータ２３が正確に一定の角速度で回転するというのは現実的でなく、ロータ２３の角速度はほぼ一定の角速度ω０を中心として或る振幅でもって振動すると考えられる。
【００３９】
そこで本発明による更に別の実施例では、機関運転停止中のクランキング時にロータ２３の角速度が振動すると仮定して補正係数ｋｍ（ｉ）を更新するようにしている。その結果、ロータ公差をより正確に補償することができる。
【００４０】
すなわち、本発明による更に別の実施例でも、機関運転が停止されると、スタータモータ２２によりクランキングが行われ、このときロータ２３の１回転ないし３６０°ＣＡにわたり、ｉ番目の外歯２３ａの所要時間Ｔ１０（ｉ）（ｓｅｃ）が角速度センサ２４からの出力パルスに基づいて算出される（ｉ＝１，２，…，３６）。次いで、ｉ番目の外歯２３ａの角速度検出値ω（ｉ）がそれぞれ対応する所要時間Ｔ１０（ｉ）から算出される。
【００４１】
次いで、角速度振動値ωｗ（ｉ）が次式に基づいて算出される。
【００４２】
ωｗ（ｉ）＝Ａ・ｓｉｎ｛（π／１８０）・１０ｉ｝＋ω０
ここで、ＡはΣ｛ωｗ（ｉ）−ω（ｉ）｝２を最小にする値である。
【００４３】
その上で、ｉ番目の外歯２３ａのための補正係数ｋｍ（ｉ）が次式に基づいて算出される。
【００４４】
ｋｍ（ｉ）＝ωｗ（ｉ）／ω（ｉ）
図９は本発明による更に別の補正係数ｋｍ（ｉ）の更新ルーチンを示している。このルーチンは図４及び図７のステップ１０３で実行されうる。
【００４５】
図９を参照すると、ステップ２００ではクラッチ２１がオンにされ、スタータモータ２２がオンにされ、したがってクランキングが開始される。続くステップ２０１ではロータ２３の回転が安定したか否かが判別される。ロータ２３の回転が未だ不安定であると判別されたときにはステップ２０１に戻り、ロータ２３の回転が安定したと判別されたときには次いでステップ２０２に進む。ステップ２０２ではロータ１回転にわたり所要時間Ｔ１０（ｉ）が検出される（ｉ＝１，２，…，３６）。続くステップ２０３ではステップ２０２において検出された所要時間Ｔ１０（ｉ）から角速度検出値ω（ｉ）がそれぞれ算出される。続くステップ２０４ａではステップ２０３において算出された角速度検出値ω（ｉ）から角速度振動値ωｗが算出される。続くステップ２０５では補正係数ｋｍ（ｉ）がそれぞれ更新される（ｋｍ（ｉ）＝ωｗ／ω（ｉ））。続くステップ２０６ではクラッチ２１がオフにされ、スタータモータ２２がオフにされ、したがってクランキングが停止される。
【図面の簡単な説明】
【００４６】
【図１】内燃機関の全体図である。
【図２】（Ａ）ロータの詳細図及び（Ｂ）角速度センサの出力パルスの一例を示す図である。
【図３】角速度検出値ω（ｉ）と角速度平均値ωａとの関係を図である。
【図４】失火判定ルーチンを実行するためのフローチャートである。
【図５】補正係数ｋｍ（ｉ）の更新ルーチンを実行するためのフローチャートである。
【図６】本発明による別の実施例の補正係数ｋｍ（ｉ）の更新タイミングを説明するためのタイムチャートである。
【図７】本発明による別の実施例の失火判定ルーチンを実行するためのフローチャートである。
【図８】角速度検出値ω（ｉ）と角速度振動値ωｗとの関係を示す図である。
【図９】本発明による更に別の実施例の補正係数ｋｍ（ｉ）の更新ルーチンを実行するためのフローチャートである。
【符号の説明】
【００４７】
１    機関本体
２０    クランクシャフト
２２    スタータモータ
２３    ロータ
２３ａ    外歯
２４    角速度センサ
【図１】
2009228524.tif 000003
【図２】
2009228524.tif 000004
【図３】
2009228524.tif 000005
【図４】
2009228524.tif 000006
【図５】
2009228524.tif 000007
【図６】
2009228524.tif 000008
【図７】
2009228524.tif 000009
【図８】
2009228524.tif 000010
【図９】
2009228524.tif 000011