(57)【要約】【課題】内燃機関の排気合流部に設置した１つの空燃比センサの検出値に基づいて各気筒の空燃比を制御するシステムにおいて、空燃比制御が困難な気筒の影響によって他の正常な気筒の空燃比を過補正することを防止する。【解決手段】排気合流部３６に設置した空燃比センサ３７の検出値に基づいて各気筒の空燃比を推定し、各気筒の推定空燃比に基づいて気筒別空燃比補正量を算出し、この気筒別空燃比補正量に基づいて各気筒に供給する混合気の空燃比（燃料噴射量）を各気筒毎に補正して気筒間の空燃比ばらつきを少なくするように制御する。この気筒別空燃比制御中にいずれかの気筒の気筒別空燃比補正量又はその学習値が所定範囲から外れた状態が暫く続いたときに、その所定範囲を外れた気筒の燃焼を停止し、それ以外の正常な気筒のみで気筒別空燃比制御を続ける。【選択図】図１
2008038786.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の複数の気筒の排出ガスが合流する排気合流部に、該排出ガスの空燃比を検出する空燃比センサを設置し、前記空燃比センサの検出値に基づいて各気筒の空燃比を推定する気筒別空燃比推定手段と、前記複数の気筒について気筒毎に空燃比の気筒間ばらつきを補正するための各気筒の空燃比補正量（以下「気筒別空燃比補正量」という）を算出する気筒別空燃比補正量算出手段と、前記気筒別空燃比補正量に基づいて各気筒の燃料噴射量を補正して気筒間の空燃比ばらつきを小さくする気筒別空燃比制御を実行する気筒別空燃比制御手段とを備えた内燃機関の気筒別空燃比制御装置において、
いずれかの気筒の気筒別空燃比補正量又はその学習値が所定範囲を外れたときに、その所定範囲を外れた気筒（以下「異常気筒」という）の燃焼を停止する燃焼停止手段を備えていることを特徴とする内燃機関の気筒別空燃比制御装置。
【請求項２】
前記燃焼停止手段は、前記異常気筒の燃焼を停止する際に前記異常気筒とトルクバランスの取れる気筒も燃焼を停止することを特徴とする請求項１に記載の内燃機関の気筒別空燃比制御装置。
【請求項３】
前記燃焼停止手段は、前記異常気筒の燃焼を停止する際に前記異常気筒の属する気筒グループの全ての気筒の燃焼を停止することを特徴とする請求項１に記載の内燃機関の気筒別空燃比制御装置。
【請求項４】
前記気筒グループは、バンク毎、吸気制御グループ毎、排気制御グループ毎のいずれかであることを特徴とする請求項３に記載の内燃機関の気筒別空燃比制御装置。
【請求項５】
前記燃焼停止手段は、前記異常気筒の気筒別空燃比補正量が所定範囲を外れた運転領域のみで燃焼停止を実施することを特徴とする請求項１乃至４のいずれかに記載の内燃機関の気筒別空燃比制御装置。
【請求項６】
内燃機関の各気筒の吸気ポート及び／又は排気ポートに気筒毎に独立して開閉動作を休止可能なバルブ装置を設け、
前記燃焼停止手段は、燃焼を停止する気筒のバルブ装置を閉じて吸排気を遮断することを特徴とする請求項１乃至５のいずれかに記載の内燃機関の気筒別空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の気筒の排出ガスが合流する排気合流部に設置した空燃比センサの検出値に基づいて各気筒の空燃比（気筒別空燃比）を推定する機能を備えた内燃機関の気筒別空燃比制御装置に関する発明である。
【背景技術】
【０００２】
近年、特許文献１（特開２００５−２０７４０５号公報）に記載されているように、複数の気筒の排出ガスが合流する排気合流部に設置した１つの空燃比センサの出力に基づいて複数の気筒の空燃比を気筒毎に推定すると共に、気筒毎に空燃比の気筒間ばらつきを補正するための各気筒の空燃比補正量（気筒別空燃比補正量）を算出して、この気筒別空燃比補正量に基づいて複数の気筒の空燃比（燃料噴射量）を気筒毎に制御する気筒別空燃比制御を実施するようにしたものがある。更に、この特許文献１の気筒別空燃比制御システムでは、気筒別空燃比の推定が困難（気筒別空燃比補正量の算出が困難）となる運転条件では、気筒別空燃比補正量の学習値を用いて気筒別空燃比制御を実施するようにしている。
【特許文献１】特開２００５−２０７４０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このような気筒別空燃比制御システムでは、例えば、いずれかの気筒の燃料噴射弁等が異常になってその気筒の空燃比の制御が困難になると、気筒間の空燃比ばらつきが異常に大きくなって、気筒別空燃比補正量やその学習値が異常に大きくなることがある。このような状態で、気筒別空燃比制御を続けても、気筒間の空燃比ばらつきを小さくできないため、異常気筒以外の正常な気筒の空燃比を過補正する結果となり、却って排気エミッションが悪化する等の問題が発生する。
【０００４】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、空燃比制御が困難な気筒が生じても、その影響によって他の正常な気筒の空燃比を過補正することを防止しながら、気筒別空燃比制御を続けることができ、排気エミッションの悪化を防止できる内燃機関の気筒別空燃比制御装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、請求項１に係る発明は、内燃機関の複数の気筒の排出ガスが合流する排気合流部に、該排出ガスの空燃比を検出する空燃比センサを設置し、前記空燃比センサの検出値に基づいて各気筒の空燃比を推定する気筒別空燃比推定手段と、前記複数の気筒について気筒毎に空燃比の気筒間ばらつきを補正するための各気筒の空燃比補正量（以下「気筒別空燃比補正量」という）を算出する気筒別空燃比補正量算出手段と、前記気筒別空燃比補正量に基づいて各気筒の燃料噴射量を補正して気筒間の空燃比ばらつきを小さくする気筒別空燃比制御を実行する気筒別空燃比制御手段とを備えた内燃機関の気筒別空燃比制御装置において、いずれかの気筒の気筒別空燃比補正量又はその学習値が所定範囲を外れたときに、その所定範囲を外れた気筒（以下「異常気筒」という）の燃焼を燃焼停止手段により停止するようにしたものである。このようにすれば、空燃比制御が困難な異常気筒が生じても、それ以外の正常な気筒のみで気筒別空燃比制御を続けることができるため、空燃比制御が困難な異常気筒の影響によって他の正常な気筒の空燃比を過補正することを防止しながら、正常な気筒のみで気筒別空燃比制御を続けることができ、排気エミッションの悪化を防止できる。
【０００６】
この場合、燃焼を停止させる異常気筒の位置によっては、エンジン回転トルクがアンバランスになってエンジン振動が発生し、運転者に不快感を感じさせてしまう可能性がある。この対策として、請求項２のように、異常気筒の燃焼を停止する際に異常気筒とトルクバランスの取れる気筒も燃焼を停止するようにしても良い。このようにすれば、異常気筒の燃焼停止により発生するエンジン振動を、その異常気筒とトルクバランスの取れる気筒の燃焼停止により減衰させることができ、運転者に不快な振動を感じさせずに済む。
【０００７】
また、複数の気筒グループを持つ内燃機関では、気筒グループ毎に独立して気筒別空燃比制御を実施できることを考慮して、請求項３のように、異常気筒の燃焼を停止する際に異常気筒の属する気筒グループの全ての気筒の燃焼を停止するようにしても良い。このようにすれば、空燃比制御が困難な異常気筒が生じたときに、正常な気筒グループのみで気筒別空燃比制御を続けることができる。
【０００８】
この場合、請求項４のように、気筒グループは、バンク毎、吸気制御グループ毎、排気制御グループ毎のいずれであっても良い。
【０００９】
また、請求項５のように、異常気筒の気筒別空燃比補正量が所定範囲を外れた運転領域のみで燃焼停止を実施するようにしても良い。このようにすれば、一部の運転領域で気筒別空燃比補正量が所定範囲を外れた異常気筒でも、それ以外の運転領域では正常に気筒別空燃比制御を行うことができる。
【００１０】
また、請求項６のように、内燃機関の各気筒の吸気ポート及び／又は排気ポートに気筒毎に独立して開閉動作を休止可能なバルブ装置を設けたシステムでは、燃焼を停止する気筒のバルブ装置を閉じて吸排気を遮断するようにすると良い。このようにすれば、燃焼停止気筒から未燃焼空気が排気合流部に流れることを防止できるので、燃焼停止気筒からの未燃焼空気により燃焼気筒の空燃比の推定精度が低下することを防止できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を実施するための最良の形態を具体化した幾つかの実施例を説明する。
【実施例１】
【００１２】
本発明の実施例１を図１乃至図９に基づいて説明する。
まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。
内燃機関である例えば直列４気筒のエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、モータ等によって開度調節されるスロットルバルブ１５とスロットル開度を検出するスロットル開度センサ１６とが設けられている。
【００１３】
更に、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７には、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。エンジン運転中は、燃料タンク２１内の燃料が燃料ポンプ２２によりデリバリパイプ２３に送られ、各気筒の噴射タイミング毎に各気筒の燃料噴射弁２０から燃料が噴射される。デリバリパイプ２３には、燃料圧力（燃圧）を検出する燃圧センサ２４が取り付けられている。
【００１４】
また、エンジン１１の吸気ポートと排気ポートには、それぞれ気筒毎に独立して開閉動作可能なバルブ装置として、電磁駆動型の吸気バルブ２５と電磁駆動型の排気バルブ２６が設けられている。尚、本発明は、吸気バルブ２５と排気バルブ２６のいずれか一方のみを電磁駆動バルブ（気筒毎に独立して開閉動作可能なバルブ装置）とし、他方のバルブをエンジン１１のカム軸で駆動する構成としても良い。或は、吸気バルブ２５と排気バルブ２６の両方をエンジン１１のカム軸で駆動する構成としても良い。
【００１５】
一方、エンジン１１の各気筒の排気マニホールド３５が合流する排気合流部３６には、排出ガスの空燃比を検出する空燃比センサ３７が設置され、この空燃比センサ３７の下流側に排出ガス中のＣＯ，ＨＣ，ＮＯｘ等を浄化する三元触媒等の触媒３８が設けられている。
【００１６】
上記空燃比センサ３７等の各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）４０に入力される。このＥＣＵ４０は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、エンジン運転状態に応じて各気筒の燃料噴射弁２０の燃料噴射量や点火時期を制御する。
【００１７】
本実施例１では、ＥＣＵ４０は、図２乃至図４の気筒別空燃比制御用の各ルーチンを実行することで、エンジン運転中に後述する気筒別空燃比推定モデルを用いて空燃比センサ３７の検出値（排気合流部３６を流れる排出ガスの実空燃比）に基づいて各気筒の空燃比（気筒別空燃比）を推定し、全気筒の推定空燃比の平均値を算出して、その平均値を基準空燃比（全気筒の目標空燃比）に設定すると共に、各気筒の推定空燃比（気筒別推定空燃比）と基準空燃比との偏差を各気筒毎に算出して、その偏差が小さくなるように各気筒の燃料噴射量に対する燃料補正係数（気筒別空燃比補正量）を算出すると共に、この気筒別空燃比補正量をなまし処理等により学習して、気筒別空燃比補正量とその学習値に基づいて各気筒の燃料噴射量を補正することで、各気筒に供給する混合気の空燃比を各気筒毎に補正して気筒間の空燃比ばらつきを少なくするように制御する（以下、この制御を気筒別空燃比制御という）。この際、気筒別空燃比補正量をなまし処理等により学習して、その学習値をＥＣＵ４０のバックアップＲＡＭ等の書き換え可能な不揮発性メモリ（図示せず）に気筒毎に更新記憶する。尚、気筒別空燃比の推定が困難（気筒別空燃比補正量の算出が困難）となる運転条件では、気筒別空燃比補正量の学習値を用いて気筒別空燃比制御を実施するようにしても良い。
【００１８】
ここで、空燃比センサ３７の検出値（排気合流部３６を流れる排出ガスの実空燃比）に基づいて各気筒の空燃比を推定するモデル（以下「気筒別空燃比推定モデル」という）の具体例を説明する。
【００１９】
排気合流部３６におけるガス交換に着目して、空燃比センサ３７の検出値を、排気合流部３６における各気筒の推定空燃比の履歴と空燃比センサ３７の検出値の履歴とにそれぞれ所定の重みを乗じて加算したものとしてモデル化し、該モデルを用いて各気筒の空燃比を推定するようにしている。この際、オブザーバとしてはカルマンフィルタを用いる。
【００２０】
より具体的には、排気合流部３６におけるガス交換のモデルを次の（１）式にて近似する。
ｙ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) 〜(4) がある。
【００２９】
(1) 空燃比センサ３７が活性状態であること
(2) 空燃比センサ３７が異常（故障）と判定されていないこと
(3) エンジン１１が暖機状態（例えば冷却水温が所定温度以上）であること
(4) エンジン運転領域（例えばエンジン回転速度と吸気管圧力）が空燃比推定精度を確保できる運転領域であること
【００３０】
これら４つの条件(1) 〜(4) を全て満したときに気筒別空燃比制御の実行条件が成立し、いずれか１つでも満たさない条件があれば、実行条件が不成立となる。この実行条件が不成立であれば、以降の処理を行うことなく、本ルーチンを終了する。
【００３１】
一方、実行条件が成立していれば、ステップ１０２に進み、各気筒の空燃比検出タイミング（空燃比センサ３７の出力のサンプルタイミング）を、その時点のエンジン負荷（例えば吸気管圧力）に応じてマップにより設定する。尚、各気筒の空燃比検出タイミングをエンジン負荷とエンジン回転速度に応じてマップにより設定しても良い。
【００３２】
この後、ステップ１０３に進み、現在のクランク角が上記ステップ１０２で設定した空燃比検出タイミングであるか否かを判定し、空燃比検出タイミングでなければ、以降の処理を行うことなく、本ルーチンを終了する。
【００３３】
これに対して、現在のクランク角が上記ステップ１０２で設定した空燃比検出タイミングであれば、ステップ１０４に進み、図３の気筒別空燃比制御実行ルーチンを実行して、本ルーチンを終了する。
【００３４】
［気筒別空燃比制御実行ルーチン］
図３の気筒別空燃比制御実行ルーチンは、図２の気筒別空燃比制御メインルーチンのステップ１０４で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ２０１で、空燃比センサ３７の出力（空燃比検出値）を読み込む。この後、ステップ２０２に進み、前記気筒別空燃比推定モデルを用いて今回の空燃比推定対象となる気筒の空燃比を空燃比センサ３７の検出値に基づいて推定する。このステップ２０２の処理が特許請求の範囲でいう気筒別空燃比推定手段としての役割を果たす。この後、ステップ２０３に進み、全気筒の推定空燃比の平均値を算出して、その平均値を基準空燃比（全気筒の目標空燃比）に設定する。
【００３５】
この後、ステップ２０４に進み、各気筒の推定空燃比と基準空燃比との偏差を算出して、その偏差が小さくなるように気筒別空燃比補正量（各気筒の燃料補正量）を算出した後、ステップ２０５に進み、後述する図４の気筒別空燃比補正量学習ルーチンを実行して、気筒別空燃比補正量を学習する。
【００３６】
そして、次のステップ２０６で、各気筒の気筒別空燃比補正量とその学習値を用いて、各気筒の燃料噴射量を補正することで、各気筒に供給する混合気の空燃比を各気筒毎に補正して気筒間の空燃比ばらつきを少なくするように制御する。
［気筒別空燃比補正量学習ルーチン］
図４の気筒別空燃比補正量学習ルーチンは、図３の気筒別空燃比制御実行ルーチンのステップ２０５で実行されるサブルーチンであり、気筒別学習手段としての役割を果たす。本ルーチンが起動されると、まずステップ３０１で、学習実行条件が成立しているか否かを判定する。ここで、学習実行条件としては、例えば次の２つの条件(1) ，(2) がある。      
【００３７】
(1) 気筒別空燃比制御の実行中であること
(2) 空燃比変動量が所定値以下の安定した運転状態であること
上記２つの条件(1) ，(2) を両方とも満たせば、学習実行条件が成立し、いずれか１つでも満たさない条件があれば、学習実行条件が不成立となる。この学習実行条件が不成立であれば、以降の処理を行うことなく、本ルーチンを終了する。
【００３８】
一方、学習実行条件が成立していれば、ステップ３０４に進み、ＥＣＵ４０の書き換え可能な不揮発性メモリ（図示せず）に記憶されている図７の気筒別空燃比補正量学習マップにおいて、現在のエンジン運転領域（エンジン回転速度と負荷）に対応する学習領域（気筒別空燃比補正量の学習値を更新する学習領域）を選択する。この後、ステップ３０５に進み、気筒毎に気筒別空燃比補正量のなまし値をなまし係数Ｋを用いて次式により算出する。
気筒別空燃比補正量なまし値＝
｛前回なまし値×（Ｋ−１）＋今回の気筒別空燃比補正量｝／Ｋ
【００３９】
この後、ステップ３０６に進み、気筒別空燃比補正量学習値の更新タイミングであるか否かを判定する。この学習値更新タイミングは、学習値の更新周期が少なくとも気筒別補正量の算出周期よりも長くなるよう設定されている。このステップ３０６で、学習値の更新タイミングでないと判定されれば、そのまま本ルーチンを終了する。
【００４０】
一方、上記ステップ３０６で、学習値の更新タイミングであると判定されれば、ステップ３０７に進み、気筒別空燃比補正量なまし値の絶対値が所定値ＴＨＡ以上であるか否かを判定し、当該なまし値の絶対値が所定値ＴＨＡよりも小さければ、学習値を更新する必要がないと判断して本ルーチンを終了する。
【００４１】
また、上記ステップ３０７で、気筒別空燃比補正量なまし値の絶対値が所定値ＴＨＡ以上であると判定されれば、ステップ３０８に進み、気筒別空燃比補正量なまし値に基づいてマップにより学習値更新量を算出する。この学習値更新量を算出するマップは、気筒別空燃比補正量なまし値が大きくなるほど、学習値更新量が大きくなるように設定されている。
【００４２】
この後、ステップ３０９に進み、前回の気筒別空燃比補正量学習値に今回の学習値更新量を加算して求めた値を、新たな気筒別空燃比補正量学習値としてＥＣＵ４０の書き換え可能な不揮発性メモリ（図示せず）に更新記憶する。この際、図７の気筒別空燃比補正量学習マップのうちの前記ステップ３０４で選択された学習領域の学習値が更新される。尚、図７の気筒別空燃比補正量学習マップは、気筒毎に作成される。
【００４３】
［異常気筒判定ルーチン］
図５の異常気筒判定ルーチンは、エンジン運転中に所定周期で実行されるサブルーチンであり、異常気筒判定手段としての役割を果たす。本ルーチンが起動されると、まずステップ４０１で、各気筒の気筒別空燃比補正量（又はその学習値）を読み込み、次のステップ４０２で、いずれかの気筒の気筒別空燃比補正量（又はその学習値）が所定範囲外であるか否かを判定する。その結果、全ての気筒の気筒別空燃比補正量（又はその学習値）が所定範囲内であると判定されれば、全ての気筒の気筒別空燃比制御が正常に機能していると判断して、ステップ４０６に進み、気筒別空燃比補正量（又はその学習値）が所定範囲外になっている状態の継続時間を計測するディレイ時間カウンタＴの値を０にリセットして本ルーチンを終了する。
【００４４】
これに対して、上記ステップ４０２で、いずれかの気筒の気筒別空燃比補正量（又はその学習値）が所定範囲外であると判定されれば、ステップ４０３に進み、ディレイ時間カウンタＴをカウントアップして、気筒別空燃比補正量（又はその学習値）が所定範囲外になっている状態の継続時間を計測する。この後、ステップ４０４に進み、ディレイ時間カウンタＴのカウント時間が所定値を越えたか否かを判定し、ディレイ時間カウンタＴのカウント値が所定値を越えていなければ、そのまま本ルーチンを終了する。
【００４５】
その後、ディレイ時間カウンタＴのカウント値が所定値を越えた時点で、ステップ４０５に進み、燃焼停止フラグをＯＮ（燃焼停止）にセットし、次のステップ４０７で、気筒別空燃比補正量（又はその学習値）が所定範囲外になっている気筒を「異常気筒」としてＥＣＵ４０のメモリに記憶して本ルーチンを終了する。
【００４６】
［異常気筒燃焼停止制御ルーチン］
図６の異常気筒燃焼停止制御ルーチンは、エンジン運転中に所定周期で実行され、特許請求の範囲でいう燃焼停止手段としての役割を果たす。本ルーチンが起動されると、まずステップ５０１で、燃焼停止止フラグがＯＮ（燃焼停止）にセットされているか否かを判定し、燃焼停止フラグがＯＮ（燃焼停止）にセットされていなければ、以降の処理を行うことなく、本ルーチンを終了する。この場合は、全ての気筒に燃料噴射・点火が実施される。
【００４７】
これに対して、燃焼停止フラグがＯＮ（燃焼停止）にセットされていれば、ステップ５０２に進み、ＥＣＵ４０のメモリに記憶されている異常気筒のデータを読み込む。この後、ステップ５０３に進み、異常気筒の燃料噴射と点火をカットして異常気筒の燃焼を停止させると共に、次のステップ５０４で、燃焼停止気筒（異常気筒）の吸気バルブ２５と排気バルブ２６の両方又はいずれか一方を閉じて、吸入空気が燃焼停止気筒（異常気筒）を通して排気マニホールド３５に流れ込むことを防止しながら、燃焼停止気筒（異常気筒）以外の正常な気筒のみで気筒別空燃比制御を続ける。
【００４８】
以上説明した本実施例１の制御例を図８及び図９のタイムチャートを用いて説明する。  図８は、気筒別空燃比補正量を所定範囲（正常範囲）と比較して燃焼停止フラグをＯＮ／ＯＦＦする例である。本例では、時刻ｔ1 で、気筒別空燃比制御の実行条件が成立して、気筒別空燃比制御が開始され、各気筒＃１〜＃４の気筒別空燃比補正量が算出される。この気筒別空燃比制御の実行中は、各気筒＃１〜＃４の気筒別空燃比補正量が所定範囲外（正常範囲外）であるか否かが判定され、いずれかの気筒（図８の例では＃１）の気筒別空燃比補正量が所定範囲外になった時点ｔ2 で、ディレイ時間カウンタＴのカウントアップ動作が開始され、気筒別空燃比補正量が所定範囲外になっている状態の継続時間が計測される。
【００４９】
その後、ディレイ時間カウンタＴのカウント値が所定値を越えた時点ｔ3 で、気筒別空燃比補正量が所定範囲外になっている気筒が「異常気筒」と判定され、燃焼停止フラグがＯＮ（燃焼停止）にセットされる。この後は、異常気筒の燃料噴射と点火をカットして異常気筒の燃焼を停止させると共に、燃焼停止気筒（異常気筒）の吸気バルブ２５と排気バルブ２６の両方又はいずれか一方を閉じて、吸入空気が燃焼停止気筒（異常気筒）を通して排気マニホールド３５に流れ込むことを防止しながら、燃焼停止気筒（異常気筒）以外の正常な気筒のみで気筒別空燃比制御を続ける。
【００５０】
一方、図９は、気筒別空燃比補正量の学習値を所定範囲（正常範囲）と比較して燃焼停止フラグをＯＮ／ＯＦＦする例である。本例では、時刻ｔ1 で、気筒別空燃比制御の実行条件が成立して、気筒別空燃比制御が開始され、各気筒＃１〜＃４の気筒別空燃比補正量が算出される。
【００５１】
その後、時刻ｔ2 で、学習実行条件が成立して、気筒別空燃比補正量の学習が開始され、各気筒＃１〜＃４の気筒別空燃比補正量学習値が更新される。
【００５２】
その後、各気筒＃１〜＃４の気筒別空燃比補正量学習値が所定範囲外（正常範囲外）であるか否かが判定され、いずれかの気筒の気筒別空燃比補正量学習値が所定範囲外になった時点ｔ3 で、ディレイ時間カウンタＴのカウントアップ動作が開始され、気筒別空燃比補正量学習値が所定範囲外になっている状態の継続時間が計測される。
【００５３】
その後、ディレイ時間カウンタＴのカウント値が所定値を越えた時点ｔ4 で、気筒別空燃比補正量学習値が所定範囲外になっている気筒が「異常気筒」と判定され、燃焼停止フラグがＯＮ（燃焼停止）にセットされる。この後は、異常気筒の燃料噴射と点火をカットして異常気筒の燃焼を停止させると共に、燃焼停止気筒（異常気筒）の吸気バルブ２５と排気バルブ２６の両方又はいずれか一方を閉じて、吸入空気が燃焼停止気筒（異常気筒）を通して排気マニホールド３５に流れ込むことを防止しながら、燃焼停止気筒（異常気筒）以外の正常な気筒のみで気筒別空燃比制御を続ける。
【００５４】
以上説明した本実施例１によれば、いずれかの気筒の気筒別空燃比補正量（又はその学習値）が所定範囲外になっている状態が暫く続いたときに、その所定範囲外になっている気筒を「異常気筒」と判定して、異常気筒の燃焼を停止させると共に、それ以外の正常な気筒のみで気筒別空燃比制御を続けるようにしたので、空燃比制御が困難な異常気筒の影響によって他の正常な気筒の空燃比を過補正することを防止しながら、正常な気筒のみで気筒別空燃比制御を続けることができ、排気エミッションの悪化を防止できる。
【００５５】
しかも、本実施例１では、燃焼停止気筒（異常気筒）の吸気バルブ２５と排気バルブ２６の両方又はいずれか一方を閉じて、吸入空気が燃焼停止気筒（異常気筒）を通して排気マニホールド３５に流れ込むことを防止するようにしたので、燃焼停止気筒（異常気筒）からの未燃焼空気の影響を受けることなく、他の燃焼気筒から排出される燃焼ガスの空燃比を空燃比センサ３７により精度良く検出することができ、燃焼停止気筒からの未燃焼空気により燃焼気筒の空燃比の推定精度が低下することを防止できる。
【実施例２】
【００５６】
上記実施例１で説明した図４の気筒別空燃比補正量学習ルーチンでは、エンジン運転領域（エンジン回転速度と負荷）毎に気筒別空燃比補正量学習値を更新するようにしている（図７参照）。
【００５７】
この点を考慮して、図１０及び図１１に示す本発明の実施例２では、いずれかの気筒の気筒別空燃比補正量（又はその学習値）が所定範囲を外れて異常気筒が検出された場合に、気筒別空燃比補正量（又はその学習値）が所定範囲を外れた運転領域についてのみ、異常気筒の燃焼を停止し、それ以外の運転領域では、異常気筒と判定された気筒であっても、燃料噴射・点火を実行して燃焼させるようにしている。
【００５８】
以下、本実施例２で実行する図１０及び図１１のルーチンの処理内容を説明する。
図１０の異常気筒判定ルーチンは、前記実施例１で説明した図５の異常気筒判定ルーチンのステップ４０７の処理をステップ４０７ａの処理に変更しただけであり、その他のステップの処理は同じである。
【００５９】
図１０の異常気筒判定ルーチンでは、ステップ４０１〜４０５の処理により、いずれかの気筒の気筒別空燃比補正量（又はその学習値）が所定範囲外になっている状態が所定時間経過すると、燃焼停止フラグをＯＮ（燃焼停止）にセットする。この後、ステップ４０７ａに進み、気筒別空燃比補正量（又はその学習値）が所定範囲外になっている気筒を「異常気筒」としてＥＣＵ４０のメモリに記憶すると共に、現在のエンジン運転領域を燃焼停止運転領域としてメモリに記憶して、本ルーチンを終了する。
【００６０】
図１１の異常気筒燃焼停止制御ルーチンは、前記実施例１で説明した図６の異常気筒燃焼停止制御ルーチンのステップ５０１の次にステップ５０１ａの判定処理を追加しただけであり、その他のステップの処理は同じである。
【００６１】
本ルーチンが起動されると、まずステップ５０１で、燃焼停止フラグがＯＮ（燃焼停止）にセットされているか否かを判定し、燃焼停止フラグがＯＮ（燃焼停止）にセットされていなければ、以降の処理を行うことなく、本ルーチンを終了する。この場合は、全ての気筒に燃料噴射・点火が行われる。
【００６２】
これに対して、燃焼停止フラグがＯＮ（燃焼停止）にセットされていれば、ステップ５０１ａに進み、現在のエンジン運転領域がメモリに記憶されている燃焼停止運転領域であるか否かを判定し、現在のエンジン運転領域が燃焼停止運転領域でなければ、以降の処理を行うことなく、本ルーチンを終了する。この場合も、全ての気筒に燃料噴射・点火が行われる。
【００６３】
一方、上記ステップ５０１ａで、現在のエンジン運転領域が燃焼停止運転領域であると判定されれば、ステップ５０２〜５０４の処理を実行し、メモリに記憶されている異常気筒の燃料噴射と点火をカットして異常気筒の燃焼を停止させると共に、燃焼停止気筒（異常気筒）の吸気バルブ２５と排気バルブ２６の両方又はいずれか一方を閉じて、吸入空気が燃焼停止気筒（異常気筒）を通して排気マニホールド３５に流れ込むことを防止しながら、燃焼停止気筒（異常気筒）以外の正常な気筒のみで気筒別空燃比制御を続ける。
【００６４】
以上説明した本実施例２では、いずれかの気筒の気筒別空燃比補正量（又はその学習値）が所定範囲を外れた運転領域のみで、その所定範囲を外れた異常気筒の燃焼を停止させるようにしたので、一部の運転領域で気筒別空燃比補正量が所定範囲を外れた異常気筒でも、それ以外の運転領域では正常に気筒別空燃比制御を行うことができる。
【実施例３】
【００６５】
ところで、燃焼を停止させる異常気筒の位置によっては、エンジン回転トルクがアンバランスになってエンジン振動が発生し、運転者に不快感を感じさせてしまう可能性がある。この対策として、本発明の実施例３では、異常気筒の燃焼を停止する際に、その異常気筒の位置がエンジン振動が発生する位置であれば、その異常気筒とトルクバランスの取れる気筒も燃焼を停止するようにしている。例えば、４気筒エンジンにおいて、異常気筒が＃１気筒の場合は、これとトルクバランスの取れる＃３気筒も燃焼を停止する。
【００６６】
このようにすれば、異常気筒の燃焼停止により発生するエンジン振動を、その異常気筒とトルクバランスの取れる気筒の燃焼停止により減衰させることができ、運転者に不快な振動を感じさせずに済む。
【実施例４】
【００６７】
ところで、複数の気筒グループを持つエンジンでは、気筒グループ毎に独立して気筒別空燃比制御を実施できる。
【００６８】
この点を考慮して、本発明の実施例４では、異常気筒の燃焼を停止する際に異常気筒の属する気筒グループの全ての気筒の燃焼を停止するようにしている。この場合、気筒グループは、バンク毎、吸気制御グループ毎、排気制御グループ毎のいずれであっても良い。本実施例４では、空燃比制御が困難な異常気筒が生じたときに、正常な気筒グループのみで気筒別空燃比制御を続けることができる。
【００６９】
その他、本発明は、吸気ポート噴射エンジンに限定されず、筒内噴射エンジンにも適用して実施できる等、要旨を逸脱しない範囲で種々変更して実施できる。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施例１におけるエンジン制御システム全体の概略構成図である。
【図２】実施例１の気筒別空燃比制御メインルーチンの処理の流れを示すフローチャートである。
【図３】実施例１の気筒別空燃比制御実行ルーチンの処理の流れを示すフローチャートである。
【図４】実施例１の気筒別空燃比補正量学習ルーチンの処理の流れを示すフローチャートである。
【図５】実施例１の異常気筒判定ルーチンの処理の流れを示すフローチャートである。
【図６】実施例１の異常気筒燃焼停止制御ルーチンの処理の流れを示すフローチャートである。
【図７】実施例１の気筒別空燃比補正量学習マップを概念的に示す図である。
【図８】実施例１の制御例（その１）を説明するタイムチャートである。
【図９】実施例１の制御例（その２）を説明するタイムチャートである。
【図１０】実施例２の異常気筒判定ルーチンの処理の流れを示すフローチャートである。
【図１１】実施例２の異常気筒燃焼停止制御ルーチンの処理の流れを示すフローチャートである。
【符号の説明】
【００７１】
１１…エンジン（内燃機関）、１２…吸気管、１４…エアフローメータ、１５…スロットルバルブ、１９…吸気マニホールド、２０…燃料噴射弁、２２…燃料ポンプ、２４…燃圧センサ、２５…吸気バルブ（バルブ装置）、２６…排気バルブ（バルブ装置）、３５…排気マニホールド、３６…排気合流部、３７…空燃比センサ、３８…触媒、４０…ＥＣＵ（気筒別空燃比推定手段，気筒別空燃比補正量算出手段，気筒別空燃比制御手段，燃焼停止手段）
【図１】
2008038786.tif 000003
【図２】
2008038786.tif 000004
【図３】
2008038786.tif 000005
【図４】
2008038786.tif 000006
【図５】
2008038786.tif 000007
【図６】
2008038786.tif 000008
【図７】
2008038786.tif 000009
【図８】
2008038786.tif 000010
【図９】
2008038786.tif 000011
【図１０】
2008038786.tif 000012
【図１１】
2008038786.tif 000013