(57)【要約】【課題】各気筒の失火を従来より精度良く検出する。【解決手段】失火の１燃焼行程後の回転速度変動量は、失火時の回転速度変動量とはプラス／マイナスが反対になることを考慮して、失火検出の対象となる気筒とその１燃焼行程後の気筒との間の回転速度変動量を演算し、この回転速度変動量を用いて失火検出の対象となる気筒の失火の有無を判定する。更に、あらゆる種類の失火を検出できるようにするために、今回求めた回転速度変動量と３６０［ＣＡ］前あるいは３６０［ＣＡ］後の回転速度変動量との差分値と、今回求めた回転速度変動量と７２０［ＣＡ］前あるいは７２０［ＣＡ］後の回転速度変動量との差分値と、今回求めた回転速度変動量と７２０／気筒数［ＣＡ］前あるいは７２０／気筒数［ＣＡ］後の回転速度変動量との差分値とを演算し、これら３種類の差分値をそれぞれ失火判定値と比較して前記失火検出の対象となる気筒の失火の有無を判定する。【選択図】図２
2009121303.tif 000002
【特許請求の範囲】
【請求項１】
複数の気筒を有する内燃機関の各気筒の失火の有無を該内燃機関の回転速度変動量に基づいて判定する内燃機関の失火検出装置において、
各気筒の燃焼行程毎に内燃機関の回転速度を検出する回転速度検出手段と、
前記回転速度検出手段の検出値に基づいて失火検出の対象となる気筒とその１燃焼行程後の気筒との間の回転速度変動量を演算する回転速度変動量演算手段と、
前記失火検出の対象となる気筒とその１燃焼行程後の気筒との間の回転速度変動量を用いて前記失火検出の対象となる気筒の失火の有無を判定する失火判定手段と
を備えていることを特徴とする内燃機関の失火検出装置。
【請求項２】
前記失火判定手段は、前記回転速度変動量演算手段により今回求めた回転速度変動量と３６０［ＣＡ］前、あるいは３６０［ＣＡ］後の回転速度変動量との差分値と、今回求めた回転速度変動量と７２０［ＣＡ］前、あるいは７２０［ＣＡ］後の回転速度変動量との差分値と、今回求めた回転速度変動量と７２０／気筒数［ＣＡ］前、あるいは７２０／気筒数［ＣＡ］後の回転速度変動量との差分値とを演算し、これら３種類の差分値をそれぞれ所定の失火判定値と比較して前記失火検出の対象となる気筒の失火の有無を判定することを特徴とする請求項１に記載の内燃機関の失火検出装置。
【請求項３】
前記失火判定手段は、少なくとも点火時期遅角制御中に前記失火検出の対象となる気筒とその１燃焼行程後の気筒との間の回転速度変動量を用いて前記失火検出の対象となる気筒の失火の有無を判定することを特徴とする請求項１又は２に記載の内燃機関の失火検出装置。
【請求項４】
前記内燃機関は、６気筒以上の多気筒内燃機関であることを特徴とする請求項１乃至３のいずれかに記載の内燃機関の失火検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の各気筒の失火の有無を内燃機関の回転速度変動量に基づいて判定する内燃機関の失火検出装置に関する発明である。
【背景技術】
【０００２】
従来、この種の内燃機関の失火検出装置は、特許文献１（特開平６−３３６９４８号公報）、特許文献２（特開平１０−５４２９５号公報）等に記載されているように、各気筒の燃焼行程毎にエンジン回転速度（角速度）を検出し、失火検出の対象となる気筒とその１燃焼行程前の気筒との間の回転速度変動量（角速度変動量）を算出し、この回転速度変動量（角速度変動量）を用いて各気筒の失火の有無を判定するようにしている。
【０００３】
具体的には、特許文献１では、失火検出の対象となる気筒とその１燃焼行程前の気筒との間の今回の回転速度変動量と３６０［ＣＡ］前の回転速度変動量との差分値を失火判定値と比較して各気筒の失火の有無を判定するようにしている。
【０００４】
また、特許文献２では、失火検出の対象となる気筒とその１燃焼行程前の気筒との間の今回の回転速度変動量と３６０［ＣＡ］前の回転速度変動量との差分値と、今回求めた回転速度変動量と７２０［ＣＡ］前の回転速度変動量との差分値と、今回求めた回転速度変動量と７２０／気筒数［ＣＡ］前の回転速度変動量との差分値とを演算し、これら３種類の差分値をそれぞれ所定の失火判定値と比較して失火検出の対象となる気筒の失火の有無を判定するようにしている。
【特許文献１】特開平６−３３６９４８号公報
【特許文献２】特開平１０−５４２９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記特許文献１，２の失火検出方法では、いずれも、失火検出の対象となる気筒とその１燃焼行程前の気筒との間の回転速度変動量を用いて各気筒の失火の有無を判定するようにしているが、エンジンの気筒数が多くなると、失火発生時の回転速度変動量が小さくなるため、上記特許文献１，２の失火検出方法では、失火発生時と正常燃焼時の回転速度変動量の差が小さくなり、エンジン運転条件によっては失火と正常燃焼とを精度良く判別することが困難な場合がある。特に、冷間始動後の触媒暖機制御中は、排気温度を上昇させるために点火時期を大幅に遅角させるため、燃焼が緩慢となって、失火発生時と正常燃焼時の回転速度変動量の差がかなり小さくなり、失火検出が困難になる。
【０００６】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、各気筒の失火を従来より精度良く検出することができる内燃機関の失火検出装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、請求項１に係る発明は、複数の気筒を有する内燃機関の各気筒の失火の有無を該内燃機関の回転速度変動量に基づいて判定する内燃機関の失火検出装置において、各気筒の燃焼行程毎に内燃機関の回転速度を検出する回転速度検出手段と、前記回転速度検出手段の検出値に基づいて失火検出の対象となる気筒とその１燃焼行程後の気筒との間の回転速度変動量を演算する回転速度変動量演算手段と、前記失火検出の対象となる気筒とその１燃焼行程後の気筒との間の回転速度変動量を用いて前記失火検出の対象となる気筒の失火の有無を判定する失火判定手段とを備えた構成としたものである。
【０００８】
図２は、単一気筒連続失火が発生した場合の回転速度変動量の挙動の一例を示すタイムチャートである。１つの気筒の失火が発生する毎に、内燃機関の回転速度が急低下して回転速度変動量が大きくなる。失火の１燃焼行程前は、正常燃焼状態が続いて内燃機関の回転状態が安定しているため、回転速度変動量は０に近い小さい値となる。一方、失火の１燃焼行程後は、正常燃焼状態に復帰して内燃機関の回転速度が急上昇するため、回転速度変動量が大きくなる。図３に示すように、失火の１燃焼行程後の回転速度変動量は、失火時の回転速度変動量とはプラス／マイナスが反対になるため、請求項１のように、失火検出の対象となる気筒とその１燃焼行程後の気筒との間の回転速度変動量を用いれば、失火時の回転速度変動量と正常燃焼時の回転速度変動量との差を従来よりも拡大することができ、各気筒の失火を従来より精度良く検出することができる。
【０００９】
この場合、請求項２のように、今回求めた回転速度変動量と３６０［ＣＡ］前、あるいは３６０［ＣＡ］後の回転速度変動量との差分値と、今回求めた回転速度変動量と７２０［ＣＡ］前、あるいは７２０［ＣＡ］後の回転速度変動量との差分値と、今回求めた回転速度変動量と７２０／気筒数［ＣＡ］前、あるいは７２０／気筒数［ＣＡ］後の回転速度変動量との差分値を、それぞれ所定の失火判定値と比較して前記失火検出の対象となる気筒の失火の有無を判定するようにしても良い（ＣＡは「クランク角度」を意味する）。このようにすれば、今回求めた回転速度変動量と７２０［ＣＡ］前、あるいは７２０［ＣＡ］後の回転速度変動量との差分値から、間欠的に発生する間欠失火を検出することができ、また、今回求めた回転速度変動量と７２０／気筒数［ＣＡ］前、あるいは７２０／気筒数［ＣＡ］後の回転速度変動量との差分値から、燃焼行程が３６０［ＣＡ］離れた対向気筒の連続失火を検出することができ、更に、今回求めた回転速度変動量と３６０［ＣＡ］前、あるいは３６０［ＣＡ］後の回転速度変動量との差分値から、対向気筒の連続失火以外の連続失火を検出することができる。これにより、内燃機関に発生するあらゆる種類の失火を精度良く検出することができる。
【００１０】
以上説明した本発明の失火検出技術は、内燃機関のあらゆる運転中の失火検出に適用しても良いが、請求項３のように、少なくとも点火時期遅角制御中の失火検出に適用するようにしても良い。例えば、冷間始動後の触媒暖機制御中は、点火時期が大幅に遅角されて燃焼が緩慢となり、失火の有無による回転変動の差が小さくなるため、従来の失火検出技術では失火検出が困難であったが、本発明の失火検出技術を用いれば、点火時期遅角制御中でも各気筒の失火を従来より精度良く検出することができる。
【００１１】
本発明は、気筒数が５気筒以下の内燃機関に適用しても良いが、請求項４のように、６気筒以上の多気筒内燃機関に適用すると、大きな効果が得られる。内燃機関の気筒数が６気筒以上になると、失火発生時の回転速度変動量が小さくなるため、従来の失火検出方法では、失火発生時と正常燃焼時の回転速度変動量の差が小さくなり、運転条件によっては失火と正常燃焼とを精度良く判別することが困難な場合があるが、本発明の失火検出技術を用いれば、６気筒以上の多気筒内燃機関であっても、各気筒の失火を従来より精度良く検出することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施するための最良の形態を吸気ポート噴射式の内燃機関に適用して具体化した一実施例を説明する。
【００１３】
まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。
例えば、６気筒以上の多気筒内燃機関であるエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、ＤＣモータ等によって開度調節されるスロットルバルブ１５と、スロットル開度を検出するスロットル開度センサ１６とが設けられている。
【００１４】
また、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７に、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。なお、本発明は、筒内直接噴射弁を持つ内燃機関であっても同様な効果が得られることは言うまでもない。
【００１５】
エンジン１１のシリンダヘッドには、各気筒毎に点火プラグ２１が取り付けられ、各気筒の点火プラグ２１には、点火時期に同期して点火コイル（図示せず）で発生した高電圧が印加され、筒内の混合気に着火される。
【００１６】
一方、エンジン１１の排気管２２には、排出ガス中のＣＯ，ＨＣ，ＮＯｘ等を浄化する三元触媒等の触媒２３が設けられ、この触媒２３の上流側に、排出ガスの空燃比又はリーン／リッチ等を検出する排出ガスセンサ２４（空燃比センサ、酸素センサ等）が設けられている。また、エンジン１１のシリンダブロックには、冷却水温を検出する水温センサ２５や、エンジン１１のクランク軸が所定クランク角回転する毎にパルス信号を出力するクランク角センサ２６（回転速度検出手段）が取り付けられ、このクランク角センサ２６のパルス信号の出力周期（出力間隔）からエンジン回転速度が検出される。
【００１７】
また、エンジン１１のシリンダヘッドには、カム軸の回転に同期して基準位置で基準位置信号（気筒判別信号）を出力するカム角センサ２７が取り付けられ、このカム角センサ２７から基準位置信号とクランク角センサ２６のパルス信号のカウント値に基づいてクランク角が検出されて気筒判別が行われる。
【００１８】
これら各種のセンサ出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）２８に入力される。このＥＣＵ２８は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭに記憶された各種のエンジン制御ルーチンを実行することで、エンジン運転状態に応じて燃料噴射弁２０の燃料噴射量や点火プラグ２１の点火時期を制御する。
【００１９】
更に、ＥＣＵ２８は、エンジン運転中に後述する図４乃至図６の失火判定ルーチンを実行することで、各気筒の燃焼行程毎に検出したエンジン回転速度（任意のクランク角度を回転するのに要した時間）から、失火検出の対象となる気筒とその１燃焼行程後の気筒との間の回転速度変動量を演算し、その回転速度変動量を用いて失火検出の対象となる気筒の失火の有無を判定し、失火検出時には警告ランプ２９を点灯したり、或は、インストルメントパネルの警告表示部（図示せず）に失火の警告を表示する。
【００２０】
ここで、本実施例の失火検出方法を説明する。
図２は、単一気筒連続失火が発生した場合の回転速度変動量の挙動の一例を示すタイムチャートである。１つの気筒の失火が発生する毎に、エンジン１１の回転速度が急低下して回転速度変動量が大きくなる。失火の１燃焼行程前は、正常燃焼状態が続いてエンジン１１の回転状態が安定しているため、回転速度変動量は０に近い小さい値となる。一方、失火の１燃焼行程後は、正常燃焼状態に復帰してエンジン１１の回転速度が急上昇するため、回転速度変動量が大きくなる。図３に示すように、失火の１燃焼行程後の回転速度変動量は、失火時の回転速度変動量とはプラス／マイナスが反対になるため、本実施例では、失火検出の対象となる気筒とその１燃焼行程後の気筒との間の回転速度変動量を用いて失火検出の対象となる気筒の失火の有無を判定する。このようにすれば、失火時の回転速度変動量と正常燃焼時の回転速度変動量との差を従来よりも拡大することができ、各気筒の失火を従来より精度良く検出することができる。
【００２１】
更に、本実施例では、エンジン１１に発生するあらゆる種類の失火を検出できるようにするために、今回求めた回転速度変動量と３６０［ＣＡ］前の回転速度変動量との差分値と、今回求めた回転速度変動量と７２０［ＣＡ］前の回転速度変動量との差分値と、今回求めた回転速度変動量と７２０／気筒数［ＣＡ］前の回転速度変動量との差分値とを演算し、これら３種類の差分値をそれぞれ所定の失火判定値と比較して前記失火検出の対象となる気筒の失火の有無を判定するようにしている（ＣＡは「クランク角度」を意味する）。このようにすれば、今回求めた回転速度変動量と７２０［ＣＡ］前の回転速度変動量との差分値から、不定期に間欠的に発生する間欠失火を検出することができ、また、今回求めた回転速度変動量と７２０／気筒数［ＣＡ］前の回転速度変動量との差分値から、燃焼行程が３６０［ＣＡ］離れた対向気筒の連続失火を検出することができ、更に、今回求めた回転速度変動量と３６０［ＣＡ］前の回転速度変動量との差分値から、対向気筒の連続失火以外の連続失火を検出することができる。なお、今回求めた回転速度変動量と３６０［ＣＡ］後、７２０［ＣＡ］後、７２０／気筒数［ＣＡ］後の回転速度変動量との差分値を演算しても同様な効果が得られるのは言うまでもない。
【００２２】
以上説明した本実施例の失火検出は、ＥＣＵ２８によって図４乃至図６の失火判定ルーチンに従って次のようにして実行される。尚、図４乃至図６の失火判定ルーチンは、８気筒エンジン（気筒数＝８）に適用される失火判定ルーチンである。
【００２３】
図４乃至図６の失火判定ルーチンは、クランク角センサ２６のパルス信号に基づいて例えば３０［ＣＡ］毎に、割り込み処理により起動され、特許請求の範囲でいう失火判定手段としての役割を果たす。本ルーチンが起動されると、まずステップＳ１００で、本ルーチンの前回の割り込み時刻と今回の割り込み時刻との差分から、クランク軸が３０［ＣＡ］回転するのに要した時間Ｔ３０i を算出する。
【００２４】
この後、ステップＳ１０１に進み、カム角センサ２７の基準位置信号とクランク角センサ２６のパルス信号のカウント値に基づいて今回の割り込みタイミングが上死点後（ＡＴＤＣ）３０［ＣＡ］であるか否かを判定し、今回の割り込みタイミングがＡＴＤＣ３０［ＣＡ］でなければ、ステップＳ１０２に進み、時間Ｔ３０i を１回前の過去の時間データＴ３０i-1 として本ルーチンを終了する。なお、Ｔ３０の添字i ，i-1 は、処理回数を示す。
【００２５】
一方、上記ステップＳ１０１で、今回の割り込みタイミングがＡＴＤＣ３０［ＣＡ］であると判定されれば、ステップＳ１０３以降の失火判定処理を次のようにして実行する。まず、ステップＳ１０３で、カム角センサ２７の基準位置信号とクランク角センサ２６のパルス信号のカウント値に基づいて今回の気筒番号ｎを識別し、次のステップＳ１０４で、エンジン回転速度等のエンジン運転条件に応じて設定された任意のクランク角度（３０［ＣＡ］の整数倍のクランク角度）を回転するのに要した時間Ｔi を算出する。
Ｔi ＝Ｔ３０i ＋Ｔ３０i-1 ＋Ｔ３０i-2 ＋……
【００２６】
例えば、６０［ＣＡ］を回転するのに要した時間Ｔi は、次式で算出される。
Ｔi ＝Ｔ３０i ＋Ｔ３０i-1
【００２７】
この後、ステップＳ１０５に進み、上記任意のクランク角度（３０×Ｎ［ＣＡ］、Ｎは整数）を回転するのに要した時間Ｔi をクランク角速度ωn に換算する。
ωn ＝（３０×Ｎ）／Ｔi
【００２８】
なお、クランク角速度ωn は、エンジン１１の回転速度を表すデータであり、上記ステップＳ１００〜Ｓ１０５の処理が特許請求の範囲でいう回転速度検出手段としての役割を果たす。
【００２９】
その後、ステップＳ１０６に進み、クランク角速度ωn をクランク角偏差（公差）の学習値で補正（公差補正）した後、ステップＳ１０７に進み、クランク角速度ωn を用い、（ｎ−１）番気筒について気筒間の角速度変動量差分値Δ（Δω）n-1 を、７２０［ＣＡ］差分法、３６０［ＣＡ］差分法、９０［ＣＡ］差分法により算出する。
【００３０】
ここで、７２０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ７２０は、今回求めた角速度変動量｛ωn-2 −ωn-1 −（ωn-1 −ωn ）｝と７２０［ＣＡ］前の角速度変動量｛ωn-10−ωn-9 −（ωn-9 −ωn-8 ）｝との差分値である。
Δ（Δω）n-1 ７２０＝｛ωn-2 −ωn-1 −（ωn-1 −ωn ）｝
−｛ωn-10−ωn-9 −（ωn-9 −ωn-8 ）｝
【００３１】
また、３６０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ３６０は、今回求めた角速度変動量｛ωn-2 −ωn-1 −（ωn-1 −ωn ）｝と３６０［ＣＡ］前の角速度変動量｛ωn-6 −ωn-5 −（ωn-5 −ωn-4 ）｝との差分値である。
Δ（Δω）n-1 ７２０＝｛ωn-2 −ωn-1 −（ωn-1 −ωn ）｝
−｛ωn-6 −ωn-5 −（ωn-5 −ωn-4 ）｝
【００３２】
また、９０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ９０は、今回求めた角速度変動量｛ωn-2 −ωn-1 −（ωn-1 −ωn ）｝と９０［ＣＡ］前の角速度変動量｛ωn-3 −ωn-2 −（ωn-2 −ωn-1 ）｝との差分値である。
Δ（Δω）n-1 ７２０＝｛ωn-2 −ωn-1 −（ωn-1 −ωn ）｝
−｛ωn-3 −ωn-2 −（ωn-2 −ωn-1 ）｝
【００３３】
ここで、９０［ＣＡ］＝７２０／気筒数［ＣＡ］＝７２０／８［ＣＡ］である。参考までに、エンジン１１の気筒数が６気筒の場合は、１２０［ＣＡ］差分法で角速度変動量差分値Δ（Δω）n-1 １２０を演算すれば良く、また、１２気筒の場合は、６０［ＣＡ］差分法で角速度変動量差分値Δ（Δω）n-1 ６０を演算すれば良い。
【００３４】
また、各差分法で用いる角速度変動量は、失火検出の対象となる気筒とその１燃焼行程後の気筒との間のクランク角速度ωn の変動量である。
【００３５】
上記７２０［ＣＡ］差分法で求められる角速度変動量差分値Δ（Δω）n-1 ７２０及び３６０［ＣＡ］差分法で求められる角速度変動量差分値Δ（Δω）n-1 ３６０については、前記ステップＳ１０５で算出されたクランク角速度ωn が用いられ、９０［ＣＡ］差分法で求められる角速度変動量差分値Δ（Δω）n-1 ９０についは、前記ステップＳ１０６で公差補正されたクランク角速度ωn が用いられる。このステップＳ１０７の処理が特許請求の範囲でいう回転速度変動量演算手段としての役割を果たす。
【００３６】
その後、ステップＳ１０８に進み、７２０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ７２０と所定の失火判定値ＲＥＦ７２０とを比較して、当該角速度変動量差分値Δ（Δω）n-1 ７２０が失火判定値ＲＥＦ７２０を越えていれば、不定期に間欠的に発生する失火（間欠失火）が発生していると判断して、ステップＳ１０９に進み、仮失火カウンタの該当気筒番号に対応するＣＭＩＳカウンタ（ＣＭＩＳ７２０）を「１」インクリメントして図５のステップＳ１１０に進む。
【００３７】
一方、上記ステップＳ１０８で、７２０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ７２０が失火判定値ＲＥＦ７２０以下と判定されれば、間欠失火が発生していないと判断して、図５のステップＳ１１０に進む。
【００３８】
この場合、７２０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ７２０を用いれば、間欠的に発生する間欠失火を検出できるが、同一気筒が連続して失火する連続失火は、７２０［ＣＡ］差分法では検出できない。つまり、７２０［ＣＡ］前の燃焼行程の気筒は、今回の燃焼行程の気筒と同じ気筒であるため、７２０［ＣＡ］差分法では、同一気筒同士で差分値を算出することになり、失火による回転変動が相殺されてしまう。その結果、連続失火時には、７２０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ７２０が失火判定値ＲＥＦ７２０を越えることがなく、連続失火を検出できないため、連続失火は次のようにして検出する。
【００３９】
まず、図５のステップＳ１１０で、７２０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ７２０と失火判定値ＲＥＦ７２０とを用いて、連続失火が発生している可能性があるか否かを判別する。すなわち、前述したように、７２０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ７２０は連続失火時にはほとんど変動せず、間欠失火時のみ変動する。そのため、７２０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n ７２０に基づいて、失火が検出されていない状態が数サイクル連続したか否かで、連続失火の可能性の有無を判定する。
【００４０】
このステップＳ１１０で、連続失火の可能性がないと判定されれば、以降の連続失火検出処理（ステップＳ１１１〜Ｓ１１６）を行わずに図６のステップＳ１１７に進む。
【００４１】
一方、ステップＳ１１０で、連続失火の可能性有りと判定されれば、ステップＳ１１１に進み、３６０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ３６０と所定の失火判定値ＲＥＦ３６０とを比較して、当該角速度変動量差分値Δ（Δω）n-1 ３６０が失火判定値ＲＥＦ３６０を越えていれば、連続失火が発生している判断して、ステップＳ１１２に進み、仮失火カウンタの該当気筒番号に対応するＣＭＩＳカウンタ（ＣＭＩＳ３６０）を「１」インクリメントして図６のステップＳ１１７に進む。
【００４２】
この場合、３６０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ３６０は、燃焼行程が３６０［ＣＡ］離れた対向気筒間の角速度変動量の差分値であるため、対向気筒の連続失火を検出することはできないが、それ以外の組合せの連続失火は全て検出できる。  一方、上記ステップＳ１１１で、３６０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ３６０が失火判定値ＲＥＦ３６０以下と判定されれば、ステップＳ１１３に進み、当該気筒の当該エンジン運転条件（エンジン回転速度ＮＥ、エンジン負荷ＰＭ）に対応するクランク角偏差（公差）の学習値がメモリに記憶されているか否かを判定し、対応するクランク角偏差（公差）の学習値がメモリに記憶されていなければ、９０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ９０を用いた失火検出処理（ステップＳ１１４〜Ｓ１１６）を行わずに、図６のステップＳ１１７に進む。これは、９０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ９０は、前記ステップＳ１０６でクランク角偏差（公差）の学習値を用いて公差補正したクランク角速度ωn を用いて算出するためである。
【００４３】
上記ステップＳ１１３で、対応するクランク角偏差（公差）の学習値がメモリに記憶されていると判定されれば、ステップＳ１１４に進み、９０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ９０と所定の失火判定値ＲＥＦ９０とを比較して、角速度変動量差分値Δ（Δω）n-1 ９０が失火判定値ＲＥＦ９０を越えていれば、失火の可能性があると判断する。つまり、９０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ９０は、燃焼行程が９０［ＣＡ］離れた隣接する気筒間の差分値であるので、隣接する気筒が連続失火している場合はその失火を検出できないが、対向気筒が連続失火している場合にはその失火を検出できる。
【００４４】
上記ステップＳ１１４で、９０［ＣＡ］差分法で求めた角速度変動量差分値Δ（Δω）n-1 ９０が失火判定値ＲＥＦ９０を越えて、失火の可能性があると判断されれば、ステップＳ１１５に進み、対向気筒が連続失火しているか否かを判定する。その結果、対向気筒が連続失火していると判定されれば、ステップＳ１１６に進み、仮失火カウンタの該当気筒番号に対応するＣＭＩＳカウンタ（ＣＭＩＳ９０）を「１」インクリメントして図６のステップＳ１１７に進む。要するに、対向気筒の連続失火以外は既に前記ステップＳ１１１で検出されているため、上記ステップＳ１１４では失火発生の気筒組合わせが対向気筒の場合のみが検出される。上記ステップＳ１１５で、対向気筒が連続失火していないと判定されれば、そのまま図６のステップＳ１１７に進む。
【００４５】
図６のステップＳ１１７では、点火数カウンタを通じて計数される点火数が所定点火数（例えば５００）に達したか否かを判定し、点火数が所定点火数に達していなければ、そのままステップＳ１２４に進み、点火数が所定点火数に達していれば、ステップＳ１１８に進み、前記ステップＳ１０９，Ｓ１１２，Ｓ１１６で計数したカウンタのカウント値ＣＭＩＳ７２０，ＣＭＩＳ３６０，ＣＭＩＳ９０を気筒毎に加算して、その時の該当気筒に対して仮失火カウンタのカウント値ＣＭＩＳｎを積算する（但し、ｎ＝１〜８）。
ＣＭＩＳｎ＝ＣＭＩＳ７２０ｎ＋ＣＭＩＳ３６０ｎ＋ＣＭＩＳ９０ｎ
【００４６】
この際、失火数が数個程度であるデータについては、検出誤差である可能性があるため、除外するようにしても良い。
【００４７】
この後、ステップＳ１１９に進み、仮失火カウンタのカウント値ＣＭＩＳｎ（ｎ＝１〜８）を全て加算し、全気筒分の失火数を表すカウンタＣＭＩＳのカウント値を求める（ＣＭＩＳ＝ΣＣＭＩＳｎ）。そして、次のステップＳ１２０で、カウンタＣＭＩＳのカウント値と所定の判定値ＫＣ（例えば１００）とを比較して、カウンタＣＭＩＳのカウント値が判定値ＫＣよりも大きければ、ステップＳ１２１に進み、失火フラグＸＭＦに「１」をセットし、一方、カウンタＣＭＩＳのカウント値が判定値ＫＣ以下であれば、ステップＳ１２２に進み、失火フラグＸＭＦを「０」にリセットする。この場合、失火フラグＸＭＦに「１」がセットされると、エミッション悪化や触媒２３の損傷等の不具合が発生する可能性があると判断して、警告ランプ２９の点灯等が実施される。
【００４８】
失火フラグＸＭＦのセット／リセット後、ステップＳ１２３に進み、カウンタＣＭＩＳや、その他のカウンタＣＭＩＳ７２０、ＣＭＩＳ３６０、ＣＭＩＳ９０等の全てのカウンタをクリアする。そして最後に、ステップＳ１２４に進み、メモリに記憶されているクランク角速度ωn の過去のデータωn-10、ωn-9 、……、ωn-2 、ωn-1 をそれぞれ１回前のデータに更新する処理を実行して本ルーチンを終了する。
【００４９】
ωn-10←ωn-9
ωn-9 ←ωn-8
ωn-8 ←ωn-7
ωn-7 ←ωn-6
ωn-6 ←ωn-5
ωn-5 ←ωn-4
ωn-4 ←ωn-3
ωn-3 ←ωn-2
ωn-2 ←ωn-1
ωn-1 ←ωn
【００５０】
以上説明した本実施例によれば、失火検出の対象となる気筒とその１燃焼行程後の気筒との間の回転速度変動量（角速度変動量）を用いて失火検出の対象となる気筒の失火の有無を判定するようにしたので、図３に示すように、失火時の回転速度変動量と正常燃焼時の回転速度変動量との差を従来よりも拡大することができ、各気筒の失火を従来より精度良く検出することができる。
【００５１】
しかも、本実施例では、今回求めた回転速度変動量と３６０［ＣＡ］前の回転速度変動量との差分値Δ（Δω）n-1 ３６０と、今回求めた回転速度変動量と７２０［ＣＡ］前の回転速度変動量との差分値Δ（Δω）n-1 ７２０と、今回求めた回転速度変動量と７２０／気筒数［ＣＡ］前の回転速度変動量との差分値Δ（Δω）n-1 ９０を、それぞれ所定の失火判定値と比較して前記失火検出の対象となる気筒の失火の有無を判定するようにしたので、間欠失火、単一気筒連続失火、対向気筒の連続失火やそれ以外の連続失火等のあらゆる種類の失火を検出することができる。
【００５２】
但し、本発明は、上記３つの差分値Δ（Δω）n-1 ３６０、Δ（Δω）n-1 ７２０、Δ（Δω）n-1 ９０のいずれか１つのみ又は２つを演算して失火を検出するようにしても良い。
【００５３】
以上説明した本実施例の失火検出技術は、エンジン１１のあらゆる運転中の失火検出に適用しても良いが、少なくとも点火時期遅角制御中の失火検出に適用するようにしても良い。例えば、冷間始動後の触媒暖機制御中は、点火時期が大幅に遅角されて燃焼が緩慢となり、失火の有無による回転変動の差が小さくなるため、従来の失火検出技術では失火検出が困難であったが、本実施例の失火検出技術を用いれば、点火時期遅角制御中でも各気筒の失火を従来より精度良く検出することができる。
【００５４】
また、図４乃至図６の失火判定ルーチンは、８気筒エンジン（気筒数＝８）に適用される失火判定ルーチンであるが、６気筒、１０気筒、１２気筒等の多気筒エンジンに本発明を適用しても良いし、５気筒以下の気筒数のエンジンに本発明を適用しても良いが、本発明は、６気筒以上の多気筒エンジンに適用すると、大きな効果が得られる。エンジンの気筒数が６気筒以上になると、失火発生時の回転速度変動量が小さくなるため、従来の失火検出方法では、失火発生時と正常燃焼時の回転速度変動量の差が小さくなり、運転条件によっては失火と正常燃焼とを精度良く判別することが困難な場合があるが、本発明の失火検出技術を用いれば、６気筒以上の多気筒エンジンであっても、各気筒の失火を従来より精度良く検出することができる。
【００５５】
その他、本発明は、図１に示すような吸気ポート噴射式の内燃機関に限定されず、筒内噴射式の内燃機関や、吸気ポート噴射用の燃料噴射弁と筒内噴射用の燃料噴射弁の両方を備えたデュアル噴射式の内燃機関にも適用して実施できる等、要旨を逸脱しない範囲内で種々変更して実施できることは言うまでもない。
【図面の簡単な説明】
【００５６】
【図１】本発明の一実施例におけるエンジン制御システム全体の概略構成図である。
【図２】単一気筒連続失火が発生した場合の回転速度変動量の挙動の一例を示すタイムチャートである。
【図３】失火時の回転速度変動量と、失火の１燃焼行程前の回転速度変動量と、失火の１燃焼行程後の回転速度変動量との関係を説明する図である。
【図４】失火検出ルーチンの処理の流れを示すフローチャートである（その１）。
【図５】失火検出ルーチンの処理の流れを示すフローチャートである（その２）。
【図６】失火検出ルーチンの処理の流れを示すフローチャートである（その３）。
【符号の説明】
【００５７】
１１…エンジン（内燃機関）、１２…吸気管、１４…エアフローメータ、１５…スロットルバルブ、１８…吸気管圧力センサ、２０…燃料噴射弁、２１…点火プラグ、２２…排気管、２６…クランク角センサ、２８…ＥＣＵ（回転速度変動量演算手段，失火判定手段，回転速度検出手段）
【図１】
2009121303.tif 000003
【図２】
2009121303.tif 000004
【図３】
2009121303.tif 000005
【図４】
2009121303.tif 000006
【図５】
2009121303.tif 000007
【図６】
2009121303.tif 000008