(57)【特許請求の範囲】
【請求項１】
内燃機関の排気系に設置されて前記内燃機関からの排ガスを浄化する触媒と、
前記触媒の上流側に設けられて上流側排ガス中の空燃比を検出する上流側空燃比センサと、
前記内燃機関の運転状態を検出する各種センサと、
前記上流側空燃比センサの出力値、および前記運転状態に係るフィードバック制御定数に応じて、前記内燃機関に供給する空燃比を調整して、前記空燃比を周期的にリッチ方向およびリーン方向に振動させる空燃比フィードバック制御部と、を備え、
前記空燃比フィードバック制御部は、
前記上流側空燃比センサの出力値が設定電圧以上となるタイミングで前記フィードバック制御定数の増大量を小さくし、前記上流側空燃比センサの出力値が前記設定電圧以下となるタイミングで前記フィードバック制御定数の減少量を小さくする制御ゲイン変更部と、
空燃比の振動がリーン方向からリッチ方向に移行した後、最初に前記上流側空燃比センサの出力値が前記設定電圧以上となるタイミングにおける空燃比フィードバック制御値をリッチ学習値として学習するとともに、空燃比の振動がリッチ方向からリーン方向に移行した後、最初に前記上流側空燃比センサの出力値が前記設定電圧以下となるタイミングにおける空燃比フィードバック制御値をリーン学習値として学習するフィードバック制御値学習部と、を有し、
前記フィードバック制御値学習部は、
空燃比の振動がリーン方向からリッチ方向へと移行する２回目以降の移行時に、前記上流側空燃比センサの出力値が前記設定電圧以上となるタイミングにおける空燃比フィードバック制御値を前記リッチ学習値に設定するとともに、
空燃比の振動がリッチ方向からリーン方向へと移行する２回目以降の移行時に、前記上流側空燃比センサの出力値が前記設定電圧以下となるタイミングにおける空燃比フィードバック制御値を前記リーン学習値に設定する
内燃機関の空燃比制御装置。
【請求項２】
前記設定電圧は、理論空燃比に相当する電圧である
請求項１に記載の内燃機関の空燃比制御装置。
【請求項３】
空燃比の振動がリーン方向からリッチ方向に移行した後、前記フィードバック制御定数の増大量を小さくするまでの制御期間、または空燃比の振動がリッチ方向からリーン方向に移行した後、前記フィードバック制御定数の減少量を小さくするまでの制御期間を計測する制御期間計測部をさらに備え、
前記空燃比フィードバック制御部は、前記制御期間が設定期間よりも長い場合において、前記空燃比フィードバック制御部による空燃比の振動処理の実行を中止する
請求項１または請求項２に記載の内燃機関の空燃比制御装置。
【請求項４】
内燃機関の排気系に設置されて前記内燃機関からの排ガスを浄化する触媒と、
前記触媒の上流側に設けられて上流側排ガス中の空燃比を検出する上流側空燃比センサと、
前記内燃機関の運転状態を検出する各種センサと、
前記上流側空燃比センサの出力値、および前記運転状態に係るフィードバック制御定数に応じて、前記内燃機関に供給する空燃比を調整して、前記空燃比を周期的にリッチ方向およびリーン方向に振動させる空燃比フィードバック制御部と、を備え、
前記上流側空燃比センサの出力値が設定電圧以上となるタイミングで前記フィードバック制御定数の増大量を小さくし、前記上流側空燃比センサの出力値が設定電圧以下となるタイミングで前記フィードバック制御定数の減少量を小さくする内燃機関の空燃比制御装置で実行される空燃比制御方法であって、
前記空燃比フィードバック制御部により、
空燃比の振動がリーン方向からリッチ方向に移行した後、最初に前記上流側空燃比センサの出力値が前記設定電圧以上となるタイミングにおける空燃比フィードバック制御値をリッチ学習値として学習するリッチ学習値学習ステップと、
空燃比の振動がリッチ方向からリーン方向に移行した後、最初に前記上流側空燃比センサの出力値が前記設定電圧以下となるタイミングにおける空燃比フィードバック制御値をリーン学習値として学習するリーン学習値学習ステップと、
空燃比の振動がリーン方向からリッチ方向へと移行する２回目以降の移行時に、前記上流側空燃比センサの出力値が前記設定電圧以上となるタイミングにおける空燃比フィードバック制御値を前記リッチ学習値に設定するリッチ学習値設定ステップと、
空燃比の振動がリッチ方向からリーン方向へと移行する２回目以降の移行時に、前記上流側空燃比センサの出力値が前記設定電圧以下となるタイミングにおける空燃比フィードバック制御値を前記リーン学習値に設定するリーン学習値設定ステップと、を有する
内燃機関の空燃比制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、車両等に搭載される内燃機関の空燃比制御装置および空燃比制御方法に関し、特に内燃機関に供給される空燃比を周期的にリッチ方向およびリーン方向に振動させる空燃比フィードバック制御を行うものに関する。
【背景技術】
【０００２】
一般的に、内燃機関の排気通路には、排ガス中の有害成分ＨＣ、ＣＯ、ＮＯｘを同時に浄化する三元触媒が設置されている。以下、三元触媒を、単に触媒とも称する。この種の触媒においては、理論空燃比付近で有害成分ＨＣ、ＣＯ、ＮＯｘの何れについても浄化率が高くなる。したがって、内燃機関の空燃比制御装置においては、通常、触媒の上流側に上流側Ｏ２センサを設け、空燃比が理論空燃比付近となるように燃料噴射量を調整して、空燃比をフィードバック制御している。
【０００３】
また、触媒には、一次フィルタのように作用する酸素吸蔵能力が付加されており、上流側Ｏ２センサの出力値に対応する上流側空燃比の、理論空燃比からの一時的な変動を吸収するようになっている。すなわち、触媒は、上流側空燃比が理論空燃比よりもリーン側の場合には、排ガス中の酸素を取り込んで蓄積し、逆にリッチ側の場合には、触媒中に蓄積されている酸素を放出する。以下、上流側空燃比を上流側Ａ／Ｆと称する。これにより、上流側Ａ／Ｆの一時的な変動は、触媒内でフィルタ処理され、触媒下流側の空燃比には表れにくくなる。以下、触媒下流側の空燃比を下流側Ａ／Ｆと称する。
【０００４】
また、触媒の酸素吸蔵量の最大値は、触媒の製造時に添付される触媒吸蔵能力を有する物質の量によって決定し、酸素吸蔵量が触媒の最大酸素吸蔵量または最小酸素吸蔵量（＝０）に到達すると、もはや上流側Ａ／Ｆの変動を吸収することができなくなるので、触媒内の空燃比が理論空燃比から外れて、触媒の浄化能力が低下する。このとき、触媒の下流側での空燃比が理論空燃比から大きく外れるので、触媒の酸素吸蔵量が最大値または最小値（＝０）に到達したことを検出することができる。
【０００５】
また、触媒は、高温の排ガスにさらされることになるが、車両用の内燃機関において通常考えられる使用条件では、触媒の浄化機能が急激に低下しないように設計されている。しかしながら、例えば失火した場合に発生する触媒内燃焼等、使用中に何らかの原因により触媒の酸素吸蔵能力が著しく低下する場合がある。また、通常の使用条件下でも、例えば走行距離が数万キロにも達してくると、経年劣化により徐々に酸素吸蔵能力が低下していく。
【０００６】
すなわち、触媒が劣化して酸素吸蔵量が減少してくると、上流側Ｏ２センサの出力値である上流側Ａ／Ｆの変動を触媒で吸収できなくなり、触媒の下流側に設けられた下流側Ｏ２センサの出力値である下流側Ａ／Ｆの変動が増加してくることが知られている。
【０００７】
そこで、上流側Ｏ２センサの出力値の変動と、下流側Ｏ２センサの出力値の変動とを比較することにより、触媒の劣化を診断する内燃機関の空燃比制御装置が提案されている（例えば、特許文献１参照）。
【０００８】
なお、近年では、地球環境への意識の向上から排ガス規制が強化され、より軽微な触媒劣化、すなわち最大酸素吸蔵量の減少を検出することが求められている。また、年々、酸素吸蔵能力を持つ物質の耐熱性が向上しつつあるので、触媒への添加量を増加させることができるようになり、劣化診断が必要な触媒の最大酸素吸蔵量が増加している。
【０００９】
そこで、上流側Ｏ２センサの出力値のリッチ方向、リーン方向への空燃比振動の周期および振動幅を増加させることにより、触媒の酸素吸蔵量の振動幅を増大させて、触媒の軽微な劣化を診断する内燃機関の空燃比制御装置が提案されている（例えば、特許文献２、３参照）。
【００１０】
しかしながら、特許文献１〜３に記載された内燃機関の空燃比制御装置では、最大酸素吸蔵量の変化に応じて、空燃比振動の周期や振動幅を大きく変化させる必要があることから、空燃比の制御性や排ガス性能、空燃比フィードバック性能、トルク変動の増加等の各種性能が悪化するという課題があった。
【００１１】
そこで、この課題を解決する方法として、平均空燃比振動手段を備え、この平均空燃比振動手段が、空燃比フィードバック制御手段によって周期的に振動する空燃比の平均空燃比を所定周期でリッチ方向およびリーン方向に振動させるために、平均空燃比の所定のリッチ期間および所定のリーン期間を交互に設定する手段と、平均空燃比が、リッチ期間にリッチ方向に所定の振動幅を持ち、リーン期間にリーン方向に所定の振動幅を持つようにリッチ期間およびリーン期間に対応してフィードバック制御定数を設定する手段とを設け、空燃比フィードバック性能およびトルク変動を重視した空燃比振動の周期または振動幅の設定を変更することなく、酸素吸蔵量の振動幅を、触媒劣化に適応するために自由に変更することのできる内燃機関の空燃比制御装置が提案されている（例えば、特許文献４参照）。
【００１２】
しかしながら、特許文献４に記載された内燃機関の空燃比制御装置では、リッチ期間においてリッチ方向にて所定の振動幅で制御し、リーン期間においてリーン方向にて所定の振動幅で制御する際に、所定期間に到達するまで、空燃比補正係数が加算または減算され続けることから、上流側Ａ／Ｆが理論空燃比から大きく外れた領域での空燃比制御となり、ドライバビリティおよび排ガスの悪化を抑えることができないという課題があった。
【００１３】
そこで、空燃比の振動時において、空燃比が理論空燃比に相当する電圧以上となるタイミングでフィードバック制御定数の増大量を小さくし、空燃比が理論空燃比に相当する電圧以下となるタイミングでフィードバック制御定数の減少量を小さくすることにより、ドライバビリティおよび排ガスの悪化を抑えることが考えられる。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特公平６−３９９３２号公報
【特許文献２】特開平６−２６３３０号公報
【特許文献３】特開平７−２５９６００号公報
【特許文献４】特開２００８−１５７１３３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
従来の内燃機関の空燃比制御装置において、空燃比が理論空燃比に相当する電圧を横切るタイミングで、フィードバック制御定数の制御ゲインを小さくすることにより、上流側Ａ／Ｆが理論空燃比から外れない領域での空燃比制御を行うことができる。しかしながら、この場合であっても、内燃機関の燃焼状態のばらつきによって、フィードバック制御定数に基づいて演算されるフィードバック制御量が変化するので、三元触媒の劣化を精度よく診断することができないという問題がある。
【００１６】
この発明は、上記のような課題を解決するためになされたものであり、上流側Ａ／Ｆが理論空燃比から外れない領域での空燃比制御を行うことで、ドライバビリティおよび排ガスの悪化を抑えるとともに、三元触媒の劣化を高精度に診断することができる内燃機関の空燃比制御装置および空燃比制御方法を得ることを目的とする。
【課題を解決するための手段】
【００１７】
この発明に係る内燃機関の空燃比制御装置は、内燃機関の排気系に設置されて内燃機関からの排ガスを浄化する触媒と、触媒の上流側に設けられて上流側排ガス中の空燃比を検出する上流側空燃比センサと、内燃機関の運転状態を検出する各種センサと、上流側空燃比センサの出力値、および運転状態に係るフィードバック制御定数に応じて、内燃機関に供給する空燃比を調整して、空燃比を周期的にリッチ方向およびリーン方向に振動させる空燃比フィードバック制御部と、を備え、空燃比フィードバック制御部は、上流側空燃比センサの出力値が設定電圧以上となるタイミングでフィードバック制御定数の増大量を小さくし、上流側空燃比センサの出力値が設定電圧以下となるタイミングでフィードバック制御定数の減少量を小さくする制御ゲイン変更部と、空燃比の振動がリーン方向からリッチ方向に移行した後、最初に上流側空燃比センサの出力値が設定電圧以上となるタイミングにおける空燃比フィードバック制御値をリッチ学習値として学習するとともに、空燃比の振動がリッチ方向からリーン方向に移行した後、最初に上流側空燃比センサの出力値が設定電圧以下となるタイミングにおける空燃比フィードバック制御値をリーン学習値として学習するフィードバック制御値学習部と、を有し、フィードバック制御値学習部は、空燃比の振動がリーン方向からリッチ方向へと移行する２回目以降の移行時に、上流側空燃比センサの出力値が設定電圧以上となるタイミングにおける空燃比フィードバック制御値をリッチ学習値に設定するとともに、空燃比の振動がリッチ方向からリーン方向へと移行する２回目以降の移行時に、上流側空燃比センサの出力値が設定電圧以下となるタイミングにおける空燃比フィードバック制御値をリーン学習値に設定するものである。
【００１８】
また、この発明に係る内燃機関の空燃比制御方法は、内燃機関の排気系に設置されて内燃機関からの排ガスを浄化する触媒と、触媒の上流側に設けられて上流側排ガス中の空燃比を検出する上流側空燃比センサと、内燃機関の運転状態を検出する各種センサと、上流側空燃比センサの出力値、および運転状態に係るフィードバック制御定数に応じて、内燃機関に供給する空燃比を調整して、空燃比を周期的にリッチ方向およびリーン方向に振動させる空燃比フィードバック制御部と、を備え、上流側空燃比センサの出力値が設定電圧以上となるタイミングでフィードバック制御定数の増大量を小さくし、上流側空燃比センサの出力値が設定電圧以下となるタイミングでフィードバック制御定数の減少量を小さくする内燃機関の空燃比制御装置で実行される空燃比制御方法であって、空燃比フィードバック制御部により、空燃比の振動がリーン方向からリッチ方向に移行した後、最初に上流側空燃比センサの出力値が設定電圧以上となるタイミングにおける空燃比フィードバック制御値をリッチ学習値として学習するリッチ学習値学習ステップと、空燃比の振動がリッチ方向からリーン方向に移行した後、最初に上流側空燃比センサの出力値が設定電圧以下となるタイミングにおける空燃比フィードバック制御値をリーン学習値として学習するリーン学習値学習ステップと、空燃比の振動がリーン方向からリッチ方向へと移行する２回目以降の移行時に、上流側空燃比センサの出力値が設定電圧以上となるタイミングにおける空燃比フィードバック制御値をリッチ学習値に設定するリッチ学習値設定ステップと、空燃比の振動がリッチ方向からリーン方向へと移行する２回目以降の移行時に、上流側空燃比センサの出力値が設定電圧以下となるタイミングにおける空燃比フィードバック制御値をリーン学習値に設定するリーン学習値設定ステップと、を有するものである。
【発明の効果】
【００１９】
この発明に係る内燃機関の空燃比制御装置および空燃比制御方法によれば、上流側空燃比センサの出力値が設定電圧以上となるタイミングでフィードバック制御定数の増大量を小さくするとともに、上流側空燃比センサの出力値が設定電圧以下となるタイミングでフィードバック制御定数の減少量を小さくし、また、空燃比の振動がリーン方向からリッチ方向またはリッチ方向からリーン方向に移行した後、最初に上流側空燃比センサの出力値が設定電圧以上となるタイミングにおける空燃比フィードバック制御値を、リッチ学習値またはリーン学習値として学習するとともに、空燃比の振動がリーン方向からリッチ方向またはリッチ方向からリーン方向へと移行する２回目以降の移行時に、リッチ学習値またはリーン学習値を空燃比フィードバック制御値に設定する。
そのため、上流側Ａ／Ｆが理論空燃比から外れない領域での空燃比制御を行うことで、ドライバビリティおよび排ガスの悪化を抑えるとともに、三元触媒の劣化を高精度に診断することができる。
【図面の簡単な説明】
【００２０】
【図１】この発明の実施の形態１に係る内燃機関の空燃比制御装置を概略的に示す構成図である。
【図２】図１内の制御回路の基本構成を示す機能ブロック図である。
【図３】図２内の空燃比フィードバック制御部による演算処理動作を示すフローチャートである。
【図４】図２内の空燃比フィードバック制御部の動作を補足説明するためのタイミングチャートである。
【図５】図２内のフィードバック制御値学習部による演算処理動作を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、この発明に係る内燃機関の空燃比制御装置および空燃比制御方法の好適な実施の形態につき図面を用いて説明するが、各図において同一、または相当する部分については、同一符号を付して説明する。
【００２２】
実施の形態１．
図１は、この発明の実施の形態１に係る内燃機関の空燃比制御装置の全体を周辺装置とともに示す構成図である。図１において、内燃機関１０１には、吸気系として、エアクリーナ１０２、スロットルバルブ１０３およびサージタンク１０４を有する吸気管１０５が設けられている。
【００２３】
吸気管１０５には、吸入空気量Ｑａを検出するエアフローセンサ１０６と、燃料を噴射するインジェクタ１０７と、スロットルバルブ１０３のスロットル開度θを検出するスロットルセンサ１１７と、アイドリング時を検出するアイドルスイッチ１１８とが設けられている。アイドルスイッチ１１８は、アイドリング開度時、すなわちスロットル開度θが全閉状態であるときにオンとなるアイドル信号ＤＬを生成する。
【００２４】
また、内燃機関１０１には、排気系として、排気管１０８が設けられている。排気管１０８内には、排ガス中の有害成分を浄化するための三元触媒１０９が配置されるとともに、三元触媒１０９の上流側に配置されて空燃比を検出する上流側Ｏ２センサ１１０と、三元触媒１０９の下流側に配置されて空燃比を検出するλＯ２センサである下流側Ｏ２センサ１１１とが設けられている。なお、ここでは、上流側Ｏ２センサ１１０もλＯ２センサである場合を例に挙げて説明する。
【００２５】
内燃機関制御ユニット（ＥＣＵ：Ｅｎｇｉｎｅ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）１１２は、マイクロコンピュータにより構成されており、中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１３と、リードオンリメモリ（ＲＯＭ：Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１４と、ランダムアクセスメモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１５と、入出力インタフェース１１６と、駆動回路１２２と、バックアップＲＡＭ１２４とを有する。以下、入出力インタフェース１１６をＩ／Ｏ１１６と称し、バックアップＲＡＭ１２４をＢ−ＲＡＭ１２４と称する。
【００２６】
また、内燃機関１０１には、冷却水温ＷＴを検出する水温センサ１１９と、クランク角位置に対応したクランク角信号ＣＡを生成するクランク角センサ１２０と、カム角位置に対応したカム角信号を生成するカム角センサ１２１とが設けられている。また、Ｉ／Ｏ１１６には、警告ランプ１２３が接続されている。
【００２７】
なお、水温センサ１１９、クランク角センサ１２０およびカム角センサ１２１は、他のセンサ手段、すなわちエアフローセンサ１０６、上流側Ｏ２センサ１１０、下流側Ｏ２センサ１１１、スロットルセンサ１１７、アイドルスイッチ１１８等とともに、内燃機関１０１の運転状態を検出する各種センサを構成しており、それぞれの検出信号は、運転状態情報としてＥＣＵ１１２に入力されている。
【００２８】
図１に示す内燃機関１０１において、エアクリーナ１０２により清浄化された吸気は、スロットルバルブ１０３により負荷に応じた吸気量に制御され、サージタンク１０４および吸気管１０５を介して内燃機関１０１の各気筒に吸入される。このとき、内燃機関１０１への吸入空気量Ｑａは、エアフローセンサ１０６により検出される。また、内燃機関１０１の各気筒に対する燃料は、インジェクタ１０７を介して吸気管１０５内に噴射される。なお、吸入空気量Ｑａは、エアフローセンサ１０６で検出する代わりに、内燃機関１０１の動作点およびサージタンク１０４内の圧力に基づいて推定してもかまわない。
【００２９】
内燃機関１０１の各気筒に吸入された空気と燃料との混合気は、燃焼行程を経て排ガスとなり、排ガスは、排気管１０８中に配置された三元触媒１０９を通過することにより、有害成分が浄化されて大気中に排気される。
【００３０】
このとき、上流側Ｏ２センサ１１０は、触媒上流における排ガス中の酸素濃度λＯ２を検出して排ガスの雰囲気がリッチであるかリーンであるかを検出する。また、下流側Ｏ２センサ１１１は、触媒下流における排ガス中の酸素濃度λＯ２を検出する。上流側Ｏ２センサ１１０および下流側Ｏ２センサ１１１は、排ガス中の空燃比に応じた電圧を有する電気信号として、出力値Ｖ１、Ｖ２を生成する。
【００３１】
ＥＣＵ１１２において、各種センサからの運転状態情報、すなわち吸入空気量Ｑａ、スロットル開度θ、アイドル信号ＤＬ、冷却水温ＷＴ、上流側Ｏ２センサ１１０からの出力値Ｖ１、下流側Ｏ２センサ１１１からの出力値Ｖ２、クランク角信号ＣＡ、カム角センサ１２１からのカム角信号等は、Ｉ／Ｏ１１６を介して、ＣＰＵ１１３に取り込まれる。
【００３２】
ＥＣＵ１１２は、空燃比フィードバック制御系を構成しており、三元触媒１０９の上流側および下流側に配設された上流側Ｏ２センサ１１０および下流側Ｏ２センサ１１１からの出力値Ｖ１、Ｖ２に基づいて、インジェクタ１０７の駆動信号を生成し、所要量の燃料を噴射させるようになっている。
【００３３】
なお、ＥＣＵ１１２は、内燃機関１０１を最適に制御させる装置とともに、三元触媒１０９の劣化検出装置としても機能する。また、ＥＣＵ１１２内の駆動回路１２２は、インジェクタ１０７のみならず、内燃機関１０１に関連する各種アクチュエータ、例えば図示しないＩＳＣバルブ等を駆動している。
【００３４】
すなわち、ＥＣＵ１１２は、空燃比制御の他に、点火時期制御、アイドル回転数制御等の各種制御を行うとともに、自己診断機能として、排ガス悪化の要因となる各種コンポーネントの故障等を検出する。また、検出した情報に応じて、Ｉ／Ｏ１１６を介して、警告ランプ１２３を点灯させる。
【００３５】
また、ＲＯＭ１１４には、三元触媒１０９の酸素変化量の制御ルーチンのみならず、三元触媒１０９の劣化検出ルーチン等の制御プログラムが格納されており、さらに、これらの制御処理に必要なマップ等も格納されている。
【００３６】
図２は、図１内のＥＣＵ１１２の基本構成を示す機能ブロック図であり、図２内の各部は、主としてＣＰＵ１１３により構成されている。前述のように、ＥＣＵ１１２には、三元触媒１０９の上流側排ガス中の空燃比である上流側Ｏ２センサ１１０の出力値Ｖ１と、三元触媒１０９の下流側排ガス中の空燃比である下流側Ｏ２センサ１１１の出力値Ｖ２と、他の各種センサからの検出情報が入力されている。
【００３７】
図２において、ＥＣＵ１１２は、空燃比フィードバック制御部２０１と、触媒劣化診断部２０２とを備えており、空燃比フィードバック制御部２０１および触媒劣化診断部２０２には、上流側Ｏ２センサ１１０の出力値Ｖ１が入力されている。また、触媒劣化診断部２０２には、下流側Ｏ２センサ１１１の出力値Ｖ２、および他の各種センサからの検出情報が入力されている。
【００３８】
空燃比フィードバック制御部２０１は、上流側Ｏ２センサ１１０の出力値Ｖ１、および運転状態に係るフィードバック制御定数に応じて、インジェクタ１０７の駆動回路１２２を制御することにより、内燃機関１０１に供給する空燃比を調整して、空燃比を周期的にリッチ方向およびリーン方向に振動させる。以下、フィードバック制御定数を、単に制御定数とも称する。
【００３９】
また、空燃比フィードバック制御部２０１は、上流側Ｏ２センサ１１０の出力値Ｖ１に応じて空燃比フィードバック制御部２０１の制御ゲインを変更する制御ゲイン変更部２０３、空燃比フィードバック制御部２０１の制御期間を計測する制御期間計測部２０４、および空燃比フィードバック制御部２０１の空燃比フィードバック制御値を学習するフィードバック制御値学習部２０５を有している。
【００４０】
制御ゲイン変更部２０３は、上流側Ｏ２センサ１１０の出力値Ｖ１が設定電圧である理論空燃比に相当する電圧以上となるタイミングで制御定数の増大量を小さくし、上流側Ｏ２センサ１１０の出力値Ｖ１が理論空燃比に相当する電圧以下となるタイミングで制御定数の減少量を小さくする。以下、設定電圧と記載した場合には、理論空燃比に相当する電圧を指すものとする。
【００４１】
制御期間計測部２０４は、空燃比の振動がリーン方向からリッチ方向に移行した後、制御定数の増大量を小さくするまでの制御期間、または空燃比の振動がリッチ方向からリーン方向に移行した後、制御定数の減少量を小さくするまでの制御期間を計測する。なお、空燃比フィードバック制御部２０１は、制御期間があらかじめ定められた設定期間よりも長い場合において、空燃比の振動処理の実行を中止する。
【００４２】
フィードバック制御値学習部２０５は、空燃比の振動がリーン方向からリッチ方向に移行した後、最初に上流側Ｏ２センサ１１０の出力値Ｖ１が設定電圧以上となるタイミングにおける空燃比フィードバック制御値をリッチ学習値として学習する。また、フィードバック制御値学習部２０５は、空燃比の振動がリッチ方向からリーン方向に移行した後、最初に上流側Ｏ２センサ１１０の出力値Ｖ１が設定電圧以下となるタイミングにおける空燃比フィードバック制御値をリーン学習値として学習する。
【００４３】
また、フィードバック制御値学習部２０５は、空燃比の振動がリーン方向からリッチ方向へと移行する２回目以降の移行時に、上流側Ｏ２センサ１１０の出力値Ｖ１が設定電圧以上となるタイミングにおける空燃比フィードバック制御値をリッチ学習値に設定する。また、フィードバック制御値学習部２０５は、空燃比の振動がリッチ方向からリーン方向へと移行する２回目以降の移行時に、上流側Ｏ２センサ１１０の出力値Ｖ１が設定電圧以下となるタイミングにおける空燃比フィードバック制御値をリーン学習値に設定する。
【００４４】
触媒劣化診断部２０２は、各種センサからの検出情報に基づいて、触媒劣化診断を実施可能と判断した場合に、三元触媒１０９の上流側の空燃比をリッチ方向およびリーン方向に振動させて、三元触媒１０９の下流側の空燃比がリッチ方向およびリーン方向に振動するように、空燃比フィードバック制御部２０１内で用いられる制御定数や振動周期を操作する。このとき、触媒劣化診断部２０２は、事前に試験的に決定しておいた振動周期を、内燃機関１０１の運転状態に応じて設定してもよい。
【００４５】
また、触媒劣化診断部２０２は、三元触媒１０９の劣化指標値を演算する劣化指標値演算部２０６を有している。劣化指標値演算部２０６は、上流側Ｏ２センサ１１０の出力値Ｖ１と下流側Ｏ２センサ１１１の出力値Ｖ２の近似度から、三元触媒１０９の劣化度合いを劣化指標値として演算する。また、触媒劣化診断部２０２は、劣化指標値演算部２０６で演算された劣化指標値に基づいて、三元触媒１０９の劣化を診断し、診断結果を警告ランプ１２３等の警報駆動部に出力する。
【００４６】
次に、図３のフローチャートを参照しながら、図２内の空燃比フィードバック制御部２０１による演算処理動作と、図２内の空燃比フィードバック制御部２０１の制御ゲイン変更部２０３による演算処理動作と、図２内の空燃比フィードバック制御部２０１の制御期間計測部２０４による演算処理動作について説明する。図３の演算処理ルーチンは、上流側Ｏ２センサ１１０の出力値Ｖ１に基づく燃料補正係数ＦＡＦの演算制御手順を示しており、例えば５ｍｓｅｃ等の所定期間毎に空燃比フィードバック制御部２０１により実行される。
【００４７】
図３において、各判定処理からの分岐部の符号「Ｙ」、「Ｎ」は、それぞれ「ＹＥＳ」、「ＮＯ」を示している。まず、上流側Ｏ２センサ１１０の出力値Ｖ１をＡ／Ｄ変換して取り込み（ステップＳ４０１）、上流側Ｏ２センサ１１０による空燃比のフィードバックＦ／Ｂ条件、すなわち閉ループ条件が成立しているか否かを判定する（ステップＳ４０２）。
【００４８】
このとき、例えば、機関始動中、低水温時のリッチ化制御中、高負荷パワー増量のリッチ化制御中、燃費向上のためのリーン化制御中、始動後のリーン化制御中、燃料カット中等、理論空燃比制御以外の空燃比制御条件の成立時や、上流側Ｏ２センサ１１０の不活性状態時または故障時等の場合は、何れも閉ループ条件が不成立状態と判定され、その他の場合は、閉ループ条件が成立状態と判定される。
【００４９】
ステップＳ４０２において、閉ループ条件が不成立（すなわち、ＮＯ）と判定されれば、燃料補正係数ＦＡＦを「１．０」に設定して（ステップＳ４４１）、ディレイカウンタＣＤＬＹを「０」にリセットし（ステップＳ４４２）、遅延後空燃比フラグＦ１が反転してから上流側Ｏ２センサ１１０の出力値Ｖ１が設定電圧以上または設定電圧以下になるまでの制御期間を計測するカウンタＴＡＦを「０」にリセットする（ステップＳ４４３）。なお、燃料補正係数ＦＡＦは、ＥＣＵ１１２内のバックアップＲＡＭ１２４に記憶された閉ループ制御の終了直前の値または学習値としてもよい。
【００５０】
続いて、上流側Ｏ２センサ１１０の出力値Ｖ１が比較電圧ＶＲ１以下、すなわちリーン状態であるか否かを判定し（ステップＳ４４４）、Ｖ１≦ＶＲ１で上流側Ａ／Ｆがリーン状態（すなわち、ＹＥＳ）と判定されれば、遅延前空燃比フラグＦ０をリーン状態の「０」に設定するとともに（ステップＳ４４５）、遅延後空燃比フラグＦ１をリーン状態の「０」に設定して（ステップＳ４４６）、図３の処理ルーチンを抜け出る（ステップＳ４４９）。なお、比較電圧ＶＲ１は、リーン判定用の基準電圧、例えば、０．４５Ｖ程度に設定される。
【００５１】
また、ステップＳ４４４においてＶ１＞ＶＲ１（すなわち、ＮＯ）と判定されれば、上流側Ａ／Ｆがリッチ状態なので、遅延前空燃比フラグＦ０をリッチ状態の「１」に設定するとともに（ステップＳ４４７）、遅延後空燃比フラグＦ１をリッチ状態の「１」に設定して（ステップＳ４４８）、図３の処理ルーチンを抜け出る（ステップＳ４４９）。以上のステップＳ４４１〜４４８により、空燃比の閉ループ条件が不成立時での初期値が設定される。
【００５２】
一方、ステップＳ４０２において、閉ループ条件が成立（すなわち、ＹＥＳ）と判定されれば、続いて、上流側Ｏ２センサ１１０の出力値Ｖ１が比較電圧ＶＲ１、例えば、０．４５Ｖ以下か否か、つまり、三元触媒１０９の上流側Ａ／Ｆが比較電圧ＶＲ１に対してリッチ状態かリーン状態かを判定する（ステップＳ４０３）。
【００５３】
ステップＳ４０３において、Ｖ１≦ＶＲ１（すなわち、ＹＥＳ）と判定されれば、上流側Ａ／Ｆがリーン状態であると見なし、続いて、ディレイカウンタＣＤＬＹが最大値ＴＤＲ以上であるか否かを判定する（ステップＳ４０４）。なお、最大値ＴＤＲは、上流側Ｏ２センサ１１０の出力値Ｖ１がリーンからリッチに変化しても、リーン状態であるとの判定を保持するための「リッチ遅延期間」に対応し、正の値で定義される。
【００５４】
ステップＳ４０４において、ＣＤＬＹ≧ＴＤＲ（すなわち、ＹＥＳ）と判定されれば、ディレイカウンタＣＤＬＹを「０」にリセットするとともに（ステップＳ４０５）、遅延前空燃比フラグＦ０をリーン状態の「０」に設定して（ステップＳ４０６）、後述するステップＳ４１６に進む。
【００５５】
また、ステップＳ４０４において、ＣＤＬＹ＜ＴＤＲ（すなわち、ＮＯ）と判定されれば、続いて、遅延前空燃比フラグＦ０がリーン状態の「０」であるか否かを判定し（ステップＳ４０７）、リーン状態でＦ０＝０（すなわち、ＹＥＳ）と判定されれば、ディレイカウンタＣＤＬＹを「１」だけ減算して（ステップＳ４０８）、ステップＳ４１６に進む。
【００５６】
また、ステップＳ４０７において、リッチ状態でＦ０＝１（すなわち、ＮＯ）と判定されれば、ディレイカウンタＣＤＬＹを「１」だけ加算して（ステップＳ４０９）、ステップＳ４１６に進む。
【００５７】
一方、ステップＳ４０３において、Ｖ１＞ＶＲ１（すなわち、ＮＯ）と判定されれば、上流側Ａ／Ｆがリッチ状態であると見なし、続いて、ディレイカウンタＣＤＬＹが最小値ＴＤＬ以下であるか否かを判定する（ステップＳ４１０）。なお、最小値ＴＤＬは、上流側Ｏ２センサ１１０の出力値Ｖ１がリッチからリーンに変化しても、リッチ状態であるとの判定を保持するための「リーン遅延期間」に対応し、負の値で定義される。
【００５８】
ステップＳ４１０において、ＣＤＬＹ≦ＴＤＬ（すなわち、ＹＥＳ）と判定されれば、ディレイカウンタＣＤＬＹを「０」にリセットするとともに（ステップＳ４１１）、遅延前空燃比フラグＦ０をリッチ状態の「１」に設定して（ステップＳ４１２）、ステップＳ４１６に進む。
【００５９】
また、ステップＳ４１０において、ＣＤＬＹ＞ＴＤＬ（すなわち、ＮＯ）と判定されれば、続いて、遅延前空燃比フラグＦ０がリーン状態の「０」であるか否かを判定し（ステップＳ４１３）、リーン状態でＦ０＝０（すなわち、ＹＥＳ）と判定されれば、ディレイカウンタＣＤＬＹを「１」だけ減算して（ステップＳ４１４）、ステップＳ４１６に進む。
【００６０】
また、ステップＳ４１３において、リッチ状態でＦ０＝１（すなわち、ＮＯ）と判定されれば、ディレイカウンタＣＤＬＹを「１」だけ加算して（ステップＳ４１５）、ステップＳ４１６に進む。
【００６１】
ステップＳ４１６においては、ディレイカウンタＣＤＬＹが最小値ＴＤＬ以下であるか否かを判定し、ＣＤＬＹ＞ＴＤＬ（すなわち、ＮＯ）と判定されれば、後述するステップＳ４１９に進む。
【００６２】
また、ステップＳ４１６において、ＣＤＬＹ≦ＴＤＬ（すなわち、ＹＥＳ）と判定されれば、ディレイカウンタＣＤＬＹを最小値ＴＤＬに設定し（ステップＳ４１７）、遅延後空燃比フラグＦ１をリーン状態の「０」に設定する（ステップＳ４１８）。つまり、ディレイカウンタＣＤＬＹが最小値ＴＤＬに到達した場合には、最小値ＴＤＬでガードするとともに、遅延後空燃比フラグＦ１をリーン状態の「０」とする。
【００６３】
続いて、ディレイカウンタＣＤＬＹが最大値ＴＤＲ以上であるか否かを判定し（ステップＳ４１９）、ＣＤＬＹ＜ＴＤＲ（すなわち、ＮＯ）と判定されれば、後述するステップＳ４２２に進む。
【００６４】
また、ステップＳ４１９において、ＣＤＬＹ≧ＴＤＲ（すなわち、ＹＥＳ）と判定されれば、ディレイカウンタＣＤＬＹを最大値ＴＤＲに設定するとともに（ステップＳ４２０）、遅延後空燃比フラグＦ１をリッチ状態の「１」に設定して（ステップＳ４２１）、ステップＳ４２２に進む。つまり、ディレイカウンタＣＤＬＹが最大値ＴＤＲに到達した場合には、ディレイカウンタＣＤＬＹを最大値ＴＤＲでガードするとともに、遅延後空燃比フラグＦ１をリッチ状態の「１」とする。
【００６５】
ステップＳ４２２においては、燃料補正係数ＦＡＦのスキップ増減処理、または積分処理の実行に先だって、まず、遅延処理後の空燃比が反転したか否かを、遅延後空燃比フラグＦ１の符号が反転したか否かにより判定する。
【００６６】
ステップＳ４２２において、遅延後空燃比フラグＦ１の符号、すなわち空燃比が反転している（すなわち、ＹＥＳ）と判定されれば、続いて、カウンタＴＡＦを「０」にリセットし（ステップＳ４２３）、リッチからリーンへの反転か、またはリーンからリッチへの反転かを、遅延後空燃比フラグＦ１の値が「０」であるか否かにより判定する（ステップＳ４２４）。
【００６７】
ステップＳ４２４において、Ｆ１＝０（すなわち、ＹＥＳ）と判定されれば、リッチからリーンへの反転であるので、燃料補正係数ＦＡＦを「ＦＡＦ＋ＲＳＲ」として、定数ＲＳＲだけスキップ的に増大させ（ステップＳ４２５）、後述するステップＳ４３６に進む。
【００６８】
また、ステップＳ４２４において、Ｆ１＝１（すなわち、ＮＯ）と判定されれば、リーンからリッチへの反転であるので、燃料補正係数ＦＡＦを「ＦＡＦ−ＲＳＬ」として、定数ＲＳＬだけスキップ的に減少させ（ステップＳ４２６）、ステップＳ４３６に進む。
【００６９】
一方、ステップＳ４２２において、遅延後空燃比フラグＦ１の符号、すなわち空燃比が反転していない（すなわち、ＮＯ）と判定されれば、続いて、遅延後空燃比フラグＦ１がリーン状態の「０」であるか否かを判定し（ステップＳ４２７）、Ｆ１＝０（すなわち、ＹＥＳ）と判定されれば、リーン状態であるので、ステップＳ４２８に進む。
【００７０】
ステップＳ４２８においては、上流側Ｏ２センサ１１０の出力値Ｖ１が設定電圧ＶＲ以下であるか否かを判定し、Ｖ１≦ＶＲ（すなわち、ＹＥＳ）と判定されれば、燃料補正係数ＦＡＦを「ＦＡＦ＋ＫＩＲ」として、定数ＫＩＲ（＜ＲＳＲ）だけ増大させるとともに（ステップＳ４２９）、カウンタＴＡＦに「１」だけ加算して（ステップＳ４３０）、ステップＳ４３６に進む。
【００７１】
一方、ステップＳ４２８において、Ｖ１＞ＶＲ（すなわち、ＮＯ）と判定されれば、ステップＳ４５１に進み、空燃比の振動が１回目であるか否かを判定し、１回目（すなわち、Ｙｅｓ）と判定されれば、定数ＫＩＲ２（＜ＫＩＲ）を用いて燃料補正係数ＦＡＦを「ＦＡＦ＋ＫＩＲ２」として増大させるとともに（ステップＳ４３１）、ステップＳ４３６に進む。
【００７２】
一方、ステップＳ４５１において、空燃比の振動が２回目以降（すなわち、Ｎｏ）と判定されれば、燃料補正係数ＦＡＦにフィードバック制御値学習部２０５で学習したリッチ学習値を設定し（ステップＳ４５２）、ステップＳ４３６に進む。
【００７３】
つまり、ステップＳ４３１において、燃料補正係数ＦＡＦの増大量に、定数ＫＩＲより小さい定数ＫＩＲ２を使用することにより、燃料補正係数ＦＡＦがリッチ方向にある程度進んだ後のＡ／Ｆ制御幅を抑えることができ、それに伴うドライバビリティおよび排ガスの悪化を抑えることができる。なお、ステップＳ４３１で使用する増大量「ＫＩＲ２」を「０」とし、燃料補正係数ＦＡＦがリッチ方向にある程度進んだ後の燃料補正係数ＦＡＦを増大させない設定にさせても構わない。
【００７４】
また、ステップＳ４２８において、燃料補正係数ＦＡＦの増大量の切り替えを行う設定電圧ＶＲを、上流側Ｏ２センサ１１０の理論空燃比に相当する電圧に設定することで、触媒上流雰囲気がリーン状態の場合は、大きい増大量「ＫＩＲ」とし、触媒上流雰囲気がリッチ状態の場合は、小さい増大量「ＫＩＲ２」とすることができる。後述するステップＳ４３２におけるリーン状態での操作と組み合わせることで、空燃比の振動を確実にリッチ状態とリーン状態の間で実施することが可能となり、加減速等でＡ／Ｆ制御幅が大きくなる傾向となった場合や、劣化触媒時の酸素吸蔵量低下時に排ガス悪化を抑える効果が得られる。
【００７５】
一方、ステップＳ４２７において、Ｆ１＝１（すなわち、ＮＯ）と判定されれば、リッチ状態であるので、ステップＳ４３２に進む。
【００７６】
ステップＳ４３２においては、上流側Ｏ２センサ１１０の出力値Ｖ１が設定電圧ＶＬ以上であるか否かを判定し、Ｖ１≧ＶＬ（すなわち、ＹＥＳ）と判定されれば、燃料補正係数ＦＡＦを「ＦＡＦ−ＫＩＬ」として、定数ＫＩＬ（＜ＲＳＬ）だけ減少させるとともに（ステップＳ４３３）、カウンタＴＡＦに「１」だけ加算して（ステップＳ４３４）、ステップＳ４３６に進む。
【００７７】
一方、ステップＳ４３２において、Ｖ１＜ＶＬ（すなわち、ＮＯ）と判定されれば、ステップＳ４５３に進み、空燃比の振動が１回目であるか否かを判定し、１回目（すなわち、Ｙｅｓ）と判定されれば、定数ＫＩＬ２（＜ＫＩＬ）を用いて燃料補正係数ＦＡＦを「ＦＡＦ−ＫＩＬ２」として減少させるとともに（ステップＳ４３５）、ステップＳ４３６に進む。
【００７８】
一方、ステップＳ４５３において、空燃比の振動が２回目以降（すなわち、Ｎｏ）と判定されれば、燃料補正係数ＦＡＦにフィードバック制御値学習部２０５で学習したリーン学習値を設定し（ステップＳ４５４）、ステップＳ４３６に進む。
【００７９】
つまり、ステップＳ４３５において、燃料補正係数ＦＡＦの減少量に、定数ＫＩＬより小さい定数ＫＩＬ２を使用することにより、燃料補正係数ＦＡＦがリーン方向にある程度進んだ後のＡ／Ｆ制御幅を抑えることができ、それに伴うドライバビリティおよび排ガスの悪化を抑えることができる。なお、ステップＳ４３５で使用する減少量「ＫＩＬ２」を「０」とし、燃料補正係数ＦＡＦがリーン方向にある程度進んだ後の燃料補正係数ＦＡＦを減少させない設定にさせても構わない。
【００８０】
また、ステップＳ４３２において、燃料補正係数ＦＡＦの減少量の切り替えを行う設定電圧ＶＬを、上流側Ｏ２センサ１１０の理論空燃比に相当する電圧に設定することで、触媒上流雰囲気がリッチ状態の場合は、大きい減少量「ＫＩＬ」とし、触媒上流雰囲気がリーン状態の場合は、小さい減少量「ＫＩＬ２」とすることができる。ステップＳ４２８におけるリッチ状態での操作と組み合わせることで、空燃比の振動を確実にリッチ状態とリーン状態の間で実施することが可能となり、加減速等でＡ／Ｆ制御幅が大きくなる傾向となった場合や、劣化触媒時酸素吸蔵量の低下時に排ガス悪化を抑える効果が得られる。
【００８１】
なお、積分定数ＫＩＲ、ＫＩＲ２、ＫＩＬ、ＫＩＬ２は、スキップ定数ＲＳＲ、ＲＳＬと比べて、十分小さい値に設定されている。したがって、ステップＳ４２９、４３１においては、リーン状態、すなわちＦ１＝０での燃料噴射量を徐々に増大させ、ステップＳ４３３、４３５においては、リッチ状態、すなわちＦ１＝１での燃料噴射量を徐々に減少させることになる。
【００８２】
ステップＳ４３６においては、カウンタＴＡＦがカウンタ上限ＴＡＦＨよりも小さいか否かを判定し、ＴＡＦ＜ＴＡＦＨ（すなわち、ＹＥＳ）と判定されれば、ステップＳ４４９に進む。
【００８３】
一方、ステップＳ４３６において、ＴＡＦ≧ＴＡＦＨ（すなわち、ＮＯ）と判定されれば、ステップＳ４４１に進むことで、空燃比の振動処理の実行を中止する。
【００８４】
つまり、Ｏ２センサの劣化による応答遅れ等の原因で上流側Ｏ２センサ１１０の挙動が遅延し、ステップＳ４２８においてＶ１＞ＶＲとなる期間、またはステップＳ４３２においてＶ１＜ＶＬとなる期間が長くなった場合は、燃料補正係数ＦＡＦのＡ／Ｆ制御幅が大きくなりすぎたと判断し、空燃比の振動処理の実行を中止する。その効果として、劣化触媒の診断時における正常触媒を劣化触媒と誤検出する可能性を低減させることができる。
【００８５】
以上で図３の演算処理は終了し、ステップＳ４０１〜４５４により演算された燃料補正係数ＦＡＦは、ＥＣＵ１１２内のＲＡＭ１１５に格納される。
【００８６】
次に、図４のタイミングチャートを参照しながら、図３に示した演算処理動作について補足説明する。図４（ａ）のタイミングチャートは、従来の内燃機関の空燃比制御装置における燃料補正係数ＦＡＦの増加量をＫＩＲ２に、減少量をＫＩＬ２に切り替えるタイミングを、上流側Ｏ２センサ１１０の出力値Ｖ１が設定電圧ＶＲ１となるタイミングとし、さらにＫＩＲ２、ＫＩＬ２の値を共に「０」とした場合であり、図４（ｂ）のタイミングチャートは、この発明の実施の形態１に係る内燃機関の空燃比制御装置における空燃比フィードバック制御値を学習し、燃料補正係数ＦＡＦに学習値を設定した場合である。
【００８７】
図４（ａ）、（ｂ）において、上流側Ｏ２センサ１１０の出力値Ｖ１に基づいて遅延処理前の空燃比信号、すなわちリッチ、リーン判定の比較結果が得られると、遅延処理前の空燃比信号に応答する遅延前空燃比フラグＦ０は、リッチ状態またはリーン状態に変化する。
【００８８】
ディレイカウンタＣＤＬＹは、最大値ＴＤＲと最小値ＴＤＬとの間の範囲内で、遅延処理前の空燃比信号に対応する遅延前空燃比フラグＦ０のリッチ状態に応答してカウントアップされ、逆に、リーン状態に応答してカウントダウンされる。これにより、遅延後空燃比フラグＦ１は、遅延処理された空燃比信号を示すようになる。
【００８９】
例えば、時刻ｔ１において、遅延処理前の空燃比信号、すなわち出力値Ｖ１の比較結果がリーンからリッチに反転しても、遅延処理された空燃比信号、すなわち遅延後空燃比フラグＦ１は、リッチ遅延期間τＤＲだけリーンに保持された後の時刻ｔ２において、リッチに変化する。
【００９０】
このとき、時刻ｔ１、またはｔ５までの時間、そのタイミングのディレイカウンタＣＤＬＹの値は、燃焼に依存して毎回異なるため、時刻ｔ１以降に固定される燃料補正係数ＦＡＦの値も振動毎に異なる。
【００９１】
同様に、時刻ｔ３において、遅延処理前の空燃比信号、すなわち上流側Ａ／Ｆがリッチからリーンに変化しても、遅延処理後の空燃比信号、すなわち遅延後空燃比フラグＦ１は、リーン遅延期間τＤＬだけリッチに保持された後の時刻ｔ４において、リーンに変化する。
【００９２】
このとき、時刻ｔ３、またはｔ７までの時間、そのタイミングのディレイカウンタＣＤＬＹの値は、燃焼に依存して毎回異なるため、時刻ｔ３以降に固定される燃料補正係数ＦＡＦの値も振動毎に異なる。
【００９３】
また、図４の燃料補正係数ＦＡＦの波形において、上流側Ｏ２センサ１１０の出力値Ｖ１がＶＲ１となったタイミングまでの増大方向の傾きは、積分定数ＫＩＲに相当し、上流側Ｏ２センサ１１０の出力値Ｖ１がＶＲ１となったタイミング以降の増大方向の傾きは、積分定数ＫＩＲ２、すなわち図４（ａ）（ｂ）では「０」に相当する。
【００９４】
また、上流側Ｏ２センサ１１０の出力値Ｖ１がＶＲ１となったタイミングまでの減少方向の傾きは、積分定数ＫＩＬに相当し、上流側Ｏ２センサ１１０の出力値Ｖ１がＶＲ１となったタイミング以降の減少方向の傾きは、積分定数ＫＩＬ２、すなわち図４（ａ）（ｂ）では「０」に相当する。
【００９５】
ここで、図４（ａ）、（ｂ）において、燃料補正係数ＦＡＦと振動周期との積、すなわち燃料補正係数ＦＡＦと図４（ａ）、（ｂ）における燃料補正係数ＦＡＦの中心線とで形成される面積として、触媒診断時に使用するＯ２操作量が定義される。このとき、燃焼のばらつきによってフィードバック制御量に差が生じると、Ｏ２操作量もばらつくため、下流側Ｏ２センサ１１１の出力がばらつき、三元触媒１０９の劣化を精度よく診断することができないという問題があった。
【００９６】
そこで、図４（ｂ）の燃料補正係数ＦＡＦの波形において、空燃比の振動がリーン方向からリッチ方向に移行した後、最初に上流側Ｏ２センサ１１０からの出力値Ｖ１が設定電圧ＶＲ１以上となるタイミングｔ１における空燃比フィードバック制御値ＦＡＦをリッチ学習値として学習し、空燃比の振動がリーン方向からリッチ方向へと移行する２回目以降の移行時に、上流側Ｏ２センサ１１０からの出力値Ｖ１が設定電圧ＶＲ１以上となるタイミングｔ５における空燃比フィードバック制御値をリッチ学習値に設定する。
【００９７】
また、図４（ｂ）の燃料補正係数ＦＡＦの波形において、空燃比の振動がリッチ方向からリーン方向に移行した後、最初に上流側Ｏ２センサ１１０からの出力値Ｖ１が設定電圧ＶＲ１以下となるタイミングｔ３における空燃比フィードバック制御値ＦＡＦをリーン学習値として学習し、空燃比の振動がリッチ方向からリーン方向へと移行する２回目以降の移行時に、上流側Ｏ２センサ１１０からの出力値Ｖ１が設定電圧ＶＲ１以上となるタイミングｔ７における空燃比フィードバック制御値をリーン学習値に設定する。
【００９８】
また、燃料補正係数ＦＡＦに積分定数ＫＩＲおよびＫＩＬが使用される期間は、カウンタＴＡＦの積算が実施され、カウンタＴＡＦがＴＡＦＨ以上となった場合は、空燃比の振動処理の実行を中止する。
【００９９】
このように、最初の空燃比フィードバック制御値を学習値として、２回目以降の空燃比フィードバック制御値に設定することで、燃焼のばらつきによるフィードバック制御量の差をなくして、Ｏ２操作量のばらつきを小さくできるので、下流側Ｏ２センサ１１１の出力を確実に振ることができ、劣化指標値のばらつきを抑えることができる。
【０１００】
すなわち、Ｏ２操作量を精度よく操作することによって、上流側Ｏ２センサ１１０および下流側Ｏ２センサ１１１の出力を確実に振ることにより、触媒劣化診断時の劣化指標値のばらつきを抑えて、劣化触媒の診断性を向上させることができる。
【０１０１】
次に、図５のフローチャートを参照しながら、図２内のフィードバック制御値学習部２０５による演算処理動作について説明する。
【０１０２】
まず、触媒診断中であるか否かを判定し（ステップＳ５０１）、触媒診断中でない（すなわち、Ｎｏ）と判定されれば、図５のフローチャートを終了する。一方、触媒診断中である（すなわち、Ｙｅｓ）と判定されれば、ステップＳ５０２に進む。
【０１０３】
ステップＳ５０２においては、空燃比の振動の方向がリーン方向かリッチ方向であるか否かを判定する。ステップＳ５０２において、空燃比の振動がリーン方向からリッチ方向である（すなわち、Ｙｅｓ）と判定された場合には、ステップＳ５０３に進み、空燃比の振動がリッチ方向からリーン方向である（すなわち、Ｎｏ）と判定された場合には、ステップＳ５０７に進む。
【０１０４】
ステップＳ５０３においては、リッチ方向への振動回数が１回目であるか否かを判定する。ステップＳ５０３において、１回目である（すなわち、Ｙｅｓ）と判定された場合には、ステップＳ５０４に進み、下流側Ｏ２センサ１１１からの出力値Ｖ１の前回値Ｖ１（ｎ−１）がＶＲ１未満であるか否かを判定する。
【０１０５】
ステップＳ５０４において、Ｖ１（ｎ−１）がＶＲ１未満である（すなわち、Ｙｅｓ）と判定された場合には、下流側Ｏ２センサ１１１からの出力値Ｖ１の今回値Ｖ１（ｎ）がＶＲ１以上であるか否かを判定し（ステップＳ５０５）、Ｖ１（ｎ）がＶＲ１以上である（すなわち、Ｙｅｓ）と判定された場合には、リッチ学習値に燃料補正係数ＦＡＦを記憶して（ステップＳ５０６）、図５のフローチャートを終了する。
【０１０６】
一方、ステップＳ５０３において、１回目でない（すなわち、Ｎｏ）と判定された場合、ステップＳ５０４において、Ｖ１（ｎ−１）がＶＲ１以上である（すなわち、Ｎｏ）と判定された場合、およびステップＳ５０５において、Ｖ１（ｎ）がＶＲ１未満である（すなわち、Ｎｏ）と判定された場合には、そのまま図５のフローチャートを終了する。
【０１０７】
ステップＳ５０７においては、リーン方向への振動回数が１回目であるか否かを判定する。ステップＳ５０７において、１回目である（すなわち、Ｙｅｓ）と判定された場合には、ステップＳ５０８に進み、下流側Ｏ２センサ１１１からの出力値Ｖ１の前回値Ｖ１（ｎ−１）がＶＲ１よりも大きいか否かを判定する。
【０１０８】
ステップＳ５０８において、Ｖ１（ｎ−１）がＶＲ１よりも大きい（すなわち、Ｙｅｓ）と判定された場合には、下流側Ｏ２センサ１１１からの出力値Ｖ１の今回値Ｖ１（ｎ）がＶＲ１以下であるか否かを判定し（ステップＳ５０９）、Ｖ１（ｎ）がＶＲ１以下である（すなわち、Ｙｅｓ）と判定された場合には、リーン学習値に燃料補正係数ＦＡＦを記憶して（ステップＳ５１０）、図５のフローチャートを終了する。
【０１０９】
一方、ステップＳ５０７において、１回目でない（すなわち、Ｎｏ）と判定された場合、ステップＳ５０８において、Ｖ１（ｎ−１）がＶＲ１以下である（すなわち、Ｎｏ）と判定された場合、およびステップＳ５０９において、Ｖ１（ｎ）がＶＲ１よりも大きい（すなわち、Ｎｏ）と判定された場合には、そのまま図５のフローチャートを終了する。
【０１１０】
なお、三元触媒１０９の劣化診断周期は、内燃機関１０１の運転状態、例えばエンジン回転速度Ｎｅ、負荷、吸入空気量Ｑａ、触媒温度等に基づき、定常状態での診断周期を試験的に計測して設定する。
【０１１１】
このように、上流側Ａ／Ｆの空燃比振動に使用する燃料補正係数ＦＡＦについて、上流側Ｏ２センサ１１０の出力値Ｖ１に応じて増加量または減少量を小さくすることで、理論空燃比から大きく外れることはなくなる。そのため、下流側Ｏ２センサ１１１の出力値Ｖ２の挙動に見られるように、実空燃比の振動幅が小さくなることから、排ガス変動が抑えられ、排ガスの悪化を抑制できる。また、エンジン回転の挙動に見られるように、実空燃比の振動幅が小さくなることから、回転変動が抑えられ、ドライバビリティの悪化を抑制できる。また同時に、劣化指標値のばらつきを抑えることができる。
【０１１２】
以上のように、実施の形態１によれば、上流側空燃比センサの出力値が設定電圧以上となるタイミングでフィードバック制御定数の増大量を小さくするとともに、上流側空燃比センサの出力値が設定電圧以下となるタイミングでフィードバック制御定数の減少量を小さくし、また、空燃比の振動がリーン方向からリッチ方向またはリッチ方向からリーン方向に移行した後、最初に上流側空燃比センサの出力値が設定電圧以上となるタイミングにおける空燃比フィードバック制御値を、リッチ学習値またはリーン学習値として学習するとともに、空燃比の振動がリーン方向からリッチ方向またはリッチ方向からリーン方向へと移行する２回目以降の移行時に、リッチ学習値またはリーン学習値を空燃比フィードバック制御値に設定する。
そのため、上流側Ａ／Ｆが理論空燃比から外れない領域での空燃比制御を行うことで、ドライバビリティおよび排ガスの悪化を抑えるとともに、三元触媒の劣化を高精度に診断することができる。
【０１１３】
なお、上記実施の形態１では、下流側Ｏ２センサ１１１としてλ型センサを用いたが、下流側Ｏ２センサ１１１は、上流側に位置する三元触媒１０９の浄化状態を検出可能なセンサであれば他のセンサでもよく、例えばリニアＯ２センサ、ＮＯｘセンサ、ＨＣセンサ、ＣＯセンサ等を用いても、三元触媒１０９の浄化状態を制御することができるので、同様の作用効果を得ることができる。
【符号の説明】
【０１１４】
１０１  内燃機関、１０２  エアクリーナ、１０３  スロットルバルブ、１０４  サージタンク、１０５  吸気管、１０６  エアフローセンサ、１０７  インジェクタ、１０８  排気管（排気系）、１０９  三元触媒、１１０  上流側Ｏ２センサ（上流側空燃比センサ）、１１１  下流側Ｏ２センサ、１１２  ＥＣＵ、１１３  ＣＰＵ、１１４  ＲＯＭ、１１５  ＲＡＭ、１１６  Ｉ／Ｏ、１１７  スロットルセンサ、１１８  アイドルスイッチ、１１９  水温センサ、１２０  クランク角センサ、１２１  カム角センサ、１２２  駆動回路、１２３  警告ランプ、１２４  Ｂ−ＲＡＭ、２０１  空燃比フィードバック制御部、２０２  触媒劣化診断部、２０３  制御ゲイン変更部、２０４  制御期間計測部、２０５  フィードバック制御値学習部、２０６  劣化指標値演算部、Ｖ１  上流側Ｏ２センサの出力値、Ｖ２  下流側Ｏ２センサの出力値、ＷＴ  冷却水温、ＣＡ  クランク角、ＤＬ  アイドル信号、θ  スロットル開度、Ｑａ  吸入空気量。
【要約】
【課題】ドライバビリティおよび排ガスの悪化を抑えるとともに、三元触媒の劣化を高精度に診断することができる内燃機関の空燃比制御装置を得る。
【解決手段】上流側空燃比センサの出力値が設定電圧以上となるタイミングでフィードバック制御定数の増大量を小さくするとともに、上流側空燃比センサの出力値が設定電圧以下となるタイミングでフィードバック制御定数の減少量を小さくし、また、空燃比の振動がリーン方向からリッチ方向またはリッチ方向からリーン方向に移行した後、最初に上流側空燃比センサの出力値が設定電圧以上となるタイミングにおける空燃比フィードバック制御値を、リッチ学習値またはリーン学習値として学習するとともに、空燃比の振動がリーン方向からリッチ方向またはリッチ方向からリーン方向へと移行する２回目以降の移行時に、リッチ学習値またはリーン学習値を空燃比フィードバック制御値に設定する。
【選択図】図２【図１】
0005951068.tif 000002
【図２】
0005951068.tif 000003
【図３】
0005951068.tif 000004
【図４】
0005951068.tif 000005
【図５】
0005951068.tif 000006