(57)【要約】【課題】  フューエルカット停止後の酸素放出量を利用した触媒劣化判定の機会を増大すること。【解決手段】  電気制御装置は、フューエルカット中において上流側触媒に供給される酸素量（供給酸素量Ckyu）を算出するとともに、フューエルカット停止後に機関に供給される混合気の空燃比を設定リッチ空燃比に維持する。そして、フューエルカット停止後から上流側触媒の下流に理論空燃比よりもリッチな空燃比のガスが流出するまでに、上流側触媒から放出された酸素量（放出酸素量Chosytu）を算出する。そして、電気制御装置は、放出酸素量Chosytuが供給酸素量Ckyuより小さい場合に放出酸素量Chosytuは最大酸素吸蔵量Cmaxと等しいと考えることができるという観点に立ち、そのような場合が検出されたとき、放出酸素量Chosytuに基づいて触媒劣化判定を行う。【選択図】  図１
2005207286.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設された触媒と、
前記内燃機関の運転状態に応じて同機関に対し燃料の供給を行い、同機関の運転状態がフューエルカット開始条件を満たしたとき同燃料の供給を停止するとともに同燃料の供給の停止中に同運転状態がフューエルカット停止条件を満たしたとき同燃料の供給を再開し、触媒劣化判定条件が満足されていれば同燃料の供給が再開されてから前記触媒の下流に理論空燃比よりもリッチな空燃比のガスが流出するまでの期間において同機関に供給される混合気の空燃比が理論空燃比よりもリッチな空燃比となるように同燃料の供給を行う燃料供給手段と、
前記燃料の供給が停止されてから前記燃料の供給が再開されるまでの期間において前記触媒に供給される酸素量である供給酸素量を取得する供給酸素量取得手段と、
前記燃料の供給が再開されてから前記触媒の下流に理論空燃比よりもリッチな空燃比のガスが流出するまでの期間において同触媒から放出される酸素量である放出酸素量を取得する放出酸素量取得手段と、
前記取得された放出酸素量が前記取得された供給酸素量よりも小さいとき、同取得された放出酸素量に基づいて前記触媒が劣化しているか否かを判定する触媒劣化判定手段と、
を備えた触媒劣化判定装置。
【請求項２】
請求項１に記載の触媒劣化判定装置であって、更に、
前記触媒の下流の前記排気通路に配設され同触媒下流の排気通路を通過するガスの空燃比に応じた信号を出力する下流側空燃比センサを備え、
前記放出酸素量取得手段は、前記空燃比センサから出力される信号に基づいて前記触媒の下流に理論空燃比よりもリッチな空燃比のガスが流出したか否かを判定するように構成された触媒劣化判定装置。
【請求項３】
請求項２に記載の触媒劣化判定装置において、
前記触媒劣化判定手段は、
前記燃料の供給が停止されたときに前記下流側空燃比センサが理論空燃比よりもリッチな空燃比に対応した信号を出力しており、且つ、同燃料の供給が停止されている間に同下流側空燃比センサが理論空燃比よりもリーンな空燃比に対応した信号を出力した場合、前記取得された供給酸素量の大きさにかかわらず、前記取得された放出酸素量に基づいて前記触媒が劣化しているか否かを判定するように構成された触媒劣化判定装置。
【請求項４】
請求項３に記載の触媒劣化判定装置において、
前記触媒劣化判定手段は、
前記燃料の供給が停止されたときに前記下流側空燃比センサが理論空燃比よりもリッチな空燃比に対応した信号を出力している場合、同燃料の供給が停止されたときから前記下流側空燃比センサが前記リーンな空燃比に対応した信号を出力した時点までに取得された供給酸素量の大きさが所定の供給酸素量閾値より大きいか否かを判定し、同時点までに取得された供給酸素量の大きさが同所定の供給酸素量閾値より大きいとき、前記触媒が劣化していないと判定するように構成された触媒劣化判定装置。
【請求項５】
請求項１乃至請求項４の何れか一項に記載の触媒劣化判定装置であって、
前記排気通路の前記触媒の上流に配設されて同触媒上流の排気通路を通過するガスの空燃比に応じた信号を出力する上流側空燃比センサを備えるとともに、
前記燃料供給手段は、
前記機関に供給される混合気の空燃比を所定の目標空燃比にするためのフィードフォワード燃料噴射量を前記機関の運転状態量に応じて決定するフィードフォワード燃料噴射量決定手段と、
前記機関に供給される混合気の空燃比を前記所定の目標空燃比と一致させるために前記フィードフォワード燃料噴射量を補正するように用いられるフィードバック補正量を前記上流側空燃比センサの出力に基づいて算出するフィードバック補正量算出手段と、
所定の学習条件が満たされたとき、前記フィードバック補正量による前記フィードフォワード燃料噴射量の補正分を小さくするための値であって前記フィードフォワード燃料噴射量を補正するように用いられる学習値を同フィードバック補正量に基づいて算出する学習値算出手段と、
前記フィードフォワード燃料噴射量を前記学習値及び前記フィードバック補正量で補正することにより最終燃料噴射時間を決定する最終燃料噴射時間決定手段と、
前記決定された最終燃料噴射時間だけ所定の流量で燃料を噴射する燃料噴射手段と、
前記学習値が適正値となるまで前記学習値算出手段が同学習値の取得を完了したか否かを判定する学習完了判定手段と、
を備え、
前記触媒劣化判定条件は、前記学習完了判定手段により前記学習値の取得が完了していると判定されていることを含む触媒劣化判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気通路に配設された触媒が劣化しているか否かを判定する触媒劣化判定装置に関する。
【背景技術】
【０００２】
従来から、内燃機関の排気通路に配設された触媒（「三元触媒」又は「触媒コンバータ」とも称呼される。）が劣化したか否かを判定する触媒劣化判定装置が知られている。触媒劣化判定装置には種々のタイプがある。そのうちの一つは、内燃機関への燃料の供給が停止されてフューエルカット運転状態となった時点から触媒の下流側に配設された空燃比センサの出力が空気に対応する値（理論空燃比よりもリーンな空燃比に対応する値）となる時点までに同触媒に流れ込んだ酸素量を増加酸素量として算出し、その算出された増加酸素量をその触媒の最大酸素吸蔵量の５０％とみなし、同増加酸素量に基づいて触媒の劣化判定を行うようになっている（例えば、特許文献１を参照。）。この触媒劣化判定装置は、通常時において、機関に供給される混合気の空燃比が理論空燃比近傍に制御されているから、触媒の酸素吸蔵量は最大酸素吸蔵量の約５０％であると推定できるという考えに立脚している。
【特許文献１】特開２００３−１６６４１４号公報（請求項３、第２０欄乃至第２２欄、図４乃至図６）
【０００３】
しかしながら、フューエルカット運転状態となったとき触媒に同触媒の最大酸素吸蔵量の５０％に相当する量の酸素が吸蔵されているとは限らないから、上記従来の技術は触媒が劣化しているか否かを精度良く判定できないという問題がある。
【０００４】
一方、フューエルカット運転状態が継続すれば触媒に大量の酸素が流入するので、触媒の酸素吸蔵量は最大酸素吸蔵量に到達する。従って、フューエルカット運転状態が長期間継続した後の燃料供給再開時点から機関に供給される混合気の空燃比を理論空燃比よりもリッチ側の空燃比に制御し、その後、下流側空燃比センサの出力がリッチ空燃比に相当する値となる時点までに触媒から放出された（触媒において消費された）酸素量を放出酸素量として算出すれば、その放出酸素量は最大酸素吸蔵量であると推定することができる。このようにして推定された最大酸素吸蔵量を用いることにより、触媒の劣化判定を精度良く行うことが可能となる。
【０００５】
ところが、フューエルカット時間が短い場合、触媒の酸素吸蔵量は最大酸素吸蔵量に到達しない。従って、上記方法によると、フューエルカット時間が短い場合には、燃料の供給再開後の上記放出酸素量が最大酸素吸蔵量とはならないので、触媒劣化判定を行うことができない。即ち、上記方法は、触媒劣化判定を行い得る機会が少ないという問題を有している。
【発明の開示】
【０００６】
本発明の触媒劣化判定装置は、上記課題を解決するためになされた発明である。先ず、本発明の触媒劣化判定装置が採用した触媒劣化判定手法の概要について説明する。この触媒劣化判定装置は、フューエルカット開始条件が満たされて燃料の供給が停止された時点（フューエルカット開始時点）から燃料の供給が再開されるまでの時点（フューエルカット停止時点）までの期間において、触媒に供給される酸素量を供給酸素量（吸収酸素量）Ckyuとして取得する。
【０００７】
更に、本装置は、フューエルカット停止後（燃料供給の再開後）において触媒に流入する混合気の空燃比を理論空燃比よりもリッチな空燃比とする。これにより、触媒内に吸蔵されていた酸素が放出（消費）される。従って、所定の時間が経過すると触媒の酸素吸蔵量が「０」に到達するため、触媒下流に理論空燃比よりもリッチな空燃比のガスが流出する。本装置は、この期間（フューエルカット停止時点〜リッチ空燃比ガス流出時点）に、触媒において放出される（消費される）酸素量を放出酸素量Chosytuとして取得する。
【０００８】
いま、フューエルカット中（燃料供給停止中）に触媒の最大酸素吸蔵量Cmaxより多い量の酸素が触媒に流入したと仮定する。即ち、フューエルカットの開始時点からフューエルカットの停止時点までの間に取得される供給酸素量Ckyuが最大酸素吸蔵量Cmaxより大きくなったと仮定する。この場合、図１（Ａ）及び図１（Ｂ）に示したように、触媒の酸素吸蔵量OSAは、フューエルカット開始時点の触媒の酸素吸蔵量OSAfcの大きさにかかわらず、最大酸素吸蔵量Cmaxに到達する。
【０００９】
従って、上述のようにして取得される放出酸素量Chosytuは最大酸素吸蔵量Cmaxと等しいと考えることができるから、下記(1)式が成立する。(1)式は、フューエルカット開始時の酸素吸蔵量OSAfcや最大酸素吸蔵量Cmaxにかかわらず成立する。なお、フューエルカット開始時の酸素吸蔵量OSAfcが０であり、供給酸素量Ckyuが最大酸素吸蔵量Cmaxと等しいとき、放出酸素量Chosytuは供給酸素量Ckyuと等しくなる。しかし、これは極めて稀な場合である。従って、一般には、(1)に示したように、放出酸素量Chosytuが供給酸素量Ckyuより小さい場合に、放出酸素量Chosytuは最大酸素吸蔵量Cmaxと等しいと考えることができる。
放出酸素量Chosytu＝最大酸素吸蔵量Cmax＜供給酸素量Ckyu  …(1)
【００１０】
これに対し、フューエルカット中に触媒の最大酸素吸蔵量Cmaxより少ない量の酸素が触媒に流入したと仮定する。即ち、フューエルカットの開始時点からフューエルカットの停止時点までの間に取得される供給酸素量Ckyuが最大酸素吸蔵量Cmaxより小さかったと仮定する。この場合、フューエルカット開始時の酸素吸蔵量OSAfc、供給酸素量Ckyu及び最大酸素吸蔵量Cmaxの値により、触媒の酸素吸蔵量OSAは最大酸素吸蔵量Cmaxに到達することもあれば、最大酸素吸蔵量Cmaxに到達しないこともある。
【００１１】
例えば、図１（Ｃ）及び図１（Ｄ）に示したように、フューエルカット開始時の酸素吸蔵量OSAfcが小さく、及び／又は、最大酸素吸蔵量Cmaxが大きいと、フューエルカット期間が比較的長時間であっても（即ち、供給酸素量Ckyuが大きくても）、酸素吸蔵量OSAは最大酸素吸蔵量Cmaxに到達しない。この結果、フューエルカット停止時における触媒の酸素吸蔵量OSAky（即ち、放出酸素量Chosytu）は供給酸素量Ckyu以上となる。即ち、下記(2)式が成立する。
最大酸素吸蔵量＞放出酸素量Chosytu≧供給酸素量Ckyu      …(2)
【００１２】
これに対し、図１（Ｅ）に示したように、フューエルカット開始時の酸素吸蔵量OSAfcが０ではなく、及び／又は、最大酸素吸蔵量Cmaxが小さいと、フューエルカット期間が短時間であっても（即ち、供給酸素量Ckyuが小さくても）、酸素吸蔵量OSAは最大酸素吸蔵量Cmaxに到達する場合がある。このとき、フューエルカット停止時（燃料供給再開時）における触媒の酸素吸蔵量OSAky（即ち、放出酸素量Chosytu）は、最大酸素吸蔵量Cmaxと等しい（最大酸素吸蔵量Cmax＝放出酸素量Chosytu＞供給酸素量Ckyu）。しかしながら、放出酸素量Chosytuが供給酸素量Ckyuより大きい場合には、(2)式が得られた場合も含まれる。従って、放出酸素量Chosytuが供給酸素量Ckyuより大きい場合、放出酸素量Chosytuが最大酸素吸蔵量Cmaxと等しいという保証はない。
【００１３】
以上のことから、放出酸素量Chosytuが供給酸素量Ckyuより小さければ、即ち、(1)式が成立すれば、放出酸素量Chosytuは最大酸素吸蔵量Cmaxと等しいと断定できる。従って、本発明による触媒劣化判定装置は、放出酸素量Chosytuが放出酸素量Chosytuより小さいか否かを判定し、放出酸素量Chosytuが供給酸素量Ckyuより小さければ、放出酸素量Chosytuに基づいて触媒劣化判定を行う。
【００１４】
上記従来の方法では、フューエルカット期間の長さを計測し、その長さが判定基準時間以上である場合にのみ触媒劣化判定が可能であると判定せざるを得ない。従って、誤判定を回避するためには、判定基準時間は、触媒の最大酸素吸蔵量が非常に大きく、且つ、フューエルカット開始時における酸素吸蔵量OSAfcが「０」であるという前提に基づいて定めざるを得ない。そのため、判定基準時間は非常に長い時間となるので、短期間のフューエルカットでは触媒劣化判定を行えず、触媒劣化判定の機会が少なくなる。
【００１５】
これに対し、本触媒劣化判定装置によれば、触媒の最大酸素吸蔵量Cmaxの大きさが小さくなっている等の理由により、触媒の酸素吸蔵量OSAを最大酸素吸蔵量Cmaxに到達させるために必要なフューエルカット期間の長さが短くなっている場合にも触媒劣化判定を行うことができる。従って、本触媒劣化判定装置は、誤判定のない触媒劣化判定の頻度を増大することができる。
【００１６】
以下、具体的に本発明の触媒劣化判定装置について説明する。本触媒劣化判定装置は、
内燃機関の排気通路に配設された触媒と、
前記内燃機関の運転状態に応じて同機関に対し燃料の供給を行い、同機関の運転状態がフューエルカット開始条件を満たしたとき同燃料の供給を停止するとともに同燃料の供給の停止中に同運転状態がフューエルカット停止条件を満たしたとき同燃料の供給を再開し、同燃料の供給が再開されてから前記触媒の下流に理論空燃比よりもリッチな空燃比のガスが流出するまでの期間において同機関に供給される混合気の空燃比が理論空燃比よりもリッチな空燃比となるように同燃料の供給を行う燃料供給手段と、
前記燃料の供給が停止されてから前記燃料の供給が再開されるまでの期間において前記触媒に供給される酸素量である供給酸素量を取得する供給酸素量取得手段と、
前記燃料の供給が再開されてから前記触媒の下流に理論空燃比よりもリッチな空燃比のガスが流出するまでの期間において同触媒から放出される酸素量である放出酸素量を取得する放出酸素量取得手段と、
前記取得された放出酸素量が前記取得された供給酸素量よりも小さいとき、同取得された放出酸素量に基づいて前記触媒が劣化しているか否かを判定する触媒劣化判定手段と、
を備えている。
【００１７】
これによれば、燃料の供給が停止されてから（フューエルカット開始から）同燃料の供給が再開されるまで（フューエルカット停止まで）の期間において、触媒に供給される酸素量である供給酸素量が取得される。また、燃料の供給が再開されてから前記触媒の下流に理論空燃比よりもリッチな空燃比のガスが流出するまでの期間において、機関に供給される混合気の空燃比が理論空燃比よりもリッチな空燃比に制御され、同期間における放出酸素量が取得される。そして、取得された放出酸素量が取得された供給酸素量よりも小さいとき、即ち、上述した(1)式が成立するとき、同取得された放出酸素量に基づいて前記触媒が劣化しているか否かが判定される。
【００１８】
上述したように、取得された放出酸素量が取得された供給酸素量よりも小さいとき、取得された放出酸素量は触媒の最大酸素吸蔵量と実質的に等しいから、本触媒劣化判定装置は、触媒の最大酸素吸蔵量に基づいて触媒劣化判定を行い得る。その結果、触媒劣化判定を精度良く行うことができる。更に、フューエルカット期間が短くても、取得された放出酸素量が取得された供給酸素量よりも小さくなれば、触媒劣化判定を行うことができるので、触媒劣化判定の機会を多く持つことができる。
【００１９】
この場合、前記触媒劣化判定装置は、前記触媒の下流の前記排気通路に配設され同触媒下流の排気通路を通過するガスの空燃比に応じた信号を出力する下流側空燃比センサを備え、前記放出酸素量取得手段は、前記空燃比センサから出力される信号に基づいて前記触媒の下流に理論空燃比よりもリッチな空燃比のガスが流出したか否かを判定するように構成されることが好適である。
【００２０】
これによれば、下流側空燃比センサから出力される信号に基づいて前記触媒の下流に理論空燃比よりもリッチな空燃比のガスが流出した時点を確実に把握することができる。なお、この場合、下流側空燃比センサは、濃淡電池型の酸素濃度センサ（所謂「酸素センサ」）であっても、限界電流式で空燃比をリニアに検出する限界電流式酸素濃度センサであってもよい。
【００２１】
更に、前記触媒劣化判定手段は、
前記燃料の供給が停止されたときに前記下流側空燃比センサが理論空燃比よりもリッチな空燃比に対応した信号を出力しており、且つ、同燃料の供給が停止されている間に同下流側空燃比センサが理論空燃比よりもリーンな空燃比に対応した信号を出力した場合、前記取得された供給酸素量の大きさにかかわらず、前記取得された放出酸素量に基づいて前記触媒が劣化しているか否かを判定するように構成されることが好適である。
【００２２】
燃料の供給停止（フューエルカット）が開始された時点において触媒下流に配設された下流側空燃比センサがリッチな空燃比に対応した信号を出力していて、燃料の供給停止中（フューエルカット中）において同空燃比センサがリーンな空燃比に対応した信号を出力したとき、触媒の酸素吸蔵量は最大酸素吸蔵量に到達したと考えることができる。従って、この場合、前記取得された供給酸素量の大きさにかかわらず、前記取得された放出酸素量に基づいて前記触媒が劣化しているか否かを判定することにより、触媒劣化判定を精度良く行えるとともに、触媒劣化判定の機会を一層増大することができる。
【００２３】
また、前記触媒劣化判定手段は、
前記燃料の供給が停止されたときに前記下流側空燃比センサが理論空燃比よりもリッチな空燃比に対応した信号を出力している場合、同燃料の供給が停止されたときから前記下流側空燃比センサが前記リーンな空燃比に対応した信号を出力した時点までに取得された供給酸素量の大きさが所定の供給酸素量閾値より大きいか否かを判定し、同時点までに取得された供給酸素量の大きさが同所定の供給酸素量閾値より大きいとき、前記触媒が劣化していないと判定するように構成されることが好適である。
【００２４】
前記燃料の供給が停止されたときに前記下流側空燃比センサが理論空燃比よりもリッチな空燃比に対応した信号を出力している場合、同燃料の供給が停止された時点から前記下流側空燃比センサが前記リーンな空燃比に対応した信号を出力した時点までに取得された供給酸素量は、触媒に吸蔵された酸素量であり、同触媒の最大酸素吸蔵量より小さい。従って、その供給酸素量が供給酸素量閾値よりも大きいとき、最大酸素吸蔵量は供給酸素量閾値より大きいから、触媒は劣化していない触媒（非劣化触媒）であると直ちに判定することができる。なお、前記供給酸素量閾値は、劣化触媒であると判定すべき触媒が示す最大酸素吸蔵量の最大値以上に設定されている。
【００２５】
更に、前記触媒劣化判定装置は、
前記排気通路の前記触媒の上流に配設されて同触媒上流の排気通路を通過するガスの空燃比に応じた信号を出力する上流側空燃比センサを備えるとともに、
前記燃料供給手段は、
前記機関に供給される混合気の空燃比を所定の目標空燃比にするためのフィードフォワード燃料噴射量を前記機関の運転状態量に応じて決定するフィードフォワード燃料噴射量決定手段と、
前記機関に供給される混合気の空燃比を前記所定の目標空燃比と一致させるために前記フィードフォワード燃料噴射量を補正するように用いられるフィードバック補正量を前記上流側空燃比センサの出力に基づいて算出するフィードバック補正量算出手段と、
所定の学習条件が満たされたとき、前記フィードバック補正量による前記フィードフォワード燃料噴射量の補正分を小さくするための値であって前記フィードフォワード燃料噴射量を補正するように用いられる学習値を同フィードバック補正量に基づいて算出する学習値算出手段と、
前記フィードフォワード燃料噴射量を前記学習値及び前記フィードバック補正量で補正することにより最終燃料噴射時間を決定する最終燃料噴射時間決定手段と、
前記決定された最終燃料噴射時間だけ所定の流量で燃料を噴射する燃料噴射手段と、
前記学習値が適正値となるまで前記学習値算出手段が同学習値の取得を完了したか否かを判定する学習完了判定手段と、
を備え、
前記触媒劣化判定条件は、前記学習完了判定手段により前記学習値の取得が完了していると判定されていることを含むことが好適である。
【００２６】
触媒劣化判定を実行するためにフューエルカットの停止後において、機関に供給される混合気の空燃比を理論空燃比よりもリッチな空燃比に制御していると、触媒劣化判定が一度のフューエルカットで終了しない場合などにおいて、学習値の取得が遅れることがある。その結果、学習値が適正値に到達するまでの期間が長くなるので、通常走行時における空燃比制御精度が良好でなく、エミッションの悪化を招く恐れがある。そこで、上記構成のように、学習が完了されたと判定したことを触媒劣化判定条件に加えることにより（即ち、学習を触媒劣化判定に優先させることにより）、触媒劣化判定によるエミッションの悪化を回避することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明による内燃機関の触媒劣化判定装置を含む燃料噴射量制御装置（空燃比制御装置）の実施形態について図面を参照しつつ説明する。
【００２８】
図２は、本発明の一実施形態に係る燃料噴射量制御装置を４サイクル火花点火式多気筒内燃機関１０に適用したシステムの概略構成を示している。なお、図２は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
【００２９】
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０とを含んでいる。
【００３０】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００３１】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角及びリフト量を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。
【００３２】
インジェクタ３９は、図示しない燃料配管を介して図示しない燃料ポンプに接続されている。燃料ポンプは、図示しない燃料タンクから燃料を吸引して燃料配管に吐出するようになっている。燃料配管には図示しないプレッシャレギュレータが介装されている。プレッシャレギュレータは、後述する吸気管４１内の圧力とインジェクタ３９の液体通路間の差圧を一定に維持するようになっている。これにより、インジェクタ３９が駆動されたとき（噴射弁が開弁されたとき）、インジェクタ３９から略一定の流量の燃料が噴射されるようになっている。
【００３３】
吸気系統４０は、吸気ポート３１に連通し同吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットルバルブ４３及びスワールコントロールバルブ（以下、「ＳＣＶ」と称呼する。）４４を備えている。      
【００３４】
スロットルバルブ４３は、ＤＣモータからなるスロットルバルブアクチュエータ４３ａにより吸気管４１内で回転駆動されるようになっている。ＳＣＶ４４は、ＤＣモータからなるＳＣＶアクチュエータ４４ａにより回転駆動されるようになっている。
【００３５】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１に接続されたエキゾーストパイプ５２、エキゾーストパイプ５２に配設された上流側触媒５３、上流側触媒５３よりも下流のエキゾーストパイプ５２に配設された下流側触媒５４を備えている。排気ポート３４、エキゾーストマニホールド５１及びエキゾーストパイプ５２は、排気通路を構成している。
【００３６】
上流側触媒５３及び下流側触媒５４のそれぞれは、所謂、白金等の貴金属からなる活性成分を担持する三元触媒装置である。各触媒は、触媒に流入するガスがほぼ理論空燃比であるとき、ＨＣ，ＣＯなどの未燃成分を酸化するとともに、窒素酸化物（NOx）を還元する機能を有する。更に、各触媒は、酸素を吸蔵（貯蔵）する酸素吸蔵機能を有し、この酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃成分及び窒素酸化物を浄化することができる。この酸素吸蔵機能は、触媒に担持されているセリア(CeO2)によってもたらされる。
【００３７】
一方、このシステムは、熱線式エアフローメータ６１、吸気温センサ６２、スロットルポジションセンサ６３、カムポジションセンサ６４、クランクポジションセンサ６５、水温センサ６６、上流側空燃比センサ６７、下流側空燃比センサ（酸素濃度センサ）６８及びアクセル開度センサ６９を備えている。
【００３８】
エアフローメータ６１は、吸気管４１内を流れる吸入空気の質量流量Gaに応じた信号を出力するようになっている。吸気温センサ６２は、吸入空気の温度を検出し、吸気温度THAを表す信号を出力するようになっている。スロットルポジションセンサ６３は、スロットルバルブ４３の開度（スロットルバルブ開度）を検出し、スロットルバルブ開度TAを表す信号を出力するようになっている。
【００３９】
カムポジションセンサ６４は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。クランクポジションセンサ６５は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。水温センサ６６は、内燃機関１０の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【００４０】
上流側空燃比センサ６７は、排気通路であって上流側触媒５３よりも上流側に配設されている。上流側空燃比センサ６７は、所謂「限界電流式酸素濃度センサ」であって、上流側触媒５３に流入する排ガス中の空燃比を検出し、図３（Ａ）に示したように、検出した空燃比に応じた信号Vabyfsを出力するようになっている。
【００４１】
下流側空燃比センサ６８は、排気通路であって上流側触媒５３よりも下流側であり下流側触媒５４よりも上流側に配設されている。下流側空燃比センサ６８は、固体電解質型センサ（安定化ジルコニアを用いた周知の濃淡電池型の酸素濃度センサ）であり、ジルコニアの両側に白金からなる検出電極と白金からなる基準電極とを備えている。検出電極は多孔質のセラミックにより覆われている。基準電極は大気に曝され、多孔質セラミックにより覆われた検出電極は上流側触媒５３から流出したガス（上流側触媒５３と下流側触媒５４との間の排気通路内のガス）に曝されている。
【００４２】
下流側空燃比センサ６８は、検出電極と基準電極の間の酸素濃度（酸素分圧）の差に基づいて変化する出力Voxsを示す。即ち、下流側空燃比センサ６８は、図３（Ｂ）に示したように、検出対象のガスの空燃比が理論空燃比よりもリッチ及びリーンのとき最大出力値max及び最小出力値minをそれぞれ出力するようになっている。従って、下流側空燃比センサ６８の出力が最大出力値maxと最小出力値minの中央値Voxsrefのとき、検出対象のガスの空燃比は略理論空燃比である。
【００４３】
アクセル開度センサ６９は、運転者によって操作されるアクセルペダル７０の操作量Accpを表す信号を出力するようになっている。
【００４４】
電気制御装置８０は、互いにバスで接続されたＣＰＵ８１、ＣＰＵ８１が実行するプログラム、テーブル（マップ、関数）及び定数等を予め記憶したＲＯＭ８２、ＣＰＵ８１が必要に応じてデータを一時的に格納するＲＡＭ８３、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ８４並びにＡＤコンバータを含むインターフェース８５等からなるマイクロコンピュータである。
【００４５】
インターフェース８５は、前記センサ６１〜６９と接続され、ＣＰＵ８１にセンサ６１〜６９からの信号を供給するとともに、ＣＰＵ８１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９、スロットルバルブアクチュエータ４３ａ及びＳＣＶアクチュエータ４４ａに駆動信号を送出するようになっている。
【００４６】
＜＜触媒劣化判定方法の概要＞＞
次に、上記のように構成された燃料噴射量制御装置による触媒劣化判定方法の概要について、関連する制御とともに説明する。以下の機能は、電気制御装置８０により達成される。
【００４７】
＜燃料噴射量制御＞
本燃料噴射量制御装置は、下記(3)式に基づいて最終燃料噴射時間taufinalを決定する。最終燃料噴射時間taufinalは、吸気行程を迎えた気筒の一回の吸気行程に対する実際の燃料噴射時間である。この時間だけ、吸気行程を迎えた気筒に対して備えられたインジェクタ３９が開弁される。
taufinal＝(1+efafgx)・tfbse・khosei・kenrich＋tdfi                  …(3)
【００４８】
(3)式において、tfbse・khosei・kenrichはフィードフォワード燃料噴射量（フィードフォワード燃料噴射時間）である。
tfbseは、吸気行程を迎えた気筒の一回の吸気行程において吸入される混合気の空燃比を理論空燃比とするための基本燃料噴射時間である。本例において、tfbseは、前記気筒の一回の吸気行程において吸入された吸入空気量Gnに基づいて求められる。吸入空気量Gnは、エアフローメータ６１により計測された吸入空気量（流量）Gaをエンジン回転数NEにより除した値に基づいて求められる。なお、吸入空気の挙動を物理モデルにより表した空気モデルにより直接的に吸入空気量Gnを求めても良い。
【００４９】
khoseiは、機関の暖機時において機関に供給される混合気の空燃比をリッチ空燃比に設定したり、アイドル運転中にエンジン回転速度の変動を抑制するように空燃比を調整するための係数である。以下、説明を簡単にするため、khoseiの値は１．０に設定されているものとする。
【００５０】
kenrichは、触媒劣化判定条件が成立していて、且つ、触媒劣化判定が禁止されていない状態であるとき、「燃料噴射の停止（燃料供給の停止、即ち、フューエルカット）を停止した時点」から「下流側空燃比センサ６８の出力（出力信号）Voxsが理論空燃比よりもリーンな空燃比を示す値から理論空燃比よりもリッチな空燃比を示す値へと変化する時点」までの期間に、機関に供給される混合気の空燃比を理論空燃比よりもリッチな設定リッチ空燃比にするための増量係数である。「下流側空燃比センサ６８の出力（出力信号）Voxsが理論空燃比よりもリーンな空燃比を示す値から理論空燃比よりもリッチな空燃比を示す値へと変化する時点」は、上流側触媒５３から理論空燃比よりもリッチな空燃比のガスが流出した時点である。kenrichには、通常時において値１．０が設定され、機関に供給される混合気の空燃比を前記設定リッチ空燃比とするとき１．０より大きい値が設定される。
【００５１】
tdfiは、機関に供給される混合気の空燃比を目標空燃比abyfrに一致させるためのフィードバック補正量（時間）である。フィードバック補正量tdfiは、後に詳述するように、少なくとも上流側空燃比センサ６７の出力に基づいて求められる。
【００５２】
efafgxは、フィードバック量tdfiの絶対値を小さくするように算出される学習値である。学習値efafgxは、例えば、インジェクタ３９の製造上のバラツキに起因する噴射性能の個体差や経時変化に起因する噴射性能の変化及び燃料付着量の変化等による空燃比のズレを補償することにより、狙いの空燃比を達成するための値である。
【００５３】
学習値efafgxは、フィードバック量tdfiの絶対値を小さくするように（フィードバック量tdfiが０を含む所定幅（−A1〜A1）に収束するように）算出される。換言すると、学習値efafgxは、フィードバック量tdfiによるフィードフォワード燃料噴射量(tfbse・khosei・kactive）の補正分を小さくするように算出される。学習値efafgxの学習方法（取得方法）は後に詳述する。
【００５４】
また、学習値efafgxは、空燃比フィードバック制御が停止されることにより、フィードバック量tdfiが「０」に設定されたときであっても、狙いとする空燃比が実質的に達成されるように求められる値と言うこともできる。学習値efafgxは、機関１０の運転領域毎（例えば、吸入空気量Gnについての領域毎）に個別に求められ、且つ、機関１０の運転領域に応じて記憶される。学習値efafgxは、機関１０の運転領域に対応されながら記憶された値が機関１０の実際の運転領域に応じてメモリ（バックアップＲＡＭ９４）から読み出され、その読み出された値が上記(3)式に従って最終燃料噴射時間taufinalに反映される。
【００５５】
ところで、この燃料噴射量制御装置は、燃料噴射時間がtauであるときにtau・KINJCだけの質量の燃料が機関１０に供給されるように設計されている。KINJCは、インジェクタ３９の開弁時間を燃料の質量に変換する係数である。そして、そのように設計された燃料噴射量制御装置において、インジェクタ３９の特性や吸気通路の燃料付着量等が変化した場合等であっても、燃料噴射時間を(1+efafgx)・tauとすれば、設計上期待したtau・KINJCに応じた質量の燃料が実際に機関１０に供給される。
【００５６】
＜空燃比フィードバック制御（メインフィードバック制御）＞
次に、フィードバック補正量tdfiを求める空燃比フィードバック制御の概要について説明する。フィードバック補正量tdfiは、上流側空燃比センサ６７の出力Vabyfsと後述するサブフィードバック量Vafsfbとの和（Vabyfs+Vafsfb）により示される見かけの空燃比abyfs（以下、「上流側制御用空燃比abyfs」と称呼する。）が目標空燃比（目標値）abyfrと一致するように求められる。
【００５７】
より具体的に述べると、電気制御装置８０は、下記(4)式に示したように、現時点からＮストローク（Ｎ回の吸気行程）前に吸気行程を迎えた気筒の吸入空気量Gn(k−N)を上流側制御用空燃比abyfsで除することにより、現時点からＮストローク前の筒内燃料供給量Fc(k−N)を求める。値Ｎは、内燃機関の排気量及び燃焼室２５から上流側空燃比センサ６７までの距離等により異なる値である。
Fc(k−N)＝Gn(k−N)／abyfs        …(4)
【００５８】
次いで、電気制御装置８０は、下記(5)式に示したように、現時点からＮストローク前の吸入空気量Gn(k−N)を現時点からＮストローク前の時点における目標空燃比abyfr(k−N)で除することにより、現時点からＮストローク前の目標筒内燃料供給量Fcr(k−N)を求める。
Fcr(k−N)＝Gn(k−N)／abyfr (k−N)        …(5)
【００５９】
そして、電気制御装置８０は、目標筒内燃料供給量Fcr(k−N)から筒内燃料供給量Fc(k−N)を減じた値を筒内燃料供給量偏差DFcとして設定する。つまり、筒内燃料供給量偏差DFcは、Ｎストローク前の時点で筒内に供給された燃料の過不足分（Dfc＝Fcr(k−N)−Fc(k−N)）を表す量となる。その後、電気制御装置８０は、下記(6)式に基いてフィードバック補正量tdfiを求める。
tdfi＝(Gp・DFc＋Gi・SDFc)・KFB／KINJC        …(6)
【００６０】
上記(6)式において、Gpは予め設定された比例ゲイン、Giは予め設定された積分ゲインである。なお、(6)式の係数KFBはエンジン回転速度NE及び吸入空気量Gn等により可変とすることが好適であるが、ここでは「１」としている。また、値SDFcは筒内燃料供給量偏差DFcの積分値（積算値）である。以上のように、フィードバック補正量tdfiが比例積分制御により求められる。
【００６１】
＜サブフィードバック制御＞
次に、下流側空燃比センサ６８の出力（出力信号）Voxsに基く空燃比フィードバック制御について説明する。なお、かかる制御はサブフィードバック制御とも呼ばれる。このサブフィードバック制御により、上述したサブフィードバック量Vafsfbが算出される。サブフィードバック制御は、上流側触媒５３から流出するガスの空燃比が理論空燃比となるようにするための制御である。
【００６２】
より具体的に述べると、電気制御装置８０は、目標値Voxsrefから現時点の下流側空燃比センサ６８の出力Voxsを減じることにより出力偏差量DVoxs（＝Voxsref−Voxs）を求め、下記(7)式に基いてサブフィードバック量Vafsfbを求める。目標値Voxsrefは、上流側触媒５３から流出するガスの空燃比が理論空燃比であるときに、下流側空燃比センサ６８が出力するであろう値に選択されている。
Vafsfb＝Kp・DVoxs＋Ki・SDVoxs            …(7)
【００６３】
上記(7)式において、Kpは予め設定された比例ゲイン、Kiは予め設定された積分ゲインである。また、SDVoxsは、出力偏差量DVoxsの積分値（積算値）である。このようにして、サブフィードバック量Vafsfbが求められ、この値は前述したように上流側空燃比センサ６７の実際の出力Vabyfsに加えられ、その和（Vabyfs
+ Vafsfb）が図３（Ａ）に示したマップに基いて前記上流側制御用空燃比abyfsに変換される。換言すると、上流側制御用空燃比abyfsは、上流側空燃比センサ６７が実際に検出している空燃比に対して、下流側空燃比センサ６８の出力Voxsに基づいて求められるサブフィードバック量Vafsfbに相当する分だけ異なる空燃比として求められる。
【００６４】
この結果、筒内燃料供給量Fc(k−N)が上流側空燃比センサ６７の出力Vabyfsのみならず、下流側空燃比センサ６８の出力Voxsに応じて変化するので、フィードバック補正量tdfiが同下流側空燃比センサ６８の出力Voxsに応じて変更せしめられる。これにより、上流側触媒５３から流出するガスの空燃比が理論空燃比に一致するように、機関の空燃比が制御せしめられる。
【００６５】
＜学習制御（学習値の算出）＞
次に、学習値efafgxを求める学習制御の概要について説明する。学習値efafgxは、空燃比フィードバック制御実行条件が成立したときなどの学習条件が成立したときに求められる。
【００６６】
先ず、学習値の基礎データとなる空燃比フィードバック係数FAFが下記(8)式に基づいて算出される。この計算は、フィードバック量tdfiが更新される毎に実行される。(8)式により、加減算項であるフィードバック量tdfiが、噴射時間tfbse・khosei・kactiveに対する補正率に換される。
FAF=tdfi／(tfbse・khosei・kactive)            …(8)
【００６７】
次いで、空燃比フィードバック係数FAFが得られる毎に、下記(9)式に基づいて空燃比フィードバック係数FAFのなまし値FAFSMを計算する。(9)式において、(i)が付された変数は今回の演算により得られたなまし値FAFSMを示し、(i-1)が付された変数は所定時間前の演算（前回の演算）により得られたなまし値FAFSMを示している。係数γは、０から１までの所定値である。
FAFSM(i)＝γ・FAF ＋（１−γ）・FAFSM(i-1)         
… (9)
【００６８】
なまし値FAFSM（及び学習値efafgx）は、機関１０の運転領域毎に計算され、各運転領域に対応して記憶されていく。本例において、運転領域は吸入空気量Gnの大きさにより区分されている。例えば、第１領域はGnが第１閾値Gnidl以下のアイドル運転領域、第２領域はGnが第１閾値から第１閾値より大きい第２閾値までの領域、第３領域はGnが第２閾値から第２閾値より大きい第３閾値までの領域、第４領域はGnが第３閾値以上の領域である。
【００６９】
そして、電気制御装置８０は、任意の運転領域においてなまし値FAFSMが所定回数nshoだけ更新されたとき、その時点のFAFSM(i)を用いて学習値efafgxを更新する。具体的に述べると、電気制御装置８０は、なまし値FAFSM(i)が閾値A1（＞０）より大きいとき、その運転領域に対応する学習値efafgxの値を固定値Δgxだけ増大する。また、電気制御装置８０は、なまし値FAFSM(i)が閾値−A1より小さいとき、その運転領域に対応する学習値efafgxの値を固定値Δgxだけ減少する。
【００７０】
なお、電気制御装置８０は、学習制御中においてサブフィードバック制御を停止する。また、車両が、燃料タンク等の燃料系から発生するエバポエミッションを図示しないキャニスタに吸着し、そのキャニスタに吸着したエバポエミッションを所定の運転条件成立時に各気筒に吸入させて燃焼させる燃料蒸発ガス排出抑止装置を備えている場合、電気制御装置８０は、学習制御中において、そのようなエバポエミッションの各気筒への導入も停止する。
【００７１】
＜フューエルカット（燃料の供給（噴射）停止）制御＞
次に、フューエルカット制御の概要について説明する。
フューエルカット（燃料供給の停止）は、以下のフューエルカット開始条件が成立したときに開始され、以下のフューエルカット停止条件が成立したときに停止する（燃料の供給を再開する）。フューエルカット開始条件が成立してからフューエルカット停止条件が成立するまでの期間（フューエルカット期間）は、インジェクタ３９から燃料の噴射は行われない。
【００７２】
（フューエルカット開始条件）
フューエルカット開始条件は、以下の条件が共に成立したときに成立する。
・スロットルバルブ開度TAが「０」である。即ち、スロットルバルブ４３が全閉である。
・エンジン回転速度NEがフューエルカット開始エンジン回転速度NEFCより大きい。
【００７３】
（フューエルカット停止条件）
フューエルカット停止条件は、フューエルカット中に以下の少なくとも何れか一方の条件が成立したときに成立する。
・スロットルバルブ開度TAが「０」でない。即ち、スロットルバルブ４３が全閉でない。
・エンジン回転速度NEがフューエルカット停止回転速度(NEFC−NH)より小さい。但し、NHは正の値である。
【００７４】
＜フューエルカット中制御と触媒劣化判定制御＞
次に、フューエルカット中に実行される制御について説明する。
【００７５】
先ず、フューエルカットが開始されたとき、後述する触媒劣化判定条件が成立していると、電気制御装置８０は、フューエルカット開始時点からフューエルカット停止時点まで（フューエルカット中）において上流側触媒５３に供給される酸素量（供給酸素量Ckyu、吸収酸素量Ckyu）を以下の(10)式及び(11)式に従って算出する。0.23は、大気中に含まれる酸素の重量割合である。つまり、フューエルカット期間中において、供給される酸素の変化量delO2を前回計算した時点から同変化量delO2を今回計算する時点までの期間（以下、「サンプリング期間」と称呼する。）、各気筒の吸入空気量Gnが積算され、それに酸素の重量割合が乗じられて上流側触媒５３に流入する酸素量（供給される酸素量）delO2が求められる。更に、その酸素量delO2が積算されることにより供給酸素量Ckyuが求められる。
delO2＝0.23・ΣGn  （delO2のサンプリング期間）        …(10)
Ckyu＝ΣdelO2    （フューエルカット中）            
…(11)
【００７６】
一方、フューエルカットが停止（終了）し、燃料噴射（燃料供給）が再開されたとき、電気制御装置８０は、目標空燃比abyfrを理論空燃比よりもリッチである所定の設定リッチ空燃比abyfrichに設定する。同時に、増量係数kenrichに「１」より大きい値（＝理論空燃比stoich／目標空燃比abyfr）を設定する。以下、このような空燃比の制御を、「設定リッチ空燃比制御」と称呼する。
【００７７】
このとき、上述した空燃比フィードバック制御が行われると、機関に供給される混合気の空燃比は目標空燃比（＝設定リッチ空燃比）に制御されるので、上流側触媒５３には過剰の未燃成分が流入する。この結果、上流側触媒５３は、過剰の未燃成分を浄化するため、上流側触媒５３に吸蔵されていた酸素を放出する。なお、フューエルカット制御中およびフューエルカット停止後の設定リッチ空燃比制御期間において、サブフィードバック制御及びエバポエミッションの各気筒への導入は停止される。
【００７８】
そして、電気制御装置８０は、フューエルカット停止時点から上流側触媒５３の下流に理論空燃比よりもリッチな空燃比のガスが流出する時点までの期間（以下、「設定リッチ空燃比制御期間」と称呼する。）、上流側触媒５３において消費（放出）される酸素量（放出酸素量Chosytu）を以下の(12)式〜(14)式に従って算出する。
Stau＝Σtaufinal・KINJC （delO2のサンプリング期間）             
…(12)
delO2＝0.23・Stau・(stoich − abyfs)                            
…(13)
Chosytu＝ΣdelO2  （設定リッチ空燃比制御期間中）                
…(14)
なお、(12)式は、下記(12a)式に代えてもよい。
Stau＝Σtaufinal・KINJC・(1/(1+efafgx))（delO2のサンプリング期間）  …(12a)
【００７９】
即ち、(13)式に示したように、サンプリング期間内にて上流側触媒５３に流れ込んだガスにおいて未燃成分を浄化することに対し不足する空気量Stau・(abyfs−stoich)に、空気（大気）に対する酸素の重量割合0.23を乗じることにより、同サンプリング期間において上流側触媒５３にて放出（消費）された酸素量の変化量delO2が求められる。(13)式のabyfsは、delO2のサンプリング期間における上流側空燃比センサ出力Vabyfsから求められる空燃比abyfsの平均値である。従って、(14)式に示したように、放出酸素量の変化量delO2を、設定リッチ空燃比制御期間において積算することにより、同設定リッチ空燃比制御期間における放出酸素量Chosytuが取得される。
【００８０】
なお、燃料噴射タイミング毎に燃料噴射量taufinal・KINJCを求め、この燃料噴射量taufinal・KINJCと、その時点の上流側空燃比センサ出力Vabyfsから求められる空燃比abyfsとを用いて、下記(15)式に従って、放出酸素量Chosytuを求めても良い。
Chosytu＝Σ0.23・taufinal・KINJC・(stoich
− abyfs)                 …(15)
【００８１】
ところで、フューエルカットの開始時点からフューエルカットの終了時点までの間に取得される供給酸素量Ckyuが最大酸素吸蔵量Cmaxより大きくなったと仮定する。この場合、図１（Ａ）及び図１（Ｂ）に示したように、触媒の酸素吸蔵量OSAは、フューエルカット開始時点の触媒の酸素吸蔵量OSAfcの大きさにかかわらず、最大酸素吸蔵量Cmaxに到達する。従って、放出酸素量Chosytuは、最大酸素吸蔵量Cmaxと等しく、且つ、供給酸素量Ckyuよりも小さくなる（上記(1)式を参照。）。
【００８２】
これに対し、フューエルカットの開始時点からフューエルカットの終了時点までの間に取得される供給酸素量Ckyuが、最大酸素吸蔵量Cmaxより小さかったと仮定する。この場合、フューエルカット開始時の酸素吸蔵量OSAfc、供給酸素量Ckyu及び最大酸素吸蔵量Cmaxに値により、触媒の酸素吸蔵量OSAは最大酸素吸蔵量Cmaxに到達することもあれば、最大酸素吸蔵量Cmaxに到達しないこともある。その結果、図１（Ｃ）乃至図１（Ｅ）に示したように、放出酸素量Chosytuは供給酸素量Ckyu以上の値となる（上記(2)式を参照。）。
【００８３】
なお、フューエルカット開始時点の酸素吸蔵量が「０」となっていて、しかも、供給酸素量Ckyuが最大酸素吸蔵量Cmaxであるとき、放出酸素量Chosytuは、最大酸素吸蔵量Cmaxとなり、且つ、供給酸素量Ckyuと等しくなる。しかしながら、この場合は非常に稀なケースである。また、測定誤差や計算誤差を考慮する必要がある。更に、図１（Ｄ）に示したように、放出酸素量Chosytuが供給酸素量Ckyuと等しくても、放出酸素量Chosytuが最大酸素吸蔵量Cmaxと等しいとは限らない。従って、本触媒劣化判定装置においては、放出酸素量Chosytuが供給酸素量Ckyuと等しい場合、放出酸素量Chosytuは最大酸素吸蔵量Cmaxに到達していないとみなす。
【００８４】
以上に基づき、本触媒劣化判定装置の電気制御装置８０は、放出酸素量Chosytuが供給酸素量Ckyuより小さいか否かを判定し、放出酸素量Chosytuが供給酸素量Ckyuより小ければ、放出酸素量Chosytuは最大酸素吸蔵量Cmaxと等しいので、放出酸素量Chosytuが所定の劣化判定値Cdetより小さいか否かを判定し、放出酸素量Chosytuが劣化判定値Cdetより小さいとき、触媒が劣化していると判定する。一方、本触媒劣化判定装置は、放出酸素量Chosytuが供給酸素量Ckyu以上であれば、放出酸素量Chosytuに基づく触媒劣化を禁止する。
【００８５】
一方、下流側空燃比センサ６８の出力Voxsが、フューエルカット開始時において理論空燃比よりもリッチな空燃比に相当する値となっており、且つ、フューエルカット中に理論空燃比よりもリーンな空燃比に相当する値となった場合、上流側触媒５３の酸素吸蔵量OSAが最大酸素吸蔵量Cmaxに到達したと考えることができる。
【００８６】
従って、電気制御装置８０は、このような場合が検出されたとき、「リッチ履歴あり」と認識し、「リッチ履歴あり」の場合には、取得された供給酸素量Ckyuの大きさにかかわらず（供給酸素量Ckyuと放出酸素量Chosytuの大小関係にかかわらず）、取得された放出酸素量Chosytuに基づいて前記触媒が劣化しているか否かを判定する。
【００８７】
更に、その場合の供給酸素量Ckyuは、少なくとも上流側触媒５３の最大酸素吸蔵量Cmaxより小さい値である。従って、電気制御装置８０は、供給酸素量Ckyuが、劣化していない触媒が示す最大酸素吸蔵量の最小値に相当する正常触媒判定値（所定の供給酸素量閾値）Cnmlより大きいか否かを判定し、供給酸素量Ckyuが正常触媒判定値Cnmlより大きいとき、上流側触媒５３は正常である（劣化していない、即ち非劣化触媒である。）と判定する。
【００８８】
（触媒劣化判定条件）
上述した触媒劣化判定条件は、例えば、以下の総て条件が成立したときに成立する。
(A)今回の車両運転開始から（イグニッション・キーがオフ状態からオン状態へと変更された機関の運転開始後）一度も触媒劣化判定が実行されていない。
(B)上流側空燃比センサ６７が正常であり、且つ、活性化している。
(C)下流側空燃比センサ６８が正常であり、且つ、活性化している。
(D)冷却水温THWが所定水温より高い（上流側触媒５３が活性化している。）
(E)アイドル運転状態(Gnが第１閾値Gnidl以下）となってる。
(F)アイドル運転領域の学習値efafgxが適正値となっていて、学習が完了している。
【００８９】
なお、学習値efafgxに関する上記条件(F)は、例えば、他の学習条件が成立したときに学習値が更新されない状態（変更されない状態）が、所定回数だけ継続したときに成立する。
以上が、本触媒劣化判定装置が採用した触媒劣化判定手法の概要である。
【００９０】
＜＜実際の作動＞＞
次に、上記のように構成された燃料噴射量制御装置の実際の作動について、電気制御装置８０のＣＰＵ８１が実行するルーチン（プログラム）をフローチャートにより示した図４〜図１１を参照しながら説明する。
【００９１】
ＣＰＵ８１は、図４に示した最終燃料噴射時間の計算及び燃料噴射の指示を行うルーチンを、所定の気筒のクランク角が吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、所定の気筒のクランク角度が前記所定クランク角度になると、ＣＰＵ８１はステップ４００から処理を開始してステップ４０５に進み、エアフローメータ６１により計測された吸入空気量Gaとエンジン回転速度NEとに基いて吸入空気量Gnを求め、その吸入空気量Gnに基づいて機関の空燃比を理論空燃比とするための基本燃料噴射時間tfbseを求める。なお、基本燃料噴射時間tfbseは、吸入空気量Gaとエンジン回転速度NEとマップ（ルックアップテーブル）とから求められ得る。更に、基本燃料噴射時間tfbseは、吸入空気の挙動を表した物理モデルにより吸入空気量Gnを算出し、その吸入空気量Gnに基づいて求められ得る。
【００９２】
次いで、ＣＰＵ８１はステップ４１０に進み、上記(3)式に従って最終燃料噴射時間taufinalを算出する。係数khoseiは機関１０の運転状態（例えば、スロットルバルブ開度TAや冷却水温THW等）に基づいて別途定められる。増量係数kenrichは、後述する図９に示したルーチンにより機関１０の運転状態に応じて変更される。即ち、値(tfbse・khosei・kenrich)は、機関に供給される混合気の空燃比を所定の目標空燃比とするために、機関１０の運転状態に基づいて定められるフィードフォワード燃料噴射量（フィードフォワード燃料噴射時間）である。従って、ステップ４１０においては、フィードフォワード燃料噴射量が学習値efafgxとフィードバック補正量tdfiとにより補正されることにより、最終燃料噴射時間taufinalが決定される。即ち、ステップ４１０はフィードフォワード燃料噴射量決定手段と最終燃料噴射時間決定手段とを構成している。
【００９３】
次に、ＣＰＵ８１はステップ４１５に進み、フューエルカット実行フラグXFCの値が「１」となっているか否かを判定する。フューエルカット実行フラグXFCの値は、後述する図７に示したルーチンにより、フューエルカット開始条件が満たされたときに「１」に設定され、フューエルカット停止条件が満たされたときに「０」に設定される。なお、フューエルカット実行フラグXFCの値は、図示しないイグニッション・キーがオンされたときに起動される図示しないイニシャルルーチンにても「０」に設定される。
【００９４】
いま、フューエルカット実行フラグXFCの値が「０」であると仮定して説明を続けると、ＣＰＵ８１はステップ４１５にて「Ｙｅｓ」と判定してステップ４２０に進み、前記所定の気筒に対応するインジェクタ３９に対し、最終燃料噴射時間taufinalだけ開弁して燃料を噴射する指示を行う。次いで、ＣＰＵ８１はステップ４２５に進んで上記(12)式に従って燃料積算値Stauを更新し、続くステップ４３０にて上記(10)式に従って吸入空気量（排出空気量）積算値SGnを更新し、その後、ステップ４９５に進んで本ルーチンを一旦終了する。以上により、最終燃料噴射時間taufinalに応じた燃料が吸気行程を迎える気筒に対して噴射されるとともに、燃料積算値Stau及び吸入空気量積算値SGnが更新される。なお、このルーチンは、他の気筒に対しても上記と同様に実行される。
【００９５】
一方、フューエルカット実行フラグXFCの値が「１」となっている場合、ＣＰＵ８１はステップ４１５に進んだとき、同ステップ４１５にて「Ｎｏ」と判定しステップ４２０を経ることなく直接ステップ４２５に進む。これにより、燃料噴射が停止される。即ち、フューエルカットが実行される。なお、この場合、最終燃料噴射時間taufinalの値は「０」に設定される。
【００９６】
次に、上記フィードバック補正量tdfiを算出する際の作動について説明する。ＣＰＵ８１は図５に示したルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ５００から処理を開始し、ステップ５０５に進んでフィードバック制御実行条件が成立しているか否かを判定する。
【００９７】
空燃比フィードバック制御実行条件は、例えば、機関の冷却水温THWが第１所定温度以上であり、機関の一回転当りの吸入空気量（負荷）が所定値以下であり、フューエルカット中でなく（フューエルカット実行フラグXFCの値が「０」であり）、且つ、上流側空燃比センサ６７が正常であり且つ活性化しているときに成立する。
【００９８】
いま、空燃比フィードバック制御実行条件が成立しているものとして説明を続けると、ＣＰＵ８１はステップ５０５にて「Ｙｅｓ」と判定してステップ５１０に進み、現時点の上流側空燃比センサ６７の出力Vabyfsとサブフィードバック量Vafsfbとの和（Vabyfs＋Vafsfb）及び図３（Ａ）に示したマップに基いて上流側制御用空燃比abyfsを求める。
【００９９】
次に、ＣＰＵ８１はステップ５１５に進み、上記(4)式に従って現時点からＮストローク前の筒内燃料供給量Fc(k−N)を求め、ステップ５２０に進んで上記(5)式に従って現時点からＮストローク前の目標筒内燃料供給量Fcr(k−N)を求める。
【０１００】
そして、ＣＰＵ８１はステップ５２５に進んで筒内燃料供給量偏差DFcを求め、続くステップ５３０にて、上記(6)式に従ってフィードバック補正量tdfiを求める。次いで、ＣＰＵ８１は、ステップ５３５にてその時点における筒内燃料供給量偏差DFcの積分値SDFcに上記ステップ５２５にて求めた筒内燃料供給量偏差DFcを加えて、新たな筒内燃料供給量偏差の積分値SDFcを求める。
【０１０１】
次に、ＣＰＵ８１はステップ５４０に進み、上記(8)式に従って空燃比フィードバック係数FAFを算出し、ステップ５４５に進んでその時点で保持している空燃比フィードバック係数の偏差DLFAFを前回の空燃比フィードバック係数の偏差DLFAFoldとして格納する。その後、ＣＰＵ８１はステップ５５０に進み、上記ステップ５４０にて求めた空燃比フィードバック係数FAFから前回の空燃比フィードバック係数FAFoldを減じて新たな空燃比フィードバック係数の偏差DLFAFを求め、次いで、ステップ５５５に進んで、空燃比フィードバック係数のFAFを前回の空燃比フィードバック係数FAFoldとして格納する。ＣＰＵ８１は、その後、ステップ５９５にて本ルーチンを一旦終了する。
【０１０２】
以上により、フィードバック補正量tdfiが比例積分制御により求められ、このフィードバック補正量tdfiが前述した図４のステップ４１０により最終燃料噴射時間taufinalに反映される。この結果、現時点からＮストローク前の燃料供給量の過不足が補償されるので、機関の空燃比（従って、上流側触媒５３に流入するガスの空燃比）が目標空燃比abyfrと略一致せしめられる。
【０１０３】
一方、ステップ５０５の判定時において、空燃比フィードバック制御実行条件が不成立であると、ＣＰＵ８１は同ステップ５０５にて「Ｎｏ」と判定してステップ５６０に進み、フィードバック補正量tdfiの値を「０」に設定する。その後、ＣＰＵ８１は、ステップ５９５に進んで本ルーチンを一旦終了する。これにより、空燃比フィードバック制御が実質的に中止される。
【０１０４】
次に、下流側空燃比センサ６８の出力Voxsに基くサブフィードバック量Vafsfbを算出する際の作動について説明する。
【０１０５】
ＣＰＵ８１は、サブフィードバック量Vafsfbを求めるために、図６に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ６００から処理を開始し、ステップ６０５に進んでサブフィードバック制御実行条件が成立しているか否かを判定する。サブフィードバック制御実行条件は、例えば、以下の総ての条件が成立したときに成立する。
前述したステップ５０５での空燃比フィードバック制御実行条件が成立している。
機関の冷却水温THWが前記第１所定温度よりも高い第２所定温度以上である。
下流側空燃比センサ６８が正常であり、且つ、活性化している。
学習制御中でない。
触媒劣化判定条件が成立していない。
【０１０６】
いま、サブフィードバック制御実行条件が成立しているものとして説明を続けると、ＣＰＵ８１はステップ６０５にて「Ｙｅｓ」と判定してステップ６１０に進み、目標値でもある閾値Voxsrefから現時点の下流側空燃比センサ６８の出力Voxsを減じることにより、出力偏差量DVoxsを求める。次に、ＣＰＵ８１はステップ６１５に進み、上記(7)式に従ってサブフィードバック量Vafsfbを求める。
【０１０７】
次いで、ＣＰＵ８１はステップ６２０に進み、その時点における出力偏差量の積分値SDVoxsに上記ステップ６１０にて求めた出力偏差量DVoxsを加えて、新たな出力偏差量の積分値SDVoxsを求める。その後、ＣＰＵ８１は、ステップ６９５に進んで本ルーチンを一旦終了する。
【０１０８】
一方、サブフィードバック制御実行条件が成立していないとき、ＣＰＵ８１はステップ６０５にて「Ｎｏ」と判定してステップ６２５に進み、サブフィードバック量Vafsfbに「０」を設定する。これにより、サブフィードバック制御が事実上中止される。その後、ＣＰＵ８１は、ステップ６９５に進んで本ルーチンを一旦終了する。
【０１０９】
次に、フューエルカット制御（燃料噴射停止制御、燃料供給停止制御）を行う際の作動について図７を参照しながら説明する。この図７に示されたルーチンを実行することにより、フューエルカット実行フラグXFCの値が変更される。先ず、フューエルカット実行フラグXFCの値が「０」であり、且つ、上述したフューエルカット開始条件のうちのスロットルバルブ開度TA＝０が成立していない場合について述べる。
【０１１０】
ＣＰＵ８１は、図７に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ７００から処理を開始し、ステップ７０５に進んでフューエルカット実行フラグXFCの値が「０」であるか否かを判定する。
【０１１１】
この場合、フューエルカット実行フラグXFCの値は「０」である。従って、ＣＰＵ８１はステップ７０５にて「Ｙｅｓ」と判定してステップ７１０に進み、スロットルバルブ開度TAが「０」（スロットルバルブ４３が全閉）であるか否かを判定する。前述の仮定に従えば、スロットルバルブ開度TAは「０」ではない。従って、ＣＰＵ８１は、ステップ７１０にて「Ｎｏ」と判定して直接ステップ７９５に進み、本ルーチンを一旦終了する。
【０１１２】
次に、フューエルカット実行フラグXFCの値が「０」であり、且つ、スロットルバルブ開度TAは「０」であるが、上述したフューエルカット開始条件のうちのNE＞NEFCが成立していない場合について述べる。この場合、ＣＰＵ８１はステップ７０５及びステップ７１０の両ステップにて「Ｙｅｓ」と判定し、ステップ７１５にてエンジン回転速度NEがフューエルカット開始エンジン回転速度NEFCより大きいか否かを判定する。前述の仮定に従えばNE＞NEFCではないから、ＣＰＵ８１はステップ７１５にて「Ｎｏ」と判定し直接ステップ７９５に進み、本ルーチンを一旦終了する。
【０１１３】
その後、フューエルカット開始条件が成立すると、ＣＰＵ８１はステップ７０５〜ステップ７１５の総てのステップにて「Ｙｅｓ」と判定し、ステップ７２０に進んでフューエルカット実行フラグXFCの値を「１」に設定し、ステップ７９５に進んで本ルーチンを一旦終了する。これにより、ＣＰＵ８１が図４に示したルーチンを実行するとき、ステップ４１５にて「Ｎｏ」と判定してステップ４２０をスキップするようになり、フューエルカット（燃料噴射の停止、燃料供給の停止）が行われる。
【０１１４】
次に、フューエルカット実行フラグXFCの値が「１」の状態であるとき、スロットルバルブ４３が踏み込まれてスロットルバルブ開度TAが「０」でなくなった場合について説明する。このとき、ＣＰＵ８１はステップ７００に続くステップ７０５にて「Ｎｏ」と判定し、ステップ７２５に進んでスロットルバルブ開度TAが「０」であるか否かを判定する。この場合、スロットルバルブ開度TAは「０」でなくなっている。従って、ＣＰＵ８１は、ステップ７２５にて「Ｎｏ」と判定してステップ７３０に進み、フューエルカット実行フラグXFCの値を「０」に設定する。
【０１１５】
これにより、ＣＰＵ８１が図４に示したルーチンを実行するとき、ステップ４１５にて「Ｙｅｓ」と判定してステップ４２０を実行するようになり、フューエルカット（燃料噴射の停止、燃料供給の停止）が停止される。即ち、機関１０はフューエルカット状態から復帰する。
【０１１６】
一方、フューエルカット実行フラグXFCの値が「１」の状態であるとき、スロットルバルブ開度TAは「０」であるが、エンジン回転速度NEがフューエルカット停止回転速度(NEFC−NH)以下となった場合について説明する。このとき、ＣＰＵ８１はステップ７００に続くステップ７０５にて「Ｎｏ」と判定するとともにステップ７２５にて「Ｙｅｓ」と判定し、ステップ７３５に進んでエンジン回転速度NEがフューエルカット停止回転速度(NEFC−NH)より大きいか否かを判定する。
【０１１７】
この場合、エンジン回転速度NEはフューエルカット停止回転速度(NEFC−NH)以下となっている。従って、ＣＰＵ８１は、ステップ７３５にて「Ｎｏ」と判定してステップ７３０に進み、フューエルカット実行フラグXFCの値を「０」に設定する。従って、ＣＰＵ８１が図４に示したルーチンを実行するとき、ステップ４１５にて「Ｙｅｓ」と判定してステップ４２０を実行するようになり、フューエルカットが停止される。
【０１１８】
最後に、フューエルカット実行フラグXFCの値が「１」の状態であるとき、スロットルバルブ開度TAは「０」であり、且つ、エンジン回転速度NEがフューエルカット停止回転速度(NEFC−NH)より大きい場合について説明する。このとき、ＣＰＵ８１はステップ７００に続くステップ７０５にて「Ｎｏ」と判定するとともに、ステップ７２５及びステップ７３５の両ステップにて「Ｙｅｓ」と判定し、ステップ７３０を実行することなく、直接ステップ７９５に進んで本ルーチンを一旦終了する。従って、フューエルカット実行フラグXFCは「１」の値に維持されるので、フューエルカットが継続される。以上のようにして、フューエルカット制御が実行される。
【０１１９】
次に、上記のフューエルカット制御により、フューエルカットが開始されたときに行われるフューエルカット中制御における本触媒劣化判定装置の作動について説明する。このフューエルカット中制御を行うため、ＣＰＵ８１は、図８にフローチャートにより示したフューエルカット中制御ルーチンを所定時間の経過毎に繰り返し実行している。
【０１２０】
従って、所定のタイミングになると、ＣＰＵ８１はステップ８００から処理を開始し、ステップ８０２に進んで学習完了フラグXfafgcomの値が「１」であるか否かを判定する。この学習完了フラグXfafgcomの値は、図示しないイグニッション・キーがオンされたときに起動される図示しないイニシャルルーチンにて「０」に設定され、後述する図１０に示したルーチンにより学習が完了したとき（学習値が適正値に到達したと判定されたとき）に「１」に設定される（ステップ１０８０を参照。）。
【０１２１】
いま、学習が完了して学習完了フラグXfafgcomの値が「１」となっていて、且つ、その他の触媒劣化判定条件が成立しているとして説明を続ける。
【０１２２】
この場合、ＣＰＵ８１はステップ８０２にて「Ｙｅｓ」と判定してステップ８０４に進み、その他の触媒劣化判定条件が成立しているか否かを判定する。この場合、その他の触媒劣化判定条件は成立しているので、ＣＰＵ８１はステップ８０４にて「Ｙｅｓ」と判定し、ステップ８０６に進んで触媒劣化判定許可フラグXhanの値を「１」に設定する。
【０１２３】
なお、ステップ８０２において「Ｙｅｓ」と判定されることは、アイドル運転領域に対する学習値efafgxの学習が完了しており、ステップ８０４にて「Ｙｅｓ」と判定されることは、現在の運転状態（運転領域）がアイドル運転領域であることを意味する。従って、ステップ８０２とステップ８０４とにより、アイドル運転領域であって、アイドル運転領域に対する学習が完了していることが確認される。
【０１２４】
次いで、ＣＰＵ８１はステップ８０８に進み、フューエルカット実行フラグXFCの値が「０」から「１」に変化した直後か否かを判定する。即ち、ＣＰＵ８１は、フューエルカットが開始された直後であるか否かを判定する。
【０１２５】
通常の運転では、フューエルカットは実行されないから、ＣＰＵ８１はステップ８０８にて「Ｎｏ」と判定してステップ８１０に進み、フューエルカット実行フラグXFCの値が「１」であるか否かを判定する。この場合、フューエルカットは実行されていないからフューエルカット実行フラグXFCの値は「０」である。従って、ＣＰＵ８１は、ステップ８１０にて「Ｎｏ」と判定してステップ８９５に進み、本ルーチンを一旦終了する。
【０１２６】
かかる状態において、フューエルカット開始条件が成立し、フューエルカットが開始されると、フューエルカット実行フラグXFCの値は「０」から「１」へと変化する。このため、ＣＰＵ８１はステップ８００〜ステップ８０６に続くステップ８０８にて「Ｙｅｓ」と判定し、ステップ８１２に進んで下流側空燃比センサ６８の出力Voxsが理論空燃比に相当する閾値Voxsref以上であるか否かを判定する。即ち、下流側空燃比センサ６８が理論空燃比よりもリッチな空燃比を検出しているか否かを判定する。
【０１２７】
このとき、下流側空燃比センサ６８の出力Voxsが理論空燃比に相当する閾値Voxsref以上であれば、ＣＰＵ８１はステップ８１２にて「Ｙｅｓ」と判定してステップ８１４に進み、リッチフラグXrichの値を「１」に設定する。一方、下流側空燃比センサ６８の出力Voxsが理論空燃比に相当する閾値Voxsrefより小さければ、ＣＰＵ８１はステップ８１２にて「Ｎｏ」と判定してステップ８１６に進み、リッチフラグXrichの値を「０」に設定する。
【０１２８】
次いで、ＣＰＵ８１はステップ８１８に進み、供給酸素量（吸収酸素量）Ckyuの値を「０」に設定し、続くステップ８２０にて触媒劣化判定禁止フラグXkinsiの値を「０」に設定する。そして、ＣＰＵ８１は、ステップ８２１にて吸入空気量積算値SGnの値を「０」に設定し、ステップ８９５に進んで本ルーチンを一旦終了する。なお、ステップ８２０を廃止し、その代わりに、図示しないイグニッション・キーがオンされたときに起動される図示しないイニシャルルーチンにおいて、触媒劣化判定禁止フラグXkinsiの値を「０」に設定してもよい。
【０１２９】
所定時間が経過すると、ＣＰＵ８１は再びステップ８００から処理を開始する。この時点は、フューエルカット実行フラグXFCの値が「０」から「１」へ変化した直後ではない。従って、ＣＰＵ８１はステップ８００〜８０６を経由してステップ８０８へと進んだとき、同ステップ８０８にて「Ｎｏ」と判定してステップ８１０に進む。
【０１３０】
この時点では、フューエルカット実行フラグXFCの値は「１」となっている。従って、ＣＰＵ８１は、ステップ８１０にて「Ｙｅｓ」と判定してステップ８２２に進み、上記(10)式に従って上流側触媒５３に供給される酸素の変化量delO2を求める。次いで、ＣＰＵ８１はステップ８２６に進み、上記(11)式に従ってその時点の供給酸素量Ckyuに供給される酸素の変化量delO2を加えて新たな供給酸素量Ckyuを求め、続くステップ８２８にて吸入空気流量積算値SGnを「０」に設定する。
【０１３１】
次いで、ＣＰＵ８１はステップ８３０に進み、リッチフラグXrichの値が「１」であるか否かを判定する。このとき、前述したステップ８１６にてリッチフラグXrichの値が「０」に設定されていると、ＣＰＵ８１はステップ８３０にて「Ｎｏ」と判定してステップ８３２に進み、リッチ履歴フラグXrirekiの値を「０」に設定し、ステップ８９５に進んで本ルーチンを一旦終了する。
【０１３２】
これに対し、前述したステップ８１４にてリッチフラグXrichの値が「１」に設定されていると、ＣＰＵ８１はステップ８３０にて「Ｙｅｓ」と判定してステップ８３４に進み、下流側空燃比センサ６８の出力Voxsが理論空燃比に相当する閾値Voxsrefより小さいか否かを判定する。即ち、下流側空燃比センサ６８が理論空燃比よりもリーンな空燃比を検出しているか否かを判定する。
【０１３３】
この場合、リッチフラグXrichの値が「１」であるということは、フューエルカット開始時点で下流側空燃比センサ６８が理論空燃比よりもリッチな空燃比を検出していたことを意味するから、フューエルカット開始直後の現時点では上流側触媒５３の下流にリーンな空燃比のガスは流出しない。従って、下流側空燃比センサ６８の出力Voxsは理論空燃比に相当する閾値Voxsrefより大きいから、ＣＰＵ８１はステップ８３４にて「Ｎｏ」と判定し、ステップ８３２及びステップ８９５へと進み、本ルーチンを一旦終了する。
【０１３４】
更に、フューエルカットが継続すると、ＣＰＵ８１はステップ８００〜８１０及びステップ８２２以降のステップへと繰り返し進むようになる。この結果、下流側空燃比センサ６８の出力Voxsが理論空燃比に相当する閾値Voxsrefより小さくなったか否か（上流側触媒５３の下流に理論空燃比よりもリーンな空燃比のガスが流出し始めたか否か）がモニタされることになる。
【０１３５】
そして、フューエルカット中に下流側空燃比センサ６８の出力Voxsが理論空燃比に相当する閾値Voxsrefより小さくなると、ＣＰＵ８１はステップ８３４に進んだとき、同ステップ８３４にて「Ｙｅｓ」と判定し、ステップ８３６に進んでリッチ履歴フラグXrirekiの値を「１」に設定する。次いで、ＣＰＵ８１はステップ８３８に進み、その時点までに取得されている供給酸素量Ckyuの値が、正常触媒判定値Cnmlより大きいか否かを判定する。
【０１３６】
そして、供給酸素量Ckyuの値が正常触媒判定値Cnmlより大きければ、ＣＰＵ８１はステップ８３８にて「Ｙｅｓ」と判定し、ステップ８４０に進んで触媒正常フラグXokの値を「１」に設定するとともに、続くステップ８４２にて触媒劣化判定禁止フラグXkinsiの値を「１」に設定し、ステップ８９５に進んで本ルーチンを一旦終了する。なお、触媒正常フラグXokの値が「１」であるとき、上流側触媒５３は劣化していないと判定されたことを意味する。
【０１３７】
これに対し、供給酸素量Ckyuの値が正常触媒判定値Cnml以下であれば、ＣＰＵ８１はステップ８３８にて「Ｎｏ」と判定し、ステップ８９５に直接進んで本ルーチンを一旦終了する。
【０１３８】
このように、ステップ８０８〜ステップ８１６及びステップ８３０〜ステップ８３６は、下流側空燃比センサ６８の出力Voxsが、フューエルカット開始時に閾値Voxsrefより大きく、フューエルカット中に閾値Voxsrefより小さくなったことを検出している。即ち、これらのステップにより、フューエルカット開始時には上流側触媒５３から理論空燃比よりもリーンな空燃比のガスが流出していない状態（即ち、上流側触媒５３の酸素吸蔵量OSAが最大酸素吸蔵量Cmaxではない状態）であり、フューエルカット中に同リーンな空燃比のガスが上流側触媒５３から流出した状態（即ち、上流側触媒５３の酸素吸蔵量OSAが最大酸素吸蔵量Cmaxに到達した状態）に変化したか否かが判定（モニタ）される。そしてＣＰＵ８１は、そのような状態が検出されたとき、「リッチ履歴あり」としてリッチ履歴フラグXrirekiの値を「１」に設定する。
【０１３９】
また、ステップ８３８〜ステップ８４２は、下流側空燃比センサ６８の出力Voxsがフューエルカット開始時に閾値Voxsrefより大きい場合に、「フューエルカット開始時点」から「フューエルカット中に下流側空燃比センサ６８の出力Voxsが閾値Voxsrefより小さくなる時点」までに上流側触媒５３に供給（吸蔵）された供給酸素量Ckyuが正常触媒判定値Cnmlより大きければ、その上流側触媒５３の最大酸素吸蔵量Cmaxは供給酸素量Ckyuより大きいのであるから、直ちに上流側触媒５３は正常（非劣化）であると判定できるという考えに基づいている。
【０１４０】
そして、この段階で上流側触媒５３が正常（非劣化）であると判定できた場合、触媒劣化判定禁止フラグXkinsiの値を「１」に設定することにより、フューエルカット停止後（燃料供給再開後）において触媒劣化判定のために空燃比を設定リッチ空燃比とする設定リッチ空燃比制御を禁止する。これにより、フューエルカット停止後において、エミッションが悪化してしまうことを防止することができる。
【０１４１】
なお、学習が完了しておらず、学習完了フラグXfafgcomの値が「０」となっている場合、ＣＰＵ８１は、ステップ８０２にて「Ｎｏ」と判定してステップ８４４に進み、触媒劣化判定許可フラグXhanの値を「０」に設定してからステップ８９５にて直ちに本ルーチンを一旦終了する。同様に、その他の触媒劣化判定条件が成立していない場合、ＣＰＵ８１はステップ８０４にて「Ｎｏ」と判定してステップ８４４に進み、その後、直ちに本ルーチンを一旦終了する。
【０１４２】
また、ＣＰＵ８１がステップ８００〜８１０及びステップ８２２以降のステップを繰り返し実行しているとき、フューエルカット停止条件が成立してフューエルカット実行フラグXFCの値が「０」に変更されると、ＣＰＵ８１はステップ８１０にて「Ｎｏ」と判定し、直接ステップ８９５に進んで本ルーチンを一旦終了する。これにより、フューエルカット開始時点からフューエルカット停止時点までの供給酸素量Ckyuが保持される。
【０１４３】
次に、上記のフューエルカットが終了した直後に行われるフューエルカット復帰後制御（触媒劣化判定制御）における本触媒劣化判定装置の作動について説明する。かかる制御を行うため、ＣＰＵ８１は、図９にフローチャートにより示したフューエルカット復帰後制御ルーチンを所定時間の経過毎に繰り返し実行している。
【０１４４】
従って、所定のタイミングになると、ＣＰＵ８１はステップ９００から処理を開始し、ステップ９０２に進んでリッチ化フラグXenrichの値が「０」であるか否かを判定する。リッチ化フラグXenrichの値は、設定リッチ空燃比制御により、機関に供給される混合気の空燃比が理論空燃比よりもリッチな設定リッチ空燃比に設定されている場合に「１」が設定され、その他の場合に「０」が設定されるフラグである。また、リッチ化フラグXenrichの値は、図示しないイグニッション・キーがオンされたときに起動される図示しないイニシャルルーチンにて「０」に設定される。
【０１４５】
いま、始動後であって、フューエルカットが実行される前（フューエルカット実行フラグXFCの値は「０」）であり、従って、リッチ化フラグXenrichの値が「０」となっているとして説明を続けると、ＣＰＵ８１はステップ９０２にて「Ｙｅｓ」と判定してステップ９０４に進み、フューエルカット実行フラグXFCの値が「１」から「０」に変化した直後であるか否かを判定する。
【０１４６】
前述の仮定によれば、フューエルカットは実行されていないからフューエルカット実行フラグXFCの値は「０」のまま変化していない。従って、ＣＰＵ８１はステップ９０４にて「Ｎｏ」と判定し、ステップ９９５に進んで本ルーチンを一旦終了する。ＣＰＵ８１は、フューエルカットが実行されない限り、上述したステップを繰り返し実行する。この結果、ステップ９０４にてフューエルカット実行フラグXFCが「１」から「０」へと変化したか直後であるか否かがモニタされることになる。
【０１４７】
その後、フューエルカット開始条件が成立すると、図７に示したルーチンによりフューエルカット実行フラグXFCの値は「１」へと変化し、更に、フューエルカット停止条件が成立するとフューエルカット実行フラグXFCの値は「０」へと変化する。このとき、ＣＰＵ８１がステップ９０４の処理を実行すると、ＣＰＵ８１は同ステップ９０４にて「Ｙｅｓ」と判定し、ステップ９０６にて触媒劣化判定許可フラグXhanの値が「１」であるか否かを判定する。
【０１４８】
この場合、触媒劣化判定条件が成立しておらず、従って、図８のステップ８４４にて触媒劣化判定許可フラグXhanの値が「０」に設定されていると、ＣＰＵ８１はステップ９０６にて「Ｎｏ」と判定し、ステップ９９５に進んで本ルーチンを一旦終了する。
【０１４９】
これに対し、触媒劣化判定条件が成立していて、触媒劣化判定許可フラグXhanの値が「１」に設定されていると、ＣＰＵ８１はステップ９０６にて「Ｙｅｓ」と判定し、ステップ９０８に進んで触媒劣化判定禁止フラグXkinsiの値が「０」であるか否かを判定する。このとき、前述した図８のステップ８４２にて触媒劣化判定禁止フラグXkinsiの値が「１」に設定されていると、ＣＰＵ８１はステップ９０８にて「Ｎｏ」と判定し、ステップ９９５に進んで本ルーチンを一旦終了する。つまり、触媒劣化判定禁止フラグXkinsiの値が「１」であって、上流側触媒５３が既に非劣化触媒であると判定されているとき、以降のフューエルカット復帰後制御（従って、設定リッチ空燃比制御）は行われない。
【０１５０】
一方、触媒劣化判定禁止フラグXkinsiの値が「０」となっていると、ＣＰＵ８１はステップ９０８にて「Ｙｅｓ」と判定し、ステップ９１０に進んで増量係数kenrichの値を「１」より大きい値α（＝理論空燃比／設定リッチ空燃比）に設定するとともに、目標空燃比abyfrの値を設定リッチ空燃比に設定する。次いで、ＣＰＵ８１はステップ９１２に進んでリッチ化フラグXenrichの値を「１」に設定するとともに、続くステップ９１４にて放出酸素量Chosytuの値を「０」に設定し、更に、ステップ９１６に進んで燃料積算値Stauの値を「０」に設定する。
【０１５１】
次いで、ＣＰＵ８１はステップ９１８にてフューエルカット実行フラグXFCの値が「０」か否かを判定する。この場合、フューエルカット実行フラグXFCの値は「１」から「０」へと変化した直後であるから、ＣＰＵ８１はステップ９１８にて「Ｙｅｓ」と判定し、ステップ９２０に進んで下流側空燃比センサ６８の出力Voxsの値が閾値Voxsrefより小さいか否かを判定する。
【０１５２】
この場合、フューエルカットが終了した直後であるから、通常、下流側空燃比センサ６８の出力Voxsの値は閾値Voxsrefより小さくなっている。従って、ＣＰＵ８１はステップ９２０にて「Ｙｅｓ」と判定してステップ９２２に進み、上記(13)式に従って放出される酸素の変化量delO2を求め、ステップ９２４にて上記(14)式に従って放出酸素量Chosytuを算出する。そして、ＣＰＵ８１は、ステップ９２６に進んで次回の演算に備えて燃料積算値Stauの値を「０」に設定し、ステップ９９５に進んで本ルーチンを一旦終了する。
【０１５３】
次に、ＣＰＵ８１が本ルーチンの処理をステップ９００から開始してステップ９０２に進んだとき、先のステップ９１２によりリッチ化フラグXenrichの値は「１」に設定されているから、ＣＰＵ８１はステップ９０２にて「Ｎｏ」と判定して直接ステップ９１８に進む。この時点においても、フューエルカット開始条件が再び成立しない限り、フューエルカット実行フラグXFCの値は「０」に維持されている。従って、ＣＰＵ８１は、ステップ９１８にて「Ｙｅｓ」と判定し、ステップ９２０〜ステップ９２６及びステップ９９５へと進む。この結果、フューエルカット停止後（フューエルカット復帰後）の放出酸素量Chosytuが更新されて行く。また、この間、増量係数kenrichがαに設定され、且つ、目標空燃比abyfrが設定リッチ空燃比abyfrichに設定されているから、機関に供給される混合気の空燃比は理論空燃比よりもリッチな設定リッチ空燃比となっている。従って、上流側触媒５３に吸蔵されている酸素が次第に消費されて行く。
【０１５４】
このような状態が継続すると、上流側触媒５３が吸蔵していた総ての酸素が放出される。この結果、上流側触媒５３の下流に未燃成分を過剰に含んだ理論空燃比よりもリッチな空燃比のガスが流出する。従って、下流側空燃比センサ６８の出力Voxsは閾値Voxsrefより小さい値から大きい値へと変化する。このとき、ＣＰＵ８１がステップ９２０に進むと、同ＣＰＵ８１は同ステップ９２０にて「Ｎｏ」と判定し、ステップ９２７に進んで増量係数kenrichの値を１．０に設定し且つ目標空燃比abyfrを理論空燃比stoichに設定するとともに、リッチ化フラグXenrichの値を「０」に設定する。これにより、設定リッチ空燃比制御が終了され、機関に供給される混合気の空燃比は理論空燃比に制御される。
【０１５５】
次いで、ＣＰＵ８１はステップ９２８に進み、フューエルカット中に算出しておいた供給酸素量Ckyu（図８のステップ８２６を参照。）と放出酸素量Chosytu（図９のステップ９２４を参照。）との差がマージンとしての所定値βより大きいか否かを判定する。なお、マージンβは「０」以上であればよく、従って、β＝０でもよい。換言すると、ステップ９２８では、放出酸素量Chosytuが供給酸素量Ckyuより小さいか否かが判定される。
【０１５６】
このとき、放出酸素量Chosytuが供給酸素量Ckyuより小さければ（放出酸素量Chosytuが供給酸素量Ckyuからマージンβを減じた値より小さければ）、ＣＰＵ８１はステップ９２８にて「Ｙｅｓ」と判定してステップ９３０に進み、放出酸素量Chosytuが劣化判定値Cdetより小さいか否かを判定する。そして、放出酸素量Chosytuが劣化判定値Cdetより小さければ、ＣＰＵ８１はステップ９３０にて「Ｙｅｓ」と判定してステップ９３２に進み、触媒劣化フラグXngの値を「１」に設定する。これに対し、放出酸素量Chosytuが劣化判定値Cdet以上であれば、ＣＰＵ８１はステップ９３０にて「Ｎｏ」と判定してステップ９３４に進み、触媒正常フラグXokに「１」を設定する。その後、ＣＰＵ８１はステップ９３６に進んで触媒劣化判定禁止フラグXkinsiの値を「１」に設定し、ステップ９９５に進んで本ルーチンを一旦終了する。なお、触媒正常フラグXokの値が「１」であるとき、上流側触媒５３は劣化していないと判定されたことを意味し、触媒劣化フラグXngの値が「１」であるとき、上流側触媒５３は劣化していると判定されたことを意味する。
【０１５７】
上述したように、放出酸素量Chosytuが供給酸素量Ckyuより小さければ、フューエルカット中に上流側触媒５３に十分な酸素が供給された結果、上流側触媒５３の酸素吸蔵量OSAは最大酸素吸蔵量Cmaxに到達していたと考えられる。従って、放出酸素量Chosytuは最大酸素吸蔵量Cmaxと等しくなっていると考えられるから、この放出酸素量Chosytuが劣化判定値Cdetより小さいとき、上流側触媒５３は劣化していると判定することができる。なお、劣化判定値Cdetは、上流側触媒５３が劣化していると判定すべき程度に劣化しているとき、その上流側触媒５３が示す最大酸素吸蔵量の最大値より大きく、且つ、上流側触媒５３が劣化していないと判定すべき程度に劣化しているとき、その上流側触媒５３が示す最大酸素吸蔵量の最小値より小さい値に設定されている。
【０１５８】
また、ＣＰＵ８１がステップ９２８に進んだとき、放出酸素量Chosytuが供給酸素量Ckyuより小さくなければ、フューエルカット中に上流側触媒５３には十分な酸素が供給されておらず、従って、放出酸素量Chosytuは最大酸素吸蔵量Cmaxよりも小さいと考えられる。この場合、放出酸素量Chosytuが劣化判定値Cdetよりも大きいか否かに基づいて、上流側触媒５３の劣化判定を行うことは誤判定を招く。
【０１５９】
このようなことから、放出酸素量Chosytuが供給酸素量Ckyuより小さくないとき（正確には、放出酸素量Chosytu≧供給酸素量Ckyu−βであるとき）、ＣＰＵ８１はステップ９２８にて「Ｎｏ」と判定してステップ９３８に進み、供給酸素量Ckyuの値を「０」に設定する。次いで、ＣＰＵ８１はステップ９４０に進み、放出酸素量Chosytuの値を「０」に設定するとともに、続くステップ９４２にて触媒劣化判定許可フラグXhanの値を「０」に設定し、ステップ９９５に進んで本ルーチンを一旦終了する。
【０１６０】
なお、増量係数kenrichがαに設定され（ステップ９１０を参照。）、リッチ化フラグXenrichの値が「１」に設定されている（ステップ９１２を参照。）とき、即ち、フューエルカット停止後に空燃比が設定リッチ空燃比に制御されているとき、下流側空燃比センサ６８の出力Voxsの値が閾値Voxsrefより大きくなる前に、再びフューエルカットが開始されてフューエルカット実行フラグXFCの値が「１」に設定されると、ＣＰＵ８１はステップ９１８に進んだとき「Ｎｏ」と判定してステップ９４４に進み、増量係数kenrichの値を１．０に設定し且つ目標空燃比abyfrを理論空燃比stoichに設定する。また、ＣＰＵ８１は、ステップ９４６にてリッチ化フラグXenrichの値を「０」に設定するとともに、続くステップ９４８にて触媒劣化判定許可フラグXhanの値を「０」に設定し、ステップ９９５に進んで本ルーチンを一旦終了する。以上が、フューエルカット復帰後制御における作動である。
【０１６１】
次に、学習値efafgxを取得するための学習制御における本触媒劣化判定装置の作動について説明する。かかる制御を行うため、ＣＰＵ８１は、図１０にフローチャートにより示した学習制御ルーチンを所定時間の経過毎に繰り返し実行している。なお、アイドル運転領域に対する学習値efafgxが適正値となっているか否か（アイドル運転領域の学習が完了しているか否か）は、前述したように、触媒劣化判定条件の一つを構成している（図８のステップ８０２を参照。）。
【０１６２】
ＣＰＵ８１は、図１０に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ１０００から処理を開始し、ステップ１００５に進んで学習制御条件が成立しているか否かを判定する。具体的に述べると、フィードバック制御実行条件が成立し、且つ、機関の冷却水温THWが第１所定温度より高い第３所定温度以上であるか否かが判定される。
【０１６３】
いま、学習制御条件が成立しているとして説明を続けると、ＣＰＵ８１はステップ１００５にて「Ｙｅｓ」と判定してステップ１０１０に進み、現在の機関運転状態（吸入空気量Gn）に対応する運転領域に対応して記憶されているFAFなまし値FAFSM(i)を前回のFAFなまし値FAFSM(i-1)として読み出す。
【０１６４】
次いで、ＣＰＵ８１はステップ１０１５に進んで上記(9)式に従って今回のFAFなまし値FAFSM(i)を求め、ステップ１０２０に進んで今回のFAFなまし値FAFSM(i)を現在の機関運転状態に対する運転領域に対応させて記憶する。
【０１６５】
次に、ＣＰＵ８１はステップ１０２５に進み、現在の機関運転状態に対応する運転領域に対する学習値efafgxが更新されてから、又は、現在の機関運転状態に対応する運転領域に対する学習値efafgxを更新するための判定がなされてから（即ち、ステップ１０３０以降の処理が実行されてから）、新たにnsho回だけその運転領域のFAFなまし値FAFSM(i)が算出・更新されたか否かを判定する。このステップ１０２５における判定結果が「Ｎｏ」であるとき、ＣＰＵ８１はステップ１０９５に進んで本ルーチンを一旦終了する。
【０１６６】
これに対し、ステップ１０２５における判定結果が「Ｙｅｓ」であるとき、ＣＰＵ８１はステップ１０３０に進み、なまし値FAFSM(i)が閾値A1（＞０）より大きいか否かを判定する。
【０１６７】
いま、なまし値FAFSM(i)が閾値A1より大きいとして説明を続けると、ＣＰＵ８１はステップ１０３５に進んでその運転領域に対応する学習値efafgxの値を固定値Δgxだけ増大する。その後、ＣＰＵ８１は、ステップ１０４０に進み、上記増大された学習値efafgxを現在の機関運転状態に対する運転領域に対応する学習値として記憶する。次いで、ＣＰＵ８１はステップ１０４５に進み、現在の機関運転状態に対する運転領域がアイドル運転領域であるか否かを判定する。
【０１６８】
そして、現在の機関運転状態に対する運転領域がアイドル運転領域であると、ＣＰＵ８１はステップ１０４５にて「Ｙｅｓ」と判定し、ステップ１０５０にて学習完了判定用カウンタCcomの値を「０」に設定し、その後、ステップ１０９５に進んで本ルーチンを一旦終了する。これに対し、現在の機関運転状態に対する運転領域がアイドル運転領域でなければ、ＣＰＵ８１はステップ１０４５にて「Ｎｏ」と判定し、ステップ１０４５からステップ１０９５に直接進んで本ルーチンを一旦終了する。
【０１６９】
一方、ＣＰＵ８１は、ステップ１０３０に進んだとき、なまし値FAFSM(i)が閾値A1以下であると、同ステップ１０３０にて「Ｎｏ」と判定してステップ１０５５へと進み、なまし値FAFSM(i)が閾値−A1より小さいか否かを判定する。そして、まし値FAFSM(i)が閾値−A1より小さいとき、ＣＰＵ８１はステップ１０５５にて「Ｙｅｓ」と判定してステップ１０６０に進み、その運転領域に対応する学習値efafgxの値を固定値Δgxだけ減少する。
【０１７０】
その後、ＣＰＵ８１は、ステップ１０４０にて上記減少された学習値efafgxを現在の機関運転状態に対する運転領域に対応する学習値として記憶する。次いで、ＣＰＵ８１は、現在の機関運転状態に対する運転領域がアイドル運転領域であると、ステップ１０４５及びステップ１０５０の処理を実行し、ステップ１０９５にて本ルーチンを一旦終了する。また、ＣＰＵ８１は、現在の機関運転状態に対する運転領域がアイドル運転領域でなければ、ステップ１０４５から直接ステップ１０９５に進み、本ルーチンを一旦終了する。
【０１７１】
他方、ＣＰＵ８１は、ステップ１０５５に進んだとき、なまし値FAFSM(i)が閾値−A1以上であると、同ステップ１０５５にて「Ｎｏ」と判定してステップ１０６５へと進み、機関運転状態に対する運転領域がアイドル運転領域であるか否かを判定する。
【０１７２】
そして、現在の機関運転状態に対する運転領域がアイドル運転領域であると、ＣＰＵ８１はステップ１０６５にて「Ｙｅｓ」と判定してステップ１０７０に進み、学習完了判定用カウンタCcomの値を「１」だけ増大する。これにより、機関運転状態に対する運転領域がアイドル運転領域であるときに得られたFAFなまし値FAFSM(i)が−A1〜A1の幅内にあるとき、学習完了判定用カウンタCcomの値が「１」ずつ増大されることになる。
【０１７３】
その後、ＣＰＵ８１は、ステップ１０７５にて学習完了判定用カウンタCcomの値が学習完了判定閾値Ccomth以上であるか否かを判定する。そして、学習完了判定用カウンタCcomの値が学習完了判定閾値Ccomth以上であれば、ＣＰＵ８１はステップ１０７５にて「Ｙｅｓ」と判定してステップ１０８０に進み、同ステップ１０８０にて学習完了フラグXfafgcomの値を「１」に設定した後、ステップ１０９５に進んで本ルーチンを一旦終了する。一方、学習完了判定用カウンタCcomの値が学習完了判定閾値Ccomthより小さければ、ＣＰＵ８１はステップ１０７５にて「Ｎｏ」と判定して直接ステップ１０９５に進み、本ルーチンを一旦終了する。このように、ステップ１０５０、ステップ１０７０及びステップ１０７５などは、学習値が適正値となっているか否かを判定する学習完了判定手段を構成している。
【０１７４】
また、ＣＰＵ８１はステップ１０６５に進んだとき、現在の機関運転状態に対する運転領域がアイドル運転領域でなければ、同ステップ１０６５にて「Ｎｏ」と判定してステップ１０９５に直接進み、本ルーチンを一旦終了する。
【０１７５】
以上のように、学習値efafgxが更新されて行く。また、アイドル運転領域に対応するFAFなまし値FAFSM(i)が所定回数更新されたとき、その値が幅−A1〜A1内の値である状態が学習完了判定閾値Ccomth回連続すると、アイドル運転領域に対する学習値efafgxが適正値となったため、アイドル運転領域において学習が完了したと判定し、学習完了フラグXfafgcomの値が「１」に設定される。
【０１７６】
以上、説明したように、本発明による触媒劣化判定装置の一実施形態は、フューエルカット停止後の酸素放出量Chosytuがフューエルカット中の酸素供給量Ckyuより小さいか否かを判定し、フューエルカット停止後の酸素放出量Chosytuがフューエルカット中の酸素供給量Ckyuより小さいとき、その酸素放出量Chosytuは最大酸素吸蔵量Cmaxであるとみなし、同酸素放出量Chosytuに基づいて触媒劣化判定を実行する。従って、誤判定することのない触媒劣化判定の機会を増大することができる。
【０１７７】
なお、本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上流側空燃比センサ６７は、下流側空燃比センサ６８と同様な酸素濃度センサであってもよい。この場合、上流側の酸素濃度センサの出力がリーンであることを示したときに次第に増大し、リッチであることを示したときに次第に減少するとともに、上流側の酸素濃度センサの出力がリーンからリッチへと変化したことを示したときに所定量ＳＫｌだけスキップ的に減少し、リッチからリーンへと変化したことを示したときに所定量ＳＫｒだけスキップ状に増大するフィードバック補正量を求め、これを基本燃料噴射時間tfbseに乗じることで最終燃料噴射時間taufinalを求めてもよい。
【０１７８】
そして、このようなフィードバック制御において、下流側空燃比センサ６８の出力Voxsが目標値（閾値）Voxsrefより小さいとき所定量ＳＫｒを次第に増大させるとともに所定量ＳＫｌを次第に減少せしめ、下流側空燃比センサ６８の出力Voxsが目標値Voxsrefより大きいとき所定量ＳＫｒを次第に減少させるとともに所定量ＳＫｌを次第に増大せしめてもよい。
【図面の簡単な説明】
【０１７９】
【図１】フューエルカット中及びフューエルカット停止後の酸素吸蔵量の変化を示したタイムチャートである。
【図２】内燃機関に適用した本発明の一実施形態に係る触媒劣化判定装置（空燃比制御装置、燃料噴射量制御装置）の概略を示した図である。
【図３】（Ａ）は空燃比と図２に示した上流側空燃比センサの出力値の関係を示したグラフであり、（Ｂ）は空燃比と図２に示した下流側空燃比センサの出力値の関係を示したグラフである。
【図４】図２に示したＣＰＵが実行する燃料噴射制御ルーチンを示したフローチャートである。
【図５】図２に示したＣＰＵがフィードバック補正量を算出するために実行するルーチンを示したフローチャートである。
【図６】図２に示したＣＰＵがサブフィードバック量を算出するために実行するルーチンを示したフローチャートである。
【図７】図２に示したＣＰＵが実行するフューエルカット制御ルーチンを示したフローチャートである。
【図８】図２に示したＣＰＵが実行するフューエルカット中制御ルーチンを示したフローチャートである。
【図９】図２に示したＣＰＵが実行するフューエルカット復帰後制御ルーチンを示したフローチャートである。
【図１０】図２に示したＣＰＵが実行する学習制御ルーチンを示したフローチャートである。
【符号の説明】
【０１８０】
２５…燃焼室、３２…吸気弁、３５…排気弁、３９…インジェクタ、５３…上流側触媒、６７…上流側空燃比センサ、６８…下流側空燃比センサ（酸素濃度センサ）、８０…電気制御装置、８１…ＣＰＵ。
【図１】
2005207286.tif 000003
【図２】
2005207286.tif 000004
【図３】
2005207286.tif 000005
【図４】
2005207286.tif 000006
【図５】
2005207286.tif 000007
【図６】
2005207286.tif 000008
【図７】
2005207286.tif 000009
【図８】
2005207286.tif 000010
【図９】
2005207286.tif 000011
【図１０】
2005207286.tif 000012