以下本発明の実施の形態を図面を参照して説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態にかかる排気浄化装置を含む、内燃機関(以下「エンジン」という)及びその制御装置の全体構成図であり、例えば4気筒のエンジン1の吸気管2の途中にはスロットル弁3が配されている。スロットル弁3にはスロットル弁開度(THA)センサ4が連結されており、当該スロットル弁3の開度に応じた電気信号を出力してエンジン制御用電子コントロールユニット(以下「ECU」という)5に供給する。
燃料噴射弁6はエンジン1とスロットル弁3との間かつ吸気管2の図示しない吸気弁の少し上流側に各気筒毎に設けられており、各噴射弁は図示しない燃料ポンプに接続されていると共にECU5に電気的に接続されて当該ECU5からの信号により燃料噴射弁6の開弁時間が制御される。
一方、スロットル弁3の直ぐ下流には吸気管内絶対圧(PBA)センサ8が設けられており、この絶対圧センサ8により電気信号に変換された絶対圧信号は前記ECU5に供給される。また、その下流には吸気温(TA)センサ9が取付けられており、吸気温TAを検出して対応する電気信号を出力してECU5に供給する。
エンジン1の本体に装着されたエンジン水温(TW)センサ10はサーミスタ等から成り、エンジン水温(冷却水温)TWを検出して対応する温度信号を出力してECU5に供給する。
エンジン1の図示しないカム軸周囲又はクランク軸周囲には、エンジン回転数(NE)センサ11及び気筒判別(CYL)センサ12が取り付けられている。エンジン回転数センサ11は、エンジン1の各気筒の吸入行程開始時の上死点(TDC)より所定クランク角度前のクランク角度位置で(4気筒エンジンではクランク角180゜毎に)TDC信号パルスを出力し、気筒判別センサ12は、特定の気筒の所定クランク角度位置で気筒判別信号パルスを出力するものであり、これらの各信号パルスはECU5に供給される。
排気管13には三元触媒14と、NOx浄化手段としてのNOx浄化装置15とが上流側からこの順序で設けられている。
三元触媒は、酸素蓄積能力を有し、エンジン1に供給される混合気の空燃比が理論空燃比よりリーン側に設定され、排気中の酸素濃度が比較的高い排気リーン状態では、排気中の酸素を蓄積し、逆にエンジン1に供給される混合気の空燃比が理論空燃比よりリッチ側に設定され、排気中の酸素濃度が低く、HC、CO成分が多い排気リッチ状態では、蓄積した酸素により排気中のHC,COを酸化する機能を有する。
NOx浄化装置15は、NOxを吸収するNOx吸収剤及び酸化、還元を促進するための触媒を内蔵する。NOx吸収剤としては、エンジン1に供給される混合気の空燃比が理論空燃比よりリーン側に設定された場合の排気リーン状態においては、NOxを吸収し、エンジン1に供給される混合気の空燃比が理論空燃比近傍または理論空燃比よりリッチ側に設定された場合の排気リッチ状態においては、吸収されたNOxがHC、COにより還元されて、窒素ガスとして排出され、またHC、COは酸化されて水蒸気及び二酸化炭素として排出されるように構成されている。
NOx吸収剤のNOx吸収能力の限界、すなわち最大NOx吸収量まで、NOxを吸収すると、それ以上NOxを吸収できなくなるので、適時NOxを放出させて還元するために空燃比のリッチ化、すなわち還元リッチ化を実行する。
三元触媒14の上流位置には、比例型酸素濃度センサ17(以下「LAFセンサ17」という)が装着されており、このLAFセンサ17は排気中の酸素濃度(空燃比)にほぼ比例した電気信号を出力し、ECU5に供給する。
三元触媒14とNOx浄化装置15との間及びNOx浄化装置15の下流位置には、それぞれ二値型酸素濃度センサ(以下「O2センサ」という)18,19が装着されており、これらのセンサの検出信号はECU5に供給される。このO2センサ18,19は、その出力が理論空燃比の前後において急激に変化する特性を有し、その出力は理論空燃比よりリッチ側で高レベルとなり、リーン側で低レベルとなる。以下の説明では、O2センサ18を上流側O2センサといい、O2センサ19を下流側O2センサという。
エンジン1は、吸気弁及び排気弁のバルブタイミングを、エンジンの高速回転領域に適した高速バルブタイミングと、低速回転領域に適した低速バルブタイミングとの2段階に切換可能なバルブタイミング切換機構30を有する。このバルブタイミングの切換は、弁リフト量の切換も含み、さらに低速バルブタイミング選択時は2つに吸気弁のうちの一方を休止させて、空燃比を理論空燃比よりリーン化する場合においても安定した燃焼を確保するようにしている。
バルブタイミング切換機構30は、バルブタイミングの切換を油圧を介して行うものであり、この油圧切換を行う電磁弁及び油圧センサがECU5に接続されている。油圧センサの検出信号はECU5に供給され、ECU5は電磁弁を制御してエンジン1の運転状態に応じたバルブタイミングの切換制御を行う。
ECU5には、大気圧PAを検出する大気圧センサ20が接続されており、その検出信号がECU5に供給される。
ECU5は、各種センサからの入力信号波形を整形し、電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する等の機能を有する入力回路5a、中央演算処理ユニット(以下「CPU」という)5b、CPU5bで実行される各種演算プログラム及び演算結果等を記憶する記憶回路5c、前記燃料噴射弁6に駆動信号を供給する出力回路5d等から構成される。
CPU5bは、上述の各種エンジンパラメータ信号に基づいて、種々のエンジン運転状態を判別するとともに、該判別されたエンジン運転状態に応じて、次式(1)に基づき、前記TDC信号パルスに同期して開弁作動する燃料噴射弁6の燃料噴射時間TOUTを演算する。
TOUT=TIM×KCMD×KLAF×KPA×K1+K2 (1)
ここに、TIMは基本燃料量、具体的には燃料噴射弁6の基本燃料噴射時間であり、エンジン回転数NE及び吸気管内絶対圧PBAに応じて設定されたTIマップを検索して決定される。TIマップは、エンジン回転数NE及び吸気管内絶対圧PBAに対応する運転状態において、エンジンに供給する混合気の空燃比がほぼ理論空燃比になるように設定されている。すなわち、基本燃料量TIMは、エンジンの単位時間当たりの吸入空気量(質量流量)にほぼ比例する値を有する。
KCMDは目標空燃比係数であり、エンジン回転数NE、スロットル弁開度THA、エンジン水温TW等のエンジン運転パラメータに応じて設定される。目標空燃比係数KCMDは、空燃比A/Fの逆数、すなわち燃空比F/Aに比例し、理論空燃比のとき値1.0をとるので、目標当量比ともいう。また目標空燃比係数KCMDは、後述するように還元リッチ化あるいはNOx浄化装置15の劣化判定を実行するときは、空燃比をリッチ化するリッチ化所定値KCMDRRまたはKCMDRMに設定される。
KLAFは、フィードバック制御の実行条件が成立するときは、LAFセンサ17の検出値から算出される検出当量比KACTが目標当量比KCMDに一致するようにPID制御により算出される空燃比補正係数である。
KPAは、大気圧PAに応じて設定される大気圧補正係数であり、大気圧PAが、101.3kPa近傍にあるときは、1.0(無補正値)に設定され、大気圧PAが低下すると、1.0より大きな値に設定され、燃料供給量が増加方向に補正される。大気圧補正係数KPAは、後述するように大気圧PAが低下するほど増加するように設定され、燃料供給量は、大気圧PAが低下するほど増加するように補正される。
K1及びK2は夫々各種エンジンパラメータ信号に応じて演算される他の補正係数および補正変数であり、エンジン運転状態に応じた燃費特性、エンジン加速特性等の諸特性の最適化が図れるような所定値に決定される。
CPU5bは上述のようにして求めた燃料噴射時間TOUTに基づいて燃料噴射弁6を開弁させる駆動信号を出力回路5dを介して燃料噴射弁6に供給する。
図2は、前記式(1)に適用される目標空燃比係数KCMDを算出する処理のフローチャートである。本処理は一定時間毎にCPU5bで実行される。
ステップS10では、後述する図14の処理(SOx除去処理)で設定されるSOx除去リッチ化フラグFSRRが「1」であるか否かを判別する。SOx除去リッチ化フラグFSRRは、「1」に設定されると、NOx浄化装置15に蓄積したSOxを除去するための空燃比リッチ化を実行することを示す。FSRR=0であるときは、ステップS11に進み、FSRR=1であるときは、目標空燃比係数KCMDをSOx除去リッチ化用の所定値KCMDSF(例えば1.03)に設定する(ステップS29)。
ステップS11では、リーン運転中か否か、すなわち通常制御時に後述するステップS20で記憶された目標空燃比係数KCMDの記憶値KCMDBが「1.0」より小さいか否かを判別する。その結果、KCMDB≧1.0であってリーン運転中でないときは、直ちにステップS16に進み、還元リッチ化実行中であることを「1」で示す還元リッチ化フラグFRSPOKを「0」に設定し、さらに後述するステップS23、S27で参照されるダウンカウントタイマtmRR及びtmRMに、それぞれ還元リッチ化時間TRR(例えば5〜10秒)及び還元リッチ化時間TRRより長い劣化判定リッチ化時間TRM(>TRR)をセットしてスタートさせる(ステップS16)。
次いで、後述する図9の処理により設定され、NOx浄化装置15の劣化判定終了後も空燃比のリッチ化を継続することを「1」で示すリッチ化継続フラグFRSPEXTが「0」であるか否かを判別し(ステップS18)、FRSPEXT=1であるときは、後述するステップS26に進んで、空燃比のリッチ化を継続する。
一方FRSPEXT=0であるときは、通常制御、すなわちエンジン運転状態に応じて目標空燃比係数KCMDの設定を行う(ステップS19)。目標空燃比係数KCMDは、基本的には、エンジン回転数NE及び吸気管内絶対圧PBAに応じて算出し、エンジン水温TWの低温状態や所定の高負荷運転状態では、それらの運転状態に応じた値に変更される。次いでステップS19で算出した目標空燃比係数KCMDを記憶値KCMDBとして記憶して(ステップS20)、本処理を終了する。リーン運転が許可されるエンジン運転状態では、目標空燃比係数KCMDは「1.0」より小さい値に設定される。
ステップS11でKCMDB<1.0であってリーン運転中であるときは、エンジン回転数NE及び吸気管内絶対圧PBAに応じて、次のステップS13で使用する増分値ADDNOxを決定する(ステップS12)。増分値ADDNOxは、リーン運転中に単位時間当たりに排出されるNOx量に対応するパラメータであり、エンジン回転数NEが増加するほど、また吸気管内絶対圧PBAが増加するほど、増加するように設定されている。
ステップS13では、下記式にステップS12で決定した増分値ADDNOxを適用し、NOx量カウンタCRSPをインクリメントする。これによりNOx排出量、すなわちNOx吸収剤に吸収されたNOx量に相当するカウント値が得られる。
CRSP=CRSP+ADDNOx
続くステップS14では、NOx浄化装置15の劣化判定の実施条件が成立すると「1」に設定される実施条件フラグFMCNDF105が「1」であるか否かを判別する。通常はFMCNDF105=0であるので、ステップS15に進み、NOx量カウンタCRSPの値が、許容値CNOxREFを越えたか否かを判別する。この答が否定(NO)であるときは、前記ステップS16に進み、リッチ化継続フラグFRSPEXTが「1」に設定されない限り、通常制御、すなわちエンジン運転状態に応じた目標空燃比係数KCMDの設定を行う。許容値CNOxREFは、例えばNOx吸収剤の最大NOx吸収量より若干小さいNOx量に対応する値に設定される。
ステップS15で、CRSP>CNOxREFとなると、還元リッチ化フラグFRSPOKを「1」に設定し(ステップS21)、次いで目標空燃比係数KCMDを空燃比14.0相当程度の値に対応するリッチ化所定値KCMDRRに設定して還元リッチ化を実行する(ステップS22)。そして、タイマtmRRの値が「0」か否かを判別し(ステップS23)、tmRR>0である間は直ちに本処理を終了し、tmRR=0となると還元リッチ化フラグFRSPOKを「0」に設定するとともにNOx量カウンタCRSPの値を「0」にリセットする(ステップS24)。これにより、次回からはステップS15の答が否定(NO)となるので、通常制御に移行する。
一方劣化判定実施条件が成立すると(FMCNDF105=1となると)、ステップS14からステップS26に進み、目標空燃比係数KCMDを空燃比14.0相当程度の値より若干リーン側の値(例えば空燃比14.3程度)に対応する劣化判定リッチ化所定値KCMDRM(<KCMDRR)に設定して劣化判定リッチ化を実行する(ステップS26)。通常の還元リッチ化実行時よりリッチ化の度合を小さくするのは、リッチ化の度合が大きいと、リッチ化実行時間が短くなり、NOx浄化装置15の劣化判定時に誤判定が発生し易いからであり、リッチ化の度合を小さくしてリッチ化実行時間(=TRM)を長くすることにより、劣化判定の精度を向上させることができる。さらに、リッチ化の度合を小さくすることにより、O2センサ18及び19の出力がSOxの影響を受け易くなり、SOx濃度が高い状態の判定精度を向上させることができる。
そして、タイマtmRMの値が「0」か否かを判別し(ステップS27)、tmRM>0である間は直ちに本処理を終了し、tmRM=0となるとNOx量カウンタCRSPの値を「0」にリセットする(ステップS28)。
図2の処理によれば、リーン運転可能なエンジン運転状態においては、通常は間欠的に還元リッチ化が実行され(ステップS22,S23)、NOx浄化装置15のNOx吸収剤に吸収されたNOxが適宜還元される。また、NOx浄化装置15の劣化判定実施条件が成立したときは、還元リッチ化よりリッチ化の度合を小さくして、かつ還元リッチ化より長い時間TRMに亘って劣化判定リッチ化が実行される(ステップS26,S27)。また、SOx除去(図14参照)を実行するときは、SOx除去リッチ化が実行される(ステップS10,S29)。また後述する図9の処理(ステップS123)により、リッチ化継続フラグFRSPEXTが「1」に設定されたときは、NOx浄化装置15の劣化判定が終了した後も目標空燃比係数KCMDがリッチ化所定値KCMDRMに維持され、空燃比リッチ化が継続される。
図3は、NOx浄化装置15の劣化判定処理のメインルーチンのフローチャートである。この処理は、TDC信号パルスの発生に同期してCPU5bで実行される。
ステップS32では、図4及び図5に示す実施条件判断処理を実行する。実施条件判断処理では、NOx浄化装置15の劣化判定の実施条件が成立するか否かが判断され、実施条件が成立するときは、実施条件フラグFMCNDF105が「1」に設定される。続くステップS33では、実施条件フラグFMCNDF105が「1」であるか否かを判別し、FMCNDF105=0であって実施条件が成立していないときは、SOx濃度判定終了フラグFSLFEND、第1基準オーバフラグFSVO2EXPL及び第2基準オーバフラグFSVO2EXPHをすべて「0」に設定して(ステップS34,S35,S36)、本処理を終了する。
SOx濃度判定終了フラグFSLFENDは、図6に示すSOx濃度判定処理が終了したとき「1」に設定される。第1基準オーバフラグFSVO2EXPLは、上流側O2センサ出力SVO2が第1の上流側基準値SVO2LNCS(例えば0.3V)に達したとき「1」に設定され(図6,ステップS82)、第2基準オーバフラグFSVO2EXPHは、上流側O2センサ出力SVO2が第1の上流側基準値SVO2LNCSより高い第2の上流側基準値SVO2SLF(例えば0.7V)を越えたとき「1」に設定される(図6,ステップS88)。
ステップS33で実施条件フラグFMCNDF105が「1」であって、実施条件が成立しているときは、図6に示すSOx濃度判定処理を実行し(ステップS37)、次いで図8及び図9に示す劣化判定サブルーチンを実行する(ステップS38)。
図4及び図5は、図3のステップS32で実行される実施条件判断処理のフローチャートである。
ステップS41では、劣化判定指令フラグFGOF105が「1」であるか否かを判別する。NOx浄化装置15の劣化判定は、1運転期間(エンジン始動から停止までの期間)に1回程度の割合で実行すればよいので、エンジン始動後、エンジン運転状態が安定した時点で劣化判定指令フラグFGOF105が「1」に設定される。劣化判定指令フラグFGOF105が「1」に設定されたときは、劣化判定終了フラグFENDF105が「1」であるか否かを判別する(ステップS42)
ステップS41の答が否定(NO)またはステップS42の答が肯定(YES)であるときは、劣化判定終了フラグFENDF105を「0」に設定し(ステップS43)、ステップS49に進む。
ステップS42の答が否定(NO)であるときは、上流側O2センサ活性フラグFNSO2が「1」であるか否かを判別する(ステップS44)。フラグFNSO2が「1」に設定されると、上流側O2センサ18が活性化していることを示す。ステップS44の答が肯定(YES)であるときは、下流側O2センサ活性フラグFNLO2が「1」であるか否かを判別する(ステップS45)。フラグFNLO2が「1」に設定されると、下流側O2センサ19が活性化していることを示す。
ステップS45の答が肯定(YES)であるときは、リーン運転フラグFLBが「1」であるか否かを判別する(ステップS46)。リーン運転フラグFLBは「1」に設定されると、空燃比を理論空燃比よりリーン側に設定するリーン運転が許可されている(リーン運転が可能なエンジン運転状態にある)ことを示す。ステップS46の答が肯定(YES)であるときは、還元リッチ化フラグFRSPOKが「1」であるか否かを判別する(ステップS47)。
そして、ステップS44〜S46の何れかの答が否定(NO)であるとき、またはステップS47の答が肯定(YES)であるときは、前条件フラグFLNCMWTを「0」に設定する(ステップS49)。ステップS49実行後は、ステップS53に進む。
一方ステップS44〜S46の答が全て肯定(YES)かつステップS47の答が否定(NO)であるとき、すなわち、O2センサ18,19の活性化が完了しており、かつリーン運転が許可されており、かつ空燃比の還元リッチが実行されていないときは、前条件フラグFLNCMWTが「1」に設定される(ステップS48)。
続くステップS50では、NOx量カウンタCRSPの値が劣化判定許可値CLNCMACTより大きいか否かを判別する。劣化判定許可値CLNCMACTは、図2の処理における許容値CNOxREF以下の値に設定される。ステップS50で、CRSP≦CLNCMACTであるときは、ステップS53に進んで、故障判定条件フラグFMCDF103Bを「0」に設定する。故障判定条件フラグFMCDF103Bは、「1」に設定されると、下流側O2センサ19の故障判定処理(図示せず)の実行条件が成立していることを示す。
ステップS50で、CRSP>CLNCMACTであって、NOx浄化装置15にNOx浄化装置の劣化判定を行うのに十分な量のNOxが吸収されたときは、O2センサ故障判定終了フラグFDONEF103が「1」であるか否かを判別する(ステップS51)。FDONEF103=1であってO2センサ19の故障判定が終了しているときは、直ちにステップS54に進み、FDONEF103=0であるときは、故障判定条件フラグFMCDF103Bを「1」に設定して(ステップS52)、ステップS54に進む。
ステップS54では、実施条件フラグFMCNDF105が既に「1」に設定されているか否かを判別し、FMCNDF105=1であるときは直ちにステップS57に進む。FMCNDF105=0であるときは、上流側O2センサ出力SVO2が前記第1の上流側基準値SVO2LNCSより小さい第3の上流側基準値SVO2LNCM(例えば0.1V)以下か否かを判別する(ステップS55)。そしてSVO2≦SVO2LNCMであるときは、さらに下流側O2センサ出力LVO2が、第3の上流側基準値SVO2LNCMと同程度の値に設定される第1の下流側基準値LVO2LNCM以下か否かを判別する(ステップS56)。ステップS55及びS56により、劣化判定リッチ化を実行する前のそれぞれのO2センサ出力SVO2,LVO2が、排気リーン状態(酸素濃度の比較的高い状態)を示す値であることを確認している。
その結果、ステップS55またはS56の答が否定(NO)であるときは、パージカットフラグFLNCPGを「0」に設定する(ステップS58)とともに、ダウンカウントタイマTLNCPGを所定時間TMLNCPG(例えば2秒)に設定してスタートさせる(ステップS59)。次いでリッチゾーンフラグFSLFZONEを「0」に設定し(ステップS61)、極大値パラメータSVMAXLNCを「0」に設定し(ステップS62)、実施条件フラグFMCNDF105を「0」に設定して(ステップS63)、本処理を終了する。
パージカットフラグFLNCPGは、「1」に設定されると、燃料タンクで発生した蒸発燃料を吸気管2に供給する蒸発燃料パージを禁止することを示す。リッチゾーンフラグFSLFZONEは、上流側O2センサ出力SVO2が第2の上流側基準値SVO2SLF以上となったとき「1」に設定される(ステップS64,S65参照)。極大値パラメータSVMAXLNCは、上流側O2センサ出力SVO2が第2の上流側基準値SVO2SLFに達する前における極大値を示すパラメータである(ステップS66〜S68参照)。
、ステップS55及びS56の答がともに肯定(YES)であって、上流側O2センサ出力SVO2及び下流側O2センサ出力LVO2がともに排気リーン状態を示しているときは、パージカットフラグFLNCPGを「1」に設定する(ステップS57)。次いで、ステップS59でスタートされるタイマTLNCPGの値が「0」か否かを判別し(ステップS60)、TLNCPG>0である間は前記ステップS61に進む。
タイマTLNCPGの値が「0」となると、ステップS60からステップS64に進み、上流側O2センサ出力SVO2が第2の上流側基準値SVO2SLFより小さいか否かを判別する。最初はステップS64の答は肯定(YES)であるので、ステップS65をスキップしてステップS66に進み、リッチゾーンフラグFSLFZONEが「1」であるか否かを判別する。最初はステップS66の答は否定(NO)であるので、ステップS67に進み、上流側O2センサ出力SVO2が極大値パラメータSVMAXLNCより大きいか否かを判別する。極大値パラメータSVMAXLNCはステップS62で「0」に初期化されるので、最初はステップS67の答が肯定(YES)であり、極大値パラメータSVMAXLNCをそのときのO2センサ出力SVO2に設定し(ステップS68)、ステップS71に進む。ステップS71では、実施条件フラグFMCNDF105が「1」に設定される。
O2センサ出力SVO2が単調に増加するときは、常にステップS67の答が肯定(YES)となるが、図7(a)に示すように、一時的に減少することがあると、ステップS67の答が否定(NO)となり、ステップS69に進む。ステップS69では、下記式により極大値パラメータSVMAXLNCと、O2センサ出力SVO2の差DSVを算出する。
DSV=SVMAXLNC−SVO2
そして差DSVが所定差DSVLNCMCより大きいか否かを判別し(ステップS70)、差DSVが所定差DSVLNCMCを越えると、前記ステップS63に進み、実施条件フラグFMCNDF105を「0」に設定する。
差DSVが所定差DSVLNCMCを越えるような場合は、エンジンの加速などにより一時的に排気リーン状態となったと考えられるので、そのような場合に劣化判定を継続すると、誤判定を招くおそれがあるため、実施条件不成立として、劣化判定を中止する。
ステップS70の答が肯定(YES)となることなく、O2センサ出力SVO2が第2の上流側基準値SVO2SLFに達すると、リッチゾーンフラグFSLFZONEが「1」に設定され(ステップS65)、ステップS66から直ちにステップS71に進む。
図4及び図5の処理によれば、基本的には前条件フラグFLNCMWTが「1」に設定されると、NOx浄化装置15の劣化判定実施条件が成立する。ただし、蒸発燃料のパージ禁止時点から所定時間TMLNCPG内は、実施条件が不成立となる(ステップS57,S60)。また、上流側O2センサ出力SVO2が第2の上流側基準値SVO2SLFより低い状態で、一時的な減少量(DSV)が所定差DSVLNCMCより大きくなると(ステップS70の答が肯定(YES)のとき)、実施条件が不成立となる。
図6は、図3のステップS37におけるSOx濃度判定処理のフローチャートである。
ステップS81では、上流側O2センサ出力SVO2が、第1の上流側基準値SVO2LNCS以上か否かを判別する。最初は、SVO2<SVO2LNCSであるので、ステップS82をスキップしてステップS83に進み、ステップS82で「1」に設定される第1基準オーバフラグFSVO2EXPLが「1」であるか否かを判別する。最初は、この答は否定(NO)であるので、第1の排気量パラメータGSLFFINを「0」に設定して(ステップS84)、ステップS87に進む。
ステップS87では、O2センサ出力SVO2が第2の上流側基準値SVO2SLFを越えたか否かを判別する。最初は、この答は否定(NO)であるので、ステップS88をスキップしてステップS89に進み、ステップS88で「1」に設定される第2基準オーバフラグFSVO2EXPHが「1」であるか否かを判別する。最初はステップS89の答は否定(NO)であるので、第2の排気量パラメータGSLFJUDを「0」に設定し(ステップS90)、次いで最小値パラメータSVO2MINを最大値VMAX(例えば最小値パラメータSVO2MINに1バイトを割り当てる場合には、16進数のFF)に設定し(ステップS91)、ステップS95に進む。
ステップS95では、第2の排気量パラメータGSLFJUDが、第2の判定閾値GASLF以上か否かを判別する。最初は、この答は否定(NO)であるので、第1の排気量パラメータGSLFFINが第1の判定閾値GSLFFINR以上か否かを判別する(ステップS96)。最初はこの答も否定(NO)であるので、直ちに本処理を終了する。
O2センサ出力SVO2が第1の上流側基準値SVO2LNCSに達すると、第1基準オーバフラグFSVO2EXPLが「1」に設定され(ステップS82)、ステップS83からステップS85に進む。ステップS85では、下記式(2)により第1の排気量パラメータGSLFFINを算出する。
GSLFFIN=GSLFFIN+TIM×KPA (2)
ここで、右辺のGSLFFINは前回算出値、TIM及びKPAはそれぞれ式(1)の基本燃料量及び大気圧補正係数である。TIMは基本燃料量、すなわちエンジン運転状態(エンジン回転数NE及び吸気管内絶対圧PBA)に応じて空燃比が理論空燃比となるように設定される燃料量であるので、エンジン1の単位時間当たりの吸入空気量、したがって排気量に比例するパラメータである。式(2)により、上流側O2センサ出力SVO2が第1の上流側基準値SVO2LNCSに達した時点から、NOx浄化装置15に流入する排気量の積算値に対応する第1の排気量パラメータGSLFFINが得られる。
劣化判定実行中は空燃比は理論空燃比よりリッチ側の一定リッチ空燃比(KCMDRMに対応する値)に維持されるので、この排気量パラメータGSLFFINは、排気中に含まれる還元成分(HC、CO)の積算量に比例する値を有する。また、排気量パラメータGSLFFINは、エンジン運転状態がほぼ一定であれば、積算開始時点からの経過時間に比例する。これらの点は、後述する他の排気量パラメータについても同様である。
O2センサ出力SVO2が第1の上流側基準値SVO2LNCSと、第2の上流側基準値SVO2SLFとの間にあるときは、ステップS87,S89,S90,S91,及びS95を経てステップS96に進む。そして、第1の排気量パラメータGSLFFINが第1の判定閾値GSLFFINRより小さいときは直ちに本処理を終了し、第1の判定閾値GSLFFINRに達すると、高濃度フラグFSLFを「1」に設定し(ステップS98)、ステップS99に進む。
すなわち、図7(b)に実線で示すように、O2センサ出力SVO2が、第1の排気量パラメータGSLFFINが第1の判定閾値GSLFFINRに達した時点で第2の上流側基準値SVO2SLFを越えていないときは、O2センサ18近傍においてSOx濃度が高いと判定する。
SOx濃度が高い場合は、O2センサ出力SVO2が第2の上流側基準値SVO2SLFに達するまでの時間が長くなる場合と、第2の上流側基準値SVO2SLFより低い値に停滞する場合とがあるが、ステップS85及びS96によりいずれの場合も判定することができる。
ステップS87でSVO2>SVO2SLFとなると、第2基準オーバフラグFSVO2EXPHを「1」に設定し(ステップS88)、ステップS89を経てステップS92に進む。ステップS92では、下記式(3)により、第2の排気量パラメータGSLFJUDを算出する。
GSLFJUD=GSLFJUD+TIM×KPA (3)
式(3)は式(2)のGSLFFINをGSLFJUDに代えたものであり、式(3)により、上流側O2センサ出力SVO2が第2の上流側基準値SVO2LNCSを越えた時点から、NOx浄化装置15に流入する排気量の積算値に対応する第2の排気量パラメータGSLFJUDが得られる。
続くステップS93では、最小値パラメータSVO2MINがO2センサ出力SVO2より大きいか否かを判別する。最初は、SVO2MIN>SVO2であるので、最小値パラメータSVO2MINをそのときのO2センサ出力SVO2に設定し(ステップS94)、ステップS95に進む。ステップS93及びS94により、第2基準オーバフラグFSVO2EXPHが「1」に設定された後における、O2センサ出力SVO2の最小値が最小値パラメータSVO2MINとして算出される。
そして第2の排気量パラメータGSLFJUDが第2の判定閾値GASLFに達するまでは、前記ステップS96に進む。
第2の排気量パラメータGSLFJUDが第2の判定閾値GASLFに達するとステップS95からステップS97に進み、最小値パラメータSVO2MINが第2の上流側基準値SVO2SLF以上か否かを判別する。SVO2MIN≧SVO2SLFであるときは、濃度判定終了フラグFSLFENDを「1」に設定して(ステップS99)、本処理を終了する。一方SVO2MIN<SVO2SLFであるとき、すなわち図7(c)に示すようにO2センサ出力SVO2が1度、第2の上流側基準値SVO2SLFを越えた後に、第2の上流側基準値SVO2SLFを下回ったときは、O2センサ出力SVO2の飽和出力の低下傾向が認められるので、高濃度フラグFSLFを「1」に設定する(ステップS98)。
図6の処理によれば、O2センサ出力SVO2が図7(b)に実線で示すように変化する場合、または図7(c)に示すように変化する場合に、SOx濃度が高いと判定される。O2センサ近傍におけるSOx濃度が高い場合には、O2センサの飽和出力が低下する傾向があることが実験的に確認されており、図6の処理では、この傾向を検出することにより、SOx濃度が高い状態を検出することができる。SOx濃度が高い状態とは、具体的には600PPM程度以上の状態であり、このような状態では、酸素濃度センサ出力がSOxの影響によって変化する。
また、三元触媒下流側においては、三元触媒が劣化するとSOx濃度が高くなる傾向があるので、本実施形態のように三元触媒の下流側にNOx浄化装置が配置されている場合には、三元触媒の劣化によって下流側のSOx濃度が高くなり、酸素濃度センサ出力が変化してNOx浄化装置の劣化判定の精度が低下する。したがって、後述するようにSOx濃度が高いときは、NOx浄化装置の劣化判定を中止することにより、誤判定を防止することができる。
なお、O2センサの飽和出力が低下する傾向は、空燃比リッチ化の度合が小さい方が顕著に表れるので、本実施形態では、劣化判定時においては目標空燃比係数KCMDを、理論空燃比より僅かにリッチ側の空燃比、例えば空燃比14.3程度に対応する劣化判定リッチ化所定値KCMDRMに設定するようにしている。
図8及び図9は、図3のステップS38における劣化判定サブルーチンのフローチャートである。
ステップS101では、リッチ化継続フラグFRSPEXTが「1」であるか否かを判別し、FRSPEXT=1であるときは、直ちにステップS121に進む。FRSPEXT=0であるときは、第1前判定フラグFPREJUD1が「1」であるか否かを判別する(ステップS102)。第1前判定フラグFPREJUD1はステップS108で「1」に設定されるので、最初はFPREJUD1=0である。したがってステップS102からステップS103に進み、図11に示すGALNCS算出処理を実行する。
図11のステップS141では、上流側O2センサ出力SVO2が第4の上流側基準値SVO2LNCH(例えば0.6V)以下か否かを判別し、SVO2≦SVO2LNCHであるときは、第3の排気量パラメータGALNCSを「0」に設定して(ステップS142)、本処理を終了する。
O2センサ出力SVO2が第4の上流側基準値SVO2LNCH(図13、実線L1参照)を越えると、吸気管内絶対圧PBAに応じて図12に示すKNACPBSテーブルを検索し、吸気圧補正係数KNACPBSを算出する(ステップS144)。KNACPBSテーブルは、吸気管内絶対圧PBAが高くなるほど、吸気圧補正係数KNACPBSが減少するように設定されている。
続くステップS145では、下記式(4)により、第3の排気量パラメータGALNCSを算出する。
GALNCS=GALNCS+TIM×KPA×KNACPBS (4)
式(4)は、式(3)と比較すると、右辺第2項に吸気圧補正係数KNACPBSが乗算されている点で異なる。TDC信号パルスの発生周期の間に排出される排気量が、吸気管内絶対圧PBAに増加に伴って減少することが実験的に確認されているので、その点を補正するために吸気圧補正係数KNACPBSが導入されている。
式(4)により、上流側O2センサ出力SVO2が第4の上流側基準値SVO2LNCHを越えた時点(図13,時刻t12)から、NOx浄化装置15に流入する排気量の積算値に対応する第3の排気量パラメータGALNCSが得られる。
図8に戻り、ステップS104では、ステップS103で算出される第3の排気量パラメータGALNCSが第3の判定閾値GALNCHOK以上か否かを判別し、GALNCS<GALNCHOKである間は直ちにステップS109に進む。GALNCS≧GALNCHOKとなると(図13,時刻t14)、下流側O2センサ出力LVO2が、第2の下流側基準値LVO2LNCH(例えば0.7V)以下か否かを判別する(ステップS105)。
その結果、図13に実線L3で示すように、LVO2≦LVO2LNCHであるときは、NOx浄化装置15が正常であると判定し、第1前判定OKフラグFOK105Pを「1」に設定するとともに、第1前判定NGフラグFNG105Pを「0」に設定し(ステップS106)、ステップS108に進む。一方、図13に破線L2で示すように、LVO2>LVO2LNCHであるときは、NOx浄化装置15が劣化していると判定し、第1前判定NGフラグFNG105Pを「1」に設定するとともに、第1前判定OKフラグFOK105Pを「0」に設定して(ステップS107)、ステップS108に進む。
ステップS108では、第1前判定が終了したことを示すべく、第1前判定フラグFPREJUD1を「1」に設定する。
続くステップS109では、図14に示すSOx除去処理が終了したとき「1」に設定されるSOx除去終了フラグFSRMOVENDが「1」であるか否かを判別する。FSRMOVEND=0であって、SOx除去処理が終了していないときは、直ちにステップS118に進み、実質的に第2の前判定を実行することなく第2前判定フラグFPREJUD2を「1」に設定して(ステップS118)、ステップS119に進む。
ステップS109でFSRMOVEND=1であってSOx除去処理が終了した後であるときは、第2前判定フラグFPREJUD2が「1」であるか否かを判別する(ステップS110)。FPREJUD2=1であるときは、第4の排気量パラメータGAIRLVO2を「0」に設定して(ステップS112)、ステップS119に進む。
ステップS110でFPREJUD2=0であるときは、下流側O2センサ出力LVO2が、第3の下流側基準値LVO2LNC(例えば0.3V)以上か否かを判別する(ステップS111)。この答が否定(NO)であるときは前記ステップS112に進み、肯定(YES)であるときは、下記式(5)により、第4の排気量パラメータGAIRLVO2を算出する(ステップS113)。
GAIRLVO2=GAIRLVO2+TIM×KPA (5)
次いで第4の排気量パラメータGAIRLVO2が、第4の判定閾値GALVO2以上か否かを判別し(ステップS114)、GAIRLVO2<GALVO2であるときは、直ちにステップS119に進む。GAIRLVO2≧GALVO2であるときは、下流側O2センサ出力LVO2が、第4の下流側基準値LVO2SLF(例えば0.7V)以上か否かを判別する(ステップS115)。
その結果、LVO2≧LVO2SLFであるときは、NOx浄化装置15が正常であると判定し、第2前判定OKフラグFOK105Sを「1」に設定するとともに、第2前判定NGフラグFNG105Sを「0」に設定し(ステップS116)、ステップS118に進む。一方、LVO2<LVO2SLFであるときは、NOx浄化装置15が劣化していると判定し、第2前判定NGフラグFNG105Sを「1」に設定するとともに、第2前判定OKフラグFOK105Sを「0」に設定して(ステップS117)、ステップS118に進む。
ステップS118では、第2前判定が終了したことを示すべく、第2前判定フラグFPREJUD2を「1」に設定する。
続くステップS119では、第1前判定フラグFPREJUD1が「1」であるか否かを判別し、FPREJUD1=1であるときは、第2前判定フラグFPREJUD2が「1」であるか否かを判別する(ステップS120)。そして第1前判定フラグFPREJUD1または第2前判定フラグFPREJUD2が「0」であるときは直ちに本処理を終了し、両フラグFPRJUD1及びFPREJUD2がともに「1」であるときは、ステップS121に進む。
ステップS121では、O2センサ故障フラグFFSDF103が「1」であるか否かを判別する。フラグFFSDF103は、下流側O2センサ19が故障していると判定されると「1」に設定される。ステップS121の答が肯定(YES)、すなわち下流側O2センサ19が故障していると判定されたときは、直ちにステップS135に進み、劣化判定終了フラグFENDF105を「1」に設定するとともに、実施条件フラグFMCNDF105、第1及び第2前判定フラグFPREJUD1,FPREJUD2を「0」に設定し、本処理を終了する。したがって、劣化判定処理は中止される。
ステップS121でFFSDF103=0であって、下流側O2センサ19が故障と判定されていないときは、O2センサOKフラグFOKF103が「1」であるか否かを判別する(ステップS122)。O2センサOKフラグFOKF103は、下流側O2センサが正常と判定されたとき「1」に設定される。FOKF103=0であって正常判定がなされていないときは、下流側O2センサ19の故障判定を実行するために空燃比リッチ化を継続させるべく、リッチ化継続フラグFRSPEXTを「1」に設定し(ステップS123)、本処理を終了する。
FOKF103=1であって下流側O2センサ19の正常判定がなされているときは、濃度判定終了フラグFSLFENDが「1」であるか否かを判別する(ステップS124)。そしてFSLFEND=0であるときは直ちに本処理を終了し、FSLFEND=1であってSOx濃度判定が終了しているときは、高
濃度フラグFSLFが「1」であるか否かを判別する(ステップS125)。
FSLF=0であってSOx濃度が低いときは、SOx除去終了フラグFSRMOVENDを「0」に設定し(ステップS126)、第1前判定NGフラグFNG105Pが「1」であるか否かを判別する(ステップS127)。この答が肯定(YES)であるときは、NOx浄化装置15が劣化していると判定し、劣化フラグFFSDF105を「1」に設定し、正常フラグFOKF105を「0」に設定し、終了フラグFDONEF105を「1」に設定して(ステップS134)、ステップS135に進む。また、ステップS127の答が否定(NO)であるときは、第1前判定OKフラグFOK105Pが「1」であるか否かを判別する(ステップS128)。この答が否定(NO)であるときは直ちに本処理を終了する一方、肯定(YES)であるときは、NOx浄化装置15が正常と判定し、正常フラグFOKF105を「1」に設定し、劣化フラグFFSDF105を「0」に設定し、終了フラグFDONEF105を「1」に設定して(ステップS133)、前記ステップS135に進む。
またステップS125でFSLF=1であってSOx濃度が高いと判定されたときは、SOx除去終了フラグFSRMOVENDが「1」であるか否かを判別し(ステップS129)、FSRMOVEND=0であってSOx除去処理が終了していないときは、直ちにステップS135に進み、劣化判定を終了する。
ステップS129でFSRMOVEND=1であってSOx除去処理が終了しているときは、SOx除去終了フラグFSRMOVENDを「0」に戻し(ステップS130)、第2前判定NGフラグFNG105Sが「1」であるか否かを判別する(ステップS131)。FNG105S=1であるときは、NOx浄化装置15が劣化していると判定し、前記ステップS134に進む。FNG105S=0であるときは、第2前判定OKフラグFOK105Sが「1」であるか否かを判別する(ステップS132)。この答が否定(NO)であるときは直ちに本処理を終了する一方、肯定(YES)であるときは、NOx浄化装置15が正常と判定し、前記ステップS133に進む。
図8及び図9の処理によれば、以下のように判定が行われる。
1)図6の処理でSOx濃度が高いと判定されなかったとき(FSLF=0であるとき)は、第2前判定は実行されず、第1前判定の結果が劣化判定結果となる。すなわち、第3の排気量パラメータGALNCS(上流側O2センサ出力SVO2が第4の上流側基準値SVO2LNCHを越えた時点からの積算排気量に相当する)が第3の判定閾値GALNCHOKに達した時点(図13,t14))において、下流側O2センサ出力LVO2が第2の下流側基準値LVO2LNCH以下であるときは、NOx浄化装置15は正常と判定され、判定時刻t14において下流側O2センサ出力LVO2が第2の下流側基準値LVO2LNCHを越えているときは、NOx浄化装置15は劣化していると判定される。
2)図6の処理でSOx濃度が高いと判定されたとき(FSLF=1であるとき)は、SOx除去処理が終了していなければ、実施条件フラグFMCNDF105が「0」に戻されて(ステップS129,S135)、劣化判定処理が中止される。SOx濃度が高く、その影響が大きいときにO2センサ出力に基づく劣化判定を行うと、誤判定の可能性が高くなるので、そのような場合に劣化判定を中断することにより、誤判定を防止することができる。
そしてSOx除去処理終了後に劣化判定実施条件が成立すると、第2前条件判定(ステップS110〜S117)が実行され、第2前判定の結果が劣化判定結果となる。すなわち、第4の排気量パラメータGAIRLVO2(下流側O2センサ出力LVO2が、第3の下流側基準値LVO2LNCを越えた時点からの積算排気量に相当する)が判定閾値GALVO2に達した時点(判定時刻tDET2(図示せず))において、下流側O2センサ出力LVO2が第4の下流側基準値LVO2SLF以上であるときは、NOx浄化装置15は正常と判定され、判定時刻tDET2において下流側O2センサ出力LVO2が第4の下流側基準値LVO2SLFより低いときは、NOx浄化装置15は劣化していると判定される。
SOx濃度が高いと判定された場合において、NOx浄化装置15が劣化しているときは、NOx浄化装置15のSOx除去処理の実行後であっても、排気中のSOxの影響により下流側O2センサ出力LVO2が排気リッチ状態を示す値に達しないことが実験的に確認されている。したがって、、判定時刻tDET2において下流側O2センサ出力LVO2が第4の下流側基準値LVO2SLFより低いときは、NOx浄化装置15は劣化していると判定される。
3)下流側O2センサ19の故障判定がなされたとき(FFSDF103=1)は、劣化判定は中止される。下流側O2センサが故障している状態では、正しい劣化判定ができないからである。また、下流側O2センサ19のOK判定が、時刻t14(またはtDET2)においてなされていないときは、リッチ化継続フラグFRSPEXTが「1」に設定され(ステップS122,S123)、下流側O2センサ19の故障判定のために空燃比リッチ化が延長される。
図10は、図6の処理でSOx濃度が高いと判定されなかった場合の動作を説明するためのタイムチャートである。この図において実線は、下流側O2センサ19が正常である場合に対応し、破線は下流側O2センサ19が短絡故障(センサ出力LVO2が「0」のままとなる故障)を起こしている場合に対応する。
時刻t11に劣化判定の実施条件が成立し、実施条件フラグFMCNDF105が「1」に設定される。時刻t12において上流側O2センサ出力SVO2が第4の上流側基準値SVO2LNCHを越え、第3の排気量パラメータGALNCSの計測が開始される。時刻t13には、SOx濃度判定処理(図6)が終了し、濃度判定終了フラグFSLFENDが「1」に設定される。
第3の排気量パラメータGALNCSが第3の判定閾値GALNCHOKに達したとき(t14)、下流側O2センサ出力LVO2は低レベルにあるので、第1前判定OKフラグFOK105Pが「1」に設定される(図示していないが、同時に第1前判定フラグFPREJUD1も「1」に設定される)。このとき、下流側O2センサ19の正常判定がなされていないため(FOKF103=0)、リッチ化継続フラグFRSPEXTが「1」に設定される。
時刻t15において、下流側O2センサ出力LVO2が、正常判定基準値LVO2LNVH(例えば0.7V)を越えるので、下流側O2センサ19の正常判定がなされ、O2センサOKフラグFOKF103が「1」に設定され、正常フラグFOKF105が「1」に設定される。また図示しないO2センサ故障診断処理においてリッチ化継続フラグFRSPEXTが「0」に戻される。
下流側O2センサ19が故障している場合には、破線で示すようにさらに空燃比のリッチ化が継続され、時刻t14から所定時間TMRSPEXTが経過した時刻t16において、下流側O2センサ19の故障判定がなされる(O2センサ故障フラグFFSDF103が「1」に設定される)。この場合は、正常フラグFOKF105は「0」に維持され、NOx浄化装置15の正常判定はなされない。
図14は、SOx除去処理のフローチャートであり、この処理は所定時間(例えば100msec)毎にCPU5bで実行される。なお、SOx除去処理の実行中(FSLF=1かつFSRMOVEND=0であるとき)は、リーン運転は禁止される(後述する図15参照)。
ステップS151では、高濃度フラグFSLFが「1」であるか否かを判別し、FSLF=0であるときは、第1のダウンカウンタCSRMOVに第1の所定値CTSRMOVS(例えば6000)を設定し(ステップS153)、第2のダウンカウンタCSADINTに第2の所定値CTSADDS(例えば48)を設定して(ステップS154)、本処理を終了する。第1の所定値CTSRMOSは、NOx浄化装置15のSOx吸着量が最大(飽和状態)の場合でも、全てのSOxを除去することができる時間に対応する値に設定される。
ステップS151でFSLF=1であってSOx濃度が高いと判定されているときは、SOx除去終了フラグFSRMOVENDが「1」であるか否かを判別する(ステップS152)。既にSOx除去処理が完了した場合には、この答は肯定(YES)となり、前記ステップS153に進む。FSRMOVEND=0であるときは、NOx浄化装置15の推定温度TCTが、所定温度TCTSF(例えば600℃)より高いか否かを判別する(ステップS155)。推定温度TCTは、図示しない処理により、例えばエンジンの運転状態、具体的にはエンジン回転数NE及びエンジン負荷(吸気管内絶対圧PBA)に応じて設定された温度マップを検索することにより、算出される。なおNOx浄化装置15の温度を検出する温度センサを設け、推定温度TCTをその検出温度に代えてもよい。
ステップS155においてTCT≦TCTSFであるときは、第2のダウンカウンタCSADINTの値が「0」以下か否かを判別する(ステップS158)。最初は、CSADINT>0であるので、第2のダウンカウンタCSADINTを「1」だけデクリメントし(ステップS159)、ステップS164に進む。その後、第2のダウンカウンタCSADINTの値が「0」となると、ステップS158からステップS160に進み、第1のダウンカウンタCSRMOVを「1」だけインクリメントする。次いで第2のダウンカウンタCSADINTに第2の所定値CTSADDSを設定し(ステップS161)、ステップS164に進む。
ステップS155でTCT>TCTSFであるときは、SOx除去リッチ化フラグFSRRを「1」に設定し、空燃比を理論空燃比よりリッチ側の値に設定する(ステップS156)(図2、ステップS10、S29参照)。次いで、検出当量比KACTが所定当量比KACTSRM(例えば1.03)以上か否かを判別し(ステップS157)、KACT<KACTSRMであるときは前記ステップS158に進む。KACT≧KACTSRMであるときは、第1のダウンカウンタCSRMOVを「1」だけデクリメントし(ステップS162)、第2のダウンカウンタCSADINTに第2の所定値CTSADDSを設定して(ステップS163)、ステップS164に進む。
ステップS164では、第1のダウンカウンタCSRMOVの値が第1の所定値CTSRMOVS以下であるか否かを判別し、CSRMOV≦CTSRMOVSであるときは直ちにステップS166に進む。CSRMOV>CTSRMOVSであるときは、第1のダウンカウンタCSRMOVを第1の所定値CTSRMOVSに設定して(ステップS165)、ステップS166に進む。
ステップS166では、第1のダウンカウンタCSRMOVの値が「0」以下か否かを判別し、CSRMOV>0である間は直ちに本処理を終了する。第1のダウンカウンタCSRMOVの値が「0」となると、SOx除去処理が完了したと判定して、ステップS167及びS168を実行する。すなわち、第1のダウンカウンタCSRMOVを「0」に設定し(ステップS167)、SOx除去終了フラグFSRMOVENDを「1」に設定するとともに、高濃度フラグFSLF及びSOx除去リッチ化フラグFSRRを「0」に戻して(ステップS168)、本処理を終了する。
図14の処理によれば、第1のダウンカウンタCSRMOVにより、NOx浄化装置15に蓄積したSOx量が推定され、第1のダウンカウンタCSRMOVの値が「0」となったとき、蓄積されたSOxが除去されたと判定し、SOx除去終了フラグFSRMOVENDが「1」に設定される。ただし、推定温度TCTが所定温度TCTSF以下であるとき、または検出当量比KACTが所定当量比KACTSRMより小さいときは、SOxが除去されず、逆にNOx浄化装置15に蓄積されるので、第2のダウンカウンタCSADINTの値が「0」となる毎に、第1のダウンカウンタCSRMOVがインクリメントされる。SOxの蓄積速度は、除去速度に比べて低いので、第1のダウンカウンタCSRMOVのインクリメントは、デクリメントより小さい頻度で実行される。
SOx濃度が高いと判定されたとき、SOx除去処理を実行することにより、SOxの蓄積に起因する浄化性能の低下を、NOx浄化装置15の経時劣化と誤判定することを防止できる。
図15は、SOx除去処理実行中は空燃比を理論空燃比よりリーン側に設定するリーン運転を禁止する処理のフローチャートである。この処理はTDC信号パルスの発生に同期してCPU5bで実行される。ただし、エンジン運転状態に応じてリーン運転フラグFLBの設定を行うリーン運転許可判断処理(図示せず)の直後に実行される。すなわち、リーン運転許可判断処理でリーン運転フラグFLBが「1」に設定されても、SOx除去処理実行中は本処理で「0」に戻される。リーン運転を禁止することにより、SOx除去が可能となる。
ステップS171では、高濃度フラグFSLFが「1」であるか否かを判別し、FSLF=1であってSOx濃度が高いと判定されたときは、SOx除去終了フラグFSRMOVENDが「1」であるか否かを判別する(ステップS172)。そして、FSLF=1かつFSRMOVEND=0であって、SOx除去処理実行中は、リーン運転フラグFLBを「0」に設定する(ステップS173)。高濃度フラグFSLFが「0」であるとき、またはSOx除去終了フラグFSRMOVENDが「1」であるときは、直ちに本処理を終了する。
本実施形態では、ECU5が還元リッチ化手段、空燃比切換手段、硫黄酸化物判定手段、劣化判定手段、禁止手段及び硫黄酸化物除去手段を構成する。より具体的には、図2のステップS22が還元リッチ化手段に相当し、ステップS19及びS26が空燃比切換手段に相当し、図6の処理が硫黄酸化物判定手段に相当し、図8のステップS102〜S118及び図9のステップS127,S128,S131〜S134が劣化判定手段に相当し、図9のステップS125,S129及びS135が禁止手段に相当し、図14の処理が硫黄酸化物除去手段に相当する。
(第2の実施形態)
図16は本発明の第2の実施形態にかかる排気浄化装置を含む、内燃機関及びその制御装置の全体構成図である。図16に示す構成は、排気管13に三元触媒14及び上流側O2センサ18が設けられていない点で図1に示す第1の実施形態の構成と異なっている。なお、以下に説明する点以外は、第1の実施形態と同様である。
本実施形態では、下流側O2センサ19の出力LVO2に基づいて、SOx濃度判定を行う。すなわち、図6の処理を、上流側O2センサ出力SVO2に代えて下流側O2センサ出力LVO2を用いて実行し、SOx濃度判定を行う。
またNOx浄化装置15の劣化判定は、LAFセンサ17の出力VLAF及び下流側O2センサ出力LVO2に基づいて実行する。すなわち、劣化判定サブルーチン(図8,9)における、第3の排気量パラメータGALNCSの算出(ステップS103)は、図17に示す処理により実行する。
図17のステップS141aでは、LAFセンサ出力VLAFが基準値VLAFLNCH以上か否かを判別し、VLAF≧VLAFLNCHであるときは、ステップS142に進み、第3の排気量パラメータGALNCSを「0」に設定する。LAFセンサ出力VLAFが基準値VLAFLNCHを下回ると、ステップS144及びS145を実行して、第3の排気量パラメータGALNCSの積算を行う。
ここで、基準値VLAFLNCHは、目標空燃比係数KCMDの劣化判定リッチ化所定値KCMDRMに対応する空燃比(14.3程度)より若干リーン側の空燃比(例えば14.4)に対応する値に設定される。なお、本実施形態では、LAFセンサ出力VLAFは、酸素濃度が高くなるほど(空燃比が増加するほど)増加する特性を有している。したがって、図17の処理により、LAFセンサ出力VLAFがリーン空燃比を示す値から、劣化判定リッチ化所定値KCMDRMに対応するリッチ空燃比を示す値に変化した時点から第3の排気量パラメータGALNCSの積算が開始される。
このように第3の排気量パラメータGALNCSを、LAFセンサ出力VLAFに基づいて算出することにより、第1の実施形態と同様に、NOx浄化装置15の劣化判定を行うことができる。
なお、実施条件判断処理(図4,5)においては、上流側O2センサ出力SVO2を、LAFセンサ出力VLAFに置換するとともに、ステップS55及びS64において比較の対象となる基準値をLAFセンサ出力VLAFに適した値に変更し、さらに不等号の向きを逆にする。これにより、LAFセンサ出力VLAFを用いて、劣化判定の実施条件判断を行うことができる。
以上のように本実施形態では、NOx浄化装置15の下流側に設けられた下流側O2センサ19の出力に基づいて、SOx濃度判定が実行される。また、LAFセンサ出力VLAF及び下流側O2センサ出力LVO2に基づいて、NOx浄化装置15の劣化判定が実行される。
(他の実施形態)
なお本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、上述した実施形態では、上流側O2センサ出力SVO2が、第2の上流側基準値SVO2SLFを越える前に第1の排気量パラメータGSLFFINが第1の判定閾値GSLFFINRに達したとき、SOx濃度が高いと判定するようにしたが、排気量パラメータGSLFFINに代えて経過時間を計測するタイマTSLFFINを用いるようにしてもよい。すなわち、上流側O2センサ出力SVO2が第1の上流側基準値SVO2LNCSに達した時点からタイマTSLFFINによる経過時間の計測を開始し、O2センサ出力SVO2が第2の上流側基準値SVO2SLFに達する前に、タイマTSLFFINの値が第1の判定閾値GSLFFINRに対応する所定時間TSLFFINRに達したとき、SOx濃度が高いと判定するようにしてしてもよい。
また上述した実施形態では、上流側O2センサ出力SVO2が第2の上流側基準値SVO2SLFを越えた時点から第2の排気量パラメータGSLFJUDの積算を開始し、第2の排気量パラメータGSLFJUDが第2の判定閾値GASLFに達するまでの間に、O2センサ出力SVO2が第2の上流側基準値SVO2SLFより低くなると、SOx濃度が高いと判定される。この第2の排気量パラメータGSLFJUDに代えて経過時間を計測するタイマTSLFJUDを用いるようにしてもよい。すなわち、上流側O2センサ出力SVO2が第2の上流側基準値SVO2SLFを越えた時点からタイマTSLFJUDによる経過時間の計測を開始し、タイマTSLFJUDの値が第2の判定閾値GASLFに対応する所定時間TASLFに達するまでの間に、O2センサ出力SVO2が第2の上流側基準値SVO2SLFより低くなったとき、SOx濃度が高いと判定するようにしてもよい。