(57)【要約】【課題】クランク角センサの機械的ばらつきや失火に伴う回転速度の揺り戻しがあっても、失火を高精度に検出できる多気筒内燃機関の失火検出装置を提供する。【解決手段】サイクルが内燃機関の出力軸の１回転の整数倍だけずれている気筒間における気筒別回転速度の差分の変動量である第１変動量Δω１nを、例えば４気筒機関では、Δω１n＝（ωn−ωn-2）−（ωn-1−ωn-3）として算出し、更に、第１変動量Δω１nの変動量である第２変動量Δω２nを、Δω２n＝Δω１n−Δω１n-1として算出する。そして、第２変動量Δω２nが判定値−Ａよりも小さく、かつ、前々回の値である第２変動量Δω２n-2が判定値Ａよりも大きい場合に、失火発生を判定する。【選択図】図２
2009293501.tif 000002
【特許請求の範囲】
【請求項１】
多気筒内燃機関の出力軸の気筒別回転速度を検出する気筒別回転速度検出手段と、
サイクルが前記出力軸の１回転の整数倍だけずれている気筒間における気筒別回転速度の変化を検出する検出手段と、
前記変化の変動量を第１変動量として算出する第１変動量算出手段と、
前記第１変動量の変動量を第２変動量として算出する第２変動量算出手段と、
前記第２変動量に基づいて失火の有無を判定する失火判定手段と、
を含んで構成された多気筒内燃機関の失火検出装置。
【請求項２】
多気筒内燃機関の出力軸の気筒別回転速度を検出する気筒別回転速度検出手段と、
サイクルが前記出力軸の１回転の整数倍だけずれている気筒間における気筒別回転速度の変化を検出する検出手段と、
前記変化の変動量を第１変動量として算出する第１変動量算出手段と、
前記第１変動量の変動量を第２変動量として算出する第２変動量算出手段と、
前記第１変動量及び前記第２変動量に基づいて失火の有無を判定する失火判定手段と、
を含んで構成された多気筒内燃機関の失火検出装置。
【請求項３】
多気筒内燃機関の出力軸の気筒別回転速度を検出する気筒別回転速度検出手段と、
サイクルが前記出力軸の１回転の整数倍だけずれている気筒間における気筒別回転速度の変化を検出する検出手段と、
前記変化の変動量を第１変動量として算出する第１変動量算出手段と、
前記第１変動量の変動量を第２変動量として算出する第２変動量算出手段と、
前記第２変動量に基づいて失火の有無を判定する失火判定手段と、
前記失火判定手段によって失火の発生が判定されていない状態で、前記多気筒内燃機関の空燃比がリーン側に偏っている場合に、複数気筒における毎回失火を判定する複数気筒失火判定手段と、
を含んで構成された多気筒内燃機関の失火検出装置。
【請求項４】
前記複数気筒失火判定手段が、気筒別に燃料噴射量及び／又は点火時期を補正し、該補正に伴って発生した前記気筒別回転速度の変動に基づいて、複数の失火気筒を特定することを特徴とする請求項３記載の多気筒内燃機関の失火検出装置。
【請求項５】
前記複数気筒失火判定手段が、一部気筒において一時的に燃料カットを行い、該燃料カットに伴って発生した前記気筒別回転速度の変動に基づいて、複数の失火気筒を特定することを特徴とする請求項３記載の多気筒内燃機関の失火検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多気筒内燃機関において失火を検出する失火検出装置に関する。
【背景技術】
【０００２】
特許文献１には、クランク軸の回転に応じた回転信号ＮＥに基づいて気筒別クランク角速度変動量を求め、該気筒別クランク角速度変動量と所定の失火判定値とを比較して失火発生を検出する失火検出装置が開示されており、詳しくは、クランク角７２０deg或いは３６０deg或いは気筒間の行程位相差分のクランク角度の整数倍だけ離れた気筒の前記気筒別クランク角速度変動量の差分を演算し、該差分の演算結果を個々に失火判定値と比較することで、失火発生を検出するものである。
【特許文献１】特開平１０−０５４２９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上記のようにクランク軸の回転に応じた回転信号ＮＥに基づいて失火発生を検出する場合には、失火に伴って回転速度の揺り戻しが発生するため、これらの影響を避けて失火を高精度に検出することが望まれる。
しかし、上記従来の失火検出装置では、低回転域において、失火に伴って発生する回転速度の揺り戻しによって失火を誤診断してしまうことがあった。
【０００４】
本発明は上記問題点に鑑みなされたものであり、失火に伴う回転速度の揺り戻しがあっても、失火を高精度に検出できる多気筒内燃機関の失火検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
そのため、本発明に係る多気筒内燃機関の失火検出装置は、サイクルが多気筒内燃機関の出力軸の１回転の整数倍だけずれている気筒間における気筒別回転速度の変化を検出し、前記変化の変動量を第１変動量として算出し、更に、前記第１変動量の変動量を第２変動量として算出し、前記第２変動量に基づいて失火の有無を判定することを特徴とする。
【発明の効果】
【０００６】
上記発明によると、サイクルが多気筒内燃機関の出力軸の１回転の整数倍だけずれている気筒間における気筒別回転速度の変化を検出すれば、該変化は、気筒毎の発生トルクの差（燃焼の有無）による気筒別回転速度の差を高精度に示すことになる。
更に、前記変化の変動量を第１変動量として算出し、更に、前記第１変動量の変動量を第２変動量として算出すると、第２変動量は、第１変動量の変化を強調することになり、失火による回転速度の揺り戻しと区別しての失火検出が可能になる。
【０００７】
従って、失火に伴う回転速度の揺り戻しがあっても、失火の発生を高精度に検出することができる。
【発明を実施するための最良の形態】
【０００８】
以下に本発明の実施の形態を説明する。
図１は、本願発明に係る失火検出装置が適用される車両用の多気筒内燃機関のシステム図である。
図１に示す内燃機関１０１の吸気管１０２には、電子制御スロットル装置１０３が介装されている。
【０００９】
前記電子制御スロットル装置１０３を通過した空気は、吸気バルブ１０４を介して、燃焼室１０５内に吸入される。
前記燃焼室１０５内の燃焼後のガス（排気ガス）は、排気バルブ１０６を介して排気管１０７に排出され、前記排気管１０７に介装されたフロント触媒コンバータ１０８及びリア触媒コンバータ１０９で浄化された後、大気中に放出される。
【００１０】
前記吸気バルブ１０４及び排気バルブ１０６は、それぞれ、吸気カムシャフト１１０Ａ，排気カムシャフト１１０Ｂによって開閉駆動される。
また、各気筒の吸気バルブ１０４上流側の吸気ポート１１１には、燃料噴射弁１１２が設けられる。
前記燃料噴射弁１１２は、エンジンコントロールユニット（以下、ＥＣＵと略す）１１３から出力される噴射パルス信号によって開弁駆動されると、燃料を吸気バルブ１０４に向けて噴射する。
【００１１】
尚、燃料噴射弁１１２が燃焼室１０５内に直接燃料を噴射する方式の筒内直接噴射式の内燃機関であっても良い。
燃焼室１０５内に空気と共に吸引された燃料は、点火プラグ１１４による火花点火によって着火燃焼する。
各点火プラグ１１４には、それぞれにパワートランジスタを内蔵したイグニッションコイル１１５が設けられており、前記ＥＣＵ１１３は、前記パワートランジスタのオン・オフを制御することによって、イグニッションコイル１１５の通電開始・通電遮断タイミングを制御し、各気筒の点火時期（点火進角値）をそれぞれ独立に制御する。
【００１２】
前記ＥＣＵ１１３には、アクセル開度ＡＰＳを検出するアクセルペダルセンサ１１６、内燃機関１０１の吸入空気流量ＱＡを検出するエアフローセンサ１１５、ドライブプレートに取り付けたシグナルプレートに形成された突起部等の被検出部を検出することで、クランクシャフト１２１（出力軸）が単位クランク角度（例えば５〜１０deg）だけ回転する毎にポジション信号ＰＯＳを出力するクランク角センサ１１７、スロットルバルブ１０３ｂの開度ＴＶＯを検出するスロットルセンサ１１８、内燃機関１０１の冷却水温度Ｔｗを検出する水温センサ１１９、吸気カムシャフト１１０Ａの回転に同期して気筒判別信号ＰＨＡＳＥを出力するカムセンサ１２０、排気中の酸素濃度に基づいて空燃比ＡＦ（排気空燃比）を検出する空燃比センサ（又は酸素センサ）１２２などからの信号が入力される
前記クランク角センサ１１７において、クランク角で１８０deg間隔の２箇所で、前記単位クランク角に相当する角度の数倍（例えば３倍）の周期でポジション信号ＰＯＳが出力されるように前記被検出部を設けてあり、前記ＥＣＵ１１３は、前記ポジション信号ＰＯＳの出力周期が長くなる部分を検出することで、クランク角１８０deg毎の基準クランク角位置ＲＥＦを検出する。
【００１３】
前記内燃機関１０１は、直列４気筒であり、前記基準クランク角位置ＲＥＦは、気筒間の行程位相差（燃料噴射間隔・点火間隔）である１８０deg毎に検出されることになり、前記基準クランク角位置ＲＥＦを基準に、各気筒における燃料噴射タイミング，点火タイミングなどが検出される。
また、前記ＥＣＵ１１３は、前記基準クランク角位置ＲＥＦの周期を計測して、内燃機関１０１の回転速度ＮＥ（rpm）を算出する。
【００１４】
尚、クランク角１８０deg毎に基準クランク角信号ＲＥＦを出力する基準クランク角センサを、前記ポジション信号ＰＯＳを出力するクランク角センサ１１７と共に備えるようにすることができ、その場合、前記ポジション信号ＰＯＳの出力周期はクランクシャフト１２１の１回転において全て均一とすることができる。
また、前記ＥＣＵ１１３は、機関回転速度ＮＥに基づいて失火を検出する機能をソフトウェア的に有しており、係る失火の検出機能を、図２のフローチャートに従って詳細に説明する。
【００１５】
図２のフローチャートに示すルーチンは、気筒別回転速度（気筒別の角速度）の検出周期毎（角速度が検出されるタイミング毎）に割り込み実行されるようになっている。
そして、まず、ステップＳ１００１では、各気筒の膨張行程に影響されて変化する角速度ωnを燃焼毎（気筒別に）検出する（気筒別回転速度検出手段）。
前記角速度ωn（気筒別回転速度）は、各気筒の上死点後１１０deg（ＡＴＤＣ１１０deg）から上死点後１７０deg（ＡＴＤＣ１７０deg）までの６０degだけ回転するのに要した時間Ｔを検出することで算出される。
【００１６】
但し、前記角速度ωn（気筒別回転速度）を求める角度領域を、各気筒のＡＴＤＣ１１０deg〜ＡＴＤＣ１７０degに限定するものではなく、失火による角速度の変化を検出するのに最適な角度領域として適宜設定される。
本実施形態の４気筒機関１０１では、各気筒の１サイクル（排気行程→吸気行程→圧縮行程→膨張行程）がクランクシャフト１２１の２回転で完了し、点火順が＃１→＃３→＃２→＃４であって、各気筒の行程（サイクル）は相互に１８０degだけずれており、＃１気筒の圧縮行程（ピストン下死点→ピストン上死点）が終わると＃３気筒の圧縮行程が開始し、＃３気筒の圧縮行程が終わると＃２気筒の圧縮行程が開始し、＃２気筒の圧縮行程が終わると＃４気筒の圧縮行程が開始する。
【００１７】
従って、＃１気筒の各行程と＃２気筒の各行程とは、クランクシャフト（出力軸）１２１の１回転分（３６０deg）だけずれており、同様に、＃３気筒の各行程と＃４気筒の各行程とは、クランクシャフト１２１の１回転分（３６０deg）だけずれている。
そして、前記クランク角センサ１１７のシグナルプレートにおいて、＃１気筒の圧縮上死点後１１０degから１７０degまでに相当する角度領域Ａと、＃２気筒の圧縮上死点後１１０degから１７０degまでに相当する角度領域Ａとは一致することになり、同様に、＃３気筒の圧縮上死点後１１０degから１７０degまでに相当する角度領域Ｂと、＃４気筒の圧縮上死点後１１０degから１７０degまでに相当する角度領域Ｂとは一致することになる（図３参照）。
【００１８】
前記ステップＳ１００１における気筒別の角速度ωnの検出は、詳細には、図４，図５のフローチャートに示すようにして行われる。
まず、各気筒の上死点後１１０degの位置が、クランク角センサ１１７からのポジション信号ＰＯＳに基づいて検出されると、図４のフローチャートに示すルーチンが割り込み実行され、ステップＳ１１０１において、そのときのフリーランカウンタの値が、上死点後１１０degの時点での値として記憶される。
【００１９】
一方、各気筒の上死点後１７０degの位置が、クランク角センサ１１７からのポジション信号ＰＯＳに基づいて検出されると、図５のフローチャートに示すルーチンが割り込み実行される。
そして、ステップＳ１２０１では、そのときのフリーランカウンタの値が、上死点後１７０degの時点での値として記憶される。
【００２０】
次のステップＳ１２０２では、前記上死点後１１０degでのフリーランカウンタの値と、上死点後１７０degでのフリーランカウンタの値との差として、上死点後１１０degの時点からクランク角で６０degだけ回転して上死点後１７０degになるまでに要した時間Ｔを算出する。
ステップＳ１２０３では、前記クランク角で６０degだけ回転するのに要した時間Ｔから角速度ωnを算出する。
【００２１】
前記角速度ωnの算出結果は、算出順に（時系列に）複数記憶されるようになっており、最新の算出結果はωnであり、前回（１８０deg前）の算出結果はωn-1であり、前々回（３６０deg前）の算出結果はωn-2であり、該ωn-2よりも１８０deg前（５４０deg前）の算出結果はωn-3であり、新たに角速度ωnが算出される毎に、それまでの最新値ωnが前回値ωn-1として記憶され、それまでの前回値ωn-1が前々回値ωn-2として更新記憶されるようになっている。
【００２２】
ステップＳ１００１で角速度ωnを算出すると、ステップＳ１００２（検出手段及び第１変動量算出手段）では、下式に従って、第１変動量Δω１nを算出する。
『Δω１n＝（ωn−ωn-2）−（ωn-1−ωn-3）』
上式において、差分「ωn−ωn-2」は、最新値ωnと３６０deg前の値ωn-2との差であって、クランクシャフト１２１の１回転分だけずれた計測結果同士の差であり、双方は、クランク角センサ１１７のシグナルプレートの同じ角度範囲の周期を計測した結果に基づいて算出されるから、例えば、クランク角センサ１１７（シグナルプレート）の機械的ばらつきによって、ωn及びωn-2を求めたときの角度が６０degからずれていたとしても、その影響は、ωn及びωn-2に等しく付加される。
【００２３】
従って、差分「ωn−ωn-2」は、クランク角センサ１１７（シグナルプレート）の機械的ばらつきの影響が排除され、実際の角速度ωnの違いを高精度に示すことになる。
同様に、差分「ωn-1−ωn-3」は、１８０deg前の値ωn-1と５４０deg前の値ωn-3との差であって、クランクシャフト１２１の１回転分だけずれた計測結果同士の差であり、双方は、クランク角センサ１１７のシグナルプレートの同じ角度範囲の経過時間を計測した結果である。
【００２４】
従って、差分「ωn-1−ωn-3」も、クランク角センサ１１７（シグナルプレート）の機械的ばらつきの影響が排除され、実際の角速度の違いを高精度に示すことになる。
前記第１変動量Δω１nは、クランクシャフト１２１の１回転分だけずれた気筒間における角速度（気筒別回転速度）の差分の変動量を示すが、前述のように、各差分は、クランク角センサ１１７（シグナルプレート）の機械的ばらつきの影響が排除されているから、第１変動量Δω１nもクランク角センサ１１７（シグナルプレート）の機械的ばらつきの影響を受けない値である。
【００２５】
ステップＳ１００２では、上記のように、サイクルがクランクシャフト１２１（出力軸）の１回転の整数倍だけずれている気筒間における気筒別回転速度の差分を算出し、該差分の変動量を第１変動量Δω１nとして算出しており、換言すれば、サイクルがクランクシャフト１２１（出力軸）の１回転の整数倍だけずれている気筒間における気筒別回転速度の変化を検出し、該変化の変動量を第１変動量Δω１nとして算出する。
【００２６】
前記第１変動量Δω１nを算出すると、次のステップＳ１００３（第２変動量算出手段）では、下式に従って、第１変動量Δω１nの変動量である第２変動量Δω２nを算出する。
『Δω２n＝Δω１n−Δω１n-1』
上式で、第１変動量Δω１nは今回ステップＳ１００２で算出された値であり、第１変動量Δω１n-1は前回ステップＳ１００２の処理を実行したとき（１８０deg前）に算出された値である。
【００２７】
ステップＳ１００４では、今回ステップＳ１００３で算出された第２変動量Δω２nが判定値−Ａ（＜０）よりも小さいか否かを判断する（Δω２n＜−Ａ又はΔω２n≦−Ａであるか否かを判断する）。
そして、第２変動量Δω２nがマイナスの値でかつその絶対値がＡよりも大きい場合には、ステップＳ１００５へ進む。
【００２８】
前記判定値−Ａは、予め記憶された一定値とすることができる他、そのときの機関運転条件（例えば機関負荷及び／又は機関回転速度など）に応じて可変に設定することができる。
前記第２変動量Δω２nは、失火がない場合には零近傍の値となり、失火が発生することで、マイナス方向とプラス方向とに振れることになるが、その振れ幅が、そのときの運転条件によって変化するので、失火発生に伴う第２変動量Δω２nの振れ幅が大きくなる運転条件であるときほど、前記判定値−Ａの絶対値を大きくすれば、失火をより高精度に検出できることになる。
【００２９】
また、判定値−Ａを機関運転条件（例えば機関負荷及び／又は機関回転速度）に応じて可変に設定する代わりに、前記差分「ωn−ωn-2」，「ωn-1−ωn-3」、第１変動量Δω１n、第２変動量Δω２nのうちの少なくとも１つを機関運転条件（例えば機関負荷及び／又は機関回転速度）に応じて補正し、一定の判定値−Ａと、補正が加えられた第２変動量Δω２nとを比較させるようにすることができる。
【００３０】
ステップＳ１００５では、前記第２変動量Δω２nの前々回値（３６０deg前の値）Δω２n-2が、判定値Ａ（＞０）よりも大きいか否かを判断する（Δω２n＞Ａ又はΔω２n≧Ａであるか否かを判断する）。
そして、第２変動量Δω２n-2がプラスの値でかつその絶対値がＡよりも大きい場合、即ち、第２変動量Δω２nが判定値−Ａよりも小さく、かつ、第２変動量Δω２n-2が判定値Ａよりも大きい場合には、ステップＳ１００６へ進み、失火発生を判定し、更には、Δω２n-3を算出したタイミングで膨張行程（爆発行程）であった気筒を失火気筒として特定する。
【００３１】
但し、失火の発生のみを判定し、失火気筒を特定しない構成とすることができる。
上記ステップＳ１００４〜ステップＳ１００６の部分が、失火判定手段としての機能を示す。
ここで、前記判定値Ａは、前記判定値−Ａと絶対値が同じプラスの値であり、前記判定値−Ａが一定値であれば一定値とし、前記判定値−Ａが機関運転状態に応じて可変に設定される構成であれば、同様に機関運転状態に応じて可変に設定させる。
【００３２】
更に、第２変動量Δω２nと比較させる判定値（＜０）と、第２変動量Δω２n-2と比較させる判定値（＞０）とを、絶対値の異なる値に設定することができる。
ここで、前記第１変動量Δω１nは、図６に示すように、失火が発生することで、マイナス側に変化するが、失火に伴う回転速度の揺り戻しによっても、失火に基づくレベルと略同等レベルのマイナス値を示してしまう。
【００３３】
このため、第１変動量Δω１nがマイナスの判定値を下回ったか否かに基づいて失火の有無を判定する構成とすると、失火と失火に伴う揺り戻しとを区別することができず、失火発生を誤って判定してしまう可能性がある。
これに対し、前記第２変動量Δω２nは、前記第１変動量Δω１nの変動量を示すから、第１変動量Δω１nが零を跨いでマイナスからプラスに変化する場合、及び、第１変動量Δω１nが零を跨いでプラスからマイナスに変化する場合に、該変化が強調され、より大きな変化幅を示すことになる。
【００３４】
従って、失火によって回転速度が落ち込み、その反動で大きく回転上昇して再度回転速度が定常レベル付近に戻ることで、第２変動量Δω２nは、明確なプラス方向への変化とその直後のマイナス方向への変化を示すことになり、前記プラス方向への変化とその直後のマイナス方向への変化を判定すべく、前記判定値Ａ，−Ａを適合することで失火を検出できる。
【００３５】
一方、失火に伴う反動で回転上昇して再度回転速度が定常レベル付近に戻り、定常レベルを行き過ぎて更に回転低下する場合、定常レベル付近からの更なる回転低下であるため、第１変動量Δω１nの変化量が比較的小さく、第２変動量Δω２nのマイナス方向への変化は、失火の反動で大きく回転上昇してから再度回転速度が定常レベル付近にまで低下するときとは、その変化量が明確に異なる。
【００３６】
従って、前記第２変動量Δω２nに基づいて失火検出を行わせるようにすれば、クランク角センサ１１７の機械的ばらつきに影響されることなく、しかも、失火に伴う揺り戻しによって失火を誤って検出してしまうことがなく、失火発生を高精度に検出することができる。
失火に伴う揺り戻しを失火と誤判定すると、実際には失火していない気筒が失火気筒として判定されることで、正常に燃焼している気筒に対して燃料噴射を停止させるなどの無用なフェイルセーフ処理がなされたり、失火頻度が過大に算出されることで、不当に機関運転が制限されたり、更には、運転者などに、実情とは異なる診断情報を提供してしまうという問題が生じる。
【００３７】
これに対し、上記実施形態では、失火と失火に伴う揺り戻しとを区別でき、揺り戻しが発生してもこれに基づいて失火気筒を誤判定することがないため、正常に燃焼している気筒に対して失火気筒に対するフェイルセーフ処理が適用されてしまうことがなく、また、不当に機関の運転が制限されることがなく、更に、運転者などに、信頼性の高い診断情報を提供できることになる。
【００３８】
ところで、上記の第２変動量Δω２nのみに基づく失火検出は、各気筒間における燃焼ばらつきが比較的少なく、かつ、不規則に失火が発生する場合に有効であるものの、気筒間における燃焼ばらつきが大きくなったり、単気筒が毎回失火したりすると、失火の揺り戻しを区別することが困難になって、失火の判定精度が低下する可能性がある。
そこで、気筒間における燃焼ばらつきが比較的大きく、また、単気筒が毎回失火しても、検出精度を維持できるようにした第２実施形態を、図７のフローチャートに従って説明する。
【００３９】
図７のフローチャートにおいて、ステップＳ２００１〜ステップＳ２００３では、前記ステップＳ１００１〜ステップＳ１００３と同様にして、角速度ωn，第１変動量Δω１n，第２変動量Δω２nを算出する。
ステップＳ２００４では、ステップＳ１００４と同様に、第２変動量Δω２nが判定値−Ａよりも小さいか否かを判断する（Δω２n＜−Ａ又はΔω２n≦−Ａであるか否かを判断する）。
【００４０】
尚、前記判定値−Ａの設定についても、前記ステップＳ１００４と同様であるものとする。
ステップＳ２００４において第２変動量Δω２nが判定値−Ａよりも小さいと判断されると、ステップＳ２００５へ進み、第１変動量Δω１n-1が判定値Ｂ（＞０）よりも大きいか否かを判断する（Δω１n-1＞Ｂ又はΔω１n-1≧Ｂであるか否かを判断する）。
【００４１】
前記判定値Ｂも、判定値−Ａと同様に一定値とすることができると共に、機関運転条件（例えば機関負荷及び／又は機関回転速度など）に応じて可変に設定することができる。
尚、判定値Ａの絶対値と判定値Ｂの絶対値との大小関係は、内燃機関の種類や運転条件に応じて特定されるべきものであり、一義的に決められるものではない。
ステップＳ２００５で第１変動量Δω１n-1が判定値Ｂよりも大きいと判断されると、ステップＳ２００６へ進み、前記ステップＳ１００５と同様に、第２変動量Δω２n-2が判定値Ａよりも大きいか否かを判断する（Δω２n＞Ａ又はΔω２n≧Ａであるか否かを判断する）。
【００４２】
尚、前記判定値Ａの設定についても、前記ステップＳ１００５と同様であるものとする。
ステップＳ２００６で第２変動量Δω２n-2が判定値Ａよりも大きいと判断されると、ステップＳ２００７へ進み、第１変動量Δω１n-3が判定値−Ｂ（＜０）よりも小さいか否かを判断する（Δω１n-3＜−Ｂ又はΔω１n-3≦−Ｂであるか否かを判断する）。
【００４３】
前記判定値Ｂと判定値−Ｂとの関係は、前記判定値Ａと判定値−Ａとの関係と同様であるものとする。
即ち、判定値Ｂ及び判定値−Ｂは、一定値であるか又は機関運転条件に応じて可変に設定される値であり、判定値Ｂと判定値−Ｂとを絶対値の異なる値とすることができる。
ステップＳ２００７で第１変動量Δω１n-3が判定値−Ｂよりも小さいと判断された場合、即ち、Δω２n＜−Ａ又はΔω２n≦−Ａで、かつ、Δω１n-1＞Ｂ又はΔω１n-1≧Ｂで、かつ、Δω２n＞Ａ又はΔω２n≧Ａで、かつ、Δω１n-3＜−Ｂ又はΔω１n-3≦−Ｂである場合には、ステップＳ２００８へ進み、失火発生を判定し、更には、Δω１n-3（Δω２n-3）を算出したタイミングで膨張行程（爆発行程）であった気筒を失火気筒として特定する。
【００４４】
第２実施形態では、ステップＳ２００４〜ステップＳ２００８の部分が失火判定手段としての機能を示す。
上記のように、第２実施形態は、第１変動量Δω１nと第２変動量Δω２nとから失火検出を行うものであり、第１実施形態における失火判定条件に、Δω１n-1＞Ｂ又はΔω１n-1≧Ｂで、かつ、Δω１n-3＜−Ｂ又はΔω１n-3≦−Ｂであることを付加しており、第１実施形態で失火判定がなされる状態であっても、更に、第１変動量Δω１が予め定めた条件を満たさないと、失火判定がなされないようになっている。
【００４５】
付加した判定条件のうち、Δω１n-3＜−Ｂ又はΔω１n-3≦−Ｂは、失火による角速度ωnの落ち込みを判断するものであり、Δω１n-1＞Ｂ又はΔω１n-1≧Ｂは、失火に伴う回転の揺り戻しによる角速度ωnの増大変化を判断するものである。
即ち、第１変動量Δω１nと第２変動量Δω２nとの双方が失火時の変化パターンを示す場合に、失火判定を行うものであり、これにより、第２変動量Δω２nが気筒間の燃焼ばらつきに影響されて失火時と同様な変化パターンを示したとしても、失火が誤って検出されることを防止できる。
【００４６】
逆に、第１変動量Δω１nが燃焼ばらつきなどに影響されて失火時の変化パターンを示したとしても、第２変動量Δω２nが失火パターンに沿って変化しなければ、失火が誤って検出されることがない。
前記第２変動量Δω２nは、第１変動量Δω１nが零を跨いで変化する場合、その変化を強調する値となるため、例えば、Δω１n-1がΔω１n-1＞Ｂ又はΔω１n-1≧Ｂの条件を満たしていないプラスの値であっても、Δω１nがマイナス側に大きく変化すると、Δω２n＜−Ａ又はΔω２n≦−Ａの条件を満たすようになってしまう可能性がある。
【００４７】
同様に、Δω１n-3がΔω１n-3＜−Ｂ又はΔω１n-3≦−Ｂを満たしていないマイナスの値であっても、Δω１n-2がプラス側に大きく変化すると、Δω２n＞Ａ又はΔω２n≧Ａの条件を満たすようになってしまう可能性がある。
このため、第２変動量Δω２nのみに基づく失火検出では、燃焼ばらつきによって失火が誤って診断される可能性がある。
【００４８】
しかし、上記のように、Δω１n-1＞Ｂ又はΔω１n-1≧Ｂで、かつ、Δω１n-3＜−Ｂ又はΔω１n-3≦−Ｂであることを失火判定の条件として付加すれば、燃焼ばらつきによって、Δω２n＜−Ａ又はΔω２n≦−Ａで、かつ、Δω２n＞Ａ又はΔω２n≧Ａの条件を満たすようになっても、失火発生が誤って判定されてしまうことを回避できる。
また、燃焼ばらつきによって、失火時のパターンで第２変動量Δω２nが繰り返し変化する場合であっても、第１変動量Δω１nの変化パターンが失火時のパターンでなければ、失火を判定することがないので、毎回の単気筒失火と、燃焼ばらつきによる一定パターンでの角速度の変動とを区別でき、単気筒の毎回失火を高精度に検出できる。
【００４９】
ところで、本実施形態の４気筒機関１０１において、＃１気筒及び＃２気筒、又は、＃３気筒及び＃４気筒が毎回失火すると、差分「ωn−ωn-2」「ωn-1−ωn-3」の一方は失火気筒間での差分、他方は正常燃焼気筒間での差分を求めることになり、第１変動量Δω１n及び第２変動量Δω２nが変動しなくなり、実際には失火が発生しているのに、失火発生が判定されないことになってしまう。
【００５０】
即ち、差分「ωn−ωn-2」「ωn-1−ωn-3」は、相互にサイクル（行程）がクランクシャフト１２１の１回転分だけずれている気筒間での差分を求めるから、例えば、＃１気筒及び＃２気筒が毎回失火すると、差分「ωn−ωn-2」「ωn-1−ωn-3」の一方は、＃１気筒と＃２気筒との角速度の差になり、他方が＃３気筒と＃４気筒との角速度の差になり、失火気筒と正常燃焼気筒との間での角速度の差が求められなくなってしまう。
【００５１】
そこで、＃１気筒及び＃２気筒、又は、＃３気筒及び＃４気筒が毎回失火していることを検出できるようにした第３実施形態を、図８及び図９のフローチャートに従って説明する。
尚、以下では、＃１気筒及び＃２気筒、又は、＃３気筒及び＃４気筒のように、サイクル（行程）がクランクシャフト１２１の１回転分だけずれている２つの気筒の組み合わせを、表裏気筒と称するものとする。
【００５２】
図８のフローチャートにおいて、ステップＳ３００１〜ステップＳ３００８では、第２実施形態のステップＳ２００１〜ステップＳ２００８と同様な処理を行う。
但し、ステップＳ３００１〜ステップＳ３００８の部分を、第１実施形態のステップＳ１００１〜ステップＳ１００６の部分に置き換えることができる。即ち、第３実施形態の＃１気筒及び＃２気筒、又は、＃３気筒及び＃４気筒の毎回失火の検出は、第２変動量Δω２nのみから失火検出を行う構成と、第１変動量Δω１n及び第２変動量Δω２nから失火検出を行う構成との双方に適用できるものである。
【００５３】
ステップＳ３００１〜ステップＳ３００８の処理で失火が検出されなかった場合には、ステップＳ３００９の表裏気筒の失火判定（複数気筒失火判定手段）に進む。
前記ステップＳ３００９における処理の詳細は、図９のフローチャートに示してある。
まず、ステップＳ３１０１では、前記第１変動量Δω１nが零近傍の値（−Ｄ＜Δω１n＜Ｄ：Ｄ＜＜Ａ，Ｂ）であるか否かを判別する。
【００５４】
そして、前記第１変動量Δω１nが零近傍の値であれば、ステップＳ３１０２へ進み、第２変動量Δω２nが零近傍の値（−Ｄ＜Δω１n＜＋α：Ｄ＜＜Ａ，Ｂ）であるか否かを判別する。
尚、上記の零近傍の値とは、気筒間での微小な燃焼ばらつきなどによる第１変動量Δω１n及び第２変動量Δω２nの変動があっても、角速度ωnは安定していると見なすものである。
【００５５】
前記第１変動量Δω１n及び第２変動量Δω２nが零近傍の値である場合には、更に、ステップＳ３１０３へ進み、内燃機関１０１のベース空燃比が目標空燃比よりもリーン側に偏っているか否かを判断する。
前記ベース空燃比とは、空燃比センサ１２２で検出される実際の空燃比を目標に近づけるための燃料噴射量のフィードバック制御を行わない状態での空燃比を示すものであり、前記フィードバック制御中であれば、フィードバック補正値からリーン側への偏りを判断でき、また、前記フィードバック制御のオープン制御状態であれば、空燃比センサ１２２で検出される空燃比から判断できる。
【００５６】
また、ベース空燃比のリーン側への偏りは、４気筒中２気筒が失火している場合に見込まれる空燃比のリーン側へのずれが発生しているか否かを判断するものであり、フィードバック補正値が所定値以上に燃料噴射量の増大補正側にシフトしているか、空燃比センサ１２２で検出される空燃比が所定以上にリーンである場合に、ベース空燃比がリーン側に偏っていると判断する。
【００５７】
内燃機関１０１のベース空燃比がリーン側に偏っていると判断されると、ステップＳ３１０４へ進み、ベース空燃比の変動（前回値と今回値との差）が所定値以下でベース空燃比がリーン側に安定しているか否かを判断する。
リーン側で安定している場合には、ステップＳ３１０５へ進み、ステップＳ３１０１〜ステップＳ３１０４の各条件が全て成立している状態が、判定時間以上継続しているか否かを判断する。
【００５８】
そして、ステップＳ３１０１〜ステップＳ３１０４の各条件が全て成立している状態が、判定時間以上継続している場合には、ステップＳ３１０６へ進み、表裏気筒（＃１気筒及び＃２気筒、又は、＃３気筒及び＃４気筒）の毎回失火を推定する。
表裏気筒が毎回失火している場合には、前記第１変動量Δω１n及び第２変動量Δω２nが零近傍に安定し、ステップＳ３００１〜ステップＳ３００８の処理では、失火が判定されないが、２つの気筒が継続して失火し、失火気筒を通過した空気（酸素）が排気系にそのまま流れて排気中の酸素濃度を増大させることから、排気空燃比が安定してリーン側に偏ることになるため、上記のステップＳ３１０１〜ステップＳ３１０５での判別に基づいて、表裏気筒の毎回失火の発生を推定することができる。
【００５９】
但し、失火以外の原因で空燃比がリーン側に偏っている可能性があり、また、上記の推定では、失火気筒を特定することができないため、ステップＳ３１０７以降では、毎回失火している（点火毎に失火している）表裏気筒を確定するための処理を行う。
ステップＳ３１０７では、図１０に示すように、燃料噴射の順に従って噴射毎に燃料噴射量を前回値よりも増大させ、燃料噴射量を段階的に増大変化させ（空燃比を段階的にリッチ方向に段階的に変化させ）、４気筒すべてについて増量した燃料噴射量での噴射を行わせると、今度は、燃料噴射量を噴射毎に段階的に減じて通常値にまで戻す処理を行うか、及び／又は、点火順に従って点火毎に前回値よりも点火時期を進角補正して、点火時期を段階的に進角変化させ、４気筒すべてについて進角補正した点火時期での点火を行わせると、点火時期を点火毎に段階的に遅角変化させ通常値にまで戻す処理を行う。
【００６０】
ここで、燃料噴射量や点火時期の補正は、気筒毎の発生トルクを変化させる補正であって、燃料噴射量の増量及び／又は点火時期の進角を段階的に進めることで、前回の燃焼気筒よりも今回の燃焼気筒における気筒別回転速度（角速度ωn）が微増変化することになり、逆に燃料噴射量の減量及び／又は点火時期の遅角を段階的に進めることで、前回の燃焼気筒よりも今回の燃焼気筒における気筒別回転速度（角速度ωn）が微減変化することになる。
【００６１】
尚、ステップＳ３１０７は、気筒別の回転速度を強制的に変化させる処理であるから、燃料噴射量・点火時期の補正に代えて、若しくは、燃料噴射量及び／又は点火時期の補正と共に、各気筒の吸入空気量を個別に微小変化させるようにすることができる。
各気筒の吸入空気量を個別に微小変化させる方法としては、気筒別にスロットルバルブを設け、その開度を気筒別に補正する方法や、気筒別に吸気バルブの開特性（バルブリフト量、バルブ作動角、開閉タイミング）を変化させる方法などがある。
【００６２】
ステップＳ３１０８では、前記補正処理が行われている間において順次算出した差分Δωn＝ωn−ωn-2に基づいて、毎回失火している表裏気筒の特定を行う。
例えば、＃１気筒と＃２気筒とが共に毎回失火している場合に、ステップＳ３１０７における補正処理を行うと、図１０に示すように、差分Δωnが変化することになる。
図１０に示す例は、＃１気筒と＃２気筒とが毎回失火している場合を示すから、最初に＃１気筒について燃料噴射量や点火時期の補正を行っても、補正の結果は、＃１気筒の気筒別回転速度（角速度ωn）を増減変化させることにはならず、補正開始前に点火された＃２気筒の気筒別回転速度（角速度ωn）に対する差異が生じることはなく、前記差分Δωnは略零に算出されることになる。
【００６３】
一方、点火順で次の＃３気筒は、正常に着火燃焼している気筒であるから、燃料噴射量及び／又は点火時期を補正すると、補正開始前の＃４気筒の気筒別回転速度（角速度ωn）との対比において気筒別回転速度（角速度ωn）が微増するので、前記差分Δωnは前回における略零の状態からプラス側に増大変化することになる。
更に、次の＃２気筒は、毎回失火気筒であるから、燃料噴射量や点火時期の補正を行っても、気筒別回転速度（角速度ωn）は変化せず、前記差分Δωnにおける比較対象である補正開始後の＃１気筒の気筒別回転速度（角速度ωn）も、補正に呼応する変化を示さなかった値であるから、前記差分Δωnは略零に算出されることになる。
【００６４】
また、次の＃４気筒については、正常に着火燃焼している気筒であり、しかも、前々回の＃３気筒のときよりも、燃料噴射量の増量及び／又は点火時期の進角がより大きくなっているから、前記差分Δωnにおける比較対象である＃３気筒の気筒別回転速度（角速度ωn）よりも、＃４気筒での気筒別回転速度（角速度ωn）がより大きくなり、前記差分Δωnは前回における略零の状態からプラス側に増大変化することになる。
【００６５】
更に、次の＃１気筒からは、燃料噴射量の減量補正及び／又は点火時期の遅角補正が開始されるが、＃１気筒は毎回失火気筒であるから、燃料噴射量の増量補正及び／又は点火時期の進角補正を行っていたときと同様に、前記差分Δωnは略零に算出されることになる。
一方、減量・遅角補正開始後の＃３気筒については、前々回の＃４気筒のときよりも、燃料噴射量の増量分及び／又は点火時期の進角分が減っているために、前々回の＃４気筒の気筒別回転速度（角速度ωn）よりも、気筒別回転速度（角速度ωn）がより小さくなり、前記差分Δωnは前回における略零の状態からマイナス側に減少変化することになる。
【００６６】
減量・遅角補正開始後の＃２気筒については、毎回失火気筒であるから、燃料噴射量の増量補正及び／又は点火時期の進角補正を行っていたときと同様に、前記差分Δωnは略零に算出されることになる。
そして、次の＃４気筒では、燃料噴射量の減量補正及び／又は点火時期の遅角補正を、増量補正及び／又は進角補正時と同じステップ幅で段階的に進めた結果、燃料噴射量及び点火時期が通常値に戻ることになる。
【００６７】
ここで、前記差分Δωnにおける比較対象である＃３気筒の気筒別回転速度（角速度ωn）は、増量分及び／又は進角補正分が残っていた状態での値であるため、燃料噴射量及び点火時期が通常値に戻った状態での＃４気筒の気筒別回転速度（角速度ωn）よりも、＃３気筒の気筒別回転速度（角速度ωn）は高く、前記差分Δωnは前回における略零の状態からマイナス側に減少変化することになる。
【００６８】
以上のように、燃料噴射量及び／又は点火時期の補正を行っても、毎回失火している表裏気筒間で求められる差分Δωnは略零を保持することになる。
一方で、正常に燃焼している表裏気筒間で求められる差分Δωnは、燃料噴射量の増量補正及び／又は点火時期の進角補正を行っている間は、増量補正及び／又は進角補正のステップ幅（該ステップ幅に対応する気筒別回転速度（角速度ωn）の微増変化分）に応じたプラスの値を示し、燃料噴射量の減量補正及び／又は点火時期の遅角補正を行っている間は、減量補正及び／又は遅角補正のステップ幅（該ステップ幅に対応する気筒別回転速度（角速度ωn）の微減変化分）に応じたマイナスの値を示す。
【００６９】
従って、上記特性と実際の差分Δωnの変化とを対比することで、毎回失火している表裏気筒を特定することが可能であり、図１０に示すように、＃１気筒から補正を開始し、全気筒について角速度を増大させる補正を行った後、全気筒について角速度を減少させる補正を行って、＃４気筒で元の状態に戻すようにした場合における具体的な判定条件を以下に示す。
【００７０】
以下の条件（a）〜（h）が全て成立したときには、＃１気筒及び＃２気筒の毎回失火を判定する。但し、以下の条件に示す判定値Ｃ，Ｄは、Ｃ＞＞Ｄである。
（a）：「Δωn＜（≦）−Ｃ」
（b）：「−Ｄ＜（≦）Δωn-1＜（≦）Ｄ」
（c）：「Δωn-2＜（≦）−Ｃ」
（d）：「−Ｄ＜（≦）Δωn-3＜（≦）Ｄ」
（e）：「Δωn-4＞（≧）Ｃ」
（f）：「−Ｄ＜（≦）Δωn-5＜（≦）Ｄ」
（g）：「Δωn-６＞（≧）Ｃ」
（h）：「−Ｄ＜（≦）Δωn-7＜（≦）Ｄ」
上記判定条件のうち、差分Δωnが、判定値−Ｄと判定値Ｄとで挟まれる領域の値であるか否かの判断は、差分Δωnが略零であるか否かを判断するものであり、また、判定値−Ｃを下回るマイナスの値であるか、判定値Ｃを上回るプラスの値であるかの判断は、燃料噴射量及び／又は点火時期の補正に見合った角速度ωnの変化が発生したか否かを判断するものである。
【００７１】
従って、前記判定値Ｄの絶対値は微小値であり、また、判定値Ｃの大きさは、燃料噴射量及び／又は点火時期の補正に見合う角速度の変化幅に基づいて設定される。
また、以下の条件（i）〜（p）が全て成立したときには、＃３気筒及び＃４気筒の毎回失火を判定する。
（i）：「−Ｄ＜（≦）Δωn＜（≦）Ｄ」
（j）：「Δωn-1＜（≦）−Ｃ」
（k）：「−Ｄ＜（≦）Δωn-2＜（≦）Ｄ」
（l）：「Δωn-3＜（≦）−Ｃ」
（m）：「−Ｄ＜（≦）Δωn-4＜（≦）Ｄ」
（n）：「Δωn-5＞（≧）Ｃ」
（o）：「−Ｄ＜（≦）Δωn-6＜（≦）Ｄ」
（p）：「Δωn-7＞（≧）Ｃ」
上記の第３実施形態によると、第１変動量Δω１n及び第２変動量Δω２nに基づいて判定できない、表裏気筒の毎回失火を判定することができ、失火検出の信頼性・検出精度を向上させることができる。
【００７２】
また、第３実施形態では、燃料噴射量や点火時期の補正に伴う気筒別回転速度（角速度ωn）の微小変化に基づいて表裏気筒の毎回失火を判定するので、アイドルを含む内燃機関１０１の低回転領域において、運転者に違和感を与えずに、表裏気筒の特定を行うことができる。
尚、上記条件（a）〜（h）が全て成立したときには、＃１気筒及び＃２気筒の毎回失火を判定し、上記条件（a）〜（h）のうち成立しない条件があった場合に、＃３気筒及び＃４気筒の毎回失火を判定させることができ、逆に、上記条件（i）〜（p）が全て成立したときには、＃３気筒及び＃４気筒の毎回失火を判定し、上記条件（i）〜（p）のうち成立しない条件があった場合に、＃１気筒及び＃２気筒の毎回失火を判定させることができる。
【００７３】
また、燃料噴射量や点火時期の補正を＃１気筒から開始させる必要はなく、また、補正度合いを点火順に従って順次増大又は減少させる必要もなく、更に、燃料噴射量や点火時期の補正を行ったときの第１変動量Δω１n及び／又は第２変動量Δω２nから毎回失火している表裏気筒を特定することが可能である。
即ち、燃料噴射量や点火時期の補正に見合った気筒別回転速度（角速度）の変化を示すか否かで、毎回失火している表裏気筒を特定することができるものであり、具体的な特定方法は適宜設定できる。
【００７４】
次に、別の方法で、毎回失火している表裏気筒を特定する第４実施形態を、図１１のフローチャートに従って説明する。
前記図１１のフローチャートにおいて、ステップＳ４１０１〜ステップＳ４１０６では、前記ステップＳ３１０１〜ステップＳ３１０６と同様に、表裏気筒（＃１気筒及び＃２気筒、又は、＃３気筒及び＃４気筒）の毎回失火が推定される状態であるか否かの判断を行う。
【００７５】
そして、ステップＳ４１０６で表裏気筒の毎回失火を推定すると、ステップＳ４１０７へ進み、特定１気筒の１噴射だけ停止させる処理を行って、その後に算出される第１変動量Δω１n及び第２変動量Δω２nを記憶させる。
次いで、ステップＳ４１０７では、燃料カット後に算出された第１変動量Δω１n及び第２変動量Δω２nに基づいて、毎回失火している表裏気筒を特定する。
【００７６】
例えば、＃３気筒及び＃４気筒が毎回失火している場合を例とすると、係る状態で＃１気筒の燃料噴射を１噴射だけ停止させると（＃１気筒について燃料カットを１噴射分だけ実行すると）、＃１気筒については失火した場合と同様に、気筒別回転速度（角速度ωn）が落ち込むことになる（図１２参照）。
ここで、＃１気筒に対してサイクルがクランクシャフトの１回転分だけずれている＃２気筒については、正常燃焼状態が継続するので、＃１気筒と＃２気筒との間で気筒別回転速度（角速度ωn）に差が生じ、結果、第１変動量Δω１n及び第２変動量Δω２nに変動が生じることになる。
【００７７】
上記第１変動量Δω１n及び第２変動量Δω２nの変動は、＃１気筒に代えて＃２気筒について燃料カットを実行した場合にも同様に生じることになる。
一方、毎回失火している表裏気筒の一方について、燃料噴射を１噴射だけ停止させても、元々失火している気筒であるから、燃料噴射の停止は、気筒別回転速度（角速度ωn）に影響を与えず、第１変動量Δω１n及び第２変動量Δω２nに変動は生じない。
【００７８】
従って、簡易には、燃料カットを実行した１つの気筒の気筒別回転速度（角速度ωn）が落ち込んだか否かを判別し、回転の落ち込みが発生した場合には、当該気筒を含まない表裏気筒が毎回失火していることになり、回転の落ち込みが発生しなかった場合には、当該気筒を含む表裏気筒が毎回失火していると判断できる。
更に、燃料カットに伴う第１変動量Δω１n及び第２変動量Δω２nの変動から、より高精度に毎回失火している表裏気筒を判別するには、以下のような条件を判断させる。
【００７９】
まず、＃１気筒（又は＃２気筒）について１噴射だけ停止させ、その４点火後に（時系列的な４つのデータをサンプリングしてから）、以下の条件（Ｘ）が成立しているか否かを判断する。
（Ｘ）：「Δω２n＜（≦）−Ａ、かつ、Δω１n-1＞（≧Ｂ）、かつ、Δω２n＞（≧）Ａ、かつ、Δω１n-3＜（≦）−Ｂ」
尚、上記条件（Ｘ）は、前記ステップＳ２００４〜ステップＳ２００７の判断と一致するものである。
【００８０】
＃１気筒（又は＃２気筒）について１噴射だけ停止させた結果、第１変動量Δω１n及び第２変動量Δω２nの変動が単気筒失火時の挙動を示し、前記条件（Ｘ）が成立すると判断した場合には、その時点で＃３，＃４気筒の毎回失火を特定しても良いが、更に、失火気筒の特定を確実なものとするために、条件（Ｘ）が成立すると判断した時点から回転変動が収束するのに充分な時間だけ経過してから、今度は、＃３気筒（又は＃４気筒）について１噴射だけ停止させる。
【００８１】
そして、＃３気筒（又は＃４気筒）について１噴射だけ停止させてから、４点火後に以下の条件（Ｙ）が成立しているか否かを判断する。
（Ｙ）：「−Ｄ＜（≦）Δω１n＜（≦）Ｄ、かつ、−Ｄ＜（≦）Δωn-1＜（≦）Ｄ、かつ、−Ｄ＜（≦）Δωn-2＜（≦）Ｄ、かつ、−Ｄ＜（≦）Δωn-3＜（≦）Ｄ」
ここで、前記条件（Ｙ）は、第１変動量Δω１nが継続して零近傍に安定しているか否かを判断するものであり、毎回失火している表裏気筒が＃３気筒及び＃４気筒であれば、燃料カットは角速度ωnに影響せず、第１変動量Δω１n及び第２変動量Δω２nは、零近傍の値を保持することになるから、条件（Ｙ）の成立は、条件（Ｘ）の成立と整合することになり、前記（Ｘ），（Ｙ）の両条件の成立から、毎回失火している表裏気筒が＃３気筒及び＃４気筒であると確定することができる。
【００８２】
但し、＃１又は＃２気筒について燃料カットに基づく前記（Ｘ）の条件を判断することなく、上記（Ｙ）の条件が成立していることのみで、＃３気筒及び＃４気筒の表裏気筒が毎回失火していると判断させることができる。
また、最初に条件（Ｙ）が成立するか否かを判断し、その後、条件（Ｘ）の成立を判定することができる。
【００８３】
一方、毎回失火の表裏気筒が＃１気筒及び＃２気筒であるか否かの判断は、以下のようにして行う。
まず、＃１気筒（又は＃２気筒）について１噴射だけ停止させ、その４点火後に以下の条件（α）が成立しているか否かを判断する。
（α）：「−Ｄ＜（≦）Δω１n＜（≦）Ｄ、かつ、−Ｄ＜（≦）Δωn-1＜（≦）Ｄ、かつ、−Ｄ＜（≦）Δωn-2＜（≦）Ｄ、かつ、−Ｄ＜（≦）Δωn-3＜（≦）Ｄ」
＃１気筒及び＃２気筒が毎回失火している表裏気筒であるとすれば、燃料カットによって気筒別回転速度（角速度ωn）は影響を受けず、第１変動量Δω１nが継続して零近傍の値を保持するはずであり、上記条件（α）が成立する場合には、＃１気筒及び＃２気筒が毎回失火している表裏気筒であるものと判断できる。
【００８４】
次に、＃１気筒及び＃２気筒が毎回失火している表裏気筒であるとの判断を裏付けるために、上記条件（α）の成立を判断してから、回転変動が収束するのに充分な時間だけ待ってから、今度は、＃３気筒（又は＃４気筒）について１噴射だけ停止させ、その４点火後に以下の条件（β）が成立しているか否かを判断する。
（β）：「Δω２n＜（≦）−Ａ、かつ、Δω１n-1＞（≧Ｂ）、かつ、Δω２n＞（≧）Ａ、かつ、Δω１n-3＜（≦）−Ｂ」
＃３気筒（又は＃４気筒）について１噴射だけ停止させた結果、第１変動量Δω１n及び第２変動量Δω２nの変動が単気筒失火時の挙動を示し、前記条件（β）が成立すると、＃１気筒及び＃２気筒が毎回失火している表裏気筒であるものと確定される。
【００８５】
ここでも、条件（α），（β）のうちの一方の成立に基づいて、毎回失火の表裏気筒を＃１気筒及び＃２気筒であると確定させることができ、更に、条件（α），（β）の判断順を逆にすることができる。
上記のように、燃料カットを行って、それに見合う角速度ωnの変化が発生したか否かに基づいて、毎回失火の表裏気筒を確定する構成であれば、第３実施例のように、燃料噴射量や点火時期を補正する場合に比べて、正常に着火燃焼している気筒での角速度変化が、より明確に発生するので、回転変動が現れ難い高回転時であっても、毎回失火している表裏気筒を高精度に特定することができる。
【００８６】
また、高回転時であれば、表裏気筒が毎回失火していて更に燃料カットを行っても、内燃機関１０１が停止してしまうことを回避できるため、第４実施形態の燃料カットに基づく失火表裏気筒の特定を、内燃機関１０１の高回転領域に限定して実行させることができる。
従って、第１変動量Δω１n及び第２変動量Δω２nが零近傍の値を保持し、かつ、空燃比がリーン側に安定していて、表裏気筒の毎回失火の発生が推定されるときに、機関回転速度が低回転領域であれば、図９のフローチャートに示す処理で毎回失火している表裏気筒を特定させ、機関回転速度が高回転領域であれば、図１１のフローチャートに示す処理で毎回失火している表裏気筒を特定させる構成とすることができる。
【００８７】
また、第１変動量Δω１n及び第２変動量Δω２nが零近傍の値を保持し、かつ、空燃比がリーン側に安定していることに基づく、表裏気筒の毎回失火の推定を省略し、第１変動量Δω１n及び第２変動量Δω２nに基づいて失火が検出されていない状態で、図９又は図１１のフローチャートに示す処理を実行し、表裏気筒が毎回失火しているか否かを判断させることができる。
【００８８】
上記各実施形態で、失火の発生を検出した場合、毎回失火であれば、当該気筒に対する燃料噴射を停止させる処理を行い、また、許容レベルを超える頻度で失火が発生する場合には、運転者に警告したり、内燃機関１０１の運転領域を低回転・低負荷側に制限したり、失火発生を故障履歴として記憶したりすることが好ましい。
また、本実施形態では、内燃機関１０１を４気筒機関としたが、６気筒や８気筒機関などにも、本発明に係る失火検出装置を適用することが可能であり、例えば、気筒間の行程位相差がクランク角で１２０degである６気筒機関においては、１２０deg毎に気筒別回転速度（角速度ωn）を求め、前記第１変動量Δω１nを、Δω１n＝（ωn−ωn-3）−（ωn-1−ωn-4）として算出する。
【００８９】
前記第１変動量Δω１nの計算式において、「ωn−ωn-3」及び「ωn-1−ωn-4」は、いずれも、クランクシャフトの１回転分だけサイクルがずれている気筒間における気筒別回転速度（角速度ωn）の差を求めることになり、４気筒の場合と同様に、クランク角センサ１１７の機械的ばらつきの影響を排除して、失火気筒を検出させることができる。
また、気筒間の行程位相差がクランク角で９０degである８気筒機関においては、９０deg毎に気筒別回転速度（角速度ωn）を求め、前記第１変動量Δω１nを、Δω１n＝（ωn−ωn-4）−（ωn-1−ωn-5）として算出する。
【００９０】
この場合も、「ωn−ωn-4」及び「ωn-1−ωn-5」は、いずれも、クランクシャフトの１回転分だけサイクルがずれている気筒間における気筒別回転速度（角速度ωn）の差を求めることになり、４気筒の場合と同様に、クランク角センサ１１７の機械的ばらつきの影響を排除して、失火気筒を検出させることができる。
更に、上記気筒別回転速度（角速度ωn）の差を、クランクシャフトの１回転分だけずれて検出された値の間での差として算出させる代わりに、クランクシャフトの１回転の整数ｎ（≧２）倍だけずれて検出された値の間での差として算出させることができる。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施形態における内燃機関のシステム図。
【図２】本発明に係る失火検出の第１実施形態を示すフローチャート。
【図３】本発明の実施形態における角速度の検出領域を示す図。
【図４】本発明の実施形態における角速度の検出処理を示すフローチャート。
【図５】本発明の実施形態における角速度の検出処理を示すフローチャート。
【図６】本発明の実施形態における失火時における角速度ωn，第１変動量Δω１n及び第２変動量Δω２nの変化を示すタイムチャート。
【図７】本発明に係る失火検出の第２実施形態を示すフローチャート。
【図８】本発明に係る失火検出の第３実施形態を示すフローチャート。
【図９】前記第３実施形態における表裏気筒の失火検出の詳細を示すフローチャート。
【図１０】前記第３実施形態における燃料噴射量及び点火時期の補正状態の変化と、差分Δωnの変化との相関を示すタイムチャート。
【図１１】本発明に係る失火検出の第４実施形態を示すフローチャート。
【図１２】前記第４実施形態における燃料カットに伴う第１変動量Δω１n及び第２変動量Δω２nの変化を示すタイムチャート。
【符号の説明】
【００９２】
１０１…内燃機関、１０３…電子制御スロットル装置、１１２…燃料噴射弁、１１３…エンジンコントロールユニット（ＥＣＵ）、１１４…点火プラグ、１１５…イグニッションコイル、１１７…クランク角センサ、１２１…クランクシャフト（出力軸）
【図１】
2009293501.tif 000003
【図２】
2009293501.tif 000004
【図３】
2009293501.tif 000005
【図４】
2009293501.tif 000006
【図５】
2009293501.tif 000007
【図６】
2009293501.tif 000008
【図７】
2009293501.tif 000009
【図８】
2009293501.tif 000010
【図９】
2009293501.tif 000011
【図１０】
2009293501.tif 000012
【図１１】
2009293501.tif 000013
【図１２】
2009293501.tif 000014