ところで、積分処理値が収束値に向かって変化していく際、外乱の発生により積分処理値が収束値から偏移する場合がある。この偏移の程度は、積分処理値の変化速度が大きいほどより大きくなる。ここで、上述のように積分処理値の変化速度を速度大区間及び速度小区間とで分ける制御中に、外乱が発生する場合を考える。
この場合、上記速度大区間において外乱が発生すると、積分処理値が収束値から比較的大きく偏移した状態にて同区間の終期が到来し得る。即ち、積分処理値が収束値から比較的大きく偏移した状態にて、上記速度小区間の始期が到来し得る。このため、速度小区間においては、外乱の発生による積分処理値の収束値からの偏移程度は小さいものの、積分処理値が収束値に近づくのに時間がかかる場合がある。
このように、積分処理値の変化速度が2値的に設定・変更される制御では、外乱の発生により上記吸排気系の誤差が早期に精度よく補償され得ない事態が発生し得る。従って、上記積分処理値の収束値からの偏移が大きいと判定される場合に、外乱が発生する場合であっても上記吸排気系の誤差を早期に精度よく補償することが望まれている。
本発明の目的は、触媒下流の空燃比センサの出力値と理論空燃比に相当する値との相違に起因する値(以下、「相違起因値」と称呼する。)に基づく値を積算して相違起因値に係わる時間積分値を更新し、更新された時間積分値に基づいて更新される積分項に少なくとも基づいて空燃比をフィードバック制御する空燃比制御装置において、外乱が発生する場合であっても上記吸排気系の誤差が早期に精度よく補償し得るものを提供することにある。
本発明にかかる第1の空燃比制御装置は、内燃機関の排気通路に配設された触媒と、前記触媒よりも下流の前記排気通路に配設されて前記触媒から流出するガスの空燃比に応じた値を出力する下流側空燃比センサと、燃料を噴射する燃料噴射弁と、を備えた内燃機関に適用される。
本発明に係る第1の空燃比制御装置は、前記下流側空燃比センサの出力値と前記相違起因値に基づく値を積算して前記相違起因値に係わる時間積分値を更新し前記更新された時間積分値に基づいて積分項を更新する積分項更新手段と、前記積分項に少なくとも基づいて前記触媒に流入するガスの空燃比が前記理論空燃比に一致するように前記燃料噴射弁から噴射される燃料量をフィードバック制御するフィードバック制御手段と、を備え、前記積分項更新手段は、前記積分項の変化速度を変更する変化速度変更手段を備える。
ここにおいて、「積分項」及び「時間積分値」は、所定の記憶手段にて記憶され所定のタイミング毎に更新(学習)されるものであってもよいし、学習されないものであってもよい。
また、「相違起因値」は、例えば、下流側空燃比センサの出力値と理論空燃比に相当する下流側空燃比センサの出力値との差、下流側空燃比センサにより検出される空燃比と理論空燃比との差等であって、これらに限定されない。また、「積分項」は、例えば、前記時間積分値にゲイン等の係数を乗じた値、前記時間積分値と等しい値等であって、これらに限定されない。
本発明に係る第1の空燃比制御装置の特徴は、前記変化速度変更手段が、前記積分項の収束値からの偏移が大きいと判定された場合第1段階として前記積分項の変化速度を第1変化速度に設定し、前記第1段階において第1の条件が成立した場合第2段階として前記変化速度を前記第1変化速度から前記第1変化速度よりも小さい第2変化速度に変更し、前記第2段階において第2の条件が成立した場合第3段階として前記変化速度を前記第2変化速度から前記第2変化速度よりも小さい第3変化速度に変更するように構成されたことにある。
ここにおいて、「積分項の収束値からの偏移が大きいと判定された場合」は、例えば、前記積分項(前記時間積分値)が逐次更新・記憶(学習)される場合においてバッテリ交換等により記憶されていた前記積分項(前記時間積分値)がクリアされる場合、前記触媒の上流に空燃比センサが配設されている場合において失火率が変化する場合等であって、これらに限定されない。
また、「第1の条件」は、例えば、第1段階において前記積分項(前記時間積分値)の更新回数が所定の第1回数に達したという条件、第1段階において前記積分項(前記時間積分値)の所定期間における変動幅が所定の第1範囲内であるという条件、第1段階の継続時間が所定の第1時間に達したという条件等であって、これらに限定されない。
また、「第2の条件」は、例えば、第2段階において前記積分項(前記時間積分値)の更新回数が上記第1回数よりも大きい所定の第2回数に達したという条件、第2段階において前記積分項(前記時間積分値)の上記所定期間における変動幅が上記第1範囲よりも小さい所定の第2範囲内であるという条件、第2段階の継続時間が上記第1時間よりも長い所定の第2時間に達したという条件等であって、これらに限定されない。
また、第1、第2、及び第3変化速度は、第1、第2、及び第3段階に対応する期間における、積分項の変化速度の平均値を意味している。
上記構成によれば、積分項の収束値からの偏移が大きいと判定された場合、第1段階として、変化速度が大きい速度に設定され得る。従って、第1段階にて、外乱が発生すると積分項は収束値から偏移し易いものの、積分項がきわめて迅速に収束値向かって変化し得る。従って、積分項が収束値にある程度近い値に早期に近づき得る。
次に、第2段階として、変化速度が中程度の速度に設定され得る。このため、第2段階にて外乱が発生しても、積分項の収束値からの偏移の程度が小さくなり得る。また、第2段階の始期(即ち、第1段階の終期)には、積分項が収束値にある程度近づいている状態となり得る。従って、第2段階にて積分項を収束値に迅速に近づけることができ、第2段階の終期には積分項が収束値により一層近い値に推移し得る。
そして、第3段階として、変化速度が小さい速度に設定され得る。このため、第3段階にて外乱が発生しても、積分項が収束値から偏移することが大幅に抑制され得る。また、第3段階の始期(即ち、第2段階の終期)には、積分項が収束値に十分に近づいている状態となり得る。従って、第3段階にて、積分項が収束値近傍の値に安定して推移し得る。
以上のことから、積分項の収束値からの偏移が大きい場合に、積分項が収束値に向かって変化していく。この際に外乱が発生する場合であっても、上述のように少なくとも3値的に変化速度が設定・変更されることで、積分項が収束値(の近傍の値)に迅速に近づき得、その後、収束値近傍の値に安定して推移し得る。この結果、上記吸排気系の誤差を早期に精度よく補償することができる。
上記本発明に係る第1の空燃比制御装置においては、例えば、前記積分項更新手段が、前記積分項(前記時間積分値)の1回あたりの更新量を調整する調整値を使用して前記積分項を算出・更新し、前記変化速度変更手段が、前記第1段階にて前記調整値を第1値に設定し、前記第2段階にて前記調整値を前記第1値よりも前記1回あたりの更新量が小さい第2値に変更し、前記第3段階にて前記調整値を前記第2値よりも前記1回あたりの更新量が小さい第3値に変更するように構成されてもよい。
ここにおいて、「調整値」は、例えば、時間積分値に乗じられる値であって、時間積分値の1回あたりの更新量を調整することで積分項の1回あたりの更新量を調整する値であってもよい。また、例えば、時間積分値の1回あたりの更新量が一定とされる場合、積分項に乗じられる値であって、積分項そのものの1回あたりの更新量を調整する値であってもよい。
積分項の更新間隔が一定の場合、積分項の変化速度は、積分項の1回あたりの更新量が大きいほど大きくなる。上記構成によれば、調整値が利用されて上記更新量が容易に調整され得る。従って、積分項の変化速度の設定・変更を容易に行うことができる。
この場合、上記本発明に係る第1の空燃比制御装置は、前記内燃機関の運転状態に応じて前記燃料噴射弁からの燃料噴射を中断するフューエルカット制御を行うフューエルカット制御手段と、前記フューエルカット制御が実行された場合前記フューエルカット制御から復帰した後前記触媒に流入するガスの空燃比が前記理論空燃比よりもリッチな空燃比になるように前記燃料噴射弁から噴射される燃料量を制御するリッチ制御を行うリッチ制御手段と、を備え、前記触媒が、酸素吸蔵機能を有し、前記変化速度変更手段が、前記触媒が吸蔵し得る酸素の最大量が大きいほど前記調整値を前記1回あたりの更新量がより小さい量となる値に設定するように構成されると好適である。
一般に、この種の空燃比制御装置においては、燃費向上等の観点から、内燃機関の運転状態に応じて前記フューエルカット制御が実行される場合が多い。また、前記フューエルカット制御が実行される場合、同制御からの復帰時においては触媒の酸素吸蔵量が大きい場合が多い。フューエルカット制御の復帰した後においても、触媒に流入するNOxを適切に浄化する観点から、同制御の復帰後に触媒の酸素吸蔵量をある程度まで減少させることが好ましい。このため、フューエルカット制御から復帰した後、前記リッチ制御が実行されることが好ましい。
前記リッチ制御が実行される場合、同制御実行中のある時点以降、下流側空燃比センサ(例えば、濃淡電池式の酸素濃度センサ)の出力値が、空燃比がリッチを示す値に所定期間に亘って推移する。このため、積分項は、上記リッチを示す値に推移する期間に亘って、前記噴射弁から噴射される燃料量が減少する方向(以下、この方向を「リーン方向」とも称呼する。)に変化し続ける。
従って、上記リッチ制御が実行されることにより、積分項は収束値からリーン方向へ偏移する場合がある。以下、このように積分項が収束値からリーン方向へ偏移する態様を、積分項の「リーンずれ」とも称呼する。換言すれば、上記リッチ制御は、積分項が収束値に向かって変化していく際の外乱となり得る。
ここで、触媒が吸蔵し得る酸素の最大量(以下、「最大酸素吸蔵量」と称呼する。)が大きいほど、上記リッチを示す値に推移する期間がより長くなる(即ち、積分項がリーン方向へ変化し続ける時間が長くなる。)。このため、積分項の変化速度が一定である場合、触媒の最大酸素吸蔵量が大きいほど、上記積分項のリーンずれの程度がより大きくなる。
従って、上記積分項のリーンずれの程度を抑制する観点から、触媒の最大酸素吸蔵量が大きいほど、積分項の変化速度がより小さい値に設定されることが好ましい。上記構成は、かかる知見に基づくものである。これによれば、触媒の最大酸素吸蔵量が大きいほど、積分項の変化速度がより小さい値に設定され得る。従って、最大酸素吸蔵量の大きさに依存することなく上記積分項のリーンずれの程度を抑制することができる。換言すれば、最大酸素吸蔵量が小さいほど、積分項の変化速度が大きい値に設定され得、上記積分項のリーンずれの程度を抑制しつつ積分項を収束値により迅速に近づけることができる。
また、上記本発明に係る第1の空燃比制御装置においては、前記フューエルカット制御手段を備え、前記変化速度変更手段が、前記第1段階にて前記フューエルカット制御が実行された場合前記フューエルカット制御から復帰した時点から前記積分項の更新を第1期間に亘って禁止し、前記第2段階にて前記フューエルカット制御が実行された場合前記フューエルカット制御から復帰した時点から前記積分項の更新を前記第1期間よりも長い第2期間に亘って禁止し、前記第3段階にて前記フューエルカット制御が実行された場合前記フューエルカット制御から復帰した時点から前記積分項の更新を前記第2期間よりも長い第3期間に亘って禁止するように構成されることが好適である。
上記フューエルカット制御が実行される場合、同制御から復帰した後上記リッチ制御が実行されない場合には、上記フューエルカット制御からの復帰時点以降も下流側空燃比センサ(例えば、濃淡電池式の酸素濃度センサ)の出力値が、空燃比がリーンを示す値に所定期間に亘って推移する。このため、積分項は、上記リーンを示す値に推移する期間に亘って、前記噴射弁から噴射される燃料量が増量する方向(以下、この方向を「リッチ方向」とも称呼する。)に変化し続ける。
従って、上記フューエルカット制御が実行されて上記リッチ制御が実行されない場合には、積分項は収束値からリッチ方向へ偏移する場合がある。以下、このように積分項が収束値からリッチ方向へ偏移する態様を、積分項の「リッチずれ」とも称呼する。換言すれば、上記フューエルカット制御が実行されて、同制御から復帰した後上記リッチ制御が実行されない制御も、積分項が収束値に向かって変化していく際の外乱となり得る。
一方、上述のように、フューエルカット制御から復帰した後に上記リッチ制御が実行される場合には、上記積分項のリーンずれが発生し得る。上述した積分項のリッチずれ、又は、リーンずれを抑制する観点から、フューエルカット制御が実行された場合に同制御から復帰した時点から、所定の期間に亘って積分項の更新が禁止されることが好ましい。
ここで、積分項の更新が禁止される期間が長いほど、積分項の更新回数がより小さくなり得る。積分項の更新回数が小さいほど、積分項の変化速度がより小さくなり得る。従って、積分項の変化速度は、更新が禁止される期間が長いほどより小さくなり得る。上記構成によれば、積分項の更新が禁止される期間が第1、第2及び第3期間に分けて設定・変更されることで、積分項の変化速度が3値的に設定・変更され得る。この結果、外乱としてのフューエルカット制御(又は、リッチ制御)による上記リッチずれ(又は、上記リーンずれ)を抑制しつつ、上記吸排気系の誤差を早期に精度よく補償することができる。
また、このように積分項の更新が禁止される期間が設定・変更される場合において、前記触媒が、酸素吸蔵機能を有する場合、前記変化速度変更手段が、前記最大酸素吸蔵量が大きいほど前記積分項の更新を禁止する期間をより長い期間に設定するように構成されることが好適である。
上記リッチ制御は、理論空燃比よりもリッチな一定の空燃比をもって、リッチ制御の実行期間が調整されて酸素吸蔵量の減少度合いを所望の度合いに近づけるようになっている場合が多い。即ち、この場合、最大酸素吸蔵量が大きいほどリッチ制御の実行期間がより長い期間に調整され得る。他方、リッチ制御が実行される場合、積分項の更新は、上記リッチ制御の実行期間よりも長い期間に亘って禁止されることが好ましい。以上のことから、最大酸素吸蔵量が大きいほど積分項の更新を禁止期間がより長いと好適である。
上記構成はかかる知見に基づくものである。これによれば、触媒の最大酸素吸蔵量が大きいほど積分項の変化速度が小さい値に設定され得るため、最大酸素吸蔵量の大きさに依存することなく上記リーンずれの程度を抑制することができる。換言すれば、最大酸素吸蔵量が小さいほど、積分項の変化速度が大きい値に設定され得、上記リーンずれの程度を抑制しつつ積分項を収束値により迅速に近づけることができる。
また、上記本発明に係る第1の空燃比制御装置においては、前記フューエルカット制御手段と、前記リッチ制御を行うリッチ制御手段と、を備え、前記触媒が、酸素吸蔵機能を有し、前記リッチ制御手段が、前記第3段階における前記リッチ制御の実行による前記触媒の酸素吸蔵量の減少の程度を前記第1及び第2段階における前記リッチ制御の実行による前記触媒の酸素吸蔵量の減少の程度よりも大きくするように構成されると好適である。
上述のように、上記フューエルカット制御の復帰した後においても、触媒に流入するNOxを適切に浄化する観点から、上記リッチ制御により触媒の酸素吸蔵量をある程度まで減少させることが好ましい。ここで、上記リッチ制御による酸素吸蔵量の減少度合いが大きいほど、NOxがより適切に浄化され易い。
他方、上記リッチ制御による酸素吸蔵量の減少度合いが大きいほど、リッチ制御から復帰した時点以降に、(最大酸素吸蔵量が一定の状態にて)触媒が吸蔵し得る酸素量の余裕度が大きい。この余裕度が大きいほど、リッチ制御から復帰した時点以降、空燃比フィードバック制御により触媒の酸素吸蔵量が最大酸素吸蔵量に達する時間が長い。従って、上記リッチ制御による酸素吸蔵量の減少度合いが大きいほど、リッチ制御から復帰した時点以降、下流側空燃比センサの出力値がリッチを示す値に推移する期間が長くなる。このため、積分項の変化速度が一定である場合、上記リッチ制御による酸素吸蔵量の減少度合いが大きいほど、上記積分項のリーンずれの程度がより大きくなる。
第1、及び第2段階における積分項の変化速度は、第3段階におけるものに比して大きい。このため、第1、及び第2段階においては、上記酸素吸蔵量の減少度合いを大きくしてNOxをより適切に浄化する要求よりも、上記酸素吸蔵量の減少度合いを小さくして積分項のリーンずれの程度を抑制する要求が大きい。上記構成はかかる知見に基づくものである。これにより、第1、及び第2段階にて上記リーンずれの程度が抑制され得る。
また、第3段階においては、積分項の変化速度が小さい値に設定され得るため、上記酸素吸蔵量の減少度合いが大きくなるようリッチ制御が実行されても、上記リーンずれの程度が抑制され得る。従って、第3段階においては、上記リーンずれの程度を抑制しつつ、NOxがより適切に浄化され得るようにリッチ制御を実行することができる。
また、上記本発明に係る第1の空燃比制御装置においては、前記内燃機関が、前記触媒よりも上流の前記排気通路に配設されて前記触媒へ流入するガスの空燃比に応じた値を出力する上流側空燃比センサを備えていて、前記フィードバック制御手段が、前記上流側空燃比センサの出力にも基づいて前記燃料噴射弁から噴射される燃料量をフィードバック制御するように構成されている場合、前記変化速度変更手段が、前記積分項の収束値からの偏移が大きいと判定された場合として失火率の変化が所定の度合いよりも大きい場合を使用するように構成されると好適である。
ここにおいて、「失火率」は、前記燃料噴射弁から所定回数の燃料噴射がなされた期間内に発生する失火の回数の、上記所定回数に対する割合を意味している。
失火が発生する場合、燃料と空気の混合気が筒内から上流側空燃比センサを経て触媒へ流入する。そして、触媒に流入した混合気は、大部分が触媒にて燃焼処理されて、燃焼ガスとして触媒から流出する。従って、失火が発生する場合には、混合気そのものが上流側センサに到達する一方で、その混合気の燃焼ガスが下流側空燃比センサに到達するという事態が発生し得る。
一般に、理論空燃比(又は、理論空燃比近傍の空燃比)の混合気が空燃比センサの検出部に接触すると、空燃比センサはリーンを示す値を出力する場合が多い。これは、混合気中の酸素に対する空燃比センサの感度が、混合気中の他の成分に対する感度よりも大きいことに基づくと考えられる。
従って、失火が発生する毎に、(混合気の空燃比が理論空燃比近傍の空燃比であっても)上流側空燃比センサがリーンを示す値を出力することに応じて、燃料噴射量がリッチ方向にフィードバック制御される。このため、失火率が一定の場合、触媒に流入するガスの空燃比が、理論空燃比よりもリッチ方向に一定の程度をもって平均的に偏移する。この空燃比のリッチ方向への平均的な偏移を補償するために、下流側空燃比センサがリッチを示す値を出力して、積分項がリーン方向へ偏移した収束値に向かって収束していく。
ここで、上記空燃比のリッチ方向への平均的な偏移の程度は、失火率が大きいほどより大きくなる。従って、失火率が増大(又は、減少)した場合、失火率の増大後(減少後)の積分項の収束値は、失火率の増大前(減少前)のものからリーン(リッチ)方向へ偏移する。このため、失火率の変化が所定の度合いよりも大きい場合には、積分項の収束値からの偏移が大きいと判定されることが好ましい。
上記構成はかかる知見に基づくものである。これによれば、失火率の変化により積分項が収束値から大きく偏移する場合であっても、上記吸排気系の誤差(特に、上流側空燃比センサの誤差)を早期に精度よく補償することができる。
この場合、前記変化速度変更手段が、前記失火率の変化が大きいほど前記変化速度をより大きい速度に設定するように構成されることがより好適である。
失火率が変化する場合において、失火率の変化が大きいほど、失火率の変化前後での収束値の変化度合いがより大きくなる。即ち、失火率の変化が大きいほど、積分項が収束値から偏移する程度がより大きくなる。従って、この場合、積分項を収束値に迅速に近づける観点から、失火率の変化が大きいほど、積分項の変化速度がより大きい値に設定されることが好ましい。上記構成はかかる知見に基づくものである。これによれば、失火率の変化の度合いに依存することなく、収束値から偏移した積分項を収束値に迅速に近づけることができる。
また、この場合、前記変化速度変更手段が、前記失火率の変化が大きいほど前記第1段階中の前記積分項の更新回数がより大きい回数となるよう前記第1の条件を設定するように構成されてもよい。
失火率の変化が大きい場合に積分項を迅速に収束値に近づけるためには、積分項の変化速度を大きい値に設定する機会を大きくすることも考えられる。ここで、第1段階においては、積分項の変化速度が大きい値に設定され得る。従って、第1段階中の積分項の更新回数が大きいほど、積分項の変化速度を大きい値に設定する機会がより大きくなり得る。以上のことから、失火率の変化が大きいほど、第1段階中の積分項の更新回数が大きくされることが好ましい。
上記構成はかかる知見に基づくものである。これによっても、失火率の変化の度合いに依存することなく、収束値から偏移した積分項を迅速に収束値に近づけることができる。
一方、失火率の変化が小さい場合には、積分項の変化速度を大きい値に設定する必要性が小さい。従って、例えば、失火率の変化が微小である場合、第1段階中の積分項の更新回数がゼロとなるようにしてもよい。即ち、この場合、第1段階が実質的に省略されて、不必要に変化速度が大きい値に設定されることが回避され得る。
また、上記本発明に係る第1の空燃比制御装置においては、前記フューエルカット制御手段と、前記リッチ制御手段と、を備え、前記触媒が、酸素吸蔵機能を有し、前記リッチ制御手段が、前記第1段階では前記リッチ制御を実行しないように構成され、前記積分項更新手段が、前記第1の条件が成立した場合前記積分項を前記噴射弁から噴射される燃料量が減少する方向に所定量だけ変更するように構成されてもよい。
これによれば、第1段階にて、フューエルカット制御からの復帰後リッチ制御が禁止される。このため、フューエルカット制御から復帰した時点からも、下流側空燃比センサ(例えば、濃淡電池式酸素濃度センサ)の出力値はリーンを示す値に推移し続ける。従って、フューエルカット制御から復帰した時点から、下流側空燃比センサの出力値がリーンを示す値に推移している期間に亘って、積分項はリッチずれしていく。
ここで、フューエルカット制御から復帰した時点においては、触媒の酸素吸蔵量が上記最大酸素吸蔵量に達している場合が多い。この場合、最大酸素吸蔵量が一定であれば1回あたりのフューエルカット制御における、上記リッチずれの程度が略一定となり得る。更に、積分項の変化速度、フューエルカット制御の頻度等に応じて、第1段階に対応する期間の終期における上記リッチずれの程度を予め見積もっておくことができる。
以上のことから、上記所定量を、上記予め見積もっておいたリッチずれの程度に対応する量に設定することで、第1の条件が成立した場合にて積分項を収束値に比較的近い値とすることができる。従って、これによっても、上記吸排気系の誤差を早期に精度よく補償することができる。
この場合、前記積分項更新手段が、前記触媒が吸蔵し得る酸素の最大量が大きいほど前記所定量をより大きい量に設定するように構成されると好適である。
最大酸素吸蔵量が大きいほど、1回あたりのフューエルカット制御により下流側空燃比センサの出力値がリーンを示す値に推移している期間がより長くなる。このため、積分項のリッチずれの程度も最大酸素吸蔵量が大きいほどより大きくなり得る。従って、上記構成によれば、第1の条件が成立した場合にて、最大酸素吸蔵量の大きさに依存することなく、積分項を収束値に適切に近づけることができる。
以上が、本発明に係る第1の空燃比制御装置についての説明である。次に、本発明に係る第2の空燃比制御装置について説明する。
本発明に係る第2の空燃比制御装置は、上記本発明に係る第1の空燃比制御装置と同じ触媒と、下流側空燃比センサと、燃料噴射弁と、を備えた内燃機関に適用される。
本発明に係る第2の空燃比制御装置は、上記本発明に係る第1の空燃比制御装置と同じ積分項更新手段と、フィードバック制御手段と、を備え、前記積分項更新手段が、前記積分項の変化速度を変更する変化速度変更手段を備える。
本発明に係る第2の空燃比制御装置の特徴は、前記変化速度変更手段が、前記積分項の収束値からの偏移の程度が第1の程度よりも大きいという第1判定がなされる毎に前記積分項の変化速度をより大きい値に変更し、前記積分項の収束値からの偏移の程度が前記第1の程度よりも小さい第2の程度よりも小さいという第2判定がなされる毎に前記積分項の変化速度をより小さい値に変更し、前記第1判定がなされる毎に前記第1及び第2の程度をより大きい値に変更し、前記第2判定がなされる毎に前記第1及び第2の程度をより小さい値に変更するように構成されたことにある。
これによれば、積分項の収束値からの偏移の程度が大きい場合、前記第1判定がなされ得、積分項の変化速度が大きい値に設定され得る。従って、積分値が収束値に迅速に近づき得、上記偏移の程度が小さくなり得る。ここで、第1判定がなされる毎に前記第1及び第2の程度が大きい値に変更されていくため、上記偏移の程度が小さくなっていくのに伴って前記第1判定がなされ難く、且つ、前記第2判定がなされ易くなっていく。従って、上記偏移の程度が小さくなると、前記第2判定がなされ得、積分項の変化速度が小さい値に設定され得る。この結果、積分項が収束値近傍の値に安定して推移し得る。以上のことから、積分項の収束値からの偏移が大きくなる事態が発生する場合(例えば、外乱が発生する場合)であっても、上記吸排気系の誤差を早期に精度よく補償することができる。
上記本発明に係る第2の空燃比制御装置においては、前記変化速度変更手段が、前記積分項に応答遅れ処理を施して得られる応答遅れ処理値を計算していくように構成され、前記積分項の基準値との偏移の程度が前記第1の程度よりも大きい場合前記第1判定がなされ、前記積分項の前記基準値との偏移の程度が前記第2の程度よりも小さい場合前記第2判定がなされ、前記第1判定がなされる毎に前記基準値を前記積分項と等しい値に変更するとともに、前記第2判定がなされる毎に前記基準値を前記応答遅れ処理値と等しい値に変更するように構成されると好適である。
これによれば、積分項(及び基準値)の収束値からの偏移の程度が大きい場合、応答遅れ処理値に比して、積分項の値そのものの方が収束値に近いものとなり得る(図25を参照)。他方、基準値は第1判定がなされて次に判定がなされるまで一定の値となる。従って、第1判定がなされる毎に基準値が積分項と等しい値に設定・変更されることで、基準値は収束値に迅速に近づいていく。これに伴い、積分項の値そのもの、及び応答遅れ処理値も収束値に迅速に近づき得る。
そして、積分項(及び基準値)の収束値からの偏移の程度が小さくなると、積分項そのものの値に比して、応答遅れ処理値の方が収束値に近いものとなり得る(図25を参照)。他方、基準値は第2判定がなされて次に判定がなされるまで一定の値となる。従って、第2判定がなされる毎に、基準値が応答遅れ処理値と等しい値に設定・変更されることで、基準値は収束値近傍の値に安定して推移し得る。これに伴い、積分項の値そのもの、及び応答遅れ処理値も収束値近傍の値に安定して推移し得る。
従って、少なくとも基準値、積分項、及び応答遅れ処理値が用いられることで、簡易に上記吸排気系の誤差を早期に精度よく補償することが達成され得る。換言すれば、積分項の収束値からの偏移の程度を表すパラメータ(例えば、失火率の変化等)を利用することなく、第1、及び第2判定が簡易かつ適切になされ得る。
また、上記本発明に係る第2の空燃比制御装置においては、前記触媒が、酸素吸蔵機能を有する場合、前記変化速度変更手段が、前記第1判定がなされた場合前記触媒が吸蔵し得る酸素の最大量が大きいほど前記積分項の変化速度の増大度合いがより小さい度合いとなるよう前記変化速度を変更し、前記第2判定がなされた場合前記酸素の最大量が大きいほど前記積分項の変化速度の減少度合いがより小さい度合いとなるよう前記変化速度を変更するように構成されると好適である。
上述したように、例えば、フューエルカット制御からの復帰後にリッチ制御が実行されることにより、上記積分項のリーンずれが発生し得る。このリーンずれの程度は、積分項の変化速度が一定の場合、触媒の最大酸素吸蔵量が大きいほどより大きくなる。従って、触媒の最大酸素吸蔵量が大きいほど、積分項の変化速度の増加度合い(及び減少度合い)がより小さくなるように積分項の変化速度を変更することが好ましい。
上記構成はかかる知見に基づくものである。これによれば、触媒の最大酸素吸蔵量の大きさに依存することなく、積分項を迅速に且つ精度よく収束値に収束させることができる。また、換言すれば、触媒が劣化する等により最大酸素吸蔵量が小さくなるほど、積分項の変化速度をより大きくすることができる。
この場合、積分項の更新を禁止する期間を調整することで、積分項の変化速度の調整が達成されてもよい。即ち、前記変化速度変更手段が、前記第1判定がなされた場合、前記触媒が吸蔵し得る酸素の最大量が大きいほど、前記積分項の更新を禁止する期間の短縮度合いがより小さい度合いとなるよう前記更新を禁止する期間を短縮し、前記第2判定がなされた場合、前記酸素の最大量が大きいほど、前記積分項の更新を禁止する期間の延長度合いがより小さい度合いとなるよう前記更新を禁止する期間を延長するように構成されてもよい。
以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。
(第1実施形態)
図1は、本発明の第1実施形態にかかる空燃比制御装置を火花点火式多気筒(4気筒)内燃機関10に適用したシステムの概略構成を示している。この内燃機関10は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部20と、シリンダブロック部20の上に固定されるシリンダヘッド部30と、シリンダブロック部20にガソリン混合気を供給するための吸気系統40と、シリンダブロック部20からの排気ガスを外部に放出するための排気系統50とを含んでいる。
シリンダブロック部20は、シリンダ21、ピストン22、コンロッド23、及びクランク軸24を含んでいる。ピストン22はシリンダ21内を往復動し、ピストン22の往復動がコンロッド23を介してクランク軸24に伝達され、これによりクランク軸24が回転するようになっている。シリンダ21とピストン22のヘッドは、シリンダヘッド部30とともに燃焼室25を形成している。
シリンダヘッド部30は、燃焼室25に連通した吸気ポート31、吸気ポート31を開閉する吸気弁32、吸気弁32を駆動するインテークカムシャフトを含むとともにインテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置33、可変吸気タイミング装置33のアクチュエータ33a、燃焼室25に連通した排気ポート34、排気ポート34を開閉する排気弁35、排気弁35を駆動するエキゾーストカムシャフト36、点火プラグ37、点火プラグ37に与える高電圧を発生するイグニッションコイルを含むイグナイタ38、及び燃料を吸気ポート31内に噴射するインジェクタ39を備えている。
吸気系統40は、吸気ポート31に連通し吸気ポート31とともに吸気通路を形成するインテークマニホールドを含む吸気管41、吸気管41の端部に設けられたエアフィルタ42、吸気管41内にあって吸気通路の開口断面積を可変とするスロットル弁43、及びスロットル弁駆動手段を構成するDCモータからなるスロットル弁アクチュエータ43aを備えている。
排気系統50は、排気ポート34に連通したエキゾーストマニホールド51、エキゾーストマニホールド51に接続されたエキゾーストパイプ52、エキゾーストパイプ52に配設された上流側触媒53、上流側触媒53よりも下流のエキゾーストパイプ52に配設された下流側触媒54を備えている。排気ポート34、エキゾーストマニホールド51及びエキゾーストパイプ52は、排気通路を構成している。
上流側触媒53及び下流側触媒54のそれぞれは、所謂、白金等の貴金属からなる活性成分を担持する三元触媒装置である。各触媒は、触媒流入ガスがほぼ理論空燃比であるとき、HC,COなどの未燃ガスを酸化するとともに、窒素酸化物(NOx)を還元する機能を有する。更に、各触媒は、酸素を吸蔵(貯蔵)する酸素吸蔵機能を有し、この酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃ガス及び窒素酸化物を浄化することができる。この酸素吸蔵機能は、触媒に担持されているセリア(CeO2)によってもたらされる。
一方、このシステムは、熱線式エアフローメータ61、スロットルポジションセンサ62、カムポジションセンサ63、クランクポジションセンサ64、水温センサ65、空燃比センサ66、酸素濃度センサ67、及びアクセル開度センサ68を備えている。
熱線式エアフローメータ61は、吸気管41内を流れる吸入空気の単位時間あたりの質量流量を検出し、吸入空気流量Gaを表す信号を出力するようになっている。スロットルポジションセンサ62は、スロットル弁43の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ63は、インテークカムシャフトが90°回転する毎に(即ち、クランク軸24が180°回転する毎に)一つのパルスを有する信号(G2信号)を発生するようになっている。クランクポジションセンサ64は、クランク軸24が10°回転する毎に幅狭のパルスを有するとともにクランク軸24が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、運転速度NEを表す。水温センサ65は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
空燃比センサ66は、排気通路であって上流側触媒53よりも上流側に配設されている。空燃比センサ66は、所謂「限界電流式酸素濃度センサ」であって、上流側触媒53に流入する排ガス中の空燃比を検出し、図2に実線にて示したように、空燃比A/Fに応じた電流を出力し、この電流に応じた電圧である出力値Vabyfs(V)を出力するようになっている。特に、正常状態では、空燃比が理論空燃比であるときに出力値Vabyfs(V)は値Vstoich(V)になるようになっている。図2から明らかなように、空燃比センサ66によれば、広範囲にわたる空燃比A/Fを精度良く検出することができる。
酸素濃度センサ67は、排気通路であって上流側触媒53よりも下流側であり下流側触媒54よりも上流側に配設されている。酸素濃度センサ67は、所謂「濃淡電池式(起電力式)酸素濃度センサ」である。図3に示したように、酸素濃度センサ67は、上流側触媒53から流出するガスの空燃比が理論空燃比よりもリッチ及びリーンのとき略0.9(V)(最大値)及び略0.1(V)(最小値)の電圧をそれぞれ出力し、上流側触媒53から流出するガスの空燃比が理論空燃比であるときは0.5(V)の電圧を出力するようになっている。
アクセル開度センサ68は、運転者によって操作されるアクセルペダル81の操作量を検出し、アクセルペダル81の操作量Accpを表す信号を出力するようになっている。
電気制御装置70は、互いにバスで接続されたCPU71、CPU71が実行するルーチン(プログラム)、テーブル(ルックアップテーブル、マップ)、及び定数等を予め記憶したROM72、CPU71が必要に応じてデータを一時的に格納するRAM73、電源が投入された状態でデータを格納するとともに格納したデータを電源が遮断されている間も保持するバックアップRAM74、並びにADコンバータを含むインターフェース75等からなるマイクロコンピュータである。インターフェース75は、前記センサ61〜68と接続され、CPU71にセンサ61〜68からの信号を供給するとともに、CPU71の指示に応じて可変吸気タイミング装置33のアクチュエータ33a、イグナイタ38、インジェクタ39、及びスロットル弁アクチュエータ43aに駆動信号を送出するようになっている。
(空燃比フィードバック制御の概要)
次に、上記のように構成された空燃比制御装置が行う空燃比のフィードバック制御の概要について説明する。
この空燃比制御装置(以下、「本装置」と称呼する。)は、後に詳述するように、酸素濃度センサ67の出力値Voxsと下流側目標値Voxsrefとの偏差を比例・積分・微分処理(PID処理)して下流側フィードバック補正値Vafsfbを求める。そして、下流側フィードバック補正値Vafsfbを空燃比センサ66の出力値Vabyfsに加えて空燃比センサ66の出力値Vabyfsを補正し、この補正した値に対応する空燃比(以下、「制御用空燃比」と称呼する。)が目標空燃比(原則的には、理論空燃比AFstoich)と一致するように空燃比をフィードバック制御する。
より具体的に述べると、本装置は、機能ブロック図である図4に示したように、A1〜A11の各機能ブロックを含んで構成されている。以下、図4を参照しながら各機能ブロックについて説明していく。
<基本燃料噴射量の算出>
先ず、筒内吸入空気量算出手段A1は、エアフローメータ61が計測している吸入空気流量Gaと、クランクポジションセンサ64の出力に基づいて得られる運転速度NEと、ROM72が記憶しているテーブルMapMcとに基づき、吸気行程を迎える気筒の今回の吸入空気量である筒内吸入空気量Mcを求める。
上流側目標空燃比設定手段A2は、内燃機関10の運転状態に基づいて上流側目標空燃比abyfrを決定する。この上流側目標空燃比abyfrは、原則的には、理論空燃比AFstoichに設定されている。一方、後述するフューエルカット制御(以下、「FC制御」と称呼することもある。)が実行された場合には、FC制御からの復帰時点から所定期間に亘って、上流側目標空燃比abyfrが理論空燃比AFstoichよりもリッチな空燃比AFrich(本例では一定)に設定される。以下、この空燃比AFrichに基づく空燃比制御を「FC後リッチ制御」とも称呼する。
また、上流側触媒53の最大酸素吸蔵量Cmaxを取得する場合、上流側触媒53上流の空燃比を理論空燃比からリッチ側、及びリーン側に交互に変動させるように、上流側目標空燃比abyfrが設定・変更される(所謂、アクティブ空燃比制御)。なお、アクティブ空燃比制御については、例えば、特開平5−133264号公報等に記載されているので、ここではその詳細な説明を省略する。なお、最大酸素吸蔵量Cmaxは、取得される毎にバックアップRAM74に記憶・更新されるようになっており、各種パラメータの算出等に用いられる際にはバックアップRAM74から読み出されるようになっている。
基本燃料噴射量算出手段A3は、筒内吸入空気量算出手段A1により求められた筒内吸入空気量Mcを上流側目標空燃比設定手段A2により設定された上流側目標空燃比abyfrで除することにより、空燃比を上流側目標空燃比abyfrとするための今回の吸気行程に対する基本燃料噴射量Fbaseを求める。
本例では、FC制御は、アクセルペダル81の操作量Accpがゼロである等の所定の運転条件が成立した場合に実行されるようになっている。FC制御実行条件が成立した場合には、基本燃料噴射量Fbaseはゼロに設定されるとともに、空燃比フィードバック制御の実行が禁止される。
<燃料噴射量の算出>
燃料噴射量算出手段A4は、基本燃料噴射量算出手段A3により求められた基本燃料噴射量Fbaseに、後述する上流側フィードバック補正値DFiを加えることで、下記(1)式に基づいて燃料噴射量Fiを求める。
Fi=Fbase+DFi ・・・(1)
このようにして、本装置は、燃料噴射量算出手段A4により、基本燃料噴射量Fbaseを上流側フィードバック補正値DFiに基づいて補正することにより得られる燃料噴射量Fiの燃料の噴射指示を今回の吸気行程を迎える気筒についてのインジェクタ39に対して行う。
<下流側フィードバック補正値の算出>
先ず、下流側目標値設定手段A5は、上述した上流側目標空燃比設定手段A2と同様、内燃機関10の運転状態に基づいて下流側目標値Voxsrefを決定する。この下流側目標値Voxsrefは、本例では、下流側目標値Voxsrefに対応する空燃比が上述した上流側目標空燃比abyfrと常時一致するように設定される。即ち、下流側目標値Voxsrefは、原則的には、理論空燃比AFstoichに相当する値(=0.5(V))に設定される。一方、上記FC後リッチ制御が実行される場合には、上記理論空燃比AFstoichよりもリッチな空燃比AFrichに相当する値(>0.5(V))に設定される。
出力偏差量算出手段A6は、下記(2)式に基づいて、下流側目標値設定手段A5により設定されている現時点(具体的には、今回のFiの噴射指示開始時点)での下流側目標値Voxsrefから現時点での酸素濃度センサ67の出力値Voxsを減じることにより、出力偏差量DVoxsを更新する。この出力偏差量DVoxsは前記相違起因値に対応する。
DVoxs=Voxsref−Voxs ・・・(2)
下流側フィードバック補正値算出手段A7は、出力偏差量DVoxsを比例・積分・微分処理(PID処理)することで、下記(3)式に基づいて下流側フィードバック補正値Vafsfbを求める。この下流側フィードバック補正値Vafsfbは、後述する上流側フィードバック補正値DFiを算出するのに用いられる。
Vafsfb=Kp・DVoxs+Ki・SDVoxs+Kd・DDVoxs ・・・(3)
上記(3)式において、Kpは予め設定された比例ゲイン(比例定数)、Kiは予め設定された積分ゲイン(積分定数)、Kdは予め設定された微分ゲイン(微分定数)である。本例では、これらのゲインは一定である。この値「Ki・SDVoxs」が前記積分項に対応する。
また、DDVoxsは出力偏差量DVoxsの時間微分値であり、今回更新された出力偏差量DVoxsと前回更新されていた出力偏差量DVoxsとの偏差を更新間隔に対応する時間で除することで更新される。また、SDVoxsは出力偏差量DVoxsの時間積分値であり、この時間積分値SDVoxsは下記(4)式に基づいて更新される。
SDVoxs=SDVoxs+K・DVoxs ・・・(4)
上記(4)式において、Kは調整値であり、後述するように設定・変更される値である。即ち、時間積分値SDVoxsの1回あたりの更新量は、出力偏差量DVoxsに調整値Kを乗じた値K・DVoxsである。調整値Kが設定・変更されることにより、上記1回あたりの更新量K・DVoxsも設定・変更されるようになっている。また、時間積分値SDVoxsは、更新される毎にバックアップRAM74に逐次記憶されていくようになっている。そして、記憶されている時間積分値SDVoxsの最新値が利用されて、下流側フィードバック補正値Vafsfbが更新される。
<上流側フィードバック補正値の算出>
制御用空燃比相当出力値算出手段A8は、空燃比センサ66の出力値Vabyfsに、下流側フィードバック補正値算出手段A7により求められた下流側フィードバック補正値Vafsfbを加えることで、制御用空燃比相当出力値(Vabyfs+Vafsfb)を求める。
テーブル変換手段A9は、制御用空燃比相当出力値算出手段A8により算出された制御用空燃比相当出力値(Vabyfs+Vafsfb)と、先に説明した図2にグラフにより示した空燃比センサ66の出力値Vabyfsと空燃比A/Fとの関係を規定したテーブルMapabyfsとに基づいて、制御用空燃比abyfsを求める(図2の実線を参照)。このように、制御用空燃比abyfsは、空燃比センサ66の出力値Vabyfsに対応する空燃比(検出空燃比)に対して下流側フィードバック補正値Vafsfbに相当する分だけ異なる空燃比(見かけ上の空燃比)である。
空燃比偏差算出手段A10は、下記(5)式に基づいて、テーブル変換手段A9により求められた制御用空燃比abyfsから上記上流側目標空燃比abyfrを減じることにより、空燃比偏差DAFを求める。この空燃比偏差DAFは、燃料供給量の過不足分を表す量となる。
DAF=abyfs−abyfr ・・・(5)
上流側フィードバック補正値算出手段A11は、空燃比偏差算出手段A10により算出された空燃比偏差DAFを比例・積分処理(PI処理)することで、下記(6)式に基づいて燃料供給量の過不足を補償するための上流側フィードバック補正値DFiを求める。
DFi=Gp・DAF+Gi・SDAF ・・・(6)
上記(6)式において、Gpは予め設定された比例ゲイン(比例定数)、Giは予め設定された積分ゲイン(積分定数)である。SDAFは空燃比偏差DAFの時間積分値である。係る上流側フィードバック補正値DFiは、先に述べたように燃料噴射量算出手段A4により燃料噴射量Fiを求める際に使用される。
このように、本装置は、上流側目標空燃比abyfrと制御用空燃比abyfsとが一致するように空燃比センサ66の出力値Vabyfsに基づいて空燃比をフィードバック制御する。加えて、制御用空燃比abyfsは、上述したように空燃比センサ66による検出空燃比に対して、下流側フィードバック補正値Vafsfbに相当する分だけ異なる空燃比であるから、酸素濃度センサ67の出力値Voxsの下流側目標値Voxsrefからの出力偏差量DVoxsにも応じて変化する。
例えば、酸素濃度センサ67の出力値Voxsがリッチを示す値(略0.9(V)(最大値))に維持されているときには、上記出力偏差量DVoxs(=Voxsref-Voxs)は負の値となる。このため、下流側フィードバック補正値Vafsfbも負の値となり、制御用空燃比が目標空燃比よりリッチ方向へ偏移した空燃比となり、空燃比偏差DAFが負の値となる。従って、上流側フィードバック補正値DFiが負の値となる。これにより燃料噴射量Fiは基本燃料噴射量Fbaseよりも小さくなるようにフィードバック制御される。
一方、酸素濃度センサ67の出力値Voxsがリーンを示す値(略0.1(V)(最小値))に維持されているときには、上記出力偏差量DVoxs(=Voxsref-Voxs)は正の値となる。このため、下流側フィードバック補正値Vafsfbも正の値となり、制御用空燃比が目標空燃比よりリーン方向へ偏移した空燃比となり、空燃比偏差DAFが正の値となる。従って、上流側フィードバック補正値DFiが正の値となる。これにより燃料噴射量Fiは基本燃料噴射量Fbaseよりも大きくなるようにフィードバック制御される。
(時間積分値の収束値からの偏移が大きい場合の対処)
ところで、限界電流式の酸素濃度センサである空燃比センサ66は、個体誤差、経年変化等により理論空燃比AFstoichに対応する出力値が正常値(本例では、図2における値Vstoich)から偏移し易い特性を有する。この例では、空燃比センサ66の出力値Vabyfsが、図2に破線にて示したように、空燃比全域に亘って正常値から値dVだけ大きめに偏移している。この結果、理論空燃比AFstoichに対応する出力値が正常値Vstoichから値dVだけ大きい値(Vstoich+dV)になっているものとする。即ち、実際の空燃比は、空燃比センサ66の検出空燃比よりも値dVに相当する分だけリッチ側に偏移しているものとする。
上述した本装置によるフィードバック制御が実行されると、係る空燃比センサ66の誤差は上記下流側フィードバック補正値Vafsfbの積分項Ki・SDVoxsにより補償される。即ち、定常運転状態では、積分項Ki・SDVoxsが上記値dV(の負の値)と等しい値に収束することで、制御用空燃比abyfsが実際の空燃比と一致し、この結果、上流側触媒53の上下流の空燃比が目標空燃比に維持され得る。換言すれば、時間積分値SDVoxsが上記値dVに対応する収束値SDVoxs1に収束することで、空燃比センサ66の誤差が補償され得る。
本例では、上述したように時間積分値SDVoxsが更新毎にバックアップRAM74に記憶されるようになっている。バックアップRAM74には、内燃機関10が運転されていない状態(エンジンキーoff時)であっても、時間積分値SDVoxsが記憶・保存され得る。これにより、例えば、内燃機関10の始動時において、バックアップRAM74に記憶されていた時間積分値SDVoxsが読み出され、読み出された時間積分値SDVoxsに基づいて上記積分項Ki・SDVoxsが算出される。従って、内燃機関10が始動した場合には、新たに時間積分値SDVoxsが収束する時間を待たずに、空燃比センサ66の誤差が直ちに補償され得るようになっている。
この時間積分値SDVoxsは、例えば、車両のバッテリ交換時等においてゼロにリセットされる。この場合、内燃機関10の始動後において、上述したフィードバック制御が開始されることで、時間積分値SDVoxsがゼロから収束値SDVoxs1に近づいていく(即ち、積分項Ki・SDVoxsもゼロから上記値dVと等しい値に向かって近づいていく。)。即ち、上述のようにバッテリ交換等により時間積分値SDVoxsがリセットされることで、時間積分値SDVoxsが収束値SDVoxs1から大きく偏移するという事態が発生し得る。
本装置は、このように時間積分値SDVoxsの収束値SDVoxs1からの偏移が大きいと判定された場合、時間積分値SDVoxsが迅速且つ精度よく収束値SDVoxs1に収束するように、時間積分値SDVoxsの変化速度を設定・変更していく。以下、時間積分値SDVoxsの収束値SDVoxs1からの偏移が大きい場合の対処について詳述していく。
図5は、バッテリ交換がなされて内燃機関10が始動された場合における、フィードバック制御開始以降の各種変数の変化の一例を示したタイムチャートである。この各種変数は、上流側触媒53に流入するガスの空燃比A/F、上流側触媒53の酸素吸蔵量OSA、酸素濃度センサ67の出力値Voxs、及び時間積分値SDVoxsである。なお、図5において、実線は上流側触媒53の最大酸素吸蔵量Cmaxが値Cmax1である場合の上記各種変数の変化を示し、破線は最大酸素吸蔵量Cmaxが値Cmax1よりも小さい値Cmax2である場合のものを示している。
先ず、図5の実線について説明する。本例では、上述したように所定の条件が成立した場合、FC制御が実行される。いま、時刻tAにてFC制御が実行開始され、時刻tBにてFC制御から復帰するものとする。なお、FC制御中は空燃比フィードバック制御(以下、「FB制御」とも称呼する。)の実行が禁止(Off)される。
FC制御からの復帰時点tBにおいては、酸素吸蔵量OSAは最大酸素吸蔵量Cmaxに達している場合が多く、この場合、上流側触媒53に流入するNOxが適切に浄化され難い。NOxを適切に浄化する観点から、FC制御からの復帰後、酸素吸蔵量OSAをある程度まで減少させることが好ましい。従って、本例では、上記FC後リッチ制御が実行される。
FC後リッチ制御は、上流側目標空燃比abyfrが上記リッチな空燃比AFrich(一定)に設定され、下流側目標値Voxsrefが空燃比AFrichに相当する値(>0.5(V))に設定されて、FB制御が実行されることで達成されるようになっている。そして、酸素吸蔵量OSAが最大酸素吸蔵量Cmaxから、最大酸素吸蔵量Cmaxの半分よりも小さい所定の量(具体的には、最大酸素吸蔵量Cmaxに比例する量)に達するように、FC後リッチ制御の実行期間(燃料噴射回数)が調整される。このFC後リッチ制御の実行期間(燃料噴射回数)は、最大酸素吸蔵量Cmaxが大きいほどより大きくなる。本例では、上記時刻tBにて開始されたFC後リッチ制御は、時刻tCにて終了するものとする。
このFC後リッチ制御では、FC後リッチ制御の実行中にて酸素吸蔵量OSAが上記「最大酸素吸蔵量Cmaxの半分よりも小さい所定の量」に達する前に、上流側触媒53からHCが流出する場合が多い。即ち、時刻tCよりも前の時刻tDにて、上記HCの流出が発生して、FC制御によりリーンを示す値に維持されていた酸素濃度センサ67の出力値Voxsが反転してリッチを示す値となる。
他方、時刻tBから、時間積分値SDVoxsの更新が回数Lに亘って禁止(Off)される。以下、この回数Lを、「更新禁止回数L」と称呼する。本例では、この更新禁止回数Lは、FC後リッチ制御の実行期間に対応する燃料噴射回数よりも大きい値に設定される。即ち、時間積分値SDVoxsの更新が禁止される期間の終期tEは、時刻tCよりも後に到来するようになっている。このため、時間積分値SDVoxsは、期間tA〜tEに亘って一定の値に維持される。
時刻tEにて、時間積分値SDVoxsの更新が許可(On)される。また、時刻tEでは、時刻tDにて反転した酸素濃度センサ67の出力値Voxsがリッチを示す値に維持されている。これらのことから、時刻tE以降、時間積分値SDVoxsの1回あたりの更新量K・DVoxs(=K・(Voxsref−Voxs))が負の値となり、時間積分値SDVoxsが減少していく。即ち、時間積分値SDVoxsは、FC後リッチ制御により上記収束値SDVoxs1から燃料噴射量Fiが減少する方向へ偏移していく(時間積分値SDVoxsがリーンずれしていく)。
ここで、最大酸素吸蔵量Cmaxが異なる場合における時間積分値SDVoxsの変化について説明する。最大酸素吸蔵量Cmaxが比較的大きい上記値Cmax1である場合(図5の実線を参照)、酸素濃度センサ67の出力値Voxsが、FC後リッチ制御中に反転した時点(時刻tDを参照)以降リッチを示す値に維持される期間が長い。従って、この場合、酸素濃度センサ67の出力値Voxsが再びリーンを示す値に反転する前に、再びFC制御が実行開始される場合が多い(時刻tFを参照)。このため、時間積分値SDVoxsのリーンずれの程度は平均的に大きい。
一方、最大酸素吸蔵量Cmaxが上記値Cmax1よりも小さい上記値Cmax2である場合(図5の破線を参照)、酸素濃度センサ67の出力値Voxsが、FC後リッチ制御中に反転した時点以降リッチを示す値に維持される期間が短い。従って、この場合、再びFC制御が実行される前に、酸素濃度センサ67の出力値Voxsが再びリーンを示す値に反転する場合が多い(時刻tGを参照)。時刻tG以降、上記時刻tFまでの短い期間にて、時間積分値SDVoxsは増大し得る。このため、最大酸素吸蔵量Cmaxが上記値Cmax1である場合に比して、時間積分値SDVoxsのリーンずれの程度は平均的に小さい。
このように、時間積分値SDVoxsが収束値SDVoxs1に近づいていく際、FC制御、及びFC後リッチ制御が実行される場合、これらが外乱となり得る。この外乱に起因して、時間積分値SDVoxsの収束値SDVoxs1からのリーンずれが発生する。また、このリーンずれの程度は、上流側触媒53の最大酸素吸蔵量Cmaxが大きいほどより大きくなる。
図6は、バッテリ交換がなされて内燃機関10が時刻t0にて始動された場合において、本装置による制御が実行された場合における、時間積分値SDVoxsの変化の一例を示したタイムチャートである。この場合、バッテリ交換がなされたため、時刻t0における時間積分値SDVoxsはゼロである。
上述のように、外乱としてのFC制御、及びFC後リッチ制御が実行される場合であっても時間積分値SDVoxsを収束値SDVoxs1に迅速かつ精度よく近づけるために、本装置は、以下に説明する制御を実行する。時刻t0以降の時刻であってFB制御開始条件が成立する時刻t1以降、本装置は、3つの段階(step)に分けて、時間積分値SDVoxsの変化速度を大、中、小程度の値にそれぞれ設定(変更)する。また、本装置は、後述するように、時間積分値SDVoxsの1回あたりの更新量(=K・DVoxs)、及びFC制御からの復帰時点から時間積分値SDVoxsの更新禁止回数Lを調整することで、時間積分値SDVoxsの変化速度を調整する。
(実際の作動)
以下、本装置の実際の作動について、図7〜図9及び図12に示したフローチャート、及び図6に示したタイムチャートを参照しながら説明していく。
以下、説明の便宜上、「MapX(a1,a2,…)」は、a1,a2,…を引数とする値Xを求めるためのテーブルを表すものとする。また、引数の値がセンサの検出値である場合、現在値が使用される。また、「stepN」は、stepをN(N=1,2,3)に設定した状態のstepを表すものとする。
<下流側フィードバック補正値Vafsfbの計算>
CPU71は、図7にフローチャートにより示した下流側フィードバック補正値Vafsfbの計算を行うルーチンを、内燃機関10の始動時点以降、吸気行程を迎える気筒について燃料噴射開始時点が到来する毎に、繰り返し実行するようになっている。
従って、内燃機関10の始動時点以降、吸気行程を迎える気筒について燃料噴射開始時点が到来すると、CPU71はステップ700から処理を開始してステップ705に進み、FB制御が許可(On)されているか否かを判定する。本例では、FB制御条件は、冷却水温THWが所定温度以上であり、且つ、空燃比センサ66及び酸素濃度センサ67が正常であるときに成立する。また、FC制御が実行されている期間に亘ってもFB制御が禁止(Off)される。
いま、内燃機関10の始動直後(図6の時刻t0を参照)であって、事前に車両に搭載されたバッテリが交換されたものとする。この場合、CPU71はステップ705にて「No」と判定した後、直ちにステップ795に進んで本ルーチンを一旦終了する。以降、CPU71はステップ705の条件が成立するまで、ステップ705の処理を繰り返し実行する。
<setpの設定>
次に、stepを設定する際の作動を説明すると、CPU71は図8にフローチャートにより示したルーチンを、内燃機関10の始動時点以降、吸気行程を迎える気筒について燃料噴射開始時点が到来する毎に、繰り返し実行するようになっている。
従って、内燃機関10の始動時点以降、吸気行程を迎える気筒について燃料噴射開始時点が到来すると、CPU71はステップ800から処理を開始し、ステップ805に進んで内燃機関10が始動直後であるか否かを判定する。
現時点は内燃機関10の始動直後(図6の時刻t0を参照)であるため、CPU71はステップ805にて「Yes」と判定してステップ810に進んでバッテリ交換がなされたか否かを判定する。本例では、事前にバッテリが交換されているため、CPU71はステップ810にて「Yes」と判定してステップ815に進んでstepを「1」に設定・更新し、続くステップ820に進んでカウンタIをクリアする。stepは、更新される毎にバックアップRAM74に記憶・更新されるようになっている。なお、バッテリ交換がされていないと判定された場合、CPU71はステップ810にて「No」と判定してステップ825に進み、バックアップRAM74に記憶されているstepを読み出すようになっている。
次に、CPU71はステップ830に進んで、FB制御が許可されており、且つ、時間積分値SDVoxsの更新が許可されているか否かを判定する。現時点は、内燃機関10の始動直後であるので、FB制御が禁止されている。従って、CPU71はステップ830にて「No」と判定して直ちにステップ895に進んで本ルーチンを一旦終了する。以降、CPU71はステップ805にて「No」と判定するようになり、ステップ830の条件が成立するまで、ステップ805,830の処理を繰り返し実行する。
<調整値K、及び更新禁止回数Lの設定>
次に、調整値K、及び更新禁止回数Lを設定する際の作動を説明すると、CPU71は図9にフローチャートにより示したルーチンを、内燃機関10の始動時点以降、吸気行程を迎える気筒について燃料噴射開始時点が到来する毎に、繰り返し実行するようになっている。
従って、内燃機関10の始動時点以降、吸気行程を迎える気筒について燃料噴射開始時点が到来すると、CPU71はステップ900から処理を開始し、ステップ905に進んでstepが更新されたか否かを判定する。現時点は上述した図8のステップ815にてstepが「1」に設定・更新された直後である。従って、CPU71はステップ905にて「Yes」と判定してステップ910に進み、調整値KをテーブルMapK(Cmax,step)に基づいて決定する。
図10は、上流側触媒53の最大酸素吸蔵量Cmax及びstepと、調整値Kとの関係を規定したテーブルMapK(Cmax,step)を示している。最大酸素吸蔵量Cmaxが一定の場合において、step1での調整値Kがstep2のものよりも大きく、且つ、step2での調整値Kがstep3のものよりも大きくなるように、調整値Kが決定される。現時点では、stepが「1」に設定されているため、調整値Kは大きい値に設定される。ここで設定される調整値Kは前記第1値に対応する。
また、テーブルMapK(Cmax,step)によれば、何れのstepにおける調整値Kは、最大酸素吸蔵量Cmaxが大きいほどより小さい値となるように決定される。これは、最大酸素吸蔵量Cmaxが大きいほど時間積分値SDVoxsの変化速度をより小さく設定して、時間積分値SDVoxsのリーンずれの程度が大きくなることを抑制するためである。
次に、CPU71はステップ915に進んでFC制御が終了した直後か否かを判定する。ステップ915にて「No」と判定される場合、CPU71はステップ995に直ちに進んで本ルーチンを一旦終了する。一方、ステップ915にて「Yes」と判定される場合には、CPU71はステップ920に進んで、更新禁止回数LをテーブルMapL(Cmax,step)に基づいて決定した後、ステップ995に進んで本ルーチンを一旦終了する。
図11は、上流側触媒53の最大酸素吸蔵量Cmax及びstepと、更新禁止回数Lとの関係を規定したテーブルMapL(Cmax,step)を示している。最大酸素吸蔵量Cmaxが一定の場合において、step1での更新禁止回数Lがstep2のものよりも小さく、且つ、step2での更新禁止回数Lがstep3のものよりも小さくなるように、更新禁止回数Lが設定される。ここで設定される更新禁止回数Lに相当する期間が前記第1期間に対応する。
また、テーブルMapL(Cmax,step)によれば、何れのstepにおける更新禁止回数Lは、最大酸素吸蔵量Cmaxが大きいほどより大きい値となるように決定される。これは、最大酸素吸蔵量Cmaxが大きいほどFCリッチ制御の実行期間が長くなること、及び更新禁止回数LがFCリッチ制御の実行期間に対応する燃料噴射回数よりも大きい回数に設定されることに基づく。また、テーブルMapL(Cmax,step)は、step1,2,3における最大酸素吸蔵量Cmaxの増大に対する更新禁止回数Lの増大度合いが、大、中、小の関係となるようになっている。
以降、CPU71はステップ905にて「No」と判定するようになり、ステップ905の条件が成立するまで、ステップ905,915の処理を繰り返し実行する。また、FC制御の終了直後が到来する毎に、更新禁止回数Lが設定される。これらの図8、図9のルーチンが前記変化速度変更手段の一部に対応する。
図6の時刻t0以降、FB制御が禁止(Off)されるため、時間積分値SDVoxsがゼロに維持される。そして、時刻t1にてFB制御条件が成立し、フィードバック制御が許可(On)される。
時刻t1になると、図7のルーチンを繰り返し実行しているCPU71はステップ705に進んだとき「Yes」と判定してステップ710に進むようになり、上記式(2)に基づいて出力偏差量DVoxs、及び時間微分値DDVoxsを更新する。なお、時間微分値DDVoxsは、前回の本ルーチン実行時にて更新されていた出力偏差量DVoxsと、今回の出力偏差量DVoxsとの偏差を、本ルーチンの実行間隔に対応する時間で除したものである。
次に、CPU71はステップ715に進んで、時間積分値SDVoxsの更新が許可(On)されているか否かを判定する。本例では、上述したようにFC制御終了直後から更新禁止回数Lだけ時間積分値SDVoxsの更新が禁止される。ステップ715にて「Yes」と判定される場合、CPU71はステップ720に進み上記式(4)に基づいて時間積分値SDVoxsを更新して、続くステップ725にて上記式(3)、上述のように更新された出力偏差量DVoxs、時間微分値DDVoxs、及び時間積分値SDVoxsに基づいて下流側フィードバック補正値Vafsfbが計算した後、ステップ795に進み本ルーチンを一旦終了する。このステップ725が前記積分項更新手段の一部に対応する。
一方、ステップ715にて「No」と判定される場合、CPU71はステップ725に直ちに進んで時間積分値SDVoxsを更新することなく下流側フィードバック補正値Vafsfbを計算した後、ステップ795に進み本ルーチンを一旦終了する。以降、CPU71はステップ705,710,715,720,725の処理を繰り返し実行するようになる。
また、時刻t1になると、図8のルーチンを繰り返し実行しているCPU71はステップ830に進んだとき、時間積分値SDVoxsの更新が許可されている場合に「Yes」と判定してステップ835に進むようになり、設定されているstepが「1」であるか否かを判定する。現時点では、stepが「1」に設定されているため(ステップ815を参照)、CPU71はステップ835にて「Yes」と判定してステップ840に進んでカウンタIがstep1更新回数目標値Iref(本例では一定値)より小さいか否かを判定する。
現時点では、カウンタIはゼロに維持されている(ステップ820を参照)。従って、CPU71はステップ840にて「Yes」と判定してステップ845に進み、カウンタIをインクリメントした後、ステップ895に進んで本ルーチンを一旦終了する。以降、CPU71はステップ805,830,835,840,845の処理を繰り返し実行するようになる。これにより、カウンタIがインクリメントされていく。
図6の時刻t1以降、step1であるため、調整値Kが大きい値に設定されている(図9のステップ910、及び図10を参照)。これにより、時間積分値SDVoxsの1回あたりの更新量K・DVoxs(の絶対値)が大きい値に設定される。また、FC制御の終了直後毎に、更新禁止回数Lが小さい値に設定される(図9のステップ920、及び図11を参照)。これにより、FC制御が実行される場合、FC制御から復帰した後時間積分値SDVoxsが小さい期間に亘って一定値に維持される。
以上のことから、時刻t1以降、時間積分値SDVoxsは、ゼロから大きい変化速度をもって収束値SDVoxs1に収束していく。この時間積分値SDVoxsの変化速度が前記第1速度に対応する。一方、変化速度が大きいため、FC制御、及びFC後リッチ制御が実行されて、時間積分値SDVoxsが収束値SDVoxs1からリーン方向へ偏移する。即ち、時間積分値SDVoxsの変化速度が大きいため、時間積分値SDVoxsが収束値SDVoxs1に迅速に近づき得るものの、外乱の発生により時間積分値SDVoxsのリーンずれの程度が大きくなる。
図8のルーチンにてインクリメントされるカウンタI(ステップ845を参照)が、上記step1更新回数目標値Irefに達する時刻t2が到来すると、図8のルーチンを繰り返し実行しているCPU71はステップ840に進んだとき「No」と判定してステップ850に進んで、「1」であったstepを「2」に変更・更新する。即ち、カウンタIが上記step1更新回数目標値Irefに達するという条件が前記第1の条件に対応する。
これ以降、CPU71はステップ835に進んだとき「No」と判定してステップ855に進み、設定されているstepが「2」であるか否かを判定する。現時点では、stepが「2」に設定されているので、CPU71はステップ855にて「Yes」と判定してステップ860に進み、所定期間における時間積分値SDVoxsの変動幅ΔSDVoxsが所定変動幅Zよりも大きいか否かを判定するようになる。即ち、CPU71はステップ805,830,835,855,860の処理を繰り返し実行するようになる。
また、時刻t2になると、図9のルーチンを繰り返し実行しているCPU71はステップ905に進んだとき、上述した図8のステップ850にてstepが「2」に設定・更新されているので、「Yes」と判定してステップ910に進み、調整値KをテーブルMapK(Cmax,step)に基づいて決定する。これにより、調整値Kが中程度の値に設定・変更される(図10を参照)。ここで設定される調整値Kは前記第2値に対応する。
また、時刻t2以降、FC制御の終了直後となる毎に、ステップ920にてテーブルMapL(Cmax,step)に基づいて更新禁止回数Lが設定される。この場合、更新禁止回数Lが中程度の値に設定・変更される(図11を参照)。ここで設定される更新禁止回数Lに相当する期間が前記第2期間に対応する。
図6の時刻t2以降、step2であるため、大きい値に設定されていた調整値Kが中程度の値に設定・変更されて、時間積分値SDVoxsの1回あたりの更新量K・DVoxs(の絶対値)も中程度の値に設定される。また、FC制御の終了直後毎に、更新禁止回数Lが中程度の値に設定される。
以上のことから、時刻t2以降、時間積分値SDVoxsは、ある程度収束値SDVoxs1に近い値から中程度の変化速度をもって収束値SDVoxs1に収束していく。この時間積分値SDVoxsの変化速度が前記第2速度に対応する。変化速度が中程度であるため、外乱の発生による時間積分値SDVoxsのリーンずれの程度を抑制しつつ、時間積分値SDVoxsを、更に収束値SDVoxs1に近づけることができる。
図8のルーチンにて上記変動幅ΔSDVoxsが所定変動幅Z以下となる時刻t3が到来すると、図8のルーチンを繰り返し実行しているCPU71はステップ860に進んだとき「No」と判定してステップ865に進んで、「2」であったstepを「3」に変更・更新する。即ち、上記変動幅ΔSDVoxsが所定変動幅Z以下となるという条件が前記第2の条件に対応する。
これ以降、CPU71はステップ855に進んだとき「No」と判定してステップ870に進み、所定期間における時間積分値SDVoxsの変動幅ΔSDVoxsが所定変動幅Z以下であるか否かを判定するようになる。即ち、CPU71はステップ805,830,835,855,870の処理を繰り返し実行するようになる。
また、時刻t3になると、図9のルーチンを繰り返し実行しているCPU71はステップ905に進んだとき、上述した図8のステップ850にてstepが「3」に設定・更新されているので、「Yes」と判定してステップ910に進み、調整値KをテーブルMapK(Cmax,step)に基づいて決定する。これにより、調整値Kが小さい値に設定・変更される(図10を参照)。ここで設定される調整値Kは前記第3値に対応する。
また、時刻t3以降、FC制御の終了直後となる毎に、ステップ920にてテーブルMapL(Cmax,step)に基づいて更新禁止回数Lが設定される。この場合、更新禁止回数Lが大きい値に設定・変更される(図11を参照)。ここで設定される更新禁止回数Lに相当する期間が前記第3期間に対応する。
図6の時刻t3以降、step3であるため、中程度の値に設定されていた調整値Kが小さい値に設定・変更されて、時間積分値SDVoxsの1回あたりの更新量K・DVoxs(の絶対値)も小さい値に設定される。また、FC制御の終了直後毎に、更新禁止回数Lが大きい値に設定される。
以上のことから、時刻t3以降、収束値SDVoxs1に十分に近づいている時間積分値SDVoxsの変化速度が小さいため、時間積分値SDVoxsは外乱が発生しても収束値SDVoxs1近傍の値に安定して推移し得る。この時間積分値SDVoxsの変化速度が前記第3速度に対応する。なお、時刻t3以降、時間積分値SDVoxsの変動幅ΔSDVoxsが所定変動幅Zよりも大きくなる事態が発生した場合、図8のルーチンを繰り返し実行しているCPU71はステップ870に進んだとき「No」と判定してステップ875に進んで、「3」に設定されていたstepを「2」に設定・変更する。
<FC後リッチ制御>
次に、上記FC後リッチ制御の実行をする際の作動を説明すると、CPU71は図12にフローチャートにより示したルーチンを、内燃機関10の始動時点以降、吸気行程を迎える気筒について燃料噴射開始時点が到来する毎に、繰り返し実行するようになっている。
従って、内燃機関10の始動時点以降、吸気行程を迎える気筒について燃料噴射開始時点が到来すると、CPU71はステップ1200から処理を開始し、ステップ1205に進んで現時点がFC制御の終了直後か否かを判定する。いま、現時点がFC制御の終了直後であるものとすると、CPU71はステップ1205にて「Yes」と判定してステップ1210に進み、FC後リッチ制御を開始する。即ち、空燃比が理論空燃比AFstoichよりもリッチな上記空燃比AFrichとなるように、上流側目標空燃比abyfrが上記空燃比AFrichに設定され、下流側目標値Voxsrefが上記空燃比AFrichに対応する値に設定されてFB制御がなされる。
次に、CPU71はステップ1215に進んで、上流側触媒53の酸素吸蔵量(本ルーチンにおいては推定値)OSAを上流側触媒53の最大酸素吸蔵量Cmaxと等しい値に設定する。次いで、CPU71はステップ1220に進み、現時点にて設定されているstepが「1」又は「2」であるか否かを判定し、「Yes」と判定する場合、酸素吸蔵量目標値OSArefを値Cmax・α1に設定する。一方、「No」と判定する場合(即ち、step3である場合)、酸素吸蔵量目標値OSArefを値Cmax・α2に設定する。ここで、値α1は、ゼロよりも大きく「0.5」よりも小さい値である。また、値α2は、ゼロよりも大きく上記値α1よりも小さい値である。
続いて、CPU71はステップ1235に進んで、FC後リッチ制御中であるか否かを判定する。現時点はFC後リッチ制御が開始された直後なので、CPU71はステップ1235にて「Yes」と判定してステップ1240に進み、酸素吸蔵量減少量ΔO2をステップ1240内に記載の式に従って求める。ここで、値「0.23」は、空気中に含まれる酸素の質量割合である。
ステップ1240内に記載の式において、値「(AFstoich−AFrich1)・Fi」は、燃料噴射間隔当たりにおいて上流側触媒53に流入するガス中の空気の不足量(質量)を表す。従って、値「0.23・(AFstoich−AFrich1)・Fi」(=ΔO2)は、燃料噴射間隔当たりにおいて上流側触媒53に流入するガス中の酸素の不足量(質量)、即ち、FC後リッチ制御実行中の燃料噴射間隔当たりにおける上流側触媒53の酸素吸蔵量の減少分(>0)を表す。
次に、CPU71はステップ1245に進み、その時点における酸素吸蔵量OSA(FC制御の終了直後では、先のステップ1215の処理により最大酸素吸蔵量Cmaxと等しい)から上記ステップ1240にて求めた酸素吸蔵量減少量ΔO2(>0)を減じることで酸素吸蔵量OSAを更新する(減少させる)。
次いで、CPU71はステップ1250に進み、ステップ1245にて更新された酸素吸蔵量OSAが上記ステップ1225、或いはステップ1230にて設定されたで酸素吸蔵量目標値OSAref以下となった否かを判定する。
現時点はFC制御の終了直後であるから、酸素吸蔵量OSAは酸素吸蔵量目標値OSArefまで減少していない。従って、CPU71はステップ1250にて「No」と判定してステップ1295に直ちに進む。以降、CPU71はステップ1205にて「No」と判定するようになり、ステップ1205,1235,1240,1245,1250の処理を繰り返し実行する。これにより、最大酸素吸蔵量Cmaxと等しい値に設定されていた酸素吸蔵量OSAが減少していく。
減少していく酸素吸蔵量OSAが酸素吸蔵量目標値OSArefに達すると、図12のルーチンを繰り返し実行しているCPU71はステップ1250に進んだとき「No」と判定してステップ1255に進んで、FCリッチ制御を終了する。これ以降、CPU71はステップ1205,1235に進んだとき共に「No」と判定してステップ1295に直ちに進んで本ルーチンを一旦終了する。この結果、空燃比が理論空燃比AFstoichと一致するように、上流側目標空燃比abyfrが理論空燃比AFstoichに設定され、下流側目標値Voxsrefが理論空燃比AFstoichに相当する値(=0.5(V))に設定されてFB制御されるようになる。
これによれば、step1,2において、step3に比して、FC後リッチ制御による上流側触媒53の(実際の)酸素吸蔵量OSAの減少度合いが小さくされ得る。従って、step1,2において、FC後リッチ制御中に反転する酸素濃度センサ67の出力値Voxsがリッチを示す値に維持される期間が、過度に長くなることが抑制され得る(図5の時刻tDを参照)。この結果、step1,2においては、時間積分値SDVoxsの変化速度が比較的大きいものの、上述した時間積分値SDVoxsのリーンずれの程度が抑制され得る。step3においては、上流側触媒53に流入するNOxをより適切に浄化することができる。
以上説明したように、本発明による内燃機関の空燃比制御装置の第1実施形態によれば、上流側触媒53下流の酸素濃度センサ67の出力値Voxsと目標空燃比に対応する下流側目標値Voxsrefとの差DVoxsに調整値Kが乗じられた値「K・DVoxs」を積算することで時間積分値SDVoxsが更新される。この時間積分値SDVoxs(即ち、下流側フィードバック補正値Vafsfb)に基づいてFB制御が実行される。これにより、空燃比センサ66に誤差が発生する場合、時間積分値SDVoxsがその誤差に相当する収束値SDVoxs1に収束して、誤差が補償され得る。
時間積分値SDVoxsの収束値SDVoxs1からの偏移が大きいと判定される場合、step1,setp2,step3の3段階に分けて時間積分値SDVoxsの変化速度が設定・変更される。step1では、調整値Kの値を大きい値に設定することで、時間積分値SDVoxsの1回あたりの更新量が大きくされる。また、FC制御終了直後から時間積分値SDVoxsの更新を禁止する回数(更新禁止回数L)が小さい値に設定される。これらにより、step1での時間積分値SDVoxsの変化速度が大きい値に設定される。
この結果、外乱としてのFC制御、及びFC後リッチ制御が実行される場合、時間積分値SDVoxsのリーンずれの程度が大きいものの、大きく収束値SDVoxs1から偏移していた時間積分値SDVoxsをある程度収束値SDVoxs1に近い値に迅速に近づけることができる。
step1にて、時間積分値SDVoxsの更新回数が所定回数に達したと判定されると、step2として、調整値Kがstep1のものよりも小さい値に設定・変更されるようになる。また、更新禁止回数Lが、step1のものよりも大きい値に設定・変更されるようになる。これらにより、step2での時間積分値SDVoxsの変化速度が中程度の値に設定される。この結果、時間積分値SDVoxsのリーンずれの程度を抑制しつつ、ある程度収束値SDVoxs1に近い時間積分値SDVoxsを、更に収束値SDVoxs1に近づけることができる。
step2にて、時間積分値SDVoxsの変動幅が小さいと判定されると、step3として、調整値Kがstep2のものよりも小さい値に設定・変更されるようになる。また、更新禁止回数Lが、step2のものよりも大きい値に設定・変更されるようになる。これらにより、step3での時間積分値SDVoxsの変化速度が小さい値に設定される。この結果、時間積分値SDVoxsを、収束値SDVoxs1近傍の値に安定して推移させることができる。
以上のように、時間積分値SDVoxsの変化速度が3段階に分けて設定・変更されることで、外乱が発生する場合であっても、収束値SDVoxs1から大きく偏移していた時間積分値SDVoxsが迅速且つ精度よく収束値SDVoxs1に近づき得る。即ち、上記値dVから大きく偏移していた積分項Ki・SDVoxsが迅速且つ精度よく上記値dVに近づき得る。この結果、空燃比センサ66の誤差を早期に精度よく補償することができる。
(第1実施形態の変形例)
次に、上記第1実施形態の変形例について説明する。上述したように、空燃比センサ66の酸素に対する感度が大きいことに起因して、失火率が増大(又は、減少)した場合、失火率の増大後(減少後)の収束値SDVoxs1は、失火率の増大前(減少前)のものからリーン(リッチ)方向へ偏移する。即ち、失火率が変化することにより時間積分値SDVoxsは、収束値SDVoxs1から大きく偏移し得、この偏移の程度は失火率の変化が大きいほどより大きくなる。なお、この失火率の変化による、時間積分値SDVoxsの収束値SDVoxs1からの偏移の程度は、上述したバッテリ交換に起因するものに比して大きい場合が多い。
このことから、この変形例は、失火率の変化が大きい場合に、時間積分値SDVoxsの収束値SDVoxs1からの偏移が大きいと判定する点についてのみ、上記第1実施形態と異なる。より具体的には、この変形例は、図8に代えて、図8に対応する図13に示したフローチャートを実行する点についてのみ、上記第1実施形態と異なる。以下、上記第1実施形態と異なる点のみについて説明する。
図13のフローチャートは、図8のフローチャートのステップ805〜825が削除され、新たにステップ1305〜1320が追加された点においてのみ図8のものと異なる。なお、図13において、図8のステップと同じものについては、同一のステップ番号を付して説明を省略する。
本変形例にかかる空燃比制御装置の実際の作動について説明する。CPU71がステップ830にて「Yes」と判定した場合、ステップ1305に進んで失火率変化ΔRmisが第1失火率変化ΔRmis1よりも大きいか否かを判定する。ここで、本例では、失火率は、所定回数の燃料噴射がなされた期間内に発生する失火の回数の、上記所定回数に対する割合を意味しており、運転速度NEの変化等に基づいて別途取得される。また、失火率変化ΔRmisは、このように取得される失火率の所定期間における変動幅(絶対値)である。更に、第1失火率変化ΔRmis1は、時間積分値SDVoxsの変化速度が設定され得る最小の値(本例では、step3にて設定される変化速度、上記小さい変化速度。)である場合に、所定期間における空燃比の荒れの程度が適正範囲内となる失火率変化ΔRmisの範囲の最大値である。
CPU71がステップ1305にて「Yes」と判定する場合、時間積分値SDVoxsの収束値SDVoxs1からの偏移が大きいとして、続くステップ1310,1315に順に進んで、stepを「1」に設定・更新してカウンタIをクリアする。次に、CPU71はステップ1320に進んで、テーブルMapIref(ΔRmis)に基づいてstep1更新回数目標値Irefを設定する。
図14は、失火率変化ΔRmisと、step1更新回数目標値Irefとの関係を規定したテーブルMapIref(ΔRmis)を示している。これによれば、失火率変化ΔRmisが、第1失火率変化ΔRmis1よりも大きく、且つ、第2失火率変化ΔRmis2(>ΔRmis1)以下である場合、step1更新回数目標値Irefがゼロに設定される。ここで、第2失火率変化ΔRmis2は、以下の条件を満たす失火率変化ΔRmisの範囲内の最大値である。この条件は、時間積分値SDVoxsの変化速度がstep1にて設定される変化速度(上記大きいの変化速度)と等しい値である場合におけるFC後リッチ制御に起因する上記リーンずれの程度(の絶対値)の最大値が、失火率の変化に起因する時間積分値SDVoxsの収束値SDVoxs1からの偏移の程度(の絶対値)よりも大きい、というものである。
従って、失火率変化ΔRmisが、ΔRmis1<ΔRmis≦ΔRmis2の条件を満たす場合、図13のステップ1320にてstep1更新回数目標値Irefがゼロに設定される。このため、CPU71がステップ840に進んだとき、「No」と判定してステップ850に進みstepを「2」に設定する。この場合、step1が実質的に省略されて、step2から時間積分値SDVoxsを収束値SDVoxs1に近づけるための制御が開始される。これは、失火率変化ΔRmisが、ΔRmis1<ΔRmis≦ΔRmis2の条件を満たす場合には、step1を経るまでもなく、時間積分値SDVoxsが収束値SDVoxs1にある程度近い値に推移している場合が多いことに基づく。この結果、不必要に変化速度を大きい値に設定することが回避され得る。
再び図14を参照すると、失火率変化ΔRmisが、第2失火率変化ΔRmis2よりも大きい場合、step1更新回数目標値Irefが、失火率変化ΔRmisが大きいほどより大きい値に設定される。従って、失火率変化ΔRmisが、第2失火率変化ΔRmis2よりも大きい場合、ステップ840にて、失火率変化ΔRmisの大きさに応じて設定されたstep1更新回数目標値Irefにより判定がなされる。このため、step1の区間(即ち、変化速度が大きい値に設定される機会)も失火率変化ΔRmisが大きいほどより大きくなる。この結果、失火率変化ΔRmisの大きさに依存することなく、時間積分値SDVoxsを収束値SDVoxs1に迅速に近づけることができる。
更に、この変形例では、図9のフローチャートにて設定される調整値K、及び更新禁止回数Lが、stepが「1」に設定・更新された場合にのみ失火率変化ΔRmisにも応じて調整される。より具体的には、stepが「1」に設定・更新された場合、CPU71が図9のステップ910に進んだとき、図15に示した失火率変化ΔRmis及び最大酸素吸蔵量Cmaxと、調整値Kとの関係を規定したテーブルMapK(ΔRmis,Cmax)に基づいて調整値Kを設定する。一方、stepが「2」又は「3」に設定・更新された場合には、図16に示した最大酸素吸蔵量Cmax及び設定されているstepと、調整値Kとの関係を規定したテーブルMapK(Cmax,step)に基づいて調整値Kを設定する。
また、stepが「1」に設定されている場合、CPU71が図9のステップ920に進んだとき、図17に示した失火率変化ΔRmis及び最大酸素吸蔵量Cmaxと、更新禁止回数Lとの関係を規定したテーブルMapL(ΔRmis,Cmax)に基づいて更新禁止回数Lを設定する。一方、stepが「2」又は「3」に設定されている場合には、図18に示した最大酸素吸蔵量Cmax及び設定されているstepと、更新禁止回数Lとの関係を規定したテーブルMapL(Cmax,step)に基づいて更新禁止回数Lを設定する。
図15に示したテーブルMapK(ΔRmis,Cmax)によれば、上記第1実施形態と同様、調整値Kは、最大酸素吸蔵量Cmaxが大きいほどより小さい値に設定される。また、調整値Kは、失火率変化ΔRmisが大きいほどより大きい値に設定される。図17に示したテーブルMapL(ΔRmis,Cmax)によれば、上記第1実施形態と同様、更新禁止回数Lは、最大酸素吸蔵量Cmaxが大きいほどより大きい値に設定される。また、更新禁止回数Lは、失火率変化ΔRmisが大きいほどより小さい値に設定される。これらは、失火率変化ΔRmisが大きいほど、時間積分値SDVoxsの収束値SDVoxs1からの偏移が大きいため、時間積分値SDVoxsの変化速度をより大きい値に設定する要求が大きいことに基づく。
なお、図16、及び図18のテーブルは、図10、及び図11のテーブルからそれぞれstep1についての値を削除したものと同じである。
一方、CPU71がステップ1305にて「No」と判定する場合、直ちにステップ835に進んでステップ処理を実行していく。
以上説明したように、上記第1実施形態の変形例によれば、失火率が変化することで時間積分値SDVoxsが収束値SDVoxs1から大きく偏移する場合であっても、時間積分値SDVoxsを収束値SDVoxs1に迅速且つ精度よく収束値SDVoxs1に近づけることができる。
本変形例においては、時間積分値SDVoxsの収束値SDVoxs1からの偏移が大きいと判定される場合として、失火率変化ΔRmisが第1失火率変化ΔRmis1よりも大きい場合のみが用いられているが、これに加え、バッテリ交換があった場合にも上記判定がなされるように構成されてもよい。
また、本変形例では、step1である場合においてのみ、失火率変化ΔRmisにも基づいて調整値K及び更新禁止回数Lが設定されていたが、step2,step3である場合においても、失火率変化ΔRmisが大きいほど、調整値K(及び更新禁止回数L)をより大きい値(より小さい値)に設定してもよい。
(第2実施形態)
次に、本発明の第2実施形態に係る空燃比制御装置について説明する。この第2実施形態は、以下の2点についてのみ上記第1実施形態と異なる。第1に、step1にて、FC制御が実行された場合にFC後リッチ制御の実行が禁止される。第2に、「1」に設定されていたstepが「2」に変更されたときに、時間積分値SDVoxsが、時間積分値SDVoxsから所定量ΔIだけ減量された値に更新される。以下、上記第1実施形態と異なる点のみについて説明する。
図19は、step1における各種変数の変化を示す、図5に対応するタイムチャートである。本例では、step1にてFC後リッチ制御の実行が禁止されるため、FC制御が終了する時刻tB以降、FB制御により燃料噴射量Fiがリッチ方向に補正される。これにより、上流側触媒53の酸素吸蔵量OSAが比較的緩やかに減少していく。そして、酸素吸蔵量OSAがほぼゼロとなってから、リーンを示す値に維持されていた酸素濃度センサ67の出力値Voxsがリッチを示す値に反転する(時刻tDを参照)。
従って、時刻tE以降、時間積分値SDVoxsの1回あたりの更新量K・DVoxs(=K・(Voxsref−Voxs))が正の値となり、時間積分値SDVoxsが増大していく。即ち、時間積分値SDVoxsは、FC後リッチ制御が禁止されることにより上記収束値SDVoxs1から燃料噴射量Fiが増大する方向へ偏移していく(時間積分値SDVoxsがリッチずれしていく)。
ここで、時刻tBにおいては、酸素吸蔵量OSAが最大酸素吸蔵量Cmaxとなっている場合が多い。従って、最大酸素吸蔵量Cmaxが一定である場合、時刻tB〜tDの期間が略一定となり得る(即ち、時刻tE〜tDの期間が略一定となり得る)。このため、時間積分値SDVoxsの変化速度も一定の場合、時刻tB〜tDの期間における時間積分値SDVoxsのリッチずれの程度も略一定となり得る。
また、最大酸素吸蔵量Cmaxが上記値Cmax1である場合(図19の実線を参照)、時刻tB〜tDの期間が長い。従って、時刻tB〜tDの期間における時間積分値SDVoxsのリッチずれの程度も大きくなり得る。更に、時刻tDに時刻tFが近づき易いため時間積分値SDVoxsの減少程度は小さいものとなり得る。このため、時間積分値SDVoxsのリッチずれの程度は平均的に大きい。
一方、最大酸素吸蔵量Cmaxが上記値Cmax2(<Cmax1)である場合(図19の破線を参照)、時刻tBから酸素濃度センサ67の出力値Voxsがリッチを示す値に反転する時刻tHまでの期間が短い。従って、時刻tB〜tHの期間における時間積分値SDVoxsのリッチずれの程度も小さくなり得る。更に、時刻tH〜tFの期間が長くなり易いため時間積分値SDVoxsの減少程度はある程度大きいものとなり得る。このため、時間積分値SDVoxsのリッチずれの程度は平均的に小さい。
このように、step1にてFC後リッチ制御の実行が禁止されると、時間積分値SDVoxsの収束値SDVoxs1からのリッチずれが発生する。また、このリッチずれの程度は、上流側触媒53の最大酸素吸蔵量Cmaxが大きいほどより大きくなる。
図20は、第2実施形態にかかる空燃比制御装置による制御が実行された場合における時間積分値SDVoxsの変化の一例を示した、図6に対応するタイムチャートである。この実施形態では、step1においてのみFC後リッチ制御の実行が禁止される。このため、step1において時間積分値SDVoxsがリッチずれし得る。そして、stepが「1」から「2」に変更されたとき、時間積分値SDVoxsが、時間積分値SDVoxsから所定量ΔIだけ減量された値に更新される。
次に、第2実施形態にかかる空燃比制御装置の実際の作動について説明する。この第2実施形態は、図7、及び図12に代えて、図7及び図12にそれぞれ対応する図21に示したフローチャート、及び図23に示したフローチャートを実行する点についてのみ、上記第1実施形態と異なる。
図21のフローチャートは、図7のフローチャートに、新たにステップ2105〜2115が追加された点においてのみ図7のものと異なる。なお、図21において、図7のステップと同じものについては、同一のステップ番号を付して説明を省略する。
従って、CPU71がステップ715にて「Yes」と判定した場合、ステップ2105に進んで、現時点が「1」に設定されていたstepが「2」に設定・変更された直後か否かを判定する。ステップ2105にて「Yes」と判定された場合、CPU71はステップ2110に進んで上記所定量ΔIをテーブルMapΔI(Cmax)に基づいて設定する。
図22は、上流側触媒53の最大酸素吸蔵量Cmaxと、所定量ΔIとの関係を規定したテーブルMapΔI(Cmax)を示している。この所定量ΔIは、本例では、時間積分値SDVoxsの変化速度、及びFC制御の頻度を一定とした場合における時間積分値SDVoxsの変動幅の最大値であって、予め実験、シミュレーション等により得られる値である。これによれば、所定量ΔIが、最大酸素吸蔵量Cmaxが大きいほどより大きい値に設定される。上述したように、時間積分値SDVoxsのリッチずれの程度は、最大酸素吸蔵量Cmaxが大きいほどより大きくなる。このように所定量ΔIが設定されるのは、stepが「1」から「2」へ変更される際、最大酸素吸蔵量Cmaxの大きさに依存することなく時間積分値SDVoxsを収束値SDVoxs1に近づけるためである。
次に、CPU71はステップ2115に進んで、時間積分値SDVoxsを、現時点における時間積分値SDVoxsから上述したステップ2110にて設定された所定量ΔIを減じた値に更新(変更)する。次いで、CPU71はステップ725に進み、ステップ2115にて更新された時間積分値SDVoxsを用いて下流側フィードバック補正値Vafsfbを計算する。即ち、この場合、上記式(4)に基づく時間積分値SDVoxsの更新が行われない。一方、ステップ2105にて「No」と判定された場合、CPU71はステップ720に進んで上記式(4)に基づいて時間積分値SDVoxsを更新し、続くステップ725に進んでステップ720にて更新された時間積分値SDVoxsを用いて下流側フィードバック補正値Vafsfbを計算する。
また、図23のフローチャートは、図12のフローチャートに、新たにステップ2305が追加された点においてのみ図12のものと異なる。なお、図23において、図12のステップと同じものについては、同一のステップ番号を付して説明を省略する。
従って、CPU71がステップ2305に進んだとき、設定されているstepが「1」であるか否かを判定する。ステップ2305にて「Yes」と判定された場合、CPU71はステップ2395に直ちに進んで本ルーチンを一旦終了する。即ち、この場合、FC制御が実行されるか否かにかかわらずFC後リッチ制御の実行が禁止される。一方、ステップ2305にて「No」と判定された場合、CPU71はFC後リッチ制御を実行するためのステップ処理が実行されていく。
以上説明したように、本発明による内燃機関の空燃比制御装置の第2実施形態によれば、step1においてはFC制御が実行される場合であってもFC後リッチ制御の実行が禁止される。このため、時間積分値SDVoxsの収束値SDVoxs1からのリッチずれが発生し得る。そして、「1」に設定されていたstepが「2」に変更されたとき、時間積分値SDVoxsが、リッチずれしている時間積分値SDVoxsから、予想されるリッチずれの程度を考慮した所定量ΔIを減じた値に更新(変更)される。従って、step2の始期には、時間積分値SDVoxsを収束値SDVoxs1にある程度近づけることができる。この結果、上記第1実施形態と同様の効果を奏し得る。
本発明は上記各実施形態に限定されることなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第2実施形態においては、上記第1実施形態と同様、step1にて更新禁止回数Lが最大酸素吸蔵量Cmaxに基づいて設定されていたが(図9、図11、及びテーブルMapL(Cmax,step)を参照)、これに代えて、step1にて更新禁止回数Lがゼロとなるように構成されてもよい。
また、上記第2実施形態においては、時間積分値SDVoxsの収束値SDVoxs1からの偏移が大きいと判定される場合として、バッテリ交換により時間積分値SDVoxsがクリアされた場合が用いられているが、これに代えて、又は、これに加えて、失火率変化ΔRmisが上記第1失火率変化ΔRmis1よりも大きい場合が用いられてもよい。更に、上記第1、第2実施形態においては、上記判定される場合として、空燃比センサ66の検出部に所定量以上の水素が到達すると判定される場合や、各気筒における排ガスの空燃比のばらつき度合いが所定の度合いよりも大きいと判定される場合が用いられてもよい。
加えて、上記第1、第2実施形態においては、時間積分値SDVoxsの更新回数に基づいてstep1からstep2へ切換えるか否かが判定され、時間積分値SDVoxsの変動幅ΔSDVoxsに基づいてstep2からstep3へ切換えるか否かが判定されていたが、これに代えて、step1における酸素濃度センサ67の出力値Voxsの総反転回数が所定の回数に到達したと判定された場合にstep1からstep2へ切換え、step2における上記総反転回数が所定の回数に到達したと判定された場合にstep2からstep3へ切換えるようにしてもよい。
(第3実施形態)
次に、本発明の第3実施形態にかかる空燃比制御装置について説明する。この第3実施形態は、時間積分値SDVoxsの収束値SDVoxs1からの偏移の程度が大きいか否かを逐次判定し、偏移の程度が大きいと判定される場合、時間積分値SDVoxsの変化速度をより大きい値に変更するとともに判定基準を緩和する。一方、上記偏移の程度が小さいと判定される場合には、時間積分値SDVoxsの変化速度をより小さい値に変更するとともに判定基準を厳しくする。
より具体的には、この第3実施形態は、図8及び図9に代えて、図24に示したフローチャートを実行し、図12に代えて、図12に対応する図27に示したフローチャートを実行する点についてのみ、上記第1実施形態と異なる。
また、図25は、第3実施形態にかかる空燃比制御装置による制御が実行された場合における各種変数の変化を示したタイムチャートである。以下、図24に示したフローチャート、及び図25に示したタイムチャートを参照しながら、第3実施形態の上記第1実施形態と異なる点についてのみ説明する。
図24は、調整値K、更新禁止回数L、及び判定値Aを設定する際のフローチャートを示している。CPU71は図24にフローチャートにより示したルーチンを、内燃機関10の始動時点以降、吸気行程を迎える気筒について燃料噴射開始時点が到来する毎に、繰り返し実行するようになっている。
従って、内燃機関10の始動時点以降、吸気行程を迎える気筒について燃料噴射開始時点が到来すると、CPU71はステップ2400から処理を開始してステップ2405に進み、FB制御が許可(On)されており、且つ、時間積分値SDVoxsの更新が許可(On)されているか否かを判定する。
ステップ2405にて「No」と判定された場合、CPU71は直ちにステップ2495に進んで本ルーチンを一旦終了する。一方、ステップ2405にて「Yes」と判定された場合、CPU71は直ちにステップ2410に進んで、図7のルーチンにて更新されている時間積分値SDVoxsの最新値から後述するステップにて更新される基準値SDVoxsstdを減じた値の絶対値が、判定値A以下であるか否かを判定する。
いま、上記値|SDVoxs−SDVoxsstd|が判定値A以下であるものとすると、CPU71はステップ2410にて「Yes」と判定してステップ2415に進んで、カウンタJをインクリメントする。次に、CPU71はステップ2420に進んで、ステップ2420内に記載の式に基づいて応答遅れ処理値SDVoxslowを更新する。ここにおいて、図7のルーチンにて更新されている時間積分値SDVoxsの最新値と、前回の本ルーチン実行時にて更新された応答遅れ処理値SDVoxslowとが用いられる。また、値「1/k」(<1)は、応答遅れの度合いを表す値であって、本例では一定である。
次いで、CPU71はステップ2425に進み、カウンタJが安定目標値Jrefよりも小さいか否かを判定する。ここにおいて、安定目標値Jrefは、本例では、時間積分値SDVoxsが安定していると判定され得るカウント数の範囲の最小値である。いま、カウンタJが安定目標値Jrefよりも小さいものとすると、CPU71はステップ2425にて「Yes」と判定してステップ2495に直ちに進んで、本ルーチンを一旦終了する。以降、CPU71はステップ2450,2410〜2425の処理を繰り返し実行する。これにより、カウンタJがインクリメントされていく。また、この場合、時間積分値SDVoxsの変化速度は変更されない。
ここで、カウンタJが安定目標値Jrefに達する時点よりも前の時刻である、図25の時刻taにて、上記値|SDVoxs−SDVoxsstd|が判定値Aよりも大きくなるものとする(図25の実線、及び2点鎖線を参照)。従って、時刻taが到来すると、本ルーチンを繰り返し実行していたCPU71はステップ2410に進んだとき、「No」と判定してステップ2430に進んで応答遅れ処理値SDVoxslowを図7のルーチンにて更新されている時間積分値SDVoxsの最新値と等しい値に設定する。この判定は、時間積分値SDVoxs(及び基準値SDVoxsstd)の収束値SDVoxs1からの偏移の程度が大きいということを意味しており、前記第1判定に対応している。
次に、CPU71はステップ2435に進んで、基準値SDVoxsstdを上記時間積分値SDVoxsの最新値と等しい値に設定する。次いで、CPU71はステップ2440に進み、触媒調整値a(>1)を図26に示すテーブルMapa(Cmax)に基づいて設定する。このテーブルMapa(Cmax)によれば、上記触媒調整値aが、上流側触媒53の最大酸素吸蔵量Cmaxが大きいほどより小さい値に設定される。
続いて、CPU71はステップ2445に進んで、前回更新された調整値Kに、上述したステップ2440にて設定された触媒調整値aを乗じることで調整値Kを更新する。次に、CPU71はステップ2450に進んで、前回更新された更新禁止回数Lを、上記設定された触媒調整値aで除することで、更新禁止回数Lを更新する。次いで、CPU71はステップ2455に進み、前回更新された判定値Aに、上記設定された触媒調整値aを乗じることで判定値Aを更新する。そして、CPU71はステップ2460に進み、カウンタJをクリアした後、ステップ2495に進んで本ルーチンを一旦終了する。
このように、図25の時刻ta到来後においては、時刻ta到来前に比して、調整値Kがより大きい値に変更されるとともに、更新禁止回数Lがより小さい値に変更される。これにより、時間積分値SDVoxsの変化速度もより大きい値に変更される。また、判定値Aもより大きい値に変更されることにより、ステップ2410での判定基準がより緩和される。時刻ta以降、ルーチンを繰り返し実行しているCPU71がステップ2410にて「No」と判定する毎に、時間積分値SDVoxsの変化速度、及び判定値Aがより大きい値に変更されていく。
また、基準値SDVoxsstdは、ステップ2410における「No」の判定がなされたときから、次にこの判定がなされるときまでの間一定の値に維持される(図25の破線を参照)。従って、上記判定がなされるときには、時間積分値SDVoxsが、基準値SDVoxsstd(及び、応答遅れ処理値SDVoxslow)に比して収束値SDVoxs1に近接している度合いが大きい。このため、上記判定毎に、基準値SDVoxsstdが時間積分値SDVoxsと等しい値に更新されることにより、基準値SDVoxsstdが収束値SDVoxs1に迅速に近づいていく。これに伴って、時間積分値SDVoxsも収束値SDVoxs1に迅速に近づいていく。
ここで、図25の時刻tbにて、カウンタJが安定目標値Jrefに達するものとする(即ち、この場合|SDVoxs−SDVoxsstd|≦A)。従って、時刻tbが到来すると、本ルーチンを繰り返し実行していたCPU71はステップ2425に進んだとき、「No」と判定してステップ2465に進んで基準値SDVoxsstdをステップ2420にて更新されている応答遅れ処理値SDVoxslowの最新値と等しい値に設定する。この判定は、時間積分値SDVoxs(及び基準値SDVoxsstd)の収束値SDVoxs1からの偏移の程度が小さいということを意味しており、前記第2判定に対応する。
次いで、CPU71はステップ2470に進み、触媒調整値aを上記テーブルMapa(Cmax)に基づいて設定する。続いて、CPU71はステップ2475に進んで、前回更新された調整値Kを、上述したステップ2470にて設定された触媒調整値aで除することで、調整値Kを更新する。次に、CPU71はステップ2480に進んで、前回更新された更新禁止回数Lに、上記設定された触媒調整値aを乗じることで、更新禁止回数Lを更新する。次いで、CPU71はステップ2485に進み、前回更新された判定値Aを、上記設定された触媒調整値aで除することで、判定値Aを更新する。そして、CPU71はステップ2490に進み、カウンタJをクリアした後、ステップ2495に進んで本ルーチンを一旦終了する。
このように、図25の時刻tb到来後においては、時刻tb到来前に比して、調整値Kがより小さい値に変更されるとともに、更新禁止回数Lがより大きい値に変更される。これにより、時間積分値SDVoxsの変化速度も小さい値に変更される。また、判定値Aもより小さい値に変更されることにより、ステップ2410での判定基準がより厳しくされる。時刻tb以降、ルーチンを繰り返し実行しているCPU71がステップ2425にて「No」と判定する毎に、時間積分値SDVoxsの変化速度、及び判定値Aがより小さい値に変更されていく。
また、基準値SDVoxsstdは、ステップ2425における「No」の判定がなされたときから、次にこの判定がなされるときまでの間も一定の値に維持される。従って、上記判定がなされるときには、応答遅れ処理値SDVoxslowが、基準値SDVoxsstd(及び、時間積分値SDVoxs)に比して収束値SDVoxs1に近接している度合いが大きい。このため、上記判定毎に、基準値SDVoxsstdが応答遅れ処理値SDVoxslowと等しい値に更新されることにより、基準値SDVoxsstdが収束値SDVoxs1近傍の値に安定して推移する。これに伴って、時間積分値SDVoxsも収束値SDVoxs1近傍の値に安定して推移する。
そして、時刻tb以降、カウンタJが安定目標値Jrefに達する時点よりも前に、再び上記値|SDVoxs−SDVoxsstd|>Aとなる事態が発生した場合(即ち、収束値SDVoxs1が変化して、時間積分値SDVoxsが収束値SDVoxs1から偏移する事態が発生した場合、 図25の時刻tcを参照)、再び調整値K、更新禁止回数L、及び判定値Aが、より大きい値、より小さい値、及びより大きい値にそれぞれ変更される。その後、上述した変化と同様の変化を経て、時間積分値SDVoxsは変化後の収束値SDVoxs1に近づいていく。
なお、本例では、最大酸素吸蔵量Cmaxが大きいほど触媒調整値aがより小さい値に設定される(図26を参照)。このため、最大酸素吸蔵量Cmaxが大きいほど、調整値K、及び更新禁止回数Lの変更時における、これらの変化度合いがより小さくされる。即ち、最大酸素吸蔵量Cmaxが大きいほど、時間積分値SDVoxsの変化速度の増大度合い(又は、減少度合い)がより小さくされる。これは、最大酸素吸蔵量Cmaxの大きさに依存することなく、上記FC後リッチ制御による時間積分値SDVoxsのリーンずれの程度が大きくなることを抑制するためである。
また、本例では、上述したように図27のフローチャートが実行される。これは、図12のフローチャートのステップ1220,1225,1230の部分を、ステップ2705に代えたフローチャートと同じである。これにより、最大酸素吸蔵量Cmaxのみに応じて設定され得る。ここにおいて、値αは、値「Cmax・α」が適切にNOxを浄化し得る範囲内の値となるように調整される値であって、本例では一定である。
以上説明したように、本発明による内燃機関の空燃比制御装置の第3実施形態によれば、時間積分値SDVoxs、基準値SDVoxsstd、及び判定値Aが利用されて時間積分値SDVoxsの収束値SDVoxs1からの偏移の程度が大きいか否かが判定される。|SDVoxs−SDVoxsstd|>Aと判定される毎に、時間積分値SDVoxsの収束値SDVoxs1からの偏移の程度が大きいとして、時間積分値SDVoxsの変化速度及び判定値Aがより大きい値に変更される。また、基準値SDVoxsstdが時間積分値SDVoxsと等しい値に設定される。これにより、基準値SDVoxsstdが収束値SDVoxs1に迅速に近づくのに伴い、時間積分値SDVoxsも収束値SDVoxs1に迅速に近づき得る。
一方、|SDVoxs−SDVoxsstd|≦Aと判定される回数が安定目標値Jrefに対応する回数に達する毎に、時間積分値SDVoxsの収束値SDVoxs1からの偏移の程度が小さいとして、時間積分値SDVoxsの変化速度及び判定値Aがより小さい値に変更される。また、基準値SDVoxsstdが応答遅れ処理値SDVoxslowと等しい値に設定される。これにより、基準値SDVoxsstdが収束値SDVoxs1近傍の値に安定して推移するのに伴い、時間積分値SDVoxsも収束値SDVoxs1近傍の値に安定して推移し得る。
以上のことから、時間積分値SDVoxsの収束値SDVoxs1からの偏移の程度を表す値に基づくことなく、適切に時間積分値SDVoxsの変化速度が変更され得、この結果、上記第1実施形態と同様の効果を奏し得る。
本発明は上記各実施形態に限定されることなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第3実施形態においては、同一の触媒調整値aを用いて調整値K、更新禁止回数L、及び判定値Aをそれぞれ更新しているが、これに代えて、触媒調整値をa1,a2,a3の3つに異ならせてそれぞれが、調整値K、更新禁止回数L、及び判定値Aの更新に用いられてもよい。この場合、触媒調整値a1,a2,a3は最大酸素吸蔵量Cmaxが大きいほどより小さい値にそれぞれ設定されると好適である。
また、上記第1〜第3実施形態においては、積分ゲインKiを一定として調整値Kを変更することで時間積分値SDVoxsの1回あたりの更新量「K・DVoxs」を調整して時間積分値SDVoxsの変化速度(即ち、積分項Ki・SDVoxsの変化速度)を変更していたが、これに代えて、時間積分値SDVoxsの1回あたりの更新量を「DVoxs」(略一定)として、積分ゲインKiを変更することで積分項Ki・SDVoxsの変化速度を変更してもよい。この場合、積分ゲインKiは、調整値Kの変更・設定に対応するように変更・設定されると好適である。
また、上記第1〜第3実施形態においては、時間積分値SDVoxsの1回あたりの更新量が出力偏差量DVoxsに調整値Kを乗じた値「K・DVoxs」とされていたが、これに代えて、時間積分値SDVoxsの1回あたりの更新量が出力偏差量DVoxsに調整値Kを加えた値「K+DVoxs」とされてもよい。この場合、出力偏差量DVoxsが正の値(負の値)であるときには、調整値Kが正の値(負の値)に設定され、調整値Kの絶対値が大きい値に設定されることで時間積分値SDVoxsの変化速度が大きい値に設定されると好適である。
また、上記第1〜第3実施形態においては、更新禁止回数LがFC後リッチ制御の実行期間に対応する燃料噴射回数よりも大きい値に設定されていたが、これに代えて、更新禁止回数Lが上記対応する燃料噴射回数と等しい値に設定されてもよい。また、最大酸素吸蔵量Cmaxが大きいほど、更新禁止回数L及び上記対応する燃料噴射回数がより大きい値にそれぞれ設定されていたが(即ち、更新禁止回数Lが上記対応する燃料噴射回数に連動して設定されていたが)、これに代えて、更新禁止回数LがFC後リッチ制御の実行期間に対応する燃料噴射回数に連動することなく設定されてもよい。
加えて、上記第1〜第3実施形態においては、時間積分値SDVoxsの1回あたりの更新量を変更することで時間積分値SDVoxsの変化速度を変更していたが、これに代えて、上記1回あたりの更新量を一定として、時間積分値SDVoxsの更新間隔の時間を変更することにより変化速度を変更してもよい。この場合、上記更新間隔の時間が短い時間に設定されることで時間積分値SDVoxsの変化速度が大きい値に設定されると好適である。
10…内燃機関、39…燃料噴射弁、52…エキゾーストパイプ、53…上流側触媒、66…空燃比センサ(上流側空燃比センサ)、67…酸素濃度センサ(下流側空燃比センサ)、70…電気制御装置、71…CPU