(57)【要約】【課題】  本発明は内燃機関の空燃比制御装置に関し、真の理論空燃比を精度良く見つけだすことを目的とする。【解決手段】  触媒下流のサブO２センサの出力がリーン出力に反転した際に触媒上流の目標空燃比をリッチ目標値とし、その出力がリッチ出力に反転した際に上記の目標空燃比をリッチ目標値とする。リッチ目標値と理論空燃比との差に基づいて算出される酸素脱離推定値を、目標空燃比がリッチ目標値とされている期間中積算した値をCmaxＲと定義する。リーン目標値と理論空燃比との差に基づいて算出される酸素吸蔵推定値を、目標空燃比がリーン目標値とされている期間中積算した値をCmaxＬと定義する。CmaxＲ＝CmaxＬを成立させる理論空燃比を当該装置における真の理論空燃比STとして算出する。【選択図】      図５
2005098205.tif 000002
【特許請求の範囲】
【請求項１】
触媒の下流に配置される酸素濃度センサと、
前記触媒の上流における空燃比を目標空燃比とするための空燃比制御を行う空燃比制御手段と、
前記酸素濃度センサの出力がリッチ出力からリーン出力に反転した際に前記目標空燃比をリッチ目標値とし、前記出力がリーン出力からリッチ出力に反転した際に前記目標空燃比をリッチ目標値とする目標設定手段と、
前記リッチ目標値と理論空燃比との差に基づいて算出される酸素脱離推定値を前記目標空燃比が前記リッチ目標値とされている期間中に積算した値がリッチ側最大酸素吸蔵量と定義され、また、前記リーン目標値と理論空燃比との差に基づいて算出される酸素吸蔵推定値を前記目標空燃比が前記リーン目標値とされている期間中積算した値がリーン側最大酸素吸蔵量と定義される場合に、前記リッチ側最大酸素吸蔵量と前記リーン側最大酸素吸蔵量とを等しくする理論空燃比を当該装置における真の理論空燃比として算出する真の理論空燃比算出手段と、
を備えることを特徴とする内燃機関の空燃比制御装置。
【請求項２】
前記触媒内での酸素の脱離反応速度と相関を有する脱離速度係数を算出する脱離速度係数算出手段と、
前記触媒内での酸素の吸蔵反応速度と相関を有する吸蔵速度係数を算出する吸蔵速度係数算出手段とを備え、
前記酸素脱離推定値は、前記リッチ目標値と理論空燃比との差に基づいて算出される酸素不足量に前記脱離速度係数を掛け合わせた値であり、
前記酸素吸蔵推定値は、前記リーン目標値と理論空燃比との差に基づいて算出される酸素過剰量に前記吸蔵速度係数を掛け合わせた値であることを特徴とする請求項１記載の内燃機関の空燃比制御装置。
【請求項３】
前記脱離速度係数算出手段は、触媒温度に基づいて前記脱離速度係数を算出し、
前記吸蔵速度係数算出手段は、触媒温度に基づいて前記吸蔵速度係数を算出することを特徴とする請求項２記載の内燃機関の空燃比制御装置。
【請求項４】
前記触媒の劣化度を検出する劣化度検出手段を備え、
前記脱離速度係数算出手段は、前記劣化度に基づいて前記脱離速度係数を算出し、
前記吸蔵速度係数算出手段は、前記劣化度に基づいて前記吸蔵速度係数を算出することを特徴とする請求項２または３記載の内燃機関の空燃比制御装置。
【請求項５】
前記触媒の最大酸素吸蔵量を算出する最大酸素吸蔵量算出手段と、
前記触媒内の酸素吸蔵量を算出する酸素吸蔵量算出手段とを備え、
前記脱離速度係数算出手段は、前記酸素吸蔵量に基づいて前記脱離速度係数を算出し、
前記吸蔵速度係数算出手段は、前記最大酸素吸蔵量と前記酸素吸蔵量との差に基づいて前記吸蔵速度係数を算出することを特徴とする請求項２乃至４の何れか１項記載の内燃機関の空燃比制御装置。
【請求項６】
前記触媒の下流にリッチなガスが流出し始めてから前記酸素濃度センサがリッチ出力を発するまでに要するリッチ反転応答遅れを取得するリッチ反転応答遅れ取得手段と、
前記触媒の下流にリーンなガスが流出し始めてから前記酸素濃度センサがリーン出力を発するまでに要するリーン反転応答遅れを取得するリーン反転応答遅れ取得手段とを備え、
前記リッチ側最大酸素吸蔵量は、前記目標空燃比が前記リッチ目標値とされている全期間に渡る前記酸素脱離推定値の積算値から、前記リッチ反転応答遅れの期間中の積算値分を減じた値であり、
前記リーン側最大酸素吸蔵量は、前記目標空燃比が前記リーン目標値とされている全期間に渡る前記酸素吸蔵推定値の積算値から、前記リーン反転応答遅れの期間中の積算値分を減じた値であることを特徴とする請求項１乃至５の何れか１項記載の内燃機関の空燃比制御装置。
【請求項７】
前記リッチ反転応答遅れは、排気ガスの輸送に伴う応答遅れと前記酸素濃度センサの出力がリーン出力からリッチ出力に反転するのに伴う応答遅れの和に相当する時間であり、
前記リーン反転応答遅れは、排気ガスの輸送に伴う応答遅れと前記酸素濃度センサの出力がリッチ出力からリーン出力に反転するのに伴う応答遅れの和に相当する時間であることを特徴とする請求項６記載の内燃機関の空燃比制御装置。
【請求項８】
触媒の上流に配置される空燃比センサと、
前記空燃比センサが理論空燃比として出力する値と、前記真の理論空燃比との偏差を求める空燃比誤差算出手段とを備え、
前記空燃比制御手段は、前記空燃比センサの出力を前記偏差で補正した値に基づいて、前記空燃比制御を行うことを特徴とする請求項１乃至７の何れか１項記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は内燃機関の空燃比制御装置に係り、特に、触媒の下流に酸素濃度センサを備える内燃機関において空燃比制御を行う装置として好適な空燃比制御装置に関する。
【背景技術】
【０００２】
従来、例えば特許文献１に開示されるように、触媒の上流に空燃比センサを備え、触媒の下流に酸素濃度センサを備えるシステムが知られている。空燃比センサは、空燃比に対してほぼリニアな特性を示すセンサである。一方、酸素濃度センサは、空燃比がリッチであるかリーンであるかに応じて、リッチ出力或いはリーン出力を発するセンサである。
【０００３】
上記従来のシステムでは、触媒上流に位置する空燃比センサの出力に基づいてメインの空燃比フィードバック制御が実行され、触媒下流に位置する酸素濃度センサの出力に基づいて、メインのフィードバック制御を補正するためのサブフィードバック制御が行われる。メインの空燃比フィードバックのみによる場合は、空燃比センサの出力ずれ等の影響で、触媒上流における空燃比が目標空燃比からリッチ側或いはリーン側に偏ることがある。このような状態が継続すれば、やがては触媒の下流にリッチ或いはリーンな排気ガスが吹き抜ける。触媒の下流へのそのようなガスの吹き抜けは、酸素濃度センサにより検知することができる。そして、サブフィードバック制御によれば、そのような吹き抜けが生じない方向に、つまり、触媒上流における空燃比ずれが縮小される方向に、メインのフィードバック制御を補正することができる。このため、上記従来の装置によれば、空燃比センサの出力ずれ等に影響されることなく、高精度な空燃比制御を実現することができる。
【０００４】
【特許文献１】特開平８−２９１７３８号公報
【特許文献２】特開平５−１３３２６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、触媒の下流に配置された酸素濃度センサの出力は、触媒の下流にリッチまたはリーンな排気ガスが吹き抜けてくるまでは変化を示さない。一方、空燃比フィードバック制御によって実現すべき空燃比は、触媒の内部で酸素の吸蔵量と脱離量が均衡する空燃比である。以下、このような空燃比を「真の理論空燃比」と称す。酸素濃度センサの出力からは、触媒上流の空燃比が真の理論空燃比となっているか否かを直接判断することができない。このため、上記従来のシステムでは、触媒の上流における空燃比を真の理論空燃比に精度良く一致させることが必ずしも容易ではなかった。
【０００６】
この発明は、上述のような課題を解決するためになされたもので、触媒の下流に酸素濃度センサを備える内燃機関において、真の理論空燃比を精度良く見つけだすことのできる内燃機関の空燃比制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の発明は、上記の目的を達成するため、内燃機関の空燃比制御装置であって、
触媒の下流に配置される酸素濃度センサと、
前記触媒の上流における空燃比を目標空燃比とするための空燃比制御を行う空燃比制御手段と、
前記酸素濃度センサの出力がリッチ出力からリーン出力に反転した際に前記目標空燃比をリッチ目標値とし、前記出力がリーン出力からリッチ出力に反転した際に前記目標空燃比をリッチ目標値とする目標設定手段と、
前記リッチ目標値と理論空燃比との差に基づいて算出される酸素脱離推定値を前記目標空燃比が前記リッチ目標値とされている期間中に積算した値がリッチ側最大酸素吸蔵量と定義され、また、前記リーン目標値と理論空燃比との差に基づいて算出される酸素吸蔵推定値を前記目標空燃比が前記リーン目標値とされている期間中積算した値がリーン側最大酸素吸蔵量と定義される場合に、前記リッチ側最大酸素吸蔵量と前記リーン側最大酸素吸蔵量とを等しくする理論空燃比を当該装置における真の理論空燃比として算出する真の理論空燃比算出手段と、
を備えることを特徴とする。
【０００８】
また、第２の発明は、第１の発明において、
前記触媒内での酸素の脱離反応速度と相関を有する脱離速度係数を算出する脱離速度係数算出手段と、
前記触媒内での酸素の吸蔵反応速度と相関を有する吸蔵速度係数を算出する吸蔵速度係数算出手段とを備え、
前記酸素脱離推定値は、前記リッチ目標値と理論空燃比との差に基づいて算出される酸素不足量に前記脱離速度係数を掛け合わせた値であり、
前記酸素吸蔵推定値は、前記リーン目標値と理論空燃比との差に基づいて算出される酸素過剰量に前記吸蔵速度係数を掛け合わせた値であることを特徴とする。
【０００９】
また、第３の発明は、第２の発明において、
前記脱離速度係数算出手段は、触媒温度に基づいて前記脱離速度係数を算出し、
前記吸蔵速度係数算出手段は、触媒温度に基づいて前記吸蔵速度係数を算出することを特徴とする。
【００１０】
また、第４の発明は、第２または第３の発明において、
前記触媒の劣化度を検出する劣化度検出手段を備え、
前記脱離速度係数算出手段は、前記劣化度に基づいて前記脱離速度係数を算出し、
前記吸蔵速度係数算出手段は、前記劣化度に基づいて前記吸蔵速度係数を算出することを特徴とする。
【００１１】
また、第５の発明は、第２乃至第４の発明の何れかにおいて、
前記触媒の最大酸素吸蔵量を算出する最大酸素吸蔵量算出手段と、
前記触媒内の酸素吸蔵量を算出する酸素吸蔵量算出手段とを備え、
前記脱離速度係数算出手段は、前記酸素吸蔵量に基づいて前記脱離速度係数を算出し、
前記吸蔵速度係数算出手段は、前記最大酸素吸蔵量と前記酸素吸蔵量との差に基づいて前記吸蔵速度係数を算出することを特徴とする。
【００１２】
また、第６の発明は、第１乃至第５の発明の何れかにおいて、
前記触媒の下流にリッチなガスが流出し始めてから前記酸素濃度センサがリッチ出力を発するまでに要するリッチ反転応答遅れを取得するリッチ反転応答遅れ取得手段と、
前記触媒の下流にリーンなガスが流出し始めてから前記酸素濃度センサがリーン出力を発するまでに要するリーン反転応答遅れを取得するリーン反転応答遅れ取得手段とを備え、
前記リッチ側最大酸素吸蔵量は、前記目標空燃比が前記リッチ目標値とされている全期間に渡る前記酸素脱離推定値の積算値から、前記リッチ反転応答遅れの期間中の積算値分を減じた値であり、
前記リーン側最大酸素吸蔵量は、前記目標空燃比が前記リーン目標値とされている全期間に渡る前記酸素吸蔵推定値の積算値から、前記リーン反転応答遅れの期間中の積算値分を減じた値であることを特徴とする。
【００１３】
また、第７の発明は、第６の発明において、
前記リッチ反転応答遅れは、排気ガスの輸送に伴う応答遅れと前記酸素濃度センサの出力がリーン出力からリッチ出力に反転するのに伴う応答遅れの和に相当する時間であり、
前記リーン反転応答遅れは、排気ガスの輸送に伴う応答遅れと前記酸素濃度センサの出力がリッチ出力からリーン出力に反転するのに伴う応答遅れの和に相当する時間であることを特徴とする。
【００１４】
また、第８の発明は、第１乃至第７の発明の何れかにおいて、
触媒の上流に配置される空燃比センサと、
前記空燃比センサが理論空燃比として出力する値と、前記真の理論空燃比との偏差を求める空燃比誤差算出手段とを備え、
前記空燃比制御手段は、前記空燃比センサの出力を前記偏差で補正した値に基づいて、前記空燃比制御を行うことを特徴とする。
【発明の効果】
【００１５】
第１の発明によれば、リッチ側最大酸素吸蔵量とリーン側最大酸素吸蔵量とを等しくするような理論空燃比を算出することで、触媒内部で酸素の脱離量と吸蔵量とを均衡させ得る真の理論空燃比を正確に算出することができる。
【００１６】
第２の発明によれば、触媒内部での吸脱反応速度をも考慮に入れたうえで、リッチ側最大酸素吸蔵量とリーン側最大酸素吸蔵量とを等しくするような理論空燃比を算出することができる。このため、本発明によれば、極めて精度良く真の理論空燃比を算出することができる。
【００１７】
第３の発明によれば、触媒温度を考慮して脱離速度係数および吸蔵速度係数を算出することができる。触媒内での酸素の吸脱速度は触媒温度の影響を受ける。本発明によれば、その影響を正しく脱離速度係数および吸蔵速度係数に反映させることができる。
【００１８】
第４の発明によれば、触媒の劣化度を考慮して脱離速度係数および吸蔵速度係数を算出することができる。触媒内での酸素の吸脱速度は触媒の劣化度の影響を受ける。本発明によれば、その影響を正しく脱離速度係数および吸蔵速度係数に反映させることができる。
【００１９】
第５の発明によれば、触媒の酸素吸蔵量を考慮して脱離速度係数を算出し、触媒内の酸素吸蔵余力（最大酸素吸蔵量と酸素吸蔵量の差）を考慮して吸蔵速度係数を算出することができる。触媒内での酸素の脱離速度は、酸素吸蔵量が多いほど高速となる。一方、触媒内での酸素の吸蔵速度は、触媒内に酸素吸蔵余力が大きく確保されているほど高速となる。本発明によれば、その影響を正しく脱離速度係数および吸蔵速度係数に反映させることができる。
【００２０】
第６の発明によれば、酸素濃度センサの応答遅れをも考慮に入れたうえで、リッチ側最大酸素吸蔵量とリーン側最大酸素吸蔵量とを等しくするような理論空燃比を算出することができる。このため、本発明によれば、極めて精度良く真の理論空燃比を算出することができる。
【００２１】
第７の発明によれば、酸素濃度センサの応答遅れとして、輸送に伴う遅れと、出力反転に伴う遅れとを、リッチ出力からリーン出力への反転場面と、リーン出力からリッチ出力への反転場面のそれぞれにおいて適切に考慮することができる。
【００２２】
第８の発明によれば、リッチ側最大酸素吸蔵量とリーン側最大酸素吸蔵量とを等しくするものとして算出された真の理論空燃比を基準として、正確な空燃比制御を実現することができる。
【発明を実施するための最良の形態】
【００２３】
実施の形態１．
［実施の形態１の構成］
図１は、本発明の実施の形態１の構成を説明するための図を示す。図１に示すシステムは、内燃機関１０を備えている。内燃機関１０の各気筒には、排気マニホールドを介して排気通路１２が連通している。排気通路１２には、第１触媒１４と第２触媒１６とが直列に配置されている。第１触媒１４および第２触媒１６は、何れも、所定の活性温度環境下で、酸素の吸脱反応を伴って排気ガス中のHC、COおよびNOxを浄化することのできる三元触媒である。
【００２４】
第１触媒１４の上流にはメインA/Fセンサ１８が配置されている。また、第１触媒１４の下流（第２触媒１６の上流）には、サブO２センサ２０が配置されている。メインA/Fセンサ１８は、排気ガスの空燃比に対してほぼリニアな出力を発生する公知の空燃比センサである。一方、サブ0２センサ２０は、排気ガスがリッチであるかリーンであるかに応じてリッチ出力或いはリーン出力を発生する公知の酸素センサである。
【００２５】
内燃機関１０は、個々の気筒に対して燃料を噴射するための燃料噴射弁２２を備えている。燃料噴射弁２２には、図示しない燃料フィードポンプより所定の圧力で燃料２４が供給されている。燃料噴射弁２２の先端に設けられた弁機構が開弁すると、その燃料２４が個々に気筒に向けて噴射される。燃料噴射弁２２によれば、弁機構を開弁させる時間、つまり、燃料噴射時間TAUを制御することで、精度良く燃料噴射量を制御することができる。
【００２６】
実施の形態１のシステムは、図１に示すように、ECU(Electronic Control Unit)３０を備えている。メインA/Fセンサ１８、サブO２センサ２０、および燃料噴射弁２２は、何れもECU３０と電気的に接続されている。ECU３０には、これらの要素に加えて、吸入空気量Gaを検出するためのエアフロメータや、機関回転数Neを検出するための回転数センサ（何れも図示せず）などが電気的に接続されている。ECU３０は、それら各種センサの出力に基づいて所望の空燃比が得られるように燃料噴射時間TAUを制御する。
【００２７】
［実施の形態１における空燃比制御］
次に、図２および図３を参照して、本実施形態において用いられる空燃比制御の概要について説明する。図２は、図１に示すハードウェア構成において用いることのできる制御手法の一例を表す制御ブロック図である。以下、本実施形態において用いられる制御手法の内容を説明するに先立ち、図２に示す制御手法の内容と、その手法に内在する問題点とを説明する。尚、図２および図３において、Eng１０、Cat１４、A/Fs１８およびO2s２０は、それぞれ図１に示す内燃機関１０、第１触媒１４、メインA/Fセンサ１８およびサブO２センサ２０を表すものとする。
【００２８】
図２に示すように、本実施形態のハードウェア構成によれば、メインA/Fセンサ１８は内燃機関１０から第１触媒１４へ向かって流れるガス中の空燃比A/Fに応じた出力（電圧値）を発生する。また、サブO２センサ２０は、第１触媒１４の下流に吹き抜けてきたガスがリッチであるかリーンであるかに応じた出力（電圧値）を発生する。
【００２９】
メイン空燃比センサ１８の出力が現実の空燃比を正確に表している場合は、その出力が目標空燃比と一致するように燃料噴射時間TAUをフィードバック制御すれば、高精度な空燃比制御を実現することができる。しかしながら、メインA/Fセンサ１８の出力にはある程度の誤差が含まれている。このため、メインA/Fセンサ１８の出力を目標空燃比に一致させても、現実の空燃比は必ずしも目標空燃比には一致しない。
【００３０】
また、この装置において真に実現すべき目標空燃比は、第１触媒１４の内部で、酸素の吸蔵量と脱離量とが均衡する空燃比、つまり、真の理論空燃比である。このような真の理論空燃比は、吸入空気量Gaや触媒温度などに応じて微妙に変化する。このため、メイン空燃比センサ１８が仮に正確な出力を発したとしても、その出力のみに基づくフィードバック制御によっては、現実の空燃比を、この装置における真の理論空燃比に一致させることは困難である。
【００３１】
サブ02センサ２０の出力は、上述したような空燃比ずれを抑制して、空燃比の制御精度を高めるために用いられる。以下、空燃比の制御精度を高めるためにサブO２センサの出力を制御値に反映させることを「サブフィードバック」と称す。また、メインA/Fセンサ１８の出力（或いは、その出力の補正値）に基づいて燃料噴射時間TAUを演算することを「メインフィードバック」と称す。
【００３２】
メインフィードバックの結果得られた空燃比が真の理論空燃比に対してリッチ側に偏る傾向が継続すれば、やがては第１触媒１４内の全ての酸素が脱離し、その下流にリッチなガスが流出する。その結果、サブO２センサ２０の出力は、リッチ出力（約０．８V）となる。一方、メインフィードバックの結果得られた空燃比が真の理論空燃比に対してリーン側に偏る傾向が継続すれば、やがては第１触媒１４が能力一杯に酸素を吸蔵し、その下流にリーンなガスが流出する。その結果、サブO２センサ２０の出力は、リーン出力（約０．２V）となる。
【００３３】
図２に示す制御手法によれば、サブO２センサ２０の出力を対象として、PID制御によるサブフィードバックが行われる。具体的には、サブO２センサ２０の出力に対して、SFB目標（例えば０．５V）が与えられ、両者の差に対して、比例項Gpsfb、積分項Gisfb・1/s、および微分項Gdsfb・sの和が算出される。そして、その和Gpsfb＋Gisfb・1/s＋Gdsfb・sが、サブフィードバック補正量（電圧値）として、メインA/Fセンサ１８の出力補正に用いられる。
【００３４】
このようなサブフィードバックによれば、サブO２センサ２０の出力に基づいて、メインA/Fセンサ１８の出力に重畳している誤差分を精度良く相殺することのできるサブフィードバック補正量を算出することができる。このため、図２に示す制御手法によれば、サブフィードバックによって、メインA/Fセンサ１８の出力に重畳している誤差分を精度良く補正することができる。
【００３５】
図２に示す制御手法では、また、上述したサブフィードバック補正量を基礎として、サブフィードバック学習値（電圧値）が算出される。サブフィードバック学習値は、具体的には、サブフィードバック補正量（Gpsfb＋Gisfb・1/s＋Gdsfb・s）になまし処理を施し（１/（１＋τsfbg・sを乗算し）、更にそのなまし値に積分処理を施す（1/sを乗算する）ことで算出される。このような学習処理によれば、サブフィードバック補正量に含まれる定常的な値、つまり、サブO２センサ２０より上流側に位置するハードウェア要素に内在する定常的な誤差分を学習値として取り出すことができる。この場合、サブフィードバック補正量にその定常的な誤差を吸収させる必要がなくなるため、サブフィードバック補正量が適正値に収束するのに要する時間を十分に短縮することができる。
【００３６】
図２に示す制御手法によれば、メイン空燃比センサ１８の出力（電圧値）は、サブフィードバック補正量（電圧値）およびサブフィードバック学習値（電圧値）が加算されることにより補正される。そして、補正後の出力値は、電圧-A/Fマップに従って、フィードバック空燃比（無次元値）に変換される。図１に示すECU３０は、このようにして算出されるフィードバック空燃比が目標空燃比と一致するようにメインフィードバックの処理を行い、その処理により燃料噴射時間TAUを算出する。
【００３７】
内燃機関１０が定常運転を継続する場合には、サブフィードバックの機能により、やがてはサブフィードバック学習値が適正値に収束する。この場合、メインA/Fセンサ１８の出力をサブフィードバック学習値で補正した値は、精度良く真の理論空燃比に対応した値となる。ところが、内燃機関１０の運転中には、燃料の増量補正により空燃比が意図的にリッチにされること、或いは、フューエルカットによって空燃比が意図的にリーンにされることがある。このような状況下では、サブフィードバック学習値は、空燃比がリッチ側にシフトしているものとして、或いは、空燃比がリーン側にシフトしているものとして誤った値に更新される。
【００３８】
また、既述したサブフィードバックの手法では積分項Gisfb・1/sのみならず比例項Gpsfおよび微分項Gdsfb・sも学習値に取り込まれている。比例項Gpsfや微分項Gdsfb・sは過渡運転時には、定常運転時に比して著しく大きな値となる。このため、上述したサブフィードバックの手法では、過渡運転時において、サブフィードバック学習値が不適切な値に学習され易い。
【００３９】
更に、真の理論空燃比は、厳密には吸入空気量Gaや触媒温度などに応じて変化するものである。これに対して、既述したサブフィードバックの手法では、サブフィードバック学習値を真の理論空燃比に対応させるための処理が常に行われる。この場合、内燃機関１０の運転状態によっては、学習値に荒れが生ずることがある。
【００４０】
以上説明したような理由により、図２に示す制御手法では、真の理論空燃比に対応するフィードバック学習値が正しく学習できない事態が生ずることがある。また、この制御手法による場合は、学習の進行が成り行き任せであり、フィードバック学習値が適正値に収束するまでに長い時間を要する事態が生じ得る。
【００４１】
図３は、図２に示す手法に内在する上記の課題を解決するべく、本実施形態において用いられる制御手法を説明するための制御ブロック図である。図３に示す制御手法は、サブフィードバック学習値に代えて、空燃比学習値STGの電圧変換値が用いられる点を除き、図２に示す制御手法と同様である。
【００４２】
つまり、本実施形態の装置は、後述する手法により、サブフィードバックから離れた手法により空燃比学習値STGを算出する。空燃比学習値STGは、定常領域で運転している内燃機関１０において真の理論空燃比を実現するための学習値、より具体的には、定常領域での真の理論空燃比（例えば１４．６；無次元値）と、その真の理論空燃比をメインA/Fセンサ１８に検出させた場合に得られる空燃比（無次元値）との差（無次元値）である。図３に示す制御手法では、サブフィードバック学習値（電圧値）の代わりに、そのような空燃比学習値STGを電圧値に変換した値が用いられる。
【００４３】
［空燃比学習値STGの算出手法］
以下、図４および図５を参照して空燃比学習値STGを求めるための具体的な手法について説明する。
図４は、サブO２センサ２０の出力が反転する毎に、目標空燃比を、真の理論空燃比STに対してリッチ側とリーン側に反転させた場合の動作を説明するためのタイミングチャートである。より具体的には、図４（Ａ）は、目標空燃比A/Fが交互にリッチ目標値AFＲとリーン目標値AFＬとされる様子を示す。図４（Ｂ）は、単位時間当たりの燃料噴射量mfrの増減を示す。図４（Ｃ）はサブO２センサ２０の出力が反転する様子を示す。また、図４（Ｄ）は、第１触媒１４内部における酸素吸蔵量OSAの変化を示す。
【００４４】
目標空燃比がリッチ目標値AFＲとされると、第１触媒１４にリッチなガスが流入する。この場合、第１触媒１４はガス中のHC、COを浄化するべく吸蔵酸素を放出する。その結果、酸素吸蔵量OSAは、最小値０に至るまで減少傾向を示す。第１触媒１４の酸素吸蔵量が０になると、その下流にリッチなガスが吹き抜けてサブO２センサ２０の出力がリッチ出力に反転する。
【００４５】
図４に示す例では、サブO２センサ２０の出力がリッチ出力に反転した時点で目標空燃比がリッチ目標値AFＲからリーン目標値AFＬに切り替えられる。目標空燃比がリーン目標値AFＬとされると、第１触媒１４にリーンなガスが流入する。この場合、第１触媒１４はガス中の過剰酸素を吸蔵してNOx浄化を図る。その結果、酸素吸蔵量OSAは、最小値０を始点として、最大酸素吸蔵量Cmaxまで増加する。第１触媒１４の酸素吸蔵量がCmaxに達すると、その下流にリーンなガスが吹き抜けてサブO２センサ２０の出力がリーン出力に反転する。
【００４６】
上記の処理が繰り返し実行される過程で、サブO２センサ２０の出力がリッチ出力に反転した後、つまり、目標空燃比がリーン目標値AFＬとされた後に第１触媒１４に吸蔵された酸素の総量は、次式により求めることができる。但し、次式において０．２３は空気中の酸素の割合であり、mfrＬはリーン目標値AFＬを実現するために必要な単位時間当たりの燃料噴射量である。また、dTは積算処理の繰り返し間隔（サンプリング間隔）である。
ΔOSA＝Σ０．２３＊mfrＬ＊（AFＬ−ST）＊dT      ・・・（１）
【００４７】
上記（１）式中、右辺の「０．２３＊mfrＬ×（AFＬ−ST）」は、第１触媒１４に流入するガス中の酸素過剰量である。第１触媒１４が、過剰酸素の全てを吸蔵すると仮定すると、吸蔵酸素の積算値ΔOSAは上記（１）式のように表すことができる。そして、（１）式の積算処理を、目標空燃比がリーン空燃比AFＬとされている期間中継続することにより、最大酸素吸蔵量Cmaxを求めることができる。以下、このような手法で得られたCmaxを「リーン側最大酸素吸蔵量CmaxＬ」と称す。
【００４８】
目標空燃比を交互にAFＬとAFＲに反転させる処理の過程で、サブO２センサ２０の出力がリーン出力に反転した後、つまり、目標空燃比がリッチ目標値AFＲとされた後に第１触媒１４から脱離した酸素の総量は、次式により求めることができる。但し、次式においてmfrＲはリッチ目標値AFＲを実現するために必要な単位時間当たりの燃料噴射量である。
ΔOSA＝Σ０．２３＊mfrＲ＊（AFＲ−ST）＊dT      ・・・（２）
【００４９】
上記（２）式中、右辺の「０．２３＊mfrＲ×（AFＲ−ST）」は、第１触媒１４に流入するガス中の酸素不足量である。第１触媒１４が、不足酸素と等しい量の酸素を脱離すると仮定すると、脱離酸素の積算値ΔOSAは上記（２）式のように表すことができる。そして、（２）式の積算処理を、目標空燃比がリッチ空燃比AFＲとされている期間中継続することにより、最大酸素吸蔵量Cmaxを求めることができる。以下、このような手法で得られたCmaxを「リッチ側最大酸素吸蔵量CmaxＲ」と称す。
【００５０】
リッチ側最大酸素吸蔵量CmaxＲとリーン側最大酸素吸蔵量CmaxＬは、本来等しくなるべき値である。このため、上記（１）式により算出されるCmaxＬと上記（２）式により算出されるCmaxＲとの間には、CmaxＬ＝CmaxＲの関係が成立するはずである。より具体的には、真の理論空燃比STは、定常領域では第１触媒１４に対して固有の値（例えば１４．６）として取り扱うことが可能であるから、上記（１）式により算出されるCmaxＬと上記（２）式により算出されるCmaxＲとは、STにその固有値（１４．６）が代入された場合に等しくなるべきものである。
【００５１】
ところが、第１触媒１４の上流における空燃比A/Fは、メインA/Fセンサ１８の誤差等に起因して、目標空燃比に対してリッチ側或いはリーン側にシフトすることがある。このような状況下では、STが上記の固有値（１４．６）として扱われると、CmaxＬ＝CmaxＲの関係が成立しない事態が生ずる。
【００５２】
図５は、メインA/Fセンサ１８の出力がリッチ側にαだけシフトしている（例えば、１４．６と出力すべきところを１４．６−αと出力する）場合の現象を説明するためのタイミングチャートである。この場合、メインA/Fセンサ１８の出力が目標空燃比と一致するように空燃比制御が行われれば、現実の空燃比A/Fは、αだけ目標空燃比よりリーン化した値となる。このため、このような状況下で上記の反転処理が実行されれば、第１触媒１４の上流における空燃比A/Fは、現実には、AFＲ＋αとAFＬ＋αの間で振幅することになる（図５（Ａ）参照）。
【００５３】
そして、この場合は、上記（１）式が前提とする酸素吸蔵量は、目標空燃比がリーン目標値AFＬとされる間に現実に生ずる単位時間当たりの酸素吸蔵量より少量となる。その結果、このような状況下では、上記（１）式により算出されるリーン側最大酸素吸蔵量CmaxＬは真のCmaxに対して過小な値となる。また、このような状況下では、上記（２）式が前提とする酸素吸蔵量は、目標空燃比がリッチ目標値AFＲとされる間に現実に生ずる単位時間当たりの酸素吸蔵量より多量となる。その結果、このような状況下では、上記（２）式により算出されるリッチ側最大酸素吸蔵量CmaxＲは真のCmaxに対して過大な値となる（図５（Ｄ）および図５（Ｅ）参照）。
【００５４】
ところで、図５に示す状況においては、真の理論空燃比STを、上述した固有の値からαだけ減じた値（例えば１４．６−α）とすれば、上記（１）式が前提とする酸素吸蔵量、および上記（２）式が前提とする酸素脱離量は、何れも現実の酸素吸脱量と等しいものとなる。そして、そのような真の理論空燃比STは、STを変数として捕らえて、CmaxＬ＝CmaxＲの関係を解くことにより求めることができる。
【００５５】
つまり、上記（１）式および（２）式の関係によれば、CmaxＬ＝CmaxＲの関係は、以下のように整理することができる。そして、この装置における真の理論空燃比STは、以下に示す（３）式の関係より求めることができる。
Σ０．２３＊mfrＬ＊（AFＬ−ST）＊dT＝Σ０．２３＊mfrＲ＊（AFＲ−ST）＊dT
→ST（ΣmfrＬ−ΣmfrＲ）＝ΣmfrＬ＊AFＬ−ΣmfrＲ＊AFＲ
→ST＝（ΣmfrＬ＊AFＬ−ΣmfrＲ＊AFＲ）／（ΣmfrＬ−ΣmfrＲ）    ・・・（３）
【００５６】
上記（３）式に含まれるAFＬおよびAFＲは、何れも既定の値である。また、ここに含まれるΣmfrＬおよびΣmfrＲは、目標空燃比がリーン目標値AFＬとされる期間中、或いは目標空燃比がリッチ目標値AFＲとされる期間中にわたり、燃料噴射量を積算することで求めることができる。このため、本実施形態の装置によれば、上記（３）式の関係を用いて真の理論空燃比STを求めることができる。
【００５７】
本実施形態の制御手法（図３参照）において用いられる空燃比学習値STGは、触媒固有の値としての理論空燃比（例えば１４．６）と、上記（３）式により算出される真の理論空燃比STとの差である。図５に示すような状況下で、仮にSTが「１４．６−α」として算出された場合、空燃比学習値STGは「α」となる。図３に示す制御手法では、そのαを電圧変換した値によって、メインA/Fセンサ１８の出力が補正され、その補正後の値に基づいてメインフィードバックが実行される。この場合、メインA/Fセンサ１８の出力ずれ（この場合はリッチ側へのずれ）を空燃比学習値STGにより相殺することが可能であり、その出力ずれに影響されることなく、高精度な空燃比制御を実現することができる。
【００５８】
［実施の形態１で実行される具体的処理］
図６は、上記の原理に従って真の理論空燃比STを算出するためにECU３０が実行するルーチンのフローチャートを示す。図６に示すルーチンでは、先ず、STの検出条件が成立しているか否かが判別される（ステップ１００）。ここでは、具体的には、内燃機関１０が定常域で運転されているか、暖機は終了しているか、また、メインA/Fセンサ１８やサブO２センサ２０は活性済みであるか等の条件が判断される。その結果、検出条件が不成立であると判別された場合は、リーンカウンタの計数値nＬおよびリッチカウンタの計数値nＲがクリアされた後（ステップ１０２）、速やかに今回の処理サイクルが終了される。
【００５９】
上記ステップ１００において、検出条件の成立が認められた場合は、次に、サブO２センサ２０の出力OXSが判定値VＴＨより大きいか否かが判別される（ステップ１０４）。判定値VＴＨは、OXSがリッチ出力であるかリーン出力であるかを判断するための値である。ここでは、OXS＞VＴＨの成立が認められると、サブO２センサ２０がリッチ出力を発していると判断され、一方、その成立が認められない場合は、サブO２センサ２０がリーン出力を発していると判断される。
【００６０】
上記ステップ１０４において、OXSがリッチ出力であると判別された場合（OXS＞VＴＨ成立の場合）、次に、前回の処理サイクル時にOXSがリーン出力であったか否かが判別される（ステップ１０６）。その結果、前回のOXSがリーンであったと判別された場合は、前回から今回にかけて、OXSがリーン出力からリッチ出力に反転したと判断できる。この場合、次に、リーンカウンタの計数値nＬがインクリメントされる（ステップ１０８）。一方、OXSの反転が認められない場合は、ステップ１０８がジャンプされる。
【００６１】
次に、目標空燃比がリーン目標値AFＬとされる（ステップ１１０）。上記の処理によれば、OXSがリーン出力からリッチ出力に反転した直後に目標空燃比をリーン目標値AFＬとすることができ、また、その反転が生ずる毎に、リーンカウンタの計数値nＬを一つずつ増やすことができる。
【００６２】
次いで、リーン側噴射量積算値ΣmfrＬ（nＬ）が算出される（ステップ１１２）。ΣmfrＬ（nＬ）における「nＬ」は、上記ステップ１０８でインクリメントされた計数値である。計数値nＬは、例えばリーン出力からリッチ出力への反転が始めて検出された直後には「１」となる。そして、その計数値nＬは、リーン出力からリッチ出力への反転が再び検知されるまでは「１」のまま維持される。その間、本ステップ１１２の処理が繰り返される毎にΣmfrＬ（１）は更新される。その結果、最終的には、OXSが始めてリッチ出力に反転した後再びリーン出力に反転するまでの間に生じた燃料噴射量mfrＬの積算値がΣmfrＬ（１）として算出される。以後、OXSがリッチ出力に反転し、目標空燃比がリーン目標値AFＬとされる毎にΣmfrＬ（nＬ）が一つずつ算出される。
【００６３】
目標空燃比がリーン空燃比AFＬとされると、第１触媒１４に流入するガスがリーンとなり、第１触媒１４内の酸素吸蔵量OSAが増加し始める。そして、OSAが最大酸素吸蔵量Cmaxに達すると、リーンなガスが第１触媒１４の下流に吹き抜け、サブO２センサ２０の出力OXSがリーン出力に反転する。OXSがリーン出力に反転すると、今度は、上記ステップ１００において、OXS＞VＴＨの不成立が判定される。この場合、次に、前回の処理サイクル時にOXSがリッチ出力であったか否かが判別される（ステップ１１４）。その結果、前回のOXSがリッチであったと判別された場合は、前回から今回にかけて、OXSがリッチ出力からリーン出力に反転したと判断できる。この場合、次に、リッチカウンタの計数値nＲがインクリメントされる（ステップ１１６）。一方、OXSの反転が認められない場合は、ステップ１１６がジャンプされる。
【００６４】
次に、目標空燃比がリッチ目標値AFＲとされる（ステップ１１８）。上記の処理によれば、OXSがリッチ出力からリーン出力に反転した直後に目標空燃比をリッチ目標値AFＲとすることができ、また、その反転が生ずる毎に、リッチカウンタの計数値nＲを一つずつ増やすことができる。
【００６５】
次いで、リッチ側噴射量積算値ΣmfrＲ（nＲ）が算出される（ステップ１２０）。ΣmfrＲ（nＲ）における「nＲ」は、上記ステップ１１６でインクリメントされた計数値である。ΣmfrＲ（nＲ）は、リーン側噴射量積算値計数値ΣmfrＬ（nＬ）と同様に、目標空燃比がリッチ目標値AFＲとされる毎に一つずつ算出される。
【００６６】
図６に示すルーチンにおいて、上記ステップ１１２または１２０の処理が終了すると、次に、nＬ＞β、およびnＲ＞βが何れも成立しているか否かが判別される（ステップ１２２）。その結果、それらの何れかが成立しないと判別された場合は、リーン側噴射量積算値計数値ΣmfrＬ（nＬ）、或いはリッチ側噴射量積算値ΣmfrＲ（nＲ）が十分数算出されていないと判断され、以後速やかに今回の処理サイクルが終了される。
【００６７】
一方、上記ステップ１２２において、nＬ＞β、およびnＲ＞βが何れも成立すると判断された場合は、真の理論空燃比STを求めるための検出処理の完了が判断され（ステップ１２４）、以下に示す（４）式によりSTが算出される（ステップ１２６）。
ST＝（AveΣmfrＬ＊AFＬ−AveΣmfrＲ＊AFＲ）／（AveΣmfrＬ−AveΣmfrＲ）・・・（４）
【００６８】
尚、上記（４）式において、「AveΣmfrＬ」は、β個算出されたリーン側噴射量積算値計数値ΣmfrＬ（nＬ）の平均値であり、「AveΣmfrＲ」は、β個算出されたリッチ側噴射量積算値ΣmfrＲ（nＲ）の平均値である。つまり、ここに示す（４）式は、上記（３）式における「ΣmfrＬ」および「ΣmfrＲ」を、それらの平均値を意味する「AveΣmfrＬ」または「AveΣmfrＲ」に置き換えただけのものであり、実質的には（３）式と同様である。
【００６９】
ECU３０は、上記の処理により真の理論空燃比STを算出した後、既定の理論空燃比（例えば１４．６）からそのSTを減ずることにより空燃比学習値STGを求める。そして、以後、そのSTGを用いて、図３に示す手法で空燃比制御を行う。このような制御手法によれば、燃料増量やフューエルカットが実行されても、その影響で空燃比学習値STGが誤学習されることはない。また、過渡状態においてサブフィードバックの比例項Gpsfbや微分項Gdsfb・sが大きな値となっても、その影響で空燃比学習値STGが誤学習されることもない。更に、この手法によれば、既定の処理が完遂できれば空燃比学習値STGを確実に求めることができるため、短時間で確実に学習を終えることができる。このため、本実施形態の装置によれば、図２に示すような制御手法が用いられる場合に比してより高精度な空燃比制御を実現することができる。
【００７０】
尚、上述した実施の形態１においては、ECU３０が、メインフィードバックを実行することにより前記第１の発明における「空燃比制御手段」が、上記ステップ１１０および１２０の処理を実行することにより前記第１の発明における「目標設定手段」が、上記ステップ１１２，１２０および１２６の処理を実行することにより前記第１の発明における「理論空燃比算出手段」が、それぞれ実現されている。
【００７１】
実施の形態２．
次に、図７および図８を参照して、本発明の実施の形態２について説明する。本実施形態の装置は、実施の形態１の装置において、ECU３０に、上記図６に示すルーチンに代えて後述する図８に示すルーチンを実行させることにより実現することができる。
【００７２】
上述した実施の形態１では、目標空燃比がリーン目標値AFＬとされている間は第１触媒１４に流入する過剰な酸素の全てがその内部に吸蔵されることが前提とされ、この前提の下に、リーン側最大酸素吸蔵量CmaxＬが上記（１）式（Σ０．２３＊mfrＬ×（AFＬ−ST）＊dT）により求まるものとされている。また、実施の形態１では、目標空燃比がリッチ目標値AFＲとされている間は、第１触媒１４の内部において、酸素不足量と等しい酸素脱離量が生ずることが前提とされ、この前提の下に、リッチ側最大酸素吸蔵量CmaxＲが上記（２）式（Σ０．２３＊mfrＲ×（AFＲ−ST）＊dT）により求まるものとしている。
【００７３】
しかしながら、第１触媒１４の内部で生ずる酸素の吸脱量は、酸素の吸蔵反応速度、或いは酸素の脱離反応速度の影響を受ける。そして、酸素の吸蔵反応速度や脱離反応速度は、触媒温度が高いほど高速となる。このため、酸素の吸脱量は、第１触媒１４に流れ込むガス中の酸素不足量や酸素過剰量が同じであっても、触媒温度が低ければ少量となり、その温度が高ければ多量となる。そこで、本実施形態では、このような前提の下、リーン側最大酸素吸蔵量CmaxＬおよびリッチ側最大酸素吸蔵量CmaxＲが、それぞれ触媒温度の影響を受けるものとして、真の理論空燃比STの算出処理を行うこととした。
【００７４】
図７は、吸蔵速度係数KＬおよび脱離速度係数KＲと、吸入空気量Ga（触媒温度）との関係を示すマップである。第１触媒１４の内部では、吸蔵反応が脱離反応に比して高速で行われることが知られている。また、それらの反応速度は、吸入空気量Gaが多く、触媒温度が高温となるほど早くなることが知られている。これらの事情と合致するように、図７に示すマップは、吸蔵速度係数KＬが脱離速度係数KＲに比して大きな値となり、また、KＬおよびKＲが、何れもGaに対して正の依存性を有するように定められている。
【００７５】
吸蔵速度係数KＬを用いると、サブO２センサ２０の出力OXSがリッチ出力に反転し、目標空燃比がリーン目標値AFＬとされた後に第１触媒１４に吸蔵された酸素の総量ΔOSAは、次式のように表すことができる。尚、次式に含まれる変数は、KＬを除いて上記（１）式に含まれるものと同じである。
ΔOSA＝Σ０．２３＊mfrＬ＊（AFＬ−ST）＊dT＊KＬ      ・・・（５）
【００７６】
また、脱離速度係数KＲを用いると、サブO２センサ２０の出力OXSがリーン出力に反転し、目標空燃比がリッチ目標値AFＲとされた後に第１触媒１４から脱離した酸素の総量ΔOSAは、次式のように表すことができる。尚、次式に含まれる変数は、KＲを除いて上記（２）式に含まれるものと同じである。
ΔOSA＝Σ０．２３＊mfrＲ＊（AFＲ−ST）＊dT＊KＲ      ・・・（６）
【００７７】
上記（５）式により算出される吸蔵酸素の総量ΔOSAは、サブO２センサ２０の出力OXSがリーン出力に反転した時点でリーン側最大酸素吸蔵量CmaxＬとなる。一方、上記（６）式により算出される脱離酸素の総量ΔOSAは、サブO２センサ２０の出力OXSがリッチ出力に反転した時点でリッチ側最大酸素吸蔵量CmaxＲとなる。そして、それらのCmaxＬおよびCmaxＲが等しいとの拘束条件を用いると、真の理論空燃比STは以下のように表すことができる。
ST＝（ΣmfrＬ＊AFＬ＊KＬ−ΣmfrＲ＊AFＲ＊KＲ）／（ΣmfrＬ＊KＬ−ΣmfrＲ＊KＲ）
・・・（７）
【００７８】
本実施形態において、ECU３０は、上記（７）式の関係に従って真の理論空燃比STを算出し、そのSTに基づいて空燃比学習値STGを算出する。図８は、その機能を実現するためにECU３０が実行するルーチンのフローチャートである。尚、図８において、上記図６に示すステップと同一のステップについては、同一の符号を付してその説明を省略または簡略する。
【００７９】
図８に示すルーチンでは、ステップ１１０において目標空燃比がリーン目標値AFＬとされた後に、吸入空気量Gaが検出され（ステップ１３０）、次いで、吸蔵速度係数KＬが設定される（ステップ１３２）。ECU３０は、図７に示すマップを記憶しており、本ステップ１３２では、そのマップを参照して現在の吸入空気量Gaに対応する吸蔵速度係数KＬが決定される。
【００８０】
次に、リーン側噴射量積算値ΣmfrＬ・KＬ（nＬ）が算出される（ステップ１３４）。ここでは、具体的には、今回の処理サイクルにおけるmfrＬ・KＬの算出と、その算出値の積算とが行われる。ΣmfrＬ・KＬ（nＬ）は、nＬの値毎に、つまり、目標空燃比がリーン目標値AFＬとされる期間毎に一つずつ算出される。
【００８１】
図８に示すルーチンでは、また、ステップ１１８において目標空燃比がリッチ目標値AFＲとされた後に、吸入空気量Gaの検出（ステップ１３６）、および脱離速度係数KＲの設定が行われる（ステップ１３８）。脱離速度係数KＲは、吸蔵速度係数KＬの場合と同様に図７に示すマップを参照して決定される。
【００８２】
次に、リッチ側噴射量積算値ΣmfrＲ・KＲ（nＲ）が算出される（ステップ１４０）。ここでは、具体的には、今回の処理サイクルにおけるmfrＲ・KＲの算出と、その算出値の積算とが行われる。ΣmfrＲ・KＲ（nＲ）は、リーン側噴射量積算値ΣmfrＬ・KＬ（nＬ）の場合と同様に、nＲの値毎に、つまり、目標空燃比がリッチ目標値AFＲとされる期間毎に一つずつ算出される。
【００８３】
図８に示すルーチンにおいて、ステップ１２２の条件成立が認められると、検出完了の判定を経て、真の理論空燃比STの算出および更新が行われる（ステップ１４２）。ここでは、具体的には、以下に示す（８）式によりSTが算出される。
ST＝（AveΣmfrＬ＊AFＬ＊KＬ−AveΣmfrＲ＊AFＲ＊KＲ）
／（AveΣmfrＬ＊KＬ−AveΣmfrＲ＊KＲ）・・・（８）
【００８４】
尚、上記（８）式は、上記（７）式における「ΣmfrＬ」および「ΣmfrＲ」を、それらの平均値（β個の平均値）を意味する「AveΣmfrＬ」または「AveΣmfrＲ」に置き換えただけのものであり、実質的には（７）式と同様である。
【００８５】
以上説明した処理によれば、ECU３０は、第１触媒１４の内部で生ずる酸素の吸脱速度をも考慮して真の理論空燃比STを算出することができる。このため、本実施形態の装置によれば、実施の形態１の装置に比して、更に高精度な空燃比制御を実現することができる。
【００８６】
尚、上述した実施の形態２においては、ECU３０が、上記ステップ１３２の処理を実行することにより前記第２の発明における「吸蔵速度係数算出手段」が、上記ステップ１３８の処理を実行することにより前記第２の発明における「脱離速度係数算出手段」が、それぞれ実現されている。
【００８７】
実施の形態３．
次に、図９および図１０を参照して、本発明の実施の形態３について説明する。本実施形態の装置は、実施の形態１または２の装置において、ECU３０に、上記図６または図８に示すルーチンに代えて後述する図１０に示すルーチンを実行させることにより実現することができる。
【００８８】
上述した実施の形態２では、第１触媒１４内部で生ずる酸素の吸脱量を算出するにあたり、酸素の吸脱反応速度の影響を考慮することとしている。そして、酸素の吸脱反応速度は、触媒温度（吸入空気量Ga）に応じて変化するものとしている。ところが、より厳密には、酸素の吸脱反応速度は、触媒温度の他にも、第１触媒１４の劣化の度合いや、第１触媒１４がどの程度酸素を吸蔵しているかなどによっても変化する。つまり、酸素の吸脱反応速度は、第１触媒１４の劣化が進むに連れて低速となり易い。また、酸素の吸蔵速度は、第１触媒１４内部に吸蔵スペースが大きく確保されているほど、つまり、第１触媒１４の酸素吸蔵量OSAが少量であるほど高速となり易く、一方、酸素の脱離速度は、第１触媒１４が多量に酸素を吸蔵しているほど高速となり易い。そこで、本実施形態では、第１触媒１４内部で生ずる酸素の吸脱量を推定するに当たり、触媒温度に加えて、第１触媒１４の劣化度合いや第１触媒１４の酸素吸蔵量OSAをも基礎とすることとした。
【００８９】
図９は、本実施形態において、吸蔵速度係数KＬおよび脱離速度係数KＲを設定する際に参照されるマップの一例を示す。このマップにおいて、吸蔵速度係数KＬおよび脱離速度係数KＲは、吸入空気量Ga（触媒温度）が多量であるほど大きな値となり、また、第１触媒１４の劣化が進むほど（Cmaxが少量となるほど）小さな値となるように定められている。このため、図９に示すマップによれば、触媒温度および触媒劣化度に対応した吸蔵速度係数KＬおよび脱離速度係数KＲを設定することができる。
【００９０】
また、本実施形態では、第１触媒１４の酸素吸蔵状態を、その内部で生ずる酸素の吸脱量に反映させるべく、目標空燃比がリーン目標値AFＬとされた後に生ずる吸蔵酸素の総量ΔOSAが、次式により算出されるものとしている。
ΔOSA＝Σ０．２３＊mfrＬ＊（AFＬ−ST）＊dT＊KＬ＊（Cmax−OSA）  ・・・（９）
【００９１】
同様の目的のため、本実施形態では、目標空燃比がリッチ目標値AFＲとされた後に生ずる脱離酸素の総量ΔOSAが、次式により算出されるものとしている。
ΔOSA＝Σ０．２３＊mfrＲ＊（AFＲ−ST）＊dT＊KＲ＊OSA          ・・・（１０）
【００９２】
上記（９）式により算出される吸蔵酸素の総量ΔOSAは、第１触媒１４の酸素吸蔵余力（Cmax−OSA）が大きいほど大きな値となる。そして、この演算式（９）によれば、サブO２センサ２０の出力OXSがリーン出力に反転するまで積算処理を続けることでリーン側最大酸素吸蔵量CmaxＬを求めることができる。一方、上記（１０）式により算出される脱離酸素の総量ΔOSAは、第１触媒１４の酸素吸蔵量OSAが多量であるほど大きな値となる。そして、この演算式（１０）によれば、サブO２センサ２０の出力OXSがリッチ出力に反転するまで積算処理を続けることでリッチ側最大酸素吸蔵量CmaxＲを求めることができる。
【００９３】
更に、これらの演算式により求まるCmaxＬとCmaxＲと等しいとの拘束条件を用いると、真の理論空燃比STは以下のように表すことができる。
ST＝｛ΣmfrＬ＊AFＬ＊KＬ＊（Cmax−OSA）−ΣmfrＲ＊AFＲ＊KＲ＊OSA｝
／｛ΣmfrＬ＊KＬ＊（Cmax−OSA）−ΣmfrＲ＊KＲ＊OSA｝
・・・（１１）
【００９４】
本実施形態において、ECU３０は、上記（１１）式の関係に従って真の理論空燃比STを算出し、そのSTに基づいて空燃比学習値STGを算出する。この場合、第１触媒１４の劣化度や酸素吸蔵状態がその内部で生ずる酸素の吸脱量に与える影響をも考慮したうえで真の理論空燃比STを求めることが可能となる。このため、本実施形態の手法によれば、実施の形態１または２の場合に比して、STの算出精度を更に高めることができる。
【００９５】
図１０は、上記の手法で真の理論空燃比STを算出するため、本実施形態においてECU３０が実行するルーチンのフローチャートである。尚、図１０において、上記図６または図８に示すステップと同一のステップについては、同一の符号を付してその説明を省略または簡略する。
【００９６】
図１０に示すルーチンでは、ステップ１１０において目標空燃比がリーン目標値AFＬとされた後に、吸入空気量Gaが検出され（ステップ１３０）、次いで、最大酸素吸蔵量Cmaxが検出される（ステップ１５０）。Cmaxは、例えば、最新のSTを用いて、OXSが反転するまで上記（１）式または（２）式の積算処理を継続することで求めることができる。本ステップ１５０では、そのような手法で予め求めておいたCmaxを読み出すことで、その値を検出すればよい。Cmaxの検出が終わると、次に、吸蔵速度係数KＬが設定される（ステップ１５２）。ECU３０は、図９に示すマップを記憶しており、本ステップ１５２では、そのマップを参照して、現在の吸入空気量GaおよびCmaxに対応する吸蔵速度係数KＬが決定される。
【００９７】
図１０に示すルーチンでは、次に、第１触媒１４の現在の酸素吸蔵量OSAが検出される（ステップ１５４）。OSAは、例えば、最新のSTを用いて上記（１）式の積算処理を行うことで求めることができる。OSAの検出が終わると、次に、リーン側噴射量積算値ΣmfrＬ・KＬ＊（Cmax−OSA）（nＬ）が算出される（ステップ１５６）。ここでは、具体的には、今回の処理サイクルにおけるmfrＬ・KＬ＊（Cmax−OSA）の算出と、その算出値の積算とが行われる。ΣmfrＬ・KＬ＊（Cmax−OSA）（nＬ）は、nＬの値毎に、つまり、目標空燃比がリーン目標値AFＬとされる期間毎に一つずつ算出される。
【００９８】
図１０に示すルーチンでは、また、ステップ１１８において目標空燃比がリッチ目標値AFＲとされた後に、吸入空気量Gaが検出され（ステップ１３６）、次いで、最大酸素吸蔵量Cmaxが検出される（ステップ１５８）。Cmaxは、上記ステップ１５０の場合と同様の手法で検出することができる。Cmaxの検出が終わると、次に、脱離速度係数KＲが設定される（ステップ１６０）。脱離速度係数KＲが吸蔵速度係数KＬの場合と同様に図９に示すマップを参照することで設定することができる。
【００９９】
次に、第１触媒１４の現在の酸素吸蔵量OSAが検出される（ステップ１６２）。OSAは、例えば、最新のSTを用いて上記（２）式の積算処理を行うことで求めることができる。OSAの検出が終わると、次に、リッチ側噴射量積算値ΣmfrＲ・KＲ＊OSA（nＲ）が算出される（ステップ１６４）。ここでは、具体的には、今回の処理サイクルにおけるmfrＲ・KＲ＊OSAの算出と、その算出値の積算とが行われる。ΣmfrＲ・KＲ＊OSA（nＲ）は、nＲの値毎に、つまり、目標空燃比がリッチ目標値AFＲとされる期間毎に一つずつ算出される。
【０１００】
図１０に示すルーチンにおいて、ステップ１２２の条件成立が認められると、検出完了の判定を経て、真の理論空燃比STの算出および更新が行われる（ステップ１６６）。ここでは、具体的には、以下に示す（１２）式によりSTが算出される。
ST＝｛AveΣmfrＬ＊AFＬ＊KＬ＊（Cmax−OSA）−AveΣmfrＲ＊AFＲ＊KＲ＊OSA｝
／｛AveΣmfrＬ＊KＬ＊（Cmax−OSA）−AveΣmfrＲ＊KＲ＊OSA｝
・・・（１２）
【０１０１】
尚、上記（１２）式は、上記（１１）式における「ΣmfrＬ」および「ΣmfrＲ」を、それらの平均値（β個の平均値）を意味する「AveΣmfrＬ」または「AveΣmfrＲ」に置き換えただけのものであり、実質的には（１１）式と同様である。
【０１０２】
以上説明した処理によれば、ECU３０は、第１触媒１４の酸素吸蔵状態や劣化状態をも考慮したうえで真の理論空燃比STを算出することができる。このため、本実施形態の装置によれば、実施の形態１の装置に比して、更に高精度な空燃比制御を実現することができる。
【０１０３】
ところで、上述した実施の形態３においては、第１触媒１４の劣化度合いを最大酸素吸蔵量Cmaxで判断することとしているが、その判断の手法はこれに限定されるものではない。例えば、第１触媒１４の累積使用時間や、車両の走行距離などをその劣化度合いの特性値として用いることとしてもよい。
【０１０４】
尚、上述した実施の形態３においては、ECU３０が、上記ステップ１５２の処理を実行することにより前記第２の発明における「吸蔵速度係数算出手段」が、上記ステップ１６０の処理を実行することにより前記第２の発明における「脱離速度係数算出手段」が、それぞれ実現されている。また、実施の形態３においては、ECU３０が、上記ステップ１５０または１５８の処理を実行することにより前記第４の発明における「劣化度検出手段」および前記第５の発明における「最大酸素吸蔵量算出手段」が、上記ステップ１５４または１６２の処理を実行することにより前記第５の発明における「酸素吸蔵量算出手段」が、それぞれ実現されている。
【０１０５】
実施の形態４．
次に、図１１および図１２を参照して、本発明の実施の形態４について説明する。本実施形態の装置は、実施の形態１の装置において、ECU３０に、上記図６に示すルーチンに代えて後述する図１２に示すルーチンを実行させることにより実現することができる。尚、本実施形態では、説明の便宜上、実施の形態１の場合と同様に、サブO２センサ２０の出力反転後における第１触媒１４内の酸素吸脱量の総量ΔOSAは、上記（１）式または（２）式により算出されるものとする。
【０１０６】
本実施形態の装置は、既述した実施の形態１乃至３の装置と同様に、リーン側最大酸素吸蔵量CmaxＬおよびリッチ側最大酸素吸蔵量CmaxＲが等しいとの拘束条件を用いて、真の理論空燃比STを算出する。この場合、CmaxＬの算出精度およびCmaxＲの算出精度が低いと、CmaxＬ＝CmaxＲの前提が崩れ、その結果、真の理論空燃比STの算出精度が低下するため、CmaxＬおよびCmaxＲの推定精度は高いことが望ましい。
【０１０７】
上述した実施の形態１乃至３の装置では、サブO２センサ２０の出力OXSがリッチ出力からリーン出力に反転した時点で第１触媒１４の酸素吸蔵量OSAが最大酸素吸蔵量Cmaxに達するものとして、また、OXSにその逆の反転が生じた時点で第１触媒１４の酸素吸蔵量OSAがゼロとなるものとして、真の理論空燃比STの算出処理を行っている。ところが、第１触媒１４の酸素吸蔵量OSAが最大酸素吸蔵量Cmax或いはゼロに達する時点と、サブO２センサ２０の出力OXSが反転する時点との間には、ガスの輸送に伴う応答遅れと、センサ自身の応答遅れとに起因する時間差が存在している。
【０１０８】
図１１は、上記の時間差がCmaxＬおよびCmaxＲに与える影響を説明するためのタイミングチャートである。図１１において、時刻t1およびt5は、目標空燃比がリーン目標値AFＬに維持された結果、第１触媒１４の酸素吸蔵量OSAがCmaxに達した時点である。図１１（Ｂ）は、時刻t1（またはt5）の後、所定の遅延を経て、時刻t2（またはt6）においてサブO２センサ２０の出力OXSがリッチ出力からリーン出力に反転している様子を示している。この場合、OXSが反転するまでΔOSAの積算が継続されれば（上記（１）式参照）、CmaxＬは現実のCmaxに対して過大な値として算出される。
【０１０９】
また、図１１において、時刻t3は、目標空燃比がリッチ目標値AFＲに維持された結果、第１触媒１４の酸素吸蔵量OSAがゼロとなった時点である。図１１（Ｂ）は、時刻t3の後、所定の遅延を経て、時刻t4においてサブO２センサ２０の出力OXSがリーン出力からリッチ出力に反転している様子を示している。この場合、OXSが反転するまでOSAの積算が継続されれば（上記（２）式参照）、CmaxＲは現実のCmaxに対して過大な値として算出される。このため、サブO２センサ２０の出力OXSが反転した時点でΔOSAがCmaxＬまたはCmaxＲに達するとの前提を採ると、真の理論空燃比STの算出値に、サブO２センサ２０の応答遅れに起因する誤差が重畳することとなる。
【０１１０】
ところで、サブO２センサ２０の応答遅れのうち、ガスの輸送に起因する遅れは、定常領域では固定値として扱うことが可能である。また、サブO２センサ２０自身の応答遅れも、予め測定しておくことが可能である。このため、酸素吸蔵量OSAが現実にCmaxやゼロとなった後、OXSに反転が生ずるまでの遅延時間は、適合作業により定めておくことが可能である。
【０１１１】
図１１中に「マスク領域」として示した期間は、サブO２センサ２０の応答遅れ（ガス輸送に伴う遅れとセンサ自身の反応遅れの和）に対応する期間である。サブO２センサ２０自身の反応遅れは、一般に、リッチ出力からリーン出力への反転時に、その逆の反転時に比して大きなものとなる。図１１に示す例は、前者の反転に伴う応答遅れが３００msec程度であり、後者の反転に伴う応答遅れが１５０msec程度であるとしたものである。この前提に従い、時刻t1−t2（またはt5−t6）のマスク領域は、時刻t3−t4のマスク領域に比して大きく示されている。
【０１１２】
本実施形態の装置において、リーン側最大酸素吸蔵量CmaxＬを精度良く求めるためには、上記（１）式による積算処理が時刻t1まで行われた時点で算出されていた積算値ΔOSA（t1）を取得する必要がある。また、この装置においてリッチ側最大酸素吸蔵量CmaxＲを精度良く求めるためには、上記（２）式による積算処理が時刻t3まで行われた時点で算出されていた積算値ΔOSA（t3）を取得する必要がある。
【０１１３】
時刻t1やt3の時点では、サブO２センサ２０の出力OXSに何ら変化は生じない。このため、それらの時刻t1、t3をOXSから直接的に検知することはできない。しかし、マスク領域の時間が既定値であるため、時刻t2の時点で、マスク領域の間にΔOSAに生じた変化分ΔOSA（t1−t2）は算出することが可能である（詳細は後述する）。そして、時刻t2の時点での積算値ΔOSA（t2）からΔOSA（t1−t2）を減じれば、時刻t1の時点での積算値ΔOSA（t1）を算出することは可能である。同様に、時刻t4の時点でΔOSA（t4）からΔOSA（t3−t4）を減じれば、時刻t3における積算値ΔOSA（t3）を求めることは可能である。
【０１１４】
そこで、本実施形態の装置は、サブO２センサ２０の出力OXSに遅延が生ずる期間を予め「マスク領域」として求めておき、そのマスク領域を除外した期間における積算値ΔOSAをリーン側最大酸素吸蔵量CmaxＬ或いはリッチ側最大酸素吸蔵量CmaxＲと定義し、それらが等しいものとして真の理論空燃比STを算出することとした。
【０１１５】
図１２は、上記の原理に従って真の理論空燃比STを算出すべく、本実施形態においてECU３０が実行するルーチンのフローチャートを示す。尚、図１２において、上記図６に示すステップと同一のステップについては、同一の符号を付してその説明を省略または簡略する。
【０１１６】
図１２に示すルーチンでは、ステップ１０４においてOXS＞VＴＨの成立が認められ、かつ、ステップ１０６において前回のOXSがリーン出力であったと判別された場合に、つまり、前回から今回にかけてOXSがリーン出力からリッチ出力に反転したと判別された場合に、先ず、リッチ側マスク値ΔΣmfrＲが算出される（ステップ１７０）。本ステップ１７０の処理は、例えば、図１１に示す時刻t4において行われる。リッチ側マスク値ΔΣmfrＲは、OXSがリーン出力からリッチ出力に反転する際の遅延時間中に生じたΔOSAの変化量（上記のΔOSA（t3−t4）に相当）であり、以下に示す演算式により求めることができる。
ΔΣmfrＲ＝ΣmfrＲ（nＲ）／NＲ＊ΔTＲ                  ・・・（１３）
【０１１７】
但し、上記（１３）式において、ΣmfrＲ（nＲ）は、OXSがリッチ出力に反転する直前の処理サイクルにおいて、ステップ１２０で算出されたリッチ側噴射量積算値である。つまり、図１１に示す時刻t2−t4に渡って積算されたリッチ側噴射量mfrＲの積算値である。また、NＲは、ΣmfrＲ（nＲ）が算出される過程で繰り返された積算処理の回数、つまり、時刻t2−t4の間に繰り返されたmfrＲの積算回数である。そして、ΔTＲはOXSがリーン出力からリッチ出力に反転する際の遅延をマスクするためのマスク期間、つまり、時刻t3−t4に相当する既定の時間である。mfrＲは単位時間当たりの燃料噴射量であるから、上記（１３）式によれば、その平均値（ΣmfrＲ（nＲ）／NＲ）にマスク時間（ΔTＲ）を掛け合わせることにより、マスク領域（時刻t3−t4）において生じたΔOSAの変化量を正確に算出することができる。
【０１１８】
リッチ側マスク値ΔΣmfrＲが算出されると、次式に従って、リッチ側噴射量積算値ΣmfrＲ（nＲ）の補正処理が行われる（ステップ１７２）。
ΣmfrＲ（nＲ）＝ΣmfrＲ（nＲ）−ΔΣmfrＲ              ・・・（１４）
上記（１４）式によれば、マスク領域を除外した期間中に生じたリッチ側噴射量mfrＲの積算値、つまり、図１１における時刻t2−t3に渡る期間中に生じたリッチ側噴射量mfrＲの積算値を正確に算出することができる。
【０１１９】
以上説明した通り、図１２に示すルーチンによれば、サブO２センサ２０の出力がリーン出力からリッチ出力に反転した時点（例えば時刻t4）で、マスク領域を除外した期間（時刻t2−t3に渡る期間）におけるリッチ側噴射量mfrＲの積算値をΣmfrＲ（nＲ）として算出することができる。上記の処理が終わると、以後の処理に備えて、リッチ側噴射量積算値ΣmfrＲ（nＲ）の積算回数を意味するNＲがクリアされ（ステップ１７４）、その後、ステップ１０８〜１１２の処理が行われる。
【０１２０】
ステップ１１２では、実施の形態１の場合と同様に、リーン側噴射量積算値ΣmfrＬ（nＬ）の積算処理が実行される。次に、後の補正に備えて、リーン側噴射量積算値ΣmfrＬ（nＬ）の積算回数NＬがインクリメントされる。以後、実施の形態１の場合と同様に、ステップ１２２以降の処理が実行される。そして、OXSがリーン出力に反転するまで、以上の処理が繰り返されてΣmfrＬ（nＬ）の積算処理が進められる。
【０１２１】
OXSがリーン出力に反転すると、ステップ１０４においてOXS＞VＴＨの不成立が認められる。そして、反転後の初回処理サイクルに限り、ステップ１１４において前回のOXSがリッチ出力であったと判別される。この場合、先ず、リーン側マスク値ΔΣmfrＬが算出される（ステップ１７８）。本ステップ１７８の処理は、例えば、図１１に示す時刻t6において行われる。リーン側マスク値ΔΣmfrＬは、OXSがリッチ出力からリーン出力に反転する際の遅延時間中（図１１における時刻t5−t6）に生じたΔOSAの変化量であり、以下に示す演算式により求めることができる。
ΔΣmfrＬ＝ΣmfrＬ（nＬ）／NＬ＊ΔTＬ                  ・・・（１５）
【０１２２】
但し、上記（１５）式において、ΣmfrＬ（nＬ）は、OXSがリーン出力に反転する直前の処理サイクルにおいて、上記ステップ１１２で算出されたリーン側噴射量積算値である。つまり、図１１に示す時刻t4−t6に渡って積算されたリーン側噴射量mfrＬの積算値である。また、NＬは、ΣmfrＬ（nＬ）が算出される過程で繰り返された積算処理の回数、つまり、時刻t4−t6の間に繰り返されたmfrＬの積算回数である。そして、ΔTＬはOXSがリッチ出力からリーン出力に反転する際の遅延をマスクするためのマスク期間、つまり、時刻t5−t6に相当する既定の時間である。mfrＬは単位時間当たりの燃料噴射量であるから、上記（１５）式によれば、その平均値（ΣmfrＬ（nＬ）／NＬ）にマスク時間（ΔTＬ）を掛け合わせることにより、マスク領域（時刻t5−t6）において生じたΔOSAの変化量を正確に算出することができる。
【０１２３】
リーン側マスク値ΔΣmfrＬが算出されると、次式に従って、リーン側噴射量積算値ΣmfrＬ（nＬ）の補正処理が行われる（ステップ１８０）。
ΣmfrＬ（nＬ）＝ΣmfrＬ（nＬ）−ΔΣmfrＬ              ・・・（１６）
上記（１６）式によれば、マスク領域を除外した期間中に生じたリーン側噴射量mfrＬの積算値、つまり、図１１における時刻t4−t5に渡る期間中に生じたリーン側噴射量mfrＬの積算値を正確に算出することができる。
【０１２４】
以上説明した通り、図１２に示すルーチンによれば、サブO２センサ２０の出力がリッチ出力からリーン出力に反転した時点（例えば時刻t6）で、マスク領域を除外した期間（時刻t4−t5に渡る期間）におけるリーン側噴射量mfrＬの積算値をΣmfrＬ（nＬ）として算出することができる。上記の処理が終わると、以後の処理に備えて、リーン側噴射量積算値ΣmfrＬ（nＬ）の積算回数を意味するNＬがクリアされ（ステップ１８２）、その後、ステップ１１６〜１２０の処理が行われる。
【０１２５】
ステップ１２０では、実施の形態１の場合と同様に、リッチ側噴射量積算値ΣmfrＲ（nＲ）の積算処理が実行される。次に、後の補正に備えて、リッチ側噴射量積算値ΣmfrＲ（nＲ）の積算回数NＲがインクリメントされる。以後、実施の形態１の場合と同様に、ステップ１２２以降の処理が実行される。そして、OXSがリッチ出力に反転するまで、以上の処理が繰り返されてΣmfrＲ（nＲ）の積算処理が進められる。
【０１２６】
以上説明した処理によれば、OXSの反転が認められる毎に、マスク領域を除外した期間におけるリーン側噴射量mfrＬまたはリッチ側噴射量mfrＲの積算値を、リーン側噴射量積算値ΣmfrＬ（nＬ）またはリッチ側噴射量積算値ΣmfrＲ（nＲ）として算出することができる。そして、ステップ１２６では、それらの値を基礎として真の理論空燃比STを算出することができる（上記（４）式参照）。この場合、マスク領域を除く期間において酸素の吸脱量を積算した値がCmaxＬまたはCmaxＲとなることが前提となるため、OXSの反転に伴う遅延の影響でSTに誤差が生ずるのを防ぐことができる。このため、本実施形態の装置によれば、実施の形態１の装置に比して、更に精度良く真の理論空燃比STを算出することができる。
【０１２７】
ところで、上述した実施の形態４においては、リッチ側マスク値ΔΣmfrＲおよびリーン側マスク値ΔΣmfrＬを、それぞれmfrＲ或いはmfrＬの平均値にマスク期間ΔTＲまたはΔTＬを掛け合わせることで算出しているが、その算出の手法はこれに限定されるものではない。例えば、ΣmfrＲ（nＲ）或いはΣmfrＬ（nＬ）の積算中に、新たに加算されたmfrＲ或いはmfrＬを記憶しておき、OXSが反転した時点で、マスク領域分だけ遡ってその記憶値を積算することでリッチ側マスク値ΔΣmfrＲおよびリーン側マスク値ΔΣmfrＬを算出することとしてもよい。
【０１２８】
また、上述した実施の形態４においては、第１触媒１４内部における酸素吸蔵量OSAの変化が、実施の形態１の場合と同様に（１）式または（２）式に従う事を前提としているが、本発明はこれに限定されるものではない。すなわち、酸素吸蔵量OSAの変化は、実施の形態２または３の場合と同様に、（５）式または（６）式、或いは、（９）式または（１０）式に従うことを前提としてもよい。
【０１２９】
更に、上述した実施の形態１乃至４においては、第１触媒１４の上流に空燃比センサを配する構成を採用しているが、その構成はこれに限定されるものではない。すなわち、第１触媒１４の上流に配置するセンサは、その下流に配置されるセンサと同様にO２センサであってもよい。但し、その場合には、第１触媒１４の上流における空燃比をフィードバック制御によりリッチ目標値AFＲ或いはリーン目標値AFＬに一致させることができないため、その空燃比を強制的にリッチまたはリーンとする制御は、オープン制御で行うことが必要である。そして、この場合は、オープン制御による空燃比の制御精度が重要となるため、その精度を保証すべく、空燃比の学習が完了していることを条件として真の理論空燃比STの検出処理を行うことが望ましい。
【０１３０】
尚、上述した実施の形態４においては、ECU３０が、上記ステップ１７０の処理のためにマスク期間ΔTＲを読み出すことにより前記第６の発明における「リッチ反転応答遅れ取得手段」が、上記ステップ１７８の処理のためにマスク期間ΔTＬを読み出すことにより前記第６の発明における「リーン反転応答遅れ取得手段」が、それぞれ実現されている。また、実施の形態４においては、上記ステップ１２０において算出されるΣmfrＲ（nＲ）が前記第６の発明における「全期間に渡る前記酸素脱離推定値の積算値」に、上記ステップ１７０において算出されるΔΣmfrＲが前記第６の発明における「前記リッチ反転応答遅れの期間中の積算値分」に、上記ステップ１１２において算出されるΣmfrＬ（nＬ）が前記第６の発明における「全期間に渡る前記酸素吸蔵推定値の積算値」に、上記ステップ１７８において算出されるΔΣmfrＬが前記第６の発明における「前記リーン反転応答遅れの期間中の積算値分」に、それぞれ相当している。
【０１３１】
また、上述した実施の形態１乃至４においては、第１触媒１４に固有の理論空燃比（１４．６等の既定値）が、前記第８の発明における「前記空燃比センサが理論空燃比として出力する値」に相当していると共に、ECU３０が、その値から真の理論空燃比STを減じて空燃比学習値STGを求めることにより、前記第８の発明における「空燃比誤差算出手段」が実現されている。
【図面の簡単な説明】
【０１３２】
【図１】本発明の実施の形態１の構成を説明するための図である。
【図２】本発明の実施の形態１の装置で用いられる制御手法と対比される制御手法を説明するための制御ブロック図である。
【図３】本発明の実施の形態１の装置で用いられる制御手法を説明するための制御ブロック図である。
【図４】図１に示す構成において、サブO２センサの出力が反転する毎に目標空燃比を真の理論空燃比STに対してリッチ側とリーン側に反転させた場合の動作を説明するためのタイミングチャートである。
【図５】図１に示す構成において、メインA/Fセンサの出力がリッチ側にαだけシフトしている場合の現象を説明するためのタイミングチャートである。
【図６】本発明の実施の形態１において実行されるルーチンのフローチャートである。
【図７】本発明の実施の形態２において用いられるマップの一例である。
【図８】本発明の実施の形態２において実行されるルーチンのフローチャートである。
【図９】本発明の実施の形態３において用いられるマップの一例である。
【図１０】本発明の実施の形態３において実行されるルーチンのフローチャートである。
【図１１】本発明の実施の形態１における問題点を説明するためのタイミングチャートである。
【図１２】本発明の実施の形態４において実行されるルーチンのフローチャートである。
【符号の説明】
【０１３３】
１０  内燃機関
１４  第１触媒
１８  メイン空燃比センサ
２０  サブO２センサ
３０  ECU(Electronic Control Unit)
AFＲ  リッチ目標値
AFＬ  リーン目標値
CmaxＲ  リッチ側最大酸素吸蔵量
CmaxＬ  リーン側最大酸素吸蔵量
mfrＲ  リッチ側噴射量
mfrＬ  リーン側噴射量
KＬ  吸蔵速度係数
KＲ  脱離速度係数
Ga  吸入空気量
OXS  サブO２センサの出力
ΔTＬ，ΔTＲ  マスク期間
【図１】
2005098205.tif 000003
【図２】
2005098205.tif 000004
【図３】
2005098205.tif 000005
【図４】
2005098205.tif 000006
【図５】
2005098205.tif 000007
【図６】
2005098205.tif 000008
【図７】
2005098205.tif 000009
【図８】
2005098205.tif 000010
【図９】
2005098205.tif 000011
【図１０】
2005098205.tif 000012
【図１１】
2005098205.tif 000013
【図１２】
2005098205.tif 000014