(57)【要約】  【課題】  失火検出精度と失火原因の判定精度を共に向上させる。  【解決手段】  失火が発生した気筒から未燃ガスが排出されて、排出ガスの空燃比が急変するという空燃比の挙動に着目し、各気筒の排出ガスが集合して流れる排気集合部に設置された空燃比センサの検出値に基づいて各気筒の排出ガスの空燃比（気筒別空燃比）を推定し、各気筒の気筒別空燃比が正常燃焼範囲（リッチ側判定値Ｃ1 からリーン側判定値Ｃ2 までの範囲）内であるか否かで正常燃焼と失火とを判定する。そして、失火気筒の実噴射量と全気筒の実噴射量平均値との差に基づいて失火の原因が燃料系であるか否かを判定すると共に、失火気筒の推定空気量と全気筒の実空気量平均値との差に基づいて失火の原因が空気系であるか否かを判定する。更に、失火気筒の点火時期を進角側判定値Ｃ7 と遅角側判定値Ｃ8 と比較することで、失火の原因が点火系であるか否かを判定する。  【選択図】  図１１
2005163696.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の気筒別の排出ガスの空燃比又はそれに応じて変化するパラメータ（以下これらを「気筒別空燃比情報」と総称する）を取得する気筒別空燃比情報取得手段と、
前記気筒別空燃比情報取得手段で取得した気筒別空燃比情報に基づいて気筒別に失火を検出する失火検出手段と、
前記失火検出手段で失火を検出した気筒に対して、燃料噴射量、吸入空気量及び点火時期のうちの少なくとも１つに基づいて失火原因を判定する失火原因判定手段と
を備えていることを特徴とする内燃機関の失火検出装置。
【請求項２】
前記気筒別空燃比情報取得手段は、各気筒の排出ガスが集合して流れる排気集合部に設置された空燃比センサの検出値に基づいて気筒別の排出ガスの空燃比（以下「気筒別空燃比」という）を推定することを特徴とする請求項１に記載の内燃機関の失火検出装置。
【請求項３】
前記空燃比センサの検出値を、前記気筒別空燃比の履歴と前記空燃比センサの検出値の履歴とにそれぞれ所定の重みを乗じて加算したものとしてモデル化し、
前記気筒別空燃比情報取得手段は、該モデルを用いて気筒別空燃比を推定することを特徴とする請求項２に記載の内燃機関の失火検出装置。
【請求項４】
前記失火検出手段は、内燃機関の始動から前記空燃比センサが活性状態になるまでの期間は、機関回転変動に基づいて失火を検出することを特徴とする請求項２又は３に記載の内燃機関の失火検出装置。
【請求項５】
内燃機関の各気筒に供給する混合気の空燃比を気筒別に補正する気筒別空燃比補正手段を備え、
前記気筒別空燃比情報取得手段は、前記気筒別空燃比補正手段により設定された気筒別空燃比補正量を前記気筒別空燃比情報として取得することを特徴とする請求項１に記載の内燃機関の失火検出装置。
【請求項６】
前記失火原因判定手段は、前記失火検出手段で失火を検出した気筒に対して、燃料噴射量に基づいて燃料系が失火原因であるか否かを判定することを特徴とする請求項１乃至５のいずれかに記載の内燃機関の失火検出装置。
【請求項７】
前記失火原因判定手段は、前記失火検出手段で失火を検出した気筒に対して、吸入空気量に基づいて空気系が失火原因であるか否かを判定することを特徴とする請求項１乃至６のいずれかに記載の内燃機関の失火検出装置。
【請求項８】
前記失火原因判定手段は、前記失火検出手段で失火を検出した気筒に対して、点火時期に基づいて点火系が失火原因であるか否かを判定することを特徴とする請求項１乃至７のいずれかに記載の内燃機関の失火検出装置。
【請求項９】
前記失火検出手段は、前記気筒別空燃比情報取得手段で取得した気筒別空燃比情報に基づいて、過リッチによる失火（以下「リッチ失火」という）と過リーンによる失火（以下「リーン失火」という）とを区別して検出することを特徴とする請求項１乃至８のいずれかに記載の内燃機関の失火検出装置。
【請求項１０】
前記失火検出手段でリッチ失火を検出した気筒に対して、燃料噴射量の減量補正及び／又は吸入空気量の増量補正を実行し、リーン失火を検出した気筒に対して、燃料噴射量の増量補正及び／又は吸入空気量の減量補正を実行する失火回復制御手段を備えていることを特徴とする請求項９に記載の内燃機関の失火検出装置。
【請求項１１】
前記失火原因判定手段は、前記失火検出手段で失火を検出した気筒に対して、点火時期に基づいて過進角による失火（以下「進角失火」という）と過遅角による失火（以下「遅角失火」という）とを区別して検出し、
進角失火を検出した気筒に対して、点火時期の遅角補正を実行し、遅角失火を検出した気筒に対して、点火時期の進角補正を実行する失火回復制御手段を備えていることを特徴とする請求項１乃至１０のいずれかに記載の内燃機関の失火検出装置。
【請求項１２】
前記失火回復制御手段による補正を所定期間行っても、前記失火検出手段で失火を検出し続ける場合には、当該失火気筒の運転を停止する気筒別運転停止手段を備えていることを特徴とする請求項１０又は１１に記載の内燃機関の失火検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の気筒別に失火を検出する機能と失火原因を判定する機能を備えた内燃機関の失火検出装置に関するものである。
【背景技術】
【０００２】
内燃機関の運転中に失火が発生すると、機関回転速度が瞬間的に低下することから、一般的な失火検出装置は、特許文献１（特開平７−３１７５８６号公報）に記載されているように、各気筒の爆発行程毎に回転変動量を検出して、この回転変動量を所定の失火判定値と比較して失火の有無を判定するようにしている。
【０００３】
しかし、正常燃焼時でも気筒間の燃焼ばらつきや悪路走行等によって回転変動検出値がばらついたり、或は、機関回転速度を検出するクランク角センサの製造公差によって回転変動検出値がばらつくことがあり、更には、高回転域では、失火による回転変動量が小さくなるという事情があり、これらが失火検出精度を低下させる原因となっている。
【０００４】
また、この特許文献１では、失火を検出した気筒に対して、目標空燃比をリッチ側に補正して失火を抑制すると共に、失火気筒に対して目標空燃比のリッチ側への補正を連続して所定回数繰り返しても、正常燃焼に復帰しない場合は、燃料系又は点火系の故障と判定するようにしている。
【０００５】
しかし、この構成では、空気系の故障で失火が発生する場合でも、燃料系又は点火系の故障と誤判定してしまう問題が発生する。しかも、失火気筒に対して目標空燃比のリッチ側への補正を連続して所定回数繰り返すまでは、燃料系又は点火系の故障と判定されないため、故障と判定されるまで、失火気筒からリッチ補正された未燃焼ガスが排出されてしまい、ＨＣ排出量が増加するという欠点がある。
【０００６】
その他、内燃機関の異常診断技術を記載した公知文献としては、例えば、特許文献２（特開平７−３４９４６号公報）がある。この特許文献２には、気筒別の燃料補正量に基づいて燃料系の異常を診断する技術が記載されている。
【０００７】
しかし、この異常診断技術では、空気系の異常を検出できないため、空気系の異常を燃料系の異常と誤判定する問題がある。例えば、燃料系が正常であるときに、何等かの原因で、吸入空気量が異常に増加すると、目標空燃比を維持するために、燃料増量補正量が異常に増加するため、燃料系の異常と誤判定されてしまうという問題が発生する。しかも、気筒別の燃料補正量からは失火を検出できない。
【特許文献１】特開平７−３１７５８６号公報（第３頁〜第４頁等）
【特許文献２】特開平７−３４９４６号公報（第２頁〜第３頁等）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したように、従来技術では、失火検出精度が悪いばかりか、失火原因を誤判定する可能性がある等の問題があった。
【０００９】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、失火検出精度と失火原因の判定精度を共に向上させることができる内燃機関の失火検出装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、請求項１に係る発明は、失火が発生した気筒から未燃焼ガスが排出されて、排出ガスの空燃比が急変するという空燃比の挙動に着目し、気筒別の排出ガスの空燃比又はそれに応じて変化するパラメータ（以下これらを「気筒別空燃比情報」と総称する）を気筒別空燃比情報取得手段により取得し、この気筒別空燃比情報に基づいて失火検出手段により気筒別に失火を検出すると共に、失火を検出した気筒に対して、燃料噴射量、吸入空気量及び点火時期のうちの少なくとも１つに基づいて失火原因を失火原因判定手段により判定するようにしたものである。失火発生時には、失火気筒の気筒別空燃比情報が急激に変化するため、各気筒の気筒別空燃比情報の挙動を監視することで、気筒間の燃焼ばらつきや悪路走行による回転変動や回転域の影響をあまり受けずに、気筒別に失火を精度良く検出することができる。しかも、失火を検出した気筒に対して、燃料噴射量、吸入空気量及び点火時期のうちの少なくとも１つに基づいて失火原因を判定することができる。
【００１１】
例えば、請求項６のように、失火を検出した気筒に対して、燃料噴射量に基づいて燃料系が失火原因であるか否かを判定したり、請求項７のように、失火を検出した気筒に対して、吸入空気量に基づいて空気系が失火原因であるか否かを判定したり、或は、請求項８のように、失火を検出した気筒に対して、点火時期に基づいて点火系が失火原因であるか否かを判定するようにしても良い。
【００１２】
その他、気筒別空燃比情報と燃料噴射量とから吸入空気量を推定して、空気系が失火原因であるか否かを判定したり、反対に、気筒別空燃比情報と吸入空気量とから燃料噴射量を推定して、燃料系が失火原因であるか否かを判定するようにしても良い。
【００１３】
ところで、各気筒の排気マニホールドにそれぞれ空燃比センサを設置して、気筒別空燃比情報を各気筒の空燃比センサによって直接検出するようにしても良いが、この構成では気筒数と同数の空燃比センサが必要となり、コスト増を招くという問題が発生する。
【００１４】
そこで、請求項２のように、各気筒の排出ガスが集合して流れる排気集合部に設置された空燃比センサの検出値に基づいて気筒別の排出ガスの空燃比（以下「気筒別空燃比」という）を推定するようにすると良い。このようにすれば、１個の空燃比センサで全気筒の気筒別空燃比を推定することができ、低コスト化の要求を満たすことができる。
【００１５】
この場合、気筒別空燃比の推定精度を高めるために、請求項３のように、空燃比センサの検出値を、気筒別空燃比の履歴と空燃比センサの検出値の履歴とにそれぞれ所定の重みを乗じて加算したものとしてモデル化し、該モデルを用いて気筒別空燃比を推定するようにすると良い。このようにすれば、気筒別空燃比を推定するモデルが空燃比センサの検出値をその過去の検出値から予測する自己回帰モデルとなるため、空燃比センサの検出値から気筒別空燃比を精度良く推定することができる。しかも、簡単なモデルにすることができるので、モデリングの複雑さを解消できると共に、車載コンピュータの演算負荷を軽減できる利点がある。
【００１６】
また、空燃比センサの活性前は、空燃比の検出精度が悪いため、失火検出を禁止するようにしても良いが、請求項４のように、内燃機関の始動から空燃比センサが活性状態になるまでの期間は、機関回転変動に基づいて失火を検出するようにしても良い。このようにすれば、空燃比センサの活性前でも、ある程度の精度で失火を検出することができる。
【００１７】
また、請求項５のように、内燃機関の各気筒に供給する混合気の空燃比を気筒別に補正する気筒別空燃比補正手段を備えたシステムにおいては、ある気筒に失火が発生すると、その失火気筒の気筒別空燃比補正量が急激に増大することを考慮して、気筒別空燃比補正量を気筒別空燃比情報として取得するようにしても良い。この場合は、空燃比センサの検出値に基づいて気筒別空燃比を推定する必要がないため、車載コンピュータの演算負荷を軽減できる利点がある。
【００１８】
また、請求項９のように、気筒別空燃比情報取得手段で取得した気筒別空燃比情報に基づいて、過リッチによる失火（以下「リッチ失火」という）と過リーンによる失火（以下「リーン失火」という）とを区別して検出するようにすると良い。これにより、失火原因の特定が容易となる。
【００１９】
この場合、請求項１０のように、リッチ失火を検出した気筒に対して、燃料噴射量の減量補正及び／又は吸入空気量の増量補正を実行し、リーン失火を検出した気筒に対して、燃料噴射量の増量補正及び／又は吸入空気量の減量補正を実行して、失火気筒の空燃比を正常燃焼範囲に修正する失火回復制御手段を設けるようにすると良い。このようにすれば、燃料系や空気系が正常な場合には、リッチ失火やリーン失火が発生した気筒を早期に正常燃焼に復帰させることができる。
【００２０】
また、請求項１１のように、失火を検出した気筒に対して、点火時期に基づいて過進角による失火（以下「進角失火」という）と過遅角による失火（以下「遅角失火」という）とを区別して検出し、進角失火を検出した気筒に対して、点火時期の遅角補正を実行し、遅角失火を検出した気筒に対して、点火時期の進角補正を実行する失火回復制御手段を設けるようにしても良い。このようにすれば、点火系が正常な場合には、進角失火や遅角失火が発生した気筒を早期に正常燃焼に復帰させることができる。
【００２１】
この場合、請求項１２のように、失火回復制御手段による補正を所定期間行っても、失火を検出し続ける場合には、正常燃焼に復帰できないと判断して、当該失火気筒の運転を気筒別運転停止手段により停止するようにすると良い。このようにすれば、失火状態が長く続くことによるＨＣ排出量増加の問題を回避することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明を吸気ポート噴射エンジンに適用した一実施例を図面に基づいて説明する。まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。内燃機関である例えば直列４気筒のエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、モータ等によって開度調節されるスロットルバルブ１５とスロットル開度を検出するスロットル開度センサ１６とが設けられている。
【００２３】
更に、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７には、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。エンジン運転中は、燃料タンク２１内の燃料が燃料ポンプ２２によりデリバリパイプ２３に送られ、各気筒の噴射タイミング毎に各気筒の燃料噴射弁２０から燃料が噴射される。デリバリパイプ２３には、燃料圧力（燃圧）を検出する燃圧センサ２４が取り付けられている。
【００２４】
また、エンジン１１には、吸気バルブ２５と排気バルブ２６の開閉タイミングをそれぞれ可変する可変バルブタイミング機構２７，２８が設けられている。更に、エンジン１１には、吸気カム軸２９と排気カム軸３０の回転に同期してカム角信号を出力する吸気カム角センサ３１と排気カム角センサ３２が設けられ、エンジン１１のクランク軸の回転に同期してクランク角信号を出力するクランク角センサ３３が設けられている。
【００２５】
一方、エンジン１１の各気筒の排気マニホールド３５が集合する排気集合部３６には、排出ガスの空燃比を検出する空燃比センサ３７が設置され、この空燃比センサ３７の下流側に排出ガス中のＣＯ，ＨＣ，ＮＯｘ等を浄化する三元触媒等の触媒３８が設けられている。
【００２６】
上記空燃比センサ３７等の各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）４０に入力される。このＥＣＵ４０は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、エンジン運転状態に応じて各気筒の燃料噴射弁２０の燃料噴射量（噴射パルス幅）や点火時期を制御する。
【００２７】
本実施例では、ＥＣＵ４０は、後述する気筒別空燃比推定モデルを用いて空燃比センサ３７の検出値（排気集合部３６を流れる排出ガスの実空燃比）に基づいて気筒別の排出ガスの空燃比（以下「気筒別空燃比」という）を推定し、この気筒別空燃比のばらつき（気筒間の空燃比ばらつき）を小さくするように気筒別の空燃比補正量を算出し、この気筒別空燃比補正量によって各気筒の燃料噴射量（及び／又は吸入空気量）を補正することで、各気筒に供給する混合気の空燃比を気筒別に補正するようにしている。このＥＣＵ４０の機能が特許請求の範囲でいう気筒別空燃比補正手段に相当する。
【００２８】
更に、ＥＣＵ４０は、後述する図２乃至図７の各ルーチンを実行することで、空燃比センサ３７の検出値に基づいて推定した気筒別空燃比を判定値Ｃ1 ，Ｃ2 と比較して気筒別に失火を検出すると共に、失火を検出した気筒に対して、燃料噴射量、吸入空気量及び点火時期に基づいて失火原因が燃料系、空気系、点火系のいずれであるかを判別して、失火原因を特定する。ここで、燃料系は、各気筒の燃料噴射量を制御するシステム（燃料噴射弁２０、燃料ポンプ２２、燃圧センサ２４等）であり、空気系は、各気筒の空気量を制御するシステム（スロットルバルブ１５の開度を電気的に制御する電子スロットルシステムや可変バルブタイミング機構２７，２８等）であり、点火系は、点火時期を制御するシステムである。
【００２９】
この場合、ＥＣＵ４０は、気筒別空燃比に基づいて、過リッチによる失火（以下「リッチ失火」という）と過リーンによる失火（以下「リーン失火」という）とを区別して検出し、リッチ失火を検出した気筒に対して、燃料噴射量の減量補正及び／又は吸入空気量の増量補正を実行することでリッチ失火を防止し、リーン失火を検出した気筒に対して、燃料噴射量の増量補正及び／又は吸入空気量の減量補正を実行することでリーン失火を防止する失火回復制御を実行する。
【００３０】
更に、ＥＣＵ４０は、失火を検出した気筒に対して、点火時期に基づいて過進角による失火（以下「進角失火」という）と過遅角による失火（以下「遅角失火」という）とを区別して検出し、進角失火を検出した気筒に対して、点火時期の遅角補正を実行することで進角失火を防止し、遅角失火を検出した気筒に対して、点火時期の進角補正を実行することで遅角失火を防止する失火回復制御を実行する。
【００３１】
そして、上述した失火回復制御を所定時間行っても、失火を検出し続ける場合には、正常燃焼に復帰できないと判断して、当該失火気筒に対して噴射カット又は噴射カットと点火カットの両方を実行して、当該失火気筒の運転を停止する。
【００３２】
次に、空燃比センサ３７の検出値（排気集合部３６を流れる排出ガスの実空燃比）に基づいて気筒別空燃比を推定するモデル（以下「気筒別空燃比推定モデル」という）の具体例を説明する。
【００３３】
排気集合部３６におけるガス交換に着目して、空燃比センサ３７の検出値を、排気集合部３６における気筒別空燃比の履歴と空燃比センサ３７の検出値の履歴とにそれぞれ所定の重みを乗じて加算したものとしてモデル化し、該モデルを用いて気筒別空燃比を推定するようにしている。尚、オブザーバとしてはカルマンフィルタを用いる。
【００３４】
より具体的には、排気集合部３６におけるガス交換のモデルを次の（１）式にて近似する。
ｙs(t)＝ｋ1 ×ｕ(t-1) ＋ｋ2 ×ｕ(t-2) −ｋ3 ×ｙs(t-1)−ｋ4 ×ｙs(t-2)
……（１）
ここで、ｙS は空燃比センサ３７の検出値、ｕは排気集合部３６に流入するガスの空燃比、ｋ1 〜ｋ4 は定数である。
【００３５】
排気系では、排気集合部３６におけるガス流入及び混合の一次遅れ要素と、空燃比センサ３７の応答遅れによる一次遅れ要素とが存在する。そこで、上記（１）式では、これらの一次遅れ要素を考慮して過去２回分の履歴を参照することとしている。
【００３６】
上記（１）式を状態空間モデルに変換すると、次の（２ａ）、（２ｂ）式が導き出される。
Ｘ(t+1) ＝Ａ・Ｘ(t) ＋Ｂ・ｕ(t) ＋Ｗ(t)       ……（２ａ）
Ｙ(t) ＝Ｃ・Ｘ(t) ＋Ｄ・ｕ(t)                 ……（２ｂ）
ここで、Ａ，Ｂ，Ｃ，Ｄはモデルのパラメータ、Ｙは空燃比センサ３７の検出値、Ｘは状態変数としての気筒別空燃比、Ｗはノイズである。
【００３７】
更に、上記（２ａ）、（２ｂ）式によりカルマンフィルタを設計すると、次の（３）式が得られる。
Ｘ＾(k+1｜k)＝Ａ・Ｘ＾(k｜k-1)＋Ｋ｛Ｙ(k) −Ｃ・Ａ・Ｘ＾(k｜k-1)｝  ……（３）  ここで、Ｘ＾（エックスハット）は気筒別空燃比の推定値、Ｋはカルマンゲインである。Ｘ＾(k+1｜k)の意味は、時間(k) の推定値により時間(k+1) の推定値を求めることを表す。
【００３８】
以上のようにして、気筒別空燃比推定モデルをカルマンフィルタ型オブザーバにて構成することにより、燃焼サイクルの進行に伴い気筒別空燃比を順次推定できる。
【００３９】
次に、ＥＣＵ４０が失火検出のために実行する図２乃至図７の各ルーチンの処理内容を説明する。
［失火検出メインルーチン］
図２の失火検出メインルーチンは、エンジン運転中に所定クランク角毎（例えば３０℃Ａ毎）に起動される。本ルーチンが起動されると、まずステップ１０１で、空燃比センサ３７が活性状態になっているか否かを判定し、空燃比センサ３７が活性状態になっていなければ、空燃比センサ３７の空燃比検出精度が悪いため、ステップ１０２に進み、エンジン回転変動に基づく失火検出ルーチン（図示せず）を実行して、各気筒の爆発行程毎にエンジン回転変動量を検出して、このエンジン回転変動量を所定の失火判定値と比較して失火の有無を判定する。
【００４０】
一方、空燃比センサ３７が活性状態になっていれば、ステップ１０３に進み、後述する図３の気筒別空燃比に基づく失火検出ルーチンを実行し、気筒別空燃比推定モデルを用いて空燃比センサ３７の検出値に基づいて推定した気筒別空燃比を判定値Ｃ1 ，Ｃ2 と比較して気筒別に失火の有無を判定する。
【００４１】
その後、ステップ１０４に進み、図３の失火検出ルーチンで失火有りと判定されたか否かを判定し、失火有りと判定されていなければ、そのまま本ルーチンを終了するが、失火有りと判定されていれば、ステップ１０５に進み、後述する図４の失火原因仮判定ルーチンを実行し、失火原因（異常部位）を仮判定する。
【００４２】
この後、ステップ１０６に進み、図４の失火原因仮判定ルーチンの判定結果に基づいて燃料系が失火原因と仮判定されているか否かを判定し、燃料系が失火原因と仮判定されていれば、ステップ１０９に進み、図４の失火原因仮判定ルーチンの判定結果に基づいて空気系が正常と仮判定されているか否かを判定し、空気系が正常と仮判定されていなければ、そのまま本ルーチンを終了するが、空気系が正常と仮判定されていれば、ステップ１１０に進み、燃料系の異常判定を確定する。この後、ステップ１１１に進み、後述する図５の燃料系補正ルーチンを実行し、失火気筒の燃料噴射量の補正量を算出して、失火気筒の燃料噴射量を補正することで、失火気筒の空燃比を正常燃焼範囲に修正する失火回復制御を実行する。
【００４３】
一方、前記ステップ１０６で、燃料系が失火原因と仮判定されていないと判定された場合は、ステップ１０７に進み、図４の失火原因仮判定ルーチンの判定結果に基づいて空気系が失火原因と仮判定されているか否かを判定し、空気系が失火原因と仮判定されていれば、ステップ１１２に進み、空気系の異常判定を確定する。この後、ステップ１１３に進み、後述する図６の空気系補正ルーチンを実行し、失火気筒の空気量の補正量を算出して、失火気筒の空気量を補正することで、失火気筒の空燃比を正常燃焼範囲に修正する失火回復制御を実行する。
【００４４】
また、前記ステップ１０７で、空気系が失火原因と仮判定されていないと判定された場合は、ステップ１０８に進み、図４の失火原因仮判定ルーチンの判定結果に基づいて点火系が失火原因と仮判定されているか否かを判定し、点火系が失火原因と仮判定されていれば、ステップ１１４に進み、点火系の異常判定を確定する。この後、ステップ１１５に進み、後述する図７の点火系補正ルーチンを実行し、失火気筒の点火時期の補正量を算出して、失火気筒の点火時期を補正することで、失火気筒の点火時期を正常燃焼範囲に修正する失火回復制御を実行する。
【００４５】
［気筒別空燃比に基づく失火検出ルーチン］
図３の気筒別空燃比に基づく失火検出ルーチンは、空燃比センサ３７の活性後に図２のステップ１０３で起動されるサブルーチンであり、特許請求の範囲でいう失火検出手段としての役割を果たす。本ルーチンが起動されると、まずステップ１２１で、気筒別空燃比推定ルーチン（図示せず）を実行し、前記気筒別空燃比推定モデルを用いて、空燃比センサ３７の検出値（排気集合部３６を流れる排出ガスの実空燃比）に基づいて気筒別空燃比を推定する。このステップ１２１の処理が特許請求の範囲でいう気筒別空燃比情報取得手段としての役割を果たす。
【００４６】
この後、ステップ１２２に進み、推定した気筒別空燃比をリッチ側判定値Ｃ1 と比較して、過リッチによる失火（リッチ失火）であるか否かを判定し、気筒別空燃比がリッチ側判定値Ｃ1 よりも小さい場合には、ステップ１２３に進み、リッチ失火と判定する。
【００４７】
これに対して、気筒別空燃比がリッチ側判定値Ｃ1 以上である場合には、ステップ１２４に進み、推定した気筒別空燃比をリーン側判定値Ｃ2 と比較して、過リーンによる失火（リーン失火）であるか否かを判定し、気筒別空燃比がリーン側判定値Ｃ2 よりも大きい場合には、ステップ１２５に進み、リーン失火と判定し、気筒別空燃比がリーン側判定値Ｃ2 以下の場合には、ステップ１２６に進み、正常燃焼と判定する。
【００４８】
要するに、推定した気筒別空燃比が図８に示す正常燃焼範囲内（リッチ側判定値Ｃ1 からリーン側判定値Ｃ2 までの範囲内）であるか否かによって正常燃焼と失火とを判定し、更に、失火の場合は、気筒別空燃比がリッチ側判定値Ｃ1 よりも小さいか否か、リーン側判定値Ｃ2 よりも大きいか否かを判定することで、リッチ失火とリーン失火とを区別して検出する。
【００４９】
図８の例では、第２気筒＃２、第３気筒＃３、第４気筒＃４の気筒別空燃比は、それぞれ正常燃焼範囲内（Ｃ1 〜Ｃ2 の範囲内）の状態を維持するため、正常燃焼と判定され続けるが、第１気筒＃１の気筒別空燃比は、時刻ｔ1 から時刻ｔ2 までの間、リーン側判定値Ｃ2 を越えた状態となるため、第１気筒＃１のリーン失火と判定される。
尚、全気筒が失火と判定された場合には、空燃比制御のメインフィードバック補正学習値により燃料系、空気系、点火系のいずれかが異常であるか否かを判定すれば良い。
【００５０】
［失火原因仮判定ルーチン］
図４の失火原因仮判定ルーチンは、図２のステップ１０４で失火（リッチ失火又はリーン失火）有りと判定されたときに、次のステップ１０５で起動されるサブルーチンであり、特許請求の範囲でいう失火原因判定手段としての役割を果たす。本ルーチンが起動されると、まずステップ１３１で、リッチ失火であるか否かを判定し、リッチ失火である場合は、ステップ１３２、ステップ１３４、ステップ１３６の判定を行って、リッチ失火の原因が燃料系、空気系、点火系のいずれであるかを判定する。
【００５１】
具体的には、まずステップ１３２で、リッチ失火が検出された気筒の実噴射量と全気筒の実噴射量平均値との差が判定値Ｃ3 よりも大きいか否か（リッチ失火が検出された気筒の実噴射量が全気筒の実噴射量平均値よりもＣ3 以上多いか否か）を判定し、その判定結果が「Ｙｅｓ」の場合には、ステップ１３３に進み、リッチ失火の原因が燃料系であると仮判定する。尚、各気筒の実噴射量は、各気筒の燃料噴射弁２０の噴射時間（噴射パルス幅）から算出すれば良い。或は、吸気ポート内壁面等に付着するウェット燃料の存在を考慮して実際にシリンダに吸入されるシリンダ流入燃料量を燃料輸送モデルによって推定し、推定した各気筒のシリンダ流入燃料量を各気筒の実噴射量の代わりに用いるようにしても良い。
【００５２】
その後、ステップ１３４に進み、リッチ失火が検出された気筒の推定空気量と全気筒の実空気量平均値との差が判定値Ｃ4 よりも小さいか否か（リッチ失火が検出された気筒の実空気量が全気筒の実空気量平均値よりもＣ4 以上少ないか否か）を判定し、その判定結果が「Ｙｅｓ」の場合には、ステップ１３５に進み、リッチ失火の原因が空気系であると仮判定する。
【００５３】
この場合、失火気筒の推定空気量は、気筒別空燃比の推定値と気筒別の実噴射量を用いて次式により算出すれば良い。
失火気筒の推定空気量＝気筒別空燃比の推定値×気筒別の実噴射量×係数
【００５４】
上式において、係数は、気筒毎の空気や燃料の吸入しやすさを考慮するための係数である。上式は、吸気ポート内壁面等に付着するウェット燃料の存在を係数によって補正するようにしているが、ウェット燃料の存在を考慮して実際にシリンダに吸入されるシリンダ流入燃料量を燃料輸送モデルを用いて推定し、このシリンダ流入燃料量を気筒別の実噴射量の代わりに用いて次式により気筒の推定空気量を算出するようにしても良い。
【００５５】
失火気筒の推定空気量＝気筒別空燃比の推定値×シリンダ流入燃料×係数
或は、吸気系の空気の流れを模擬した吸気系モデルを用いて、エアフローメータ１４及び／又は吸気管圧力センサ１８の検出値に基づいて各気筒の推定空気量を演算するようにしても良い。
また、全気筒の実空気量平均値は、エアフローメータ１４及び／又は吸気管圧力センサ１８の検出値に基づいて算出すれば良い。
【００５６】
その後、ステップ１３６に進み、リッチ失火が検出された気筒の点火時期が進角側判定値Ｃ7 よりも大きい（進角されている）か、又は遅角側判定値Ｃ8 よりも小さい（遅角されている）か否かを判定し、その判定結果が「Ｙｅｓ」の場合には、ステップ１３７に進み、リッチ失火の原因が点火系であると仮判定する。
【００５７】
一方、前記ステップ１３１の判定結果が「Ｎｏ」の場合、つまりリーン失火の場合には、ステップ１３８、ステップ１４０、ステップ１４２の判定を行って、リーン失火の原因が燃料系、空気系、点火系のいずれであるかを判別する。
【００５８】
具体的には、まずステップ１３８で、リーン失火が検出された気筒の実噴射量と全気筒の実噴射量平均値との差が判定値Ｃ5 よりも小さいか否か（リーン失火が検出された気筒の実噴射量が全気筒の実噴射量平均値よりもＣ5 以上少ないか否か）を判定する。このステップ１３８で用いる判定値Ｃ5 はマイナス値である（前記ステップ１３２で用いる判定値Ｃ5 はプラス値である）。このステップ１３８の判定結果が「Ｙｅｓ」の場合には、ステップ１３９に進み、リーン失火の原因が燃料系であると仮判定する。
【００５９】
その後、ステップ１４０に進み、リーン失火が検出された気筒の推定空気量と全気筒の実空気量平均値との差が判定値Ｃ6 よりも大きいか否か（リーン失火が検出された気筒の実空気量が全気筒の実空気量平均値よりもＣ6 以上多いか否か）を判定する。このステップ１４０で用いる判定値Ｃ6 はプラス値である（前記ステップ１３４で用いる判定値Ｃ4 はマイナス値である）。このステップ１４０の判定結果が「Ｙｅｓ」の場合には、ステップ１４１に進み、リーン失火の原因が空気系であると仮判定する。
【００６０】
その後、ステップ１４２に進み、リーン失火が検出された気筒の点火時期が進角側判定値Ｃ7 よりも大きい（進角されている）か、又は遅角側判定値Ｃ8 よりも小さい（遅角されている）か否かを判定し、その判定結果が「Ｙｅｓ」の場合には、ステップ１４３に進み、リーン失火の原因が点火系であると仮判定する。
【００６１】
以上説明した本ルーチンによる失火原因の判定方法を図９及び図１０を用いて説明する。図９は、燃料系が原因で第１気筒＃１にリーン失火が発生したときの挙動である。何等かの原因で、第１気筒＃１の実噴射量が著しく減少すると、第１気筒＃１の空燃比が過リーンになって第１気筒＃１にリーン失火が発生する。このとき、第１気筒＃１の実噴射量の減少に伴って、第１気筒＃１の実噴射量と全気筒の実噴射量平均値との差がマイナス方向に変化して、時刻ｔ3 で第１気筒＃１の実噴射量と全気筒の実噴射量平均値との差が判定値Ｃ5 （マイナス値）以下となり、燃料系が原因で第１気筒＃１にリーン失火が発生したと判定される。その後、時刻ｔ4 で、第１気筒＃１の実噴射量と全気筒の実噴射量平均値との差が判定値Ｃ5 以上に戻り、燃料系は正常と判定される。
【００６２】
一方、図１０は、空気系が原因で第１気筒＃１にリッチ失火が発生したときの挙動である。何等かの原因で、第１気筒＃１の実空気量（推定空気量）が著しく減少すると、第１気筒＃１の空燃比が過リッチになって第１気筒＃１にリッチ失火が発生する。このとき、第１気筒＃１の推定空気量の減少に伴って、第１気筒＃１の推定空気量と全気筒の実空気量平均値との差がマイナス方向に変化して、時刻ｔ5 で第１気筒＃１の推定空気量と全気筒の実空気量平均値との差が判定値Ｃ4 （マイナス値）以下となり、空気系が原因で第１気筒＃１にリッチ失火が発生したと判定される。その後、時刻ｔ6 で、第１気筒＃１の推定空気量と全気筒の実空気量平均値との差が判定値Ｃ4 以上に戻り、空気系は正常と判定される。
【００６３】
［燃料系補正ルーチン］
図５の燃料系補正ルーチンは、図２のステップ１１０で失火原因が燃料系と判定されたときに、次のステップ１１１で起動されるサブルーチンであり、特許請求の範囲でいう失火回復制御手段としての役割を果たす。本ルーチンが起動されると、まずステップ１５１で、本ルーチンのステップ１５２〜１５５の処理による失火回復のための噴射量補正の実行時間が所定時間Ｃ9 未満であるか否かを判定し、この噴射量補正の実行時間が所定時間Ｃ9 未満であれば、ステップ１５２に進み、リッチ失火であるか否かを判定する。
【００６４】
このステップ１５２で、リッチ失火と判定されれば、ステップ１５３に進み、リッチ失火が検出された気筒の推定空燃比（気筒別空燃比の推定値）に基づいて噴射量の減量補正量を算出する。尚、リッチ失火が検出された気筒の実噴射量と全気筒の実噴射量平均値との差に基づいて噴射量の減量補正量を算出するようにしても良い。
【００６５】
一方、ステップ１５２で、リーン失火と判定されれば、ステップ１５４に進み、リーン失火が検出された気筒の推定空燃比に基づいて噴射量の増量補正量を算出する。尚、リーン失火が検出された気筒の実噴射量と全気筒の実噴射量平均値との差に基づいて噴射量の増量補正量を算出するようにしても良い。
【００６６】
以上のようにしてステップ１５３又は１５４で、失火気筒の噴射量の減量／増量補正量を算出した後、ステップ１５５に進み、失火気筒の噴射量を上記補正量で補正して、失火気筒の空燃比を正常燃焼範囲に修正して、失火気筒を早期に正常燃焼に復帰させるようにする。
【００６７】
このような噴射量補正の実行時間が所定時間Ｃ9 未満の場合は、燃料系の異常判定が解除されるまで、上記ステップ１５２〜１５５の処理による噴射量補正が実行される。しかし、燃料系の異常判定が解除されずに、噴射量補正の実行時間が所定時間Ｃ9 に達した場合には、ステップ１５１で「Ｎｏ」と判定されて、ステップ１５６に進み、正常燃焼に復帰できないと判断して、当該失火気筒に対して噴射カット又は噴射カットと点火カットの両方を実行して、当該失火気筒の運転を停止する。この場合、ステップ１５１→１５６の処理が特許請求の範囲でいう気筒別運転停止手段としての役割を果たす。
【００６８】
［空気系補正ルーチン］
図６の空気系補正ルーチンは、図２のステップ１１２で失火原因が空気系と判定されたときに、次のステップ１１３で起動されるサブルーチンであり、特許請求の範囲でいう失火回復制御手段としての役割を果たす。本ルーチンが起動されると、まずステップ１６１で、本ルーチンのステップ１６２〜１６５の処理による失火回復のための空気量補正の実行時間が所定時間Ｃ9 未満であるか否かを判定し、この空気量補正の実行時間が所定時間Ｃ9 未満であれば、ステップ１６２に進み、リッチ失火であるか否かを判定する。
【００６９】
このステップ１６２で、リッチ失火と判定されれば、ステップ１６３に進み、リッチ失火が検出された気筒の推定空燃比に基づいて空気量の減量補正量を算出する。尚、リッチ失火が検出された気筒の推定空気量と全気筒の実空気量平均値との差に基づいて空気量の減量補正量を算出するようにしても良い。
【００７０】
一方、ステップ１６２で、リーン失火と判定されれば、ステップ１６４に進み、リーン失火が検出された気筒の推定空燃比に基づいて空気量の増量補正量を算出する。尚、リーン失火が検出された気筒の推定空気量と全気筒の実空気量平均値との差に基づいて空気量の増量補正量を算出する。
【００７１】
以上のようにしてステップ１６３又は１６４で、失火気筒の空気量の減量／増量補正量を算出した後、ステップ１６５に進み、失火気筒の空気量（スロットル開度や吸気バルブリフト量等）を上記補正量で補正して、失火気筒の実空気量と全気筒の実空気量平均値との差を小さくする。これにより、失火気筒の空燃比を正常燃焼範囲に修正して、失火気筒を早期に正常燃焼に復帰させることができる。
【００７２】
このような空気量補正の実行時間が所定時間Ｃ9 未満の場合は、空気系の異常判定が解除されるまで、上記ステップ１６２〜１６５の処理による空気量補正が実行される。しかし、空気系の異常判定が解除されずに、空気量補正の実行時間が所定時間Ｃ9 に達した場合には、ステップ１６１で「Ｎｏ」と判定されて、ステップ１６６に進み、正常燃焼に復帰できないと判断して、当該失火気筒に対して噴射カット又は噴射カットと点火カットの両方を実行して、当該失火気筒の運転を停止する。この場合、ステップ１６１→１６６の処理が特許請求の範囲でいう気筒別運転停止手段としての役割を果たす。
【００７３】
［点火系補正ルーチン］
図７の点火系補正ルーチンは、図２のステップ１１２で失火原因が点火系と判定されたときに、次のステップ１１５で起動されるサブルーチンであり、特許請求の範囲でいう失火回復制御手段としての役割を果たす。本ルーチンが起動されると、まずステップ１７１で、本ルーチンのステップ１７２〜１７６の処理による失火回復のための点火時期補正の実行時間が所定時間Ｃ9 未満であるか否かを判定し、この点火時期補正の実行時間が所定時間Ｃ9 未満であれば、ステップ１７２に進み、点火時期の過進角による進角失火であるか否かを判定する。この判定は、点火時期が進角側判定値Ｃ7 よりも進角されているか否かによって判定する。
【００７４】
このステップ１７２で、進角失火と判定されれば、ステップ１７３に進み、進角失火が検出された気筒の点火時期の遅角補正量を例えば現在の点火時期と進角側判定値Ｃ7 との差に基づいて算出する。一方、ステップ１７２で、進角失火でないと判定された場合は、ステップ１７４に進み、点火時期の過遅角による遅角失火であるか否かを判定する。この判定は、点火時期が遅角側判定値Ｃ8 よりも遅角されているか否かによって判定する。
【００７５】
このステップ１７４で、遅角失火と判定されれば、ステップ１７５に進み、遅角失火が検出された気筒の点火時期の進角補正量を例えば現在の点火時期と遅角側判定値Ｃ8 との差に基づいて算出する。尚、ステップ１７２とステップ１７４の判定結果がいずれも「Ｎｏ」の場合、つまり、進角失火と遅角失火のいずれにも該当しない場合は、そのまま本ルーチンを終了する。
【００７６】
以上のようにしてステップ１７３又は１７５で、失火気筒の点火時期の遅角／進角補正量を算出した後、ステップ１７６に進み、失火気筒の点火時期を上記補正量で補正して、失火気筒の点火時期を正常燃焼範囲に修正して、失火気筒を早期に正常燃焼に復帰させることができる。
【００７７】
このような点火時期補正の実行時間が所定時間Ｃ9 未満の場合は、点火系の異常判定が解除されるまで、上記ステップ１７２〜１７６の処理による点火時期補正が実行される。しかし、点火系の異常判定が解除されずに、点火時期補正の実行時間が所定時間Ｃ9 に達した場合には、ステップ１７１で「Ｎｏ」と判定されて、ステップ１７７に進み、正常燃焼に復帰できないと判断して、当該失火気筒に対して噴射カット又は噴射カットと点火カットの両方を実行して、当該失火気筒の運転を停止する。この場合、ステップ１７１→１７７の処理が特許請求の範囲でいう気筒別運転停止手段としての役割を果たす。
【００７８】
以上説明した本実施例の制御例を図１１のタイムチャートを用いて説明する。エンジン運転中は、気筒別空燃比推定モデルを用いて空燃比センサ３７の検出値（排気集合部３６を流れる排出ガスの実空燃比）に基づいて各気筒の気筒別空燃比を推定し、各気筒の気筒別空燃比が正常燃焼範囲内（リッチ側判定値Ｃ1 からリーン側判定値Ｃ2 までの範囲内）であるか否かによって正常燃焼と失火とを判定する。図１１の例では、時刻ｔ7 以前と時刻ｔ8 以降は、全気筒の気筒別空燃比が正常燃焼範囲内（Ｃ1 〜Ｃ2 の範囲内）に収まっているため、全気筒が正常燃焼と判定される。
【００７９】
一方、時刻ｔ7 〜ｔ8 の期間は、１つの気筒の気筒別空燃比がリーン側判定値Ｃ2 を越えるため、リーン失火と判定される。このリーン失火検出区間（ｔ7 〜ｔ8 ）では、リーン失火が検出された気筒の実噴射量と全気筒の実噴射量平均値との差が判定値Ｃ5 よりも小さいか否かを判定し、この差が判定値Ｃ5 よりも小さければ、リーン失火の原因が燃料系であると仮判定する。
【００８０】
また、リーン失火検出区間（ｔ7 〜ｔ8 ）では、リーン失火が検出された気筒の推定空気量と全気筒の実空気量平均値との差が判定値Ｃ6 よりも大きいか否かによって、リーン失火の原因が空気系であるか否かを判定する。更に、失火検出区間（ｔ7 〜ｔ8 ）では、失火が検出された気筒の点火時期が進角側判定値Ｃ7 よりも進角されているか、又は遅角側判定値Ｃ8 よりも遅角されているか否かによって、失火の原因が点火系であるか否かを判定する。
【００８１】
図１１の例では、リーン失火が検出された気筒の実噴射量と全気筒の実噴射量平均値との差が判定値Ｃ5 よりも小さくなるため、リーン失火の原因が燃料系であると仮判定される。これにより、リーン失火が検出された気筒の推定空燃比に基づいて、燃料系補正量である噴射量の増量補正量を算出し、この増量補正量により失火気筒の噴射量を増量して、失火気筒の空燃比を正常燃焼範囲に修正し、失火気筒を早期に正常燃焼に復帰させる。
【００８２】
以上説明した本実施例によれば、失火発生時に、失火気筒の空燃比（気筒別空燃比）が急激に変化するという特性に着目して、気筒別空燃比推定モデルを用いて空燃比センサ３７の検出値に基づいて各気筒の気筒別空燃比を推定し、各気筒の気筒別空燃比が正常燃焼範囲内であるか否かによって正常燃焼と失火とを判定するようにしたので、気筒間の燃焼ばらつきや悪路走行による回転変動や回転域の影響をあまり受けずに、気筒別に失火を精度良く検出することができる。
【００８３】
しかも、本実施例では、失火を検出した気筒に対して、当該失火気筒の実噴射量と全気筒の実噴射量平均値との差に基づいて失火の原因が燃料系であるか否かを判定するようにしたので、失火原因が燃料系であるか否かを精度良く判定することができる。尚、失火気筒の目標噴射量と全気筒の目標噴射量平均値との差に基づいて失火の原因が燃料系であるか否かを判定するようにしても良く、要は、失火気筒の燃料噴射量に関する情報を用いて失火原因が燃料系であるか否かを判定するようにすれば良い。
【００８４】
また、本実施例では、失火を検出した気筒に対して、当該失火気筒の推定空気量と全気筒の実空気量平均値との差に基づいて失火の原因が空気系であるか否かを判定するようにしたので、失火原因が空気系であるか否かを精度良く判定することができる。この場合、失火気筒の推定空気量は、気筒別空燃比推定モデルを用いて推定した気筒別空燃比と気筒別の実噴射量を用いて精度良く推定できる。尚、失火気筒の推定空気量と全気筒の目標空気量平均値との差に基づいて失火の原因が空気系であるか否かを判定するようにしても良く、要は、失火気筒の空気量に関する情報を用いて失火原因が空気系であるか否かを判定するようにすれば良い。
【００８５】
また、本実施例では、失火を検出した気筒に対して、当該失火気筒の点火時期を進角側判定値Ｃ7 と遅角側判定値Ｃ8 と比較して、失火の原因が点火系であるか否かを判定するようにしたので、失火原因が点火系であるか否かを精度良く判定することができる。
【００８６】
更に、本実施例では、気筒別空燃比推定モデルが空燃比センサ３７の検出値をその過去の検出値から予測する自己回帰モデルとなっているため、空燃比センサ３７の検出値から気筒別空燃比を精度良く推定することができる。しかも、簡単なモデルにすることができるので、モデリングの複雑さを解消できると共に、ＥＣＵ４０の演算負荷を軽減できる利点がある。
【００８７】
しかも、本実施例では、気筒別空燃比推定モデルを用いて推定した気筒別空燃比に基づいて、過リッチによる失火（リッチ失火）と過リーンによる失火（リーン失火）とを区別して検出するようにしたので、リッチ失火を検出した気筒に対して、燃料噴射量の減量補正及び／又は吸入空気量の増量補正を実行し、リーン失火を検出した気筒に対して、燃料噴射量の増量補正及び／又は吸入空気量の減量補正を実行して、失火気筒の空燃比を正常燃焼範囲に修正することができ、燃料系や空気系が正常な場合には、リッチ失火やリーン失火が発生した気筒を早期に正常燃焼に復帰させることができる。
【００８８】
更に、本実施例では、失火を検出した気筒に対して、点火時期に基づいて過進角による失火（進角失火）と過遅角による失火（遅角失火）とを区別して検出し、進角失火を検出した気筒に対して、点火時期の遅角補正を実行し、遅角失火を検出した気筒に対して、点火時期の進角補正を実行することが可能となり、点火系が正常な場合には、進角失火や遅角失火が発生した気筒を早期に正常燃焼に復帰させることができる。
【００８９】
また、本実施例では、失火から正常燃焼に復帰させる上記失火回復制御を所定時間行っても、失火を検出し続ける場合には、正常燃焼に復帰できないと判断して、当該失火気筒の運転を停止するようにしたので、失火状態が長く続くことによるＨＣ排出量増加の問題を回避することができる。
【００９０】
また、本実施例では、空燃比センサ３７の活性前は、空燃比の検出精度が悪いという事情を考慮して、始動から空燃比センサ３７が活性状態になるまでの期間は、エンジン回転変動に基づいて失火を検出するようにしたので、空燃比センサ３７の活性前でも、ある程度の精度で失火を検出することができる。しかしながら、空燃比センサ３７の活性前は、失火検出を禁止するようにしても良いことは言うまでもない。
【００９１】
前述したように、本実施例では、空燃比センサ３７の検出値に基づいて推定した気筒別空燃比を用いて気筒別に失火を検出するようにしたが、各気筒に供給する混合気の空燃比を気筒別に補正するようにしたシステムにおいては、ある気筒に失火が発生すると、その失火気筒の気筒別空燃比補正量が急激に増大することを考慮して、気筒別空燃比補正量を気筒別空燃比情報として用いて気筒別に失火を検出するようにしても良い。
【００９２】
その他、本発明は、吸気ポート噴射エンジンに限定されず、筒内噴射エンジンにも適用して実施できる等、要旨を逸脱しない範囲で種々変更して実施できる。
【図面の簡単な説明】
【００９３】
【図１】本発明の一実施例におけるエンジン制御システム全体の概略構成図である。
【図２】失火検出メインルーチンの処理の流れを示すフローチャートである。
【図３】気筒別空燃比に基づく失火検出ルーチンの処理の流れを示すフローチャートである。
【図４】失火原因仮判定ルーチンの処理の流れを示すフローチャートである。
【図５】燃料系補正ルーチンの処理の流れを示すフローチャートである。
【図６】空気系補正ルーチンの処理の流れを示すフローチャートである。
【図７】点火系補正ルーチンの処理の流れを示すフローチャートである。
【図８】リーン失火が発生した気筒と他の気筒の気筒別空燃比の挙動の一例を示すタイムチャートである。
【図９】燃料系が原因でリーン失火が発生した気筒の実噴射量の挙動と当該失火気筒の実噴射量と全気筒の実噴射量平均値との差の挙動の一例を示すタイムチャートである。
【図１０】空気系が原因でリッチ失火が発生した気筒の推定空気量の挙動と当該失火気筒の推定空気量と全気筒の実空気量平均値との差の挙動の一例を示すタイムチャートである。
【図１１】燃料系が原因でリーン失火が発生した場合の制御例を示すタイムチャートである。
【符号の説明】
【００９４】
１１…エンジン（内燃機関）、１２…吸気管、１４…エアフローメータ、１５…スロットルバルブ、１９…吸気マニホールド、２０…燃料噴射弁、２２…燃料ポンプ、２４…燃圧センサ、２７，２８…可変バルブタイミング機構、３５…排気マニホールド、３６…排気集合部、３７…空燃比センサ、３８…触媒、４０…ＥＣＵ（気筒別空燃比情報取得手段，失火検出手段，失火原因判定手段，気筒別空燃比補正手段，失火回復制御手段，気筒別運転停止手段）
【図１】
2005163696.tif 000003
【図２】
2005163696.tif 000004
【図３】
2005163696.tif 000005
【図４】
2005163696.tif 000006
【図５】
2005163696.tif 000007
【図６】
2005163696.tif 000008
【図７】
2005163696.tif 000009
【図８】
2005163696.tif 000010
【図９】
2005163696.tif 000011
【図１０】
2005163696.tif 000012
【図１１】
2005163696.tif 000013