(57)【特許請求の範囲】
【請求項１】
内燃機関の回転数や負荷等の運転状態を検出する運転状態検出手段と、
前記内燃機関の失火判定期間内の個々の失火を検出する単失火検出手段と、
該単失火検出手段によって失火が検出された場合には、所定のカウンタ変化量を積算して失火カウンタ値を求める失火カウンタ値積算手段と、
前記単失火検出手段によって失火が検出された場合には、前記運転状態検出手段によって検出された前記失火検出時の運転状態に基づいて、失火判定値変更量を設定する失火判定値変更量設定手段と、
該失火判定値変更量設定手段によって前記失火検出時の運転状態に基づいて設定された失火判定値変更量に基づいて、前記失火検出毎に仮失火判定値を算出し、前記算出された失火検出毎の仮失火判定値に基づいて前記失火判定期間の失火判定値を変更する失火判定値変更手段と、
該失火判定値変更手段によって変更された失火判定値と、前記失火カウンタ値積算手段によって求められた失火カウンタ値とを比較して、前記失火判定期間毎の失火の有無を判定する総合失火判定手段と、
を備えたことを特徴とする内燃機関用失火検出装置。
【請求項２】
内燃機関の回転数や負荷等の運転状態を検出する運転状態検出手段と、
前記内燃機関の失火判定期間内の個々の失火を検出する単失火検出手段と、
前記失火判定期間にわたって前記単失火検出手段により失火が検出される毎の前記運転状態検出手段により検出された運転状態に応じて設定された仮失火判定値に基づいて変更される前記失火判定期間の失火判定値と、前記失火判定期間にわたって前記単失火検出手段により検出された検出結果とに基づいて前記失火判定期間毎の失火の有無を判定する総合失火判定手段と
を備えたことを特徴とする内燃機関用失火検出装置。
【請求項３】
前記総合失火判定手段は、
前記単失火検出手段により失火が検出される毎に前記運転状態検出手段により検出された運転状態に基づいて前記失火判定期間にわたって前記単失火検出手段により失火が検出される毎の前記運転状態検出手段により検出された運転状態に応じて設定された仮失火判定値に基づいて前記失火判定期間の失火判定値を変更する失火判定値変更手段を備え、
前記失火判定値変更手段により前記単失火検出手段により失火が検出される毎に変更された失火判定値と前記単失火検出手段により検出された検出結果とに基づいて前記失火判定期間毎の失火の有無を判定することを特徴とする請求項２に記載の内燃機関用失火検出装置。
【請求項４】
前記総合失火判定手段は、
前記単失火検出手段により失火が検出された場合には、所定のカウンタ変化量を積算して失火カウンタ値を求める失火カウンタ値積算手段と、
前記単失火検出手段により失火が検出される毎の前記運転状態検出手段によって検出された運転状態に基づいて失火判定値変更量を設定する失火判定値変更量設定手段と、
該失火判定値変更量設定手段によって前記失火検出時の運転状態に基づいて設定された失火判定値変更量に基づいて、前記失火検出毎に仮失火判定値を算出し、前記算出された失火検出毎の仮失火判定値に基づいて前記失火判定期間の失火判定値を変更する失火判定値変更手段と、
を備え、
前記失火判定値変更手段により変更された失火判定値と、前記失火カウンタ値積算手段によって求められた失火カウンタ値とを比較して、前記失火判定期間毎の失火の有無を判定することを特徴とする請求項２に記載の内燃機関用失火検出装置。
【請求項５】
前記失火判定値変更手段は、前記失火判定期間にわたって、単失火検出毎に逐次、前記失火判定値を変更することを特徴とする請求項１、３又は４に記載の内燃機関用失火検出装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、内燃機関に発生する失火を検出する内燃機関用失火検出装置に関する。
【０００２】
【従来の技術】
従来より、内燃機関に失火が発生すると、未燃焼ガスが触媒に排出されて触媒の溶損・劣化を生ずるので、失火を検出して触媒の損傷を未然に防止する装置が開発されている。
【０００３】
この失火を検出する装置としては、例えば図１２に示す様に、エンジンの回転変動に基づいて各点火時期における個々の失火（以下単失火と称す）を検出し、所定の失火判定期間にわたり、一定のカウントアップ量の失火カウンタで単失火の回数をカウントし、失火カウンタ値が所定の失火判定値に達した場合には、実際に失火が発生したと判断して運転者に報知する装置が知られている。つまり、この装置では、１回の失火検出で失火と判断するのではなく、例えば所定点火回数における失火の発生頻度（失火率）に基づいて、より正確に失火の判断を行なっている。
【０００４】
ところが、失火の検出精度は、運転状態によって異なるので、そのための対策が必要である。例えばエアコン等による外部負荷が加わった時には、回転変動が生ずるので失火の誤検出が生じ易くなってしまう。また、これとは別に、例えば高回転の時に失火が発生すると、低回転の時よりも多くの未燃焼ガスが排出されて触媒が損傷し易くなるので、運転状態に応じて失火の検出精度が変化するという問題は重要である。
【０００５】
そのため、近年では、この運転状態の変化を考慮に入れた、下記▲１▼〜▲３▼に示す各種の装置が提案されている。
▲１▼例えば、回転変動から個々の失火（単失火）を検出する場合、失火判定期間毎の検出精度を向上するために、運転状態に応じて個々の失火の判定値を変更する装置が提案されている（特開平４−２９２５５６号公報参照）。
【０００６】
▲２▼また、運転状態を考慮に入れるために、燃焼圧から各々の運転状態における失火率を求め、この失火率が運転状態に応じて定められた基準失火率を上回る場合には、失火と判断する装置が提案されている（特開平４−２０９９４９号公報参照）。
【０００７】
▲３▼更に、回転変動の発生回数から求めた失火率が、負荷や回転数の運転状態に応じて定められた許容失火率を上回る場合には、燃料をカットする装置が提案されている（特開平４−１９４３３７号公報参照）。
【０００８】
【発明が解決しようとする課題】
しかしながら、上述した装置では、下記の問題があり必ずしも十分でない。
例えば、▲１▼の装置では、単失火の判定は正確になるかも知れないが、それらを所定期間カウントした失火率に基づいて、失火判定期間毎に失火発生を判断する場合（総合失火検出）には、従来通りに（運転状態を加味しない）固定した失火判定値を使用しているに過ぎない。
【０００９】
また、▲２▼の装置では、失火発生を判断する基準失火率が、失火を判断する時点の運転状態によって定められるので、失火判定期間中に運転状態が変化した場合には、必ずしも正確に失火発生を判断することができない。例えば、失火判定期間の前半は高回転で後半が低回転だとすると、低回転の運転状態に応じた基準失火率に基づいて判断するので、失火と判定すべき場合でも失火と判定されない場合がある。
【００１０】
更に、▲３▼の装置では、燃料のカットを判断する許容失火率が、失火を判断する時点の運転状態によって定められるので、必ずしも所望のタイミングで燃料カットを実行できるとは限らない。
本発明は、前記課題を解決するためになされ、失火判定期間中に運転状態が変動した場合でも、的確に失火の発生を判断できる内燃機関用失火検出装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
前記目的を達成するための請求項１の発明は、図１に例示する様に、
内燃機関の回転数や負荷等の運転状態を検出する運転状態検出手段と、
前記内燃機関の失火判定期間内の個々の失火を検出する単失火検出手段と、
該単失火検出手段によって失火が検出された場合には、所定のカウンタ変化量を積算して失火カウンタ値を求める失火カウンタ値積算手段と、
前記単失火検出手段によって失火が検出された場合には、前記運転状態検出手段によって検出された前記失火検出時の運転状態に基づいて、失火判定値変更量を設定する失火判定値変更量設定手段と、
該失火判定値変更量設定手段によって前記失火検出時の運転状態に基づいて設定された失火判定値変更量に基づいて、前記失火検出毎に仮失火判定値を算出し、前記算出された失火検出毎の仮失火判定値に基づいて前記失火判定期間の失火判定値を変更する失火判定値変更手段と、
該失火判定値変更手段によって変更された失火判定値と、前記失火カウンタ値積算手段によって求められた失火カウンタ値とを比較して、前記失火判定期間毎の失火の有無を総合的に判定する総合失火判定手段と、
を備えたことを特徴とする内燃機関用失火検出装置を要旨とする。
また、請求項２の発明は、
内燃機関の回転数や負荷等の運転状態を検出する運転状態検出手段と、
前記内燃機関の失火判定期間内の個々の失火を検出する単失火検出手段と、
前記失火判定期間にわたって前記単失火検出手段により失火が検出される毎の前記運転状態検出手段により検出された運転状態に応じて設定された仮失火判定値に基づいて変更される前記失火判定期間の失火判定値と、前記失火判定期間にわたって前記単失火検出手段により検出された検出結果とに基づいて前記失火判定期間毎の失火の有無を判定する総合失火判定手段と
を備えたことを特徴とする内燃機関用失火検出装置を要旨とする。
【００１２】
【作用】
請求項１の発明では、単失火検出手段によって、内燃機関の点火時期における個々の失火を検出し、失火が検出された場合には、失火カウンタ値積算手段によって、カウンタ変化量を積算して失火カウンタ値を求める。また、単失火検出手段によって失火が検出された場合には、失火判定値変更量設定手段によって、運転状態検出手段により検出された失火検出時の運転状態に基づいて、判定の基準となる失火判定値を変更する失火判定値変更量を設定し、この失火検出時の運転状態に基づいて設定された失火判定値変更量に基づいて算出された仮失火判定値を用いて、失火判定値変更手段によって、失火判定期間の失火判定値を変更する。そして、総合失火判定手段によって、失火判定値変更手段により変更された失火判定値と失火カウンタ値積算手段によって求められた失火カウンタ値とを比較して、当該失火判定期間全体において失火したか否かを判定する。
【００１３】
つまり、この発明では、運転状態に応じて失火判定値の方を（例えば単失火検出毎に逐次に）変更し、失火判定期間が終了すると、この失火判定値と失火カウンタ値とを比較して失火判定を行なうので、失火判定期間における運転状態の変化を正確に把握して、より精密に失火判定期間毎の失火判定を行なうことが可能である。
請求項２の発明では、運転状態検出手段によって、内燃機関の回転数や負荷等の運転状態を検出し、単失火検出手段によって、内燃機関の失火判定期間内の個々の失火を検出する。そして、総合失火判定手段によって、失火判定期間にわたって単失火検出手段により失火が検出される毎の運転状態検出手段により検出された運転状態に応じて設定された仮失火判定値に基づいて変更される失火判定期間の失火判定値と、失火判定期間にわたって単失火検出手段により検出された検出結果とに基づいて、失火判定期間毎の失火の有無を判定する。
例えば、前記失火判定値変更手段により変更された失火判定値と前記単失火検出手段により検出された検出結果とに基づいて前記失火判定期間毎の失火の有無を判定する。又は、例えば、前記失火判定値変更手段により変更された失火判定値と、前記失火カウンタ値積算手段によって求められた失火カウンタ値とを比較して、前記失火判定期間毎の失火の有無を判定する。
【００１４】
【実施例】
以下に本発明の実施例を図面と共に説明する。
（第１実施例）
図２は、本発明の第１実施例の内燃機関用失火検出装置の装置構成を示す概略構成図である。
【００１５】
図２に示す様に、１は内燃機関のクランク軸又はカム軸に配設され所定角度毎に出力される信号を検出して、機関回転速度（回転数）ＮＥを求める回転角センサ，２は内燃機関の吸気サージタンク内の吸気圧又は吸入空気量を検出する負荷センサ，３は気筒への吸入空気量を調整するスロットル弁の開度を検出するスロットルセンサ，４はインジェクタ３０とフューエルプレッシャレギュレータとの間にある燃料管に配設され、各気筒に噴射される燃料の圧力を検出する燃圧センサ，５はエアコンが作動しているか否かを検出するエアコンスイッチ，６はスピードメータケーブルの回転力により車両の速度を検出する車速センサ，７は悪路の検出に利用される重力加速度を検出するＧセンサ，８は冷却水温を検出する水温センサである。
【００１６】
１０は、これらの各センサからの検出信号が入力される電子制御装置（ＥＣＵ）である。このＥＣＵ１０は、Ｉ／Ｏポート１０ａ，演算装置１０ｂ，ＲＯＭ１０ｃ，バックアップＲＡＭ１０ｄ，ＲＡＭ１０ｅを有し、各センサから入力される検出信号に基づいて点火系及び燃料系の適切な制御量を設定するマイクロコンピュータとして構成されている。
【００１７】
２０は上記ＥＣＵ１０の演算結果に基づいて最適な点火タイミングで高電圧を発生させ、内燃機関の点火プラグに高電圧を供給する点火装置である。
３０は同じくＥＣＵ１０の演算結果に基づいて最適な燃料噴射量及び噴射タイミングで内燃機関に燃料を供給するインジェクタである。
【００１８】
４０はＥＣＵ１０で失火と判定されると点灯して、例えば車両ユーザ等に失火が発生したことを知らせるための警告灯である。
そして、上述したＥＣＵ１０は、各センサからの検出結果に基づいて、内燃機関の点火時期毎に運転状態に基づいて失火判定値を設定し（失火判定値変更手段）、点火時期毎に失火が発生したか否かを個々に判定し（単失火検出手段）、カウントアップ量を失火判定期間にわたって積算して失火カウンタ値を求め（失火カウンタ値積算手段）、失火カウンタ値と失火判定期間における失火判定値（総合失火判定値と称す）とを比較して、失火したか否かを判定する（総合失火判定手段）。
【００１９】
尚、上記ＲＯＭ１０ｃには、運転状態に応じて失火判定値を設定するために、各種の係数を定める複数のマップが記憶されている。例えば、後述する図３（ａ）に示す様に、吸気管圧力（負荷）に基づいて第１判定レベル係数ＫＲＥＦ1を求めるマップ、図３（ｂ）に示す様に、水温に基づいて第２判定レベル係数ＫＲＥＦ2を求めるマップ、図３（ｃ）に示す様に、悪路の判定に基づいて第３判定レベル係数ＫＲＥＦ3を求めるマップ、図３（ｄ）に示す様に、エンジン回転数ＮＥに基づいて第４判定レベル係数ＫＲＥＦ4を求めるマップ等が記憶されている。また、失火判定期間毎に当該期間において失火が発生したか否かを総合的に判定するための総合失火判定値等を記憶している。
【００２０】
次に、本実施例の制御処理を、図４及び図５のフローチャートに基づいて説明する。本実施例は、一定のカウントアップ量を単失火検出毎に積算して失火カウンタ値ＣＭＦを求めるとともに、期間全体の総合判断基準である総合失火判定値ＣＲＥＦを（運転状態に応じて変化する）判定変化量ｋＲＥＦに応じて逐次変更し、失火判定期間毎に両値ＣＭＦ，ＤＲＥＦを比較して、総合的に失火の判定を行なうものである。
【００２１】
まず、図４（失火検出ルーチン１）に基づいて、単失火検出毎に、各判定レベル係数を用いて総合失火判定値ＣＲＥＦを更新する処理について説明する。尚、このルーチンは点火毎に実行される。
図４に示す様に、Ｓ３１にて、エンジン回転数ＮＥ，負荷ＰＭ，冷却水温ＴＨＷを読み込み、Ｓ３２では、定常運転であるか否かを判定する。ここで肯定判断されるとＳ３３に進む。一方否定判断されるとＳ３４に進み、後述する総合失火判定値ＣＲＥＦに基本判定値ＣＲＥＦBasをセットするとともに、累積失火判定値ΣＣＲＥＦ及び失火カウンタ値ＣＭＦをクリアし、一旦本処理を終了する。
【００２２】
Ｓ３３では、単失火判定用の回転変化量△ＮＥを求め、Ｓ３５では、この回転変化量△ＮＥが、単失火判定値を上回るか否かを判定する。ここで肯定判断されると、Ｓ３６に進み、一方否定判断されると、一旦本処理を終了する。
Ｓ３６では、失火カウンタ値ＣＭＦiをインクリメントする。つまり、本実施例では、カウントアップ量は「１」と一定に設定されているので、単失火検出毎に失火カウンタ値ＣＭＦiに「１」つづ加算する。
【００２３】
Ｓ３７，Ｓ３８，Ｓ３９，Ｓ４０では、図３の各マップに基づき、負荷ＰＭに応じて第１判定レベル係数ｋＲＥＦ1を取り込み、水温ＴＨＷに応じて第２判定レベル係数ｋＲＥＦ2を取り込み、路面状態に応じて第３判定レベル係数ｋＲＥＦ3を取り込み、エンジン回転数ＮＥに応じて第４判定レベル係数ｋＲＥＦ4を取り込む。
【００２４】
Ｓ４１では、前記第１〜第４判定レベル係数ｋＲＥＦ1〜ｋＲＥＦ4を乗算して、判定変化量ｋＲＥＦを算出する。尚、この判定変化量ｋＲＥＦは、判定基準となる総合失火判定値ＣＲＥＦを、運転状態に応じて単失火検出毎に逐次変更するためのものである。
【００２５】
従って、続くＳ４２では、この判定変化量ｋＲＥＦを基本判定値ＣＲＥＦBasに乗算して仮失火判定値ＣＲＥＦＡを算出する。この基本判定値ＣＲＥＦBasは、第１〜第４判定レベル係数ｋＲＥＦ1〜ｋＲＥＦ4が全て「１」のときの総合失火判定値ＣＲＥＦに相当するもので、例えば４気筒機関では、失火率１００％に相当する「４０」が設定される。
【００２６】
次のＳ４３では、この仮失火判定値ＣＲＥＦＡを、前回求めた累積失火判定値ΣＣＲＥＦi-1に積算して、今回の累積失火判定値ΣＣＲＥＦiを算出する。
続くＳ４４では、この累積失火判定値ΣＣＲＥＦiを失火カウンタ値ＣＭＦiで徐算して、総合失火判定値ＣＲＥＦを算出する。これによって、総合失火判定値ＣＲＥＦが失火カウンタ値ＣＭＦと比較可能な値に設定される。ここで、累積失火判定値ΣＣＲＥＦiを失火カウンタ値ＣＭＦiで徐算する理由は、基本判定値ＣＲＥＦBasが予め（失火を判定するための判定回数を乗算した様な）大きな値に設定されているからである。
【００２７】
次に、図５（失火検出ルーチン２）に基づいて、失火判定期間終了後に行われる総合的な失火判定の処理について説明する。尚、この処理は、例えば２００回転毎に行われる割込処理である。
図５に示す様に、Ｓ５１では、失火カウンタ値ＣＭＦが、総合失火判定値ＣＲＥＦを上回るか否かを判定する。ここで、肯定判断されると、確実に失火が検出されたとみなされてＳ５２に進み、一方判断されると、失火は検出されなかったとみなされてＳ５４に進む。
【００２８】
Ｓ５２では、失火が検出されたことをバックアップＲＡＭ１０ｄに記憶し、Ｓ５３では、失火を報知するために警告灯４０を点灯し、Ｓ５４に進む。
Ｓ５４では、次の失火判定期間における同様な失火の総合的な判定を行なうために、失火カウンタ値ＣＭＦをクリアし、Ｓ５５では、総合失火判定値ＣＲＥＦに基本判定値ＣＲＥＦBasをセットするとともに、累積失火判定値ΣＣＲＥＦをクリアし、一旦本処理を終了する。
【００２９】
この様に、本実施例では、単独失火検出毎に、失火カウンタ値ＣＭＦに一定のカウントアップ量を加算するとともに、単失火検出毎の運転状態に応じて判定変化量ｋＲＥＦを変更することにより、運転状態に対応した適切な総合失火判定値ＣＲＥＦを逐次設定することができる。よって、失火判定期間内の運転状態に応じて、精度良く失火の判定ができるという顕著な効果がある。
（第２実施例）
次に、第２実施例の制御処理を、図６〜図８のフローチャートに基づいて説明するが、前記第１実施例と同様な部分は説明を簡略化する。本実施例は、失火判定期間内の任意のタイミング（即ち単失火判定回数より少ない回数）で、判定変化量ｋＲＥＦ及び総合失火判定値ＣＲＥＦを変更してゆくものである。
【００３０】
まず、図６（失火検出ルーチン３）に基づいて、単失火の回数をカウントする処理について説明する。尚、このルーチンは点火毎に実行される。
図６に示す様に、Ｓ６１にて、エンジン回転数ＮＥ，負荷ＰＭ，冷却水温ＴＨＷを読み込み、Ｓ６２では、定常運転であるか否かを判定する。ここで正常運転であると判断されると、Ｓ６３にて、正常運転を示すフラグＦを「１」とし、Ｓ６４に進む。一方正常運転でないと判断されると、Ｓ６５にて前記フラグＦを「０」とし、続くＳ６６にて、失火カウンタ値ＣＭＦをクリアするとともに、総合失火判定値ＣＲＥＦに基本判定値ＣＲＥＦBasをセットし、一旦本処理を終了する。
【００３１】
Ｓ６４では、単失火判定用の回転変化量△ＮＥを求め、Ｓ６７では、この回転変化量△ＮＥが、単失火判定値を上回るか否かを判定する。ここで肯定判断されるとＳ６８に進み、一方否定判断されると、一旦本処理を終了する。
Ｓ６８では、単失火回数をカウントする失火カウンタ値ＣＭＦiをインクリメントし、一旦本処理を終了する。つまり、本実施例では、カウントアップ量は一定値の「１」と設定されているので、単失火検出毎に失火カウンタ値ＣＭＦiを「１」づつ加算する。
【００３２】
次に、図７（失火検出ルーチン４）に基づいて、本ルーチンの実行毎に、各判定レベル係数を用いて総合失火判定値ＣＲＥＦを更新する処理について説明する。尚、本処理は任意のタイミング（失火検出タイミングより長い間隔の例えば５０回転毎又は１sec毎）で実行される。
【００３３】
図７に示す様に、まず、Ｓ７１にて、フラグＦが「１」か否かによって、正常運転であるか否かを判定し、ここで正常運転である場合はＳ７２に進み、一方正常運転でない場合は、一旦本処理を終了する。
Ｓ７２では、エンジン回転数ＮＥ，負荷ＰＭ，冷却水温ＴＨＷを読み込み、Ｓ７３，Ｓ７４，Ｓ７５，Ｓ７６では、前記第１実施例と同様に、図３の各マップに基づき、負荷ＰＭに応じて第１判定レベル係数ｋＲＥＦ1を取り込み、水温ＴＨＷに応じて第２判定レベル係数ｋＲＥＦ2を取り込み、路面状態に応じて第３判定レベル係数ｋＲＥＦ3を取り込み、エンジン回転数ＮＥに応じて第４判定レベル係数ｋＲＥＦ4を取り込む。
【００３４】
Ｓ７７では、失火検出ルーチン４の実行回数をカウントする区間カウンタＣＭＦＣiをインクリメントする。
Ｓ７８では、前記第１〜第４判定レベル係数ｋＲＥＦ1〜ｋＲＥＦ4を乗算して、判定変化量ｋＲＥＦを算出する。
【００３５】
Ｓ７９では、判定変化量ｋＲＥＦと基本判定値ＣＲＥＦBasとを乗算して、仮失火判定値ＣＲＥＦＡを算出し、次のＳ８０では、仮失火判定値ＣＲＥＦＡを前回の累積失火判定値ΣＣＲＥＦi-1に積算して、今回の累積失火判定値ΣＣＲＥＦiを算出した後、Ｓ８０Ａで、累積失火判定値ΣＣＲＥＦiを区間カウンタＣＭＦＣiで徐算して、総合失火判定値ＣＲＥＦを算出し、一旦本処理を終了する。尚、ここで、累積失火判定値ΣＣＲＥＦiを区間カウンタＣＭＦＣiで徐算した理由は、本実施例では、演算処理を軽減するために、単失火検出毎に判定変化量ｋＲＥＦを算出することなく、区間毎の運転状態は一定と見なして、区間毎に一括して総合失火判定値ＣＲＥＦを更新するためである。
【００３６】
つまり、本処理は、区間毎（例えば５０回転毎又は１sec毎）に、その時の運転状態に応じて、総合失火判定値ＣＲＥＦを更新する処理である。
次に、図８（失火検出ルーチン５）に基づいて、失火判定期間終了後に行われる総合的な失火判定の処理について説明する。尚、この処理は、例えば２００回転毎に行われる割込処理である。
【００３７】
図８に示す様に、Ｓ８１では、失火カウンタ値ＣＭＦが総合失火判定値ＣＲＥＦを上回るか否かを判定する。ここで、肯定判断されると、確実に失火が検出されたとみなされてＳ８２に進み、一方判断されると、失火は検出されなかったとみなされてＳ８４に進む。
【００３８】
Ｓ８２では、失火が検出されたことをバックアップＲＡＭ１０ｄに記憶し、Ｓ８３では、失火を報知するために警告灯４０を点灯し、Ｓ５４に進む。
Ｓ８４では、次の失火判定期間における同様な失火の総合的な判定を行なうために、失火カウンタ値ＣＭＦをクリアし、Ｓ８５では、区間カウンタＣＭＦＣ及び累積失火判定値ΣＣＲＥＦをクリアするとともに、総合失火判定値ＣＲＥＦに基本判定値ＣＲＥＦBasをセットし、一旦本処理を終了する。
【００３９】
この様に、本実施例では、単失火検出毎に、失火カウンタＣＭＦに一定のカウントアップ量を加算するとともに、単失火検出毎ではなく（失火判定期間より短い）所定区間毎に、運転状態に応じて判定変化量ｋＲＥＦを変更することにより、運転状態に対応した適切な総合失火判定値ＣＲＥＦを逐次設定することができる。よって、前記第１実施例と同様に、失火判定期間内の運転状態に応じて、精度良く失火の判定ができるという効果がある。特に、本実施例では、単失火検出毎に総合失火判定値ＣＲＥＦを更新するのではなく、所定区間毎に総合失火判定値ＣＲＥＦを更新するので、更新回数が少なくなり、失火検出の精度を損なうことなく、演算処理が軽減されるという利点がある。
（第３実施例）
次に、第３実施例の制御処理を、図９〜図１１のフローチャートに基づいて説明するが、前記第１，２実施例と同様な部分の説明は簡略化する。本実施例は、単失火検出毎に総合失火判定値ＣＲＥＦを変更するのではなく、単失火検出毎に第１の失火判定値ＣＲＥＦ１を変更するとともに、失火判定期間内の任意のタイミング（単失火回数より少ない回数）で第２の失火判定値ＣＲＥＦ２を変更し、この両値ＣＲＥＦ１，ＣＲＥＦ２の平均値を総合失火判定値ＣＲＥＦとして用いて、総合的に失火を判定するものである。
【００４０】
まず、図９（失火検出ルーチン６）に基づいて、単失火検出毎に、第１の失火判定値ＣＲＥＦ１を更新する処理について説明する。尚、このルーチンは点火毎に実行される。
図９に示す様に、Ｓ９１にて、エンジン回転数ＮＥ，負荷ＰＭ，冷却水温ＴＨＷを読み込み、Ｓ９２では、定常運転であるか否かを判定する。ここで正常運転であると判断されると、Ｓ９３にて、正常運転を示すフラグＦを「１」とし、Ｓ９４に進む。一方正常運転でないと判断されると、Ｓ９５にて前記フラグＦを「０」とし、続くＳ９６，Ｓ９７にて、失火カウンタ値ＣＭＦ及び累積失火判定ΣＣＲＥＦ１をクリアするとともに、総合失火判定値ＣＲＥＦに基本判定値ＣＲＥＦBasをセットし、一旦本処理を終了する。
【００４１】
Ｓ９４では、単失火判定用の回転変化量△ＮＥを求め、Ｓ９８では、この回転変化量△ＮＥが、単失火判定値を上回るか否かを判定する。ここで肯定判断されるとＳ９９に進み、一方否定判断されると、一旦本処理を終了する。
Ｓ９９では、失火カウンタ値ＣＭＦiをインクリメントする。
【００４２】
続くＳ１００，Ｓ１０１，Ｓ１０２では、前記第２実施例と同様に、図３の各マップに基づき、負荷ＰＭに応じて第１判定レベル係数ｋＲＥＦ1を取り込み、路面状態に応じて第３判定レベル係数ｋＲＥＦ3を取り込み、エンジン回転数ＮＥに応じて第４判定レベル係数ｋＲＥＦ4を取り込みむ。つまり、ここでは、負荷ＰＭや路面状態やエンジン回転数ＮＥの様な急速に変化する運転状態のみに着目して、短い周期で（即ち頻繁に）各係数を設定する。
【００４３】
Ｓ１０３では、前記第１，第３，第４判定レベル係数ｋＲＥＦ1，ｋＲＥＦ3，ｋＲＥＦ4を乗算して、第１判定変化量ｋＲＥＦＡを算出する。
Ｓ１０４では、第１判定変化量ｋＲＥＦＡを基本判定値ＣＲＥＦBasに乗算して第１仮失火判定値ＣＲＥＦＡ１を算出し、次のＳ１０５では、第１仮失火判定値ＣＲＥＦＡ１を前回の第１累積仮失火判定値ΣＣＲＥＦ１i-1に積算して、今回の第１累積仮失火判定値ΣＣＲＥＦ１iを算出し、Ｓ１０６で、第１累積仮失火判定値ΣＣＲＥＦ１iを失火カウンタ値ＣＭＦiで徐算して、第１失火判定値ＣＲＥＦ１を算出し、一旦本処理を終了する。
【００４４】
つまり、本処理は、単失火検出毎に、その時の運転状態に応じて第１判定変化量ｋＲＥＦＡを算出することによって、第１失火判定値ＣＲＥＦ１を更新する処理である。
次に、図１０（失火検出ルーチン７）に基づいて、本ルーチンの実行毎に、第２失火判定値ＣＲＥＦ２を更新する処理について説明する。尚、本処理は任意のタイミング（例えば５０回転毎）で実行される。
【００４５】
図１０に示す様に、まず、Ｓ１１１にて、フラグＦが「１」か否かによって、正常運転であるか否かを判定し、ここで正常運転であると判断されるとＳ１１２に進み、一方正常運転でないと判断されると、一旦本処理を終了する。
Ｓ１１２では、エンジン回転数ＮＥ，冷却水温ＴＨＷを読み込み、Ｓ１１３では、前記第２実施例と同様に、図３のマップに基づき、水温ＴＨＷに応じて第２判定レベル係数ｋＲＥＦ2を取り込む。つまり、ここでは、水温ＴＨＷの様な急速に変化しない運転状態のみに着目して、長い周期（即ち少ない頻度）で係数を設定する。
【００４６】
Ｓ１１４では、区間カウンタ値ＣＭＦＣiをインクリメントする。
Ｓ１１５では、この第２判定レベル係数ｋＲＥＦ2を基本判定値ＣＲＥＦBasに乗算して第２仮失火判定値ＣＲＥＦＡ２を算出し、次のＳ１１６では、第２仮失火判定値ＣＲＥＦＡ２を前回の第２累積仮失火判定値ΣＣＲＥＦ２i-1に積算して、今回の第２累積仮失火判定値ΣＣＲＥＦ２iを算出し、Ｓ１１７では、第２累積仮失火判定値ΣＣＲＥＦ２iを区間カウンタ値ＣＭＦＣiで徐算して、第２失火判定値ＣＲＥＦ２を算出し、一旦本処理を終了する。
【００４７】
つまり、本処理は、５０回転毎に、その時の運転状態に応じて、前記第１判定変化量ｋＲＥＦＡとは異なる判定変化量である第２判定変化量ｋＲＥＦ2を用いることによって、第２失火判定値ＣＲＥＦ２を更新する処理である。
次に、図１１（失火検出ルーチン８）に基づいて、失火判定期間終了後に行われる総合的な失火判定の処理について説明する。尚、この処理は、例えば２００回転毎に行われる割込処理である。
【００４８】
図１１に示す様に、Ｓ１２０では、第１失火判定値ＣＲＥＦ１と第２失火判定値ＣＲＥＦ２とを加えた値を２で徐算して総合失火判定値ＣＲＥＦを求め、Ｓ１２１では、失火カウンタ値ＣＭＦがこの総合失火判定値ＣＲＥＦを上回るか否かを判定する。ここで、肯定判断されると、確実に失火が検出されたとみなされてＳ１２２に進み、一方否定判断されると、失火は検出されなかったとみなされてＳ１２４に進む。
【００４９】
Ｓ１２２では、失火が検出されたことをバックアップＲＡＭ１０ｄに記憶し、Ｓ１２３では、失火を報知するために警告灯４０を点灯し、Ｓ１２４に進む。
Ｓ１２４では、次の失火判定期間における同様な失火の総合的な判定を行なうために、失火カウンタ値ＣＭＦをクリアし、Ｓ１２５では、区間カウンタＣＭＦＣ，第１，第２累積失火判定値ΣＣＲＥＦ１，ΣＣＲＥＦ２をクリアするとともに、総合失火判定値ＣＲＥＦに基本判定値ＣＲＥＦBasをセットして、一旦本処理を終了する。
【００５０】
この様に、本実施例では、単独失火検出毎に、第１失火判定値ＣＲＥＦ１を更新するとともに、５０回転毎に第２失火判定値ＣＲＥＦ２を更新し、この両失火判定値ＣＲＥＦ１，ＣＲＥＦ２の平均値によって、運転状態に対応した適切な総合失火判定値ＣＲＥＦを設定することができる。よって、前記第２実施例と同様に、失火判定期間内の運転状態に応じて、精度良く失火の判定ができるという効果がある。特に、本実施例では、単失火検出毎に全ての失火判定値を求めるのではなく、それほど急激に変化しない水温の様な運転状態の失火判定値はより長い期間毎に求める様にしたので、失火検出の精度を損なうことなく、しかも演算処理が軽減されるという利点がある。
【００５１】
尚、前記本発明の実施例について説明したが、本発明はこの様な実施例に何等限定されるものではなく、各種の態様で実施できることは勿論である。
【００５２】
【発明の効果】
以上説明した様に、請求項１の発明では、失火が検出されるとカウンタ変化量を積算して失火カウンタ値を求めるとともに、失火検出時の運転状態に基づいて失火判定用の失火判定値を変更する変更量を設定し、設定した変更量に基づいて失火検出毎の仮失火判定値を算出する。そして、この失火検出毎の仮失火判定値に基づいて失火検出期間の失火判定値を変更する。そして、失火カウンタ値と変更された失火判定値とを比較して、失火したか否かを判定するので、失火判定期間における運転状態の変化を正確に把握して、失火判定期間毎の失火判定をより精密に行なうことができるという顕著な効果を奏する。
請求項２の発明では、内燃機関の回転数や負荷等の運転状態を検出し、更に、内燃機関の失火判定期間内の個々の失火を検出して、失火判定期間にわたって単失火検出手段により失火が検出される毎の運転状態検出手段により検出された運転状態に応じて設定された仮失火判定値に基づいて変更される失火判定期間の失火判定値と、失火判定期間にわたって検出された単失火の検出結果とに基づいて、失火判定期間毎の失火の有無を判定することができる。
【図面の簡単な説明】
【図１】  請求項１の発明の構成を例示する概略構成図である。
【図２】  第１実施例のシステム構成を示すブロック図である。
【図３】  失火判定に使用される各種の係数のマップを示す説明図である。
【図４】  失火検出ルーチン１の制御処理を示すフローチャートである。
【図５】  失火検出ルーチン２の制御処理を示すフローチャートである。
【図６】  失火検出ルーチン３の制御処理を示すフローチャートである。
【図７】  失火検出ルーチン４の制御処理を示すフローチャートである。
【図８】  失火検出ルーチン５の制御処理を示すフローチャートである。
【図９】  失火検出ルーチン６の制御処理を示すフローチャートである。
【図１０】  失火検出ルーチン７の制御処理を示すフローチャートである。
【図１１】  失火検出ルーチン８の制御処理を示すフローチャートである。
【図１２】  従来の失火検出の技術を示す説明図である。
【符号の説明】
１…回転角センサ              ２…負荷センサ
５…エアコンスイッチ          ６…車速センサ
７…Ｇセンサ                  ８…水温センサ
１０…電子制御装置（ＥＣＵ）  ４０…警告灯
【図１】
0003658767.tif 000002
【図２】
0003658767.tif 000003
【図３】
0003658767.tif 000004
【図４】
0003658767.tif 000005
【図５】
0003658767.tif 000006
【図６】
0003658767.tif 000007
【図７】
0003658767.tif 000008
【図８】
0003658767.tif 000009
【図９】
0003658767.tif 000010
【図１０】
0003658767.tif 000011
【図１１】
0003658767.tif 000012
【図１２】
0003658767.tif 000013