"複数気筒を有する内燃機関の排気通路において空燃比を検出する空燃比検出手段と、前記複数気筒のそれぞれに供給する燃料量を制御する燃料量制御手段とを備える内燃機関の空燃比制御装置において、前記空燃比検出手段の出力信号から、前記機関の回転速度に対応する周波数の1/2の周波数成分である0.5次周波数成分を抽出する抽出手段と、前記0.5次周波数成分に基づいて、前記複数気筒のそれぞれに対応する空燃比が許容限度を超えてばらついているインバランス故障を判定するインバランス故障判定手段とを備え、前記空燃比検出手段は、理論空燃比を含む所定空燃比範囲において出力値が急激に変化する特性を有し、前記インバランス故障判定手段は、前記機関の運転中において前記空燃比が前記所定空燃比範囲を通過するときに得られる前記0.5次周波数成分に基づいて前記インバランス故障判定を行うことを特徴とする内燃機関の空燃比制御装置。前記機関は前記排気通路に排気浄化触媒を備え、前記空燃比検出手段は前記排気浄化触媒の下流側に設けられることを特徴とする請求項1に記載の内燃機関の空燃比制御装置。前記インバランス故障判定手段は、前記機関への燃料供給を停止する燃料カット運転を終了し燃料供給を再開した直後において前記インバランス故障判定を行うことを特徴とする請求項1または2に記載の内燃機関の空燃比制御装置。前記燃料量制御手段は、前記空燃比検出手段の出力値が目標値と一致するように前記燃料量を制御するフィードバック制御を実行し、前記インバランス故障判定手段は、前記フィードバック制御実行中において前記空燃比が前記所定空燃比範囲を通過するときに前記インバランス故障判定を行うことを特徴とする請求項1または2に記載の内燃機関の空燃比制御装置。前記インバランス故障判定手段は、前記空燃比が理論空燃比よりリーン側からリッチ側へ移行する場合において、前記空燃比検出手段の出力値が前記所定空燃比範囲の下限空燃比に相当するリッチ側閾値よりリーン側にある状態が所定時間以上継続したときは、前記インバランス故障の判定を保留することを特徴とする請求項3または4に記載の内燃機関の空燃比制御装置。前記インバランス故障判定手段は、前記空燃比が理論空燃比よりリッチ側からリーン側へ移行する場合において、前記空燃比検出手段の出力値が前記所定空燃比範囲の上限空燃比に相当するリーン側閾値よりリッチ側にある状態が所定時間以上継続したときは、前記インバランス故障の判定を保留することを特徴とする請求項4に記載の内燃機関の空燃比制御装置。特許文献1に示された判定手法では、空燃比が比較的安定した状態において得られる積値を積算することによって得られる積算値を用いて判定が行われるため、判定に要する時間が長くなる、あるいは判定の実行頻度が低いという課題がある。本発明はこの点に着目してなされたものであり、気筒毎の空燃比のインバランス故障の判定実行頻度を高めるとともに、比較的短時間で正確な判定を行うことができる内燃機関の空燃比制御装置を提供することを目的とする。上記目的を達成するため請求項1に記載の発明は、複数気筒を有する内燃機関の排気通路において空燃比を検出する空燃比検出手段16と、前記複数気筒のそれぞれに供給する燃料量TOUTを制御する燃料量制御手段とを備える内燃機関の空燃比制御装置において、前記空燃比検出手段の出力信号SVO2から、前記機関の回転速度に対応する周波数fNEの1/2の周波数成分である0.5次周波数成分MHLFNEを抽出する抽出手段と、前記0.5次周波数成分に基づいて、前記複数気筒のそれぞれに対応する空燃比が許容限度を超えてばらついているインバランス故障を判定するインバランス故障判定手段とを備え、前記空燃比検出手段は、理論空燃比を含む所定空燃比範囲RAFSTにおいて出力値SVO2が急激に変化する特性を有し、前記インバランス故障判定手段は、前記機関の運転中において前記空燃比が前記所定空燃比範囲RAFSTを通過するときに得られる前記0.5次周波数成分MHLFNEに基づいて前記インバランス故障判定を行うことを特徴とする。請求項2に記載の発明は、請求項1に記載の内燃機関の空燃比制御装置において、前記機関は前記排気通路に排気浄化触媒14を備え、前記空燃比検出手段16は前記排気浄化触媒14の下流側に設けられることを特徴とする。請求項3に記載の発明は、請求項1または2に記載の内燃機関の空燃比制御装置において、前記インバランス故障判定手段は、前記機関への燃料供給を停止する燃料カット運転を終了し燃料供給を再開した直後において前記インバランス故障判定を行うことを特徴とする。請求項4に記載の発明は、請求項1または2に記載の内燃機関の空燃比制御装置において、前記燃料量制御手段は、前記空燃比検出手段の出力値SVO2が目標値SVO2Tと一致するように前記燃料量を制御するフィードバック制御を実行し、前記インバランス故障判定手段は、前記フィードバック制御実行中において前記空燃比が前記所定空燃比範囲RAFSTを通過するときに前記インバランス故障判定を行うことを特徴とする。請求項5に記載の発明は、請求項3または4に記載の内燃機関の空燃比制御装置において、前記インバランス故障判定手段は、前記空燃比が理論空燃比よりリーン側からリッチ側へ移行する場合において、前記空燃比検出手段の出力値SVO2が前記所定空燃比範囲の下限空燃比に相当するリッチ側閾値SVO2Hよりリーン側にある状態が所定時間THOLD,TCHGMAX以上継続したときは、前記インバランス故障の判定を保留することを特徴とする。請求項6に記載の発明は、請求項4に記載の内燃機関の空燃比制御装置において、前記インバランス故障判定手段は、前記空燃比が理論空燃比よりリッチ側からリーン側へ移行する場合において、前記空燃比検出手段の出力値SVO2が前記所定空燃比範囲の上限空燃比に相当するリーン側閾値SVO2Lよりリッチ側にある状態が所定時間TCHGMAX以上継続したときは、前記インバランス故障の判定を保留することを特徴とする。請求項1に記載の発明によれば、空燃比検出手段の出力信号から、機関回転速度に対応する周波数の1/2の周波数成分である0.5次周波数成分が抽出され、この0.5次周波数成分に基づいて、複数気筒のそれぞれに対応する空燃比が許容限度を超えてばらついているインバランス故障が判定される。機関の運転中において空燃比が理論空燃比を含む所定空燃比範囲を通過するときに得られる0.5次周波数成分に基づいてインバランス故障判定が行われる。インバランス故障が発生すると、0.5次周波数成分の強度が増加することが知られており、0.5次周波数成分強度を判定閾値と比較することにより、インバランス故障の有無を判定することができる。また空燃比検出手段は理論空燃比を含む所定空燃比範囲において出力値が急激に変化する特性を有するので、所定空燃比範囲を通過するときの空燃比検出感度が高くなり、インバランス故障が発生している場合に0.5次周波数成分が顕著に表れる。その結果、インバランス故障を正確にかつ迅速に判定することが可能となる。請求項2に記載の発明によれば、空燃比検出手段は、排気浄化触媒の下流側に設けられる。空燃比検出手段を排気マニホールドが集合する集合部近傍排気浄化触媒上流側に設けると、排気の流れが気筒毎に若干変化する空燃比検出手段と排気の接触状態が気筒毎に若干変化するため、インバランス故障が発生していなくても、0.5次成分の増加要因となる。したがって、排気浄化触媒の下流側に設けられた空燃比検出手段を用いることにより、排気流れの気筒毎の変化に起因する誤判定要因を排除し、判定精度を高めることができる。請求項3に記載の発明によれば、機関への燃料供給を停止する燃料カット運転を終了し燃料供給を再開した直後においてインバランス故障判定が行われる。燃料カット運転の終了燃料供給再開直後は、空燃比の変化幅が大きく且つ安定しているので、空燃比が所定空燃比範囲を確実に通過し、判定精度を高めるとともに比較的高い判定実行頻度を確保することができる。請求項4に記載の発明によれば、空燃比検出手段の出力値が目標値と一致するように燃料量を制御するフィードバック制御が実行され、フィードバック制御実行中において空燃比が所定空燃比範囲を通過するときにインバランス故障判定が行われる。したがって、フィードバック制御実行中は常に故障判定が行われ、インバランス故障を迅速に判定することができる。請求項5に記載の発明によれば、空燃比が理論空燃比よりリーン側からリッチ側へ移行する場合において、空燃比検出手段の出力値が所定空燃比範囲の下限空燃比に相当するリッチ側閾値よりリーン側にある状態が所定時間以上継続したときは、インバランス故障の判定が保留される。空燃比が所定空燃比範囲を速やかに通過しない状態では、判定精度が低下するため、判定を保留することにより、判定精度の低下を防止することができる。請求項6に記載の発明によれば、空燃比が理論空燃比よりリッチ側からリーン側へ移行する場合において、空燃比検出手段の出力値が所定空燃比範囲の上限空燃比に相当するリーン側閾値よりリッチ側にある状態が所定時間以上継続したときは、インバランス故障の判定が保留される。空燃比が所定空燃比範囲を速やかに通過しない状態では、判定精度が低下するため、判定を保留することにより、判定精度の低下を防止することができる。以下本発明の実施の形態を図面を参照して説明する。[第1の実施形態]図1は、本発明の一実施形態にかかる内燃機関以下エンジンという及びその空燃比制御装置の全体構成図であり、例えば4気筒のエンジン1の吸気管2の途中にはスロットル弁3が配されている。スロットル弁3にはスロットル弁開度THを検出するスロットル弁開度センサ4が連結されており、その検出信号は電子制御ユニット以下ECUという5に供給される。燃料噴射弁6はエンジン1とスロットル弁3との間かつ吸気管2の図示しない吸気弁の少し上流側に各気筒毎に設けられており、各噴射弁は図示しない燃料ポンプに接続されていると共にECU5に電気的に接続されて当該ECU5からの信号により燃料噴射弁6の開弁時間が制御される。エンジン1の各気筒に設けられた点火プラグ12は、ECU5に接続されており、ECU5から点火信号が供給される。スロットル弁3の上流側には吸入空気流量GAIRを検出する吸入空気流量センサ7が設けられている。またスロットル弁3の下流側には吸気圧PBAを検出する吸気圧センサ8、及び吸気温TAを検出する吸気温センサ9が設けられている。これらのセンサの検出信号は、ECU5に供給される。エンジン1の本体には、エンジン冷却水温TWを検出する冷却水温センサ10が装着されており、その検出信号はECU5に供給される。ECU5には、エンジン1のクランク軸図示せずの回転角度を検出するクランク角度位置センサ11が接続されており、クランク軸の回転角度に応じた信号がECU5に供給される。クランク角度位置センサ11は、エンジン1の特定の気筒の所定クランク角度位置でパルス以下CYLパルスというを出力する気筒判別センサ、各気筒の吸入行程開始時の上死点TDCに関し所定クランク角度前のクランク角度位置で4気筒エンジンではクランク角180度毎にTDCパルスを出力するTDCセンサ及びTDCパルスより短い一定クランク角周期例えば6度周期で1パルス以下CRKパルスというを発生するCRKセンサから成り、CYLパルス、TDCパルス及びCRKパルスがECU5に供給される。これらのパルスは、燃料噴射時期、点火時期等の各種タイミング制御、エンジン回転数エンジン回転速度NEの検出に使用される。排気通路13には三元触媒14が設けられている。三元触媒14は、酸素蓄積能力を有し、エンジン1に供給される混合気の空燃比が理論空燃比よりリーン側に設定され、排気中の酸素濃度が比較的高い排気リーン状態では、排気中の酸素を蓄積し、逆にエンジン1に供給される混合気の空燃比が理論空燃比よりリッチ側に設定され、排気中の酸素濃度が低く、HC、CO成分が多い排気リッチ状態では、蓄積した酸素により排気中のHC,COを酸化する機能を有する。三元触媒14の上流側であって各気筒に連通する排気マニホールドの集合部より下流側には、比例型酸素濃度センサ15以下LAFセンサ15というが装着されており、このLAFセンサ15は排気中の酸素濃度空燃比にほぼ比例した検出信号を出力し、ECU5に供給する。また三元触媒14の下流側には、二値型酸素濃度センサ16以下O2センサ16というが装着されており、その検出信号はECU5に供給される。このO2センサ16は、図2に示すように検出される空燃比AFが理論空燃比AFSTの近傍にあるとき、センサ出力以下O2センサ出力というSVO2が急激に変化する特性を有する。O2センサ出力SVO2は、理論空燃比AFSTよりリッチ側で高レベルとなり、リーン側で低レベルとなる。図2に示す最小出力値SVO2MINは例えば50mV程度であり、最大出力値SVO2MAXは例えば590~680mV程度である。また、理論空燃比AFSTに相当する出力値SVO2STは例えば450mV程度である。ECU5には、エンジン1により駆動される車両のアクセルペダルの踏み込み量以下アクセルペダル操作量というAPを検出するアクセルセンサ21が接続されており、その検出信号がECU5に供給される。スロットル弁3は図示しないアクチュエータにより開閉駆動され、スロットル弁開度THはアクセルペダル操作量APに応じてECU5により制御される。ECU5は、各種センサからの入力信号波形を整形し、電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する等の機能を有する入力回路、中央演算処理ユニット以下CPUという、該CPUで実行される各種演算プログラム及び演算結果等を記憶する記憶回路、燃料噴射弁6、点火プラグ12などに駆動信号を供給する出力回路を備えている。ECU5のCPUは、上述の各種センサの検出信号に基づいて、種々のエンジン運転状態を判別するとともに、該判別されたエンジン運転状態に応じて、次式1を用いて、TDCパルスに同期して開弁作動する燃料噴射弁6の燃料噴射時間TOUTを演算する。燃料噴射時間TOUTは、噴射される燃料量にほぼ比例するので、以下燃料噴射量TOUTという。TOUT=TIM×KCMD×KAF×KTOTAL1ここに、TIMは基本燃料量、具体的には燃料噴射弁6の基本燃料噴射時間であり、吸入空気流量GAIRに応じて設定されたTIMテーブルを検索して決定される。TIMテーブルは、エンジンに供給する混合気の空燃比がほぼ理論空燃比になるように設定されている。KCMDはエンジン1の運転状態に応じて設定される目標空燃比係数である。目標空燃比係数KCMDは、空燃比A/Fの逆数、すなわち燃空比F/Aに比例し、理論空燃比のとき値1.0をとるので、以下目標当量比という。目標当量比KCMDは、空燃比フィードバック制御中はO2センサSVO2に応じて修正される。具体的には、O2センサSVO2がその目標値SVO2Tと一致するように目標当量比KCMDが修正されるこの制御をSO2フィードバック制御という。目標値SVO2Tは、三元触媒14の排気浄化性能が最大となるようにエンジン運転状態に応じて設定される例えば600mV程度。SO2フィードバック制御には、周知のPID制御比例積分微分制御あるいはスライディングモード制御が適用される。KAFは、空燃比フィードバック制御の実行条件が成立するときは、LAFセンサ15の検出値から算出される検出当量比KACTが目標当量比KCMDに一致するようにPID比例積分微分制御あるいは適応制御器SelfTuningRegulatorを用いた適応制御により算出される空燃比補正係数である。KTOTALは夫々各種エンジンパラメータ信号に応じて演算される他の補正係数エンジン冷却水温TMに応じた補正係数KTW、吸気温TAに応じた補正係数KTAなどの積である。ECU5のCPUは上述のようにして求めた燃料噴射量TOUTに基づいて燃料噴射弁6を開弁させる駆動信号を出力回路を介して燃料噴射弁6に供給する。また、ECU5のCPUは、4つの気筒のそれぞれに対応する空燃比が許容限度を超えてばらつくインバランス故障の判定を行う。次に図3及び図4を参照して、本実施形態におけるインバランス故障判定の概要を説明する。図3は、燃料カット運転を終了して燃料供給を再開したときのO2センサ出力SVO2の推移を示すタイムチャートであり、図3aはインバランス故障が発生していない状態正常に対応し、図3bはインバランス故障が発生している状態に対応する。図3bに示されるように、インバランス故障が発生している状態では、O2センサ出力SVO2が上昇する過程で空燃比の変動が検出される。O2センサ16は、図2に示すように、空燃比が理論空燃比近傍の所定空燃比範囲RAFSTにおいて出力SVO2が急激に変化する特性を有する、すなわち所定空燃比範囲RAFSTにおける検出感度が高いため、空燃比の僅かな変動がセンサ出力SVO2に顕著に反映される。本実施形態では、この点に着目して燃料カット運転終了燃料供給再開直後におけるO2センサ出力SVO2に含まれる0.5次周波数成分の強度MHLFNEに基づいて、インバランス故障判定を行うようにしている。0.5次周波数成分は、エンジン回転数NE[rpm]に対応する周波数fNE=NE/60[Hz]の1/2の周波数fNE/2に対応する周波数成分である。インバランス故障が発生すると、検出空燃比酸素濃度を示す信号に含まれる0.5次周波数成分の強度が増加することは例えば特開2009-270543号公報に示されている。図4は、燃料カット運転終了直後に得られたO2センサ出力SVO2に含まれる周波数スペクトラムを示す図であり、破線が正常状態に対応し、実線がインバランス故障が発生している状態に対応する。このように、インバランス故障が発生すると0.5次成分強度MHLFNEが顕著に増加するので、本実施形態では、燃料カット運転終了直後において、空燃比が上記所定空燃比範囲RAFSTを通過するときに所定サンプリング周期で検出されるO2センサ出力SVO2の検出データに基づいて、0.5次成分強度MHLFNEを算出し、0.5次成分強度MHLFNEが判定閾値MAGTHより大きいときにインバランス故障が発生していると判定する。図5は、インバランス故障判定の実行条件を判定する処理のフローチャートである。この処理はECU5のCPUで所定時間毎または所定クランク角度毎に実行される。ステップS11では、センサ正常フラグFSO2SOKが1であるか否かを判別する。センサ正常フラグFSO2SOKは、O2センサ16の異常が検出されていないときは1に設定されており、異常が検出されると0に設定される。ステップS11の答が否定NOであるときは直ちに処理を終了する。ステップS11の答が肯定YESであるときは、判定実行フラグFMCNDIMBが1であるか否かを判別するステップS12。判定実行フラグFMCNDIMBは、判定実行条件が成立するとき1に設定されるステップS18。最初はステップS12の答は否定NOであるので、ステップS13に進み、前条件フラグFFCSO2LOWが1であるか否かを判別する。前条件フラグFFCSO2LOWは、ステップS16で1に設定されるフラグであり、最初はステップS13の答も否定NOとなり、ステップS14に進む。ステップS14では、燃料カットフラグFFCが1であるか否かを判別する。燃料カットフラグFFCは、エンジン1への燃料供給を一時的に停止する燃料カット運転を行うとき1に設定される。ステップS14の答が否定NOであって燃料カット運転中でないときは直ちに処理を終了する。ステップS14の答が肯定YESであるときは、O2センサ出力SVO2が所定下限閾値SVO2LL例えば55mVより小さいか否かを判別するステップS15。この答が否定NOであるときは直ちに処理を終了し、肯定YESであるときは前条件フラグFFCSO2LOWを1に設定するステップS16。その後ステップS17に進む。ステップS16が実行されると、以後はステップS13の答が肯定YESとなり、直ちにステップS17に進む。ステップS17では、SO2フィードバック制御フラグFSO2FBが1であるか否かを判別する。SO2フィードバック制御フラグFSO2FBは、LAFセンサ15の出力に応じた空燃比フィードバック制御が実行され、かつO2センサ出力SVO2に応じた目標当量比KCMDの修正が行われているとき1に設定される。ステップS17の答が否定NOであるときは直ちに処理を終了する。FSO2FB=1であるときは、判定実行条件が成立していると判定し、判定実行フラグFMCNDIMBを1に設定するとともに、前条件フラグFFCSO2LOWを0に戻すステップS18。判定実行フラグFMCNDIMBが1に設定された後は、ステップS12の答が肯定YESとなり、判定終了フラグFDETENDが1であるか否かを判別する。判定終了フラグFDETENDは、図6に示すインバランス故障判定処理における判定が終了すると1に設定される。FDETEND=0である間は、ステップS20に進んで、SO2フィードバック制御フラグFSO2FBが1であるか否かを判別する。この答が肯定YESであるときは直ちに処理を終了する。したがって、インバランス故障判定が継続される。ステップS20でFSO2FB=0であるとき、またはステップS19の答が肯定YESであってインバランス故障判定が終了したときは、ステップS21に進み、判定実行フラグFMCNDIMBを0に戻す前条件フラグFFCSO2LOWは0に維持する。図5の処理によれば、燃料カット運転中にO2センサ出力SVO2が所定下限閾値SVO2LLより低くなり、かつ燃料カット運転が終了して燃料供給が再開されて、空燃比フィードバック制御が開始されたときに、判定実行フラグFMCNDIMBが1に設定される。図6は、インバランス故障が発生しているか否かを判定するインバランス故障判定処理のフローチャートであり、この処理はECU5のCPUで、エンジン回転に同期して所定クランク角度毎に実行される。ステップS31では、判定実行フラグFMCNDIMBが1であるか否かを判別し、その答が否定NOであるときは直ちに処理を終了する。判定実行フラグFMCNDIMBが1であるときは、O2センサ出力SVO2が所定下側閾値SVO2L例えば100mVより大きいか否かを判別するステップS32。最初はこの答は否定NOであるので、ステップS39に進み、判定実行フラグFMCNDIMBが1に設定された時点から所定時間THOLD例えば500msecが経過したか否かを判別する。最初はこの答は否定NOとなり直ちに処理を終了する。O2センサ出力SVO2が上昇してステップS32の答が肯定YESとなると、O2センサ出力SVO2をサンプリングして、その検出値をメモリに格納するステップS33。ステップS34では、O2センサ出力SVO2が所定上側閾値SVO2Hより大きいか否かを判別し、その答が否定NOであるときは、ステップS39に進む。所定上側閾値SVO2Hは、例えば600mvに設定されるが、O2センサ出力SVO2のフィードバック制御における目標値SVO2Tの方が低いときは、その目標値SVO2Tに設定される。O2センサ出力SVO2がさらに上昇してステップS34の答が肯定YESとなると、メモリに格納したサンプリングデータを用いて高速フーリエ変換FFT演算処理を実行し、0.5次成分強度MHLFNEを算出するステップS35。エンジン回転に同期してサンプリングされたデータを用いることにより、エンジン回転数NEが変化しても0.5次成分強度MHLFNEを抽出するFFT演算処理を行うことができる。ステップS36では、0.5次成分強度MHLFNEが判定閾値MAGTH以下であるか否かを判別し、その答が肯定YESであるときは、気筒毎の空燃比は正常と判定するステップS37。ステップS36の答が否定NOであって、0.5次成分強度MHLFNEが判定閾値MAGTHを超えているときは、インバランス故障が発生していると判定するステップS38。その後ステップS41では、判定終了フラグFDETENDを1に設定する。ステップS32またはS34の答が肯定YESとなるまえに所定時間THOLDが経過したときは、ステップS39からS40に進み、判定を保留して正常/故障の判定を行わずに、ステップS41に進む。図6の処理で使用される所定下側閾値SVO2L及び所定上側閾値SVO2Hによって、図2に示すように理論空燃比AFSTを含む所定空燃比範囲RAFSTが定義され、本実施形態では、燃料カット運転終了直後において、空燃比AFが所定空燃比範囲RAFSTを通過するときに検出されるO2センサ出力SVO2から、エンジン回転数NEに対応する周波数fNEの1/2の周波数成分である0.5次周波数成分が抽出され、この0.5次周波数成分の強度MHLFNEが判定閾値MAGTHより大きいときに、インバランス故障が発生していると判定される。O2センサ16は理論空燃比AFSTを含む所定空燃比範囲RAFSTにおいて出力値が急激に変化する特性を有するので、所定空燃比範囲RAFSTを通過するときの空燃比検出感度が高くなり、インバランス故障が発生している場合に0.5次周波数成分が顕著に検出される。その結果、インバランス故障を正確にかつ迅速に判定することができる。また三元触媒14の下流側に配置されるO2センサ16の出力SVO2を用いることにより、以下のような効果が得られる。例えば三元触媒14の上流側排気マニホールドが集合する集合部近傍に配置されるLAFセンサ15の出力を用いる場合、排気の流れが気筒毎に若干変化するため、LAFセンサ15と排気の接触状態が気筒毎に若干変化するし、インバランス故障が発生していなくても、0.5次成分の増加要因となる。三元触媒14の下流側では、O2センサ16と排気の接触状態が、燃焼気筒に依存して変化することはないので、排気流れの気筒毎の変化に起因する誤判定要因を排除し、判定精度を高めることができる。また燃料カット運転の終了燃料供給再開直後は、空燃比の変化幅が大きく且つ安定しているので、空燃比が所定空燃比範囲RAFSTを確実に通過し、判定精度を高めるとともに比較的高い判定実行頻度を確保することができる。さらにO2センサ出力SVO2が所定空燃比範囲RAFSTの下限空燃比に相当する所定上側閾値SVO2Hより小さいリーン側にある状態が、判定開始後所定時間THOLD以上継続したときは、インバランス故障の判定が保留される。空燃比が所定空燃比範囲RAFSTを速やかに通過しない状態では、判定精度が低下するため、判定を保留することにより、判定精度の低下を防止することができる。本実施形態では、O2センサ16が空燃比検出手段に相当し、燃料噴射弁6が燃料量制御手段の一部を構成し、ECU5が、燃料量制御手段の一部、抽出手段、及びインバランス故障判定手段を構成する。具体的には、図6のステップS33及びS35が抽出手段に相当し、図5のステップS12~S21及び図6のステップS32,S34,S36~S38がインバランス故障判定手段に相当する。[変形例]図7は、図6のインバランス故障判定処理の変形例のフローチャートである。ステップS51では、O2センサ出力SVO2に含まれる0.5次周波数成分を抽出するバンドパスフィルタ処理を実行し、フィルタ処理後センサ出力SVO2Fを算出する。バンドパスフィルタ処理は、公知の再帰型演算処理が使用される。バンドパスフィルタ処理を、エンジン回転に同期した所定クランク角度毎に実行することにより、サンプリング周期がエンジン回転数NEの変化に伴って変化し、fNE/2の周波数近傍の成分0.5次成分を抽出することができる。ステップS52では、判定実行フラグFMCNDIMBが1であるか否かを判別し、その答が否定NOであるときは直ちに処理を終了する。判定実行フラグFMCNDIMBが1であるときは、O2センサ出力SVO2が所定下側閾値SVO2Lより大きいか否かを判別するステップS53。最初はこの答は否定NOであるので、ステップS59に進み、判定実行フラグFMCNDIMBが1に設定された時点から所定時間THOLDが経過したか否かを判別する。最初はこの答は否定NOとなり直ちに処理を終了する。O2センサ出力SVO2が上昇してステップS53の答が肯定YESとなると、下記式2にフィルタ処理後センサ出力SVO2Fを適用して、0.5次成分積算値ISVO2Fを算出するステップS54。式2の右辺のISVO2Fは、前回算出値である。ISVO2F=ISVO2FSVO2F2ステップS55では、O2センサ出力SVO2が所定上側閾値SVO2Hより大きいか否かを判別し、その答が否定NOであるときは、ステップS59に進む。O2センサ出力SVO2がさらに上昇してステップS55の答が肯定YESとなると、0.5次成分積算値ISVO2Fが判定閾値ISVO2TH以下であるか否かを判別し、その答が肯定YESであるときは、気筒毎の空燃比は正常と判定するステップS57。ステップS56の答が否定NOであって、0.5次成分積算値ISVO2Fが判定閾値ISVO2THを超えているときは、インバランス故障が発生していると判定するステップS58。その後ステップS61では、判定終了フラグFDETENDを1に設定する。ステップS53またはS55の答が肯定YESとなる前に所定時間THOLDが経過したときは、ステップS59からステップS60に進み、判定を保留してステップS61に進む。図7の処理によれば、図6の処理において算出される0.5次成分強度MHLFNEに相当する0.5次成分積算値ISVO2Fが算出され、0.5次成分積算値ISVO2Fが判定閾値ISVO2THを超えると、インバランス故障が発生していると判定されるので、図6の処理と同様にインバランス故障判定を行うことができる。本変形例では、ステップS51及びS54が抽出手段に相当する。[第2の実施形態]本実施形態は、燃料カット運転終了直後に限らず、O2センサ出力SVO2が所定空燃比範囲RAFSTに対応する所定出力範囲RSVO2ST所定下側閾値SVO2Lより大きくかつ所定上側閾値SVO2Hより小さい範囲を通過するとき常にインバランス故障判定を実行するようにしたものである。図8は、本実施形態における処理の全体構成を示すフローチャートであり、ステップS71では、空燃比が所定空燃比範囲RAFSTをリッチ側からリーン側に向かう方向で通過する条件第1実行条件の判定を行い、ステップS72では逆にリーン側からリッチ側に向かう方向で通過する条件第2実行条件の判定を行う。ステップS73では、判定された実行条件に従ってインバランス故障判定を行う。図9は、第1実行条件判定処理のフローチャートである。この処理はECU5のCPUで所定時間毎または所定クランク角度毎に実行される。ステップS81では、センサ正常フラグFSO2SOKが1であるか否かを判別し、その答が肯定YESであるときはさらにSO2フィードバック制御フラグFSO2FBが1であるか否かを判別するステップS82。ステップS81またはS82の答が否定NOであるときは直ちに処理を終了する。ステップS82の答が肯定YESであるときは、データ取得フラグFRSTSTが1であるか否かを判別するステップS83。データ取得フラグFRSTSTは、O2センサ出力SVO2が所定空燃比範囲RAFSTに対応する所定出力範囲RSVO2ST内にあるとき1に設定されるステップS86,S90参照。最初はステップS83の答は否定NOであるので、ステップS84に進み、O2センサ出力SVO2が所定上側閾値SVO2Hより小さいか否かを判別する。この答が否定NOであるときは直ちに処理を終了する。O2センサ出力SVO2が所定上側閾値SVO2Hを下回ったときは、ステップS84からステップS85に進み、変化時間タイマTMCHGのカウントアップを開始する。ステップS86では、データ取得フラグFRSTSTを1に設定するとともに、取得データ有効フラグFRSTEFを0に設定する。データ取得フラグFRSTSTが1に設定された後は、ステップS83からステップS87に進み、変化時間タイマTMCHGの値が所定最大変化時間TCHGMAX例えば500msec以上であるか否かを判別する。最初はこの答は否定NOであるので、ステップS88に進み、O2センサ出力SVO2が所定下側閾値SVO2Lを下回ったか否かを判別する。最初はこの答は否定NOであるので、直ちに処理を終了する。ステップS88の答が肯定YESとなると、ステップS89に進み、変化時間タイマTMCHGのカウントアップを停止し、その値を0に戻す。ステップS90では、データ取得フラグFRSTSTを0に戻すとともに、取得データ有効フラグFRSTEFを1に設定する。ステップS88の答が肯定YESとなる前にステップS87の答が肯定YESとなると、変化時間タイマTMCHGのカウントアップを停止してその値を0に戻すステップS91。ステップS92では、データ取得フラグFRSTSTを0に戻すとともに、取得データ有効フラグFRSTEFを0に維持する。図10は第2実行条件判定処理のフローチャートである。この処理はECU5のCPUで所定時間毎または所定クランク角度毎に実行される。図10の処理は、図9のステップS84及びS88をそれぞれステップS84a及びS88aに代えたものである。ステップS84aでは、O2センサ出力SVO2が所定下側閾値SVO2Lを超えたか否かを判別し、その答が肯定YESとなったときにステップS85に進む。またステップS88aでは、O2センサ出力SVO2が所定上側閾値SVO2Hを超えたか否かを判別し、その答が肯定YESとなったときにステップS89に進む。図11は、図9及び図10の処理を説明するためのタイムチャートであり、O2センサ出力SVO2、データ取得フラグFRSTST、変化時間タイマTMCHG、及び取得データ有効フラグFRSTEFの推移を示す。なお、図11aに示すSVO2Tは、O2センサ出力SVO2の目標値である。時刻t1においてO2センサ出力SVO2が所定上側閾値SVO2Hを下回ると、図9のステップS85及びS86が実行され、変化時間タイマTMCHGのカウントアップが開始され、データ取得フラグFRSTSTが1に設定される取得データ有効フラグFRSTEFは0に維持される。時刻t2においてO2センサ出力SVO2が所定下側閾値SVO2Lを下回ると、図9のステップS89及びS90が実行され、変化時間タイマTMCHGの値が0に戻され、データ取得フラグFRSTSTが0に戻されるとともに、取得データ有効フラグFRSTEFが1に設定される。時刻t3においてO2センサ出力SVO2が所定下側閾値SVO2Lを超えると、図10のステップS85及びS86が実行され、変化時間タイマTMCHGのカウントアップが開始され、データ取得フラグFRSTSTが1に設定されるとともに、取得データ有効フラグFRSTEFが0に戻される。時刻t4においてO2センサ出力SVO2が所定上側閾値SVO2Hを超えると、図10のステップS89及びS90が実行され、変化時間タイマTMCHGの値が0に戻され、データ取得フラグFRSTSTが0に戻されるとともに、取得データ有効フラグFRSTEFが1に設定される。時刻t5においてO2センサ出力SVO2が所定上側閾値SVO2Hを下回ると、図9のステップS85及びS86が実行され、変化時間タイマTMCHGのカウントアップが開始され、データ取得フラグFRSTSTが1に設定されるとともに、取得データ有効フラグFRSTEFが0に戻される。その後O2センサ出力SVO2が所定下側閾値SVO2Lまで低下しないため、変化時間タイマTMCHGの値が所定最大変化時間TCHGMAXに達する時刻t6。その結果、図9のステップS91及びS92が実行され、変化時間タイマTMCHGの値が0に戻され、データ取得フラグFRSTSTが0に戻される取得データ有効フラグFRSTEFは0に維持される。したがって、この場合には正常/故障の判定が行われず、判定が保留される。時刻t7~t10における動作は、時刻t1~t4における動作と同様である。図12はインバランス故障判定処理のフローチャートであり、この処理はECU5のCPUで所定クランク角度毎に実行される。ステップS101では、データ取得フラグFRSTSTが1であるか否かを判別し、この答が否定NOであるときは、取得データ有効フラグFRSTEFが1であるか否かを判別するステップS103。ステップS103の答が否定NOであるときは直ちに処理を終了する。ステップS101の答が肯定YESであるときは、O2センサ出力SVO2をサンプリングして、その検出値をメモリに格納するステップS102。すなわち、データ取得フラグFRSTSTが1である期間中に図11,t1-t2,t3-t4,t5-t6,t7-t8、t9-t10、判定に必要なO2センサ出力SVO2の取得が行われる。ステップS101の答が否定NOでステップS103の答が肯定YESであるときはFRSTST=0かつFRSTEF=1、データ取得フラグFRSTSTが1である期間中O2センサ出力SVO2が所定出力範囲RSVO2FSTを通過している期間中に取得されたデータを用いてFFT演算処理を実行しステップS104、0.5次成分強度MHLFNEを算出する。ステップS105では、0.5次成分強度MHLFNEが判定閾値MAGTH以下であるか否かを判別し、その答が肯定YESであるときは、気筒毎の空燃比は正常と判定するステップS106。一方ステップS105の答が否定NOであって、0.5次成分強度MHLFNEが判定閾値MAGTHを超えているときは、インバランス故障が発生していると判定するステップS107。以上のように本実施形態では、空燃比フィードバック制御実行中において検出空燃比が所定空燃比範囲RAFSTを通過するときに、すなわちO2センサ出力SVO2が所定出力範囲RSVO2STを通過するときに、インバランス故障判定が行われるので、空燃比フィードバック制御実行中は常に故障判定が行われ、インバランス故障を迅速に判定することができる。また検出空燃比が理論空燃比よりリーン側からリッチ側へ移行する場合において、O2センサ出力SVO2が所定下側閾値SVO2Lを超えた時点から所定最大変化時間TCHGMAX内に所定上側閾値SVO2Hに達しないとき、及び検出空燃比が理論空燃比よりリッチ側からリーン側へ移行する場合において、O2センサ出力SVO2が所定上側閾値SVO2Hを下回った時点から所定最大変化時間TCHGMAX内に所定下側閾値SVO2Lに達しないときは、インバランス故障の判定が保留される。O2センサ出力SVO2が所定出力範囲RSVO2STを速やかに通過しない状態では、判定精度が低下するため、判定を保留することにより、判定精度の低下を防止することができる。本実施形態では、O2センサ16が空燃比検出手段に相当し、燃料噴射弁6が燃料量制御手段の一部を構成し、ECU5が、燃料量制御手段の一部、抽出手段、及びインバランス故障判定手段を構成する。具体的には、図12のステップS102及びS104が抽出手段に相当し、図9及び図10の処理、並びに図12のステップS101、S103,S105~S107がインバランス故障判定手段に相当する。[変形例1]図13は、図12のインバランス故障判定処理の変形例のフローチャートである。図13の処理では、FFT演算処理に代えてバンドパスフィルタ処理及び積算演算によって、0,5次成分強度を示す0.5次成分積算値ISVO2Fが算出され、0.5次成分積算値ISVO2Fに応じてインバランス故障判定が行われる。ステップS121では、SO2フィードバック制御フラグFSO2FBが1であるか否かを判別し、その答が否定NOであるときは直ちに処理を終了する。FSO2FB=1であるときは、図7のステップS51と同様にO2センサ出力SVO2に含まれる0.5次成分を抽出するバンドパスフィルタ処理を実行し、フィルタ処理後センサ出力SVO2Fを算出するステップS122。ステップS123では、データ取得フラグFRSTSTが1であるか否かを判別し、この答が否定NOであるときは、取得データ有効フラグFRSTEFが1であるか否かを判別するステップS125。ステップS125の答が否定NOであるときは直ちに処理を終了する。ステップS123の答が肯定YESであるときは、前記式2を用いてフィルタ処理後センサ出力SVO2Fを積算し、0.5次成分積算値ISVO2Fを算出するステップS124。すなわち、データ取得フラグFRSTSTが1である期間中に0.5次成分積算値ISVO2Fの算出が行われる。ステップS123の答が否定NOでステップS125の答が肯定YESであるときは、データ取得フラグFRSTSTが1である期間中O2センサ出力SVO2が所定出力範囲RSVO2STを通過している期間中に算出された0.5次成分積算値ISVO2Fが判定閾値ISVO2TH以下であるか否かを判別するステップS126。その答が肯定YESであるときは、気筒毎の空燃比は正常と判定するステップS127一方、ステップS126の答が否定NOであって、0.5次成分積算値ISVO2Fが判定閾値ISVO2THを超えているときは、インバランス故障が発生していると判定するステップS128。図13の処理によれば、図12の処理において算出される0.5次成分強度MHLFNEに相当する0.5次成分積算値ISVO2Fが算出され、0.5次成分積算値ISVO2Fが判定閾値ISVO2THを超えると、インバランス故障が発生していると判定されるので、図12の処理と同様にインバランス故障判定を行うことができる。本変形例では、図13のステップS122及びS124が抽出手段に相当する。[変形例2]上述した第2の実施形態では、検出空燃比が理論空燃比よりリッチ側からリーン側へ移行するとき及びリーン側からリッチ側へ移行するときの両方において得られるO2センサ出力SVO2に基づいて、インバランス故障判定を行うようにしたが、リッチ側からリーン側へ移行するときまたはリーン側からリッチ側へ移行するときの何れか一方において得られるO2センサ出力SVO2に基づいて、インバランス故障判定を行うようにしてもよい。なお本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、上述した実施形態では、FFT演算処理により得られる0.5次成分強度MHLFNEまたは0.5次成分積算値ISVO2Fと、判定閾値とを比較してインバランス故障判定を行うようにしたが、エンジン回転数NEに対応する周波数fNEの成分強度1次成分強度MNEに対する0.5次成分強度の比率、あるいは1次成分積算値ISVO2F1に対する0.5次成分積算値ISVO2Fの比率を、対応する判定閾値と比較してインバランス故障判定を行うようにしてもよい。また上述した実施形態では、三元触媒14の下流側に配置されたO2センサ16の出力SVO2を用いて判定を行うようにしたが、O2センサ16を三元触媒14の上流側に配置し、その出力を用いて判定を行うようにしてもよい。この場合、判定精度は上述した実施形態に比べて低下するが判定を行うことは可能である。また上述した実施形態では、O2センサ出力SVO2をエンジン回転に同期したタイミングでサンプリングして、0.5次成分を抽出するようにしたので、故障判定実行条件には、エンジン回転数NEの変化量に関する条件が含まれていないが、判定用のデータサンプリング中におけるエンジン回転数NEの変化量が例えば1000rpmを超えたときは、判定を保留するようにしてもよいすなわち、サンプリング中のエンジン回転数NEの変化量が例えば1000rpm以内であるとき判定を行うようにしてもよい。これによって、判定精度を高めることが可能となる。また上述した実施形態では、吸気通路内に燃料を噴射するエンジンの空燃比制御装置に本発明を適用したが、本発明は燃焼室内に直接燃料を噴射するエンジンの空燃比制御装置にも適用可能である。また本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンなどの空燃比制御装置にも適用が可能である。"