(57)【要約】      （修正有）【課題】燃料噴射量変更終了直後の回転ズレを抑制する。【解決手段】多気筒内燃機関の気筒間空燃比ばらつき異常検出装置は、アイドル運転時に所定の対象気筒の燃料噴射量を変更し、少なくとも変更後の対象気筒の回転変動に基づき気筒間空燃比ばらつき異常を検出する。アイドル運転時に実際の回転数を目標アイドル回転数に一致させるようアイドル回転制御を実行する。燃料噴射量変更時には、実際の回転数と目標アイドル回転数との差分に基づく補正量Δθ、補正量に応じた学習値θｇ、およびこれらのうちの少なくとも一方を補正する補正値θａに基づき、目標開度θｔを算出する。算出された目標開度に一致するようバルブ開度を制御する。【選択図】図９
2012246843.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関のアイドル運転時に所定の対象気筒の燃料噴射量を変更し、少なくとも当該変更後の前記対象気筒の回転変動に基づき、気筒間空燃比ばらつき異常を検出する異常検出手段と、
前記アイドル運転時に前記内燃機関の実際の回転数を所定の目標アイドル回転数に一致させるよう制御するアイドル回転制御手段と、を備え、
前記アイドル回転制御手段は、
前記内燃機関の吸入空気量を調節するためのバルブと、
前記実際の回転数と前記目標アイドル回転数との差分に基づいて補正量を算出する補正量算出手段と、
前記補正量に応じた学習値を、前記補正量の算出周期よりも長い周期で算出し且つ更新する学習値更新手段と、
少なくとも前記補正量と前記学習値に基づき目標開度を算出する目標開度算出手段と、
前記目標開度算出手段により算出された目標開度に一致するよう、前記バルブの開度を制御するバルブ制御手段と、
を備え、
前記アイドル回転制御手段は、燃料噴射量変更時以外の通常時には、前記補正量と前記学習値に基づき前記目標開度算出手段による前記目標開度の算出を実行させ、燃料噴射量変更時には、前記補正量、前記学習値、および前記補正量と前記学習値の少なくとも一方を補正するための補正値に基づき、前記目標開度算出手段による前記目標開度の算出を実行させる
ことを特徴とする多気筒内燃機関の気筒間空燃比ばらつき異常検出装置。
【請求項２】
前記目標開度算出手段は、燃料噴射量変更時、前記補正量、前記学習値および前記補正値の和に基づき、前記目標開度を算出する
ことを特徴とする請求項１に記載の多気筒内燃機関の気筒間空燃比ばらつき異常検出装置。
【請求項３】
前記補正値は、予め定められた一定値からなる
ことを特徴とする請求項１または２に記載の多気筒内燃機関の気筒間空燃比ばらつき異常検出装置。
【請求項４】
前記補正値は、燃料噴射量変更時の燃料噴射量変更量に応じて設定される
ことを特徴とする請求項１または２に記載の多気筒内燃機関の気筒間空燃比ばらつき異常検出装置。
【請求項５】
前記補正値は、燃料噴射量変更時の前記差分に応じて更新される
ことを特徴とする請求項１〜４のいずれか一項に記載の多気筒内燃機関の気筒間空燃比ばらつき異常検出装置。
【請求項６】
前記アイドル回転制御手段は、燃料噴射量変更時、前記学習値更新手段による前記学習値の更新を停止させる
ことを特徴とする請求項１〜５のいずれか一項に記載の多気筒内燃機関の気筒間空燃比ばらつき異常検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多気筒内燃機関の気筒間空燃比のばらつき異常を検出するための装置に係り、特に、多気筒内燃機関において気筒間の空燃比が比較的大きくばらついていることを検出する装置に関する。
【背景技術】
【０００２】
一般に、触媒を利用した排気浄化システムを備える内燃機関では、排気中有害成分の触媒による浄化を高効率で行うため、内燃機関で燃焼される混合気の空気と燃料との混合割合、すなわち空燃比のコントロールが欠かせない。こうした空燃比の制御を行うため、内燃機関の排気通路に空燃比センサを設け、これによって検出された空燃比を所定の目標空燃比に一致させるようフィードバック制御を実施している。
【０００３】
一方、多気筒内燃機関においては、通常全気筒に対し同一の制御量を用いて空燃比制御を行うため、空燃比制御を実行したとしても実際の空燃比が気筒間でばらつくことがある。このときばらつきの程度が小さければ、空燃比フィードバック制御で吸収可能であり、また触媒でも排気中有害成分を浄化処理可能なので、排気エミッションに影響を与えず、特に問題とならない。
【０００４】
しかし、例えば一部の気筒の燃料噴射系が故障するなどして、気筒間の空燃比が大きくばらつくと、排気エミッションを悪化させてしまい、問題となる。このような排気エミッションを悪化させる程の大きな空燃比ばらつきは異常として検出するのが望ましい。特に自動車用内燃機関の場合、排気エミッションが悪化した車両の走行を未然に防止するため、気筒間空燃比ばらつき異常を車載状態で検出することが要請されている（所謂ＯＢＤ；On-Board Diagnostics）。
【０００５】
例えば特許文献１に記載の装置においては、いずれかの気筒に空燃比異常が生じていると判断した場合に、空燃比異常となっている気筒が失火するまでの間、各気筒へ噴射する燃料の噴射時間を所定時間ずつ短縮させ、これによって異常気筒を特定している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１１２２４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、いずれかの気筒に空燃比異常が生じている場合、当該気筒の燃料噴射量を強制的に変更（増量または減量）すると、当該気筒の回転変動が顕著に大きくなる。よってこのような回転変動の増大を検出することで、空燃比ばらつき異常を検出することが可能である。
【０００８】
そしてこのばらつき異常検出は、内燃機関のアイドル運転時に行うことが好ましい。燃料噴射量の変更に伴う回転変動の増大が出やすいからである。
【０００９】
一方、内燃機関においては、アイドル運転時に実際の回転数を所定の目標アイドル回転数に一致させるよう制御するアイドル回転制御が実行される。このアイドル回転制御においては、実際の回転数と目標アイドル回転数との差分に応じた補正量を算出すると共に、補正量に応じた学習値を算出且つ更新し、補正量と学習値に基づき目標開度を算出し、算出された目標開度に一致するよう、吸入空気量を調節するためのバルブの開度を制御している。
【００１０】
内燃機関のアイドル運転時にばらつき異常検出を行い、且つアイドル回転制御を行うようにすると、次のような問題が生じる。例えばばらつき異常検出の実行に伴って燃料噴射量を強制的に増量した場合、トルクが増加するので、内燃機関の実際の回転数が目標アイドル回転数より上昇する。するとこの上昇分を無くすようにアイドル回転制御が働き、実際の回転数を下げるような補正量が算出される。すると学習値も、実際の回転数を下げるような値に更新される。燃料噴射量の強制増量が終了すると、トルク増加分が無くなることから、実際の回転数が目標アイドル回転数より一時的に低下してしまう。これにより実際の回転数が過度に低くなって振動の悪化や最悪エンストを招く虞がある。
【００１１】
他方、ばらつき異常検出の実行に伴って燃料噴射量を強制的に減量した場合には逆の現象が起こる。すなわち、燃料噴射量減量終了直後に実際の回転数が目標アイドル回転数より一時的に上昇し、実際のアイドル回転数が過度に高くなって違和感を生じさせる虞がある。
【００１２】
そこで本発明は以上の事情に鑑みて創案され、その目的は、燃料噴射量変更終了直後に実際の回転数が目標アイドル回転数からずれることを抑制し得る多気筒内燃機関の気筒間空燃比ばらつき異常検出装置を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の一の態様によれば、
内燃機関のアイドル運転時に所定の対象気筒の燃料噴射量を変更し、少なくとも当該変更後の前記対象気筒の回転変動に基づき、気筒間空燃比ばらつき異常を検出する異常検出手段と、
前記アイドル運転時に前記内燃機関の実際の回転数を所定の目標アイドル回転数に一致させるよう制御するアイドル回転制御手段と、を備え、
前記アイドル回転制御手段は、
前記内燃機関の吸入空気量を調節するためのバルブと、
前記実際の回転数と前記目標アイドル回転数との差分に基づいて補正量を算出する補正量算出手段と、
前記補正量に応じた学習値を、前記補正量の算出周期よりも長い周期で算出し且つ更新する学習値更新手段と、
少なくとも前記補正量と前記学習値に基づき目標開度を算出する目標開度算出手段と、
前記目標開度算出手段により算出された目標開度に一致するよう、前記バルブの開度を制御するバルブ制御手段と、
を備え、
前記アイドル回転制御手段は、燃料噴射量変更時以外の通常時には、前記補正量と前記学習値に基づき前記目標開度算出手段による前記目標開度の算出を実行させ、燃料噴射量変更時には、前記補正量、前記学習値、および前記補正量と前記学習値の少なくとも一方を補正するための補正値に基づき、前記目標開度算出手段による前記目標開度の算出を実行させる
ことを特徴とする多気筒内燃機関の気筒間空燃比ばらつき異常検出装置が提供される。
【００１４】
好ましくは、前記目標開度算出手段は、燃料噴射量変更時、前記補正量、前記学習値および前記補正値の和に基づき、前記目標開度を算出する。
【００１５】
好ましくは、前記補正値は、予め定められた一定値からなる。
【００１６】
好ましくは、前記補正値は、燃料噴射量変更時の燃料噴射量変更量に応じて設定される。
【００１７】
好ましくは、前記補正値は、燃料噴射量変更時の前記差分に応じて更新される。
【００１８】
好ましくは、前記アイドル回転制御手段は、燃料噴射量変更時、前記学習値更新手段による前記学習値の更新を停止させる。
【発明の効果】
【００１９】
本発明によれば、燃料噴射量変更終了直後に実際の回転数が目標アイドル回転数からずれることを抑制できるという、優れた効果が発揮される。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係る内燃機関の概略図である。
【図２】触媒前センサおよび触媒後センサの出力特性を示すグラフである。
【図３】回転変動を表す値を説明するためのタイムチャートである。
【図４】回転変動を表す別の値を説明するためのタイムチャートである。
【図５】燃料噴射量を増量または減量したときの回転変動の変化を示すグラフである。
【図６】燃料噴射量の増量と、増量前後の回転変動の変化との様子を示す図である。
【図７】アイドル回転制御のルーチンを示すフローチャートである。
【図８】比較例のタイムチャートである。
【図９】本実施形態の第１実施例のタイムチャートである。
【図１０】本実施形態の第２実施例のタイムチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態を添付図面に基づき説明する。
【００２２】
図１に本実施形態に係る内燃機関を概略的に示す。図示される内燃機関（エンジン）１は自動車に搭載されたＶ型８気筒火花点火式内燃機関（ガソリンエンジン）である。エンジン１は第１のバンクＢ１と第２のバンクＢ２とを有し、第１のバンクＢ１には奇数番気筒すなわち＃１，＃３，＃５，＃７気筒が設けられ、第２のバンクＢ２には偶数番気筒すなわち＃２，＃４，＃６，＃８気筒が設けられている。＃１，＃３，＃５，＃７気筒が第１の気筒群をなし、＃２，＃４，＃６，＃８気筒が第２の気筒群をなす。
【００２３】
各気筒にインジェクタ（燃料噴射弁）２が設けられる。インジェクタ２は、対応気筒の吸気通路特に吸気ポート（図示せず）内に向けて燃料を噴射する。また各気筒には、筒内の混合気に点火するための点火プラグ１３が設けられる。
【００２４】
吸気を導入するための吸気通路７は、前記吸気ポートの他、集合部としてのサージタンク８と、各気筒の吸気ポートおよびサージタンク８を結ぶ複数の吸気マニホールド９と、サージタンク８の上流側の吸気管１０とを含む。吸気管１０には、上流側から順にエアフローメータ１１と電子制御式スロットルバルブ１２とが設けられている。エアフローメータ１１は吸気流量に応じた大きさの信号を出力する。
【００２５】
第１のバンクＢ１に対して第１の排気通路１４Ａが設けられ、第２のバンクＢ２に対して第２の排気通路１４Ｂが設けられる。これら第１および第２の排気通路１４Ａ，１４Ｂは下流触媒１９の上流側で合流されている。この合流位置より上流側の排気系の構成は両バンクで同一なので、ここでは第１のバンクＢ１側についてのみ説明し、第２のバンクＢ２側については図中同一符号を付して説明を省略する。
【００２６】
第１の排気通路１４Ａは、＃１，＃３，＃５，＃７の各気筒の排気ポート（図示せず）と、これら排気ポートの排気ガスを集合させる排気マニホールド１６と、排気マニホールド１６の下流側に設置された排気管１７とを含む。そして排気管１７には上流触媒１８が設けられている。上流触媒１８の上流側及び下流側（直前及び直後）にそれぞれ、排気ガスの空燃比を検出するための空燃比センサである触媒前センサ２０及び触媒後センサ２１が設置されている。このように、一方のバンクに属する複数の気筒（あるいは気筒群）に対して、上流触媒１８、触媒前センサ２０及び触媒後センサ２１が各一つずつ設けられている。
【００２７】
なお、第１および第２の排気通路１４Ａ，１４Ｂを合流させないで、これらに個別に下流触媒１９を設けることも可能である。
【００２８】
エンジン１には制御手段としての電子制御ユニット（以下ＥＣＵと称す）１００が設けられている。ＥＣＵ１００は、何れも図示されないＣＰＵ、ＲＯＭ、ＲＡＭ、入出力ポート、および記憶装置等を含むものである。ＥＣＵ１００には、前述のエアフローメータ１１、触媒前センサ２０、触媒後センサ２１のほか、エンジン１のクランク角を検出するためのクランク角センサ２２、アクセル開度を検出するためのアクセル開度センサ２３、エンジン冷却水の温度を検出するための水温センサ２４、その他の各種センサが図示されないＡ／Ｄ変換器等を介して電気的に接続されている。ＥＣＵ１００は、各種センサの検出値等に基づき、所望の出力が得られるように、インジェクタ２、点火プラグ１３、スロットルバルブ１２等を制御し、燃料噴射量、燃料噴射時期、点火時期、スロットル開度等を制御する。
【００２９】
スロットルバルブ１２にはスロットル開度センサ（図示せず）が設けられ、スロットル開度センサからの信号がＥＣＵ１００に送られる。ＥＣＵ１００は、通常、アクセル開度に応じて定まる開度に、スロットルバルブ１２の開度（スロットル開度）をフィードバック制御する。
【００３０】
またＥＣＵ１００は、エアフローメータ１１からの信号に基づき、単位時間当たりの吸入空気の量すなわち吸入空気量を検出する。そしてＥＣＵ１００は、検出したアクセル開度、スロットル開度および吸入空気量の少なくとも一つに基づき、エンジン１の負荷を検出する。
【００３１】
ＥＣＵ１００は、クランク角センサ２２からのクランクパルス信号に基づき、クランク角自体を検出すると共にエンジン１の回転数を検出する。ここで「回転数」とは単位時間当たりの回転数のことをいい、回転速度と同義である。本実施形態では１分間当たりの回転数ｒｐｍのことをいう。
【００３２】
触媒前センサ２０は所謂広域空燃比センサからなり、比較的広範囲に亘る空燃比を連続的に検出可能である。図２に触媒前センサ２０の出力特性を示す。図示するように、触媒前センサ２０は、検出した排気空燃比（触媒前空燃比Ａ／Ｆｆ）に比例した大きさの電圧信号Ｖｆを出力する。排気空燃比がストイキ（理論空燃比、例えばＡ／Ｆ＝１４．５）であるときの出力電圧はＶｒｅｆｆ（例えば約３．３Ｖ）である。
【００３３】
他方、触媒後センサ２１は所謂Ｏ２センサからなり、ストイキを境に出力値が急変する特性を持つ。図２に触媒後センサ２１の出力特性を示す。図示するように、排気空燃比（触媒後空燃比Ａ／Ｆｒ）がストイキであるときの出力電圧、すなわちストイキ相当値はＶｒｅｆｒ（例えば０．４５Ｖ）である。触媒後センサ２１の出力電圧は所定の範囲（例えば０〜１Ｖ）内で変化する。概して排気空燃比がストイキよりリーンのとき、触媒後センサの出力電圧Ｖｒはストイキ相当値Ｖｒｅｆｒより低くなり、排気空燃比がストイキよりリッチのとき、触媒後センサの出力電圧Ｖｒはストイキ相当値Ｖｒｅｆｒより高くなる。
【００３４】
上流触媒１８及び下流触媒１９は三元触媒からなり、それぞれに流入する排気ガスの空燃比Ａ／Ｆがストイキ近傍のときに排気中の有害成分であるＮＯｘ、ＨＣおよびＣＯを同時に浄化する。この三者を同時に高効率で浄化できる空燃比の幅（ウィンドウ）は比較的狭い。
【００３５】
そこで、エンジンの通常運転時、上流触媒１８に流入する排気ガスの空燃比をストイキ近傍に制御するための空燃比制御（ストイキ制御）がＥＣＵ１００により実行される。この空燃比制御は、触媒前センサ２０によって検出された排気空燃比が所定の目標空燃比であるストイキになるように混合気の空燃比（具体的には燃料噴射量）をフィードバック制御する主空燃比制御（主空燃比フィードバック制御）と、触媒後センサ２１によって検出された排気空燃比がストイキになるように混合気の空燃比（具体的には燃料噴射量）をフィードバック制御する補助空燃比制御（補助空燃比フィードバック制御）とからなる。
【００３６】
このように本実施形態において、空燃比の基準値はストイキであり、このストイキに相当する燃料噴射量（ストイキ相当量という）が燃料噴射量の基準値である。但し、空燃比および燃料噴射量の基準値は他の値とすることもできる。
【００３７】
空燃比制御はバンク単位で若しくはバンク毎に行われる。例えば第１のバンクＢ１側の触媒前センサ２０および触媒後センサ２１の検出値は、第１のバンクＢ１に属する＃１，＃３，＃５，＃７気筒の空燃比フィードバック制御にのみ用いられ、第２のバンクＢ２に属する＃２，＃４，＃６，＃８気筒の空燃比フィードバック制御には用いられない。逆も同様である。あたかも独立した直列４気筒エンジンが二つあるように、空燃比制御が実行される。また空燃比制御においては、同一バンクに属する各気筒に対し同一の制御量が一律に用いられる。
【００３８】
さて、例えば全気筒のうちの一部の気筒（特に１気筒）において、インジェクタ２の故障等が発生し、気筒間に空燃比のばらつき（インバランス：imbalance）が発生することがある。例えば第１のバンクＢ１について、インジェクタ２の閉弁不良により＃１気筒の燃料噴射量が他の＃３，＃５，＃７気筒の燃料噴射量よりも多くなり、＃１気筒の空燃比が他の＃３，＃５，＃７気筒の空燃比よりも大きくリッチ側にずれる場合である。
【００３９】
このときでも、前述の空燃比フィードバック制御により比較的大きな補正量を与えれば、触媒前センサ２０に供給されるトータルガス（合流後の排気ガス）の空燃比をストイキに制御できる場合がある。しかし、気筒別に見ると、＃１気筒がストイキより大きくリッチ、＃３，＃５，＃７気筒がストイキよりリーンであり、全体のバランスとしてストイキとなっているに過ぎず、エミッション上好ましくないことは明らかである。そこで本実施形態では、かかる気筒間空燃比ばらつき異常を検出する装置が装備されている。
【００４０】
ここで、気筒間空燃比のばらつき度合いを表す指標値としてインバランス率なる値を用いる。インバランス率とは、複数の気筒のうちある１気筒のみが燃料噴射量ズレを起こしている場合に、その燃料噴射量ズレを起こしている気筒（インバランス気筒）の燃料噴射量がどれくらいの割合で、燃料噴射量ズレを起こしていない気筒（バランス気筒）の燃料噴射量即ち基準噴射量からズレているかを示す値である。インバランス率をＩＢ（％）、インバランス気筒の燃料噴射量をＱｉｂ、バランス気筒の燃料噴射量即ち基準噴射量をＱｓとすると、ＩＢ＝（Ｑｉｂ−Ｑｓ）／Ｑｓ×１００で表される。インバランス率ＩＢが大きいほど、インバランス気筒のバランス気筒に対する燃料噴射量ズレが大きく、空燃比ばらつき度合いは大きい。
【００４１】
他方、本実施形態においては、所定の対象気筒の燃料噴射量をアクティブに若しくは強制的に変更（増量または減量）し、少なくとも変更後の対象気筒の回転変動に基づき、ばらつき異常を検出する。
【００４２】
まず、回転変動について説明する。回転変動とは、エンジン回転速度あるいはクランクシャフト回転速度の変化をいい、例えば次に述べるような値で表すことができる。本実施形態においては気筒毎の回転変動が検出可能である。
【００４３】
図３には回転変動を説明するためのタイムチャートを示す。図示例は直列４気筒エンジンの例であるが、本実施形態のようなＶ型８気筒エンジンにも適用可能であることが理解されよう。点火順序は＃１，＃３，＃４，＃２気筒の順である。
【００４４】
図３において、（Ａ）はエンジンのクランク角（°ＣＡ）を示す。１エンジンサイクルは７２０（°ＣＡ）であり、図には逐次的に検出される複数サイクル分のクランク角が鋸歯状に示されている。
【００４５】
（Ｂ）は、クランクシャフトが所定角度だけ回転するのに要した時間、すなわち回転時間Ｔ（ｓ）を示す。ここでは所定角度が３０（°ＣＡ）であるが、他の値（例えば１０（°ＣＡ））としてもよい。回転時間Ｔが長いほどエンジン回転速度は遅く、逆に回転時間Ｔが短いほどエンジン回転速度は速い。この回転時間Ｔはクランク角センサ２２の出力に基づきＥＣＵ１００により検出される。
【００４６】
（Ｃ）は、後に説明する回転時間差ΔＴを示す。図中、「正常」とは、いずれの気筒にも空燃比ずれが生じていない正常な場合を示し、「リーンずれ異常」とは、＃１気筒のみに例えばインバランス率ＩＢ＝−３０（％）のリーンずれが生じている異常な場合を示す。リーンずれ異常は例えばインジェクタの噴孔詰まりや開弁不良により生じ得る。
【００４７】
まず、各気筒の同一タイミングにおける回転時間ＴがＥＣＵにより検出される。ここでは各気筒の圧縮上死点（ＴＤＣ）のタイミングにおける回転時間Ｔが検出される。この回転時間Ｔが検出されるタイミングを検出タイミングという。
【００４８】
次いで、検出タイミング毎に、当該検出タイミングにおける回転時間Ｔ２と、直前の検出タイミングにおける回転時間Ｔ１との差（Ｔ２−Ｔ１）がＥＣＵにより算出される。この差が（Ｃ）に示す回転時間差ΔＴであり、ΔＴ＝Ｔ２−Ｔ１である。
【００４９】
通常、ある気筒のクランク角がＴＤＣを超えた後の燃焼行程では回転速度が上昇するため回転時間Ｔが低下し、その後の次気筒の圧縮行程では回転速度が低下するため回転時間Ｔが増大する。
【００５０】
しかしながら、（Ｂ）に示すように＃１気筒がリーンずれ異常の場合、＃１気筒を点火させても十分なトルクが得られず、回転速度が上昇しづらいので、その影響で＃３気筒ＴＤＣにおける回転時間Ｔは大きくなっている。それ故、＃３気筒ＴＤＣにおける回転時間差ΔＴは、（Ｃ）に示すように大きな正の値となる。この＃３気筒ＴＤＣにおける回転時間および回転時間差をそれぞれ＃１気筒の回転時間および回転時間差とし、それぞれＴ1およびΔＴ1で表す。他の気筒についても同様である。
【００５１】
次に、＃３気筒は正常であるので、＃３気筒を点火させたときには回転速度が急峻に上昇する。これにより次の＃４気筒ＴＤＣのタイミングでは、＃３気筒ＴＤＣのときに比べ回転時間Ｔが若干低下しているに過ぎない。それ故、＃４気筒ＴＤＣにおいて検出された＃３気筒の回転時間差ΔＴ3は、（Ｃ）に示すように小さな負の値となる。このようにある気筒の回転時間差ΔＴが、次点火気筒ＴＤＣ毎に検出される。
【００５２】
以降の＃２気筒ＴＤＣおよび＃１気筒ＴＤＣにおいても＃４気筒ＴＤＣのときと同様の傾向が見られ、両タイミングにおいて検出された＃４気筒の回転時間差ΔＴ4および＃２気筒の回転時間差ΔＴ2はともに小さな負の値となっている。以上の特性が１エンジンサイクル毎に繰り返される。
【００５３】
このように、各気筒の回転時間差ΔＴは、各気筒の回転変動を表す値であり、各気筒の空燃比ずれ量に相関した値であることが分かる。そこで各気筒の回転時間差ΔＴを各気筒の回転変動の指標値として用いることができる。各気筒の空燃比ずれ量が大きいほど、各気筒の回転変動は大きくなり、各気筒の回転時間差ΔＴは大きくなる。
【００５４】
他方、図３（Ｃ）に示すように、正常の場合には回転時間差ΔＴが常時ゼロ付近である。
【００５５】
図３の例ではリーンずれ異常の場合を示したが、逆のリッチずれ異常、すなわち１気筒のみに大きなリッチずれが生じている場合にも、同様の傾向がある。大きなリッチずれが生じた場合、点火しても燃料過多のため燃焼が不十分となり、十分なトルクが得られず、回転変動が大きくなるからである。
【００５６】
次に、図４を参照して、回転変動を表す別の値を説明する。（Ａ）は図３（Ａ）と同様にエンジンのクランク角（°ＣＡ）を示す。
【００５７】
（Ｂ）は、前記回転時間Ｔの逆数である角速度ω（ｒａｄ／ｓ）を示す。ω＝１／Ｔである。当然ながら、角速度ωが大きいほどエンジン回転速度は速く、角速度ωが小さいほどエンジン回転速度は遅い。角速度ωの波形は、回転時間Ｔの波形を上下反転した形となる。
【００５８】
（Ｃ）は、前記回転時間差ΔＴと同様、角速度ωの差である角速度差Δωを示す。角速度差Δωの波形も、回転時間差ΔＴの波形を上下反転した形となる。図中の「正常」および「リーンずれ異常」については図３と同様である。
【００５９】
まず、各気筒の同一タイミングにおける角速度ωがＥＣＵにより検出される。ここでも各気筒の圧縮上死点（ＴＤＣ）のタイミングにおける角速度ωが検出される。角速度ωは、１を前記回転時間Ｔで除することにより算出される。
【００６０】
次いで、検出タイミング毎に、当該検出タイミングにおける角速度ω２と、直前の検出タイミングにおける角速度ω１との差（ω２−ω１）がＥＣＵにより算出される。この差が（Ｃ）に示す角速度差Δωであり、Δω＝ω２−ω１である。
【００６１】
通常、ある気筒のクランク角がＴＤＣを超えた後の燃焼行程では回転速度が上昇するため角速度ωが上昇し、その後の次気筒の圧縮行程では回転速度が低下するため角速度ωが低下する。
【００６２】
しかしながら、（Ｂ）に示すように＃１気筒がリーンずれ異常の場合、＃１気筒を点火させても十分なトルクが得られず、回転速度が上昇しづらいので、その影響で＃３気筒ＴＤＣにおける角速度ωは小さくなっている。それ故、＃３気筒ＴＤＣにおける角速度差Δωは、（Ｃ）に示すように大きな負の値となる。この＃３気筒ＴＤＣにおける角速度および角速度差をそれぞれ＃１気筒の角速度および角速度差とし、それぞれω1およびΔω1で表す。他の気筒についても同様である。
【００６３】
次に、＃３気筒は正常であるので、＃３気筒を点火させたときには回転速度が急峻に上昇する。これにより次の＃４気筒ＴＤＣのタイミングでは、＃３気筒ＴＤＣのときに比べ角速度ωが若干上昇するに過ぎない。それ故、＃４気筒ＴＤＣにおいて検出された＃３気筒の角速度差Δω3は、（Ｃ）に示すように小さな正の値となる。このようにある気筒の角速度差Δωが、次点火気筒ＴＤＣ毎に検出される。
【００６４】
以降の＃２気筒ＴＤＣおよび＃１気筒ＴＤＣにおいても＃４気筒ＴＤＣのときと同様の傾向が見られ、両タイミングにおいて検出された＃４気筒の角速度差Δω4および＃２気筒の角速度差Δω2はともに小さな正の値となっている。以上の特性が１エンジンサイクル毎に繰り返される。
【００６５】
このように、各気筒の角速度差Δωは、各気筒の回転変動を表す値であり、各気筒の空燃比ずれ量に相関した値であることが分かる。そこで各気筒の角速度差Δωを各気筒の回転変動の指標値として用いることができる。各気筒の空燃比ずれ量が大きいほど、各気筒の回転変動は大きくなり、各気筒の角速度差Δωは小さくなる（マイナス方向に大きくなる）。
【００６６】
他方、図４（Ｃ）に示すように、正常の場合には角速度差Δωが常時ゼロ付近である。
【００６７】
逆のリッチずれ異常の場合にも同様の傾向がある点は上述した通りである。
【００６８】
次に、ある１気筒の燃料噴射量をアクティブに増量または減量したときの回転変動の変化を、図５を参照して説明する。
【００６９】
図５において、横軸はインバランス率ＩＢを示し、縦軸は回転変動の指標値としての角速度差Δωを示す。ここでは、全８気筒のうちある１気筒のみのインバランス率ＩＢを変化させ、このときの当該１気筒のインバランス率ＩＢと、当該１気筒の角速度差Δωとの関係を線ａで示す。当該１気筒をアクティブ対象気筒という。他の気筒は全てバランス気筒であり、基準噴射量Ｑｓとしてストイキ相当量を噴射しているものとする。
【００７０】
横軸において、ＩＢ＝０（％）とは、アクティブ対象気筒のインバランス率ＩＢが０（％）で、アクティブ対象気筒がストイキ相当量を噴射している正常な場合を意味する。このときのデータが線ａ上のプロットｂで示される。このＩＢ＝０（％）の状態から図中左側に移動すると、インバランス率ＩＢがプラス方向に増加し、燃料噴射量としては過多すなわちリッチな状態となる。逆に、ＩＢ＝０（％）から図中右側に移動すると、インバランス率ＩＢがマイナス方向に増加し、燃料噴射量としては過少すなわちリーンな状態となる。
【００７１】
特性線ａから分かるように、アクティブ対象気筒のインバランス率ＩＢが０（％）からプラス方向に増加してもマイナス方向に増加しても、アクティブ対象気筒の回転変動は大きくなり、アクティブ対象気筒の角速度差Δωが０付近からマイナス方向に大きくなる傾向にある。そして、インバランス率ＩＢが０（％）から離れるほど、特性線ａの傾きが急になり、インバランス率ＩＢの変化に対する角速度差Δωの変化は大きくなる傾向にある。
【００７２】
ここで、矢印ｃで示すように、アクティブ対象気筒の燃料噴射量を、ストイキ相当量（ＩＢ＝０（％））から所定量、強制的に増量したとする。図示例ではインバランス率で約４０（％）相当の増量がなされている。このとき、ＩＢ＝０（％）の近辺では特性線ａの傾きが緩やかであることから、増量後においても角速度差Δωは増量前とほぼ変わらず、増量前後の角速度差Δωの差は極小さい。
【００７３】
他方、プロットｄで示すように、アクティブ対象気筒において既にリッチずれが生じており、そのインバランス率ＩＢが比較的大きなプラス側の値になっているときを考える。図示例ではインバランス率で約５０（％）のリッチずれが生じている。この状態から矢印ｅで示すように、アクティブ対象気筒の燃料噴射量を同一量、強制的に増量したとすると、この領域では特性線ａの傾きが急であることから、増量後の角速度差Δωは増量前より大きくマイナス側に変化し、増量前後の角速度差Δωの差は大きくなる。すなわち燃料噴射量の増量により、アクティブ対象気筒の回転変動は大きくなる。
【００７４】
よって、アクティブ対象気筒の燃料噴射量を強制的に所定量増量したときの少なくとも増量後のアクティブ対象気筒の角速度差Δωに基づき、ばらつき異常を検出することが可能である。
【００７５】
すなわち、増量後の角速度差Δωが図示するように所定の負の異常判定値αより小さい場合（Δω＜α）には、ばらつき異常有りと判定し、且つアクティブ対象気筒を異常気筒と特定することができる。逆に、増量後の角速度差Δωが異常判定値αより小さくない場合（Δω≧α）には、少なくともアクティブ対象気筒を正常と判定することができる。
【００７６】
あるいは代替的に、図示するように、増量前後の角速度差Δωの差ｄΔωに基づき、ばらつき異常を検出することも可能である。この場合、増量前の角速度差をΔω１、増量後の角速度差をΔω２とすると、両者の差ｄΔωをｄΔω＝Δω１−Δω２と定義することができる。そして差ｄΔωが所定の正の異常判定値β１を超えた場合（ｄΔω＞β１）、ばらつき異常有りと判定し、且つアクティブ対象気筒を異常気筒と特定することができる。逆に、差ｄΔωが異常判定値β１を超えない場合（ｄΔω≦β１）、少なくともアクティブ対象気筒を正常と判定することができる。
【００７７】
インバランス率が負の領域で強制減量を行ったときも同様のことが言える。矢印ｆで示すように、アクティブ対象気筒の燃料噴射量をストイキ相当量（ＩＢ＝０（％））から所定量、強制的に減量したとする。図示例ではインバランス率で約１０（％）相当の減量がなされている。増量量に比べ減量量が少ないのは、リーンずれ異常気筒に対しあまりに多くの減量を行ってしまうと失火してしまうからである。このとき、特性線ａの傾きが比較的緩やかであることから、減量後の角速度差Δωは減量前より若干小さくなっているだけで、増量前後の角速度差Δωの差は小さい。
【００７８】
他方、プロットｇで示すように、アクティブ対象気筒において既にリーンずれが生じており、そのインバランス率ＩＢが比較的大きなマイナス側の値になっているときを考える。図示例ではインバランス率で約−２０（％）のリーンずれが生じている。この状態から矢印ｈで示すように、アクティブ対象気筒の燃料噴射量を同一量、強制的に減量したとすると、この領域では特性線ａの傾きが比較的急であることから、減量後の角速度差Δωは減量前より大きくマイナス側に変化し、減量前後の角速度差Δωの差は大きくなる。すなわち燃料噴射量の減量により、アクティブ対象気筒の回転変動は大きくなる。
【００７９】
よって、アクティブ対象気筒の燃料噴射量を強制的に所定量減量したときの少なくとも減量後のアクティブ対象気筒の角速度差Δωに基づき、ばらつき異常を検出することが可能である。
【００８０】
すなわち、減量後の角速度差Δωが図示するように所定の負の異常判定値αより小さい場合（Δω＜α）には、ばらつき異常有りと判定し、且つアクティブ対象気筒を異常気筒と特定することができる。逆に、減量後の角速度差Δωが異常判定値αより小さくない場合（Δω≧α）には、少なくともアクティブ対象気筒を正常と判定することができる。
【００８１】
あるいは代替的に、図示するように、減量前後の角速度差Δωの差ｄΔωに基づき、ばらつき異常を検出することも可能である。この場合も両者の差ｄΔωをｄΔω＝Δω１−Δω２と定義することができる。差ｄΔωが所定の正の異常判定値β２を超えた場合（ｄΔω＞β２）、ばらつき異常有りと判定し、且つアクティブ対象気筒を異常気筒と特定することができる。逆に、差ｄΔωが異常判定値β２を超えない場合（ｄΔω≦β２）、少なくともアクティブ対象気筒を正常と判定することができる。
【００８２】
ここでは増量量が減量量より顕著に多いため、増量時の異常判定値β１を減量時の異常判定値β２より大きくしている。しかしながら、両異常判定値は、特性線ａの特性や増量量と減量量のバランス等を考慮して任意に定めることができる。両異常判定値を同じ値とすることも可能である。
【００８３】
各気筒の回転変動の指標値として回転時間差ΔＴを用いた場合にも、同様の方法で異常検出および異常気筒特定が可能であることが理解されるであろう。また、各気筒の回転変動の指標値としては、上述した以外の他の値を用いることも可能である。
【００８４】
図６には、全８気筒についての燃料噴射量の増量と、増量前後の回転変動の変化との様子を示す。上段が増量前、下段が増量後である。左右方向の左端列に示されているように、増量の方法としては、全気筒一律且つ同時に同一量増量している。すなわちここでは所定の対象気筒が全気筒である。増量前は全気筒のインジェクタ２に対し、ストイキ相当量の燃料を噴射するよう開弁指令がなされており、増量後は全気筒のインジェクタ２に対し、ストイキ相当量より所定量多い燃料を噴射するよう開弁指令がなされている。
【００８５】
この増量の仕方は、全気筒同時に行う方法の他、任意数の気筒ずつ順番に且つ交互に行う方法がある。例えば１気筒ずつ増量したり、２気筒ずつ増量したり、４気筒ずつ増量したりする方法がある。増量を行う対象気筒の数および気筒番号は任意に設定できる。
【００８６】
対象気筒数が多いほど、全増量時間を短縮できるメリットがあり、排気エミッションが悪化するデメリットがある。逆に対象気筒数が少ないほど、排気エミッションの悪化を抑制できるメリットがあるが、全増量時間が長期化するデメリットがある。
【００８７】
各気筒の回転変動の指標値として、図５と同様、角速度差Δωを用いている。
【００８８】
例えば左右方向の中央列に示されている正常時、すなわちいずれの気筒においても空燃比ずれ異常が生じていない場合だと、増量前では全気筒の角速度差Δωがほぼ等しく０付近にあり、全気筒の回転変動が少ない。また増量後でも全気筒の角速度差Δωがほぼ等しく若干マイナス方向に大きくなるだけであり、全気筒の回転変動はそれ程大きくならない。故に、増量前後の角速度差の差ｄΔωは小さい。
【００８９】
しかしながら、左右方向の右端列に示されている異常時だと、正常時とは異なる挙動を示す。この異常時では、＃８気筒にのみインバランス率で５０％相当のリッチずれ異常が生じており、＃８気筒のみが異常気筒である。この場合、増量前では、＃８気筒以外の残部気筒の角速度差Δωはほぼ等しく０付近にあるが、＃８気筒の角速度差Δωは残部気筒の角速度差Δωより若干マイナス方向に大きい。
【００９０】
しかしながらそれでも、＃８気筒の角速度差Δωと残部気筒の角速度差Δωとの間にはそれ程差がない。よって増量前の角速度差Δωによっては、異常検出と異常気筒特定を十分な精度で行うことができない。
【００９１】
他方、増量後だと増量前に比べて、残部気筒の角速度差Δωはほぼ等しく若干マイナス方向に変化するだけであるが、＃８気筒の角速度差Δωは大きくマイナス方向に変化する。よって＃８気筒の増量前後の角速度差の差ｄΔωは、残部気筒のそれより顕著に大きくなる。よってこの違いを利用し、異常検出と異常気筒特定を十分な精度で行うことができる。
【００９２】
この場合、＃８気筒の差ｄΔωのみが前記異常判定値β１より大きくなるので、＃８気筒にリッチずれ異常があることを検出できる。
【００９３】
燃料噴射量を強制減量して何れかの気筒のリーンずれ異常を検出する場合にも、同様の方法を採用できることが理解されるであろう。
【００９４】
以上が本実施形態におけるばらつき異常検出の基本である。以下、特に言及しない限り、各気筒の回転変動の指標値として角速度差Δωを用いるものとする。
【００９５】
次に、本実施形態におけるばらつき異常検出の主な特徴を述べる。
【００９６】
前述したように、ばらつき異常検出は、エンジンのアイドル運転時に行うことが好ましい。アイドル運転時には元々のエンジン出力トルクが小さく、燃料噴射量の変更に伴う回転変動の増大が出やすいからである。本実施形態ではエンジンの暖機後で且つアイドル運転時（所謂ホットアイドル時）に異常検出を実行する。なおエンジン暖機後か否かは、水温センサ２４で検出された水温が所定値（例えば７５（℃））以上であるか否かにより判断される。
【００９７】
一方、本実施形態のエンジンにおいては、アイドル運転時に実際の回転数を所定の目標アイドル回転数に一致させるよう制御するアイドル回転制御がＥＣＵ１００により実行される。ここで実際の回転数はクランク角センサ２２の出力に基づき計算ないし検出された値であり、目標アイドル回転数は予めＥＣＵ１００に記憶された値である。本実施形態における目標アイドル回転数は６００（ｒｐｍ）であるが、この値は任意に定め得る。
【００９８】
アイドル回転制御においては、実際の回転数を目標アイドル回転数に一致させるよう、スロットルバルブ１２を制御して吸入空気量を調節する。スロットルバルブ１２はエンジンの吸入空気量を調節するためのバルブをなす。但しこのバルブには任意のものを使用でき、例えばスロットルバルブ１２をバイパスするバイパス路に設置されたアイドル回転制御専用のバルブ（所謂ＩＳＣバルブ）を使用してもよい。
【００９９】
アイドル回転制御においては、実際の回転数と目標アイドル回転数との差分に応じた補正量を算出すると共に、補正量に応じた学習値を算出且つ更新し、補正量と学習値に基づき目標開度を算出し、算出された目標開度に一致するようスロットルバルブの開度を制御している。
【０１００】
より詳細に述べると、ＥＣＵ１００は図７に示すようなルーチンを比較的短い所定の第１周期毎に繰り返し実行することにより、アイドル回転制御を実行する。第１周期は例えば１６（ｍｓｅｃ）である。
【０１０１】
図示するように、ステップＳ１０１では、検出された実際の回転数Ｎｅｒが取得される。
【０１０２】
ステップＳ１０２では、実際の回転数Ｎｅｒと目標アイドル回転数Ｎｅｔとの差分ΔＮ＝Ｎｅｔ−Ｎｅｒが算出される。
【０１０３】
ステップＳ１０３では、差分ΔＮに対応した補正量Δθが図示しないマップ（関数でもよい。以下同様）から算出される。この補正量Δθは、例えば公知のＰＩＤフィードバック制御の手法に基づき算出される。
【０１０４】
ステップＳ１０４では、補正量Δθに応じて別途算出、更新される学習値θｇの値が取得される。
【０１０５】
ステップＳ１０５では、補正量Δθと学習値θｇに基づき、スロットルバルブ１２の目標開度θｔが算出される。目標開度θｔは補正量Δθと学習値θｇの和からなり、すなわちθｔ＝Δθ＋θｇにより目標開度θｔが算出される。
【０１０６】
ステップＳ１０６では、算出された目標開度θｔに一致するようスロットルバルブ１２の開度が制御される。
【０１０７】
他方、ＥＣＵ１００は、第１周期より長い所定の第２周期毎に、図示しない別ルーチンにより、学習値θｇを算出且つ更新する。この学習値θｇは、エンジン個体差や経年変化（例えばスロットルバルブ周りへのデポジット堆積）によるバラツキを吸収するための値であり、アイドル運転時におけるスロットルバルブ開度の基準をなす値である。学習値θｇは、補正量Δθの変化を反映するよう、補正量Δθの変化に遅れて追従するように変化する。補正量Δθが第１周期毎に比較的速い速度でリアルタイムに算出、更新されるのに対し、学習値θｇはより遅い第２周期毎にロングタイムで算出、更新される。学習値θｇは、言い換えると、目標アイドル回転数Ｎｅｔに対する実際の回転数Ｎｅｒの定常的なズレ分を反映ないし補償するような値である。
【０１０８】
さて、エンジンのアイドル運転時にばらつき異常検出を行い、且つアイドル回転制御を行うようにすると、次のような問題が生じる。図８には本発明を適用しない比較例を示す。
【０１０９】
図８において、（Ａ）は、ばらつき異常検出における燃料噴射量増量の実行・停止に応じてオン・オフされる増量フラグの状態を示す。（Ｂ）はエンジン回転数Ｎｅを示し、破線は目標アイドル回転数Ｎｅｔ、実線は実際の回転数Ｎｅｒを示す。
【０１１０】
（Ｃ）は補正量Δθを示す。Δθ＝０はスロットルバルブ開度を補正しないような値であり、Δθ＞０はスロットルバルブ開度を開弁側に補正するような値であり、Δθ＜０はスロットルバルブ開度を閉弁側に補正するような値である。なお補正量は学習値θｇに対する乗算項としてもよく、この場合、Δθ＝０がΔθ＝１に対応し、Δθ＞０がΔθ＞１に対応し、Δθ＜０がΔθ＜１に対応する。
【０１１１】
（Ｄ）は学習値θｇを示し、（Ｅ）は補正量Δθと学習値θｇの和である目標開度θｔを示す。
【０１１２】
図示例において、増量フラグがオンとなる（すなわち燃料噴射量増量が開始される）時刻ｔ１より前では、実際の回転数Ｎｅｒと目標アイドル回転数Ｎｅｔとの差分ΔＮがほぼゼロであることから、補正量Δθもほぼゼロとなっている。そして学習値θｇおよび目標開度θｔはそれぞれθｇ０およびθｔ０という値になっている。
【０１１３】
そして時刻ｔ１で増量フラグがオンとなる（すなわち燃料噴射量増量が開始される）と、アクティブ対象気筒の燃料噴射量が強制的に増量されることから、エンジン出力トルクが増加し、実際の回転数Ｎｅｒが目標アイドル回転数Ｎｅｔよりも上昇する。すなわち実際の回転数Ｎｅｒが目標アイドル回転数Ｎｅｔからずれる。
【０１１４】
これにより差分ΔＮ＝Ｎｅｔ−Ｎｅｒが負の値となり、スロットルバルブ開度を閉弁側に補正するような負の補正量Δθが算出される。一方、学習値θｇの更新速度が遅いことから、学習値θｇは補正量Δθの変化に対してより緩慢に、初期値θｇ０からより小さな閉弁側の値へと更新されていく。学習値θｇの減少につれ補正量Δθはプラス側に移動し、補正量Δθの絶対値は少なくなる。言わば学習値θｇが補正量Δθを溜め込むような状態となる。これら補正量Δθと学習値θｇの協働作用により、目標開度θｔは初期値θｔ０からより小さな閉弁側の値θｔ１へと変化する。
【０１１５】
図示例では、実際の回転数Ｎｅｒが目標アイドル回転数Ｎｅｔに収束する時刻ｔ２において、補正量Δθがほぼゼロとなり、学習値θｇがθｇ１という値に収束し、目標開度θｔがθｔ１という値に収束している。しかしながらこれらのタイミングは異なることもある。
【０１１６】
その後、増量フラグがオフとなる（すなわち燃料噴射量増量が終了する）時刻ｔ３まで、この状態が継続する。
【０１１７】
燃料噴射量増量が終了すると、増量により増加していた分のエンジン出力トルクがなくなり、実際の回転数Ｎｅｒが目標アイドル回転数Ｎｅｔよりも低下してしまう。
【０１１８】
この回転低下時には、燃料噴射量増量開始直後の回転上昇時とは逆の制御が働く。すなわち、差分ΔＮが正の値となり、スロットルバルブ開度を開弁側に補正するような正の補正量Δθが算出される。一方、学習値θｇは補正量Δθの変化に対してより緩慢に、θｇ１からより大きな開弁側の値へと更新されていく。学習値θｇの増大につれ補正量Δθはマイナス側に移動し、補正量Δθの絶対値は少なくなる。言わば学習値θｇが補正量Δθを吐き出すような状態となる。これら補正量Δθと学習値θｇの協働作用により、目標開度θｔは元の初期値θｇ０へと復帰していく。
【０１１９】
図示例では、実際の回転数Ｎｅｒが目標アイドル回転数Ｎｅｔに収束する時刻ｔ４において、補正量Δθがほぼゼロとなり、学習値θｇが元の初期値θｇ０に復帰し、目標開度θｔが元の初期値θｔ０に復帰している。しかしながらこれらのタイミングは異なることもある。
【０１２０】
このように、かかる比較例においては、燃料噴射量増量終了直後に実際の回転数Ｎｅｒが目標アイドル回転数Ｎｅｔよりも低下してしまうので、実際の回転数Ｎｅｒが過度に低くなって振動の悪化や最悪エンストを招く虞がある。また、ばらつき異常検出の途中で例えばアクセルペダルが踏み込まれ、異常検出が中止された場合には、通常より閉弁側の学習値θｇ１が元の値θｇ０に復帰せずそのまま残ってしまう。すると、次にアイドル運転に移行したとき、前記同様、実際の回転数Ｎｅｒが目標アイドル回転数Ｎｅｔよりも低下し、振動の悪化や最悪エンストを招く虞がある。
【０１２１】
また、そもそも燃料噴射量増量中に更新された学習値θｇは、増量時以外の通常の運転状態とは異なる運転状態で更新された値であり、通常の運転状態に反映させるべきではない。通常の運転状態から見れば誤学習された値とも言える。
【０１２２】
ばらつき異常検出の実行に伴って燃料噴射量を強制的に減量した場合には、逆の現象が起こることが容易に理解されるであろう。すなわち、燃料噴射量減量開始直後、アクティブ対象気筒の燃料噴射量が強制的に減量されることから、エンジン出力トルクが低下し、実際の回転数Ｎｅｒが目標アイドル回転数Ｎｅｔよりも一時的に低下する。この回転低下をなくすように、開弁側の補正量Δθが算出され、学習値θｇが開弁側に更新される。燃料噴射量減量終了直後、実際の回転数Ｎｅｒが目標アイドル回転数Ｎｅｔより一時的に上昇し、実際の回転数Ｎｅｒが過度に高くなってユーザに違和感を生じさせる虞がある。また、燃料噴射量減量の途中で例えばアクセルペダルが踏み込まれ、異常検出が中止された場合には、より開弁側の学習値が元の値に復帰せずそのまま残ってしまう。すると、次にアイドル運転に移行したとき、前記同様、実際の回転数Ｎｅｒが目標アイドル回転数Ｎｅｔよりも上昇する。すると前述の違和感が生じる虞がある。
【０１２３】
そこで、燃料噴射量変更終了直後に実際の回転数が目標アイドル回転数からずれることを抑制するため、本実施形態では以下に述べるような対策を講じることとしている。
【０１２４】
図９に本実施形態の第１実施例を示す。以下、図８の比較例との相違点を主に説明し、同様の点については説明を省略する。この実施例においてもばらつき異常検出時に燃料噴射量が強制増量される場合を主に説明する。
【０１２５】
本実施例は、燃料噴射量増量時、（Ｅ）に示すように、補正量Δθと学習値θｇの少なくとも一方を補正するための補正値θａをさらに用いて、目標開度θｔを算出する点が主な特徴である。他方、燃料噴射量増量時以外の通常時には、比較例同様、補正量Δθと学習値θｇに基づき目標開度θｔを算出する。
【０１２６】
補正値θａは０を基準とした値であり、図示例のように燃料噴射量が強制増量される場合にはマイナスすなわち閉弁側の一定値が予め定められ、ＥＣＵ１００に記憶されている。なお、燃料噴射量が強制減量される場合にはプラスすなわち開弁側の一定値が予め定められ、ＥＣＵ１００に記憶されている。
【０１２７】
図示例において、増量フラグがオンとなる（すなわち燃料噴射量増量が開始される）時刻ｔ１より前では、図８の比較例と同様である。このとき補正値θａはθａ０というマイナスの値になっている。但しこの時点では補正値θａは目標開度θｔの算出に使用されない。θｔ＝Δθ＋θｇである。
【０１２８】
時刻ｔ１で増量フラグがオンとなる（すなわち燃料噴射量増量が開始される）と、アクティブ対象気筒の燃料噴射量が強制的に増量され、エンジン出力トルクが増加する。
【０１２９】
しかし、この開始と同時に、補正値θａが目標開度θｔの算出に併せて使用されるようになる。θｔ＝Δθ＋θｇ＋θａである。目標開度θｔは補正量Δθ、学習値θｇおよび学習値補正量θａの和として算出される。こうして、補正量Δθと学習値θｇの少なくとも一方が補正値θａによって補正されることとなる。
【０１３０】
本実施例の場合、補正値θａは、学習値θｇを補正する値と考えることもできるし、補正量Δθを補正する値と考えることもできるし、両者を補正する値と考えることもできる。その一方で、補正対象をより限定し、例えば学習値θｇのみを補正する値としてもよいし、補正量Δθのみを補正する値としてもよい。要は、補正値θａによる補正の結果が目標開度θｔに反映されればよいのであり、どの値を補正するかは自由に定め得る。従って最終値である目標開度θｔを補正する値としてもよい。
【０１３１】
さて、このように目標開度θｔを算出すると、燃料噴射量増量開始と同時に目標開度θｔが低下される。図示例ではθｔ１という開度に低下されている。すると、スロットルバルブ開度がより閉弁側に変更され、比較例で生じていたような燃料噴射量増量開始直後の回転ズレ、すなわち目標アイドル回転数Ｎｅｔに対する実際の回転数Ｎｅｒの上昇が図示の如く無くなるか、あるいは大幅に抑制される。言い換えれば、補正値θａは、この回転上昇を抑制するような値に設定される。
【０１３２】
時刻ｔ１から時刻ｔ３までの燃料噴射量増量中、補正値θａ０が使用され続け、スロットルバルブ開度は通常時より閉弁側に制御され続ける。またこの燃料噴射量増量中には、少なくとも学習値θｇの更新が停止される。燃料噴射量増量時という通常時と違う状況下で、学習値θｇが、通常時に適さない値に更新されてしまうのを避けるためである。本実施例の場合、補正量Δθの算出も併せて停止されている。結果的に学習値θｇおよび補正量Δθは初期値θｇ０，０に保持されることとなる。
【０１３３】
なお、燃料噴射量増量開始直後の回転ズレが無くなるか大幅に抑制されると考えられるので、学習値θｇの更新および補正量Δθの算出の少なくとも一方を停止せず実行してもよい。
【０１３４】
その後、増量フラグがオフとなる時刻ｔ３に至ると、燃料噴射量の強制増量が終了される。そして補正値θａが目標開度θｔの算出に使用されなくなり、θｔ＝Δθ＋θｇにより目標開度θｔが算出される。学習値θｇおよび補正量Δθの更新および算出停止状態も解除され、これらは更新および算出可能な状態となる。
【０１３５】
燃料噴射量増量が終了すると、増量により増加していた分のエンジン出力トルクがなくなる。しかしながら、このとき比較例で生じていたような回転ズレ、すなわち目標アイドル回転数Ｎｅｔに対する実際の回転数Ｎｅｒの低下は、図示の如く無くなるか、あるいは大幅に抑制される。なぜなら、燃料噴射量増量開始前の元の学習値θｇ＝θｇ０および補正量Δθ＝０から、目標開度θｔの算出が開始されるからである。これにより、目標開度θｔは、燃料噴射量増量開始前の元の値θｔ０に復帰され、スロットルバルブ開度はより開弁側の元の値に復帰される。
【０１３６】
なお図中、時刻ｔ２，ｔ４は比較例との比較のため便宜上記載されたものであり、本実施例とは無関係である。
【０１３７】
ばらつき異常検出の実行に伴って燃料噴射量を強制的に減量する場合には、開弁側すなわちプラスの補正値θａを用いればよいことが容易に理解されるであろう。
【０１３８】
このように本実施例によれば、燃料噴射量増量終了直後における実際の回転数Ｎｅｒの低下を抑制することができる。よって振動の悪化を抑制し、エンストを回避することが可能となる。また、燃料噴射量増量の途中で異常検出が中止された場合（すなわち通常時に移行した場合）にも、次にアイドル運転に移行したときの回転低下ひいてはこれに伴う振動悪化やエンストを抑制、回避することが可能である。
【０１３９】
また、燃料噴射量増量開始直後における実際の回転数Ｎｅｒの上昇をも抑制することができる。すなわち、燃料噴射量変更の実行・停止の切り替え直後の回転ズレを抑制することができ、切り替えに伴う振動悪化、エンスト、違和感等を防止できる。
【０１４０】
ばらつき異常検出の実行に伴って燃料噴射量を強制的に減量した場合にも同様の利点がある。すなわち、燃料噴射量減量終了直後の回転上昇ズレ、および燃料噴射量減量開始直後の回転低下ズレを抑制し、振動悪化、エンスト、違和感等を抑制できる。また、燃料噴射量減量途中で異常検出が中止された場合、次にアイドル運転に移行したときの回転上昇を抑制し、違和感を抑制できる。
【０１４１】
この例では補正値θａを加算項とした。しかしながら乗算項などとすることもできる。
【０１４２】
またこの例では補正値θａを予め定められた一定値とした。しかしながら代替的に、補正値θａを可変な値としてもよい。好ましくは、補正値θａを、燃料噴射量変更時の燃料噴射量変更量に応じて設定するのがよい。
【０１４３】
例えば燃料噴射量を増量する場合にあっては、その増量量が増加するほどエンジン出力トルクが増加し、燃料噴射量増量開始直後の回転上昇ズレ、および燃料噴射量増量終了直後の回転低下ズレが大きくなる。よって、増量量が増加するほど補正値θａを閉弁側すなわちマイナス側に大きな値に設定するのがよい。この場合、増量量と補正値θａの関係を予めマップ化し、このマップから実際の増量量に対応した補正値θａを求め、設定することができる。
【０１４４】
逆に燃料噴射量を減量する場合にあっては、その減量量が増加するほどエンジン出力トルクが低下し、燃料噴射量減量開始直後の回転低下ズレ、および燃料噴射量減量終了直後の回転上昇ズレが大きくなる。よって、減量量が増加するほど補正値θａを開弁側すなわちプラス側に大きな値に設定するのがよい。この場合にもマップから実際の減量量に対応した補正値θａを求め、設定することができる。
【０１４５】
次に、図１０を用いて本実施形態の第２実施例を説明する。以下、第１実施例との相違点を主に説明し、同様の点については説明を省略する。
【０１４６】
本実施例は、補正値θａが可変であり、特に燃料噴射量変更時の差分ΔＮに応じて補正値θａが更新される点が主な特徴である。すなわち、予め補正値θａを見込みで定めても、この値が現状にそぐわず回転ズレが生じることがある。そこでこの回転ズレに応じて、回転ズレを無くすように補正値θａを更新するのが本実施例である。これにより、燃料噴射量変更開始・終了直後の回転ズレをより一層効果的に抑制することが可能になる。
【０１４７】
図１０に示すように、増量フラグがオンとなる（すなわち燃料噴射量増量が開始される）時刻ｔ１より前の状態は、図９の第１実施例と同様である。
【０１４８】
時刻ｔ１で増量フラグがオンとなると、燃料噴射量の強制増量が開始され、エンジン出力トルクが増加する。
【０１４９】
この例では、補正値θａによるスロットルバルブの閉じ量が足りず、燃料噴射量増量開始直後に回転上昇ズレ、すなわち負の差分ΔＮが生じている。よってこの回転上昇ズレをなくすように補正値θａが更新される。
【０１５０】
燃料噴射量増量開始から比較的短い所定時間を経過した時刻ｔ２１において、差分ΔＮが算出される。そしてこの差分ΔＮに応じた量だけ、補正値θａが現状の値θａ０から補正される。この補正値θａを補正するための補正量ΔＡは、差分ΔＮと補正量ΔＡとの関係を予め規定したマップから算出可能である。図示例ではマイナスの補正量ΔＡが算出され、補正値θａはより閉弁側のθａ１という値に補正される。この補正後の値θａ１がＥＣＵ１００に学習、記憶され、以降、この値が補正値θａとして使用される。結果的に補正値θａはθａ０からθａ１に更新されたこととなる。このような更新は、燃料噴射量変更直後に回転ズレが生じる度に行われる。
【０１５１】
この補正値θａの更新に対応して、目標開度θｔも、より閉弁側のθｔ２に補正される。
【０１５２】
その後、増量フラグがオフとなる（すなわち燃料噴射量増量が終了する）時刻ｔ３に至ると、増量により増加していた分のエンジン出力トルクがなくなる。しかしながらこのときには、元の学習値θｇ＝θｇ０および補正量Δθ＝０により目標開度θｔの算出が開始されるので、回転低下ズレは生じないかまたは大幅に抑制される。
【０１５３】
ばらつき異常検出の実行に伴って燃料噴射量を強制的に減量する場合には、燃料噴射量減量開始直後の回転低下ズレ、すなわち正の差分ΔＮに基づき、補正値θａがより開弁側の値に更新されることが容易に理解されるであろう。
【０１５４】
このように本実施例によれば、第１実施例と同様の利点に加え、特に、燃料噴射量変更開始直後の回転ズレを一層効果的に抑制できるという利点がもたらされる。
【０１５５】
本実施例においても、補正値θａを、燃料噴射量変更時の燃料噴射量変更量に応じて設定することが可能である。すなわち、補正値θａを燃料噴射量変更量に応じて設定した上で、回転ズレが生じた場合には差分ΔＮに応じて補正値θａを更新できる。以降、同一の燃料噴射量変更量に対して更新された補正値θａを用いる。
【０１５６】
以上、本発明の好適な実施形態を詳細に述べたが、本発明の実施形態は他にも様々なものが考えられる。例えば、増量前の角速度差Δω１と増量後の角速度差Δω２との差ｄΔωを用いる代わりに、両者の比を用いることができる。この点、減量前後の角速度差の差ｄΔω、または増量もしくは減量前後の回転時間差ΔＴの差についても同様のことが言える。本発明はＶ型８気筒エンジンに限らず、他の様々な形式および気筒数のエンジンに適用可能である。
【０１５７】
本発明の実施形態は前述の実施形態のみに限らず、特許請求の範囲によって規定される本発明の思想に包含されるあらゆる変形例や応用例、均等物が本発明に含まれる。従って本発明は、限定的に解釈されるべきではなく、本発明の思想の範囲内に帰属する他の任意の技術にも適用することが可能である。
【符号の説明】
【０１５８】
１  内燃機関（エンジン）
２  インジェクタ
１１  エアフローメータ
１２  スロットルバルブ
１８  上流触媒
２０  触媒前センサ
２２  クランク角センサ
２３  アクセル開度センサ
１００  電子制御ユニット（ＥＣＵ）
【図１】
2012246843.tif 000003
【図２】
2012246843.tif 000004
【図３】
2012246843.tif 000005
【図４】
2012246843.tif 000006
【図５】
2012246843.tif 000007
【図６】
2012246843.tif 000008
【図７】
2012246843.tif 000009
【図８】
2012246843.tif 000010
【図９】
2012246843.tif 000011
【図１０】
2012246843.tif 000012