(57)【要約】【課題】噴射特性の経時変化の度合いが燃料噴射弁毎に異なっても、エンジンの安定性が悪化することを抑制できるようにする。【解決手段】気筒間空燃比ばらつき検出部１１００は、排気空燃比やエンジン回転速度などから気筒間における空燃比のばらつき度合いを示す空燃比ばらつき指数(Ind_imb)を演算する。燃料噴射パルス幅制限部２１００は、空燃比ばらつき指数(Ind_imb)が設定値よりも高い場合には、低い場合に比べ、燃料噴射パルス幅の（許容）最小値(Min_TI)をより長く設定する。そして、燃料噴射パルス幅演算部３１００は、最小値(Min_TI)を下回ることがないように、各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算する。【選択図】図３
2014137041.tif 000002
【特許請求の範囲】
【請求項１】
複数の気筒それぞれに燃料噴射弁を設けた多気筒エンジンにおいて、
前記複数の気筒間における空燃比のばらつきに基づいて前記燃料噴射弁の噴射パルス幅を所定値よりも上に制限する、エンジンの制御装置。
【請求項２】
前記噴射パルス幅が第１所定値よりも長いときに前記空燃比のばらつきを検出し、
前記空燃比のばらつきが設定値よりも大きいときに、前記噴射パルス幅を、第２所定値（但し、第１所定値＞第２所定値）よりも上に制限する、請求項１記載のエンジンの制御装置。
【請求項３】
排気管集合部における排気空燃比のエンジン２回転周期の振幅を、前記空燃比のばらつきの指標値として検出する、請求項１又は２記載のエンジンの制御装置。
【請求項４】
気筒毎の回転変動のばらつきを、前記空燃比のばらつきの指標値として検出する、請求項１又は２記載のエンジンの制御装置。
【請求項５】
気筒毎の空燃比のばらつき幅を、前記空燃比のばらつきの指標値として検出する、請求項１又は２記載のエンジンの制御装置。
【請求項６】
各気筒の空燃比に基づいて、各気筒の燃料噴射弁の静流特性変化分と動流特性変化分を検出し、前記各気筒の燃料噴射弁の静流特性変化分と動流特性変化分に基づいて前記所定値を変更する、請求項１記載のエンジンの制御装置。
【請求項７】
異なる噴射パルス幅それぞれにおける各気筒の空燃比に基づいて、各気筒の燃料噴射弁の静流特性変化分と動流特性変化分を検出する、請求項６記載のエンジンの制御装置。
【請求項８】
前記各気筒の燃料噴射弁の静流特性変化分と動流特性変化分に基づいて前記各気筒それぞれでの許容パルス幅を検出し、前記各気筒それぞれでの許容パルス幅に基づき前記所定値を設定する、請求項６又は７記載のエンジンの制御装置。
【請求項９】
エンジンの運転状態に応じた噴射パルス幅が前記所定値よりも短い場合に、噴射パルス幅を前記所定値に変更することで、前記噴射パルス幅を前記所定値よりも上に制限する、請求項１から８のいずれか１つに記載のエンジンの制御装置。
【請求項１０】
１サイクル間に複数回燃料噴射を実施する多段噴射における各回の噴射パルス幅が前記所定値よりも短くなる場合に、前記多段噴射における噴射回数を減少するか若しくは前記多段噴射を禁止することで、前記噴射パルス幅を前記所定値よりも上に制限する、請求項１から８のいずれか１つに記載のエンジンの制御装置。
【請求項１１】
前記エンジンのアイドル運転時における噴射パルス幅が前記所定値よりも短くなる場合に、アイドル運転時のエンジン回転速度を高くすることで、前記噴射パルス幅を前記所定値よりも上に制限する、請求項１から８のいずれか１つに記載のエンジンの制御装置。
【請求項１２】
前記所定値が、各気筒の空燃比を可燃空燃比領域内とするための値である、請求項１から１１のいずれか１つに記載のエンジンの制御装置。
【請求項１３】
複数の気筒それぞれに燃料噴射弁を設けた多気筒エンジンにおいて、
前記複数の気筒間における空燃比のばらつきに応じて、前記燃料噴射弁の噴射パルス幅の可変域を変更する、エンジンの制御装置。
【請求項１４】
複数の気筒それぞれに燃料噴射弁を設けた多気筒エンジンにおいて、
前記複数の気筒間における空燃比のばらつきを検出し、
前記空燃比のばらつきに応じて前記燃料噴射弁の噴射パルス幅の下限値を設定し、
前記燃料噴射弁の噴射パルス幅を、前記下限値よりも上に制限する、
エンジンの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の気筒それぞれに燃料噴射弁を設けた多気筒エンジンの制御装置及び制御方法に関する。
【背景技術】
【０００２】
特許文献１には、多気筒エンジンにおいて、気筒別空燃比の間の差が、第１の程度以上かつ第２の程度未満のときは、エミッション量低減制御の実行を制限し、第２の程度以上のときは、エミッション量低減制御の実行を禁止することが開示され、また、エミッション量低減制御として、パージ制御、ＥＧＲ制御などが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２３６８６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、燃料噴射弁は、機構系の劣化、摩耗、及びデポジットによる詰まりなどに起因する経時変化により、単位開弁時間あたりの燃料噴射量の変化（静流特性）と、開閉駆動時におけるリフトプロフィール変化（動流特性）が発生し、燃料噴射弁の間で、静流特性、動流特性の変化度合いが異なると、気筒間の空燃比にばらつきを発生させる。
前記静流特性の変化は、任意の燃料噴射パルス幅に対して、一定の割合で燃料噴射量を増加方向或いは減少方向に変化させるため、空燃比としては一定値のずれを起こす。
一方、前記動流特性の変化は、閉弁指令に対する閉弁遅れが主であり、任意の燃料噴射パルス幅に対して一定量だけ燃料噴射量が増量することになる。このため、動流特性の変化が大きい燃料噴射弁を備えた気筒では、燃料噴射パルス幅が小さくなるほど、空燃比のリッチ側へのずれが大きくなり、気筒間の空燃比差も大きくなる。
ここで、動流特性の変化が空燃比に及ぼす影響が強くなる、燃料噴射パルス幅が小さい状態で、各気筒の平均空燃比の検出値が目標空燃比に近づくように燃料噴射パルス幅を変更する空燃比フィードバック制御が行われると、動流特性の変化による平均空燃比のリッチ化を修正すべく、燃料噴射パルス幅を平均的に減らす制御が行われることになる。そのため、比較的動流特性の変化（増量分）の小さい燃料噴射弁の燃料噴射パルス幅が過剰に減少側に変更されてしまい、当該燃料噴射弁を備える気筒の空燃比が可燃域を逸脱してリーン化し、エンジンの安定性が悪化する可能性があった。
【０００５】
そこで、本発明は、噴射特性の経時変化の度合いが燃料噴射弁毎に異なっても、エンジンの安定性が悪化することを抑制できる、エンジンの制御装置及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
そのため、本願発明のエンジンの制御装置は、複数の気筒間における空燃比のばらつきに基づいて前記燃料噴射弁の噴射パルス幅を所定値よりも上に制限する。
また、本願発明のエンジンの制御装置は、複数の気筒間における空燃比のばらつきに応じて、燃料噴射弁の噴射パルス幅の可変域を変更する。
更に、本願発明のエンジンの制御方法は、複数の気筒間における空燃比のばらつきを検出し、前記空燃比のばらつきに応じて燃料噴射弁の噴射パルス幅の下限値を設定し、前記燃料噴射弁の噴射パルス幅を、前記下限値よりも上に制限する。
【発明の効果】
【０００７】
本発明によれば、燃料噴射弁の噴射特性の経時変化の度合いが燃料噴射弁毎に異なっても、各気筒の空燃比が可燃空燃比領域を超えることで、エンジンの安定性が悪化することを抑制できる。
【図面の簡単な説明】
【０００８】
【図１】第１，２，５〜７例におけるエンジン制御システム図である。
【図２】第１，２，５〜７例におけるコントロールユニットの内部を表した図である。
【図３】第１例における制御全体を表したブロック図である。
【図４】第１，６，７例における気筒間空燃比ばらつき検出部を表したブロック図である。
【図５】第１，６，７例における２回転成分演算部を表したブロック図である。
【図６】第１，６，７例における空燃比ばらつき指数演算部を表したブロック図である。
【図７】第１例における燃料噴射パルス幅制限部を表したブロック図である。
【図８】第１〜５例における燃料噴射パルス幅演算部を表したブロック図である。
【図９】静流特性変化時の燃料噴射パルス幅に対する燃料噴射量の特性変化を表した図である。
【図１０】動流特性変化時の燃料噴射パルス幅に対する燃料噴射量の特性変化を表した図である。
【図１１】静流特性変化時の燃料噴射パルス幅に対する空燃比の特性変化を表した図である。
【図１２】動流特性変化時の燃料噴射パルス幅に対する空燃比の特性変化を表した図である。
【図１３】４気筒エンジンにおける各気筒の燃料噴射弁が正常な時（静流特性および動流特性変化なし）の燃料噴射パルス幅に対する空燃比の特性変化を表した図である。
【図１４】４気筒エンジンにおける各気筒の燃料噴射弁が経時変化が発生した時（静流特性および動流特性変化発生時）の燃料噴射パルス幅に対する空燃比の特性変化を表した図である。
【図１５】第２例における制御全体を表したブロック図である。
【図１６】第２例における気筒間空燃比ばらつき検出部を表したブロック図である。
【図１７】第２例における気筒別回転変動演算部を表したブロック図である。
【図１８】第２例における空燃比ばらつき指数演算部を表したブロック図である。
【図１９】第２例における燃料噴射パルス幅制限部を表したブロック図である。
【図２０】第３、４例におけるエンジン制御システム図である。
【図２１】第３、４例におけるコントロールユニットの内部を表した図である。
【図２２】第３例における制御全体を表したブロック図である。
【図２３】第３例における気筒間空燃比ばらつき検出部を表したブロック図である。
【図２４】第３例における各気筒空燃比移動平均演算部を表したブロック図である。
【図２５】第３例における空燃比ばらつき指数演算部を表したブロック図である。
【図２６】第３例における燃料噴射パルス幅制限部を表したブロック図である。
【図２７】第４例における制御全体を表したブロック図である。
【図２８】第４例における噴射特性変化分検出部を表したブロック図である。
【図２９】第４例におけるｎ番気筒基準燃料噴射量演算部を表したブロック図である。
【図３０】第４例におけるｎ番気筒実燃料噴射量演算部を表したブロック図である。
【図３１】第４例におけるｎ番気筒噴射特性変化分演算部を表したブロック図である。
【図３２】第４例における燃料噴射パルス幅制限部を表したブロック図である。
【図３３】第５例における制御全体を表したブロック図である。
【図３４】第５例における２回転成分位相演算部を表したブロック図である。
【図３５】第５例における第１空燃比ずれ気筒検出部を表したブロック図である。
【図３６】第５例における２回転成分パワー演算部を表したブロック図である。
【図３７】第５例における気筒別回転変動演算部を表したブロック図である。
【図３８】第５例における第２空燃比ずれ気筒検出部を表したブロック図である。
【図３９】第５例における第３空燃比ずれ気筒検出部を表したブロック図である。
【図４０】第５例における空燃比ずれ気筒の空燃比推定部を表したブロック図である。
【図４１】第５例における噴射特性変化分検出部を表したブロック図である。
【図４２】第５例におけるk_cyl番気筒基準燃料噴射量演算部を表したブロック図である。
【図４３】第５例におけるk_cyl番気筒実燃料噴射量演算部を表したブロック図である。
【図４４】第５例におけるk_cyl番気筒噴射特性変化分演算部を表したブロック図である。
【図４５】第５例における燃料噴射パルス幅制限部を表したブロック図である。
【図４６】第６例における制御全体を表したブロック図である。
【図４７】第６例における多段噴射制御許可部を表したブロック図である。
【図４８】第７例における制御全体を表したブロック図である。
【図４９】第７例におけるアイドル時目標回転速度演算部を表したブロック図である。
【発明を実施するための形態】
【０００９】
以下に、本発明の実施の形態を、図面を用いて説明する。
「第１例」
図１は、第１例におけるエンジンのシステム図である。
図１に示すエンジン９は、車両用動力源として用いられる、多気筒で構成されるエンジンであり、ここでは、４気筒エンジンとする。
【００１０】
エンジン９において、外部からの空気は、エアクリーナ１を通過し、吸気ダクト４、吸気コレクタ５ａ、吸気マニホールド５ｂを経て、シリンダ５１内に流入する。
エンジン９の吸入空気量は、電子スロットル３により調節され、エアフローセンサ２は、エンジン９の吸入空気量を検出する。
【００１１】
また、吸気温センサ２９は、エンジン９の吸気の温度（吸気温）を検出し、クランク角センサ１５は、クランク軸５２の回転角１０deg毎の信号と燃焼周期毎（４気筒エンジンで１８０deg毎）の信号とを出力する。
また、水温センサ１４は、エンジン９の冷却水の温度を検出し、アクセル開度センサ１３は、アクセルペダル６の踏み込み量を検出し、それによって、車両の運転者の要求トルクを検出する。
更に、スロットル開度センサ１７は、電子スロットル３の開度を検出する。
【００１２】
上記のアクセル開度センサ１３、エアフローセンサ２、吸気温センサ２９、スロットル開度センサ１７、クランク角センサ１５、水温センサ１４それぞれの信号は、後述のコントロールユニット（ＥＣＵ）１６に送られる。
コントロールユニット１６は、上記の各センサの出力から、エンジン９の運転状態の情報を得て、吸入空気量、燃料噴射量、点火時期などのエンジン９の主要な操作量を演算する。
【００１３】
コントロールユニット１６は、目標吸入空気量を目標スロットル開度に変換し、更に、目標スロットル開度を電子スロットル３の駆動信号に変換し、この駆動信号を電子スロットル３に出力する。
また、コントロールユニット１６は、燃料噴射量を噴射パルス信号（開弁パルス信号）に変換し、この噴射パルス信号を、気筒毎に設けられシリンダ５１内に直接燃料を噴射する燃料噴射弁（インジェクタ）７に対し、各気筒の噴射タイミングにて出力する。
【００１４】
また、コントロールユニット１６は、演算した点火時期で点火プラグ８による点火が行われるように、図示を省略したパワートランジスタに点火信号を出力し、パワートランジスタは、点火信号に基づいてイグニッションコイルの１次回路をオン／オフ動作させ、点火に必要な高電圧を２次側に誘起させる。
燃料噴射弁７から噴射された燃料は、吸気マニホールド５ｂを介して吸入された空気と混合して、シリンダ５１内に混合気を形成する。シリンダ５１内に形成された混合気は、所定の点火時期で点火プラグ８から発生される火花により爆発し、その燃焼圧によりピストン５３を押し下げて、クランク軸５２を回転駆動する。
【００１５】
爆発後の排気は、排気マニホールド１０を経て三元触媒１１に送り込まれる。また、排気の一部は排気還流管１８を通って吸気側に還流され、排気還流量は、排気還流管１８に介装したバルブ１９によって調整される。
エンジン９と三元触媒１１との間の排気通路には、排気空燃比を検出する空燃比センサ１２が取り付けられ、また、三元触媒１１の下流の排気通路には、排気空燃比の理論空燃比に対するリッチ／リーンを検出する酸素センサ２０が取り付けられている。
【００１６】
図２は、コントロールユニット１６の回路構成を示すブロック図である。
コントロールユニット１６には、エアフローセンサ２、空燃比センサ１２、アクセル開度センサ１３、水温センサ１４、クランク角センサ１５、スロットル弁開度センサ１７、酸素センサ２０、吸気温センサ２９、車速センサ３０の各センサ出力値が入力され、入力回路２４にてノイズ除去等の信号処理を行った後、入出力ポート２５を介してＲＡＭ２３に保管され、ＣＰＵ２１内の演算処理に供される。
【００１７】
ＣＰＵ２１における演算処理の内容を記述した制御プログラムは、ＲＯＭ２２に予め書き込まれている。
そして、制御プログラムに従って演算された各アクチュエータの作動量を表す値は、ＲＡＭ２３に保管された後、入出力ポート２５に送られる。
点火プラグ８の作動信号として、イグニッションコイルの一次回路の通電時はＯＮとなり、非通電時はＯＦＦとなるＯＮ／ＯＦＦ信号がセットされ、一次回路への通電を遮断するタイミングが点火時期となる。点火プラグ８の作動信号は、点火信号出力回路２６を介して、各点火プラグ８に付設されているパラートランジスタ内蔵のイグニッションコイルにそれぞれ出力される。
【００１８】
また、燃料噴射弁７の駆動信号（噴射パルス信号）として、開弁時にＯＮ、閉弁時にＯＦＦとなるＯＮ／ＯＦＦ信号がセットされ、駆動回路２７を介して各燃料噴射弁７にそれぞれ出力される。ここで、燃料噴射弁７の駆動信号（噴射パルス信号）のオン時間（開弁時間）である燃料噴射パルス幅に応じて燃料噴射量が制御される。
また、電子スロットル３を目標開度に駆動する駆動信号は、電子スロットル駆動回路２８を経て、電子スロットル３（スロットルモータ）に送られる。
【００１９】
以下では、コントロールユニット１６による燃料噴射パルス幅の演算処理のうち、本発明の特徴である、燃料噴射パルス幅が許容最小値を下回ることがないように（許容最小値よりも上に）制限する処理を詳細に説明する。
図３は、コントロールユニット１６における燃料噴射パルス幅の演算処理の概要を示す機能ブロック図である。
【００２０】
図３に示すように、コントロールユニット１６は、気筒間空燃比ばらつき検出部１１００、燃料噴射パルス幅制限部２１００、燃料噴射パルス幅演算部３１００の各演算部を備えている。
そして、気筒間空燃比ばらつき検出部１１００は、空燃比センサ１２の出力信号(Rabf)のエンジン２回転周期での振幅（パワー）に基づいて、気筒間における空燃比のばらつき度合いを示す空燃比ばらつき指数(Ind_imb)を演算し、燃料噴射パルス幅制限部２１００は、空燃比ばらつき指数(Ind_imb)から、燃料噴射パルス幅の（許容）最小値(Min_TI)を演算し、燃料噴射パルス幅演算部３１００は、最小値(Min_TI)等に基づいて、各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算する。
以下、各演算部の詳細を説明する。
【００２１】
〈気筒間空燃比ばらつき検出部（図４）〉
図４は、空燃比ばらつき指数(Ind_imb)を演算する気筒間空燃比ばらつき検出部１１００における演算処理を示す機能ブロック図であり、この図４において、２回転成分演算部１１０１は、空燃比センサ信号(Rabf)から、２回転成分実数部(R_2rev)と２回転成分虚数部(I_2rev)とを演算し、空燃比ばらつき指数演算部１１０２は、２回転成分実数部(R_2rev)及び２回転成分虚数部(I_2rev)から空燃比ばらつき指数(Ind_Imb)を演算する。
〈２回転成分演算部（図５）〉
【００２２】
図５は、空燃比センサ１２の信号(Rabf)の２回転成分の実数部(R_2rev)と虚数部(I_2rev)とを演算する２回転成分演算部１１０１での演算処理を示す機能ブロック図である。
２回転成分演算部１１０１では、空燃比センサ１２の信号(Rabf)の今回値と前回値の差（所定時間当たりの変化量）を演算し、これを空燃比センサ信号差分値(dRabf)とする。そして、空燃比センサ信号差分値(dRabf)に対して離散フーリエ変換を実施する。
【００２３】
前記離散フーリエ変換においては、ピストンが所定位置にある気筒を示す気筒判別値(CYLCNT)に基づき、第１変数(C_R)及び第２変数(C_I)を演算する。
本例の４気筒エンジン９において、各気筒の点火が第１気筒→第３気筒→第４気筒→第２気筒の順に行われることに対応して、気筒判別値(CYLCNT)は、例えば圧縮上死点前１１０deg（ＢＴＤＣ１１０deg）が検出される毎に、つまり、クランク角１８０deg毎に、１→３→４→２→１・・・・の順で更新され、気筒判別値(CYLCNT)は、ピストンが所定位置（圧縮上死点付近）にある気筒が、４気筒のいずれであるかを示す。
【００２４】
第１変数(C_R)は、気筒判別値(CYLCNT)に基づいて以下のようにして演算される。
CYLCNT＝１のとき、C_R＝１
CYLCNT＝３もしくは２のとき、C_R＝０
CYLCNT＝４のとき、C_R＝−１
【００２５】
また、第２変数(C_I)は、気筒判別値(CYLCNT)に基づいて以下のようにして演算される。
CYLCNT＝１もしくは４のとき、C_I＝０
CYLCNT＝３のとき、C_I＝１
CYLCNT＝２のとき、C_I＝−１
【００２６】
そして、第１変数(C_R)、及び、空燃比センサ信号差分値(dRabf)に基づき、C_R×dRabfの今回値と前回値と前々回値と前々々回値との和を演算し、これを実数部(R_2rev)とする。
また、第２変数(C_I)、及び、空燃比センサ信号差分値(dRabf)に基づき、C_I×dRabfの今回値と前回値と前々回値と前々々回値との和を演算し、これを虚数部(I_2rev)とする。
【００２７】
なお、上記の実数部(R_2rev)及び虚数部(I_2rev)の演算は、燃料噴射パルス幅が、所定値より大きい（長い）ときに実施する。これは、後で詳細に説明するように、燃料噴射パルス幅が小さく（短く）なるにつれて空燃比のばらつきが急激に大きくなり、燃料噴射パルス幅の大小に影響されて空燃比ばらつきの検出結果が変動することになるため、燃料噴射パルス幅の変化に対する空燃比ばらつきの変化が十分に小さいパルス幅領域を、空燃比ばらつきの検出領域として、燃料噴射パルス幅が、空燃比ばらつきの検出結果に影響しないようにするためである。従って、燃料噴射パルス幅の所定値は、燃料噴射パルス幅の変化に対する空燃比ばらつきの変化が十分に小さいパルス幅領域の下限値を基準として設定される。
【００２８】
〈空燃比ばらつき指数演算部（図６）〉
図６は、空燃比ばらつき指数演算部１１０２での演算処理を示す機能ブロック図である。
空燃比ばらつき指数演算部１１０２では、２回転成分実数部(R_2rev)及び２回転成分虚数部(I_2rev)に基づき、下式（数１）に従って空燃比ばらつき指数(Ind_Imb)を演算する。
【００２９】
【数１】
2014137041.tif 000003
上記数１に従って演算される空燃比ばらつき指数(Ind_Imb)は、空燃比センサ１２の信号(Rabf)のエンジン２回転成分のパワーであり、パワーは振幅と相関のある値であるから、空燃比ばらつき指数(Ind_Imb)は、空燃比センサ信号(Rabf)のエンジン２回転相当周波数の振動幅を示す。
【００３０】
〈燃料噴射パルス幅制限部（図７）〉
図７は、図３に示した燃料噴射パルス幅制限部２１００での演算処理を示す機能ブロック図である。
燃料噴射パルス幅制限部２１００では、燃料噴射パルス幅の許容最小値(Min_TI)を以下のようにして演算する。
Ind_Imb≧K1_Ind_Imbのとき、Min_TI＝K1_Min_TI（K1_Min_TI＞０）
Ind_Imb＜K1_Ind_Imbのとき、Min_TI＝０
【００３１】
ここで、K1_Ind_Imbは、空燃比ばらつき指数(Ind_Imb)のレベル判定に用いる閾値であり、燃料噴射パルス幅が小さくなった場合に、可燃空燃比を逸脱する可能性があるほどの空燃比ばらつきであるか否かを判定できるように、予め適合されている。すなわち、Ind_Imb≧K1_Ind_Imbである場合は、燃料噴射パルス幅が小さくなると一部気筒で可燃空燃比を逸脱する可能性があると推定し、Ind_Imb＜K1_Ind_Imbである場合は、燃料噴射パルス幅が小さくなっても全気筒の空燃比が可燃空燃比を逸脱しないと推定できるように、前記閾値(K1_Ind_Imb)を設定してある。
【００３２】
そして、許容最小値(Min_TI)、つまり、噴射パルス幅の下限値を、空燃比ばらつき指数(Ind_Imb)に応じて変更することで、噴射パルス幅の可変域を変更し、気筒間の空燃比ばらつきが大きくなった場合には、噴射パルス幅の減少変化を抑制することで、各気筒の空燃比が可燃空燃比内となるようにしてある。
つまり、(K1_Min_TI)は、気筒間での空燃比ばらつきが大きくなった場合に、各気筒の空燃比が可燃空燃比領域内となる、換言すれば、最もリーンとなる気筒においても可燃空燃比を逸脱してリーン化することのない、パルス幅の下限値として予め設定されている。
【００３３】
燃料噴射弁７の静流特性変化分による空燃比のばらつきは、燃料噴射パルス幅に依存せず一定であるが、動流特性変化分による空燃比のばらつきは、燃料噴射パルス幅が小さくなるにつれて大きくなる。本例では、燃料噴射パルス幅が十分に大きいときに空燃比ばらつきを検出するから、静流特性変化分を主に検出することになり、燃料噴射パルス幅が小さくなったときに空燃比のずれを生じさせることになる動流特性変化分はほとんど検出できない。そこで、静流特性変化分に対する動流特性変化分の経験的最悪値など適切な値を予め決めておき、それに基づいて、燃料噴射パルス幅を小さくすると可燃空燃比を逸脱するか否かを空燃比ばらつき指数(Ind_Imb)に基づき判定する。
なお、可燃空燃比限界は、リーン側は１６以上、リッチ側は１０以下が目安であるが、エンジン性能に依存する。
【００３４】
〈燃料噴射パルス幅演算部（図８）〉
図８は、図３に示した燃料噴射パルス幅演算部３１００での演算処理を示す機能ブロック図である。
各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算する燃料噴射パルス幅演算部３１００は、基本噴射パルス幅演算部３１０１と、噴射パルス幅選択部３１０２とを備える。
基本噴射パルス幅演算部３１０１は、吸入空気量(Qa)とエンジン回転速度(Ne)とから、下式にて、基本噴射パルス幅(Tp)を演算する。
Tp＝K0×Qa／(Ne×Cyl)
【００３５】
ここで、Cylは気筒数であり、４気筒エンジンではCyl＝４とする。また、Ｋ0は、燃料噴射弁７の仕様（燃料噴射パルス幅と燃料噴射量との関係）に基づき決められる値である。
そして、噴射パルス幅選択部３１０２では、燃料噴射パルス幅制限部２１００で演算された燃料噴射パルス幅の許容最小値(Min_TI)と、基本噴射パルス幅演算部３１０１で演算された基本噴射パルス幅(Tp)とを比較し、両者のうちで大きい方を、各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)とする。
【００３６】
すなわち、TP≦Min_TIのときは、TI_1＝Min_TI、TI_2＝Min_TI、TI_3＝Min_TI、TI_4＝Min_TIとし、TP＞MIn_TIのときは、TI_1＝TP、TI_2＝TP、TI_3＝TP、TI_4＝TPとすることで、許容最小値(Min_TI)を下回る燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)に設定されることを抑制する。換言すれば、燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を、許容最小値(Min_TI)以上に制限する。
ここで、燃料噴射パルス幅の許容最小値(Min_TI)は、空燃比ばらつき指数(Ind_Imb)が大きくなると、つまり、気筒間の空燃比ばらつきが大きくなると、より大きな（長い）値に変更されるから、空燃比ばらつきが小さいときに、TI_1＝TP、TI_2＝TP、TI_3＝TP、TI_4＝TPに設定されていても、空燃比ばらつきが大きくなることで許容最小値(Min_TI)が増大側に変更されてTP≦Min_TIとなれば、同じ吸入空気量(Qa)及びエンジン回転速度(Ne)での燃料噴射パルス幅が、TI_1＝Min_TI、TI_2＝Min_TI、TI_3＝Min_TI、TI_4＝Min_TIに設定され、増大側に変更された後の許容最小値(Min_TI)とTPとの差分だけ燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)が増量されることになる。
【００３７】
なお、本実施形態では、基本噴射パルス幅(Tp)と許容最小値(Min_TI)とを比較し、基本噴射パルス幅(Tp)を許容最小値(Min_TI)以上に制限したが、基本噴射パルス幅(Tp)に、空燃比フィードバック制御補正、過渡時増減量補正、燃料気化率（水温）補正などを施した最終的な燃料噴射パルス幅を、許容最小値(Min_TI)と比較して、最終的な燃料噴射パルス幅を許容最小値(Min_TI)以上に制限することができる。
また、空燃比ばらつきが小さいときに、Min_TI＝０とするが、これは、空燃比ばらつきに起因する可燃域逸脱の対策としての制限を行わないものであり、例えば、噴射パルス幅と噴射量との相関が乱れる低パルス幅域での噴射を避けるための制限は別途行われるものとする。
【００３８】
〈第１例の作用、効果〉
以下では、上記第１例の作用、効果を説明する。
燃料噴射弁７は、機構系の劣化、摩耗およびデポ詰まりなどに起因する経時変化により、単位開弁時間あたりの燃料噴射量の変化（静流特性）と、開閉駆動時におけるリフトプロフィール変化（動流特性）が発生し、これにより、燃料噴射パルス幅（燃料噴射弁駆動信号幅）と実際に噴射される燃料量との相関が変化する。
【００３９】
ここで、単位開弁時間あたりの燃料噴射量の変化である静流特性の変化は、図９に示すように、任意の燃料噴射パルス幅に対して、一定の割合で燃料噴射量を増加方向或いは減少方向に変化させる。
また、開閉駆動時におけるリフトプロフィール変化である動流特性の変化は、図１０に示すように、任意の燃料噴射パルス幅に対して一定量だけ燃料噴射量を変化させ、この一定量の変化は、一般に増える方向の変化となる。これは、リフトプロフィール変化として、燃料噴射弁が開→閉の時間の長期化が主に発生するためである。
【００４０】
静流特性の変化は、任意の燃料噴射パルス幅に対して、一定の割合で燃料噴射量を変化させるので、図１１に示すように、空燃比としては一定値のずれを起こすことになる。
一方、動流特性の変化は、任意の燃料噴射パルス幅に対して、一定量だけ燃料噴射量を変化させるので、図１２に示すように、空燃比としては、燃料噴射パルス幅が小さくなるほどリッチ側へのずれを大きくする。
このような噴射特性の変化による空燃比ずれは、各気筒の燃料噴射弁毎に発生するので、静流特性及び動流特性の変化度合いが異なると、気筒間の空燃比にばらつきを発生させる。
【００４１】
図１３は、４気筒エンジンにおいて、全気筒の燃料噴射弁７の噴射特性（静流特性、動流特性）が同じ場合（正常時）での燃料噴射パルス幅に対する空燃比を示している。この図１３に示すように、全気筒の燃料噴射弁７の噴射特性が同じであれば、空燃比フィードバック制御無しのとき、空燃比フィードバック制御有りのとき、いずれの場合も、任意の燃料噴射パルス幅に対して、全気筒の空燃比は略一致することになる。
一方、図１４は、４気筒エンジンにおいて、各気筒の燃料噴射弁７の噴射特性（静流特性、動流特性）が、ばらばらに経時変化した場合（経時変化時）の燃料噴射パルス幅に対する空燃比を示している。この図１４に示すように、空燃比フィードバック制御なしにおいて、燃料噴射パルス幅が比較的大きいとき、静流特性の変化分が支配的に影響し、各気筒それぞれの空燃比が、一定値だけ目標空燃比に対してずれている。
【００４２】
そして、燃料噴射パルス幅が小さくなるにつれ、徐々に、動流特性の変化分の影響が大きくなり、燃料噴射パルス幅が十分に小さくなると、各気筒の空燃比は、急激にリッチ側にずれると共に、気筒間の空燃比差も大きくなる。
空燃比フィードバック制御有りのときは、排気管集合部の空燃比（各気筒の空燃比の平均値）が目標空燃比となるように、全気筒の燃料噴射量を一律に補正する機能が働く。従って、任意の燃料噴射パルス幅において、各気筒の空燃比の平均値が目標空燃比となる。
【００４３】
ここで、静流特性の影響が大きい燃料噴射パルス幅が比較的大きいときは、各気筒の空燃比は目標空燃比をはさんで、一定値だけ目標空燃比に対してずれるが、燃料噴射パルス幅が小さくなるにつれ、徐々に動流特性の変化分の影響が大きくなり、気筒間の空燃比差が大きくなるため、各気筒の空燃比のばらつきは大きくなる。
燃料噴射パルス幅が十分に小さくなると、各気筒の空燃比のばらつきは、急激に大きくなり、図１４に示す例では、１番気筒の空燃比が急激にリーン化し、可燃空燃比を逸脱することで、エンジンの安定性が大きく悪化する。
【００４４】
以上の燃料噴射弁７の経時変化メカニズムによれば、燃料噴射弁７の噴射特性が経時変化した場合、燃料噴射パルス幅が小さくなるほど、空燃比がリーン化するようになる。
そこで、コントロールユニット１６は、気筒間の空燃比のばらつきを検出し、空燃比のばらつきが許容レベルを超えて増加したときは、空燃比が可燃域を超えてリーン化しないように、空燃比ばらつきが小さいときよりも許容最小値(Min_TI)をより高く設定し、この許容最小値(Min_TI)以上に燃料噴射パルス幅を制限することで、空燃比ばらつきが小さいときに比べて噴射パルス幅の減少変化を抑制する。
【００４５】
つまり、気筒間の空燃比のばらつきが発生すると、排気管集合部の空燃比（各気筒の平均空燃比）がエンジン２回転周期で振動するようになり、空燃比ばらつきが大きいほど、この振動の振幅も大きくなる。
そこで、静流特性の変化分が空燃比ばらつきに対して支配的に影響する、燃料噴射パルス幅が比較的大きいときに、排気管集合部の空燃比のエンジン２回転周期での振幅を検出し、振幅の大きさが所定値以上のときは、燃料噴射パルス幅が小さくなった場合（動流特性の変化分の空燃比ばらつきに対する影響が大きくなった場合）に、更に空燃比のばらつきが大きくなる（可燃空燃比を逸脱する）可能性があるとし、燃料噴射パルス幅の可変範囲の下限値(Min_TI)を空燃比ばらつきが小さい場合に比べて増大させ、係る許容最小値(Min_TI)を下回る燃料噴射パルス幅を許容最小値(Min_TI)にまで増大補正する。
これにより、燃料噴射弁７の噴射特性の経時変化に起因する気筒間の空燃比ばらつきにより、一部気筒で空燃比が可燃空燃比を逸脱し、エンジン９の安定性が低下することを抑制できる。
【００４６】
「第２例」
第１例では、気筒間における空燃比ばらつきを、空燃比センサ１２の出力信号(Rabf)、つまり、排気空燃比に基づいて検出したが、気筒間で空燃比にばらつきが発生することで、各気筒での回転変動がばらつくことになるので、各気筒の回転変動から、気筒間における空燃比ばらつきを検出することが可能である。
そこで、以下に説明する第２例では、クランク角センサ１５の信号から各気筒の回転変動（角加速度）を演算し、各気筒の回転変動の最大値と最小値の差に基づいて気筒間の空燃比のばらつきを検出し、燃料噴射パルス幅を所定値以上に制限する。
【００４７】
第２例におけるエンジン９のシステム構成は、第１例において図１に示したシステムと同様であり、また、第２例におけるコントロール１６の回路構成は、第１例において図２に示した回路構成と同様であるので、ここでは詳述しない。
図１５は、第２例における、コントロールユニット１６での燃料噴射パルス幅の演算処理の概要を示す機能ブロック図である。
【００４８】
図１５に示すように、コントロールユニット１６は、気筒間空燃比ばらつき検出部１２００、燃料噴射パルス幅制限部２２００、燃料噴射パルス幅演算部３２００の各演算部を備えており、図３に示した第１例に対し、気筒間空燃比ばらつき検出部１２００が、クランク角センサ１５の信号(Ne)を入力する点が異なる。
そして、気筒間空燃比ばらつき検出部１２００は、クランク角センサ１５の信号(Ne)から求めた各気筒の回転変動（角加速度）に基づいて、空燃比ばらつき指数(Ind_imb)を演算し、燃料噴射パルス幅制限部２２００は、空燃比ばらつき指数(Ind_imb)から、燃料噴射パルス幅の（許容）最小値(Min_TI)を演算し、燃料噴射パルス幅演算部３２００は、最小値(Min_TI)等に基づいて、各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算する。
以下、各演算部の詳細を説明する。
【００４９】
〈気筒間空燃比ばらつき検出部（図１６）〉
気筒間空燃比ばらつき検出部１２００は、図１６示すように、気筒別回転変動演算部１２０１及び空燃比ばらつき指数演算部１２０２を備え、気筒別回転変動演算部１２０１は、クランク角センサ１５の信号(Ne)から各気筒の回転変動(dNe_1，dNe_2，dNe_3，dNe_4)を演算し、空燃比ばらつき指数演算部１２０２は、各気筒の回転変動(dNe_1，dNe_2，dNe_3，dNe_4)から、空燃比ばらつき指数(Ind_Imb)を演算する。
以下、気筒別回転変動演算部１２０１及び空燃比ばらつき指数演算部１２０２の詳細を述べる。
【００５０】
〈気筒別回転変動検出部（図１７）〉
気筒別回転変動検出部１２０１では、図１７に示すようにして、気筒別の回転変動(dNe_1，dNe_2，dNe_3，dNe_4)を演算する。
まず、エンジン回転速度(Ne)の今回値と前回値の差を演算し、dNe(回転変動)とする。
そして、１番気筒回転変動(dNe_1)，２番気筒回転変動(dNe_2)，３番気筒回転変動(dNe_3)，４番気筒回転変動(dNe_4)を、前記回転変動(dNe)に基づき、下記のようにして演算する。
【００５１】
・気筒判別値(CYLCNT)＝１のとき、
dNe_1＝dNe_1(前回値)，dNe_2＝dNe_2(前回値)，dNe_3＝dNe_3(前回値)，dNe_4＝dNe
・気筒判別値(CYLCNT)＝２のとき、
dNe_1＝dNe_1(前回値)，dNe_2＝dNe_2(前回値)，dNe_3＝dNe，dNe_4＝dNe_4(前回値)
・気筒判別値(CYLCNT)＝３のとき、
dNe_1＝dNe_1(前回値)，dNe_2＝dNe，dNe_3＝dNe_3(前回値)，dNe_4＝dNe_4(前回値)
・気筒判別値(CYLCNT)＝４のとき、
dNe_1＝dNe，dNe_2＝dNe_2(前回値)，dNe_3＝dNe_3(前回値)，dNe_4＝dNe_4(前回値)
【００５２】
〈空燃比ばらつき指数演算部（図１８）〉
空燃比ばらつき指数演算部１２０２では、図１８に示すように、１番気筒回転変動(dNe_1)，２番気筒回転変動(dNe_2)，３番気筒回転変動(dNe_3)，４番気筒回転変動(dNe_4)のうちの最大値と最小値とを求め、この最大値と最小値との差を、空燃比ばらつき指数(Ind_Imb)に設定する。
【００５３】
〈燃料噴射パルス幅制限部（図１９）〉
図１９は、図１５に示した燃料噴射パルス幅制限部２２００での演算処理を示す機能ブロック図である。
燃料噴射パルス幅制限部２２００では、燃料噴射パルス幅の許容最小値(Min_TI)を以下のようにして演算する。
Ind_Imb≧K2_Ind_Imbのとき、Min_TI＝K1_Min_TI
Ind_Imb＜K2_Ind_Imbのとき、Min_TI＝０
【００５４】
ここで、K2_Ind_Imbは、空燃比ばらつき指数(Ind_Imb)のレベル判定に用いる閾値であり、燃料噴射パルス幅が小さくなった場合に、可燃空燃比を逸脱する可能性があるほどの空燃比ばらつきであるか否かを判定できるように、予め適合されている。すなわち、Ind_Imb≧K2_Ind_Imbである場合は、燃料噴射パルス幅が小さくなると一部気筒で可燃空燃比を逸脱する可能性があると推定し、Ind_Imb＜K2_Ind_Imbである場合は、燃料噴射パルス幅が小さくなっても全気筒の空燃比が可燃空燃比を逸脱しないと推定できるように、前記閾値(K2_Ind_Imb)を設定してある。
【００５５】
〈燃料噴射パルス幅演算部（図８）〉
燃料噴射パルス幅演算部３２００では、各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算する。具体的には、図８に示した燃料噴射パルス幅演算部３１００と同様にして、各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算するので、詳述は省略する。
【００５６】
〈第２例の作用、効果〉
以下では、上記第２例の作用、効果を説明する。
気筒間で空燃比のばらつきが発生すると、気筒間の回転変動（もしくは角加速度）にばらつきが発生し、空燃比のばらつきが大きいほど、この回転変動のばらつきも大きくなる。
【００５７】
そこで、空燃比のばらつきに対して静流特性の変化分が支配的に影響する、燃料噴射パルス幅が比較的大きいときに、各気筒の回転変動を検出し、各気筒の回転変動の最大値と最小値の差（回転変動の気筒間でのばらつき）が所定値以上のときは、燃料噴射パルス幅を小さくすると（動流特性の変化分の空燃比ばらつきに対する影響が大きくなると）、更に空燃比のばらつきが大きくなる（可燃空燃比を逸脱する）可能性があるとし、燃料噴射パルス幅を、空燃比ばらつきが小さいときに比べてより長い値に設定される許容最小値(Min_TI)以上に制限するものである。
これにより、クランク角センサ１５の信号に基づき、気筒間における空燃比ばらつきを安定的に検出し、燃料噴射弁７の噴射特性の経時変化に起因する気筒間の空燃比ばらつきによってエンジン９の安定性が低下することを抑制できる。
【００５８】
「第３例」
第１例では、気筒間における空燃比ばらつきを、各気筒の平均空燃比の検出値に基づき検出したが、各気筒の排気空燃比を個別に検出する空燃比センサを設けることで、気筒間における空燃比ばらつきを検出することができ、係る構成とした第３例を以下に詳述する。
図２０は、第３例におけるエンジン９のシステム図である。
【００５９】
図２０に示すエンジン９は、１番気筒〜４番気筒の排気管（排気マニホールドの集合部よりも上流側）それぞれに、空燃比センサ３１〜３４が取り付けてある。上記空燃比センサ３１〜３４以外のシステム構成については、図１に示したエンジン９と同様であるので、ここでは詳述はしない。
図２１は、第３例におけるコントロールユニット１６の回路構成を示す。
この図２１に示すコントロールユニット１６は、空燃比センサ３１〜３４の出力値が入力される点が図２と異なり、それ以外は図２と同様であるので、ここでは詳述はしない。
【００６０】
図２２は、第３例のコントロールユニット１６における燃料噴射パルス幅の演算処理機能を示す機能ブロック図であり、コントロールユニット１６は、気筒間空燃比ばらつき検出部１３００、燃料噴射パルス幅制限部２３００、燃料噴射パルス幅演算部３３００を備え、気筒間空燃比ばらつき検出部１３００は、気筒毎に設けた空燃比センサ３１〜３４の出力信号(Rabf1，Rabf2，Rabf3，Rabf4)に基づいて、空燃比ばらつき指数(Ind_imb)を演算し、燃料噴射パルス幅制限部２３００は、空燃比ばらつき指数(Ind_imb)から、燃料噴射パルス幅の(許容)最小値(Min_TI)を演算し、燃料噴射パルス幅演算部３３００では、最小値(Min_TI)等に基づいて、各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算する。
以下、各演算部の詳細を説明する。
【００６１】
＜気筒間空燃比ばらつき検出部（図２３）＞
気筒間空燃比ばらつき検出部１３００は、各気筒空燃比移動平均値演算部１３０１及び空燃比ばらつき指数演算部１３０２を備える。
各気筒空燃比移動平均値演算部１３０１は、１〜４番気筒空燃比(Rabf1，Rabf2，Rabf3，Rabf4)から、１〜４番気筒の各空燃比の移動平均値(MRabf1，MRabf2，MRabf3，MRabf4)を演算し、空燃比ばらつき指数演算部１３０２は、気筒毎の移動平均値(MRabf1，MRabf2，MRabf3，MRabf4)から空燃比ばらつき指数(Ind_Imb)を演算する。
以下、各気筒空燃比移動平均値演算部１３０１及び空燃比ばらつき指数演算部１３０２の詳細を述べる。
【００６２】
〈各気筒空燃比移動平均値演算部（図２４）〉
各気筒空燃比移動平均値演算部１３０１は、図２４に示されるように、１〜４番気筒の各空燃比の（加重）移動平均値(MRabf1，MRabf2，MRabf3，MRabf4)を下式に従って演算する。
MRabf_1＝KM×Rabf_1＋(1−KM)×Rabf_1(前回値)
MRabf_2＝KM×Rabf_2＋(1−KM)×Rabf_2(前回値)
MRabf_3＝KM×Rabf_3＋(1−KM)×Rabf_3(前回値)
MRabf_4＝KM×Rabf_4＋(1−KM)×Rabf_4(前回値)
なお、重み付け係数(KM)は、MRabf_1〜4の高周波ノイズが除去されて安定するように、予め適合されている。
【００６３】
〈空燃比ばらつき指数演算部（図２５）〉
空燃比ばらつき指数演算部１３０２は、図２５に示されるように、１〜４番気筒の各空燃比の（加重）移動平均値(MRabf1，MRabf2，MRabf3，MRabf4)の最大値と最小値の差、換言すれば、１〜４番気筒の各空燃比のうち最もリッチ側の空燃比と最もリーン側の空燃比との差（空燃比のばらつき幅）を、空燃比ばらつき指数Ind_Imbとして演算する。
【００６４】
〈燃料噴射パルス幅制限部（図２６）〉
第３例における燃料噴射パルス幅制限部２３００は、図２６に示されるようにして、燃料噴射パルス幅の許容最小値(Min_TI)を求める。
すなわち、Ind_Imb≧K3_Ind_Imbのときには、Min_TI＝K3_Min_TIとし、Ind_Imb＜K3_Ind_Imbのときには、Min_TI＝0とする。
【００６５】
ここで、K3_Ind_Imbは、空燃比ばらつき指数(Ind_Imb)のレベル判定に用いる閾値であり、燃料噴射パルス幅が小さくなった場合に、可燃空燃比を逸脱する可能性があるほどの空燃比ばらつきであるか否かを判定できるように、予め適合されている。すなわち、Ind_Imb≧K3_Ind_Imbである場合は、燃料噴射パルス幅が小さくなると一部気筒で可燃空燃比を逸脱する可能性があると推定し、Ind_Imb＜K3_Ind_Imbである場合は、燃料噴射パルス幅が小さくなっても全気筒の空燃比が可燃空燃比を逸脱しないと推定できるように、前記閾値(K3_Ind_Imb)を設定してある。
【００６６】
〈燃料噴射パルス幅演算部（図８）〉
燃料噴射パルス幅演算部３３００では、各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算する。具体的には、図８に示した燃料噴射パルス幅演算部３１００と同様にして、各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算するので、詳述は省略する。
【００６７】
〈第３例の作用、効果〉
以下では、上記第３例の作用、効果を説明する。
第３例では、各気筒の排気管に取り付けられた空燃比センサ信号から各気筒の空燃比を個別に検出し、各気筒の空燃比のうち最もリーンな空燃比とリッチな空燃比との差（気筒間での空燃比ばらつき）が所定値以上のときは、燃料噴射パルス幅を小さくすると、更に空燃比のばらつきが大きくなる（可燃空燃比を逸脱する）可能性があるとし、燃料噴射パルス幅を、空燃比ばらつきが小さいときに比べてより長い値に設定される許容最小値(Min_TI)以上に制限するものである。
【００６８】
ここで、気筒毎に設けた空燃比センサ３１〜３４の出力信号(Rabf1，Rabf2，Rabf3，Rabf4)に基づいて空燃比ばらつき指数(Ind_imb)を演算するから、気筒間での空燃比ばらつきを精度良く検出することができる。
そして、空燃比ばらつきが増加したときに、燃料噴射パルス幅の許容最小値(Min_TI)をより長く変更して、空燃比が可燃空燃比を逸脱することを抑制するので、燃料噴射弁７の噴射特性の経時変化に起因する気筒間の空燃比ばらつきによってエンジン９の安定性が低下することを抑制できる。
【００６９】
「第４例」
気筒毎に空燃比を検出する空燃比センサ３１〜３４を備えるエンジン９では、これら空燃比センサ３１〜３４の出力信号(Rabf1，Rabf2，Rabf3，Rabf4)に基づいて、各気筒の燃料噴射弁７の静流特性変化分と動流特性変化分を検出し、当該検出結果に基づいて、燃料噴射パルス幅を小さくすると各気筒の空燃比が可燃空燃比の範囲を逸脱するか否かを予測することができ、係る構成とした第４例を、以下に詳述する。
第４例におけるエンジン９のシステム構成は、第３例の構成（図２０）と同様であり、また、コントロールユニット１６の内部構成も、第３例（図２１）と同様であるため、ここでは詳述しない。
【００７０】
図２７は、第４例におけるコントロールユニット１６での燃料噴射パルス幅の演算処理の概要を示す機能ブロック図であり、噴射特性変化分検出部１４００、燃料噴射パルス幅制限部２４００、燃料噴射パルス幅演算部３４００を備える。
そして、噴射特性変化分検出部１４００は、気筒毎の空燃比センサ３１〜３４の出力信号(Rabf1，Rabf2，Rabf3，Rabf4)と、１〜４番気筒燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)とに基づいて、各気筒の燃料噴射弁７の静流特性変化分(S_1，S_2，S_3，S_4)、及び、動流特性変化分(QFD_1，QFD_2，QFD_3，QFD4)を演算し、更に、各気筒の基準燃料噴射量(QF0_1，QF0_2，QF0_3，QF0_4)を演算する。
【００７１】
燃料噴射パルス幅制限部２４００は、静流特性変化分(S_1，S_2，S_3，S_4)、動流特性変化分(QFD_1，QFD_2，QFD_3，QFD4)、及び、各気筒の基準燃料噴射量(QF0_1，QF0_2，QF0_3，QF0_4)から、燃料噴射パルス幅の(許容)最小値(Min_TI)を演算する。
そして、燃料噴射パルス幅演算部３４００は、燃料噴射パルス幅最小値(Min_TI)等に基づいて、各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算する。
以下、各演算部の詳細を説明する。
【００７２】
〈噴射特性変化分検出部（図２８）〉
噴射特性変化分検出部１４００は、図２８の機能ブロック図に示すように、ｎ番気筒基準燃料噴射量演算部１４０１、ｎ番気筒実燃料噴射量演算部１４０２、ｎ番気筒噴射特性変化分演算部１４０３としての機能を備え、これらの演算部１４０１〜１４０３によって、n番気筒基準燃料噴射量(QF0_n)とｎ番気筒静流特性変化分(S_n)とｎ番気筒動流特性変化分(QFD_n)とを演算する。ここで、ｎは気筒番号（１〜４）であり、本処理は、気筒毎に実施される。
【００７３】
ｎ番気筒基準燃料噴射量演算部１４０１は、TI_n，S_n(前回値)，QFD_n(前回値)から、n番気筒基準燃料噴射量(QF0_n)を演算し、ｎ番気筒実燃料噴射量演算部１４０２は、QF0_n，TI_n，Rabf_nからｎ番気筒実燃料噴射量ｃ(QF_n_c)、ｎ番気筒基準燃料噴射量ｃ(QF0_n_c)、ｎ番気筒実燃料噴射量ｂ(QF_n_b)、ｎ番気筒基準燃料噴射量ｂ(QF0_n_b)を演算し、更に、ｎ番気筒噴射特性変化分演算部１４０３は、QF_n_c，QF0_n_c，QF_n_b，QF0_n_bから、ｎ番気筒静流特性変化分(S_n)とｎ番気筒動流特性変化分(QFD_n)を演算する。
以下、ｎ番気筒基準燃料噴射量演算部１４０１、ｎ番気筒実燃料噴射量演算部１４０２、ｎ番気筒噴射特性変化分演算部１４０３の詳細を述べる。
【００７４】
〈ｎ番気筒基準燃料噴射量演算部（図２９）〉
ｎ番気筒基準燃料噴射量演算部１４０１は、図２９に示すようにして、ｎ番気筒基準燃料噴射量(QF0_n）を演算する。
具体的には、TI_n(n番気筒燃料噴射パルス幅)を、テーブルTbl_QF0に基づき、燃料噴射量に変換する。テーブルTbl_QF0は、燃料噴射弁７の噴射特性が変化する前の新品状態での燃料噴射量と噴射パルス幅との相関の設計値（誤差のない理想特性）に相当するものとする。
【００７５】
テーブルTbl_QF0によって変換した燃料噴射量に、QFD_n(ｎ番気筒動流特性変化分)を加え、更に、S_n(ｎ番気筒静流特性変化分)を乗じた値を、QF0_n(ｎ番気筒基準燃料噴射量)とする。
上記のQF0_n(ｎ番気筒基準燃料噴射量)は、ｎ番気筒の燃料噴射弁７が新品状態で噴射特性に誤差のない理想特性（設計値）であると仮定した場合における、噴射特性の経時変化後の燃料噴射量である。
なお、S_n、QFD_nは、前回値と比較して所定値以上変化しているときに更新し、変化していないときには更新しない構成とすることができる。
【００７６】
〈ｎ番気筒実燃料噴射量演算部（図３０）〉
ｎ番気筒実燃料噴射量演算部１４０２は、図３０に示すようにして、ｎ番気筒実燃料噴射量ｃ(QF_n_c)、ｎ番気筒基準燃料噴射量ｃ(QF0_n_c)、ｎ番気筒実燃料噴射量ｂ(QF_n_b)、ｎ番気筒基準燃料噴射量ｂ(QF0_n_b)を演算する。
【００７７】
具体的には、下式に従って、QF_n_c，QF0_n_c，QF_n_b，QF0_n_bを演算する。
・TI_n≧KTIcのとき、
AFO_n_c＝Alpha×Rabf_n、QF0_n_c＝QF0_n、QF_n_c＝AFst／AFO_n_c×QF0_n
・TI_n≦KTIbのとき、
AFO_n_b＝Alpha×Rabf_n、QF0_n_b＝QF0_n、QF_n_b＝AFst／AFO_n_b×QF0_n
【００７８】
上式において、TI_nはｎ番気筒燃料噴射パルス幅、QF0_nはｎ番気筒基準燃料噴射量、Rabf_nはｎ番気筒空燃比、AFO_nは空燃比フィードバック制御を実施しないときの当該気筒の空燃比（ベース空燃比）、Alphaは空燃比フィードバック制御で用いる燃料噴射量補正係数、AFstは誤差がない理想的な燃料噴射弁７での空燃比、つまり、目標空燃比（一般に理論空燃比）である。
また、KTIc＞KTIbであり、KTIcとKTIbとの偏差は、後述するように、異なる２つの燃料噴射パルス幅それぞれにおける実噴射量からQFD_n(ｎ番気筒動流特性変化分)とS_n(ｎ番気筒静流特性変化分)とを求めるのに十分な値となるように設定されている。
【００７９】
〈ｎ番気筒噴射特性変化分演算部（図３１）〉
ｎ番気筒噴射特性変化分演算部１４０３は、図３１に示すようにして、ｎ番気筒静流特性変化分(S_n）とｎ番気筒動流特性変化分(QFD_n）を演算する。
具体的には、下式に従ってS_n及びQFD_nを演算する。
S_n=(QF_n_c−QF_n_b)／(QF0_n_c−QF0_n_b)
QFD_n=QF_n_c／S_n−QF0_n_c
【００８０】
〈燃料噴射パルス幅制限部（図３２）〉
燃料噴射パルス幅制限部２４００は、図３２に示すようにして、燃料噴射パルス幅の最小値(Min_TI)を演算する。
具体的には、まず、ｎ番気筒リーン限界相当燃料噴射量(QF0_n_L)を次のように求める。
QF0_n_L＝(R／(1−R))×QFD_n
R=KAF_L／AF_st×Alpha_GK×S_n
【００８１】
上式で、KAF_Lはリーン限界相当空燃比（１６〜１７を目安）、AF_stは理論空燃比相当値である。また、Alpha_GKは空燃比フィードバック制御で用いる燃料噴射量補正係数Alphaの学習値であり、Alpha_GKの値が大きくなると、燃料噴射量は増え（空燃比リッチになり）、Alpha_GKが小さくなると、燃料噴射量は減る（空燃比はリーンになる）。
【００８２】
次いで、ｎ番気筒リーン限界相当燃料噴射量(QF0_n_L)を、テーブルTbl_TI0を用いて、ｎ番気筒リーン限界相当燃料噴射パルス幅(TI0_n_L)に変換する。テーブルTbl_TI0は、前述したテーブル(Tbl_QF0)の入力列と出力列を逆にしたテーブルである。
ｎ番気筒リーン限界相当燃料噴射パルス幅(TI0_n_L)を演算すると、TI0_n_L(n：１〜4）の中での最大値をMin_TI（燃料噴射パルス幅最小値）とする。つまり、４気筒のいずれでもリーン限界（可燃空燃比領域）を超えてリーン化することのない噴射パルス幅を、Min_TI（燃料噴射パルス幅最小値）とする。
【００８３】
〈燃料噴射パルス幅演算部（図８）〉
燃料噴射パルス幅演算部３４００は、各気筒の燃料噴射パルス幅(TI1，TI2，TI3，TI4)を演算する。具体的には、図８に示されるようにして、燃料噴射パルス幅(TI1，TI2，TI3，TI4)を演算するが、第１例と同じであるのでここでは演算内容を詳述しない。
【００８４】
〈第４例の作用、効果〉
以下では、上記第４例の作用、効果を説明する。
図９、図１０に示した燃料噴射弁７の噴射特性の変化に基づくと、ある燃料噴射パルス幅における、噴射特性が変化した後の燃料噴射量は、（１）式で表せる。
QF_n＝S_n×(QF0_n＋QFD_n)・・・・（１）
【００８５】
また、空燃比フィードバック制御を実施中のｎ番気筒の空燃比をAFC_nとすると、空燃比フィードバック制御を実施しないときの当該気筒の空燃比AFO_n、つまり、噴射特性の変化による空燃比ずれを示す空燃比は、（２）式で表される。
AFO_n＝Alpha×AFC_n・・・・（２）
また、QFn，QF0n，AFOnの関係は、（３）式で表される。
QF_n＝AFst／AFO_n×QF0_n・・・・（３）
【００８６】
従って、異なる２つの燃料噴射パルス幅における各気筒の空燃比およびAlphaを検出すれば、（１）式と（３）式とに基づき、（４）式、（５）式に従ってS_nとQFD_nを求めることができ、第４例では、TI_n≧KTIcのとき、及び、TI_n≦KTIbのときに、実燃料噴射量(QF_n)及び基準燃料噴射量(QF0_n)を求めている。
S_n＝(QF_n_c−QF_n_b)／(QF0_n_c−QF0_n_b)・・・・（４）
QFD_n＝(QF_n_c／S_n)−QF0_n・・・・（５） 
【００８７】
そして、リーン限界相当空燃比をKAF_Lとしたとき、
AFC_n＝KAF_L・・・・（６）
を満たすQF0_nは、（６）式に（２）式、（３）式、（１）式を順次代入すると、下記の（７）式で得られる。
QF0_n＝(R／1−R)×QFD_n・・・・（７）
ここで、R＝(KAF_L／AF_st)×Alpha×S_nであり、TI_nとQF0_nの関係は、あらかじめ決めておくことができるので、（７）式を満たすTI_nを求めることができる。
【００８８】
そして、（７）式を満たす各気筒のTI_nの最大値以上に燃料噴射パルス幅を制限することで、いずれの気筒の空燃比もリーン限界空燃比KAF_Lを越えることを抑制できる。
燃料噴射弁の経時変化は、主に静流特性分と動流特性分によって起きるから、各気筒の燃料噴射弁の静流特性変化分と動流特性変化分を検出できれば、任意の燃料噴射パルス幅に対する空燃比のずれ量も予想できる。これにより、可燃空燃比を逸脱する燃料噴射パルス幅も予想できるので、燃料噴射パルス幅の制限も適切にできるようになる。
【００８９】
「第５例」
以下に詳述する第５例は、排気管集合部の空燃比センサ信号（平均空燃比）とクランク角センサ信号（エンジン回転速度）とに基づいて、最もリッチもしくは最もリーンな気筒の燃料噴射弁の静流特性変化分と動流特性変化分を検出し、当該検出結果に基づいて、当該気筒の燃料噴射パルス幅を小さくすると当該気筒の空燃比が可燃空燃比の範囲を逸脱するか否かを予測し、逸脱すると予測されるときは、全気筒の燃料噴射パルス幅を所定値以上に制限する。
第５例のエンジンシステムは、第１例で示した図１と同様であるので詳述を省略する。
また、第５例におけるコントロールユニット１６の内部構成も、第１例で示した図２と同様であるので詳述を省略する。
【００９０】
図３３は、第５例におけるコントロールユニット１６の制御内容を示す機能ブロック図であり、２回転成分演算部１５０１、２回転成分位相演算部１５０２、第１空燃比ずれ気筒検出部１５０３、２回転成分パワー演算部１５０４、気筒別回転変動演算部１５０５、第２空燃比ずれ気筒検出部１５０６、第３空燃比ずれ気筒検出部１５０７、空燃比ずれ気筒の空燃比推定部１５０８、噴射特性変化分検出部１５０９、燃料噴射パルス幅制限部２５００、燃料噴射パルス幅演算部３５００を備えている。
【００９１】
ここで、２回転成分演算部１５０１は、空燃比センサ１２の信号(Rabf)の２回転成分の実数部(R_2rev)と虚数部(I_2rev)を演算し、２回転成分位相演算部１５０２は、R_2revとI_2revから２回転成分位相(Phase)を演算する。そして、第１空燃比ずれ気筒検出部１５０３は、２回転成分位相(Phase)から、全気筒の中で最も空燃比がずれている気筒と当該気筒における空燃比ずれの方向（リッチ若しくはリーン）を検出し、当該検出結果に応じてフラグ(f_a_2rev，f_b_2rev，f_c_2rev，f_d_2rev)の設定を行う。
また、２回転成分パワー演算部１５０４は、R_2revとI_2revから、２回転成分パワー(Power)を演算する。
【００９２】
一方、気筒別回転変動演算部１５０５は、クランク角センサ１５の信号から気筒別回転変動(dNe_1，dNe_2，dNe_3，dNe_4)を演算し、第２空燃比ずれ気筒検出部１５０６は、d_Ne_1，dNe_2，dNe_3，dNe_4から、最も空燃比がずれている気筒と当該気筒における空燃比ずれの方向（リッチ若しくはリーン）を検出し、当該検出結果に応じてフラグ(f_1R_dNe，f_2R_dNe，f_3R_dNe，f_4R_dNe，f_1L_dNe，f_2L_dNe，f_3L_dNe，f_4L_dNe)の設定を行う。
そして、第３空燃比ずれ気筒検出部１５０７は、第１空燃比ずれ気筒検出部１５０３の検出結果と、第２空燃比ずれ気筒検出部１５０６の検出結果の双方を用いて、最終的に、最も空燃比がずれている気筒と当該気筒における空燃比ずれ方向（リッチ若しくはリーン）を検出し、当該検出結果に応じてフラグ(f_1R，f_2R，f_3R，f_4R，f_1L，f_2L，f_3L，f_4L)の設定を行う。
【００９３】
また、空燃比ずれ気筒の空燃比推定部１５０８は、第３空燃比ずれ気筒検出部１５０７の検出結果と空燃比センサ１２の信号(Rabf)と２回転成分パワー(Power)とから、最も空燃比がずれている気筒の空燃比(estRabf_k_cyl)と当該気筒の気筒番号(k_cyl)を演算する。
噴射特性変化分検出部１５０９は、estRabf_k_cyl、k_cyl、及び、１〜４番気筒燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)に基づいて、最も空燃比がずれている気筒の燃料噴射弁７について、静流特性変化分(S_k_cyl)、動流特性変化分(QFD_k_cyl)、及び、当該気筒の基準燃料噴射量(QF0_k_cyl)を演算する。
【００９４】
燃料噴射パルス幅制限部２５００は、S_k_cyl，QFD_k_cyl，QF0_k_cylから、燃料噴射パルス幅の（許容）最小値(Min_TI)を演算し、燃料噴射パルス幅演算部３５００は、燃料噴射パルス幅の最小値(Min_TI)等に基づいて、各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算する。
以下、各演算部の詳細を説明する。
【００９５】
〈２回転成分演算部（図５）〉
２回転成分演算部１５０１は、空燃比センサ１２の信号(Rabf)の２回転成分の実数部(R_2rev)と虚数部(I_2rev)を演算する。具体的には、第１例で詳述図５に示されるようにして演算するので、ここでは詳述しない。
【００９６】
〈２回転成分位相演算部（図３４）〉
２回転成分位相演算部１５０２は、２回転成分位相(Phase)を演算する。
具体的には、まず、R_2revとI_2revから、下式により、Phase0(２回転成分位相基本値)を演算する。
Phase0＝arctan2(I_2rev／R_2rev)×(180／π)
【００９７】
ここで、arctan2は、４象限(−180〜180deg)に対応した逆正接値(＝位相)の演算を示す。
更に、位相の範囲を0〜360degとするPhase(２回転成分位相)を求める。
具体的には、Phase0＜0のときは、Phase＝Phase0＋360とし、それ以外のときは、Phase＝Phase0とする。
【００９８】
〈第１空燃比ずれ気筒検出部（図３５）〉
第１空燃比ずれ気筒検出部１５０３は、Phase(２回転成分位相)を用い、図３５に示すようにして空燃比がずれている気筒を検出する。
まず、下式に示すように、各フラグ(f_a_2rev，f_b_2rev，f_c_2rev，f_d_2rev)を初期化する。
f_a_2rev＝0，f_b_2rev＝0，f_c_2rev＝0，f_d_2rev＝0
【００９９】
そして、K1_Phase≦Phase＜K2_Phaseの場合は、１番気筒の空燃比が最もリッチもしくは４番気筒の空燃比が最もリーンであるとして、１番気筒リッチもしくは４番気筒リーンフラグ(f_a_2rev)を１とする。
４気筒のエンジン９で、点火順序（燃焼順序）が１番気筒→３番気筒→４番気筒→２番気筒）であるとすると、例えば、１番気筒の空燃比がリッチ側にずれた場合と、４番気筒の空燃比がリーン側にずれた場合では、位相がほぼ重なるため、どちらかに特定することができない。ただし、１番気筒リッチもしくは４番気筒リーンのいずれかであることは、特定することができるので、検出結果を、１番気筒リッチもしくは４番気筒リーンとする。
【０１００】
以下、同様に、K2_Phase≦Phase＜K3_Phaseの場合は、２番気筒リッチもしくは３番気筒リーンフラグ(f_b_2rev)を１とし、K3_Phase≦Phase＜K4_Phaseの場合は、３番気筒リッチもしくは２番気筒リーンフラグ(f_c_2rev)を１とし、K4_Phase≦Phase＜K5_Phaseの場合は、４番気筒リッチもしくは１番気筒リーンフラグ(f_d_2rev)を１とする。
なお、Phase(２回転成分位相)を判別するための閾値である、K1_Phase、K2_Phase、K3_Phase、K4_Phase、K5_Phaseの値は、エンジン９毎に予め適合される。
【０１０１】
〈２回転成分パワー演算部（図３６）〉
２回転成分パワー演算部１５０４は、２回転成分パワー(Power)を演算する。具体的には、図３６に示されるように、R_2revとI_2revから、下式（数２）により、Power(２回転成分パワー)を演算する。
【数２】
2014137041.tif 000004
【０１０２】
〈気筒別回転変動演算部（図３７）〉
気筒別回転変動演算部１５０５は、図３７に示すようにして、気筒別の回転変動(dNe_1，dNe_2，dNe_3，dNe_4)を演算する。
まず、Ne(回転速度)の今回値と前回値の差（一定時間における回転速度(Ne)の変化量）を演算し、dNe(回転変動)とする。
そして、以下のように気筒別の回転変動(dNe_1，dNe_2，dNe_3，dNe_4)、即ち、１番気筒回転変動(dNe_1)，２番気筒回転変動(dNe_2)，３番気筒回転変動(dNe_3)，４番気筒回転変動(dNe_4)を演算する。
【０１０３】
・CYLCNT＝１のとき、
dNe_1＝dNe_1(前回値)，dNe_2＝dNe_2(前回値)，dNe_3＝dNe_3(前回値)，dNe_4＝dNe
・CYLCNT＝２のとき、
dNe_1＝dNe_1(前回値)，dNe_2＝dNe_2(前回値)，dNe_3＝dNe，dNe_4＝dNe_4(前回値)
・CYLCNT＝３のとき、
dNe_1＝dNe_1(前回値)，dNe_2＝dNe，dNe_3＝dNe_3(前回値)，dNe_4＝dNe_4(前回値)
・CYLCNT＝４のとき、
dNe_1＝dNe，dNe_2＝dNe_2(前回値)，dNe_3＝dNe_3(前回値)，dNe_4＝dNe_4(前回値)
【０１０４】
〈第２空燃比ずれ気筒検出部（図３８）〉
第２空燃比ずれ気筒検出部１５０６は、気筒別の回転変動(dNe_1，dNe_2，dNe_3，dNe_4)を用いて、空燃比がずれている気筒を検出する。
具体的には、図３８に示したように、まず、各フラグ(f_1R_dNe，f_2R_dNe，f_3R_dNe，f_4R_dNe，f_1L_dNe，f_2L_dNe，f_3L_dNe，f_4L_dNe)を初期化して、f_1R_dNe＝０，f_2R_dNe＝０，f_3R_dNe＝０，f_4R_dNe＝０，f_1L_dNe＝０，f_2L_dNe＝０，f_3L_dNe＝０，f_4L_dNe＝０
【０１０５】
そして、気筒別の回転変動(dNe_1，dNe_2，dNe_3，dNe_4)に基づき、以下のようにして、各フラグ(f_1R_dNe，f_2R_dNe，f_3R_dNe，f_4R_dNe，f_1L_dNe，f_2L_dNe，f_3L_dNe，f_4L_dNe)のいずれかを立てる処理を行う。
dNe_1，dNe_2，dNe_3，dNe_4のうちの最大値がdNe_1であるときは、１番気筒の空燃比がもっともリッチであるとして、１番気筒リッチフラグ(f_1R_dNe)を１とする。
【０１０６】
また、dNe_1，dNe_2，dNe_3，dNe_4のうちの最大値がdNe_2であるときは、２番気筒の空燃比がもっともリッチであるとして、２番気筒リッチフラグ(f_2R_dNe)を１とする。
また、dNe_1，dNe_2，dNe_3，dNe_4のうちの最大値がdNe_3であるときは、３番気筒の空燃比がもっともリッチであるとして、３番気筒リッチフラグ(f_3R_dNe)を１とする。
【０１０７】
更に、dNe_1，dNe_2，dNe_3，dNe_4のうちの最大値がdNe_4であるときは、４番気筒の空燃比がもっともリッチであるとして、４番気筒リッチフラグ(f_4R_dNe)を１とする。
一方、dNe_1，dNe_2，dNe_3，dNe_4のうちの最小値がdNe_1であるときは、１番気筒の空燃比がもっともリーンであるとして、１番気筒リーンフラグ(f_1R_dNe)を１とする。
【０１０８】
また、dNe_1，dNe_2，dNe_3，dNe_4のうちの最小値がdNe_2であるときは、２番気筒の空燃比がもっともリーンであるとして、２番気筒リーンフラグ(f_2L_dNe)を１とする。
また、dNe_1，dNe_2，dNe_3，dNe_4のうちの最小値がdNe_3であるときは、３番気筒の空燃比がもっともリーンであるとして、３番気筒リーンフラグ(f_3L_dNe)を１とする。
【０１０９】
更に、dNe_1，dNe_2，dNe_3，dNe_4のうちの最小値がdNe_4であるときは、４番気筒の空燃比がもっともリーンであるとして、４番気筒リーンフラグ(f_4L_dNe)を１とする。
なお、同じ気筒について、リッチフラグ(f_1R_dNe，f_2R_dNe，f_3R_dNe，f_4R_dNe)と、リーンフラグ(f_1L_dNe，f_2L_dNe，f_3L_dNe，f_4L_dNe)との双方が１となったときは、リーン判定を優先し、リーンフラグ(f_1L_dNe，f_2L_dNe，f_3L_dNe，f_4L_dNe)を１に保持する一方、リッチフラグ(f_1R_dNe，f_2R_dNe，f_3R_dNe，f_4R_dNe)を０にリセットする。
【０１１０】
〈第３空燃比ずれ気筒検出部（図３９）〉
第３空燃比ずれ気筒検出部１５０７は、第１空燃比ずれ気筒検出部１５０３の検出結果と第２空燃比ずれ気筒検出部１５０６の検出結果とを用いて、空燃比がずれている気筒を最終的に特定する。
具体的には、図３９に示したように、まず、空燃比がずれている気筒の最終判定結果を設定する、フラグ(f_1R，f_2R，f_3R，f_4R，f_1L，f_2L，f_3L，f_4L)を初期化して、f_1R＝０，f_2R＝０，f_3R＝０，f_4R＝０，f_1L＝０，f_2L＝０，f_3L＝０，f_4L＝０とする。
【０１１１】
そして、f_a_2rev＝１かつf_1R_dNe＝１であって、空燃比センサ信号の２回転成分の位相情報から１番気筒の空燃比がもっともリッチであると判定し、かつ、クランク角センサ信号による回転変動情報から１番気筒の空燃比がもっともリッチであると判定している場合、つまり、空燃比センサ信号２回転成分の位相情報及びクランク角センサ信号による回転変動情報の双方が１番気筒の空燃比がもっともリッチであることを示している場合には、最終的に１番気筒の空燃比がもっともリッチであると判定し、１番気筒リッチフラグ(f_1R)を１とする。
【０１１２】
以下、同様に、f_b_2rev＝１かつf_2R_dNe＝１であればf_2R＝１とし、f_c_2rev＝１かつf_3R_dNe＝１であればf_3R=1とし、f_d_2rev＝１かつf_4R_dNe＝１であれば、f_4R＝１とする。
また、f_d_2rev＝１かつf_1L_dNe＝１であって、空燃比センサ信号の２回転成分の位相情報から１番気筒の空燃比がもっともリーンであると判定し、かつ、クランク角センサ信号による回転変動情報から１番気筒の空燃比がもっともリーンであると判定している場合、つまり、空燃比センサ信号の２回転成分の位相情報及びクランク角センサ信号による回転変動情報の双方が１番気筒の空燃比がもっともリーンであることを示している場合には、最終的に１番気筒の空燃比がもっともリーンであると判定し、１番気筒リーンフラグ(f_1L)を１とする。
以下、同様に、f_c_2rev＝１かつf_2L_dNe＝１であればf_2L＝１とし、f_b_2rev＝１かつf_3L_dNe＝１であればf_3L＝１とし、f_a_2rev＝１かつf_4L_dNe＝１であればf_4L＝１とする。
【０１１３】
〈空燃比ずれ気筒の空燃比推定部（図４０）〉
空燃比ずれ気筒の空燃比推定部１５０８は、空燃比ずれ気筒番号(k_cyl)と空燃比ずれ気筒の空燃比(estRabf_k_cyl)を演算する。
具体的には、図４０に示したように、空燃比ずれ気筒番号(k_cyl)については、１番気筒の空燃比がもっともリッチ又はリーンであって、f_1R＝１もしくはf_1L＝１の場合には、空燃比ずれ気筒番号(k_cyl)を１とする。
【０１１４】
以下、同様に、f_2R＝１もしくはf_2L＝１の場合はk_cyl＝２とし、f_3R＝１もしくはf_3L＝１の場合はk_cyl＝３とし、f_4R＝１もしくはf_4L＝１の場合はk_cyl＝４とする。
また、空燃比ずれ気筒の空燃比(estRabf_k_cyl)を演算するための処理として、リッチフラグ(f_1R，f_2R，f_3R，f_4R)のいずれかが１であればリッチフラグ(f_R)を１とし、リッチフラグ(f_1L，f_2L，f_3L，f_4L)のいずれかが１であればリーンフラグ(f_L)を１とする。
【０１１５】
そして、空燃比ずれ気筒の空燃比(estRabf_k_cyl)を、f_R＝１の場合は、estRabf_k_cyl＝Rabf−dRabfとし、f_L＝１の場合は、estRabf_k_cyl＝Rabf＋dRabfとする。
ここで、Rabfは、空燃比センサ１２の出力信号(Rabf)であって各気筒の平均空燃比を示し、空燃比ずれ量(dRabf)は、２回転成分パワー(Power)、つまり、空燃比センサ１２の信号(Rabf)のエンジン２回転周期の振幅の大きさを、テーブル(Tbl_estRabf)に基づいて変換して得た値である。
テーブル(Tbl_estRabf)の変換特性は、２回転成分パワー(Power)と空燃比のずれ量との相関をエンジンの特性に応じて予め設定したものである。
【０１１６】
〈噴射特性変化分検出部（図４１）〉
噴射特性変化分検出部１５０９は、図４１に示したように、k_cyl番気筒基準燃料噴射量演算部１５０９Ａと、k_cyl番気筒実燃料噴射量演算部１５０９Ｂと、k_cyl番気筒噴射特性変化分演算部１５０９Ｃとを備える。
k_cyl番気筒基準燃料噴射量演算部１５０９Ａは、TI_k_cyl，S_k_cyl(前回値)，QFD_k_cyl(前回値)から、k_cyl番気筒基準燃料噴射量(QF0_k_cyl)を演算する。
【０１１７】
k_cyl番気筒実燃料噴射量演算部１５０９Ｂは、QF0_k_cyl，TI_k_cyl，Rabf_k_cylから、k_cyl番気筒実燃料噴射量ｃ(QF_k_cyl_c)、k_cyl番気筒基準燃料噴射量ｃ(QF0_k_cyl_c)、ｎ番気筒実燃料噴射量ｂ(QF_k_cyl_b)、ｎ番気筒基準燃料噴射量ｂ(QF0_k_cyl_b)をそれぞれ演算する。
k_cyl番気筒噴射特性変化分演算部１５０９Ｃは、QF_k_cyl_c，QF0_k_cyl_c，QF_k_cyl_b，QF0_k_cyl_bからk_cyl番気筒静流特性変化分(S_k_cyl)とk_cyl番気筒動流特性変化分(QFD_k_cyl)を演算する。
以下、k_cyl番気筒基準燃料噴射量演算部１５０９Ａ、k_cyl番気筒実燃料噴射量演算部１５０９Ｂ、k_cyl番気筒噴射特性変化分演算部１５０９Ｃの詳細を述べる。
【０１１８】
〈k_cyl番気筒基準燃料噴射量演算部（図４２）〉
k_cyl番気筒基準燃料噴射量演算部１５０９Ａは、k_cyl番気筒基準燃料噴射量(QF0_k_cyl）を演算する。
具体的には、図４２に示すように、TI_k_cyl(k_cyl番気筒燃料噴射パルス幅)を、テーブルTbl_QF0を用いて燃料噴射量に変換し、当該変換で得た燃料噴射量にQFD_k_cyl(k_cyl番気筒動流特性変化分)を加え、更に、S_k_cyl(k_cyl番気筒静流特性変化分)を乗じた値を、QF0_k_cyl(k_cyl番気筒基準燃料噴射量)とする。
【０１１９】
テーブルTbl_QF0は、燃料噴射弁７の噴射特性が変化する前の新品状態での燃料噴射量と噴射パルス幅との相関の設計値（誤差のない理想特性）に相当するものとする。
なお、S_k_cyl、QFD_k_cylは、前回値と比較して所定値以上変化しているときに更新し、変化していないときには更新しない構成とすることができる。
【０１２０】
〈k_cyl番気筒実燃料噴射量演算部（図４３）〉
k_cyl番気筒実燃料噴射量演算部１５０９Ｂは、TI_k_cyl(k_cyl番気筒燃料噴射パルス幅)、QF0_k_cyl(k_cyl番気筒基準燃料噴射量)、及び、空燃比ずれ気筒の空燃比(estRabf_k_cyl)に基づいて、k_cyl番気筒実燃料噴射量ｃ(QF_k_cyl_c)、k_cyl番気筒基準燃料噴射量ｃ(QF0_k_cyl_c)、k_cyl番気筒実燃料噴射量ｂ(QF_k_cyl_b)、k_cyl番気筒基準燃料噴射量ｂ(QF0_k_cyl_b)を演算する。
【０１２１】
具体的には、図４３に示すように、
・TI_k_cyl≧KTIcのとき、
AFO_k_cyl_c＝Alpha×Rabf_k_cyl
QF0_k_cyl_c＝QF0_k_cyl
QF_k_cyl_c＝AFst/AFO_k_cyl_c×QF0_k_cyl
・TI_k_cyl≦KTIbのとき、
AFO_k_cyl_b＝Alpha×Rabf_k_cyl
QF0_k_cyl_b＝QF0_k_cyl
QF_k_cyl_b＝AFst/AFO_k_cyl_b×QF0_k_cyl
として、QF_k_cyl_c、QF0_k_cyl_c、QF_k_cyl_b、QF0_k_cyl_bを演算する。
【０１２２】
ここで、TI_k_cylはk_cyl番気筒燃料噴射パルス幅、QF0_k_cylはk_cyl番気筒基準燃料噴射量、Rabf_k_cylはk_cyl番気筒空燃比、AFO_k_cylは空燃比フィードバック制御を実施しないときの当該気筒の空燃比（ベース空燃比）、Alphaは空燃比フィードバック制御で用いる燃料噴射量補正係数、AFstは誤差がない理想的な燃料噴射弁７での空燃比、つまり、目標空燃比（一般に理論空燃比）である。
また、KTIc＞KTIbであり、KTIcとKTIbとの偏差は、後述するように、異なる２つの燃料噴射パルス幅それぞれにおける実噴射量から、k_cyl番気筒静流特性変化分(S_k_cyl)とk_cyl番気筒動流特性変化分(QFD_k_cyl)とを求めるのに十分な値となるように設定されている。
【０１２３】
〈k_cyl番気筒噴射特性変化分演算部（図４４）〉
k_cyl番気筒噴射特性変化分演算部１５０９Ｃは、k_cyl番気筒実燃料噴射量ｃ(QF_k_cyl_c)、k_cyl番気筒基準燃料噴射量ｃ(QF0_k_cyl_c)、k_cyl番気筒実燃料噴射量ｂ(QF_k_cyl_b)、k_cyl番気筒基準燃料噴射量ｂ(QF0_k_cyl_b)に基づいて、k_cyl番気筒静流特性変化分(S_k_cyl）とk_cyl番気筒動流特性変化分(QFD_k_cyl）を演算する。
【０１２４】
具体的には、図４４に示したように、下式に従って、S_k_cyl，QFD_k_cylを演算する。
S_k_cyl＝(QF_k_cyl_c−QF_k_cyl_b)／(QF0_k_cyl_c−QF0_k_cyl_b)
QFD_k_cyl＝QF_k_cyl_c／S_k_cyl−QF0_k_cyl_c
【０１２５】
〈燃料噴射パルス幅制限部（図４５）〉
燃料噴射パルス幅制限部２５００は、燃料噴射パルス幅の最小値(Min_TI)を演算する。
具体的には、図４５に示したように、まず、k_cyl番気筒静流特性変化分(S_k_cyl）とk_cyl番気筒動流特性変化分(QFD_k_cyl）とから、k_cyl番気筒リーン限界相当燃料噴射量(QF0_k_cyl_L)を、下式に従って演算する。
【０１２６】
QF0_k_cyl_L＝(R／(1−R))×QFD_k_cyl
R＝KAF_L／AF_st×Alpha_GK×S_k_cyl
上式で、KAF_Lはリーン限界相当空燃比（１６〜１７を目安）、AF_stは理論空燃比相当値である。また、Alpha_GKは空燃比フィードバック制御で用いる燃料噴射量補正係数Alphaの学習値であり、Alpha_GKの値が大きくなると、燃料噴射量は増え（空燃比はリッチになり）、Alpha_GKが小さくなると、燃料噴射量は減る（空燃比はリーンになる）。
【０１２７】
次いで、k_cyl番気筒リーン限界相当燃料噴射量(QF0_k_cyl_L)を、テーブルTbl_TI0を用いてTI0_k_cyl_L(k_cyl番気筒リーン限界相当燃料噴射パルス幅）に変換する。テーブルTbl_TI0は、k_cyl番気筒基準燃料噴射量演算部１５０９Ａで用いるテーブルTbl_QF0の入力列と出力列を逆にしたテーブルである。
TI0_k_cyl_L(k_cyl番気筒リーン限界相当燃料噴射パルス幅）を求めると、TI0_k_cyl_L(k_cyl：１〜4）の中での最大値をMin_TI（燃料噴射パルス幅最小値）とする。
【０１２８】
〈燃料噴射パルス幅演算部（図８）〉
燃料噴射パルス幅演算部３５００は、各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算する。具体的には、第１例と同様に、図８に示すようにして各気筒の燃料噴射パルス幅(TI_1，TI_2，TI_3，TI_4)を演算するので、詳述しない。
【０１２９】
〈第５例の作用、効果〉
例えば、１番気筒の空燃比がリッチ側にずれた場合と、４番気筒の空燃比がリーン側にずれた場合とを、空燃比センサ信号のPhase(２回転成分位相)からは区別できないが、１番気筒リッチもしくは４番気筒リーンのいずれかであることは、特定することができる。
そこで、エンジンの回転変動に基づきもっともリーン若しくはもっともリッチであると判定した気筒と、Phase(２回転成分位相)に基づく空燃比ずれの判定結果とを対比することで、空燃比ばらつきを精度良く検出することができる。
【０１３０】
また、燃料噴射弁の経時変化は、主に静流特性分と動流特性分によって起きるから、各気筒の燃料噴射弁の静流特性変化分と動流特性変化分を検出できれば、任意の燃料噴射パルス幅に対する空燃比のずれ量も予想できる。従って、第４例と同様に、静流特性変化分と動流特性変化分を検出することで、可燃空燃比を逸脱する燃料噴射パルス幅を予想でき、燃料噴射パルス幅の制限を適切に行える。
【０１３１】
「第６例」
以下に詳述する第６例は、気筒間の空燃比のばらつきを、空燃比センサ信号のエンジン２回転周期の振幅（パワー）に基づいて検出し、振幅の大きさに基づいて燃料噴射パルス幅の最小値（Min_TI）を設定し、この最小値（Min_TI）に応じて多段噴射を実施／非実施を切り替えて、最小値（Min_TI）を下回る噴射パルス幅での噴射を抑制する。
第６例のエンジンシステムは、第１例で示した図１と同様であるので詳述を省略する。
また、第６例におけるコントロールユニット１６の内部構成も、第１例で示した図２と同様であるので詳述を省略する。
【０１３２】
図４６は、第６例におけるコントロールユニット１６の制御内容を示す機能ブロック図であり、気筒間空燃比ばらつき検出部１６００、燃料噴射パルス幅制限部２６００、多段噴射制御許可部３６００を備え、気筒間空燃比ばらつき検出部１６００は、空燃比センサ１２の信号(Rabf)の２回転成分に基づいて、空燃比ばらつき指数(Ind_imb)を演算し、燃料噴射パルス幅制限部２６００は、空燃比ばらつき指数(Ind_imb)から、燃料噴射パルス幅の（許容）最小値(Min_TI)を演算し、多段噴射制御許可部３６００は、燃料噴射パルス幅最小値(Min_TI)等に基づいて、多段噴射制御許可フラグ(fTADAN)を演算する。
以下、各演算部の詳細を説明する。
【０１３３】
〈気筒間空燃比ばらつき検出部（図４）〉
気筒間空燃比ばらつき検出部１６００は、空燃比ばらつき指数(Ind_Imb)を演算する。
具体的には、図４に示されるように、２回転成分演算部（図５）、空燃比ばらつき指数（図６）を備え、空燃比センサ１２の信号(Rabf)の２回転成分に基づいて空燃比ばらつき指数(Ind_Imb)を演算するが、これは、第１例の気筒間空燃比ばらつき検出部１１００と同様であるので、詳述しない。
【０１３４】
〈燃料噴射パルス幅制限部（図７）〉
燃料噴射パルス幅制限部２６００は、空燃比ばらつき指数(Ind_Imb)から燃料噴射パルス幅の許容最小値(Min_TI)を演算する。この許容最小値(Min_TI)の演算は、図７に示されるが、これは、第１例と同様であるので、詳述しない。
【０１３５】
〈多段噴射制御許可部（図４７）〉
多段噴射制御許可部３６００は、図４７に示すようにして、多段噴射制御許可フラグ(fTADAN)を演算する。
多段噴射制御（分割噴射制御）とは、１サイクル間に複数回燃料噴射を実施する制御であり、同じパルス幅での噴射を複数回実施する場合と、異なるパルス幅での噴射を複数回実施する場合とを含む。
【０１３６】
多段噴射制御許可フラグ(fTADAN)は、図４７に示すように、複数の条件全てが多段噴射の許可状態である場合に、多段噴射制御許可フラグ(fTADAN)に１とされ、多段噴射制御許可フラグ(fTADAN)が１であれば、多段噴射制御が実施され、多段噴射制御許可フラグ(fTADAN)が０であれば、多段噴射制御が非実施とされ、１サイクル間に１回だけ燃料噴射を行う。
多段噴射の許可条件のうちの１つとして、多段噴射制御において１サイクル間に複数回行われる噴射のうちでもっとも短いパルス幅(K1_Min_TI)が許容最小値(Min_TI)以上であることを条件とし、パルス幅(K1_Min_TI)が許容最小値(Min_TI)よりも短い場合には、多段噴射制御が非実施（禁止）とされる。
【０１３７】
多段噴射制御が非実施とされれば、複数回の噴射をまとめて行うことで、パルス幅が増大し、許容最小値(Min_TI)以上のパルス幅で燃料噴射を行わせることができ、多段噴射制御の実施から非実施への切り替えは、パルス幅を許容最小値(Min_TI)以上に制限することになる。
なお、パルス幅(K1_Min_TI)が許容最小値(Min_TI)以上の条件以外としては、エンジン水温、エンジン回転速度、エンジン負荷などが所定範囲にあることなどを多段噴射の許可条件とする。
【０１３８】
また、パルス幅(K1_Min_TI)が許容最小値(Min_TI)よりも短い場合に多段噴射制御を非実施とする代わりに、１サイクル当たりの噴射回数を減らすことができる。例えば、１サイクル間に３回の噴射を行わせる設定において、噴射特性の変化による空燃比ばらつきの拡大に応じて許容最小値(Min_TI)がより長く変更され、その結果、パルス幅(K1_Min_TI)が許容最小値(Min_TI)よりも短くなった場合には、噴射回数を２回に減らし、２回噴射におけるパルス幅(K1_Min_TI)が許容最小値(Min_TI)以上になれば、１サイクル間に３回の噴射から２回の噴射に切り替える。また、噴射回数を２回に減らしても、パルス幅(K1_Min_TI)が許容最小値(Min_TI)よりも短くなる場合には、更に１回にまで噴射回数を減らして、許容最小値(Min_TI)以上のパルス幅で燃料噴射を行わせる。
【０１３９】
更に、異なるパルス幅での噴射を複数回行わせる多段噴射制御では、複数回の噴射間でのパルス幅の違いを縮小させることで、パルス幅(K1_Min_TI)を許容最小値(Min_TI)以上とすることができる。例えば、１サイクル間に２回噴射を行わせる設定であって、初回の噴射パルス幅が２回目の噴射パルスよりも長く設定される場合に、初回の噴射パルス幅は許容最小値(Min_TI)以上であるものの、２回目の噴射パルス幅は許容最小値(Min_TI)よりも短くなる場合には、初回と２回目との噴射量の配分率を変更し、初回の噴射パルス幅を減らした分だけ、２回目の噴射パルス幅を増やすことで、２回目の噴射パルス幅も許容最小値(Min_TI)以上とすることができる。
【０１４０】
また、噴射回数の変更と、噴射量の分配率との変更とを組み合わせて、多段噴射におけるパルス幅(K1_Min_TI)を許容最小値(Min_TI)以上とすることができる。
また、燃料噴射弁７の噴射特性の経時変化により空燃比ばらつきが大きくなって、許容最小値(Min_TI)が設定値を超える値に変更された場合に、パルス幅(K1_Min_TI)と許容最小値(Min_TI)とを比較することなく、多段噴射制御を非実施とすることができる。
更に、第６例における許容最小値(Min_TI)の演算処理は、第１例と同じ処理に限定されず、第６例の許容最小値(Min_TI)に基づく多段噴射制御の実施／非実施と、第２例〜第５例における許容最小値(Min_TI)の演算処理とを組み合わせることができる。
【０１４１】
〈第６例の作用、効果〉
燃料噴射弁７の経時変化による噴射特性の変化に伴って空燃比ばらつきが発生する場合に、空燃比が可燃域を超えてリーン化することを、多段噴射制御を実施から非実施に切り替えて噴射パルス幅を許容最小値(Min_TI)以上に制限することで抑制し、エンジンの安定性の低下を抑制できる。
また、噴射回数及び／又は分配率を変更することで、噴射パルス幅を許容最小値(Min_TI)以上に制限する場合には、多段噴射制御による混合気の形成性能などの低下を抑制しつつ、空燃比が可燃域を超えてリーン化することを抑制できる。
【０１４２】
「第７例」
以下に詳述する第７例は、気筒間の空燃比のばらつきを、空燃比センサ信号のエンジン２回転周期の振幅（パワー）に基づいて検出し、振幅の大きさに基づいて燃料噴射パルス幅の最小値（Min_TI）を設定し、この最小値（Min_TI）に応じてアイドル運転時の低回転制御の実施／非実施を切り替えて、最小値（Min_TI）を下回る噴射パルス幅での噴射を抑制する。
第７例のエンジンシステムは、第１例で示した図１と同様であるので詳述を省略する。
また、第７例におけるコントロールユニット１６の内部構成も、第１例で示した図２と同様であるので詳述を省略する。
【０１４３】
図４８は、第７例におけるコントロールユニット１６の制御内容を示す機能ブロック図であり、気筒間空燃比ばらつき検出部１７００、燃料噴射パルス幅制限部２７００、アイドル時目標回転速度演算部３７００を備え、気筒間空燃比ばらつき検出部１７００は、空燃比センサ１２の信号(Rabf)の２回転成分に基づいて、空燃比ばらつき指数(Ind_imb)を演算し、燃料噴射パルス幅制限部２７００は、空燃比ばらつき指数(Ind_imb)から、燃料噴射パルス幅の（許容）最小値(Min_TI)を演算し、アイドル時目標回転速度演算部３７００は、燃料噴射パルス幅最小値(Min_TI)等に基づいて、アイドル時目標回転速度(TgNe)を演算する。
以下、各演算部の詳細を説明する。
【０１４４】
〈気筒間空燃比ばらつき検出部（図４）〉
気筒間空燃比ばらつき検出部１７００は、空燃比ばらつき指数(Ind_Imb)を演算する。
具体的には、図４に示されるように、２回転成分演算部（図５）、空燃比ばらつき指数（図６）を備え、空燃比センサ１２の信号(Rabf)の２回転成分に基づいて空燃比ばらつき指数(Ind_Imb)を演算するが、これは、第１例の気筒間空燃比ばらつき検出部１１００と同様であるので、詳述しない。
【０１４５】
〈燃料噴射パルス幅制限部（図７）〉
燃料噴射パルス幅制限部２７００は、空燃比ばらつき指数(Ind_Imb)から燃料噴射パルス幅の許容最小値(Min_TI)を演算する。この許容最小値(Min_TI)の演算は、図７に示されるが、これは、第１例と同様であるので、詳述しない。
【０１４６】
〈アイドル時目標回転速度演算部（図４９）〉
アイドル時目標回転速度演算部３７００は、図４９に示すようにして、アイドル時目標回転速度(TgNe)を演算する。
具体的には、エンジン９のアイドル運転状態での噴射パルス幅K2_Min_TIと、許容最小値(Min_TI)とを比較し、当該比較結果に応じてアイドル時目標回転速度(TgNe)を切り替えられ、Min_TI≦K2_Min_TIのときには、Tg_Ne＝K1_Tg_Neとし、Min_TI＞K2_Min_TIのときには、Tg_Ne＝K2_Tg_Neとする。なお、K1_Tg_Ne＜K2_Tg_Neであり、K1_Tg_Neが初期設定値（デフォルト値）である。
【０１４７】
つまり、燃料噴射弁７の噴射特性の経時変化によって空燃比ばらつきが拡大し、可燃域を超える空燃比のリーン化が発生する可能性がある場合には、許容最小値(Min_TI)が増大側に変更され、その結果、Min_TI＞K2_Min_TIとなると、アイドル時目標回転速度(TgNe)を増大させる（アイドル運転時の低回転制御を非実施に切り替える）。
アイドル時目標回転速度(TgNe)を増大させると、係る目標回転速度に実際のエンジン回転速度を近づけるために、エンジン９の吸入空気量が増量制御され、その結果、アイドル時の噴射パルス幅が増えて、許容最小値(Min_TI)よりも長いパルス幅となるから、アイドル時目標回転速度(TgNe)の増加によって、アイドル時の噴射パルス幅を許容最小値(Min_TI)以上に制限することになる。
【０１４８】
なお、第７例における許容最小値(Min_TI)の演算処理は、第１例と同じ処理に限定されず、第７例の許容最小値(Min_TI)に基づくアイドル時目標回転速度(TgNe)の変更（アイドル運転時の低回転制御の実施／非実施の切り替え）と、第２例〜第５例における許容最小値(Min_TI)の演算処理とを組み合わせることができる。
また、Min_TI≦K2_Min_TIからMin_TI＞K2_Min_TIに切り替わったときに、初期設定値である目標回転速度(K1_Tg_Ne)から、目標回転速度(TgNe)を徐々に増加させ、パルス幅がMin_TIを安定的に下回るようになったと判断した時点で目標回転速度(TgNe)の増大を停止させることができる。
【０１４９】
〈第７例の作用、効果〉
燃料噴射弁７の経時変化による噴射特性の変化に伴って空燃比ばらつきが発生する場合に、空燃比が可燃域を超えてリーン化することを、アイドル時目標回転速度(TgNe)を増加させて噴射パルス幅を許容最小値(Min_TI)以上に制限することで抑制し、エンジンの安定性の低下を抑制できる。
【０１５０】
尚、本発明は、上述の実施の形態の内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々の変更が可能である。
例えば、燃料噴射弁７は、シリンダ内に直接燃料を噴射する噴射弁に限定されず、吸気管内に燃料を噴射する噴射弁とすることができる。
【０１５１】
また、排気空燃比に基づく空燃比ばらつきの検出においては、空燃比をリニアに検出する空燃比センサの代わりに、理論空燃比に対するリッチ／リーンを検出するセンサ（酸素センサ）の信号から、空燃比ばらつきを検出することができる。
また、図７に示したように、空燃比ばらつきを大小の２段階に判定し、許容最小値(Min_TI)を２種類に切り替える構成に限定されず、空燃比ばらつきのレベルを３段階以上に判定して、許容最小値(Min_TI)を３種類以上に切り替えることができる。
【０１５２】
また、空燃比ばらつきが閾値を超えた場合には、警報装置（ランプやブサー）などによって車両の運転者に対する警報を発することができる。
また、燃焼室内の混合気を通過した光の強度から空燃比を検出する装置を各気筒に設け、係る空燃比検出装置で検出した気筒毎の空燃比から、空燃比ばらつきを演算することができる。
【０１５３】
また、燃焼室の圧力（筒内圧）の気筒間でのばらつきから、空燃比ばらつきを検出することができる。
また、理論空燃比よりもリーンな空燃比で運転するエンジンにおいて、目標空燃比をリッチ化する（理論空燃比での運転に切り替えることを含む）ことで、噴射パルス幅を許容最小値(Min_TI)以上に制限することができる。
【符号の説明】
【０１５４】
１…エアクリーナ、２…エアフローセンサ、３…電子スロットル、４…吸気管、５…コレクタ、６…アクセル、７…燃料噴射弁、８…点火プラグ、９…エンジン、１０…排気管、１１…三元触媒、１２…空燃比センサ、１３…アクセル開度センサ、１４…水温センサ、１５…エンジン回転数センサ、１６…コントロールユニット、１７…スロットル開度センサ、１８…排気還流管、１９…排気還流量調節バルブ、２０…酸素センサ、２１…ＣＰＵ、２２…ＲＯＭ、２３…ＲＡＭ、２４…入力回路、２５…入出力ポート、２６…点火出力回路、２７…燃料噴射弁駆動回路、２８…電子スロットル駆動回路、２９…吸気温センサ、３０…車速センサ、３１…１番気筒用空燃比センサ、３２…２番気筒用空燃比センサ、３３…３番気筒用空燃比センサ、３４…４番気筒用空燃比センサ
【図１】
2014137041.tif 000005
【図２】
2014137041.tif 000006
【図３】
2014137041.tif 000007
【図４】
2014137041.tif 000008
【図５】
2014137041.tif 000009
【図６】
2014137041.tif 000010
【図７】
2014137041.tif 000011
【図８】
2014137041.tif 000012
【図９】
2014137041.tif 000013
【図１０】
2014137041.tif 000014
【図１１】
2014137041.tif 000015
【図１２】
2014137041.tif 000016
【図１３】
2014137041.tif 000017
【図１４】
2014137041.tif 000018
【図１５】
2014137041.tif 000019
【図１６】
2014137041.tif 000020
【図１７】
2014137041.tif 000021
【図１８】
2014137041.tif 000022
【図１９】
2014137041.tif 000023
【図２０】
2014137041.tif 000024
【図２１】
2014137041.tif 000025
【図２２】
2014137041.tif 000026
【図２３】
2014137041.tif 000027
【図２４】
2014137041.tif 000028
【図２５】
2014137041.tif 000029
【図２６】
2014137041.tif 000030
【図２７】
2014137041.tif 000031
【図２８】
2014137041.tif 000032
【図２９】
2014137041.tif 000033
【図３０】
2014137041.tif 000034
【図３１】
2014137041.tif 000035
【図３２】
2014137041.tif 000036
【図３３】
2014137041.tif 000037
【図３４】
2014137041.tif 000038
【図３５】
2014137041.tif 000039
【図３６】
2014137041.tif 000040
【図３７】
2014137041.tif 000041
【図３８】
2014137041.tif 000042
【図３９】
2014137041.tif 000043
【図４０】
2014137041.tif 000044
【図４１】
2014137041.tif 000045
【図４２】
2014137041.tif 000046
【図４３】
2014137041.tif 000047
【図４４】
2014137041.tif 000048
【図４５】
2014137041.tif 000049
【図４６】
2014137041.tif 000050
【図４７】
2014137041.tif 000051
【図４８】
2014137041.tif 000052
【図４９】
2014137041.tif 000053