(57)【要約】【課題】触媒の劣化度に応じた空燃比フィードバック補正を行い、触媒の劣化が進行した場合であっても、排気エミッションの悪化を防止する【解決手段】触媒の劣化に応じて設定した触媒劣化診断値ＣＡＴＤＩＡＧＡで触媒診断学習値ｂＣＡＴＤＩＡＧＡを更新し（Ｓ１７）、この触媒診断学習値ｂＣＡＴＤＩＡＧＡに基づき、Ｉ分リッチ補正値設定テーブルｔＩＲＣＡＴＳＢＦＢＡを参照してＩ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡを設定し（Ｓ１８）、又Ｉ分リーン補正値設定テーブルｔＩＬＣＡＴＳＢＦＢＡを参照してＩ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡを設定する（Ｓ１９）。そして、この両補正値ｂＩＲＣＡＴＳＢＦＢＡ，ｂＩＬＣＡＴＳＢＦＢＡで空燃比フィードバック補正係数のＩ分リッチ定数とＩ分リーン定数とを補正する。【選択図】図３
2004019467.tif 000002
【特許請求の範囲】
【請求項１】
エンジンの排気系に介装した触媒の上流と下流とにそれぞれフロント空燃比センサとリア空燃比センサとを配設し、
上記両空燃比センサの出力値に応じて比例積分制御により空燃比フィードバック補正係数を設定し、該空燃比フィードバック補正係数で燃料噴射量を空燃比補正するエンジンの空燃比フィードバック制御装置において、
上記リア空燃比センサ出力値のリッチ／リーンの反転周期を検出する反転周期算出手段と、
上記反転周期に基づき触媒劣化診断値を設定する触媒劣化診断値設定手段と、
上記触媒劣化診断値に基づき上記空燃比フィードバック補正係数の比例定数と積分定数との少なくとも一方を補正する補正値を設定する補正手段と、
を備えることを特徴とするエンジンの空燃比フィードバック制御装置。
【請求項２】
エンジンの排気系に介装した触媒の上流と下流とにそれぞれフロント空燃比センサとリア空燃比センサとを配設し、
上記両空燃比センサの出力値に応じて比例積分制御により空燃比フィードバック補正係数を設定し、該空燃比フィードバック補正係数で燃料噴射量を空燃比補正するエンジンの空燃比フィードバック制御装置において、
上記フロント空燃比センサ出力値の変化量を算出するフロント空燃比センサ出力値変化量算出手段と、
上記リア空燃比センサ出力値の変化量を算出するリア空燃比センサ出力値変化量算出手段と、
上記フロント空燃比センサ出力値の変化量と上記リア空燃比センサ出力値の変化量との比較値を算出する比較値算出手段と、
上記比較値に基づき触媒劣化診断値を設定する触媒劣化診断値設定手段と、
上記触媒劣化診断値に基づき上記空燃比フィードバック補正係数の比例定数と積分定数との少なくとも一方を補正する補正値を設定する補正手段と、
を備えることを特徴とするエンジンの空燃比フィードバック制御装置。
【請求項３】
上記補正手段では、上記触媒劣化診断値に基づき積分リッチ補正値と積分リーン補正値とを設定し、
上記両補正値で上記空燃比フィードバック補正係数を補正することを特徴とする請求項１或いは２記載のエンジンの空燃比フィードバック制御装置。
【請求項４】
上記補正手段では、上記触媒劣化診断値に基づき比例分リッチ補正ゲインと比例分リーン補正ゲインとを設定し、
上記両補正ゲインに基づき比例分リッチ補正値と比例分リーン補正値とを設定し、
上記両補正値で上記空燃比フィードバック補正係数を補正することを特徴とする請求項１或いは２記載のエンジンの空燃比フィードバック制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エンジンの空燃比フィードバック制御装置に関し、特に触媒の劣化度に応じて空燃比フィードバック補正係数を補正するようにしたエンジンの空燃比フィードバック制御装置に関する。
【０００２】
【従来の技術】
一般に、エンジンの空燃比制御においては、触媒の上流に配設した空燃比センサ（Ｏ２センサ）の出力によって空燃比状態を検出し、空燃比をフィードバック制御するようにしているが、Ｏ２センサの出力値特性のばらつきや、燃料噴射弁等の部品の経時劣化等に起因する空燃比制御精度の悪化を改善するため、触媒の上流と下流とにそれぞれＯ２センサを配設し、両Ｏ２センサの出力値により空燃比を制御する、いわゆるダブルＯ２センサ（ＤＯＳ）システムが種々、提案されている。
【０００３】
このＤＯＳシステムによる空燃比制御においては、例えば、特開昭６２−２９７３８号公報に開示されているように、触媒の下流に配設した第２の空燃比センサ（リアＯ２センサ）の出力に応じて算出する空燃比フィードバック制御パラメータＲと触媒の上流に配設した第１の空燃比センサ（フロントＯ２センサ或いは広域空燃比（Ａ／Ｆ）センサ）の出力に応じて算出する空燃比フィードバック制御パラメータＦに応じて空燃比フィードバック補正係数を算出し、この空燃比フィードバック補正係数により燃料噴射量を空燃比補正するようにしている。
【０００４】
そして、空燃比フィードバック制御パラメータＲは、リアＯ２センサの出力値をリッチ／リーン反転レベルと比較して比例積分制御（ＰＩ制御）により設定され、このＰＩ制御を与える積分定数（Ｉ分定数）及び比例定数（Ｐ分定数）は一義的な値に設定されている。
【０００５】
【発明が解決しようとする課題】
ここで、触媒が新品のときには、図１８（ａ）に示すフロントＯ２センサの出力値ＦＶＯ２［Ｖ］のリッチ（出力値ＦＶＯ２［Ｖ］がリッチ／リーン判定ラインよりも大きい状態）からリーン（出力値ＦＶＯ２［Ｖ］がリッチ／リーン判定ラインよりも小さい状態）、リーンからリッチへの反転周期に対し、リアＯ２センサの出力値ＲＶＯ２［Ｖ］の反転周期は、触媒のＯ２ストレージ効果により、同図（ｂ）に示すように、長くなる。そして、触媒の劣化が進むに従い触媒のＯ２ストレージ効果が低下し、同図（ｃ）に示すように、リアＯ２センサの出力値ＲＶＯ２［Ｖ］の反転周期は短くなる。
【０００６】
従って、触媒が新品であってリアＯ２センサの出力値ＲＶＯ２［Ｖ］の反転周期の長い場合に合わせて、単位時間当たりの空燃比制御量を決定するＩ分定数およびＰ分定数を設定すると、触媒の劣化が進行してリアＯ２センサの出力値ＲＶＯ２［Ｖ］の反転周期が短くなったとき、十分に空燃比補正が行われず、排気エミッションが悪化してしまう不都合がある。
【０００７】
又、触媒の劣化が進行し、リアＯ２センサの出力値ＲＶＯ２［Ｖ］の反転周期が短くなった場合に合わせてＩ分定数及びＰ分定数を設定すると、触媒が新品でリアＯ２センサの出力値ＲＶＯ２［Ｖ］の反転周期が長いとき、過度な空燃比補正が短時間でなされ排気エミッションが悪化してしまう不都合が生じる。
【０００８】
本発明は、上記事情に鑑み、触媒の劣化度に応じて空燃比フィードバック補正を行なうことで、触媒の新品時は勿論のこと、触媒の劣化が進行した場合であっても、排気エミッションの悪化を防止することが可能で、触媒のＯ２ストレージ効果を効率的に活用することの可能なエンジンの空燃比フィードバック制御装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するため第１発明は、エンジンの排気系に介装した触媒の上流と下流とにそれぞれフロント空燃比センサとリア空燃比センサとを配設し、上記両空燃比センサの出力値に応じて比例積分制御により空燃比フィードバック補正係数を設定し、該空燃比フィードバック補正係数で燃料噴射量を空燃比補正するエンジンの空燃比フィードバック制御装置において、上記リア空燃比センサ出力値のリッチ／リーンの反転周期を検出する反転周期算出手段と、上記反転周期に基づき触媒劣化診断値を設定する触媒劣化診断値設定手段と、上記触媒劣化診断値に基づき空燃比フィードバック補正係数の比例定数と積分定数との少なくとも一方を補正する補正値を設定する補正手段とを備えることを特徴とする。
【００１０】
このような構成では、リア空燃比センサ出力値のリッチ／リーンの反転周期を検出し、次いでこの反転周期に基づき触媒劣化診断値を設定し、その後この触媒劣化診断値に基づき空燃比フィードバック補正係数の比例定数と積分定数との少なくとも一方を補正する補正値を設定する。
【００１１】
又、第２発明は、エンジンの排気系に介装した触媒の上流と下流とにそれぞれフロント空燃比センサとリア空燃比センサとを配設し、上記両空燃比センサの出力値に応じて比例積分制御により空燃比フィードバック補正係数を設定し、該空燃比フィードバック補正係数で燃料噴射量を空燃比補正するエンジンの空燃比フィードバック制御装置において、上記フロント空燃比センサ出力値の変化量を算出するフロント空燃比センサ出力値変化量算出手段と、上記リア空燃比センサ出力値の変化量を算出するリア空燃比センサ出力値変化量算出手段と、上記フロント空燃比センサ出力値の変化量と上記リア空燃比センサ出力値の変化量との比較値を算出する比較値算出手段と、上記比較値に基づき触媒劣化診断値を設定する触媒劣化診断値設定手段と、上記触媒劣化診断値に基づき上記空燃比フィードバック補正係数の比例定数と積分定数との少なくとも一方を補正する補正値を設定する補正手段とを備えることを特徴とする。
【００１２】
このような構成では、フロント空燃比センサ出力値の変化量を算出し、又リア空燃比センサ出力値の変化量を算出し、次いで、フロント空燃比センサ出力値の変化量とリア空燃比センサ出力値の変化量との比較値を算出し、この比較値に基づき触媒劣化診断値を設定し、この触媒劣化診断値に基づき空燃比フィードバック補正係数の比例定数と積分定数との少なくとも一方を補正する補正値を設定する。
【００１３】
この場合、好ましくは、１）上記補正手段では、上記触媒劣化診断値に基づき積分リッチ補正値と積分リーン補正値とを設定し、上記両補正値で上記空燃比フィードバック補正係数を補正することを特徴とする。
【００１４】
２）上記補正手段では、上記触媒劣化診断値に基づき比例分リッチ補正ゲインと比例分リーン補正ゲインとを設定し、上記両補正ゲインに基づき比例分リッチ補正値と比例分リーン補正値とを設定し、上記両補正値で上記空燃比フィードバック補正係数を補正することを特徴とする。
【００１５】
【発明の実施の形態】
以下、図面に基づいて本発明の一実施の形態を説明する。図１〜図８に本発明の第１実施の形態を示す。図１にはエンジン制御系の概略構成図が示されている。
【００１６】
同図の符号１はエンジンで、本実施の形態においては水平対向式エンジンを示す。このエンジン１に吸気マニホルド２と排気マニホルド３とが各々連通されている。
【００１７】
又、吸気マニホルド２の上流側がエアチャンバ４に集合され、このエアチャンバ４の上流に吸気管５が連通され、この吸気管５がエアクリーナ（図示せず）に連通されている。又、吸気管５のエアチャンバ４の直上流にスロットル弁６が介装されている。尚、図示しないが、吸気管５のエアクリーナの直下流に、吸入空気量を検出する吸入空気量センサが介装されている。更に、吸気マニホルド２の各気筒の吸気ポートの直上流側にインジェクタ７が配設されている。
【００１８】
又、排気マニホルド３の集合部に排気管８が連通され、この排気管８の下流にマフラ９が連通されている。又、排気管８に上流側から、三元触媒等からなる触媒１０が配設され、触媒１０の上流に排気ガス中の酸素濃度から空燃比のリッチ／リーンを検出するフロント空燃比センサとしてのフロントＯ２センサ１２が配設され、触媒１０の下流に、排気ガス中の酸素濃度から空燃比のリッチ／リーンを検出するリア空燃比センサとしてのリアＯ２センサ１３が配設されている。
【００１９】
又、エンジン１のクランクシャフト１ａに軸着するクランクロータ（図示せず）の外周に、このクランクロータの回転からエンジン回転数を検出するクランク角センサ１４が対設されている。
【００２０】
一方、符号２１は電子制御装置（ＥＣＵ）で、ＣＰＵ２２，ＲＯＭ（図示せず），ＲＡＭ（図示せず）、及びデータの書き換えが可能な不揮発性メモリ（例えば、ＥＥＰ（Ｅｌｅｃｔｒｉｃａｌｌｙ　Ｅｒａｓａｂｌｅ　Ｐｒｏｇｒａｍｍａｂｌｅ）ＲＯＭ、フラッシュメモリ）やバックアップＲＡＭ等を備えたマイクロコンピュータ等を主体に構成されている。ＣＰＵ２２では、ＲＯＭに記憶されている制御プログラムに従い、各センサ類からの検出信号等を処理し、ＲＡＭに格納される各種データ、及び不揮発性メモリやバックアップＲＡＭに格納されている各種学習値データ等に基づき、燃料噴射量、点火時期等を演算し、燃料噴射制御、点火時期制御等のエンジン制御を行う。
【００２１】
このようなエンジン制御系において、本実施の形態では、ＤＯＳシステムによる空燃比フィードバック補正係数ＬＡＭＢＤＡを、比例積分（ＰＩ）制御により設定され、このＰＩ制御を与えるＩ分リッチ定数ＩＲ、Ｉ分リーン定数ＩＬを補正するＩ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡ、及びＩ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡを、リアＯ２センサ１３のリッチ／リーンの反転周期Ｔｓに応じて設定する。
【００２２】
すなわち、リアＯ２センサ１３のリッチ／リーンの反転周期Ｔｓは、触媒の劣化進行度合いとの相関を有しており、触媒が新品相当のときは、リアＯ２センサ１３のリッチ／リーンの反転周期Ｔｓが長いため所定時間での反転回数が少なく、この場合は、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡ、及びＩ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡを設定せず、通常のＰＩ制御を行なうことで、適正な空燃比制御が行なわれる。
【００２３】
一方、触媒の劣化の進行により酸素（Ｏ２）ストレージ効果が低下して、リアＯ２センサ１３の反転周期Ｔｓが次第に短くなると、これに対応して大きい値のＩ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡ、及びＩ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡが設定され、これによって、空燃比フィードバック制御による空燃比変動量が増大し、この空燃比変動量の増大によって触媒のＯ２吸着、離脱作用が促進され、触媒劣化の進行に伴う排気エミッションの悪化が防止される。
【００２４】
ＥＣＵ２１によって実行される空燃比制御は、具体的には、図２〜図５に示すフローチャートに従って処理される。
【００２５】
図２に示す触媒劣化診断ルーチンは、例えばエンジン始動後、触媒１０が活性化された後で、しかも、アイドル運転等、エンジン運転状態が定常状態にあるときに、一回のみ、或いは所定時間毎に実行される。
【００２６】
先ず、ステップＳ１で、リアＯ２センサ１３の出力値ＲＶＯ２［Ｖ］を読込み、ステップＳ２で、出力値ＲＶＯ２［Ｖ］とリッチ／リーン判定ライン（図１７参照）とを比較し、リアＯ２センサ１３の出力値ＲＶＯ２がリーン側にあるか否かを調べる。
【００２７】
そして、リアＯ２センサ１３の出力値ＲＶＯ２がリーン側にある場合は、ステップＳ３へ進み、リアＯ２センサ１３の前回の出力値ＲＶＯ２がリッチか否かを調べ、リッチの場合は、リアＯ２センサ１３の出力値ＲＶＯ２がリーンからリッチへ反転したと判断し、ステップＳ４へ進み、タイマＴをクリアして（Ｔ←０）、ルーチンを抜ける。
【００２８】
又、ステップＳ３において前回の出力値ＲＶＯ２がリーンの場合は、空燃比のリーン状態が継続されているため、ステップＳ５へ進み、タイマＴをカウントアップして（Ｔ←Ｔ＋１）、ルーチンを抜ける。
【００２９】
一方、ステップＳ２で、リアＯ２センサ１３の出力値ＲＶＯ２がリッチ側にあると判断されると、ステップＳ６へ進み、リアＯ２センサ１３の前回の出力値ＲＶＯ２がリーンか否かを調べ、リッチ側にある場合は、リッチ状態が継続しているため、そのままルーチンを抜ける。又、リーンの場合は、出力値ＲＶＯ２がリッチからリーンへ反転したと判断し、ステップＳ７へ進み、タイマＴのカウント値で反転周期Ｔｓを設定し（Ｔｓ←Ｔ）、ステップＳ８へ進み、反転周期Ｔｓに基づき、テーブルを補間計算付で参照し、或いは演算により、触媒劣化診断値ＣＡＴＤＩＡＧＡを設定する。この触媒劣化診断値ＣＡＴＤＩＡＧＡは、触媒１０の劣化度を示す値で、新品層当時は、ＣＡＴＤＩＡＧＡ＝０に設定されており、タイマＴのカウント値が小さくなるに従い、換言すれば、触媒１０の劣化が進行するに従い大きな値に設定される。
【００３０】
この触媒劣化診断値ＣＡＴＤＩＡＧＡは、図３に示す触媒劣化補正値設定ルーチンで読込まれる。このルーチンは、所定演算周期（本実施の形態では３２ｍｓｅｃ）毎に起動され、先ず、ステップＳ１１で、不揮発性メモリやバックアップＲＡＭ（図示せず）に格納されている初期化済みフラグＦＬＧＩＮＩの値を参照する。この初期化済みフラグＦＬＧＩＮＩは、例えば不揮発性メモリやバックアップＲＡＭに格納されているデータが未設定の場合、或いは、破壊され又は消失された場合、リセットされる（ＦＬＡＧＩＮＩ←０）。
【００３１】
そして、ＦＬＧＩＮＩ＝０のときは、不揮発性メモリやバックアップＲＡＭ（図示せず）に格納されている各設定値データが未設定、破壊或いは消失されていると判断し、ステップＳ１２へ進み、ステップＳ１２〜Ｓ１４で、不揮発性メモリやバックアップＲＡＭ（図示せず）に格納されている各設定値を初期化する。
【００３２】
先ず、ステップＳ１２では、触媒診断学習値ｂＣＡＴＤＩＡＧＡを予め設定されている触媒診断初期値定数ｋＣＡＴＤＩＡＧＡで初期化する（ｂＣＡＴＤＩＡＧＡ←ｋＣＡＴＤＩＡＧＡ）。
【００３３】
又、ステップＳ１３では、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡを予め設定されているＩ分リッチ補正初期値定数ｋＩＲＣＡＴＳＢＦＢＡで初期化する（ｂＩＲＣＡＴＳＢＦＢＡ←ｋＩＲＣＡＴＳＢＦＢＡ）。
【００３４】
ステップＳ１４では、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡを予め設定されているＩ分リーン補正初期値定数ｋＩＬＣＡＴＳＢＦＢＡで初期化する（ｂＩＬＣＡＴＳＢＦＢＡ←ｋＩＬＣＡＴＳＢＦＢＡ）。
【００３５】
尚、上述した各初期値定数ｋＣＡＴＤＩＡＧＡ，ｋＩＲＣＡＴＳＢＦＢＡ，ｋＩＬＣＡＴＳＢＦＢＡは、例えば新品相当時の触媒１０に対応する値に設定されている。
【００３６】
そして、ステップＳ１５へ進み、初期化済みフラグＦＬＧＩＮＩをセットして（ＦＬＧＩＮＩ←１）、初期化が完了したことを示した後、ルーチンを抜ける。
【００３７】
一方、ステップＳ１１で、ＦＬＧＩＮＩ＝１の初期化設定済みと判定された場合は、ステップＳ１６へ進み、触媒劣化診断値ＣＡＴＤＩＡＧＡを読込み、この触媒劣化診断値ＣＡＴＤＩＡＧＡと触媒診断学習値ｂＣＡＴＤＩＡＧＡとを比較する。
【００３８】
そして、ＣＡＴＤＩＡＧＡ≦ｂＣＡＴＤＩＡＧＡのときは、触媒１０の劣化が進行していないと判断し、そのままルーチンを抜ける。一方、ＣＡＴＤＩＡＧＡ＞ｂＣＡＴＤＩＡＧＡのときは、触媒１０の劣化が進行していると判断し、ステップＳ１７へ進み、現在の触媒劣化診断値ＣＡＴＤＩＡＧＡで触媒診断学習値ｂＣＡＴＤＩＡＧＡを更新する（ｂＣＡＴＤＩＡＧＡ←ＣＡＴＤＩＡＧＡ）。
【００３９】
そして、ステップＳ１８へ進み、ステップＳ１７で更新した触媒診断学習値ｂＣＡＴＤＩＡＧＡに基づき、図６（ａ）に示すＩ分リッチ補正値設定テーブルｔＩＲＣＡＴＳＢＦＢＡを補間計算付で参照して、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡを設定する。
【００４０】
又、ステップＳ１９で、ステップＳ１７で更新した触媒診断学習値ｂＣＡＴＤＩＡＧＡに基づき、図６（ｂ）に示すＩ分リーン補正値設定テーブルｔＩＬＣＡＴＳＢＦＢＡを補間計算付で参照して、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡを設定し、ルーチンを抜ける。
【００４１】
図６（ａ），（ｂ）に示すように、Ｉ分リッチ補正値設定テーブルｔＩＲＣＡＴＳＢＦＢＡ、Ｉ分リーン補正値設定テーブルｔＩＬＣＡＴＳＢＦＢＡには、触媒診断学習値ｂＣＡＴＤＩＡＧＡとの関係で、この触媒診断学習値ｂＣＡＴＤＩＡＧＡが増大するに従い、大きな値のＩ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡ、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡが格納されている。
【００４２】
尚、本実施の形態では、Ｉ分リッチ補正値設定テーブルｔＩＲＣＡＴＳＢＦＢＡとＩ分リーン補正値設定テーブルｔＩＬＣＡＴＳＢＦＢＡとに各々格納されている補正値ｂＩＲＣＡＴＳＢＦＢＡ，ｂＩＬＣＡＴＳＢＦＢＡは同一の特性を示しているが、異なる特性であっても良い。
【００４３】
又、初期化済みフラグＦＬＧＩＮＩ、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡ、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡは、不揮発性メモリやバックアップＲＡＭの所定アドレスに格納されており、イグニッションスイッチをＯＦＦした後もデータが保存され、次回のイグニッションスイッチＯＮ時に、前回イグニッションスイッチをＯＦＦしたときに保存されているデータを読込むことができる。
【００４４】
このＩ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡ、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡは、図４に示す空燃比フィードバック補正係数設定ルーチンにおいて読込まれる。
【００４５】
このルーチンは、設定演算周期（例えば、３２ｍｓｅｃ）毎に実行され、先ずステップＳ２１で、空燃比フィードバック制御条件が成立しているか否かを調べる。空燃比フィードバック制御条件は、例えば触媒１０が活性状態にあり、且つエンジンが定常運転状態にあるとき空燃比フィードバック制御条件成立と判断する。
【００４６】
そして、空燃比フィードバック制御条件不成立のときは、ステップＳ２２へ進み、空燃比フィードバック補正係数ＬＡＭＢＤＡを１．０で設定する（ＬＡＭＢＤＡ←１．０）。その結果、空燃比フィードバック制御条件不成立時の空燃比制御はオープンループ制御となる。
【００４７】
その後、ステップＳ２３へ進み、フィードバック制御条件成立フラグＦＬＧＣＬＦをクリアして（ＦＬＧＣＬＦ←０）、ルーチンを抜ける。
【００４８】
一方、ステップＳ２１で、空燃比フィードバック制御条件成立と判断されて、ステップＳ２４へ進むと、ステップＳ２４以下の処理によりフロントＯ２センサ１２の出力値ＦＶＯ２［Ｖ］に応じＰＩ制御により空燃比フィードバック補正係数ＬＡＭＢＤＡを設定する。
【００４９】
ステップＳ２４では、フロントＯ２センサ１２の出力値ＦＶＯ２と空燃比状態を判断するためのリッチ／リーン反転レベルＦＳＬとを比較し、ＦＶＯ２≧ＦＳＬの空燃比リッチのときは、ステップＳ２５へ進み、前回のルーチン実行時の空燃比状態を調べ、前回の空燃比がリーンのときは、空燃比がリーンからリッチへ反転した後の最初のルーチン実行時であるため、ステップＳ２６へ進み、次の（１）式から、今回の空燃比フィードバック補正係数ＬＡＭＢＤＡを算出する。
ＬＡＭＢＤＡ←ＬＡＭＢＤＡ−ＰＬ　…（１）
ここで、ＰＬはＰ分リーン定数で、予め設定された固定値である。
【００５０】
その結果、図７（ｂ）に示すように、空燃比フィードバック補正係数ＬＡＭＢＤＡが、リーン側へＰ分リーン定数ＰＬ分だけスキップされる。
【００５１】
一方、ステップＳ２５で、前回の空燃比がリッチであると判断されたときは、空燃比のリッチ状態が継続されているため、ステップＳ２７へ進み、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡを読込み、ステップＳ２８で、次の（２），（３）式から、今回の空燃比フィードバック補正係数ＬＡＭＢＤＡを算出する。
ＬＡＭＢＤＡ←ＬＡＭＢＤＡ−ＩＬ　…（２）
ＩＬ←ＩＯ＋ｂＩＬＣＡＴＳＢＦＢＡ　…（３）
ここで、ＩＬはＩ分リーン定数である。又、ＩＯは基本積分定数であり、予め設定された固定値である。
【００５２】
ところで、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡの初期値は、Ｉ分リーン補正初期値定数ｋＩＬＣＡＴＳＢＦＢＡであるため、触媒新品時の（３）式は、
ＩＬ←ＩＯ＋ｋＩＬＣＡＴＳＢＦＢＡ　…（３’）
と書き換えることができる。
【００５３】
その結果、図８（ｄ）に実線で示すように、触媒１０の劣化が進行すると空燃比フィードバック補正係数ＬＡＭＢＤＡは、演算周期毎にＩ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡ分だけ漸減される。
【００５４】
その後、ステップＳ２６或いはＳ２８からステップＳ２９へ進み、フィードバック制御条件成立フラグＦＬＧＣＬＦをセットして（ＦＬＧＣＬＦ←１）、ルーチンを抜ける。
【００５５】
一方、ステップＳ２４で、ＦＶＯ２＜ＦＳＬで空燃比リーンと判定されたときは、ステップＳ３１へ分岐し、前回のルーチン実行時の空燃比の状態を調べ、前回の空燃比がリッチのときは、空燃比がリーンからリッチへ反転した後の最初のルーチン実行であるため、ステップＳ３２へ進み、次の（４）式から、今回の空燃比フィードバック補正係数ＬＡＭＢＤＡを算出し、ステップＳ２９へ戻る。
ＬＡＭＢＤＡ←ＬＡＭＢＤＡ＋ＰＲ　…（４）
ここで、ＰＬはＰ分リーン定数で、予め設定された固定値である。
【００５６】
その結果、図７（ｂ）に示すように、空燃比フィードバック補正係数ＬＡＭＢＤＡが、リッチ側へＰ分リッチ定数ＰＲ分だけスキップされる。
【００５７】
一方、ステップＳ３１で、前回の空燃比がリーンであると判断されたときは、ステップＳ３３へ進み、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡを読込み、ステップＳ３４で、次の（６），（７）式から、今回の空燃比フィードバック補正係数ＬＡＭＢＤＡを算出し、ステップＳ２９へ戻る。
ＬＡＭＢＤＡ←ＬＡＭＢＤＡ＋ＩＲ　…（６）
ＩＲ←ＩＯ＋ｂＩＲＣＡＴＳＢＦＢＡ　…（７）
ここで、ＩＲはＩ分リッチ定数である。
【００５８】
尚、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡの初期値は、Ｉ分リッチ補正初期値定数ｋＩＲＣＡＴＳＢＦＢＡであるため、触媒新品時の（７）式は、
ＩＲ←ＩＯ＋ｋＩＲＣＡＴＳＢＦＢＡ　…（７’）
と書き換えることができる。
【００５９】
その結果、図８（ｃ）に実線で示すように、触媒１０の劣化が進行すると、空燃比フィードバック補正係数ＬＡＭＢＤＡは、演算周期毎にＩ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡ分だけ漸増される。
【００６０】
従って、空燃比フィードバック補正係数ＬＡＭＢＤＡは、図７に示すように、フロントＯ２センサ１２の出力値ＦＶＯ２とリッチ／リーン反転レベルＦＳＬとの比較結果に応じて、ＰＩ制御により設定される。
【００６１】
そして、このＰＩ制御におけるＩ分リーン制御時のＩ分リーン定数ＩＬを、基本積分定数ＩＯにＩ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡを加算して設定し、このＩ分リーン定数ＩＬ（＝ＩＯ＋ｂＩＬＣＡＴＳＢＦＢＡ）によって空燃比フィードバック補正係数ＬＡＭＢＤＡを漸減させる。又、Ｉ分リッチ制御時のＩ分リッチ定数ＩＲを、基本積分定数ＩＯにＩ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡを加算して設定し、このＩ分リッチ定数ＩＲ（＝ＩＯ＋ｂＩＲＣＡＴＳＢＦＢＡ）によって空燃比フィードバック補正係数ＬＡＭＢＤＡを漸増させる。
【００６２】
ここで、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡ、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡは、触媒１０の劣化度に応じて設定され、触媒１０の劣化が進行して、リアＯ２センサ１３の出力値ＲＶＯ２の反転周期Ｔｓが次第に短くなるに従い、増大関数的に大きな値に設定されるため、図８（ａ），（ｂ）に破線で示す触媒新品時のフロントＯ２センサ１２の出力値ＦＶＯ２に対し、触媒１０の劣化が進行するほど、実線で示すようにＩ分リッチ定数ＩＲ、Ｉ分リーン定数ＩＬの積分制御による傾きが増大される。
【００６３】
その結果、触媒１０の劣化が進行するに従い、相対的にリッチ制御時の増加量とリーン制御時の減少量とが大きくなり、これによって、空燃比フィードバック制御時の空燃比変動量が増大し、その分、触媒１０のＯ２吸着、離脱作用が促進され、触媒劣化の進行に伴う排気エミッションの悪化を防止することができる。
【００６４】
この空燃比フィードバック補正係数ＬＡＭＢＤＡは、図５に示す燃料噴射パルス幅設定ルーチンにおいて読込まれる。
【００６５】
このルーチンは、所定クランク角度（例えば、４気筒エンジンであれば１８０°ＣＡ）毎に実行され、先ず、ステップＳ４１で、クランク角センサ１４からの出力信号に基づいて算出したエンジン回転数Ｎｅと、エアクリーナ（図示せず）の下流に配設されている吸入空気量センサ（図示せず）で検出した吸入空気量Ｑとに基づき、基本燃料噴射パルス幅Ｔｐを、次の（８）式から算出する。
Ｔｐ←Ｋ・Ｑ／ＮＥ　…（８）
尚、Ｋはインジェクタ特性補正定数である。
【００６６】
次いで、ステップＳ４２で、冷却水温、スロットル開度等に基づいて、冷却水温補正、加減速補正、全開増量補正等に係わる各種増量係数ＣＯＥＦを設定する。
【００６７】
その後、ステップＳ４３へ進み、空燃比フィードバック補正係数ＬＡＭＢＤＡを読込み、又、ステップＳ４４で、バッテリ電圧ＶＢに基づきテーブルを補間計算付で参照してインジェクタ７の無効噴射時間を補間する電圧補正パルス幅Ｔｖを設定する。
【００６８】
そして、ステップＳ４５で、基本燃料噴射パルス幅Ｔｐを各種増量係数ＣＯＥＦ、空燃比フィードバック補正係数ＬＡＭＢＤＡにより空燃比補正すると共に、電圧補正パルス幅Ｔｖにより電圧補正して最終的な燃料噴射パルス幅Ｔｉを設定する。
Ｔｉ←Ｔｐ・ＣＯＥＦ・ＬＡＭＢＤＡ＋Ｔｖ　…（９）
【００６９】
そして、ステップＳ４６で、この燃料噴射パルス幅Ｔｉを燃料噴射対象気筒の噴射タイマにセットして、ルーチンを抜ける。
【００７０】
その結果、所定タイミングで噴射タイマがスタートされ、燃料噴射パルス幅Ｔｉの駆動パルス信号が燃料噴射対象気筒のインジェクタ７に出力され、このインジェクタ７から所定に計量された燃料が噴射される。
【００７１】
又、図９〜図１１に本発明の第２実施の形態を示す。上述した第１実施の形態では、触媒１０の劣化度をリアＯ２センサ１３のリッチ／リーン反転時間に基づいて判断したが、本実施の形態では、リアＯ２センサ１３の出力値ＲＶＯ２の積分的要因に基づいて、触媒１０の劣化度を判定するようにしたものである。
【００７２】
図９に示す触媒劣化診断ルーチンは、例えばエンジン始動後、触媒１０が活性化された後で、しかも、アイドル運転等、エンジン運転状態が定常状態にあるときに、一回のみ、或いは所定時間毎に実行される。
【００７３】
先ず、ステップＳ５１では、前回のフロントＯ２センサ１２の出力値ＦＶＯ２（−１）から現在のフロントＯ２センサ１２の出力値ＦＶＯ２を減算し、フロントＯ２センサ１２の出力値ＦＶＯ２の変化量の絶対値（以下「ＦＶＯ２変化量絶対値」と称する）ＦＤＶＰを算出する（ＦＤＶＰ←｜ＦＶＯ２（−１）−ＦＶＯ２｜）。
【００７４】
又、ステップＳ５２で、前回のリアＯ２センサ１２の出力値ＲＶＯ２（−１）から現在のリアＯ２センサ１２の出力値ＲＶＯ２を減算して、リアＯ２センサ１２の出力値ＲＶＯ２の変化量の絶対値（以下「ＲＶＯ２変化量絶対値」と称する）ＲＤＶＰを算出する（ＲＤＶＰ←｜ＲＶＯ２（−１）−ＲＶＯ２｜）。
【００７５】
次いで、ステップＳ５３で、ＦＶＯ２変化量絶対値ＦＤＶＰの積算値（以下「ＦＶＯ２変化量積算値」と称する）ＦＤＳＶＰにＦＶＯ２変化量絶対値ＦＤＶＰを加算して、ＦＶＯ２変化量積算値ＦＤＳＶＰを設定する（ＦＤＳＶＰ←ＦＤＳＶＰ＋ＦＤＶＰ）。尚、このＦＶＯ２変化量積算値ＦＤＳＶＰの初期値は０である。
【００７６】
又、ステップＳ５４で、ＲＶＯ２変化量絶対値ＲＤＶＰの積算値（以下「ＲＶＯ２変化量積算値」と称する）ＲＤＳＶＰにＲＶＯ２変化量絶対値ＲＤＶＰを加算して、ＲＶＯ２変化量積算値ＲＤＳＶＰを設定する（ＲＤＳＶＰ←ＲＤＳＶＰ＋ＲＤＶＰ）。尚、このＲＶＯ２変化量積算値ＦＤＳＶＰの初期値は０である。
【００７７】
次いで、ステップＳ５５で、予め設定されている積算時間が経過したか否かが調べられ、積算時間に達していないときは、そのままルーチンを抜け、両変化量積算値ＦＤＳＶＰ，ＲＤＳＶＰの算出を継続して行なう。
【００７８】
一方、積算時間に達したときは、ステップＳ５６へ進み、ＲＶＯ２変化量積算値ＲＤＳＶＰとＦＶＯ２変化量積算値ＦＤＳＶＰとの比較値ＣＨＡＮＴを算出する（ＣＨＡＮＴ←ＲＤＳＶＰ／ＦＤＳＶＰ）。
【００７９】
そして、ステップＳ５７で、比較値ＣＨＡＮＴに基づきテーブルを補間計算付で参照し、或いは演算により、触媒劣化診断値ＣＡＴＤＩＡＧＢを設定する。
【００８０】
ところで、触媒１０の劣化が進行するに従い、触媒のＯ２ストレージ効果が低下し、図１８（ｃ）に示すように、リアＯ２センサ１３の出力値ＦＶＯ２の波形がフロンＯ２センサ１２の出力値ＦＶＯ２の波形に近似してくるため、触媒１０の劣化に伴い、ＲＶＯ２変化量積算値ＲＤＳＶＰが増加する。その結果、ＦＶＯ２変化量積算値ＦＤＳＶＰとＲＶＯ２変化量積算値ＲＤＳＶＰとの比較値ＣＨＡＮＴ（＝ＲＤＳＶＰ／ＦＤＳＶＰ）は、触媒１０の劣化が進行するに従って必然的に増加する。
【００８１】
従って、比較値ＣＨＡＮＴから触媒１０の劣化度を検出することが可能となり、上述したステップＳ５７で参照するテーブルには、比較値ＣＨＡＮＴが増加するに従い、大きな値の触媒劣化診断値ＣＡＴＤＩＡＧＢが格納されている。
【００８２】
そして、ステップＳ５８へ進み、両変化量積算値ＦＤＳＶＰ，ＲＤＳＶＰを共にクリアして（ＦＤＳＶＰ←０，ＲＤＳＶＰ←０）、ルーチンを抜ける。
【００８３】
この触媒劣化診断値ＣＡＴＤＩＡＧＢは、図１０に示す触媒劣化補正値設定ルーチンで読込まれる。このルーチンは、所定演算周期（本実施の形態では３２ｍｓｅｃ）毎に起動され、先ず、ステップＳ６１で、不揮発性メモリやバックアップＲＡＭ（図示せず）に格納されている初期化済みフラグＦＬＧＩＮＩの値を参照する。この初期化済みフラグＦＬＧＩＮＩは、例えばＥＰＲＯＭや不揮発性メモリやバックアップＲＡＭに格納されているデータが未設定の場合、或いは、破壊され又は消失された場合、リセットされる（ＦＬＡＧＩＮＩ←０）。
【００８４】
そして、ＦＬＧＩＮＩ＝０のときは、不揮発性メモリやバックアップＲＡＭ（図示せず）に格納されている各設定値データが未設定、破壊或いは消失されているため、ステップＳ６２へ進み、ステップＳ６２〜Ｓ６４で、不揮発性メモリやバックアップＲＡＭ（図示せず）に格納されている各設定値を初期化する。
【００８５】
先ず、ステップＳ６２では、触媒診断学習値ｂＣＡＴＤＩＡＧＢを予め設定されている触媒診断初期値定数ｋＣＡＴＤＩＡＧＢで初期化する（ｂＣＡＴＤＩＡＧＢ←ｋＣＡＴＤＩＡＧＢ）。
【００８６】
又、ステップＳ６３では、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＢを予め設定されているＩ分リッチ補正初期値定数ｋＩＲＣＡＴＳＢＦＢＢで初期化する（ｂＩＲＣＡＴＳＢＦＢＢ←ｋＩＲＣＡＴＳＢＦＢＢ）。
【００８７】
ステップＳ６４では、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＢを予め設定されているＩ分リーン補正初期値定数ｋＩＬＣＡＴＳＢＦＢＢで初期化する（ｂＩＬＣＡＴＳＢＦＢＢ←ｋＩＬＣＡＴＳＢＦＢＢ）。
【００８８】
尚、上述した各初期値定数ｋＣＡＴＤＩＡＧＢ，ｋＩＲＣＡＴＳＢＦＢＢ，ｋＩＬＣＡＴＳＢＦＢＢは、例えば新品相当時の触媒１０に対応する値に設定されている。
【００８９】
そして、ステップＳ６５へ進み、初期化済みフラグＦＬＧＩＮＩをセットして（ＦＬＧＩＮＩ←１）、初期化が完了したことを示した後、ルーチンを抜ける。
【００９０】
一方、ステップＳ６１で、ＦＬＧＩＮＩ＝１の初期化設定済みと判定された場合は、ステップＳ６６へ進み、触媒劣化診断値ＣＡＴＤＩＡＧＢを読込み、この触媒劣化診断値ＣＡＴＤＩＡＧＢと触媒診断学習値ｂＣＡＴＤＩＡＧＢとを比較する。そして、ＣＡＴＤＩＡＧＢ≦ｂＣＡＴＤＩＡＧＢのときは、触媒１０の劣化が進行していないと判断し、そのままルーチンを抜ける。
【００９１】
一方、ＣＡＴＤＩＡＧＢ＞ｂＣＡＴＤＩＡＧＢのときは、触媒１０の劣化が進行していると判断し、ステップＳ６７へ進み、現在の触媒劣化診断値ＣＡＴＤＩＡＧＢで触媒診断学習値ｂＣＡＴＤＩＡＧＢを更新する（ｂＣＡＴＤＩＡＧＢ←ＣＡＴＤＩＡＧＢ）。
【００９２】
そして、ステップＳ６８へ進み、ステップＳ６７で更新した触媒診断学習値ｂＣＡＴＤＩＡＧＢに基づき、図１１（ａ）に示すＩ分リッチ補正値設定テーブルｔＩＲＣＡＴＳＢＦＢＢを補間計算付で参照して、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＢを設定する。
【００９３】
又、ステップＳ６９で、ステップＳ６７で更新した触媒診断学習値ｂＣＡＴＤＩＡＧＢに基づき、図１１（ｂ）に示すＩ分リーン補正値設定テーブルｔＩＬＣＡＴＳＢＦＢＢを補間計算付で参照して、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＢを設定し、ルーチンを抜ける。
【００９４】
図１１（ａ），（ｂ）に示すように、Ｉ分リッチ補正値設定テーブルｔＩＲＣＡＴＳＢＦＢＢ、Ｉ分リーン補正値設定テーブルｔＩＬＣＡＴＳＢＦＢＢには、触媒診断学習値ｂＣＡＴＤＩＡＧＢとの関係で、この触媒診断学習値ｂＣＡＴＤＩＡＧＢが増大するに従い、大きな値のＩ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＢ、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＢが格納されている。
【００９５】
尚、本実施の形態では、Ｉ分リッチ補正値設定テーブルｔＩＲＣＡＴＳＢＦＢＢとＩ分リーン補正値設定テーブルｔＩＬＣＡＴＳＢＦＢＢとに各々格納されている補正値ｂＩＲＣＡＴＳＢＦＢＢ，ｂＩＬＣＡＴＳＢＦＢＢは同一の特性を示しているが、異なる特性であっても良い。
【００９６】
又、初期化済みフラグＦＬＧＩＮＩ、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＢ、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＢは、第１実施の形態と同様に、不揮発性メモリやバックアップＲＡＭの所定アドレスに格納されており、イグニッションスイッチをＯＦＦした後もデータが保存され、次回のイグニッションスイッチＯＮ時に、前回イグニッションスイッチをＯＦＦしたときに保存されているデータを読込むことができる。
【００９７】
そして、このＩ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＢ、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＢは、上述した第１実施の形態の図４に示す空燃比フィードバック補正係数設定ルーチンにおいて、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡをＩ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＢと読み換えて、又Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡをＩ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＢと読み換えて適用される。従って、ここでの空燃比フィードバック補正係数設定ルーチンの説明は省略する。
【００９８】
又、図１２〜図１５に本発明の第３実施の形態を示す。上述した第１実施の形態では、触媒劣化度に応じて、空燃比フィードバック補正係数ＬＡＭＢＤＡのＩ分リッチ定数ＩＲとＩ分リーン定数ＩＬとを補正するようにしているが、本実施の形態では、触媒劣化度に応じてＰ分リッチ定数ＰＲとＰ分リーン定数ＰＬとを補正するようにしたものである。
【００９９】
図１２に示す触媒劣化補正値設定ルーチンは、第１実施の形態の図３に示す触媒劣化補正値設定ルーチンに代えて適用されるものである。
【０１００】
先ず、ステップＳ７１で、不揮発性メモリやバックアップＲＡＭ（図示せず）に格納されている初期化済みフラグＦＬＧＩＮＩの値を参照する。そして、ＦＬＧＩＮＩ＝０のときは、不揮発性メモリやバックアップＲＡＭ（図示せず）に格納されている各設定値データが未設定、破壊或いは消失されていると判断し、ステップＳ７２へ進み、ステップＳ７２〜Ｓ７４で、不揮発性メモリやバックアップＲＡＭ（図示せず）に格納されている各設定値を初期化する。
【０１０１】
先ず、ステップＳ７２では、触媒診断学習値ｂＣＡＴＤＩＡＧＡを予め設定されている触媒診断初期値定数ｋＣＡＴＤＩＡＧＡで初期化する（ｂＣＡＴＤＩＡＧＡ←ｋＣＡＴＤＩＡＧＡ）。
【０１０２】
又、ステップＳ７３では、Ｐ分リッチ補正ゲインｂＰＲＣＡＴＧＡを予め設定されているＰ分リッチ補正ゲイン初期値定数ｋＰＲＣＡＴＧＡで初期化する（ｂＰＲＣＡＴＧＡ←ｋＰＲＣＡＴＧＡ）。
【０１０３】
ステップＳ７４では、Ｐ分リーン補正ゲインｂＰＬＣＡＴＧＡを予め設定されているＰ分リーン補正ゲイン初期値定数ｋＰＬＣＡＴＧＡで初期化する（ｂＰＬＣＡＴＧＡ←ｋＰＬＣＡＴＧＡ）。
【０１０４】
尚、上述した各初期値定数ｋＣＡＴＤＩＡＧＡ，ｋＰＲＣＡＴＧＡ，ｋＰＬＣＡＴＧＡは、例えば新品相当時の触媒１０に対応する値に設定されている。
【０１０５】
そして、ステップＳ７５へ進み、初期化済みフラグＦＬＧＩＮＩをセットして（ＦＬＧＩＮＩ←１）、初期化が完了したことを示した後、ステップＳ８０へジャンプする。
【０１０６】
一方、ステップＳ７１で、ＦＬＧＩＮＩ＝１の初期化設定済みと判定された場合は、ステップＳ７６へ進み、第１実施の形態の図２に示す触媒劣化診断ルーチンで設定された触媒劣化診断値ＣＡＴＤＩＡＧＡを読込み、この触媒劣化診断値ＣＡＴＤＩＡＧＡと触媒診断学習値ｂＣＡＴＤＩＡＧＡとを比較する。
【０１０７】
そして、ＣＡＴＤＩＡＧＡ≦ｂＣＡＴＤＩＡＧＡのときは、触媒１０の劣化が進行していないと判断し、そのままルーチンを抜ける。一方、ＣＡＴＤＩＡＧＡ＞ｂＣＡＴＤＩＡＧＡのときは、触媒１０の劣化が進行していると判断し、ステップＳ７７へ進み、現在の触媒劣化診断値ＣＡＴＤＩＡＧＡで触媒診断学習値ｂＣＡＴＤＩＡＧＡを更新する（ｂＣＡＴＤＩＡＧＡ←ＣＡＴＤＩＡＧＡ）。
【０１０８】
そして、ステップＳ７８へ進み、ステップＳ７７で更新した触媒診断学習値ｂＣＡＴＤＩＡＧＡに基づき、図１４（ａ）に示すＰ分リッチ補正ゲイン設定テーブルｔＰＲＣＡＴＧＡを補間計算付で参照して、Ｐ分リッチ補正ゲインｂＰＲＣＡＴＧＡを設定する。
【０１０９】
又、ステップＳ７９で、ステップＳ７７で更新した触媒診断学習値ｂＣＡＴＤＩＡＧＡに基づき、図１４（ｂ）に示すＰ分リーン補正ゲイン設定テーブルｔＰＬＣＡＴＧＡを補間計算付で参照して、Ｐ分リーン補正ゲインｂＰＬＣＡＴＧＡを設定し、ステップＳ８０へ進む。
【０１１０】
図１４（ａ），（ｂ）に示すように、Ｐ分リッチ補正ゲイン設定テーブルｔＰＲＣＡＴＧＡ、Ｐ分リーン補正ゲイン設定テーブルｔＰＬＣＡＴＧＡには、触媒診断学習値ｂＣＡＴＤＩＡＧＡとの関係で、この触媒診断学習値ｂＣＡＴＤＩＡＧＡが増大するに従い、大きな値のＰ分リッチ補正ゲインｂＰＲＣＡＴＧＡ、Ｐ分リーン補正ゲインｂＰＬＣＡＴＧＡが格納されている。
【０１１１】
尚、本実施の形態では、Ｐ分リッチ補正ゲイン設定テーブルｔＰＲＣＡＴＧＡとＰ分リーン補正ゲイン設定テーブルｔＰＬＣＡＴＧＡとに各々格納されている補正値ｂＰＲＣＡＴＧＡ，ｂＰＬＣＡＴＧＡは同一の特性を示しているが、異なる特性であっても良い。
【０１１２】
又、初期化済みフラグＦＬＧＩＮＩ、Ｐ分リッチ補正ゲインｂＰＲＣＡＴＧＡ、Ｐ分リーン補正ゲインｂＰＬＣＡＴＧＡは、不揮発性メモリやバックアップＲＡＭの所定アドレスに格納されており、イグニッションスイッチをＯＦＦした後もデータが保存され、次回のイグニッションスイッチＯＮ時に、前回イグニッションスイッチをＯＦＦしたときに保存されているデータを読込むことができる。
【０１１３】
そして、ステップＳ７５、或いはステップＳ７９からステップＳ８０へ進むと、Ｐ分リッチ基本補正値ＰＲＣＡＴＳＢＦＢと、ステップＳ７３或いはステップＳ７８で設定したＰ分リッチ補正ゲインｂＰＲＣＡＴＧＡを読込み、次の（１０）式から、Ｐ分リッチ補正値ＰＲＣＡＴＳＢＦＢＡを算出する。
ＰＲＣＡＴＳＢＦＢＡ←ＰＲＣＡＴＳＢＦＢ・ｂＰＲＣＡＴＧＡ　…（１０）
ここで、Ｐ分リッチ基本補正値ＰＲＣＡＴＳＢＦＢは、本実施の形態では固定値であるが、エンジンの運転状態に応じて設定する可変値であっても良い。
【０１１４】
次いで、ステップＳ８１で、Ｐ分リーン基本補正値ＰＬＣＡＴＳＢＦＢと、ステップＳ７４或いはステップＳ７９で設定したＰ分リーン補正ゲインｂＰＬＣＡＴＧＡとを読込み、次の（１１）式から、Ｐ分リーン補正値ＰＬＣＡＴＳＢＦＢＡを算出し、ルーチンを抜ける。
ＰＬＣＡＴＳＢＦＢＡ←ＰＬＣＡＴＳＢＦＢ・ｂＰＬＣＡＴＧＡ　…（１１）
ここで、Ｐ分リーン基本補正値ＰＬＣＡＴＳＢＦＢは、本実施の形態では固定値であるが、エンジンの運転状態に応じて設定する可変値であっても良い。
【０１１５】
このＰ分リッチ補正値ＰＲＣＡＴＳＢＦＢＡ、Ｐ分リーン補正値ＰＬＣＡＴＳＢＦＢＡは、図１３に示す空燃比フィードバック補正係数設定ルーチンにおいて読込まれる。このルーチンは、第１実施の形態の図４に示す空燃比フィードバック補正係数設定ルーチンに代えて適用されるものである。
【０１１６】
先ず、ステップＳ９１で、空燃比フィードバック制御条件が成立しているか否かを調べる。空燃比フィードバック制御条件は、例えば触媒１０が活性状態にあり、且つエンジンが定常運転状態にあるとき空燃比フィードバック制御条件成立と判断する。
【０１１７】
そして、空燃比フィードバック制御条件不成立のときは、ステップＳ９２へ進み、空燃比フィードバック補正係数ＬＡＭＢＤＡを１．０で設定する（ＬＡＭＢＤＡ←１．０）。その結果、空燃比フィードバック制御条件不成立時の空燃比制御はオープンループ制御となる。
【０１１８】
その後、ステップＳ９３へ進み、フィードバック制御条件成立フラグＦＬＧＣＬＦをクリアして（ＦＬＧＣＬＦ←０）、ルーチンを抜ける。
【０１１９】
一方、ステップＳ９１で、空燃比フィードバック制御条件成立と判断されて、ステップＳ９４へ進むと、ステップＳ９４以下の処理によりフロントＯ２センサ１２の出力値ＦＶＯ２［Ｖ］に応じＰＩ制御により空燃比フィードバック補正係数ＬＡＭＢＤＡを設定する。
【０１２０】
ステップＳ９４では、フロントＯ２センサ１２の出力値ＦＶＯ２と空燃比状態を判断するためのリッチ／リーン反転レベルＦＳＬ（図７（ａ）参照）とを比較し、ＦＶＯ２≧ＦＳＬの空燃比リッチのときは、ステップＳ９５へ進み、前回のルーチン実行時の空燃比状態を調べ、前回の空燃比がリーンのときは、空燃比がリーンからリッチへ反転した後の最初のルーチン実行時であるため、ステップＳ９６へ進み、Ｐ分リーン補正値ＰＬＣＡＴＳＢＦＢＡを読込み、続くステップＳ９７で、今回の空燃比フィードバック補正係数ＬＡＭＢＤＡを、次の（１２）、（１３）式から算出する。
ＬＡＭＢＤＡ←ＬＡＭＢＤＡ−ＰＬ　…（１２）
ＰＬ←ＰＯ＋ＰＬＣＡＴＳＢＦＢＡ　　…（１３）
ここで、ＰＬはＰ分リーン定数である。又、ＰＯは基本比例定数であり、予め設定された固定値である。
【０１２１】
その結果、図１５（ｂ）に実線で示すように、触媒１０の劣化が進行すると、空燃比フィードバック補正係数ＬＡＭＢＤＡのＰ分リーン定数ＰＬのスキップ幅が、演算周期毎にＰ分リーン補正値ＰＬＣＡＴＳＢＦＢＡだけ漸減される。
【０１２２】
一方、ステップＳ９５で、前回の空燃比がリーンであると判断されたときは、空燃比のリッチ状態が継続されているため、ステップＳ９８へ進み、今回の空燃比フィードバック補正係数ＬＡＭＢＤＡを、次の（１４）式から算出する。
ＬＡＭＢＤＡ←ＬＡＭＢＤＡ−ＩＬ　…（１４）
ここで、ＩＬはＩ分リーン定数で、予め設定された固定値である。
【０１２３】
その後、ステップＳ９６或いはＳ９８からステップＳ９９へ進み、フィードバック制御条件成立フラグＦＬＧＣＬＦをセットして（ＦＬＧＣＬＦ←１）、ルーチンを抜ける。
【０１２４】
一方、ステップＳ９４で、ＦＶＯ２＜ＦＳＬで空燃比リーンと判定されたときは、ステップＳ１０１へ分岐し、前回のルーチン実行時の空燃比がリッチか否かを調べ、前回の空燃比がリッチのときは、空燃比がリーンからリッチへ反転した後の最初のルーチン実行であるため、ステップＳ１０２へ進み、次の（１５），（１６）式から、今回の空燃比フィードバック補正係数ＬＡＭＢＤＡを算出し、ステップＳ９９へ戻る。
ＬＡＭＢＤＡ←ＬＡＭＢＤＡ＋ＰＲ　　…（１５）
ＰＲ←ＰＯ＋ＰＲＣＡＴＳＢＦＢＡ　　…（１６）
ここで、ＰＲはＰ分リッチ定数である。
【０１２５】
その結果、図１５（ａ）に実線で示すように、触媒１０の劣化度の進行に従い、空燃比フィードバック補正係数ＬＡＭＢＤＡのＰ分リッチ定数ＰＲのスキップ幅が、演算周期毎にＰ分リッチ補正値ＰＲＣＡＴＳＢＦＢＡ分だけ漸増される。
【０１２６】
一方、ステップＳ１０１で、前回の空燃比がリーンであると判断されたときは、空燃比のリーン状態が継続されているため、ステップＳ１０４へ進み、次の（１７）式から、今回の空燃比フィードバック補正係数ＬＡＭＢＤＡを算出し、ステップＳ９９へ戻る。
ＬＡＭＢＤＡ←ＬＡＭＢＤＡ＋ＩＲ　…（１７）
ここで、ＩＲはＩ分リッチ定数で、予め設定された固定値である。
【０１２７】
従って、空燃比フィードバック補正係数ＬＡＭＢＤＡは、上述した図７に示すように、フロントＯ２センサ１２の出力値ＦＶＯ２とリッチ／リーン反転レベルＦＳＬとの比較結果に応じて、ＰＩ制御により設定される。
【０１２８】
そして、このＰＩ制御におけるＰ分リーン制御時のＰ分リーン定数ＰＬを、基本比例定数ＰＯにＰ分リーン補正値ＰＬＣＡＴＳＢＦＢＡを加算して設定し、このＰ分リーン定数ＰＬ（＝ＰＯ＋ＰＬＣＡＴＳＢＦＢＡ）によって空燃比フィードバック補正係数ＬＡＭＢＤＡを減少方向へスキップさせる。又、Ｐ分リッチ制御時のＰ分リッチ定数ＰＲを、基本比例定数ＰＯにＰ分リッチ補正値ＰＲＣＡＴＳＢＦＢＡを加算して設定し、このＰ分リッチ定数ＰＲ（＝ＰＯ＋ＰＲＣＡＴＳＢＦＢＡ）によって空燃比フィードバック補正係数ＬＡＭＢＤＡを増加方向へスキップさせる。
【０１２９】
ここで、Ｐ分リーン補正値ＰＬＣＡＴＳＢＦＢＡ、Ｐ分リッチ補正値ＰＲＣＡＴＳＢＦＢＡは、触媒１０の劣化度に応じて設定され、触媒１０の劣化が進行して、リアＯ２センサ１３の出力値ＲＶＯ２の反転周期Ｔｓが次第に短くなるに従い、増大関数的に大きな値に設定されるため、図１５（ａ），（ｂ）に破線で示す触媒新品時のフロントＯ２センサ１２の出力値ＦＶＯ２に対し、触媒１０の劣化が進行するほど、実線で示すようにＰ分リッチ定数ＰＲ、Ｐ分リーン定数ＰＬの比例制御による変化量が増大される。
【０１３０】
その結果、触媒１０の劣化が進行するに従い、相対的にリッチ制御時の増加量とリーン制御時の減少量とが大きくなり、これによって、空燃比フィードバック制御時の空燃比変動量が増大し、その分、触媒１０のＯ２吸着、離脱作用が促進され、触媒劣化の進行に伴う排気エミッションの悪化を防止することができる。
【０１３１】
尚、空燃比フィードバック補正係数設定ルーチンにおいて設定した空燃比フィードバック補正係数ＬＡＭＢＤＡは、上述した第１実施の形態の図５に示す燃料噴射パルス幅設定ルーチンにおいて読込まれ、この空燃比フィードバック補正係数ＬＡＭＢＤＡによって燃料噴射量が空燃比補正される。
【０１３２】
又、図１６、図１７に本発明の第４実施の形態を示す。上述した第２実施の形態では、触媒劣化度に応じて、空燃比フィードバック補正係数ＬＡＭＢＤＡのＩ分リッチ定数ＩＲ、Ｉ分リーン定数ＩＬを補正するようにしているが、本実施の形態では、触媒劣化度に応じてＰ分リッチ定数ＰＲ、Ｐ分リーン定数ＰＬを補正するようにしたものである。
【０１３３】
図１６に示す触媒劣化補正値設定ルーチンは、第２実施の形態の図１０に示す触媒劣化補正値設定ルーチンに代えて適用されるものである。
【０１３４】
このルーチンでは、先ず、ステップＳ１１１で、不揮発性メモリやバックアップＲＡＭ（図示せず）に格納されている初期化済みフラグＦＬＧＩＮＩの値を参照する。そして、ＦＬＧＩＮＩ＝０のときは、不揮発性メモリやバックアップＲＡＭ（図示せず）に格納されている各設定値データが未設定、破壊或いは消失されていると判断し、ステップＳ１１２へ進み、ステップＳ１１２〜Ｓ１１４で、不揮発性メモリやバックアップＲＡＭ（図示せず）に格納されている各設定値を初期化する。
【０１３５】
先ず、ステップＳ１１２では、触媒診断学習値ｂＣＡＴＤＩＡＧＢを予め設定されている触媒診断初期値定数ｋＣＡＴＤＩＡＧＢで初期化する（ｂＣＡＴＤＩＡＧＢ←ｋＣＡＴＤＩＡＧＢ）。
【０１３６】
又、ステップＳ１１３では、Ｐ分リッチ補正ゲインｂＰＲＣＡＴＧＢを予め設定されているＰ分リッチ補正ゲイン初期値定数ｋＰＲＣＡＴＧＢで初期化する（ｂＰＲＣＡＴＧＢ←ｋＰＲＣＡＴＧＢ）。
【０１３７】
ステップＳ１１４では、Ｐ分リーン補正ゲインｂＰＬＣＡＴＧＢを予め設定されているＰ分リーン補正ゲイン初期値定数ｋＰＬＣＡＴＧＢで初期化する（ｂＰＬＣＡＴＧＢ←ｋＰＬＣＡＴＧＢ）。
【０１３８】
尚、上述した各初期値定数ｋＣＡＴＤＩＡＧＢ，ｋＰＲＣＡＴＧＢ，ｋＰＬＣＡＴＧＢは、例えば新品相当時の触媒１０に対応する値に設定されている。
【０１３９】
そして、ステップＳ１１５へ進み、初期化済みフラグＦＬＧＩＮＩをセットして（ＦＬＧＩＮＩ←１）、初期化が完了したことを示した後、ステップＳ１２０へジャンプする。
【０１４０】
一方、ステップＳ１１１で、ＦＬＧＩＮＩ＝１の初期化設定済みと判定された場合は、ステップＳ１１６へ進み、第２実施の形態の図９に示す触媒劣化診断ルーチンで設定された触媒劣化診断値ＣＡＴＤＩＡＧＢを読込み、この触媒劣化診断値ＣＡＴＤＩＡＧＢと触媒診断学習値ｂＣＡＴＤＩＡＧＢとを比較する。
【０１４１】
そして、ＣＡＴＤＩＡＧＢ≦ｂＣＡＴＤＩＡＧＢのときは、触媒１０の劣化が進行していないと判断し、そのままルーチンを抜ける。一方、ＣＡＴＤＩＡＧＢ＞ｂＣＡＴＤＩＡＧＢのときは、触媒１０の劣化が進行していると判断し、ステップＳ１１７へ進み、現在の触媒劣化診断値ＣＡＴＤＩＡＧＢで触媒診断学習値ｂＣＡＴＤＩＡＧＢを更新する（ｂＣＡＴＤＩＡＧＢ←ＣＡＴＤＩＡＧＢ）。
【０１４２】
そして、ステップＳ１１８へ進み、ステップＳ１１７で更新した触媒診断学習値ｂＣＡＴＤＩＡＧＢに基づき、図１７（ａ）に示すＰ分リッチ補正ゲイン設定テーブルｔＰＲＣＡＴＧＢを補間計算付で参照して、Ｐ分リッチ補正ゲインｂＰＲＣＡＴＧＢを設定する。
【０１４３】
又、ステップＳ１１９で、ステップＳ１１７で更新した触媒診断学習値ｂＣＡＴＤＩＡＧＢに基づき、図１７（ｂ）に示すＰ分リーン補正ゲイン設定テーブルｔＰＬＣＡＴＧＢを補間計算付で参照して、Ｐ分リーン補正ゲインｂＰＬＣＡＴＧＢを設定し、ステップＳ１２０へ進む。
【０１４４】
図１７（ａ），（ｂ）に示すように、Ｐ分リッチ補正ゲイン設定テーブルｔＰＲＣＡＴＧＢ、Ｐ分リーン補正ゲイン設定テーブルｔＰＬＣＡＴＧＢには、触媒診断学習値ｂＣＡＴＤＩＡＧＢとの関係で、この触媒診断学習値ｂＣＡＴＤＩＡＧＢが増大するに従い、大きな値のＰ分リッチ補正ゲインｂＰＲＣＡＴＧＢ、Ｐ分リーン補正ゲインｂＰＬＣＡＴＧＢが格納されている。
【０１４５】
尚、本実施の形態では、Ｐ分リッチ補正ゲイン設定テーブルｔＰＲＣＡＴＧＢとＰ分リーン補正ゲイン設定テーブルｔＰＬＣＡＴＧＢとに各々格納されている補正値ｂＰＲＣＡＴＧＢ，ｂＰＬＣＡＴＧＢは同一の特性を示しているが、異なる特性であっても良い。
【０１４６】
又、初期化済みフラグＦＬＧＩＮＩ、Ｐ分リッチ補正ゲインｂＰＲＣＡＴＧＢ、Ｐ分リーン補正ゲインｂＰＬＣＡＴＧＢは、不揮発性メモリやバックアップＲＡＭの所定アドレスに格納されており、イグニッションスイッチをＯＦＦした後もデータが保存され、次回のイグニッションスイッチＯＮ時に、前回イグニッションスイッチをＯＦＦしたときに保存されているデータを読込むことができる。
【０１４７】
そして、ステップＳ１１５、或いはステップＳ１１９からステップＳ１２０へ進むと、Ｐ分リッチ基本補正値ＰＲＣＡＴＳＢＦＢと、ステップＳ１１３或いはステップＳ１１８で設定したＰ分リッチ補正ゲインｂＰＲＣＡＴＧＢを読込み、次の（１８）式から、Ｐ分リッチ補正値ＰＲＣＡＴＳＢＦＢＢを算出する。
ＰＲＣＡＴＳＢＦＢＢ←ＰＲＣＡＴＳＢＦＢ・ｂＰＲＣＡＴＧＢ　…（１８）ここで、Ｐ分リッチ基本補正値ＰＲＣＡＴＳＢＦＢは、本実施の形態では固定値であるが、エンジンの運転状態に応じて設定する可変値であっても良い。
【０１４８】
次いで、ステップＳ１２１で、Ｐ分リーン基本補正値ＰＬＣＡＴＳＢＦＢと、ステップＳ１１４或いはステップＳ１１９で設定したＰ分リーン補正ゲインｂＰＬＣＡＴＧＡを読込み、次の（１９）式から、Ｐ分リーン補正値ＰＬＣＡＴＳＢＦＢＢを算出し、ルーチンを抜ける。
ＰＬＣＡＴＳＢＦＢＢ←ＰＬＣＡＴＳＢＦＢ・ｂＰＬＣＡＴＧＢ　…（１９）
ここで、Ｐ分リーン基本補正値ＰＬＣＡＴＳＢＦＢは、本実施の形態では固定値であるが、エンジンの運転状態に応じて設定する可変値であっても良い。
【０１４９】
このＰ分リッチ補正値ＰＲＣＡＴＳＢＦＢＢ、Ｐ分リーン補正値ＰＬＣＡＴＳＢＦＢＢは、上述した第３実施の形態の図１３に示す空燃比フィードバック補正係数設定ルーチンにおいて読込まれる。この場合、Ｐ分リーン補正値ＰＬＣＡＴＳＢＦＢＡをＰ分リッチ補正値ＰＲＣＡＴＳＢＦＢＢと読み換え、又、Ｐ分リッチ補正値ＰＲＣＡＴＳＢＦＢＡをＰ分リーン補正値ＰＬＣＡＴＳＢＦＢＢと読換えて適用する。
【０１５０】
そして、この空燃比フィードバック補正係数設定ルーチンにおいて設定された空燃比フィードバック補正係数ＬＡＭＢＤＡは、上述した第１実施の形態の図５に示す燃料噴射パルス幅設定ルーチンにおいて読込まれ、この空燃比フィードバック補正係数ＬＡＭＢＤＡによって燃料噴射量が空燃比補正される。
【０１５１】
このように、上述した各実施の形態では、既存の触媒診断ロジックにより、第１実施の形態及び第３実施の形態では、リアＯ２センサ１３の出力値ＦＶＯ２のリッチ／リーンの反転の時間的要素から触媒劣化診断値ＣＡＴＤＩＡＧＡを算出し、又、第２実施の形態及び第４実施の形態では、リアＯ２センサ１３の出力値ＦＶＯ２の積算的要素から触媒劣化診断値ＣＡＴＤＩＡＧＢを算出して、この触媒劣化診断値ＣＡＴＤＩＡＧＡ，ＣＡＴＤＩＡＧＢを、触媒１０の劣化度を表すパラメータとして採用し、ＰＩ制御により行なわれる空燃比フィードバック制御において、触媒劣化診断値ＣＡＴＤＩＡＧＡ、或いはＣＡＴＤＩＡＧＢに基づき、第１実施の形態では、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＡ、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＡを設定し、第２実施の形態では、Ｉ分リッチ補正値ｂＩＲＣＡＴＳＢＦＢＢ、Ｉ分リーン補正値ｂＩＬＣＡＴＳＢＦＢＢを設定し、第３実施の形態では、Ｐ分リッチ補正ゲインｂＰＲＣＡＴＧＡ、Ｐ分リーン補正ゲインＩＬＣＡＴＧＡを設定し、又、第４実施の形態では、Ｐ分リッチ補正ゲインｂＰＲＣＡＴＧＢ、Ｐ分リーン補正ゲインｂＰＬＣＡＴＧＢを設定するようにしたので、常に、触媒１０の劣化度に応じた高効率なＯ２ストレージ効果を実現することができる。
【０１５２】
その結果、例えば触媒１０が新品の場合は、第１実施の形態、及び第３実施の形態では、小さい値のＰ分リッチ定数ＰＲ、Ｐ分リーン定数ＰＬが設定され、又、第２実施の形態、及び第４実施の形態では、小さい値のＩ分リッチ定数ＩＲ、Ｉ分リーン定数ＩＬが設定されるので、空燃比フィードバック制御による燃料減量補正量、及び燃料噴射量補正量が小さく設定され、空燃比フィードバックによる過度な空燃比補正を防止することができ、排気エミッションの低減を実現することができる。
【０１５３】
又、触媒１０の劣化が進行するに従い、触媒のＯ２ストレージ効果が低下する状況では、これに対応して大きな値のＰ分リッチ定数ＰＲ、Ｐ分リーン定数ＰＬが設定されるので、空燃比フィードバック補正により燃料減量補正及び燃料増量補正が増加され、空燃比フィードバック制御による空燃比の変動量の増大により触媒のＯ２吸着と、離脱作用を促し、触媒の活性化を実現することができ、触媒の劣化が進行しても排気エミッションの悪化を防止することが可能となるばかりでなく、触媒の機能寿命を延ばすことができる。
【０１５４】
更に、触媒の状態に応じて最適な空燃比フィードバック補正が可能となるので、既存の触媒のＯ２ストレージ効果に満たない性能の低い触媒であっても、既存の触媒と同等のＯ２ストレージ効果を得ることが可能となり、触媒の製造コストの低減を実現することができる。
【０１５５】
尚、本発明は上述した各実施の形態に限るものではなく、例えば空燃比フィードバック補正係数ＬＡＭＢＤＡは、触媒劣化診断値ＣＡＴＤＩＡＧＡ，ＣＡＴＤＩＡＧＢに基づき、Ｉ分定数ＩＲ，ＩＬとＰ分定数ＰＲ，ＰＬとの双方を補正するようにしても良い。又、触媒の個数は限定する必要はなく、フロントＯ２センサ１２とリアＯ２センサ１３との間に、複数個配設されていても良い。
【０１５６】
【発明の効果】
以上、説明したように本発明によれば、触媒の劣化度に応じて空燃比フィードバック補正を行なうことで、触媒の新品時は勿論のこと、触媒の劣化が進行した場合であっても、排気エミッションの悪化を防止することが可能となり、触媒のＯ２ストレージ効果を効率的に活用することができる。
【図面の簡単な説明】
【図１】第１実施の形態によるエンジン制御系の概略構成図
【図２】同、触媒劣化診断ルーチンを示すフローチャート
【図３】同、触媒劣化補正値設定ルーチンを示すフローチャート
【図４】同、空燃比フィードバック補正係数設定ルーチンを示すフローチャート
【図５】同、燃料噴射パルス幅設定ルーチンを示すフローチャート
【図６】同、（ａ）はＩ分リッチ補正値設定テーブルの説明図、（ｂ）はＩ分リーン補正値設定テーブルの説明図
【図７】同、フロントＯ２センサ出力値と空燃比フィードバック補正係数との関係を示すタイムチャート
【図８】同、（ａ）は空燃比フィードバック補正係数のＩ分リッチ補正値の説明図、（ｂ）は空燃比フィードバック補正係数のＩ分リーン補正値の説明図、（ｃ）は（ａ）のｃ部拡大図、（ｄ）は（ｂ）のｄ部拡大図
【図９】第２実施の形態による触媒劣化診断ルーチンを示すフローチャート
【図１０】同、触媒劣化補正値設定ルーチンを示すフローチャート
【図１１】同、（ａ）はＩ分リッチ補正値設定テーブルの説明図、（ｂ）はＩ分リーン補正値設定テーブルの説明図
【図１２】第３実施の形態による触媒劣化補正値設定ルーチンの説明図
【図１３】同、空燃比フィードバック補正係数設定ルーチンを示すフローチャート
【図１４】同、（ａ）はＰ分リッチ補正ゲイン設定テーブルの説明図、（ｂ）はＰ分リーン補正ゲイン設定テーブルの説明図
【図１５】同、（ａ）は空燃比フィードバック補正係数のＰ分リッチ補正値の説明図、（ｂ）は空燃比フィードバック補正係数のＰ分リーン補正値の説明図
【図１６】第４実施の形態による触媒劣化補正値設定ルーチンを示すフローチャート
【図１７】同、（ａ）はＰ分リッチ補正ゲイン設定テーブルの説明図、（ｂ）はＰ分リーン補正ゲイン設定テーブルの説明図
【図１８】従来のフロントＯ２センサ出力電圧とリアＯ２センサ出力電圧と空燃比フィードバック補正係数との関係を示すタイムチャート
【符号の説明】
１　エンジン
１０　触媒
１２　フロントＯ２センサ（フロント空燃比センサ）
１３　リアＯ２センサ（リア空燃比センサ）
ＣＡＴＤＩＡＧＡ，ＣＡＴＤＩＡＧＢ　触媒劣化診断値
ＣＨＡＮＴ　比較値
ＦＤＳＶＰ　ＦＶＯ２変化量積算値
ＦＤＶＰ　ＦＶＯ２変化量絶対値
ＦＶＯ２，ＲＶＯ２　出力値（出力電圧）
ｂＩＬＣＡＴＳＢＦＢＡ，ｂＩＬＣＡＴＳＢＦＢＢ　Ｉ分リーン補正値
ｂＩＲＣＡＴＳＢＦＢＡ，ｂＩＲＣＡＴＳＢＦＢＢ　Ｉ分リッチ補正値
ｂＰＬＣＡＴＧＡ，ｂＰＬＣＡＴＧＢ　Ｐ分リーン補正ゲイン
ｂＰＲＣＡＴＧＡ，ｂＰＲＣＡＴＧＢ　Ｐ分リッチ補正ゲイン
ＩＬ　Ｉ分リーン定数
ＩＲ　Ｉ分リッチ定数
ＬＡＭＢＤＡ　空燃比フィードバック補正係数
ＰＬ　Ｐ分リーン定数
ＰＬＣＡＴＳＢＦＢＡ，ＰＬＣＡＴＳＢＦＢＢ　Ｐ分リーン補正値
ＰＲ　Ｐ分リッチ定数
ＰＲＣＡＴＳＢＦＢＡ，ＰＲＣＡＴＳＢＦＢＢ　Ｐ分リッチ補正値
ＲＤＳＶＰ　ＲＶＯ２変化量積算値
ＲＤＶＰ　ＲＶＯ２変化量絶対値
Ｔｉ　燃料噴射パルス幅（燃料噴射量）
Ｔｓ　反転周期
【図１】
2004019467.tif 000003
【図２】
2004019467.tif 000004
【図３】
2004019467.tif 000005
【図４】
2004019467.tif 000006
【図５】
2004019467.tif 000007
【図６】
2004019467.tif 000008
【図７】
2004019467.tif 000009
【図８】
2004019467.tif 000010
【図９】
2004019467.tif 000011
【図１０】
2004019467.tif 000012
【図１１】
2004019467.tif 000013
【図１２】
2004019467.tif 000014
【図１３】
2004019467.tif 000015
【図１４】
2004019467.tif 000016
【図１５】
2004019467.tif 000017
【図１６】
2004019467.tif 000018
【図１７】
2004019467.tif 000019
【図１８】
2004019467.tif 000020