(57)【要約】      （修正有）【課題】触媒に流入する排気ガスの目標空燃比を切り替える条件を内燃機関の運転状態に応じて変更する場合に、排気エミッションが悪化することを抑制する。【解決手段】内燃機関の排気浄化装置は、触媒２０、上流側空燃比センサ４０、下流側空燃比センサ４１及び空燃比制御装置を備える。空燃比制御装置は、目標空燃比をリッチ空燃比とリーン空燃比とに交互に切り替え、酸素吸蔵積算値及び酸素放出積算値を算出し、酸素吸蔵積算値と酸素放出積算値との差に基づいて学習値を更新し、酸素吸蔵積算値と酸素放出積算値との差が小さくなるように学習値に基づいて空燃比関連パラメータを補正する。空燃比制御装置は、目標空燃比を切り替える条件を第１状態と第２状態との間で変更し、内燃機関の運転状態が第１状態から第２状態に変化するときの学習値を第１状態値として記憶し、内燃機関の運転状態が第２状態から第１状態に戻るときに学習値を第１状態値に更新する。【選択図】図１
2019078169.tif 000002
【特許請求の範囲】
【請求項１】
排気通路に配置されると共に酸素を吸蔵可能な触媒と、
前記触媒の排気流れ方向上流側に配置されると共に、前記触媒に流入する流入排気ガスの空燃比を検出する上流側空燃比センサと、
前記触媒の排気流れ方向下流側に配置されると共に、前記触媒から流出する流出排気ガスの空燃比を検出する下流側空燃比センサと、
前記流入排気ガスの空燃比を制御する空燃比制御装置と
を備え、
前記空燃比制御装置は、前記流入排気ガスの目標空燃比を理論空燃比よりもリッチなリッチ設定空燃比と理論空燃比よりもリーンなリーン設定空燃比とに交互に切り替え、前記上流側空燃比センサによって検出された空燃比に基づいて、前記目標空燃比が前記リーン設定空燃比に維持されている間に前記触媒に吸蔵される酸素の量の推定値である酸素吸蔵積算値と、前記目標空燃比がリッチ設定空燃比に維持されている間に前記触媒から放出される酸素の量の推定値である酸素放出積算値とを算出し、該酸素吸蔵積算値と該酸素放出積算値との差に基づいて学習値を更新し、該酸素吸蔵積算値と該酸素放出積算値との差が小さくなるように該学習値に基づいて空燃比関連パラメータを補正する、内燃機関の排気浄化装置において、
前記内燃機関の運転状態が第１状態と第２状態との間で変化し、前記空燃比制御装置は、前記目標空燃比を切り替える条件を前記第１状態と前記第２状態との間で変更し、前記内燃機関の運転状態が前記第１状態から前記第２状態に変化するときの前記学習値を第１状態値として記憶し、前記内燃機関の運転状態が前記第２状態から前記第１状態に戻るときに前記学習値を前記第１状態値に更新することを特徴とする、内燃機関の排気浄化装置。
【請求項２】
前記空燃比制御装置は、前記内燃機関の運転状態が前記第２状態から前記第１状態に変化するときの前記学習値を第２状態値として記憶し、前記内燃機関の運転状態が前記第１状態から前記第２状態に戻るときに前記学習値を前記第２状態値に更新する、請求項１に記載の内燃機関の排気浄化装置。
【請求項３】
前記空燃比制御装置は、前記下流側空燃比センサによって検出された空燃比がリッチ判定空燃比に達したときに前記目標空燃比を前記リッチ設定空燃比から前記リーン設定空燃比に切り替え、前記下流側空燃比センサによって検出された空燃比がリーン判定空燃比に達したときに前記目標空燃比を前記リーン設定空燃比から前記リッチ設定空燃比に切り替え、前記リッチ判定空燃比は理論空燃比よりもリッチであり且つ前記リッチ設定空燃比よりもリーンな空燃比であり、前記リーン判定空燃比は理論空燃比よりもリーンであり且つ前記リーン設定空燃比よりもリッチな空燃比であり、
前記空燃比制御装置は前記リッチ判定空燃比及び前記リーン判定空燃比の少なくとも一方の値を前記第１状態と前記第２状態との間で変更する、請求項１又は２に記載の内燃機関の排気浄化装置。
【請求項４】
前記空燃比制御装置は、前記下流側空燃比センサによって検出された空燃比が前記リーン判定空燃比に達する前に前記酸素吸蔵積算値が閾値に達した場合には、該酸素吸蔵積算値が該閾値に達したときに前記目標空燃比を前記リーン設定空燃比から前記リッチ設定空燃比に切り替え、
前記空燃比制御装置は、前記酸素吸蔵積算値及び前記酸素放出積算値に基づいて前記閾値を更新し、前記内燃機関の運転状態が前記第１状態から前記第２状態に変化するときの前記閾値を第１状態閾値として記憶し、前記内燃機関の運転状態が前記第２状態から前記第１状態に戻るときに前記閾値を前記第１状態閾値に更新する、請求項３に記載の内燃機関の排気浄化装置。
【請求項５】
前記空燃比制御装置は、前記内燃機関の運転状態が前記第２状態から前記第１状態に変化するときの前記閾値を第２状態閾値として記憶し、前記内燃機関の運転状態が前記第１状態から前記第２状態に戻るときに前記閾値を前記第２状態閾値に更新する、請求項４に記載の内燃機関の排気浄化装置。
【請求項６】
前記空燃比制御装置は、前記下流側空燃比センサによって検出された空燃比がリッチ判定空燃比に達したときに前記目標空燃比を前記リッチ設定空燃比から前記リーン設定空燃比に切り替え、前記酸素吸蔵積算値が最大酸素吸蔵量よりも少ない切替吸蔵量に達したときに前記目標空燃比を前記リーン設定空燃比から前記リッチ設定空燃比に切り替え、前記リッチ判定空燃比は理論空燃比よりもリッチであり且つ前記リッチ設定空燃比よりもリーンな空燃比であり、
前記空燃比制御装置は前記リッチ判定空燃比及び前記切替吸蔵量の少なくとも一方の値を前記第１状態と前記第２状態との間で変更する、請求項１又は２に記載の内燃機関の排気浄化装置。
【請求項７】
前記空燃比制御装置は前記リッチ設定空燃比及び前記リーン設定空燃比の少なくとも一方の値を前記第１状態と前記第２状態との間で変更する、請求項１から６のいずれか１項に記載の内燃機関の排気浄化装置。
【請求項８】
前記第１状態は非定常状態であり、前記第２状態は定常状態である、請求項１から７のいずれか１項に記載の内燃機関の排気浄化装置。
【請求項９】
前記第１状態は定常状態であり、前記第２状態は非定常状態である、請求項１から７のいずれか１項に記載の内燃機関の排気浄化装置。
【請求項１０】
前記排気通路を流れる排気ガスの一部をＥＧＲガスとして吸気通路に還流させるＥＧＲ通路が前記内燃機関に設けられ、
前記第１状態は、ＥＧＲガス流量が第一所定値未満である低ＥＧＲ状態であり、前記第２状態は、ＥＧＲガス流量が前記第一所定値以上である高ＥＧＲ状態であり、又は前記第１状態は、ＥＧＲ率が第二所定値未満である低ＥＧＲ状態であり、前記第２状態は、ＥＧＲ率が前記第二所定値以上である高ＥＧＲ状態である、請求項１から７のいずれか１項に記載の内燃機関の排気浄化装置。
【請求項１１】
前記排気通路を流れる排気ガスの一部をＥＧＲガスとして吸気通路に還流させるＥＧＲ通路が前記内燃機関に設けられ、
前記第１状態は、ＥＧＲガス流量が第一所定値以上である高ＥＧＲ状態であり、前記第２状態は、ＥＧＲガス流量が前記第一所定値未満である低ＥＧＲ状態であり、又は前記第１状態は、ＥＧＲ率が第二所定値以上である高ＥＧＲ状態であり、前記第２状態は、ＥＧＲ率が前記第二所定値未満である低ＥＧＲ状態である、請求項１から７のいずれか１項に記載の内燃機関の排気浄化装置。
【請求項１２】
前記第１状態は、機関負荷が所定値以上である高負荷状態であり、前記第２状態は、機関負荷が前記所定値未満である低負荷状態である、請求項１から７のいずれか１項に記載の内燃機関の排気浄化装置。
【請求項１３】
前記第１状態は、機関負荷が所定値未満である低負荷状態であり、前記第２状態は、機関負荷が前記所定値以上である高負荷状態である、請求項１から７のいずれか１項に記載の内燃機関の排気浄化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は内燃機関の排気浄化装置に関する。
【背景技術】
【０００２】
従来、酸素を吸蔵可能な触媒を内燃機関の排気通路に配置し、排気ガス中の未燃ガス（ＨＣ、ＣＯ等）及びＮＯｘを触媒において浄化することが知られている。触媒の酸素吸蔵能力が高いほど触媒に吸蔵可能な酸素の量が多くなり、触媒の排気浄化性能が向上する。
【０００３】
触媒の酸素吸蔵能力を維持するためには、触媒の酸素吸蔵量が一定に維持されないように触媒の酸素吸蔵量を変動させることが望ましい。特許文献１に記載の内燃機関では、触媒の酸素吸蔵量を変動させるために、触媒に流入する排気ガスの目標空燃比が理論空燃比よりもリーンなリーン空燃比と理論空燃比よりもリッチなリッチ空燃比との間で交互に切り替えられる。具体的には、下流側空燃比センサによって検出された空燃比が理論空燃比よりもリッチなリッチ判定空燃比以下になるときに目標空燃比がリッチ空燃比からリーン空燃比に切り替えられ、目標空燃比がリーン空燃比に維持されている間に触媒に吸蔵される酸素の量の推定値が切替基準値以上になるときに目標空燃比がリーン空燃比からリッチ空燃比に切り替えられる。
【０００４】
また、斯かる制御が行われる場合に上流側空燃比センサの出力値のずれによって排気エミッションが悪化することを抑制すべく、学習制御によって空燃比関連パラメータが補正される。具体的には、目標空燃比がリーン空燃比に維持されている間に触媒に吸蔵される酸素の量の推定値である酸素吸蔵積算値と、目標空燃比がリッチ空燃比に維持されている間に触媒から放出される酸素の量の推定値である酸素放出積算値とが算出され、酸素吸蔵積算値と酸素放出積算値との差に基づいて学習値が更新され、酸素吸蔵積算値と酸素放出積算値との差が小さくなるように学習値に基づいて空燃比関連パラメータが補正される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−０７１９６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、目標空燃比が設定されていても、内燃機関の運転状態に応じて、触媒に流入する排気ガスの状態が変動する。このため、排気エミッションの悪化を抑制しつつ触媒の酸素吸蔵能力を維持するためには、目標空燃比を切り替える条件（特許文献１におけるリッチ判定空燃比及び切替基準値）を内燃機関の運転状態に応じて変更することが好ましい場合がある。
【０００７】
例えば、リッチ判定空燃比のリッチ度合が大きくされると、目標空燃比をリッチ空燃比からリーン空燃比に切り替えるタイミングが遅くなる。この結果、目標空燃比がリッチ空燃比に維持される期間が長くなり、酸素放出積算値が多くなる。一方、切替基準値が大きくされると、目標空燃比をリーン空燃比からリッチ空燃比に切り替えるタイミングが遅くなる。この結果、目標空燃比がリーン空燃比に維持される期間が長くなり、酸素吸蔵積算値が多くなる。
【０００８】
したがって、目標空燃比を切り替える条件が変更されると、上流側空燃比センサの出力が正常であっても、酸素吸蔵積算値及び酸素放出積算値から算出される学習値が変化する場合がある。この結果、内燃機関の運転状態に応じて適切な学習値が変動する。このため、内燃機関の運転状態が変化したときに学習値が維持されると、触媒に流入する排気ガスの空燃比が変化後の運転状態に適さない値となり、排気エミッションが悪化するおそれがある。
【０００９】
そこで、上記課題に鑑みて、本発明の目的は、触媒に流入する排気ガスの目標空燃比を切り替える条件を内燃機関の運転状態に応じて変更する場合に、排気エミッションが悪化することを抑制することにある。
【課題を解決するための手段】
【００１０】
本開示の要旨は以下のとおりである。
【００１１】
（１）排気通路に配置されると共に酸素を吸蔵可能な触媒と、前記触媒の排気流れ方向上流側に配置されると共に、前記触媒に流入する流入排気ガスの空燃比を検出する上流側空燃比センサと、前記触媒の排気流れ方向下流側に配置されると共に、前記触媒から流出する流出排気ガスの空燃比を検出する下流側空燃比センサと、前記流入排気ガスの空燃比を制御する空燃比制御装置とを備え、前記空燃比制御装置は、前記流入排気ガスの目標空燃比を理論空燃比よりもリッチなリッチ設定空燃比と理論空燃比よりもリーンなリーン設定空燃比とに交互に切り替え、前記上流側空燃比センサによって検出された空燃比に基づいて、前記目標空燃比が前記リーン設定空燃比に維持されている間に前記触媒に吸蔵される酸素の量の推定値である酸素吸蔵積算値と、前記目標空燃比がリッチ設定空燃比に維持されている間に前記触媒から放出される酸素の量の推定値である酸素放出積算値とを算出し、該酸素吸蔵積算値と該酸素放出積算値との差に基づいて学習値を更新し、該酸素吸蔵積算値と該酸素放出積算値との差が小さくなるように該学習値に基づいて空燃比関連パラメータを補正する、内燃機関の排気浄化装置において、前記内燃機関の運転状態が第１状態と第２状態との間で変化し、前記空燃比制御装置は、前記目標空燃比を切り替える条件を前記第１状態と前記第２状態との間で変更し、前記内燃機関の運転状態が前記第１状態から前記第２状態に変化するときの前記学習値を第１状態値として記憶し、前記内燃機関の運転状態が前記第２状態から前記第１状態に戻るときに前記学習値を前記第１状態値に更新することを特徴とする、内燃機関の排気浄化装置。
【００１２】
（２）前記空燃比制御装置は、前記内燃機関の運転状態が前記第２状態から前記第１状態に変化するときの前記学習値を第２状態値として記憶し、前記内燃機関の運転状態が前記第１状態から前記第２状態に戻るときに前記学習値を前記第２状態値に更新する、上記（１）に記載の内燃機関の排気浄化装置。
【００１３】
（３）前記空燃比制御装置は、前記下流側空燃比センサによって検出された空燃比がリッチ判定空燃比に達したときに前記目標空燃比を前記リッチ設定空燃比から前記リーン設定空燃比に切り替え、前記下流側空燃比センサによって検出された空燃比がリーン判定空燃比に達したときに前記目標空燃比を前記リーン設定空燃比から前記リッチ設定空燃比に切り替え、前記リッチ判定空燃比は理論空燃比よりもリッチであり且つ前記リッチ設定空燃比よりもリーンな空燃比であり、前記リーン判定空燃比は理論空燃比よりもリーンであり且つ前記リーン設定空燃比よりもリッチな空燃比であり、前記空燃比制御装置は前記リッチ判定空燃比及び前記リーン判定空燃比の少なくとも一方の値を前記第１状態と前記第２状態との間で変更する、上記（１）又は（２）に記載の内燃機関の排気浄化装置。
【００１４】
（４）前記空燃比制御装置は、前記下流側空燃比センサによって検出された空燃比が前記リーン判定空燃比に達する前に前記酸素吸蔵積算値が閾値に達した場合には、該酸素吸蔵積算値が該閾値に達したときに前記目標空燃比を前記リーン設定空燃比から前記リッチ設定空燃比に切り替え、前記空燃比制御装置は、前記酸素吸蔵積算値及び前記酸素放出積算値に基づいて前記閾値を更新し、前記内燃機関の運転状態が前記第１状態から前記第２状態に変化するときの前記閾値を第１状態閾値として記憶し、前記内燃機関の運転状態が前記第２状態から前記第１状態に戻るときに前記閾値を前記第１状態閾値に更新する、上記（３）に記載の内燃機関の排気浄化装置。
【００１５】
（５）前記空燃比制御装置は、前記内燃機関の運転状態が前記第２状態から前記第１状態に変化するときの前記閾値を第２状態閾値として記憶し、前記内燃機関の運転状態が前記第１状態から前記第２状態に戻るときに前記閾値を前記第２状態閾値に更新する、上記（４）に記載の内燃機関の排気浄化装置。
【００１６】
（６）前記空燃比制御装置は、前記下流側空燃比センサによって検出された空燃比がリッチ判定空燃比に達したときに前記目標空燃比を前記リッチ設定空燃比から前記リーン設定空燃比に切り替え、前記酸素吸蔵積算値が最大酸素吸蔵量よりも少ない切替吸蔵量に達したときに前記目標空燃比を前記リーン設定空燃比から前記リッチ設定空燃比に切り替え、前記リッチ判定空燃比は理論空燃比よりもリッチであり且つ前記リッチ設定空燃比よりもリーンな空燃比であり、前記空燃比制御装置は前記リッチ判定空燃比及び前記切替吸蔵量の少なくとも一方の値を前記第１状態と前記第２状態との間で変更する、上記（１）又は（２）に記載の内燃機関の排気浄化装置。
【００１７】
（７）前記空燃比制御装置は前記リッチ設定空燃比及び前記リーン設定空燃比の少なくとも一方の値を前記第１状態と前記第２状態との間で変更する、上記（１）から（６）のいずれか１つに記載の内燃機関の排気浄化装置。
【００１８】
（８）前記第１状態は非定常状態であり、前記第２状態は定常状態である、上記（１）から（７）のいずれか１つに記載の内燃機関の排気浄化装置。
【００１９】
（９）前記第１状態は定常状態であり、前記第２状態は非定常状態である、上記（１）から（７）のいずれか１つに記載の内燃機関の排気浄化装置。
【００２０】
（１０）前記排気通路を流れる排気ガスの一部をＥＧＲガスとして吸気通路に還流させるＥＧＲ通路が前記内燃機関に設けられ、前記第１状態は、ＥＧＲガス流量が第一所定値未満である低ＥＧＲ状態であり、前記第２状態は、ＥＧＲガス流量が前記第一所定値以上である高ＥＧＲ状態であり、又は前記第１状態は、ＥＧＲ率が第二所定値未満である低ＥＧＲ状態であり、前記第２状態は、ＥＧＲ率が前記第二所定値以上である高ＥＧＲ状態である、上記（１）から（７）のいずれか１つに記載の内燃機関の排気浄化装置。
【００２１】
（１１）前記排気通路を流れる排気ガスの一部をＥＧＲガスとして吸気通路に還流させるＥＧＲ通路が前記内燃機関に設けられ、前記第１状態は、ＥＧＲガス流量が第一所定値以上である高ＥＧＲ状態であり、前記第２状態は、ＥＧＲガス流量が前記第一所定値未満である低ＥＧＲ状態であり、又は前記第１状態は、ＥＧＲ率が第二所定値以上である高ＥＧＲ状態であり、前記第２状態は、ＥＧＲ率が前記第二所定値未満である低ＥＧＲ状態である、上記（１）から（７）のいずれか１つに記載の内燃機関の排気浄化装置。
【００２２】
（１２）前記第１状態は、機関負荷が所定値以上である高負荷状態であり、前記第２状態は、機関負荷が前記所定値未満である低負荷状態である、上記（１）から（７）のいずれか１つに記載の内燃機関の排気浄化装置。
【００２３】
（１３）前記第１状態は、機関負荷が所定値未満である低負荷状態であり、前記第２状態は、機関負荷が前記所定値以上である高負荷状態である、上記（１）から（７）のいずれか１つに記載の内燃機関の排気浄化装置。
【発明の効果】
【００２４】
本発明によれば、触媒に流入する排気ガスの目標空燃比を切り替える条件を内燃機関の運転状態に応じて変更する場合に、排気エミッションが悪化することを抑制することができる。
【図面の簡単な説明】
【００２５】
【図１】図１は、本発明の第一実施形態に係る内燃機関の排気浄化装置が設けられた内燃機関を概略的に示す図である。
【図２】図２は、三元触媒の浄化特性を示す。
【図３】図３は、各排気空燃比におけるセンサ印加電圧と出力電流との関係を示す図である。
【図４】図４は、センサ印加電圧を一定にしたときの排気空燃比と出力電流との関係を示す図である。
【図５】図５は、第一実施形態における空燃比制御が実行されるときの内燃機関の運転状態等のタイムチャートである。
【図６】図６は、空燃比制御の制御ブロック図である。
【図７】図７は、第一実施形態における制御条件設定処理の制御ルーチンを示すフローチャートである。
【図８】図８は、第一実施形態における学習値更新処理の制御ルーチンを示すフローチャートである。
【図９】図９は、第一実施形態における目標空燃比設定処理の制御ルーチンを示すフローチャートである。
【図１０】図１０は、第二実施形態における閾値更新処理の制御ルーチンを示すフローチャートである。
【図１１】図１１は、第二実施形態における目標空燃比設定処理の制御ルーチンを示すフローチャートである。
【図１２】図１２は、第三実施形態における制御条件設定処理の制御ルーチンを示すフローチャートである。
【図１３】図１３は、第三実施形態における目標空燃比設定処理の制御ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００２６】
以下、図面を参照して本発明の実施形態について詳細に説明する。なお、以下の説明では、同様な構成要素には同一の参照番号を付す。
【００２７】
＜第一実施形態＞
最初に図１〜図９を参照して、本発明の第一実施形態について説明する。
【００２８】
＜内燃機関全体の説明＞
図１は、本発明の第一実施形態に係る内燃機関の排気浄化装置が設けられた内燃機関を概略的に示す図である。図１に示される内燃機関は火花点火式内燃機関である。内燃機関は車両に搭載される。
【００２９】
図１を参照すると、１は機関本体、２はシリンダブロック、３はシリンダブロック２内で往復動するピストン、４はシリンダブロック２上に固定されたシリンダヘッド、５はピストン３とシリンダヘッド４との間に形成された燃焼室、６は吸気弁、７は吸気ポート、８は排気弁、９は排気ポートをそれぞれ示す。吸気弁６は吸気ポート７を開閉し、排気弁８は排気ポート９を開閉する。
【００３０】
図１に示したように、シリンダヘッド４の内壁面の中央部には点火プラグ１０が配置され、シリンダヘッド４の内壁面周辺部には燃料噴射弁１１が配置される。点火プラグ１０は、点火信号に応じて火花を発生させるように構成される。また、燃料噴射弁１１は、噴射信号に応じて、所定量の燃料を燃焼室５内に噴射する。本実施形態では、燃料として理論空燃比が１４．６であるガソリンが用いられる。
【００３１】
各気筒の吸気ポート７はそれぞれ対応する吸気枝管１３を介してサージタンク１４に連結され、サージタンク１４は吸気管１５を介してエアクリーナ１６に連結される。吸気ポート７、吸気枝管１３、サージタンク１４、吸気管１５等は、空気を燃焼室５に導く吸気通路を形成する。また、吸気管１５内には、スロットル弁駆動アクチュエータ１７によって駆動されるスロットル弁１８が配置される。スロットル弁１８は、スロットル弁駆動アクチュエータ１７によって回動せしめられることで、吸気通路の開口面積を変更することができる。
【００３２】
一方、各気筒の排気ポート９は排気マニホルド１９に連結される。排気マニホルド１９は、各排気ポート９に連結される複数の枝部と、これら枝部が集合した集合部とを有する。排気マニホルド１９の集合部は、上流側触媒２０を内蔵した上流側ケーシング２１に連結される。上流側ケーシング２１は、排気管２２を介して、下流側触媒２４を内蔵した下流側ケーシング２３に連結される。排気ポート９、排気マニホルド１９、上流側ケーシング２１、排気管２２、下流側ケーシング２３等は、燃焼室５における混合気の燃焼によって生じた排気ガスを排出する排気通路を形成する。
【００３３】
内燃機関の各種制御は電子制御ユニット（ＥＣＵ）３１によって実行される。電子制御ユニット（ＥＣＵ）３１はデジタルコンピュータからなり、双方向性バス３２を介して相互に接続されたＲＡＭ（ランダムアクセスメモリ）３３、ＲＯＭ（リードオンリメモリ）３４、ＣＰＵ（マイクロプロセッサ）３５、入力ポート３６及び出力ポート３７を備える。吸気管１５には、吸気管１５内を流れる空気の流量を検出するエアフロメータ３９が配置され、エアフロメータ３９の出力は対応するＡＤ変換器３８を介して入力ポート３６に入力される。
【００３４】
また、排気マニホルド１９の集合部、すなわち上流側触媒２０の排気流れ方向上流側には、排気マニホルド１９内を流れる排気ガス（すなわち、上流側触媒２０に流入する排気ガス）の空燃比を検出する上流側空燃比センサ４０が配置される。上流側空燃比センサ４０の出力は対応するＡＤ変換器３８を介して入力ポート３６に入力される。
【００３５】
また、排気管２２内、すなわち上流側触媒２０の排気流れ方向下流側には、排気管２２内を流れる排気ガス（すなわち、上流側触媒２０から流出する排気ガス）の空燃比を検出する下流側空燃比センサ４１が配置される。下流側空燃比センサ４１の出力は対応するＡＤ変換器３８を介して入力ポート３６に入力される。
【００３６】
また、アクセルペダル４２には、アクセルペダル４２の踏込み量に比例した出力電圧を発生する負荷センサ４３が接続され、負荷センサ４３の出力電圧は対応するＡＤ変換器３８を介して入力ポート３６に入力される。クランク角センサ４４は例えばクランクシャフトが１５度回転する毎に出力パルスを発生し、この出力パルスが入力ポート３６に入力される。ＣＰＵ３５ではクランク角センサ４４の出力パルスから機関回転数が計算される。一方、出力ポート３７は対応する駆動回路４５を介して点火プラグ１０、燃料噴射弁１１及びスロットル弁駆動アクチュエータ１７に接続される。
【００３７】
なお、上述した内燃機関は、ガソリンを燃料とする無過給内燃機関であるが、内燃機関の構成は、上記構成に限定されるものではない。したがって、気筒配列、燃料の噴射態様、吸排気系の構成、動弁機構の構成、過給器の有無のような内燃機関の具体的な構成は、図１に示した構成と異なっていてもよい。例えば、燃料噴射弁１１は、吸気ポート７内に燃料を噴射するように配置されてもよい。
【００３８】
＜触媒の説明＞
排気通路に配置された上流側触媒２０及び下流側触媒２４は同様な構成を有する。触媒２０、２４は、酸素吸蔵能力を有する触媒であり、例えば三元触媒である。具体的には、触媒２０、２４は、セラミックから成る担体に、触媒作用を有する貴金属（例えば、白金（Ｐｔ））及び酸素吸蔵能力を有する助触媒（例えば、セリア（ＣｅＯ2））を担持させたものである。
【００３９】
図２は、三元触媒の浄化特性を示す。図２に示されるように、触媒２０、２４による未燃ガス（ＨＣ、ＣＯ）及び窒素酸化物（ＮＯｘ）の浄化率は、触媒２０、２４に流入する排気ガスの空燃比が理論空燃比近傍領域（図２における浄化ウィンドウＡ）にあるときに非常に高くなる。したがって、触媒２０、２４は、排気ガスの空燃比が理論空燃比に維持されていると、未燃ガス及びＮＯｘを効果的に浄化することができる。
【００４０】
また、触媒２０、２４は助触媒によって排気ガスの空燃比に応じて酸素を吸蔵し又は放出する。具体的には、触媒２０、２４は、排気ガスの空燃比が理論空燃比よりもリーンであるときには、排気ガス中の過剰な酸素を吸蔵する。一方、触媒２０、２４は、排気ガスの空燃比が理論空燃比よりもリッチであるときには、未燃ガスを酸化させるのに不足している酸素を放出する。この結果、排気ガスの空燃比が理論空燃比から若干ずれた場合であっても、触媒２０、２４の表面上における空燃比が理論空燃比近傍に維持され、触媒２０、２４において未燃ガス及びＮＯｘが効果的に浄化される。
【００４１】
なお、触媒２０、２４は、触媒作用及び酸素吸蔵能力を有していれば、三元触媒以外の触媒であってもよい。
【００４２】
＜空燃比センサの出力特性＞
次に、図３及び図４を参照して、本実施形態における空燃比センサ４０、４１の出力特性について説明する。図３は、本実施形態における空燃比センサ４０、４１の電圧−電流（Ｖ−Ｉ）特性を示す図であり、図４は、印加電圧を一定に維持したときの、空燃比センサ４０、４１周りを流通する排気ガスの空燃比（以下、「排気空燃比」という）と出力電流Ｉとの関係を示す図である。なお、本実施形態では、両空燃比センサ４０、４１として同一構成の空燃比センサが用いられる。
【００４３】
図３からわかるように、本実施形態の空燃比センサ４０、４１では、出力電流Ｉは、排気空燃比が高くなるほど（リーンになるほど）、大きくなる。また、各排気空燃比におけるＶ−Ｉ線には、Ｖ軸にほぼ平行な領域、すなわちセンサ印加電圧が変化しても出力電流がほとんど変化しない領域が存在する。この電圧領域は限界電流領域と称され、このときの電流は限界電流と称される。図３では、排気空燃比が１８であるときの限界電流領域及び限界電流をそれぞれＷ18、Ｉ18で示している。したがって、空燃比センサ４０、４１は限界電流式の空燃比センサである。
【００４４】
図４は、印加電圧を０．４５Ｖ程度で一定にしたときの、排気空燃比と出力電流Ｉとの関係を示す図である。図４からわかるように、空燃比センサ４０、４１では、排気空燃比が高くなるほど（すなわち、リーンになるほど）、空燃比センサ４０、４１からの出力電流Ｉが大きくなる。加えて、空燃比センサ４０、４１は、排気空燃比が理論空燃比であるときに出力電流Ｉがゼロになるように構成される。したがって、空燃比センサ４０、４１は排気空燃比を連続的に（リニアに）検出することができる。なお、排気空燃比が一定以上に大きくなったとき、或いは一定以下に小さくなったときには、排気空燃比の変化に対する出力電流の変化の割合が小さくなる。
【００４５】
なお、上記例では、空燃比センサ４０、４１として限界電流式の空燃比センサを用いている。しかしながら、排気空燃比に対して出力電流がリニアに変化するものであれば、空燃比センサ４０、４１として、限界電流式ではない空燃比センサ等、如何なる空燃比センサを用いてもよい。また、両空燃比センサ４０、４１は互いに異なる構造の空燃比センサであってもよい。
【００４６】
＜内燃機関の排気浄化装置＞
以下、本発明の第一実施形態に係る内燃機関の排気浄化装置（以下、単に「排気浄化装置」という）について説明する。排気浄化装置は、上流側触媒２０、下流側触媒２４、上流側空燃比センサ４０、下流側空燃比センサ４１及び空燃比制御装置を備える。本実施形態では、ＥＣＵ３１が空燃比制御装置として機能する。
【００４７】
空燃比制御装置は、上流側触媒２０に流入する排気ガス（以下、「流入排気ガス」という）の空燃比を制御する。具体的には、空燃比制御装置は、流入排気ガスの目標空燃比を設定すると共に、流入排気ガスの空燃比が目標空燃比に一致するように燃焼室５に供給する燃料量を制御する。本実施形態では、空燃比制御装置は、上流側空燃比センサ４０の出力空燃比が目標空燃比に一致するように燃焼室５に供給する燃料量をフィードバック制御する。なお、「出力空燃比」は、空燃比センサの出力値に相当する空燃比、すなわち空燃比センサによって検出される空燃比を意味する。
【００４８】
空燃比制御装置は、上流側触媒２０の酸素吸蔵量を変動させるべく、流入排気ガスの目標空燃比をリッチ設定空燃比とリーン設定空燃比とに交互に切り替える。具体的には、空燃比制御装置は、下流側空燃比センサ４１の出力空燃比がリッチ判定空燃比に達したときに目標空燃比をリッチ設定空燃比からリーン設定空燃比に切り替え、下流側空燃比センサ４１の出力空燃比がリーン判定空燃比に達したときに目標空燃比をリーン設定空燃比からリッチ設定空燃比に切り替える。
【００４９】
リッチ設定空燃比は、理論空燃比（本実施形態では１４．６）よりもリッチな空燃比であり、例えば１３〜１４．４である。リッチ判定空燃比は、理論空燃比よりもリッチであり且つリッチ設定空燃比よりもリーンな空燃比であり、例えば１４．５５〜１４．４である。リーン設定空燃比は、理論空燃比よりもリーンな空燃比であり、例えば１４．８〜１６．５である。リーン判定空燃比は、理論空燃比よりもリーンであり且つリーン設定空燃比よりもリッチな空燃比であり、例えば１４．６５〜１４．８である。
【００５０】
下流側空燃比センサ４１の出力空燃比がリッチ判定空燃比以下になったときには、上流側触媒２０の酸素吸蔵量がゼロであると考えられる。一方、下流側空燃比センサ４１の出力空燃比がリーン判定空燃比以上になったときには、上流側触媒２０の酸素吸蔵量が最大値であると考えられる。空燃比制御装置は、下流側空燃比センサ４１の出力によって上流側触媒２０の酸素吸蔵量がゼロ又は最大値であることを検出できるため、上流側触媒２０の酸素吸蔵量をゼロと最大値との間で変動させることができる。このことによって、上流側触媒２０の酸素吸蔵能力の低下が抑制される。
【００５１】
ところで、空燃比センサは、使用に伴って徐々に劣化し、そのゲイン特性が変化することがある。例えば、上流側空燃比センサ４０のゲイン特性が変化すると、上流側空燃比センサ４０の出力空燃比と流入排気ガスの実際の空燃比との間にずれが生じる場合がある。この場合、上流側空燃比センサ４０の出力空燃比は流入排気ガスの実際の空燃比よりもリッチ側又はリーン側にずれる。
【００５２】
また、未燃ガスのうち水素は空燃比センサの拡散律速層の通過速度が速い。このため、排気ガス中の水素濃度が高いと、上流側空燃比センサ４０の出力空燃比が流入排気ガスの実際の空燃比よりも低い側（すなわち、リッチ側）にずれてしまう。このように上流側空燃比センサ４０の出力空燃比にずれが生じていると、流入排気ガスの実際の空燃比が目標空燃比からずれ、排気エミッションが悪化するおそれがある。
【００５３】
このため、空燃比制御装置は、上流側空燃比センサ４０の出力空燃比のずれを補償すべく、以下のような学習制御を行う。空燃比制御装置は、目標空燃比がリーン設定空燃比に維持されている間に上流側触媒２０に吸蔵される酸素の量の推定値である酸素吸蔵積算値と、目標空燃比がリッチ設定空燃比に維持されている間に上流側触媒２０から放出される酸素の量の推定値である酸素放出積算値とを算出する。空燃比制御装置は、流入排気ガスの理論空燃比に対する酸素過不足量を積算することによって酸素吸蔵積算値及び酸素放出積算値を算出する。
【００５４】
なお、流入排気ガスの理論空燃比に対する酸素過不足量とは、流入排気ガスの空燃比を理論空燃比にしようとしたときに過剰となる酸素の量又は不足する酸素の量を意味する。酸素過不足量ＯＥＤは、例えば、上流側空燃比センサ４０の出力及び燃料噴射量に基づいて下記式（１）により算出される。
ＯＥＤ＝０．２３×（ＡＦｕｐ−ＡＦＲ）×Ｑｉ      …（１）
ここで、０．２３は空気中の酸素濃度であり、Ｑｉは燃料噴射量であり、ＡＦｕｐは上流側空燃比センサ４０の出力空燃比であり、ＡＦＲは制御中心空燃比である。後述する学習制御が行われる前の制御中心空燃比の初期値は理論空燃比（１４．６）である。
【００５５】
なお、酸素過不足量ＯＥＤは、上流側空燃比センサ４０の出力及び吸入空気量に基づいて下記式（２）により算出されてもよい。
ＯＥＤ＝０．２３×（ＡＦｕｐ−ＡＦＲ）×Ｇａ／ＡＦｕｐ      …（２）
ここで、０．２３は空気中の酸素濃度であり、Ｇａは吸入空気量であり、ＡＦｕｐは上流側空燃比センサ４０の出力空燃比であり、ＡＦＲは制御中心空燃比である。吸入空気量Ｇａはエアフロメータ３９によって検出される。後述する学習制御が行われる前の制御中心空燃比の初期値は理論空燃比（１４．６）である。
【００５６】
目標空燃比がリーン設定空燃比に維持されているときには、上流側触媒２０に酸素が吸蔵されるため、酸素過不足量ＯＥＤの値は正となる。酸素吸蔵積算値は、目標空燃比がリーン設定空燃比に維持されているときに算出される酸素過不足量の積算値として算出される。一方、目標空燃比がリッチ設定空燃比に維持されているときには、上流側触媒２０から酸素が放出されるため、酸素過不足量ＯＥＤの値は負となる。酸素放出積算値は、目標空燃比がリッチ設定空燃比に維持されているときに算出される酸素過不足量の積算値の絶対値として算出される。
【００５７】
目標空燃比がリッチ設定空燃比に設定されてからリーン設定空燃比に切り替えられるまで、すなわち目標空燃比がリッチ設定空燃比に維持されている間、上流側触媒２０の酸素吸蔵量は最大値からゼロまで変化する。一方、目標空燃比がリーン設定空燃比に設定されてからリッチ設定空燃比に切り替えられるまで、すなわち目標空燃比がリーン設定空燃比に維持されている間、上流側触媒２０の酸素吸蔵量はゼロから最大値まで変化する。このため、正確な空燃比制御が行われた場合には、酸素吸蔵積算値と酸素放出積算値とは同一の値になるはずである。
【００５８】
しかしながら、酸素吸蔵積算値及び酸素放出積算値が上流側空燃比センサ４０の出力空燃比に基づいて算出されるため、上流側空燃比センサ４０の出力空燃比にずれが生じている場合、このずれに応じて酸素吸蔵積算値及び酸素放出積算値が変化する。上流側空燃比センサ４０の出力空燃比がリッチ側にずれている場合には、酸素吸蔵積算値が実際の酸素吸蔵量よりも少なく算出され、酸素放出積算値が実際の酸素放出量よりも多く算出される。このため、酸素放出積算値が酸素吸蔵積算値よりも多くなる。一方、上流側空燃比センサ４０の出力空燃比がリーン側にずれている場合には、酸素吸蔵積算値が実際の酸素吸蔵量よりも多く算出され、酸素放出積算値が実際の酸素放出量よりも少なく算出される。このため、酸素吸蔵積算値が酸素放出積算値よりも多くなる。
【００５９】
本実施形態では、酸素吸蔵積算値ＯＳＡと酸素放出積算値ＯＤＡとの差ＤＯＡ（＝ＯＤＡ−ＯＳＡ。以下、「酸素量誤差」という）に基づいて、制御中心空燃比を補正する。空燃比制御装置は、酸素量誤差に基づいて学習値を算出し、酸素量誤差が小さくなるように学習値に基づいて制御中心空燃比を補正する。
【００６０】
具体的には、空燃比制御装置は、下記式（３）により学習値ｓｆｂｇを更新し、下記式（４）により制御中心空燃比ＡＦＲを補正する。
ｓｆｂｇ（ｎ）＝ｓｆｂｇ（ｎ−１）＋ｋ1×ＤＯＡ      …（３）
ＡＦＲ＝ＡＦＲｂａｓｅ−ｓｆｂｇ（ｎ）      …（４）
【００６１】
なお、上記式（３）において、ｎは計算回数又は時間を表している。したがって、ｓｆｂｇ（ｎ）は更新後の現在の学習値であり、ｓｆｂｇ（ｎ−１）は更新前の前回の学習値である。また、上記式（３）におけるｋ1は、酸素量誤差ＤＯＡに対する学習値の更新量の程度を表すゲインである。ゲインｋ1の値が大きいほど、酸素量誤差ＤＯＡに対する学習値の更新量が大きくなる。また、上記式（４）において、基本制御中心空燃比ＡＦＲｂａｓｅは、制御中心空燃比ＡＦＲの初期値であり、本実施形態では理論空燃比である。また、学習値の初期値ｓｆｂｇ（０）はゼロである。
【００６２】
上記式（３）から分かるように、酸素量誤差ＤＯＡが正であるとき、すなわち酸素放出積算値ＯＤＡが酸素吸蔵積算値ＯＳＡよりも大きいとき、学習値は減少するように更新される。一方、酸素量誤差ＤＯＡが負であるとき、すなわち酸素吸蔵積算値ＯＳＡが酸素放出積算値ＯＤＡよりも大きいとき、学習値は増加するように更新される。
【００６３】
また、流入排気ガスの目標空燃比は、制御中心空燃比ＡＦＲに所定の空燃比補正量を加算することによって算出される。リッチ設定空燃比に対応する空燃比補正量は負の値であり、リーン設定空燃比に対応する空燃比補正量は正の値である。上記式（４）から分かるように、学習値が正の場合には、制御中心空燃比ＡＦＲが小さくされ、この結果、目標空燃比がリッチ側に補正される。一方、学習値が負の場合には、制御中心空燃比ＡＦＲが大きくされ、この結果、目標空燃比がリーン側に補正される。
【００６４】
しかしながら、排気エミッションの悪化を抑制しつつ、上流側触媒２０の酸素吸蔵能力を維持するために、目標空燃比を切り替える条件（本実施形態におけるリッチ判定空燃比及びリーン判定空燃比）を変更することが望ましい場合がある。本実施形態では、内燃機関の運転状態が第１状態と第２状態との間で変化する場合、空燃比制御装置は、目標空燃比を切り替える条件を第１状態と第２状態との間で変更する。
【００６５】
内燃機関の運転状態が第１状態から第２状態に変化したときにリッチ判定空燃比のリッチ度合が大きくされると、第２状態において目標空燃比をリッチ設定空燃比からリーン設定空燃比に切り替えるタイミングが遅くなる。この結果、第２状態において、目標空燃比がリッチ設定空燃比に維持される期間が長くなり、酸素放出積算値が多くなる。なお、リッチ度合とは、理論空燃比よりもリッチな空燃比と理論空燃比との差を意味する。
【００６６】
一方、内燃機関の運転状態が第１状態から第２状態に変化したときにリーン判定空燃比のリーン度合が大きくされると、第２状態において目標空燃比をリーン設定空燃比からリッチ設定空燃比に切り替えるタイミングが遅くなる。この結果、第２状態において、目標空燃比がリーン設定空燃比に維持される期間が長くなり、酸素吸蔵積算値が多くなる。なお、リーン度合とは、理論空燃比よりもリーンな空燃比と理論空燃比との差を意味する。
【００６７】
したがって、目標空燃比を切り替える条件が変更されると、上流側空燃比センサ４０の出力が正常であっても、酸素吸蔵積算値及び酸素放出積算値から算出される学習値が変化する場合がある。この結果、内燃機関の運転状態に応じて適切な学習値が変動する。このため、内燃機関の運転状態が変化したときに学習値が維持されると、流入排気ガスの空燃比が変化後の運転状態に適さない値となり、排気エミッションが悪化するおそれがある。
【００６８】
そこで、本実施形態では、空燃比制御装置は、内燃機関の運転状態が第１状態から第２状態に変化するときの学習値を第１状態値として記憶し、内燃機関の運転状態が第２状態から第１状態に戻るときに学習値を第１状態値に更新する。このことによって、第２状態において更新された不適切な学習値が第１状態において用いられないため、内燃機関の運転状態が第２状態から第１状態に戻った後に排気エミッションが悪化することを抑制することができる。したがって、流入排気ガスの目標空燃比を切り替える条件を内燃機関の運転状態に応じて変更する場合に、排気エミッションが悪化することを抑制することができる。
【００６９】
なお、空燃比制御装置は、上記の制御に加えて、内燃機関の運転状態が第２状態から第１状態に変化するときの学習値を第２状態値として記憶し、内燃機関の運転状態が第１状態から第２状態に戻るときに学習値を第２状態値に更新してもよい。このことによって、第１状態において更新された不適切な学習値が第２状態において用いられないため、内燃機関の運転状態が第１状態から第２状態に戻った後に、排気エミッションが悪化することを抑制することができる。
【００７０】
内燃機関の運転状態は定常状態と非定常状態との間で変化する。以下、第１状態が非定常状態であり、第２状態が定常状態である例について説明する。
【００７１】
上流側触媒２０の酸素吸蔵能力を維持するためには、上流側触媒２０の酸素吸蔵量を変動させるときに上流側触媒２０から酸素を完全に放出し且つ上流側触媒２０全体に酸素を吸蔵させることが望ましい。上流側触媒２０の深部に吸蔵された酸素を放出するためには、リッチ設定空燃比のリッチ度合を大きくする必要がある。また、リッチ判定空燃比のリッチ度合を大きくした場合も、目標空燃比がリッチ設定空燃比に維持される期間が長くなるため、上流側触媒２０に吸蔵された酸素の残量を少なくすることができる。
【００７２】
一方、上流側触媒２０の深部まで酸素を吸蔵させるためには、リーン設定空燃比のリーン度合を大きくする必要がある。また、リーン判定空燃比のリーン度合を大きくした場合も、目標空燃比がリーン設定空燃比に維持される期間が長くなるため、上流側触媒２０に吸蔵される酸素の量を多くすることができる。
【００７３】
また、リッチ設定空燃比及びリッチ判定空燃比の少なくとも一方のリッチ度合を大きくすることによって、下流側触媒２４に所定量の未燃ガスを定期的に供給することができる。一方、リーン設定空燃比及びリーン判定空燃比の少なくとも一方のリーン度合を大きくすることによって、下流側触媒２４に所定量の酸素を定期的に供給することができる。この結果、下流側触媒２４の酸素吸蔵量を定期的に変動させることができ、ひいては下流側触媒２４の酸素吸蔵能力の低下も抑制することができる。
【００７４】
しかしながら、リッチ設定空燃比及びリッチ判定空燃比の少なくとも一方のリッチ度合を大きくすると、流入排気ガスの空燃比が外乱によって一時的に目標空燃比からずれたときに上流側触媒２０から多量の未燃ガスが流出するおそれがある。一方、リーン設定空燃比及びリーン判定空燃比の少なくとも一方のリーン度合を大きくすると、流入排気ガスの空燃比が外乱によって一時的に目標空燃比からずれたときに上流側触媒２０から多量のＮＯｘが流出するおそれがある。
【００７５】
内燃機関の運転状態は、機関負荷の変動が大きい非定常状態と、機関負荷の変動が小さい定常状態との間で変化する。内燃機関が搭載された車両の加速又は減速時等に内燃機関の運転状態は非定常状態となり、外乱は、内燃機関の運転状態が非定常状態であるときに生じやすい。
【００７６】
このため、本実施形態では、空燃比制御装置は、目標空燃比をリッチ設定空燃比とリーン設定空燃比との間で切り替える条件、すなわちリッチ判定空燃比及びリーン判定空燃比の値を非定常状態と定常状態との間で変更する。具体的には、空燃比制御装置は、内燃機関の運転状態が非定常状態であるときにリッチ判定空燃比及びリーン判定空燃比を第１リッチ判定空燃比及び第１リーン判定空燃比に設定し、内燃機関の運転状態が定常状態であるときにリッチ判定空燃比及びリーン判定空燃比を第２リッチ判定空燃比及び第２リーン判定空燃比に設定する。第２リッチ判定空燃比は第１リッチ判定空燃比よりもリッチであり、第２リーン判定空燃比は第１リーン判定空燃比よりもリーンである。
【００７７】
また、空燃比制御装置はリッチ設定空燃比及びリーン設定空燃比の値を非定常状態と定常状態との間で変更する。具体的には、空燃比制御装置は、内燃機関の運転状態が非定常状態であるときにリッチ設定空燃比及びリーン設定空燃比を第１リッチ設定空燃比及び第１リーン設定空燃比に設定し、内燃機関の運転状態が定常状態であるときにリッチ設定空燃比及びリーン設定空燃比を第２リッチ設定空燃比及び第２リーン設定空燃比に設定する。第２リッチ設定空燃比は第１リッチ設定空燃比よりもリッチであり、第２リーン設定空燃比は第１リーン設定空燃比よりもリーンである。
【００７８】
上述した制御によって、定常状態では、非定常状態に比べて、リッチ設定空燃比及びリッチ判定空燃比のリッチ度合が大きくされ、リーン設定空燃比及びリーン判定空燃比のリーン度合が大きくされる。定常状態では、非定常状態に比べて、流入排気ガスの空燃比が安定している。このため、斯かる制御を実行することによって、排気エミッションの悪化を抑制しつつ、上流側触媒２０及び下流側触媒２４の酸素吸蔵能力の低下を抑制することができる。
【００７９】
＜タイムチャートを用いた空燃比制御の説明＞
図５を参照して、本実施形態における空燃比制御について具体的に説明する。図５は、第一実施形態における空燃比制御が実行されるときの内燃機関の運転状態、制御中心空燃比、空燃比補正量、学習値、流入排気ガスの理論空燃比に対する酸素過不足量の積算値（積算酸素過不足量）、及び下流側空燃比センサ４１の出力空燃比のタイムチャートである。積算酸素過不足量は、上記式（１）又は（２）により算出される酸素過不足量を積算することによって算出される。また、制御中心空燃比は上記式（４）に基づいて学習値に応じて変化し、流入排気ガスの目標空燃比は、制御中心空燃比に空燃比補正量を加算することによって算出される。
【００８０】
図示した例では、時刻ｔ０において、内燃機関の運転状態は非定常状態である。非定常状態では、リッチ補正量が第１リッチ補正量ＡＦＣｒｉｃｈ１に設定され、リーン補正量が第１リーン補正量ＡＦＣｌｅａｎ１に設定される。また、リッチ判定空燃比が第１リッチ判定空燃比ＡＦｒｉｃｈ１に設定され、リーン判定空燃比が第１リーン判定空燃比ＡＦｌｅａｎ１に設定される。第１リッチ補正量ＡＦＣｒｉｃｈ１は第１リッチ設定空燃比に対応し、第１リーン補正量ＡＦＣｌｅａｎ１は第１リーン設定空燃比に対応する。
【００８１】
また、時刻ｔ０において、空燃比補正量は第１リッチ補正量ＡＦＣｒｉｃｈ１に設定されており、流入排気ガスの空燃比が理論空燃比よりもリッチになっている。このため、上流側触媒２０は、未燃ガスを酸化させるのに不足している酸素を放出し、積算酸素過不足量が徐々に減少する。上流側触媒２０における浄化によって流出排気ガスには未燃ガス及びＮＯｘが含まれないため、下流側空燃比センサ４１の出力空燃比はほぼ理論空燃比となる。
【００８２】
上流側触媒２０の酸素吸蔵量がゼロに近付くと、上流側触媒２０に流入した未燃ガスの一部が上流側触媒２０から流出し始める。この結果、下流側空燃比センサ４１の出力空燃比が、徐々に低下し、時刻ｔ１において第１リッチ判定空燃比ＡＦｒｉｃｈ１に達する。
【００８３】
上流側触媒２０の酸素吸蔵量を増加させるべく、時刻ｔ１において、空燃比補正量が第１リッチ補正量ＡＦＣｒｉｃｈ１から第１リーン補正量ＡＦＣｌｅａｎ１に切り替えられる。すなわち、目標空燃比が第１リッチ設定空燃比から第１リーン設定空燃比に切り替えられる。また、時刻ｔ１において、学習値が更新され、酸素過不足量の積算値がゼロにリセットされる。この例では、酸素放出積算値ＯＤＡが酸素吸蔵積算値ＯＳＡ（図示せず）よりも大きかったため、学習値が大きくされる。
【００８４】
流入排気ガスの空燃比が理論空燃比よりもリーンになると、上流側触媒２０は流入排気ガス中の過剰な酸素を吸蔵し、積算酸素過不足量が徐々に増加する。このため、時刻ｔ１の後、上流側触媒２０の酸素吸蔵量の増加に伴い、流出排気ガスの空燃比が理論空燃比よりもリッチな空燃比から理論空燃比に変化し、下流側空燃比センサ４１の出力空燃比が理論空燃比に収束する。
【００８５】
その後、上流側触媒２０の酸素吸蔵量が最大酸素吸蔵量に近付くと、上流側触媒２０に流入した酸素及びＮＯｘの一部が上流側触媒２０から流出し始める。この結果、下流側空燃比センサ４１の出力空燃比が、徐々に高くなり、時刻ｔ２において第１リーン判定空燃比ＡＦｌｅａｎ１に達する。
【００８６】
上流側触媒２０の酸素吸蔵量を減少させるべく、時刻ｔ２において、空燃比補正量が第１リーン補正量ＡＦＣｌｅａｎ１から第１リッチ補正量ＡＦＣｒｉｃｈ１に切り替えられる。すなわち、目標空燃比が第１リーン設定空燃比から第１リッチ設定空燃比に切り替えられる。また、このとき、酸素過不足量の積算値がゼロにリセットされる。
【００８７】
時刻ｔ１と同様に時刻ｔ３において、下流側空燃比センサ４１の出力空燃比が、第１リッチ判定空燃比ＡＦｒｉｃｈ１に達する。このため、時刻ｔ３において、空燃比補正量が第１リッチ補正量ＡＦＣｒｉｃｈ１から第１リーン補正量ＡＦＣｌｅａｎ１に切り替えられる。すなわち、目標空燃比が第１リッチ設定空燃比から第１リーン設定空燃比に切り替えられる。また、時刻ｔ３において、学習値が更新され、酸素過不足量の積算値がゼロにリセットされる。この例では、時刻ｔ１〜時刻ｔ２の酸素吸蔵積算値ＯＳＡと時刻ｔ２〜時刻ｔ３の酸素放出積算値ＯＤＡとがほとんど同じであったため、学習値がほとんど変化しない。
【００８８】
その後、時刻ｔ４において、内燃機関の運転状態が非定常状態から定常状態に変化する。定常状態では、リッチ補正量が第２リッチ補正量ＡＦＣｒｉｃｈ２に設定され、リーン補正量が第２リーン補正量ＡＦＣｌｅａｎ２に設定される。第２リッチ補正量ＡＦＣｒｉｃｈ２は第１リッチ補正量ＡＦＣｒｉｃｈ１よりも小さく、第２リーン補正量ＡＦＣｌｅａｎ２は第１リーン補正量ＡＦＣｌｅａｎ１よりも大きい。第２リッチ補正量ＡＦＣｒｉｃｈ２は第２リッチ設定空燃比に対応し、第２リーン補正量ＡＦＣｌｅａｎ２は第２リーン設定空燃比に対応する。
【００８９】
また、定常状態では、リッチ判定空燃比が第２リッチ判定空燃比ＡＦｒｉｃｈ２に設定され、リーン判定空燃比が第２リーン判定空燃比ＡＦｌｅａｎ２に設定される。第２リッチ判定空燃比ＡＦｒｉｃｈ２は第１リッチ判定空燃比ＡＦｒｉｃｈ１よりもリッチであり、第２リーン判定空燃比ＡＦｌｅａｎ２は第１リーン判定空燃比ＡＦｌｅａｎ１よりもリーンである。
【００９０】
このため、時刻ｔ４において、空燃比補正量が第１リーン補正量ＡＦＣｌｅａｎ１から第２リーン補正量ＡＦＣｌｅａｎ２に切り替えられる。すなわち、目標空燃比が第１リーン設定空燃比から第２リーン設定空燃比に切り替えられる。また、時刻ｔ４において、内燃機関の運転状態が非定常状態から定常状態に変化したときの学習値が記憶される。
【００９１】
その後、時刻ｔ５において、下流側空燃比センサ４１の出力空燃比が第２リーン判定空燃比ＡＦｌｅａｎ２に達する。このため、空燃比補正量が第２リーン補正量ＡＦＣｌｅａｎ２から第２リッチ補正量ＡＦＣｒｉｃｈ２に切り替えられる。すなわち、目標空燃比が第２リーン設定空燃比から第２リッチ設定空燃比に切り替えられる。また、このとき、酸素過不足量の積算値がゼロにリセットされる。
【００９２】
時刻ｔ６において、下流側空燃比センサ４１の出力空燃比が、第２リッチ判定空燃比ＡＦｒｉｃｈ２に達する。このため、時刻ｔ６において、空燃比補正量が第２リッチ補正量ＡＦＣｒｉｃｈ２から第２リーン補正量ＡＦＣｌｅａｎ２に切り替えられる。すなわち、目標空燃比が第２リッチ設定空燃比から第２リーン設定空燃比に切り替えられる。また、時刻ｔ６において、学習値が更新され、酸素過不足量の積算値がゼロにリセットされる。
【００９３】
この例では、定常状態において下流側触媒２４に酸素を確実に供給すべく、第２リーン判定空燃比ＡＦｌｅａｎ２のリーン度合が第２リッチ判定空燃比ＡＦｒｉｃｈ２のリッチ度合よりも大きくされている。このため、時刻ｔ３〜時刻ｔ５の酸素吸蔵積算値ＯＳＡが時刻ｔ５〜時刻ｔ６の酸素放出積算値ＯＤＡよりも大きくなり、学習値が小さくされる。
【００９４】
時刻ｔ７において、下流側空燃比センサ４１の出力空燃比が第２リーン判定空燃比ＡＦｌｅａｎ２に達する。このため、空燃比補正量が第２リーン補正量ＡＦＣｌｅａｎ２から第２リッチ補正量ＡＦＣｒｉｃｈ２に切り替えられる。すなわち、目標空燃比が第２リーン設定空燃比から第２リッチ設定空燃比に切り替えられる。また、このとき、酸素過不足量の積算値がゼロにリセットされる。
【００９５】
時刻ｔ８において、下流側空燃比センサ４１の出力空燃比が、第２リッチ判定空燃比ＡＦｒｉｃｈ２に達する。このため、時刻ｔ８において、空燃比補正量が第２リッチ補正量ＡＦＣｒｉｃｈ２から第２リーン補正量ＡＦＣｌｅａｎ２に切り替えられる。すなわち、目標空燃比が第２リッチ設定空燃比から第２リーン設定空燃比に切り替えられる。また、時刻ｔ８において、学習値が更新され、酸素過不足量の積算値がゼロにリセットされる。
【００９６】
時刻ｔ６における学習値の更新によって、時刻ｔ６〜時刻ｔ７の酸素吸蔵積算値ＯＳＡと時刻ｔ７〜時刻ｔ８の酸素放出積算値ＯＤＡとの差が小さくなっている。しかしながら、時刻ｔ６〜時刻ｔ７の酸素吸蔵積算値ＯＳＡが時刻ｔ７〜時刻ｔ８の酸素放出積算値ＯＤＡよりも僅かに大きいため、時刻ｔ８において学習値が僅かに小さくされる。
【００９７】
その後、時刻ｔ９において、内燃機関の運転状態が定常状態から非定常状態に変化する。このため、空燃比補正量が第２リーン補正量ＡＦＣｌｅａｎ２から第１リーン補正量ＡＦＣｌｅａｎ１に切り替えられる。すなわち、目標空燃比が第２リーン設定空燃比から第１リーン設定空燃比に切り替えられる。また、時刻ｔ９において、時刻ｔ４において記憶された学習値に学習値が更新される。
【００９８】
時刻ｔ１０において、下流側空燃比センサ４１の出力空燃比が第１リーン判定空燃比ＡＦｌｅａｎ１に達する。このため、空燃比補正量が第１リーン補正量ＡＦＣｌｅａｎ１から第１リッチ補正量ＡＦＣｒｉｃｈ１に切り替えられる。すなわち、目標空燃比が第１リーン設定空燃比から第１リッチ設定空燃比に切り替えられる。また、このとき、酸素過不足量の積算値がゼロにリセットされる。
【００９９】
時刻ｔ１１において、下流側空燃比センサ４１の出力空燃比が、第１リッチ判定空燃比ＡＦｒｉｃｈ１に達する。このため、時刻ｔ１１において、空燃比補正量が第１リッチ補正量ＡＦＣｒｉｃｈ１から第１リーン補正量ＡＦＣｌｅａｎ１に切り替えられる。すなわち、目標空燃比が第１リッチ設定空燃比から第１リーン設定空燃比に切り替えられる。また、時刻ｔ１１において、学習値が更新され、酸素過不足量の積算値がゼロにリセットされる。この例では、時刻ｔ１０〜時刻ｔ１１の酸素放出積算値ＯＤＡが時刻ｔ８〜時刻ｔ１０の酸素吸蔵積算値ＯＳＡよりも大きかったため、学習値が大きくされる。
【０１００】
＜制御ブロック図＞
以下、図６〜図９を参照して本実施形態における空燃比制御について詳細に説明する。図６は、空燃比制御の制御ブロック図である。空燃比制御装置はＡ１〜Ａ１０の機能ブロックを含む。以下、各機能ブロックについて説明する。
【０１０１】
最初に、燃料噴射量の算出について説明する。燃料噴射量を算出するために、筒内吸入空気量算出手段Ａ１、基本燃料噴射量算出手段Ａ２及び燃料噴射量算出手段Ａ３が用いられる。
【０１０２】
筒内吸入空気量算出手段Ａ１は、吸入空気量Ｇａと、機関回転数ＮＥと、ＥＣＵ３１のＲＯＭ３４に記憶されたマップ又は計算式とに基づいて、各気筒への吸入空気量Ｍｃを算出する。吸入空気量Ｇａはエアフロメータ３９によって検出され、機関回転数ＮＥはクランク角センサ４４の出力に基づいて算出される。
【０１０３】
基本燃料噴射量算出手段Ａ２は、筒内吸入空気量算出手段Ａ１によって算出された筒内吸入空気量Ｍｃを目標空燃比ＴＡＦで除算することによって基本燃料噴射量Ｑｂａｓｅを算出する（Ｑｂａｓｅ＝Ｍｃ／ＴＡＦ）。目標空燃比ＴＡＦは、後述する目標空燃比設定手段Ａ８によって算出される。
【０１０４】
燃料噴射量算出手段Ａ３は、基本燃料噴射量算出手段Ａ２によって算出された基本燃料噴射量Ｑｂａｓｅに、後述するＦ／Ｂ補正量ＤＱｉを加えることによって燃料噴射量Ｑｉを算出する（Ｑｉ＝Ｑｂａｓｅ＋ＤＱｉ）。このようにして算出された燃料噴射量Ｑｉの燃料が燃料噴射弁１１から噴射されるように、燃料噴射弁１１に対して噴射指示が行われる。
【０１０５】
次に、目標空燃比の算出について説明する。目標空燃比を算出するために、酸素過不足量算出手段Ａ４、空燃比補正量算出手段Ａ５、学習値算出手段Ａ６、制御中心空燃比算出手段Ａ７及び目標空燃比設定手段Ａ８が用いられる。
【０１０６】
酸素過不足量算出手段Ａ４は、上流側空燃比センサ４０の出力空燃比ＡＦｕｐと、燃料噴射量算出手段Ａ３によって算出された燃料噴射量Ｑｉ又は吸入空気量Ｇａとに基づいて上記式（１）又は（２）により酸素過不足量を算出する。また、酸素過不足量算出手段Ａ４は、酸素過不足量を積算することによって積算酸素過不足量ΣＯＥＤを算出する。
【０１０７】
空燃比補正量算出手段Ａ５では下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎに基づいて、目標空燃比の空燃比補正量ＡＦＣが算出される。具体的には、図９に示したフローチャートに基づいて空燃比補正量ＡＦＣが算出される。
【０１０８】
学習値算出手段Ａ６では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎ、酸素過不足量算出手段Ａ４によって算出された積算酸素過不足量ΣＯＥＤ等に基づいて学習値ｓｆｂｇが算出される。具体的には、図８に示したフローチャートに基づいて学習値ｓｆｂｇが算出される。
【０１０９】
制御中心空燃比算出手段Ａ７では、基本制御中心空燃比ＡＦＲｂａｓｅ（本実施形態では理論空燃比）と、学習値算出手段Ａ６によって算出された学習値ｓｆｂｇとに基づいて制御中心空燃比ＡＦＲが算出される。具体的には、上記式（４）に示したように、基本制御中心空燃比ＡＦＲｂａｓｅから学習値ｓｆｂｇを減算することによって制御中心空燃比ＡＦＲが算出される。
【０１１０】
目標空燃比設定手段Ａ８は、制御中心空燃比算出手段Ａ７によって算出された制御中心空燃比ＡＦＲに、空燃比補正量算出手段Ａ５によって算出された空燃比補正量ＡＦＣを加算することで、目標空燃比ＴＡＦを算出する。このようにして算出された目標空燃比ＴＡＦは、基本燃料噴射量算出手段Ａ２及び後述する空燃比偏差算出手段Ａ９に入力される。
【０１１１】
次に、上流側空燃比センサ４０の出力空燃比ＡＦｕｐに基づいたＦ／Ｂ補正量の算出について説明する。Ｆ／Ｂ補正量を算出するために、空燃比偏差算出手段Ａ９及びＦ／Ｂ補正量算出手段Ａ１０が用いられる。
【０１１２】
空燃比偏差算出手段Ａ９は、上流側空燃比センサ４０の出力空燃比ＡＦｕｐから目標空燃比設定手段Ａ８によって算出された目標空燃比ＴＡＦを減算することによって空燃比偏差ＤＡＦを算出する（ＤＡＦ＝ＡＦｕｐ−ＴＡＦ）。この空燃比偏差ＤＡＦは、目標空燃比ＴＡＦに対する燃料供給量の過不足を表す値である。
【０１１３】
Ｆ／Ｂ補正量算出手段Ａ１０は、空燃比偏差算出手段Ａ９によって算出された空燃比偏差ＤＡＦを、比例・積分・微分処理（ＰＩＤ処理）することで、下記式（５）に基づいて燃料供給量の過不足を補償するためのＦ／Ｂ補正量ＤＱｉを算出する。このようにして算出されたＦ／Ｂ補正量ＤＱｉは、燃料噴射量算出手段Ａ３に入力される。
ＤＱｉ＝Ｋｐ・ＤＡＦ＋Ｋｉ・ＳＤＡＦ＋Ｋｄ・ＤＤＡＦ      …（５）
【０１１４】
なお、上記式（５）において、Ｋｐは予め設定された比例ゲイン（比例定数）、Ｋｉは予め設定された積分ゲイン（積分定数）、Ｋｄは予め設定された微分ゲイン（微分定数）である。また、ＤＤＡＦは、空燃比偏差ＤＡＦの時間微分値であり、今回更新された空燃比偏差ＤＡＦと前回の空燃比偏差ＤＡＦとの偏差を更新間隔に対応する時間で除算することで算出される。また、ＳＤＡＦは、空燃比偏差ＤＡＦの時間積分値であり、前回の時間積分値ＳＤＡＦに今回更新された空燃比偏差ＤＡＦを加算することで算出される。
【０１１５】
＜制御条件設定処理＞
図７は、第一実施形態における制御条件設定処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、内燃機関の始動後、ＥＣＵ３１によって所定の時間間隔で繰り返し実行される。
【０１１６】
最初にステップＳ１０１において、内燃機関の運転状態が定常状態であるか否かが判定される。例えば、機関負荷の単位時間当たりの変化量が所定値以下であるときに内燃機関が定常状態であると判定され、機関負荷の単位時間当たりの変化量が所定値よりも大きいときに内燃機関が非定常状態であると判定される。機関負荷は負荷センサ４３によって検出される。また、内燃機関の吸入空気量の単位時間当たりの変化量が所定値以下であるときに内燃機関が定常状態であると判定され、内燃機関の吸入空気量の単位時間当たりの変化量が所定値よりも大きいときに内燃機関が非定常状態であると判定されてもよい。吸入空気量はエアフロメータ３９によって検出される。
【０１１７】
ステップＳ１０１において内燃機関の運転状態が非定常状態であると判定された場合、本制御ルーチンはステップＳ１０２に進む。ステップＳ１０２では、リッチ判定空燃比ＡＦｒｉｃｈが第１リッチ判定空燃比ＡＦｒｉｃｈ１に設定され、リーン判定空燃比ＡＦｌｅａｎが第１リーン判定空燃比ＡＦｌｅａｎ１に設定される。次いで、ステップＳ１０３では、リッチ補正量ＡＦＣｒｉｃｈが第１リッチ補正量ＡＦＣｒｉｃｈ１に設定され、リーン補正量ＡＦＣｌｅａｎが第１リーン補正量ＡＦＣｌｅａｎ１に設定される。すなわち、リッチ設定空燃比が第１リッチ設定空燃比に設定され、リーン設定空燃比が第１リーン設定空燃比に設定される。ステップＳ１０３の後、本制御ルーチンは終了する。
【０１１８】
一方、ステップＳ１０１において内燃機関の運転状態が定常状態であると判定された場合、本制御ルーチンはステップＳ１０４に進む。ステップＳ１０４では、リッチ判定空燃比ＡＦｒｉｃｈが第２リッチ判定空燃比ＡＦｒｉｃｈ２に設定され、リーン判定空燃比ＡＦｌｅａｎが第２リーン判定空燃比ＡＦｌｅａｎ２に設定される。次いで、ステップＳ１０５では、リッチ補正量ＡＦＣｒｉｃｈが第２リッチ補正量ＡＦＣｒｉｃｈ２に設定され、リーン補正量ＡＦＣｌｅａｎが第２リーン補正量ＡＦＣｌｅａｎ２に設定される。すなわち、リッチ設定空燃比が第２リッチ設定空燃比に設定され、リーン設定空燃比が第２リーン設定空燃比に設定される。ステップＳ１０５の後、本制御ルーチンは終了する。
【０１１９】
なお、定常状態と非定常状態との間で、リッチ判定空燃比ＡＦｒｉｃｈ及びリーン判定空燃比ＡＦｌｅａｎのいずれか一方の値のみが変更されてもよい。また、定常状態と非定常状態との間で、リッチ補正量ＡＦＣｒｉｃｈ及びリーン補正量ＡＦＣｌｅａｎのいずれか一方の値のみが変更されてもよい。また、定常状態と非定常状態との間で、リッチ補正量ＡＦＣｒｉｃｈ及びリーン補正量ＡＦＣｌｅａｎが変更されなくてもよい。この場合、ステップＳ１０３及びステップＳ１０５は省略される。
【０１２０】
また、リッチ判定空燃比ＡＦｒｉｃｈ、リーン判定空燃比ＡＦｌｅａｎ、リッチ補正量ＡＦＣｒｉｃｈ及びリーン補正量ＡＦＣｌｅａｎの切替は、内燃機関の運転状態が定常状態と非定常状態との間で変化するタイミングで行われなくてもよい。例えば、これらの切替は、内燃機関の運転状態が定常状態と非定常状態との間で変化した後に目標空燃比が切り替えられたタイミングで行われてもよい。
【０１２１】
＜学習値更新処理＞
図８は、第一実施形態における学習値更新処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、内燃機関の始動後、ＥＣＵ３１によって所定の時間間隔で繰り返し実行される。
【０１２２】
最初にステップＳ２０１において、前回の制御ルーチンにおいてステップＳ２０１が実行されてから今回の制御ルーチンにおいてステップＳ２０１が実行されるまでの間に、内燃機関の運転状態が定常状態と非定常状態との間で変化したか否かが判定される。内燃機関の運転状態が変化していないと判定された場合、本制御ルーチンはステップＳ２０５に進む。
【０１２３】
ステップＳ２０５では、積算酸素過不足量ΣＯＥＤが算出される。積算酸素過不足量ΣＯＥＤは、上記式（１）又は（２）により算出される酸素過不足量を積算することによって算出される。次いで、ステップＳ２０６において、前回の制御ルーチンにおいてステップＳ２０６が実行されてから今回の制御ルーチンにおいてステップＳ２０６が実行されるまでの間に、目標空燃比の切替が行われたか否かが判定される。目標空燃比の切替が行われていないと判定された場合、本制御ルーチンは終了する。一方、目標空燃比の切替が行われたと判定された場合、本制御ルーチンはステップＳ２０７に進む。
【０１２４】
ステップＳ２０７では、目標空燃比がリッチ設定空燃比ＴＡＦｒｉｃｈからリーン設定空燃比ＴＡＦｌｅａｎに切り替えられたか否かが判定される。目標空燃比がリーン設定空燃比ＴＡＦｌｅａｎからリッチ設定空燃比ＴＡＦｒｉｃｈに切り替えられたと判定された場合、本制御ルーチンはステップＳ２０８に進む。ステップＳ２０８では、酸素吸蔵積算値ＯＳＡが積算酸素過不足量ΣＯＥＤの値に更新され、その後、積算酸素過不足量ΣＯＥＤがゼロにリセットされる。ステップＳ２０８の後、本制御ルーチンは終了する。
【０１２５】
一方、ステップＳ２０７において、目標空燃比がリッチ設定空燃比ＴＡＦｒｉｃｈからリーン設定空燃比ＴＡＦｌｅａｎに切り替えられたと判定された場合、本制御ルーチンはステップＳ２０９に進む。ステップＳ２０９では、酸素放出積算値ＯＤＡが積算酸素過不足量ΣＯＥＤの絶対値に更新され、その後、積算酸素過不足量ΣＯＥＤがゼロにリセットされる。
【０１２６】
次いで、ステップＳ２１０において、酸素放出積算値ＯＤＡから酸素吸蔵積算値ＯＳＡを減算することによって酸素量誤差ＤＯＡが算出される。次いで、ステップＳ２１１において、酸素量誤差ＤＯＡに基づいて上記式（３）により学習値ｓｆｂｇが更新される。ステップＳ２１１の後、本制御ルーチンは終了する。
【０１２７】
また、ステップＳ２０１において内燃機関の運転状態が変化したと判定された場合、本制御ルーチンはステップＳ２０２に進む。ステップＳ２０２では、内燃機関の運転状態が非定常状態から定常状態に変化したか否かが判定される。内燃機関の運転状態が非定常状態から定常状態に変化したと判定された場合、本制御ルーチンはステップＳ２０３に進む。ステップＳ２０３では、内燃機関の運転状態が非定常状態から定常状態に変化したときの学習値ｓｆｂｇ（ｓｗ）が記憶される。
【０１２８】
一方、ステップＳ２０２において内燃機関の運転状態が定常状態から非定常状態に変化したと判定された場合、本制御ルーチンはステップＳ２０４に進む。ステップＳ２０４では、学習値ｓｆｂｇが、ステップＳ２０３において記憶された学習値ｓｆｂｇ（ｓｗ）に更新される。
【０１２９】
なお、ステップＳ２１０及びステップＳ２１１はステップＳ２０８の後に実行されてもよい。また、ステップＳ２０３において内燃機関の運転状態が非定常状態から定常状態に変化したときの学習値ｓｆｂｇ（ｓｗ１）が記憶され、ステップＳ２０４において学習値ｓｆｂｇが学習値ｓｆｂｇ（ｓｗ１）に更新され、且つ、ステップＳ２０４において内燃機関の運転状態が定常状態から非定常状態に変化したときの学習値ｓｆｂｇ（ｓｗ２）が記憶され、ステップＳ２０３において学習値ｓｆｂｇが学習値ｓｆｂｇ（ｓｗ２）に更新されてもよい。また、この例では、第１状態が非定常状態であり、第２状態が定常状態であるが、第１状態が定常状態であり、第２状態が非定常状態であってもよい。この場合、ステップＳ２０２において、内燃機関の運転状態が定常状態から非定常状態に変化したか否かが判定される。
【０１３０】
＜目標空燃比設定処理＞
図９は、第一実施形態における目標空燃比設定処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、内燃機関の始動後、ＥＣＵ３１によって所定の時間間隔で繰り返し実行される。
【０１３１】
最初にステップＳ３０１において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下であるか否かが判定される。リッチ判定空燃比ＡＦｒｉｃｈは、図７のステップＳ１０２又はステップＳ１０４において設定される。
【０１３２】
ステップＳ３０１において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下であると判定された場合、本制御ルーチンはステップＳ３０２に進む。ステップＳ３０２では、空燃比補正量ＡＦＣがリーン補正量ＡＦＣｌｅａｎに設定される。すなわち、目標空燃比がリーン設定空燃比に設定される。リーン補正量ＡＦＣｌｅａｎは、図７のステップＳ１０３又はステップＳ１０５において設定される。
【０１３３】
一方、ステップＳ３０１において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈよりも高いと判定された場合、本制御ルーチンはステップＳ３０３に進む。ステップＳ３０３では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン判定空燃比ＡＦｌｅａｎ以上であるか否かが判定される。リーン判定空燃比ＡＦｌｅａｎは、図７のステップＳ１０２又はステップＳ１０４において設定される。
【０１３４】
ステップＳ３０３において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン判定空燃比ＡＦｌｅａｎ以上であると判定された場合、本制御ルーチンはステップＳ３０４に進む。ステップＳ３０４では、空燃比補正量ＡＦＣがリッチ補正量ＡＦＣｒｉｃｈに設定される。すなわち、目標空燃比がリッチ設定空燃比に設定される。リッチ補正量ＡＦＣｒｉｃｈは、図７のステップＳ１０３又はステップＳ１０５において設定される。ステップＳ３０４の後、本制御ルーチンは終了する。
【０１３５】
一方、ステップＳ３０３において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン判定空燃比ＡＦｌｅａｎ未満であると判定された場合、本制御ルーチンは終了する。この場合、空燃比補正量ＡＦＣは、現在設定されている値に維持される。
【０１３６】
＜第二実施形態＞
第二実施形態における内燃機関の排気浄化装置の構成及び制御は、以下に説明する点を除いて、基本的に第一実施形態における内燃機関の排気浄化装置と同様である。このため、以下、本発明の第二実施形態について、第一実施形態と異なる部分を中心に説明する。
【０１３７】
空燃比制御装置は、下流側空燃比センサ４１の出力によって上流側触媒２０の酸素吸蔵量がゼロ又は最大値であることを検出できるため、上流側触媒２０の酸素吸蔵量をゼロと最大値との間で変動させることができる。しかしながら、上流側触媒２０から排出される水素やアンモニアの影響によって、下流側空燃比センサ４１の出力空燃比が実際の空燃比よりもリッチになる場合がある。この場合、下流側空燃比センサ４１の出力空燃比がリーン判定空燃比以上になるまでの時間が長くなり、目標空燃比をリーン設定空燃比からリッチ設定空燃比に切り替えるタイミングが遅くなる。この結果、目標空燃比がリーン設定空燃比に設定されている間に触媒から多量のＮＯｘが流出し、排気エミッションが悪化するおそれがある。
【０１３８】
そこで、第二実施形態では、空燃比制御部は、下流側空燃比センサ４１の出力空燃比がリーン判定空燃比に達する前に、酸素吸蔵積算値が閾値に達した場合には、酸素吸蔵積算値が閾値に達したときに目標空燃比をリーン設定空燃比からリッチ設定空燃比に切り替える。このことによって、上流側触媒２０から排出される水素やアンモニアの影響によって、目標空燃比がリーン設定空燃比に設定されている間に上流側触媒２０から多量のＮＯｘが流出することを抑制することができる。
【０１３９】
空燃比制御装置は酸素吸蔵積算値及び酸素放出積算値に基づいて閾値を更新する。例えば、空燃比制御装置は、酸素吸蔵積算値ＯＳＡ及び酸素放出積算値ＯＤＡに基づいて最大酸素吸蔵量Ｃｍａｘを下記式（６）により算出し、最大酸素吸蔵量Ｃｍａｘに基づいて閾値ＯＥＤｔｈを下記式（７）により算出する。
Ｃｍａｘ＝（ＯＳＡ＋ＯＤＡ）／２      …（６）
ＯＥＤｔｈ＝Ｃｍａｘ×Ａ      …（７）
【０１４０】
係数Ａは、１よりも大きな値であり、例えば１．１〜１．５、好ましくは１．２である。閾値ＯＥＤｔｈが最大酸素吸蔵量Ｃｍａｘよりも大きな値であるので、酸素吸蔵積算値ＯＳＡが閾値ＯＥＤｔｈに達した場合には、上流側触媒２０の実際の酸素吸蔵量が最大値に達していると考えられる。
【０１４１】
上述したように、内燃機関の運転状態の第１状態と第２状態との間で目標空燃比を切り替える条件が変更されると、酸素吸蔵積算値及び酸素放出積算値の少なくとも一方が変動する。この結果、上記式（６）、（７）から分かるように、内燃機関の運転状態に応じて閾値が変動する。このため、内燃機関の運転状態が変化したときに閾値が維持されると、閾値が変化後の運転状態に適さない値となり、排気エミッションが悪化するおそれがある。
【０１４２】
そこで、第二実施形態では、空燃比制御装置は、内燃機関の運転状態が第１状態から第２状態に変化するときの閾値を第１状態閾値として記憶し、内燃機関の運転状態が第２状態から第１状態に戻るときに閾値を第１状態閾値に更新する。このことによって、第２状態において更新された不適切な閾値が第１状態において用いられないため、内燃機関の運転状態が第２状態から第１状態に戻った後に、排気エミッションが悪化することを抑制することができる。
【０１４３】
なお、空燃比制御装置は、上記の制御に加えて、内燃機関の運転状態が第２状態から第１状態に変化するときの閾値を第２状態閾値として記憶し、内燃機関の運転状態が第１状態から第２状態に戻るときに閾値を第２状態閾値に更新してもよい。このことによって、第１状態において更新された不適切な閾値が第２状態において用いられないため、内燃機関の運転状態が第１状態から第２状態に戻った後に、排気エミッションが悪化することを抑制することができる。
【０１４４】
＜閾値更新処理＞
以下、第二実施形態における空燃比制御について詳細に説明する。以下の例では、第１状態が非定常状態であり、第２状態が定常状態である。第二実施形態では、図７の制御条件設定処理及び図８の学習値更新処理の制御ルーチンに加えて、閾値更新処理の制御ルーチンが実行される。
【０１４５】
図１０は、第二実施形態における閾値更新処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、内燃機関の始動後、ＥＣＵ３１によって所定の時間間隔で繰り返し実行される。
【０１４６】
最初にステップＳ４０１において、前回の制御ルーチンにおいてステップＳ４０１が実行されてから今回の制御ルーチンにおいてステップＳ４０１が実行されるまでの間に、内燃機関の運転状態が定常状態と非定常状態との間で変化したか否かが判定される。内燃機関の運転状態が変化していないと判定された場合、本制御ルーチンはステップＳ４０５に進む。
【０１４７】
ステップＳ４０５では、積算酸素過不足量ΣＯＥＤが算出される。積算酸素過不足量ΣＯＥＤは、上記式（１）又は（２）により算出される酸素過不足量を積算することによって算出される。次いで、ステップＳ４０６において、前回の制御ルーチンにおいてステップＳ４０６が実行されてから今回の制御ルーチンにおいてステップＳ４０６が実行されるまでの間に、目標空燃比の切替が行われたか否かが判定される。目標空燃比の切替が行われていないと判定された場合、本制御ルーチンは終了する。一方、目標空燃比の切替が行われたと判定された場合、本制御ルーチンはステップＳ４０７に進む。
【０１４８】
ステップＳ４０７では、目標空燃比がリッチ設定空燃比ＴＡＦｒｉｃｈからリーン設定空燃比ＴＡＦｌｅａｎに切り替えられたか否かが判定される。目標空燃比がリーン設定空燃比ＴＡＦｌｅａｎからリッチ設定空燃比ＴＡＦｒｉｃｈに切り替えられたと判定された場合、本制御ルーチンはステップＳ４０８に進む。ステップＳ４０８では、酸素吸蔵積算値ＯＳＡが積算酸素過不足量ΣＯＥＤの値に更新され、その後、積算酸素過不足量ΣＯＥＤがゼロにリセットされる。
【０１４９】
一方、ステップＳ４０７において、目標空燃比がリッチ設定空燃比ＴＡＦｒｉｃｈからリーン設定空燃比ＴＡＦｌｅａｎに切り替えられたと判定された場合、本制御ルーチンはステップＳ４０９に進む。ステップＳ４０９では、酸素放出積算値ＯＤＡが酸素過不足量の積算値ΣＯＥＤの絶対値に更新され、その後、積算酸素過不足量ΣＯＥＤがゼロにリセットされる。
【０１５０】
ステップＳ４０８又はステップＳ４０９の後、ステップＳ４１０において、上流側触媒２０の最大酸素吸蔵量Ｃｍａｘが上記式（６）により算出される。なお、最大酸素吸蔵量Ｃｍａｘは酸素放出量ＯＤＡ又は酸素吸蔵量ＯＳＡとして算出されてもよい。
【０１５１】
次いで、ステップＳ４１１において、最大酸素吸蔵量Ｃｍａｘに基づいて上記式（７）により閾値ＯＥＤｔｈが更新される。ステップＳ４１１の後、本制御ルーチンは終了する。
【０１５２】
また、ステップＳ４０１において内燃機関の運転状態が変化したと判定された場合、本制御ルーチンはステップＳ４０２に進む。ステップＳ４０２では、内燃機関の運転状態が非定常状態から定常状態に変化したか否かが判定される。内燃機関の運転状態が非定常状態から定常状態に変化したと判定された場合、本制御ルーチンはステップＳ４０３に進む。ステップＳ４０３では、内燃機関の運転状態が非定常状態から定常状態に変化したときの閾値ＯＥＤｔｈ（ｓｗ）が記憶される。
【０１５３】
一方、ステップＳ４０２において内燃機関の運転状態が定常状態から非定常状態に変化したと判定された場合、本制御ルーチンはステップＳ４０４に進む。ステップＳ４０４では、閾値ＯＥＤｔｈが、ステップＳ４０３において記憶された閾値ＯＥＤｔｈ（ｓｗ）に更新される。
【０１５４】
なお、ステップＳ４０３において内燃機関の運転状態が非定常状態から定常状態に変化したときの閾値ＯＥＤｔｈ（ｓｗ１）が記憶され、ステップＳ４０４において閾値ＯＥＤｔｈが閾値ＯＥＤｔｈ（ｓｗ１）に更新され、且つ、ステップＳ４０４において内燃機関の運転状態が定常状態から非定常状態に変化したときの閾値ＯＥＤｔｈ（ｓｗ２）が記憶され、ステップＳ４０３において閾値ＯＥＤｔｈが閾値ＯＥＤｔｈ（ｓｗ２）に更新されてもよい。また、この例では、第１状態が非定常状態であり、第２状態が定常状態であるが、第１状態が定常状態であり、第２状態が非定常状態であってもよい。この場合、ステップＳ４０２において、内燃機関の運転状態が定常状態から非定常状態に変化したか否かが判定される。
【０１５５】
＜目標空燃比設定処理＞
図１１は、第二実施形態における目標空燃比設定処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、内燃機関の始動後、ＥＣＵ３１によって所定の時間間隔で繰り返し実行される。
【０１５６】
最初にステップＳ５０１において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下であるか否かが判定される。リッチ判定空燃比ＡＦｒｉｃｈは、図７のステップＳ１０２又はステップＳ１０４において設定される。ステップＳ５０１において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下であると判定された場合、本制御ルーチンはステップＳ５０２に進む。
【０１５７】
ステップＳ５０２では、空燃比補正量ＡＦＣがリーン補正量ＡＦＣｌｅａｎに設定される。すなわち、目標空燃比がリーン設定空燃比に設定される。リーン補正量ＡＦＣｌｅａｎは、図７のステップＳ１０３又はステップＳ１０５において設定される。また、ステップＳ５０２では、リーンフラグＦｌｅａｎが１に設定される。リーンフラグＦｌｅａｎは、目標空燃比がリーン設定空燃比に設定されているときに１に設定され、目標空燃比がリッチ設定空燃比に設定されているときにゼロに設定されるフラグである。
【０１５８】
一方、ステップＳ５０１において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈよりも高いと判定された場合、本制御ルーチンはステップＳ５０３に進む。ステップＳ５０３では、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン判定空燃比ＡＦｌｅａｎ以上であるか否かが判定される。リーン判定空燃比ＡＦｌｅａｎは、図７のステップＳ１０２又はステップＳ１０４において設定される。
【０１５９】
ステップＳ５０３において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン判定空燃比ＡＦｌｅａｎ以上であると判定された場合、本制御ルーチンはステップＳ５０４に進む。ステップＳ５０４では、空燃比補正量ＡＦＣがリッチ補正量ＡＦＣｒｉｃｈに設定される。すなわち、目標空燃比がリッチ設定空燃比に設定される。リッチ補正量ＡＦＣｒｉｃｈは、図７のステップＳ１０３又はステップＳ１０５において設定される。また、ステップＳ５０４では、リーンフラグＦｌｅａｎがゼロに設定される。ステップＳ５０４の後、本制御ルーチンは終了する。
【０１６０】
一方、ステップＳ５０３において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリーン判定空燃比ＡＦｌｅａｎ未満であると判定された場合、本制御ルーチンはステップＳ５０５に進む。ステップＳ５０５では、リーンフラグＦｌｅａｎが１であるか否かが判定される。リーンフラグＦｌｅａｎがゼロであると判定された場合、本制御ルーチンは終了する。この場合、空燃比補正量ＡＦＣは、現在設定されている値に維持される。
【０１６１】
一方、ステップＳ５０５においてリーンフラグＦｌｅａｎが１であると判定された場合、本制御ルーチンはステップＳ５０６に進む。ステップＳ５０６では、積算酸素過不足量ΣＯＥＤが閾値ＯＥＤｔｈ以上であるか否かが判定される。閾値ＯＥＤｔｈは図１０の制御ルーチンにおいて設定される。積算酸素過不足量ΣＯＥＤは、上記式（１）又は（２）により算出される酸素過不足量を積算することによって算出される。なお、目標空燃比がリーン設定空燃比に設定されているときに算出される積算酸素過不足量ΣＯＥＤは酸素吸蔵積算値に相当する。また、積算酸素過不足量ΣＯＥＤは図１０のステップＳ４０８又はステップＳ４０９においてゼロにリセットされる。
【０１６２】
Ｓ５０６において積算酸素過不足量ΣＯＥＤが閾値ＯＥＤｔｈ未満であると判定された場合、本制御ルーチンは終了する。この場合、空燃比補正量ＡＦＣは、現在設定されている値に維持される。
【０１６３】
一方、Ｓ５０６において積算酸素過不足量ΣＯＥＤが閾値ＯＥＤｔｈ以上であると判定された場合、本制御ルーチンはステップＳ５０４に進む。ステップＳ５０４では、空燃比補正量ＡＦＣがリッチ補正量ＡＦＣｒｉｃｈに設定され、リーンフラグＦｌｅａｎがゼロに設定される。ステップＳ５０４の後、本制御ルーチンは終了する。
【０１６４】
＜第三実施形態＞
第三実施形態における内燃機関の排気浄化装置の構成及び制御は、以下に説明する点を除いて、基本的に第一実施形態における内燃機関の排気浄化装置と同様である。このため、以下、本発明の第三実施形態について、第一実施形態と異なる部分を中心に説明する。
【０１６５】
第三実施形態では、空燃比制御装置は、下流側空燃比センサ４１の出力空燃比がリッチ判定空燃比に達したときに目標空燃比をリッチ設定空燃比からリーン設定空燃比に切り替え、酸素吸蔵積算値が最大酸素吸蔵量よりも少ない切替吸蔵量に達したときに目標空燃比をリーン設定空燃比からリッチ設定空燃比に切り替える。この制御によって、基本的には上流側触媒２０の酸素吸蔵量が最大酸素吸蔵量に達しないため、上流側触媒２０からＮＯｘが流出することを抑制することができる。
【０１６６】
また、空燃比制御装置は、目標空燃比を切り替える条件、すなわちリッチ判定空燃比及び切替吸蔵量の少なくとも一方の値を第１状態と第２状態との間で変更する。例えば、空燃比制御装置は、内燃機関の運転状態が非定常状態であるときにリッチ判定空燃比及び切替吸蔵量を第１リッチ判定空燃比及び第１切替吸蔵量に設定し、内燃機関の運転状態が定常状態であるときにリッチ判定空燃比及び切替吸蔵量を第２リッチ判定空燃比及び第２切替吸蔵量に設定する。第２リッチ判定空燃比は第１リッチ判定空燃比よりもリッチであり、第２切替吸蔵量は第１切替吸蔵量よりも多い。
【０１６７】
また、空燃比制御装置はリッチ設定空燃比及びリーン設定空燃比の値を非定常状態と定常状態との間で変更する。例えば、空燃比制御装置は、内燃機関の運転状態が非定常状態であるときにリッチ設定空燃比及びリーン設定空燃比を第１リッチ設定空燃比及び第１リーン設定空燃比に設定し、内燃機関の運転状態が定常状態であるときにリッチ設定空燃比及びリーン設定空燃比を第２リッチ設定空燃比及び第２リーン設定空燃比に設定する。第２リッチ設定空燃比は第１リッチ設定空燃比よりもリッチであり、第２リーン設定空燃比は第１リーン設定空燃比よりもリーンである。
【０１６８】
＜制御条件設定処理＞
図１２は、第三実施形態における制御条件設定処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、内燃機関の始動後、ＥＣＵ３１によって所定の時間間隔で繰り返し実行される。
【０１６９】
最初にステップＳ６０１において、図７のステップＳ１０１と同様に、内燃機関の運転状態が定常状態であるか否かが判定される。内燃機関の運転状態が非定常状態であると判定された場合、本制御ルーチンはステップＳ６０２に進む。ステップＳ６０２では、リッチ判定空燃比ＡＦｒｉｃｈが第１リッチ判定空燃比ＡＦｒｉｃｈ１に設定され、切替吸蔵量Ｃｓｗが第１切替吸蔵量Ｃｓｗ１に設定される。次いで、ステップＳ６０３では、リッチ補正量ＡＦＣｒｉｃｈが第１リッチ補正量ＡＦＣｒｉｃｈ１に設定され、リーン補正量ＡＦＣｌｅａｎが第１リーン補正量ＡＦＣｌｅａｎ１に設定される。すなわち、リッチ設定空燃比が第１リッチ設定空燃比に設定され、リーン設定空燃比が第１リーン設定空燃比に設定される。ステップＳ６０３の後、本制御ルーチンは終了する。
【０１７０】
一方、ステップＳ６０１において内燃機関の運転状態が定常状態であると判定された場合、本制御ルーチンはステップＳ６０４に進む。ステップＳ６０４では、リッチ判定空燃比ＡＦｒｉｃｈが第２リッチ判定空燃比ＡＦｒｉｃｈ２に設定され、切替吸蔵量Ｃｓｗが第２切替吸蔵量Ｃｓｗ２に設定される。次いで、ステップＳ６０５では、リッチ補正量ＡＦＣｒｉｃｈが第２リッチ補正量ＡＦＣｒｉｃｈ２に設定され、リーン補正量ＡＦＣｌｅａｎが第２リーン補正量ＡＦＣｌｅａｎ２に設定される。すなわち、リッチ設定空燃比が第２リッチ設定空燃比に設定され、リーン設定空燃比が第２リーン設定空燃比に設定される。ステップＳ６０５の後、本制御ルーチンは終了する。
【０１７１】
なお、定常状態と非定常状態との間で、リッチ判定空燃比ＡＦｒｉｃｈの値のみが変更されてもよい。また、定常状態と非定常状態との間で、リッチ補正量ＡＦＣｒｉｃｈ及びリーン補正量ＡＦＣｌｅａｎのいずれか一方の値のみが変更されてもよい。また、定常状態と非定常状態との間で、リッチ補正量ＡＦＣｒｉｃｈ及びリーン補正量ＡＦＣｌｅａｎが変更されなくてもよい。この場合、ステップＳ６０３及びステップＳ６０５は省略される。
【０１７２】
また、リッチ判定空燃比ＡＦｒｉｃｈ、切替吸蔵量Ｃｒｅｆ、リッチ補正量ＡＦＣｒｉｃｈ及びリーン補正量ＡＦＣｌｅａｎの切替は、内燃機関の運転状態が定常状態と非定常状態との間で変化するタイミングで行われなくてもよい。例えば、これらの切替は、内燃機関の運転状態が定常状態と非定常状態との間で変化した後に目標空燃比が切り替えられたタイミングで行われてもよい。
【０１７３】
＜目標空燃比設定処理＞
図１３は、第三実施形態における目標空燃比設定処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、内燃機関の始動後、ＥＣＵ３１によって所定の時間間隔で繰り返し実行される。
【０１７４】
最初にステップＳ７０１において、下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下であるか否かが判定される。リッチ判定空燃比ＡＦｒｉｃｈは、図１２のステップＳ６０２又はステップＳ６０４において設定される。ステップＳ７０１において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈ以下であると判定された場合、本制御ルーチンはステップＳ７０２に進む。
【０１７５】
ステップＳ７０２では、空燃比補正量ＡＦＣがリーン補正量ＡＦＣｌｅａｎに設定される。すなわち、目標空燃比がリーン設定空燃比に設定される。リーン補正量ＡＦＣｌｅａｎは、図１２のステップＳ６０３又はステップＳ６０５において設定される。また、ステップＳ７０２では、リーンフラグＦｌｅａｎが１に設定される。リーンフラグＦｌｅａｎは、目標空燃比がリーン設定空燃比に設定されているときに１に設定され、目標空燃比がリッチ設定空燃比に設定されているときにゼロに設定されるフラグである。また、ステップＳ７０２では、積算酸素過不足量ΣＯＥＤがゼロにリセットされる。
【０１７６】
一方、ステップＳ７０１において下流側空燃比センサ４１の出力空燃比ＡＦｄｗｎがリッチ判定空燃比ＡＦｒｉｃｈよりも高いと判定された場合、本制御ルーチンはステップＳ７０３に進む。ステップＳ７０３では、リーンフラグＦｌｅａｎが１であるか否かが判定される。リーンフラグＦｌｅａｎがゼロであると判定された場合、本制御ルーチンは終了する。この場合、空燃比補正量ＡＦＣは、現在設定されている値に維持される。
【０１７７】
一方、ステップＳ７０３においてリーンフラグＦｌｅａｎが１であると判定された場合、本制御ルーチンはステップＳ７０４に進む。ステップＳ７０４では、積算酸素過不足量ΣＯＥＤが切替吸蔵量Ｃｓｗ以上であるか否かが判定される。切替吸蔵量Ｃｓｗは図１２のステップＳ６０２又はステップＳ６０４において設定される。積算酸素過不足量ΣＯＥＤは、上記式（１）又は（２）により算出される酸素過不足量を積算することによって算出される。なお、目標空燃比がリーン設定空燃比に設定されているときに算出される積算酸素過不足量ΣＯＥＤは酸素吸蔵積算値に相当する。
【０１７８】
Ｓ７０４において積算酸素過不足量ΣＯＥＤが切替吸蔵量Ｃｓｗ未満であると判定された場合、本制御ルーチンは終了する。この場合、空燃比補正量ＡＦＣは、現在設定されている値に維持される。
【０１７９】
一方、ステップＳ７０４において積算酸素過不足量ΣＯＥＤが切替吸蔵量Ｃｓｗ以上であると判定された場合、本制御ルーチンはステップＳ７０５に進む。ステップＳ７０５では、空燃比補正量ＡＦＣがリッチ補正量ＡＦＣｒｉｃｈに設定される。すなわち、目標空燃比がリッチ設定空燃比に設定される。リッチ補正量ＡＦＣｒｉｃｈは、図１２のステップＳ６０３又はステップＳ６０５において設定される。また、ステップＳ７０５では、リーンフラグＦｌｅａｎがゼロに設定され、積算酸素過不足量ΣＯＥＤがゼロにリセットされる。ステップＳ７０５の後、本制御ルーチンは終了する。
【０１８０】
なお、第三実施形態においても、第１実施形態と同様に、図８の学習値更新処理の制御ルーチンが実行される。
【０１８１】
＜その他の実施形態＞
以上、本発明に係る好適な実施形態を説明したが、本発明はこれら実施形態に限定されるものではなく、特許請求の範囲の記載内で様々な修正及び変更を施すことができる。例えば、学習値に基づいて補正されるパラメータとして、制御中心空燃比以外の他の空燃比関連パラメータが用いられてもよい。他の空燃比関連パラメータの例は、燃焼室５内への燃料供給量、上流側空燃比センサ４０の出力空燃比、空燃比補正量等である。
【０１８２】
また、排気ガス中の有害物質は基本的に上流側触媒２０において浄化される。このため、下流側触媒２４は排気浄化装置から省略されてもよい。
【０１８３】
また、排気通路を流れる排気ガスの一部をＥＧＲガスとして吸気通路に還流させるＥＧＲ通路が内燃機関に設けられている場合、ＥＧＲガス流量又はＥＧＲ率が所定値未満である低ＥＧＲ状態が第１状態であり、ＥＧＲガス流量又はＥＧＲ率が所定値以上である高ＥＧＲ状態が第２状態であってもよい。ＥＧＲガス流量は、例えば、ＥＧＲ通路に設けられた流量センサによって検出される。ＥＧＲ率は、例えば、エアフロメータ３９の出力、ＥＧＲ通路に設けられたＥＧＲ弁の開度等に基づいて公知の手法によって推定される。なお、ＥＧＲ率とは、気筒内に供給される全ガス量（吸入空気量とＥＧＲガス量との合計）に対するＥＧＲガス量の割合である。ＥＧＲガス流量又はＥＧＲ率が大きいほど、排気ガス中のＮＯｘ濃度が低下する。このため、例えば、第１実施形態又は第２実施形態において、高ＥＧＲ状態におけるリーン判定空燃比が低ＥＧＲ状態におけるリーン判定空燃比よりもリーンにされる。また、例えば、第３実施形態において、高ＥＧＲ状態における切替吸蔵量が低ＥＧＲ状態における切替吸蔵量よりも多くされる。なお、高ＥＧＲ状態が第１状態であり、低ＥＧＲ状態が第２状態であってもよい。
【０１８４】
また、機関負荷が所定値以上である高負荷状態が第１状態であり、機関負荷が所定値未満である低負荷状態が第２状態であってもよい。機関負荷は負荷センサ４３によって検出される。低負荷状態では、外乱が生じたとしても、外乱による流入排気ガスの空燃比の変動が小さい。このため、例えば、第１実施形態又は第２実施形態において、低負荷状態におけるリッチ判定空燃比が高負荷状態におけるリッチ判定空燃比よりもリッチにされ、低負荷状態におけるリーン判定空燃比が高負荷状態におけるリーン判定空燃比よりもリーンにされる。また、例えば、第３実施形態において、低負荷状態におけるリッチ判定空燃比が高負荷状態におけるリッチ判定空燃比よりもリッチにされ、低負荷状態における切替吸蔵量が高負荷状態における切替吸蔵量よりも多くされる。なお、低負荷状態が第１状態であり、高負荷状態が第２状態であってもよい。
【符号の説明】
【０１８５】
２０    上流側触媒
３１    ＥＣＵ
４０    上流側空燃比センサ
４１    下流側空燃比センサ
【図１】
2019078169.tif 000003
【図２】
2019078169.tif 000004
【図３】
2019078169.tif 000005
【図４】
2019078169.tif 000006
【図５】
2019078169.tif 000007
【図６】
2019078169.tif 000008
【図７】
2019078169.tif 000009
【図８】
2019078169.tif 000010
【図９】
2019078169.tif 000011
【図１０】
2019078169.tif 000012
【図１１】
2019078169.tif 000013
【図１２】
2019078169.tif 000014
【図１３】
2019078169.tif 000015