(57)【要約】    【課題】  気筒別空燃比制御中に、異常気筒の影響を受けずに、各気筒の異常の有無を精度良く診断できるようにする。    【解決手段】  空燃比センサ３７の検出値に基づいて各気筒の空燃比を推定し、各気筒の推定空燃比に基づいて気筒間の空燃比ばらつきを少なくするように各気筒の空燃比を制御する気筒別空燃比制御を行う。この気筒別空燃比制御中に、各気筒毎に、第ｉ気筒（ｉ＝１，２，…）の推定空燃比と、第ｉ気筒以外の気筒の推定空燃比のうち最小値及び最大値を除外した残りの推定空燃比の平均値とを比較して第ｉ気筒の異常の有無を判定する。これにより、第ｉ気筒以外の気筒の中に異常気筒が存在しても、第ｉ気筒の推定空燃比と、第ｉ気筒以外の気筒の推定空燃比から異常気筒の推定空燃比を除外した残りの推定空燃比の平均値とを比較して第ｉ気筒の異常の有無を精度良く診断する。    【選択図】  図１
2006138280.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の各気筒の空燃比を検出する気筒別空燃比検出手段と、前記気筒別空燃比検出手段で検出した各気筒の検出空燃比に基づいて気筒別に空燃比を制御する気筒別空燃比制御を行う気筒別空燃比制御手段とを備えた内燃機関の制御装置において、
前記気筒別空燃比制御中に、所定気筒の検出空燃比又はそれに相関する情報（以下「検出空燃比情報」という）を、その他の気筒の検出空燃比情報のうち最大値及び最小値を除外した残りの検出空燃比情報の平均値と比較して、前記所定気筒の異常の有無を診断する気筒別異常診断手段を備えていることを特徴とする内燃機関の制御装置。
【請求項２】
内燃機関の各気筒の空燃比を検出する気筒別空燃比検出手段と、前記気筒別空燃比検出手段で検出した各気筒の検出空燃比に基づいて気筒別に空燃比を制御する気筒別空燃比制御を行う気筒別空燃比制御手段とを備えた内燃機関の制御装置において、
前記気筒別空燃比制御中に、所定気筒の検出空燃比又はそれに相関する情報（以下「検出空燃比情報」という）を、その他の気筒の検出空燃比情報のメジアンと比較して、前記所定気筒の異常の有無を診断する気筒別異常診断手段を備えていることを特徴とする内燃機関の制御装置。
【請求項３】
内燃機関の失火発生時及びその後所定期間が経過するまで前記気筒別異常診断手段による異常診断を禁止する気筒別異常診断禁止手段を備えていることを特徴とする請求項１又は２に記載の内燃機関の制御装置。
【請求項４】
内燃機関の失火発生時及びその後所定期間が経過するまで前記気筒別空燃比制御を禁止する気筒別空燃比制御禁止手段を備えていることを特徴とする請求項１乃至３のいずれかに記載の内燃機関の制御装置。
【請求項５】
前記気筒別空燃比検出手段は、各気筒の排出ガスが集合して流れる排気集合部に設置された空燃比センサの検出値に基づいて各気筒の空燃比を推定することを特徴とする請求項１乃至４のいずれかに記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の気筒別に異常の有無を診断する機能を備えた内燃機関の制御装置に関するものである。
【背景技術】
【０００２】
近年、内燃機関の気筒間の空燃比ばらつきを少なくして空燃比制御精度を向上させるために、各気筒の排出ガスが集合して流れる排気集合部に設置した空燃比センサの出力に基づいて各気筒の空燃比を推定し、各気筒の推定空燃比に基づいて気筒間の空燃比ばらつきが小さくなるように各気筒の空燃比補正量（例えば燃料噴射補正量）を設定して気筒別に空燃比を制御する“気筒別空燃比制御”を行うようにしたものがある。
【０００３】
このような気筒別空燃比制御を行うシステムにおいては、例えば、特許文献１（実公平６−４５６４４号公報）に記載されているように、いずれか１つの気筒の空燃比補正量を、それ以外の気筒の空燃比補正量の平均値と比較することで、当該気筒の異常の有無を診断するようにしたものがある。
【０００４】
また、特許第２６８４０１１号公報に記載されているように、各気筒の空燃比補正量が所定範囲内であるか否かを各気筒毎に判定して、各気筒の異常の有無を診断するようにしたものもある。
【特許文献１】実公平６−４５６４４号公報（第３頁等）
【特許文献２】特許第２６８４０１１号公報（第１頁等）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記特許文献１の異常診断では、所定気筒の空燃比補正量と、その所定気筒以外の気筒の空燃比補正量の平均値とを比較する際に、所定気筒以外の気筒の中に異常な気筒（例えば空燃比がリッチ又はリーン方向に大きくずれた気筒）が存在する場合、その異常気筒の情報が、所定気筒以外の気筒の空燃比補正量の平均値に含まれてしまうため、この平均値を用いる異常診断の精度が低下して、最悪の場合、正常な気筒を異常有りと誤診断してしまう可能性がある。
【０００６】
また、一般に、気筒別空燃比制御では、ある気筒の空燃比のずれが大きいと、それを解消するように他の気筒の空燃比も補正するように制御される。しかし、上記特許文献２の異常診断では、診断しようとする気筒の空燃比補正量と他の気筒の空燃比補正量との比較を行わずに、単に、１つの気筒の空燃比補正量が所定範囲内であるか否かだけで、その気筒の異常の有無を診断するため、他の異常な気筒の空燃比のずれの影響で正常な気筒の空燃比補正量が大きく変化した場合に、その正常な気筒を異常と誤診断してしまう可能性がある。
【０００７】
本発明は、これらの事情を考慮してなされたものであり、従って本発明の目的は、異常気筒の影響を受けずに、各気筒の異常の有無を精度良く診断することができる内燃機関の制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の請求項１に記載の内燃機関の制御装置は、気筒別空燃比検出手段によって内燃機関の各気筒の空燃比を検出し、気筒別空燃比制御手段によって各気筒の検出空燃比に基づいて気筒別に空燃比を制御する気筒別空燃比制御を行うシステムにおいて、気筒別空燃比制御中に、気筒別異常診断手段によって、所定気筒の検出空燃比又はそれに相関する情報（以下「検出空燃比情報」という）を、その他の気筒の検出空燃比情報のうち最大値及び最小値を除外した残りの検出空燃比情報の平均値と比較して、所定気筒の異常の有無を診断するようにしたものである。
【０００９】
所定気筒の異常診断の際に、もし、その他の気筒の中に異常気筒（例えば空燃比がリッチ又はリーン方向に大きくずれた気筒）が存在すると、その異常気筒の検出空燃比情報（例えば検出空燃比や空燃比補正量等）が、その他の気筒の中で最大値又は最小値となる。この点に着目して、請求項１のように、所定気筒の検出空燃比情報を、その他の気筒の検出空燃比情報のうち最大値及び最小値を除外した残りの気筒の検出空燃比情報の平均値と比較すれば、もし、その他の気筒の中に異常気筒が存在していても、所定気筒の検出空燃比情報を、その他の気筒の検出空燃比情報から異常気筒の検出空燃比情報を除外した残りの気筒の検出空燃比情報の平均値と比較することができて、所定気筒の異常の有無を精度良く診断することができる。このようにして、各気筒毎に異常診断を実施すれば、異常気筒の検出空燃比情報の影響を受けずに、各気筒の異常の有無を精度良く診断することができる。
【００１０】
また、請求項２のように、気筒別空燃比制御中に、所定気筒の検出空燃比情報を、その他の気筒の検出空燃比情報のメジアン（中央値）と比較して、所定気筒の異常の有無を診断するようにしても良い。このようにすれば、その他の気筒の中に異常気筒が存在していても、所定気筒の検出空燃比情報を、その他の気筒の検出空燃比情報のうち異常気筒の検出空燃比情報（最大値又は最小値）以外の検出空燃比情報（メジアン）と比較することができて、所定気筒の異常の有無を精度良く診断することができ、異常気筒の検出空燃比情報の影響を受けずに、各気筒の異常の有無を精度良く診断することができる。
【００１１】
ところで、気筒別空燃比制御中に失火が発生すると、各気筒の検出空燃比の検出精度が低下するため、検出空燃比情報を用いた異常診断の診断精度が低下して、異常の有無を誤診断する可能性がある。
【００１２】
そこで、請求項３のように、内燃機関の失火発生時及びその後所定期間が経過するまで気筒別異常診断手段による異常診断を禁止するようにすると良い。このようにすれば、失火の影響で各気筒の検出空燃比の検出精度が低下する期間に、検出空燃比情報を用いた異常診断を禁止して、異常の有無の誤診断を未然に防止することができる。
【００１３】
また、気筒別空燃比制御中に失火が発生すると、各気筒の検出空燃比の検出精度が低下するため、検出空燃比情報を用いた気筒別空燃比制御の制御精度が低下して、気筒間の空燃比ばらつきが悪化する可能性がある。
【００１４】
そこで、請求項４のように、内燃機関の失火発生時及びその後所定期間が経過するまで気筒別空燃比制御を禁止するようにしても良い。このようにすれば、失火の影響で各気筒の検出空燃比の検出精度が低下する期間に、検出空燃比情報を用いた気筒別空燃比制御を禁止して、気筒別空燃比制御精度低下による気筒間の空燃比ばらつきの悪化を未然に防止することができる。
【００１５】
ところで、各気筒の排気マニホールドにそれぞれ空燃比センサを設置して、各気筒の排出ガスの空燃比を各気筒の空燃比センサによって直接検出するようにしても良いが、この構成では、気筒数と同数の空燃比センサが必要となり、コスト増を招くという問題が発生する。
【００１６】
そこで、請求項５のように、各気筒の排出ガスが集合して流れる排気集合部に設置された空燃比センサの検出値に基づいて各気筒の空燃比を推定するようにすると良い。このようにすれば、１個の空燃比センサで全気筒の空燃比を推定することができ、低コスト化の要求を満たすことができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明を実施するための最良の形態を２つの実施例１，２を用いて説明する。
【実施例１】
【００１８】
本発明の実施例１を図１乃至図４に基づいて説明する。まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。内燃機関である例えば直列６気筒のエンジン１１は、第１気筒＃１〜第６気筒＃６の６つの気筒を有し、このエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、モータ等によって開度調節されるスロットルバルブ１５と、スロットル開度を検出するスロットル開度センサ１６とが設けられている。
【００１９】
更に、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７には、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。エンジン運転中は、燃料タンク２１内の燃料が燃料ポンプ２２によりデリバリパイプ２３に送られ、各気筒の噴射タイミング毎に各気筒の燃料噴射弁２０から燃料が噴射される。デリバリパイプ２３には、燃料圧力（燃圧）を検出する燃圧センサ２４が取り付けられている。
【００２０】
また、エンジン１１には、吸気バルブ２５と排気バルブ２６の開閉タイミングをそれぞれ可変する可変バルブタイミング機構２７，２８が設けられている。更に、エンジン１１には、吸気カム軸２９と排気カム軸３０の回転に同期してカム角信号を出力する吸気カム角センサ３１と排気カム角センサ３２が設けられ、エンジン１１のクランク軸の回転に同期して所定クランク角毎（例えば３０℃Ａ毎）にクランク角信号のパルスを出力するクランク角センサ３３が設けられている。
【００２１】
一方、エンジン１１の各気筒の排気マニホールド３５が集合する排気集合部３６には、排出ガスの空燃比を検出する空燃比センサ３７が設置され、この空燃比センサ３７の下流側に排出ガス中のＣＯ，ＨＣ，ＮＯｘ等を浄化する三元触媒等の触媒３８が設けられている。
【００２２】
上記空燃比センサ３７等の各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）４０に入力される。このＥＣＵ４０は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、エンジン運転状態に応じて燃料噴射弁２０の燃料噴射量や点火時期を制御する。
【００２３】
また、ＥＣＵ４０は、後述する図２の気筒別空燃比制御プログラムを実行することで、まず、例えば気筒別空燃比推定モデルを用いて空燃比センサ３７の検出値（排気集合部３６を流れる排出ガスの実空燃比）に基づいて各気筒の空燃比α(#i)を推定する。ここで、(#i)は気筒番号であり、(#1)〜(#6)のいずれかを意味する。そして、全気筒の推定空燃比α(#1)〜α(#6)の平均値を基準空燃比に設定して、各気筒毎に、推定空燃比α(#i)と基準空燃比との偏差が小さくなるように空燃比補正量（燃料噴射補正量）を算出し、各気筒の空燃比補正量に基づいて各気筒の燃料噴射量を補正することで、各気筒に供給する混合気の空燃比を各気筒毎に補正して気筒間の空燃比ばらつきを少なくするように制御する“気筒別空燃比制御”を行う。
【００２４】
更に、ＥＣＵ４０は、後述する図３及び図４の気筒別異常診断プログラムを実行することで、気筒別空燃比制御中に、各気筒毎に、第ｉ気筒＃ｉ以外の気筒の推定空燃比の最小値αmin(#i) と最大値αmax(#i) を求めて、第ｉ気筒＃ｉ以外の気筒の推定空燃比のうち最小値αmin(#i) 及び最大値αmax(#i) を除外した残りの推定空燃比の平均値αave(#i) を算出する（ｉ＝１，２，…，６）。そして、各気筒毎に、第ｉ気筒＃ｉの推定空燃比α(#i)と、第ｉ気筒＃ｉ以外の気筒の推定空燃比のうち最小値αmin(#i) 及び最大値αmax(#i) を除外した残りの推定空燃比の平均値αave(#i) との偏差Δα(#i)に基づいて第ｉ気筒＃ｉの異常の有無を判定する。
【００２５】
第ｉ気筒＃ｉの異常診断の際に、もし、第ｉ気筒＃ｉ以外の気筒の中に異常気筒（例えば空燃比がリッチ又はリーン方向に大きくずれた気筒）が存在すると、その異常気筒の推定空燃比が、第ｉ気筒＃ｉ以外の気筒の中で最大値又は最小値となる。従って、本実施例１のように、第ｉ気筒＃ｉの推定空燃比α(#i)と、第ｉ気筒＃ｉ以外の気筒の推定空燃比のうち最小値αmin(#i) 及び最大値αmax(#i) を除外した残りの推定空燃比の平均値αave(#i) との偏差Δα(#i)に基づいて第ｉ気筒＃ｉの異常の有無を診断すれば、仮に、第ｉ気筒＃ｉ以外の気筒の中に異常気筒が存在していても、第ｉ気筒＃ｉの推定空燃比α(#i)と、第ｉ気筒＃ｉ以外の気筒の推定空燃比から異常気筒の推定空燃比を除外した残りの推定空燃比の平均値αave(#i) との偏差Δα(#i)に基づいて第ｉ気筒＃ｉの異常の有無を精度良く診断することができる。
以下、ＥＣＵ４０が実行する図２乃至図４の各プログラムの処理内容を説明する。
【００２６】
［気筒別空燃比制御］
図２に示す気筒別空燃比制御プログラムは、クランク角センサ３３の出力パルスに同期して所定クランク角毎（例えば３０℃Ａ毎）に起動され、特許請求の範囲でいう気筒別空燃比制御手段としての役割を果たす。本プログラムが起動されると、まず、ステップ１０１で、気筒別空燃比制御の実行条件が成立しているか否かを判定する。この気筒別空燃比制御の実行条件としては、例えば次の条件(1) 〜(4) がある。
【００２７】
(1) 空燃比センサ３７が活性状態であること
(2) 空燃比センサ３７が異常（故障）と判定されていないこと
(3) エンジン１１が暖機状態（例えば冷却水温が所定温度以上）であること
(4) エンジン運転領域（例えばエンジン回転速度と吸気管圧力）が空燃比推定精度を確保できる運転領域であること
これら４つの条件(1) 〜(4) を全て満たしたときに気筒別空燃比制御の実行条件が成立し、いずれか１つでも満たさない条件があれば、実行条件が不成立となる。実行条件が不成立の場合は、以降の処理を行うことなく、本プログラムを終了する。
【００２８】
一方、実行条件が成立している場合には、ステップ１０２に進み、空燃比センサ３７の出力（空燃比検出値）を読み込み、次のステップ１０３で、例えば気筒別空燃比推定モデルを用いて今回の空燃比対象となる気筒の空燃比α(#i)を空燃比センサ３７の検出値に基づいて推定する。このステップ１０３の処理が特許請求の範囲でいう気筒別空燃比検出手段としての役割を果たす。
【００２９】
この後、ステップ１０４に進み、全気筒の推定空燃比α(#1)〜α(#6)の平均値を算出して、その平均値を基準空燃比に設定する。
この後、ステップ１０５に進み、各気筒の推定空燃比α(#i)と基準空燃比との偏差を算出して、その偏差が小さくなるように各気筒の空燃比補正量（燃料噴射補正量）を算出した後、ステップ１０６に進み、各気筒の空燃比補正量に基づいて各気筒の燃料噴射量を補正することで、各気筒に供給する混合気の空燃比を各気筒毎に補正して気筒間の空燃比ばらつきを少なくするように制御する。
【００３０】
［気筒別異常診断］
図３及び図４に示す気筒別異常診断プログラムは、クランク角センサ３３の出力パルスに同期して所定クランク角毎（例えば３０℃Ａ毎）に起動され、特許請求の範囲でいう気筒別異常診断手段としての役割を果たす。本プログラムが起動されると、まず、ステップ２０１で、気筒別異常診断の実行条件が成立しているか否かを判定する。この気筒別異常診断の実行条件としては、例えば次の条件(1) 〜(3) がある。
【００３１】
(1) 気筒別空燃比制御中であること
(2) 失火有りと判定されていないこと
(3) 失火発生後所定期間が経過していること
これら３つの条件(1) 〜(3) を全て満たしたときに気筒別異常診断の実行条件が成立し、いずれか１つでも満たさない条件があれば、実行条件が不成立となる。気筒別異常診断の実行条件が不成立の場合には、ステップ２０２以降の気筒別異常診断に関する処理を行うことなく、本プログラムを終了する。
【００３２】
気筒別空燃比制御中に失火が発生すると、各気筒の推定空燃比α(#i)の推定精度が低下するため、推定空燃比α(#i)に基づいた気筒別異常診断の診断精度が低下して、異常の有無を誤診断する可能性がある。そこで、気筒別異常診断の実行条件として、上記(2) 及び(3) の条件を設定することで、失火発生時及びその後所定期間（失火の影響で各気筒の推定空燃比の推定精度が低下する期間）が経過するまで気筒別異常診断を禁止する。この場合、ステップ２０１の処理が特許請求の範囲でいう気筒別異常診断禁止手段としての役割を果たす。
【００３３】
一方、上記ステップ２０１で、気筒別異常診断の実行条件が成立していると判定された場合には、ステップ２０２以降の気筒別異常診断に関する処理を次のようにして実行する。まず、ステップ２０２で、各気筒の推定空燃比α(#i)を読み込む。
【００３４】
この後、ステップ２０３に進み、各気筒＃１〜＃６について、第ｉ気筒＃ｉ以外の気筒の推定空燃比のうちの最小値αmin(#i) を求める。
αmin(#1) ＝ min｛α(#2)，α(#3)，α(#4)，α(#5)，α(#6)｝
αmin(#2) ＝ min｛α(#1)，α(#3)，α(#4)，α(#5)，α(#6)｝
αmin(#3) ＝ min｛α(#1)，α(#2)，α(#4)，α(#5)，α(#6)｝
αmin(#4) ＝ min｛α(#1)，α(#2)，α(#3)，α(#5)，α(#6)｝
αmin(#5) ＝ min｛α(#1)，α(#2)，α(#3)，α(#4)，α(#6)｝
αmin(#6) ＝ min｛α(#1)，α(#2)，α(#3)，α(#4)，α(#5)｝
【００３５】
この後、ステップ２０４に進み、各気筒＃１〜＃６について、第ｉ気筒＃ｉ以外の気筒の推定空燃比のうちの最大値αmax(#i) を求める。
αmax(#1) ＝ max｛α(#2)，α(#3)，α(#4)，α(#5)，α(#6)｝
αmax(#2) ＝ max｛α(#1)，α(#3)，α(#4)，α(#5)，α(#6)｝
αmax(#3) ＝ max｛α(#1)，α(#2)，α(#4)，α(#5)，α(#6)｝
αmax(#4) ＝ max｛α(#1)，α(#2)，α(#3)，α(#5)，α(#6)｝
αmax(#5) ＝ max｛α(#1)，α(#2)，α(#3)，α(#4)，α(#6)｝
αmax(#6) ＝ max｛α(#1)，α(#2)，α(#3)，α(#4)，α(#5)｝
【００３６】
この後、ステップ２０５に進み、各気筒＃１〜＃６について、第ｉ気筒＃ｉ以外の気筒の推定空燃比のうち最小値αmin(#i) 及び最大値αmax(#i) を除外した残りの推定空燃比の平均値αave(#i) を求める。
【００３７】
αave(#1) ＝［｛α(#2)＋α(#3)＋α(#4)＋α(#5)＋α(#6)｝
−｛αmin(#1) ＋αmax(#1) ｝］／３
αave(#2) ＝［｛α(#1)＋α(#3)＋α(#4)＋α(#5)＋α(#6)｝
−｛αmin(#2) ＋αmax(#2) ｝］／３
αave(#3) ＝［｛α(#1)＋α(#2)＋α(#4)＋α(#5)＋α(#6)｝
−｛αmin(#3) ＋αmax(#3) ｝］／３
αave(#4) ＝［｛α(#1)＋α(#2)＋α(#3)＋α(#5)＋α(#6)｝
−｛αmin(#4) ＋αmax(#4) ｝］／３
αave(#5) ＝［｛α(#1)＋α(#2)＋α(#3)＋α(#4)＋α(#6)｝
−｛αmin(#5) ＋αmax(#5) ｝］／３
αave(#6) ＝［｛α(#1)＋α(#2)＋α(#3)＋α(#4)＋α(#5)｝
−｛αmin(#6) ＋αmax(#6) ｝］／３
【００３８】
この後、図４のステップ２０６に進み、各気筒＃１〜＃６について、第ｉ気筒＃ｉの推定空燃比α(#i)と、第ｉ気筒＃ｉ以外の気筒の推定空燃比のうち最小値αmin(#i) 及び最大値αmax(#i) を除外した残りの推定空燃比の平均値αave(#i) との偏差Δα(#i)を求める。
Δα(#i)＝α(#i)−αave(#i)
【００３９】
この後、ステップ２０７に進み、各気筒＃１〜＃６について、偏差Δα(#i)がリーン判定値以上であるか否かを判定し、偏差Δα(#i)がリーン判定値以上であると判定された場合には、リーン異常カウンタをカウントアップし（ステップ２０８）、偏差Δα(#i)がリーン判定値よりも小さいと判定された場合には、リーン正常カウンタをカウントアップする（ステップ２０９）。
【００４０】
この後、ステップ２１０に進み、各気筒＃１〜＃６について、偏差Δα(#i)がリッチ判定値以下であるか否かを判定し、偏差Δα(#i)がリッチ判定値以下であると判定された場合には、リッチ異常カウンタをカウントアップし（ステップ２１１）、偏差Δα(#i)がリッチ判定値よりも大きいと判定された場合には、リッチ正常カウンタをカウントアップする（ステップ２１２）。
【００４１】
この後、ステップ２１３に進み、各気筒＃１〜＃６について、リーン異常カウンタのカウント値がリーン異常判定値を越えたか否かを判定し、いずれかの気筒のリーン異常カウンタのカウント値がリーン異常判定値を越えた場合には、ステップ２１４に進み、リーン異常カウンタのカウント値がリーン異常判定値を越えた気筒に対してリーン異常が有ると判定する。
【００４２】
この後、ステップ２１５に進み、各気筒＃１〜＃６について、リッチ異常カウンタのカウント値がリッチ異常判定値を越えたか否かを判定し、いずれかの気筒のリッチ異常カウンタのカウント値がリッチ異常判定値を越えた場合には、ステップ２１６に進み、リッチ異常カウンタのカウント値がリッチ異常判定値を越えた気筒に対してリッチ異常が有ると判定する。
【００４３】
尚、本プログラムの異常診断結果は、ＥＣＵ４０のバックアップＲＡＭ（図示せず）等の書き換え可能な不揮発性メモリに記憶される。
【００４４】
以上説明した本実施例１では、各気筒毎に、第ｉ気筒＃ｉの推定空燃比α(#i)と、第ｉ気筒＃ｉ以外の気筒の推定空燃比のうち最小値αmin(#i) 及び最大値αmax(#i) を除外した残りの推定空燃比の平均値αave(#i) との偏差Δα(#i)に基づいて第ｉ気筒＃ｉの異常の有無を診断するようにしたので、もし、第ｉ気筒＃ｉ以外の気筒の中に異常気筒が存在していても、第ｉ気筒＃ｉの推定空燃比α(#i)と、第ｉ気筒＃ｉ以外の気筒の推定空燃比から異常気筒の推定空燃比を除外した残りの推定空燃比の平均値αave(#i) との偏差Δα(#i)に基づいて第ｉ気筒＃ｉの異常の有無を精度良く診断することができる。これにより、異常気筒の推定空燃比の影響を受けずに、各気筒の異常の有無を精度良く診断することができる。
【００４５】
また、本実施例１では、失火発生時及びその後所定期間が経過するまで気筒別異常診断を禁止するようにしたので、失火の影響で各気筒の推定空燃比α(#i)の推定精度が低下する期間に、推定空燃比α(#i)に基づいた気筒別異常診断を禁止して、異常の有無の誤診断を未然に防止することができる。
【００４６】
更に、本実施例１では、排気集合部３６に設置された空燃比センサ３７の検出値に基づいて各気筒の空燃比を推定するようにしたので、１個の空燃比センサ３７で全気筒の空燃比を推定することができ、低コスト化の要求を満たすことができる。
【実施例２】
【００４７】
次に、図５及び図６を用いて本発明の実施例２を説明する。
本実施例２では、図５及び図６の気筒別異常診断プログラムを実行することで、各気筒毎に、第ｉ気筒＃ｉの推定空燃比α(#i)と、第ｉ気筒＃ｉ以外の気筒の推定空燃比のメジアンαmed(#i) との偏差Δα(#i)に基づいて第ｉ気筒＃ｉの異常の有無を判定する。これにより、もし、第ｉ気筒＃ｉ以外の気筒の中に異常気筒が存在していても、第ｉ気筒＃ｉの推定空燃比α(#i)と、第ｉ気筒＃ｉ以外の気筒の推定空燃比のうち異常気筒の推定空燃比（最大値又は最小値）以外の推定空燃比であるメジアンαmed(#i) との偏差Δα(#i)に基づいて第ｉ気筒＃ｉの異常の有無を精度良く診断できるようにしている。
【００４８】
図５及び図６に示す気筒別異常診断プログラムでは、まず、ステップ３０１で、気筒別異常診断の実行条件が成立しているか否かを判定し、実行条件が成立していると判定された場合には、ステップ３０２に進み、各気筒の推定空燃比α(#i)を読み込む。
【００４９】
この後、ステップ３０３に進み、各気筒＃１〜＃６について、第ｉ気筒＃ｉ以外の気筒の推定空燃比のメジアンαmed(#i) を求める。
αmed(#1) ＝ med｛α(#2)，α(#3)，α(#4)，α(#5)，α(#6)｝
αmed(#2) ＝ med｛α(#1)，α(#3)，α(#4)，α(#5)，α(#6)｝
αmed(#3) ＝ med｛α(#1)，α(#2)，α(#4)，α(#5)，α(#6)｝
αmed(#4) ＝ med｛α(#1)，α(#2)，α(#3)，α(#5)，α(#6)｝
αmed(#5) ＝ med｛α(#1)，α(#2)，α(#3)，α(#4)，α(#6)｝
αmed(#6) ＝ med｛α(#1)，α(#2)，α(#3)，α(#4)，α(#5)｝
【００５０】
この後、図６のステップ３０４に進み、各気筒＃１〜＃６について、第ｉ気筒＃ｉの推定空燃比α(#i)と、第ｉ気筒＃ｉ以外の気筒の推定空燃比のメジアンαmed(#i) との偏差Δα(#i)を求める。
Δα(#i)＝α(#i)−αmed(#i)
【００５１】
この後、ステップ３０５に進み、各気筒＃１〜＃６について、偏差Δα(#i)がリーン判定値以上であるか否かを判定し、偏差Δα(#i)がリーン判定値以上であると判定された場合には、リーン異常カウンタをカウントアップし（ステップ３０６）、偏差Δα(#i)がリーン判定値よりも小さいと判定された場合には、リーン正常カウンタをカウントアップする（ステップ３０７）。
【００５２】
この後、ステップ３０８に進み、各気筒＃１〜＃６について、偏差Δα(#i)がリッチ判定値以下であるか否かを判定し、偏差Δα(#i)がリッチ判定値以下であると判定された場合には、リッチ異常カウンタをカウントアップし（ステップ３０９）、偏差Δα(#i)がリッチ判定値よりも大きいと判定された場合には、リッチ正常カウンタをカウントアップする（ステップ３１０）。
【００５３】
この後、ステップ３１１に進み、各気筒＃１〜＃６について、リーン異常カウンタのカウント値がリーン異常判定値を越えたか否かを判定し、いずれかの気筒のリーン異常カウンタのカウント値がリーン異常判定値を越えた場合には、ステップ３１２に進み、リーン異常カウンタのカウント値がリーン異常判定値を越えた気筒に対してリーン異常が有ると判定する。
【００５４】
この後、ステップ３１３に進み、各気筒＃１〜＃６について、リッチ異常カウンタのカウント値がリッチ異常判定値を越えたか否かを判定し、いずれかの気筒のリッチ異常カウンタのカウント値がリッチ異常判定値を越えた場合には、ステップ３１４に進み、リッチ異常カウンタのカウント値がリッチ異常判定値を越えた気筒に対してリッチ異常が有ると判定する。
【００５５】
以上説明した本実施例２では、各気筒毎に、第ｉ気筒＃ｉの推定空燃比α(#i)と、第ｉ気筒＃ｉ以外の気筒の推定空燃比のメジアンαmed(#i) との偏差Δα(#i)に基づいて第ｉ気筒＃ｉの異常の有無を診断するようにしたので、もし、第ｉ気筒＃ｉ以外の気筒の中に異常気筒が存在していても、第ｉ気筒＃ｉの推定空燃比α(#i)と、第ｉ気筒＃ｉ以外の気筒の推定空燃比のうち異常気筒の推定空燃比（最大値又は最小値）以外の推定空燃比であるメジアンαmed(#i) との偏差Δα(#i)に基づいて第ｉ気筒＃ｉの異常の有無を精度良く診断することができ、異常気筒の推定空燃比の影響を受けずに、各気筒の異常の有無を精度良く診断することができる。
【００５６】
尚、上記各実施例１，２では、エンジン１１の各気筒の排気マニホールド３５が集合する排気集合部３６に設置された空燃比センサ３７の出力に基づいて気筒別空燃比制御を実施するシステムに本発明を適用したが、例えばＶ型エンジンのように、気筒群毎に排気系が構成され、各排気系の排気集合部に設置された空燃比センサの出力に基づいて各気筒群毎に気筒別空燃比制御を実施するシステムに本発明を適用する場合、各気筒群毎に各気筒の推定空燃比に基づいて気筒別異常診断を実施するのではなく、エンジン全体を１つの系としてエンジンの各気筒の推定空燃比に基づいて気筒別異常診断を実施すれば良い。このようにすれば、異常気筒の影響をより確実に除外して気筒別異常診断をより精度良く実施することができる。
【００５７】
また、本発明の気筒別異常診断を行う際に、所定気筒の推定空燃比と比較するパラメータとして、所定気筒以外の気筒の推定空燃比のうち最小値及び最大値を除外した残りの推定空燃比の平均値を用いる方法（上記実施例１で説明した方法）と、所定気筒以外の気筒の推定空燃比のメジアンを用いる方法（上記実施例２で説明した方法）のうちのいずれの方法を採用するかは、本発明を適用するエンジンの気筒数によって次のように選択することができる。
【００５８】
(1) ４気筒エンジンの場合、メジアンを用いる方法を採用する。
(2) ５気筒エンジンの場合、平均値を用いる方法とメジアンを用いる方法のいずれの方法を採用しても良い。この場合、所定気筒以外の気筒数が４気筒になるため、所定気筒以外の気筒の推定空燃比のうち最小値及び最大値を除外した残りの推定空燃比の平均値と、所定気筒以外の気筒の推定空燃比のメジアンとが同じ値になる。
(3) ６気筒エンジンの場合、平均値を用いる方法とメジアンを用いる方法のいずれの方法を採用しても良い。
(4) ８気筒エンジンの場合、平均値を用いる方法とメジアンを用いる方法のいずれの方法を採用しても良い。
(5) １２気筒エンジンの場合、平均値を用いる方法とメジアンを用いる方法のいずれの方法を採用しても良い。
【００５９】
尚、(3) 〜(5) の場合、つまり、６気筒以上のエンジン場合には、所定気筒以外の気筒の推定空燃比のうち最小値とその次に小さい値及び最大値とその次に大きい値の計４つの値を除外した残りの推定空燃比の平均値やメジアンを用いるようにしても良い。
【００６０】
また、上記各実施例１，２では、失火発生時及びその後所定期間が経過するまで気筒別異常診断を禁止するようにしたが、失火発生時及びその後所定期間が経過するまで気筒別空燃比制御を禁止するようにしても良い。このようにすれば、失火の影響で各気筒の推定空燃比の推定精度が低下する期間に、推定空燃比に基づいた気筒別空燃比制御を禁止して、気筒別空燃比制御精度低下による気筒間の空燃比ばらつきの悪化を未然に防止することができる。
【００６１】
また、上記各実施例１，２では、各気筒の排出ガスが集合して流れる排気集合部３６に設置された空燃比センサ３７の検出値に基づいて各気筒の空燃比を推定するようにしたが、各気筒の排気マニホールドにそれぞれ空燃比センサを設置して、各気筒の排出ガスの空燃比を各気筒の空燃比センサによって直接検出するようにしても良い。また、各気筒の検出空燃比や推定空燃比の代用情報として、各気筒の空燃比補正量等を用いるようにしても良い。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施例１におけるエンジン制御システム全体の概略構成図である。
【図２】気筒別空燃比制御プログラムの処理の流れを示すフローチャートである。
【図３】実施例１の気筒別異常診断プログラムの処理の流れを示すフローチャート（その１）である。
【図４】実施例１の気筒別異常診断プログラムの処理の流れを示すフローチャート（その２）である。
【図５】実施例２の気筒別異常診断プログラムの処理の流れを示すフローチャート（その１）である。
【図６】実施例２の気筒別異常診断プログラムの処理の流れを示すフローチャート（その２）である。
【符号の説明】
【００６３】
１１…エンジン（内燃機関）、１２…吸気管、１５…スロットルバルブ、２０…燃料噴射弁、３５…排気マニホールド、３６…排気集合部、３７…空燃比センサ、４０…ＥＣＵ（気筒別空燃比検出手段，気筒別空燃比制御手段，気筒別異常診断手段，気筒別異常診断禁止手段，気筒別空燃比制御禁止手段）
【図１】
2006138280.tif 000003
【図２】
2006138280.tif 000004
【図３】
2006138280.tif 000005
【図４】
2006138280.tif 000006
【図５】
2006138280.tif 000007
【図６】
2006138280.tif 000008