"内燃機関の排気通路に配設された触媒と、前記排気通路であって前記触媒の下流に配設された下流側空燃比センサと、前記下流側空燃比センサの出力値に相関を有する値である下流側空燃比センサ出力相関値と所定のリーン要求判定値との比較の結果に基づいてリーン要求が発生したか否かを判定するとともに、前記下流側空燃比センサ出力相関値と所定のリッチ要求判定値との比較に基づいてリッチ要求が発生したか否かを判定する空燃比要求判定手段と、前記リーン要求が発生したと判定された時点から前記リッチ要求が発生したと判定される時点までのリーン要求発生期間において前記機関に供給される混合気の空燃比を理論空燃比よりも大きい空燃比であるリーン空燃比に制御するとともに、前記リッチ要求が発生したと判定された時点から前記リーン要求が発生したと判定される時点までのリッチ要求発生期間において前記混合気の空燃比を理論空燃比よりも小さい空燃比であるリッチ空燃比に制御する空燃比制御手段と、を備える内燃機関の空燃比制御装置において、前記空燃比要求判定手段は、前記リッチ要求発生期間において前記触媒から放出された酸素の総量である放出酸素量を前記触媒に流入するガスの空燃比に基づいて算出するとともに、前記リッチ要求発生期間に続く前記リーン要求発生期間の開始後に前記触媒に吸蔵される酸素の量の積算値である現在吸蔵酸素量を前記触媒に流入するガスの空燃比に基づいて算出し、前記現在吸蔵酸素量が前記放出酸素量に近づくほど前記リッチ要求が発生したと判定する時点がより早期に到来するように前記リッチ要求判定値を変更するように構成された、空燃比制御装置。請求項1に記載の空燃比制御装置において、前記下流側空燃比センサは、排ガスの酸素分圧と大気の酸素分圧との差に応じて変化する起電力を前記出力値として発生する濃淡電池型酸素濃度センサであり、前記空燃比要求判定手段は、前記下流側空燃比センサ出力相関値として前記下流側空燃比センサの出力値の単位時間あたりの変化量に相関する出力時間微分相関値を採用し、前記リッチ要求発生期間において前記出力時間微分相関値が正であり且つ前記出力時間微分相関値の大きさが前記リーン要求判定値としての第1微分閾値よりも大きくなったとき前記リーン要求が発生したと判定し、前記リーン要求発生期間において前記出力時間微分相関値が負であり且つ前記出力時間微分相関値の大きさが前記リッチ要求判定値としての第2微分閾値よりも大きくなったとき前記リッチ要求が発生したと判定し、更に、前記現在吸蔵酸素量が前記放出酸素量に近づくほど前記第2微分閾値を小さくすることにより、前記リッチ要求が発生したと判定する時点がより早期に到来するように構成された空燃比制御装置。請求項1に記載の空燃比制御装置において、前記下流側空燃比センサは、排ガスの酸素分圧と大気の酸素分圧との差に応じて変化する起電力を前記出力値として発生する濃淡電池型酸素濃度センサであり、前記空燃比要求判定手段は、前記下流側空燃比センサ出力相関値として前記下流側空燃比センサの出力値を採用し、前記リッチ要求発生期間において前記下流側空燃比センサの出力値の極小値を取得するとともに前記取得された極小値に正の第1値を加えた値を前記リーン要求判定値として採用し、且つ、前記下流側空燃比センサの出力値が前記極小値をとった後に前記リーン要求判定値よりも大きくなったとき前記リーン要求が発生したと判定し、前記リーン要求発生期間において前記下流側空燃比センサの出力値の極大値を取得するとともに前記取得された極大値から正の第2値を減じた値を前記リッチ要求判定値として採用し、且つ、前記下流側空燃比センサの出力値が前記極大値をとった後に前記リッチ要求判定値よりも小さくなったとき前記リッチ要求が発生したと判定し、更に、前記現在吸蔵酸素量が前記放出酸素量に近づくほど前記第2値を小さくすることにより、前記リッチ要求が発生したと判定する時点がより早期に到来するように構成された空燃比制御装置。請求項1に記載の空燃比制御装置において、前記下流側空燃比センサは、排ガスの酸素分圧と大気の酸素分圧との差に応じて変化する起電力を前記出力値として発生する濃淡電池型酸素濃度センサであり、前記空燃比要求判定手段は、前記下流側空燃比センサ出力相関値として前記下流側空燃比センサの出力値を採用し、前記リッチ要求発生期間において前記下流側空燃比センサの出力値が前記リーン要求判定値としての触媒リッチ状態判定用閾値よりも小さい値から大きい値へと変化したとき前記リーン要求が発生したと判定し、前記リーン要求発生期間において前記下流側空燃比センサの出力値が前記リッチ要求判定値としての触媒リーン状態判定用閾値よりも大きい値から小さい値へと変化したとき前記リッチ要求が発生したと判定し、更に、前記現在吸蔵酸素量が前記放出酸素量に近づくほど前記触媒リーン状態判定用閾値を大きくすることにより、前記リッチ要求が発生したと判定する時点がより早期に到来するように構成された空燃比制御装置。請求項1乃至請求項4の何れか一項に記載の空燃比制御装置において、前記空燃比要求判定手段は、前記リッチ要求が発生したと判定された時点である第1時点での放出酸素量の値として、同第1時点の直前において前記リーン要求が発生したと判定された時点である第2時点での前記放出酸素量から同第1時点での前記現在吸蔵酸素量を減じた値を採用するとともに、前記機関の運転状態がフューエルカット運転状態となった場合、前記放出酸素量をゼロに設定する、ように構成された空燃比制御装置。以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。<第1実施形態>構成図1は、本発明の第1実施形態に係る空燃比制御装置以下、第1制御装置とも称呼する。が適用される内燃機関10の概略構成を示している。機関10は、4サイクル火花点火式多気筒本例において4気筒ガソリン燃料機関である。機関10は、本体部20、吸気系統30及び排気系統40を備えている。本体部20は、シリンダブロック部とシリンダヘッド部とを備えている。本体部20は、ピストン頂面、シリンダ壁面及びシリンダヘッド部の下面からなる複数4個の燃焼室第1気筒1乃至第4気筒421を備えている。シリンダヘッド部には、複数の吸気ポート22と複数の排気ポート23とが形成されている。各吸気ポート22は、各燃焼室各気筒21に空気及び燃料からなる混合気を供給するように各燃焼室21に接続されている。吸気ポート22は図示しない吸気弁により開閉される。各排気ポート23は、各燃焼室21から排ガス既燃ガスを排出するように各燃焼室21に接続されている。排気ポート23は図示しない排気弁により開閉される。シリンダヘッド部には複数4個の点火プラグ24が固定されている。各点火プラグ24は、その火花発生部が各燃焼室21の中央部であってシリンダヘッド部の下面近傍位置に露呈するように配設されている。各点火プラグ24は、点火信号に応答して火花発生部から点火用火花を発生するようになっている。シリンダヘッド部には更に複数4個の燃料噴射弁インジェクタ25が固定されている。燃料噴射弁25は、各吸気ポート22に一つずつ即ち、一つの気筒に対して一つ設けられている。燃料噴射弁25は、噴射指示信号に応答し、その噴射指示信号に含まれる指示燃料噴射量Fiの燃料を対応する吸気ポート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は、セラミックを含む担持体に触媒物質である貴金属及び酸素吸蔵物質であるセリアCeO2を担持していて、酸素吸蔵放出機能酸素吸蔵機能を有する三元触媒である。上流側触媒43はエキゾーストパイプ42に配設介装されている。上流側触媒43は所定の活性温度に到達すると、未燃物HC、CO及びH2等と窒素酸化物NOxとを同時に浄化する触媒機能及び酸素吸蔵機能を発揮する。上流側触媒43は、スタートキャタリティックコンバータSC又は第1触媒とも称呼される。下流側触媒44は、上流側触媒43と同様の三元触媒である。下流側触媒44は、上流側触媒43よりも下流においてエキゾーストパイプ42に配設介装されている。下流側触媒44は、車両のフロア下方に配設されているため、アンダフロアキャタリティックコンバータUFC又は第2触媒とも称呼される。なお、本明細書において、単に触媒と言うとき、その触媒は上流側触媒43を意味する。第1制御装置は、熱線式エアフローメータ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は、図2に示したように、上流側空燃比センサ55の配設位置を流れる排ガスの空燃比に応じた出力値Vabyfsを出力する。上流側空燃比センサ55の配設位置を流れる排ガスは、触媒43に流入するガスであり、触媒流入ガスとも称呼される。触媒流入ガスの空燃比は検出上流側空燃比abyfsとも称呼される。出力値Vabyfsは触媒流入ガスの空燃比が大きくなるほど即ち、触媒流入ガスの空燃比がリーン側の空燃比になるほど増大する。電気制御装置60は、図2に示した空燃比変換テーブルマップMapabyfsを記憶している。電気制御装置60は、出力値Vabyfsを空燃比変換テーブルMapabyfsに適用することにより、実際の上流側空燃比abyfsを検出する検出上流側空燃比abyfsを取得するようになっている。再び、図1を参照すると、下流側空燃比センサ56は、上流側触媒43と下流側触媒44との間の位置においてエキゾーストパイプ42即ち、排気通路に配設されている。下流側空燃比センサ56は、排ガス中の酸素分圧と大気中の酸素分圧との差に応じた起電力を出力値として発生する周知の濃淡電池型酸素濃度センサO2センサである。下流側空燃比センサ56は、例えば、ジルコニアを含む固体電解質層酸素分圧に応じた出力値を示す素子と、固体電解質層の外側に形成された排ガス側電極層と、大気室固体電解質層の内側に露呈し且つ固体電解室層を挟んで排ガス側電極層と対向するように固体電解質層の内側に形成された大気側電極層と、排ガス側電極層を覆い且つ排ガスが接触する排ガス中に晒されるように配置される拡散抵抗層と、を備える。固体電解質層は試験管状であってもよく、板状であってもよい。下流側空燃比センサ56は、下流側空燃比センサ56の配設位置を流れる排ガスの空燃比下流側空燃比afdownに応じた出力値Voxsを出力するようになっている。より具体的に述べると、出力値Voxsは、図3に示したように、下流側空燃比センサの素子実際には排ガス側電極層に到達したガス素子到達ガスの空燃比が理論空燃比よりもリッチ側の空燃比であって、下流側空燃比センサ56に到達したガスの酸化平衡酸素平衡後のガスの酸素分圧が小さいとき最大出力値Max例えば、約0.9V又は1.0V近傍の値となる。即ち、下流側空燃比センサ56は、触媒流出ガスに過剰の酸素が全く含まれていない状態が所定時間以上継続しているときに最大出力値Maxを出力する。更に、出力値Voxsは、素子到達ガスの空燃比が理論空燃比よりもリーン側の空燃比であって、下流側空燃比センサ56に到達したガスの酸化平衡後のガスの酸素分圧が大きいとき最小出力値Min例えば、約0.1V又は0V近傍の値となる。即ち、下流側空燃比センサ56は、触媒流出ガスに多量の過剰酸素が含まれている状態が所定時間以上継続しているときに最小出力値Minを出力する。この出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリッチ側の空燃比からリーン側の空燃比へと変化した場合、最大出力値Max近傍値から最小出力値Min近傍値へと急激に減少する。逆に、出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリーン側の空燃比からリッチ側の空燃比へと変化した場合、最小出力値Min近傍値から最大出力値Max近傍値へと急激に増大する。出力値Voxsは、素子到達ガスの酸素分圧が、素子到達ガスの空燃比が理論空燃比であるときの酸素分圧であるとき、下流側空燃比センサ56の最大出力値Maxと最小出力値Minとの中央の値Vmid中央値Vmid=MaxMin/2に実質的に一致する。中央値Vmidは、便宜上、理論空燃比相当電圧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制御装置による空燃比制御空燃比フィードバック制御の概要について説明する。第1制御装置は、以下に述べる判定方法に従って、リーン要求及びリッチ要求の何れの空燃比要求が発生しているかを判定決定する。リーン要求は、触媒43の状態が酸素不足状態リッチ状態であると判定されているときに発生する。リッチ要求は、触媒43の状態が酸素過剰状態リーン状態であると判定されているときに発生する。従って、第1制御装置は、実質的に、触媒43の状態が酸素不足状態及び酸素過剰状態の何れの状態であるかを判定決定する。リーン要求が発生したと判定された時点からリッチ要求が発生したと判定される時点までの期間は、リーン要求発生期間と称呼される。第1制御装置は、リーン要求発生期間において、機関の空燃比を所定のリーン空燃比afLeanに設定する。リッチ要求が発生したと判定された時点からリーン要求が発生したと判定される時点までの期間は、リッチ要求発生期間と称呼される。第1制御装置は、リッチ要求発生期間において、機関の空燃比を所定のリッチ空燃比afRichに設定する。<判定方法>第1制御装置は、下流側空燃比センサ56の出力値Voxsの単位時間UT例えば、4msあたりの変化量ΔVoxsを取得する図4を参照。。この変化量ΔVoxsは、実質的に時間微分値ddtであるので、出力時間微分相関値ΔVoxsと称呼される。出力時間微分相関値ΔVoxsは、下流側空燃比センサ56の出力値Voxsに相関する値下流側空燃比センサ出力相関値の一つである。前述したように、第1制御装置は、リッチ要求発生期間において機関の空燃比をリッチ空燃比に設定する。そのため、図4の時刻t1~時刻t2に示したように、リッチ要求発生期間において出力時間微分相関値ΔVoxsは出力値Voxsが極小値Vminをとった後に正の値となり、且つ、出力時間微分相関値ΔVoxsの大きさは時刻t2において第1微分閾値ΔVth1よりも大きくなる。第1制御装置は、出力時間微分相関値ΔVoxsが正の値であって且つ出力時間微分相関値ΔVoxsの大きさがリーン要求判定値としての第1微分閾値ΔVth1よりも大きくなったとき、リーン要求が発生したと判定する。従って、図4に示した例においては、第1制御装置は、時刻t2にてリーン要求が発生したと判定する。更に、第1制御装置は、リーン要求発生期間において機関の空燃比をリーン空燃比に設定する。そのため、図4の時刻t2~時刻t3に示したように、リーン要求発生期間において出力時間微分相関値ΔVoxsは出力値Voxsが極大値Vmaxをとった後に負の値となり、且つ、出力時間微分相関値ΔVoxsの大きさは時刻t3において第2微分閾値ΔVth2よりも大きくなる。第1制御装置は、リーン要求発生期間において、出力時間微分相関値ΔVoxsが負の値であって且つ出力時間微分相関値ΔVoxsの大きさがリッチ要求判定値としての第2微分閾値ΔVth2よりも大きくなったとき、リッチ要求が発生したと判定する。従って、図4に示した例においては、第1制御装置は、時刻t3にてリッチ要求が発生したと判定する。従来の空燃比制御装置は、出力値Voxsが理論空燃比相当電圧Vstより小さい場合、触媒43の状態が酸素過剰状態にあり、従って、リッチ要求が発生していると判定する。しかしながら、出力時間微分相関値ΔVoxsが正の値であって且つ出力時間微分相関値ΔVoxsの大きさが第1微分閾値ΔVth1よりも大きくなったとき時刻t2を参照。においては、出力値Voxsが理論空燃比相当電圧Vstよりも小さいとしても、触媒43からは多量の未燃物が流出し始めているから、触媒43の状態は既に酸素不足状態になっていると考えられる。従って、第1制御装置は、従来の空燃比制御装置に比べ、触媒43の状態が酸素不足状態となったことリーン要求が発生したことをより早期に判定することができる。更に、従来の空燃比制御装置は、出力値Voxsが理論空燃比相当電圧Vstより大きいとき、触媒43の状態が酸素不足状態にあり、従って、リーン要求が発生していると判定する。しかしながら、出力時間微分相関値ΔVoxsが負の値であって且つ出力時間微分相関値ΔVoxsの大きさが第2微分閾値ΔVth2よりも大きくなったとき時刻t3を参照。においては、出力値Voxsが理論空燃比相当電圧Vstよりも大きいとしても、触媒43からは多量の酸素が流出し始めているから、触媒43は既に酸素過剰状態になっていると考えられる。従って、第1制御装置は、従来の空燃比制御装置に比べ、触媒43の状態が酸素過剰状態となったことリッチ要求が発生したことをより早期に判定することができる。<モデルによる補助>ところで、下流側空燃比センサ56の出力値Voxsにはノイズが重畳する場合がある。また、機関10の運転状態が過渡運転状態であると、下流側空燃比センサ56の出力値Voxsが触媒43の状態を精度良く表さない場合もある。一方、前述したように、エミッションを良好にするためには、触媒43が酸素過剰状態リーン状態となった時点を、触媒43が酸素不足状態リッチ状態となった時点よりも、より精度よく即ち、遅滞なく検出する必要がある。そこで、第1制御装置は、以下に述べる考えに従って、触媒43の酸素を吸蔵する余力に関する情報を取得し、その情報と下流側空燃比センサ56の出力値Voxsとに基づいて、触媒43の状態が酸素過剰状態となったかリッチ要求が発生したか否かを判定する。触媒43の酸素を吸蔵する余力に関する情報は、次のように取得される。リッチ要求発生期間、機関の空燃比はリッチ空燃比に設定される。従って、リッチ要求発生期間において、触媒43には過剰な未燃物が流入し、触媒43に吸蔵されていた酸素はその未燃物を浄化するために放出される。この放出される酸素の量を放出酸素量HSと称呼する。放出酸素量HSは、図5に示したように、リッチ要求発生期間である時刻t1~時刻t2において増大する。この放出酸素量HSは、下記1式及び下記2式により推定することができる。SFiは計算周期Tsにおける指示燃料噴射量Fiの総和であり、HSnは現時点の放出酸素量、HSn-1は現時点よりも計算周期Ts前の時点における放出酸素量である。stoichは理論空燃比例えば、14.6であり、abyfsは上述した検出上流側空燃比abyfsである。0.23は大気における酸素の重量割合である。1式において、SFistoich-abyfsは計算周期Tsにおいて触媒43に流入する過剰な未燃物に応じた量未燃物を浄化するのに必要な大気の量である。このように、放出酸素量HSは、触媒流入ガスの空燃比検出上流側空燃比abyfsに基づいて算出される。放出酸素変化量ΔHS=0.23SFistoich-abyfs...1放出酸素量HSn=HSn-1ΔHS...2このように放出酸素量HSnを算出しているとき、触媒43には過剰な未燃物が流入し続けるので、出力時間微分相関値ΔVoxsは正の値となり、且つ、その出力時間微分相関値ΔVoxsの大きさは第1微分閾値ΔVth1よりも大きくなる。この時点は、図5の時刻t2に対応している。このとき、第1制御装置は、触媒43の状態が酸素不足状態となったリーン要求が発生したと判定し、機関の空燃比をリーン空燃比に設定する。その結果、触媒43には過剰な酸素が流入する。従って、図5の時刻t2以降に示したように、吸蔵酸素量の現在値現在吸蔵酸素量KZは増大する。この現在吸蔵酸素量KZは、下記3式及び下記4式により推定することができる。KZnは現時点の現在吸蔵酸素量、KZn-1は現時点よりも計算周期Ts前の時点における現在吸蔵酸素量である。3式において、0.23SFiabyfs-stoichは計算周期Tsにおいて触媒43に流入する過剰な酸素に応じた量である。このように、現在吸蔵酸素量KZは、触媒流入ガスの空燃比検出上流側空燃比abyfsに基づいて算出される。吸蔵酸素変化量ΔKZ=0.23SFiabyfs-stoich...3現在吸蔵酸素量KZn=KZn-1ΔKZ...4ところで、リーン要求発生期間において触媒43が吸蔵することができる酸素の総量は、そのリーン要求発生期間の直前のリッチ要求発生期間において触媒43が放出した酸素量またはそれ以上の量に実質的に等しいと考えることができる。つまり、触媒43が直前のリッチ要求発生期間において所定量の酸素を放出したのであれば、その触媒43はそのリッチ要求発生期間に続くリーン要求発生期間において、少なくともその所定量の酸素を吸蔵することができる可能性が極めて高い。よって、直前のリッチ要求発生期間において算出された放出酸素量HSnから、現在のリーン要求発生期間において更新されている現在吸蔵酸素量KZnを減じた量は、現時点において触媒43が吸蔵することができる酸素量を精度良く表す。換言すると、現在吸蔵酸素量KZnが放出酸素量HSnに近づくほど、触媒43が酸素を吸蔵することができる余力は小さくなる。即ち、現在吸蔵酸素量KZnが放出酸素量HSnに近づくほど、触媒43は酸素過剰状態となっている可能性が高くなる。そこで、第1制御装置は、現在吸蔵酸素量KZnが放出酸素量HSnに近づくほど、触媒43が酸素過剰状態となったと判定する際に使用される閾値、即ち、リッチ要求が発生したと判定するための第2微分閾値ΔVth2を小さくする。これにより、リッチ要求が発生したとの判定がより早期に行われる。より具体的に述べると、第1制御装置は、図5に示したように、リーン要求が発生したと判定した時点時刻t2に直前のリッチ要求発生期間時刻t1~時刻t2において算出された放出酸素量HSnを基準値HSrefとして取得し、その基準値HSrefの所定割合kHSref、kは0~1の値を比較値として決定する。そして、第1制御装置は、現在吸蔵酸素量KZnが比較値kHSrefより小さい場合には第2微分閾値ΔVth2を相対的に大きい値第1の値ΔVthLargeに設定し、現在吸蔵酸素量KZnが比較値kHSrefより大きい場合には第2微分閾値ΔVth2を相対的に小さい値ΔVthsmall第1の値ΔVthLargeよりも小さい第2の値ΔVthsmallに設定する。第2微分閾値ΔVth2が小さい値に設定されれば、リッチ要求が発生したとの判定触媒43の状態が酸素過剰状態であるとの判定がより早期に行われる。この結果、触媒43が酸素過剰状態に陥っている期間を短くすることができるので、NOxの排出量を低減することができる。このように、第1制御装置は、ある時点における触媒43がその時点から、どの程度の酸素を吸蔵することができるかを表すことが可能な情報現在吸蔵酸素量KZ及び放出酸素量HSを取得し、触媒43の状態判定空燃比要求の判定に使用する。なお、ある時点における触媒43がその時点から、どれだけの量の酸素を更に放出できるかを推定することは容易ではない。何故なら、触媒43が放出することができる酸素の量触媒の放出可能酸素量は、触媒43の劣化の程度、触媒43の温度、触媒流入ガス還元成分の種類、及び、触媒流入ガスの還元成分の濃度リッチの度合い等の多くのファクターであって精度の良い推定が困難なファクターにより大きく変動するからである。つまり、触媒43が所定量の酸素を吸蔵している場合であっても、その触媒43の温度及び触媒流入ガスの空燃比等により触媒43が所定量の酸素を放出できるとは限らない。実際の作動次に、第1制御装置の実際の作動について説明する。以下、説明の便宜上、MapXは、a1a2...を引数とするテーブルであって値Xを求めるためのテーブルを表すものとする。<燃料噴射制御>第1制御装置のCPUは、図6に示した燃料噴射制御ルーチンを、任意の気筒のクランク角度が吸気上死点前の所定クランク角度となる毎に、その気筒に対して繰り返し実行するようになっている。前記所定クランク角度は、例えば、BTDC90°CA吸気上死点前90°クランク角度である。クランク角度が前記所定クランク角度に一致した気筒は燃料噴射気筒とも称呼される。CPUは、この燃料噴射制御ルーチンにより、指示燃料噴射量最終燃料噴射量Fiの計算及び燃料噴射の指示を行う。任意の気筒のクランク角度が吸気上死点前の所定クランク角度と一致すると、CPUはステップ600から処理を開始し、ステップ605にてフューエルカットフラグXFCの値が0であるか否かを判定する。フューエルカットフラグXFCの値は、フューエルカット開始条件が成立したときに1に設定され、フューエルカットフラグXFCの値が1であるときにフューエルカット終了条件が成立したときに0に設定される。フューエルカット開始条件は、スロットル弁開度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に進み、リーン要求フラグXLeanreqの値が1であるか否かを判定する。リーン要求フラグXLeanreqの値は後述するルーチンにより設定される。リーン要求フラグXLeanreqの値が1であると、CPUはステップ645にてYesと判定してステップ650に進み、目標空燃比abyfrを所定のリーン空燃比afLean理論空燃比よりも大きい一定の空燃比、例えば、15.0に設定する。その後、CPUはステップ625以降に進む。従って、機関の空燃比はリーン空燃比afLeanに一致させられる。これに対し、CPUがステップ645の処理を実行する時点において、リーン要求フラグXLeanreqの値が0であると、CPUはステップ645にてNoと判定してステップ655に進み、目標空燃比abyfrを所定のリッチ空燃比afRich理論空燃比よりも小さい一定の空燃比、例えば、14.2に設定する。その後、CPUはステップ625以降に進む。従って、機関の空燃比はリッチ空燃比afRichに一致させられる。一方、CPUがステップ605の処理を実行する時点において、フューエルカットフラグXFCの値が1であると、CPUはそのステップ605にてNoと判定してステップ695に直接進み、本ルーチンを一旦終了する。この場合、ステップ640の処理による燃料噴射が実行されないので、フューエルカット制御燃料供給停止制御が実行される。即ち、機関10の運転状態はフューエルカット運転状態となる。<空燃比要求判定触媒状態判定>CPUは図7にフローチャートにより示した空燃比要求判定触媒状態判定ルーチンを所定時間UTの経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ700から処理を開始してステップ705に進み、下流側空燃比センサ56の出力値Voxsから前回値Voxsoldを減じた値を出力時間微分相関値ΔVoxsとして取得する。前回値Voxsoldは、出力値Voxsの所定時間UT前の時点における値である。次に、CPUはステップ710に進み、出力値Voxsを前回値Voxsoldとして格納する。その後、CPUはステップ715に進み、リーン要求フラグXLeanreqの値が1であるか否かを判定する。いま、リーン要求フラグXLeanreqの値が0であると仮定する。この場合、CPUはステップ715にてNoと判定してステップ720に進み、出力時間微分相関値ΔVoxsが正0以上であり且つ出力時間微分相関値ΔVoxsの大きさ|ΔVoxs|がリーン要求判定値としての第1微分閾値ΔVth1より大きいか否かを判定する。このとき、出力時間微分相関値ΔVoxsが負0未満であるか、又は、出力時間微分相関値ΔVoxsの大きさ|ΔVoxs|が第1微分閾値ΔVth1以下であれば、CPUはステップ720にてNoと判定してステップ795に直接進み、本ルーチンを一旦終了する。この状態リーン要求フラグXLeanreqの値が0である状態において、フィードバック制御フラグXFBの値が1であると、機関の空燃比はリッチ空燃比afRichに制御される図6のステップ655を参照。。更に、この状態においては、触媒43に過剰な未燃物が流入するので、後述する図8に示したルーチンにより放出酸素量HSが更新されて行く。この状態が継続すると、触媒43から未燃物が流出し始めるので、図4の時刻t1~時刻t2に示されているように、出力値Voxsは極小値Vminを取った後に増加する。従って、あるタイミングにおいて、出力時間微分相関値ΔVoxsは正となり、且つ、出力時間微分相関値ΔVoxsの大きさ|ΔVoxs|は第1微分閾値ΔVth1よりも大きくなる。この場合、CPUはステップ720にてYesと判定し、ステップ725に進んでリーン要求フラグXLeanreqの値を1に設定する。これにより、CPUは図6のステップ645にてYesと判定し、ステップ650に進む。従って、機関の空燃比はリーン空燃比afLeanに設定される。この状態においては触媒43に過剰な酸素が流入するので、後述する図8に示したルーチンにより現在吸蔵酸素量KZが更新されて行く。この状態において、CPUが図7のステップ700から処理を開始すると、CPUはステップ705及びステップ710の処理を実行した後にステップ715に進み、そのステップ715にてYesと判定してステップ730に進む。CPUは、そのステップ730にて現在吸蔵酸素量KZ=KZnが比較値kHSrefkは0~1の定数、HSrefは基準値以上であるか否かを判定する。なお、基準値HSrefは、図8のルーチンにより別途取得されている。現時点は、リーン要求フラグXLeanreqの値が0から1へと変更された直後である。従って、現在吸蔵酸素量KZは0から増大し始めた直後の値であるので、比較値kHSrefよりも小さい。このため、CPUはステップ730にてNoと判定してステップ735に進み、第2微分閾値ΔVth2を相対的に大きい第1の値ΔVthLargeに設定する。次いで、CPUはステップ745に進み、出力時間微分相関値ΔVoxsが負0未満であり且つ出力時間微分相関値ΔVoxsの大きさ|ΔVoxs|がリッチ要求判定値としての第2微分閾値ΔVth2より大きいか否かを判定する。このとき、出力時間微分相関値ΔVoxsが正0以上であるか、又は、出力時間微分相関値ΔVoxsの大きさ|ΔVoxs|が第2微分閾値ΔVth2以下であれば、CPUはステップ745にてNoと判定してステップ795に直接進み、本ルーチンを一旦終了する。この状態が継続すると、触媒43から酸素が流出し始めるので、図4の時刻t2~時刻t3に示されているように、出力値Voxsは極大値Vmaxを取った後に減少する。従って、あるタイミングにおいて、出力時間微分相関値ΔVoxsは負となり、且つ、出力時間微分相関値ΔVoxsの大きさ|ΔVoxs|は第2微分閾値ΔVth2この場合、第1の値ΔVthLargeよりも大きくなる。このとき、CPUはステップ745にてYesと判定し、ステップ750に進んでリーン要求フラグXLeanreqの値を0に設定する。ところで、何らかの理由により、現在吸蔵酸素量KZが比較値kHSref以上の値に増大する時点まで、出力時間微分相関値ΔVoxsの大きさ|ΔVoxs|が第1の値ΔVthLargeに設定された第2微分閾値ΔVth2よりも大きくならない場合が生じる。現在吸蔵酸素量KZが比較値kHSref以上の値に増大したということは、触媒43の酸素を吸蔵する余力が非常に小さいこと、換言すると、触媒43が酸素過剰状態に陥っている可能性が高いことを意味する。そこで、この場合、CPUはステップ730にてYesと判定してステップ740に進み、第2微分閾値ΔVth2を第1の値ΔVthLargeよりも小さい第2の値ΔVthSmallに設定する。これにより、ステップ745の判定条件が成立し易くなる。換言すると、リーン要求フラグXLeanreqの値を0にする時点即ち、リッチ要求が発生したと判定する時点、或いは、触媒43の状態が酸素過剰状態であると判定する時点が早期に到来するように、第2微分閾値ΔVth2が変更される。従って、触媒43が酸素過剰状態に到達したとき、機関の空燃比を遅滞なくリッチ空燃比afRichに設定することができる。<放出酸素量及び現在吸蔵酸素量の算出>CPUは、放出酸素量HS及び現在吸蔵酸素量KZを算出するために、所定時間Ts計算周期Tsが経過する毎に図8にフローチャートにより示したルーチンを実行するようになっている。従って、所定のタイミングになると、CPUは図8のステップ800から処理を開始してステップ805に進み、フューエルカットフラグXFCの値が0であるか否かを判定する。このとき、フューエルカットフラグXFCの値が1であると即ち、フューエルカット制御が実行中であると、CPUはステップ805にてNoと判定して以下に述べるステップ810及びステップ815の処理を実行し、その後、ステップ895に進んで本ルーチンを一旦終了する。ステップ810:CPUは、放出酸素量HSの値を0に設定する。ステップ815:CPUは、現在吸蔵酸素量KZの値を0に設定する。一方、CPUがステップ805の処理を行う時点において、フューエルカットフラグXFCの値が0であると、CPUはステップ805にてYesと判定してステップ820に進み、フィードバック制御フラグXFBの値が1であるか否かを判定する。このとき、フィードバック制御フラグXFBの値が0であると、CPUはステップ820にてNoと判定し、上述したステップ810及びステップ815の処理を実行し、ステップ895に進んで本ルーチンを一旦終了する。これに対し、CPUがステップ820の処理を実行する時点において、フィードバック制御フラグXFBの値が1であると、CPUはそのステップ820にてYesと判定してステップ825に進み、リーン要求フラグXLeanreqの値が1であるか否かを判定する。いま、リーン要求フラグXLeanreqの値が0であると仮定する。即ち、現時点がリッチ要求発生期間であると仮定する。この場合、CPUはステップ825にてNoと判定し、以下に述べるステップ830乃至ステップ840の処理を順に行い、その後、ステップ895に進んで本ルーチンを一旦終了する。ステップ830:CPUは、上記1式に従って放出酸素変化量ΔHSを算出する。ステップ835:CPUは、上記2式に従って放出酸素量HSを算出する。ステップ840:CPUは、現在吸蔵酸素量KZの値を0に設定する。以上により、リッチ要求発生期間において、放出酸素量HSが更新されて行く。この状態において、図7のステップ725の処理が実行されることによりリーン要求フラグXLeanreqの値が1へと変更されたと仮定する。この場合、CPUはステップ825にてYesと判定してステップ845に進み、リーン要求フラグXLeanreqの値が0から1へと変化した直後であるか否かを判定する。前述した仮定に従うと、リーン要求フラグXLeanreqの値は0から1へと変更された直後である。従って、CPUはステップ845にてYesと判定してステップ850に進み、その時点における放出酸素量HSを基準値HSrefとして格納する図5の時刻t2を参照。。なお、CPUがステップ845の処理を実行する時点において、リーン要求フラグXLeanreqの値が0から1へと変更された直後でなければ、CPUはステップ845にてNoと判定してステップ855以降に直接進む。その後、CPUは以下に述べるステップ855乃至ステップ865の処理を順に行い、ステップ895に進んで本ルーチンを一旦終了する。ステップ855:CPUは、上記3式に従って吸蔵酸素変化量ΔKZを算出する。ステップ860:CPUは、上記4式に従って現在吸蔵酸素量KZを算出する。ステップ865:CPUは、放出酸素量HSの値を0に設定する。以上、説明したように、第1制御装置は、下流側空燃比センサ56の出力値Voxsに相関を有する値下流側空燃比センサ出力相関値としての出力時間微分相関値ΔVoxsと所定のリーン要求判定値第1微分閾値ΔVth1との比較の結果に基づいてリーン要求が発生したか否かを判定するとともに図7のステップ720を参照。、前記下流側空燃比センサ出力相関値出力時間微分相関値ΔVoxsと所定のリッチ要求判定値第2微分閾値ΔVth2との比較に基づいてリッチ要求が発生したか否かを判定する図7のステップ745を参照。空燃比要求判定手段と、前記リーン要求が発生したと判定された時点から前記リッチ要求が発生したと判定される時点までのリーン要求発生期間リーン要求フラグXLeanreqの値が1である期間において前記機関に供給される混合気の空燃比を理論空燃比よりも大きい空燃比であるリーン空燃比afLeanに制御するとともに図6のステップ645及びステップ650を参照。、前記リッチ要求が発生したと判定された時点から前記リーン要求が発生したと判定される時点までのリッチ要求発生期間リーン要求フラグXLeanreqの値が0である期間において前記混合気の空燃比を理論空燃比よりも小さい空燃比であるリッチ空燃比afRichに制御する図6のステップ645及びステップ655を参照。空燃比制御手段と、を備える。更に、前記空燃比要求判定手段は、前記リッチ要求発生期間において触媒43から放出された酸素の総量である放出酸素量HSを触媒43に流入するガスの空燃比検出上流側空燃比abyfsに基づいて算出するとともに図8のステップ830及びステップ835を参照。、前記リッチ要求発生期間に続く前記リーン要求発生期間の開始後に触媒43に吸蔵される酸素の量の積算値である現在吸蔵酸素量KZを触媒43に流入するガスの空燃比検出上流側空燃比abyfsに基づいて算出し図8のステップ855及びステップ860を参照。、現在吸蔵酸素量KZが放出酸素量HSに近づくほど前記リッチ要求が発生したと判定する時点がより早期に到来するように前記リッチ要求判定値を変更するように構成されている図7のステップ730乃至ステップ740を参照。。更に、前記空燃比要求判定手段は、前記下流側空燃比センサ出力相関値として前記下流側空燃比センサの出力値の単位時間あたりの変化量に相関する出力時間微分相関値ΔVoxsを採用し、前記リッチ要求発生期間において前記出力時間微分相関値ΔVoxsが正であり且つ前記出力時間微分相関値の大きさが前記リーン要求判定値としての第1微分閾値ΔVth1よりも大きくなったとき前記リーン要求が発生したと判定し図7のステップ720を参照。、前記リーン要求発生期間において前記出力時間微分相関値ΔVoxsが負であり且つ前記出力時間微分相関値の大きさが前記リッチ要求判定値としての第2微分閾値ΔVth2よりも大きくなったとき前記リッチ要求が発生したと判定し図7のステップ745を参照。、更に、現在吸蔵酸素量KZが放出酸素量HSrefに近づくほど前記第2微分閾値ΔVth2を小さくすることにより、前記リッチ要求が発生したと判定する時点がより早期に到来するように構成されている図7のステップ730乃至ステップ740を参照。。これによれば、現在吸蔵酸素量KZが放出酸素量HSrefに近づいた場合、即ち、触媒43の酸素を吸蔵する余力が小さくなり触媒43が酸素過剰状態である可能性が高くなると、リッチ要求が発生したと判定する時点がより早期に到来するようにリッチ要求判定値第2微分閾値ΔVth2が変更される。従って、リッチ要求が発生したこと即ち、触媒43が酸素過剰状態となったことを遅滞なく検出することができる。その結果、触媒43に適切なタイミングにてリッチ空燃比の排ガスを流入させることができるので、NOxの排出量を低減することができる。なお、第1制御装置は、現在吸蔵酸素量KZが比較値kHSrefよりも大きいか否かに応じてリッチ要求判定値第2微分閾値ΔVth2を切り替えていたが、現在吸蔵酸素量KZが基準値HSrefに近づくほどリッチ要求判定値第2微分閾値ΔVth2が次第に連続的に小さくなるようにリッチ要求判定値を変更してもよい。<第2実施形態>次に、本発明の第2実施形態に係る制御装置以下、単に第2制御装置と称呼する。について説明する。第2制御装置は、空燃比要求を判定するために使用する下流側空燃比センサ出力相関値として下流側空燃比センサ56の出力値Voxsそのものを採用し、且つ、リーン要求判定値及びリッチ要求判定値が第1制御装置のそれらと相違している点において、第1制御装置と相違している。即ち、第2制御装置は、第1制御装置が採用した空燃比要求の判定方法触媒43の状態を判定する方法とは相違する方法を採用している点のみにおいて、第1制御装置と相違している。従って、以下、この相違点を中心として説明する。<判定方法>第2制御装置は、以下に述べる判定方法に従って、リーン要求及びリッチ要求の何れの空燃比要求が発生しているかを判定決定する。第2制御装置は、リッチ要求発生期間において、下流側空燃比センサ56の出力値Voxsの極小値Vminを取得する。そして、第2制御装置は、図9に示したように、取得した極小値Vminに正の第1値ΔV1を加えた値VminΔV1をリーン要求判定値として設定する。正の第1値ΔV1は予め定められた一定値である。第2制御装置は、リッチ要求発生期間において、下流側空燃比センサ56の出力値Voxsが極小値Vminをとった後にリーン要求判定値VminΔV1以上となったとき、リーン要求が発生したと判定する図9の時刻t2を参照。。第2制御装置は、リーン要求発生期間において、下流側空燃比センサ56の出力値Voxsの極大値Vmaxを取得する。そして、第2制御装置は、図9に示したように、取得した極大値Vmaxから正の第2値ΔV2を減じた値Vmax-ΔV2をリッチ要求判定値として設定する。正の第2値ΔV2は、後述するように、放出酸素量HS及び現在吸蔵酸素量KZに基づいて変更される。第2制御装置は、リーン要求発生期間において、下流側空燃比センサ56の出力値Voxsが極大値Vmaxを取った後にリッチ要求判定値Vmax-ΔV2以下となったとき、リッチ要求が発生したと判定する図9の時刻t3を参照。。<モデルによる補助>第2制御装置は、第1制御装置と同様、放出酸素量HS及び現在吸蔵酸素量KZを算出する。そして、第2制御装置は、現時点の現在吸蔵酸素量KZが、直前のリッチ要求発生期間において算出された放出酸素量HS基準値HSrefに近づくほど、正の第2値ΔV2を小さくする。より具体的に述べると、第2制御装置は、リーン要求が発生したと判定した時点に直前のリッチ要求発生期間において算出された放出酸素量HSを基準値HSrefとして取得し、その基準値HSrefの所定割合kHSref、kは0~1の値を比較値として決定する。そして、第2制御装置は、現在吸蔵酸素量KZが比較値kHSrefより小さい場合には正の第2値ΔV2を相対的に大きい値ΔVLargeに設定し、現在吸蔵酸素量KZnが比較値kHSrefより大きい場合には正の第2値ΔV2を相対的に小さい値ΔVSmallに設定する。小さい値ΔVSmallは大きい値ΔVLargeよりも小さい。換言すると、第2制御装置は、現在吸蔵酸素量KZが比較値kHSrefより小さい場合にはリッチ要求判定値Vmax-ΔV2を小さい値に設定し、現在吸蔵酸素量KZが比較値kHSrefより大きい場合にはリッチ要求判定値Vmax-ΔV2を大きい値に設定する。正の第2値ΔV2が相対的に小さい値ΔVSmallに設定されれば即ち、リッチ要求判定値Vmax-ΔV2が相対的に大きい値に設定されれれば、リッチ要求が発生したとの判定触媒43の状態が酸素過剰状態であるとの判定がより早期に行われる。この結果、触媒43が酸素過剰状態に陥っている期間を短くすることができるので、NOxの排出量を低減することができる。実際の作動第2制御装置のCPUは、図6及び図8に示したルーチンを実行する。更に、第2制御装置のCPUは図7に代わる図10に示したルーチンを実行する。図6及び図8に示したルーチンについては説明済みである。よって、以下、図10に示したルーチンに基づくCPUの作動について説明する。第2制御装置のCPUは、所定時間が経過する毎に図10にフローチャートにより示した空燃比要求判定触媒状態判定ルーチンを繰り返し実行している。従って、所定のタイミングになると、CPUはステップ1000から処理を開始してステップ1005に進み、リーン要求フラグXLeanreqの値が1であるか否かを判定する。いま、リーン要求フラグXLeanreqの値が0であると仮定する。この場合、CPUはステップ1005にてNoと判定してステップ1010に進み、リーン要求フラグXLeanreqの値が1から0へと変化した後に極小値Vminが出現したか極小値Vminが取得されたか否か判定する。リーン要求フラグXLeanreqの値が1から0へと変化した後に極小値Vminが出現していなければ、CPUはステップ1010にてNoと判定してステップ1095に直接進み、本ルーチンを一旦終了する。リーン要求フラグXLeanreqの値が0である場合即ち、リッチ要求発生期間、CPUは図6のステップ645にてNoと判定し、ステップ655に進む。従って、機関の空燃比はリッチ空燃比afRichに設定される。この状態においては触媒43に過剰な未燃物が流入するので、図8に示したルーチンにより放出酸素量HSが更新されて行く。更に、後述するように、リーン要求フラグXLeanreqの値は、出力値Voxsが減少している時点にて0に設定される図9の時刻t1又は時刻t3を参照。。加えて、リーン要求フラグXLeanreqの値が0である場合、ある時点にて触媒43から未燃物が流出を開始するので、出力値Voxsは増大を開始する。よって、図9の時刻t1~時刻t2に示したように、出力値Voxsは極小値Vminをとる。そこで、リーン要求フラグXLeanreqの値が1から0へと変化した後に極小値Vminが出現すると、CPUはステップ1010にてYesと判定してステップ1015に進み、出力値Voxsが極小値Vminに正の第1値ΔV1を加えた値であるリーン要求判定値VminΔV1よりも大きいか否かを判定する。この場合、出力値Voxsがリーン要求判定値VminΔV1以下であれば、CPUはステップ1015にてNoと判定し、ステップ1095に直接進んで本ルーチンを一旦終了する。これに対し、CPUがステップ1015の処理を実行する時点において、出力値Voxsがリーン要求判定値VminΔV1よりも大きいと、CPUはステップ1015にてYesと判定してステップ1020に進み、リーン要求フラグXLeanreqの値を1に設定する。その後、CPUはステップ1095に進んで本ルーチンを一旦終了する。これにより、CPUは図6のステップ645にてYesと判定し、ステップ650に進む。従って、機関の空燃比はリーン空燃比afLeanに設定される。この状態においては触媒43に過剰な酸素が流入するので、図8に示したルーチンにより現在吸蔵酸素量KZが更新されて行く。更に、図9に示したように、出力値Voxsが増大している期間において機関の空燃比がリーン空燃比afLeanに設定される。加えて、機関の空燃比がリーン空燃比afLeanに設定された場合、ある時点から触媒43から酸素が流出を開始するので、出力値Voxsは減少を開始する。よって、図9の時刻t2~時刻t3に示したように、出力値Voxsは極大値Vmaxをとる。この状態において、CPUが図10のステップ1000から処理を開始すると、CPUはステップ1005にてYesと判定してステップ1025に進み、リーン要求フラグXLeanreqの値が0から1へと変化した後に極大値Vmaxが出現したか極大値Vmaxが取得されたか否か判定する。そして、リーン要求フラグXLeanreqの値が0から1へと変化した後に極大値Vmaxが出現していなければ、CPUはステップ1025にてNoと判定し、ステップ1095に直接進んで本ルーチンを一旦終了する。これに対し、CPUがステップ1025の処理を実行する時点において、リーン要求フラグXLeanreqの値が0から1へと変化した後に極大値Vmaxが出現していると、CPUはそのステップ1025にてYesと判定してステップ1030に進む。CPUは、そのステップ1030にて現在吸蔵酸素量KZが比較値kHSrefkは0~1の定数、HSrefは基準値以上であるか否かを判定する。なお、基準値HSrefは、図8のルーチンにより別途取得されている。現時点は、リーン要求フラグXLeanreqの値が0から1へと変更された直後である。従って、現在吸蔵酸素量KZは0から増大し始めた直後の値であるので、比較値kHSrefよりも小さい。このため、CPUはステップ1030にてNoと判定してステップ1035に進み、正の第2値ΔV2に相対的に大きい値ΔVLargeを設定する。次いで、CPUはステップ1040に進み、出力値Voxsが極大値Vmaxから正の第2値ΔV2を減じた値であるリッチ要求判定値Vmax-ΔV2よりも小さいか否かを判定する。この場合、出力値Voxsがリッチ要求判定値Vmax-ΔV2以上であれば、CPUはステップ1040にてNoと判定し、ステップ1095に直接進んで本ルーチンを一旦終了する。これに対し、CPUがステップ1040の処理を実行する時点において、出力値Voxsがリッチ要求判定値Vmax-ΔV2よりも小さいと、CPUはステップ1040にてYesと判定してステップ1045に進み、リーン要求フラグXLeanreqの値を0に設定する。その後、CPUはステップ1095に進んで本ルーチンを一旦終了する。この結果、機関の空燃比はリッチ空燃比afRichに設定される。ところで、何らかの理由により、現在吸蔵酸素量KZが比較値kHSref以上の値に増大する時点まで、出力値Voxsがリッチ要求判定値Vmax-ΔV2=Vmax-ΔVLargeよりも小さくならない場合が生じる。現在吸蔵酸素量KZが比較値kHSref以上の値に増大したということは、触媒43の酸素を吸蔵する余力が非常に小さいこと、換言すると、触媒43が酸素過剰状態に陥っている可能性が高いことを意味する。そこで、この場合、CPUはステップ1030にてYesと判定してステップ1050に進み、正の第2値ΔV2に相対的に大きい値ΔVLargeよりも小さい、相対的に小さい値ΔVSmallを設定する。これにより、リッチ要求判定値Vmax-ΔV2は相対的に大きい値となる。これにより、ステップ1040の判定条件が成立し易くなる。換言すると、リーン要求フラグXLeanreqの値を0にする時点即ち、リッチ要求が発生したと判定する時点、或いは、触媒43の状態が酸素過剰状態であると判定する時点が早期に到来するように、リッチ要求判定値Vmax-ΔV2が変更される。従って、触媒43が酸素過剰状態に到達したとき、機関の空燃比を遅滞なくリッチ空燃比afRichに設定することができる。以上、説明したように、第2制御装置は、第1制御装置と同様の空燃比制御手段を備える。更に、第2制御装置の空燃比要求判定手段は、下流側空燃比センサ出力相関値として下流側空燃比センサ56の出力値Voxsを採用する。そして、その空燃比要求判定手段は、リッチ要求発生期間において下流側空燃比センサ56の出力値Voxsの極小値Vminを取得するとともに前記取得された極小値Vminに正の第1値ΔV1を加えた値VminΔV1をリーン要求判定値として採用し、且つ、下流側空燃比センサ56の出力値Voxsが前記極小値Vminをとった後に前記リーン要求判定値VminΔV1よりも大きくなったときリーン要求が発生したと判定し図10のステップ1010乃至ステップ1020を参照。、リーン要求発生期間において下流側空燃比センサ56の出力値Voxsの極大値Vmaxを取得するとともに前記取得された極大値Vmaxから正の第2値ΔV2を減じた値Vmax-ΔV2をリッチ要求判定値として採用し、且つ、下流側空燃比センサ56の出力値Voxsが前記極大値Vmaxをとった後に前記リッチ要求判定値Vmax-ΔV2よりも小さくなったときリッチ要求が発生したと判定し図10のステップ1025、ステップ1040及びステップ1045を参照。、更に、現在吸蔵酸素量KZが放出酸素量HSrefに近づくほど前記第2値ΔV2を小さくすることにより、前記リッチ要求が発生したと判定する時点がより早期に到来するように構成されている図10のステップ1030、ステップ1035及びステップ1050を参照。。この第2制御装置によれば、下流側空燃比センサ56の出力値Voxsがリーン空燃比に相当する値理論空燃比相当電圧Vstよりも小さい値であっても、その出力値Voxsが極小値に第1値を加えた値VminΔV1よりも小さい値から大きい値へと変化したとき、リーン要求が発生した触媒の状態がリッチ状態となったと判定することができる。更に、第2制御装置によれば、下流側空燃比センサ56の出力値Voxsがリッチ空燃比に相当する値理論空燃比相当電圧Vstよりも大きい値であっても、その出力値Voxsが極大値から第2値を減じた値Vmax-ΔV2よりも大きい値から小さい値へと変化したとき、リッチ要求が発生した触媒の状態がリーン状態となったと判定することができる。よって、第2制御装置によれば、より早期にリッチ要求及びリーン要求が発生したことを判定することができるので、触媒からNOxが漏れ出す期間及び未燃物が漏れ出す期間を短縮化することができる。加えて、第2制御装置によれば、現在吸蔵酸素量KZが放出酸素量HSrefに近づくほど、前記リッチ要求が発生したと判定する時点がより早期に到来するようにリッチ要求判定値である極大値から第2値を減じた値Vmax-ΔV2が変更される。即ち、現在吸蔵酸素量KZが放出酸素量HSrefに近づくほど、第2値ΔV2は小さい値へと変更される。この結果、リーン要求発生期間において、下流側空燃比センサ56の出力値Voxsが極大値から第2値を減じた値Vmax-ΔV2よりも小さくなる時点が早期に到来するので、リッチ要求が発生したことを早期に且つ確実に判定することができる。従って、NOxの排出量を低減することができる。なお、第2制御装置は、現在吸蔵酸素量KZが比較値kHSrefよりも大きいか否かに応じてリッチ要求判定値Vmax-ΔV2を切り替えていたが、現在吸蔵酸素量KZが基準値HSrefに近づくほどリッチ要求判定値Vmax-ΔV2が次第に連続的に大きくなるようにリッチ要求判定値を変更してもよい。<第3実施形態>次に、本発明の第3実施形態に係る制御装置以下、単に第3制御装置と称呼する。について説明する。第3制御装置は、空燃比要求の判定のために使用される下流側空燃比センサ出力相関値が下流側空燃比センサ56の出力値Voxsそのものであり、且つ、リーン要求判定値及びリッチ要求判定値が第1制御装置のそれらと相違している点において、第1制御装置と相違している。即ち、第3制御装置は、第1制御装置が採用した空燃比要求の判定方法触媒43の状態を判定する方法とは相違する方法を採用している点のみにおいて、第1制御装置と相違している。従って、以下、この相違点を中心として説明する。<判定方法>第3制御装置は、以下に述べる判定方法に従って、リーン要求及びリッチ要求の何れの空燃比要求が発生しているかを判定決定する。第3制御装置は、リッチ要求発生期間において、下流側空燃比センサ56の出力値Voxsがリーン要求判定値触媒リッチ状態判定用閾値VLthよりも小さい値から大きい値へと変化したとき、リーン要求が発生したと判定する図11の時刻t2を参照。。更に、第3制御装置は、リーン要求発生期間において、下流側空燃比センサ56の出力値Voxsがリッチ要求判定値触媒リーン状態判定用閾値VRthよりも大きい値から小さい値へと変化したとき、リッチ要求が発生したと判定する図11の時刻t1及び時刻t3を参照。。<モデルによる補助>第3制御装置は、第1制御装置と同様、放出酸素量HS及び現在吸蔵酸素量KZを算出する。そして、第3制御装置は、現時点の現在吸蔵酸素量KZが、直前のリッチ要求発生期間において算出された放出酸素量HS基準値HSrefに近づくほど、リッチ要求判定値触媒リーン状態判定用閾値VRthを大きくする。より具体的に述べると、第3制御装置は、リーン要求が発生したと判定した時点に直前のリッチ要求発生期間において算出された放出酸素量HSを基準値HSrefとして取得し、その基準値HSrefの所定割合kHSref、kは0~1の値を比較値として決定する。そして、第3制御装置は、現在吸蔵酸素量KZが比較値kHSrefより小さい場合にはリッチ要求判定値触媒リーン状態判定用閾値VRthを小さい値に設定し、現在吸蔵酸素量KZが比較値kHSrefより大きい場合にはリッチ要求判定値触媒リーン状態判定用閾値VRthを大きい値に設定する。リッチ要求判定値VRthが大きい値に設定されれば、出力値Voxsがリッチ要求判定値VRthよりも大きい値から小さい値へと変化する時点が早期に訪れる。即ち、リッチ要求が発生したとの判定触媒43の状態が酸素過剰状態であるとの判定がより早期に行われる。この結果、触媒43が酸素過剰状態に陥っている期間を短くすることができるので、NOxの排出量を低減することができる。実際の作動第3制御装置のCPUは、図6及び図8に示したルーチンを実行する。更に、第3制御装置のCPUは図7に代わる図12に示したルーチンを実行する。図6及び図8に示したルーチンについては説明済みである。よって、以下、図12に示したルーチンに基づくCPUの作動について説明する。第3制御装置のCPUは、所定時間が経過する毎に図12にフローチャートにより示した空燃比要求判定触媒状態判定ルーチンを繰り返し実行している。従って、所定のタイミングになると、CPUはステップ1200から処理を開始してステップ1210に進み、リーン要求フラグXLeanreqの値が1であるか否かを判定する。いま、リーン要求フラグXLeanreqの値が0であると仮定する。この場合、CPUはステップ1210にてNoと判定してステップ1220に進み、下流側空燃比センサ56の出力値Voxsがリーン要求判定値触媒リッチ状態判定用閾値VLthよりも小さい値から大きい値へと変化した直後であるか否かを判定する。このとき、出力値Voxsがリーン要求判定値VLthよりも小さい値から大きい値へと変化した直後でなければ、CPUはステップ1220にてNoと判定し、ステップ1295に進んで本ルーチンを一旦終了する。リーン要求フラグXLeanreqの値が0である場合即ち、リッチ要求発生期間、CPUは図6のステップ645にてNoと判定し、ステップ655に進む。従って、機関の空燃比はリッチ空燃比afRichに設定される。この状態においては触媒43に過剰な未燃物が流入するので、図8に示したルーチンにより放出酸素量HSが更新されて行く。更に、リーン要求フラグXLeanreqの値が0である場合、ある時点にて触媒43から未燃物が流出を開始するので、出力値Voxsは増大を開始する。よって、図11の時刻t2に示したように、あるタイミングにて出力値Voxsはリーン要求判定値VLthよりも小さい値から大きい値へと変化する。このとき、CPUがステップ1220の処理を実行すると、CPUはそのステップ1220にてYesと判定してステップ1230に進み、リーン要求フラグXLeanreqの値を1に設定する。その後、CPUはステップ1295に進んで本ルーチンを一旦終了する。これにより、CPUは図6のステップ645にてYesと判定し、ステップ650に進む。従って、機関の空燃比はリーン空燃比afLeanに設定される。この状態においては触媒43に過剰な酸素が流入するので、図8に示したルーチンにより現在吸蔵酸素量KZが更新されて行く。この状態において、CPUが図12のステップ1200から処理を開始すると、CPUはステップ1210にてYesと判定してステップ1240に進み、現在吸蔵酸素量KZが比較値kHSrefkは0~1の定数、HSrefは基準値以上であるか否かを判定する。なお、基準値HSrefは、図8のルーチンにより別途取得されている。現時点は、リーン要求フラグXLeanreqの値が0から1へと変更された直後である。従って、現在吸蔵酸素量KZは0から増大し始めた直後の値であるので、比較値kHSrefよりも小さい。このため、CPUはステップ1240にてNoと判定してステップ1250に進み、リッチ要求判定値触媒リーン状態判定用閾値VRthを相対的に小さい値VthSmallに設定する。次に、CPUはステップ1260に進み、出力値Voxsがリッチ要求判定値触媒リーン状態判定用閾値VRthよりも大きい値から小さい値へと変化した直後であるか否かを判定する。このとき、出力値Voxsがリッチ要求判定値VRthよりも大きい値から小さい値へと変化した直後でなければ、CPUはステップ1260にてNoと判定し、ステップ1295に進んで本ルーチンを一旦終了する。リーン要求フラグXLeanreqの値が1である場合即ち、リーン要求発生期間、機関の空燃比はリーン空燃比afLeanに設定される。この状態においては、ある時点にて触媒43から酸素が流出を開始するので、出力値Voxsは減少を開始する。よって、図11の時刻t1及び時刻t3に示したように、あるタイミングにて出力値Voxsはリッチ要求判定値VRthよりも大きい値から小さい値へと変化する。このとき、CPUがステップ1260の処理を実行すると、CPUはそのステップ1260にてYesと判定してステップ1270に進み、リーン要求フラグXLeanreqの値を0に設定する。その後、CPUはステップ1295に進んで本ルーチンを一旦終了する。これにより、CPUは図6のステップ645にてNoと判定し、ステップ655に進む。従って、機関の空燃比はリッチ空燃比afRichに設定される。ところで、何らかの理由により、現在吸蔵酸素量KZが比較値kHSref以上の値に増大する時点まで、出力値Voxsがリッチ要求判定値VRthよりも大きい値から小さい値へと変化しない場合が生じる。現在吸蔵酸素量KZが比較値kHSref以上の値に増大したということは、触媒43の酸素を吸蔵する余力が非常に小さいこと、換言すると、触媒43が酸素過剰状態に陥っている可能性が高いことを意味する。そこで、この場合、CPUはステップ1240にてYesと判定してステップ1280に進み、リッチ要求判定値触媒リーン状態判定用閾値VRthを相対的に大きい値VthLargeに設定する。相対的に大きい値VthLargeは相対的に小さい値VthSmallよりも大きい。これにより、ステップ1260の判定条件が成立し易くなる。換言すると、リーン要求フラグXLeanreqの値を0にする時点即ち、リッチ要求が発生したと判定する時点、或いは、触媒43の状態が酸素過剰状態であると判定する時点が早期に到来するように、リッチ要求判定値VRthが変更される。従って、触媒43が酸素過剰状態に到達したとき、機関の空燃比を遅滞なくリッチ空燃比afRichに設定することができる。以上、説明したように、第3制御装置は、第1制御装置と同様の空燃比制御手段を備える。更に、第3制御装置の空燃比要求判定手段は、下流側空燃比センサ出力相関値として下流側空燃比センサ56の出力値Voxsを採用する。そして、その空燃比要求判定手段は、リッチ要求発生期間において下流側空燃比センサ56の出力値Voxsがリーン要求判定値としての触媒リッチ状態判定用閾値VLthよりも小さい値から大きい値へと変化したときリーン要求が発生したと判定し図12のステップ1220及びステップ1230を参照。、リーン要求発生期間において下流側空燃比センサ56の出力値Voxsがリッチ要求判定値としての触媒リーン状態判定用閾値VRthよりも大きい値から小さい値へと変化したときリッチ要求が発生したと判定し図12のステップ1260及びステップ1270を参照。、更に、現在吸蔵酸素量KZが放出酸素量HSrefに近づくほど触媒リーン状態判定用閾値VRthを大きくすることにより、前記リッチ要求が発生したと判定する時点がより早期に到来するように構成されている図12のステップ1240、ステップ1250及びステップ1280を参照。。第3制御装置によれば、現在吸蔵酸素量KZが基準値HSrefに近づくほど、リーン状態判定用閾値VRthが大きい値へと変更される。この結果、現在吸蔵酸素量KZが基準値HSrefに近づくほど、リーン要求発生期間において出力値Voxsがリッチ要求判定値としての触媒リーン状態判定用閾値VRthよりも大きい値から小さい値へと変化する時点が早期に到来するので、リッチ要求が発生したことを早期に且つ確実に判定することができる。従って、NOxの排出量を低減することができる。なお、第3制御装置は、現在吸蔵酸素量KZが比較値kHSrefよりも大きいか否かに応じてリッチ要求判定値触媒リーン状態判定用閾値VRthを切り替えていたが、現在吸蔵酸素量KZが基準値HSrefに近づくほどリッチ要求判定値触媒リーン状態判定用閾値VRthが次第に連続的に大きくなるようにリッチ要求判定値を変更してもよい。<第4実施形態>次に、本発明の第4実施形態に係る制御装置以下、単に第4制御装置と称呼する。について説明する。第4制御装置は、放出酸素量HS及び現在吸蔵酸素量KZの算出方法が第1制御装置が採用したそれらの算出方法と相違する点のみにおいて、第1制御装置と相違している。従って、以下、この相違点を中心として説明する。なお、第2及び第3制御装置も、第4制御装置の放出酸素量HS及び現在吸蔵酸素量KZの算出方法を採用することができる。前述したように、触媒43は、リッチ要求発生期間において酸素を放出し、リーン要求発生期間において酸素を吸蔵する。更に、あるリーン要求発生期間は、そのリーン要求発生期間の直前のリッチ要求発生期間において放出した酸素の量よりも少ない量の酸素を吸蔵した時点にて終了し、次の、リッチ要求発生期間が開始する場合が多い。従って、あるリッチ要求発生期間において放出した酸素の量Aよりも少ない量Bの酸素をそのリッチ要求発生期間に続くリーン要求発生期間において吸蔵した時点において次のリッチ要求発生期間が開始されたとき、その時点における放出酸素量は0ではなく値A-Bとすべきである。一方、フューエルカット運転が実行されると、触媒43に多量の酸素が急激に流入する。従って、触媒43は酸素を放出していない状態となるので、放出酸素量HSは0ゼロに設定されるべきである。第4制御装置は、以上に述べた観点に従って放出酸素量HSを算出し、リーン要求が発生した時点の放出酸素量HSを基準値HSrefとして取り込む。より具体的に述べると、第4制御装置は、図13のタイムチャートに示したように放出酸素量HS等を算出する。この図13に示した例においては、時刻t1~時刻t2にてフューエルカット運転が実行される。時刻t2にてフューエルカット運転が終了し、リッチ要求発生期間が開始したとき、放出酸素量HSは0に設定されている。その後、時刻t2~時刻t3のリッチ要求発生期間において放出酸素量HSは増大し、リーン要求発生期間の開始時点である時刻t3にて値Aに到達する。従って、時刻t3以降における比較値kHSrefの基礎となる基準値HSrefは値Aである。時刻t3から時刻t4のリーン要求発生期間において現在吸蔵酸素量KZは次第に増大する。そのため、放出酸素量HSは値Aから現在吸蔵酸素量KZだけ減少する。従って、時刻t4のリーン要求発生期間における現在吸蔵酸素量KZが値Bであるとすると、リッチ要求発生期間の開始時点である時刻t4において放出酸素量HSは値A-Bとなる。続く、時刻t4から時刻t5のリッチ要求発生期間において放出された酸素量が値Cであるとすると、次のリーン要求発生期間の開始時点である時刻t5における放出酸素量HSは値A-BCとなる。即ち、従って、時刻t5以降における比較値kHSrefの基礎となる基準値HSrefは値A-BCである。更に、図13に示した例においては、時刻t6にてフューエルカット運転が再び行われる。そのため、第4制御装置は放出酸素量HSを時刻t6にて0に設定する。実際の作動第4制御装置のCPUは、所定時間が経過する毎に図8に代わる図14にフローチャートにより示したルーチンを繰り返し実行している。図14に示したステップであって図8にも示されたステップには、図8に示されたステップと同一の符号が付されている。これらのステップの詳細な説明は適宜省略される。図14に示したルーチンは、図8に示したルーチンに対してステップ1410乃至ステップ1440が追加されている点、及び、ステップ865が省略されている点、において図8に示したルーチンと相違している。フューエルカットフラグXFCの値が1である場合、CPUはステップ1400に続くステップ805にてNoと判定し、以下に述べるステップ810、ステップ815、ステップ1410及びステップ1420の処理を実行した後、ステップ1495に進む。更に、フィードバック制御フラグXFBの値が0である場合にも、CPUはステップ805に続くステップ820にてNoと判定し、以下に述べるステップ810、ステップ815、ステップ1410及びステップ1420の処理を実行した後、ステップ1495に進む。ステップ810:CPUは、放出酸素量HSの値を0に設定する。ステップ815:CPUは、現在吸蔵酸素量KZの値を0に設定する。ステップ1410:CPUは、基準値HSrefの値を0に設定する。ステップ1420:CPUは、リーン要求フラグXLeanreqの値を0に設定する。フューエルカットフラグXFCの値が1から0に変化することに伴って、フィードバック制御フラグXFBの値が0から1に変化した場合、CPUはステップ805及びステップ820にてYesと判定してステップ825に進む。この場合、ステップ1420にてリーン要求フラグXLeanreqの値は0に設定されている。従って、CPUはステップ825にてNoと判定してステップ1430に進み、リーン要求フラグXLeanreqの値が1から0へと変化した直後であるか否かを判定する。この場合、リーン要求フラグXLeanreqの値が1から0へと変化した直後ではないので、CPUはステップ1430にてNoと判定し、以下に述べるステップ830乃至ステップ840の処理を順に行い、その後、ステップ1495に進む。なお、CPUは、この状態において後述するステップ1440を経由してからステップ830以降に進んでもよい。ステップ830:CPUは、上記1式に従って放出酸素変化量ΔHSを算出する。ステップ835:CPUは、上記2式に従って放出酸素量HSを算出する。ステップ840:CPUは、現在吸蔵酸素量KZの値を0に設定する。この結果、フューエルカット運転の終了後において放出酸素量HSが0から次第に増大される図13の時刻t2~時刻t3を参照。。その後、リーン要求フラグXLeanreqの値は図7のステップ725の処理によって1に設定される。この場合、CPUは、ステップ825にてYesと判定するとともに、ステップ845にてYesと判定してステップ850に進み、放出酸素量HSを基準値HSrefとして取得する。その後、CPUは以下に述べるステップ855及びステップ860の処理を行った後、ステップ1495に進んで本ルーチンを一旦終了する。ステップ855:CPUは、上記3式に従って吸蔵酸素変化量ΔKZを算出する。ステップ860:CPUは、上記4式に従って現在吸蔵酸素量KZを算出する。以降、リーン要求フラグXLeanreqの値が1に設定されている限り、CPUはステップ825にてYesと判定するとともに、ステップ845にてNoと判定し、ステップ850を経由することなくステップ855及びステップ860の処理を実行する。この結果、リーン要求フラグXLeanreqの値が1に設定されると、現在吸蔵酸素量KZは0から増大される図13の時刻t3~時刻t4、及び、時刻t5~時刻t6を参照。。その後、リーン要求フラグXLeanreqの値は図7のステップ750の処理によって0に設定される。この場合、CPUは、ステップ825にてNoと判定するとともに、ステップ1430にてYesと判定してステップ1440に進み、放出酸素量HSをその時点の基準値HSrefからその時点の現在吸蔵酸素量KZを減じた値HSref-KZに設定する。例えば、図13に示した例において、時刻t4にてリーン要求フラグXLeanreqの値は0に設定される。このとき、その時点の基準値HSrefは値Aであり、その時点の現在吸蔵酸素量KZは値Bであるので、時刻t4にて放出酸素量HSは値HSref-KZ=A-Bに設定される。その後、CPUは、リーン要求フラグXLeanreqの値が0に維持されている限り、ステップ830乃至ステップ840の処理を所定時間の経過毎に繰り返し実行する。よって、放出酸素量HSは値A-Bから増大する時刻t4~時刻t5を参照。。その後、リーン要求フラグXLeanreqの値は図7のステップ725の処理によって再び1に設定される図13の時刻t5を参照。。この場合、CPUは、ステップ825にてYesと判定するとともに、ステップ845にてYesと判定してステップ850に進み、放出酸素量HSを基準値HSrefとして取得する。この場合、時刻t4~時刻t5の間に触媒43から放出された酸素の量が値Cであるとすると、時刻t5における放出酸素量HSは値A-BCであるので、時刻t5において値A-BCが基準値HSrefとして取得される。以上、説明したように、放出酸素量HSはフューエルカット運転が終了した時点において0であり、その後、放出酸素量HSと現在吸蔵酸素量KZの積算値として算出されている。更に、フューエルカットフラグXFCの値が1に設定されることによってフューエルカット運転が再開されると、CPUはステップ805にてNoと判定し、ステップ810、ステップ815、ステップ1410及びステップ1420の処理を行う。従って、図13の時刻t6に示したように、放出酸素量HS及び現在吸蔵酸素量KZの値が0に設定される。以上、説明したように、第4制御装置の空燃比要求判定手段は、リッチ要求が発生したと判定された時点である第1時点例えば、図13の時刻t4での放出酸素量HSの値として、第1時点の直前において前記リーン要求が発生したと判定された時点である第2時点図13の時刻t3での放出酸素量HS=Aから同第1時点での前記現在吸蔵酸素量KZ=Bを減じた値A-Bを採用するとともに、前記機関の運転状態がフューエルカット運転状態となった場合、放出酸素量HSをゼロに設定する、ように構成されている図13及び図14のステップ810を参照。。従って、放出酸素量HSをより精度良く推定することができるので、触媒43の酸素を吸蔵する余力についての情報をより精度良く取得することができる。<第5実施形態>次に、本発明の第5実施形態に係る制御装置以下、単に第5制御装置と称呼する。について説明する。第5制御装置は、従来から知られる空燃比のメインフィードバック制御及びサブフィードバック制御を実行する。サブフィードバック制御は、下流側空燃比センサ56の出力値Voxsを目標値Voxsrefに一致させるPID制御である。第5制御装置は、サブフィードバック制御における微分項D項のゲインを、酸素を吸蔵する余力に関する情報に基づいて切り替える。即ち、触媒43の酸素を吸蔵する余力が小さいと考えられる場合には微分項のゲインを大きくし、触媒43の酸素を吸蔵する余力が大きいと考えられる場合には微分項のゲインを小さくする。これにより、触媒43が酸素過剰状態となることを回避する。実際の作動第5制御装置のCPUは、所定時間が経過する毎に図15、図16及び図8に示したルーチンを実行するようになっている。図8に示したルーチンについては説明済みである。従って、以下、図15及び図16に示したルーチンについて説明する。なお、これらのルーチンのステップであって、既に説明したステップと同一のステップは、既に説明したステップと同一の符号が付されている。これらのステップについての詳細な説明は適宜省略される。CPUは、所定のタイミングになると、図15のステップ1500から処理を開始してステップ605に進み、フューエルカットフラグXFCの値が0であるか否かを判定する。このとき、フューエルカットフラグXFCの値が1であれば、CPUはステップ605にてNoと判定してステップ1595に直接進み、本ルーチンを一旦終了する。これにより、フューエルカット運転が実行される。これに対し、フューエルカットフラグXFCの値が0であると、CPUはステップ605にてYesと判定し、以下に述べるステップ610、ステップ1510、ステップ1520、及び、ステップ625乃至ステップ640の処理を順に行い、その後、ステップ1595に進む。ステップ610:CPUは、吸入空気量Ga、機関回転速度NE、及び、ルックアップテーブルMapMcGa,NEに基いて筒内吸入空気量Mcを取得する。ステップ1510:CPUは、図16に示したルーチンにより別途算出されているサブフィードバック量KSFBを読み込む。ステップ1520:CPUは、理論空燃比stoichからサブフィードバック量KSFBを減じることにより、目標空燃比abyfrを取得する。ステップ625:CPUは、筒内吸入空気量Mcを目標空燃比abyfrで除することによって基本燃料噴射量Fbaseを算出する。ステップ630:CPUは、別途計算されているメインフィードバック量KFmainを読み込む。ステップ635:CPUは、基本燃料噴射量Fbaseにメインフィードバック量KFmainを乗じることによって指示燃料噴射量Fiを算出する。ステップ640:CPUは、指示燃料噴射量Fiの燃料を燃料噴射気筒に対応して設けられている燃料噴射弁25から噴射させるための噴射指示信号を、その燃料噴射弁25に送出する。この結果、機関の空燃比従って、触媒流入ガスの空燃比が、サブフィードバック量KSFBに基づいて変更される目標空燃比abyfrに一致するように、制御される。一方、所定のタイミングになると、CPUは図16のステップ1600から処理を開始してステップ1605に進み、フィードバック制御フラグXFBの値が1であるか否かを判定する。このとき、フィードバック制御フラグXFBの値が1であれば、CPUはステップ1605にてYesと判定し、以下に述べるステップ1610乃至ステップ1635の処理を順に行ってステップ1640に進む。ステップ1610:CPUは、目標値Voxsrefと下流側空燃比センサ56の出力値Voxsとの差である出力偏差量DVoxsを取得する。即ち、CPUは、目標値Voxsrefから出力値Voxsを減じることにより、出力偏差量DVoxsを求める。目標値Voxsrefは、理論空燃比相当電圧Vstに設定されている。ステップ1615:CPUは、その時点における出力偏差量の積分値SDVoxsに上記ステップ1610にて求めた出力偏差量DVoxsと定数ゲインKとの積を加えることにより、新たな出力偏差量の積分値SDVoxsを求める。ここでは、定数Kは1に設定されている。ステップ1620:CPUは、上記ステップ1610にて算出した出力偏差量DVoxsから本ルーチンを前回実行した際に算出された出力偏差量前回出力偏差量DVoxsoldを減じることにより、新たな出力偏差量の微分値DDVoxsを求める。ステップ1625:CPUは、上記ステップ1610にて算出した出力偏差量DVoxsを前回出力偏差量DVoxsoldとして格納する。ステップ1630:CPUは、現時点の出力値Voxsから本ルーチンを前回実行した際の出力値前回出力値Voxsoldを減じることにより、出力時間微分相関値ΔVoxsを求める。ステップ1635:CPUは、現時点の出力値Voxsを前回出力値Voxsoldとして格納する。次に、CPUはステップ1640に進み、出力時間微分相関値ΔVoxsが0より小さいか否か負であるか否かを判定する。このとき、出力時間微分相関値ΔVoxsが0以上であると、CPUはステップ1640からステップ1645に進み、微分ゲインkdに中間値中間の大きさを有する値KdMidを設定する。その後、CPUはステップ1665に進む。これに対し、CPUがステップ1640の処理を実行する時点において、出力時間微分相関値ΔVoxsが0より小さいと、CPUはステップ1640からステップ1650に進んで現在吸蔵酸素量KZが比較値kHSrefkは0~1の定数、HSrefは基準値以上であるか否かを判定する。なお、現在吸蔵酸素量KZ及び基準値HSrefは、図8のルーチンにより別途取得されている。そして、現在吸蔵酸素量KZが比較値kHSrefよりも小さければ、CPUはステップ1655に進んで微分ゲインkdに小さい値KdSmallを設定する。その後、CPUはステップ1665に進む。これに対し、現在吸蔵酸素量KZが比較値kHSref以上であると、CPUはステップ1650からステップ1660に進んで微分ゲインkdに大きい値KdLargeを設定する。その後、CPUはステップ1665に進む。値kdLargeは値kdSmallよりも大きい。CPUは、ステップ1665にて、下記5式に従って、サブフィードバック量KSFBを求める。この5式において、Kpは予め設定された比例ゲイン比例定数、Kiは予め設定された積分ゲイン積分定数である。その後、CPUはステップ1695に進み、本ルーチンを一旦終了する。KSFB=KpDVoxsKiSDVoxsKdDDVoxs...5一方、CPUがステップ1605の処理を実行する時点において、フィードバック制御フラグXFBの値が0であれば、CPUはステップ1605にてNoと判定し、以下に述べるステップ1670及び1675の処理を順に行い、その後、ステップ1695に進む。ステップ1670:CPUは、サブフィードバック量KSFBの値を0に設定する。ステップ1675:CPUは、積分値SDVoxsの値を0に設定する。以上、説明したように、第5制御装置は、サブフィードバック量KSFBの微分項のゲインを放出酸素量HS及び現在吸蔵酸素量KZに基づいて変更する。従って、触媒43が酸素過剰状態に陥ることを回避することができる。以上、説明したように、本発明の実施形態に係る空燃比制御装置は、触媒43の状態即ち、空燃比要求を迅速且つ精度良く判定することができるので、エミッションを改善することができる。本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、放出酸素量HSは、検出上流側空燃比abyfsに代わるリッチ空燃比afRichと、筒内吸入空気量Mcと、に基づいて算出されてもよい。また、現在吸蔵酸素量KZは、検出上流側空燃比abyfsに代わるリーン空燃比afLeanと、筒内吸入空気量Mcと、に基づいて算出されてもよい。"