以下、空燃比制御装置の一実施形態を、図1~図9を参照して詳細に説明する。
図1に示すように、本実施形態の空燃比制御装置が適用されるエンジン10には、燃焼室11と、燃焼室11に流入する空気(吸気)の通路である吸気通路12と、燃焼室11から排出された排気の通路である排気通路13と、が設けられている。吸気通路12には、吸入空気量GAを検出するエアフローメータ14と、吸入空気量GAを調整するためのバルブであるスロットルバルブ15と、が設けられている。また、吸気通路12におけるスロットルバルブ15よりも下流側の部分には、吸気中に燃料を噴射する燃料噴射弁16が設けられている。そして、燃焼室11には、吸気通路12を通じて流入した吸気と燃料噴射弁16が噴射した燃料との混合気を点火する点火プラグ17が設けられている。
一方、排気通路13には、前段側、及び後段側の2つの三元触媒装置18、19が設けられている。これら三元触媒装置18、19には、排気中のHC及びCOの酸化と同時にNOxを還元する三元触媒に加え、酸素吸蔵剤がそれぞれ担持されており、酸素吸蔵能力が付与されている。このエンジン10では、前段側の三元触媒装置18が主たる排気浄化装置となっている。そして、排気通路13における前段側の三元触媒装置18よりも下流側の部分に設置された後段側の三元触媒装置19は、前段側の三元触媒装置18が浄化しきれなかった分を浄化する副次的な排気浄化装置となっている。そのため、後段側の三元触媒装置19には、前段側の三元触媒装置18よりも排気浄化能力及び酸素吸蔵能力が低い小型の三元触媒装置が採用されている。
また、排気通路13における前段側の三元触媒装置18よりも上流側の部分には、同三元触媒装置18に流入する排気の空燃比を検出する触媒上流空燃比センサ20が設けられている。さらに、排気通路13における前段側の三元触媒装置18よりも下流側、且つ後段側の三元触媒装置19よりも上流側の部分には、前段側の三元触媒装置18から流出する排気の空燃比を検出する触媒下流空燃比センサ21が設けられている。触媒上流空燃比センサ20及び触媒下流空燃比センサ21は、排気の成分に基づき空燃比の検出を行っている。触媒上流空燃比センサ20及び触媒下流空燃比センサ21は、空燃比に応じて出力値が連続的に変化する出力特性を有している。触媒上流空燃比センサ20が検出する空燃比は、燃焼室11で燃焼された混合気の空燃比に直接対応している。これに対して、触媒下流空燃比センサ21の空燃比の検出値は、前段側の三元触媒装置19で改質された排気の成分に基づいているため、燃焼室11で燃焼された混合気の空燃比に直接対応しない値となる。
こうしたエンジン10は、空燃比制御装置としての電子制御ユニット22により制御されている。電子制御ユニット22には、上述のエアフローメータ14、触媒上流空燃比センサ20、及び触媒下流空燃比センサ21の検出結果が入力されている。そして、電子制御ユニット22は、それらの検出結果に基づき、燃料噴射弁16の燃料噴射量を制御することで、空燃比制御を行っている。空燃比制御は、基本的には、次の態様で行われる。すなわち、電子制御ユニット22は、エンジン10の運転状況に応じて空燃比の目標値である目標空燃比を設定する。続いて、エアフローメータ14による吸入空気量GAの検出結果等に基づき、燃焼室11に流入する空気の質量(筒内空気流量)を演算するとともに、その筒内空気量を目標空燃比の値で除算した商をベース噴射量として演算する。さらに、電子制御ユニット22は、触媒上流空燃比センサ20による空燃比の検出値と目標空燃比との偏差に基づき、その偏差が0に近づくようにベース噴射量をフィードバック補正した値を最終噴射量として演算し、その最終噴射量分の燃料を噴射すべく燃料噴射弁16を制御する。
ところで、三元触媒装置18、19での排気浄化を効率良く行うには、燃料が完全燃焼し、且つ酸素が余剰しない理論空燃比λSTで燃焼室11内での混合気の燃焼を行う必要がある。すなわち、排気浄化のためには、目標空燃比の値として理論空燃比λSTを設定して空燃比制御を行うことが望ましい。ただし、そうした場合にも、吸入空気量GA等のエンジン10の運転状況が変化する過渡時には、空燃比が乱れて一時的に理論空燃比λSTからずれることがある。また、出力が求められるエンジン10の高空気量運転時等には、理論空燃比λSTからずれた空燃比での燃焼が求められることがある。
これに対して、上述のように三元触媒装置18、19には、酸素吸蔵剤が担持されている。酸素吸蔵剤は、余剰酸素を含んだ排気が周囲に存在するときには、周囲の酸素を取り込んで吸蔵し、酸素を吸蔵した状態の酸素吸蔵剤は、未燃燃料成分を含んだ排気が周囲に存在するときには、吸蔵中の酸素を周囲に放出する。そのため、理論空燃比λSTよりもリーンな空燃比(リーン空燃比)で燃焼が行われているときには、三元触媒装置18、19は、排気中の余剰酸素を吸蔵する。また、理論空燃比λSTよりもリッチな空燃比(リッチ空燃比)で燃焼が行われているときには、三元触媒装置18、19は酸素を放出して、排気中の未燃燃料成分を酸化する。このように、酸素吸蔵機能付きの三元触媒装置18、19は、流入した排気の成分を、効率良く排気浄化を行えるように改質する。そのため理論空燃比λSTから多少ずれた空燃比で燃焼が行われていても、排気浄化を効率良く行うことができる。
なお、三元触媒装置18、19が吸蔵可能な酸素の量には上限があり、その上限まで酸素を吸蔵した状態にあるときに余剰酸素を含んだ排気が流入した場合には、NOxの還元浄化を効率的に行うことができなくなる。また、三元触媒装置18、19に全く酸素が吸蔵されていない状態にあるときに未燃燃料成分を含んだ排気が流入した場合には、CO、HCの酸化浄化を効率的行うことができなくなる。そのため、少なくとも主たる排気浄化装置である三元触媒装置18については、吸蔵可能な酸素量の上限値である最大吸蔵量に対して、更なる吸蔵の余地を残した程度な量の酸素を吸蔵した状態を保持するように空燃比制御を行う必要がある。ただし、三元触媒装置18の最大吸蔵量には個体差がある。また、三元触媒装置18の最大吸蔵量は、経時劣化により減少することがある。そのため、電子制御ユニット22は、三元触媒装置18の現状の最大吸蔵量を学習するための触媒OSC学習制御を行っている。
また、上述した基本的な態様の空燃比制御(以下、メインフィードバック制御と記載する)だけでは、触媒上流空燃比センサ20の検出誤差や燃料噴射弁16の噴射特性の個体差などに起因して、目標空燃比に対する空燃比の定常偏差が生じることがある。そこで、電子制御ユニット22は、そうした定常偏差を補償するため、触媒下流空燃比センサ21の検出結果に基づく空燃比サブ学習制御を行っている。
電子制御ユニット22は、触媒OSC学習制御、及び空燃比サブ学習制御の実施に際して、リーン空燃比での燃焼とリッチ空燃比での燃焼とを交互に繰り返す空燃比アクティブ制御を実行する。空燃比アクティブ制御は、目標空燃比をリーン空燃比とリッチ空燃比とに交互に切り替えることで行われる。
図2に、空燃比アクティブ制御での目標空燃比の切り替えのために電子制御ユニット22が実施する目標空燃比切替ルーチンのフローチャートを示す。電子制御ユニット22は、空燃比アクティブ制御の実行中、既定の制御周期毎に本ルーチンの処理を繰り返し実行する。
本ルーチンの処理が開始されると、まずステップS100において、触媒下流空燃比センサ21の空燃比検出値(以下、触媒下流空燃比λ2と記載する)が、既定のリッチ判定値以下であるか否かが判定される。図3に示すように、リッチ判定値DRには、理論空燃比λSTよりもリッチな空燃比が設定されており、その値は吸入空気量GAに拘らず一定とされている。触媒下流空燃比λ2がリッチ判定値DR以下の値となるのは、前段側の三元触媒装置18から未燃燃料成分を含んだ排気が流出しているときとなる。ここで、触媒下流空燃比λ2がリッチ判定値DR以下の場合(S100:YES)、すなわち触媒下流空燃比λ2が理論空燃比λSTよりもリッチな空燃比に相当する値となっている場合には、ステップS110において、目標空燃比の値として既定のリーン目標空燃比λLを設定した上で、今回の本ルーチンの処理を終了する。リーン目標空燃比λLには、理論空燃比λSTよりもリーンな空燃比が値として設定されている。
一方、触媒下流空燃比がリッチ判定値よりも大きい場合には(S100:NO)、ステップS120に処理が進められ、そのステップS120において、高空気量フラグがセットされた状態であり、且つエンジン10が過渡の運転状態にあるか否かが判定される。そして、同ステップS120において肯定判定された場合(YES)にはステップS130に、否定判定された場合(NO)にはステップS140に、それぞれ処理が進められる。なお、高空気量フラグは、エンジン10が高空気量運転されているか否かを示すフラグであり、その状態の切り替えは後述する高空気量判定ルーチンにおいて行われる。また、ここでは、単位時間当たりの吸入空気量GAの変化量が既定値よりも大きい場合を過渡の運転状態である場合としている。
エンジン10が高空気量、且つ過渡の運転状態となっていて、ステップS130に処理が進められると、そのステップS130において、目標空燃比の値として既定のリッチ目標空燃比λRを設定した上で、今回の本ルーチンの処理を終了する。リッチ目標空燃比λRには、理論空燃比λSTよりもリッチな空燃比が値として設定されている。
一方、ステップS140に処理が進められると、そのステップS140において、吸入空気量GAに基づきリーン判定値DLの値が設定される。図3に示すように、リーン判定値DLは、理論空燃比λSTよりもリーン側の範囲において吸入空気量GAに応じて変化する値となっている。具体的には、吸入空気量GAが既定の高空気量判定値α以下の場合のリーン判定値DLは、既定の基準リーン判定値DL0となっている。基準リーン判定値DL0の値は、理論空燃比λSTから同基準リーン判定値DL0を引いた差ΔLが、上述のリッチ判定値DRから理論空燃比λSTを引いた差ΔRと等しくなる値となっている。また、吸入空気量GAが高空気量判定値αを超える場合のリーン判定値DLは、吸入空気量GAを高空気量判定値αから増加していったときに上記差ΔLが次第に減少するように、吸入空気量GAに応じて変化する値となっている。このように、本実施形態では、エンジン10の吸入空気量GAが多いときには、同吸入空気量GAが少ないときよりも理論空燃比λSTに近い値となるようにリーン判定値DLの値を吸入空気量GAに応じて変更するようにしている。
続いて、ステップS150において、触媒下流空燃比λ2がリーン判定値DL以上であるか否かが判定される。上記のようにリーン判定値DLには常に、理論空燃比λSTよりもリーンな空燃比が値として設定される。よって、触媒下流空燃比λ2がリーン判定値DL以上の値となるのは、前段側の三元触媒装置18から余剰酸素を含んだ排気が流出しているときとなる。ここで、触媒下流空燃比λ2がリーン判定値DL以上の場合(S150:YES)には上述のステップS130に処理が進められ、そのステップS130において、上述のリッチ目標空燃比λRが目標空燃比の値として設定された後、今回の本ルーチンの処理が終了される。
これに対して、触媒下流空燃比λ2がリーン判定値DL未満の値である場合(S150:NO)には、ステップS160において、前回の本ルーチンの実行時に設定された値(前回値)がそのまま目標空燃比の値として設定された後、今回の本ルーチンの処理が終了される。なお、このときの触媒下流空燃比λ2は、リッチ判定値DRを超え、且つリーン判定値DL未満の値、すなわち理論空燃比λST近傍の値となっている。
なお、空燃比アクティブ制御の開始時には、リーン目標空燃比λL、リッチ目標空燃比λRのうちのいずれかが目標空燃比の値として設定される。ここでは、空燃比アクティブ制御開始時には、リーン目標空燃比λLを目標空燃比の値として設定するものとして説明する。
図4に、上述した高空気量判定ルーチンのフローチャートを示す。電子制御ユニット22は、本ルーチンの処理を既定の制御周期毎に繰り返し実行する。
本ルーチンの処理が開始されると、まずステップS200において、高空気量フラグがクリアされているか否かが判定される。高空気量フラグがクリアされている場合(YES)にはステップS210に処理が進められ、そうでない場合(NO)、すなわち高空気量フラグがセットされている場合にはステップS230に処理が進められる。
高空気量フラグがクリアされていてステップS210に処理が進められると、そのステップS210において、吸入空気量GAが上述の高空気量判定値α以上であるか否かが判定される。そして、吸入空気量GAが高空気量判定値α以上の場合(YES)にはステップS220において、高空気量フラグをセットした上で今回の本ルーチンの処理が終了される。これに対して、吸入空気量GAが高空気量判定値α未満の場合(NO)にはそのまま今回の本ルーチンの処理が終了される。このときの高空気量フラグはクリアされた状態に保持される。
高空気量フラグがセットされていてステップS230に処理が進められ、そのステップS230において、吸入空気量GAが、上記高空気量判定値αから定数Aを引いた差(α-A)以下の値であるか否かが判定される。同ステップS230で肯定判定された場合(YES)にはステップS240において高空気量フラグがクリアされた後、今回の本ルーチンの処理が終了される。これに対してステップS230で否定判定された場合(NO)にはそのまま今回の本ルーチンの処理が終了される。このときの高空気量フラグはセットされた状態に保持される。
図5に、エンジン10の低負荷、中負荷域におけるアクティブ制御の実施態様を示す。
時刻t1に空燃比アクティブ制御が開始されると、目標空燃比がリーン目標空燃比λLに設定され、リーン空燃比での燃焼(以下、リーン燃焼と記載する)が開始される。リーン燃焼が行われると、余剰酸素を含んだ排気が、燃焼室11から排出されて前段側の三元触媒装置18に流入するようになる。このときの前段側の三元触媒装置18に酸素吸蔵の余地が残されていれば、同三元触媒装置18は流入した排気中の余剰酸素を吸蔵するため、触媒下流空燃比λ2は理論空燃比λST近傍の値となる。
リーン燃焼が継続されると、三元触媒装置18の酸素吸蔵量は次第に増加する。酸素吸蔵量が最大吸蔵量MAXに近づくと、三元触媒装置18に流入した余剰酸素のうちの一部が吸蔵されずに同三元触媒装置18から排出されるようになる。ただし、酸素吸蔵量が最大吸蔵量MAXに達するまでは、三元触媒装置18からの余剰酸素の排出量はあまり多くないため、触媒下流空燃比λ2は理論空燃比の近傍の値に留まっている。
その後の時刻t2に酸素吸蔵量が最大吸蔵量MAXに達すると、燃焼室11から排出された余剰酸素が三元触媒装置18で吸蔵されずにそのまま同三元触媒装置18の下流側に排出されるため、触媒下流空燃比λ2が理論空燃比近傍の値からリーン側に大きく変化する。その結果、その後の時刻t3に、触媒下流空燃比λ2がリーン判定値DL以上の値となると、リーン目標空燃比λLからリッチ目標空燃比λRへと目標空燃比が変更されて、リッチ空燃比での燃焼(以下、リッチ燃焼と記載する)が開始される。
リッチ燃焼が行われると、未燃燃料成分を含んだ排気が燃焼室11から排出されて前段側の三元触媒装置18に流入するようになる。時刻t3におけるリッチ燃焼の開始時の三元触媒装置18には最大吸蔵量MAXまで酸素が吸蔵されている。このときの三元触媒装置18は、吸蔵した酸素を放出して未燃燃料成分を酸化するため、触媒下流空燃比λ2は理論空燃比λSTの近傍の値となる。
リッチ燃焼が継続されると、酸素の放出により三元触媒装置18の酸素吸蔵量は次第に減少する。そして、その後の時刻t4に酸素吸蔵量がゼロまで減少すると、三元触媒装置18は酸素を放出できなくなり、同三元触媒装置18の下流側に未燃燃料成分を含んだ排気が排出されるようになる。これにより、その後の時刻t5に触媒下流空燃比λ2がリッチ判定値DR以下の値となると、リッチ目標空燃比λRからリーン目標空燃比λLへと目標空燃比が変更されて、リーン燃焼が再び開始される。
以上のように空燃比アクティブ制御が開始されると、まずリーン燃焼により、三元触媒装置18の酸素吸蔵量を最大吸蔵量MAXとする。そしてその後は、最大吸蔵量MAXからゼロへの酸素吸蔵量の減少と、ゼロから最大吸蔵量MAXへの酸素吸蔵量の増加と、が繰り返されるように、リッチ燃焼とリーン燃焼とが交互に行われる。
図6に、本実施形態におけるリーン燃焼からリッチ燃焼への切り替え前後の空燃比アクティブ制御の実施態様を示す。なお、同図には、エンジン10の高空気量運転時における目標空燃比、触媒下流空燃比λ2、及び前段側の三元触媒装置18からのNOx排出量の推移がそれぞれ実線により示されている。また、同図には、エンジン10の中低空気量運転時における目標空燃比、触媒下流空燃比λ2、及び前段側の三元触媒装置18からのNOx排出量の推移がそれぞれ二点鎖線により示されている。
リーン燃焼中の三元触媒装置18は、酸素吸蔵量が最大吸蔵量MAXに達するまでは、流入する排気中の余剰酸素を吸蔵するため、触媒下流空燃比λ2は理論空燃比λST近傍に保たれる。同図では、リーン燃焼中の時刻t10に、三元触媒装置18の酸素吸蔵量が最大吸蔵量MAXに達している。そのため、時刻t10からは三元触媒装置18からの余剰酸素の流出が始まり、触媒下流空燃比λ2が、時刻t10以前よりも急にリーン側に変化するようになる。
エンジン10の中低空気量運転時には、基準リーン判定値DL0がリーン判定値DLの値として設定される。そのため、このときには、触媒下流空燃比λ2が基準リーン判定値DL0に達した時刻t12に、リーン目標空燃比λLからリッチ目標空燃比λRへと目標空燃比が切り替えられてリッチ燃焼が開始される。
なお、酸素吸蔵量が最大吸蔵量MAXに達して三元触媒装置18のNOxの浄化効率が低下した状態でリーン燃焼が続けられると、同三元触媒装置18からNOxが排出される。燃焼室11でのリッチ燃焼が開始されても、そのリッチ燃焼で生じた排気が三元触媒装置18に届くまでにはある程度の時間が掛かる。そのため、三元触媒装置18のNOxの排出が止まるのは、リッチ燃焼の開始よりも遅い時期となる。このように、リーン燃焼からリッチ燃焼への切り替えに際しては、一時的に三元触媒装置18からNOxが排出される状態となる。
中低空気量運転時には、燃焼室11での燃焼により生成されるNOxの量があまり多くないため、リーン燃焼からリッチ燃焼への切り替えに際しての三元触媒装置18のNOx排出量が、後段側の三元触媒装置19の浄化能力を超えるほど増大する状況とはなりにくい。これに対して、高空気量運転時には、燃焼によるNOxの生成量が多く、リーン燃焼からリッチ燃焼への切り替えに際しての三元触媒装置18のNOx排出量も多くなる。同図には、高空気量運転時に、中低空量運転時と同じ時刻t12にリーン目標空燃比λLからリッチ目標空燃比λRに目標空燃比を切り替えた場合の三元触媒装置18のNOx排出量の推移が破線で示されている。こうした場合には、後段側の三元触媒装置19の浄化能力を超える多量のNOxが三元触媒装置18から排出されてしまい、後段側の三元触媒装置19で浄化し切れずに外気に放出されるNOxの量が許容可能な量を超える虞がある。
その点、本実施形態では、高空気量運転時には、基準リーン判定値DL0よりも理論空燃比λSTに近い空燃比をリーン判定値DLの値として設定している。そのため、高空気量運転時には、中低空気量運転時よりも早い時刻t11に、リーン目標空燃比λLからリッチ目標空燃比λRへと目標空燃比が切り替えられる。これにより、三元触媒装置18のNOxの排出期間が短縮して、排出するNOxの総量が抑えられるため、外気へのNOxの放出を抑制できる。なお、同図には、こうした高空気量運転時のリーン判定値DLの値が「DLH」と記載されている。
一方、吸入空気量GAやエンジン回転数が大きく変化するエンジン10の過渡運転時には、燃焼室11で燃焼する混合気の空燃比に乱れが生じやすくなる。こうした状態でリーン燃焼を行うと、一時的にリーン目標空燃比λLよりもリーンな空燃比で燃焼が行われてしまうことがある。高空気量運転時に、こうしたオーバーリーン燃焼が行われると、一時に大量の余剰酸素が三元触媒装置18に流入する。こうした場合の三元触媒装置18は、流入した余剰酸素の全てを吸蔵できず、流入時よりは少ないとはいえ、多量の余剰酸素を排出する。さらに後段側の三元触媒装置19においても、前段側の三元触媒装置18が排出した余剰酸素を吸蔵し切れない状態となると、三元触媒装置18、19のNOxの浄化効率が双方同時に低下して、許容可能な量を超える多量のNOxが外気に放出される虞がある。
図7に、本実施形態の空燃比制御装置におけるエンジン10が高空気量、且つ過渡の運転状態にあるときの空燃比アクティブ制御の実施態様を示す。上述のように、空燃比アクティブ制御でのリーン目標空燃比λLからリッチ目標空燃比λRへの目標空燃比の切り替えは、エンジン10が過渡の運転状態にない場合や、過渡の運転状態にあっても吸入空気量GAが高空気量判定値α未満の場合には、リッチ燃焼中に触媒下流空燃比λ2がリーン判定値DL以上の値となったときに行われる。
これに対して、エンジン10が高空気量、且つ過渡の運転状態にあるときには、同図に示すようにリーン目標空燃比λLからリッチ目標空燃比λRへの目標空燃比の切り替えは、リッチ燃焼中に触媒下流空燃比λ2がリッチ判定値DRを超える値となったとき(図中の時刻t21、t23)に行われる。すなわち、高空気量、且つ過渡の運転状態にあるときには、触媒下流空燃比λ2がリッチ判定値DR近傍の値に留まるように目標空燃比の切り替えが行われる。そのため、オーバーリーン燃焼が行われても、吸蔵能力を超える多大な余剰酸素が三元触媒装置18に一時に流入する状況にはなり難くなる。なお、エンジン10が高空気量、且つ過渡の運転状態にあるときにも、リッチ目標空燃比λRからリーン目標空燃比λLへの目標空燃比の切り替えは、触媒下流空燃比λ2がリッチ判定値DR以下の値となったとき(図中の時刻t20、t22、t24)に行われる。
続いて、触媒OSC学習制御の詳細を説明する。触媒OSC学習制御は、前段側の三元触媒装置18の酸素吸蔵量の最大値である最大吸蔵量MAXを下記の態様で求めて、その値を学習値として記憶するために行われる。
電子制御ユニット22は、空燃比アクティブ制御でのリッチ燃焼の実行中に、理論空燃比λSTから触媒上流空燃比センサ20の空燃比検出値(以下、触媒上流空燃比λ1と記載する)を引いた差を求めるとともに、その差に排気流量を乗算した積をリッチ投入量の値として演算している。リッチ投入量は前段側の三元触媒装置18の未燃燃料成分の流入量に対応した値となる。リッチ燃焼中の触媒下流空燃比λ2が理論空燃比λST近傍の値となっていれば、流入した未燃燃料成分の殆どを酸化可能な量の酸素が三元触媒装置18から放出されていることになる。よって、このときのリッチ投入量は、三元触媒装置18の単位時間当たりの酸素放出量に対応した値となる。
一方、空燃比アクティブ制御でのリッチ燃焼は、前段側の三元触媒装置18の酸素吸蔵量がゼロの状態のときに開始され、同酸素吸蔵量が最大吸蔵量MAXとなったときに終了される。よって、空燃比アクティブ制御の開始後の2回目以降のリッチ燃焼の開始から同リッチ燃焼の終了までの期間におけるリッチ投入量の積算値(以下、総リッチ投入量RTと記載する)は、同期間に三元触媒装置18が放出した酸素の総量に、すなわち同三元触媒装置18の最大吸蔵量に対応した値となる。
また、電子制御ユニット22は、空燃比アクティブ制御でのリーン燃焼の実行中に、触媒上流空燃比λ1から理論空燃比λSTを引いた差を求めるとともに、その差に排気流量を乗算した積をリーン投入量の値として求めている。リーン投入量は前段側の三元触媒装置18に流入する余剰酸素の流量に対応した値となる。リーン燃焼中の触媒下流空燃比λ2が理論空燃比λST近傍の値となっていれば、流入した余剰酸素の殆どを三元触媒装置18が吸蔵していることになる。よって、このときのリーン投入量は、三元触媒装置18の単位時間当たりの酸素吸蔵量に対応した値となる。
一方、空燃比アクティブ制御の開始後の2回目以降のリーン燃焼は、前段側の三元触媒装置18の酸素吸蔵量が最大吸蔵量MAXとなっているときに開始され、同酸素吸蔵量がゼロとなったときに終了される。よって、空燃比アクティブ制御の開始後の2回目以降のリーン燃焼の開始から終了までの期間におけるリーン投入量の積算値(以下、総リーン投入量LTと記載する)は、同期間に三元触媒装置18が吸蔵した酸素の総量に、すなわち上述の総リッチ投入量と同様に、同三元触媒装置18の最大吸蔵量に対応した値となる。
このように、空燃比アクティブ制御でのリッチ燃焼の実行期間における総リッチ投入量RT、リーン燃焼の実行期間における総リーン投入量LTからは、三元触媒装置18の最大吸蔵量を求めることができる。触媒OSC学習制御では、総リッチ投入量及び総リーン投入量に基づき、三元触媒装置18の最大吸蔵量の学習値であるOSC学習値の学習を行っている。
図8に、こうした触媒OSC学習制御におけるOSC学習値の更新に係る処理であるOSC学習値更新ルーチンのフローチャートを示す。電子制御ユニット22は、空燃比アクティブ制御の開始後の2回目以降のリーン燃焼が終了する毎にOSC学習値更新ルーチンの処理を実行する。
本ルーチンの処理が開始されると、まずステップS300において、高空気量フラグがセットされているか否かが判定される。ここで、高空気量フラグがセットされていなければ(NO)、ステップS310に処理が進められる。そして、ステップS310において、直近のリッチ燃焼の実行期間における総リッチ投入量RTと、直近のリーン燃焼の実行期間における総リーン投入量LTと、の2つの値の平均値(=(RT+LT)/2)となるように、OSC学習値の値が更新された後、今回の本ルーチンの処理が終了される。なお、直近のリーン燃焼とは、本ルーチンの開始の直前まで行われていたリーン燃焼を、直近のリッチ燃焼とは、そのリーン燃焼の開始の直前まで行われていたリッチ燃焼を、それぞれ表している。
一方、高空気量フラグがセットされている場合には(S300:YES)、ステップS320に処理が進められる。ステップS320に処理が進められると、そのステップS320において、基準リーン判定値DL0から現在のリーン判定値DLの値を引いた差(=DL0-DL)である乖離量ΔDLが既定の判定値βを超えているか否かが判定される。ここで、乖離量ΔDLが判定値β以下の場合(NO)にはステップS330に処理が進められる。これに対して、乖離量ΔDLが判定値βを超える場合(YES)にはそのまま今回の本ルーチンの処理が終了される。
ステップS330に処理が進められると、そのステップS330において、エンジン10が過渡の運転状態にあるか否かが判定される。このときのエンジン10が過渡の運転状態であれば(YES)、そのまま今回の本ルーチンの処理が終了され、そうでなければ(NO)、ステップS340に処理が進められ、
ステップS340に処理が進められると、乖離量ΔDLに基づき補正係数Kの値が設定される。補正係数Kの値は、乖離量ΔDLの値が0から次第に増大していったときに、乖離量ΔDLが0のときの値である1から次第に大きくなるように設定される。そして、続くステップS350において、直近のリッチ燃焼の実行期間における総リッチ投入量RTと、直近のリーン燃焼の実行期間における総リーン投入量LTに補正係数Kを乗算した積と、の2つの値の平均値(=(RT+LT×K)/2)となるようにOSC学習値の値が更新された後、今回の本ルーチンの処理が終了される。
上述のように総リッチ投入量RT及び総リーン投入量LTはそれぞれ、前段側の三元触媒装置18の最大吸蔵量に相当する値となる。そこで、OSC学習値更新ルーチンでは、高空気量フラグがクリアされている場合(S300:NO)、総リッチ投入量RT及び総リーン投入量LTの平均値となるようにOSC学習値の値を更新している。
一方、本実施形態では、空燃比アクティブ制御において、吸入空気量GAが高空気量判定値αを超える場合には、基準リーン判定値DL0よりも理論空燃比λSTに近い空燃比をリーン判定値DLの値として設定している。また、吸入空気量GAが高空気量判定値αを超えているときには、高空気量フラグがセットされている。基準リーン判定値DL0よりも理論空燃比λSTに近い空燃比がリーン判定値DLの値として設定されているときには、基準リーン判定値DL0がリーン判定値DLの値として設定されているときよりも早い時期にリーン燃焼が終了する。そのため、基準リーン判定値DL0がリーン判定値DLの値として設定されているときの総リーン投入量LTの値は、三元触媒装置18の最大吸蔵量MAXに相当する値よりも小さい値となる。そして、三元触媒装置18の最大吸蔵量MAXに相当する値に対する総リーン投入量LTの値のずれ量は、基準リーン判定値DL0に対する現状のリーン判定値DLの差である乖離量ΔDLが大きいほど大きくなる。
これに対して本実施形態では、高空気量フラグがセットされた状態でOSC学習値の更新を行う場合には、総リッチ投入量RTと、総リーン投入量LTに補正係数Kを乗算した積と、の平均値となるように、同OSC学習値の値を更新している。また、補正係数Kの値を、乖離量ΔDLが0のときには1となり、乖離量ΔDLが0から大きくなるに従って1から大きくなっていく値となるように設定している。すなわち、乖離量ΔDLの値から想定されるずれ量分の補正を総リーン投入量LTに施した値を用いて、更新するOSC学習値の値を演算するようにしている。そのため、吸入空気量GAに応じたリーン判定値DLの変更により生じる上記総リーン投入量LTの値のずれ分を補償した適切な値をOSC学習値の値として学習することが可能となる。
なお、上記のような乖離量ΔDLに応じた補正を行っても、乖離量ΔDLがある程度よりも大きいときには、補正過程で生じる誤差が大きくなるため、総リーン投入量LTから最大吸蔵量MAXを正確に求められなくなる。また、エンジン10が過渡の運転状態にある場合には、空燃比の乱れが生じやすく、総リッチ投入量RTや総リーン投入量LTが示す最大吸蔵量MAXは不正確な値となりやすい。そのため、本実施形態では、乖離量ΔDLが判定値βを超える場合やエンジン10が過渡の運転状態にあるときには、今回の本ルーチンの処理では、OSC学習値の値を更新しないようにしている。
続いて、空燃比サブ学習制御の詳細を説明する。上述のように、触媒上流空燃比センサ20の検出誤差や燃料噴射弁16の噴射特性の個体差などに起因して、メインフィードバック制御において目標空燃比に対する空燃比の定常偏差が生じることがある。一方、上述のように、空燃比アクティブ制御中の総リッチ投入量RT及び総リーン投入量LTはいずれも三元触媒装置18の最大吸蔵量MAXに対応した値となる。そのため、総リッチ投入量RT及び総リーン投入量LTは等しい値となる筈である。しかしながら、メインフィードバック制御において空燃比の定常偏差が生じていると、総リッチ投入量RTと総リーン投入量LTとの間に差が生じる。空燃比サブ学習制御では、総リッチ投入量RTと総リーン投入量LTとの差に基づき、メインフィードバック制御での空燃比の定常偏差分の補償に用いる空燃比サブ学習値の学習を行っている。なお、メインフィードバック制御での空燃比の定常偏差分の補償は、空燃比サブ学習値に応じて目標空燃比を補正することで行われている。
図9に、こうした空燃比サブ学習制御での空燃比サブ学習値の更新量を演算するための処理であるサブ学習値更新ルーチンのフローチャートを示す。電子制御ユニット22は、空燃比アクティブ制御の開始後の2回目以降のリーン燃焼が終了する毎に本ルーチンの処理を実行する。
本ルーチンの処理が開始されると、まずステップS400において、高空気量フラグがセットされているか否かが判定される。ここで、高空気量フラグがセットされていなければ(NO)、ステップS410に処理が進められる。そして、ステップS410において、直近のリッチ燃焼の実行期間における総リッチ投入量RTから直近のリーン燃焼の実行期間における総リーン投入量LTを引いた差に、既定の更新係数γを乗算した積(=(RT-LT)×γ)が、空燃比サブ学習値の更新量の値として設定される。
一方、高空気量フラグがセットされている場合には(S400:YES)、ステップS420に処理が進められる。ステップS420に処理が進められると、そのステップS420において、乖離量ΔDLが判定値βを超えているか否かが判定される。そして、乖離量ΔDLが判定値β以下の場合(NO)にはステップS430に、乖離量ΔDLが判定値βを超える場合(YES)にはステップS460に、それぞれ処理が進められる。
ステップS430に処理が進められると、そのステップS430において、エンジン10が過渡の運転状態にあるか否かが判定される。そして、過渡の運転状態にない場合(NO)にはステップS440に、過渡の運転状態にある場合(YES)にはステップS460に、それぞれ処理が進められる。
ステップS440に処理が進められると、上述のOSC学習値更新ルーチンにおけるステップS340と同様に、乖離量ΔDLに基づく補正係数Kの設定が行われる。そして、続くステップS450において、補正係数Kにより補正した総リーン投入量LTを用いて空燃比サブ学習値の更新量の値の設定が行われる。具体的には、ステップS450では、直近のリッチ燃焼の実行期間における総リッチ投入量RTから直近のリーン燃焼の実行期間における総リーン投入量LTに補正係数Kを乗算した積を引いた差に上記更新係数γを乗算した積(=(RT-LT×K)×γ)が更新量の値として設定される。これに対して、ステップS460に処理が進められた場合には、そのステップS460において、空燃比サブ学習値の更新量の値としてゼロが設定される。
上記ステップS410、ステップS440、又はステップS460において、更新量の値の設定が行われると、ステップS470に処理が進められる。そして、そのステップS470において、更新量に応じた空燃比サブ学習値の更新処理が行われる。具体的には、同更新処理では、演算した更新量を更新前の値から引いた差が更新後の値となるように、空燃比サブ学習値の値が更新される。そしてその後、今回の本ルーチンの処理が終了される。
以上のサブ学習値更新ルーチンでは、総リッチ投入量RT及び総リーン投入量LTの差に基づき、空燃比サブ学習値の更新量を決めるようにしている。一方、上述のように基準リーン判定値DL0よりも理論空燃比λSTに近い空燃比がリーン判定値DLの値として設定されている場合には、最大吸蔵量MAXに対応した値からの総リーン投入量LTのずれが生じてしまう。そのため、このときの総リッチ投入量RT及び総リーン投入量LTの差も、メインフィードバック制御での空燃比の定常偏差を正確に表す値とならなくなる。
そこで本実施形態では、基準リーン判定値DL0よりも理論空燃比λSTに近い空燃比がリーン判定値DLの値として設定されているときには、乖離量ΔDLに応じて補正した総リーン投入量LTの値を用いて空燃比サブ学習値の更新量を求めている。そのため、リーン判定値の値に拘らず、空燃比の定常偏差に応じた適切な値を更新量として設定することが、ひいては空燃比サブ学習値として適切な値を学習することが可能となる。
また、乖離量ΔDLがある程度よりも大きい場合やエンジン10が過渡の運転状態にあって空燃比が乱れやすい状況にある場合には、総リッチ投入量RT及び総リーン投入量LTからメインフィードバック制御の空燃比の定常偏差を正確に求められなくなる。そのため、本実施形態では、乖離量ΔDLが判定値βを超える場合やエンジン10が過渡の運転状態にある場合には、これらの場合には、更新量をゼロとして、空燃比サブ学習値の更新を行わないようにしている。