"多気筒内燃機関の排気通路に設けられた触媒と、前記触媒の上流側に設けられた空燃比センサとしての触媒前センサと、前記触媒の下流側に設けられた空燃比センサとしての触媒後センサと、前記触媒前センサの出力に基づく主空燃比制御と、前記触媒後センサの出力に基づく補助空燃比制御とを実行する空燃比制御手段と、前記触媒後センサの出力に基づき前記補助空燃比制御のための制御量を算出する制御量算出手段と、前記内燃機関の回転変動を検出する回転変動検出手段と、前記回転変動の検出値に基づき、気筒間空燃比ばらつき異常を検出する異常検出手段と、前記ばらつき異常の検出中に前記制御量のガード範囲を縮小するガード範囲縮小手段と、を備えることを特徴とする気筒間空燃比ばらつき異常検出装置。前記異常検出手段は、前記回転変動の検出値に基づき、一部気筒の空燃比が他の気筒の空燃比に対しリーン側にずれているリーンずれ異常を検出し、前記ガード範囲縮小手段は、前記リーンずれ異常の検出中に前記制御量のガード範囲を縮小することを特徴とする請求項1に記載の気筒間空燃比ばらつき異常検出装置。前記ガード範囲縮小手段は、ばらつき異常検出開始と同時に前記制御量のガード範囲を縮小し、前記空燃比制御手段は、ばらつき異常検出開始直前の制御量が縮小されたガード範囲から外れていたとき、その検出開始直前の制御量に最も近いガード値を前記制御量として、前記ばらつき異常検出中の前記補助空燃比制御を実行することを特徴とする請求項1または2に記載の気筒間空燃比ばらつき異常検出装置。前記ガード範囲縮小手段は、ばらつき異常検出終了と同時に前記制御量のガード範囲を元の規定のガード範囲に復帰し、前記空燃比制御手段は、ばらつき異常検出開始直前の制御量を前記制御量として、ばらつき異常検出終了後の前記補助空燃比制御を開始することを特徴とする請求項3に記載の気筒間空燃比ばらつき異常検出装置。前記異常検出手段は、前記回転変動の検出値が所定の異常判定値以上であるとき、ばらつき異常ありと判定することを特徴とする請求項1~4のいずれか一項に記載の気筒間空燃比ばらつき異常検出装置。前記回転変動検出手段は、前記内燃機関の気筒毎の回転変動を検出することを特徴とする請求項1~5のいずれか一項に記載の気筒間空燃比ばらつき異常検出装置。ところで、空燃比フィードバック制御に関し、触媒の上流側と下流側とにそれぞれ空燃比センサとしての触媒前センサおよび触媒後センサを設け、触媒前センサの出力に基づく主空燃比制御と、触媒後センサの出力に基づく補助空燃比制御とを実行する場合がある。そして補助空燃比制御のための制御量については、その値が過剰になるのを防止するため、規定のガード範囲が設けられているのが一般的である。他方、内燃機関の回転変動を検出し、その検出値に基づいて気筒間空燃比ばらつき異常を検出することが考えられる。こうした場合、本発明者の鋭意研究の結果によれば、補助空燃比制御量と回転変動との間に相関性があり、補助空燃比制御量の絶対値が、規定のガード範囲のガード値付近まで大きくなっていると、ばらつき異常検出時に誤検出が発生する虞があることが判明した。そこで本発明は、上記の事情に鑑みて創案され、その目的は、ばらつき異常検出時における誤検出を防止できる気筒間空燃比ばらつき異常検出装置を提供することにある。本発明の一の態様によれば、多気筒内燃機関の排気通路に設けられた触媒と、前記触媒の上流側に設けられた空燃比センサとしての触媒前センサと、前記触媒の下流側に設けられた空燃比センサとしての触媒後センサと、前記触媒前センサの出力に基づく主空燃比制御と、前記触媒後センサの出力に基づく補助空燃比制御とを実行する空燃比制御手段と、前記触媒後センサの出力に基づき前記補助空燃比制御のための制御量を算出する制御量算出手段と、前記内燃機関の回転変動を検出する回転変動検出手段と、前記回転変動の検出値に基づき、気筒間空燃比ばらつき異常を検出する異常検出手段と、前記ばらつき異常の検出中に前記制御量のガード範囲を縮小するガード範囲縮小手段と、を備えることを特徴とする気筒間空燃比ばらつき異常検出装置が提供される。好ましくは、前記異常検出手段は、前記回転変動の検出値に基づき、一部気筒の空燃比が他の気筒の空燃比に対しリーン側にずれているリーンずれ異常を検出し、前記ガード範囲縮小手段は、前記リーンずれ異常の検出中に前記制御量のガード範囲を縮小する。好ましくは、前記ガード範囲縮小手段は、ばらつき異常検出開始と同時に前記制御量のガード範囲を縮小し、前記空燃比制御手段は、ばらつき異常検出開始直前の制御量が縮小されたガード範囲から外れていたとき、その検出開始直前の制御量に最も近いガード値を前記制御量として、前記ばらつき異常検出中の前記補助空燃比制御を実行する。好ましくは、前記ガード範囲縮小手段は、ばらつき異常検出終了と同時に前記制御量のガード範囲を元の規定のガード範囲に復帰し、前記空燃比制御手段は、ばらつき異常検出開始直前の制御量を前記制御量として、ばらつき異常検出終了後の前記補助空燃比制御を開始する。好ましくは、前記異常検出手段は、前記回転変動の検出値が所定の異常判定値以上であるとき、ばらつき異常ありと判定する。好ましくは、前記回転変動検出手段は、前記内燃機関の気筒毎の回転変動を検出する。本発明によれば、ばらつき異常検出時における誤検出を防止できるという、優れた効果が発揮される。以下、本発明の実施形態を添付図面に基づき説明する。図1は、本実施形態に係る内燃機関の概略図である。図示されるように、内燃機関エンジン1は、シリンダブロック2に形成された燃焼室3の内部で燃料および空気の混合気を燃焼させ、燃焼室3内でピストンを往復移動させることにより動力を発生する。本実施形態の内燃機関1は自動車に搭載された多気筒内燃機関であり、より具体的には直列4気筒火花点火式内燃機関である。内燃機関1は1~4気筒を備える。但し気筒数、形式等は特に限定されない。図示しないが、内燃機関1のシリンダヘッドには吸気ポートを開閉する吸気弁と、排気ポートを開閉する排気弁とが気筒ごとに配設されており、各吸気弁および各排気弁は、カムシャフトを含む動弁機構によって開閉駆動される。シリンダヘッドの頂部には、燃焼室3内の混合気に点火するための点火プラグ7が気筒ごとに取り付けられている。各気筒の吸気ポートは気筒毎の枝管4を介して吸気集合室であるサージタンク8に接続されている。サージタンク8の上流側には吸気管13が接続されており、吸気管13の上流端にはエアクリーナ9が設けられている。そして吸気管13には、上流側から順に、吸入空気量を検出するためのエアフローメータ5と、電子制御式のスロットルバルブ10とが組み込まれている。吸気ポート、枝管、サージタンク8及び吸気管13により吸気通路が形成される。吸気通路、特に吸気ポート内に燃料を噴射するインジェクタ燃料噴射弁12が気筒ごとに配設されている。インジェクタ12から噴射された燃料は吸入空気と混合されて混合気をなし、この混合気が吸気弁の開弁時に燃焼室3に吸入され、ピストンで圧縮され、点火プラグ7で点火燃焼させられる。一方、各気筒の排気ポートは排気マニフォールド14に接続される。排気マニフォールド14は、その上流部をなす気筒毎の枝管14aと、その下流部をなす排気集合部14bとからなる。排気集合部14bの下流側には排気管6が接続されている。排気ポート、排気マニフォールド14及び排気管6により排気通路が形成される。排気管6の上流側と下流側にはそれぞれ三元触媒からなる触媒、すなわち上流触媒11と下流触媒19が直列に取り付けられている。上流触媒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等を制御し、点火時期、燃料噴射量、燃料噴射時期、スロットル開度等を制御する。なおスロットル開度は通常アクセル開度に応じた開度に制御される。触媒前センサ17は所謂広域空燃比センサからなり、比較的広範囲に亘る空燃比を連続的に検出可能である。図2に触媒前センサ17の出力特性を示す。図示するように、触媒前センサ17は、排気空燃比に比例した大きさの電圧信号Vfを出力する。排気空燃比がストイキ理論空燃比、例えばA/F=14.6であるときの出力電圧は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によって検出された排気空燃比をストイキに一致させるような補助空燃比制御補助空燃比フィードバック制御とからなる。ここでストイキ制御について説明する。図3にはストイキ制御のメインルーチンを示す。このメインルーチンはECU20により1エンジンサイクル=720°CA毎に繰り返し実行される。まずステップS101では、筒内混合気の空燃比をストイキとするような基本の燃料噴射量即ち基本噴射量Qbが算出される。基本噴射量Qbは例えば、エアフローメータにより検出された吸入空気量Gaに基づき、式:Qb=Ga/14.6により算出される。ステップS102では触媒前センサ20の出力Vfが取得される。ステップS103では、このセンサ出力Vfとストイキ相当センサ出力Vreff図2参照との差、即ち触媒前センサ出力差ΔVf=Vf-Vreffが算出される。ステップS104では、この触媒前センサ出力差ΔVfに基づき、図4に示したようなマップ関数でもよい、以下同様から主空燃比補正量補正係数Kfが算出される。触媒前センサ出力差ΔVf及び主空燃比補正量Kfは、主空燃比制御のための制御量をなす。例えばゲインをPfとするとKf=Pf×ΔVfで表される。そしてステップS105では、図5に示すサブルーチンで設定された補助空燃比補正量Krの値が取得される。最後に、ステップS106にて、インジェクタ2から噴射すべき最終的な燃料噴射量即ち最終噴射量Qfnlが式:Qfnl=Kf×QbKrにより算出される。図4のマップによれば、触媒前センサ出力Vfがストイキ相当センサ出力Vreffより大きいΔVf>0ほど、即ち実際の触媒前空燃比がストイキからリーン側に離れるほど、1に対しより大きな補正量Kfが得られ、基本噴射量Qbは増量補正される。反対に、触媒前センサ出力Vfがストイキ相当センサ出力Vreffより小さいΔVf<0ほど、即ち実際の触媒前空燃比がストイキからリッチ側に離れるほど、1に対しより小さな補正量Kfが得られ、基本噴射量Qbは減量補正される。こうして、触媒前センサ20によって検出された空燃比をストイキに一致させるような主空燃比フィードバック制御が実行される。ステップS106で得られた最終噴射量Qfnlの値は、制御対象となる全気筒に対し一律に用いられる。即ち、1エンジンサイクルの間、最終噴射量Qfnlに等しい量の燃料が各気筒のインジェクタ2から順次噴射され、次のエンジンサイクルでは新たに計算された最終噴射量Qfnlの燃料が各気筒のインジェクタ2から順次噴射される。なお、周知のように、最終噴射量Qfnlの算出に当たっては他の補正水温補正、バッテリ電圧補正等を追加することも可能である。図5には、補助空燃比補正量の設定のためのサブルーチンを示す。このサブルーチンはECU20により所定の演算周期で繰り返し実行される。まずステップS201では、ECU20に装備されたタイマのカウントが実行され、ステップS202では、触媒後センサ17の出力Vrが取得される。ステップS203では、このセンサ出力Vrとストイキ相当センサ出力Vrefr図2参照との差、即ち触媒後センサ出力差ΔVr=Vrefr-Vrが算出され、この触媒後センサ出力差ΔVrが前回積算値に積算される。図6には触媒後センサ出力差ΔVrとその積算の様子を示す。ステップS204では、タイマ値が所定値tsを超えたか否かが判断される。所定値tsを超えていなければルーチンが終了される。タイマ値が所定値tsを超えている場合、ステップS205で、この時点での触媒後センサ出力差積算値ΣΔVrが、触媒後センサ学習値ΔVrgとして更新記憶すなわち学習される。そしてステップS206で、この触媒後センサ学習値ΔVrgに基づき、図7に示したようなマップから、補助空燃比補正量Krが算出され、この補助空燃比補正量Krが更新記憶すなわち学習される。触媒後センサ学習値ΔVrg及び補助空燃比補正量Krは、補助空燃比制御のための制御量をなす。例えばゲインをPrとするとKr=Pr×ΔVrgで表される。最後に、ステップS207にて、触媒後センサ出力差積算値ΣΔVr及びタイマがリセットされる。触媒後センサ出力差ΔVrを所定時間tsの間積算する理由は、触媒後センサ出力Vrのストイキ相当センサ出力Vrefrに対する時間平均的なズレ量を検知するためである。積算時間を規定する所定値tsは1エンジンサイクルより遙かに長い時間であり、よって触媒後センサ学習値ΔVrg及び補助空燃比補正量Krの更新は1エンジンサイクルより長い周期で行われる。図7のマップによれば、触媒後センサ出力Vrが時間平均的にストイキ相当センサ出力Vrefrより小さいΔVrg>0ほど、即ち実際の触媒後空燃比がストイキからリーン側に離れるほど、0に対しより大きな補正量Krが得られ、最終噴射量算出の際に基本噴射量Qbは増量補正される。反対に、触媒後センサ出力Vrが時間平均的にストイキ相当センサ出力Vrefrより大きいΔVrg<0ほど、即ち実際の触媒後空燃比がストイキからリッチ側に離れるほど、0に対しより小さな補正量Krが得られ、基本噴射量Qbは減量補正される。こうして、触媒後センサ21によって検出された触媒後空燃比をストイキに一致させるような補助空燃比フィードバック制御が実行される。エンジン及び車両の個体バラツキや触媒前センサ20の劣化等の理由で、主空燃比フィードバック制御を実行してもその結果がストイキからズレることがあるので、このズレを補正する目的で、補助空燃比フィードバック制御が実行される。なお、この例では新たな学習値ΔVrg及び補正量Krが算出される度にこれらの値自身で更新を行うようにしたが、なまし等の平均化処理を行って更新速度を遅らせるようにしてもよい。さて、例えば全気筒のうちの一部の気筒特に1気筒のインジェクタ12が故障し、気筒間に空燃比のばらつきインバランス:imbalanceが発生したとする。例えば1気筒が他の2、3及び4気筒よりも燃料噴射量が少なくなり、その空燃比が大きくリーン側にずれる場合等である。このときでも前述の主空燃比フィードバック制御により比較的大きな補正量を与えれば、触媒前センサ17に供給されるトータルガスの空燃比をストイキに制御できる場合がある。しかし、気筒別に見ると、1気筒がストイキより大きくリーン、2、3及び4気筒がストイキよりリッチであり、全体のバランスとしてストイキとなっているに過ぎず、エミッション上好ましくないことは明らかである。そこで本実施形態では、かかる気筒間空燃比ばらつき異常を検出する装置が装備されている。ここで便宜上、ばらつき度合いの大きさを表すパラメータであるインバランス割合なる用語について説明する。インバランス割合とは、全気筒のうちある1気筒のみが燃料噴射量ズレを起こしている場合に、その燃料噴射量ズレを起こしている気筒インバランス気筒の燃料噴射量がどれくらいの割合で、燃料噴射量ズレを起こしていない気筒バランス気筒の燃料噴射量即ち基準噴射量からズレているかを示す値である。インバランス割合をIB、インバランス気筒の燃料噴射量をQib、バランス気筒の燃料噴射量即ち基準噴射量をQsとすると、IB=Qib-Qs/Qsで表される。インバランス割合IBが大きいほど、インバランス気筒のバランス気筒に対する燃料噴射量ズレが大きく、空燃比ばらつき度合いは大きい。図8には、空燃比ばらつき異常として、1気筒のみの燃料噴射量が過少となるリーンずれ異常が発生した場合の各気筒の燃料噴射量の推移を示す。図8Aは、異常発生前で且つ各気筒の燃料噴射量が正常な場合の各気筒の燃料噴射量を示す。この場合、前述のストイキ制御の結果、各気筒の燃料噴射量はストイキ相当量Qstとなっている。このストイキ相当量Qstが前述の基準噴射量Qsであり、1,2,3,4気筒のインバランス割合は図示されるように±0である。図8Bは、異常発生時点における各気筒の燃料噴射量を示す。この場合、1気筒の燃料噴射量がストイキ相当量Qstより少なく、他の2,3,4気筒の燃料噴射量はストイキ相当量Qstとなっている。例えば図示されるように、1気筒のインバランス割合は-40であり、2,3,4気筒のインバランス割合は±0である。1気筒が、ばらつき異常の原因となっている異常気筒であり、2,3,4気筒は正常気筒である。この状態で前述のストイキ制御が実行されると、触媒前センサ17に供給されるトータルガス全気筒分の排気ガスの空燃比がストイキになるように、全気筒の燃料噴射量が一律に10分ずつ増量補正される。すなわち、1気筒のみ40のリーンずれが生じても、触媒前センサ17に対する影響は40を気筒数4で除した10であり、触媒前センサ17からは10のリーンずれが生じたという情報が得られ、ECU20は全気筒の燃料噴射量を一律に10ずつ増量補正する。この増量補正が開始されてある程度時間が経過すると、各気筒の燃料噴射量は図8Cに示す如く変化し、1気筒の燃料噴射量はストイキ相当量Qstに対し30相当少ないリーン状態、他の2,3,4気筒の燃料噴射量はストイキ相当量Qstに対し10相当多いリッチ状態となる。言い換えれば図示されるように、1気筒のインバランス割合は-30であり、2,3,4気筒のインバランス割合は10である。このように、異常発生時点からある程度の時間を経過しても、気筒間の空燃比ばらつきあるいは不均衡は解消されず、ストイキに対しリッチな気筒とリーンな気筒が混在する。ばらつき異常の種類として、このようなリーンずれ異常のほか、1気筒のみの燃料噴射量が過大となるリッチずれ異常もある。本実施形態はこれらのうちリーンずれ異常を対象とする。しかしながら本発明はリッチずれ異常に対しても適用可能である。リーンずれ異常は次の方法によりエンジン1の回転変動に基づいて検出される。図9において、aはクランク角°CA、bは30°CA時間T30s、cは回転変動パラメータYを示す。回転変動パラメータYとは、エンジン1の回転変動の大きさを表すパラメータのことをいい、以下に述べる方法で検出される。点火順序は1、3、4、2の各気筒順である。図中、正常とは、いずれの気筒にも空燃比ズレが生じていない正常な場合を示し、リーンずれ異常とは、1気筒のみにインバランス割合IB=-30のリーンずれ異常が生じている場合を示す。30°CA時間T30とは、クランクシャフトが30°CA回転するのに要した時間のことをいい、クランク角センサ16からの出力信号に基づき検出される。30°CA時間T30が長い大きいほど、クランクシャフトないしエンジンの回転速度は遅い。回転変動パラメータYとは、前回点火気筒TDC圧縮上死点から今回点火気筒TDCまでの間の30°CA時間T30の差のことをいう。まずリーンずれ異常の場合に着目する。図示例では1気筒にリーンずれ異常が生じているので、bに示すように、1気筒を点火しても十分な燃焼およびトルクを得られず、次回点火気筒である3気筒のTDCの時点において30°CA時間T30が長くなっている。これに対応して、1気筒TDCから3気筒TDCまでの30°CA時間T30の差は大きく、cに示す回転変動パラメータYの値は大きくなっている。これに対し、1以外の気筒、例えば3気筒の場合は正常であるので、bに示すように、3気筒TDCから4気筒TDCまでの30°CA時間T30の差は小さく、cに示す回転変動パラメータYの値も小さい。次に正常の場合に着目すると、いずれの気筒も正常であるので、気筒間の燃焼バラツキは少なく、bに示すように、前回点火気筒TDCから今回点火気筒TDCまでの30°CA時間T30の差はいずれも小さくほぼ一定で、cに示す回転変動パラメータYの値も常に小さくほぼゼロ付近の値となっている。つまり、正常の場合には回転変動が小さく、回転変動パラメータYの値が常に小さいが、異常の場合には、回転変動が大きく、異常気筒に対応した回転変動パラメータYの値が大きくなる。従って、気筒毎の回転変動パラメータYを検出し、各気筒の回転変動パラメータYの検出値を所定の異常判定値と比較することで、リーンずれ異常の有無を検出することが可能である。本実施形態においては、ECU20が、クランク角センサ16の出力に基づき気筒毎の回転変動パラメータYを検出する。そして各気筒の回転変動パラメータYの検出値が異常判定値以上とならない場合、リーンずれ異常なし、即ち正常と判定する。他方、異常判定値以上となる回転変動パラメータYの検出値がある場合、リーンずれ異常ありと判定し、当該検出値に対応した気筒を異常気筒と特定する。回転変動パラメータYの検出値として、複数の検出値の平均値を用いてもよい。なお、ある1気筒でリーンずれ異常が生じると、当該気筒で爆発後のトルクが十分に出なくなり、回転の立ち上がりが悪化する。こうしたことから気筒毎の爆発後の回転の立ち上がりにムラが生じ、全気筒ないしエンジンサイクル単位で見た場合の回転変動が大きくなる。図10には、インバランス割合IBと回転変動パラメータYの関係を示す。図示されるように、インバランス割合IBと回転変動パラメータYの間には強い相関性があり、インバランス割合IBが減少マイナス側に増加するほど回転変動パラメータYは増加する。ここで図中のIB2は、異常判定値に相当するインバランス割合IBの値であり、例えば-30である。ところで、主空燃比制御および補助空燃比制御のための制御量以下それぞれ主空燃比制御量および補助空燃比制御量ともいうについては、それぞれ、各値が過剰になるのを防止するため、規定のガード範囲が設けられている。一方、本発明者の鋭意研究の結果によれば、補助空燃比制御量と回転変動との間に相関性があり、補助空燃比制御量の絶対値が、規定のガード範囲のガード値付近まで大きくなっていると、ばらつき異常検出時に誤検出が発生する虞があることが判明した。この点を図11に基づき説明する。図11においては、横軸に補助空燃比制御量としての触媒後センサ学習値ΔVrgがとってあり、縦軸に回転変動がとってある。補助空燃比制御において、触媒後センサ学習値ΔVrgがゼロのとき、これによる燃料噴射量補正はなしであり、触媒後センサ学習値ΔVrgがゼロからプラス側に大きくなるほど燃料噴射量はより増量側リッチ側に補正され、触媒後センサ学習値ΔVrgがゼロからマイナス側に大きくなるほど燃料噴射量はより減量側リーン側に補正される。他方、縦軸の回転変動は、回転変動パラメータYの大きさと等価であり、図の上側に行くほど大きくなる。触媒後センサ学習値ΔVrgに対する規定のガード範囲は、図中の矢印aで示す範囲であり、マイナス側の下限ガード値ΔVrg1以上で且つプラス側の上限ガード値ΔVrg2以下の範囲である。但しΔVrg1<0<ΔVrg2である。図中の白丸プロットは、リーンずれ異常が生じていない正常状態のときのデータである。他方、図中の黒四角プロットは、1気筒のみにリーンずれ異常が生じている異常状態のときのデータである。図示されるように、正常状態のときも異常状態のときも、触媒後センサ学習値ΔVrgが変化すると回転変動も変化し、触媒後センサ学習値ΔVrgがマイナス側からプラス側へと大きくなるにつれ、回転変動は小さくなる傾向にある。ストイキに対しリッチ側となっている気筒では、燃焼状態が安定し十分なトルクが出るため、気筒毎の回転変動は小さい。他方、ストイキに対しリーン側となっている気筒では、逆に燃焼状態が不安定となり、十分なトルクが出ないため、気筒毎の回転変動が大きい。触媒後センサ学習値ΔVrgが変化すると、系全体がリッチ側またはリーン側に寄るので、燃焼状態が変化し、同一条件でも回転変動が変化する。正常状態のときに最も大きな回転変動を示すデータbは、触媒後センサ学習値ΔVrgが下限ガード値ΔVrg1に等しいときのデータであり、他方、異常状態のときに最も小さな回転変動を示すデータcは、触媒後センサ学習値ΔVrgが上限ガード値ΔVrg2に等しいときのデータである。触媒後センサ学習値ΔVrgの値は、エンジン及び車両の個体バラツキ、触媒前センサ20の劣化度合い、エンジンの運転状態定常、過渡等の違い等により、図示の如く規定のガード範囲a内でばらつき得るものである。するとこのばらつきに対応して回転変動もばらつく。一方、ばらつき異常検出時には、このような触媒後センサ学習値ΔVrgに応じた回転変動のばらつきを考慮することなく、一律に、回転変動パラメータYの大小のみで異常の有無を判定する。そこで、触媒後センサ学習値ΔVrgに応じた回転変動のばらつきの影響をできるだけ受けずに異常検出するためには、異常判定値を、データb、c間の範囲d内の回転変動に対応した値、好ましくは当該範囲dの中間値eに設定する必要がある。しかし、この範囲dが比較的狭いため、当該範囲d内の中間値eに異常判定値を設定したとしても、誤検出ないし誤判定する虞があった。例えば、データbが図示の位置から何等かの理由で回転変動大側にずれ、中間値eを超えると、本来正常と判定すべきなのに、誤って異常と誤判定してしまうこれを誤異常判定という。また、データcが図示の位置から何等かの理由で回転変動小側にずれ、中間値eを超えると、本来異常と判定すべきなのに、誤って正常と誤判定してしまうこれを誤正常判定という。そこで本実施形態では、図12に示すように、異常検出中に触媒後センサ学習値ΔVrgのガード範囲を縮小する。すなわち、異常検出中のガード範囲は図中の矢印a’で示す範囲であり、この範囲a’は規定のガード範囲aよりも狭い。そしてリーン側の下限ガード値は規定のΔVrg1からΔVrg1’に増大変更され、リッチ側の上限ガード値も規定のΔVrg2からΔVrg2’に減少変更される。ΔVrg1<ΔVrg1’<0<ΔVrg2’<ΔVrg1である。以下、変更後の下限ガード値および上限ガード値をそれぞれ制限下限ガード値および制限上限ガード値という。すると、正常状態のときに最も大きな回転変動を示すデータは、触媒後センサ学習値ΔVrgが制限下限ガード値ΔVrg1’に等しいときのデータfとなり、他方、異常状態のときに最も小さな回転変動を示すデータは、触媒後センサ学習値ΔVrgが制限上限ガード値ΔVrg2’に等しいときのデータgとなる。これらデータf,g間の回転変動の範囲d’は、図11に示した規定の範囲dよりも広い。従ってかかる範囲d’内の値、好ましくは当該範囲d’の中間値e’に異常判定値を設定することにより、誤検出すなわち誤異常判定を防止することができる。すなわち、正常の場合に異常判定値e’に最も近いデータfは、データbよりも、異常判定値e’からより離れた小さい値となる。また、異常の場合に異常判定値e’に最も近いデータgは、データcよりも、異常判定値e’からより離れた大きい値となる。よって、正常の場合にも異常の場合にも、触媒後センサ学習値ΔVrgに応じた回転変動のばらつきの影響を受け難くなり、結果として誤検出ないし誤判定を防止することができる。例えば、データfが図示の位置から何等かの理由で回転変動大側にずれても、異常判定値e’に対するマージンが大きいので、これを超えづらくなり、誤異常判定を防止できる。またデータgが図示の位置から何等かの理由で回転変動小側にずれても、異常判定値e’に対するマージンが大きいので、これを超えづらくなり、誤正常判定を防止できる。このように本実施形態によれば、ばらつき異常検出時における誤検出を防止し、検出精度を向上することが可能となる。上記の考察に従い、本実施形態の異常判定値は、範囲d’の中間値e’に設定される。次に、図13および図14を参照して、ばらつき異常検出を伴う補助空燃比制御の方法をより具体的に説明する。図13は補助空燃比制御のルーチンに関するフローチャートを示し、図14は当該ルーチンを実行した際の各値の推移を示す。図13のルーチンは、ECU20により、所定の演算周期毎に繰り返し実行されることができる。図14において、Aは検出フラグのオンオフ状態を示し、Bは学習フラグのオンオフ状態を示し、Cは触媒後センサ学習値ΔVrgの値を示し、Dはバッファ内に格納された触媒後センサ学習値ΔVrgの値を示す。これらについては後に説明する。まず図13に着目して、ステップS301では、今回の演算タイミングにおける触媒後センサ学習値ΔVrgの値が取得される。次にステップS302では、検出フラグがオンか否かが判断される。検出フラグは、ばらつき異常検出が実行されるときにオン、それ以外のときにオフとなるフラグである。検出フラグは、所定の実行条件が成立するとオフからオンに切り替わり、検出が終了するとオンからオフに切り替わる。検出フラグがオンの場合、ばらつき異常検出が開始または実行され、ステップS303に進んで学習フラグが強制的にオフされる。学習フラグは、補助空燃比制御に関する学習値である触媒後センサ学習値ΔVrgおよび補助空燃比補正量Krの学習を許可するためのフラグであり、オンのとき学習が許可され、オフのとき学習が禁止される。それ故、学習フラグがオンのときのみ触媒後センサ学習値ΔVrgが更新され、学習フラグがオフのときには更新が停止されると共にオフになる直前の学習値が保持される図14B、C参照。なお、学習フラグは基本的に図示しない別ルーチンによりオンオフされ、所定条件が成立したときにオン、当該所定条件が非成立になったときにオフされる。ステップS303では、当該所定条件の成立または非成立に拘わらず、学習フラグが強制的にオフされる。ステップS303において学習フラグがオフされるので、ばらつき異常検出中には触媒後センサ学習値ΔVrgの学習および更新が停止される。次いで、ステップS304において、今回のタイミングが、検出フラグがオフからオンに切り替わったタイミングであるか否か、言い換えれば、ばらつき異常検出の開始時に該当するか否かが判断される。判定結果がイエスであるとき、ステップS305において、前回のタイミングで取得したばらつき異常検出開始直前の触媒後センサ学習値ΔVrgの値が専用のバッファに格納、記憶される。この様子は図14C、Dに示されている。図14において、時刻t1が今回のタイミングすなわちばらつき異常検出開始時点であるが、この時、その直前の触媒後センサ学習値の値ΔVrgxが、Dに示すように専用のバッファ内に格納される。このように格納されたバッファ内の触媒後センサ学習値の値をバッファ内ΔVrgという。バッファ内ΔVrgの初期値はゼロである。次いで、ステップS306において、触媒後センサ学習値ΔVrgのガード範囲が、図12に示した如く規定のガード範囲から縮小される。すなわち触媒後センサ学習値ΔVrgのガード範囲は、ばらつき異常検出開始と同時に縮小される。そして、ステップS307において、縮小後すなわちばらつき異常検出中の補助空燃比制御に用いられる触媒後センサ学習値の値ΔVrg’が決定される。この決定方法は次の通りである。まず、ばらつき異常検出開始直前前回タイミングの触媒後センサ学習値ΔVrgが縮小後のガード範囲内の値であったとき、その値がそのままばらつき異常検出中の触媒後センサ学習値の値ΔVrg’として、決定される。他方、ばらつき異常検出開始直前の触媒後センサ学習値ΔVrgが縮小後のガード範囲から外れた値であったとき、その検出開始直前の触媒後センサ学習値ΔVrgに最も近い制限下限ガード値ΔVrg1’または制限上限ガード値ΔVrg2’が、ばらつき異常検出中の触媒後センサ学習値の値ΔVrg’として、決定される。図12を参照して、例えばばらつき異常検出開始直前の触媒後センサ学習値ΔVrgがデータbで示されるようなΔVrg1であったとき、これに最も近い制限下限ガード値ΔVrg1’が、ばらつき異常検出中の触媒後センサ学習値の値ΔVrg’として用いられる。また、例えばばらつき異常検出開始直前の触媒後センサ学習値ΔVrgがΔVrg2であったとき、これに最も近い制限上限ガード値ΔVrg2’が、ばらつき異常検出中の触媒後センサ学習値の値ΔVrg’として用いられる。図14Cには前者の例を示す。すなわち、ばらつき異常検出開始直前の触媒後センサ学習値ΔVrgxが制限下限ガード値ΔVrg1’より小さい値であったため、ばらつき異常検出開始と同時に、触媒後センサ学習値はより大きい制限下限ガード値ΔVrg1’に変更される。このように、検出開始直前の触媒後センサ学習値が縮小後のガード範囲から外れていたとき、その学習値に最も近いガード値を用いて検出中の補助空燃比制御を行うので、検出中の補助空燃比制御の精度を担保できる。図13に戻って、この後ステップS308では、ステップS307で決定された触媒後センサ学習値の値ΔVrg’を使用して補助空燃比制御が実行される。この決定された値ΔVrg’は、ばらつき異常検出中に常時使用される。以上でルーチンが終了される。他方、ステップS304の判定結果がノーであるときには、ステップS305,S306,S307がスキップされ、ステップS308に進む。以上のステップS302~S308によれば、検出開始と同時にステップS302:イエス、学習フラグがオフされステップS302、触媒後センサ学習値ΔVrgの更新が停止される。そして開始時点ステップS304:イエスにおいて、その直前の触媒後センサ学習値の値ΔVrgがバッファに記憶されステップS305、ガード範囲が縮小されステップS306、新たな触媒後センサ学習値の値ΔVrg’が決定されステップS307、このΔVrg’に基づき補助空燃比制御が実行されるステップS308。検出開始後は、開始時点で決定された触媒後センサ学習値の値ΔVrg’が保持され、このΔVrg’に基づき補助空燃比制御が実行されるステップS308。他方、ステップS302において検出フラグがオフの場合、ばらつき異常検出が終了され、ステップS309に進む。ステップS309においては、今回のタイミングが、検出フラグがオンからオフに切り替わったタイミングであるか否か、言い換えればばらつき異常検出の終了時に該当するか否かが判断される。判定結果がイエスであるとき、ステップS310において、学習フラグの強制オフが解除される。これにより触媒後センサ学習値は更新学習可能な元の状態に復帰する。そして、ステップS311において、専用バッファに格納、記憶されていた検出開始直前の触媒後センサ学習値の値が専用バッファから取得される。この様子が図14C、Dに示されている。図14において、時刻t2が今回のタイミングすなわちばらつき異常検出終了時点であるが、この時、バッファに格納されていた触媒後センサ学習値の値ΔVrgxがバッファから取り出され、触媒後センサ学習値ΔVrgとして用いられる。次いでステップS312において、ガード範囲が元の規定のガード範囲に復帰される。これによりガード範囲は図11に示した如く拡大される。そしてステップS313において、通常の触媒後センサ学習値の値ΔVrgを使用して補助空燃比制御が実行される。以上でルーチンが終了される。他方、ステップS309の判定結果がノーであるときには、ステップS310,S311,S312がスキップされ、ステップS313に進む。以上のステップS309~S313によれば、検出終了と同時にステップS309:イエス、学習フラグの強制オフが解除されステップS310、学習フラグのオンオフ状態に応じた触媒後センサ学習値ΔVrgの更新学習が再開される。そしてバッファから検出開始直前の触媒後センサ学習値の値が取り出されステップS311、ガード範囲が復帰、拡大されステップS312、取り出された触媒後センサ学習値の値から補助空燃比制御が実行されるステップS313。図14Cに示すように、ガード範囲復帰の結果、制限下限ガード値ΔVrg1’より小さい触媒後センサ学習値の値ΔVrgxをとることが可能である。その後は通常通り、ステップS301で取得された触媒後センサ学習値の値ΔVrgに基づき補助空燃比制御が実行されるステップS313。このように、検出開始時にその直前の触媒後センサ学習値を一旦記憶し、検出終了時にそれを取り出して検出終了後の補助空燃比制御を開始するので、検出終了後の補助空燃比制御の精度を担保できる。このルーチンによれば、ばらつき異常検出中に触媒後センサ学習値の学習が強制的に禁止されるステップS303。ばらつき異常検出中には、それまで学習してきた学習値とは異なる別の学習値ΔVrg’に基づき補助空燃比制御が行われる場合がある。よってばらつき異常検出中に学習を禁止することで、別の学習値に基づく不適切な学習を行うことを防止できる。以上、本発明の好適な実施形態を詳細に述べたが、本発明の実施形態は他にも様々なものが考えられる。例えば上記実施形態では補助空燃比制御量として触媒後センサ学習値ΔVrgを用いたが、これと等価な補助空燃比補正量Krを用いてもよい。この場合、触媒後センサ学習値ΔVrgのガード範囲に対応した補助空燃比補正量Krのガード範囲も存在するので、補助空燃比制御量のガード範囲とは補助空燃比補正量Krのガード範囲を指す。本発明はリッチずれ異常に対しても適用可能である。リッチずれ異常が生じたときもエンジンの回転変動が大きくなり得るからである。本発明の実施形態は前述の実施形態のみに限らず、特許請求の範囲によって規定される本発明の思想に包含されるあらゆる変形例や応用例、均等物が本発明に含まれる。従って本発明は、限定的に解釈されるべきではなく、本発明の思想の範囲内に帰属する他の任意の技術にも適用することが可能である。"