"内燃機関の排気通路に配設された触媒が吸蔵することができる酸素の最大量に相当する最大酸素吸蔵量を推定する触媒の最大酸素吸蔵量推定装置であって、前記排気通路であって前記触媒の上流に配設された上流側空燃比センサと、前記排気通路であって前記触媒の下流に配設された下流側空燃比センサと、前記下流側空燃比センサの出力値が理論空燃比よりも小さいリッチ空燃比に相当する値となった時点から前記下流側空燃比センサの出力値が理論空燃比よりも大きいリーン空燃比に相当する値となる時点までの触媒リッチ期間において、前記触媒に流入する排ガスである触媒流入ガスの空燃比の目標値である上流側目標空燃比を理論空燃比よりも大きい空燃比である目標リーン空燃比に設定し、前記下流側空燃比センサの出力値が前記リーン空燃比に相当する値となった時点から前記下流側空燃比センサの出力値が前記リッチ空燃比に相当する値となる時点までの触媒リーン期間において、前記上流側目標空燃比を理論空燃比よりも小さい空燃比である目標リッチ空燃比に設定し、且つ、前記触媒流入ガスの空燃比が前記上流側目標空燃比に一致するように前記機関に供給される混合気の空燃比を制御する空燃比制御手段と、前記上流側目標空燃比が前記目標リーン空燃比に設定されている期間内の所定の第1期間において所定時間あたりに前記触媒流入ガスに含まれる過剰な酸素の量を少なくとも前記上流側空燃比センサの出力値に基づいて算出するとともに同算出された過剰な酸素の量を積算することにより前記触媒の吸蔵酸素量を暫定最大吸蔵酸素量として算出し、前記上流側目標空燃比が前記目標リッチ空燃比に設定されている期間内の所定の第2期間において所定時間あたりに前記触媒流入ガスに含まれる過剰な未燃物の量に対応する酸素の量を少なくとも前記上流側空燃比センサの出力値に基づいて算出するとともに同算出された過剰な未燃物の量に対応する酸素の量を積算することにより前記触媒の放出酸素量を暫定最大放出酸素量として算出し、且つ、前記算出された暫定最大吸蔵酸素量及び前記算出された暫定最大放出酸素量に基いて前記触媒が吸蔵することができる酸素の量の暫定的最大値に相当する暫定最大酸素吸蔵量を算出する暫定最大酸素吸蔵量算出手段と、前記暫定最大酸素吸蔵量を前記暫定最大酸素吸蔵量に基いて補正することによって補正後暫定最大酸素吸蔵量を取得するとともに前記補正後暫定最大酸素吸蔵量に基いて前記触媒の最大酸素吸蔵量を取得する手段であって、前記暫定最大酸素吸蔵量が小さいほど前記補正後暫定最大酸素吸蔵量が小さくなるように前記暫定最大酸素吸蔵量を補正する最大酸素吸蔵量取得手段と、を備えた触媒の最大酸素吸蔵量推定装置。請求項1に記載の触媒の最大酸素吸蔵量推定装置であって、前記最大酸素吸蔵量取得手段は、前記過剰な酸素の量を積算している期間内の所定の第3期間において前記上流側空燃比センサの出力値に基いて取得される実際の上流側空燃比の平均値をリーン制御時平均空燃比として算出し、前記過剰な未燃物の量に対応する酸素の量を積算している期間内の所定の第4期間において前記上流側空燃比センサの出力値に基いて取得される実際の上流側空燃比の平均値をリッチ制御時平均空燃比として算出し、前記リーン制御時平均空燃比と前記リッチ制御時平均空燃比との差である空燃比差が大きいほど前記補正後暫定最大酸素吸蔵量が小さくなるように前記補正後暫定最大酸素吸蔵量を算出するように構成された、触媒の最大酸素吸蔵量推定装置。内燃機関の排気通路に配設された触媒が吸蔵することができる酸素の最大量に相当する最大酸素吸蔵量を推定する触媒の最大酸素吸蔵量推定装置であって、前記排気通路であって前記触媒の上流に配設された上流側空燃比センサと、前記排気通路であって前記触媒の下流に配設された下流側空燃比センサと、前記下流側空燃比センサの出力値が理論空燃比よりも小さいリッチ空燃比に相当する値となった時点から前記下流側空燃比センサの出力値が理論空燃比よりも大きいリーン空燃比に相当する値となる時点までの触媒リッチ期間において、前記触媒に流入する排ガスである触媒流入ガスの空燃比の目標値である上流側目標空燃比を理論空燃比よりも大きい空燃比である目標リーン空燃比に設定し、且つ、前記触媒流入ガスの空燃比が前記上流側目標空燃比に一致するように前記機関に供給される混合気の空燃比を制御する空燃比制御手段と、前記上流側目標空燃比が前記目標リーン空燃比に設定されている期間内の所定の第1期間において所定時間あたりに前記触媒流入ガスに含まれる過剰な酸素の量を少なくとも前記上流側空燃比センサの出力値に基づいて算出するとともに同算出された過剰な酸素の量を積算することにより前記触媒の吸蔵酸素量を暫定最大吸蔵酸素量として算出する暫定最大吸蔵酸素量算出手段と、前記暫定最大吸蔵酸素量を前記暫定最大吸蔵酸素量に基いて補正することによって補正後暫定最大吸蔵酸素量を取得するとともに前記補正後暫定最大吸蔵酸素量に基いて前記触媒の最大酸素吸蔵量を取得する手段であって、前記暫定最大吸蔵酸素量が小さいほど前記補正後暫定最大吸蔵酸素量が小さくなるように前記暫定最大吸蔵酸素量を補正する最大酸素吸蔵量取得手段と、を備えた触媒の最大酸素吸蔵量推定装置。請求項3に記載の触媒の最大酸素吸蔵量推定装置において、前記酸素吸蔵量取得手段は、前記過剰な酸素の量を積算している期間内の所定の第3期間において前記上流側空燃比センサの出力値に基いて取得される実際の上流側空燃比の平均値をリーン制御時平均空燃比として算出し、前記リーン制御時平均空燃比と理論空燃比との差の大きさが大きいほど前記補正後暫定最大吸蔵酸素量が小さくなるように前記補正後暫定最大吸蔵酸素量を算出するように構成された、触媒の最大酸素吸蔵量推定装置。内燃機関の排気通路に配設された触媒が吸蔵することができる酸素の最大量に相当する最大酸素吸蔵量を推定する触媒の最大酸素吸蔵量推定装置であって、前記排気通路であって前記触媒の上流に配設された上流側空燃比センサと、前記排気通路であって前記触媒の下流に配設された下流側空燃比センサと、前記下流側空燃比センサの出力値が理論空燃比よりも大きいリーン空燃比に相当する値となった時点から前記下流側空燃比センサの出力値が理論空燃比よりも小さいリッチ空燃比に相当する値となる時点までの触媒リーン期間において、前記触媒に流入する排ガスである触媒流入ガスの空燃比の目標値である上流側目標空燃比を理論空燃比よりも小さい空燃比である目標リッチ空燃比に設定し、且つ、前記触媒流入ガスの空燃比が前記上流側目標空燃比に一致するように前記機関に供給される混合気の空燃比を制御する空燃比制御手段と、前記上流側目標空燃比が前記目標リッチ空燃比に設定されている期間内の所定の第2期間において所定時間あたりに前記触媒流入ガスに含まれる過剰な未燃物の量に対応する酸素の量を少なくとも前記上流側空燃比センサの出力値に基づいて算出するとともに同算出された過剰な未燃物の量に対応する酸素の量を積算することにより前記触媒の放出酸素量を暫定最大放出酸素量として算出する暫定最大放出酸素量算出手段と、前記暫定最大放出酸素量を前記暫定最大放出酸素量に基いて補正することによって補正後暫定最大放出酸素量を取得するとともに前記補正後暫定最大放出酸素量に基いて前記触媒の最大酸素吸蔵量を取得する手段であって、前記暫定最大放出酸素量が小さいほど前記補正後暫定最大放出酸素量が小さくなるように前記暫定最大放出酸素量を補正する最大酸素吸蔵量取得手段と、を備えた触媒の最大酸素吸蔵量推定装置。請求項5に記載の触媒の最大酸素吸蔵量推定装置において、前記酸素吸蔵量取得手段は、前記過剰な未燃物の量に対応する酸素の量を積算している期間内の所定の第4期間において前記上流側空燃比センサの出力値に基いて取得される実際の上流側空燃比の平均値をリッチ制御時平均空燃比として算出し、前記リッチ制御時平均空燃比と理論空燃比との差の大きさが大きいほど前記補正後暫定最大放出酸素量が小さくなるように前記補正後暫定最大放出酸素量を算出するように構成された、触媒の最大酸素吸蔵量推定装置。以下、本発明による触媒の最大酸素吸蔵量推定装置の各実施形態について図面を参照しつつ説明する。<第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は所定の活性温度に到達すると、触媒機能及び酸素吸蔵機能を発揮する。上流側触媒43は、スタートキャタリティックコンバータSC又は第1触媒とも称呼される。触媒機能は、未燃物HC、CO及びH2等と窒素酸化物NOxとを同時に浄化する機能である。酸素吸蔵機能は、触媒流入ガスに過剰な酸素酸化平衡後のガス中に残存する酸化剤が含まれている場合にそのガス中の酸素を触媒内部に吸蔵するとともにNOxを浄化還元し、触媒流入ガスに過剰な未燃物酸化平衡後のガス中に残存する還元剤が含まれている場合に触媒内部に吸蔵している酸素を放出してそのガス中の未燃物を浄化酸化させる機能である。この酸素吸蔵機能は触媒が被毒及び熱劣化等によって劣化した場合に低下する。その結果、触媒が吸蔵従って、放出することができる酸素の最大量に相当する最大酸素吸蔵量は、触媒の劣化が進むほど小さくなる。下流側触媒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を出力する。触媒流入ガスの空燃比は上流側空燃比abyfsとも称呼される。出力値Vabyfsは触媒流入ガスの空燃比が大きくなるほど即ち、触媒流入ガスの空燃比がリーン側の空燃比になるほど増大する。電気制御装置60は、図2に示した空燃比変換テーブルマップMapabyfsを記憶している。電気制御装置60は、出力値Vabyfsを空燃比変換テーブルMapabyfsに適用することにより、実際の上流側空燃比abyfsを検出する上流側空燃比abyfsを取得するようになっている。再び、図1を参照すると、下流側空燃比センサ56は、上流側触媒43と下流側触媒44との間の位置においてエキゾーストパイプ42即ち、排気通路に配設されている。下流側空燃比センサ56は、排ガス中の酸素分圧と大気中の酸素分圧との差に応じた起電力を出力値として発生する周知の濃淡電池型酸素濃度センサO2センサである。より具体的に述べると、下流側空燃比センサ56の出力値Voxsは、図3に示したように、下流側空燃比センサ56に到達しているガス触媒流出ガスの空燃比が理論空燃比よりも小さいリッチ空燃比であって、下流側空燃比センサ56に到達しているガスの酸化平衡酸素平衡後のガスの酸素分圧が小さいとき最大出力値Max例えば、約0.9V又は1.0V近傍の値となる。即ち、下流側空燃比センサ56は、触媒流出ガスに過剰の酸素が全く含まれていないとき換言すると、触媒流出ガスに還元剤である未燃物が含まれているとき最大出力値Maxを出力する。更に、下流側空燃比センサ56の出力値Voxsは、下流側空燃比センサ56に到達しているガス触媒流出ガスの空燃比が理論空燃比よりも大きいリーン空燃比であって、下流側空燃比センサ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推定装置は、触媒の最大酸素吸蔵量を最大吸蔵酸素量及び最大放出酸素量に基いて求める。最大酸素吸蔵量は、例えば、最大吸蔵酸素量と最大放出酸素量との平均値である。第1推定装置は、触媒の最大酸素吸蔵量を取得する条件が成立した場合、以下のように最大酸素吸蔵量を推定する。なお、最大酸素吸蔵量は、アクティブ空燃比制御を利用して取得される。アクティブ空燃比制御自体は、例えば、上記特許文献1及び特開平5-133264号公報等に記載されている。ところで、触媒流入ガスの空燃比が理論空燃比よりも小さいリッチ空燃比である場合、下流側空燃比センサ56の出力値Voxsが所定の閾値Voxsref例えば、理論空燃比相当電圧Vstよりも小さい値から大きい値へと変化したとき図4の時刻t1、時刻t3及び時刻t5を参照。、触媒43の酸素吸蔵量は実質的に0になったと推定される。即ち、触媒流入ガスの空燃比がリッチ空燃比である場合に下流側空燃比センサ56の出力値Voxsが理論空燃比よりも小さいリッチ空燃比に相当する値となった時点以下、リッチ反転時点と称呼する。は、触媒43が放出し得る酸素吸蔵していた酸素を消費しきった時点である。一方、触媒流入ガスの空燃比が理論空燃比よりも大きいリーン空燃比である場合、下流側空燃比センサ56の出力値Voxsが所定の閾値Voxsrefよりも大きい値から小さい値へと変化したとき図4の時刻t2及び時刻t4を参照。、触媒43の酸素吸蔵量は実質的に最大値最大酸素吸蔵量に到達したと推定される。即ち、触媒流入ガスの空燃比がリーン空燃比である場合に下流側空燃比センサ56の出力値Voxsが理論空燃比よりも大きいリーン空燃比に相当する値となった時点以下、リーン反転時点と称呼する。は、触媒43が酸素をその最大限度まで吸蔵しきった時点である。そこで、第1推定装置は、リッチ反転時からリーン反転時までの期間以下、触媒リッチ期間と称呼する。、触媒流入ガスの空燃比の目標値即ち、上流側目標空燃比abyfrを理論空燃比よりも大きい空燃比である目標リーン空燃比afLeanに設定する図4の時刻t1-時刻t2を参照。。第1推定装置は、上流側空燃比センサ55の出力値Vabyfsにより表される上流側空燃比abyfsが上流側目標空燃比abyfrに一致するように、燃料噴射量をフィードバック制御することにより、機関の空燃比をフィードバック制御する。触媒リッチ期間上流側目標空燃比abyfrが目標リーン空燃比afLeanに設定されている期間、以下、設定空燃比リーン期間とも称呼する。において、触媒流入ガスは過剰の酸素を含んでいる。そこで、第1推定装置は、触媒リッチ期間内の第1期間図4の時刻t1a-時刻t2を参照。において、単位時間所定時間Tsあたりに三元触媒43に吸蔵されるであろう酸素量即ち、吸蔵酸素変化量ΔOSAkzを下記の1式に従って算出する。1式において、SFiは単位時間Tsあたりの燃料量燃料噴射量の総量であり、0.23は大気における酸素の重量割合である。stoichは理論空燃比例えば、14.6である。第1期間は、上流側目標空燃比abyfrが目標リーン空燃比afLeanに設定されて以降、上流側空燃比abyfsが最初に理論空燃比stoichを横切る時点時刻t1aから、次のリーン反転時時刻t2までの期間である。ΔOSAkz=SFi0.23abyfsstoich...1更に、第1推定装置は、下記の2式に示したように、算出された吸蔵酸素変化量ΔOSAkzを第1期間に亘って積算することにより、暫定吸蔵酸素量ZOSAkzを算出する。2式において、ZOSAkznは更新後現時点の暫定吸蔵酸素量、ZOSAkzn-1は現時点よりも単位時間Ts前の時点における暫定吸蔵酸素量である。暫定最大吸蔵酸素量ZOSAkzMAXは、リーン反転時時刻t2における暫定吸蔵酸素量ZOSAkzである。なお、暫定吸蔵酸素量ZOSAkzは、リーン反転時直後において0に設定される。ZOSAkzn=ZOSAkzn-1ΔOSAkz...2これに対し、第1推定装置は、リーン反転時からリッチ反転時までの期間以下、触媒リーン期間と称呼する。、上流側目標空燃比abyfrを理論空燃比よりも小さい空燃比である目標リッチ空燃比afRichに設定する図4の時刻t2-時刻t3を参照。。触媒リーン期間上流側目標空燃比abyfrが目標リッチ空燃比afRichに設定されている期間、以下、設定空燃比リッチ期間とも称呼する。において、触媒流入ガスは過剰の未燃物を含んでいる。前述したように、触媒43は吸蔵している酸素を放出し、この酸素により未燃物を浄化する。そこで、第1推定装置は、触媒リーン期間内の第2期間図4の時刻t2a-時刻t3を参照。において、単位時間所定時間Tsあたりに三元触媒43が放出するであろう酸素の量即ち、触媒流入ガスに含まれる過剰な未燃物の量に対応する過剰な未燃物を酸化するのに必要な酸素の量、放出酸素変化量ΔOSAhsを下記の3式に従って算出する。換言すると、放出酸素変化量ΔOSAhsは、第2期間において単位時間Tsあたりに触媒43に流入する過剰な未燃物の量に対応する酸素の量である。第2期間は、上流側目標空燃比abyfrが目標リッチ空燃比afRichに設定されて以降、上流側空燃比abyfsが最初に理論空燃比stoichを横切る時点時刻t2aから、次のリッチ反転時時刻t3までの期間である。ΔOSAhs=SFi0.23stoichabyfs...3更に、第1推定装置は、下記の4式に示したように、算出された放出酸素変化量ΔOSAhsを第2期間に亘って積算することにより、暫定放出酸素量ZOSAhsを算出する。4式において、ZOSAhsnは更新後現時点の暫定放出酸素量、ZOSAhsn-1は現時点よりも単位時間Ts前の時点における暫定放出酸素量である。暫定最大放出酸素量ZOSAhsMAXは、リッチ反転時時刻t3における暫定放出酸素量ZOSAhsである。なお、暫定放出酸素量ZOSAhsは、リッチ反転時直後において0に設定される。ZOSAhsn=ZOSAhsn-1ΔOSAhs...4ところで、図5に示したように、一つの触媒であっても、暫定最大吸蔵酸素量ZOSAkzMAXを算出する期間における上流側空燃比abyfsの平均値が大きくなるほど理論空燃比から遠ざかるほど算出される暫定最大吸蔵酸素量ZOSAkzMAXは大きくなり、暫定最大放出酸素量ZOSAhsMAXを算出する期間における上流側空燃比abyfsの平均値が小さくなるほど理論空燃比から遠ざかるほど、算出される暫定最大放出酸素量ZOSAhsMAXは大きくなる。更に、触媒流入ガスの実際の空燃比上流側空燃比abyfsは変動するので、上流側目標空燃比abyfrに常に一致しているわけではない。従って、暫定最大吸蔵酸素量ZOSAkzMAX及び暫定最大放出酸素量ZOSAhsMAXに基いて最大酸素吸蔵量Cmaxを算出すると、その最大酸素吸蔵量Cmaxは触媒の劣化の程度を精度良く表さない場合がある。そこで、第1推定装置は、触媒リッチ期間設定空燃比リーン期間内の第3期間における上流側空燃比abyfsの平均値以下、リーン制御時平均空燃比AveLeanとも称呼する。を取得する。第3期間は、上流側目標空燃比abyfrが目標リーン空燃比afLeanに設定された時点から所定時間Tdが経過した時点図4の時刻t1bから、次のリーン反転時時刻t2までの期間PLeanである。所定時間Tdは、ガスの輸送遅れ及び上流側空燃比センサ55の応答性を考慮した時間であり、一定時間でもよく、吸入空気量Ga及び/又は機関回転速度NEに応じて変化する時間であってもよい。更に、第1推定装置は、触媒リーン期間設定空燃比リッチ期間内の第4期間における上流側空燃比abyfsの平均値以下、リッチ制御時平均空燃比AveRichとも称呼する。を取得する。第4期間は、上流側目標空燃比abyfrが目標リッチ空燃比afRichに設定された時点から所定時間Tdが経過した時点図4の時刻t2bから、次のリッチ反転時時刻t3までの期間PRichである。その後、第1推定装置は、暫定最大吸蔵酸素量ZOSAkzMAX及び暫定最大放出酸素量ZOSAhsMAXの平均値を暫定最大酸素吸蔵量ZCmaxとして取得する。そして、第1推定装置は、リーン制御時平均空燃比AveLeanとリッチ制御時平均空燃比AveRichとの差である空燃比差ΔAFに基いて暫定最大酸素吸蔵量ZCmaxを補正することにより、補正後暫定最大酸素吸蔵量ZCmaxhを取得し、その補正後暫定最大酸素吸蔵量ZCmaxhを最大酸素吸蔵量Cmaxとして取得する。より具体的に述べると、第1推定装置は、空燃比差ΔAFが大きいほど補正後暫定最大酸素吸蔵量ZCmaxhが小さくなるように、暫定最大酸素吸蔵量ZCmaxを補正し、その補正後暫定最大酸素吸蔵量ZCmaxhを最終的な触媒43の劣化判定に用いる最大酸素吸蔵量Cmaxとして取得する。加えて、一つの触媒であり、且つ、空燃比差ΔAFが一定であっても実際には、リーン制御時平均空燃比AveLeanが一定値であり且つリッチ制御時平均空燃比AveRichが一定値であっても、補正後暫定最大酸素吸蔵量ZCmaxhは、暫定最大酸素吸蔵量が所定値よりも小さい場合において暫定最大酸素吸蔵量が前記所定値よりも大きい場合に比べ、相対的に大きい値過大傾向にある値として算出される。そこで、第1推定装置は、暫定最大酸素吸蔵量ZCmaxが求められたとき、この暫定最大酸素吸蔵量ZCmaxを暫定最大酸素吸蔵量ZCmaxの大きさにも応じて補正する。即ち、第1推定装置は、暫定最大酸素吸蔵量ZCmaxが小さいほど補正後暫定最大酸素吸蔵量ZCmaxhが小さくなるように暫定最大酸素吸蔵量ZCmaxを補正する。そして、第1推定装置は、この空燃比差ΔAF及び暫定最大酸素吸蔵量ZCmaxに基いて補正された補正後暫定最大酸素吸蔵量ZCmaxhを最大酸素吸蔵量Cmaxとして取得採用する。実際には、第1推定装置は、空燃比差ΔAF及び暫定最大酸素吸蔵量ZCmaxと、補正係数khとの関係を規定する図8に示した補正係数テーブルMapkhをROMに記憶していて、算出されたΔAF及び算出された暫定最大酸素吸蔵量ZCmaxを補正係数テーブルMapkhに適用することによって、補正係数khを決定する。そして、第1推定装置は、下記5式に示したように、暫定最大酸素吸蔵量ZCmaxに補正係数khを乗じた値を補正後暫定最大酸素吸蔵量ZCmaxh即ち、最大酸素吸蔵量Cmaxとして取得する。Cmax=ZCmaxh=khZCmax...5実際の作動次に、第1推定装置の実際の作動について説明する。以下、説明の便宜上、MapXは、a1a2...を引数とするテーブルであって値Xを求めるためのテーブルを表すものとする。<燃料噴射制御>第1推定装置のCPUは、図6に示した燃料噴射制御ルーチンを、任意の気筒のクランク角度が吸気上死点前の所定クランク角度となる毎に、その気筒に対して繰り返し実行するようになっている。前記所定クランク角度は、例えば、BTDC90°CA吸気上死点前90°クランク角度である。クランク角度が前記所定クランク角度に一致した気筒は燃料噴射気筒とも称呼される。CPUは、この燃料噴射制御ルーチンにより、指示燃料噴射量最終燃料噴射量Fiの計算及び燃料噴射の指示を行う。任意の気筒のクランク角度が吸気上死点前の所定クランク角度と一致すると、CPUはステップ600から処理を開始し、ステップ610に進んでエアフローメータ51により計測された吸入空気量Ga、機関回転速度センサ53の信号に基いて取得された機関回転速度NE、及び、ルックアップテーブルMapMcGa,NEに基いて燃料噴射気筒に吸入される空気量即ち、筒内吸入空気量Mcを取得する。筒内吸入空気量Mcは、周知の空気モデル吸気通路における空気の挙動を模した物理法則に従って構築されたモデルにより算出されてもよい。次に、CPUはステップ620に進み、アクティブ制御フラグXactiveの値が1であるか否かを判定する。このアクティブ制御フラグXactiveの値は、触媒43の最大酸素吸蔵量Cmaxを算出する条件であるアクティブ制御前提条件が成立しているときに1に設定され、その条件が成立していないとき0に設定される。アクティブ制御フラグ制御前提条件は、例えば、下の総ての条件が成立したときに成立する。A1上流側空燃比センサ55が活性化している。A2下流側空燃比センサ56が活性化している。A3機関の負荷KLが閾値KLth以下である。A4触媒43が活性化している例えば、冷却水温THWが閾値冷却水温THWth以上である。。A5今回の機関10の運転開始後において、触媒43の劣化判定が行われていない。いま、アクティブ制御フラグXactiveの値が0であると仮定する。この場合、CPUはステップ620にてNoと判定してステップ630に進み、上流側目標空燃比abyfrを理論空燃比stoichに設定する。即ち、CPUは上流側目標空燃比abyfrを通常制御用の値に設定する。次に、CPUは以下に述べるステップ640乃至ステップ670の処理を順に行い、ステップ695に進んで本ルーチンを一旦終了する。ステップ640:CPUは、筒内吸入空気量Mcを上流側目標空燃比abyfrで除することによって基本燃料噴射量Fbaseを算出する。基本燃料噴射量Fbaseは、機関の空燃比を上流側目標空燃比abyfrに一致させるために必要な燃料噴射量のフィードフォワード量である。ステップ650:CPUは、図示しないルーチンにより別途計算されているメインフィードバック量KFmainを読み込む。メインフィードバック量KFmainは、上流側空燃比abyfsが上流側目標空燃比abyfrに一致するように周知のPID制御に基づいて算出される。簡単に述べると、メインフィードバック量KFmainは、上流側空燃比abyfsが上流側目標空燃比abyfrよりも小さいとき減少させられ、上流側空燃比abyfsが上流側目標空燃比abyfrよりも大きいとき増大させられる。ステップ660:CPUは、基本燃料噴射量Fbaseをメインフィードバック量KFmainにより補正することによって指示燃料噴射量Fiを算出する。より具体的に述べると、CPUは、基本燃料噴射量Fbaseにメインフィードバック量KFmainを乗じることによって指示燃料噴射量Fiを算出する。ステップ670:CPUは、指示燃料噴射量Fiの燃料を燃料噴射気筒に対応して設けられている燃料噴射弁25から噴射させるための噴射指示信号を、その燃料噴射弁25に送出する。この結果、機関の空燃比を上流側空燃比abyfsに一致させるために必要な量の燃料が燃料噴射気筒の燃料噴射弁25から噴射させられる。即ち、ステップ640乃至ステップ670は、機関の空燃比が上流側目標空燃比abyfrに一致するように指示燃料噴射量Fiを制御する指示燃料噴射量制御手段空燃比制御手段を構成している。一方、CPUがステップ620の処理を行う時点において、アクティブ制御フラグXactiveの値が1であると、CPUはそのステップ620にてYesと判定してステップ680に進み、上流側目標空燃比abyfrをアクティブ制御用の値目標リーン空燃比afLean及び目標リッチ空燃比afRichの何れかに設定する。その後、CPUは上述したステップ640乃至ステップ670の処理を実行する。ここで、ステップ680におけるCPUの処理についてより具体的に述べる。アクティブ制御フラグXactiveの値が0から1へと変化した直後にCPUがステップ680に進むと、CPUは、先ず、上流側目標空燃比abyfrを理論空燃比stoichよりも大きい一定の目標リーン空燃比afLeanに設定する。この状態において、CPUは出力値Voxsが所定の閾値Voxsref例えば、理論空燃比相当電圧Vstよりも小さいか否かを監視する。この時点において、出力値Voxsが閾値Voxsrefよりも小さい場合即ち、出力値Voxsがリーン空燃比に相当する値である場合、CPUは上流側目標空燃比abyfrを目標リッチ空燃比afRichに設定する。一方、この時点において、出力値Voxsが閾値Voxsrefよりも大きい場合即ち、出力値Voxsがリッチ空燃比に相当する値である場合、CPUは上流側目標空燃比abyfrを目標リーン空燃比afLeanに維持し続ける。そして、出力値Voxsが閾値Voxsrefよりも小さくなったとき、CPUは上流側目標空燃比abyfrを理論空燃比stoichよりも小さい一定の目標リッチ空燃比afRichに設定する。次に、CPUは上述したリッチ反転時点第1時点、図4の時刻t1となったか否かを監視する。そして、CPUはリッチ反転時点が検出されると、上流側目標空燃比abyfrを目標リーン空燃比afLeanに設定する。このリッチ反転時点以降において、上流側空燃比abyfsが理論空燃比stoichよりも大きいリーンな空燃比になった時点図4の時刻t1aから次のリーン反転時点第2時点、図4の時刻t2まで、暫定吸蔵酸素量ZOSAkzを算出することにより、暫定最大吸蔵酸素量ZOSAkzMAXを算出する。その後、CPUは、リーン反転時点第2時点、図4の時刻t2を検出すると、上流側目標空燃比abyfrを目標リッチ空燃比afRichに設定する。CPUは、このリーン反転時点以降において、上流側空燃比abyfsが理論空燃比stoichよりも小さいリッチな空燃比になった時点図4の時刻t2aから次のリッチ反転時点第3時点、図4の時刻t3まで、暫定放出酸素量ZOSAhsを算出することにより、暫定最大放出酸素量ZOSAhsMAXを算出する。<触媒劣化判定用データ取得触媒劣化判定>CPUは図7にフローチャートにより示した触媒劣化判定用データ取得ルーチン最大酸素吸蔵量取得ルーチンを所定時間Ts単位時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ700から処理を開始してステップ705に進み、上述したアクティブ制御前提条件最大酸素吸蔵量取得制御条件が成立しているか否かを判定する上記A1乃至A5を参照。。アクティブ制御前提条件が成立していない場合、CPUはステップ705にてNoと判定してステップ710に進み、アクティブ制御フラグXactiveの値を0に設定するとともに、後述する各種のデータをリセットする0に設定する。。その後、CPUは795に直接進んで本ルーチンを一旦終了する。この結果、上流側目標空燃比abyfrが理論空燃比stoichに設定される制御通常制御が実行される。これに対し、アクティブ制御前提条件が成立していると、CPUはステップ705にてYesと判定してステップ715に進み、アクティブ制御フラグXactiveの値を1に設定する。次いで、CPUはステップ720に進み、以下に述べるの処理を行う。CPUは、現時点が上流側空燃比abyfsが理論空燃比stoichよりも大きい空燃比になった時点図4の時刻t1aから次のリーン反転時点第2時点、図4の時刻t2までの第1期間にあるとき、上記1式及び2式に従って暫定吸蔵酸素量ZOSAkzを算出する。CPUは、リーン反転時点にて、暫定吸蔵酸素量ZOSAkzを暫定最大吸蔵酸素量ZOSAkzMAXとして格納する。CPUは、現時点が上流側空燃比abyfsが理論空燃比stoichよりも小さい空燃比になった時点図4の時刻t2aから次のリッチ反転時点第3時点、図4の時刻t3までの第2期間にあるとき、上記3式及び4式に従って暫定放出酸素量ZOSAhsを算出する。CPUは、リッチ反転時点第3時点にて、暫定放出酸素量ZOSAhsを暫定最大放出酸素量ZOSAhsMAXとして格納する。CPUは、現時点が上流側目標空燃比abyfrが目標リーン空燃比afLeanに設定された時点から所定時間Tdが経過した時点図4の時刻t1bから、次のリーン反転時時刻t2までの期間第3期間にあるとき、上流側空燃比abyfsを下記6式に従って積算することにより、設定空燃比リーン期間空燃比積算値SLafを算出する。6式において、SLafnは更新後の積算値SLaf、SLafn-1は現時点よりも単位時間Ts前の時点における積算値SLafである。SLafn=SLafn-1abyfs...6CPUは、現時点が第3期間にあるとき、積算値SLaf積算カウンタCLを下記7式に従って1だけ増大することにより、積算値SLaf積算カウンタCLを更新する。7式において、CLnは更新後の積算値SLaf積算カウンタCL、CLn-1は現時点よりも単位時間Ts前の時点における積算値SLaf積算カウンタCLである。CLn=CLn-11...7CPUは、現時点が上流側目標空燃比abyfrが目標リッチ空燃比afRichに設定された時点から所定時間Tdが経過した時点図4の時刻t2bから、次のリッチ反転時時刻t3までの期間第4期間にあるとき、上流側空燃比abyfsを下記8式に従って積算することにより、設定空燃比リッチ期間空燃比積算値SRafを算出する。8式において、SRafnは更新後の積算値SRaf、SRafn-1は現時点よりも単位時間Ts前の時点における積算値SRafである。SRafn=SRafn-1abyfs...8CPUは、現時点が第4期間にあるとき、積算値SRaf積算カウンタCRを下記9式に従って1だけ増大することにより、積算値SRaf積算カウンタCRを更新する。9式において、CRnは更新後の積算値SRaf積算カウンタCR、CRn-1は現時点よりも単位時間Ts前の時点における積算値SRaf積算カウンタCRである。CRn=CRn-11...9次に、CPUはステップ725に進み、暫定最大酸素吸蔵量ZCmax算出用データの取得が完了したか否かを判定する。より具体的に述べると、CPUは、第1時点から第3時点までの期間が経過したか否かを判定する。このとき、暫定最大酸素吸蔵量ZCmax算出用データの取得が完了していなければ、CPUはステップ725にてNoと判定し、ステップ795に直接進んで本ルーチンを一旦終了する。これに対し、暫定最大酸素吸蔵量ZCmax算出用データの取得が完了していると、CPUはステップ725にてYesと判定し、以下に述べるステップ730乃至ステップ755の処理を順に行い、ステップ760に進む。ステップ730:CPUはアクティブ制御フラグXactiveの値を0に設定する。ステップ735:CPUは、設定空燃比リーン期間空燃比積算値SLafを積算値SLaf積算カウンタCLにより除することにより、リーン制御時平均空燃比AveLean=SLaf/CLを算出する。ステップ740:CPUは、設定空燃比リッチ期間空燃比積算値SRafを積算値SRaf積算カウンタCRにより除することにより、リッチ制御時平均空燃比AveRich=SRaf/CRを算出する。ステップ745:CPUは、リーン制御時平均空燃比AveLeanからリッチ制御時平均空燃比AveRichを減じることによって、空燃比差ΔAF=AveLean-AveRichを算出する。ステップ750:CPUは、暫定最大吸蔵酸素量ZOSAkzMAXと暫定最大放出酸素量ZOSAhsMAXとの平均値を暫定最大酸素吸蔵量ZCmax=ZOSAkzMAXZOSAhsMAX/2として算出する。ステップ755:CPUは、先ず、図8に示した補正係数テーブルMapkhΔAF,ZCmaxに、ステップ745にて算出した空燃比差ΔAF及びステップ750にて算出した暫定最大酸素吸蔵量ZCmaxを適用することによって、補正係数補正量khを決定する。次いで、CPUは、暫定最大酸素吸蔵量ZCmaxに補正係数khを乗じることにより暫定最大酸素吸蔵量ZCmaxを補正した値即ち、補正後暫定最大酸素吸蔵量ZCmaxhを求める。そして、CPUは、その補正後暫定最大酸素吸蔵量ZCmaxhを最大酸素吸蔵量Cmax=khZCmaxとして取得する。図8に示した補正係数テーブルMapkhΔAF,ZCmaxによれば、補正係数khは、空燃比差ΔAFが大きいほど小さくなり、且つ、暫定最大酸素吸蔵量ZCmaxが小さいほど小さくなるように決定される。従って、ステップ745の処理により、暫定最大酸素吸蔵量ZCmaxが小さいほど補正後暫定最大酸素吸蔵量ZCmaxhが小さくなるように暫定最大酸素吸蔵量ZCmaxが補正される。次に、CPUは、ステップ760に進み、最大酸素吸蔵量Cmaxが異常判定用閾値劣化判定用閾値Ijoth以上であるか否かを判定する。このとき、最大酸素吸蔵量Cmaxが異常判定用閾値Ijoth以上であれば、触媒43は劣化していないと判定することができる。そこで、この場合、CPUはステップ760にてYesと判定してステップ765に進み、ダイアグフラグXijoに2を設定する。ダイアグフラグXijoの値が2であることは、触媒43が劣化しているか否かを判定した結果、触媒43は劣化していないと判定されたこと触媒43は正常であることを示す。これに対し、最大酸素吸蔵量Cmaxが異常判定用閾値Ijothよりも小さいと、触媒43は劣化していると判定することができる。そこで、この場合、CPUはステップ760にてNoと判定してステップ770に進み、ダイアグフラグXijoに1を設定する。このとき、CPUは図示しない警告ランプを点灯してもよい。ダイアグフラグXijoの値が1であることは、触媒43が劣化しているか否かを判定した結果、触媒43は劣化していると判定されたこと触媒43は異常であることを示す。なお、このダイアグフラグXijoの値はバックアップRAMに格納される。以上、説明したように、第1推定装置は、触媒リッチ期間において上流側目標空燃比abyfrを目標リーン空燃比afLeanに設定し、触媒リーン期間において上流側目標空燃比abyfrを目標リッチ空燃比afRichに設定し、且つ、触媒流入ガスの空燃比上流側空燃比abyfsが上流側目標空燃比abyfrに一致するように機関に供給される混合気の空燃比を制御する空燃比制御手段図6のステップ680、及び、ステップ640乃至ステップ670と、上流側目標空燃比abyfrが目標リーン空燃比afLeanに設定されている期間内の所定の第1期間において所定時間あたりに触媒流入ガスに含まれる過剰な酸素の量吸蔵酸素変化量ΔOSAkzを少なくとも上流側空燃比abyfsに基づいて算出するとともに、同算出された過剰な酸素の量を積算することにより触媒43の吸蔵酸素量を暫定最大吸蔵酸素量ZOSAkzMAXとして算出し図7のステップ720、1式及び2式、上流側目標空燃比abyfrが目標リッチ空燃比afRichに設定されている期間内の所定の第2期間において所定時間あたりに前記触媒流入ガスに含まれる過剰な未燃物の量に対応する酸素の量即ち、放出酸素変化量ΔOSAhsを少なくとも上流側空燃比abyfsに基づいて算出するとともに、同算出された過剰な未燃物の量に対応する酸素の量を積算することにより触媒43の放出酸素量を暫定最大放出酸素量ZOSAhsMAXとして算出し図7のステップ720、3式及び4式、且つ、前記算出された暫定最大吸蔵酸素量ZOSAkzMAX及び前記算出された暫定最大放出酸素量ZOSAhsMAXに基いて触媒43が吸蔵できる酸素の量の暫定的最大値である暫定最大酸素吸蔵量ZCmaxを算出する暫定最大酸素吸蔵量算出手段ステップ750と、暫定最大酸素吸蔵量ZCmaxを暫定最大酸素吸蔵量ZCmaxに基いて補正することによって補正後暫定最大酸素吸蔵量ZCmaxhを取得するとともに補正後暫定最大酸素吸蔵量ZCmaxhに基いて触媒43の最大酸素吸蔵量Cmaxを取得する手段であって、暫定最大酸素吸蔵量ZCmaxが小さいほど補正後暫定最大酸素吸蔵量ZCmaxhが小さくなるように暫定最大酸素吸蔵量ZCmaxを補正する最大酸素吸蔵量取得手段ステップ755及び図8のテーブルと、を備える。従って、第1推定装置は、触媒の劣化の程度暫定最大酸素吸蔵量ZCmaxの大小に関らず、その触媒の劣化の程度を精度良く表す最大酸素吸蔵量Cmaxを取得することができる。更に、前記最大酸素吸蔵量取得手段は、前記過剰な酸素の量を積算している期間内の所定の第3期間において上流側空燃比abyfsの平均値をリーン制御時平均空燃比AveLeanとして算出しステップ720、ステップ735、前記過剰な未燃物の量に対応する酸素の量を積算している期間内の所定の第4期間において上流側空燃比abyfsの平均値をリッチ制御時平均空燃比AveRichとして算出しステップ720、ステップ740、リーン制御時平均空燃比AveLeanとリッチ制御時平均空燃比AveRichとの差である空燃比差ΔAFが大きいほど補正後暫定最大酸素吸蔵量ZCmaxhが小さくなるように補正後暫定最大酸素吸蔵量ZCmaxhを算出するように構成されているステップ755及び図8のテーブル。これによれば、最大酸素吸蔵量Cmax算出の元データとなる暫定最大酸素吸蔵量ZCmax算出時の空燃比差ΔAFに関らず、触媒43の劣化の程度をより精度良く表す最大酸素吸蔵量Cmaxを取得することができる。なお、第1推定装置は、上流側目標空燃比abyfrを目標リッチ空燃比afRichと目標リーン空燃比afLeanとに交互に設定する制御を複数回繰り返すことにより、複数個の暫定最大吸蔵酸素量ZOSAkzMAXと複数個の暫定最大放出酸素量ZOSAhsMAXとを求め、求めた複数個の暫定最大吸蔵酸素量ZOSAkzMAXの平均値を最終的な暫定最大吸蔵酸素量ZOSAkzMAXとして取得するとともに、求めた複数個の暫定最大放出酸素量ZOSAhsMAXの平均値を最終的な暫定最大放出酸素量ZOSAhsMAXとして求めてもよい。<第2実施形態>次に、本発明の第2実施形態に係る触媒の最大酸素吸蔵量推定装置以下、単に第2推定装置と称呼する。について説明する。第2推定装置は、暫定最大吸蔵酸素量ZOSAkzMAXを暫定最大吸蔵酸素量ZOSAkzMAXに基いて補正することによって補正後暫定最大吸蔵酸素量ZOSAkzMAXhを取得するとともに、補正後暫定最大吸蔵酸素量ZOSAkzMAXhに基いて触媒43の最大酸素吸蔵量Cmaxを取得する。このとき、第2推定装置は、暫定最大吸蔵酸素量ZOSAkzMAXが小さいほど補正後暫定最大吸蔵酸素量ZOSAkzMAXhが小さくなるように、且つ、リーン制御時平均空燃比AveLeanと理論空燃比stoichとの差の大きさが大きいほど補正後暫定最大吸蔵酸素量ZOSAkzMAXhが小さくなるように暫定最大吸蔵酸素量ZOSAkzMAXを補正する。そして、第2推定装置は、その補正後暫定最大吸蔵酸素量ZOSAkzMAXhに基いて最大酸素吸蔵量Cmaxを取得する。例えば、第2推定装置は、補正後暫定最大吸蔵酸素量ZOSAkzMAXhを最大酸素吸蔵量Cmaxとして採用する。従って、第2推定装置のCPUは、図7のステップ720における暫定放出酸素量ZOSAhs及び積算値SRaf積算カウンタCRの算出を行わない。更に、第2推定装置のCPUは、ステップ740の処理を省略することができる。加えて、第2推定装置のCPUは、ステップ745において、リーン制御時平均空燃比AveLeanと理論空燃比stoichとの差ΔLSを求め、その差ΔLSを図8と同様なテーブルに適用することにより補正係数kLを決定する。この補正係数kLは、図8の空燃比差ΔAFを差ΔLSに置換し且つ図8の暫定最大酸素吸蔵量ZCmaxを暫定最大吸蔵酸素量ZOSAkzMAXに置換した場合に得られる補正係数khと同様の傾向を有するように求められる。そして、第2推定装置は、暫定最大吸蔵酸素量ZOSAkzMAXに補正係数kLを乗じることにより、補正後暫定最大吸蔵酸素量ZOSAkzMAXh従って、最大酸素吸蔵量Cmaxを取得する。この第2推定装置によっても、リーン制御時平均空燃比AveLean及び触媒の劣化の程度が最大酸素吸蔵量Cmaxに及ぼす影響を小さくすることがでるので、精度良く触媒43の劣化の程度を示す最大酸素吸蔵量Cmaxを取得することができる。<第3実施形態>次に、本発明の第3実施形態に係る触媒の最大酸素吸蔵量推定装置以下、単に第3推定装置と称呼する。について説明する。第3推定装置は、暫定最大放出酸素量ZOSAhsMAXを、暫定最大放出酸素量ZOSAhsMAXに基いて補正することによって補正後暫定最大放出酸素量ZOSAhsMAXhを取得するとともに、補正後暫定最大放出酸素量ZOSAhsMAXhに基いて触媒43の最大酸素吸蔵量Cmaxを取得する。このとき、第3推定装置は、暫定最大放出酸素量ZOSAhsMAXが小さいほど補正後暫定最大放出酸素量ZOSAhsMAXhが小さくなるように、且つ、リッチ制御時平均空燃比AveRichと理論空燃比stoichとの差の大きさが大きいほど補正後暫定最大放出酸素量ZOSAhsMAXhが小さくなるように暫定最大放出酸素量ZOSAhsMAXを補正する。そして、第3推定装置は、その補正後暫定最大放出酸素量ZOSAhsMAXhに基いて最大酸素吸蔵量Cmaxを取得する。例えば、第3推定装置は、補正後暫定最大放出酸素量ZOSAhsMAXhを最大酸素吸蔵量Cmaxとして採用する。従って、第3推定装置のCPUは、図7のステップ720における暫定吸蔵酸素量ZOSAkz及び積算値SLaf積算カウンタCLの算出を行わない。更に、第3推定装置のCPUは、ステップ735の処理を省略することができる。加えて、第3推定装置のCPUは、ステップ745において、リッチ制御時平均空燃比AveRichと理論空燃比stoichとの差ΔRSを求め、その差ΔRSを図8と同様なテーブルに適用することにより補正係数kRを決定する。この補正係数kRは、図8の空燃比差ΔAFを差ΔRSに置換し且つ図8の暫定最大酸素吸蔵量ZCmaxを暫定最大放出酸素量ZOSAhsMAXに置換した場合に得られる補正係数khと同様の傾向を有するように求められる。そして、第3推定装置は、暫定最大放出酸素量ZOSAhsMAXに補正係数kRを乗じることにより、補正後暫定最大放出酸素量ZOSAhsMAXh従って、最大酸素吸蔵量Cmaxを取得する。この第3推定装置によっても、リッチ制御時平均空燃比AveRich及び触媒の劣化の程度が最大酸素吸蔵量Cmaxに及ぼす影響を小さくすることがでるので、精度良く触媒43の劣化の程度を示す最大酸素吸蔵量Cmaxを取得することができる。以上、説明したように、本発明の各実施形態に係る触媒の最大酸素吸蔵量推定装置によれば、最大酸素吸蔵量の算出の元となるデータを取得している期間の上流側空燃比abyfsの程度、及び、触媒43の劣化の程度に関らず、触媒43の劣化の程度を精度良く表す最大酸素吸蔵量Cmaxを取得することができる。本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、第1期間は触媒リッチ期間と一致してもよい。第2期間は触媒リーン期間と一致してもよい。第3期間は、上流側空燃比abyfsが、上流側目標空燃比abyfrが目標リーン空燃比afLeanに設定された時点以降において目標リーン空燃比afLeanよりも所定値だけ小さい閾値に到達した時点から、その後のリーン反転時までの期間であってもよい。、第4期間は、上流側目標空燃比abyfrが、目標リッチ空燃比afRichに設定された時点以降においても目標リッチ空燃比afRichよりも所定値だけ大きい閾値に到達した時点から、その後のリッチ反転時点までの期間であってもよい。更に、第1推定装置は、補正係数khを用いることにより暫定最大酸素吸蔵量ZCmaxの暫定最大酸素吸蔵量ZCmax及び空燃比差ΔAFに基く補正を同時に行っていたが、暫定最大酸素吸蔵量ZCmaxを空燃比差ΔAFに基いて補正した後、更に、その補正された暫定最大酸素吸蔵量ZCmaxを補正前又は補正後の暫定最大酸素吸蔵量ZCmaxに基いて補正してもよい。また、第1推定装置は、暫定最大酸素吸蔵量ZCmaxを暫定最大酸素吸蔵量ZCmaxに基いて補正し、その補正後の暫定最大酸素吸蔵量ZCmaxを空燃比差ΔAFに基いて補正して、補正後暫定最大酸素吸蔵量ZCmaxh即ち、最大酸素吸蔵量Cmaxを求めてもよい。更に、第1推定装置は、暫定最大酸素吸蔵量ZCmaxを暫定最大酸素吸蔵量ZCmaxに基いて補正した値を即ち、空燃比差ΔAFに基く補正を行うことなく補正後暫定最大酸素吸蔵量ZCmaxh即ち、最大酸素吸蔵量Cmaxとして採用してもよい。"