(57)【特許請求の範囲】
【請求項１】
燃料タンクから発生する蒸発燃料を吸気系に放出するパージ手段を備えた内燃機関の排気系に設けられ、排気ガスの浄化を行う触媒手段と、該触媒手段の下流側に設けられ、排気ガス中の酸素濃度を検出する酸素濃度検出手段と、該酸素濃度検出手段の出力に応じて空燃比制御量を演算する空燃比制御量演算手段と、該空燃比制御量に基づいて前記機関に供給する混合気の空燃比を制御する空燃比制御手段と、該空燃比制御手段による空燃比の制御時の前記酸素濃度検出手段の出力に基づいた触媒劣化判定パラメータにより前記触媒手段の劣化を検出する触媒劣化検出手段と、該検出した酸素濃度に基づいて空燃比補正係数を求める空燃比補正係数算出手段と、該空燃比補正係数の増減に基づいて前記蒸発燃料の濃度を算出する蒸発燃料濃度算出手段とを備えた内燃機関の触媒劣化検出装置であって、
前記パージ手段によって吸気系に放出する蒸発燃料の濃度が濃いときは、前記触媒手段の劣化検出を禁止する劣化検出禁止手段を有することを特徴とする内燃機関の触媒劣化検出装置。
【請求項２】
前記蒸発燃料濃度算出手段は、前記空燃比補正係数が増加しているときは、前記蒸発燃料の濃度を減少させ、前記空燃比補正係数が減少しているときは、前記蒸発燃料の濃度を増加させることを特徴とする請求項１記載の内燃機関の触媒劣化検出装置。
【請求項３】
前記蒸発燃料濃度算出手段は、前記空燃比補正係数が所定範囲内にあるか、若しくは、該所定範囲に向けて変化しているときは、前記蒸発燃料の濃度を変化させないことを特徴とする請求項２記載の内燃機関の触媒劣化検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の排気系に設けられ、排気ガスを浄化する触媒の劣化を検出する触媒劣化検出装置に関する。
【０００２】
【従来の技術】
内燃機関の排気ガスを浄化する触媒の劣化検出装置として、機関の排気通路の触媒の下流側に設けた酸素濃度センサの出力の応じて機関に供給する混合気の空燃比をフィードバック制御し、その時の酸素濃度センサ出力の反転周期を触媒劣化判定パラメータとして用いて触媒の酸素蓄積能力を検出し、劣化判定を行うものが、既に本出願人により提案されている（特開平６−２１２９５５号公報、特願平６−３０８２２９号）。
【０００３】
また、燃料タンクで発生する蒸発燃料をキャニスタに貯蔵し、適宜機関の吸気系に放出する蒸発燃料排出抑止装置も従来より広く使用されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、蒸発燃料の吸気系へのパージの影響が大きい場合には、混合気の空燃比はリッチ側に偏るため、触媒の下流側に設けられた酸素濃度センサ出力の反転周期から触媒の酸素ストレージ能力を正確に判定することが困難となり、劣化判定を正確に行うことができないという問題があった。
【０００５】
本発明はこの点に着目してなされてものであり、吸気系にパージされる蒸発燃料の影響によって混合気の空燃比がリッチ側に偏ることに起因する、酸素濃度センサ出力に基づいた触媒劣化判定パラメータによる触媒劣化の誤検知を防止し、正確な劣化判定を行うことができる触媒劣化検出装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するため本発明は、燃料タンクから発生する蒸発燃料を吸気系に放出するパージ手段を備えた内燃機関の排気系に設けられ、排気ガスの浄化を行う触媒手段と、該触媒手段の下流側に設けられ、排気ガス中の酸素濃度を検出する酸素濃度検出手段と、該酸素濃度検出手段の出力に応じて空燃比制御量を演算する空燃比制御量演算手段と、該空燃比制御量に基づいて前記機関に供給する混合気の空燃比を制御する空燃比制御手段と、該空燃比制御手段による空燃比の制御時の前記酸素濃度検出手段の出力に基づいた触媒劣化判定パラメータにより前記触媒手段の劣化を検出する触媒劣化検出手段と、該検出した酸素濃度に基づいて空燃比補正係数（ＫＯ２）を求める空燃比補正係数算出手段と、該空燃比補正係数の増減に基づいて前記蒸発燃料の濃度（ＫＥＶＡＰ）を算出する蒸発燃料濃度算出手段（Ｓ１６１，Ｓ１６４）とを備えた内燃機関の触媒劣化検出装置であって、前記パージ手段によって吸気系に放出する蒸発燃料の濃度が濃いときは、前記触媒手段の劣化検出を禁止する劣化検出禁止手段を有することを特徴とする触媒劣化検出装置を提供する。
【０００７】
さらに、前記蒸発燃料濃度算出手段は、前記空燃比補正係数が増加しているとき（Ｓ１６２でＹＥＳ）は、前記蒸発燃料の濃度を減少させ（Ｓ１６４）、前記空燃比補正係数が減少しているとき（Ｓ１５１でＹＥＳ）は、前記蒸発燃料の濃度を増加させる（Ｓ１６１）ことが望ましい。
また、前記蒸発燃料濃度算出手段は、前記空燃比補正係数が所定範囲内（ＦＫＯ２ＥＶＨ〜ＦＫＯ２ＥＶＬ）にあるか、若しくは、該所定範囲に向けて変化しているとき（Ｓ１６２でＮＯ，Ｓ１５１でＮＯ）は、前記蒸発燃料の濃度を変化させない（Ｓ１６３）ことが望ましい。
【０００８】
本発明によれば、前記パージ手段によって吸気系に放出する蒸発燃料の濃度が濃いときは、前記触媒手段の劣化検出を禁止される。
【０００９】
【発明の実施の形態】
以下本発明の実施の形態を図面を参照して説明する。
【００１０】
図１は、本発明の実施の一形態に係る触媒劣化検出装置が組込まれた内燃機関（以下「エンジン」という）及びその制御装置の全体構成図であり、例えば４気筒のエンジン１の吸気管２の途中にはスロットル弁３が配されている。スロットル弁３にはスロットル弁開度（θＴＨ）センサ４が連結されており、当該スロットル弁３の開度に応じた電気信号を出力してエンジン制御用電子コントロールユニット（以下「ＥＣＵ」という）５に供給する。
【００１１】
燃料噴射弁６はエンジン１とスロットル弁３との間かつ吸気管２の図示しない吸気弁の少し上流側に各気筒毎に設けられており、各噴射弁は図示しない燃料ポンプに接続されていると共にＥＣＵ５に電気的に接続されて当該ＥＣＵ５からの信号により燃料噴射の開弁時間が制御される。
【００１２】
一方、スロットル弁３の直ぐ下流には吸気管内絶対圧（ＰＢＡ）センサ７が設けられており、この絶対圧センサ７により電気信号に変換された絶対圧信号は前記ＥＣＵ５に供給される。また、その下流には吸気温（ＴＡ)センサ８が取付けられており、吸気温ＴＡを検出して対応する電気信号を出力してＥＣＵ５に供給する。
【００１３】
エンジン１の本体に装着されたエンジン水温（ＴＷ）センサ９はサーミスタ等から成り、エンジン水温（冷却水温）ＴＷを検出して対応する温度信号を出力してＥＣＵ５に供給する。
【００１４】
エンジン１の図示しないカム軸周囲又はクランク軸周囲には、エンジン回転数（ＮＥ）センサ１０及び気筒判別（ＣＹＬ）センサ１１が取り付けられている。エンジン回転数センサ１０は、エンジン１の各気筒の吸入行程開始時の上死点（ＴＤＣ）に関し所定クランク角度前のクランク角度位置で（４気筒エンジンではクランク角１８０゜毎に）ＴＤＣ信号パルスを出力し、気筒判別センサ１１は、特定の気筒の所定クランク角度位置で気筒判別信号パルスを出力するものであり、これらの各信号パルスはＥＣＵ５に供給される。
【００１５】
排気管１２には排気ガスを浄化する三元触媒（以下触媒という）１６が設けられ、触媒１６の上流位置には、酸素濃度検出手段としての上流側Ｏ2センサ１４が装着されているとともに、触媒１６の下流位置にも酸素濃度検出手段としての下流側Ｏ2センサ１５が装着され、それぞれ排気ガス中の酸素濃度を検出してその検出値に応じた電気信号（ＰＶＯ２，ＳＶＯ２）がＥＣＵ５に供給される。また触媒Ｃにはその温度を検出する触媒温度（ＴＣＡＴ）センサ１３が装着され、検出された触媒温度ＴＣＡＴに対応する電気信号がＥＣＵに供給される。
【００１６】
ＥＣＵ５にはさらに、エンジン１が搭載された車両の速度Ｖを検出する車速センサ１７、大気圧（ＰＡ）センサ１８が接続されており、これらのセンサの検出信号がＥＣＵ５に供給される。
【００１７】
吸気管２には、通路１９を介して燃料タンクで発生する蒸発燃料を吸着するキャニスタ（図示せず）が接続されており、通路１９の途中にパージ制御弁２０が配設されている。パージ制御弁２０は、ＥＣＵ５に接続されており、ＥＣＵ５によりその開閉が制御される。パージ制御弁２０は、エンジン１の所定運転状態において開弁され、キャニスタに貯蔵された蒸発燃料を吸気管２に供給する。
【００１８】
ＥＣＵ５は、各種センサからの入力信号波形を整形し、電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する等の機能を有する入力回路５ａ、中央演算処理回路（以下「ＣＰＵ」という）５ｂ、ＣＰＵ５ｂで実行される各種演算プログラム及び演算結果等を記憶する記憶手段５ｃ、前記燃料噴射弁６に駆動信号を供給する出力回路５ｄ等から構成される。
【００１９】
ＣＰＵ５ｂは、上述の各種エンジンパラメータ信号に基づいて、後述するように、空燃比フィードバック制御領域や空燃比フィードバック制御を行わない複数の特定運転領域（以下「オープンループ制御領域」という）の種々のエンジン運転状態を判別するとともに、該判別されたエンジン運転状態に応じて、次式（１）に基づき、前記ＴＤＣ信号パルスに同期する燃料噴射弁６の燃料噴射時間ＴＯＵＴを演算する。
【００２０】
ＴＯＵＴ＝Ｔｉ×ＫＯ２×ＫＥＶＡＰ×Ｋ１＋Ｋ２…（１）
ここに、Ｔｉは燃料噴射弁５の基本燃料噴射時間であり、エンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに応じて決定される。
【００２１】
ＫＯ２は空燃比補正係数であり、空燃比フィードバック制御時、Ｏ2センサ１４，１５により検出された排気ガス中の酸素濃度に応じて求められ、さらにオープンループ制御領域では各運転領域に応じた値に設定される。
【００２２】
ＫＥＶＡＰは、パージによる蒸発燃料の影響を補償するためのエバポ補正係数であり、パージを行わないときは１．０に設定され、パージ実行時は０〜１．０の間の値に設定される。このエバポ補正係数ＫＥＶＡＰの値が小さいほど、パージの影響が大きいことを示す。
【００２３】
Ｋ１及びＫ２は夫々各種エンジンパラメータ信号に応じて演算される他の補正係数および補正変数であり、エンジン運転状態に応じた燃費特性、エンジン加速特性等の諸特性の最適化が図れるような所定値に決定される。
【００２４】
ＣＰＵ５ｂは上述のようにして求めた燃料噴射時間ＴＯＵＴに基づいて燃料噴射弁６を開弁させる駆動信号を出力回路５ｄを介して燃料噴射弁６に供給するとともに、エンジン運転状態に応じたパージ制御弁２０の開閉制御を行う。
【００２５】
次に、触媒１６の劣化検出（劣化モニタ）について説明する。
【００２６】
この触媒１６の劣化モニタを行う場合のフィードバック制御は下流側Ｏ2センサ１５の出力ＳＶＯ２のみに基づいて行われる。そして出力ＳＶＯ２が所定の基準電圧ＳＶＲＥＦに対してリーン側からリッチ側へ反転した時点から所定時間ＴＲＤ経過後の時点で、補正係数ＫＯ２を理論空燃比に対してリッチ側からリーン側にスキップさせるためのリーン側スペシャルＰ項ＰＬＳＰを発生させ、この時点から出力ＳＶＯ２がリッチ側からリーン側へ反転する時点までの遅れ時間ＴＬが検出される。また、出力ＳＶＯ２が基準値ＳＶＲＥＦに対してリッチ側からリーン側へ反転した時点から所定時間ＴＬＤ経過後の時点で、補正係数ＫＯ２を理論空燃比に対してリーン側からリッチ側にスキップさせるためのリッチ側スペシャルＰ項ＰＲＳＰを発生させ、この時点から出力ＳＶＯ２がリーン側からリッチ側へ反転する時点までの遅れ時間ＴＲが検出される。そして、これらの遅れ時間ＴＬ，ＴＲを劣化判定パラメータとして用いて触媒１６の劣化が判定される。
【００２７】
次に図２及び図３のフローチャートに基づいて触媒劣化モニタ処理の全体構成を説明する。本処理はタイマにより所定時間（例えば１０ｍｓｅｃ）毎にＣＰＵ５ｂで実行される。
【００２８】
先ずステップＳ１では、図４の処理で設定され、劣化モニタ許可を「１」で示す劣化モニタ許可フラグＦＣＡＴＣＨＫが「１」か否かを判別し、ＦＣＡＴＣＨＫ＝１であるときは、吸気管内絶対圧ＰＢＡの変化量ＤＰＢＡ４（＝今回値ＰＢＡ（ｎ）−前回値ＰＢＡ（ｎ−１））の絶対値が、所定変化量ＤＰＢＣＡＴＭより小さいか否かを判別し（ステップＳ２）、｜ＤＰＢＡ４｜＜ＤＰＢＣＡＴＭであって吸気管内絶対圧ＰＢＡの変動が小さいときは、単位時間当たりの燃料供給量ＴＦの平均値ＴＦＡＶＥが所定上限値ＴＦＭＡＸより大きいか否か、すなわち高回転高負荷運転状態か否かを判別する（ステップＳ３）。
【００２９】
ここで、単位時間当たりの燃料供給量ＴＦ及びその平均値ＴＦＡＶＥは下記式により算出する。
【００３０】
ＴＦ＝ＴＯＵＴ×ＮＥ／Ａ
ＴＦＡＶＥ（ｎ）＝α×ＴＦ＋（１−α）×ＴＦＡＶＥ（ｎ−１）
Ａは定数（例えば２の１２乗）、αは０から１の間の値に設定されるなまし係数である。
【００３１】
ステップＳ１又はＳ２の答が否定（ＮＯ）のとき又はステップＳ３の答が肯定（ＹＥＳ）のとき、すなわち劣化モニタ条件不成立のとき、吸気管内絶対圧ＰＢＡの変動が大きいとき又は単位時間当たりの燃料供給量が大きい高回転高負荷運転状態のときは、劣化モニタを実行しない。すなわちステップＳ７に進み、下流側Ｏ２センサ１５の出力ＳＶＯ２の変化が小さいことを「１」で示すホールドフラグＦＳＶＯ２ＨＬＤを「０」に設定し、さらに強制パージカット（パージ制御弁２０の閉弁）すべきことを「１」で示すパージカットフラグＦＣＡＴＰＧを「０」とし（ステップＳ９）、ダウンカウントタイマｔｍＣＡＴＭに所定のモニタ開始遅延時間ＴＣＡＴＭをセットしてスタートさせ（ステップＳ１２）、劣化モニタ実行中であることを「１」で示すモニタ実行フラグＦＣＡＴＭを「０」に設定して（図３，ステップＳ１４）、本処理を終了する。なお、ホールドフラグＦＳＶＯ２ＨＬＤの設定は、後述する図６の処理で行われる。
【００３２】
ステップＳ３によりエンジンの単位時間当たりの燃料供給量が大きい高回転高負荷運転状態のときは劣化モニタを実行しないようにしたのは、高回転高負荷運転状態のときは、触媒１６の酸素ストレージ時間が短くなり、劣化した触媒と同様の酸素ストレージ特性を示すので、正常な触媒を劣化したと誤判定するおそれがあるからである。
【００３３】
前記ステップＳ３の答が肯定（ＹＥＳ）、すなわちＴＦＡＶＥ＜ＴＦＭＡＸであって、高回転高負荷運転状態でないときは、モニタ実行フラグＦＣＡＴＭが「１」であるか否かを判別する（ステップＳ４）。最初はＦＣＡＴＭ＝０であるので、直ちにステップＳ６に進み、後述するステップＳ１６でＦＣＡＴＭ＝１とされると、モニタ実行中の吸気管内絶対圧ＰＢＡの最大値ＰＢＣＴＭＡＸと最小値ＰＢＣＴＭＩＮの差が、所定値ＤＰＢＣＡＴＧより小さいか否かを判別し（ステップＳ５）、ＰＢＣＴＭＡＸ−ＰＢＣＴＭＩＮ＜ＤＰＢＣＡＴＧであるときは、ステップＳ６に進む。
【００３４】
なお、最大値ＰＢＣＭＡＸ及び最小値ＰＢＣＭＩＮは、劣化モニタを実行していないときに、それぞれ００（１６進）及びＦＦ（１６進）に初期設定をしておき（図５、ステップＳ４９）、ＴＤＣ信号パルスの発生毎に実行される処理で、劣化モニタ実行中において（ＦＣＡＴＭ＝１のとき）、検出した吸気管内絶対圧ＰＢＡが最大値ＰＢＣＭＡＸより高いときは、そのときのＰＢＡ値で最大値ＰＢＣＭＡＸを更新する一方、検出した吸気管内絶対圧ＰＢＡが最小値ＰＢＣＭＩＮより低いときは、そのときのＰＢＡ値で最小値ＰＢＣＭＩＮを更新することにより算出する。
【００３５】
ステップＳ４、Ｓ５により劣化モニタ実行中における吸気管内絶対圧ＰＢＡの変動が大きいときは劣化モニタを実行しないようにしたので、負荷変動が大きいときに下流側Ｏ２センサ出力ＳＶＯ２の反転周期が不安定になることに起因する誤判定を防止することができる。
【００３６】
ステップＳ６では、ホールドフラグＦＳＶＯ２ＨＬＤが「０」か否かを判別する。最初はＦＳＶＯ２ＨＬＤ＝０であるので、ステップＳ８に進み、後述するステップＳ１７の処理でＦＳＶＯ２ＨＬＤ＝１とされたとき、すなわち下流側Ｏ２センサ出力ＳＶＯ２の変化が小さいと判定されたときは、前記ステップＳ７に進み、劣化モニタは実行しない。
【００３７】
ステップＳ６により下流側Ｏ２センサ出力ＳＶＯ２の変化が小さいときは劣化モニタを実行しないようにしたので、特に触媒が新品である場合に、出力ＳＶＯ２が基準値ＳＶＲＥＦ近傍に停滞し、正確な酸素ストレージ時間の検出ができないことに起因する誤判定を防止することができる。
【００３８】
ステップＳ８では、空燃比フィードバック制御領域であることを「１」で示すフィードバック制御フラグＦＯ２ＦＢが「１」か否かを判別し、ＦＯ２ＦＢ＝０であるときは、前記ステップＳ９に進み、ＦＯ２ＦＢ＝１であるときは、パージカットフラグＦＣＡＴＦＧを「１」に設定して強制パージカットとする（ステップＳ１０）。次いで、エバポ補正係数ＫＥＶＡＰが１．０であるか否かを判別し（ステップＳ１１）、ＫＥＶＡＰ＜１．０であるときは、パージの影響が大きく正確な劣化判定ができないので、前記ステップＳ１２に進み、劣化モニタは行わない。
【００３９】
これにより、パージの影響により下流側Ｏ２センサ出力ＳＶＯ２がリッチ側に偏り、触媒の酸素ストレージ能力を正確に判断できないことに起因する誤判定を防止することができる。
【００４０】
一方、ＫＥＶＡＰ＝１．０であるときは、前記ステップＳ１２でスタートしたタイマｔｍＣＡＴＭの値が０か否かを判別する。最初はｔｍＣＡＴＭ＞０であるので、前記ステップＳ１４に進み、所定遅延時間ＴＣＡＴＭ経過してｔｍＣＡＴＭ＝０となると、図３のステップＳ１５以下のステップで劣化判定を行う。
【００４１】
先ずステップＳ１５では、下流側Ｏ２センサ出力ＳＶＯ２に基づく劣化モニタ中の空燃比補正係数ＣＡＴＫＯ２の算出処理（図５に詳細を示す）を実行する。この補正係数ＣＡＴＫＯ２は、前記式（１）のＫＯ２に代えて燃料噴射時間ＴＯＵＴの算出に使用する。
【００４２】
次いで、モニタ実行フラグＦＣＡＴＭを「１」に設定し（ステップＳ１６）、遅れ時間ＴＬ，ＴＲの算出処理（図６）を実行し（ステップＳ１７）、遅れ時間ＴＲの算出回数を示すリッチ側ＴＲカウンタＮＴＲの値が所定値ＮＴＲＣより小さいか否かを判別する（ステップＳ１８）。最初はＮＴＲ＜ＮＴＲＣであるので、ステップＳ１９の劣化判定処理Ａ（図８）を実行し、次いで触媒１６が正常である旨の判定が確定したことを「１」で示す正常判定フラグＦＯＫ６７が「１」であるか否かを判別する（ステップＳ２０）。そして、ＦＯＫ６７＝０であって正常判定が確定していないときは、直ちに本処理を終了し、ＦＯＫ６７＝１であって正常判定が確定したときは、劣化モニタフラグＦＣＡＴＭを「０」に設定して（ステップＳ２２）、本処理を終了する。
【００４３】
ステップＳ１８でＮＴＲ＝ＮＴＲＣとなると、ステップＳ２１に進んで劣化判定処理Ｂ（図９）を実行し、前記ステップＳ２２に進む。
【００４４】
図４は劣化モニタ許可フラグＦＣＡＴＣＨＫの設定処理のフローチャートであり、本処理は他の優先度の高い処理が実行されていないバックグラウンドにおいて実行される。
【００４５】
先ずステップＳ３１では、吸気温ＴＡが所定上下限値ＴＡＣＡＴＨ（例えば１００℃）、ＴＡＣＡＴＬ（例えば−０．２℃）の範囲内にあるか否か、エンジン水温ＴＷが所定上下限値ＴＷＣＡＴＨ（例えば１００℃）、ＴＷＣＡＴＬ（例えば８０℃）の範囲内にあるか否か、車速Ｖが所定上下限値ＶＣＡＴＨ（例えば８０ｋｍ／ｈ）、ＶＣＡＴＬ（例えば３２ｋｍ／ｈ）の範囲内にあるか否か、エンジン回転数ＮＥが所定上下限値ＮＥＣＡＴＨ（例えば３２００ｒｐｍ）、ＮＥＣＡＴＬ（例えば２８００ｒｐｍ）の範囲内にあるか否か、及び吸気管内絶対圧ＰＢＡが所定上下限値ＰＢＣＡＴＨ（例えば５１０ｍｍＨｇ）、ＰＢＣＡＴＬ（例えば４１０ｍｍＨｇ）の範囲内にあるか否かを判別し、これらの運転パラメータの何れかが所定上下限値の範囲外のときは、劣化モニタ実行許可フラグＦＣＡＴＣＨＫを「０」に設定し（ステップＳ３７）、劣化モニタ実行不可とする。
【００４６】
一方、判定した運転パラメータがすべて所定上下限値の範囲内にあるときは、さらに触媒１６の温度ＴＣＡＴが所定範囲（例えば３５０℃〜８００℃）内にあることを「１」で示す触媒温度フラグＦＴＣＡＴが「１」か否かを判別する（ステップＳ３２）。このフラグＦＴＣＡＴの設定は、触媒温度センサ１３の検出値ＴＣＡＴを用いて行うが、エンジン運転状態に応じて推定した温度値を用いてもよい。そして、ＦＴＣＡＴ＝０であって触媒温度ＴＣＡＴが所定範囲外のときは、前記ステップＳ３７に進み、劣化モニタ実行不可とする。これにより、触媒温度が低いことに起因して酸素ストレージ能力が低下し正常な触媒を劣化していると誤判定することを防止することができる。
【００４７】
ステップＳ３２でＦＴＣＡＴ＝１であって、触媒温度ＴＣＡＴが所定範囲内にあるときは、エバポ補正係数ＫＥＶＡＰの学習値ＫＥＶＡＰＲＥＦが所定値ＫＥＶＡＰＣＡＴ（例えば０．７８１）より大きいか否かを判別する（ステップＳ３３）。
【００４８】
学習値ＫＥＶＡＰＲＥＦは、エンジンがアイドル状態にあるときに算出するアイドル用学習値ＫＥＶＡＰＲＥＦ１と、アイドル状態以外にあるとき算出するオフアイドル用学習値ＫＥＶＡＰＲＥＦ０とがあり、これらの学習値は対応するエンジン運転状態において、下記式（２）により算出する。
【００４９】
ＫＥＶＡＰＲＥＦｉ（ｎ）＝ＣＥＶＲＥＦｉ×ＫＥＶＡＰ／Ｂ＋（Ｂ−ＣＥＶＲＥＦｉ）×ＫＥＶＡＰＲＥＦｉ（ｎ−１）…（２）
ここで、ｉ＝０又は１、Ｂは例えば２の１６乗に設定される定数、ＣＥＶＲＥＦｉは１〜Ｂの間の値に設定されるなまし係数である。
【００５０】
ステップＳ３３でＫＥＶＡＰＲＥＦ≦ＫＥＶＡＰＣＡＴが成立し、パージの影響が大きいときには、前記ステップＳ３７に進み、劣化モニタ実行不可とする。これにより、パージの影響で下流側Ｏ２センサ出力ＳＶＯ２がリッチ側に偏り、触媒の酸素ストレージ能力を正確の判断できないことに起因する誤判定を防止することができる。
【００５１】
ステップＳ３３でＫＥＶＡＰＲＥＦ＞ＫＥＶＡＰＣＡＴが成立し、パージの影響が小さいときは、当該車両がクルーズ状態にあることを「１」で示すクルーズフラグＦＣＲＳが「１」か否かを判別する（ステップＳ３４）。クルーズフラグＦＣＲＳは、例えば車速Ｖの変動が０．８ｋｍ／ｓｅｃ以下の状態が所定時間（例えば２秒）継続したとき「１」に設定される。
【００５２】
ステップＳ３４で車両がクルーズ状態にないときは、前記ステップＳ３７に進み、劣化モニタ実行不可とする。これにより、大きな負荷変動による下流側Ｏ２センサ出力ＳＶＯ２の不安定化に起因する誤判定を防止することができる。
【００５３】
また、ステップＳ３４の答が肯定（ＹＥＳ）、すなわち車両がクルーズ状態にあるときは、空燃比補正係数ＫＯ２が所定上限値又は下限値に所定時間以上貼り付いていること（ＫＯ２リミット貼り付き状態）を「１」で示す貼り付きフラグＦＫＯ２ＬＭＴが「０」か否かを判別し（ステップＳ３５）、ＦＫＯ２ＬＭＴ＝１であってＫＯ２リミット貼り付き状態のときは、前記ステップＳ３７に進み、劣化モニタ実行不可とする。
【００５４】
そして、ステップＳ３１〜Ｓ３５の答がすべて肯定（ＹＥＳ）のときは、劣化モニタ実行許可フラグＦＣＡＴＣＨＫを「１」に設定して（ステップＳ３６）、本処理を終了する。
【００５５】
図５は、図３のステップＳ１５におけるＣＡＴＫＯ２算出処理のフローチャートである。また、図７は下流側Ｏ２センサ出力ＳＶＯ２、各種フラグ等の推移を示す図であり、この図も併せて参照する。
【００５６】
先ずステップＳ４１では、下流側Ｏ２センサ出力ＳＶＯ２が基準値ＳＶＲＥＦより低いか否かを判別し、ＳＶＯ２＜ＳＶＲＥＦであるときは、第１リッチフラグＦＡＦＲ１を「０」に、またＳＶＯ２≧ＳＶＲＥＦであるときは、同フラグＦＡＦＲ１を「１」に設定する（ステップＳ４２、Ｓ４３）。続くステップＳ４４では、第１リッチフラグＦＡＦＲ１が反転したか否かを判別し、反転していなければ直ちにステップＳ４８に進む一方、反転したときは、第１リッチフラグＦＡＦＲ１が「０」か否かを判別する（ステップＳ４５）。そして、ＦＡＦＲ１＝０であって下流側Ｏ２センサ出力ＳＶＯ２がリッチ側からリーン側へ反転したときは（図７、時刻ｔ１，ｔ５，ｔ９）、ダウンカウントディレイタイマＴＤＬＹＲにリーン側所定時間ＴＬＤをセットしてスタートさせ（ステップＳ４６）、逆にＦＡＦＲ１＝１であってリーン側からリッチ側へ反転したときは（図７、ｔ３，ｔ７，ｔ１１）、リッチ側所定時間ＴＲＤをセットしてスタートさせ（ステップＳ４７）、ステップＳ４８に進む。
【００５７】
ステップＳ４８では、モニタ実行フラグＦＣＡＴＭが「１」か否かを判別する。モニタ実行開始当初はＦＣＡＴＭ＝０である（ＦＣＡＴＭを「１」に設定するのはＣＡＴＫＯ２算出処理の実行後である）ため、ステップＳ４９に進んで各種タイマ、カウンタ、フラグ等の初期設定を行う（ステップＳ４９）。すなわち、ディレイタイマＴＤＬＹＲ、遅れ時間ＴＬ，ＴＲ計測用のアップカウントタイマＴＳＴＲＧ、遅れ時間ＴＬ，ＴＲの計測回数をカウントするカウンタＮＴＬ，ＮＴＲ、及び遅れ時間の積算値ＴＬＳＵＭ，ＴＲＳＵＭをすべて「０」に設定し、第２リッチフラグＦＡＦＲ２を第１リッチフラグＦＡＦＲ１と同一とし、劣化モニタ時用空燃比補正係数ＣＡＴＫＯ２を空燃比補正係数ＫＯ２に設定し、吸気管内絶対圧ＰＢＡの最大値ＰＢＣＴＭＡＸを００（１６進）に、また最小値ＰＢＣＴＭＩＮをＦＦ（１６進）にそれぞれ設定する。
【００５８】
続くステップＳ５８では、第２リッチフラグＦＡＦＲ２が「１」か否かを判別し、ＦＡＦＲ２＝０であるときは（図７、ｔ２〜ｔ４，ｔ６〜ｔ８）、補正係数ＣＡＴＫＯ２の直前値にスペシャルＩ項ＩＬＳＰを加算する積分制御行い（ステップＳ５９）、ＦＡＦＲ２＝１であるときは（図７、ｔ４〜ｔ６，ｔ８〜ｔ１０）、補正係数ＣＡＴＫＯ２の直前値からスペシャルＩ項ＩＬＳＰを減算する積分制御を行い（ステップＳ６０）、本処理を終了する。
【００５９】
本処理の次回実行時にステップＳ４８に至ると、図３のステップＳ１６でＦＣＡＴＭ＝１とされているので、ステップＳ５０に進み、第１リッチフラグＦＡＦＲ１と第２リッチフラグＦＡＦＲ２とが等しいか否かを判別する。そして、ＦＡＦＲ１＝ＦＡＦＲ２であるときは（図７、ｔ２〜ｔ３，ｔ４〜ｔ５，ｔ６〜ｔ７，ｔ８〜ｔ９，ｔ１０〜ｔ１１）、前記ステップＳ５８に進み、ＦＡＦＲ１≠ＦＡＦＲ２であるときは（図７、ｔ１〜ｔ２，ｔ３〜ｔ４，ｔ５〜ｔ６，ｔ７〜ｔ８，ｔ９〜ｔ１０）、第１リッチフラグＦＡＦＲ１が「１」であるか否かを判別する（ステップＳ５１）。
【００６０】
ステップＳ５１でＦＡＦＲ１＝０であるときは（図７、ｔ１〜ｔ２，ｔ５〜ｔ６，ｔ９〜ｔ１０）、ディレイタイマＴＤＬＹＲの値が「０」か否かを判別し（ステップＳ５２）、ＴＤＬＹＲ＞０であるときは前記ステップＳ５８に進む。そして、ＴＤＬＹＲ＝０となると（図７、ｔ２，ｔ６，ｔ１０）、第２リッチフラグＦＡＦＲ２を第１リッチフラグＦＡＦＲ１と等しくし（ステップＳ５４）、補正係数ＣＡＴＫＯ２の直前値にスペシャルＰ項ＰＲＳＰを加算して（ステップＳ５５）、本処理を終了する。
【００６１】
ステップＳ５１でＦＡＦＲ１＝１であるときは（図７、ｔ３〜ｔ４，ｔ７〜ｔ８）、ディレイタイマＴＤＬＹＲの値が「０」か否かを判別し（ステップＳ５６）、ＴＤＬＹＲ＞０であるときは前記ステップＳ５８に進む。そして、ＴＤＬＹＲ＝０となると（図７、ｔ４，ｔ８）、第２リッチフラグＦＡＦＲ２を第１リッチフラグＦＡＦＲ１と等しくし（ステップＳ５６）、補正係数ＣＡＴＫＯ２の直前値からスペシャルＰ項ＰＲＳＰを減算して（ステップＳ５７）、本処理を終了する。
【００６２】
以上のように図５の処理によれば、下流側Ｏ２センサ出力ＳＶＯ２の反転時点（ｔ１，ｔ３，ｔ５，ｔ７，ｔ９）から所定時間（ＴＲＤ又はＴＬＤ）遅延して比例制御が実行され（ｔ２，ｔ４，ｔ６，ｔ８，ｔ１０）、第２リッチフラグＦＡＦＲ２＝０の期間中はＣＡＴＫＯ２値の増加方向の積分制御が実行され、ＦＡＦＲ２＝１の期間中はＣＡＴＫＯ２値の減少方向の積分制御が実行される。
【００６３】
図６は、図３のステップＳ１７におけるＴＬ，ＴＲ算出処理のフローチャートである。なお、図７も併せて参照する。
【００６４】
図６において先ずステップＳ７１では、第１リッチフラグＦＡＦＲ１（図７（ｂ））が反転したか否かを判別し、反転したときは、遅れ時間計測期間であることを「１」で示す反転タイマフラグＦＴＳＴＲＧ（図７（ｅ））が「１」か否かを判別する（ステップＳ７２）。そしてステップＳ７１又はＳ７２の答が否定（ＮＯ）のとき、すなわち第１リッチフラグＦＡＦＲ１が反転していないとき又は反転タイマフラグＦＴＳＴＲＧが「０」であるときは、ステップＳ８６に進み、ディレイタイマＴＤＬＹＲ（図７（ｃ））の値が０か否かを判別し、ＴＤＬＹＲ＞０であるときは、遅れ時間計測用アップカウントタイマＴＳＴＲＧ（図７（ｆ））を「０」のセットし（ステップＳ８７）、下流側Ｏ２センサ出力ＳＶＯ２の変化が所定以上であることを「１」で示す出力範囲フラグＦＳＶＯ２ＣＡＴを「０」に設定して（ステップＳ８８）、ステップＳ９２に進む。
【００６５】
ステップＳ８６で、ＴＤＬＹＲ＝０となるとステップＳ８９に進み、下流側Ｏ２センサ出力ＳＶＯ２が所定上側レベルＳＶＯ２ＣＡＴＨ（例えば０．５８６Ｖ）より低いか否かを判別し、ＳＶＯ２＜ＳＶＯ２ＣＡＴＨであるときは、さらにＳＶＯ２値が所定下側レベルＳＶＯ２ＣＡＴＬ（例えば０．４３０Ｖ）より高いか否かを判別する（ステップＳ９０）。その結果、ＳＶＯ２ＣＡＴＬ＜ＳＶＯ２＜ＳＶＯ２ＣＡＴＨであるときは直ちに、またＳＶＯ２≧ＳＶＯ２ＣＡＴＨ又はＳＶＯ２≦ＳＶＯ２ＣＡＴＬであるときは、出力範囲フラグＦＳＶＯ２ＣＡＴを「１」に設定して（ステップＳ９１）、ステップＳ９２に進む。すなわち、出力範囲フラグＦＳＶＯ２ＣＡＴは、第１リッチフラグＦＡＦＲ１（下流側Ｏ２センサ出力ＳＶＯ２）の反転から所定時間（ＴＬＤ又はＴＲＤ）経過後における、ＳＶＯ２値が基準値ＳＶＲＥＦ近傍にあるとき「０」に維持され、下流側Ｏ２センサ出力ＳＶＯ２の変化が小さいことを示す。
【００６６】
ステップＳ９２では、第２リッチフラグＦＡＦＲ２（図７（ｄ））が反転したか否かを判別し、反転していなければ直ちに、また反転したときは反転タイマフラグＦＴＳＴＲＧを「１」に設定して（ステップＳ９３）、本処理を終了する。
【００６７】
一方ステップＳ７１、Ｓ７２の答が共に肯定（ＹＥＳ）、すなわち第１リッチフラグＦＡＦＲ１が反転し且つ反転タイマフラグＦＴＳＴＲＧが「１」であるときは、ステップＳ７３に進み、反転タイマフラグＦＴＳＴＲＧを「０」に戻し、出力範囲フラグＦＳＶＯ２ＣＡＴが「１」か否かを判別する（ステップＳ７４）。そして、ＦＳＶＯ２ＣＡＴ＝０であって下流側Ｏ２センサ出力ＳＶＯ２の変化が小さいときは、ホールドフラグＦＳＶＯ２ＨＬＤを「１」に設定し（ステップＳ７５）、またＦＳＶＯ２ＣＡＴ＝１であるときは、該フラグＦＳＶＯ２ＣＡＴを「０」に戻して（ステップＳ７６）、ステップＳ７７に進む。このホールドフラグＦＳＶＯ２ＨＬＤは、前述したように図２のステップＳ６で参照される。
【００６８】
ステップＳ７７では、第１リッチフラグＦＡＦＲ１が「１」か否かを判別し、ＦＡＦＲ１＝０であって下流側Ｏ２センサ出力ＳＶＯ２が基準値ＳＶＲＥＦに対してリーン側にあるときは（図７、ｔ１，ｔ５，ｔ９）、下記式によりリーン側積算値ＴＬＳＵＭを算出する（ステップＳ７８）。ここで加算されるタイマＴＳＴＲＧの値が、図７の遅れ時間ＴＬに相当する。
【００６９】
ＴＬＳＵＭ＝ＴＬＳＵＭ＋ＴＳＴＲＧ
次いでリーン側カウンタＮＴＬを「１」だけインクリメントし（ステップＳ７９）、アップカウントタイマＴＳＴＲＧの値を「０」に戻して（ステップＳ８０）、前記ステップＳ９２に進む。
【００７０】
ステップＳ７７でＦＡＦＲ１＝１であって下流側Ｏ２センサ出力ＳＶＯ２が基準値ＳＶＲＥＦに対してリッチ側にあるときは（図７、ｔ３，ｔ７，ｔ１１）、下記式によりリッチ側積算値ＴＲＳＵＭ（図７（ｇ））を算出する（ステップＳ８１）。ここで加算されるタイマＴＳＴＲＧの値が、図７の遅れ時間ＴＲに相当する。
【００７１】
ＴＲＳＵＭ＝ＴＲＳＵＭ＋ＴＳＴＲＧ
次いでリッチ側カウンタＮＴＲ（図７（ｈ））を「１」だけインクリメントし（ステップＳ８２）、アップカウントタイマＴＳＴＲＧの値を「０」に戻して（ステップＳ８３）、リーン側カウンタＮＴＬの値が「０」か否かを判別する（ステップＳ８４）。そして、ＮＴＬ＞０であるときは直ちに、またＮＴＬ＝０であって劣化モニタ開始直後であるときはリッチ側積算値ＴＲＳＵＭ及びリッチ側カウンタＮＴＲを「０」に戻して（ステップＳ８５）、前記ステップＳ９２に進む。
【００７２】
ステップＳ８４、Ｓ８５は、遅れ時間の計測はＴＬの方から開始するために、最初にＴＲの計測を行ったときは、リッチ側積算値ＴＲＳＵＭ及びカウンタＮＴＲを「０」に戻すために設けたものである。
【００７３】
以上のように図６の処理によれば、下流側Ｏ２センサ出力ＳＶＯ２が反転する毎に遅れ時間ＴＬ又はＴＲが積算され、積算値ＴＬＳＵＭ，ＴＲＳＵＭが算出される。なお、図７ではリーン側積算値ＴＬＳＵＭ及びリーン側カウンタＮＴＬの推移は図示していないが、時刻ｔ１，ｔ５，ｔ９においてリッチ側積算値ＴＲＳＵＭ及びリッチ側カウンタＮＴＲと同様にインクリメントされる。
【００７４】
図８は図３のステップＳ１９における劣化判定処理Ａのフローチャートであり、アップカウントタイマＴＳＴＲＧの値が所定の正常判定基準値ＴＳＴＲＧＯＫより大きいか否かを判別し（ステップＳ１０１）、ＴＳＴＲＧ≦ＴＳＴＲＧＯＫであるときは直ちに、またＴＳＴＲＧ＞ＴＳＴＲＧＯＫであるときは、触媒１６は正常と判定し、正常判定フラグＦＯＫ６７を「１」に設定して（ステップＳ１０２）、本処理を終了する。
【００７５】
この処理により、遅れ時間が非常に長いときは直ちに正常と判定され、判定に要する時間を短縮することができる。
【００７６】
図９は図３のステップＳ２１における劣化判定処理Ｂのフローチャートである。
【００７７】
先ずステップＳ１１１では、下記式により判定時間ＴＣＨＫを算出する。下記式から明らかなように、判定時間ＴＣＨＫは、遅れ時間ＴＬ，ＴＲの平均値である。
【００７８】
【数１】
0003719535.tif 000002
次いで、判定時間ＴＣＨＫが劣化判定閾値ＴＣＨＫＬＭＴより大きいか否かを判別する（ステップＳ１１２）。ここで、劣化判定閾値ＴＣＨＫＬＭＴは、前記単位時間当たりの燃料噴射量ＴＦの平均値ＴＦＡＶＥに応じて、図１０に示すＴＣＨＫＬＭＴテーブルを検索して決定する。ＴＣＨＫＬＭＴテーブルは、平均値ＴＦＡＶＥが増加するほど劣化判定閾値ＴＣＨＫＬＭＴが減少するように設定されている。
【００７９】
ステップＳ１１２の答が肯定（ＹＥＳ）のときは、正常判定フラグＦＯＫ６７を「１」に設定し（ステップＳ１１３）、否定（ＮＯ）のときは「０」に設定して（ステップＳ１１４）、本処理を終了する。
【００８０】
図１１は、エバポ補正係数ＫＥＶＡＰ算出処理のメインルーチンのフローチャートであり、本処理はＴＤＣ信号パルスの発生毎にこれと同期して実行される。
【００８１】
先ずステップＳ１２１では、エンジン１の始動モードであるか否かを判別し、始動モードのときは、エバポ補正係数ＫＥＶＡＰの値を１．０とし（ステップＳ１２２）、エバポ補正係数の学習値ＫＥＶＡＰＲＥＦを１．０として（ステップＳ１２３）、本処理を終了する。
【００８２】
始動モードでないときは、パージ可能であることを「１」で示すパージ許可フラグＦＦＲが「１」か否かを判別し（ステップＳ１２４）、ＦＦＲ＝１であるときは、図示しない処理で算出されるパージ制御弁２０のパージデューティ量ＤＦＲ（この値が大きいほど、パージ量が増大する）が所定量ＤＦＲＥＶより大きいか否かを判別し（ステップＳ１２５）、ＤＦＲ＞ＤＦＲＥＶであるときは、更にエンジン回転数ＮＥが所定回転数ＮＨＯＰより低いか否かを判別する（ステップＳ１２６）。そして、ステップＳ１２４〜Ｓ１２６の何れかの答が否定（ＮＯ）のとき、すなわちパージが許可されていないとき、パージデュ−ティ量ＤＦＲが所定以下のとき又はエンジン回転数ＮＥが所定以上のときは、ステップＳ１３２に進み、後述する図１２の処理で使用するフラグＦＫＯ２ＥＶＨ及びＦＫＯ２ＥＶＬをともに「０」とする。
【００８３】
次いでパージオン移行タイマｔｍＥＶＤＥＣに所定時間（例えば０．５秒）をセットしてこれをスタートさせ（ステップＳ１３３）、パージオフ移行タイマｔｍＥＶＡＤＤの値が０か否かを判別する（ステップＳ１３４）。パージオフ（パージカット）へ移行した直後はｔｍＥＶＡＤＤ＞０であるので、ステップＳ１３６に進み、エバポ補正係数ＫＥＶＡＰを前回値保持として本処理を終了し、所定時間経過してｔｍＥＶＡＤＤ＝０となると、エバポ補正係数ＫＥＶＡＰの前回値ＫＥＶＡＰ（ｎ−１）に所定加算項ＤＫＥＶＡＤＤを加算して、今回値ＫＥＶＡＰ（ｎ）を算出して（ステップＳ１３５）、本処理を終了する。
【００８４】
ステップＳ１３５により、エバポ補正係数ＫＥＶＡＰはパージ実行中の小さな値から１．０に向かって徐々に増加する。
【００８５】
前記ステップＳ１２６の答が肯定（ＹＥＳ）のときは、ステップＳ１２７に進み、エバポ補正係数ＫＥＶＡＰが所定値ＫＥＶＡＤＤより小さいか否かを判別する。その結果ＫＥＶＡＰ＜ＫＥＶＡＤＤであって、パージされる蒸発燃料量が多くパージの影響が大きいときは、ステップＳ１２９に進み、パージオフ移行タイマｔｍＥＶＡＤＤに所定時間（例えば１．０秒）をセットしてこれをスタートさせ、ステップＳ１３０に進む。また、ＫＥＶＡＰ≧ＫＥＶＡＤＤであって、パージの影響が小さいときは、ステップＳ１２８に進みタイマｔｍＥＶＡＤＤを０としステップＳ１３０に進む。従って、パージの影響が小さいときは、前記ステップＳ１３６を経由することなく直ちにステップＳ１３５が実行されることになる。
【００８６】
ステップＳ１３０では、後述する図１２，１３のＫＥＶＡＰ算出処理を実行し、更にエバポ補正係数ＫＥＶＡＰの学習値ＫＥＶＡＰＲＥＦを算出して（ステップＳ１３１）、本処理を終了する。なお、学習値ＫＥＶＡＰＲＥＦの算出は前記式（２）により行う。
【００８７】
図１２及び図１３は、図１１のステップＳ１３０におけるＫＥＶＡＰ算出処理のフローチャートである。
【００８８】
まずステップＳ１４１では、排気ガス中の酸素濃度に応じて設定される空燃比補正係数ＫＯ２の、パージの影響を考慮した上側閾値ＫＯ２ＥＶＨ及び下側閾値ＫＯ２ＥＶＬを次式により算出する。
【００８９】
ＫＯ２ＥＶＨ＝ＫＲＥＦ＋ＤＫＯ２ＥＶＨ
ＫＯ２ＥＶＬ＝ＫＲＥＦ−ＤＫＯ２ＥＶＬ
ここでＫＲＥＦは、空燃比補正係数ＫＯ２の学習値、ＤＫＯ２ＥＶＨは所定の加算項、ＤＫＯ２ＥＶＬは所定の減算項である。学習値ＫＲＥＦは空燃比フィードバック制御中における空燃比補正係数ＫＯ２の値に基づいて算出されるものであり、運転状態に応じて種々の値を有している。ただし、エバポ補正係数ＫＥＶＡＰが所定値ＫＥＶＡＰＬより小さいときは、パージの影響が大きいと判定し、学習値ＫＲＥＦの算出は禁止するようにしている。
【００９０】
続くステップＳ１４２で空燃比補正係数ＫＯ２の値が学習値ＫＲＥＦより大きいか否かを判別し、ＫＯ２＞ＫＲＥＦであるときはさらに空燃比補正係数ＫＯ２の値が上側閾値ＫＯ２ＥＶＨより小さいか否かを判別する（ステップＳ１４３）。その結果、空燃比補正係数ＫＯ２の値が上側閾値ＫＯ２ＥＶＨ以上であるときは上側フラグＦＫＯ２ＥＶＨを「１」とするとともに下側フラグＦＫＯ２ＥＶＬを「０」に設定してステップＳ１４８に進む。また、空燃比補正係数ＫＯ２が上側閾値ＫＯ２ＥＶＨより小さいときは、上側フラグＦＫＯ２ＦＨ及び下側フラグＦＫＯ２ＦＬを共に「０」に設定して（ステップＳ１４６）ステップＳ１４８に進む。
【００９１】
またステップＳ１４２において空燃比補正係数ＫＯ２の値が学習値ＫＲＥＦ以下のときは、ステップＳ１４４に進み、さらに下側閾値ＫＯ２ＥＶＬより大きいか否かを判別する。空燃比補正係数ＫＯ２が下側閾値ＫＯ２ＥＶＬ以下のときは、上側フラグＦＫＯ２ＥＶＨを「０」とするとともに下側フラグＦＫＯ２ＥＶＬを「１」として（ステップＳ１４７）ステップＳ１４８に進み、空燃比補正係数ＫＯ２の値が下側閾値ＫＯ２ＥＶＬより大きければ前記ステップＳ１４６に進む。
【００９２】
ステップＳ１４８では、下側フラグＦＫＯ２ＥＶＬが「１」か否かを判別し、ＦＫＯ２ＥＶＬ＝０であるときは、上側フラグＦＫＯ２ＥＶＨが「１」か否かを判別する（ステップＳ１４９）。そして、下側フラグＦＫＯ２ＥＶＬ及び上側フラグＦＫＯ２ＥＶＨがともに「０」のときは、ステップＳ１６３（図１３）に進み、エバポ補正係数ＫＥＶＡＰを前回値保持として本処理を終了する。すなわち空燃比補正係数ＫＯ２の値が、上下の閾値内にあるときはエバポ補正係数ＫＥＶＡＰ（ｎ）の値は従前の値に固定される。
【００９３】
また、ＦＫＯ２ＥＶＬ＝０でＦＫＯ２ＥＶＨ＝１であるときは、ステップＳ１６２に進み、空燃比補正係数ＫＯ２の今回値ＫＯ２（ｎ）が前回値ＫＯ２（ｎ−１）より大きいか否かを判別し、ＫＯ２（ｎ）＞ＫＯ２（ｎ−１）であって、空燃比補正係数ＫＯ２の値が増加し学習値ＫＲＥＦから離れる方向に変化しているときは、ステップＳ１６４（図１３）に進み、前回値ＫＥＶＡＰ（ｎ−１）に加算項ＤＫＥＶＡＰＰを加算して今回値ＫＥＶＡＰ（ｎ）とする。一方、ＫＯ２（ｎ）≦ＫＯ２（ｎ−１）であって空燃比補正係数ＫＯ２が減少しているときは、前記ステップＳ１６３に進みエバポ補正係数ＫＥＶＡＰを前回値保持とする。
【００９４】
また、ステップＳ１４８でＦＫＯ２ＥＶＬ＝１であるときは、スロットル弁開度θＴＨの変化量ＤＴＨ（＝θＴＨ（ｎ）−θＴＨ（ｎ−１））が負の所定値ＤＴＨＫＥＶより大きいか否かを判別し（ステップＳ１５０）、ＤＴＨ＞ＤＴＨＫＥＶであってエンジンの加速中又は減速中であって減速度が小さいときは、空燃比補正係数ＫＯ２の今回値ＫＯ２（ｎ）が前回値ＫＯ２（ｎ−１）より小さいか否かを判別する（ステップＳ１５１）。その結果、ＤＴＨ≦ＤＴＨＫＥＶであって減速度が大きいとき又はＫＯ２（ｎ）≧ＫＯ２（ｎ−１）であって空燃比補正係数ＫＯ２が増加しているときは、前記ステップＳ１６３に進んで前回値保持とする。
【００９５】
一方、ステップＳ１５１の答が肯定（ＹＥＳ）、すなわちＫＯ２（ｎ）＜ＫＯ２（ｎ−１）であって空燃比補正係数ＫＯ２が減少しているときは、初期パージ状態であることを「１」で示す初期フラグＦＦＲＡＤＤが「１」か否かを判別し（ステップＳ１５２）、パージ開始当初はＦＦＲＡＤＤ＝１であるので、ステップＳ１５３に進んで初期パージ状態終了後の時間を計測する（後述するステップＳ１５４で参照される）遅延タイマｔｍＤＲＫＤＥＣに所定時間をセットしてスタートさせ、図１１のステップＳ１３３でスタートしたパージオン移行タイマｔｍＥＶＤＥＣの値が「０」か否かを判別する（ステップＳ１５５）。
【００９６】
最初はｔｍＥＶＤＥＣ＞０であるので、ステップＳ１５６に進み、エバポ補正係数ＫＥＶＡＰを前回値保持とし、ｔｍＥＶＤＥＣ＝０となると、ステップＳ１５７で前回値ＫＥＶＡＰ（ｎ−１）から第１減算項ＤＫＥＶＤＥＣを減算することにより今回値ＫＥＶＡＰ（ｎ）を算出して、ステップＳ１５８に進む。
【００９７】
ステップＳ１５８では、学習値ＫＥＶＡＰＲＥＦから所定値ＤＫＥＶＬＭＲＦを減算して下限基準値ＫＥＶＬＭＲＥＦを算出し、ついでエバポ補正係数ＫＥＶＡＰの今回値ＫＥＶＡＰ（ｎ）がこの下限基準値ＫＥＶＬＭＲＥＦより大きいか否かを判別し（ステップＳ１５９）、ＫＥＶＡＰ（ｎ）≦ＫＥＶＬＭＲＥＦであるときは、今回値ＫＥＶＡＰ（ｎ）を該下限基準値ＫＥＶＬＭＲＥＦに設定して（ステップＳ１６０）本処理を終了する一方、ＫＥＶＡＰ（ｎ）＞ＫＥＶＬＭＲＥＦであるときは、直ちに本処理を終了する。
【００９８】
その後初期フラグＦＦＲＡＤＤが「０」となると、ステップＳ１５２からＳ１５４に進み、遅延タイマｔｍＤＲＫＤＥＣの値が「０」か否かを判別する。最初はｔｍＤＲＫＤＥＣ＞０であるので、前記ステップＳ１５５に進み、ｔｍＤＲＫＤＥＣ＝０となると、前回値ＫＥＶＡＰ（ｎ−１）から第２減算項ＤＫＥＶＡＰＭを減算して今回値ＫＥＶＡＰ（ｎ）を算出して（ステップＳ１６１）、本処理を終了する。
【００９９】
以上のように図１２，１３の処理によれば、空燃比補正係数ＫＯ２に応じて該補正係数ＫＯ２による補正を補うようにエバポ補正係数ＫＥＶＡＰの設定が行われる。
【０１００】
なお、上述した実施例では、触媒劣化判定パラメータとし遅れ時間ＴＬ，ＴＲを用いたが、これに代えて下流側Ｏ2センサ出力ＳＶＯ２の基準値ＳＶＲＥＦに対する反転時間（図６、（ＴＬＤ＋ＴＲ），（ＴＲＤ＋ＴＬ）を用いてもよい。
【０１０１】
【発明の効果】
以上詳述したように本発明によれば、触媒手段の下流側において検出された排気ガス中の酸素濃度に基づいて空燃比補正係数が求められ、該空燃比補正係数の増減に基づいて前記蒸発燃料の濃度が算出され、該蒸発燃料の濃度が濃いときは、触媒手段の劣化検出が禁止されるので、空燃比補正係数による補正を補うように蒸発燃料の濃度が算出され、吸気系にパージされる蒸発燃料の影響によって混合気の空燃比がリッチ側に偏ることに起因する、酸素濃度センサ出力に基づいた触媒劣化判定パラメータによる触媒劣化の誤検知を防止し、正確な劣化判定を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施の一形態にかかる内燃機関及びその制御装置の構成を示す図である。
【図２】触媒の劣化判定処理の全体構成を示すフローチャートである。
【図３】触媒の劣化判定処理の全体構成を示すフローチャートである。
【図４】劣化モニタ許可フラグ（ＦＣＡＴＣＨＫ）の設定を行う処理のフローチャートである。
【図５】劣化判定実行中の空燃比補正係数（ＣＡＴＫＯ２）を算出する処理のフローチャートである。
【図６】劣化判定実行中に反転時間を算出する処理のフローチャートである。
【図７】図５及び６の処理内容を説明するための図である。
【図８】図３の劣化判定処理Ｂのフローチャートである。
【図９】図３の劣化判定処理Ａのフローチャートである。
【図１０】図９の処理で使用するテーブルを示す図である。
【図１１】エバポ補正係数（ＫＥＶＡＰ）算出処理のメインルーチンのフローチャートである。
【図１２】エバポ補正係数（ＫＥＶＡＰ）算出処理のフローチャートである。
【図１３】エバポ補正係数（ＫＥＶＡＰ）算出処理のフローチャートである。
【符号の説明】
１  内燃機関
５  電子コントロールユニット
７  吸気管内絶対圧センサ
１５  下流側Ｏ２センサ
１６  三元触媒
２０  パージ制御弁
【図１】
0003719535.tif 000003
【図２】
0003719535.tif 000004
【図３】
0003719535.tif 000005
【図４】
0003719535.tif 000006
【図５】
0003719535.tif 000007
【図６】
0003719535.tif 000008
【図７】
0003719535.tif 000009
【図８】
0003719535.tif 000010
【図９】
0003719535.tif 000011
【図１０】
0003719535.tif 000012
【図１１】
0003719535.tif 000013
【図１２】
0003719535.tif 000014
【図１３】
0003719535.tif 000015