(57)【特許請求の範囲】
【請求項１】
内燃機関の排気通路に設けられた排気浄化触媒と、該排気浄化触媒よりも排気流れ方向下流側において前記排気通路に設けられた下流側空燃比センサと、前記排気浄化触媒に流入する排気ガスの空燃比の制御及び前記下流側空燃比センサの異常診断を行う制御装置とを具備し、
前記制御装置は、前記排気浄化触媒に流入する排気ガスの空燃比が理論空燃比よりもリッチなリッチ空燃比にされているときに、前記下流側空燃比センサの出力空燃比が理論空燃比よりもリーンなリーン判定空燃比以上に維持されている場合には、前記排気浄化触媒に流入する排気ガスの空燃比をそれまでの空燃比よりもリッチ側の空燃比に変化させる空燃比リッチ化制御を行い、
前記空燃比リッチ化制御により前記排気浄化触媒に流入する排気ガスの空燃比をリッチ側の空燃比に変化させたときに、前記下流側空燃比センサの出力空燃比がリーン側に変化した場合には、前記下流側空燃比センサに異常が生じていると判定する、内燃機関の排気浄化装置。
【請求項２】
内燃機関の排気通路に設けられた排気浄化触媒と、該排気浄化触媒よりも排気流れ方向下流側において前記排気通路に設けられた下流側空燃比センサと、前記排気浄化触媒に流入する排気ガスの空燃比を制御及び前記下流側空燃比センサの異常診断を行う制御装置とを具備し、
前記制御装置は、前記排気浄化触媒に流入する排気ガスの空燃比が理論空燃比よりもリッチなリッチ空燃比されているときに、前記下流側空燃比センサの出力空燃比が理論空燃比よりもリーンなリーン判定空燃比以上に維持されている場合に、前記排気浄化触媒に流入する排気ガスの空燃比をそれまでの空燃比よりもリッチ側の空燃比に変化させる空燃比リッチ化制御と、
前記空燃比リッチ化制御により前記排気浄化触媒に流入する排気ガスの空燃比をリッチ側の空燃比に変化させたときに、前記下流側空燃比センサの出力空燃比がリーン側に変化した場合に、前記排気浄化触媒に流入する排気ガスの空燃比を理論空燃比よりもリッチであってそれまでの空燃比よりもリーン側の空燃比に変化させる空燃比リーン化制御とを行い、
前記空燃比リーン化制御により前記排気浄化触媒に流入する排気ガスの空燃比をリーン側の空燃比に変化させたときに、前記下流側空燃比センサの出力空燃比がリッチ側に変化した場合には、前記下流側空燃比センサに異常が生じていると判定する、内燃機関の排気浄化装置。
【請求項３】
前記制御装置は、前記下流側空燃比センサの出力に基づいて学習値を更新すると共に、該学習値に応じて前記排気浄化触媒に流入する排気ガスの空燃比を変化させるように空燃比に関するパラメータを制御する学習制御を行い、
前記空燃比リッチ化制御は、前記排気浄化触媒に流入する排気ガスの空燃比をそれまでの空燃比よりもリッチ側の空燃比に変化させるように前記学習値を更新するリーン張付き学習制御である、請求項１又は２に記載の内燃機関の排気浄化装置。
【請求項４】
前記制御装置は、前記下流側空燃比センサの出力に基づいて学習値を更新すると共に、該学習値に応じて前記排気浄化触媒に流入する排気ガスの空燃比を変化させるように空燃比に関するパラメータを制御する学習制御を行い、
前記空燃比リッチ化制御は、前記排気浄化触媒に流入する排気ガスの空燃比をそれまでの空燃比よりもリッチ側の空燃比に変化させるように前記学習値を更新するリーン張付き学習制御であり、
前記空燃比リーン化制御は、前記排気浄化触媒に流入する排気ガスの空燃比を理論空燃比よりもリッチであってそれまでの空燃比よりもリーン側の空燃比に変化させるように前記学習値を更新する学習値戻し制御である、請求項２に記載の内燃機関の排気浄化装置。
【請求項５】
前記制御装置は、前記下流側空燃比センサに異常が生じていると判定されたときには、前記リーン張付き学習制御によって更新された学習値を該更新前の値に戻す、請求項３又は４に記載の内燃機関の排気浄化装置。
【請求項６】
前記制御装置は、前記学習値がゼロであるときに前記排気浄化触媒に流入する排気ガスの空燃比に対して前記学習値のリッチ側絶対値が大きくなるほど前記排気浄化触媒に流入する排気ガスの空燃比がリッチ側に大きく変化するように前記排気浄化触媒に流入する排気ガスの空燃比を制御し、
前記学習値はそのリッチ側絶対値が所定のリッチ側ガード値の絶対値以下になるように設定され、
前記制御装置は、前記下流側空燃比センサに異常が生じていると判定されたときには、前記リッチ側ガード値の絶対値を小さくするガード値制限制御を行う、請求項３〜５のいずれか１項に記載の内燃機関の排気浄化装置。
【請求項７】
前記ガード値制限制御により前記リッチ側ガード値の絶対値を小さくした場合であっても、前記排気浄化触媒に流入する排気ガスの空燃比が前記絶対値の小さくされた前記リッチ側ガード値に対応する空燃比を超えてリッチ側に変化するように前記学習値のリッチ側絶対値を前記リッチ側ガード値の絶対値を超えて増大させる異常確認制御を定期的に行う、請求項６に記載の内燃機関の排気浄化装置。
【請求項８】
前記制御装置は、前記排気浄化触媒に流入する排気ガスの空燃比が目標空燃比となるようにフィードバック制御を行うと共に該目標空燃比をリッチ空燃比とリーン空燃比とに交互に切り替え、前記目標空燃比のリッチ空燃比からリーン空燃比への切り替えは、前記下流側空燃比センサの出力空燃比が理論空燃比よりもリッチな所定のリッチ判定空燃比以下になったときに行われ、
前記制御装置は、前記学習制御において、前記目標空燃比をリーン空燃比に切り替えてから再びリッチ空燃比に切り替えるまでの酸素増大期間において前記排気浄化触媒に流入する排気ガスの空燃比を理論空燃比にしようとしたときに過剰となる酸素の量の積算値である積算酸素過剰量と、前記目標空燃比をリッチ空燃比に切り替えてから再びリーン空燃比に切り替えるまでの酸素減少期間において前記排気浄化触媒に流入する排気ガスの空燃比を理論空燃比にしようとしたときに不足する酸素の量の積算値である積算酸素不足量とに基づいて、これら積算酸素過剰量と積算酸素不足量との差が小さくなるように前記学習値を更新し、
前記制御装置は、前記下流側空燃比センサに異常が生じていると判定されたときには、前記下流側空燃比センサに異常が生じていると判定されていないときに比べて、前記積算酸素過剰量が前記積算酸素不足量よりも少ない場合において前記積算酸素過剰量と前記積算酸素不足量との差に対して前記学習値を変化させる量の割合を小さくする、請求項３〜５のいずれか１項に記載の内燃機関の排気浄化装置。
【請求項９】
前記制御装置は、前記排気浄化触媒に流入する排気ガスの空燃比が目標空燃比となるようにフィードバック制御を行い、
前記下流側空燃比センサの出力空燃比が理論空燃比よりもリッチな所定のリッチ判定空燃比以下になったときに前記目標空燃比をリッチ空燃比からリーン空燃比に切り替えると共に、前記排気浄化触媒の酸素吸蔵量が最大吸蔵可能量よりも少ない所定の切替基準吸蔵量以上になったときに前記目標空燃比をリーン空燃比からリッチ空燃比に切り替える、請求項１〜８のいずれか１項に記載の内燃機関の排気浄化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気浄化装置に関する。
【背景技術】
【０００２】
内燃機関の排気通路に設けられた排気浄化触媒の排気流れ方向上流側及び排気流れ方向下流側に空燃比センサを設けた排気浄化装置が知られている。斯かる内燃機関では、上流側の空燃比センサの出力に基づいて排気浄化触媒に流入する排気ガスの空燃比が目標空燃比となるようにフィードバック制御を行っている。加えて、目標空燃比は、理論空燃比よりもリッチな空燃比（以下、単に「リッチ空燃比」という）と理論空燃比よりもリーンな空燃比（以下、単に「リーン空燃比」という）とに交互に設定される（例えば、特許文献１）。
【０００３】
特に、特許文献１に記載の内燃機関では、下流側空燃比センサの出力に相当する空燃比（以下、「出力空燃比」ともいう）が理論空燃比よりもリッチなリッチ判定空燃比以下になったときに目標空燃比をリーン空燃比に切り替えると共に、排気浄化触媒の酸素吸蔵量が最大吸蔵可能酸素量よりも少ない所定の切替基準吸蔵量以上になったときに目標空燃比をリッチ空燃比に切り替えるようにしている。特許文献１によれば、これにより、排気浄化触媒からＮＯｘが流出するのを抑制することができるとされている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１４／１１８８９２号
【特許文献２】特開２００６−３４３２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、空燃比センサを構成する素子に割れが生じた場合、空燃比センサ周りの排気ガスの空燃比がリーン空燃比であるときには、空燃比センサの出力空燃比は実際の排気ガスの空燃比とほぼ等しいものとなる。ところが、空燃比センサ周りの排気ガスの空燃比がリッチ空燃比であるときには、空燃比センサの出力空燃比が実際の排気ガスの空燃比とは異なる空燃比、特にリーン空燃比となる場合がある。したがって、例えば下流側空燃比センサに関しては、排気浄化触媒から流出する排気ガスの空燃比がリッチ空燃比となっているときに、下流側空燃比センサの出力空燃比がリーン空燃比になっている場合には、下流側空燃比センサに素子割れの異常があると判定することができる。
【０００６】
一方、上流側空燃比センサの出力空燃比は、機関運転状態等に応じて上流側空燃比センサ周りを流通する排気ガスの平均空燃比からずれる場合がある。上流側空燃比センサの出力空燃比におけるずれの程度が大きいときには、上流側空燃比センサ周りを流通する排気ガスの空燃比がリーン空燃比であるにもかかわらず上流側空燃比センサの出力空燃比がリッチ空燃比になる場合がある。
【０００７】
このように上流側空燃比センサの出力空燃比にずれが生じると、排気浄化触媒に流入する排気ガスの実際の空燃比がリーン空燃比であっても、上流側空燃比センサの出力空燃比がリッチ空燃比になっている場合がある。この場合、上流側空燃比センサの出力空燃比を考慮すれば、排気浄化触媒から流出する排気ガスの空燃比は理論空燃比又はリッチ空燃比であると推定される。したがって、この場合、下流側空燃比センサ周りの排気ガスの空燃比はリッチ空燃比であると推定されている状態で、下流側空燃比センサの出力空燃比がリーン空燃比になることがある。したがって、上述したような手法で素子割れ異常の診断を行っていると、このような場合に下流側空燃比センサに素子割れの異常があると誤判定してしまうことになる。
【０００８】
そこで、上記課題に鑑みて、本発明の目的は、下流側空燃比センサに素子割れの異常が生じた場合にこの異常を正確に診断することができる内燃機関の排気浄化装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、第１の発明では、内燃機関の排気通路に設けられた排気浄化触媒と、該排気浄化触媒よりも排気流れ方向下流側において前記排気通路に設けられた下流側空燃比センサと、前記排気浄化触媒に流入する排気ガスの空燃比の制御及び前記下流側空燃比センサの異常診断を行う制御装置とを具備し、前記制御装置は、前記排気浄化触媒に流入する排気ガスの空燃比が理論空燃比よりもリッチなリッチ空燃比にされているときに、前記下流側空燃比センサの出力空燃比が理論空燃比よりもリーンなリーン判定空燃比以上に維持されている場合には、前記排気浄化触媒に流入する排気ガスの空燃比をそれまでの空燃比よりもリッチ側の空燃比に変化させる空燃比リッチ化制御を行い、前記空燃比リッチ化制御により前記排気浄化触媒に流入する排気ガスの空燃比をリッチ側の空燃比に変化させたときに、前記下流側空燃比センサの出力空燃比がリーン側に変化した場合には、前記下流側空燃比センサに異常が生じていると判定する、内燃機関の排気浄化装置が提供される。
【００１０】
上記課題を解決するために、第２の発明では、内燃機関の排気通路に設けられた排気浄化触媒と、該排気浄化触媒よりも排気流れ方向下流側において前記排気通路に設けられた下流側空燃比センサと、前記排気浄化触媒に流入する排気ガスの空燃比を制御及び前記下流側空燃比センサの異常診断を行う制御装置とを具備し、前記制御装置は、前記排気浄化触媒に流入する排気ガスの空燃比が理論空燃比よりもリッチなリッチ空燃比されているときに、前記下流側空燃比センサの出力空燃比が理論空燃比よりもリーンなリーン判定空燃比以上に維持されている場合に、前記排気浄化触媒に流入する排気ガスの空燃比をそれまでの空燃比よりもリッチ側の空燃比に変化させる空燃比リッチ化制御と、前記空燃比リッチ化制御により前記排気浄化触媒に流入する排気ガスの空燃比をリッチ側の空燃比に変化させたときに、前記下流側空燃比センサの出力空燃比がリーン側に変化した場合に、前記排気浄化触媒に流入する排気ガスの空燃比を理論空燃比よりもリッチであってそれまでの空燃比よりもリーン側の空燃比に変化させる空燃比リーン化制御とを行い、前記空燃比リーン化制御により前記排気浄化触媒に流入する排気ガスの空燃比をリーン側の空燃比に変化させたときに、前記下流側空燃比センサの出力空燃比がリッチ側に変化した場合には、前記下流側空燃比センサに異常が生じていると判定する、内燃機関の排気浄化装置が提供される。
【００１１】
第３の発明では、第１又は第２の発明において、前記制御装置は、前記下流側空燃比センサの出力に基づいて学習値を更新すると共に、該学習値に応じて前記排気浄化触媒に流入する排気ガスの空燃比を変化させるように空燃比に関するパラメータを制御する学習制御を行い、前記空燃比リッチ化制御は、前記排気浄化触媒に流入する排気ガスの空燃比をそれまでの空燃比よりもリッチ側の空燃比に変化させるように前記学習値を更新するリーン張付き学習制御である。
【００１２】
第４の発明では、第２の発明において、前記制御装置は、前記下流側空燃比センサの出力に基づいて学習値を更新すると共に、該学習値に応じて前記排気浄化触媒に流入する排気ガスの空燃比を変化させるように空燃比に関するパラメータを制御する学習制御を行い、前記空燃比リッチ化制御は、前記排気浄化触媒に流入する排気ガスの空燃比をそれまでの空燃比よりもリッチ側の空燃比に変化させるように前記学習値を更新するリーン張付き学習制御であり、前記空燃比リーン化制御は、前記排気浄化触媒に流入する排気ガスの空燃比を理論空燃比よりもリッチであってそれまでの空燃比よりもリーン側の空燃比に変化させるように前記学習値を更新する学習値戻し制御である。
【００１３】
第５の発明では、第３又は第４の発明において、前記制御装置は、前記下流側空燃比センサに異常が生じていると判定されたときには、前記リーン張付き学習制御によって更新された学習値を該更新前の値に戻す。
【００１４】
第６の発明では、第３〜第５のいずれか一つの発明において、前記制御装置は、前記学習値がゼロであるときに前記排気浄化触媒に流入する排気ガスの空燃比に対して前記学習値のリッチ側絶対値が大きくなるほど前記排気浄化触媒に流入する排気ガスの空燃比がリッチ側に大きく変化するように前記排気浄化触媒に流入する排気ガスの空燃比を制御し、前記学習値はそのリッチ側絶対値が所定のリッチ側ガード値の絶対値以下になるように設定され、前記制御装置は、前記下流側空燃比センサに異常が生じていると判定されたときには、前記リッチ側ガード値の絶対値を小さくするガード値制限制御を行う。
【００１５】
第７の発明では、第６の発明において、前記ガード値制限制御により前記リッチ側ガード値の絶対値を小さくした場合であっても、前記排気浄化触媒に流入する排気ガスの空燃比が前記絶対値の小さくされた前記リッチ側ガード値に対応する空燃比を超えてリッチ側に変化するように前記学習値のリッチ側絶対値を前記リッチ側ガード値の絶対値を超えて増大させる異常確認制御を定期的に行う。
【００１６】
第８の発明では、第３〜第５のいずれか一つの発明において、前記制御装置は、前記排気浄化触媒に流入する排気ガスの空燃比が目標空燃比となるようにフィードバック制御を行うと共に該目標空燃比をリッチ空燃比とリーン空燃比とに交互に切り替え、前記目標空燃比のリッチ空燃比からリーン空燃比への切り替えは、前記下流側空燃比センサの出力空燃比が理論空燃比よりもリッチな所定のリッチ判定空燃比以下になったときに行われ、前記制御装置は、前記学習制御において、前記目標空燃比をリーン空燃比に切り替えてから再びリッチ空燃比に切り替えるまでの酸素増大期間において前記排気浄化触媒に流入する排気ガスの空燃比を理論空燃比にしようとしたときに過剰となる酸素の量の積算値である積算酸素過剰量と、前記目標空燃比をリッチ空燃比に切り替えてから再びリーン空燃比に切り替えるまでの酸素減少期間において前記排気浄化触媒に流入する排気ガスの空燃比を理論空燃比にしようとしたときに不足する酸素の量の積算値である積算酸素不足量とに基づいて、これら積算酸素過剰量と積算酸素不足量との差が小さくなるように前記学習値を更新し、前記制御装置は、前記下流側空燃比センサに異常が生じていると判定されたときには、前記下流側空燃比センサに異常が生じていると判定されていないときに比べて、前記積算酸素過剰量が前記積算酸素不足量よりも少ない場合において前記積算酸素過剰量と前記積算酸素不足量との差に対して前記学習値を変化させる量の割合を小さくする。
【００１７】
第９の発明では、第１〜第８のいずれか一つの発明において、前記制御装置は、前記排気浄化触媒に流入する排気ガスの空燃比が目標空燃比となるようにフィードバック制御を行い、前記下流側空燃比センサの出力空燃比が理論空燃比よりもリッチな所定のリッチ判定空燃比以下になったときに前記目標空燃比をリッチ空燃比からリーン空燃比に切り替えると共に、前記排気浄化触媒の酸素吸蔵量が最大吸蔵可能量よりも少ない所定の切替基準吸蔵量以上になったときに前記目標空燃比をリーン空燃比からリッチ空燃比に切り替える。
【発明の効果】
【００１８】
本発明によれば、下流側空燃比センサに素子割れの異常が生じた場合にこの異常を正確に診断することができる内燃機関の排気浄化装置が提供される。
【図面の簡単な説明】
【００１９】
【図１】図１は、本発明の異常診断装置が用いられている内燃機関を概略的に示す図である。
【図２】図２は、空燃比センサの概略的な断面図である。
【図３】図３は、各排気空燃比Ａ／Ｆにおける印加電圧Ｖと出力電流Ｉとの関係を示す図である。
【図４】図４は、印加電圧Ｖを一定にしたときの空燃比と出力電流Ｉとの関係を示す図である。
【図５】図５は、内燃機関の通常運転時における、上流側排気浄化触媒の酸素吸蔵量等の変化を示すタイムチャートである。
【図６】図６は、図５と同様な、上流側排気浄化触媒の酸素吸蔵量等の変化を示すタイムチャートである。
【図７】図７は、制御中心空燃比等のタイムチャートである。
【図８】図８は、上流側空燃比センサの出力値に大きなずれが生じている際の空燃比補正量等のタイムチャートである。
【図９】図９は、上流側空燃比センサの出力値に大きなずれが生じている際の空燃比補正量等のタイムチャートである。
【図１０】図１０は、理論空燃比張付き学習を行う際の空燃比補正量等のタイムチャートである。
【図１１】図１１は、リーン張付き学習等を行う際の空燃比補正量等のタイムチャートである。
【図１２】図１２は、素子割れが生じている空燃比センサの概略的な断面図である。
【図１３】図１３は、印加電圧を一定にしたときの、図３と同様な排気空燃比と空燃比センサの出力空燃比との関係を示す図である。
【図１４】図１４は、制御中心空燃比等のタイムチャートである。
【図１５】図１５は、制御中心空燃比等のタイムチャートである。
【図１６】図１６は、制御装置の機能ブロック図である。
【図１７】図１７は、空燃比補正量の算出制御の制御ルーチンを示すフローチャートである。
【図１８】図１８は、通常学習制御の制御ルーチンを示すフローチャートである。
【図１９】図１９は、張付き学習制御の制御ルーチンを示すフローチャートである。
【図２０】図２０は、異常診断・学習値設定制御の制御ルーチンを示すフローチャートである。
【図２１】図２１は、制御中心空燃比等のタイムチャートである。
【図２２】図２２は、制御中心空燃比等のタイムチャートである。
【図２３】図２３は、ガード値に基づいて学習値の修正を行う学習値修正制御の制御ルーチンを示すフローチャートである。
【図２４】図２４は、異常確認制御の制御ルーチンを示すフローチャートである。
【図２５】図２５は、制御中心空燃比等のタイムチャートである。
【図２６】図２６は、異常診断・学習値設定制御の制御ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の実施形態について詳細に説明する。なお、以下の説明では、同様な構成要素には同一の参照番号を付す。
【００２１】
＜内燃機関全体の説明＞
図１は、本発明の第一実施形態に係る排気浄化装置が用いられる内燃機関を概略的に示す図である。図１を参照すると１は機関本体、２はシリンダブロック、３はシリンダブロック２内で往復動するピストン、４はシリンダブロック２上に固定されたシリンダヘッド、５はピストン３とシリンダヘッド４との間に形成された燃焼室、６は吸気弁、７は吸気ポート、８は排気弁、９は排気ポートをそれぞれ示す。吸気弁６は吸気ポート７を開閉し、排気弁８は排気ポート９を開閉する。
【００２２】
図１に示したようにシリンダヘッド４の内壁面の中央部には点火プラグ１０が配置され、シリンダヘッド４の内壁面周辺部には燃料噴射弁１１が配置される。点火プラグ１０は、点火信号に応じて火花を発生させるように構成される。また、燃料噴射弁１１は、噴射信号に応じて、所定量の燃料を燃焼室５内に噴射する。なお、燃料噴射弁１１は、吸気ポート７内に燃料を噴射するように配置されてもよい。また、本実施形態では、燃料として理論空燃比が１４．６であるガソリンが用いられる。しかしながら、本発明の排気浄化装置が用いられる内燃機関では、ガソリン以外の燃料、或いはガソリンとの混合燃料を用いてもよい。
【００２３】
各気筒の吸気ポート７はそれぞれ対応する吸気枝管１３を介してサージタンク１４に連結され、サージタンク１４は吸気管１５を介してエアクリーナ１６に連結される。吸気ポート７、吸気枝管１３、サージタンク１４、吸気管１５は吸気通路を形成する。また、吸気管１５内にはスロットル弁駆動アクチュエータ１７によって駆動されるスロットル弁１８が配置される。スロットル弁１８は、スロットル弁駆動アクチュエータ１７によって回動せしめられることで、吸気通路の開口面積を変更することができる。
【００２４】
一方、各気筒の排気ポート９は排気マニホルド１９に連結される。排気マニホルド１９は、各排気ポート９に連結される複数の枝部とこれら枝部が集合した集合部とを有する。排気マニホルド１９の集合部は上流側排気浄化触媒２０を内蔵した上流側ケーシング２１に連結される。上流側ケーシング２１は、排気管２２を介して下流側排気浄化触媒２４を内蔵した下流側ケーシング２３に連結される。排気ポート９、排気マニホルド１９、上流側ケーシング２１、排気管２２及び下流側ケーシング２３は、排気通路を形成する。
【００２５】
電子制御ユニット（ＥＣＵ）３１はデジタルコンピュータからなり、双方向性バス３２を介して相互に接続されたＲＡＭ（ランダムアクセスメモリ）３３、ＲＯＭ（リードオンリメモリ）３４、ＣＰＵ（マイクロプロセッサ）３５、入力ポート３６及び出力ポート３７を具備する。吸気管１５には、吸気管１５内を流れる空気流量を検出するためのエアフロメータ３９が配置され、このエアフロメータ３９の出力は対応するＡＤ変換器３８を介して入力ポート３６に入力される。また、排気マニホルド１９の集合部には排気マニホルド１９内を流れる排気ガス（すなわち、上流側排気浄化触媒２０に流入する排気ガス）の空燃比を検出する上流側空燃比センサ４０が配置される。加えて、排気管２２内には排気管２２内を流れる排気ガス（すなわち、上流側排気浄化触媒２０から流出して下流側排気浄化触媒２４に流入する排気ガス）の空燃比を検出する下流側空燃比センサ４１が配置される。これら空燃比センサ４０、４１の出力も対応するＡＤ変換器３８を介して入力ポート３６に入力される。なお、これら空燃比センサ４０、４１の構成については後述する。
【００２６】
また、アクセルペダル４２にはアクセルペダル４２の踏込み量に比例した出力電圧を発生する負荷センサ４３が接続され、負荷センサ４３の出力電圧は対応するＡＤ変換器３８を介して入力ポート３６に入力される。クランク角センサ４４は例えばクランクシャフトが１５度回転する毎に出力パルスを発生し、この出力パルスが入力ポート３６に入力される。ＣＰＵ３５ではこのクランク角センサ４４の出力パルスから機関回転数が計算される。一方、出力ポート３７は対応する駆動回路４５を介して点火プラグ１０、燃料噴射弁１１及びスロットル弁駆動アクチュエータ１７に接続される。なお、ＥＣＵ３１は、各種制御を行う制御装置として機能する。
【００２７】
上流側排気浄化触媒２０及び下流側排気浄化触媒２４は、酸素吸蔵能力を有する三元触媒である。具体的には、排気浄化触媒２０、２４は、セラミックから成る担体に、触媒作用を有する貴金属（例えば、白金（Ｐｔ））及び酸素吸蔵能力を有する物質（例えば、セリア（ＣｅＯ2））を担持させた三元触媒である。三元触媒は、三元触媒に流入する排気ガスの空燃比が理論空燃比に維持されていると、未燃ＨＣ、ＣＯ及びＮＯｘを同時に浄化する機能を有する。加えて、排気浄化触媒２０、２４に或る程度の酸素が吸蔵されている場合には、排気浄化触媒２０、２４に流入する排気ガスの空燃比が理論空燃比に対してリッチ側或いはリーン側に若干ずれたとしても未燃ＨＣ、ＣＯ及びＮＯｘとが同時に浄化される。
【００２８】
すなわち、排気浄化触媒２０、２４が酸素吸蔵能力を有していると、すなわち排気浄化触媒２０、２４の酸素吸蔵量が最大吸蔵可能酸素量よりも少ないと、排気浄化触媒２０、２４に流入する排気ガスの空燃比が理論空燃比よりも若干リーンになったときには、排気ガス中に含まれる過剰な酸素が排気浄化触媒２０、２４内に吸蔵される。このため、排気浄化触媒２０、２４の表面上が理論空燃比に維持される。その結果、排気浄化触媒２０、２４の表面上において未燃ＨＣ、ＣＯ及びＮＯｘが同時に浄化され、このとき排気浄化触媒２０、２４から流出する排気ガスの空燃比は理論空燃比となる。
【００２９】
一方、排気浄化触媒２０、２４が酸素を放出することができる状態にあると、すなわち排気浄化触媒２０、２４の酸素吸蔵量が０よりも多いと、排気浄化触媒２０、２４に流入する排気ガスの空燃比が理論空燃比よりも若干リッチになったときには、排気ガス中に含まれている未燃ＨＣ、ＣＯを還元させるのに不足している酸素が排気浄化触媒２０、２４から放出される。このため、この場合にも排気浄化触媒２０、２４の表面上が理論空燃比に維持される。その結果、排気浄化触媒２０、２４の表面上において未燃ＨＣ、ＣＯ及びＮＯｘが同時に浄化され、このとき排気浄化触媒２０、２４から流出する排気ガスの空燃比は理論空燃比となる。
【００３０】
このように、排気浄化触媒２０、２４に或る程度の酸素が吸蔵されている場合には、排気浄化触媒２０、２４に流入する排気ガスの空燃比が理論空燃比に対してリッチ側或いはリーン側に若干ずれたとしても未燃ＨＣ、ＣＯ及びＮＯｘとが同時に浄化され、排気浄化触媒２０、２４から流出する排気ガスの空燃比は理論空燃比となる。
【００３１】
＜空燃比センサの説明＞
本実施形態では、空燃比センサ４０、４１として、コップ型の限界電流式空燃比センサが用いられる。図２を用いて、空燃比センサ４０、４１の構造について簡単に説明する。空燃比センサ４０、４１は、固体電解質層５１と、その一方の側面上に配置された排気側電極５２と、その他方の側面上に配置された大気側電極５３と、通過する排気ガスの拡散律速を行う拡散律速層５４と、基準ガス室５５と、空燃比センサ４０、４１の加熱、特に固体電解質層５１の加熱を行うヒータ部５６とを具備する。
【００３２】
特に、本実施形態のコップ型の空燃比センサ４０、４１では、固体電解質層５１は一端が閉じられた円筒状に形成される。固体電解質層５１の内部に画成された基準ガス室５５には、大気ガス（空気）が導入されると共に、ヒータ部５６が配置される。固体電解質層５１の内面上に大気側電極５３が配置され、固体電解質層５１の外面上に排気側電極５２が配置される。固体電解質層５１及び排気側電極５２の外面上にはこれらを覆うように拡散律速層５４が配置される。なお、拡散律速層５４の外側には、拡散律速層５４の表面上に液体等が付着するのを防止するための保護層（図示せず）が設けられてもよい。
【００３３】
固体電解質層５１は、ＺｒＯ2（ジルコニア）、ＨｆＯ2、ＴｈＯ2、Ｂｉ2Ｏ3等にＣａＯ、ＭｇＯ、Ｙ2Ｏ3、Ｙｂ2Ｏ3等を安定剤として配当した酸素イオン伝導性酸化物の焼結体により形成されている。また、拡散律速層５４は、アルミナ、マグネシア、けい石質、スピネル、ムライト等の耐熱性無機物質の多孔質焼結体により形成されている。さらに、排気側電極５２及び大気側電極５３は、白金等の触媒活性の高い貴金属により形成されている。
【００３４】
また、排気側電極５２と大気側電極５３との間には、ＥＣＵ３１に搭載された印加電圧制御装置６０によりセンサ印加電圧Ｖが印加される。加えて、ＥＣＵ３１には、センサ印加電圧Ｖを印加したときに固体電解質層５１を介してこれら電極５２、５３間に流れる電流Ｉを検出する電流検出部６１が設けられる。この電流検出部６１によって検出される電流が空燃比センサ４０、４１の出力電流Ｉである。
【００３５】
このように構成された空燃比センサ４０、４１は、図３に示したような電圧−電流（Ｖ−Ｉ）特性を有する。図３からわかるように、空燃比センサ４０、４１の出力電流Ｉは、排気ガスの空燃比、すなわち排気空燃比Ａ／Ｆが高くなるほど（リーンになるほど）、大きくなる。また、各排気空燃比Ａ／ＦにおけるＶ−Ｉ線には、センサ印加電圧Ｖ軸に平行な領域、すなわちセンサ印加電圧Ｖが変化しても出力電流Ｉがほとんど変化しない領域が存在する。この電圧領域は限界電流領域と称され、このときの電流は限界電流と称される。図３では、排気空燃比が１８であるときの限界電流領域及び限界電流をそれぞれＷ18、Ｉ18で示している。
【００３６】
図４は、印加電圧Ｖを０．４５Ｖ程度（図３）で一定にしたときの、排気空燃比と出力電流Ｉとの関係を示している。図４からわかるように、空燃比センサ４０、４１では、排気空燃比が高くなるほど（すなわちリーンになるほど）、空燃比センサ４０、４１からの出力電流Ｉが大きくなるように、排気空燃比に対して出力電流がリニアに（比例するように）変化する。加えて、空燃比センサ４０、４１は、排気空燃比が理論空燃比であるときに出力電流Ｉが零になるように構成される。
【００３７】
なお、空燃比センサ４０、４１としては、図２に示した構造の限界電流式空燃比センサに代えて、例えば積層型の限界電流式空燃比センサ等の他の構造の限界電流式の空燃比センサを用いてもよい。
【００３８】
＜基本的な制御＞
次に、本実施形態の内燃機関の制御装置における基本的な空燃比制御の概要を説明する。本実施形態の空燃比制御では、上流側空燃比センサ４０の出力空燃比に基づいて上流側空燃比センサ４０の出力空燃比が目標空燃比となるように燃料噴射弁１１からの燃料噴射量を制御するフィードバック制御が行われる。すなわち、本実施形態の空燃比制御では、上流側空燃比センサ４０の出力空燃比に基づいて上流側排気浄化触媒２０に流入する排気ガスの空燃比が目標空燃比となるようにフィードバック制御が行われる。なお、「出力空燃比」は、空燃比センサの出力値に相当する空燃比を意味する。
【００３９】
また、本実施形態の空燃比制御では、下流側空燃比センサ４１の出力空燃比等に基づいて目標空燃比が設定される。具体的には、下流側空燃比センサ４１の出力空燃比がリッチ空燃比となったときに、目標空燃比がリーン設定空燃比に設定される。この結果、上流側排気浄化触媒２０に流入する排気ガスの空燃比もリーン設定空燃比になる。ここで、リーン設定空燃比は、理論空燃比（制御中心となる空燃比）よりも或る程度リーンである予め定められた一定値の空燃比であり、例えば、１４．６５〜２０、好ましくは１４．６５〜１８、より好ましくは１４．６５〜１６程度とされる。また、リーン設定空燃比は、制御中心となる空燃比（本実施形態では、理論空燃比）に正の空燃比補正量を加算した空燃比として表すこともできる。加えて、本実施形態では、下流側空燃比センサ４１の出力空燃比が理論空燃比よりも僅かにリッチであるリッチ判定空燃比（例えば、１４．５５）以下になったときに、下流側空燃比センサ４１の出力空燃比がリッチ空燃比になったと判断される。
【００４０】
目標空燃比がリーン設定空燃比に変更されると、上流側排気浄化触媒２０に流入する排気ガスの酸素過不足量が積算される。酸素過不足量は、上流側排気浄化触媒２０に流入する排気ガスの空燃比を理論空燃比にしようとしたときに過剰となる酸素の量又は不足する酸素の量（過剰な未燃ＨＣ、ＣＯ等（以下、「未燃ガス」という）の量）を意味する。特に、目標空燃比がリーン設定空燃比となっているときには上流側排気浄化触媒２０に流入する排気ガス中の酸素は過剰となり、この過剰な酸素は上流側排気浄化触媒２０に吸蔵される。したがって、酸素過不足量の積算値（以下、「積算酸素過不足量」という）は、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの推定値であるといえる。
【００４１】
なお、酸素過不足量の算出は、上流側空燃比センサ４０の出力空燃比、及びエアフロメータ３９の出力等に基づいて算出される燃焼室５内への吸入空気量の推定値又は燃料噴射弁１１からの燃料供給量等に基づいて行われる。具体的には、酸素過不足量ＯＥＤは、例えば、下記式（１）により算出される。
ＯＥＤ＝０．２３×Ｑｉ×（ＡＦｕｐ−ＡＦＲ）      …（１）
ここで、０．２３は空気中の酸素濃度、Ｑｉは燃料噴射量、ＡＦｕｐは上流側空燃比センサ４０の出力空燃比、ＡＦＲは制御中心となる空燃比（本実施形態では、基本的には理論空燃比）をそれぞれ表している。
【００４２】
このようにして算出された酸素過不足量を積算した積算酸素過不足量が、予め定められた切替基準値（予め定められた切替基準吸蔵量Ｃｒｅｆに相当）以上になると、それまでリーン設定空燃比だった目標空燃比が、リッチ設定空燃比に設定される。リッチ設定空燃比は、理論空燃比（制御中心となる空燃比）よりも或る程度リッチである予め定められた一定値の空燃比であり、例えば、１２〜１４．５８、好ましくは１３〜１４．５７、より好ましくは１４〜１４．５５程度とされる。また、リッチ設定空燃比は、制御中心となる空燃比（本実施形態では、理論空燃比）に負の空燃比補正量を加算した空燃比として表すこともできる。なお、本実施形態では、リッチ設定空燃比の理論空燃比からの差（リッチ度合い）は、リーン設定空燃比の理論空燃比からの差（リーン度合い）以下とされる。
【００４３】
その後、下流側空燃比センサ４１の出力空燃比が再びリッチ判定空燃比以下となったときに、目標空燃比が再びリーン設定空燃比とされ、その後、同様な操作が繰り返される。このように本実施形態では、上流側排気浄化触媒２０に流入する排気ガスの目標空燃比がリーン設定空燃比とリッチ設定空燃比とに交互に繰り返し設定される。換言すると、本実施形態では、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ空燃比とリーン空燃比とに交互に切り替えられるといえる。
【００４４】
＜タイムチャートを用いた空燃比制御の説明＞
図５を参照して、上述したような操作について具体的に説明する。図５は、本実施形態の空燃比制御を行った場合における、空燃比補正量、上流側空燃比センサ４０の出力空燃比ＡＦｕｐ、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡ、積算酸素過不足量ΣＯＥＤ、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ及び上流側排気浄化触媒２０から流出する排気ガス中のＮＯｘ濃度のタイムチャートである。
【００４５】
なお、空燃比補正量ＡＦＣは、上流側排気浄化触媒２０に流入する排気ガスの目標空燃比に関する補正量である。空燃比補正量ＡＦＣが０のときには目標空燃比は制御中心となる空燃比（以下、「制御中心空燃比」という）に等しい空燃比（本実施形態では、理論空燃比）とされ、空燃比補正量ＡＦＣが正の値であるときには目標空燃比は制御中心空燃比よりもリーンな空燃比（本実施形態では、リーン空燃比）となり、空燃比補正量ＡＦＣが負の値であるときには目標空燃比は制御中心空燃比よりもリッチな空燃比（本実施形態では、リッチ空燃比）となる。また、「制御中心空燃比」は、機関運転状態に応じて空燃比補正量ＡＦＣを加算する対象となる空燃比、すなわち空燃比補正量ＡＦＣに応じて目標空燃比を変動させる際に基準となる空燃比を意味する。
【００４６】
図示した例では、時刻ｔ1以前の状態では、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈ（リッチ設定空燃比に相当）とされている。すなわち、目標空燃比はリッチ空燃比とされており、これに伴って上流側空燃比センサ４０の出力空燃比がリッチ空燃比となる。上流側排気浄化触媒２０に流入する排気ガス中に含まれている未燃ガス等は、上流側排気浄化触媒２０で浄化され、これに伴って、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは徐々に減少していく。上流側排気浄化触媒２０における浄化により上流側排気浄化触媒２０から流出する排気ガス中には未燃ガス等は含まれていないため、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはほぼ理論空燃比となる。上流側排気浄化触媒２０に流入する排気ガスの空燃比はリッチ空燃比となっているため、上流側排気浄化触媒２０からのＮＯｘ排出量はほぼゼロとなる。
【００４７】
上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが徐々に減少すると、酸素吸蔵量ＯＳＡはゼロに近づき、これに伴って、上流側排気浄化触媒２０に流入した未燃ガス等の一部は上流側排気浄化触媒２０で浄化されずに流出し始める。これにより、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが徐々に低下し、時刻ｔ1において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する。
【００４８】
本実施形態では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下になると、酸素吸蔵量ＯＳＡを増大させるべく、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎ（リーン設定空燃比に相当）に切り替えられる。また、このとき、積算酸素過不足量ΣＯＥＤは０にリセットされる。
【００４９】
なお、本実施形態では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達してから、空燃比補正量ＡＦＣの切替を行っている。これは、上流側排気浄化触媒２０の酸素吸蔵量が十分であっても、上流側排気浄化触媒２０から流出する排気ガスの空燃比が理論空燃比から極わずかにずれてしまう場合があるためである。逆に言うと、リッチ判定空燃比は、上流側排気浄化触媒２０の酸素吸蔵量が十分であるときには上流側排気浄化触媒２０から流出する排気ガスの空燃比が到達することのないような空燃比とされる。
【００５０】
時刻ｔ1において、目標空燃比をリーン空燃比に切り替えると、上流側排気浄化触媒２０に流入する排気ガスの空燃比はリッチ空燃比からリーン空燃比に変化する。時刻ｔ1において上流側排気浄化触媒２０に流入する排気ガスの空燃比がリーン空燃比に変化すると、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは増大する。また、これに伴って、積算酸素過不足量ΣＯＥＤも徐々に増大していく。
【００５１】
これにより、上流側排気浄化触媒２０から流出する排気ガスの空燃比が理論空燃比へと変化し、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎも理論空燃比に収束する。このとき、上流側排気浄化触媒２０に流入する排気ガスの空燃比はリーン空燃比となっているが、上流側排気浄化触媒２０の酸素吸蔵能力には十分な余裕があるため、流入する排気ガス中の酸素は上流側排気浄化触媒２０に吸蔵され、ＮＯｘは還元浄化される。このため、上流側排気浄化触媒２０からのＮＯｘの排出はほぼゼロとなる。
【００５２】
その後、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが増大すると、時刻ｔ2において、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが切替基準吸蔵量Ｃｒｅｆに到達する。このため、積算酸素過不足量ΣＯＥＤが、切替基準吸蔵量Ｃｒｅｆに相当する切替基準値ＯＥＤｒｅｆに到達する。本実施形態では、積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆ以上になると、上流側排気浄化触媒２０への酸素の吸蔵を中止すべく、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。したがって、目標空燃比はリッチ空燃比とされる。また、このとき、積算酸素過不足量ΣＯＥＤが０にリセットされる。
【００５３】
なお、切替基準吸蔵量Ｃｒｅｆは、車両の急加速による意図しない空燃比のずれ等が生じても、酸素吸蔵量ＯＳＡが最大吸蔵可能酸素量Ｃｍａｘには到達しないように十分少ない量とされる。例えば、切替基準吸蔵量Ｃｒｅｆは、上流側排気浄化触媒２０が未使用であるときの最大吸蔵可能酸素量Ｃｍａｘの３／４以下、好ましくは１／２以下、より好ましくは１／５以下とされる。この結果、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが理論空燃比よりも僅かにリーンなリーン判定空燃比（例えば、１４．６５。理論空燃比からの偏差がリッチ判定空燃比と理論空燃比との差と同程度のリーン空燃比）に到達する前に空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられることになる。
【００５４】
時刻ｔ2において目標空燃比をリッチ空燃比に切り替えると、上流側排気浄化触媒２０に流入する排気ガスの空燃比はリーン空燃比からリッチ空燃比に変化する。上流側排気浄化触媒２０に流入する排気ガス中には未燃ガス等が含まれることになるため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは徐々に減少していく。このときの上流側排気浄化触媒２０からのＮＯｘの排出はほぼゼロとなる。
【００５５】
上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは徐々に減少していくと、時刻ｔ3において、時刻ｔ1と同様に、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する。これにより、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられる。その後、上述した時刻ｔ1〜ｔ3のサイクルが繰り返される。
【００５６】
以上の説明から分かるように本実施形態によれば、上流側排気浄化触媒２０からのＮＯｘ排出量を常に抑制することができる。すなわち、上述した制御を行っている限り、基本的には上流側排気浄化触媒２０からのＮＯｘ排出量をほぼゼロとすることができる。また、積算酸素過不足量ΣＯＥＤを算出する際の積算期間が短いため、長期間に亘って積算する場合に比べて算出誤差が生じにくい。このため、積算酸素過不足量ΣＯＥＤの算出誤差によりＮＯｘが排出されてしまうことが抑制される。
【００５７】
また、一般に、排気浄化触媒の酸素吸蔵量が一定に維持されると、その排気浄化触媒の酸素吸蔵能力が低下する。すなわち、排気浄化触媒の酸素吸蔵能力を高く維持するためには、排気浄化触媒の酸素吸蔵量が変動することが必要になる。これに対して、本実施形態によれば、図５に示したように、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは常に上下に変動しているため、酸素吸蔵能力が低下することが抑制される。
【００５８】
なお、上記実施形態では、時刻ｔ1〜ｔ2において、空燃比補正量ＡＦＣはリーン設定補正量ＡＦＣｌｅａｎに維持される。しかしながら、斯かる期間において、空燃比補正量ＡＦＣは必ずしも一定に維持されている必要はなく、徐々に減少させる等、変動するように設定されてもよい。或いは、時刻ｔ1〜ｔ2の期間中において、一時的に空燃比補正量ＡＦＣを０よりも小さな値（例えば、リッチ設定補正量等）としてもよい。
【００５９】
同様に、上記実施形態では、時刻ｔ2〜ｔ3において、空燃比補正量ＡＦＣはリッチ設定補正量ＡＦＣｒｉｃｈに維持される。しかしながら、斯かる期間において、空燃比補正量ＡＦＣは必ずしも一定に維持されている必要はなく、徐々に増大させる等、変動するように設定されてもよい。或いは、時刻ｔ2〜ｔ3の期間中において、一時的に空燃比補正量ＡＦＣを０よりも大きな値（例えば、リーン設定補正量等）としてもよい。
【００６０】
なお、このような本実施形態における空燃比補正量ＡＦＣの設定、すなわち目標空燃比の設定は、ＥＣＵ３１によって行われる。したがって、ＥＣＵ３１は、下流側空燃比センサ４１の出力空燃比がリッチ判定空燃比以下となったときに、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが切替基準吸蔵量Ｃｒｅｆ以上になったと推定されるまで、上流側排気浄化触媒２０に流入する排気ガスの目標空燃比を継続的又は断続的にリーン空燃比にすると共に、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが切替基準吸蔵量Ｃｒｅｆ以上になったと推定されたときに、酸素吸蔵量ＯＳＡが最大吸蔵可能酸素量Ｃｍａｘに達することなく下流側空燃比センサ４１の出力空燃比がリッチ判定空燃比以下となるまで、目標空燃比を継続的又は断続的にリッチ空燃比にしているといえる。
【００６１】
より簡単に言えば、本実施形態では、ＥＣＵ３１は、下流側空燃比センサ４１の出力空燃比がリッチ判定空燃比以下になったときに目標空燃比（すなわち、上流側排気浄化触媒２０に流入する排気ガスの空燃比）をリーン空燃比に切り替えると共に、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが切替基準吸蔵量Ｃｒｅｆ以上になったときに目標空燃比（すなわち、上流側排気浄化触媒２０に流入する排気ガスの空燃比）をリッチ空燃比に切り替えているといえる。
【００６２】
なお、上記実施形態では、空燃比制御において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下になったときに目標空燃比がリーン空燃比に切り替えられる。また、積算酸素過不足量ΣＯＥＤが所定の切替基準値ＯＥＤｒｅｆ以上になったときに目標空燃比がリッチ空燃比に切り替えられる。しかしながら、空燃比制御として、別の制御を用いてもよい。斯かる別の制御としては、例えば、下流側空燃比センサ４１の出力空燃比がリーン判定空燃比以上になったときに目標空燃比をリッチ空燃比に切り替え、下流側空燃比センサ４１の出力空燃比がリッチ判定空燃比以下になったときに目標空燃比をリーン空燃比に切り替える制御が考えられる。
【００６３】
＜上流側空燃比センサにおけるずれ＞
ところで、機関本体１が複数の気筒を有する場合、各気筒から排出される排気ガスの空燃比には気筒間でずれが生じる場合がある。一方、上流側空燃比センサ４０は排気マニホルド１９の集合部に配置されるが、その配置位置に応じて各気筒から排出された排気ガスが上流側空燃比センサ４０に曝される程度が気筒間で異なる。この結果、上流側空燃比センサ４０の出力空燃比は、或る特定の気筒から排出された排気ガスの空燃比の影響を強く受けることになる。このため、この或る特定の気筒から排出された排気ガスの空燃比が全気筒から排出される排気ガスの平均空燃比とは異なる空燃比となっている場合、平均空燃比と上流側空燃比センサ４０の出力空燃比との間にはずれが生じる。すなわち、上流側空燃比センサ４０の出力空燃比は実際の排気ガスの平均空燃比よりもリッチ側又はリーン側にずれることになる。
【００６４】
また、未燃ガス等のうち水素は空燃比センサの拡散律速層の通過速度が速い。このため、排気ガス中の水素濃度が高いと、上流側空燃比センサ４０の出力空燃比が排気ガスの実際の空燃比よりも低い側（すなわち、リッチ側）にずれてしまう。
【００６５】
このように上流側空燃比センサ４０の出力空燃比にずれが生じていると、上述したような制御を行っていても、上流側排気浄化触媒２０からＮＯｘ及び酸素が流出したり、未燃ガス等の流出頻度が高くなったりしてしまう可能性が高くなる。以下では、図６を参照して斯かる現象について説明する。
【００６６】
図６は、図５と同様な、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡ等のタイムチャートである。図６は、上流側空燃比センサ４０の出力空燃比がリッチ側にずれている場合を示している。図中、上流側空燃比センサ４０の出力空燃比ＡＦｕｐにおける実線は、上流側空燃比センサ４０の出力空燃比を示している。一方、破線は、上流側空燃比センサ４０周りを流通する排気ガスの実際の空燃比を示している。
【００６７】
図６に示した例においても、時刻ｔ1以前の状態では、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈとされており、よって目標空燃比がリッチ設定空燃比とされている。これに伴い、上流側空燃比センサ４０の出力空燃比ＡＦｕｐはリッチ設定空燃比と等しい空燃比となる。しかしながら、上述したように、上流側空燃比センサ４０の出力空燃比はリッチ側にずれているため、排気ガスの実際の空燃比はリッチ設定空燃比よりもリーン側の空燃比となっている。すなわち、上流側空燃比センサ４０の出力空燃比ＡＦｕｐは、実際の空燃比（図中の破線）よりも低い（リッチ側）ものとなっている。このため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの減少速度は遅いものとなる。
【００６８】
また、図６に示した例では、時刻ｔ1において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する。このため、上述したように、時刻ｔ1において、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられる。すなわち、目標空燃比がリーン設定空燃比に切り替えられる。
【００６９】
これに伴って、上流側空燃比センサ４０の出力空燃比ＡＦｕｐはリーン設定空燃比に等しい空燃比となる。しかしながら、上述したように、上流側空燃比センサ４０の出力空燃比はリッチ側にずれているため、排気ガスの実際の空燃比はリーン設定空燃比よりもリーンの空燃比となっている。すなわち、上流側空燃比センサ４０の出力空燃比ＡＦｕｐは、実際の空燃比（図中の破線）よりも低い（リッチ側）ものとなっている。このため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの増加速度は速くなると共に、目標空燃比をリーン設定空燃比としている間に上流側排気浄化触媒２０に供給される実際の酸素量は切替基準吸蔵量Ｃｒｅｆよりも多くなる。
【００７０】
このように、上流側空燃比センサ４０の出力空燃比ＡＦｄｗｎにずれが生じていると、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに設定されているときに上流側排気浄化触媒２０に流入する排気ガスの空燃比のリーン度合いが大きくなる。このため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが最大吸蔵可能酸素量Ｃｍａｘに達していなくても、上流側排気浄化触媒２０に流入したＮＯｘや酸素を全て吸蔵することができずに、上流側排気浄化触媒２０からＮＯｘや酸素が流出してしまう場合がある。また、時刻ｔ2において、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは切替基準吸蔵量Ｃｒｅｆ以上になっており、時刻ｔ2近傍において上述したような意図しない空燃比のずれ等が生じると上流側排気浄化触媒２０からＮＯｘや酸素が流出する可能性がある。
【００７１】
以上より、上流側空燃比センサ４０の出力空燃比におけるずれを検出することが必要になると共に、検出されたずれに基づいて出力空燃比等の補正を行うことが必要である。
【００７２】
＜通常学習制御＞
そこで、本発明の実施形態では、上流側空燃比センサ４０の出力空燃比におけるずれを補償すべく、通常運転中（すなわち、上述したような目標空燃比に基づいてフィードバック制御を行っているとき）に通常学習制御が行われる。以下では、この通常学習制御について説明する。
【００７３】
ここで、目標空燃比をリーン空燃比に切り替えてから、積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆ以上になるまで、すなわち目標空燃比を再びリッチ空燃比に切り替えるまでの期間を酸素増大期間とする。同様に、目標空燃比をリッチ空燃比に切り替えてから、下流側空燃比センサ４１の出力空燃比がリッチ判定空燃比以下になるまで、すなわち目標空燃比を再びリーン空燃比に切り替えるまでの期間を酸素減少期間とする。本実施形態の通常学習制御では、酸素増大期間における積算酸素過不足量ΣＯＥＤの絶対値として積算酸素過剰量を算出する。なお、積算酸素過剰量は、酸素増大期間において、上流側排気浄化触媒２０に流入する排気ガスの空燃比を理論空燃比にしようとしたときに過剰となる酸素の量の積算値を表す。加えて、酸素減少期間における積算酸素過不足量ΣＯＥＤの絶対値として積算酸素不足量を算出する。なお、積算酸素不足量は、酸素減少期間において、上流側排気浄化触媒２０に流入する排気ガスの空燃比を理論空燃比にしようとしたときに不足する酸素の量の積算値を表す。そして、これら積算酸素過剰量と積算酸素不足量との差が小さくなるように制御中心空燃比ＡＦＲが補正される。図７にこの様子を示す。
【００７４】
図７は、制御中心空燃比ＡＦＲ、空燃比補正量ＡＦＣ、上流側空燃比センサ４０の出力空燃比ＡＦｕｐ、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡ、積算酸素過不足量ΣＯＥＤ、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ及び学習値ｓｆｂｇのタイムチャートである。図７は、図６と同様に、上流側空燃比センサ４０の出力空燃比ＡＦｕｐが低い側（リッチ側）にずれている場合を示している。なお、学習値ｓｆｂｇは、上流側空燃比センサ４０の出力空燃比（出力電流）のずれに応じて変化する値であり、本実施形態では制御中心空燃比ＡＦＲを補正するのに用いられる。また、図中、上流側空燃比センサ４０の出力空燃比ＡＦｕｐにおける実線は、上流側空燃比センサ４０の出力空燃比を、破線は、上流側空燃比センサ４０周りを流通する排気ガスの実際の空燃比をそれぞれ示している。加えて、一点鎖線は、目標空燃比、すなわち理論空燃比に空燃比補正量ＡＦＣを加算した空燃比を示している。
【００７５】
図７に示した例では、図５及び図６と同様に、時刻ｔ1以前の状態では、制御中心空燃比が理論空燃比とされ、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈとされている。このとき、上流側空燃比センサ４０の出力空燃比ＡＦｕｐは実線で示したようにリッチ設定空燃比に相当する空燃比となる。しかしながら、上流側空燃比センサ４０の出力空燃比ＡＦｕｐにはずれが生じているため、排気ガスの実際の空燃比はリッチ設定空燃比よりもリーンの空燃比となっている（図７の破線）。ただし、図７に示した例では、図７の破線から分かるように、時刻ｔ1以前の実際の排気ガスの空燃比はリッチ設定空燃比よりもリーンながらも、リッチ空燃比となっている。したがって、上流側排気浄化触媒２０の酸素吸蔵量は徐々に減少していく。
【００７６】
時刻ｔ1において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する。これにより、上述したように、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられる。時刻ｔ1以降は、上流側空燃比センサ４０の出力空燃比はリーン設定空燃比に相当する空燃比となる。しかしながら、上流側空燃比センサ４０の出力空燃比のずれにより、排気ガスの実際の空燃比は、リーン設定空燃比よりもリーンな空燃比、すなわちリーン度合いの大きい空燃比となる（図７の破線を参照）。このため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは急速に増大する。
【００７７】
一方、酸素過不足量ＯＥＤは、上流側空燃比センサ４０の出力空燃比ＡＦｕｐに基づいて算出される。しかしながら、上述したように、上流側空燃比センサ４０の出力空燃比ＡＦｕｐにはずれが生じている。したがって、算出された酸素過不足量ＯＥＤは、実際の酸素過不足量ＯＥＤよりも少ない（すなわち、酸素量が少ない）値となる。その結果、算出された積算酸素過不足量ΣＯＥＤは、実際の値よりも少なくなる。
【００７８】
時刻ｔ2では、積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達する。このため、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。したがって、目標空燃比はリッチ空燃比とされる。このとき、実際の酸素吸蔵量ＯＳＡは図７に示したように切替基準吸蔵量Ｃｒｅｆよりも多くなっている。
【００７９】
時刻ｔ2以降は、時刻ｔ1以前の状態と同様に、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈとされ、よって目標空燃比はリッチ空燃比とされる。このときも、排気ガスの実際の空燃比はリッチ設定空燃比よりもリーンの空燃比となっている。この結果、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの減少速度は遅くなる。加えて、上述したように、時刻ｔ2において、上流側排気浄化触媒２０の実際の酸素吸蔵量は切替基準吸蔵量Ｃｒｅｆよりも多くなっている。このため、上流側排気浄化触媒２０の実際の酸素吸蔵量ＯＳＡがゼロに到達するまでには時間がかかる。
【００８０】
時刻ｔ3では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する。これにより、上述したように、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられる。したがって、目標空燃比がリッチ設定空燃比からリーン設定空燃比へと切り替えられる。
【００８１】
ところで、本実施形態では、上述したように、時刻ｔ1から時刻ｔ2までにおいて、積算酸素過不足量ΣＯＥＤが算出される。ここで、目標空燃比をリーン空燃比に切り替えた時（時刻ｔ1）から上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの推定値が切替基準吸蔵量Ｃｒｅｆ以上になった時（時刻ｔ2）までの期間を酸素増大期間Ｔｉｎｃと称すると、本実施形態では酸素増大期間Ｔｉｎｃに積算酸素過不足量ΣＯＥＤが算出される。図７では、時刻ｔ1〜時刻ｔ2の酸素増大期間Ｔｉｎｃにおける積算酸素過不足量ΣＯＥＤの絶対値（積算酸素過剰量）をＲ1で示している。
【００８２】
この積算酸素過剰量Ｒ1は、時刻ｔ2における酸素吸蔵量ＯＳＡに相当する。しかしながら、上述したように、酸素過不足量ＯＥＤの推定には上流側空燃比センサ４０の出力空燃比ＡＦｕｐが用いられ、この出力空燃比ＡＦｕｐにはずれが生じている。このため、図７に示した例では、時刻ｔ1〜時刻ｔ2の積算酸素過剰量Ｒ1は、時刻ｔ2における実際の酸素吸蔵量ＯＳＡに相当する値よりも少ないものとなっている。
【００８３】
また、本実施形態では、時刻ｔ2から時刻ｔ3までにおいても、積算酸素過不足量ΣＯＥＤが算出される。ここで、目標空燃比をリッチ空燃比に切り替えた時（時刻ｔ2）から下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達する時（時刻ｔ3）までの期間を酸素減少期間Ｔｄｅｃと称すると、本実施形態では酸素減少期間Ｔｄｅｃに積算酸素過不足量ΣＯＥＤが算出される。図７では、時刻ｔ2〜時刻ｔ3の酸素減少期間Ｔｄｅｃにおける積算酸素過不足量ΣＯＥＤの絶対値（積算酸素不足量）をＦ1で示している。
【００８４】
この積算酸素不足量Ｆ1は、時刻ｔ2から時刻ｔ3までに上流側排気浄化触媒２０から放出された総酸素量に相当する。しかしながら、上述したように、上流側空燃比センサ４０の出力空燃比ＡＦｕｐにはずれが生じている。このため、図７に示した例では、時刻ｔ2〜時刻ｔ3の積算酸素不足量Ｆ1は、時刻ｔ2から時刻ｔ3までに上流側排気浄化触媒２０から実際に放出された総酸素量に相当する値よりも多いものとなっている。
【００８５】
ここで、酸素増大期間Ｔｉｎｃでは上流側排気浄化触媒２０に酸素が吸蔵されると共に、酸素減少期間Ｔｄｅｃでは吸蔵されていた酸素が全て放出される。したがって、積算酸素過剰量Ｒ1と、積算酸素不足量Ｆ1とは基本的に同一の値になるのが理想的である。ところが、上述したように、上流側空燃比センサ４０の出力空燃比ＡＦｕｐにずれが生じている場合、このずれに応じてこれら積算値の値も変化する。上述したように、上流側空燃比センサ４０の出力空燃比が低い側（リッチ側）にずれている場合、積算酸素過剰量Ｒ1に対して積算酸素不足量Ｆ1の方が多くなる。逆に、上流側空燃比センサ４０の出力空燃比が高い側（リーン側）にずれている場合、積算酸素過剰量Ｒ1に対して積算酸素不足量Ｆ1の方が少なくなる。加えて、積算酸素過剰量Ｒ1と積算酸素不足量Ｆ1との差ΔΣＯＥＤ（＝Ｒ1−Ｆ1。以下、「過不足量誤差」という）は上流側空燃比センサ４０の出力空燃比におけるずれの程度を表している。この過不足量誤差ΔΣＯＥＤが大きくなるほど、上流側空燃比センサ４０の出力空燃比におけるずれが大きいといえる。
【００８６】
そこで、本実施形態では、過不足量誤差ΔΣＯＥＤに基づいて、制御中心空燃比ＡＦＲを補正するようにしている。特に、本実施形態では、積算酸素過剰量Ｒ1と積算酸素不足量Ｆ1との差ΔΣＯＥＤが小さくなるように制御中心空燃比ＡＦＲを補正するようにしている。
【００８７】
具体的には、本実施形態では、下記式（２）により学習値ｓｆｂｇを算出すると共に、下記式（３）により制御中心空燃比ＡＦＲが補正される。
ｓｆｂｇ（ｎ）＝ｓｆｂｇ（ｎ−１）＋ｋ1・ΔΣＯＥＤ      …（２）
ＡＦＲ＝ＡＦＲｂａｓｅ＋ｓｆｂｇ（ｎ）      …（３）
なお、上記式（２）において、ｎは計算回数又は時間を表している。したがって、ｓｆｂｇ（ｎ）は今回の計算又は現在の学習値である。加えて、上記式（２）におけるｋ1は、過不足量誤差ΔΣＯＥＤを制御中心空燃比ＡＦＲに反映させる程度を表すゲインである。ゲインｋ1の値が大きいほど制御中心空燃比ＡＦＲの補正量が大きくなる。さらに、上記式（３）において、基本制御中心空燃比ＡＦＲｂａｓｅは、基本となる制御中心空燃比であり、本実施形態では理論空燃比である。
【００８８】
式（３）からわかるように、学習値ｓｆｂｇが負の値であるときには制御中心空燃比ＡＦＲがリッチ側に変更され、よって上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変更される。また、その絶対値が大きくなるほど、制御中心空燃比ＡＦＲがリッチ側に変更される程度が大きくなる。したがって、学習値ｓｆｂｇがゼロであるときに上流側排気浄化触媒２０に流入する排気ガスの空燃比に対して、学習値ｓｆｂｇが負の値であるときの絶対値（リッチ側絶対値）が大きくなるほど、上流側排気浄化触媒２０に流入する排気ガスの空燃比が大きくリッチ側に変化することになる。
【００８９】
同様に、学習値ｓｆｂｇが正の値であるときには制御中心空燃比ＡＦＲがリーン側に変更され、よって上流側排気浄化触媒２０に流入する排気ガスの空燃比がリーン側に変更される。また、その絶対値が大きくなるほど、制御中心空燃比ＡＦＲがリーン側に変更される程度が大きくなる。したがって、学習値ｓｆｂｇがゼロであるときに上流側排気浄化触媒２０に流入する排気ガスの空燃比に対して、学習値ｓｆｂｇが正の値であるときの絶対値（リーン側絶対値）が大きくなるほど、上流側排気浄化触媒２０に流入する排気ガスの空燃比が大きくリーン側に変化することになる。
【００９０】
図７の時刻ｔ3においては、上述したように、積算酸素過剰量Ｒ1及び積算酸素不足量Ｆ1に基づいて学習値ｓｆｂｇが算出される。特に、図７に示した例では、積算酸素過剰量Ｒ1よりも積算酸素不足量Ｆ1の方が多いことから、時刻ｔ3において学習値ｓｆｂｇは減少せしめられる。
【００９１】
ここで、制御中心空燃比ＡＦＲは、上記式（３）を用いて学習値ｓｆｂｇに基づいて補正される。図７に示した例では、学習値ｓｆｂｇは負の値となっているため、制御中心空燃比ＡＦＲは、基本制御中心空燃比ＡＦＲｂａｓｅよりも小さな値、すなわちリッチ側の値となっている。これにより、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に補正されることになる。
【００９２】
この結果、時刻ｔ3以降、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比の目標空燃比に対するずれは時刻ｔ3以前と比べて小さなものとなる。したがって、時刻ｔ3以降、実際の空燃比を表す破線と目標空燃比を表す一点鎖線との間の差は、時刻ｔ3以前における差よりも小さくなっている。
【００９３】
また、時刻ｔ3以降も、時刻ｔ1〜時刻ｔ2における操作と同様な操作が行われる。したがって、時刻ｔ4において積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達すると、目標空燃比がリーン設定空燃比からリッチ設定空燃比へと切り替えられる。その後、時刻ｔ5において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達すると、再度、目標空燃比がリーン設定空燃比に切り替えられる。
【００９４】
時刻ｔ3〜時刻ｔ4は、上述したように酸素増大期間Ｔｉｎｃに該当し、よってこの間の積算酸素過不足量ΣＯＥＤの絶対値は図７の積算酸素過剰量Ｒ2で表せる。また、時刻ｔ4〜時刻ｔ5は、上述したように酸素減少期間Ｔｄｅｃに該当し、よってこの間の積算酸素過不足量ΣＯＥＤの絶対値は図７の積算酸素不足量Ｆ2で表せる。そして、これら積算酸素過剰量Ｒ2と積算酸素不足量Ｆ2との差ΔΣＯＥＤ（＝Ｒ2−Ｆ2）に基づいて、上記式（２）を用いて学習値ｓｆｂｇが更新される。本実施形態では、時刻ｔ5以降も同様な制御が繰り返され、これにより学習値ｓｆｂｇの更新が繰り返される。
【００９５】
通常学習制御によりこのように学習値ｓｆｂｇの更新を行うことにより、上流側空燃比センサ４０の出力空燃比ＡＦｕｐは徐々に目標空燃比から離れていくが、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比は徐々に目標空燃比に近づいていく。これにより、上流側空燃比センサ４０の出力空燃比におけるずれを補償することができる。
【００９６】
なお、上述したように、学習値ｓｆｂｇの更新は、酸素増大期間Ｔｉｎｃにおける積算酸素過不足量ΣＯＥＤと、この酸素増大期間Ｔｉｎｃの直後に続く酸素減少期間Ｔｄｅｃにおける積算酸素過不足量ΣＯＥＤとに基づいて行われるのが好ましい。これは、上述したように、酸素増大期間Ｔｉｎｃに上流側排気浄化触媒２０に吸蔵される総酸素量とこの直後に続く酸素減少期間Ｔｄｅｃに上流側排気浄化触媒２０から放出される総酸素量が等しくなるためである。
【００９７】
加えて、上記実施形態では、１回の酸素増大期間Ｔｉｎｃにおける積算酸素過不足量ΣＯＥＤと、１回の酸素減少期間Ｔｄｅｃにおける積算酸素過不足量ΣＯＥＤとに基づいて学習値ｓｆｂｇの更新が行われている。しかしながら、複数回の酸素増大期間Ｔｉｎｃにおける積算酸素過不足量ΣＯＥＤの合計値又は平均値と、複数回の酸素減少期間Ｔｄｅｃにおける積算酸素過不足量ΣＯＥＤの合計値又は平均値とに基づいて学習値ｓｆｂｇの更新を行ってもよい。
【００９８】
また、上記実施形態では、学習値ｓｆｂｇに基づいて、制御中心空燃比を補正することとしている。しかしながら、学習値ｓｆｂｇに基づいて補正するのは、空燃比に関する他のパラメータであってもよい。他のパラメータとしては、例えば、燃焼室５内への燃料供給量や、上流側空燃比センサ４０の出力空燃比、空燃比補正量等が挙げられる。
【００９９】
なお、空燃比制御として上述した別の制御を行うことができる。具体的には、別の制御としては、例えば、下流側空燃比センサ４１の出力空燃比がリーン判定空燃比以上になったときに目標空燃比をリッチ空燃比に切り替え、下流側空燃比センサ４１の出力空燃比がリッチ判定空燃比以下になったときに目標空燃比をリーン空燃比に切り替える制御が考えられる。
【０１００】
この場合、目標空燃比をリッチ空燃比に切り替えてから下流側空燃比センサ４１の出力空燃比がリッチ判定空燃比以下になるまでの酸素減少期間における積算酸素過不足量の絶対値として積算酸素不足量が算出される。加えて、目標空燃比をリーン空燃比に切り替えてから下流側空燃比センサ４１の出力空燃比がリーン判定空燃比以上になるまでの酸素増大期間における積算酸素過不足量の絶対値として積算酸素過剰量が算出される。そして、これら積算酸素過剰量と積算酸素不足量との差が小さくなるように制御中心空燃比等が補正されることになる。
【０１０１】
したがって、以上をまとめると、本実施形態では、通常学習制御において、目標空燃比をリーン空燃比に切り替えてから再びリッチ空燃比に切り替えるまでの酸素増大期間における積算酸素過剰量と、目標空燃比をリッチ空燃比に切り替えてから再びリーン空燃比に切り替えるまでの酸素減少期間における積算酸素不足量とに基づいて、これら積算酸素過剰量と積算酸素不足量との差が小さくなるように空燃比に関するパラメータが補正されるといえる。
【０１０２】
＜上流側空燃比センサにおける大きなずれ＞
ところで、図６に示した例では、上流側空燃比センサ４０の出力空燃比にずれが生じているが、その程度はそれほど大きくない場合を示している。したがって、図６の破線からもわかるように、目標空燃比がリッチ設定空燃比に設定されている場合において、実際の排気ガスの空燃比は、リッチ設定空燃比よりもリーンながらも、リッチ空燃比となっている。
【０１０３】
これに対して、上流側空燃比センサ４０に生じているずれが大きくなると、目標空燃比がリッチ設定空燃比に設定されていても、実際の排気ガスの空燃比が理論空燃比になってしまう場合がある。この様子を、図８に示す。
【０１０４】
図８では、時刻ｔ1以前において、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎとされている。これに伴い、上流側空燃比センサ４０の出力空燃比ＡＦｕｐはリーン設定空燃比となる。ただし、上流側空燃比センサ４０の出力空燃比は大きくリッチ側にずれているため、排気ガスの実際の空燃比はリーン設定空燃比よりもリーンな空燃比となっている（図中の破線）。
【０１０５】
その後、時刻ｔ1において上流側空燃比センサ４０の出力空燃比ＡＦｕｐに基づいて算出された積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達すると、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。これに伴い、上流側空燃比センサ４０の出力空燃比ＡＦｕｐはリッチ設定空燃比に相当する空燃比となる。しかしながら、上流側空燃比センサ４０の出力空燃比は大きくリッチ側にずれているため、排気ガスの実際の空燃比は理論空燃比となっている（図中の破線）。
【０１０６】
この結果、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは変化せずに一定の値に維持される。このため、空燃比補正量ＡＦＣをリッチ設定補正量ＡＦＣｒｉｃｈに切り替えてから長時間が経過しても、上流側排気浄化触媒２０から未燃ガスが排出されることはなく、したがって、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはほぼ理論空燃比のまま維持される。上述したように、空燃比補正量ＡＦＣのリッチ設定補正量ＡＦＣｒｉｃｈからリーン設定補正量ＡＦＣｌｅａｎへの切替は、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達した時に行われる。しかしながら、図８に示した例では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが理論空燃比のまま維持されることから、空燃比補正量ＡＦＣは長時間に亘ってリッチ設定補正量ＡＦＣｒｉｃｈに維持されることになる。ここで、上述した通常学習制御は、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈとリーン設定補正量ＡＦＣｌｅａｎとの間で交互に切り替えられることを前提としている。したがって、上流側空燃比センサ４０の出力空燃比が大きくずれている場合には、空燃比補正量ＡＦＣの切替が行われず、よって上述した通常学習制御を行うことはできない。
【０１０７】
図９は、上流側空燃比センサ４０の出力空燃比が極めて大きくリッチ側にずれている場合を示す図８と同様な図である。図９に示した例では、図８に示した例と同様に、時刻ｔ1において、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。すなわち、時刻ｔ1において目標空燃比がリッチ設定空燃比に設定される。しかしながら、上流側空燃比センサ４０の出力空燃比のずれにより、実際の排気ガスの空燃比がリーン空燃比になっている（図中の破線）。
【０１０８】
この結果、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに設定されているにもかかわらず、上流側排気浄化触媒２０にはリーン空燃比の排気ガスが流入する。このため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡは徐々に増大していき、ついには時刻ｔ2において最大吸蔵可能酸素量Ｃｍａｘに到達する。このように、酸素吸蔵量ＯＳＡが最大吸蔵可能酸素量Ｃｍａｘに到達すると、上流側排気浄化触媒２０はもはやこれ以上排気ガス中の酸素を吸蔵することができない。このため、上流側排気浄化触媒２０からは流入する排気ガス中に含まれていた酸素及びＮＯｘがそのまま流出し、結果的に、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが上昇する。しかしながら、空燃比補正量ＡＦＣのリッチ設定補正量ＡＦＣｒｉｃｈからリーン設定補正量ＡＦＣｌｅａｎへの切替は、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈに到達した時に行われる。このため、上流側空燃比センサ４０の出力空燃比が極めて大きくずれている場合にも、空燃比補正量ＡＦＣの切替が行われず、よって上述した通常学習制御を行うことはできない。
【０１０９】
＜張付き学習制御＞
そこで、本実施形態では、上流側空燃比センサ４０の出力空燃比におけるずれが大きな場合であってもそのずれを補償すべく、上述した通常学習制御に加えて、理論空燃比張付き学習制御、リーン張付き学習制御及びリッチ張付き学習制御が行われる。
【０１１０】
＜理論空燃比張付き学習＞
まず、理論空燃比張付き学習制御について説明する。理論空燃比張付き学習制御は、図１０に示した例のように、下流側空燃比センサ４１の出力空燃比が理論空燃比に張り付いてしまっている場合に行われる学習制御である。
【０１１１】
ここで、リッチ判定空燃比ＡＦｒｉｃｈとリーン判定空燃比ＡＦｌｅａｎとの間の領域を中間領域Ｍと称する。この中間領域Ｍは、リッチ判定空燃比とリーン判定空燃比との間の空燃比領域である理論空燃比近傍領域に相当する。理論空燃比張付き学習制御では、空燃比補正量ＡＦＣをリッチ設定補正量ＡＦＣｒｉｃｈに切り替えてから、すなわち目標空燃比をリッチ設定空燃比に切り替えてから、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが予め定められた理論空燃比維持判定時間以上に亘って中間領域Ｍ内に維持されているか否かを判断する。そして、理論空燃比維持判定時間以上に亘って中間領域Ｍ内に維持されている場合には、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化するように学習値ｓｆｂｇが減少せしめられる。図１０にこの様子を示す。
【０１１２】
図１０は、空燃比補正量ＡＦＣ等のタイムチャートを示す図９と同様な図である。図１０は、図８と同様に、上流側空燃比センサ４０の出力空燃比ＡＦｕｐが低い側（リッチ側）に大きくずれている場合を示している。
【０１１３】
図示した例では、図８と同様に、時刻ｔ1以前において、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎとされている。その後、時刻ｔ1において、積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆに到達し、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。しかしながら、上流側空燃比センサ４０の出力空燃比は大きくリッチ側にずれているため、図８に示した例と同様に、排気ガスの実際の空燃比はほぼ理論空燃比となっている。このため、時刻ｔ1以降、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡ値に維持される。この結果、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎは長期間に亘って理論空燃比近傍に維持され、よって中間領域Ｍ内に維持される。
【０１１４】
そこで、本実施形態では、空燃比補正量ＡＦＣをリッチ設定補正量ＡＦＣｒｉｃｈに切り替えてから予め定められた理論空燃比維持判定時間Ｔｓｔｏ以上に亘って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが中間領域Ｍ内に維持されている場合には、制御中心空燃比ＡＦＲを補正するようにしている。特に、本実施形態では、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化するように学習値ｓｆｂｇが更新される。
【０１１５】
具体的には、本実施形態では、下記式（４）により学習値ｓｆｂｇを算出すると共に、上記式（３）により制御中心空燃比ＡＦＲが補正される。
ｓｆｂｇ（ｎ）＝ｓｆｂｇ（ｎ−１）＋ｋ2・ＡＦＣｒｉｃｈ      …（４）
なお、上記式（４）において、ｋ2は、制御中心空燃比ＡＦＲを補正する程度を表すゲインである（０＜ｋ2≦１）。ゲインｋ2の値が大きいほど、制御中心空燃比ＡＦＲの補正量が大きくなる。
【０１１６】
ここで、上述したように、空燃比補正量ＡＦＣの切替後に長期間に亘って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが中間領域Ｍ内に維持されている場合には、排気ガスの実際の空燃比はほぼ理論空燃比近傍の値となっている。このため、上流側空燃比センサ４０におけるずれは、制御中心空燃比（理論空燃比）と目標空燃比（この場合は、リッチ設定空燃比）との差と同程度になっている。本実施形態では、上記式（４）に示したように制御中心空燃比と目標空燃比との差に相当する空燃比補正量ＡＦＣに基づいて学習値ｓｆｂｇを更新しており、これにより、より適切に上流側空燃比センサ４０の出力空燃比におけるずれを補償することができる。
【０１１７】
図１０に示した例では、時刻ｔ1から理論空燃比維持判定時間Ｔｓｔｏが経過した時刻ｔ2まで、空燃比補正量ＡＦＣはリッチ設定補正量ＡＦＣｒｉｃｈとされる。このため、式（４）を用いると、時刻ｔ2において学習値ｓｆｂｇは減少せしめられる。この結果、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比はリッチ側に変化することになる。これにより、時刻ｔ2以降、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比の目標空燃比に対するずれは時刻ｔ2以前と比べて小さなものとなる。したがって、時刻ｔ2以降、実際の空燃比を表す破線と目標空燃比を表す一点鎖線との間の差は、時刻ｔ2以前における差よりも小さくなっている。
【０１１８】
図１０に示した例では、ゲインｋ2を比較的小さい値にした例を示している。このため、時刻ｔ2において学習値ｓｆｂｇの更新が行われてもなお、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比の目標空燃比に対するずれが残っている。このため、排気ガスの実際の空燃比は、リッチ設定空燃比よりもリーンな空燃比、すなわちリッチ度合いの小さい空燃比となる（図１０の破線参照）。このため、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡの減少速度は遅い。
【０１１９】
この結果、時刻ｔ2から理論空燃比維持判定時間Ｔｓｔｏが経過した時刻ｔ3まで、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが理論空燃比近傍に維持され、よって中間領域Ｍ内に維持される。このため、図１０に示した例では、時刻ｔ3においても、式（４）を用いて、学習値ｓｆｂｇの更新が行われる。
【０１２０】
図１０に示した例では、その後、時刻ｔ4において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下となる。このように、出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下になった後には、上述したように空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎとリッチ設定補正量ＡＦＣｒｉｃｈとに交互に設定される。これに伴って、上述した通常学習制御が行われるようになる。
【０１２１】
理論空燃比張付き学習制御によりこのように学習値ｓｆｂｇの更新を行うことにより、上流側空燃比センサ４０の出力空燃比ＡＦｕｐのずれが大きい場合であっても、学習値の更新を行うことができる。これにより、上流側空燃比センサ４０の出力空燃比におけるずれを補償することができる。
【０１２２】
なお、上記実施形態では、理論空燃比維持判定時間Ｔｓｔｏは予め定められた時間とされている。この場合、理論空燃比維持判定時間は、目標空燃比をリッチ空燃比に切り替えてからの積算酸素過不足量ΣＯＥＤの絶対値が新品時の上流側排気浄化触媒２０の最大吸蔵可能酸素量に到達するまでに通常かかる時間以上とされる。具体的には、その２倍〜４倍程度の時間とするのが好ましい。
【０１２３】
或いは、理論空燃比維持判定時間Ｔｓｔｏは、目標空燃比をリッチ空燃比に切り替えてからの積算酸素過不足量ΣＯＥＤ等、他のパラメータに応じて変化させてもよい。具体的には、例えば、積算酸素過不足量ΣＯＥＤが多くなるほど、理論空燃比維持判定時間Ｔｓｔｏが短くされる。これにより、目標空燃比をリッチ空燃比に切り替えてからの積算酸素過不足量ΣＯＥＤが所定の量（例えば、図１０のＯＥＤｓｗ）になったときに上述したような学習値ｓｆｂｇの更新を行うようにすることもできる。また、この場合、積算酸素過不足量ΣＯＥＤにおける上記所定の量を新品時の上流側排気浄化触媒２０の最大吸蔵可能酸素量以上とすることが必要である。具体的には、最大吸蔵可能酸素量の２倍〜４倍程度の量とするのが好ましい。
【０１２４】
なお、理論空燃比張付き学習制御に関しても、上述した通常学習制御の場合と同様に、基本的な空燃比制御として、上述した別の制御を用いた場合にも適用することができる。この場合、理論空燃比張付き学習制御では、目標空燃比をリーン空燃比に切り替えてから、下流側空燃比センサ４１の出力空燃比が理論空燃比維持判定時間Ｔｓｔｏ以上に亘って理論空燃比近傍空燃比領域内に維持されている場合には、そのときの目標空燃比に応じて上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側又はリーン側に変化するように学習値ｓｆｂｇが増大又は減少せしめられることになる。
【０１２５】
したがって、これらをまとめて表現すると、本実施形態では、理論空燃比張付き学習では、目標空燃比を理論空燃比よりも一方側（図９に示した例におけるリッチ側に相当）にずれた空燃比に切り替えてから、下流側空燃比センサ４１の出力空燃比が理論空燃比維持判定時間Ｔｓｔｏ以上に亘って理論空燃比近傍空燃比領域内に維持されている場合には、フィードバック制御において上流側排気浄化触媒２０に流入する排気ガスの空燃比が前記一方側に変化するように空燃比に関するパラメータを補正しているといえる。
【０１２６】
また、上記理論空燃比張付き学習制御では、目標空燃比をリーン空燃比に切り替えてから下流側空燃比センサ４１の出力空燃比が理論空燃比維持判定時間Ｔｓｔｏ以上に亘って理論空燃比近傍空燃比領域内に維持されている場合に学習値の更新を行っている。しかしながら、目標空燃比をリーン空燃比に切り替えてからの吸入空気量や後述する積算排気ガス流量等、時間以外のパラメータに基づいて理論空燃比張付き学習を行うようにしてもよい。
【０１２７】
＜リッチ・リーン張付き学習＞
次に、リーン張付き学習制御について説明する。リーン張付き学習制御は、図９に示した例のように、目標空燃比をリッチ空燃比にしているにもかかわらず、下流側空燃比センサ４１の出力空燃比がリーン空燃比に張り付いてしまっている場合に行われる学習制御である。リーン張付き学習制御では、空燃比補正量ＡＦＣをリッチ設定補正量ＡＦＣｒｉｃｈに切り替えてから、すなわち目標空燃比をリッチ設定空燃比に切り替えてから、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが予め定められたリーン空燃比維持判定時間以上に亘ってリーン空燃比に維持されているかを判断する。そして、リーン空燃比維持判定時間以上に亘ってリーン空燃比に維持されている場合には、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化するように学習値ｓｆｂｇが減少せしめられる。図１１にこの様子を示す。
【０１２８】
図１１は、空燃比補正量ＡＦＣ等のタイムチャートを示す図９と同様な図である。図１１は、図９と同様に、上流側空燃比センサ４０の出力空燃比ＡＦｕｐが低い側（リッチ側）に極めて大きくずれている場合を示している。
【０１２９】
図示した例では、時刻ｔ0において、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎからリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。しかしながら、上流側空燃比センサ４０の出力空燃比は極めて大きくリッチ側にずれているため、図９に示した例と同様に、排気ガスの実際の空燃比はリーン空燃比となっている。このため、時刻ｔ0以降、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン空燃比に維持される。
【０１３０】
そこで、本実施形態では、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに設定されてから、予め定められたリーン空燃比維持判定時間Ｔｌｅａｎ以上に亘って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン空燃比に維持されている場合には、制御中心空燃比ＡＦＲを補正するようにしている。特に、本実施形態では、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化するように学習値ｓｆｂｇが補正される。
【０１３１】
具体的には、本実施形態では、下記式（５）により学習値ｓｆｂｇを算出すると共に、上記式（３）により学習値ｓｆｂｇに基づいて制御中心空燃比ＡＦＲが補正される。
ｓｆｂｇ（ｎ）＝ｓｆｂｇ（ｎ−１）＋ｋ3・（ＡＦＣｒｉｃｈ−（ＡＦｄｗｎ−１４．６））      …（５）
なお、上記式（５）において、ｋ3は、制御中心空燃比ＡＦＲを補正する程度を表すゲインである（０＜ｋ3≦１）。ゲインｋ3の値が大きいほど、制御中心空燃比ＡＦＲの補正量が大きくなる。
【０１３２】
ここで、図１１に示した例では、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに設定されているときに、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン空燃比に維持されている。この場合、上流側空燃比センサ４０におけるずれは、目標空燃比と下流側空燃比センサ４１の出力空燃比との差に相当する。これを分解すると、上流側空燃比センサ４０におけるずれは、目標空燃比と理論空燃比との差（リッチ設定補正量ＡＦＣｒｉｃｈに相当）と、理論空燃比と下流側空燃比センサ４１の出力空燃比との差とを加算した量と同程度となっているといえる。そこで、本実施形態では、上記式（５）に示したように、リッチ設定補正量ＡＦＣｒｉｃｈに下流側空燃比センサ４１の出力空燃比と理論空燃比との差を加算した値に基づいて学習値ｓｆｂｇを更新している。特に、上述した理論空燃比張付き学習では、リッチ設定補正量ＡＦＣｒｉｃｈ相当分だけ学習値を補正しているのに対して、リーン張付き学習ではこれに加えて下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ相当分だけ学習値を補正している。また、ゲインｋ3はゲインｋ2と同程度とされる。このため、リーン張付き学習における補正量は、理論空燃比張付き学習における補正量よりも大きい。
【０１３３】
図１１に示した例では、式（５）を用いると、時刻ｔ1において、学習値ｓｆｂｇは減少せしめられる。この結果、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比はリッチ側に変化することになる。これにより、時刻ｔ1以降、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比の目標空燃比に対するずれは時刻ｔ1以前と比べて小さなものとなる。したがって、時刻ｔ1以降、実際の空燃比を表す破線と目標空燃比を表す一点鎖線との間の差は、時刻ｔ1以前における差よりも小さくなっている。
【０１３４】
図１１では、ゲインｋ3を比較的小さい値にした例を示している。このため、時刻ｔ1において学習値ｓｆｂｇの更新が行われてもなお、上流側空燃比センサ４０の出力空燃比におけるずれが残っている。特に、図示した例では、時刻ｔ1以降も、排気ガスの実際の空燃比はリーン空燃比のままとなっている。この結果、時刻ｔ1からリーン空燃比維持判定時間Ｔｌｅａｎに亘って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン空燃比に維持される。このため、図示した例では、時刻ｔ2においても、リーン張付き学習により、上記式（５）を用いて学習値ｓｆｂｇの補正が行われる。
【０１３５】
時刻ｔ2において学習値ｓｆｂｇの補正が行われると、上流側排気浄化触媒２０に流入する排気ガスの実際の空燃比の目標空燃比に対するずれが小さくなる。これにより、図示した例では、時刻ｔ2以降には、排気ガスの実際の空燃比は理論空燃比よりも僅かにリッチとなり、これに伴って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン空燃比からほぼ理論空燃比に変化する。特に、図１１に示した例では、時刻ｔ2から時刻ｔ3まで理論空燃比維持判定時間Ｔｓｔｏに亘って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがほぼ理論空燃比、すなわち中間領域Ｍ内に維持される。このため、時刻ｔ3において、理論空燃比張付き学習により、上記式（４）を用いて学習値ｓｆｂｇの補正が行われる。
【０１３６】
リーン張付き学習制御によってこのように学習値ｓｆｂｇの更新を行うことにより、上流側空燃比センサ４０の出力空燃比ＡＦｕｐのずれが極めて大きい場合であっても、学習値の更新を行うことができる。これにより、上流側空燃比センサ４０の出力空燃比におけるずれを小さくすることができる。
【０１３７】
なお、上記実施形態では、リーン空燃比維持判定時間Ｔｌｅａｎは予め定められた時間とされている。この場合、リーン空燃比維持判定時間Ｔｌｅａｎは、目標空燃比をリッチ空燃比に切り替えてからそれに応じて下流側空燃比センサ４１の出力空燃比が変化するまでに通常かかる下流側空燃比センサの応答遅れ時間以上とされる。具体的には、その２倍〜４倍程度の時間とするのが好ましい。また、リーン空燃比維持判定時間Ｔｌｅａｎは、目標空燃比をリッチ空燃比に切り替えてからの積算酸素過不足量ΣＯＥＤの絶対値が新触時の上流側排気浄化触媒２０の最大吸蔵可能酸素量に到達するまでに通常かかる時間よりも短い。したがって、リーン空燃比維持判定時間Ｔｌｅａｎは、上述した理論空燃比維持判定時間Ｔｓｔｏよりも短いものとされる。
【０１３８】
或いは、リーン空燃比維持判定時間Ｔｌｅａｎは、目標空燃比をリッチ空燃比に切り替えてから積算された排気ガス流量等、他のパラメータに応じて変化させてもよい。具体的には、例えば、積算排気ガス流量ΣＧｅが多くなるほど、リーン空燃比維持判定時間Ｔｌｅａｎが短くされる。これにより、目標空燃比をリッチ空燃比に切り替えてからの積算排気ガス流量が所定の量（例えば、図１１のΣＧｅｓｗ）になったときに、上述したような学習値ｓｆｂｇの更新を行うようにすることもできる。また、この場合、所定の量は、目標空燃比を切り替えてからそれに応じて下流側空燃比センサ４１の出力空燃比が変化するまでに必要な排気ガスの総流量以上とすることが必要である。具体的には、斯かる総流量の２倍〜４倍程度の量とすることが好ましい。
【０１３９】
次に、リッチ張付き学習制御について説明する。リッチ張付き学習制御は、リーン張付き学習制御と同様な制御であり、目標空燃比をリーン空燃比にしているにもかかわらず、下流側空燃比センサ４１の出力空燃比がリッチ空燃比に張り付いてしまっている場合に行われる学習制御である。リッチ張付き学習制御では、空燃比補正量ＡＦＣをリーン設定補正量ＡＦＣｌｅａｎに切り替えてから、すなわち目標空燃比をリーン設定空燃比に切り替えてから、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが予め定められたリッチ空燃比維持判定時間（リーン空燃比維持判定時間と同様）以上に亘ってリッチ空燃比に維持されているかを判断する。そして、リッチ空燃比維持判定時間以上に亘ってリッチ空燃比に維持されている場合には、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリーン側に変化するように学習値ｓｆｂｇが増大せしめられる。すなわち、リッチ張付き学習制御では、上述したリーン張付き学習制御とはリッチ及びリーンを逆にした制御が行われる。
【０１４０】
なお、本実施形態では、通常学習制御に加えて、理論空燃比張付き学習制御、リーン張付き学習制御及びリッチ張付き学習制御が行われている。これらをまとめると、下流側空燃比センサ４１の出力に基づいて学習値を更新すると共に、学習値に応じて上流側排気浄化触媒２０に流入する排気ガスの空燃比を変化させるように空燃比に関するパラメータを制御する学習制御と称することができる。
【０１４１】
＜空燃比センサの素子割れ＞
ところで、上述したような空燃比センサ４０、４１に生じる異常として、空燃比センサ４０、４１を構成する素子に割れが生じる素子割れという現象が挙げられる。具体的には、固体電解質層５１及び拡散律速層５４を貫通する割れ（図１２のＣ１）や、固体電解質層５１及び拡散律速層５４に加えて両電極５２、５３を貫通する割れ（図１２のＣ２）が発生する。このような素子割れが発生すると、図１２に示したように割れた部分を介して排気ガスが基準ガス室５５内に進入する。
【０１４２】
この結果、空燃比センサ４０、４１周りの排気ガスの空燃比がリッチ空燃比である場合には、リッチ空燃比の排気ガスが基準ガス室５５内に進入する。これにより、基準ガス室５５内にリッチ空燃比の排気ガスが拡散し、大気側電極５３周りにおける酸素濃度が低下する。一方、この場合でも、排気側電極５２は拡散律速層５４を介して排気ガスに曝されることになる。このため、大気側電極５３周りと排気側電極５２周りとの間における酸素濃度差が低下し、結果的に、空燃比センサ４０、４１の出力空燃比がリーン空燃比となる。すなわち、空燃比センサ４０、４１に素子割れが発生すると、空燃比センサ４０、４１周りの排気ガスの空燃比がリッチ空燃比であっても、空燃比センサ４０、４１の出力空燃比はリーン空燃比となってしまう。
【０１４３】
一方、空燃比センサ４０、４１周りの排気ガスの空燃比がリーン空燃比である場合には、このような出力空燃比の逆転現象は発生しない。これは、排気ガスの空燃比がリーン空燃比である場合には、空燃比センサ４０、４１の出力電流は固体電解質層５１の両側の空燃比の差よりも拡散律速層５４を介して排気側電極５２表面上に到達する酸素の量に依存するためである。
【０１４４】
図１３は、印加電圧を０．４５Ｖ程度で一定にしたときの、図３と同様な排気空燃比と空燃比センサ４０、４１の出力空燃比との関係を示している。図１３に示したように、空燃比センサ４０、４１が正常である場合（図中の丸印）には、排気空燃比が大きくなるにつれて、すなわち排気空燃比がリーンになるにつれて空燃比センサ４０、４１の出力電流が増大する。一方、空燃比センサ４０、４１に素子割れの異常が生じている場合（図中の三角印）には、排気空燃比が１４．６以上であってリーン空燃比であると、排気空燃比が大きくなるにつれて空燃比センサ４０、４１の出力電流が増大する。これに対して、排気空燃比が１４．６以下であってリッチ空燃比であるときには、排気空燃比が小さくなるにつれて、すなわち排気空燃比がリッチになるにつれて空燃比センサ４０、４１の出力電流が増大する。
【０１４５】
このように下流側空燃比センサ４１に素子割れの異常が生じているときには、下流側空燃比センサ４１周りの排気ガスの空燃比がリッチ空燃比であっても、その出力空燃比ＡＦｄｗｎはリーン空燃比になる。すなわち、目標空燃比をリッチ空燃比に設定しているときに下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン空燃比となる。一方、上述したように、上流側空燃比センサ４０に生じているずれが大きい場合にも、目標空燃比をリッチ空燃比に設定しているときに下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン空燃比となる。このため、目標空燃比をリッチ空燃比にしているにもかかわらず、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン空燃比に張り付いてしまっている場合には、このうちのどちらが要因であるかを判別することはできない。
【０１４６】
図１４は、下流側空燃比センサ４１に素子割れの異常が生じている状態で上述したリーン張付制御が行われた場合の、制御中心空燃比等のタイムチャートである。図１４に示した例では、時刻ｔ0以降、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに維持されている。図１４に示した例では、上流側空燃比センサ４０の出力空燃比ＡＦｕｐにはずれは生じていないことから、上流側排気浄化触媒２０に流入する排気ガスの空燃比はリッチ空燃比となっている。また、図１４に示した例では、時刻ｔ0において、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡはほぼゼロになっている。このため、上流側排気浄化触媒２０から流出する排気ガスの空燃比もリッチ空燃比となっている。下流側空燃比センサ４１には素子割れの異常が生じているため、時刻ｔ0以降、上流側排気浄化触媒２０から流出する排気ガスの空燃比がリッチ空燃比であっても、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン空燃比となっている。したがって、時刻ｔ0以降、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン空燃比に維持される。
【０１４７】
この結果、時刻ｔ0以降、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下にならないことから、空燃比補正量ＡＦＣはリッチ設定補正量ＡＦＣｒｉｃｈのまま維持される。これに伴って、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎもリーン空燃比のまま維持される。このような状態がリーン空燃比維持判定時間Ｔｌｅａｎ以上に亘って継続すると、上述したリーン張付き学習制御により学習値ｓｆｂｇが減少せしめられる。したがって、図１４に示した例においても、時刻ｔ0からリーン空燃比維持判定時間Ｔｌｅａｎが経過した時刻ｔ1において、学習値ｓｆｂｇが減少せしめられる。この結果、制御中心空燃比ＡＦＲが低下せしめられ、上流側排気浄化触媒２０に流入する排気ガスの空燃比が低下（リッチ側に変化）せしめられる。
【０１４８】
図１３に示したように、下流側空燃比センサ４１に素子割れの異常が生じている場合、下流側空燃比センサ４１周りの排気ガスの空燃比がリッチ空燃比であるときにはそのリッチ度合いが大きくなるほど出力空燃比ＡＦｄｗｎのリーン度合いが大きくなる。したがって、時刻ｔ1において制御中心空燃比ＡＦＲがリッチ側にシフトされて上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化すると、これに伴って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン側に変化する。
【０１４９】
また、時刻ｔ1以降も空燃比補正量ＡＦＣはリッチ設定補正量ＡＦＣｒｉｃｈのまま維持され、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎもリーン空燃比のまま維持される。したがって、時刻ｔ1からリーン空燃比維持判定時間Ｔｌｅａｎが経過した時刻ｔ2においても学習値ｓｆｂｇが減少せしめられ、制御中心空燃比ＡＦＲが低下せしめられる。これに伴って、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン側に変化する。
【０１５０】
図１１を参照して説明したように、上流側空燃比センサ４０の出力空燃比にずれが生じている場合には、制御中心空燃比ＡＦＲを低下させると、すなわち上流側排気浄化触媒２０に流入する排気ガスの空燃比をリッチ側に変化させると、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎもリッチ側に変化する。これに対して、下流側空燃比センサ４１に素子割れの異常が生じている場合には、制御中心空燃比ＡＦＲを低下させると、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン側に変化する。そこで、本実施形態では、このような応答態様の違いを利用して、下流側空燃比センサ４１の素子割れ異常を適切に診断するようにしている。
【０１５１】
＜下流側空燃比センサの異常診断＞
本実施形態では、まず、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ空燃比にされているときに、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが所定の判定時間以上に亘ってリーン判定空燃比ＡＦｌｅａｎ以上に維持されている場合には、上流側排気浄化触媒２０に流入する排気ガスの空燃比をそれまでの空燃比よりもリッチ側の空燃比に変化させる空燃比リッチ化制御が行われる。この空燃比リッチ化制御は、上流側排気浄化触媒２０に流入する排気ガスの空燃比をそれまでの空燃比よりもリッチ側の空燃比に変化させるように学習値ｓｆｂｇを更新するリーン張付き学習制御であってもよい。
【０１５２】
そして、空燃比リッチ化制御により上流側排気浄化触媒２０に流入する排気ガスの空燃比をリッチ側の空燃比に変化させたときに、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン側に変化した場合には、下流側空燃比センサ４１に異常が生じていると判定するようにしている。加えて、本実施形態では、下流側空燃比センサに異常が生じていると判定されたときには、リーン張付き学習制御によって更新された学習値を更新前の値に戻すようにしている。
【０１５３】
図１５は、下流側空燃比センサ４１に素子割れの異常が生じている場合における制御中心空燃比ＡＦＲ等の図１４と同様なタイムチャートである。図１４に示した例と同様に、空燃比補正量ＡＦＣはリッチ設定補正量ＡＦＣｒｉｃｈに維持されており、また、時刻ｔ1において、リーン張付き学習制御により学習値ｓｆｂｇが減少せしめられる。この結果、制御中心空燃比ＡＦＲが低下せしめられ、上流側排気浄化触媒２０に流入する排気ガスの空燃比が低下せしめられる。
【０１５４】
このとき、下流側空燃比センサ４１には素子割れ異常が生じていることから、時刻ｔ1において上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化すると、これに伴って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン側に変化する。したがって、時刻ｔ1以降、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはそれまでの空燃比よりリーン側の空燃比となる。
【０１５５】
その後、本実施形態では、時刻ｔ1からリーン空燃比維持判定時間Ｔｌｅａｎが経過した時刻ｔ2において、下流側空燃比センサ４１の異常診断が行われる。具体的には、図１５に示したように時刻ｔ2における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが時刻ｔ1又はそれ以前における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎよりもリーン側である場合には、下流側空燃比センサ４１に素子割れの異常が生じていると判定する。すなわち、時刻ｔ1において上流側排気浄化触媒２０に流入する排気ガスの空燃比をリッチ側に変化させたときに下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン側に変化したときには、下流側空燃比センサ４１に素子割れの異常が生じていると判定する。図１５に示した例では、時刻ｔ2において素子割れの異常が発生していると判定され、このため異常判定フラグがＯＮにセットされる。
【０１５６】
一方、図１５に示した例とは反対に、時刻ｔ2における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが時刻ｔ1又はそれ以前における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎと同一又はそれよりもリッチ側である場合には、下流側空燃比センサ４１には素子割れの異常は生じていないと判定する。すなわち、時刻ｔ1において上流側排気浄化触媒２０に流入する排気ガスの空燃比をリッチ側に変化させたときに下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが変化しないか又はリッチ側に変化したときには、下流側空燃比センサ４１に素子割れの異常が生じていないと判定する。これにより、下流側空燃比センサ４１の素子割れの異常を適切に診断することができる。
【０１５７】
ここで、時刻ｔ1からリーン空燃比維持判定時間Ｔｌｅａｎが経過した時刻ｔ2では、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに維持された状態で下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン判定空燃比ＡＦｌｅａｎ以上に維持されている。したがって、本来であれば、時刻ｔ2において、上述したリーン張付き学習制御により学習値ｓｆｂｇが減少せしめられ、制御中心空燃比ＡＦＲが低下せしめられるべきところである。しかしながら、本実施形態では、時刻ｔ2において異常判定フラグがＯＮにセットされると、時刻ｔ2において学習値ｓｆｂｇは減少せしめられるのではなく、時刻ｔ1においてリーン張付き学習制御によって更新された学習値ｓｆｂｇを更新前の値に戻すようにしている。これにより、学習値ｓｆｂｇが過剰に補正されてしまうのを抑制することができる。
【０１５８】
なお、上記実施形態では、時刻ｔ1からリーン空燃比維持判定時間Ｔｌｅａｎが経過した時刻ｔ2において、下流側空燃比センサ４１の素子割れの異常を診断している。しかしながら、時刻ｔ1において制御中心空燃比ＡＦＲをリッチ側に変化させてから下流側空燃比センサ４１が反応し始めるまでの応答遅れ時間経過後であれば、時刻ｔ2以前又は時刻ｔ2以降に下流側空燃比センサ４１の素子割れ異常の診断をするようにしてもよい。同様に、上記実施形態では、時刻ｔ1からリーン空燃比維持判定時間Ｔｌｅａｎが経過した時刻ｔ2において、学習値ｓｆｂｇを更新前の元の値に戻すようにしている。しかしながら、下流側空燃比センサ４１に素子割れ異常が生じているとの判定後であれば、時刻ｔ2以前又は時刻ｔ2以降に学習値ｓｆｂｇを更新前の元の値に戻すようにしてもよい。
【０１５９】
また、上記実施形態では、時刻ｔ1においてリーン張付き学習制御により制御中心空燃比ＡＦＲをそれまでよりもリッチ側に変化させることで上流側排気浄化触媒２０に流入する排気ガスの空燃比をリッチ側の空燃比に変化させ、この変化に対する下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎの反応に基づいて異常診断を行っている。しかしながら、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ空燃比にされているときに、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが所定の判定時間以上に亘ってリーン判定空燃比ＡＦｌｅａｎ以上に維持されている場合には、上流側排気浄化触媒２０に流入する排気ガスの空燃比をそれまでの空燃比よりもリッチ側の空燃比に変化させる空燃比リッチ化制御であれば、上述したリーン張付き学習制御とは異なる制御によって上流側排気浄化触媒２０に流入する排気ガスの空燃比をリッチ側の空燃比に変化させてもよい。したがって、制御中心空燃比の代わりに空燃比補正量や燃料噴射弁１１からの燃料噴射量等を変化させてもよい。或いは、リーン張付き学習制御を行うタイミングとは異なるタイミングで上流側排気浄化触媒２０に流入する排気ガスの空燃比をリッチ側の空燃比に変化させてもよい。
【０１６０】
＜具体的な制御の説明＞
次に、図１６〜図２０を参照して、上記実施形態における制御装置について具体的に説明する。本実施形態における制御装置は、機能ブロック図である図１６に示したように、Ａ１〜Ａ１０の各機能ブロックを含んで構成されている。以下、図１６を参照しながら各機能ブロックについて説明する。これら各機能ブロックＡ１〜Ａ１０における操作は、基本的にＥＣＵ３１において実行される。
【０１６１】
＜燃料噴射量の算出＞
まず、燃料噴射量の算出について説明する。燃料噴射量の算出に当たっては、筒内吸入空気量算出手段Ａ１、基本燃料噴射量算出手段Ａ２、及び燃料噴射量算出手段Ａ３が用いられる。
【０１６２】
筒内吸入空気量算出手段Ａ１は、吸入空気流量Ｇａと、機関回転数ＮＥと、ＥＣＵ３１のＲＯＭ３４に記憶されたマップ又は計算式とに基づいて、各気筒への吸入空気量Ｍｃを算出する。吸入空気流量Ｇａはエアフロメータ３９によって計測され、機関回転数ＮＥはクランク角センサ４４の出力に基づいて算出される。
【０１６３】
基本燃料噴射量算出手段Ａ２は、筒内吸入空気量算出手段Ａ１によって算出された筒内吸入空気量Ｍｃを、目標空燃比ＡＦＴで除算することにより、基本燃料噴射量Ｑｂａｓｅを算出する（Ｑｂａｓｅ＝Ｍｃ／ＡＦＴ）。目標空燃比ＡＦＴは、後述する目標空燃比設定手段Ａ８によって算出される。
【０１６４】
燃料噴射量算出手段Ａ３は、基本燃料噴射量算出手段Ａ２によって算出された基本燃料噴射量Ｑｂａｓｅに、後述するＦ／Ｂ補正量ＤＦｉを加えることで燃料噴射量Ｑｉを算出する（Ｑｉ＝Ｑｂａｓｅ＋ＤＦｉ）。このようにして算出された燃料噴射量Ｑｉの燃料が燃料噴射弁１１から噴射されるように、燃料噴射弁１１に対して噴射指示が行われる。
【０１６５】
＜目標空燃比の算出＞
次に、目標空燃比の算出について説明する。目標空燃比の算出に当たっては、酸素過不足量算出手段Ａ４、空燃比補正量算出手段Ａ５、学習値算出手段Ａ６、制御中心空燃比算出手段Ａ７、目標空燃比設定手段Ａ８が用いられる。
【０１６６】
酸素過不足量算出手段Ａ４は、燃料噴射量算出手段Ａ３によって算出された燃料噴射量Ｑｉ及び上流側空燃比センサ４０の出力空燃比ＡＦｕｐに基づいて積算酸素過不足量ΣＯＥＤを算出する。酸素過不足量算出手段Ａ４は、例えば、上流側空燃比センサ４０の出力空燃比ＡＦｕｐと制御中心空燃比ＡＦＲとの差分に燃料噴射量Ｑｉを乗算すると共に、求めた値を積算することによって積算酸素過不足量ΣＯＥＤを算出する。
【０１６７】
空燃比補正量算出手段Ａ５では、酸素過不足量算出手段Ａ４によって算出された積算酸素過不足量ΣＯＥＤと、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎとに基づいて、空燃比補正量ＡＦＣが算出される。具体的には、図１７に示したフローチャートに基づいて空燃比補正量ＡＦＣが算出される。
【０１６８】
学習値算出手段Ａ６では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ、酸素過不足量算出手段Ａ４によって算出された積算酸素過不足量ΣＯＥＤ等に基づいて学習値ｓｆｂｇが算出される。具体的には、図１８に示した通常学習制御のフローチャート、図１９に示した張付き学習制御のフローチャート及び図２０に示した異常診断・学習値設定制御に基づいて学習値ｓｆｂｇが算出される。このようにして算出された学習値ｓｆｂｇは、ＥＣＵ３１のＲＡＭ３３のうち、内燃機関を搭載した車両のイグニッションキーがオフにされても消去されない記憶媒体に保存される。
【０１６９】
制御中心空燃比算出手段Ａ７では、基本制御中心空燃比ＡＦＲｂａｓｅ（例えば、理論空燃比）と、学習値算出手段Ａ６によって算出された学習値ｓｆｂｇとに基づいて制御中心空燃比ＡＦＲが算出される。具体的には、上述した式（３）に示したように、基本制御中心空燃比ＡＦＲｂａｓｅに学習値ｓｆｂｇを加算することによって制御中心空燃比ＡＦＲが算出される。
【０１７０】
目標空燃比設定手段Ａ８は、制御中心空燃比算出手段Ａ７によって算出された制御中心空燃比ＡＦＲに、空燃比補正量算出手段Ａ５で算出された空燃比補正量ＡＦＣを加算することで、目標空燃比ＡＦＴを算出する。このようにして算出された目標空燃比ＡＦＴは、基本燃料噴射量算出手段Ａ２及び後述する空燃比偏差算出手段Ａ９に入力される。
【０１７１】
＜Ｆ／Ｂ補正量の算出＞
次に、上流側空燃比センサ４０の出力空燃比ＡＦｕｐに基づいたＦ／Ｂ補正量の算出について説明する。Ｆ／Ｂ補正量の算出に当たっては、空燃比偏差算出手段Ａ９、Ｆ／Ｂ補正量算出手段Ａ１０が用いられる。
【０１７２】
空燃比偏差算出手段Ａ９は、上流側空燃比センサ４０の出力空燃比ＡＦｕｐから目標空燃比設定手段Ａ８によって算出された目標空燃比ＡＦＴを減算することによって空燃比偏差ＤＡＦを算出する（ＤＡＦ＝ＡＦｕｐ−ＡＦＴ）。この空燃比偏差ＤＡＦは、目標空燃比ＡＦＴに対する燃料供給量の過不足を表す値である。
【０１７３】
Ｆ／Ｂ補正量算出手段Ａ１０は、空燃比偏差算出手段Ａ９によって算出された空燃比偏差ＤＡＦを、比例・積分・微分処理（ＰＩＤ処理）することで、下記式（６）に基づいて燃料供給量の過不足を補償するためのＦ／Ｂ補正量ＤＦｉを算出する。このようにして算出されたＦ／Ｂ補正量ＤＦｉは、燃料噴射量算出手段Ａ３に入力される。
ＤＦｉ＝Ｋｐ・ＤＡＦ＋Ｋｉ・ＳＤＡＦ＋Ｋｄ・ＤＤＡＦ      …（６）
【０１７４】
なお、上記式（６）において、Ｋｐは予め設定された比例ゲイン（比例定数）、Ｋｉは予め設定された積分ゲイン（積分定数）、Ｋｄは予め設定された微分ゲイン（微分定数）である。また、ＤＤＡＦは、空燃比偏差ＤＡＦの時間微分値であり、今回更新された空燃比偏差ＤＡＦと前回更新されていた空燃比偏差ＤＡＦとの偏差を更新間隔に対応する時間で除算することで算出される。また、ＳＤＡＦは、空燃比偏差ＤＡＦの時間積分値であり、この時間積分値ＳＤＡＦは前回更新された時間積分値ＳＤＡＦに今回更新された空燃比偏差ＤＡＦを加算することで算出される（ＳＤＡＦ＝ＳＤＡＦ＋ＤＡＦ）。
【０１７５】
＜空燃比補正量設定制御のフローチャート＞
図１７は、空燃比補正量ＡＦＣの算出制御の制御ルーチンを示すフローチャートである。図示した制御ルーチンは一定時間間隔の割り込みによって行われる。
【０１７６】
図１７に示したように、まず、ステップＳ１１において空燃比補正量ＡＦＣの算出条件が成立しているか否かが判定される。空燃比補正量ＡＦＣの算出条件が成立している場合とは、フィードバック制御が行われる通常制御中であること、例えば燃料カット制御中等ではないこと等が挙げられる。ステップＳ１１において目標空燃比の算出条件が成立していると判定された場合には、ステップＳ１２へと進む。
【０１７７】
ステップＳ１２では、リーン設定フラグＦｌｓが０に設定されているか否かが判定される。リーン設定フラグＦｌｓは、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに設定されると１とされ、それ以外の場合には０とされる。ステップＳ１２においてリーン設定フラグＦｌｓが０に設定されている場合には、ステップＳ１３へと進む。ステップＳ１３では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下であるか否かが判定される。下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈよりも大きいと判定された場合にはステップＳ１４へと進む。ステップＳ１４では、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに設定されたまま維持され、制御ルーチンが終了せしめられる。
【０１７８】
一方、上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡが減少して、上流側排気浄化触媒２０から流出する排気ガスの空燃比が低下すると、ステップＳ１３にて下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下であると判定される。この場合には、ステップＳ１５へと進み、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられる。次いで、ステップＳ１６では、リーン設定フラグＦｌｓが１に設定され、制御ルーチンが終了せしめられる。
【０１７９】
リーン設定フラグＦｌｓが１に設定されると、次の制御ルーチンにおいては、ステップＳ１２において、リーン設定フラグＦｌｓが０に設定されていないと判定されて、ステップＳ１７へと進む。ステップＳ１７では、空燃比補正量ＡＦＣがリーン設定補正量ＡＦＣｌｅａｎに切り替えられてからの積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆよりも少ないか否かが判定される。積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆよりも少ないと判定された場合にはステップＳ１８へと進み、空燃比補正量ＡＦＣが引き続きリーン設定補正量ＡＦＣｌｅａｎに設定されたまま維持され、制御ルーチンが終了せしめられる。一方、上流側排気浄化触媒２０の酸素吸蔵量が増大すると、やがてステップＳ１７において積算酸素過不足量ΣＯＥＤが切替基準値ＯＥＤｒｅｆ以上であると判定され、ステップＳ１９へと進む。ステップＳ１９では、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに切り替えられる。次いで、ステップＳ２０では、リーン設定フラグＦｌｓが０にリセットされ、制御ルーチンが終了せしめられる。
【０１８０】
＜通常学習制御のフローチャート＞
図１８は、通常学習制御の制御ルーチンを示すフローチャートである。図示した制御ルーチンは一定時間間隔の割り込みによって行われる。
【０１８１】
図１８に示したように、まず、ステップＳ２１において、学習値ｓｆｂｇの更新条件が成立しているか否かが判定される。更新条件が成立している場合とは、例えば、通常制御中であること等が挙げられる。ステップＳ２１において、学習値ｓｆｂｇの更新条件が成立していると判定された場合には、ステップＳ２２へと進む。ステップＳ２２では、リーンフラグＦｌが０に設定されているか否かが判定される。ステップＳ２２において、リーンフラグＦｌが０に設定されていると判定された場合には、ステップＳ２３へと進む。
【０１８２】
ステップＳ２３では、空燃比補正量ＡＦＣが０よりも大きいか否か、すなわち目標空燃比がリーン空燃比であるか否かが判定される。ステップＳ２３において、空燃比補正量ＡＦＣが０よりも大きいと判定された場合には、ステップＳ２４へと進む。ステップＳ２４では、積算酸素過不足量ΣＯＥＤに現在の酸素過不足量ＯＥＤが加算される。
【０１８３】
その後、目標空燃比がリッチ空燃比へと切り替えられると、次の制御ルーチンではステップＳ２３において空燃比補正量ＡＦＣが０以下であると判定され、ステップＳ２５へと進む。ステップＳ２５では、リーンフラグＦｌが１にセットされ、次いで、ステップＳ２６ではＲｎが現在の積算酸素過不足量ΣＯＥＤの絶対値とされる。次いで、ステップＳ２７では、積算酸素過不足量ΣＯＥＤが０にリセットされ、制御ルーチンが終了せしめられる。
【０１８４】
一方、リーンフラグＦｌが１にセットされると、次の制御ルーチンでは、ステップＳ２２からステップＳ２８へと進む。ステップＳ２８では、空燃比補正量ＡＦＣが０よりも小さいか否か、すなわち目標空燃比がリッチ空燃比であるか否かが判定される。ステップＳ２８において、空燃比補正量ＡＦＣが０よりも小さいと判定された場合にはステップＳ２９へと進む。ステップＳ２９では、積算酸素過不足量ΣＯＥＤに現在の酸素過不足量ＯＥＤが加算される。
【０１８５】
その後、目標空燃比がリーン空燃比へと切り替えられると、次の制御ルーチンではステップＳ２８において空燃比補正量ＡＦＣが０以上であると判定され、ステップＳ３０へと進む。ステップＳ３０では、リーンフラグＦｌが０にセットされ、次いで、ステップＳ３１では、Ｆｎが現在の積算酸素過不足量ΣＯＥＤの絶対値とされる。次いで、ステップＳ３２では、積算酸素過不足量ΣＯＥＤが０にリセットされる。次いで、ステップＳ３３では、ステップＳ２６で算出されたＲｎとステップＳ３１で算出されたＦｎに基づいて学習値ｓｆｂｇが更新され、制御ルーチンが終了せしめられる。
【０１８６】
＜張付き学習制御のフローチャート＞
図１９は、張付き学習制御（理論空燃比張付き制御、リッチ張付き制御及びリーン張付き制御）の制御ルーチンを示すフローチャートである。図示した制御ルーチンは一定時間間隔の割り込みによって行われる。なお、図１９に示した例では、経過時間がリーン空燃比維持判定時間Ｔｌｅａｎ経過する代わりに、積算吸入空気量ΣＧｅが予め定められた所定量ΣＧｅｓｗに達した時に学習値ｓｆｂｇの更新等を行うようにしている。
【０１８７】
図１９に示したように、まず、ステップＳ４１において、リーンフラグＦｌが０に設定されているか否かが判定される。ステップＳ４１において、リーンフラグＦｌが０に設定されていると判定された場合には、ステップＳ４２へと進む。ステップＳ４２では、空燃比補正量ＡＦＣが０よりも大きいか否か、すなわち目標空燃比がリーン空燃比であるか否かが判定される。ステップＳ４２において、空燃比補正量ＡＦＣが０以下であると判定された場合には、ステップＳ４３へと進む。
【０１８８】
ステップＳ４３では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン判定空燃比ＡＦｌｅａｎよりも大きいか否かが判定され、ステップＳ４４では、出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈとリーン判定空燃比ＡＦｌｅａｎとの間の値であるか否かが判定される。ステップＳ４３、Ｓ４４において、出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈよりも小さいと判定された場合、すなわち出力空燃比ＡＦｄｗｎがリッチ空燃比であると判定された場合には制御ルーチンが終了せしめられる。一方、ステップＳ４３、Ｓ４４において、出力空燃比ＡＦｄｗｎがリーン判定空燃比ＡＦｌｅａｎよりも大きいと判定された場合、すなわち出力空燃比がリーン空燃比であると判定された場合には、ステップＳ４５へと進む。
【０１８９】
ステップＳ４５では、積算排気ガス流量ΣＧｅに現在の排気ガス流量Ｇｅを加算したものが新たな積算排気ガス流量ΣＧｅとされる。なお、排気ガス流量Ｇｅは、例えば、エアフロメータ３９の出力等に基づいて算出される。次いで、ステップＳ４６では、ステップＳ４５で算出された積算排気ガス流量ΣＧｅが予め定められた所定量ΣＧｅｓｗ以上であるか否かが判定される。ステップＳ４６において、ΣＧｅがΣＧｅｓｗよりも小さいと判定された場合には制御ルーチンが終了せしめられる。一方、積算排気ガス流量ΣＧｅが増大して、ステップＳ４６において、ΣＧｅがΣＧｅｓｗ以上であると判定された場合には、ステップＳ４７へと進む。ステップＳ４７では、後述する異常診断・学習値設定制御が実行される。次いで、ステップＳ４８では、積算排気ガス流量ΣＧｅが０にリセットされ、制御ルーチンが終了せしめられる。
【０１９０】
一方、ステップＳ４３、Ｓ４４において、出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈとリーン判定空燃比ＡＦｌｅａｎとの間の値であると判定された場合には、ステップＳ４９へと進む。ステップＳ４９では、積算酸素過不足量ΣＯＥＤに現在の酸素過不足量ＯＥＤを加算したものが新たな積算酸素過不足量ΣＯＥＤとされる。次いで、ステップＳ５０では、ステップＳ４９で算出された積算酸素過不足量ΣＯＥＤが予め定められた所定量ＯＥＤｓｗ以上であるか否かが判定される。ステップＳ５０において、ΣＯＥＤがＯＥＤｓｗよりも小さいと判定された場合には制御ルーチンが終了せしめられる。一方、積算酸素過不足量ΣＯＥＤが増大して、ステップＳ５０において、ΣＯＥＤがＯＥＤｓｗ以上であると判定された場合には、ステップＳ５１へと進む。ステップＳ５１では、上述した式（４）を用いて学習値ｓｆｂｇの補正が行われる。
【０１９１】
その後、目標空燃比が切り替えられて、ステップＳ４２において、空燃比補正量ＡＦＣが０よりも大きいと判定された場合には、ステップＳ５２へと進む。ステップＳ５２では、積算排気ガス流量ΣＧｅ及び積算酸素過不足量ΣＯＥＤが０にリセットされる。次いで、ステップＳ５３では、リーンフラグＦｌが１にセットされ、ステップＳ５４では、後述する学習実行フラグＦｇが０にリセットされる。
【０１９２】
リーンフラグＦｌが１にセットされると、次の制御ルーチンでは、ステップＳ４１からステップＳ５５へと進む。ステップＳ５５では、空燃比補正量ＡＦＣが０よりも小さいか否か、すなわち目標空燃比がリッチ空燃比であるか否かが判定される。ステップＳ５５において、空燃比補正量ＡＦＣが０以上であると判定された場合には、ステップＳ５６へと進む。
【０１９３】
ステップＳ５６では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈよりも小さいか否かが判定される。ステップＳ５６において、出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以上であると判定された場合、すなわち出力空燃比がリーン空燃比であると判定された場合には制御ルーチンが終了せしめられる。一方、ステップＳ５６において、出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈよりも小さいと判定された場合、すなわち出力空燃比がリッチ空燃比であると判定された場合には、ステップＳ５７へと進む。
【０１９４】
ステップＳ５７では、積算排気ガス流量ΣＧｅに現在の排気ガス流量Ｇｅを加算したものが新たな積算排気ガス流量ΣＧｅとされる。次いで、ステップＳ５８では、ステップＳ５５で算出された積算排気ガス流量ΣＧｅが予め定められた所定量ΣＧｅｓｗ以上であるか否かが判定される。ステップＳ５８において、ΣＧｅがΣＧｅｓｗよりも小さいと判定された場合には制御ルーチンが終了せしめられる。一方、積算排気ガス流量ΣＧｅが増大して、ステップＳ５８において、ΣＧｅがΣＧｅｓｗ以上であると判定された場合には、ステップＳ５９へと進む。ステップＳ５９では、上述した式（５）を用いて学習値ｓｆｂｇの補正が行われる。次いで、ステップＳ６０では、積算排気ガス流量ΣＧｅが０にリセットされ、制御ルーチンが終了せしめられる。
【０１９５】
その後、目標空燃比が切り替えられて、ステップＳ５５において、空燃比補正量ＡＦＣが０よりも小さいと判定された場合には、ステップＳ６１へと進む。ステップＳ６１では、積算排気ガス流量ΣＧｅ及び積算酸素過不足量ΣＯＥＤが０にリセットされる。次いで、ステップＳ６２は、リーンフラグＦｌが０にセットされ、制御ルーチンが終了せしめられる。
【０１９６】
＜異常診断・学習値設定制御のフローチャート＞
図２０は、図１９のステップＳ４７で実行される異常診断・学習値設定制御の制御ルーチンを示すフローチャートである。図示した制御ルーチンは、図１９のステップＳ４７が実行される毎に実行される。
【０１９７】
まず、ステップＳ７１において、学習実行フラグＦｇが１であるか否かが判定される。学習実行フラグは、空燃比補正量ＡＦＣがリッチ設定補正量ＡＦＣｒｉｃｈに設定されてからリーン張付き学習制御により学習値ｓｆｂｇが更新されたことがあるときに１にセットされ、それ以外の場合には０にセットされるフラグである。ステップＳ７１において、学習実行フラグＦｇが１でないと判定された場合には、ステップＳ７２へと進む。ステップＳ７２では、学習値ｓｆｂｇが上述した式（５）に基づいて減少せしめられる。次いで、ステップＳ７３では、学習実行フラグＦｇが１にセットされ、制御ルーチンが終了せしめられる。
【０１９８】
その後、図１９のステップＳ５４で学習実行フラグＦｇが０にリセットされることなく、再度、ステップＳ４７の異常診断・学習値設定制御が実行された場合には、ステップＳ７１において学習実行フラグＦｇが１にセットされていると判定され、ステップＳ７４へと進む。ステップＳ７４では、前回、ステップＳ７２で学習値を減少させてからの下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎの変化量ΔＡＦｄｗｎが０よりも大きいか否か、すなわち出力空燃比ＡＦｄｗｎがリーン側に変化したか否かが判定される。ステップＳ７４において、変化量ΔＡＦｄｗｎが０よりも大きい場合には、出力空燃比ＡＦｄｗｎがリーン側に変化していることになるため、ステップＳ７５に進み、下流側空燃比センサ４１の異常判定フラグが１（ＯＮ）にセットされる。次いで、ステップＳ７６では、ステップＳ７２における学習値ｓｆｂｇの減少分だけ学習値ｓｆｂｇが増大せしめられ、制御ルーチンが終了せしめられる。
【０１９９】
一方、ステップＳ７４において変化量ΔＡＦｄｗｎが０以下であると判定された場合には、出力空燃比ＡＦｄｗｎが変化していないか又はリッチ側に変化していることになる。このため、ステップＳ７７へ進み、下流側空燃比センサ４１の正常判定フラグＦｎが１（ＯＮ）にセットされる。次いで、ステップＳ７８では、上述した式（５）に基づいて減少せしめられ、制御ルーチンが終了せしめられる。
【０２００】
＜第二実施形態＞
次に、図２１〜図２４を参照して、本発明の第二実施形態に係る排気浄化装置について説明する。第二実施形態に係る排気浄化装置における構成及び制御は、以下で説明する点を除いて、基本的に第一実施形態に係る排気浄化装置における構成及び制御と同様である。
【０２０１】
本実施形態では、学習値ｓｆｂｇは、リッチ側ガード値Ｇｒｉｃｈ以上であってリーン側ガード値Ｇｌｅａｎ以下になるように設定される。したがって、例えば、上述した式（２）、式（４）及び式（５）によって算出された学習値ｓｆｂｇがリッチ側ガード値Ｇｒｉｃｈよりも小さい値になった場合には、学習値ｓｆｂｇはリッチ側ガード値Ｇｒｉｃｈに設定される。同様に、上述した式（２）、式（４）及び式（５）によって算出された学習値ｓｆｂｇがリーン側ガード値Ｇｌｅａｎよりも大きい値になった場合には、学習値ｓｆｂｇはリーン側ガード値Ｇｌｅａｎに設定される。このように学習値ｓｆｂｇを両ガード値Ｇｒｉｃｈ、Ｇｌｅａｎ間の値に制限することにより、制御装置等に何らかの異常が発生したときに学習値ｓｆｂｇの絶対値が過剰な値に設定されるのを抑制することができる。
【０２０２】
そして、本実施形態では、下流側空燃比センサ４１に異常が生じていると判定されたときには、学習値ｓｆｂｇのリッチ側ガード値Ｇｒｉｃｈの絶対値を小さくするガード値制限制御を行うようにしている。
【０２０３】
図２１は、下流側空燃比センサ４１に素子割れの異常が生じている場合における制御中心空燃比ＡＦＲ等の図１４と同様なタイムチャートである。図１４に示した例と同様に、空燃比補正量ＡＦＣはリッチ設定補正量ＡＦＣｒｉｃｈに維持されており、また、時刻ｔ1においてリーン張付き学習制御により学習値ｓｆｂｇが減少せしめられる。下流側空燃比センサ４１には素子割れの異常が生じていることから、これに伴って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン側に変化する。その結果、図１５に示した例と同様に、時刻ｔ1からリーン空燃比維持判定時間Ｔｌｅａｎが経過した時刻ｔ2において下流側空燃比センサ４１に素子割れの異常が発生していると判定される。
【０２０４】
本実施形態では、時刻ｔ2以前において、学習値ｓｆｂｇのリッチ側ガード値Ｇｒｉｃｈが第１リッチ側ガード値Ｇｒｉｃｈ1に設定されている。この第１リッチ側ガード値Ｇｒｉｃｈ1の絶対値は比較的大きく、何らかの異常があったり特殊な運転状態が続いたりしない限り到達しないような値とされる。同様に、時刻ｔ2以前において、学習値ｓｆｂｇのリーン側ガード値Ｇｌｅａｎが第１リーン側ガード値Ｇｌｅａｎ1に設定されている（図示せず）。この第１リーン側ガード値Ｇｌｅａｎ1の絶対値も比較的大きく、何らかの異常があったり特殊な運転状態が続いたりしない限り到達しないような値とされる。
【０２０５】
図２１に示した例では、時刻ｔ0から時刻ｔ2までの間、学習値ｓｆｂｇはリッチ側ガード値Ｇｒｉｃｈよりも大きな値となっており、よって学習値ｓｆｂｇの絶対値はリッチ側ガード値Ｇｒｉｃｈの絶対値よりも小さな値となっている。したがって、時刻ｔ0から時刻ｔ2までの間は、学習値ｓｆｂｇはリッチ側ガード値Ｇｒｉｃｈに制限されることなく上述した式（２）、式（４）及び式（５）等によって算出されたままの値とされる。
【０２０６】
一方、本実施形態では、時刻ｔ2において、下流側空燃比センサ４１に異常が生じていると判定されると、リッチ側ガード値Ｇｒｉｃｈが第２リッチ側ガード値Ｇｒｉｃｈ2に設定される。この第２リッチ側ガード値Ｇｒｉｃｈ2の絶対値は、第１リッチ側ガード値Ｇｒｉｃｈ1の絶対値よりも小さい。すなわち、本実施形態では、下流側空燃比センサ４１に異常が生じていると判定されると、学習値ｓｆｂｇのリッチ側ガード値Ｇｒｉｃｈの絶対値を小さくするガード値制限制御が行われる。
【０２０７】
加えて、本実施形態では、時刻ｔ2において、下流側空燃比センサ４１に異常が生じていると判定されたときには、リーン側ガード値Ｇｌｅａｎを第２リーン側ガード値Ｇｌｅａｎ2に設定するようにしてもよい。この第２リーン側ガード値Ｇｌｅａｎ2の絶対値は、第１リーン側ガード値Ｇｌｅａｎ1の絶対値よりも小さい。したがって、本実施形態では、下流側空燃比センサ４１に異常が生じていると判定されると、学習値ｓｆｂｇのリーン側ガード値Ｇｌｅａｎの絶対値を小さくするガード値制限制御が行われてもよい。
【０２０８】
上述した第一実施形態と同様に、時刻ｔ2以降、学習値ｓｆｂｇは時刻ｔ1以前の値と同一となるように算出される（図２１中の破線）。しかしながら、このようにして算出された学習値ｓｆｂｇは、時刻ｔ2において増大されたリッチ側ガード値Ｇｒｉｃｈよりも小さい。この結果、図２１に実線で示したように、時刻ｔ2以降、学習値ｓｆｂｇはリッチ側ガード値Ｇｒｉｃｈと同一の値に設定されることになる。
【０２０９】
本実施形態によれば、下流側空燃比センサ４１に素子割れの異常が生じているときにリッチ側ガード値Ｇｒｉｃｈの絶対値を小さくすることにより、学習値ｓｆｂｇが誤って過剰にリッチ側に更新されてしまうのを抑制することができる。
【０２１０】
ところで、例えば特殊な機関運転状態において下流側空燃比センサ４１の異常診断が行われた場合等に、下流側空燃比センサ４１に素子割れが生じているとの判定に誤りが生じる場合がある。このため、異常判定から或る程度の期間を開けて下流側空燃比センサ４１に素子割れの異常が本当に生じているか否かについて定期的に確認作業をすることが必要である。
【０２１１】
そこで、本実施形態では、ガード値制限制御によりリッチ側ガード値Ｇｒｉｃｈの絶対値を小さくした場合であっても、上流側排気浄化触媒２０に流入する排気ガスの空燃比が上記絶対値の小さくされたリッチ側ガード値Ｇｒｉｃｈに対応する空燃比を超えてリッチ側に変化するように学習値ｓｆｂｇをリッチ側ガード値Ｇｒｉｃｈを超えて減少させる異常確認制御を定期的に行う。すなわち、異常確認制御では、上流側排気浄化触媒２０に流入する排気ガスの空燃比が上記絶対値の小さくされたリッチ側ガード値Ｇｒｉｃｈに対応する空燃比を超えてリッチ側に変化するように学習値ｓｆｂｇのリッチ側絶対値をリッチ側ガード値Ｇｒｉｃｈの絶対値を超えて増大せしめられる。
【０２１２】
図２２を参照して、学習値ｓｆｂｇのリッチ側ガード値Ｇｒｉｃｈが第２リッチ側ガード値Ｇｒｉｃｈ2に設定された後における学習値等の制御について説明する。図２２は、制御中心空燃比ＡＦＲ等の図２１と同様なタイムチャートである。図２２に示した例では、時刻ｔ0以前において、ガード値制限制御によりリッチ側ガード値Ｇｒｉｃｈが第２リッチ側ガード値Ｇｒｉｃｈ2に設定されており、よってその絶対値が小さくされている。
【０２１３】
図２２に示した例では、時刻ｔ1は、ガード値制限制御によってリッチ側ガード値Ｇｒｉｃｈが第２リッチ側ガード値Ｇｒｉｃｈ2に設定されたときから、または前回の異常確認制御が完了したときから予め定められた時間（異常確認時間間隔）が経過した時刻となっている。特に、図２２に示した例では、リッチ側ガード値Ｇｒｉｃｈが第２リッチ側ガード値Ｇｒｉｃｈ2に設定されたとき等から異常確認時間間隔に亘って、空燃比補正量ＡＦＣはリッチ設定補正量ＡＦＣｒｉｃｈに設定され、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン判定空燃比ＡＦｌｅａｎ以上となっている。
【０２１４】
本実施形態では、時刻ｔ1において、異常確認制御により、学習値ｓｆｂｇが一時的にリッチ側ガード値Ｇｒｉｃｈを超えて減少せしめられる。すなわち、学習値ｓｆｂｇのリッチ側絶対値がリッチ側ガード値Ｇｒｉｃｈの絶対値を超えて増大せしめられる。これにより、時刻ｔ1において制御中心空燃比ＡＦＲがリッチ側に変更され、この結果、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化する。上流側排気浄化触媒２０の酸素吸蔵量ＯＳＡはほぼゼロになっていることから、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ側に変化すると、上流側排気浄化触媒２０から流出する排気ガスの空燃比もリッチ側に変化する。
【０２１５】
上述したように、下流側空燃比センサ４１に素子割れの異常が生じている場合には下流側空燃比センサ４１周りの排気ガスの空燃比のリッチ度合いが大きくなると、下流側空燃比センサ４１の出力空燃比のリーン度合いが大きくなる。このため、図２２に示した例では、時刻ｔ1において学習値ｓｆｂｇが減少せしめられると、これに伴って下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが上昇する。
【０２１６】
その後、本実施形態では、時刻ｔ1からリーン空燃比維持判定時間Ｔｌｅａｎが経過した時刻ｔ2において、下流側空燃比センサ４１の異常の確認が行われる。具体的には、図２２に示したように時刻ｔ2における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが時刻ｔ1又はそれ以前における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎよりもリーン側である場合には、下流側空燃比センサ４１に素子割れの異常が生じていると判定する。すなわち、時刻ｔ1において上流側排気浄化触媒２０に流入する排気ガスの空燃比をリッチ側に変化させたときに下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン側に変化したときには、下流側空燃比センサ４１に素子割れの異常が生じていると判定する。図２２に示した例では、時刻ｔ2において素子割れの異常が発生していると判定され、このため異常判定フラグがＯＮのまま継続される。加えて、時刻ｔ2では、学習値ｓｆｂｇが時刻ｔ1以前の値に戻される。
【０２１７】
一方、図２２に示した例とは反対に、時刻ｔ2における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが時刻ｔ1又はそれ以前における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎと同一又はそれよりもリッチ側である場合には、下流側空燃比センサ４１には素子割れの異常は生じていないと判定する。すなわち、時刻ｔ1において上流側排気浄化触媒２０に流入する排気ガスの空燃比をリッチ側に変化させたときに下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが変化しないか又はリッチ側に変化したときには、下流側空燃比センサ４１に素子割れの異常が生じていないと判定する。この場合、ＯＮになっていた異常判定フラグがＯＦＦにリセットされる。この場合においても、時刻ｔ2では、学習値ｓｆｂｇが時刻ｔ1以前の値に戻される。
【０２１８】
本実施形態では、このようにガード値制限制御によりリッチ側ガード値Ｇｒｉｃｈが大きくされた場合に、学習値ｓｆｂｇをリッチ側ガード値Ｇｒｉｃｈよりも小さな値に設定する異常確認制御を定期的に行うようにしている。これにより、下流側空燃比センサ４１に異常があると誤って判定された場合であっても、その誤判定を適切に取り消すことができる。
【０２１９】
なお、上記実施形態では、ガード値制限制御によってリッチ側ガード値Ｇｒｉｃｈが第２リッチ側ガード値Ｇｒｉｃｈ2に設定されたときから又は前回の異常確認制御が完了したときから、予め定められた時間（異常確認時間間隔）が経過したとき（時刻ｔ1）において異常確認制御が開始されている。しかしながら、異常確認制御は、定期的に実行されていれば、必ずしもこのタイミングで行われる必要はない。例えば、図２２に示したように、ガード値制限制御によってリッチ側ガード値Ｇｒｉｃｈが第２リッチ側ガード値Ｇｒｉｃｈ2に設定されたときから又は前回の異常確認制御が完了したときから、積算排気ガス流量ΣＧｅｓｗが予め定められて所定量になったときに実行するようにしてもよい。
【０２２０】
＜学習値修正制御のフローチャート＞
図２３は、ガード値に基づいて学習値ｓｆｂｇの修正を行う学習値修正制御の制御ルーチンを示すフローチャートである。図示した制御ルーチンは一定時間間隔の割り込みによって行われる。
【０２２１】
図２３に示したように、まずステップＳ８１では、異常判定フラグＦａが０にセットされているか否か、すなわち下流側空燃比センサ４１が異常と判定されていないか否かが判定される。ステップＳ８１において、異常判定フラグＦａが０にセットされていると判定された場合にはステップＳ８２へと進む。ステップＳ８２では、リッチ側ガード値Ｇｒｉｃｈが第１リッチ側ガード値Ｇｒｉｃｈ1に設定され、ステップＳ８５へと進む。
【０２２２】
一方、ステップＳ８１において異常判定フラグＦａが０にセットされていないと判定された場合、すなわち下流側空燃比センサ４１に異常が発生していると判定された場合にはステップＳ８３へと進む。ステップＳ８３では、リッチ側ガード値Ｇｒｉｃｈが第２リッチ側ガード値Ｇｒｉｃｈ2（｜Ｇｒｉｃｈ2｜＜｜Ｇｒｉｃｈ1｜）に設定され、ステップＳ８４へと進む。
【０２２３】
ステップＳ８４では、異常確認フラグＦｃが０にセットされているか否かが判定される。異常確認フラグＦｃは、後述する異常確認制御により学習値ｓｆｂｇを減少させるべきときには１にセットされ、それ以外のときには０にセットされるフラグである。異常確認フラグＦｃが１にセットされているときには、学習値ｓｆｂｇがガード値内に制限されないため、ステップＳ８５〜Ｓ８８がスキップされ、制御ルーチンが終了せしめられる。一方、ステップＳ８４において、異常確認フラグＦｃが０にセットされているときには、ステップＳ８５へと進む。
【０２２４】
ステップＳ８５では、現在の学習値ｓｆｂｇがリッチ側ガード値Ｇｒｉｃｈよりも小さいか否かが判定される。ステップＳ８５において、現在の学習値ｓｆｂｇがリッチ側ガード値Ｇｒｉｃｈ以上であると判定された場合には、ステップＳ８６がスキップされる。一方、ステップＳ８５において、現在の学習値ｓｆｂｇがリッチ側ガード値Ｇｒｉｃｈよりも小さいと判定された場合にはステップＳ８６へと進む。ステップＳ８６では、学習値ｓｆｂｇの値がリッチ側ガード値Ｇｒｉｃｈと同一の値に変更される。
【０２２５】
次いで、ステップＳ８７では、現在の学習値ｓｆｂｇがリーン側ガード値Ｇｌｅａｎよりも大きいか否かが判定される。ステップＳ８７において、現在の学習値ｓｆｂｇがリーン側ガード値Ｇｌｅａｎ以下であると判定された場合には、ステップＳ８８がスキップされる。一方、ステップＳ８７において、現在の学習値ｓｆｂｇがリーン側ガード値Ｇｌｅａｎよりも大きいと判定された場合にはステップＳ８８へと進む。ステップＳ８８では、学習値ｓｆｂｇの値がリーン側ガード値Ｇｌｅａｎと同一の値に変更され、制御ルーチンが終了せしめられる。
【０２２６】
＜異常確認制御＞
図２４は、下流側空燃比センサ４１に素子割れの異常があると判定されている場合に、その異常が実際に存在するかを定期的に確認する異常確認制御の制御ルーチンを示すフローチャートである。図示した制御ルーチンは、一定時間間隔の割り込みによって行われる。
【０２２７】
まず、ステップＳ９１では、異常確認フラグＦｃが０に設定されているか否かが判定される。異常確認フラグＦｃが０に設定されていると判定された場合には、ステップＳ９２へと進む。ステップＳ９２では、異常判定フラグＦａが１に設定されているか否か、すなわち下流側空燃比センサ４１に素子割れの異常があると判定されているか否かが判定される。異常判定フラグＦａが０に設定されていると判定された場合には、制御ルーチンが終了せしめられる。一方、ステップＳ９２において、異常判定フラグＦａが１に設定されていると判定された場合には、ステップＳ９３へと進む。
【０２２８】
ステップＳ９３では、ガード値制限制御によってリッチ側ガード値Ｇｒｉｃｈが第２リッチ側ガード値Ｇｒｉｃｈ2に設定されたときから又は前回の異常確認制御が完了したときからの経過時間ｔが予め定められた異常確認時間間隔ｔｒｅｆ以上であるか否かが判定される。経過時間ｔが異常確認時間間隔ｔｒｅｆよりも短いと判定された場合には制御ルーチンが終了せしめられる。一方、ステップＳ９３において経過時間ｔが異常確認時間間隔ｔｒｅｆ以上であると判定された場合にはステップＳ９４へと進む。ステップＳ９４では、学習値ｓｆｂｇの値が所定の負の値ｓｆｂｇｌａｒに設定される。なお、所定の値ｓｆｂｇｌａｒの絶対値は、リッチ側ガード値Ｇｒｉｃｈの絶対値よりも大きい値とされる（｜ｓｆｂｇｌａｒ｜＞｜Ｇｒｉｃｈ｜）。次いで、ステップＳ９５では、異常確認フラグＦｃが１にセットされる。
【０２２９】
異常確認フラグＦｃが１にセットされると、次の制御ルーチンではステップＳ９１からステップＳ９６へと進む。ステップＳ９６では、異常確認フラグＦｃが１にセットされてから、図２０に示した異常診断・学習値設定制御において異常判定フラグＦａの更新が行われたか又は正常判定フラグＦｎが１にセットされたか否か、すなわち判定フラグの更新が行われたか否かが判定される。ステップＳ９６において、判定フラグの更新が行われていないと判定された場合には、制御ルーチンが終了せしめられる。一方、ステップＳ９６において、判定フラグの更新が行われたと判定された場合にはステップＳ９７へと進む。ステップＳ９７では、異常確認フラグＦｃが０にリセットされ、制御ルーチンが終了せしめられる。
【０２３０】
＜第三実施形態＞
次に、図２５及び図２６を参照して、本発明の第三実施形態に係る排気浄化装置について説明する。第三実施形態に係る排気浄化装置における構成及び制御は、以下で説明する点を除いて、基本的に第一実施形態又は第二実施形態に係る排気浄化装置における構成及び制御と同様である。
【０２３１】
ところで、図１５に示した第一実施形態では、時刻ｔ1において学習値ｓｆｂｇを減少させたときに下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン側に変化するか否かで下流側空燃比センサ４１の異常診断を行っている。しかしながら、下流側空燃比センサ４１に素子割れの異常が生じていない場合であっても、学習値ｓｆｂｇを減少させたときに機関運転状態が偶然急激に変化して、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン側に変化してしまう場合がある。
【０２３２】
そこで、本実施形態では、第一実施形態と同様に、まず、上流側排気浄化触媒２０に流入する排気ガスの空燃比がリッチ空燃比とされているときに、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが所定の判定時間以上に亘ってリーン判定空燃比ＡＦｌｅａｎ以上に維持されている場合に、上流側排気浄化触媒２０に流入する排気ガスの空燃比をそれまでの空燃比よりもリッチ側の空燃比に変化させる空燃比リッチ化制御が行われる。加えて、本実施形態では、空燃比リッチ化制御により上流側排気浄化触媒２０に流入する排気ガスの空燃比をリッチ側に変化させたときに、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン側に変化した場合に、上流側排気浄化触媒２０に流入する排気ガスの空燃比を理論空燃比よりもリッチであってそれまでの空燃比よりもリーン側の空燃比に変化させる空燃比リーン化制御が行われる。この空燃比リーン化制御は、上流側排気浄化触媒２０に流入する排気ガスの空燃比を理論空燃比よりもリッチであってそれまでの空燃比よりもリーン側の空燃比に変化させるように学習値ｓｆｂｇを更新する学習値戻し制御であってもよい。
【０２３３】
そして、空燃比リーン化制御により上流側排気浄化触媒２０に流入する排気ガスの空燃比をリーン側の空燃比に変化させたときに、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ側に変化した場合には、下流側空燃比センサ４１に異常が生じていると判定するようにしている。
【０２３４】
図２５は、下流側空燃比センサ４１に素子割れの異常が生じている場合における制御中心空燃比ＡＦＲ等の図１５と同様なタイムチャートである。図１５に示した例と同様に、空燃比補正量ＡＦＣはリッチ設定補正量ＡＦＣｒｉｃｈに維持されており、また、時刻ｔ1において、リーン張付き学習制御により学習値ｓｆｂｇが減少せしめられる。このとき、下流側空燃比センサ４１には素子割れの異常が生じていることから、時刻ｔ1において学習値ｓｆｂｇが減少せしめられると、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはリーン側に変化する。したがって、時刻ｔ1以降、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎはそれまでの空燃比よりもリーン側の空燃比となる。
【０２３５】
その後、本実施形態では、時刻ｔ1からリーン空燃比維持判定時間Ｔｌｅａｎが経過した時刻ｔ2において、時刻ｔ1にて学習値ｓｆｂｇを減少させたことにより下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン側に変化したか否かが判定される。図２５に示した例では、時刻ｔ2においては、時刻ｔ1以前に比べて、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン側に変化している。このため、本実施形態では、時刻ｔ2において、学習値ｓｆｂｇが増大させる学習値戻し制御が行われる。
【０２３６】
学習値戻し制御では、学習値ｓｆｂｇは０よりも少ない範囲内で増大せしめられる。すなわち、時刻ｔ2においては、学習値ｓｆｂｇの絶対値は減少せしめられるが、その正負が逆転するまでの変更はされない。したがって、例えば、学習値ｓｆｂｇは時刻ｔ1において減少せしめられた量と同じ量だけ増大せしめられる。この結果、時刻ｔ2においては、上流側排気浄化触媒２０に流入する排気ガスの空燃比はリッチ空燃比に維持されつつそれまでの空燃比よりもリーン側の空燃比に変化せしめられる。
【０２３７】
その後、本実施形態では、時刻ｔ2からリーン空燃比維持判定時間Ｔｌｅａｎが経過した時刻ｔ3において、下流側空燃比センサ４１の異常診断が行われる。具体的には、図２５に示したように、時刻ｔ3における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが時刻ｔ2又はそれ以前における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎよりもリッチ側である場合には、下流側空燃比センサ４１に素子割れの異常が生じていると判定する。すなわち、時刻ｔ2において上流側排気浄化触媒２０に流入する排気ガスの空燃比をリーン側に変化させたときに下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ側に変化したときには、下流側空燃比センサ４１に素子割れの異常が生じていると判定する。図１５に示した例では、時刻ｔ3において素子割れの異常が発生していると判定され、このため異常判定フラグがＯＮにセットされる。
【０２３８】
本実施形態では、異常判定フラグがＯＮにセットされると、学習値ｓｆｂｇの算出に用いられるゲイン（式（２）のゲインｋ1、式（４）のゲインｋ2、式（５）のゲインｋ3）が低下せしめられる。したがって、例えば、ゲインｋ1を低下させることにより、積算酸素過剰量Ｒと積算酸素不足量Ｆとの差に対して学習値ｓｆｂｇを変化させる量の割合が小さくされる。なお、本実施形態では、積算酸素過剰量Ｒが積算酸素不足量Ｆよりも少ない場合（すなわち、過不足量誤差ΔΣＯＥＤが負の値の場合）及びその逆の場合（すなわち、過不足量誤差ΣＯＥＤが正の値の場合）の両方についてゲインｋ1を小さくしている。しかしながら、積算酸素過剰量Ｒが積算酸素不足量Ｆよりも少ない場合のみ又はその逆の場合のみ、ゲインｋ1を小さくするようにしてもよい（すなわち、過不足量誤差ΣＯＥＤの正負に応じて、ゲインｋ1を変更するようにしてもよい）。また、ゲインｋ2を低下させることにより、理論空燃比張付き学習制御における学習値ｓｆｂｇの補正量が小さくされる。加えて、ゲインｋ3を低下させることにより、リッチ張付き学習制御及びリーン張付き学習制御における学習値ｓｆｂｇの補正量が小さくされる。
【０２３９】
このように、下流側空燃比センサ４１に素子割れの異常が発生しているときに、各種学習制御におけるゲインを小さくすることにより、学習値ｓｆｂｇが誤って大きく補正されてしまうことを抑制することができる。
【０２４０】
一方、図２５に示した例とは反対に、時刻ｔ3における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが時刻ｔ2又はそれ以前における下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎと同一又はそれよりもリーン側である場合には、下流側空燃比センサ４１には素子割れの異常は生じていないと判定する。すなわち、時刻ｔ2において上流側排気浄化触媒２０に流入する排気ガスの空燃比をリーン側に変化させたときに下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎが変化しないか又はリーン側に変化したときには、下流側空燃比センサ４１に素子割れの異常が生じていないと判定する。これにより、下流側空燃比センサ４１の素子割れの異常を適切に診断することができる。
【０２４１】
なお、上記実施形態では、時刻ｔ2からリーン空燃比維持判定時間Ｔｌｅａｎが経過した時刻ｔ3において、下流側空燃比センサ４１の素子割れの異常を診断している。しかしながら、時刻ｔ2において制御中心空燃比ＡＦＲをリッチ側に変化させてから下流側空燃比センサ４１が反応し始めるまでの応答遅れ時間経過後であれば、時刻ｔ3以前又は時刻ｔ3以降に下流側空燃比センサ４１の素子割れ異常の診断をするようにしてもよい。
【０２４２】
＜異常診断・学習値設定制御のフローチャート＞
図２６は、図１９のステップＳ４７で実行される異常診断・学習値設定制御の制御ルーチンを示すフローチャートである。図示した制御ルーチンは、図１９のステップＳ４７が実行される毎に実行される。また、図２６のステップＳ１０２〜Ｓ１０９は、図２０のステップＳ７１〜Ｓ７８と同様であるため、ステップＳ１０６を除いて説明を省略する。
【０２４３】
図２６に示したように、まず、ステップＳ１０１では、異常仮判定フラグＦｐが０にセットされているか否かが判定される。異常仮判定フラグＦｐは、学習値ｓｆｂｇを減少させたことによって下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン側に変化したときに１にセットされ、それ以外の場合に０にセットされるフラグである。したがって、異常仮判定フラグＦｐは、図２５に示した例において、時刻ｔ2にて時刻ｔ1以前に比べて、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン側に変化していると判定されたときに１にセットされる。
【０２４４】
ステップＳ１０１において、異常仮判定フラグＦｐが０にセットされていると判定された場合にはステップＳ１０２へと進む。その後、ステップＳ１０５において、変化量ΔＡＦｄｗｎが０よりも大きいと判定された場合には、ステップＳ１０６へと進む。ステップＳ１０６では、異常仮判定フラグＦｐが１にセットされる。
【０２４５】
異常仮判定フラグＦｐが１にセットされると、次の制御ルーチンではステップＳ１０１からステップＳ１１１へと進む。ステップＳ１１１では、前回、ステップＳ１０７で学習値を増大させてからの下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎの変化量ΔＡＦｄｗｎが０よりも小さいか否か、すなわち出力空燃比ＡＦｄｗｎがリッチ側に変化したか否かが判定される。ステップＳ１１１において、変化量ΔＡＦｄｗｎが０よりも小さい場合には、出力空燃比ＡＦｄｗｎがリッチ側に変化していることになるため、ステップＳ１１２へと進み、下流側空燃比センサ４１の異常判定フラグＦａが１（ＯＮ）にセットされる。次いで、ステップＳ１１３では、ゲインｋ1、ｋ2、ｋ3が減少せしめられる。次いで、ステップＳ１１４では、異常仮判定フラグＦｐが０にリセットされる。なお、異常仮判定フラグＦｐは、ステップＳ１０８において正常判定フラグＦｎが１にセットされた場合にも、ステップＳ１１０において０にリセットされる。
【０２４６】
なお、本実施形態では、下流側空燃比センサ４１に素子割れの異常が発生していると判定されたときに、各種学習制御におけるゲインを小さくするようにしている。しかしながら、素子割れの異常が発生していると判定されたときには、上記第二実施形態に係る排気浄化装置と同様にガード値を変更するようにしてもよい。また、上記第一実施形態に係る排気浄化装置においても、素子割れの異常が発生していると判定された場合に、学習値ｓｆｂｇを更新前の値に戻すと共に又は学習値ｓｆｂｇを更新前の値に戻さずに、各種学習制御におけるゲインを小さくするようにしてもよい。加えて、上記第二実施形態に係る排気浄化装置においても、素子割れの異常が発生していると判定された場合に、ガード値の変更と共に又はガート値の変更を行わずに各種学習制御におけるゲインを小さくするようにしてもよい。
【符号の説明】
【０２４７】
１    機関本体
５    燃焼室
７    吸気ポート
９    排気ポート
１９    排気マニホルド
２０    上流側排気浄化触媒
２４    下流側排気浄化触媒
３１    ＥＣＵ
４０    上流側空燃比センサ
４１    下流側空燃比センサ
【図１】
0006358148.tif 000002
【図２】
0006358148.tif 000003
【図３】
0006358148.tif 000004
【図４】
0006358148.tif 000005
【図５】
0006358148.tif 000006
【図６】
0006358148.tif 000007
【図７】
0006358148.tif 000008
【図８】
0006358148.tif 000009
【図９】
0006358148.tif 000010
【図１０】
0006358148.tif 000011
【図１１】
0006358148.tif 000012
【図１２】
0006358148.tif 000013
【図１３】
0006358148.tif 000014
【図１４】
0006358148.tif 000015
【図１５】
0006358148.tif 000016
【図１６】
0006358148.tif 000017
【図１７】
0006358148.tif 000018
【図１８】
0006358148.tif 000019
【図１９】
0006358148.tif 000020
【図２０】
0006358148.tif 000021
【図２１】
0006358148.tif 000022
【図２２】
0006358148.tif 000023
【図２３】
0006358148.tif 000024
【図２４】
0006358148.tif 000025
【図２５】
0006358148.tif 000026
【図２６】
0006358148.tif 000027