"多気筒内燃機関における各気筒の吸気弁の作用角を可変にする作用角可変機構と、各気筒の回転変動に関するパラメータを検出し、この検出されたパラメータに基づき気筒間空燃比ばらつき異常の有無を検出する異常検出手段と、を備え、前記異常検出手段は、前記パラメータの検出時における作用角が所定の大作用角領域にあるときには正常判定を保留し、前記パラメータの検出時における作用角が、前記大作用角領域よりも小作用角側の所定の小作用角領域にあるときには正常判定を実行可能であることを特徴とする気筒間空燃比ばらつき異常検出装置。前記異常検出手段は、検出された前記パラメータが所定の判定値に対し正常側の値であっても、前記パラメータの検出時における作用角が前記大作用角領域にあるときには正常判定を保留することを特徴とする請求項1に記載の気筒間空燃比ばらつき異常検出装置。前記異常検出手段は、特定気筒の作用角の減少ずれに起因する気筒間空燃比ばらつき異常を検出可能であることを特徴とする請求項1または2に記載の気筒間空燃比ばらつき異常検出装置。前記大作用角領域が最大作用角を含み、前記小作用角領域が最小作用角を含むことを特徴とする請求項1~3のいずれか一項に記載の気筒間空燃比ばらつき異常検出装置。ところで、各気筒の回転変動に関するパラメータを検出し、この検出されたパラメータに基づき気筒間空燃比ばらつき異常の有無を検出することが考えられる。一方、近年では、各気筒の吸気弁の作用角開弁から閉弁までのクランク角が可変である内燃機関が実用化されている。この種の内燃機関において、回転変動に関するパラメータに基づきばらつき異常を検出しようとすると、次の問題が起こる。すなわち、気筒間空燃比ばらつき異常の原因には、特定気筒において燃料噴射量が正常値からずれる噴射量ずれと、特定気筒において吸入空気量が正常値からずれる空気量ずれとがある。噴射量ずれの場合、特に燃料噴射量が正常値よりも減少側にずれる噴射量減少ずれの場合、吸気弁の作用角の影響はなく、正常か異常かを作用角に拘わらず問題なく判定できる。しかし、空気量ずれの場合、特に作用角が正常値よりも減少側にずれて空気量が過少となる作用角減少ずれの場合だと、そのずれのない正常値としての作用角の大きさによって、判定結果が異なってしまう。すなわち、正常値としての作用角が小さい場合には、作用角減少ずれの影響が大きいため、正常か異常かを正確に判定できる。しかし、正常値としての作用角が大きい場合には、作用角減少ずれの影響が小さくなり、たとえ異常であっても正常と誤判定してしまう可能性がある。このため十分な検出精度を確保するのが困難である。そこで本発明は、上記事情に鑑みて創案され、その目的は、誤判定を防止して十分な検出精度を確保することが可能な気筒間空燃比ばらつき異常検出装置を提供することにある。本発明の一の態様によれば、多気筒内燃機関における各気筒の吸気弁の作用角を可変にする作用角可変機構と、各気筒の回転変動に関するパラメータを検出し、この検出されたパラメータに基づき気筒間空燃比ばらつき異常の有無を検出する異常検出手段と、を備え、前記異常検出手段は、前記パラメータの検出時における作用角が所定の大作用角領域にあるときには正常判定を保留し、前記パラメータの検出時における作用角が、前記大作用角領域よりも小作用角側の所定の小作用角領域にあるときには正常判定を実行可能であることを特徴とする気筒間空燃比ばらつき異常検出装置が提供される。好ましくは、前記異常検出手段は、検出された前記パラメータが所定の判定値に対し正常側の値であっても、前記パラメータの検出時における作用角が前記大作用角領域にあるときには正常判定を保留する。好ましくは、前記異常検出手段は、特定気筒の作用角の減少ずれに起因する気筒間空燃比ばらつき異常を検出可能である。好ましくは、前記大作用角領域が最大作用角を含み、前記小作用角領域が最小作用角を含む。本発明によれば、誤判定を防止して十分な検出精度を確保することができるという、優れた効果が発揮される。以下、本発明の実施形態を添付図面に基づき説明する。図1は、本実施形態に係る内燃機関の概略図である。図示されるように、内燃機関エンジン1は、シリンダブロック2に形成された燃焼室3の内部で燃料および空気の混合気を燃焼させ、燃焼室3内でピストンを往復移動させることにより動力を発生する。本実施形態の内燃機関1は自動車に搭載された多気筒内燃機関であり、より具体的には直列4気筒火花点火式内燃機関である。内燃機関1は1~4気筒を備える。但し気筒数、形式等は特に限定されない。図示しないが、内燃機関1のシリンダヘッドには吸気ポートを開閉する吸気弁と、排気ポートを開閉する排気弁とが気筒ごとに配設されており、各吸気弁および各排気弁はカムシャフトによって開閉させられる。シリンダヘッドの頂部には、燃焼室3内の混合気に点火するための点火プラグ7が気筒ごとに取り付けられている。各気筒の吸気ポートは気筒毎の枝管4を介して吸気集合室であるサージタンク8に接続されている。サージタンク8の上流側には吸気管13が接続されており、吸気管13の上流端にはエアクリーナ9が設けられている。そして吸気管13には、上流側から順に、吸入空気量を検出するためのエアフローメータ5と、電子制御式のスロットルバルブ10とが組み込まれている。吸気ポート、枝管4、サージタンク8及び吸気管13により吸気通路が形成される。吸気通路、特に吸気ポート内に燃料を噴射するインジェクタ燃料噴射弁12が気筒ごとに配設されている。インジェクタ12から噴射された燃料は吸入空気と混合されて混合気をなし、この混合気が吸気弁の開弁時に燃焼室3に吸入され、ピストンで圧縮され、点火プラグ7で点火燃焼させられる。なおインジェクタは燃焼室3内に燃料を直接噴射するものであってもよい。一方、各気筒の排気ポートは排気マニフォールド14に接続される。排気マニフォールド14は、その上流部をなす気筒毎の枝管14aと、その下流部をなす排気集合部14bとからなる。排気集合部14bの下流側には排気管6が接続されている。排気ポート、排気マニフォールド14及び排気管6により排気通路が形成される。排気管6の上流側と下流側にはそれぞれ三元触媒からなる触媒、すなわち上流触媒11と下流触媒19が直列に取り付けられている。これら触媒11,19は酸素吸蔵能O2ストレージ能を有する。すなわち、触媒11,19は、排気ガスの空燃比がストイキ理論空燃比、例えばA/F=14.6より大きいリーンなときに排気ガス中の過剰酸素を吸蔵し、NOxを還元する。また触媒11,19は、排気ガスの空燃比がストイキより小さいリッチなときに吸蔵酸素を放出し、排気ガス中のHC,COを酸化する。上流触媒11の上流側及び下流側にそれぞれ排気ガスの空燃比を検出するための第1及び第2の空燃比センサ、即ち触媒前センサ17及び触媒後センサ18が設置されている。これら触媒前センサ17及び触媒後センサ18は、上流触媒11の直前及び直後の位置に設置され、排気中の酸素濃度に基づいて空燃比を検出する。このように上流触媒11の上流側の排気合流部に単一の触媒前センサ17が設置されている。上述の点火プラグ7、スロットルバルブ10及びインジェクタ12等は、制御手段としての電子制御ユニット以下ECUと称す20に電気的に接続されている。ECU20は、何れも図示されないCPU、ROM、RAM、入出力ポート、および記憶装置等を含むものである。またECU20には、図示されるように、前述のエアフローメータ5、触媒前センサ17、触媒後センサ18のほか、内燃機関1のクランク角を検出するクランク角センサ16、アクセル開度を検出するアクセル開度センサ15、その他の各種センサが図示されないA/D変換器等を介して電気的に接続されている。ECU20は、各種センサの検出値等に基づいて、所望の出力が得られるように、点火プラグ7、スロットルバルブ10、インジェクタ12等を制御し、点火時期、燃料噴射量、燃料噴射時期、スロットル開度等を制御する。スロットルバルブ10にはスロットル開度センサ図示せずが設けられ、スロットル開度センサからの信号がECU20に送られる。ECU20は、通常、アクセル開度に応じて定まる目標スロットル開度に、スロットルバルブ10の開度スロットル開度をフィードバック制御する。ECU20は、エアフローメータ5からの信号に基づき、単位時間当たりの吸入空気の量である吸入空気量すなわち吸気流量を検出する。そしてECU20は、検出したアクセル開度、スロットル開度および吸入空気量の少なくとも一つに基づき、エンジン1の負荷を検出する。ECU20は、クランク角センサ16からのクランクパルス信号に基づき、クランク角自体を検出すると共にエンジン1の回転数を検出する。ここで回転数とは単位時間当たりの回転数のことをいい、回転速度と同義である。本実施形態では1分間当たりの回転数rpmのことをいう。触媒前センサ17は所謂広域空燃比センサからなり、比較的広範囲に亘る空燃比を連続的に検出可能である。図2に触媒前センサ17の出力特性を示す。図示するように、触媒前センサ17は、排気空燃比に比例した大きさの電圧信号Vfを出力する。排気空燃比がストイキであるときの出力電圧はVreff例えば約3.3Vである。他方、触媒後センサ18は所謂O2センサからなり、ストイキを境に出力値が急変する特性を持つ。図2に触媒後センサ18の出力特性を示す。図示するように、排気空燃比がストイキであるときの出力電圧、すなわちストイキ相当値はVrefr例えば0.45Vである。触媒後センサ18の出力電圧は所定の範囲例えば0~1V内で変化する。排気空燃比がストイキよりリーンのとき、触媒後センサの出力電圧はストイキ相当値Vrefrより低くなり、排気空燃比がストイキよりリッチのとき、触媒後センサの出力電圧はストイキ相当値Vrefrより高くなる。上流触媒11及び下流触媒19は、それぞれに流入する排気ガスの空燃比A/Fがストイキ近傍のときに排気中の有害成分であるNOx,HCおよびCOを同時に浄化する。この三者を同時に高効率で浄化できる空燃比の幅ウィンドウは比較的狭い。そこで通常運転時、上流触媒11に流入する排気ガスの空燃比がストイキ近傍に制御されるように、空燃比フィードバック制御がECU20により実行される。この空燃比フィードバック制御は、触媒前センサ17によって検出された排気空燃比を所定の目標空燃比であるストイキに一致させるようなメイン空燃比制御メイン空燃比フィードバック制御と、触媒後センサ18によって検出された排気空燃比をストイキに一致させるようなサブ空燃比制御サブ空燃比フィードバック制御とからなる。なお、このように目標空燃比をストイキとする空燃比フィードバック制御をストイキ制御という。ストイキは基準空燃比をなす。ところで本実施形態のエンジン1には、各気筒の吸気弁の作用角を可変にする作用角可変機構が設けられている。図3には作用角可変機構による作用角の変化の様子を示し、図4には作用角可変機構の構造を示す。図3に示すように、作用角可変機構は、吸気弁の作用角を連続的に変化させる。本実施形態では作用角可変機構により吸気弁の最大リフト量も連続的に変化させられる。作用角及び最大リフト量は互いに同期して変化させられ、作用角が小さくなるほど最大リフト量は小さくなり、作用角が大きくなるほど最大リフト量は大きくなる。図4に示すように、作用角可変機構42としては、例えば気筒毎に設けられた仲介駆動機構43と、全気筒の仲介駆動機構43に共通のコントロールシャフト44及びアクチュエータ46とを備えたもの特開2001-263015号公報等参照を用いることができる。アクチュエータ46は、例えばECU20により制御される電動モータと、その電動モータの回転を直線運動に変換してコントロールシャフト44に伝達する動力伝達機構とを備える。そして、通電により電動モータが回転すると、それに伴い動力伝達機構が作動してコントロールシャフト44が軸方向へ変位させられる。各仲介駆動機構43は、吸気カムシャフト31と吸気弁27との間に設けられており、入力アーム47及び出力アーム48を備える。コントロールシャフト44と入出力アーム47,48との間には、動力伝達用のスライダ49が回動可能かつ軸方向移動可能に介在されている。スライダ49及び入出力アーム47,48は、ヘリカルスプラインによって相互に噛合わされている。そして、吸気カムシャフト31が回転すると、吸気カム31Aによって入力アーム47がコントロールシャフト44を支点として上下に揺動される。この揺動はスライダ49を介して出力アーム48に伝達され、同出力アーム48を上下に揺動させる。この揺動する出力アーム48によって吸気弁27が駆動されて開閉する。また、アクチュエータ46によってコントロールシャフト44が軸方向へ移動されることで、スライダ49が同方向へ変位しながら回転し、入出力アーム47,48の揺動方向について、入力アーム47と出力アーム48との相対位相差が変更される。この変更に伴い全気筒の吸気弁27のバルブ特性作用角及び最大リフト量が連続的且つ一律に変化する。相対位相差が小さいときには作用角及び最大リフト量がともに小さく、気筒当りの吸入空気量が少なくなる。相対位相差が増大すると、作用角及び最大リフト量がともに大きくなって同吸入空気量が多くなる。ECU20は、検出された回転数および負荷に応じて作用角可変機構42特にそのアクチュエータ46の電動モータを制御し、作用角を制御する。具体的には、ECU20は、検出された回転数および負荷に応じた目標作用角を所定のマップ関数でもよい。以下同様。から算出し、この算出された目標作用角に実際の作用角が一致するよう作用角可変機構42を制御する。回転数が高いほど、また負荷が高いほど、作用角は増大させられる。こうして吸気弁の作用角を回転数および負荷に応じて連続的に変化させることで、燃焼室3内に吸入される空気量を全運転領域に亘って変化させることができる。よってスロットル開度を通常より開いたり、或いは省略することもでき、これによってポンピングロスを減少し、同一の出力をより少ない空気量及び燃料量で得られ、燃費等を向上することができる。さて、例えば全気筒のうちの一部の気筒特に1気筒のインジェクタ12が故障し、気筒間に空燃比のばらつきインバランス:imbalanceが発生する場合がある。例えば1気筒のインジェクタ12が故障し、1気筒が他の2、3及び4気筒よりも燃料噴射量が多くなり、その空燃比が大きくリッチ側にずれる場合等である。このときでも前述のストイキ制御により比較的大きな補正量を与えれば、触媒前センサ17に供給されるトータルガスの空燃比をストイキに制御できる場合がある。しかし、気筒別に見ると、1気筒がストイキより大きくリッチ、2、3及び4気筒がストイキより若干リーンであり、全体のバランスとしてストイキとなっているに過ぎず、エミッション上好ましくないことは明らかである。そこで本実施形態では、かかる気筒間空燃比ばらつき異常を検出する装置が装備されている。ここで、気筒間空燃比のばらつき度合いを表す指標値としてインバランス率なる値を用いる。インバランス率とは、複数の気筒のうちある1気筒のみが燃料噴射量ズレを起こしている場合に、その燃料噴射量ズレを起こしている気筒インバランス気筒の燃料噴射量がどれくらいの割合で、燃料噴射量ズレを起こしていない気筒バランス気筒の燃料噴射量即ち基準噴射量からズレているかを示す値である。インバランス率をIB、インバランス気筒の燃料噴射量をQib、バランス気筒の燃料噴射量即ち基準噴射量をQsとすると、IB=Qib-Qs/Qs×100で表される。インバランス率IBが大きいほど、インバランス気筒のバランス気筒に対する燃料噴射量ズレが大きく、空燃比ばらつき度合いは大きい。他方、本実施形態においては、各気筒の回転変動に関するパラメータを検出し、この検出されたパラメータに基づきばらつき異常の有無を検出する。まず、回転変動について説明する。回転変動とは、エンジン回転速度あるいはクランクシャフト回転速度の変化をいい、例えば次に述べるような値で表すことができる。本実施形態においては各気筒の回転変動を気筒毎に検出可能である。図5には回転変動を説明するためのタイムチャートを示す。図示例において点火順序は1,3,4,2気筒の順である。図5において、Aはエンジンのクランク角°CAを示す。1エンジンサイクルは720°CAであり、図には逐次的に検出される複数サイクル分のクランク角が鋸歯状に示されている。Bは、クランクシャフトが所定角度だけ回転するのに要した時間、すなわち回転時間Tsを示す。ここでは所定角度が30°CAであるが、他の値例えば10°CAとしてもよい。回転時間Tが長いほどエンジン回転速度は遅く、逆に回転時間Tが短いほどエンジン回転速度は速い。この回転時間Tはクランク角センサ16の出力に基づきECU100により検出される。Cは、後に説明する回転時間差Δ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は大きくなる。他方、図5Cに示すように、正常の場合には回転時間差ΔTが常時ゼロ付近である。図5の例ではリーンずれ異常の場合を示したが、逆のリッチずれ異常、すなわち1気筒のみに大きなリッチずれが生じている場合にも、同様の傾向がある。大きなリッチずれが生じた場合、点火しても燃料過多のため燃焼が不十分となり、十分なトルクが得られず、回転変動が大きくなるからである。次に、図6を参照して、回転変動に関する別のパラメータを説明する。Aは図5Aと同様にエンジンのクランク角°CAを示す。Bは、前記回転時間Tの逆数である角速度ωrad/sを示す。ω=1/Tである。当然ながら、角速度ωが大きいほどエンジン回転速度は速く、角速度ωが小さいほどエンジン回転速度は遅い。角速度ωの波形は、回転時間Tの波形を上下反転した形となる。Cは、前記回転時間差ΔTと同様、角速度ωの差である角速度差Δωを示す。角速度差Δωの波形も、回転時間差ΔTの波形を上下反転した形となる。図中の正常およびリーンずれ異常については図5と同様である。まず、各気筒の同一タイミングにおける角速度ωが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エンジンサイクル毎に繰り返される。このように、各気筒の角速度差Δωは、各気筒の回転変動を表す値であり、各気筒の空燃比ずれ量に相関した値であることが分かる。そこで各気筒の角速度差Δωを各気筒の回転変動パラメータとして用いることができる。各気筒の空燃比ずれ量が大きいほど、各気筒の回転変動は大きくなり、各気筒の角速度差Δωは小さくなるマイナス方向に大きくなる。他方、図6Cに示すように、正常の場合には角速度差Δωが常時ゼロ付近である。逆のリッチずれ異常の場合にも同様の傾向がある点は上述した通りである。便宜上、以下の説明において、角速度差の絶対値|Δω|を回転変動パラメータXとして用いるX=|Δω|。ある気筒の回転変動が大きいほど、当該気筒の回転変動パラメータXは大きくなる。そして、実際に検出された各気筒の回転変動パラメータXの値がそれぞれ所定の判定値αと比較される。ある気筒の回転変動パラメータXの値が判定値αより大きい場合、ばらつき異常有り、すなわち異常と判定され、その気筒が異常気筒と特定される。他方、全気筒の回転変動パラメータXの値が判定値α以下の場合、ばらつき異常無し、すなわち正常と判定される。さて、前述したように、ばらつき異常の原因には、ある1気筒すなわち特定気筒において燃料噴射量が正常値からずれる噴射量ずれと、特定気筒において吸入空気量が正常値からずれる空気量ずれとがある。噴射量ずれには、燃料噴射量が正常値から増大側にずれる噴射量増大ずれと、燃料噴射量が正常値から減少側にずれる噴射量減少ずれとがある。前者は、例えば特定気筒のインジェクタ12の閉弁不良による故障等に起因し、後者は、例えば特定気筒のインジェクタ12の開弁不良や噴孔詰まりによる故障等に起因する。他方、空気量ずれには、吸入空気量が正常値から減少側にずれる空気量減少ずれと、吸入空気量が正常値から増大側にずれる空気量増大ずれとがある。前者も後者も、例えば作用角可変機構42の故障により、特定気筒の作用角が正常値から増大側または減少側にずれることが原因となり得る。本実施形態は特にこの作用角の増大ずれおよび減少ずれに起因する空気量ずれ、ひいてはこの空気量ずれに起因するばらつき異常の検出に向けられる。図7には作用角の増大ずれと減少ずれの様子を示す。線aで示されるのは正常値としての作用角すなわち正常作用角であり、その大きさはSである。Sは例えば120°CAである。これに対し、線bで示されるのは正常作用角SからΔSだけ増大側にずれた作用角であり、その大きさはSΔSである。例えばΔSは20°CAであり、SΔSは140°CAである。線cで示されるのは正常作用角SからΔSだけ減少側にずれた作用角であり、その大きさはS-ΔSである。例えばS-ΔSは100°CAである。なお本実施形態の場合、作用角の増大ずれと減少ずれに伴って最大リフト量にも増大ずれと減少ずれが発生する。図8は、特定気筒における噴射量ずれと作用角ずれとが特定気筒の空燃比A/Fに及ぼす影響をグラフ化したものである。ここで噴射量ずれも作用角ずれも生じていない正常状態のとき、空燃比A/Fは常にストイキである。図中、Sminは最小作用角、Smaxは最大作用角を表す。これらは作用角制御上における作用角の最小値および最大値に相当する。まず作用角ずれがなく噴射量増大ずれのみが生じている場合、線aで示すように、空燃比A/Fは、作用角Sの値に拘わらず常にストイキよりリッチな一定値を示す。また作用角ずれがなく噴射量減少ずれのみが生じている場合、線bで示すように、空燃比A/Fは、作用角Sの値に拘わらず常にストイキよりリーンな一定値を示す。よっていずれの場合も作用角の影響はなく、正常か異常かを作用角に拘わらず問題なく判定できる。なお、線aで示すような噴射量増大ずれの影響はエンジン回転変動にそれ程大きく現れない。よって噴射量増大ずれは、本実施形態における回転変動を利用する検出方法よりも、むしろ違う方法例えば触媒前センサ17の出力変動を利用する方法で検出するのが好ましい。他方、線bで示すような噴射量減少ずれの影響はエンジン回転変動に大きく現れる。よって本実施形態の検出方法により検出するのが好ましい。一方、噴射量ずれがなく作用角増大ずれのみが生じている場合、線cで示すように、空燃比A/Fは、作用角Sの増加につれすなわち回転数および/または負荷の増加につれ、ストイキよりリーンな値からストイキよりリッチな値へと減少するリッチ化する傾向にある。但し、作用角増大ずれであることから、作用角Sがどのような値であっても、燃焼に必要な作用角およびリフト量、ひいては空気量が確保される。よって作用角増大ずれが回転変動に及ぼす影響は小さく、本実施形態の検出方法は作用角増大ずれに起因するばらつき異常を特に検出対象とはしない。例えば、円c1内に示すような最小作用角Sminを含む小作用角時には、必要な作用角およびリフト量ひいては空気量が確保されており、回転変動はそれ程悪化しない。また円c2内に示すような最大作用角Smaxを含む大作用角時には、元々の作用角が大きいので、作用角が多少増大側にずれても空気量ひいては回転変動にそれ程影響しない。バルブオーバーラップが過剰となって多少回転変動が悪化するが、問題視するほどのエミッション悪化は生じない。従って検出対象としなくても特に問題はない。もっとも、非常に大きい作用角増大ずれが生じると、問題視するほどのエミッション悪化が生じるが、通常はこのようなエミッション悪化が生じる前に、作用角増大ずれによるハード上の破損が起きる。例えばバルブスプリングの開固着やピストンスタンプなどである。こうなると吸気弁が恒常的に開弁しなくなり、1気筒に連続失火が生じるので、別の診断手段により検出可能である。一方、噴射量ずれがなく作用角減少ずれのみが生じている場合、線dで示すように、空燃比A/Fは、作用角Sの増加につれすなわち回転数および/または負荷の増加につれ、ストイキよりリッチな値からストイキよりリーンな値へと増加するリーン化する傾向にある。特にこの場合、作用角減少ずれであることから、作用角減少ずれの空気量に対する影響が大きい。よって作用角減少ずれが回転変動に及ぼす影響は大きく、本実施形態の検出方法はこの作用角減少ずれに起因するばらつき異常を検出対象とする。例えば、円d1内に示すような最小作用角Sminを含む小作用角時には、元々の作用角が小さい上にさらに作用角が小さくなるので、回転変動が悪化する。よってずれの大きさが回転変動ひいては回転変動パラメータXの値に好適に反映されるようになり、小作用角時は本実施形態のばらつき異常検出を行うタイミングとして好適である。しかし、円d2内に示すような最大作用角Smaxを含む大作用角時だと、小作用角時とは異なる様相を呈する。すなわち、元々の作用角が大きいために、作用角が多少減少側にずれても必要な空気量がほぼ確保され、作用角ずれが回転変動に現れ難くなる。よってたとえ作用角減少ずれが生じていても、見掛け上それが生じていないように見え、結果としてばらつき異常無し、すなわち正常と誤判定してしまう可能性がある。大作用角時でも作用角減少ずれがあれば、エミッションが悪化するので、ばらつき異常有りすなわち異常と判定すべきであるが、結果はこうならない可能性がある。ここに本実施形態の主たる課題が存在する。図9は、本実施形態で特に検出対象とする噴射量減少ずれと作用角減少ずれとが発生した場合の、作用角Sと回転変動パラメータXの関係を概念的に示す。まずAに示すように、噴射量減少ずれが発生した場合、作用角Sの値に拘わらず、回転変動パラメータXは比較的大きな値となる。よって噴射量減少ずれは作用角Sの値とは無関係に回転変動パラメータXにより検出可能である。次にBに示すように、作用角減少ずれが発生した場合、作用角Sの値に応じて回転変動パラメータXが変化し、作用角Sが小さいときには回転変動パラメータXが大きいが、作用角Sが大きいときには回転変動パラメータXが小さくなってしまう。よって作用角Sが大きいときに正常との誤判定を防止する必要がある。そこで以上の課題に鑑み、本実施形態においては、回転変動パラメータXの検出時における作用角Sが所定の大作用角領域にあるときには正常判定を保留するすなわち正常判定を実行しない。そして回転変動パラメータXの検出時における作用角Sが所定の小作用角領域にあるときには正常判定を実行可能とする。ここで、大作用角領域および小作用角領域とは例えば次のような領域である。すなわち、図8に示すように、最小作用角Sminから最大作用角Smaxまでの全作用角領域を二分割する所定のしきい値S1を設け、作用角Sがしきい値S1より大きい領域を大作用角領域、作用角Sがしきい値S1以下の領域を小作用角領域とする。大作用角領域には最大作用角Smaxが含まれ、小作用角領域には最小作用角Sminが含まれる。大作用角領域は、エンジンの中~高負荷運転時に使用される作用角からなる領域である。小作用角領域は、エンジンの低~中負荷運転時に使用される作用角からなる領域である。あるいは代替的に、図8に示すように、全作用角領域を三分割する所定のしきい値S2,S3但しS2<S3を設け、作用角Sがしきい値S3より大きい領域を大作用角領域、作用角Sがしきい値S2より小さい領域を小作用角領域としてもよい。この場合にも大作用角領域には最大作用角Smaxが含まれ、小作用角領域には最小作用角Sminが含まれる。大作用角領域は、エンジンの高負荷運転時に使用される作用角からなる領域である。小作用角領域は、エンジンの低負荷運転時に使用される作用角からなる領域である。いずれにしても、小作用角領域は大作用角領域より小作用角側の領域である。作用角Sが大作用角領域にあるときに正常判定を保留する実行しないことにより、上記の如く、大作用角時に作用角減少ずれが生じた場合に正常と誤判定してしまうこと誤正常判定を防止できる。そして作用角Sが小作用角領域にあるときに正常判定を実行可能とすることにより、上記の如く、小作用角時に作用角減少ずれが生じた場合に当該ずれが回転変動パラメータXに好適に反映されるという特性を活かして、ばらつき異常検出を精度良く行うことができる。よって誤判定を防止し、十分な検出精度を確保することが可能である。次に、本実施形態におけるばらつき異常検出のより具体的な態様を述べる。まず、作用角制御モードについて図10を参照しつつ説明する。図10は、作用角制御モードの設定ルーチンのフローチャートを示す。図示するルーチンはECU20によりエンジンの始動と同時に開始され、所定の演算周期毎に繰り返し実行される。まずステップS101では、エンジン1の暖機が完了したか否かが判断される。この判断は、図示しない水温センサにより検出されたエンジン冷却水の温度に基づいて行われる。判断結果がイエスの場合にはステップS102に進む。ステップS102では、各学習値の学習が完了したか否かが判断される。すなわち、本実施形態におけるエンジン制御では、空燃比フィードバック制御における学習値やアイドルスピード制御における学習値等、様々な学習値が定期的にECU20に学習更新記憶されるようになっており、これら学習値の学習が全て完了した時点でステップS102の判断結果がイエスとなる。ステップS102の判断結果がイエスの場合、ステップS103に進んで、作用角制御モードが作用角可変モードに設定される。これにより、吸気弁の作用角Sは、回転数および負荷に応じて定まる目標作用角に等しくなるよう、最小作用角Sminから最大作用角Smaxまで変化させられる。他方、ステップS101またはS102の判断結果がノーの場合、ステップS104に進んで、作用角制御モードが作用角固定モードに設定される。これにより、吸気弁の作用角Sは回転数および負荷に拘わらず、大作用角領域に属する一定の所定値、本実施形態では最大作用角Smaxに固定される。次に、ばらつき異常検出の検出処理について図11を参照しつつ説明する。図11は、ばらつき異常検出ルーチンのフローチャートを示す。図示するルーチンはECU20によりエンジンの始動と同時に開始され、所定の演算周期毎に繰り返し実行される。ここでルーチンの実行タイミングは、各気筒のTDC、すなわち角速度ωの検出タイミングと等しく設定されるのが好ましい。ステップS201では、所定の前提条件が成立しているか否かが判断される。この前提条件には、エンジンがアイドル運転中であるという条件が含まれる。なおこれの代わりに、エンジンがアイドルおよびその近傍の低回転低負荷領域で運転しているという条件を含めてもよい。この前提条件には作用角に関する条件は含まれていない。ステップS201の判断結果がイエスの場合にはステップS202に進み、ノーの場合にはルーチンが終了される。ステップS202では、今回タイミングnにおける各気筒の回転変動パラメータXinが算出ないし検出されると共に、今回タイミングnにおける目標作用角Sinの値が取得される。iは気筒番号を表すi=1,2,3,4。回転変動パラメータXinの値と目標作用角Sinの値とは、気筒番号iおよびタイミングによる対応付けがなされている。ステップS203では、ステップS202の最初の実行時点から数えてNエンジンサイクルが終了したか否かが判断される。Nは複数の整数であり、例えば100である。1エンジンサイクルは720°CAである。終了してなければルーチンが終了され、終了したならばステップS204に進む。Nエンジンサイクルが終了すると結果的に、N個ずつの各気筒の回転変動パラメータXinと、これら各気筒の回転変動パラメータXinに対応したN個ずつの目標作用角Sinとのサンプルデータが得られることになる。ステップS204では、これら各気筒の回転変動パラメータXinと目標作用角Sinとの平均値が算出される。具体的には、各気筒の回転変動パラメータXinの合計値が気筒毎にサンプル数Nで除して平均化されると共に、各気筒の目標作用角Sinの合計値が気筒毎にサンプル数Nで除して平均化される。こうして得られた各平均値をXi、Siで表す。このように平均値を算出する理由は、絶えず変化する回転変動パラメータXinと目標作用角Sinとを平均化して検出精度を高めるためである。但し必ずしもこのような平均化を行う必要はない。ステップS205では、平均値としての各気筒の回転変動パラメータXiが気筒毎に判定値αと比較される。いずれかの気筒の回転変動パラメータXiが判定値αより大きい場合、ステップS206に進んで異常判定がなされる。すなわち、判定値αより大きい回転変動パラメータXiが得られた場合には直ちに異常判定が実行される。併せて、判定値αより大きい回転変動パラメータXiを示した気筒を異常気筒と特定する。他方、いずれの気筒の回転変動パラメータXiも判定値α以下の場合、ステップS207に進んで、平均値としての各気筒の目標作用角Siが気筒毎にしきい値S1と比較される。いずれかの気筒の目標作用角Siがしきい値S1より大きい場合、すなわち大作用角領域にある場合、正常判定を行うことなくルーチンが終了され、これにより正常判定が保留される。すなわち、本来ならば全ての気筒の回転変動パラメータXiが判定値α以下であるため、正常判定し得る。しかし、いずれかの気筒で目標作用角Siがしきい値S1より大きいと、その気筒において、作用角減少ずれが起きているにも拘わらず回転変動パラメータXiが判定値α以下となっている可能性がある。よって誤判定を防止するため、いずれかの気筒で目標作用角Siがしきい値S1より大きくなっている場合には正常判定を保留する。このように、検出された回転変動パラメータXが判定値αに対し正常側の値判定値α以下の値であっても、回転変動パラメータXの検出時における作用角が大作用角領域にあるときには、正常判定が保留される。他方、ステップS207において、いずれの気筒の目標作用角Siも判定値α以下の場合、すなわち小作用角領域にある場合、ステップS208に進んで正常判定がなされる。この場合にはいずれの気筒でも作用角減少ずれが起きていないことが保証されるので、原則通り、正常判定が実行される。なお、本例では作用角の値として目標作用角を用いたが、実際の作用角を検出している場合にはその実際の作用角の検出値を用いてもよい。また本例では目標作用角の平均値を気筒別に求めたが、気筒の区別無く目標作用角の平均値を求めてもよい。つまり各気筒の目標作用角Sinの全合計値をサンプル数N×気筒数4で除して平均化してもよい。次に、上記の制御および処理を行った場合の作動例を説明する。図12には第1の作動例を示し、比較的低温な状態特に冷間状態でエンジンを始動した後のA作用角S、B回転変動パラメータXおよびC正常判定フラグの変化の様子を示す。ここで正常判定フラグとは、正常判定がなされると同時にオンされ、その前はオフとされているフラグである。時刻t0でエンジンが始動された後、短時間後の時刻t1で図10の作用角制御モード設定ルーチンが開始される。その結果図示例では暖機完了条件ステップS101を満たさず、作用角固定モードに設定され、作用角Sが最大作用角Smaxに固定される。作用角固定モードは比較的長時間、時刻t4まで継続されている。この間の時刻t2~t3の期間において、図11のばらつき異常検出ルーチンの前提条件ステップS201が満たされ、ばらつき異常検出が実行される。この実行中、回転変動パラメータXの値は判定値αを超えないが、作用角Sがしきい値S1より大きく大作用角領域にあるため、正常判定は行われないステップS207:イエス。正常判定フラグはオフのままである。時刻t4において、図10の作用角制御モード設定ルーチンにおける暖機完了条件ステップS101と学習完了条件ステップS102特に前者が満たされ、作用角制御モードは作用角可変モードに移行されるステップS103。そして作用角Sは回転数と負荷に応じた値に制御される。その結果図示例では、作用角Sが、しきい値S1より大きい大作用角領域から、しきい値S1以下の小作用角領域へと移行させられている。この後の時刻t5~t6の期間において、図11のばらつき異常検出ルーチンの前提条件ステップS201が満たされ、ばらつき異常検出が実行される。この実行中、回転変動パラメータXの値は判定値αを超えていない。しかも作用角Sが小作用角領域にあるため、時刻t6において正常判定が行われるステップS208。同時に正常判定フラグはオフからオンに切り替えられる。図13には第2の作動例を示し、比較的高温な状態特に温間状態でエンジンを始動した後のA作用角S、B回転変動パラメータXおよびC正常判定フラグの変化の様子を示す。時刻t0でエンジンが始動された後、短時間後の時刻t1で図10の作用角制御モード設定ルーチンが開始される。その結果図示例では、暖機完了条件ステップS101を満たさないため、作用角固定モードに設定され、作用角Sが最大作用角Smaxに固定される。しかし、暖機完了条件が早期に満たされるようになるため、作用角固定モードは比較的短時間、時刻t2までしか継続されない。この間の時刻t1~t2の期間において、図11のばらつき異常検出ルーチンの前提条件ステップS201が満たされず、ばらつき異常検出が実行されない。時刻t2において、図10の作用角制御モード設定ルーチンにおける暖機完了条件ステップS101と学習完了条件ステップS102特に前者が満たされ、作用角制御モードは作用角可変モードに移行されるステップS103。その結果図示例では、作用角Sが、しきい値S1より大きい大作用角領域から、しきい値S1以下の小作用角領域へと移行させられている。この後の時刻t3~t4の期間において、図11のばらつき異常検出ルーチンの前提条件ステップS201が満たされ、ばらつき異常検出が実行される。この実行中、回転変動パラメータXの値は判定値αを超えていない。しかも作用角Sが小作用角領域にあるためステップS207:ノー、時刻t4において正常判定が行われるステップS208。同時に正常判定フラグはオフからオンに切り替えられる。以上、本発明の好適な実施形態を詳細に述べたが、本発明の実施形態は他にも様々なものが考えられる。上記の数値はあくまで例示であり、適宜変更が可能である。作用角可変機構として、作用角が異なる二つのカムを切り替える機構も可能であり、この機構にも本発明は適用可能である。この場合、作用角が大きい大カム使用時が、作用角が大作用角領域にあるときに該当し、作用角が小さい小カム使用時が、作用角が小作用角領域にあるときに該当する。大カム使用時の作用角が最大作用角となり、小カム使用時の作用角が最小作用角となる。本発明の実施形態は前述の実施形態のみに限らず、特許請求の範囲によって規定される本発明の思想に包含されるあらゆる変形例や応用例、均等物が本発明に含まれる。従って本発明は、限定的に解釈されるべきではなく、本発明の思想の範囲内に帰属する他の任意の技術にも適用することが可能である。"