JP4103522B2 - 内燃機関の排気浄化装置 - Google Patents
内燃機関の排気浄化装置 Download PDFInfo
- Publication number
- JP4103522B2 JP4103522B2 JP2002281690A JP2002281690A JP4103522B2 JP 4103522 B2 JP4103522 B2 JP 4103522B2 JP 2002281690 A JP2002281690 A JP 2002281690A JP 2002281690 A JP2002281690 A JP 2002281690A JP 4103522 B2 JP4103522 B2 JP 4103522B2
- Authority
- JP
- Japan
- Prior art keywords
- catalyst
- oxygen storage
- value
- fuel ratio
- air
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Exhaust Gas After Treatment (AREA)
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
Description
【発明の属する技術分野】
本発明は排気通路に三元触媒を介装した内燃機関の排気浄化装置に関する。
【0002】
【従来の技術】
従来より、内燃機関の始動直後の排気浄化性能を確保するとするとともに、完全暖機後の排気浄化性能を一層向上するため、機関の排気通路にスタート・コンバータと云われる三元触媒(以下、「第1触媒」と称呼する。)を配設するともに、第1触媒よりも下流の排気通路にアンダ・フロア・コンバータと云われる三元触媒(以下、「第2触媒」と称呼する。)を配設する構成が採用されることがある。この場合、第1触媒は第2触媒に比べて機関の排気ポートに近い位置に配設され、温度の高い排ガスが流入するから、始動から短期間内に暖機されて良好な排気浄化機能を発揮する。一方、第2触媒は、第1触媒よりも暖機に要する時間が長いが、一旦暖機した後においては第1触媒と協働して優れた排気浄化機能を発揮する。
【0003】
このように第1触媒と第2触媒とを内燃機関の排気通路に直列に配設した従来の排気浄化装置は、機関と第1触媒の間、第1触媒と第2触媒の間、及び第2触媒の下流にそれぞれ空燃比センサ(酸素濃度センサ)を配設し、第2触媒下流の空燃比センサが非活性状態にある場合、機関と第1触媒の間の空燃比センサ及び第1触媒と第2触媒の間の空燃比センサの出力に基づいて機関に供給される混合気の空燃比を制御するとともに、第2触媒下流の空燃比センサが活性状態にある場合、機関と第1触媒の間の空燃比センサ及び第2触媒下流の空燃比センサの出力に基づいて機関に供給される混合気の空燃比を制御するようになっている(例えば、特許文献1参照。)。
【0004】
【特許文献1】
特開平6−294342号公報(第5−第6頁、図4−図6)
【0005】
【発明が解決しようとする課題】
ところで、三元触媒(以下、単に「触媒」とも称呼する。)は、同触媒に流入する内燃機関の排ガスの空燃比が略理論空燃比のとき、排ガス中の未燃成分(HC,CO)を酸化し、同時に窒素酸化物(NOx)を還元する機能(以下、「触媒機能」又は「酸化還元機能」と云う。)により排ガスを浄化する。また、触媒は、酸素を吸蔵(貯蔵)する酸素吸蔵機能(O2ストレージ機能)を有していて、流入する排ガスの空燃比がリッチである場合には吸蔵している酸素により未燃HC,CO等の未燃成分を酸化する(酸素を放出する)とともに、流入する排ガスの空燃比がリーンである場合には排ガス中の酸素及びNOxを還元することで得られる酸素を内部に吸蔵する。これにより、触媒は、機関に供給される混合気の空燃比が理論空燃比からある程度まで偏移した場合でも、未燃HC,COやNOxを効果的に浄化することができる。
【0006】
このように、触媒は酸素吸蔵機能を有しているから、触媒上流の排ガスの空燃比がリッチに変化したとしても同触媒内に吸蔵されている酸素が総べて消費されるまで同触媒下流に酸素が殆ど流出してこないため、同触媒の下流に設けられた空燃比センサの出力は略理論空燃比又はリーン空燃比相当の出力を発生し続ける。同様に、触媒上流の排ガスの空燃比がリーンに変化したとしても同触媒内に吸蔵される酸素量(以下、「酸素吸蔵量」と称呼する。)が同触媒に吸蔵され得る酸素の最大量(以下、「最大酸素吸蔵量」と称呼する。)に到達するまで同触媒下流に未燃HC,COが殆ど流出してこないので、同触媒の下流に設けられた空燃比センサの出力は略理論空燃比又はリッチ空燃比相当の出力を発生し続ける。
【0007】
即ち、触媒上流の排ガスの空燃比の変動が同触媒の下流に設けられた空燃比センサの出力に直ちに現れることはなく、触媒下流の空燃比センサの出力は触媒に流入した排ガスの空燃比の平均値(以下、「中心空燃比」と称呼する。)に応じた値となる。従って、触媒下流の空燃比センサ出力が所定の目標出力(例えば、理論空燃比相当の出力)に一致するように機関に供給される混合気の空燃比を制御することにより、触媒に流入する排ガスの中心空燃比を所望の値(例えば、理論空燃比)に制御することが可能となる。
【0008】
しかしながら、例えば、触媒が劣化する等の理由により、同触媒の最大酸素吸蔵量がある程度まで小さくなると、酸素吸蔵量が「0」又は最大酸素吸蔵量に比較的短時間内に到達するため、触媒上流の排ガスの空燃比の変動が触媒下流の空燃比センサの出力に直ちに現れるようになる。従って、このような場合に上述した空燃比フィードバック制御を行うと、触媒上流の排ガスの空燃比が大きく変動(ハンチング)することになり、その結果、同触媒に流入する排ガスの中心空燃比を所望の値に制御できず、排気浄化性能が低下するという問題がある。
【0009】
このことから明らかなように、上記従来の装置は、空燃比センサの活性状態にのみ着目して使用する空燃比センサを選択し、触媒の最大酸素吸蔵量(即ち、酸素吸蔵能力)に着目した空燃比センサの選択を行っていないので、第1触媒が劣化した場合等において同第1触媒上流に流入する排ガスの中心空燃比が理論空燃比から偏移し、その結果、浄化性能が低下する可能性がある。従って、本発明の目的は、触媒の酸素吸蔵能力を考慮した制御を行うことにより、触媒上流の排ガスの空燃比が大きく変動してしまうというフィードバック制御の破綻を回避し、未燃成分や窒素酸化物等の有害成分をより効果的に浄化し得る内燃機関の排気浄化装置を提供することにある。
【0020】
【発明の概要】
触媒を有効に機能させるためには、空燃比センサの出力を目標出力に一致させるように空燃比のフィードバック制御を行う他、触媒の排気浄化の状態を表す値(例えば、酸素吸蔵量や触媒から流出する特定成分の量)を取得して同排気浄化の状態を表す値を所定の値に一致させるように空燃比のフィードバック制御を行うことが有効である。また、このような触媒の排気浄化の状態を表す値に基づくフィードバック制御を行う場合においても、空燃比のハンチングを回避するためには、排気浄化の状態を表す値を取得する触媒又は同触媒と同触媒よりも上流側に介装された触媒からなる触媒装置が所定の閾値以上の酸素吸蔵能力を有していることが必要である。
【0021】
このような観点に基づき、本発明による他の排気浄化装置は、内燃機関の排気通路に直列に介装された複数の触媒と、前記複数の触媒の各酸素吸蔵能力を表す値を取得する酸素吸蔵能力取得手段と、前記取得された酸素吸蔵能力を表す値に基づいて所定の酸素吸蔵能力よりも大きい酸素吸蔵能力を有すると判定される触媒のうち前記排気通路の最も上流に介装された触媒の排気浄化の状態を表す値を取得する排気浄化状態取得手段と、前記取得された排気浄化の状態を表す値が所定の値となるように前記最も上流に配設された触媒に流入するガスの空燃比を制御する空燃比制御手段と、を備える。ここで、「前記最も上流に配設された触媒に流入するガスの空燃比を制御する」ことには、その触媒(最も上流に配設された触媒)、同触媒より上流の触媒、又は排気通路の最も上流に配設された触媒に流入するガスの空燃比を制御することを含む。
【0022】
これによれば、排気浄化の状態を表す値は、取得された酸素吸蔵能力を表す値に基づいて所定の酸素吸蔵能力よりも大きい酸素吸蔵能力を有すると判定される触媒のうち前記排気通路の最も上流に介装された触媒の排気浄化の状態を表す値となるから、同最も上流の触媒に流入するガスの空燃比の変動が同排気浄化の状態を表す値に直ちに現れることはない。従って、上述した空燃比のハンチングが回避され、その結果、未燃成分や窒素酸化物等の有害成分の排出量の増大を回避することができる。
【0034】
本発明による他の内燃機関の排気浄化装置は、内燃機関の排気通路に介装された単数又は複数の触媒からなる触媒装置と、前記触媒装置を同触媒装置に流入するガスの流れ方向に沿って複数のブロックに仮想的に分割したときの各ブロックの最大酸素吸蔵量を取得する取得手段と、値nを自然数とするとき前記触媒装置の最上流のブロックである第1番目のブロックから第n番目のブロックまでのブロックにより構成される第n触媒装置上流部の最大酸素吸蔵量積算値を同第1番目のブロックから同第n番目のブロックまでの各ブロックの前記最大酸素吸蔵量を積算することにより求めるとともに、その求めた第n触媒装置上流部の最大酸素吸蔵量積算値が所定の閾値より大きいか否かを判定するステップを、値nを1から次第に増大させながら繰り返し実行する手段と、前記最大酸素吸蔵量積算値が所定の閾値より大きいと最初に判定されたときの値nが値kであるとき、第1番目のブロックから第k番目のブロックまでのブロックにより構成される第k触媒装置上流部の排気浄化の状態を表す値又は同第k番目のブロックの排気浄化の状態を表す値を取得する排気浄化状態取得手段と、前記取得された排気浄化の状態を表す値が所定の値となるように前記触媒装置に流入するガスの空燃比を制御する空燃比制御手段と、を備える。
【0035】
この排気浄化装置は、単数又は複数の触媒からなる触媒装置をガス(排ガス)の流れ方向に沿って複数のブロックに仮想的に分割したときの各ブロックの最大酸素吸蔵量を求め、最上流のブロック(即ち、第1番目のブロック)から第n番目(nは自然数)のブロックまでの各ブロックの最大酸素吸蔵量を積算する。そして、nを1から増大して行き、その最大酸素吸蔵量の積算値が所定の閾値より初めて大きくなったときのnの値をkとすると、k個のブロック(つまり、所定の閾値以上の最大酸素吸蔵量を確保できるブロック群)からなる触媒装置上流部(第k触媒装置上流部)の排気浄化の状態(例えば、酸素吸蔵量)や同第k番目のブロックの排気浄化の状態を表す値(例えば、同第k番目のブロックから流出する特定成分の量に応じた値)を制御対象とし、同制御対象が所定の値となるように前記触媒装置に流入するガスの空燃比を制御する。
【0036】
この結果、常に所定の酸素吸蔵能力(所定の閾値以上の最大酸素吸蔵量)を有している触媒装置上流部(第k触媒装置上流部)を介して空燃比のフィードバック制御が行われることとなるので、前記排気浄化の状態をハンチングを回避しながら所望の値に安定して制御することが可能となり、その結果、排ガスを効果的に浄化することができる。なお、前記所定の値は、値kに応じて変化する値(例えば、前記取得される排気浄化の状態が酸素吸蔵量である場合、第1番目〜第k番目のブロックで構成される触媒装置上流部の最大酸素吸蔵量の略半分程度の値)であってもよく、一定値(例えば、前記取得される排気浄化の状態が第k番目のブロックから流出する特定成分の量に応じた値である場合「0」又は略「0」)であってもよい。
【0037】
この場合、排気浄化の状態を表す値を取得する排気浄化状態取得手段は、前記第k触媒装置上流部(第1番目から第k番目のブロックまでからなる触媒装置上流部)の酸素吸蔵量、又は、前記第k触媒装置上流部の第k番目のブロックから流出する特定成分の量に応じた値を前記排気浄化の状態を表す値として取得するように構成されることが好適である。
【0038】
これによれば、前記第k触媒装置上流部の酸素吸蔵量や同第k触媒装置上流部の最下流のブロックである第k番目のブロックから流出する特定成分の量を空燃比のハンチングを招くことなく安定して所望の値に制御できるので、効果的に排ガスを浄化することができる。
【0039】
【発明の実施の形態】
<第1実施形態>
以下、本発明による内燃機関の排気浄化装置の各実施形態について図面を参照しながら説明する。図1は、本発明の第1実施形態に係る内燃機関の排気浄化装置を火花点火式多気筒(4気筒)内燃機関10に適用したシステムの概略構成を示している。なお、図1においては、一つの気筒の断面が示されているが、他の気筒も同様の構成を備えている。
【0040】
この内燃機関10は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部20と、シリンダブロック部20の上に固定されるシリンダヘッド部30と、シリンダブロック部20にガソリン混合気を供給するための吸気系統40と、シリンダブロック部20からの排ガスを外部に放出するための排気系統50とを含んでいる。
【0041】
シリンダブロック部20は、シリンダ21、ピストン22、コンロッド23、及びクランク軸24を含んでいる。ピストン22はシリンダ21内を往復動し、ピストン22の往復動がコンロッド23を介してクランク軸24に伝達され、これにより同クランク軸24が回転するようになっている。シリンダ21とピストン22のヘッドは、シリンダヘッド部30とともに燃焼室25を形成している。
【0042】
シリンダヘッド部30は、燃焼室25に連通した吸気ポート31、吸気ポート31を開閉する吸気弁32、吸気弁32を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置33、可変吸気タイミング装置33のアクチュエータ33a、燃焼室25に連通した排気ポート34、排気ポート34を開閉する排気弁35、排気弁35を駆動するエキゾーストカムシャフト36、点火プラグ37、点火プラグ37に与える高電圧を発生するイグニッションコイルを含むイグナイタ38、及び燃料を吸気ポート31内に噴射するインジェクタ(燃料噴射手段)39を備えている。
【0043】
吸気系統40は、吸気ポート31に連通し同吸気ポート31とともに吸気通路を形成するインテークマニホールドを含む吸気管41、吸気管41の端部に設けられたエアフィルタ42、吸気管41内にあって吸気通路の開口断面積を可変とするスロットル弁43、及びスロットル弁駆動手段を構成するDCモータからなるスロットル弁アクチュエータ43aを備えている。
【0044】
排気系統50は、排気ポート34に連通したエキゾーストマニホールド51、エキゾーストマニホールド51に接続されたエキゾーストパイプ(排気管)52、エキゾーストパイプ52に配設(介装)された第1触媒(最上流三元触媒、又はスタート・コンバータとも云う。)53、第1触媒53の下流のエキゾーストパイプ52に配設(介装)された第2触媒(中間三元触媒、又は、車両のフロア下方に配設されるため、第1アンダ・フロア・コンバータとも云う。)54、及び第2触媒54の下流のエキゾーストパイプ52に配設(介装)された第3触媒(最下流三元触媒、又は、第2アンダ・フロア・コンバータとも云う。)55を備えている。排気ポート34、エキゾーストマニホールド51、及びエキゾーストパイプ52は、排気通路を構成している。
【0045】
一方、このシステムは、熱線式エアフローメータ61、スロットルポジションセンサ62、カムポジションセンサ63、クランクポジションセンサ64、水温センサ65、第1触媒53の上流の排気通路に配設された空燃比センサ66(以下、「最上流空燃比センサ66」と称呼する。)、第1触媒53の下流であって第2触媒54の上流の排気通路に配設された空燃比センサ67(以下、「第1触媒下流空燃比センサ67」と称呼する。)、第2触媒54の下流であって第3触媒の上流の排気通路に配設された空燃比センサ68(以下、「第2触媒下流空燃比センサ68」と称呼する。)、第3触媒55の下流の排気通路に配設された空燃比センサ69(以下、「第3触媒下流空燃比センサ69」と称呼する。)、及びアクセル開度センサ82を備えている。
【0046】
熱線式エアフローメータ61は、吸気管41内を流れる吸入空気の質量流量を検出し、同質量流量Gaを表す信号を出力するようになっている。スロットルポジションセンサ62は、スロットル弁43の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ63は、インテークカムシャフトが90°回転する毎に(即ち、クランク軸24が180°回転する毎に)一つのパルスを有する信号(G2信号)を発生するようになっている。クランクポジションセンサ64は、クランク軸24が10°回転する毎に幅狭のパルスを有するとともに同クランク軸24が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。水温センサ65は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【0047】
最上流空燃比センサ66は、限界電流式の酸素濃度センサであって、図2に示したように、空燃比A/Fに応じた電圧vabyfsを出力するようになっている。図2から明らかなように、最上流空燃比センサ66によれば、広範囲にわたる空燃比A/Fを精度良く検出することができる。第1〜第3触媒下流空燃比センサ67〜69は、濃淡電池型の酸素濃度センサであって、図3に示したように、理論空燃比において急変する電圧voxs1,voxs2,voxs3をそれぞれ出力するようになっている。より具体的に述べると、第1〜第3触媒下流空燃比センサ67〜69のそれぞれは、排ガスの空燃比が理論空燃比よりもリーンのとき略0.1(V)、排ガスの空燃比が理論空燃比よりもリッチのとき略0.9(V)、及び排ガスの空燃比が理論空燃比のとき略0.5(V)の電圧を出力するようになっている。アクセル開度センサ82は、運転者によって操作されるアクセルペダル81の操作量を検出し、同アクセルペダル81の操作量Accpを表す信号を出力するようになっている。
【0048】
更に、このシステムは電気制御装置70を備えている。電気制御装置70は、互いにバスで接続されたCPU71、CPU71が実行するルーチン(プログラム)、テーブル(ルックアップテーブル、マップ)、及び定数等を予め記憶したROM72、CPU71が必要に応じてデータを一時的に格納するRAM73、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップRAM74、並びにADコンバータを含むインターフェース75等からなるマイクロコンピュータである。インターフェース75は、前記センサ61〜69,82と接続され、CPU71にセンサ61〜69,82からの信号を供給するとともに、同CPU71の指示に応じて可変吸気タイミング装置33のアクチュエータ33a、イグナイタ38、インジェクタ39、及びスロットル弁アクチュエータ43aに駆動信号を送出するようになっている。
【0049】
(空燃比フィードバック制御の概要)
次に、上記のように構成された内燃機関の排気浄化装置が行う空燃比フィードバック制御の概要について説明する。
【0050】
三元触媒である第1触媒53(第2触媒54及び第3触媒55も同様である。)は、上述した酸素吸蔵機能を有しているから、同第1触媒53が連続的に流入する多量のHC,COを効率的に浄化するためには、同第1触媒53が酸素を多量に貯蔵していなければならず、逆に連続的に流入する多量のNOxを効率的に浄化するためには、同第1触媒53が酸素を十分に貯蔵し得なければならないことになる。以上のことから明らかなように、第1触媒53の浄化能力は、同第1触媒53が貯蔵し得る最大の酸素量(最大酸素吸蔵量)、即ち、酸素吸蔵能力に依存する。
【0051】
一方、第1触媒53のような三元触媒は燃料中に含まれる鉛や硫黄等による被毒、或いは触媒に加わる熱により劣化し、これに伴い最大酸素吸蔵量が次第に低下してくる。このように最大酸素吸蔵量が低下した場合であっても、有害ガス成分の排出量を増大させないようにするには、第1触媒53から排出されるガスの空燃比の平均値(第1触媒53に流入するガスの中心空燃比)が、理論空燃比に極めて近い状態となるように制御することが好適であると考えらえる。
【0052】
そこで、本第1実施形態の排気浄化装置は、第1触媒53に流入する排ガスの中心空燃比が理論空燃比近傍の値となるように、第1〜第3触媒下流空燃比センサ67〜69の出力voxs1,vosx2,voxs3のうちの一つを後述するように制御用空燃比センサ出力voxsとして選択し、その選択された空燃比センサ出力voxsが理論空燃比に略相当する目標出力(目標値)voxrefとなるように機関に供給される混合気の空燃比をフィードバック制御する。
【0053】
より具体的には、選択された空燃比センサ出力voxsが理論空燃比よりリーンな空燃比を表す値となると、同選択された空燃比センサ出力voxsと理論空燃比に略相当する目標出力voxrefとの偏差を比例・積分処理(PI処理)してサブフィードバック制御量vafsfbを求め、同サブフィードバック制御量vafsfb分だけ最上流空燃比センサ66の出力vabyfsを補正し、これにより、機関に供給される混合気の空燃比が、同最上流空燃比センサ66の検出空燃比よりも見かけ上リーン側であるように設定し、その補正した見かけ上の空燃比が目標空燃比(機関の目標空燃比、ここでは理論空燃比)となるように同混合気の空燃比をフィードバック制御する。
【0054】
同様に、選択された空燃比センサ出力voxsが理論空燃比よりリッチの空燃比を表す値となると、選択された空燃比センサ出力voxsと理論空燃比に略相当する目標出力voxrefとの偏差を比例・積分処理(PI処理)してサブフィードバック制御量vafsfbを求め、同サブフィードバック制御量vafsfb分だけ最上流空燃比センサ66の出力vabyfsを補正し、これにより、機関に供給される混合気の空燃比が、同最上流空燃比センサ66の検出空燃比よりも見かけ上リッチ側であるように設定し、その補正した見かけ上の空燃比が目標空燃比(機関の目標空燃比、ここでは理論空燃比)となるように同混合気の空燃比をフィードバック制御する。以上により、第1触媒53に流入する排ガスの中心空燃比が目標空燃比(略理論空燃比)と一致せしめられる。
【0055】
ところで、第1触媒53は、上述した酸素吸蔵機能を有しているから、第1触媒53の上流の排ガスの空燃比の変動が第1触媒下流空燃比センサ出力voxs1に直ちに現れることはない。換言すると、第1触媒下流空燃比センサ出力voxs1は、第1触媒53に流入した排ガスの空燃比の時間的平均値に応じた値となる。従って、第1触媒下流空燃比センサ出力voxs1が所定の目標出力(例えば、理論空燃比相当の出力)に一致するように機関に供給される混合気の空燃比を制御することで、第1触媒53に流入するガスの中心空燃比を所望の値に制御することが可能となる。
【0056】
しかしながら、第1触媒53が劣化したり、或いは機関始動直後であって同第1触媒53の温度が低い等の理由により、同第1触媒53の最大酸素吸蔵量が所定の閾値より小さい場合、同第1触媒53の上流の排ガスの空燃比の変動が第1触媒下流空燃比センサ出力voxs1に直ちに現れるようになり、このような場合にも上述した空燃比フィードバック制御を行うと、同第1触媒53の上流の排ガスの空燃比がハンチングし、その結果、同第1触媒53に流入する排ガスの中心空燃比が理論空燃比から偏移する場合がある。換言すると、第1触媒下流空燃比センサ出力voxs1に基づいて決定されるサブフィードバック制御量vafsfbを用いたサブフィードバック制御は、第1触媒53の酸素吸蔵能力を示す最大酸素吸蔵量が所定の閾値より大きい場合にのみ成立する制御である。
【0057】
そこで、本排気浄化装置は、第1触媒53の最大酸素吸蔵量Cmax1が所定の閾値Cthより大きいときは第1触媒下流空燃比センサ67の出力voxs1を、第1触媒53の最大酸素吸蔵量Cmax1が所定の閾値Cthより小さく且つ第1触媒53の最大酸素吸蔵量Cmax1と第2触媒54の最大酸素吸蔵量Cmax2の合計値(Cmax1+Cmax2)が同所定の閾値Cthより大きいときは第2触媒下流空燃比センサ68の出力voxs2を、また、第1触媒53の最大酸素吸蔵量Cmax1、及び第1触媒53の最大酸素吸蔵量Cmax1と第2触媒54の最大酸素吸蔵量Cmax2の合計値(Cmax1+Cmax2)がそれぞれ同所定の閾値Cthより小さく、且つ、第1触媒〜第3触媒の各最大酸素吸蔵量の合計値(Cmax1+Cmax2+Cmax3)が同所定の閾値Cthより大きいときは、第3触媒下流空燃比センサ69の出力voxs3を空燃比センサ出力voxsとして選択し、選択された制御用空燃比センサ出力voxsに基づいてサブフィードバック制御量vafsfbを求めて機関に供給される混合気の空燃比を制御する。
【0058】
この結果、制御用空燃比センサとして選択された空燃比センサの上流に存在する単数又は複数の触媒からなる触媒装置は所定の閾値Cthより大きい最大酸素吸蔵量(酸素吸蔵能力)を備えているから、同制御用空燃比センサの出力voxsに同触媒装置の上流のガスの空燃比の変動が直ちに現れることはない。換言すると、同制御用空燃比センサの出力voxsは同触媒装置に流入するガスの中心空燃比に応じた値を示す。従って、制御用空燃比センサの出力voxsに基づく空燃比フィードバック制御により、触媒装置に流入するガスの空燃比がハンチングすることなく所定の目標空燃比に安定して制御されるので、未燃HC,COやNOxの有害成分の排出量を低減することができる。
【0059】
(第1実施形態の実際の作動)
次に、第1実施形態に係る排気浄化装置の実際の作動について説明する。
<空燃比のフィードバック制御>
CPU71は、図4にフローチャートにより示した最終燃料噴射量Fiの計算及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が前記所定クランク角度になると、CPU71はステップ400から処理を開始してステップ405に進み、エアフローメータ61により計測された吸入空気流量Gaとエンジン回転速度NEとに基いて、機関に供給される混合気の空燃比を理論空燃比とするための基本燃料噴射量Fbaseを求める。具体的には、エアフローメータ61が計測している吸入空気流量Gaに一次遅れ処理を施した値をエンジン回転速度NEで除することで筒内吸入空気量Mcを算出し、これを目標空燃比である理論空燃比で除する関数fにより基本燃料噴射量Fbaseを求める。
【0060】
次いで、CPU71はステップ410に進み、基本燃料噴射量Fbaseに係数Kを乗じた値に後述する空燃比フィードバック補正量(メインフィードバック制御量)DFiを加えた値を最終燃料噴射量Fiとして設定する。この係数Kの値は、通常は「1.00」であり、後述するように、各最大酸素吸蔵量Cmax1〜Cmax3を求めるために強制的に空燃比を変更するとき、「1.00」以外の所定値に設定される。
【0061】
次いで、CPU71はステップ415に進み、同ステップ415にて同最終燃料噴射量Fiの燃料を噴射するための指示をインジェクタ39に対して行う。その後、CPU71はステップ420に進み、その時点の燃料噴射量合計量mfrに最終燃料噴射量Fiを加えた値を新たな燃料噴射量積算値mfrに設定する。この燃料噴射量積算値mfrは、後述する酸素吸蔵量を算出する際に用いられる。その後、CPU71はステップ495に進み、本ルーチンを一旦終了する。以上により、フィードバック補正された最終燃料噴射量Fiの燃料が吸気行程を迎える気筒に対して噴射される。なお、その時点の燃料噴射量合計量mfr1に最終燃料噴射量Fiを加えた値を新たな燃料噴射量積算値mfr1に設定するステップ425は、後述する第2実施形態等の他の実施形態において必要となるステップであり、第1実施形態においては使用しない。
【0062】
次に、上記メインフィードバック制御量DFiの算出について説明すると、CPU71は図5にフローチャートにより示したルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、CPU71はステップ500から処理を開始し、ステップ505に進んで空燃比フィードバック制御条件(メインフィードバック条件)が成立しているか否かを判定する。この空燃比フィードバック制御条件は、例えば、機関の冷却水温THWが第1所定温度以上であり、機関の一回転当りの吸入空気量(負荷、筒内吸入空気量Mc)が所定値以下であり、最上流空燃比センサ66が正常(活性状態であることを含む。)であり、且つ、後述する空燃比強制設定制御実行中フラグXHANの値が「0」のときに成立する。なお、空燃比強制設定制御実行中フラグXHANは、その値が「1」のとき最大酸素吸蔵量Cmax1〜Cmax3の算出のために強制的に空燃比を変更する空燃比制御(アクティブ制御)を実行していることを示し、その値が「0」のとき同最大酸素吸蔵量Cmax1〜Cmax3の算出のための空燃比制御を実行していないことを示す。
【0063】
いま、空燃比フィードバック制御条件が成立しているものとして説明を続けると、CPU71はステップ505にて「Yes」と判定してステップ510に進み、現時点の最上流空燃比センサ66の出力vabyfsと後述するサブフィードバック制御量vafsfbとの和(vabyfs+vafsfb)を図2に示したマップに基いて変換することにより、現時点における第1触媒53のメインフィードバック制御用空燃比abyfsを求める。このメインフィードバック制御用空燃比abyfsが、最上流空燃比センサ66の出力をサブフィードバック制御量vafsfbにより補正した第1触媒53の上流における上記「見かけ上の空燃比」である。
【0064】
次に、CPU71はステップ515に進み、現時点からNストローク(N回の吸気行程)前に吸気行程を迎えた気筒の吸入空気量である筒内吸入空気量Mc(k−N)を前記求めたメインフィードバック制御用空燃比abyfsで除することにより、現時点からNストローク前の筒内燃料供給量Fc(k−N)を求める。値Nは、内燃機関の排気量、燃焼室25から最上流空燃比センサ66までの距離等により異なる値である。
【0065】
このように、現時点からNストローク前の筒内燃料供給量Fc(k−N)を求めるために、現時点からNストローク前の筒内吸入空気量Mc(k−N)をメインフィードバック制御用空燃比abyfsで除するのは、燃焼室25内で燃焼された混合気が最上流空燃比センサ66に到達するまでには、Nストロークに相当する時間を要しているからである。なお、筒内吸入空気量Mcは、各気筒の吸気行程に対応されながらRAM73内に記憶されるようになっている。
【0066】
次いで、CPU71はステップ520に進み、現時点からNストローク前の筒内吸入空気量Mc(k−N)を現時点からNストローク前の時点における目標空燃比abyfr(k−N)(この例では、理論空燃比)で除することにより、現時点からNストローク前の目標筒内燃料供給量Fcr(k−N)を求める。そして、CPU71はステップ525に進んで目標筒内燃料供給量Fcr(k−N)から筒内燃料供給量Fc(k−N)を減じた値を筒内燃料供給量偏差DFcとして設定する。つまり、筒内燃料供給量偏差DFcは、Nストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。次に、CPU71はステップ530に進み、下記数1に基いてメインフィードバック制御量DFiを求める。
【0067】
【数1】
DFi=(Gp・DFc+Gi・SDFc)・KFB
【0068】
上記数1において、Gpは予め設定された比例ゲイン(比例定数)、Giは予め設定された積分ゲイン(積分定数)である。なお、数1の係数KFBはエンジン回転速度NE、及び筒内吸入空気量Mc等により可変とすることが好適であるが、ここでは「1」としている。また、値SDFcは筒内燃料供給量偏差DFcの積分値であり、次のステップ535にて更新される。即ち、CPU71は、ステップ535にてその時点における筒内燃料供給量偏差DFcの積分値SDFcに上記ステップ525にて求めた筒内燃料供給量偏差DFcを加えて、新たな筒内燃料供給量偏差の積分値SDFcを求め、ステップ595にて本ルーチンを一旦終了する。
【0069】
以上により、メインフィードバック制御量DFiが比例積分制御により求められ、このメインフィードバック制御量DFiが前述した図4のステップ410により燃料噴射量に反映されるので、Nストローク前の燃料供給量の過不足が補償され、内燃機関に供給される混合気の空燃比の平均値が目標空燃比abyfrと略一致せしめられるようにフィードバック制御される。
【0070】
一方、ステップ505の判定時において、空燃比フィードバック制御条件が不成立であると、CPU71は同ステップ505にて「No」と判定してステップ540に進み、メインフィードバック制御量DFiの値を「0」に設定し、その後ステップ595に進んで本ルーチンを一旦終了する。このように、空燃比フィードバック制御条件が不成立であるとき(空燃比強制設定制御実行中を含む)は、メインフィードバック制御量DFiを「0」として空燃比(基本燃料噴射量Fbase)の補正を行わない。
【0071】
次に、第1触媒〜第3触媒下流空燃比センサ67〜69のうちの何れか一つの空燃比センサ出力voxsに基く空燃比フィードバック制御(サブフィードバック制御)について説明する。このサブフィードバック制御により、サブフィードバック制御量vafsfbが算出される。
【0072】
CPU71は、サブフィードバック制御量vafsfbを求めるために使用される制御用空燃比センサ出力voxsを選択する図6に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、CPU71はステップ600から処理を開始し、ステップ605にて第1触媒53の酸素吸蔵能力を示す同第1触媒53の最大酸素吸蔵量Cmax1が所定の閾値Cthより大きいか否かを判定し、同ステップ605にて「Yes」と判定したときはステップ610に進んで制御用空燃比センサ出力voxsに第1触媒下流空燃比センサ出力voxs1を設定し(制御用空燃比センサとして第1触媒下流空燃比センサ67を選択し)、ステップ695に進んで本ルーチンを一旦終了する。なお、上記最大酸素吸蔵量Cmax1,Cmax2,Cmax3は、後述するルーチンにより別途求められている。
【0073】
一方、CPU71は、ステップ605にて「No」と判定したとき、ステップ615に進んで第1触媒53の最大酸素吸蔵量Cmax1と第2触媒54の最大酸素吸蔵量Cmax2の合計値(Cmax1+Cmax2)が所定の閾値Cthより大きいか否かを判定し、同ステップ615にて「Yes」と判定したときはステップ620に進んで制御用空燃比センサ出力voxsに第2触媒下流空燃比センサ出力voxs2を設定し(制御用空燃比センサとして第2触媒下流空燃比センサ68を選択し)、ステップ695に進んで本ルーチンを一旦終了する。
【0074】
また、CPU71は、ステップ615にて「No」と判定したとき、ステップ625に進んで第1触媒〜第3触媒の各最大酸素吸蔵量の合計値(Cmax1+Cmax2+Cmax3)が同所定の閾値Cthより大きいか否かを判定し、同ステップ625にて「Yes」と判定したときはステップ630に進んで制御用空燃比センサ出力voxsに第3触媒下流空燃比センサ出力voxs3を設定し(制御用空燃比センサとして第3触媒下流空燃比センサ69を選択し)、ステップ695に進んで本ルーチンを一旦終了する。
【0075】
更に、CPU71は、ステップ625にて「No」と判定したとき、ステップ635に進み、制御用空燃比センサ出力voxsにサブフィードバック制御目標出力voxrefを設定する。サブフィードバック制御は、上述したように、空燃比センサ出力voxsと目標出力voxrefとの偏差をPI制御により小さくする制御であるあから、ステップ635の処理により、サブフィードバック制御は事実上停止された状態となる。
【0076】
また、CPU71は、サブフィードバック制御量vafsfbを求めるために、図7に示したルーチンを図6に示したルーチンの実行時間間隔と同じ所定時間の経過毎に実行している。従って、所定のタイミングになると、CPU71はステップ700から処理を開始し、ステップ705に進んでサブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件は、例えば、前述したステップ505での空燃比フィードバック制御条件に加え、機関の冷却水温THWが前記第1所定温度よりも高い第2所定温度以上のとき、及び第1〜第3触媒下流空燃比センサ67〜69が正常である(活性状態であることを含む。)ときに成立する。
【0077】
いま、サブフィードバック制御条件が成立しているものとして説明を続けると、CPU71はステップ705にて「Yes」と判定してステップ710に進み、空燃比センサの目標出力voxrefから上記選択された制御用空燃比センサ出力voxsを減じることにより、出力偏差量Dvoxsを求める。この目標出力voxrefは、第1触媒53の浄化効率が良好(最良)となるように定められ、ここでは、理論空燃比に対応した一定値に設定されている。なお、この目標出力voxrefは選択されている制御用センサに応じて可変としてもよい。
【0078】
次いで、CPU71はステップ715に進み、下記数2に基いてサブフィードバック制御量vafsfbを求める。数2における比例ゲインKp、及び積分ゲインKiは固定値であってもよく、選択されている制御用センサに応じて可変(例えば、下流の空燃比センサが選択されるにしたがって大きくなる値)としてもよい。これは、第1触媒53の上流位置から選択された空燃比センサまでの排気通路長さが異なること等の理由から、第1触媒53の上流の空燃比の変動が選択された空燃比センサの出力voxsに現れるまでの制御の無駄時間が異なってくるからである。
【0079】
【数2】
vafsfb=Kp・Dvoxs+Ki・SDvoxs
【0080】
上記数2において、SDvoxsは、出力偏差量Dvoxsの積分値であって、次のステップ720にて更新される値である。即ち、CPU71は、ステップ720に進むと、その時点における出力偏差量の積分値SDvoxsに上記ステップ710にて求めた出力偏差量Dvoxsを加えて、新たな出力偏差量の積分値SDvoxsを求め、その後、ステップ795に進んで本ルーチンを一旦終了する。以上のようにして、サブフィードバック制御量vafsfbが求められる。
【0081】
一方、サブフィードバック制御条件が不成立であるとき、CPU71はステップ705にて「No」と判定してステップ725に進み、同ステップ725にてサブフィードバック制御量vafsfbを「0」に設定する。これにより、選択された制御用空燃比センサ出力voxsに基くサブフィードバック制御が停止される。
【0082】
(最大酸素吸蔵量Cmax1〜Cmax3算出のための最大酸素吸蔵量取得制御)
次に、最大酸素吸蔵量算出のために強制的に空燃比を変更する最大酸素吸蔵量取得制御について説明する。CPU71は図8〜図13のフローチャートにより示された各ルーチンを所定時間の経過毎に実行するようになっている。
【0083】
従って、所定のタイミングになると、CPU71は図8のステップ800から処理を開始し、ステップ805に進んで最大酸素吸蔵量取得制御実行中フラグXHANの値が「0」であるか否かを判定する。いま、最大酸素吸蔵量算出のための最大酸素吸蔵量取得制御を行っておらず、且つ、最大酸素吸蔵量取得制御開始条件が成立していないとして説明を続けると、最大酸素吸蔵量取得制御実行中フラグXHANの値は「0」となっている。従って、CPU71はステップ805にて「Yes」と判定してステップ810に進み、先に説明した図4のステップ410にて使用される係数Kの値を1.00に設定する。
【0084】
次いで、CPU71はステップ815にて最大酸素吸蔵量取得制御の開始条件が成立しているか否かを判定する。この最大酸素吸蔵量取得制御の開始条件は、冷却水温THWが所定温度以上であり、図示しない車速センサにより得られた車速が所定の高車速以上であり、スロットル弁開度TAの単位時間あたりの変化量が所定量以下である等の機関が定常運転されている条件が成立し、第1触媒〜第3触媒下流空燃比センサ出力voxs1,voxs2,voxs3の総べてが理論空燃比よりもリッチな空燃比に相当する出力を発生し、且つ、前回の最大酸素吸蔵量取得制御実行時点から所定時間が経過している場合等に成立する。現段階では、上述したように、最大酸素吸蔵量取得制御の開始条件は成立していないから、CPU71はステップ815にて「No」と判定してステップ895に進み、本ルーチンを一旦終了する。
【0085】
次に、現時点では最大酸素吸蔵量取得制御を行っていないが、最大酸素吸蔵量取得制御の開始条件が成立したものとして説明を続けると、この場合、CPU71はステップ805にて「Yes」と判定してステップ810に進み、同ステップ810にて係数Kの値を1.00に設定する。次いで、CPU71は、開始条件が成立しているので、ステップ815にて「Yes」と判定してステップ820に進み、同ステップ820にて最大酸素吸蔵量取得制御実行中フラグXHANの値を「1」に設定する。
【0086】
そして、CPU71はステップ825に進み、第1モードに移行するためにModeの値を「1」に設定するとともに、続くステップ830にて係数Kの値を0.98に設定し、ステップ895に進んで本ルーチンを一旦終了する。これにより、前述の空燃比フィードバック制御条件が成立しなくなるから、CPU71は図5のステップ505にて「No」と判定してステップ540に進むようになり、空燃比フィードバック補正量DFiの値は「0」に設定される。この結果、図4のステップ410の実行により、基本燃料噴射量Fbaseが0.98倍された値が最終燃料噴射量Fiとして算出され、この最終燃料噴射量Fiの燃料が噴射されるので、機関に供給される混合気の空燃比(従って、第1触媒53に流入するガスの空燃比)は理論空燃比よりもリーンな所定のリーン空燃比に制御される。
【0087】
以降、CPU71は図8のルーチンの処理をステップ800から繰り返し実行するが、最大酸素吸蔵量取得制御実行中フラグXHANの値が「1」となっていることから、ステップ805にて「No」と判定して直ちにステップ895に進み、本ルーチンを一旦終了するようになる。
【0088】
一方、CPU71は図9に示した第1モード制御ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングとなると、CPU71はステップ900から処理を開始してステップ905に進み、同ステップ905にてModeの値が「1」であるか否かを判定する。このとき、Modeの値が「1」でなければ、CPU71は直ちにステップ995に進んで本ルーチンを一旦終了する。以下、先の図8のステップ825の処理によりModeの値が「1」に変更された直後であるとして説明を続けると、この場合、CPU71はステップ905にて「Yes」と判定してステップ910に進み、第1触媒下流空燃比センサ出力voxs1、第2触媒下流空燃比センサ出力voxs2、及び第3触媒下流空燃比センサ出力voxs3の総べてが理論空燃比よりもリーンな空燃比に相当する出力(酸素が過剰に存在する場合の出力)となったか否かを判定する。
【0089】
現時点では、機関に供給される混合気の空燃比を所定のリーン空燃比に変更した直後であるから、第1触媒下流空燃比センサ出力voxs1、第2触媒下流空燃比センサ出力voxs2、及び第3触媒下流空燃比センサ出力voxs3の総べてが理論空燃比よりもリーンな空燃比に相当する出力とはなっていないので、CPU71はステップ910にて「No」と判定し、ステップ995にて本ルーチンを一旦終了する。
【0090】
以降、CPU71は図9のステップ900〜910を繰り返し実行する。また、空燃比は所定のリーン空燃比に維持されているから、時間経過に伴って第1触媒53,第2触媒54,及び第3触媒55の順に各酸素吸蔵量が各触媒の最大酸素吸蔵量に到達する。従って、これに応じて第1触媒下流空燃比センサ出力voxs1、第2触媒下流空燃比センサ出力voxs2、及び第3触媒下流空燃比センサ出力voxs3は、順に理論空燃比よりもリーンな空燃比に相当する出力に変化する。これにより、CPU71はステップ910に進んだとき、同ステップ910にて「Yes」と判定してステップ915に進み、同ステップ915にてModeの値を「2」に設定するとともに、続くステップ920にて係数Kの値を1.02に設定し、その後ステップ995にて本ルーチンを一旦終了する。この結果、機関に供給される混合気の空燃比が理論空燃比よりリッチな所定のリッチ空燃比に制御される。
【0091】
また、CPU71は図10にフローチャートにより示した第2モード制御ルーチンを所定時間の経過毎に繰り返し実行している。従って、CPU71は、所定のタイミングになると、ステップ1000から処理を開始し、ステップ1005にてModeの値が「2」であるか否かを判定し、Modeの値が「2」でなければステップ1005からステップ1095に進んで本ルーチンを一旦終了するように作動している。
【0092】
一方、先のステップ915の処理によりModeの値が「2」に変更されると、CPU71はステップ1005に進んだとき「Yes」と判定してステップ1010に進み、同ステップ1010にて第1触媒下流空燃比センサ67の出力voxs1が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化したか否かを判定する。この時点では、空燃比が前記所定のリッチ空燃比に変更された直後であるから、CPU71はステップ1010にて「No」と判定し、ステップ1095に進んで本ルーチンを一旦終了する。
【0093】
これ以降、機関に供給される混合気の空燃比は前記所定のリッチ空燃比に維持されるから、第1触媒53に貯蔵されている酸素が消費されて行き、所定の時間が経過すると同第1触媒53の酸素吸蔵量が「0」に至る。この結果、第1触媒53から未燃HC,COが流出し始めるので、第1触媒下流空燃比センサ67の出力voxs1が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化する。これにより、CPU71は、ステップ1010に進んだとき同ステップ1010にて「Yes」と判定してステップ1015に進み、同ステップ1015にてModeの値を「3」に変更し、ステップ1095にて本ルーチンを一旦終了する。
【0094】
同様に、CPU71は、所定時間の経過毎に繰り返し実行する図11にフローチャートにより示した第3モード制御ルーチンにおいて、ステップ1105にてModeの値が「3」であるか否かを判定し、Modeの値が「3」でなければステップ1105からステップ1195に進んで本ルーチンを一旦終了している。
【0095】
一方、先のステップ1015の処理によりModeの値が「3」に変更されると、CPU71はステップ1105に進んだとき「Yes」と判定してステップ1110に進み、同ステップ1110にて第2触媒下流空燃比センサ68の出力voxs2が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化したか否かを判定する。この時点では、第1触媒53から未燃HC,COが流出し始めた直後であり、第2触媒54からは未燃HC,COが流出してこないので、CPU71はステップ1110にて「No」と判定し、ステップ1195に進んで本ルーチンを一旦終了する。
【0096】
その後、機関に供給される混合気の空燃比は、引き続いて前記所定のリッチ空燃比に維持されるから、第2触媒54に貯蔵されている酸素が消費されて行き、所定の時間が経過すると同第2触媒54の酸素吸蔵量が「0」に至る。この結果、第2触媒54から未燃HC,COが流出し始めるので、第2触媒下流空燃比センサ68の出力voxs2が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化する。これにより、CPU71はステップ1110にて「Yes」と判定してステップ1115に進み、第4モードに移行すべくModeの値を「4」に設定し、ステップ1195に進む。
【0097】
同様に、CPU71は、所定時間の経過毎に繰り返し実行する図12にフローチャートにより示した第4モード制御ルーチンにおいて、ステップ1205にてModeの値が「4」であるか否かを判定し、Modeの値が「4」でなければステップ1205からステップ1295に進んで本ルーチンを一旦終了している。
【0098】
一方、先のステップ1115の処理によりModeの値が「4」に変更されると、CPU71はステップ1205に進んだとき「Yes」と判定してステップ1210に進み、同ステップ1210にて第3触媒下流空燃比センサ69の出力voxs3が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化したか否かを判定する。この時点では、第2触媒54から未燃HC,COが流出し始めた直後であり、第3触媒55から未燃HC,COは流出してこないので、CPU71はステップ1210にて「No」と判定し、ステップ1295に進んで本ルーチンを一旦終了する。
【0099】
その後、機関に供給される混合気の空燃比は、引き続いて前記所定のリッチ空燃比に維持されるから、第3触媒55に貯蔵されている酸素が消費されて行き、所定の時間が経過すると同第3触媒55の酸素吸蔵量が「0」に至る。この結果、第3触媒55から未燃HC,COが流出し始めるので、第3触媒下流空燃比センサ69の出力voxs3が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化する。これにより、CPU71はステップ1210からステップ1215に進み、Modeの値を「0」に再設定し、続くステップ1220にて最大酸素吸蔵量取得制御実行中フラグXHANの値を「0」に設定した後、ステップ1295に進んで本ルーチンを一旦終了する。
【0100】
係る状態となると、CPU71は図8のルーチンを実行する際、ステップ805にて「Yes」と判定してステップ810に進むので、係数Kの値が1.00に戻される。また、空燃比フィードバック制御条件が成立していれば、CPU71は図5のルーチンのステップ505及び図7のルーチンのステップ705にて「Yes」と判定するから、空燃比フィードバック制御(メインフィードバック制御及びサブフィードバック制御)が再開される。
【0101】
以上、説明したように、最大酸素吸蔵量取得制御の開始条件が成立すると、機関に供給される混合気の空燃比が所定のリーン空燃比、所定のリッチ空燃比の順に1回づつ強制的に制御される。
【0102】
次に、最大酸素吸蔵量取得のための酸素吸蔵量の算出における作動について説明する。CPU71は図13のフローチャートにより示されたルーチンを所定時間(演算周期tsample)の経過毎に実行するようになっている。従って、所定のタイミングになると、CPU71はステップ1300から処理を開始し、ステップ1305に進んで下記数3により酸素吸蔵量変化量ΔO2を求める。
【0103】
【数3】
ΔO2=0.23・mfr・(stoich − abyfsave)
【0104】
上記数3において、値「0.23」は大気中に含まれる酸素の重量割合である。mfrは所定時間tsample内の燃料噴射量Fiの合計量であり、stoichは理論空燃比(例えば、14.7)である。abyfsaveは所定時間tsampleにおいて最上流空燃比センサ66により検出された空燃比A/Fの平均値である。この数3に示したように、所定時間tsample内の噴射量の合計量mfrに、検出された空燃比A/Fの平均値の理論空燃比からの偏移(stoich − abyfsave)を乗じることで、同所定時間tsampleにおける空気の消費量(不足量)が求められる。この空気の消費量に酸素の重量割合を乗じることで同所定時間tsampleにおける酸素の消費量(酸素吸蔵量変化量ΔO2)が求められる。
【0105】
次いで、CPU71はステップ1310に進んでModeの値が「2」であるか否か(第2モードであるか否か)を判定し、Modeの値が「2」であれば同ステップ1310にて「Yes」と判定してステップ1315に進み、その時点の酸素吸蔵量OSA1に上記酸素吸蔵量変化量ΔO2を加えた値を新たな酸素吸蔵量OSA1として設定し、その後ステップ1340に進む。
【0106】
このような処置(ステップ1300〜1315)は、Modeの値が「2」である限り繰り返し実行される。この結果、第1触媒53の上流の空燃比が所定のリッチ空燃比とされる第2モード(Mode=2)において、第1触媒53の酸素吸蔵量OSA1が算出されて行く。第2モードにおいては、第1触媒53に貯蔵されている酸素が消費されて行くからである。なお、ステップ1310での判定において「No」と判定される場合、CPU71は同ステップ1310からステップ1320に直接進む。
【0107】
CPU71は、ステップ1320に進んだ場合、Modeの値が「3」であるか否か(第3モードであるか否か)を判定し、Modeの値が「3」であれば同ステップ1320にて「Yes」と判定してステップ1325に進み、その時点の酸素吸蔵量OSA2に上記酸素吸蔵量変化量ΔO2を加えた値を新たな酸素吸蔵量OSA2として設定し、その後ステップ1340に進む。
【0108】
このような処置(ステップ1300,1305,1310,1320,1325)は、Modeの値が「3」である限り繰り返し実行される。この結果、第1触媒53の上流の空燃比が所定のリッチ空燃比とされる第3モード(Mode=3)において、第2触媒54の酸素吸蔵量OSA2が算出されて行く。第3モードにおいては、第2触媒54に貯蔵されている酸素が消費されて行くからである。
【0109】
また、ステップ1320での判定において「No」と判定される場合、CPU71は同ステップ1320からステップ1330に進み、Modeの値が「4」であるか否か(第4モードであるか否か)を判定し、Modeの値が「4」であればステップ1335に進んでその時点の酸素吸蔵量OSA3に上記酸素吸蔵量変化量ΔO2を加えた値を新たな酸素吸蔵量OSA3として設定し、その後ステップ1340に進む。
【0110】
このような処置(ステップ1300,1305,1310,1320,1330,1335)は、Modeの値が「4」である限り繰り返し実行される。この結果、第1触媒53の上流の空燃比が所定のリッチ空燃比とされる第4モード(Mode=4)において、第3触媒55の酸素吸蔵量OSA3が算出されて行く。第4モードにおいては、第3触媒55に貯蔵されている酸素が消費されて行くからである。なお、ステップ1330での判定において「No」と判定される場合、CPU71は同ステップ1330からステップ1340に直接進む。
【0111】
そして、CPU71は、ステップ1340に進むと、燃料噴射量Fiの合計量mfrを「0」に設定し、その後ステップ1395に進んで本ルーチンを一旦終了する。
【0112】
次に、最大酸素吸蔵量算出における作動について説明する。CPU71は図14のフローチャートにより示されたルーチンを所定時間の経過毎に実行するようになっている。従って、所定のタイミングになると、CPU71は図14のステップ1400から処理を開始し、ステップ1405に進んで最大酸素吸蔵量取得制御実行中フラグXHANの値が「1」から「0」に変化したか否かを判定する。このとき、最大酸素吸蔵量取得制御実行中フラグXHANの値が「1」から「0」に変化していなければ、CPU71はステップ1405からステップ1495に直接進んで本ルーチンを一旦終了する。
【0113】
一方、先に説明した図12のステップ1220にて最大酸素吸蔵量取得制御実行中フラグXHANの値が「0」に変更された直後(即ち、第4モードが終了した直後)であると、CPU71はステップ1405に進んだとき、同ステップ1405にて「Yes」と判定してステップ1410に進み、その時点の酸素吸蔵量OSA1〜OSA3を、第1〜第3触媒53〜55の最大酸素吸蔵量Cmax1〜Cmax3としてそれぞれ格納する。次いで、CPU71は、ステップ1415に進んで酸素吸蔵量OSA1〜OSA3を総べて「0」にクリアし、ステップ1495に進んで本ルーチンを一旦終了する。このようにして、最大酸素吸蔵量Cmax1〜Cmax3が取得される。
【0114】
以上、説明したように、第1実施形態に係る排気浄化装置は、内燃機関の排気通路に直列に介装された複数の触媒(第1触媒53、第2触媒54、第3触媒55)と、前記複数の触媒のそれぞれの下流であって前記排気通路に配設された複数の空燃比センサ(第1触媒下流空燃比センサ67、第2触媒下流空燃比センサ68、第3触媒下流空燃比センサ69)とを備える。
【0115】
また、この排気浄化装置は、値nを自然数とするとき前記複数の触媒のうちの最上流の触媒である第1番目の触媒(第1触媒53)から第n番目の触媒までで構成される触媒装置(即ち、第1触媒53のみからなる触媒装置、第1触媒53と第2触媒54とからなる触媒装置、及び第1触媒〜第3触媒53〜55の3個の触媒からなる触媒装置)の酸素吸蔵能力を表す値(第1触媒53の最大酸素吸蔵量Cmax1、第1触媒53の最大酸素吸蔵量Cmax1と第2触媒54の最大酸素吸蔵量Cmax2の和Cmax1+Cmax2、第1触媒53,第2触媒54,及び第3触媒55の各最大酸素吸蔵量の和Cmax1+Cmax2+Cmax3)を取得する酸素吸蔵能力取得手段(図8〜図14に示したルーチン、及び図6のステップ605、615、及び625)を備える。
【0116】
更に、この排気浄化装置は、前記取得された酸素吸蔵能力を表す値に基づいて所定の酸素吸蔵能力よりも大きい酸素吸蔵能力を有すると判定される(最大酸素吸蔵量Cmax1、Cmax1+Cmax2、Cmax1+Cmax2+Cmax3の何れかが閾値Cthより大きい)前記触媒装置のうち前記値nが最も小さい触媒装置を構成する第n番目の触媒(排気通路の最上流に介装された触媒を第1番目の触媒としたとき、同第1番目の触媒から下流に向けて数えて第n番目の触媒)の下流(下流であって、第n+1番目の触媒が存在するときは同第n+1番目の触媒の上流の排気通路)に配設された前記複数の空燃比センサ67〜69のうちの一つの空燃比センサの出力が所定の目標出力となるように前記第1触媒53に流入するガスの空燃比(実際には機関に供給される混合気の空燃比である。以下、同じ。)を制御する空燃比制御手段(図6に示した制御用空燃比センサ(出力)決定・選択ルーチンと、図4、図5、及び図7に示したルーチンにより達成される空燃比のフィードバック制御ルーチン(メインフィードバック制御とサブフィードバック制御))とを備える。
【0117】
従って、係る排気浄化装置においては、空燃比のフィードバック制御に使用される空燃比センサの上流に存在する触媒装置が、同フィードバック制御の破綻を来さない程度に大きい酸素吸蔵能力(最大酸素吸蔵量)を備えていることになるから、空燃比のハンチングが回避され、その結果、未燃成分や窒素酸化物等の有害成分の排出量の増大を回避することができる。
【0118】
なお、図6に示したルーチンでは、酸素吸蔵能力を示す値である第1触媒53の最大酸素吸蔵量Cmax1、第1触媒53と第2触媒54の最大酸素吸蔵量の合計値(Cmax1+Cmax2)、及び第1触媒〜第3触媒53〜55の各最大酸素吸蔵量の合計値(Cmax1+Cmax2+Cmax3)に基づいて制御用空燃比センサ出力voxsを選択していたが、同酸素吸蔵能力を間接的に示す値(対象としている触媒又は触媒装置の最大酸素吸蔵量と一定の相関を有する値)である、車両の走行距離、各触媒の温度、及び吸入空気流量Ga等に基づいて制御用空燃比センサ出力voxsを選択してもよい。
【0119】
この場合、走行距離が第1走行距離より短い場合には第1触媒下流空燃比センサ出力voxs1を、同走行距離が第1走行距離より長く且つ同第1走行距離より長い第2走行距離より短い場合には第2触媒下流空燃比センサ出力voxs2を、同走行距離が第2走行距離より長い場合には第3触媒下流空燃比センサ出力voxs3を、制御用空燃比センサ出力voxsとして選択するように構成することが好適である。走行距離の増大に伴って各触媒が劣化し、その最大酸素吸蔵量が低下するからである。
【0120】
また、触媒温度により制御用空燃比センサ出力voxsを選択する場合、第1触媒53の温度(第1触媒温度)が第1の閾値温度より高い場合には第1触媒下流空燃比センサ出力voxs1を、同第1触媒温度が第1の閾値温度より低く同第1の閾値温度より低い第2の閾値温度より高い場合には第2触媒下流空燃比センサ出力voxs2を、同第1触媒温度が第2の閾値温度より低い場合には第3触媒下流空燃比センサ出力voxs3を、制御用空燃比センサ出力voxsとして選択するように構成することが好適である。第1触媒53の温度の低下(従って、第2触媒54及び第3触媒55の温度の低下)に伴って、各触媒の最大酸素吸蔵能力が低下するからである。
【0121】
また、吸入空気流量Gaにより制御用空燃比センサ出力voxsを選択する場合、吸入空気流量Gaが第1の閾値流量より小さい場合には第1触媒下流空燃比センサ出力voxs1を、同吸入空気流量Gaが第1の閾値流量より大きく同第1の閾値流量より大きい第2の閾値流量より小さい場合には第2触媒下流空燃比センサ出力voxs2を、同吸入空気流量Gaが第2の閾値流量より大きい場合には第3触媒下流空燃比センサ出力voxs3を、制御用空燃比センサ出力voxsとして選択するように構成することが好適である。吸入空気流量Gaの増大に伴って、各触媒が吸蔵し得る酸素量(即ち、最大酸素吸蔵能力である実質的な最大酸素吸蔵量)が低下するからである。
【0122】
<第1実施形態の変形例>
次に、上記第1実施形態の変形例に係る排気浄化装置について説明する。この変形例は、主として、第3触媒55及び第3触媒下流空燃比センサ69を備えていない点、及びCPU71が図6に示したルーチンに代えて制御用空燃比センサ出力voxsを選択するための図15にフローチャートにより示したルーチンを実行する点等において、上記第1実施形態と異なっている。従って、以下、係る相違点を中心として説明する。
【0123】
CPU71は、制御用空燃比センサ出力voxsを選択するにあたり、図15に示したルーチンを所定時間の経過毎に実行する。従って、所定のタイミングになると、CPU71はステップ1500から処理を開始し、ステップ1505に進んで第1触媒53の最大酸素吸蔵量Cmax1が所定の閾値Cthより大きいか否かを判定する。このとき、最大酸素吸蔵量Cmax1が所定の閾値Cthより大きいと、CPU71はステップ1505からステップ1510に進んで制御用空燃比センサ出力voxsに第1触媒下流空燃比センサ出力voxs1を設定し、ステップ1595に進んで本ルーチンを一旦終了する。
【0124】
一方、最大酸素吸蔵量Cmax1が所定の閾値Cthより小さい(以下である)と、CPU71はステップ1505からステップ1515に進んで制御用空燃比センサ出力voxsに第2触媒下流空燃比センサ出力voxs2を設定し、ステップ1595に進んで本ルーチンを一旦終了する。
【0125】
このように、第2触媒下流空燃比センサ出力voxs2を制御用空燃比センサ出力voxsとして選択するのは、第1触媒53の酸素吸蔵能力(最大酸素吸蔵量Cmax1)が所定の能力(閾値Cth)より小さい場合、第1触媒53と第2触媒54とからなる触媒装置は、当然に第1触媒53よりも大きい酸素吸蔵能力を有しているからであり、また、一般に、触媒は排気通路の上流に配設されたものほど熱劣化や被毒による劣化が早く進行するから、第1触媒53の酸素吸蔵能力(最大酸素吸蔵量Cmax1)が劣化により低下した場合であっても、第2触媒54の酸素吸蔵能力(最大酸素吸蔵量Cmax2)は比較的大きな値に維持されていると考えられるからである。
【0126】
また、この変形例においては、図10のステップ1015を、最大酸素吸蔵量取得制御実行中フラグXHANの値を「0」に設定するステップ(ステップ1220と同一のステップ)に変更するとともに、図11及び図12に示したルーチンを省略し、且つ、図13のステップ1320〜1335を省略し、ステップ1310にて「No」と判定されたとき、ステップ1340に進むようにルーチンを構成しておくことが望ましい。更に、図9のステップ910は、第1触媒下流空燃比センサ出力voxs1がリーン空燃比に対応した出力を示した場合にステップ915へ、同リーン空燃比に対応した出力を示していない場合にステップ995に進むように修正しておく。また、図14のステップ1410及びステップ1415において、OSA2、OSA3、Cmax2、及びCmax3に関する処理を省略しておく。
【0127】
以上、説明したように、この第1実施形態の変形例に係る排気浄化装置は、排気通路に直列に介装された第1触媒53及び第2触媒54と、第1触媒53の酸素吸蔵能力を表す値である最大酸素吸蔵量Cmax1を取得する第1触媒酸素吸蔵能力取得手段(図8、図9、図10、図13、及び図14に示したルーチン)と、前記取得された第1触媒54の酸素吸蔵能力を表す値に基づいて同第1触媒54の酸素吸蔵能力が所定の酸素吸蔵能力より大きい(最大酸素吸蔵量Cmax1>閾値Cth)と判定したときは第1触媒下流空燃比センサ67の出力voxs1が所定の第1目標出力voxrefとなるように第1触媒53に流入するガスの空燃比を制御するとともに、第1触媒53の酸素吸蔵能力が同所定の酸素吸蔵能力より小さいと判定したときは第2触媒下流空燃比センサ54の出力voxs2が所定の第2目標出力voxref(この場合、第1目標出力と同一である。)となるように同第1触媒53に流入するガスの空燃比を制御する空燃比制御手段(図15に示した制御用空燃比センサ(出力)決定・選択ルーチンと、図4、図5、及び図7に示したルーチンにより達成される空燃比のフィードバック制御ルーチン)とを備える。
【0128】
従って、本排気浄化装置によれば、第1触媒53が所定の酸素吸蔵能力を有している場合には第1触媒(第1触媒からなる触媒装置)53の下流に配設された第1触媒下流空燃比センサ出力voxs1、そうでない場合には第1触媒53と第2触媒54とからなる触媒装置の下流に配設された第2触媒下流空燃比センサ出力voxs2に基づいて第1触媒53に流入するガスの空燃比が制御されるので、同触媒装置に流入する排ガスの中心空燃比を所望の値に安定して(即ち、ハンチングの発生等の制御の破綻を招くことなく)制御することができ、排ガスを効果的に浄化することができる。
【0129】
なお、上記変形例の図15において、ステップ1510とステップ1595との間に、目標出力voxrefに第1目標出力voxref1を設定するステップを追加するとともに、ステップ1515とステップ1595との間に、目標出力voxrefに第1目標出力voxref1とは異なる値を有する第2目標出力voxref2を設定するステップを追加するように構成してもよい。
【0130】
また、図15に示したルーチンでは、酸素吸蔵能力を示す値である第1触媒53の最大酸素吸蔵量Cmax1に基づいて制御用空燃比センサ出力voxsを選択していたが、同酸素吸蔵能力を間接的に示す車両の走行距離、第1触媒53の温度、吸入空気流量Gaに基づいて制御用空燃比センサ出力voxsを選択してもよい。
【0131】
この場合、走行距離が第1走行距離より短い場合には第1触媒下流空燃比センサ出力voxs1を、同走行距離が第1走行距離より長い場合には第2触媒下流空燃比センサ出力voxs2を制御用空燃比センサ出力voxsとして選択するように構成することが好適である。また、第1触媒53の温度が第1の閾値温度より高い場合には第1触媒下流空燃比センサ出力voxs1を、同第1触媒53の温度が第1の閾値温度より低い場合には第2触媒下流空燃比センサ出力voxs2を制御用空燃比センサ出力voxsとして選択するように構成することが好適である。更に、吸入空気流量Gaが第1の閾値流量より小さい場合には第1触媒下流空燃比センサ出力voxs1を、同吸入空気流量Gaが第1の閾値流量より大きい場合には第2触媒下流空燃比センサ出力voxs2を、制御用空燃比センサ出力voxsとして選択するように構成することが好適である。
【0132】
<第2実施形態>
次に、本発明による第2実施形態に係る排気浄化装置について説明する。この排気浄化装置は、触媒の排気浄化の状態を示す値である酸素吸蔵量を所定値に維持する制御を行う点、同制御される酸素吸蔵量を何れの触媒の酸素吸蔵量とするかを選択する点、及び同酸素吸蔵量を触媒モデルを用いて求める点において、主として第1実施形態に係る排気浄化装置と異なっている。従って、以下、係る相違点を中心に説明する。
【0133】
<触媒モデル>
先ず、本実施形態の排気浄化装置が採用する触媒モデルについて説明する。一般に、触媒にリーンな空燃比のガスが流入したときには、同触媒の上流側においてより多くの酸素が吸蔵され、同触媒にリッチな空燃比のガスが流入したときには、同触媒の上流側から吸蔵されている酸素が消費されていく。従って、触媒内に吸蔵されている酸素は同触媒の排ガスの流れ方向において均一に分布しているわけではない。よって、触媒内の酸素吸蔵量を正確に求めるためには、係る吸蔵酸素の分布を考慮した計算を行う必要がある。
【0134】
また、触媒の酸素吸蔵量は同触媒内において発生する上記酸素吸蔵・放出反応の程度に応じて変化する。この酸素吸蔵・放出反応の程度は、触媒に流入する排ガスに含まれる上記酸素吸蔵・放出反応に関係する特定成分の量に依存する。従って、触媒の酸素吸蔵量を正確に求めるためには、前記特定成分の量を考慮に入れた計算を行う必要がある。そこで、本装置は以下に説明する触媒モデルを第1〜第3触媒53〜55に適用することにより、同第1〜第3触媒53〜55の各酸素吸蔵量を算出する。
【0135】
この触媒モデルにおいては、図16に模式的に示したように、軸線に直交する断面形状が一定である柱状の触媒を同軸線に直交する平面によりN個の(複数の)領域(「ブロック」とも称呼する。)に仮想的に分割する。即ち、触媒モデルが対象とする触媒は排ガスの流れ方向に沿ってN個のブロックに分割されている。分割された各ブロックの軸線方向の長さはLである。なお、説明の便宜上、各ブロックには、排ガスの流れ方向に沿って上流側から順に図16に示すように番号が付されている。また、任意のi番目のブロックに関連する変数・記号等には、それらの末尾に(i)が付される。
【0136】
この触媒モデルにおいては、図17に示したように、分割されたブロックのうちのi番目のブロック(i)(特定領域)に注目し、同ブロック(i)における酸素吸蔵・放出反応に関係する特定成分のCPU71の演算周期あたりの収支を考える。このとき、触媒での酸化・還元反応である三元反応は瞬時かつ完全に終了するものと仮定し、その結果としての酸素の過不足に基く酸素の吸蔵・放出反応のみに着目するものとする。係る仮定(触媒モデル)は、現実的でありかつ計算精度のよいものである。なお、図17に示した排ガス相は排ガスが通過する空間であり、コート層は触媒機能を発生せしめる白金(Pt)等の貴金属からなる活性成分及び酸素吸蔵機能を発生せしめるセリア(CeO2)等の成分が担持された層である。
【0137】
特定成分は、例えば、酸素(分子)O2、窒素酸化物NOx、一酸化炭素CO、炭化水素HCから選択された成分であってもよいが、この触媒モデルでは、上記三元反応が瞬時かつ完全に終了するものと仮定した状態における排ガスに含まれる酸素(酸素分子及び窒素酸化物の酸素。本明細書では、酸素分子及び窒素酸化物の酸素を総称して「酸素」と称呼する。)(の過不足)を特定成分として選択している。この酸素の量である酸素量CgO2は、同酸素が過剰であるとき(即ち、排ガス中にO2及びNOxが過剰に存在する場合)に正の値となり、同酸素が不足しているとき(即ち、排ガス中に未燃HC,COが過剰に存在する場合)に負の値となるように計算される。
【0138】
また、注目するブロック(i)において、CPU71の演算周期あたり同ブロック(i)の排ガス相に流入する酸素量CgO2を流入酸素量CginO2(i)、同演算周期あたり同ブロック(i)の排ガス相から流出する酸素量CgO2を流出酸素量CgoutO2(i)と称呼し、同演算周期あたり同ブロック(i)のコート層に吸蔵され又は同コート層から放出される酸素量CgO2を酸素吸蔵量変化量δOSA(i)と称呼する。この酸素吸蔵量変化量δOSA(i)は、酸素がコート層に吸蔵されるときに正の値となり、酸素がコート層から放出されるときに負の値となるように計算される。また、現時点におけるブロック(i)のコート層における酸素吸蔵量を酸素吸蔵量OSA(i)と称呼し、現時点におけるブロック(i)のコート層における最大酸素吸蔵量を最大酸素吸蔵量Cmax(i)と称呼する。
【0139】
いま、図17に示すブロック(i)における酸素量CgO2の上記演算周期あたりの収支を考えると、同ブロック(i)の排ガス相に流入した流入酸素量CginO2(i)のうち酸素吸蔵量変化量δOSA(i)だけがコート層に吸蔵され、同流入酸素量CginO2(i)のうちコート層に吸蔵されなかった残りの酸素量CgO2が流出酸素量CgoutO2(i)となるから、流入酸素量CginO2(i),流出酸素量CgoutO2(i)及び酸素吸蔵量変化量δOSA(i)の間には下記数4に示した関係が成立する。この下記数4に示した関係が本触媒モデルの基本式である。
【0140】
【数4】
CgoutO2(i)=CginO2(i)-δOSA(i)
【0141】
次に、酸素吸蔵量変化量δOSA(i)について考える。流入酸素量CginO2(i)が正の値のときはブロック(i)の排ガス相に流入する排ガス中に酸素が過剰に存在していることを意味し、同排ガス中の酸素の一部はブロック(i)のコート層に吸蔵されるから酸素吸蔵量変化量δOSA(i)は正の値となる。このときの酸素吸蔵反応の量、即ち酸素吸蔵量変化量δOSA(i)は、流入酸素量CginO2(i)の値に比例するとともにブロック(i)の現時点での最大酸素吸蔵量Cmax(i)と現時点での酸素吸蔵量OSA(i)との差の値に比例すると考えられる。従って、流入酸素量CginO2(i)が正の値のとき、酸素吸蔵量変化量δOSA(i)は下記数5及び下記数6に基いて算出され得る。
【0142】
【数5】
δOSA(i)=H(i)・CginO2(i)
【0143】
【数6】
H(i)=h・((Cmax(i)-OSA(i))/Cmax(i)) (0 ≦ H(i) < 1)
【0144】
上記数5及び上記数6において、H(i)はブロック(i)における流入酸素量CginO2(i)に対する吸蔵される酸素量(δOSA(i))の割合を示す反応率である。hは反応速度定数であり本モデルでは正の一定値としているが触媒の温度に応じて変化する正の値(例えば、触媒の温度の増加に応じて単調増加する正の値)としてもよい。また、上記数6における現時点での最大酸素吸蔵量Cmax(i)と現時点での酸素吸蔵量OSA(i)との差の値(Cmax(i)-OSA(i))は、ブロック(i)における現時点での酸素吸蔵余裕量を示している。このように、本触媒モデルでは、少なくとも触媒内の酸素吸蔵量に基いて同触媒が内部に流入する排ガスから吸蔵する酸素量を算出する。
【0145】
一方、流入酸素量CginO2(i)が負の値のときはブロック(i)の排ガス相に流入する排ガス中の酸素が不足していることを意味し、同排ガスにはブロック(i)のコート層から放出された酸素が与えられるから酸素吸蔵量変化量δOSA(i)は負の値となる。このときの酸素放出反応の量、即ち酸素吸蔵量変化量δOSA(i)(の絶対値)は、流入酸素量CginO2(i)の値に比例するとともにブロック(i)の現時点での酸素吸蔵量OSA(i)の値に比例すると考えられる。従って、流入酸素量CginO2(i)が負の値のとき、酸素吸蔵量変化量δOSA(i)は上記数5と同一の関係を示す下記数7及び下記数8に基いて算出され得る。
【0146】
【数7】
δOSA(i)=H(i)・CginO2(i)
【0147】
【数8】
H(i)=h・(OSA(i)/Cmax(i)) (0 ≦ H(i) < 1)
【0148】
上記数7及び上記数8において、H(i)はブロック(i)における流入酸素量CginO2(i)(負の値)に対する放出される酸素量(δOSA(i),負の値)の割合を示す反応率である。hは反応速度定数であり上記数6にて使用されているものと同様である。また、上記数8における現時点での酸素吸蔵量OSA(i)の値は、ブロック(i)における現時点での酸素放出余裕量を示している。このように、本触媒モデルでは、少なくとも触媒内の酸素吸蔵量に基いて同触媒が内部に吸蔵している酸素から放出する酸素量を算出する。
【0149】
なお、上記数6及び上記数8にて使用するブロック(i)における最大酸素吸蔵量Cmax(i)は後述する手法により予め求めらる。また、上記数6及び上記数8にて使用するブロック(i)における現時点での酸素吸蔵量OSA(i)は、初期値が付与された時点から現時点までの酸素吸蔵量変化量δOSA(i)の積算値であるから下記数9に基いて算出することができる。
【0150】
【数9】
OSA(i)=ΣδOSA(i) (0 ≦ OSA(i) ≦ Cmax(i))
【0151】
次に、各ブロック間での境界条件について考えると、図16に示したように、互いに隣接する2つのブロックのうちの上流側のブロックの排ガス相の流出面と下流側のブロックの排ガス相の流入面は互いに連続しているから、図17に示したように、ブロック(i)に流入する流入酸素量CginO2(i)は、ブロック(i)に隣接する上流側のブロック(i-1)から流出する流出酸素量CgoutO2(i-1)と等しく、また、ブロック(i)から流出する流出酸素量CgoutO2(i)は、ブロック(i)に隣接する下流側のブロック(i+1)に流入する流入酸素量CginO2(i+1)と等しい。従って、下記数10に示した関係が成立する。換言すると、任意のi番目のブロック(i)の流出酸素量CgoutO2(i)が求まればブロック(i)に隣接する下流側のブロック(i+1)の流入酸素量CginO2(i+1)が求まる。
【0152】
【数10】
CginO2(i+1)=CgoutO2(i)
【0153】
以上のことから、最上流のブロック(1)における流入酸素量CginO2(1)が境界条件として付与されれば、上記数5又は上記数7によりブロック(1)における酸素吸蔵量変化量δOSA(1)が求まり、その結果、上記数9によりブロック(1)における酸素吸蔵量OSA(1)を更新できるとともに上記数4によりブロック(1)における流出酸素量CgoutO2(1)が求まる。ブロック(1)における流出酸素量CgoutO2(1)が求まれば、上記数10によりブロック(2)における流入酸素量CginO2(2)が求まり、その結果、上記数5又は上記数7によりブロック(2)における酸素吸蔵量変化量δOSA(2)が求まる。これにより、上記数9によりブロック(2)における酸素吸蔵量OSA(2)を更新できるとともに、上記数4によりブロック(2)における流出酸素量CgoutO2(2)が求まる。
【0154】
CPU71は、このような処理を所定の演算周期毎に繰り返し実行する。従って、CPU71の演算周期が経過する毎に最上流のブロック(1)における流入酸素量CginO2(1)が境界条件として付与されれば、上記数4〜上記数10より、最上流のブロック(1)から、順次、各ブロック(i) (i=1,2,・・・,N) における酸素吸蔵量OSA(i),流入酸素量CginO2(i),及び流出酸素量CgoutO2(i)を算出することができる。これにより、触媒内部の酸素吸蔵量の分布が精度よく計算される。また、各ブロックの酸素吸蔵量OSA(i) (i=1,2,・・・,N) を触媒全体について積算すれば、同触媒全体の酸素吸蔵量OSAallについても精度よく計算することができる。
【0155】
なお、以下に、任意のi番目のブロック(i)の流出酸素量CgoutO2(i)を求めるための一般式を求めておく。先ず、上記数4における「i」を「1」に書き換えると下記数11が導かれる。
【0156】
【数11】
CgoutO2(1)=CginO2(1)-δOSA(1)
【0157】
また、上記数4における「i」を「2」に書き換えて、これに上記数10及び上記数11の関係を適用すると、下記数12が導かれる。
【0158】
【数12】
【0159】
さらに、上記数4における「i」を「3」に書き換え、これに上記数10及び上記数12の関係を適用すると、下記数13が導かれる。
【0160】
【数13】
【0161】
このような手続きを繰り返すことにより、任意のi番目のブロック(i)の流出酸素量CgoutO2(i)を求めるための一般式である下記数14が導かれる。
【0162】
【数14】
CgoutO2(i)=CginO2(1)-δOSA(1)-δOSA(2)- ・・・ -δOSA(i-1)-δOSA(i)
(i=1,2,・・・,N)
【0163】
また、上記数4及び上記数5(又は上記数7)より下記数15が導かれるから、下記数15に上記数10の関係を適用し、その関係を一般的に記述すると、任意のi番目のブロック(i)の流出酸素量CgoutO2(i)を求めるための他の一般式である下記数16も容易に導くことができる。
【0164】
【数15】
CgoutO2(i)=CginO2(i)・(1-H(i))
【0165】
【数16】
【0166】
次に、上記数6及び数8において反応率H(i)を求める際に必要となるブロック(i)における最大酸素吸蔵量Cmax(i)の求め方について説明する。図18は、本触媒モデルにおいて、最大酸素吸蔵量Cmax(i)を求める考え方を示した最大酸素吸蔵量分布マップであり、斜線で示された部分の面積は触媒全体の最大酸素吸蔵量Cmaxallの値に対応している。
【0167】
このように、触媒の各ブロック毎の各最大酸素吸蔵量Cmax(n) (n=1,・・・,N)は、同各最大酸素吸蔵量Cmax(n)の総和が同触媒全体の最大酸素吸蔵量Cmaxallの値となるように設定されるとともに、上流側のブロックから下流側のブロックに推移するに従い、所定の勾配をもって線形的に増加するとして取り扱われる。これは、触媒の上流側部分の方が下流側部分に比して、内部に流入する排ガス中の鉛や硫黄等により被毒し易いので、同上流部分の最大酸素吸蔵量が同下流部分に比して低下し易くなるからである。
【0168】
具体的には、本装置は、触媒モデルが対象とする第1触媒53、第2触媒54、及び第3触媒55を、排ガスの流れ方向に沿ってN1個、N2個、及びN3個のブロックにそれぞれ仮想的に分割し、第1触媒53の各ブロック1(i)毎の各最大酸素吸蔵量Cmax1(i) (i=1,・・・,N1)、第2触媒54の各ブロック2(i)毎の各最大酸素吸蔵量Cmax2(i) (i=1,・・・,N2)、及び第3触媒55の各ブロック3(i)毎の各最大酸素吸蔵量Cmax3(i) (i=1,・・・,N3)を、図18に示した最大酸素吸蔵量分布マップに基いた下記数17〜下記数19に基いてそれぞれ算出する。
【0169】
【数17】
Cmax1(i)=A1・(i-(N1/2))+(Cmax1all/N1) (i=1,2,・・・,N1)
【0170】
【数18】
Cmax2(i)=A2・(i-(N2/2))+(Cmax2all/N2) (i=1,2,・・・,N2)
【0171】
【数19】
Cmax3(i)=A3・(i-(N3/2))+(Cmax3all/N3) (i=1,2,・・・,N3)
【0172】
上記数17〜上記数19において、A1,A2,A3はそれぞれ正の定数であって、各ブロック毎の最大酸素吸蔵量の分布の上記勾配を決定する値である。A1,A2,A3は同一の値であってもよいし、それぞれ異なる値であってもよい。また、各触媒の最大酸素吸蔵量Cmax1all,Cmaxall2,Cmaxall3は、上記第1実施形態において求めたCmax1,Cmax2,Cmax3とそれぞれ等しいので、ここではその求め方の説明を省略する。なお、触媒の各ブロック毎の各最大酸素吸蔵量は、上流側のブロックから下流側のブロックに推移するに従い増加するように設定されていればよく、例えば、非線形的に増加するように設定されていてもよい。このようにして、第1触媒53〜第3触媒55の各ブロック毎の最大酸素吸蔵量が算出される。
【0173】
(触媒モデルの適用)
次に、以上説明した触媒モデルを、図19に示したように、第1〜第3触媒53〜55にそれぞれ適用し、各種値を求める例について説明する。
【0174】
以下、第1触媒53のi番目のブロックをブロック1(i)と称呼し、同ブロック1(i)における流入酸素量を流入酸素量Cgin1O2(i),流出酸素量を流出酸素量Cgout1O2(i),酸素吸蔵量をOSA1(i),最大酸素吸蔵量をCmax1(i)とそれぞれ称呼する。各ブロックの酸素吸蔵量OSA1(i) (i=1,2,・・・,N1) を積算することにより得られる第1触媒53全体の酸素吸蔵量を酸素吸蔵量OSA1allと称呼し、各ブロックの最大酸素吸蔵量Cmax1(i) (i=1,2,・・・,N1) を積算した値である第1触媒53全体の最大酸素吸蔵量を最大酸素吸蔵量Cmax1allと称呼する。
【0175】
同様に、第2触媒54のi番目のブロックをブロック2(i)と称呼し、同ブロック2(i)における流入酸素量を流入酸素量Cgin2O2(i),流出酸素量を流出酸素量Cgout2O2(i),酸素吸蔵量をOSA2(i),最大酸素吸蔵量をCmax2(i)とそれぞれ称呼する。各ブロックの酸素吸蔵量OSA2(i) (i=1,2,・・・,N2) を積算することにより得られる第2触媒54全体の酸素吸蔵量を酸素吸蔵量OSA2allと称呼し、各ブロックの最大酸素吸蔵量Cmax2(i) (i=1,2,・・・,N2) を積算した値である第2触媒54全体の最大酸素吸蔵量を最大酸素吸蔵量Cmax2allと称呼する。
【0176】
同様に、第3触媒55のi番目のブロックをブロック3(i)と称呼し、同ブロック3(i)における流入酸素量を流入酸素量Cgin3O2(i),流出酸素量を流出酸素量Cgout3O2(i),酸素吸蔵量をOSA3(i),最大酸素吸蔵量をCmax3(i)とそれぞれ称呼する。各ブロックの酸素吸蔵量OSA3(i) (i=1,2,・・・,N3) を積算することにより得られる第3触媒55全体の酸素吸蔵量を酸素吸蔵量OSA3allと称呼し、各ブロックの最大酸素吸蔵量Cmax3(i) (i=1,2,・・・,N3) を積算した値である第3触媒55全体の最大酸素吸蔵量を最大酸素吸蔵量Cmax3allと称呼する。
【0177】
この触媒モデルにおいては、図19に示したように、第1、第2、第3触媒53,54,55の各々の各ブロックにおける酸素吸蔵量OSA1(i) (i=1,2,・・・,N1)、酸素吸蔵量OSA2(i) (i=1,2,・・・,N2)、及び酸素吸蔵量OSA3(i) (i=1,2,・・・,N3)の初期値を初期条件として付与するとともに、CPU71の演算周期が経過する毎に、第1触媒53の最上流のブロック1(1)における流入酸素量Cgin1O2(1)、第2触媒54の最上流のブロック2(1)における流入酸素量Cgin2O2(1)、及び第3触媒55の最上流のブロック3(1)における流入酸素量Cgin3O2(1)をそれぞれ境界条件として付与すれば、第1触媒53の各ブロック1(i) (i=1,2,・・・,N1) における酸素吸蔵量OSA1(i),流入酸素量Cgin1O2(i),及び流出酸素量Cgout1O2(i)、第2触媒54の各ブロック2(i) (i=1,2,・・・,N2) における酸素吸蔵量OSA2(i),流入酸素量Cgin2O2(i),及び流出酸素量Cgout2O2(i)、並びに第3触媒55の各ブロック3(i) (i=1,2,・・・,N3) における酸素吸蔵量OSA3(i),流入酸素量Cgin3O2(i),及び流出酸素量Cgout3O2(i)を全て算出することができる。これにより、第1触媒53全体の酸素吸蔵量OSA1all、第2触媒54全体の酸素吸蔵量OSA2all、及び第2触媒54全体の酸素吸蔵量OSA2allをそれぞれ取得・算出することができる。
【0178】
そこで、先ず、第1〜第3触媒53〜55の各々の各ブロックにおける酸素吸蔵量の初期値を付与する手法について説明すると、本装置は、第1触媒下流空燃比センサ67の出力voxs1が0.7(V)より大きい値を示したとき、即ち、第1触媒53の下流側であって第2触媒54の上流側のガスの空燃比が明白なリッチ空燃比となったときは、同第1触媒53内に酸素が全く存在せず未燃HC,COが浄化されない状態となったことを意味するから、第1触媒53の各ブロックにおける酸素吸蔵量OSA1(i) (i=1,2,・・・,N1) 及び第1触媒53全体の酸素吸蔵量OSA1allを全て「0」に設定する。
【0179】
同様に、本装置は、第2触媒下流空燃比センサ68の出力voxs2が0.7(V)より大きい値を示したとき、即ち、第2触媒54の下流側の空燃比が明白なリッチ空燃比となったときは、第2触媒54の各ブロックにおける酸素吸蔵量OSA2(i) (i=1,2,・・・,N2) 及び第2触媒54全体の酸素吸蔵量OSA2allを全て「0」に設定する。
【0180】
同様に、本装置は、第3触媒下流空燃比センサ69の出力voxs3が0.7(V)より大きい値を示したとき、即ち、第3触媒55の下流側の空燃比が明白なリッチ空燃比となったときは、第3触媒55の各ブロックにおける酸素吸蔵量OSA3(i) (i=1,2,・・・,N3) 及び第3触媒55全体の酸素吸蔵量OSA3allを全て「0」に設定する。このようにして、第1〜第3触媒53〜55の各々の各ブロックにおける酸素吸蔵量の初期値「0」が初期条件として付与される。
【0181】
次に、第1触媒53の最上流のブロック1(1)における流入酸素量Cgin1O2(1)を付与する方法について説明すると、本装置は、下記数20に基いてCPU71の演算周期毎の流入酸素量Cgin1O2(1)を算出する。上記数20は、上記数3と同様の式である。但し、mfr1は所定時間(演算周期tsample)内の燃料噴射量Fiの合計量である。
【0182】
【数20】
Cgin1O2(1)=0.23・mfr1・(abyfs − stoich)
【0183】
この流入酸素量Cgin1O2(1)は、上記数20から明らかなように、酸素が過剰であるとき(即ち、空燃比がリーンであってabyfs>stoichのとき)に正の値となり、酸素が不足しているとき(即ち、空燃比がリッチであってabyfs<stoichのとき)に負の値となるように計算される。
【0184】
次に、第2触媒54の最上流のブロック2(1)における流入酸素量Cgin2O2(1)を算出する手法について説明すると、第1触媒53の最下流のブロック1(N1)から流出する排ガスは、エキゾーストパイプ52を通過して外部とのガスの授受がないまま第2触媒54の最上流のブロック2(1)に流入する。従って、第1触媒53の最下流のブロック1(N1)から流出する流出酸素量Cgout1O2(N1)と第2触媒54の最上流のブロック2(1)における流入酸素量Cgin2O2(1)とは同一の値となる。よって、本装置は、CPU71の演算周期毎に算出する流出酸素量Cgout1O2(N1)の値を流入酸素量Cgin2O2(1)として使用する。このようにして、CPU71の演算周期毎に第2触媒54の最上流のブロック2(1)における流入酸素量Cgin2O2(1)が境界条件として付与される。
【0185】
第3触媒55の最上流のブロック3(1)における流入酸素量Cgin2O3(1)についても同様であり、本装置は、第2触媒54の最下流のブロック2(N2)から流出する流出酸素量Cgout2O2(N2)の値を流入酸素量Cgin3O2(1)として使用する。このようにして、CPU71の演算周期毎に第3触媒55の最上流のブロック3(1)における流入酸素量Cgin3O2(1)が境界条件として付与される。
【0186】
(第2実施形態の実際の作動)
次に、第2実施形態に係る排気浄化装置の実際の作動について説明する。この装置のCPU71は、第1実施形態のCPU71が実行する図6、図7、及び図14に示したルーチンに代えて、図20〜図22にフローチャートにより示したルーチンを実行するとともに、図23〜図26にフローチャートにより示したルーチンを追加的に実行する。以下、第2実施形態に特有のルーチンについて、順に説明する。
【0187】
CPU71は、サブフィードバック制御量vafsfbを求めるために使用される制御用酸素吸蔵量OSAall及び目標酸素吸蔵量OSAallrefを決定・選択する図20に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、CPU71はステップ2000から処理を開始し、ステップ2005にて第1触媒53の酸素吸蔵能力を示す同第1触媒53の最大酸素吸蔵量Cmax1allが所定の閾値Cth1より大きいか否かを判定し、同ステップ2005にて「Yes」と判定したときはステップ2010に進んで制御用酸素吸蔵量OSAallに第1触媒53の酸素吸蔵量OSA1allを設定するとともに、ステップ2015にて目標酸素吸蔵量OSAallrefに第1の値OSA1allrefを設定し、ステップ2095に進んで本ルーチンを一旦終了する。第1の値OSA1allrefは、第1触媒53の最大酸素吸蔵量Cmax1allの1/2に設定されている。
【0188】
一方、CPU71は、ステップ2005にて「No」と判定したとき、ステップ2020に進み、第2触媒54の酸素吸蔵能力を示す同第2触媒54の最大酸素吸蔵量Cmax2allが所定の閾値Cth2より大きいか否かを判定し、同ステップ2020にて「Yes」と判定したときはステップ2025に進んで制御用酸素吸蔵量OSAallに第2触媒54の酸素吸蔵量OSA2allを設定するとともに、ステップ2030にて目標酸素吸蔵量OSAallrefに第2の値OSA2allrefを設定し、ステップ2095に進んで本ルーチンを一旦終了する。第2の値OSA2allrefは、第2触媒54の最大酸素吸蔵量Cmax2allの1/2に設定されている。
【0189】
また、CPU71は、ステップ2020にて「No」と判定したとき、ステップ2035に進み、第3触媒55の酸素吸蔵能力を示す同第3触媒55の最大酸素吸蔵量Cmax3allが所定の閾値Cth3より大きいか否かを判定し、同ステップ2035にて「Yes」と判定したときはステップ2040に進んで制御用酸素吸蔵量OSAallに第3触媒55の酸素吸蔵量OSA3allを設定するとともに、ステップ2045にて目標酸素吸蔵量OSAallrefに第3の値OSA3allrefを設定し、ステップ2095に進んで本ルーチンを一旦終了する。第3の値OSA3allrefは、第3触媒55の最大酸素吸蔵量Cmax3allの1/2に設定されている。
【0190】
更に、CPU71は、ステップ2035にて「No」と判定したとき、ステップ2050に進んで制御用酸素吸蔵量OSAallに一定値OSAintを設定するとともに、ステップ2055にて目標酸素吸蔵量OSAallrefに同一定値OSAintを設定し、ステップ2095に進んで本ルーチンを一旦終了する。このステップ2050及びステップ2055の処理により、制御用酸素吸蔵量OSAallと目標酸素吸蔵量OSAallrefとは等しくなるので、酸素吸蔵量に基づくサブフィードバック制御は事実上停止された状態となる。
【0191】
また、CPU71は、サブフィードバック制御量vafsfbを求めるために、図21に示したルーチンを図20に示したルーチンの実行時間間隔と同じ所定時間の経過毎に実行している。従って、所定のタイミングになると、CPU71はステップ2100から処理を開始し、ステップ2105に進んでサブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件は、第1実施形態のサブフィードバック制御条件と同一である。このとき、サブフィードバック制御条件が成立していなければ、CPU71はステップ2125に進んでサブフィードバック制御量vafsfbを「0」に設定し、その後ステップ2195に進んで本ルーチンを一旦終了する。
【0192】
いま、サブフィードバック制御条件が成立しているものとして説明を続けると、CPU71はステップ2105にて「Yes」と判定してステップ2110に進み、上記選択された酸素吸蔵量OSAallから上記設定された目標酸素吸蔵量(目標値)OSAallrefを減じることにより偏差量DOSAallを求める。次に、CPU71はステップ2115に進み、下記数21に基いてサブフィードバック制御量(酸素吸蔵量補正量)vafsfbを求める。
【0193】
【数21】
vafsfb=Kp・DOSAall+Ki・SDOSAall
【0194】
上記数21において、Kpは予め設定された比例ゲイン、Kiは予め設定された積分ゲインである。また、SDOSAallは酸素吸蔵量偏差量DOSAallの積分値であって、次のステップ2120にて更新される値である。即ち、CPU71は、ステップ2120に進んで、その時点における酸素吸蔵量偏差量の積分値SDOSAallに上記ステップ2110にて求めた酸素吸蔵量偏差量DOSAallを加えて、新たな酸素吸蔵量偏差量の積分値SDOSA1allを求め、その後、ステップ2195に進んで本ルーチンを一旦終了する。
【0195】
このようにして、酸素吸蔵量補正量vafsfbが求められ、この値は前述した図5のステップ510にて最上流空燃比センサ66の実際の出力vabyfsに加えられ、その和(vabyfs + vafsfb)が図2に示したマップに基いてメインフィードバック制御用空燃比abyfsに変換される。この結果、前述した図5のステップ515にて計算される筒内燃料供給量Fc(k−N)が酸素吸蔵量OSAallに応じて変化し、従って、ステップ525,530にてフィードバック補正量DFiが同酸素吸蔵量OSAallに応じて変更せしめられる。この結果、前述した図4のステップ410にて酸素吸蔵量OSAallと目標酸素吸蔵量OSAallrefとの偏差が小さくなるように、最終燃料噴射量Fiが決定される。
【0196】
次に、各触媒の最大酸素吸蔵量Cmax1all,Cmax2all,Cmax3all、及び各触媒の各ブロックの最大酸素吸蔵量Cmax1(i),Cmax2(i),Cmax3(i)を算出する際の作動について説明する。CPU71は図22のフローチャートにより示されたルーチンを所定時間の経過毎に実行するようになっている。
【0197】
従って、所定のタイミングになると、CPU71は図22のステップ2200から処理を開始し、ステップ2205に進んで最大酸素吸蔵量取得制御実行中フラグXHANの値が「1」から「0」に変化したか否かをモニタする。このとき、最大酸素吸蔵量取得制御実行中フラグXHANの値が変化していなければ、CPU71はステップ2205からステップ2295に直接進んで本ルーチンを一旦終了する。
【0198】
一方、前述した第4モードが終了した直後であるとすると、図12のステップ1220にて最大酸素吸蔵量取得制御実行中フラグXHANの値が「1」から「0」に変更されるから、CPU71はステップ2205にて「Yes」と判定してステップ2210に進み、その時点の酸素吸蔵量OSA1,OSA2,OSA3を、それぞれ第1触媒53全体の最大酸素吸蔵量Cmax1all、第2触媒54全体の最大酸素吸蔵量Cmax2all、及び第3触媒55全体の最大酸素吸蔵量Cmax3allとして格納する。
【0199】
次いでCPU71はステップ2215に進み、カウンタ値nの値を「0」に設定した後、ステップ2220に進んで第1触媒53の各ブロック1毎の最大酸素吸蔵量を算出する処理を開始する。まず、CPU71はステップ2220においてカウンタ値nの値を「1」だけ増大して「1」に設定した後、ステップ2225に進んで上記ステップ2210にて取得した第1触媒53全体の最大酸素吸蔵量Cmax1allの値と、カウンタ値nの値と、上記数17に基くステップ2225内に記載した式とに基いて第1触媒53のブロック1(n)における最大酸素吸蔵量Cmax1(n)を算出する。この時点ではカウンタ値nの値は「1」であるから、ブロック1(1)における最大酸素吸蔵量Cmax1(1)が算出される。
【0200】
そして、CPU71はステップ2230に進んでカウンタ値nの値が第1触媒53のブロック数N1と等しいか否かを判定する。現時点ではカウンタ値nの値は「1」であるから、CPU71はステップ2230にて「No」と判定し、再びステップ2220に戻ってカウンタ値nの値を「1」だけ増大した後ステップ2225及びステップ2230の処理を実行する。即ち、ステップ2220及びステップ2225の処理は、カウンタ値nの値が第1触媒53のブロック数N1と等しくなるまで繰り返し実行される。これにより、第1触媒53の最上流のブロック1(1)から最下流のブロック1(N1)までの各ブロック1(n)の最大酸素吸蔵量Cmax1(n)の値が順次算出されていく。
【0201】
前述のステップ2220の処理が繰り返されることによりカウンタ値nの値が第1触媒53のブロック数N1と等しくなると、CPU71はステップ2230にて「Yes」と判定してステップ2235に進み、カウンタ値nの値を「0」に設定した後、ステップ2240に進んで第2触媒54の各ブロック2毎の最大酸素吸蔵量を算出する処理を開始する。
【0202】
この第2触媒54の各ブロック2毎の最大酸素吸蔵量を算出する処理は、上述したステップ2220〜ステップ2230の処理と同様であるステップ2240〜ステップ2250までの処理を第2触媒54のブロック数N2回だけ繰り返し実行することにより達成される。ステップ2245における最大酸素吸蔵量Cmax2(n)の算出は、上記ステップ2210にて取得した第2触媒54全体の最大酸素吸蔵量Cmax2allの値と、カウンタ値nの値と、上記数18に基くステップ2245内に記載した式とに基いて行われる。これにより、第2触媒54の最上流のブロック2(1)から最下流のブロック2(N2)までの各ブロック2(n)の最大酸素吸蔵量Cmax2(n)の値が順次算出されていく。
【0203】
ステップ2240の処理が繰り返されることによりカウンタ値nの値が第2触媒54のブロック数N2と等しくなると、CPU71はステップ2250にて「Yes」と判定してステップ2255に進み、カウンタ値nの値を「0」に設定した後、ステップ2260〜ステップ2270を実行し、第3触媒55の各ブロック3毎の最大酸素吸蔵量を算出する処理を開始する。
【0204】
このステップ2260〜ステップ2270の処理は、上述したステップ2220〜ステップ2230の処理と同様であり。最大酸素吸蔵量Cmax3(n)の算出は、上記ステップ2210にて取得した第3触媒55全体の最大酸素吸蔵量Cmax3allの値と、カウンタ値nの値と、上記数19に基くステップ2265内に記載した式とに基いて行われる。これにより、第3触媒55の最上流のブロック3(1)から最下流のブロック3(N3)までの各ブロック3(n)の最大酸素吸蔵量Cmax3(n)の値が順次算出されていく。
【0205】
そして、カウンタ値nの値が第3触媒55のブロック数N3と等しくなると、CPU71はステップ2270にて「Yes」と判定してステップ2275に進み、酸素吸蔵量OSA1〜OSA3の各々の値を「0」に設定した後、ステップ2295に進んで本ルーチンを一旦終了する。
【0206】
次に、第1〜第3触媒53〜55の各々の各ブロック毎の流出酸素量及び酸素吸蔵量等の算出についての作動について説明する。CPU71は図23〜図25の一連のフローチャートにより示されたルーチンを所定時間の経過毎に図23のルーチンから順に実行するようになっている。
【0207】
従って、所定のタイミングになると、CPU71は、第1触媒53の各ブロック1毎の流出酸素量,酸素吸蔵量等を算出するため、図23に示されたルーチンのステップ2300から処理を開始してステップ2305に進み、図4のステップ425にて逐次更新されている燃料噴射量積算値mfr1と、最上流空燃比センサ66により検出された空燃比abyfsと、上記数20に基くステップ2305内に記載した式とに基いて、第1触媒53のブロック1(1)の流入酸素量Cgin1O2(1)を算出する。
【0208】
次いで、CPU71はステップ2310に進んでカウンタ値nの値、及び第1触媒53全体の酸素吸蔵量OSA1allの値をそれぞれ「0」に設定した後、ステップ2315に進んでカウンタ値nの値を「1」だけ増大する。カウンタ値nは第1触媒53のブロック1の番号を示している。この時点ではカウンタ値nの値は「1」であり、続くステップ2320〜ステップ2375までの処理においてカウンタ値nの値は「1」に維持されるので、今回の同ステップ2320〜ステップ2375までの処理においては最上流のブロック1(1)に関する計算が実行される。
【0209】
まず、CPU71はステップ2320に進んで、流入酸素量Cgin1O2(1)の値が「0」以上であるか否かを判定し、流入酸素量Cgin1O2(1)の値が「0」以上であれば同ステップ2320において「Yes」と判定してステップ2325に進み、ブロック1(1)の最大酸素吸蔵量Cmax1(1)の値と、前回本ルーチンが実行されたときに計算(更新)されたブロック1(1)の酸素吸蔵量OSA1(1)の値と、上記数6に基くステップ2325内に記載した式とに基いてブロック1(1)における反応率Hを算出する。
【0210】
また、流入酸素量Cgin1O2(1)の値が「0」以上でなければCPU71は同ステップ2320において「No」と判定してステップ2330に進み、上記最大酸素吸蔵量Cmax1(1)の値と、上記前回本ルーチンが実行されたときに計算されたブロック1(1)の酸素吸蔵量OSA1(1)の値と、上記数8に基くステップ2330内に記載した式とに基いてブロック1(1)における反応率Hを算出する。
【0211】
次いで、CPU71はステップ2335に進み、ステップ2325又はステップ2330にて算出した反応率Hの値と、ステップ2305にて算出した第1触媒53のブロック1(1)における流入酸素量Cgin1O2(1)の値と、上記数5又は上記数7に基くステップ2335内に記載した式とに基いてブロック1(1)における酸素吸蔵量変化量δOSA1(1)を算出する。
【0212】
次に、CPU71はステップ2340に進んで、その時点の(即ち、前回本ルーチンが実行されたときに計算された)ブロック1(1)の酸素吸蔵量OSA1(1)の値にステップ2335にて今回算出したブロック1(1)の酸素吸蔵量変化量δOSA1(1)の値を加えた値(OSA1(1)+δOSA1(1))がブロック1(1)の最大酸素吸蔵量Cmax1(1)の値以下であるか否かを判定する。
【0213】
ここで、ブロック1(1)の酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が最大酸素吸蔵量Cmax1(1)以下であれば、CPU71はステップ2340にて「Yes」と判定してステップ2345に進み、酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が「0」以上であるか否かを判定する。そして、酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が「0」以上であれば、CPU71はステップ2345にて「Yes」と判定してステップ2360に進む。
【0214】
一方、ステップ2340の判定において、酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が最大酸素吸蔵量Cmax1(1)より大きければ、CPU71は同ステップ2340にて「No」と判定してステップ2350に進み、最大酸素吸蔵量Cmax1(1)から酸素吸蔵量変化量δOSA1(1)を減じた値を酸素吸蔵量変化量δOSA1(1)として設定し直し、ステップ2360に進む。他方、ステップ2345の判定において、酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が「0」より小さければ、CPU71は同ステップ2345にて「No」と判定してステップ2355に進み、酸素吸蔵量OSA1(1)の符号を反転した値(−OSA1(1))を酸素吸蔵量変化量δOSA1(1)に設定し直してステップ2360に進む。以上のステップ2340〜ステップ2355の処理は、次のステップ2360にて求められる今回のブロック1(1)の酸素吸蔵量OSA1(1)が「0」以上であって最大酸素吸蔵量Cmax1(1)以下の値となるような酸素吸蔵量変化量δOSA1(1)を求めるための処理である。
【0215】
ステップ2360に進んだCPU71は、その時点(即ち、前回本ルーチンを実行したときに求められた)ブロック1(1)の酸素吸蔵量OSA1(1)に上記のようにして求められた酸素吸蔵量変化量δOSA1(1)を加えた値を今回のブロック1(1)の酸素吸蔵量OSA1(1)として設定し、続くステップ2365にてブロック1(1)における流入酸素量Cgin1O2(1)の値と、今回の酸素吸蔵量変化量δOSA1(1)の値と、上記数4に基く同ステップ2365内に記載した式とに基いてブロック1(1)における流出酸素量Cgout1O2(1)を算出する。
【0216】
次いで、CPU71はステップ2370に進んで、現時点における第1触媒53全体の酸素吸蔵量OSA1allの値に、上記算出されたブロック1(1)の酸素吸蔵量OSA1(1)の値を加えた値を新たな第1触媒53全体の酸素吸蔵量OSA1(1)として格納し、ステップ2375に進んで同ブロック1(1)の流出酸素量Cgout1O2(1)の値をブロック1(1)に隣接する下流側のブロック1(2)における流入酸素量Cgin1O2(2)に設定する(上記数10を参照。)。
【0217】
そして、CPU71はステップ2380に進んでカウンタ値nの値が第1触媒53のブロック数N1と等しいか否かを判定する。現時点ではカウンタ値nの値は「1」であるから、CPU71はステップ2380にて「No」と判定し、再びステップ2315に戻ってカウンタ値nの値を「1」だけ増大して「2」に設定した後、続くステップ2320〜ステップ2375までの処理を実行することで次のブロックであるブロック1(2)についての各種値の計算を実行する。
【0218】
このようにして、ステップ2320〜ステップ2375までの処理は、カウンタ値nの値が第1触媒53のブロック数N1と等しくなるまで繰り返し実行される。これにより、第1触媒53の最上流のブロック1(1)から最下流のブロック1(N1)までの各ブロック1(n)の流入酸素量Cgin1O2(n)、流出酸素量Cgout1O2(n)、酸素吸蔵量変化量δOSA1(n)、及び酸素吸蔵量OSA1(n)の値が順次算出されていく。また、ステップ2370の処理が繰り返し実行されることにより、第1触媒53全体の酸素吸蔵量OSA1allも算出される。
【0219】
ステップ2315の処理が繰り返されることによりカウンタ値nの値が第1触媒53のブロック数N1と等しくなると、CPU71はステップ2380にて「Yes」と判定してステップ2385に進み、燃料噴射量積算値mfr1の値を「0」に設定した後、ステップ2395を経由して図24に示されたルーチンのステップ2400に進む。
【0220】
図24のルーチンは、第2触媒54の各ブロック2毎の流出酸素量及び酸素吸蔵量等を算出するためのルーチンであって、ステップ2405にて、境界条件である第2触媒54のブロック2(1)における流入酸素量Cgin2O2(1)として図23のステップ2365にて算出済みの第1触媒53の最下流のブロック1(N1)からの流出酸素量Cgout1O2(N1)を使用する点、及び図23のステップ2385に対応するステップが存在しない点を除き同図23のルーチンと同様であるので、ここではその詳細な説明を省略する。
【0221】
CPU71は、このようにして第2触媒54の各ブロック2(n)の流入酸素量Cgin2O2(n)、流出酸素量Cgout2O2(n)、酸素吸蔵量変化量δOSA2(n)、酸素吸蔵量OSA2(n)、及び第2触媒54全体の酸素吸蔵量OSA2allを算出し、ステップ2495を経由して図25に示されたルーチンのステップ2500に進む。
【0222】
図25のルーチンは、第3触媒55の各ブロック3毎の流出酸素量及び酸素吸蔵量等を算出するためのルーチンであって、ステップ2505にて、境界条件である第3触媒55のブロック3(1)における流入酸素量Cgin3O2(1)として図24のステップ2465にて算出済みの第2触媒54の最下流のブロック2(N2)からの流出酸素量Cgout2O2(N2)を使用する点を除き同図24のルーチンと同様であるので、ここではその詳細な説明を省略する。
【0223】
これにより、CPU71は、第3触媒55の各ブロック3(n)の流入酸素量Cgin3O2(n)、流出酸素量Cgout3O2(n)、酸素吸蔵量変化量δOSA3(n)、酸素吸蔵量OSA3(n)、及び第3触媒55全体の酸素吸蔵量OSA3allを算出し、ステップ2595にて本ルーチンを一旦終了する。
【0224】
次に、第1〜第3触媒53〜55の各々の各ブロック毎の酸素吸蔵量の値、及び第1〜第3触媒53〜55の各々の全体の酸素吸蔵量の値を初期化(クリア)する際の作動について説明する。CPU71は図26にフローチャートにより示されたルーチンを所定時間の経過毎に実行するようになっている。
【0225】
従って、CPU71は所定のタイミングになると、ステップ2600から処理を開始してステップ2605に進み、第1触媒下流空燃比センサ67の出力voxs1の値が0.7(V)より大きいか否かをモニタする。このとき、第1触媒下流空燃比センサ67の出力voxs1の値が0.7(V)より大きければ、即ち、第1触媒53の下流空燃比が明白なリッチ空燃比であれば、同第1触媒53内全体に吸蔵されている酸素量が「0」であることを意味するので、CPU71はステップ2610に進んで第1触媒53の各ブロック1(n)(n=1,2,・・・,N1)の酸素吸蔵量OSA1(n)を総べて「0」に設定するとともに、続くステップ2615にて第1触媒53全体の酸素吸蔵量OSA1allの値を「0」に設定する。
【0226】
全く同様に、CPU71は、第2触媒下流空燃比センサ68の出力voxs2の値が0.7(V)より大きいとき、これをステップ2620で判定してステップ2625及びステップ2630に進み、第2触媒54の各ブロック2(n)(n=1,2,・・・,N2)の酸素吸蔵量OSA2(n)を総べて「0」に設定するとともに、第2触媒54全体の酸素吸蔵量OSA2allの値を「0」に設定する。
【0227】
また、全く同様に、CPU71は、第3触媒下流空燃比センサ69の出力voxs3の値が0.7(V)より大きいとき、これをステップ2635で判定してステップ2640及びステップ2645に進み、第3触媒55の各ブロック3(n)(n=1,2,・・・,N3)の酸素吸蔵量OSA3(n)を総べて「0」に設定するとともに、第3触媒55全体の酸素吸蔵量OSA3allの値を「0」に設定し、ステップ2695にて本ルーチンを一旦終了する。このようにして、第1〜第3触媒53〜55の各々の各ブロック毎の酸素吸蔵量の値、及び第1〜第3触媒53〜55の各々の全体の酸素吸蔵量の値が初期化される。
【0228】
以上、説明したように、本発明による第2実施形態に係る排気浄化装置は、内燃機関の排気通路に直列に介装された複数の触媒(第1触媒53、第2触媒54、第3触媒55)と、前記複数の触媒の各酸素吸蔵能力を表す値(最大酸素吸蔵量Cmax1all,Cmax2all,Cmax3all)を取得する酸素吸蔵能力取得手段(図22のステップ2210等)と、前記取得された酸素吸蔵能力を表す値に基づいて所定の酸素吸蔵能力よりも大きい酸素吸蔵能力を有すると判定される触媒のうち前記排気通路の最も上流に介装された触媒の排気浄化の状態を表す値(その触媒の酸素吸蔵量OSA1all,OSA2all,OSA3allの何れか)を取得する排気浄化状態取得手段(図20、図22、及び図23〜図26に示したルーチン等)と、前記取得された排気浄化の状態を表す値が所定の値となるように前記最も上流に配設された触媒に流入するガスの空燃比を制御する空燃比制御手段(図4、図5、及び図21に示したルーチンにより達成される空燃比のフィードバック制御ルーチン)と、を備える。
【0229】
これによれば、排気浄化の状態を表す値(空燃比フィードバック制御に使用される酸素吸蔵量OSA1all,OSA2all,OSA3allのうちの何れか)は、取得された酸素吸蔵能力を表す値(最大酸素吸蔵量Cmax1all,Cmax2all,Cmax3all)に基づいて所定の酸素吸蔵能力(それぞれの最大酸素吸蔵量に対応する閾値Cth1,Cth2,Cth3)よりも大きい酸素吸蔵能力を有すると判定される触媒のうち前記排気通路の最も上流に介装された触媒の排気浄化の状態を表す値となるから、同最も上流の触媒に流入するガスの空燃比の変動が同排気浄化の状態を表す値に直ちに現れることはない。従って、上述した空燃比のハンチングが回避され、その結果、未燃成分や窒素酸化物等の有害成分の排出量の増大を回避することができる。また、前記最も上流に介装された触媒の排気浄化の状態を空燃比フィードバック制御に用いるから、同フィードバック制御の無駄時間が大きくなりすぎることも回避され、好適な空燃比制御が達成される。
【0230】
<第2実施形態の第1変形例>
次に、上記第2実施形態の第1変形例に係る排気浄化装置について説明する。この変形例は、第1触媒53の最大酸素吸蔵量Cmax1(=Cmax1all)が所定の閾値Cthを超えるとき第1触媒53全体の酸素吸蔵量OSA1allを、第1触媒53の最大酸素吸蔵量Cmax1は同所定の閾値Cthより小さいが第1触媒53と第2触媒54の各最大酸素吸蔵量の合計値(Cmax1+Cmax2=Cmax1all+Cmax2all)が同所定の閾値Cthを超えるとき第1触媒53全体と第2触媒54全体の各酸素吸蔵量の合計値(OSA1all+OSA2all)を、また、第1触媒53と第2触媒54の各最大酸素吸蔵量の合計値(Cmax1+Cmax2)は同所定の閾値Cthより小さいが第1触媒53全体と第2触媒54全体と第3触媒55全体の各最大酸素吸蔵量の合計値(Cmax1+Cmax2+Cmax3=Cmax1all+Cmax2all+Cmax3all)が所定の閾値を超えるとき、これら三つの触媒の酸素吸蔵量の合計値(OSA1all+OSA2all+OSA3all)を、空燃比制御用酸素吸蔵量OSAallとして選択し、同選択した制御用酸素吸蔵量OSAallが所定の目標酸素吸蔵量となるように制御するものである。
【0231】
具体的に述べると、この排気浄化装置のCPU71は、上記第2実施形態のCPU71が実行する図20に示したルーチンに代えて図27に示したルーチンを所定時間の経過毎に実行する点においてのみ、同第2実施形態と異なっている。従って、以下、係る相違点を中心として簡単に説明する。なお、図27において、図6及び図20に示したステップと同一のステップには同一の符号を付している。
【0232】
CPU71は、所定のタイミングになると、ステップ2700から処理を開始してステップ605に進み、第1触媒53の最大酸素吸蔵量Cmax1が所定の閾値Cthより大きいか否かを判定し、同ステップ605にて「Yes」と判定したときはステップ2010に進んで制御用酸素吸蔵量OSAallに第1触媒53全体の酸素吸蔵量OSA1allを設定する。次いで、CPU71はステップ2705に進んで目標酸素吸蔵量(所定の値)OSAallrefに第1の値OSAref1を設定し、ステップ2795に進んで本ルーチンを一旦終了する。なお、第1の値OSAref1は、第1触媒53の最大酸素吸蔵量Cmax1の1/2としておく。
【0233】
一方、CPU71は、ステップ605にて「No」と判定したとき、ステップ615に進んで第1触媒53の最大酸素吸蔵量Cmax1と第2触媒54の最大酸素吸蔵量Cmax2の合計値(Cmax1+Cmax2)が所定の閾値Cthより大きいか否かを判定し、同ステップ615にて「Yes」と判定したときはステップ2710に進んで制御用酸素吸蔵量OSAallに第1触媒53全体の酸素吸蔵量OSA1allと第2触媒54全体の酸素吸蔵量OSA2allの和(OSA1all+OSA2all)を設定する。次いで、CPU71はステップ2715に進んで目標酸素吸蔵量OSAallrefに第2の値OSAref2を設定し、ステップ2795に進んで本ルーチンを一旦終了する。なお、第2の値OSAref2は、第1触媒53の最大酸素吸蔵量Cmax1と第2触媒54の最大酸素吸蔵量Cmax2の和(Cmax1+Cmax2)の1/2としておく。
【0234】
また、CPU71は、ステップ615にて「No」と判定したとき、ステップ625に進んで第1触媒〜第3触媒の各最大酸素吸蔵量の合計値(Cmax1+Cmax2+Cmax3)が同所定の閾値Cthより大きいか否かを判定し、同ステップ625にて「Yes」と判定したときはステップ2720に進んで制御用酸素吸蔵量OSAallに第1触媒53全体の酸素吸蔵量OSA1allと第2触媒54全体の酸素吸蔵量OSA2allと第3触媒55全体の酸素吸蔵量OSA3allの和(OSA1all+OSA2all+OSA3all)を設定する。次いで、CPU71はステップ2725に進んで目標酸素吸蔵量OSAallrefに第3の値OSAref3を設定し、ステップ2795に進んで本ルーチンを一旦終了する。なお、第3の値OSAref3は、第1触媒53〜第3触媒55の各最大酸素吸蔵量の和(Cmax1+Cmax2+Cmax3)の1/2としておく。
【0235】
更に、CPU71は、ステップ625にて「No」と判定したとき、ステップ2050に進んで制御用酸素吸蔵量OSAallに一定値OSAintを設定するとともに、ステップ2055にて目標酸素吸蔵量OSAallrefに同一定値OSAintを設定し、ステップ2795に進んで本ルーチンを一旦終了する。このステップ2050及びステップ2055の処理により、制御用酸素吸蔵量OSAallと目標酸素吸蔵量OSAallrefとは等しくなるので、酸素吸蔵量に基づくサブフィードバック制御は事実上停止された状態となる。
【0236】
以上、説明したように、第2実施形態の第1変形例に係る排気浄化装置は、値nを自然数とするとき複数の触媒(第1触媒53、第2触媒54、第3触媒55)のうちの最上流の触媒である第1番目の触媒(第1触媒53)から第n番目の触媒までで構成される触媒装置(即ち、第1触媒53のみからなる触媒装置、第1触媒53と第2触媒54とからなる触媒装置、及び第1触媒〜第3触媒53〜55の3個の触媒からなる触媒装置)の酸素吸蔵能力を表す値(即ち、第1触媒53の最大酸素吸蔵量Cmax1、第1触媒53の最大酸素吸蔵量Cmax1と第2触媒54の最大酸素吸蔵量Cmax2の和Cmax1+Cmax2、第1触媒53,第2触媒54,及び第3触媒55の各最大酸素吸蔵量の和Cmax1+Cmax2+Cmax3)を取得する酸素吸蔵能力取得手段を備えている。
【0237】
更に、この排気浄化装置は、前記取得された酸素吸蔵能力を表す値に基づいて所定の酸素吸蔵能力よりも大きい酸素吸蔵能力を有すると判定される前記触媒装置のうち前記値nが最も小さい触媒装置の排気浄化の状態を表す値(OSA1all,OSA1all+OSA2all,又はOSA1all+OSA2all+OSA3all)を取得する排気浄化状態取得手段と、前記取得された排気浄化の状態を表す値が所定の値(OSAallref)となるように前記第1番目の触媒(第1触媒53)に流入するガスの空燃比を制御する空燃比制御手段とを備えている。
【0238】
即ち、空燃比制御に使用されることになる触媒装置の排気浄化の状態を表す値(OSA1all,OSA1all+OSA2all,又はOSA1all+OSA2all+OSA3all)は、十分な酸素吸蔵能力を有している触媒装置の排気浄化の状態を表すから、第1触媒53に流入するガスの空燃比の変動が同排気浄化の状態を表す値に直ちに現れることはない。従って、上述した空燃比のハンチングが回避され、その結果、未燃成分や窒素酸化物等の有害成分の排出量の増大を回避することができる。
【0239】
また、酸素吸蔵能力が大きい触媒装置の酸素吸蔵量を各触媒装置の最大酸素吸蔵量の略半分程度の量に維持できるので、酸素吸蔵能力を有効に利用でき、排ガスの浄化を効果的に行うことが可能となる。
【0240】
<第2実施形態の第2変形例>
次に、上記第2実施形態の第2変形例に係る排気浄化装置について説明する。この変形例は、主として、第3触媒55及び第3触媒下流空燃比センサ69を備えていない点、及びCPU71が図20に示したルーチンに代えて制御用酸素吸蔵量OSAallを選択するための図28にフローチャートにより示したルーチンを実行する点等において、上記第2実施形態と異なっている。従って、以下、係る相違点を中心として説明する。
【0241】
CPU71は、制御用酸素吸蔵量OSAallを選択するにあたり、図28に示したルーチンを所定時間の経過毎に実行する。従って、所定のタイミングになると、CPU71はステップ2800から処理を開始し、ステップ2805に進んで第1触媒53の最大酸素吸蔵量Cmax1が所定の閾値Cth1より大きいか否かを判定する。このとき、最大酸素吸蔵量Cmax1が所定の閾値Cth1より大きいと、CPU71はステップ2805からステップ2810に進んで制御用酸素吸蔵量OSAallに第1触媒53全体の酸素吸蔵量OSA1allを設定し、続くステップ2815にて目標酸素吸蔵量OSAallrefに目標酸素吸蔵量OSA1allref(第1の値)を設定し、ステップ2895に進んで本ルーチンを一旦終了する。前記目標酸素吸蔵量OSA1allrefは、最大酸素吸蔵量Cmax1の1/2に設定しておく。
【0242】
一方、最大酸素吸蔵量Cmax1が所定の閾値Cth1より小さい(以下である)と、CPU71はステップ2805からステップ2825に進んで制御用酸素吸蔵量OSAallに第2触媒53全体の酸素吸蔵量OSA2allを設定し、続くステップ2830にて目標酸素吸蔵量OSAallrefに目標酸素吸蔵量OSA2allref(第2の値)を設定し、ステップ2895に進んで本ルーチンを一旦終了する。前記目標酸素吸蔵量OSA2allrefは、最大酸素吸蔵量Cmax2の1/2に設定しておく。
【0243】
これにより、この第2変形例に係る排気浄化装置は、図21に示したルーチンを実行することにより上記のように選択された酸素吸蔵量OSAallが上記のように設定された目標酸素吸蔵量OSAallrefに一致するようにサブフィードバック制御量vafsfbを求め、このサブフィードバック制御量vafsfbを図5に示したルーチンを実行することによりメインフィードバック制御量に反映させ、図4に示したルーチンを実行することにより最終燃料噴射量Fiに反映させる。
【0244】
このように、第2実施形態の第2変形例に係る排気浄化装置は、第1触媒53が十分な酸素吸蔵能力を有している場合には同第1触媒53の酸素吸蔵量OSA1allが目標酸素吸蔵量OSAallref(=OSA1allref)に一致するように機関に供給される混合気の空燃比のフィードバック制御を実行し、第1触媒53が十分な酸素吸蔵能力を有していない場合には、同第1触媒53よりも劣化の進行程度が遅いために十分な酸素吸蔵能力を有していると考えられる第2触媒54の酸素吸蔵量OSA1allが目標酸素吸蔵量OSAallref(=OSA2allref)に一致するように同空燃比のフィードバック制御を実行する。
【0245】
従って、空燃比のフィードバック制御用として使用される制御用酸素吸蔵量OSAallには、第1触媒53の上流の空燃比の変動が直ちに現れることがないので、空燃比のフィードバック制御の破綻を招くことなく同制御用酸素吸蔵量OSAallを目標酸素吸蔵量OSAallrefに一致させることができる。
【0246】
<第3実施形態>
次に、本発明による第3実施形態に係る排気浄化装置について説明する。この排気浄化装置は、上述した触媒モデルにおける所定のブロックから流出する特定成分の量に関する値(ここでは、流出酸素量CgoutO2)を所定値(ここでは、「0」であるが、「0」を含む所定の幅−β1〜+β2であってもよい。)に維持する制御(空燃比フィードバック制御)を行う点において、主として第2実施形態に係る排気浄化装置と異なっている。
【0247】
具体的に述べると、この第3実施形態に係るCPU71は、第2実施形態のCPU71が実行する図20及び図21に示したルーチンを除く総べてのルーチンを実行するとともに、図20及び図21に代わる図29及び図30に示したルーチンをそれぞれ所定時間の経過毎に実行するようになっている。従って、以下、図29及び図30に示したルーチンを参照しながら、本排気浄化装置の作動を説明する。
【0248】
CPU71は、所定のタイミングになると、図29のステップ2900から処理を開始し、ステップ2902に進んで判定用最大酸素吸蔵量Cmax1hに「0」を設定し、続くステップ2904にてカウンタ値nの値を「0」に設定する。次いで、CPU71はステップ2906に進み、カウンタ値nの値を「1」だけ増大してステップ2908に進み、現時点の判定用最大酸素吸蔵量Cmax1hに、その時点で求められている第1触媒53のブロック1(n)における最大酸素吸蔵量Cmax1(n)(この時点ではカウンタ値nの値は「1」であるから、ブロック1(1)における最大酸素吸蔵量Cmax1(1))を加えて新たな判定用最大酸素吸蔵量Cmax1hを求める。
【0249】
次に、CPU71はステップ2910に進み、判定用最大酸素吸蔵量Cmax1hが所定の閾値Cthより大きいか否かを判定する。このとき、判定用最大酸素吸蔵量Cmax1hが所定の閾値Cthより小さければ、CPU71はステップ2910にて「No」と判定してステップ2912に進みカウンタ値nの値が第1触媒53のブロック数N1と等しいか否かを判定する。
【0250】
現時点ではカウンタ値nの値は「1」である。従って、CPU71はステップ2912にて「No」と判定し、再びステップ2906に戻ってカウンタ値nの値を「1」だけ増大し、ステップ2908及びステップ2910の処理を実行する。この結果、判定用最大酸素吸蔵量Cmax1hは、第1触媒53の最上流のブロックである第1番目のブロックと第2番目のブロックの最大酸素吸蔵量の積算値Cmax1(1)+Cmax1(2)となる。そして、この積算値Cmax1(1)+Cmax1(2)が閾値Cthを超えなければCPU71はステップ2910から再びステップ2912に進み、更に、カウンタ値nの値がブロック数N1と等しくなければ再びステップ2906にてカウント値nの値を「1」だけ増大し、ステップ2908の処理を実行する。この結果、その時点の判定用最大酸素吸蔵量Cmax1h(この時点ではCmax1(1)+Cmax1(2))にブロック1(n)の最大酸素吸蔵量Cmax1(n)(この時点ではn=3であるあるからCmax1(3))が加算され、新たな判定用最大酸素吸蔵量Cmax1h(=Cmax1(1)+Cmax1(2)+Cmax1(3))が求められる。
【0251】
このような処理は、判定用最大酸素吸蔵量Cmax1hが閾値Cthを超えない限り繰り返し行われる。従って、判定用最大酸素吸蔵量Cmax1hは、第1触媒53の最上流のブロックである第1番目のブロックから第n番目のブロックまでの各ブロック1(n)の最大酸素吸蔵量Cmax1(n)の積算値(合計値)として求められる。
【0252】
このような処理の実行中、判定用最大酸素吸蔵量Cmax1hが所定の閾値Cthより大きくなった場合、CPU71はステップ2910にて「Yes」と判定してステップ2914に進み、制御用流出酸素量CgoutO2cに第1触媒53の第n番目のブロックの流出酸素量Cgout1O2(n)を設定し、ステップ2995に進んで本ルーチンを一旦終了する。
【0253】
また、第1触媒53の第1番目のブロックから第N1番目のブロックの総べてのブロックの各最大酸素吸蔵量Cmax1(n)の積算値(即ち、第1触媒53全体の最大酸素吸蔵量Cmax1all(=Cmax1))が所定の閾値Cthより小さいとき、CPU71はステップ2910にて「Yes」と判定することはなく、カウンタ値nの値がN1となったときにステップ2912にて「Yes」と判定し、ステップ2916に進んで判定用最大酸素吸蔵量Cmax2hに第1触媒53全体の最大酸素吸蔵量Cmax1allを設定する。次いで、CPU71は、ステップ2918にてカウンタ値nの値を「0」に設定し、ステップ2920以降に進む。
【0254】
ステップ2920〜ステップ2926までの処理は、ステップ2906〜ステップ2912までの処理と同様である。簡単に説明すると、CPU71は、ステップ2920及びステップ2922にて第1触媒53全体の最大酸素吸蔵量Cmax1allに第2触媒54の最上流のブロック(第1番目のブロック)から同第2触媒54の第n番目のブロックまでの各ブロック2(n)の最大酸素吸蔵量Cmax2(n)の積算値を加えた値を、判定用最大酸素吸蔵量Cmax2hとして求める。第2触媒54の第n番目となるブロック2(n)は第1触媒53の最上流のブロックから数えて(N1+n)番目のブロックということになる。従って、(N1+n)をmとするとき、判定用最大酸素吸蔵量Cmax2hは、第1触媒53及び第2触媒54を一つの触媒装置とみなしたときの最上流のブロックである第1番目のブロックから第m番目のブロックまでのブロックにより構成される触媒装置上流部の各ブロックの最大酸素吸蔵量の積算値ということになる。
【0255】
そして、CPU71は、判定用最大酸素吸蔵量Cmax2hが所定の閾値Cthより大きくなった場合、ステップ2924にて「Yes」と判定してステップ2928に進み、制御用流出酸素量CgoutO2cに第2触媒54の第n番目のブロックの流出流出酸素量Cgout2O2(n)を設定し、ステップ2995に進んで本ルーチンを一旦終了する。
【0256】
同様に、第1触媒53全体の最大酸素吸蔵量Cmax1allと第2触媒54全体の最大酸素吸蔵量Cmax2allの和(Cmax1all+Cmax2all)が所定の閾値Cthより小さいとき、CPU71はステップ2924にて「Yes」と判定することはなく、カウンタ値nの値が第2触媒54のブロック数N2となったときにステップ2926にて「Yes」と判定し、ステップ2930に進んで判定用最大酸素吸蔵量Cmax3hに第1触媒53全体の最大酸素吸蔵量Cmax1allと第2触媒54全体の最大酸素吸蔵量Cmax2allの和(Cmax1all+Cmax2all)を設定する。次いで、CPU71は、ステップ2932にてカウンタ値nの値を「0」に設定し、ステップ2934以降に進む。
【0257】
ステップ2934〜ステップ2940までの処理は、ステップ2906〜ステップ2912までの処理と同様である。簡単に説明すると、CPU71はステップ2934及びステップ2936にて第1触媒53全体と第2触媒54全体の各最大酸素吸蔵量の和(Cmax1all+Cmax2all)に第3触媒55の最上流のブロック(第1番目のブロック)から同第3触媒55の第n番目のブロックまでの各ブロック3(n)の最大酸素吸蔵量Cmax3(n)の積算値を加えた値を、判定用最大酸素吸蔵量Cmax3hとして求める。第3触媒55の第n番目となるブロック3(n)は、第1触媒53の最上流のブロックから数えて(N1+N2+n)番目のブロックということになる。従って、(N1+N2+n)をpとするとき、判定用最大酸素吸蔵量Cmax3hは、第1触媒53、第2触媒54、及び第3触媒55を一つの触媒装置とみなしたときの最上流のブロックである第1番目のブロックから第p番目のブロックまでのブロックにより構成される触媒装置上流部の各ブロックの最大酸素吸蔵量の積算値ということになる。
【0258】
そして、CPU71は、判定用最大酸素吸蔵量Cmax3hが所定の閾値Cthより大きくなった場合、ステップ2938にて「Yes」と判定してステップ2942に進み、制御用流出酸素量CgoutO2cに第3触媒55の第n番目のブロックの流出酸素濃度Cgout3O2(n)を設定し、ステップ2995に進んで本ルーチンを一旦終了する。
【0259】
また、第1触媒53〜第3触媒55の各最大酸素吸蔵量の和(Cmax1all+Cmax2all+Cmax3all)が所定の閾値Cthより小さいとき、CPU71はステップ2938にて「Yes」と判定することはなく、カウンタ値nの値が第3触媒55のブロック数N3となったときステップ2940にて「Yes」と判定し、この場合は上記ステップ2942を経由してステップ2995に進み、本ルーチンを一旦終了する。
【0260】
このように、nを自然数とし、第1触媒53〜第3触媒55を一つの触媒装置とみなしたとき、その触媒装置の第1番目のブロックから第n番目のブロックまでのブロックにより構成される触媒装置上流部の各ブロックの最大酸素吸蔵量の積算値(判定用最大酸素吸蔵量)が所定の閾値Cthを超える触媒装置上流部のうち、前記値nが最も小さい触媒装置上流部の最下流のブロック(第1触媒53の第1番目のブロックから数えて第n番目のブロック)の流出酸素量が制御用流出酸素量CgoutO2cとして設定される。
【0261】
次に、サブフィードバック制御量vafsfbを求める際の作動について説明する。CPU71は、図30に示したルーチンを所定時間の経過毎に実行している。図30において、図7に示したルーチンのステップと同一のステップには同一の符号を付し、その詳細な説明を省略する。
【0262】
CPU71は、このルーチンの実行により、前記決定・選択した制御用流出酸素量CgoutO2cと所定の値である目標酸素量Cgoutref(この例では、目標酸素量Cgoutref=0)の偏差を求め(ステップ3005)、この偏差をPI処理してサブフィードバック制御量vafsfbを求める(ステップ715,720)。この結果、CPU71が図4及び図5に示したルーチンを実行することにより、制御用流出酸素量CgoutO2cと所定の値である目標酸素量Cgoutrefとが一致せしめられるように第1触媒53に流入するガスの空燃比が制御される。
【0263】
以上、説明したように、第3実施形態によれば、値nを自然数とするとき単数又は複数の触媒(第1〜第3触媒53〜55)からなる触媒装置の最上流のブロックである第1番目のブロックから第n番目のブロックまでのブロックにより構成される触媒装置上流部の各ブロックの最大酸素吸蔵量を積算して同触媒装置上流部の最大酸素吸蔵量積算値(判定用酸素吸蔵量)を求める積算値算出手段(ステップ2908、2922、2936等)と、前記最大酸素吸蔵量積算値が所定の閾値Cthより大きい値をとる前記触媒装置上流部のうち前記値nが最も小さい第n番目のブロックまでからなる前記触媒装置上流部の第n番目のブロックの排気浄化の状態を表す値(各触媒内における反応を考慮して構築された前記触媒モデルに基づいて計算される第n番目のブロックの流出酸素濃度Cgout1O2(n),Cgout2O2(n),及びCgout3O2(n)の何れか)を制御用流出酸素量CgoutO2cとして取得・選択する排気浄化状態取得手段(図23〜図25、及び図29に示したルーチン等)とを備える。
【0264】
また、この排気浄化装置は、前記取得された排気浄化の状態を表す値(制御用流出酸素量CgoutO2c)が所定の値(Cgoutref)となるように前記触媒装置に流入するガスの空燃比(実際には機関に供給される混合気の空燃比)を制御する空燃比制御手段(図4、図5、及び図30に示したルーチン等)とを備えている。
【0265】
この結果、常に所定の酸素吸蔵能力(所定の閾値Cth以上の最大酸素吸蔵量)を有している触媒装置上流部を介して取得される排気浄化の状態(上記第n番目のブロックの流出酸素濃度である制御用流出酸素量CgoutO2c)に基づいて空燃比のフィードバック制御が行われることとなるので、同排気浄化の状態を、第1触媒53に流入するガスの空燃比のハンチングを回避しながら所望の値に安定して制御することが可能となり、その結果、排ガスを効果的に浄化することができる。
【0266】
<第3実施形態の変形例>
次に、上記第3実施形態の変形例に係る排気浄化装置について説明する。この変形例は、第3実施形態の排気浄化装置が上述した触媒装置の所定のブロックの流出酸素濃度CgoutO2を所定値に維持する制御を行っていたのに対し、最大酸素吸蔵量が閾値Cthを超える第1番目のブロックから第n番目のブロックまでで構成される触媒装置上流部の各ブロックの酸素吸蔵量の積算値(総和)が所定の目標酸素吸蔵量(目標値)となるように制御を行う点のみにおいて、同第3実施形態に係る排気浄化装置と異なっている。
【0267】
具体的に述べると、この変形例に係るCPU71は、第3実施形態のCPU71が実行する図29及び図30に示したルーチンに代えて、図31及び図32に示したルーチンをそれぞれ所定時間の経過毎に実行するようになっている。なお、図31及び図32のルーチンのステップにおいて、先に説明したステップと同一のステップには同先に示したステップと同一の符号を付し、その詳細な説明を省略する。
【0268】
CPU71は、図31に示した制御用酸素吸蔵量OSAcを決定するルーチンを所定時間の経過毎に繰り返し実行し、上述した判定用最大酸素吸蔵量Cmax1hが所定の閾値Cthより大きくなった場合、ステップ2910にて「Yes」と判定してステップ3102に進み、制御用酸素吸蔵量OSAcに第1触媒53の第1番目のブロックから第n番目のブロックまでの各ブロックjの酸素吸蔵量OSA1(j)の積算値ΣOSA1(j)を設定する。次いで、CPU71はステップ3104に進み、目標酸素吸蔵量OSArefに第1番目のブロックから第n番目のブロックまでの各ブロックjの最大酸素吸蔵量Cmax1(j)の積算値ΣCmax1(j)の1/2を設定し、ステップ2995に進んで本ルーチンを一旦終了する。
【0269】
同様に、CPU71は、上述した判定用最大酸素吸蔵量Cmax2hが所定の閾値Cthより大きくなった場合、ステップ2924にて「Yes」と判定してステップ3106に進み、第1触媒53の全体の酸素吸蔵量OSA1allに第2触媒54の第1番目のブロックから第n番目のブロックまでの各ブロックjの酸素吸蔵量OSA2(j)の積算値ΣOSA2(j)を加えた値を制御用酸素吸蔵量OSAcとして設定する。次いで、CPU71はステップ3108に進み、第1触媒53の全体の最大酸素吸蔵量Cmax1allに第2触媒54の第1番目のブロックから第n番目のブロックまでの各ブロックjの最大酸素吸蔵量Cmax2(j)の積算値ΣCmax2(j)を加えた値の半分の値を目標酸素吸蔵量OSArefとして設定し、ステップ2995に進んで本ルーチンを一旦終了する。
【0270】
同様に、CPU71は、上述した判定用最大酸素吸蔵量Cmax3hが所定の閾値Cthより大きくなった場合、ステップ2938にて「Yes」と判定してステップ3110に進み、第1触媒53と第2触媒54の各酸素吸蔵量の和(OSA1all+OSA2all)に第3触媒55の第1番目のブロックから第n番目のブロックまでの各ブロックjの酸素吸蔵量OSA3(j)の積算値ΣOSA3(j)を加えた値を制御用酸素吸蔵量OSAcとして設定する。次いで、CPU71はステップ3112に進み、第1触媒53及び第2触媒54の各最大酸素吸蔵量の和(Cmax1all+Cmax2all)に第3触媒55の第1番目のブロックから第n番目のブロックまでの各ブロックjの最大酸素吸蔵量Cmax3(j)の積算値ΣCmax3(j)を加えた値の半分の値を目標酸素吸蔵量OSArefとして設定し、ステップ2995に進んで本ルーチンを一旦終了する。以上により、制御用酸素吸蔵量OSAc及び目標酸素吸蔵量OSArefが決定される。
【0271】
また、CPU71は、図31に示したルーチンを所定時間の経過毎に実行し、制御用酸素吸蔵量OSAcを目標酸素吸蔵量OSArefと等しくさせるためのサブフィードバック制御量vafsfbを、制御用酸素吸蔵量OSAc及び目標酸素吸蔵量OSArefの偏差をPI処理することにより求める。このサブフィードバック制御量vafsfbの求め方は他の実施形態におけるサブフィードバック制御量vafsfbの求め方と同様であるので、詳細な説明を省略する。
【0272】
以上、説明したように、第3実施形態の変形例によれば、値nを自然数とするとき単数又は複数の触媒(第1〜第3触媒53〜55)からなる触媒装置の最上流のブロックである第1番目のブロックから第n番目のブロックまでのブロックにより構成される触媒装置上流部の各ブロックの最大酸素吸蔵量を積算して同触媒装置上流部の最大酸素吸蔵量積算値(判定用酸素吸蔵量)を求める積算値算出手段(ステップ2908、2922、2936等)と、前記最大酸素吸蔵量積算値が所定の閾値Cthより大きい値をとる前記触媒装置上流部のうち前記値nが最も小さい第n番目のブロックまでからなる前記触媒装置上流部の排気浄化の状態を表す値(酸素吸蔵量ΣOSA1(j), OSA1all+ΣOSA2(j), 及びOSA1all+OSA2all+ΣOSA3(j))を制御用酸素吸蔵量OSAcとして取得・選択する排気浄化状態取得手段(図23〜図25、及び図31に示したルーチン等)とを備える。
【0273】
また、この排気浄化装置は、前記取得された排気浄化の状態を表す値(制御用酸素吸蔵量OSAc)が所定の値(OSAref)となるように前記触媒装置に流入するガスの空燃比を制御する空燃比制御手段(図4、図5、及び図32に示したルーチン等)とを備えている。
【0274】
この結果、常に所定の酸素吸蔵能力(所定の閾値Cth以上の最大酸素吸蔵量)を有している触媒装置上流部を介して取得される排気浄化の状態(制御用酸素吸蔵量OSAc)に基づいて第1触媒53に流入するガスの空燃比のフィードバック制御が行われることとなるので、前記排気浄化の状態を同空燃比のハンチングを回避しながら所望の値に安定して制御することが可能となり、その結果、排ガスを効果的に浄化することができる。
【0275】
以上、説明したように、本発明による各実施形態及びその変形例によれば、制御の破綻を来さない酸素吸蔵能力を有する触媒(触媒装置)の全部又は上流部を介して得られる空燃比センサ出力、或いは、同触媒(触媒装置)の全部又は上流部の排気浄化の状態を表す値が所定の目標値となるように第1触媒53に流入するガスの空燃比が制御されるので、排気浄化性能を良好に維持することができる。また、空燃比の制御に使用する空燃比センサよりも下流、又は排気浄化の状態を取得した位置よりも下流に位置する触媒(の部分)を予備的な触媒として使用することもできるので、流出する有害排気成分をより低減することができる。
【0276】
なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第2実施形態の第2変形例の図28に示したルーチンのステップ2825において、第1触媒53の酸素吸蔵量OSA1allと第2触媒54の酸素吸蔵量OSA1allの和(OSA1all+OSA2all)を制御用酸素吸蔵量OSAallとして設定してもよい。この場合、ステップ2830の目標酸素吸蔵量OSA2allref(第2の値)は、第1触媒の最大酸素吸蔵量Cmax1と第2触媒の最大酸素吸蔵量Cmax2の和の1/2(=(Cmax1+Cmax2)/2)とすることが好適である。
【0277】
また、同じく図28に示したルーチンのステップ2810において、第1触媒53から流出する酸素量(第1触媒53内における反応を考慮して構築された前記触媒モデルに基づいて計算される同第1触媒53の最下流のブロックの流出酸素量、即ち第1触媒53の排気浄化の状態を表す値)Cgout1O2(N1)を制御用流出酸素量CgoutO2cとして設定し、ステップ2825において第2触媒54から流出する酸素量(第2触媒54内における反応を考慮して構築された前記触媒モデルに基づいて計算される同第2触媒54の最下流のブロックの流出酸素量、即ち第2触媒54の排気浄化の状態を表す値)Cgout2O2(N2)を制御用流出酸素量CgoutO2cとして設定するとともに、ステップ2815及びステップ2830を省略してもよい。この場合、サブフィードバック制御は、図30に示したルーチンを採用する。
【0278】
これにより、第1触媒53の酸素吸蔵能力が所定の能力より大きいとき同第1触媒53から流出する特定成分(この場合、酸素)の量に応じた値を所定の値とする空燃比フィードバック制御が、また、第1触媒53の酸素吸蔵能力が所定の能力より小さいとき同第2触媒54から流出する特定成分(この場合、酸素)の量に応じた値を同所定の値とする空燃比フィードバック制御が達成される。
【図面の簡単な説明】
【図1】 本発明の第1実施形態に係る排気浄化装置を内燃機関に適用したシステムの概略図である。
【図2】 図1に示した最上流空燃比センサの出力電圧と空燃比との関係を示したマップである。
【図3】 図1に示した第1触媒下流空燃比センサ、第2触媒下流空燃比センサ、及び第3触媒下流空燃比センサの出力電圧と空燃比との関係を示したマップである。
【図4】 図1に示したCPUが実行する燃料噴射量計算のためのルーチンを示したフローチャートである。
【図5】 図1に示したCPUが実行する空燃比フィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図6】 図1に示したCPUが実行するサブフィードバック制御量を求めるために使用される制御用空燃比センサ出力を選択(決定)するためのルーチンを示したフローチャートである。
【図7】 図1に示したCPUが実行するサブフィードバック制御量を求めるためのルーチンを示したフローチャートである。
【図8】 図1に示したCPUが実行する最大酸素吸蔵量取得制御を開始するか否かを決定するためのルーチンを示したフローチャートである。
【図9】 図1に示したCPUが実行する第1モードのルーチンを示したフローチャートである。
【図10】 図1に示したCPUが実行する第2モードのルーチンを示したフローチャートである。
【図11】 図1に示したCPUが実行する第3モードのルーチンを示したフローチャートである。
【図12】 図1に示したCPUが実行する第4モードのルーチンを示したフローチャートである。
【図13】 図1に示したCPUが実行する酸素吸蔵量を算出するためのルーチンを示したフローチャートである。
【図14】 図1に示したCPUが実行する最大酸素吸蔵量を算出するためのルーチンを示したフローチャートである。
【図15】 本発明の第1実施形態の変形例に係る排気浄化装置のCPUが実行する制御用空燃比センサ出力を選択(決定)するためのルーチンを示したフローチャートである。
【図16】 本発明の排気浄化装置が採用する触媒モデルを模式的に示した図である。
【図17】 本発明の排気浄化装置が採用する触媒モデルの特定領域に注目したときの同特定領域における酸素吸蔵・放出反応に関係する特定成分の収支を示した図である。
【図18】 本発明の排気浄化装置が採用する触媒モデルが対象とする触媒全体の最大酸素吸蔵量から同触媒の各ブロック毎の最大酸素吸蔵量の分布を求めるためのマップである。
【図19】 本発明の排気浄化装置が採用する触媒モデルを第1,第2,第3触媒にそれぞれ適用した場合の模式図である。
【図20】 本発明の第2実施形態に係る排気浄化装置のCPUが実行する、サブフィードバック制御量を求めるために使用される制御用酸素吸蔵量及び目標酸素吸蔵量を決定・選択するためのルーチンを示したフローチャートである。
【図21】 本発明の第2実施形態に係る排気浄化装置のCPUが実行するサブフィードバック制御量を求めるためのルーチンを示したフローチャートである。
【図22】 本発明の第2実施形態に係る排気浄化装置のCPUが実行する各触媒の最大酸素吸蔵量及び各ブロックの最大酸素吸蔵量を求めるためのルーチンを示したフローチャートである。
【図23】 本発明の第2実施形態に係る排気浄化装置のCPUが実行する第1触媒の各ブロック毎の流出酸素量、及び酸素吸蔵量等を算出するためのルーチンを示したフローチャートである。
【図24】 本発明の第2実施形態に係る排気浄化装置のCPUが実行する第2触媒の各ブロック毎の流出酸素量、及び酸素吸蔵量等を算出するためのルーチンを示したフローチャートである。
【図25】 本発明の第2実施形態に係る排気浄化装置のCPUが実行する第3触媒の各ブロック毎の流出酸素量、及び酸素吸蔵量等を算出するためのルーチンを示したフローチャートである。
【図26】 本発明の第2実施形態に係る排気浄化装置のCPUが実行する第1,第2,第3触媒の各々酸素吸蔵量及びこれらの触媒の各ブロック毎の酸素吸蔵量をクリアするためのルーチンを示したフローチャートである。
【図27】 本発明の第2実施形態の第1変形例に係る排気浄化装置のCPUが実行する、サブフィードバック制御量を求めるために使用される制御用酸素吸蔵量及び目標酸素吸蔵量を決定・選択するためのルーチンを示したフローチャートである。
【図28】 第2実施形態の第2変形例に係る排気浄化装置のCPUが実行するサブフィードバック制御量を求めるために使用される制御用酸素吸蔵量及び目標酸素吸蔵量を決定・選択するためのルーチンを示したフローチャートである。
【図29】 本発明による第3実施形態に係る排気浄化装置のCPUが実行するサブフィードバック制御量を求めるために使用される制御用流出酸素量を決定・選択するためのルーチンを示したフローチャートである。
【図30】 本発明による第3実施形態に係る排気浄化装置のCPUが実行するサブフィードバック制御量を求めるためのルーチンを示したフローチャートである。
【図31】 第3実施形態の変形例に係る排気浄化装置のCPUが実行するサブフィードバック制御量を求めるために使用される制御用酸素吸蔵量及び目標酸素吸蔵量を決定・選択するためのルーチンを示したフローチャートである。
【図32】 第3実施形態の変形例に係る排気浄化装置のCPUが実行するサブフィードバック制御量を求めるためのルーチンを示したフローチャートである。
【符号の説明】
10…内燃機関、25…燃焼室、39…インジェクタ、52…エキゾーストパイプ(排気管)、53…第1触媒、54…第2触媒、55…第3触媒、66…最上流空燃比センサ、67…第1触媒下流空燃比センサ、68…第2触媒下流空燃比センサ、69…第3触媒下流空燃比センサ、70…電気制御装置、71…CPU。
Claims (3)
- 内燃機関の排気通路に直列に介装された複数の触媒と、
前記複数の触媒の各酸素吸蔵能力を表す値を取得する酸素吸蔵能力取得手段と、
前記取得された酸素吸蔵能力を表す値に基づいて所定の酸素吸蔵能力よりも大きい酸素吸蔵能力を有すると判定される触媒のうち前記排気通路の最も上流に介装された触媒の排気浄化の状態を表す値を取得する排気浄化状態取得手段と、
前記取得された排気浄化の状態を表す値が所定の値となるように前記最も上流に配設された触媒に流入するガスの空燃比を制御する空燃比制御手段と、
を備えた内燃機関の排気浄化装置。 - 内燃機関の排気通路に介装された単数又は複数の触媒からなる触媒装置と、
前記触媒装置を同触媒装置に流入するガスの流れ方向に沿って複数のブロックに仮想的に分割したときの各ブロックの最大酸素吸蔵量を取得する取得手段と、
値nを自然数とするとき前記触媒装置の最上流のブロックである第1番目のブロックから第n番目のブロックまでのブロックにより構成される第n触媒装置上流部の最大酸素吸蔵量積算値を同第1番目のブロックから同第n番目のブロックまでの各ブロックの前記最大酸素吸蔵量を積算することにより求めるとともに、その求めた第n触媒装置上流部の最大酸素吸蔵量積算値が所定の閾値より大きいか否かを判定するステップを、値nを1から次第に増大させながら繰り返し実行する手段と、
前記最大酸素吸蔵量積算値が所定の閾値より大きいと最初に判定されたときの値nが値kであるとき、第1番目のブロックから第k番目のブロックまでのブロックにより構成される第k触媒装置上流部の排気浄化の状態を表す値又は同第k番目のブロックの排気浄化の状態を表す値を取得する排気浄化状態取得手段と、
前記取得された排気浄化の状態を表す値が所定の値となるように前記触媒装置に流入するガスの空燃比を制御する空燃比制御手段と、
を備えた内燃機関の排気浄化装置。 - 請求項2に記載の内燃機関の排気浄化装置において、
前記排気浄化状態取得手段は、前記第k触媒装置上流部の酸素吸蔵量、又は、前記第k触媒装置上流部の第k番目のブロックから流出する特定成分の量に応じた値を前記排気浄化の状態を表す値として取得するように構成された内燃機関の排気浄化装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002281690A JP4103522B2 (ja) | 2002-09-26 | 2002-09-26 | 内燃機関の排気浄化装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002281690A JP4103522B2 (ja) | 2002-09-26 | 2002-09-26 | 内燃機関の排気浄化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004116417A JP2004116417A (ja) | 2004-04-15 |
JP4103522B2 true JP4103522B2 (ja) | 2008-06-18 |
Family
ID=32276074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002281690A Expired - Fee Related JP4103522B2 (ja) | 2002-09-26 | 2002-09-26 | 内燃機関の排気浄化装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4103522B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4679335B2 (ja) * | 2005-11-01 | 2011-04-27 | 日立オートモティブシステムズ株式会社 | 内燃機関の制御装置 |
-
2002
- 2002-09-26 JP JP2002281690A patent/JP4103522B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004116417A (ja) | 2004-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3972748B2 (ja) | 内燃機関の排気浄化装置 | |
JP3846375B2 (ja) | 触媒劣化判定方法 | |
JP4380745B2 (ja) | 内燃機関の触媒の劣化度合い取得装置 | |
WO2012039064A1 (ja) | 内燃機関の空燃比制御装置 | |
JP4511954B2 (ja) | 内燃機関の燃料噴射制御装置 | |
JP3922091B2 (ja) | 内燃機関の空燃比制御装置 | |
JP5062120B2 (ja) | 内燃機関の排気浄化のための制御装置 | |
JP4082130B2 (ja) | 触媒劣化判定装置 | |
JP5287959B2 (ja) | 内燃機関の制御装置 | |
JP2012225266A (ja) | 内燃機関の制御装置 | |
JP4103522B2 (ja) | 内燃機関の排気浄化装置 | |
JP2003314334A (ja) | 内燃機関の空燃比制御装置 | |
JP4239521B2 (ja) | 内燃機関の排気浄化装置 | |
JP2004263591A (ja) | 内燃機関の排気浄化装置 | |
JP2003301717A (ja) | 触媒劣化判定方法 | |
JP4048959B2 (ja) | 内燃機関の排気浄化装置 | |
JP4069367B2 (ja) | 内燃機関の排気浄化装置 | |
JP4349205B2 (ja) | 空燃比制御装置 | |
JP2004300981A (ja) | 触媒劣化判定装置 | |
JP2012087670A (ja) | 内燃機関の空燃比制御装置 | |
JP4023174B2 (ja) | 触媒劣化判定装置 | |
JP2004251123A (ja) | 内燃機関の排気浄化装置 | |
JP3879596B2 (ja) | 空燃比センサ状態判定装置 | |
JP2004092472A (ja) | 内燃機関の排気浄化装置 | |
JP2004270581A (ja) | 内燃機関の排気浄化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050526 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071127 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080123 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080304 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080317 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110404 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |