内燃機関の排気通路に備えられてNOxの吸蔵および還元を行う触媒部と、その触媒部に吸蔵された硫黄を放出可能な温度まで触媒部を昇温する昇温制御と、前記触媒部に吸蔵された硫黄が放出されるように前記触媒部を通過する排気を燃料過剰にするリッチ制御と、を交互に繰り返す再生制御を行う再生手段と、前記触媒部の上流および下流における空燃比を検出する検出手段と、前記触媒部の温度を取得する第1取得手段と、前記第1取得手段が取得した触媒部の温度に応じて、前記触媒部で発生するH2の影響を打ち消すように、前記検出手段で検出された触媒部下流の空燃比を補正する補正手段と、前記リッチ制御期間中における、前記検出手段により検出された触媒部上流の空燃比と、前記補正手段により補正された触媒部下流の空燃比と、を用いて前記再生手段による再生制御の終了を判定する判定手段と、を備えたことを特徴とする内燃機関の排気浄化装置。前記補正手段は、前記内燃機関の回転数と負荷相当量とのうちの少なくとも一方に基づいて前記触媒部で生成されるH2量を推定する第1推定手段と、その第1推定手段で推定されたH2量に応じて、前記検出手段で検出された触媒部下流の空燃比を補正する第1副補正手段と、を備えた請求項1に記載の内燃機関の排気浄化装置。前記補正手段は、前記リッチ制御中に前記内燃機関から排出されるCO量およびHC量を取得する第2取得手段と、その第2取得手段で取得されたCO量およびHC量に基づいて、前記触媒部で生成されるH2量を推定する第2推定手段と、その第2推定手段で推定されたH2量に応じて、前記検出手段で検出された触媒部下流の空燃比を補正する第2副補正手段と、を備えた請求項1に記載の内燃機関の排気浄化装置。前記補正手段は、前記触媒部を通過する排気量を取得する第3取得手段と、その第3取得手段で取得された排気量に基づいて、前記触媒部で生成されるH2量を推定する第3推定手段と、その第3推定手段で推定されたH2量に応じて、前記検出手段で検出された触媒部下流の空燃比を補正する第3副補正手段と、を備えた請求項1乃至3のいずれか1項に記載の内燃機関の排気浄化装置。前記補正手段は、前記触媒部における熱劣化程度を取得する第4取得手段と、その第4取得手段で取得された熱劣化程度に基づいて、前記触媒部で生成されるH2量を推定する第4推定手段と、その第4推定手段で推定されたH2量に応じて、前記検出手段で検出された触媒部下流の空燃比を補正する第4副補正手段と、を備えた請求項1乃至4のいずれか1項に記載の内燃機関の排気浄化装置。前記判定手段は、間欠的に実行されるリッチ制御において前記補正手段により補正された触媒部下流の空燃比と前記検出手段により検出された触媒部上流の空燃比との差分値が所定値以下となることが、複数回のリッチ制御で連続して発生した場合に、前記再生制御の終了を判定する副判定手段を備えた請求項1乃至5のいずれか1項に記載の内燃機関の排気浄化装置。リッチ制御時にはLNT内部でH2水素分子が生成されることが知られている。したがってLNT下流にリッチガスがすり抜けるとき、LNT下流のリッチガスにH2が含まれる。発明者の知見によれば、このH2がLNT下流のA/Fセンサの計測誤差を引き起こす。その誤差の程度はH2量により変化する。こうして発生する誤差の影響を低減すれば、例えば上記特許文献1におけるS再生終了判定がさらに高精度になると考えられる。そこで本発明が解決しようとする課題は、上記問題点に鑑み、LNT上下流のA/F検出値を用いてS再生終了判定を行う際に、リッチ制御中にLNT内部で生成されるH2量に応じてLNT下流のA/F検出値を補正することにより、高精度にS再生制御の終了判定が行える内燃機関の排気浄化装置を提供することにある。上記課題を達成するために、本発明に係る内燃機関の排気浄化装置は、内燃機関の排気通路に備えられてNOxの吸蔵および還元を行う触媒部と、その触媒部に吸蔵された硫黄を放出可能な温度まで触媒部を昇温する昇温制御と、前記触媒部に吸蔵された硫黄が放出されるように前記触媒部を通過する排気を燃料過剰にするリッチ制御と、を交互に繰り返す再生制御を行う再生手段と、前記触媒部の上流および下流における空燃比を検出する検出手段と、前記触媒部の温度を取得する第1取得手段と、前記第1取得手段が取得した触媒部の温度に応じて、前記触媒部で発生するH2の影響を打ち消すように、前記検出手段で検出された触媒部下流の空燃比を補正する補正手段と、前記リッチ制御期間中における、前記検出手段により検出された触媒部上流の空燃比と、前記補正手段により補正された触媒部下流の空燃比と、を用いて前記再生手段による再生制御の終了を判定する判定手段と、を備えたことを特徴とする。これにより本発明に係る内燃機関の排気浄化装置は、NOxの吸蔵と還元を行う触媒部の上下流の空燃比を用いて触媒部の再生制御の終了を判定する際に、触媒部の温度に応じて、触媒部で発生するH2の影響を打ち消すように、触媒部下流の空燃比を補正する。したがって適切に補正された触媒部下流の空燃比の検出値を用いて、触媒部の温度により触媒部で発生するH2量が異なることの影響を受けることなく高精度に触媒部の再生終了が判定できる。また前記補正手段は、前記内燃機関の回転数と負荷相当量とのうちの少なくとも一方に基づいて前記触媒部で生成されるH2量を推定する第1推定手段と、その第1推定手段で推定されたH2量に応じて、前記検出手段で検出された触媒部下流の空燃比を補正する第1副補正手段と、を備えたとしてもよい。この発明によれば、NOxの吸蔵と還元を行う触媒部の上下流の空燃比を用いて触媒部の再生制御の終了を判定する際に、内燃機関の回転数あるいは負荷相当量により推定された触媒部でのH2生成量に応じて、触媒部下流の空燃比を補正する。したがって適切に補正された触媒部下流の空燃比の検出値を用いて、内燃機関の回転数あるいは負荷相当量により触媒部で発生するH2量が異なることの影響を受けることなく高精度に触媒部の再生終了が判定できる。また前記補正手段は、前記リッチ制御中に前記内燃機関から排出されるCO量およびHC量を取得する第2取得手段と、その第2取得手段で取得されたCO量およびHC量に基づいて、前記触媒部で生成されるH2量を推定する第2推定手段と、その第2推定手段で推定されたH2量に応じて、前記検出手段で検出された触媒部下流の空燃比を補正する第2副補正手段と、を備えたとしてもよい。この発明によれば、NOxの吸蔵と還元を行う触媒部の上下流の空燃比を用いて触媒部の再生制御の終了を判定する際に、内燃機関から排出されるCO量およびHC量により推定された触媒部でのH2生成量に応じて、触媒部下流の空燃比を補正する。したがって適切に補正された触媒部下流の空燃比の検出値を用いて、内燃機関から排出されるCO量およびHC量により触媒部で発生するH2量が異なることの影響を受けることなく高精度に触媒部の再生終了が判定できる。また前記補正手段は、前記触媒部を通過する排気量を取得する第3取得手段と、その第3取得手段で取得された排気量に基づいて、前記触媒部で生成されるH2量を推定する第3推定手段と、その第3推定手段で推定されたH2量に応じて、前記検出手段で検出された触媒部下流の空燃比を補正する第3副補正手段と、を備えたとしてもよい。この発明によれば、NOxの吸蔵と還元を行う触媒部の上下流の空燃比を用いて触媒部の再生制御の終了を判定する際に、触媒部を通過する排気量により推定された触媒部でのH2生成量に応じて、触媒部下流の空燃比を補正する。したがって適切に補正された触媒部下流の空燃比の検出値を用いて、触媒部を通過する排気量により触媒部で発生するH2量が異なることの影響を受けることなく高精度に触媒部の再生終了が判定できる。また前記補正手段は、前記触媒部の熱劣化程度を取得する第4取得手段と、その第4取得手段で取得された熱劣化程度に基づいて、前記触媒部で生成されるH2量を推定する第4推定手段と、その第4推定手段で推定されたH2量に応じて、前記検出手段で検出された触媒部下流の空燃比を補正する第4副補正手段と、を備えたとしてもよい。この発明によれば、NOxの吸蔵と還元を行う触媒部の上下流の空燃比を用いて触媒部の再生制御の終了を判定する際に、触媒部の熱劣化程度により推定された触媒部でのH2生成量に応じて、触媒部下流の空燃比を補正する。したがって適切に補正された触媒部下流の空燃比の検出値を用いて、触媒部の熱劣化程度により触媒部で発生するH2量が異なることの影響を受けることなく高精度に触媒部の再生終了が判定できる。また前記判定手段は、間欠的に実行されるリッチ制御において前記補正手段により補正された触媒部下流の空燃比と前記検出手段により検出された触媒部上流の空燃比との差分値が所定値以下となることが、複数回のリッチ制御で連続して発生した場合に、前記再生制御の終了を判定する副判定手段を備えたとしてもよい。この発明によれば、触媒部上下流の空燃比の差分値が所定値以下となることが複数回のリッチ制御で連続して起こったら、触媒部の再生制御を終了する。したがって例えば触媒部の下流の空燃比の検出値に定常的なドリフトが生じた場合にも適切に終了判定できる。以下、本発明の実施形態を図面を参照しつつ説明する。まず図1は、本発明に係る排気浄化システム1以下、システムの一実施例における概略構成図である。システム1は、ディーゼルエンジン2以下、エンジンに対して構成されているとする。エンジン2に吸気管3が接続されており、吸気管3からエンジン2に空気が供給される。またエンジン2に接続された排気管4へ排気が排出される。電子制御装置6ECU:ElectronicControlUnitによりエンジン2の燃料噴射をはじめとする従来からある多様な制御、さらに本発明に関わる制御が行われる。吸気管3にはエアフローメータ30が装備されて、吸気量例えば単位時間あたりの吸気流量が計測される。排気管4にはNOx吸蔵還元触媒LNT5が装備されている。LNT5は、例えば内部に複数の通路が形成され、通路の壁面にNOxの吸蔵のための吸蔵剤、NOxの還元のための触媒が担持された構造とすればよい。リーン雰囲気において吸蔵剤に排ガス中のNOxが吸蔵され、エンジン2の燃料噴射もしくはLNT5の上流に装着された添加弁から燃料が添加されてリッチ雰囲気になると吸蔵されたNOxが窒素に還元されて排出されることにより排気浄化を行う。LNT5の上流側と下流側にはA/Fセンサ40、41が配置されている。A/Fセンサ40、41で検出計測されたA/F値空燃比値はECU6へ送られる。またLNT5の上流側と下流側には排気温度センサ42、43が配置されている。排気温度センサ42、43で検出計測された排気温度もECU6へ送られる。なお本実施例におけるLNT5の温度とは、排気温度センサ42、43のいずれかの計測値、あるいは両数値の平均値、あるいは排気温度センサ42、43のいずれか又は両方とLNT5温度の数学的モデルとから算出推定したLNT5内部温度の数値などとすればよい。以上の構成のもとで、システム1はS再生制御の終了判定処理を実行する。その具体的な処理手順が図2および図3に示されている。図2及び図3の処理手順は予めプログラム化して例えばメモリ60に記憶しておき、ECU6が呼び出して自動的に実行すればよい。図2および図3の処理の基本的な流れは、LNT5のS再生中において間欠的にリッチ制御を行うが、各リッチ制御中にS20からS140でLNT上流下流のA/F値平均値と、下流A/F値の補正のための各種数値を取得し、各リッチ制御が終了したらS170以降でリッチ期間中に取得した情報を用いてS再生の終了判定を行う。具体的に図2の処理では、まずS10でECU6は、変数Nをゼロに初期化する。この変数Nは、後述するとおりA/F計測値などの平均値算出に用いた数値の数を示す変数である。次にS20でECU6はリッチ制御が許可されているか否かを判別する。リッチ制御が許可されている場合S20:YESはS30に進み、許可されていない場合S20:NOはS170に進む。S30に進んだらECU6は、例えばポスト噴射や添加弁からの燃料添加により排気の雰囲気をリッチに制御する。次にS40でECU6は、LNT6の上流のA/F値AF1_newおよび下流のA/F値AF2_newを取得する。これらはそれぞれA/Fセンサ40、41で検出すればよい。次にS50でECU6は、S40で検出したAF1_newおよびAF2_newが理論空燃比未満であるか否かを判別する。AF1_newおよびAF2_newがともに理論空燃比未満の場合、すなわちリッチ制御の結果LNT6の上下流が実際にリッチ雰囲気となった場合S50:YESはS60に進み、AF1_newおよびAF2_newのいずれかが理論空燃比以上の場合、すなわちLNT6の上下流がまだリッチ雰囲気になっていない場合S50:NOはS150に進む。S60に進んだらECU6は、AF1_newとAF1_oldの差分の絶対値、およびAF2_newとAF2_oldの差分の絶対値が所定値よりも小さいか否かを判別する。ここで、AF1_oldとAF2_oldとはそれぞれ、S10からS140の手順が繰り返し処理される際の1回前の処理におけるAF1_newとAF2_newである。AF1_newとAF1_oldの差分の絶対値、およびAF2_newとAF2_oldの差分の絶対値が所定値よりも小さい場合S60:YESはS70に進み、それらの絶対値のいずれかが所定値以上の場合S60:NOはS150に進む。すなわちS70に進んだ場合は、LNT6上流および下流のA/F値がともに安定している場合である。S70に進んだらECU6は、A/F計測値が安定していることを示すA/F安定カウンタC_AFを1増やす。続いてS80でECU6は、C_AFが所定値以上であるか否かを判別する。C_AFが所定値以上の場合S80:YESはS90に進み、C_AFが所定値未満の場合S80:NOはS160に進む。S90に進んだ場合はA/F値が落ち着いた期間がある程度の期間、持続したとみなせる場合である。したがってS90でECU6は、A/F安定フラグX_staをONにする。続いてS100でECU6は、S再生の終了判定のために、LNT6の上流のA/F値AF1_tmpおよび下流のA/F値AF2_tmpを、A/Fセンサ40、41で検出する。次にS110でECU6は、S100で取得したAF1_tmpおよびAF2_tmpの平均値AF1_aveおよびAF2_aveを算出する平均化処理。具体的には例えば次の式を用いればよい。なお周知のとおり←は数値の代入を示す。AF1_ave←NAF1_aveAF1_tmp/N1AF2_ave←NAF2_aveAF2_tmp/N1次にS120でECU6は、LNT温度、LNT5を通過する排気ガス中のCO量およびHC量、LNT5を通過する排気ガスの流速、LNT5の熱劣化の度合いに相当する数値を取得する。ここでLNT5を通過する排気ガスの流速は例えばエアフロメータ30の検出値とすればよい。またLNT5の熱劣化の度合いに相当する数値は、LNTの温度が所定値以上となった積算時間とすればよいECU6にタイマを備える。続いてS130でECU6は、LNT温度、LNT5を通過する排気ガス中のCO量およびHC量、LNT5を通過する排気ガスの流速、LNT5の熱劣化の度合いに相当する数値に対して、S110と同様の平均化処理を実行して、X_staがオンである期間中における、LNT温度平均T_ave、LNT5を通過する排気ガス中のCO量平均CO_aveおよびHC量平均HC_ave、LNT5を通過する排気ガスの流速平均SV_ave、LNT5の熱劣化の度合い相当値平均D_aveを算出する。そしてS140でECU6はNの値を1増分してS10に戻り、S10が否定判断NOとなるまで上記S10からS140の手順を繰り返す。一方S150に進んだらECU6は、C_AFをゼロにリセットする。そしてS160でA/F安定フラグX_staをオフにしてS10に戻る。次に図3に移って、S170に進んだらECU6は、Nが所定値以上であるか否かを判別する。Nが所定値以上の場合S170:YESはS180に進み、Nが所定値未満の場合S170:NOはS190でNをゼロに初期化した後にS10に戻って、上記処理を繰り返す。S180に進んだらECU6は、終了判定演算フラグX_calをオンにする。続いてS200でECU6は、S130で算出したLNT温度平均T_ave、LNT5を通過する排気ガス中のCO量平均CO_aveおよびHC量平均HC_ave、LNT5を通過する排気ガスの流速平均SV_ave、LNT5の熱劣化の度合い相当値平均D_aveのうちの少なくとも1つを用いて、LNT5で生成されるH2量H2_aveを推定する。続いてS210でECU6は、S200で推定したH2_aveを用いて、AF2_aveをAF2_modに補正する。S200およびS210の処理の詳細は図4から図9を用いて後述する。続いてS220でECU6はAF2_modとAF1_aveとの差分値をΔAF_dとする。すなわち次式を用いる。ΔAF_d←AF2_mod-AF1_ave次にS230でECU6は、S220で算出したΔAF_dが再生終了上限以下であるか否か、あるいはΔAF_dとΔAF_oldとの差分の絶対値が所定値以下であるか否かを判別する。ここでΔAF_oldは前回のリッチ制御で算出したΔAF_dである。ΔAF_dが再生終了上限以下である、あるいはΔAF_dとΔAF_oldとの差分の絶対値が所定値以下である場合S230:YESはS240に進み、ΔAF_dが再生終了上限より大きく、かつΔAF_dとΔAF_oldとの差分の絶対値が所定値より大きい場合S230:NOはS250に進む。S240に進んだ場合は、ΔAF_dが安定した数値であり、かつ十分小さいとみなされる場合である。したがってS240に進んだらECU6は、再生終了カウンタFの値を1増加する。S250に進んだらECU6は、再生終了カウンタFをゼロにリセットする。続いてS260でECU6は、X_calをオフにする。そしてS270でECU6は、Fが所定値以上であるか否かを判別する。Fが所定値以上の場合S270:YESはS280に進み、Fが所定値未満の場合S270:NOはS290で変数Nをゼロに初期化した後にS10に戻る。S280に進んだらECU6は再生終了フラグをオンにする。これによりLNT5のS被毒再生処理が終了する。以上が図2および図3の処理手順である。次に、図4から図9には上記S200、S210での処理内容が図示されているので、以下でこれらを説明する。S200、S210では以下で述べる処理のうちの少なくとも1つを実行すればよい。図4には、LNT5で生成されるH2量とLNT下流A/F検出値の補正量との関係の例が示されている。発明者の知見によれば、LNT5でのH2生成量が多いほど、LNT下流A/Fセンサ41の検出値はリッチ側へのずれ量が大きくなる。したがってこの誤差を打ち消すために、図3のS210では、図4に示されているように、LNT5でのH2生成量が多いほど、LNT下流A/Fセンサ41の検出値をより大きくリーン側に補正する。図5にはLNT5の温度とLNT下流A/F検出値の補正量との関係の例が示されている。発明者の知見によれば、LNT5の内部では、水性ガスシフト反応COH2O→CO2H2および水蒸気改質反応C3H63H2O→2CO6H2によりH2が生成される。したがってLNT5の温度が高いほど、LNT5でのH2生成量が多くなる。よって、この性質と図4の性質とを組み合わせると、LNT5の温度が高いほど、LNT下流A/Fセンサ41の検出値はリッチ側へのずれ量が大きくなる。したがってこの誤差を打ち消すために、図3のS210では、図5に示されているように、LNT5の温度が高いほど、LNT下流A/Fセンサ41の検出値をより大きくリーン側に補正する。図6にはエンジン2から排出されるCO一酸化炭素量とHC炭化水素量とLNT5で生成されるH2量との関係の例が示されている。図6では特にCO量/HC量CO量とHC量との比を扱っている。発明者の知見によれば、COを用いる水性ガスシフト反応の方がHCを用いる水蒸気改質反応よりも反応が起こりやすいので、エンジンから排出される排気中のCO量がHC量に比して多いほどH2生成量が増加すると考えられる。よって、図6に示されているように、エンジン2から排出されるCO量/HC量が大きいほど、LNT5でのH2生成量が多くなる。したがって、この性質と図4の性質とを組み合わせると、エンジン2から排出されるCO量/HC量が大きいほど、LNT下流A/Fセンサ41の検出値はリッチ側へのずれ量が大きくなる。したがってこの誤差を打ち消すために、図3のS210では、エンジン2から排出されるCO量/HC量が大きいほど、LNT下流A/Fセンサ41の検出値をより大きくリーン側に補正する。図7には、エンジン2の運転状態を示す平面におけるCO量/HC量の分布の例が示されている。同図のとおり、高回転数あるいは高負荷アクセル開度大、燃料噴射量大の領域ほど、CO量/HC量は小さくなる。その理由は、高回転数あるいは高負荷であるほどエンジン2からスモークが発生しやすいので、スモークを減らすように噴射パターンを適合する必要があり、これによりCO量/HC量が減少することとなるからである。図4、6、7を組み合わせることにより、図3のS210では、エンジン2が低回転あるいは低負荷であるほど、LNT下流A/Fセンサ41の検出値をより大きくリーン側に補正する。図8にはLNT5を通過する排気ガス流量流速とLNT5で生成されるH2量との関係の例が示されている。発明者の知見によれば、図8に示されているとおり、LNT5を通過する排気ガス流量流速が大きいほど、ガスとLNT内の触媒との接触時間が減少し、これにより、LNT5でのH2生成量が減少すると考えられる。したがって、この性質と図4の性質とを組み合わせると、LNT5を通過する排気ガス流量流速が小さいほど、LNT下流A/Fセンサ41の検出値はリッチ側へのずれ量が大きくなる。よってこの誤差を打ち消すために、図3のS200では、図8に示されているように、LNT5を通過する排気ガス流量流速が小さいほど、LNT下流A/Fセンサ41の検出値をより大きくリーン側に補正する。なお図2、3の処理では、例えばLNT5を通過する排気ガス流量流速はエアフロメータ30で検出すればよい。図9にはLNT5の熱劣化程度とLNT5で生成されるH2量との関係の例が示されている。発明者の知見によれば、図9に示されているように、LNT5が熱劣化するほど、ガスとLNT内の触媒との接触時間が減少し、これによりLNT5でのH2生成量が減少する。したがって、この性質と図4の性質とを組み合わせると、LNT5の熱劣化程度が小さいほど、LNT下流A/Fセンサ41の検出値はリッチ側へのずれ量が大きくなる。したがってこの誤差を打ち消すために、図3のS210では、LNT5の熱劣化程度が小さいほど、LNT下流A/Fセンサ41の検出値をより大きくリーン側に補正する。なお図2、3の処理では、例えばLNT温度が所定温度以上となった積算時間をLNT5の熱劣化程度に相当する量とすればよい。図2および図3の処理手順を実行した際のシステム1の時間的推移の例が図10に示されている。再生要求フラグは、LNT5のS再生制御が必要だと判断されるときにオンにするフラグ変数である。再生要求フラグは、例えばECU6において燃料消費量の積算値、あるいは走行距離などからLNT5に堆積した硫黄の量を推定し、この推定量がS被毒回復が必要な量を越えたらオンとすればよい。あるいは、NOxセンサによって直接LNT5の性能劣化の度合いを判定して、これが設定された限度を越えたら再生要求フラグをオンにするとしてもよい。またA/Fセンサ40、41などでNOx還元中のLNT5の還元剤消費量からNOx吸蔵量を推定し、NOx吸蔵性能の劣化度合いを観測して、これが悪化したら再生要求フラグをオンにするとしてもよい。本実施例ではS再生制御実行中は、リッチ制御フラグを間欠的にオンにする。リッチ制御フラグがオンの期間リッチ期間は、リッチ雰囲気を形成するためにECU6からの指令で例えばエンジン2のシリンダ内で燃焼反応が完了した後に再噴射するポスト噴射により、あるいは吸気を絞って燃焼ガスそのものをリッチ化するリッチ燃焼により、あるいは排気管4のLNT5より上流に燃料添加弁を装備してそこから燃料を添加すること等により、LNT5に流入する排気ガスをリッチ燃料過剰にする。なお本実施例ではリッチ制御を行っていない間は、昇温制御フラグをオンにして、LNT5の昇温制御を行う。LNT5の昇温制御では、LNT5に吸蔵された硫黄分が放出可能な温度まで昇温する。図10にはA/Fセンサ40、41の計測値の例が、A/Fセンサ40の計測値は太い線で、A/Fセンサ41の計測値は細い線で示されている。一般的な傾向としてリッチ期間中は、LNT5の下流側A/Fセンサ11の計測値の方がLNT5の上流側A/Fセンサ10の計測値よりも高くなる。この理由は、LNT5内でS再生のために燃料成分のうちの一部が使用されるためであると考えられる。図2のS30からS90までの処理によって、A/F計測値が理論空燃比以下リッチとなり、かつ計測値が安定したら、A/F安定フラグX_staがオンにされる。そしてX_staがオンとなっている期間中に、S100からS130の処理により、LNT上下流のA/F計測値、LNT温度、CO量、HC量、LNT通過ガス流量流速、LNTの熱劣化程度の平均値を算出する。そしてリッチ制御が終了したら、S170以降に進んで、終了判定演算フラグX_calをオンにしてS再生終了判定のための演算を実行する。そのなかでS210でLNT下流A/F値を補正する。図10の例において補正前のLNT下流A/F値は、上流A/F値よりも低い場合もあり信頼性が低い数値だと考えられるが、補正後のLNT下流A/F値は上流A/F値よりも高い数値となっており、適切に補正されたと考えられる。そしてS220で、補正後のLNT下流A/F値と上流A/F値との差分値を算出し、その差分値が所定値以下である等の条件が満たされたら、再生終了フラグをオンにして、S再生を終了する。上記実施例は特許請求の範囲に記載された趣旨を逸脱しない範囲で適宜変更してよい。また図6、図7ではCO量/HC量を用いたが、本発明はこれに限定せず、例えばCO量、HC量それぞれをエンジンの運転条件に応じてマップから算出し、CO量、HC量それぞれに対してLNTでのH2生成量を算出してもよい。またエンジンの運転条件を用いる場合、回転数と負荷のうちどちらか一方のみを用いた簡易化された処理でもよい。またエンジン2はディーゼルエンジンに限らずリーンバーンガソリンエンジンでもよい。