(57)【特許請求の範囲】
【請求項１】
燃料タンクと内燃機関の吸気管とを連通する通路に、前記燃料タンク内の燃料が蒸発して生じた燃料蒸発ガスを吸着するキャニスタと、このキャニスタから前記吸気管への燃料蒸発ガスのパージを制御するパージ制御弁とを設け、異常診断時に少なくとも前記燃料タンクと前記キャニスタとを含むパージ系内に吸気管負圧を導入して密閉したときの該パージ系の圧力又はその後の圧力変化量を検出してその検出値に基づいて前記パージ系の異常の有無を診断する異常診断手段を備えた燃料蒸発ガスパージシステムにおいて、
少なくともアイドル中の異常診断時に前記パージ系内に吸気管負圧を導入する際に吸気管負圧導入に伴う空燃比のずれを抑えるように前記内燃機関への燃料噴射量を見込み補正する見込み補正手段と、
吸気温、外気温、冷却水温の少なくとも１つを検出する温度検出手段と、
始動時に前記温度検出手段により検出した温度に基づいて始動時の燃料タンク内の雰囲気温度を推定し、この推定温度を始動後の車両走行状態と始動後経過時間の少なくとも一方に基づいて補正して現在の燃料タンク内の雰囲気温度を求める雰囲気温度推定手段とを備え、
前記見込み補正手段は、前記現在の燃料タンク内の雰囲気温度に基づいて吸気管負圧導入時の見込み補正量を設定することを特徴とする燃料蒸発ガスパージシステム。
【請求項２】
前記見込み補正手段は、吸気管負圧導入中の見込み補正量を空燃比フィードバック補正量の偏差又は空燃比フィードバック補正量のなまし値の偏差に基づいて補正することを特徴とする請求項１に記載の燃料蒸発ガスパージシステム。
【請求項３】
パージ中の吸入空気量とパージ流量との比率（以下「パージ率」という）１％当りの空燃比フィードバック補正量偏差を算出し、このパージ率１％当りの空燃比フィードバック補正量偏差とパージ率との乗算により燃料噴射量補正量（以下「エバポ濃度補正量」という）を算出するエバポ濃度補正量算出手段を備え、
前記見込み補正手段は、前記パージ系内に吸気管負圧を導入する際に前記見込み補正量と前記エバポ濃度補正量とによって燃料噴射量を補正することを特徴とする請求項１または２のいずれかに記載の燃料蒸発ガスパージシステム。
【請求項４】
パージ率１％当りの空燃比フィードバック補正量偏差とパージ率との乗算によりエバポ濃度補正量を算出するエバポ濃度補正量算出手段を備え、
前記見込み補正手段は、前記エバポ濃度補正量に基づいて前記見込み補正量を設定することを特徴とする請求項１乃至３のいずれかに記載の燃料蒸発ガスパージシステム。
【請求項５】
前記見込み補正手段は、吸気管負圧導入開始から所定期間遅延して見込み補正を開始し又は吸気管負圧導入開始後に見込み補正量を徐々に増加させることを特徴とする請求項１乃至４のいずれかに記載の燃料蒸発ガスパージシステム。
【請求項６】
少なくともアイドル中の異常診断時に前記パージ系内に吸気管負圧を導入する際又はその前に機関回転数を増加させて吸入空気量を増加させる異常診断時回転数増加制御手段を備えていることを特徴とする請求項１に記載の燃料蒸発ガスパージシステム。
【請求項７】
前記異常診断時回転数増加制御手段は、前記機関回転数の増加量を、吸気温、外気温、冷却水温、燃料蒸発ガス濃度学習値、空燃比フィードバック補正量偏差、空燃比フィードバック補正量のなまし値の偏差の少なくとも１つに基づいて設定することを特徴とする請求項６に記載の燃料蒸発ガスパージシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、燃料タンク内の燃料が蒸発して生じた燃料蒸発ガス（エバポガス）を内燃機関の吸気管にパージ（放出）する燃料蒸発ガスパージシステムに関するものである。
【０００２】
【従来の技術】
従来より、燃料蒸発ガスパージシステムにおいては、燃料タンク内から発生する燃料蒸発ガスが大気中に漏れ出すことを防止するため、燃料タンク内の燃料蒸発ガス通路を通してキャニスタ内に吸着すると共に、このキャニスタ内に吸着されている燃料蒸発ガスを内燃機関の吸気管へパージするパージ通路の途中にパージ制御弁を設け、内燃機関の運転状態に応じてパージ制御弁の開閉を制御することによって、キャニスタから吸気管へパージする燃料蒸発ガスのパージ流量を制御するようになっている。この燃料蒸発ガスパージシステムから大気中に燃料蒸発ガスが漏れる異常が長期間放置されるのを防止するために、燃料蒸発ガスの漏れを早期に検出する必要がある。
【０００３】
そこで、例えば特開平５−１２５９９７号公報に示すように、燃料蒸発ガスのパージ系内に大気圧又は吸気管負圧を導入・密閉したときの該パージ系の圧力又はその後の圧力変化量に基づいて該パージ系の圧力漏れ等の異常の有無を診断するようにしたものがある。
【０００４】
このものでは、異常診断の際にパージ系内に吸気管負圧を導入すると、キャニスタから燃料蒸発ガスが吸気管内に流入するため、燃料蒸発ガス発生量が多い場合には、空燃比がリッチ側にずれてドライバビリティやエミッションに悪影響を及ぼしてしまう。
【０００５】
そこで、特開平６−４２４１５号公報、特開平６−７４１０４号公報に示すように、燃料タンク内圧、燃料温度、空燃比フィードバック補正量に基づいて燃料蒸発ガス発生量を求め、燃料蒸発ガス発生量が多い場合には、異常診断（パージ系内への吸気管負圧の導入）を禁止するようにしたものがある。
【０００６】
しかしながら、外気温が高くなる夏季には、燃料蒸発ガス発生量が多くなるため、上記公開公報のシステムのように、燃料蒸発ガス発生量が多いときに常に異常診断を禁止すると、夏季には異常診断の実行頻度が極端に少なくなってしまう。このため、夏季には実際にパージ系にリーク等の異常が発生していても、その異常の発見が遅れてしまい、その間に故障箇所から燃料蒸発ガスが大気中に放散されてしまうおそれがある。
【０００７】
そこで、夏季等の燃料蒸発ガス発生量が多い時でも、異常診断を実施できるようにするために、特開平９−６８１１２号公報に示すように、パージ系内に吸気管負圧を導入する際にキャニスタから離脱する燃料蒸発ガスのパージ流量に応じて燃料噴射量を補正することが提案されている。
【０００８】
【発明が解決しようとする課題】
ところで、通常のパージ実行時には、キャニスタに設けられた大気閉塞弁を開放してキャニスタを大気に連通させるため、燃料タンク内には吸気管負圧が導入されない。このため、燃料タンク内の燃料蒸発ガスがパージされることはなく、キャニスタから離脱した燃料蒸発ガス成分のみがパージされる。これに対し、異常診断時にパージ系内に吸気管負圧を導入する場合には、キャニスタの大気閉塞弁を閉塞して燃料タンク内にも吸気管負圧を導入するため、燃料タンク内に充満した高濃度の燃料蒸発ガスも吸気管にパージされてしまう。
【０００９】
しかし、上記公報では、吸気管負圧導入時の燃料噴射量の補正を、キャニスタから離脱する燃料蒸発ガスのパージ流量に基づいて行っているため、燃料タンクからの燃料蒸発ガスのパージによる影響が考慮されておらず、燃料タンクからの燃料蒸発ガスのパージによって空燃比がずれてしまう。特に、アイドル時には、吸入空気量が少ないため、燃料タンクからの燃料蒸発ガスのパージによる影響が相対的に大きくなり、空燃比がリッチ側に大きくずれてエミッションやドライバビリティが悪化してしまう。
【００１０】
このような事情から、従来は、走行中に異常診断を行うようにしているが、走行中の異常診断のみでは、異常診断の頻度が少なくなり、異常の発見が遅れてしまうおそれがある。従って、異常の早期発見のためには、走行中のみだけでなく、アイドル中にも異常診断を行うことが望ましい。
【００１１】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、アイドル中にパージ系の異常診断を行っても、空燃比がリッチ側に大きくずれることがなく、アイドル中でも、エミッションやドライバビリティを悪化させずにパージ系の異常を早期発見することができる燃料蒸発ガスパージシステムを提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１の燃料蒸発ガスパージシステムでは、少なくともアイドル中の異常診断時にパージ系内に吸気管負圧を導入する際に、吸気管負圧導入に伴う空燃比のずれを抑えるように燃料噴射量を見込み補正手段によって見込み補正する。つまり、吸気管負圧導入時に燃料タンクからの燃料蒸発ガスのパージによる影響も考慮して燃料噴射量を見込み補正する。これにより、アイドル中にパージ系の異常診断を行っても、燃料タンクからの燃料蒸発ガスのパージによる影響を見込み補正によって少なくすることができて、空燃比がリッチ側に大きくずれることを防止でき、エミッションやドライバビリティを悪化させずに、パージ系の異常を早期発見することができる。
【００１３】
更に、燃料タンク内の雰囲気温度に応じて燃料タンク内の燃料蒸発ガスの濃度が変化することを考慮し、請求項１に係る発明では、燃料タンク内の雰囲気温度に基づいて吸気管負圧導入時の見込み補正量を設定している。このようにすれば、燃料タンク内の雰囲気温度から燃料タンク内の燃料蒸発ガスの濃度を推定して見込み補正量を設定することができ、燃料タンクからパージされる実際の燃料蒸発ガスの濃度に応じた精度の良い見込み補正を行うことができる。
【００１４】
また、燃料タンク内の雰囲気温度は、燃料タンク内に設置した温度センサによって直接検出するようにしても良いが、吸気温、外気温、冷却水温に応じて燃料タンク内の雰囲気温度が変化することを考慮し、請求項１に係る発明では、吸気温、外気温、冷却水温の少なくとも１つを検出する温度検出手段を設け、始動時に検出した温度に基づいて始動時の燃料タンク内の雰囲気温度を推定し、この推定温度を始動後の車両走行状態と始動後経過時間の少なくとも一方に基づいて補正して現在の燃料タンク内の雰囲気温度を求めるようにしている。このようにすれば、車両に従来から搭載されている吸気温センサ、外気温センサ、冷却水温センサの出力信号から燃料タンク内の雰囲気温度を推定することができ、燃料タンク内に新たに温度センサを設置する必要がなく、低コスト化の要求を満たすことができる。
【００１５】
また、請求項２のように、吸気管負圧導入中の見込み補正量を、空燃比フィードバック補正量の偏差又は空燃比フィードバック補正量のなまし値の偏差に基づいて補正するようにしても良い。このようにすれば、吸気管負圧導入中（見込み補正実施中）の空燃比のずれを精度良く修正することができ、異常診断時の空燃比制御を更に安定させることができる。
【００１６】
また、請求項３のように、パージ中の吸入空気量とパージ流量との比率（以下「パージ率」という）１％当りの空燃比フィードバック補正量偏差を算出し、このパージ率１％当りの空燃比フィードバック補正量偏差とパージ率との乗算により燃料噴射量補正量（以下「エバポ濃度補正量」という）をエバポ濃度補正量算出手段によって算出し、パージ系内に吸気管負圧を導入する際に前記見込み補正量と前記エバポ濃度補正量とによって燃料噴射量を補正するようにしても良い。このようにすれば、異常診断時にパージ系内に吸気管負圧を導入する際に、燃料タンクからの燃料蒸発ガスのパージ流量とキャニスタから離脱した燃料蒸発ガスのパージ流量の双方を考慮して、燃料噴射量を見込み補正することができ、燃料タンクを含むパージ系全体の燃料蒸発ガスのパージ流量に応じた精度の良い見込み補正を行うことができる。
【００１７】
或は、請求項４のように、エバポ濃度補正量に基づいて見込み補正量を設定するようにしても、ほぼ同様の効果が得られる。
【００１８】
また、吸気管負圧導入開始後に燃料タンク内の燃料蒸発ガスが配管を通って吸気管に到達するまでに時間遅れがあることを考慮し、請求項５のように、見込み補正を吸気管負圧導入開始から所定期間遅延して開始し又は吸気管負圧導入開始後に見込み補正量を徐々に増加させるようにしても良い。このようにすれば、燃料タンク内の燃料蒸発ガスが吸気管に到達するタイミングに合わせて見込み補正を開始することができ、見込み補正の精度を更に向上できる。
【００１９】
また、本発明は、請求項６のように、少なくともアイドル中の異常診断時にパージ系内に吸気管負圧を導入する際又はその前に、異常診断時回転数増加制御手段によって内燃機関の回転数を増加させて吸入空気量を増加させながら、燃料噴射量を見込み補正するようにしても良い。このようにすれば、アイドル中にパージ系の異常診断（燃料タンク内への吸気管負圧の導入）を行っても、吸入空気量を増加させることで、燃料タンクからの燃料蒸発ガスのパージによる影響を少なくすることができて、空燃比がリッチ側に大きくずれることを防止でき、エミッションやドライバビリティを悪化させずに、パージ系の異常を早期発見することができる。しかも、吸入空気量の増加と見込み補正との相乗効果によって異常診断時の空燃比のずれを更に少なくすることができる。
【００２０】
ところで、燃料タンクからパージされる燃料蒸発ガスの濃度が高くなるほど、空燃比のリッチ側へのずれ量が大きくなるため、吸入空気量の増加量を多くして空燃比のリッチ側へのずれ量を少なくする必要がある。燃料タンクからパージされる燃料蒸発ガスの濃度は、吸気温、外気温、冷却水温に応じて変化し、また、この燃料蒸発ガスの濃度は、燃料蒸発ガス濃度学習値や、空燃比フィードバック補正量偏差によって推定することが可能である。
【００２１】
このような事情を考慮し、請求項７のように、吸気管負圧導入の際又はその前に実施する機関回転数の増加（吸入空気量の増加）を、吸気温、外気温、冷却水温、燃料蒸発ガス濃度学習値、空燃比フィードバック補正量偏差、空燃比フィードバック補正量のなまし値の偏差の少なくとも１つに基づいて設定するようにしても良い。このようにすれば、燃料タンクからパージされる実際の燃料蒸発ガスの濃度に応じた適正な吸入空気量の増加量を設定することができ、異常診断時の空燃比のずれを少なくすることができる。
【００２３】
【発明の実施の形態】
［実施形態（１）］
以下、本発明の実施形態（１）を図１乃至図２１に基づいて説明する。まず、図１に基づいてシステム全体の概略構成を説明する。エンジン１１の吸気管１２の上流側にはエアクリーナ１３が設けられ、このエアクリーナ１３を通過した空気がスロットルバルブ１４を通してエンジン１１の各気筒に吸入される。スロットルバルブ１４の開度は、アクセルペダル１５の踏込み量によって調節される。また、吸気管１２には、各気筒毎に燃料噴射弁１６が設けられている。各燃料噴射弁１６には、燃料タンク１７内の燃料（ガソリン）が燃料ポンプ１８により燃料配管１９を介して送られてくる。燃料タンク１７には、燃料タンク１７内の圧力を検出する半導体圧力センサ等の圧力センサ２０が設けられている。
【００２４】
次に、パージ系２１の構成を説明する。燃料タンク１７には、連通管２２を介してキャニスタ２３が接続されている。このキャニスタ２３内には、エバポガスを吸着する活性炭等の吸着体２４が収容されている。また、キャニスタ２３の底面部には、大気に連通する大気連通管２５が設けられ、この大気連通管２５にはキャニスタ閉塞弁２６が取り付けられている。
【００２５】
このキャニスタ閉塞弁２６は、電磁弁により構成され、オフ状態では、スプリング（図示せず）により開弁状態に維持され、キャニスタ２３の大気連通管２５が大気に開放された状態に保たれる。そして、このキャニスタ閉塞弁２６に所定電圧が印加されると、キャニスタ閉塞弁２６が閉弁状態に切り換わり、大気連通管２５が閉塞された状態になる。
【００２６】
一方、キャニスタ２３と吸気管１２との間には、吸着体２４に吸着されている燃料蒸発ガスを吸気管１２にパージ（放出）するためのパージ通路３０ａ，３０ｂが設けられ、このパージ通路３０ａ，３０ｂ間にパージ流量を調整するパージ制御弁３１が設けられている。このパージ制御弁３１は、電磁弁により構成されている。
【００２７】
このパージ制御弁３１のソレノイドコイル（図示せず）には、パルス信号にて電圧が印加され、このパルス信号の周期に対するパルス幅の比率（デューティ比）を調整することによって、パージ制御弁３１の開閉周期に対する開弁時間の比率を調整して、キャニスタ２３から吸気管１２への燃料蒸発ガスのパージ流量を制御するようになっている。
【００２８】
また、燃料タンク１７の給油口１７ａには、リリーフ弁付きの燃料キャップ３８が装着され、燃料タンク内圧が−４０ｍｍＨｇ〜１５０ｍｍＨｇ（リリーフ圧）を越える内圧となった場合にリリーフ弁が開放して圧抜きすようになっている。従って、燃料タンク１７からキャニスタ２３までの区間は、常にこのリリーフ圧範囲内の圧力に抑えられている。
【００２９】
次に、制御系の構成を説明する。制御回路３９は、ＣＰＵ４０、ＲＯＭ４１、ＲＡＭ４２、入出力回路４３等をコモンバス４４を介して相互に接続して構成されている。また、入出力回路４３には、スロットルセンサ４５、アイドルスイッチ４６、車速センサ４７、吸気管圧力センサ４９、冷却水温センサ５０（温度検出手段）、吸気温センサ５１（温度検出手段）等、エンジン運転状態を検出する各種センサが接続され、これら各種センサから入出力回路４３を介して入力される信号及びＲＯＭ４１やＲＡＭ４２内に記憶されたプログラムやデータ等に基づいて、燃料噴射制御、点火制御、燃料蒸発ガスパージ制御、パージ系２１の異常診断等を実行し、燃料噴射弁１６、点火プラグ５２、キャニスタ閉塞弁２６、パージ制御弁３１等に入出力回路４３を介して駆動信号を出力すると共に、パージ系２１の異常を検出した時には警告ランプ５３を点灯して運転者に知らせる。以下、制御回路３９が実行する各種制御について説明する。
【００３０】
［空燃比フィードバック制御］
空燃比フィードバック（Ｆ／Ｂ）制御ルーチンは、図２のフローチャートに従って、例えば４ｍｓｅｃ毎の割込み処理により実行される。本ルーチンの処理が開始されると、まず、ステップ１０１で、フィードバック実行条件が成立しているか否かを判定する。ここで、フィードバック実行条件としては、（１）エンジン始動時でないこと、（２）燃料カット中でないこと、（３）冷却水温ＴＨＷ≧４０℃であること、（４）燃料噴射量ＴＡＵ＞ＴＡＵｍｉｎであること（但しＴＡＵｍｉｎは燃料噴射弁１６の最小燃料噴射量）、（５）排出ガスの酸素濃度を検出する酸素センサ（図示せず）が活性状態であること等があり、これら（１）〜（５）の条件を全て満たす場合に、フィードバック実行条件が成立し、１つでも満たさない条件があれば、フィードバック実行条件が不成立となる。もし、フィードバック実行条件が不成立であれば、ステップ１０２に進み、空燃比補正係数ＦＡＦ（空燃比フィードバック補正量に相当）を「１．０」に設定して本ルーチンを終了する。
【００３１】
一方、フィードバック実行条件が成立している場合には、ステップ１０３に進み、酸素センサの出力を所定の判定レベルと比較して、それぞれ所定時間Ｈ，Ｉ（ｍｓｅｃ）だけ遅らせて空燃比フラグＸＯＸＲを操作する。具体的には、酸素センサ出力がリッチからリーンに反転してからＨ（ｍｓｅｃ）後にＸＯＸＲ＝０（リーンを意味）にセットし、酸素センサ出力がリーンからリッチに反転してからＩ（ｍｓｅｃ）後にＸＯＸＲ＝１（リッチを意味）にセットする。
【００３２】
次のステップ１０４で、上記空燃比フラグＸＯＸＲに基づいて空燃比補正係数ＦＡＦの値を次のように操作する。即ち、空燃比フラグＸＯＸＲが「０」→「１」または「１」→「０」に変化したときに、空燃比補正係数ＦＡＦの値を所定量スキップさせ、空燃比ＸＯＸＲが「１」または「０」を継続しているときに、空燃比補正係数ＦＡＦの積分制御を行なう。この後、ステップ１０５で、空燃比補正係数ＦＡＦの値の上下限チェック（ガード処理）を行い、続くステップ１０６で、空燃比補正係数ＦＡＦを基に、スキップ毎又は所定時間毎になまし（平均化）処理を行なって空燃比補正係数のなまし値ＦＡＦＡＶを算出し、本ルーチンを終了する。
【００３３】
［パージ率制御］
パージ率制御は、図３のフローチャートに従って例えば３２ｍｓｅｃ毎の割込み処理により実行される。処理が開始されると、まず、ステップ２０１で冷却水温ＴＨＷが８０℃以上であるか否かを判定すると共に、ステップ２０２で空燃比フィードバック中であるか否かを判定する。このとき、エンジン暖機後（ＴＨＷ≧８０℃）で且つ通常の空燃比フィードバックが実行されていれば（図２のステップ１０１の条件成立時）、ステップ２０１，２０２が共に「Ｙｅｓ」と判定され、ステップ２０５に進む。
【００３４】
このステップ２０５で、パージ実施フラグＸＰＲＧに「１」をセットした後、ステップ２０６〜２０９で、最終パージ率ＰＧＲ（吸入空気量に対するパージ流量の比率）を次のようにして演算する。まず、ステップ２０６で、吸気管圧力ＰＭとエンジン回転数ＮＥに基づいて図４の二次元マップから全開パージ率ＰＧＲＭＸを読み込む。次のステップ２０７で、目標ＴＡＵ補正量ＫＴＰＲＧをエバポガス濃度平均値ＦＧＰＧＡＶで除算して目標パージ率ＰＧＲＯを算出する（ＰＧＲＯ＝ＫＴＰＲＧ／ＦＧＰＧＡＶ）。
【００３５】
ここで、目標ＴＡＵ補正量ＫＴＰＲＧとは、燃料噴射量ＴＡＵを減量補正する際における最大補正量に相当する。また、エバポガス濃度平均値ＦＧＰＧＡＶは、キャニスタ２３内のエバポガス吸着量に対応しており、後述の処理によって推定され、随時更新されつつＲＡＭ４２に書き込まれている。従って、目標パージ率ＰＧＲＯは、目標ＴＡＵ補正量ＫＴＰＲＧまで一杯に燃料噴射量を減量することを想定したとき、どれだけのエバポガスをパージによって補充したらよいかに対応する。この場合、同じ運転状態であれば、目標パージ率ＰＧＲＯはエバポガス濃度平均値ＦＧＰＧＡＶが大きいほど小さな値となる。尚、本実施形態では、目標ＴＡＵ補正量ＫＴＰＲＧを例えば３０％に設定している。
【００３６】
目標パージ率ＰＧＲＯの算出後、ステップ２０８で、パージ率徐変値ＰＧＲＤを読み込む。ここで、パージ率徐変値ＰＧＲＤとは、パージ率をいきなり大きく変更すると、補正が追いつかず最適な空燃比を保てなくなってしまうため、これを避けるために設けられた制御値である。このパージ率徐変値ＰＧＲＤの設定方法は後述するパージ率徐変制御にて説明する。
【００３７】
このようにして全開パージ率ＰＧＲＭＸ、目標パージ率ＰＧＲＯ、パージ率徐変値ＰＧＲＤが求められたら、ステップ２０９に進み、これらのうちで最小値を最終パージ率ＰＧＲとして決定する。この最終パージ率ＰＧＲにてパージ制御が実施される。この場合、通常はパージ率徐変値ＰＧＲＤにて最終パージ率ＰＧＲが制御され、このパージ率徐変値ＰＧＲＤが増え続ければ、最終パージ率ＰＧＲは全開パージ率ＰＧＲＭＸ又は目標パージ率ＰＧＲＯによって上限ガードされることになる。
【００３８】
一方、前記ステップ２０１でＴＨＷ＜８０℃のとき、或は、ステップ２０２で空燃比フィードバック中でないときには、ステップ２１０に進み、パージ実施フラグＸＰＲＦを「０」にクリアすると共に、続くステップ２１１で、最終パージ率ＰＧＲを「０」にリセットして、本ルーチンを終了する。この最終パージ率ＰＧＲが「０」とということは、エバポガスパージを実施しないことを意味する。つまり、エンジン１１の暖機前等、冷却水温が低い場合（ＴＨＷ＜８０℃）には水温補正によってパージ以外の燃料増量が実施され、パージ率制御は実行されない。
【００３９】
［パージ率徐変制御］
パージ率徐変制御は、図５のフローチャートに従って例えば３２ｍｓｅｃ毎の割込み処理により実行される。処理が開始されると、まずステップ３０１で、パージ実施フラグＸＰＲＧが「１」であるか否かを判定し、ＸＰＲＧ＝０の場合、つまりパージ率制御が実行されない場合には、ステップ３０６に進み、パージ率徐変値ＰＧＲＤを「０」として本ルーチンを終了する。
【００４０】
一方、ＸＰＲＧ＝１の場合には、ステップ３０２に進み、空燃比補正係数ＦＡＦのズレ量｜１−ＦＡＦＡＶ｜を検出する。このとき、｜１−ＦＡＦＡＶ｜≦５％であれば、ステップ３０３に進み、前回の最終パージ率ＰＦＲ(i-1) に「０．１％」加算した値を今回のパージ率徐変値ＰＦＲＤとする。また、５％＜｜１−ＦＡＦＡＶ｜≦１０％であれば、ステップ３０４に進んで、前回の最終パージ率ＰＧＲ(i-1) を今回のパージ率徐変値ＰＧＲＤとする。｜１−ＦＡＦＡＶ｜＞１０％であれば、ステップ３０５に進んで、前回の最終パージ率ＰＧＲ(i-1) から「０．１％」減算した値を今回のパージ率徐変値ＰＧＲＤとする。パージ率を大きく変更すると補正が追いつかず、最適な空燃比を保てなくなってしまうため、パージ率徐変値ＰＧＲＤによってこの様な問題を避けることは前述した通りである。
【００４１】
［燃料蒸発ガス濃度検出］
燃料蒸発ガス濃度検出は、図６のフローチャートに従って例えば４ｍｓｅｃ毎の割込み処理により実行される。処理が開始されると、まずステップ４０１で、キースイッチ投入時であるか否かを判定する。キースイッチ投入時であれば、ステップ４１２〜４１４で各データを初期化し、燃料蒸発ガス濃度ＦＧＰＧ＝１．０、燃料蒸発ガス濃度平均値ＦＧＰＧＡＶ＝１．０、初回濃度検出終了フラグＸＮＦＧＰＧ＝０にリセットする。ここで、燃料蒸発ガス濃度ＦＧＰＧ＝１．０，燃料蒸発ガス濃度平均値ＦＧＰＧＡＶ＝１．０は、燃料蒸発ガス濃度が「０」であること（換言すればキャニスタ２３に燃料蒸発ガスが全く吸着されていないこと）を意味する。エンジン始動時には初期化により吸着量が「０」に仮定される。初回濃度検出終了フラグＸＮＦＧＰＧ＝０は、エンジン始動後に未だ燃料蒸発ガス濃度が検出されていないことを意味する。
【００４２】
キースイッチ投入後は、ステップ４０２に進み、パージ実施フラグＸＰＲＧが「１」であるか否か、即ちパージ制御が開始されているか否かを判定する。ここで、ＸＰＲＧ＝０（パージ制御開始前）の場合には、そのまま本ルーチンを終了する。一方、ＸＰＲＧ＝１（パージ制御開始後）の場合には、ステップ４０３に進み、車両が加減速中であるか否かを判定する。ここで、加減速中であるか否かの判定は、アイドルスイッチ４６のオフ、スロットルバルブ１４の弁開度変化、吸気管圧力変化、車速変化等の検出結果によって行われる。そして、加減速中であると判定されると、そのまま本ルーチンを終了する。つまり、加減速中（エンジン運転の過渡状態）では燃料蒸発ガス濃度検出が禁止され、誤検出防止が図られる。
【００４３】
また、上述したステップ４０３で、加減速中でないと判定されると、ステップ４０４に進み、初回濃度検出終了フラグＸＮＦＰＧが「１」であるか否か、即ち燃料蒸発ガス濃度の初回検出が終了しているか否かを判定する。ここで、ＸＮＦＧＰＧ＝１（初回濃度検出後）であれば、ステップ４０５に進み、ＸＮＦＰＧ＝０（初回濃度検出前）であればステップ４０５を飛び越してステップ４０６に進む。
【００４４】
最初は、燃料蒸発ガス濃度検出が終了していないので（ＸＮＦＧＰＧ＝０）、ステップ４０４からステップ４０６に進み、空燃比補正係数のなまし値ＦＡＦＡＶが基準値（＝１）に対して所定値ω（例えば２％）以上の偏差を有するか否かを判定する。つまり、燃料蒸発ガスパージによる空燃比のズレ量が小さすぎると燃料蒸発ガス濃度が正しく検出できない。そのため、空燃比のズレ量が小さければ（｜１−ＦＡＦＡＶ｜≦ω）、そのまま本ルーチンを終了する。また、空燃比のズレ量が大きければ（｜１−ＦＡＦＡＶ｜＞ω）、ステップ４０７に進み、次の（１）式により燃料蒸発ガス濃度ＦＧＰＧを検出する。
ＦＧＰＧ＝ＦＧＰＧ(i-1) ＋（ＦＡＦＡＶ−１）／ＰＧＲ  ……（１）
上式において、（ＦＡＦＡＶ−１）は空燃比フィードバック補正量偏差に相当し、ＰＧＲは、図３のステップ２０９で算出された最終パージ率である。
【００４５】
前述のごとく燃料蒸発ガス濃度ＦＧＰＧの初期値は「１」であり、上式により、空燃比がリッチ寄りかまたはリーン寄りかに応じて燃料蒸発ガス濃度ＦＧＰＧが徐々に更新される。この場合、実際の燃料蒸発ガス濃度が高いほど（キャニスタ２３の吸着量が多いほど）、燃料蒸発ガス濃度ＦＧＰＧの値は「１」を基準に減じられる。また、燃料蒸発ガス濃度ＦＧＰＧの値は、実際の燃料蒸発ガス濃度の低下分（キャニスタ２３のパージ量）に応じて増加させられる。具体的には、空燃比がリッチであれば（ＦＡＦＡＶ−１＜０）、燃料蒸発ガス濃度ＦＧＰＧの値は、「ＦＡＦＡＶ−１」を最終パージ率ＰＧＲで除算した値だけ小さくなる。また、空燃比がリーンであれば（ＦＡＦＡＶ−１＞０）、燃料蒸発ガス濃度ＦＧＰＧの値は、「ＦＡＦＡＶ−１」を最終パージ率ＰＧＲで除算した値だけ大きくなる。
【００４６】
その後、ステップ４０８に進み、初回濃度検出終了フラグＸＮＦＧＰＧが初回濃度検出終了を意味する「１」であるか否かを判定する。ここで、ＸＮＦＧＰＧ＝０（初回濃度検出前）であれば、ステップ４０９に進み、燃料蒸発ガス濃度ＦＧＰＧの前回検出値と今回検出値との変化が所定値（例えば３％）以下の状態が例えば３回以上継続したか否かによって、燃料蒸発ガス濃度ＦＧＰＧが安定したか否かを判定する。燃料蒸発ガス濃度ＦＧＰＧが安定すると、次のステップ４１０に進み、初回濃度検出終了フラグＸＮＦＧＰＧに「１」をセットした後、ステップ４１１に進む。
【００４７】
一方、上記ステップ４０８で、ＸＮＦＧＰＧ＝１の場合、又はステップ４０９で燃料蒸発ガス濃度ＦＧＰＧが安定していないと判定された場合、ステップ４１１へジャンプし、今回の燃料蒸発ガス濃度ＦＧＰＧを平均化するために、所定のなまし演算（例えば１／６４なまし演算）を実行し、燃料蒸発ガス濃度平均値ＦＧＰＧＡＶを求める。
【００４８】
このようにして初回濃度検出が終了すると（ＸＮＦＧＰＧ＝１がセットされると）、ステップ４０４が常に「Ｙｅｓ」と判定され、ステップ４０５に進んで、最終パージ率ＰＧＲが所定値β（例えば０％）を越えるか否かを判定する。そして、ＰＧＲ＞βの場合のみ、ステップ４０６以降の燃料蒸発ガス濃度検出を実行する。つまり、パージ実施フラグＸＰＲＧがセットされていても最終パージ率ＰＧＲが「０」となり、実際にはエバポパージが実施されていないことがある。そのため、初回濃度検出時以外は、最終パージ率ＰＧＲ＝０の場合に燃料蒸発ガス濃度の検出を行なわないようにしている。
【００４９】
尚、最終パージ率ＰＧＲが小さい場合、即ちパージ制御弁３１が低流量側で制御されている場合は開度制御の精度が比較的低く、燃料蒸発ガス濃度検出の信頼性が低い。そこで、ステップ４０５の所定値βをパージ制御弁３１の低開度域に設定し（例えば０％＜β＜２％）、初回検出時以外は、精度の良い検出条件が揃った場合のみ、燃料蒸発ガス濃度検出を行うようにしても良い。
【００５０】
［燃料噴射量制御］
燃料噴射量制御は、図７のフローチャートに従って例えば４ｍｓｅｃ毎の割込み処理により実行される。処理が開始されると、まずステップ５０１で、燃料カットフラグＸＦＣが燃料カット不実行を意味する「０」であるか否かを判別し、ＸＦＣ＝１（燃料カット実行）であれば、ステップ５０７に進んで、燃料噴射量ＴＡＵを「０」にして本ルーチンを終了する。これにより、燃料カットが実行される。
【００５１】
一方、ＸＦＣ＝０（燃料カット不実行）であれば、ステップ５０２に進み、ＲＯＭ４１内にマップとして格納されているデータに基づき、エンジン回転数ＮＥと負荷（例えば吸気管圧力ＰＭ）に応じた基本噴射量ＴＰを算出する。そして、次のステップ５０３で、エンジン１１の運転状態に関する各種の補正係数Ｋａ（冷却水温補正係数、始動後補正係数、吸気温補正係数等）を算出する。
【００５２】
その後、ステップ５０５で、空燃比フィードバック補正係数ＦＡＦ、空燃比学習値ＫＧｊ、見込み補正係数ＦＬＥＡＫを用いて次の（３）式により空燃比補正係数Ｋｍを求める。
Ｋｍ＝１＋（ＦＡＦ−１）＋（ＫＧｊ−１）−ＦＬＥＡＫ    ……（３）
【００５３】
ここで、見込み補正係数ＦＬＥＡＫは、パージ系２１の異常診断時にパージ系２１内に吸気管負圧を導入する際に、燃料タンク１７を含むパージ系２１から燃料蒸発ガスが吸気管１２にパージされることによる空燃比のずれを見込み補正するためのものである。この見込み補正係数ＦＬＥＡＫの算出方法については後述する。また、空燃比学習値ＫＧｊはＲＡＭ４２に記憶保持されるバックアップデータであり、各エンジン運転領域毎に設定される係数である。
【００５４】
この後、ステップ５０６で、空燃比補正係数Ｋｍと上記各種補正係数Ｋａを基本噴射量ＴＰに乗算して燃料噴射量ＴＡＵを求める。
ＴＡＵ＝ＴＰ×Ｋｍ×Ｋａ
そして、ＣＰＵ４０は、所定の燃料噴射タイミングで燃料噴射量ＴＡＵに基づいて燃料噴射弁１６による燃料噴射を実行する。上記ステップ５０５，５０６の処理が特許請求の範囲でいう見込み補正手段としての役割を果たす。
【００５５】
［パージ制御弁の制御］
パージ制御弁３１の制御は、図８のフローチャートに従って例えば１００ｍｓｅｃ毎に割込み処理により実行される。処理が開始されると、まずステップ６０１で、パージ実施フラグＸＰＲＧがパージ実施を意味する「１」であるか否かを判定し、ＸＰＲＧ＝０（パージ不実施）であれば、ステップ６０２に進み、パージ制御弁３１を駆動させるための制御値Ｄｕｔｙを「０」とする。また、ＸＰＲＧ＝１（パージ実施）であれば、ステップ６０３に進み、最終パージ率ＰＧＲ及びその時点での運転状態に見合った全開パージ率ＰＧＲＭＸに基づき、次の（４）式により制御値Ｄｕｔｙを算出する。
Ｄｕｔｙ＝（ＰＧＲ／ＰＧＲＭＸ）・（１００−Ｐｖ）・Ｐｐａ＋Ｐｖ……（４）
【００５６】
この式で、パージ制御弁３１の駆動周期は１００ｍｓｅｃに設定されている。また、Ｐｖはバッテリ電圧の変動に対する電圧補正値（駆動周期補正用の時間相当量）であり、Ｐｐａは大気圧の変動に対する大気圧補正値である。上記（４）式で算出された制御値Ｄｕｔｙに基づき、パージ制御弁３１の駆動パルス信号のデューティ比が設定される。
【００５７】
［異常診断］
パージ系２１の異常診断は、キースイッチ（図示せず）が投入されると、図９及び図１０のフローチャートに従って所定時間毎（例えば２５６ｍｓｅｃ毎）に繰り返し実行される。この異常診断ルーチンが特許請求の範囲でいう異常診断手段としての役割を果たす。本ルーチンの処理が開始されると、まず、図９のステップ７０１で、異常診断実行条件が成立しているか否かを判定する。ここで、異常診断実行条件は、エンジン運転状態が安定しているときに成立する。アイドル中であっても、エンジン運転状態が安定していれば、異常診断実行条件が成立する。
【００５８】
もし、この異常診断実行条件が不成立であれば、異常診断を禁止し、図１０のステップ７４１に進んで、キャニスタ閉塞弁２６を全開し、続くステップ７４２で、パージ制御弁３１を通常の制御状態にした後、ステップ７３１に進み、第１〜第４の各フラグＦ１，Ｆ２，Ｆ３を「０」にリセットして本ルーチンを終了する。
【００５９】
一方、上記ステップ７０１で、異常診断実行条件成立と判定されれば、図９のステップ７１０〜７１２に進み、現在の処理がどの段階まで進んでいるか否かを判定しつつ、種々のステップへ分岐する。処理は第１〜第４段階の４つであり、第１〜第３の各フラグＦ１〜Ｆ３の設定状態から処理段階を判断できるようになっている。全てのフラグＦ１〜Ｆ３が「０」に設定されているとき、即ちステップ７１０〜７１２が全て「Ｎｏ」のときが第１段階であり、ステップ７１３に進む。
【００６０】
第１段階では、まずステップ７１３で、パージ制御弁３１を全閉にした後、ステップ７１４で、キャニスタ閉塞弁２６を全閉にして燃料タンク１７から吸気管１２までのパージ系２１を密閉状態にする。即ち、図１１に示すように、まずキャニスタ閉塞弁２６が開放状態のときに時刻Ｔ１でパージ制御弁３１を全閉にすることで、燃料タンク１７からパージ制御弁３１までのパージ経路を大気連通管２５を介して大気圧と同じ圧力に保ち、やや遅れて時刻Ｔ２でキャニスタ閉塞弁２６を全閉にすることで、大気圧に保たれた密閉パージ経路を形成する。
【００６１】
そして、次のステップ７１５で、図１１の時刻Ｔ２での燃料タンク内圧Ｐ1aを読み込み、タイマＴをリセットスタートさせた後、ステップ７１６に進み、タイマＴのカウント値が１０秒以上になったか否かを判定する。１０秒経過前であれば、ステップ７１７に進み、第１フラグＦ１を「１」にセットして本ルーチンを終了する。
【００６２】
これ以後、第２段階の処理となる。この第２段階では、ステップ７１０で「Ｙｅｓ」と判定されるようになり、ステップ７０１→ステップ７１０→ステップ７１６→……と処理を繰り返す。この間、圧力センサ２０の検出値は、図１１の時刻Ｔ２から時刻Ｔ３の間において、燃料タンク１７内での燃料蒸発ガスの発生量に応じて０ｍｍＨｇから上昇する。
【００６３】
その後、時刻Ｔ２（Ｐ1aの検出時点）から１０秒が経過すると、図９のステップ７１８に進み、圧力センサ２０からの入力信号を読み込んで、このときの燃料タンク内圧Ｐ1bを記憶し、続くステップ７１９で、１０秒間の圧力変化量ΔＰ１を算出した後、ステップ７２０で、第１フラグＦ１をリセットする。これによって第２段階の処理が終了し、第３段階へ移る。
【００６４】
この第３段階では、まずステップ７２１で、パージ制御弁３１を全閉から全開状態に切り換え吸気管負圧導入制御を開始すると同時に、ステップ７２２で、タイマＴをリセットスタートする。ここで、パージ制御弁３１が全開されることにより、それ以前の大気圧下のパージ系２１内に吸気管負圧を導入し始める（図１１の時刻Ｔ３）。従って、パージ系２１に圧力漏れ等による異常がなければ、圧力センサ２０の検出値は下降し始める。
【００６５】
次のステップ７２３では、この圧力センサ２０からの入力信号に基づいて燃料タンク内圧ＰＴが−２０ｍｍＨｇ以下になったか否かを判定し、ＰＴ＞−２０ｍｍＨｇであれば、ステップ７３２に進み、パージ制御弁３１の全開後１０秒が経過したか否かを判定する。１０秒経過前であれば、ステップ７３７に進み、第２のフラグＦ２を「１」にセットする。この後、ステップ７３８〜７４０で、パージ系２１への吸気管負圧の導入が安定した状態で行われているか否かを判定する。具体的には、まずステップ７３８で、燃料噴射量補正値ＦＡＦＬＥＡＫが上限ガード値ＫＦＬＥＡＫＭＸ以上であるか否かを判定し、ＦＡＦＬＥＡＫ≧ＫＦＬＥＡＫＭＸであれば、ステップ７３９に進み、空燃比フィードバック補正係数ＦＡＦが±１５％以上であるか否かを判定する。そして、ＦＡＦ≧±１５％であれば、ステップ７４０に進んで、パージ制御弁３１を駆動するための制御値Ｄｕｔｙが８％より小さいか否かを判定する。
【００６６】
これらステップ７３８〜７４０の判定が全て「Ｙｅｓ」の場合、つまり吸気管負圧の導入が不安定の場合には、異常診断を禁止し、キャニスタ閉塞弁２６を全開して（ステップ７４１）、パージ制御弁３１を通常の制御状態に戻し（ステップ７４２）、第１〜第４の各フラグＦ１，Ｆ２，Ｆ３を「０」にリセットして（ステップ７３１）、本ルーチンを終了する。
【００６７】
一方、ステップ７３８〜７４０のいずれかが「Ｎｏ」と判定された場合、つまり燃料噴射量補正値ＦＡＦＬＥＡＫが上限ガード値ＫＦＬＥＡＫＭＸより小さいとき、或は、空燃比フィードバック補正係数ＦＡＦが±１５％より小さいとき、或は、パージ制御弁３１を駆動するための制御値Ｄｕｔｙが８％以上のときには、吸気管負圧の導入が安定しており、本ルーチンを終了する。
【００６８】
尚、吸気管負圧導入制御が、Ｄｕｔｙではなく、パージ率ＰＧＲで行われている場合には、ステップ７４０の判定処理を「ＰＧＲ＜０．２％？」に代え、ＰＧＲ＜０．２％であるとき、異常診断を禁止するようにしても良い。
【００６９】
前述したステップ７３７で、第２のフラグＦ２が「１」にセットされることで、次回以降の本ルーチン実行時には、ステップ７１０で「Ｎｏ」、ステップ７１１で「Ｙｅｓ」と判定されるようになり、ステップ７０１〜７１１→ステップ７２３→……と処理を繰り返す。この状態は、ステップ７２３又はステップ７３２が「Ｙｅｓ」となると終了する。ステップ７３２の方が先に「Ｙｅｓ」となった場合には、燃料タンク１７から吸気管１２までのパージ系２１のどこかに閉塞部分があることを意味し、ステップ７３３で、パージ系詰りフラグＦclose を「１」に設定し、続くステップ７３４で、警告ランプ５３を点灯する。
【００７０】
一方、ステップ７２３の方が先に「Ｙｅｓ」となった場合には、ステップ７２４に進んで、第２のフラグＦ２をリセットし、続くステップ７２５で、パージ制御弁３１を再び全閉にした後、ステップ７２６で、圧力センサ２０からの入力信号を読み込んで、パージ系２１を負圧密閉状態にした直後の燃料タンク内圧Ｐ2aを記憶すると共にタイマＴをリセットスタートする。これによって、第３段階から第４段階に移行する。
【００７１】
上記ステップ７２４〜７２６の処理が実行されることにより、図１１に示すように、時刻Ｔ４でパージ系２１は−２０ｍｍＨｇの負圧状態で密閉された状態となる。これ以後、圧力センサ２０の検出値は、時刻Ｔ４から時刻Ｔ５の間で燃料タンク１７内での燃料蒸発ガスの発生量に応じて−２０ｍｍＨｇから上昇していくことになる。
【００７２】
そして、次のステップ７２７で、Ｐ2aの読み込み後、１０秒が経過したか否かを判定し、１０秒経過前は、ステップ７３５に進み、第３のフラグＦ３を「１」に設定して本ルーチンを終了する。これにより、次回以降の本ルーチン実行時には、ステップ７１０，７１１で「Ｎｏ」、ステップ７１２で「Ｙｅｓ」と判定されるようになり、ステップ７０１〜７１２→ステップ７２７→……と処理を繰り返す。
【００７３】
この後、Ｐ2aの読み込みから１０秒が経過すると、ステップ７２８に進み、圧力センサ２０からの入力信号を読み込んで、時刻Ｔ６での燃料タンク内圧Ｐ2bを記憶し、密閉後１０秒間の圧力変化量ΔＰ2 （＝Ｐ2b−Ｐ2a）を計算する。この後、ステップ７３０で、次の（５）式で示されたリーク判定条件に基づいてリークがあるか否かを判定する。
ΔＰ2 ＞α・ΔＰ1 ＋β    ……（５）
【００７４】
ここで、αは大気圧と負圧の違いによる燃料蒸発量の差を補正する係数、βは圧力センサ２０の検出精度、キャニスタ閉塞弁２６の圧力漏れなどを補正する係数である。上記（５）式を満たせば、「リーク有り」と判定される。即ち、燃料タンク１７からパージ制御弁３１までの密閉区間にリーク原因があるならば、正圧下では密閉区間から大気中への流出が起こる一方、負圧下では大気中から密閉区間への空気の流入が起こる。従って、「（大気圧下の圧力変化量ΔＰ1 ）＝（燃料タンク１７からの燃料蒸発ガスの発生量）−（密閉区間から大気中への流出量）」よりも「（負圧下の圧力変化量ΔＰ2 ）＝（燃料タンク１７からの燃料蒸発ガスの発生量）＋（大気中から密閉区間への流入量）」の方が大きくなる。この関係から、上記（５）式のリーク判定条件が導き出されたものである。
【００７５】
上記（５）式のリーク判定条件を満足する場合、つまりステップ７３０で「リーク有り」と判定された場合には、燃料タンク１７から吸気管１２までのパージ経路のどこかにリーク原因となる部分があることを意味し、ステップ７３６で、パージ経路リークフラグＦleakを「１」に設定し、続くステップ７３４で、警告ランプ５３を点灯する。一方、ステップ７３０で「Ｎｏ」と判定された場合、つまりリークが発生していない場合には、ステップ７３１に進み、第１〜第３の各フラグＦ１〜Ｆ３を強制的にリセットして本ルーチンを終了する。
【００７６】
［見込み補正係数算出］
前述した図７の燃料噴射量制御ルーチンのステップ５０５で用いる見込み補正係数ＦＬＥＡＫは、次のいずれかの方法で算出される。
【００７７】
《見込み補正の第１例》
図１２のフローチャートに従って例えば４ｍｓｅｃ毎の割込み処理により次のようにして見込み補正係数ＦＬＥＡＫが算出される。まず、ステップ５１１で、後述する第２のフラグＦ２が吸気管負圧導入中を意味する「１」であるか否かを判定し、Ｆ２＝０の場合（吸気管負圧導入中でない場合）には、見込み補正は不要であるので、ステップ５１２に進み、見込み補正係数ＦＬＥＡＫを０に維持して、本ルーチンを終了する。
【００７８】
これに対し、上記ステップ５１１で、Ｆ２＝１（吸気管負圧導入中）の場合には、ステップ５１３に進み、吸気温センサ５１で検出した吸気温を読み込んだ後、ステップ５１４に進み、図１３に示す吸気温をパラメータとする見込み補正係数ＦＬＥＡＫのテーブルを検索して、その時の吸気温に応じた見込み補正係数ＦＬＥＡＫを求めて、見込み補正を実施する。
【００７９】
この場合、吸気温に応じて燃料タンク１７内の雰囲気温度ひいては燃料タンク１７内の燃料蒸発ガスの濃度が変化し、燃料蒸発ガスの濃度によって吸気管負圧導入時の空燃比のずれ量が変化することを考慮し、吸気温から見込み補正係数ＦＬＥＡＫを求めるものである。
【００８０】
その後、吸気管負圧導入が終了すると（Ｆ２＝０になると）、ステップ５１２に進み、見込み補正係数ＦＬＥＡＫを０にセットして見込み補正を終了する。
【００８１】
本例では、図１４に示すように、異常診断実行条件成立時にキャニスタ閉塞弁２６を全閉にし、パージ制御弁３１を開放して、パージ系２１内に吸気管負圧の導入を開始すると同時に、見込み補正係数ＦＬＥＡＫを、吸気温に応じた値に設定して、空燃比補正係数Ｋｍを見込み補正係数ＦＬＥＡＫの分だけリーン側にオフセットさせる。これにより、吸気管負圧導入時には、燃料噴射量が見込み補正係数ＦＬＥＡＫの分だけリーン側に補正され、燃料タンク１７からの燃料蒸発ガスのパージによる空燃比のリッチ側へのずれが抑えられる。この結果、アイドル中にパージ系２１の異常診断を行っても、空燃比がリッチ側に大きくずれることが防止され、エミッションやドライバビリティを悪化させずに、パージ系２１の異常を早期発見することができる。
【００８２】
尚、見込み補正係数ＦＬＥＡＫを求めるパラメータとして、吸気温に代えて、外気温又は冷却水温を用いても良く、或は、吸気温、外気温、冷却水温のうちから２つ以上を用いても良い。
また、見込み補正係数ＦＬＥＡＫを変化させずに常に固定値（例えば平均的な値）を用いるようにしても良い。
【００８３】
《見込み補正の第２例》
上記第１例では、吸気温から直接、見込み補正係数ＦＬＥＡＫを求めたが、第２例では、図１５のフローチャートに従って燃料タンク１７内の雰囲気温度を推定して、この雰囲気温度から見込み補正係数ＦＬＥＡＫを求める。以下、図１５のルーチンの処理内容を具体的に説明する。
【００８４】
本ルーチンも、例えば４ｍｓｅｃ毎の割込み処理により実行される。処理が開始されると、まずステップ５２１で、燃料タンク１７内の雰囲気温度を次式により推定する。
【００８５】
雰囲気温度＝始動時雰囲気温度Ｔｏ＋始動後上昇温度ΔＴ
ここで、始動時雰囲気温度Ｔｏは、始動時の吸気温、外気温、冷却水温、過去の最低吸気温の少なくとも１つから推定した始動時の燃料タンク１７内の雰囲気温度である。この始動時雰囲気温度Ｔｏは、始動時に算出されてＲＡＭ４２に記憶され、その後は、ＲＡＭ４２の記憶値が用いられる。
【００８６】
始動後上昇温度ΔＴは、始動後に生じた燃料タンク１７内の雰囲気温度の上昇量である。この始動後上昇温度ΔＴは、例えば次の▲１▼又は▲２▼のいずれかの方法で算出される。
【００８７】
▲１▼図１６（ａ）のテーブルを検索して始動後の経過時間に応じて燃料温度上昇量ΔＴ１を算出すると共に、図１６（ｂ）のテーブルを検索して平均車速に応じて燃料温度上昇量ΔＴ２を算出する。この後、２つの燃料温度上昇量ΔＴ１，ΔＴ２を加算して始動後上昇温度ΔＴを求める（ΔＴ＝ΔＴ１＋ΔＴ２）。尚、図１６（ｂ）のテーブルのパラメータとして、平均車速に代えて、平均エンジン回転数、平均負荷、その他の車両走行状態データのいずれかを用いても良く、或は、これらの中から２つ以上のパラメータを用いても良い。
【００８８】
▲２▼現在の車速と、その車速が継続する時間とをパラメータとして、図１７の二次元マップから温度上昇量を求め、この温度上昇量を始動時から積算して始動後上昇温度ΔＴを求める。この場合も、車速に代えて、エンジン回転数、負荷等の他の車両走行状態データを用いても良い。
【００８９】
以上のようにして、ステップ５２１で、燃料タンク１７内の雰囲気温度を推定した後、ステップ５２２で、Ｆ２＝１（吸気管負圧導入中）と判定されれば、ステップ５２４に進み、図１８に示す雰囲気温度をパラメータとする見込み補正係数ＦＬＥＡＫのテーブルを検索し、上記ステップ５２１で推定した雰囲気温度に応じた見込み補正係数ＦＬＥＡＫを求めて、見込み補正を実施する。その後、吸気管負圧導入が終了すると（Ｆ２＝０になると）、ステップ５２３に進み、見込み補正係数ＦＬＥＡＫを０にセットして見込み補正を終了する。
【００９０】
上記燃料タンク１７内の雰囲気温度を推定するステップ５２１の処理は、特許請求の範囲でいう雰囲気温度推定手段としての役割を果たす。
【００９１】
《見込み補正の第３例》
吸気管負圧導入の際に、図１９に示す燃料蒸発ガス濃度学習値をパラメータとする見込み補正係数ＦＬＥＡＫのテーブルを検索して、その時の燃料蒸発ガス濃度学習値に応じた見込み補正係数ＦＬＥＡＫを求める。ここで、燃料蒸発ガス濃度学習値は、前述した図６の燃料蒸発ガス濃度検出ルーチンによって検出された燃料蒸発ガス濃度を学習して求められる。
【００９２】
《見込み補正の第４例》
上述したいずれかの方法で算出した見込み補正係数ＦＬＥＡＫを、吸気管負圧導入中に、空燃比フィードバック補正係数ＦＡＦの偏差（ＦＡＦ−１）によって次式により補正する。
ＦＬＥＡＫ＝ＦＬＥＡＫ−（ＦＡＦ−１）
【００９３】
このようにして求めた見込み補正係数ＦＬＥＡＫを用いた場合の制御例を図２０に基づいて説明する。吸気管負圧の導入を開始すると同時に、見込み補正係数ＦＬＥＡＫがステップ的に入り、その後は、見込み補正係数ＦＬＥＡＫが空燃比フィードバック補正係数の偏差（ＦＡＦ−１）に応じて補正される。このようにすれば、吸気管負圧導入中（見込み補正実施中）に、空燃比がずれ始めたとしても、その空燃比のずれに応じて見込み補正係数ＦＬＥＡＫが適正化され、空燃比のずれが修正される。
【００９４】
《見込み補正の第５例》
空燃比フィードバック補正係数ＦＡＦの偏差（ＦＡＦ−１）に代えて、前記図２のステップ１０６で算出した空燃比フィードバック補正係数なまし値ＦＡＦＡＶの偏差（ＦＡＦＡＶ−１）を用いて、吸気管負圧導入中に見込み補正係数ＦＬＥＡＫを次式により補正する。
ＦＬＥＡＫ＝ＦＬＥＡＫ−（ＦＡＦＡＶ−１）
【００９５】
この場合も、図２１に示すように、吸気管負圧導入中に、空燃比がずれ始めたとしても、その空燃比のずれに応じて見込み補正係数ＦＬＥＡＫが適正化され、空燃比のずれが修正される。
【００９６】
［参考例（１）］
次に、図２２及び図２３に基づいて参考例（１）を説明する。この参考例（１）では、図２２の燃料噴射量制御ルーチンによって次のようにして燃料噴射量ＴＡＵを算出する。本願発明の実施形態（１）と同じく、ステップ５０１〜５０３において、ＸＦＣ＝０（燃料カット不実行）の場合に、基本噴射量ＴＰを算出し、エンジン１１の運転状態に関する各種の補正係数Ｋａを算出する。
【００９７】
この後、ステップ５０４で、図６のルーチンで算出した燃料蒸発ガス濃度ＦＧＰＧＡＶと図３のルーチンで算出した最終パージ率ＰＧＲとを用いてパージ補正係数ＦＰＧを次式により算出する。
ＦＰＧ＝（ＦＧＰＧＡＶ−１）・ＰＧＲ
【００９８】
このパージ補正係数ＦＰＧは、パージ率制御処理によって決定された条件でパージを実行することによってキャニスタ２３から補充される燃料量を意味し、この係数の相当量が基本噴射量ＴＰから減量補正されることになる。上式において、「ＦＧＰＧＡＶ−１」は、特許請求の範囲でいう「パージ率１％当りの空燃比フィードバック補正量偏差」に相当し、パージ補正係数ＦＰＧは、特許請求の範囲でいうエバポ濃度補正量に相当する。従って、パージ補正係数ＦＰＧを算出するステップ５０４の処理は、特許請求の範囲でいうエバポ濃度補正量算出手段としての役割を果たす。
【００９９】
パージ補正係数ＦＰＧの算出後、ステップ５０５で、空燃比フィードバック補正係数ＦＡＦ、空燃比学習値ＫＧｊ、パージ補正係数ＦＰＧ、見込み補正係数ＦＬＥＡＫから次式により空燃比補正係数Ｋｍを求める。
Ｋｍ＝１＋（ＦＡＦ−１）＋（ＫＧｊ−１）＋ＦＰＧ−ＦＬＥＡＫ
その他の処理は、前記実施形態（１）で説明した図７の処理と同じである。
【０１００】
以上説明した参考例（１）では、図２３に示すように、吸気管負圧導入開始後に、見込み補正係数ＦＬＥＡＫに加え、パージ補正係数ＦＰＧによる補正も加えられる。このため、吸気管負圧導入開始後に、キャニスタ２３から離脱する燃料蒸発ガスのパージによる影響も考慮され、空燃比のリッチ側へのずれが効果的に抑えられる。
【０１０１】
［参考例（２）］
上記実施形態（１），参考例（１）では、いずれも、吸気管負圧の導入開始と同時に見込み補正を開始するようにしたが、図２４乃至図２６に示す参考例（２）では、吸気管負圧導入開始後に燃料タンク１７内の燃料蒸発ガスが配管を通って吸気管１２に到達するまでに時間遅れがあることを考慮し、吸気管負圧導入開始から所定の遅延時間遅延して見込み補正を開始する。
【０１０２】
この処理は、図２４の見込み補正係数算出ルーチンによって次のように行われる。吸気管負圧の導入が開始されると（Ｆ２＝１になると）、ステップ５３１からステップ５３２に進み、吸気管負圧導入開始から所定の遅延時間経過しているか否かを判定し、所定の遅延時間経過していなければ、ステップ５３４に進み、見込み補正係数ＦＬＥＡＫを０に維持して、見込み補正を開始しない。
【０１０３】
ここで、遅延時間は、一定時間でも良いが、本実施形態（３）では、図２５に示す燃料蒸発ガス濃度学習値をパラメータとする遅延時間のテーブルを検索し、その時の燃料蒸発ガス濃度学習値に応じた適切な遅延時間を設定する。尚、遅延時間を設定するパラメータとして、燃料蒸発ガス濃度学習値に代えて、吸気温、外気温、冷却水温、燃料タンク１７内の雰囲気温度のいずれかを用いても良く、或は、これらの中から２つ以上を用いても良い。
【０１０４】
そして、吸気管負圧導入開始から所定の遅延時間経過した時点で、ステップ５３２からステップ５３３に進み、前記実施形態（１）で説明したいずれかの見込み補正係数算出方法で見込み補正係数ＦＬＥＡＫを算出し、見込み補正を開始する。
その後、吸気管負圧導入が終了すると（Ｆ２＝０になると）、ステップ５３４に進み、見込み補正係数ＦＬＥＡＫを０にセットして見込み補正を終了する。
【０１０５】
以上説明した参考例（２）では、図２６に実線で示すように吸気管負圧導入開始から所定の遅延時間遅延して見込み補正を開始するため、燃料タンク１７内の燃料蒸発ガスが吸気管１２に到達するタイミングに合わせて見込み補正を開始することができ、見込み補正の精度を更に向上できる。
【０１０６】
尚、参考例（２）のように、吸気管負圧導入開始と同時（パージ制御弁３１が開き始めると同時）に遅延時間の計時を開始しても良いが、パージ制御弁３１の制御値Ｄｕｔｙが所定値以上（所定開度以上）になってから遅延時間の計時を開始するようにしても良い。
【０１０７】
また、見込み補正を遅延させる処理に代えて、図２６に点線で示すように、吸気管負圧導入開始後に見込み補正係数ＦＬＥＡＫを徐々に増加させる徐変処理を実施するようにしても良く、この場合も、遅延処理とほぼ同様の効果を得ることができる。徐変処理の開始タイミングは、▲１▼吸気管負圧導入開始と同時（パージ制御弁３１が開き始めると同時）、▲２▼パージ制御弁３１の制御値Ｄｕｔｙが所定値以上になった時、▲３▼所定の遅延時間経過後のいずれであっても良い。徐変パターン（見込み補正係数ＦＬＥＡＫの増加率）は、一定でも良いが、上述した遅延時間の設定と同様に、燃料蒸発ガス濃度学習値、吸気温、外気温、冷却水温、燃料タンク１７内の雰囲気温度のいずれか１つ以上を用いて設定しても良い。
【０１０８】
［参考例（３）］
上記実施形態（１）、上記参考例（１）〜（２）では、吸気管負圧導入中に燃料噴射量を見込み補正するようにしたが、参考例（３）では、異常診断時にパージ系２１内に吸気管負圧を導入する際又はその前に、エンジン回転数ＮＥを増加させて吸入空気量を増加させることで、燃料タンク１７からの燃料蒸発ガスのパージによる影響を少なくする。
【０１０９】
この制御は、図２７に示す異常診断時回転数増加制御ルーチンによって例えば４ｍｓｅｃ毎の割込み処理にて実行される。本ルーチンの処理が開始されると、まずステップ８０１で、異常診断実行条件が成立しているか否かを判定し、異常診断実行条件が不成立であれば、以降の処理を行うことなく、本ルーチンを終了する。
【０１１０】
その後、異常診断実行条件が成立した時に、ステップ８０１からステップ８０２に進み、エンジン回転数ＮＥを増加させるタイミングであるか否かを判定する。ここで、エンジン回転数ＮＥを増加させるタイミングは、図２９に示すように、▲１▼キャニスタ閉塞弁２６の閉弁時、▲２▼パージ制御弁３１の開弁時（吸気管負圧導入開始時）、▲３▼キャニスタ閉塞弁２６の閉弁前のいずれかで良い。尚、▲３▼の場合には、異常診断実行条成立後に、エンジン回転数ＮＥを増加させてから、キャニスタ閉塞弁２６を閉弁する。
【０１１１】
上記ステップ８０２で、まだ、エンジン回転数ＮＥを増加させるタイミングに達していないと判定されれば、そのまま本ルーチンを終了する。その後、エンジン回転数ＮＥを増加させるタイミングに達した時点で、ステップ８０３に進み、エンジン回転数ＮＥを増加させる。この際、エンジン回転数ＮＥの増加量は、一定量でも良いが、本参考例（３）では、図２８に示す燃料蒸発ガス濃度学習値をパラメータとする回転数増加量のテーブルを検索し、その時の燃料蒸発ガス濃度学習値に応じた適切な回転数増加量を設定する。
【０１１２】
尚、回転数増加量を設定するパラメータとして、燃料蒸発ガス濃度学習値に代えて、吸気温、外気温、冷却水温、燃料タンク１７内の雰囲気温度のいずれかを用いても良く、或は、これらの中から２つ以上を用いても良い。図２７の異常診断時回転数増加制御ルーチンは特許請求の範囲でいう異常診断時回転数増加制御手段としての役割を果たす。
【０１１３】
以上説明した参考例（３）では、異常診断時にパージ系２１内に吸気管負圧を導入する際又はその前に、エンジン回転数ＮＥを増加させて吸入空気量を増加させるようにしたので、アイドル中にパージ系２１の異常診断（吸気管負圧の導入）を行っても、燃料タンク１７からの燃料蒸発ガスのパージによる影響を少なくすることができて、空燃比がリッチ側に大きくずれることを防止でき、エミッションやドライバビリティを悪化させずに、パージ系２１の異常を早期発見することができる。
【０１１４】
尚、吸気管負圧導入中に、空燃比フィードバック補正係数の偏差（ＦＡＦ−１）に応じて、図３０のテーブルから回転数増加量の補正量を求めて、回転数増加量を補正するようにしても良い。このようにすれば、吸気管負圧導入中の空燃比のずれを精度良く修正することができる。この場合、空燃比フィードバック補正係数の偏差（ＦＡＦ−１）に代えて、空燃比フィードバック補正係数のなまし値の偏差（ＦＡＦＡＶ−１）を用いても良い。
【０１１５】
［参考例（４）］
本参考例（４）では、実施形態（１）、参考例（１）〜（２）で採用した見込み補正と、参考例（３）で採用した回転数増加制御とを組み合わせて実施することで、吸気管負圧導入中の空燃比のずれを防止する。見込み補正と回転数増加制御との組み合せは次のような態様が考えられる。
【０１１６】
《第１例》
見込み補正実施後にエンジン回転数ＮＥを増加させる。この際、エンジン回転数ＮＥの増加量は、前記参考例（３）と同様の方法で設定したり、或は、空燃比フィードバック補正係数の偏差（ＦＡＦ−１）又は空燃比フィードバック補正係数のなまし値の偏差（ＦＡＦＡＶ−１）に応じて設定しても良い。
【０１１７】
《第２例》
エンジン回転数ＮＥを増加させてから見込み補正を実施する。この際、見込み補正係数ＦＬＥＡＫは前記実施形態（１）、参考例（１）〜（２）のいずれかの方法で設定したり、或は、空燃比フィードバック補正係数の偏差（ＦＡＦ−１）又は空燃比フィードバック補正係数のなまし値の偏差（ＦＡＦＡＶ−１）に応じて設定しても良い。図３１に示す例は、キャニスタ閉塞弁２６の閉弁前からエンジン回転数ＮＥを増加させ、吸気管負圧導入開始後に、空燃比フィードバック補正係数の偏差（ＦＡＦ−１）に応じて見込み補正を実施する。
【０１１８】
《第３例》
エンジン回転数ＮＥを増加させてから見込み補正を実施し、更に、空燃比フィードバック補正係数の偏差（ＦＡＦ−１）又は空燃比フィードバック補正係数のなまし値の偏差（ＦＡＦＡＶ−１）に応じて回転数増加量を補正する。
【０１１９】
《第４例》
吸気管負圧導入開始時にエンジン回転数ＮＥの増加と見込み補正を同時に開始する。この際、エンジン回転数ＮＥの増加量と見込み補正係数ＦＬＥＡＫは、吸気管負圧導入中に空燃比フィードバック補正係数の偏差（ＦＡＦ−１）又は空燃比フィードバック補正係数のなまし値の偏差（ＦＡＦＡＶ−１）に応じて補正しても良い。
【０１２０】
尚、上記実施形態、参考例では、アイドル時、走行時を問わず、異常診断実行条件が成立した時（つまりエンジン運転状態が安定している時）に異常診断を実行し、見込み補正やエンジン回転数増加を実行するようにしたが、走行時は、アイドル時と比較して、吸入空気量が多く、燃料蒸発ガスのパージによる影響が少なくなるため、アイドル中の異常診断時のみに、見込み補正やエンジン回転数増加を実行し、走行中の異常診断時には、通常のパージ補正のみで対応し、見込み補正やエンジン回転数増加を行わないようにしても良い。
【０１２１】
その他、本発明は、燃料タンク１７に、雰囲気温度を検出する温度センサを設置しても良い等、要旨を逸脱しない範囲内で種々変更して実施できる。
【図面の簡単な説明】
【図１】  本発明の実施形態（１）を示すシステム全体の概略構成図
【図２】  空燃比フィードバック制御ルーチンの処理の流れを示すフローチャート
【図３】  パージ率制御ルーチンの処理の流れを示すフローチャート
【図４】  全開パージ率マップの一例を示す図
【図５】  パージ率徐変制御ルーチンの処理の流れを示すフローチャート
【図６】  エバポガス濃度検出ルーチンの処理の流れを示すフローチャート
【図７】  燃料噴射量制御ルーチンの処理の流れを示すフローチャート
【図８】  パージ制御弁制御ルーチンの処理の流れを示すフローチャート
【図９】  異常診断ルーチンの処理の流れを示すフローチャート（その１）
【図１０】異常診断ルーチンの処理の流れを示すフローチャート（その２）
【図１１】エバポガス濃度変化量の測定方法を説明するタイムチャート
【図１２】見込み補正の第１例に用いる見込み補正係数算出ルーチンの処理の流れを示すフローチャート
【図１３】  吸気温から見込み補正係数ＦＬＥＡＫを算出するテーブルを示す図
【図１４】  見込み補正の第１例を示すタイムチャート
【図１５】  見込み補正の第２例で用いる見込み補正係数算出ルーチンの処理の流れを示すフローチャート
【図１６】  （ａ）は始動後経過時間から燃料温度上昇量ΔＴ１を算出するテーブルを示す図、（ｂ）は平均車速から燃料温度上昇量ΔＴ２を算出するテーブルを示す図
【図１７】  車速と、その車速が継続する時間とから温度上昇量を算出する二次元マップを示す図
【図１８】  燃料タンク内の雰囲気温度から見込み補正係数ＦＬＥＡＫを算出するテーブルを示す図
【図１９】  燃料蒸発ガス濃度学習値から見込み補正係数ＦＬＥＡＫを算出するテーブルを示す図
【図２０】  見込み補正の第４例を示すタイムチャート
【図２１】  見込み補正の第５例を示すタイムチャート
【図２２】  本発明の参考例（１）で用いる燃料噴射量制御ルーチンの処理の流れを示すフローチャート
【図２３】  参考例（１）の見込み補正を示すタイムチャート
【図２４】  本発明の参考例（２）で用いる見込み補正係数算出ルーチンの処理の流れを示すフローチャート
【図２５】  燃料蒸発ガス濃度学習値から遅延時間を算出するテーブルを示す図
【図２６】  参考例（２）の見込み補正を示すタイムチャート
【図２７】  本発明の参考例（３）で用いる異常診断時回転数増加制御ルーチンの処理の流れを示すフローチャート
【図２８】  燃料蒸発ガス濃度学習値から遅延時間を算出するテーブルを示す図
【図２９】参考例（３）の異常診断時回転数増加制御を示すタイムチャート
【図３０】空燃比フィードバック補正係数の偏差（ＦＡＦ−１）から回転数増加量の補正量を算出するテーブルを示す図
【図３１】  本発明の参考例（４）の制御の一例を示すタイムチャート
【符号の説明】
１１…エンジン（内燃機関）、１２…吸気管、１４…スロットルバルブ、１６…燃料噴射弁、１７…燃料タンク、１８…燃料ポンプ、２０…圧力センサ、２１…エバポガスパージシステム、２２…連通管、２３…キャニスタ、２４…吸着体、２６…キャニスタ閉塞弁、３０ａ，３０ｂ…パージ通路、３１…パージ制御弁、３９…制御回路（異常診断手段，見込み補正手段，雰囲気温度推定手段，エバポ濃度補正量算出手段，異常診断時回転数増加制御手段）、４６…アイドルスイッチ、４７…車速センサ、４９…吸気管圧力センサ、５０…冷却水温センサ（温度検出手段）、５１…吸気温センサ（温度検出手段）、５３…警告ランプ。
【図１】
0004003289.tif 000002
【図２】
0004003289.tif 000003
【図３】
0004003289.tif 000004
【図４】
0004003289.tif 000005
【図５】
0004003289.tif 000006
【図６】
0004003289.tif 000007
【図７】
0004003289.tif 000008
【図８】
0004003289.tif 000009
【図９】
0004003289.tif 000010
【図１０】
0004003289.tif 000011
【図１１】
0004003289.tif 000012
【図１２】
0004003289.tif 000013
【図１３】
0004003289.tif 000014
【図１４】
0004003289.tif 000015
【図１５】
0004003289.tif 000016
【図１６】
0004003289.tif 000017
【図１７】
0004003289.tif 000018
【図１８】
0004003289.tif 000019
【図１９】
0004003289.tif 000020
【図２０】
0004003289.tif 000021
【図２１】
0004003289.tif 000022
【図２２】
0004003289.tif 000023
【図２３】
0004003289.tif 000024
【図２４】
0004003289.tif 000025
【図２５】
0004003289.tif 000026
【図２６】
0004003289.tif 000027
【図２７】
0004003289.tif 000028
【図２８】
0004003289.tif 000029
【図２９】
0004003289.tif 000030
【図３０】
0004003289.tif 000031
【図３１】
0004003289.tif 000032