"複数の気筒を含む第1気筒群及び複数の気筒を含む第2気筒群を備える本体部を有する内燃機関に適用され、前記第1気筒群の前記複数の気筒から排出される排ガスを通過させる第1排気通路に配設された第1触媒と、前記第1排気通路の前記第1触媒の下流に配設された第1下流側空燃比センサと、前記第2気筒群の前記複数の気筒から排出される排ガスを通過させる第2排気通路に配設された第2触媒と、前記第2排気通路の前記第2触媒の下流に配設された第2下流側空燃比センサと、を備える内燃機関の空燃比制御装置であって、前記第1触媒及び前記第2触媒のうち最大酸素吸蔵量が小さい方の特定触媒の下流に配設されている前記第1下流側空燃比センサ及び前記第2下流側空燃比センサのうちの何れか一方の出力値に相関を有する値である選択下流側空燃比センサ出力相関値と所定のリーン要求判定値との比較の結果に基づいて同特定触媒に対するリーン要求が発生したか否かを判定するとともに、前記選択下流側空燃比センサ出力相関値と所定のリッチ要求判定値との比較に基づいて前記特定触媒に対するリッチ要求が発生したか否かを判定し、前記リーン要求が発生したと判定された時点から前記リッチ要求が発生したと判定される時点までのリーン要求発生期間において前記特定触媒に排ガスを排出する前記第1気筒群及び前記第2気筒群のうちの一方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御するとともに前記第1気筒群及び前記第2気筒群のうちの他方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御し、前記リッチ要求が発生したと判定された時点から前記リーン要求が発生したと判定される時点までのリッチ要求発生期間において前記特定触媒に排ガスが供給される前記第1気筒群及び前記第2気筒群のうちの一方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御するとともに前記第1気筒群及び前記第2気筒群のうちの他方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御する、逆相制御を実行する空燃比制御手段、を備える空燃比制御装置。以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。<第1実施形態>構成図2は、第1実施形態に係る制御装置以下、第1制御装置とも称呼する。が適用された内燃機関10の概略構成を示している。機関10は、4サイクル火花点火式V型6気筒エンジンである。機関10は、機関本体部20と、吸気系統30と、右バンク排気系統40と、左バンク排気系統50と、を含む。機関本体部20は、シリンダブロック部及びシリンダヘッド部を含む。機関本体部20は、6個の気筒燃焼室21を備えている。第1気筒1、第3気筒3及び第5気筒5は右バンクRBに備えられている。第1気筒1、第3気筒3及び第5気筒5を含む気筒群は、第1気筒群とも称呼される。第2気筒2、第4気筒4及び第6気筒6は左バンクLBに備えられている。第2気筒2、第4気筒4及び第6気筒6を含む気筒群は、第2気筒群とも称呼される。各気筒は、図示しない吸気ポート及び排気ポートと連通している。吸気ポートと燃焼室21との連通部は図示しない吸気弁により開閉される。排気ポートと燃焼室21との連通部は図示しない排気弁により開閉される。各燃焼室21には図示しない点火プラグが配設されている。吸気系統30は、インテークマニホールド及び吸気管からなる吸気通路部31、スロットル弁32、及び、複数の燃料噴射弁33、を備えている。吸気通路部31の一端には図示しないエアフィルタが配設されている。吸気通路部31の他端は図示しない複数の枝部に分かれ、その複数の枝部のそれぞれは複数の吸気ポートのそれぞれに接続されている。スロットル弁32は、吸気通路部31の吸気管内に回動可能に配設されている。スロットル弁32は、吸気通路部31の通路断面積を可変とするようになっている。スロットル弁32は、図示しないスロットル弁アクチュエータにより回転駆動されるようになっている。燃料噴射弁33は、一つの気筒燃焼室21に対して一つずつ配設されている。燃料噴射弁33は、噴射指示信号に応答し、その噴射指示信号に含まれる指示燃料噴射量の燃料を吸気ポート従って、燃料噴射弁33に対応する気筒21に対して噴射するようになっている。右バンク排気系統40は、右バンク用エキゾーストマニホールド41、右バンク用エキゾーストパイプ42、右バンク用エキゾーストパイプ42に配設された右バンク用上流側触媒43、及び、右バンク用上流側触媒43よりも下流において右バンク用エキゾーストパイプ42に配設された図示しない右バンク用下流側触媒を備えている。右バンク用エキゾーストマニホールド41は、複数の枝部41aと集合部41bとを備えている。複数の枝部41aのそれぞれの一端は、右バンクに属する複数の気筒の排気ポートのそれぞれに接続されている。複数の枝部41aのそれぞれの他端は集合部41bに集合している。この集合部41bは、右バンク用排気集合部HKRとも称呼される。右バンク用エキゾーストパイプ42は集合部41bに接続されている。右バンクRBに属する複数の気筒の排気ポート、右バンク用エキゾーストマニホールド41及び右バンク用エキゾーストパイプ42は、右バンク用の排気通路を構成している。右バンク用上流側触媒43及び右バンク用下流側触媒のそれぞれは、所謂、白金、ロジウム及びパラジウム等の貴金属触媒物質からなる活性成分を担持する三元触媒装置排気浄化用の触媒である。各触媒は、各触媒に流入するガスの空燃比が三元触媒のウインドウ内の空燃比例えば、理論空燃比であるとき、HC,CO,H2などの未燃成分を酸化するとともに窒素酸化物NOxを還元する機能を有する。この機能は触媒機能とも称呼される。更に、各触媒は、酸素を吸蔵貯蔵する酸素吸蔵機能を有する。即ち、各触媒は、その触媒に流入するガス触媒流入ガスに過剰の酸素が含まれているとき、その酸素を吸蔵するとともにNOxを浄化する。各触媒は、触媒流入ガスに過剰な未燃物が含まれているとき、吸蔵している酸素を放出してその未燃物を浄化する。この酸素吸蔵機能は、触媒に担持されているセリアCeO2等の酸素吸蔵材によってもたらされる。各触媒は、酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃成分及び窒素酸化物を浄化することができる。左バンク排気系統50は、左バンク用エキゾーストマニホールド51、左バンク用エキゾーストパイプ52、左バンク用エキゾーストパイプ52に配設された左バンク用上流側触媒53、及び、左バンク用上流側触媒53よりも下流において左バンク用エキゾーストパイプ52に配設された図示しない左バンク用下流側触媒を備えている。左バンク用エキゾーストマニホールド51は、複数の枝部51aと集合部51bとを備えている。複数の枝部51aのそれぞれの一端は、左バンクに属する複数の気筒の排気ポートのそれぞれに接続されている。複数の枝部51aのそれぞれの他端は集合部51bに集合している。この集合部51bは、左バンク用排気集合部HKLとも称呼される。左バンク用エキゾーストパイプ52は集合部51bに接続されている。左バンクLBに属する複数の気筒の排気ポート、左バンク用エキゾーストマニホールド51及び左バンク用エキゾーストパイプ52は、左バンク用の排気通路を構成している。左バンク用上流側触媒53は右バンク用上流側触媒43と同じ三元触媒である。左バンク用下流側触媒は右バンク用下流側触媒と同じ三元触媒である。このシステムは、熱線式エアフローメータ61、スロットルポジションセンサ62、水温センサ63、クランクポジションセンサ64、インテークカムポジションセンサ65、右バンク用上流側空燃比センサ66R、左バンク用上流側空燃比センサ66L、右バンク用下流側空燃比センサ67R、左バンク用下流側空燃比センサ67L、及び、アクセル開度センサ68を備えている。エアフローメータ61は、吸気通路部31を流れる吸入空気の質量流量吸入空気流量Gaに応じた信号を出力するようになっている。即ち、吸入空気量Gaは、単位時間あたりに機関10に吸入される吸入空気量を表す。スロットルポジションセンサ62は、スロットル弁32の開度スロットル弁開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。水温センサ63は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。冷却水温THWは、機関10の暖機状態機関10の温度を表す運転状態指標量である。クランクポジションセンサ64は、クランク軸が10°回転する毎に幅狭のパルスを有するとともに同クランク軸が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、後述する電気制御装置70によって機関回転速度NEに変換される。インテークカムポジションセンサ65は、インテークカムシャフトが所定角度から90度、次いで90度、更に180度回転する毎に一つのパルスを出力するようになっている。後述する電気制御装置70は、クランクポジションセンサ64及びインテークカムポジションセンサ65からの信号に基づいて、基準気筒例えば第1気筒の圧縮上死点を基準とした絶対クランク角度CAを取得するようになっている。この絶対クランク角度CAは、基準気筒の圧縮上死点において0°クランク角度に設定され、クランク軸の回転角度に応じて720°クランク角度まで増大し、その時点にて再び0°クランク角度に設定される。右バンク用上流側空燃比センサ66Rは、右バンク用エキゾーストマニホールド41の集合部41b右バンク用排気集合部HKRと右バンク用上流側触媒43との間の位置において右バンク用エキゾーストマニホールド41及び右バンク用エキゾーストパイプ42の何れかに配設されている。右バンク用上流側空燃比センサ66Rは、例えば、特開平11-72473号公報、特開2000-65782号公報及び特開2004-69547号公報等に開示された拡散抵抗層を備える限界電流式広域空燃比センサである。右バンク用上流側空燃比センサ66Rは、右バンク用上流側空燃比センサ66Rの配設位置を流れる排ガスの空燃比右バンク用上流側触媒43に流入するガスである触媒流入ガスの空燃比、右バンク上流側空燃比abyfs=右バンク検出空燃比abyfsに応じた出力値Vabyfsを出力する。出力値Vabyfsは、図3に示したように、右バンク用上流側触媒43に流入するガスの空燃比abyfsが大きくなるほどリーン側の空燃比になるほど増大する。電気制御装置70は、出力値Vabyfsと右バンク上流側空燃比abyfsとの図3に示した関係を規定した空燃比変換テーブルマップMapabyfsを記憶している。電気制御装置70は、出力値Vabyfsを空燃比変換テーブルMapabyfsに適用することにより、実際の右バンク上流側空燃比abyfsを検出する右バンク検出空燃比abyfsを取得する。再び、図2を参照すると、右バンク用下流側空燃比センサ67Rは、右バンク用エキゾーストパイプ42内に配設されている。右バンク用下流側空燃比センサ67Rの配設位置は、右バンク用上流側触媒43よりも下流側であり、且つ、右バンク用下流側触媒よりも上流側即ち、右バンク用上流側触媒43と右バンク用下流側触媒との間の排気通路である。右バンク用下流側空燃比センサ67Rは、周知の起電力式の酸素濃度センサ安定化ジルコニア等の固体電解質を用いた周知の濃淡電池型の酸素濃度センサである。右バンク用下流側空燃比センサ67Rは、右バンク用の排気通路であって右バンク用下流側空燃比センサ67Rが配設されている部位を通過するガスである被検出ガスの空燃比に応じた出力値Voxsを発生するようになっている。換言すると、出力値Voxsは、右バンク用上流側触媒43から流出し且つ右バンク用下流側触媒に流入するガスの空燃比に応じた値である。この出力値Voxsは、図4に示したように、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比よりもリッチのとき最大出力値max例えば、約0.9V~1.0Vとなる。出力値Voxsは、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比よりもリーンのとき最小出力値min例えば、約0.1V~0Vとなる。更に、出力値Voxsは、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比であるとき最大出力値maxと最小出力値minの略中間の電圧Vst中央値Vmid、中間電圧Vst、例えば、約0.5Vとなる。出力値Voxsは、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比よりもリッチな空燃比からリーンな空燃比へと変化する際に最大出力値maxから最小出力値minへと急変する。同様に、出力値Voxsは、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比よりもリーンな空燃比からリッチな空燃比へと変化する際に最小出力値minから最大出力値maxへと急変する。再び、図2を参照すると、左バンク用上流側空燃比センサ66Lは、左バンク用エキゾーストマニホールド51の集合部51b左バンク用排気集合部HKLと左バンク用上流側触媒53との間の位置において左バンク用エキゾーストマニホールド51及び左バンク用エキゾーストパイプ52の何れかに配設されている。左バンク用上流側空燃比センサ66Lは、右バンク用上流側空燃比センサ66Rと同じ拡散抵抗層を備える限界電流式広域空燃比センサである。左バンク用上流側空燃比センサ66Lは、左バンク用上流側空燃比センサ66Lの配設位置を流れる排ガスの空燃比左バンク用上流側触媒53に流入するガスである触媒流入ガスの空燃比、左バンク上流側空燃比abyfs=左バンク検出空燃比abyfsに応じた出力値Vabyfsを出力する。出力値Vabyfsは、図3に示したように、左バンク用上流側触媒53に流入するガスの空燃比が大きくなるほどリーン側の空燃比になるほど増大する。電気制御装置70は、出力値Vabyfsと左バンク上流側空燃比abyfsとの図3に示した関係を規定した空燃比変換テーブルマップMapabyfsを記憶している。電気制御装置70は、出力値Vabyfsを空燃比変換テーブルMapabyfsに適用することにより、実際の左バンク上流側空燃比abyfsを検出する左バンク検出空燃比abyfsを取得する。再び、図2を参照すると、左バンク用下流側空燃比センサ67Lは、左バンク用エキゾーストパイプ52内に配設されている。左バンク用下流側空燃比センサ67Lの配設位置は、左バンク用上流側触媒53よりも下流側であり、且つ、左バンク用下流側触媒よりも上流側即ち、左バンク用上流側触媒53と左バンク用下流側触媒との間の排気通路である。左バンク用下流側空燃比センサ67Lは、右バンク用下流側空燃比センサ67Rと同じ起電力式の酸素濃度センサである。従って、左バンク用下流側空燃比センサ67Lは、左バンク用の排気通路であって左バンク用下流側空燃比センサ67Lが配設されている部位を通過するガスである被検出ガスの空燃比に応じた出力値Voxsを発生するようになっている図4を参照。。図2に示したアクセル開度センサ68は、運転者によって操作されるアクセルペダルAPの操作量Accpアクセルペダル操作量、アクセルペダルAPの開度を表す信号を出力するようになっている。アクセルペダル操作量Accpは、アクセルペダルAPの操作量が大きくなるとともに大きくなる。電気制御装置70は、CPU、CPUが実行するプログラム、テーブルマップ、関数及び定数等を予め記憶したROM、CPUが必要に応じてデータを一時的に格納するRAM、バックアップRAMB-RAM、並びに、ADコンバータを含むインターフェース等からなる周知のマイクロコンピュータである。バックアップRAMは、機関10を搭載した車両の図示しないイグニッションキースイッチの位置オフ位置、始動位置及びオン位置等の何れかに関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップRAMは、バッテリから電力の供給を受けている場合、CPUの指示に応じてデータを格納するデータが書き込まれるとともに、そのデータを読み出し可能となるように保持記憶する。従って、バックアップRAMは、機関10の運転停止中においてもデータを保持することができる。バックアップRAMは、バッテリが車両から取り外される等によりバッテリからの電力供給が遮断されると、データを保持することができない。そこで、CPUは、バックアップRAMへの電力供給が再開されたとき、バックアップRAMに保持されるべきデータを初期化デフォルト値に設定するようになっている。なお、バックアップRAMは、EEPROM等の読み書き可能な不揮発性メモリであってもよい。電気制御装置70は、上述したセンサ等と接続され、CPUにそれらのセンサからの信号を供給するようになっている。更に、電気制御装置70は、CPUの指示に応じて、各気筒に対応して設けられた点火プラグ実際にはイグナイタ、各気筒に対応して設けられた燃料噴射弁33、及び、スロットル弁アクチュエータ等に駆動信号指示信号を送出するようになっている。なお、電気制御装置70は、取得されたアクセルペダルの操作量Accpが大きくなるほどスロットル弁開度TAが大きくなるように、スロットル弁アクチュエータに指示信号を送出するようになっている。即ち、電気制御装置70は、運転者により変更される機関10の加速操作量アクセルペダル操作量Accpに応じて機関10の吸気通路に配設されたスロットル弁32の開度を変更するスロットル弁駆動手段を備えている。また、機関10における点火順序は、例えば、第1気筒、第2気筒、第3気筒、第4気筒、第5気筒、第6気筒の順である。この点火順序に限定はされないが、機関10においては、第1気筒群右バンクに属する気筒の点火と第2気筒群左バンクに属する気筒の点火は交互に行われるようになっている。作動の概要次に、上記のように構成された第1制御装置の作動の概略について説明する。第1制御装置は、右バンクフィードバック制御条件が成立すると、右バンク用下流側空燃比センサ67Rの出力値Voxsに基いて右バンク用上流側触媒43が酸素過剰状態にあるか酸素不足状態にあるかを判定する。換言すると、出力値Voxsに基いて、右バンクに属する複数の気筒に対する空燃比要求右バンク空燃比要求がリッチ要求であるのかリーン要求であるのかを判定する。より具体的に述べると、第1制御装置は、出力値Voxsが増大している場合であってその変化量変化速度の大きさが右バンク用リッチ判定値右バンク用リーン要求判定値dRichRth以上となったとき、右バンク用上流側触媒43の状態が酸素不足状態リッチ状態にあり、従って、右バンクに対してリーン要求が発生したと判定する。更に、第1制御装置は、出力値Voxsが減少している場合であってその変化量変化速度の大きさが右バンク用リーン判定値右バンク用リッチ要求判定値dLeanRth以上となったとき、右バンク用上流側触媒43の状態が酸素過剰状態リーン状態にあり、従って、右バンクに対してリッチ要求が発生したと判定する。同様に、第1制御装置は、左バンクフィードバック制御条件が成立すると、左バンク用下流側空燃比センサ67Lの出力値Voxsに基いて左バンク用上流側触媒53が酸素過剰状態にあるか酸素不足状態にあるかを判定する。換言すると、出力値Voxsに基いて、左バンクに属する複数の気筒に対する空燃比要求左バンク空燃比要求がリッチ要求であるのかリーン要求であるのかを判定する。より具体的に述べると、第1制御装置は、出力値Voxsが増大している場合であってその変化量変化速度の大きさが左バンク用リッチ判定値左バンク用リーン要求判定値dRichLth以上となったとき、左バンク用上流側触媒53の状態が酸素不足状態リッチ状態にあり、従って、左バンクに対してリーン要求が発生したと判定する。更に、第1制御装置は、出力値Voxsが減少している場合であってその変化量変化速度の大きさが左バンク用リーン判定値左バンク用リッチ要求判定値dLeanLth以上となったとき、左バンク用上流側触媒53の状態が酸素過剰状態リーン状態にあり、従って、左バンクに対してリッチ要求が発生したと判定する。なお、リッチ要求が発生したと判定されてからリーン要求が発生したと判定されるまでの期間は、リッチ要求発生期間と称呼される。リーン要求が発生したと判定されてからリッチ要求が発生したと判定されるまでの期間は、リーン要求発生期間と称呼される。そして、第1制御装置は、右バンク空燃比要求に基いて、右バンクに属する複数の気筒に供給される混合気の空燃比右バンク空燃比の目標値右バンク目標空燃比abyfrRを決定し、実際の右バンク空燃比即ち、右バンク用上流側空燃比センサ66Rの出力値Vabyfsに基いて取得される右バンク上流側空燃比abyfsが右バンク目標空燃比abyfrRに一致するように、右バンク空燃比右バンクに属する複数の気筒に対する燃料噴射量を制御する。即ち、右バンクメインフィードバック制御を実行する。同様に、第1制御装置は、左バンク空燃比要求に基いて、左バンクに属する複数の気筒に供給される混合気の空燃比左バンク空燃比の目標値左バンク目標空燃比abyfrLを決定し、実際の左バンク空燃比即ち、左バンク用上流側空燃比センサ66Lの出力値Vabyfsに基いて取得される左バンク上流側空燃比abyfsが左バンク目標空燃比abyfrLに一致するように、左バンク空燃比左バンクに属する複数の気筒に対する燃料噴射量を制御する。即ち、左バンクメインフィードバック制御を実行する。この状態において、図5のAに示したように、右バンク目標空燃比abyfrR即ち、右バンク空燃比要求と左バンク目標空燃比abyfrL即ち、左バンク空燃比要求とが偶発的且つ実質的に同期すると、図1を参照して説明したように、機関10に振幅が大きく且つ周期が長い振動が発生する。但し、この場合、右バンク目標空燃比abyfrRの目標リッチ空燃比afRich及び目標リーン空燃比afLeanの間の切り替え周期と、左バンク目標空燃比abyfrLの目標リッチ空燃比afRich及び目標リーン空燃比afLeanの間の切り替え周期と、は本来は互いに相違する後述する非特定触媒に対応するバンクに対する目標空燃比の切り替え周期の方が長い。そこで、第1制御装置は、右バンク目標空燃比abyfrRと左バンク目標空燃比abyfrLとが実質的に同期しているか否かを判定する。更に、第1制御装置は、それらが同期していると判定したときこのタイミングを同期時と称呼する。、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRと左バンク用上流側触媒53の最大酸素吸蔵量CmaxLとのうち何れが大きいかを判定する。なお、右バンク用上流側触媒43と左バンク用上流側触媒53とのうち、最大酸素吸蔵量が小さい方の触媒を特定触媒と称呼する。右バンク用上流側触媒43と左バンク用上流側触媒53とのうち、最大酸素吸蔵量が大きい方の触媒を非特定触媒と称呼する。更に、特定触媒の下流の位置に配設されている下流側空燃比センサ右バンク用下流側空燃比センサ67R及び左バンク用下流側空燃比センサ67Lのうちの一方を選択下流側空燃比センサと称呼し、残りの下流側空燃比センサ非特定触媒の下流の位置に配設されている下流側空燃比センサを非選択下流側空燃比センサと称呼する。加えて、特定触媒に排ガスを供給しているバンクを特定バンク、特定バンクに属する複数の気筒を特定バンク気筒、非特定触媒に排ガスを供給しているバンクを非特定バンク、非特定バンクに属する複数の気筒を非特定バンク気筒と称呼する。そして、第1制御装置は、非特定バンク気筒に対するリッチ判定値を小さくするとともに、非特定バンク気筒に対するリーン判定値を小さくする。これにより、非特定バンクに対する空燃比要求非特定バンク上流側空燃比の切り替え周期が次第に短くなる。即ち、図5のBに示したように非特定バンク気筒図5の例においては左バンク気筒に対する目標空燃比の周期が次第に短くなる。この状態が継続すると、図5のCに示したように、特定バンクに対する目標空燃比図5の例においては右バンク目標空燃比abyfrRと非特定バンクに対する目標空燃比図5の例においては左バンク目標空燃比abyfrLとが、実質的に同じ周期周期の差が所定値以内であり、且つ、互いに逆相となるように変化するように変化する。即ち、特定バンクに対する目標空燃比がリーン空燃比からリッチ空燃比へと切り替わるタイミングにて非特定バンクに対する目標空燃比がリッチ空燃比からリーン空燃比へと切り替わり、特定バンクに対する目標空燃比がリッチ空燃比からリーン空燃比へと切り替わるタイミングにて非特定バンクに対する目標空燃比がリーン空燃比からリッチ空燃比へと切り替わる。このタイミングを逆相成立時と称呼する。また、同期時から逆相成立時までの制御非特定バンクに対する目標空燃比を特定バンクに対する目標空燃比と逆相になるようにする制御を逆相制御への移行制御と称呼する。逆相制御への移行制御時以降において、第1制御装置は、選択下流側空燃比センサの出力値に基いて特定触媒の状態を判定し即ち、特定バンクに対する空燃比要求を決定し、その特定触媒の状態その特定バンクに対する空燃比要求に基いて特定バンクの空燃比特定バンク気筒に対する燃料噴射量を制御する。更に、第1制御装置は、非特定バンクの目標空燃比が特定バンクの目標空燃比に対して理論空燃比を挟んで反対の空燃比になるように非特定バンクの目標空燃比を設定し、その設定された非特定バンクの目標空燃比に基いて非特定バンク空燃比非特定バンク気筒に対する燃料噴射量を制御する。即ち、第1制御装置は、特定バンクの目標空燃比がリッチ空燃比であれば非特定バンクの目標空燃比をリーン空燃比に設定し、特定バンクの目標空燃比がリーン空燃比であれば非特定バンクの目標空燃比をリッチ空燃比に設定する。この選択下流側空燃比センサの出力値に基く両バンクの空燃比制御を、逆相制御と称呼する図5のCを参照。。この結果、図1のBを参照して説明したように、機関10の振動は小さくなる。作動の詳細次に、上記のように構成された第1制御装置の作動の詳細について説明する。<右バンク燃料噴射制御>第1制御装置のCPUは、図6に示した右バンク燃料噴射制御ルーチンを、任意の気筒のクランク角が吸気上死点前の所定クランク角度例えば、BTDC90°CAとなる毎に繰り返し実行するようになっている。このクランク角が吸気上死点前の所定クランク角度に一致した気筒は燃料噴射気筒とも称呼される。従って、所定のタイミングになると、CPUはステップ600から処理を開始してステップ605に進み、燃料噴射気筒が右バンクに属する気筒右バンク気筒であるか否かを判定する。このとき、燃料噴射気筒が右バンク気筒でなければ、CPUはステップ605にてNoと判定し、ステップ695に直接進んで本ルーチンを一旦終了する。これに対し、燃料噴射気筒が右バンク気筒であると、CPUはステップ605にてYesと判定してステップ610に進み、エアフローメータ61により計測された吸入空気量Ga、クランクポジションセンサ64の信号に基いて取得された機関回転速度NE、及び、ルックアップテーブルMapMcに基いて燃料噴射気筒に吸入される空気量である筒内吸入空気量Mckを取得する。筒内吸入空気量Mckは、各吸気行程に対応されながらRAM内に記憶される。筒内吸入空気量Mckは、周知の空気モデルにより算出されてもよい。次に、CPUはステップ615に進み、右バンクフィードバック制御フラグXFBRの値が1であるか否かを判定する。この右バンクフィードバック制御フラグXFBRの値は、右バンクに対する空燃比のフィードバック制御条件が成立しているときに1に設定され、右バンクに対するフィードバック制御条件が成立していないときに0に設定される。更に、右バンクフィードバック制御フラグXFBRの値は、イニシャルルーチンにおいて0に設定されるようになっている。イニシャルルーチンは、機関10を搭載した車両のイグニッションキースイッチの位置がオフ位置からオン位置へと変更されたときにCPUにより実行される初期化ルーチンである。右バンクに対するフィードバック制御条件は、例えば、以下の総ての条件が成立したときに成立する。A1右バンク用上流側空燃比センサ66Rが活性化している。A2右バンク用下流側空燃比センサ67Rが活性化している。A3機関の負荷KLが閾値負荷KLfbth以下である。なお、負荷KLは、本例において負荷率充填率KLであり、下記の1式に基いて算出される。この1式において、ρは空気密度単位はg/l、Lは機関10の排気量単位はl、6は機関10の気筒数である。但し、負荷KLは、筒内吸入空気量Mc、スロットル弁開度TA及びアクセルペダル操作量Accp等であってもよい。KL={Mck/ρL/6}100...1右バンクフィードバック制御フラグXFBRの値が1でなければ、CPUはステップ615にてNoと判定してステップ620に進み、右バンク目標空燃比abyfrRを理論空燃比stoich例えば、14.6に設定する。次に、CPUは以下に述べるステップ625乃至ステップ640の処理を順に行い、ステップ695に進んで本ルーチンを一旦終了する。ステップ625:CPUは、筒内吸入空気量Mcを右バンク目標空燃比abyfrRで除することによって基本燃料噴射量Fbaseを算出する。ステップ630:CPUは、図示しないルーチンにより別途計算されている右バンクメインフィードバック量KFmainRを読み込む。右バンクメインフィードバック量KFmainRは右バンク上流側空燃比abyfs=右バンク検出空燃比abyfsが右バンク目標空燃比abyfrRに一致するように周知のPID制御に基づいて算出される。なお、右バンクメインフィードバック量KFmainRは、右バンクフィードバック制御フラグXFBRの値が0であるとき1に設定される。更に、右バンクメインフィードバック量KFmainRは常に1に設定されてもよい。即ち、右バンクメインフィードバック量KFmainRを用いたフィードバック制御は本実施形態において必須ではない。ステップ635:CPUは、基本燃料噴射量Fbaseを右バンクメインフィードバック量KFmainRにより補正することによって指示燃料噴射量Fiを算出する。より具体的に述べると、CPUは、基本燃料噴射量Fbaseに右バンクメインフィードバック量KFmainRを乗じることによって指示燃料噴射量Fiを算出する。ステップ640:CPUは、指示燃料噴射量Fiの燃料を燃料噴射気筒に対応して設けられている燃料噴射弁33から噴射させるための噴射指示信号を、その燃料噴射弁33に送出する。この結果、右バンク空燃比を右バンク目標空燃比abyfrRに一致させるために必要な量の燃料が燃料噴射気筒の燃料噴射弁33から噴射させられる。即ち、ステップ625乃至ステップ640は、右バンク空燃比が右バンク目標空燃比abyfrRに一致するように指示燃料噴射量Fiを制御する右バンク指示燃料噴射量制御手段を構成している。一方、CPUがステップ615の処理を行う時点において、右バンクフィードバック制御フラグXFBRの値が1であると、CPUはステップ615にてYesと判定してステップ645に進み、逆相制御実行フラグXgyakusoの値が0であるか否かを判定する。この逆相制御実行フラグXgyakusoの値は上述したイニシャルルーチンにおいて0に設定されるようになっている。更に、逆相制御実行フラグXgyakusoの値は後述するルーチンにより、逆相制御の実行が開始される時点にて1に設定される。いま、逆相制御実行フラグXgyakusoの値が0であると仮定する。この場合、CPUはステップ645にてYesと判定してステップ650に進み、右バンク触媒リーン状態表示フラグXLeanRに右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を格納する。右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値は、後述するルーチンにより右バンク用下流側空燃比センサ67Rの出力値Voxsに基いて設定される。即ち、フラグXCCLeanRの値は、右バンク用上流側触媒43の状態が酸素過剰状態であると判定されたとき1に設定され、右バンク用上流側触媒43の状態が酸素不足状態であると判定されたとき0に設定される。次に、CPUはステップ655に進み、右バンク触媒リーン状態表示フラグXLeanRの値が1であるか否かを判定する。即ち、この場合、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が1であるか否かが実質的に判定される。このとき、右バンク触媒リーン状態表示フラグXLeanRの値が1であると、CPUはステップ655にてYesと判定してステップ660に進み、右バンク目標空燃比abyfrRを目標リッチ空燃比afRich理論空燃比よりも小さい一定の空燃比、例えば、14.2に設定する。その後、CPUはステップ625以降に進む。従って、右バンク空燃比は目標リッチ空燃比afRichに一致させられる。これに対し、CPUがステップ655の処理を実行する時点において、右バンク触媒リーン状態表示フラグXLeanRの値が0であると、CPUはステップ655にてNoと判定してステップ665に進み、右バンク目標空燃比abyfrRを所定の目標リーン空燃比afLean理論空燃比よりも大きい一定の空燃比、例えば、15.0に設定する。その後、CPUはステップ625以降に進む。従って、右バンク空燃比は目標リーン空燃比afLeanに一致させられる。このように、逆相制御実行フラグXgyakusoの値が0であるとき、右バンク目標空燃比abyfrR従って、右バンクの空燃比は右バンク用上流側触媒43の状態を示すフラグXCCLeanRに基いて制御される。即ち、右バンク空燃比は、右バンク用下流側空燃比センサ67Rの出力値Voxsに基いて決定される右バンク用上流側触媒43の状態に応じて制御される。これに対し、CPUがステップ645の処理を実行する時点において、逆相制御実行フラグXgyakusoの値が1であると、CPUはそのステップ645にてNoと判定してステップ670に進み、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも小さいか否かを判定する。なお、最大酸素吸蔵量CmaxR及び最大酸素吸蔵量CmaxLは、後述するように周知の手法に基いて別途算出されている。このとき、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも小さいと、CPUはステップ670にてYesと判定してステップ650に進み、右バンク触媒リーン状態表示フラグXLeanRに右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を格納する。その結果、右バンク目標空燃比abyfrR従って、右バンクの空燃比は、最大酸素吸蔵量が小さい方の触媒である右バンク用上流側触媒43特定触媒の下流側空燃比センサ選択下流側空燃比センサである右バンク用下流側空燃比センサ67Rの出力値Voxsに基いて制御される。即ち、右バンクの空燃比は、特定触媒である右バンク用上流側触媒43の状態に基く空燃比要求に従って制御される。これに対し、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも大きいと、CPUはステップ670にてNoと判定してステップ675に進み、右バンク触媒リーン状態表示フラグXLeanRに左バンク用上流側触媒53の状態を示すフラグXCCLeanLの反転値を格納する。なお、任意のフラグXの反転値とは、フラグXが1であるとき0となり、フラグXが0であるとき1となる値である。この結果、右バンクの空燃比は、最大酸素吸蔵量が小さい方の触媒である左バンク用上流側触媒53特定触媒の下流側空燃比センサ選択下流側空燃比センサである左バンク用下流側空燃比センサ67Lの出力値Voxsに基いて制御される。即ち、右バンクの空燃比は、特定触媒である左バンク用上流側触媒53の状態に基く空燃比要求に従って制御される。一方、後述する図7のステップ770及びステップ750に示したように、この場合、左バンク触媒リーン状態表示フラグXLeanLに左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が設定される。その結果、右バンク目標空燃比abyfrRは左バンク目標空燃比abyfrLと逆相にて変化する。換言すると、右バンクの空燃比は、左バンク用上流側触媒53の状態に応じて制御される。<左バンク燃料噴射量制御>第1制御装置のCPUは、図7に示した左バンク燃料噴射制御ルーチンを、任意の気筒のクランク角が吸気上死点前の所定クランク角度例えば、BTDC90°CAとなる毎に繰り返し実行するようになっている。従って、所定のタイミングになると、CPUはステップ700から処理を開始してステップ705に進み、燃料噴射気筒が左バンクに属する気筒左バンク気筒であるか否かを判定する。このとき、燃料噴射気筒が左バンク気筒でなければ、CPUはステップ705にてNoと判定し、ステップ795に直接進んで本ルーチンを一旦終了する。これに対し、燃料噴射気筒が左バンク気筒であると、CPUはステップ705にてYesと判定してステップ710に進み、ステップ610と同様に筒内吸入空気量Mckを取得する。次に、CPUはステップ715に進み、左バンクフィードバック制御フラグXFBLの値が1であるか否かを判定する。この左バンクフィードバック制御フラグXFBLの値は、左バンクに対する空燃比のフィードバック制御条件が成立しているときに1に設定され、左バンクに対するフィードバック制御条件が成立していないときに0に設定される。更に、左バンクフィードバック制御フラグXFBLの値は、上述したイニシャルルーチンにおいて0に設定されるようになっている。左バンクに対するフィードバック制御条件は、例えば、以下の総ての条件が成立したときに成立する。A1左バンク用上流側空燃比センサ66Lが活性化している。A2左バンク用下流側空燃比センサ67Lが活性化している。A3機関の負荷KLが閾値負荷KLfbth以下である。左バンクフィードバック制御フラグXFBLの値が1でなければ、CPUはステップ715にてNoと判定してステップ720に進み、左バンク目標空燃比abyfrLを理論空燃比stoichに設定する。次に、CPUは以下に述べるステップ725乃至ステップ740の処理を順に行い、ステップ795に進んで本ルーチンを一旦終了する。ステップ725:CPUは、筒内吸入空気量Mcを左バンク目標空燃比abyfrLで除することによって基本燃料噴射量Fbaseを算出する。ステップ730:CPUは、図示しないルーチンにより別途計算されている左バンクメインフィードバック量KFmainLを読み込む。左バンクメインフィードバック量KFmainLは左バンク上流側空燃比abyfs=左バンク検出空燃比abyfsが左バンク目標空燃比abyfrLに一致するように周知のPID制御に基づいて算出される。なお、左バンクメインフィードバック量KFmainLは、左バンクフィードバック制御フラグXFBLの値が0であるとき1に設定される。更に、左バンクメインフィードバック量KFmainLは常に1に設定されてもよい。即ち、左バンクメインフィードバック量KFmainLを用いたフィードバック制御は本実施形態において必須ではない。ステップ735:CPUは、基本燃料噴射量Fbaseを左バンクメインフィードバック量KFmainLにより補正することによって指示燃料噴射量Fiを算出する。より具体的に述べると、CPUは、基本燃料噴射量Fbaseに左バンクメインフィードバック量KFmainLを乗じることによって指示燃料噴射量Fiを算出する。ステップ740:CPUは、指示燃料噴射量Fiの燃料を燃料噴射気筒に対応して設けられている燃料噴射弁33から噴射させるための噴射指示信号を、その燃料噴射弁33に送出する。この結果、左バンク空燃比を左バンク目標空燃比abyfrLに一致させるために必要な量の燃料が燃料噴射気筒の燃料噴射弁33から噴射させられる。即ち、ステップ725乃至ステップ740は、左バンク空燃比が左バンク目標空燃比abyfrLに一致するように指示燃料噴射量Fiを制御する左バンク指示燃料噴射量制御手段を構成している。一方、CPUがステップ715の処理を行う時点において、左バンクフィードバック制御フラグXFBLの値が1であると、CPUはステップ715にてYesと判定してステップ745に進み、逆相制御実行フラグXgyakusoの値が0であるか否かを判定する。いま、逆相制御実行フラグXgyakusoの値が0であると仮定する。この場合、CPUはステップ745にてYesと判定してステップ750に進み、左バンク触媒リーン状態表示フラグXLeanLに左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を格納する。左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値は、後述するルーチンにより左バンク用下流側空燃比センサ67Lの出力値Voxsに基いて設定される。即ち、フラグXCCLeanLの値は、左バンク用上流側触媒53の状態が酸素過剰状態であると判定されたとき1に設定され、左バンク用上流側触媒53の状態が酸素不足状態であると判定されたとき0に設定される。次に、CPUはステップ755に進み、左バンク触媒リーン状態表示フラグXLeanLの値が1であるか否かを判定する。即ち、この場合、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が1であるか否かが実質的に判定される。このとき、左バンク触媒リーン状態表示フラグXLeanLの値が1であると、CPUはステップ755にてYesと判定してステップ760に進み、左バンク目標空燃比abyfrLを目標リッチ空燃比afRichに設定する。その後、CPUはステップ725以降に進む。従って、左バンク空燃比は目標リッチ空燃比afRichに一致させられる。これに対し、CPUがステップ755の処理を実行する時点において、左バンク触媒リーン状態表示フラグXLeanLの値が0であると、CPUはステップ755にてNoと判定してステップ765に進み、左バンク目標空燃比abyfrLを目標リーン空燃比afLeanに設定する。その後、CPUはステップ725以降に進む。従って、左バンク空燃比は目標リーン空燃比afLeanに一致させられる。このように、逆相制御実行フラグXgyakusoの値が0であるとき、左バンク目標空燃比abyfrL従って、左バンクの空燃比は左バンク用上流側触媒53の状態を示すフラグXCCLeanLに基いて制御される。即ち、左バンク空燃比は、左バンク用下流側空燃比センサ67Lの出力値Voxsに基いて決定される左バンク用上流側触媒53の状態に応じて制御される。これに対し、CPUがステップ745の処理を実行する時点において、逆相制御実行フラグXgyakusoの値が1であると、CPUはそのステップ745にてNoと判定してステップ770に進み、左バンク用上流側触媒53の最大酸素吸蔵量CmaxLが右バンク用上流側触媒43の最大酸素吸蔵量CmaxRよりも小さいか否かを判定する。このとき、左バンク用上流側触媒53の最大酸素吸蔵量CmaxLが右バンク用上流側触媒43の最大酸素吸蔵量CmaxRよりも小さいと、CPUはステップ770にてYesと判定してステップ750に進み、左バンク触媒リーン状態表示フラグXLeanLに左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を格納する。その結果、左バンク目標空燃比abyfrL従って、左バンクの空燃比は、最大酸素吸蔵量が小さい方の触媒である左バンク用上流側触媒53特定触媒の下流側空燃比センサ選択下流側空燃比センサである左バンク用下流側空燃比センサ67Lの出力値Voxsに基いて制御される。即ち、左バンクの空燃比は、特定触媒である左バンク用上流側触媒53の状態に基く空燃比要求に従って制御される。これに対し、左バンク用上流側触媒53の最大酸素吸蔵量CmaxLが右バンク用触媒43の最大酸素吸蔵量CmaxRよりも大きいと、CPUはステップ770にてNoと判定してステップ775に進み、左バンク触媒リーン状態表示フラグXLeanLに右バンク用上流側触媒43の状態を示すフラグXCCLeanRの反転値を格納する。この結果、左バンクの空燃比は、最大酸素吸蔵量が小さい方の触媒である右バンク用上流側触媒43特定触媒の下流側空燃比センサ選択下流側空燃比センサである右バンク用下流側空燃比センサ67Rの出力値Voxsに基いて制御される。即ち、左バンクの空燃比は、特定触媒である右バンク用上流側触媒43の状態に基く空燃比要求に従って制御される。一方、この場合、前述した図6のステップ670及びステップ650に示したように、右バンク触媒リーン状態表示フラグXLeanRに右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が設定される。その結果、左バンク目標空燃比abyfrLは右バンク目標空燃比abyfrRと逆相にて変化する。即ち、左バンクの空燃比は、右バンク用上流側触媒43の状態に応じて制御される。<触媒状態判定>CPUは図8にフローチャートにより示した触媒状態判定ルーチン要求空燃比決定ルーチンを所定時間tsの経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ800から処理を開始してステップ810に進み、現時点の右バンク用下流側空燃比センサ67Rの出力値Voxsから前回の右バンク用下流側空燃比センサ67Rの出力値VoxsRoldを減じることにより、所定時間ts単位時間あたりの出力値Voxsの変化量ΔVoxsRを算出する。前回の出力値VoxsRoldは、次のステップ815にて更新される値であり、現時点から所定時間tsだけ前の時点の出力値Voxs本ルーチンが前回実行されたときの出力値Voxsである。変化量ΔVoxsRは変化速度ΔVoxsR第1下流側空燃比センサ出力相関値とも称呼される。次に、CPUはステップ815に進み、現時点の出力値Voxsを前回の出力値VoxsRoldとして記憶する。次に、CPUはステップ820に進み、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が1であるか否かを判定する。右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値は、上述したイニシャルルーチンにおいて1に設定されるようになっている。更に、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値は、後述するように、右バンク用下流側空燃比センサ67Rの出力値Voxsに基づいて触媒43の状態が酸素不足状態リッチ状態であると判定されたときに0に設定され、右バンク用下流側空燃比センサ67Rの出力値Voxsに基づいて触媒43の状態が酸素過剰状態リーン状態であると判定されたときに1に設定される。いま、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が1であると仮定する。この場合、CPUはステップ820にてYesと判定してステップ825に進み、変化速度ΔVoxsRが正であるか否かを判定する。即ち、CPUは、出力値Voxsが増大しているか否かを判定する。このとき、変化速度ΔVoxsRが正でなければ、CPUはステップ825にてNoと判定し、ステップ855に直接進む。これに対し、変化速度ΔVoxsRが正であると、CPUはステップ825にてYesと判定してステップ830に進み、変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リッチ判定値dRichRthよりも大きいか否かを判定する。このとき、大きさ|ΔVoxsR|が右バンク用リッチ判定値dRichRth以下であると、CPUはステップ830にてNoと判定し、ステップ855に直接進む。なお、右バンク用リッチ判定値dRichRthの値は、後述する図10のルーチンにより変更される。CPUがステップ830の処理を実行する時点において、変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リッチ判定値dRichRthよりも大きいと、CPUはそのステップ830にてYesと判定してステップ835に進み、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を0に設定する。即ち、出力値Voxsが増大していて且つその変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リッチ判定値dRichRthよりも大きい場合、CPUは右バンク用上流側触媒43の状態は酸素不足状態である。と判定し、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を0に設定する。この状態即ち、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が0に設定された状態において、CPUが所定時間ts後にステップ800から処理を再び開始すると、CPUはステップ810及びステップ815を経由してステップ820に進み、そのステップ820にてNoと判定してステップ840に進む。CPUは、ステップ840にて変化速度ΔVoxsRが負であるか否かを判定する。即ち、CPUは、出力値Voxsが減少しているか否かを判定する。このとき、変化速度ΔVoxsRが負でなければ、CPUはステップ840にてNoと判定し、ステップ855に直接進む。これに対し、変化速度ΔVoxsRが負であると、CPUはステップ840にてYesと判定してステップ845に進み、変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リーン判定値dLeanRthよりも大きいか否かを判定する。このとき、大きさ|ΔVoxsR|が右バンク用リーン判定値dLeanRth以下であると、CPUはステップ845にてNoと判定し、ステップ855に直接進む。なお、右バンク用リーン判定値dLeanRthの値は、後述する図10のルーチンにより変更される。これに対し、変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リーン判定値dLeanRthよりも大きいと、CPUはステップ845にてYesと判定してステップ850に進み、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を1に設定する。即ち、出力値Voxsが減少していて且つその変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リーン判定値dLeanRthよりも大きい場合、CPUは右バンク用上流側触媒43の状態が酸素過剰状態である。と判定し、右バンク用上流側触媒43の状態を示すフラグXCCLeanRを1に設定する。なお、CPUは、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が1である場合、出力値Voxsがリッチ判定閾値VRichthよりも大きくなったとき、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を0に設定してもよい。同様に、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が0である場合、出力値Voxsがリーン判定閾値VLeanthよりも小さくなったとき、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を1に設定してもよい。この場合、リッチ判定閾値VRichthは中央値Vmid以下の値であってもよい。リーン判定閾値VLeanthは中央値Vmid以上の値であってもよい。このように右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値は、右バンク用下流側空燃比センサ67Rの出力値Voxsに基づいて、1と0との何れかの値に交互に設定される。CPUは、図8のステップ855に進んだとき、現時点の左バンク用下流側空燃比センサ67Lの出力値Voxsから前回の左バンク用下流側空燃比センサ67Lの出力値VoxsLoldを減じることにより、所定時間ts単位時間あたりの出力値Voxsの変化量ΔVoxsLを算出する。前回の出力値VoxsLoldは、次のステップ860にて更新される値であり、現時点から所定時間tsだけ前の時点の出力値Voxs本ルーチンが前回実行されたときの出力値Voxsである。変化量ΔVoxsLは変化速度ΔVoxsL第2下流側空燃比センサ出力相関値とも称呼される。次に、CPUはステップ860に進み、現時点の出力値Voxsを前回の出力値VoxsLoldとして記憶する。次に、CPUはステップ865に進み、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が1であるか否かを判定する。左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値は、上述したイニシャルルーチンにおいて1に設定されるようになっている。更に、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値は、後述するように、左バンク用下流側空燃比センサ67Lの出力値Voxsに基づいて触媒53の状態が酸素不足状態リッチ状態であると判定されたときに0に設定され、左バンク用下流側空燃比センサ67Lの出力値Voxsに基づいて触媒53の状態が酸素過剰状態リーン状態であると判定されたときに1に設定される。いま、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が1であると仮定する。この場合、CPUはステップ865にてYesと判定してステップ870に進み、変化速度ΔVoxsLが正であるか否かを判定する。即ち、CPUは、出力値Voxsが増大しているか否かを判定する。このとき、変化速度ΔVoxsLが正でなければ、CPUはステップ870にてNoと判定し、ステップ895に直接進んで本ルーチンを一旦終了する。これに対し、変化速度ΔVoxsLが正であると、CPUはステップ870にてYesと判定してステップ875に進み、変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リッチ判定値dRichLthよりも大きいか否かを判定する。このとき、大きさ|ΔVoxsL|が左バンク用リッチ判定値dRichLth以下であると、CPUはステップ875にてNoと判定し、ステップ895に直接進んで本ルーチンを一旦終了する。なお、左バンク用リッチ判定値dRichLthの値は、後述する図10のルーチンにより変更される。CPUがステップ875の処理を実行する時点において、変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リッチ判定値dRichLthよりも大きいと、CPUはそのステップ875にてYesと判定してステップ880に進み、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を0に設定する。即ち、出力値Voxsが増大していて且つその変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リッチ判定値dRichLthよりも大きい場合、CPUは左バンク用上流側触媒53の状態は酸素不足状態である。と判定し、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を0に設定する。この状態即ち、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が0に設定された状態において、CPUが所定時間ts後にステップ865に進むと、CPUは、そのステップ865にてNoと判定してステップ885に進む。CPUは、ステップ885にて変化速度ΔVoxsLが負であるか否かを判定する。即ち、CPUは、出力値Voxsが減少しているか否かを判定する。このとき、変化速度ΔVoxsLが負でなければ、CPUはステップ885にてNoと判定し、ステップ895に直接進んで本ルーチンを一旦終了する。これに対し、変化速度ΔVoxsLが負であると、CPUはステップ885にてYesと判定してステップ890に進み、変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リーン判定値dLeanLthよりも大きいか否かを判定する。このとき、大きさ|ΔVoxsL|が左バンク用リーン判定値dLeanLth以下であると、CPUはステップ890にてNoと判定し、ステップ895に直接進んで本ルーチンを一旦終了する。なお、左バンク用リーン判定値dLeanLthの値は、後述する図10のルーチンにより変更される。これに対し、変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リーン判定値dLeanLthよりも大きいと、CPUはステップ890にてYesと判定してステップ892に進み、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を1に設定する。即ち、出力値Voxsが減少していて且つその変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リーン判定値dLeanLthよりも大きい場合、CPUは左バンク用上流側触媒53の状態が酸素過剰状態である。と判定し、左バンク用上流側触媒53の状態を示すフラグXCCLeanLを1に設定する。なお、CPUは、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が1である場合、出力値Voxsがリッチ判定閾値VRichthよりも大きくなったとき、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を0に設定してもよい。同様に、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が0である場合、出力値Voxsがリーン判定閾値VLeanthよりも小さくなったとき、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を1に設定してもよい。このように左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値は、左バンク用下流側空燃比センサ67Lの出力値Voxsに基づいて、1と0との何れかの値に交互に設定される。<非許容振動発生判定>CPUは図9にフローチャートにより示した非許容振動発生判定ルーチンを所定時間tsの経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ900から処理を開始してステップ910に進み、逆相制御実行フラグXgyakusoの値が0か否かを判定する。このとき、逆相制御実行フラグXgyakusoの値が1であると、CPUはステップ910にてNoと判定し、ステップ995に直接進んで本ルーチンを一旦終了する。これに対し、逆相制御実行フラグXgyakusoの値が0であると、CPUはステップ910にてYesと判定してステップ920に進み、逆相制御移行要求フラグXshiftの値が0であるか否かを判定する。この逆相制御移行要求フラグXshiftの値は上述したイニシャルルーチンにおいて0に設定されるようになっている。更に、逆相制御移行要求フラグXshiftの値は後述するルーチンにより、逆相制御への移行制御を実行する必要が生じた場合非許容振動発生が発生していると判定された場合に1に設定される。このとき、逆相制御移行要求フラグXshiftの値が1であると、CPUはステップ920にてNoと判定し、ステップ995に直接進んで本ルーチンを一旦終了する。これに対し、逆相制御移行要求フラグXshiftの値が0であると、CPUはステップ920にてYesと判定してステップ930に進み、右バンク用上流側触媒43の状態を示すフラグXCCLeanRが1から0へと変化した最新のタイミング第1タイミングと左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が1から0へと変化した最新のタイミング第2タイミングとの時間差が極めて小さい所定値である閾値時間例えば、実質的に0に近い値Tth以内であるか否かを判定する。即ち、CPUは、第1タイミングと第2タイミングとが同期しているか否かを判定する。このとき、第1タイミングと第2タイミングとが同期していなければ、CPUはステップ930にてNoと判定し、ステップ995に直接進んで本ルーチンを一旦終了する。これに対し、第1タイミングと第2タイミングとが同期していると、CPUはステップ930にてYesと判定してステップ940に進み、右バンク用上流側触媒43の状態を示すフラグXCCLeanRが0から1へと変化した最新のタイミング第3タイミングと左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が0から1へと変化した最新のタイミング第4タイミングとの時間差が極めて小さい所定値である閾値時間例えば、実質的に0に近い値Tth以内であるか否かを判定する。即ち、CPUは、第3タイミングと第4タイミングとが同期しているか否かを判定する。このとき、第3タイミングと第4タイミングとが同期していなければ、CPUはステップ940にてNoと判定し、ステップ995に直接進んで本ルーチンを一旦終了する。これに対し、第3タイミングと第4タイミングとが同期していると、CPUはステップ940にてYesと判定してステップ950に進み、触媒状態の切替わり周期相関時間目標空燃比周期相関時間を取得する。より具体的に述べると、CPUは、右バンク用上流側触媒43の状態を示すフラグXCCLeanRが1から0へと変化した最新のタイミング第1タイミングからフラグXCCLeanRが0から1へと変化した最新のタイミング第3タイミングまでの時間を触媒状態の切替わり周期相関時間Tとして取得する。なお、CPUは、第3タイミングから第1タイミングまでの時間、前回の第1タイミングから今回の第1タイミングまでの時間、前回の第3タイミングから今回の第3タイミングまでの時間、第2タイミングから第4タイミングまでの時間、第4タイミングから第2タイミングまでの時間、前回の第2タイミングから今回の第2タイミングまでの時間、及び、前回の第4タイミングから今回の第4タイミングまでの時間、を触媒状態の切替わり周期相関時間Tとして取得してもよい。次いで、CPUはステップ960に進み、空燃比差ΔAFに基づいてトルク段差ΔTqを取得する。空燃比差ΔAFは、目標リーン空燃比afLeanと目標リッチ空燃比afRichとの差の大きさである。トルク段差ΔTqは、ある気筒に供給される混合気の空燃比が目標リッチ空燃比afRichに一致している場合にその気筒における燃焼により発生する機関10の発生トルクから、ある気筒に供給される混合気の空燃比が目標リーン空燃比afLeanに一致している場合にその気筒における燃焼により発生する機関10の発生トルクを、減じた値である図1のAを参照。。トルク段差ΔTqは、図9のブロックB1内に示したように、空燃比差ΔAFが大きいほど大きい値となるように求められる。なお、本実施形態において、目標リーン空燃比afLeanは一定値でり、且つ、目標リッチ空燃比afRichは一定値である。従って、空燃比差ΔAFは一定値であるので、ステップ960は省略され得る。即ち、CPUは、ステップ960にて、予めROMに記憶しているトルク段差ΔTqを読み込んでもよい。次に、CPUはステップ970に進み、ステップ950にて取得された周期相関時間Tと、ステップ960にて取得されたトルク段差ΔTqと、に基いて、現時点において許容し難い振動非許容振動が発生しているか否かを判定する。より具体的に述べると、CPUは、図9のブロックB2内に示したマップを記憶している。このマップは、周期相関時間Tとトルク段差ΔTqとの組み合わせにより表される領域を、非許容振動発生領域と非許容振動非発生領域とに区分している。CPUは、このマップにステップ950にて取得された周期相関時間Tと、ステップ960にて取得されたトルク段差ΔTqと、を適用することにより、現時点の周期相関時間T及びトルク段差ΔTqが非許容振動発生領域内にあるか否かを判定することにより、非許容振動が発生しているか否かを判定する。このマップによれば、周期相関時間Tが大きくなるほど、より小さいトルク段差ΔTqにて非許容振動が発生すると判定される。なお、本例において、空燃比差ΔAFは一定値であるから、ステップ970は、周期相関時間Tが許容閾値時間以上であるか否かを判定するステップに置換され得る。そして、CPUはステップ970にて非許容振動が発生していると判定した場合、ステップ980に進んで逆相制御移行要求フラグXshiftの値を1に設定し、その後、ステップ995に進んで本ルーチンを一旦終了する。これに対し、CPUはステップ970にて非許容振動が発生していないと判定した場合、ステップ990に進んで逆相制御移行要求フラグXshiftの値を0に設定し、その後、ステップ995に進んで本ルーチンを一旦終了する。このように、CPUは、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値の変化と、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値の変化と、が偶発的且つ実質的に同期している場合であり、且つ、非許容振動が発生していると判定した場合、逆相制御移行要求フラグXshiftの値を1に設定する。なお、フラグXCCLeanRの値の位相と、フラグXCCLeanLの値の位相と、は特別の処理を行わない場合であっても、時間の経過に応じて次第に異なる位相に変化する同期状態が次第に崩れる。<閾値設定>CPUは図10にフローチャートにより示した閾値設定ルーチンを所定時間tsの経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ1000から処理を開始してステップ1010に進み、逆相制御実行フラグXgyakusoの値が0か否かを判定する。いま、逆相制御実行フラグXgyakusoの値が0であり、且つ、逆相制御移行要求フラグXshiftの値も0であると仮定する。この場合、CPUはステップ1010にてYesと判定してステップ1020に進み、逆相制御移行要求フラグXshiftの値が0であるか否かを判定する。更に、この場合、CPUはステップ1020にてYesと判定してステップ1030に進み、以下に述べるの処理を行い、その後、ステップ1095に進んで本ルーチンを一旦終了する。なお、CPUは、逆相制御実行フラグXgyakusoの値が1である場合にも、ステップ1010からステップ1030に直接進む。CPUは、右バンク用リッチ判定値dRichRthに基準右バンク用リッチ判定値dRichRth0を格納する。CPUは、右バンク用リーン判定値dLeanRthに基準右バンク用リーン判定値dLeanRth0を格納する。CPUは、左バンク用リッチ判定値dRichLthに基準左バンク用リッチ判定値dRichLth0を格納する。CPUは、左バンク用リーン判定値dLeanLthに基準左バンク用リーン判定値dLeanLth0を格納する。この状態において、非許容振動が発生していると判定され、それにより、逆相制御移行要求フラグXshiftの値が1に設定されると、CPUはステップ1020に進んだとき、そのステップ1020にてNoと判定してステップ1040に進み、右バンク用上流側触媒43の右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも大きいか否かを判定する。なお、右バンク用上流側触媒43及び左バンク用上流側触媒53の各最大酸素吸蔵量は周知の手法により別途取得される。例えば、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRは、右バンク用上流側触媒43の状態が酸素不足状態であると判定された時点において右バンク目標空燃比abyfrRを所定のリーン空燃比に設定し、その後に右バンク上流側空燃比abyfsと理論空燃比stoichとの差に基いて酸素の過不足量ΔO2ΔO2=kmfrabyfs-stoichを所定時間の経過毎に求めkは大気中の酸素の比率であり0.23、mfrはその所定時間に右バンク気筒に供給された燃料量、その過不足量ΔO2を右バンク用上流側触媒43の状態が酸素過剰状態であると判定される時点まで積算することにより求められる。このとき、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも大きいと、CPUはステップ1040にてYesと判定してステップ1050に進み、基準右バンク用リッチ判定値dRichRth0から正の所定値微小な値Aを減じた値を新たな右バンク用リッチ判定値dRichRthに設定する。更に、CPUは、ステップ1050にて、基準右バンク用リーン判定値dLeanRth0から正の所定値微小な値Bを減じた値を新たな右バンク用リーン判定値dLeanRthに設定する。この結果、図8のステップ830及びステップ845でのYesとの判定が、右バンク用リーン判定値dLeanRthが基準右バンク用リーン判定値dLeanRth0に設定され、且つ、右バンク用リッチ判定値dRichRthが基準右バンク用リッチ判定値dRichRth0に設定されている場合よりも早期に発生する。従って、右バンクに対する目標空燃比の変化量ΔVoxsR、及び、出力値Voxsの変化量ΔVoxsL、のうちの選択下流側空燃比センサに対応する方と所定のリーン要求判定値右バンク用リッチ判定値dRichRth及び左バンク用リッチ判定値dRichLthのうちの選択下流側空燃比センサに対応する方との比較の結果に基づいて同特定触媒に対するリーン要求が発生したか否かを判定するとともに、前記選択下流側空燃比センサ出力相関値と所定のリッチ要求判定値右バンク用リーン判定値dLeanRth及び左バンク用リーン判定値dLeanLthのうちの選択下流側空燃比センサに対応する方との比較に基づいて前記特定触媒に対するリッチ要求が発生したか否かを判定し図8を参照。、前記リーン要求が発生したと判定された時点から前記リッチ要求が発生したと判定される時点までのリーン要求発生期間において前記特定触媒に排ガスを排出する前記第1気筒群及び前記第2気筒群のうちの一方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御するとともに前記第1気筒群及び前記第2気筒群のうちの他方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御し図6のステップ645、ステップ670、ステップ650、ステップ675、及び、ステップ655乃至ステップ665、並びに、図7のステップ745、ステップ770、ステップ750、ステップ775、及び、ステップ755乃至ステップ765を特に参照。、前記リッチ要求が発生したと判定された時点から前記リーン要求が発生したと判定される時点までのリッチ要求発生期間において前記特定触媒に排ガスが供給される前記第1気筒群及び前記第2気筒群のうちの一方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御するとともに前記第1気筒群及び前記第2気筒群のうちの他方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御する図6のステップ645、ステップ670、ステップ650、ステップ675、及び、ステップ655乃至ステップ665、並びに、図7のステップ745、ステップ770、ステップ750、ステップ775、及び、ステップ755乃至ステップ765を特に参照。、空燃比制御手段、を備える。従って、最大酸素吸蔵量が小さい方の触媒特定触媒の下流側空燃比センサの出力値に基づいて、即ち、特定触媒の状態特定触媒に対する空燃比要求に応じて、特定触媒に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比が制御される。よって、前記特定触媒に排ガスを供給する気筒群から排出される排ガスは前記特定触媒により浄化され得る。加えて、最大酸素吸蔵量が大きい方の触媒非特定触媒に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比は、その切替周期が最大酸素吸蔵量が小さい方の触媒である前記特定触媒の状態前記特定触媒に対する空燃比要求の変化の周期と一致し、且つ、特定触媒に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比と逆位相となるように制御される。このため、非特定触媒の酸素吸蔵量は、0よりも大きく非特定触媒の最大酸素吸蔵量よりも小さい範囲内で変化する。その結果、前記非特定触媒に排ガスを供給する気筒群から排出される排ガスも前記非特定触媒により浄化され得る。更に、機関10の発生するトルクが短期間内において変動するようになるので、結果として、不快な振動が発生することを回避することができる。<第2実施形態>次に、本発明の第2実施形態に係る内燃機関の制御装置以下、第2制御装置とも称呼する。について説明する。第2制御装置は、同期時に逆相制御移行制御を開始し、その後は、逆相制御へと移行することなく、逆相制御移行制御を継続する装置である。これによれば、不快な振動を短期間内に消滅させることができる。但し、第1制御装置と異なり、その後、再び右バンク目標空燃比abyfrRと左バンク目標空燃比abyfrLとが同期し、不快な振動が発生する場合が生じる。以上、説明したように、本発明に係る空燃比制御装置の各実施形態によれば、機関10及び機関10を搭載した車両に発生する不快な振動を、エミッションを悪化させることなく短期間内に消滅させることができる。なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。また、第1制御装置及び第2制御装置の空燃比制御手段は、前記第1下流側空燃比センサの出力値に相関を有する値である第1下流側空燃比センサ出力相関値と所定のリーン要求判定値との比較の結果に基づいて第1触媒に対するリーン要求が発生したか否かを判定するとともに、前記第1下流側空燃比センサ出力相関値と所定のリッチ要求判定値との比較に基づいて前記第1触媒に対するリッチ要求が発生したか否かを判定し、前記第1触媒に対するリーン要求が発生したと判定された時点から前記第1触媒に対するリッチ要求が発生したと判定される時点までの第1触媒リーン要求発生期間において前記第1気筒群に属する複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御し、前記第1触媒に対するリッチ要求が発生したと判定された時点から前記第1触媒に対するリーン要求が発生したと判定される時点までの第1触媒リッチ要求発生期間において前記第1気筒群に属する複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御し、前記第2下流側空燃比センサの出力値に相関を有する値である第2下流側空燃比センサ出力相関値と所定のリーン要求判定値との比較の結果に基づいて第2触媒に対するリーン要求が発生したか否かを判定するとともに、前記第2下流側空燃比センサ出力相関値と所定のリッチ要求判定値との比較に基づいて前記第2触媒に対するリッチ要求が発生したか否かを判定し、前記第2触媒に対するリーン要求が発生したと判定された時点から前記第2触媒に対するリッチ要求が発生したと判定される時点までの第2触媒リーン要求発生期間において前記第2気筒群に属する複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御し、前記第2触媒に対するリッチ要求が発生したと判定された時点から前記第2触媒に対するリーン要求が発生したと判定される時点までの第2触媒リッチ要求発生期間において前記第2気筒群に属する複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御し、前記第1触媒リッチ要求発生期間と前記第2触媒リッチ要求発生期間とが同期したことを条件として前記非許容振動が発生すると判定し、前記逆相制御への移行制御を開始するように構成されていると言うこともできる。この場合、前記移行制御は、最大酸素吸蔵量が大きい方の触媒に対して排ガスを供給している気筒群についての前記リッチ要求判定値及び前記リーン要求判定値を、前記移行制御開始前の前記リッチ要求判定値及び前記リーン要求判定値のそれぞれよりも小さい値に設定する制御であると言うこともできる。"