以下、本発明の実施形態を図面に基づいて説明する。
図1は本発明の空燃比制御方法の実施に直接使用するエンジンの空燃比制御装置の概略構成を示している。
図1において、1はエンジン本体で、その吸気通路7には吸気絞り弁8の下流に位置して燃料噴射弁(図示しない)が設けられ、エンジンコントローラ6からの噴射信号により運転条件に応じて所定の空燃比となるように、吸気中に燃料を噴射供給する。
エンジンコントローラ6にはクランクシャフトポジションセンサ21からの信号、カムシャフトポジションセンサ22からの信号、エアフローメータ9からの吸入空気量の信号、水温センサ10からのエンジン冷却水温の信号等が入力され、これらに基づいて基本噴射パルス幅TPを算出し、このパルス幅TPに応じた燃料噴射量を燃料噴射弁を介してエンジンに供給する。
エンジンの排気通路2には三元触媒3を備える。三元触媒3は排気の空燃比がストイキを中心とする所定のウィンドウ幅にあるときNOx、HC、COの3つの有害成分を効率よく同時に浄化し得るので、エンジンコントローラ6では、三元触媒3の上流側に設けているフロントO2センサ4の出力に基づいて、排気の空燃比をストイキ付近で振らせる空燃比フィードバック制御を行う。
また、三元触媒3の劣化診断を行うため三元触媒3の下流側にリアO2センサ5を設けているが、このリアO2センサ5の有効活用のためこのリアO2センサ5出力に基づいても空燃比フィードバック制御を行う。
一方、図13に示したように運転域を2つに区分けしており、出力が要求されない低負荷側の所定運転域(リーン空燃比域)では、燃費向上のためストイキよりリーン側の空燃比で運転し、出力が要求される運転域になると、ストイキ運転に切換える。
ただし、リーン空燃比で運転するときには、三元触媒3はリーン空燃比で多く発生するNOxを効率よく浄化できずにそのまま触媒下流へと排出してしまうので、三元触媒3に、NOxトラップ触媒をコーティングしている。NOxトラップ触媒は、排気の空燃比がリーン空燃比であるときに、排気中のNOxをトラップし、排気中の空燃比をストイキやストイキよりもリッチ側の空燃比にしたとき、触媒にトラップしていたNOxを脱離すると共に、このとき排気中に含まれるHC、COを還元剤として用いて、触媒より脱離してくるNOxを還元浄化するものである。
エンジンコントローラ6では、リーン空燃比での運転域でNOxトラップ触媒にトラップされるNOxトラップ量を積算し、そのNOxトラップ量積算値とNOxトラップ量許容値(許容される限界NOxトラップ量=許容値限界)とを比較し、NOxトラップ量積算値がNOxトラップ量許容値以上になると、NOxトラップ触媒がそれ以上はNOxをトラップできないと判断し、NOxトラップ触媒を再生させるためリッチスパイク処理を行う。リッチスパイク処理は、排気の空燃比をストイキよりもリッチ側(あるいはストイキ)にする処理のことである。
さて、図2は、NOxトラップ触媒付き三元触媒を用いて、前回にリッチスパイク処理を行うと共にそのリッチスパイク処理直後にストイキ運転を行った場合に、運転条件は同じでありながら前回のリッチスパイク処理直後のストイキ運転時間が長い場合と、前回のリッチスパイク処理直後のストイキ運転時間を短くした場合とで、今回のリッチスパイク処理時のNOx、COの各排出量がどのように影響されるのかを示す実験結果で、本発明者が初めて見出したものである。
図2では、横軸に今回のリッチスパイク処理におけるリッチスパイク量(空燃比の濃さ)を、縦軸にCOとNOxの各排出量を採っている。まず、破線で示したのが前回のリッチスパイク処理直後のストイキ運転時間が長い場合の特性で、今回のリッチスパイク処理におけるリッチスパイク量を増やすほど、還元剤としてのHC、COが増えるのでNOx排出量は減り、これに対してCO排出量が増えている。次に、実線で示すのが、同じ運転条件でありながら前回のリッチスパイク処理直後のストイキ運転時間を短くした場合の特性で、今回のリッチスパイク処理におけるリッチスパイク量を同じとして比較したとき、前回のリッチスパイク処理直後のストイキ運転時間を短くした場合のほうが、前回のリッチスパイク処理直後のストイキ運転が長い場合よりNOx排出量が大きく増加しCO排出量は減少していることがわかる。
ここで、前回のリッチスパイク処理直後のストイキ運転時間が短い場合に、NOx、COの各排出量特性が破線より実線へと移る理由は今のところ正確には解明されていないのであるが、排気の空燃比をリーン空燃比よりストイキへと変化させたとき、三元触媒に蓄えられているO2ストレージ量が図3のように変化する(公知)ことを考え合わせると、本発明者は、次のようなことであると推論している。すなわち、三元触媒より脱離してくるO2の脱離速度には速いものから遅いものまでさまざまあるので、今、便宜上、相対的にすばやく(つまり高速で)三元触媒より脱離してくるO2であるO2ストレージ高速成分と、相対的にゆっくりと(つまり低速で)三元触媒より脱離してくるO2であるO2ストレージ低速成分とに大きく2つに分けて考えてみると、このうちO2ストレージ高速成分はその全てが前回のリッチスパイク処理中に三元触媒より脱離してしまうのに対して、O2ストレージ低速成分のほうは前回のリッチスパイク処理直後のストイキ運転(微弱量リッチ空燃比になっている場合も含む)のときに三元触媒よりゆっくりと脱離されてくると思われ、前回のリッチスパイク処理直後のストイキ運転時間が短かいと、三元触媒にO2ストレージ低速成分が脱離されないまま多く残留することになる。三元触媒にO2ストレージ低速成分が多く残ったまま今回のリッチスパイク処理を行ったときに、三元触媒に残っているO2ストレージ低速成分が、何らかの理由により一度に脱離され、この脱離された大量のO2ストレージ低速成分が、リッチスパイク処理によりNOxトラップ触媒に供給されるはずであった還元剤(HC、CO)の一部を酸化してしまい(つまりCO排出量が減り)、そのぶんNOxトラップ触媒より脱離してくるNOxが還元浄化されずにそのままNOxトラップ触媒下流に排出される(つまりNOx排出量が増える)ためと思われる。
上記のO2ストレージ高速成分とO2ストレージ低速成分とは、例えば次のように区分けすることができる。図3に示したように、排気の空燃比をt0のタイミングでリーン空燃比よりストイキへと変化させたとき、三元触媒のO2ストレージ量は最大値より少なくなってt2のタイミングでストイキにおける平衡値へと落ち着くので、図示のハッチング部分の面積(S1+S2)に対応するO2が三元触媒より脱離してくることになる。この場合に、特性曲線の変曲点Aで区分けし、変曲点Aより前の面積S1に対応するO2をO2ストレージ高速成分として、、また変曲点Aより後の面積S1に対応するO2をO2ストレージ低速成分として扱えばよい。ただし、三元触媒より脱離してくるO2をO2ストレージ高速成分とO2ストレージ低速成分との2つに区分けしたのはあくまで説明の便宜上からであり、実際には明確に2つに分けられるものでない。
図4は横軸を時間とする実際の波形をモデルで示したものである。図4において、前回のリッチスパイク処理直後のストイキ運転時間が長い場合の目標当量比、リアO2センサ出力の各波形を上2段に、これに対して運転条件が同じでありながら前回のリッチスパイク処理直後のストイキ運転時間が短い場合の目標当量比、リアO2センサ出力の各波形を下2段に示している。前回のリッチスパイク処理直後のストイキ運転時間が長い場合に今回のリッチスパイク処理に対応して変化するリアO2センサ出力の波形が、ほぼ四角になっている(図4第2段目に示すハッチング部分参照)のに対して、前回のリッチスパイク処理直後のストイキ運転時間が短い場合には今回のリッチスパイク処理に対応して変化するリアO2センサ出力の波形が、両側に欠けた部分が生じてほぼ山状となっている(図4第4段目に示すハッチング部分参照)。
この欠けた部分の生じる原因が、上記のように三元触媒にO2ストレージ低速成分が多く残ったまま今回のリッチスパイク処理を行ったときに、三元触媒に残っているO2ストレージ低速成分が、何らかの理由により一度に脱離されてしまい、この脱離された大量のO2ストレージ低速成分が、リッチスパイク処理によりNOxトラップ触媒に供給されるはずであった還元剤の一部を酸化するために還元剤量が不足することによるものである。
NOxトラップ触媒へ還元剤量はハッチングした図示の面積に対応するので、第4段目のように両側にへこみを生じると、NOxトラップ触媒へ還元剤量が不足し、NOxトラップ触媒より脱離してくるNOxのうち一部は還元浄化されることなくそのままNOxトラップ触媒下流へと排出されることが分かる。
ここまでは、リッチスパイク処理直後のストイキ運転時間とO2ストレージ低速成分量との間に相関があると考えてきたが、時間だけでなくリッチスパイク処理直後に流れる排気流量もO2ストレージ低速成分量に関係すると考えられるので、今回のリッチスパイク処理の際に三元触媒より脱離してくるO2ストレージ低速成分量を推定するため、ストイキ運転量を新たに導入する。ストイキ運転量は、排気流量が一定の条件であれば、ストイキ運転時間が長くなるほど大きくなる値である。また、ストイキ運転時間が同じであれば、排気流量が大きくなるほどストイキ運転量は大きくなる。このようにストイキ運転量は、ストイキ運転中に触媒を流れる排気の総量を表す値として導入する。具体的には、排気流量は吸入空気流量で代用できるため、ストイキ運転量推定値としては、ストイキ運転中の吸入空気量の積算値を用いることができる。
こうして、ストイキ運転量を導入したとき、前回のリッチスパイク処理直後のストイキ運転中にストイキ運転量の推定値が所定の限界値よりも小さいまま、今回のリッチスパイク処理を行ったとき、三元触媒に残っているO2ストレージ低速成分が、何らかの理由により一度に脱離されてしまう、という現象により還元剤量が不足する事態が生じると考え、本発明(実施形態)では次のように制御する。
〔1〕リッチスパイク処理直後にストイキ運転を行い、このストイキ運転中のストイキ運転量を推定(算出)し、このストイキ運転量の推定値に応じて今回のリッチスパイク処理におけるリッチスパイク高さ(空燃比の濃さ=空気に対する燃料の多さ)を変更する。例えば、前回のリッチスパイク処理直後のストイキ運転量の推定値が限界値より小さい場合に、今回のリッチスパイク処理におけるリッチスパイク高さを、限界値に対するリッチスパイク高さ(つまり基準高さ)よりも高くなる側に変更することによって、NOxトラップ触媒に供給する還元剤量を増やす。
〔2〕リッチスパイク処理直後にストイキ運転を行い、このストイキ運転中のストイキ運転量を推定(算出)し、このストイキ運転量の推定値に応じて今回のリッチスパイク処理直後のストイキ運転中におけるリッチシフト量を変更する。例えば、前回のリッチスパイク処理直後のストイキ運転量の推定値が限界値より小さい場合に、今回のリッチスパイク処理直後のストイキ運転中におけるリッチシフト量を、限界値に対するリッチスパイク量(つまりゼロ)よりも大きくなる側に変更することによって、NOxトラップ触媒に供給する還元剤量を増やす。
これら〔1〕、〔2〕により、今回のリッチスパイク処理の際に、三元触媒よりO2ストレージ低速成分が何らかの理由により大量に脱離してきてリッチスパイク処理により供給される還元剤の一部を酸化することがあっても、NOxトラップ触媒にはこのNOxトラップ触媒から脱離してくるNOxの還元浄化に必要な還元剤量を確保する。
上記〔1〕の場合をさらに図5を参照して説明すると、図5はリーン空燃比域での運転を継続して行っている場合をモデル的に示している。ここで、t0〜t4の期間で行われるリッチスパイク処理を今回のリッチスパイク処理とし、その前に行われるリッチスパイク処理を前回のリッチスパイク処理(図示しない)とし、t4〜t6の期間で行われるリッチスパイク処理を次回のリッチスパイク処理とする。
図5において、今回のリッチスパイク処理の要求がt0のタイミングで出ると、リッチスパイクフラグがゼロより1へと切換わるため、目標当量比がリーン側の値からリッチ側への値へとステップ的に変更され(図5第3段目参照)、今回のリッチスパイク処理が開始される。
今回のリッチスパイク処理の際には、前回のリッチスパイク処理直後のストイキ運転量推定値(前回のストイキ運転量)が限界値より少し大きかったとする(図5最下段参照)。このときには今回のリッチスパイク処理に際して、上記の現象が生じて還元剤量が不足する事態が生じることはないので、今回のリッチスパイク処理におけるリッチスパイク高さは、NOxトラップ触媒より離脱してくるNOxの全量に応じた還元剤量と、三元触媒より脱離してくるO2ストレージ高速成分量に応じた還元剤量との合計が供給されるように基準高さに設定すればよい(図5第3段目参照)。
t2のタイミングで今回のリッチスパイク処理を終了すると、その直後より今回の強制的なストイキ運転に移行する。今回のストイキ運転を一定時間行ったt3のタイミングで今回のストイキ運転を終了し、リーン空燃比域での運転に復帰する。
この場合に、t2よりt3までの期間中の今回のストイキ運転量推定値として、図5最下段に示したように吸入空気量の積算値が計算されている。もともとリーン空燃比域にあるため、t2よりt3までの期間中の今回のストイキ運転量は限界値より小さく、このため、三元触媒に蓄えられているO2ストレージ低速成分が多いままに維持されている。
次に、t4で再びリッチスパイク処理の要求が出ると、目標当量比がリーン側の値からリッチ側への値へとステップ的に変更され、次回のリッチスパイク処理がt4のタイミングよりt6のタイミングまで行われる。
この次回のリッチスパイク処理におけるリッチスパイク高さは、t2よりt3までの間の今回のストイキ運転量が限界値(リッチスパイク高さに対する補正が必要か否かの判定値)より小さかったので、この限界値よりも小さかった分だけ、今回のリッチスパイク処理におけるリッチスパイク高さ(基準高さ)よりも高くして(図5第3段目参照)、NOxトラップ触媒に供給する還元剤量を増やす。
このように、今回のリッチスパイク処理直後のストイキ運転量が限界値より少ない場合に、この限界値よりも小さかった分だけ、次回のリッチスパイク処理におけるリッチスパイク高さを基準高さより高くし、NOxトラップ触媒に供給する還元剤量を増やすことで、前回のストイキ運転中に三元触媒に多く残っているO2ストレージ低速成分が、何らかの理由により今回のリッチスパイク処理に際して多量に脱離してくることがあっても、NOxトラップ触媒より脱離してくるNOxを残すことなく還元処理することができる。
今回のリッチスパイク処理直後のストイキ運転量が限界値より小さいときに次回のリッチスパイク処理時に触媒に供給する還元剤量を増やすもう一つの方法としては、次回のリッチスパイク処理直後のストイキ運転中に空燃比のリッチシフトを行い、そのリッチシフト量を、限界値よりも小さかった分に対応して設定することである。
次に、上記〔2〕の場合をさらに図19を参照して説明すると、図19においてもリーン空燃比域での運転を継続して行っている場合をモデル的に示している。ここで、t0〜t4の期間で行われるリッチスパイク処理を今回のリッチスパイク処理(第1のリッチスパイク処理)とし、その前に行われるリッチスパイク処理を前回のリッチスパイク処理(図示しない)とし、t4〜t6の期間で行われるリッチスパイク処理を次回のリッチスパイク処理(第2のリッチスパイク処理)とすることも図5と同じである。
図19において、今回のリッチスパイク処理の要求がt0のタイミングで出ると、リッチスパイクフラグがゼロより1へと切換わるため、目標当量比がリーン側の値からリッチ側への値へとステップ的に変更され(図19第3段目参照)、今回のリッチスパイク処理(第1のリッチスパイク処理)が開始され、t2のタイミングで今回のリッチスパイク処理を終了すると、その直後より今回の強制的なストイキ運転(第1のストイキ運転)に移行する。
今回のリッチスパイク処理の際には、前回のリッチスパイク処理直後のストイキ運転量推定値(前回のストイキ運転量)が限界値より少し大きかったとする(図19最下段参照)。このときには今回のリッチスパイク処理に際して、上記の現象が生じて還元剤量が不足する事態が生じることはないので、今回のリッチスパイク処理におけるリッチスパイク高さは、NOxトラップ触媒より離脱してくるNOxの全量に応じた還元剤量と、三元触媒より脱離してくるO2ストレージ高速成分量に応じた還元剤量との合計が供給されるように基準高さに設定すればよく(図19第3段目参照)、またt2よりt3までの今回のストイキ運転(第1のストイキ運転)中のリッチシフト量はゼロでよい(図19第4段目参照)。
今回のストイキ運転(第1のストイキ運転)を一定時間行ったt3のタイミングで今回のストイキ運転を終了し、リーン空燃比域での運転に復帰する。
この場合に、t2よりt3までの期間中の今回のストイキ運転量推定値として、図19最下段に示したように吸入空気量の積算値が計算されている。もともとリーン空燃比域にあるため、t2よりt3までの期間中の今回のストイキ運転量は限界値より小さく、このため、三元触媒に蓄えられているO2ストレージ低速成分が多いままに維持されている。
次に、t4で再びリッチスパイク処理の要求が出ると、目標当量比がリーン側の値からリッチ側への値へとステップ的に変更され、次回のリッチスパイク処理がt4のタイミングよりt6のタイミングまで行われる。
t2よりt4までの次回のリッチスパイク処理(第2のリッチスパイク処理)におけるリッチスパイク高さは、t0よりt2までの前回のリッチスパイク処理におけるリッチスパイク高さと同じである。
t6のタイミングで次回のリッチスパイク処理を終了すると、その直後より次回の強制的なストイキ運転(第2のストイキ運転)に移行する。
このとき、t2よりt3までの間の今回のストイキ運転量(第1のストイキ運転量)が限界値より小さかったので、この限界値よりも小さかった分に対応して、t6からの次回のストイキ運転(第2のストイキ運転)中におけるリッチシフト量を大きくなる側に変更(ここでは正の値で設定)して(図19第3段目参照)、NOxトラップ触媒に供給する還元剤量を増やす。
このように、今回のリッチスパイク処理直後のストイキ運転量が限界値より少ない場合に、この限界値よりも小さかった分に対応して、次回のリッチスパイク処理直後のストイキ運転中におけるリッチシフト量を正の値で設定し、NOxトラップ触媒に供給する還元剤量を増やすことで、前回のストイキ運転中に三元触媒に多く残っているO2ストレージ低速成分が、何らかの理由により今回のリッチスパイク処理に際して多量に脱離してくることがあっても、NOxトラップ触媒より脱離してくるNOxを残すことなく還元処理することができる。
詳細には、実施形態としては、次の10の態様が考え得るが、以下では〈5〉の方法を第1実施形態として、〈3〉の方法を第2実施形態として説明する。
〈1〉今回のリッチスパイク処理直後のストイキ運転量が限界値より小さいときに、限 界値よりも小さかった分に対応して、次回のリッチスパイク処理におけるリッチス パイク高さを基準高さより高くなる側に変更する。ここで、基準高さとは、上記の ように、今回のリッチスパイク処理直後のストイキ運転量が限界値であるときのリ ッチスパイク高さのことである。
〈2〉今回のリッチスパイク処理直後のストイキ運転量が限界値より小さいときに、限 界値よりも小さかった分に対応して、次回のリッチスパイク処理におけるリッチス パイク処理時間を基準時間より長くなる側に変更する。ここで、基準時間とは、今
回のリッチスパイク処理直後のストイキ運転量が限界値であるときのッチスパイク 処理時間のことである。
〈3〉今回のリッチスパイク処理直後のストイキ運転量が限界値より小さいときに、限 界値よりも小さかった分に対応して、次回のリッチスパイク処理直後のストイキ運 転中のリッチシフト量を設定する。
〈4〉今回のリッチスパイク処理直後のストイキ運転量が限界値より小さいときに、限 界値よりも小さかった分に対応して、次回のリッチスパイク処理直後のストイキ運 転時間を基準時間より長くなる側に変更する。ここで、基準時間とは、今回のリッ チスパイク処理直後のストイキ運転量が限界値であるときのリッチスパイク処理直 後のストイキ運転時間のことである。
〈5〉上記〈1〉と上記〈3〉を共に行う。
〈6〉上記〈1〉と上記〈2〉を共に行う。
〈7〉上記〈1〉と上記〈4〉を共に行う。
〈8〉上記〈2〉と上記〈3〉を共に行う。
〈9〉上記〈2〉と上記〈4〉を共に行う。
〈10〉上記〈3〉と上記〈4〉を共に行う。
エンジンコントローラ6で実行されるこの空燃比フィードバック制御方法の内容を、以下のフローチャートにしたがって説明する。
図6はリッチスパイク処理を実行するためのもので、例えばRef信号の入力毎に実行する。Ref信号は、クランクシャフトポジションセンサ21からの信号とカムシャフトポジションセンサ22からの信号とから算出されるクランク角の基準位置(例えば110°BTDC)の信号である。
ステップ1ではリッチスパイク処理中であるか否かをリッチスパイクフラグFRSよりみる。今はリッチスパイクフラグFRS(ゼロに初期設定)=0であるとしてステップ2に進み、リッチスパイク処理の要求があるか否かをみる。
リッチスパイク処理の要求があるか否かは次のように判定している。図示しないフローでは、リーン空燃比での運転中にNOxトラップ触媒にトラップされるNOxトラップ量の積算値を運転条件に応じて計算しており、このNOxトラップ量積算値と、NOxトラップ触媒の容量により定まるNOxトラップ量許容値とをステップ2で比較し、NOxトラップ量積算値がNOxトラップ量許容値を超えていなければ、リッチスパイク処理の要求はないと判断しそのまま今回の処理を終了する。NOxトラップ量積算値がNOxトラップ量許容値を超えると、リッチスパイク処理の要求があると判断し、ステップ3に進んでリッチスパイクフラグFRS=1とする。
ステップ4では、前回のリッチスパイク処理直後のストイキ運転中の吸入空気量積算値SUMQを積算吸入空気量ストア値に入れる。この吸入量積算値SUMQの算出については図7により説明する。
図7はリッチスパイク処理直後のストイキ運転中における吸入空気量積算値を算出するためのもので、一定時間毎(例えば10msec毎)に実行する。
ステップ31では空燃比フィードバック制御条件を満たしているか否かをみる。例えば、フロントO2センサ4が未活性状態にあれば空燃比フィードバック制御条件を満たさないので、そのまま今回の処理を終了する。
フロントO2センサ4が活性状態にあるなど一定の条件を満たしていれば空燃比フィードバック制御条件を満たしていると判断しステップ32に進んで、リッチスパイク処理の終了直後であるか否かをみる。
リッチスパイク処理の終了直後であるか否かの判定としては、今回のリッチスパイクフラグFRSの状態と、前回のリッチスパイクフラグFRSの状態とをみることで判断できる。例えば、今回はリッチスパイクフラグFRS=0でかつ前回はリッチスパイクフラグFRS=1である場合、つまりリッチスパイクフラグFRSが1よりゼロへと切換わったタイミングである場合がリッチスパイク処理の終了直後である。また、今回はリッチスパイクフラグFRS=0でかつ前回もリッチスパイクフラグFRS=0である場合、つまりリッチスパイクフラグFRSがゼロを継続している場合がリッチスパイク処理の終了直後でない場合である。ただし、図7においては、リッチスパイク処理中はリッチスパイク処理の終了直後でない場合として扱わない。
ここで、リッチスパイクフラグFRSの設定は、図6によりなされるので(ステップ3、16参照)、図7のフローは図6のフローに続けて実行することが必要である。
リッチスパイク処理の終了直後である場合にはステップ33に進んで吸入空気量積算値SUMQをクリアする(SUMQ=0)。
一方、リッチスパイク処理の終了直後でない場合にはステップ32よりステップ34に進んでストイキ運転フラグをみる。ストイキ運転フラグは、図6のステップ17、後述する図9のステップ71により設定されるフラグで、リッチスパイク処理を終了するタイミングでストイキ運転フラグ=1となり、これにより強制的にストイキ運転へと移行する。一定の時間経過後にはストイキ運転フラグ=0となる。ストイキ運転フラグ=0であるときにはリッチスパイク処理の終了直後のストイキ運転中でないと判断し、そのまま今回の処理を終了する。
ストイキ運転フラグ=1であるときにはリッチスパイク処理の終了直後のストイキ運転中であると判断しステップ34よりステップ35に進んでエアフローメータ8により検出される吸入空気量Qaを読み込み、ステップ36においてこの吸入空気量Qaを次式のように吸入空気量積算値SUMQに加算していくことによって吸入空気量積算値SUMQを算出し、算出した吸入空気量積算値SUMQは図6のフローで用いるためメモリに保存しておく。
SUMQ=SUMQ(前回)+Qa …(1)
ただし、SUMQ(前回):SUMQの前回値、
リッチスパイク処理の終了直後のストイキ運転は一定時間が経過すればストイキ運転フラグ=0となるので、これ以降はステップ35、36に進むことができない。
このようにして、リッチスパイク処理直後の強制的ストイキ運転中における吸入空気量積算値SUMQを算出する。
図6に戻り、ステップ2でリッチスパイク処理の要求があったときにステップ4で読み出され積算吸入空気量ストア値としてストアされるSUMQは、前回のリッチスパイク処理直後のストイキ運転中における吸入空気量積算値である。この積算吸入空気量ストア値は、前回のリッチスパイク処理直後のストイキ運転量の代表値である。
ステップ5では、前回のリッチスパイク処理後のストイキ運転量の代表値である積算吸入空気量ストア値を用いて、今回のリッチスパイク高さRSHを次式により算出する。
RSH=RSH1+RSH2+RSH3 …(2)
ここで、リッチスパイク高さRSHは、目標当量比が1.0である場合を基準として、当量比を1.0より大きくなる側(空燃比でいえばリッチ側)にシフトする量を表している。例えば、リッチスパイク高さRSHが0.2であれば、このとき目標当量比TFBYAは1.0+0.2=1.2となり、0.2の分だけ空燃比がリッチ側にシフトされる。
(2)式右辺の第1リッチスパイク高さRSH1はNOxトラップ触媒により許容値までトラップされたNOxトラップ量(NOxトラップ量許容値)の全てを脱離浄化するための還元剤量を与える値で、一定値である。この場合、排気中に含まれるNOxをも同時に還元浄化することを考えるときには、排気中のNOx量を脱離浄化するための還元剤量を第1リッチスパイク高さRSH1に含ませておけばよい。
また、(2)式右辺の第2リッチスパイク高さRSH2は三元触媒より脱離してくるO2ストレージ高速成分により酸化されてしまう還元剤量を与える値で、一定値である。これは、次の理由による。すなわち、三元触媒はO2ストレージ機能を有しているため、リッチスパイク処理のためにリーン空燃比よりリッチ空燃比へと移行させたとき、三元触媒よりO2ストレージ高速成分が素早く脱離してきて、NOxトラップ触媒より脱離されてくるNOxの脱離還元のための還元剤であるHC、COの一部を奪って酸化してしまい、NOxトラップ量許容値に応じた還元剤量を供給するだけだと還元剤量が不足してしまう。そこで、三元触媒より素早く脱離してくるO2ストレージ高速成分により酸化されてしまう還元剤量を(2)式右辺の第2リッチスパイク高さRSH2により与えるのである。
この第2リッチスパイク高さRSH2と上記第1リッチスパイク高さRSH1の合計が基準高さH0である。
一方、(2)式右辺の第3リッチスパイク高さRSH3は、積算吸入空気量ストア値の関数f1として次式により算出する。
RSH3=f1(積算吸入空気量ストア値) …(3)
第3リッチスパイク高さRSH3としては、積算吸入空気量ストア値が基準積算吸入空気量より小さいほど大きくなる値として与える。ここで、基準積算吸入空気量とは、ストイキ運転量の限界値に対応する値である。つまり、前回のリッチスパイク処理直後のストイキ運転中の吸入空気量積算値である積算吸入空気量ストア値がこの基準積算吸入空気量より小さくて三元触媒に所定量のO2ストレージ低速成分が残ったまま今回のリッチスパイク処理を行ったときに、何らかの理由によりその所定量のO2ストレージ低速成分が一斉に脱離してくる現象が生じることとなる。言い換えると、積算吸入空気量ストア値が基準積算吸入空気量以上であるときには、こうした現象が生じることはない。
積算吸入空気量ストア値が基準積算吸入空気量より小さい領域において、積算吸入空気量ストア値が小さくなるほど第3リッチスパイク高さRSH3を高くするのは、次の理由からである。すなわち、積算吸入空気量ストア値が基準積算吸入空気量より小さい領域において積算吸入空気量ストア値が大きい側でも小さい側でも、そのとき三元触媒に蓄えられているO2ストレージ低速成分が一斉に脱離してくるのであるから、積算吸入空気量ストア値が小さい側のほうが積算吸入空気量ストア値が大きい側より脱離してくるO2ストレージ低速成分量が多い。よって、第3リッチスパイク高さRSH3としては、積算吸入空気量ストア値が基準積算吸入空気量より小さい領域において積算吸入空気量ストア値が小さいほど今回のリッチスパイク処理により還元剤が多く供給されるように第3リッチスパイク高さRSH3を高くしてゆき、これにより三元触媒より何からの理由により一度に脱離してくるO2ストレージ低速成分により還元剤の一部が酸化されても、NOxトラップ触媒より脱離してくる全てのNOxの還元浄化に必要な還元剤の量を確保する必要があるためである。
第3リッチスパイク高さRSH3は関数f1で与えるほかに、図15のようにテーブル値で与えることもできる。
ステップ6では、ステップ5で得たリッチスパイク高さRSHを用いて次式によりリッチスパイク処理時の目標当量比TFBYAspを算出し、この目標当量比TFBYAspを目標当量比TFBYAに入れる。
TFBYAsp=1.0+RSH …(4)
ステップ7ではタイマを起動する(t1=0)。このタイマはリッチスパイク処理時間を計測するためのものである。
リッチスパイクフラグFRS=1になると、次回にはステップ1よりステップ8に進み、ステップ8ではディレイ時間中であるか否かをみる。リッチスパイクフラグFRS=1になった直後にはディレイ時間中でないので、ステップ9に進みタイマ値t1と所定値を比較する。所定値は図5で示しているように、目標当量比をリーン側の値よりリッチ側の値(TFBYAsp)へと切換えてから、実際の当量比がそのリッチ側の値(TFBYAsp)と一致するまでの時間(適合値)である。タイマ値t1が所定値未満である間はそのまま今回の処理を終了する。
やがてタイマ値t1が所定値に達するとステップ9よりステップ10、11に進んでディレイ時間を設定すると共にディレイカウンタを起動する(CNT=0)。
ディレイ時間はリッチスパイク処理の終了タイミングを定める値で一定値である。リッチスパイク処理により供給される還元剤(HC、CO)の量はリッチスパイク高さRSHとリッチスパイク処理時間(=所定値+ディレイ時間)により定まる面積に比例するので、リッチスパイク処理により供給される還元剤の量を制御するにはリッチスパイク高さRSHとリッチスパイク処理時間のいずれか一方を制御すればよいところ、ここではリッチスパイク高さRSHによりリッチスパイク処理により供給される還元剤の量を制御するようにしているため、リッチスパイ処理時間(ディレイ時間)のほうは一定値としている。
ディレイカウンタはタイマ値t1が所定値に達してからの時間を計測するためのものである。
上記ステップ9ではタイマ値t1と所定値との比較により実当量比が目標当量比TFBYA(=TFBYAsp)に達したか否かを判定しているが、判定方法はこれに限られるものでない。例えば、触媒下流側のセンサを、O2センサに代えて、いわゆる広域空燃比センサを設け、この広域空燃比センサにより検出される実当量比とリッチスパイク処理時の目標当量比TFBYAspとの比較により実当量比がリッチスパイク処理時の目標当量比TFBYAspに達したか否かを判定するようにしてもよい。あるいは、実当量比がリッチスパイク処理時の目標当量比TFBYAspに達する手前の値に達した段階でディレイ時間を設定するようにしてもよい。
ディレイ時間を設定した後にはディレイ時間中となるため、ステップ1、8よりステップ12に進んでディレイカウンタ値CNTとディレイ時間を比較する。ディレイカウンタ値CNTがディレイ時間に達していなければステップ13に進んで、エアフローメータ8により検出されるリッチスパイク処理中の吸入空気量Qaを読み込み、ステップ14においてこのリッチスパイク処理中の吸入空気量Qaの関数f2としてカウントアップ値ΔCNTを設定する。例えば、リッチスパイク処理中の吸入空気量Qaに比例する値でカウントアップ値ΔCNTを設定する。カウントアップ値ΔCNTとしては関数f2で与えるほかに、図16のようにテーブル値で与えることもできる。
ここでのリッチスパイク処理中の吸入空気量Qaは、リッチスパイク処理中の排気量(還元剤量)を代表させている。リッチスパイク処理中の排気量が小さいと還元剤量の全てを供給するには長く時間がかかるのに対して、リッチスパイク処理中の排気量が大きいと還元剤量の全てを供給する時間が短くてすむため、リッチスパイク処理中の排気量が小さいときにはカウントアップ値ΔCNTを小さくし、リッチスパイク処理中の排気量が大きいときにはカウントアップ値ΔCNTを大きくする。
ステップ15では、このカウントアップ値ΔCNTをカウンタ値CNTに加算してカウンタ値CNTを更新する。
ステップ13、14、15を繰り返すと、やがてカウンタ値CNTがディレイ時間に達するので、このときにはリッチスパイク処理を終了させるためステップ12よりステップ16に進んでリッチスパイクフラグFRS=0とする。ステップ17では、リッチスパイク処理に続けて強制的にストイキ運転を行わせるため、ストイキ運転フラグ(ゼロに初期設定)=1とする。
ステップ18では、この強制的なストイキ運転中に空燃比フィードバック制御による空燃比のリッチシフトを行うため、リッチシフトフラグ(ゼロに初期設定)=1とする。
最後にステップ19では次回のリッチスパイク処理に備えてリッチスパイク高さRSH=0とする。
このように、ステップ3へと進んでからステップ19までの一連の操作により、1回のリッチスパイク処理が行われる。この場合に、今回のリッチスパイク処理におけるリッチスパイク高さを、前回のリッチスパイク処理直後のストイキ運転中における吸入空気量積算値(=積算吸入空気量ストア値)を加味して設定している。そして、今回のリッチスパイク処理の終了直後には図7のフローが実行されて、今回のリッチスパイク処理直後のストイキ運転中における吸入空気量積算値が算出され、この今回のリッチスパイク処理直後のストイキ運転中における吸入空気量積算値は、次回のリッチスパイク処理におけるリッチスパイク高さの設定に際して用いられる。
図8は空燃比フィードバック補正係数αを算出するためのもので、Ref信号の入力毎に実行する。Ref信号は、クランクシャフトポジションセンサ21からの信号とカムシャフトポジションセンサ22からの信号とから算出されるクランク角の基準位置(例えば110°BTDC)の信号である。
ステップ41では空燃比フィードバック制御条件を満たしているかどうかをみる。例えば、フロントO2センサ4が未活性状態にあれば空燃比フィードバック制御条件を満たさないので、ステップ42に進んで空燃比フィードバック補正係数αを1.0に固定(クランプ)する。
フロントO2センサ4が活性状態にあるなど一定の条件を満たしていれば空燃比フィードバック制御条件にあると判断しステップ41よりステップ43に進んでフロントO2センサ出力FO2を読み込み、これをステップ44においてスライスレベルSLFと比較する。FO2>SLFのときは三元触媒上流側の排気の空燃比がストイキよりもリッチ側にあると判断してステップ45に進み、前回は三元触媒上流側の排気の空燃比がリッチ側であったかどうかをみる。この結果、前回リーン側で今回リッチ側のときにはステップ47に進んで比例分PRを演算する。この比例分PRの演算については図10のフローにより後述する。
ステップ48では図6のステップ17、後述する図9のステップ71により設定されているストイキ運転フラグをみる。ストイキ運転フラグ=0であるときは従来と同じであり、ステップ50に進んで前回の空燃比フィードバック補正係数αから比例分PRだけ減量した値を改めて空燃比フィードバック補正係数αとして更新する。
一方、ストイキ運転フラグ=1であるときにはステップ48よりステップ49に進み、次式により空燃比フィードバック補正係数αを更新する。
α=α(前回)−(PR−リッチシフト量) …(5)
ただし、α(前回):αの前回値、
(5)式リッチシフト量の演算については図9のフローにより後述する。
ステップ44、45で前回、今回ともリッチ側であるときにはステップ51に進んで前回の空燃比フィードバック補正係数αから積分分IR(一定値)だけ減量した値を改めて空燃比フィードバック補正係数αとして更新する。
一方、ステップ44でFO2≦SLFのときには排気の空燃比がリーン側にあるのでステップ52に進み、前回は三元触媒上流側の排気の空燃比がリッチ側であったかどうかをみる。前回リッチ側で今回リーン側のときは、ステップ53に進んで比例分PLを演算する。この比例分PLの演算については図11のフローにより後述する。
ステップ54では図6のステップ17、後述する図9のステップ71により設定されているストイキ運転フラグをみる。ストイキ運転フラグ=0であるときは従来と同じであり、ステップ56に進んで前回の空燃比フィードバック補正係数αに比例分PLを加算した値を改めて空燃比フィードバック補正係数αとして更新する。
一方、ストイキ運転フラグ=1であるときにはステップ54よりステップ55に進み、次式により空燃比フィードバック補正係数αを更新する。
α=α(前回)+(PL+リッチシフト量) …(6)
ただし、α(前回):αの前回値、
(6)式のリッチシフト量の演算については図9のフローにより後述する。
ステップ44、52で前回、今回ともリーン側であるときにはステップ57に進んで前回の空燃比フィードバック補正係数αに積分分IL(一定値)を加算した値を改めて空燃比フィードバック補正係数αとして更新する。
このようにして図8において算出した空燃比フィードバック補正係数αはエンジンコントローラ6内のメモリに記憶しておく。
上記(5)右辺において比例分PRは排気の空燃比がリーン側よりリッチ側へ反転したタイミングで空燃比をリーン側に戻し、また上記(6)右辺において比例分PLは排気の空燃比がリッチ側よりリーン側へ反転したタイミングで空燃比をリッチ側に戻す値である。ここで、(5)式、(6)のリッチシフト量は正の値であり、上記(5)右辺においてこのリッチシフト量が比例分PRより差し引かれ、また上記(6)右辺において比例分PLにこのリッチシフト量が加算されると、空燃比はリッチ側にシフト(移行)する。
図9はスパイク処理直後の強制的なストイキ運転中に空燃比のリッチシフト量を算出するためのもので、一定時間毎(例えば10msec毎)に実行する。このリッチシフト量は図8のステップ49、55で用いるため、図9のフローは図8のフローに先立って実行する。また、図9では図6のステップ19で設定されているリッチシフトフラグを用いるので、図6のフローに続けて実行する。
ステップ61では、図6のステップ19により設定されているリッチシフトフラグをみる。リッチシフトフラグ=0であるときにはステップ62に進みリッチシフト量=0とする。
リッチシフトフラグ=1であるときにはステップ61よりステップ63に進み、前回のリッチシフトフラグの状態をみる。前回はリッチシフトフラグ=0で今回にリッチシフトフラグ=1のとき、つまりリッチシフトフラグのゼロより1への切換時にだけステップ64に進み、図6のステップ4により得られている積算吸入空気量ストア値(つまり、前回のリッチスパイク処理直後のストイキ運転中の吸入空気量積算値)の関数f3として、今回のリッチスパイク処理直後のストイキ運転中におけるリッチシフト量を設定する。
リッチシフト量としては、積算吸入空気量ストア値が基準積算吸入空気量より小さくなるほど大きくなる値を設定する。ここで、基準積算吸入空気量とは、前述したようにストイキ運転量の限界値に対応する値である。つまり、前回のリッチスパイク処理直後のストイキ運転中の吸入空気量積算値である積算吸入空気量ストア値がこの基準積算吸入空気量より小さくて三元触媒に所定量のO2ストレージ低速成分が残ったまま今回のリッチスパイク処理を行ったときに、何らかの理由によりその所定量のO2ストレージ低速成分が一斉に脱離してくる現象が生じることとなる。言い換えると、積算吸入空気量ストア値が基準積算吸入空気量以上であるときには、こうした現象が生じることはない。
ここでも、前回のリッチスパイク処理前のストイキ運転中における吸入空気量積算値である積算吸入空気量ストアは、前回のリッチスパイク処理直後のストイキ運転量を表している。
積算吸入空気量ストア値が基準積算吸入空気量より小さい領域において、積算吸入空気量ストア値が小さくなるほど空燃比のリッチシフト量を大きくするのは、次の理由からである。すなわち、積算吸入空気量ストア値が基準積算吸入空気量より小さい領域において積算吸入空気量ストア値が大きい側でも小さい側でも、そのとき三元触媒に蓄えられているO2ストレージ低速成分が一斉に脱離してくるのであるから、積算吸入空気量ストア値が小さい側のほうが積算吸入空気量ストア値が大きい側より脱離してくるO2ストレージ低速成分量が多い。よって、リッチシフト量としては、積算吸入空気量ストア値が基準積算吸入空気量より小さい領域において積算吸入空気量ストア値が小さいほど今回のリッチスパイク処理直後のストイキ運転中における空燃比のリッチシフトにより還元剤が多く供給されるようにリッチシフト量を大きくしてゆき、これにより三元触媒より何からの理由により一度に脱離してくるO2ストレージ低速成分により還元剤の一部が酸化されても、NOxトラップ触媒より脱離してくる全てのNOxの還元浄化に必要な還元剤の量を確保する必要があるためである。
リッチシフト量としては関数f3で与えるほかに、図17のようにテーブル値で与えることもできる。
ステップ65ではリッチシフトカウンタ値RCNT=0として、ステップ66に進む。
次回よりステップ61、63では、前回、今回ともリッチシフトフラグ=1となるので、このときにはステップ61、63よりステップ64、65を飛ばしてステップ66に進む。
ステップ66では、リッチシフトカウンタ値RCNTとリッチシフト時間を比較する。リッチシフト時間はリッチシフト処理直後に強制的に行うストイキ運転時間を定めるための値で、一定値である。リッチシフトカウンタ値RCNTがリッチシフト時間に満たない間はステップ67、68、69を実行する。ステップ67ではエアフローメータ9により検出される吸入空気量Qaを読み込み、ステップ68においてこのリッチシフト処理直後のストイキ運転中の吸入空気量Qaの関数f4としてカウントアップ値ΔRCNTを設定する。例えば、リッチシフト処理直後のストイキ運転中の吸入空気量Qaに比例する値でカウントアップ値ΔRCNTを設定する。カウントアップ値ΔRCNTとしては関数f4で与えるほかに、図18のようにテーブル値で与えることもできる。
ここでのリッチシフト処理直後のストイキ運転中の吸入空気量Qaは、リッチシフト処理直後のストイキ運転中の排気量(還元剤量)を代表させている。リッチシフト処理直後のストイキ運転中の排気量が小さいと還元剤量の全てを供給するには長く時間がかかるのに対して、リッチシフト処理直後のストイキ運転中の排気量が大きいと還元剤量の全てを供給する時間は短くてすむため、リッチシフト処理直後のストイキ運転中の排気量が小さいときにはカウントアップ値ΔRCNTを小さくし、リッチシフト処理直後のストイキ運転中の排気量が大きいときにはカウントアップ値ΔRCNTを大きくする。
ステップ69では、このカウントアップ値ΔRCNTをリッチシフトカウンタ値RCNTに加算してリッチシフトカウンタ値CNTを更新する。
ステップ67、68、69を繰り返すと、やがてリッチシフトカウンタ値RCNTがリッチシフト時間に達する。このときにはリッチスパイク処理直後の強制的ストイキ運転を終了させるためにステップ66よりステップ70、71に進んでリッチシフトフラグ=0とすると共にストイキ運転フラグ=0とする。また、次回のリッチシフト処理直後のストイキ運転時のリッチシフトに備えるため、ステップ72でリッチシフト量=0とする。
このようにして算出されるリッチシフト量が図8のステップ49、55おいて用いられると、リッチスパイク処理直後に強制的にリッチシフト時間だけストイキ運転が行われ、そのリッチシフト時間のストイキ運転時に空燃比がリッチ側にシフトされる。この場合に、前回のリッチスパイク処理直後のストイキ運転量(ストイキ運転中における吸入空気量積算値)が、今回のリッチスパイク処理直後のストイキ運転時におけるリッチシフト量の設定に際して用いられる。
なお、リッチスパイク処理直後のストイキ運転時に空燃比をリッチ側にシフトすると、そのぶん出力が増加するので、その出力増加により運転上の違和感が生じるようであれば、点火時期のリタードで対処すればよい。
図10、図11は比例分PR、PLを演算するためのもので、図8との関係では図10、図11のフローはそれぞれ図8のステップ47、53のサブルーチンである。
図10のフローはリアO2センサ5が活性状態となった後にフロントO2センサ4(上流側センサ)からのフロントO2センサ出力がリッチ側へと反転するタイミング毎に、また、図11のフローは同じくリアO2センサ5が活性状態となった後にフロントO2センサ出力がリーン側へと反転するタイミング毎に実行する。
まず図10(図8のステップ47のサブルーチン)においてステップ81では比例分基本値PR0を読み込む。
ステップ82ではリアO2センサ出力RO2を読み込み、これをステップ83においてスライスレベルSLRと比較する。RO2>SLRのときには三元触媒3下流側の排気の空燃比がストイキよりもリッチ側にあると判断してステップ84に進み、次の式により比例分の修正値(始動時のゼロに初期設定)PHOSを所定値DPHOS(正の一定値)の分だけ減量する。
PHOS←PHOS(前回)−DPHOS …(7)
ただし、PHOS(前回):PHOSの前回値、
ステップ86では比例分基本値PR0からこの比例分修正値PHOSを差し引いた値を比例分PRとおくことにより、空燃比をリーン側へと戻す。
一方、RO2≦SLRのときには三元触媒3下流側の排気の空燃比がストイキよりもリーン側にあると判断してステップ85に進み、次の式により比例分修正値PHOSを所定値DPHOSの分だけ増量したあとステップ86の操作を実行することで空燃比をリッチ側へと戻す。
PHOS←PHOS(前回)+DPHOS …(8)
ただし、PHOS(前回):PHOSの前回値、
このように比例分PRをリアO2センサ出力RO2に基づいて修正する。
同様にしてもう一つの比例分PLについても、図11(図8のステップ53のサブルーチン)に示したようにして比例分PLをリアO2センサ出力RO2に基づいて修正する(ステップ91〜96)。
図12は目標当量比TFBYAを算出するためのもので、一定時間毎(例えば10msec毎)に実行する。
ステップ101ではエンジン回転速度NEと基本噴射パルス幅TP(エンジン負荷相当)とで定まる運転条件が、いずれの運転域にあるか否かを判定する。例えば、運転域を図13に示したようにリーン空燃比域とストイキ運転域とに分割しておき、運転条件がリーン空燃比域にあるときにはリーンフラグ=1とし、運転条件がストイキ運転域にあるときにはリーンフラグ=0とする。
ステップ102ではステップ101で設定しているリーンフラグをみる。リーンフラグ=1であるときにはステップ103、104に進み、図6のステップ17、図9のステップ71により設定されているストイキ運転フラグ、図6のステップ3、16により設定されているリッチスパイクフラグをみる。ストイキ運転フラグ=0かつリッチスパイクフラグ=0であるとき、つまりリッチスパイク処理中でもなく、またその直後の強制的なストイキ運転中でもないときは従来と同じであり、ステップ105に進み、リーン空燃比域での目標当量比TFBYAを、1.0より小さな正の値(例えば0.8等)で設定する。
ストイキ運転フラグ=0かつリッチスパイクフラグ=1であるとき、つまりリッチスパイク処理中であるときには、ステップ103、104よりステップ105を飛ばしてそのまま今回の処理を終了する。これは、リッチスパイク処理中においては図6のステップ6により目標当量比TFBYA(=TFBYAsp)が設定されているためである。
ストイキ運転フラグ=1であるときには、リーン空燃比域にあってもリッチスパイク処理直後の強制的なストイキ運転を行わせるため、ステップ103よりステップ106に進んで目標当量比TFBYA=1とする。
また、ステップ102でリーン空燃比域にないときつまり運転条件がストイキ運転域にあるときにはステップ106に進んで目標当量比TFBYA=1とする。
図14は、各気筒の燃料噴射弁に与える燃料噴射パルス幅Tiを算出するためのもので、Ref信号の入力毎に実行する。
ステップ111では、エアフローメータ9により検出される吸入空気量Qaと、エンジン回転速度NEとを読み込む。エンジン回転速度NEは、クランクシャフトポジションセンサ21からの信号とカムシャフトポジションセンサ22からの信号とから算出されている。
ステップ112ではこれら吸入空気量Qaとエンジン回転速度NEとから次式により、ほぼ理論空燃比の混合気が得られる基本噴射パルス幅TPを演算する。
TP=(Qa/NE)×K …(9)
ただし、K:定数、
ステップ113では基本噴射パルス幅TPを図8により算出している空燃比フィードバック補正係数αと、図6のステップ6及び図12により算出している目標当量比TFBYAとにより補正した式、つまり次式によりシーケンシャル噴射方式(エンジン2回転ごとに1回、各気筒とも吸気弁の開く直前当たりを噴射タイミングとする方式)での燃料噴射パルス幅Tiを算出し、これをステップ114において出力レジスタに転送する。
Ti=Tp×TFBYA×α×2+Ts …(10)
ただし、Ts:バッテリー電圧に応じた無効パルス幅、
ここで、本実施形態の作用を説明する。
本実施形態(請求項1に記載の発明)によれば、NOxトラップ触媒にトラップされたNOxを脱離させるために空燃比を一時的にリッチ空燃比とする第1のリッチスパイク処理を行う第1リッチスパイク処理手順(図6のステップ1、2、3)と、この第1のリッチスパイク処理後に強制的に第1のストイキ運転を行う第1ストイキ運転手順(図6のステップ1、8、12、17、図12のステップ103、106)と、この第1のストイキ運転中のストイキ運転量を第1のストイキ運転量として推定する第1ストイキ運転量推定手順(図6のステップ1、2、4、図7)と、第1のリッチスパイク処理の終了後に再びNOxトラップ触媒にトラップされたNOxを脱離させるために空燃比を一時的にストイキまたはリッチ空燃比とする第2のリッチスパイク処理を行う第2リッチスパイク処理手順(図6のステップ1、2、3)と、第1のストイキ運転量の推定値に応じて第2のストイキ運転中に空燃比をリッチシフトするリッチシフト手順と(図8のステップ48、49、54、55)とを含むので、任意の2つのリッチスパイク(第1のリッチスパイクと第2のリッチスパイク)間に行われるストイキ運転量に応じて、後に行われるリッチスパイクの後に行われるストイキ運転の空燃比をリッチ側へ補正することになり、第2のリッチスパイク処理の前に三元触媒にO2ストレージ低速成分が多く残ったまま第2のリッチスパイク処理のさらに次のリッチスパイク処理を行ったときに、三元触媒に残っているO2ストレージ低速成分が、何らかの理由により一度に脱離されてしまうことがあっても、NOxトラップ触媒より脱離してくるNOxに対して最適な還元剤量を供給でき、NOxの排出を抑制できる。
なお、第2のリッチスパイク処理でO2ストレージ低速成分が全部脱離するわけではないが、NOxトラップ触媒に供給する還元剤量を増やしてやると、O2ストレージ高速成分の脱離に引きずられてO2ストレージ低速成分も余分に脱離すると考えられる。
実施形態のように、第1のリッチスパイク及び第2のリッチスパイクは、NOxトラップ触媒へのNOxトラップ量積算値が許容値の限界に達したときに行なわせ、第1のストイキ運転と第2のストイキ運転をそれぞれ第1のリッチスパイク処理直後、あるいは第2のリッチスパイク処理直後に続いて強制的に行わせることで、より効果的にNOxの排出を抑制することができる。
図20は第2実施形態で、図20は第1実施形態の図6と置き換わるものである。図20において第1実施形態の図6と同一の部分には同一のステップ番号をつけている。
第1実施形態と相違する部分を主に説明すると、図20においては、図6にあるステップ4がなく、ステップ20では、リッチスパイク高さRSHを次式により算出する。
RSH=RSH1+RSH2 …(11)
(11)式上記の(2)式とを比較してわかるように、第2実施形態では、リッチスパイク高さRSHを算出するに際して、三元触媒より脱離してくるO2ストレージ低速成分は考慮していない。
第2実施形態によれば、NOxトラップ触媒へのNOxトラップ量が許容値に達したときに空燃比を一時的にリッチ空燃比とする第1のリッチスパイク処理を行う第1リッチスパイク処理手順(図20のステップ1、2、3)と、この第1のリッチスパイク処理直後に強制的に第1のストイキ運転を行う第1ストイキ運転手順(図20のステップ1、8、12、17、図12のステップ103、106)と、この第1のストイキ運転中のストイキ運転量を第1のストイキ運転量として推定する第1ストイキ運転量推定手順(図9のステップ61、63、64、図7)と、第1のリッチスパイク処理の終了後に再びNOxトラップ触媒へのNOxトラップ量が許容値に達したときに空燃比を一時的にリッチ空燃比とする第2のリッチスパイク処理を行う第2リッチスパイク処理手順(図20のステップ1、2、3)と、この第2のリッチスパイク処理直後に強制的に第2のストイキ運転を行う第2ストイキ運転手順(図20のステップ1、8、12、17、図12のステップ103、106)と、第1のストイキ運転量の推定値に応じて第2のストイキ運転中に空燃比をリッチシフトするリッチシフト手順(図8のステップ48、49、54、55)とを含むので、第2のリッチスパイク処理の前に三元触媒にO2ストレージ低速成分が多く残ったまま第2のリッチスパイク処理を行ったときに、三元触媒に残っているO2ストレージ低速成分が、何らかの理由により一度に脱離されてしまうことがあっても、NOxトラップ触媒より脱離してくるNOxに対して最適な還元剤量を供給でき、NOxの排出を抑制できる。
実施形態では、NOxトラップ触媒へのNOxトラップ量が許容値に達したときに空燃比を一時的にリッチ空燃比とする第1のリッチスパイク処理を行う第1リッチスパイク処理手順と、この第1のリッチスパイク処理直後に第1のストイキ運転を行う第1ストイキ運転手順と、この第1のストイキ運転中のストイキ運転量を第1のストイキ運転量として推定する第1ストイキ運転量推定手順と、前記第1のリッチスパイク処理の終了後に再びNOxトラップ触媒へのNOxトラップ量が許容値に達したときに空燃比を一時的にリッチ空燃比とする第2のリッチスパイク処理を行う第2リッチスパイク処理手順と、この第2のリッチスパイク処理直後に第2のストイキ運転を行う第2ストイキ運転手順と、前記第1のストイキ運転量の推定値に応じて前記第2のストイキ運転中に空燃比をリッチシフトするリッチシフト手順とを含む場合で説明したが、NOxトラップ触媒へのNOxトラップ量が許容値に達したときに空燃比を一時的にストイキとする第1のリッチスパイク処理を行う第1リッチスパイク処理手順と、この第1のリッチスパイク処理直後に第1のストイキ運転を行う第1ストイキ運転手順と、この第1のストイキ運転中のストイキ運転量を第1のストイキ運転量として推定する第1ストイキ運転量推定手順と、前記第1のリッチスパイク処理の終了後に再びNOxトラップ触媒へのNOxトラップ量が許容値に達したときに空燃比を一時的にストイキとする第2のリッチスパイク処理を行う第2リッチスパイク処理手順と、この第2のリッチスパイク処理直後に第2のストイキ運転を行う第2ストイキ運転手順と、前記第1のストイキ運転量の推定値に応じて前記第2のストイキ運転中に空燃比をリッチシフトするリッチシフト手順とを含むようにしてもかまわない(請求項1に記載の発明)。
実施形態では、第1のストイキ運転量を、第1のストイキ運転中の吸入空気量積算値から推定する場合で説明したが、第1のストイキ運転量を、第1のストイキ運転時間から推定するようにしてもかまわない(請求項6に記載の発明)。
実施形態では、リー空燃比域で第1のまたは第2のリッチスパイク処理を行う場合で説明したが、リーン空燃比域からストイキ運転域に移行した際に第1のリッチスパイク処理または第2のリッチスパイク処理を行うようにしてもかまわない。
実施形態では、NOxトラップ触媒付き三元触媒の場合で説明したが、三元触媒をNOxトラップ触媒の上流側に別個に配置するものに対しても本発明を適用できる。
実施形態では、空燃比制御方法を説明したが、この空燃比制御方法の実施に直接使用するエンジンの空燃比制御装置としては、排気中の空燃比に応じた量のO2を蓄えるO2ストレージ機能を有する三元触媒と、排気中の空燃比がリーン空燃比のときに排気中のNOxをトラップし、排気中の空燃比がストイキまたはリッチ空燃比になるとトラップしていたNOxを脱離させると共に排気中の還元剤を用いてこの脱離してきたNOxを還元浄化するNOxトラップ触媒とを排気通路に備え、前記NOxトラップ触媒へのNOxトラップ量が許容値に達したときに空燃比を一時的にストイキまたはリッチ空燃比とする第1のリッチスパイク処理を行う第1リッチスパイク処理手段と、この第1のリッチスパイク処理直後に第1のストイキ運転を行う第1ストイキ運転実行手段と、この第1のストイキ運転中のストイキ運転量を第1のストイキ運転量として推定する第1ストイキ運転量推定手段と、前記第1のリッチスパイク処理の終了後に再びNOxトラップ触媒へのNOxトラップ量が許容値に達したときに空燃比を一時的にストイキまたはリッチ空燃比とする第2のリッチスパイク処理を行う第2リッチスパイク処理手段と、この第2のリッチスパイク処理直後に第2のストイキ運転を行う第2ストイキ運転手段と、前記第1のストイキ運転量の推定値に応じて前記第2のストイキ運転中に空燃比をリッチシフトするリッチシフト手段とを備える空燃比制御装置が考えられる(請求項8に記載の発明)。
請求項1の第1リッチスパイク処理手順は図6のステップ1、2、3により、第1ストイキ運転手順は図6のステップ1、8、12、17、図12のステップ103、106により、第1ストイキ運転量推定手順は図6のステップ1、2、4、図7により、第2リッチスパイク処理手順は図6のステップ1、2、3により、第2ストイキ運転手順は図20のステップ1、8、12、17、図12のステップ103、106により、リッチシフト手順は図8のステップ48、49、54、55によりそれぞれ果たされている。