(57)【特許請求の範囲】
【請求項１】
機関排気通路内に設けられた排気浄化触媒の排気上流側に配置され且つ排気ガスの空燃比を検出する上流側空燃比センサと、上記排気浄化触媒の排気下流側に配置され且つ排気ガスの空燃比を検出する下流側空燃比センサとを具備し、上記上流側空燃比センサの出力値に基づいて排気空燃比が目標空燃比となるように燃料供給量を制御する内燃機関の空燃比制御装置であって、
上記上流側空燃比センサの出力値が実際の排気空燃比からずれている場合に、上記下流側空燃比センサの出力値に基づいてフィードバックパラメータを用いて上記上流側空燃比センサの出力値と実際の排気空燃比とのずれを補償すべく燃料供給量をフィードバックにより補正するフィードバック手段と、
上記上流側空燃比センサの出力値と実際の排気空燃比との間の定常的なずれに対応する学習値を上記フィードバック手段による補正量に基づいて算出すると共に算出された学習値に基づいて上記燃料供給量を補正する学習手段とを具備し、内燃機関の通常運転時には上記排気浄化触媒の劣化度合いとは無関係にフィードバックパラメータの値が定められる内燃機関の空燃比制御装置において、
上記学習値がリセットされた後に上記学習値の収束を判定する収束判定手段を更に具備し、
上記収束判定手段によって学習値が収束したと判定される前においては、上記排気浄化触媒の劣化度合いに応じてフィードバックパラメータの値を変更するようにした、内燃機関の空燃比制御装置。
【請求項２】
上記フィードバックパラメータにはフィードバックゲインが含まれ、上記排気浄化触媒の劣化度合いが小さいときほどフィードバックゲインを大きくするようにした、請求項１に記載の内燃機関の空燃比制御装置。
【請求項３】
上記フィードバック手段は燃料供給量のフィードバックによる補正量の絶対値を所定のガード値以下に制限しており、上記フィードバックパラメータには上記ガード値が含まれ、上記排気浄化触媒の劣化度合いが小さいときほど上記ガード値の絶対値を大きくするようにした、請求項１又は２に記載の内燃機関の空燃比制御装置。
【請求項４】
上記収束判定手段は、下流側空燃比センサの出力値が目標空燃比よりもリッチな空燃比と該目標空燃比よりもリーンな空燃比との間で反転した回数が所定回数以上になったときに学習値が収束した判定する、請求項１〜３のいずれか１項に記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
内燃機関本体から排出された排気ガス中には炭化水素（ＨＣ）、一酸化炭素（ＣＯ）及び窒素酸化物（ＮＯX）等の成分が含まれており、従来からこれら成分を浄化するために三元触媒が利用されている。斯かる三元触媒は排気ガスの空燃比（以下、「排気空燃比」と称す）がほぼ理論空燃比となっているときにその浄化能力が高くなることから、三元触媒によって排気ガスの浄化を行う際には排気空燃比がほぼ理論空燃比となるように燃焼室への燃料供給量等を制御する必要がある。
【０００３】
このため、多くの内燃機関では、三元触媒の排気上流側において機関排気通路内に排気空燃比を検出することができる空燃比センサを設け、この空燃比センサによって検出される排気空燃比がほぼ理論空燃比になるように燃焼室への燃料供給量を調整するフィードバック（Ｆ／Ｂ）制御が行われている。
【０００４】
しかし、三元触媒の上流側においては排気ガスが十分混合していないことにより空燃比センサの出力がばらついたり、排気ガスの熱により空燃比センサが劣化したりすることにより、空燃比センサが実際の空燃比を正確に検出することができない場合があり、このような場合には上述したＦ／Ｂ制御による空燃比の制御精度が低下してしまう。
【０００５】
そこで、三元触媒の排気下流側にも機関排気通路内に排気空燃比を検出することができる空燃比センサを設け、下流側空燃比センサの出力に基づいて上流側空燃比センサの出力値が実際の排気空燃比と一致するように上流側空燃比センサの出力値を（結果的には燃料供給量を）補正するサブＦ／Ｂ制御を行うことにより空燃比の制御精度を改善するダブルセンサシステムが既に実用化されている。
【０００６】
そして、このダブルセンサシステムにおいては、上流側空燃比センサの出力値と実際の排気空燃比との間の定常的なずれに対応する学習値をサブＦ／Ｂ制御における補正量に基づいて算出すると共に、算出された学習値に基づいて上流側空燃比センサの出力値を補正する学習制御が行われる。このような学習値は例えば機関停止時にもＥＣＵのＲＡＭに保存されるため、内燃機関の再始動後であってサブＦ／Ｂ制御によって上流側空燃比センサの出力値が十分に補正されていなくても上流側空燃比センサの出力値が実際の排気空燃比付近の値となるため、空燃比の制御精度の悪化を防止することができ、よって排気エミッションの悪化を防止することができる。
【０００７】
ところで、例えば内燃機関を搭載した車両からバッテリを一旦外したような場合には、バッテリからの給電が中断されるためＥＣＵのＲＡＭに記憶されていた学習値も消去されてしまう。従って、斯かる場合に内燃機関を再始動したときに上流側空燃比センサの出力値と実際の排気空燃比との間に定常的なずれが生じていてもこのようなずれは学習制御によって補償されておらず、よって上流側空燃比センサの出力値の定常的なずれはサブＦ／Ｂ制御のみによって補償されなければならない。
【０００８】
ところが、上流側空燃比センサの出力値の定常的なずれをサブＦ／Ｂ制御のみによって補償しようとすると、上流側空燃比センサの出力値が実際の排気空燃比付近の値となるまでに時間がかかるため、その間に空燃比の制御精度の低い状態が続き、よって排気エミッションが悪い状態が続いてしまう。このため、バッテリからの給電中断後に内燃機関を再始動するような場合には、例えばサブＦ／Ｂ制御のフィードバックゲイン（以下、「サブＦ／Ｂゲイン」と称す）を大きくして早期に上流側空燃比センサの出力値の定常的なずれを補償する必要がある。このため、例えば特許文献１に記載の空燃比制御装置では、学習制御における学習値が収束するまでサブＦ／Ｂゲインを通常時のサブＦ／Ｂゲインよりも大きな値としている。
【０００９】
【特許文献１】特開２００４−３１６５２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、一般に、上記学習制御における学習値の収束判定は排気空燃比がリーン・リッチ間で反転する回数によって行われる。これは、排気空燃比が理論空燃比になるように制御している場合には、排気空燃比がリーンとリッチとの間で反転する回数が多いほど排気空燃比が理論空燃比付近に維持されていることを意味するためである。
【００１１】
一方、上述した三元触媒は酸素吸蔵能力を有しており、これにより三元触媒に流入する排気ガスの空燃比がリーンであるときには排気ガス中の酸素を吸蔵すると共に、三元触媒に流入する排気ガスの空燃比がリッチであるときには吸蔵している酸素を放出すると共にこの酸素により排気ガス中のＨＣ、ＣＯが酸化されて浄化される。斯かる酸素吸蔵能力は三元触媒の使用開始から常に一定ではなく内燃機関の運転期間等に応じて徐々に劣化する。
【００１２】
このような三元触媒では、三元触媒の酸素吸蔵能力が高いとき、すなわち三元触媒の劣化度合いが小さいときには、排気空燃比がリッチからリーンに反転しても三元触媒に排気ガス中の酸素が多量に吸蔵されることにより三元触媒から排出される排気ガスの空燃比は直ぐには反転せず、逆に排気空燃比がリーンからリッチに反転しても三元触媒に多量に吸蔵されている酸素が放出されることにより三元触媒から排出される排気ガスの空燃比は直ぐには反転しない。このため、三元触媒の劣化度合いが小さいと三元触媒から排出される排気ガスの空燃比がリーン・リッチ間で反転する周期が長くなり、よってサブＦ／Ｂゲインを比較的大きく設定しないと学習値の収束判定が遅れてしまう。
【００１３】
一方、三元触媒の酸素吸蔵能力が低いとき、すなわち三元触媒の劣化度合いが大きいときには、排気ガス中の酸素は三元触媒にあまり吸蔵されないため、排気空燃比がリッチからリーン又はその逆に反転すると三元触媒から排出される排気ガスの空燃比も比較的早く反転する。このように三元触媒の劣化度合いが大きいと三元触媒から排出される排気ガスの空燃比がリーン・リッチ間で反転する周期が短くなるため、サブＦ／Ｂゲインを比較的小さく設定しないと、サブＦ／Ｂ制御が発散してしまう。
【００１４】
そこで、本発明の目的は、三元触媒の劣化度合いを考慮しつつサブＦ／Ｂ制御が発散してしまうことのない範囲内でできるだけ早く学習値の収束判定を行うことができる内燃機関の空燃比制御装置を提供することにある。
【課題を解決するための手段】
【００１５】
上記課題を解決するために、第１の発明では、機関排気通路内に設けられた排気浄化触媒の排気上流側に配置され且つ排気ガスの空燃比を検出する上流側空燃比センサと、上記排気浄化触媒の排気下流側に配置され且つ排気ガスの空燃比を検出する下流側空燃比センサとを具備し、上記上流側空燃比センサの出力値に基づいて排気空燃比が目標空燃比となるように燃料供給量を制御する内燃機関の空燃比制御装置であって、上記上流側空燃比センサの出力値が実際の排気空燃比からずれている場合に、上記下流側空燃比センサの出力値に基づいてフィードバックパラメータを用いて上記上流側空燃比センサの出力値と実際の排気空燃比とのずれを補償すべく燃料供給量をフィードバックにより補正するフィードバック手段と、上記上流側空燃比センサの出力値と実際の排気空燃比との間の定常的なずれに対応する学習値を上記フィードバック手段による補正量に基づいて算出すると共に算出された学習値に基づいて上記燃料供給量を補正する学習手段とを具備し、内燃機関の通常運転時には上記排気浄化触媒の劣化度合いとは無関係にフィードバックパラメータの値が定められる内燃機関の空燃比制御装置において、上記学習値がリセットされた後に上記学習値の収束を判定する収束判定手段を更に具備し、上記収束判定手段によって学習値が収束したと判定される前においては、上記排気浄化触媒の劣化度合いに応じてフィードバックパラメータの値を変更するようにした。
【００１６】
第２の発明では、第１の発明において、上記フィードバックパラメータにはフィードバックゲインが含まれ、上記排気浄化触媒の劣化度合いが小さいときほどフィードバックゲインを大きくするようにした。
【００１７】
第３の発明では、第１又は第２の発明において、上記フィードバック手段は燃料供給量のフィードバックによる補正量の絶対値を所定のガード値以下に制限しており、上記フィードバックパラメータには上記ガード値が含まれ、上記排気浄化触媒の劣化度合いが小さいときほど上記ガード値の絶対値を大きくするようにした。
【００１８】
第４の発明では、第１〜第３のいずれか一つの発明において、上記収束判定手段は、下流側空燃比センサの出力値が目標空燃比よりもリッチな空燃比と該目標空燃比よりもリーンな空燃比との間で反転した回数が所定回数以上になったときに学習値が収束した判定する。
【発明の効果】
【００１９】
本発明によれば、三元触媒の劣化度合いを考慮しつつサブＦ／Ｂ制御が発散してしまうことのない範囲内でできるだけ早く学習値の収束判定を行うことができるようになる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明の内燃機関の空燃比制御装置について説明する。図１は本発明の制御装置が搭載される内燃機関全体の図である。図１に示した実施形態では本発明の空燃比制御装置が筒内直噴型火花点火式内燃機関に用いられた場合を示しているが、他の火花点火式内燃機関や圧縮自着火式内燃機関等にも用いることができる。
【００２１】
図１を参照すると１は機関本体、２はシリンダブロック、３はシリンダブロック２内で往復動するピストン、４はシリンダブロック２上に固定されたシリンダヘッド、５はピストン３とシリンダヘッド４との間に形成された燃焼室、６は吸気弁、７は吸気ポート、８は排気弁、９は排気ポートをそれぞれ示す。図１に示したようにシリンダヘッド４の内壁面の中央部には点火プラグ１０が配置され、シリンダヘッド４内壁面周辺部には燃料噴射弁１１が配置される。またピストン３の頂面上には燃料噴射弁１１の下方から点火プラグ１０の下方まで延びるキャビティ１２が形成されている。
【００２２】
各気筒の吸気ポート７はそれぞれ対応する吸気枝管１３を介してサージタンク１４に連結され、サージタンク１４は吸気管１５を介してエアクリーナ（図示せず）に連結される。吸気管１５内にはエアフロメータ１６が配置されると共にステップモータ１７によって駆動されるスロットル弁１８が配置される。一方、各気筒の排気ポート９は排気マニホルド１９に連結され、この排気マニホルド１９は三元触媒２０を内蔵した触媒コンバータ２１に連結される。触媒コンバータ２１の出口は排気管２２に連結される。排気マニホルド１９、すなわち排気浄化触媒２０上流側の排気通路内には空燃比センサ２３が配置されると共に、排気管２２、すなわち三元触媒２０下流側の排気通路内には酸素センサ２４が配置される。
【００２３】
電子制御ユニット３１はディジタルコンピュータからなり、双方向性バス３２を介して相互に接続されたＲＡＭ（ランダムアクセスメモリ）３３、ＲＯＭ（リードオンリメモリ）３４、ＣＰＵ（マイクロプロセッサ）３５、入力ポート３６および出力ポート３７を具備する。エアフロメータ１６は吸入空気流量に比例した出力電圧を発生し、その出力電圧は対応するＡＤ変換器３８を介して入力ポート３６に入力される。また、空燃比センサ２３は、図２に示したように、排気マニホルド１９内を通過する排気ガス中の酸素濃度に基づいて、斯かる排気ガスの空燃比にほぼ比例した出力電圧を発生する。一方、酸素センサ２４は、図３に示したように、排気管２２内を通過する排気ガス、すなわち三元触媒２０を通過した後の排気ガス中の酸素濃度に基づいて、斯かる排気ガスの空燃比が理論空燃比（約１４．７）よりもリッチであるかリーンであるかによって大きく異なる出力電圧を発生する。これら出力電圧は対応するＡＤ変換器３８を介して入力ポート３６に入力される。
【００２４】
また、アクセルペダル４０にはアクセルペダル４０の踏込み量に比例した出力電圧を発生する負荷センサ４１が接続され、負荷センサ４１の出力電圧は対応するＡＤ変換器３８を介して入力ポート３６に入力される。クランク角センサ４２は例えばクランクシャフトが３０度回転する毎に出力パルスを発生し、この出力パルスが入力ポート３６に入力される。ＣＰＵ３５ではこのクランク角センサ４２の出力パルスから機関回転数が計算される。一方、出力ポート３７は対応する駆動回路３９を介して点火プラグ１０、燃料噴射弁１１およびステップモータ１７に接続される。
【００２５】
上述した三元触媒２０は、酸素吸蔵能力を有しており、これにより三元触媒２０に流入する排気ガスの空燃比がリーンであるときには排気ガス中の酸素を吸蔵すると共に、三元触媒２０に流入する排気ガスの空燃比がリッチであるときには吸蔵している酸素を放出することにより排気ガス中に含まれるＨＣ、ＣＯを酸化・浄化する。
【００２６】
このような三元触媒２０の酸素吸蔵能力を効果的に利用するためには、排気ガスの空燃比がその後リッチ及びリーンのいずれになっても排気ガスを浄化することができるように、三元触媒２０中に吸蔵されている酸素の量を所定量（例えば、最大酸素吸蔵量の半分）に維持することが必要である。三元触媒２０の酸素吸蔵量が上記所定量に維持されていれば、三元触媒２０は常に或る程度の酸素吸蔵作用及び酸素放出作用を発揮することが可能であり、結果として三元触媒２０により常に排気ガス中の成分の酸化・還元を行うことができるようになる。このため、本実施形態では、三元触媒２０による排気浄化性能を維持すべく、三元触媒の酸素吸蔵量を一定に維持するように空燃比制御を行うこととしている。
【００２７】
そこで、本実施形態では、三元触媒２０よりも排気上流側に配置された空燃比センサ（上流側空燃比センサ）２３によって排気空燃比（三元触媒２０上流側の排気通路、燃焼室５および吸気通路に供給された空気と燃料との比率）を検出すると共に、空燃比センサ２３の出力値が理論空燃比に対応した値となるように燃料噴射弁１１からの燃料供給量についてＦ／Ｂ制御を行うこととしている（以下、このＦ／Ｂ制御を「メインＦ／Ｂ制御」と称す）。これにより、排気空燃比は理論空燃比付近に維持され、その結果三元触媒の酸素吸蔵量が一定に維持され、よって排気エミッションを改善することができる。
【００２８】
以下、メインＦ／Ｂ制御について具体的に説明する。まず、本実施形態では、燃料噴射弁１１から各気筒へと供給すべき燃料量（以下、「目標燃料供給量」と称す）Ｑｆｔ（ｎ）は下記式（１）によって算出される。
Ｑｆｔ（ｎ）＝Ｍｃ（ｎ）／ＡＦＴ＋ＤＱｆ（ｎ−１）      …（１）
【００２９】
ここで、上記式（１）においてｎはＥＣＵ３１における計算回数を示す値であり、例えばＱｆｔ（ｎ）は第ｎ回目の計算によって（すなわち時刻ｎにおいて）算出された目標燃料供給量を表している。また、Ｍｃ（ｎ）は、吸気弁６の閉弁時までに各気筒の筒内に吸入されたと予想される空気量（以下、「筒内吸入空気量」と称す）を示している。筒内吸入空気量Ｍｃ（ｎ）は、例えば機関回転数Ｎｅと吸気管１５内を通過した空気の流量（以下、「吸気管通過空気流量」と称す）ｍｔとを引数としたマップ又は計算式を予め実験的に又は計算によって求め、このマップ又は計算式をＥＣＵ３１のＲＯＭ３４に保存し、機関運転中に機関回転数Ｎｅ及び吸気管通過空気流量ｍｔを検出してこれら検出値に基づいて上記マップ又は計算式により算出される。また、ＡＦＴは、排気空燃比の目標値であり、本実施形態では理論空燃比（１４．７）である。さらに、ＤＱｆは、後述するメインＦ／Ｂ制御に関して算出される燃料補正量である。燃料噴射弁１１では、このようにして算出された目標燃料供給量に対応する量の燃料が噴射される。
【００３０】
なお、上記説明では、筒内吸入空気量Ｍｃ（ｎ）は、機関回転数Ｎｅと吸気管通過空気流量ｍｔとを引数としたマップ等に基づいて算出されるとしているが、例えばスロットル弁１８の開度及び大気圧等に基づいた計算式等、他の方法によって求められてもよい。
【００３１】
図４は、燃料噴射弁１１からの目標燃料供給量Ｑｆｔ（ｎ）を算出する目標燃料供給量算出制御の制御ルーチンを示すフローチャートである。図示した制御ルーチンは所定時間間隔の割り込みによって行われる。
【００３２】
まず、ステップ１０１において、クランク角センサ４２及びエアフロメータ１６によって機関回転数Ｎｅ及び吸気管通過空気流量ｍｔが検出される。次いで、ステップ１０２では、ステップ１０１において検出された機関回転数Ｎｅ及び吸気管通過空気流量ｍｔに基づいてマップにより又は計算式により時刻ｎにおける筒内吸入空気量Ｍｃ（ｎ）が算出される。次いで、ステップ１０３では、ステップ１０２で算出された筒内吸入空気量Ｍｃ（ｎ）及び後述するメインＦ／Ｂ制御において算出された時刻ｎ−１における燃料補正量ＤＱｆ（ｎ−１）に基づいて上記式（１）により目標燃料供給量Ｑｆｔ（ｎ）が算出され、制御ルーチンが終了せしめられる。燃料噴射弁１１ではこのように算出された目標燃料供給量Ｑｆｔ（ｎ）に相当する量の燃料が噴射せしめられる。
【００３３】
次に、メインＦ／Ｂ制御について説明する。本実施形態では、メインＦ／Ｂ制御として、空燃比センサ２３の出力に基づいて算出された実際の燃料供給量と、上述した目標燃料供給量Ｑｆｔとの燃料偏差量ΔＱｆを各計算時毎に算出し、この燃料偏差量ΔＱｆがゼロになるように燃料補正量ＤＱｆを算出している。具体的には、燃料補正量ＤＱｆは下記式（２）により算出される。なお、下記式（２）においてＤＱｆ（ｎ−１）は、第ｎ−１回目の計算、すなわち前回の計算における燃料補正量であり、Ｋｍｐは比例ゲイン、Ｋｍｉは積分ゲインをそれぞれ示している。これら比例ゲインＫｍｐ、積分ゲインＫｍｉは予め定められた一定の値であってもよいし、機関運転状態に応じて変化する値であってもよい。
【数１】
0004661691.tif 000002
【００３４】
図５は、燃料補正量ＤＱｆを算出するメインＦ／Ｂ制御の制御ルーチンを示すフローチャートである。図示した制御ルーチンは所定時間間隔の割り込みによって行われる。
【００３５】
まず、ステップ１２１では、メインＦ／Ｂ制御の実行条件が成立しているか否かが判定される。メインＦ／Ｂ制御の実行条件が成立している場合とは、例えば内燃機関の冷間始動中ではないこと（すなわち、機関冷却水温が一定温度以上であって始動時燃料増量等が行われていないこと）や、機関運転中に燃料噴射弁からの燃料噴射を停止する燃料カット制御中ではないこと等が挙げられる。ステップ１２１においてメインＦ／Ｂ制御の実行条件が成立していると判定された場合には、ステップ１２２へと進む。
【００３６】
ステップ１２２では、第ｎ回目の計算時における空燃比センサ２３の出力値ＶＡＦ（ｎ）が検出される。次いで、ステップ１２３では、後述するサブＦ／Ｂ制御の制御ルーチンによって算出された空燃比センサ２３の出力補正値ｅｆｓｆｂ（ｎ）及び後述するサブＦ／Ｂ学習値ｅｆｇｆｓｂをステップ１２２で検出された出力値ＶＡＦ（ｎ）に加算することで、空燃比センサ２３の出力値が補正されて第ｎ回目の計算時における補正出力値ＶＡＦ’（ｎ）が算出される（ＶＡＦ’（ｎ）＝ＶＡＦ（ｎ）＋ｅｆｓｆｂ（ｎ）＋ｅｆｇｆｓｂ（ｎ））。
【００３７】
次いで、ステップ１２４では、ステップ１２３で算出された補正出力値ＶＡＦ’（ｎ）に基づいて図２に示したマップを用いて時刻ｎにおける実空燃比ＡＦＲ（ｎ）が算出される。このようにして算出された実空燃比ＡＦＲ（ｎ）は、第ｎ回目の計算時における三元触媒２０に流入する排気ガスの実際の空燃比にほぼ一致した値となっている。
【００３８】
次いで、ステップ１２５では、下記式（３）により、空燃比センサ２３の出力に基づいて算出された燃料供給量と目標燃料供給量Ｑｆｔとの燃料偏差量ΔＱｆが算出される。なお、下記式（３）において、筒内吸入空気量Ｍｃ及び目標燃料供給量Ｑｆｔについては第ｎ回目の計算時における値が用いられているが、第ｎ回目の計算時よりも前の値が用いられてもよい。
ΔＱｆ（ｎ）＝Ｍｃ（ｎ）／ＡＦＲ（ｎ）−Ｑｆｔ（ｎ）      …（３）
【００３９】
ステップ１２６では、上記式（２）により時刻ｎにおける燃料補正量ＤＱｆ（ｎ）が算出され、制御ルーチンが終了せしめられる。算出された燃料補正量ＤＱｆ（ｎ）は、図４に示した制御ルーチンのステップ１０３において用いられる。一方、ステップ１２１においてメインＦ／Ｂ制御の実行条件が成立していないと判定された場合には、燃料補正量ＤＱｆ（ｎ）が更新されることなく制御ルーチンが終了せしめられる。
【００４０】
ところで、排気ガスの熱により空燃比センサ２３が劣化すること等により空燃比センサ２３の出力にはずれが生じる場合がある。このような場合、本来図２に実線で示したような出力値を発生させる空燃比センサ２３が、例えば図２に破線で示したような出力値を発生させてしまう。このように空燃比センサ２３の出力値にずれが生じると、空燃比センサ２３は例えば本来であれば排気空燃比が理論空燃比になっているときに発生させる出力電圧を、理論空燃比よりもリーンであるときに発生させてしまう。そこで、本実施形態では、酸素センサ（下流側空燃比センサ）２４を用いたサブＦ／Ｂ制御により空燃比センサ２３の出力値に生じたずれを補償して、空燃比センサ２３の出力値が実際の排気空燃比に対応した値となるようにすることとしている。
【００４１】
すなわち、酸素センサ２４は、図３に示したように、排気空燃比が理論空燃比よりもリッチであるかリーンであるかを検出することができ、理論空燃比よりもリッチであるかリーンであるかの判定にずれを生じることがほとんどない。このため、実際の排気空燃比がリーンとなっているときには酸素センサ２４の出力電圧は低い値となっており、実際の排気空燃比がリッチとなっているときには酸素センサ２４の出力電圧は高い値となっている。したがって、実際の排気空燃比がほぼ理論空燃比となっているとき、すなわち理論空燃比付近で上下を繰り返しているときには、酸素センサ２４の出力電圧は高い値と低い値との間で反転を繰り返す。このような観点から、本実施形態では、酸素センサ２４の出力電圧が高い値と低い値との間で反転を繰り返すように空燃比センサ２３の出力値を補正することとしている。
【００４２】
図６は、実際の排気空燃比と、酸素センサの出力値と、空燃比センサ２３の出力補正値ｅｆｓｆｂと、サブＦ／Ｂ学習値ｅｆｇｆｓｂとのタイムチャートである。図６のタイムチャートは、実際の排気空燃比が理論空燃比になるように制御しているにも関わらず、空燃比センサ２３にずれが生じていて実際の排気空燃比が理論空燃比となっていない場合に、空燃比センサ２３に生じているずれが補償されていく様子を示している。
【００４３】
図６に示した例では、時刻ｔ0において、実際の排気空燃比は理論空燃比となっておらず、理論空燃比よりもリーンとなっている。これは、空燃比センサ２３にずれが生じていて、実際の排気空燃比が理論空燃比よりもリーンである空燃比となっているときに空燃比センサ２３により理論空燃比に対応する出力値が出力されているためである。このとき酸素センサ２４の出力値は低い値となっている。
【００４４】
空燃比センサ２３の出力補正値ｅｆｓｆｂは、上述したように、図５のステップ１２３において補正出力値ＶＡＦ’（ｎ）を算出するために出力値ＶＡＦ（ｎ）に加算される。従って、この出力補正値ｅｆｓｆｂが正の値となっている場合には空燃比センサ２３の出力値はリーン側に補正され、負の値となっている場合には空燃比センサ２３の出力値はリッチ側に補正される。そして出力補正値ｅｆｓｆｂの絶対値が大きいほど空燃比センサ２３の出力値が大きく補正される。
【００４５】
空燃比センサ２３の出力値がほぼ理論空燃比となっているにも関わらず酸素センサ２４の出力値が低い値となっているときには空燃比センサ２３の出力値がリッチ側にずれていることを意味する。そこで、本実施形態では、酸素センサ２４の出力値が低い値となっているときには、図６に示したように、出力補正値ｅｆｓｆｂの値を増大させて、空燃比センサ２３の出力値をリーン側へ補正することとしている。一方、空燃比センサ２３の出力値がほぼ理論空燃比となっているにも関わらず酸素センサ２４の出力値が高い値となっているときには、出力補正値ｅｆｓｆｂの値を減少させて、空燃比センサ２３の出力値をリッチ側へ補正することとしている。
【００４６】
具体的には出力補正値ｅｆｓｆｂの値は下記式（４）により計算される。なお、下記式（４）において、ｅｆｓｆｂ（ｎ−１）は、第ｎ−１回目、すなわち前回の計算時における出力補正値であり、Ｋｓｐは比例ゲイン、Ｋｓｉは積分ゲインをそれぞれ示している。また、ΔＶＯ（ｎ）は、第ｎ回目の計算時における酸素センサ２４の出力値と目標出力値（本実施形態では、理論空燃比に対応する値）との出力偏差を示している。
【数２】
0004661691.tif 000003
【００４７】
このように、図６に示した例では、空燃比センサ２３の出力補正値ｅｆｓｆｂの値が増大するにつれて、空燃比センサ２３の出力値に生じているずれが補正され、実際の排気空燃比が徐々に理論空燃比に近づいていく。
【００４８】
ここで、空燃比センサ２３の出力値が実際の空燃比に対応する値からずれた状態が継続されると、サブＦ／Ｂ制御により空燃比センサ２３の出力値が過剰に補正されてしまう場合があり、この場合には空燃比制御性が却って阻害される。このため、本実施形態では、出力補正値ｅｆｓｆｂを制限するガード値を設定し、出力補正値ｅｆｓｆｂがガード値に達したときは、出力補正値ｅｆｓｆｂをガード値で制限することで、空燃比センサ２３の過補正を防止する技術が知られている。
【００４９】
本実施形態では、斯かるガード値として出力補正値ｅｆｓｆｂが取り得る上限値Ｇｒｄｈである上限ガード値及び出力補正値ｅｆｓｆｂが取り得る下限値である下限ガード値Ｇｒｄｌが予め設定されている。図６に示した例では、時刻ｔ1において出力補正値ｅｆｓｆｂの値が上限ガード値Ｇｒｄｈに達しており、よって酸素センサ２４の出力値が低い値となっているにも関わらず、出力補正値ｅｆｓｆｂの値は増大せしめられずに上限ガード値Ｇｒｄｈのままとされる。
【００５０】
このようにしてサブＦ／Ｂ制御により空燃比センサ２３の出力値は適宜補正されるが、例えば内燃機関を停止させた場合や燃料カット制御を行った場合等にはサブＦ／Ｂ制御が中断せしめられ、その結果、出力補正値ｅｆｓｆｂの値はゼロにリセットされる。その後、再び内燃機関を始動させた場合や燃料カット制御を終了した場合等には、サブＦ／Ｂ制御が再開されるが、出力補正値ｅｆｓｆｂがゼロにリセットされているため、空燃比センサ２３の出力値を再び適切な値にまで補正するには時間がかかる。
【００５１】
そこで、本実施形態では、空燃比センサ２３の出力値と実際の排気空燃比に対応する値との間に生じている定常的なずれに対応するサブＦ／Ｂ学習値ｅｆｇｆｓｂを上記サブＦ／Ｂ制御における出力補正値ｅｆｓｆｂに基づいて算出すると共に、算出されたサブＦ／Ｂ学習値ｅｆｇｆｓｂに基づいて空燃比センサ２３の出力値ＶＡＦを補正することとしている。このようにして算出されたサブＦ／Ｂ学習値ｅｆｇｆｓｂは、例えば内燃機関を停止させたり燃料カット制御を行ったりしてもゼロにリセットされることはなく、よって内燃機関の停止や燃料カット制御等の後でもサブＦ／Ｂ制御により比較的早期に空燃比センサ２３の出力値を再び適切な値にまで補正することができるようになる。
【００５２】
具体的には、前回の学習時期から所定時間ΔＴが経過したときの出力補正値ｅｆｓｆｂが正の値である場合にはサブＦ／Ｂ学習値ｅｆｇｆｓｂを増大させると共に、出力補正値ｅｆｓｆｂが負の値である場合にはサブＦ／Ｂ学習値ｅｆｇｆｓｂを減少させるようにしている。また、サブＦ／Ｂ学習値ｅｆｇｆｓｂの増大量又は減少量は、出力補正値ｅｆｓｆｂの絶対値が大きくなるほど多くなるようにしている。
【００５３】
特に本実施形態では、前回の学習時期から所定時間ΔＴが経過したときの出力補正値ｅｆｓｆｂ及びサブＦ／Ｂ学習値ｅｆｇｆｓｂはそれぞれ下記式（５）及び（６）により更新される。なお、下記式（５）及び（６）において、αはなまし率であり、予め定められた１以下の正の値となる（０＜α≦１）。したがって、図６に示した例では、時刻ｔ2において出力補正値ｅｆｓｆｂが正の値となっているため、下記式（５）及び（６）により出力補正値ｅｆｓｆｂが低下せしめられると共にサブＦ／Ｂ学習値ｅｆｇｆｓｂが増大せしめられ、同様に時刻ｔ3においても出力補正値ｅｆｓｆｂが正の値となっているため、下記式（５）及び（６）により出力補正値ｅｆｓｆｂが低下せしめられると共にサブＦ／Ｂ学習値ｅｆｇｆｓｂが増大せしめられる。
ｅｆｓｆｂ＝ｅｆｓｆｂ−（ｅｆｓｆｂ−ｅｆｇｆｓｂ）・α      …（５）
ｅｆｇｆｓｂ＝ｅｆｇｆｓｂ＋（ｅｆｓｆｂ−ｅｆｇｆｓｂ）・α      …（６）
【００５４】
図７及び図８は、出力補正値ｅｆｓｆｂを算出するサブＦ／Ｂ制御の制御ルーチンを示すフローチャートである。図示した制御ルーチンは所定時間間隔の割り込みによって行われる。
【００５５】
まず、ステップ１４１では、サブＦ／Ｂ制御の実行条件が成立しているか否かが判定される。サブＦ／Ｂ制御の実行条件が成立している場合とは、メインＦ／Ｂ制御の実行条件と同様に内燃機関の冷間始動中でないことや燃料カット制御中ではないことが挙げられる。サブＦ／Ｂ制御の実行条件が成立していないと判定された場合には制御ルーチンが終了せしめられる。
【００５６】
一方、ステップ１４１において、サブＦ／Ｂ制御の実行条件が成立していると判定された場合には、ステップ１４２へと進む。ステップ１４２では、時間カウンタｃｏｕｎｔに１が加算された値が新たな時間カウンタｃｏｕｎｔの値とされる（ｃｏｕｎｔ＝ｃｏｕｎｔ＋１）。なお、時間カウンタｃｏｕｎｔは、前回学習が行われてから、すなわち前回サブＦ／Ｂ学習値ｅｆｇｆｓｂが更新されてからの経過時間を表すカウンタである。
【００５７】
次いで、ステップ１４３では、時刻ｎにおける酸素センサ２４の出力値と目標出力値との出力偏差ΔＶＯ（ｎ）が算出される。ステップ１４４では、ステップ１４３において算出された出力偏差ΔＶＯに基づいて上記式（４）と同様な下記式（７）を利用して暫定出力補正値ｅｆｓｆｂ’（ｎ）が算出される。
【数３】
0004661691.tif 000004
【００５８】
次いで、ステップ１４５及びステップ１４６では、ステップ１４４において算出された暫定出力補正値ｅｆｓｆｂ’（ｎ）が上限ガード値Ｇｒｄｈ以下であるか否か及び暫定出力補正値ｅｆｓｆｂ’（ｎ）が下限ガード値Ｇｒｄｌ以上であるか否かが判定される。ステップ１４５、１４６において暫定出力補正値ｅｆｓｆｂ’（ｎ）が上限ガード値Ｇｒｄｈよりも大きいと判定された場合（ｅｆｓｆｂ’（ｎ）＞Ｇｒｄｈ）にはステップ１４７へと進む。ステップ１４７では、上限ガード値Ｇｒｄｈが第ｎ回目の計算時における出力補正値ｅｆｓｆｂ（ｎ）とされる（ｅｆｓｆｂ（ｎ）＝Ｇｒｄｈ）。一方、ステップ１４５、１４６において暫定出力補正値ｅｆｓｆｂ’（ｎ）が下限ガード値Ｇｒｄｌよりも小さいと判定された場合（ｅｆｓｆｂ’（ｎ）＜Ｇｒｄｌ）にはステップ１４８へと進む。ステップ１４８では、下限ガード値Ｇｒｄｌが第ｎ回目の計算時における出力補正値ｅｆｓｆｂ（ｎ）とされる（ｅｆｓｆｂ（ｎ）＝Ｇｒｄｌ）。
【００５９】
ステップ１４５、１４６において、暫定出力補正値ｅｆｓｆｂ’（ｎ）が上限ガード値以下であって下限ガード値Ｇｒｄｌ以上であると判定された場合（Ｇｒｄｌ≦ｅｆｓｆｂ’（ｎ）≦Ｇｒｄｈ）にはステップ１４９へと進む。ステップ１４９では、暫定出力補正値ｅｆｓｆｂ’（ｎ）が第ｎ回目の計算時における出力補正値ｅｆｓｆｂ（ｎ）とされる（ｅｆｓｆｂ（ｎ）＝ｅｆｓｆｂ’（ｎ））。
【００６０】
次いで、ステップ１５０では、時間カウンタｃｏｕｎｔが所定値ｃｏｕｎｔ０以上であるか否かが判定される（ｃｏｕｎｔ≧ｃｏｕｎｔ０）。なお、所定値ｃｏｕｎｔ０は、前回のサブＦ／Ｂ学習値の更新からサブＦ／Ｂ制御が或る程度収束するのに必要な時間よりも長い時間に設定される。ステップ１５０において、時間カウンタｃｏｕｎｔが所定値ｃｏｕｎｔ０よりも小さいと判定された場合（ｃｏｕｎｔ＜ｃｏｕｎｔ０）には、前回のサブＦ／Ｂ学習値の更新から十分な時間が経過していないためサブＦ／Ｂ学習値の更新は行われずに制御ルーチンが終了せしめられる。一方、ステップ１５０において、時間カウンタｃｏｕｎｔが所定値ｃｏｕｎｔ０以上であると判定された場合（ｃｏｕｎｔ≧ｃｏｕｎｔ０）には、前回のサブＦ／Ｂ学習値の更新から十分な時間が経過しているため、ステップ１５１により出力補正値ｅｆｓｆｂが修正されると共に、ステップ１５２によりサブＦ／Ｂ学習値ｅｆｇｆｓｂが更新される。次いで、ステップ１５３において時間カウンタｃｏｕｎｔがゼロにリセットされる。
【００６１】
ところで、上記サブＦ／Ｂ学習値ｅｆｇｆｓｂはＥＣＵ３１のＲＡＭ３３に記憶されるが、バッテリを取外したりしてバッテリからの給電が中断したり、ＲＡＭ３３が破壊されたりするとＲＡＭ３３に記憶されていたサブＦ／Ｂ学習値ｅｆｇｆｓｂが消去されてしまう。このように、サブＦ／Ｂ学習値ｅｆｇｆｓｂがゼロにリセットされてしまうと、内燃機関の停止や燃料カット制御等の後にサブＦ／Ｂ制御によって早期に空燃比センサ２３の出力値を再び適切な値にまで補正することができなくなってしまう。このため、バッテリからの給電中断等の後には、サブＦ／Ｂ学習値ｅｆｇｆｓｂを早期に適切な値にする必要がある。
【００６２】
そこで、本実施形態では、サブＦ／Ｂ学習値ｅｆｇｆｓｂが一定の値付近に収束するまで、サブＦ／Ｂ制御におけるＦ／Ｂゲイン（比例ゲインＫｓｐ及び積分ゲインＫｓｉ）を、サブＦ／Ｂ学習値ｅｆｇｆｓｂが一定の値付近に収束した後の通常の値よりも大きな値とすることとしている。これにより、サブＦ／Ｂ制御において算出される出力補正値ｅｆｓｆｂの変化を大きくすることができ、よってサブＦ／Ｂ学習値ｅｆｇｆｓｂを早期に適切な値へと近づけることができ、学習を早期に収束させることができるようになる。
【００６３】
ところで、三元触媒２０は酸素吸蔵能力を有しており、これにより三元触媒２０に流入する排気ガスの空燃比がリーンであるときには排気ガス中の酸素を吸蔵すると共に、三元触媒に流入する排気ガスの空燃比がリッチであるときには吸蔵している酸素を放出すると共にこの酸素により排気ガス中のＨＣ、ＣＯが酸化されて浄化される。斯かる酸素吸蔵能力は三元触媒２０の使用開始から常に一定ではなく内燃機関の運転期間等に応じて徐々に低下する（すなわち、三元触媒２０が劣化する）。
【００６４】
三元触媒２０の酸素吸蔵能力が高い状態では、三元触媒２０に流入する排気ガスの実際の空燃比がリーンからリッチに反転しても、三元触媒２０に吸蔵されていた酸素が排気ガス中に放出されるため、三元触媒２０から流出する排気ガスの空燃比は三元触媒２０に吸蔵されている酸素がほとんどなくなるまでリッチにはならない。逆に、三元触媒２０に流入する排気ガスの実際の空燃比がリッチからリーンに反転しても、三元触媒２０に流入した排気ガス中の過剰酸素は三元触媒２０に吸蔵されることになるため、三元触媒２０から流出する排気ガスの空燃比は三元触媒２０の酸素吸蔵能力の限界に達するまでリッチにはならない。すなわち、三元触媒２０の酸素吸蔵能力が高い状態では、三元触媒２０に流入する排気ガスの空燃比がリッチ・リーン間で反転しても三元触媒２０から流出する排気ガスの空燃比は直ぐにはリッチ・リーン間で反転せず、よって三元触媒２０から流出する排気ガスの空燃比のリッチ・リーン間での反転周期が長くなる傾向にある。
【００６５】
一方、三元触媒２０の酸素吸蔵能力が低い状態では、三元触媒２０に流入する排気ガスの空燃比がリーンからリッチに反転すると、三元触媒２０にはほとんど酸素が吸蔵されていないため、三元触媒２０から流出する排気ガスの空燃比は直ぐにリッチへと反転する。逆に、三元触媒２０に流入する排気ガスの空燃比がリッチからリーンに反転すると、三元触媒２０に流入した排気ガス中の過剰酸素は三元触媒２０にはほとんど吸蔵されないため、三元触媒２０から流出する排気ガスの空燃比は直ぐにリーンへと反転する。すなわち、三元触媒２０の酸素吸蔵能力が低い状態では、三元触媒２０に流入する排気ガスの空燃比がリッチ・リーン間で反転すると三元触媒２０から流出する排気ガスの空燃比も直ぐにリッチ・リーン間で反転し、よって三元触媒２０から流出する排気ガスの空燃比のリッチ・リーン間での反転周期が短くなる傾向にある。
【００６６】
ここで、バッテリからの給電中断等の後のサブＦ／Ｂ学習値ｅｆｇｆｓｂが一定の値付近に収束したか否かの判定は、酸素センサ２４の出力値のリッチとリーンとの間での反転回数に応じて行われるか、或いは酸素センサ２４の出力値と目標出力値（本実施形態では、理論空燃比に対応する値）との偏差の積分値の変動幅に応じて行われる。従って、三元触媒２０の酸素吸蔵能力が高い場合、すなわち三元触媒２０の劣化度合いが低い場合には、三元触媒２０から流出する排気ガスの空燃比のリッチ・リーン間での反転周期が長くなる傾向にあることから、サブＦ／Ｂ学習値ｅｆｇｆｓｂの収束判定が遅れてしまうことが多く、また酸素センサ２４の出力値と目標出力値との偏差の積分値の変動幅も大きくなり易い。このため、サブＦ／Ｂ学習値ｅｆｇｆｓｂを早期に収束させるためには、サブＦ／Ｂ制御のＦ／Ｂゲインを大きくして酸素センサ２４の出力値をリッチとリーンとの間で振れ易くすると共に、ガード値Ｇｒｄｈ、Ｇｒｄｌの絶対値を大きくして出力補正値ｅｆｓｆｂがより絶対値の大きな値をとることができるように、一回の学習でサブＦ／Ｂ学習値を大きく更新することができるようにする必要がある。
【００６７】
逆に、三元触媒２０の酸素吸蔵能力が低い場合、すなわち三元触媒２０の劣化度合いが高い場合には、三元触媒２０から流出する排気ガスの空燃比のリッチ・リーン間での反転周期が短くなる傾向にあるため、サブＦ／Ｂ制御のＦ／Ｂゲインを大きくすると出力補正値ｅｆｓｆｂが発散してしまうことが多い。このため、出力補正値ｅｆｓｆｂの発散を抑制するためには、サブＦ／Ｂ制御のＦ／Ｂゲインを小さくして酸素センサ２４の出力値がリッチとリーンとの間で振れにくくすると共に、ガード値Ｇｒｄｈ、Ｇｒｄｌの絶対値を小さくして出力補正値ｅｆｓｆｂを振れにくくする必要がある。
【００６８】
そこで、本実施形態では、バッテリからの給電中断等によりＲＡＭ３３に記憶されたサブＦ／Ｂ学習値ｅｆｇｆｓｂが消去された後、サブＦ／Ｂ学習値ｅｆｇｆｓｂが収束するまでの間、三元触媒２０の酸素吸蔵能力に応じて、サブＦ／Ｂ制御のＦ／Ｂゲインの大きさを変えると共に、ガード値Ｇｒｄｈ、Ｇｒｄｌの絶対値を変えることとしている。
【００６９】
図９は、三元触媒２０が吸蔵可能な酸素量の最大値（以下、「最大酸素吸蔵量」と称す）ＯＳＣＭＡＸと、サブＦ／Ｂ制御のＦ／Ｂゲイン（比例ゲインＫｓｐ、積分ゲインＫｓｉ）との関係を表す図である。図９から分かるように、最大酸素吸蔵量ＯＳＣＭＡＸが大きいほど比例ゲインＫｓｐは大きい値とされ（図９（ａ））、また最大酸素吸蔵量ＯＳＣＭＡＸが大きいほど積分ゲインＫｓｉは大きい値とされる（図９（ｂ））。なお、図中のＫｓｐ１及びＫｓｉ１はそれぞれサブＦ／Ｂ学習値ｅｆｇｆｓｂが収束してからの比例ゲインＫｓｐ及び積分ゲインＫｓｉを示しており、サブＦ／Ｂ学習値ｅｆｇｆｓｂ収束前の比例ゲインＫｓｐ及び積分ゲインＫｓｉは、最大酸素吸蔵量ＯＳＣＭＡＸに関わらず、サブＦ／Ｂ学習値収束後の比例ゲインＫｓｐ１及び積分ゲインＫｓｉ１よりも大きな値となっている。
【００７０】
このように酸素吸蔵能力が高いときにサブＦ／Ｂ制御のＦ／Ｂゲインを大きくするようにしたことにより、酸素センサ２４の出力のリッチ・リーン間での反転周期が短くなり、また酸素センサ２４の出力値と目標出力値（本実施形態では、理論空燃比に対応する値）との偏差の積分値の変動幅も小さくなる。このため、酸素センサ２４の出力反転回数や出力偏差の積分値に基づくサブＦ／Ｂ学習値の収束判定の遅れを防止することができる。一方、酸素吸蔵能力が低いときにサブＦ／Ｂゲインを小さくするようにしたことにより、サブＦ／Ｂ制御が発散してしまうことを抑制することができ、よって排気エミッションの悪化やドライバビリティの悪化を抑制することができる。
【００７１】
図１０は、最大酸素吸蔵量ＯＳＣＭＡＸと、サブＦ／Ｂ制御のガード値（上限ガード値Ｇｒｄｈ、下限ガード値Ｇｒｄｌ）との関係を示す図である。図１０から分かるように、最大酸素吸蔵量ＯＳＣＭＡＸが大きいほど上限ガード値Ｇｒｄｈは大きい値とされ（図１０（ａ）、また最大酸素吸蔵量ＯＳＣＭＡＸが大きいほど下限ガード値Ｇｒｄｌは小さい値とされる（図１０（ｂ））。上限ガード値Ｇｒｄｈ及び下限ガード値Ｇｒｄｌのいずれについても最大酸素吸蔵量ＯＳＣＭＡＸが大きくなるほどその絶対値が大きくなっている。
【００７２】
このように酸素吸蔵能力が高いときにサブＦ／Ｂ制御のガード値の絶対値を大きくするようにしたことにより、出力補正値ｅｆｓｆｂがより大きな値をとることができ、よって酸素センサ２４の出力のリッチ・リーン間での反転周期が短くなり、また酸素センサ２４の出力値と目標出力値との偏差の積分値の変動幅も小さくなる。このため、酸素センサ２４の出力反転回数や出力偏差の積分値に基づくサブＦ／Ｂ学習値の収束判定の遅れを防止することができる。一方、酸素吸蔵能力が低いときにサブＦ／Ｂ制御のガード値の絶対値を小さくするようにしたことにより、サブＦ／Ｂ制御が発散してしまうことを抑制することができ、よって排気エミッションの悪化やドライバビリティの悪化を抑制することができる。
【００７３】
なお、最大酸素吸蔵量ＯＳＣＭＡＸは、例えば三元触媒２０に流入する排気ガスの空燃比がリッチとリーンとで交互に切り替わるように排気ガスの空燃比を制御すると共に、流入排気ガスの空燃比がリッチとリーンとの間で切り替わってから三元触媒２０から排出される排気ガスの空燃比がリッチとリーンとの間で切り替わるまでの時間等に基づいて算出される。
【００７４】
図１１は、サブＦ／Ｂ制御のＦ／Ｂゲイン及びガード値を設定する制御の制御ルーチンを示すフローチャートである。図示した制御ルーチンは所定時間間隔の割り込みによって行われる。
【００７５】
まず、ステップ１６１では、収束フラグＸｓｔが０であるか否かが判定される。収束フラグＸｓｔは、サブＦ／Ｂ学習値ｅｆｇｆｓｂが収束しているときに１とされ、それ以外のときに０とされるフラグである。サブＦ／Ｂ学習値ｅｆｇｆｓｂが消去された後であってサブＦ／Ｂ学習値ｅｆｇｆｓｂが収束していないときには収束フラグＸｓｔが０となっているためステップ１６２へと進む。ステップ１６２では、酸素センサ２４の出力値がリッチとリーンとの間で反転したか否かが判定される。酸素センサ２４の出力値が反転したと判定された場合にはステップ１６３において反転回数ＣＯＸに１を加算したものが新たな反転回数ＣＯＸとされ（ＣＯＸ＝ＣＯＸ＋１）、ステップ１６４へと進む。一方、酸素センサ２４の出力値が反転していないと判定された場合にはステップ１６３を介することなくステップ１６４へと進む。
【００７６】
次いで、ステップ１６４では、反転回数ＣＯＸが所定反転回数ＣＯＸ１以上であるか、すなわちサブＦ／Ｂ学習値ｅｆｇｆｓｂが収束したか否かが判定される。ステップ１６４において反転回数ＣＯＸが所定反転回数ＣＯＸ１よりも小さいと判定された場合にはステップ１６５へと進む。ステップ１６５では、酸素センサ２４の出力に基づいて最大酸素吸蔵量ＯＳＣＭＡＸが算出される。次いでステップ１６６ではステップ１６５で算出された最大酸素吸蔵量ＯＳＣＭＡＸに基づいて図９及び図１０に示したマップを用いて比例ゲインＫｓｐ、積分ゲインＫｓｉ、上限ガード値Ｇｒｄｈ、下限ガード値Ｇｒｄｌが算出される。
【００７７】
一方、ステップ１６４において反転回数ＣＯＸが所定反転回数ＣＯＸ１以上であると判定された場合には、ステップ１６７へと進む。ステップ１６７では、最大酸素吸蔵量とは無関係に、比例ゲインＫｓｐ、積分ゲインＫｓｉ、上限ガード値Ｇｒｄｈ、下限ガード値ＧｒｄｌがＫｓｐ１、Ｋｓｉ１、Ｇｒｄｈ１、Ｇｒｄｌ１とされる。次いで、ステップ１６８において、収束フラグＸｓｔが１にセットされる。
【００７８】
収束フラグＸｓｔが１にセットされた後の制御ルーチンでは、ステップ１６１において収束フラグＸｓｔが０ではないと判定されてステップ１６９へと進む。ステップ１６９では、ＥＣＵ３１のＲＡＭ３３に記憶されていたサブＦ／Ｂ学習値ｅｆｇｆｓｂが消去される条件が成立したか否かが判定される。サブＦ／Ｂ学習値が消去される条件とは例えばバッテリからの給電中断等が挙げられる。ステップ１６９において、サブＦ／Ｂ学習値が消去される条件が成立していないと判定された場合には制御ルーチンが終了せしめられる。一方、サブＦ／Ｂ学習値が消去される条件が成立したと判定された場合にはステップ１７０へと進む。ステップ１７０では反転回数がゼロにリセットされ、次いでステップ１７１では収束フラグＸｓｔが０にリセットされる。
【００７９】
なお、上記実施形態では、三元触媒の上流に設けた空燃比センサをリニアに反応する空燃比センサとしているが、上流側の空燃比センサも酸素センサとしたいわゆるダブル酸素センサシステムにも本発明を適用することも可能である。ただし、この場合には酸素センサの出力は排気ガス中の残存酸素量に比例せず燃料供給量は上流側酸素センサ出力に直接的には比例しないため、燃料偏差量の積算値に基づいて三元触媒の酸素収支を推定することはできない。そこで三元触媒の酸素収支を推定する手段として空燃比補正係数と空燃比サブＦ／Ｂ学習値との偏差の積分値を使用する。
【００８０】
また、上記実施形態では、排気浄化触媒として三元触媒を用いているが、排気浄化触媒はこれに限られず、酸素吸蔵能力を有すれば如何なる排気浄化触媒が用いられてもよく、例えばＮＯXの吸蔵能力を有するＮＯX吸蔵還元触媒等が用いられても良い。
【００８１】
また、上記実施形態では、排気空燃比が理論空燃比となるようにメインＦ／Ｂ制御を実行すると共に、酸素センサの出力値が理論空燃比付近となるようにサブＦ／Ｂ制御を実行しているが、これらＦ／Ｂ制御の目標空燃比は理論空燃比でなくてもよく、理論空燃比よりもリッチ又はリーンの空燃比であってもよい。
【００８２】
さらに、上記実施形態では、サブＦ／Ｂ制御により空燃比センサ２３の出力値を補正することとしているが、例えばサブＦ／Ｂ制御によりメインＦ／Ｂ制御における目標空燃比を補正するようにしてもよい。
【図面の簡単な説明】
【００８３】
【図１】本発明の内燃機関の空燃比制御装置が適用される内燃機関全体の図である。
【図２】排気空燃比と空燃比センサの出力電圧との関係を示した図である。
【図３】排気空燃比と酸素センサの出力電圧との関係を示した図である。
【図４】目標燃料供給量を算出する目標燃料供給量算出制御の制御ルーチンを示すフローチャートである。
【図５】燃料補正量を算出するメインＦ／Ｂ制御の制御ルーチンを示すフローチャートである。
【図６】実際の排気空燃比と、酸素センサの出力値と、空燃比センサの出力補正値と、サブＦ／Ｂ学習値とのタイムチャートである。
【図７】出力補正値を算出するサブＦ／Ｂ制御の制御ルーチンを示すフローチャートの一部である。
【図８】出力補正値を算出するサブＦ／Ｂ制御の制御ルーチンを示すフローチャートの一部である。
【図９】最大酸素吸蔵量と、サブＦ／Ｂ制御のＦ／Ｂゲインとの関係を表す図である。
【図１０】最大酸素吸蔵量と、サブＦ／Ｂ制御のＦ／Ｂゲインとの関係を表す図である。
【図１１】サブＦ／Ｂ制御のＦ／Ｂゲイン及びガード値を設定する制御の制御ルーチンを示すフローチャートである。
【符号の説明】
【００８４】
１    機関本体
３    ピストン
５    燃焼室
６    吸気弁
８    排気弁
１０    点火栓
１１    燃料噴射弁
３１    ＥＣＵ
４１    負荷センサ
４２    クランク角センサ
【図１】
0004661691.tif 000005
【図２】
0004661691.tif 000006
【図３】
0004661691.tif 000007
【図４】
0004661691.tif 000008
【図５】
0004661691.tif 000009
【図６】
0004661691.tif 000010
【図７】
0004661691.tif 000011
【図８】
0004661691.tif 000012
【図９】
0004661691.tif 000013
【図１０】
0004661691.tif 000014
【図１１】
0004661691.tif 000015