(57)【要約】【課題】触媒下流の空燃比センサ出力値と目標空燃比相当目標値との偏差の積算により更新されていく偏差積分値に少なくとも基づいて空燃比フィードバック制御を行う空燃比制御装置において、フューエルカット制御（ＦＣ）からの復帰後にて偏差積分値の学習を実行しても偏差積分値のリッチ側への誤学習が抑制され得るものを提供すること。【解決手段】触媒下流の空燃比センサ出力値と目標空燃比相当出力値Voxsref（一定）との偏差」についてＰＩＤ処理してフィードバック補正値が計算され、フィードバック補正値に基づいて空燃比が目標空燃比（＝理論空燃比）に一致するように制御される。ＦＣ復帰時点以降の所定の期間（フラグＯＲＥ＝１）のみ、ＰＩＤ処理のうちＩ処理が、「空燃比センサ出力値とVoxsrefとの偏差」に代えて「空燃比センサ出力値と目標空燃比よりもリーンの空燃比に相当する目標値Voxsrefi（＜Voxsref）との偏差」を用いて行われる。【選択図】  図９
2007231750.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設された酸素吸蔵機能を有する触媒と、
前記触媒の下流の排気通路に配設されて同触媒から流出するガスの空燃比に応じた値を出力する空燃比センサと、
を備えた内燃機関に適用され、
前記空燃比センサの出力値と目標空燃比に相当する目標値との偏差に相当する値を逐次積算して更新されていく偏差積分値に少なくとも基づいて前記触媒に流入するガスの空燃比を制御するためのフィードバック補正値を算出するフィードバック補正値算出手段と、
前記フィードバック補正値に基づいて前記触媒に流入するガスの空燃比を前記目標空燃比に一致するようにフィードバック制御する空燃比制御手段と、
前記内燃機関の運転状態に応じて燃料の噴射を中断するフューエルカット制御を行うフューエルカット制御手段と、
を備えた内燃機関の空燃比制御装置において、
前記フィードバック補正値算出手段は、
前記フューエルカット制御から復帰した後の所定の期間においては、前記空燃比センサの出力値と前記目標空燃比相当目標値との偏差に相当する値に代えて、前記空燃比センサの出力値と、前記目標空燃比相当目標値とは別の前記目標空燃比よりもリーンの空燃比に相当する目標値である偏差積分値更新用目標値との偏差に相当する値を逐次積算して前記偏差積分値を更新していくように構成された内燃機関の空燃比制御装置。
【請求項２】
請求項１に記載の内燃機関の空燃比制御装置において、
前記フィードバック補正値算出手段は、
前記偏差積分値を使用して算出される積分項と、少なくとも前記空燃比センサの出力値と前記目標空燃比相当目標値との偏差に相当する値そのものを使用して算出される比例項とに基づいて前記フィードバック補正値を算出するように構成され、
前記フィードバック補正値算出手段は、
前記フューエルカット制御から復帰した後の前記所定の期間においても、前記比例項を、前記空燃比センサの出力値と前記目標空燃比相当目標値との偏差に相当する値そのものを使用して算出するように構成された内燃機関の空燃比制御装置。
【請求項３】
請求項２に記載の内燃機関の空燃比制御装置において、
前記フィードバック補正値算出手段は、
前記フューエルカット制御開始時点から、同フューエルカット制御開始時点からの前記酸素吸蔵量の増加分を推定していく酸素吸蔵量増加分推定手段を備え、
前記フューエルカット制御から復帰した後の前記所定の期間に亘る前記推定された酸素吸蔵量の増加分の減少に応じて前記偏差積分値更新用目標値を変更するように構成された内燃機関の空燃比制御装置。
【請求項４】
請求項３に記載の内燃機関の空燃比制御装置において、
前記フィードバック補正値算出手段は、
前記偏差積分値更新用目標値を、前記推定された酸素吸蔵量の増加分が小さくなるほどよりリッチな空燃比に相当する値になるように変更するよう構成された内燃機関の空燃比制御装置。
【請求項５】
請求項３又は請求項４に記載の内燃機関の空燃比制御装置において、
前記フィードバック補正値算出手段は、
前記所定の期間の終期として、前記フューエルカット制御から復帰した後に減少していく前記推定された酸素吸蔵量の増加分がゼロになった時点を使用するように構成された内燃機関の空燃比制御装置。
【請求項６】
請求項５に記載の内燃機関の空燃比制御装置において、
前記フィードバック補正値算出手段は、
減少していく前記推定された酸素吸蔵量の増加分がゼロになる前に前記空燃比センサの出力値が前記目標空燃比よりもリッチな空燃比を示す値になった場合、前記所定の期間の終期として、前記推定された酸素吸蔵量の増加分がゼロになった時点に代えて前記空燃比センサの出力値が前記目標空燃比よりもリッチな空燃比を示す値になった時点を使用するように構成された内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気通路に配設された触媒の下流に設けられた空燃比センサの出力値に基づいて触媒に流入するガスの空燃比を制御する内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来より、この種の空燃比制御装置が広く知られている。例えば、特許文献１に記載の空燃比制御装置（排気浄化装置）では、内燃機関の排気通路に配設された酸素吸蔵機能を有する触媒（三元触媒）の下流に空燃比センサ（通常は、濃淡電池型の酸素濃度センサ）が設けられている。この空燃比センサの出力値と目標空燃比（＝理論空燃比）に相当する目標値（目標空燃比相当目標値）との偏差を比例・積分・微分処理（ＰＩＤ処理）してフィードバック補正値が算出される。そして、このフィードバック補正値に基づいて燃料噴射量が補正されることで内燃機関に供給する混合気の空燃比（従って、触媒に流入するガスの空燃比、以下、単に「空燃比」とも称呼する。）が目標空燃比に一致するようにフィードバック制御されるようになっている。
【０００３】
上記フィードバック補正値には、積分項（Ｉ項）の値、即ち、上記空燃比センサの出力値と目標空燃比相当目標値との偏差を逐次積算して更新されていく偏差積分値にゲインを乗じた値が含まれている。これにより、エアフローメータの出力特性のばらつき、インジェクタの噴射特性のばらつき等に起因して、実際の燃料噴射量と空燃比を目標空燃比に一致させるために必要な燃料噴射量との差（以下、「燃料噴射量の誤差」と称呼する。）が発生していても、上述したフィードバック制御の実行により、燃料噴射量の誤差が偏差積分値（従って、積分項の値）により補償され得、この結果、空燃比を目標空燃比に一致させることができる。
【０００４】
換言すれば、偏差積分値は、燃料噴射量の誤差の大きさを表す値となり得る。この種の空燃比制御装置では、このような性格を有する偏差積分値を記憶するとともに記憶されている偏差積分値（以下、「偏差積分値の学習値」とも称呼する。）を所定のタイミング毎に更新（学習）していく偏差積分値の学習が実行される場合が多い。
【０００５】
ところで、近年、燃費向上等の観点から、アクセル開度がゼロ等の所定の条件が成立している間は燃料の噴射を中断するフューエルカット制御が実行されるようになっている。フューエルカット制御中は、酸素を含んだ空気そのものが触媒に流入するため触媒の酸素吸蔵量が増大する。この結果、フューエルカット制御からの復帰時では、酸素吸蔵量が触媒に吸蔵され得る最大量（以下「最大酸素吸蔵量」と称呼する。）、或いは最大酸素吸蔵量近傍に達することで触媒内がリーン雰囲気になっている場合が多い。
【０００６】
従って、フューエルカット制御から復帰した後、触媒から流出するガスの空燃比は理論空燃比よりもリーンの傾向となり、空燃比センサの出力値も理論空燃比よりもリーンを示す値となる。即ち、空燃比センサ出力値と目標空燃比相当目標値との偏差が空燃比をリッチ側へ補正するための大きい値となり得る。
【０００７】
よって、フューエルカット制御から復帰した後、空燃比が理論空燃比よりもリッチな空燃比に制御されることで触媒の酸素吸蔵量が減少していき、この結果、触媒内における上述したリーン雰囲気の程度が次第に小さくなっていく（即ち、空燃比センサの出力値が目標空燃比相当目標値に次第に近づいていく）。
【０００８】
このように、フューエルカット制御から復帰してから触媒内のリーン雰囲気が解消されるまでの間、空燃比センサ出力値と目標空燃比相当目標値との偏差は空燃比をリッチ側へ補正するための大きい値となり得る。このことは、この間において、上記偏差積分値が空燃比をリッチ側へ補正するための値として過度に増大していくことを意味する。
【０００９】
従って、フューエルカット制御から復帰してから触媒内のリーン雰囲気が解消されるまでの間において上述した偏差積分値の学習が実行されると、偏差積分値の学習値が空燃比をリッチ側へ過度に補正する値に更新される事態が発生する。以下、係る事態を「偏差積分値のリッチ側への誤学習」と称呼する。
【００１０】
そこで、このような偏差積分値のリッチ側への誤学習を防止するため、下記特許文献２には、フューエルカット制御から復帰した後の所定の期間においては、この種の学習を禁止する技術が記載されている。
【００１１】
しかしながら、フューエルカット制御からの復帰毎に所定の期間にて偏差積分値の学習を禁止すると、偏差積分値の学習の機会が少なくなる。特に、近年、更なる燃費向上のためフューエルカット制御が実行される頻度が多くなっている。係る状況下にて、フューエルカット制御からの復帰毎に偏差積分値の学習を禁止すると、偏差積分値の学習値が収束すべき値（即ち、上記燃料噴射量の誤差の大きさを正確に表す値）に収束し得ない事態も発生し得るという問題がある。
【００１２】
以上のことから、フューエルカット制御からの復帰後において偏差積分値の学習を実行しても、偏差積分値のリッチ側への誤学習が抑制され得る空燃比制御装置の提供が望まれているところである。
【特許文献１】特開２００４−１８３５８５号公報
【特許文献２】特開２００５−１０５８３４号公報
【発明の開示】
【００１３】
従って、本発明の目的は、触媒下流の空燃比センサの出力値と目標空燃比相当目標値との偏差に相当する値の積算により更新されていく偏差積分値に少なくとも基づいて空燃比フィードバック制御を行う空燃比制御装置において、フューエルカット制御からの復帰後において偏差積分値の学習を実行しても、偏差積分値のリッチ側への誤学習が抑制され得るものを提供することにある。
【００１４】
本発明による空燃比制御装置は、内燃機関の排気通路に配設された酸素吸蔵機能を有する触媒（三元触媒等）と、前記触媒の下流の排気通路に配設されて同触媒から流出するガスの空燃比に応じた値を出力する空燃比センサとを備えた内燃機関に適用される。ここにおいて、前記空燃比センサとしては、一般には、濃淡電池型の酸素濃度センサが使用される。
【００１５】
本発明による空燃比制御装置は、前記空燃比センサの出力値と目標空燃比に相当する目標値との偏差に相当する値を逐次積算して更新されていく偏差積分値に少なくとも基づいて前記触媒に流入するガスの空燃比を制御するためのフィードバック補正値を算出するフィードバック補正値算出手段と、前記フィードバック補正値に基づいて前記触媒に流入するガスの空燃比を前記目標空燃比に一致するようにフィードバック制御する空燃比制御手段と、前記内燃機関の運転状態に応じて燃料の噴射を中断するフューエルカット制御を行うフューエルカット制御手段とを備えている。
【００１６】
ここにおいて、前記「空燃比センサの出力値と目標空燃比に相当する目標値との偏差に相当する値」とは、例えば、空燃比センサの出力値と目標空燃比相当目標値との偏差そのもの、空燃比センサによる検出空燃比と目標空燃比との偏差等を含んでいる。また、前記フィードバック補正値は、前記偏差積分値を使用して算出される積分項のみに基づいて（積分処理（Ｉ処理）して）算出されてもよいし、前記積分項と、前記偏差に相当する値そのものを使用して算出される比例項とに基づいて（比例・積分処理（ＰＩ処理）して）算出されてもよいし、前記積分項と、前記比例項と、前記偏差に相当する値の時間微分値を使用して算出される微分項とに基づいて（比例・積分・微分処理（ＰＩＤ処理）して）算出されてもよい。
【００１７】
本発明による空燃比制御装置の特徴は、前記フィードバック補正値算出手段は、前記フューエルカット制御から復帰した後の所定の期間においては、前記空燃比センサの出力値と前記目標空燃比相当目標値との偏差に相当する値に代えて、前記空燃比センサの出力値と、前記目標空燃比相当目標値とは別の前記目標空燃比よりもリーンの空燃比に相当する目標値である偏差積分値更新用目標値との偏差に相当する値を逐次積算して前記偏差積分値を更新していくように構成されたことにある。
【００１８】
これによれば、フューエルカット制御から復帰した後（フューエルカット制御終了後）の所定の期間においては、偏差積分値は、空燃比センサの出力値と、目標空燃比相当目標値の代わりの目標空燃比よりもリーンの空燃比に相当する偏差積分値更新用目標値との偏差に相当する値を逐次積算して更新されていく。他方、上述したように、フューエルカット制御から復帰してから触媒内のリーン雰囲気が解消されるまでの間、空燃比センサの出力値も目標空燃比よりもリーンを示す値となる。
【００１９】
従って、フューエルカット制御から復帰した後の所定の期間において、空燃比センサの出力値と偏差積分値更新用目標値との偏差が空燃比をリッチ側へ補正するための大きい値となる事態が抑制され得る。即ち、この間において、偏差積分値が空燃比をリッチ側へ補正するための値として過度に増大していくことが抑制され得る。
【００２０】
この結果、例えば、フューエルカット制御からの復帰後（例えば、復帰直後）において偏差積分値の学習を実行しても、上記「偏差積分値のリッチ側への誤学習」が抑制され得、偏差積分値のリッチ側への誤学習に起因して未燃ＨＣ，ＣＯ等のエミッションの発生量が増大することが抑制され得る。
【００２１】
なお、このように、偏差積分値の学習を実行するためには、本発明による空燃比制御装置は、前記偏差積分値を記憶するとともに記憶されている偏差積分値を所定のタイミング毎に更新していく偏差積分値の学習手段を備える必要がある。
【００２２】
上記本発明に係る空燃比制御装置においては、前記フィードバック補正値算出手段は、前記積分項と、少なくとも前記比例項とに基づいて前記フィードバック補正値を算出するように構成され、前記フューエルカット制御から復帰した後の前記所定の期間においても、前記比例項を、前記空燃比センサの出力値と前記目標空燃比相当目標値との偏差に相当する値そのものを使用して算出するように構成されることが好適である。
【００２３】
フィードバック補正値が、積分項と、少なくとも比例項とに基づいて算出される場合を考える。この場合、フューエルカット制御から復帰した後の所定の期間において、積分項に加えて比例項も、空燃比センサ出力値と偏差積分値更新用目標値との偏差に相当する値を使用して算出するように構成すると、フィードバック補正値そのものが空燃比をリッチ側へ補正するための値に計算されることが保証され得ない。即ち、フューエルカット制御から復帰した後、空燃比が理論空燃比よりもリッチな空燃比に制御されず、この結果、触媒内における上述したリーン雰囲気が解消され得ない事態も発生し得る。
【００２４】
これに対し、上記構成によれば、少なくとも比例項の値は、リッチ側へ補正するための値に計算されることが保証され得る。従って、フィードバック補正値そのものも空燃比をリッチ側へ補正するための値に計算されることが保証され得る。この結果、フューエルカット制御から復帰した後、空燃比が理論空燃比よりもリッチな空燃比に確実に制御され得、この結果、触媒内における上述したリーン雰囲気が確実に解消され得る。
【００２５】
この場合、前記フィードバック補正値算出手段は、前記フューエルカット制御開始時点から、同フューエルカット制御開始時点からの前記酸素吸蔵量の増加分を推定していく酸素吸蔵量増加分推定手段を備え、前記フューエルカット制御から復帰した後の前記所定の期間に亘る前記推定された酸素吸蔵量の増加分の減少に応じて前記偏差積分値更新用目標値を変更するように構成された内燃機関の空燃比制御装置。
【００２６】
具体的には、前記フィードバック補正値算出手段は、前記偏差積分値更新用目標値を、前記推定された酸素吸蔵量の増加分が小さくなるほどよりリッチな空燃比に相当する値になるように変更するよう構成されることが好ましい。
【００２７】
上述したように、フューエルカット制御から復帰した後において空燃比が理論空燃比よりもリッチな空燃比に確実に制御される場合、触媒の酸素吸蔵量は、フューエルカット制御開始時点からフューエルカット制御中に亘って増大していき、フューエルカット制御から復帰した後において減少していく。換言すれば、フューエルカット制御開始時点からの触媒の酸素吸蔵量の増加分（増大量）（以下、単に「酸素吸蔵量の増加分」とも称呼する。）は、フューエルカット制御開始時点からフューエルカット制御中に亘って増大していき、フューエルカット制御から復帰した後において減少していく。
【００２８】
フューエルカット制御から復帰した後において酸素吸蔵量の増加分が減少していくにつれて、触媒内のリーン雰囲気の程度が小さくなって空燃比センサ出力値がよりリッチな空燃比に相当する値になる傾向がある。従って、フューエルカット制御から復帰した後の所定の期間に亘って、酸素吸蔵量の増加分が小さくなるほど偏差積分値更新用目標値をよりリッチな空燃比に相当する値になるように変更していけば、同所定の期間内に亘って空燃比センサ出力値と偏差積分値更新用目標値との偏差を小さい値に維持できる。
【００２９】
上記構成は係る知見に基づく。これにより、上記所定の期間において偏差積分値が空燃比をリッチ側へ補正するための値として増大していくことがより一層抑制され得、この結果、フューエルカット制御からの復帰後において偏差積分値の学習を実行しても、「偏差積分値のリッチ側への誤学習」がより確実に抑制され得る。
【００３０】
また、このようにフューエルカット制御から復帰した後において空燃比が理論空燃比よりもリッチな空燃比に確実に制御される場合、前記フィードバック補正値算出手段は、前記所定の期間の終期として、前記フューエルカット制御から復帰した後に減少していく前記推定された酸素吸蔵量の増加分がゼロになった時点を使用するように構成されることが好適である。
【００３１】
フューエルカット制御から復帰した後において減少していく酸素吸蔵量の増加分がゼロになる時点は、触媒内における上述したリーン雰囲気が解消される時点と一致する、若しくは同時点に非常に近いと考えることができる。従って、上記構成によれば、偏差積分値を更新するために使用される偏差を、空燃比センサ出力値と偏差積分値更新用目標値との偏差から空燃比センサ出力値と目標空燃比相当目標値との偏差に戻す時期を適切に設定することができる。
【００３２】
この場合、前記フィードバック補正値算出手段は、減少していく前記推定された酸素吸蔵量の増加分がゼロになる前に前記空燃比センサの出力値が前記目標空燃比よりもリッチな空燃比を示す値になった場合、前記所定の期間の終期として、前記推定された酸素吸蔵量の増加分がゼロになった時点に代えて前記空燃比センサの出力値が前記目標空燃比よりもリッチな空燃比を示す値になった時点を使用するように構成されるとより好ましい。
【００３３】
これによれば、酸素吸蔵量の増加分が大きめに推定されていることに起因して、触媒内のリーン雰囲気が既に解消しているにもかかわらず偏差積分値が空燃比センサ出力値と偏差積分値更新用目標値との偏差を使用して更新されていく事態の発生を防止できる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明による内燃機関の空燃比制御装置の実施形態について図面を参照しつつ説明する。この空燃比制御装置は、機関の燃料噴射量を制御する燃料噴射量制御装置でもある。
【００３５】
図１は、本発明の実施形態に係る空燃比制御装置を４サイクル火花点火式多気筒内燃機関１０に適用したシステムの概略構成を示している。なお、図１は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
【００３６】
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０とを含んでいる。
【００３７】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００３８】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角及びリフト量を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。
【００３９】
吸気系統４０は、吸気ポート３１に連通し同吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットルバルブ４３及びスワールコントロールバルブ（以下、「ＳＣＶ」と称呼する。）４４を備えている。
【００４０】
スロットルバルブ４３は、ＤＣモータからなるスロットルバルブアクチュエータ４３ａにより吸気管４１内で回転駆動されるようになっている。ＳＣＶ４４は、ＤＣモータからなるＳＣＶアクチュエータ４４ａにより回転駆動されるようになっている。
【００４１】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１に接続されたエキゾーストパイプ５２、エキゾーストパイプ５２に配設された上流側触媒５３、上流側触媒５３よりも下流のエキゾーストパイプ５２に配設された下流側触媒５４を備えている。排気ポート３４、エキゾーストマニホールド５１及びエキゾーストパイプ５２は、排気通路を構成している。
【００４２】
上流側触媒５３及び下流側触媒５４のそれぞれは、所謂、白金等の貴金属からなる活性成分を担持する三元触媒装置である。各触媒は、触媒流入ガスがほぼ理論空燃比であるとき、ＨＣ，ＣＯなどの未燃ガスを酸化するとともに、窒素酸化物（ＮＯｘ）を還元する機能を有する。更に、各触媒は、酸素を吸蔵（貯蔵）する酸素吸蔵機能を有し、この酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃ガス及び窒素酸化物を浄化することができる。この酸素吸蔵機能は、触媒に担持されているセリア(CeO2)によってもたらされる。
【００４３】
一方、このシステムは、熱線式エアフローメータ６１、吸気温センサ６２、スロットルポジションセンサ６３、カムポジションセンサ６４、クランクポジションセンサ６５、水温センサ６６、空燃比センサ６７、酸素濃度センサ６８、及びアクセル開度センサ６９を備えている。
【００４４】
エアフローメータ６１は、吸気管４１内を流れる吸入空気の質量流量（吸入空気流量）Gaに応じた信号を出力するようになっている。吸気温センサ６２は、吸入空気の温度を検出し、吸気温度THAを表す信号を出力するようになっている。スロットルポジションセンサ６３は、スロットルバルブ４３の開度（スロットルバルブ開度）を検出し、スロットルバルブ開度TAを表す信号を出力するようになっている。
【００４５】
カムポジションセンサ６４は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。クランクポジションセンサ６５は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。水温センサ６６は、内燃機関１０の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【００４６】
空燃比センサ６７は、排気通路であって上流側触媒５３よりも上流側に配設されている。空燃比センサ６７は、所謂「限界電流式酸素濃度センサ」であって、上流側触媒５３に流入する排ガス中の空燃比を検出し、図２に示したように、検出した空燃比（検出空燃比）に応じた信号Vabyf(V)を出力するようになっている。
【００４７】
酸素濃度センサ６８は、排気通路であって上流側触媒５３よりも下流側であり下流側触媒５４よりも上流側に配設されている。酸素濃度センサ６８は、所謂「濃淡電池型の酸素センサ」である。図３に示したように、酸素濃度センサ６８は、上流側触媒５３から流出するガスの空燃比が理論空燃比よりもリッチ及びリーンのとき最大出力値max(V)及び最小出力値min(V)をそれぞれ出力し、上流側触媒５３から流出するガスの空燃比が理論空燃比であるとき最大出力値maxと最小出力値minの略中間の値（目標空燃比相当目標値Voxsref(V)）を出力するようになっている。
【００４８】
アクセル開度センサ６９は、運転者によって操作されるアクセルペダル７１の操作量Accpを表す信号を出力するようになっている。
【００４９】
電気制御装置８０は、互いにバスで接続されたＣＰＵ８１、ＣＰＵ８１が実行するプログラム、テーブル（マップ、関数）及び定数等を予め記憶したＲＯＭ８２、ＣＰＵ８１が必要に応じてデータを一時的に格納するＲＡＭ８３、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ８４並びにＡＤコンバータを含むインターフェース８５等からなるマイクロコンピュータである。
【００５０】
インターフェース８５は、前記センサ６１〜６９と接続され、ＣＰＵ８１にセンサ６１〜６９からの信号を供給するとともに、ＣＰＵ８１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９、スロットルバルブアクチュエータ４３ａ及びＳＣＶアクチュエータ４４ａに駆動信号を送出するようになっている。
【００５１】
（空燃比フィードバック制御の概要）
次に、上記のように構成された空燃比制御装置（以下、「本装置」と称呼することもある。）による空燃比フィードバック制御の概要について説明する。本装置は、上流側触媒５３から流出するガスの空燃比が目標空燃比（＝理論空燃比）となるように機関に供給する混合気の空燃比（従って、上流側触媒５３に流入するガスの空燃比。以下、単に「空燃比」とも称呼する。）を制御する。
【００５２】
具体的には、本装置は、上流側触媒５３の下流に配設された酸素濃度センサ６８の出力値Voxs(V)と理論空燃比に相当する上記目標空燃比相当目標値Voxsref(V)（一定）との偏差についてＰＩＤ処理してフィードバック補正値（サブフィードバック補正量Vafsfb(％)）を求め、サブフィードバック補正量Vafsfbに基づいて（実際には、空燃比センサ６７の出力値Vabyf(V)にも基づいて）空燃比をフィードバック制御する。なお、酸素濃度センサ６８の出力値Voxsに基づく空燃比フィードバック制御を、特に「サブフィードバック制御」と呼ぶこともある。
【００５３】
また、本装置は、機関の運転状態に応じてフューエルカット制御を行うとともに、フューエルカット制御中は上記空燃比フィードバック制御を中断する。以下、「フューエルカット制御」を「ＦＣ」と呼ぶこともある。
【００５４】
加えて、本装置は、ＦＣから復帰した後の所定の期間内（フラグＯＲＥ＝１の間）においてのみ、上記ＰＩＤ処理のうちＩ処理を、上記「酸素濃度センサ６８の出力値Voxsと目標空燃比相当目標値Voxsrefとの偏差」に代えて、「酸素濃度センサ６８の出力値Voxsと後述するように設定・変更される理論空燃比よりもリーンの空燃比に相当する偏差積分値更新用目標値Voxsrefiとの偏差」を用いて行う。そして、本装置は、これにより得られるサブフィードバック補正量Vafsfbに基づいて空燃比フィードバック制御を行う。以上が、本装置による空燃比フィードバック制御の概要である。
【００５５】
（実際の作動）
次に、上記のように構成された空燃比制御装置の実際の作動について、電気制御装置８０のＣＰＵ８１が実行するルーチン（プログラム）をフローチャートにより示した図４〜図８、並びに、図９を参照しながら説明する。
【００５６】
図９は、時刻ｔ１〜ｔ２の間においてＦＣが実行される場合における、フラグＯＲＥ、目標空燃比相当目標値Voxsref及び偏差積分値更新用目標値Voxsrefi、並びに、ＦＣ開始時点からの上流側触媒５３の酸素吸蔵量の増加分ＯＳＡのそれぞれの変化の一例を示したタイムチャートである。フラグＯＲＥは、その値が「１」のときＦＣ復帰後において酸素吸蔵量の増加分ＯＳＡが残存している状態を示し、その値が「０」のときＦＣ復帰後において酸素吸蔵量の増加分ＯＳＡが残存していない状態を示す。以下、現時点が時刻ｔ１以前であり、且つ、フラグＯＲＥの値が「０」であるものとして説明を開始する。
【００５７】
ＣＰＵ８１は、図４に示した燃料噴射量Fiの計算及び燃料噴射の指示を行うルーチンを、任意の気筒のクランク角が吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、或る気筒（以下、「燃料噴射気筒」と称呼する。）のクランク角度が前記所定クランク角度になると、ＣＰＵ８１はステップ４００から処理を開始してステップ４０５に進み、ＦＣ中であるか否かを判定する。
【００５８】
現時点は、時刻ｔ１以前であるからＦＣ中ではない。従って、ＣＰＵ８１はステップ４０５にて「Ｎｏ」と判定してステップ４１０に進み、エアフローメータ６１により計測されている吸入空気流量Gaとエンジン回転速度NEとに基づいて今回の吸気行程において燃焼室２５内に吸入される空気量（筒内吸入空気量Mc）をマップfから求める。このマップfは、ＲＯＭ８２に予め記憶されている。
【００５９】
続いて、ＣＰＵ８１はステップ４１５に進み、上記求めた筒内吸入空気量Mcを目標空燃比abyfr（本例では、理論空燃比）で除することで空燃比を目標空燃比とするための基本燃料噴射量Fbaseを求める。次いで、ＣＰＵ８１はステップ４２０に進み、燃料噴射量Fiを、上記求めた基本燃料噴射量Fbaseに後述する空燃比フィードバック補正量DFiを加えた値に設定する。
【００６０】
そして、ＣＰＵ８１はステップ４２５に進んで燃料噴射量Fiの燃料を噴射するための指示を燃料噴射気筒に対応するインジェクタ３９に対して行い、ステップ４９５に進んで本ルーチンを一旦終了する。これにより、フィードバック補正された燃料噴射量Fiの燃料が吸気行程を迎える気筒に対して噴射される。このような処理は、ＦＣが開始されるまで（図９の時刻ｔ１が到来するまで）繰り返し実行される。
【００６１】
次に、上記空燃比フィードバック補正量DFiの算出について説明する。ＣＰＵ８１は図５に示したルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ５００から処理を開始し、ステップ５０５に進んで空燃比フィードバック制御条件が成立しているか否かを判定する。空燃比フィードバック制御条件は、例えば、ＦＣが実行されておらず、水温センサ６６により検出される機関の冷却水温THWが所定温度以上であり、機関の一回転当りの吸入空気量（負荷）が所定値以下であり、且つ、空燃比センサ６７及び酸素濃度センサ６８が活性状態にあるときに成立する。以下、ＦＣ以外の条件は全て成立しているものとして説明を続ける。
【００６２】
現時点は、時刻ｔ１以前であるからＦＣが実行されていない。即ち、空燃比フィードバック制御条件が成立している。従って、ＣＰＵ８１はステップ５０５にて「Ｙｅｓ」と判定してステップ５１０に進み、現時点の空燃比センサ６７の出力値Vabyf(V)と、後述するサブフィードバック補正量Vafsfb(％)と、ステップ５１０内に記載の式とに基づいて制御用空燃比相当出力値Vabyfs(V)を求める。
【００６３】
続いて、ＣＰＵ８１はステップ５１５に進んで、上記求めた制御用空燃比相当出力値Vabyfsと、図２に示したマップに基づいて現時点における制御用空燃比abyfsを求める。この空燃比は、上流側触媒５３の上流におけるガスの「みかけの空燃比」である。
【００６４】
次に、ＣＰＵ８１はステップ５２０に進み、先のステップ４１０にて求めた最新の（今回の吸気行程についての）筒内吸入空気量Mcを上記求めた制御用空燃比abyfsで除することにより、今回の吸気行程についての筒内燃料供給量Fcを求める。次いで、ＣＰＵ８１はステップ５２５に進み、上記筒内吸入空気量Mcを目標空燃比abyfrで除することにより、今回の吸気行程についての目標筒内燃料供給量Fcrを求める。
【００６５】
続いて、ＣＰＵ８１はステップ５３０に進んで、筒内燃料供給量偏差DFcを、目標筒内燃料供給量Fcrから筒内燃料供給量Fcを減じた値に設定する。つまり、筒内燃料供給量偏差DFcは、今回の吸気行程についての燃料の過不足分を表す量となる。
【００６６】
次に、ＣＰＵ８１はステップ５３５に進み、その時点における筒内燃料供給量偏差DFcの積分値SDFcに上記ステップ５３０にて求めた筒内燃料供給量偏差DFcを加えることで筒内燃料供給量偏差の積分値SDFcを更新する。
【００６７】
そして、ＣＰＵ８１はステップ５４０に進んで、上記ステップ５３０にて求めた筒内燃料供給量偏差DFcと、上記ステップ５３５にて更新した筒内燃料供給量偏差の積分値SDFcと、ステップ５４０内に記載の式とに基づいて空燃比フィードバック補正量DFiを求める。ここにおいて、Gpは予め設定された比例ゲイン、Giは予め設定された積分ゲインである。なお、係数KFBはエンジン回転速度NE及び筒内吸入空気量Mc等により可変とすることが好適であるが、ここでは「１」としている。そして、ＣＰＵ８１はステップ５９５に進んで本ルーチンを一旦終了する。
【００６８】
以上により、空燃比フィードバック補正量DFiが比例積分処理（ＰＩ処理）により求められ、この空燃比フィードバック補正量DFiが前述した図４のステップ４２０及びステップ４２５により燃料噴射量Fiに反映される。
【００６９】
この結果、今回の吸気行程についての燃料供給量の過不足が補償されるので、空燃比（従って、上流側触媒５３に流入するガスの空燃比）の平均値が目標空燃比abyfr（＝理論空燃比）と略一致せしめられる。このような処理は、ＦＣが開始されるまで（図９の時刻ｔ１が到来するまで）繰り返し実行される。
【００７０】
次に、酸素濃度センサ６８の出力Voxsに基づく空燃比フィードバック制御（即ち、サブフィードバック制御）について説明する。このサブフィードバック制御により、上述したサブフィードバック補正量Vafsfb(％)が算出される。このサブフィードバック補正量Vafsfbが前記「フィードバック補正値」に対応する。
【００７１】
ＣＰＵ８１は、サブフィードバック補正量Vafsfbを求めるために、図６に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ６００から処理を開始し、ステップ６０５に進み、先のステップ５０５と同じ空燃比フィードバック制御条件が成立しているか否かを判定する。
【００７２】
上述のごとく、現時点は、時刻ｔ１以前でありＦＣが実行されていないから空燃比フィードバック制御条件が成立している。従って、ＣＰＵ８１はステップ６０５にて「Ｙｅｓ」と判定してステップ６１０に進み、ＦＣからの復帰により空燃比フィードバック制御が再開した直後（図９の時刻ｔ２の直後）であるか否かを判定する。
【００７３】
現時点は、時刻ｔ１以前であって、ＦＣからの復帰により空燃比フィードバック制御が再開した直後ではない。従って、ＣＰＵ８１はステップ６１０にて「Ｎｏ」と判定してステップ６１５に進み、フラグＯＲＥの値が「０」であるか否かを判定する。
【００７４】
現時点では、フラグＯＲＥの値は「０」に維持されている（図９を参照）。従って、ＣＰＵ８１はステップ６１５にて「Ｙｅｓ」と判定してステップ６２０に進み、偏差積分値更新用目標値Voxsrefiを目標空燃比相当目標値Voxsrefと等しい値に設定する。
【００７５】
続いて、ＣＰＵ８１はステップ６２５に進んで、偏差DVoxsを、目標空燃比相当目標値Voxsref（一定）から酸素濃度センサ６８の出力値Voxsを減じた値に設定する。この偏差DVoxsは、常に、前記「空燃比センサの出力値と目標空燃比相当目標値との偏差に相当する値」に対応する。
【００７６】
次いで、ＣＰＵ８１はステップ６３０に進んで、偏差積分値更新用偏差DVoxsiを、上記ステップ６２０にて設定した偏差積分値更新用目標値Voxsrefi（＝目標空燃比相当目標値Voxsref）から酸素濃度センサ６８の出力値Voxを減じた値に設定する。即ち、この段階での偏差積分値更新用偏差DVoxsi（＝偏差DVoxs）は、前記「空燃比センサの出力値と目標空燃比相当目標値との偏差に相当する値」に対応する。
【００７７】
次に、ＣＰＵ８１はステップ６３５に進み、その時点における偏差積分値SDVoxs（偏差積分値更新用偏差DVoxsiの積分値）に上記ステップ６３０にて求めた偏差積分値更新用偏差DVoxsiを加えることで偏差積分値SDVoxsを更新する。即ち、この段階での偏差積分値SDVoxsは、「空燃比センサの出力値と目標空燃比相当目標値との偏差に相当する値」を逐次積算して更新されていく。
【００７８】
続いて、ＣＰＵ８１はステップ６４０に進んで、上記ステップ６２５にて求めた偏差DVoxsと、前回の偏差DVoxsbと、ステップ６４０内に記載の式とに基づいて偏差DVoxsの時間微分値DDVoxsを求める。前回の偏差DVoxsbとしては、前回の本ルーチン実行時において後述するステップ６５０にて更新されている値が使用される。Δｔは本ルーチンの実行間隔時間（例えば、8msec）である。
【００７９】
次に、ＣＰＵ８１はステップ６４５に進み、上記ステップ６２５にて求めた偏差DVoxsと、上記ステップ６３５にて更新した偏差積分値SDVoxsと、上記ステップ６４０にて求めた偏差の時間微分値DDVoxsと、後述する偏差積分値SDVoxsの学習値Learnと、ステップ６４５内に記載の式とに基づいてサブフィードバック補正量Vafsfb(％)を求める。ここにおいて、Kpは予め設定された比例ゲイン、Kiは予め設定された積分ゲイン、Kdは予め設定された微分ゲインである。
【００８０】
ステップ６４５内に記載の式において、右辺第１項「Kp・DVoxs」が比例項に、右辺第２項「Ki・SDVoxs」と右辺第４項「Ki・Learn」の和が積分項に、右辺第３項「Kd・DDVoxs」が微分項にそれぞれ対応している。即ち、サブフィードバック補正量Vafsfbは、比例項と、積分項と、微分項とに基づいて算出される。比例項と微分項は、常に、前記「空燃比センサの出力値と目標空燃比相当目標値との偏差に相当する値」そのものを使用して算出される。また、この段階での積分項は、前記「空燃比センサの出力値と目標空燃比相当目標値との偏差に相当する値」を使用して算出される。
【００８１】
そして、ＣＰＵ８１はステップ６５０に進んで、前回の偏差DVoxsbを上記ステップ６２５にて求めた偏差DVoxsに設定した後、ステップ６９５に進んで本ルーチンを一旦終了する。
【００８２】
このようにして、サブフィードバック補正量Vafsfb(％)が求められ、この値は前述した図５のステップ５１０における制御用空燃比相当出力値Vabyfs(V)の計算に使用される。そして、制御用空燃比相当出力値Vabyfs(V)が図２に示したマップに基づいて制御用空燃比abyfsに変換される。換言すると、制御用空燃比abyfsは、空燃比センサ６７が実際に検出している空燃比に対して、酸素濃度センサ６８の出力値Voxsに基づいて求められるサブフィードバック補正量Vafsfb(％)に相当する分だけ異なる空燃比として求められる。
【００８３】
この結果、前述した図５のステップ５２０にて計算される筒内燃料供給量Fcが酸素濃度センサ６８の出力値Voxsに応じて変化するので、ステップ５３０〜５４０によって空燃比フィードバック補正量DFiが酸素濃度センサ６８の出力値Voxsに応じて変更せしめられる。これにより、上流側触媒５３の下流側の空燃比が目標空燃比abyfr（＝理論空燃比）に一致するように、空燃比が制御せしめられる。
【００８４】
例えば、機関の平均的な空燃比がリーンであるために酸素濃度センサ６８の出力値Voxsが目標空燃比相当目標値Voxsref（一定）よりも小さい値（即ち、リーン側に偏移した値）となっていると、ステップ６２５にて求められる偏差DVoxs（及び、ステップ６３０にて求められる積分値更新用偏差DVoxsi）が正の値となるので、ステップ６４５にて求められるサブフィードバック補正量Vafsfbは正の値となる。従って、ステップ５１５にて求められる制御用空燃比abyfsは空燃比センサ６７が実際に検出している空燃比よりもリーンな値（より大きな値）として求められる。
【００８５】
このため、ステップ５２０にて求められる筒内燃料供給量Fcは小さい値となり、ステップ５３０にて求められる筒内燃料供給量偏差DFcは大きい値となる。従って、空燃比フィードバック補正量DFiが大きい正の値となる。この結果、図４のステップ４２０にて求められる燃料噴射量Fiは、基本燃料噴射量Fbaseよりも大きくなって、空燃比がリッチ側の値となるように制御される。
【００８６】
反対に、機関の平均的な空燃比がリッチであるために酸素濃度センサ６８の出力値Voxsが目標空燃比相当目標値Voxsref（一定）よりも大きい値（即ち、リッチ側に偏移した値）となっていると、偏差DVoxs（及び積分値更新用偏差DVoxsi）が負の値となるので、サブフィードバック補正量Vafsfbは負の値となる。従って、ステップ５１５にて求められる制御用空燃比abyfsは空燃比センサ６７が実際に検出している空燃比よりもリッチな値（より小さな値）として求められる。
【００８７】
従って、筒内燃料供給量Fcは大きい値となるので、筒内燃料供給量偏差DFcは負の値となる。その結果、空燃比フィードバック補正量DFiが負の値となる。これにより、燃料噴射量Fiは、基本燃料噴射量Fbaseよりも小さくなって、空燃比がリーン側の値となるように制御される。このような処理は、ＦＣが開始されるまで（図９の時刻ｔ１が到来するまで）繰り返し実行される。
【００８８】
次に、偏差積分値SDVoxsの学習値Learnの更新（学習）について説明する。ＣＰＵ８１は、図７に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ７０５に進み、偏差積分値の学習値Learnの学習タイミングが到来しているか否かを判定し、「Ｎｏ」と判定する場合、ステップ７９５に直ちに進んで本ルーチンを一旦終了する。偏差積分値の学習値Learnの学習タイミングは、例えば、本例では、ＦＣ中であるか否かにかかわらず、燃料噴射回数が所定の回数に達する毎に到来する。
【００８９】
偏差積分値の学習値Learnの学習タイミングが到来した場合、ＣＰＵ８１はステップ７０５にて「Ｙｅｓ」と判定してステップ７１０に進み、学習値更新量DLearnを、上記ステップ６３５にて更新されている偏差積分値SDVoxsの最新値を値Nrefで除した値に設定する。値Nrefは、「１」以上の値であり、例えば、「１」、「２」、「４」、「８」などに設定される。
【００９０】
続いて、ＣＰＵ８１はステップ７１５に進んで、その時点における偏差積分値の学習値Learnに上記ステップ７１０にて求めた学習値更新量DLearnを加えることで偏差積分値の学習値Learnを更新する。次いで、ＣＰＵ８１はステップ７２０に進み、その時点における偏差積分値SDVoxsから上記学習値更新量DLearnを減じることで偏差積分値SDVoxsを再設定した後、ステップ７９５に進んで本ルーチンを一旦終了する。
【００９１】
このように、学習タイミングが到来する毎に、偏差積分値SDVoxsと偏差積分値の学習値Learnの和（SDVoxs＋Learn）を変更することなく偏差積分値の学習値Learnが更新されていく。これにより、学習タイミングが到来する毎に、偏差積分値SDVoxsが次第に「０」に近づいていく一方で、偏差積分値の学習値Learnが上記「燃料噴射量の誤差」の大きさを正確に表す値（即ち、偏差積分値の学習値Learnが収束すべき値）に近づいていく。なお、偏差積分値の学習値Learnが上記「燃料噴射量の誤差」の大きさを正確に表す値に近づいていく速度は、値Nrefが大きいほど小さくなる。このような処理は、ＦＣの実行タイミングとは無関係に繰り返し実行される。
【００９２】
次に、ＦＣ開始時点からの上流側触媒５３の酸素吸蔵量の増加分ＯＳＡ（図９を参照）の計算について説明する。ＣＰＵ８１は、図８に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ８０５に進み、ＦＣ中であるか否かを判定する。
【００９３】
上述のごとく、現時点は、時刻ｔ１以前であり、ＦＣ中ではない。従って、ＣＰＵ８１はステップ８０５にて「Ｎｏ」と判定してステップ８１０に進み、フラグＯＲＥの値が「１」であるか否かを判定する。
【００９４】
現時点では、上述のごとく、フラグＯＲＥの値は「０」に維持されている。従って、ＣＰＵ８１はステップ８１０にて「Ｎｏ」と判定してステップ８９５に直ちに進んで本ルーチンを一旦終了する。このような処理は、ＦＣが開始されるまで（図９の時刻ｔ１が到来するまで）繰り返し実行される。
【００９５】
以上、図９に示すように、空燃比フィードバック制御条件が成立している時刻ｔ１以前では、上述した空燃比フィードバック制御が実行される。この間、偏差積分値更新用目標値Voxsrefiは目標空燃比相当目標値Voxsref（一定）と等しい値に維持されるとともに、フラグＯＲＥの値は「０」に維持される。
【００９６】
次に、時刻ｔ１が到来した場合について説明する。時刻ｔ１になると、図９に示すように、ＦＣが開始される。従って、図４のルーチンを繰り返し実行しているＣＰＵ８１は、ステップ４０５に進んだとき「Ｙｅｓ」と判定するようになり、ステップ４９５に直ちに進んで本ルーチンを一旦終了する。
【００９７】
このような処理は、ＦＣが終了するまで（図９の時刻ｔ２が到来するまで）繰り返し実行される。これにより、時刻ｔ１〜ｔ２の間、燃料噴射が中断される。
【００９８】
また、時刻ｔ１になると、ＦＣが開始されることで空燃比フィードバック制御条件が成立しなくなる。従って、図５のルーチンを繰り返し実行しているＣＰＵ８１は、ステップ５０５に進んだとき「Ｎｏ」と判定するようになり、ステップ５４５に進んで、空燃比フィードバック補正量DFiの値を「０」に設定し、ステップ５９５に進んで本ルーチンを一旦終了する。
【００９９】
このように、ＦＣ中など、空燃比フィードバック制御条件が不成立であるときは、空燃比フィードバック補正量DFiを「０」に設定して空燃比（基本燃料噴射量Ｆbase）の補正を行わない。このような処理は、ＦＣが終了するまで（図９の時刻ｔ２が到来するまで）繰り返し実行される。
【０１００】
同様に、時刻ｔ１になると、図６のルーチンを繰り返し実行しているＣＰＵ８１は、ステップ６０５に進んだとき「Ｎｏ」と判定してステップ６９５に直ちに進んで本ルーチンを一旦終了するようになる。このように、空燃比フィードバック制御条件が不成立であるときは、サブフィードバック補正量Vafsfbの計算を行わない。このような処理は、ＦＣが終了するまで（図９の時刻ｔ２が到来するまで）繰り返し実行される。
【０１０１】
また、時刻ｔ１になると、図８のルーチンを繰り返し実行しているＣＰＵ８１は、ステップ８０５に進んだとき「Ｙｅｓ」と判定するようになり、ステップ８１５に進んで、ＦＣ開始直後であるか否かを判定する。
【０１０２】
現時点は、時刻ｔ１の直後であって、ＦＣ開始直後である。従って、ＣＰＵ８１はステップ８１５にて「Ｙｅｓ」と判定してステップ８２０に進み、ＦＣ開始時点からの上流側触媒５３の酸素吸蔵量の増加分ＯＳＡ（以下、単に「酸素吸蔵量の増加分ＯＳＡ」と称呼する。）を「０」に初期化する（図９を参照）。
【０１０３】
続いて、ＣＰＵ８１はステップ８２５に進んで、酸素吸蔵量変化量ＤＯＳＡを、エアフローメータ６１により計測されている現時点での吸入空気流量Gaと、ステップ８２５内に記載の式とに従って求める。ここで、値「0.23」は、空気中に含まれる酸素の質量割合である。Δｔは、本ルーチンの実行間隔時間（例えば、8msec）である。
【０１０４】
上流側触媒５３に流入するガスの流速は、吸入空気流量Gaと略等しいと考えることができる。加えて、ＦＣ中では、上流側触媒５３に流入するガスは空気そのものとなる。即ち、ステップ８２５内に記載の式において、値「Ga・Δｔ」は、本ルーチンの実行間隔時間Δｔの間において上流側触媒５３に流入した空気量（質量）を表す。従って、値「0.23・Ga・Δｔ」（即ち、ステップ８２５における酸素吸蔵量変化量ＤＯＳＡ）は、本ルーチンの実行間隔時間Δｔの間において上流側触媒５３に流入した酸素量（質量）、即ち、本ルーチンの実行間隔時間Δｔの間における酸素吸蔵量の増加分ＯＳＡの増加量（＞０）を表す。
【０１０５】
次に、ＣＰＵ８１はステップ８３０に進み、その時点における酸素吸蔵量の増加分ＯＳＡに上記ステップ８２５にて求めた酸素吸蔵量変化量ＤＯＳＡ（＞０）を加えることで酸素吸蔵量の増加分ＯＳＡを更新する（増大させる）。
【０１０６】
次いで、ＣＰＵ８１はステップ８３５に進んで、ステップ８３０にて更新した酸素吸蔵量の増加分ＯＳＡが上流側触媒５３の最大酸素吸蔵量Cmaxを超えたか否かを判定し、「Ｙｅｓ」と判定する場合、続くステップ８４０にて酸素吸蔵量の増加分ＯＳＡを最大酸素吸蔵量Cmaxに制限した後、ステップ８９５に進む。一方、「Ｎｏ」と判定する場合、ステップ８９５に直ちに進む。
【０１０７】
なお、上流側触媒５３の最大酸素吸蔵量Cmaxは、周知の手法（例えば、酸素濃度センサ６８の出力値Voxsが反転するタイミングで空燃比を所定のリッチ・リーン空燃比の一方から他方に切り換える所謂アクティブ空燃比制御等）により所定のタイミング毎に取得・更新されている。
【０１０８】
このような処理は、ＦＣが開始される時刻ｔ１からＦＣが終了する時刻ｔ２まで繰り返し実行される。これにより、図９に示すように、時刻ｔ１〜ｔ２の間、酸素吸蔵量の増加分ＯＳＡが吸入空気流量Gaに応じた速度で次第に増大していく。
【０１０９】
以上、図９に示すように、ＦＣ中である時刻ｔ１〜ｔ２の間、燃料噴射が中断されて上述した空燃比フィードバック制御も中断される。この間、酸素吸蔵量の増加分ＯＳＡ（従って、上流側触媒５３の酸素吸蔵量）が増大していく。この結果、上流側触媒５３内のリーン雰囲気の程度が次第に大きくなっていき、酸素濃度センサ６８の出力値Voxsはリーンを示す値（＜目標空燃比相当目標値Voxsref）になる。また、フラグＯＲＥの値はなお「０」に維持される。
【０１１０】
次に、時刻ｔ２が到来した場合について説明する。時刻ｔ２になると、図９に示すように、ＦＣが終了する。従って、時刻ｔ２以降、図４のルーチンを繰り返し実行しているＣＰＵ８１は、ステップ４０５に進んだとき再び「Ｎｏ」と判定するようになる。
【０１１１】
加えて、時刻ｔ２になると、ＦＣが実行されなくなるから、時刻ｔ２以降、空燃比フィードバック制御条件が再び成立するようになる。従って、図５、図６のルーチンを繰り返し実行しているＣＰＵ８１は、ステップ５０５、６０５に進んだとき再び「Ｙｅｓ」と判定するようになる。このように、ＦＣから復帰すると、空燃比フィードバック制御が直ちに再開される。
【０１１２】
更には、時刻ｔ２が到来すると、図６のルーチンを繰り返し実行しているＣＰＵ８１は、ステップ６０５で「Ｙｅｓ」と判定し、ステップ６１０に進んだとき「Ｙｅｓ」と判定してステップ６５５に進み、フラグＯＲＥの値を「０」から「１」に変更する（図９を参照）。
【０１１３】
従って、ＣＰＵ８１は続くステップ６１５にて「Ｎｏ」と判定し、上記ステップ６２０に代えてステップ６６０に進んで、偏差積分値更新用目標値Voxsrefiを、目標空燃比相当目標値Voxsrefに代えて、酸素吸蔵量の増加分ＯＳＡと図１０に示したテーブルMapVoxsrefiとに基づいて決定するようになる。酸素吸蔵量の増加分ＯＳＡとしては、図８のルーチンの処理（現時点では、ステップ８３０の処理、以降は、後述するステップ８５５の処理）により更新されている値が使用される。
【０１１４】
なお、図１０に示したテーブルは、偏差積分値の学習値Learnが上記収束すべき値に収束した状態で（即ち、空燃比が目標空燃比abyfrに一致している状態で）ＦＣを開始するとともに、そのＦＣが終了した時点以降において、後述するようにサブフィードバック補正に起因して減少していく酸素吸蔵量の増加分ＯＳＡと、酸素濃度センサ６８の出力値Voxsとの関係の推移をプロットしていく実験の結果に基づいて作製されている。
【０１１５】
これにより、図９に示すように、時刻ｔ２以降、偏差積分値更新用目標値Voxsrefiは、目標空燃比相当目標値Voxsref（一定）とは別の目標空燃比abyfrよりもリーンの空燃比に相当する値（＜目標空燃比相当目標値Voxsref）に設定されるようになる。
【０１１６】
この結果、ステップ６３０では、偏差積分値更新用偏差DVoxsiが、上記ステップ６６０にて設定した偏差積分値更新用目標値Voxsrefi（＜目標空燃比相当目標値Voxsref）から酸素濃度センサ６８の出力値Voxsを減じた値に設定される。このように、時刻ｔ２以降における偏差積分値更新用偏差DVoxsiは、前記「空燃比センサの出力値と偏差積分値更新用目標値との偏差に相当する値」に対応する。
【０１１７】
この結果、時刻ｔ２以降における偏差積分値SDVoxsは、ステップ６３５において、「空燃比センサの出力値と偏差積分値更新用目標値との偏差に相当する値」を逐次積算して更新されていく。即ち、時刻ｔ２以降において、ステップ６４５にて計算される積分項は、前記「空燃比センサの出力値と偏差積分値更新用目標値との偏差に相当する値」を使用して算出されるようになる。
【０１１８】
加えて、上述したように、時刻ｔ２では、酸素濃度センサ６８の出力値Voxsはリーンを示す値（＜目標空燃比相当目標値Voxsref）になっている。従って、時刻ｔ２以降、ステップ６２５にて計算される偏差DVoxsは大きい正の値となることが保証され得る。一方、「偏差積分値更新用目標値Voxsrefi＜目標空燃比相当目標値Voxsref」の関係を考慮すると、時刻ｔ２以降において、ステップ６３０にて計算される偏差積分値更新用偏差DVoxsiは、ステップ６２５にて計算される偏差DVoxsよりも小さい値となる。即ち、時刻ｔ２以降において、偏差積分値更新用偏差DVoxsiは大きい正の値とはなり難い。
【０１１９】
このように、時刻ｔ２以降において、少なくとも偏差DVoxsは大きい正の値となることが保証され得る。このため、少なくともサブフィードバック補正量Vafsfbの比例項（従って、サブフィードバック補正量Vafsfbそのもの）は、正の値、即ち、空燃比をリッチ側へ補正するための値となる。この結果、時刻ｔ２以降、空燃比は目標空燃比abyfr（＝理論空燃比）よりもリッチ空燃比に制御される。
【０１２０】
また、時刻ｔ２以降になると、図８のルーチンを繰り返し実行しているＣＰＵ８１は、ステップ８０５に進んだとき「Ｎｏ」と判定してステップ８１０に進むようになる。加えて、この段階では、先のステップ６５５の処理によりフラグＯＲＥの値が「１」になっている。
【０１２１】
従って、ＣＰＵ８１はステップ８１０にて「Ｙｅｓ」と判定してステップ８４５に進み、酸素濃度センサ６８の出力値Voxsが目標空燃比相当目標値Voxsref（一定）よりも小さいか否か（即ち、リーンを示す値になっているか否か）を判定する。
【０１２２】
上述したように、現時点では、酸素濃度センサ６８の出力値Voxsはリーンを示す値（＜Voxsref）になっている。従って、ＣＰＵ８１はステップ８４５にて「Ｙｅｓ」と判定してステップ８５０に進み、酸素吸蔵量変化量ＤＯＳＡを、エアフローメータ６１により計測されている現時点での吸入空気流量Gaと、上記ステップ６４５にて計算されているサブフィードバック補正量Vafsfbと、ステップ８５０内に記載の式とに従って求める。上記ステップ８２５と同様、値「0.23」は、空気中に含まれる酸素の質量割合である。Δｔは、本ルーチンの実行間隔時間（例えば、8msec）である。
【０１２３】
上述したように、時刻ｔ２以降では、サブフィードバック補正量Vafsfb(％)が正の値となって空燃比が目標空燃比abyfr（＝理論空燃比）よりもリッチ空燃比に制御される。従って、時刻ｔ２以降、上流側触媒５３の酸素吸蔵量は減少していく。加えて、サブフィードバック補正量Vafsfb(％)が大きいほど、空燃比がよりリッチとなって上流側触媒５３の酸素吸蔵量の減少速度が大きくなる。
【０１２４】
従って、上述したように、値「0.23・Ga・Δｔ」が本ルーチンの実行間隔時間Δｔの間において上流側触媒５３に流入した酸素量（質量）を表すことを考慮すると、値「0.23・Ga・Δｔ・Vafsfb」（即ち、ステップ８５０における酸素吸蔵量変化量ＤＯＳＡ）は、本ルーチンの実行間隔時間Δｔの間におけるサブフィードバック補正に起因する上流側触媒５３の酸素吸蔵量の減少の程度を表す値となる。即ち、ステップ８５０における酸素吸蔵量変化量ＤＯＳＡは、本ルーチンの実行間隔時間Δｔの間における酸素吸蔵量の増加分ＯＳＡの減少量（＞０）を表す。
【０１２５】
次に、ＣＰＵ８１はステップ８５５に進み、その時点における酸素吸蔵量の増加分ＯＳＡから上記ステップ８５０にて求めた酸素吸蔵量変化量ＤＯＳＡ（＞０）を減じることで酸素吸蔵量の増加分ＯＳＡを更新する（減少させる）。
【０１２６】
次いで、ＣＰＵ８１はステップ８６０に進んで、ステップ８５５にて更新した酸素吸蔵量の増加分ＯＳＡが「０」よりも大きいか否かを判定する。現時点は、時刻ｔ１〜ｔ２の間に亘って増大してきた酸素吸蔵量の増加分ＯＳＡが減少を開始した直後であるから、酸素吸蔵量の増加分ＯＳＡは「０」よりも大きい。従って、ＣＰＵ８１はステップ８６０にて「Ｙｅｓ」と判定してステップ８９５に進んで本ルーチンを一旦終了する。
【０１２７】
このような処理は、時刻ｔ２以降において減少していく酸素吸蔵量の増加分ＯＳＡが「０」になる時刻ｔ３まで繰り返し実行される。これにより、図９に示すように、時刻ｔ２〜ｔ３の間、酸素吸蔵量の増加分ＯＳＡが、吸入空気流量Ga及びサブフィードバック補正量Vafsfbに応じた速度で次第に減少していく。
【０１２８】
この結果、図９に示すように、上記ステップ６６０にて図１０に示したテーブルを用いて決定される偏差積分値更新用目標値Voxsrefiは、酸素吸蔵量の増加分ＯＳＡの減少に伴って増大し、目標空燃比相当目標値Voxsrefに次第に近づいていく（即ち、よりリッチな空燃比に相当する値に変更されていく）。なお、フラグＯＲＥの値は「１」に維持される。
【０１２９】
以上、図９に示すように、ＦＣから復帰した時刻ｔ２から酸素吸蔵量の増加分ＯＳＡが「０」になる時刻ｔ３の間（前記所定の期間に対応する）、空燃比フィードバック制御によるサブフィードバック補正により空燃比がサブフィードバック補正量Vafsfbに応じたリッチ空燃比に制御される。これにより、酸素吸蔵量の増加分ＯＳＡ（従って、上流側触媒５３の酸素吸蔵量）が減少していく。この結果、上流側触媒５３内のリーン雰囲気の程度が次第に小さくなっていき、酸素濃度センサ６８の出力値Voxsはリーンを示す値から目標空燃比相当目標値Voxsrefに次第に近づいていく。
【０１３０】
以上より、時刻ｔ２〜ｔ３の間、偏差積分値更新用目標値Voxsrefiと酸素濃度センサ６８の出力値Voxsとは同じ傾向をもって推移していく。換言すれば、時刻ｔ２〜ｔ３の間、上記ステップ６３０にて計算される偏差積分値更新用偏差DVoxsiは小さい値に維持され得る。
【０１３１】
このことは、時刻ｔ２〜ｔ３の間において、上記ステップ６３５にて更新される偏差積分値SDVoxsが空燃比をリッチ側へ補正するための値として過度に増大していくことが抑制され得ることを意味する。換言すれば、時刻ｔ２〜ｔ３の間において、上記ステップ７０５の学習タイミングが到来して偏差積分値の学習値Learnが更新（学習）されても、上記「偏差積分値のリッチ側への誤学習」が抑制され得る。
【０１３２】
次に、時刻ｔ３が到来した場合について説明する。時刻ｔ３になると、図９に示すように、減少してきた酸素吸蔵量の増加分ＯＳＡが「０」になる。このことは、上流側触媒５３内のリーン雰囲気が解消したことを意味する。この場合、図８のルーチンを繰り返し実行しているＣＰＵ８１は、ステップ８６０に進んだとき「Ｎｏ」と判定してステップ８６５に進み、フラグＯＲＥの値を「１」から「０」に変更する。
【０１３３】
これにより、図６のルーチンを繰り返し実行しているＣＰＵ８１は、ステップ６１５に進んだとき再び「Ｙｅｓ」と判定してステップ６２０を実行するようになる。換言すれば、時刻ｔ３以降は、上述した時刻ｔ１以前と同じ処理が実行されていく。即ち、偏差積分値更新用目標値Voxsrefiは目標空燃比相当目標値Voxsref（一定）と等しい値に維持されるとともに、フラグＯＲＥの値は「０」に維持される。即ち、前記「フューエルカット制御から復帰した後の所定の期間」は、フラグＯＲＥ＝１の期間に対応する。
【０１３４】
なお、減少してきた酸素吸蔵量の増加分ＯＳＡが「０」に達する前に（即ち、フラグＯＲＥ＝１の状態で）酸素濃度センサ６８の出力値Voxsが目標空燃比相当出力値Voxsref以上の値（即ち、リッチを示す値）となった場合、図８のルーチンを実行しているＣＰＵ８１は、ステップ８４５に進んだとき「Ｎｏ」と判定してステップ８６５に進む。即ち、この場合もフラグＯＲＥが「１」から「０」に変更され、この時点以降、上述した時刻ｔ１以前と同じ処理が実行されていくようになる。
【０１３５】
これにより、酸素吸蔵量の増加分ＯＳＡが大きめに推定されていることに起因して、上流側触媒５３内のリーン雰囲気が既に解消しているにもかかわらず偏差積分値SDVoxsが酸素濃度センサ６８の出力値Voxsと目標空燃比abyfr（＝理論空燃比）よりもリーンの空燃比に相当する偏差積分値更新用目標値Voxsrefiとの偏差DVoxsiを使用して更新されていく事態の発生を防止できる。
【０１３６】
以上、前記フィードバック補正値算出手段は図６のルーチンに対応し、前記空燃比制御手段は図４、図５のルーチンに対応し、前記フューエルカット制御手段は図４のステップ４０５に対応し、前記酸素吸蔵量増加分推定手段は図８のルーチンに対応する。
【０１３７】
以上、説明したように、本発明の実施形態に係る空燃比制御装置によれば、「上流側触媒５３の下流の酸素濃度センサ６８の出力値Voxsと目標空燃比相当出力値Voxsref（一定）との偏差」についてＰＩＤ処理してサブフィードバック補正量Vafsfbが計算され、サブフィードバック補正量Vafsfbに基づいて空燃比が理論空燃比に一致するように制御される。
【０１３８】
ＦＣから復帰した時点以降、「ＦＣ開始時点からの上流側触媒５３の酸素吸蔵量の増加分ＯＳＡ」が減少して「０」に復帰するまで（或いは、酸素濃度センサ６８の出力値Voxsがリッチを示す値となるまで）の間のみ（フラグＯＲＥ＝１の間）、上記ＰＩＤ処理のうちＩ処理が、上記「出力値Voxsと目標空燃比相当目標値Voxsrefとの偏差」に代えて、「出力値Voxsと酸素吸蔵量の増加分ＯＳＡの減少に応じて増大するように決定される偏差積分値更新用目標値Voxsrefi（＜Voxsref）（図１０を参照）との偏差」を用いて行われる。
【０１３９】
これにより、フラグＯＲＥ＝１の間、偏差積分値更新用目標値Voxsrefiと酸素濃度センサ６８の出力値Voxsとは同じ傾向をもって推移していくから「出力値Voxsと偏差積分値更新用目標値Voxsrefiとの偏差」は小さい値に維持され得る。従って、上記偏差の積分値である偏差積分値SDVoxsが空燃比をリッチ側へ補正するための値として過度に増大していくことが抑制され得る。この結果、フラグＯＲＥ＝１の間において学習タイミングが到来して偏差積分値SDVoxsの学習値Learnが更新（学習）されても、上記「偏差積分値のリッチ側への誤学習」が抑制され得る。
【０１４０】
更には、ＦＣから復帰した時点では上流側触媒５３内がリーン雰囲気になっていることに起因して、フラグＯＲＥ＝１の間、少なくとも上記「出力値Voxsと目標空燃比相当目標値Voxsrefとの偏差」は正の値となることが保証され得る。このため、少なくともサブフィードバック補正量Vafsfbの比例項（従って、サブフィードバック補正量Vafsfbそのもの）は、正の値、即ち、空燃比をリッチ側へ補正するための値となる。この結果、フラグＯＲＥ＝１の間、空燃比が理論空燃比よりもリッチな空燃比に確実に制御され得、この結果、上流側触媒５３内におけるリーン雰囲気が確実に解消され得る。
【０１４１】
本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記実施形態では、フラグＯＲＥ＝１の間、偏差積分値更新用目標値Voxsrefi（＜目標空燃比相当目標値Voxsref）が、酸素吸蔵量の増加分ＯＳＡの減少に応じて増大するように決定されるが（図１０を参照）、フラグＯＲＥ＝１の間、偏差積分値更新用目標値Voxsrefi（＜目標空燃比相当目標値Voxsref）を一定値としてもよい。
【０１４２】
また、フラグＯＲＥ＝１の間、偏差積分値更新用目標値Voxsrefi（＜目標空燃比相当目標値Voxsref）を、酸素濃度センサ６８の実際の出力値Voxsに（微小のディレーをもって）追従していくように実際の出力値Voxsに基づいて決定するように構成してもよい。
【０１４３】
また、上記実施形態においては、ＦＣから復帰した時点で直ちに空燃比フィードバック制御を再開しているが、ＦＣから復帰した時点から空燃比センサ６７の応答遅れ時間分だけ後の時点から空燃比フィードバック制御を再開するように構成してもよい。
【図面の簡単な説明】
【０１４４】
【図１】内燃機関に適用した本発明の実施形態に係る空燃比制御装置（燃料噴射量制御装置）の概略を示した図である。
【図２】図１に示した空燃比センサの出力と空燃比の関係を示したグラフである。
【図３】図１に示した酸素濃度センサの出力と空燃比の関係を示したグラフである。
【図４】図１に示したＣＰＵが実行する燃料噴射制御ルーチンを示したフローチャートである。
【図５】図１に示したＣＰＵが空燃比フィードバック補正量を算出するために実行するルーチンを示したフローチャートである。
【図６】図１に示したＣＰＵがサブフィードバック補正量を算出するために実行するルーチンを示したフローチャートである。
【図７】図１に示したＣＰＵが偏差積分値の学習値を更新するために実行するルーチンを示したフローチャートである。
【図８】図１に示したＣＰＵがフューエルカット制御による上流側触媒の酸素吸蔵量の増加分を計算するために実行するルーチンを示したフローチャートである。
【図９】時刻ｔ１〜ｔ２の間においてフューエルカット制御が実行される場合における、フラグＯＲＥ、目標空燃比相当目標値及び偏差積分値更新用目標値、並びに、上流側触媒の酸素吸蔵量の増加分の変化の一例を示したタイムチャートである。
【図１０】図１に示したＣＰＵが参照する、上流側触媒の酸素吸蔵量の増加分と偏差積分値更新用目標値との関係を規定するテーブルを示したグラフである。
【符号の説明】
【０１４５】
２５…燃焼室、３９…インジェクタ、５３…上流側触媒、６１…エアフローメータ、６７…空燃比センサ、６８…酸素濃度センサ、８０…電気制御装置、８１…ＣＰＵ
【図１】
2007231750.tif 000003
【図２】
2007231750.tif 000004
【図３】
2007231750.tif 000005
【図４】
2007231750.tif 000006
【図５】
2007231750.tif 000007
【図６】
2007231750.tif 000008
【図７】
2007231750.tif 000009
【図８】
2007231750.tif 000010
【図９】
2007231750.tif 000011
【図１０】
2007231750.tif 000012