(57)【特許請求の範囲】
【請求項１】
燃料タンクに発生する蒸発燃料をキャニスタに蓄え、このキャニスタに蓄えられた蒸発燃料を空気と共に放出通路を介して内燃機関の吸気側に放出するようにした内燃機関の空燃比制御装置であって、
前記内燃機関の空燃比を検出する空燃比検出手段と、
この空燃比検出手段により検出された空燃比に応じて内燃機関に供給される燃料と空気との混合気の空燃比をフィードバック制御する空燃比フィードバック手段と、
前記キャニスタより前記放出通路を介して前記内燃機関の吸気側に放出される蒸発燃料を含む空気のパージ率を変化させる流量制御弁と、
前記蒸発燃料の濃度を検出する時に前記流量制御弁によりパージ率を変化させる濃度検出用パージ率制御手段と、
このパージ率制御手段によりパージ率を変化させる前と後との前記空燃比及び前記パージ率により蒸発燃料の濃度を検出する濃度検出手段と、
前記濃度検出手段により蒸発燃料の濃度が検出された後に、再度この濃度検出手段により蒸発燃料の濃度を検出する場合に、すでに検出されている蒸発燃料濃度分をこの濃度検出時の前記パージ率に応じて内燃機関の燃料供給量に反映させる濃度検出時燃料濃度補正手段とを備える内燃機関の空燃比制御装置。
【請求項２】
燃料タンクに発生する蒸発燃料をキャニスタに蓄え、このキャニスタに蓄えられた蒸発燃料を空気と共に放出通路を介して内燃機関の吸気側に放出するようにした内燃機関の空燃比制御装置であって、
前記内燃機関の空燃比を検出する空燃比検出手段と、
この空燃比検出手段により検出された空燃比に応じて内燃機関に供給される混合気の空燃比をフィードバック制御する空燃比フィードバック手段と、
前記キャニスタより前記放出通路を介して前記内燃機関の吸気側に放出される蒸発燃料を含む空気のパージ率を変化させる流量制御弁と、
前記蒸発燃料の濃度検出値を更新する時に、すでに検出されている蒸発燃料濃度分に応じて前記流量制御弁によりパージ率を変化させる濃度更新用パージ率制御手段と、
このパージ率制御手段によりパージ率を変化させる前と後との空燃比及びパージ率により蒸発燃料の濃度を更新する濃度更新手段とを備える内燃機関の空燃比制御装置。
【請求項３】
燃料タンクに発生する蒸発燃料をキャニスタに蓄え、このキャニスタに蓄えられた蒸発燃料を空気と共に放出通路を介して内燃機関の吸気側に放出するようにした内燃機関の空燃比制御装置であって、
前記内燃機関の空燃比を検出する空燃比検出手段と、
この空燃比検出手段により検出された空燃比に応じて内燃機関に供給される燃料と空気との混合気の空燃比をフィードバック制御する空燃比フィードバック手段と、
前記キャニスタより前記放出通路を介して前記内燃機関の吸気側に放出される蒸発燃料を含む空気のパージ率を変化させる流量制御弁と、
前記蒸発燃料の濃度を検出する時に前記流量制御弁によりパージ率を変化させる濃度検出用パージ率制御手段と、
このパージ率制御手段によりパージ率を変化させる前と後との前記空燃比フィードバック手段の空燃比フィードバック値及び前記パージ率により蒸発燃料の濃度を検出する濃度検出手段と、
前記濃度検出手段により蒸発燃料の濃度を検出している時に前記空燃比フィードバック手段による空燃比フィードバック値の下限ガードを広げる濃度検出時下限ガード変更手段とを備える内燃機関の空燃比制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は燃料タンク内で発生する蒸発燃料を内燃機関（エンジン）の吸気側に吸入させて燃焼させるための内燃機関の空燃比制御装置に関する。
【０００２】
【従来技術】
従来、燃料タンク内で発生する蒸発燃料をキャニスタに蓄え、このキャニスタに蓄えられた蒸発燃料を空気と共に内燃機関の吸気側に放出するさせて燃焼させるものにおいて、キャニスタパージ量を一定値だけ変化させ、その時の空燃比フィードバック値の変化量により、キャニスタより内燃機関の吸気側に吸入される蒸発燃料の濃度を検出するものがある（例えば、特開平２−１３０２４０号公報）。
【０００３】
【発明が解決しようとする課題】
ところが、上述した従来のものでは、キャニスタパージ量を一定値だけ変化させて蒸発燃料濃度を検出するものであるので、キャニスタへの蒸発燃料の吸着量が多い場合に、濃度検出を行うと、内燃機関に供給される燃料と空気との混合気の空燃比が大きく変動し、内燃機関のアイドル安定性の悪化および排気エミッションの悪化を招くという問題がある。
【０００４】
そこで本発明は、キャニスタへの蒸発燃料の吸着量が多い場合にも、蒸発燃料濃度検出中における空燃比の変動を抑え、アイドル安定性や排気エミッションが悪化するのを防止することを目的とするものである。
【０００５】
【問題点を解決するための手段】
そのため本願の請求項１に係る発明は、燃料タンクに発生する蒸発燃料をキャニスタに蓄え、このキャニスタに蓄えられた蒸発燃料を空気と共に放出通路を介して内燃機関の吸気側に放出するようにした内燃機関の空燃比制御装置であって、前記内燃機関の空燃比を検出する空燃比検出手段と、この空燃比検出手段により検出された空燃比に応じて内燃機関に供給される燃料と空気との混合気の空燃比をフィードバック制御する空燃比フィードバック手段と、前記キャニスタより前記放出通路を介して前記内燃機関の吸気側に放出される蒸発燃料を含む空気のパージ率を変化させる流量制御弁と、前記蒸発燃料の濃度を検出する時に前記流量制御弁によりパージ率を変化させる濃度検出用パージ率制御手段と、このパージ率制御手段によりパージ率を変化させる前と後との前記空燃比及び前記パージ率により蒸発燃料の濃度を検出する濃度検出手段と、前記濃度検出手段により蒸発燃料の濃度が検出された後に、再度この濃度検出手段により蒸発燃料の濃度を検出する場合に、すでに検出されている蒸発燃料濃度分をこの濃度検出時の前記パージ率に応じて内燃機関の燃料供給量に反映させる濃度検出時燃料濃度補正手段とを備える内燃機関の空燃比制御装置を提供するものである。
【０００６】
これにより、濃度検出手段により蒸発燃料の濃度が検出された後に、再度この濃度検出手段により蒸発燃料の濃度を検出する場合に、すでに検出されている蒸発燃料濃度分をこの濃度検出時の前記パージ率に応じて濃度検出時燃料濃度補正手段によって内燃機関の燃料供給量に反映させるので、再度蒸発燃料の濃度を検出する場合にも空燃比の変動を抑えることができる。
【０００７】
また、請求項２に係る発明は、燃料タンクに発生する蒸発燃料をキャニスタに蓄え、このキャニスタに蓄えられた蒸発燃料を空気と共に放出通路を介して内燃機関の吸気側に放出するようにした内燃機関の空燃比制御装置であって、前記内燃機関の空燃比を検出する空燃比検出手段と、この空燃比検出手段により検出された空燃比に応じて内燃機関に供給される混合気の空燃比をフィードバック制御する空燃比フィードバック手段と、前記キャニスタより前記放出通路を介して前記内燃機関の吸気側に放出される蒸発燃料を含む空気のパージ率を変化させる流量制御弁と、前記蒸発燃料の濃度検出値を更新する時に、すでに検出されている蒸発燃料濃度分に応じて前記流量制御弁によりパージ率を変化させる濃度更新用パージ率制御手段と、このパージ率制御手段によりパージ率を変化させる前と後との空燃比及びパージ率により蒸発燃料の濃度を更新する濃度更新手段とを備える内燃機関の空燃比制御装置を提供するものである。
【０００８】
これにより、前回検出した濃度に応じて濃度検出用パージ率制御手段によって濃度更新時のパージ率を変えるので、濃度検出値を更新する時にも空燃比の変動を抑えることができる。
【０００９】
また、請求項３に係る発明は、燃料タンクに発生する蒸発燃料をキャニスタに蓄え、このキャニスタに蓄えられた蒸発燃料を空気と共に放出通路を介して内燃機関の吸気側に放出するようにした内燃機関の空燃比制御装置であって、前記内燃機関の空燃比を検出する空燃比検出手段と、この空燃比検出手段により検出された空燃比に応じて内燃機関に供給される燃料と空気との混合気の空燃比をフィードバック制御する空燃比フィードバック手段と、前記キャニスタより前記放出通路を介して前記内燃機関の吸気側に放出される蒸発燃料を含む空気のパージ率を変化させる流量制御弁と、前記蒸発燃料の濃度を検出する時に前記流量制御弁によりパージ率を変化させる濃度検出用パージ率制御手段と、このパージ率制御手段によりパージ率を変化させる前と後との前記空燃比フィードバック手段の空燃比フィードバック値及び前記パージ率により蒸発燃料の濃度を検出する濃度検出手段と、前記濃度検出手段により蒸発燃料の濃度を検出している時に前記空燃比フィードバック手段による空燃比フィードバック値の下限ガードを広げる濃度検出時下限ガード変更手段とを備える内燃機関の空燃比制御装置を提供するものである。
【００１０】
これにより、濃度検出時に空燃比フィードバック値の下限ガードを広げるので、通常の空燃比フィードバック時より燃料噴射量を大きく補正できるので濃度検出時の空燃比変動を抑えることができる。
【００１１】
【実施の形態】
以下、この発明を具体化した実施の形態である一実施例を図面に基づいて説明する。図１に示すように、車両には多気筒エンジン１が搭載され、このエンジン１には吸気管２と排気管３とが接続されている。吸気管２の内端部には電磁式のインジェクタ４が設けられるとともに、その上流側にはスロットル弁５が設けられている。さらに、排気管３には空燃比検出手段としての酸素センサ６が設けられ、同センサ６は排気ガス中の酸素濃度に応じた電圧信号を出力する。
【００１２】
前記インジェクタ４に燃料を供給する燃料供給系統は、燃料タンク７、燃料ポンプ８、燃料フィルタ９及び調圧弁１０を有している。そして、燃料タンク７内の燃料（ガソリン）が燃料ポンプ８にて燃料フィルタ９を介して各インジェクタ４へ圧送されるとともに、調圧弁１０にて各インジェクタ４に供給される燃料が所定圧力に調整される。
【００１３】
燃料タンク７の上部から延びるパージ管１１は吸気管２のサージタンク１２と連通され、そのパージ管１１の途中には、燃料タンクに発生する蒸発燃料を吸着する吸着材としての活性炭を収納したキャニスタ１３が配設されている。又、キャニスタ１３には外気を導入するための大気開放孔１４が設けられている。パージ管１１はキャニスタ１３よりもサージタンク１２側を放出通路１５とし、この放出通路１５の途中に可変流量電磁弁１６（以下、パージソレノイド弁という）が設けられている。このパージソレノイド弁１６は、スプリング（図示略）により常に弁体１７がシート部１８を閉じる方向に付勢されているが、コイル１９を励磁することにより弁体１７がシート部１８を開くようになっている。従って、パージソレノイド弁１６のコイル１９の消磁により放出通路１５が閉じ、コイル１９の励磁により放出通路１５が開くようになっている。このパージソレノイド弁１６はパルス幅変調に基づくデューティ比制御により後述するＣＰＵ２１によって開度調節される。
【００１４】
従って、このパージソレノイド弁１６にＣＰＵ２１から制御信号を供給し、キャニスタ１３がエンジン１の吸気管２に連通されるようにしてやれば、大気中から新しい空気Ｑａが導入され、これがキャニスタ１３内を換気してエンジン１の吸気管２からシリンダ内に送り込まれ、キャニスタパージが行われ、キャニスタ１３の吸着機能の回復が得られることになるのである。そして、このときの新気Ｑａの導入量Ｑｐ（ｌ／ｍｉｎ）は、ＣＰＵ２１からパージソレノイド弁１３に供給されるパルス信号のデューティを変えることにより調節される。図２は、このときのパージ量の特性図で、吸気管内の負圧が一定の場合でのパージソレノイド弁１３のデューティとパージ量との関係を示しており、この図から、パージソレノイドを０％から増加させてゆくにつれて、ほぼ直接的にパージ量、すなわちキャニスタ１３を介してエンジン１に吸い込まれる空気の量が増加してゆくことが判る。
【００１５】
ＣＰＵ２１はスロットル弁５の開度を検出するスロットルセンサ５ａからのスロットル開度信号と、エンジン１の回転数を検出する回転数センサ（図示略）からのエンジン回転数信号と、スロットル弁５を通過した吸入空気の圧力を検出する吸気圧センサ５Ｂからの吸気圧信号と、エンジン冷却水の温度を検出する水温センサ５Ｃからの冷却水温信号と、吸入空気温度を検出する吸気温センサ（図示略）からの吸気温信号とを入力する。
【００１６】
又、ＣＰＵ２１は前記酸素センサ６からの信号（電圧信号）を入力し、混合気のリッチ・リーン判定を行う。そして、ＣＰＵ２１はリッチからリーンに反転した場合及びリーンからリッチに反転した場合は燃料噴射量を増減すべく、フィードバック補正係数を階段状に変化（スキップ）させるとともに、リッチ又はリーンのときにはフィードバック補正係数を徐々に増減させるようになっている。尚、このフィードバック制御はエンジン冷却水温が低いとき、及び高負荷・高回転走行時には行わない。又、ＣＰＵ２１はエンジン回転数と吸気圧により基本噴射時間を求め、基本噴射時間に対しフィードバック補正係数等による補正を行って最終噴射時間を求め、前記インジェクタ４による所定の噴射タイミングでの燃料噴射を行わせる。
【００１７】
ＲＯＭ３４は、エンジン全体の動作を制御するためのプログラムやマップを格納している。ＲＡＭ３５は各種のデータ、例えば前記スロットル弁５の開度、エンジン回転数等の検出データ等を一時的に記憶する。そして、ＣＰＵ２１はＲＯＭ３４内のプログラムに基づいてエンジンの動作を制御する。
【００１８】
図３は、全開パージ率マップを示したもので、エンジン回転数Ｎｅと負荷（今回は吸気管圧力、その他に吸入空気量やスロットル開度でもよい）により決定される。このマップは、吸気管２を通してエンジン１に流入する全空気量に対するパージソレノイド弁１６のデューティ１００％時に放出路１５を通して流れる空気量の比を示しており、ＲＯＭ３４内に記憶されている。
【００１９】
本システムは、空燃比フィードバック（ＦＡＦ）制御、パージ率制御、初回蒸発燃料（エバポ）濃度検出、継続エバポ濃度検出、燃料噴射量制御、空燃比学習制御およびパージソレノイド弁制御を操作して行われる。まず、第１に、未知のエバポ濃度レベルを検出するため、初回エバポ濃度（単位パージ率当たりのＦＡＦ変化量）検出を行う。第２に検出したエバポ濃度と現状のパージ率とにより、燃料噴射量を操作する。第３に、所定時間ごと、かつ運転状態が安定している時に、更新エバポ濃度検出を行い、エバポ濃度を更新させ、上記と同様、燃料噴射量を操作する。そして、燃料噴射量を操作した結果のＦＡＦ値の挙動により、空燃比学習制御を行う。
【００２０】
以下、実施例の動作について、各制御毎に説明する。
【００２１】
空燃比フィードバック制御
空燃比フィードバック制御を図４に従って説明する。この空燃比フィードバック制御は約４ｍｓ毎にＣＰＵ２１のベースルーチンで実行されるものである。
【００２２】
第１にステップＳ４０でフィードバック（Ｆ／Ｂ）制御可能か判断する。このＦ／Ｂ条件としては、主に以下示す条件をすべて満足した場合である。（１）始動時でない。（２）燃料カット中でない。（３）冷却水温（ＴＨＷ）≧４０℃。（３）ＴＡＵ＞ＴＡＵｍｉｎ。（４）酸素センサ活性状態である。
【００２３】
条件成立ならば、ステップＳ４１へ進んで濃度検出直後か判断し、濃度検出直後でなければステップＳ４２へ進んで酸素センサ出力と所定判定レベルとを比較し、それぞれ遅れ時間（Ｈ・ＩｍｓｅＣ）を持って空燃比フラグＸＯＸＲを操作する。例えば、ＸＯＸＲ＝１のときリッチ、ＸＯＸＲ＝０のときリーンとする。次にステップＳ４３へ進んでこのＸＯＸＲに基づき、ＦＡＦの値を操作する。すなわち、ＸＯＸＲが変化（０→１），（１→０）した時、ＦＡＦの値を所定量スキップさせ、ＸＯＸＲが１または０を継続中は、ＦＡＦ値の積分制御を行う。そして、次のステップＳ４４へ進んでＦＡＦ値の上下限チェックをした後、ステップＳ４５へ進んで決定したＦＡＦ値を基にしてスキップ毎、又は所定時間毎になまし（平滑化）処理を行い、なまし値ＦＡＦＡＶを求める。なお、ステップＳ４０においてＦ／Ｂ制御が成立しない時およびステップＳ４１において濃度検出終了直後であるとき（後述する濃度検出中フラグが１から０になった直後のとき）はステップＳ４６へ進んでＦＡＦの値を１．０とする。
【００２４】
パージ率制御
パージ率制御のメインルーチンを図５に示す。このルーチンも約４ｍｓ毎にＣＰＵ２１のベースルーチンで実行されるものである。
【００２５】
ステップＳ５０１で空燃比Ｆ／Ｂ中か否かを図４のステップＳ４０と同様な条件で判断すると共に、ステップＳ５０２で冷却水温が５０℃以上か否かを判断し、空燃比Ｆ／Ｂ中で水温が所定値５０℃以上の時、パージ率制御を実行させるためステップＳ５０３でパージ停止フラグＸＩＰＧＲを０にする。次のステップＳ５０４で燃料カット中か否かを判断し燃料カット中の時、ステップＳ５０５へ進んで燃料カット時パージ率（ＰＧＲ）制御を行う。また、ステップ５０４で燃料カット中でないと判断した時、ステップＳ５０６へ進んでキャニスタからのエバポ濃度を１度も検出していないか初回濃度検出フラグＸＦＦＧＰＧにより判断する。１度も検出していない時（初回）、ステップＳ５０７へ進んで初回濃度検出用ＰＧＲ制御を行う。初回濃度検出後、ステップＳ５０８へ進んでカウンタＣＰＧＫＡＮを作動させ、このカウンタの係数値により次のステップＳ５０９で所定時間（例えば６０ｓｅＣ）経過したか判断し、この所定時間毎にステップＳ５１０へ進んで濃度検出を行い、エバポ濃度（ＦＧＰＧ）を更新していく。それ以外の時は、ステップＳ５１１へ進んで通常パージ率制御を行う。なお、ステップＳ５０１，Ｓ５０２でパージ率条件が成立していない時、ステップＳ５１２へ進んでパージ率を０とした後、ステップＳ５１３へ進んで、パージ停止フラグＸＩＰＧＲを１とする。
【００２６】
図５のステップＳ５１１における通常パージ率制御サブルーチンを図６に示す。まず、ステップＳ６０１でＦＡＦ値（または、ＦＡＦなまし値）が１．０
基準に対して３領域（▲１▼，▲２▼，▲３▼）の内どの領域にあるか検出する。ここで、図７の（ａ）で示すごとく領域▲１▼は１．０±Ｆ％以内、領域▲２▼は１．０±Ｆ％以上離れ±Ｇ％（ただし、Ｆ＜Ｇ）以内にいる時、領域▲３▼は１．０±Ｇ％以上にいる時を示す。
【００２７】
領域▲１▼ならステップＳ６０２へ進んでパージ率（ＰＧＲ）を所定値Ｄ％ずつ増加させる。領域▲２▼の時はステップＳ６０３へ進んでＰＧＲの増減なし。領域▲３▼の時はステップＳ６０４へ進んでＰＧＲを所定値Ｅ％ずつ減少させる。ここで、所定値Ｄ，Ｅは図７の（Ｂ）で示すごとくエバポ濃度（ＦＧＰＧ）に応じて変化させるのが好ましい。そして、次のステップＳ６０５でＰＧＲの上下限チェックを行う。ここで、上限値は、図７の（Ｃ）で示すパージ開始時間、図７の（ｄ）で示す水温、図７の（ｅ）で示す運転条件（全開パージ率マップ）等の各種条件の内１番小さい値とする。
【００２８】
図５のステップＳ５０５における燃料カット時ＰＧＲ制御サブルーチンを図８に示す。まず、ステップＳ８０１でエンジン１にキャニスタ１３からのエバポが入らないようにＰＧＲを０とする。次に、ステップＳ８０２へ進んで濃度検出中ならば、検出をキャンセルするために濃度検出中の、各フラグをリセットする（例えば：ＸＰＧＩＤＬ，ＸＰＧＲＵＮ，ＸＰＧＮＯ１，ＸＰＧＮＯ２＝０）。
【００２９】
図５のステップＳ５０７における初期濃度検出用ＰＧＲ制御サブルーチンを図９に示す。この制御はアイドルと走行時とに分けて制御する。アイドル時は、ステップＳ９０１でアイドルフラグＸＩＤＬが１、ステップＳ９０２で、車速ＳＰＤが０ｋｍ／ｈ、ステップＳ９０３で、ＦＡＦ値が３回以上スキップしたと判断したら、ステップＳ９０４へ進んでアイドル時濃度検出中フラグＸＰＧＩＤＬを１とする。また、ＸＰＧＩＤＬはＸＩＤＬが０又はＳＰＤが０ｋｍ／ｈより大きくなったらステップＳ９０５へ進んで濃度検出を中止するようＸＰＧＩＤＬを０にリセットする。走行時は、ステップＳ９０１からステップＳ９０６へと進み、ここでＸＰＧＩＤＬが１でないため、ステップＳ９０７へと進み、走行時濃度検出中フラグＸＰＧＲＵＮが１であるとさらにステップＳ９０８へ進んで学習領域が同じでＦＡＦ値が３回以上スキップし、かつ加減速中でない時（例えば、エンジン１の吸気管圧力の変化ＤＬＰＭ＜１９．５ｍｍＨｇ）なら、さらにステップＳ９０９へ進んで走行時濃度検出中フラグＸＰＧＲＵＮを１とする。また、ステップＳ９０７でＸＰＧＰＵＮが１でないとき、ステップＳ９１０へ進んで、加減速中でなく（例えばＤＬＰＭ＜１９．５ｍｍＨｇ）、かつ同じエンジン運転領域でＦＡＦ値が３回以上スキップしたら、ステップＳ９１１へ進んでそのときのエンジン運転領域を記憶した後、さらにステップＳ９０９へ進んで走行時濃度検出中フラグＸＰＧＲＵＮを１とする。また、ステップＳ９０８で領域・ＤＬＰＭが所定値をはずれたらステップＳ９１２へ進んでＸＰＧＲＵＮを０とし、濃度検出中フラグをキャンセルさせる。
【００３０】
ＸＰＧＩＤＬが１またはＸＰＧＲＵＮが１となった後のパージ率の操作の行い方は、第１にステップＳ９１３でパージ率を変化させる前のＦＡＦ値（又はなまし値）：ＦＡＦＢを決定したと判断したら（このＦＡＦＢの決定は後述する図１３において説明する）、次のステップＳ９１４でＦＡＦＢを基準に所定値Ａ％（例えば１５％）減少させた値を求めると共に、この値に対し所定値±α％（例えば２％）の不感帯を設ける。これにより図１０で示すごとく３つの領域▲１▼，▲２▼，▲３▼が決定される。そして、ステップＳ９１５でＦＡＦ値（又はなまし値）がどの領域にあるか判別し、領域▲１▼ならば、ステップＳ９１６へ進んでパージ率ＰＧＲを所定値Ｂ％ずつ増加させ、領域▲２▼ならば、ステップＳ９１７へ進んでＰＧＲの増減なし。領域▲３▼ならば、ステップＳ９１８へ進んでＰＧＲを所定値Ｃ％ずつ減少させる。最後にステップＳ８１９へ進んでＰＧＲの上下限をチェックして、ＰＧＲを０％（下限）〜２０％（上限）の範囲に制限する。
【００３１】
図５のステップＳ５１０における濃度更新用ＰＧＲ制御サブルーチンを図１１に示す。この制御もアイドル時と走行時とに分けて制御する。濃度検出中フラグ（ＸＰＧＮＯ１，ＸＰＧＮＯ２）を操作する条件は、初回濃度検出ルーチンと同様にパージ率の操作の行い方は、アイドル時、ステップＳ１１０１でＸＩＤＬが１、ステップＳ１１０２でＳＰＤが０ｋｍ／ｈ、ステップＳ１１０３でＦＡＦ値が３回以上スキップと判断したら、ステップＳ１１０４、Ｓ１１０５へ進み、さらにＸＰＧＮＯ１が１となった時のＦＡＦ値（又はなまし値）とその所定変化量Ｆ％（例えば１０％）の値とがＦＡＦ値の上下限値にかからないことを確認し、この所定変化量Ｆ％をエバポ濃度（ＦＧＰＧ）で除算し、この除算した値にＸＰＧＮＯ１が１となった時のＰＧＲを加算することにより、ステップＳ１１０６でＰＧＲを決定する。最後にステップＳ１１０７へ進んでＰＧＲの上下限チェックを行う。
【００３２】
走行時は、アイドル時同様、ステップＳ１１０８〜Ｓ１１１６を介しステップＳ１１１７で、所定変化量Ｇ％（例えば７％）をエバポ濃度（ＦＧＰＧ）で除算し、この除算した値をＸＰＧＮＯ２が１となった時のＰＧＲからひき算する。最後にステップＳ１１１８へ進んでＰＧＲの上下限チェックを行う。ここで、アイドル時はたし算を行い、走行時はひき算を行うのは、アイドル時はパージソレノイド弁の開度が小さく、走行時は開度が大きくなっているためである。
【００３３】
エバポ濃度検出
ＣＰＵ２１のベースルーチンで約４ｍｓ毎に実行されるエバポ濃度検出のメインルーチンを図１２に示す。このルーチンは初回濃度検出と、濃度更新に分けて制御するようになっている。即ち、ステップＳ１２１でＸＦＦＧＰＧが１であり、ステップＳ１２２でＸＰＧＩＤＬが１またはＸＰＧＲＵＮが１のときステップＳ１２３へ進んでエバポの初回濃度検出を行い、ステップＳ１２１でＸＦＦＧＰＧが１でなく、ステップＳ１２４でＸＰＧＮＯ１が１またはＸＰＧＮＯ２が１のときステップＳ１２５へ進んでエバポの濃度更新を行う。
【００３４】
図１２のステップＳ１２３の初回濃度検出サブルーチンを図１３に示す。まず、ステップＳ１３１で前回濃度検出中フラグが０であったかを判断し、前回濃度検出中フラグが０であったとするとパージ率制御の濃度検出中フラグ（ＸＰＧＩＤＬ，ＸＰＧＲＵＮ，ＸＰＧＮＯ１，ＸＰＧＮＯ２）が今回１になったことになるため、ステップＳ１３２へ進んで、その時のＰＧＲ，ＦＡＦ値（又はなまし値）をＰＧＲＢ、ＦＡＦＢとして記憶する。次のステップＳ１３３でＦＡＦ値（又はなまし値）がパージ率制御で説明した不感帯に入り、ＦＡＦ値が３回以上スキップしたならば、ステップＳ１３４へ進んでその時のＰＧＲ・ＦＡＦ値（又はなまし値）をＰＧＲＣ，ＦＡＦＣとして記憶する。そして、次のステップＳ１３５でＦＡＦＢとＦＡＦＣとの差ΔＦＡＦをＰＧＲＢとＰＧＲＣの差ΔＰＧＲで除算してエバポ濃度ＦＧＰＧを求める。この濃度検出が終了したら、ステップＳ１３６，Ｓ１３７，Ｓ１３８でフラグ、カウンタ処理を行う（例えば、ＸＦＦＧＰＧを１、ＣＰＧＫＡＮを０とする）。また、ステップＳ１３３で否のときステップＳ１３９へ進んで、ＰＧＲが上限となってからＦＡＦ値が３回以上スキップしたならば、エバポ濃度が薄いためパージ量を増してもＦＡＦ値が不感帯まで増加しないと判断してステップＳ１３４に進み、前述と同様にしてエバポ濃度ＦＧＰＧを求める。また、ステップＳ１３９で否のときはエバポ濃度ＦＧＰＧを求めることなくリターンする。
【００３５】
図１２のステップＳ１２５の濃度更新サブルーチンを図１４に示す。この濃度更新サブルーチンは図１３の初回濃度検出サブルーチンのステップＳ１３１，Ｓ１３２，Ｓ１３４〜Ｓ１３８と同様なステップＳ１４１，Ｓ１４２，Ｓ１４４〜Ｓ１４８を有すると共に、図１３のステップＳ１３３におけるＦＡＦ値の不感帯の判別をなくしてＦＡＦ値３回以上スキップしたか否かを判別するのみのステップＳ１４３とし、さらに、ステップＳ１３９を省略したものである。これにより、検出エバポの濃度更新は、濃度更新のために、ＰＧＲをΔＰＧＲだけ更新してからＦＡＦ値が３回スキップした時点で実行される。
【００３６】
燃料噴射量制御
ＣＰＵ２１のベースルーチンで約４ｍｓ毎に実行される燃料噴射量制御を図１５に示す。
【００３７】
第１にステップＳ１５１でＲＯＭ３４にマップとして、格納されているデータに基づき、エンジン回転数と負荷（例えば、吸気管内圧力）により基本燃料噴射量（ＴＰ）を求め、次のステップＳ１５２で各種基本補正（冷却水温、始動後、吸気温等）を行う。第２にステップＳ１５３でエバポ濃度検出中（ＸＰＧＩＤＬ，ＸＰＧＲＵＮ，ＸＰＧＮＯ１，ＸＰＧＮＯ２＝１）ならば、ステップＳ１５４へ進んで各フラグが１になった時のパージ補正係数ＦＰＧ（ＰＧＲにＦＧＰＧを乗算して求めた値）に固定する。それ以外はステップＳ１５５へ進んでＰＧＲ変化に合わせて、
【００３８】
【数１】
ＦＰＧ＝（ＦＧＰＧ−１）×ＰＧＲ
によりＦＰＧを求める。最後にステップＳ１５６でＦＡＦ，ＦＰＧ，各エンジン運転領域毎に持つ空燃比学習値（ＫＧｊ）を、
【００３９】
【数２】
１＋（ＦＡＦ−１）＋（ＫＧｊ−１）＋ＦＰＧ
の演算により補正係数として求めて、燃料噴射量に反映させる。
【００４０】
パージソレノイド弁制御
ＣＰＵ２１により１００ｍｓ毎の時間割込みにより実行されるパージソレノイド弁制御ルーチンを図１６に示す。ステップＳ１６１でＸＩＰＧＲが１またはステップＳ１６２でフューエルカット中であるならば、ステップＳ１６３へ進んでパージソレノイド弁１６のＤｕｔｙを０とする。それ以外ならば、ステップＳ１６４へ進んで、パージソレノイド弁１６の駆動周期を１００ｍｓとすると、
【００４１】
【数３】
Ｄｕｔｙ＝（ＰＧＲ／ＰＧＲｆｏ）×（１００ｍｓ−ＰＶ）×ＰＰａ＋ＰＶ
の演算式でパージソレノイド弁１６のＤｕｔｙを求める。ここで、ＰＧＲは図６，図９，図１１で求められたパージ率、ＰＧＲｆｏはパージソレノイド弁１６が全開時における各運転状態でのパージ率（図３参照）、ＰＶ はバッテリ電圧の変動に対する電圧補正値、ＰＰａは大気圧の変動に対する大気圧補正値である。
【００４２】
空燃比学習制御
空燃比学習制御ルーチンを図１７に示す。空燃比フィードバック中、冷却水温ＴＨＷが８０℃以上、始動後増量が０、暖機増量が０、現在の運転領域に入ってＦＡＦ値から５回以上スキップした、バッテリ電圧が１１．５Ｖ以上の基本条件をすべて満了したことをステップＳ１７０２で判断し、かつエバポ濃度検出中フラグＸＰＧＩＤＬ，ＸＰＧＲＵＮ，ＸＰＧＵＯ１，ＸＰＧＮ２のすべてが１以外ならば、それをステップＳ１７０１で判断して学習制御を行う。学習制御はステップＳ１７０３でＦＡＦＡＶの値を読み込んだ後、ステップＳ１７０５でのアイドルか否かの判断結果によりアイドル時ＫＧ０（ステップＳ１７０８）と走行時（ステップＳ１７１０）に分けて行われ、走行時は負荷（例えば吸気管内圧力）により所定数（例えば７つ）の領域ＫＧ１〜ＫＧ７に分かれて行われる。また、ステップＳ１７０６，Ｓ１７０９で所定エンジン回転数以内にある時（アイドル時は６００〜１０００ｒｐｍ、走行時は１０００〜３２００ｒｐｍ）のみ、学習値を更新するようになっている。さらにアイドル時はステップＳ１７０７により吸気管圧力ＰＭが１７３ｍｍＨｇ以上のときに学習値が更新される。各領域の学習値ＫＧ０ 〜ＫＧ７ の更新方法は、ＦＡＦのなまし値と１．０との差が所定値（例えば２％）より大きい時、その領域の学習値ＫＧ０〜ＫＧ７を所定値（Ｋ％，Ｌ％）ずつ増減することによりなされる。（ステップＳ１７１１〜Ｓ１７１４）。最後に、ＫＧｊの上下限チェックを行う（ステップＳ１７１５）。ここで、ＫＧｊの上限値は例えば１．２に、下限値は０．８に設定され、またこの上下限値はエンジン運転領域毎に設定することもできる。
【００４３】
図１８は図４のステップＳ４４のサブルーチンを示すもので、まず、ステップＳ１８１でＦＡＦの基本上下限値を設定する（例えば、上限値１．２、下限値０．８に設定）。次に、ステップＳ１８２へ進んで、エバポ濃度検出中フラグのいずれかが１であるなら、ステップＳ１８３へ進んで、ＦＡＦの下限値を基本下限値より小さな値（例えば、０．６）に設定した後リターンする。また、ステップＳ１８２でエバポ濃度検出中フラグの全てが１以外ならばステップＳ１８４へ進んでエバポ濃度検出中フラグの全てが０になってから所定時間（例えば、３秒）以上経過したかを判断し、所定時間経過していないときにはステップＳ１８３へ進み、所定時間経過しているときにはそのままリターンする。これによって、エバポ濃度検出中及びその終了から所定時間経過するまではＦＡＦの下限値が基本値より小さな値に設定されることにより、濃度検出または更新時にＦＡＦの値が下限値に張りついて、エバポ濃度の検出や更新が不可能になるのを防止する。
【００４４】
以上説明した実施例のタイムチャートを図１９に示す。（ａ）は検出エバポ濃度値ＦＧＰＧを示し、（Ｂ）は燃料減量補正係数ＦＰＧを示し、（Ｃ）はパージ率ＰＧＲを示し、（ｄ）の実線はＦＡＦ値を示し、一点鎖線はＦＡＦの下限値を示す。
【００４５】
他の実施例Ａ上述した実施例では濃度更新中の燃料減量補正係数ＦＰＧをその直前の値に固定するようにしたが、図２０のタイムチャートに示すように、濃度更新中の燃料減量補正係数ＦＰＧを、すでに検出されている蒸発燃料濃度分と濃度更新時のパージ率とに応じて変化させることにより、濃度更新時のＦＡＦ値の変動をより小さくすることができる。この実施例においては、上述した図１〜図１８に示す実施例に対し、図１５の燃料制御を図２１のものに、図１４の濃度更新サブルーチンを図２２のものに入れ換えたものである。ここで、図２１においては図１５に対してステップＳ１５３、Ｓ１５４を省略したものであり、図２２は図１４のものに対し、更新ステップＳ１４５としてエバポ濃度変化量を、前回のＦＧＰＧ値に反映させるようにしたものである。
【００４６】
他の実施例Ｂ
上述した各実施例おいては、スロットル弁５下流の吸入空気の圧力を吸気圧センサ５Ｂにより検出して、エンジン回転数と吸気管圧力とにより基本燃料噴射量を演算するものに本発明を適用したが、スロットル弁５上流の吸入空気量を検出する吸入空気量センサを用いて、エンジン回転数と吸入空気量とにより基本燃料噴射量を演算するものにも本発明を適用することができる。このようにスロットル弁５上流の吸入空気量を検出する場合には、スロットル弁５下流に放出路１５を介して導入されるエバポガスを含むバイパス空気の流量を吸入空気量として検出することができないため、基本燃料噴射量はバイパス空気の流量を除外して決定される。したがって、バイパス空気中のエバポガスの濃度が低い場合には、パージ率を上げれば上げる程、内燃機関の燃焼室に吸入される混合気の空燃比が大きくなって、それに伴ってパージ率を上げれば上げる程小さくなるべきＦＡＦ値が逆に大きくなり、エバポガスの初回濃度を検出することが不可能になる。そこで、この実施例においては、図２３に示すように、ＦＡＦの判定領域として図１０のものに対し、パージ率を変化させる前のＦＡＦＢより大きな領域を付加し、この領域では初回濃度の検出を禁止する。そのため、この実施例においては、上述した図１〜図１８に示す実施例に対し、図９の初期濃度検出用パージ制御サブルーチンを図２４のものに、図１２のエバポ濃度検出を図２５のものに、図１６のパージソレノイド弁制御を図２６のものに入れ換えたものである。
【００４７】
ここで、図２４においては図９のものに対し、領域確認ステップＳ９１５としてＦＡＦＢより大きな領域を付加し、さらに、この領域と判断したときにはステップＳ９２０へ進んで、パージ率を０とした後、ステップＳ９２１へ進んで領域４フラグＸＲＹＵ４を１にした後リターンするようにしたものである。また、図２５においては図１２のものに対し、ステップＳ１２１の前に、領域４確認ステップＳ１２６を挿入し、このステップＳ１２６で領域４フラグＸＲＹＵ４が１でないと判断したときには、ステップＳ１２１に進んで以後図１２と同じ動作をし、ステップＳ１２６で領域４フラグＸＲＹＵ４が１であると判断したときには、ステップＳ１２７に進んでエバポ濃度を１．０に設定した後リターンするようにしたものである。さらに、図２６においては図１６のものに対し、ステップＳ１６１の前に領域４確認ステップＳ１６５を挿入し、このステップＳ１６５で領域４フラグＸＲＹＵ４が１でないと判断したときには、ステップＳ１６１に進んで以後図１６と同じ動作をし、ステップＳ１６５で領域４フラグＸＲＹＵ４が１であると判断したときには、ステップＳ１６３に進むようにしたものである。
【図面の簡単な説明】
【図１】本発明の一実施例を示す全体構成図である。
【図２】上記実施例におけるパージソレノイド弁の特性図である。
【図３】上記実施例における全開パージ率マップである。
【図４】上記実施例における空燃比フィードバック制御のフローチャートである。
【図５】上記実施例におけるパージ率制御のフローチャートである。
【図６】上記実施例における通常パージ率制御サブルーチンのフローチャートである。
【図７】（ａ）〜（ｅ）は上記実施例における通常パージ率制御サブルーチンに用いられる各種特性図である。
【図８】上記実施例における燃料カット時パージ率制御サブルーチンのフローチャートである。
【図９】上記実施例における初期濃度検出用パージ率制御サブルーチンのフローチャートである。
【図１０】上記実施例における初期濃度検出用パージ率制御サブルーチンに用いられる領域判定特性図である。
【図１１】上記実施例における濃度更新用パージ率制御サブルーチンのフローチャートである。
【図１２】上記実施例におけるエバポ濃度検出のフローチャートである。
【図１３】上記実施例における初回濃度検出サブルーチンのフローチャートである。
【図１４】上記実施例における濃度更新サブルーチンのフローチャートである。
【図１５】上記実施例における燃料噴射量制御のフローチャートである。
【図１６】上記実施例におけるパージソレノイド弁制御のフローチャートである。
【図１７】上記実施例における空燃比学習制御のフローチャートである。
【図１８】上記実施例における空燃比フィードバック制御上下限チェックサブルーチンのフローチャートである。
【図１９】上記実施例における各部波形を示すタイムチャートである。
【図２０】本発明装置の他の実施例Ａにおける各部波形を示すタイムチャートである。
【図２１】上記他の実施例Ａにおける燃料噴射量制御のフローチャートである。
【図２２】上記他の実施例Ａにおける濃度更新サブルーチンのフローチャートである。
【図２３】本発明装置の他の実施例Ｂにおける初期濃度検出用パージ率制御サブルーチンに用いられる領域判定特性図である。
【図２４】上記他の実施例Ｂにおける初期濃度検出用パージ率制御サブルーチンのフローチャートである。
【図２５】上記他の実施例Ｂにおけるエバポ濃度検出のフローチャートである。
【図２６】上記他の実施例Ｂにおけるパージソレノイド弁制御のフローチャートである。
【符号の説明】
１  多気筒エンジン
２  吸気管
５  スロットル弁
５ａ  スロットルセンサ
５Ｂ  吸気圧センサ
６  酸素センサ
７  燃料タンク
１３  キャニスタ
１５  放出通路
１６  パージソレノイド弁
２１  ＣＰＵ
【図１】
0003731491.tif 000002
【図２】
0003731491.tif 000003
【図３】
0003731491.tif 000004
【図４】
0003731491.tif 000005
【図５】
0003731491.tif 000006
【図６】
0003731491.tif 000007
【図７】
0003731491.tif 000008
【図８】
0003731491.tif 000009
【図９】
0003731491.tif 000010
【図１０】
0003731491.tif 000011
【図１１】
0003731491.tif 000012
【図１２】
0003731491.tif 000013
【図１３】
0003731491.tif 000014
【図１４】
0003731491.tif 000015
【図１５】
0003731491.tif 000016
【図１６】
0003731491.tif 000017
【図１７】
0003731491.tif 000018
【図１８】
0003731491.tif 000019
【図１９】
0003731491.tif 000020
【図２０】
0003731491.tif 000021
【図２１】
0003731491.tif 000022
【図２２】
0003731491.tif 000023
【図２３】
0003731491.tif 000024
【図２４】
0003731491.tif 000025
【図２５】
0003731491.tif 000026
【図２６】
0003731491.tif 000027