(57)【要約】    【課題】  慣性力に起因する回転変動成分の影響を受けずに、パルス発生器自体に起因するパルス発生時間間隔の誤差を補正し、正確な失火判定を可能とする、内燃機関のクランク角速度検出装置を提供する。    【解決手段】  クランク軸の回転に同期したパルスの発生時間間隔である時間パラメータＣＲＭＥが検出される。（７２０／Ｎ）度の間隔でサンプリングされる時間パラメータＣＲＭＥの平均値を、サンプリングされた時間パラメータＣＲＭＥで除算することにより、誤差比率ＫＣＲＥＲＲが算出され、誤差比率ＫＣＲＥＲＲに応じて、学習補正係数ＫＣＲＲＥＦが算出される。この学習補正係数ＫＣＲＲＥＦにより時間パラメータＣＲＭＥが補正され、補正された時間パラメータＣＲＭＥを用いて失火判定が行われる。【選択図】  図１４
2008111354.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関のクランク軸が所定角度回転する毎にクランクパルスを発生させるパルス発生器の出力に基づいて、前記クランク軸の回転角速度を検出する、内燃機関のクランク角速度検出装置において、
（７２０／Ｎ）度（Ｎは前記機関の気筒数）間隔でサンプリングされる、前記クランク軸の回転角速度を示す速度パラメータの平均値を算出する平均化手段と、
前記平均値に応じて、前記速度パラメータを補正するための学習補正係数を算出する学習手段と、
前記学習補正係数により前記速度パラメータを補正する補正手段とを備えることを特徴とする内燃機関のクランク角速度検出装置。
【請求項２】
前記学習手段は、前記クランク軸の１回転に対応する前記学習補正係数を算出して記憶することを特徴とする請求項１に記載の内燃機関のクランク角速度検出装置。
【請求項３】
前記学習手段は、前記クランク軸の２回転に対応する前記学習補正係数を算出して記憶することを特徴とする請求項１に記載の内燃機関のクランク角速度検出装置。
【請求項４】
前記平均化手段は、前記機関の気筒数に応じたサンプリング範囲に含まれる前記速度パラメータの平均値を算出し、前記学習手段は、前記サンプリング範囲の中心に位置する所定中心角度範囲に対応する前記学習補正係数の算出を行い、
前記サンプリング範囲は、（７２０／Ｎ）度の奇数倍に設定され、前記所定中心角度範囲は（７２０／Ｎ）度の範囲であることを特徴とする請求項１から３の何れか１項に記載の内燃機関のクランク角速度検出装置。
【請求項５】
前記サンプリング範囲が３６０度を超えるときは、前記平均化手段は、前記所定中心角度範囲のおけるサンプリング値に、前記所定中心角度範囲以外の角度範囲におけるサンプリング値より大きい重みを付けて平均化演算を行うことを特徴とする請求項４に記載の内燃機関のクランク角速度検出装置。
【請求項６】
前記平均値を、サンプリングされた速度パラメータで除算することにより誤差比率を算出する誤差比率算出手段と、前記所定中心角度範囲における全ての誤差比率の平均値である平均誤差比率を算出する平均誤差比率算出手段とを備え、前記学習手段は、前記誤差比率から前記平均誤差比率を減算して「１」を加算することにより、修正誤差比率を算出し、該修正誤差比率に応じて前記学習補正係数を算出することを特徴とする請求項４に記載の内燃機関のクランク角速度検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関のクランク軸の回転角速度を検出するクランク角速度検出装置に関し、特にクランク軸が所定角度回転する毎にクランクパルスを発生するパルス発生器を備え、クランクパルス発生時間間隔の補正機能を有するものに関する。
【背景技術】
【０００２】
特許文献１には、内燃機関のクランク軸が所定角度回転する毎にクランクパルスを発生するパルス発生器における、クランクパルス発生時間間隔の補正方法が示されている。この方法によれば、エンジンブレーキ動作中におけるクランクパルスの発生時間間隔の変化量の比率が算出され、その比率を平均化することにより、パルス発生時間間隔の補正値が算出される。
【０００３】
【特許文献１】特許第３５７１０４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
エンジンブレーキ動作中に機関に燃料を供給しない状態であっても、機関の可動部品の慣性力の起因する回転変動成分は、検出されるパルス発生時間間隔に含まれているため、特許文献１に示された手法により算出される補正値を適用すると、これらの回転変動成分の影響が除かれたパルス発生時間間隔が得られる。
【０００５】
一方、パルス発生時間間隔に基づいて失火判定を行う場合、失火判定を正確に行うためには、検出したパルス発生時間間隔から上記慣性力に起因する回転変動成分の影響を除去する必要がある。上記従来の補正方法を適用すると、慣性力に起因する回転変動成分が、パルス発生器の機械的な誤差に起因する成分とともに除かれてしまうため、正確な失火判定を行うことができない。
【０００６】
本発明はこの点に着目してなされたものであり、慣性力に起因する回転変動成分の影響を受けずに、パルス発生器自体に起因するパルス発生時間間隔の誤差を補正し、正確な失火判定を可能とする、内燃機関のクランク角速度検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため請求項１に記載の発明は、内燃機関のクランク軸が所定角度回転する毎にクランクパルスを発生させるパルス発生器（１２）の出力に基づいて、前記クランク軸の回転角速度を検出する、内燃機関のクランク角速度検出装置において、（７２０／Ｎ）度（Ｎは前記機関の気筒数）間隔でサンプリングされる、前記クランク軸の回転角速度を示す速度パラメータ（ＣＲＭＥ）の平均値を算出する平均化手段と、前記平均値に応じて、前記速度パラメータを補正するための学習補正係数（ＫＣＲＲＥＦ）を算出する学習手段と、前記学習補正係数（ＫＣＲＲＥＦ）により前記速度パラメータ（ＣＲＭＥ）を補正する補正手段とを備えることを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の内燃機関のクランク角速度検出装置において、前記学習手段は、前記クランク軸の１回転に対応する前記学習補正係数（ＫＣＲＲＥＦ）を算出して記憶することを特徴とする。
【０００９】
請求項３に記載の発明は、請求項１に記載の内燃機関のクランク角速度検出装置において、前記学習手段は、前記クランク軸の２回転に対応する前記学習補正係数（ＫＣＲＲＥＦ）を算出して記憶することを特徴とする。
【００１０】
請求項４に記載の発明は、請求項１から３の何れか１項に記載の内燃機関のクランク角速度検出装置において、前記平均化手段は、前記機関の気筒数に応じたサンプリング範囲（ＳＭＰ）に含まれる前記速度パラメータの平均値を算出し、前記学習手段は、前記サンプリング範囲（ＳＭＰ）の中心に位置する所定中心角度範囲（ＬＲＮ）に対応する前記学習補正係数（ＫＣＲＲＥＦ）の算出を行い、前記サンプリング範囲（ＳＭＰ）は、（７２０／Ｎ）度の奇数倍に設定され、前記所定中心角度範囲（ＬＲＮ）は（７２０／Ｎ）度の範囲であることを特徴とする。
【００１１】
請求項５に記載の発明は、請求項４に記載の内燃機関のクランク角速度検出装置において、前記サンプリング範囲（ＳＭＰ）が３６０度を超えるときは、前記平均化手段は、前記所定中心角度範囲（ＬＲＮ）のおけるサンプリング値に、前記所定中心角度範囲以外の角度範囲におけるサンプリング値より大きい重みを付けて平均化演算を行うことを特徴とする。
【００１２】
請求項６に記載の発明は、請求項４に記載の内燃機関のクランク角速度検出装置において、前記平均値を、サンプリングされた速度パラメータで除算することにより誤差比率（ＫＣＲＥＲＲ）を算出する誤差比率算出手段と、前記所定中心角度範囲（ＬＲＮ）における全ての誤差比率の平均値である平均誤差比率（ＫＣＲＥＲＲＡＶＥ）を算出する平均誤差比率算出手段とを備え、前記学習手段は、前記誤差比率（ＫＣＲＥＲＲ）から前記平均誤差比率（ＫＣＲＥＲＲＡＶＥ）を減算して「１」を加算することにより、修正誤差比率（ＫＣＲＥＲＲＭ）を算出し、該修正誤差比率（ＫＣＲＥＲＲＭ）に応じて前記学習補正係数（ＫＣＲＲＥＦ）を算出することを特徴とする。
【００１３】
前記クランクパルスの発生周期に対応する所定角度は、（（７２０／Ｎ）／Ｍ）度であり、Ｍを８以上の整数として、（７２０／Ｎ）度に比べて十分に小さい角度とすることが望ましい。
【発明の効果】
【００１４】
請求項１に記載の発明によれば、（７２０／Ｎ）度の間隔でサンプリングされる速度パラメータの平均値が算出され、該平均値に応じて、速度パラメータを補正するための学習補正係数が算出され、この学習補正係数により速度パラメータが補正される。慣性力に起因する回転変動成分は、（７２０／Ｎ）度周期で変化するので、（７２０／Ｎ）度の間隔でサンプリングされる速度パラメータの平均値を算出することにより、慣性力に起因する回転変動成分の影響を排除することができる。したがって、そのようにして算出される平均値に応じて学習補正係数を算出し、その学習補正係数で速度パラメータを補正することにより、パルス発生器自体に起因するパルス発生時間間隔の誤差を正確に補正することできる。
【００１５】
請求項２に記載の発明によれば、クランク軸の１回転に対応する学習補正係数が算出して記憶されるので、パルス発生器が出力するクランク軸１回転に対応する全パルスに対応した学習補正係数を使用して補正を行うことができる。
請求項３に記載の発明によれば、クランク軸の２回転に対応する学習補正係数が算出して記憶されるので、クランク軸２回転の周期を有する変動成分、例えばクランク軸の軸心変動によるパルス発生時間間隔の変動を補正することができる。
【００１６】
請求項４に記載の発明によれば、機関の気筒数に応じて、（７２０／Ｎ）度の奇数倍に設定されたサンプリング範囲に含まれる速度パラメータの平均値が算出され、サンプリング範囲の中心に位置する（７２０／Ｎ）度の所定中心角度範囲に対応する学習補正係数の算出が行われる。サンプリング範囲は、例えば６気筒機関では１２０度の３倍に設定され、４気筒機関では１８０度の３倍に設定され、８気筒機関では９０度の５倍に設定される。このようにサンプリング範囲を設定し、所定中心角度範囲に対応する学習補正係数を算出することにより、機関の減速時において、回転速度の減速による変化成分（以下「減速変化成分」という）が平均化により相殺されるので、正確な学習補正係数の算出を行うことができる。
【００１７】
請求項５に記載の発明によれば、前記サンプリング範囲が３６０度を超えるときは、所定中心角度範囲におけるサンプリング値に、所定中心角度範囲以外の角度範囲におけるサンプリング値より大きい重みを付けて平均化演算が行われる。これにより、学習補正係数の算出の対象となる所定中心角度範囲のサンプリング値について適切な平均化が行われ、正確な学習補正係数を得ることができる。
【００１８】
請求項６に記載の発明によれば、速度パラメータ平均値を、サンプリングされた速度パラメータで除算することにより誤差比率が算出され、所定中心角度範囲における全ての誤差比率の平均値である平均誤差比率が算出され、誤差比率から平均誤差比率を減算して「１」を加算することにより、修正誤差比率が算出され、該修正誤差比率に応じて学習補正係数が算出される。例えば速度パラメータの平均化演算を、より多くのサンプリング値を用いて行うような方法を採用すると、平均化演算により過渡変化成分が相殺されない場合がある。上記修正誤差比率に応じて学習補正係数を算出することにより、減速変化成分の影響を確実に排除し、正確な学習補正係数を得ることができる。
【発明を実施するための最良の形態】
【００１９】
以下本発明の実施の形態を図面を参照して説明する。
［第１の実施形態］
図１は本発明の一実施形態にかかる内燃機関及びその制御装置の構成を示す図である。内燃機関（以下単に「エンジン」という）１は、例えば６気筒を有し、吸気管２及び排気管５を備えている。吸気管２にはスロットル弁３が設けられている。また排気管５には排気の浄化を行う触媒コンバータ６が設けられている。
【００２０】
燃料噴射弁４はエンジン１とスロットル弁３との間かつ吸気管２の図示しない吸気弁の少し上流側に各気筒毎に設けられており、各噴射弁は図示しない燃料ポンプに接続されていると共に電子制御ユニット（以下「ＥＣＵ」という）２０に電気的に接続されてＥＣＵ２０からの制御信号により燃料噴射弁４の開弁時間が制御される。
【００２１】
スロットル弁３の直ぐ下流には吸気管２内の圧力を検出する吸気管内絶対圧（ＰＢＡ）センサ１１が設けられており、その検出信号はＥＣＵ２０に供給される。
【００２２】
ＥＣＵ２０には、エンジン１のクランク軸（図示せず）の回転角度を検出するクランク角度位置センサ１２が接続されており、クランク軸の回転角度に応じた信号がＥＣＵ２０に供給される。クランク角度位置センサ１２は、エンジン１の特定の気筒の所定クランク角度位置でパルス（以下「ＣＹＬパルス」という）を出力する気筒判別センサ、各気筒の吸入行程開始時の上死点（ＴＤＣ）に関し所定クランク角度前のクランク角度位置で（６気筒エンジンではクランク角１２０度毎に）ＴＤＣパルスを出力するＴＤＣセンサ及びＴＤＣパルスより短い一定クランク角周期（例えば６度周期）で１パルス（以下「ＣＲＫパルス」という）を発生するＣＲＫセンサから成り、ＣＹＬパルス、ＴＤＣパルス及びＣＲＫパルスがＥＣＵ２０に供給される。これらのパルスは、燃料噴射時期、点火時期等の各種タイミング制御、エンジン回転数（エンジン回転速度）ＮＥの検出に使用される。
【００２３】
またＥＣＵ２０は、ＣＲＫパルスの発生時間間隔（以下「時間パラメータ」という）ＣＲＭＥに基づいて、エンジン１における失火の検出を行う。ＣＲＫセンサは、クランク軸に固定され、外周部に一定角度間隔で歯が形成されたパルスホイールと、該パルスホイールに対向して配置されたピックアップコイルと備える。パルスホイールの回転によりピックアップコイルに交流信号が発生し、その交流信号がＣＲＫパルスに変換されて出力される。したがって、パルスホイールの製造精度によって、ＣＲＫパルスの発生時間間隔のずれ（以下「パルスホイール誤差」という）が生じる。したがって、時間パラメータＣＲＭＥに基づいて失火の検出を行う場合には、このパルスホイール誤差の影響を排除するするため、学習補正係数ＫＣＲＲＥＦを算出し、時間パラメータＣＲＭＥを学習補正係数ＫＣＲＲＥＦにより補正した補正時間パラメータが、失火検出に適用される。
【００２４】
ＥＣＵ２０は、各種センサからの入力信号波形を整形し、電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する等の機能を有する入力回路、中央演算処理ユニット（以下「ＣＰＵ」という）、ＣＰＵで実行される各種演算プログラム及び演算結果等を記憶する記憶回路、燃料噴射弁４などに制御信号を供給する出力回路等から構成される。ＥＣＵ２０のＣＰＵは、以下に説明する失火検出を実行する。
【００２５】
次に本実施形態における失火検出の手法を詳細に説明する。
図２（ａ）は、エンジン１の各気筒の圧縮上死点近傍で検出される回転速度（以下「基準回転速度」という）を基準とした相対回転速度ＯＭＧＲＥＦの推移を示すタイムチャートである。相対回転速度ＯＭＧＲＥＦは、クランク角度６度毎に検出される回転速度（時間パラメータＣＲＭＥから算出される）から基準回転速度を減算することにより算出される。図２（ａ）における＃１〜＃６は、点火順に６つの気筒を識別するために付した気筒識別番号（後述する気筒番号とは異なる）である。相対回転速度ＯＭＧＲＥＦは、圧縮上死点後の燃焼行程においては、点火が正常に行われれば正の値となるが、失火が発生すると負の値となる。すなわち、図２（ａ）に示した例では、＃１〜＃３，＃５，及び＃６気筒では正常燃焼が行われ、＃４気筒では、失火が発生している。したがって、クランク角度６度毎に算出される相対回転速度ＯＭＧＲＥＦを１ＴＤＣ期間（クランク角度１２０度の期間）に亘って積算することにより得られる積算値は、図２（ｂ）の棒グラフ（ハッチングを付していない右側の棒グラフ）に示すように、失火が発生した＃４気筒では負の値となり、正常燃焼が行われた気筒では正の値となる。これにより、失火気筒を判定することが可能となる。なお、上記演算により得られる積算値は、各気筒で発生するトルクを示すパラメータとなっている。
【００２６】
図２（ｂ）に示すハッチングを付した棒グラフは、圧縮上死点近傍において検出される時間パラメータ（以下「基準時間パラメータ」という）を基準とした相対時間パラメータＣＲＭＥＲＥＦを１ＴＤＣ期間に亘って積算した積算値を示す。相対時間パラメータＣＲＭＥＲＥＦは、基準時間パラメータからクランク角度６度毎に検出される時間パラメータを減算することより算出される。すなわち、相対時間パラメータＣＲＭＥＲＥＦは、燃焼によりトルクが発生すれば正の値をとり、失火によりトルクが発生しなければ負の値をとる。したがって、相対回転速度ＯＭＧＲＥＦの積算値と同様に、相対時間パラメータＣＲＭＥＲＥＦの積算値は、失火が発生した＃４気筒では負の値となり、正常燃焼が行われた気筒では正の値となる。よって、時間パラメータＣＲＭＥを回転速度ＯＭＧに変換することなくそのまま用いても、同様に失火判定を行うことができる。
【００２７】
図３及び図４は、上述した失火判定手法をより詳細に説明するためのタイムチャートである。図３及び図４には、エンジン回転数ＮＥが上昇していく状態が示されている。図３（ａ）は、時間パラメータＣＲＭＥの推移を示し、同図（ｂ）は、時間パラメータＣＲＭＥから算出される回転速度ＯＭＧの推移を示す。同図（ｃ）は、回転速度ＯＭＧに７２０度フィルタ処理を施すことにより算出されるフィルタ処理後回転速度ＯＭＧＲの推移を示す。７２０度フィルタ処理は、１サイクルの期間における線形変化分をキャンセルし、比較的周期の短い変動を抽出する処理である（この処理の詳細は後述する）。７２０度フィルタ処理は、エンジン１の負荷側からエンジン１に加わるトルク（エンジン１により駆動される車両のタイヤや補機から加わるトルク、あるいはエンジン１の摺動部品の摩擦によるトルクなど）に起因する回転変動成分を除くために行うものである。
【００２８】
図４（ａ）は、各気筒の圧縮上死点近傍において、基準回転速度の算出と同一タイミングで算出される慣性力回転速度ＯＭＧＩの推移を示す。慣性力回転速度ＯＭＧＩは、エンジン１の往復運動部品（ピストン及びコンロッド）の質量、コンロッドの長さ、クランク半径、及びクランクプーリ、トルクコンバータ、ロックアップクラッチなどのエンジン１の負荷側の回転部品の慣性モーメントに応じて算出される。
【００２９】
図４（ｂ）は、相対回転速度ＯＭＧＲＥＦに慣性力回転速度ＯＭＧＩを加算することにより算出される修正相対回転速度ＯＭＧＲＥＦＭ（＝ＯＭＧＲＥＦ＋ＯＭＧＩ）の推移を示し、同図（ｃ）は、修正相対回転速度ＯＭＧＲＥＦＭを１ＴＤＣ期間に亘って積算することにより算出される積算値である判定パラメータＭＦＪＵＤの推移を示す。この例では判定パラメータＭＦＪＵＤが、クランク角度１２０度〜２４０度の範囲で負の値となっており、＃２気筒で失火が発生したと判定される。
【００３０】
次に慣性力回転速度ＯＭＧＩの算出方法を説明する。１つの気筒で発生する慣性力によるトルク（以下「単一気筒慣性トルク」という）ＴＩ１は、図５に示すようにコンロッド長をＬ、クランク半径をＲ、オフセットをｅ、クランク軸の回転角速度をω、ピストン及びコンロッドの合計質量をｍとし、角度θ及びφを図示のように定義すると、下記式（１）で与えられる。なお、以下に示す数式中の角度の単位は、ラジアン［ｒａｄ］を用いるものとする。
【数１】
2008111354.tif 000003
図６（ａ）は、式（１）により算出される単一気筒慣性トルクＴＩ１をクランク角度θの関数としてグラフで示したものである。単一気筒慣性トルクＴＩ１の位相を１２０度ずつずらして６気筒分を加算した合成慣性トルクＴＩは、図６（ｂ）に示すように推移し、下記式（２）で近似することができる。
ＴＩ＝−Ａｓｉｎ３θ                            （２）
ここでＡは、回転角速度ω［ｒａｄ／ｓ］の２乗に比例する係数である。
【００３１】
一方、クランクプーリ、トルクコンバータなどの回転部品の慣性モーメントをＩとすると、合成慣性トルクＴＩは、下記式（３）で与えられる（図６（ｃ）参照）。
ＴＩ＝Ｉ×（ｄω／ｄｔ）                        （３）
【００３２】
式（２）及び（３）から下記式（４）が得られ、これを回転角速度ωについて解くと、合成トルクＴＩに対応する慣性力回転速度ωＩは、下記式（５）で与えられる。
−Ａｓｉｎ３θ＝Ｉ×（ｄω／ｄｔ）                  （４）
ωＩ＝（Ａｃｏｓ３θ×ｄｔ／ｄθ）／３Ｉ            （５）
【００３３】
よって圧縮上死点での慣性力回転速度ＯＭＧＩは、式（５）のθを「０」として、式（６）により算出することができる。
ＯＭＧＩ＝（Ａ／３Ｉ）（１／ＯＭＧ）                （６）
【００３４】
係数Ａは、回転速度ＯＭＧの２乗に比例するので、比例定数をＫとすると、式（６）は、式（７）のように変形することができる。
ＯＭＧＩ＝Ｋ・ＯＭＧ／３Ｉ                          （７）
【００３５】
図６（ｂ）は、合成慣性トルクＴＩの推移を示し、同図（ｃ）は対応する慣性力回転速度ωＩの推移を示す。このように、圧縮上死点（θ＝０，１２０，２４０，…）での慣性力回転速度ＯＭＧＩは最大の値となるので、相対回転速度ＯＭＧＲＥＦに慣性力回転速度ＯＭＧＩを加算すること（基準回転速度から慣性力回転速度ＯＭＧＩを減算することと等価である）により、慣性力回転速度ωＩの影響を排除した修正相対回転速度ＯＭＧＲＥＦＭを得ることができる。なお、図６（ｃ）に示す慣性力回転速度ωＩの周期変動成分は、修正相対回転速度ＯＭＧＲＥＦＭを１ＴＤＣ期間（１２０度）に亘って積算することによりキャンセルされる。
【００３６】
次に、クランク軸の捩れや時間パラメータＣＲＭＥの検出誤差などに起因する外乱の影響を排除するための手法を説明する。
【００３７】
図７（ａ）は、修正相対回転速度ＯＭＧＲＥＦＭの実測データ例を示しており、同図において破線で囲んだ部分が、上記外乱の影響を受けた部分である。このような外乱の影響があると、失火の誤判定が発生する可能性が高くなる。そこで、本実施形態では、正常燃焼が行われ、かつクランク角度位置センサの検出値に影響を与える外乱がない場合の回転速度変化を近似する燃焼相関関数ＦＣＲを修正相対回転速度ＯＭＤＲＥＦＭに乗算することにより、上記外乱の影響を排除するようにしている。図７（ｂ）は、同図（ａ）に示す修正相対回転速度ＯＭＧＲＥＦＭに燃焼相関関数ＦＣＲを乗算することにより算出した修正相対回転速度ＯＭＧＲＥＦＭｂを示しており、同図（ａ）に示す破線で囲んだ部分の波形が改善されている。
【００３８】
燃焼相関関数ＦＣＲとしては、図８に示す関数、すなわち下記式（８）で定義されるものを用いている。ここでＮは気筒数、θは特定気筒のピストンが上死点に位置する角度を基準としたクランク角度である（図５参照）。なお、図８は本実施形態の６気筒エンジンに対応する燃焼相関関数ＦＣＲを示す。
ＦＣＲ＝｛１−２ｃｏｓ（Ｎ・θ／２）｝／２          （８）
【００３９】
図９（ａ）は、燃焼相関関数による相対回転速度の補正を行わない場合の判定パラメータＭＦＪＵＤのばらつきの範囲（平均値（黒丸）±３σ）の例を示し、同図（ｂ）は燃焼相関関数による相対回転速度の補正を行った場合の判定パラメータＭＦＪＵＤｄのばらつき範囲の例を示す。これらの図から明らかなように、燃焼相関関数ＦＣＲを用いた補正を行うことにより、判定パラメータＭＦＪＵＤｄの算出精度を高め、ばらつき範囲を減少させることができる（図示例では約４０％減少）。その結果、失火判定の精度を向上させることができる。
【００４０】
次にＣＲＫセンサのパルスホイール誤差を補正する学習補正係数ＫＣＲＲＥＦの算出手法を説明する。上述したように、エンジンが回転しているときは、燃料を供給しないフュエルカット運転中であっても、慣性力回転速度ωＩによる時間パラメータＣＲＭＥの変動があるため、単純に平均化演算を行って学習補正係数を算出すると、パルスホイール誤差成分と慣性力回転速度成分とが加算された変動成分を「０」とするような学習補正係数となってしまう。本実施形態では、慣性力回転速度ωＩは図６（ｃ）に示すように、１２０度すなわちＴＤＣパルスの発生周期（７２０度／Ｎ）で変化することに着目し、１２０度間隔でサンプリングされる時間パラメータＣＲＭＥの平均値ＣＲＭＥＡＶの誤差比率ＫＣＲＥＲＲを算出し、その誤差比率ＫＣＲＥＲＲに応じて学習補正係数ＫＣＲＲＥＦを算出するようにしている。
【００４１】
図１０は、フュエルカット運転中において、時間パラメータＣＲＭＥから算出される回転速度ＯＭＧの推移を示すタイムチャートであり、破線Ｌ１が実測データを示し、実線Ｌ２が従来の手法で補正したときの補正データを示し、実線Ｌ３が本実施形態の手法により補正したときの補正データを示す。従来手法では、慣性力回転速度成分が除去され、全く変化しない補正データが得られるが、本実施形態の手法では、パルスホイール誤差による変動分が除去され、慣性力速度成分はそのまま検出されている。
【００４２】
図１１は、フュエルカット運転中の時間パラメータＣＲＭＥの推移を示すタイムチャートであり、実験的にパルスホイール誤差を付加した場合おける、学習補正係数ＫＣＲＲＥＦによる補正の前後のデータが示されている。実線Ｌ１１がパルスホイール誤差を付加する前のデータを示し、破線Ｌ１２がパルスホイール誤差が付加された、補正前のデータを示し、実線Ｌ１３が補正後のデータを示す。パルスホイール誤差が補正により、抑制されることが示されている。これにより、失火判定パラメータＭＦＪＵＤｄを安定化し、誤判定を防止することができる。
【００４３】
図１２は、補正により除去される成分の大きさ（補正強度）ＤＣＲを、従来手法と、本実施形態の手法とを対比して示す棒グラフである。図においてハッチングを付して示す棒が、本実施形態の手法に対応しており、３次成分（慣性力回転成分）及びその整数倍の６次及び９次成分は補正せず、他の次数の成分は従来手法と同等の補正強度を有することが示されている。
【００４４】
図１３は、上述した学習補正係数ＫＣＲＲＥＦの算出手法の概要を説明するための図である。図のＴＤＣは、何れかの気筒のピストンが上死点に達するタイミングを示しており、最上部には、爆発行程にある気筒の気筒番号ＣＹＬ１〜ＣＹＬ６が示されている。気筒番号ＣＹＬ１〜ＣＹＬ６は、気筒の配置順に付されたものであり、図１３に示す「ＣＵＣＹＬ」は、点火順に各気筒を識別するために０〜５のいずれかに設定される気筒識別番号である。また「ＰＬＳＮＯ」は、クランク角度６度毎に発生するＣＲＫパルスに付されたパルス番号であり、クランク軸の２回転に対応して１から１２０までの値をとる。パルスホイールの歯は、６０個であるため、１つの歯に２つのパルス番号が対応する（例えばＰＬＳＮＯ＝１と６１は、同一の歯に対応している）。検出される時間パラメータＣＲＭＥは、パルス番号ＰＬＳＮＯに対応してデータ数１２０個の配列として、ＥＣＵ２０のＣＰＵで演算処理される。
【００４５】
本実施形態では、図１３に示すクランク角度３６０度（３ＴＤＣ期間）のサンプリング範囲ＳＭＰのサンプリングデータを用いて、そのサンプリング範囲ＳＭＰの中心に位置する学習範囲ＬＲＮ内のサンプリングデータの学習補正係数ＫＣＲＲＥＦの算出が行われる。
【００４６】
なお、図１３に示すＰＮＲＥＦ１〜ＰＮＲＥＦ４は、学習補正係数ＫＣＲＲＥＦの算出に使用される、配列データを指示するためのインデクスであり、以下それぞれ第１〜第４インデクスという。また図１３中に示す矢印は、時間パラメータＣＲＭＥの検出タイミングと、演算に使用されるタイミングとのずれを示している。
【００４７】
図１４は、学習補正係数ＫＣＲＲＥＦを算出処理のフローチャートである。この処理は、ＴＤＣパルスの発生に同期してＥＣＵ２０のＣＰＵで実行される。
ステップＳ１０では、学習実行条件が成立するか否かを判別する。学習実行条件は、例えばフュエルカット運転を実行しているとき成立する。学習実行条件が成立していないときは、学習実行回数をカウントするカウンタＣＫＣＲＭＥの値を「０」に初期化する（ステップＳ１１）。
【００４８】
学習実行条件が成立するときは、ステップＳ１２〜Ｓ２１により、第１〜第４インデクスＰＮＲＥＦ１〜ＰＮＲＥＦ４を算出する。ステップＳ１２では、気筒識別番号ＣＵＣＹＬが「４」以上であるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、下記式（１１）により第１インデクスＰＮＲＥＦ１を算出する（ステップＳ１３）。一方、ＣＵＣＹＬ＜４であるときは、下記式（１２）により第１インデクスＰＮＲＥＦ１を算出する（ステップＳ１４）。
ＰＮＲＥＦ１＝（ＣＵＣＹＬ−３）×２０            （１１）
ＰＮＲＥＦ１＝（ＣＵＣＹＬ＋３）×２０            （１２）
【００４９】
ステップＳ１５では、気筒識別番号ＣＵＣＹＬが「５」以上であるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、第２インデクスＰＮＲＥＦ２を「２０」に設定する（ステップＳ１６）。一方、ＣＵＣＹＬ＜５であるときは、下記式（１３）により第２インデクスＰＮＲＥＦ２を算出する（ステップＳ１７）。
ＰＮＲＥＦ２＝（ＣＵＣＹＬ＋２）×２０            （１３）
【００５０】
ステップＳ１８では、下記式（１４）により第３インデクスＰＮＲＥＦ３を算出する。
ＰＮＲＥＦ３＝（ＣＵＣＹＬ＋１）×２０            （１４）
【００５１】
ステップＳ１９では、第２インデクスＰＮＲＥＦ２が「６０」より大きいか否かを判別し、その答が肯定（ＹＥＳ）であるときは、下記式（１５）により第４インデクスＰＮＲＥＦ４を算出する（ステップＳ２０）。
ＰＮＲＥＦ４＝ＰＮＲＥＦ２−６０                    （１５）
【００５２】
一方、ＰＮＲＥＦ２≦６０であるときは、第４インデクスＰＮＲＥＦ４を第２インデクスＰＮＲＥＦ２に設定する（ステップＳ２１）。第４インデクスＰＮＲＥＦ４は、第２インデクスＰＮＲＥＦ２が「６１」から「１２０」の値をとるときに、「１」から「６０」に設定されるインデクスである。
【００５３】
ステップＳ２２では、学習終了フラグＦＫＣＲＲＥＦＥＮＤが「１」であるか否かを判別する。学習終了フラグＦＫＣＲＲＥＦＥＮＤは、学習が終了したとき、ステップＳ３３で「１」に設定されるので、最初はステップＳ２２の答は否定（ＮＯ）となり、ステップＳ２３に進み、なまし係数ＣＫＲＥＦを第１の係数値ＣＫＲＥＦ０（例えば、０．２）に設定する。また学習終了後は、なまし係数ＣＫＲＥＦを第２の係数値ＣＫＲＥＦ１（例えば、０．０２）に設定する（ステップＳ２４）。第１及び第２の係数値ＣＫＲＥＦ０，ＣＫＲＥＦ１は、いずれも０より大きく１より小さい値に設定され、ＣＫＲＥＦ０＞ＣＫＲＥＦ１となるように設定される。
【００５４】
学習が行われていないとき、すなわち工場出荷時においては、早急に学習を完了する必要があるため、なまし係数ＣＫＲＥＦを比較的大きな第１の係数値ＣＫＲＥＦ０に設定し、その後は第２の係数値ＣＫＲＥＦ１を適用して、徐々に学習補正係数ＫＣＲＲＥＦを更新するようにしている。
【００５５】
ステップＳ２５では、演算インデクスｊを「０」に設定する。ステップＳ２６では、下記式（１６）により、誤差比率ＫＣＲＥＲＲを算出する。
【数２】
2008111354.tif 000004
【００５６】
ステップＳ２７では、下記式（１７）に誤差比率ＫＣＲＥＲＲ及びなまし係数ＣＫＲＥＦを適用し、学習補正係数ＫＣＲＲＥＦ[PNREF4-j]を算出する。
ＫＣＲＲＥＦ[PNREF4-j]＝ＣＫＲＥＦ×ＫＣＲＥＲＲ
＋（１−ＣＫＲＥＦ）×ＫＣＲＲＥＦ[PNREF4-j]  （１７）
ここで、右辺のＫＣＲＲＥＦ[PNREF4-j]は、前回算出値である。
【００５７】
ステップＳ２８では、演算インデクスｊを「１」だけインクリメントし、次いで演算インデクスｊが（ＮＴＤＣ−１）以上であるか否かを判別する（ステップＳ２９）。ＮＴＤＣは、１ＴＤＣ期間のデータ数（＝７２０／（Ｎ・Ｄθ）、Ｎは気筒数、Ｄθはサンプリング角度間隔）であり、本実施形態では「２０」である。最初は、ステップＳ２９の答は否定（ＮＯ）であるので、ステップＳ２６に戻り、「０」から（ＮＴＤＣ−１）までの演算インデクスｊについて、学習補正係数ＫＣＲＲＥＦ[PNREF4-j]の演算が完了すると、ステップＳ２９からステップＳ３０に進む。
【００５８】
ステップＳ３０では、学習終了フラグＦＫＣＲＲＥＦＥＮＤが「１」であるか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ステップＳ３１に進み、カウンタＣＫＣＲＭＥを「１」だけインクリメントする。次いで、ＣＫＣＲＭＥの値が所定値ＣＫＣＲＥＮＤ以上であるか否かを判別する（ステップＳ３２）。最初は、この答は否定（ＮＯ）となるので、直ちに本処理を終了する。カウンタＣＫＣＲＭＥの値が所定値ＣＫＣＲＥＮＤに達すると、学習終了フラグＦＫＣＲＲＥＦＥＮＤが「１」に設定される（ステップＳ３３）。
【００５９】
所定値ＣＫＣＲＥＮＤは、例えばエンジンの１０回転に対応する値に設定される。すなわち、６気筒エンジンでは、「３０」に設定される。Ｎ気筒エンジンでは、３６００／（７２０／Ｎ）に設定される。
【００６０】
図１４の処理を１回実行すると、パルスホイールの２０個の歯（歯の間隔）に対応する学習補正係数ＫＣＲＲＥＦが得られるので、図１４の処理を３回実行することにより、６０個の歯の間隔に対応する学習補正係数ＫＣＲＲＥＦが得られる。
【００６１】
図１５は、失火判定処理のフローチャートであり、この処理はＥＣＵ２０のＣＰＵでＴＤＣパルスの発生に同期して実行される。なお、クランク角度６度毎に発生するＣＲＫパルスの発生時間間隔である時間パラメータＣＲＭＥ(i)は、クランク角度７２０度分のデータ（ｉ＝０〜（ＮＤ−１），データ数ＮＤは１２０）が、記憶回路内のバッファメモリに格納されている。また、図１５の処理では、点火順の気筒識別番号ＣＵＣＹＬに代えて、点火順の気筒識別番号に相当する演算インデクスｋ（＝１〜６）を使用する。１ＴＤＣ期間内のデータ数ＮＴＤＣ（本実施形態ではＮＴＤＣ＝２０）を用いると、本処理の１回の実行で、パラメータｉが（ｋ−１）ＮＴＤＣから（ｋＮＴＤＣ−１）までの演算が行われる。例えば今回の処理が１番目の気筒（ｋ＝１）に対応する演算を行うときは、パラメータｉは０から（ＮＴＤＣ−１）までの値をとり、今回の処理が５番目の気筒（ｋ＝５）に対応する演算を行うときは、パラメータｉは４ＮＴＤＣから（５ＮＴＤＣ−１）までの値をとる。
【００６２】
ステップＳ５１では、下記式（２１）により、時間パラメータＣＲＭＥ(i)を回転速度ＯＭＧ(i)[rad/s]に変換する。
ＯＭＧ(i)＝Ｄθ／（ＣＲＭＥ(i)×ＫＣＲＲＥＦ(i)）            （２１）
ここで、Ｄθは、時間パラメータＣＲＭＥを計測する角度間隔４π／ＮＤであり、本実施形態では、π／３０［ｒａｄ］である。またＫＣＲＲＥＦ(i)は、図１４の処理で算出される、時間パラメータＣＲＭＥ(i)に対応する学習補正係数である。本実施形態では、学習補正係数ＫＣＲＲＥＦはデータ数６０個の配列であるため、ｉ＝６０〜１１９のときは、ＫＣＲＲＥＦ(0)〜ＫＣＲＲＥＦ(59)が適用される。
【００６３】
ステップＳ５２では、下記式（２２）により、７２０度フィルタ処理を実行し、フィルタ処理後回転速度ＯＭＧＲ(i)を算出する。
ＯＭＧＲ(i)＝ＯＭＧ(i)−（ＯＭＧ(ND)−ＯＭＧ(0)）×Ｄθ×ｉ／４π
（２２）
【００６４】
ステップＳ５３では、下記式（２３）により、相対回転速度ＯＭＧＲＥＦを算出する。
ＯＭＧＲＥＦ(i)＝ＯＭＧＲ(i)−ＯＭＧＲ（(k-1)NTDC）        （２３）
ここで、ＯＭＧＲ（(k-1)NTDC）は基準回転速度であり、判定対象の気筒のピストンが圧縮上死点あるときのフィルタ処理後回転速度に相当する。
【００６５】
ステップＳ５４では、下記式（２４）により、対応する気筒のピストンが圧縮上死点にあるときの慣性力回転速度ＯＭＧＩ(k)を算出する。
ＯＭＧＩ(k)＝Ｋ・ＯＭＧ（(k-1)NTDC）／３Ｉ                （２４）
【００６６】
なお、このとき自動変速機のロックアップクラッチが係合しているか否か応じて、慣性モーメントＩの値を変更することが望ましい。これにより、ロックアップクラッチの係合／非係合に拘わらず正確な判定を行うことができる。
【００６７】
ステップＳ５５では、式（２４）により算出される慣性力回転速度ＯＭＧＩ(k)を下記式（２５）に適用し、回転速度ＯＭＧ(i)の各サンプリング値に対応する慣性力回転速度ＯＭＧＩａ（i)を算出する。式（２５）において、３ＴＤＣ期間前の慣性力回転速度ＯＭＧＩ(k-3)を適用するのは、上述した７２０度フィルタ処理における中央の値を用いた方が演算精度が高くなるからである。なお、演算インデクスｋは気筒識別番号であるので、ｋ＝０，−１，−２は、それぞれｋ＝Ｎ（＝６），Ｎ−１（＝５），Ｎ−２（＝４）に対応する。
ＯＭＧＩａ(i)＝ＯＭＧＩ(k-3)×｛ｃｏｓ（Ｎ・Ｄθ・ｉ／２）−１｝
（２５）
【００６８】
ステップＳ５６では、下記式（２６）にステップＳ５５で算出した慣性力回転速度ＯＭＧＩａ(i)を適用し、第１修正相対回転速度ＯＭＧＲＥＦＭａ(i)を算出する。
ＯＭＧＲＥＦＭａ(i)＝ＯＭＧＲＥＦ(i)−ＯＭＧＩａ(i)        （２６）
【００６９】
ステップＳ５７では、ステップＳ５６で算出した第１修正相対回転速度ＯＭＧＲＥＦＭａ(i)、及び下記式（２７）により算出される燃焼相関関数ＦＣＲ(i)を下記式（２８）に適用し、第２修正相対回転速度ＯＭＧＲＥＦＭｂ(i)を算出する。式（２７）は、式（８）のθを（Ｄθ・ｉ）に置換したものである。
ＦＣＲ(i)＝｛１−２ｃｏｓ（Ｎ・Ｄθ・ｉ／２）｝／２          （２７）
ＯＭＧＲＥＦＭｂ(i)＝ＯＭＧＲＥＦＭａ(i)×ＦＣＲ(i)          （２８）
【００７０】
ステップＳ５８では、下記式（２９）により判定パラメータＭＦＪＵＤｄ(k)を算出する。
【数３】
2008111354.tif 000005
【００７１】
ステップＳ５９では、判定パラメータＭＦＪＵＤｄ(k)が負の値であるか否かを判別し、この答が肯定（ＹＥＳ）であるときは、＃ｋ気筒で失火が発生したと判定し、失火フラグＦＭＦ(k)を「１」に設定する（ステップＳ６１）。一方、ＭＦＪＵＤｄ(k)≧０であるときは、正常燃焼が行われたと判定し、失火フラグＦＭＦ(k)を「０」に設定する（ステップＳ６０）。
【００７２】
ステップＳ６２では、気筒識別番号ｋが気筒数Ｎと等しいか否かを判別し、その答が否定（ＮＯ）であるときは、気筒識別番号ｋを「１」だけインクリメントする（ステップＳ６４）。またｋ＝Ｎであるときは、気筒識別番号ｋを「１」に戻す（ステップＳ６３）。
図１５の処理により、各気筒毎に失火判定が行われる。
【００７３】
図１６は、図１１に示す実測データに対応する判定パラメータＭＦＪＵＤｄの推移を示すタイムチャートである。パルス状に変化し、判定パラメータＭＦＪＵＤｄが負の値をとる破線Ｌ２１が、パルスホイール誤差の補正を行わない場合に対応し、実線Ｌ２２がパルスホイール誤差の補正を行った場合に対応する。補正を行うことにより、判定パラメータＭＦＪＵＤｄが負の値をとる誤判定が無くなることが示されている。
【００７４】
以上のように本実施形態では、１２０度、すなわち（７２０／Ｎ）度の間隔でサンプリングされる時間パラメータＣＲＭＥの平均値（（式（１６）の分子）／３）を、学習の対象となる時間パラメータＣＲＭＥ［ＰＮＲＥＦ２−ｉ］で除算した誤差比率ＫＣＲＥＲＲが算出され、該誤差比率ＫＣＲＥＲＲに応じて学習補正係数ＫＣＲＲＥＦが算出され、この学習補正係数ＫＣＲＲＥＦにより時間パラメータＣＲＭＥが補正される。慣性力に起因する回転変動成分ωＩは、図６（ｃ）に示すように１２０度（７２０／Ｎ度）周期で変化するので、１２０度の間隔でサンプリングされる時間パラメータＣＲＭＥの平均値を算出することにより、慣性力に起因する回転変動成分の影響を排除することができる。したがって、そのようにして算出される平均値に応じて学習補正係数ＫＣＲＲＥＦを算出し、その学習補正係数ＫＣＲＲＥＦで時間パラメータＣＲＭＥを補正する（式（２１））ことにより、パルスホイール誤差を正確に補正することできる。
【００７５】
本実施形態では、パルスホイール１回転に対応する６０個のデータからなる配列として、学習補正係数ＫＣＲＲＥＦを算出・記憶するようにしたので、ＣＲＫセンサが出力するクランク軸１回転に対応する全パルス（全パルス発生間隔）に対応した学習補正係数ＫＣＲＲＥＦを使用して補正を行うことができる。
【００７６】
また、図１３に示すようにサンプリング範囲ＳＭＰを３ＴＤＣ期間とし、その３ＴＤＣ期間の中心の１ＴＤＣ期間を学習範囲ＬＲＮとして、学習補正係数ＫＣＲＲＥＦを算出するようにしたので、エンジン回転速度の減速による変化成分が平均化により相殺され、正確な学習補正係数の算出を行うことができる。
【００７７】
本実施形態では、時間パラメータＣＲＭＥが速度パラメータに相当し、クランク角度位置センサ１２に含まれるＣＲＫセンサがパルス発生器に相当し、ＥＣＵ２０が平均化手段、学習手段及び補正手段を構成する。具体的には、図１４のステップＳ２６が平均化手段に相当し、ステップＳ２７が学習手段に相当し、図１５のステップＳ５１が補正手段に相当する。
【００７８】
［変形例］
誤差比率ＫＣＲＥＲＲの算出式を下記の式（３１）のように変更してもよい。式（３１）のパラメータＣＲＭＥＤ６は、下記式（３２）により算出される。６個の時間パラメータデータ（式（１６）で使用した３個のデータ及びその隣りの３個のデータ）の和である。すなわち、誤差比率ＫＣＲＥＲＲは、６個の時間パラメータデータを用いて算出される。
【数４】
2008111354.tif 000006
ＣＲＭＥＤ６＝ＣＲＭＥ[PNREF1-j]＋ＣＲＭＥ[PNREF2-j]
＋ＣＲＭＥ[PNREF3-j]＋ＣＲＭＥ[PNREF1+1-j]
＋ＣＲＭＥ[PNREF2+1-j]＋ＣＲＭＥ[PNREF3+1-j]  （３２）
【００７９】
式（３１）により誤差比率ＫＣＲＥＲＲを算出する場合には、エンジン回転速度の減速による変化成分が平均化により相殺されないので、以下の演算処理が必要となる。
【００８０】
先ず下記式（３３）により、学習範囲ＬＲＮにおける誤差比率ＫＣＲＥＲＲの平均値として平均誤差比率ＫＣＲＥＲＲＡＶＥを算出する。
【数５】
2008111354.tif 000007
【００８１】
次いで、式（３１）で算出された誤差比率ＫＣＲＥＲＲ[20-j]を下記式（３４）に適用して、修正誤差比率ＫＣＲＥＲＲＭを算出し、修正誤差比率ＫＣＲＥＲＲＭを式（１７）に適用して、学習補正係数ＫＣＲＲＥＦを算出する。
ＫＣＲＥＲＲＭ＝ＫＣＲＥＲＲ[20-j]−ＫＣＲＥＲＲＡＶＥ＋１    （３４）
【００８２】
平均誤差比率ＫＣＲＥＲＲＡＶＥは、減速による変化成分を示すので、式（３４）により算出される修正誤差比率ＫＣＲＥＲＲＭを用いることにより、減速による変化成分を除去し、正確な学習補正係数を算出することができる。
【００８３】
［第２の実施形態］
本実施形態は、４気筒のエンジンに本発明を適用したものである。以下に説明する点以外は、第１の実施形態と同一である。
【００８４】
図１７は、本実施形態における学習補正係数の算出手法を説明するための図である。この図で使われているパラメータのラベルは、図１３と同様に定義されるものである。４気筒エンジンの場合には、３ＴＤＣ期間、すなわちクランク軸１．５回転分のクランク角度範囲をサンプリング範囲ＳＭＰとし、その中心に位置する１ＴＤＣ期間を学習範囲ＬＲＮとする。このように、サンプリング範囲が３６０度を超える場合には、学習範囲ＬＲＮに対応するデータの重みを、学習範囲以外のデータの２倍にして平均化演算を行う。図１７の学習範囲ＬＲＮの前の１ＴＤＣ期間に得られるデータと、学習範囲ＬＲＮの後の１ＴＤＣ期間に得られるデータは、実際にはパルスホイールの同じ歯に対応するデータであるためである。このように重み付け平均化演算を行うことにより、平均化演算における全歯（全パルス発生間隔）の重みを同一とし、平均化演算の精度を高めることができる。
【００８５】
図１８は、本実施形態における学習補正係数算出処理のフローチャートである。図１８のステップＳ７０，Ｓ７１，Ｓ７９〜Ｓ８５，Ｓ８７〜Ｓ９３は、図１２のステップＳ１０，Ｓ１１，Ｓ１９〜Ｓ２５，Ｓ２７〜Ｓ３３と同一である。以下、異なるステップのみ説明する。ただし、ステップＳ８９のデータ数ＮＴＤＣは「３０」である。
【００８６】
ステップＳ７２では、気筒識別番号ＣＵＣＹＬが「３」以上であるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、第１インデクスＰＮＲＥＦ１を３０に設定する（ステップＳ１３）。一方、ＣＵＣＹＬ＜３であるときは、下記式（４１）により第１インデクスＰＮＲＥＦ１を算出する（ステップＳ７４）。
ＰＮＲＥＦ１＝（ＣＵＣＹＬ＋２）×３０            （４１）
【００８７】
ステップＳ７５では、下記式（４２）により、第２インデクスＰＮＲＥＦ２を算出する。
ＰＮＲＥＦ２＝（ＣＵＣＹＬ＋１）×３０            （４２）
【００８８】
ステップＳ７６では、気筒識別番号ＣＵＣＹＬが「１」以上であるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、第３インデクスＰＮＲＥＦ３を下記式（４３）により算出する（ステップＳ７７）。一方、ＣＵＣＹＬ＝０であるときは、第３インデクスＰＮＲＥＦ３を「１２０」に設定する（ステップＳ７８）。
ＰＮＲＥＦ３＝ＣＵＣＹＬ×３０                    （４３）
【００８９】
以上の処理により、４気筒エンジンの場合の第１〜第３インデクスＰＮＲＥＦ１〜ＰＮＲＥＦ３が算出される。第４インデクスＰＮＲＥＦ４の算出手法は、図１４の処理と同一である（ステップＳ７９〜Ｓ８１）。
【００９０】
ステップＳ８６では、下記式（４４）により、誤差比率ＫＣＲＥＲＲを算出する。式（４４）は、上述したように重み付け平均化演算を行うものである。
【数６】
2008111354.tif 000008
【００９１】
以上のように本実施形態では、学習範囲ＬＲＮにおける時間パラメータＣＲＭＥに、学習範囲ＬＲＮ以外の角度範囲における時間パラメータＣＲＭＥの２倍の重みを付けて平均化演算を行うようにしたので、パルスホイールの全ての歯に対する重みが均一なものとなり、学習範囲ＬＲＮで検出される時間パラメータＣＲＭＥについて適切な平均化が行われ、正確な学習補正係数ＫＣＲＲＥＦを得ることができる。
【００９２】
本実施形態では、図１８のステップＳ８６が平均化手段に相当し、ステップＳ８７が学習手段に相当する。
【００９３】
なお本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、上述した実施形態では、学習補正係数ＫＣＲＲＥＦを算出するための速度パラメータとして時間パラメータＣＲＭＥを用いたが、時間パラメータＣＲＭＥの逆数に比例するクランク軸の回転速度を示すパラメータを用いてもよい。
【００９４】
また上述した実施形態では、６気筒エンジン及び４気筒エンジンについて説明したが、本発明は他の気筒数のエンジンにも適用可能である。例えば８気筒エンジンの場合には、サンプリング範囲ＳＭＰを５ＴＤＣ期間とし、そのサンプリング範囲の中心の１ＴＤＣ期間を学習範囲ＬＲＮとすることが望ましい。サンプリング範囲ＳＭＰは、ＴＤＣ期間の奇数倍とし、クランク軸１回転以上の期間とする。６気筒エンジンの例のようにサンプリング範囲ＳＭＰが１回転であるときは、誤差比率ＫＣＲＥＲＲの算出に用いるデータの重みはすべて同一でよいが、４気筒あるいは８気筒エンジンでは、サンプリング範囲ＳＭＰは３６０度を超えるので、重み付きの平均化演算を行う必要がある。
【００９５】
また、３気筒エンジンの場合には、サンプリング範囲ＳＭＰを３ＴＤＣ期間とし、そのサンプリング範囲の中心の１ＴＤＣ期間（２４０度）を学習範囲ＬＲＮとすることが望ましい。サンプリング範囲ＳＭＰは３６０度を超えるので、平均化演算は、重み付き平均化演算とする。
【００９６】
また上述した実施形態では、クランク軸１回転に対応して学習補正係数ＫＣＲＥＦを算出・記憶するようにしたが、クランク軸２回転、すなわちエンジン作動の１サイクルに対応して学習補正係数ＫＣＲＲＥＦを算出・記憶するようにしてもよい。その場合には、第４インデクスＰＮＲＥＦ４を用いる必要がなくなり、学習補正係数ＫＣＲＲＥＦは、上記式（１７）に代えて、下記式（５１）により算出すればよい。これにより、学習補正係数ＫＣＲＲＥＦは、データ数１２０個の配列として算出・記憶される。この場合、例えばＫＣＲＲＥＦ[1]と、ＫＣＲＲＥＦ[61]は、パルスホイールの同一の歯に対応する学習補正係数となるが、クランク軸２回転の周期を有する変動成分があると、異なる値をとる。
ＫＣＲＲＥＦ[PNREF2-j]＝ＣＫＲＥＦ×ＫＣＲＥＲＲ
＋（１−ＣＫＲＥＦ）×ＫＣＲＲＥＦ[PNREF2-j]  （５１）
【００９７】
このように２回転に対応した学習補正係数ＫＣＲＲＥＦを用いることにより、クランク軸２回転の周期を有する変動成分、例えばクランク軸の軸心変動によるパルス発生時間間隔の変動を補正することができる。
【００９８】
また上述した実施形態では、フュエルカット運転中に学習補正係数ＫＣＲＲＥＦの算出を行うようにしたが、失火が発生していないことが確実な正常燃焼運転状態において行うようにしてもよい。
【００９９】
また本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンなどのクランク角速度検出装置にも適用が可能である。
【図面の簡単な説明】
【０１００】
【図１】本発明の一実施形態にかかる内燃機関及びその制御装置の構成を示す図である。
【図２】失火判定の手法を説明するための図である。
【図３】失火判定のために算出されるパラメータの推移を示す図である。
【図４】失火判定のために算出されるパラメータの推移を示す図である。
【図５】エンジンの往復運動部品が作動することに起因する慣性力トルクの算出手法を説明するための図である。
【図６】１気筒当たりの慣性力トルク（ＴＩ１）、６気筒の合成慣性トルク（ＴＩ）、及び対応する慣性力回転速度（ωＩ）の関係を示す波形図である。
【図７】クランク角度位置センサ出力に含まれる外乱の影響を説明するための図である。
【図８】燃焼相関関数（ＦＣＲ）の例を示す図である。
【図９】失火判定パラメータの実測値のばらつきを示す図である。
【図１０】パルスホイール誤差の補正後のデータ（従来手法との比較）を示すタイムチャートである。
【図１１】学習補正係数（ＫＣＲＲＥＦ）による補正によってパルスホイール誤差が減少することを示すタイムチャートである。
【図１２】パルスホイール誤差補正による補正強度（ＤＣＲ）を示す図である。
【図１３】本発明の補正方法の概要を説明するための図である。
【図１４】学習補正係数（ＫＣＲＲＥＦ）を算出する処理のフローチャートである。
【図１５】失火判定処理のフローチャートである。
【図１６】図１５の処理により算出される失火判定パラメータ（ＭＦＪＵＤｄ）の推移を示すタイムチャートである。
【図１７】本発明の第２の実施形態にかかる補正方法の概要を説明するための図である。
【図１８】第２の実施形態における学習補正係数算出処理のフローチャートである。
【符号の説明】
【０１０１】
１  内燃機関
１２  クランク角度位置センサ（パルス発生器）
２０  電子制御ユニット（平均化手段、学習手段、誤差比率算出手段、平均誤差比率算出手段）
【図１】
2008111354.tif 000009
【図２】
2008111354.tif 000010
【図３】
2008111354.tif 000011
【図４】
2008111354.tif 000012
【図５】
2008111354.tif 000013
【図６】
2008111354.tif 000014
【図７】
2008111354.tif 000015
【図８】
2008111354.tif 000016
【図９】
2008111354.tif 000017
【図１０】
2008111354.tif 000018
【図１１】
2008111354.tif 000019
【図１２】
2008111354.tif 000020
【図１３】
2008111354.tif 000021
【図１４】
2008111354.tif 000022
【図１５】
2008111354.tif 000023
【図１６】
2008111354.tif 000024
【図１７】
2008111354.tif 000025
【図１８】
2008111354.tif 000026