(57)【要約】      （修正有）【課題】内燃機関の回転速度であるクランク角速度の変動量に基づいて失火有無の判定を行う内燃機関の失火判定装置を提供する。【解決手段】多気筒内燃機関の任意の気筒の膨張行程において取得される第１の角速度変化量Δω1と、任意の気筒の膨張行程に対してクランクシャフトのＮ回転前に膨張行程を迎えていた気筒について取得されていた第２の角速度変化量Δω2と、の差分値である回転変動量ΔＮＥを取得する回転変動量取得部と、取得された回転変動量が所定閾値ΔＮＥthを超える場合、（１）第２の角速度変化量の大きさ｜Δω2｜が第１の角速度変化量の大きさ｜Δω1｜よりも大きく、且つ、第２の角速度変化量Δω2が任意の気筒に対する回転変動量ΔＮＥの値を所定閾値ΔＮＥthを超える方向に向かわせる符号を有するという所定条件、が成立するときには失火が発生していないと判定し、（２）所定条件が成立しないとき、失火が発生したと判定する。【選択図】図３
2016217148.tif 000002
【特許請求の範囲】
【請求項１】
多気筒内燃機関の各気筒の膨張行程においてクランクシャフトが第１クランク角から第２クランク角までの所定回転角度幅を回転するのに要する時間に基づいてクランク角速度を取得するとともに前記膨張行程が連続する２つの気筒間の前記クランク角速度の差分である角速度変化量を取得する角速度変化量取得部と、
前記各気筒のうちの任意の気筒の膨張行程において前記角速度変化量取得部により取得される第１の前記角速度変化量と、前記任意の気筒の膨張行程に対して前記クランクシャフトのＮ回転前（Ｎは正の整数）に膨張行程を迎えていた気筒について前記角速度変化量取得部にて取得されていた第２の前記角速度変化量と、の差分である回転変動量を取得する回転変動量取得部と、
前記回転変動量取得部において取得された前記回転変動量が所定閾値を超える場合、
（１）前記第２の角速度変化量の大きさが前記第１の角速度変化量の大きさよりも大きく、且つ、前記第２の角速度変化量が前記任意の気筒に対する前記回転変動量の値を前記所定閾値を超える方向に向かわせる符号を有するという所定条件、が成立するときには前記内燃機関に失火が発生していないと判定し、
（２）前記所定条件が成立しないとき、前記内燃機関に失火が発生したと判定する、
失火判定部と、
を備えた内燃機関の失火判定装置。
【請求項２】
請求項１に記載の内燃機関の失火判定装置において、
前記失火判定部は、
前記所定条件が成立するときには、前記任意の気筒に対する前記回転変動量を前記所定閾値を超えない値に置換して前記失火判定を実行するように構成された、
内燃機関の失火判定装置。
【請求項３】
請求項１に記載の内燃機関の失火判定装置において、
前記失火判定部は、
前記所定条件が成立するときには、前記任意の気筒に対する前記回転変動量を０に置換して前記失火判定を実行するように構成された、
内燃機関の失火判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の回転速度であるクランク角速度の変動量に基づいて失火有無の判定を行う内燃機関の失火判定装置に関する。
【背景技術】
【０００２】
失火の発生時に内燃機関の回転速度（クランク角速度）が変動することに着目し、この回転速度の変動に基づいて失火の発生有無を判定する失火判定装置が提案されている。これらの失火判定装置の多くにおいて、内燃機関の回転速度は、クランクシャフトに備えられクランクシャフトとともに回転するタイミングロータを用いて検出される。具体的には、内燃機関の回転速度は、クランクシャフトの回転によってタイミングロータに等間隔に刻まれた外歯がその外歯と対向して内燃機関に固定されたセンサ（ピックアップ）上を通過する際に、センサによって検出される信号に基づいて取得されるようになっている。
【０００３】
ところが、タイミングロータの外歯には製造誤差等の機械的な寸法誤差があるため、仮にクランク角速度が一定であっても３６０°クランク角周期のクランク角速度の変動（以下、「回転変動」とも称呼する。）が検出されることがあり、この周期的な回転変動が失火の誤判定を招く虞がある。この周期的な回転変動をキャンセルすることが可能な失火判定装置（以下、「従来装置」と称呼する。）が提案されている（例えば、特許文献１）。なお、本明細書において、クランク角度を「ＣＡ」と表記する。即ち、例えば、３６０°クランク角度は３６０°ＣＡと表記される。
【０００４】
後に詳述するが、クランク角速度の変動量は、例えば、任意の気筒の圧縮上死点ＴＤＣ（０°ＣＡ）から３０°ＣＡまでの範囲をクランクシャフトが回転するのに要する時間（以下、「回転所要時間」とも称呼する。）から算出したクランク角速度とその直前に膨張行程を迎えていた気筒の回転所要時間から算出したクランク角速度との差分として算出される。以下、クランク角速度の変動量は「角速度変化量」と称呼される。
【０００５】
従来装置は、上述した３６０°ＣＡ周期に発生し得る「回転変動」によって失火の誤検出をしないようにするため、任意の気筒における角速度変化量（以下、「第１の角速度変化量」とも称呼する。）と、この任意の気筒の３６０°ＣＡ前に膨張行程にあった気筒における角速度変化量（以下、「第２の角速度変化量」とも称呼する。）とを算出し、第１の角速度変化量と第２の角速度変化量との差分値を「回転変動量」として求める。従来装置は、この回転変動量が失火判定閾値を超えたときに失火が発生したと判定する。
【０００６】
以下、従来装置の失火判定方法及び失火が発生したときの回転変動量の変化について、図８を参照しながらより具体的に説明する。本例において、内燃機関は４気筒の内燃機関であり、点火順序は第１気筒＃１、第３気筒＃３、第４気筒＃４、第２気筒＃２（＃１→＃３→＃４→＃２）である。図８には、（Ａ）クランク角速度、（Ｂ）角速度変化量及び（Ｃ）回転変動量のクランク角度に対する変化が示されている。なお、クランク角速度は、以下、単に「角速度」とも称呼する。
【０００７】
第１の角速度変化量Δω1 （ｄω５）は、失火判定の対象気筒（例えば、図８において第２気筒＃２）の圧縮上死点ＴＤＣから３０°ＣＡまでの範囲をクランクシャフトが回転するのに要する時間（回転所要時間）から算出される角速度ωn （ω（５））とその直前に膨張行程を迎えていた（１膨張行程前の）気筒（第４気筒＃４）の回転所要時間から算出される角速度ωn-1 （ω（４））との差分として次式にて定義される。
Δω1 ＝ωn-1 −ωn                                                 （１）
第２の角速度変化量Δω2 （ｄω３）は、失火判定の対象気筒から２膨張行程前の気筒（第３気筒＃３）の回転所要時間から算出される角速度ωn-2 （ω（３））と３膨張行程前の気筒（第１気筒＃１）の回転所要時間から算出される角速度ωn-3 （ω（２））との差分として次式にて定義される。
Δω2 ＝ωn-3 −ωn-2                                               （２）
回転変動量ΔＮＥは、第１の角速度変化量Δω1 と第２の角速度変化量Δω2 との差分値である。よって、回転変動量ΔＮＥ（ｄＮ５）は、次式により表される。
ΔＮＥ＝Δω1 −Δω2 ＝（ωn-1 −ωn ）−（ωn-3 −ωn-2 ）        （３）
【０００８】
図８に示したように、現在気筒（例えば、第２気筒＃２）にて失火が生じ、他の気筒において正常な燃焼が行われていたとする（即ち、失火がなかったとする）と、現在気筒における角速度ωn （ω（５））の値が図８に示した他の角速度である「角速度ωn-1 （ω（４））、ωn-2 （ω（３））及びωn-3 （ω（２））」よりも小さくなる（図８（Ａ）参照。）。従って、図中に示した第１の角速度変化量Δω1 （ｄω５）は比較的大きな正の値となり、図中に示した第２の角速度変化量Δω2 （ｄω３）は略「０」となる（図８（Ｂ）参照。）。従って、この場合、図８の（Ｃ）に示したように、現在気筒（この場合、第２気筒＃２）に対する回転変動量ΔＮＥ（ｄＮ５）は比較的大きな正の値となり、所定閾値ΔＮＥthを超える。
【０００９】
第２気筒＃２の次に膨張行程を迎える気筒は第１気筒＃１である。第１気筒＃１が現在気筒のとき（第１気筒＃１が膨張行程を迎えたとき）は燃料が正常に燃焼するが、失火が発生した直後であり、現在気筒の角速度ωn （ω（６））は平均的な角速度ωave まで回復していない。しかし、現在気筒の角速度ωn （ω（６））よりも直前の気筒の角速度ωn-1 （ω（５））の方が小さいので、第１の角速度変化量Δω1 （ｄω６）はその絶対値が比較的小さな負の値となる。一方、第２の角速度変化量Δω2 （ｄω４）は略「０」となる。従って、この場合、第１気筒＃１に対する回転変動量ΔＮＥはその絶対値が比較的小さな負の値となり、所定閾値ΔＮＥthを超えない。
【００１０】
更に、第１気筒＃１の次に膨張行程を迎える気筒は第３気筒＃３である。第３気筒＃３が現在気筒となると、現在気筒の角速度ωn （ω（７））は平均的な角速度ωave へと回復している。このとき第１の角速度変化量Δω1 （ｄω７）はその絶対値が比較的小さな負の値となり、Δω2 （ｄω５）は比較的大きな正の値となる。従って、この場合、第３気筒＃３に対する回転変動量ΔＮＥ（ｄＮ７）はその絶対値が比較的大きな負の値となり、所定閾値ΔＮＥthを超えない。
【００１１】
第３気筒＃３の次に膨張行程を迎える気筒は第４気筒＃４である。第４気筒＃４が現在気筒の場合、第１の角速度変化量Δω1 （ｄω８）は略「０」となり、第２の角速度変化量Δω2 （ｄω６）はその絶対値が比較的小さな負の値となる。従って、この場合、第４気筒＃４に対する回転変動量ΔＮＥは比較的小さな正の値となり、やはり、所定閾値ΔＮＥthを超えない。
【００１２】
以上の説明から理解されるように、失火が発生した気筒（図８に示した例において第２気筒＃２）の回転変動量ΔＮＥは大きい正の値となり所定の判定閾値ΔＮＥthを超える。従って、従来装置は、回転変動量ΔＮＥが判定閾値ΔＮＥthを超えたとき、失火が発生したと判定している。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平４−３６５９５８号公報
【発明の概要】
【００１４】
ところが、従来装置において、車両走行に伴う外乱及び過去に発生した失火等に起因して一時的に機関回転速度が上昇すると、その影響により回転変動量ΔＮＥが所定の判定閾値ΔＮＥthを超え、実際には失火が発生していないにもかかわらず、失火が発生したと誤検出される場合がある。上記車両走行に伴う外乱とは、例えば、車両の悪路走行時の振動、車輪の空転及びクラッチ断接時における駆動系のねじれ等である。以下に、従来装置における失火の誤検出の例について図９を参照しながら説明する。
【００１５】
例えば、車両走行に伴う外乱の影響により第２気筒＃２にて回転速度（角速度）が上昇したとすると、現在気筒（第２気筒＃２）における角速度ωn （ω（４））の値は、現在気筒以前の気筒における角速度ωn-1 （ω（３））、ωn-2 （ω（２））及びωn-3 （ω（１））の値よりも大きくなる（図９（Ａ）参照。）。従って、このときの第１の角速度変化量Δω1 （ｄω４）は比較的大きな負の値となり、第２の角速度変化量Δω2 （ｄω２）は略「０」となる（図９（Ｂ）参照。）。従って、この場合、図９の（Ｃ）に示したように、第２気筒＃２に対する回転変動量ΔＮＥ（ｄＮ４）は比較的大きな負の値となり、所定閾値ΔＮＥthを超えない。
【００１６】
第２気筒＃２の次に膨張行程を迎える気筒は第１気筒＃１である。第１気筒＃１が現在気筒となると（第１気筒＃１が膨張行程を迎えると）、角速度ωn （ω（５））は、直前の気筒における角速度よりも低い値となっている。このとき（３）式の第１の角速度変化量Δω1 （ｄω５）はその絶対値が比較的小さな正の値となり、第２の角速度変化量Δω2 （ｄω３）は略「０」となる（図９（Ｂ）参照。）。従って、この場合、第１気筒＃１に対する回転変動量ΔＮＥ（ｄＮ５）はその絶対値が比較的小さな正の値となり、所定閾値ΔＮＥthを超えない。
【００１７】
更に、第１気筒＃１の次に膨張行程を迎える気筒は第３気筒＃３である。第３気筒＃３が現在気筒となると、角速度ωn （ω（６））は平均的な角速度ωave へと回復している。このとき第１の角速度変化量Δω1 （ｄω６）はその絶対値が比較的小さな正の値となる。一方、このときの第２の角速度変化量Δω2 （ｄω４）はその絶対値が比較的大きな負の値となる。従って、この場合、第３気筒＃３に対する回転変動量ΔＮＥ（ｄＮ６）は比較的大きな正の値となり、失火が発生していないにもかかわらず所定の判定閾値ΔＮＥthを超える。
【００１８】
第３気筒＃３の次に膨張行程を迎える気筒は第４気筒＃４である。第４気筒＃４が現在気筒の場合、第１の角速度変化量Δω1 （ｄω７）は略「０」となり、第２の角速度変化量Δω2 （ｄω５）は、比較的小さな正の値となる。従って、この場合、第４気筒＃４に対する回転変動量ΔＮＥはその絶対値が比較的小さな負の値となり、所定閾値ΔＮＥthを超えない。
【００１９】
以上の説明から理解されるように、従来装置においては、回転速度が上昇した気筒（図９に示した例において第２気筒＃２）から２気筒後（３６０°ＣＡ後の気筒）において、実際は失火が発生していないにもかかわらず、失火が発生したと誤判定されることがあるという問題があった。
【００２０】
本発明は上記問題に対処するために為されたものである。即ち、本発明の目的の一つは、機関回転速度の一時的な上昇の影響を受けて、失火が発生していないにもかかわらず失火が発生したと誤判定する可能性が低い、失火判定装置を提供することにある。
【００２１】
本発明の内燃機関の失火判定装置（以下、「本発明装置」と称呼する。）は、角速度変化量取得部と、回転変動量取得部と、失火判定部と、を備える。
【００２２】
前記角速度変化量取得部は、多気筒内燃機関の各気筒の膨張行程においてクランクシャフトが第１クランク角から第２クランク角までの所定回転角度幅を回転するのに要する時間に基づいてクランク角速度を取得するとともに前記膨張行程が連続する２つの気筒間の前記クランク角速度の差分である角速度変化量を取得する。
【００２３】
前記回転変動量取得部は、前記各気筒のうちの任意の気筒の膨張行程において前記角速度変化量取得部により取得される第１の前記角速度変化量と、前記任意の気筒の膨張行程に対して前記クランクシャフトのＮ回転前（Ｎは正の整数）に膨張行程を迎えていた気筒について前記角速度変化量取得部にて取得されていた第２の前記角速度変化量と、の差分である回転変動量を取得する。
【００２４】
前記失火判定部は、前記回転変動量取得部において取得された前記回転変動量が所定閾値を超える場合、
（１）前記第２の角速度変化量の大きさが前記第１の角速度変化量の大きさよりも大きく、且つ、前記第２の角速度変化量が前記任意の気筒に対する前記回転変動量の値を前記所定閾値を超える方向に向かわせる符号を有するという所定条件、が成立するときには前記内燃機関に失火が発生していないと判定し、
（２）前記所定条件が成立しないとき、前記内燃機関に失火が発生したと判定する。
【００２５】
前述したように、クランクシャフトの回転する角速度ωの一時的な上昇により第２の角速度変化量Δω2 が大きな負の値となったとき、回転変動量ΔＮＥは大きな正の値となる。これは、前述の（３）式における角速度「ωn-2 」がその前後の気筒における角速度よりも比較的大きくなることに起因している。一方、失火が発生して回転変動量ΔＮＥの値が大きくなるのは、（３）式における角速度「ωn 」がその前後の気筒における角速度よりも比較的小さくなることに起因している。
【００２６】
よって、角速度ωn を含む第１の角速度変化量Δω1 の大きさ（絶対値）が、角速度ωn-2 を含む第２の角速度変化量Δω2 の大きさ（絶対値）以上であるときは、本来検出すべき「失火」が原因である蓋然性が高いと言える。これに対し、第１の角速度変化量Δω１ の大きさ（絶対値）が、第２の角速度変化量Δω2 の大きさ（絶対値）よりも小さいときは、角速度ωn-2 を取得した時点において発生した角速度の一時的な上昇が原因である蓋然性が高いと言える。
【００２７】
そこで、本判定装置は、回転変動量ΔＮＥの値を大きな正の値とする２つの因子（角速度ωn-2 及び角速度ωn ）について、いずれの因子が支配的であるかを第１の角速度変化量Δω1 と第２の角速度変化量Δω2 とを比較して判断する（下式（４）及び（５）を参照。）。
｜Δω1 ｜ ＜ ｜Δω2 ｜                                            （４）
即ち、
｜ωn-1 −ωn ｜ ＜ ｜ωn-3 −ωn-2 ｜                              （５）
【００２８】
例えば、所定閾値ΔＮＥthが「正」の値として設定されている場合、角速度ωn-2 を成分に含む第２の角速度変化量Δω2 は、その値が「負」の値の場合（負の符号を有する場合）には、回転変動量ΔＮＥを大きくする因子として作用する。即ち、第２の角速度変化量Δω2 が負の値の場合（負の符号を有する場合）には、回転変動量ΔＮＥを所定閾値ΔＮＥthの値を超える方向に向かわせる。逆に言えば、第２の角速度変化量Δω2 は、その値が「正」の場合（正の符号を有する場合）には、むしろ回転変動量ΔＮＥを減じる因子として作用する。
【００２９】
そこで、本判定装置は、上記（４）式の条件に加えて、第２の角速度変化量Δω2 が任意の気筒における回転変動量ΔＮＥの値を所定閾値を超える方向に向かわせる符号を有していることを所定条件として設定する。具体的に言えば、回転変動量ΔＮＥが上記（３）式にて定義される場合（第１の角速度変化量から第２の角速度変化量を減じる場合）には、第２の角速度変化量の符号が所定閾値ΔＮＥthの符号と異なっていることが所定条件として設定される。反対に、回転変動量ΔＮＥが第２の角速度変化量から第１の角速度変化量を減じた値として定義される場合には、第２の角速度変化量の符号が所定閾値ΔＮＥthの符号と同じになっていることが所定条件として設定される。本判定装置は、この所定条件が成立するときには、任意の気筒における「回転変動量ΔＮＥが所定閾値ΔＮＥthを超えていたとしても内燃機関に失火が発生していない」と判定する。
【００３０】
このようにして、失火判定部は、「回転変動量ΔＮＥが所定閾値ΔＮＥthを超えている原因が、本来検出すべき失火によるものなのか、或いは過去に発生した角速度変化量Δωの増大に起因するものなのか否か」を判断して失火の発生を判定することができる。従って、本発明装置によれば、機関回転速度の一時的な上昇の影響を受けて、失火が発生していないにもかかわらず失火が発生したと誤判定することを防止することができる。
【００３１】
本発明装置において、前記失火判定部は、前記所定条件が成立するときには、前記任意の気筒における前記回転変動量を前記所定閾値を超えない値に置換して前記失火判定を実行してもよい。
【００３２】
失火判定に用いられる所定閾値は、内燃機関の回転速度及び負荷に基づいて定められることが多い。更に、この所定閾値は、本判定装置を搭載する車両の種類（車種）毎にも変更される可能性がある。
【００３３】
そこで、本発明装置において、前記失火判定部は、前記所定条件が成立するときには、前記任意の気筒における前記回転変動量を「０」に置換して前記失火判定を実行するようにしてもよい。
【００３４】
この態様によれば、回転変動量を確実にそのときの所定閾値よりも小さい値にすることができる。
【００３５】
本発明の他の目的、他の特徴及び付随する利点は、以下の図面を参照しつつ記述される本発明の各実施形態についての説明から容易に理解されるであろう。
【図面の簡単な説明】
【００３６】
【図１】図１は、本発明の実施形態に係る「失火判定装置」が適用された内燃機関の概略構成図である。
【図２】図２は、本発明の実施形態に係る「失火判定装置」の作動を説明するタイムチャートである。
【図３】図３は、図１に示したＣＰＵが実行する「回転変動量取得ルーチン」を示したフローチャートである。
【図４】図４は、図１に示したＣＰＵが実行する「失火判定ルーチン」を示したフローチャートである。
【図５】図５は、本発明の実施形態の一の変形例に係る「失火判定装置」の作動を説明するタイムチャートである。
【図６】図６は、本発明の実施形態の他の変形例に係る「回転変動量取得ルーチン」を示したフローチャートである。
【図７】図７は、本発明の実施形態の他の変形例に係る「失火判定ルーチン」を示したフローチャートである。
【図８】図８は、従来技術における失火判定方法を説明するタイムチャートである。
【図９】図９は、従来技術において失火が誤検出される理由を説明するタイムチャートである。
【発明を実施するための形態】
【００３７】
＜実施形態＞
以下、図面を参照しながら本発明の実施形態に係る失火判定装置（以下、「本判定装置」とも称呼する。）について説明する。
【００３８】
（構成）
本判定装置は、図１に示した内燃機関１０に適用される。機関１０は、火花点火式の４サイクル・ピストン往復動型・Ｖ型６気筒・ガソリン内燃機関である。機関１０は、機関本体部２０及び吸排気系統４０を含んでいる。
【００３９】
機関本体部２０は、シリンダヘッド２１、シリンダブロック２２、燃料噴射弁２３、点火装置２４、吸気弁２５、排気弁２６、ピストン２７、コネクティングロッド２８、クランクシャフト２９、タイミングロータ３１、クランクケース３２、吸気カム３３及び排気カム３４を含んでいる。
【００４０】
機関本体部２０には、シリンダヘッド２１、シリンダブロック２２及びピストン２７によって燃焼室３５が形成される。機関本体部２０には、シリンダヘッド２１の吸気側に吸気ポート３６が形成される。吸気ポート３６は燃焼室３５に連通している。機関本体部２０には、シリンダヘッド２１の排気側に排気ポート３７が形成される。排気ポート３７は燃焼室３５に連通している。
【００４１】
燃料噴射弁２３は、吸気ポート３６に燃料を噴射するようになっている。点火装置２４は火花発生部を燃焼室３５内に露呈するようにしてシリンダヘッド２１に配設されている。点火装置２４は、イグナイタ、イグニッションコイル及び点火プラグを含んでいる。吸気弁２５は、吸気カム３３が回転すると、吸気カム３３のカムノーズに追従して燃焼室３５と吸気ポート３６との連通部を開放したり遮断したりするように往復動する。排気弁２６は、排気カム３４が回転すると、排気カム３４のカムノーズに追従して燃焼室３５と排気ポート３７との連通部を開放したり遮断したりするように往復動する。
【００４２】
クランクシャフト２９はクランクケース３２内に収容されているコネクションロッド２８を介してピストン２７に連結され、ピストン２７の往復動に従って回転するようになっている。
【００４３】
タイミングロータ３１はクランクシャフト２９の端部に配設され、クランクシャフト２９と一体になって回転するようになっている。タイミングロータ３１はその外周面に３０°おきに形成された外歯３１ａを備えている。タイミングロータ３１の外歯３１ａには製造誤差等の機械的な寸法誤差が含まれる。よって、後述するクランクポジションセンサ５１から出力されるタイミングロータの回転同期信号には、３６０°ＣＡ周期のばらつきが検出される傾向がある。
【００４４】
吸排気系統４０は、内部に吸気通路を形成する吸気通路部４１、スロットルバルブ４２及び内部に排気通路を形成する排気通路部４３を含んでいる。吸気通路部４１は吸気ポート３６に連通している。排気通路部４３は排気ポート３７に連通している。
【００４５】
スロットルバルブ４２は、吸気通路部４１に配設され、図示しないスロットルモータにより駆動されるようになっている。スロットルバルブ４２は、後述する電子制御装置５０にて算出され且つスロットルモータへと出力されるモータ制御量に応じて開度が変更されるようになっている。このスロットルバルブ４２の開度に応じて吸気通路部４１へ導入される吸入空気量が調整される。
【００４６】
吸気ポート３６へ燃料噴射弁２３から噴射された燃料は、吸気通路部４１内の吸入空気とともに混合気を形成する。機関１０の吸気行程において吸気弁２５が開弁すると、混合気が燃焼室３５に導入される。燃焼室３５に導入された混合気は、圧縮行程において圧縮された後、所定の時期において点火装置２４によって点火されて燃焼・爆発する。即ち、膨張行程が開始する。燃焼後の排ガスは、排気行程において排気弁２６が開弁することによって排気通路部４３に排出される。これら一連の行程（吸気、圧縮、膨張及び排気からなる燃焼サイクル）が６つの気筒において次々に実行されるので、クランクシャフト２９は連続して回転する。機関１０の点火は、第１気筒＃１、第２気筒＃２、第３気筒＃３、第４気筒＃４、第５気筒＃５及び第６気筒＃６の順に行われる。
【００４７】
電子制御装置（ＥＣＵ）５０は、周知のマイクロコンピュータを含む電子回路であり、ＣＰＵ、ＲＯＭ、ＲＡＭ、バックアップＲＡＭ（スタティックＲＡＭ又は不揮発性メモリ）及びインターフェース等を含む。電子制御装置５０は、燃料噴射弁２３、点火装置２４及びスロットルモータ等と電気的に接続されている。
【００４８】
電子制御装置５０は、ＣＰＵからの指示に応じて、燃料噴射弁２３及び点火装置２４等のアクチュエータに指示（駆動）信号を送出するようになっている。更に、電子制御装置５０は、クランクポジションセンサ５１、エアフローメータ５２及び運転状態量検出センサ５３等と電気的に接続されており、各センサからの信号を受信（入力）するようになっている。
【００４９】
クランクポジションセンサ５１は、クランクシャフト２９の回転位置を検出するためのセンサである。クランクポジションセンサ５１は、タイミングロータ３１との間に所定のエアギャップＧを形成するようにしてクランクケース３２内に配置される。クランクシャフト２９の回転に伴ってタイミングロータ３１が回転すると、外歯３１ａの接近と離間とに応じてエアギャップＧの大きさが変化する。このため、クランクポジションセンサ５１内の図示しないコイルを通過する磁束が増減してコイルに起電力が発生する。この起電力の向きは外歯３１ａの接近時と離間時において互いに逆向きとなるので、交流状の信号となる。
【００５０】
クランクポジションセンサ５１は、更に、図示しない波形整形器を備えており、この波形整形器によって上記交流状の信号を所定のパルス信号に整形して出力する。即ち、クランクポジションセンサ５１は外歯３１ａの通過に同期したパルス信号を出力するようになっている。なお、タイミングロータ３１としては、その外歯が１０°おきに形成されたものが適用されることもある。この場合、クランクポジションセンサ５１のパルス信号出力は、電子制御装置５０にて分周され、３０°ＣＡ毎のパルス出力に変換されるようになっている。
【００５１】
エアフローメータ５２は吸気通路部４１であって、スロットルバルブ４２よりも吸気上流側の位置に配設される。エアフローメータ５２は吸気通路部４１を流れる吸入空気量を検出する。電子制御装置５０は、エアフローメータ５２の出力信号に基づいて単位時間当たりの吸入空気量Ｇａを算出する。
【００５２】
運転状態量検出センサ５３は、アクセルペダル操作量Ａｃｃｐを検出するアクセルペダル操作量センサ、吸気通路部４１内であってスロットルバルブ４２の下流位置における吸気圧力Ｐｍを検出する吸気圧センサ、機関１０が搭載された車両のエアコンディショナの作動／非作動状態を検出するエアコンセンサ、機関１０が搭載された車両のシフトレバー操作の有無を検出するシフトレバーセンサ等を含む。
【００５３】
（作動）
次に、本判定装置の作動について説明する。本判定装置は、機関回転速度ＮＥの変化の程度を示す量である「回転変動量」に基づいて失火が発生したか否かを判定する。先ず、この「回転変動量」の定義について説明する。
【００５４】
この「回転変動量」は、前述した特許文献１と同様に、先ず、各気筒の膨張行程において、圧縮上死点ＴＤＣからＴＤＣ後３０°ＣＡまでの回転所要時間、３０°ＣＡ所要時間Ｔ３０を取得する。
【００５５】
次に、本判定装置は、取得した３０°ＣＡ所要時間Ｔ３０から角速度ωn を算出する。なお、本実施形態において、「n 」は現在気筒であることを示し、「n-1 」は現在気筒の直前に膨張行程にあった気筒であることを示している。角速度ωn は次式のように表される。つまり、角速度ωn は、失火が生じている場合には、正常な燃焼・爆発が生じている場合にくらべて小さな値となる。
ωn ＝３０／Ｔ３０                                                  （６）
【００５６】
角速度変化量Δωは、任意の気筒を基準にして点火が約１２０°ＣＡ前に行われる気筒（即ち、任意の気筒の直前に膨張行程を迎えていた気筒）における角速度ωk-1 と、任意の気筒における角速度ωk と、の差分値として次式にて定義される。
Δω＝ωk-1 −ωk                                                   （７）
【００５７】
特に、現在膨張行程を迎えている気筒（現在気筒）を基準にして点火が約１２０°ＣＡ前に行われる気筒（即ち、現在気筒の直前に膨張行程を迎えていた気筒）における角速度ωn-1 と、現在気筒における角速度ωn と、の差分値として定義される各速度変化量Δωは、「第１の角速度変化量Δω1 」と称呼される。第１の角速度変化量Δω1 は次式のように表される。
Δω1 ＝ωn-1 −ωn                                                 （８）
【００５８】
更に、現在気筒を基準にして点火が約８４０°ＣＡ前に行われる気筒における角速度ωn-7 と、現在気筒を基準にして点火が約７２０°ＣＡ前に行われる気筒（即ち、４サイクルの内燃機関において現在気筒と同一の気筒）における角速度ωn-6 と、の差分値として定義される角速度変化量Δωは、「第２の角速度変化量Δω2 」と称呼される。第２の角速度変化量Δω2 は次式のように表される。
Δω2 ＝ωn-7 −ωn-6                                               （９）
【００５９】
回転変動量ΔＮＥは、第１の角速度変化量Δω1 と第２の角速度変化量Δω2 との差分値として定義される。即ち、回転変動量ΔＮＥは次式のように表される。
ΔＮＥ＝Δω1 − Δω2 ＝（ωn-1 −ωn ）−（ωn-7 −ωn-6 ）       （１０）
【００６０】
このように、本判定装置は、７２０°ＣＡ周期（３６０°ＣＡの整数倍の周期）の角速度変化量Δωの差分として回転変動量ΔＮＥを算出する。つまり、本判定装置は、タイミングロータ３１の同一の外歯を用いて取得した３０°ＣＡ所要時間Ｔ３０から角速度変化量Δωを算出し、更にその差分を回転変動量ΔＮＥとして算出する。従って、例えば、製造誤差によってタイミングロータ３１の外歯３１ａのピッチが正確に等間隔とはなっていなかったとしても、算出される回転変動量ΔＮＥはタイミングロータ３１の製造誤差の影響を受けない。その結果、本判定装置は回転変動量ΔＮＥを正確に取得することができる。
【００６１】
更に、本発明装置は、７２０°ＣＡの周期（クランクシャフト２９が２回転する周期）にて角速度変化量Δωの差分を算出しているので、タイミングロータ３１の製造誤差だけでなく、機関１０の気筒間の製造誤差によるばらつきの影響も排除できるようになっている。
【００６２】
次に、図２を参照しながら本発明の作動を具体的に説明する。図２は、（Ａ）角速度、（Ｂ）角速度変化量、（Ｃ）回転変動量及び（Ｄ）失火判定用回転変動量の関係を示したタイムチャートである。なお、図２は、第１気筒＃１において角速度が上昇している例を示している。
【００６３】
図２から理解されるように、内燃機関はおおむね平均的な回転速度（角速度ωave ）にて運転されているが、何らかの理由により第１気筒＃１が膨張行程を迎えたときに角速度が上昇している（図中（Ａ）のω（３））。
【００６４】
第１の角速度変化量Δω1 は、前述したように現在気筒（第１気筒＃１）の１気筒前の気筒における角速度ωn-1 （ω（２））と現在気筒の角速度ωn （ω（３））との差分値であるから、その絶対値が比較的大きな負の値となる（図中（Ｂ）のｄω３）。第２の角速度変化量Δω2 は、前述したように現在気筒から８４０°ＣＡ前の気筒における角速度ωn-7 と７２０°ＣＡ前の気筒における角速度ωn-6 との差分値である。第２の角速度変化量Δω2 の値は、図２には示されていないが内燃機関が平均的な角速度ωave にて推移していることから略「０」である。回転変動量ΔＮＥは、前述したように第１の角速度変化量Δω1 （ｄω３）と第２の角速度変化量Δω2 （図示せず）との差分値であるから、その絶対値が比較的大きな負の値となる（図中（Ｃ）のｄＮ３）。よって、第１気筒＃１における回転変動量ΔＮＥ（ｄＮ３）は所定閾値ΔＮＥthを超えない。
【００６５】
次に膨張行程を迎える第２気筒＃２において、角速度ωn （ω（４））はまだ平均の角速度ωave に回復しておらず、平均的な角速度ωave よりも高い値となっている。このとき、角速度変化量Δω（ｄω４）は比較的小さな正の値となり、回転変動量ΔＮＥ（ｄＮ４）も同様に比較的小さな正の値となる。この場合、第２気筒＃２における回転変動量ΔＮＥ（ｄＮ４）は所定閾値ΔＮＥthを超えない。
【００６６】
次に膨張行程を迎える第３気筒＃３において、角速度ωn （ω（５））は略平均的な角速度ωave に回復している。このとき角速度変化量Δω（ｄω５）は比較的小さな正の値となる。よって、第３気筒＃３における回転変動量ΔＮＥ（ｄＮ５）は比較的小さな正の値となり、所定閾値ΔＮＥthを超えない。
【００６７】
このようにして、次に、再び第１気筒＃１が膨張行程を迎えるとき、角速度ωn （ω（９））は略平均の角速度ωave であり、その直前の気筒（第６気筒＃６）における角速度ωn-1 （ω（８））も略平均的な角速度ωaveである。よって、このときの角速度変化量Δω（ｄω９）の値は略「０」となる。更に、このときの回転変動量ΔＮＥ（ｄＮ９）は、現在気筒における角速度変化量を第１の角速度変化量Δω1 （ｄω９）として、現在気筒から７２０°ＣＡ前の気筒において算出された角速度変化量を第２の角速度変化量Δω2 （ｄω３）として算出される。このときの第２の角速度変化量Δω2 （ｄω３）はその絶対値が比較的大きい負の値である。よって、このときの回転変動量ΔＮＥ（ｄＮ９）は比較的大きな正の値となり、所定閾値ΔＮＥthを超える。従って、もし、算出された回転変動量ΔＮＥに基づいて失火判定が行われると、第１気筒＃１において失火が発生していないにもかかわらず、失火が発生したと判定されてしまう。
【００６８】
そこで、次に、本判定装置は、失火判定に用いられる「失火判定用回転変動量ΔＮＥmd」を算出するために、第１の角速度変動量Δω1 と第２の角速度変化量Δω2 とが以下の２つの関係（所定条件）のいずれをも満たすか否かを判定する。
【００６９】
（条件１）第１の角速度変化量Δω1 の大きさが第２の角速度変化量Δω2 の大きさより小さい。即ち、
｜Δω1 ｜ ＜ ｜Δω2 ｜                                            （１１）
【００７０】
（条件２）第２の角速度変化量Δω2 が、膨張行程を迎えている気筒における回転変動量ΔＮＥの値を所定閾値ΔＮＥthを超える方向に向かわせる符号を有している。本例の場合、所定閾値ΔＮＥthは正の値であるから、「所定閾値ΔＮＥthを超える方向」とは、回転変動量ΔＮＥの値を正方向に増加させる方向である。つまり、本例において、第２の角速度変化量Δω2 が「回転変動量ΔＮＥの値を正方向に増加させる」ことができるのは、第２の角速度変化量Δω2 が負の符号を有しているときである。つまり、条件２は次式にて表される。
Δω2 ＜ ０                                                         （１２）
【００７１】
従って、この場合、「所定条件」（条件１且つ条件２）は次式にて表すことができる。
｜Δω1｜ ＜ −Δω2                                                （１３）
【００７２】
本例（図２に示した例）の場合、第１の角速度変化量Δω1 （ｄω９）と第２の角速度変化量Δω2 （ｄω３）とは（１３）式に示した関係を満たしている。よって、本判定装置は、現在気筒（第１気筒＃１）における回転変動量ΔＮＥの値を「０」に置換して、失火判定用回転変動量ΔＮＥmdとする（図中（Ｄ）のｄｍ９）。上記条件（（１３）式に示す条件）に基づいて判定することができる理由は次の通りである。
【００７３】
角速度ωn （ω（９））を含む第１の角速度変化量Δω1 （ｄω９）の大きさ（絶対値）が、角速度ωn-6 （ω（３））を含む第２の角速度変化量Δω2 （ｄω９）を符号反転した−Δω2 よりも小さいとき（即ち、（１３）式を満たすとき）は、角速度ωn-6 取得時における角速度ωn-6 （ω（３））の一時的な上昇が回転変動量ΔＮＥの増加の主要因であると言える。よって、このときは「失火が発生していない」蓋然性が高いと考えられる。これに対し、第１の角速度変化量Δω1 の大きさ（絶対値）が、第２の角速度変化量Δω2 を符号反転した−Δω2 以上であるとき（即ち、（１３）式を満たさないとき）は、「本来検出すべき失火によって回転変動量ΔＮＥの値が増加した」蓋然性が高いと考えられる。このように、失火判定に用いられる失火判定用回転変動量ΔＮＥmdを算出することができる。
【００７４】
本判定装置は、後で説明する失火判定ルーチンに、算出された失火判定用回転変動量ΔＮＥmdを適用することによって、失火が発生しないにもかかわらず失火が発生したと誤判定しない失火判定を行うことができる。
【００７５】
（実際の具体的作動）
次に、本判定装置の具体的作動について説明する。電子制御装置５０のＣＰＵは、機関１０の任意の気筒のクランク角度ＣＡが圧縮上死点ＴＤＣに達したときに図３にフローチャートにより示した「回転変動量取得ルーチン」をその任意の気筒に対して実行する。
【００７６】
従って、何れかの気筒のクランク角度ＣＡがその気筒の圧縮上死点ＴＤＣに達すると、ＣＰＵは図３のステップ３００から処理を開始してステップ３１０に進み、以下のステップ３１０〜ステップ３４０の処理を順に実行し、ステップ３５０に進む。
【００７７】
ステップ３１０：ＣＰＵは３０°ＣＡ所要時間Ｔ３０（任意の気筒のクランク角度ＣＡがＴＤＣからＴＤＣ後３０°ＣＡまで回転するのに要する時間）を取得する。
ステップ３２０：ＣＰＵは上記（６）式に従って現在気筒に対する角速度ωn を取得する。
ステップ３３０：ＣＰＵは上記（７）式に従って現在気筒に対する角速度変化量Δωを取得する。
ステップ３４０：ＣＰＵは上記（１０）式に従って現在気筒に対する回転変動量ΔＮＥを取得する。
【００７８】
なお、ＣＰＵはステップ３２０〜ステップ３４０にて取得した角速度ωn 、角速度変化量Δω及び回転変動量ΔＮＥを現在気筒の気筒番号と関連付けながらＲＡＭに格納する。
【００７９】
その後、ＣＰＵはステップ３５０にて第１の角速度変化量Δω1 と第２の角速度変化量Δω2 とが上記（１３）式の条件（｜Δω1 ｜＜−Δω2 ）を満足するか否かを判定する。「前記仮定条件」によれば、（１３）式を満足する。従って、ＣＰＵはステップ３５０にて「Ｙｅｓ」と判定してステップ３６０に進み、失火検出判定用回転変動量ΔＮＥmdの値を「０」に設定して、ステップ３９５に進んで本ルーチンを一旦終了する。
【００８０】
また、電子制御装置５０のＣＰＵは、機関１０の任意の気筒のクランク角度ＣＡが圧縮上死点ＴＤＣ後６０°ＣＡに達したときに図４にフローチャートにより示した「失火判定ルーチン」をその任意の気筒に対して実行する。
【００８１】
従って、何れかの気筒のクランク角度ＣＡがその気筒の圧縮上死点ＴＤＣ後６０°ＣＡに達すると、ＣＰＵは図４のステップ４００から処理を開始してステップ４１０に進み、失火が発生しているか否かを判定するための「実行条件」が成立しているか否かを判定する。
【００８２】
失火判定にあたっては、機関回転速度ＮＥが比較的安定となるような状態が望ましい。従って、実行条件としては、例えば、エアコンディショナの作動／非作動が切り換えられてから所定時間が経過していること及びシフトレバーが操作されてから所定時間が経過していること等が挙げられる。また、フューエルカット中及び極低温（−１０℃未満）時には、失火判定を実行しないことになっている。
【００８３】
実行条件が成立していなければ、ＣＰＵはステップ４１０にて「Ｎｏ」と判定し、ステップ４９５に直接進んで本ルーチンを一旦終了する。一方、判定実行条件が成立していると、ＣＰＵは次に述べる処理を実行する。以下、実行条件が成立し続けると仮定し且つ場合分けをしながら説明を続ける。
【００８４】
（場合１）失火判定用回転変動量ΔＮＥmdが所定閾値ΔＮＥth以下である場合。
ＣＰＵは、ステップ４１０にて「Ｙｅｓ」と判定してステップ４２０に進み、総判定回数カウンタＣtotal をカウントアップする。総判定回数カウンタＣtotal は、イグニッション・キー・スイッチがオフからオンへと変更されたときに別途実行される図示しないイニシャルルーチンにおいて「０」に設定されるようになっている。総判定回数カウンタＣtotal は、本ルーチンによる失火の有無を判定する処理がなされた回数を示す。
【００８５】
次に、ＣＰＵはステップ４３０に進み、図３に示した「回転変動量取得ルーチン」にて取得された失火判定用回転変動量ΔＮＥmdが所定閾値ΔＮＥthよりも大きいか否かを判定する。前述した仮定によれば、失火判定用回転変動量ΔＮＥmdは所定閾値ΔＮＥth以下である。従って、ＣＰＵはステップ４３０にて「Ｎｏ」と判定してステップ４５０に直接進み、総判定回数カウンタＣtotal の値が「２０００」以上であるか否かを判定する。
【００８６】
このとき、総判定回数カウンタＣtotal の値が「２０００」未満であると、ＣＰＵはステップ４５０にて「Ｎｏ」と判定し、ステップ４９５に直接進んで本ルーチンを一旦終了する。その後、本ルーチンが実行されたとき、ステップ４１０の実行条件が成立する毎にステップ４２０にて総判定回数カウンタＣtotal がカウントアップされる。
【００８７】
（場合２）失火判定用回転変動量ΔＮＥmdが所定閾値ΔＮＥthを超える場合。
この場合、ＣＰＵは、ステップ４２０にて総判定回数カウンタＣtotal をカウントアップした後、ステップ４３０にて「Ｙｅｓ」と判定してステップ４４０に進み、失火回数カウンタＣmis をカウントアップする。失火回数カウンタＣmis は上述したイニシャルルーチンにおいて「０」に設定されるようになっている。従って、ステップ４３０にて「Ｙｅｓ」と判定される毎に、失火回数カウンタＣmis の値は「０」から「１」ずつ増大して行く。
【００８８】
その後、ＣＰＵは、ステップ４５０に進み、総判定回数カウンタＣtotal の値が「２０００」未満であると、ＣＰＵはステップ４５０にて「Ｎｏ」と判定し、ステップ４９５に直接進んで本ルーチンを一旦終了する。その後、本ルーチンが実行されたとき、ステップ４１０の実行条件が成立する毎にステップ４２０にて総判定回数カウンタＣtotal がカウントアップされる。
【００８９】
以上のような処理（「場合１」及び「場合２」）が繰り返し行われると、総判定回数カウンタＣtotal の値が「２０００」に到達する。この場合、ＣＰＵは、ステップ４５０に進んだとき、そのステップ４５０にて「Ｙｅｓ」と判定してステップ４６０に進み、失火回数カウンタＣmis の値が規定の異常回数（例えば「３０」）以上であるか否かを判定する。
【００９０】
失火回数カウンタＣmis の値が規定の異常回数以上である場合、ＣＰＵはステップ４６０にて「Ｙｅｓ」と判定してステップ４７０に進み、「失火異常（失火発生）」と判定する。このとき、ＣＰＵは車室内にある警告ランプを点灯させ、バックアップＲＡＭに失火が発生した旨を書き込む。続いて、ＣＰＵはステップ４８０に進み、総判定回数カウンタＣtotal 及び失火回数カウンタＣmis の値を「０」に設定して、ステップ４９５に進んで本ルーチンを一旦終了する。
【００９１】
一方、失火回数カウンタＣmis の値が規定の異常回数未満である場合、ＣＰＵはステップ４６０にて「Ｎｏ」と判定してステップ４８０に直接進み、その後、ステップ４９５に進んで本ルーチンを一旦終了する。このとき、ＣＰＵはバックアップＲＡＭに「失火異常ではないと判定した旨」を書き込んでもよい。
【００９２】
以上、説明したように、本判定装置は、
多気筒（例えば、６気筒）内燃機関の各気筒（第１気筒＃１〜第６気筒＃６）の膨張行程においてクランクシャフト２９が第１クランク角から第２クランク角までの所定回転角度幅を回転するのに要する時間（回転所要時間Ｔ３０）に基づいてクランク角速度ωn を取得するとともに（図３のステップ３２０）前記膨張行程が連続する２つの気筒間の前記クランク角速度ωn の差分である角速度変化量Δωを取得する（図３のステップ３３０）角速度変化量取得部と、
前記各気筒のうちの任意の気筒の膨張行程において前記角速度変化量取得部により取得される第１の前記角速度変化量Δω1 と、前記任意の気筒の膨張行程に対して前記クランクシャフト２９のＮ回転前（Ｎは正の整数、この場合Ｎ＝２）膨張行程を迎えていた気筒について前記角速度変化量取得部にて取得されていた第２の前記角速度変化量Δω2 と、の差分である回転変動量ΔＮＥを取得する（図３のステップ３４０）回転変動量取得部と、
前記回転変動量取得部において取得された前記回転変動量ΔＮＥが所定閾値ΔＮＥthを超える場合、
（１）前記第２の角速度変化量Δω2 の大きさ｜Δω2 ｜が前記第１の角速度変化量Δω1 の大きさ｜Δω1 ｜よりも大きく、且つ、前記第２の角速度変化量Δω2 が前記任意の気筒における前記回転変動量の値ΔＮＥを前記所定閾値ΔＮＥthを超える方向に向かわせる符号を有するという所定条件、が成立するとき（図３のステップ３５０にて「Ｙｅｓ」と判定されるとき）には前記内燃機関に失火が発生していないと判定（図３のステップ３６０にて失火判定用回転変動量ΔＮＥmdを「０」に設定した後、図４のステップ４３０にて「Ｎｏ」と判定）し、
（２）前記所定条件が成立しないとき（図３のステップ３５０にて「Ｎｏ」と判定されるとき）、前記内燃機関に失火が発生したと判定（図３のステップ３７０にて失火判定用回転変動量ΔＮＥmdを回転変動量ΔＮＥに設定した後、図４のステップ４３０にて「Ｙｅｓ」と判定）する失火判定部と、
を備える。
【００９３】
本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。
【００９４】
（変形例１）
前述の（７）式にて定義した角速度変化量Δωは、現在気筒の一つ前の気筒における角速度ωk-1 から現在気筒における角速度ωk を引いた値として算出されたが、これに限ることはなく、次式に示すように、現在気筒における角速度ωk から現在気筒の一つ前の気筒における角速度ωk-1 を引いたものでもよい。この場合の角速度変化量Δω’は次式のように表される。
Δω’＝ ωk − ωk-1                                               （１４）
【００９５】
この場合、第１の角速度変化量Δω1’、第２の角速度変化量Δω2’及び回転変動量ΔＮＥ’は次式のように表される。
ΔＮＥ’＝Δω1’−Δω2’＝（ωn − ωn-1 ）−（ωn-6 − ωn-7 ）  （１５）
以下、図５を参照しながら説明する。この場合、図５に示したように、任意の気筒（第３気筒＃３）にて失火が発生すると、その任意の気筒における回転変動量ΔＮＥ’（ｄＮ５）は負の大きな値となる（前述の実施形態における回転変動量ΔＮＥとは符号が反転した関係となる）。よって、判定閾値ΔＮＥth’は「負」の値となり、回転変動量ΔＮＥ’が判定閾値ΔＮＥth’を下回ったときに失火が発生したと判定する。
【００９６】
この場合、前述した「条件２」の本変形例への適用については、次のとおりである。所定閾値ΔＮＥth’は「負」の値であるから、「所定閾値ΔＮＥth’を超える方向」とは、回転変動量ΔＮＥ’の値を負方向に減少させる方向である。つまり、本例において、第２の角速度変化量Δω2’ が「回転変動量ΔＮＥ’の値を負方向に減少させる」ことができるのは、第２の角速度変化量Δω2’ が正の符号を有しているときである。つまり、条件２は次式にて表される。
Δω2 ＞ ０                                                         （１６）
よって、この場合、図３に示したフローチャートにおけるステップ３５０の判定条件は、次式に置き換えられる。
｜Δω1 ｜＜ Δω2                                                  （１７）
【００９７】
（変形例２）
前述の実施形態においては、第１の角速度変化量及び第２の角速度変化量が（１３）式の所定条件を満たすとき、回転変動量ΔＮＥの値を「０」に置換していたが、置換する値は、そのときの判定閾値を超えない値であれば「０」以外の値であってもよい。
【００９８】
（変形例３）
前述の実施形態において、所定条件（|Δω1 | ＜ -Δω2 ）が成立するときには、そのときの回転変動量ΔＮＥを「０」に置換した失火判定用回転変動量ΔＮＥmdを算出し、この失火判定用回転変動量ΔＮＥmdと所定閾値ΔＮＥthを比較することによって失火判定を実行していた。本発明は、これに代えて、上記所定条件が成立するときには、回転変動量ΔＮＥが所定閾値ΔＮＥthを超えていたとしても失火が発生していないと判定するようにしてもよい。以下に、この場合（変形例）の具体的作動について説明する。
【００９９】
電子制御装置５０のＣＰＵは、機関１０の任意の気筒のクランク角度ＣＡが圧縮上死点ＴＤＣに達したときに図６にフローチャートにより示した「回転変動量取得ルーチン」をその任意の気筒に対して実行する。
【０１００】
従って、何れかの気筒のクランク角度ＣＡがその気筒の圧縮上死点ＴＤＣに達すると、ＣＰＵは図６のステップ６００から処理を開始してステップ６１０に進み、以下のステップ６１０〜ステップ６４０の処理を順に実行し、ステップ６９５に進んで本ルーチンを一旦終了する。
【０１０１】
ステップ６１０：ＣＰＵは３０°ＣＡ時間Ｔ３０（任意の気筒のクランク角度ＣＡがＴＤＣからＴＤＣ後３０°ＣＡまで回転するのに要する時間）を取得する。
ステップ６２０：ＣＰＵは上記（６）式に従って現在気筒に対する角速度ωn を取得する。
ステップ６３０：ＣＰＵは上記（７）式に従って現在気筒に対する角速度変化量Δωを取得する。
ステップ６４０：ＣＰＵは上記（１０）式に従って現在気筒に対する回転変動量ΔＮＥを取得する。
【０１０２】
なお、ＣＰＵはステップ３２０〜ステップ３４０にて取得した角速度ωn 、角速度変化量Δω及び回転変動量ΔＮＥを現在気筒の気筒番号と関連付けながらＲＡＭに格納する。
【０１０３】
また、電子制御装置５０のＣＰＵは、機関１０の任意の気筒のクランク角度ＣＡが圧縮上死点ＴＤＣ後６０°ＣＡに達したときに図７にフローチャートにより示した「失火判定ルーチン」をその任意の気筒に対して実行する。
【０１０４】
従って、何れかの気筒のクランク角度ＣＡがその気筒の圧縮上死点ＴＤＣ後６０°ＣＡに達すると、ＣＰＵは図４のステップ７００から処理を開始してステップ７１０に進み、失火が発生しているか否かを判定するための「実行条件」が成立しているか否かを判定する。
【０１０５】
前述した実行条件が成立していなければ、ＣＰＵはステップ７１０にて「Ｎｏ」と判定し、ステップ７９５に直接進んで本ルーチンを一旦終了する。一方、判定実行条件が成立していると、ＣＰＵは次に述べる処理を実行する。以下、実行条件が成立し続けると仮定し且つ場合分けをしながら説明を続ける。
【０１０６】
（場合１）回転変動量ΔＮＥが所定閾値ΔＮＥth以下である場合。
ＣＰＵは、ステップ７１０にて「Ｙｅｓ」と判定してステップ７２０に進み、総判定回数カウンタＣtotal をカウントアップする。
【０１０７】
次に、ＣＰＵはステップ７３０に進み、図６に示した「回転変動量取得ルーチン」にて取得された回転変動量ΔＮＥが所定閾値ΔＮＥthよりも大きいか否かを判定する。前述した仮定によれば、回転変動量ΔＮＥは所定閾値ΔＮＥth以下である。従って、ＣＰＵはステップ７３０にて「Ｎｏ」と判定してステップ７６０に直接進み、総判定回数カウンタＣtotal の値が「２０００」以上であるか否かを判定する。
【０１０８】
このとき、総判定回数カウンタＣtotal の値が「２０００」未満であると、ＣＰＵはステップ７６０にて「Ｎｏ」と判定し、ステップ７９５に直接進んで本ルーチンを一旦終了する。その後、本ルーチンが実行されたとき、ステップ７１０の実行条件が成立する毎にステップ７２０にて総判定回数カウンタＣtotal がカウントアップされる。
【０１０９】
（場合２）回転変動量ΔＮＥが所定閾値ΔＮＥthを超え、所定条件（|Δω1 | ＜ -Δω2 ）が成立している場合。
この場合、ＣＰＵは、ステップ７２０にて総判定回数カウンタＣtotal をカウントアップした後、ステップ７３０にて「Ｙｅｓ」と判定してステップ７４０に進み、（１３）式にて示された所定条件が成立しているか否かを判定する。仮定によれば、所定条件が成立しているので、ＣＰＵはステップ７４０にて「Ｙｅｓ」と判定して、ステップ７５０に進み、失火回数カウンタＣmis をカウントアップする。失火回数カウンタＣmis は別途実行されるイニシャルルーチンにおいて「０」に設定されるようになっている。従って、ステップ７４０にて「Ｙｅｓ」と判定される毎に、失火回数カウンタＣmis の値は「０」から「１」ずつ増大して行く。
【０１１０】
その後、ＣＰＵは、ステップ７６０に進み、総判定回数カウンタＣtotal の値が「２０００」未満であると、ＣＰＵはステップ７６０にて「Ｎｏ」と判定し、ステップ７９５に直接進んで本ルーチンを一旦終了する。その後、本ルーチンが実行されたとき、ステップ７１０の実行条件が成立する毎にステップ７２０にて総判定回数カウンタＣtotal がカウントアップされる。
【０１１１】
（場合３）回転変動量ΔＮＥが所定閾値ΔＮＥthを超え、所定条件（|Δω1 | ＜ -Δω2 ）が成立していない場合。
この場合、ＣＰＵは、ステップ７２０にて総判定回数カウンタＣtotal をカウントアップした後、ステップ７３０にて「Ｙｅｓ」と判定してステップ７４０に進み、所定条件が成立していないので「Ｎｏ」と判定する。その後、ＣＰＵはステップ７６０に直接進み、総判定回数カウンタＣtotal の値が「２０００」未満であると、ＣＰＵはステップ７６０にて「Ｎｏ」と判定し、ステップ７９５に直接進んで本ルーチンを一旦終了する。その後、本ルーチンが実行されたとき、ステップ７１０の実行条件が成立する毎にステップ７２０にて総判定回数カウンタＣtotal がカウントアップされる。
【０１１２】
以上のような処理（「場合１」、「場合２」及び「場合３」）が繰り返し行われると、総判定回数カウンタＣtotal の値が「２０００」に到達する。この場合、ＣＰＵは、ステップ７６０に進んだとき、そのステップ７６０にて「Ｙｅｓ」と判定してステップ７７０に進み、失火回数カウンタＣmis の値が規定の異常回数（例えば「３０」）以上であるか否かを判定する。
【０１１３】
失火回数カウンタＣmis の値が規定の異常回数以上である場合、ＣＰＵはステップ７７０にて「Ｙｅｓ」と判定してステップ７８０に進み、「失火異常（失火発生）」と判定する。このとき、ＣＰＵは車室内にある警告ランプを点灯させ、バックアップＲＡＭに失火が発生した旨を書き込む。続いて、ＣＰＵはステップ７９０に進み、総判定回数カウンタＣtotal 及び失火回数カウンタＣmis の値を「０」に設定して、ステップ７９５に進んで本ルーチンを一旦終了する。
【０１１４】
一方、失火回数カウンタＣmis の値が規定の異常回数未満である場合、ＣＰＵはステップ７７０にて「Ｎｏ」と判定してステップ７９０に直接進み、その後、ステップ７９５に進んで本ルーチンを一旦終了する。
【０１１５】
（その他の変形例）
本判定装置は、６気筒以外の機関（例えば、４気筒、１２気筒等）の内燃機関に適用することも可能である。
【０１１６】
更に、本実施形態においては、回転所要時間をクランクシャフトが３０°回転するのに要する時間Ｔ３０として求めているが、回転所要時間をクランクシャフトが「３０°以外の角度」だけ回転するのに要する時間として求めてもよい。
【０１１７】
更に、回転所要時間は、６気筒の内燃機関の場合、クランクシャフトが「圧縮上死点後Ｘ°ＣＡからＹ°ＣＡ（Ｘ，Ｙは、いずれも０〜１２０°ＣＡ未満）」まで回転するのに要する時間であってもよい。また、４気筒の内燃機関の場合、クランクシャフトが「圧縮上死点後Ｘ°ＣＡからＹ°ＣＡ（Ｘ，Ｙは、いずれも０〜１８０°ＣＡ未満）」まで回転するのに要する時間であってもよい。即ち、回転所要時間は、任意の気筒の膨張行程におけるクランク角速度に相関を有する値であって同任意の気筒において正常燃焼が行われているときと、失火が発生したときと、の差異が判別できる値であればよい。
【０１１８】
所定閾値ΔＮＥthは、一定値であってもよく、機関回転速度ＮＥ及び機関負荷（例えば、吸気圧力Ｐｍ、アクセルペダル操作量Ａｃｃｐ、吸入空気量Ｇａ等）の少なくとも一つに基づいて変化する値であってもよい。
【０１１９】
総判定回数カウンタＣtotal の値は「２０００」に限ることはなく、「２０００以外」の値であってもよい。
【０１２０】
総判定回数をカウントしなくてもよい。即ち、図４又は図７に示した失火判定ルーチンにおいて、ステップ４２０又はステップ７２０及びステップ４５０又はステップ７６０を省略してもよい。
【符号の説明】
【０１２１】
２０…機関本体部、２３…燃料噴射弁、２４…点火装置、２７…ピストン、２９…クランクシャフト、３１…タイミングロータ、３５…燃焼室、４１…吸気通路部、４２…スロットル弁、４３…排気通路部、５０…電子制御装置、５１…クランクポジションセンサ。
【図１】
2016217148.tif 000003
【図２】
2016217148.tif 000004
【図３】
2016217148.tif 000005
【図４】
2016217148.tif 000006
【図５】
2016217148.tif 000007
【図６】
2016217148.tif 000008
【図７】
2016217148.tif 000009
【図８】
2016217148.tif 000010
【図９】
2016217148.tif 000011