(57)【特許請求の範囲】
【請求項１】
内燃機関の燃焼状態を検出する燃焼状態検出手段と、
前記燃焼状態検出手段で検出した各燃焼サイクル毎の燃焼状態検出値を統計処理して燃焼状態検出値の分布特性を評価する分布特性評価手段と、
前記分布特性評価手段で評価した燃焼状態検出値の分布特性が正常燃焼時の分布特性か失火発生時の分布特性かを判定することで失火の有無を判定する失火判定手段と
を備えた内燃機関の失火検出装置において、
前記燃焼状態検出手段は、筒内で燃焼により発生するイオン電流を検出して、そのイオン電流ピーク値を前記燃焼状態検出値として用い、
前記分布特性評価手段は、前記イオン電流ピーク値の対数正規分布の統計処理値を前記燃焼状態検出値の分布特性値として求めるために、前記燃焼状態検出値の分布特性における頻度５０％点［ｖ50］と標準偏差値［σ］とを算出する手段と、これら頻度５０％点 ［ｖ50］と標準偏差値［σ］とから正常燃焼時の燃焼状態検出値の分布特性を予測して当該燃焼状態検出値が失火判定値［Ｖth］以下となる予測頻度［Ａ（％）］を求める手段と、実際の燃焼状態検出値が失火判定値［Ｖth］以下となる実頻度［ａ（％）］を求める手段と、この実頻度［ａ（％）］と前記予測頻度［Ａ（％）］との差分［Δ（％）＝ａ（％）−Ａ（％）］を求める手段とを備え、
前記失火判定手段は、前記差分［Δ（％）］に基づいて失火の有無を判定することを特徴とする内燃機関の失火検出装置。
【請求項２】
前記失火判定手段は、前記差分［Δ（％）］に基づいて失火発生率を算出する手段を備えていることを特徴とする請求項１に記載の内燃機関の失火検出装置。
【請求項３】
前記失火判定手段は、前記差分［Δ（％）］に基づいて失火の有無を判定する手段と、前記実頻度［ａ（％）］又は前記燃焼状態検出値に基づいて失火の有無を判定する手段とをエンジン運転条件あるいは前記頻度５０％点［ｖ50］等の分布特性値に応じて切り換えることを特徴とする請求項１又は２に記載の内燃機関の失火検出装置。
【請求項４】
前記失火判定手段は、前記頻度５０％点［ｖ50］と前記標準偏差値  ［σ］のそれぞれが所定の範囲内にある安定した燃焼状態検出値の分布特性が得られる状態の時に前記差分［Δ（％）］に基づいて失火の有無を判定することを特徴とする請求項１又は２に記載の内燃機関の失火検出装置。
【請求項５】
前記燃焼状態検出手段の出力のドリフト値を検出するドリフト値検出手段と、
前記ドリフト値検出手段で検出したドリフト値で前記燃焼状態検出手段の出力を補正して燃焼状態検出値を求める出力補正手段とを備え、
前記分布特性評価手段は、前記出力補正手段で補正した各燃焼サイクル毎の燃焼状態検出値を統計処理して燃焼状態検出値の分布特性を評価することを特徴とする請求項１乃至４のいずれかに記載の内燃機関の失火検出装置。
【請求項６】
前記ドリフト値検出手段で検出したドリフト値の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］とを算出する手段と、
前記ドリフト値の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］がそれぞれ所定の範囲内に無いときに前記失火判定手段による失火判定を禁止する失火判定禁止手段と
を備えていることを特徴とする請求項５に記載の内燃機関の失火検出装置。
【請求項７】
前記ドリフト値検出手段は、吸気行程中又は圧縮行程中の前記燃焼状態検出手段の出力をドリフト値として検出することを特徴とする請求項５又は６に記載の内燃機関の失火検出装置。
【請求項８】
内燃機関の燃焼状態を検出する燃焼状態検出手段と、
前記燃焼状態検出手段で検出した各燃焼サイクル毎の燃焼状態検出値を統計処理して燃焼状態検出値の分布特性を評価する分布特性評価手段と、
前記分布特性評価手段で評価した燃焼状態検出値の分布特性が正常燃焼時の分布特性か失火発生時の分布特性かを判定することで失火の有無を判定する失火判定手段と
を備えた内燃機関の失火検出装置において、
前記燃焼状態検出手段は、筒内で燃焼により発生するイオン電流を検出して、そのイオン電流ピーク値を前記燃焼状態検出値として用い、
前記分布特性評価手段は、前記イオン電流ピーク値の対数正規分布の統計処理値を前記燃焼状態検出値の分布特性値として求め、
前記分布特性評価手段で評価した燃焼状態検出値の分布特性に基づいて前記失火判定値［Ｖth］を算出する失火判定値算出手段を備え、
前記失火判定手段は、前記燃焼状態検出値の分布特性と前記失火判定値［Ｖth］とに基づいて失火の有無を判定することを特徴とする内燃機関の失火検出装置。
【請求項９】
前記失火判定値算出手段は、前記分布特性評価手段で評価した燃焼状態検出値の分布特性のパターンを、正常燃焼サイクルの分布パターンと失火サイクルの分布パターンとに分離し、該失火サイクルの分布パターンに基づいて前記失火判定値［Ｖth］を算出することを特徴とする請求項８に記載の内燃機関の失火検出装置。
【請求項１０】
前記失火判定値算出手段は、前記失火サイクルの分布パターンに属する燃焼状態検出値のうちの最大の燃焼状態検出値又はそれより少し大きな値を前記失火判定値［Ｖth］とすることを特徴とする請求項９に記載の内燃機関の失火検出装置。
【請求項１１】
内燃機関の運転状態及び／又は前記分布特性評価手段で評価した燃焼状態検出値の分布特性に基づいて前記失火判定値算出手段による前記失火判定値［Ｖth］の算出を許可するか禁止するかを判定する許可／禁止判定手段を備えていることを特徴とする請求項８乃至１０のいずれかに記載の内燃機関の失火検出装置。
【請求項１２】
前記許可／禁止判定手段は、正常燃焼サイクルの分布パターンと失火サイクルの分布パターンとの分離度が所定値以上のときに前記失火判定値算出手段による前記失火判定値［Ｖth］の算出を許可することを特徴とする請求項１１に記載の内燃機関の失火検出装置。
【請求項１３】
前記許可／禁止判定手段は、正常燃焼サイクルの分布パターンと失火サイクルの分布パターンとの分離度を、両分布パターン間のノイズ領域の幅と両分布パターンの高さとに基づいて判定することを特徴とする請求項１２に記載の内燃機関の失火検出装置。
【請求項１４】
前記失火判定値算出手段で算出した最新の失火判定値［Ｖth］を含む複数の失火判定値［Ｖth］を記憶する記憶手段と、
内燃機関の運転状態及び／又は前記分布特性評価手段で評価した燃焼状態検出値の分布特性に基づいて前記複数の失火判定値［Ｖth］の中から今回使用する失火判定値［Ｖth］を選択する失火判定値選択手段とを備えていることを特徴とする請求項８乃至１３のいずれかに記載の内燃機関の失火検出装置。
【請求項１５】
前記失火判定値選択手段は、前記燃焼状態検出手段の出力のドリフト値が所定値よりも小さいときに、前記複数の失火判定値［Ｖth］の中から初期設定値を選択することを特徴とする請求項１４に記載の内燃機関の失火検出装置。
【請求項１６】
前記失火判定値選択手段は、前記燃焼状態検出手段の出力のドリフト値が所定値以上のときに、前記失火判定値算出手段で算出した最新の失火判定値［Ｖth］を選択することを特徴とする請求項１４又は１５に記載の内燃機関の失火検出装置。
【請求項１７】
内燃機関の運転状態及び／又は前記分布特性評価手段で評価した燃焼状態検出値の分布特性に基づいて複数の失火判定値［Ｖth］の中から今回使用する失火判定値［Ｖth］を選択する失火判定値選択手段を備えていることを特徴とする請求項１４乃至１６のいずれかに記載の内燃機関の失火検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の失火を検出する内燃機関の失火検出装置に関するものである。
【０００２】
【従来の技術】
近年、内燃機関の筒内で混合気が燃焼する際にイオンが発生する特性に着目して、点火毎に筒内で発生するイオン電流を点火プラグの電極を介して検出し、そのイオン電流検出値に基づいて着火／失火を検出する技術が開発されている。従来の着火／失火の判定方法は、着火時にイオン電流が増加し、失火発生時にイオン電流が減少する性質を利用し、検出したイオン電流ピーク値を所定の判定値と比較して、イオン電流ピーク値が判定値以上であれば、着火と判定し、そうでなければ、失火と判定するものである。
【０００３】
【発明が解決しようとする課題】
しかし、点火プラグの電極にデポジットが付着した時や、高温多湿時には、点火プラグの電極を介して検出するイオン電流が低下するため、検出したイオン電流ピーク値を所定の判定値と比較する従来の失火検出方法では、点火プラグのデポジット付着時や高温多湿時に、正常燃焼状態の時でも、失火と誤検出してしまう可能性がある。また、イオン電流検出システムの製造ばらつきや経時変化等によっても、イオン電流ピーク値が変化して失火を誤検出する可能性がある。
【０００４】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、失火の検出精度を向上できる内燃機関の失火検出装置を提供することにある。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１の内燃機関の失火検出装置は、内燃機関の燃焼状態を燃焼状態検出手段によって検出すると共に、この燃焼状態検出手段で検出した各燃焼サイクル毎の燃焼状態検出値を分布特性評価手段によって統計処理して燃焼状態検出値の分布特性を評価し、失火判定手段によって、この燃焼状態検出値の分布特性が正常燃焼時の分布特性か失火発生時の分布特性かを判定することで失火の有無を判定するものである。つまり、燃焼状態検出手段の製造ばらつき、経時変化、温度、湿度等によって燃焼状態検出手段の出力（燃焼状態検出値）が相対的に低下しても、燃焼状態検出値の分布特性は、正常燃焼時と失火発生時とで異なる分布特性となるため、燃焼状態検出値の分布特性から失火の有無を判定すれば、燃焼状態検出手段の製造ばらつき、経時変化、温度、湿度等の影響を受けずに、失火を精度良く検出することができる。
【０００６】
この場合、請求項１，８のように、燃焼状態検出手段によって筒内で燃焼により発生するイオン電流を検出して、そのイオン電流ピーク値を燃焼状態検出値として用い、このイオン電流ピーク値の対数正規分布の統計処理値を燃焼状態検出値の分布特性値として求めるようにしても良い。つまり、正常燃焼時のイオン電流ピーク値の分布特性は指数関数特性を有することから、このイオン電流ピーク値の対数正規分布の統計処理値を求めると、正常燃焼か失火かを精度良く判別することができる。
【０００７】
また、請求項１のように、燃焼状態検出値の分布特性における頻度５０％点［ｖ50］と標準偏差値［σ］とを算出し、これら頻度５０％点［ｖ50］と標準偏差値［σ］とから正常燃焼時の燃焼状態検出値の分布特性を予測して当該燃焼状態検出値が失火判定値［Ｖth］以下となる予測頻度［Ａ（％）］を求めると共に、実際の燃焼状態検出値が失火判定値［Ｖth］以下となる実頻度［ａ（％）］を求め、この実頻度［ａ（％）］と予測頻度［Ａ（％）］との差分［Δ（％）＝ａ（％）−Ａ（％）］を求めて、この差分［Δ（％）］に基づいて失火の有無を判定するようにしても良い。このようにして求めた差分［Δ（％）］は、失火による頻度増加分に相当するため、この差分［Δ（％）］から失火を精度良く検出することができる。
【０００８】
また、請求項２のように、前記差分［Δ（％）］に基づいて失火発生率を算出するようにしても良い。つまり、失火発生回数が増えるほど、差分［Δ（％）］が大きくなるため、差分［Δ（％）］に基づいて失火発生率を精度良く算出することができ、失火発生率に応じて適切な処置をとることができる。
【０００９】
また、請求項３のように、前記差分［Δ（％）］に基づいて失火の有無を判定する手段と、前記実頻度［ａ（％）］又は前記燃焼状態検出値に基づいて失火の有無を判定する手段とをエンジン運転条件あるいは前記頻度５０％点［ｖ50］等の分布特性値に応じて切り換えるようにしても良い。つまり、頻度５０％点［ｖ50］と失火判定値［Ｖth］との差が大きくなるほど、実頻度［ａ（％）］に含まれるノイズ分が少なくなるため、頻度５０％点［ｖ50］と失火判定値［Ｖth］との差が大きい領域では、燃焼状態検出値の分布特性を用いなくても、実頻度［ａ（％）］又は燃焼状態検出値に基づいて失火の有無を精度良く判定することができる。
【００１０】
また、請求項４のように、前記頻度５０％点［ｖ50］と前記標準偏差値［σ］のそれぞれが所定の範囲内にある安定した燃焼状態検出値の分布特性が得られる状態の時に前記差分［Δ（％）］に基づいて失火の有無を判定するようにしても良い。このようにすれば、失火判定精度を更に向上させることができる。
【００１１】
また、請求項５のように、燃焼状態検出手段の出力のドリフト値（０点誤差）をドリフト値検出手段により検出すると共に、出力補正手段によって、燃焼状態検出手段の出力をドリフト値で補正して燃焼状態検出値を求め、前記出力補正手段で補正した各燃焼サイクル毎の燃焼状態検出値を統計処理して燃焼状態検出値の分布特性を評価するようにしても良い。このように、燃焼状態検出手段の出力をドリフト値で補正して燃焼状態検出値を求めると、ドリフト（０点誤差）のない正味の燃焼状態検出値を求めることができ、失火判定精度を更に向上させることができる。
【００１２】
また、請求項６のように、ドリフト値検出手段で検出したドリフト値の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］とを算出し、この頻度５０％点［ｃ50］と標準偏差値［σc ］がそれぞれ所定の範囲内に無いときに、ドリフト値の分布特性が不安定と判断して、失火判定手段による失火判定を失火判定禁止手段によって禁止するようにしても良い。つまり、ドリフト値の分布特性が不安定となる場合は、ドリフト値による燃焼状態検出値の補正精度が悪くなり、失火判定精度が低下する。従って、ドリフト値の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］とからドリフト値の分布特性が不安定と判断される場合は、失火判定を禁止することで、失火の誤検出を未然に防止することができる。
【００１３】
また、請求項７のように、吸気行程中又は圧縮行程中の燃焼状態検出手段の出力（イオン電流検出値）をドリフト値として検出するようにしても良い。つまり、吸気行程中や圧縮行程中は、燃焼イオンが発生しないため、吸気行程中や圧縮行程中に検出される電流は、燃焼イオンによるものではなく、くすぶり漏洩電流等のノイズ成分によるものと考えられる。従って、吸気行程中又は圧縮行程中の燃焼状態検出手段の出力（イオン電流検出値）をドリフト値として検出すれば、ドリフト値を精度良く検出することができる。
【００１６】
ところで、失火判定値［Ｖth］は、演算処理の簡略化のために予め設定した固定値としても良いが、燃焼状態検出手段で検出した燃焼状態検出値は、燃焼状態検出手段の経時変化（くすぶりの有無等）や燃焼状態のばらつき等によってずれることがあるため（図２０参照）、失火判定値［Ｖth］を固定値とした場合は、燃焼状態検出手段の経時変化や燃焼状態のばらつき等による燃焼状態検出値のずれが大きくなると、失火サイクルを正常燃焼サイクルと誤判定することが懸念される。
【００１７】
そこで、請求項８のように、前記分布特性評価手段で評価した燃焼状態検出値の分布特性に基づいて失火判定値［Ｖth］を失火判定値算出手段により算出するようにしても良い。このようにすれば、燃焼状態検出手段の経時変化や燃焼状態のばらつき等により燃焼状態検出値の分布特性がずれたとしても、そのずれ分を考慮した失火判定値［Ｖth］を設定することができ、燃焼状態検出手段の経時変化や燃焼状態のばらつき等による燃焼状態検出値のずれの影響をあまり受けずに、失火サイクルと正常燃焼サイクルとを精度良く判別することができ、長期間にわたって信頼性の高い失火判定を行うことができる。
【００１８】
この場合、請求項９のように、分布特性評価手段で評価した燃焼状態検出値の分布特性のパターンを、正常燃焼サイクルの分布パターンと失火サイクルの分布パターンとに分離し（図２０参照）、該失火サイクルの分布パターンに基づいて失火判定値［Ｖth］を算出するようにすると良い。このようにすれば、実際の失火サイクルの分布パターンに合わせて適切な失火判定値［Ｖth］を設定することができ、失火サイクルを精度良く検出することができる。
【００１９】
具体的な失火判定値［Ｖth］の設定方法は、請求項１０のように、失火サイクルの分布パターンに属する燃焼状態検出値のうちの最大の燃焼状態検出値又はそれより少し大きな値を失火判定値［Ｖth］とすると良い。これにより、実際に失火が発生したときの燃焼状態検出値を、全て失火サイクルと判別することができると共に、正常燃焼サイクルやノイズ成分を失火サイクルと誤判定することも防止できる。
【００２０】
ところで、内燃機関の運転状態によっては、燃焼状態検出値がばらつくことがあり、特に、不安定燃焼時には、燃焼状態検出値のばらつきが大きくなる傾向があるが、燃焼状態検出値のばらつきが大きくなると、正常燃焼サイクルと失火サイクルの両分布パターンの幅（広がり）が大きくなり、両分布パターンの間隔が互いに接近してくる。それによって、両分布パターンの間隔が狭くなり過ぎたり、図２２に示すように、両分布パターンが重なり合うと、正常燃焼サイクルと失火サイクルとを正確に判別することが困難になる。
【００２１】
そこで、請求項１１のように、内燃機関の運転状態及び／又は分布特性評価手段で評価した燃焼状態検出値の分布特性に基づいて失火判定値［Ｖth］の算出を許可するか禁止するかを許可／禁止判定手段によって判定するようにしても良い。このようにすれば、燃焼状態検出値のばらつきが少ないときのみ、失火判定値［Ｖth］を算出して、燃焼状態検出値のばらつきが大きいときには、失火判定値［Ｖth］を算出せずに済み、燃焼状態検出値のばらつきによる失火判定精度の低下を防止することができる。
【００２２】
具体的には、請求項１２のように、正常燃焼サイクルの分布パターンと失火サイクルの分布パターンとの分離度が所定値以上のときに失火判定値［Ｖth］の算出を許可するようにすると良い。このようにすれば、正常燃焼サイクルと失火サイクルの両分布パターンが明瞭に分離しているときのみ、失火判定値［Ｖth］を算出することができ、精度の良い失火判定値［Ｖth］を求めることができる。
【００２３】
この場合、請求項１３のように、正常燃焼サイクルの分布パターンと失火サイクルの分布パターンとの分離度を、両分布パターン間のノイズ領域の幅と両分布パターンの高さとに基づいて判定するようにすれば良い。このようにすれば、両分布パターンの分離度を精度良く判定することができる。
【００２４】
また、請求項１４のように、失火判定値算出手段で算出した最新の失火判定値［Ｖth］を含む複数の失火判定値［Ｖth］を記憶手段に記憶しておき、内燃機関の運転状態及び／又は分布特性評価手段で評価した燃焼状態検出値の分布特性に基づいて前記複数の失火判定値［Ｖth］の中から今回使用する失火判定値［Ｖth］を失火判定値選択手段により選択するようにしても良い。このようにすれば、燃焼状態検出値のばらつき等に応じて、複数の失火判定値［Ｖth］の中から最適な失火判定値［Ｖth］を選択することができ、燃焼状態検出値のばらつき等の影響を受けにくい信頼性の高い失火判定を行うことができる。
【００２５】
この場合、請求項１５のように、燃焼状態検出手段の出力のドリフト値が所定値よりも小さいときに、前記複数の失火判定値［Ｖth］の中から初期設定値を選択するようにしても良い。燃焼状態検出手段として、例えば点火プラグを用いてイオン電流を検出する場合は、点火プラグのくすぶりが発生すると、燃焼状態検出値であるイオン電流検出値のドリフト値が大きくなり、反対に、くすぶりが発生していないときには、イオン電流検出値のドリフト値が小さくなる傾向がある。図２０（ａ）に示すように、くすぶりが発生していないときには、失火サイクルの分布パターンが失火判定の初期設定値以下に収まるため、燃焼状態検出手段の出力のドリフト値（例えばくすぶりの程度）が所定値よりも小さいときに、複数の失火判定値［Ｖth］の中から初期設定値を選択するようにすれば、くすぶり等が発生していないときに、失火サイクルを精度良く検出することができると共に、くすぶり発生時等に適正な失火判定値［Ｖth］を選択することができ、くすぶり発生時等でも失火判定を適切に行うことができる。
【００２６】
この際、請求項１６のように、燃焼状態検出手段の出力のドリフト値が所定値以上のときに、失火判定値算出手段で算出した最新の失火判定値［Ｖth］を選択するようにすれば良い。このようにすれば、くすぶりが発生したときには、そのくすぶりの程度に応じた最新の失火判定値［Ｖth］を選択することができ、くすぶり発生時でも精度の良い失火判定を行うことができる。
【００２７】
上述した請求項８〜１６に係る発明では、燃焼状態検出値の分布特性に基づいて失火判定値［Ｖth］を算出する失火判定値算出手段を設けているが、この失火判定値算出手段を設けずに、予め複数の失火判定値［Ｖth］を用意しておき、請求項１７に示すように、内燃機関の運転状態及び／又は前記分布特性評価手段で評価した燃焼状態検出値の分布特性に基づいて前記複数の失火判定値［Ｖth］の中から今回使用する失火判定値［Ｖth］を失火判定値選択手段により選択するようにしても良い。このようにしても、燃焼状態検出値のばらつき等に応じて、複数の失火判定値［Ｖth］の中から最適な失火判定値［Ｖth］を選択することができ、燃焼状態検出値のばらつき等の影響の少ない信頼性の高い失火判定を行うことができる。
【００２８】
【発明の実施の形態】
《実施形態（１）》
以下、本発明の実施形態（１）を図１乃至図６に基づいて説明する。まず、図１に基づいて点火制御系の回路構成を説明する。点火コイル２１の一次コイル２２の一端はバッテリ２３に接続され、該一次コイル２２の他端は、イグナイタ２４に内蔵されたパワートランジスタ２５のコレクタに接続されている。二次コイル２６の一端は点火プラグ２７に接続され、該二次コイル２６の他端は、２つのツェナーダイオード２８，２９を介してグランドに接続されている。
【００２９】
２つのツェナーダイオード２８，２９は互いに逆向きに直列接続され、一方のツェナーダイオード２８にコンデンサ３０が並列に接続され、他方のツェナーダイオード２９にイオン電流検出抵抗３１が並列に接続されている。コンデンサ３０とイオン電流検出抵抗３１との間の電位Ｖinが抵抗３２を介して反転増幅回路３３の反転入力端子（−）に入力されて反転増幅され、この反転増幅回路３３の出力電圧Ｖがイオン電流検出信号としてエンジン制御回路３４に入力される。イオン電流検出回路３５は、ツェナーダイオード２８，２９、コンデンサ３０、イオン電流検出抵抗３１、反転増幅回路３３等から構成され、イオン電流検出信号によって燃焼状態を検出する燃焼状態検出手段としての役割を果たす。
【００３０】
エンジン運転中は、エンジン制御回路３４からイグナイタ２４に送信される点火指令信号の立ち上がり／立ち下がりでパワートランジスタ２５がオン／オフする。パワートランジスタ２５がオンすると、バッテリ２３から一次コイル２２に一次電流が流れ、その後、パワートランジスタ２５がオフすると、一次コイル２２の一次電流が遮断されて、二次コイル２６に高電圧が電磁誘導され、この高電圧によって点火プラグ２７の電極３６，３７間に火花放電が発生する。この火花放電電流は、点火プラグ２７の接地電極３７から中心電極３６へ流れ、二次コイル２６を経てコンデンサ３０に充電されると共に、ツェナーダイオード２８，２９を経てグランド側に流れる。コンデンサ３０の充電後は、ツェナーダイオード２８のツェナー電圧によって規制されるコンデンサ３０の充電電圧を電源としてイオン電流検出回路３５が駆動され、後述するようにしてイオン電流が検出される。
【００３１】
これに対し、イオン電流は、火花放電電流とは反対方向に流れる。つまり、点火終了後は、コンデンサ３０の充電電圧によって点火プラグ２７の電極３６，３７間に電圧が印加されるため、気筒内で混合気が燃焼する際に発生するイオンによって電極３６，３７間にイオン電流が流れるが、このイオン電流は、中心電極３６から接地電極３７へ流れ、更に、グランド側からイオン電流検出抵抗３１を通ってコンデンサ３０に流れる。この際、イオン電流検出抵抗３１に流れるイオン電流の変化に応じて反転増幅回路３３の入力電位Ｖinが変化し、反転増幅回路３３の出力端子からイオン電流に応じた電圧がエンジン制御回路３４に出力される。
【００３２】
エンジン制御回路３４内には、ノイズマスク３８、ピークホールド回路３９、Ａ／Ｄ変換器４０及びマイクロコンピュータ４１が内蔵されている。イオン電流検出回路３５の出力電圧は、ノイズマスク３８にてノイズ成分が除去された後、ピークホールド回路３９に入力される。このピークホールド回路３９は、ノイズマスク３８の出力電圧のピーク値（イオン電流ピーク値）Ｐi を検出して、それを保持する（図２参照）。このピークホールド回路３９の出力は、Ａ／Ｄ変換器４０を介してマイクロコンピュータ４１に読み込まれる。
【００３３】
マイクロコンピュータ４１のＲＯＭ（記憶媒体）には、燃料噴射制御や点火時期制御を行うための各種のエンジン制御ルーチンが記憶されていると共に、後述する図５及び図６に示す失火判定ルーチンが記憶されている。この失火判定ルーチンをマイクロコンピュータ４１によって実行することで、失火の有無を判定し、最終的に失火有りと判定した時には、警告ランプ４２を点灯（又は点滅）して運転者に警告する。
【００３４】
次に、本実施形態（１）の失火判定の方法を説明する。本実施形態（１）では、イオン電流検出回路３５のピークホールド回路３９でピークホールドされたイオン電流ピーク値［Ｐi ］を燃焼状態検出値として用い、図３に示すように、このイオン電流ピーク値［Ｐi ］の対数正規分布の統計処理値を燃焼状態検出値の分布特性値として用いる。正常燃焼時のイオン電流ピーク値［Ｐi ］の分布特性は指数関数特性を有することから、このイオン電流ピーク値［Ｐi ］の対数正規分布を統計処理して累積頻度を求めると、正常燃焼時には、図３及び図４の▲１▼に示すように、累積頻度が直線状の分布となる。そして、このイオン電流ピーク値［Ｐi ］の対数正規分布の特性を評価するために、頻度５０％点［ｖ50］と標準偏差値［σ］とを算出する。
【００３５】
一方、図４の▲２▼、▲３▼に示すように、失火が発生すると、検出するイオン電流ピーク値［Ｐi ］の分布の山が２つとなり、燃焼イオン（燃焼によるイオン電流ピーク値［Ｐi ］）の分布の山の他に、失火によるイオン電流ピーク値［Ｐi ］の分布の山が発生する。通常、燃焼イオンの分布の山は、失火判定値［Ｖth］以上の領域に発生し、失火の分布の山は、失火判定値［Ｖth］以下の領域に発生する。その結果、失火発生時には、イオン電流ピーク値［Ｐi ］の累積頻度が直線分布とならず、失火判定値［Ｖth］以下の領域の累積頻度が増加する。一般に、失火判定値［Ｖth］は、失火発生時のイオン電流ピーク値［Ｐi ］の最大値付近又はそれよりも少し大きな値に設定される。
【００３６】
図４の▲２▼に示すように、燃焼イオンの分布が失火の分布から完全に分離している場合は、失火の累積頻度を燃焼イオンの影響を受けずに精度良く算出することができるが、図４の▲３▼に示すように、点火プラグ２７のデポジット付着や高温多湿の環境等によって、燃焼イオンが全般的に減少して燃焼イオンの分布の山が失火判定値［Ｖth］に近付くと、燃焼イオンの分布の山の一部が失火の分布の山に重なり合い、失火判定値［Ｖth］以下の領域の累積頻度が実際の失火の累積頻度よりも大きくなる。
【００３７】
そこで、図４の▲３▼に示すように、実際のイオン電流ピーク値［Ｐi ］が失火判定値［Ｖth］以下となる実頻度［ａ（％）］を算出すると共に、頻度５０％点［ｖ50］と標準偏差値［σ］とから正常燃焼時のイオン電流ピーク値［Ｐi ］の直線的な分布特性を予測して、当該イオン電流ピーク値［Ｐi ］の直線的な分布が失火判定値［Ｖth］以下となる予測頻度［Ａ（％）］を算出する。この予測頻度［Ａ（％）］は、失火判定値［Ｖth］以下となる燃焼イオンの累積頻度に相当する。そして、この実頻度［ａ（％）］と予測頻度［Ａ（％）］との差分［Δ（％）］を求める。
Δ（％）＝ａ（％）−Ａ（％）
【００３８】
この差分［Δ（％）］は、失火判定値［Ｖth］以下となる実頻度［ａ（％）］から誤差分である燃焼イオンの累積頻度分を取り除いた失火のみの累積頻度に相当する。図４の▲２▼に示すように、燃焼イオンの分布が失火の分布から完全に分離している場合は、予測頻度［Ａ（％）］は０（％）となるため、Δ（％）＝ａ（％）となる。
【００３９】
図４の▲２▼に示すように、燃焼イオンが大きくて、燃焼イオンの分布が失火の分布から完全に分離している場合は、失火の誤検出がないため、イオン電流検出回路３５のピークホールド回路３９で検出するイオン電流ピーク値［Ｐi ］をサチュレート（飽和）させるのが一般的である。イオン電流ピーク値［Ｐi ］がサチュレートする領域では、標準偏差値［σ］が０となるので、イオン電流ピーク値［Ｐi ］の頻度５０％点［ｖ50］がサチュレート点ＰＭ以上である場合は、差分［Δ（％）］に基づく失火判定を禁止し、実際のイオン電流ピーク値［Ｐi ］が失火判定値［Ｖth］以下となる実頻度［ａ（％）］に基づいて失火判定を行う。
【００４０】
以上説明した失火判定は、図５及び図６に示す失火判定ルーチンによって実行される。この失火判定ルーチンは、燃焼サイクル毎に実行され、まずステップ１０１で、イオン電流検出回路３５のピークホールド回路３９から出力されるイオン電流ピーク値［Ｐi ］を燃焼状態検出値として読み込み、次のステップ１０２で、イオン電流ピーク値［Ｐi ］の分布の算出が許可されているか否かを判定する。もし、燃料カット時等、イオン電流ピーク値［Ｐi ］の分布の算出が禁止されている時には、ステップ１０４に進み、前回までのイオン電流ピーク値［Ｐi ］のデータを格納するＰi テーブルを初期化して、本ルーチンを終了する。
【００４１】
一方、イオン電流ピーク値［Ｐi ］の分布の算出が許可されていれば、ステップ１０３に進み、Ｐi テーブルに今回のイオン電流ピーク値［Ｐi ］のデータを格納する。
【００４２】
その後、ステップ１０５に進み、Ｐi テーブルに蓄積されたイオン電流ピーク値［Ｐi ］のデータ数が所定数（例えば１０００）以上になったか否かを判定し、データ数が所定数以上になっていなければ、以降の処理を行うことなく、本ルーチンを終了する。そして、Ｐi テーブルに蓄積されたイオン電流ピーク値［Ｐi ］のデータ数が所定数以上になった時点で、ステップ１０６に進み、イオン電流ピーク値［Ｐi ］の分布特性における頻度５０％点［ｖ50］と標準偏差値［σ］とを算出し、次のステップ１０７で、これら頻度５０％点［ｖ50］と標準偏差値［σ］とから正常燃焼時のイオン電流ピーク値［Ｐi ］の分布特性を予測して当該イオン電流ピーク値［Ｐi ］が失火判定値［Ｖth］以下となる予測頻度［Ａ（％）］を算出すると共に、実際のイオン電流ピーク値［Ｐi ］が失火判定値［Ｖth］以下となる実頻度［ａ（％）］を算出し、この実頻度［ａ（％）］と予測頻度［Ａ（％）］との差分［Δ（％）＝ａ（％）−Ａ（％）］を算出する。これらステップ１０６，１０７の処理が特許請求の範囲でいう分布特性評価手段としての役割を果たす。
【００４３】
その後、図６のステップ１０８に進み、失火検出条件が成立しているか否かを、例えば冷却水温が所定温度以上であるか否かで判定し、失火検出条件が成立していなければ、以降の処理を行うことなく本ルーチンを終了する。
【００４４】
一方、失火検出条件が成立していれば、ステップ１０９に進み、イオン電流ピーク値［Ｐi ］の分布特性に基づく失火判定実行条件が成立しているか否かを判定する。ここで、イオン電流ピーク値［Ｐi ］の分布特性に基づく失火判定実行条件としては、例えば、(1) 図４の▲３▼のように頻度５０％点［ｖ50］がサチュレート点ＰＭよりも小さいこと、(2) アイドル運転時であることであり、これら２つの条件(1) 、(2) のいずれか一方でも条件が満たされれば、イオン電流ピーク値［Ｐi ］の分布特性に基づく失火判定実行条件が成立し、２つの条件(1) 、(2) が両方とも満たされなければ、イオン電流ピーク値［Ｐi ］の分布特性に基づく失火判定実行条件が不成立となる。尚、アイドル運転時は、イオン電流ピーク値［Ｐi ］が相対的に小さくなるため、分布特性に基づく失火判定を行うことで、精度の良い失火判定を行うものである。
【００４５】
上記ステップ１０９で、イオン電流ピーク値［Ｐi ］の分布特性に基づく失火判定実行条件が成立していると判定されれば、ステップ１１０に進み、前記ステップ１０７で算出した実頻度［ａ（％）］と予測頻度［Ａ（％）］との差分［Δ（％）］を第１の失火判定値［Ｃ1 ］と比較する。この第１の失火判定値［Ｃ1 ］は、エミッション悪化の可能性がある最小の失火頻度（例えば３％）に設定されている。もし、差分［Δ（％）］が第１の失火判定値［Ｃ1 ］よりも大きければ、失火発生と判断して、ステップ１１１に進み、失火判定フラグＭＦＴを失火発生を意味する「１」にセットする。
【００４６】
これに対し、差分［Δ（％）］が第１の失火判定値［Ｃ1 ］以下であれば、失火無し（正常燃焼）と判断して、ステップ１１２に進み、失火判定フラグＭＦＴを失火無しを意味する「０」にセットする。これらステップ１１０〜１１２の処理が特許請求の範囲でいう失火判定手段としての役割を果たす。
【００４７】
この後、ステップ１１６に進み、差分［Δ（％）］が第３の失火判定値［Ｃ3 ］よりも大きいか否かを判定する。この第３の失火判定値［Ｃ3 ］は、触媒溶損の可能性がある最小の失火頻度（例えば２５％）に設定されている。もし、差分［Δ（％）］が第３の失火判定値［Ｃ3 ］よりも大きければ、ステップ１１７に進み、燃料カットフラグＭＦＣを「１」にセットして燃料カットを実行する。これに対し、差分［Δ（％）］が第３の失火判定値［Ｃ3 ］以下であれば、ステップ１１８に進み、燃料カットフラグＭＦＣを「０」にセットし、燃料カットを実行しない。
【００４８】
一方、上記ステップ１０９で、イオン電流ピーク値［Ｐi ］の分布特性に基づく失火判定実行条件が成立していないと判定されれば、ステップ１１３に進み、実頻度［ａ（％）］を第２の失火判定値［Ｃ2 ］と比較する。この第２の失火判定値［Ｃ2 ］は、第１の失火判定値［Ｃ1 ］とほぼ同一の値又はそれよりも少し小さい値に設定されている。もし、実頻度［ａ（％）］が第２の失火判定値［Ｃ2 ］よりも大きければ、失火発生と判断して、ステップ１１４に進み、失火判定フラグＭＦＴを「１」にセットする。これに対し、実頻度［ａ（％）］が第２の失火判定値［Ｃ2 ］以下であれば、失火無しと判断して、ステップ１１５に進み、失火判定フラグＭＦＴを「０」にセットする。
【００４９】
この後、ステップ１１９に進み、実頻度［ａ（％）］を第３の失火判定値［Ｃ3 ］と比較し、実頻度［ａ（％）］が第３の失火判定値［Ｃ3 ］よりも大きければ、ステップ１２０に進み、燃料カットフラグＭＦＣを「１」にセットして燃料カットを実行する。これに対し、実頻度［ａ（％）］が第３の失火判定値［Ｃ3 ］以下であれば、ステップ１２１に進み、燃料カットフラグＭＦＣを「０」にセットし、燃料カットを実行しない。
【００５０】
以上説明した本実施形態（１）によれば、正常燃焼時のイオン電流ピーク値［Ｐi ］の分布特性を予測して当該イオン電流ピーク値［Ｐi ］が失火判定値［Ｖth］以下となる予測頻度［Ａ（％）］を算出すると共に、実際のイオン電流ピーク値［Ｐi ］が失火判定値［Ｖth］以下となる実頻度［ａ（％）］を算出し、この実頻度［ａ（％）］と予測頻度［Ａ（％）］との差分［Δ（％）＝ａ（％）−Ａ（％）］を算出する。この差分［Δ（％）］は、失火判定値［Ｖth］以下となる実頻度［ａ（％）］から誤差分である燃焼イオンの累積頻度分を取り除いた実際の失火頻度に相当することから、実頻度［ａ（％）］が実際の失火頻度よりも大きくなる領域（分布特性に基づく失火判定実行条件が成立する領域）では、差分［Δ（％）］が第１の失火判定値［Ｃ1 ］よりも大きいか否かで、エミッション悪化の可能性のある失火が発生しているか否かを判定する。これにより、図４の▲３▼に示すように、実際のイオン電流ピーク値［Ｐi ］が失火判定値［Ｖth］以下となる実頻度［ａ（％）］に誤差分である燃焼イオンの累積頻度分が含まれる領域でも、その誤差分を取り除いた実際の失火頻度である差分［Δ（％）］に基づいて失火判定を行うことができ、失火を精度良く検出することができる。
【００５１】
尚、本実施形態（１）では、図４の▲２▼に示すように、実頻度［ａ（％）］が実際の失火頻度（差分［Δ（％）］）とほぼ同一となる領域（分布特性に基づく失火判定実行条件が不成立となる領域）では、実頻度［ａ（％）］を第２の失火判定値［Ｃ2 ］と比較して失火判定を行うようにしたが、イオン電流ピーク値［Ｐi ］が失火判定値［Ｖth］以下であるか否かで失火の有無を判定するようにしても良い。
【００５２】
また、実頻度［ａ（％）］と予測頻度［Ａ（％）］との差分［Δ（％）］に基づいて失火発生率（失火頻度）を算出するようにしても良い。
【００５３】
《実施形態（２）》
上記実施形態（１）では、頻度５０％点［ｖ50］がサチュレート点ＰＭよりも小さいか否か（分布特性に基づく失火判定実行条件が成立しているか否か）で、失火判定方法を切り換えるようにしたが、本発明の実施形態（２）では、図７の失火判定方法切換マップに示すように、頻度５０％点［ｖ50］と標準偏差値［σ］に応じて３つの領域Ｉ，II，III に区分し、各領域Ｉ，II，III で異なる失火判定方法を用いるようにしている。
【００５４】
図７の失火判定方法切換マップでは、領域Ｉは、標準偏差値［σ］の大小を問わず、頻度５０％点［ｖ50］がサチュレート点ＰＭよりも大きい領域である。また、領域IIは、頻度５０％点［ｖ50］が失火判定値［Ｖth］よりも少し大きい点ＰＬ（図４参照）からサチュレート点ＰＭまでの範囲で、且つ、標準偏差値［σ］が所定範囲以下となる安定した分布特性が得られる領域である。一方、領域III は、上記２つの領域Ｉ，IIを除く領域である。従って、点ＰＬ以下の領域は、標準偏差値［σ］の大小を問わず、全て領域III となり、ＰＬ＜頻度５０％点［ｖ50］＜ＰＭの範囲では、標準偏差値［σ］が所定範囲以下の領域が領域IIとなり、所定範囲以上の領域が領域III となる。
【００５５】
この場合、領域Ｉでは、イオン電流ピーク値［Ｐi ］が失火判定値［Ｖth］以下であるか否かで失火の有無を判定する。また、領域IIでは、実頻度［ａ（％）］と予測頻度［Ａ（％）］との差分［Δ（％）］が第１の失火判定値［Ｃ1 ］よりも大きいか否かで、エミッション悪化の可能性のある失火が発生しているか否かを判定する。また、失火頻度が増加するほど、頻度５０％点［ｖ50］が小さくなり、標準偏差値［σ］が大きくなるため、領域III では、完全失火と判定し、ａ（％）＝１００％と設定する。この領域III には、完全失火に至る途中の領域も含まれるが、触媒溶損防止のために、早期に完全失火と判定する。
【００５６】
本実施形態（２）では、前記図５の失火判定ルーチンのステップ１０１〜１０７の処理を実行した後、図８のステップ１３０に進み、失火検出条件が成立しているか否かを、例えば冷却水温が所定温度以上であるか否かで判定し、失火検出条件が成立していなければ、以降の処理を行うことなく本ルーチンを終了する。
【００５７】
一方、失火検出条件が成立していれば、ステップ１３１に進み、イオン電流ピーク値［Ｐi ］の頻度５０％点［ｖ50］と標準偏差値［σ］に基づいて、図７の失火判定方法切換マップで区分された３つの領域Ｉ，II，III のいずれの領域に属するか判別する。
【００５８】
その結果、領域Ｉと判定されれば、ステップ１３２に進み、イオン電流ピーク値［Ｐi ］を失火判定値［Ｖth］と比較し、イオン電流ピーク値［Ｐi ］が失火判定値［Ｖth］よりも小さければ、失火発生と判断して、ステップ１３３に進み、失火判定フラグＭＦＴを「１」にセットする。これに対し、イオン電流ピーク値［Ｐi ］を失火判定値［Ｖth］以上であれば、失火無しと判断して、ステップ１３４に進み、失火判定フラグＭＦＴを「０」にセットする。
【００５９】
この後、ステップ１３５に進み、前記図５のステップ１０７で算出した実頻度［ａ（％）］を第３の失火判定値［Ｃ3 ］と比較し、実頻度［ａ（％）］が第３の失火判定値［Ｃ3 ］よりも大きければ、ステップ１３６に進み、燃料カットフラグＭＦＣを「１」にセットして燃料カットを実行する。これに対し、実頻度［ａ（％）］が第３の失火判定値［Ｃ3 ］以下であれば、ステップ１３７に進み、燃料カットフラグＭＦＣを「０」にセットし、燃料カットを実行しない。
【００６０】
一方、上記ステップ１３１で、領域IIと判定されれば、ステップ１３８に進み、前記図５のステップ１０７で算出した実頻度［ａ（％）］と予測頻度［Ａ（％）］との差分［Δ（％）］を第１の失火判定値［Ｃ1 ］と比較し、差分［Δ（％）］が第１の失火判定値［Ｃ1 ］よりも大きければ、失火発生と判断して、ステップ１３９に進み、失火判定フラグＭＦＴを「１」にセットする。これに対し、差分［Δ（％）］が第１の失火判定値［Ｃ1 ］以下であれば、失火無しと判断して、ステップ１４０に進み、失火判定フラグＭＦＴを「０」にセットする。
【００６１】
この後、ステップ１４１に進み、差分［Δ（％）］を第３の失火判定値［Ｃ3 ］と比較し、差分［Δ（％）］が第３の失火判定値［Ｃ3 ］よりも大きければ、ステップ１４２に進み、燃料カットフラグＭＦＣを「１」にセットして燃料カットを実行する。これに対し、差分［Δ（％）］が第３の失火判定値［Ｃ3 ］以下であれば、ステップ１４３に進み、燃料カットフラグＭＦＣを「０」にセットし、燃料カットを実行しない。
【００６２】
また、上記ステップ１３１で、領域III と判定されれば、完全失火と判断してステップ１４４に進み、失火判定フラグＭＦＴを「１」にセットし、次のステップ１４５で、実頻度［ａ（％）］を１００％と設定する。更に、次のステップ１４６で、燃料カットフラグＭＦＣを「１」にセットして燃料カットを実行する。
【００６３】
以上説明した本実施形態（２）では、イオン電流ピーク値［Ｐi ］の頻度５０％点［ｖ50］と標準偏差値［σ］の両方を考慮して失火判定方法を切り換えるようにしたので、その時点のイオン電流ピーク値［Ｐi ］の分布特性に合った最適な失火判定方法で失火を判定することができ、失火判定精度を更に向上させることができる。
【００６４】
尚、本実施形態（２）では、領域Ｉの場合に、イオン電流ピーク値［Ｐi ］が失火判定値［Ｖth］よりも小さいか否かで失火の有無を判定したが、前記図５のステップ１０７で算出した実頻度［ａ（％）］が第２の失火判定値［Ｃ2 ］よりも小さいか否かで失火の有無を判定するようにしても良い。
【００６５】
《実施形態（３）》
ところで、点火プラグ２７の発火部絶縁体にカーボンが付着して点火プラグ２７の電極３６，３７間の絶縁抵抗値が低下すると、電極３６，３７間に漏洩電流が流れる“くすぶり”と呼ばれる現象が発生する。このくすぶりが発生すると、図９に示すように、イオン電流検出回路３５の出力にくすぶり漏洩電流成分が重畳するため、イオン電流検出回路３５の出力がくすぶり漏洩電流成分によるドリフト値［ｃ0 ］分だけずれる。このドリフト値［ｃ0 ］が大きくなると、失火発生時でも、イオン電流ピーク値［Ｐi ］が失火判定値［Ｖth］よりも大きくなる可能性があり、失火検出精度が低下する。
【００６６】
そこで、本実施形態（３）では、吸気行程中（又は圧縮行程中）にイオン電流検出回路３５の出力をドリフト値［ｃ0 ］（０点誤差）として読み込み、イオン電流ピーク値［Ｐi ］からドリフト値［ｃ0 ］を差し引いて求めた補正イオン電流ピーク値［Ｐic］を燃焼状態検出値として用いる。これらの機能が特許請求の範囲でいうドリフト値検出手段と出力補正手段に相当する。
【００６７】
図１０は、イオン電流ピーク値［Ｐi ］と補正イオン電流ピーク値［Ｐic］の分布特性と、ドリフト値［ｃ0 ］の分布特性との関係を示している。図１０の▲１▼、▲２▼に示すように、正常燃焼時、失火発生時のいずれの場合も、くすぶり状態が安定していれば、ドリフト値［ｃ0 ］の変動幅が小さいため、イオン電流ピーク値［Ｐi ］からドリフト値［ｃ0 ］を差し引いて補正イオン電流ピーク値［Ｐic］を求めれば、この補正イオン電流ピーク値［Ｐic］は、くすぶりによるドリフト（０点誤差）のない正味のイオン電流ピーク値となり、この補正イオン電流ピーク値［Ｐic］から失火を精度良く検出することができる。
【００６８】
これに対し、くすぶり状態が不安定な場合は、図１０の▲３▼に示すように、ドリフト値［ｃ0 ］の変動幅が大きくなり、ドリフト値［ｃ0 ］の標準偏差値［σc ］や５０％点［ｃ50］も大きくなる。このような状態のときに、イオン電流ピーク値［Ｐi ］からドリフト値［ｃ0 ］を差し引いて補正イオン電流ピーク値［Ｐic］を求めても、補正精度が悪くなり、失火検出精度が低下する。
【００６９】
そこで、本実施形態（３）では、ドリフト値［ｃ0 ］の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］とを算出し、この頻度５０％点［ｃ50］と標準偏差値［σc ］が図１１に示す所定の範囲内に無いときには、くすぶり状態が不安定と判断して失火判定を禁止し、この頻度５０％点［ｃ50］と標準偏差値［σc ］が図１１に示す所定の範囲内にあるときのみに失火判定を許可する。
【００７０】
以上説明した本実施形態（３）の失火判定は、図１２の失火判定ルーチンによって実行される。この失火判定ルーチンは、燃焼サイクル毎に実行され、まずステップ２０１で、イオン電流ピーク値［Ｐi ］とドリフト値［ｃ0 ］を読み込み、次のステップ２０２で、イオン電流ピーク値［Ｐi ］とドリフト値［ｃ0 ］の分布の算出が許可されているか否かを判定する。もし、燃料カット時等、分布の算出が禁止されている時には、ステップ２０４に進み、前回までのイオン電流ピーク値［Ｐi ］とドリフト値［ｃ0 ］のデータを格納するＰi テーブルとｃ0 テーブルを初期化して、本ルーチンを終了する。
【００７１】
一方、分布の算出が許可されていれば、ステップ２０３に進み、Ｐi テーブルに今回のイオン電流ピーク値［Ｐi ］のデータを格納すると共に、ｃ0 テーブルに今回のドリフト値［ｃ0 ］のデータを格納する。
【００７２】
その後、ステップ２０５に進み、Ｐi テーブルとｃ0 テーブルに蓄積されたデータ数がそれぞれ所定数（例えば１０００）以上になったか否かを判定し、データ数が所定数以上になっていなければ、以降の処理を行うことなく、本ルーチンを終了する。そして、Ｐi テーブルとｃ0 テーブルに蓄積されたデータ数がそれぞれ所定数以上になった時点で、ステップ２０６に進み、イオン電流ピーク値［Ｐi ］からドリフト値［ｃ0 ］を差し引いて補正イオン電流ピーク値［Ｐic］を求める。
【００７３】
そして、次のステップ２０７で、イオン電流ピーク値［Ｐi ］の分布特性における頻度５０％点［ｖ50］と標準偏差値［σ］とを算出すると共に、ドリフト値［ｃ0 ］の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］とを算出する。この後、ステップ２０８に進み、ドリフト値［ｃ0 ］の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］が図１１に示す所定の範囲内であるか否かを判定し、この頻度５０％点［ｃ50］と標準偏差値［σc ］が所定の範囲内に無いときには、くすぶり状態が不安定で、イオン電流ピーク値［Ｐi ］の補正精度が悪くなると判断して、以降の処理を行うことなく、本ルーチンを終了する。この場合は、失火判定が禁止される。この機能が特許請求の範囲でいう失火判定禁止手段に相当する役割を果たす。
【００７４】
一方、ドリフト値［ｃ0 ］の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］が所定の範囲内である場合は、くすぶり状態が安定していると判断して、ステップ２０９に進み、補正イオン電流ピーク値［Ｐic］の分布特性における頻度５０％点［ｖ50］と標準偏差値［σ］とから正常燃焼時の補正イオン電流ピーク値［Ｐic］の分布特性を予測して当該補正イオン電流ピーク値［Ｐic］が失火判定値［Ｖth］以下となる予測頻度［Ａ（％）］を算出すると共に、実際の補正イオン電流ピーク値［Ｐic］が失火判定値［Ｖth］以下となる実頻度［ａ（％）］を算出し、この実頻度［ａ（％）］と予測頻度［Ａ（％）］との差分［Δ（％）＝ａ（％）−Ａ（％）］を算出する。
【００７５】
その後、図６のステップ１０８に進み、前記実施形態（１）と同様の処理によって、失火の有無を判定する。
【００７６】
以上説明した本実施形態（３）では、吸気行程中（又は圧縮行程中）にイオン電流検出回路３５の出力をドリフト値［ｃ0 ］（０点誤差）として読み込み、イオン電流ピーク値［Ｐi ］からドリフト値［ｃ0 ］を差し引いて求めた補正イオン電流ピーク値［Ｐic］を燃焼状態検出値として用いて、失火判定を行うようにしたので、イオン電流検出回路３５の出力がくすぶり漏洩電流によってドリフトしたとしても、イオン電流検出回路３５の出力をドリフト値［ｃ0 ］で補正して、ドリフト（０点誤差）のない正味のイオン電流ピーク値を求めることができ、失火判定精度を向上させることができる。
【００７７】
しかも、本実施形態（３）では、ドリフト値［ｃ0 ］の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］がそれぞれ所定の範囲内に無いときに、ドリフト値［ｃ0 ］の分布特性が不安定で、イオン電流ピーク値［Ｐi ］の補正精度が悪くなると判断して、失火判定を禁止するようにしたので、失火の誤検出を未然に防止できる。
【００７８】
尚、本実施形態（１）では、ドリフト値［ｃ0 ］の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］の両方が所定の範囲内にあるか否かで失火判定を実行するか否かを判定したが、頻度５０％点［ｃ50］と標準偏差値［σc ］のいずれか一方のみで失火判定を実行するか否かを判定するようにしても良い。《実施形態（４）》
上記各実施形態（１）〜（３）は、点火プラグ２７を介して検出したイオン電流ピーク値を燃焼状態検出値として用いたが、図１３乃至図１９に示す本発明の実施形態（４）では、エンジンの筒内圧力を検出する筒内圧力センサ（図示せず）をエンジンに取り付け、この筒内圧力センサで筒内圧力を複数のタイミングで検出し、それらの筒内圧力検出値に基づいて図示平均有効圧［Ｐe ］を算出して、この図示平均有効圧［Ｐe ］を燃焼状態検出値として用いる。
【００７９】
ここで、図示平均有効圧［Ｐe ］は、次式により算出される。
Ｐe ＝∫（ΔＰ）ｄＶ／Ｖo
ΔＰ：燃焼による筒内圧力上昇量
（図１３に示す完全失火時の筒内圧力との圧力差）
ｄＶ：筒内圧力サンプリング時のクランク角度における行程容積変化量
Ｖo ：エンジン排気量に相当する全行程容積
【００８０】
本実施形態（４）では、例えばＢＴＤＣ１２０℃ＡからＡＴＤＣ１２０℃Ａまでのクランク角度範囲で、例えば１０℃Ａ毎に筒内圧力センサによって筒内圧力をサンプリングし、燃焼による筒内圧力上昇量［ΔＰ］を、圧縮行程の筒内圧力と膨張行程の筒内圧力との圧力差によって求める（完全失火時の膨張行程の筒内圧力は圧縮行程の筒内圧力に等しくなる）。例えば、ＡＴＤＣ６０℃Ａにおける燃焼による筒内圧力上昇量［ΔＰ］は、ＡＴＤＣ６０℃Ａの筒内圧力からＢＴＤＣ６０℃Ａの筒内圧力を引き算して求められる。
【００８１】
更に、本実施形態（４）では、筒内圧力センサ出力［ＶＰ］（筒内圧力検出値）に対して、オフセット補正（０点補正）、ゲイン補正、ヒステリシス補正を行う。これらの補正は、図１４に示すように、圧縮行程の特定のクランク角度［θ1 、θ2 ］（例えばθ1 ＝ＢＴＤＣ６０℃Ａ、θ2 ＝ＢＴＤＣ２０℃Ａ）の筒内圧力センサ出力［ＶＰ1 、ＶＰ2 ］を用いる。
【００８２】
オフセット補正は、筒内圧力センサ出力［ＶＰ］の０点オフセット誤差（オフセット値）を補正するものであり、例えばＳＡＥ２０００−０１−０９３２に記載されている方法を用いて、筒内圧力センサ出力のオフセット値［ｃ0 ］（図１５参照）を、ＶＰ1 、ＶＰ2 とポリトロープ指数をパラメータとする関数式により算出する。
ｃ0 ＝ｆ（ＶＰ1 ，ＶＰ2 ，ポリトロープ指数）
【００８３】
そして、筒内圧力センサ出力［ＶＰ］からオフセット値［ｃ0 ］を引き算することで、筒内圧力センサ出力［ＶＰ］のオフセット補正を行う。
ＶＰ＝ＶＰ−ｃ0
そして、オフセット補正後の筒内圧力センサ出力［ＶＰ］を用いてゲイン補正、ヒステリシス補正を行う。
【００８４】
一方、ゲイン補正値［ＨＧ］は、圧縮行程の特定のクランク角度［θ1 、θ2 ］の筒内圧力センサ出力［ＶＰ1 、ＶＰ2 ］を用いて、両者の比から求める。
ＨＧ＝ＶＰ2 ／ＶＰ1
【００８５】
そして、筒内圧力センサ出力［ＶＰ］をゲイン補正値［ＨＧ］で割り算することで、筒内圧力センサ出力［ＶＰ］のゲイン補正を行う。
ＶＰ＝ＶＰ／ＨＧ
【００８６】
このゲイン補正によって、筒内圧力センサ毎のゲイン誤差をキャンセルすると共に、負荷変化時の筒内圧力センサ出力［ＶＰ］の変化も同時にキャンセルすることができる。その結果、筒内圧力センサ出力［ＶＰ］から燃焼状態検出値として求める図示平均有効圧も、筒内圧力センサ毎のゲイン誤差や負荷変化の影響を受けない安定した分布特性となる。
【００８７】
一方、ヒステリシス補正は、図１７に示すように、筒内圧力センサ固有のヒステリシス特性を補正するものであり、例えば、圧力上昇時と下降時とで異なる圧力検出感度の差［ＨＨ］を、筒内圧力センサ出力［ＶＰ］のサンプリング値の上昇、下降差により補正する。具体的には、前回のサンプリング値をＶＰ(i-1) 、今回のサンプリング値をＶＰ(i) とすると、圧力上昇時には、ＶＰ(i) を次式によりヒステリシス補正する。
ＶＰ(i) ＝ＶＰ(i-1) −｛ＶＰ(i-1) −ＶＰ(i) ｝／ＨＨ
【００８８】
このヒステリシス補正によって、圧力上昇時と下降時とで異なる圧力検出感度の差［ＨＨ］を補正することができ、圧力上昇時と下降時のいずれの場合でも、筒内圧力を精度良く検出することができる。
【００８９】
以上説明した本実施形態（４）の失火判定は、図１８及び１９の失火判定ルーチンによって実行される。この失火判定ルーチンは、燃焼サイクル毎に実行され、まずステップ３０１で、筒内圧力センサ出力［ＶＰ］を読み込み、次のステップ３０２で、この筒内圧力センサ出力［ＶＰ］を用いて、図示平均有効圧［Ｐe ］を次式により算出する。
Ｐe ＝∫（ΔＶＰ）ｄＶ／Ｖo
【００９０】
ここで、ΔＶＰは、燃焼による筒内圧力センサ出力の上昇量（筒内圧力上昇量）であり、圧縮行程の筒内圧力センサ出力と膨張行程の筒内圧力センサ出力との差によって求める。例えば、ＡＴＤＣ６０℃Ａにおける燃焼による筒内圧力センサ出力上昇量［ΔＶＰ］は、ＡＴＤＣ６０℃Ａの筒内圧力センサ出力からＢＴＤＣ６０℃Ａの筒内圧力センサ出力を引き算して求められる。
【００９１】
この後、ステップ３０３に進み、例えばＳＡＥ２０００−０１−０９３２に記載されている方法を用いて、筒内圧力センサ出力のオフセット値［ｃ0 ］（図１５参照）をＶＰ1 、ＶＰ2 とポリトロープ指数をパラメータとする関数式により算出する。
ｃ0 ＝ｆ（ＶＰ1 ，ＶＰ2 ，ポリトロープ指数）
【００９２】
そして、次のステップ３０４で、このオフセット値［ｃ0 ］を用いて、筒内圧力センサ出力［ＶＰ］のオフセット補正を行う。
ＶＰ＝ＶＰ−ｃ0
この後、ステップ３０５に進み、圧縮行程の特定のクランク角度［θ1 、θ2 ］の筒内圧力センサ出力［ＶＰ1 、ＶＰ2 ］を用いて、ゲイン補正値［ＨＧ］を次式により算出する。
ＨＧ＝ＶＰ2 ／ＶＰ1
【００９３】
そして、次のステップ３０６で、このゲイン補正値［ＨＧ］を用いて、次式により筒内圧力センサ出力［ＶＰ］のゲイン補正を行う。
ＶＰ＝ＶＰ／ＨＧ
【００９４】
この後、ステップ３０７に進み、筒内圧力センサの圧力検出感度の差［ＨＨ］を筒内圧力センサ出力［ＶＰ］のサンプリング値の上昇、下降差により求める。そして、次のステップ３０８で、この筒内圧力センサの圧力検出感度の差［ＨＨ］を用いて、所定の関数式により、筒内圧力センサ出力［ＶＰ］のヒステリシス補正を行う。これらステップ３０３〜３０８の処理が特許請求の範囲でいう補正手段としての役割を果たす。
【００９５】
この後、ステップ３０９に進み、オフセット補正、ゲイン補正、ヒステリシス補正が行われた筒内圧力センサ出力［ＶＰ］を用いて、図示平均有効圧［ＰeV］を燃焼状態検出値として次式により算出する。
ＰeV＝∫（ΔＶＰ）ｄＶ／Ｖo
【００９６】
その後、図１９のステップ３１０に進み、燃焼状態検出値［ＰeV］とオフセット値［ｃ0 ］の分布の算出が許可されているか否かを判定する。もし、燃料カット時等、分布の算出が禁止されている時には、ステップ３１２に進み、前回までの燃焼状態検出値［ＰeV］とオフセット値［ｃ0 ］のデータを格納するＰeVテーブルとｃ0 テーブルを初期化して、本ルーチンを終了する。
【００９７】
一方、分布の算出が許可されていれば、ステップ３１１に進み、ＰeVテーブルに今回の燃焼状態検出値［ＰeV］のデータを格納すると共に、ｃ0 テーブルに今回のオフセット値［ｃ0 ］のデータを格納する。
【００９８】
その後、ステップ３１３に進み、ＰeVテーブルとｃ0 テーブルに蓄積されたデータ数がそれぞれ所定数（例えば１０００）以上になったか否かを判定し、データ数が所定数以上になっていなければ、以降の処理を行うことなく、本ルーチンを終了する。そして、ＰeVテーブルとｃ0 テーブルに蓄積されたデータ数がそれぞれ所定数以上になった時点で、ステップ３１４に進み、燃焼状態検出値［ＰeV］の分布特性における頻度５０％点［ｖ50］と標準偏差値［σ］とを算出すると共に、オフセット値［ｃ0 ］の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］とを算出する。
【００９９】
この後、ステップ３１５に進み、オフセット値［ｃ0 ］の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］が所定の範囲内であるか否かを判定し、この頻度５０％点［ｃ50］と標準偏差値［σc ］が所定の範囲内に無いときには、燃焼状態検出値［ＰeV］の補正精度が悪いと判断して、燃焼状態検出値［ＰeV］の分布特性に基づく失火判定が禁止される。
【０１００】
この場合は、ステップ３２１に進み、前記ステップ３０２で算出した補正前の図示平均有効圧［Ｐe ］を所定の失火判定値［Ｖth］と比較し、図示平均有効圧［Ｐe ］が失火判定値［Ｖth］よりも小さければ、失火発生と判断して、ステップ３２２に進み、失火判定フラグＭＦＴを「１」にセットする。これに対し、図示平均有効圧［Ｐe ］が失火判定値［Ｖth］以上であれば、失火無しと判断して、ステップ３２３に進み、失火判定フラグＭＦＴを「０」にセットする。
【０１０１】
一方、前記ステップ３１５で、オフセット値［ｃ0 ］の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］が所定の範囲内であると判定された場合は、燃焼状態検出値［ＰeV］の補正精度が良いと判断して、ステップ３１６に進み、燃焼状態検出値［ＰeV］の分布特性における頻度５０％点［ｖ50］と標準偏差値［σ］とから正常燃焼時の燃焼状態検出値［ＰeV］の分布特性を予測して当該燃焼状態検出値［ＰeV］が失火判定値［Ｖth］以下となる予測頻度［Ａ（％）］を算出すると共に、実際の燃焼状態検出値［ＰeV］が失火判定値［Ｖth］以下となる実頻度［ａ（％）］を算出し、この実頻度［ａ（％）］と予測頻度［Ａ（％）］との差分［Δ（％）＝ａ（％）−Ａ（％）］を算出する。
【０１０２】
その後、図６のステップ１０８に進み、前記実施形態（１）と同様の処理によって、失火の有無を判定する。
以上説明した本実施形態（４）でも、燃焼状態検出値［ＰeV］の分布特性に基づいて失火の有無を精度良く判定することができる。
【０１０３】
尚、本実施形態（４）では、筒内圧力センサ出力に基づいて図示平均有効圧を算出して、この図示平均有効圧を燃焼状態検出値として用いるようにしたが、図示平均有効圧の代わりに、仕事率、発熱割合、仕事量のいずれかを燃焼状態検出値として算出するようにしても良い。
【０１０４】
ここで、図示平均有効圧をＰe （Ｎ／ｍ2 ）とし、ピストン頂面の平面積をＳ（ｍ2 ）、ピストンのストロークをＬ（ｍ）とすると、１気筒当たりの膨張行程の上死点から下死点までの仕事量は、次式で算出される。
仕事量＝Ｐe ×Ｓ×Ｌ
【０１０５】
また、４サイクルエンジンの場合は、２回転に１回の割合で膨張行程があるため、エンジン回転速度をＮ（ｒｐｍ）とすれば、仕事率は次式で算出される。
0004100492.tif 000002
【０１０６】
また、発熱割合の算出には、膨張行程の特定のクランク角度［θ3 、θ4 ］（例えばθ3 ＝ＡＴＤＣ２０℃Ａ、θ4 ＝ＡＴＤＣ６０℃Ａ）の筒内圧力センサ出力［ＶＰ3 、ＶＰ4 ］を用い、次式により発熱割合を算出する。
発熱割合＝ＶＰ3 ／ＶＰ4
【０１０７】
《実施形態（５）》
本実施形態（５）では、上記実施形態（４）と同様の方法で、図示平均有効圧［ＰeV］を燃焼状態検出値として算出し、更に、圧縮行程中の所定クランク角度で読み込んだ筒内圧力センサ出力を基準出力［ＶＰbase］とし、燃焼状態検出値［ＰeV］を基準出力ＶＰbaseで割り算した値［ＰeV／ＶＰbase］が失火判定値［Ｖth］よりも小さいか否かで、失火の有無を判定する。
【０１０８】
例えば、図１９のステップ３１５で、オフセット値［ｃ0 ］の分布特性における頻度５０％点［ｃ50］と標準偏差値［σc ］が所定の範囲内に無いと判定されたときに、ステップ３２１の処理に代えて、燃焼状態検出値［ＰeV］を基準出力［ＶＰbase］で割り算した値［ＰeV／ＶＰbase］が失火判定値［Ｖth］よりも小さいか否かで、失火の有無を判定する。そして、ＰeV／ＶＰbaseが失火判定値［Ｖth］よりも小さければ、失火発生と判断して、失火判定フラグＭＦＴを「１」にセットし、図示平均有効圧［Ｐe ］が失火判定値［Ｖth］以上であれば、失火無しと判断して、失火判定フラグＭＦＴを「０」にセットする（ステップ３２２、３２３）。
【０１０９】
尚、燃焼状態検出値［ＰeV］と基準出力［ＶＰbase］は、オフセット補正、ゲイン補正、ヒステリシス補正を行っても良いし、行わなくても良い。
【０１１０】
《実施形態（６）》
前記実施形態（１）〜（３）のいずれかの方法でイオン電流ピーク値から失火判定する手段と、前記実施形態（４）又は（５）の方法で筒内圧力センサ出力から失火判定する手段とを併用した構成としても良い。この場合、エンジン運転状態等に応じて、失火判定精度の高い方の失火判定手段を選択して失火判定を行ったり、或は、同時に２つの失火判定手段で失火判定を行い、２つの失火判定手段の両方が失火発生と判定したときのみ、最終的に失火発生と判定するようにしても良い。
【０１１１】
《実施形態（７）》
ところで、上記各実施形態（１）〜（６）では、失火判定値［Ｖth］を、演算処理の簡略化のために予め設定した固定値としたが、図２０に示すように、イオン電流検出回路３５で検出したイオン電流ピーク値［Ｐi ］は、点火プラグ２７のくすぶりの有無や燃焼状態のばらつき等によってずれることがあるため、失火判定値［Ｖth］を初期設定値［Ｖ1 ］で固定した場合は、点火プラグ２７のくすぶりの有無や燃焼状態のばらつき等によるイオン電流ピーク値［Ｐi ］のずれが大きくなると、失火サイクルを正常燃焼サイクルと誤判定することが懸念される［図２０（ｂ）参照］。
【０１１２】
そこで、本発明の実施形態（７）では、図２３の失火判定ルーチンを燃焼サイクル毎に実行し、そのステップ４００で図２４の失火判定値設定ルーチンを実行することで、イオン電流検出回路３５で検出したイオン電流ピーク値［Ｐi ］の分布特性に基づいて失火判定値［Ｖth］を設定するようにしている。
【０１１３】
ここで、本実施形態（７）の失火判定方法を図２０〜図２２を用いて説明する。失火判定値［Ｖth］の初期設定値［Ｖ1 ］を設定する際には、図２０（ａ）に示すように、予め実験又はシミュレーション等で、点火プラグ２７のくすぶり無しの状態で失火サイクルの分布パターンを測定し、この失火サイクルの分布パターンに属するイオン電流ピーク値［Ｐi ］のうちの最大のイオン電流ピーク値又はそれより少し大きな値を初期設定値［Ｖ1 ］として設定する。
【０１１４】
また、予め実験又はシミュレーション等で、失火サイクルの分布パターンと正常燃焼サイクルの分布パターンとの間の中間位置付近に仮の失火判定値［Ｖ2 ］を設定する。この仮の失火判定値［Ｖ2 ］は、図２０（ｂ）や図２１に示すように、点火プラグ２７のくすぶり発生時でも、失火サイクルの分布パターンが仮の失火判定値［Ｖ2 ］に重ならないように設定する。従って、図２０（ａ）に示すように、くすぶり無し時には、仮の失火判定値［Ｖ2 ］が失火サイクルの分布パターンからかなり離れた位置に存在することになる。
【０１１５】
次に、イオン電流ピーク値［Ｐi ］の分布特性を評価する各パラメータを図２１に基づいて説明する。
ＮＳは失火サイクルの分布パターンの高さ（最大検出頻度）であり、失火サイクルの分布パターンが含まれる範囲である０≦Ｐi ≦Ｖ2 の範囲内で最も高い頻度［Ｎ］で検出されたイオン電流ピーク値［ＰＳ］の検出頻度である。
【０１１６】
また、ＮＢは正常燃焼サイクルの分布パターンの高さ（最大検出頻度）であり、正常燃焼サイクルの分布パターンが含まれる範囲であるＶ2 ＜Ｐi の範囲内で最も高い頻度［Ｎ］で検出されたイオン電流ピーク値［ＰＢ］の検出頻度である。尚、このＰＢやＰＳは、イオン電流ピーク値［Ｐi ］の分布特性を統計処理するために所定の幅を持った分割区分値に換算して表される。尚、全サイクル失火時（ＮＢ＝０）の場合は、ＰＢは最大分割区分値に設定される。
【０１１７】
また、Ｈは、両分布パターンの最大検出頻度位置［ＰＳ］と［ＰＢ］との間で検出頻度［Ｎ］が所定値（例えば１）よりも小さい領域（つまり失火サイクルと正常燃焼サイクルの両分布パターン間のノイズ領域）の幅であり、分割区分の数に換算して表される。
【０１１８】
また、Ｐo は、失火サイクルの分布パターンに属するイオン電流ピーク値［Ｐi ］のうちの最大のイオン電流ピーク値よりも僅かに大きい値であって、後述する新たな失火判定値に相当し、分割区分値に換算して表される。Ｐo を算出する場合は、失火サイクルの分布パターンの最大検出頻度位置の分割区分値［ＰＳ］と仮の失火判定値［Ｖ2 ］との範囲内（ＰＳ＜Ｐi ＜Ｖ2 ）で、検出頻度［Ｎ］が所定値（例えば１）よりも小さい領域（ノイズ領域）における最小のイオン電流ピーク値を新たな失火判定値［Ｐo ］として求める。
【０１１９】
この場合、失火サイクルの分布パターンと正常燃焼サイクルの分布パターンとの分離度［ｆ］は、両分布パターン間のノイズ領域の幅［Ｈ］と両分布パターンの高さパラメータ［Ｗ］とを用いて次式により算出する。
ｆ＝Ｈ×Ｗ
【０１２０】
ここで、両分布パターンの高さパラメータ［Ｗ］は、両分布パターンの最大検出頻度［ＮＳ］、［ＮＢ］を足し合わせた値である。
Ｗ＝ＮＳ＋ＮＢ
両分布パターンの分離度［ｆ］は、大きい値になるほど、両分布パターンがより明瞭に分離していることを意味する。
【０１２１】
図２２に示すように、不安定燃焼時には、正常燃焼サイクルと失火サイクルの両分布パターンが重なり合って、両分布パターン間のノイズ領域の幅［Ｈ］が０になるため、分離度［ｆ］も０となる。
【０１２２】
本実施形態（７）では、両分布パターンの分離度［ｆ］と高さパラメータ［Ｗ］とに基づいて両分布パターンが明瞭に分離しているか否かを判定し、両分布パターンが明瞭に分離していると判定した場合に、失火サイクルの分布パターンに基づいて新たな失火判定値［Ｐo ］を算出する。もし、両分布パターンが明瞭に分離していないと判定した場合は、失火判定値［Ｐo ］の算出を行わずに、前回の失火判定値［Ｐo ］の記憶値をそのまま維持する。
【０１２３】
そして、前記実施形態（３）で説明したように、イオン電流検出回路３５で検出するイオン電流ピーク値［Ｐi ］が点火プラグ２７のくすぶりによりドリフトすることを考慮して、前記実施形態（３）と同様の方法で検出したイオン電流ピーク値［Ｐi ］のドリフト値［ｃ0 ］が所定値［Ｋ3 ］以上であれば、失火判定値［Ｖth］として、失火サイクルの分布パターンに基づいて算出した新たな失火判定値［Ｐo ］を用い、その反対に、ドリフト値［ｃ0 ］が所定値［Ｋ3 ］よりも小さければ、失火判定値［Ｖth］として、初期設定値［Ｖ1 ］を用いる。
【０１２４】
以上説明した失火判定値［Ｖth］の設定は、図２３の失火判定ルーチンのステップ４００で起動される図２４の失火判定値設定ルーチンによって実行される。尚、図２３の失火判定ルーチンのステップ４００を除く各ステップの処理は、前記実施形態（３）で説明した図１２の失火判定ルーチンの各ステップの処理と同じであるので、説明を省略する。
【０１２５】
図２３の失火判定ルーチンのステップ４００で起動される図２４の失火判定値設定ルーチンは、特許請求の範囲でいう失火判定値算出手段としての役割を果たす。本ルーチンが起動されると、まずステップ４０１で、正常燃焼サイクルと失火サイクルの両分布パターンの最大検出頻度［ＮＳ］、［ＮＢ］を足し合わせて高さパラメータ［Ｗ］を求める。
Ｗ＝ＮＳ＋ＮＢ
【０１２６】
この後、ステップ４０２に進み、正常燃焼サイクルと失火サイクルの両分布パターンの分離度［ｆ］を、両分布パターン間のノイズ領域の幅［Ｈ］と両分布パターンの高さパラメータ［Ｗ］とを用いて次式により算出する。
ｆ＝Ｈ×Ｗ
【０１２７】
この際、両分布パターン間のノイズ領域の幅［Ｈ］は、両分布パターンの最大検出頻度位置［ＰＳ］と［ＰＢ］との間で検出頻度［Ｎ］が所定値（例えば１）よりも小さい領域の幅を算出して求めれば良い。
【０１２８】
そして、次のステップ４０３で、失火判定値算出条件が成立しているか否かを次の２つの条件▲１▼、▲２▼を両方とも満たすか否かで判定する。
▲１▼両分布パターンの分離度［ｆ］が所定値［Ｋ1 ］以上であること
（ｆ≧Ｋ1 ）
▲２▼両分布パターンの高さパラメータ［Ｗ］が所定値［Ｋ2 ］以上であること
（Ｈ≧Ｋ2 ）
【０１２９】
これら２つの条件▲１▼、▲２▼のいずれか１つでも満たさない条件があれば、失火判定値算出条件が成立せず、ステップ４０４の失火判定値［Ｐo ］の算出を行わずに、ステップ４０５に進む。
【０１３０】
これに対して、上記２つの条件▲１▼、▲２▼を両方とも満たせば、失火判定値算出条件が成立し、ステップ４０４に進み、失火サイクルの分布パターンに基づいて新たな失火判定値［Ｐo ］を算出し、マイクロコンピュータ４１のメモリ（記憶手段）に記憶されている失火判定値［Ｐo ］の記憶値を更新する。この新たな失火判定値［Ｐo ］は、失火サイクルの分布パターンに属する補正イオン電流ピーク値［Ｐic］のうちの最大の補正イオン電流ピーク値よりも僅かに大きい値に相当し、これを算出する場合は、失火サイクルの分布パターンのピーク位置の分割区分値［ＰＳ］と仮の失火判定値［Ｖ2 ］との範囲内（ＰＳ＜Ｐic＜Ｖ2 ）で、検出頻度［Ｎ］が所定値（例えば１）よりも小さい領域（ノイズ領域）における最小の補正イオン電流ピーク値を新たな失火判定値［Ｐo ］として求めれば良い。尚、補正イオン電流ピーク値［Ｐic］は、ステップ２０６でイオン電流ピーク値［Ｐi ］からドリフト値［ｃ0 ］を差し引いて求められる。上記ステップ４０３の処理は、特許請求の範囲でいう許可／禁止判定手段としての役割を果たす。
【０１３１】
以上のようにして、新たな失火判定値［Ｐo ］を算出した後、ステップ４０５に進み、イオン電流ピーク値［Ｐi ］のドリフト値［ｃ0 ］が所定値［Ｋ3 ］以上であるか否かを判定し、ドリフト値［ｃ0 ］が所定値［Ｋ3 ］以上であれば、ステップ４０６に進み、上記ステップ４０４で算出した新たな失火判定値［Ｐo ］を今回使用する失火判定値［Ｖth］として選択する。尚、上記ステップ４０４を飛び越した場合（失火判定値［Ｐo ］の算出が行われなかった場合）は、過去に本ルーチンを起動した時にステップ４０４で算出された失火判定値［Ｐo ］の記憶値を用いれば良い。
【０１３２】
一方、イオン電流ピーク値［Ｐi ］のドリフト値［ｃ0 ］が所定値［Ｋ3 ］よりも小さければ、ステップ４０７に進み、初期設定値［Ｖ1 ］を今回使用する失火判定値［Ｖth］として選択する。尚、上記ステップ４０５〜４０７の処理は、特許請求の範囲でいう失火判定値選択手段としての役割を果たす。
【０１３３】
以上のようにして、失火判定値［Ｖth］を設定した後、図２３のステップ２０９に進み、補正イオン電流ピーク値［Ｐic］の分布特性における頻度５０％点［ｖ50］と標準偏差値［σ］とから正常燃焼時の補正イオン電流ピーク値［Ｐic］の分布特性を予測して当該補正イオン電流ピーク値［Ｐic］が失火判定値［Ｖth］以下となる予測頻度［Ａ（％）］を算出すると共に、実際の補正イオン電流ピーク値［Ｐic］が失火判定値［Ｖth］以下となる実頻度［ａ（％）］を算出し、この実頻度［ａ（％）］と予測頻度［Ａ（％）］との差分［Δ（％）＝ａ（％）−Ａ（％）］を算出する。
【０１３４】
その後、図６のステップ１０８に進み、前記実施形態（１）と同様の処理によって、失火の有無を判定する。
【０１３５】
以上説明した本実施形態（７）によれば、イオン電流ピーク値［Ｐi ］の分布特性に基づいて失火判定値［Ｖth］を設定するようにしたので、点火プラグ２７のくすぶりの有無や燃焼状態のばらつき等によりイオン電流ピーク値［Ｐi ］の分布特性がずれたとしても、そのずれ分を考慮した失火判定値［Ｖth］を設定することができ、点火プラグ２７のくすぶりの有無や燃焼状態のばらつき等によるイオン電流ピーク値［Ｐi ］のずれの影響をあまり受けずに、失火サイクルと正常燃焼サイクルとを精度良く判別することができ、長期間にわたって信頼性の高い失火判定を行うことができる。
【０１３６】
しかも、本実施形態（７）では、イオン電流ピーク値［Ｐi ］の分布特性を表すパラメータである両分布パターンの分離度［ｆ］と高さパラメータ［Ｗ］に基づいて新たな失火判定値［Ｐo ］の算出を許可するか禁止するかを判定するようにしたので、イオン電流ピーク値［Ｐi ］のばらつきが少ないときのみ（つまり正常燃焼サイクルと失火サイクルの両分布パターンが明瞭に分離しているときのみ）、失火判定値［Ｖth］を算出して、イオン電流ピーク値［Ｐi ］のばらつきが大きいときには、失火判定値［Ｖth］を算出せずに済み、イオン電流ピーク値［Ｐi ］のばらつきによる失火判定精度の低下を防止することができる。
【０１３７】
更に、本実施形態（７）では、イオン電流ピーク値［Ｐi ］のドリフト値［ｃ0 ］が所定値［Ｋ3 ］以上であるか否かで、今回使用する失火判定値［Ｖth］として、イオン電流ピーク値［Ｐi ］の分布特性に基づいて算出した新たな失火判定値［Ｐo ］を選択するか、初期設定値［Ｖ1 ］を選択するかを判定するようにしたので、くすぶりの有無に応じて最適な失火判定値［Ｖth］を設定することができて、くすぶりの有無に左右されない信頼性の高い失火判定を行うことができる。
【０１３８】
尚、イオン電流ピーク値［Ｐi ］の分布特性に基づいて新たな失火判定値［Ｐo ］を算出する際に、エンジン運転条件毎又はくすぶり度合毎（ドリフト値毎）に新たな失火判定値［Ｐo ］を算出してメモリに記憶し、エンジン運転条件又はくすぶり度合に応じて、メモリの記憶値の中から適切な失火判定値［Ｐo ］を選択するようにしても良い。
【０１３９】
また、減速時燃料カット領域で測定したイオン電流ピーク値［Ｐi ］の分布パターンを失火サイクルの分布パターンと見なして、その失火サイクルの分布パターンに基づいて新たな失火判定値［Ｐo ］を算出してメモリに記憶しておき、燃料カット復帰後にメモリに記憶されている失火判定値［Ｐo ］を読み出して使用するようにしても良い。
【０１４０】
また、本実施形態（７）では、イオン電流ピーク値［Ｐi ］からドリフト値［ｃ0 ］を差し引いて求めた補正イオン電流ピーク値［Ｐic］の分布特性に基づいて新たな失火判定値［Ｐo ］を算出して失火判定を行うようにしたが、ドリフト値［ｃ0 ］を差し引かずに、イオン電流ピーク値［Ｐi ］の分布特性に基づいて新たな失火判定値［Ｐo ］を算出して失火判定を行うようにしても良い。
【０１４１】
また、本実施形態（７）では、点火プラグ２７を用いて検出したイオン電流ピーク値［Ｐi ］を燃焼状態検出値として用いるようにしたが、筒内圧力センサ等の他の失火検出センサを用いて、その失火検出センサの出力の分布特性に基づいて新たな失火判定値［Ｐo ］を算出して失火判定を行うようにしても良い。
【０１４２】
また、本実施形態（７）では、イオン電流ピーク値［Ｐi ］の分布特性に基づいて新たな失火判定値［Ｐo ］の算出を許可するか禁止するかを判定するようにしたが、エンジン運転状態に基づいて新たな失火判定値［Ｐo ］の算出を許可するか禁止するかを判定するようにしても良い。例えば、イオン電流出力が安定するエンジン運転状態のときに、正常燃焼サイクルと失火サイクルの両分布パターンが明瞭に分離していると判断して、新たな失火判定値［Ｐo ］の算出を許可し、イオン電流出力が安定しないエンジン運転状態のときに、新たな失火判定値［Ｐo ］の算出を禁止するようにしても良い。
【０１４３】
また、本実施形態（７）では、正常燃焼サイクルと失火サイクルの両分布パターンの最大検出頻度［ＮＳ］、［ＮＢ］を求めるようにしたが、予め定めた出力分布帯毎の重心位置を求めても良い等、分布パターンの判別方法は適宜変更しても良い。
【０１４４】
また、本実施形態（７）では、イオン電流ピーク値［Ｐi ］の分布特性に基づいて算出した失火判定値［Ｐo ］と初期設定値［Ｖ1 ］とをイオン電流ピーク値［Ｐi ］のドリフト値［ｃ0 ］に応じて選択するようにしたが、エンジン運転状態に応じて失火判定値［Ｐo ］と初期設定値［Ｖ1 ］とを選択するようにしても良い。
【０１４５】
或は、イオン電流ピーク値［Ｐi ］の分布特性に基づいて新たな失火判定値［Ｐo ］を算出する機能を省略し、予め実験又はシミュレーション等で、エンジン運転状態毎及び／又はイオン電流ピーク値［Ｐi ］の分布特性毎に複数の失火判定値［Ｖth］を用意してメモリに記憶しておき、エンジン運転状態及び／又はイオン電流ピーク値［Ｐi ］の分布特性に応じて前記複数の失火判定値［Ｖth］の中から今回使用する失火判定値［Ｖth］を選択するようにしても良い。このようにしても、点火プラグ２７のくすぶりの有無や燃焼状態のばらつき等に応じて、複数の失火判定値［Ｖth］の中から最適な失火判定値［Ｖth］を選択することができ、点火プラグ２７のくすぶりの有無や燃焼状態のばらつき等の影響の少ない信頼性の高い失火判定を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施形態（１）における点火制御系とイオン電流検出回路の構成を示す回路図
【図２】実施形態（１）の各部の信号波形を示すタイムチャート
【図３】実施形態（１）の正常燃焼時のイオン電流ピーク値［Ｐi ］の分布特性を説明する図
【図４】実施形態（１）の正常燃焼時と失火発生時のイオン電流ピーク値［Ｐi ］の分布特性の変化を説明する図
【図５】実施形態（１）の失火判定ルーチンの前半部の処理の流れを示すフローチャート
【図６】実施形態（１）の失火判定ルーチンの後半部の処理の流れを示すフローチャート
【図７】実施形態（２）で用いる失火判定方法切換マップを概念的に示す図
【図８】実施形態（２）の失火判定ルーチンの後半部の処理の流れを示すフローチャート
【図９】実施形態（３）の各部の信号波形を示すタイムチャート
【図１０】実施形態（３）の正常燃焼時と失火発生時のイオン電流ピーク値［Ｐi ］の分布特性の変化を説明する図
【図１１】実施形態（３）の失火判定許可／禁止切換マップを概念的に示す図
【図１２】実施形態（３）の失火判定ルーチンの前半部の処理の流れを示すフローチャート
【図１３】実施形態（４）で検出する筒内圧力の変化特性を示すタイムチャート
【図１４】筒内圧力センサ出力の変化特性を示すタイムチャート
【図１５】筒内圧力センサ出力のオフセット補正を説明する図
【図１６】筒内圧力センサ出力のゲイン補正を説明する図
【図１７】筒内圧力センサ出力のヒステリシス補正を説明する図
【図１８】実施形態（４）の失火判定ルーチンの前半部の処理の流れを示すフローチャート
【図１９】実施形態（４）の失火判定ルーチンの後半部の処理の流れを示すフローチャート
【図２０】（ａ）はくすぶり無し時のイオン電流ピーク値［Ｐi ］の分布特性を説明する図、（ｂ）はくすぶり発生時のイオン電流ピーク値［Ｐi ］の分布特性を説明する図
【図２１】くすぶり発生時のイオン電流ピーク値［Ｐi ］の分布特性を用いて失火判定値［Ｖth］の設定方法を説明するための図
【図２２】くすぶり無しで不安定燃焼時のイオン電流ピーク値［Ｐi ］の分布特性を説明する図
【図２３】実施形態（７）の失火判定ルーチンの前半部の処理の流れを示すフローチャート
【図２４】実施形態（７）の失火判定値設定ルーチンの処理の流れを示すフローチャート
【符号の説明】
２１…点火コイル、２２…一次コイル、２３…バッテリ、２４…イグナイタ、２５…パワートランジスタ、２６…二次コイル、２７…点火プラグ、３１…イオン電流検出抵抗、３３…反転増幅回路、３４…エンジン制御回路、３５…イオン電流検出回路（燃焼状態検出手段）、３６…中心電極、３７…接地電極、３８…ノイズマスク、３９…ピークホールド回路、４１…マイクロコンピュータ（分布特性評価手段，失火判定手段，ドリフト値検出手段，出力補正手段，失火判定禁止手段，失火判定値算出手段，許可／禁止判定手段，失火判定値選択手段）。
【図１】
0004100492.tif 000003
【図２】
0004100492.tif 000004
【図３】
0004100492.tif 000005
【図４】
0004100492.tif 000006
【図５】
0004100492.tif 000007
【図６】
0004100492.tif 000008
【図７】
0004100492.tif 000009
【図８】
0004100492.tif 000010
【図９】
0004100492.tif 000011
【図１０】
0004100492.tif 000012
【図１１】
0004100492.tif 000013
【図１２】
0004100492.tif 000014
【図１３】
0004100492.tif 000015
【図１４】
0004100492.tif 000016
【図１５】
0004100492.tif 000017
【図１６】
0004100492.tif 000018
【図１７】
0004100492.tif 000019
【図１８】
0004100492.tif 000020
【図１９】
0004100492.tif 000021
【図２０】
0004100492.tif 000022
【図２１】
0004100492.tif 000023
【図２２】
0004100492.tif 000024
【図２３】
0004100492.tif 000025
【図２４】
0004100492.tif 000026