JP2004263591A - 内燃機関の排気浄化装置 - Google Patents
内燃機関の排気浄化装置 Download PDFInfo
- Publication number
- JP2004263591A JP2004263591A JP2003052811A JP2003052811A JP2004263591A JP 2004263591 A JP2004263591 A JP 2004263591A JP 2003052811 A JP2003052811 A JP 2003052811A JP 2003052811 A JP2003052811 A JP 2003052811A JP 2004263591 A JP2004263591 A JP 2004263591A
- Authority
- JP
- Japan
- Prior art keywords
- catalyst
- value
- air
- amount
- fuel ratio
- 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.)
- Pending
Links
Images
Classifications
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D41/00—Electrical control of supply of combustible mixture or its constituents
- F02D41/02—Circuit arrangements for generating control signals
- F02D41/021—Introducing corrections for particular conditions exterior to the engine
- F02D41/0235—Introducing corrections for particular conditions exterior to the engine in relation with the state of the exhaust gas treating apparatus
- F02D41/0295—Control according to the amount of oxygen that is stored on the exhaust gas treating apparatus
Landscapes
- Engineering & Computer Science (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Mechanical Engineering (AREA)
- General Engineering & Computer Science (AREA)
- Exhaust Gas After Treatment (AREA)
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
Abstract
【課題】排気通路に直列に配置された複数の触媒(触媒部)を備えた内燃機関に対して適切に設定された各触媒部についてのフィードバックゲインに基づいて空燃比フィードバック制御を行える排気浄化装置を提供すること。
【解決手段】この排気浄化装置は、触媒内における酸素吸蔵反応を考慮した触媒モデルを利用して触媒装置を構成する第1〜第3触媒53〜55の各々から流出する排ガス中の各酸素の過不足量を求める。そして、第1〜第3触媒53〜55についての各フィードバックゲイン(比例ゲイン)を下流側のものほど大きくなるように設定し、前記各酸素の過不足量に同各フィードバックゲインをそれぞれ乗じた値に基づき各触媒についてのフィードバック制御量をそれぞれ求め、これらの和として求めた触媒装置についてのフィードバック制御量が「0」になるように機関に供給される混合気の空燃比をフィードバック制御する。
【選択図】 図1
【解決手段】この排気浄化装置は、触媒内における酸素吸蔵反応を考慮した触媒モデルを利用して触媒装置を構成する第1〜第3触媒53〜55の各々から流出する排ガス中の各酸素の過不足量を求める。そして、第1〜第3触媒53〜55についての各フィードバックゲイン(比例ゲイン)を下流側のものほど大きくなるように設定し、前記各酸素の過不足量に同各フィードバックゲインをそれぞれ乗じた値に基づき各触媒についてのフィードバック制御量をそれぞれ求め、これらの和として求めた触媒装置についてのフィードバック制御量が「0」になるように機関に供給される混合気の空燃比をフィードバック制御する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は排気通路に三元触媒を介装した内燃機関の排気浄化装置に関する。
【0002】
【従来の技術】
従来より、内燃機関の始動直後の排気浄化性能を確保するとするとともに、完全暖機後の排気浄化性能を一層向上するため、機関の排気通路にスタート・コンバータと云われる三元触媒(以下、「第1触媒」と称呼する。)を配設するとともに、第1触媒よりも下流の排気通路にアンダ・フロア・コンバータと云われる三元触媒(以下、「第2触媒」と称呼する。)を配設する構成が採用されることがある。この場合、第1触媒は第2触媒に比べて機関の排気ポートに近い位置に配設され、温度の高い排ガスが流入するから、始動から短期間内に暖機されて良好な排気浄化機能を発揮する。一方、第2触媒は、第1触媒よりも暖機に要する時間が長いが、一旦暖機した後においては第1触媒と協働して優れた排気浄化機能を発揮する。
【0003】
このように第1触媒と第2触媒とを内燃機関の排気通路に直列に配設した従来の排気浄化装置は、例えば、特許文献1に記載されているように、機関と第1触媒の間、第1触媒と第2触媒の間、及び第2触媒の下流にそれぞれ空燃比センサ(酸素濃度センサ)を配設し、第2触媒下流の空燃比センサが非活性状態にある場合、第1触媒と第2触媒の間の空燃比センサの出力に基づいて得られるフィードバック制御量に基づいて機関に供給される混合気の空燃比をフィードバック制御するとともに、第2触媒下流の空燃比センサが活性状態にある場合、第2触媒下流の空燃比センサの出力に基づいて得られるフィードバック制御量に基づいて機関に供給される混合気の空燃比をフィードバック制御するようになっている。
【0004】
【特許文献1】
特開平6−294342号公報
【0005】
【発明が解決しようとする課題】
ところで、上記のような空燃比センサの出力に基づく空燃比のフィードバック制御においては、前記フィードバック制御量が大きく計算されると機関に供給される混合気について比較的大きな空燃比変化が発生し、この結果、かかる大きな空燃比変化に伴って機関の出力が変動し、ドライバビリティが悪化するという問題がある。従って、ドライバビリティの悪化を抑制するという観点から、フィードバック制御量の大きさを左右するフィードバックゲイン(例えば、空燃比フィードバック制御を比例積分制御で行う場合、比例ゲイン、及び積分ゲイン)をドライバビリティが悪化しない程度に小さい値に設定する必要がある。
【0006】
一方、前記フィードバック制御量が小さく計算されると、空燃比センサの出力が理論空燃比に相当する値から偏移したとき同理論空燃比に相当する値に復帰するまでの時間が比較的長くなる。即ち、排ガス中の未燃成分(HC,CO)又は窒素酸化物(NOx)(以下、「エミッション」と称呼する。)が空燃比センサの上流に位置する触媒から流出する可能性が高い時間が比較的長くなる。従って、排気浄化の観点からは、フィードバック制御により空燃比にハンチングが発生しない程度に前記フィードバックゲインを比較的大きい値に設定する必要がある。
【0007】
更に、第1触媒と第2触媒の間の空燃比センサの出力に基づいて得られるフィードバック制御量に基づいて空燃比フィードバック制御を行う場合には、仮に第1触媒からエミッションが流出しても、同第1触媒の下流に位置する第2触媒によりこれを浄化し得る可能性があることから、この場合、排気浄化の観点から前記フィードバックゲインを大きい値に設定する要求の程度は比較的少ない。一方、第2触媒下流の空燃比センサの出力に基づいて得られるフィードバック制御量に基づいて空燃比フィードバック制御を行う場合には、第2触媒からエミッションが流出すると、同第2触媒の下流にはこれを浄化する手段が存在しないから、この場合、排気浄化の観点から前記フィードバックゲインを大きい値に設定する要求の程度は大きい。
【0008】
以上のことから、複数の触媒が内燃機関の排気通路に直列に介装されている場合においては、ドライバビリティの悪化を抑制するとともに排気浄化を確実に行うため、各触媒の下流にそれぞれ位置する各空燃比センサについての(各触媒についての)フィードバックゲインは、対応する触媒が前記排気通路の下流側のものほど大きく設定されることが好ましい。しかしながら、上記開示された装置においては、各触媒(第1触媒及び第2触媒)についてのフィードバックゲインは等しく設定されているから各フィードバックゲインを共に適切な値に設定することができず、この結果、ドライバビリティの悪化を抑制することと排気浄化を確実に行うこととの両立を図ることができないという問題がある。
【0009】
従って、本発明の目的は、排気通路に直列に配置された複数の触媒(触媒部)を備えた内燃機関に対して空燃比フィードバック制御を行う排気浄化装置において、フィードバックゲインを適切に設定し得るものを提供することにある。
【0010】
【発明の概要】
本発明の特徴は、内燃機関の排気通路に介装された単数の触媒又は同排気通路に直列に介装された複数の触媒からなる触媒装置と、前記触媒装置を同触媒装置に流入するガスの流れ方向に沿って複数の触媒部に分割して捉えたときの各触媒部の排気浄化の状態を表す値を取得する排気浄化状態取得手段と、前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値とに基づく値、及び同各触媒部についてのフィードバックゲインに基づいて同各触媒部についてのフィードバック制御量を算出するとともに、同各触媒部についてのフィードバック制御量のうち少なくとも一つに基づいて前記触媒装置についてのフィードバック制御量を算出するフィードバック制御量算出手段と、前記触媒装置についてのフィードバック制御量に基づいて同触媒装置に流入するガスの空燃比をフィードバック制御する空燃比制御手段と、を備えた内燃機関の排気浄化装置において、前記フィードバック制御量算出手段が使用する前記各触媒部についてのフィードバックゲインは、対応する触媒部が前記排気通路のより下流側のものほど、前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値とに基づく値が同一であるときの同対応する触媒部についてのフィードバック制御量が大きくなるように設定されたことにある。
【0011】
ここにおいて、前記「触媒部」は、複数の触媒からなる触媒装置の各々の触媒(全体)を各々の触媒部として(触媒単位で)捉えたときのものであっても、単数の触媒からなる触媒装置の同単数の触媒を排ガスの流れ方向に沿って複数のブロックに仮想的に分割したときの各々のブロックを各々の触媒部として捉えたときのものであってもよい。また、触媒装置が複数の触媒からなる場合、前記触媒単位で捉えられた触媒部と、前記単数の触媒を仮想的に分割したときの複数の触媒部とが混在してもよい。
【0012】
また、前記フィードバック制御量算出手段は、前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値との偏差に同各触媒部についてのフィードバックゲイン(例えば、フィードバック制御を比例積分制御で行うとすると、比例ゲイン、及び積分ゲイン)を乗じた値に基づいて同各触媒部についてのフィードバック制御量を算出するように構成されるとともに、同フィードバック制御量算出手段が使用する同各触媒部についてのフィードバックゲインは、対応する触媒部が前記排気通路のより下流側のものほど大きくなるように設定されることが好適である。また、前記フィードバック制御量算出手段は、前記各触媒部についてのフィードバック制御量の総てに基づいて前記触媒装置についてのフィードバック制御量を算出するように構成されていてもよいし、前記各触媒部についてのフィードバック制御量のうち内燃機関の運転状態、各空燃比センサの状態、各触媒部の排気浄化の状態等に応じて選択された一部に基づいて同触媒装置についてのフィードバック制御量を算出するように構成されていてもよい。
【0013】
また、各触媒部の排気浄化の状態を表す値を取得する排気浄化状態取得手段は、例えば、各々の触媒部の下流の排気通路(同各々の触媒部の下流側に単数又は複数の触媒部が存在する場合には同各々の触媒部の下流であって同各々の触媒部の下流側の最上流に位置する触媒部の上流の排気通路)に配設された空燃比センサにより同各々の触媒部から流出するガスの空燃比を同各触媒部の排気浄化の状態を表す値として物理的に検出する手段であっても、同各々の触媒部から流出するガス中の特定成分の量に関する値(例えば、特定成分の濃度、又は特定成分の絶対量等)を同各触媒部の排気浄化の状態を表す値として同各々の触媒部内における反応を考慮した計算により推定(取得)する手段であっても、同各々の触媒部内に吸蔵される酸素量(以下、「酸素吸蔵量」と称呼する。)に関する値(例えば、同各々の触媒部全体の酸素吸蔵量、又は同各々の触媒部の上流側部分の酸素吸蔵量等)を同各触媒部の排気浄化の状態を表す値として同各々の触媒部内における反応を考慮した計算により推定(取得)する手段であってもよい。前記特定成分とは、例えば、一酸化炭素CO、炭化水素HC、窒素酸化物NOx等の触媒で浄化すべき成分や、酸素O2(の過不足量)等のことを云う。
【0014】
また、前記触媒装置に流入するガスの空燃比をフィードバック制御する空燃比制御手段は、例えば、機関に供給される混合気の空燃比を制御する手段であってもよく、或いは、同機関に吸入される混合気の空燃比の制御を行うとともに、同触媒装置の上流の排気通路に備えられたノズル等から空気や燃料を供給することで同触媒装置に流入するガスの空燃比を制御する手段であってもよい。なお、機関に供給される混合気の空燃比を制御すれば、触媒装置に流入するガスの空燃比を制御することができる。
【0015】
このような上記本発明の特徴に係る排気浄化装置によれば、各触媒部についてのフィードバックゲインは、対応する触媒部が排気通路のより下流側のものほど、各触媒部の排気浄化の状態を表す値(例えば、各触媒部から流出するガス中の前記特定成分の絶対量)と同排気浄化の状態を表す値の目標値(例えば、「0」又は「0」近傍の値(範囲))とに基づく値(例えば、各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値との偏差)が同一であるときの同対応する触媒部についてのフィードバック制御量が大きくなるように設定される。例えば、各触媒部についてのフィードバック制御量が、同各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値との偏差に同各触媒部についてのフィードバックゲインを乗じた値に基づいて算出するように構成されている場合、各触媒部についてのフィードバックゲインは、対応する触媒部が排気通路のより下流側のものほど大きくなるように設定され得る。
【0016】
従って、各触媒部のうち排気通路の上流側の触媒部についてのフィードバックゲインはドライバビリティが悪化しない程度に小さい値に設定され、且つ、各触媒部のうち排気通路の下流側の触媒部についてのフィードバックゲインは排気浄化を確実に行うためフィードバック制御により空燃比にハンチングが発生しない程度に大きい値に設定され得る。この結果、先に説明したように、各触媒部についてのフィードバックゲインをそれぞれ適切に設定することができ、(特に、機関に供給される混合気の空燃比を制御することで触媒装置に流入するガスの空燃比を制御する場合)ドライバビリティの悪化を抑制することと排気浄化を確実に行うこととの両立を図ることができる。
【0017】
この場合、前記フィードバック制御量算出手段は、(常時)前記各触媒部についてのフィードバック制御量の総てに基づいて前記触媒装置についてのフィードバック制御量を算出するように構成されることが好適である。これによれば、例えば、各触媒部のうち排気通路の上流側の触媒部の排気浄化の状態を表す値とその値の目標値との偏差(のみ)が大きくなった場合(同上流側の触媒部からエミッションが流出する可能性が高い場合)、小さい値に設定されたフィードバックゲインに基づいて触媒装置についてのフィードバック制御量が小さめに計算されるとともに、各触媒部のうち排気通路の下流側の触媒部の排気浄化の状態を表す値とその値の目標値との偏差が大きくなった場合(同下流側の触媒部からエミッションが流出する可能性が高い場合)、大きい値に設定されたフィードバックゲインに基づいて同触媒装置についてのフィードバック制御量が大きめに計算され得る。
【0018】
即ち、各触媒部についてのフィードバック制御量のうち触媒装置についてのフィードバック制御量を算出するために使用するものを同各触媒部の排気浄化の状態等に応じて逐次選択する手段等を設けることなく、簡易な構成にて、ドライバビリティの悪化を抑制することと排気浄化を確実に行うこととの両立を図ることができる。
【0019】
前記何れかの排気浄化装置においては、前記フィードバック制御量算出手段は、前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値とに基づく値に応じて前記各触媒部についてのフィードバックゲインに重み付けした値をそれぞれ求めるとともに、同各触媒部についてのフィードバックゲインの代わりに同重み付けされた各値に基づいて同各触媒部についてのフィードバック制御量を算出するように構成されることが好適である。
【0020】
後に詳述するように、触媒の酸素吸蔵量は、同触媒に流入するガスの空燃比が理論空燃比よりもリーン空燃比であるときに増加するとともに同触媒に流入するガスの空燃比が理論空燃比よりもリッチ空燃比であるときに減少する。また、排気浄化の観点から、触媒の酸素吸蔵量が同触媒に吸蔵され得る酸素の最大量(以下、「最大酸素吸蔵量」と称呼する。)の略半分の量(目標酸素吸蔵量)になるように同触媒(触媒装置)に流入するガスの空燃比が制御されることが好ましい。これに対し、前記各触媒部のうち何れかの排気浄化の状態を表す値とその値の目標値との偏差が大きくなった場合(同何れかの触媒部からエミッションが流出する可能性が高い場合)、同何れかの触媒部の酸素吸蔵量が前記目標酸素吸蔵量から大きく偏移している可能性が高いから、早急に同何れかの触媒部の酸素吸蔵量を同目標酸素吸蔵量に復帰させる方向に空燃比を制御する必要がある。
【0021】
かかる観点に基づき、上記のように構成すれば、例えば、各触媒部の排気浄化の状態を表す値とその値の目標値との偏差の増加に応じて同各触媒部についてのフィードバックゲインにより大きく重み付けした値をそれぞれ求め、同各触媒部についてのフィードバックゲインの代わりに同重み付けされた各値に基づいて同各触媒部についてのフィードバック制御量を算出するように構成することができる。従って、前記偏差が大きくなった触媒部が存在する場合、同偏差が大きくなった触媒部についてのフィードバック制御量(従って、触媒装置についてのフィードバック制御量)を、同触媒部の酸素吸蔵量を同目標酸素吸蔵量に復帰させる方向に空燃比を制御するための大きい値として求めることができ、この結果、同偏差が大きくなった触媒部の酸素吸蔵量を目標酸素吸蔵量に早急に復帰させることが可能となる。
【0022】
この場合、前記フィードバック制御量算出手段は、前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値とに基づく値(例えば、前記偏差)が前記触媒装置に流入するガスの空燃比をリッチ側に補正するための値となる場合と同触媒装置に流入するガスの空燃比をリーン側に補正するための値となる場合とで、同各触媒部についてのフィードバックゲインに重み付けする程度が異なるように構成されることが好適である。
【0023】
一般に、触媒に流入するガスの空燃比が理論空燃比から所定の程度だけリーンであるときの同触媒の酸素吸蔵量の増加速度は、同触媒に流入するガスの空燃比が理論空燃比から同所定の程度と同程度だけリッチであるときの同触媒の酸素吸蔵量の減少速度よりも速いことが種々の実験等を通じて判明している。また、触媒の酸素吸蔵量の変化速度は、同触媒に流入するガスの空燃比の理論空燃比からの偏移量が大きいほど速くなる。
【0024】
ここで、上記のように構成すれば、例えば、前記偏差が正の値となる場合と負の値となる場合とで同偏差の絶対値が同一であるとき、同偏差が前記触媒装置に流入するガスの空燃比をリッチ側に補正するための値(例えば、正の値)となる場合の方が同触媒装置に流入するガスの空燃比をリーン側に補正するための値(例えば、負の値)となる場合よりも、各触媒部についてのフィードバックゲインに重み付けする程度が大きくなるように構成することができる。
【0025】
従って、前記偏差が前記触媒装置に流入するガスの空燃比をリッチ側に補正するための値となる場合における同偏差(の絶対値)と、同偏差が同触媒装置に流入するガスの空燃比をリーン側に補正するための値となる場合における同偏差(の絶対値)とが等しいとき、同触媒装置に流入するガスの空燃比の理論空燃比からリッチ側への偏移量を同触媒装置に流入するガスの空燃比の理論空燃比からリーン側への偏移量よりも大きくすることができる。この結果、各触媒部の酸素吸蔵量の増加速度と減少速度とを等しくすることができるから、各触媒部の酸素吸蔵量を効率良く前記目標酸素吸蔵量に維持させることができる。
【0026】
また、上記何れかの排気浄化装置においては、前記排気浄化状態取得手段は、前記各触媒部から流出するガス中の特定成分の量に関する値を前記各触媒部の排気浄化の状態を表す値として、同各触媒部内における反応を考慮した計算により取得するように構成されることが好適である。
【0027】
各々の触媒部の下流の排気通路に配設された空燃比センサ(例えば、O2センサ)により同各々の触媒部から流出するガスの空燃比を同各触媒部の排気浄化の状態を表す値として物理的に検出する場合、各々の触媒部から流出した排ガスは同流出した時点から所定時間後に空燃比センサに到達し、その後、空燃比センサの応答遅れ時間が経過した時点で、その空燃比が検出される。従って、各々の触媒部から流出するガスの空燃比の変化が空燃比センサの出力変化として現れるまでには所定の時間が必要である。
【0028】
これに対し、上記のように、各触媒部から流出するガス中の特定成分の量に関する値を前記各触媒部の排気浄化の状態を表す値として、同各触媒部内における反応を考慮した計算により取得するように構成するとともに前記目標値を「0」又は「0」近傍の値(範囲)に設定すれば、前記空燃比センサの出力変化よりも早い時点で各々の触媒部の排気浄化の状態に関する情報を取得できるので、より適切に触媒装置に流入するガスの空燃比を制御することが可能となる。また、各触媒部から流出するガス中の特定成分の量を略「0」に維持し得るから、エミッションの排出量を一層低減することができる。
【0029】
同様に、上記何れかの排気浄化装置においては、前記排気浄化状態取得手段は、前記各触媒部の酸素吸蔵量に関する値を前記各触媒部の排気浄化の状態を表す値として、同各触媒部内における反応を考慮した計算により取得するように構成されることが好適である。
【0030】
このように、各触媒部の酸素吸蔵量に関する値を前記各触媒部の排気浄化の状態を表す値として、同各触媒部内における反応を考慮した計算により取得するように構成するとともに前記目標値を目標酸素吸蔵量(前記最大酸素吸蔵量の略半分の量)に設定しても、前記空燃比センサの出力変化よりも早い時点で各々の触媒部の排気浄化の状態に関する情報を取得できるので、より適切に触媒装置に流入するガスの空燃比を制御することが可能となる。また、各触媒部の酸素吸蔵量を目標酸素吸蔵量近傍に維持し得るから、同各触媒部に流入するガスの空燃比が一時的に理論空燃比から相当に乖離しても同各触媒部は同ガスを効率良く浄化することができるからエミッションの排出量を一層低減することができる。
【0031】
【発明の実施の形態】
<第1実施形態>
以下、本発明による内燃機関の排気浄化装置の各実施形態について図面を参照しながら説明する。図1は、本発明の第1実施形態に係る内燃機関の排気浄化装置を火花点火式多気筒(4気筒)内燃機関10に適用したシステムの概略構成を示している。なお、図1においては、一つの気筒の断面が示されているが、他の気筒も同様の構成を備えている。
【0032】
この内燃機関10は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部20と、シリンダブロック部20の上に固定されるシリンダヘッド部30と、シリンダブロック部20にガソリン混合気を供給するための吸気系統40と、シリンダブロック部20からの排ガスを外部に放出するための排気系統50とを含んでいる。
【0033】
シリンダブロック部20は、シリンダ21、ピストン22、コンロッド23、及びクランク軸24を含んでいる。ピストン22はシリンダ21内を往復動し、ピストン22の往復動がコンロッド23を介してクランク軸24に伝達され、これにより同クランク軸24が回転するようになっている。シリンダ21とピストン22のヘッドは、シリンダヘッド部30とともに燃焼室25を形成している。
【0034】
シリンダヘッド部30は、燃焼室25に連通した吸気ポート31、吸気ポート31を開閉する吸気弁32、吸気弁32を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置33、可変吸気タイミング装置33のアクチュエータ33a、燃焼室25に連通した排気ポート34、排気ポート34を開閉する排気弁35、排気弁35を駆動するエキゾーストカムシャフト36、点火プラグ37、点火プラグ37に与える高電圧を発生するイグニッションコイルを含むイグナイタ38、及び燃料を吸気ポート31内に噴射するインジェクタ(燃料噴射手段)39を備えている。
【0035】
吸気系統40は、吸気ポート31に連通し同吸気ポート31とともに吸気通路を形成するインテークマニホールドを含む吸気管41、吸気管41の端部に設けられたエアフィルタ42、吸気管41内にあって吸気通路の開口断面積を可変とするスロットル弁43、及びスロットル弁駆動手段を構成するDCモータからなるスロットル弁アクチュエータ43aを備えている。
【0036】
排気系統50は、排気ポート34に連通したエキゾーストマニホールド51、エキゾーストマニホールド51に接続されたエキゾーストパイプ(排気管)52、エキゾーストパイプ52に配設(介装)された第1触媒(最上流三元触媒、又はスタート・コンバータとも云う。)53、第1触媒53の下流のエキゾーストパイプ52に配設(介装)された第2触媒(中間三元触媒、又は、車両のフロア下方に配設されるため、第1アンダ・フロア・コンバータとも云う。)54、及び第2触媒54の下流のエキゾーストパイプ52に配設(介装)された第3触媒(最下流三元触媒、又は、第2アンダ・フロア・コンバータとも云う。)55を備えている。排気ポート34、エキゾーストマニホールド51、及びエキゾーストパイプ52は、排気通路を構成している。また、この排気通路に直列に介装された第1触媒53、第2触媒54、及び第3触媒55は触媒装置を構成している。
【0037】
一方、このシステムは、熱線式エアフローメータ61、スロットルポジションセンサ62、カムポジションセンサ63、クランクポジションセンサ64、水温センサ65、第1触媒53の上流の排気通路に配設された空燃比センサ66(以下、「最上流空燃比センサ66」と称呼する。)、第1触媒53の下流であって第2触媒54の上流の排気通路に配設された空燃比センサ67(以下、「第1触媒下流空燃比センサ67」と称呼する。)、第2触媒54の下流であって第3触媒55の上流の排気通路に配設された空燃比センサ68(以下、「第2触媒下流空燃比センサ68」と称呼する。)、第3触媒55の下流の排気通路に配設された空燃比センサ69(以下、「第3触媒下流空燃比センサ69」と称呼する。)、及びアクセル開度センサ82を備えている。
【0038】
熱線式エアフローメータ61は、吸気管41内を流れる吸入空気の質量流量を検出し、同質量流量Gaを表す信号を出力するようになっている。スロットルポジションセンサ62は、スロットル弁43の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ63は、インテークカムシャフトが90°回転する毎に(即ち、クランク軸24が180°回転する毎に)一つのパルスを有する信号(G2信号)を発生するようになっている。クランクポジションセンサ64は、クランク軸24が10°回転する毎に幅狭のパルスを有するとともに同クランク軸24が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。水温センサ65は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【0039】
最上流空燃比センサ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を表す信号を出力するようになっている。
【0040】
更に、このシステムは電気制御装置70を備えている。電気制御装置70は、互いにバスで接続されたCPU71、CPU71が実行するルーチン(プログラム)、テーブル(ルックアップテーブル、マップ)、及び定数等を予め記憶したROM72、CPU71が必要に応じてデータを一時的に格納するRAM73、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップRAM74、並びにADコンバータを含むインターフェース75等からなるマイクロコンピュータである。インターフェース75は、前記センサ61〜69,82と接続され、CPU71にセンサ61〜69,82からの信号を供給するとともに、同CPU71の指示に応じて可変吸気タイミング装置33のアクチュエータ33a、イグナイタ38、インジェクタ39、及びスロットル弁アクチュエータ43aに駆動信号を送出するようになっている。
【0041】
(空燃比フィードバック制御の概要)
次に、上記のように構成された内燃機関の排気浄化装置が行う空燃比フィードバック制御の概要について説明する。
【0042】
第1触媒53(第2触媒54及び第3触媒55も同様である。)等の三元触媒は、同三元触媒に流入するガスの空燃比が理論空燃比であるときに、HC,COを酸化するとともにNOxを還元し、これらの有害成分を高い効率で浄化する。また、三元触媒は、酸素を吸蔵・放出する機能(酸素吸蔵機能、酸素吸蔵・放出機能)を有し、この酸素吸蔵・放出機能により、空燃比が理論空燃比からある程度まで偏移したとしても、HC,CO、及びNOxを浄化することができる。即ち、機関の空燃比がリーンとなって三元触媒に流入するガスにNOxが多量に含まれると、三元触媒はNOxから酸素分子を奪って同酸素分子を吸蔵するとともに同NOxを還元し、これによりNOxを浄化する。また、機関の空燃比がリッチになって三元触媒に流入するガスにHC,COが多量に含まれると、三元触媒はこれらに吸蔵している酸素分子を与えて(放出して)酸化し、これによりHC,COを浄化する。換言すれば、三元触媒に流入する排ガスの空燃比がリッチである場合には同三元触媒の酸素吸蔵量が減少するとともに三元触媒に流入する排ガスの空燃比がリーンである場合には同三元触媒の酸素吸蔵量が増加する。
【0043】
従って、三元触媒が連続的に流入するリッチ空燃比の排ガス中にある多量のHC,COを効率的に浄化するためには、同三元触媒が酸素を多量に貯蔵していなければならず、逆に連続的に流入するリーン空燃比の排ガス中にある多量のNOxを効率的に浄化するためには、同三元触媒が酸素を十分に貯蔵し得る状態になければならないことになる。以上のことから、HC,COやNOxを効率よく浄化するため三元触媒である第1〜第3触媒53〜55内の酸素吸蔵量がそれぞれ最大酸素吸蔵量の半分の量(目標酸素吸蔵量)になるように機関に供給される混合気の空燃比(従って、触媒装置に流入する排ガスの空燃比)が制御されることが好ましい。
【0044】
一方、三元触媒の酸素吸蔵量が最大酸素吸蔵量に近づくほど同三元触媒が有する前記酸素吸蔵機能が低下して同三元触媒からNOxが多量に排出され得るようになる。即ち、三元触媒から流出する排ガスの状態が酸素が大きく過剰な状態になり得るようになる。これに対し、三元触媒の酸素吸蔵量が「0」に近づくほど同三元触媒が有する前記酸素放出機能が低下して同三元触媒から未燃HC,COが多量に排出され得るようになる。即ち、三元触媒から流出する排ガスの状態が酸素が大きく不足している状態になり得るようになる。
【0045】
以上のことから、第1〜第3触媒53〜55内の酸素吸蔵量がそれぞれ最大酸素吸蔵量の半分の量に維持され得るように制御するためには、第1〜第3触媒53〜55から流出する排ガス中の各々の酸素の過不足量(特定成分の量に関する値)を推定し、同各々の酸素の過不足量が目標値「0」になるように機関に供給される混合気の空燃比(従って、触媒装置に流入するガスの空燃比)をフィードバック制御することができれば好適であると考えられる。
【0046】
また、このような空燃比フィードバック制御においては、空燃比を補正するための触媒装置についてのフィードバック制御量が大きく計算されると比較的大きな空燃比変化が発生することで機関の出力が変動し、ドライバビリティが悪化する。従って、ドライバビリティの悪化を抑制するという観点から、触媒装置についてのフィードバック制御量の大きさを左右するフィードバックゲインをドライバビリティが悪化しない程度に小さい値に設定する必要がある。
【0047】
一方、触媒装置についてのフィードバック制御量が小さく計算されると、各触媒53〜55からNOxや未燃HC,COが多量に流出している状態(各触媒53〜55から流出する排ガス中の酸素の過不足量の絶対値が大きい状態)になったとき、同状態から、各触媒53〜55からNOxや未燃HC,COが殆ど流出しない状態(各触媒53〜55から流出する排ガス中の酸素の過不足量が略「0」となる状態)に復帰するまでの時間が比較的長くなる。即ち、エミッションが多量に流出する可能性が高い時間が比較的長くなる。従って、排気浄化の観点からは、フィードバック制御により空燃比にハンチングが発生しない程度にフィードバックゲインを比較的大きい値に設定する必要がある。
【0048】
更に、仮に第1触媒53からエミッションが流出しても、第1触媒53の下流に位置する第2,第3触媒54,55によりこれを浄化し得る可能性があることから、第1触媒53から流出する排ガス中の酸素の過不足量についての(第1触媒53についての)フィードバックゲインを排気浄化の観点から大きい値に設定する要求の程度は少ない。これに対し、第3触媒55からエミッションが流出した場合、同第3触媒55の下流にはこれを浄化し得る手段が存在しないから、第3触媒55から流出する排ガス中の酸素の過不足量についての(第3触媒55についての)フィードバックゲインを排気浄化の観点から大きい値に設定する要求の程度は大きい。
【0049】
以上のことから、上記のように構成された内燃機関の排気浄化装置においては、第1触媒53についてのフィードバックゲインKpcg1をドライバビリティが悪化しない程度に小さい値に設定し、第3触媒55についてのフィードバックゲインKpcg3を空燃比にハンチングが発生しない程度に大きい値に設定するとともに、第2触媒54についてのフィードバックゲインKpcg2を両値の中間の値に設定することが好ましい。
【0050】
そこで、本排気浄化装置は、後に詳述する触媒モデルを各触媒53〜55にそれぞれ適用することで、各触媒53〜55から流出するガス中の各々の酸素の過不足量(流出酸素量)Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)を逐次求め、下記数1及び下記数2に従って、機関に供給される混合気の空燃比を補正するための触媒装置についてのフィードバック制御量(サブフィードバック制御量)vafsfbを求める。Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)は、酸素が過剰であるとき(即ち、排ガス中にO2及びNOxが過剰に存在するとき)正の値となり、酸素が不足しているとき(即ち、排ガス中に未燃HC,COが過剰に存在するとき)負の値となるように計算される。
【0051】
【数1】
DCgout1O2=Cgout1O2(N1)−Cgout1ref
DCgout2O2=Cgout2O2(N2)−Cgout2ref
DCgout3O2=Cgout3O2(N3)−Cgout3ref
【0052】
【数2】
vafsfb=Kpcg1・Kwc1・DCgout1O2+Kpcg2・Kwc2・DCgout2O2+Kpcg3・Kwc3・DCgout3O2
【0053】
上記数1において、Cgout1ref, Cgout2ref, Cgout3refは、第1〜第3触媒53〜55の各々の排気浄化の状態を表す値としての流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)の各々の目標値であり、本例では総て「0」である。従って、第1〜第3触媒53〜55についての偏差量DCgout1O2, DCgout2O2, DCgout3O2は、本例では、それぞれCgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)と等しい。また、第1〜第3触媒53〜55についての偏差量DCgout1O2, DCgout2O2, DCgout3O2は、正の値であるとき機関に供給される混合気の空燃比をリッチ側に補正するための値となり、負の値であるとき同空燃比をリーン側に補正するための値となる。
【0054】
また、上記数2において、Kpcg1, Kpcg2, Kpcg3は、それぞれ、第1〜第3触媒53〜55についてのフィードバックゲイン(比例ゲイン)であって、0 < Kpcg1 < Kpcg2 < Kpcg3 なる関係にある。Kwc1, Kwc2, Kwc3は、それぞれ、第1〜第3触媒53〜55についてのフィードバックゲインKpcg1, Kpcg2, Kpcg3を重み付けするための重み係数であり、図4に示すように、対応する触媒についての前記偏差量の絶対値の増加に応じて増加するように設定される。これは、前記偏差量の絶対値が大きい場合、対応する触媒の酸素吸蔵量が目標酸素吸蔵量(最大酸素吸蔵量の半分の量)からの大きく偏移している可能性が高いことから、早急に同対応する触媒の酸素吸蔵量を目標酸素吸蔵量に復帰させる必要があることに基づく。
【0055】
また、図4に示すように、重み係数Kwc1, Kwc2, Kwc3は、対応する触媒についての前記偏差が正の値(機関に供給される混合気の空燃比をリッチ側に補正するための値)となる場合と負の値(同空燃比をリーン側に補正するための値)となる場合とで同偏差の絶対値が等しいとき、同偏差が正の値となる場合の方が負の値となる場合よりも大きく設定される。これは、対応する触媒の酸素吸蔵量を効率良く目標酸素吸蔵量に維持させるためである。
【0056】
即ち、一般に、触媒に流入するガスの空燃比が理論空燃比から所定の程度だけリーンであるときの同触媒の酸素吸蔵量の増加速度が同触媒に流入するガスの空燃比が理論空燃比から同所定の程度と同程度だけリッチであるときの同触媒の酸素吸蔵量の減少速度よりも速い。また、触媒の酸素吸蔵量の変化速度は、同触媒に流入するガスの空燃比の理論空燃比からの偏移量が大きいほど速くなる。一方、対応する触媒についての前記偏差が正の値となる場合と負の値となる場合とで同偏差の絶対値が等しいとき、同対応する触媒の酸素吸蔵量の増加速度と減少速度とを等しくすることが同対応する触媒の酸素吸蔵量を効率良く目標酸素吸蔵量に維持させる上で好適である。以上のことから、上記のように重み係数Kwc1, Kwc2, Kwc3を設定することにより、対応する触媒についての前記偏差が正の値となる場合と負の値となる場合とで同偏差の絶対値が等しいときにおいて、触媒装置についてのフィードバック制御量(サブフィードバック制御量)vafsfbは正の値として計算される場合のその値が負の値として計算される場合のその絶対値よりも大きくなるように計算され得る。その結果、機関に供給される混合気の空燃比の理論空燃比からリッチ側への偏移量がリーン側への偏移量よりも大きくなるから、同対応する触媒の酸素吸蔵量の増加速度と減少速度とが等しくなって同対応する触媒の酸素吸蔵量が効率良く目標酸素吸蔵量に維持され得る。
【0057】
このように、本排気浄化装置は、各触媒53〜55についてのフィードバックゲインKpcg1, Kpcg2, Kpcg3の値をこの順に大きくなるように設定する。そして、本排気浄化装置は、各触媒53〜55の排気浄化の状態を表す値である同各触媒53〜55からの流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)とそれらの目標値Cgout1ref, Cgout2ref, Cgout3ref(総て「0」)との各々の偏差DCgout1O2, DCgout2O2, DCgout3O2に、フィードバックゲインKpcg1, Kpcg2, Kpcg3に同偏差DCgout1O2, DCgout2O2, DCgout3O2に応じて決定される重み係数Kwc1, Kwc2, Kwc3を乗じた値(フィードバックゲインKpcg1, Kpcg2, Kpcg3に同偏差DCgout1O2, DCgout2O2, DCgout3O2に応じて重み付けした値)をそれぞれ乗じることで、各触媒53〜55についてのフィードバック制御量Kpcg1・Kwc1・DCgout1O2, Kpcg2・Kwc2・DCgout2O2, Kpcg3・Kwc3・DCgout3O2をそれぞれ求め、これらの和として(これらの総てに基づいて)機関の空燃比をフィードバック制御(補正)するための触媒装置についてのフィードバック制御量(サブフィードバック制御量)vafsfbを求める。このようにして触媒装置についてのフィードバック制御量(サブフィードバック制御量)vafsfbを求める手段がフィードバック制御量算出手段に相当する。また、本例は、第1〜第3触媒53〜55の各々の触媒全体を各々の「触媒部」として捉え、触媒装置が3つの触媒部から構成される場合を示している。
【0058】
そして、本排気浄化装置は、上記のように求めたサブフィードバック制御量vafsfbに基づいて同サブフィードバック制御量vafsfbが「0」になるように機関に供給される混合気の空燃比(従って、触媒装置に流入するガスの空燃比)をフィードバック制御する。
【0059】
より具体的には、サブフィードバック制御量vafsfbが正の値(従って、機関に供給される混合気の空燃比をリッチ側に補正するための値)になると、同サブフィードバック制御量vafsfb分だけ最上流空燃比センサ66の出力vabyfsを補正し、これにより、機関に供給される混合気の空燃比が、同最上流空燃比センサ66の検出空燃比よりも見かけ上リーン側であるように設定し、その補正した見かけ上の空燃比が目標空燃比(機関の目標空燃比、ここでは理論空燃比)となるように同混合気の空燃比をフィードバック制御する。
【0060】
同様に、サブフィードバック制御量vafsfbが負の値(従って、機関に供給される混合気の空燃比をリーン側に補正するための値)になると、同サブフィードバック制御量vafsfb分だけ最上流空燃比センサ66の出力vabyfsを補正し、これにより、機関に供給される混合気の空燃比が、同最上流空燃比センサ66の検出空燃比よりも見かけ上リッチ側であるように設定し、その補正した見かけ上の空燃比が目標空燃比となるように同混合気の空燃比をフィードバック制御する。以上により、触媒装置に流入する排ガスの空燃比(の平均値)が目標空燃比(略理論空燃比)と一致せしめられる。
【0061】
また、このような空燃比フィードバック制御において、例えば、第1〜第3触媒53〜55についての偏差量DCgout1O2, DCgout2O2, DCgout3O2のうち第1触媒53についての偏差量DCgout1O2(の絶対値)のみが大きくなった場合(第1触媒53からのみエミッションが流出する可能性が高くなった場合)、小さい値に設定されたフィードバックゲインKpcg1に基づいてサブフィードバック制御量vabyfs(の絶対値)が小さめに計算されるとともに、第3触媒55についての偏差量DCgout3O2(の絶対値)が大きくなった場合(第3触媒55からエミッションが流出する可能性が高くなった場合)、大きい値に設定されたフィードバックゲインKpcg3に基づいてサブフィードバック制御量vabyfs(の絶対値)が大きめに計算され得る。従って、外部へのエミッションの排出の可能性が小さい場合にはフィードバック制御による空燃比の変動幅を小さくすることでドライバビリティの悪化を抑制することが優先され、外部へのエミッションの排出の可能性が大きい場合には制御の応答性を向上させることで排気浄化を確実に行うことが優先される。以上のように、サブフィードバック制御量vabyfsに基づいて機関に供給される混合気の空燃比(従って、触媒装置に流入するガスの空燃比)をフィードバック制御する手段が空燃比制御手段に相当する。
【0062】
(触媒モデル)
次に、先に説明した上記数1の計算にて使用する各触媒53〜55から流出する流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)を求めるために本実施形態の排気浄化装置が採用する触媒モデルについて説明する。一般に、触媒にリーンな空燃比のガスが流入したときには、同触媒の上流側においてより多くの酸素が吸蔵され、同触媒にリッチな空燃比のガスが流入したときには、同触媒の上流側から吸蔵されている酸素が消費されていく。従って、触媒内に吸蔵されている酸素は同触媒の排ガスの流れ方向において均一に分布しているわけではない。よって、触媒内の酸素吸蔵量を正確に求めるためには、係る吸蔵酸素の分布を考慮した計算を行う必要がある。
【0063】
また、触媒の酸素吸蔵量は同触媒内において発生する上記酸素吸蔵・放出反応の程度に応じて変化する。この酸素吸蔵・放出反応の程度は、触媒に流入する排ガスに含まれる上記酸素吸蔵・放出反応に関係する特定成分の量に依存する。従って、触媒の酸素吸蔵量を正確に求めるためには、触媒に流入する排ガス中の前記特定成分の量を考慮に入れた計算を行う必要がある。そして、触媒の酸素吸蔵量を正確に求めることにより、触媒から流出する排ガス中の前記特定成分の量を正確に求めることができる。そこで、本装置は以下に説明する触媒モデルを第1〜第3触媒53〜55に適用することにより、同第1〜第3触媒53〜55の各酸素吸蔵量を算出するとともに同第1〜第3触媒53〜55から流出する排ガス中の特定成分の量である前記流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)を求める。
【0064】
この触媒モデルにおいては、図5に模式的に示したように、軸線に直交する断面形状が一定である柱状の触媒を同軸線に直交する平面によりN個の(複数の)領域(「ブロック」とも称呼する。)に仮想的に分割する。即ち、触媒モデルが対象とする触媒は排ガスの流れ方向に沿ってN個のブロックに分割されている。分割された各ブロックの軸線方向の長さはLである。なお、説明の便宜上、各ブロックには、排ガスの流れ方向に沿って上流側から順に図16に示すように番号が付されている。また、任意のi番目のブロックに関連する変数・記号等には、それらの末尾に(i)が付される。
【0065】
この触媒モデルにおいては、図6に示したように、分割されたブロックのうちのi番目のブロック(i)(特定領域)に注目し、同ブロック(i)における酸素吸蔵・放出反応に関係する特定成分のCPU71の演算周期あたりの収支を考える。このとき、触媒での酸化・還元反応である三元反応は瞬時かつ完全に終了するものと仮定し、その結果としての酸素の過不足に基づく酸素の吸蔵・放出反応のみに着目するものとする。係る仮定(触媒モデル)は、現実的でありかつ計算精度のよいものである。なお、図6に示した排ガス相は排ガスが通過する空間であり、コート層は触媒機能(酸化還元機能)を発生せしめる白金(Pt)等の貴金属からなる活性成分及び酸素吸蔵機能を発生せしめるセリア(CeO2)等の成分が担持された層である。
【0066】
特定成分は、例えば、酸素(分子)O2、窒素酸化物NOx、一酸化炭素CO、炭化水素HCから選択された成分であってもよいが、この触媒モデルでは、上記三元反応が瞬時かつ完全に終了するものと仮定した状態における排ガスに含まれる酸素(酸素分子及び窒素酸化物の酸素。本明細書では、酸素分子及び窒素酸化物の酸素を総称して「酸素」と称呼する。)(の過不足)を特定成分として選択している。この酸素の量である酸素量CgO2は、同酸素が過剰であるとき(即ち、排ガス中にO2及びNOxが過剰に存在する場合)に正の値となり、同酸素が不足しているとき(即ち、排ガス中に未燃HC,COが過剰に存在する場合)に負の値となるように計算される。
【0067】
また、注目するブロック(i)において、CPU71の演算周期あたり同ブロック(i)の排ガス相に流入する酸素量CgO2を流入酸素量CginO2(i)、同演算周期あたり同ブロック(i)の排ガス相から流出する酸素量CgO2を流出酸素量CgoutO2(i)と称呼し、同演算周期あたり同ブロック(i)のコート層に吸蔵され又は同コート層から放出される酸素量CgO2を酸素吸蔵量変化量δOSA(i)と称呼する。この酸素吸蔵量変化量δOSA(i)は、酸素がコート層に吸蔵されるときに正の値となり、酸素がコート層から放出されるときに負の値となるように計算される。また、現時点におけるブロック(i)のコート層における酸素吸蔵量を酸素吸蔵量OSA(i)と称呼し、現時点におけるブロック(i)のコート層における最大酸素吸蔵量を最大酸素吸蔵量Cmax(i)と称呼する。
【0068】
いま、図6に示すブロック(i)における酸素量CgO2の上記演算周期あたりの収支を考えると、同ブロック(i)の排ガス相に流入した流入酸素量CginO2(i)のうち酸素吸蔵量変化量δOSA(i)だけがコート層に吸蔵され、同流入酸素量CginO2(i)のうちコート層に吸蔵されなかった残りの酸素量CgO2が流出酸素量CgoutO2(i)となるから、流入酸素量CginO2(i),流出酸素量CgoutO2(i)及び酸素吸蔵量変化量δOSA(i)の間には下記数3に示した関係が成立する。この下記数3に示した関係が本触媒モデルの基本式である。
【0069】
【数3】
CgoutO2(i)=CginO2(i)−δOSA(i)
【0070】
次に、酸素吸蔵量変化量δOSA(i)について考える。流入酸素量CginO2(i)が正の値のときはブロック(i)の排ガス相に流入する排ガス中に酸素が過剰に存在していることを意味し、同排ガス中の酸素の一部はブロック(i)のコート層に吸蔵されるから酸素吸蔵量変化量δOSA(i)は正の値となる。このときの酸素吸蔵反応の量、即ち酸素吸蔵量変化量δOSA(i)は、流入酸素量CginO2(i)の値に比例するとともにブロック(i)の現時点での最大酸素吸蔵量Cmax(i)と現時点での酸素吸蔵量OSA(i)との差の値に比例すると考えられる。従って、流入酸素量CginO2(i)が正の値のとき、酸素吸蔵量変化量δOSA(i)は下記数4及び下記数5に基づいて算出され得る。
【0071】
【数4】
δOSA(i)=H(i)・CginO2(i)
【0072】
【数5】
H(i)=h1・((Cmax(i)−OSA(i))/Cmax(i)) (0 ≦ H(i) < 1)
【0073】
上記数4及び上記数5において、H(i)はブロック(i)における流入酸素量CginO2(i)に対する吸蔵される酸素量(δOSA(i))の割合を示す反応率である。h1は酸素吸蔵時反応速度定数であり本モデルでは正の一定値としているが触媒の温度に応じて変化する正の値(例えば、触媒の温度の増加に応じて単調増加する正の値)としてもよい。また、上記数5における現時点での最大酸素吸蔵量Cmax(i)と現時点での酸素吸蔵量OSA(i)との差の値(Cmax(i)−OSA(i))は、ブロック(i)における現時点での酸素吸蔵余裕量を示している。このように、本触媒モデルでは、少なくとも触媒内の酸素吸蔵量に基づいて同触媒が内部に流入する排ガスから吸蔵する酸素量を算出する。
【0074】
一方、流入酸素量CginO2(i)が負の値のときはブロック(i)の排ガス相に流入する排ガス中の酸素が不足していることを意味し、同排ガスにはブロック(i)のコート層から放出された酸素が与えられるから酸素吸蔵量変化量δOSA(i)は負の値となる。このときの酸素放出反応の量、即ち酸素吸蔵量変化量δOSA(i)(の絶対値)は、流入酸素量CginO2(i)の値に比例するとともにブロック(i)の現時点での酸素吸蔵量OSA(i)の値に比例すると考えられる。従って、流入酸素量CginO2(i)が負の値のとき、酸素吸蔵量変化量δOSA(i)は上記数4と同一の関係を示す下記数6及び下記数7に基づいて算出され得る。
【0075】
【数6】
δOSA(i)=H(i)・CginO2(i)
【0076】
【数7】
H(i)=h2・(OSA(i)/Cmax(i)) (0 ≦ H(i) < 1)
【0077】
上記数6及び上記数7において、H(i)はブロック(i)における流入酸素量CginO2(i)(負の値)に対する放出される酸素量(δOSA(i),負の値)の割合を示す反応率である。h2は酸素放出時反応速度定数であり上記数5にて使用される酸素吸蔵時反応速度定数h1よりも小さい正の一定値である。この酸素放出時反応速度定数h2も触媒の温度に応じて変化する正の値(例えば、触媒の温度の増加に応じて単調増加する正の値)としてもよい。また、上記数7における現時点での酸素吸蔵量OSA(i)の値は、ブロック(i)における現時点での酸素放出余裕量を示している。このように、本触媒モデルでは、少なくとも触媒内の酸素吸蔵量に基づいて同触媒が内部に吸蔵している酸素から放出する酸素量を算出する。
【0078】
ここで、酸素吸蔵時反応速度定数h1が酸素放出時反応速度定数h2よりも大きいのは、前記酸素吸蔵余裕量である(Cmax(i)−OSA(i))と前記酸素放出余裕量であるOSA(i)とが等しいとき、酸素吸蔵速度が酸素放出速度よりも大きいことが種々の実験等により判明していることに基づく。なお、上記数5及び上記数7にて使用するブロック(i)における最大酸素吸蔵量Cmax(i)は後述する手法により予め求めらる。また、上記数5及び上記数7にて使用するブロック(i)における現時点での酸素吸蔵量OSA(i)は、初期値が付与された時点から現時点までの酸素吸蔵量変化量δOSA(i)の積算値であるから下記数8に基づいて算出することができる。
【0079】
【数8】
OSA(i)=ΣδOSA(i) (0 ≦ OSA(i) ≦ Cmax(i))
【0080】
次に、各ブロック間での境界条件について考えると、図5に示したように、互いに隣接する2つのブロックのうちの上流側のブロックの排ガス相の流出面と下流側のブロックの排ガス相の流入面は互いに連続しているから、図6に示したように、ブロック(i)に流入する流入酸素量CginO2(i)は、ブロック(i)に隣接する上流側のブロック(i−1)から流出する流出酸素量CgoutO2(i−1)と等しく、また、ブロック(i)から流出する流出酸素量CgoutO2(i)は、ブロック(i)に隣接する下流側のブロック(i+1)に流入する流入酸素量CginO2(i+1)と等しい。従って、下記数9に示した関係が成立する。換言すると、任意のi番目のブロック(i)の流出酸素量CgoutO2(i)が求まればブロック(i)に隣接する下流側のブロック(i+1)の流入酸素量CginO2(i+1)が求まる。
【0081】
【数9】
CginO2(i+1)=CgoutO2(i)
【0082】
以上のことから、最上流のブロック(1)における流入酸素量CginO2(1)が境界条件として付与されれば、上記数4又は上記数6によりブロック(1)における酸素吸蔵量変化量δOSA(1)が求まり、その結果、上記数8によりブロック(1)における酸素吸蔵量OSA(1)を更新できるとともに上記数3によりブロック(1)における流出酸素量CgoutO2(1)が求まる。ブロック(1)における流出酸素量CgoutO2(1)が求まれば、上記数9によりブロック(2)における流入酸素量CginO2(2)が求まり、その結果、上記数4又は上記数6によりブロック(2)における酸素吸蔵量変化量δOSA(2)が求まる。これにより、上記数8によりブロック(2)における酸素吸蔵量OSA(2)を更新できるとともに、上記数3によりブロック(2)における流出酸素量CgoutO2(2)が求まる。
【0083】
CPU71は、このような処理を所定の演算周期毎に繰り返し実行する。従って、CPU71の演算周期が経過する毎に最上流のブロック(1)における流入酸素量CginO2(1)が境界条件として付与されれば、上記数3〜上記数9より、最上流のブロック(1)から、順次、各ブロック(i) (i=1,2,・・・,N) における酸素吸蔵量OSA(i),流入酸素量CginO2(i),及び流出酸素量CgoutO2(i)を算出することができる。これにより、触媒内部の酸素吸蔵量の分布が精度よく計算される。また、各ブロックの酸素吸蔵量OSA(i) (i=1,2,・・・,N) を触媒全体について積算すれば、同触媒全体の酸素吸蔵量OSAallについても精度よく計算することができる。また、この結果、触媒(最下流のブロック(N))から流出する特定成分の量である流出酸素量CgoutO2(N)を正確に求めることができる。
【0084】
なお、以下に、任意のi番目のブロック(i)の流出酸素量CgoutO2(i)を求めるための一般式を求めておく。先ず、上記数3における「i」を「1」に書き換えると下記数10が導かれる。
【0085】
【数10】
CgoutO2(1)=CginO2(1)−δOSA(1)
【0086】
また、上記数3における「i」を「2」に書き換えて、これに上記数9及び上記数10の関係を適用すると、下記数11が導かれる。
【0087】
【数11】
【0088】
さらに、上記数3における「i」を「3」に書き換え、これに上記数9及び上記数11の関係を適用すると、下記数12が導かれる。
【0089】
【数12】
【0090】
このような手続きを繰り返すことにより、任意のi番目のブロック(i)の流出酸素量CgoutO2(i)を求めるための一般式である下記数13が導かれる。
【0091】
【数13】
CgoutO2(i)=CginO2(1)−δOSA(1)−δOSA(2)− ・・・ −δOSA(i−1)−δOSA(i)
(i=1,2,・・・,N)
【0092】
また、上記数3及び上記数4(又は上記数6)より下記数14が導かれるから、下記数14に上記数9の関係を適用し、その関係を一般的に記述すると、任意のi番目のブロック(i)の流出酸素量CgoutO2(i)を求めるための他の一般式である下記数15も容易に導くことができる。
【0093】
【数14】
CgoutO2(i)=CginO2(i)・(1−H(i))
【0094】
【数15】
【0095】
次に、上記数5及び数7において反応率H(i)を求める際に必要となるブロック(i)における最大酸素吸蔵量Cmax(i)の求め方について説明する。図7は、本触媒モデルにおいて、最大酸素吸蔵量Cmax(i)を求める考え方を示した最大酸素吸蔵量分布マップであり、斜線で示された部分の面積は触媒全体の最大酸素吸蔵量Cmaxallの値に対応している。
【0096】
このように、触媒の各ブロック毎の各最大酸素吸蔵量Cmax(n) (n=1,・・・,N)は、同各最大酸素吸蔵量Cmax(n)の総和が同触媒全体の最大酸素吸蔵量Cmaxallの値となるように設定されるとともに、上流側のブロックから下流側のブロックに推移するに従い、所定の勾配をもって線形的に増加するとして取り扱われる。これは、触媒の上流側部分の方が下流側部分に比して、内部に流入する排ガス中の鉛や硫黄等により被毒し易いので、同上流部分の最大酸素吸蔵量が同下流部分に比して低下し易くなるからである。
【0097】
具体的には、本装置は、触媒モデルが対象とする第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)を、図7に示した最大酸素吸蔵量分布マップに基づいた下記数16〜下記数18に基づいてそれぞれ算出する。
【0098】
【数16】
Cmax1(i)=A1・(i−(N1/2))+(Cmax1all/N1) (i=1,2,・・・,N1)
【0099】
【数17】
Cmax2(i)=A2・(i−(N2/2))+(Cmax2all/N2) (i=1,2,・・・,N2)
【0100】
【数18】
Cmax3(i)=A3・(i−(N3/2))+(Cmax3all/N3) (i=1,2,・・・,N3)
【0101】
上記数16〜上記数18において、A1,A2,A3はそれぞれ正の定数であって、各ブロック毎の最大酸素吸蔵量の分布の上記勾配を決定する値である。A1,A2,A3は同一の値であってもよいし、それぞれ異なる値であってもよい。また、各触媒の最大酸素吸蔵量Cmax1all,Cmaxall2,Cmaxall3は、後述するルーチンにより別途計算される。なお、触媒の各ブロック毎の各最大酸素吸蔵量は、上流側のブロックから下流側のブロックに推移するに従い増加するように設定されていればよく、例えば、非線形的に増加するように設定されていてもよい。このようにして、第1触媒53〜第3触媒55の各ブロック毎の最大酸素吸蔵量が算出される。
【0102】
(触媒モデルの適用)
次に、以上説明した触媒モデルを、図8に示したように、第1〜第3触媒53〜55にそれぞれ適用し、各種値を求める例について説明する。
【0103】
以下、第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と称呼する。
【0104】
同様に、第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と称呼する。
【0105】
同様に、第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と称呼する。
【0106】
この触媒モデルにおいては、図8に示したように、第1〜第3触媒53〜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をそれぞれ取得・算出することができるとともに、第1〜第3触媒53〜55から流出する流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)をそれぞれ取得・算出することができる。
【0107】
そこで、先ず、第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」に設定する。
【0108】
同様に、本装置は、第2触媒下流空燃比センサ68の出力voxs2が0.7(V)より大きい値を示したとき、即ち、第2触媒54の下流側の空燃比が明白なリッチ空燃比となったときは、第2触媒54の各ブロックにおける酸素吸蔵量OSA2(i) (i=1,2,・・・,N2) 及び第2触媒54全体の酸素吸蔵量OSA2allを全て「0」に設定する。
【0109】
同様に、本装置は、第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」が初期条件として付与される。
【0110】
次に、第1触媒53の最上流のブロック1(1)における流入酸素量Cgin1O2(1)を付与する方法について説明すると、本装置は、下記数19に基づいてCPU71の演算周期毎の流入酸素量Cgin1O2(1)を算出する。
【0111】
【数19】
Cgin1O2(1)=0.23・mfr1・(abyfs − stoich)
【0112】
上記数19において、値「0.23」は大気中に含まれる酸素の重量割合である。mfr1は所定時間tsample内の燃料噴射量Fiの合計量であり、stoichは理論空燃比(例えば、14.7)である。abyfsは所定時間tsampleにおいて最上流空燃比センサ66により検出された空燃比A/Fである。この数19に示したように、所定時間tsample内の噴射量の合計量mfr1に、検出された空燃比A/Fの理論空燃比からの偏移(abyfs − stoich)を乗じることで、同所定時間tsampleにおける空気の過剰量が求められる。この空気の過剰量に酸素の重量割合を乗じることで同所定時間tsampleにおける酸素の過剰量、即ち、流入酸素量Cgin1O2(1)が求められる。
【0113】
この流入酸素量Cgin1O2(1)は、上記数19から明らかなように、酸素が過剰であるとき(即ち、空燃比がリーンであってabyfs>stoichのとき)に正の値となり、酸素が不足しているとき(即ち、空燃比がリッチであってabyfs<stoichのとき)に負の値となるように計算される。
【0114】
次に、第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)が境界条件として付与される。
【0115】
第3触媒55の最上流のブロック3(1)における流入酸素量Cgin2O3(1)についても同様であり、本装置は、第2触媒54の最下流のブロック2(N2)から流出する流出酸素量Cgout2O2(N2)の値を流入酸素量Cgin3O2(1)として使用する。このようにして、CPU71の演算周期毎に第3触媒55の最上流のブロック3(1)における流入酸素量Cgin3O2(1)が境界条件として付与される。以上のようにして、各触媒部の排気浄化の状態を表す値としての同各触媒部から流出する排ガス中の特定成分の量に関する値である流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)を各触媒53〜55内における酸素吸蔵・放出反応を考慮した計算により取得・算出する手段が排気浄化状態取得手段に相当する。
【0116】
(第1実施形態の実際の作動)
次に、第1実施形態に係る排気浄化装置の実際の作動について説明する。
(空燃比のフィードバック制御)
CPU71は、図9にフローチャートにより示した最終燃料噴射量Fiの計算及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が前記所定クランク角度になると、CPU71はステップ900から処理を開始してステップ905に進み、エアフローメータ61により計測された吸入空気流量Gaとエンジン回転速度NEとに基づいて、機関に供給される混合気の空燃比を理論空燃比とするための基本燃料噴射量Fbaseを求める。具体的には、エアフローメータ61が計測している吸入空気流量Gaに一次遅れ処理を施した値をエンジン回転速度NEで除することで筒内吸入空気量Mcを算出し、これを目標空燃比である理論空燃比で除する関数fにより基本燃料噴射量Fbaseを求める。
【0117】
次いで、CPU71はステップ910に進み、基本燃料噴射量Fbaseに係数Kを乗じた値に後述するメインフィードバック制御量DFiを加えた値を最終燃料噴射量Fiとして設定する。この係数Kの値は、通常は「1.00」であり、後述するように、各最大酸素吸蔵量Cmax1all〜Cmax3allを求めるために強制的に空燃比を変更するとき、「1.00」以外の所定値に設定される。
【0118】
次いで、CPU71はステップ915に進み、同ステップ915にて同最終燃料噴射量Fiの燃料を噴射するための指示をインジェクタ39に対して行う。その後、CPU71はステップ920に進み、その時点の燃料噴射量合積算値mfrに最終燃料噴射量Fiを加えた値を新たな燃料噴射量積算値mfrに設定するとともに、続くステップ925にてその時点の燃料噴射量積算値mfr1に最終燃料噴射量Fiを加えた値を新たな燃料噴射量積算値mfr1に設定する。この燃料噴射量積算値mfr,及びmfr1は、それぞれ後述するルーチンにて用いられる。その後、CPU71はステップ995に進み、本ルーチンを一旦終了する。以上により、フィードバック補正された最終燃料噴射量Fiの燃料が吸気行程を迎える気筒に対して噴射される。
【0119】
次に、上記メインフィードバック制御量DFiの算出について説明すると、CPU71は図10にフローチャートにより示したルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、CPU71はステップ1000から処理を開始し、ステップ1005に進んで空燃比フィードバック制御条件(メインフィードバック条件)が成立しているか否かを判定する。この空燃比フィードバック制御条件は、例えば、機関の冷却水温THWが第1所定温度以上であり、機関の一回転当りの吸入空気量(負荷、筒内吸入空気量Mc)が所定値以下であり、最上流空燃比センサ66が正常(活性状態であることを含む。)であり、且つ、後述する最大酸素吸蔵量取得制御実行中フラグXHANの値が「0」のときに成立する。なお、最大酸素吸蔵量取得制御実行中フラグXHANは、その値が「1」のとき最大酸素吸蔵量Cmax1all〜Cmax3allの算出のために強制的に空燃比を変更する空燃比制御(アクティブ制御)を実行していることを示し、その値が「0」のとき同最大酸素吸蔵量Cmax1all〜Cmax3allの算出のための空燃比制御を実行していないことを示す。
【0120】
いま、空燃比フィードバック制御条件が成立しているものとして説明を続けると、CPU71はステップ1005にて「Yes」と判定してステップ1010に進み、現時点の最上流空燃比センサ66の出力vabyfsと後述するサブフィードバック制御量vafsfbとの和(vabyfs+vafsfb)を図2に示したマップに基づいて変換することにより、現時点における第1触媒53のメインフィードバック制御用空燃比abyfsを求める。このメインフィードバック制御用空燃比abyfsが、最上流空燃比センサ66の出力をサブフィードバック制御量vafsfbにより補正した第1触媒53の上流における上記「見かけ上の空燃比」である。
【0121】
次に、CPU71はステップ1015に進み、現時点からNストローク(N回の吸気行程)前に吸気行程を迎えた気筒の吸入空気量である筒内吸入空気量Mc(k−N)を前記求めたメインフィードバック制御用空燃比abyfsで除することにより、現時点からNストローク前の筒内燃料供給量Fc(k−N)を求める。値Nは、内燃機関の排気量、燃焼室25から最上流空燃比センサ66までの距離等により異なる値である。
【0122】
このように、現時点からNストローク前の筒内燃料供給量Fc(k−N)を求めるために、現時点からNストローク前の筒内吸入空気量Mc(k−N)をメインフィードバック制御用空燃比abyfsで除するのは、燃焼室25内で燃焼された混合気が最上流空燃比センサ66に到達するまでには、Nストロークに相当する時間を要しているからである。なお、筒内吸入空気量Mcは、各気筒の吸気行程に対応されながらRAM73内に記憶されるようになっている。
【0123】
次いで、CPU71はステップ1020に進み、現時点からNストローク前の筒内吸入空気量Mc(k−N)を現時点からNストローク前の時点における目標空燃比abyfr(k−N)(この例では、理論空燃比)で除することにより、現時点からNストローク前の目標筒内燃料供給量Fcr(k−N)を求める。そして、CPU71はステップ1025に進んで目標筒内燃料供給量Fcr(k−N)から筒内燃料供給量Fc(k−N)を減じた値を筒内燃料供給量偏差DFcとして設定する。つまり、筒内燃料供給量偏差DFcは、Nストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。次に、CPU71はステップ1030に進み、下記数20に基づいてメインフィードバック制御量DFiを求める。
【0124】
【数20】
DFi=(Gp・DFc+Gi・SDFc)・KFB
【0125】
上記数20において、Gpは予め設定された比例ゲイン(比例定数)、Giは予め設定された積分ゲイン(積分定数)である。なお、数20の係数KFBはエンジン回転速度NE、及び筒内吸入空気量Mc等により可変とすることが好適であるが、ここでは「1」としている。また、値SDFcは筒内燃料供給量偏差DFcの積分値であり、次のステップ1035にて更新される。即ち、CPU71は、ステップ1035にてその時点における筒内燃料供給量偏差DFcの積分値SDFcに上記ステップ1025にて求めた筒内燃料供給量偏差DFcを加えて、新たな筒内燃料供給量偏差の積分値SDFcを求め、ステップ1095にて本ルーチンを一旦終了する。
【0126】
以上により、メインフィードバック制御量DFiが比例積分制御により求められ、このメインフィードバック制御量DFiが前述した図9のステップ910により燃料噴射量に反映されるので、Nストローク前の燃料供給量の過不足が補償され、内燃機関に供給される混合気の空燃比の平均値が目標空燃比abyfrと略一致せしめられるようにフィードバック制御される。
【0127】
一方、ステップ1005の判定時において、空燃比フィードバック制御条件が不成立であると、CPU71は同ステップ1005にて「No」と判定してステップ1040に進み、メインフィードバック制御量DFiの値を「0」に設定し、その後ステップ1095に進んで本ルーチンを一旦終了する。このように、空燃比フィードバック制御条件が不成立であるとき(最大酸素吸蔵量取得制御実行中を含む)は、メインフィードバック制御量DFiを「0」として空燃比(基本燃料噴射量Fbase)の補正を行わない。
【0128】
次に、触媒装置についてのフィードバック制御量である上記サブフィードバック制御量vafsfbに基づく空燃比フィードバック制御(サブフィードバック制御)について説明する。このサブフィードバック制御により、サブフィードバック制御量vafsfbが算出される。
【0129】
CPU71は、サブフィードバック制御量vafsfbを求めるための図11に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、CPU71はステップ1100から処理を開始し、ステップ1105に進んでサブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件は、例えば、前述したステップ1005での空燃比フィードバック制御条件に加え、機関の冷却水温THWが前記第1所定温度よりも高い第2所定温度以上のとき成立する。
【0130】
いま、サブフィードバック制御条件が成立しているものとして説明を続けると、CPU71はステップ1105にて「Yes」と判定してステップ1110に進み、後述するルーチンにより計算されている最新の流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)の各値と、上記数1とに基づいて、各触媒53〜55についての前記偏差量DCgout1O2, DCgout2O2, DCgout3O2をそれぞれ求める。
【0131】
次いで、CPU71はステップ1115に進み、前記偏差量DCgout1O2, DCgout2O2, DCgout3O2と、前述した図4に示したテーブルと同一のテーブルであるステップ1115内に示したテーブルとに基づいて重み係数Kwc1, Kwc2, Kwc3を決定する。続いて、CPU71はステップ1120に進み、前記偏差量DCgout1O2, DCgout2O2, DCgout3O2と、前記重み係数Kwc1, Kwc2, Kwc3と、上記数2とに基づいてサブフィードバック制御量vafsfbを求めた後、ステップ1195に進んで本ルーチンを一旦終了する。以上のようにして、サブフィードバック制御量vafsfbが求められる。
【0132】
一方、サブフィードバック制御条件が不成立であるとき、CPU71はステップ1105にて「No」と判定してステップ1125に進み、同ステップ1125にてサブフィードバック制御量vafsfbを「0」に設定する。これにより、サブフィードバック制御量vafsfbに基づくサブフィードバック制御が停止される。
【0133】
(最大酸素吸蔵量Cmax1all〜Cmax3all算出のための最大酸素吸蔵量取得制御)
次に、最大酸素吸蔵量算出のために強制的に空燃比を変更する最大酸素吸蔵量取得制御について説明する。CPU71は図12〜図17のフローチャートにより示された各ルーチンを所定時間の経過毎に実行するようになっている。
【0134】
従って、所定のタイミングになると、CPU71は図12のステップ1200から処理を開始し、ステップ1205に進んで最大酸素吸蔵量取得制御実行中フラグXHANの値が「0」であるか否かを判定する。いま、最大酸素吸蔵量算出のための最大酸素吸蔵量取得制御を行っておらず、且つ、最大酸素吸蔵量取得制御開始条件が成立していないとして説明を続けると、最大酸素吸蔵量取得制御実行中フラグXHANの値は「0」となっている。従って、CPU71はステップ1205にて「Yes」と判定してステップ1210に進み、先に説明した図9のステップ910にて使用される係数Kの値を1.00に設定する。
【0135】
次いで、CPU71はステップ1215にて最大酸素吸蔵量取得制御の開始条件が成立しているか否かを判定する。この最大酸素吸蔵量取得制御の開始条件は、冷却水温THWが所定温度以上であり、図示しない車速センサにより得られた車速が所定の高車速以上であり、スロットル弁開度TAの単位時間あたりの変化量が所定量以下である等の機関が定常運転されている条件が成立し、第1触媒〜第3触媒下流空燃比センサ出力voxs1,voxs2,voxs3の総べてが理論空燃比よりもリッチな空燃比に相当する出力を発生し、且つ、前回の最大酸素吸蔵量取得制御実行時点から所定時間が経過している場合等に成立する。現段階では、上述したように、最大酸素吸蔵量取得制御の開始条件は成立していないから、CPU71はステップ1215にて「No」と判定してステップ1295に進み、本ルーチンを一旦終了する。
【0136】
次に、現時点では最大酸素吸蔵量取得制御を行っていないが、最大酸素吸蔵量取得制御の開始条件が成立したものとして説明を続けると、この場合、CPU71はステップ1205にて「Yes」と判定してステップ1210に進み、同ステップ1210にて係数Kの値を1.00に設定する。次いで、CPU71は、開始条件が成立しているので、ステップ1215にて「Yes」と判定してステップ1220に進み、同ステップ1220にて最大酸素吸蔵量取得制御実行中フラグXHANの値を「1」に設定する。
【0137】
そして、CPU71はステップ1225に進み、第1モードに移行するためにModeの値を「1」に設定するとともに、続くステップ1230にて係数Kの値を0.98に設定し、ステップ1295に進んで本ルーチンを一旦終了する。これにより、前述の空燃比フィードバック制御条件が成立しなくなるから、CPU71は図10のステップ1005にて「No」と判定してステップ1040に進むようになり、空燃比フィードバック補正量DFiの値は「0」に設定される。この結果、図9のステップ910の実行により、基本燃料噴射量Fbaseが0.98倍された値が最終燃料噴射量Fiとして算出され、この最終燃料噴射量Fiの燃料が噴射されるので、機関に供給される混合気の空燃比(従って、触媒装置に流入する排ガスの空燃比)は理論空燃比よりもリーンな所定のリーン空燃比に制御される。
【0138】
以降、CPU71は図12のルーチンの処理をステップ1200から繰り返し実行するが、最大酸素吸蔵量取得制御実行中フラグXHANの値が「1」となっていることから、ステップ1205にて「No」と判定して直ちにステップ1295に進み、本ルーチンを一旦終了するようになる。
【0139】
一方、CPU71は図13に示した第1モード制御ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングとなると、CPU71はステップ1300から処理を開始してステップ1305に進み、同ステップ1305にてModeの値が「1」であるか否かを判定する。このとき、Modeの値が「1」でなければ、CPU71は直ちにステップ1395に進んで本ルーチンを一旦終了する。以下、先の図12のステップ1225の処理によりModeの値が「1」に変更された直後であるとして説明を続けると、この場合、CPU71はステップ1305にて「Yes」と判定してステップ1310に進み、第1触媒下流空燃比センサ出力voxs1、第2触媒下流空燃比センサ出力voxs2、及び第3触媒下流空燃比センサ出力voxs3の総べてが理論空燃比よりもリーンな空燃比に相当する出力(酸素が過剰に存在する場合の出力)となったか否かを判定する。
【0140】
現時点では、機関に供給される混合気の空燃比を所定のリーン空燃比に変更した直後であるから、第1触媒下流空燃比センサ出力voxs1、第2触媒下流空燃比センサ出力voxs2、及び第3触媒下流空燃比センサ出力voxs3の総べてが理論空燃比よりもリーンな空燃比に相当する出力とはなっていないので、CPU71はステップ1310にて「No」と判定し、ステップ1395にて本ルーチンを一旦終了する。
【0141】
以降、CPU71は図13のステップ1300〜1310を繰り返し実行する。また、空燃比は所定のリーン空燃比に維持されているから、時間経過に伴って第1触媒53,第2触媒54,及び第3触媒55の順に各酸素吸蔵量が各触媒の最大酸素吸蔵量に到達する。従って、これに応じて第1触媒下流空燃比センサ出力voxs1、第2触媒下流空燃比センサ出力voxs2、及び第3触媒下流空燃比センサ出力voxs3は、この順に理論空燃比よりもリーンな空燃比に相当する出力に変化する。これにより、CPU71はステップ1310に進んだとき、同ステップ1310にて「Yes」と判定してステップ1315に進み、同ステップ1315にてModeの値を「2」に設定するとともに、続くステップ1320にて係数Kの値を1.02に設定し、その後ステップ1395にて本ルーチンを一旦終了する。この結果、機関に供給される混合気の空燃比が理論空燃比よりリッチな所定のリッチ空燃比に制御される。
【0142】
また、CPU71は図14にフローチャートにより示した第2モード制御ルーチンを所定時間の経過毎に繰り返し実行している。従って、CPU71は、所定のタイミングになると、ステップ1400から処理を開始し、ステップ1405にてModeの値が「2」であるか否かを判定し、Modeの値が「2」でなければステップ1405からステップ1495に進んで本ルーチンを一旦終了するように作動している。
【0143】
一方、先のステップ1315の処理によりModeの値が「2」に変更されると、CPU71はステップ1405に進んだとき「Yes」と判定してステップ1410に進み、同ステップ1410にて第1触媒下流空燃比センサ67の出力voxs1が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化したか否かを判定する。この時点では、空燃比が前記所定のリッチ空燃比に変更された直後であるから、CPU71はステップ1410にて「No」と判定し、ステップ1495に進んで本ルーチンを一旦終了する。
【0144】
これ以降、機関に供給される混合気の空燃比は前記所定のリッチ空燃比に維持されるから、第1触媒53に貯蔵されている酸素が消費されて行き、所定の時間が経過すると同第1触媒53の酸素吸蔵量が「0」に至る。この結果、第1触媒53から未燃HC,COが流出し始めるので、第1触媒下流空燃比センサ67の出力voxs1が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化する。これにより、CPU71は、ステップ1410に進んだとき同ステップ1410にて「Yes」と判定してステップ1415に進み、同ステップ1415にてModeの値を「3」に変更し、ステップ1495にて本ルーチンを一旦終了する。
【0145】
同様に、CPU71は、所定時間の経過毎に繰り返し実行する図15にフローチャートにより示した第3モード制御ルーチンにおいて、ステップ1505にてModeの値が「3」であるか否かを判定し、Modeの値が「3」でなければステップ1505からステップ1595に進んで本ルーチンを一旦終了している。
【0146】
一方、先のステップ1415の処理によりModeの値が「3」に変更されると、CPU71はステップ1505に進んだとき「Yes」と判定してステップ1510に進み、同ステップ1510にて第2触媒下流空燃比センサ68の出力voxs2が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化したか否かを判定する。この時点では、第1触媒53から未燃HC,COが流出し始めた直後であり、第2触媒54からは未燃HC,COが流出してこないので、CPU71はステップ1510にて「No」と判定し、ステップ1595に進んで本ルーチンを一旦終了する。
【0147】
その後、機関に供給される混合気の空燃比は、引き続いて前記所定のリッチ空燃比に維持されるから、第2触媒54に貯蔵されている酸素が消費されて行き、所定の時間が経過すると同第2触媒54の酸素吸蔵量が「0」に至る。この結果、第2触媒54から未燃HC,COが流出し始めるので、第2触媒下流空燃比センサ68の出力voxs2が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化する。これにより、CPU71はステップ1510にて「Yes」と判定してステップ1515に進み、第4モードに移行すべくModeの値を「4」に設定し、ステップ1595に進む。
【0148】
同様に、CPU71は、所定時間の経過毎に繰り返し実行する図16にフローチャートにより示した第4モード制御ルーチンにおいて、ステップ1605にてModeの値が「4」であるか否かを判定し、Modeの値が「4」でなければステップ1605からステップ1695に進んで本ルーチンを一旦終了している。
【0149】
一方、先のステップ1515の処理によりModeの値が「4」に変更されると、CPU71はステップ1605に進んだとき「Yes」と判定してステップ1610に進み、同ステップ1610にて第3触媒下流空燃比センサ69の出力voxs3が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化したか否かを判定する。この時点では、第2触媒54から未燃HC,COが流出し始めた直後であり、第3触媒55から未燃HC,COは流出してこないので、CPU71はステップ1610にて「No」と判定し、ステップ1695に進んで本ルーチンを一旦終了する。
【0150】
その後、機関に供給される混合気の空燃比は、引き続いて前記所定のリッチ空燃比に維持されるから、第3触媒55に貯蔵されている酸素が消費されて行き、所定の時間が経過すると同第3触媒55の酸素吸蔵量が「0」に至る。この結果、第3触媒55から未燃HC,COが流出し始めるので、第3触媒下流空燃比センサ69の出力voxs3が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化する。これにより、CPU71はステップ1610からステップ1615に進み、Modeの値を「0」に再設定し、続くステップ1620にて最大酸素吸蔵量取得制御実行中フラグXHANの値を「0」に設定した後、ステップ1695に進んで本ルーチンを一旦終了する。
【0151】
係る状態となると、CPU71は図12のルーチンを実行する際、ステップ1205にて「Yes」と判定してステップ1210に進むので、係数Kの値が1.00に戻される。また、空燃比フィードバック制御条件が成立していれば、CPU71は図10のルーチンのステップ1005及び図11のルーチンのステップ1105にて「Yes」と判定するから、空燃比フィードバック制御(メインフィードバック制御及びサブフィードバック制御)が再開される。
【0152】
以上、説明したように、最大酸素吸蔵量取得制御の開始条件が成立すると、機関に供給される混合気の空燃比が所定のリーン空燃比、所定のリッチ空燃比の順に1回づつ強制的に制御される。
【0153】
次に、最大酸素吸蔵量取得のための酸素吸蔵量の算出における作動について説明する。CPU71は図17のフローチャートにより示されたルーチンを所定時間(演算周期tsample)の経過毎に実行するようになっている。従って、所定のタイミングになると、CPU71はステップ1700から処理を開始し、ステップ1705に進んで下記数21により酸素吸蔵量変化量ΔO2を求める。
【0154】
【数21】
ΔO2=0.23・mfr・(stoich − abyfsave)
【0155】
上記数21は上記数19と同様の式であり、mfrは図9のステップ920にて逐次更新されている所定時間tsample内の燃料噴射量Fiの合計量であり、abyfsaveは所定時間tsampleにおいて最上流空燃比センサ66により検出された空燃比A/Fの平均値である。この数21に示したように、所定時間tsample内の噴射量の合計量mfrに、検出された空燃比A/Fの平均値の理論空燃比からの偏移(stoich − abyfsave)を乗じることで、同所定時間tsampleにおける空気の消費量(不足量)が求められる。この空気の消費量に酸素の重量割合を乗じることで同所定時間tsampleにおける酸素の消費量(酸素吸蔵量変化量ΔO2)が求められる。
【0156】
次いで、CPU71はステップ1710に進んでModeの値が「2」であるか否か(第2モードであるか否か)を判定し、Modeの値が「2」であれば同ステップ1710にて「Yes」と判定してステップ1715に進み、その時点の酸素吸蔵量OSA1に上記酸素吸蔵量変化量ΔO2を加えた値を新たな酸素吸蔵量OSA1として設定し、その後ステップ1740に進む。
【0157】
このような処置(ステップ1700〜1715)は、Modeの値が「2」である限り繰り返し実行される。この結果、第1触媒53の上流の空燃比が所定のリッチ空燃比とされる第2モード(Mode=2)において、第1触媒53の酸素吸蔵量OSA1が算出されて行く。第2モードにおいては、第1触媒53に貯蔵されている酸素が消費されて行くからである。なお、ステップ1710での判定において「No」と判定される場合、CPU71は同ステップ1710からステップ1720に直接進む。
【0158】
CPU71は、ステップ1720に進んだ場合、Modeの値が「3」であるか否か(第3モードであるか否か)を判定し、Modeの値が「3」であれば同ステップ1720にて「Yes」と判定してステップ1725に進み、その時点の酸素吸蔵量OSA2に上記酸素吸蔵量変化量ΔO2を加えた値を新たな酸素吸蔵量OSA2として設定し、その後ステップ1740に進む。
【0159】
このような処置(ステップ1700,1705,1710,1720,1725)は、Modeの値が「3」である限り繰り返し実行される。この結果、第1触媒53の上流の空燃比が所定のリッチ空燃比とされる第3モード(Mode=3)において、第2触媒54の酸素吸蔵量OSA2が算出されて行く。第3モードにおいては、第2触媒54に貯蔵されている酸素が消費されて行くからである。
【0160】
また、ステップ1720での判定において「No」と判定される場合、CPU71は同ステップ1720からステップ1730に進み、Modeの値が「4」であるか否か(第4モードであるか否か)を判定し、Modeの値が「4」であればステップ1735に進んでその時点の酸素吸蔵量OSA3に上記酸素吸蔵量変化量ΔO2を加えた値を新たな酸素吸蔵量OSA3として設定し、その後ステップ1740に進む。
【0161】
このような処置(ステップ1700,1705,1710,1720,1730,1735)は、Modeの値が「4」である限り繰り返し実行される。この結果、第1触媒53の上流の空燃比が所定のリッチ空燃比とされる第4モード(Mode=4)において、第3触媒55の酸素吸蔵量OSA3が算出されて行く。第4モードにおいては、第3触媒55に貯蔵されている酸素が消費されて行くからである。なお、ステップ1730での判定において「No」と判定される場合、CPU71は同ステップ1730からステップ1740に直接進む。
【0162】
そして、CPU71は、ステップ1740に進むと、燃料噴射量Fiの合計量mfrを「0」に設定し、その後ステップ1795に進んで本ルーチンを一旦終了する。
【0163】
次に、各触媒53〜55の最大酸素吸蔵量Cmax1all,Cmax2all,Cmax3all、及び同各触媒53〜55の各ブロックの最大酸素吸蔵量Cmax1(i),Cmax2(i),Cmax3(i)を算出する際の作動について説明する。CPU71は図18のフローチャートにより示されたルーチンを所定時間の経過毎に実行するようになっている。
【0164】
従って、所定のタイミングになると、CPU71は図18のステップ1800から処理を開始し、ステップ1805に進んで最大酸素吸蔵量取得制御実行中フラグXHANの値が「1」から「0」に変化したか否かをモニタする。このとき、最大酸素吸蔵量取得制御実行中フラグXHANの値が変化していなければ、CPU71はステップ1805からステップ1895に直接進んで本ルーチンを一旦終了する。
【0165】
一方、前述した第4モードが終了した直後であるとすると、図16のステップ1620にて最大酸素吸蔵量取得制御実行中フラグXHANの値が「1」から「0」に変更されるから、CPU71はステップ1805にて「Yes」と判定してステップ1810に進み、その時点の酸素吸蔵量OSA1,OSA2,OSA3の値を、それぞれ第1触媒53全体の最大酸素吸蔵量Cmax1all、第2触媒54全体の最大酸素吸蔵量Cmax2all、及び第3触媒55全体の最大酸素吸蔵量Cmax3allとして格納する。
【0166】
次いでCPU71はステップ1815に進み、カウンタ値nの値を「0」に設定した後、ステップ1820に進んで第1触媒53の各ブロック1毎の最大酸素吸蔵量を算出する処理を開始する。まず、CPU71はステップ1820においてカウンタ値nの値を「1」だけ増大して「1」に設定した後、ステップ1825に進んで上記ステップ1810にて取得した第1触媒53全体の最大酸素吸蔵量Cmax1allの値と、カウンタ値nの値と、上記数16に基づくステップ1825内に記載した式とに基づいて第1触媒53のブロック1(n)における最大酸素吸蔵量Cmax1(n)を算出する。この時点ではカウンタ値nの値は「1」であるから、ブロック1(1)における最大酸素吸蔵量Cmax1(1)が算出される。
【0167】
そして、CPU71はステップ1830に進んでカウンタ値nの値が第1触媒53のブロック数N1と等しいか否かを判定する。現時点ではカウンタ値nの値は「1」であるから、CPU71はステップ1830にて「No」と判定し、再びステップ1820に戻ってカウンタ値nの値を「1」だけ増大した後ステップ1825及びステップ1830の処理を実行する。即ち、ステップ1820及びステップ1825の処理は、カウンタ値nの値が第1触媒53のブロック数N1と等しくなるまで繰り返し実行される。これにより、第1触媒53の最上流のブロック1(1)から最下流のブロック1(N1)までの各ブロック1(n)の最大酸素吸蔵量Cmax1(n)の値が順次算出されていく。
【0168】
前述のステップ1820の処理が繰り返されることによりカウンタ値nの値が第1触媒53のブロック数N1と等しくなると、CPU71はステップ1830にて「Yes」と判定してステップ1835に進み、カウンタ値nの値を「0」に設定した後、ステップ1840に進んで第2触媒54の各ブロック2毎の最大酸素吸蔵量を算出する処理を開始する。
【0169】
この第2触媒54の各ブロック2毎の最大酸素吸蔵量を算出する処理は、上述したステップ1820〜ステップ1830の処理と同様であるステップ1840〜ステップ1850までの処理を第2触媒54のブロック数N2回だけ繰り返し実行することにより達成される。ステップ1845における最大酸素吸蔵量Cmax2(n)の算出は、上記ステップ1810にて取得した第2触媒54全体の最大酸素吸蔵量Cmax2allの値と、カウンタ値nの値と、上記数17に基づくステップ1845内に記載した式とに基づいて行われる。これにより、第2触媒54の最上流のブロック2(1)から最下流のブロック2(N2)までの各ブロック2(n)の最大酸素吸蔵量Cmax2(n)の値が順次算出されていく。
【0170】
ステップ1840の処理が繰り返されることによりカウンタ値nの値が第2触媒54のブロック数N2と等しくなると、CPU71はステップ1850にて「Yes」と判定してステップ1855に進み、カウンタ値nの値を「0」に設定した後、ステップ1860〜ステップ1870を実行し、第3触媒55の各ブロック3毎の最大酸素吸蔵量を算出する処理を開始する。
【0171】
このステップ1860〜ステップ1870の処理は、上述したステップ1820〜ステップ1830の処理と同様であり、最大酸素吸蔵量Cmax3(n)の算出は、上記ステップ1810にて取得した第3触媒55全体の最大酸素吸蔵量Cmax3allの値と、カウンタ値nの値と、上記数18に基づくステップ1865内に記載した式とに基づいて行われる。これにより、第3触媒55の最上流のブロック3(1)から最下流のブロック3(N3)までの各ブロック3(n)の最大酸素吸蔵量Cmax3(n)の値が順次算出されていく。
【0172】
そして、カウンタ値nの値が第3触媒55のブロック数N3と等しくなると、CPU71はステップ1870にて「Yes」と判定してステップ1875に進み、酸素吸蔵量OSA1〜OSA3の各々の値を総て「0」に設定した後、ステップ1895に進んで本ルーチンを一旦終了する。
【0173】
次に、第1〜第3触媒53〜55の各々の各ブロック毎の流出酸素量及び酸素吸蔵量等の算出についての作動について説明する。CPU71は図19〜図21の一連のフローチャートにより示されたルーチンを所定時間の経過毎に図19のルーチンから順に実行するようになっている。
【0174】
従って、所定のタイミングになると、CPU71は、第1触媒53の各ブロック1毎の流出酸素量,酸素吸蔵量等を算出するため、図19に示されたルーチンのステップ1900から処理を開始してステップ1905に進み、図9のステップ925にて逐次更新されている燃料噴射量積算値mfr1と、最上流空燃比センサ66により検出された空燃比abyfsと、上記数19に基づくステップ1905内に記載した式とに基づいて、第1触媒53のブロック1(1)の流入酸素量Cgin1O2(1)を算出する。
【0175】
次いで、CPU71はステップ1910に進んでカウンタ値nの値、及び第1触媒53全体の酸素吸蔵量OSA1allの値をそれぞれ「0」に設定した後、ステップ1915に進んでカウンタ値nの値を「1」だけ増大する。カウンタ値nは第1触媒53のブロック1の番号を示している。この時点ではカウンタ値nの値は「1」であり、続くステップ1920〜ステップ1975までの今回の処理においてカウンタ値nの値は「1」に維持されるので、今回の同ステップ1920〜ステップ1975までの処理においては最上流のブロック1(1)に関する計算が実行される。
【0176】
まず、CPU71はステップ1920に進んで、流入酸素量Cgin1O2(1)の値が「0」以上であるか否かを判定し、流入酸素量Cgin1O2(1)の値が「0」以上であれば同ステップ1920において「Yes」と判定してステップ1925に進み、ブロック1(1)の最大酸素吸蔵量Cmax1(1)の値と、前回本ルーチンが実行されたときに計算(更新)されたブロック1(1)の酸素吸蔵量OSA1(1)の値と、上記数5に基づくステップ1925内に記載した式とに基づいてブロック1(1)における反応率Hを算出する。
【0177】
また、流入酸素量Cgin1O2(1)の値が「0」以上でなければCPU71は同ステップ1920において「No」と判定してステップ1930に進み、上記最大酸素吸蔵量Cmax1(1)の値と、上記前回本ルーチンが実行されたときに計算されたブロック1(1)の酸素吸蔵量OSA1(1)の値と、上記数7に基づくステップ1930内に記載した式とに基づいてブロック1(1)における反応率Hを算出する。
【0178】
次いで、CPU71はステップ1935に進み、ステップ1925又はステップ1930にて算出した反応率Hの値と、ステップ1905にて算出した第1触媒53のブロック1(1)における流入酸素量Cgin1O2(1)の値と、上記数4又は上記数6に基づくステップ1935内に記載した式とに基づいてブロック1(1)における酸素吸蔵量変化量δOSA1(1)を算出する。
【0179】
次に、CPU71はステップ1940に進んで、その時点の(即ち、前回本ルーチンが実行されたときに計算された)ブロック1(1)の酸素吸蔵量OSA1(1)の値にステップ1935にて今回算出したブロック1(1)の酸素吸蔵量変化量δOSA1(1)の値を加えた値(OSA1(1)+δOSA1(1))がブロック1(1)の最大酸素吸蔵量Cmax1(1)の値以下であるか否かを判定する。
【0180】
ここで、ブロック1(1)の酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が最大酸素吸蔵量Cmax1(1)以下であれば、CPU71はステップ1940にて「Yes」と判定してステップ1945に進み、酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が「0」以上であるか否かを判定する。そして、酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が「0」以上であれば、CPU71はステップ1945にて「Yes」と判定してステップ1960に進む。
【0181】
一方、ステップ1940の判定において、酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が最大酸素吸蔵量Cmax1(1)より大きければ、CPU71は同ステップ1940にて「No」と判定してステップ1950に進み、最大酸素吸蔵量Cmax1(1)から酸素吸蔵量変化量δOSA1(1)を減じた値を酸素吸蔵量変化量δOSA1(1)として設定し直し、ステップ1960に進む。他方、ステップ1945の判定において、酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が「0」より小さければ、CPU71は同ステップ1945にて「No」と判定してステップ1955に進み、酸素吸蔵量OSA1(1)の符号を反転した値(−OSA1(1))を酸素吸蔵量変化量δOSA1(1)に設定し直してステップ1960に進む。以上のステップ1940〜ステップ1955の処理は、次のステップ1960にて求められる今回のブロック1(1)の酸素吸蔵量OSA1(1)が「0」以上であって最大酸素吸蔵量Cmax1(1)以下の値となるような酸素吸蔵量変化量δOSA1(1)を求めるための処理である。
【0182】
ステップ1960に進んだCPU71は、その時点(即ち、前回本ルーチンを実行したときに求められた)ブロック1(1)の酸素吸蔵量OSA1(1)に上記のようにして求められた酸素吸蔵量変化量δOSA1(1)を加えた値を今回のブロック1(1)の酸素吸蔵量OSA1(1)として設定し、続くステップ1965にてブロック1(1)における流入酸素量Cgin1O2(1)の値と、今回の酸素吸蔵量変化量δOSA1(1)の値と、上記数3に基づく同ステップ1965内に記載した式とに基づいてブロック1(1)における流出酸素量Cgout1O2(1)を算出する。
【0183】
次いで、CPU71はステップ1970に進んで、現時点における第1触媒53全体の酸素吸蔵量OSA1allの値(現時点では「0」)に、上記算出されたブロック1(1)の酸素吸蔵量OSA1(1)の値を加えた値を新たな第1触媒53全体の酸素吸蔵量OSA1allとして格納し、ステップ1975に進んで同ブロック1(1)の流出酸素量Cgout1O2(1)の値をブロック1(1)に隣接する下流側のブロック1(2)における流入酸素量Cgin1O2(2)に設定する(上記数9を参照。)。
【0184】
そして、CPU71はステップ1980に進んでカウンタ値nの値が第1触媒53のブロック数N1と等しいか否かを判定する。現時点ではカウンタ値nの値は「1」であるから、CPU71はステップ1980にて「No」と判定し、再びステップ1915に戻ってカウンタ値nの値を「1」だけ増大して「2」に設定した後、続くステップ1920〜ステップ1975までの処理を実行することで次のブロックであるブロック1(2)についての各種値の計算を実行する。
【0185】
このようにして、ステップ1920〜ステップ1975までの処理は、カウンタ値nの値が第1触媒53のブロック数N1と等しくなるまで繰り返し実行される。これにより、第1触媒53の最上流のブロック1(1)から最下流のブロック1(N1)までの各ブロック1(n)の流入酸素量Cgin1O2(n)、流出酸素量Cgout1O2(n)、酸素吸蔵量変化量δOSA1(n)、及び酸素吸蔵量OSA1(n)の値が順次算出されていく。また、ステップ1970の処理が繰り返し実行されることにより、第1触媒53全体の酸素吸蔵量OSA1allも算出される。このようにして、ステップ1965にて第1触媒53の排気浄化の状態を表す値である流出酸素量Cgout1O2(N1)が逐次更新されていく。
【0186】
ステップ1915の処理が繰り返されることによりカウンタ値nの値が第1触媒53のブロック数N1と等しくなると、CPU71はステップ1980にて「Yes」と判定してステップ1985に進み、燃料噴射量積算値mfr1の値を「0」に設定した後、ステップ1995を経由して図20に示されたルーチンのステップ2000に進む。
【0187】
図20のルーチンは、第2触媒54の各ブロック2毎の流出酸素量及び酸素吸蔵量等を算出するためのルーチンであって、ステップ2005にて、境界条件である第2触媒54のブロック2(1)における流入酸素量Cgin2O2(1)として図19のステップ1965にて算出済みの第1触媒53の最下流のブロック1(N1)からの流出酸素量Cgout1O2(N1)を使用する点、及び図19のステップ1985に対応するステップが存在しない点を除き同図19のルーチンと同様であるので、ここではその詳細な説明を省略する。
【0188】
CPU71は、このようにして第2触媒54の各ブロック2(n)の流入酸素量Cgin2O2(n)、流出酸素量Cgout2O2(n)、酸素吸蔵量変化量δOSA2(n)、酸素吸蔵量OSA2(n)、及び第2触媒54全体の酸素吸蔵量OSA2allを算出し、ステップ2495を経由して図25に示されたルーチンのステップ2500に進む。このようにして、ステップ2065にて第2触媒54の排気浄化の状態を表す値である流出酸素量Cgout2O2(N2)が逐次更新されていく。
【0189】
図21のルーチンは、第3触媒55の各ブロック3毎の流出酸素量及び酸素吸蔵量等を算出するためのルーチンであって、ステップ2105にて、境界条件である第3触媒55のブロック3(1)における流入酸素量Cgin3O2(1)として図20のステップ2065にて算出済みの第2触媒54の最下流のブロック2(N2)からの流出酸素量Cgout2O2(N2)を使用する点を除き同図20のルーチンと同様であるので、ここではその詳細な説明を省略する。
【0190】
これにより、CPU71は、第3触媒55の各ブロック3(n)の流入酸素量Cgin3O2(n)、流出酸素量Cgout3O2(n)、酸素吸蔵量変化量δOSA3(n)、酸素吸蔵量OSA3(n)、及び第3触媒55全体の酸素吸蔵量OSA3allを算出し、ステップ2195にて本ルーチンを一旦終了する。このようにして、ステップ2165にて第3触媒55の排気浄化の状態を表す値である流出酸素量Cgout3O2(N3)が逐次更新されていく。
【0191】
次に、第1〜第3触媒53〜55の各々の各ブロック毎の酸素吸蔵量の値、及び第1〜第3触媒53〜55の各々の全体の酸素吸蔵量の値を初期化(クリア)する際の作動について説明する。CPU71は図22にフローチャートにより示されたルーチンを所定時間の経過毎に実行するようになっている。
【0192】
従って、CPU71は所定のタイミングになると、ステップ2200から処理を開始してステップ2205に進み、第1触媒下流空燃比センサ67の出力voxs1の値が0.7(V)より大きいか否かをモニタする。このとき、第1触媒下流空燃比センサ67の出力voxs1の値が0.7(V)より大きければ、即ち、第1触媒53の下流空燃比が明白なリッチ空燃比であれば、同第1触媒53内全体に吸蔵されている酸素量が「0」であることを意味するので、CPU71はステップ2210に進んで第1触媒53の各ブロック1(n)(n=1,2,・・・,N1)の酸素吸蔵量OSA1(n)を総べて「0」に設定するとともに、続くステップ2215にて第1触媒53全体の酸素吸蔵量OSA1allの値を「0」に設定する。
【0193】
全く同様に、CPU71は、第2触媒下流空燃比センサ68の出力voxs2の値が0.7(V)より大きいとき、これをステップ2220で判定してステップ2225及びステップ2230に進み、第2触媒54の各ブロック2(n)(n=1,2,・・・,N2)の酸素吸蔵量OSA2(n)を総べて「0」に設定するとともに、第2触媒54全体の酸素吸蔵量OSA2allの値を「0」に設定する。
【0194】
また、全く同様に、CPU71は、第3触媒下流空燃比センサ69の出力voxs3の値が0.7(V)より大きいとき、これをステップ2235で判定してステップ2240及びステップ2245に進み、第3触媒55の各ブロック3(n)(n=1,2,・・・,N3)の酸素吸蔵量OSA3(n)を総べて「0」に設定するとともに、第3触媒55全体の酸素吸蔵量OSA3allの値を「0」に設定し、ステップ2295にて本ルーチンを一旦終了する。このようにして、第1〜第3触媒53〜55の各々の各ブロック毎の酸素吸蔵量の値、及び第1〜第3触媒53〜55の各々の全体の酸素吸蔵量の値が初期化される。
【0195】
以上、説明したように、第1実施形態に係る排気浄化装置によれば、触媒装置を構成している3つの触媒部としての各触媒(全体)53〜55についてのフィードバックゲインKpcg1, Kpcg2, Kpcg3の値をこの順に大きくなるように設定する。そして、第1実施形態に係る排気浄化装置は、上記数2(vafsfb=Kpcg1・Kwc1・DCgout1O2+Kpcg2・Kwc2・DCgout2O2+Kpcg3・Kwc3・DCgout3O2)に示すように、各触媒53〜55の排気浄化の状態を表す値である同各触媒53〜55からの流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)とそれらの目標値Cgout1ref, Cgout2ref, Cgout3ref(総て「0」)との各々の偏差DCgout1O2, DCgout2O2, DCgout3O2に、フィードバックゲインKpcg1, Kpcg2, Kpcg3に同偏差DCgout1O2, DCgout2O2, DCgout3O2に応じて決定される重み係数Kwc1, Kwc2, Kwc3を乗じた値をそれぞれ乗じることで、各触媒53〜55についてのフィードバック制御量Kpcg1・Kwc1・DCgout1O2, Kpcg2・Kwc2・DCgout2O2, Kpcg3・Kwc3・DCgout3O2をそれぞれ求め、これらの和としてサブフィードバック制御量vafsfbを求め、このサブフィードバック制御量vafsfbが「0」になるように機関に供給される混合気の空燃比(従って、触媒装置に流入する排ガスの空燃比)をフィードバック制御(補正)する。
【0196】
従って、例えば、第1〜第3触媒53〜55についての偏差量DCgout1O2, DCgout2O2, DCgout3O2のうち第1触媒53についての偏差量DCgout1O2(絶対値)のみが大きくなった場合(第1触媒53からのみエミッションが流出する可能性が高くなった場合)、小さい値に設定されたフィードバックゲインKpcg1に基づいてサブフィードバック制御量vabyfs(の絶対値)が小さめに計算されるとともに、第3触媒55についての偏差量DCgout3O2(の絶対値)が大きくなった場合(第3触媒55からエミッションが流出する可能性が高くなった場合)、大きい値に設定されたフィードバックゲインKpcg3に基づいてサブフィードバック制御量vabyfs(の絶対値)が大きめに計算され得る。従って、外部へのエミッションの排出の可能性が小さい場合にはフィードバック制御による空燃比の変動幅を小さくすることでドライバビリティの悪化を抑制することが優先され、外部へのエミッションの排出の可能性が大きい場合には制御の応答性を向上させることで排気浄化を確実に行うことが優先されるから、ドライバビリティの悪化を抑制することと排気浄化を確実に行うこととの両立を図ることができた。
【0197】
また、各触媒53〜55から流出する各々の流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)(酸素の過不足量)がそれぞれ目標値「0」になるように空燃比が制御されるから、各触媒53〜55から流出する(従って、触媒装置から流出する)(排ガス中の酸素の過不足量の増加に応じて増加する可能性が高い)エミッションの排出量を確実に低減することができた。
【0198】
<第2実施形態>
次に、本発明による第2実施形態に係る排気浄化装置について説明する。この排気浄化装置は、各触媒部(第1〜第3触媒53〜55)の排気浄化の状態を表す値として、触媒モデルを用いて求めた前記流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)の代わりに同触媒モデルを用いて求めた各触媒53〜55全体の各々の酸素吸蔵量OSA1all, OSA2all, OSA3allを使用する点において、主として第1実施形態に係る排気浄化装置と異なっている。従って、以下、係る相違点を中心に説明する。
【0199】
本排気浄化装置は、第1実施形態に係る排気浄化装置と同様、先に詳述した触媒モデルを各触媒53〜55にそれぞれ適用することで、各触媒53〜55全体の各々の酸素吸蔵量OSA1all, OSA2all, OSA3allを逐次求め、下記数22及び下記数23に従って、サブフィードバック制御量vafsfbを求める。
【0200】
【数22】
DOSA1all=OSA1all−OSA1allref
DOSA2all=OSA2all−OSA2allref
DOSA3all=OSA3all−OSA3allref
【0201】
【数23】
vafsfb=Kposa1・Kwo1・DOSA1all+Kposa2・Kwo2・DOSA2all+Kposa3・Kwo3・DOSA3all
【0202】
上記数22において、OSA1allref, OSA2allref, OSA3allrefは、第1〜第3触媒53〜55の酸素吸蔵量OSA1all, OSA2all, OSA3allの各々の目標値(目標酸素吸蔵量)であり、本例では、それぞれ、各触媒53〜55の最大酸素吸蔵量の半分の値(Cmax1all/2),(Cmax2all/2),(Cmax3all/2)である。各触媒53〜55の最大酸素吸蔵量Cmax1all, Cmax2all, Cmax3allとしては、図18のステップ1810にて算出されている最新の各値が使用される。また、第1〜第3触媒53〜55についての偏差量DOSA1all, DOSA2all, DOSA3allは、正の値であるとき機関に供給される混合気の空燃比をリッチ側に補正するための値となり、負の値であるとき同空燃比をリーン側に補正するための値となる。
【0203】
また、上記数23において、Kposa1, Kposa2, Kposa3は、それぞれ、第1〜第3触媒53〜55についてのフィードバックゲイン(比例ゲイン)であって、0 < Kposa1 < Kposa2 < Kposa3 なる関係にある。Kwo1, Kwo2, Kwo3は、それぞれ、第1〜第3触媒53〜55についてのフィードバックゲインKposa1, Kposa2, Kposa3を重み付けするための重み係数であり、第1実施形態における重み係数Kwc1, Kwc2, Kwc3を設定するための図4と同様、図23に示すように、対応する触媒についての前記偏差量の絶対値の増加に応じて増加するように設定されるとともに、同対応する触媒についての前記偏差が正の値(機関に供給される混合気の空燃比をリッチ側に補正するための値)となる場合と負の値(同空燃比をリーン側に補正するための値)となる場合とで同偏差の絶対値が等しいとき、同偏差が正の値となる場合の方が、負の値となる場合よりも大きく設定される。
【0204】
(第2実施形態の実際の作動)
次に、第2実施形態に係る排気浄化装置の実際の作動について説明する。この装置のCPU71は、第1実施形態のCPU71が実行する図9〜図22に示したルーチンのうち図11を除いたルーチンをそのまま実行するとともに、図11に示したルーチンに代えて図24にフローチャートにより示したルーチンを実行する。以下、第2実施形態に特有のルーチンである図24のルーチンについてのみ説明する。
【0205】
第2実施形態に係る排気浄化装置のCPU71は、サブフィードバック制御量vafsfbを求めるための図24に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、CPU71はステップ2400から処理を開始し、ステップ2405に進んで図11のステップ1105と同様のサブフィードバック制御条件が成立しているか否かを判定する。
【0206】
いま、サブフィードバック制御条件が成立しているものとして説明を続けると、CPU71はステップ2405にて「Yes」と判定してステップ2410に進み、図19のステップ1970、図20のステップ2070、図21のステップ2170にて計算されている最新の各触媒53〜55全体の酸素吸蔵量OSA1all, OSA2all, OSA3allの値と、上記数22とに基づいて、各触媒53〜55についての前記偏差量DOSA1all, DOSA2all, DOSA3allをそれぞれ求める。
【0207】
次いで、CPU71はステップ2415に進み、前記偏差量DOSA1all, DOSA2all, DOSA3allと、前述した図23に示したテーブルと同一のテーブルであるステップ2415内に示したテーブルとに基づいて重み係数Kwo1, Kwo2, Kwo3を決定する。続いて、CPU71はステップ2420に進み、前記偏差量DOSA1all, DOSA2all, DOSA3allと、前記重み係数Kwo1, Kwo2, Kwo3と、上記数23とに基づいてサブフィードバック制御量vafsfbを求めた後、ステップ2495に進んで本ルーチンを一旦終了する。以上のようにして、サブフィードバック制御量vafsfbが求められる。
【0208】
一方、サブフィードバック制御条件が不成立であるとき、CPU71はステップ2405にて「No」と判定してステップ2425に進み、同ステップ2425にてサブフィードバック制御量vafsfbを「0」に設定する。これにより、サブフィードバック制御量vafsfbに基づくサブフィードバック制御が停止される。
【0209】
以上、説明したように、本発明による第2実施形態に係る排気浄化装置によれば、上記第1実施形態と同様、触媒装置を構成している3つの触媒部としての各触媒(全体)53〜55についてのフィードバックゲインKposa1, Kposa2, Kposa3の値がこの順に大きくなるように設定される。従って、例えば、第1〜第3触媒53〜55についての偏差量DOSA1all, DOSA2all, DOSA3allのうち第1触媒53についての偏差量DOSA1all(の絶対値)のみが大きくなった場合(第1触媒53全体の酸素吸蔵量OSA1allが目標酸素吸蔵量OSA1allrefから大きく偏移して第1触媒53からのみエミッションが流出する可能性が高くなった場合)、小さい値に設定されたフィードバックゲインKposa1に基づいてサブフィードバック制御量vabyfs(の絶対値)が小さめに計算されるとともに、第3触媒55についての偏差量DOSA3all(の絶対値)が大きくなった場合(第3触媒55全体の酸素吸蔵量OSA3allが目標酸素吸蔵量OSA3allrefから大きく偏移して第3触媒55からエミッションが流出する可能性が高くなった場合)、大きい値に設定されたフィードバックゲインKposa3に基づいてサブフィードバック制御量vabyfs(の絶対値)が大きめに計算され得る。従って、前記第1実施形態と同様、ドライバビリティの悪化を抑制することと排気浄化を確実に行うこととの両立を図ることができた。
【0210】
また、各触媒53〜55全体の酸素吸蔵量OSA1all, OSA2all, OSA3allが、それぞれ、目標値OSA1allref(=(Cmax1all/2)), OSA2allref(=(Cmax2all/2)), OSA3allref(=(Cmax3all/2))になるように空燃比が制御されるから、各触媒53〜55全体の酸素吸蔵量が「0」又は最大酸素吸蔵量に到達することが回避し易くなり、同各触媒53〜55から流出する(従って、触媒装置から流出する)エミッションの排出量を確実に低減することができた。
【0211】
本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記各実施形態においては、各触媒部としての各触媒53〜55の排気浄化の状態を表す値として、触媒内における反応を考慮した触媒モデルを用いて計算により求めた流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)、又は触媒全体の酸素吸蔵量OSA1all, OSA2all, OSA3allを採用しているが、同各触媒53〜55の排気浄化の状態を表す値として、各触媒53〜55の下流に配置された第1〜第3触媒下流空燃比センサ67〜69の出力値voxs1, voxs2, voxs3(図3を参照。)を採用してもよい。この場合、サブフィードバック制御量vafsfbを下記数24及び下記数25に従って求めることが好適である。
【0212】
【数24】
Dvoxs1=voxs1ref−voxs1
Dvoxs2=voxs2ref−voxs2
Dvoxs3=voxs3ref−voxs3
【0213】
【数25】
vafsfb=Kpoxs1・Dvoxs1+Kpoxs2・Dvoxs2+Kpoxs3・Dvoxs3
【0214】
上記数24において、voxs1ref, voxs2ref, voxs3refは、第1〜第3触媒下流空燃比センサ67〜69の出力値voxs1, voxs2, voxs3の各々の出力目標値であり、理論空燃比に相当する値であることが好適である。また、第1〜第3触媒53〜55についての偏差量Dvoxs1, Dvoxs2, Dvoxs3は、正の値であるとき機関に供給される混合気の空燃比をリッチ側に補正するための値となり、負の値であるとき同空燃比をリーン側に補正するための値となる。
【0215】
また、上記数25において、Kpoxs1, Kpoxs2, Kpoxs3は、それぞれ、第1〜第3触媒53〜55についてのフィードバックゲイン(比例ゲイン)であって、0 < Kpoxs1 < Kpoxs2 < Kpoxs3 なる関係にある。ここで、上記各実施形態と同様、各フィードバックゲインKpoxs1, Kpoxs2, Kpoxs3に前記偏差量Dvoxs1, Dvoxs2, Dvoxs3に応じてそれぞれ重み付けするように構成してもよい。
【0216】
また、上記各実施形態及び前記変形例においては、各触媒部(第1〜第3触媒53〜55)の排気浄化の状態を表す値とその目標値との偏差を比例処理して(偏差に比例ゲインを乗じて)各触媒部についてのフィードバック制御量を求め、同各触媒部についてのフィードバック制御量の和として触媒装置についてのフィードバック制御量(サブフィードバック制御量vafsfb)を求めているが、前記偏差を所謂比例・積分処理(PI処理)して、又は同偏差を所謂比例・積分・微分処理(PID処理)して各触媒部についてのフィードバック制御量を求め、同各触媒部についてのフィードバック制御量の和として触媒装置についてのフィードバック制御量を求めるように構成してもよい。
【0217】
また、上記各実施形態及び前記変形例においては、各触媒部(第1〜第3触媒53〜55)の排気浄化の状態を表す値とその目標値との各偏差に基づいて各触媒部についてのフィードバック制御量を求め、同各触媒部についてのフィードバック制御量の総てに基づいて(和として)触媒装置についてのフィードバック制御量(サブフィードバック制御量vafsfb)を求めているが、各触媒部の排気浄化の状態を表す値とその目標値との各偏差のうち絶対値が所定値以上になっているものに対応する触媒部についてのフィードバック制御量のみに基づいて触媒装置についてのフィードバック制御量を求めるように構成してもよい。
【0218】
また、上記各実施形態においては、3つの触媒(第1〜第3触媒53〜55)からなる触媒装置の各々の触媒全体を各々の触媒部(3つの触媒部)として扱っているが、単数の触媒(例えば、第1触媒53)からなる触媒装置の同単数の触媒を排ガスの流れ方向に沿って複数(例えば、N1個)のブロックに仮想的に分割したときの各々のブロック(例えば、上記ブロック1(i) (i=1,2,・・・,N1))を各々の触媒部(N1個の触媒部)として扱い、各ブロックの排気浄化の状態を表す値(例えば、Cgout1O2(i) (i=1,2,・・・,N1)、又は、OSA1(i) (i=1,2,・・・,N1))と同排気浄化の状態を表す値の目標値、及び同各ブロックについてのフィードバックゲインに基づいて同各ブロックについてのフィードバック制御量を算出するとともに、同各ブロックについてのフィードバック制御量のうち少なくとも一つに基づいて触媒装置についてのフィードバック制御量を算出するように構成してもよい。
【0219】
この場合、第2触媒54及び第3触媒55を省略してもよい。また、第2触媒54及び第3触媒55を省略しない場合、同第2,第3触媒54,55は予備的な触媒(バッファ的な触媒)として使用され得る。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係る排気浄化装置を内燃機関に適用したシステムの概略図である。
【図2】図1に示した最上流空燃比センサの出力電圧と空燃比との関係を示したマップである。
【図3】図1に示した第1触媒下流空燃比センサ、第2触媒下流空燃比センサ、及び第3触媒下流空燃比センサの出力電圧と空燃比との関係を示したマップである。
【図4】図1に示したCPUが参照する各触媒についての偏差量(流出酸素量とその目標値との偏差)と、同各触媒についてのフィードバックゲインに重み付けするための重み係数との関係を示したマップである。
【図5】本発明の排気浄化装置が採用する触媒モデルを模式的に示した図である。
【図6】本発明の排気浄化装置が採用する触媒モデルの特定領域に注目したときの同特定領域における酸素吸蔵・放出反応に関係する特定成分の収支を示した図である。
【図7】本発明の排気浄化装置が採用する触媒モデルが対象とする触媒全体の最大酸素吸蔵量から同触媒の各ブロック毎の最大酸素吸蔵量の分布を求めるためのマップである。
【図8】本発明の排気浄化装置が採用する触媒モデルを第1,第2,第3触媒にそれぞれ適用した場合の模式図である。
【図9】図1に示したCPUが実行する燃料噴射量計算のためのルーチンを示したフローチャートである。
【図10】図1に示したCPUが実行するメインフィードバック制御量を計算するためのルーチンを示したフローチャートである。
【図11】図1に示したCPUが実行するサブフィードバック制御量を求めるためのルーチンを示したフローチャートである。
【図12】図1に示したCPUが実行する最大酸素吸蔵量取得制御を開始するか否かを決定するためのルーチンを示したフローチャートである。
【図13】図1に示したCPUが実行する第1モードのルーチンを示したフローチャートである。
【図14】図1に示したCPUが実行する第2モードのルーチンを示したフローチャートである。
【図15】図1に示したCPUが実行する第3モードのルーチンを示したフローチャートである。
【図16】図1に示したCPUが実行する第4モードのルーチンを示したフローチャートである。
【図17】図1に示したCPUが実行する酸素吸蔵量を算出するためのルーチンを示したフローチャートである。
【図18】図1に示したCPUが実行する各触媒の最大酸素吸蔵量及び各ブロックの最大酸素吸蔵量を求めるためのルーチンを示したフローチャートである。
【図19】図1に示したCPUが実行する第1触媒の各ブロック毎の流出酸素量、及び酸素吸蔵量等を算出するためのルーチンを示したフローチャートである。
【図20】図1に示したCPUが実行する第2触媒の各ブロック毎の流出酸素量、及び酸素吸蔵量等を算出するためのルーチンを示したフローチャートである。
【図21】図1に示したCPUが実行する第3触媒の各ブロック毎の流出酸素量、及び酸素吸蔵量等を算出するためのルーチンを示したフローチャートである。
【図22】図1に示したCPUが実行する第1,第2,第3触媒の各々の酸素吸蔵量及びこれらの触媒の各ブロック毎の酸素吸蔵量をクリアするためのルーチンを示したフローチャートである。
【図23】本発明の第2実施形態に係る排気浄化装置のCPUが参照する各触媒についての偏差量(酸素吸蔵量とその目標値との偏差)と、同各触媒についてのフィードバックゲインに重み付けするための重み係数との関係を示したマップである。
【図24】本発明の第2実施形態に係る排気浄化装置のCPUが実行するサブフィードバック制御量を求めるためのルーチンを示したフローチャートである。
【符号の説明】
10…内燃機関、25…燃焼室、39…インジェクタ、52…エキゾーストパイプ(排気管)、53…第1触媒、54…第2触媒、55…第3触媒、66…最上流空燃比センサ、67…第1触媒下流空燃比センサ、68…第2触媒下流空燃比センサ、69…第3触媒下流空燃比センサ、70…電気制御装置、71…CPU
【発明の属する技術分野】
本発明は排気通路に三元触媒を介装した内燃機関の排気浄化装置に関する。
【0002】
【従来の技術】
従来より、内燃機関の始動直後の排気浄化性能を確保するとするとともに、完全暖機後の排気浄化性能を一層向上するため、機関の排気通路にスタート・コンバータと云われる三元触媒(以下、「第1触媒」と称呼する。)を配設するとともに、第1触媒よりも下流の排気通路にアンダ・フロア・コンバータと云われる三元触媒(以下、「第2触媒」と称呼する。)を配設する構成が採用されることがある。この場合、第1触媒は第2触媒に比べて機関の排気ポートに近い位置に配設され、温度の高い排ガスが流入するから、始動から短期間内に暖機されて良好な排気浄化機能を発揮する。一方、第2触媒は、第1触媒よりも暖機に要する時間が長いが、一旦暖機した後においては第1触媒と協働して優れた排気浄化機能を発揮する。
【0003】
このように第1触媒と第2触媒とを内燃機関の排気通路に直列に配設した従来の排気浄化装置は、例えば、特許文献1に記載されているように、機関と第1触媒の間、第1触媒と第2触媒の間、及び第2触媒の下流にそれぞれ空燃比センサ(酸素濃度センサ)を配設し、第2触媒下流の空燃比センサが非活性状態にある場合、第1触媒と第2触媒の間の空燃比センサの出力に基づいて得られるフィードバック制御量に基づいて機関に供給される混合気の空燃比をフィードバック制御するとともに、第2触媒下流の空燃比センサが活性状態にある場合、第2触媒下流の空燃比センサの出力に基づいて得られるフィードバック制御量に基づいて機関に供給される混合気の空燃比をフィードバック制御するようになっている。
【0004】
【特許文献1】
特開平6−294342号公報
【0005】
【発明が解決しようとする課題】
ところで、上記のような空燃比センサの出力に基づく空燃比のフィードバック制御においては、前記フィードバック制御量が大きく計算されると機関に供給される混合気について比較的大きな空燃比変化が発生し、この結果、かかる大きな空燃比変化に伴って機関の出力が変動し、ドライバビリティが悪化するという問題がある。従って、ドライバビリティの悪化を抑制するという観点から、フィードバック制御量の大きさを左右するフィードバックゲイン(例えば、空燃比フィードバック制御を比例積分制御で行う場合、比例ゲイン、及び積分ゲイン)をドライバビリティが悪化しない程度に小さい値に設定する必要がある。
【0006】
一方、前記フィードバック制御量が小さく計算されると、空燃比センサの出力が理論空燃比に相当する値から偏移したとき同理論空燃比に相当する値に復帰するまでの時間が比較的長くなる。即ち、排ガス中の未燃成分(HC,CO)又は窒素酸化物(NOx)(以下、「エミッション」と称呼する。)が空燃比センサの上流に位置する触媒から流出する可能性が高い時間が比較的長くなる。従って、排気浄化の観点からは、フィードバック制御により空燃比にハンチングが発生しない程度に前記フィードバックゲインを比較的大きい値に設定する必要がある。
【0007】
更に、第1触媒と第2触媒の間の空燃比センサの出力に基づいて得られるフィードバック制御量に基づいて空燃比フィードバック制御を行う場合には、仮に第1触媒からエミッションが流出しても、同第1触媒の下流に位置する第2触媒によりこれを浄化し得る可能性があることから、この場合、排気浄化の観点から前記フィードバックゲインを大きい値に設定する要求の程度は比較的少ない。一方、第2触媒下流の空燃比センサの出力に基づいて得られるフィードバック制御量に基づいて空燃比フィードバック制御を行う場合には、第2触媒からエミッションが流出すると、同第2触媒の下流にはこれを浄化する手段が存在しないから、この場合、排気浄化の観点から前記フィードバックゲインを大きい値に設定する要求の程度は大きい。
【0008】
以上のことから、複数の触媒が内燃機関の排気通路に直列に介装されている場合においては、ドライバビリティの悪化を抑制するとともに排気浄化を確実に行うため、各触媒の下流にそれぞれ位置する各空燃比センサについての(各触媒についての)フィードバックゲインは、対応する触媒が前記排気通路の下流側のものほど大きく設定されることが好ましい。しかしながら、上記開示された装置においては、各触媒(第1触媒及び第2触媒)についてのフィードバックゲインは等しく設定されているから各フィードバックゲインを共に適切な値に設定することができず、この結果、ドライバビリティの悪化を抑制することと排気浄化を確実に行うこととの両立を図ることができないという問題がある。
【0009】
従って、本発明の目的は、排気通路に直列に配置された複数の触媒(触媒部)を備えた内燃機関に対して空燃比フィードバック制御を行う排気浄化装置において、フィードバックゲインを適切に設定し得るものを提供することにある。
【0010】
【発明の概要】
本発明の特徴は、内燃機関の排気通路に介装された単数の触媒又は同排気通路に直列に介装された複数の触媒からなる触媒装置と、前記触媒装置を同触媒装置に流入するガスの流れ方向に沿って複数の触媒部に分割して捉えたときの各触媒部の排気浄化の状態を表す値を取得する排気浄化状態取得手段と、前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値とに基づく値、及び同各触媒部についてのフィードバックゲインに基づいて同各触媒部についてのフィードバック制御量を算出するとともに、同各触媒部についてのフィードバック制御量のうち少なくとも一つに基づいて前記触媒装置についてのフィードバック制御量を算出するフィードバック制御量算出手段と、前記触媒装置についてのフィードバック制御量に基づいて同触媒装置に流入するガスの空燃比をフィードバック制御する空燃比制御手段と、を備えた内燃機関の排気浄化装置において、前記フィードバック制御量算出手段が使用する前記各触媒部についてのフィードバックゲインは、対応する触媒部が前記排気通路のより下流側のものほど、前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値とに基づく値が同一であるときの同対応する触媒部についてのフィードバック制御量が大きくなるように設定されたことにある。
【0011】
ここにおいて、前記「触媒部」は、複数の触媒からなる触媒装置の各々の触媒(全体)を各々の触媒部として(触媒単位で)捉えたときのものであっても、単数の触媒からなる触媒装置の同単数の触媒を排ガスの流れ方向に沿って複数のブロックに仮想的に分割したときの各々のブロックを各々の触媒部として捉えたときのものであってもよい。また、触媒装置が複数の触媒からなる場合、前記触媒単位で捉えられた触媒部と、前記単数の触媒を仮想的に分割したときの複数の触媒部とが混在してもよい。
【0012】
また、前記フィードバック制御量算出手段は、前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値との偏差に同各触媒部についてのフィードバックゲイン(例えば、フィードバック制御を比例積分制御で行うとすると、比例ゲイン、及び積分ゲイン)を乗じた値に基づいて同各触媒部についてのフィードバック制御量を算出するように構成されるとともに、同フィードバック制御量算出手段が使用する同各触媒部についてのフィードバックゲインは、対応する触媒部が前記排気通路のより下流側のものほど大きくなるように設定されることが好適である。また、前記フィードバック制御量算出手段は、前記各触媒部についてのフィードバック制御量の総てに基づいて前記触媒装置についてのフィードバック制御量を算出するように構成されていてもよいし、前記各触媒部についてのフィードバック制御量のうち内燃機関の運転状態、各空燃比センサの状態、各触媒部の排気浄化の状態等に応じて選択された一部に基づいて同触媒装置についてのフィードバック制御量を算出するように構成されていてもよい。
【0013】
また、各触媒部の排気浄化の状態を表す値を取得する排気浄化状態取得手段は、例えば、各々の触媒部の下流の排気通路(同各々の触媒部の下流側に単数又は複数の触媒部が存在する場合には同各々の触媒部の下流であって同各々の触媒部の下流側の最上流に位置する触媒部の上流の排気通路)に配設された空燃比センサにより同各々の触媒部から流出するガスの空燃比を同各触媒部の排気浄化の状態を表す値として物理的に検出する手段であっても、同各々の触媒部から流出するガス中の特定成分の量に関する値(例えば、特定成分の濃度、又は特定成分の絶対量等)を同各触媒部の排気浄化の状態を表す値として同各々の触媒部内における反応を考慮した計算により推定(取得)する手段であっても、同各々の触媒部内に吸蔵される酸素量(以下、「酸素吸蔵量」と称呼する。)に関する値(例えば、同各々の触媒部全体の酸素吸蔵量、又は同各々の触媒部の上流側部分の酸素吸蔵量等)を同各触媒部の排気浄化の状態を表す値として同各々の触媒部内における反応を考慮した計算により推定(取得)する手段であってもよい。前記特定成分とは、例えば、一酸化炭素CO、炭化水素HC、窒素酸化物NOx等の触媒で浄化すべき成分や、酸素O2(の過不足量)等のことを云う。
【0014】
また、前記触媒装置に流入するガスの空燃比をフィードバック制御する空燃比制御手段は、例えば、機関に供給される混合気の空燃比を制御する手段であってもよく、或いは、同機関に吸入される混合気の空燃比の制御を行うとともに、同触媒装置の上流の排気通路に備えられたノズル等から空気や燃料を供給することで同触媒装置に流入するガスの空燃比を制御する手段であってもよい。なお、機関に供給される混合気の空燃比を制御すれば、触媒装置に流入するガスの空燃比を制御することができる。
【0015】
このような上記本発明の特徴に係る排気浄化装置によれば、各触媒部についてのフィードバックゲインは、対応する触媒部が排気通路のより下流側のものほど、各触媒部の排気浄化の状態を表す値(例えば、各触媒部から流出するガス中の前記特定成分の絶対量)と同排気浄化の状態を表す値の目標値(例えば、「0」又は「0」近傍の値(範囲))とに基づく値(例えば、各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値との偏差)が同一であるときの同対応する触媒部についてのフィードバック制御量が大きくなるように設定される。例えば、各触媒部についてのフィードバック制御量が、同各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値との偏差に同各触媒部についてのフィードバックゲインを乗じた値に基づいて算出するように構成されている場合、各触媒部についてのフィードバックゲインは、対応する触媒部が排気通路のより下流側のものほど大きくなるように設定され得る。
【0016】
従って、各触媒部のうち排気通路の上流側の触媒部についてのフィードバックゲインはドライバビリティが悪化しない程度に小さい値に設定され、且つ、各触媒部のうち排気通路の下流側の触媒部についてのフィードバックゲインは排気浄化を確実に行うためフィードバック制御により空燃比にハンチングが発生しない程度に大きい値に設定され得る。この結果、先に説明したように、各触媒部についてのフィードバックゲインをそれぞれ適切に設定することができ、(特に、機関に供給される混合気の空燃比を制御することで触媒装置に流入するガスの空燃比を制御する場合)ドライバビリティの悪化を抑制することと排気浄化を確実に行うこととの両立を図ることができる。
【0017】
この場合、前記フィードバック制御量算出手段は、(常時)前記各触媒部についてのフィードバック制御量の総てに基づいて前記触媒装置についてのフィードバック制御量を算出するように構成されることが好適である。これによれば、例えば、各触媒部のうち排気通路の上流側の触媒部の排気浄化の状態を表す値とその値の目標値との偏差(のみ)が大きくなった場合(同上流側の触媒部からエミッションが流出する可能性が高い場合)、小さい値に設定されたフィードバックゲインに基づいて触媒装置についてのフィードバック制御量が小さめに計算されるとともに、各触媒部のうち排気通路の下流側の触媒部の排気浄化の状態を表す値とその値の目標値との偏差が大きくなった場合(同下流側の触媒部からエミッションが流出する可能性が高い場合)、大きい値に設定されたフィードバックゲインに基づいて同触媒装置についてのフィードバック制御量が大きめに計算され得る。
【0018】
即ち、各触媒部についてのフィードバック制御量のうち触媒装置についてのフィードバック制御量を算出するために使用するものを同各触媒部の排気浄化の状態等に応じて逐次選択する手段等を設けることなく、簡易な構成にて、ドライバビリティの悪化を抑制することと排気浄化を確実に行うこととの両立を図ることができる。
【0019】
前記何れかの排気浄化装置においては、前記フィードバック制御量算出手段は、前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値とに基づく値に応じて前記各触媒部についてのフィードバックゲインに重み付けした値をそれぞれ求めるとともに、同各触媒部についてのフィードバックゲインの代わりに同重み付けされた各値に基づいて同各触媒部についてのフィードバック制御量を算出するように構成されることが好適である。
【0020】
後に詳述するように、触媒の酸素吸蔵量は、同触媒に流入するガスの空燃比が理論空燃比よりもリーン空燃比であるときに増加するとともに同触媒に流入するガスの空燃比が理論空燃比よりもリッチ空燃比であるときに減少する。また、排気浄化の観点から、触媒の酸素吸蔵量が同触媒に吸蔵され得る酸素の最大量(以下、「最大酸素吸蔵量」と称呼する。)の略半分の量(目標酸素吸蔵量)になるように同触媒(触媒装置)に流入するガスの空燃比が制御されることが好ましい。これに対し、前記各触媒部のうち何れかの排気浄化の状態を表す値とその値の目標値との偏差が大きくなった場合(同何れかの触媒部からエミッションが流出する可能性が高い場合)、同何れかの触媒部の酸素吸蔵量が前記目標酸素吸蔵量から大きく偏移している可能性が高いから、早急に同何れかの触媒部の酸素吸蔵量を同目標酸素吸蔵量に復帰させる方向に空燃比を制御する必要がある。
【0021】
かかる観点に基づき、上記のように構成すれば、例えば、各触媒部の排気浄化の状態を表す値とその値の目標値との偏差の増加に応じて同各触媒部についてのフィードバックゲインにより大きく重み付けした値をそれぞれ求め、同各触媒部についてのフィードバックゲインの代わりに同重み付けされた各値に基づいて同各触媒部についてのフィードバック制御量を算出するように構成することができる。従って、前記偏差が大きくなった触媒部が存在する場合、同偏差が大きくなった触媒部についてのフィードバック制御量(従って、触媒装置についてのフィードバック制御量)を、同触媒部の酸素吸蔵量を同目標酸素吸蔵量に復帰させる方向に空燃比を制御するための大きい値として求めることができ、この結果、同偏差が大きくなった触媒部の酸素吸蔵量を目標酸素吸蔵量に早急に復帰させることが可能となる。
【0022】
この場合、前記フィードバック制御量算出手段は、前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値とに基づく値(例えば、前記偏差)が前記触媒装置に流入するガスの空燃比をリッチ側に補正するための値となる場合と同触媒装置に流入するガスの空燃比をリーン側に補正するための値となる場合とで、同各触媒部についてのフィードバックゲインに重み付けする程度が異なるように構成されることが好適である。
【0023】
一般に、触媒に流入するガスの空燃比が理論空燃比から所定の程度だけリーンであるときの同触媒の酸素吸蔵量の増加速度は、同触媒に流入するガスの空燃比が理論空燃比から同所定の程度と同程度だけリッチであるときの同触媒の酸素吸蔵量の減少速度よりも速いことが種々の実験等を通じて判明している。また、触媒の酸素吸蔵量の変化速度は、同触媒に流入するガスの空燃比の理論空燃比からの偏移量が大きいほど速くなる。
【0024】
ここで、上記のように構成すれば、例えば、前記偏差が正の値となる場合と負の値となる場合とで同偏差の絶対値が同一であるとき、同偏差が前記触媒装置に流入するガスの空燃比をリッチ側に補正するための値(例えば、正の値)となる場合の方が同触媒装置に流入するガスの空燃比をリーン側に補正するための値(例えば、負の値)となる場合よりも、各触媒部についてのフィードバックゲインに重み付けする程度が大きくなるように構成することができる。
【0025】
従って、前記偏差が前記触媒装置に流入するガスの空燃比をリッチ側に補正するための値となる場合における同偏差(の絶対値)と、同偏差が同触媒装置に流入するガスの空燃比をリーン側に補正するための値となる場合における同偏差(の絶対値)とが等しいとき、同触媒装置に流入するガスの空燃比の理論空燃比からリッチ側への偏移量を同触媒装置に流入するガスの空燃比の理論空燃比からリーン側への偏移量よりも大きくすることができる。この結果、各触媒部の酸素吸蔵量の増加速度と減少速度とを等しくすることができるから、各触媒部の酸素吸蔵量を効率良く前記目標酸素吸蔵量に維持させることができる。
【0026】
また、上記何れかの排気浄化装置においては、前記排気浄化状態取得手段は、前記各触媒部から流出するガス中の特定成分の量に関する値を前記各触媒部の排気浄化の状態を表す値として、同各触媒部内における反応を考慮した計算により取得するように構成されることが好適である。
【0027】
各々の触媒部の下流の排気通路に配設された空燃比センサ(例えば、O2センサ)により同各々の触媒部から流出するガスの空燃比を同各触媒部の排気浄化の状態を表す値として物理的に検出する場合、各々の触媒部から流出した排ガスは同流出した時点から所定時間後に空燃比センサに到達し、その後、空燃比センサの応答遅れ時間が経過した時点で、その空燃比が検出される。従って、各々の触媒部から流出するガスの空燃比の変化が空燃比センサの出力変化として現れるまでには所定の時間が必要である。
【0028】
これに対し、上記のように、各触媒部から流出するガス中の特定成分の量に関する値を前記各触媒部の排気浄化の状態を表す値として、同各触媒部内における反応を考慮した計算により取得するように構成するとともに前記目標値を「0」又は「0」近傍の値(範囲)に設定すれば、前記空燃比センサの出力変化よりも早い時点で各々の触媒部の排気浄化の状態に関する情報を取得できるので、より適切に触媒装置に流入するガスの空燃比を制御することが可能となる。また、各触媒部から流出するガス中の特定成分の量を略「0」に維持し得るから、エミッションの排出量を一層低減することができる。
【0029】
同様に、上記何れかの排気浄化装置においては、前記排気浄化状態取得手段は、前記各触媒部の酸素吸蔵量に関する値を前記各触媒部の排気浄化の状態を表す値として、同各触媒部内における反応を考慮した計算により取得するように構成されることが好適である。
【0030】
このように、各触媒部の酸素吸蔵量に関する値を前記各触媒部の排気浄化の状態を表す値として、同各触媒部内における反応を考慮した計算により取得するように構成するとともに前記目標値を目標酸素吸蔵量(前記最大酸素吸蔵量の略半分の量)に設定しても、前記空燃比センサの出力変化よりも早い時点で各々の触媒部の排気浄化の状態に関する情報を取得できるので、より適切に触媒装置に流入するガスの空燃比を制御することが可能となる。また、各触媒部の酸素吸蔵量を目標酸素吸蔵量近傍に維持し得るから、同各触媒部に流入するガスの空燃比が一時的に理論空燃比から相当に乖離しても同各触媒部は同ガスを効率良く浄化することができるからエミッションの排出量を一層低減することができる。
【0031】
【発明の実施の形態】
<第1実施形態>
以下、本発明による内燃機関の排気浄化装置の各実施形態について図面を参照しながら説明する。図1は、本発明の第1実施形態に係る内燃機関の排気浄化装置を火花点火式多気筒(4気筒)内燃機関10に適用したシステムの概略構成を示している。なお、図1においては、一つの気筒の断面が示されているが、他の気筒も同様の構成を備えている。
【0032】
この内燃機関10は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部20と、シリンダブロック部20の上に固定されるシリンダヘッド部30と、シリンダブロック部20にガソリン混合気を供給するための吸気系統40と、シリンダブロック部20からの排ガスを外部に放出するための排気系統50とを含んでいる。
【0033】
シリンダブロック部20は、シリンダ21、ピストン22、コンロッド23、及びクランク軸24を含んでいる。ピストン22はシリンダ21内を往復動し、ピストン22の往復動がコンロッド23を介してクランク軸24に伝達され、これにより同クランク軸24が回転するようになっている。シリンダ21とピストン22のヘッドは、シリンダヘッド部30とともに燃焼室25を形成している。
【0034】
シリンダヘッド部30は、燃焼室25に連通した吸気ポート31、吸気ポート31を開閉する吸気弁32、吸気弁32を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置33、可変吸気タイミング装置33のアクチュエータ33a、燃焼室25に連通した排気ポート34、排気ポート34を開閉する排気弁35、排気弁35を駆動するエキゾーストカムシャフト36、点火プラグ37、点火プラグ37に与える高電圧を発生するイグニッションコイルを含むイグナイタ38、及び燃料を吸気ポート31内に噴射するインジェクタ(燃料噴射手段)39を備えている。
【0035】
吸気系統40は、吸気ポート31に連通し同吸気ポート31とともに吸気通路を形成するインテークマニホールドを含む吸気管41、吸気管41の端部に設けられたエアフィルタ42、吸気管41内にあって吸気通路の開口断面積を可変とするスロットル弁43、及びスロットル弁駆動手段を構成するDCモータからなるスロットル弁アクチュエータ43aを備えている。
【0036】
排気系統50は、排気ポート34に連通したエキゾーストマニホールド51、エキゾーストマニホールド51に接続されたエキゾーストパイプ(排気管)52、エキゾーストパイプ52に配設(介装)された第1触媒(最上流三元触媒、又はスタート・コンバータとも云う。)53、第1触媒53の下流のエキゾーストパイプ52に配設(介装)された第2触媒(中間三元触媒、又は、車両のフロア下方に配設されるため、第1アンダ・フロア・コンバータとも云う。)54、及び第2触媒54の下流のエキゾーストパイプ52に配設(介装)された第3触媒(最下流三元触媒、又は、第2アンダ・フロア・コンバータとも云う。)55を備えている。排気ポート34、エキゾーストマニホールド51、及びエキゾーストパイプ52は、排気通路を構成している。また、この排気通路に直列に介装された第1触媒53、第2触媒54、及び第3触媒55は触媒装置を構成している。
【0037】
一方、このシステムは、熱線式エアフローメータ61、スロットルポジションセンサ62、カムポジションセンサ63、クランクポジションセンサ64、水温センサ65、第1触媒53の上流の排気通路に配設された空燃比センサ66(以下、「最上流空燃比センサ66」と称呼する。)、第1触媒53の下流であって第2触媒54の上流の排気通路に配設された空燃比センサ67(以下、「第1触媒下流空燃比センサ67」と称呼する。)、第2触媒54の下流であって第3触媒55の上流の排気通路に配設された空燃比センサ68(以下、「第2触媒下流空燃比センサ68」と称呼する。)、第3触媒55の下流の排気通路に配設された空燃比センサ69(以下、「第3触媒下流空燃比センサ69」と称呼する。)、及びアクセル開度センサ82を備えている。
【0038】
熱線式エアフローメータ61は、吸気管41内を流れる吸入空気の質量流量を検出し、同質量流量Gaを表す信号を出力するようになっている。スロットルポジションセンサ62は、スロットル弁43の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ63は、インテークカムシャフトが90°回転する毎に(即ち、クランク軸24が180°回転する毎に)一つのパルスを有する信号(G2信号)を発生するようになっている。クランクポジションセンサ64は、クランク軸24が10°回転する毎に幅狭のパルスを有するとともに同クランク軸24が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。水温センサ65は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【0039】
最上流空燃比センサ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を表す信号を出力するようになっている。
【0040】
更に、このシステムは電気制御装置70を備えている。電気制御装置70は、互いにバスで接続されたCPU71、CPU71が実行するルーチン(プログラム)、テーブル(ルックアップテーブル、マップ)、及び定数等を予め記憶したROM72、CPU71が必要に応じてデータを一時的に格納するRAM73、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップRAM74、並びにADコンバータを含むインターフェース75等からなるマイクロコンピュータである。インターフェース75は、前記センサ61〜69,82と接続され、CPU71にセンサ61〜69,82からの信号を供給するとともに、同CPU71の指示に応じて可変吸気タイミング装置33のアクチュエータ33a、イグナイタ38、インジェクタ39、及びスロットル弁アクチュエータ43aに駆動信号を送出するようになっている。
【0041】
(空燃比フィードバック制御の概要)
次に、上記のように構成された内燃機関の排気浄化装置が行う空燃比フィードバック制御の概要について説明する。
【0042】
第1触媒53(第2触媒54及び第3触媒55も同様である。)等の三元触媒は、同三元触媒に流入するガスの空燃比が理論空燃比であるときに、HC,COを酸化するとともにNOxを還元し、これらの有害成分を高い効率で浄化する。また、三元触媒は、酸素を吸蔵・放出する機能(酸素吸蔵機能、酸素吸蔵・放出機能)を有し、この酸素吸蔵・放出機能により、空燃比が理論空燃比からある程度まで偏移したとしても、HC,CO、及びNOxを浄化することができる。即ち、機関の空燃比がリーンとなって三元触媒に流入するガスにNOxが多量に含まれると、三元触媒はNOxから酸素分子を奪って同酸素分子を吸蔵するとともに同NOxを還元し、これによりNOxを浄化する。また、機関の空燃比がリッチになって三元触媒に流入するガスにHC,COが多量に含まれると、三元触媒はこれらに吸蔵している酸素分子を与えて(放出して)酸化し、これによりHC,COを浄化する。換言すれば、三元触媒に流入する排ガスの空燃比がリッチである場合には同三元触媒の酸素吸蔵量が減少するとともに三元触媒に流入する排ガスの空燃比がリーンである場合には同三元触媒の酸素吸蔵量が増加する。
【0043】
従って、三元触媒が連続的に流入するリッチ空燃比の排ガス中にある多量のHC,COを効率的に浄化するためには、同三元触媒が酸素を多量に貯蔵していなければならず、逆に連続的に流入するリーン空燃比の排ガス中にある多量のNOxを効率的に浄化するためには、同三元触媒が酸素を十分に貯蔵し得る状態になければならないことになる。以上のことから、HC,COやNOxを効率よく浄化するため三元触媒である第1〜第3触媒53〜55内の酸素吸蔵量がそれぞれ最大酸素吸蔵量の半分の量(目標酸素吸蔵量)になるように機関に供給される混合気の空燃比(従って、触媒装置に流入する排ガスの空燃比)が制御されることが好ましい。
【0044】
一方、三元触媒の酸素吸蔵量が最大酸素吸蔵量に近づくほど同三元触媒が有する前記酸素吸蔵機能が低下して同三元触媒からNOxが多量に排出され得るようになる。即ち、三元触媒から流出する排ガスの状態が酸素が大きく過剰な状態になり得るようになる。これに対し、三元触媒の酸素吸蔵量が「0」に近づくほど同三元触媒が有する前記酸素放出機能が低下して同三元触媒から未燃HC,COが多量に排出され得るようになる。即ち、三元触媒から流出する排ガスの状態が酸素が大きく不足している状態になり得るようになる。
【0045】
以上のことから、第1〜第3触媒53〜55内の酸素吸蔵量がそれぞれ最大酸素吸蔵量の半分の量に維持され得るように制御するためには、第1〜第3触媒53〜55から流出する排ガス中の各々の酸素の過不足量(特定成分の量に関する値)を推定し、同各々の酸素の過不足量が目標値「0」になるように機関に供給される混合気の空燃比(従って、触媒装置に流入するガスの空燃比)をフィードバック制御することができれば好適であると考えられる。
【0046】
また、このような空燃比フィードバック制御においては、空燃比を補正するための触媒装置についてのフィードバック制御量が大きく計算されると比較的大きな空燃比変化が発生することで機関の出力が変動し、ドライバビリティが悪化する。従って、ドライバビリティの悪化を抑制するという観点から、触媒装置についてのフィードバック制御量の大きさを左右するフィードバックゲインをドライバビリティが悪化しない程度に小さい値に設定する必要がある。
【0047】
一方、触媒装置についてのフィードバック制御量が小さく計算されると、各触媒53〜55からNOxや未燃HC,COが多量に流出している状態(各触媒53〜55から流出する排ガス中の酸素の過不足量の絶対値が大きい状態)になったとき、同状態から、各触媒53〜55からNOxや未燃HC,COが殆ど流出しない状態(各触媒53〜55から流出する排ガス中の酸素の過不足量が略「0」となる状態)に復帰するまでの時間が比較的長くなる。即ち、エミッションが多量に流出する可能性が高い時間が比較的長くなる。従って、排気浄化の観点からは、フィードバック制御により空燃比にハンチングが発生しない程度にフィードバックゲインを比較的大きい値に設定する必要がある。
【0048】
更に、仮に第1触媒53からエミッションが流出しても、第1触媒53の下流に位置する第2,第3触媒54,55によりこれを浄化し得る可能性があることから、第1触媒53から流出する排ガス中の酸素の過不足量についての(第1触媒53についての)フィードバックゲインを排気浄化の観点から大きい値に設定する要求の程度は少ない。これに対し、第3触媒55からエミッションが流出した場合、同第3触媒55の下流にはこれを浄化し得る手段が存在しないから、第3触媒55から流出する排ガス中の酸素の過不足量についての(第3触媒55についての)フィードバックゲインを排気浄化の観点から大きい値に設定する要求の程度は大きい。
【0049】
以上のことから、上記のように構成された内燃機関の排気浄化装置においては、第1触媒53についてのフィードバックゲインKpcg1をドライバビリティが悪化しない程度に小さい値に設定し、第3触媒55についてのフィードバックゲインKpcg3を空燃比にハンチングが発生しない程度に大きい値に設定するとともに、第2触媒54についてのフィードバックゲインKpcg2を両値の中間の値に設定することが好ましい。
【0050】
そこで、本排気浄化装置は、後に詳述する触媒モデルを各触媒53〜55にそれぞれ適用することで、各触媒53〜55から流出するガス中の各々の酸素の過不足量(流出酸素量)Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)を逐次求め、下記数1及び下記数2に従って、機関に供給される混合気の空燃比を補正するための触媒装置についてのフィードバック制御量(サブフィードバック制御量)vafsfbを求める。Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)は、酸素が過剰であるとき(即ち、排ガス中にO2及びNOxが過剰に存在するとき)正の値となり、酸素が不足しているとき(即ち、排ガス中に未燃HC,COが過剰に存在するとき)負の値となるように計算される。
【0051】
【数1】
DCgout1O2=Cgout1O2(N1)−Cgout1ref
DCgout2O2=Cgout2O2(N2)−Cgout2ref
DCgout3O2=Cgout3O2(N3)−Cgout3ref
【0052】
【数2】
vafsfb=Kpcg1・Kwc1・DCgout1O2+Kpcg2・Kwc2・DCgout2O2+Kpcg3・Kwc3・DCgout3O2
【0053】
上記数1において、Cgout1ref, Cgout2ref, Cgout3refは、第1〜第3触媒53〜55の各々の排気浄化の状態を表す値としての流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)の各々の目標値であり、本例では総て「0」である。従って、第1〜第3触媒53〜55についての偏差量DCgout1O2, DCgout2O2, DCgout3O2は、本例では、それぞれCgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)と等しい。また、第1〜第3触媒53〜55についての偏差量DCgout1O2, DCgout2O2, DCgout3O2は、正の値であるとき機関に供給される混合気の空燃比をリッチ側に補正するための値となり、負の値であるとき同空燃比をリーン側に補正するための値となる。
【0054】
また、上記数2において、Kpcg1, Kpcg2, Kpcg3は、それぞれ、第1〜第3触媒53〜55についてのフィードバックゲイン(比例ゲイン)であって、0 < Kpcg1 < Kpcg2 < Kpcg3 なる関係にある。Kwc1, Kwc2, Kwc3は、それぞれ、第1〜第3触媒53〜55についてのフィードバックゲインKpcg1, Kpcg2, Kpcg3を重み付けするための重み係数であり、図4に示すように、対応する触媒についての前記偏差量の絶対値の増加に応じて増加するように設定される。これは、前記偏差量の絶対値が大きい場合、対応する触媒の酸素吸蔵量が目標酸素吸蔵量(最大酸素吸蔵量の半分の量)からの大きく偏移している可能性が高いことから、早急に同対応する触媒の酸素吸蔵量を目標酸素吸蔵量に復帰させる必要があることに基づく。
【0055】
また、図4に示すように、重み係数Kwc1, Kwc2, Kwc3は、対応する触媒についての前記偏差が正の値(機関に供給される混合気の空燃比をリッチ側に補正するための値)となる場合と負の値(同空燃比をリーン側に補正するための値)となる場合とで同偏差の絶対値が等しいとき、同偏差が正の値となる場合の方が負の値となる場合よりも大きく設定される。これは、対応する触媒の酸素吸蔵量を効率良く目標酸素吸蔵量に維持させるためである。
【0056】
即ち、一般に、触媒に流入するガスの空燃比が理論空燃比から所定の程度だけリーンであるときの同触媒の酸素吸蔵量の増加速度が同触媒に流入するガスの空燃比が理論空燃比から同所定の程度と同程度だけリッチであるときの同触媒の酸素吸蔵量の減少速度よりも速い。また、触媒の酸素吸蔵量の変化速度は、同触媒に流入するガスの空燃比の理論空燃比からの偏移量が大きいほど速くなる。一方、対応する触媒についての前記偏差が正の値となる場合と負の値となる場合とで同偏差の絶対値が等しいとき、同対応する触媒の酸素吸蔵量の増加速度と減少速度とを等しくすることが同対応する触媒の酸素吸蔵量を効率良く目標酸素吸蔵量に維持させる上で好適である。以上のことから、上記のように重み係数Kwc1, Kwc2, Kwc3を設定することにより、対応する触媒についての前記偏差が正の値となる場合と負の値となる場合とで同偏差の絶対値が等しいときにおいて、触媒装置についてのフィードバック制御量(サブフィードバック制御量)vafsfbは正の値として計算される場合のその値が負の値として計算される場合のその絶対値よりも大きくなるように計算され得る。その結果、機関に供給される混合気の空燃比の理論空燃比からリッチ側への偏移量がリーン側への偏移量よりも大きくなるから、同対応する触媒の酸素吸蔵量の増加速度と減少速度とが等しくなって同対応する触媒の酸素吸蔵量が効率良く目標酸素吸蔵量に維持され得る。
【0057】
このように、本排気浄化装置は、各触媒53〜55についてのフィードバックゲインKpcg1, Kpcg2, Kpcg3の値をこの順に大きくなるように設定する。そして、本排気浄化装置は、各触媒53〜55の排気浄化の状態を表す値である同各触媒53〜55からの流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)とそれらの目標値Cgout1ref, Cgout2ref, Cgout3ref(総て「0」)との各々の偏差DCgout1O2, DCgout2O2, DCgout3O2に、フィードバックゲインKpcg1, Kpcg2, Kpcg3に同偏差DCgout1O2, DCgout2O2, DCgout3O2に応じて決定される重み係数Kwc1, Kwc2, Kwc3を乗じた値(フィードバックゲインKpcg1, Kpcg2, Kpcg3に同偏差DCgout1O2, DCgout2O2, DCgout3O2に応じて重み付けした値)をそれぞれ乗じることで、各触媒53〜55についてのフィードバック制御量Kpcg1・Kwc1・DCgout1O2, Kpcg2・Kwc2・DCgout2O2, Kpcg3・Kwc3・DCgout3O2をそれぞれ求め、これらの和として(これらの総てに基づいて)機関の空燃比をフィードバック制御(補正)するための触媒装置についてのフィードバック制御量(サブフィードバック制御量)vafsfbを求める。このようにして触媒装置についてのフィードバック制御量(サブフィードバック制御量)vafsfbを求める手段がフィードバック制御量算出手段に相当する。また、本例は、第1〜第3触媒53〜55の各々の触媒全体を各々の「触媒部」として捉え、触媒装置が3つの触媒部から構成される場合を示している。
【0058】
そして、本排気浄化装置は、上記のように求めたサブフィードバック制御量vafsfbに基づいて同サブフィードバック制御量vafsfbが「0」になるように機関に供給される混合気の空燃比(従って、触媒装置に流入するガスの空燃比)をフィードバック制御する。
【0059】
より具体的には、サブフィードバック制御量vafsfbが正の値(従って、機関に供給される混合気の空燃比をリッチ側に補正するための値)になると、同サブフィードバック制御量vafsfb分だけ最上流空燃比センサ66の出力vabyfsを補正し、これにより、機関に供給される混合気の空燃比が、同最上流空燃比センサ66の検出空燃比よりも見かけ上リーン側であるように設定し、その補正した見かけ上の空燃比が目標空燃比(機関の目標空燃比、ここでは理論空燃比)となるように同混合気の空燃比をフィードバック制御する。
【0060】
同様に、サブフィードバック制御量vafsfbが負の値(従って、機関に供給される混合気の空燃比をリーン側に補正するための値)になると、同サブフィードバック制御量vafsfb分だけ最上流空燃比センサ66の出力vabyfsを補正し、これにより、機関に供給される混合気の空燃比が、同最上流空燃比センサ66の検出空燃比よりも見かけ上リッチ側であるように設定し、その補正した見かけ上の空燃比が目標空燃比となるように同混合気の空燃比をフィードバック制御する。以上により、触媒装置に流入する排ガスの空燃比(の平均値)が目標空燃比(略理論空燃比)と一致せしめられる。
【0061】
また、このような空燃比フィードバック制御において、例えば、第1〜第3触媒53〜55についての偏差量DCgout1O2, DCgout2O2, DCgout3O2のうち第1触媒53についての偏差量DCgout1O2(の絶対値)のみが大きくなった場合(第1触媒53からのみエミッションが流出する可能性が高くなった場合)、小さい値に設定されたフィードバックゲインKpcg1に基づいてサブフィードバック制御量vabyfs(の絶対値)が小さめに計算されるとともに、第3触媒55についての偏差量DCgout3O2(の絶対値)が大きくなった場合(第3触媒55からエミッションが流出する可能性が高くなった場合)、大きい値に設定されたフィードバックゲインKpcg3に基づいてサブフィードバック制御量vabyfs(の絶対値)が大きめに計算され得る。従って、外部へのエミッションの排出の可能性が小さい場合にはフィードバック制御による空燃比の変動幅を小さくすることでドライバビリティの悪化を抑制することが優先され、外部へのエミッションの排出の可能性が大きい場合には制御の応答性を向上させることで排気浄化を確実に行うことが優先される。以上のように、サブフィードバック制御量vabyfsに基づいて機関に供給される混合気の空燃比(従って、触媒装置に流入するガスの空燃比)をフィードバック制御する手段が空燃比制御手段に相当する。
【0062】
(触媒モデル)
次に、先に説明した上記数1の計算にて使用する各触媒53〜55から流出する流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)を求めるために本実施形態の排気浄化装置が採用する触媒モデルについて説明する。一般に、触媒にリーンな空燃比のガスが流入したときには、同触媒の上流側においてより多くの酸素が吸蔵され、同触媒にリッチな空燃比のガスが流入したときには、同触媒の上流側から吸蔵されている酸素が消費されていく。従って、触媒内に吸蔵されている酸素は同触媒の排ガスの流れ方向において均一に分布しているわけではない。よって、触媒内の酸素吸蔵量を正確に求めるためには、係る吸蔵酸素の分布を考慮した計算を行う必要がある。
【0063】
また、触媒の酸素吸蔵量は同触媒内において発生する上記酸素吸蔵・放出反応の程度に応じて変化する。この酸素吸蔵・放出反応の程度は、触媒に流入する排ガスに含まれる上記酸素吸蔵・放出反応に関係する特定成分の量に依存する。従って、触媒の酸素吸蔵量を正確に求めるためには、触媒に流入する排ガス中の前記特定成分の量を考慮に入れた計算を行う必要がある。そして、触媒の酸素吸蔵量を正確に求めることにより、触媒から流出する排ガス中の前記特定成分の量を正確に求めることができる。そこで、本装置は以下に説明する触媒モデルを第1〜第3触媒53〜55に適用することにより、同第1〜第3触媒53〜55の各酸素吸蔵量を算出するとともに同第1〜第3触媒53〜55から流出する排ガス中の特定成分の量である前記流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)を求める。
【0064】
この触媒モデルにおいては、図5に模式的に示したように、軸線に直交する断面形状が一定である柱状の触媒を同軸線に直交する平面によりN個の(複数の)領域(「ブロック」とも称呼する。)に仮想的に分割する。即ち、触媒モデルが対象とする触媒は排ガスの流れ方向に沿ってN個のブロックに分割されている。分割された各ブロックの軸線方向の長さはLである。なお、説明の便宜上、各ブロックには、排ガスの流れ方向に沿って上流側から順に図16に示すように番号が付されている。また、任意のi番目のブロックに関連する変数・記号等には、それらの末尾に(i)が付される。
【0065】
この触媒モデルにおいては、図6に示したように、分割されたブロックのうちのi番目のブロック(i)(特定領域)に注目し、同ブロック(i)における酸素吸蔵・放出反応に関係する特定成分のCPU71の演算周期あたりの収支を考える。このとき、触媒での酸化・還元反応である三元反応は瞬時かつ完全に終了するものと仮定し、その結果としての酸素の過不足に基づく酸素の吸蔵・放出反応のみに着目するものとする。係る仮定(触媒モデル)は、現実的でありかつ計算精度のよいものである。なお、図6に示した排ガス相は排ガスが通過する空間であり、コート層は触媒機能(酸化還元機能)を発生せしめる白金(Pt)等の貴金属からなる活性成分及び酸素吸蔵機能を発生せしめるセリア(CeO2)等の成分が担持された層である。
【0066】
特定成分は、例えば、酸素(分子)O2、窒素酸化物NOx、一酸化炭素CO、炭化水素HCから選択された成分であってもよいが、この触媒モデルでは、上記三元反応が瞬時かつ完全に終了するものと仮定した状態における排ガスに含まれる酸素(酸素分子及び窒素酸化物の酸素。本明細書では、酸素分子及び窒素酸化物の酸素を総称して「酸素」と称呼する。)(の過不足)を特定成分として選択している。この酸素の量である酸素量CgO2は、同酸素が過剰であるとき(即ち、排ガス中にO2及びNOxが過剰に存在する場合)に正の値となり、同酸素が不足しているとき(即ち、排ガス中に未燃HC,COが過剰に存在する場合)に負の値となるように計算される。
【0067】
また、注目するブロック(i)において、CPU71の演算周期あたり同ブロック(i)の排ガス相に流入する酸素量CgO2を流入酸素量CginO2(i)、同演算周期あたり同ブロック(i)の排ガス相から流出する酸素量CgO2を流出酸素量CgoutO2(i)と称呼し、同演算周期あたり同ブロック(i)のコート層に吸蔵され又は同コート層から放出される酸素量CgO2を酸素吸蔵量変化量δOSA(i)と称呼する。この酸素吸蔵量変化量δOSA(i)は、酸素がコート層に吸蔵されるときに正の値となり、酸素がコート層から放出されるときに負の値となるように計算される。また、現時点におけるブロック(i)のコート層における酸素吸蔵量を酸素吸蔵量OSA(i)と称呼し、現時点におけるブロック(i)のコート層における最大酸素吸蔵量を最大酸素吸蔵量Cmax(i)と称呼する。
【0068】
いま、図6に示すブロック(i)における酸素量CgO2の上記演算周期あたりの収支を考えると、同ブロック(i)の排ガス相に流入した流入酸素量CginO2(i)のうち酸素吸蔵量変化量δOSA(i)だけがコート層に吸蔵され、同流入酸素量CginO2(i)のうちコート層に吸蔵されなかった残りの酸素量CgO2が流出酸素量CgoutO2(i)となるから、流入酸素量CginO2(i),流出酸素量CgoutO2(i)及び酸素吸蔵量変化量δOSA(i)の間には下記数3に示した関係が成立する。この下記数3に示した関係が本触媒モデルの基本式である。
【0069】
【数3】
CgoutO2(i)=CginO2(i)−δOSA(i)
【0070】
次に、酸素吸蔵量変化量δOSA(i)について考える。流入酸素量CginO2(i)が正の値のときはブロック(i)の排ガス相に流入する排ガス中に酸素が過剰に存在していることを意味し、同排ガス中の酸素の一部はブロック(i)のコート層に吸蔵されるから酸素吸蔵量変化量δOSA(i)は正の値となる。このときの酸素吸蔵反応の量、即ち酸素吸蔵量変化量δOSA(i)は、流入酸素量CginO2(i)の値に比例するとともにブロック(i)の現時点での最大酸素吸蔵量Cmax(i)と現時点での酸素吸蔵量OSA(i)との差の値に比例すると考えられる。従って、流入酸素量CginO2(i)が正の値のとき、酸素吸蔵量変化量δOSA(i)は下記数4及び下記数5に基づいて算出され得る。
【0071】
【数4】
δOSA(i)=H(i)・CginO2(i)
【0072】
【数5】
H(i)=h1・((Cmax(i)−OSA(i))/Cmax(i)) (0 ≦ H(i) < 1)
【0073】
上記数4及び上記数5において、H(i)はブロック(i)における流入酸素量CginO2(i)に対する吸蔵される酸素量(δOSA(i))の割合を示す反応率である。h1は酸素吸蔵時反応速度定数であり本モデルでは正の一定値としているが触媒の温度に応じて変化する正の値(例えば、触媒の温度の増加に応じて単調増加する正の値)としてもよい。また、上記数5における現時点での最大酸素吸蔵量Cmax(i)と現時点での酸素吸蔵量OSA(i)との差の値(Cmax(i)−OSA(i))は、ブロック(i)における現時点での酸素吸蔵余裕量を示している。このように、本触媒モデルでは、少なくとも触媒内の酸素吸蔵量に基づいて同触媒が内部に流入する排ガスから吸蔵する酸素量を算出する。
【0074】
一方、流入酸素量CginO2(i)が負の値のときはブロック(i)の排ガス相に流入する排ガス中の酸素が不足していることを意味し、同排ガスにはブロック(i)のコート層から放出された酸素が与えられるから酸素吸蔵量変化量δOSA(i)は負の値となる。このときの酸素放出反応の量、即ち酸素吸蔵量変化量δOSA(i)(の絶対値)は、流入酸素量CginO2(i)の値に比例するとともにブロック(i)の現時点での酸素吸蔵量OSA(i)の値に比例すると考えられる。従って、流入酸素量CginO2(i)が負の値のとき、酸素吸蔵量変化量δOSA(i)は上記数4と同一の関係を示す下記数6及び下記数7に基づいて算出され得る。
【0075】
【数6】
δOSA(i)=H(i)・CginO2(i)
【0076】
【数7】
H(i)=h2・(OSA(i)/Cmax(i)) (0 ≦ H(i) < 1)
【0077】
上記数6及び上記数7において、H(i)はブロック(i)における流入酸素量CginO2(i)(負の値)に対する放出される酸素量(δOSA(i),負の値)の割合を示す反応率である。h2は酸素放出時反応速度定数であり上記数5にて使用される酸素吸蔵時反応速度定数h1よりも小さい正の一定値である。この酸素放出時反応速度定数h2も触媒の温度に応じて変化する正の値(例えば、触媒の温度の増加に応じて単調増加する正の値)としてもよい。また、上記数7における現時点での酸素吸蔵量OSA(i)の値は、ブロック(i)における現時点での酸素放出余裕量を示している。このように、本触媒モデルでは、少なくとも触媒内の酸素吸蔵量に基づいて同触媒が内部に吸蔵している酸素から放出する酸素量を算出する。
【0078】
ここで、酸素吸蔵時反応速度定数h1が酸素放出時反応速度定数h2よりも大きいのは、前記酸素吸蔵余裕量である(Cmax(i)−OSA(i))と前記酸素放出余裕量であるOSA(i)とが等しいとき、酸素吸蔵速度が酸素放出速度よりも大きいことが種々の実験等により判明していることに基づく。なお、上記数5及び上記数7にて使用するブロック(i)における最大酸素吸蔵量Cmax(i)は後述する手法により予め求めらる。また、上記数5及び上記数7にて使用するブロック(i)における現時点での酸素吸蔵量OSA(i)は、初期値が付与された時点から現時点までの酸素吸蔵量変化量δOSA(i)の積算値であるから下記数8に基づいて算出することができる。
【0079】
【数8】
OSA(i)=ΣδOSA(i) (0 ≦ OSA(i) ≦ Cmax(i))
【0080】
次に、各ブロック間での境界条件について考えると、図5に示したように、互いに隣接する2つのブロックのうちの上流側のブロックの排ガス相の流出面と下流側のブロックの排ガス相の流入面は互いに連続しているから、図6に示したように、ブロック(i)に流入する流入酸素量CginO2(i)は、ブロック(i)に隣接する上流側のブロック(i−1)から流出する流出酸素量CgoutO2(i−1)と等しく、また、ブロック(i)から流出する流出酸素量CgoutO2(i)は、ブロック(i)に隣接する下流側のブロック(i+1)に流入する流入酸素量CginO2(i+1)と等しい。従って、下記数9に示した関係が成立する。換言すると、任意のi番目のブロック(i)の流出酸素量CgoutO2(i)が求まればブロック(i)に隣接する下流側のブロック(i+1)の流入酸素量CginO2(i+1)が求まる。
【0081】
【数9】
CginO2(i+1)=CgoutO2(i)
【0082】
以上のことから、最上流のブロック(1)における流入酸素量CginO2(1)が境界条件として付与されれば、上記数4又は上記数6によりブロック(1)における酸素吸蔵量変化量δOSA(1)が求まり、その結果、上記数8によりブロック(1)における酸素吸蔵量OSA(1)を更新できるとともに上記数3によりブロック(1)における流出酸素量CgoutO2(1)が求まる。ブロック(1)における流出酸素量CgoutO2(1)が求まれば、上記数9によりブロック(2)における流入酸素量CginO2(2)が求まり、その結果、上記数4又は上記数6によりブロック(2)における酸素吸蔵量変化量δOSA(2)が求まる。これにより、上記数8によりブロック(2)における酸素吸蔵量OSA(2)を更新できるとともに、上記数3によりブロック(2)における流出酸素量CgoutO2(2)が求まる。
【0083】
CPU71は、このような処理を所定の演算周期毎に繰り返し実行する。従って、CPU71の演算周期が経過する毎に最上流のブロック(1)における流入酸素量CginO2(1)が境界条件として付与されれば、上記数3〜上記数9より、最上流のブロック(1)から、順次、各ブロック(i) (i=1,2,・・・,N) における酸素吸蔵量OSA(i),流入酸素量CginO2(i),及び流出酸素量CgoutO2(i)を算出することができる。これにより、触媒内部の酸素吸蔵量の分布が精度よく計算される。また、各ブロックの酸素吸蔵量OSA(i) (i=1,2,・・・,N) を触媒全体について積算すれば、同触媒全体の酸素吸蔵量OSAallについても精度よく計算することができる。また、この結果、触媒(最下流のブロック(N))から流出する特定成分の量である流出酸素量CgoutO2(N)を正確に求めることができる。
【0084】
なお、以下に、任意のi番目のブロック(i)の流出酸素量CgoutO2(i)を求めるための一般式を求めておく。先ず、上記数3における「i」を「1」に書き換えると下記数10が導かれる。
【0085】
【数10】
CgoutO2(1)=CginO2(1)−δOSA(1)
【0086】
また、上記数3における「i」を「2」に書き換えて、これに上記数9及び上記数10の関係を適用すると、下記数11が導かれる。
【0087】
【数11】
【0088】
さらに、上記数3における「i」を「3」に書き換え、これに上記数9及び上記数11の関係を適用すると、下記数12が導かれる。
【0089】
【数12】
【0090】
このような手続きを繰り返すことにより、任意のi番目のブロック(i)の流出酸素量CgoutO2(i)を求めるための一般式である下記数13が導かれる。
【0091】
【数13】
CgoutO2(i)=CginO2(1)−δOSA(1)−δOSA(2)− ・・・ −δOSA(i−1)−δOSA(i)
(i=1,2,・・・,N)
【0092】
また、上記数3及び上記数4(又は上記数6)より下記数14が導かれるから、下記数14に上記数9の関係を適用し、その関係を一般的に記述すると、任意のi番目のブロック(i)の流出酸素量CgoutO2(i)を求めるための他の一般式である下記数15も容易に導くことができる。
【0093】
【数14】
CgoutO2(i)=CginO2(i)・(1−H(i))
【0094】
【数15】
【0095】
次に、上記数5及び数7において反応率H(i)を求める際に必要となるブロック(i)における最大酸素吸蔵量Cmax(i)の求め方について説明する。図7は、本触媒モデルにおいて、最大酸素吸蔵量Cmax(i)を求める考え方を示した最大酸素吸蔵量分布マップであり、斜線で示された部分の面積は触媒全体の最大酸素吸蔵量Cmaxallの値に対応している。
【0096】
このように、触媒の各ブロック毎の各最大酸素吸蔵量Cmax(n) (n=1,・・・,N)は、同各最大酸素吸蔵量Cmax(n)の総和が同触媒全体の最大酸素吸蔵量Cmaxallの値となるように設定されるとともに、上流側のブロックから下流側のブロックに推移するに従い、所定の勾配をもって線形的に増加するとして取り扱われる。これは、触媒の上流側部分の方が下流側部分に比して、内部に流入する排ガス中の鉛や硫黄等により被毒し易いので、同上流部分の最大酸素吸蔵量が同下流部分に比して低下し易くなるからである。
【0097】
具体的には、本装置は、触媒モデルが対象とする第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)を、図7に示した最大酸素吸蔵量分布マップに基づいた下記数16〜下記数18に基づいてそれぞれ算出する。
【0098】
【数16】
Cmax1(i)=A1・(i−(N1/2))+(Cmax1all/N1) (i=1,2,・・・,N1)
【0099】
【数17】
Cmax2(i)=A2・(i−(N2/2))+(Cmax2all/N2) (i=1,2,・・・,N2)
【0100】
【数18】
Cmax3(i)=A3・(i−(N3/2))+(Cmax3all/N3) (i=1,2,・・・,N3)
【0101】
上記数16〜上記数18において、A1,A2,A3はそれぞれ正の定数であって、各ブロック毎の最大酸素吸蔵量の分布の上記勾配を決定する値である。A1,A2,A3は同一の値であってもよいし、それぞれ異なる値であってもよい。また、各触媒の最大酸素吸蔵量Cmax1all,Cmaxall2,Cmaxall3は、後述するルーチンにより別途計算される。なお、触媒の各ブロック毎の各最大酸素吸蔵量は、上流側のブロックから下流側のブロックに推移するに従い増加するように設定されていればよく、例えば、非線形的に増加するように設定されていてもよい。このようにして、第1触媒53〜第3触媒55の各ブロック毎の最大酸素吸蔵量が算出される。
【0102】
(触媒モデルの適用)
次に、以上説明した触媒モデルを、図8に示したように、第1〜第3触媒53〜55にそれぞれ適用し、各種値を求める例について説明する。
【0103】
以下、第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と称呼する。
【0104】
同様に、第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と称呼する。
【0105】
同様に、第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と称呼する。
【0106】
この触媒モデルにおいては、図8に示したように、第1〜第3触媒53〜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をそれぞれ取得・算出することができるとともに、第1〜第3触媒53〜55から流出する流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)をそれぞれ取得・算出することができる。
【0107】
そこで、先ず、第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」に設定する。
【0108】
同様に、本装置は、第2触媒下流空燃比センサ68の出力voxs2が0.7(V)より大きい値を示したとき、即ち、第2触媒54の下流側の空燃比が明白なリッチ空燃比となったときは、第2触媒54の各ブロックにおける酸素吸蔵量OSA2(i) (i=1,2,・・・,N2) 及び第2触媒54全体の酸素吸蔵量OSA2allを全て「0」に設定する。
【0109】
同様に、本装置は、第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」が初期条件として付与される。
【0110】
次に、第1触媒53の最上流のブロック1(1)における流入酸素量Cgin1O2(1)を付与する方法について説明すると、本装置は、下記数19に基づいてCPU71の演算周期毎の流入酸素量Cgin1O2(1)を算出する。
【0111】
【数19】
Cgin1O2(1)=0.23・mfr1・(abyfs − stoich)
【0112】
上記数19において、値「0.23」は大気中に含まれる酸素の重量割合である。mfr1は所定時間tsample内の燃料噴射量Fiの合計量であり、stoichは理論空燃比(例えば、14.7)である。abyfsは所定時間tsampleにおいて最上流空燃比センサ66により検出された空燃比A/Fである。この数19に示したように、所定時間tsample内の噴射量の合計量mfr1に、検出された空燃比A/Fの理論空燃比からの偏移(abyfs − stoich)を乗じることで、同所定時間tsampleにおける空気の過剰量が求められる。この空気の過剰量に酸素の重量割合を乗じることで同所定時間tsampleにおける酸素の過剰量、即ち、流入酸素量Cgin1O2(1)が求められる。
【0113】
この流入酸素量Cgin1O2(1)は、上記数19から明らかなように、酸素が過剰であるとき(即ち、空燃比がリーンであってabyfs>stoichのとき)に正の値となり、酸素が不足しているとき(即ち、空燃比がリッチであってabyfs<stoichのとき)に負の値となるように計算される。
【0114】
次に、第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)が境界条件として付与される。
【0115】
第3触媒55の最上流のブロック3(1)における流入酸素量Cgin2O3(1)についても同様であり、本装置は、第2触媒54の最下流のブロック2(N2)から流出する流出酸素量Cgout2O2(N2)の値を流入酸素量Cgin3O2(1)として使用する。このようにして、CPU71の演算周期毎に第3触媒55の最上流のブロック3(1)における流入酸素量Cgin3O2(1)が境界条件として付与される。以上のようにして、各触媒部の排気浄化の状態を表す値としての同各触媒部から流出する排ガス中の特定成分の量に関する値である流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)を各触媒53〜55内における酸素吸蔵・放出反応を考慮した計算により取得・算出する手段が排気浄化状態取得手段に相当する。
【0116】
(第1実施形態の実際の作動)
次に、第1実施形態に係る排気浄化装置の実際の作動について説明する。
(空燃比のフィードバック制御)
CPU71は、図9にフローチャートにより示した最終燃料噴射量Fiの計算及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が前記所定クランク角度になると、CPU71はステップ900から処理を開始してステップ905に進み、エアフローメータ61により計測された吸入空気流量Gaとエンジン回転速度NEとに基づいて、機関に供給される混合気の空燃比を理論空燃比とするための基本燃料噴射量Fbaseを求める。具体的には、エアフローメータ61が計測している吸入空気流量Gaに一次遅れ処理を施した値をエンジン回転速度NEで除することで筒内吸入空気量Mcを算出し、これを目標空燃比である理論空燃比で除する関数fにより基本燃料噴射量Fbaseを求める。
【0117】
次いで、CPU71はステップ910に進み、基本燃料噴射量Fbaseに係数Kを乗じた値に後述するメインフィードバック制御量DFiを加えた値を最終燃料噴射量Fiとして設定する。この係数Kの値は、通常は「1.00」であり、後述するように、各最大酸素吸蔵量Cmax1all〜Cmax3allを求めるために強制的に空燃比を変更するとき、「1.00」以外の所定値に設定される。
【0118】
次いで、CPU71はステップ915に進み、同ステップ915にて同最終燃料噴射量Fiの燃料を噴射するための指示をインジェクタ39に対して行う。その後、CPU71はステップ920に進み、その時点の燃料噴射量合積算値mfrに最終燃料噴射量Fiを加えた値を新たな燃料噴射量積算値mfrに設定するとともに、続くステップ925にてその時点の燃料噴射量積算値mfr1に最終燃料噴射量Fiを加えた値を新たな燃料噴射量積算値mfr1に設定する。この燃料噴射量積算値mfr,及びmfr1は、それぞれ後述するルーチンにて用いられる。その後、CPU71はステップ995に進み、本ルーチンを一旦終了する。以上により、フィードバック補正された最終燃料噴射量Fiの燃料が吸気行程を迎える気筒に対して噴射される。
【0119】
次に、上記メインフィードバック制御量DFiの算出について説明すると、CPU71は図10にフローチャートにより示したルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、CPU71はステップ1000から処理を開始し、ステップ1005に進んで空燃比フィードバック制御条件(メインフィードバック条件)が成立しているか否かを判定する。この空燃比フィードバック制御条件は、例えば、機関の冷却水温THWが第1所定温度以上であり、機関の一回転当りの吸入空気量(負荷、筒内吸入空気量Mc)が所定値以下であり、最上流空燃比センサ66が正常(活性状態であることを含む。)であり、且つ、後述する最大酸素吸蔵量取得制御実行中フラグXHANの値が「0」のときに成立する。なお、最大酸素吸蔵量取得制御実行中フラグXHANは、その値が「1」のとき最大酸素吸蔵量Cmax1all〜Cmax3allの算出のために強制的に空燃比を変更する空燃比制御(アクティブ制御)を実行していることを示し、その値が「0」のとき同最大酸素吸蔵量Cmax1all〜Cmax3allの算出のための空燃比制御を実行していないことを示す。
【0120】
いま、空燃比フィードバック制御条件が成立しているものとして説明を続けると、CPU71はステップ1005にて「Yes」と判定してステップ1010に進み、現時点の最上流空燃比センサ66の出力vabyfsと後述するサブフィードバック制御量vafsfbとの和(vabyfs+vafsfb)を図2に示したマップに基づいて変換することにより、現時点における第1触媒53のメインフィードバック制御用空燃比abyfsを求める。このメインフィードバック制御用空燃比abyfsが、最上流空燃比センサ66の出力をサブフィードバック制御量vafsfbにより補正した第1触媒53の上流における上記「見かけ上の空燃比」である。
【0121】
次に、CPU71はステップ1015に進み、現時点からNストローク(N回の吸気行程)前に吸気行程を迎えた気筒の吸入空気量である筒内吸入空気量Mc(k−N)を前記求めたメインフィードバック制御用空燃比abyfsで除することにより、現時点からNストローク前の筒内燃料供給量Fc(k−N)を求める。値Nは、内燃機関の排気量、燃焼室25から最上流空燃比センサ66までの距離等により異なる値である。
【0122】
このように、現時点からNストローク前の筒内燃料供給量Fc(k−N)を求めるために、現時点からNストローク前の筒内吸入空気量Mc(k−N)をメインフィードバック制御用空燃比abyfsで除するのは、燃焼室25内で燃焼された混合気が最上流空燃比センサ66に到達するまでには、Nストロークに相当する時間を要しているからである。なお、筒内吸入空気量Mcは、各気筒の吸気行程に対応されながらRAM73内に記憶されるようになっている。
【0123】
次いで、CPU71はステップ1020に進み、現時点からNストローク前の筒内吸入空気量Mc(k−N)を現時点からNストローク前の時点における目標空燃比abyfr(k−N)(この例では、理論空燃比)で除することにより、現時点からNストローク前の目標筒内燃料供給量Fcr(k−N)を求める。そして、CPU71はステップ1025に進んで目標筒内燃料供給量Fcr(k−N)から筒内燃料供給量Fc(k−N)を減じた値を筒内燃料供給量偏差DFcとして設定する。つまり、筒内燃料供給量偏差DFcは、Nストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。次に、CPU71はステップ1030に進み、下記数20に基づいてメインフィードバック制御量DFiを求める。
【0124】
【数20】
DFi=(Gp・DFc+Gi・SDFc)・KFB
【0125】
上記数20において、Gpは予め設定された比例ゲイン(比例定数)、Giは予め設定された積分ゲイン(積分定数)である。なお、数20の係数KFBはエンジン回転速度NE、及び筒内吸入空気量Mc等により可変とすることが好適であるが、ここでは「1」としている。また、値SDFcは筒内燃料供給量偏差DFcの積分値であり、次のステップ1035にて更新される。即ち、CPU71は、ステップ1035にてその時点における筒内燃料供給量偏差DFcの積分値SDFcに上記ステップ1025にて求めた筒内燃料供給量偏差DFcを加えて、新たな筒内燃料供給量偏差の積分値SDFcを求め、ステップ1095にて本ルーチンを一旦終了する。
【0126】
以上により、メインフィードバック制御量DFiが比例積分制御により求められ、このメインフィードバック制御量DFiが前述した図9のステップ910により燃料噴射量に反映されるので、Nストローク前の燃料供給量の過不足が補償され、内燃機関に供給される混合気の空燃比の平均値が目標空燃比abyfrと略一致せしめられるようにフィードバック制御される。
【0127】
一方、ステップ1005の判定時において、空燃比フィードバック制御条件が不成立であると、CPU71は同ステップ1005にて「No」と判定してステップ1040に進み、メインフィードバック制御量DFiの値を「0」に設定し、その後ステップ1095に進んで本ルーチンを一旦終了する。このように、空燃比フィードバック制御条件が不成立であるとき(最大酸素吸蔵量取得制御実行中を含む)は、メインフィードバック制御量DFiを「0」として空燃比(基本燃料噴射量Fbase)の補正を行わない。
【0128】
次に、触媒装置についてのフィードバック制御量である上記サブフィードバック制御量vafsfbに基づく空燃比フィードバック制御(サブフィードバック制御)について説明する。このサブフィードバック制御により、サブフィードバック制御量vafsfbが算出される。
【0129】
CPU71は、サブフィードバック制御量vafsfbを求めるための図11に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、CPU71はステップ1100から処理を開始し、ステップ1105に進んでサブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件は、例えば、前述したステップ1005での空燃比フィードバック制御条件に加え、機関の冷却水温THWが前記第1所定温度よりも高い第2所定温度以上のとき成立する。
【0130】
いま、サブフィードバック制御条件が成立しているものとして説明を続けると、CPU71はステップ1105にて「Yes」と判定してステップ1110に進み、後述するルーチンにより計算されている最新の流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)の各値と、上記数1とに基づいて、各触媒53〜55についての前記偏差量DCgout1O2, DCgout2O2, DCgout3O2をそれぞれ求める。
【0131】
次いで、CPU71はステップ1115に進み、前記偏差量DCgout1O2, DCgout2O2, DCgout3O2と、前述した図4に示したテーブルと同一のテーブルであるステップ1115内に示したテーブルとに基づいて重み係数Kwc1, Kwc2, Kwc3を決定する。続いて、CPU71はステップ1120に進み、前記偏差量DCgout1O2, DCgout2O2, DCgout3O2と、前記重み係数Kwc1, Kwc2, Kwc3と、上記数2とに基づいてサブフィードバック制御量vafsfbを求めた後、ステップ1195に進んで本ルーチンを一旦終了する。以上のようにして、サブフィードバック制御量vafsfbが求められる。
【0132】
一方、サブフィードバック制御条件が不成立であるとき、CPU71はステップ1105にて「No」と判定してステップ1125に進み、同ステップ1125にてサブフィードバック制御量vafsfbを「0」に設定する。これにより、サブフィードバック制御量vafsfbに基づくサブフィードバック制御が停止される。
【0133】
(最大酸素吸蔵量Cmax1all〜Cmax3all算出のための最大酸素吸蔵量取得制御)
次に、最大酸素吸蔵量算出のために強制的に空燃比を変更する最大酸素吸蔵量取得制御について説明する。CPU71は図12〜図17のフローチャートにより示された各ルーチンを所定時間の経過毎に実行するようになっている。
【0134】
従って、所定のタイミングになると、CPU71は図12のステップ1200から処理を開始し、ステップ1205に進んで最大酸素吸蔵量取得制御実行中フラグXHANの値が「0」であるか否かを判定する。いま、最大酸素吸蔵量算出のための最大酸素吸蔵量取得制御を行っておらず、且つ、最大酸素吸蔵量取得制御開始条件が成立していないとして説明を続けると、最大酸素吸蔵量取得制御実行中フラグXHANの値は「0」となっている。従って、CPU71はステップ1205にて「Yes」と判定してステップ1210に進み、先に説明した図9のステップ910にて使用される係数Kの値を1.00に設定する。
【0135】
次いで、CPU71はステップ1215にて最大酸素吸蔵量取得制御の開始条件が成立しているか否かを判定する。この最大酸素吸蔵量取得制御の開始条件は、冷却水温THWが所定温度以上であり、図示しない車速センサにより得られた車速が所定の高車速以上であり、スロットル弁開度TAの単位時間あたりの変化量が所定量以下である等の機関が定常運転されている条件が成立し、第1触媒〜第3触媒下流空燃比センサ出力voxs1,voxs2,voxs3の総べてが理論空燃比よりもリッチな空燃比に相当する出力を発生し、且つ、前回の最大酸素吸蔵量取得制御実行時点から所定時間が経過している場合等に成立する。現段階では、上述したように、最大酸素吸蔵量取得制御の開始条件は成立していないから、CPU71はステップ1215にて「No」と判定してステップ1295に進み、本ルーチンを一旦終了する。
【0136】
次に、現時点では最大酸素吸蔵量取得制御を行っていないが、最大酸素吸蔵量取得制御の開始条件が成立したものとして説明を続けると、この場合、CPU71はステップ1205にて「Yes」と判定してステップ1210に進み、同ステップ1210にて係数Kの値を1.00に設定する。次いで、CPU71は、開始条件が成立しているので、ステップ1215にて「Yes」と判定してステップ1220に進み、同ステップ1220にて最大酸素吸蔵量取得制御実行中フラグXHANの値を「1」に設定する。
【0137】
そして、CPU71はステップ1225に進み、第1モードに移行するためにModeの値を「1」に設定するとともに、続くステップ1230にて係数Kの値を0.98に設定し、ステップ1295に進んで本ルーチンを一旦終了する。これにより、前述の空燃比フィードバック制御条件が成立しなくなるから、CPU71は図10のステップ1005にて「No」と判定してステップ1040に進むようになり、空燃比フィードバック補正量DFiの値は「0」に設定される。この結果、図9のステップ910の実行により、基本燃料噴射量Fbaseが0.98倍された値が最終燃料噴射量Fiとして算出され、この最終燃料噴射量Fiの燃料が噴射されるので、機関に供給される混合気の空燃比(従って、触媒装置に流入する排ガスの空燃比)は理論空燃比よりもリーンな所定のリーン空燃比に制御される。
【0138】
以降、CPU71は図12のルーチンの処理をステップ1200から繰り返し実行するが、最大酸素吸蔵量取得制御実行中フラグXHANの値が「1」となっていることから、ステップ1205にて「No」と判定して直ちにステップ1295に進み、本ルーチンを一旦終了するようになる。
【0139】
一方、CPU71は図13に示した第1モード制御ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングとなると、CPU71はステップ1300から処理を開始してステップ1305に進み、同ステップ1305にてModeの値が「1」であるか否かを判定する。このとき、Modeの値が「1」でなければ、CPU71は直ちにステップ1395に進んで本ルーチンを一旦終了する。以下、先の図12のステップ1225の処理によりModeの値が「1」に変更された直後であるとして説明を続けると、この場合、CPU71はステップ1305にて「Yes」と判定してステップ1310に進み、第1触媒下流空燃比センサ出力voxs1、第2触媒下流空燃比センサ出力voxs2、及び第3触媒下流空燃比センサ出力voxs3の総べてが理論空燃比よりもリーンな空燃比に相当する出力(酸素が過剰に存在する場合の出力)となったか否かを判定する。
【0140】
現時点では、機関に供給される混合気の空燃比を所定のリーン空燃比に変更した直後であるから、第1触媒下流空燃比センサ出力voxs1、第2触媒下流空燃比センサ出力voxs2、及び第3触媒下流空燃比センサ出力voxs3の総べてが理論空燃比よりもリーンな空燃比に相当する出力とはなっていないので、CPU71はステップ1310にて「No」と判定し、ステップ1395にて本ルーチンを一旦終了する。
【0141】
以降、CPU71は図13のステップ1300〜1310を繰り返し実行する。また、空燃比は所定のリーン空燃比に維持されているから、時間経過に伴って第1触媒53,第2触媒54,及び第3触媒55の順に各酸素吸蔵量が各触媒の最大酸素吸蔵量に到達する。従って、これに応じて第1触媒下流空燃比センサ出力voxs1、第2触媒下流空燃比センサ出力voxs2、及び第3触媒下流空燃比センサ出力voxs3は、この順に理論空燃比よりもリーンな空燃比に相当する出力に変化する。これにより、CPU71はステップ1310に進んだとき、同ステップ1310にて「Yes」と判定してステップ1315に進み、同ステップ1315にてModeの値を「2」に設定するとともに、続くステップ1320にて係数Kの値を1.02に設定し、その後ステップ1395にて本ルーチンを一旦終了する。この結果、機関に供給される混合気の空燃比が理論空燃比よりリッチな所定のリッチ空燃比に制御される。
【0142】
また、CPU71は図14にフローチャートにより示した第2モード制御ルーチンを所定時間の経過毎に繰り返し実行している。従って、CPU71は、所定のタイミングになると、ステップ1400から処理を開始し、ステップ1405にてModeの値が「2」であるか否かを判定し、Modeの値が「2」でなければステップ1405からステップ1495に進んで本ルーチンを一旦終了するように作動している。
【0143】
一方、先のステップ1315の処理によりModeの値が「2」に変更されると、CPU71はステップ1405に進んだとき「Yes」と判定してステップ1410に進み、同ステップ1410にて第1触媒下流空燃比センサ67の出力voxs1が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化したか否かを判定する。この時点では、空燃比が前記所定のリッチ空燃比に変更された直後であるから、CPU71はステップ1410にて「No」と判定し、ステップ1495に進んで本ルーチンを一旦終了する。
【0144】
これ以降、機関に供給される混合気の空燃比は前記所定のリッチ空燃比に維持されるから、第1触媒53に貯蔵されている酸素が消費されて行き、所定の時間が経過すると同第1触媒53の酸素吸蔵量が「0」に至る。この結果、第1触媒53から未燃HC,COが流出し始めるので、第1触媒下流空燃比センサ67の出力voxs1が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化する。これにより、CPU71は、ステップ1410に進んだとき同ステップ1410にて「Yes」と判定してステップ1415に進み、同ステップ1415にてModeの値を「3」に変更し、ステップ1495にて本ルーチンを一旦終了する。
【0145】
同様に、CPU71は、所定時間の経過毎に繰り返し実行する図15にフローチャートにより示した第3モード制御ルーチンにおいて、ステップ1505にてModeの値が「3」であるか否かを判定し、Modeの値が「3」でなければステップ1505からステップ1595に進んで本ルーチンを一旦終了している。
【0146】
一方、先のステップ1415の処理によりModeの値が「3」に変更されると、CPU71はステップ1505に進んだとき「Yes」と判定してステップ1510に進み、同ステップ1510にて第2触媒下流空燃比センサ68の出力voxs2が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化したか否かを判定する。この時点では、第1触媒53から未燃HC,COが流出し始めた直後であり、第2触媒54からは未燃HC,COが流出してこないので、CPU71はステップ1510にて「No」と判定し、ステップ1595に進んで本ルーチンを一旦終了する。
【0147】
その後、機関に供給される混合気の空燃比は、引き続いて前記所定のリッチ空燃比に維持されるから、第2触媒54に貯蔵されている酸素が消費されて行き、所定の時間が経過すると同第2触媒54の酸素吸蔵量が「0」に至る。この結果、第2触媒54から未燃HC,COが流出し始めるので、第2触媒下流空燃比センサ68の出力voxs2が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化する。これにより、CPU71はステップ1510にて「Yes」と判定してステップ1515に進み、第4モードに移行すべくModeの値を「4」に設定し、ステップ1595に進む。
【0148】
同様に、CPU71は、所定時間の経過毎に繰り返し実行する図16にフローチャートにより示した第4モード制御ルーチンにおいて、ステップ1605にてModeの値が「4」であるか否かを判定し、Modeの値が「4」でなければステップ1605からステップ1695に進んで本ルーチンを一旦終了している。
【0149】
一方、先のステップ1515の処理によりModeの値が「4」に変更されると、CPU71はステップ1605に進んだとき「Yes」と判定してステップ1610に進み、同ステップ1610にて第3触媒下流空燃比センサ69の出力voxs3が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化したか否かを判定する。この時点では、第2触媒54から未燃HC,COが流出し始めた直後であり、第3触媒55から未燃HC,COは流出してこないので、CPU71はステップ1610にて「No」と判定し、ステップ1695に進んで本ルーチンを一旦終了する。
【0150】
その後、機関に供給される混合気の空燃比は、引き続いて前記所定のリッチ空燃比に維持されるから、第3触媒55に貯蔵されている酸素が消費されて行き、所定の時間が経過すると同第3触媒55の酸素吸蔵量が「0」に至る。この結果、第3触媒55から未燃HC,COが流出し始めるので、第3触媒下流空燃比センサ69の出力voxs3が理論空燃比よりリーンな空燃比を示す値から同理論空燃比よりリッチな空燃比を示す値に変化する。これにより、CPU71はステップ1610からステップ1615に進み、Modeの値を「0」に再設定し、続くステップ1620にて最大酸素吸蔵量取得制御実行中フラグXHANの値を「0」に設定した後、ステップ1695に進んで本ルーチンを一旦終了する。
【0151】
係る状態となると、CPU71は図12のルーチンを実行する際、ステップ1205にて「Yes」と判定してステップ1210に進むので、係数Kの値が1.00に戻される。また、空燃比フィードバック制御条件が成立していれば、CPU71は図10のルーチンのステップ1005及び図11のルーチンのステップ1105にて「Yes」と判定するから、空燃比フィードバック制御(メインフィードバック制御及びサブフィードバック制御)が再開される。
【0152】
以上、説明したように、最大酸素吸蔵量取得制御の開始条件が成立すると、機関に供給される混合気の空燃比が所定のリーン空燃比、所定のリッチ空燃比の順に1回づつ強制的に制御される。
【0153】
次に、最大酸素吸蔵量取得のための酸素吸蔵量の算出における作動について説明する。CPU71は図17のフローチャートにより示されたルーチンを所定時間(演算周期tsample)の経過毎に実行するようになっている。従って、所定のタイミングになると、CPU71はステップ1700から処理を開始し、ステップ1705に進んで下記数21により酸素吸蔵量変化量ΔO2を求める。
【0154】
【数21】
ΔO2=0.23・mfr・(stoich − abyfsave)
【0155】
上記数21は上記数19と同様の式であり、mfrは図9のステップ920にて逐次更新されている所定時間tsample内の燃料噴射量Fiの合計量であり、abyfsaveは所定時間tsampleにおいて最上流空燃比センサ66により検出された空燃比A/Fの平均値である。この数21に示したように、所定時間tsample内の噴射量の合計量mfrに、検出された空燃比A/Fの平均値の理論空燃比からの偏移(stoich − abyfsave)を乗じることで、同所定時間tsampleにおける空気の消費量(不足量)が求められる。この空気の消費量に酸素の重量割合を乗じることで同所定時間tsampleにおける酸素の消費量(酸素吸蔵量変化量ΔO2)が求められる。
【0156】
次いで、CPU71はステップ1710に進んでModeの値が「2」であるか否か(第2モードであるか否か)を判定し、Modeの値が「2」であれば同ステップ1710にて「Yes」と判定してステップ1715に進み、その時点の酸素吸蔵量OSA1に上記酸素吸蔵量変化量ΔO2を加えた値を新たな酸素吸蔵量OSA1として設定し、その後ステップ1740に進む。
【0157】
このような処置(ステップ1700〜1715)は、Modeの値が「2」である限り繰り返し実行される。この結果、第1触媒53の上流の空燃比が所定のリッチ空燃比とされる第2モード(Mode=2)において、第1触媒53の酸素吸蔵量OSA1が算出されて行く。第2モードにおいては、第1触媒53に貯蔵されている酸素が消費されて行くからである。なお、ステップ1710での判定において「No」と判定される場合、CPU71は同ステップ1710からステップ1720に直接進む。
【0158】
CPU71は、ステップ1720に進んだ場合、Modeの値が「3」であるか否か(第3モードであるか否か)を判定し、Modeの値が「3」であれば同ステップ1720にて「Yes」と判定してステップ1725に進み、その時点の酸素吸蔵量OSA2に上記酸素吸蔵量変化量ΔO2を加えた値を新たな酸素吸蔵量OSA2として設定し、その後ステップ1740に進む。
【0159】
このような処置(ステップ1700,1705,1710,1720,1725)は、Modeの値が「3」である限り繰り返し実行される。この結果、第1触媒53の上流の空燃比が所定のリッチ空燃比とされる第3モード(Mode=3)において、第2触媒54の酸素吸蔵量OSA2が算出されて行く。第3モードにおいては、第2触媒54に貯蔵されている酸素が消費されて行くからである。
【0160】
また、ステップ1720での判定において「No」と判定される場合、CPU71は同ステップ1720からステップ1730に進み、Modeの値が「4」であるか否か(第4モードであるか否か)を判定し、Modeの値が「4」であればステップ1735に進んでその時点の酸素吸蔵量OSA3に上記酸素吸蔵量変化量ΔO2を加えた値を新たな酸素吸蔵量OSA3として設定し、その後ステップ1740に進む。
【0161】
このような処置(ステップ1700,1705,1710,1720,1730,1735)は、Modeの値が「4」である限り繰り返し実行される。この結果、第1触媒53の上流の空燃比が所定のリッチ空燃比とされる第4モード(Mode=4)において、第3触媒55の酸素吸蔵量OSA3が算出されて行く。第4モードにおいては、第3触媒55に貯蔵されている酸素が消費されて行くからである。なお、ステップ1730での判定において「No」と判定される場合、CPU71は同ステップ1730からステップ1740に直接進む。
【0162】
そして、CPU71は、ステップ1740に進むと、燃料噴射量Fiの合計量mfrを「0」に設定し、その後ステップ1795に進んで本ルーチンを一旦終了する。
【0163】
次に、各触媒53〜55の最大酸素吸蔵量Cmax1all,Cmax2all,Cmax3all、及び同各触媒53〜55の各ブロックの最大酸素吸蔵量Cmax1(i),Cmax2(i),Cmax3(i)を算出する際の作動について説明する。CPU71は図18のフローチャートにより示されたルーチンを所定時間の経過毎に実行するようになっている。
【0164】
従って、所定のタイミングになると、CPU71は図18のステップ1800から処理を開始し、ステップ1805に進んで最大酸素吸蔵量取得制御実行中フラグXHANの値が「1」から「0」に変化したか否かをモニタする。このとき、最大酸素吸蔵量取得制御実行中フラグXHANの値が変化していなければ、CPU71はステップ1805からステップ1895に直接進んで本ルーチンを一旦終了する。
【0165】
一方、前述した第4モードが終了した直後であるとすると、図16のステップ1620にて最大酸素吸蔵量取得制御実行中フラグXHANの値が「1」から「0」に変更されるから、CPU71はステップ1805にて「Yes」と判定してステップ1810に進み、その時点の酸素吸蔵量OSA1,OSA2,OSA3の値を、それぞれ第1触媒53全体の最大酸素吸蔵量Cmax1all、第2触媒54全体の最大酸素吸蔵量Cmax2all、及び第3触媒55全体の最大酸素吸蔵量Cmax3allとして格納する。
【0166】
次いでCPU71はステップ1815に進み、カウンタ値nの値を「0」に設定した後、ステップ1820に進んで第1触媒53の各ブロック1毎の最大酸素吸蔵量を算出する処理を開始する。まず、CPU71はステップ1820においてカウンタ値nの値を「1」だけ増大して「1」に設定した後、ステップ1825に進んで上記ステップ1810にて取得した第1触媒53全体の最大酸素吸蔵量Cmax1allの値と、カウンタ値nの値と、上記数16に基づくステップ1825内に記載した式とに基づいて第1触媒53のブロック1(n)における最大酸素吸蔵量Cmax1(n)を算出する。この時点ではカウンタ値nの値は「1」であるから、ブロック1(1)における最大酸素吸蔵量Cmax1(1)が算出される。
【0167】
そして、CPU71はステップ1830に進んでカウンタ値nの値が第1触媒53のブロック数N1と等しいか否かを判定する。現時点ではカウンタ値nの値は「1」であるから、CPU71はステップ1830にて「No」と判定し、再びステップ1820に戻ってカウンタ値nの値を「1」だけ増大した後ステップ1825及びステップ1830の処理を実行する。即ち、ステップ1820及びステップ1825の処理は、カウンタ値nの値が第1触媒53のブロック数N1と等しくなるまで繰り返し実行される。これにより、第1触媒53の最上流のブロック1(1)から最下流のブロック1(N1)までの各ブロック1(n)の最大酸素吸蔵量Cmax1(n)の値が順次算出されていく。
【0168】
前述のステップ1820の処理が繰り返されることによりカウンタ値nの値が第1触媒53のブロック数N1と等しくなると、CPU71はステップ1830にて「Yes」と判定してステップ1835に進み、カウンタ値nの値を「0」に設定した後、ステップ1840に進んで第2触媒54の各ブロック2毎の最大酸素吸蔵量を算出する処理を開始する。
【0169】
この第2触媒54の各ブロック2毎の最大酸素吸蔵量を算出する処理は、上述したステップ1820〜ステップ1830の処理と同様であるステップ1840〜ステップ1850までの処理を第2触媒54のブロック数N2回だけ繰り返し実行することにより達成される。ステップ1845における最大酸素吸蔵量Cmax2(n)の算出は、上記ステップ1810にて取得した第2触媒54全体の最大酸素吸蔵量Cmax2allの値と、カウンタ値nの値と、上記数17に基づくステップ1845内に記載した式とに基づいて行われる。これにより、第2触媒54の最上流のブロック2(1)から最下流のブロック2(N2)までの各ブロック2(n)の最大酸素吸蔵量Cmax2(n)の値が順次算出されていく。
【0170】
ステップ1840の処理が繰り返されることによりカウンタ値nの値が第2触媒54のブロック数N2と等しくなると、CPU71はステップ1850にて「Yes」と判定してステップ1855に進み、カウンタ値nの値を「0」に設定した後、ステップ1860〜ステップ1870を実行し、第3触媒55の各ブロック3毎の最大酸素吸蔵量を算出する処理を開始する。
【0171】
このステップ1860〜ステップ1870の処理は、上述したステップ1820〜ステップ1830の処理と同様であり、最大酸素吸蔵量Cmax3(n)の算出は、上記ステップ1810にて取得した第3触媒55全体の最大酸素吸蔵量Cmax3allの値と、カウンタ値nの値と、上記数18に基づくステップ1865内に記載した式とに基づいて行われる。これにより、第3触媒55の最上流のブロック3(1)から最下流のブロック3(N3)までの各ブロック3(n)の最大酸素吸蔵量Cmax3(n)の値が順次算出されていく。
【0172】
そして、カウンタ値nの値が第3触媒55のブロック数N3と等しくなると、CPU71はステップ1870にて「Yes」と判定してステップ1875に進み、酸素吸蔵量OSA1〜OSA3の各々の値を総て「0」に設定した後、ステップ1895に進んで本ルーチンを一旦終了する。
【0173】
次に、第1〜第3触媒53〜55の各々の各ブロック毎の流出酸素量及び酸素吸蔵量等の算出についての作動について説明する。CPU71は図19〜図21の一連のフローチャートにより示されたルーチンを所定時間の経過毎に図19のルーチンから順に実行するようになっている。
【0174】
従って、所定のタイミングになると、CPU71は、第1触媒53の各ブロック1毎の流出酸素量,酸素吸蔵量等を算出するため、図19に示されたルーチンのステップ1900から処理を開始してステップ1905に進み、図9のステップ925にて逐次更新されている燃料噴射量積算値mfr1と、最上流空燃比センサ66により検出された空燃比abyfsと、上記数19に基づくステップ1905内に記載した式とに基づいて、第1触媒53のブロック1(1)の流入酸素量Cgin1O2(1)を算出する。
【0175】
次いで、CPU71はステップ1910に進んでカウンタ値nの値、及び第1触媒53全体の酸素吸蔵量OSA1allの値をそれぞれ「0」に設定した後、ステップ1915に進んでカウンタ値nの値を「1」だけ増大する。カウンタ値nは第1触媒53のブロック1の番号を示している。この時点ではカウンタ値nの値は「1」であり、続くステップ1920〜ステップ1975までの今回の処理においてカウンタ値nの値は「1」に維持されるので、今回の同ステップ1920〜ステップ1975までの処理においては最上流のブロック1(1)に関する計算が実行される。
【0176】
まず、CPU71はステップ1920に進んで、流入酸素量Cgin1O2(1)の値が「0」以上であるか否かを判定し、流入酸素量Cgin1O2(1)の値が「0」以上であれば同ステップ1920において「Yes」と判定してステップ1925に進み、ブロック1(1)の最大酸素吸蔵量Cmax1(1)の値と、前回本ルーチンが実行されたときに計算(更新)されたブロック1(1)の酸素吸蔵量OSA1(1)の値と、上記数5に基づくステップ1925内に記載した式とに基づいてブロック1(1)における反応率Hを算出する。
【0177】
また、流入酸素量Cgin1O2(1)の値が「0」以上でなければCPU71は同ステップ1920において「No」と判定してステップ1930に進み、上記最大酸素吸蔵量Cmax1(1)の値と、上記前回本ルーチンが実行されたときに計算されたブロック1(1)の酸素吸蔵量OSA1(1)の値と、上記数7に基づくステップ1930内に記載した式とに基づいてブロック1(1)における反応率Hを算出する。
【0178】
次いで、CPU71はステップ1935に進み、ステップ1925又はステップ1930にて算出した反応率Hの値と、ステップ1905にて算出した第1触媒53のブロック1(1)における流入酸素量Cgin1O2(1)の値と、上記数4又は上記数6に基づくステップ1935内に記載した式とに基づいてブロック1(1)における酸素吸蔵量変化量δOSA1(1)を算出する。
【0179】
次に、CPU71はステップ1940に進んで、その時点の(即ち、前回本ルーチンが実行されたときに計算された)ブロック1(1)の酸素吸蔵量OSA1(1)の値にステップ1935にて今回算出したブロック1(1)の酸素吸蔵量変化量δOSA1(1)の値を加えた値(OSA1(1)+δOSA1(1))がブロック1(1)の最大酸素吸蔵量Cmax1(1)の値以下であるか否かを判定する。
【0180】
ここで、ブロック1(1)の酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が最大酸素吸蔵量Cmax1(1)以下であれば、CPU71はステップ1940にて「Yes」と判定してステップ1945に進み、酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が「0」以上であるか否かを判定する。そして、酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が「0」以上であれば、CPU71はステップ1945にて「Yes」と判定してステップ1960に進む。
【0181】
一方、ステップ1940の判定において、酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が最大酸素吸蔵量Cmax1(1)より大きければ、CPU71は同ステップ1940にて「No」と判定してステップ1950に進み、最大酸素吸蔵量Cmax1(1)から酸素吸蔵量変化量δOSA1(1)を減じた値を酸素吸蔵量変化量δOSA1(1)として設定し直し、ステップ1960に進む。他方、ステップ1945の判定において、酸素吸蔵量OSA1(1)と酸素吸蔵量変化量δOSA1(1)の和(OSA1(1)+δOSA1(1))が「0」より小さければ、CPU71は同ステップ1945にて「No」と判定してステップ1955に進み、酸素吸蔵量OSA1(1)の符号を反転した値(−OSA1(1))を酸素吸蔵量変化量δOSA1(1)に設定し直してステップ1960に進む。以上のステップ1940〜ステップ1955の処理は、次のステップ1960にて求められる今回のブロック1(1)の酸素吸蔵量OSA1(1)が「0」以上であって最大酸素吸蔵量Cmax1(1)以下の値となるような酸素吸蔵量変化量δOSA1(1)を求めるための処理である。
【0182】
ステップ1960に進んだCPU71は、その時点(即ち、前回本ルーチンを実行したときに求められた)ブロック1(1)の酸素吸蔵量OSA1(1)に上記のようにして求められた酸素吸蔵量変化量δOSA1(1)を加えた値を今回のブロック1(1)の酸素吸蔵量OSA1(1)として設定し、続くステップ1965にてブロック1(1)における流入酸素量Cgin1O2(1)の値と、今回の酸素吸蔵量変化量δOSA1(1)の値と、上記数3に基づく同ステップ1965内に記載した式とに基づいてブロック1(1)における流出酸素量Cgout1O2(1)を算出する。
【0183】
次いで、CPU71はステップ1970に進んで、現時点における第1触媒53全体の酸素吸蔵量OSA1allの値(現時点では「0」)に、上記算出されたブロック1(1)の酸素吸蔵量OSA1(1)の値を加えた値を新たな第1触媒53全体の酸素吸蔵量OSA1allとして格納し、ステップ1975に進んで同ブロック1(1)の流出酸素量Cgout1O2(1)の値をブロック1(1)に隣接する下流側のブロック1(2)における流入酸素量Cgin1O2(2)に設定する(上記数9を参照。)。
【0184】
そして、CPU71はステップ1980に進んでカウンタ値nの値が第1触媒53のブロック数N1と等しいか否かを判定する。現時点ではカウンタ値nの値は「1」であるから、CPU71はステップ1980にて「No」と判定し、再びステップ1915に戻ってカウンタ値nの値を「1」だけ増大して「2」に設定した後、続くステップ1920〜ステップ1975までの処理を実行することで次のブロックであるブロック1(2)についての各種値の計算を実行する。
【0185】
このようにして、ステップ1920〜ステップ1975までの処理は、カウンタ値nの値が第1触媒53のブロック数N1と等しくなるまで繰り返し実行される。これにより、第1触媒53の最上流のブロック1(1)から最下流のブロック1(N1)までの各ブロック1(n)の流入酸素量Cgin1O2(n)、流出酸素量Cgout1O2(n)、酸素吸蔵量変化量δOSA1(n)、及び酸素吸蔵量OSA1(n)の値が順次算出されていく。また、ステップ1970の処理が繰り返し実行されることにより、第1触媒53全体の酸素吸蔵量OSA1allも算出される。このようにして、ステップ1965にて第1触媒53の排気浄化の状態を表す値である流出酸素量Cgout1O2(N1)が逐次更新されていく。
【0186】
ステップ1915の処理が繰り返されることによりカウンタ値nの値が第1触媒53のブロック数N1と等しくなると、CPU71はステップ1980にて「Yes」と判定してステップ1985に進み、燃料噴射量積算値mfr1の値を「0」に設定した後、ステップ1995を経由して図20に示されたルーチンのステップ2000に進む。
【0187】
図20のルーチンは、第2触媒54の各ブロック2毎の流出酸素量及び酸素吸蔵量等を算出するためのルーチンであって、ステップ2005にて、境界条件である第2触媒54のブロック2(1)における流入酸素量Cgin2O2(1)として図19のステップ1965にて算出済みの第1触媒53の最下流のブロック1(N1)からの流出酸素量Cgout1O2(N1)を使用する点、及び図19のステップ1985に対応するステップが存在しない点を除き同図19のルーチンと同様であるので、ここではその詳細な説明を省略する。
【0188】
CPU71は、このようにして第2触媒54の各ブロック2(n)の流入酸素量Cgin2O2(n)、流出酸素量Cgout2O2(n)、酸素吸蔵量変化量δOSA2(n)、酸素吸蔵量OSA2(n)、及び第2触媒54全体の酸素吸蔵量OSA2allを算出し、ステップ2495を経由して図25に示されたルーチンのステップ2500に進む。このようにして、ステップ2065にて第2触媒54の排気浄化の状態を表す値である流出酸素量Cgout2O2(N2)が逐次更新されていく。
【0189】
図21のルーチンは、第3触媒55の各ブロック3毎の流出酸素量及び酸素吸蔵量等を算出するためのルーチンであって、ステップ2105にて、境界条件である第3触媒55のブロック3(1)における流入酸素量Cgin3O2(1)として図20のステップ2065にて算出済みの第2触媒54の最下流のブロック2(N2)からの流出酸素量Cgout2O2(N2)を使用する点を除き同図20のルーチンと同様であるので、ここではその詳細な説明を省略する。
【0190】
これにより、CPU71は、第3触媒55の各ブロック3(n)の流入酸素量Cgin3O2(n)、流出酸素量Cgout3O2(n)、酸素吸蔵量変化量δOSA3(n)、酸素吸蔵量OSA3(n)、及び第3触媒55全体の酸素吸蔵量OSA3allを算出し、ステップ2195にて本ルーチンを一旦終了する。このようにして、ステップ2165にて第3触媒55の排気浄化の状態を表す値である流出酸素量Cgout3O2(N3)が逐次更新されていく。
【0191】
次に、第1〜第3触媒53〜55の各々の各ブロック毎の酸素吸蔵量の値、及び第1〜第3触媒53〜55の各々の全体の酸素吸蔵量の値を初期化(クリア)する際の作動について説明する。CPU71は図22にフローチャートにより示されたルーチンを所定時間の経過毎に実行するようになっている。
【0192】
従って、CPU71は所定のタイミングになると、ステップ2200から処理を開始してステップ2205に進み、第1触媒下流空燃比センサ67の出力voxs1の値が0.7(V)より大きいか否かをモニタする。このとき、第1触媒下流空燃比センサ67の出力voxs1の値が0.7(V)より大きければ、即ち、第1触媒53の下流空燃比が明白なリッチ空燃比であれば、同第1触媒53内全体に吸蔵されている酸素量が「0」であることを意味するので、CPU71はステップ2210に進んで第1触媒53の各ブロック1(n)(n=1,2,・・・,N1)の酸素吸蔵量OSA1(n)を総べて「0」に設定するとともに、続くステップ2215にて第1触媒53全体の酸素吸蔵量OSA1allの値を「0」に設定する。
【0193】
全く同様に、CPU71は、第2触媒下流空燃比センサ68の出力voxs2の値が0.7(V)より大きいとき、これをステップ2220で判定してステップ2225及びステップ2230に進み、第2触媒54の各ブロック2(n)(n=1,2,・・・,N2)の酸素吸蔵量OSA2(n)を総べて「0」に設定するとともに、第2触媒54全体の酸素吸蔵量OSA2allの値を「0」に設定する。
【0194】
また、全く同様に、CPU71は、第3触媒下流空燃比センサ69の出力voxs3の値が0.7(V)より大きいとき、これをステップ2235で判定してステップ2240及びステップ2245に進み、第3触媒55の各ブロック3(n)(n=1,2,・・・,N3)の酸素吸蔵量OSA3(n)を総べて「0」に設定するとともに、第3触媒55全体の酸素吸蔵量OSA3allの値を「0」に設定し、ステップ2295にて本ルーチンを一旦終了する。このようにして、第1〜第3触媒53〜55の各々の各ブロック毎の酸素吸蔵量の値、及び第1〜第3触媒53〜55の各々の全体の酸素吸蔵量の値が初期化される。
【0195】
以上、説明したように、第1実施形態に係る排気浄化装置によれば、触媒装置を構成している3つの触媒部としての各触媒(全体)53〜55についてのフィードバックゲインKpcg1, Kpcg2, Kpcg3の値をこの順に大きくなるように設定する。そして、第1実施形態に係る排気浄化装置は、上記数2(vafsfb=Kpcg1・Kwc1・DCgout1O2+Kpcg2・Kwc2・DCgout2O2+Kpcg3・Kwc3・DCgout3O2)に示すように、各触媒53〜55の排気浄化の状態を表す値である同各触媒53〜55からの流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)とそれらの目標値Cgout1ref, Cgout2ref, Cgout3ref(総て「0」)との各々の偏差DCgout1O2, DCgout2O2, DCgout3O2に、フィードバックゲインKpcg1, Kpcg2, Kpcg3に同偏差DCgout1O2, DCgout2O2, DCgout3O2に応じて決定される重み係数Kwc1, Kwc2, Kwc3を乗じた値をそれぞれ乗じることで、各触媒53〜55についてのフィードバック制御量Kpcg1・Kwc1・DCgout1O2, Kpcg2・Kwc2・DCgout2O2, Kpcg3・Kwc3・DCgout3O2をそれぞれ求め、これらの和としてサブフィードバック制御量vafsfbを求め、このサブフィードバック制御量vafsfbが「0」になるように機関に供給される混合気の空燃比(従って、触媒装置に流入する排ガスの空燃比)をフィードバック制御(補正)する。
【0196】
従って、例えば、第1〜第3触媒53〜55についての偏差量DCgout1O2, DCgout2O2, DCgout3O2のうち第1触媒53についての偏差量DCgout1O2(絶対値)のみが大きくなった場合(第1触媒53からのみエミッションが流出する可能性が高くなった場合)、小さい値に設定されたフィードバックゲインKpcg1に基づいてサブフィードバック制御量vabyfs(の絶対値)が小さめに計算されるとともに、第3触媒55についての偏差量DCgout3O2(の絶対値)が大きくなった場合(第3触媒55からエミッションが流出する可能性が高くなった場合)、大きい値に設定されたフィードバックゲインKpcg3に基づいてサブフィードバック制御量vabyfs(の絶対値)が大きめに計算され得る。従って、外部へのエミッションの排出の可能性が小さい場合にはフィードバック制御による空燃比の変動幅を小さくすることでドライバビリティの悪化を抑制することが優先され、外部へのエミッションの排出の可能性が大きい場合には制御の応答性を向上させることで排気浄化を確実に行うことが優先されるから、ドライバビリティの悪化を抑制することと排気浄化を確実に行うこととの両立を図ることができた。
【0197】
また、各触媒53〜55から流出する各々の流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)(酸素の過不足量)がそれぞれ目標値「0」になるように空燃比が制御されるから、各触媒53〜55から流出する(従って、触媒装置から流出する)(排ガス中の酸素の過不足量の増加に応じて増加する可能性が高い)エミッションの排出量を確実に低減することができた。
【0198】
<第2実施形態>
次に、本発明による第2実施形態に係る排気浄化装置について説明する。この排気浄化装置は、各触媒部(第1〜第3触媒53〜55)の排気浄化の状態を表す値として、触媒モデルを用いて求めた前記流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)の代わりに同触媒モデルを用いて求めた各触媒53〜55全体の各々の酸素吸蔵量OSA1all, OSA2all, OSA3allを使用する点において、主として第1実施形態に係る排気浄化装置と異なっている。従って、以下、係る相違点を中心に説明する。
【0199】
本排気浄化装置は、第1実施形態に係る排気浄化装置と同様、先に詳述した触媒モデルを各触媒53〜55にそれぞれ適用することで、各触媒53〜55全体の各々の酸素吸蔵量OSA1all, OSA2all, OSA3allを逐次求め、下記数22及び下記数23に従って、サブフィードバック制御量vafsfbを求める。
【0200】
【数22】
DOSA1all=OSA1all−OSA1allref
DOSA2all=OSA2all−OSA2allref
DOSA3all=OSA3all−OSA3allref
【0201】
【数23】
vafsfb=Kposa1・Kwo1・DOSA1all+Kposa2・Kwo2・DOSA2all+Kposa3・Kwo3・DOSA3all
【0202】
上記数22において、OSA1allref, OSA2allref, OSA3allrefは、第1〜第3触媒53〜55の酸素吸蔵量OSA1all, OSA2all, OSA3allの各々の目標値(目標酸素吸蔵量)であり、本例では、それぞれ、各触媒53〜55の最大酸素吸蔵量の半分の値(Cmax1all/2),(Cmax2all/2),(Cmax3all/2)である。各触媒53〜55の最大酸素吸蔵量Cmax1all, Cmax2all, Cmax3allとしては、図18のステップ1810にて算出されている最新の各値が使用される。また、第1〜第3触媒53〜55についての偏差量DOSA1all, DOSA2all, DOSA3allは、正の値であるとき機関に供給される混合気の空燃比をリッチ側に補正するための値となり、負の値であるとき同空燃比をリーン側に補正するための値となる。
【0203】
また、上記数23において、Kposa1, Kposa2, Kposa3は、それぞれ、第1〜第3触媒53〜55についてのフィードバックゲイン(比例ゲイン)であって、0 < Kposa1 < Kposa2 < Kposa3 なる関係にある。Kwo1, Kwo2, Kwo3は、それぞれ、第1〜第3触媒53〜55についてのフィードバックゲインKposa1, Kposa2, Kposa3を重み付けするための重み係数であり、第1実施形態における重み係数Kwc1, Kwc2, Kwc3を設定するための図4と同様、図23に示すように、対応する触媒についての前記偏差量の絶対値の増加に応じて増加するように設定されるとともに、同対応する触媒についての前記偏差が正の値(機関に供給される混合気の空燃比をリッチ側に補正するための値)となる場合と負の値(同空燃比をリーン側に補正するための値)となる場合とで同偏差の絶対値が等しいとき、同偏差が正の値となる場合の方が、負の値となる場合よりも大きく設定される。
【0204】
(第2実施形態の実際の作動)
次に、第2実施形態に係る排気浄化装置の実際の作動について説明する。この装置のCPU71は、第1実施形態のCPU71が実行する図9〜図22に示したルーチンのうち図11を除いたルーチンをそのまま実行するとともに、図11に示したルーチンに代えて図24にフローチャートにより示したルーチンを実行する。以下、第2実施形態に特有のルーチンである図24のルーチンについてのみ説明する。
【0205】
第2実施形態に係る排気浄化装置のCPU71は、サブフィードバック制御量vafsfbを求めるための図24に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、CPU71はステップ2400から処理を開始し、ステップ2405に進んで図11のステップ1105と同様のサブフィードバック制御条件が成立しているか否かを判定する。
【0206】
いま、サブフィードバック制御条件が成立しているものとして説明を続けると、CPU71はステップ2405にて「Yes」と判定してステップ2410に進み、図19のステップ1970、図20のステップ2070、図21のステップ2170にて計算されている最新の各触媒53〜55全体の酸素吸蔵量OSA1all, OSA2all, OSA3allの値と、上記数22とに基づいて、各触媒53〜55についての前記偏差量DOSA1all, DOSA2all, DOSA3allをそれぞれ求める。
【0207】
次いで、CPU71はステップ2415に進み、前記偏差量DOSA1all, DOSA2all, DOSA3allと、前述した図23に示したテーブルと同一のテーブルであるステップ2415内に示したテーブルとに基づいて重み係数Kwo1, Kwo2, Kwo3を決定する。続いて、CPU71はステップ2420に進み、前記偏差量DOSA1all, DOSA2all, DOSA3allと、前記重み係数Kwo1, Kwo2, Kwo3と、上記数23とに基づいてサブフィードバック制御量vafsfbを求めた後、ステップ2495に進んで本ルーチンを一旦終了する。以上のようにして、サブフィードバック制御量vafsfbが求められる。
【0208】
一方、サブフィードバック制御条件が不成立であるとき、CPU71はステップ2405にて「No」と判定してステップ2425に進み、同ステップ2425にてサブフィードバック制御量vafsfbを「0」に設定する。これにより、サブフィードバック制御量vafsfbに基づくサブフィードバック制御が停止される。
【0209】
以上、説明したように、本発明による第2実施形態に係る排気浄化装置によれば、上記第1実施形態と同様、触媒装置を構成している3つの触媒部としての各触媒(全体)53〜55についてのフィードバックゲインKposa1, Kposa2, Kposa3の値がこの順に大きくなるように設定される。従って、例えば、第1〜第3触媒53〜55についての偏差量DOSA1all, DOSA2all, DOSA3allのうち第1触媒53についての偏差量DOSA1all(の絶対値)のみが大きくなった場合(第1触媒53全体の酸素吸蔵量OSA1allが目標酸素吸蔵量OSA1allrefから大きく偏移して第1触媒53からのみエミッションが流出する可能性が高くなった場合)、小さい値に設定されたフィードバックゲインKposa1に基づいてサブフィードバック制御量vabyfs(の絶対値)が小さめに計算されるとともに、第3触媒55についての偏差量DOSA3all(の絶対値)が大きくなった場合(第3触媒55全体の酸素吸蔵量OSA3allが目標酸素吸蔵量OSA3allrefから大きく偏移して第3触媒55からエミッションが流出する可能性が高くなった場合)、大きい値に設定されたフィードバックゲインKposa3に基づいてサブフィードバック制御量vabyfs(の絶対値)が大きめに計算され得る。従って、前記第1実施形態と同様、ドライバビリティの悪化を抑制することと排気浄化を確実に行うこととの両立を図ることができた。
【0210】
また、各触媒53〜55全体の酸素吸蔵量OSA1all, OSA2all, OSA3allが、それぞれ、目標値OSA1allref(=(Cmax1all/2)), OSA2allref(=(Cmax2all/2)), OSA3allref(=(Cmax3all/2))になるように空燃比が制御されるから、各触媒53〜55全体の酸素吸蔵量が「0」又は最大酸素吸蔵量に到達することが回避し易くなり、同各触媒53〜55から流出する(従って、触媒装置から流出する)エミッションの排出量を確実に低減することができた。
【0211】
本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記各実施形態においては、各触媒部としての各触媒53〜55の排気浄化の状態を表す値として、触媒内における反応を考慮した触媒モデルを用いて計算により求めた流出酸素量Cgout1O2(N1), Cgout2O2(N2), Cgout3O2(N3)、又は触媒全体の酸素吸蔵量OSA1all, OSA2all, OSA3allを採用しているが、同各触媒53〜55の排気浄化の状態を表す値として、各触媒53〜55の下流に配置された第1〜第3触媒下流空燃比センサ67〜69の出力値voxs1, voxs2, voxs3(図3を参照。)を採用してもよい。この場合、サブフィードバック制御量vafsfbを下記数24及び下記数25に従って求めることが好適である。
【0212】
【数24】
Dvoxs1=voxs1ref−voxs1
Dvoxs2=voxs2ref−voxs2
Dvoxs3=voxs3ref−voxs3
【0213】
【数25】
vafsfb=Kpoxs1・Dvoxs1+Kpoxs2・Dvoxs2+Kpoxs3・Dvoxs3
【0214】
上記数24において、voxs1ref, voxs2ref, voxs3refは、第1〜第3触媒下流空燃比センサ67〜69の出力値voxs1, voxs2, voxs3の各々の出力目標値であり、理論空燃比に相当する値であることが好適である。また、第1〜第3触媒53〜55についての偏差量Dvoxs1, Dvoxs2, Dvoxs3は、正の値であるとき機関に供給される混合気の空燃比をリッチ側に補正するための値となり、負の値であるとき同空燃比をリーン側に補正するための値となる。
【0215】
また、上記数25において、Kpoxs1, Kpoxs2, Kpoxs3は、それぞれ、第1〜第3触媒53〜55についてのフィードバックゲイン(比例ゲイン)であって、0 < Kpoxs1 < Kpoxs2 < Kpoxs3 なる関係にある。ここで、上記各実施形態と同様、各フィードバックゲインKpoxs1, Kpoxs2, Kpoxs3に前記偏差量Dvoxs1, Dvoxs2, Dvoxs3に応じてそれぞれ重み付けするように構成してもよい。
【0216】
また、上記各実施形態及び前記変形例においては、各触媒部(第1〜第3触媒53〜55)の排気浄化の状態を表す値とその目標値との偏差を比例処理して(偏差に比例ゲインを乗じて)各触媒部についてのフィードバック制御量を求め、同各触媒部についてのフィードバック制御量の和として触媒装置についてのフィードバック制御量(サブフィードバック制御量vafsfb)を求めているが、前記偏差を所謂比例・積分処理(PI処理)して、又は同偏差を所謂比例・積分・微分処理(PID処理)して各触媒部についてのフィードバック制御量を求め、同各触媒部についてのフィードバック制御量の和として触媒装置についてのフィードバック制御量を求めるように構成してもよい。
【0217】
また、上記各実施形態及び前記変形例においては、各触媒部(第1〜第3触媒53〜55)の排気浄化の状態を表す値とその目標値との各偏差に基づいて各触媒部についてのフィードバック制御量を求め、同各触媒部についてのフィードバック制御量の総てに基づいて(和として)触媒装置についてのフィードバック制御量(サブフィードバック制御量vafsfb)を求めているが、各触媒部の排気浄化の状態を表す値とその目標値との各偏差のうち絶対値が所定値以上になっているものに対応する触媒部についてのフィードバック制御量のみに基づいて触媒装置についてのフィードバック制御量を求めるように構成してもよい。
【0218】
また、上記各実施形態においては、3つの触媒(第1〜第3触媒53〜55)からなる触媒装置の各々の触媒全体を各々の触媒部(3つの触媒部)として扱っているが、単数の触媒(例えば、第1触媒53)からなる触媒装置の同単数の触媒を排ガスの流れ方向に沿って複数(例えば、N1個)のブロックに仮想的に分割したときの各々のブロック(例えば、上記ブロック1(i) (i=1,2,・・・,N1))を各々の触媒部(N1個の触媒部)として扱い、各ブロックの排気浄化の状態を表す値(例えば、Cgout1O2(i) (i=1,2,・・・,N1)、又は、OSA1(i) (i=1,2,・・・,N1))と同排気浄化の状態を表す値の目標値、及び同各ブロックについてのフィードバックゲインに基づいて同各ブロックについてのフィードバック制御量を算出するとともに、同各ブロックについてのフィードバック制御量のうち少なくとも一つに基づいて触媒装置についてのフィードバック制御量を算出するように構成してもよい。
【0219】
この場合、第2触媒54及び第3触媒55を省略してもよい。また、第2触媒54及び第3触媒55を省略しない場合、同第2,第3触媒54,55は予備的な触媒(バッファ的な触媒)として使用され得る。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係る排気浄化装置を内燃機関に適用したシステムの概略図である。
【図2】図1に示した最上流空燃比センサの出力電圧と空燃比との関係を示したマップである。
【図3】図1に示した第1触媒下流空燃比センサ、第2触媒下流空燃比センサ、及び第3触媒下流空燃比センサの出力電圧と空燃比との関係を示したマップである。
【図4】図1に示したCPUが参照する各触媒についての偏差量(流出酸素量とその目標値との偏差)と、同各触媒についてのフィードバックゲインに重み付けするための重み係数との関係を示したマップである。
【図5】本発明の排気浄化装置が採用する触媒モデルを模式的に示した図である。
【図6】本発明の排気浄化装置が採用する触媒モデルの特定領域に注目したときの同特定領域における酸素吸蔵・放出反応に関係する特定成分の収支を示した図である。
【図7】本発明の排気浄化装置が採用する触媒モデルが対象とする触媒全体の最大酸素吸蔵量から同触媒の各ブロック毎の最大酸素吸蔵量の分布を求めるためのマップである。
【図8】本発明の排気浄化装置が採用する触媒モデルを第1,第2,第3触媒にそれぞれ適用した場合の模式図である。
【図9】図1に示したCPUが実行する燃料噴射量計算のためのルーチンを示したフローチャートである。
【図10】図1に示したCPUが実行するメインフィードバック制御量を計算するためのルーチンを示したフローチャートである。
【図11】図1に示したCPUが実行するサブフィードバック制御量を求めるためのルーチンを示したフローチャートである。
【図12】図1に示したCPUが実行する最大酸素吸蔵量取得制御を開始するか否かを決定するためのルーチンを示したフローチャートである。
【図13】図1に示したCPUが実行する第1モードのルーチンを示したフローチャートである。
【図14】図1に示したCPUが実行する第2モードのルーチンを示したフローチャートである。
【図15】図1に示したCPUが実行する第3モードのルーチンを示したフローチャートである。
【図16】図1に示したCPUが実行する第4モードのルーチンを示したフローチャートである。
【図17】図1に示したCPUが実行する酸素吸蔵量を算出するためのルーチンを示したフローチャートである。
【図18】図1に示したCPUが実行する各触媒の最大酸素吸蔵量及び各ブロックの最大酸素吸蔵量を求めるためのルーチンを示したフローチャートである。
【図19】図1に示したCPUが実行する第1触媒の各ブロック毎の流出酸素量、及び酸素吸蔵量等を算出するためのルーチンを示したフローチャートである。
【図20】図1に示したCPUが実行する第2触媒の各ブロック毎の流出酸素量、及び酸素吸蔵量等を算出するためのルーチンを示したフローチャートである。
【図21】図1に示したCPUが実行する第3触媒の各ブロック毎の流出酸素量、及び酸素吸蔵量等を算出するためのルーチンを示したフローチャートである。
【図22】図1に示したCPUが実行する第1,第2,第3触媒の各々の酸素吸蔵量及びこれらの触媒の各ブロック毎の酸素吸蔵量をクリアするためのルーチンを示したフローチャートである。
【図23】本発明の第2実施形態に係る排気浄化装置のCPUが参照する各触媒についての偏差量(酸素吸蔵量とその目標値との偏差)と、同各触媒についてのフィードバックゲインに重み付けするための重み係数との関係を示したマップである。
【図24】本発明の第2実施形態に係る排気浄化装置のCPUが実行するサブフィードバック制御量を求めるためのルーチンを示したフローチャートである。
【符号の説明】
10…内燃機関、25…燃焼室、39…インジェクタ、52…エキゾーストパイプ(排気管)、53…第1触媒、54…第2触媒、55…第3触媒、66…最上流空燃比センサ、67…第1触媒下流空燃比センサ、68…第2触媒下流空燃比センサ、69…第3触媒下流空燃比センサ、70…電気制御装置、71…CPU
Claims (7)
- 内燃機関の排気通路に介装された単数の触媒又は同排気通路に直列に介装された複数の触媒からなる触媒装置と、
前記触媒装置を同触媒装置に流入するガスの流れ方向に沿って複数の触媒部に分割して捉えたときの各触媒部の排気浄化の状態を表す値を取得する排気浄化状態取得手段と、
前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値とに基づく値、及び同各触媒部についてのフィードバックゲインに基づいて同各触媒部についてのフィードバック制御量を算出するとともに、同各触媒部についてのフィードバック制御量のうち少なくとも一つに基づいて前記触媒装置についてのフィードバック制御量を算出するフィードバック制御量算出手段と、
前記触媒装置についてのフィードバック制御量に基づいて同触媒装置に流入するガスの空燃比をフィードバック制御する空燃比制御手段と、を備えた内燃機関の排気浄化装置において、
前記フィードバック制御量算出手段が使用する前記各触媒部についてのフィードバックゲインは、対応する触媒部が前記排気通路のより下流側のものほど、前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値とに基づく値が同一であるときの同対応する触媒部についてのフィードバック制御量が大きくなるように設定された内燃機関の排気浄化装置。 - 請求項1に記載の内燃機関の排気浄化装置において、
前記フィードバック制御量算出手段は、
前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値との偏差に同各触媒部についてのフィードバックゲインを乗じた値に基づいて同各触媒部についてのフィードバック制御量を算出するように構成されるとともに、同フィードバック制御量算出手段が使用する同各触媒部についてのフィードバックゲインは、対応する触媒部が前記排気通路のより下流側のものほど大きくなるように設定された内燃機関の排気浄化装置。 - 請求項1又は請求項2に記載の内燃機関の排気浄化装置において、
前記フィードバック制御量算出手段は、
前記各触媒部についてのフィードバック制御量の総てに基づいて前記触媒装置についてのフィードバック制御量を算出するように構成された内燃機関の排気浄化装置。 - 請求項1乃至請求項3のいずれか一項に記載の内燃機関の排気浄化装置において、
前記フィードバック制御量算出手段は、
前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値とに基づく値に応じて前記各触媒部についてのフィードバックゲインに重み付けした値をそれぞれ求めるとともに、同各触媒部についてのフィードバックゲインの代わりに同重み付けされた各値に基づいて同各触媒部についてのフィードバック制御量を算出するように構成された内燃機関の排気浄化装置。 - 請求項4に記載の内燃機関の排気浄化装置において、
前記フィードバック制御量算出手段は、
前記各触媒部の排気浄化の状態を表す値と同排気浄化の状態を表す値の目標値とに基づく値が前記触媒装置に流入するガスの空燃比をリッチ側に補正するための値となる場合と同触媒装置に流入するガスの空燃比をリーン側に補正するための値となる場合とで、同各触媒部についてのフィードバックゲインに重み付けする程度が異なるように構成された内燃機関の排気浄化装置。 - 請求項1乃至請求項5のいずれか一項に記載の内燃機関の排気浄化装置において、
前記排気浄化状態取得手段は、前記各触媒部から流出するガス中の特定成分の量に関する値を前記各触媒部の排気浄化の状態を表す値として、同各触媒部内における反応を考慮した計算により取得するように構成された内燃機関の排気浄化装置。 - 請求項1乃至請求項5のいずれか一項に記載の内燃機関の排気浄化装置において、
前記排気浄化状態取得手段は、前記各触媒部の酸素吸蔵量に関する値を前記各触媒部の排気浄化の状態を表す値として、同各触媒部内における反応を考慮した計算により取得するように構成された内燃機関の排気浄化装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003052811A JP2004263591A (ja) | 2003-02-28 | 2003-02-28 | 内燃機関の排気浄化装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003052811A JP2004263591A (ja) | 2003-02-28 | 2003-02-28 | 内燃機関の排気浄化装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004263591A true JP2004263591A (ja) | 2004-09-24 |
Family
ID=33117588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003052811A Pending JP2004263591A (ja) | 2003-02-28 | 2003-02-28 | 内燃機関の排気浄化装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004263591A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007032534A1 (ja) * | 2005-09-15 | 2007-03-22 | Toyota Jidosha Kabushiki Kaisha | 内燃機関の空燃比制御装置 |
JP2012241528A (ja) * | 2011-05-16 | 2012-12-10 | Mitsubishi Motors Corp | 内燃機関の排気制御装置 |
CN114961950A (zh) * | 2022-05-10 | 2022-08-30 | 潍柴动力股份有限公司 | Doc硫中毒的主动监控方法、装置及系统 |
-
2003
- 2003-02-28 JP JP2003052811A patent/JP2004263591A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007032534A1 (ja) * | 2005-09-15 | 2007-03-22 | Toyota Jidosha Kabushiki Kaisha | 内燃機関の空燃比制御装置 |
US7474956B2 (en) | 2005-09-15 | 2009-01-06 | Toyota Jidosha Kabushiki Kaisha | Air-fuel ratio control system of internal combustion engine |
KR100899313B1 (ko) * | 2005-09-15 | 2009-05-26 | 도요타 지도샤(주) | 내연 기관의 공연비 제어 장치 |
JP2012241528A (ja) * | 2011-05-16 | 2012-12-10 | Mitsubishi Motors Corp | 内燃機関の排気制御装置 |
CN114961950A (zh) * | 2022-05-10 | 2022-08-30 | 潍柴动力股份有限公司 | Doc硫中毒的主动监控方法、装置及系统 |
CN114961950B (zh) * | 2022-05-10 | 2023-12-15 | 潍柴动力股份有限公司 | Doc硫中毒的主动监控方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7165389B2 (en) | Catalyst degradation determining method | |
JP3972748B2 (ja) | 内燃機関の排気浄化装置 | |
JP4380745B2 (ja) | 内燃機関の触媒の劣化度合い取得装置 | |
JP2010169038A (ja) | 多気筒内燃機関の気筒間空燃比ばらつき判定装置 | |
JP3922091B2 (ja) | 内燃機関の空燃比制御装置 | |
JP2007239700A (ja) | 内燃機関の燃料噴射制御装置 | |
US7874143B2 (en) | Air-fuel ratio control apparatus of internal combustion engine and control method thereof | |
US8949000B2 (en) | Control device and control method for internal combustion engine | |
JP2005351153A (ja) | 触媒劣化判定装置 | |
US20120271534A1 (en) | Control device for internal combustion engine | |
JP2004263591A (ja) | 内燃機関の排気浄化装置 | |
JP2004076681A (ja) | 触媒劣化判定装置 | |
JP4103522B2 (ja) | 内燃機関の排気浄化装置 | |
JP4239521B2 (ja) | 内燃機関の排気浄化装置 | |
JP4349205B2 (ja) | 空燃比制御装置 | |
JP2004300981A (ja) | 触媒劣化判定装置 | |
JP4069367B2 (ja) | 内燃機関の排気浄化装置 | |
JP2004251123A (ja) | 内燃機関の排気浄化装置 | |
JP4048959B2 (ja) | 内燃機関の排気浄化装置 | |
JP3879596B2 (ja) | 空燃比センサ状態判定装置 | |
JP2004092472A (ja) | 内燃機関の排気浄化装置 | |
JP2007278186A (ja) | 内燃機関の空燃比制御装置 | |
JP2004270581A (ja) | 内燃機関の排気浄化装置 | |
JP2009197683A (ja) | 内燃機関の空燃比制御装置 | |
JP2008215106A (ja) | 内燃機関の空燃比制御装置 |