(57)【特許請求の範囲】
【請求項１】
排気系に設けられた排気ガス浄化のための触媒コンバータの上流側及び下流側にそれぞれ第１及び第２の空燃比センサを配設した内燃機関における制御装置であって、
前記第１の空燃比センサによって感知される空燃比が継続してリーン又はリッチのときには空燃比フィードバック補正係数を一定割合で増大又は減少せしめるとともに、前記第１の空燃比センサによって感知される空燃比がリッチからリーンへ又はリーンからリッチへと反転するときには空燃比補正係数を所定のスキップ量だけ階段状に増大又は減少せしめる空燃比補正係数演算手段と、
前記第２の空燃比センサによって感知される空燃比がリーンかリッチかに応じて前記第１の空燃比フィードバック制御手段におけるスキップ量を増大又は減少せしめるスキップ量演算手段と、
前記スキップ量演算手段によって演算されるスキップ量の中心値を学習する中心値学習手段と、
前記中心値学習手段によって学習された中心値を基準とする下限ガード値から上限ガード値までの範囲内に、前記スキップ量演算手段によって演算されるスキップ量を制限する上下限ガード手段と、
少なくとも前記第２の空燃比センサの出力に基づいて、前記触媒コンバータ内の触媒の劣化の有無を判定する触媒劣化判定手段と、
前記触媒劣化判定手段によって前記第２の空燃比センサの出力が監視されているときには、前記下限ガード値を小さく及び／又は前記上限ガード値を大きくするように変更するガード値変更手段と、
前記空燃比補正係数演算手段によって演算される空燃比補正係数に応じて機関の空燃比を調整する空燃比調整手段と、
を具備する、内燃機関の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の制御装置に関する。
【０００２】
【従来の技術】
従来より、自動車用内燃機関においては、排気ガス浄化対策として、不完全燃焼成分であるＨＣ（炭化水素）及びＣＯ（一酸化炭素）の酸化と、空気中の窒素と燃え残りの酸素とが反応して生成されるＮＯx （窒素酸化物）の還元とを同時に促進する三元触媒が利用されている。そのような三元触媒による酸化・還元能力を高めるためには、機関の燃焼状態を示す空燃比（Ａ／Ｆ）を理論空燃比近傍（ウィンドウ）に制御する必要がある。そのため、機関における燃料噴射制御においては、排気ガス中の残留酸素濃度に基づき空燃比が理論空燃比よりもリッチかリーンかを感知するＯ2 センサ（酸素センサ）を設け、そのセンサ出力に基づいて燃料量を補正する空燃比フィードバック制御が行われている。
【０００３】
かかる空燃比フィードバック制御では、酸素濃度を検出するＯ2 センサをできるだけ燃焼室に近い箇所、すなわち触媒コンバータより上流側に設けているが、そのＯ2 センサの出力特性のばらつきを補償するために、触媒コンバータより下流側に第２のＯ2 センサを更に設けたダブルＯ2 センサシステムも実現されている。すなわち、触媒下流側では、排気ガスは十分に攪拌されており、その酸素濃度も三元触媒の作用によりほぼ平衡状態にあることにより、下流側Ｏ2 センサの出力は、上流側Ｏ2 センサの出力よりも緩やかに変化し、従って混合気全体のリッチ／リーン傾向を示す。ダブルＯ2 センサシステムは、触媒上流側Ｏ2 センサによるメイン空燃比フィードバック制御に加え、触媒下流側Ｏ2 センサによるサブ空燃比フィードバック制御を実施するものであり、メイン空燃比フィードバック制御にて空燃比補正係数を演算する際の各種定数を下流側Ｏ2 センサの出力に基づいて修正することにより、又は下流側Ｏ2 センサの出力に基づく第２の空燃比補正係数を導入することにより、上流側Ｏ2 センサの出力特性のばらつきを吸収し、空燃比制御精度の向上を図っている。
【０００４】
例えば、空燃比補正係数のスキップ量を可変にしたダブルＯ2 センサシステムが知られている。このシステムでは、メイン空燃比フィードバック制御は、上流側Ｏ2 センサによって感知される空燃比が継続してリーン又はリッチであるときには空燃比フィードバック補正係数を一定割合で増大又は減少せしめるとともに、リッチからリーンへ又はリーンからリッチへと反転するときには空燃比フィードバック補正係数を所定のスキップ量だけ階段状に増大又は減少せしめる。一方、サブ空燃比フィードバック制御は、上流側空燃比のリッチからリーンへの反転時における空燃比補正係数のリッチスキップ量を、下流側Ｏ2 センサによって感知される空燃比が継続してリーン又はリッチであるときには一定割合で増大又は減少せしめるとともに、リッチからリーンへ又はリーンからリッチへと反転するときには所定のスキップ量だけ階段状に増大又は減少せしめる。そして、上流側空燃比のリーンからリッチへの反転時における空燃比補正係数のリーンスキップ量は、その量と空燃比補正係数のリッチスキップ量との和が一定に維持されるように設定される。
【０００５】
ここで、三元触媒は、排気ガスがリーン状態にあるときに過剰分の酸素を吸着し、排気ガスがリッチ状態にあるときに不足分の酸素を放出することにより、排気ガスを浄化する、というＯ2 ストレージ効果を奏するものであるが、そのＯ2 ストレージ量は有限である。上述の如く空燃比補正係数のスキップ量を可変にしたダブルＯ2 センサシステムにおいては、下流側Ｏ2 センサの出力が反転するまで空燃比補正係数のリッチスキップ量の更新が実施されることとなるが、排気ガスが気筒からセンサに到達するまでの輸送遅れやセンサの応答遅れを考慮すると、実際には空燃比制御が反対方向に逆転されるべき時点を既にある時間だけ経過している時点まで一方向の制御が継続することとなり、触媒内のＯ2 ストレージ量が空又は飽和に達するおそれがある。このようなオーバーシュートが発生すると、ＣＯやＮＯx の排出量が増大する。
【０００６】
また、次のような問題もある。サブ空燃比フィードバック制御が継続しているときに、下流側Ｏ2 センサの出力の反転が繰り返されると、Ｏ2 ストレージ量と空燃比補正係数のリッチスキップ量とはほぼ対応してくる。しかし、燃料カット、加速増量等の外乱が入ると、そのような均衡がくずれるため、オーバーシュート分が更に増加し、エミッションが悪化する。
【０００７】
そこで、本出願人は、先にした特願平１０−５８２７９号において、空燃比補正係数のリッチスキップ量の中心値を学習するとともに、リッチスキップ量に対して、その中心値を基準として上下限ガード値を設定することにより（幅寄せ制御）、リッチスキップ量を触媒Ｏ2 ストレージ状態に適合した最適値に近づけ、触媒Ｏ2 ストレージ量を考慮した空燃比制御を実施する空燃比制御装置を提案している。
【０００８】
【発明が解決しようとする課題】
ところで、排気ガスの熱の作用や鉛等の被毒の作用により触媒が劣化してくると、十分な排気ガス浄化性能を得ることはできない。そこで、従来より、種々の触媒劣化判定方法が提案されている。その一つは、触媒下流側Ｏ2 センサによって暖機後のＯ2 ストレージ効果（過剰の酸素を保持し未燃焼排気物の浄化に利用する機能）の低下を検出することにより、触媒の劣化の有無を判定するものである。すなわち、触媒の劣化は、結果として暖機後の浄化性能の低下を誘発するが、この方法は、Ｏ2 ストレージ効果の低下を浄化性能の低下と推定し、下流側Ｏ2 センサの出力信号を使用して、その軌跡長、フィードバック周波数等を求め、Ｏ2 ストレージ効果の低下を検出し、触媒の劣化を検出するものである。例えば、理論空燃比へのフィードバック制御中において上流側及び下流側Ｏ2 センサの出力の軌跡長を求め、それらの比に基づき触媒劣化の有無が判定される。
【０００９】
しかし、上述の如き幅寄せ制御を実施している場合において、リッチスキップ量の中心値の学習値がずれているときには、下流側Ｏ2 センサの出力がリッチ又はリーンに貼り付く状態が生じ得る。かかる状態の下では、下流側Ｏ2 センサの出力に基づく触媒劣化判定が困難となる。
【００１０】
本発明は、上述した問題点に鑑みてなされたものであり、その目的は、排気系に設けられた排気ガス浄化のための触媒コンバータの上流側及び下流側にそれぞれ第１及び第２の空燃比センサが配設された内燃機関において、触媒のＯ2 ストレージ量を考慮した空燃比制御を採用しつつ第２の空燃比センサに基づく触媒劣化判定の精度の悪化を防止することができる制御装置を提供することにある。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、本発明によれば、排気系に設けられた排気ガス浄化のための触媒コンバータの上流側及び下流側にそれぞれ第１及び第２の空燃比センサを配設した内燃機関における制御装置であって、前記第１の空燃比センサによって感知される空燃比が継続してリーン又はリッチのときには空燃比フィードバック補正係数を一定割合で増大又は減少せしめるとともに、前記第１の空燃比センサによって感知される空燃比がリッチからリーンへ又はリーンからリッチへと反転するときには空燃比補正係数を所定のスキップ量だけ階段状に増大又は減少せしめる空燃比補正係数演算手段と、前記第２の空燃比センサによって感知される空燃比がリーンかリッチかに応じて前記第１の空燃比フィードバック制御手段におけるスキップ量を増大又は減少せしめるスキップ量演算手段と、前記スキップ量演算手段によって演算されるスキップ量の中心値を学習する中心値学習手段と、前記中心値学習手段によって学習された中心値を基準とする下限ガード値から上限ガード値までの範囲内に、前記スキップ量演算手段によって演算されるスキップ量を制限する上下限ガード手段と、少なくとも前記第２の空燃比センサの出力に基づいて、前記触媒コンバータ内の触媒の劣化の有無を判定する触媒劣化判定手段と、前記触媒劣化判定手段によって前記第２の空燃比センサの出力が監視されているときには、前記下限ガード値を小さく及び／又は前記上限ガード値を大きくするように変更するガード値変更手段と、前記空燃比補正係数演算手段によって演算される空燃比補正係数に応じて機関の空燃比を調整する空燃比調整手段と、を具備する、内燃機関の制御装置が提供される。
【００１２】
【発明の実施の形態】
以下、添付図面を参照して本発明の実施形態について説明する。
【００１３】
図１は、本発明の一実施形態に係る制御装置を備えた内燃機関の全体概要図である。内燃機関１は、車両搭載用の直列多気筒４ストロークサイクルレシプロガソリン機関である。機関１は、シリンダブロック２及びシリンダヘッド３を備えている。シリンダブロック２には、上下方向へ延びる複数個のシリンダ４が紙面の厚み方向へ並設され、各シリンダ４内には、ピストン５が往復動可能に収容されている。各ピストン５は、コネクティングロッド６を介し共通のクランクシャフト７に連結されている。各ピストン５の往復運動は、コネクティングロッド６を介してクランクシャフト７の回転運動に変換される。
【００１４】
シリンダブロック２とシリンダヘッド３との間において、各ピストン５の上側は燃焼室８となっている。シリンダヘッド３には、その両外側面と各燃焼室８とを連通させる吸気ポート９及び排気ポート１０がそれぞれ設けられている。これらのポート９及び１０を開閉するために、シリンダヘッド３には吸気バルブ１１及び排気バルブ１２がそれぞれ略上下方向への往復動可能に支持されている。また、シリンダヘッド３において、各バルブ１１，１２の上方には、吸気側カムシャフト１３及び排気側カムシャフト１４がそれぞれ回転可能に設けられている。カムシャフト１３及び１４には、吸気バルブ１１及び排気バルブ１２を駆動するためのカム１５及び１６が取り付けられている。カムシャフト１３及び１４の端部にそれぞれ設けられたタイミングプーリ１７及び１８は、クランクシャフト７の端部に設けられたタイミングプーリ１９へタイミングベルト２０により連結されている。
【００１５】
吸気ポート９には、エアクリーナ３１、スロットルバルブ３２、サージタンク３３、吸気マニホルド３４等を備えた吸気通路３０が接続されている。機関１外部の空気（外気）は、燃焼室８へ向けて吸気通路３０の各部３１，３２，３３及び３４を順に通過する。また、スロットルバルブ３２をバイパスするアイドルアジャスト通路３５には、アイドル時の空気流量を調節するためのアイドル回転速度制御弁（ＩＳＣＶ）３６が設けられている。吸気マニホルド３４には、各吸気ポート９へ向けて燃料を噴射するインジェクタ４０が取付けられている。燃料は、燃料タンク４１に貯蔵されており、そこから燃料ポンプ４２によりくみ上げられ、燃料配管４３を経てインジェクタ４０に供給される。そして、インジェクタ４０から噴射される燃料と吸気通路３０内を流れる空気とからなる混合気は、吸気バルブ１１を介して燃焼室８へ導入される。
【００１６】
この混合気に着火するために、シリンダヘッド３には点火プラグ５０が取付けられている。点火時には、点火信号を受けたイグナイタ５１が、点火コイル５２の１次電流の通電及び遮断を制御し、その２次電流が、点火ディストリビュータ５３を介して点火プラグ５０に供給される。
【００１７】
燃焼した混合気は、排気ガスとして排気バルブ１２を介して排気ポート１０に導かれる。排気ポート１０には、排気マニホルド６１、触媒コンバータ６２等を備えた排気通路６０が接続されている。触媒コンバータ６２には、不完全燃焼成分であるＨＣ（炭化水素）及びＣＯ（一酸化炭素）の酸化と、空気中の窒素と燃え残りの酸素とが反応して生成されるＮＯx （窒素酸化物）の還元とを同時に促進する三元触媒が収容されている。こうして触媒コンバータ６２において浄化された排気ガスが大気中に排出される。
【００１８】
機関１には各種のセンサが取付けられている。シリンダブロック２には、機関１の冷却水の温度を検出するための水温センサ７４が取付けられている。吸気通路３０には、吸入空気量（質量流量）を検出するためのエアフローメータ７０が取り付けられている。吸気通路３０においてエアクリーナ３１の近傍には、吸入空気の温度を検出するための吸気温センサ７３が取付けられている。吸気通路３０において、スロットルバルブ３２の近傍には、その軸の回動角度を検出するためのスロットル開度センサ７２が設けられている。また、スロットルバルブ３２が全閉状態のときには、アイドルスイッチ８２がオンとなり、その出力であるスロットル全閉信号がアクティブとなる。排気通路６０の触媒コンバータ６２より上流側の部分には、空燃比センサとして排気ガスの空燃比が理論空燃比に対してリッチかリーンかを検出する上流側Ｏ2 センサ（メインＯ2 センサ）７５が取付けられている。また、この機関は、Ｏ2 センサ７５の出力特性のばらつきを補償するサブ空燃比フィードバック制御を実施する機関であり、触媒コンバータ６２より下流の排気通路には、下流側Ｏ2 センサ（サブＯ2 センサ）７６が設けられている。
【００１９】
ディストリビュータ５３には、クランクシャフト７の回転に同期して回転する２個のロータが内蔵されており、クランクシャフト７の基準位置を検出するために一方のロータの回転に基づいてクランク角（ＣＡ）に換算して７２０°ＣＡごとに基準位置検出用パルスを発生させるクランク基準位置センサ８０が設けられ、また、クランクシャフト７の回転速度（機関回転速度ＮＥ）を検出するために他方のロータの回転に基づいて３０°ＣＡごとに回転速度検出用パルスを発生させるクランク角センサ８１が設けられている。なお、車両には、トランスミッション出力軸の回転速度すなわち車速ＳＰＤに比例した数の出力パルスを単位時間当たりに発生する車速センサ８３が取り付けられている。
【００２０】
機関電子制御装置（エンジンＥＣＵ）９０は、空燃比制御（燃料噴射制御）、点火時期制御、アイドル回転速度制御等を実行するマイクロコンピュータシステムであり、そのハードウェア構成は、図２のブロック図に示される。リードオンリメモリ（ＲＯＭ）９３に格納されたプログラム及び各種のマップに従って、中央処理装置（ＣＰＵ）９１は、各種センサ及びスイッチからの信号をＡ／Ｄ変換回路（ＡＤＣ）９５又は入力インタフェース回路９６を介して入力し、その入力信号に基づいて演算処理を実行し、その演算結果に基づき駆動回路９７ａ〜９７ｃを介して各種アクチュエータ用制御信号を出力する。ランダムアクセスメモリ（ＲＡＭ）９４は、その演算・制御処理過程における一時的なデータ記憶場所として使用される。また、バックアップＲＡＭ９９は、バッテリ（図示せず）に直接接続されることにより電力の供給を受け、イグニションスイッチがオフの状態においても保持されるべきデータ（例えば、各種の学習値）を格納するために使用される。また、これらのＥＣＵ内の各構成要素は、アドレスバス、データバス及びコントロールバスからなるシステムバス９２を介して接続されている。
【００２１】
ＥＣＵ９０においては、各種制御のために、吸入空気量信号、スロットル開度信号、吸気温信号及び冷却水温信号が、一定クランク角ごとに実行されるＡ／Ｄ変換ルーチンによって取り込まれ、ＲＡＭ９４の所定領域にそれぞれ吸入空気量データＧＡ、スロットル開度データＴＡ、吸気温データＴＨＡ及び冷却水温データＴＨＷとして格納される。また、クランク角センサ８１のパルス信号が入力するごとに、そのパルス間隔から図示しないルーチンにより機関回転速度が算出され、ＲＡＭ９４の所定領域に機関回転速度データＮＥとして格納される。
【００２２】
点火時期制御は、クランク角センサ８１から得られる機関回転速度及びその他のセンサからの信号により、機関の状態を総合的に判定し、最適な点火時期を決定し、駆動回路９７ｂを介してイグナイタ５１に点火信号を送るものである。また、アイドル回転速度制御は、アイドルスイッチ８２からのスロットル全閉信号及び車速センサ８３からの車速信号によってアイドル状態を検出するとともに、水温センサ７４からの機関冷却水温度等によって決められる目標回転速度と実際の機関回転速度とを比較し、その差に応じて目標回転速度となるように制御量を決定し、駆動回路９７ｃを介してＩＳＣＶ３６を制御して空気量を調節することにより、最適なアイドル回転速度を維持するものである。以下、本実施形態における空燃比制御について詳細に説明する。
【００２３】
図３は、ＣＰＵ９１によって実行される噴射量演算ルーチンの処理手順を示すフローチャートに示される。本ルーチンは、一定クランク角ごと（例えば３６０°ごと）に実行される。このルーチンでは、燃料噴射量、すなわちインジェクタ４０による燃料噴射時間ＴＡＵが、機関１回転当たりの吸入空気量ＧＮと、後述する空燃比補正係数ＦＡＦとに基づいて算出される。
【００２４】
具体的には、まず、ステップ１０２において、吸入空気量データＧＡ及び回転速度データＮＥをＲＡＭ９４の所定領域から読み込み、機関１回転当たりの吸入空気量ＧＮを、
ＧＮ←ＧＡ／ＮＥ
なる演算により求める。次いで、ステップ１０４では、基本燃料噴射時間ＴＡＵＰを、
ＴＡＵＰ＝Ｋ＊ＧＮ
として算出する。ここで、基本燃料噴射時間ＴＡＵＰは、燃焼室に供給される混合気の空燃比を理論空燃比とするために必要とされる燃料噴射時間であり、Ｋは定数である。
【００２５】
また、実際の燃料噴射時間ＴＡＵは、ステップ１０６において、上記ＴＡＵＰを空燃比補正係数ＦＡＦで補正した値、すなわち、
ＴＡＵ＝ＴＡＵＰ＊ＦＡＦ＊α＋β
として算出される。ここで、α及びβは、それぞれ機関運転状態に応じて決定される定数である。また、上記により燃料噴射時間ＴＡＵが算出されると、ステップ１０８では、時間ＴＡＵが駆動回路９７ａにセットされ、時間ＴＡＵに応じた量の燃料がインジェクタ４０から噴射される。
【００２６】
なお、燃料噴射制御では、スロットルバルブ３２が全閉で機関回転速度が所定値以上のときに、燃料供給の不必要な減速状態にあると判断し、燃料噴射を一時的に停止する燃料カットが行われる。一方、機関運転状態に応じて加速増量補正、出力増量補正等の燃料増量補正も行われる。
【００２７】
上記空燃比補正係数ＦＡＦを求める制御が空燃比フィードバック制御であり、本実施形態に係る空燃比フィードバック制御においては、上流側Ｏ2 センサ７５の出力に基づいて空燃比がフィードバック制御されるとともに、下流側Ｏ2 センサ７６の出力に基づいて上流側Ｏ2 センサ７５の出力特性のずれ等を補正する制御も行われる。
【００２８】
図４及び図５は、上流側Ｏ2 センサ７５の出力に基づくメイン空燃比フィードバック制御の処理手順を示すフローチャートである。本ルーチンは、ＣＰＵ９１により一定時間毎（例えば４ｍｓ毎）に実行される。本ルーチンでは、上流側Ｏ2 センサ７５の出力ＶＯＭを基準電圧ＶR1（理論空燃比相当電圧）と比較し、触媒コンバータ上流側での排気空燃比が理論空燃比よりリッチ（ＶＯＭ＞ＶR1）のときには空燃比補正係数ＦＡＦを減少させ、リーン（ＶＯＭ≦ＶR1）のときにはＦＡＦを増大させる制御を行う。Ｏ2 センサは、排気空燃比が理論空燃比よりリッチのときに例えば０．９Ｖの電圧信号を出力し、排気空燃比が理論空燃比よりリーンのときに例えば０．１Ｖ程度の電圧信号を出力する。本実施形態では、上記基準電圧ＶR1は０．４５Ｖ程度に設定される。上記のように空燃比補正係数ＦＡＦを排気空燃比に応じて増減することにより、エアフローメータ７０、インジェクタ４０等の燃料供給系の機器に多少の誤差が生じている場合でも、機関空燃比は正確に理論空燃比近傍に修正される。
【００２９】
具体的には、まず、ステップ２０２において、上流側Ｏ2 センサ７５によるメイン空燃比フィードバック制御の実行条件が成立しているか否かを判別する。例えば、冷却水温が所定値以下のとき、機関始動中、始動後増量中、暖機増量中、出力増量中、上流側Ｏ2 センサ７５の出力信号が一度も反転していないとき、燃料カット中、等においては、いずれもフィードバック制御実行条件が不成立となり、その他の場合においてはフィードバック制御実行条件が成立する。条件が不成立のときには、ステップ２３８において空燃比補正係数ＦＡＦを１．０とした後、本ルーチンを終了する。他方、条件が成立するときにはステップ２０４に進む。
【００３０】
ステップ２０４では、上流側Ｏ2 センサ７５の出力ＶＯＭをＡ／Ｄ変換して取り込む。次のステップ２０６では、ＶＯＭが基準電圧ＶR1（例えば０．４５Ｖ）以下か否か、すなわち空燃比がリーンかリッチかを判別し、空燃比がリーン（ＶＯＭ≦ＶR1）であれば、ステップ２０８に進む。ステップ２０８では、ディレイカウンタＣＤＬＹが正か否かを判別し、ＣＤＬＹ＞０であれば、ステップ２１０にてＣＤＬＹを０としてからステップ２１２に進み、一方、ＣＤＬＹ≦０であれば、直接ステップ２１２に進む。ステップ２１２では、ディレイカウンタＣＤＬＹから１を減算する。次いで、ステップ２１４では、ディレイカウンタＣＤＬＹを所定の最小値ＴＤＬと比較し、ＣＤＬＹ＜ＴＤＬのときには、ステップ２１６にてディレイカウンタＣＤＬＹを最小値ＴＤＬでガードし、ステップ２１８にて空燃比フラグＦ１を０（リーン）として、ステップ２３２に進み、一方、ＣＤＬＹ≧ＴＤＬのときには、直接ステップ２３２に進む。なお、最小値ＴＤＬは上流側Ｏ2 センサ７５の出力においてリッチからリーンへの変化があってもリッチ状態であるとの判断を保持するためのリーン判定遅延時間であって、負の値で定義される。
【００３１】
また、ステップ２０６においてリッチ（ＶＯＭ＞ＶR1）と判定されるときには、ステップ２２０に進む。ステップ２２０では、ディレイカウンタＣＤＬＹが負か否かを判別し、ＣＤＬＹ＜０であれば、ステップ２２２にてＣＤＬＹを０としてからステップ２２４に進み、一方、ＣＤＬＹ≧０であれば、直接ステップ２２４に進む。ステップ２２４では、ディレイカウンタＣＤＬＹに１を加算する。次いで、ステップ２２６では、ディレイカウンタＣＤＬＹを所定の最大値ＴＤＲと比較し、ＣＤＬＹ＞ＴＤＲのときには、ステップ２２８にてディレイカウンタＣＤＬＹを最大値ＴＤＲでガードし、ステップ２３０にて空燃比フラグＦ１を１（リッチ）として、ステップ２３２に進み、一方、ＣＤＬＹ≦ＴＤＲのときには、直接ステップ２３２に進む。なお、最大値ＴＤＲは上流側Ｏ2 センサ７５の出力においてリーンからリッチへの変化があってもリーン状態であるとの判断を保持するためのリッチ判定遅延時間であって、正の値で定義される。
【００３２】
ステップ２３２では、空燃比フラグＦ１の値（０又は１）が変化したか否か、すなわち遅延処理後の空燃比が反転したか否かを判別する。空燃比が反転していれば、ステップ２３４にて、リッチからリーンへの反転か、リーンからリッチへの反転かを判別する。リッチからリーンへの反転であれば、ステップ２４０において、
ＦＡＦ←ＦＡＦ＋ＲＳＲ
として空燃比補正係数ＦＡＦをスキップ的に増大させ、逆に、リーンからリッチへの反転であれば、ステップ２４２において、
ＦＡＦ←ＦＡＦ−ＲＳＬ
として空燃比補正係数ＦＡＦをスキップ的に減少させる。つまり、スキップ処理を行う。
【００３３】
ステップ２３２にて空燃比フラグＦ１の値が変化していなければ、ステップ２３６、２４４及び２４６にて積分処理を行う。つまり、ステップ２３６にて“Ｆ１＝０”か否かを判別し、“Ｆ１＝０”（リーン）であればステップ２４４において、
ＦＡＦ←ＦＡＦ＋ＫＩＲ
とし、一方、“Ｆ１＝１”（リッチ）であればステップ２４６において、
ＦＡＦ←ＦＡＦ−ＫＩＬ
とする。ここで、積分定数ＫＩＲ及びＫＩＬは、スキップ定数ＲＳＲ及びＲＳＬに比して十分小さく設定してあり、つまり、ＫＩＲ＜ＲＳＲ、かつ、ＫＩＬ＜ＲＳＬ、である。したがって、ステップ２４４は、リーン状態（Ｆ１＝０）で燃料噴射量を徐々に増大させる一方、ステップ２４６は、リッチ状態（Ｆ１＝１）で燃料噴射量を徐々に減少させる。
【００３４】
ステップ２４８、２５０、２５２及び２５４では、演算された空燃比補正係数ＦＡＦが、所定の最小値（例えば０．８）以上で、かつ、所定の最大値（例えば１．２）以下となるように、ガード処理が施される。これにより、何らかの原因で空燃比補正係数ＦＡＦの演算結果が過度に大きく又は小さくなる場合においても、そのガード値で機関の空燃比が制御され、オーバリッチ又はオーバリーンになるのが防止される。
【００３５】
図６は、図４及び図５のメイン空燃比フィードバック制御を行った場合に、上流側Ｏ2 センサ７５で検出された空燃比（Ａ／Ｆ）変化（図６(A) ）に対してカウンタＣＤＬＹ（同(B) ）、フラグＦ１（同(C) ）、空燃比補正係数ＦＡＦ（同(D) ）がどのように変化するかを例示している。図６(A) に示すように、Ａ／Ｆがリーンからリッチに変化した場合でも、空燃比フラグＦ１（図６(C) ）の値は直ちに０から１には変化せず、カウンタＣＤＬＹの値が０からＴＤＲに増大するまでの時間（図６(C) のＴ1 ）の間は０のまま保持され、Ｔ1 経過後に０から１に変化する。また、Ａ／Ｆがリッチからリーンに変化した場合も、Ｆ１の値はカウンタＣＤＬＹの値が０からＴＤＬ（ＴＤＬは負の値）に減少するまでの時間（図６(C) のＴ2 ）の間は１のまま保持され、Ｔ2 経過後に１から０に変化する。このため、図６(A) にＮで示したように、外乱等により上流側Ｏ2 センサ７５の出力が短い周期で変化したような場合でも、フラグＦ１の値は追従して変化しないため、空燃比制御が安定する。
【００３６】
メイン空燃比フィードバック制御の結果、空燃比補正係数ＦＡＦの値は図６(D) に示すように周期的に増減を繰り返し、機関空燃比はリッチ空燃比とリーン空燃比とに交互に変動する。また、図３で説明したように、ＦＡＦの値が増大すると燃料噴射時間ＴＡＵは増大し、ＦＡＦの値が減少すると燃料噴射時間ＴＡＵも減少する。
【００３７】
次に、下流側Ｏ2 センサ７６の出力に基づくサブ空燃比フィードバック制御について説明する。前述のように、サブ空燃比フィードバック制御としては、メイン空燃比フィードバック制御にて空燃比補正係数を演算する際の各種定数を下流側Ｏ2 センサの出力に基づいて修正するものと、下流側Ｏ2 センサの出力に基づく第２の空燃比補正係数を導入するものとがある。前者は、上述のＦＡＦ演算の際に使用される、スキップ量ＲＳＲ及びＲＳＬ、積分量ＫＩＲ及びＫＩＬ、判定遅延時間ＴＤＲ及びＴＤＬ、上流側Ｏ2 センサ出力判定用基準電圧ＶR1、等を可変にするものである。
【００３８】
その中で、空燃比補正係数ＦＡＦのスキップ量ＲＳＲ及びＲＳＬを可変にするサブ空燃比フィードバック制御は、図６(D) から判るように、ＲＳＲが増大しＲＳＬが減少すると、機関空燃比のリッチ空燃比側への振れ幅が大きくなり、空燃比が全体的にリッチ空燃比側に移行する一方、逆に、ＲＳＲが減少しＲＳＬが増大すると、機関空燃比のリーン空燃比側への振れ幅が大きくなり、空燃比が全体的にリーン空燃比側に移行する、という知見に基づき、ＲＳＲ及びＲＳＬの値を増減せしめることにより、機関空燃比をリッチ側又はリーン側に変化させるものである。具体的には、下流側Ｏ2 センサによって感知される空燃比が継続してリーン又はリッチであるときには一定割合でＲＳＲを増大又は減少せしめるとともに、リッチからリーンへ又はリーンからリッチへと反転するときには所定のスキップ量だけ階段状にＲＳＲを増大又は減少せしめる。そして、空燃比補正係数ＦＡＦのリーンスキップ量ＲＳＬは、そのＲＳＬの値とＲＳＲの値との和が一定に維持されるように設定される。
【００３９】
図７は、空燃比補正係数ＦＡＦのスキップ量ＲＳＲ及びＲＳＬを可変にするサブ空燃比フィードバック制御の問題点を説明するための図であって、下流側Ｏ2 センサ出力電圧ＶＯＳ、リッチスキップ量ＲＳＲ及び触媒内Ｏ2 ストレージ量の挙動を例示するタイムチャートである。この図に示されるように、ＲＳＲの更新は、ＶＯＳが反転するまで実施される。ところで、排気ガスが気筒からセンサに到達するまでの輸送遅れやセンサの応答遅れを考慮すると、実際には空燃比フィードバック制御によるリッチ化又はリーン化の方向が反対方向に逆転されるべき時点を既にある時間だけ経過している時点まで一方向の制御が継続することとなり、触媒内のＯ2 ストレージ量が空又は飽和に達するおそれがある。すなわち、ＲＳＲにおいて、図７(B) の斜線部で示されるオーバシュート部分が発生する可能性がある。かかるオーバシュート部分の発生により、ＣＯやＮＯx の排出量が増大するという問題が誘発される。また、サブ空燃比フィードバック制御が継続しているときに、下流側Ｏ2 センサの出力ＶＯＳの反転が繰り返されると、Ｏ2 ストレージ量とＲＳＲとはほぼ対応してくるが、燃料カット（Ｆ／Ｃ）、加速増量等の外乱が入ると、そのような均衡がくずれるため、同図に示されるように、オーバーシュート部分が更に増大し、エミッションが一層悪化するおそれがある。
【００４０】
次に、上述の問題点を解決するＲＳＲ幅寄せ制御を採用したサブ空燃比フィードバック制御について、図８及び図９に基づき説明する。本実施形態においては、サブ空燃比フィードバック制御の実行が継続し、下流側Ｏ2 センサ出力の反転が数回繰り返されている間に、図８に示される如き、リッチスキップ量ＲＳＲの極大値と極小値との間の中心値を逐次求め、それらの中心値の平均を算出して記憶する学習処理を実施する。そして、この平均化後の中心値を、空燃比制御の中心が触媒ウィンドウの中央となる値とみなし、下流側Ｏ2 センサ出力及び機関運転状態により、ＲＳＲの更新範囲に対し、中心値を基準として上下限ガードをかける。すなわち、かかる中心値をＲＳＲＭとおけば、
ＲＳＲ＝ＲＳＲＭ＋ＤＲＳＲ
と表すことができ、式中のＤＲＳＲは、中心値ＲＳＲＭからのずれ（偏差）を表すこととなるが、このＤＲＳＲに上下限ガードを設定する。
【００４１】
図９は、ＲＳＲ幅寄せ制御において、下流側Ｏ2 センサ出力電圧ＶＯＳ、触媒内Ｏ2 ストレージ量及びＲＳＲの中心値ＲＳＲＭからの偏差ＤＲＳＲがどのような挙動を示すかを例示するタイムチャートである。図９（Ｃ）において、値ａは、下流側Ｏ2 センサがリッチ信号を出力しているときに偏差ＤＲＳＲに対して設定される下限ガード値である。なお、値ａは、下流側Ｏ2 センサのリッチ出力時におけるＣＯの排出がほとんどなく、かつ、リッチからリーンへの反転直前（この時点では、実際の触媒内の空燃比は輸送遅れ及びセンサ応答遅れのため既にリーンとなっている）のＮＯx の排出が極力少なくなるように定められる実験値である。また、値ｆは、下流側Ｏ2 センサがリーン信号を出力しているときに偏差ＤＲＳＲに対して設定される上限ガード値である。なお、値ｆは、下流側Ｏ2 センサのリーン出力時におけるＮＯx の排出がほとんどなく、かつ、リーンからリッチへの反転直前（この時点では、実際の触媒内の空燃比は輸送遅れ及びセンサ応答遅れのため既にリッチとなっている）のＣＯの排出が極力少なくなるように定められる実験値である。
【００４２】
また、値ｃは、下流側Ｏ2 センサがリッチ信号を出力しているときに偏差ＤＲＳＲに対して設定される上限ガード値である。なお、値ｃは、下流側Ｏ2 センサの出力がリッチへ反転した直後におけるＣＯの排出が極力小さくなるように定められる実験値である。そして、特に、燃料増量後における下流側Ｏ2 センサのリッチ出力時には、上限ガード値は、値ｃよりも小さな値ｂに設定される。また、値ｄは、下流側Ｏ2 センサがリーン信号を出力しているときに偏差ＤＲＳＲに対して設定される下限ガード値である。なお、値ｄは、下流側Ｏ2 センサの出力がリッチへ反転した直後におけるＮＯx の排出が極力小さくなるように定められる実験値である。そして、特に、燃料カット後における下流側Ｏ2 センサのリーン出力時には、下限ガード値は、値ｄよりも大きな値ｅに設定される。
【００４３】
以上を整理して記すと、空燃比補正係数ＦＡＦのリッチスキップ量ＲＳＲの中心値ＲＳＲＭからの偏差ＤＲＳＲは、下流側Ｏ2 センサの出力及び機関運転状態に応じて、下記の範囲にて更新されることになる。
0003674404.tif 000002
各値は、それぞれの運転状態において最適な空燃比制御の中心値から極力外れないように決定され、通常、ａ＜ｂ＜ｃ＜ｄ＜ｅ＜ｆの関係に設定される。かくして、従来のように、触媒内のＯ2 ストレージ量が既に空又は飽和の状態に達しているにもかかわらず、ＲＳＲの増量又は減量がそのまま継続されるという事態が回避されることとなる。すなわち、図９（Ａ）のように下流側Ｏ2 センサの出力が変化しても、Ｏ2 ストレージ量は、同図（Ｂ）に示されるように推移する。なお、後述するように、本発明では、触媒劣化判定中において下限ガード値ａ及び上限ガード値ｆが変更される。
【００４４】
図１０及び図１１は、下流側Ｏ2 センサ７６の出力に基づくサブ空燃比フィードバック制御の処理手順を示すフローチャートであって、上述の制御を具体化するものである。本ルーチンは、ＣＰＵ９１によって一定時間周期（例えば１６ｍｓ）で実行される。なお、本ルーチンで使用される中心値学習結果（中心学習値）ＲＳＲＭＧについては、後述する。まず、ステップ３０２では、今回のサブ空燃比フィードバック制御の実行条件が成立するか否かを判定する。具体的には、この条件は、前述のメイン空燃比フィードバック制御の実行条件と同様の条件の他、中心値の学習が少なくとも１回実施されていること（すなわちＲＳＲＭＧ≠０）、かつ、後述する学習制御実行条件が不成立であるか又は学習が完了していることである。本サブ空燃比フィードバック制御の実行条件が不成立のときには、本ルーチンを終了し、一方、成立するときには、ステップ３０４に進む。
【００４５】
ステップ３０４では、下流側Ｏ2 センサ７６の出力ＶＯＳをＡ／Ｄ変換して取り込む。次いで、ステップ３０６では、ＶＯＳが基準電圧ＶR2（例えば０．４５Ｖ）より大きいか否かを判定し、ＶＯＳ＞ＶR2のときには、ステップ３０８に進んでリッチフラグＸＲＩＣＨを１にセットする一方、ＶＯＳ≦ＶR2のときには、ステップ３１０に進んでリッチフラグＸＲＩＣＨを０にリセットする。次いで、ステップ３１２では、図１２に示される如きマップを参照することにより、中心学習値ＲＳＲＭＧを現在の吸入空気量ＧＡに応じて補正するための補正量ＲＳＲＭＧＣを補間計算する。かかる補正を行うのは、後述するように、中心学習値ＲＳＲＭＧが一定の空気量範囲にて学習されているためである。次いで、ステップ３１４では、実際にフィードバック制御で使用する制御用中心値ＲＳＲＭを、
ＲＳＲＭ←ＲＳＲＭＧ＋ＲＳＲＭＧＣ
なる演算により求める。
【００４６】
次いで、ステップ３１６では、燃料増量中であるか否かを判定し、燃料増量中のときのみ、ステップ３１８にてオーバリッチフラグＸＯＲ（初期値０）を１にセットする。次いで、ステップ３２０では、燃料カット中であるか否かを判定し、燃料カット中のときのみ、ステップ３２２にてオーバリーンフラグＸＯＬ（初期値０）を１にセットする。次いで、ステップ３２４では、リッチフラグＸＲＩＣＨが１か０かを判定し、ＸＲＩＣＨ＝１のときにはステップ３２６に進む一方、ＸＲＩＣＨ＝０のときにはステップ３３６に進む。
【００４７】
ステップ３２６では、下限ガード値ＭＩＮに値ａ（図９参照）を代入し、ステップ３２８に進む。ステップ３２８では、ＸＯＲが１か０かを判定し、ＸＯＲ＝１のときには、ステップ３３０にて上限ガード値ＭＡＸに値ｂ（図９参照）を代入してステップ３３４に進む一方、ＸＯＲ＝０のときには、ステップ３３２にて上限ガード値ＭＡＸに値ｃ（図９参照）を代入してステップ３３４に進む。ステップ３３４では、偏差ＤＲＳＲを、
ＤＲＳＲ←ＤＲＳＲ−ＤL 
なる演算により、所定値ＤL だけ減少させる更新処理を行うとともに、ＸＯＬを０にリセットし、ステップ３４６に進む。
【００４８】
ステップ３３６では、上限ガード値ＭＡＸに値ｆ（図９参照）を代入し、ステップ３３８に進む。ステップ３３８では、ＸＯＬが１か０かを判定し、ＸＯＬ＝１のときには、ステップ３４０にて下限ガード値ＭＩＮに値ｅ（図９参照）を代入してステップ３４４に進む一方、ＸＯＬ＝０のときには、ステップ３４２にて下限ガード値ＭＩＮに値ｄ（図９参照）を代入してステップ３４４に進む。ステップ３４４では、偏差ＤＲＳＲを、
ＤＲＳＲ←ＤＲＳＲ＋ＤR 
なる演算により、所定値ＤR だけ増大させる更新処理を行うとともに、ＸＯＲを０にリセットし、ステップ３４６に進む。
【００４９】
ステップ３４６では、ＤＲＳＲとＭＩＮとを比較し、ＤＲＳＲ＜ＭＩＮのときには、ステップ３５０にてＤＲＳＲにＭＩＮを代入する下限ガード処理を行ってステップ３５４に進む一方、ＭＩＮ≦ＤＲＳＲのときには、ステップ３４８に進む。ステップ３４８では、ＤＲＳＲとＭＡＸとを比較し、ＤＲＳＲ≦ＭＡＸのときには、直接ステップ３５４に進む一方、ＭＡＸ＜ＤＲＳＲのときには、ステップ３５２にてＤＲＳＲにＭＡＸを代入する上限ガード処理を行ってからステップ３５４に進む。ステップ３５４では、中心値ＲＳＲＭ及び偏差ＤＲＳＲに基づいて、
ＲＳＲ←ＲＳＲＭ＋ＤＲＳＲ
なる演算を行う。
【００５０】
ステップ３５６では、ＲＳＲと０．０２とを比較し、ＲＳＲ＜０．０２のときには、ステップ３６０にてＲＳＲに０．０２を代入する絶対的な下限ガード処理を行ってステップ３６４に進む一方、０．０２≦ＲＳＲのときには、ステップ３５８に進む。ステップ３５８では、ＲＳＲと０．０８とを比較し、ＲＳＲ≦０．０８のときには、直接ステップ３６４に進む一方、０．０８＜ＲＳＲのときには、ステップ３６２にてＲＳＲに０．０８を代入する絶対的な上限ガード処理を行ってからステップ３６４に進む。ステップ３６４では、
ＲＳＬ←０．１−ＲＳＲ
なる演算を行う。かくして、メイン空燃比フィードバック制御で使用されるべきＦＡＦスキップ量ＲＳＲ及びＲＳＬが決定される。
【００５１】
次に、上述したサブ空燃比フィードバック制御ルーチンで使用される中心学習値ＲＳＲＭＧの学習方法について説明する。図１３は、燃焼時の実空燃比の時間的変化とＯ2 センサ出力電圧波形とを示すタイムチャートである。この図に示されるように実空燃比が反転してからＯ2 センサ出力がそれに応じて反転するまでの遅れは、輸送遅れとセンサ応答遅れとによる。そして、一般に、Ｏ2 センサが劣化するほど、リッチからリーンへの反転時におけるセンサ応答遅れが大きくなる。また、吸入空気量が大きくなるほど、輸送遅れが小さくなるため、センサ応答遅れの影響が大きくなる。
【００５２】
上流側Ｏ2 センサが劣化した場合、リッチからリーンへの反転時におけるセンサ応答遅れにより、実際にはリーンであるにもかかわらずリッチと判定される時間が大きくなるため、制御される空燃比の中心はリーン側にずれる。この制御空燃比のリーン側へのずれを補償すべくサブ空燃比フィードバック制御によるＦＡＦリッチスキップ量ＲＳＲが決定されるため、中心学習値ＲＳＲＭＧはリッチ側にずれることとなる。そして、このずれは、吸入空気量が大きいほど顕著になる。従って、上流側Ｏ2 センサの劣化度をパラメータとして、吸入空気量ＧＡと中心学習値ＲＳＲＭＧとの関係を示す特性図は、図１４（Ａ）のようになる。
【００５３】
一方、下流側Ｏ2 センサが劣化した場合、リッチからリーンへの反転時におけるセンサ応答遅れにより、実際にはリーンであるにもかかわらずリッチと判定される時間が大きくなるため、サブ空燃比フィードバック制御によるＦＡＦリッチスキップ量ＲＳＲはリーン側にずれることとなる。そして、このずれは、吸入空気量が小さいときには小さいが、吸入空気量が大きくなると顕著になる。従って、下流側Ｏ2 センサの劣化度をパラメータとして、吸入空気量ＧＡと中心学習値ＲＳＲＭＧとの関係を示す特性図は、図１４（Ｂ）のようになる。
【００５４】
図１４（Ａ）及び（Ｂ）の特性を考慮すると、ＲＳＲの中心値を学習するのに適した領域は、同図に示される如き限られた空気量の領域“Ｇ1 ≦ＧＡ≦Ｇ2 ”となり、学習頻度が小さくなってしまう。そこで、本実施形態では、図１５に示されるように、学習可能領域“Ｇ1 ≦ＧＡ≦Ｇ2 ”よりも広い領域“Ｇ0 ≦ＧＡ≦Ｇ3 ”を学習用空燃比制御実行領域として、その領域にあるときに下流側Ｏ2 センサの出力反転周期を短縮させる制御を特別に行うとともに、更に学習可能領域“Ｇ1 ≦ＧＡ≦Ｇ2 ”にあるときにＲＳＲの中心値の学習を行う。
【００５５】
ここで、学習用空燃比制御とは、下流側Ｏ2 センサの出力反転時において、図１６（Ａ）に示される如くＲＳＲを所定量だけスキップさせるのではなく、同図（Ｂ）に示される如く今回反転時のＲＳＲ値と前回反転時のＲＳＲ値との中心までスキップさせようというものである。かかる制御を行うことにより、下流側Ｏ2 センサの出力反転周期は、同図（Ａ）に示されるものから同図（Ｂ）に示されるものへと短縮され、その結果、学習可能領域（Ｇ1 ≦ＧＡ≦Ｇ2 ）にある時間は短くても、学習機会は多くなり、すなわち学習頻度が大きくなる。同時に、図７（Ｂ）に示されるようなＲＳＲのオーバシュートを減少させ、エミッションを向上させることも可能となる。
【００５６】
次に、学習精度を向上させる手法について説明する。図１７（Ａ）に示されるように、下流側Ｏ2 センサ出力ＶＯＳのリッチ時間ＴＲとリーン時間ＴＬとが等しくない場合には、同図（Ｂ）に示されるＲＳＲの極大値ＲＳＲＲと極小値ＲＳＲＬとの単なる平均値を求めたのでは、ＲＳＲの中心値を正確に反映しているとは言えない。そこで、本実施形態では、リッチ時間の比率、
ＤＲ＝ＴＲ／（ＴＲ＋ＴＬ）
を算出し、ＤＲが大きいときにはリッチずれ、小さいときにはリーンずれがあるとみなして、
学習値＝ＲＳＲＬ＋（ＲＳＲＲ−ＲＳＲＬ）＊ＤＲ
なる演算により、学習値を求める。
【００５７】
また、学習精度向上のため、ＲＳＲが所定値ｇよりも小さいこと、リッチ時間の比率が所定範囲“ｈからｋまで”にあること、リッチ時間及びリーン時間がそれぞれ所定値ｌ及びｍより大きいこと（下流側Ｏ2 センサのノイズによるばらつきを防止するため）、等の条件のうちいずれかの条件が成立しないときには、学習を中止するようにする。また、学習値をサブ空燃比フィードバック制御において反映させる際には、図１２に関して説明したように、学習領域の空気量と実空気量との差を補償するため、学習値を実空気量に応じて補正するためのマップを設けて補間計算を行う。なお、このマップを上流側Ｏ2 センサの劣化度ごとに設けることにより、すなわち空気量と学習値との２次元マップとすることにより、さらにエミッションが向上する。
【００５８】
図１８、図１９、図２０及び図２１は、ＣＰＵ９１によって実行されるＲＳＲ中心値学習ルーチンの処理手順を示すフローチャートであって、以上説明した学習方法を具体化するものである。まず、ステップ４０２では、下流側Ｏ2 センサ７６の出力ＶＯＳをＡ／Ｄ変換して取り込む。次いで、ステップ４０４では、ＶＯＳが基準電圧ＶR2（例えば０．４５Ｖ）より大きいか否かを判定し、ＶＯＳ＞ＶR2のときには、ステップ４０６に進んでリッチフラグＸＲＩＣＨを１にセットする一方、ＶＯＳ≦ＶR2のときには、ステップ４０８に進んでリッチフラグＸＲＩＣＨを０にリセットする。
【００５９】
次いで、ステップ４１０では、空気量以外の本ルーチン実行条件、すなわち回転速度、触媒推定温度等の条件が成立するか否かを判定し、成立するときにはステップ４１２に進む一方、成立しないときにはステップ４２６に進む。ステップ４１２では、空気量ＧＡに関して前述の学習用空燃比制御実行条件が成立するか否か、すなわちＧ0 ≦ＧＡ≦Ｇ3 （図１５参照）が成立するか否かを判定し、成立するときにはステップ４１４に進む一方、成立しないときにはステップ４２６に進む。ステップ４１４では、後述のステップでセットされるべき学習完了フラグＸＧＣが１にセットされているか否かを判定し、ＸＧＣ＝１のときすなわち学習が完了しているときにはステップ４２６に進む一方、ＸＧＣ＝０のときすなわち学習が完了していないときにはステップ４１６に進む。
【００６０】
ステップ４１６では、リッチフラグＸＲＩＣＨが１か０かを判定し、ＸＲＩＣＨ＝０のときにはステップ４２４に進む一方、ＸＲＩＣＨ＝１のときにはステップ４１８に進む。ステップ４１８では、本ルーチンの前回の走行時における下流側Ｏ2 センサの出力判定結果を示すフラグＸＲＩＣＨＯが０か１かを判定し、ＸＲＩＣＨＯ＝０のときにはステップ４２０に進む一方、ＸＲＩＣＨＯ＝１のときにはステップ４２２に進む。ステップ４２０では、リッチからリーンへの反転が検出されたことになるため、反転フラグＸＩＮＶを１にセットし、ＲＳＲの極大値を記憶する変数ＲＳＲＲに現在のＲＳＲを代入し、ＲＳＲを所定のスキップ量ＳL だけ減少させて、ステップ４３２に進む。一方、ステップ４２２では、リッチが継続して検出されたことになるため、反転フラグＸＩＮＶを０にリセットし、ＲＳＲを所定の積分量ＩL （ＩL ＜ＳL ）だけ減少させて、ステップ４３２に進む。
【００６１】
また、ステップ４２４では、フラグＸＲＩＣＨＯが１か０かを判定し、ＸＲＩＣＨＯ＝１のときにはステップ４２８に進む一方、ＸＲＩＣＨＯ＝０のときにはステップ４３０に進む。ステップ４２８では、リーンからリッチへの反転が検出されたことになるため、反転フラグＸＩＮＶを１にセットし、ＲＳＲの極小値を記憶する変数ＲＳＲＬに現在のＲＳＲを代入し、ＲＳＲを所定のスキップ量ＳR だけ増大させて、ステップ４３２に進む。一方、ステップ４３０では、リーンが継続して検出されたことになるため、反転フラグＸＩＮＶを０にリセットし、ＲＳＲを所定の積分量ＩR （ＩR ＜ＳR ）だけ増大させて、ステップ４３２に進む。一方、ステップ４２６では、ＲＳＲＲ及びＲＳＲＬをともに０に設定して、ステップ４４２に進む。
【００６２】
ステップ４３２では、反転フラグＸＩＮＶが１か０かを判定し、ＸＩＮＶ＝１のときにはステップ４３４に進む一方、ＸＩＮＶ＝０のときにはステップ４３８に進む。ステップ４３４では、“ＲＳＲＲ≠０かつＲＳＲＬ≠０”が成立するか否かを判定し、成立するときにはステップ４３６に進む一方、成立しないときにはステップ４３８に進む。ステップ４３６では、図１６（Ｂ）に関して説明した制御を実現するため、ＲＳＲＲとＲＳＲＬとの平均値をＲＳＲに代入して、ステップ４３８に進む。ステップ４３８では、ＲＳＲの値とＲＳＬの値との合計が０．１となるようにＦＡＦリーンスキップ量ＲＳＬを決定する。こうして求められたＲＳＲ及びＲＳＬがメイン空燃比フィードバック制御にて使用され、前述した学習用空燃比制御が実現されることとなる。
【００６３】
ステップ４３８に次いで実行されるステップ４４０では、空気量ＧＡが学習可能領域にあるか否か、すなわちＧ1 ≦ＧＡ≦Ｇ2 （図１５参照）が成立するか否かを判定し、成立するときにはステップ４４４に進む一方、成立しないときにはステップ４４２に進む。ステップ４４２では、学習値更新フラグＸＧを０にリセットするとともに、後続のステップで更新されるべきリッチ時間カウンタＣＴＲ及びリーン時間カウンタＣＴＬを０にイニシャライズして、ステップ４７４に進む。一方、ステップ４４４では、反転フラグＸＩＮＶが１か０かを判定し、ＸＩＮＶ＝１のときにはステップ４４６に進む一方、ＸＩＮＶ＝０のときにはステップ４６２に進む。
【００６４】
ステップ４４６では、学習値更新フラグＸＧを１にセットして、ステップ４４８に進む。ステップ４４８では、リッチ時間カウンタＣＴＲ及びリーン時間カウンタＣＴＬに関して“ＣＴＲ≠０かつＣＴＬ≠０”が成立するか否かを判定し、成立するときにはステップ４５０に進む一方、成立しないときにはステップ４５６に進む。ステップ４５０では、リッチ時間の比率ＤＲを算出し、ステップ４５２に進む。ステップ４５２では、ＲＳＲが所定値ｇよりも小さいこと、リッチ時間の比率ＤＲが所定範囲“ｈ≦ＤＲ≦ｋ”にあること、リッチ時間カウンタＣＴＲ及びリーン時間カウンタＣＴＬがそれぞれ所定値ｌ及びｍ以上であること、等の学習精度向上のため条件が成立するか否かを判定し、いずれかの条件が満足されないときにはステップ４５６に進む一方、いずれの条件も満足されるときにはステップ４５４に進む。
【００６５】
ステップ４５４では、学習回数カウンタＣＧをインクリメントし、また、
ＧＶ←ＲＳＲＬ＋（ＲＳＲＲ−ＲＳＲＬ）＊ＤＲ
なる演算により、今回のＲＳＲ中心学習値ＧＶを求め、さらに、算出されたＧＶを反映させるべく、
ＲＳＲＭＧ←｛（ＣＧ−１）＊ＲＳＲＭＧ＋ＧＶ｝／ＣＧ
なる演算により、中心値の平均ＲＳＲＭＧを更新し、ステップ４５６に進む。なお、この平均化演算に代えていわゆるなまし演算を採用してもよい。ステップ４５６では、リッチフラグＸＲＩＣＨが１か０かを判定し、ＸＲＩＣＨ＝１のときにはステップ４５８に進む一方、ＸＲＩＣＨ＝０のときにはステップ４６０に進む。ステップ４５８では、リッチ時間カウンタＣＴＲを０にイニシャライズして、ステップ４６２に進む。一方、ステップ４６０では、リーン時間カウンタＣＴＬを０にイニシャライズして、ステップ４６２に進む。
【００６６】
ステップ４６２では、学習値更新フラグＸＧが１か０かを判定し、ＸＧ＝１のときにはステップ４６４に進む一方、ＸＧ＝０のときにはステップ４７０に進む。ステップ４６４では、リッチフラグＸＲＩＣＨが１か０かを判定し、ＸＲＩＣＨ＝１のときにはステップ４６６に進む一方、ＸＲＩＣＨ＝０のときにはステップ４６８に進む。ステップ４６６では、リッチ時間カウンタＣＴＲをインクリメントしてステップ４７０に進む一方、ステップ４６８では、リーン時間カウンタＣＴＬをインクリメントしてステップ４７０に進む。ステップ４７０では、学習回数カウンタＣＧが所定値ＣＧ0 以上であるか否かを判定し、ＣＧ≧ＣＧ0 のときにはステップ４７２に進む一方、ＣＧ＜ＣＧ0 のときにはステップ４７４に進む。ステップ４７２では、学習実行回数が十分になったと判断して、学習完了フラグＸＧＣを１にセットし、ステップ４７４に進む。最後のステップ４７４では、本ルーチンの次回の実行に備え、リッチフラグＸＲＩＣＨの値をＸＲＩＣＨＯとして記憶する。
【００６７】
次に、この機関において１トリップに１回行われる触媒劣化判定について説明する。この触媒劣化判定は、下流側Ｏ2 センサ７６の出力ＶＯＳの軌跡長ＬＶＯＳと上流側Ｏ2 センサ７５の出力ＶＯＭの軌跡長ＬＶＯＭとの比、すなわち軌跡長比ＬＶＯＳ／ＬＶＯＭが基準値よりも大きくなったことをもって触媒が劣化したと判定するものである。図２２及び図２３は、かかる触媒劣化判定ルーチンの処理手順を示すフローチャートである。本ルーチンは、所定の時間周期で実行される。
【００６８】
まず、ステップ５０２では、フラグＤＩＡＧＣＯＭＰが１か０かについて判定し、ＤＩＡＧＣＯＭＰ＝１のときには本ルーチンを終了する一方、ＤＩＡＧＣＯＭＰ＝０のときにはステップ５０４に進む。このＤＩＡＧＣＯＭＰは、イグニションスイッチがオンされたときに実行される初期化ルーチンで０にリセットされ、後述するステップで１にセットされるフラグであり、ＤＩＡＧＣＯＭＰ＝１は、現トリップにおいて触媒劣化判定が完了していることを示す。次いで、ステップ５０４では、劣化判定のためのモニタ条件が成立するか否かを判定し、モニタ条件不成立のときには本ルーチンを終了し、モニタ条件成立のときにはステップ５０６以降に進む。このモニタ条件は、上流側Ｏ2 センサ７５の出力に基づくメイン空燃比フィードバック制御中であること、下流側Ｏ2 センサ７６の出力に基づくサブ空燃比フィードバック制御中であること、及び機関負荷が所定値以上であることである。
【００６９】
ステップ５０６では、劣化判定のためのモニタが実行中であることを示すフラグＭＯＮＥＸを１にセットする。このＭＯＮＥＸは、初期化ルーチンで０にリセットされている。次いで、ステップ５０８では、上流側Ｏ2 センサ７５の出力電圧ＶＯＭ及び下流側Ｏ2 センサ７６の出力電圧ＶＯＳを検出する。次いで、ステップ５１０では、ＶＯＭの軌跡長ＬＶＯＭを、
ＬＶＯＭ←ＬＶＯＭ＋｜ＶＯＭ−ＶＯＭＯ｜
なる演算により更新する。次いで、ステップ５１２では、ＶＯＳの軌跡長ＬＶＯＳを、
ＬＶＯＳ←ＬＶＯＳ＋｜ＶＯＳ−ＶＯＳＯ｜
なる演算により更新する。次いで、ステップ５１４では、次回の実行に備え、
ＶＯＭＯ←ＶＯＭ
ＶＯＳＯ←ＶＯＳ
とする。
【００７０】
次いで、ステップ５１６では、モニタ時間を計測するためのカウンタＣＴＩＭＥをインクリメントし、ステップ５１８では、そのカウンタの値が所定値Ｃ0 を超えたか否かを判定する。ＣＴＩＭＥ＞Ｃ0 のときにはステップ５２０に進み、ＣＴＩＭＥ≦Ｃ0 のときには本ルーチンを終了する。ステップ５２０では、軌跡長比ＬＶＯＳ／ＬＶＯＭが所定の劣化判定基準値Ｒref 以上か否かを判定する。ＬＶＯＳ／ＬＶＯＭ≧Ｒref のときには、触媒劣化ありとみなし、所定のアラームフラグＡＬＭを１にするとともに（ステップ５２２）、アラームランプを点灯する（ステップ５２４）。ＬＶＯＳ／ＬＶＯＭ＜Ｒref のときには、触媒劣化なしとみなして、アラームフラグＡＬＭを０とする（ステップ５２６）。アラームフラグＡＬＭは、修理点検時に収集されうるように、バックアップＲＡＭ９９に格納される（ステップ５２８）。最後のステップ５３０では、ＭＯＮＥＸを０にリセットするとともに、ＤＩＡＧＣＯＭＰを１にセットする。
【００７１】
上述のＲＳＲ幅寄せ制御（図１０及び図１１）を実施している場合において、リッチスキップ量の中心値の学習値ＲＳＲＭＧが実際の中心値よりずれているときには、下流側Ｏ2 センサ７６の出力がリッチ又はリーンに貼り付く状態が生じ得る。その場合には、下流側Ｏ2 センサ７６の出力が変化しないため、触媒劣化判定の精度が悪化する。そこで、本発明では、触媒劣化判定中には、ＲＳＲの中心値からの偏差ＤＲＳＲに課される下限ガード値ａ及び上限ガード値ｆによる制限を緩和し、ＲＳＲの値がとりうる範囲を拡大することにより、結果的に下流側Ｏ2 センサ７６の出力が変化しうるようにしている。
【００７２】
図２４は、ＲＳＲ幅寄せ上下限ガード値設定ルーチンの処理手順を示すフローチャートである。本ルーチンは、所定時間周期で実行される。まず、ステップ６０２では、現在、フラグＭＯＮＥＸが１か０か、すなわち触媒劣化判定のためのモニタが実行中であるか否かを判定する。ＭＯＮＥＸ＝０のとき、すなわち触媒劣化判定モニタ実行中でないときには、ステップ６０４に進み、下限ガード値ａに通常の設定値ａ0 を設定するとともに、上限ガード値ｆに通常の設定値ｆ0 を設定する。一方、ＭＯＮＥＸ＝１のとき、すなわち触媒劣化判定モニタ実行中のときには、ステップ６０６に進み、下限ガード値ａに設定値ａ0 −Δａ（Δａ＞０）を設定して通常よりも小さくするとともに、上限ガード値ｆに設定値ｆ0 ＋Δｆ（Δｆ＞０）を設定して通常よりも大きくする。
【００７３】
なお、上記のΔａ及びΔｆを無限大に、すなわちａを−∞、ｆを＋∞に設定してもよい。この場合には、実質的にＲＳＲ幅寄せ制御を禁止することとなる。いずれにしても、図１０及び図１１においてＲＳＲのとりうる範囲が拡大し、空燃比が変動するようになり、触媒劣化判定（図２２及び図２３）の精度が向上せしめられる。
【００７４】
【発明の効果】
以上説明したように、本発明によれば、排気系に設けられた排気ガス浄化のための触媒コンバータの上流側及び下流側にそれぞれ第１及び第２の空燃比センサが配設された内燃機関において、触媒のＯ2 ストレージ量を考慮した空燃比制御を採用しつつ第２の空燃比センサに基づく精度良い触媒劣化判定を実現することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る制御装置を備えた内燃機関の全体概要図である。
【図２】機関電子制御装置（エンジンＥＣＵ）のハードウェア構成を示すブロック図である。
【図３】ＣＰＵによって実行される噴射量演算ルーチンの処理手順を示すフローチャートである。
【図４】ＣＰＵによって実行されるメイン空燃比フィードバック制御ルーチンの処理手順を示すフローチャート（１／２）である。
【図５】ＣＰＵによって実行されるメイン空燃比フィードバック制御ルーチンの処理手順を示すフローチャート（２／２）である。
【図６】メイン空燃比フィードバック制御により、上流側Ｏ2 センサで検出される空燃比（Ａ／Ｆ）の変化に対してカウンタＣＤＬＹ、フラグＦ１及び空燃比補正係数ＦＡＦがどのように変化するかを例示するタイムチャートである。
【図７】空燃比補正係数ＦＡＦのスキップ量ＲＳＲ及びＲＳＬを可変にする従来のサブ空燃比フィードバック制御における、下流側Ｏ2 センサ出力電圧ＶＯＳ、リッチスキップ量ＲＳＲ及び触媒内Ｏ2 ストレージ量の挙動を例示するタイムチャートである。
【図８】リッチスキップ量ＲＳＲの極大値と極小値との間の中心値を説明するための図である。
【図９】下流側Ｏ2 センサ出力電圧ＶＯＳ、触媒内Ｏ2 ストレージ量、及びＲＳＲの中心値からの偏差ＤＲＳＲのタイムチャートである。
【図１０】ＣＰＵによって実行されるサブ空燃比フィードバック制御ルーチンの処理手順を示すフローチャート（１／２）である。
【図１１】ＣＰＵによって実行されるサブ空燃比フィードバック制御ルーチンの処理手順を示すフローチャート（２／２）である。
【図１２】中心学習値ＲＳＲＭＧを現在の吸入空気量ＧＡに応じて補正するための補正量ＲＳＲＭＧＣを定めるマップを示す図である。
【図１３】燃焼時の実空燃比の時間的変化とＯ2 センサ出力電圧波形とを示すタイムチャートである。
【図１４】上流側及び下流側Ｏ2 センサの劣化度をパラメータとして、吸入空気量ＧＡと中心学習値ＲＳＲＭＧとの関係を示す特性図である。
【図１５】学習可能領域及び学習用空燃比制御実行領域を説明すべく吸入空気量ＧＡの挙動を例示するタイムチャートである。
【図１６】学習用空燃比制御実行時におけるＲＳＲ制御方法を説明するためのタイムチャートである。
【図１７】リッチ時間比率を説明すべく下流側Ｏ2 センサ出力電圧ＶＯＳ及びリッチスキップ量ＲＳＲの時間的変化を例示するタイムチャートである。
【図１８】ＣＰＵによって実行されるＲＳＲ中心値学習ルーチンの処理手順を示すフローチャート（１／４）である。
【図１９】ＣＰＵによって実行されるＲＳＲ中心値学習ルーチンの処理手順を示すフローチャート（２／４）である。
【図２０】ＣＰＵによって実行されるＲＳＲ中心値学習ルーチンの処理手順を示すフローチャート（３／４）である。
【図２１】ＣＰＵによって実行されるＲＳＲ中心値学習ルーチンの処理手順を示すフローチャート（４／４）である。
【図２２】ＣＰＵによって実行される触媒劣化判定ルーチンの処理手順を示すフローチャート（１／２）である。
【図２３】ＣＰＵによって実行される触媒劣化判定ルーチンの処理手順を示すフローチャート（２／２）である。
【図２４】ＣＰＵによって実行されるＲＳＲ幅寄せ上下限ガード値設定ルーチンの処理手順を示すフローチャートである。
【符号の説明】
１…直列多気筒４ストロークサイクルレシプロガソリン機関
２…シリンダブロック
３…シリンダヘッド
４…シリンダ
５…ピストン
６…コネクティングロッド
７…クランクシャフト
８…燃焼室
９…吸気ポート
１０…排気ポート
１１…吸気バルブ
１２…排気バルブ
１３…吸気側カムシャフト
１４…排気側カムシャフト
１５…吸気側カム
１６…排気側カム
１７，１８，１９…タイミングプーリ
２０…タイミングベルト
３０…吸気通路
３１…エアクリーナ
３２…スロットルバルブ
３３…サージタンク
３４…吸気マニホルド
３５…アイドルアジャスト通路
３６…アイドル回転速度制御弁（ＩＳＣＶ）
４０…インジェクタ
４１…燃料タンク
４２…燃料ポンプ
４３…燃料配管
５０…点火プラグ
５１…イグナイタ
５２…点火コイル
５３…点火ディストリビュータ
６０…排気通路
６１…排気マニホルド
６２…触媒コンバータ
７０…エアフローメータ
７２…スロットル開度センサ
７３…吸気温センサ
７４…水温センサ
７５…上流側Ｏ2 センサ（メインＯ2 センサ）
７６…下流側Ｏ2 センサ（サブＯ2 センサ）
８０…クランク基準位置センサ
８１…クランク角センサ
８２…アイドルスイッチ
８３…車速センサ
９０…機関ＥＣＵ
９１…ＣＰＵ
９２…システムバス
９３…ＲＯＭ
９４…ＲＡＭ
９５…Ａ／Ｄ変換回路
９６…入力インタフェース回路
９７ａ，９７ｂ，９７ｃ…駆動回路
９９…バックアップＲＡＭ
【図１】
0003674404.tif 000003
【図２】
0003674404.tif 000004
【図３】
0003674404.tif 000005
【図４】
0003674404.tif 000006
【図５】
0003674404.tif 000007
【図６】
0003674404.tif 000008
【図７】
0003674404.tif 000009
【図８】
0003674404.tif 000010
【図９】
0003674404.tif 000011
【図１０】
0003674404.tif 000012
【図１１】
0003674404.tif 000013
【図１２】
0003674404.tif 000014
【図１３】
0003674404.tif 000015
【図１４】
0003674404.tif 000016
【図１５】
0003674404.tif 000017
【図１６】
0003674404.tif 000018
【図１７】
0003674404.tif 000019
【図１８】
0003674404.tif 000020
【図１９】
0003674404.tif 000021
【図２０】
0003674404.tif 000022
【図２１】
0003674404.tif 000023
【図２２】
0003674404.tif 000024
【図２３】
0003674404.tif 000025
【図２４】
0003674404.tif 000026