(57)【要約】【課題】  触媒下流側の空燃比をオーバーシュート等させることなく速やかに適値に収束させることができるエンジンの空燃比制御装置を提供する。【解決手段】  ＥＣＵ４０は、ＲＯ2センサ２９ｂの出力電圧ＲＶＯ２と、出力電圧ＲＶＯ２に基づく積分値ＲＩとに基づいて学習値ＲＬＲＮの更新時間を可変設定し、この可変設定された更新時間毎に、学習値ＲＬＲＮを積分値ＲＩに連動して更新することにより、学習値ＲＬＲＮを、触媒３０のＯ2ストレージ効果等を十分に考慮した値に設定する。そして、このように設定された学習値ＲＬＲＮを、ＦＯ2センサ２９ａの出力電圧ＦＶＯ２に基づいて空燃比フィードバック補正係数ＬＡＭＢＤＡを演算する際の制御定数（例えば、スキップ量）に反映させることにより、触媒３０の下流側の空燃比をオーバーシュート等させることなく速やかに適値に収束させる。【選択図】  図１
2007092688.tif 000002
【特許請求の範囲】
【請求項１】
触媒の上流側で空燃比を検出する第１の空燃比センサの出力に基づいて燃料噴射制御の空燃比フィードバック補正係数を演算する補正係数演算手段と、
上記触媒の下流側で空燃比を検出する第２の空燃比センサの出力に基づいて、当該出力がリッチ側の出力であるときリーン側にシフトし、リーン側の出力であるときリッチ側にシフトする積分値を演算する積分手段と、
上記積分値と上記第２の空燃比センサの出力値とをパラメータとして可変設定される更新速度で上記積分値に連動して学習値を更新する学習手段と、
上記補正係数演算手段で上記空燃比フィードバック補正係数を演算する際の制御定数を少なくとも上記学習値に基づいて補正する定数補正手段とを備えたことを特徴とするエンジンの空燃比制御装置。
【請求項２】
上記学習手段は、上記積分値がリッチ側の値である場合に、上記積分値がリッチ側に大値となり、且つ、上記第２の空燃比センサの出力値がリーン側に大値となるほど、上記学習値の更新速度を速め、
上記積分値がリーン側の値である場合に、上記積分値がリーン側に大値となり、且つ、上記第２の空燃比センサの出力値がリッチ側に大値となるほど、上記学習値の更新速度を速めることを特徴とする請求項１記載のエンジンの空燃比制御装置。
【請求項３】
上記積分手段は、上記積分値のリッチ側及びリーン側へのシフトを予め設定したガード値で制限することを特徴とする請求項１または請求項２に記載のエンジンの空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、触媒の上流側および下流側にそれぞれ空燃比センサを設け、両センサの出力に基づいて空燃比を制御するエンジンの空燃比制御装置に関する。
【背景技術】
【０００２】
一般に、エンジンの空燃比制御においては、触媒の上流に配設した空燃比センサ（Ｏ2センサ）の出力によって空燃比状態を検出し、空燃比をフィードバック制御するようにしているが、Ｏ2センサの出力特性のばらつきや、燃料噴射弁等の部品の経時劣化等に起因する空燃比制御精度の悪化を改善するため、触媒の下流にもＯ2センサを配設し、上流側のＯ2センサ（フロントＯ2センサ）の出力に基づいて演算される空燃比フィードバック補正係数を、下流側のＯ2センサ（リヤＯ2センサ）の出力に基づく比例項や積分項等によって補正する、いわゆるダブルＯ2センサシステムが種々提案されている。
【０００３】
その一方で、ダブルＯ2センサシステムによる空燃比制御では、触媒のＯ2ストレージ効果の影響によってリヤＯ2センサの出力の応答性が悪化することがあるため、限られた運転領域でしか良好な空燃比制御精度の向上を図ることが困難であった。これに対処し、例えば、特許文献１には、リヤＯ2センサの出力に基づいて演算される積分値等を用いて、リヤＯ2センサの出力がリッチ・リーン間で反転するタイミング毎に学習値を演算し、この学習値を用いて空燃比フィードバック補正係数を補正する技術が開示されている。さらに、特許文献１には、触媒下流側の空燃比を速やかに適値に収束させるため、リヤＯ2センサの出力が反転するタイミング以外にも、積分値が所定の状態となった場合には学習値を強制的に更新する技術が開示されている。
【特許文献１】特開平７−１６６９３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の特許文献１に開示された技術のように、単に積分値の状態のみで学習値を更新する技術では、触媒下流側の空燃比をオーバーシュート等させることなく速やかに適値に収束させるには限界があった。
【０００５】
本発明は上記事情に鑑みてなされたもので、触媒下流側の空燃比をオーバーシュート等させることなく速やかに適値に収束させることができるエンジンの空燃比制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、触媒の上流側で空燃比を検出する第１の空燃比センサの出力に基づいて燃料噴射制御の空燃比フィードバック補正係数を演算する補正係数演算手段と、上記触媒の下流側で空燃比を検出する第２の空燃比センサの出力に基づいて、当該出力がリッチ側の出力であるときリーン側にシフトし、リーン側の出力であるときリッチ側にシフトする積分値を演算する積分手段と、上記積分値と上記第２の空燃比センサの出力値とをパラメータとして可変設定される更新速度で上記積分値に連動して学習値を更新する学習手段と、上記補正係数演算手段で上記空燃比フィードバック補正係数を演算する際の制御定数を少なくとも上記学習値に基づいて補正する定数補正手段とを備えたことを特徴とする。
【発明の効果】
【０００７】
本発明のエンジンの空燃比制御装置によれば、触媒下流側の空燃比をオーバーシュート等させることなく速やかに適値に収束させることができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して本発明の形態を説明する。図面は本発明の一形態に係わり、図１はエンジン制御系の概略構成図、図２は電子制御系の回路構成図、図３は燃料噴射量設定ルーチンのフローチャート、図４は空燃比フィードバック補正係数設定ルーチンのフローチャート、図５はリヤ空燃比補正量設定ルーチンのフローチャート、図６は学習値の更新時間設定用マップを示す図表、図７はリヤＯ2センサの出力電圧に基づいて設定される比例値、積分値、および学習値の各挙動の一例を示すタイムチャート、図８は学習値の補正量設定用マップを示す図表である。
【０００９】
図１において、符号１はエンジンであり、本実施形態においては水平対向４気筒型エンジンを示す。このエンジン１のシリンダヘッド２に形成された各吸気ポート２ａにインテークマニホルド３が連通され、このインテークマニホルド３にエアチャンバ４を介してスロットルチャンバ５が連通され、このスロットルチャンバ５上流側に吸気管６を介してエアクリーナ７が取付けられている。
【００１０】
また、吸気管６には、エアクリーナ７の直下流に、ホットワイヤ式あるいはホットフィルム式等の吸入空気量センサ８が介装されている。さらに、スロットルチャンバ５に設けられたスロットルバルブ５ａに、スロットル開度を検出するスロットル開度センサとスロットルバルブ全閉でＯＮするアイドルスイッチとを内蔵したスロットルセンサ９が連設されている。
【００１１】
また、スロットルバルブ５ａの上流側と下流側とを連通するバイパス通路１０に、アイドルスピードコントロール（ＩＳＣ）バルブ１１が介装されている。また、インテークマニホルド３には、各気筒の各吸気ポート２ａ直上流側に、インジェクタ１２が臨まされている。さらに、先端を燃焼室に露呈する点火プラグ１３ａがシリンダヘッド２の各気筒毎に取付けられ、点火プラグ１３ａに連設される点火コイル１３ｂにイグナイタ１４が接続されている。
【００１２】
インジェクタ１２は、燃料供給路１５を介して燃料タンク１６に連通されており、この燃料タンク１６内にはインタンク式の燃料ポンプ１７が設けられている。この燃料ポンプ１７からの燃料は、燃料供給路１５に介装された燃料フィルタ１８を経てインジェクタ１２、プレッシャレギュレータ１９に圧送され、このプレッシャレギュレータ１９から燃料タンク１６にリターンされてインジェクタ１２への燃料圧力が所定の圧力に調圧される。
【００１３】
一方、エンジン１のシリンダブロック１ａにはノックセンサ２５が取付けられ、このシリンダブロック１ａの左右バンクを連通する冷却水通路２６に冷却水温センサ２７が臨まされている。さらに、シリンダヘッド２の排気ポート２ｂに連通するエグゾーストマニホルド２８の集合部に、第１の空燃比センサとしてのフロントＯ2センサ（ＦＯ2センサ）２９ａが臨まされ、このＦＯ2センサ２９ａの下流側に触媒コンバータ３０が介装されている。また、触媒コンバータ３０の下流側に、第２の空燃比センサとしてのリヤＯ2センサ（ＲＯ2センサ）２９ｂが臨まされている。
【００１４】
また、シリンダブロック１ａに支承されたクランクシャフト１ｂに、クランクロータ３１が軸着され、このクランクロータ３１の外周に、所定のクランク角に対応する突起（あるいはスリット）を検出する磁気センサ（電磁ピックアップ等）あるいは光センサ等からなるクランク角センサ３２が対設されている。さらに、上記シリンダヘッド２のカムシャフト１ｃにカムロータ３３が連設され、このカムロータ３３に、同じく磁気センサあるいは光センサ等からなる気筒判別用のカム角センサ３４が対設されている。
【００１５】
次に、エンジン１の電子制御を行う電子制御装置（ＥＣＵ）４０について説明する。ＥＣＵ４０は、図２に示すように、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、バックアップＲＡＭ４４、及び、Ｉ／Ｏインターフェース４５がバスライン４６を介して互いに接続されたマイクロコンピュータを中心として構成され、各部に安定化電圧を各部に供給する定電圧回路４７、上記Ｉ／Ｏインターフェース４５の出力ポートからの信号によりアクチュエータ類を駆動する駆動回路４８、及び、センサ類からのアナログ信号をデジタル信号に変換するＡ／Ｄ変換器４９等の周辺回路が組み込まれている。
【００１６】
定電圧回路４７は、ＥＣＵリレー５０のリレー接点を介してバッテリ５１に接続され、このバッテリ５１に、ＥＣＵリレー５０のリレーコイルがイグニッションスイッチ５２を介して接続されている。また、定電圧回路４７は、直接、バッテリ５１に接続されており、イグニッションスイッチ５２がＯＮされてＥＣＵリレー５０のリレー接点が閉となったとき、定電圧回路４７から各部へ電源が供給される一方、イグニッションスイッチ５２のＯＮ，ＯＦＦに拘らず、常時、バックアップＲＡＭ４４にバックアップ用の電源が供給される。
【００１７】
また、Ｉ／Ｏインターフェース４５の入力ポートには、ノックセンサ２５、クランク角センサ３２、カム角センサ３４、及び、車速センサ３５が接続されるとともに、吸入空気量センサ８、スロットルセンサ９、冷却水温センサ２７、ＦＯ2センサ２９ａ、及び、ＲＯ2センサ２９ｂがＡ／Ｄ変換器４９を介して接続され、さらに、このＡ／Ｄ変換器４９にバッテリ５１からの電圧ＶBが入力されてモニタされる。
【００１８】
一方、Ｉ／Ｏインターフェース４５の出力ポートには、イグナイタ１４が接続されるとともに、駆動回路４８を介して、ＩＳＣバルブ１１、インジェクタ１２が接続されている。
【００１９】
ＲＯＭ４２には、エンジン制御プログラムや各種の故障診断プログラム、マップ類等の固定データが記憶されており、また、ＲＡＭ４３には、各センサ類、スイッチ類の出力信号を処理した後のデータ、及びＣＰＵ４１で演算処理したデータが格納される。また、バックアップＲＡＭ４４には、空燃比学習マップを初めとする各種制御用データ、自己診断機能により検出した故障部位に対応するトラブルデータ等がストアされ、イグニッションスイッチ５２がＯＦＦのときにもデータが保持される。
【００２０】
ＥＣＵ４０では、ＲＯＭ４２に記憶されている制御プログラムに従ってＥＣＵ４１で各種演算等を行うことにより、燃料噴射量、点火時期、ＩＳＣバルブ１１の駆動信号のデューティ比、ＣＰＣバルブ２４の駆動信号のデューティ比等を求め、空燃比フィードバック制御、点火時期制御、アイドル回転数制御、キャニスタパージ制御等の各種制御を行うとともに、触媒劣化診断等の故障診断を行う。
【００２１】
この場合、本実施形態における空燃比フィードバック制御においては、ＦＯ2センサ２９ａ及びＲＯ2センサ２９ｂからの出力に基づくダブルＯ2センサシステムが採用されている。すなわち、ＥＣＵ４０は、ＦＯ2センサ２９ａの出力（出力電圧ＦＶＯ２）に基づいて空燃比フィードバック補正係数ＬＡＭＢＤＡを演算する。この演算に際し、ＥＣＵ４０は、ＲＯ2センサ２９ｂの出力（出力電圧ＲＶＯ２）に基づいて比例値ＲＰと積分値ＲＩとを演算し、さらに、積分値ＲＩと出力電圧ＲＶＯ２とに基づいて可変設定される更新速度で、積分値ＲＩに連動して学習値ＲＬＲＮを更新する。そして、ＥＣＵ４０は、比例値ＲＰ、積分値ＲＩ、及び学習値ＲＬＲＮに基づいてリヤ空燃比補正量ＰＨＯＳを演算し、この空燃比補正量ＰＨＯＳで空燃比フィードバック補正係数ＬＡＭＢＤＡのスキップ量を補正する。ここで、図７（ａ）、（ｂ） に示すように、比例値ＲＰは、出力電圧ＲＶＯ２がリッチ側の電圧値（ＲＶＯ２＞ＲＳＬＨ）であるときリーン側の値（負値）となり、リーン側の電圧値（ＲＶＯ２＜ＲＳＬＬ）であるときリッチ側の値（正値）となる。また、図７（ａ）、（Ｃ）に示すように、積分値ＲＩは、出力電圧ＲＶＯ２がリッチ側の電圧値（ＲＶＯ２＞ＲＳＬＨ）であるときリーン側にシフトし、リーン側の電圧値（ＲＶＯ２＜ＲＳＬＬ）であるときリッチ側にシフトする。その際、積分値ＲＩにはガード値が設定されており、リッチ側及びリーン側への所定値以上のシフトが制限されるようになっている。このようにＥＣＵ４０は、補正係数設定手段、積分手段、学習手段、及び、定数補正手段としての各機能を実現する。
【００２２】
以下、ＥＣＵ４０による空燃比フィードバック制御について、図３〜図５のフローチャートに従って説明する。  
図３は、所定周期（所定時間）ごとに繰返される燃料噴射量設定ルーチンであり、まず、ＥＣＵ４０は、ステップＳ１０１で、クランク角センサ３２の出力信号に基づくエンジン回転数ＮEと、吸入空気量センサ８の出力信号に基づく吸入空気量Ｑとから、基本燃料噴射量（基本燃料噴射パルス幅）Ｔpを算出し（Ｔp＝Ｋ×Ｑ／ＮE；Ｋ…インジェクタ特性補正定数）、ステップＳ１０２で、後述する図４の空燃比フィードバック補正係数設定ルーチンによって設定されて、ＲＡＭ４３の所定アドレスにストアされている空燃比フィードバック補正係数ＬＡＭＢＤＡを読み出す。
【００２３】
次に、ＥＣＵ４０は、ステップＳ１０３へ進み、冷却水温センサ２７による冷却水温ＴW、スロットルセンサ９によるスロットル開度θ、アイドル出力などに基づいて、冷却水温補正、加減速補正、全開増量補正、アイドル後増量補正などに係わる各種増量分補正係数ＣＯＥＦを設定し、ステップＳ１０４へ進む。
【００２４】
ステップＳ１０４において、ＥＣＵ４０は、エンジン回転数ＮEと基本燃料噴射量Ｔpとをパラメータとして、バックアップＲＡＭ４４の空燃比学習値マップにストアされている空燃比学習値ＫLRを検索し、吸入空気量センサ等の吸入空気量計測系やインジェクタ等の燃料供給系の生産時のばらつき、あるいは経時変化による空燃比のずれを迅速に補正するための空燃比学習補正係数ＫBLRCを補間計算により設定する。続くステップＳ１０５で、ＥＣＵ４０は、バッテリ５１の端子電圧ＶBに基づきインジェクタ１２の無効噴射時間を補間する電圧補正係数ＴSを設定する。
【００２５】
その後、ＥＣＵ４０は、ステップＳ１０６へ進み、ステップＳ１０１で算出した基本燃料噴射量Ｔpを、ステップＳ１０２で読み出した空燃比フィードバック補正係数ＬＡＭＢＤＡ及び上記ステップＳ１０３で設定した各種増量分補正係数ＣＯＥＦにより空燃比補正するとともに、ステップＳ１０４で設定した空燃比学習補正係数ＫBLRCにより学習補正し、さらに、上記ステップＳ１０５で設定した電圧補正係数ＴSにより電圧補正して最終的な燃料噴射量（燃料噴射パルス幅）Ｔiを設定する（Ｔi←Ｔp×ＣＯＥＦ×ＫBLRC×ＬＡＭＢＤＡ＋ＴS）。
【００２６】
そして、ＥＣＵ４０は、ステップＳ１０７で、燃料噴射パルス幅Ｔiをセットしてルーチンを抜ける。その結果、燃料噴射パルス幅Ｔiの駆動パルス信号が所定タイミングで該当気筒のインジェクタ１２に出力され、燃料噴射パルス幅Ｔiに相応する量の燃料が噴射される。
【００２７】
燃料噴射量設定ルーチンのステップＳ１０２における空燃比フィードバック補正係数ＬＡＭＢＤＡは、図４の空燃比フィードバック補正係数設定ルーチンによって設定される。以下、この空燃比フィードバック補正係数設定ルーチンについて説明する。
【００２８】
この空燃比フィードバック補正係数設定ルーチンがスタートすると、ＥＣＵ４０は、まず、ステップＳ２０１で、フィードバック（Ｆ／Ｂ）制御条件が成立するか否かを調べる。例えば、冷却水温Ｔwが所定値以下（例えば５０℃以下）のとき、エンジン回転数ＮEが設定回転数以上（例えば５２００ｒｐｍ以上）のとき、あるいは、基本燃料噴射量ＴPが設定値以上（スロットル略全開領域）のときには、Ｆ／Ｂ制御条件不成立と判別し、これ以外のとき、且つ、ＦＯ2センサ２９ａ及びＲＯ2センサ２９ｂが共に活性化しているとき（例えば、各出力電圧が各々に対する設定値以上のとき）、Ｆ／Ｂ制御条件成立と判別する。
【００２９】
そして、ステップＳ２０１で空燃比フィードバック制御条件不成立と判別すると、ＥＣＵ４０は、ステップＳ２０１からステップＳ２０２へ進み、空燃比リーン側から空燃比リッチ側への反転あるいは空燃比リッチ側から空燃比リーン側への反転を判別するためのリッチ／リーン切換判別フラグＦ１をクリアし（Ｆ１←０）、ステップＳ２０３で空燃比フィードバック補正係数ＬＡＭＢＤＡをＬＡＭＢＤＡ＝１．０に固定してルーチンを抜ける。その結果、Ｆ／Ｂ制御条件不成立時にはオープンループ制御となる。
【００３０】
一方、ステップＳ２０１でＦ／Ｂ制御条件成立と判別すると、ＥＣＵ４０は、ステップステップＳ２０４へ進んでＦＯ2センサ２９ａの出力電圧ＦＶＯ２を読込み、この出力電圧ＦＶＯ２と所定のスライスレベルＦＳＬとを比較して、現在、空燃比がリッチ側にあるかリーン側にあるかを調べる。
【００３１】
その結果、ＦＶＯ２≧ＦＳＬであり空燃比がリッチ側と判別されると、ＥＣＵ４０は、ステップＳ２０４からステップＳ２０５へ進み、リッチ／リーン切換判別フラグＦ１がセットされているか否かを調べる。このリッチ／リーン切換判別フラグＦ１は、空燃比リーン側から空燃比リッチ側への反転で１→０となり、空燃比リッチ側から空燃比リーン側への反転で０→１となる。
【００３２】
従って、ステップＳ２０５でＦ１＝１の場合、すなわち、空燃比がリーンからリッチへ反転した直後である場合、ＥＣＵ４０は、ステップＳ２０６へ進み、ＦＯ2センサ２９ａの出力電圧ＦＶＯ２とスライスレベルＦＳＬとの関係で設定される比例成分ＰＵに、後述する図５のＰＨＯＳ設定ルーチンで設定されるリヤ空燃比補正量ＰＨＯＳを加えた値をスキップ量として、空燃比フィードバック補正係数ＬＡＭＢＤＡをマイナス方向へスキップさせる（ＬＡＭＢＤＡ←ＬＡＭＢＤＡ-(ＰＵ＋ＰＨＯＳ)）。
【００３３】
また、上記ステップＳ２０５でＦ１＝０、すなわち、すでに空燃比フィードバック補正係数ＬＡＭＢＤＡに対してマイナス方向のスキップが実行されている場合には、ＥＣＵ４０は、ステップＳ２０７へ進み、空燃比フィードバック補正係数ＬＡＭＢＤＡを、ＦＯ2センサ２９ａの出力電圧ＦＶＯ２とスライスレベルＦＳＬとの関係で設定される積分成分ＩＵだけ小さくする（ＬＡＭＢＤＡ←ＬＡＭＢＤＡ-ＩＵ）。
【００３４】
そして、上記ステップＳ２０６あるいはステップＳ２０７で空燃比フィードバック補正係数ＬＡＭＢＤＡを設定すると、ＥＣＵ４０は、ステップＳ２０８へ進み、空燃比フィードバック補正係数ＬＡＭＢＤＡが下限値ＬＭＤＭＩＮ（例えば、ＬＭＤＭＩＮ＝０．８）より小さいか否かを調べる。
【００３５】
その結果、ＬＡＭＢＤＡ≧ＬＭＤＭＩＮのときには、ＥＣＵ４０は、ステップＳ２０８からステップＳ２１０へジャンプしてリッチ／リーン切換判別フラグＦ１をクリアし（Ｆ１←０）、ルーチンを抜ける。また、ＬＡＭＢＤＡ＜ＬＭＤＭＩＮのときには、ＥＣＵ４０は、ステップＳ２０８からステップＳ２０９へ進み、空燃比フィードバック補正係数ＬＡＭＢＤＡを下限値ＬＭＤＭＩＮとし（ＬＡＭＢＤＡ←ＬＭＤＭＩＮ）、ステップＳ２１０を経てルーチンを抜ける。
【００３６】
一方、ステップＳ２０４で、ＦＶＯ２＜ＦＳＬのとき、すなわち空燃比がリーン側と判別すると、ＥＣＵ４０は、ステップＳ２１１へ進み、リッチ／リーン切換判別フラグＦ１がクリアされているか否かを調べる。
【００３７】
その結果、ステップＳ２１１で、Ｆ１＝０、すなわち、空燃比がリッチからリーンへ反転した直後である場合、ＥＣＵ４０は、ステップＳ２１１からステップＳ２１２へ進んで、ＦＯ2センサ２９ａの出力に基づく比例成分ＰＵに前述のリヤ空燃比補正量ＰＨＯＳを加えた値をスキップ量として、空燃比フィードバック補正係数ＬＡＭＢＤＡをプラス方向へスキップさせ（ＬＡＭＢＤＡ←ＬＡＭＢＤＡ＋ＰＵ＋ＰＨＯＳ）、ステップＳ２１４へ進む。
【００３８】
また、ステップＳ２１１で、Ｆ１＝１、すなわち、空燃比フィードバック補正係数ＬＡＭＢＤＡに対し比例成分によるプラス方向のスキップが実行されている場合、ＥＣＵ４０は、ステップＳ２１１からステップＳ２１３へ進み、空燃比フィードバック補正係数ＬＡＭＢＤＡを、ＦＯ2センサ２９ａの出力に基づく積分成分ＩＵだけ増加させ（ＬＡＭＢＤＡ←ＬＡＭＢＤＡ＋ＩＵ）、ステップＳ２１４へ進む。
【００３９】
ステップＳ２１４において、ＥＣＵ４０は、空燃比フィードバック補正係数ＬＡＭＢＤＡが上限値ＬＭＤＭＡＸ（例えば、ＬＭＤＭＡＸ＝１．２）より大きいか否かを調べる。そして、ＬＡＭＢＤＡ≦ＬＭＤＭＡＸのとき、ＥＣＵ４０は、ステップＳ２１６へジャンプしてリッチ／リーン切換判別フラグＦ１をセットし（Ｆ１←１）、ルーチンを抜ける。また、ＬＡＭＢＤＡ＞ＬＭＤＭＡＸのときには、ＥＣＵ４０は、ステップＳ２１４からステップＳ２１５へ進んで空燃比フィードバック補正係数ＬＡＭＢＤＡを上限値ＬＭＤＭＡＸとし（ＬＡＭＢＤＡ←ＬＭＤＭＡＸ）、ステップＳ２１６でリッチ／リーン切換判別フラグＦ１をセットしてルーチンを抜ける。
【００４０】
次に、空燃比フィードバック補正係数設定ルーチンのステップＳ２０６およびＳ２１２におけるリヤ空燃比補正量ＰＨＯＳは、図５のリヤ空燃比補正量設定ルーチンによって設定される。以下、このリヤ空燃比補正量設定ルーチンについて説明する。
【００４１】
このリヤ空燃比補正量設定ルーチンがスタートすると、ＥＣＵ４０は、先ず、ステップＳ３０１において、ＲＯ2センサ２９ｂの出力電圧ＲＶＯ２が予め設定された目標域内にあるか否か、すなわち、ＲＯ2センサ２９ｂで検出された空燃比が三元点（排ガス中のＮＯｘ，ＣＯ，ＨＣが何れも少なくなる領域）にあるか否かを調べる。具体的には、ＥＣＵ４０は、出力電圧ＲＶＯ２が、目標域を規定する所定のスライスレベルＲＳＬＬからＲＳＬＨまでの間にあるか否かを調べる。
【００４２】
その結果、ＲＳＬＬ≦ＲＶＯ２≦ＲＳＬＨであり、空燃比が三元点にあると判定すると、ＥＣＵ４０は、ステップＳ３０３に進み、比例値を「０」に設定し、現在の積分値ＲＩを維持したまま（ステップＳ３０９）、ステップＳ３１０に進む。
【００４３】
一方、ＲＶＯ２＞ＲＳＬＨ、或いはＲＶＯ２＜ＲＳＬＬであり、空燃比がリッチ側、或いはリーン側にあると判定すると、ＥＣＵ４０は、ステップＳ３０２に進み、出力電圧ＲＶ０２に応じた比例値ＲＰを演算した後、ステップ３０４に進む。
【００４４】
ステップＳ３０２からステップＳ３０４に進むと、ＥＣＵ４０は、現在、積分値ＲＩの更新タイミングであるか否かを判定する。本実施形態において、ＥＣＵ４０は、空燃比がリッチ或いはリーンとなってから設定時間（例えば、５秒）が経過し、且つ、前回の更新から設定時間（例えば、５秒）が経過したと判定したとき、積分値ＲＩの更新タイミングであると判定する。
【００４５】
そして、ステップＳ３０４において、現在、積分値ＲＩの更新タイミングではないと判定すると、ＥＣＵ４０は、現在の積分値ＲＩを維持したまま（ステップＳ３０９）、ステップＳ３１０に進む。
【００４６】
一方、ステップＳ３０４において、積分値ＲＩの更新タイミングであると判定すると、ＥＣＵ４０は、積分値ＲＩが予め設定されたガード値内（例えば、｜ＲＩ｜＜７）であるか否かを調べる。
【００４７】
そして、ステップＳ３０５において、｜ＲＩ｜＝７であり、積分値ＲＩが上限或いは下限のガード値に達していると判定すると、ＥＣＵ４０は、現在の積分値ＲＩを維持したまま（ステップＳ３０９）、ステップＳ３１０に進む。
【００４８】
一方、ステップＳ３０５において、積分値ＲＩがガード値内であると判定すると、ＥＣＵ４０は、ステップＳ３０６に進み、ＲＳＨＬ＜ＲＶＯ２であるか否か、すなわち、空燃比がリッチであるか否かを調べる。
【００４９】
そして、ステップＳ３０６において、ＲＳＬＨ＜ＲＶＯ２であり、空燃比がリッチであると判定した場合には、ＥＣＵ４０は、ステップＳ３０７に進み、積分値ＲＩをリーン補正側に設定量（例えば、「１」）デクリメントした後（ＲＩ←ＲＩ−１）、ステップＳ３１０に進む。
【００５０】
逆に、ステップＳ３０６において、ＲＳＬＬ＞ＲＶＯ２であり、空燃比がリーンであると判定した場合には、ＥＣＵ４０は、ステップＳ３０８に進み、積分値ＲＩをリッチ補正側に設定量（例えば、「１」）インクリメントした後（ＲＩ←ＲＩ＋１）、ステップＳ３１０に進む。
【００５１】
ステップＳ３０７、ステップＳ３０８、或いは、ステップＳ３０９からステップＳ３１０に進むと、ＥＣＵ４０は、例えば、予め設定されてＲＯＭ４２内に格納されている更新時間設定用マップを参照して学習値ＲＬＲＮの更新時間を設定する。この更新時間設定用マップは、例えば図６に示すように、積分値ＲＩと出力電圧ＲＶＯ２をパラメータとして学習値ＲＬＲＮの更新時間を設定するもので、積分値ＲＩがリッチ側（ＲＩ＞０）の値である場合に、積分値ＲＩがリッチ側に大値となり、且つ、出力電圧ＲＶＯ２がリーン側に大値となるほど、更新時間を短く設定して学習値ＲＬＲＮの更新速度を速め、逆に、積分値ＲＩがリーン側（「０」側）の値となり、且つ、出力電圧ＲＶＯ２がリッチ側に大値となるほど、更新時間を長く設定して学習値ＲＬＲＮの更新速度を遅くする。
【００５２】
一方、積分値ＲＩがリーン側（ＲＩ＜０）の値である場合に、積分値ＲＩがリーン側に大値となり、且つ、出力電圧ＲＶＯ２がリッチ側に大値となるほど、更新時間を短く設定して学習値ＲＬＲＮの更新速度を速め、逆に、積分値ＲＩがリッチ側（「０」側）の値となり、且つ、出力電圧ＲＶＯ２がリーン側に大値となるほど、更新時間を長く設定して学習値ＲＬＲＮの更新速度を遅くする。
【００５３】
さらに、積分値ＲＩが「０」寄りの所定領域（例えば、−５＜ＲＩ＜５の領域）は、更新時間∞が設定され、学習値ＲＬＲＮが更新されない不感帯となっている。なお、上記マップは、積分値ＲＩおよび出力電圧ＲＶＯ２に基づく更新時間をより細分化して設定してもよい。
【００５４】
そして、ステップＳ３１０で更新時間が設定されてステップＳ３１１に進むと、ＥＣＵ４０は、現在、学習値ＲＬＲＮの更新タイミングであるか否かを調べる。すなわち、ＥＣＵ４０は、前回の学習値ＲＬＲＮの更新から、ステップＳ３１０で設定された更新時間が経過したか否かを調べ、未だ、更新時間が経過していないと判定すると、ステップＳ３１５に進み、現在の学習値ＲＬＲＮを維持したまま、ステップＳ３１６に進む。
【００５５】
一方、ステップＳ３１１において、前回の学習値ＲＬＲＮの更新からの経過時間が上記更新時間に達したと判定すると、ＥＣＵ４０は、ステップＳ３１２に進み、積分値ＲＩが正値であるか否かを調べる。
【００５６】
そして、ステップＳ３１２において、積分値ＲＩが正値であると判定すると、ＥＣＵ４は、ステップＳ３１３に進み、学習値ＲＬＲＮを設定量（例えば、「１」）インクリメントした後（ＲＬＲＮ←ＲＬＲＮ＋１）、ステップＳ３１６に進む。
【００５７】
一方、ステップＳ３１２において、積分値ＲＩが負値であると判定すると、ＥＣＵ４０は、ステップＳ３１４に進み、学習値ＲＬＲＮを設定量（例えば、「１」）デクリメントした後（ＲＬＲＮ←ＲＬＲＮ−１）、ステップＳ３１６に進む。
【００５８】
そして、ステップＳ３１３、ステップＳ３１４、或いは、ステップＳ３１５からステップＳ３１６に進むと、ＥＣＵ４０は、現在の比例値ＲＰ、積分値ＲＩ、及び学習値ＲＬＲＮに基づき、以下の（１）式を用いてリヤ空燃比補正量ＰＨＯＳを設定した後、ルーチンを抜ける。  
ＰＨＯＳ＝ｋ１・ＲＰ＋ｋ２・ＲＩ＋ｋ３・ＲＬＲＮ  …（１）
ここで、（１）式中のｋ１は比例値ＲＰに対するゲインであり、比例値ＲＰにゲインｋ１を乗じたものがリヤ空燃比補正量ＰＨＯＳの比例項として算出される。同様に、（１）式中のｋ２は積分値ＲＩに対するゲインであり、積分値ＲＩにゲインｋ２を乗じたものがリヤ空燃比補正量ＰＨＯＳの積分項として算出される。また、（１）式中のｋ３は学習値ＲＬＲＮに対するゲインであり、学習値ＲＬＲＮにゲインｋ３を乗じたものがリヤ空燃比補正量ＰＨＯＳの学習項として算出される。
【００５９】
このような実施形態によれば、ＲＯ2センサ２９ｂの出力電圧ＲＶＯ２と、出力電圧ＲＶＯ２に基づく積分値ＲＩとに基づいて学習値ＲＬＲＮの更新時間を可変設定し、この可変設定された更新時間毎に、学習値ＲＬＲＮを積分値ＲＩに連動して更新することにより、学習値ＲＬＲＮを、触媒３０のＯ2ストレージ効果等を十分に考慮した値に設定することができる。そして、このように設定された学習値ＲＬＲＮを、ＦＯ2センサ２９ａの出力電圧ＦＶＯ２に基づいて空燃比フィードバック補正係数ＬＡＭＢＤＡを演算する際の制御定数（例えば、スキップ量）に反映させることにより、触媒３０の下流側の空燃比をオーバーシュート等させることなく速やかに適値に収束させることができる。
【００６０】
この場合、例えば、積分値ＲＩがリッチ側の値である場合に、積分値ＲＩがリッチ側に大値となり、且つ、出力電圧ＲＶＯ２がリーン側に大値となるほど、学習値ＲＬＲＮの更新時間を短く設定して更新速度を速めることにより、触媒３０の下流側の空燃比が明らかにリーンであると判断できる場合には、学習値ＲＬＲＮを速やかにリッチ側（リッチ補正側）に更新し、触媒３０の下流側の空燃比を速やかに適値に収束させることができる。逆に、積分値ＲＩがリーン側（「０」側）の値となった場合や、出力電圧ＲＶＯ２がリッチ側に大値となった場合には、学習値ＲＬＲＮの更新時間を長く設定して更新速度を遅くすることにより、触媒３０のＯ2ストレージ効果等の影響で学習値ＲＬＲＮが過剰に更新されることを防止し、触媒３０の下流側の空燃比がオーバーシュート等することを的確に防止することができる。
【００６１】
同様に、例えば、積分値ＲＩがリーン側の値である場合に、積分値ＲＩがリーン側に大値となり、且つ、出力電圧ＲＶＯ２がリッチ側に大値となるほど、学習値ＲＬＲＮの更新時間を短く設定して更新速度を速めることにより、触媒３０の下流側の空燃比が明らかにリッチであると判定できる場合には学習値ＲＬＲＮを速やかにリーン側（リーン補正側）に更新し、触媒３０の下流側の空燃比を速やかに適値に収束させることができる。逆に、積分値ＲＩがリッチ側（「０」側）の値となった場合や、出力電圧ＲＶＯ２がリーン側に大値となった場合には、学習値ＲＬＲＮの更新時間を長く設定して更新速度を遅くすることにより、触媒３０のＯ2ストレージ効果等の影響で学習値ＲＬＲＮが過剰に更新されることを防止し、触媒３０の下流側の空燃比がオーバーシュート等することを的確に防止することができる。
【００６２】
また、上述のように学習値ＲＬＲＮの更新速度を積分値ＲＩのみならず出力電圧ＲＶＯ２にも依存させる構成とすることにより、積分値ＲＩの増減をガード値で制限した場合にも、適切な更新速度で学習値ＲＬＲＮを更新することができる。そして、これら学習値ＲＬＲＮの更新速度を積分値ＲＩ及び出力電圧ＲＶＯ２で可変に設定する構成、及び、積分値ＲＩにガード値で制限をかける構成により、積分値ＲＩを常に中心付近（「０」付近）値に収束させることができる（例えば、図７中の（１）〜（９）参照、なお、図７の（１）〜（９）における学習値ＲＬＲＮの更新速度（更新時間）を、図６中に同符号で対応付けて示す）。そして、このように積分値ＲＩを中心付近に収束させることにより、例えば、両Ｏ2センサ２９ａ，２９ｂの出力電圧ＦＶＯ２，ＲＶＯ２に基づく空燃比フィードバック制御が、オープンループ制御からリスタートした場合等に、積分値ＲＩが現状とかけ離れた値となることを等を防止でき、学習値ＲＬＲＮ等を適切に更新して触媒３０の下流側の空燃比の良好な収束性を実現することができる。
【００６３】
ここで、上述の実施形態においては、積分値ＲＩと出力電圧ＲＶＯ２とに基づいて更新時間を変更することによって学習値の更新速度を可変とする一例について説明したが、その他にも、例えば、学習値の更新時間を一定とし、図８に示すマップ等を参照して積分値ＲＩと出力電圧ＲＶＯ２とに基づいて学習値の補正量を変更することで更新速度を可変とすることも可能である。
【００６４】
なお、上述の実施形態においては、リヤ空燃比補正量ＰＨＯＳを、ＲＯ2センサ２９ｂの出力電圧ＲＶＯ２に基づいて演算される比例値、積分値、学習値を用いて設定する一例について説明したが、本発明はこれに限定されるものではなく、例えば、学習値のみを用いてリヤ空燃比補正量を設定してもよく、さらに、学習値に、比例値、積分値、或いは微分値を選択的に組み合わせてリヤ空燃比補正量を設定してもよい。
【００６５】
また、上述の実施形態においては、空燃比フィードバック補正係数を演算する際の制御定数の一つであるスキップ量をリヤ空燃比補正量で補正する一例について説明したが、本発明はこれに限定されるものではなく、例えば、空燃比フィードバック補正係数を演算する際の他の制御定数である積分定数、ディレイ時間、或いは比較電圧等を、リヤ空燃比補正量で補正してもよいことは勿論である。
【図面の簡単な説明】
【００６６】
【図１】エンジン制御系の概略構成図
【図２】電子制御系の回路構成図
【図３】燃料噴射量設定ルーチンのフローチャート
【図４】空燃比フィードバック補正係数設定ルーチンのフローチャート
【図５】リヤ空燃比補正量設定ルーチンのフローチャート
【図６】学習値の更新時間設定用マップを示す図表
【図７】リヤＯ2センサの出力電圧に基づいて設定される比例値、積分値、および学習値の各挙動の一例を示すタイムチャート
【図８】学習値の補正量設定用マップを示す図表
【符号の説明】
【００６７】
１  …  エンジン
２９ａ  …  フロントＯ2センサ（第１の空燃比センサ）
２９ｂ  …  リヤＯ2センサ（第２の空燃比センサ）
３０  …  触媒コンバータ（触媒）
４０  …  電子制御装置（補正係数演算手段、積分手段、学習手段、定数補正手段）
【図１】
2007092688.tif 000003
【図２】
2007092688.tif 000004
【図３】
2007092688.tif 000005
【図４】
2007092688.tif 000006
【図５】
2007092688.tif 000007
【図６】
2007092688.tif 000008
【図７】
2007092688.tif 000009
【図８】
2007092688.tif 000010