(57)【要約】【課題】エンジンの気筒間ばらつきによって生じた排出ガスセンサの出力の乱れを排出ガスセンサの異常と誤診断することを防止できるようにする。【解決手段】吸気管圧力センサ１８で検出した吸気管圧力等の挙動に基づいて各気筒毎に気筒間ばらつき値を算出し、各気筒の気筒間ばらつき値に基づいて各気筒毎に燃料噴射量等を補正することで気筒間ばらつきを補正する。エンジン運転中に、気筒間ばらつき値が所定値を越えているとき、又は、気筒間ばらつき補正が完了するまでは、気筒間ばらつきによって生じた排出ガスセンサ２４の出力の乱れが正常範囲を越えてしまう可能性があると判断して、排出ガスセンサ２４の異常診断を禁止したり、或は、異常判定基準を緩和する。これにより、気筒間ばらつきによって生じた排出ガスセンサの出力の乱れを排出ガスセンサの異常と誤診断することを防止する。【選択図】  図１
2004176689.tif 000002
【特許請求の範囲】
【請求項１】
複数の気筒を有する内燃機関の運転状態に関する情報を検出するセンサの出力に基づいて所定の異常診断を行う異常診断手段を備えた内燃機関の異常診断装置において、
前記内燃機関の気筒間の運転状態のばらつきを表す気筒間ばらつき値を求める気筒間ばらつき検出手段と、
前記気筒間ばらつき値が所定値を越えているときに、前記異常診断手段による異常診断の禁止又は異常判定基準の緩和を実行する誤診断防止手段と
を備えていることを特徴とする内燃機関の異常診断装置。
【請求項２】
前記気筒間ばらつき値に基づいて前記内燃機関の気筒間の運転状態のばらつきを補正する気筒間ばらつき補正手段を備え、
前記誤診断防止手段は、前記気筒間ばらつき補正手段による気筒間ばらつき補正が完了していないときに、前記異常診断の禁止又は異常判定基準の緩和を実行することを特徴とする請求項１に記載の内燃機関の異常診断装置。
【請求項３】
複数の気筒を有する内燃機関の運転状態に関する情報を検出するセンサの出力に基づいて所定の異常診断を行う異常診断手段を備えた内燃機関の異常診断装置において、
前記内燃機関の気筒間の運転状態のばらつきを表す気筒間ばらつき値を求める気筒間ばらつき検出手段と、
前記気筒間ばらつき値に基づいて前記内燃機関の気筒間の運転状態のばらつきを補正する気筒間ばらつき補正手段と、
前記気筒間ばらつき補正手段による気筒間ばらつき補正が完了していないときに、前記異常診断手段による異常診断の禁止又は異常判定基準の緩和を実行する誤診断防止手段と
を備えていることを特徴とする内燃機関の異常診断装置。
【請求項４】
前記誤診断防止手段は、前記気筒間ばらつき補正手段による気筒間ばらつき補正の完了後も所定期間が経過するまで、前記異常診断の禁止又は異常判定基準の緩和を継続することを特徴とする請求項２又は３に記載の内燃機関の異常診断装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の運転状態に関する情報を検出するセンサの出力に基づいて所定の異常診断を行う内燃機関の異常診断装置に関するものである。
【０００２】
【従来の技術】
近年の電子制御化された内燃機関では、運転状態に関する各種の情報（例えば吸入空気量、吸気管圧力、回転速度、空燃比等）を検出する各種センサを搭載し、これら各種センサの出力に基づいて燃料噴射量（空燃比）や点火時期等を制御すると共に、これら各種センサの出力を利用して各種の異常診断を行うようにしている。例えば、特許文献１（特開平９−１６６５６９号公報）に記載されているように、内燃機関の排出ガスの空燃比を検出する空燃比センサの出力に基づいて該空燃比センサの異常の有無を診断するようにしたものがある。
【０００３】
【特許文献１】
特開平９−１６６５６９号公報（第２頁等）
【０００４】
【発明が解決しようとする課題】
ところが、複数の気筒を有する内燃機関では、各気筒の個体差（部品公差、組付公差等）や経年変化等によって各気筒の運転状態にばらつきが生じることがある。このため、内燃機関の運転状態に関する情報（例えば吸入空気量、吸気管圧力、回転速度、空燃比等）を検出するセンサの出力に基づいて各種の異常診断を行う場合に、気筒間の運転状態のばらつきが大きいと、その影響を受けてセンサ出力のサイクル内変動が大きくなってしまい、異常診断の対象が正常であるにも拘らず異常と誤診断してしまう可能性がある。
【０００５】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、気筒間ばらつきによって生じるセンサ出力の乱れを異常診断対象の異常と誤診断することを防止することができ、異常診断精度を向上させることができる内燃機関の制御装置を提供することにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１の内燃機関の異常診断装置は、内燃機関の気筒間の運転状態のばらつきを表す気筒間ばらつき値を気筒間ばらつき検出手段により検出し、気筒間ばらつき値が所定値を越えているときに、異常診断手段による異常診断の禁止又は異常判定基準の緩和を誤診断防止手段により実行するようにしたものである。この構成では、気筒間ばらつきによってセンサ出力の乱れが異常判定レベルを越えるような状態になれば、気筒間ばらつき検出手段により検出した気筒間ばらつき値が所定値を越えて異常診断を禁止したり又は異常判定基準を緩和するため、気筒間ばらつきによって生じるセンサ出力の乱れを異常診断対象の異常と誤診断することを防止することができ、異常診断精度を向上させることができる。
【０００７】
また、気筒間ばらつき値に基づいて内燃機関の気筒間の運転状態のばらつきを補正する気筒間ばらつき補正手段を備えたシステムの場合、気筒間ばらつき補正が完了するまでは、まだ気筒間ばらつきが大きいために、センサ出力の乱れが通常の異常判定レベルを越えてしまう可能性がある。
【０００８】
そこで、請求項２，３のように、気筒間ばらつき補正が完了していないときに、異常診断の禁止又は異常判定基準の緩和を実行するようにしても良い。このようにすれば、気筒間ばらつき補正の完了前で、まだ気筒間ばらつきが大きいときに生じるセンサ出力の乱れを異常診断対象の異常と誤診断することを防止でき、異常診断精度を向上させることができる。
【０００９】
また、気筒間ばらつき補正を実行してから実際に気筒間ばらつきが十分に小さくなるまでには暫く時間が掛かることがあるため、請求項４のように、気筒間ばらつき補正の完了後も所定期間が経過するまで、異常診断の禁止又は異常判定基準の緩和を継続するようにしても良い。このようにすれば、気筒間ばらつき補正の完了直後で気筒間ばらつきが十分に小さくなっていない可能性がある期間にも異常診断を禁止又は異常判定基準を緩和して、より確実に誤診断を防止することができる。
【００１０】
【発明の実施の形態】
《実施形態（１）》
以下、本発明の実施形態（１）を図１乃至図７に基づいて説明する。まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。内燃機関である例えば４気筒のエンジン１１は、第１気筒＃１〜第４気筒＃４の４つの気筒を有し、このエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、ＤＣモータ等によって開度調節されるスロットルバルブ１５とスロットル開度を検出するスロットル開度センサ１６とが設けられている。
【００１１】
また、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７に、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。また、エンジン１１のシリンダヘッドには、各気筒毎に点火プラグ２１が取り付けられ、各点火プラグ２１の火花放電によって筒内の混合気に着火される。
【００１２】
一方、エンジン１１の排気管２２には、排出ガス中のＣＯ，ＨＣ，ＮＯｘ等を浄化する三元触媒等の触媒２３が設けられ、この触媒２３の上流側に、排出ガスの空燃比又はリーン／リッチ等を検出する排出ガスセンサ２４（空燃比センサ、酸素センサ等）が設けられている。また、エンジン１１のシリンダブロックには、冷却水温を検出する水温センサ２５や、エンジン１１のクランク軸が一定クランク角（例えば３０℃Ａ）回転する毎にパルス信号を出力するクランク角センサ２６が取り付けられている。このクランク角センサ２６の出力信号に基づいてクランク角やエンジン回転速度が検出される。
【００１３】
前述した各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）２７に入力される。このＥＣＵ２７は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、エンジン運転状態に応じて燃料噴射弁２０の燃料噴射量や点火プラグ２１の点火時期を制御する。
【００１４】
その際、ＥＣＵ２７は、図示しない空燃比フィードバック制御プログラムを実行することで、排出ガスセンサ２４で検出した排出ガスの空燃比λｓ  を目標空燃比λｔｇに一致させるように空燃比補正係数ＦＡＦを算出し、この空燃比補正係数ＦＡＦを用いて燃料噴射量を算出する。
【００１５】
更に、ＥＣＵ２７は、後述する図２に示す排出ガスセンサ異常診断プログラムを実行することで、目標空燃比λｔｇが変化したときに、目標空燃比λｔｇの変化量Δλｔｇと空燃比補正係数ＦＡＦの変化量ΔＦＡＦとの比（ΔＦＡＦ／Δλｔｇ）が所定範囲（ＫＣＧＬ〜ＫＣＧＨ）内であるか否かによって排出ガスセンサ２４の異常（故障、劣化等）の有無を診断する。
【００１６】
しかし、気筒間の運転状態のばらつきが大きいと、その影響を受けて排出ガスセンサ２４出力のサイクル内変動が大きくなって異常診断パラメータ（例えばΔＦＡＦ／Δλｔｇ）が異常判定値（例えば所定範囲の下限値ＫＣＧＬ又は上限値ＫＣＧＨ）を越えてしまうおそれがあり、排出ガスセンサ２４が正常であるにも拘らず異常有りと誤診断してしまう可能性がある。
【００１７】
そこで、ＥＣＵ２７は、後述する図３及び図４に示す気筒間ばらつき検出プログラムを実行することで、エンジン１１の気筒間の運転状態のばらつきを表す気筒間ばらつき値ＤＥＶを算出し、後述する図６に示す気筒間ばらつき補正プログラムを実行することで、気筒間ばらつき値ＤＥＶに基づいてエンジン１１の気筒間の運転状態のばらつきを補正する。
【００１８】
そして、後述する図７に示す誤診断防止プログラムを実行することで、気筒間ばらつき値ＤＥＶが所定範囲を越えているとき、又は、気筒間ばらつき補正が完了していないときに、排出ガスセンサ２４の異常診断を禁止して、気筒間ばらつきによって生じる排出ガスセンサ２４の出力の乱れを排出ガスセンサ２４の異常と誤診断してしまうことを防止する。以下、ＥＣＵ２７が実行する各プログラムの処理内容を説明する。
【００１９】
［排出ガスセンサ異常診断プログラム］
図２に示す排出ガスセンサ異常診断プログラムは、例えば、燃料噴射タイミング毎に実行され、特許請求の範囲でいう異常診断手段としての役割を果たす。本プログラムが起動されると、まず、ステップ１０１で、現在の目標空燃比λｔｇと前回の目標空燃比λｔｇ（ｉ−１）  との差の絶対値が所定の判定値Ｋλｔｇ以上であるか否かを判定する。もし、｜λｔｇ−λｔｇ（ｉ−１）  ｜＜Ｋλｔｇであれば、目標空燃比λｔｇが変化していないと判断して、ステップ１０５に進み、目標空燃比変化フラグＸが目標空燃比λｔｇの変化検出済みを意味する「１」にセットされているか否かを判定する。目標空燃比変化フラグＸが「１」にセットされていなければ、以降の処理を行うことなく、本プログラムを終了する。
【００２０】
その後、｜λｔｇ−λｔｇ（ｉ−１）  ｜≧Ｋλｔｇになった時点で、目標空燃比λｔｇが変化したと判断して、ステップ１０２に進み、目標空燃比変化フラグＸを「１」にセットした後、ステップ１０３に進み、現在の目標空燃比λｔｇから１回前の目標空燃比λｔｇ（ｉ−１）  を減算して、目標空燃比λｔｇの変化量Δλｔｇを算出する。
Δλｔｇ＝λｔｇ−λｔｇ（ｉ−１）
【００２１】
この後、ステップ１０４に進み、そのときの空燃比補正係数ＦＡＦを変化前の空燃比補正係数ＦＡＦＢＦとしてＥＣＵ２７のメモリ（図示せず）に記憶して、本プログラムを終了する。
【００２２】
そして、目標空燃比λｔｇの変化後に、本プログラムが起動される毎に、ステップ１０１で「Ｎｏ」と判定されてステップ１０５に進み、目標空燃比変化フラグＸが「１」にセットされていれば、ステップ１０６に進み、現在の目標空燃比λｔｇと１回前の目標空燃比λｔｇ（ｉ−１）  との差をそれまでのΔλｔｇに加算して、Δλｔｇの記憶値を更新する。
Δλｔｇ＝Δλｔｇ＋｛λｔｇ−λｔｇ（ｉ−１）  ｝
【００２３】
この後、ステップ１０７に進み、現在の空燃比補正係数ＦＡＦと１回前の空燃比補正係数ＦＡＦ（ｉ−１）  との差の絶対値が所定値ＫＦＡＦ以下になったか否かを判定する。そして、｜ＦＡＦ−ＦＡＦ（ｉ−１）  ｜≦ＫＦＡＦとなったとき、つまり、空燃比補正係数ＦＡＦが所定の値に収束したときに、ステップ１０８に進み、現在の空燃比補正係数ＦＡＦから前記ステップ１０４で記憶した変化前の空燃比補正係数ＦＡＦＢＦを減算して、空燃比補正係数ＦＡＦの変化量ΔＦＡＦを算出する。
ΔＦＡＦ＝ＦＡＦ−ＦＡＦＢＦ
【００２４】
この後、ステップ１０９に進み、目標空燃比変化フラグＸを「０」にリセットした後、ステップ１１０に進み、ΔＦＡＦの絶対値とΔλｔｇの絶対値との比が所定範囲内（ＫＣＧＬ≦｜ΔＦＡＦ｜／｜Δλｔｇ｜≦ＫＣＧＨ）であるか否かを判定する（例えばＫＣＧＬ＝０．９、ＫＣＧＨ＝１．１）。
【００２５】
その結果、ΔＦＡＦの絶対値とΔλｔｇの絶対値との比が所定範囲内であると判定された場合には、ステップ１１１に進み、排出ガスセンサ２４の異常無し（正常）と判定して、本プログラムを終了する。
【００２６】
一方、ΔＦＡＦの絶対値とΔλｔｇの絶対値の比が所定範囲から外れていると判定された場合には、ステップ１１２に進み、排出ガスセンサ２４の異常（故障、劣化等）と判定して、運転席のインストルメントパネルに設けられた警告ランプ（図示せず）を点灯し、又は警告表示部（図示せず）に警告表示して運転者に警告すると共に、その異常情報（異常コード）をＥＣＵ２７のバックアップＲＡＭ（図示せず）に記憶して、本プログラムを終了する。
【００２７】
［気筒間ばらつき検出プログラム］
図３及び図４に示す気筒間ばらつき検出プログラムは、例えば、イグニッションスイッチ（図示せず）のオン後に所定周期で実行され、特許請求の範囲でいう気筒間ばらつき検出手段としての役割を果たす。
【００２８】
ここで、図５に示すように、吸気管圧力センサ１８で検出した吸気管圧力の波形は、各気筒の運転状態（吸入空気量、燃焼状態、空燃比等）を反映した脈動波形となる。従って、各気筒の影響が現れるクランク角範囲毎に吸気管圧力センサ１８で検出した吸気管圧力の極小値、極大値、平均値、振幅値、面積、軌跡長等の特性値を算出すれば、各気筒の運転状態を反映した脈動波形の特性値を算出することができるので、この特性値を用いれば、各気筒の運転状態のばらつきを反映した気筒間ばらつき値を算出することができる。
【００２９】
尚、本プログラムでは、吸気管圧力の極小値を用いて気筒間ばらつき値を算出するため、図５（ａ）に示すように、後述する第１〜第４のクランク角範囲は、それぞれ第１〜第４気筒の影響で吸気管圧力が極小値となる領域を含むように設定されている。
【００３０】
本プログラムが起動されると、まず、ステップ２０１で、気筒間ばらつき検出の実行条件が成立しているか否かを、例えば、定常状態（過渡状態ではない）か否か等によって判定する。気筒間ばらつき検出の実行条件が不成立と判定されれば、以降の処理を行うことなく、本プログラムを終了する。
【００３１】
一方、上記ステップ２０１で、気筒間ばらつき検出の実行条件が成立していると判定された場合には、ステップ２０２に進み、クランク角センサ２６の出力信号に基づいて検出したクランク角が第１のクランク角範囲（第１気筒＃１の影響で吸気管圧力が極小値となる領域を含むクランク角範囲）内であるか否かを判定する。その結果、第１のクランク角範囲内であると判定されれば、ステップ２０３に進み、第１のクランク角範囲内における吸気管圧力の極小値ＰＭｍｉｎ  を、第１気筒＃１の吸気管圧力極小値ＰＭｍｉｎ（＃１）  として算出する。
【００３２】
一方、上記ステップ２０２で、クランク角が第１のクランク角範囲内ではないと判定された場合には、ステップ２０４に進み、クランク角が第２のクランク角範囲（第２気筒＃２の影響で吸気管圧力が極小値となる領域を含むクランク角範囲）内であるか否かを判定する。その結果、第２のクランク角範囲内であると判定されれば、ステップ２０５に進み、第２のクランク角範囲内における吸気管圧力の極小値ＰＭｍｉｎ  を、第２気筒＃２の吸気管圧力極小値ＰＭｍｉｎ（＃２）  として算出する。
【００３３】
また、上記ステップ２０４で、クランク角が第２のクランク角範囲内ではないと判定された場合には、ステップ２０６に進み、クランク角が第３のクランク角範囲（第３気筒＃３の影響で吸気管圧力が極小値となる領域を含むクランク角範囲）内であるか否かを判定する。その結果、第３のクランク角範囲内であると判定されれば、ステップ２０７に進み、第３のクランク角範囲内における吸気管圧力の極小値ＰＭｍｉｎ  を、第３気筒＃３の吸気管圧力極小値ＰＭｍｉｎ（＃３）  として算出する。
【００３４】
また、上記ステップ２０６で、クランク角が第３のクランク角範囲内ではないと判定された場合には、クランク角が第４のクランク角範囲（第４気筒＃４の影響で吸気管圧力が極小値となる領域を含むクランク角範囲）内であると判断して、ステップ２０８に進み、第４のクランク角範囲内における吸気管圧力の極小値ＰＭｍｉｎ  を、第４気筒＃４の吸気管圧力極小値ＰＭｍｉｎ（＃４）  として算出する。
【００３５】
この後、図４のステップ２０９に進み、全気筒の吸気管圧力極小値ＰＭｍｉｎ（＃１）  〜ＰＭｍｉｎ（＃４）  の平均値ＡＶＥＰＭｍｉｎ  を算出する。
ＡＶＥＰＭｍｉｎ  ＝｛ＰＭｍｉｎ（＃１）  ＋……＋ＰＭｍｉｎ（＃４）  ｝／４
【００３６】
この後、ステップ２１０に進み、各気筒の吸気管圧力極小値ＰＭｍｉｎ（＃ｉ）  と平均値ＡＶＥＰＭｍｉｎ  とを用いて各気筒の気筒間ばらつき値ＤＥＶ（＃ｉ）を次式により算出する。ここで、＃ｉ＝＃１〜＃４である。
ＤＥＶ（＃ｉ）＝ＰＭｍｉｎ（＃ｉ）  −ＡＶＥＰＭｍｉｎ
【００３７】
この後、ステップ２１１に進み、各気筒の気筒間ばらつき値ＤＥＶ（＃ｉ）が、それぞれ所定範囲内（Ｋ１≦ＤＥＶ（＃ｉ）≦Ｋ２）であるか否かを判定する。その結果、全ての気筒間ばらつき値ＤＥＶ（＃１）〜ＤＥＶ（＃４）のうち１つでも所定範囲から外れていると判定された場合には、ステップ２１２に進み、気筒間ばらつきフラグＸＤＥＶを気筒間ばらつきが大きいことを意味する「１」にセットして、本プログラムを終了する。
【００３８】
一方、全ての気筒間ばらつき値ＤＥＶ（＃１）〜ＤＥＶ（＃４）が所定範囲内であると判定された場合には、ステップ２１３に進み、気筒間ばらつきフラグＸＤＥＶを気筒間ばらつきが小さいことを意味する「０」にリセットして、本プログラムを終了する。
【００３９】
［気筒間ばらつき補正プログラム］
図６に示す気筒間ばらつき補正プログラムは、例えば、イグニッションスイッチのオン後に所定周期で実行され、特許請求の範囲でいう気筒間ばらつき補正手段としての役割を果たす。本プログラムが起動されると、まず、ステップ３０１で、各気筒の気筒間ばらつき値ＤＥＶ（＃ｉ）を読み込んだ後、ステップ３０２に進み、各気筒の気筒間ばらつき値ＤＥＶ（＃ｉ）を用いて、各気筒の燃料噴射時間補正係数ＦＴＡＵ（＃ｉ）を次式により算出する。
ＦＴＡＵ（＃ｉ）＝ＤＥＶ（＃ｉ）＋１
【００４０】
この後、ステップ３０３に進み、補正前の全気筒の平均燃料噴射時間ＴＡＵに各気筒の燃料噴射時間補正係数ＦＴＡＵ（＃ｉ）を乗算して、各気筒の最終燃料噴射時間ＴＡＵ（＃ｉ）を求める。
ＴＡＵ（＃ｉ）＝ＴＡＵ×ＦＴＡＵ（＃ｉ）
以上の処理により、各気筒の気筒間ばらつき値ＤＥＶ（＃ｉ）に応じて各気筒の燃料噴射量を補正することで、気筒間の空燃比ばらつきを小さくする。
【００４１】
［誤診断防止プログラム］
図７に示す誤診断防止プログラムは、例えば、イグニッションスイッチのオン後に所定周期で実行され、特許請求の範囲でいう誤診断防止手段としての役割を果たす。本プログラムが起動されると、まず、ステップ４０１で、▲１▼気筒間ばらつきが小さい（気筒間ばらつきフラグＸＤＥＶ＝０）か否かを判定し、また、▲２▼気筒間ばらつき補正が完了してから所定期間（所定時間、所定クランク角等）が経過したか否かを判定する。
【００４２】
その結果、気筒間ばらつきが大きい（気筒間ばらつきフラグＸＤＥＶ＝１）と判定された場合、又は、気筒間ばらつき補正完了から所定期間が経過する前であると判定された場合には、気筒間ばらつきによって排出ガスセンサ２４の出力が乱れて異常診断パラメータ（例えばΔＦＡＦ／Δλｔｇ）が正常範囲（ＫＣＧＬ〜ＫＣＧＨ）から外れる可能性があると判断して、ステップ４０２に進み、排出ガスセンサ２４の異常診断を禁止する。これにより、気筒間ばらつきによって生じた排出ガスセンサ２４の出力の乱れを排出ガスセンサ２４の異常と誤診断してしまうことを防止する。
【００４３】
一方、上記ステップ４０１で、気筒間ばらつきが小さいと判定された場合、又は、気筒間ばらつき補正が完了してから所定期間が経過したと判定された場合には、ステップ４０３に進み、排出ガスセンサ２４の異常診断を許可する。
【００４４】
以上説明した本実施形態（１）では、気筒間ばらつきが大きいときに、排出ガスセンサ２４の異常診断を禁止するようにしたので、気筒間ばらつきによって生じた排出ガスセンサ２４の出力の乱れを排出ガスセンサ２４の異常と誤診断してしまうことを防止することができ、排出ガスセンサ２４の異常診断精度を向上させることができる。
【００４５】
また、本実施形態（１）では、気筒間ばらつき補正を実行してから実際に気筒間ばらつきが十分に小さくなるまでには暫く時間が掛かることがあることを考慮して、気筒間ばらつき補正の完了後も所定期間が経過するまで、排出ガスセンサ２４の異常診断の禁止を継続するようにしたので、気筒間ばらつき補正の完了直後で気筒間ばらつきが十分に小さくなっていない可能性がある期間にも、異常診断を禁止して、より確実に誤診断を防止することができる。
【００４６】
しかしながら、必ずしも、気筒間ばらつき補正完了から所定期間が経過するまで異常診断の禁止を継続する必要はなく、気筒間ばらつき補正によって速やかに気筒間ばらつきが小さくなるような場合には、気筒間ばらつき補正完了直後に、直ちに排出ガスセンサ２４の異常診断を許可するようにしても良い。
【００４７】
《実施形態（２）》
次に、図８乃至図１０を用いて本発明の実施形態（２）を説明する。
前記実施形態（１）では、吸気管圧力の極小値を用いて気筒間ばらつき値を算出したが、本実施形態（２）では、後述する図８及び図９に示す気筒間ばらつき検出プログラムを実行することで、吸気管圧力の極大値を用いて気筒間ばらつき値を算出するようにしている。
【００４８】
また、前記実施形態（１）では、誤診断防止のために排出ガスセンサ２４の異常診断を禁止するようにしたが、本実施形態（２）では、後述する図１０に示す誤診断防止プログラムを実行することで、誤診断防止のために排出ガスセンサ２４の異常判定基準を緩和するようにしている。
【００４９】
［気筒間ばらつき検出プログラム］
図８及び図９に示す気筒間ばらつき検出プログラムでは、吸気管圧力の極大値を用いて気筒間ばらつき値を算出するため、図５（ｂ）に示すように、後述する第１〜第４のクランク角範囲は、それぞれ第１〜第４気筒の影響で吸気管圧力が極大値となる領域を含むように設定されている。
【００５０】
本プログラムでは、ステップ５０１で気筒間ばらつき検出の実行条件が成立していると判定された場合、クランク角が第１のクランク角範囲（第１気筒＃１の影響で吸気管圧力が極大値となる領域を含むクランク角範囲）内のときに、該第１のクランク角範囲内における吸気管圧力の極大値ＰＭｍａｘ  を、第１気筒＃１の吸気管圧力極大値ＰＭｍａｘ（＃１）  として算出する（ステップ５０２、５０３）。
【００５１】
一方、クランク角が第２のクランク角範囲（第２気筒＃２の影響で吸気管圧力が極大値となる領域を含むクランク角範囲）内のときに、該第２のクランク角範囲内における吸気管圧力の極大値ＰＭｍａｘ  を、第２気筒＃２の吸気管圧力極大値ＰＭｍａｘ（＃２）  として算出する（ステップ５０４、５０５）。
【００５２】
また、クランク角が第３のクランク角範囲（第３気筒＃３の影響で吸気管圧力が極大値となる領域を含むクランク角範囲）内のときに、該第３のクランク角範囲内における吸気管圧力の極大値ＰＭｍａｘ  を、第３気筒＃３の吸気管圧力極大値ＰＭｍａｘ（＃３）  として算出する（ステップ５０６、５０７）。
【００５３】
また、クランク角が第４のクランク角範囲（第４気筒＃４の影響で吸気管圧力が極大値となる領域を含むクランク角範囲）内のときに、該第４のクランク角範囲内における吸気管圧力の極大値ＰＭｍａｘ  を、第４気筒＃４の吸気管圧力極大値ＰＭｍａｘ（＃４）  として算出する（ステップ５０８）。
【００５４】
この後、図９のステップ５０９に進み、全気筒の吸気管圧力極大値ＰＭｍａｘ（＃１）  〜ＰＭｍａｘ（＃４）  の平均値ＡＶＥＰＭｍａｘ  を算出する。
ＡＶＥＰＭｍａｘ  ＝｛ＰＭｍａｘ（＃１）  ＋……＋ＰＭｍａｘ（＃４）  ｝／４
【００５５】
この後、ステップ５１０に進み、各気筒の吸気管圧力極大値ＰＭｍａｘ（＃ｉ）  と平均値ＡＶＥＰＭｍａｘ  とを用いて各気筒の気筒間ばらつき値ＤＥＶ（＃ｉ）を次式により算出する。
ＤＥＶ（＃ｉ）＝ＰＭｍａｘ（＃ｉ）  −ＡＶＥＰＭｍａｘ
【００５６】
この後、ステップ５１１に進み、各気筒の気筒間ばらつき値ＤＥＶ（＃ｉ）が、それぞれ所定範囲（Ｋ１〜Ｋ２）内であるか否かを判定し、全ての気筒間ばらつき値ＤＥＶ（＃１）〜ＤＥＶ（＃４）のうち１つでも所定範囲を越えていると判定された場合には、ステップ５１２に進み、気筒間ばらつきフラグＸＤＥＶを「１」にセットし、全ての気筒間ばらつき値ＤＥＶ（＃１）〜ＤＥＶ（＃４）が所定範囲内であると判定された場合には、ステップ５１３に進み、気筒間ばらつきフラグＸＤＥＶを「０」にリセットする。
【００５７】
［誤診断防止プログラム］
図１０に示す誤診断防止プログラムでは、まず、ステップ６０１で、▲１▼気筒間ばらつきが小さい（気筒間ばらつきフラグＸＤＥＶ＝０）か否かを判定し、また、▲２▼気筒間ばらつき補正が完了したか否かを判定する。
【００５８】
その結果、気筒間ばらつきが大きい（気筒間ばらつきフラグＸＤＥＶ＝１）と判定された場合、又は、気筒間ばらつき補正が未完了であると判定された場合には、気筒間ばらつきによって排出ガスセンサ２４の出力が乱れて異常診断パラメータ（例えばΔＦＡＦ／Δλｔｇ）が正常範囲（下限値ＫＣＧＬ〜上限値ＫＣＧＨ）から外れる可能性があると判断して、ステップ６０２に進み、正常範囲の下限値ＫＣＧＬ（異常判定値）を誤診断防止用の下限値（ＫＣＧＬ−α）に変更し、上限値ＫＣＧＨ（異常判定値）を誤診断防止用の上限値（ＫＣＧＨ＋β）に変更して、正常範囲の幅を広げて異常判定基準を緩和する。これにより、気筒間ばらつきによって生じた排出ガスセンサ２４の出力の乱れを排出ガスセンサ２４の異常と誤診断することを防止する。
【００５９】
一方、上記ステップ６０１で、気筒間ばらつきが小さいと判定された場合、又は、気筒間ばらつき補正が完了したと判定された場合には、ステップ６０３に進み、正常範囲の下限値（異常判定値）と上限値（異常判定値）を通常の値ＫＣＧＬ、ＫＣＧＨに戻す。
【００６０】
以上説明した本実施形態（２）では、気筒間ばらつきが大きいときや気筒間ばらつき補正が未完了のときに、正常範囲の幅を広げて異常判定基準を緩和するようにしたので、気筒間ばらつきによって生じた排出ガスセンサ２４の出力の乱れを排出ガスセンサ２４の異常と誤診断してしまうことを防止することができ、排出ガスセンサ２４の異常診断精度を向上させることができる。
【００６１】
尚、本実施形態（２）では、異常判定基準を緩和するために異常判定値（正常範囲の下限値と上限値）を変更するようにしたが、異常診断パラメータ（例えばΔＦＡＦ／Δλｔｇ）を補正したり、排出ガスセンサ２４の出力を補正する等、他の異常判定条件を変更するようにしても良い。
【００６２】
また、本実施形態（２）においても、前記実施形態（１）と同じように、気筒間ばらつき補正完了後も所定期間が経過するまで、異常判定基準の緩和を継続するようにしても良い。
【００６３】
また、上記各実施形態（１），（２）では、本発明を排出ガスセンサ２４の異常診断に適用したが、本発明はこれに限定されず、例えば、排出ガスセンサ２４の出力を用いた触媒劣化診断、エアフローメータ１４の出力を用いたエアフローメータ１４の異常診断、吸気管圧力センサ１８の出力を用いた吸気管圧力センサ１８の異常診断、エアフローメータ１４と吸気管圧力センサ１８と排出ガスセンサ２４のうちの少なくとも１つの出力を用いた触媒早期暖機システムの異常診断や空燃比制御システムの異常診断等、気筒間ばらつきの影響を受ける種々の異常診断に本発明を適用することができる。
【００６４】
また、上記各実施形態（１），（２）では、吸気管圧力の所定期間毎の極大値又は極小値に基づいて気筒間ばらつき値を算出したが、気筒間ばらつき値の算出方法は適宜変更しても良く、例えば、吸気管圧力の所定期間毎の平均値、振幅値、面積、軌跡長等に基づいて気筒間ばらつき値を算出するようにしても良い。また、吸気管圧力に代えて、吸入空気量、筒内圧力、回転速度、イオン電流、空燃比等に基づいて気筒間ばらつき値を算出するようにしても良い。
【００６５】
また、上記各実施形態（１），（２）では、各気筒毎に燃料噴射量を補正することで気筒間ばらつきを補正したが、気筒間ばらつきの補正方法は適宜変更しても良く、例えば、各気筒毎に点火時期を補正したり、各気筒毎に吸入空気量を補正して気筒間ばらつきを補正するようにしても良い。
【００６６】
その他、本発明の適用範囲は４気筒のエンジンに限定されず、５気筒以上又は３気筒以下の複数気筒エンジンに本発明を適用しても良い。
【図面の簡単な説明】
【図１】本発明の実施形態（１）におけるエンジン制御システム全体の概略構成図
【図２】実施形態（１）の排出ガスセンサ異常診断プログラムの処理の流れを示すフローチャート
【図３】実施形態（１）の気筒間ばらつき検出プログラムの処理の流れを示すフローチャート（その１）
【図４】実施形態（１）の気筒間ばらつき検出プログラムの処理の流れを示すフローチャート（その２）
【図５】吸気管圧力の挙動を示すタイムチャート
【図６】実施形態（１）の気筒間ばらつき補正プログラムの処理の流れを示すフローチャート
【図７】実施形態（１）の誤診断防止プログラムの処理の流れを示すフローチャート
【図８】実施形態（２）の気筒間ばらつき検出プログラムの処理の流れを示すフローチャート（その１）
【図９】実施形態（２）の気筒間ばらつき検出プログラムの処理の流れを示すフローチャート（その２）
【図１０】実施形態（２）の誤診断防止プログラムの処理の流れを示すフローチャート
【符号の説明】
１１…エンジン（内燃機関）、１２…吸気管、１４…エアフローメータ、１５…スロットルバルブ、１８…吸気管圧力センサ、２０…燃料噴射弁、２１…点火プラグ、２２…排気管、２４…排出ガスセンサ、２６…クランク角センサ、２７…ＥＣＵ（異常診断手段，気筒間ばらつき検出手段，気筒間ばらつき補正手段，誤診断防止手段）。
【図１】
2004176689.tif 000003
【図２】
2004176689.tif 000004
【図３】
2004176689.tif 000005
【図４】
2004176689.tif 000006
【図５】
2004176689.tif 000007
【図６】
2004176689.tif 000008
【図７】
2004176689.tif 000009
【図８】
2004176689.tif 000010
【図９】
2004176689.tif 000011
【図１０】
2004176689.tif 000012