以下、図面を参照しながら、本発明の好ましい実施形態を詳細に説明する。図1に示す内燃機関(以下「エンジン」という)3は、4つの気筒(図示せず)を有する4サイクルタイプのガソリンエンジンであり、車両(図示せず)に動力源として搭載されている。エンジン3のクランク軸(図示せず)には、クランク角センサ21が設けられている。クランク角センサ21は、クランク軸の回転に伴い、パルス信号であるCRK信号およびTDC信号を、制御装置1の後述するECU2に出力する。
CRK信号は、所定のクランク角(例えば30゜)ごとに出力される。ECU2は、このCRK信号に基づき、エンジン3の回転数(以下「エンジン回転数」という)NEを求める。TDC信号は、4つの気筒のいずれかのピストンが吸気行程開始時のTDC(上死点)付近にあることを表す信号であり、4気筒タイプの本例では、クランク角180゜ごとに出力される。また、エンジン3には、気筒判別センサ(図示せず)が設けられており、気筒判別センサは、気筒を判別するためのパルス信号である気筒判別信号をECU2に出力する。ECU2は、これらの気筒判別信号、CRK信号およびTDC信号に基づいて、クランク角度位置を気筒ごとに算出する。
エンジン3の吸気通路4には、上流側から順に、スロットル弁5、吸気圧センサ22および燃料噴射弁6が設けられている。このスロットル弁5の開度(以下「スロットル弁開度」という)は、ECU2により制御され、それにより、吸気通路4を介して各気筒の燃焼室に吸入される吸入空気量が制御される。また、スロットル弁開度THは、スロットル弁開度センサ23によって検出され、その検出信号はECU2に出力される。
上記の吸気圧センサ22は、吸気通路4内の圧力(以下「吸気圧」という)PBAを、絶対圧として検出するとともに、その検出信号をECU2に出力する。ECU2は、エンジン回転数NEおよび吸気圧PBAに応じて、吸入空気量GINを算出する。燃料噴射弁6は、気筒ごとに、吸気ポートに臨むように設けられている(1つのみ図示)。燃料噴射弁6の開弁時間および開弁タイミングは、ECU2によって制御され、それにより、燃料噴射弁6による燃料の噴射動作が制御される。
エンジン3にはさらに、燃焼室内の混合気に点火するための点火プラグ(図示せず)が、気筒ごとに設けられている。この点火プラグの点火動作は、ECU2によって制御される。
また、エンジン3の排ガスを排出するための排気通路7(排気系)には、上流側から順に、LAFセンサ24、三元触媒8、第1O2センサ25、NOx触媒9、および第2O2センサ26が設けられている。LAFセンサ24は、ジルコニアや白金電極で構成されており、燃焼室で燃焼した混合気の空燃比の領域が理論空燃比よりもリッチな領域からリーンな領域までの広範囲な領域において、排ガス中の酸素濃度をリニアに検出するとともに、その検出信号をECU2に出力する。ECU2は、LAFセンサ24で検出された酸素濃度に基づいて、燃焼した実際の混合気の空燃比を表す実空燃比A/FACTを算出する。
上記の三元触媒8は、排ガス中のHCおよびCOを酸化するとともに、NOxを還元することによって、排ガスを浄化する。三元触媒8によるHC、COおよびNOxの浄化能力は、排ガスがストイキ雰囲気下にあるとき、すなわち、排気空燃比(排ガス中のHCやCOなどの還元剤に対する酸素の割合)が、理論空燃比を含む比較的狭い領域にあるときに、いずれも高くなる。また、NOx触媒9は、いわゆるNOx吸蔵型のものであり、排ガス中の酸素濃度が比較的高い酸化雰囲気下では、排ガス中のNOxを捕捉する(吸着して保持する)一方、排ガス中の還元剤の濃度が比較的高い還元雰囲気下では、捕捉したNOxを放出するとともに、還元剤で還元することによって、排ガスを浄化する。
第1O2センサ25は、ジルコニアや白金電極で構成されており、三元触媒8のすぐ下流側の排ガス中の酸素濃度に基づく出力(以下「第1出力」という)FVO2を、ECU2に出力する。この第1出力FVO2は、排気空燃比が理論空燃比よりもリッチ側のときにはHiレベルになるとともに、リーン側のときにはLoレベルになり(図4参照)、理論空燃比の前後において急激に変化する。第2O2センサ26は、第1O2センサ25と同様に構成されており、NOx触媒9のすぐ下流側の排ガス中の酸素濃度に基づく出力(以下「第2出力」という)SVO2を、ECU2に出力する。第2出力SVO2も、排気空燃比に応じて、第1出力FVO2と同様に変化する。
また、排気通路7のNOx触媒9のすぐ上流側には、排ガス温度センサ27(温度取得手段)が設けられている。排ガス温度センサ27は、NOx触媒9に流入する排ガスの温度を検出するとともに、その検出信号をECU2に出力する。ECU2は、検出された排ガスの温度に応じて、NOx触媒9の温度(以下「NOx触媒温度」という)TLNCを算出する。
ECU2にはさらに、アクセル開度センサ28から、車両のアクセルペダル(図示せず)の操作量であるアクセル開度APを表す検出信号が、車速センサ29から車両の車速VPを表す検出信号が、それぞれ出力される。
ECU2は、CPU、RAM、ROM、EEPROMおよびI/Oインターフェース(いずれも図示せず)などからなるマイクロコンピュータで構成されている。ECU2は、前述した各種のセンサ21〜29の検出信号に基づき、ROMに記憶された制御プログラムに従って、図2および図3にそれぞれ示すエンジン制御処理およびNOx触媒9の異常判定処理を実行する。なお、本実施形態では、ECU2が、本発明における仮判定手段、温度取得手段、仮判定禁止手段、上限温度更新手段、リーンバーン禁止手段、および異常確定手段に相当する。
このエンジン制御処理は、次のストイキ燃焼運転、リーンバーン運転およびリッチスパイク運転のいずれかでエンジン3を運転し、制御する処理であり、前述したTDC信号の発生に同期して、気筒ごとに実行される。
・ストイキ燃焼運転:エンジン3に供給される混合気の空燃比を理論空燃比になるように制御することにより、理論空燃比の混合気を燃焼室で燃焼させることによって、ストイキ燃焼運転を実行する運転モード。
・リーンバーン運転:空燃比を理論空燃比よりもリーンになるように制御することにより、理論空燃比よりもリーンな空燃比の混合気を燃焼室で燃焼させることによって、リーンバーン運転を実行する運転モード。
・リッチスパイク運転:NOx触媒9に捕捉されたNOxを放出させ、還元するために、空燃比を理論空燃比よりも若干リッチになるように制御する運転モード。
まず、図2のステップ1(「S1」と図示。以下同じ)では、禁止フラグF_FORBIDが「1」であるか否かを判別する。この禁止フラグF_FORBIDは、NOx触媒9の異常を仮判定するための後述する異常仮判定が禁止されているときに「1」に設定されるものであり、図3の異常判定処理において後述するように設定される。このステップ1の答がYES(F_FORBID=1)で、NOx触媒9の異常仮判定が禁止されているときには、リーンバーン運転を禁止するとともに、ストイキ燃焼運転を実行し(ステップ2)、本処理を終了する。
このストイキ燃焼運転中、エンジン回転数NEおよび要求トルクTREQに応じ、スロットル弁開度THを介して吸入空気量GINを制御するとともに、算出された実空燃比A/FACTが理論空燃比になるように、燃料噴射弁6の噴射動作を制御する。この要求トルクTREQは、エンジン回転数NEおよび検出されたアクセル開度APに応じ、所定のマップ(図示せず)を検索することによって算出される。以上により、ストイキ燃焼運転中、理論空燃比の混合気が燃焼室で燃焼する。
一方、前記ステップ1の答がNO(F_FORBID=0)で、NOx触媒9の異常仮判定が禁止されていないときには、リーンバーンフラグF_LEANが「1」であるか否かを判別する(ステップ3)。このリーンバーンフラグF_LEANは、リーンバーン運転を実行するための次の所定の実行条件(a)〜(d)のいずれもが成立していることを、「1」で表すものである。
(a)エンジン回転数NEが所定範囲内にあること。
(b)車速VPが所定範囲内にあること。
(c)要求トルクTREQが所定値以下で低負荷領域にあること。
(d)スロットル弁開度THが所定値以下であること。
上記ステップ3の答がYES(F_LEAN=1)のときには、リーンバーン運転を実行し(ステップ4)、本処理を終了する。このリーンバーン運転中、スロットル弁開度THを、ほぼ全開状態に制御するとともに、実空燃比A/FACTが目標空燃比A/FOBJになるように、燃料噴射弁6の噴射動作を制御する。この場合、目標空燃比A/FOBJは、エンジン回転数NEや要求トルクTREQに応じて、理論空燃比よりもリーンな空燃比に設定される。以上により、リーンバーン運転中、理論空燃比よりもリーンな空燃比の混合気が燃焼室で燃焼する結果、エンジン3の良好な燃費を得ることができる。
一方、ステップ3の答がNO(F_LEAN=0)のときには、リッチスパイクフラグF_RICHが「1」であるか否かを判別する(ステップ5)。このリッチスパイクフラグF_RICHは、リッチスパイク運転を実行するための所定の実行条件が成立したときに「1」に設定される。この実行条件は、NOx触媒9に捕捉されたNOxの捕捉量が飽和状態にあると判定されたときに、成立していると判定される。このNOxの捕捉量は、エンジン回転数NEや、吸入空気量GIN、第1O2センサ25の第1出力SVO1などに応じて算出される。
上記ステップ5の答がYES(F_RICH=1)のときには、リッチスパイク運転を実行し(ステップ6)、本処理を終了する。このリッチスパイク運転中、ストイキ燃焼運転の場合と同様、エンジン回転数NEおよび要求トルクTREQに応じ、スロットル弁開度THを介して、吸入空気量GINを制御する。また、実空燃比A/FACTが理論空燃比よりも若干リッチになるように、燃料噴射弁6の噴射動作を制御する。以上により、リッチスパイク運転中、理論空燃比よりも若干リッチな空燃比の混合気が燃焼室で燃焼する。
前述したように、ストイキ燃焼運転中には、混合気の空燃比が理論空燃比に制御されることから、NOx触媒9の上流側の三元触媒8によって排ガス中のNOxが還元(浄化)されるため、NOxがNOx触媒9に流入することはほとんどない。一方、リーンバーン運転中には、空燃比が理論空燃比よりもリーンに制御されることによって、排ガスの酸素濃度が高いことから、排ガス中のNOxは、三元触媒8でほとんど還元されずに、NOx触媒9に捕捉される。このため、上述したNOx触媒9のNOxの捕捉量に基づくリッチスパイク運転の実行条件は、リーンバーン運転中に成立し、それにより、運転モードは、リーンバーン運転からリッチスパイク運転に切り換えられる。
なお、リッチスパイクフラグF_RICHが「1」のとき、すなわち、リッチスパイク運転中には、前述したリーンバーンフラグF_LEANは、その実行条件(a)〜(d)の成立にかかわらず、「0」に保持される。これにより、前記ステップ3の答がNOになることによって、ステップ4のリーンバーン運転は実行されない。また、リッチスパイクフラグF_RICHは、リッチスパイク運転の実行によってNOx触媒9のNOxが十分に放出されるとともに還元されたと判定されたときに、「0」にリセットされる。この判定は、吸入空気量GINに応じて算出された排ガス流量の積算値などに応じて行われる。
一方、ステップ5の答がNO(F_RICH=0)のときには、前記ステップ2を実行し、本処理を終了する。
次に、図3を参照しながら、異常判定処理について説明する。本処理は、上述したエンジン制御処理と同様にTDC信号の発生に同期して実行され、エンジン制御処理と並行して実行される。まず、ステップ11では、算出されたNOx触媒温度TLNCが上限温度TLMTHよりも低いか否かを判別する。
この上限温度TLMTHは、車両の出荷時やNOx触媒9が新品に交換されたときに、所定の初期値に設定される。この初期値は、NOx触媒9が劣化していない新品である場合に、NOx触媒9の異常仮判定において異常であると誤判定されないような温度のうちの最高の温度に設定されており、例えば690℃である。なお、上限温度TLMTHは、異常仮判定などの禁止および許可を規定するものであることから、この禁止および許可のハンチングを防止するために、所定のヒステリシス付きの値に設定されている。
上記ステップ11の答がNOで、NOx触媒温度TLNC≧上限温度TLMTHのときには、NOx触媒9の異常を適切に判定できないおそれがあることから、異常仮判定を禁止するために、禁止フラグF_FORBIDを「1」に設定し(ステップ12)、NOx触媒9の異常を判定することなく、そのまま本処理を終了する。
一方、ステップ11の答がYESで、NOx触媒温度TLNC<上限温度TLMTHのときには、異常仮判定を許可するために、禁止フラグF_FORBIDを「0」に設定する(ステップ13)。次いで、前述したリッチスパイクフラグF_RICHが「1」であるか否かを判別する(ステップ14)。
この答がNO(F_RICH=0)で、リッチスパイク運転中でないときには、NOx触媒9の異常を判定することなく、そのまま本処理を終了する。これは、異常仮判定では、リッチスパイク運転の開始直後における第2OSセンサ26の第2出力SVO2に基づいて、NOx触媒9の異常を判定することから、リッチスパイク運転中でないときには、異常を判定できないためである。
一方、上記ステップ14の答がYES(F_RICH=1)のときには、リッチスパイクフラグの前回値F_RICHZが「0」であるか否かを判別する(ステップ15)。この答がYESのとき、すなわち、今回がリッチスパイク運転の開始直後のループであるときには、後述する更新済みフラグF_DONEを「0」にリセットし(ステップ16)、ステップ17に進む。一方、ステップ15の答がNOのときには、ステップ16をスキップし、ステップ17に進む。
このステップ17では、更新済みフラグF_DONEが「1」であるか否かを判別する。この答がNOのときには、異常仮判定を実行する(ステップ18)。この異常仮判定について、以下、図4を参照しながら説明する。
運転モードがリーンバーン運転からリッチスパイク運転に切り換えられると(図4の時点t1)、それまで排気空燃比がリーンであったことでLoレベルの状態にあった第1O2センサ25の第1出力FVO2(実線)は、リッチスパイク運転により排気空燃比がリッチ側に変化したことで急激にHiレベルに変化する。この場合、リーンバーン運転からリッチスパイク運転への切り換え直後において、排ガス中のHCやCOなどの還元剤が、三元触媒8に貯蔵されていた酸素で酸化されることから、三元触媒8のすぐ下流側の排ガスの排気空燃比がすぐにはリッチ側に変化しないため、三元触媒8の下流側に設けられた第1O2センサ25の第1出力FVO2は、その分の時間遅れを伴って、Hiレベルに変化する。
また、リッチスパイク運転への運転モードの切換後、三元触媒8の酸素がすべて消費されると、第1出力FVO2は、Hiレベルの状態で推移する。また、排ガス中の還元剤がNOx触媒9に流入し、それにより、NOx触媒9に捕捉されたNOxは、放出されるとともに還元される。このため、NOx触媒9の下流側では、排気空燃比がリーンな状態で推移し、その結果、NOx触媒9の下流側に設けられた第2O2センサ26の第2出力SVO2(一点鎖線)は、第1出力FVO2とは異なり、Loレベルの状態で推移する。
そして、NOx触媒9のNOxがすべて放出され還元されると(図4の時点t2)、排ガス中の還元剤が、NOxの還元に用いられずに、そのままNOx触媒9を通過する結果、NOx触媒9の下流側の排気空燃比は、リッチ側に変化し、それにより、第2出力SVO2は、Hiレベルに変化する。
NOx触媒9が異常であるときには、NOxがほとんど捕捉されないため、リッチスパイク運転の開始後、NOx触媒9の下流側の排気空燃比は、NOx触媒9が異常でない正常な場合よりも早いタイミングで、リッチ側に変化する。これにより、図4に破線で示すように、NOx触媒9が異常の場合の第2出力SVO2’は、一点鎖線で示す正常な場合の第2出力SVO2よりも早いタイミングでHiレベルに変化する。以上から明らかなように、この場合における第2出力SVO2は、NOx触媒9のNOxの捕捉能力を表す。
以上から、異常仮判定は次のようにして行われる。すなわち、リッチスパイク運転の開始後、第1出力FVO2が所定値VREF(図4参照)を超えてからの排ガス流量の積算値QEGSUM、すなわちNOx触媒9に流入する排ガスの排気空燃比がリッチ側に変化してからの排ガス流量の積算値QEGSUMを、吸入空気量GINに応じて算出する。そして、排ガス流量の積算値QEGSUMが所定値QREFに達したときに得られた第2出力SVO2が、所定の判定値VJUD(図4参照)よりも大きいときには、NOx触媒9のNOxの捕捉能力が非常に低いとして、NOx触媒9が異常であると仮判定し、そのことを表すために、仮異常フラグF_NGTEMを「1」に設定する。
一方、排ガス流量の積算値QEGSUMが所定値QREFに達したときに得られた第2出力SVO2が判定値VJUD以下のときには、NOx触媒9が異常でない(正常)と仮判定するとともに、そのことを表すために、仮異常フラグF_NGTEMを「0」に設定する。
上記の所定値QREFは、NOx触媒9の異常を判定するのに必要な還元剤がNOx触媒9に過不足なく供給されているか否かを判定するためのものであり、実験などによって設定されている。また、判定値VJUDは、HiレベルとLoレベルのほぼ中間の値に設定されている。なお、本実施形態において、排ガス流量の積算値QEGSUMが所定値QREFに達したときの第2出力SVO2が、本発明におけるNOx触媒9の捕捉能力に相当する。
また、リッチスパイク運転中、ステップ18の異常仮判定による判定結果が得られた後には、その後、リッチスパイク運転が終了し、再度実行されるまで、異常仮判定は実行されない。すなわち、1回のリッチスパイク運転中に、異常仮判定が1回のみ行われる。さらに、上述した異常仮判定の判定手法から明らかなように、所定値QREFは、異常仮判定の終了タイミングを規定しており、リッチスパイク運転中に異常仮判定が終了するような値に設定されている。
図3の前記ステップ18に続くステップ19では、今回の異常仮判定が終了しているか否かを判別する。この答がNOのときには、そのまま本処理を終了する一方、YESで、今回の異常仮判定が終了しており、その判定結果が得られているときには、この判定結果を表す仮異常フラグF_NGTEMが「1」であるか否かを判別する(ステップ20)。
このステップ20の答がNOのときには、そのまま本処理を終了する一方、YES(F_NGTEM=1)で、NOx触媒9が異常と仮判定されているときには、上限温度TLMTHが所定の判定温度TJUDよりも高いか否かを判別する(ステップ21)。この判定温度TJUDは、前述した上限温度TLMTHの初期値よりも低い所定の温度に設定されている。より具体的には、判定温度TJUDは、NOx触媒9が正常であるときに、ステップ18による異常仮判定において、NOx触媒9が正常であるときに前述した第2出力SVO2が判定値VJUDを上回ることによって異常であると誤判定されないような温度のうちの最高の温度に設定されており、例えば570℃である。
上記ステップ21の答がYES(TLMTH>TJUD)のときには、そのときに得られている上限温度TLMTHから所定温度TREFを減算した値に、上限温度TLMTHを低下側に更新する(ステップ22)。更新された上限温度TLMTHは、ECU2の前述したEEPROMに記憶される。以上により、上限温度TLMTHの更新後に、エンジン3が停止され、再始動されたときに、NOx触媒9が新品に交換されない限り、更新された上限温度TLMTHが本処理に用いられる。なお、本実施形態では、上限温度TLMTHを記憶するための記憶装置は、EEPROMであるが、不揮発性の他の記憶装置、例えばフラッシュメモリでもよい。
上記ステップ22に続くステップ23では、今回の異常仮判定の判定結果に基づいて上限温度TLMTHが更新されたことを表すために、更新済みフラグF_DONEを「1」に設定する。これにより、前記ステップ17の答がYES(F_DONE=1)になり、その場合には、そのまま本処理を終了する。
前述したように、更新済みフラグF_DONEが、リッチスパイク運転の開始時に「0」にリセットされる(ステップ16)とともに、1回のリッチスパイク運転中に、異常仮判定が1回のみ行われる。また、この異常仮判定によりNOx触媒9が異常であると仮判定されたとき(ステップ20:YES)に、ステップ22による上限温度TLMTHの更新が行われ、その後、再度、リッチスパイクが開始されるとともにNOx触媒9が異常であると仮判定されない限り、更新済みフラグF_DONEが「1」に保持される結果、ステップ17により本処理が終了されるため、上限温度TLMTHの更新は行われない。
以上から明らかなように、上限温度TLMTHの更新は、NOx触媒9が異常と判定されるごとに行われる。また、上限温度TLMTHを低下側に更新するために減算項として用いられる所定温度TREFは、上限温度TLMTHが徐々に低下するような温度、例えば30℃に設定されている。
上記ステップ23に続くステップ24では、ステップ22により更新された上限温度TLMTHが、前述した判定温度TJUDよりも低いか否かを判別する。この答がNOのときにはそのまま本処理を終了する一方、YES(TLMTH<TJUD)のときには、上限温度TLMTHを判定温度TJUDに更新し(ステップ25)、本処理を終了する。
一方、前記ステップ21の答がNOで、上限温度TLMTHが判定温度TJUD以下になったときには、NOx触媒9が異常であると確定し、そのことを表すために、異常確定フラグF_NGを「1」に設定し(ステップ26)、本処理を終了する。
NOx触媒9の異常を以上のようにして判定(確定)するのは、次の理由による。すなわち、前記ステップ11によってNOx触媒温度TLNCが上限温度TLMTHよりも低いときにステップ21が実行されるので、このステップ21の答がNOのとき(TLMTH≦TJUD)には、NOx触媒温度TLNCは、判定温度TJUDよりも低い関係にある。このことは、前述した判定温度TJUDの設定手法から明らかなように、NOx触媒9が異常と誤判定するおそれがない温度状態にあることを表している(図5の所定温度TLNCREFよりも低い状態)。そのような状況で、前述したNOx触媒9のNOxの捕捉能力に基づく異常仮判定によってNOx触媒9が異常であると仮判定されている(ステップ20:YES)ためである。
なお、異常確定フラグF_NGが「1」に設定されると、NOx触媒9の異常を運転者に知らせるための警告灯(図示せず)が点灯される。その後、異常確定フラグF_NGは、NOx触媒9が新品に交換されない限り「1」に保持され、交換されたときに「0」にリセットされる。また、異常確定フラグF_NGが「1」のときには、常に、リーンバーン運転が禁止されるとともに、ストイキ燃焼運転が実行される。
以上のように、本実施形態によれば、NOx触媒9のNOxの捕捉能力に基づいて、NOx触媒9の異常仮判定が実行される(図3のステップ18)とともに、この異常仮判定が、NOx触媒温度TLNCが所定値を初期値とする上限温度TLMTH以上のときには禁止される一方、それ以外のときには許可される(ステップ11〜13)。また、NOx触媒9が異常であると仮判定されたとき(ステップ20:YES)には、上限温度TLMTHが低下側に更新される(ステップ22)。
そして、低下側に更新された上限温度TLMTHが、その初期値よりも低い所定の判定温度TJUD(例えば570℃)以下(ステップ21:NO)であり、NOx触媒温度TLNCが判定温度TJUDよりも低いときに、NOx触媒9が異常であると仮判定されたことをもって、NOx触媒9が異常であると確定される(ステップ26)。また、この判定温度TJUDが、NOx触媒9が異常と誤判定するおそれがない最高の温度に設定されている。以上により、NOx触媒9の異常を精度良く判定することができる。
また、異常仮判定が禁止されているとき、すなわちNOx触媒温度TLNCが上限温度TLMTH以上のときには、リーンバーン運転が禁止される一方、それ以外のときには許可される(図2のステップ1)。異常仮判定およびリーンバーン運転の禁止を規定する上限温度TLMTHを、所定の固定値に設定するのではなく、NOx触媒9が異常であると仮判定されたときに低下側に更新することから、上限温度TLMTHの初期値は、NOx触媒9が新品である場合に異常仮判定において異常であると誤判定されないような最高の温度に、すなわち比較的高い温度(例えば690℃)に設定されている。したがって、上限温度TLMTHで規定されるリーンバーン運転の許可領域を拡大することができる。その結果、前述した従来の場合と異なり、NOx触媒9が異常ではないときのリーンバーン運転の不要な禁止を抑制できるので、その実行機会を適切に確保でき、それにより、エンジン3の良好な燃費を得ることができる。
さらに、NOx触媒9が異常であると仮判定されるごとに、リーンバーン運転の禁止を規定する上限温度TLMTHが、徐々に低下するように更新される。したがって、上限温度TLNTHを一度に大きく低下させる場合と異なり、上限温度TLMTHで規定されるリーンバーン運転の許可領域が急激に狭められるのを防止でき、それにより、上限温度TLMTHが判定温度TJUD以下になるまでの間、リーンバーン運転を行うことができ、リーンバーン運転の実行機会をより適切に確保することができる。
なお、本発明は、説明した実施形態に限定されることなく、種々の態様で実施することができる。例えば、本実施形態では、NOx触媒9の異常仮判定を、リッチスパイク運転中における第2出力SVO2を用いた前述した手法で行っているが、NOx触媒9のNOxの捕捉能力に基づくのであれば、他の手法で行ってもよい。例えば、排気通路7のNOx触媒9の上流側と下流側に排ガス中のNOxの濃度を検出するNOxセンサを設けるとともに、リーンバーン運転中における、これらの上流側および下流側のNOxセンサの検出結果に基づいて、NOx触媒9のNOxの捕捉量を算出するとともに、算出されたNOxの捕捉量に基づいて、異常仮判定を行ってもよい。
また、実施形態では、NOx触媒温度TLNCを、排ガス温度センサ27で検出された排ガスの温度に基づいて算出(推定)しているが、NOx触媒9に取り付けた温度センサで直接、検出してもよいことはもちろんである。さらに、実施形態では、上限温度TLMTHの初期値を、NOx触媒9が新品の場合に異常と誤判定されないような温度のうちの最高の温度に設定しているが、NOx触媒9が新品の場合に異常と誤判定されないような温度であれば、必ずしも最高の温度でなくてもよい。また、実施形態では、判定温度TJUDを、NOx触媒9が正常の場合に異常と誤判定されないような温度のうちの最高の温度に設定しているが、上限温度TLMTHの初期値よりも低く、かつ、NOx触媒9が正常の場合に異常と誤判定されないような温度であれば、必ずしも最高の温度でなくてもよい。
さらに、実施形態は、車両用のガソリンエンジンであるエンジン3に本発明を適用した例であるが、本発明は、これに限らず、ガソリン以外の燃料を用いる各種のエンジン、例えば、ディーゼルエンジンやLPGエンジンにも適用可能であり、また、車両用以外の各種のエンジン、例えば、クランク軸が鉛直方向に配置された船外機などの船舶推進機用のエンジンや、他の産業用のエンジンにも適用可能である。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。