(57)【要約】【課題】  触媒下流に配設された酸素濃度センサの出力の目標値を適切に設定することにより、未燃成分や窒素酸化物を低減しうる空燃比フィードバック制御を実現すること。【解決手段】  空燃比制御装置は、内燃機関の排気通路に配設された触媒下流の酸素濃度センサ出力Voxsと目標値とが一致するように空燃比フィードバック制御を行う。空燃比制御装置は、出力Voxsが最大出力値max又は最小出力値minとなっているとき、前記目標値を最大出力値と最小出力値との略中間の値（中央値）ａに設定する。また、出力Voxsが、最小出力値を示した後に最小出力より僅かに大きい低側閾値Lohanと最大出力値より僅かに小さい高側閾値Hihanとの間の値となっているとき、目標値を中央値より小さい低側目標値Lotgtに設定し、出力Voxsが、最大出力値を示した後に高側閾値と低側閾値との間の値となっているとき、目標値を中央値より大きい高側目標値Hitgtに設定する。【選択図】  図５
2005171982.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設された触媒と、
前記排気通路の前記触媒の下流に配設されて同触媒から流出するガス中の酸素濃度に応じた値を出力する酸素濃度センサと、
前記酸素濃度センサの現在の出力を理論空燃比に相当する所定の目標値と一致させるための空燃比制御量を演算する空燃比制御量演算手段と、
前記演算された空燃比制御量に基づいて前記触媒に流入するガスの空燃比を制御する空燃比制御手段と、
を備えた空燃比制御装置において、
前記空燃比制御量演算手段は、
前記酸素濃度センサに到達したガスの状態に基づいて前記目標値を変更するように構成された空燃比制御装置。
【請求項２】
請求項１に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記酸素濃度センサに到達したガスの状態を、同酸素濃度センサの現在及び過去の出力に基づいて判定するように構成された空燃比制御装置。
【請求項３】
請求項２に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記酸素濃度センサの出力が同酸素濃度センサの最大出力値と最小出力値との略中間の値である中央値より小さく且つ同最小出力値より僅かに大きい低側閾値より小さくなっているときに前記目標値を同中央値に設定し、その後同酸素濃度センサの出力が増大して同低側閾値と同中央値より大きく同最大出力値より僅かに小さい高側閾値との間の値となっているときに前記目標値を同低側閾値と同中央値との間の低側目標値に設定するように構成された空燃比制御装置。
【請求項４】
請求項２に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記酸素濃度センサの出力が同酸素濃度センサの最大出力値と最小出力値との略中間の値である中央値より大きく且つ同最大出力値より僅かに小さい高側閾値より大きくなっているときに前記目標値を同中央値に設定し、その後同酸素濃度センサの出力が減少して同高側閾値と同中央値より小さく同最小出力値より僅かに大きい低側閾値との間の値となっているときに前記目標値を同高側閾値と同中央値との間の高側目標値に設定するように構成された空燃比制御装置。
【請求項５】
請求項１乃至請求項４の何れか一項に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記触媒の温度を取得するとともに同取得された触媒の温度が閾値温度より小さい場合に前記目標値を前記酸素濃度センサの最大出力値と最小出力値との略中間の値である中央値に固定するように構成された空燃比制御装置。
【請求項６】
請求項５に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記触媒の劣化度を表す値を取得するとともに同取得された劣化度を表す値に基づいて前記閾値温度を変更するように構成された空燃比制御装置。
【請求項７】
請求項１乃至請求項４の何れか一項に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記触媒の最大酸素吸蔵量を取得するとともに同取得された最大酸素吸蔵量が所定の酸素吸蔵量より小さい場合に前記目標値を前記酸素濃度センサの最大出力値と最小出力値との略中間の値である中央値に固定するように構成された空燃比制御装置。
【請求項８】
請求項１に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記触媒の酸素吸蔵量を推定するとともに同推定された酸素吸蔵量に基づいて前記酸素濃度センサに到達したガスの状態を判定するように構成された空燃比制御装置。
【請求項９】
請求項８に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記触媒の酸素吸蔵量が同触媒の最大酸素吸蔵量の略半分の値である半分値より大きく且つ同最大酸素吸蔵量より僅かに小さい高側酸素吸蔵量閾値より大きくなっているときに前記目標値を前記酸素濃度センサの最大出力値と最小出力値との略半分の値である中央値に設定し、その後同酸素吸蔵量が減少して同高側酸素吸蔵量閾値と同半分値より小さく０より僅かに大きい低側酸素吸蔵量閾値との間の値となっているときに前記目標値を同中央値より小さく且つ同最小出力値より大きい低側目標値に設定するように構成された空燃比制御装置。
【請求項１０】
請求項８に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記触媒の酸素吸蔵量が同触媒の最大酸素吸蔵量の略半分の値である半分値より小さく且つ０より僅かに大きい低側酸素吸蔵量閾値より小さくなっているときに前記目標値を前記酸素濃度センサの最大出力値と最小出力値との略半分の値である中央値に設定し、その後同酸素吸蔵量が増大して同低側酸素吸蔵量閾値と同半分値より大きく同最大酸素吸蔵量より僅かに小さい高側酸素吸蔵量閾値との間の値となっているときに前記目標値を同中央値より大きく且つ同最大出力値より小さい高側目標値に設定するように構成された空燃比制御装置。
【請求項１１】
請求項２に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記酸素濃度センサの出力が同酸素濃度センサの最大出力値と最小出力値との略中間の値である中央値より小さく且つ同最小出力値より僅かに大きい低側閾値より小さくなってから同中央値より大きく同最大出力値より僅かに小さい高側閾値より大きくなるまでの期間、前記目標値を同中央値と同低側閾値との間の低側目標値に設定するように構成された空燃比制御装置。
【請求項１２】
請求項３又は請求項１１に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記酸素濃度センサの素子温度を取得する酸素濃度センサ素子温度取得手段と、
前記低側目標値を前記取得された酸素濃度センサの素子温度が高いほど大きい値に変更する低側目標値設定手段と、を含む空燃比制御装置。
【請求項１３】
請求項２に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記酸素濃度センサの出力が同酸素濃度センサの最大出力値と最小出力値との略中間の値である中央値より大きく且つ同最大出力値より僅かに小さい高側閾値より大きくなってから同中央値より小さく同最小出力値より僅かに大きい低側閾値より小さくなるまでの期間、前記目標値を同中央値と同高側閾値との間の高側目標値に設定するように構成された空燃比制御装置。
【請求項１４】
請求項４又は請求項１３に記載の空燃比制御装置において、
前記空燃比制御量演算手段は、
前記酸素濃度センサの素子温度を取得する酸素濃度センサ素子温度取得手段と、
前記高側目標値を前記取得された酸素濃度センサの素子温度が高いほど小さい値に変更する高側目標値設定手段と、を含む空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気通路に配設された触媒の下流に設けられた酸素濃度センサの出力に基づいて同触媒に流入するガスの空燃比を制御する空燃比制御装置に関する。
【背景技術】
【０００２】
従来より、内燃機関の排気通路に配設された触媒（三元触媒）の下流に酸素濃度センサを設け、この酸素濃度センサの出力が理論空燃比に相当する値となるように同内燃機関に供給する混合気の空燃比（従って、触媒に流入するガスの空燃比）をフィードバック制御する空燃比制御装置が広く知られている（例えば、特許文献１を参照。）。
【特許文献１】特開平９−６０５４４号公報（第５頁、図３）
【０００３】
このような空燃比制御装置に使用される酸素濃度センサは、一般に、検出電極と基準電極の間の酸素濃度（酸素分圧）の差に基づいて出力が変化するセンサであり、その基準電極は大気に曝されている。従って、図１に示したように、酸素濃度センサの検出電極に到達したガス（以下、単に「酸素濃度センサ到達ガス」とも称呼する。）の空燃比が理論空燃比より僅かでもリッチであると、検出電極と基準電極の間の酸素濃度の差が大きくなるので、その出力Voxsは最大出力値maxとなる。
【０００４】
これに対し、酸素濃度センサ到達ガスの空燃比が理論空燃比より僅かでもリーンであると、検出電極と基準電極の間の酸素濃度の差が小さくなるので、その出力Voxsは最小出力値minとなる。従って、酸素濃度センサの出力が最大出力値と最小出力値の略中間の値（以下、「中央値ａ」と称呼する。）であるとき、酸素濃度センサ到達ガスの空燃比は理論空燃比であると考えられている。このため、上記従来の空燃比制御装置は、触媒下流側の酸素濃度センサの出力Voxsが中央値ａとなるように、内燃機関に供給する混合気の空燃比をフィードバック制御している。
【０００５】
一方、触媒は、触媒に流入するガス（以下、単に「触媒流入ガス」とも称呼する。）中に酸素が過剰に含まれているとき（即ち、触媒流入ガスの空燃比がリーンであるとき）、そのガス中の酸素を内部に吸蔵するとともに、触媒流入ガス中に未燃成分が多量に含まれていて同未燃成分を酸化するための酸素が不足しているとき（即ち、触媒流入ガスの空燃比がリッチであるとき）、内部に吸蔵しておいた酸素により同未燃成分を酸化する機能を備えている。この触媒の機能は、「酸素吸蔵機能」或いは「Ｏ２ストレージ効果」などと称呼される。
【０００６】
この酸素吸蔵機能により、酸素が吸蔵されている状態の触媒に空燃比がリッチであるガスが流入しても、触媒に吸蔵されている酸素が総て消費されるまでの期間、触媒から流出するガス（触媒下流のガス）の空燃比はリッチとはならず理論空燃比となる。これに対し、酸素を吸蔵し得る余力が残されている状態の触媒に空燃比がリーンであるガスが流入しても、触媒が酸素を吸蔵しきれなくなるまでの期間、触媒下流のガスの空燃比はリーンとはならず理論空燃比となる。
【０００７】
以上のことから、上記従来の空燃比制御装置により機関に供給される混合気の空燃比をフィードバック制御し、その結果、触媒流入ガスの空燃比がリーンとリッチとの間で変化すると、触媒下流側の酸素濃度センサの出力Voxsは、図２の破線に示したように変化するものと考えられる。
【０００８】
即ち、触媒流入ガスの空燃比がリーンであり且つ触媒に酸素が吸蔵しきれない状態であると、図２の時刻ｔ１以前のように、触媒下流側の酸素濃度センサの出力Voxsは最小出力値min近傍の値となる。その後、上述したフィードバック制御により触媒に流入するガスの空燃比がリッチになると、時刻ｔ１〜ｔ２に示したように、触媒内に吸蔵されている酸素が消費されるまで、触媒下流側の酸素濃度センサの出力Voxsは中央値ａ近傍の値となる。
【０００９】
次いで、触媒に吸蔵されている総ての酸素が消費されると、時刻ｔ２〜ｔ３に示したように、触媒下流側の酸素濃度センサの出力Voxsは最大出力値max近傍の値となる。その後、上述した空燃比フィードバック制御により触媒に流入するガスの空燃比がリーンになると、時刻ｔ３〜ｔ４に示したように、触媒内に酸素が吸蔵しきれなくなるまで触媒下流側の酸素濃度センサの出力Voxsは中央値ａ近傍の値となる。そして、触媒内に酸素が吸蔵しきれなくなると、時刻ｔ４以降に示したように、触媒下流側の酸素濃度センサの出力Voxsは再び最小出力値min近傍の値となる。
【００１０】
しかしながら、実際の酸素濃度センサの出力Voxsは、図２の実線に示したように変化する。即ち、触媒に流入するガスの空燃比がリーンからリッチへと変化した後であって、触媒内に吸蔵されている酸素が消費されるまでの時刻ｔ１〜ｔ２の期間、触媒下流側の酸素濃度センサの出力Voxsは最小出力値minと中央値ａの間の値となる。この現象は、触媒内に吸蔵されている酸素が消費されるまでの期間においては、酸素濃度センサの検出電極周辺にそれ以前の期間（時刻ｔ１以前）において到達した多量の酸素分子が残存しているので、検出電極と基準電極の間の酸素濃度差が小さくなっているために発生すると考えられる。
【００１１】
また、触媒に流入するガスの空燃比がリッチからリーンへと変化した後であって、触媒内に酸素が吸蔵しきれなくなるまでの時刻ｔ３〜ｔ４の期間、触媒下流側の酸素濃度センサの出力Voxsは最大出力値maxと中央値ａとの間の値となる。この現象は、触媒内に酸素が吸蔵しきれなくなるまでの期間においては、酸素濃度センサの検出電極周辺にそれ以前の期間（時刻ｔ２〜ｔ３）において到達した未燃成分によって酸素分子がほぼ完全に消滅しているので、検出電極と基準電極の間の酸素濃度差が大きくなっているために発生すると考えられる。
【００１２】
以上のことから理解されるように、触媒下流側の酸素濃度センサに到達しているガスの空燃比が理論空燃比であっても、同酸素濃度センサの出力は、過去（及び／又は現在）において同酸素濃度センサに到達したガスの空燃比（状態）に応じて異なる値となる。
【００１３】
しかしながら、従来の空燃比制御装置においては、触媒下流側の酸素濃度センサの出力が常に一定の中央値ａとなるように機関に供給される混合気の空燃比をフィードバック制御しているので、実際には触媒内で窒素酸化物や未燃成分が十分に浄化され、触媒から流出するガスの空燃比が理論空燃比相当のガスとなっている場合（即ち、触媒に流入するガスの空燃比が適切な値となっている場合）であっても、機関に供給される混合気の空燃比（従って、触媒に流入するガスの空燃比）がリッチ又はリーンに過補正されてしまい、結果として、大気中に排出される窒素酸化物や未燃成分の量をより低減できる可能性があるにもかかわらず、同可能性を逸しているという問題がある。
【発明の開示】
【００１４】
本発明の空燃比制御装置は、上記課題に対処するためになされたものであって、
内燃機関の排気通路に配設された触媒と、
前記排気通路の前記触媒の下流に配設されて同触媒から流出するガス中の酸素濃度に応じた値を出力する酸素濃度センサと、
前記酸素濃度センサの現在の出力を理論空燃比に相当する所定の目標値と一致させるための空燃比制御量を演算する空燃比制御量演算手段と、
前記演算された空燃比制御量に基づいて前記触媒に流入するガスの空燃比を制御する空燃比制御手段と、
を備えた空燃比制御装置において、
前記空燃比制御量演算手段は、
前記酸素濃度センサに到達したガスの状態に基づいて前記目標値を変更するように構成された空燃比制御装置である。
【００１５】
これによれば、触媒の下流に配設されて同触媒から流出するガス中の酸素濃度に応じた値を出力する酸素濃度センサに到達したガスの状態に基づいて前記目標値が変更される。従って、酸素濃度センサに理論空燃比のガスが到達している場合に同酸素濃度センサが出力する値と目標値とを実質的に一致させることができるので、窒素酸化物や未燃成分を触媒内で浄化する状態をできるだけ維持することが可能となる。
【００１６】
この場合、前記空燃比制御量演算手段は、前記酸素濃度センサに到達したガスの状態を、同酸素濃度センサの現在及び過去の出力に基づいて判定するように構成され得る。
【００１７】
より具体的に述べると、前記空燃比制御量演算手段は、前記酸素濃度センサの出力が同酸素濃度センサの最大出力値と最小出力値との略中間の値である中央値より小さく且つ同最小出力値より僅かに大きい低側閾値より小さくなっているときに前記目標値を同中央値に設定し、その後同酸素濃度センサの出力が増大して同低側閾値と同中央値より大きく同最大出力値より僅かに小さい高側閾値との間の値となっているときに前記目標値を同低側閾値と同中央値との間の低側目標値に設定することができる。
【００１８】
また、前記空燃比制御量演算手段は、前記酸素濃度センサの出力が同酸素濃度センサの最大出力値と最小出力値との略中間の値である中央値より大きく且つ同最大出力値より僅かに小さい高側閾値より大きくなっているときに前記目標値を同中央値に設定し、その後同酸素濃度センサの出力が減少して同高側閾値と同中央値より小さく同最小出力値より僅かに大きい低側閾値との間の値となっているときに前記目標値を同高側閾値と同中央値との間の高側目標値に設定することができる。
【００１９】
これらによれば、酸素濃度センサの理論空燃比のガスに対する出力と目標値とを略一致させることができるので、触媒から流出するガスの空燃比を理論空燃比とすることができる。その結果、触媒内において窒素酸化物や未燃成分を極めて効果的に浄化することができる。
【００２０】
さらに、前記触媒の温度を取得するとともに同取得された触媒の温度が閾値温度より小さい場合に前記目標値を前記中央値に固定するように構成することも好適である。
【００２１】
触媒の温度が低いとき（即ち、触媒の温度が活性化温度より小さいとき）、触媒は酸素吸蔵機能を殆ど発揮し得ないので、酸素濃度センサには多量の酸素或いは多量の未燃成分の何れかが到達することになる。このような場合、酸素濃度センサの理論空燃比のガスに対する出力は前記中央値となる。従って、上記構成によれば、触媒の温度が低いとき、目標値を酸素濃度センサの理論空燃比のガスに対する出力と略一致させることができる。
【００２２】
また、触媒は劣化が進行するほど、その触媒の活性化温度が高くなる。従って、前記空燃比制御量演算手段は、前記触媒の劣化度を表す値を取得するとともに同取得された劣化度を表す値に基づいて前記閾値温度を変更する（具体的には、触媒の劣化が進行するほど閾値温度を大きくする）ように構成されることも好適である。この場合、触媒の劣化度を表す値は、例えば、触媒の最大酸素吸蔵量、触媒が装着された車両の走行距離、触媒へのガス通過量の積分値及び触媒上流に設けられた酸素濃度センサや空燃比センサの出力と上記触媒の下流に設けられた酸素濃度センサの出力の軌跡比等であってよい。
【００２３】
また、前記空燃比制御量演算手段は、前記触媒の最大酸素吸蔵量を取得するとともに同取得された最大酸素吸蔵量が所定の酸素吸蔵量より小さい場合に前記目標値を前記酸素濃度センサの最大出力値と最小出力値との略中間の値である中央値に固定するように構成されることが好適である。
【００２４】
触媒の劣化が進行するほど、触媒の最大酸素吸蔵量は低下する。最大酸素吸蔵量が小さい触媒は、酸素吸蔵機能を十分に発揮しないので、酸素濃度センサには多量の酸素或いは多量の未燃成分の何れかが到達することになる。このような場合、酸素濃度センサの理論空燃比のガスに対する出力は前記中央値となる。従って、上記構成によれば、劣化した触媒が装着されている場合にも、目標値を酸素濃度センサの理論空燃比のガスに対する出力と略一致させることができる。
【００２５】
また、前記空燃比制御量演算手段は、前記触媒の酸素吸蔵量を推定するとともに同推定された酸素吸蔵量に基づいて前記酸素濃度センサに到達したガスの状態を判定するように構成されることも好適である。
【００２６】
触媒の酸素吸蔵量は、その触媒の下流に配設された酸素濃度センサに到達したガスの状態を示す量ともなる。即ち、酸素吸蔵量が実質的に最大酸素吸蔵量近傍の値でなく、且つ、酸素吸蔵量が実質的に「０」でなければ、酸素濃度センサには理論空燃比のガスが到達していることになり、その場合、酸素濃度センサは過去において到達していたガスの影響を受けた出力値を示す。従って、上記構成のように、酸素吸蔵量に応じて目標値を変更すれば、酸素濃度センサの理論空燃比のガスに対する出力と目標値とを略一致させることができる。
【００２７】
この場合、より具体的には、前記空燃比制御量演算手段は、前記触媒の酸素吸蔵量が同触媒の最大酸素吸蔵量の略半分の値である半分値より大きく且つ同最大酸素吸蔵量より僅かに小さい高側酸素吸蔵量閾値より大きくなっているときに前記目標値を前記酸素濃度センサの最大出力値と最小出力値との略半分の値である中央値に設定し、その後同酸素吸蔵量が減少して同高側酸素吸蔵量閾値と同半分値より小さく０より僅かに大きい低側酸素吸蔵量閾値との間の値となっているときに前記目標値を同中央値より小さく且つ同最小出力値より大きい低側目標値に設定してよい。
【００２８】
また、前記空燃比制御量演算手段は、前記触媒の酸素吸蔵量が同触媒の最大酸素吸蔵量の略半分の値である半分値より小さく且つ０より僅かに大きい低側酸素吸蔵量閾値より小さくなっているときに前記目標値を前記酸素濃度センサの最大出力値と最小出力値との略半分の値である中央値に設定し、その後同酸素吸蔵量が増大して同低側酸素吸蔵量閾値と同半分値より大きく同最大酸素吸蔵量より僅かに小さい高側酸素吸蔵量閾値との間の値となっているときに前記目標値を同中央値より大きく且つ同最大出力値より小さい高側目標値に設定することができる。
【００２９】
一方、前記空燃比制御量演算手段は、前記酸素濃度センサの出力が同酸素濃度センサの最大出力値と最小出力値との略中間の値である中央値より小さく且つ同最小出力値より僅かに大きい低側閾値より小さくなってから同中央値より大きく同最大出力値より僅かに小さい高側閾値より大きくなるまでの期間、前記目標値を同中央値と同低側閾値との間の低側目標値に設定するように構成されることが好適である。
【００３０】
前述の説明から明らかなように、酸素濃度センサの出力が低側閾値より小さくなってから高側閾値より大きくなるまでの期間において、触媒流入ガスが触媒により良好に浄化されているならば、酸素濃度センサの出力は低側目標値近傍の値となる。従って、上記構成のように、かかる期間の酸素濃度センサの目標値を低側目標値とすれば、触媒流入ガスが触媒により効果的に浄化されている期間を長くすることができ、触媒の浄化能力を有効に活用することができる。
【００３１】
この場合、前記空燃比制御量演算手段は、前記酸素濃度センサの素子温度を取得する酸素濃度センサ素子温度取得手段と、前記低側目標値を前記取得された酸素濃度センサの素子温度が高いほど大きい値に変更する低側目標値設定手段と、を含むことが好適である。
【００３２】
触媒下流に配置された上記酸素濃度センサは、図１３に示したように、同酸素濃度センサの出力が低側閾値Lohanより小さくなってから高側閾値Hihanより大きくなるまでの期間において、同酸素濃度センサに到達するガスの空燃比が理論空燃比であるとき、その素子温度が高いほど大きな値を示すことが判明した。
【００３３】
従って、上記構成により、前記低側目標値を前記取得された酸素濃度センサの素子温度が高いほど大きい値に変更すれば、（低側）目標値を、酸素濃度センサに理論空燃比のガスが到達している場合に同酸素濃度センサが出力する値に、より精度良く一致させることができるので、窒素酸化物や未燃成分を触媒内で浄化する状態をできるだけ維持することが可能となる。
【００３４】
他方、前記空燃比制御量演算手段は、前記酸素濃度センサの出力が同酸素濃度センサの最大出力値と最小出力値との略中間の値である中央値より大きく且つ同最大出力値より僅かに小さい高側閾値より大きくなってから同中央値より小さく同最小出力値より僅かに大きい低側閾値より小さくなるまでの期間、前記目標値を同中央値と同高側閾値との間の高側目標値に設定するように構成されることが好適である。
【００３５】
酸素濃度センサの出力が高側閾値より大きくなってから低側閾値より小さくなるまでの期間において、触媒流入ガスが触媒により良好に浄化されているならば、酸素濃度センサの出力は高側目標値近傍の値となる。従って、上記構成のように、かかる期間の酸素濃度センサの目標値を高側目標値とすれば、触媒流入ガスが触媒により効果的に浄化されている期間を長くすることができ、触媒の浄化能力を有効に活用することができる。
【００３６】
この場合、前記空燃比制御量演算手段は、前記酸素濃度センサの素子温度を取得する酸素濃度センサ素子温度取得手段と、前記高側目標値を前記取得された酸素濃度センサの素子温度が高いほど小さい値に変更する高側目標値設定手段と、を含むことが好適である。
【００３７】
触媒下流に配置された上記酸素濃度センサは、図１３に示したように、同酸素濃度センサの出力が高側閾値より大きくなってから低側閾値より小さくなるまでの期間において、同酸素濃度センサに到達するガスの空燃比が理論空燃比であるとき、その素子温度が高いほど小さな値を示すことが判明した。
【００３８】
従って、上記構成により、前記高側目標値を前記取得された酸素濃度センサの素子温度が高いほど小さい値に変更すれば、（高側）目標値を、酸素濃度センサに理論空燃比のガスが到達している場合に同酸素濃度センサが出力する値に、より精度良く一致させることができるので、窒素酸化物や未燃成分を触媒内で浄化する状態をできるだけ維持することが可能となる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。この空燃比制御装置は、機関の燃料噴射量を制御する燃料噴射量制御装置でもある。
【００４０】
（第１実施形態）
図３は、第１実施形態に係る空燃比制御装置を４サイクル火花点火式多気筒内燃機関１０に適用したシステムの概略構成を示している。なお、図１は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
【００４１】
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０とを含んでいる。
【００４２】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００４３】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角及びリフト量を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。
【００４４】
吸気系統４０は、吸気ポート３１に連通し同吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットルバルブ４３及びスワールコントロールバルブ（以下、「ＳＣＶ」と称呼する。）４４を備えている。
【００４５】
スロットルバルブ４３は、ＤＣモータからなるスロットルバルブアクチュエータ４３ａにより吸気管４１内で回転駆動されるようになっている。ＳＣＶ４４は、ＤＣモータからなるＳＣＶアクチュエータ４４ａにより回転駆動されるようになっている。
【００４６】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１に接続されたエキゾーストパイプ５２、エキゾーストパイプ５２に配設された上流側触媒５３、上流側触媒５３よりも下流のエキゾーストパイプ５２に配設された下流側触媒５４を備えている。排気ポート３４、エキゾーストマニホールド５１及びエキゾーストパイプ５２は、排気通路を構成している。
【００４７】
上流側触媒５３及び下流側触媒５４のそれぞれは、所謂、白金等の貴金属からなる活性成分を担持する三元触媒装置である。各触媒は、触媒流入ガスがほぼ理論空燃比であるとき、ＨＣ，ＣＯなどの未燃成分を酸化するとともに、窒素酸化物（NOx）を還元する機能を有する。更に、各触媒は、酸素を吸蔵（貯蔵）する酸素吸蔵機能を有し、この酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃成分及び窒素酸化物を浄化することができる。この酸素吸蔵機能は、触媒に担持されているセリア(CeO2)によってもたらされる。
【００４８】
一方、このシステムは、熱線式エアフローメータ６１、吸気温センサ６２、スロットルポジションセンサ６３、カムポジションセンサ６４、クランクポジションセンサ６５、水温センサ６６、空燃比センサ６７、酸素濃度センサ６８、触媒温度センサ６９及びアクセル開度センサ７０を備えている。
【００４９】
エアフローメータ６１は、吸気管４１内を流れる吸入空気の質量流量Gaに応じた信号を出力するようになっている。吸気温センサ６２は、吸入空気の温度を検出し、吸気温度THAを表す信号を出力するようになっている。スロットルポジションセンサ６３は、スロットルバルブ４３の開度（スロットルバルブ開度）を検出し、スロットルバルブ開度TAを表す信号を出力するようになっている。
【００５０】
カムポジションセンサ６４は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。クランクポジションセンサ６５は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。水温センサ６６は、内燃機関１０の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【００５１】
空燃比センサ６７は、排気通路であって上流側触媒５３よりも上流側に配設されている。空燃比センサ６７は、所謂「限界電流式酸素濃度センサ」であって、上流側触媒５３に流入する排ガス中の空燃比を検出し、図４に示したように、検出した空燃比に応じた信号Vabyfsを出力するようになっている。
【００５２】
酸素濃度センサ６８は、排気通路であって上流側触媒５３よりも下流側であり下流側触媒５４よりも上流側に配設されている。酸素濃度センサ６８は、固体電解質型センサ（安定化ジルコニアを素子を構成する主材料に用いた周知の濃淡電池型の酸素センサ）であり、ジルコニアの両側に白金からなる検出電極と白金からなる基準電極とを備えている。検出電極は多孔質のセラミックにより覆われている。基準電極は大気に曝され、多孔質セラミックにより覆われた検出電極は上流側触媒５３から流出したガス（上流側触媒５３と下流側触媒５４との間の排気通路内のガス）に曝されている。
【００５３】
このような酸素濃度センサの出力Voxsの静的な特性は、検出電極と基準電極の間の酸素濃度（酸素分圧）の差に基づいて変化する特性となる。具体的に述べると、図１に示したように、濃淡電池型の酸素濃度センサは、一般に、検出対象のガスの空燃比が理論空燃比よりもリッチ及びリーンのとき最大出力値max及び最小出力値minをそれぞれ出力し、検出対象のガスの空燃比が理論空燃比であるとき最大出力値maxと最小出力値minの略中間の値（中央値）ａを出力するようになっている。
【００５４】
アクセル開度センサ７０は、運転者によって操作されるアクセルペダル７１の操作量Accpを表す信号を出力するようになっている。
【００５５】
電気制御装置８０は、互いにバスで接続されたＣＰＵ８１、ＣＰＵ８１が実行するプログラム、テーブル（マップ、関数）及び定数等を予め記憶したＲＯＭ８２、ＣＰＵ８１が必要に応じてデータを一時的に格納するＲＡＭ８３、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ８４並びにＡＤコンバータを含むインターフェース８５等からなるマイクロコンピュータである。
【００５６】
インターフェース８５は、前記センサ６１〜７０と接続され、ＣＰＵ８１にセンサ６１〜７０からの信号を供給するとともに、ＣＰＵ８１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９、スロットルバルブアクチュエータ４３ａ及びＳＣＶアクチュエータ４４ａに駆動信号を送出するようになっている。
【００５７】
＜空燃比フィードバック制御の概要＞
次に、上記のように構成された空燃比制御装置による空燃比フィードバック制御の概要について、図５を参照しながら説明する。この空燃比制御装置は、上流側触媒５３から流出しているガスの空燃比が理論空燃比となるように機関に供給する混合気の空燃比（（以下、「機関の空燃比」とも称呼する。）を制御する。具体的には、上流側触媒５３の下流に配設された酸素濃度センサ６８の出力が理論空燃比に相当する値となるように機関の空燃比をフィードバック制御する。
【００５８】
前述したように、濃淡電池型の酸素濃度センサは、一般に、検出対象のガスの空燃比が理論空燃比よりもリッチ及びリーンのとき最大出力値max及び最小出力値minをそれぞれ出力し、検出対象のガスの空燃比が理論空燃比であるとき最大出力値maxと最小出力値minの略中間の値（中央値）ａを出力するはずである。
【００５９】
しかしながら、酸素濃度センサ６８は、上流側触媒５３から流出したガスの空燃比を検出しているので、酸素濃度センサに到達しているガスの空燃比が理論空燃比であっても、酸素濃度センサ６８の出力Voxsは過去において同酸素濃度センサ６８に到達していたガスの状態（空燃比、或いは、酸素又は未燃成分の濃度）に応じて異なる値となる。
【００６０】
より具体的に述べると、上流側触媒５３が内部に酸素を吸蔵しきれない状態にあるとき（即ち、上流側触媒５３の酸素吸蔵量が最大酸素吸蔵量Cmaxに到達しているとき）、上流側触媒５３に理論空燃比よりもリーンな空燃比のガスが流入すると、上流側触媒５３からは多量の（高濃度の）酸素が流出する。この結果、酸素濃度センサ６８の基準電極と検出電極の間の酸素濃度（酸素分圧）差は小さくなるから、図５の時刻ｔ１以前に示したように、酸素濃度センサ６８の出力Voxsは最小出力値minの近傍の値となる。
【００６１】
この状態において、上流側触媒５３に理論空燃比よりもリッチな空燃比のガスが流入すると、このガスに含まれている未燃成分は、上流側触媒５３に吸蔵されている酸素によって酸化され、上流側触媒５３から殆ど排出されない。
【００６２】
このとき、酸素濃度センサ６８の検出電極周辺には、この時点よりも前の時点において多量の酸素が到達していて、その酸素が残存している。この残存している酸素は、上流側触媒５３から排出される極少量の（濃度の小さい）未燃成分では消滅しない。この結果、酸素濃度センサ６８の基準電極と検出電極の間の酸素濃度（酸素分圧）差は小さいままであるので、図５の時刻ｔ１〜ｔ２に示したように、酸素濃度センサ６８の出力Voxsは最小出力値minより僅かに大きい値となる。
【００６３】
その後、上流側触媒５３に理論空燃比よりもリッチな空燃比のガスが継続的に流入すると、上流側触媒５３から未燃成分が漏れ始める。この結果、図５の時刻ｔ２〜ｔ３に示したように、酸素濃度センサ６８の出力Voxsは最大出力値maxに向けて急激に増大する。
【００６４】
他方、上流側触媒５３内部に吸蔵されていた総ての酸素が消費されてしまった状態にあるとき（即ち、上流側触媒５３の酸素吸蔵量が「０」となっているとき）に、上流側触媒５３に理論空燃比よりもリッチな空燃比のガスが流入すると、上流側触媒５３からは多量の（高濃度の）未燃成分が流出する。この結果、酸素濃度センサ６８の検出電極周辺の酸素は消滅し、基準電極と検出電極の間の酸素濃度（酸素分圧）差は大きくなるから、図５の時刻ｔ３〜ｔ４に示したように、酸素濃度センサ６８の出力Voxsは最大出力値maxの近傍の値となる。
【００６５】
この状態において、上流側触媒５３に理論空燃比よりもリーンな空燃比のガスが流入すると、このガスに含まれている過剰な酸素は上流側触媒５３に吸蔵されるから、上流側触媒５３から殆ど排出されない。
【００６６】
この結果、酸素濃度センサ６８の検出電極周辺には酸素が殆ど到達しない（低濃度の酸素しか到達しない）ので、酸素濃度センサ６８の基準電極と検出電極の間の酸素濃度（酸素分圧）差は大きい状態のままとなる。従って、図５の時刻ｔ４〜ｔ５に示したように、酸素濃度センサ６８の出力Voxsは最大出力値maxより僅かだけ小さいが、中央値ａより大きい値となる。
【００６７】
その後、上流側触媒５３に理論空燃比よりもリーンな空燃比のガスが継続的に流入すると、上流側触媒５３から酸素が漏れ始める。この結果、図５の時刻ｔ５〜ｔ６に示したように、酸素濃度センサ６８の出力Voxsは最小出力値minに向けて急激に減少する。
【００６８】
そして、上流側触媒５３に酸素が吸蔵しきれなくなると、上流側触媒５３から多量の（高濃度の）酸素が流出する。この結果、酸素濃度センサ６８の基準電極と検出電極の間の酸素濃度（酸素分圧）差は小さくなるから、図５の時刻ｔ６以降に示したように、酸素濃度センサ６８の出力Voxsは再び最小出力値minの近傍の値となる。
【００６９】
以上のことから、本空燃比制御装置は、「上流側触媒５３から多量の酸素が流出している期間（時刻ｔ１以前及び時刻ｔ６以降）」と「上流側触媒５３から多量の未燃成分が流出している期間（時刻ｔ３〜ｔ４）」とにおいては、酸素濃度センサ６８の出力Voxsが中央値ａとなるように、機関に供給される混合気の空燃比をフィードバック制御する。これらの期間では、酸素濃度センサ６８に理論空燃比のガスが到達すれば、酸素濃度センサ６８の出力Voxsは中央値ａとなるはずだからである。
【００７０】
この場合、本空燃比制御装置は、「上流側触媒５３から多量の酸素が流出している期間（酸素濃度センサ６８の出力Voxsが実質的に最小出力値minに等しい期間）」を、出力Voxsが最小出力値minより僅かに大きい低側閾値Lohanより小さい期間として認識する。この低側閾値Lohanは、中央値ａより当然に小さい。
【００７１】
同様に、本空燃比制御装置は、「上流側触媒５３から多量の未燃成分が流出している期間（酸素濃度センサ６８の出力Voxsが実質的に最大出力値maxに等しい期間）」を、出力Voxsが最大出力値maxより僅かに小さい高側閾値Hihanより大きい期間として認識する。この高側閾値Hihanは、中央値ａより当然に大きい。
【００７２】
一方、本空燃比制御装置は、「上流側触媒５３から多量の酸素が流出した後であって、上流側触媒５３にリッチな空燃比のガスが流入していて、上流側触媒５３からは略理論空燃比のガスが流出している期間（時刻ｔ１〜ｔ３）」においては、酸素濃度センサ６８の出力Voxsが、低側閾値Lohanより大きく、且つ、中央値ａより小さい値である低側目標値Lotgtとなるように、機関に供給される混合気の空燃比をフィードバック制御する。
【００７３】
また、本空燃比制御装置は、かかる期間（時刻ｔ１〜ｔ３）を、過去において酸素濃度センサ６８の出力Voxsが実質的に最小出力値minに等しくなった後（具体的には、出力Voxsが低側閾値Lohanより小さくなった後）、出力Voxsが低側閾値Lohanと高側閾値Hihanの間の値である期間として認識する。
【００７４】
他方、本空燃比制御装置は、「上流側触媒５３から多量の未燃成分が流出した後であって、上流側触媒５３にリーンな空燃比のガスが流入していて、上流側触媒５３からは略理論空燃比のガスが流出している期間（時刻ｔ４〜ｔ６）」においては、酸素濃度センサ６８の出力Voxsが、高側閾値Hihanより小さく、且つ、中央値ａより大きい値である高側目標値Hitgtとなるように、機関に供給される混合気の空燃比をフィードバック制御する。
【００７５】
また、本空燃比制御装置は、かかる期間（時刻ｔ４〜ｔ６）を、過去において酸素濃度センサ６８の出力Voxsが実質的に最大出力値maxに等しくなった後（具体的には、出力Voxsが高側閾値Hihanより大きくなった後）、出力Voxsが高側閾値Hihanと低側閾値Lohanの間の値である期間として認識する。
【００７６】
以上、説明したように、本空燃比制御装置は、酸素濃度センサ６８の出力Voxsの目標値Vosxrefを、同酸素濃度センサ６８に過去（現時点の直前）において到達していたガス及び／又は現時点で到達しているガスの状態に応じて変化させ、酸素濃度センサ６８の実際の出力Voxsが目標値Voxsrefに一致するように、機関に供給される混合気の空燃比を制御する。これにより、上流側触媒５３からは、略理論空燃比のガス（窒素酸化物と未燃成分とが極少量であり、それらの比率が下流側触媒５４により完全に浄化されるような比率であるガス）が流出する。従って、窒素酸化物や未燃成分の大気への放出量をより一層低減することができる。
【００７７】
＜実際の作動＞
次に、上記のように構成された空燃比制御装置の実際の作動について、電気制御装置８０のＣＰＵ８１が実行するルーチン（プログラム）をフローチャートにより示した図６〜図９を参照しながら説明する。なお、図６に示したフローチャートは、演算された空燃比制御量に基づいて上流側触媒５３に流入するガスの空燃比を制御する空燃比制御手段に対応し、図７〜図９に示したフローチャートは、酸素濃度センサ６８の現在の出力Voxsを理論空燃比に相当する所定の目標値Voxsrefと一致させるための前記空燃比制御量を演算する空燃比制御量演算手段に対応している。
【００７８】
ＣＰＵ８１は、図６に示した最終燃料噴射量Ｆｉの計算及び燃料噴射の指示を行うルーチンを、所定の気筒のクランク角が吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、所定の気筒のクランク角度が前記所定クランク角度になると、ＣＰＵ８１はステップ６００から処理を開始してステップ６０５に進み、エアフローメータ６１により計測された吸入空気量Gaとエンジン回転速度NEとに基いて、機関の空燃比を理論空燃比とするための基本燃料噴射量Ｆbaseをマップから求める。
【００７９】
次いで、ＣＰＵ８１はステップ６１０に進み、基本燃料噴射量Ｆbaseに後述する空燃比フィードバック補正量ＤＦｉを加えた値を最終燃料噴射量Ｆｉとして設定する。次いで、ＣＰＵ８１はステップ６１５に進んで最終燃料噴射量Ｆｉの燃料を噴射するための指示を前記所定の気筒に対応するインジェクタ３９に対して行い、ステップ６９５に進んで本ルーチンを一旦終了する。以上により、フィードバック補正された最終燃料噴射量Ｆｉの燃料が吸気行程を迎える気筒に対して噴射される。なお、このルーチンは、他の気筒に対しても上記と同様に実行される。
【００８０】
次に、上記空燃比フィードバック補正量ＤＦｉの算出について説明する。ＣＰＵ８１は図７に示したルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ７００から処理を開始し、ステップ７０５に進んで空燃比フィードバック制御条件が成立しているか否かを判定する。空燃比フィードバック制御条件は、例えば、機関の冷却水温THWが第１所定温度以上であり、機関の一回転当りの吸入空気量（負荷）が所定値以下であり、且つ、空燃比センサ６７が正常であるとき成立する。
【００８１】
いま、空燃比フィードバック制御条件が成立しているものとして説明を続けると、ＣＰＵ８１はステップ７０５にて「Ｙｅｓ」と判定してステップ７１０に進み、現時点の空燃比センサ６７の出力vabyfsと後述するサブフィードバック制御量vafsfbとの和（vabyfs＋vafsfb）及び図４に示したマップに基いて現時点における上流側触媒５３の上流の空燃比を求める。この空燃比は、上流側触媒５３の上流におけるガスのみかけの空燃比であり、以下、「上流側制御用空燃比abyfs」と称呼される。
【００８２】
次に、ＣＰＵ８１はステップ７１５に進み、現時点からＮストローク（Ｎ回の吸気行程）前に吸気行程を迎えた気筒の吸入空気量である筒内吸入空気量Ｍｃ（ｋ−Ｎ）を前記求めた上流側制御用空燃比abyfsで除することにより、現時点からＮストローク前の筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求める。値Ｎは、内燃機関の排気量及び燃焼室２５から空燃比センサ６７までの距離等により異なる値である。
【００８３】
このように、現時点からＮストローク前の筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求めるために、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）を上流側制御用空燃比abyfsで除するのは、燃焼室２５内で燃焼された混合気が空燃比センサ６７に到達するまでには、Ｎストロークに相当する時間を要しているからである。なお、筒内吸入空気量Ｍｃは、各気筒の吸気行程毎に、その時点のエアフローメータ６１の出力Gaとエンジン回転速度NEとに基いて求められ（例えば、エアフローメータ６１の出力Gaに一次遅れ処理を施した値をエンジン回転速度NEで除することにより求められ）、各吸気行程に対応してＲＡＭ７３内に記憶されている。
【００８４】
次いで、ＣＰＵ８１はステップ７２０に進み、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）を現時点からＮストローク前の時点における目標空燃比abyfr（ｋ−Ｎ）（この例では、理論空燃比）で除することにより、現時点からＮストローク前の目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）を求める。
【００８５】
そして、ＣＰＵ８１はステップ７２５に進んで目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）から筒内燃料供給量Ｆｃ（ｋ−Ｎ）を減じた値を筒内燃料供給量偏差ＤＦｃとして設定する。つまり、筒内燃料供給量偏差ＤＦｃは、Ｎストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。次に、ＣＰＵ８１はステップ７３０に進み、（１）式に基いて空燃比フィードバック補正量ＤＦｉを求める。
ＤＦｉ＝（Ｇｐ・ＤＦｃ＋Ｇｉ・ＳＤＦｃ）・ＫＦＢ  …  （１）
【００８６】
上記（１）式において、Ｇｐは予め設定された比例ゲイン、Ｇｉは予め設定された積分ゲインである。なお、（１）式の係数ＫＦＢはエンジン回転速度NE及び筒内吸入空気量Ｍｃ等により可変とすることが好適であるが、ここでは「１」としている。また、値ＳＤＦｃは筒内燃料供給量偏差ＤＦｃの積分値であり、次のステップ７３５にて更新される。即ち、ＣＰＵ８１は、ステップ７３５にてその時点における筒内燃料供給量偏差ＤＦｃの積分値ＳＤＦｃに上記ステップ７２５にて求めた筒内燃料供給量偏差ＤＦｃを加えて、新たな筒内燃料供給量偏差の積分値ＳＤＦｃを求め、ステップ７９５にて本ルーチンを一旦終了する。
【００８７】
以上により、空燃比フィードバック補正量ＤＦｉが比例積分制御により求められ、この空燃比フィードバック補正量ＤＦｉが前述した図６のステップ６１０及びステップ６１５により最終燃料噴射量Ｆｉに反映される。この結果、現時点からＮストローク前の燃料供給量の過不足が補償されるので、機関の空燃比（従って、上流側触媒５３に流入するガスの空燃比）の平均値が目標空燃比abyfrと略一致せしめられる。
【００８８】
一方、ステップ７０５の判定時において、空燃比フィードバック制御条件が不成立であると、ＣＰＵ８１は同ステップ７０５にて「Ｎｏ」と判定してステップ７４０に進み、空燃比フィードバック補正量ＤＦｉの値を「０」に設定し、ステップ７９５に進んで本ルーチンを一旦終了する。このように、空燃比フィードバック制御条件が不成立であるときは、空燃比フィードバック補正量ＤＦｉを「０」として空燃比（基本燃料噴射量Ｆbase）の補正を行わない。
【００８９】
次に、酸素濃度センサ６８の出力Voxsに基く空燃比フィードバック制御について説明する。なお、かかる制御はサブフィードバック制御とも呼ばれる。このサブフィードバック制御により、上述したサブフィードバック制御量vafsfbが算出される。
【００９０】
ＣＰＵ８１は、サブフィードバック制御量vafsfbを求めるために、図８に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ８００から処理を開始し、ステップ８０５に進んでサブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件は、例えば、前述したステップ７０５での空燃比フィードバック制御条件が成立し、且つ、機関の冷却水温THWが前記第１所定温度よりも高い第２所定温度以上であり、且つ、酸素濃度センサ６８が正常であるときに成立する。
【００９１】
いま、サブフィードバック制御条件が成立しているものとして説明を続けると、ＣＰＵ８１はステップ８０５にて「Ｙｅｓ」と判定してステップ８１０に進み、図９に詳細を示したサブルーチンにより酸素濃度センサ６８の出力Voxsの目標値Voxsrefを決定する。目標値Voxsrefは、上流側触媒５３の浄化効率が良好（最良）となるように定められ、ここでは、酸素濃度センサ６８に理論空燃比のガスが到達したときに同酸素濃度センサ６８が出力するであろう値（理論空燃比相当値）に設定される。なお、図９に示したサブルーチンに基づく作動については後述する。
【００９２】
次に、ＣＰＵ８１はステップ８１５に進み、決定された目標値Voxsrefから現時点の酸素濃度センサ６８の出力Voxsを減じることにより、出力偏差量ＤＶoxsを求める。次に、ＣＰＵ８１はステップ８２０に進み、下記（２）式に基いてサブフィードバック制御量vafsfbを求める。
vafsfb＝Ｋｐ・ＤＶoxs＋Ｋｉ・ＳＤＶoxs  …（２）
【００９３】
上記（２）式において、Ｋｐは予め設定された比例ゲイン、Ｋｉは予め設定された積分ゲインである。また、ＳＤＶoxsは、出力偏差量ＤＶoxsの積分値であって、次のステップ８２５にて更新される値である。即ち、ＣＰＵ８１は、ステップ８２５に進むと、その時点における出力偏差量の積分値ＳＤＶoxsに上記ステップ８１５にて求めた出力偏差量ＤＶoxsを加えて、新たな出力偏差量の積分値ＳＤＶoxsを求め、その後、ステップ８９５に進んで本ルーチンを一旦終了する。
【００９４】
このようにして、サブフィードバック制御量vafsfbが求められ、この値は前述した図７のステップ７１０にて空燃比センサ６７の実際の出力に加えられ、その和（vabyfs + vafsfb）が図４に示したマップに基いて前記上流側制御用空燃比abyfsに変換される。換言すると、上流側制御用空燃比abyfsは、空燃比センサ６７が実際に検出している空燃比に対して、酸素濃度センサ６８の出力Voxsに基づいて求められるサブフィードバック制御量vafsfbに相当する分だけ異なる空燃比として求められる。
【００９５】
この結果、前述した図７のステップ７１５にて計算される筒内燃料供給量Ｆｃ（ｋ−Ｎ）が酸素濃度センサ６８の出力Voxsに応じて変化するので、ステップ７２５，７３０によって空燃比フィードバック補正量ＤＦｉが同酸素濃度センサ６８の出力Voxsに応じて変更せしめられる。これにより、上流側触媒５３の下流側の空燃比が理論空燃比に一致するように、機関の空燃比が制御せしめられる。
【００９６】
例えば、酸素濃度センサ６８の出力Voxsが理論空燃比よりもリーンである空燃比に対応した値を示すと、ステップ８１５にて求められる出力偏差量ＤＶoxsが正の値となるので、ステップ８２０にて求められるサブフィードバック制御量vafsfbは正の値となる。従って、ステップ７１０にて求められるabyfsは空燃比センサ６７が実際に検出している空燃比よりもリーンな値（より大きな値）として求められる。
【００９７】
このため、ステップ７１５にて求められる筒内燃料供給量Ｆｃ（ｋ−Ｎ）は小さい値となり、ステップ７２５にて求められる筒内燃料供給量偏差ＤＦｃは大きい値となる。従って、空燃比フィードバック補正量ＤＦｉが大きい正の値となる。この結果、図６のステップ６１０にて求められる最終燃料噴射量Ｆｉは、基本燃料噴射量Ｆbaseよりも大きくなって、機関の空燃比がリッチ側の値となるように制御される。
【００９８】
反対に、機関の平均的な空燃比がリッチであるために酸素濃度センサ６８の出力Voxsが理論空燃比よりもリッチ空燃比に対応した値を示すと、出力偏差量ＤＶoxsが負の値となるので、サブフィードバック制御量vafsfbは負の値となる。従って、ステップ７１０にて求められるabyfsは空燃比センサ６７が実際に検出している空燃比よりもリッチな値（より小さな値）として求められる。
【００９９】
従って、筒内燃料供給量Ｆｃ（ｋ−Ｎ）は大きい値となるので、筒内燃料供給量偏差ＤＦｃは負の値として求められる。その結果、空燃比フィードバック補正量ＤＦｉが負の値となる。これにより、最終燃料噴射量Ｆｉは、基本燃料噴射量Ｆbaseよりも小さくなって、機関の空燃比がリーン側の値となるように制御される。
【０１００】
次に、酸素濃度センサ６８の出力Voxsの目標値Voxsrefを決定する際の作動について、図９に示したサブルーチンを参照しながら説明する。ＣＰＵ８１は、図８のステップ８１０の処理を実行するときステップ９００から処理を開始し、ステップ９０５に進んで空燃比フラグXAFの値が「０」であるか否かを判定する。
【０１０１】
空燃比フラグXAFの値は、後述するように、上流側触媒５３から多量の酸素が流出することにより酸素濃度センサ６８の出力Voxsが低側閾値Lohanより小さくなった場合に「０」に設定され、上流側触媒５３から多量の未燃成分が流出することにより酸素濃度センサ６８の出力Voxsが高側閾値Hihanより大きくなった場合に「１」に設定される。また、空燃比フラグXAFの値は、図示しないイグニッション・キーがオンされたときに起動される図示しないイニシャルルーチンにて「０」に設定されている。
【０１０２】
いま、上流側触媒５３から多量の酸素が流出していて、空燃比フラグXAFの値が「０」であるとして説明を続けると、ＣＰＵ８１はステップ９０５にて「Ｙｅｓ」と判定してステップ９１０に進み、酸素濃度センサ６８の出力Voxsが低側閾値Lohanよりも小さいか否かを判定する。
【０１０３】
この場合、酸素濃度センサ６８の出力Voxsは低側閾値Lohanよりも小さいから、ＣＰＵ８１はステップ９１０にて「Ｙｅｓ」と判定してステップ９１５に進み、目標値Voxsrefに中央値ａを設定し、その後ステップ９９５に進んで本ルーチンを一旦終了する。これにより、図８のステップ８１５にて計算される出力偏差量ＤＶoxsが大きくなるので、上述した空燃比フィードバック制御により機関に供給される混合気の空燃比はリッチ側へと変化する（空燃比が小さくなる）。
【０１０４】
この結果、上流側触媒５３には理論空燃比よりもリッチな空燃比のガスが流入し始めるので、所定の時間が経過すると、酸素濃度センサ６８の出力Voxsは低側閾値Lohanより大きくなる。このとき、ＣＰＵ８１が図９に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５にて「Ｙｅｓ」と判定するとともに、ステップ９１０にて「Ｎｏ」と判定してステップ９２０に進み、酸素濃度センサ６８の出力Voxsが高側閾値Hihanより大きいか否かを判定する。
【０１０５】
この時点では、酸素濃度センサ６８の出力Voxsは高側閾値Hihanより小さいから、ＣＰＵ８１はステップ９２０にて「Ｎｏ」と判定し、ステップ９２５に進んで目標値Voxsrefに上述した低側目標値Lotgtを設定する。この結果、上流側触媒５３から流出するガスの空燃比が理論空燃比近傍の値に維持される。
【０１０６】
その後、運転状態が急激に変化するなどの理由により、多量の未燃成分を含むガス（リッチなガス）が上流側触媒５３に流入すると、上流側触媒５３から多量の未燃成分が流出する。この結果、酸素濃度センサ６８の出力Voxsは高側閾値Hihanより大きくなる。このとき、ＣＰＵ８１が図９に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５にて「Ｙｅｓ」、ステップ９１０にて「Ｎｏ」と判定し、続くステップ９２０にて「Ｙｅｓ」と判定してステップ９３０に進み、空燃比フラグXAFの値を「１」に設定する。
【０１０７】
次いで、ＣＰＵ８１は、ステップ９１５に進んで目標値Voxsrefに中央値ａを設定し、ステップ９９５に進んで本ルーチンを一旦終了する。これにより、図８のステップ８１５にて計算される出力偏差量ＤＶoxs（＝ａ−Voxs）が絶対値の大きい負の値となるので、上述した空燃比フィードバック制御により機関に供給される混合気の空燃比はリーン側へと変化する。
【０１０８】
このような状態において、ＣＰＵ８１が図９に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５にて「Ｎｏ」と判定してステップ９３５に進み、酸素濃度センサ６８の出力Voxsが高側閾値Hihanより大きいか否かを判定する。現時点は、酸素濃度センサ６８の出力Voxsが高側閾値Hihanよりも大きくなった直後であるから、酸素濃度センサ６８の出力Voxsは高側閾値Hihanより大きい。従って、ＣＰＵ８１は、ステップ９３５にて「Ｙｅｓ」と判定してステップ９４０に進み、目標値Voxsrefに中央値ａを設定し、次いで、ステップ９９５に進んで本ルーチンを一旦終了する。
【０１０９】
このような状態が継続すると、上流側触媒５３から流出するガスの空燃比は理論空燃比となり、所定の時間が経過すると、酸素濃度センサ６８の出力Voxsは高側閾値Hihanより小さくなる。このとき、ＣＰＵ８１が図９に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５及びステップ９３５にて「Ｎｏ」と判定してステップ９４５に進み、酸素濃度センサ６８の出力Voxsが低側閾値Lohanより小さいか否かを判定する。
【０１１０】
この時点では、酸素濃度センサ６８の出力Voxsは低側閾値Lohanより大きいから、ＣＰＵ８１はステップ９４５にて「Ｎｏ」と判定し、ステップ９５０に進んで目標値Voxsrefに上述した高側目標値Hitgtを設定し、次いで、ステップ９９５に進んで本ルーチンを一旦終了する。
【０１１１】
その後、運転状態が急激に変化するなどの理由により、過剰な酸素を含むガス（リーンなガス）が上流側触媒５３に流入すると、上流側触媒５３から多量の酸素が流出する。この結果、酸素濃度センサ６８の出力Voxsは低側閾値Lohanより小さくなる。このとき、ＣＰＵ８１が図９に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５及びステップ９３５の両ステップにて「Ｎｏ」と判定し、続くステップ９４５にて「Ｙｅｓ」と判定してステップ９５５に進み、空燃比フラグXAFの値を「０」に設定する。そして、ＣＰＵ８１はステップ９４０に進んで目標値Voxsrefに中央値ａを設定し、ステップ９９５に進んで本ルーチンを一旦終了する。このような作動が繰り返され、空燃比フィードバック制御が実行される。
【０１１２】
以上、説明したように、第１実施形態に係る空燃比制御装置は、酸素濃度センサ６８に到達している現在及び／又は過去のガス状態を酸素濃度センサ６８の出力Voxsの状態（空燃比フラグXAFに反映される値）から判定し、そのガスの状態に応じて目標値Voxsrefを決定する。換言すると、ＣＰＵ８１は、酸素濃度センサ６８の現在及び／又は過去の出力Voxs（即ち、酸素濃度センサ６８の出力Voxsの履歴）に基づいて、酸素濃度センサ６８に理論空燃比のガスが到達したときに同酸素濃度センサ６８が出力するであろう値を決定し、その決定した値を空燃比フィードバック（サブフィードバック）制御の目標値Voxsrefとして設定する。
【０１１３】
この結果、本空燃比制御装置は、上流側触媒５３から流出するガスの空燃比を理論空燃比近傍の値に極力維持することが可能となるので、窒素酸化物や未燃成分の排出量を低減することができる。
【０１１４】
（第２実施形態）
次に、本発明の第２実施形態に係る空燃比制御装置について説明する。この空燃比制御装置は、触媒温度センサ６９により検出された上流側触媒５３の温度Tempccroが所定の閾値温度Tthより小さい場合、目標値Voxsrefを酸素濃度センサ６８の現在及び／又は過去の出力Voxsに依らず常に中央値ａに維持する点においてのみ、第１実施形態に係る空燃比制御装置と相違している。従って、以下、かかる相違点を中心として説明する。
【０１１５】
この空燃比制御装置のＣＰＵ８１は、図９に代わる図１０に示したルーチンを実行するようになっている。なお、図１０において、図９に示したステップと同一のステップには同一の符号を付し、詳細な説明を省略する。
【０１１６】
従って、ＣＰＵ８１は、図８のステップ８１０の処理を実行するとき、ステップ１０００から処理を開始し、ステップ１００５に進んで触媒温度センサ６９により検出された上流側触媒５３の温度Tempccroが所定の閾値温度Tthより大きいか否かを判定する。なお、閾値温度Tthは、上流側触媒５３の活性化温度に対応した温度に設定されることが好適である。
【０１１７】
いま、機関の始動後等であって、上流側触媒５３が十分に暖機されていない（即ち、温度Tempccroが所定の閾値温度Tthより小さい）として説明を続けると、ＣＰＵ８１はステップ１００５にて「Ｎｏ」と判定してステップ１０１０に進み、酸素濃度センサ６８の出力Voxsの目標値Voxsrefを中央値ａに設定する。次いで、ＣＰＵ８１は、ステップ１０１５に進んで空燃比フラグXAFの値を「０」に設定し、ステップ１０９５に進んで本ルーチンを一旦終了する。
【０１１８】
その後、上流側触媒５３の暖機が進み、温度Tempccroが所定の閾値温度Tthより大きくなると、ＣＰＵ８１はステップ１００５にて「Ｙｅｓ」と判定し、図９に示したルーチンと同じステップ９０５〜ステップ９５０からなるルーチンを実行するようになる。この結果、温度Tempccroが所定の閾値温度Tthより大きい場合、酸素濃度センサ６８に到達している現在及び／又は過去のガス状態に応じて目標値Voxsrefが決定されるようになる。
【０１１９】
上流側触媒５３の暖機が進んでいない場合、上流側触媒５３は酸素吸蔵機能を殆ど発揮し得ない。従って、上流側触媒５３にリーン及びリッチのガスが流入すると、上流側触媒５３から多量（高濃度）の酸素及び多量（高濃度）の未燃成分の何れかがそれぞれ流出する。従って、このような状態においては、酸素濃度センサ６８に理論空燃比のガスが到達しているとき、酸素濃度センサ６８の出力Voxsは中央値ａと等しくなる。
【０１２０】
このような観点から、上述した第２実施形態に係る空燃比制御装置は、上流側触媒５３の温度Tempccroが所定の閾値温度Tthより小さい場合、目標値Voxsrefを中央値ａに維持する。これにより、上流側触媒５３の暖機完了前においては機関に供給される混合気の空燃比を理論空燃比近傍の値に制御でき、上流側触媒５３の暖機完了後においては上流側触媒５３から流出するガスの空燃比を理論空燃比近傍の値に制御できるので、大気中に放出される窒素酸化物や未燃成分の量を低減することができる。
【０１２１】
なお、上記実施形態において、閾値温度Tthは固定値であったが、上流側触媒５３の劣化度を現す値（例えば、後述する上流側触媒５３の最大酸素吸蔵量Cmax、上流側触媒５３が装着された車両の走行距離、上流側触媒５３のガス通過量の積分値、及び空燃比センサ６７の出力と酸素濃度センサ６８の出力の軌跡比等）に基づいて変更してもよい。この場合、触媒の劣化が進行するほどその触媒の活性化温度（十分な酸素吸蔵機能を発揮する温度）は高くなるから、上流側触媒５３の劣化が進行するほど（例えば、最大酸素吸蔵量Cmaxが小さくなるほど）、閾値温度Tthを大きくすることが好適である。
【０１２２】
（第３実施形態）
次に、本発明の第３実施形態に係る空燃比制御装置について説明する。この空燃比制御装置は、上流側触媒５３の最大酸素吸蔵量Cmaxが所定の酸素吸蔵量（閾値）Cthより小さい場合、目標値Voxsrefを酸素濃度センサ６８の現在及び／又は過去の出力Voxsに依らず常に中央値ａに維持する点においてのみ、第１実施形態に係る空燃比制御装置と相違している。従って、以下、かかる相違点を中心として説明する。
【０１２３】
この空燃比制御装置のＣＰＵ８１は、図９に代わる図１１に示したルーチンを実行するようになっている。なお、図１１において、図９に示したステップと同一のステップには同一の符号を付し、詳細な説明を省略する。
【０１２４】
従って、ＣＰＵ８１は、図８のステップ８１０の処理を実行するとき、ステップ１１００から処理を開始してステップ１１０５に進み、上流側触媒５３の最大酸素吸蔵量Cmaxが所定の酸素吸蔵量Cthより大きいか否かを判定する。
【０１２５】
最大酸素吸蔵量Cmaxは、次のようにして図示しないルーチンにより別途推定されている。先ず、ＣＰＵ８１は、上流側触媒５３の暖機が完了していて（即ち、上流側触媒５３の温度Tempccroが所定の閾値温度Tthより大きく）、機関の運転状態が定常運転状態にある場合（例えば、スロットルバルブ開度TAの時間的変化量が小さい状態であって、エンジン回転速度NEの時間的変化量が小さい状態にあるとき）、機関に供給される混合気の空燃比を理論空燃比よりもリーンに維持し、酸素濃度センサ６８の出力Voxsが最小出力値minとなったか否か（或いは、低側閾値Lohanより小さくなったか否か）を監視する。
【０１２６】
そして、酸素濃度センサ６８の出力Voxsが最小出力値minであることが確認された時点から、ＣＰＵ８１は、機関に供給される混合気の空燃比を理論空燃比よりもリッチに維持するとともに、酸素濃度センサ６８の出力Voxsが最大出力値maxとなったか否か（或いは、高側閾値Hihanより大きくなったか否か）を監視する。
【０１２７】
この間、上流側触媒５３に吸蔵されていた酸素は消費されて行く。そして、酸素吸蔵量が「０」となることにより、上流側触媒５３から未燃成分が大量に流出し始めると、酸素濃度センサ６８の出力Voxsは最大出力値maxとなる。この時点を、説明の便宜上、時刻ｔｓと称呼する。ＣＰＵ８１は、時刻ｔｓから機関に供給される混合気の空燃比を理論空燃比よりもリーンの空燃比に維持する。同時に、ＣＰＵ８１は、酸素濃度センサ６８の出力Voxsが最小出力値minとなったか否かを監視する。
【０１２８】
この間、上流側触媒５３には酸素が吸蔵されて行く。そして、酸素吸蔵量が最大酸素吸蔵量Cmaxとなることにより、上流側触媒５３から酸素が大量に流出し始めると、酸素濃度センサ６８の出力Voxsは最小出力値minとなる。この時点を、説明の便宜上、時刻ｔｆと称呼する。
【０１２９】
ＣＰＵ８１は、かかる時刻ｔｓ〜ｔｆ間において、下記（３）式及び下記（４）式に基いて酸素吸蔵量の変化量ΔO2を算出するとともにこれを積算して行き、時刻ｔｆでの酸素吸蔵量の積算値を最大酸素吸蔵量Cmaxとして算出する。
ΔO2＝０．２３・ｍｆｒ・|stoich − abyfs|    …（３）
Cmax＝ΣΔO2（区間ｔ＝ｔｓ〜ｔｆ）    …（４）
【０１３０】
上記（３）式において、値「０．２３」は大気中に含まれる酸素の重量割合である。ｍｆｒは所定時間tsample内の燃料噴射量Ｆｉの合計量であり、stoichは理論空燃比（例えば、１４．７）である。abyfsは所定時間tsampleにおいて空燃比センサ６７により検出された空燃比Ａ／Ｆの平均値である。
【０１３１】
この（３）式に示したように、所定時間tsample内の噴射量の合計量ｍｆｒに、検出された空燃比Ａ／Ｆの理論空燃比からの偏移|stoich − abyfs|を乗じることで、同所定時間tsampleにおける空気の過剰量が求められ、この空気の過剰量に酸素の重量割合を乗じることで同所定時間tsampleにおける酸素吸蔵量変化量（吸蔵酸素の増加量）ΔO2が求められる。そして、（４）式に示したように、酸素吸蔵量変化量ΔO2を時刻ｔｓ〜ｔｆに渡って積算することで、上流側触媒５３が酸素を全く吸蔵していない状態から上流側触媒５３が酸素を限界まで吸蔵した状態となるまでの酸素増加量、即ち最大酸素吸蔵量Cmaxが推定・算出される。
【０１３２】
なお、時刻ｔｆから機関に供給される混合気の空燃比を理論空燃比よりもリッチの空燃比に維持し、酸素濃度センサ６８の出力Voxsが最大出力値maxとなるまでの間、上記（３）式と（４）式を用いて最大酸素吸蔵量Cmaxを求めてもよい。
【０１３３】
いま、上流側触媒５３が劣化していて、上流側触媒５３の最大酸素吸蔵量Cmaxが所定の酸素吸蔵量Cthより小さいとして説明を続けると、ＣＰＵ８１はステップ１１０５にて「Ｎｏ」と判定してステップ１０１０に進み、酸素濃度センサ６８の出力Voxsの目標値Voxsrefを中央値ａに設定する。次いで、ＣＰＵ８１は、ステップ１０１５に進んで空燃比フラグXAFの値を「０」に設定し、ステップ１１９５に進んで本ルーチンを一旦終了する。このように、上流側触媒５３の最大酸素吸蔵量Cmaxが酸素吸蔵量Cthより小さい場合、酸素濃度センサ６８に到達している現在及び／又は過去のガス状態に関わらず、中央値ａが目標値Voxsrefに設定される。
【０１３４】
一方、上流側触媒５３が劣化しておらず、上流側触媒５３の最大酸素吸蔵量Cmaxが酸素吸蔵量Cthより大きいと、ＣＰＵ８１はステップ１１０５にて「Ｙｅｓ」と判定し、図９に示したルーチンと同じステップ９０５〜ステップ９５０からなるルーチンを実行する。このように、上流側触媒５３の最大酸素吸蔵量Cmaxが酸素吸蔵量Cthより大きい場合、酸素濃度センサ６８に到達している現在及び／又は過去のガス状態に応じて目標値Voxsrefが決定される。
【０１３５】
上流側触媒５３の最大酸素吸蔵量Cmaxが所定の酸素吸蔵量Cthより小さい場合、上流側触媒５３は酸素吸蔵機能を殆ど発揮し得ない。従って、上流側触媒５３にリーン及びリッチのガスが流入すると、上流側触媒５３から多量（高濃度）の酸素及び多量（高濃度）の未燃成分の何れかがそれぞれ流出する。従って、このような状態においては、酸素濃度センサ６８に理論空燃比のガスが到達しているとき、酸素濃度センサ６８の出力Voxsは中央値ａと等しくなる。
【０１３６】
このような観点から、上述した第３実施形態に係る空燃比制御装置は、上流側触媒５３の最大酸素吸蔵量Cmaxが酸素吸蔵量Cthより小さい場合、目標値Voxsrefを中央値ａに維持する。これにより、上流側触媒５３の最大酸素吸蔵量Cmaxが酸素吸蔵量Cthより小さい場合には機関に供給される混合気の空燃比を理論空燃比近傍の値に制御でき、上流側触媒５３の最大酸素吸蔵量Cmaxが酸素吸蔵量Cthより大きい場合には、上流側触媒５３から流出するガスの空燃比を理論空燃比近傍の値に制御できるので、大気中に放出される窒素酸化物や未燃成分の量を低減することができる。
【０１３７】
（第４実施形態）
次に、本発明の第４実施形態に係る空燃比制御装置について説明する。この空燃比制御装置は、第１実施形態に係る空燃比制御装置が酸素濃度センサ６８の現在及び／又は過去の出力Voxsに基づいて空燃比フィードバック制御の目標値Voxsrefを決定・変更していたのに対し、上流側触媒５３の酸素吸蔵量OSAに基づいて同目標値Voxsrefを決定・変更する点においてのみ、第１実施形態に係る空燃比制御装置と相違している。
【０１３８】
換言すると、第４実施形態に係る空燃比制御装置は、上流側触媒５３の酸素吸蔵量OSA（酸素吸蔵量OSAの現在及び／又は過去の値、即ち酸素吸蔵量OSAの履歴）に基づいて、酸素濃度センサ６８に理論空燃比のガスが到達したときに同酸素濃度センサ６８が出力するであろう値を決定し、その決定した値を空燃比フィードバック（サブフィードバック）制御の目標値Voxsrefとして設定する。以下、第４実施形態について、第１実施形態との相違点を中心として説明する。
【０１３９】
この空燃比制御装置のＣＰＵ８１は、図９に代わる図１２に示したルーチンを実行するようになっている。なお、図１２において、図９に示したステップと同一のステップには同一の符号を付し、詳細な説明を省略する。
【０１４０】
従って、ＣＰＵ８１は、図８のステップ８１０の処理を実行するとき、ステップ１２００から処理を開始してステップ９０５に進み、空燃比フラグXAFの値が「０」であるか否かを判定する。
【０１４１】
いま、上流側触媒５３の酸素吸蔵量OSAが略最大酸素吸蔵量Cmaxに到達していて、上流側触媒５３から多量の酸素が流出し、空燃比フラグXAFの値が「０」となっているとして説明を続けると、ＣＰＵ８１はステップ９０５にて「Ｙｅｓ」と判定してステップ１２０５に進み、酸素吸蔵量OSAの値が最大酸素吸蔵量Cmaxから微少量βだけ小さい値（高側酸素吸蔵量閾値）より大きいか否かを判定する。換言すると、ＣＰＵ８１はステップ１２０５にて酸素吸蔵量OSAが最大酸素吸蔵量Cmaxに実質的に到達しているか否かを判定する。なお、酸素吸蔵量OSAの推定方法については後述する。また、高側酸素吸蔵量閾値は、最大酸素吸蔵量Cmaxの半分の値（以下、「半分値」と称呼する。）よりも、当然に大きい。
【０１４２】
この場合、酸素吸蔵量OSAの値は最大酸素吸蔵量Cmaxから微少量βだけ小さい値（高側酸素吸蔵量閾値）より大きいから、ＣＰＵ８１はステップ１２０５にて「Ｙｅｓ」と判定してステップ９１５に進み、目標値Voxsrefに中央値ａを設定し、その後ステップ９９５に進んで本ルーチンを一旦終了する。このとき、酸素濃度センサ６８には多量の酸素が到達しているから、出力Voxsは最小出力値min近傍の値となっている。従って、図８ステップ８１５にて計算される出力偏差量ＤＶoxsが大きくなるので、上述した空燃比フィードバック（サブフィードバック）制御により機関に供給される混合気の空燃比はリッチ側へと変化する。
【０１４３】
この結果、上流側触媒５３には理論空燃比よりもリッチな空燃比のガスが流入し始めるので、所定の時間が経過すると、酸素吸蔵量OSAは減少して最大酸素吸蔵量Cmaxから微少量βだけ小さい値（高側酸素吸蔵量閾値）よりも小さくなる。このとき、ＣＰＵ８１が図１２に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５にて「Ｙｅｓ」と判定するとともに、ステップ１２０５にて「Ｎｏ」と判定してステップ１２１０に進み、酸素吸蔵量OSAが微少量β（低側酸素吸蔵量閾値）より小さいか否かを判定する。換言すると、ＣＰＵ８１はステップ１２１０にて酸素吸蔵量OSAが実質的に「０」であるか否かを判定する。また、低側酸素吸蔵量閾値は、最大酸素吸蔵量Cmaxの半分値よりも、当然に小さい。
【０１４４】
この時点では、酸素吸蔵量OSAは実質的に「０」でないから、ＣＰＵ８１はステップ１２１０にて「Ｎｏ」と判定し、ステップ９２５に進んで目標値Voxsrefに上述した低側目標値Lotgtを設定する。
【０１４５】
その後、運転状態が急激に変化するなどの理由により、多量の未燃成分を含むガス（リッチなガス）が上流側触媒５３に流入すると、酸素吸蔵量OSAは減少し、微少量β（低側酸素吸蔵量閾値）より小さくなる。このとき、ＣＰＵ８１が図１２に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５にて「Ｙｅｓ」、ステップ１２０５にて「Ｎｏ」と判定し、続くステップ１２１０にて「Ｙｅｓ」と判定してステップ９３０に進み、空燃比フラグXAFの値を「１」に設定する。
【０１４６】
次いで、ＣＰＵ８１は、ステップ９１５に進んで目標値Voxsrefに中央値ａを設定し、ステップ１２９５に進んで本ルーチンを一旦終了する。このとき、酸素濃度センサ６８には多量の未燃成分が到達しているから、出力Voxsは最大出力値max近傍の値となっている。従って、図８ステップ８１５にて計算される出力偏差量ＤＶoxsが絶対値の大きい負の値となるので、上述した空燃比フィードバック（サブフィードバック）制御により機関に供給される混合気の空燃比はリーン側へと変化する。
【０１４７】
このような状態において、ＣＰＵ８１が図１２に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５にて「Ｎｏ」と判定してステップ１２１５に進み、酸素吸蔵量OSAが微少量β（低側酸素吸蔵量閾値）より小さいか否かを判定する。換言すると、ＣＰＵ８１はステップ１２１０にて酸素吸蔵量OSAが実質的に「０」であるか否かを判定する。
【０１４８】
現時点は、酸素吸蔵量OSAが微少量β（低側酸素吸蔵量閾値）より小さくなった直後であるから、ＣＰＵ８１は、ステップ１２１５にて「Ｙｅｓ」と判定し、ステップ９４０に進んで目標値Voxsrefに中央値ａを設定し、ステップ１２９５に進んで本ルーチンを一旦終了する。
【０１４９】
このような状態が継続すると、上流側触媒５３には過剰の酸素を含むリーンなガスが流入し、その過剰な酸素は上流側触媒５３に吸蔵されて行く。従って、酸素吸蔵量OSAは増大し、所定の時間後に微少量β（低側酸素吸蔵量閾値）より大きくなる。また、上流側触媒５３から流出するガスの空燃比は理論空燃比となる。
【０１５０】
このとき、ＣＰＵ８１が図１２に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５及びステップ１２１５の両ステップにて「Ｎｏ」と判定し、ステップ１２２０に進んで酸素吸蔵量OSAの値が最大酸素吸蔵量Cmaxから微少量βだけ小さい値（高側酸素吸蔵量閾値）より大きいか否かを判定する。この時点では、酸素吸蔵量OSAは最大酸素吸蔵量Cmax近傍の値とはなっていない。従って、ＣＰＵ８１はステップ１２２０にて「Ｎｏ」と判定してステップ９５０に進み、目標値Voxsrefに上述した高側目標値Hitgtを設定し、ステップ１２９５に進んで本ルーチンを一旦終了する。
【０１５１】
その後、運転状態が急激に変化するなどの理由により、多量の酸素を含むガス（リーンなガス）が上流側触媒５３に流入すると、酸素吸蔵量OSAは最大酸素吸蔵量Cmaxに略等しい値となる。このとき、ＣＰＵ８１が図１２に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５及びステップ１２１５の両ステップにて「Ｎｏ」と判定するとともに、ステップ１２２０にて「Ｙｅｓ」と判定してステップ９５５に進み、空燃比フラグXAFの値を「０」に設定する。そして、ＣＰＵ８１はステップ９４０に進んで目標値Voxsrefに中央値ａを設定し、ステップ１２９５に進んで本ルーチンを一旦終了する。このような作動が繰り返され、空燃比フィードバック制御が実行される。
【０１５２】
次に、酸素吸蔵量OSAの推定方法について説明する。ＣＰＵ８１は、酸素濃度センサ６８の出力Voxsが最大出力値max以外の値から最大出力値maxになったとき（或いは、出力Voxsが高側閾値Hihanより小さい値から高側閾値Hihanより大きい値になったとき）、酸素吸蔵量OSAの値を「０」に設定する。そして、下記（５）式及び下記（６）式に応じて酸素吸蔵量OSAを推定する。これらの式の根拠は、上述した（３）式及び（４）式の根拠と同じである。
ΔO2＝０．２３・ｍｆｒ・（abyfs − stoich）    …（５）
OSA＝ΣΔO2  （但し、０≦OSA≦Cmax）      …（６）
【０１５３】
以上、説明したように、第４実施形態に係る空燃比制御装置は、酸素濃度センサ６８に到達している現在及び／又は過去のガス状態（換言すると、触媒の状態）を酸素吸蔵量OSAの状態から判定し、そのガスの状態に応じて目標値Voxsrefを決定する。即ち、ＣＰＵ８１は、酸素吸蔵量OSAの現在及び／又は過去の値（即ち、酸素吸蔵量OSAの履歴）に基づいて、酸素濃度センサ６８に理論空燃比のガスが到達したときに同酸素濃度センサ６８が出力するであろう値を決定し、その決定した値を空燃比フィードバック（サブフィードバック）制御の目標値Voxsrefとして設定する。
【０１５４】
この結果、上流側触媒５３から流出するガスの空燃比を理論空燃比近傍の値に維持することが可能となるので、窒素酸化物や未燃成分の排出量が低減する。
【０１５５】
（第５実施形態）
次に、本発明の第５実施形態に係る空燃比制御装置について説明する。この空燃比制御装置は、酸素濃度センサ６８の素子温度に応じて第１実施形態の高側目標値及び低側目標値を変更する点においてのみ、第１実施形態と相違している。従って、以下、かかる相違点を中心として説明する。
【０１５６】
酸素濃度センサ６８に到達するガスの空燃比に対する同酸素濃度センサ６８の出力Voxsは、図１３に示したように、同酸素濃度センサ６８の素子温度に応じて変化する。図１３において、実線の曲線Ｃ１及び破線の曲線Ｃ２は、酸素濃度センサ６８の素子温度が相対的に低温及び高温であるときの出力Voxsをそれぞれ示している。
【０１５７】
先ず、酸素濃度センサ６８の素子温度が低温である場合について説明する。上流側触媒５３から多量の未燃成分が流出し、酸素濃度センサ６８に到達したガス（酸素濃度センサ到達ガス）の空燃比が理論空燃比よりもリッチであるとき、酸素濃度センサ６８の出力Voxsは上述した高側閾値Hihanより大きくなる。その後、触媒５３に流入するガスの空燃比が次第に大きくなると（リーン側に向けて変化すると）、出力Voxsは次第に低下して高側閾値Hihanより小さくなる。そして、酸素濃度センサ到達ガスの空燃比が理論空燃比となると、出力Voxsは、中央値ａより大きく高側閾値Hihanより小さい値HitgtHiと一致する。その後、上流側触媒５３が酸素を吸蔵しきれなくなると、上流側触媒５３から多量の酸素が流出し始める。この結果、出力Voxsは低側閾値Lohanより小さくなる。
【０１５８】
この状態から、触媒５３に流入するガスの空燃比が次第に小さくなると（リッチ側に向けて変化すると）、出力Voxsは次第に上昇して低側閾値Lohanより大きくなる。そして、酸素濃度センサ到達ガスの空燃比が理論空燃比となると、出力Voxsは、中央値ａより小さく低側閾値Lohanより大きい値LotgtLoと一致する。その後、酸素濃度センサ到達ガスの空燃比が更に小さくなり、上流側触媒５３に吸蔵されていた酸素が総て消費されて上流側触媒５３から多量の未燃成分が流出し始めると、出力Voxsは高側閾値Hihanより大きくなる。
【０１５９】
次に、酸素濃度センサ６８の素子温度が高温である場合について説明する。上流側触媒５３から多量の未燃成分が流出し、酸素濃度センサ到達ガスの空燃比が理論空燃比よりもリッチであるとき、出力Voxsは上述した高側閾値Hihanより大きくなる。その後、触媒５３に流入するガスの空燃比が次第に大きくなると、出力Voxsは次第に低下して高側閾値Hihanより小さくなる。そして、酸素濃度センサ到達ガスの空燃比が理論空燃比となると、出力Voxsは、中央値ａより大きく値HitgtHiより小さい値HitgtLoと一致する。その後、上流側触媒５３が酸素を吸蔵しきれなくなると、上流側触媒５３から多量の酸素が流出し始める。この結果、出力Voxsは低側閾値Lohanより小さくなる。
【０１６０】
この状態から、触媒５３に流入するガスの空燃比が次第に小さくなると、出力Voxsは次第に上昇して低側閾値Lohanより大きくなる。そして、酸素濃度センサ到達ガスの空燃比が理論空燃比となると、出力Voxsは、値LotgtLoより大きく中央値ａより小さい値LotgtHiと一致する。その後、酸素濃度センサ到達ガスの空燃比が更に小さくなり、上流側触媒５３から多量の未燃成分が流出し始めると、出力Voxsは高側閾値Hihanより大きくなる。
【０１６１】
第５実施形態に係る空燃比制御装置は、このような出力Voxsの挙動に基づき、出力Voxsが高側閾値Hihanより大きくなった後に低下して高側閾値Hihanと低側閾値Lohanの間にある期間、酸素濃度センサ６８の素子温度が所定温度より低ければ目標値Voxsrefを低温用高側目標値である前記値HitgtHiに設定し、酸素濃度センサ６８の素子温度が所定温度以上であれば目標値Voxsrefを低温用高側目標値HitgtHiよりも小さい高温用高側目標値である値HitgtLoに設定する。
【０１６２】
更に、この空燃比制御装置は、出力Voxsが低側閾値Lohanより小さくなった後に上昇して低側閾値Lohanと高側閾値Hihanとの間にある期間、酸素濃度センサ６８の素子温度が所定温度より低ければ目標値Voxsrefを低温用低側目標値である前記値LotgtLoに設定し、酸素濃度センサ６８の素子温度が所定温度以上であれば目標値Voxsrefを低温用低側目標値LotgtLoよりも大きい高温用低側目標値である値LotgtHiに設定する。また、この空燃比制御装置は、出力Voxsが高側閾値Hihanより大きくなっている期間及び出力Voxsが低側閾値Lohanより小さくなっている期間、酸素濃度センサ６８の素子温度に関わらず目標値Voxsrefを中央値ａに設定する。
【０１６３】
次に、この空燃比制御装置の構成及び実際の作動について説明する。この空燃比制御装置は、第１実施形態に係る空燃比制御装置が有する構成に加え、図１４に示したように、素子温度センサ（酸素濃度センサ素子温度センサ）７２を備えている。素子温度センサ７２は、酸素濃度センサ６８の素子の近傍に配設され、酸素濃度センサ６８の素子温度Tsensを表す信号を出力するようになっている。素子温度センサ７２は、図３に示した電気制御装置８０のインターフェース８５に接続されている。この素子温度センサ７２は、酸素濃度センサ６８の素子温度を取得する酸素濃度センサ素子温度取得手段である。
【０１６４】
この空燃比制御装置のＣＰＵ８１は、図６乃至図８に示したルーチンと、図９に変わる図１５に示したルーチンと、を実行するようになっている。図１５に示したルーチンは、図９のステップ９２５をステップ１５０５乃至ステップ１５２０に置換し、図９のステップ９５０をステップ１５２５乃至ステップ１５４０に置換したルーチンである。
【０１６５】
従って、ＣＰＵ８１は、図８のステップ８１０の処理を実行するとき、図１５のステップ１５００から処理を開始してステップ９０５の処理を行う。いま、空燃比フラグXAFの値が「０」となっていて、酸素濃度センサ６８の出力Voxsは低側閾値Lohanよりも小さい状態にあるとして説明を続けると、ＣＰＵ８１はステップ９０５にて「Ｙｅｓ」と判定してステップ９１０及びステップ９１５の処理を行って目標値Voxsrefを中央値ａに設定し、ステップ１５９５に進んで本ルーチンを一旦終了する。
【０１６６】
この結果、上述した空燃比フィードバック制御により機関に供給される混合気の空燃比はリッチ側へと変化するため、所定の時間が経過すると上流側触媒５３から流出するガス中に含まれる酸素量が低下する。この結果、酸素濃度センサ６８の出力Voxsは低側閾値Lohanより大きくなる。このとき、ＣＰＵ８１が図１５に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５及びステップ９１０を経由してステップ９２０に進む。
【０１６７】
この時点では、酸素濃度センサ６８の出力Voxsは高側閾値Hihanより小さいから、ＣＰＵ８１はステップ９２０にて「Ｎｏ」と判定してステップ１５０５に進み、素子温度センサ７２の出力に基づいて酸素濃度センサ６８の素子温度Tsensを取得する。次いで、ＣＰＵ８１はステップ１５１０に進み、取得した素子温度Tsensが所定温度Tsth以上であるか否かを判定する。
【０１６８】
そして、ＣＰＵ８１は、素子温度Tsensが所定温度Tsth以上であるとき、ステップ１５１０にて「Ｙｅｓ」と判定してステップ１５１５に進み、目標値Voxsrefを高温用低側目標値である値LotgtHiに設定する。これに対し、ＣＰＵ８１は、素子温度Tsensが所定温度Tsthより小さいとき、ステップ１５１０にて「Ｎｏ」と判定してステップ１５２０に進み、目標値Voxsrefを低温用低側目標値である値LotgtLoに設定する。その後、ＣＰＵ８１はステップ１５９５に進み、本ルーチンを一旦終了する。この結果、上流側触媒５３から流出するガスの空燃比が理論空燃比近傍の値に維持される。
【０１６９】
その後、運転状態が急激に変化するなどの理由により、多量の未燃成分を含むガス（リッチなガス）が上流側触媒５３に流入し、その結果、上流側触媒５３から多量の未燃成分が流出すると、酸素濃度センサ６８の出力Voxsは高側閾値Hihanより大きくなる。このとき、ＣＰＵ８１が図１５に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５、９１０、９２０、９３０及びステップ９１５に進み、空燃比フラグXAFの値を「１」に設定するとともに、目標値Voxsrefを中央値ａに設定し、ステップ１５９５にて本ルーチンを一旦終了する。
【０１７０】
このような状態（酸素濃度センサ６８の出力Voxsが高側閾値Hihanよりも大きくなった直後）において、ＣＰＵ８１が図１５に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５、９３５及びステップ９４０の処理を行い、これにより目標値Voxsrefに中央値ａを設定してからステップ１５９５にて本ルーチンを一旦終了する。
【０１７１】
このような状態が継続すると、上述した空燃比フィードバック制御により機関に供給される混合気の空燃比はリーン側へと変化するため、所定の時間が経過すると酸素濃度センサ６８の出力Voxsは高側閾値Hihanより小さくなる。このとき、ＣＰＵ８１が図１５に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５、９３５及びステップ９４５を経由してステップ１５２５に進み、ステップ１５０５と同様に酸素濃度センサ６８の素子温度Tsensを取得する。次いで、ＣＰＵ８１はステップ１５３０に進み、取得した素子温度Tsensが所定温度Tsth以上であるか否かを判定する。
【０１７２】
そして、ＣＰＵ８１は、素子温度Tsensが所定温度Tsth以上であるとき、ステップ１５３０にて「Ｙｅｓ」と判定してステップ１５３５に進み、目標値Voxsrefを高温用高側目標値である値HitgtLoに設定する。これに対し、ＣＰＵ８１は、素子温度Tsensが所定温度Tsthより小さいとき、ステップ１５３０にて「Ｎｏ」と判定してステップ１５４０に進み、目標値Voxsrefを低温用高側目標値である値HitgtHiに設定する。その後、ＣＰＵ８１はステップ１５９５に進み、本ルーチンを一旦終了する。この結果、上流側触媒５３から流出するガスの空燃比が理論空燃比近傍の値に維持される。
【０１７３】
その後、運転状態が急激に変化するなどの理由により、多量の過剰な酸素を含むガスが上流側触媒５３に流入し、その結果、上流側触媒５３から多量の酸素が流出すると、酸素濃度センサ６８の出力Voxsは低側閾値Lohanより小さくなる。このとき、ＣＰＵ８１が図１５に示したルーチンを実行すると、ＣＰＵ８１はステップ９０５、９３５、９４５、９５５及びステップ９４０に進み、空燃比フラグXAFの値を「０」に設定するとともに、目標値Voxsrefを中央値ａに設定し、ステップ１５９５にて本ルーチンを一旦終了する。
【０１７４】
以上、説明したように、第５実施形態の空燃比制御装置によれば、酸素濃度センサ６８に到達したガスの状態と、酸素濃度センサ６８の素子温度Tsensとに基づいて目標値Voxsrefを変更する。従って、空燃比フィードバック制御（サブフィードバック制御）の目標値Voxsrefを、酸素濃度センサ６８に到達するガスの空燃比が理論空燃比であるときに同酸素濃度センサ６８が示す出力Voxsに、より精度良く一致させることができる。この結果、上流側触媒５３からは、略理論空燃比のガスが流出する機会が増大するので、窒素酸化物や未燃成分の大気への放出量をより一層低減することができる。
【０１７５】
なお、上記第５実施形態においては、素子温度センサ７２の出力に基づいて酸素濃度センサ６８の素子温度Tsensを取得しているが、例えば、アクセルペダル操作量Accpなどのエンジン負荷及びエンジン回転速度NEと、酸素濃度センサ６８の素子温度Tsensとの関係を予め実験により求めるとともに、この関係をマップMapTsens(Accp,NE)としてＲＯＭ８２に記憶しておき、実際のアクセルペダル操作量Accpと実際のエンジン回転速度NEとマップMapTsens(Accp,NE)とに基づいて素子温度Tsensを取得（推定）するようにしてもよい。
【０１７６】
また、上記ステップ１５１０乃至ステップ１５２０は、低側目標値Logtgを取得された酸素濃度センサ６８の素子温度Tsensが高いほど大きい値に変更する低側目標値設定手段に相当している。上記ステップ１５３０乃至ステップ１５４０は、高側目標値Hitgtを取得された酸素濃度センサ６８の素子温度Tsensが高いほど小さい値に変更する高側目標値設定手段に相当している。換言すると、低側目標値Logtgを取得された酸素濃度センサ６８の素子温度Tsensが高いほど大きい値となるように連続的に変更してもよく、高側目標値Hitgtを取得された酸素濃度センサ６８の素子温度Tsensが高いほど小さい値となるように連続的に変更してもよい。
【０１７７】
（第６実施形態）
次に、本発明の第６実施形態に係る空燃比制御装置について説明する。この空燃比制御装置は、酸素濃度センサ６８の出力Voxsが高側閾値Hihanより大きくなってから低側閾値Lohanより小さくなるまでの期間、目標値Voxsrefを中央値ａに設定することなく常に高側目標値に設定し、酸素濃度センサ６８の出力Voxsが低側閾値Lohanより小さくなってから高側閾値Hihanより大きくなるまでの期間、目標値Voxsrefを中央値ａに設定することなく常に低側目標値に設定する点において、上記第５実施形態と相違している。なお第５実施形態においても、高側目標値及び低側目標値は、素子温度Tsensに応じて変更される。
【０１７８】
この空燃比制御装置のハードウエア構成は第５実施形態のそれと同一である。一方、この空燃比制御装置のＣＰＵ８１は、図６乃至図８に示したルーチンと、図１５に代わる図１６に示したルーチンと、を実行するようになっている。
【０１７９】
従って、ＣＰＵ８１は、図８のステップ８１０の処理を実行するとき、図１６のステップ１６００から処理を開始してステップ１６０５に進み、素子温度センサ７２の出力に基づいて酸素濃度センサ６８の素子温度Tsensを取得する。次に、ＣＰＵ８１はステップ１６１０に進み、空燃比フラグXAFの値が「０」であるか否かを判定する。
【０１８０】
いま、上流側触媒５３から多量の酸素が流出していて、空燃比フラグXAFの値が「０」であるとして説明を続けると、ＣＰＵ８１はステップ１６１０にて「Ｙｅｓ」と判定してステップ１６１５に進み、酸素濃度センサ６８の出力Voxsが高側閾値Hihanより大きいか否かを判定する。
【０１８１】
この場合、酸素濃度センサ６８の出力Voxsは低側閾値Lohanよりも小さいから、酸素濃度センサ６８の出力Voxsは高側閾値Hihanよりも当然に小さい。従って、ＣＰＵ８１はステップ１６１５にて「Ｎｏ」と判定してステップ１６２５に進み、同ステップ１６２５に示した素子温度Tsensと低側目標値Lotgtとの関係とステップ１６０５にて取得した実際の素子温度Tsensとに基づいて現時点の低側目標値Lotgtを決定する。ステップ１６２５に示した関係は、予め実験により求められ、ＲＯＭ８２内に記憶されている。この関係によれば、低側目標値Lotgtは、中央値ａと低側閾値Lohanとの間の値であって、素子温度Tsensの増大とともに増大するように求められる。次に、ＣＰＵ８１はステップ１６３０に進み、目標値Voxsrefにステップ１６２５にて求めた低側目標値Lotgtを設定し、ステップ１６９５に進んで本ルーチンを一旦終了する。
【０１８２】
以降、ＣＰＵ８１が図１６に示したルーチンを実行すると、ＣＰＵ８１はステップ１６０５乃至ステップ１６１５、ステップ１６２５及びステップ１６３０の処理を実行し、目標値Voxsrefをステップ１６２５にて定められた低側目標値Lotgtに設定するようになる。
【０１８３】
このように定められた目標値Voxsrefに基づいて上述した空燃比フィードバック制御が実行されることにより、機関に供給される混合気の空燃比はリッチ側へと変化する（空燃比が小さくなる。）。その結果、上流側触媒５３から流出するガスの空燃比が理論空燃比近傍の値となる。
【０１８４】
その後、運転状態が急激に変化するなどの理由により、多量の未燃成分を含むガスが上流側触媒５３に流入すると、上流側触媒５３から多量の未燃成分が流出する。この結果、酸素濃度センサ６８の出力Voxsは高側閾値Hihanより大きくなる。このとき、ＣＰＵ８１が図１６に示したルーチンを実行すると、ＣＰＵ８１はステップ１６０５及びステップ１６１０に続くステップ１６１５にて「Ｙｅｓ」と判定してステップ１６２０に進み、空燃比フラグXAFの値を「１」に設定する。
【０１８５】
次いで、ＣＰＵ８１はステップ１６３５に進み、同ステップ１６３５に示した素子温度Tsensと高側目標値Hitgtとの関係とステップ１６０５にて取得した実際の素子温度Tsensとに基づいて現時点の高側目標値Hitgtを決定する。ステップ１６３５に示した関係は、予め実験により求められ、ＲＯＭ８２内に記憶されている。この関係によれば、高側目標値Hitgtは、中央値ａと高側閾値Hihanとの間の値であって、素子温度Tsensの増大とともに減少するように求められる。次に、ＣＰＵ８１はステップ１６４０に進み、目標値Voxsrefにステップ１６３５にて求めた高側目標値Hitgtを設定し、ステップ１６９５に進んで本ルーチンを一旦終了する。
【０１８６】
以降、ＣＰＵ８１が図１６に示したルーチンの処理を開始すると、ＣＰＵ８１はステップ１６０５に続くステップ１６１０にて「Ｎｏ」と判定し、ステップ１６４５に進んで酸素濃度センサ６８の出力Voxsが低側閾値Lohanより小さいか否かを判定する。この場合、出力Voxsは高側閾値Hihanを上回った直後であるから低側閾値Lohanより当然に大きい。従って、ＣＰＵ８１はステップ１６４５にて「Ｎｏ」と判定し、ステップ１６３５及びステップ１６４０に進む。これにより、目標値Voxsrefにはステップ１６３５にて決定される高側目標値Hitgtが設定されるようになる。
【０１８７】
このように定められた目標値Voxsrefに基づいて上述した空燃比フィードバック制御が実行されることにより、機関に供給される混合気の空燃比はリーン側へと変化する（空燃比が大きくなる。）。その結果、上流側触媒５３から流出するガスの空燃比が理論空燃比近傍の値となる。
【０１８８】
その後、運転状態が急激に変化するなどの理由により、過剰な酸素を含むガス（リーンなガス）が上流側触媒５３に流入すると、上流側触媒５３から多量の酸素が流出する。この結果、酸素濃度センサ６８の出力Voxsは低側閾値Lohanより小さくなる。このとき、ＣＰＵ８１が図１６に示したルーチンを実行すると、ＣＰＵ８１はステップ１６０５及び１６１０に続くステップ１６４５にて「Ｙｅｓ」と判定し、ステップ１６５０に進んで空燃比フラグXAFの値を「０」に設定する。そして、ＣＰＵ８１はステップ１６２５及びステップ１６３０に進み、目標値Voxsrefにステップ１６２５にて決定される低側目標値Lotgtを再び設定するようになる。
【０１８９】
以上、説明したように、第６実施形態に係る空燃比制御装置は、酸素濃度センサ６８の出力Voxsが低側閾値Lohanより小さくなってから（即ち、ＣＰＵ８１がステップ１６４５にて「Ｙｅｓ」と判定し、ステップ１６５０にて空燃比フラグXAFの値を「０」に変更してから）、高側閾値Hihanより大きくなるまで（即ち、ＣＰＵ８１がステップ１６１５にて「Ｙｅｓ」と判定し、ステップ１６２０にて空燃比フラグXAFの値を「１」に変更するまで）の期間、空燃比フィードバック制御の目標値Voxsrefを中央値ａと低側閾値Lohanとの間の低側目標値Lotgtに設定する。更に、低側目標値Lotgtは、酸素濃度センサ６８の素子温度Tsensが高くなるほど大きくなるように変更される。
【０１９０】
加えて、この空燃比制御装置は、酸素濃度センサ６８の出力Voxsが高側閾値Hihanより大きくなってから（即ち、ＣＰＵ８１がステップ１６１５にて「Ｙｅｓ」と判定し、ステップ１６２０にて空燃比フラグXAFの値を「１」に変更してから）、低側閾値Lohanより小さくなるまで（即ち、ＣＰＵ８１がステップ１６４５にて「Ｙｅｓ」と判定し、ステップ１６５０にて空燃比フラグXAFの値を「０」に変更するまで）の期間、空燃比フィードバック制御の目標値Voxsrefを中央値ａと高側閾値Hihanとの間の高側目標値Hitgtに設定する。更に、高側目標値Hitgtは、酸素濃度センサ６８の素子温度Tsensが高くなるほど小さくなるように変更される。
【０１９１】
この結果、酸素濃度センサ６８の素子温度Tsensにかかわらず、空燃比フィードバック制御（サブフィードバック制御）の目標値Voxsrefを、酸素濃度センサ６８に理論空燃比のガスが到達している場合に同酸素濃度センサ６８が出力する値Voxsに、実質的に一致させることができるので、窒素酸化物や未燃成分を上流側触媒５３内で浄化する状態をできるだけ維持することが可能となる。
【０１９２】
なお、上記ステップ１６２５は、低側目標値Logtgを取得された酸素濃度センサ６８の素子温度Tsensが高いほど大きい値に変更する低側目標値設定手段に相当している。上記ステップ１６３５は、高側目標値Hitgtを取得された酸素濃度センサ６８の素子温度Tsensが高いほど小さい値に変更する高側目標値設定手段に相当している。
【０１９３】
以上、本発明による空燃比制御装置の各実施形態によれば、触媒（上流側触媒５３）から流出するガスの酸素濃度を検出する酸素濃度センサ６８に到達したガスの状態（酸素又は未燃成分の量・濃度）を、現在及び／又は過去の酸素濃度センサ出力Voxs、或いは、現在及び／又は過去の酸素吸蔵量OSAに基づいて推定し、その推定結果に基づいて空燃比フィードバック制御の目標値でもある酸素濃度センサ６８の出力の目標値Voxsrefを変更する。従って、上流側触媒５３から流出するガスの空燃比が理論空燃比近傍に制御されやすくなるので、上流側触媒５３が窒素酸化物及び未燃成分を効果的に浄化する状態を維持することができる。
【０１９４】
なお、本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上流側触媒５３の温度は、機関の運転状態を表すパラメータ（例えば、吸入空気量Ga及びエンジン回転速度NE）に基づいて推定されてもよい。また、上記実施形態では燃料噴射量を変更して上流側触媒５３に流入するガスの空燃比を制御していたが、燃料噴射量の制御に加え、又は、燃料噴射量の制御に代え、上流側触媒５３に二次空気や燃料などを直接加えることにより、上流側触媒５３に流入するガスの空燃比を制御してもよい。
【０１９５】
また、空燃比センサ６７は、酸素濃度センサ６８と同様な酸素濃度センサであってもよい。この場合、上流側の酸素濃度センサの出力がリーンであることを示したときに次第に増大し、リッチであることを示したときに次第に減少するとともに、上流側の酸素濃度センサの出力がリーンからリッチへと変化したことを示したときに所定量ＳＫｌだけスキップ的に減少し、リッチからリーンへと変化したことを示したときに所定量ＳＫｒだけスキップ状に増大するフィードバック補正量を求め、これを基本燃料噴射量Ｆbaseに加えるか乗じることで最終燃料噴射量Ｆｉを求めてもよい。
【０１９６】
そして、このようなフィードバック制御において、酸素濃度センサ６８の出力Voxsが目標値Voxsrefより小さいとき所定量ＳＫｒを次第に増大させるとともに所定量ＳＫｌを次第に減少せしめ、酸素濃度センサ６８の出力Voxsが目標値Voxsrefより大きいとき所定量ＳＫｒを次第に減少させるとともに所定量ＳＫｌを次第に増大せしめてもよい。
【０１９７】
また、上記実施形態においては、触媒の状態を示す値として酸素吸蔵量OSAを求めていたが、上流側触媒５３の下流であって下流側触媒５４の上流の排気通路に、水素濃度センサやNOx濃度センサを配設し、これらのセンサの出力に基づいて触媒の状態を示す値を推定してもよい。また、酸素吸蔵量OSAは、触媒内における酸化・還元反応を記述した触媒モデルに基づいて求めることもできる。更に、第２〜第４実施形態における低側目標値Logtgを、第５及び第６実施形態のように、取得された酸素濃度センサ６８の素子温度Tsensが高いほど大きい値となるように変更してもよく、第２〜第４実施形態における高側目標値Hitgtを、第５及び第６実施形態のように、取得された酸素濃度センサ６８の素子温度Tsensが高いほど小さい値となるように変更してもよい。
【図面の簡単な説明】
【０１９８】
【図１】空燃比と酸素濃度センサの出力値の関係を示したグラフである。
【図２】触媒の下流に配設された酸素濃度センサの出力値の変化を示すタイムチャートである。
【図３】内燃機関に適用した本発明の第１実施形態に係る空燃比制御装置（燃料噴射量制御装置）の概略を示した図である。
【図４】図３に示した空燃比センサの出力と空燃比の関係を示したグラフである。
【図５】図３に示した空燃比制御装置による空燃比フィードバック制御中の酸素濃度センサの出力値の変化を示すタイムチャートである。
【図６】図３に示したＣＰＵが実行する燃料噴射制御ルーチンを示したフローチャートである。
【図７】図３に示したＣＰＵが空燃比フィードバック補正量を算出するために実行するルーチンを示したフローチャートである。
【図８】図３に示したＣＰＵがサブフィードバック量を算出するために実行するルーチンを示したフローチャートである。
【図９】図３に示したＣＰＵがサブフィードバック制御の目標値を決定するために実行するルーチンを示したフローチャートである。
【図１０】本発明の第２実施形態に係る空燃比制御装置のＣＰＵが、サブフィードバック制御の目標値を決定するために実行するルーチンを示したフローチャートである。
【図１１】本発明の第３実施形態に係る空燃比制御装置のＣＰＵが、サブフィードバック制御の目標値を決定するために実行するルーチンを示したフローチャートである。
【図１２】本発明の第４実施形態に係る空燃比制御装置のＣＰＵが、サブフィードバック制御の目標値を決定するために実行するルーチンを示したフローチャートである。
【図１３】触媒の下流に配設された酸素濃度センサに到達するガスの空燃比に対する同酸素濃度センサの出力を、同酸素濃度センサの素子温度が低温の場合と高温の場合とに分けて示したグラフである。
【図１４】本発明の第５実施形態に係る空燃比制御装置の排気系統の一部を示した図である。
【図１５】本発明の第５実施形態に係る空燃比制御装置のＣＰＵが、サブフィードバック制御の目標値を決定するために実行するルーチンを示したフローチャートである。
【図１６】本発明の第６実施形態に係る空燃比制御装置のＣＰＵが、サブフィードバック制御の目標値を決定するために実行するルーチンを示したフローチャートである。
【符号の説明】
【０１９９】
２５…燃焼室、３２…吸気弁、３５…排気弁、３９…インジェクタ、５３…上流側触媒、６７…空燃比センサ、６８…酸素濃度センサ、６９…触媒温度センサ、８０…電気制御装置、８１…ＣＰＵ。
【図１】
2005171982.tif 000003
【図２】
2005171982.tif 000004
【図３】
2005171982.tif 000005
【図４】
2005171982.tif 000006
【図５】
2005171982.tif 000007
【図６】
2005171982.tif 000008
【図７】
2005171982.tif 000009
【図８】
2005171982.tif 000010
【図９】
2005171982.tif 000011
【図１０】
2005171982.tif 000012
【図１１】
2005171982.tif 000013
【図１２】
2005171982.tif 000014
【図１３】
2005171982.tif 000015
【図１４】
2005171982.tif 000016
【図１５】
2005171982.tif 000017
【図１６】
2005171982.tif 000018