"内燃機関の排気通路に配設された三元触媒と、前記排気通路の前記三元触媒よりも下流に配設された濃淡電池型の酸素濃度センサである下流側空燃比センサと、前記下流側空燃比センサの出力値に基づいて前記三元触媒に流入するガスである触媒流入ガスの空燃比を変更するように前記機関に供給される混合気の空燃比をフィードバック制御する空燃比制御手段と、を備えた内燃機関の空燃比制御装置において、前記空燃比制御手段は、前記三元触媒から所定量以上の一酸化炭素が漏出する状態である一酸化炭素漏出状態となったか否かを前記機関の運転状態を示すパラメータに基づいて判定する判定手段と、前記下流側空燃比センサの出力値の極大値を取得する極大値取得手段と、前記一酸化炭素漏出状態となったと判定された後に前記極大値取得手段により最初に取得された極大値が、前記下流側空燃比センサの出力値の最大値よりも第1所定値だけ小さい高側閾値と、前記高側閾値よりも第2所定値だけ小さい低側閾値と、の間の値であったとき、前記最初に取得された極大値の発生時点から所定の条件が成立する時点までの特定期間において前記空燃比のフィードバック制御により得られる前記触媒流入ガスの空燃比の平均が、前記特定期間以外の期間において前記下流側空燃比センサの出力値が前記特定期間の下流側空燃比センサの出力値と同じであったとした場合に同特定期間以外の期間において前記空燃比のフィードバック制御により得られる前記触媒流入ガスの空燃比の平均よりも大きくなるように、前記空燃比のフィードバック制御を変更する制御変更手段と、を含む空燃比制御装置。請求項1に記載の内燃機関の空燃比制御装置において、前記判定手段は、前記排気通路の前記三元触媒よりも上流に配設された上流側空燃比センサを含み、前記上流側空燃比センサの出力値に基づいて検出された上流側空燃比が理論空燃比よりも小さい所定の空燃比以下となったとき、前記一酸化炭素漏出状態となったと判定するように構成された空燃比制御装置。請求項1又は請求項2に記載の内燃機関の空燃比制御装置において、前記空燃比制御手段は、前記下流側空燃比センサの出力値がリッチ判定閾値以上となったときに前記触媒流入ガスの空燃比が理論空燃比よりも大きい空燃比であるリーン空燃比となり、且つ、前記下流側空燃比センサの出力値が前記リッチ判定閾値以下のリーン判定閾値以下となったとき前記触媒流入ガスの空燃比が理論空燃比よりも小さい空燃比であるリッチ空燃比となるように、前記空燃比のフィードバック制御を行うように構成され、前記制御変更手段は、前記特定期間の開始後において前記リーン判定閾値を前記特定期間以外の期間における値よりも小さい値に設定するように構成された空燃比制御装置。請求項1又は請求項2に記載の内燃機関の空燃比制御装置において、前記空燃比制御手段は、前記下流側空燃比センサの出力値がリッチ判定閾値以上となったときに前記触媒流入ガスの空燃比が理論空燃比よりも大きい空燃比である第1リーン空燃比となり、且つ、前記下流側空燃比センサの出力値が前記リッチ判定閾値以下のリーン判定閾値以下となったとき前記触媒流入ガスの空燃比が理論空燃比よりも小さい空燃比である第1リッチ空燃比となるように、前記空燃比フィードバック制御を行うように構成され、前記制御変更手段は、前記特定期間において前記下流側空燃比センサの出力値が前記リーン判定閾値以下となったとき、前記触媒流入ガスの空燃比が前記第1リッチ空燃比よりも大きく且つ理論空燃比よりも小さい空燃比である第2リッチ空燃比になるように前記空燃比のフィードバック制御を変更するように構成された空燃比制御装置。以下、本発明の各実施形態に係る内燃機関の空燃比制御装置について図面を参照しながら説明する。<第1実施形態>構成図1は、本発明の第1実施形態に係る空燃比制御装置以下、第1制御装置とも称呼する。が適用される内燃機関10の概略構成を示している。機関10は、4サイクル火花点火式多気筒本例において4気筒ガソリン燃料機関である。機関10は、本体部20、吸気系統30及び排気系統40を備えている。本体部20は、シリンダブロック部とシリンダヘッド部とを備えている。本体部20は、ピストン頂面、シリンダ壁面及びシリンダヘッド部の下面からなる複数4個の燃焼室第1気筒1乃至第4気筒421を備えている。シリンダヘッド部には、各燃焼室各気筒21に空気及び燃料からなる混合気を供給するための吸気ポート22と、各燃焼室21から排ガス既燃ガスを排出するための排気ポート23と、が形成されている。吸気ポート22は図示しない吸気弁により開閉され、排気ポート23は図示しない排気弁により開閉されるようになっている。シリンダヘッド部には複数4個の点火プラグ24が固定されている。各点火プラグ24は、その火花発生部が各燃焼室21の中央部であってシリンダヘッド部の下面近傍位置に露呈するように配設されている。各点火プラグ24は、点火信号に応答して火花発生部から点火用火花を発生するようになっている。シリンダヘッド部には更に複数4個の燃料噴射弁インジェクタ25が固定されている。燃料噴射弁25は、各吸気ポート22に一つずつ即ち、一つの気筒に対して一つ設けられている。燃料噴射弁25は、噴射指示信号に応答し、その噴射指示信号に含まれる指示噴射量の燃料を対応する吸気ポート22内に噴射するようになっている。更に、シリンダヘッド部には、吸気弁制御装置26が設けられている。この吸気弁制御装置26は、インテークカムシャフト図示せずとインテークカム図示せずとの相対回転角度位相角度を油圧により調整制御する周知の構成を備えている。吸気弁制御装置26は、指示信号駆動信号に基いて作動し、吸気弁の開弁タイミング吸気弁開弁タイミングを変更することができるようになっている。吸気系統30は、インテークマニホールド31、吸気管32、エアフィルタ33、スロットル弁34及びスロットル弁アクチュエータ34aを備えている。インテークマニホールド31は、各吸気ポート22に接続された複数の枝部と、それらの枝部が集合したサージタンク部と、を備えている。吸気管32はサージタンク部に接続されている。インテークマニホールド31、吸気管32及び複数の吸気ポート22は、吸気通路を構成している。エアフィルタ33は吸気管32の端部に設けられている。スロットル弁34はエアフィルタ33とインテークマニホールド31との間の位置において吸気管32に回動可能に取り付けられている。スロットル弁34は、回動することにより吸気管32が形成する吸気通路の開口断面積を変更するようになっている。スロットル弁アクチュエータ34aは、DCモータからなり、指示信号駆動信号に応答してスロットル弁34を回動させるようになっている。排気系統40は、エキゾーストマニホールド41、エキゾーストパイプ排気管42、上流側触媒43及び下流側触媒44を備えている。エキゾーストマニホールド41は、各排気ポート23に接続された複数の枝部41aと、それらの枝部41aが集合した集合部排気集合部41bと、からなっている。エキゾーストパイプ42は、エキゾーストマニホールド41の集合部41bに接続されている。エキゾーストマニホールド41、エキゾーストパイプ42及び複数の排気ポート23は、排ガスが通過する通路を構成している。なお、本明細書において、エキゾーストマニホールド41の集合部41b及びエキゾーストパイプ42により形成される通路を、便宜上、排気通路と称呼する。上流側触媒43は、セラミックからなる担持体に触媒物質である貴金属パラジウムPd及び白金Pt、ロジウムRd等及び酸素吸蔵材であるセリアCeO2を担持していて、酸素吸蔵放出機能酸素吸蔵機能を有する三元触媒である。上流側触媒43はエキゾーストパイプ42に配設介装されている。上流側触媒43は所定の活性温度に到達すると、未燃物HC、CO及びH2等と窒素酸化物NOxとを同時に浄化する触媒機能及び酸素吸蔵機能を発揮する。上流側触媒43は、スタートキャタリティックコンバータSC又は第1触媒とも称呼される。下流側触媒44は、上流側触媒43と同様の三元触媒である。下流側触媒44は、上流側触媒43よりも下流においてエキゾーストパイプ42に配設介装されている。下流側触媒44は、車両のフロア下方に配設されているため、アンダフロアキャタリティックコンバータUFC又は第2触媒とも称呼される。なお、本明細書において、単に触媒と言うとき、その触媒は上流側触媒43を意味する。本制御装置は、熱線式エアフローメータ51、スロットルポジションセンサ52、機関回転速度センサ53、水温センサ54、上流側空燃比センサ55、下流側空燃比センサ56及びアクセル開度センサ57を備えている。熱線式エアフローメータ51は、吸気管32内を流れる吸入空気の質量流量を検出し、その質量流量機関10の単位時間あたりの吸入空気量Gaを表す信号を出力するようになっている。スロットルポジションセンサ52は、スロットル弁34の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。機関回転速度センサ53は、インテークカムシャフトが5°回転する毎に幅狭のパルスを有するとともにインテークカムシャフトが360°回転する毎に幅広のパルスを有する信号を出力するようになっている。機関回転速度センサ53から出力される信号は後述する電気制御装置60により機関回転速度NEを表す信号に変換されるようになっている。更に、電気制御装置60は、機関回転速度センサ53及び図示しないクランク角センサからの信号に基いて、機関10のクランク角度絶対クランク角を取得するようになっている。水温センサ54は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。上流側空燃比センサ55は、エキゾーストマニホールド41の集合部41bと上流側触媒43との間の位置においてエキゾーストマニホールド41及びエキゾーストパイプ42の何れか即ち、排気通路に配設されている。上流側空燃比センサ55は、例えば、特開平11-72473号公報、特開2000-65782号公報及び特開2004-69547号公報等に開示された拡散抵抗層を備える限界電流式広域空燃比センサである。上流側空燃比センサ55は、上流側空燃比センサ55の配設位置を流れる排ガスの空燃比触媒43に流入するガスである触媒流入ガスの空燃比、上流側空燃比abyfsに応じた出力値Vabyfsを出力する。出力値Vabyfsは触媒流入ガスの空燃比が大きくなるほど即ち、触媒流入ガスの空燃比がリーン側の空燃比になるほど増大する。電気制御装置60は、出力値Vabyfsと上流側空燃比abyfsとの関係を規定した空燃比変換テーブルマップMapabyfsを記憶している。電気制御装置60は、出力値Vabyfsを空燃比変換テーブルMapabyfsに適用することにより、実際の上流側空燃比abyfsを検出する検出上流側空燃比abyfsを取得するようになっている。下流側空燃比センサ56は、上流側触媒43と下流側触媒44との間の位置においてエキゾーストパイプ42即ち、排気通路に配設されている。下流側空燃比センサ56は、周知の濃淡電池型の酸素濃度センサO2センサである。下流側空燃比センサ56は、図2のAに示した試験管状の素子部を備える。素子部は、図2のBに示したように、固体電解質層56aと、固体電解質層56aの外側に形成された排ガス側電極層56bと、基準ガスとしての大気が導入される大気室AR固体電解質層56aの内側に露呈し且つ固体電解質層56aを挟んで排ガス側電極層56bと対向するように固体電解質層56aの内側に形成された大気側電極層56cと、排ガス側電極層56bを覆う拡散層56dと、その拡散層56dを覆う触媒層56eと、触媒層56eを覆うとともに排ガスが接触する図示しない保護カバーの貫通孔を通過して保護カバー内に流入した排ガス中に晒されるように配置される保護層トラップ層56fを備える。なお、固体電解質層56a等は板状であってもよい。触媒43から流出ガス触媒流出ガスExは、図示しない保護カバーの貫通孔を通過してその保護カバー内に流入し、次いで、保護層56f、触媒層56e及び拡散層56dを通過して排ガス側電極層56bに到達する。固体電解質層56aは、その排ガス側電極層56bに到達したガスの酸素分圧と、大気側電極層56cに到達している大気の酸素分圧と、の差に応じた起電力を、下流側空燃比センサ56の出力値Voxsとして発生する。即ち、下流側空燃比センサ56の出力値Voxsは、図3に示したように、触媒流出ガス被検出ガスの空燃比が理論空燃比よりもリッチ側の空燃比であって、触媒流出ガスの酸化平衡後のガスの酸素分圧が小さく且つ触媒流出ガス中に多量の還元成分未燃物が含まれているとき、最大値Vmax例えば、約0.9~1.0Vとなる。加えて、出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリーン側の空燃比であって、触媒流出ガスの酸化平衡後のガスの酸素分圧が大きいとき触媒流出ガス中に多量の酸素が含まれているとき、最小値Vmin例えば、約0~0.1Vとなる。更に、この出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリッチ側の空燃比からリーン側の空燃比へと変化する際に最大値Vmaxから最小値Vminへと急激に減少する。逆に、出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリーン側の空燃比からリッチ側の空燃比へと変化する際に最小値Vminから最大値Vmaxへと急激に増大する。なお、最小値Vminと最大値Vmaxとの平均値は中央値Vmid=VmaxVmin/2又は理論空燃比相当電圧Vstと称呼される。図1に示したアクセル開度センサ57は、運転者によって操作されるアクセルペダルAPの操作量を検出し、アクセルペダルAPの操作量Accpを表す信号を出力するようになっている。電気制御装置60は、CPU、ROM、RAM、バックアップRAM、並びに、ADコンバータを含むインターフェース等からなる周知のマイクロコンピュータを含む電子回路である。電気制御装置60が備えるバックアップRAMは、機関10を搭載した車両の図示しないイグニッションキースイッチの位置オフ位置、始動位置及びオン位置等の何れかに関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップRAMは、バッテリから電力の供給を受けている場合、CPUの指示に応じてデータを格納するデータが書き込まれるとともに、そのデータを読み出し可能となるように保持記憶する。バックアップRAMは、バッテリが車両から取り外される等によりバッテリからの電力供給が遮断されると、データを保持することができない。即ち、それまでに保持していたデータが消失破壊される。電気制御装置60のインターフェースは、前記センサ51~57と接続され、CPUにセンサ51~57からの信号を供給するようになっている。更に、そのインターフェースは、CPUの指示に応じて、各気筒の点火プラグ24、各気筒の燃料噴射弁25、吸気弁制御装置26及びスロットル弁アクチュエータ34a等に指示信号駆動信号等を送出するようになっている。なお、電気制御装置60は、取得されたアクセルペダルの操作量Accpが大きくなるほどスロットル弁開度TAが大きくなるように、スロットル弁アクチュエータ34aに指示信号を送出するようになっている。第1制御装置による空燃比のフィードバック制御の概要第1制御装置は、以下のように触媒43の状態酸素吸蔵状態を判定するとともに、判定された触媒43の状態に基づいて触媒43に流入する排ガス触媒流入ガスの空燃比従って、機関10に供給される混合気の空燃比をフィードバック制御する。触媒43の状態は、触媒43が酸素をその最大酸素吸蔵量に近い値まで吸蔵している状態即ち、酸素過剰状態、リーン状態、及び、触媒43が酸素を殆ど吸蔵していない状態即ち、酸素不足状態、還元状態、リッチ状態の何れかであるとして判定される。第1制御装置による空燃比フィードバック制御を説明するために、先ず、本発明が適用されていない比較装置による空燃比フィードバック制御について説明する。比較装置は、図4のタイムチャートに示したように、下流側空燃比センサ56の出力値Voxsが中央値Vmid以上であるとき触媒43の状態が酸素不足状態リッチ状態であると判定し、機関の空燃比目標空燃比abyfrを所定のリーン空燃比afLeanに設定する図4の時刻t1以前、時刻t2-t3、時刻t4-t5、及び、時刻t6-t7に対応する期間を参照。。この結果、機関の空燃比がリーン空燃比afLeanに設定される各時点から僅かな時間が経過した後に上流側空燃比触媒流入ガスの空燃比がリーン空燃比afLeanに変化する。加えて、比較装置は、図4のタイムチャートに示したように、下流側空燃比センサ56の出力値Voxsが中央値Vmid未満であるときに触媒43の状態が酸素過剰状態リーン状態であると判定し、機関の空燃比目標空燃比abyfrを所定のリッチ空燃比afRichに設定する図4の時刻t1-t2、時刻t3-t4、時刻t5-t6、及び、時刻t7-t8に対応する期間を参照。。この結果、機関の空燃比がリッチ空燃比afRichに設定される各時点から僅かな時間が経過した後に上流側空燃比触媒流入ガスの空燃比がリッチ空燃比afRichに変化する。ところで、図4の破線の円EN内に示したように、機関の空燃比目標空燃比abyfrがリッチ空燃比afRichに設定されている場合に機関10の運転状態が過渡運転状態加速状態又は減速状態等になったとき、実際の上流側空燃比がリッチ空燃比afRichよりも更に小さい空燃比に一時的に変化することがある。この場合、触媒43に多量の一酸化炭素を含む未燃物が流入し、触媒43によって浄化酸化されないまま触媒43の下流に流出する場合がある。即ち、一酸化炭素が触媒43を吹き抜ける場合がある。このとき、触媒43から流出した一酸化炭素が下流側空燃比センサ56の触媒層56e及び/又は拡散層56dに到達して吸着されると、触媒層56e及び/又は拡散層56dは弱い還元状態となるため、下流側空燃比センサ56の出力値Voxsは時刻t4の直後に示したように中央値Vmidよりも大きくなる。この結果、比較装置は触媒43の状態が酸素不足状態リッチ状態である。と判定し、機関の空燃比をリーン空燃比afLeanに設定する。従って、触媒43に一酸化炭素を含む未燃物が流入しなくなるので、触媒43から一酸化炭素が流出しなくなる。これにより、下流側空燃比センサ56の触媒層56e及び/又は拡散層56dに吸着されていた一酸化炭素は触媒層56e及び/又は拡散層56dから離脱する。この一酸化炭素の離脱により、触媒43の状態が未だ酸素過剰状態リーン状態に到達していないにも拘わらず、下流側空燃比センサ56の出力値Voxsは最小値Vminに向けて変化を開始する。その結果、図4の時刻t5に示したように、出力値Voxsは中央値Vmidよりも小さくなるので、比較装置は触媒43の状態が酸素過剰状態リーン状態である。と判定し、機関の空燃比をリッチ空燃比afRichに設定する。しかしながら、時刻t5の時点における触媒43の状態は酸素過剰状態リーン状態ではないので、機関の空燃比がリッチ空燃比afRichに設定されることによっ、触媒43に一酸化炭素を含む未燃物が流入することにより、図4の時刻t5-t7に示したように、触媒43は流入する未燃物を浄化できず、一酸化炭素の排出量が多くなるエミッションが悪化するという問題が生じる。そこで、第1制御装置は、このような一酸化炭素の触媒43からの一時的な漏出に起因する下流側空燃比センサ56の出力値Voxsの減少が生じるか否かを予測し、そのような出力値Voxsの減少が生じると予測できる場合には、リーン判定閾値即ち、触媒43の状態が酸素過剰状態であるか否か判定するために出力値Voxsと比較される閾値を、通常時の値=本例において、中央値Vmidよりも所定値αだけ小さい値VLspVmid-αに設定する図5を参照。。これにより、触媒43の状態が酸素過剰状態リーン状態であると判定される時点換言すると、機関の空燃比がリッチ空燃比afRichに設定される時点が図5の時刻t6から時刻t7へと変化する遅れる。即ち、触媒43の状態が酸素過剰状態となっている可能性がより一層高くなった時点以降において機関の空燃比がリッチ空燃比afRichに設定されるので、触媒43に過剰な未燃物が流入する可能性が低下する。その結果、一酸化炭素の排出量が多くなるエミッションが悪化するという問題を回避することができる図5の時刻t6-t8を参照。。ここで、第1制御装置は、以下の両条件が共に成立したとき、一酸化炭素の触媒43からの一時的な漏出に起因する下流側空燃比センサ56の出力値Voxsの減少、が生じると予測する。1上流側空燃比センサ55の出力値Vabyfsに基づいて取得される実際の上流側空燃比abyfsがリッチ空燃比afRichよりも所定値afth以上小さくなった。即ち、触媒43から所定量以上の一酸化炭素が漏出する状態一酸化炭素漏出状態が生じた。実際には、更に、その後において下流側空燃比センサ56の出力値Voxsが中央値Vmidを超えた。2一酸化炭素漏出状態が生じたと判定された後に最初に取得された下流側空燃比センサ56の出力値Voxsの極大値Vlocalmaxが、高側閾値VHithと低側閾値VLothとの間である。高側閾値VHithは、中央値Vmidよりも大きく、且つ、最大値Vmaxから第1所定値d1を減じた値=Vmax-d1である。高側閾値VHithは、例えば、0.8Vであり、出力値Voxsが高側閾値VHith以上であれば、触媒43は明らかに酸素不足状態であって、下流側空燃比センサ56の触媒層56e及び/又は拡散層56dは強い還元状態にあると考えることができる。低側閾値VLothは、中央値Vmidよりも大きく、且つ、高側閾値VHithから第2所定値d2を減じた値=VHith-d2=Vmax-d1-d2である。低側閾値VLothは、例えば、0.65Vであり、最小値Vminに所定値を加えた値でもある。そして、第1制御装置は、上記2の条件が成立した時点即ち、高側閾値VHithと低側閾値VLothとの間の極大値Vlocalmaxが漏出一酸化炭素影響残存期間内に取得された時点から、リーン判定閾値を値VLsp=Vmid-αに設定する。更に、下流側空燃比センサ56の出力値Voxsが値VLspよりも大きい値から値VLspよりも小さい値へと変化する時点までの期間が経過した後、第1制御装置はリーン判定閾値を通常時の値である中央値Vmidに戻す。リーン判定閾値を値VLspから中央値Vmidへと戻すタイミングは、出力値Voxsが値VLspよりも大きい値から値VLspよりも小さい値へと変化した時点の直後であってもよいし、その後、出力値Voxsが中央値Vmidよりも小さい値から中央値Vmidよりも大きい値へと変化した直後であってもよい。更には、その後、新たな極大値Vlocalmaxが得られた直後であってもよい。上記2の条件が成立した時点即ち、リーン判定閾値が値VLspに設定された時点から、出力値Voxsが値VLspよりも大きい値から値VLspよりも小さい値へと変化した時点までの期間は、特定期間Tとも称呼される。実際の作動次に、第1制御装置の実際の作動について説明する。以下、説明の便宜上、MapXは、a1a2...を引数とするテーブルであって値Xを求めるためのテーブルを表すものとする。<燃料噴射制御>第1制御装置のCPUは、図6に示した燃料噴射制御ルーチンを、任意の気筒のクランク角度が吸気上死点前の所定クランク角度となる毎に、その気筒に対して繰り返し実行するようになっている。前記所定クランク角度は、例えば、BTDC90°CA吸気上死点前90°クランク角度である。クランク角度が前記所定クランク角度に一致した気筒は燃料噴射気筒とも称呼される。CPUは、この燃料噴射制御ルーチンにより、指示燃料噴射量最終燃料噴射量Fiの計算及び燃料噴射の指示を行う。任意の気筒のクランク角度が吸気上死点前の所定クランク角度と一致すると、CPUはステップ600から処理を開始し、ステップ605にてフューエルカットフラグXFCの値が0であるか否かを判定する。フューエルカットフラグXFCの値は、フューエルカット開始条件が成立したときに1に設定され、フューエルカットフラグXFCの値が1であるときにフューエルカット終了条件が成立したときに0に設定される。フューエルカットフラグXFCの値は更にイニシャルルーチンにおいて0に設定されるようになっている。イニシャルルーチンは、機関10が搭載された車両のイグニッションキースイッチがオフからオンに変更されたときにCPUにより実行されるルーチンである。フューエルカット開始条件は、スロットル弁開度TAが0であり且つ機関回転速度NEがフューエルカット回転閾値速度NEFC以上であるとき成立する。フューエルカット終了条件は、スロットル弁開度TAが0でなくなるか、又は、機関回転速度NEがフューエルカット終了回転閾値速度NERT以下となったとき、成立する。フューエルカット終了回転閾値速度NERTはフューエルカット回転閾値速度NEFCよりも小さい。いま、フューエルカットフラグXFCの値が0であると仮定する。この場合、CPUは、ステップ605にてYesと判定してステップ610に進み、エアフローメータ51により計測された吸入空気量Ga、機関回転速度センサ53の信号に基いて取得された機関回転速度NE、及び、ルックアップテーブルMapMcGa,NEに基いて燃料噴射気筒に吸入される空気量即ち、筒内吸入空気量Mcを取得する。筒内吸入空気量Mcは、周知の空気モデル吸気通路における空気の挙動を模した物理法則に従って構築されたモデルにより算出されてもよい。次に、CPUはステップ615に進み、フィードバック制御フラグXFBの値が1であるか否かを判定する。このフィードバック制御フラグXFBの値は、フィードバック制御条件が成立しているときに1に設定され、フィードバック制御条件が成立していないときに0に設定される。フィードバック制御条件は、例えば、以下の総ての条件が成立したときに成立する。A1上流側空燃比センサ55が活性化している。A2下流側空燃比センサ56が活性化している。A3機関の負荷KLが閾値KLth以下である。A4フューエルカットフラグXFCの値が0である。このとき、フィードバック制御フラグXFBの値が1でなければ、CPUはステップ615にてNoと判定してステップ620に進み、目標空燃比abyfrを理論空燃比stoich例えば、14.6に設定する。次に、CPUは以下に述べるステップ625乃至ステップ640の処理を順に行い、ステップ695に進んで本ルーチンを一旦終了する。ステップ625:CPUは、筒内吸入空気量Mcを目標空燃比abyfrで除することによって基本燃料噴射量Fbaseを算出する。基本燃料噴射量Fbaseは、機関の空燃比を目標空燃比abyfrに一致させるために必要な燃料噴射量のフィードフォワード量である。ステップ630:CPUは、図示しないルーチンにより別途計算されているメインフィードバック量KFmainを読み込む。メインフィードバック量KFmainは、検出上流側空燃比abyfsが目標空燃比abyfrに一致するように周知のPID制御に基づいて算出される。なお、メインフィードバック量KFmainは、フィードバック制御フラグXFBの値が0であるとき1に設定される。更に、メインフィードバック量KFmainは常に1に設定されてもよい。即ち、メインフィードバック量KFmainを用いたフィードバック制御は本実施形態において必須ではない。ステップ635:CPUは、基本燃料噴射量Fbaseをメインフィードバック量KFmainにより補正することによって指示燃料噴射量Fiを算出する。より具体的に述べると、CPUは、基本燃料噴射量Fbaseにメインフィードバック量KFmainを乗じることによって指示燃料噴射量Fiを算出する。ステップ640:CPUは、指示燃料噴射量Fiの燃料を燃料噴射気筒に対応して設けられている燃料噴射弁25から噴射させるための噴射指示信号を、その燃料噴射弁25に送出する。この結果、機関の空燃比を目標空燃比abyfrに一致させるために必要な量の燃料が燃料噴射気筒の燃料噴射弁25から噴射させられる。即ち、ステップ625乃至ステップ640は、機関の空燃比が目標空燃比abyfrに一致するように指示燃料噴射量Fiを制御する指示燃料噴射量制御手段を構成している。一方、CPUがステップ615の処理を行う時点において、フィードバック制御フラグXFBの値が1であると、CPUはそのステップ615にてYesと判定してステップ645に進み、触媒リーン状態表示フラグXCCROLeanの値が1であるか否かを判定する。触媒リーン状態表示フラグXCCROLeanの値は後述するルーチンにより設定される。触媒リーン状態表示フラグXCCROLeanの値が1であると、CPUはステップ645にてYesと判定してステップ650に進み、目標空燃比abyfrを所定のリッチ空燃比afRich理論空燃比よりも小さい一定の空燃比、例えば、14.2に設定する。その後、CPUはステップ625以降に進む。従って、機関の空燃比はリッチ空燃比afRichに一致させられる。これに対し、CPUがステップ645の処理を実行する時点において、触媒リーン状態表示フラグXCCROLeanの値が0であると、CPUはステップ645にてNoと判定してステップ655に進み、目標空燃比abyfrを所定のリーン空燃比afLean理論空燃比よりも大きい一定の空燃比、例えば、15.0に設定する。その後、CPUはステップ625以降に進む。従って、機関の空燃比はリーン空燃比afLeanに一致させられる。一方、CPUがステップ605の処理を実行する時点において、フューエルカットフラグXFCの値が1であると、CPUはそのステップ605にてNoと判定してステップ695に直接進み、本ルーチンを一旦終了する。この場合、ステップ640の処理による燃料噴射が実行されないので、フューエルカット制御燃料供給停止制御が実行される。即ち、機関10の運転状態はフューエルカット運転状態となる。<触媒リッチ状態判定>CPUは図7にフローチャートにより示した触媒リッチ状態判定ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ700から処理を開始してステップ710に進み、触媒リーン状態表示フラグXCCROLeanの値が1であるか否かを判定する。換言すると、CPUは現在の触媒43の状態がリーン状態酸素過剰状態であるか否かを判定する。このとき、触媒リーン状態表示フラグXCCROLeanの値が0であると、CPUはステップ710にてNoと判定し、ステップ795に直接進んで本ルーチンを一旦終了する。従って、触媒リーン状態表示フラグXCCROLeanの値は0に維持される。これに対し、CPUがステップ710の処理を実行する時点において、触媒リーン状態表示フラグXCCROLeanの値が1であると、CPUはそのステップ710にてYesと判定してステップ720に進み、下流側空燃比センサ56の出力値Voxsが中央値Vmidに設定されたリッチ判定閾値VRth以上であるか否かを判定する。このとき、出力値Voxsが中央値Vmid未満であれば、CPUはステップ720にてNoと判定し、ステップ795に直接進んで本ルーチンを一旦終了する。従って、この場合、触媒リーン状態表示フラグXCCROLeanの値は0に維持される。これに対し、CPUがステップ720の処理を実行する時点において、出力値Voxsが中央値Vmid以上であると、CPUはステップ720にてYesと判定してステップ730に進み、触媒リーン状態表示フラグXCCROLeanの値を0に設定する。即ち、CPUは、出力値Voxsが中央値Vmid以上であるとき、触媒43の状態がリッチ状態酸素不足状態であると判定する。その後、CPUはステップ795に進んで本ルーチンを一旦終了する。<触媒リーン状態判定>CPUは図8にフローチャートにより示した触媒リーン状態判定ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ800から処理を開始してステップ810に進み、触媒リーン状態表示フラグXCCROLeanの値が0であるか否かを判定する。換言すると、CPUは現在の触媒43の状態がリッチ状態酸素不足状態であるか否かを判定する。このとき、触媒リーン状態表示フラグXCCROLeanの値が1であると、CPUはステップ810にてNoと判定し、ステップ895に直接進んで本ルーチンを一旦終了する。従って、触媒リーン状態表示フラグXCCROLeanの値は1に維持される。これに対し、CPUがステップ810の処理を実行する時点において、触媒リーン状態表示フラグXCCROLeanの値が0であると、CPUはそのステップ810にてYesと判定してステップ820に進み、一酸化炭素漏出フラグXCOの値が1であるか否かを判定する。一酸化炭素漏出フラグXCOの値は上述したイニシャルルーチンにおいて0に設定されるようになっている。更に、一酸化炭素漏出フラグXCOの値は後述するルーチンにより操作されるようになっている。一酸化炭素漏出フラグXCOの値は、触媒43に一時的に過大な量の未燃物一酸化炭素を含む。が流入し、且つ、その未燃物に含まれる一酸化炭素が触媒43を通過して下流側空燃比センサ56の触媒層56e及び/又は拡散層56dに吸着された可能性が高いと推測判定されたとき1に設定される。即ち、一酸化炭素漏出フラグXCOの値が1であることは、三元触媒から所定量以上の一酸化炭素が漏出する状態である一酸化炭素漏出状態となっていることを示す。いま、一酸化炭素漏出フラグXCOの値が0であると仮定する。この場合、CPUはステップ820にてNoと判定してステップ830に進み、リーン判定閾値VLthを中央値Vmidに一致させる。次に、CPUはステップ840に進み、出力値Voxsがリーン判定閾値VLthここでは中央値Vmidと等しい値よりも小さいか否かを判定する。そして、CPUは出力値Voxsがリーン判定閾値VLthより小さければ、ステップ840にてYesと判定してステップ850に進み、触媒リーン状態表示フラグXCCROLeanの値を1に設定する。即ち、出力値Voxsがリーン判定閾値VLthより小さければ、CPUは触媒43の状態がリーン状態酸素過剰状態であると判定する。次いで、CPUはステップ860に進んで一酸化炭素漏出フラグXCOの値を0に設定し、ステップ865に進んで極大値取得完了フラグXVlocalgetの値を0に設定する。極大値取得完了フラグXVlocalgetの値は、後述するように、目標空燃比abyfrがリーン空燃比afLeanに設定されているときに、出力値Voxsの極大値Vlocalmaxが取得されたとき1に設定される。次に、CPUはステップ895に進んで本ルーチンを一旦終了する。なお、CPUはステップ865の後にリーン判定閾値VLthを中央値Vmidに一致させる処理を行った後、ステップ895に進んでもよい。一方、CPUがステップ840の処理を行う時点において、出力値Voxsがリーン判定閾値VLth以上であると、CPUはそのステップ840にてNoと判定し、ステップ895に直接進んで本ルーチンを一旦終了する。よって、この場合、触媒リーン状態表示フラグXCCROLeanの値は0に維持される。次に、一酸化炭素漏出フラグXCOの値が1に設定された場合のCPUの作動について説明する。この場合、CPUは図8のステップ820に進んだとき、そのステップ820にてYesと判定してステップ825に進み、極大値取得完了フラグXVlocalgetの値が1に設定されているか否かを判定する。このとき、極大値取得完了フラグXVlocalgetの値が0であれば、CPUはステップ825にてNoと判定してステップ830に進む。これに対し、CPUがステップ825の処理を実行する時点において、極大値取得完了フラグXVlocalgetの値が1に設定されていると、CPUはそのステップ825にてYesと判定してステップ870に進み、後述するルーチンにより取得されている出力値Voxsの極大値Vlocalmaxが、高側閾値VHithと低側閾値VLothとの間であるか否かを判定する。高側閾値VHith及び低側閾値VLothは上述したとおりの値である。そして、極大値Vlocalmaxが、高側閾値VHithと低側閾値VLothとの間である場合、CPUはステップ870にてYesと判定してステップ880に進み、リーン判定閾値VLthを通常時におけるリーン判定閾値中央値Vmidよりも小さい値中央値Vmidよりも所定値αだけ小さい値VLspに設定する。その後、CPUはステップ840以降に進む。これによれば、ステップ820、ステップ825及びステップ870の条件が総て成立するとき、リーン判定閾値が通常時の値=中央値Vmidよりも小さい値VLspに設定されるので、下流側空燃比センサ56の触媒層56e及び/又は拡散層56dに付着した一酸化炭素が離脱することにより出力値Voxsが低下したとしても、触媒リーン状態表示フラグXCCROLeanの値が1に設定されるタイミング触媒43の状態が酸素過剰状態であると判定されるタイミングが遅れる。換言すると、上流側空燃比abyfsがリーン空燃比afLeanに維持される期間が長くなり、上流側空燃比abyfsがリッチ空燃比afRichに変更されるタイミングが遅れる。その結果、一酸化炭素が多量に排出することを防止することができる。なお、CPUがステップ870の処理を実行する時点において、極大値Vlocalmaxが高側閾値VHithと低側閾値VLothとの間でない場合、CPUはステップ870にてNoと判定してステップ830に進み、リーン判定閾値VLthを中央値Vmidに一致させる。<極大値Vlocalmaxの取得>CPUは、所定時間が経過する毎に図9にフローチャートにより示した極大値取得ルーチンを実行するようになっている。従って、所定のタイミングになると、CPUは図9のステップ900から処理を開始してステップ910に進み、現時点が触媒リーン状態表示フラグXCCROLeanの値が1から0へと変化した時点の直後であるか否かを判定する。現時点が触媒リーン状態表示フラグXCCROLeanの値が1から0へと変化した時点の直後である場合、CPUはステップ910からステップ920に進んで極大値Vlocalmaxの値を0に設定し、ステップ925に進んで極大値取得完了フラグXVlocalgetの値を0に設定し、その後、ステップ930へと進む。これに対し、現時点が触媒リーン状態表示フラグXCCROLeanの値が1から0へと変化した時点の直後でない場合、CPUはステップ910からステップ930へと直接進む。即ち、極大値Vlocalmax及び極大値取得完了フラグXVlocalgetは、触媒リーン状態表示フラグXCCROLeanの値が1から0へと変化した直後に0にリセットされる。CPUはステップ930にて触媒リーン状態表示フラグXCCROLeanの値が0であるか否かを判定する。換言すると、現時点の空燃比要求がリーン要求であって、それ故に、目標空燃比abyfrがリーン空燃比afLeanに設定されているか否かが判定される。このとき、触媒リーン状態表示フラグXCCROLeanの値が0でなければ、CPUはステップ930にてNoと判定してステップ935に進み、極大値取得完了フラグXVlocalgetの値を確認的に0に設定し、その後、ステップ995に直接進んで本ルーチンを一旦終了する。従って、極大値Vlocalmaxは取得されない。一方、CPUがステップ930の処理を行う時点において、触媒リーン状態表示フラグXCCROLeanの値が0であると、CPUはステップ930にてYesと判定してステップ940に進み、現時点の出力値Voxsが極大値Vlocalmaxよりも大きいか否かを判定する。そして、現時点の出力値Voxsが極大値Vlocalmaxよりも大きい場合、CPUはステップ940にてYesと判定してステップ950に進み、極大値Vlocalmaxとして現時点の出力値Voxsを格納する。これに対し、現時点の出力値Voxsが極大値Vlocalmax以下の場合、CPUはステップ940にてNoと判定してステップ960に進み、極大値取得完了フラグXVlocalgetの値を1に設定する。次いで、CPUは、ステップ995に直接進んで本ルーチンを一旦終了する。以上の処理により、触媒リーン状態表示フラグXCCROLeanの値が0であるときに極大値Vlocalmaxが取得され、極大値Vlocalmaxが取得されると極大値取得完了フラグXVlocalgetの値が1に設定される。<一酸化炭素漏出判定>次に、CPUが一酸化炭素漏出フラグXCOの値を操作する際の作動について説明する。CPUは、所定時間が経過する毎に図10及び図11にフローチャートにより示したルーチンを実行するようになっている。従って、所定のタイミングになると、CPUは図10のステップ1000から処理を開始してステップ1010に進み、一酸化炭素漏出フラグXCOの値が0であるか否かを判定する。一酸化炭素漏出フラグXCOの値が既に1に設定されている場合、CPUはステップ1010にてNoと判定し、ステップ1095に直接進んで本ルーチンを一旦終了する。これに対し、CPUがステップ1010の処理を実行する時点において、一酸化炭素漏出フラグXCOの値が0であると、CPUはそのステップ1010にてYesと判定してステップ1020に進み、計時実行フラグXTimerの値が0であるか否かを判定する。計時実行フラグXTimerの値は上述したイニシャルルーチンにおいて0に設定されるようになっている。計時実行フラグXTimerは、後述するタイマカウンタCTが所定時間の経過毎に1ずつ増大されることにより、計時動作を行っている場合に1に設定される後述するステップ1050を参照。。計時実行フラグXTimerの値が1であるとき、CPUはステップ1020にてNoと判定し、ステップ1095に直接進んで本ルーチンを一旦終了する。計時実行フラグXTimerの値が0であるとき、CPUはステップ1020にてYesと判定してステップ1030に進み、触媒リーン状態表示フラグXCCROLeanの値が1であるか否かを判定する。即ち、CPUは目標空燃比abyfrがリッチ空燃比afRichであるか否かを判定する。触媒リーン状態表示フラグXCCROLeanの値が0であるとき、CPUはステップ1030にてNoと判定し、ステップ1095に直接進んで本ルーチンを一旦終了する。触媒リーン状態表示フラグXCCROLeanの値が1であるとき即ち、目標空燃比abyfrがリッチ空燃比afRichであるとき、CPUはステップ1030にてYesと判定してステップ1040に進み、目標空燃比abyfrこの場合、リッチ空燃比afRichから検出上流側空燃比abyfsを減じた値が所定空燃比afthよりも大きいか否かを判定する。換言すると、CPUは、実際の上流側空燃比abyfsがリッチ空燃比afRichよりも所定空燃比afth以上さらにリッチ側の空燃比になっているか否かを判定する。このような状態は、機関10の運転状態が過渡運転状態にある場合等において発生する。ステップ1040の判定条件が成立していなければ、CPUはステップ1040にてNoと判定し、ステップ1095に直接進んで本ルーチンを一旦終了する。これに対し、ステップ1040の判定条件が成立していると、CPUはステップ1040にてYesと判定してステップ1050に進み、計時実行フラグXTimerの値を1に設定する。次いで、CPUはステップ1060に進み、タイマカウンタCTの値を0に設定する。その後、CPUはステップ1095に進む。一方、CPUは、所定のタイミングになると、図11のステップ1100から処理を開始してステップ1110に進み、計時実行フラグXTimerの値が1であるか否かを判定する。このとき、計時実行フラグXTimerの値が0であると、CPUはステップ1110にてNoと判定し、ステップ1195に直接進んで本ルーチンを一旦終了する。これに対し、計時実行フラグXTimerの値が図10のステップ1050にて1に設定されると、CPUはステップ1110にてYesと判定してステップ1120に進み、タイマカウンタCTを1だけ増大する。次いで、CPUはステップ1130に進み、タイマカウンタCTの値が所定閾値CTth以下であるか否かを判定する。タイマカウンタCTの値が所定閾値CTth以下である場合、CPUはステップ1130にてYesと判定してステップ1140に進み、下流側空燃比センサ56の出力値Voxsが中央値Vmidよりも大きいか否かを判定する。このステップは、触媒43から漏出した一酸化炭素が下流側空燃比センサ56の触媒層56e及び/又は拡散層56dに到達することによって下流側空燃比センサ56が弱い還元状態となり、それにより出力値Voxsがリッチ空燃比に対応する値へと変化したことを確認するステップである。いま、出力値Voxsが中央値Vmidよりも大きくなっていると、CPUはステップ1140にてYesと判定してステップ1150に進み、一酸化炭素漏出フラグXCOの値を1に設定する。次いで、CPUはステップ1160に進み、計時実行フラグXTimerの値を0に設定する。この結果、CPUが所定時間の経過後にステップ1110に再び進んだとき、CPUはそのステップ1110にてNoと判定し、ステップ1195に直接進むようになる。これに対し、CPUがステップ1140の処理を実行する時点において、出力値Voxsが中央値Vmid以下であると、CPUはそのステップ1140にてNoと判定し、ステップ1195に直接進んで本ルーチンを一旦終了する。また、CPUがステップ1130の処理を実行する時点において、タイマカウンタCTの値が所定閾値CTthよりも大きい場合、CPUはステップ1130にてNoと判定してステップ1170に進み、計時実行フラグXTimerの値を0に設定する。以上、説明したように、目標空燃比abyfrがリッチ空燃比afRichである場合に実際の上流側空燃比abyfsが目標空燃比abyfrリッチ空燃比afRichに対して所定空燃比afth以上小さくなると、タイマカウンタCTによる計時が開始される。そして、タイマカウンタCTの値が所定閾値CTthに到達するまでの期間において出力値Voxsが中央値Vmidよりも大きくなったとき、一酸化炭素漏出フラグXCOの値は1に設定される。一酸化炭素漏出フラグXCOの値が1に設定されている期間は、漏出一酸化炭素影響残存期間とも称呼される。そして、図8を参照しながら説明したように、一酸化炭素漏出フラグXCOの値が1に設定されている場合において極大値Vlocalmaxが取得され、その極大値Vlocalmaxが高側閾値VHithと低側閾値VLothとの間である場合、リーン判定閾値VLthが通常時よりも小さい値=VLspに設定される。その結果、一酸化炭素が触媒43から漏出することに起因する過剰な未燃物の触媒43への供給が回避されるので、未燃物の排出量を低減することができる。以上、説明したように、第1制御装置は、濃淡電池型の酸素濃度センサである下流側空燃比センサ56の出力値Voxsに基づいて三元触媒43に流入するガスである触媒流入ガスの空燃比を変更するように、機関10に供給される混合気の空燃比をフィードバック制御する空燃比制御手段図6乃至図8を参照。を備えた内燃機関の空燃比制御装置である。更に、前記空燃比制御手段は、三元触媒43から所定量以上の一酸化炭素が漏出する状態である一酸化炭素漏出状態となったか否かを機関10の運転状態を示すパラメータ上流側空燃比abyfsに基づいて判定する判定手段図10及び図11のルーチンを参照。と、下流側空燃比センサ56の出力値Voxsの極大値Vlocalmaxを取得する極大値取得手段図9のルーチンを参照。と、前記一酸化炭素漏出状態となったと判定された後に前記極大値取得手段により最初に取得された極大値Vlocalmaxが、下流側空燃比センサ56の出力値Voxsの最大値Vmaxよりも第1所定値だけ小さい高側閾値VHithと、中央値Vmidよりも大きく且つ高側閾値VHithよりも第2所定値だけ小さい低側閾値VLothと、の間の値であったとき、前記最初に取得された極大値Vlocalmaxの発生時点から所定の条件が成立する時点出力値Voxsがリーン判定閾値VLth以下となった後、再び、出力値Voxsが中央値Vmid=リッチ判定閾値VRthより大きくなる時点までの特定期間において前記空燃比のフィードバック制御により得られる前記触媒流入ガスの空燃比の平均が、前記特定期間以外の期間において前記下流側空燃比センサの出力値が前記特定期間の下流側空燃比センサの出力値と同じであったとした場合に同特定期間以外の期間において前記空燃比のフィードバック制御により得られる前記触媒流入ガスの空燃比の平均よりも大きくなるように、前記空燃比のフィードバック制御を変更する実際には、リーン判定閾値VLthを通常時におけるリーン判定閾値=中央値Vmidよりも小さい値VLsp=Vmid-αに設定する制御変更手段図8のステップ820、ステップ825、ステップ870及びステップ880と、を含む。更に、前記判定手段は、上流側空燃比センサ55を含み、上流側空燃比センサ55の出力値Vabyfsに基づいて検出された上流側空燃比abyfsが理論空燃比よりも小さい所定の空燃比以下となったとき実際には、上流側空燃比abyfsがリッチ空燃比afRichよりも値afthだけ小さい空燃比以下となったとき、前記一酸化炭素漏出状態となったと判定するように構成されている図10を参照。。加えて、前記空燃比制御手段は、下流側空燃比センサ56の出力値Voxsがリッチ判定閾値VRth以上となったときに前記触媒流入ガスの空燃比が理論空燃比よりも大きい空燃比であるリーン空燃比afLeanとなり図6及び図7において、触媒リーン状態表示フラグXCCROLeanの値が0に設定される場合、且つ、下流側空燃比センサ56の出力値Voxsがリッチ判定閾値VRth以下のリーン判定閾値VLth以下となったとき前記触媒流入ガスの空燃比が理論空燃比よりも小さい空燃比であるリッチ空燃比afRichとなるように図6及び図8において、触媒リーン状態表示フラグXCCROLeanの値が1に設定される場合、前記空燃比のフィードバック制御を行うように構成され、前記制御変更手段は、前記特定期間の開始後において前記リーン判定閾値を前記特定期間以外の期間における値=Vmidよりも小さい値VLsp=Vmid-αに設定するように構成されている図8の特徴にステップ880を参照。。これによれば、触媒43に一時的に多量の一酸化炭素が流入したことにより、一酸化炭素が触媒43を吹き抜けて下流側空燃比センサ56の触媒層56e及び/又は拡散層56dに到達して吸着され、その後、その一酸化炭素が触媒層56e及び/又は拡散層56dから離脱することによって、触媒43の状態が酸素過剰状態でないにもかかわらず出力値Voxsが減少する場合、触媒43の状態が酸素過剰状態であると判定するタイミングを遅らせ、機関の空燃比が過度に小さくならないように即ち、触媒43に過剰の未燃物が流入しないようにすることができる。従って、エミッションを良好にすることができる。なお、一酸化炭素漏出フラグXCOの値は、一酸化炭素漏出フラグXCOの値が1に設定されてから所定時間が経過したときに0に戻されても良い。<第2実施形態>次に、本発明の第2実施形態に係る空燃比制御装置以下、第2制御装置とも称呼する。について説明する。第2制御装置は、出力値Voxsがリーン判定閾値VLthよりも小さくなったとき、目標空燃比abyfrを理論空燃比よりも小さい第1リッチ空燃比afRich1に設定する。更に、第2制御装置は、第1制御装置と同様、一酸化炭素の触媒43からの一時的な流出に起因する下流側空燃比センサ56の出力値Voxsの減少が生じるか否かを予測する。そして、第2制御装置は、そのような出力値Voxsの減少が生じると予測される場合に出力値Voxsがリーン判定閾値VLthよりも小さくなったとき、目標空燃比abyfrを理論空燃比よりは小さいが、第1リッチ空燃比afRich1よりは大きい第2リッチ空燃比afRich2に設定する図12の時刻t5-時刻t6を参照。。これにより、図12の破線の円EN内に示したように、実際の上流側空燃比が第1リッチ空燃比afRich1よりも更に小さい空燃比になり、それにより、触媒43を一酸化炭素が通過し吹き抜け、その一酸化炭素が下流側空燃比センサ56の触媒層56e及び/又は拡散層56dに吸着されその後離脱することに起因して、触媒43の状態が酸素過剰状態リーン状態でないにも拘わらず出力値Voxsが低下して酸素過剰状態と判定された場合であっても、触媒43に過剰な未燃物が流入することを回避することができる。その結果、一酸化炭素の排出量が増大することを回避することができる。作動第2制御装置のCPUは、図6と、図9乃至図11と、に示されたルーチンを実行する。更に、第2制御装置のCPUは、所定時間が経過する毎に図13及び図14にフローチャートにより示したルーチンを実行するようになっている。図6と、図9乃至図11と、に示したルーチンについては説明済みである。従って、以下、図13及び図14のルーチンについて説明する。図13に示したルーチンは図8に示したルーチンと類似している。図13に示したステップであって図8にも示されたステップには、図8に示されたステップと同一の符号が付されている。これらのステップの詳細な説明は適宜省略される。図13に示したルーチンは、図8に示したステップ830及びステップ880をステップ1310及びステップ1320によりそれぞれ置換した点においてのみ図8に示したルーチンと相違している。より具体的に述べると、CPUは、一酸化炭素漏出フラグXCOの値が0である場合ステップ820でのNoとの判定を参照。と、極大値Vlocalmaxが取得されない場合ステップ825でのNoとの判定を参照。と、取得された極大値Vlocalmaxが高側閾値VHithと低側閾値VLothとの間でない場合ステップ870でのNoとの判定を参照。と、において、ステップ1310に進み、触媒リーン状態表示フラグXCCROLeanの値が1である場合に設定される目標空燃比abyfrを理論空燃比stoichよりも小さい第1リッチ空燃比afRich1に設定する。これに対し、CPUは、一酸化炭素漏出フラグXCOの値が1であり、極大値Vlocalmaxが取得され、且つ、その極大値Vlocalmaxが高側閾値VHithと低側閾値VLothとの間である場合ステップ820、ステップ825及びステップ870の総てのステップでのYesとの判定を参照。においてステップ1320に進み、触媒リーン状態表示フラグXCCROLeanの値が1である場合に設定される目標空燃比abyfrを第2リッチ空燃比afRich2に設定する。この第2リッチ空燃比afRich2は、前述したように、第1リッチ空燃比afRich1と理論空燃比stoichとの間の空燃比である。一方、図14に示したルーチンは図7に示したルーチンと類似している。図14に示したステップであって図7にも示されたステップには、図7に示されたステップと同一の符号が付されている。これらのステップの詳細な説明は適宜省略される。図14に示したルーチンは、図7に示したステップ730の直後にステップ1410を追加した点においてのみ図7に示したルーチンと相違している。より具体的に述べると、CPUは、触媒リーン状態表示フラグXCCROLeanの値が1であり、且つ、出力値Voxsがリッチ判定閾値VRthとして設定された中央値Vmid以上である場合、ステップ730にて触媒リーン状態表示フラグXCCROLeanの値を0に設定する。次いで、CPUはステップ1410に進み、触媒リーン状態表示フラグXCCROLeanの値が1である場合に設定される目標空燃比abyfrを第1リッチ空燃比afRich1に設定する。これは、目標空燃比が第2リッチ空燃比afRich2に設定された場合、その後、触媒リーン状態表示フラグXCCROLeanの値が0に戻される際に、次に触媒リーン状態表示フラグXCCROLeanの値が1となった場合に設定される目標空燃比を第1リッチ空燃比afRich1へと戻しておくためである図12の時刻t5以降を参照。。以上、説明したように、第2制御装置が備える空燃比制御手段は、下流側空燃比センサ56の出力値Voxsがリッチ判定閾値VRth以上となったときに触媒流入ガスの空燃比が理論空燃比よりも大きい空燃比である第1リーン空燃比afLeanとなり、且つ、下流側空燃比センサ56の出力値Voxsがリッチ判定閾値VRth以下のリーン判定閾値VLth以下となったとき前記触媒流入ガスの空燃比が理論空燃比よりも小さい空燃比である第1リッチ空燃比afRich1となるように、空燃比フィードバック制御を行うように構成される図6のステップ645乃至ステップ655、図13のステップ1310、図14のステップ1410。更に、第2制御装置が備える制御変更手段は、前記特定期間極大値Vlocalmaxの発生時点から所定の条件が成立する時点までの期間において下流側空燃比センサ56の出力値Voxsがリーン判定閾値VLth=Vmid以下となったとき、前記触媒流入ガスの空燃比が前記第1リッチ空燃比afRichよりも大きく且つ理論空燃比より小さい空燃比である第2リッチ空燃比afRich2になるように前記空燃比のフィードバック制御を変更するように構成されている図13のステップ1320。これによれば、触媒43に一時的に多量の一酸化炭素が流入したことにより、下流側空燃比センサ56の触媒層56e及び/又は拡散層56dに到達し、その一酸化炭素が触媒層56e及び/又は拡散層56dから離脱することによって、触媒43の状態が酸素過剰状態でないにもかかわらず出力値Voxsが減少する場合、仮に、触媒43の状態が酸素過剰状態であると判定されたとしても、その際の触媒流入ガスの空燃比は第1リッチ空燃比afRich1よりも大きい第2リッチ空燃比afRich2である。従って、触媒流入ガスの空燃比が過小になることを回避することができるので、エミッションを良好にすることができる。以上、説明したように、本発明による空燃比制御手段の各実施形態は、触媒43から一時的に一酸化炭素が流出する運転状態が発生し、それにより下流側空燃比センサ56の出力値Voxsが触媒43の状態と乖離する状態が発生した場合においても、その後において多量の未燃物が触媒43に流入することを回避できるので、エミッションを良好にすることができる。本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、第1実施形態と第2実施形態を組み合すこともできる。即ち、前記特定期間において、リーン判定閾値VLthを通常時におけるリーン判定閾値=中央値Vmidよりも小さい値VLsp=Vmid-αに設定するとともに、出力値Voxsがその値VLspよりも小さくなったときの目標空燃比を第1リッチ空燃比afRich1に代えて第2リッチ空燃比afRich2に設定してもよい。"