(57)【特許請求の範囲】
【請求項１】
触媒の上流側と下流側の各空燃比センサと、
空燃比フィードバック制御の基本制御定数を演算する手段と、
空燃比フィードバック制御条件の成立時であるかそれとも非成立時であるかを判定する手段と、
この判定結果より空燃比フィードバック制御条件の成立時に前記下流側空燃比センサの出力に基づいて前記基本制御定数に対する修正値を演算する手段と、
この修正値で前記基本制御定数を修正して制御定数を演算する手段と、
この演算した制御定数を用いて前記上流側空燃比センサの出力に基づく空燃比のフィードバック制御を行う手段と
を備えるエンジンの空燃比制御装置において、
空燃比フィードバック制御条件の成立時から非成立時へと切換わる直前の前記修正値を記憶する手段と、
空燃比フィードバック制御条件の非成立時に前記触媒のＯ2ストレージ量に相関するパラメータを計測する手段と、
その後に空燃比フィードバック制御条件の成立時となったとき、前記パラメータに応じて前記下流側空燃比センサの出力を理論空燃比へと戻す向きに前記修正値の記憶値を補正した値を、その空燃比フィードバック制御条件の成立直後の修正値として設定する手段と  を設けたことを特徴とするエンジンの空燃比制御装置。
【請求項２】
前記空燃比フィードバック制御条件の非成立時はリーン化制御時であることを特徴とする請求項１に記載のエンジンの空燃比制御装置。
【請求項３】
前記リーン化制御時はリーンクランプ時または燃料カット時であることを特徴とする請求項２に記載のエンジンの空燃比制御装置。
【請求項４】
前記空燃比フィードバック制御条件の非成立時はリッチ化制御時であることを特徴とする請求項１に記載のエンジンの空燃比制御装置。
【請求項５】
前記リッチ化制御時は高出力時であることを特徴とする請求項４に記載のエンジンの空燃比制御装置。
【請求項６】
前記パラメータに応じて前記下流側空燃比センサの出力を理論空燃比へと戻す向きの補正量が、前記空燃比フィードバック制御条件の非成立時の触媒Ｏ2ストレージ量が増えるほど正の値で絶対値が大きくなる値であるかまたは前記空燃比フィードバック制御条件の非成立時の触媒Ｏ2ストレージ量が減るほど負の値で絶対値が大きくなる値であることを特徴とする請求項２から５までのいずれか一つに記載のエンジンの空燃比制御装置。
【請求項７】
前記補正量を前記パラメータが所定値以上で一定値に制限することを特徴とする請求項６に記載のエンジンの空燃比制御装置。
【請求項８】
前記補正量を前記下流側空燃比センサの出力に応じて補正することを特徴とする請求項６または７に記載のエンジンの空燃比制御装置。
【請求項９】
前記下流側空燃比センサの出力が理論空燃比からより離れているとき前記補正量の絶対値を増大させ、スライスレベルに近づくほど前記補正量の絶対値を減少させることを特徴とする請求項８に記載のエンジンの空燃比制御装置。
【請求項１０】
前記下流側空燃比センサの出力が理論空燃比からよりリーン側に離れているとき前記補正量を正の値で最大限とし、スライスレベルに近づくほど前記補正量を０に向かって減少させるかまたは前記下流側空燃比センサの出力が理論空燃比からよりリッチ側に離れているとき前記補正量を負の値で最大限とし、スライスレベルに近づくほど前記補正量を０に向かって増大させることを特徴とする請求項８に記載のエンジンの空燃比制御装置。
【請求項１１】
前記補正量を前記触媒の温度に応じて補正することを特徴とする請求項６または７に記載のエンジンの空燃比制御装置。
【請求項１２】
実際の触媒温度が前記補正量をマッチングしたときの触媒温度より高くなるほど前記補正量を減少させることを特徴とする請求項１１に記載のエンジンの空燃比制御装置。
【請求項１３】
前記下流側空燃比センサ出力が理論空燃比付近に戻ったとき前記設定を終了することを特徴とする請求項１から１２までのいずれか一つに記載のエンジンの空燃比制御装置。
【請求項１４】
前記パラメータは前記空燃比フィードバック制御条件の非成立時の経過時間であることを特徴とする請求項１から１３までのいずれか一つに記載のエンジンの空燃比制御装置。
【請求項１５】
前記パラメータは前記空燃比フィードバック制御条件の非成立時の吸入空気流量の積算値であることを特徴とする請求項１から１３までのいずれか一つに記載のエンジンの空燃比制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はエンジンの空燃比制御装置に関する。
【０００２】
【従来の技術】
排気浄化用の三元触媒の上流に設けたＯ２センサ出力に基づいて空燃比のフィードバック制御を行なう場合、Ｏ２センサ出力にバラツキがあると、空燃比の制御精度が低下するので、この上流側Ｏ２センサ出力のバラツキや経時劣化等による変化を補償するため、三元触媒の下流にもＯ２センサを設け、上流側Ｏ２センサ出力に基づい空燃比のフィードバック制御を行なうとともに、その空燃比フィードバック制御に使用する制御定数（たとえば比例分）を、下流側Ｏ２センサ出力に基づいて修正する、いわゆるダブルＯ２センサシステムの装置がある。
【０００３】
この従来の装置では、上流側Ｏ２センサがリッチ側よりリーン側に反転したときに与える比例分ＲＳＲを、下流側Ｏ２センサ出力がスライスレベルよりも大きい（つまりリッチ側にある）ときは、
ＲＳＲ＝ＲＳＲ（ｏｌｄ）−ΔＲＬ
ただし、ΔＲＬ：ＲＳＲのリーン側への更新速度
ＲＳＲ（ｏｌｄ）：ＲＳＲの前回値
の式により、また下流側Ｏ２センサ出力がスライスレベルよりも小さい（つまりリーン側にある）ときは、
ＲＳＲ＝ＲＳＲ（ｏｌｄ）＋ΔＲＲ
ただし、ΔＲＲ：ＲＳＲのリッチ側への更新速度
ＲＳＲ（ｏｌｄ）：ＲＳＲの前回値
の式により更新することによって、上流側Ｏ２センサ出力のバラツキや経時劣化等により、触媒に流入する排気の空燃比がリッチやリーンに偏ることがあっても、そのリッチやリーンに偏った空燃比を理論空燃比へと戻すのである。
【０００４】
しかしながら、下流側Ｏ２センサ出力に基づく比例分の修正制御を、燃料カットによりいったん停止した後に再び行ったのでは、燃料カットの解除直後に却って空燃比が一時的にリッチになる。これは、減速時の燃料カットにより触媒内に大量の酸素が導入され、これが保持されるという触媒のＯ２ストレージ効果に起因するもので、燃料カットを解除した直後にかりにリッチ空燃比の排気を触媒内に導入したとしても、触媒に保持された酸素が消費されるまでは触媒の下流にリッチ空燃比の排気が排出されないので、下流側Ｏ２センサがその間リーン側の出力をし、したがって燃料カットの解除直後には空燃比がリッチ側へと過修正されてしまうのである。
【０００５】
このため、下流側Ｏ２センサ出力に基づく比例分修正制御の再開当初に限り、触媒のＯ２ストレージ量に応じた期間、上記のリッチ側への更新速度ΔＲＲを通常時より小さく（かつ上記のリーン側への更新速度ΔＲＬを通常時より大きく）することにより、燃料カットの解除直後の空燃比の過修正を防止するようにしている（特開平２−３７１４４号公報参照）。たとえば燃料カット時間が長くなるほど触媒のＯ２ストレージ量が多くなるので、リッチ側への更新速度ΔＲＲを通常時より小さくする期間を、これに合わせて長くするわけである。
【０００６】
【発明が解決しようとする課題】
しかしながら、リッチ側への更新速度ΔＲＲを、触媒のＯ２ストレージ量に関係なく通常時より小さな一定値とするのでは、燃料カット解除直後に理論空燃比へと収束するのが長引き、その間でＮＯｘ排出量が増加してしまう。リッチ側への更新速度ΔＲＲを小さくすることは下流側Ｏ２センサ出力に基づく制御の応答を遅くするものであり、制御の応答を遅らせることによって燃料カット解除直後のリッチ側への過修正を防止できても、リッチ側への更新速度ΔＲＲの不足により燃料カット解除直後の空燃比を早期に理論空燃比へと制御することはできないのである。
【０００７】
そこで本発明は、比例分など空燃比フィードバック制御定数の修正制御条件の成立時より非成立時へと切換わる直前の空燃比フィードバック制御定数の修正値を記憶しておき、修正制御条件の非成立時になると、この間の触媒のＯ２ストレージ量に相関するパラメータ（経過時間のほか、吸入空気量、基本噴射パルス幅Ｔｐの各積算値）を計測し、その後に修正制御条件が成立したとき、このパラメータに応じて前記記憶していた修正値を補正した値を、空燃比フィードバック制御定数の修正制御条件の成立直後の修正値として設定することにより、修正制御条件の成立直後より応答よく理論空燃比へと収束させることを目的とする。
【０００８】
【課題を解決するための手段】
第１の発明では、図１７に示すように、触媒の上流側と下流側の各空燃比センサ３１、３２と、空燃比フィードバック制御の基本制御定数（たとえば比例分ＰＬ、ＰＲ、積分分ＩＬ、ＩＲ、上流側空燃比センサ出力の遅延時間、上流側空燃比センサ出力と比較するスライスレベルＳＬＦ等）を演算する手段３３と、空燃比フィードバック制御条件の成立時であるかそれとも非成立時であるかを判定する手段３４と、この判定結果より空燃比フィードバック制御条件の成立時に前記下流側空燃比センサ３２の出力に基づいて前記基本制御定数に対する修正値（たとえば比例分修正値ＰＨＯＳ）を演算する手段３５と、この修正値で前記基本制御定数を修正して制御定数を演算する手段３６と、この演算した制御定数を用いて前記上流側空燃比センサ３１の出力に基づく空燃比のフィードバック制御を行う手段３７とを備えるエンジンの空燃比制御装置において、空燃比フィードバック制御条件の成立時から非成立時へと切換わる直前の前記修正値を記憶する手段３８と、空燃比フィードバック制御条件の非成立時に前記触媒のＯ２ストレージ量に相関するパラメータを計測する手段３９と、その後に空燃比フィードバック制御条件の成立時となったとき、前記パラメータに応じて前記下流側空燃比センサの出力を理論空燃比へと戻す向きに前記修正値の記憶値を補正した値を、その空燃比フィードバック制御条件の成立直後の修正値として設定する手段４０とを設けた。
【０００９】
第２の発明では、第１の発明において前記空燃比フィードバック制御条件の非成立時がリーン化制御時である。
【００１０】
第３の発明では、第２の発明において前記リーン化制御時がリーンクランプ時または燃料カット時である。
【００１１】
第４の発明では、第１の発明において前記空燃比フィードバック制御条件の非成立時がリッチ化制御時である。
【００１２】
第５の発明では、第４の発明において前記リッチ化制御時が高出力時である。
【００１３】
第６の発明では、第２から第５までのいずれか一つの発明において前記パラメータに応じて前記下流側空燃比センサの出力を理論空燃比へと戻す向きの補正量が、前記空燃比フィードバック制御条件の非成立時の触媒Ｏ2ストレージ量が増えるほど正の値で絶対値が大きくなる値であるかまたは前記空燃比フィードバック制御条件の非成立時の触媒Ｏ2ストレージ量が減るほど負の値で絶対値が大きくなる値である。
【００１４】
第７の発明では、第６の発明において前記補正量を前記パラメータが所定値以上で一定値に制限する。
【００１５】
第８の発明では、第６または第７の発明において前記補正量を前記下流側空燃比センサの出力に応じて補正する。
【００１６】
第９の発明では、第８の発明において前記下流側空燃比センサの出力が理論空燃比からより離れているとき前記補正量の絶対値を増大させ、スライスレベルに近づくほど前記補正量の絶対値を減少させる。
第１０の発明では、第８の発明において前記下流側空燃比センサの出力が理論空燃比からよりリーン側に離れているとき前記補正量を正の値で最大限とし、スライスレベルに近づくほど前記補正量を０に向かって減少させるかまたは前記下流側空燃比センサの出力が理論空燃比からよりリッチ側に離れているとき前記補正量を負の値で最大限とし、スライスレベルに近づくほど前記補正量を０に向かって増大させる。
【００１７】
第１１の発明では、第６または第７の発明において前記補正量を前記触媒の温度に応じて補正する。
【００１８】
第１２の発明では、第１１の発明において実際の触媒温度が前記補正量をマッチングしたときの触媒温度より高くなるほど前記補正量を減少させる。
【００１９】
第１３の発明では、第１から第１２までのいずれか一つの発明において前記下流側空燃比センサ出力が理論空燃比付近に戻ったとき前記設定を終了する。
【００２０】
第１４の発明では、第１から第１３までのいずれか一つの発明において前記パラメータが前記空燃比フィードバック制御条件の非成立時の経過時間である。
【００２１】
第１５の発明では、第１から第１３までのいずれか一つの発明において前記パラメータが前記空燃比フィードバック制御条件の非成立時の吸入空気流量の積算値である。
【００２２】
【発明の効果】
空燃比フィードバック制御条件の成立が継続している場合に使用する修正値の更新速度を、空燃比フィードバック制御条件の非成立時から成立時へと切換わった直後にもそのまま用いたのでは、徐々にしか修正値が変化しない（リーン化制御の解除直後であればリッチ化の程度が増さないし、リッチ化制御の解除直後であればリーン化の程度が増さない）ので、理論空燃比に収束するまでに時間がかかるだけでなく、触媒のＯ２ストレージが量が元に戻ってもリッチ化制御やリーン化制御が続いたのでは過修正となる。このとき修正値の更新速度を通常時より小さくすると過修正を防ぐことはできるが、更新速度の低下により理論空燃比に収束するまでの時間が長くなり、その間でＮＯｘ排出量が増える。
【００２３】
これに対して、第１の発明では、空燃比フィードバック制御条件の成立時から非成立時へと切換わる直前の修正値を記憶するとともに、空燃比フィードバック制御条件の非成立時になると、触媒のＯ２ストレージ量に相関するパラメータを計測し、その後に空燃比フィードバック制御条件の成立時となったとき、そのパラメータに応じて下流側空燃比センサの出力を理論空燃比へと戻す向きに前記修正値の記憶値を補正した値を、その空燃比フィードバック制御条件の成立直後の修正値として設定するので、空燃比フィードバック制御条件の成立直後に修正値を補正する値そのものが触媒のＯ２ストレージ量に応じた値となり、これによって、下流側空燃比センサ出力が従来よりも応答よく理論空燃比付近へと収束することから、空燃比フィードバック制御条件の成立直後に理論空燃比への収束が遅れることによる排気組成の悪化を防ぐことができる。
【００２４】
リーン化制御により触媒内のリーン化が進み、またリッチ化制御により触媒内のリッチ化が進むといっても触媒のＯ２ストレージ量には触媒容量などにより定まる限界値があり、第７の発明により補正量をパラメータが所定値以上で一定値に制限することで、触媒の特性に合わせた補正量の設定を行うことができる。
【００２５】
第９の発明では、下流側空燃比センサの出力が理論空燃比からより離れているとき補正量の絶対値を増大させ、スライスレベルに近づくほど補正量の絶対値を減少させるので、具体的には第１０の発明により、前記下流側空燃比センサの出力が理論空燃比からよりリーン側に離れているとき前記補正量を正の値で最大限とし、スライスレベルに近づくほど前記補正量を０に向かって減少させるかまたは前記下流側空燃比センサの出力が理論空燃比からよりリッチ側に離れているとき前記補正量を負の値で最大限とし、スライスレベルに近づくほど前記補正量を０に向かって増大させるので、リーン化制御から空燃比フィードバック制御条件への切換時は、空燃比フィードバック制御条件の成立直後の修正制御を適正化することができるとともに、その後リーン化程度が小さくなってからのリッチ側への過修正を防ぐことができる。また、リッチ化制御から空燃比フィードバック制御条件への切換時には、空燃比フィードバック制御条件の成立直後の修正制御を適正化することができるとともに、その後リッチ化程度が小さくなってからのリーン側への過修正を防ぐことができる。
【００２６】
第１１の発明では、補正量を触媒の温度に応じて補正するので、実際の触媒温度が、補正量をマッチングしたときの触媒温度よりずれたときでも、リーン化制御の解除直後やリッチ化制御の解除直後の空燃比を応答よく理論空燃比へと制御することができる。
【００２７】
空燃比フィードバック制御条件の成立直後に修正値について通常時の修正値と異なる修正値を設定するのは、あくまで過渡対策であり、第１３の発明により、下流側空燃比センサ出力が理論空燃比付近に戻ったときこの設定を終了して通常時の修正値へと移行させることで、過渡から定常へのつながりがよくなる。
【００２８】
【発明の実施の形態】
図１において、１はエンジン本体で、その吸気通路８には吸気絞り弁５の下流に位置して燃料噴射弁７が設けられ、コントロールユニット（図ではＣ／Ｕで略記）２からの噴射信号により運転条件に応じて所定の空燃比となるように、吸気中に燃料を噴射供給する。
【００２９】
コントロールユニット２にはクランク角センサ４からのＲｅｆ信号（基準位置信号）とＰｏｓ信号（１°信号）、エアフローメータ６からの吸入空気量信号、水温センサ１１からのエンジン冷却水温信号等が入力され、これらに基づいて基本噴射パルス幅Ｔｐを算出するとともに、排気通路９の三元触媒１０の上流側に設置した酸素センサ３からの空燃比（酸素濃度）信号に基づいて空燃比のフィードバック制御を行い、さらにその空燃比フィードバック制御に使用する比例分を、三元触媒１０の下流側に設置した酸素センサ１３からの空燃比（酸素濃度）信号により修正する。
【００３０】
ここで、空燃比フィードバック制御は、排気空燃比を理論空燃比を中心として周期的に振らすようにした制御であり、このとき排気通路９に設けた三元触媒１０が最大の転換効率をもって、排気中のＮＯｘの還元とＨＣ、ＣＯの酸化を行う。
【００３１】
コントロールユニット２で実行されるこの制御の内容を、以下のフローチャートにしたがって説明する。
【００３２】
図２のフローチャートは上流側Ｏ２センサ出力ＯＳＲ１に基づいて空燃比フィードバック補正係数αを演算するためのもので、Ｒｅｆ信号に同期して実行する。Ｒｅｆ信号に同期させるのは、燃料噴射がＲｅｆ信号同期であり、系の乱れもＲｅｆ信号同期であるため、これに合わせたものである。
【００３３】
ステップ１では、上流側Ｏ２センサ出力に基づく空燃比フィードバック制御条件が成立しているかどうかをみる。たとえば、次の条件、
▲１▼冷却水温Ｔｗが空燃比フィードバック制御の開始水温ＴＷＣＬＭＰを越えていること、
▲２▼目標燃空比Ｔｆｂｙａ（後述する）＝１であること、
▲３▼フラグＦＬＧＣＬ＝１であること（つまり上流側、下流側の各Ｏ２センサ出力がそれぞれ所定回数（たとえば１回）反転していること）、を一つずつチェックし、いずかでも満たさないときは空燃比フィードバック制御条件の非成立時と判断して、ステップ２に進み、αに１．０を入れて（αをクランプ）、図２のフローを終了する。
【００３４】
上記の▲１▼〜▲３▼のすべてを満足するときは空燃比フィードバック制御条件の成立時と判断してステップ３に進む。なお、本発明では、便宜上、上流側Ｏ２センサ出力に基づく空燃比フィードバック制御を行うとき、必ず下流側Ｏ２センサ出力に基づく比例分修正制御を行うものとして説明する。実際の制御では、上流側Ｏ２センサ出力に基づく空燃比フィードバック制御を行っても、下流側Ｏ２センサ出力に基づく比例分修正制御が行われない場合がある（たとえば上流側Ｏ２センサは活性化していても、下流側Ｏ２センサが活性化していないとき）ことはいうまでもない。
【００３５】
ステップ３では上流側Ｏ２センサ出力ＯＳＲ１をＡ／Ｄ変換して取り込み、ステップ４においてＯＳＲ１とスライスレベル（たとえば５００ｍＶ付近）ＳＬＦを比較する。ＯＳＲ１＞ＳＬＦであれば上流側Ｏ２センサ出力がリッチ側にあると判断し、ステップ５でフラグＡＦＦ１に“１”を入れ、ＯＳＲ１≦ＳＬＦであるときは上流側Ｏ２センサ出力がリーン側にあると判断し、ステップ６においてフラグＡＦＦ１に“０”を入れる。これによってＡＦＦ１＝０は上流側Ｏ２センサ出力がリーン側にあることを、ＡＦＦ１＝１はリッチ側にあることを表す。
【００３６】
なお、フラグＡＦＦ１は、後述する図３、図５、図６のフローチャートにおいて他のフラグ（クランプ解除直後フラグ、燃料カット解除直後フラグ、高出力解除直後フラグ、初回フラグ１、初回フラグ２、初回フラグ３）とともに電源投入時のイニシャライズで“０”に初期設定し、また変数を格納するためのメモリ（図３において、ＰＨＯＳ、ＰＨＯＳ（ｏｌｄ）、ＰＬＣ、ＰＦＣ、ＰＫＭＲ、ＰＬＳ１、ＲＫ１、ＰＬＳ２、ＰＬＳ３、ＲＫ２、図５においてＴＭ１、ＴＭ２、ＴＭ３）も電源投入時のイニシャライズで０に初期設定するものであり、以下のフローチャートおいて、フラグ、メモリについての初期設定については省略する。
【００３７】
ステップ７ではフラグＡＦＦ０の値を読み込む。このフラグＡＦＦ０は前回に上流側Ｏ２センサ出力ＯＳＲ１がリッチあるいはリーンのいずれの側にあったかを示すフラグであり、ＡＦＦ０＝０は前回リーン側にあったことを、ＡＦＦ０＝１は前回リッチ側にあったことを表す。
【００３８】
ステップ８では２つのフラグＡＦＦ０、ＡＦＦ１を比較し、両者の値が等しくないときは、ＯＳＲ１のリッチからリーンへの反転時あるいはその反対にリーンからリッチへの反転時であると判断し、ステップ９でサブルーチンを実行する。このサブルーチンの実行（ＯＳＲ１の反転毎に実行）については図３のフローチャートにより説明する。
【００３９】
図３においては、ステップ２１、４６、４７、４８、４９が従来と同じ部分である。その他は本発明により新たに設けた部分であり、後で詳述する。
【００４０】
ステップ２１では下流側Ｏ２センサ平滑化電圧ＭＶＲＯ２を読み込む。この下流側Ｏ２センサ平滑化電圧ＭＶＲＯ２は、図４に示したように、エンジン１回転毎に下流側Ｏ２センサ出力ＯＳＲ２をＡ／Ｄ変換して取り込み、
ＭＶＲＯ２＝ＭＶＲＯ２（ｏｌｄ）×（１−Ａ）＋ＯＳＲ２×Ａ  …（１）
ただし、Ａ：平滑化定数（Ａ＜１）
ＭＶＲＯ２（ｏｌｄ）：ＭＶＲＯ２の前回値
の式により更新される値である。ただし、初回電源投入時はＯＳＲ２をそのままＭＶＲＯ２に入れている。
【００４１】
この下流側Ｏ２センサ平滑化電圧ＭＶＲＯ２とスライスレベル（たとえば５００ｍＶ付近）ＳＬＲの差ＤＬＴＡＶをステップ４６において計算し、このＤＬＴＡＶよりステップ４７、４８において図７を内容とするテーブルを検索して比例分修正値の更新量ＤＰＨＯＳを求め、
ＰＨＯＳ＝ＰＨＯＳ（ｏｌｄ）＋ＤＰＨＯＳ                      …（２）
ただし、ＰＨＯＳ（ｏｌｄ）：ＰＨＯＳの前回値
の式により比例分修正値ＰＨＯＳを更新する。このとき、修正値ＰＨＯＳは下流側Ｏ２センサ平滑化電圧ＭＶＲＯ２がリーンを継続するあいだ漸増し、リッチを継続するあいだ漸減する波形となる（図１３参照）。
【００４２】
次回制御のためステップ４９ではＰＨＯＳの前回値を格納するためのメモリＰＨＯＳ（ｏｌｄ）にＰＨＯＳの値を移す。
【００４３】
サブルーチンの実行を終了したら、図２のステップ１０に戻り、フラグＡＦＦ１の値をみる。ＡＦＦ１＝０（リッチからリーンへの反転時）であればステップ１１で
α＝α（ｏｌｄ）＋（ＰＬ＋ＰＨＯＳ）                          …（３）
ただし、α（ｏｌｄ）：αの前回値
の式により、またＡＦＦ１＝１（リーンからリッチへの反転時）であるときはステップ１２において
α＝α（ｏｌｄ）−（ＰＲ−ＰＨＯＳ）                          …（４）
ただし、α（ｏｌｄ）：αの前回値
の式によりαをそれぞれ更新する。
【００４４】
一方、ステップ８で２つのフラグＡＦＦ０、ＡＦＦ１の値が等しいときは、反転時でないと判断し、Ｓ１３に進んでフラグＡＦＦ１の値をみる。ＡＦＦ１＝０（前回、今回ともリーン）であれば、ステップ１４でα（ｏｌｄ）に積分分ＩＬを加算することによって、またＡＦＦ１＝１（前回、今回ともリッチ）であるときはステップ１５でα（ｏｌｄ）より積分分ＩＲを減算することによってそれぞれαを更新する。
【００４５】
ステップ１６では次回制御のためフラグＡＦＦ１の値をフラグＡＦＦ０に移して図２のフローを終了する。
【００４６】
このようにして演算される空燃比フィードバック補正係数αを用い、図示しないフローにより、燃料噴射弁７に与える燃料噴射パルス幅Ｔｉが
0003622396.tif 000002
ただし、Ｔｐ：基本噴射パルス幅
Ｋａｔｈｏｓ：過渡補正量
Ｔｆｂｙａ：目標燃空比相当量
αｍ：空燃比学習値
Ｔｓ：無効パルス幅
の式で計算される。この計算したＴｉの値は、これも図示しない噴射タイミングで出力レジスタに転送され、エンジン２回転毎に１回、各気筒毎に噴射される。
【００４７】
ここで、（５）式のＴｐはエンジン回転数と吸入空気量から計算される値で、このＴｐによりほぼ理論空燃比の混合気が得られる。Ｔｆｂｙａは水温増量補正係数Ｋｔｗや始動後増量補正係数Ｋａｓ、混合比増量補正係数ＫＭＲなどの和であり、冷間始動直後より空燃比フィードバック制御が開始されるまでのあいだでＫｔｗやＫａｓにより、また高負荷域や高回転域でＫＭＲによりＴｆｂｙａが１．０より大きい値になって燃料増量が行われ、理論空燃比よりもリッチ側の空燃比で運転（高出力で運転）される。
【００４８】
ところで、減速時のリーンクランプや燃料カットにより触媒内に大量の酸素が導入され、これが保持されるという触媒のＯ２ストレージ効果のため、減速時のリーンクランプや燃料カットを解除した直後にかりにリッチ空燃比の排気を触媒内に導入したとしても、触媒に保持された酸素が消費されるまでは触媒の下流にリッチ空燃比の排気が排出されないので、下流側Ｏ２センサ出力はその間リーン側の出力をし、したがって比例分修正制御条件が継続している場合に使用する修正値の更新速度ＤＰＨＯＳを、比例分修正制御条件となった直後にも、そのまま用いたのでは、図１３に示したように徐々にしか比例分修正値ＰＨＯＳが増えていかないので、理論空燃比に収束するまでに時間がかかるだけでなく、触媒のＯ２ストレージが量が元に戻ってもリッチ化制御が続いたのでは過修正となる（図１６参照）。
【００４９】
このとき比例分修正値の更新速度ＤＰＨＯＳを通常時よりも低下させると、過修正を防ぐことはできるが、更新速度ＤＰＨＯＳの不足により燃料カット解除直後の空燃比を早期に理論空燃比へと制御することができず、その間でＮＯｘ排出量が増える。
【００５０】
なお、燃料カットは全く燃料を噴射しないので、触媒中のＯ２ストレージ量が大きくなりすぎ、燃料カット解除直後の加速や定常などでＮＯｘ排出量が多くなるため、ＮＯｘ低減のため燃料は噴射するものの、燃費改善のため空燃比がリーンとなるようにしたもの（燃費改善とＮＯｘ低減の両立をねらったもの）が、上記減速時のリーンクランプである。燃料カットが高車速からの減速時に行われるのに対して、減速時のリーンクランプは低車速からの減速時に行われる。たとえば、高車速からの減速時に燃料カットを行った後に低車速になればリーンクランプが行われる。
【００５１】
これに対処するため本発明の第１実施形態は、比例分修正制御条件の成立時から非成立時へと切換わる直前の比例分修正値を記憶しておき、比例分修正制御条件の非成立時になると、触媒のＯ２ストレージ量に相関するパラメータを計測し、その後に比例分修正制御条件の成立時となったときこの測定したパラメータに応じて前記記憶していた修正値を補正した値を、比例分修正制御条件の成立直後の比例分修正値として設定する。
【００５２】
詳細には図３においてステップ２２〜４５、５０を追加するとともに、図５、図６のフローチャートを新たに設けている。
【００５３】
まず、図３のステップ２２、２３、２４ではリーンクランプ条件、燃料カット条件、高出力条件の各解除直後であるかどうかをフラグにより判断する。このフラグの設定については、図５、図６のフローチャートにより説明する。
【００５４】
図５、図６のフローチャートは図２、図３とは独立に一定時間毎（たとえば１０ｍｓ毎）に実行する。
【００５５】
ステップ６１、６２、６３において今回は比例分修正制御条件であるかどうか、また前回は比例分修正制御条件であったかどうかをみる。
【００５６】
この判定結果より今回は比例分修正制御条件でなく前回は比例分修正制御条件であったとき（つまり比例分修正制御条件の非成立時への切換時）、ステップ６１、６２より図６のステップ６４以降に進む。比例分修正制御条件でないときには、▲１▼リーンクランプ条件（ＬＣ＝１）、▲２▼燃料カット条件（ＦＣ＝１）、▲３▼高出力条件（ＦＫＭＲ＝１）の３つの場合があるので、ステップ６４、６５、６６では、いずれの場合であるのかをみて、ＬＣ＝１のときは、ステップ６７でタイマ１を起動する。このタイマ１はリーンクランプ条件となってからの経過時間を計測するためのもので、タイマ１の起動によりタイマ値が０から増加していく。同様にして、ＦＣ＝１のときはステップ６８でタイマ２を、またＦＫＭＲ＝１のときはステップ６９でタイマ３を起動する。タイマ２は燃料カット条件となってからの経過時間を、またタイマ３は高出力条件となってからの経過時間をそれぞれ計測するためのものである。これら３つのタイマ１、タイマ２、タイマ３はコントロールユニット２に内蔵のタイマを用いればよい。
【００５７】
なお、高出力条件とは前述の混合比増量補正係数ＫＭＲが１より大きい値となって働く条件（通常は高負荷域や高回転域）である。
【００５８】
一方、今回は比例分修正制御条件でありかつ前回は比例分修正制御条件でなかったとき（つまり比例分修正制御条件への切換時）、図５のステップ６１、６３よりステップ７０以降に進む。比例分修正制御条件への切換時には▲１▼リーンクランプ条件からの切換時、▲２▼燃料カット条件からの切換時、▲３▼高出力条件からの切換時の３つの場合があるので、ステップ７０、７１、７２において前回はリーンクランプ条件、燃料カット条件、高出力条件のいずれであったかをみる。
【００５９】
前回リーンクランプ条件であったときはステップ７０よりステップ７３に進み、クランプ解除直後フラグに“１”を入れる。クランプ解除直後フラグ＝１によりリーンクランプの解除直後であることを表すのである。
【００６０】
同様にして前回に燃料カット条件であったとき、ステップ７０、７１よりステップ７６に進み、燃料カット解除直後フラグに“１”を、また前回に高出力条件であったとき、ステップ７０、７１、７２よりステップ７９に進み、高出力解除直後フラグに“１”をそれぞれ入れる。
【００６１】
これに対して、今回は比例分修正制御条件でありかつ前回は比例分修正制御条件であったとき（つまり比例分修正制御条件の継続時）は、ステップ６１、６３よりステップ８２以降に進む。比例分修正制御条件の継続時にも、▲１▼リーンクランプ条件の解除直後、▲２▼燃料カット条件の解除直後、▲３▼高出力条件の解除直後の３つの場合があるので、上記３つのフラグ（クランプ解除直後フラグ、燃料カット解除直後フラグ、高出力解除直後フラグ）をみる。
【００６２】
クランプ解除直後フラグ＝１のときはステップ８２よりステップ８５に進み、下流側Ｏ２センサ平滑化電圧ＭＶＲＯ２とスライスレベルＳＬＲを比較し、ＭＶＲＯ２≦ＳＬＲのときはそのまま図５のフローを終了し、ＭＶＲＯ２＞ＳＬＲになるとステップ８５よりステップ８６に進んでクランプ解除直後フラグに“０”を入れる。クランプ解除直後フラグ＝１のときは、比例分修正値のリッチ化補正（後述する）を行うことで、空燃比がリッチ側に向かい、ＭＶＲＯ２が大きくなっていく。その結果、ＭＶＲＯ２＞ＳＬＲ（つまりリッチ）となればリーンクランプによる影響がなくなったことになるので、ＭＶＲＯ２＞ＳＬＲとなったタイミングでクランプ解除直後フラグを“０”にリセットすることで、比例分修正値のリッチ化補正を終了して通常の比例分修正制御に戻すのである。
【００６３】
同様にして、燃料カット解除直後フラグ＝１のときはステップ８２、８３よりステップ８８に進んでＭＶＲＯ２とスライスレベルＳＬＲを比較し、ＭＶＲＯ２≦ＳＬＲのときはそのまま図５のフローを終了し、ＭＶＲＯ２＞ＳＬＲになるとステップ８８よりステップ８９に進んで燃料カット解除直後フラグに“０”を入れる。燃料カット解除直後フラグ＝１のときも、比例分修正値のリッチ化補正（後述する）を行うことで、空燃比がリッチ側に向かい、ＭＶＲＯ２＞ＳＬＲ（つまりリッチ）となれば燃料カットによる影響がなくなったことになるので、ＭＶＲＯ２＞ＳＬＲとなったタイミングで燃料カット解除直後フラグを“０”にリセットし（比例分修正値のリッチ化補正を終了し）、通常の比例分修正制御に戻す。
【００６４】
これに対して、高出力解除直後フラグ＝１のときはステップ８２、８３、８４よりステップ９１に進み、ＭＶＲＯ２とスライスレベルＳＬＲを比較し、ＭＶＲＯ２≧ＳＬＲのときはそのまま図５のフローを終了し、ＭＶＲＯ２＜ＳＬＲになるとステップ９１よりステップ９２に進んで高出力解除直後フラグに“０”を入れる。高出力解除直後フラグ＝１のときは、比例分修正値のリーン化補正（後述する）を行うことで、リーンクランプや燃料カットの解除直後と相違して、空燃比がリーン側に向かい（ＭＶＲＯ２が小さくなっていき）、ＭＶＲＯ２＜ＳＬＲ（つまりリーン）となれば高出力による影響がなくなったことになるので、ＭＶＲＯ２＜ＳＬＲとなったタイミングで高出力解除直後フラグを“０”にリセットすることで、この場合も比例分修正値のリーン化補正を終了して通常の比例分修正制御に戻すのである。
【００６５】
このようにして、３つのフラグは、比例分修正値の補正中だけ“１”となるフラグである。
【００６６】
また、３つの各フラグに“１”を入れるタイミングでは、それぞれステップ７４、７５、ステップ７７、７８、ステップ８０、８１に進み、そのときのタイマ１、タイマ２、タイマ３の各タイマ値をそれぞれ対応するメモリＴＭ１、ＴＭ２、ＴＭ３に入れたあと、タイマ１、タイマ２、タイマ３をリセットしている。このときＴＭ１はリーンクランプ条件にあった時間を、ＴＭ２は燃料カット条件にあった時間を、ＴＭ３は高出力条件にあった時間をそれぞれ表す。
【００６７】
また、３つの各フラグに“０”を入れるタイミングでは、それぞれ８７、９０、９３に進み、次回制御のため、メモリＴＭ１、ＴＭ２、ＴＭ３、パラメータＰＬＣ、ＰＦＣ、ＰＫＭＲ、補正量ＰＬＳ１、ＰＬＳ２、ＰＬＳ３、補正率ＲＫ１、ＲＫ２、比例分修正値ＰＨＯＳ１にいずれも０を、初回フラグ１、初回フラグ２、初回フラグ３に“０”を入れている。これらの内容は後述する。
【００６８】
図３に戻り、クランプ解除直後フラグ＝１のときはステップ２２よりステップ２５以降に、燃料カット解除直後フラグ＝１のときはステップ２２、２３よりステップ３２以降に、高出力解除直後フラグ＝１のときはステップ２２、２３、２４よりステップ３９以降にそれぞれ進む。
【００６９】
ステップ２５〜３１から述べると、まずステップ２５で初回フラグ１をみる。エンジン始動後に初めてステップ２５に進んできたときは初回フラグ１＝０であるので、ステップ２６に進み、メモリＴＭ１の値をリーンクランプ中の触媒Ｏ２ストレージ量に相関するパラメータＰＬＣに入れ、このパラメータＰＬＣよりステップ２７において図８を内容とするテーブルを検索してリッチ化補正量ＰＬＳ１を求めたあと、ステップ２８において初回フラグ１に“１”を入れる。
【００７０】
ステップ２９では下流側Ｏ２センサ平滑化電圧ＭＶＲＯ２より図９を内容とするテーブルを検索してリッチ化補正量に対する補正率ＲＫ１を求め、このＲＫ１と上記のＰＬＳ１を用いステップ３０において
ＰＨＯＳ１＝ＰＨＯＳＡ＋ＰＬＳ１×ＲＫ１                  …（６）
ただし、ＰＨＯＳＡ：リーンクランプ条件になる直前のＰＨＯＳ
の式により比例分修正値ＰＨＯＳ１を計算し、この値を改めてステップ３１において比例分修正値ＰＨＯＳに入れ、ステップ４９の操作を実行して図３のフローを終了する。初回フラグ１の“１”へのセットにより次回よりはステップ２６、２７、２８を飛ばしてステップ２９、３０、３１の操作を繰り返す。つまり、クランプ条件の解除直後に一回だけ実行するのがステップ２６、２７、２８である。
【００７１】
ここで、（６）式の右辺第２項のＰＬＳ１×ＲＫ１はリッチ化の程度を決定する値で、この値によりリーンクランプ条件の解除直後に下流側空燃比センサの出力を理論空燃比へと戻す向き（つまりリッチ側）にＰＨＯＳが補正される。
【００７２】
このうちＰＬＳ１は触媒のＯ２ストレージ量に応じた補正量である。リーンクランプ期間が長くなるほど触媒のＯ２ストレージ量が多くなり、触媒内の空燃比のリーン化が進むので、これに対応して図８に示すようにパラメータＰＬＣに応じて正の値で補正量ＰＬＳ１の値を大きくしている。ただし、触媒内のリーン化が進むといっても触媒のＯ２ストレージ量には触媒容量などにより定まる上限値があるので、これに合わせて、パラメータＰＬＣが所定値以上ではＰＬＳ１の値を一定値にしている。
【００７３】
次に、ＲＫ１は下流側Ｏ２センサ出力に応じた補正率である。これは、リーンクランプ条件の解除直後に下流側Ｏ２センサ出力が大きくリーン側に偏っているときには補正量ＰＬＳ１によるＰＨＯＳの補正を最大限に行い、その後リーン化度合が弱まってくれば、ＰＨＯＳの補正を弱めて行うことを目的とするもので、図９に示すようにＭＶＲＯ２（下流側Ｏ２センサ出力）が小さい（つまりリーン側にある）場合に最大の１．０となり、ＭＶＲＯ２が徐々に大きくなる（リーン化程度が弱くなる）につれて小さくなり、下流側Ｏ２センサ出力と比較するためのスライスレベルＳＬＲ（理論空燃比相当）以上で０となる値である。
【００７４】
このようにして、リーンクランプ条件の解除直後（クランプ解除直後フラグ＝１のとき）は、（６）式のＰＨＯＳ１がＰＨＯＳとして設定されるのである。
【００７５】
ステップ３２〜３８、ステップ３９〜４５はステップ２５〜３１とほぼ同様で、燃料カット解除直後フラグが“１”となった直後に一回だけステップ３３、３４、３５の操作を実行し、燃料カット解除直後フラグが“１”であるあいだステップ３６、３７、３８の操作を繰り返し、また高出力解除直後フラグが“１”となった直後に一回だけステップ４０、４１、４２の操作を実行し、高出力解除直後フラグが“１”であるあいだステップ４３、４４、４５の操作を繰り返す。
【００７６】
具体的には、ステップ３３でメモリＴＭ２の値を燃料カット中の触媒Ｏ２ストレージ量に相関するパラメータＰＦＣに入れ、このパラメータＰＦＣよりステップ３４において図１０を内容とするテーブルを検索してリッチ化補正量ＰＬＳ２を求める。ステップ３６ではステップ２９と同じに補正率ＲＫ１を求め、このＲＫ１と上記のＰＬＳ２を用いステップ３７において
ＰＨＯＳ２＝ＰＨＯＳＡ＋ＰＬＳ２×ＲＫ１                  …（７）
ただし、ＰＨＯＳＡ：燃料カット条件になる直前のＰＨＯＳ
の式により比例分修正値ＰＨＯＳ２を計算し、この値を改めてステップ３８においてＰＨＯＳに入れる。これによって、（７）式のＰＨＯＳ２が燃料カット条件の解除直後（燃料カット解除直後フラグ＝１のとき）のＰＨＯＳとして設定される。
【００７７】
また、ステップ４０ではメモリＴＭ３の値を高出力中の触媒Ｏ２ストレージ量に相関するパラメータＰＫＭＲに入れ、このパラメータＰＫＭＲよりステップ４１において図１１を内容とするテーブルを検索してリーン化補正量ＰＬＳ３を求める。ステップ４３ではＭＶＲＯ２より図１２を内容とするテーブルを検索してリーン化補正量に対する補正率ＲＫ２を求め、ステップ４４において
ＰＨＯＳ３＝ＰＨＯＳＡ＋ＰＬＳ３×ＲＫ２                  …（８）
ただし、ＰＨＯＳＡ：高出力条件になる直前のＰＨＯＳ
の式により比例分修正値ＰＨＯＳ３を計算する。
【００７８】
ここで、燃料カット時にはリーンクランプ時と同じにリーン化制御が行われるため、図１０に示すリッチ化補正量ＰＬＳ２の特性を、図８のリッチ化補正量ＰＬＳ１の特性と同様としている。これに対して、高出力時には、リーンクランプ時と相違してリッチ化制御が行われ、これによって高出力期間が長くなるほど触媒のＯ２ストレージ量が少なくなり触媒内の空燃比のリッチ化が進むので、リーン化補正量ＰＬＳ３を、図１１に示したようにパラメータＰＫＭＲが大きくなるほど負の値で大きくしている。ただし、触媒内のリッチ化にも限界があるので、パラメータＰＫＭＲが所定値以上でＰＬＳ３の値を一定値にする。
【００７９】
また、補正率ＲＫ２は、図１２に示すようにＭＶＲＯ２が大きい（つまりリッチ側にある）場合に最大の１．０となり、ＭＶＲＯ２が徐々に小さくなる（リッチ化程度が弱くなる）につれて小さくなり、スライスレベルＳＬＲ以上で０となる値である。
【００８０】
一方、図３においてステップ２２、２３、２４で３つのフラグがいずれも“１”でないときは、ステップ４６、４７、４８の操作を従来と同様に実行し、ステップ５０ではさらにこのときのＰＨＯＳの値を、ＲＡＭから構成されるメモリＰＨＯＳＡに移して保存する。ＰＨＯＳＡは、リーン化制御（あるいはリッチ化制御）を開始する直前の比例分修正値を格納するためのものである。たとえば、比例分修正制御条件よりリーンクランプ条件への切換時で考えると、
〈１〉リーンクランプを開始する前はステップ４４〜５０の処理が実行され、
〈２〉リーンクランプ条件の解除によってクランプ直後解除フラグ＝１となったときステップ２５〜３１の処理が実行される
ことから、リーンクランプの直前のＰＨＯＳがＰＨＯＳＡに格納され、この値がクランプ解除直後解除フラグ＝１のときステップ３０で用いられるのである。
【００８１】
ここで、第１実施形態の作用を図１３を参照しながら説明すると、図１３は比例分修正制御条件よりリーンクランプ条件に切換わり、その後に比例分修正制御条件に戻った場合のものである。
【００８２】
第１実施形態では、比例分修正制御条件からリーンクランプ条件へと切換わる直前のＰＨＯＳ（＝ＰＨＯＳＡ）が記憶され、リーンクランプ条件になると、リーンクランプ時間が、リーンクランプ中の触媒Ｏ２ストレージ量に相関するパラメータＰＬＣとして計測される。そして、その後にリーンクランプ条件が解除され比例分修正制御条件に戻ったとき、このパラメータＰＬＣより求めたリッチ化補正量ＰＬＳ１で前記記憶していたＰＨＯＳを補正した値がリーンクランプ解除直後のＰＨＯＳ（図示のＰＨＯＳ１）として設定される。
【００８３】
このときのリッチ化補正量ＰＬＳ１は、リーンクランプ中の触媒Ｏ２ストレージ量に応じた値（Ｏ２ストレージ量が大きいほど大きな値）であるため、ＰＨＯＳが図示のようにリーンクランプ解除直後に急激に立ち上がる波形となり、この急激に立ち上がるＰＨＯＳにより下流側Ｏ２センサ出力（ＭＶＲＯ２）が従来よりも早期にスライスレベルＳＬＲ（理論空燃比相当）の付近へと収束する（一点鎖線参照）。
【００８４】
なお、比例分修正制御条件への切換直後にも、ステップ４６、４７、４８によりＰＨＯＳを求めたのでは、ＰＨＯＳが更新速度ＤＰＨＯＳずつしか大きくならないため、ＭＶＲＯ２がスライスレベルＳＬＲの付近に戻るのが遅れるだけでなく（実線参照）、触媒のＯ２ストレージ量が元に戻ってもリッチ化制御が続けば過補正となる（図１６参照）。このとき更新速度ＤＰＨＯＳを通常時より小さくすると過修正を防ぐことはできるが、更新速度ＤＰＨＯＳの低下により理論空燃比に収束するまでの時間が長くなり、その間でＮＯｘ排出量が増えることになる。
【００８５】
第１実施形態ではまた、リーンクランプ条件の解除直後に下流側Ｏ２センサ出力が大きくリーン側に偏っているときは補正率ＲＫ１が最大の１．０となり、このときリッチ化補正量ＰＬＳ１によるＰＨＯＳの補正が最大限に行われ、その後リーン化程度が弱まってくれば、補正率ＲＫ１が１．０より小さくなり、このときＰＨＯＳの補正の度合も弱まる。言い換えれば、リーンクランプ条件の解除直後に下流側Ｏ２センサ出力の状態つまりは触媒内の空燃比をみながらＰＨＯＳに対する補正を行うことができ、これによりリーンクランプ解除直後の比例分修正制御を適正化することができるとともに、その後リーン化程度が小さくなってからのリッチ側への過修正を防ぐこともできる。
【００８６】
図示しないが、比例分修正制御条件より燃料カット条件に切換わり、その後に比例分修正制御条件に戻った場合や比例分修正制御条件より高出力条件に切換わり、その後に比例分修正制御条件に戻った場合も同様である。
【００８７】
図１４のフローチャートは第２実施形態で、第１実施形態の図３に対応する。図３と相違するのは、ステップ１０１、１０２、１０３である。
【００８８】
触媒の温度が上昇するにつれて触媒の転化率が向上し触媒内のＯ２が未燃ＨＣと結び付きやすくなるため、触媒温度の上昇とともに触媒のＯ２ストレージ量が小さくなる。したがって、触媒のＯ２ストレージ量に応じた上記の補正量ＰＬＳ１、ＰＬＳ２、ＰＬＳ３と下流側Ｏ２センサ出力に応じた補正率ＲＫ１、ＲＫ２の各特性を所定の触媒温度に対してマッチングしている場合において、そのマッチング時の触媒温度より実際の触媒温度が上昇したときにも、マッチング時の触媒温度に対する補正量ＰＬＳ１、ＰＬＳ２、ＰＬＳ３と補正率ＲＫ１、ＲＫ２をそのまま用いたのでは、ＰＬＳ１×ＲＫ１、ＰＬＳ２×ＲＫ１、ＰＬＳ３×ＲＫ２の値が要求値よりも大きくなってしまう。
【００８９】
そこでこの実施形態では、触媒温度を検出するセンサを設けておくとともに、このセンサにより検出される触媒温度に応じた補正率ＫＴＥを導入し、この温度補正率ＫＴＥで上記の補正量ＰＬＳ１、ＰＬＳ２、ＰＬＳ３を補正することで、リーン化制御中やリッチ化制御中の触媒Ｏ２ストレージ量が触媒温度に応じて変化することに対処するものである。なお、触媒温度は、回転数と負荷（Ｔｐ）の積算値や吸入空気量の積算値より推定することもできる。
【００９０】
具体的には、クランプ解除直後フラグ＝１のときステップ１０１において
ＰＨＯＳ１＝ＰＨＯＳＡ＋ＰＬＳ１×ＲＫ１×ＫＴＥ          …（９）
の式により比例分修正値ＰＨＯＳ１を計算する。同様にして、燃料カット解除直後フラグ＝１のときはＰＬＳ２×ＲＫ１に代えてＰＬＳ２×ＲＫ１×ＫＴＥを、高出力解除直後フラグ＝１のときはＰＬＳ３×ＲＫ２に代えてＰＬＳ３×ＲＫ２×ＫＴＥを用いる（ステップ１０２、１０３）。
【００９１】
ここで、温度補正率ＫＴＥは、図１５に示したように、触媒温度ＳＴＥがマッチング時の触媒温度のとき最大の１．０となり、触媒温度ＳＴＥがマッチング時の触媒温度より高くなるほど小さくなる値である。触媒温度ＳＴＥがマッチング時の触媒温度より高いときは、触媒のＯ２ストレージ量がマッチング時より少なくなるので、その分だけリッチ化程度を定めるＰＬＳ１、ＰＬＳ２やリーン化程度を定めるＰＬＳ３を小さくするのである。なお、この温度補正は、触媒温度がマッチング時の触媒温度より高い場合の過補正の防止を目的としている（マッチング時の触媒温度より低い場合は過補正することはあり得ないと思われる）ので、触媒温度ＳＴＥがマッチング時の触媒温度より低い場合はＫＴＥ＝１．０でよい。
【００９２】
なお、ＫＴＥは、図示しないフローにおいて、温度センサにより検出した触媒温度ＳＴＥより図１５を内容とするテーブルを検索することによって求める。
【００９３】
このように、第２実施形態では、触媒のＯ２ストレージ量に応じた補正量ＰＬＳ１、ＰＬＳ２、ＰＬＳ３に対する温度補正率ＫＴＥを導入し、この補正率ＫＴＥにより補正量ＰＬＳ１、ＰＬＳ２、ＰＬＳ３を補正するので、実際の触媒温度が、補正量ＰＬＳ１、ＰＬＳ２、ＰＬＳ３をマッチングしたときの触媒温度よりずれたときでも、リーン化制御の解除直後やリッチ化制御の解除直後の空燃比を応答よく理論空燃比へと制御することができる。
【００９４】
実施形態では、リーンクランプ中、燃料カット中、高出力中の触媒Ｏ２ストレージ量に相関するパラメータとして、いずれも時間（リーンクランプ時間、燃料カット時間、高出力時間）で代表させたが、この時間に代えて、リーンクランプ中、燃料カット中、高出力中の各吸入空気流量（あるいは各基本噴射パルス幅Ｔｐ）の積算値（エアフローメータ流量を所定時間毎に積算する）を用いることができる。
【００９５】
実施形態では、電源投入時のイニシャライズで修正値ＰＨＯＳに０を初期設定するもので説明したが、これに限られるものでない。たとえばＰＨＯＳをバックアップＲＡＭで構成するものでは、始動時にＰＨＯＳが初期値をもつ。また、そのＰＨＯＳ初期値を触媒の劣化に応じて変化させるものもある。これらのものに対しても本発明を適用できる。ただし、このときはＰＨＯＳ（ｏｌｄ）とＰＨＯＳＡについても、その構成（バックアップＲＡＭで構成するのか、それとも単なるＲＡＭで構成するのか）を考慮しなければならない。
【００９６】
実施形態では、修正値の与え方が、下流側Ｏ２センサ出力がリッチ側にあるあいだ修正値ＰＨＯＳを漸増し、リーン側にあるあいだＰＨＯＳを漸減する、いわゆる積分制御である場合で説明したが、▲１▼下流側Ｏ２センサ出力がリッチ側からリーン側に反転したときステップ的にＰＨＯＳを増加し、▲２▼その後に下流側Ｏ２センサ出力がリッチ側に反転するまでＰＨＯＳを漸増し、▲３▼下流側Ｏ２センサ出力がリーン側からリッチ側に反転したときステップ的にＰＨＯＳを減少し、▲４▼その後に下流側Ｏ２センサ出力がリーン側に反転するまでＰＨＯＳを漸減する、いわゆる比例積分制御である場合にも適用することができる。
【００９７】
実施形態では、空燃比フィードバック制御定数が比例分である場合で説明したが、これに限られることはなく、積分分ＩＬ、ＩＲ、上流側Ｏ２センサ出力の遅延時間、上流側Ｏ２センサ出力と比較するスライスレベルＳＬＦ等であっても同様に構成することができる。
【００９８】
本発明はリーンバーンシステム（リーン運転と理論空燃比での運転とを切換えて行う）を備えるものにも適用できる。
【図面の簡単な説明】
【図１】第１実施形態の制御システム図である。
【図２】空燃比フィードバック補正係数αの演算を説明するためのフローチャートである。
【図３】サブルーチンを説明するためのフローチャートである。
【図４】下流側Ｏ２センサ平滑化電圧ＭＶＲＯ２の演算を説明するためのフローチャートである。
【図５】３つのフラグの設定を説明するためのフローチャートである。
【図６】３つのフラグの設定を説明するためのフローチャートである。
【図７】比例分修正値の更新量ＤＰＨＯＳの特性図である。
【図８】リッチ化補正量ＰＬＳ１の特性図である。
【図９】リッチ化補正量に対する補正率ＰＫ１の特性図である。
【図１０】リッチ化補正量ＰＬＳ２の特性図である。
【図１１】リーン化補正量ＰＬＳ３の特性図である。
【図１２】リーン化補正量に対する補正率ＰＫ２の特性図である。
【図１３】第１実施形態の作用を説明するための波形図である。
【図１４】第２実施形態のサブルーチンを説明するためのフローチャートである。
【図１５】温度補正率ＫＴＥの特性図である。
【図１６】従来例の作用を説明するための波形図である。
【図１７】第１の発明のクレーム対応図である。
【符号の説明】
２  コントロールユニット
３  上流側Ｏ２センサ（上流側空燃比センサ）
４  クランク角センサ
６  エアフローメータ
７  燃料噴射弁
９  排気通路
１０  三元触媒
１３  下流側Ｏ２センサ（下流側空燃比センサ）
【図１】
0003622396.tif 000003
【図２】
0003622396.tif 000004
【図３】
0003622396.tif 000005
【図４】
0003622396.tif 000006
【図５】
0003622396.tif 000007
【図６】
0003622396.tif 000008
【図７】
0003622396.tif 000009
【図８】
0003622396.tif 000010
【図９】
0003622396.tif 000011
【図１０】
0003622396.tif 000012
【図１１】
0003622396.tif 000013
【図１２】
0003622396.tif 000014
【図１３】
0003622396.tif 000015
【図１４】
0003622396.tif 000016
【図１５】
0003622396.tif 000017
【図１６】
0003622396.tif 000018
【図１７】
0003622396.tif 000019