"所定の対象気筒の燃料噴射量の変更量が徐々に大きくなるように、該所定の対象気筒の燃料噴射量を強制的に増量または減量変更する燃料噴射量変更制御を実行する燃料噴射量変更制御手段と、該燃料噴射量変更制御の実行に伴って得られる前記所定の対象気筒に関する出力変動量が所定の出力変動量に達したか否かを判定する判定手段と、該判定手段により前記所定の対象気筒に関する出力変動量が前記所定の出力変動量に達したと判定されたとき、そのときの前記燃料噴射量変更制御による前記所定の対象気筒の燃料噴射量における変更量に基づいて気筒間空然比ばらつき異常を検出する検出手段とを備えた、多気筒内燃機関の気筒間空燃比ばらつき異常検出装置。前記判定手段により前記所定の対象気筒に関する出力変動量が前記所定の出力変動量に達したと判定される前に、前記燃料噴射量変更制御による前記所定の対象気筒の燃料噴射量における変更量が所定量を越えたとき、気筒間空然比ばらつき異常があると判定する第1異常判定手段をさらに備えた、請求項1に記載の多気筒内燃機関の気筒間空燃比ばらつき異常検出装置。前記判定手段により前記所定の対象気筒に関する出力変動量が前記所定の出力変動量に達したと判定される前、エンジン回転速度が第1所定回転速度を越えたとき、気筒間空然比ばらつき異常があると判定する第2異常判定手段をさらに備えた、請求項1または2に記載の多気筒内燃機関の気筒間空燃比ばらつき異常検出装置。前記判定手段により前記所定の対象気筒に関する出力変動量が前記所定の出力変動量に達したと判定される前、エンジン回転速度が第2所定回転速度を下回ったとき、または、エンジン回転速度が所定回転速度以上低下したとき、前記燃料噴射量変更制御を中止する第1中止手段をさらに備えた、請求項1から3のいずれかに記載の多気筒内燃機関の気筒間空燃比ばらつき異常検出装置。エンジン回転速度の低下によるエンストを防止するべく吸入空気量を増量するエンスト防止制御を実行するエンスト防止制御実行手段と、前記燃料噴射量変更制御が実行されたときに該エンスト防止制御が実行されたとき、前記燃料噴射量変更制御を中止する第2中止手段とをさらに備えた、請求項1から4のいずれかに記載の多気筒内燃機関の気筒間空燃比ばらつき異常検出装置。多気筒内燃機関において、各気筒への燃料噴射量を強制的に変える燃料噴射量変更制御を実行し、そのときの各気筒に関する出力変動に基づき気筒間空燃比ばらつき異常つまり気筒間の空燃比がインバランス状態になっていることを検出することが可能である。しかし、その燃料噴射量の変更量が過多であると、それによる出力変動が過大になり、ドライバビリティの悪化が生じる可能性がある。逆に、その燃料噴射量の変更量を過少であると、それによる出力変動が過小になり、気筒間空燃比ばらつき異常を十分に検出できない可能性がある。そこで、本発明は以上の事情に鑑みて創案され、その目的は、そのような燃料噴射量変更制御を実行して、気筒間空燃比ばらつき異常を適切に検出することにある。本発明の一の態様によれば、所定の対象気筒の燃料噴射量の変更量が徐々に大きくなるように、該所定の対象気筒の燃料噴射量を強制的に増量または減量変更する燃料噴射量変更制御を実行する燃料噴射量変更制御手段と、該燃料噴射量変更制御の実行に伴って得られる前記所定の対象気筒に関する出力変動量が所定の出力変動量に達したか否かを判定する判定手段と、該判定手段により前記所定の対象気筒に関する出力変動量が前記所定の出力変動量に達したと判定されたとき、そのときの前記燃料噴射量変更制御による前記所定の対象気筒の燃料噴射量における変更量に基づいて気筒間空然比ばらつき異常を検出する検出手段とを備えた、多気筒内燃機関の気筒間空燃比ばらつき異常検出装置が提供される。上記多気筒内燃機関の気筒間空燃比ばらつき異常検出装置は、前記判定手段により前記所定の対象気筒に関する出力変動量が前記所定の出力変動量に達したと判定される前に、前記燃料噴射量変更制御による前記所定の対象気筒の燃料噴射量における変更量が所定量を越えたとき、気筒間空然比ばらつき異常があると判定する第1異常判定手段をさらに備えることができる。上記多気筒内燃機関の気筒間空燃比ばらつき異常検出装置は、前記判定手段により前記所定の対象気筒に関する出力変動量が前記所定の出力変動量に達したと判定される前、エンジン回転速度が第1所定回転速度を越えたとき、気筒間空然比ばらつき異常があると判定する第2異常判定手段をさらに備えることができる。上記多気筒内燃機関の気筒間空燃比ばらつき異常検出装置は、前記判定手段により前記所定の対象気筒に関する出力変動量が前記所定の出力変動量に達したと判定される前、エンジン回転速度が第2所定回転速度を下回ったとき、または、エンジン回転速度が所定回転速度以上低下したとき、前記燃料噴射量変更制御を中止する第1中止手段をさらに備えることができる。上記多気筒内燃機関の気筒間空燃比ばらつき異常検出装置は、エンジン回転速度の低下によるエンストを防止するべく吸入空気量を増量するエンスト防止制御を実行するエンスト防止制御実行手段と、前記燃料噴射量変更制御が実行されたときに該エンスト防止制御が実行されたとき、前記燃料噴射量変更制御を中止する第2中止手段とをさらに備えることができる。以下、本発明の実施形態を添付図面に基づき説明する。まず、第1実施形態が説明される。図1に本第1実施形態に係る内燃機関を概略的に示す。図示される内燃機関エンジン1は自動車に搭載されたV型8気筒火花点火式内燃機関ガソリンエンジンである。エンジン1は第1のバンクB1と第2のバンクB2とを有し、第1のバンクB1には奇数番気筒すなわち1,3,5,7気筒が設けられ、第2のバンクB2には偶数番気筒すなわち2,4,6,8気筒が設けられている。1,3,5,7気筒が第1の気筒群をなし、2,4,6,8気筒が第2の気筒群をなす。各気筒にインジェクタ燃料噴射弁2が設けられる。インジェクタ2は、対応気筒の吸気通路特に吸気ポート図示せず内に向けて燃料を噴射する。また各気筒には、筒内の混合気に点火するための点火プラグ13が設けられる。なお、エンジン1での点火順序は1、8、7、3、6、5、4、2気筒の順である。吸気を導入するための吸気通路7は、前記吸気ポートの他、集合部としてのサージタンク8と、各気筒の吸気ポートおよびサージタンク8を結ぶ複数の吸気マニホールド9と、サージタンク8の上流側の吸気管10などによって区画形成されている。吸気管10には、上流側から順にエアフローメータ11と電子制御式スロットルバルブ12とが設けられている。エアフローメータ11は吸気流量に応じた大きさの信号を出力する。第1のバンクB1に対して第1の排気通路14Aが設けられ、第2のバンクB2に対して第2の排気通路14Bが設けられる。これら第1および第2の排気通路14A,14Bは下流触媒コンバータ19の上流側で合流されている。この合流位置より上流側の排気系の構成は両バンクで同一なので、ここでは第1のバンクB1側についてのみ説明し、第2のバンクB2側については図中同一符号を付して説明を省略する。第1の排気通路14Aは、1,3,5,7の各気筒の排気ポート図示せずと、これら排気ポートの排気ガスを集合させる排気マニホールド16と、排気マニホールド16の下流側に設置された排気管17などにより区画形成されている。そして排気管17には上流触媒コンバータ18が設けられている。上流触媒コンバータ18の上流側および下流側直前および直後にそれぞれ、排気ガスの空燃比を検出するための空燃比センサである触媒前センサ20および触媒後センサ21が設置されている。このように、一方のバンクに属する複数の気筒あるいは気筒群に対して、上流触媒コンバータ18、触媒前センサ20および触媒後センサ21が各一つずつ設けられている。なお、第1および第2の排気通路14A,14Bを合流させないで、これらに個別に下流触媒コンバータ19を設けることも可能である。エンジン1には各種制御手段制御装置および各種検出手段検出部などとしての各機能を担う電子制御ユニット以下ECUと称す100が設けられている。ECU100は、何れも図示されないCPU、ROMおよびRAMを含む記憶装置、並びに入出力ポート等を含むものである。ECU100には、前述のエアフローメータ11、触媒前センサ20、触媒後センサ21のほか、エンジン1のクランク角を検出するためのクランク角センサ22、アクセル開度を検出するためのアクセル開度センサ23、エンジン冷却水の温度を検出するための水温センサ24、その他の各種センサが図示されないA/D変換器等を介して電気的に接続されている。ECU100は、各種センサの検出値等に基づき、所望の出力が得られるように、インジェクタ2、点火プラグ13、スロットルバルブ12等を制御し、燃料噴射量、燃料噴射時期、点火時期、スロットル開度等を制御する。このようなECU100は、燃料噴射制御手段、点火制御手段、吸入空気量制御手段、空燃比制御手段等のそれぞれの機能を担う。そして、エンジン1には後で詳述するように気筒間空燃比ばらつき異常検出装置が装備されていて、ECU100は、燃料噴射量変更制御手段、判定手段、気筒間空然比ばらつき異常を検出する検出手段の各機能を実質的に担う。また、スロットルバルブ12にはスロットル開度センサ図示せずが設けられ、スロットル開度センサからの信号がECU100に送られる。ECU100は、通常、アクセル開度に応じて定まる開度に、スロットルバルブ12の開度スロットル開度をフィードバック制御する。またECU100は、エアフローメータ11からの信号に基づき、単位時間当たりの吸入空気の量すなわち吸入空気量を検出する。そしてECU100は、検出したアクセル開度、スロットル開度および吸入空気量の少なくとも一つに基づき、エンジン1の負荷を検出する。ECU100は、クランク角センサ22からのクランクパルス信号に基づき、クランク角自体を検出すると共にエンジン1の回転数を検出する。ここで回転数とは単位時間当たりの回転数のことをいい、回転速度と同義である。本実施形態では1分間当たりの回転数rpmのことをいう。なお、ECU100は、出力検出手段としてのクランク角センサ22の出力に基づいて後述するように出力変動量を、本実施形態では回転変動量を算出する。そして、ECU100は、通常、吸入空気量およびエンジン回転速度つまりエンジン運転状態に基づいて、予め記憶装置に記憶するデータ等を用いて、燃料噴射量または燃料噴射時間を設定する。そして、その燃料噴射量に基づいて、インジェクタ2からの燃料の噴射が制御される。なお、このような通常時の燃料噴射制御による燃料噴射量をここでは通常時燃料噴射量と称する。また、ECU100は、エンジン回転速度の低下によるエンストを防止するべくエンスト防止制御を実行するエンスト防止制御実行手段の機能も担う。ECU100は、エンジン始動後、エンジン回転速度が過剰に低くなると、エンストが発生する可能性が高くなるので、エンジン回転速度が所定回転速度を下回る場合、吸入空気量を増やすと共に燃料噴射量を増量して、低速トルクを確保する。これは、ここでは実質的に吸入空気量を増量することで、具体的にはスロットル開度を強制的に大きくすることで実行される。後述する空燃比フィードバック制御がエンジン1の制御には含まれるので、吸入空気量の増大により燃料噴射量が増大するからである。なお、吸入空気量の増大を図るときに同時に、燃料噴射量が強制的に増やされてもよい。また、このようなエンスト防止用の吸入空気量の制御として、過給器が設けられている場合には、その過給器を積極的に作動させる制御が実行されてもよい。例えば、この場合、過給器が電動モータで作動させられ得る。ところで、触媒前センサ20は所謂広域空燃比センサからなり、比較的広範囲に亘る空燃比を連続的に検出可能である。図2に触媒前センサ20の出力特性を示す。図示するように、触媒前センサ20は、検出した排気空燃比触媒前空燃比A/Ffに比例した大きさの電圧信号Vfを出力する。排気空燃比がストイキ理論空燃比、例えばA/F=14.5であるときの出力電圧はVreff例えば約3.3Vである。他方、触媒後センサ21は所謂O2センサからなり、ストイキを境に出力値が急変する特性を持つ。図2に触媒後センサ21の出力特性を示す。図示するように、排気空燃比触媒後空燃比A/Frがストイキであるときの出力電圧、すなわちストイキ相当値はVrefr例えば0.45Vである。触媒後センサ21の出力電圧は所定の範囲例えば0~1V内で変化する。概して排気空燃比がストイキよりリーンのとき、触媒後センサの出力電圧Vrはストイキ相当値Vrefrより低くなり、排気空燃比がストイキよりリッチのとき、触媒後センサの出力電圧Vrはストイキ相当値Vrefrより高くなる。上流触媒コンバータ18および下流触媒コンバータ19はそれぞれ三元触媒からなり、それぞれに流入する排気ガスの空燃比A/Fがストイキ近傍のときに排気中の有害成分であるNOx、HCおよびCOを同時に浄化する。この三者を同時に高効率で浄化できる空燃比の幅ウィンドウは比較的狭い。そこで、エンジン1の通常運転時、上流触媒コンバータ18に流入する排気ガスの空燃比をストイキ近傍に制御するための空燃比制御ストイキ制御がECU100により実行される。この空燃比制御は、触媒前センサ20によって検出された排気空燃比が所定の目標空燃比であるストイキになるように混合気の空燃比具体的には燃料噴射量をフィードバック制御する主空燃比制御主空燃比フィードバック制御と、触媒後センサ21によって検出された排気空燃比がストイキになるように混合気の空燃比具体的には燃料噴射量をフィードバック制御する補助空燃比制御補助空燃比フィードバック制御とからなる。具体的には、主空燃比フィードバック制御では、触媒前センサ20の出力に基づいて検出される現状の排気空燃比を所定の目標空燃比に追従させるために、第1補正係数を演算して、この第1補正係数に基づいてインジェクタ2からの燃料噴射量を調整するような制御が実行される。そして、さらに補助空燃比フィードバック制御では、触媒後センサ21の出力に基づいて、第2補正係数を演算し、主空燃比フィードバック制御にて得られた第1補正係数を修正するような制御が実行される。ただし、本実施形態において、上記所定の目標空燃比つまり空燃比の基準値目標値はストイキであり、このストイキに相当する燃料噴射量ストイキ相当量というが燃料噴射量の基準値目標値である。但し、空燃比および燃料噴射量の基準値は他の値とすることもできる。空燃比制御はバンク単位で若しくはバンク毎に行われる。例えば第1のバンクB1側の触媒前センサ20および触媒後センサ21の検出値は、第1のバンクB1に属する1,3,5,7気筒の空燃比フィードバック制御にのみ用いられ、第2のバンクB2に属する2,4,6,8気筒の空燃比フィードバック制御には用いられない。逆も同様である。あたかも独立した直列4気筒エンジンが二つあるように、空燃比制御が実行される。また空燃比制御においては、同一バンクに属する各気筒に対し同一の制御量が一律に用いられる。さて、例えば全気筒のうちの一部の気筒特に1気筒において、インジェクタ2の故障等が発生し、気筒間に空燃比のばらつきインバランス:imbalanceが発生することがある。例えば第1のバンクB1について、インジェクタ2の閉弁不良により1気筒の燃料噴射量が他の3,5,7気筒の燃料噴射量よりも多くなり、1気筒の空燃比が他の3,5,7気筒の空燃比よりも大きくリッチ側にずれる場合である。このときでも、前述の空燃比フィードバック制御により比較的大きな補正量を与えれば、触媒前センサ20に供給されるトータルガス合流後の排気ガスの空燃比をストイキに制御できる場合がある。しかし、気筒別に見ると、1気筒がストイキより大きくリッチ、3,5,7気筒がストイキよりリーンであり、全体のバランスとしてストイキとなっているに過ぎず、エミッション上好ましくないことは明らかである。そこで本実施形態では、かかる気筒間空燃比ばらつき異常を検出する装置が装備されている。ここで、気筒間空燃比のばらつき度合いを表す指標値としてインバランス率なる値を用いる。インバランス率とは、複数の気筒のうちある1気筒のみが燃料噴射量ズレを起こしている場合に、その燃料噴射量ズレを起こしている気筒インバランス気筒の燃料噴射量がどれくらいの割合で、燃料噴射量ズレを起こしていない気筒バランス気筒の燃料噴射量即ち基準噴射量上記通常時燃料噴射量に相当からズレているかを示す値である。インバランス率をIB、インバランス気筒の燃料噴射量をQib、バランス気筒の燃料噴射量即ち基準噴射量をQsとすると、IB=Qib-Qs/Qs×100で表される。インバランス率IBが正負に関わらず大きいほど、インバランス気筒のバランス気筒に対する燃料噴射量ズレが大きく、空燃比ばらつき度合いは大きい。他方、所定の対象気筒の燃料噴射量をアクティブに若しくは強制的に増量または減量し、このように変更したときの、つまり、少なくとも増量または減量後の対象気筒の回転変動に基づき、ばらつき異常を検出することができる。まず、回転変動について説明する。回転変動とは、エンジン1の出力変動に含まれ、エンジン回転速度あるいはクランクシャフト回転速度の変化をいう。そして本明細書では、回転変動を表す値つまり回転変動の程度を表した値を回転変動量と称する。例えば、クランクシャフトが所定角度回転するのに要する時間を計測し、その計測値を演算処理することで求められる値量が回転変動量として用いられることができる。以下の図3および図4を用いた説明で、種々の値を回転変動量として用いることができることが理解されるであろう。図3には回転変動を説明するためのタイムチャートを示す。図示例は直列4気筒エンジンの例であるが、本実施形態のようなV型8気筒エンジンにも適用可能であることが理解されよう。図3の直列4気筒エンジンでの点火順序は1,3,4,2気筒の順である。図3において、Aはエンジンのクランク角°CAを示す。1エンジンサイクルは720°CAであり、図には逐次的に検出される複数サイクル分のクランク角が鋸歯状に示されている。図3Bは、クランクシャフトが所定角度だけ回転するのに要した時間、すなわち回転時間Tsを示す。ここでは所定角度が30°CAであるが、他の値例えば10°CAとしてもよい。回転時間Tが長いほどエンジン回転速度は遅く、逆に回転時間Tが短いほどエンジン回転速度は速い。この回転時間Tはクランク角センサ22の出力に基づきECU100により検出される。図3Cは、後に説明する回転時間差ΔTを示す。図中、正常とは、いずれの気筒にも空燃比ずれが生じていない正常な場合を示し、リーンずれ異常とは、1気筒のみにインバランス率IB=-30のリーンずれが生じている異常な場合を示す。リーンずれ異常は例えばインジェクタの噴孔詰まりや開弁不良により生じ得る。まず、各気筒の同一タイミングにおける回転時間TがECUにより検出される。ここでは各気筒の圧縮上死点TDCのタイミングにおける回転時間Tが検出される。この回転時間Tが検出されるタイミングを検出タイミングという。次いで、検出タイミング毎に、当該検出タイミングにおける回転時間T2と、直前の検出タイミングにおける回転時間T1との差T2-T1がECUにより算出される。この差がCに示す回転時間差ΔTであり、ΔT=T2-T1である。通常、クランク角がTDCを超えた後のある気筒の燃焼行程では回転速度が上昇するため回転時間Tが低下し、その後の次点火気筒の圧縮行程では回転速度が低下するため回転時間Tが増大する。しかしながら、Bに示すように1気筒がリーンずれ異常の場合、1気筒を点火させても十分なトルクが得られず、回転速度が上昇しづらいので、その影響で3気筒TDCにおける回転時間Tは大きくなっている。それ故、3気筒TDCにおける回転時間差ΔTは、Cに示すように大きな正の値となる。この3気筒TDCにおける回転時間および回転時間差をそれぞれ1気筒の回転時間および回転時間差とし、それぞれT1およびΔT1で表す。他の気筒についても同様である。次に、3気筒は正常であるので、3気筒を点火させたときには回転速度が急峻に上昇する。これにより次の4気筒TDCのタイミングでは、3気筒TDCのときに比べ回転時間Tが若干低下しているに過ぎない。それ故、4気筒TDCにおいて検出された3気筒の回転時間差ΔT3は、Cに示すように小さな負の値となる。このようにある気筒の回転時間差ΔTが、点火気筒TDC毎に検出される。以降の2気筒TDCおよび1気筒TDCにおいても4気筒TDCのときと同様の傾向が見られ、両タイミングにおいて検出された4気筒の回転時間差ΔT4および2気筒の回転時間差ΔT2はともに小さな負の値となっている。以上の特性が1エンジンサイクル毎に繰り返される。このように、各気筒の回転時間差ΔTは、各気筒の回転変動を表す値であり、各気筒の空燃比ずれ量に相関した値であることが分かる。そこで各気筒の回転時間差ΔTを各気筒の回転変動の指標値つまり回転変動値または回転変動量として用いることができる。各気筒の空燃比ずれ量が大きいほど、各気筒の回転変動は大きくなり、各気筒の回転時間差ΔTは大きくなる。他方、図3Cに示すように、正常の場合には回転時間差ΔTが常時ゼロ付近である。図3の例ではリーンずれ異常の場合を示したが、逆のリッチずれ異常、すなわち1気筒のみに大きなリッチずれが生じている場合にも、同様の傾向がある。大きなリッチずれが生じた場合、点火しても燃料過多のため燃焼が不十分となり、十分なトルクが得られず、回転変動が大きくなるからである。次に、図4を参照して、回転変動を表す別の値つまり別の回転変動量の例を説明する。図4Aは図3Aと同様にエンジンのクランク角°CAを示す。図4Bは、前記回転時間Tの逆数である角速度ωrad/sを示す。ω=1/Tである。当然ながら、角速度ωが大きいほどエンジン回転速度は速く、角速度ωが小さいほどエンジン回転速度は遅い。角速度ωの波形は、回転時間Tの波形を上下反転した形となる。図4Cは、前記回転時間差ΔTと同様、角速度ωの差である角速度差Δωを示す。角速度差Δωの波形も、回転時間差ΔTの波形を上下反転した形となる。図中の正常およびリーンずれ異常については図3と同様である。まず、各気筒の同一タイミングにおける角速度ωがECUにより検出される。ここでも各気筒の圧縮上死点TDCのタイミングにおける角速度ωが検出される。角速度ωは、1を前記回転時間Tで除することにより算出される。次いで、検出タイミング毎に、当該検出タイミングにおける角速度ω2と、直前の検出タイミングにおける角速度ω1との差ω2-ω1がECUにより算出される。この差がCに示す角速度差Δωであり、Δω=ω2-ω1である。通常、クランク角がTDCを超えた後のある気筒の燃焼行程では回転速度が上昇するため角速度ωが上昇し、その後の次点火気筒の圧縮行程では回転速度が低下するため角速度ωが低下する。しかしながら、Bに示すように1気筒がリーンずれ異常の場合、1気筒を点火させても十分なトルクが得られず、回転速度が上昇しづらいので、その影響で3気筒TDCにおける角速度ωは小さくなっている。それ故、3気筒TDCにおける角速度差Δωは、Cに示すように大きな負の値となる。この3気筒TDCにおける角速度および角速度差をそれぞれ1気筒の角速度および角速度差とし、それぞれω1およびΔω1で表す。他の気筒についても同様である。次に、3気筒は正常であるので、3気筒を点火させたときには回転速度が急峻に上昇する。これにより次の4気筒TDCのタイミングでは、3気筒TDCのときに比べ角速度ωが若干上昇するに過ぎない。それ故、4気筒TDCにおいて検出された3気筒の角速度差Δω3は、Cに示すように小さな正の値となる。このようにある気筒の角速度差Δωが、点火気筒TDC毎に検出される。以降の2気筒TDCおよび1気筒TDCにおいても4気筒TDCのときと同様の傾向が見られ、両タイミングにおいて検出された4気筒の角速度差Δω4および2気筒の角速度差Δω2はともに小さな正の値となっている。以上の特性が1エンジンサイクル毎に繰り返される。このように、各気筒の角速度差Δωは、各気筒の回転変動を表す値であり、各気筒の空燃比ずれ量に相関した値であることが分かる。そこで各気筒の角速度差Δωを各気筒の回転変動の指標値として用いることができる。各気筒の空燃比ずれ量が大きいほど、各気筒の回転変動は大きくなり、各気筒の角速度差Δωは小さくなるマイナス方向に大きくなる。他方、図4Cに示すように、正常の場合には角速度差Δωが常時ゼロ付近である。逆のリッチずれ異常の場合にも同様の傾向がある点は上述した通りである。次に、ある1気筒の燃料噴射量をアクティブにつまり強制的に増量または減量して当該気筒での空燃比を変化させたときの回転変動の変化を、図5を参照して説明する。ただし、この場合、燃料噴射量をアクティブに増量または減量するとき、吸入空気量は変化しないようにスロットルバルブ12等の作動は制御される。図5において、横軸はインバランス率IBを示し、縦軸は回転変動の指標値つまり回転変動量としての角速度差Δωを示す。ここでは、全8気筒のうちある1気筒のみのインバランス率IBを変化させ、このときの当該1気筒のインバランス率IBと、当該1気筒の角速度差Δωとの関係を線aで示す。ここでは当該1気筒をアクティブ対象気筒という。他の気筒は全てバランス気筒であり、基準噴射量Qsとしてストイキ相当量を噴射しているものとする。図5の横軸において、IB=0とは、アクティブ対象気筒のインバランス率IBが0で、アクティブ対象気筒がストイキ相当量を噴射している正常な場合を意味する。このときのデータが線a上のプロットbで示される。このIB=0の状態から図中左側に移動すると、インバランス率IBがプラス方向に増加し、燃料噴射量としては過多すなわちリッチな状態となる。逆に、IB=0から図中右側に移動すると、インバランス率IBがマイナス方向に増加し、燃料噴射量としては過少すなわちリーンな状態となる。特性線aから分かるように、アクティブ対象気筒のインバランス率IBが0からプラス方向に増加してもマイナス方向に増加しても、アクティブ対象気筒の回転変動は大きくなり、アクティブ対象気筒の角速度差Δωが0付近からマイナス方向に大きくなる傾向にある。そして、インバランス率IBが0から離れるほど、特性線aの傾きが急になり、インバランス率IBの変化に対する角速度差Δωの変化は大きくなる傾向にある。ここで、矢印cで示すように、アクティブ対象気筒の燃料噴射量を、ストイキ相当量IB=0から所定量Δf1、強制的に増量する燃料噴射量増量制御を実行したとする。図示例ではインバランス率で約40相当の増量がなされている。このとき、IB=0の近辺では特性線aの傾きが緩やかであることから、増量後においても角速度差Δωは増量前と大きく変わらず、増量前後の角速度差Δωの差は極小さい。他方、プロットdで示すように、アクティブ対象気筒において既にリッチずれが生じており、そのインバランス率IBが比較的大きなプラス側の値になっているときを考える。図示例ではインバランス率で約50のリッチずれが生じている。この状態から矢印eで示すように、アクティブ対象気筒の燃料噴射量を同一量Δf1、強制的に増量する燃料噴射量増量制御を実行したとすると、この領域では特性線aの傾きが急であることから、増量後の角速度差Δωは増量前より大きくマイナス側に変化し、増量前後の角速度差Δωの差は大きくなる。すなわち燃料噴射量の増量により、アクティブ対象気筒の回転変動は大きくなる。よって、アクティブ対象気筒の燃料噴射量を強制的に所定量増量したときの少なくとも増量後のアクティブ対象気筒の角速度差Δωに基づき、ばらつき異常を検出することが可能である。すなわち、増量後の角速度差Δωが図示するように所定の負の異常判定値αより小さい場合Δω<αには、ばらつき異常有りと判定し、且つアクティブ対象気筒を異常気筒と特定することができる。逆に、増量後の角速度差Δωが異常判定値αより小さくない場合Δω≧αには、少なくともアクティブ対象気筒を正常と判定することができる。あるいは代替的に、図示するように、増量前後の角速度差Δωの差dΔωに基づき、ばらつき異常を検出することも可能である。この場合、増量前の角速度差をΔω1、増量後の角速度差をΔω2とすると、両者の差dΔωをdΔω=Δω1-Δω2と定義することができる。そして差dΔωが所定の正の異常判定値β1を超えた場合dΔω>β1、ばらつき異常有りと判定し、且つアクティブ対象気筒を異常気筒と特定することができる。逆に、差dΔωが異常判定値β1を超えない場合dΔω≦β1、少なくともアクティブ対象気筒を正常と判定することができる。インバランス率が負の領域で強制減量を行ったとき、つまり燃料噴射量減量制御を実行したときも同様のことが言える。矢印fで示すように、アクティブ対象気筒の燃料噴射量をストイキ相当量IB=0から所定量Δf2、強制的に減量する燃料噴射量減量制御を実行したとする。図示例ではインバランス率で約10相当の減量がなされている。このとき、特性線aの傾きが比較的緩やかであることから、減量後の角速度差Δωは減量前より若干小さくなっているだけで、増量前後の角速度差Δωの差は小さい。他方、プロットgで示すように、アクティブ対象気筒において既にリーンずれが生じており、そのインバランス率IBが比較的大きなマイナス側の値になっているときを考える。図示例ではインバランス率で約-20のリーンずれが生じている。この状態から矢印hで示すように、アクティブ対象気筒の燃料噴射量を同一量Δf2、強制的に減量する燃料噴射量減量制御を実行したとすると、この領域では特性線aの傾きが比較的急であることから、減量後の角速度差Δωは減量前より大きくマイナス側に変化し、減量前後の角速度差Δωの差は大きくなる。すなわち燃料噴射量の減量により、アクティブ対象気筒の回転変動は大きくなる。よって、アクティブ対象気筒の燃料噴射量を強制的に所定量減量したときの少なくとも減量後のアクティブ対象気筒の角速度差Δωに基づき、気筒間空然比ばらつき異常を検出することが可能である。すなわち、減量後の角速度差Δωが図示するように所定の負の異常判定値αより小さい場合Δω<αには、ばらつき異常有りと判定し、且つアクティブ対象気筒を異常気筒と特定することができる。逆に、減量後の角速度差Δωが異常判定値αより小さくない場合Δω≧αには、少なくともアクティブ対象気筒を正常と判定することができる。あるいは代替的に、図示するように、減量前後の角速度差Δωの差dΔωに基づき、ばらつき異常を検出することも可能である。この場合も両者の差dΔωをdΔω=Δω1-Δω2と定義することができる。差dΔωが所定の正の異常判定値β2を超えた場合dΔω>β2、ばらつき異常有りと判定し、且つアクティブ対象気筒を異常気筒と特定することができる。逆に、差dΔωが異常判定値β2を超えない場合dΔω≦β2、少なくともアクティブ対象気筒を正常と判定することができる。なお、増量時の異常判定値β1と、減量時の異常判定値β2とは異なってもまたは同じであってもよい。各気筒の回転変動の指標値つまり回転変動量として回転時間差ΔTを用いた場合にも、同様の方法で異常検出および異常気筒特定が可能であることが理解されるであろう。また、各気筒の回転変動の指標値としては、上述した以外の他の値を用いることも可能である。図6には、一例として、全8気筒についての燃料噴射量の増量と、増量前後の回転変動の変化との様子を示す。上段が増量前、下段が増量後である。左右方向の左端列に示されているように、増量の方法としては、ここでは、全気筒一律且つ同時に同一量増量している。すなわち図6の例では所定の対象気筒が全気筒である。増量前は全気筒のインジェクタ2に対し、ストイキ相当量の燃料を噴射するよう開弁指令がなされており、増量後は全気筒のインジェクタ2に対し、ストイキ相当量より所定量多い燃料を噴射するよう開弁指令がなされている。この増量の仕方は、全気筒同時に行う方法の他、任意数の気筒ずつ順番に且つ交互に行う方法がある。例えば1気筒ずつ増量したり、2気筒ずつ増量したり、4気筒ずつ増量したりする方法がある。増量を行う対象気筒の数および気筒番号は任意に設定できる。対象気筒数が多いほど、全増量時間を短縮できるメリットがあり、排気エミッションが悪化するデメリットがある。逆に対象気筒数が少ないほど、排気エミッションの悪化を抑制できるメリットがあるが、全増量時間が長期化するデメリットがある。各気筒の回転変動の指標値として、図5と同様、角速度差Δωを用いている。例えば左右方向の中央列に示されている正常時、すなわちいずれの気筒においても空燃比ずれ異常が生じていない場合だと、増量前では全気筒の角速度差Δωがほぼ等しく0付近にあり、全気筒の回転変動が少ない。また増量後でも全気筒の角速度差Δωがほぼ等しく若干マイナス方向に大きくなるだけであり、全気筒の回転変動はそれ程大きくならない。故に、増量前後の角速度差の差dΔωは小さい。しかしながら、左右方向の右端列に示されている異常時だと、正常時とは異なる挙動を示す。この異常時では、8気筒にのみインバランス率で50相当のリッチずれ異常が生じており、8気筒のみが異常気筒である。この場合、増量前では、8気筒以外の残部気筒の角速度差Δωはほぼ等しく0付近にあるが、8気筒の角速度差Δωは残部気筒の角速度差Δωより若干マイナス方向に大きい。しかしながらそれでも、8気筒の角速度差Δωと残部気筒の角速度差Δωとの間にはそれ程差がない。よって増量前の角速度差Δωによっては、異常検出と異常気筒特定を十分な精度で行うことができない。他方、増量後だと増量前に比べて、残部気筒の角速度差Δωはほぼ等しく若干マイナス方向に変化するだけであるが、8気筒の角速度差Δωは大きくマイナス方向に変化する。よって8気筒の増量前後の角速度差の差dΔωは、残部気筒のそれより顕著に大きくなる。よってこの違いを利用し、異常検出と異常気筒特定を十分な精度で行うことができる。この場合、8気筒の差dΔωのみが前記異常判定値β1より大きくなるので、8気筒にリッチずれ異常があることを検出できる。燃料噴射量を強制減量して何れかの気筒のリーンずれ異常を検出する場合にも、同様の方法を採用できることが理解されるであろう。以上述べたように、気筒間空燃比ばらつき異常を検出するためには、上記したように、燃料噴射量を強制的に増量変更または減量変更させる制御つまり燃料噴射量変更制御を行って回転変動量を大きくすることが有効である。しかし、上で説明した燃料噴射量変更制御では、一気に、ある程度大きな量、燃料噴射量が変更される。それ故、仮に、燃料噴射量増量制御の対象である所定の対象気筒で、他の正常な気筒に対して、既にかなりのリッチずれが生じている場合に、当該所定の対象気筒の燃料噴射量を大きく増量変更すると、該所定の対象気筒に関して大きな出力変動が生じ得る。これは、ドライバビリティの悪化をもたらし、運転者に違和感を抱かせる可能性がある。そこで、本実施形態の燃料噴射量変更制御では、所定の対象気筒の燃料噴射量を基準噴射量から一気に大きくズラすのではなく、該所定の対象気筒の燃料噴射量の変更量が徐々に大きくなるように所定の対象気筒の燃料噴射量を段階的に変更する。そして、所定の対象気筒に関する回転変動量が予め定めた所定の回転変動量に達したとき、そのときの所定の対象気筒の燃料噴射量における変更量に基づいて気筒間空燃比ばらつき異常が検出される。ここで、所定の回転変動量は、運転者に違和感を抱かせる可能性を考慮して定められ、そのような違和感を抱かせないように、またはほとんど感じさせないように定められるとよい。具体的には、所定の回転変動量の回転変動が生じた場合であっても、運転者に感知され得るほどのドライバビリティの変化が生じないように、所定の回転変動量は定められることができる。以下、図7のフローチャートに基づいて、本第1実施形態における、気筒間空然比ばらつき異常を検出する制御つまり当該実施形態における空燃比診断用制御を説明する。まず、エンジン1が始動されると、ステップS701では変更カウンタC1がゼロにされ、次ぐステップS703では燃料変更量Δfがゼロにされる。そして、次ぐステップS705では、所定の運転状態か否かが判定される。この判定は、ECU100により実行され、ここでは上記したように検出されるエンジン回転速度およびエンジン負荷に基づいて実行される。例えば、エンジン始動後の所定の運転状態であるとき、ステップS705で肯定判定される。一例としては、エンジン冷却水温が所定温度例えば70°C以上であること、負荷が所定範囲内にあること、エンジン回転速度が所定エンジン回転速度域にあることの全てを満たす運転状態のとき、ステップS705で肯定判定される。ステップS705で肯定判定されるときには、上記したように触媒コンバータ18で排気浄化をより好適に行うために、排気空燃比がストイキに追従するように空燃比フィードバック制御が実行されているときが含まれ得る。したがって、ステップS705の判定は、排気空燃比を所定の目標空燃比に追従させるように空燃比フィードバック制御を実行しているか否かの判定に相当し得、特にここでは所定の目標空燃比はストイキである。しかし、所定の目標空燃比は、ストイキ以外とされることもできる。なお、本発明は、そのような空燃比制御が行われていることを、気筒間空燃比ばらつき異常の検出を実行するための条件に含めることができるが、含めなくてもよい。ステップS705で所定の運転状態であるので肯定判定されると、ステップS707で変更カウンタC1がゼロか否かが判定される。ここでは、変更カウンタC1がゼロであるので肯定判定され、ステップS709で燃料変更量Δfに所定量f1が加算される。今までは燃料変更量Δfがゼロであったので、これにより、燃料変更量Δfは所定量f1になる。所定量f1は、あまり大きな量ではなく、例えばインバランス率で約5相当の量とされる。そして、次ぐステップS711で燃料噴射量変更制御のうちの燃料噴射量増量制御が所定期間実行されて、それに伴うデータ、特に出力検出手段としてのクランク角センサ22の出力に基づくデータが記録される。燃料噴射量増量制御では、ステップS709で設定された燃料変更量Δf分、所定の対象気筒の燃料噴射量が増量変更させられる。燃料噴射量増量制御は上記したように様々な設定にしたがって実行され得、本実施形態では図6に表されているのと同様に全8気筒において同時期に実行される。なお、所定期間は、少なくとも1サイクルに相当する期間である。そして、次のステップS713で、出力変動量として回転変動量が算出される。ここでは、各気筒の回転変動量として角速度差Δωが既に説明したように算出される。そして、ステップS715で、ステップS713で算出された角速度差Δωが第1所定値以下であるか否かが判定される。この判定はステップS713で算出された角速度差Δωの各々に対して実行され、それらのうちの少なくとも1つでも第1所定値以下であるとき、ステップS715で肯定判定される。なお、第1所定値は、運転者に感知され得るほどのドライバビリティの変化が生じないような、所定の出力変動量、ここでは所定の回転変動量として予め実験に基づき定められている。また、第1所定値は、気筒間空然比ばらつき異常がある場合に十分かつ適切にそれを識別可能な出力変動量として予め実験に基づき定められている。ステップS715で否定判定されると、ステップS709に戻り、さらに燃料変更量Δfに所定量f1が加算される。今までは燃料変更量Δfがf1であったので、これにより、燃料変更量Δfは2×f1になる。そして、次ぐステップS711で、直近のステップS709で設定された燃料変更量Δf分、所定の対象気筒である全気筒の燃料噴射量を増量する燃料噴射量増量制御が所定期間実行されて、それに伴うデータが記録される。そして、次のステップS713で、各気筒の回転変動量として角速度差Δωが同様に算出され、ステップS715で、ステップS713で算出された角速度差Δωの各々が第1所定値以下であるか否かが判定される。このように、燃料噴射量増量制御の実行により、いずれかの気筒の角速度差Δωが第1所定値以下になるまで、つまり、いずれかの気筒の出力変動量が所定の出力変動量以上になるまで所定の出力変動量に達するまで、所定の対象気筒の燃料噴射量の変更量が徐々に大きくされる。なお、本実施形態では、燃料噴射量増量制御における燃料変更量Δfは所定量f1ずつ増量されるが、段階的に燃料噴射量の変更幅は小さくされてもよい。なお、本発明は、段階的に燃料噴射量の変更幅が大きくされることをも排除しない。また、第1回目の燃料噴射量増量制御における燃料変更量Δf、つまり該燃料変更量の初期値は本実施形態では燃料噴射量の変更幅と同じであるが、異なってもよい。そして、ステップS715で角速度差Δωが第1所定値以下であるので肯定判定されるようになると、ステップS717で燃料変更量Δfが第1燃料量以下か否かが判定される。燃料変更量Δfが第1燃料量以下である場合、燃料噴射量の少量の増量変更で、所定の対象気筒の少なくとも1つの気筒の角速度差Δωが第1所定値以下になったのであるから、当該少なくとも1つの気筒では当初からかなりの大きさのリッチずれが生じていたに違いない。それ故、燃料変更量Δfが第1燃料量以下であるのでステップS717で肯定判定される場合、ステップS719で、気筒間空然比ばらつき異常があると判定されたことに対応するように異常フラグがONにされて、当該フローは終了する。これにより、運転席のフロントパネル等に設けられ得る、図示しない警告ランプが点灯され、運転者または整備者などに気筒間空然比ばらつき異常があることが伝えられる。なお、異常フラグは初期状態ではOFFにされている。他方、ステップS717で否定判定されると、ステップS721で変更カウンタC1に1が加算され、ステップS703に戻る。ステップS703では燃料変更量Δfがゼロにされて、次ぐステップS705で上記したように所定の運転状態か否かが判定される。ステップS705で所定の運転状態であるので肯定判定されると、ステップS707で変更カウンタC1がゼロか否かが判定される。ここでは、変更カウンタC1は1であるので、否定判定されて、ステップS723で燃料変更量Δfに所定量f2が加算される。ステップS703で燃料変更量Δfがゼロにされたので、これにより、燃料変更量Δfは所定量f2になる。所定量f2は、あまり大きな量ではなく、例えばインバランス率で約2相当の量とされる。そして、次ぐステップS725で、燃料噴射量減量制御が燃料噴射量変更制御として所定期間実行されて、それに伴うデータ、特に出力検出手段としてのクランク角センサ22の出力に基づくデータが記録される。燃料噴射量減量制御では、直近のステップS723で設定された燃料変更量Δf分、所定の対象気筒の燃料噴射量が減量変更させられる。燃料噴射量減量制御は上記したように様々な設定にしたがって実行され得、本実施形態では図6に表されているのと同様に全8気筒において同時期に実行される。なお、所定期間は、少なくとも1サイクルに相当する期間である。そして、次のステップS727で、上記ステップS713と同様に、角速度差Δωが算出される。そして、ステップS729で、ステップS727で算出された角速度差Δωが第2所定値以下であるか否かが判定される。この判定はステップS727で算出された角速度差Δωの各々に対して実行され、それらのうちの少なくとも1つでも第2所定値以下であるとき、ステップS729で肯定判定される。なお、第2所定値は、運転者に感知され得るほどのドライバビリティの変化が生じないような、所定の出力変動量として予め実験に基づき定められていて、特にここではステップS715での第1所定値と異なるが、同じであってもよい。また、第2所定値は、気筒間空然比ばらつき異常がある場合に十分かつ適切にそれを識別可能な出力変動量として予め実験に基づき定められている。ステップS729で否定判定されると、ステップS723に戻り、さらに燃料変更量Δfに所定量f2が加算される。今までは燃料変更量Δfがf2であったので、これにより、燃料変更量Δfは2×f2になる。そして、次ぐステップS725で直近のステップS723で設定された燃料変更量Δf分、所定の対象気筒である全気筒の燃料噴射量を減量する燃料噴射量減量制御が所定期間実行されて、それに伴うデータが記録される。そして、次のステップS727で、各気筒の角速度差Δωが同様に算出され、ステップS729で、ステップS727で算出された角速度差Δωが第2所定値以下であるか否かが判定される。このように、燃料噴射量減量制御の実行により、いずれかの気筒の角速度差Δωが第2所定値以下になるまで、つまり、いずれかの気筒の出力変動量が所定の出力変動量以上になるまで所定の出力変動量に達するまで、所定の対象気筒の燃料噴射量の変更量が徐々に大きくされる。なお、本実施形態では、燃料噴射量減量制御における燃料変更量Δfは所定量f2ずつ増量されるが、段階的に燃料噴射量の変更幅は小さくされてもよい。なお、本発明は、段階的に燃料噴射量の変更幅が大きくされることをも排除しない。また、第1回目の燃料噴射量減量制御における燃料変更量Δf、つまり該燃料噴射量の初期値は本実施形態では燃料噴射量の変更幅と同じであるが、異なってもよい。そして、ステップS729で角速度差Δωが第2所定値以下であるので肯定判定されるようになると、ステップS731で燃料変更量Δfが第2燃料量以下か否かが判定される。燃料変更量Δfが第2燃料量以下である場合、燃料噴射量の少量の減量変更で、所定の対象気筒の少なくとも1つの気筒の角速度差Δωが第2所定値以下になったのであるから、当該少なくとも1つの気筒では当初からかなりの大きさのリーンずれが生じていたに違いない。それ故、燃料変更量Δfが第2燃料量以下であるのでステップS731で肯定判定される場合、上記ステップS719に至り、気筒間空然比ばらつき異常があると判定されたことに対応するように異常フラグがONにされて、当該フローは終了する。なお、ステップS731で否定判定される場合には、当該フローは終了する。これは、気筒間空然比ばらつき異常がないとして正常判定されたことを意味する。なお、ここでは、エンジン1の始動後、それが停止するまでの間に、たった一度のみ、図7にしたがって説明された気筒間空然比ばらつき異常の検出制御が実行される。しかし、適宜の時期に、この制御が実行されてもよい。例えば、エンジン1の運転時間またはエンジン1を搭載した車両の走行距離が所定値になったときに、当該制御が実行されることができる。このように、所定の対象気筒の燃料噴射量の変更量が徐々に大きくなるように所定の対象気筒の燃料噴射量を段階的に変更する燃料噴射量変更制御を実行し、それに伴って得られる所定の対象気筒に関する出力変動量が所定の出力変動量に達したとき、そのときの所定の対象気筒の燃料噴射量における変更量に基づいて気筒間空燃比ばらつき異常が検出される。しかし、このような燃料噴射量変更制御を伴う空燃比診断用制御はある程度の期間実行されるので、その途中で何らかの不具合が生じた場合もしくは何らかの制御が生じた場合などには、何らかの策が実行されることが望まれる。燃料噴射量変更制御が実行されたときであって、所定の回転変動量が得られる前にステップS715またはS729で肯定判定される前、エンジン回転速度が第1所定回転速度を越えたとき、つまりエンジン回転速度が所定回転速度以上変化するように高まったとき、それは所定の対象気筒の燃焼状態を悪化させるように燃料噴射量を変更していることに整合しない。それ故、このような場合には、ECU100の第2異常判定手段の機能を担う部分は、空燃比診断用制御の途中であっても燃料噴射量変更制御を含むその制御を中止し、気筒間空然比ばらつき異常があると判定するように異常フラグをONにする。なお、第1所定回転速度は、例えば、ステップS705での所定の運転状態に対応する所定回転速度に、1000rpmを加えた回転速度であり得る。また、燃料噴射量変更制御が実行されたときであって、特に燃料噴射量減量制御が実行されたときであって、所定の回転変動量が得られる前にステップS715またはS729で肯定判定される前、エンジン回転速度が第2所定回転速度を下回ったとき、または、エンジン回転速度が所定回転速度以上低下したとき、エンストの可能性が生じる。それ故、このような場合には、ECU100の第1中止手段の機能を担う部分は、空燃比診断用制御の途中であっても燃料噴射量変更制御を含むその制御を中止する。なお、このような場合にも異常フラグがONにされてもよい。なお、第2所定回転速度は例えば500rpmである。また、燃料噴射量変更制御が実行されたときに、上記エンスト防止制御が実行されたとき、このような場合にも、ECU100の第2中止手段の機能を担う部分は、空燃比診断用制御の途中であっても燃料噴射量変更制御を含むその制御を中止する。これはエンストをより確実に防止するためである。なお、このような場合にも異常フラグがONにされてもよい。なお、上記したように、所定の運転状態にあるときに、燃料噴射量変更制御が実行されるが、例えば、このときにアクセルペダルが踏み込まれてアクセル開度が急激に大きくなった場合、燃料噴射量変更制御による出力変動を適切に検出できない可能性がある。それ故、このような場合には、空燃比診断用制御の途中であっても燃料噴射量変更制御を含むその制御は中止される。ただし、この場合、一旦中止された診断制御は、途中からまたは最初から再度、始められ得る。次に、本発明に係る第2実施形態が説明される。第2実施形態が適用されたエンジンの構成は、概ね第1実施形態が適用されたエンジン1の構成と同じであるので、以下では、第2実施形態のエンジンの構成要素の説明は省略される。第2実施形態における制御は、以下に説明する点において、上記第1実施形態における上記制御に対して特徴を有し、上記第1実施形態における上記制御を概ね包含する。なお、第2実施形態にも、第1実施形態における上記変形などが同様に適用され得る。以下に、図8のフローチャートにしたがって本発明の第2実施形態における空燃比診断用制御を説明する。ただし、図8のステップS801~S809、S813~S825、S829~S835は、それぞれ、図7の上記ステップS801~S731に概ね対応するので、以下ではこれらの説明は実質的に省略される。変更カウンタC1がゼロである場合を考える。変更カウンタC1がゼロであるのでステップS807で肯定判定されると、ステップS809で燃料変更量Δfに所定量f1が加算される。エンジン始動後、始めてステップS809に至ったときには燃料変更量Δfがゼロであるので、これにより、燃料変更量Δfは所定量f1になる。そして、ステップS811で、ステップS809で設定された燃料変更量Δfが所定量である第3燃料量以下であるか否かが判定される。ステップS811での第3燃料量は予め実験に基づいて定められている。ステップS811で燃料変更量Δfが第3燃料量以下であるので肯定判定されるとき、ステップS813で、燃料変更量Δf分、所定の対象気筒の燃料噴射量を増量する燃料噴射量増量制御が所定期間実行されて、それに伴うデータが記録される。そして、次のステップS815で、各気筒の角速度差Δωが算出され、ステップS817で、ステップS815で算出された角速度差Δωが第1所定値以下であるか否かが判定される。ステップS817で角速度差Δωが第1所定値以下でないので否定判定されると、ステップS809に戻り、さらに燃料変更量Δfに所定量f1が加算される。このように、燃料噴射量増量制御の実行により、いずれかの気筒の角速度差Δωが第1所定値以下になるまで、燃料噴射量増量制御の燃料変更量Δfが徐々に大きくされる。そして、ステップS809で、さらに燃料変更量Δfに所定量f1が加算されて、これにより、燃料変更量Δfがn×f1になった場合を考える。ただし、ここでは、nは2以上の整数であり、上記ステップS811での第3燃料量と関係付けられている。それ故、このとき、ステップS811で、燃料変更量Δfが第3燃料量を越えるので、否定判定される。その結果、ステップS821で、気筒間空然比ばらつき異常があると判定されたことに対応するように異常フラグがONにされて、当該フローは終了する。このように、角速度差Δωが第1所定値以下になる前に、燃料噴射量増量制御における燃料変更量Δfが第3燃料量を越えたとき、ECU100の第1異常判定手段の機能を担う部分は、気筒間空然比ばらつき異常があると判定する異常を検出する。これは、所定の対象気筒の燃料噴射量をかなりの量、強制的に変更したにもかかわらず、それに対応した出力変動が検出されず、この場合、気筒間空然比ばらつき異常がある可能性があるからである。また、このような場合に、さらに燃料噴射量変更制御を継続することは、エンジン1の作動に悪影響を及ぼす可能性があるからである。次に、変更カウンタC1が1である場合を考える。変更カウンタC1が1であるのでステップS807で否定判定されると、ステップS825で燃料変更量Δfに所定量f2が加算される。エンジン始動後、始めてステップS825に至ったときには燃料変更量Δfがゼロであるので、これにより、燃料変更量Δfは所定量f2になる。そして、ステップS827で、ステップS825で設定された燃料変更量Δfが所定量である第4燃料量以下であるか否かが判定される。ステップS827での第4燃料量は予め実験に基づいて定められている。ステップS827で燃料変更量Δfが第4燃料量以下であるので肯定判定されるとき、ステップS829で、燃料変更量Δf分、所定の対象気筒の燃料噴射量を減量する燃料噴射量減量制御が所定期間実行されて、それに伴うデータが記録される。そして、次のステップS831で、各気筒の角速度差Δωが算出され、ステップS833で、ステップS831で算出された角速度差Δωが第2所定値以下であるか否かが判定される。ステップS833で角速度差Δωが第2所定値以下でないので否定判定されると、ステップS825に戻り、さらに燃料変更量Δfに所定量f2が加算される。このように、燃料噴射量減量制御の実行により、いずれかの気筒の角速度差Δωが第2所定値以下になるまで、燃料噴射量減量制御の燃料変更量が徐々に大きくされる。そして、ステップS825で、さらに燃料変更量Δfに所定量f2が加算されて、これにより、燃料変更量Δfがm×f2になった場合を考える。ただし、ここでは、mは2以上の整数であり、上記ステップS827での第4燃料量と関係付けられている。それ故、このとき、ステップS827で、燃料変更量Δfが第4燃料量を越えるので、否定判定される。その結果、ステップS821で、異常フラグがONにされて、当該フローは終了する。このように、角速度差Δωが第2所定値以下になる前に、燃料噴射量減量制御における燃料変更量Δfが第4燃料量を越えたとき、上記理由と同様の理由により、ECU100の第1異常判定手段の機能を担う部分は、気筒間空然比ばらつき異常があると判定する異常を検出する。以上、本発明の好適な実施形態を詳細に述べたが、本発明の実施形態は他にも様々なものが考えられる。例えば上記実施形態では、回転変動量として角速度差Δωが採用されたが、回転時間差ΔTなどの上記した値を含む種々の値が回転変動量として用いられてもよい。そして、出力変動量は回転変動量に限定されず、例えば、筒内圧検出手段としての筒内圧センサからの出力に基づいて検出される筒内圧に基づく値が出力変動量として用いられてもよい。また、本発明は、種々の形式の2つ以上の気筒を有する多気筒エンジンに適用され得、ポート噴射形式のエンジンのみならず、筒内噴射形式のエンジン、ガスを燃料として用いるエンジンなどにも適用され得る。本発明の実施形態は前述の実施形態のみに限らず、特許請求の範囲によって規定される本発明の思想に包含されるあらゆる変形例や応用例、均等物が本発明に含まれる。したがって本発明は、限定的に解釈されるべきではなく、本発明の思想の範囲内に帰属する他の任意の技術にも適用することが可能である。"