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