(57)【特許請求の範囲】
【請求項１】
燃料タンクと、該燃料タンクとキャニスタを接続するチャージ通路と、該チャージ通路に設けられたバイパス弁と、該キャニスタと内燃機関の吸気管を接続するパージ通路に設けられたパージ制御弁と、該キャニスタに設けられ内部を大気開放する開放口を開閉するベントシャット弁と、を有する蒸発燃料排出抑止系の大量リークを判定するための内燃機関の蒸発燃料処理装置であって、
前記バイパス弁よりも前記燃料タンク側に設けられ、圧力を検出する内圧センサと、
前記蒸発燃料排出抑止系において前記大量リークよりも小さいリークを判定することができるように、該系の圧力を該内圧センサにより監視し、該内圧センサにより検出された圧力の変動が小さいとき、該系内にリークがあると判定する内圧監視手段と、
前記ベントシャット弁およびパージ制御弁を閉じて前記蒸発燃料排出抑止系を減圧する減圧手段と、
前記大量リークを判定する大量リーク判定手段であって、
１）前記内圧監視手段によりリーク有りと判定され、かつ、２）前記減圧後に前記蒸発燃料排出抑止系を閉じることに応じて、所定値以上の圧力上昇が瞬時に起きたことに加え、さらに、
３）前記減圧を開始するのに先立ち、前記蒸発燃料排出抑止系を大気に開放した後に前記バイパス弁を閉じ、前記内圧センサにより検出された圧力が所定期間にわたって大気圧付近に停滞すること、
４）前記２）の圧力上昇において、前記内圧センサにより検出された圧力が、前記３）において前記蒸発燃料排出抑止系を大気に開放した時に前記内圧センサにより検出された圧力付近にまで復圧したこと、
５）前記２）の圧力上昇の後、前記内圧センサにより検出された圧力が、大気圧付近に停滞すること、
６）前記減圧手段が前記蒸発燃料排出抑止系を所定圧まで減圧する時間が、所定時間以上であること、
のうちの少なくとも１つが満たされたならば、大量リーク有りと判定する大量リーク判定手段と、を備える、
蒸発燃料処理装置。
【請求項２】
前記内圧監視手段によりリーク有りと判定されたとき警告をする警告手段と、
前記警告した時のサイクルにおいて、前記大量リーク判定手段により大量リーク有りと判定され、かつ、その後のサイクルにおいて、前記内圧監視手段によりリーク無しと判定されたならば、前記警告を解除する警告解除手段と、
前記警告した時のサイクルにおいて、前記大量リーク判定手段により大量リーク無しと判定されたならば、前記その後のサイクルにおいて、前記警告を維持する警告維持手段と、
をさらに備える、請求項１に記載の内燃機関の蒸発燃料処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、燃料タンク内で発生する蒸発燃料を内燃機関の吸気系に放出する内燃機関の蒸発燃料処理装置の故障診断に関し、より具体的には、燃料タンクのリークを検出して警告灯を点灯し、リークの原因が大量リークによるものであり、その後リークが検出されなくなったならば警告灯を消灯することができる内燃機関の蒸発燃料処理装置に関する。
【０００２】
【従来の技術】
特開平１０−３７８１５号には、燃料タンクのリーク（漏れ）の有無を判定する手法が提示されている。その手法のうちの１つは、燃料タンクの圧力を複数回検出し、その圧力が大気圧付近に集中する場合はリーク有りと判定し、大気圧に対して正または負圧に大きく変動する場合はリーク無しと判定する。この方法によると、減圧せずに簡単にリークの有無を判定することができる。
【０００３】
さらに、燃料タンクのリークの有無を判定する他の手法として、燃料タンクを所定圧力まで減圧した後に燃料タンクを閉鎖し、燃料タンクの圧力変動量が所定値以下であればリーク無し、所定値より大きければリーク有りと判定する（リークチェック）。このリーク判定は、ベーパの影響を取り除くため、ベーパによる圧力変動量を補正値として考慮する。この方法によると、０．５ｍｍ径の微小な穴に起因するタンク系のリークまで検出することができる。
【０００４】
一方、主にユーザーによる燃料タンクのフィラーキャップの閉め忘れなどに起因する燃料タンクの大穴（大量リーク）の検出は、上記の微小な穴を対象としたリークとは別個に検出してユーザーに警告を促すのが好ましい。特開平９−２９１８５６号には、燃料タンクの異常判定を行う手法が記載されており、その中で大穴の判定を行っている。この手法では、燃料タンクを所定圧力まで減圧した後、圧力変動量を算出してリークチェックを行い、リークチェック開始後所定時間内の、減圧終了時の燃料タンクの圧力とリークチェック開始後の燃料タンクの圧力の差が所定値より大きければ、大穴があると判定している。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記のような判定手法では、給油量やパージ制御弁の流量のバラツキなどの組み合わせによって、小さなリークまたはリーク無しにもかかわらず大穴と判定されてしまう場合がある。
【０００６】
また、フィラーキャップの閉め忘れのようなユーザーのエラーによって大穴と判定されたときにはＭＩＬ（警告灯）が点灯するが、このＭＩＬの点灯中に、ユーザーがフィラーキャップの閉め忘れに気が付いて閉め直した場合、明らかに大穴が直っているにもかかわらずＭＩＬが点灯し続ける状態が続いていた。
【０００７】
したがって、この発明は、大穴を精度良く検出することのできる蒸発燃料処理装置を提供することを目的とする。
【０００８】
さらに、この発明の他の目的は、大穴によって警告灯が点灯している間に大穴が検出されなくなった場合には、大穴によって点灯された警告灯をタイミング良く消灯させることのできる蒸発燃料処理装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記の課題を解決するため、請求項１の発明は、燃料タンク、該燃料タンクとキャニスタを接続するチャージ通路と、前記キャニスタと内燃機関の吸気管を接続するパージ通路に設けられたパージ制御弁と、前記キャニスタに設けられ内部を大気開放する開放口を開閉するベントシャット弁を有する蒸発燃料排出抑止系と、該蒸発燃料排出抑止系内の圧力を検出する内圧センサと、該内圧センサにより検出された前記蒸発燃料排出抑止系内の圧力の変動が小さいとき蒸発燃料排出抑止系内にリークがあると判定する内圧監視手段と、前記内圧センサの出力をもとに前記蒸発燃料排出抑止系を閉じた系にしたときの前記内圧センサの変化によりリークの有無を判定するリークチェック手段と、前記内圧監視手段によりリーク有りと判定されかつ前記リークチェック手段による判定時に圧力の変化が瞬時に起きたとき大量リーク有りと判定する大量リーク判定手段を有することを特徴とする内燃機関の蒸発燃料処理装置という構成をとる。
【００１０】
請求項１の発明によると、いくつかの条件を考慮して大量リークを判定することができるので、良好な精度で大量リークを判定することができる。
【００１１】
請求項２の発明は、請求項１の内燃機関の蒸発燃料処理装置が、前記内圧監視手段によりリーク有りと判定されたとき警告をする警告手段と、前回前記大量リーク手段により大量リーク有りと判定され、今回リーク無しと判定された場合は、前記警告手段による警告を解除する警告解除手段を有するという構成をとる。
【００１２】
請求項２の発明によると、大量リークに起因して警告灯が点灯している間に大量リーク無しと判定されれば警告灯を消灯するので、大量リークが直ったにもかかわらず警告灯が点灯しつづけることを回避することができる。
【００１３】
【発明の実施の形態】
次に図面を参照してこの発明の実施の形態を説明する。図１は、この発明の実施形態による内燃機関の蒸発燃料処理装置の全体構成図である。この装置は、内燃機関（以下、「エンジン」という）１、蒸発燃料排出抑止装置３１および電子制御ユニット（以下、「ＥＣＵ」という）５を備える。以下、大気圧に対して正側の圧力を正圧といい、負側の圧力を負圧という。
【００１４】
ＥＣＵ５は、この発明の制御手段を構成するユニットであり、エンジン１の各部の制御を行うための演算を実行するＣＰＵ９１、エンジン各部の制御を行うためのプログラムおよび各種のデータを格納する読み取り専用メモリ（ＲＯＭ）９２、ＣＰＵ９１による演算の作業領域を提供し、エンジン各部から送られてくるデータおよびエンジン各部に送り出す制御信号を一時記憶するランダムアクセスメモリ（ＲＡＭ）９３、エンジン各部から送られてくるデータを受け入れる入力回路９４、エンジン各部に制御信号を送る出力回路９５を備える。
【００１５】
図１では、プログラムは、モジュール１、モジュール２、モジュール３等で示されており、この発明による大穴を判定してＭＩＬを点灯／消灯するプログラムは、たとえばモジュール３、４に含まれている。また、演算に用いる各種のデータはテーブル１、テーブル２等の形でＲＯＭ９２に格納されている。ＲＯＭ９２は、ＥＥＰＲＯＭのような書き換え可能なＲＯＭであってもよく、この場合、ある運転サイクルにおいてＥＣＵ５が演算した結果をＲＯＭに格納しておき、次の運転サイクルで利用することができる。また、種々の処理で設定された多くのフラグ情報をＥＥＰＲＯＭに記録しておくことにより、故障診断に利用することができる。
【００１６】
エンジン１は、例えば４気筒を備えるエンジンであり、吸気管２が連結されている。吸気管２の上流側にはスロットル弁３が配されており、スロットル弁３に連結されたスロットル弁開度センサ（θＴＨ）４は、スロットル弁３の開度に応じた電気信号を出力してＥＣＵに供給する。
【００１７】
燃料噴射弁６は、吸気管２の途中であって、エンジン１とスロットル弁３の間に各気筒毎に設けられ、ＥＣＵ５からの制御信号により開弁時間が制御される。燃料供給管７は、燃料噴射弁６および燃料タンク９を接続し、その途中に設けられた燃料ポンプ８が燃料を燃料タンク９から燃料噴射弁６に供給する。図示しないレギュレータが、ポンプ８と燃料噴射弁６の間に設けられ、吸気管２から取り込まれる空気の圧力と、燃料供給管７を介して供給される燃料の圧力との間の差圧を一定にするよう動作して、燃料の圧力が高すぎるときは図示しないリターン管を通して余分な燃料を燃料タンク９に戻す。こうして、スロットル弁３を介して取り込まれた空気は、吸気管２を通り、燃料噴射弁６から噴射される燃料と混合してエンジン１のシリンダに供給される。
【００１８】
吸気管圧力（ＰＢＡ）センサ１３および吸気温（ＴＡ）センサ１４は、吸気管２のスロットル弁３の下流側に装着されており、それぞれ吸気管圧力および吸気温を検出して電気信号に変換し、それをＥＣＵ５に送る。
【００１９】
エンジン水温（ＴＷ）センサ１５は、エンジン１のシリンダブロックの冷却水が充満した気筒周壁に取り付けられ、エンジン冷却水の温度を検出し、電気信号に変換して結果をＥＣＵ５に送る。エンジン回転数（ＮＥ）センサ１６がエンジン１のカム軸周囲またはクランク軸周囲に取り付けられ、エンジン１のクランク軸の１８０度回転毎に所定のクランク角度位置で信号パルス（ＴＤＣ信号パルス）を出力し、それをＥＣＵ５に送る。
【００２０】
エンジン１は排気管１２を持ち、排気管１２の途中に設けられた排気ガス浄化装置である三元触媒３３を介して排気する。Ｏ２センサ３２は排気濃度センサであり、排気管１２の途中に装着され、排気ガス中の酸素濃度を検出し、検出値に応じた信号をＥＣＵ５に送る。
【００２１】
車速（ＶＰ）センサ１７、バッテリ電圧（ＶＢ）センサ１８および大気圧（ＰＡ）センサ１９は、ＥＣＵ５に接続されており、それぞれ車両の走行速度、バッテリ電圧および大気圧を検出し、それをＥＣＵ５に送る。
【００２２】
各種センサからの入力信号は入力回路９４に渡される。入力回路９４は、入力信号波形を整形して電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する。ＣＰＵ９１は、変換されたデジタル信号を処理し、ＲＯＭ９２に格納されているプログラムに従って演算を実行し、車の各部のアクチュエータに送る制御信号を作り出す。この制御信号は出力回路９５に送られ、出力回路９５は、燃料噴射弁６、バイパス弁２４、ベントシャット弁２６およびパージ制御弁３０その他のアクチュエータに制御信号を送る。
【００２３】
次に、蒸発燃料排出抑止系（以下、「排出抑止系」という）３１について説明する。排出抑止系３１は、燃料タンク９、チャージ通路２０、キャニスタ２５、パージ通路２７およびいくつかの制御弁を備え、燃料タンク９からの蒸発燃料の排出を制御する。排出抑止系３１は、チャージ通路２０にあるバイパス弁２４を境に、便宜上２つに分けて考えることができ、燃料タンク９を含む側をタンク系、キャニスタ２５を含む側をキャニスタ系と呼ぶ。
【００２４】
燃料タンク９は、チャージ通路２０を介してキャニスタ２５に接続され、燃料タンク９からの蒸発燃料が、キャニスタ２５に移動できるようになっている。チャージ通路２０は、第１の分岐２０ａおよび第２の分岐２０ｂを持ち、これらはエンジンルーム内に設けられている。内圧センサ１１は、チャージ通路２０の燃料タンク側に取り付けられており、チャージ通路２０内の内圧と大気との差圧を検出する。定常状態においては、チャージ通路２０内の圧力が燃料タンク９内の圧力とがほぼ等しいので、内圧センサ１１により検出された内圧を、燃料タンク９の圧力（以下、「タンク内圧」という）とみなすことができる。
【００２５】
第１の分岐２０ａには二方向弁２３が設けられ、二方向弁２３は２つの機械式の弁２３ａおよび２３ｂを備える。弁２３ａは、タンク内圧が大気圧より２．０kPa程度高くなったときに開く正圧弁であり、これが開弁状態にあると、蒸発燃料がキャニスタ２５に流れ、そこで吸着される。弁２３ｂは、タンク内圧がキャニスタ２５側の圧力より１．３kPaから２．０kPa程度低くなったとき開く負圧弁であり、これが開弁状態にあると、キャニスタ２５に吸着された蒸発燃料が燃料タンク９に戻る。
【００２６】
第２の分岐２０ｂには電磁弁であるバイパス弁２４が設けられる。バイパス弁２４は、通常は閉弁状態にあり、この発明による排出抑止系３１のリークを検出する際に、ＥＣＵ５からの制御信号により開閉を制御される。
【００２７】
燃料タンク９は、フィラーキャップ４２が設けられた給油管４１を有し、さらに給油時用のチャージ通路４４（一部のみ図示）を介してキャニスタ２５に接続されている。給油時用チャージ通路４４は、チャージ通路２０より大きな断面積を持ち、給油時に発生する大量の蒸発燃料をキャニスタ２５に供給するために設けられている。チャージ通路４４の途中には、ダイヤフラム弁４５が設けられており、ダイヤフラム弁４５は通路４３を介して給油管４１の給油口近傍に接続され、給油時のみ開弁するよう構成されている。
【００２８】
チャージ通路２０および４４が燃料タンク９に開口する部分には、第１および第２のフロート弁４６および４７がそれぞれ設けられている。第１および第２ののフロート弁４６および４７は、燃料タンク９の満タン時や燃料タンク９が傾いたときに閉弁し、液体の燃料がチャージ通路２０または４４に流出することを防止する。
【００２９】
キャニスタ２５は、燃料蒸気を吸着する活性炭を内蔵し、通路２６ａを介して大気に連通する吸気口（図示せず）を持つ。通路２６ａの途中に、電磁弁であるベントシャット弁２６が設けられる。ベントシャット弁２６は、通常は開弁状態にあり、この発明による排出抑止系３１のリークを検出する際に、ＥＣＵ５からの制御信号により開閉を制御される。
【００３０】
キャニスタ２５は、パージ通路２７を介して吸気管２のスロットル弁３の下流側に接続される。パージ通路２７の途中には電磁弁であるパージ制御弁３０が設けられ、キャニスタ２５に吸着された燃料が、パージ制御弁３０を介してエンジンの吸気系に適宜パージされる。パージ制御弁３０は、ＥＣＵ５からの制御信号に基づいて、オン−オフデューティ比を変更することにより、流量を連続的に制御する。
【００３１】
ＭＩＬ３６は運転席の表示パネル上に設けられた警告灯であり、排出抑制系３１にリーク有りと判定された時およびその他の故障が検出された時に、ＥＣＵ５からの制御信号に応答して点灯し、運転者に何らかの故障が発生したことを警告して注意を促す。また、ＭＩＬ３６は、ＥＣＵ５からの制御信号に応答して、検出された故障が誤診断と判断されたとき、または故障が回復した時、ＥＣＵ５からの制御信号に基づいて消灯する。
【００３２】
図２は、この発明の実施形態に関連するＥＣＵ５を機能ブロックで示してあり、これらは図１に示されるＥＣＵ５のハードウェア構成およびＲＯＭ９２に格納されているプログラムにより実現される。ＥＣＵ５内の機能ブロックによるデータの受け渡しは、主にＲＡＭ９３を介して行われる。ＥＣＵ５は、弁制御部５０、始動後オープン処理部５６、内圧監視部５７、キャニスタモニター部５８、タンク減圧モード実行部６０およびＭＩＬ点灯制御部８１を備える。図３〜図７を参照しつつ、それぞれの機能ブロックについて説明する。
【００３３】
弁制御部５０は、バイパス弁２４の開閉を制御するバイパス弁制御部５１、ベントシャット弁２６の開閉を制御するベントシャット弁制御部５２およびパージ制御弁３０の開弁量を制御するパージ制御弁制御部５３を備え、始動後オープン処理部５６、内圧監視部５７、キャニスタモニター部５８およびタンク減圧実行モード部６０からの制御信号に応じて、それぞれの弁に駆動信号を送る。
【００３４】
始動後オープン処理部５６、内圧監視部５７、キャニスタモニター部５８およびタンク減圧モニター部６０は、排出抑止系３１のリークの有無の判定処理を実現する。１回の運転サイクル（エンジンの始動から停止まで）においては、リークの有無の判定処理は１回だけ実行される。しかし、これをどのような頻度で実行するかは設計事項であり、必要に応じて変更することができる。
【００３５】
図３を参照すると、１運転サイクルにおける、内圧センサ１１で検出される圧力の遷移の例が示される。リークの有無の判定処理は４つの段階、すなわち始動後オープン処理、内圧監視モニター、キャニスタモニターおよびタンク減圧モニターから構成される。
【００３６】
始動後オープン処理部５６によって実行される始動後オープン処理は、エンジン始動直後にバイパス弁２４を開いて排出抑止系３１を大気圧に開放し、この時に、タンク内圧が大気開放前の値から所定値以上変動すれば、タンク系にリークが無く正常と判定する。
【００３７】
内圧監視部５７により実行される内圧監視モニターは、内圧センサ１１により検出される圧力を連続的にチェックする。内圧監視部５７に含まれる第１のリーク判定部７７は、その圧力が大気圧付近に集中する場合はリーク有りと判定し、大気圧を中心に正圧または負圧に大きく変動する場合はリーク無しと判定する。リーク有りと判定したならば、第１のリーク有りフラグに１を設定し、ＲＡＭ９３に記憶する。この実施例では内圧監視部５７は、１ｍｍ径以上の穴に起因するリークを検出する。
【００３８】
キャニスタモニター部５８により実行されるキャニスタモニターは、大気開放、減圧、内圧安定待ち、リークチェックおよび圧力復帰モードを含む。キャニスタモニターは、キャニスタ２５を負圧にし、負圧の保持状態を検出することによりキャニスタ系のリークの有無を判定する。
【００３９】
タンク減圧モード実行部６０は、タンク減圧モニターを実行する。これにより、上記の始動後オープン処理および内圧監視モニターで検出されなかったタンク系のリークを検出することができる。例えば、始動後オープン処理または内圧監視モニターで１ｍｍ径以上の穴によるリークについて正常判定された場合には、このタンク減圧モニターを実行して、０．５ｍｍ径のさらに微小な穴を対象としたリークの有無を判定することができる。タンク減圧モニターについて図４を参照しつつ説明する。
【００４０】
図２および図４に示されるように、タンク減圧モニターは、大気開放部６１、補正チェック部６２、減圧部６３、リークチェック部６５およびベーパチェック部６６によりそれぞれ実行される５つのモードを含む。実線７１はタンク系に微小なリークがある場合の、破線７３はタンク系にリークが無い場合の、内圧センサ１１により検出された圧力の遷移の例を示す。
【００４１】
大気開放部６１は、バイパス弁２４を開き、パージ制御弁３０を閉じることにより大気開放モードに移行する。その結果、タンク内圧は実線７１に示すように大気圧へと変化する。大気開放モードに要する時間は、例えば１５秒である。
【００４２】
補正チェック部６２は、バイパス弁２４を閉じることにより補正チェックモードに移行する。燃料タンク９ではベーパが発生しており、この量に依存してタンク内圧が上昇するので、この圧力上昇分を、後のタンク系のリークの有無を判定するときに考慮する必要がある。したがって、補正チェック部６２は、大気圧から正圧に上昇する単位時間あたりの圧力変動量を補正値として測定する。補正チェックモードに要する時間は、例えば３０秒である。
【００４３】
減圧部６３は、バイパス弁２４を開き、ベントシャット弁２６を閉じることにより減圧モードに移行し、パージ制御弁の開弁量を制御しながら、タンク内圧を所定の圧力、例えば９９．３kPa（大気圧より、約２．０kPa低い）にまで安定的に減圧する。内圧センサ１１は、すぐに負圧状態になる細いチャージ通路２０に設けられており、それに対して燃料タンク９は容量が大きいため、センサ１１が負圧を示す時でも燃料タンク９が実際には負圧になっていないことがある。したがって、減圧部６３は、安定した負圧状態にするため、オープン減圧をした後にフィードバック減圧を行う。
【００４４】
ここで、図５を参照してオープン減圧およびフィードバック（Ｆ／Ｂ）減圧について説明する。減圧部６３は、最初に行われるオープン減圧（時間０〜ｔ１）において、予めＲＯＭ９２に格納されているオープン減圧目標流量テーブルを検索して現在のタンク内圧に応じたパージ流量を算出し、そのパージ流量に対応する開弁量にパージ制御弁３０を設定する。その後、ベントシャット弁２６を閉じ、バイパス弁２４およびパージ制御弁３０を開いてタンク系を減圧する。この減圧を所定回数繰り返すことで、ある圧力までタンク系を減圧する。
【００４５】
減圧部６３は、オープン減圧を実行した後にＦ／Ｂ減圧（ｔ１〜ｔ４）を実行する。内圧センサ１１の出力が、減圧目標値の下限値POBJL（たとえば、９８．９kPa）に達したとき、次の減圧目標値を、その上限値POBJH（たとえば、９９．３kPa）に変更する。現在のタンク内圧および減圧目標値に基づいて、タンク内圧が減圧目標値に達するようパージ流量QOBJLを算出し、算出されたパージ流量に対応する開弁量にパージ制御弁３０を設定する。その結果パージ流量は減少し、それに応じてタンク内圧は上昇する（ｔ１〜ｔ２）。次に、内圧センサ１１の出力が上限値POBJHに達したとき、タンク内圧の減圧目標値をその下限値POBJLに変更し、現在のタンク内圧および減圧目標値に基づいて、タンク内圧が減圧目標値に達するようパージ流量QOBJHを算出し、算出されたパージ流量に対応する開弁量にパージ制御弁３０を設定する。その結果パージ流量は増加し、それに応じてタンク内圧は減少する（ｔ２〜ｔ３）。
【００４６】
このように、減圧目標値の上限値および下限値の間で、パージ流量を増減させながら復圧および減圧を繰り返すと、パージ流量がその下限値QOBJLにはりつく（参照番号８５）。すなわち、目標タンク内圧を下限値に持ち替えてパージ流量を増加しても、タンク内圧が目標下限値まで下がらなくなる。これは、タンク内圧が上限値と下限値の間の負圧状態であって、パージ流量を変えてもタンク内圧が変わらない安定点に達したことを示し、このような状態に達した時、Ｆ／Ｂ減圧を終える。パージ流量が上限値にはりつき、目標タンク内圧を上限値に持ち替えてパージ流量を減少させても、タンク内圧が目標上限値まで上がらなくなる場合も同様である。Ｆ／Ｂ減圧を行うことにより、内圧センサ１１により示される圧力と実際のタンク内圧の差圧がほぼゼロになる。減圧モードに要する時間は、例えば３０秒〜４０秒である。
【００４７】
図４に戻り、リークチェック部６５は、すべての弁２４、２６および３０を閉じ、リークチェックモードに移行する。タンク系にリークが無ければ、負圧はほぼ保持されたままとなり、破線７３に示されるように、復帰する圧力量（これは、ベーパの影響による）が小さい。タンク系にリークが有れば、実線７１に示されるように復帰する圧力量が比較的大きい。０．５ｍｍという非常に小さい穴を検出する必要があるので、リークチェックモードに要する時間は、例えば３０秒である。
【００４８】
ベーパチェック部６６は、バイパス弁２４およびベントシャット弁２６を開き、ベーパチェックモード（圧力復帰モード）に移行して、タンク系を大気圧に戻す。ベーパチェック部６６は第２のリーク判定部７９を備え、第２のリーク判定部７９は、正圧から大気圧に向けてタンク内圧が変動した場合には、リークチェック中にベーパの発生等により正圧にまで変動しており、正確な圧力変動量を算出できないので、リークの有無の判定を禁止する。反対に、負圧から大気圧に変動した場合には、リークチェック中の単位時間あたりの圧力変動量から、補正チェック部により算出された補正値に係数を掛けた値を引いた値に基づいて、タンク系のリークの有無を判定する。リーク有りと判定したならば、第２のリーク判定部７９は第２のリーク有りフラグに１を設定し、ＲＡＭ９３に記憶する。このリークの有無の判定では、０．５ｍｍ径ほどの微小な穴を対象としたリークを検出することが可能である。ベーパチェックモードに要する時間は、たとえば３秒である。
【００４９】
リークチェック部６５は大穴判定部７８を備え、タンク系における大穴（大量リーク）の有無を判定する。大穴判定部７８が大穴を判定するのに使用するパラメータについて、図６を参照して述べる。
【００５０】
図６の実線７５は、燃料タンク９に大穴がある場合のタンク減圧モニターにおいて内圧センサ１１により検出される圧力の遷移を示す。点線７２は、図４の実線７１に対応し、燃料タンク９に微小な穴によるリークがあるときの圧力の遷移を示す。燃料タンク９に大穴がある場合、燃料タンク９は大気開放モードに移行する前から大気圧になっており、またバイパス弁を閉じても大気圧のままであるので、大気開放モードおよび補正チェックモード中の圧力は大気圧のまま変化しない。大気開放部６１は、大気開放モード終了時のタンク内圧をＰ１としてＲＡＭ９３に記憶し、補正チェック部６２は、補正チェックモード開始時と終了時のタンク内圧をそれぞれＰ２およびＰ３としてＲＡＭ９３に記憶する。
【００５１】
減圧部６３が減圧モードに移行してタンク系を減圧すると、前述したように内圧センサ１１の位置がチャージ通路２０にあるために、大穴が存在するにもかかわらず内圧センサ１１は負圧の値を示す。リークチェック部６５が、パージ制御弁３０およびバイパス弁２４を閉じてリークチェックモードに移行すると、実際の燃料タンク９の内圧は大気圧なので、タンク系全体の圧力が平衡状態になろうとして、センサ１１から検出される圧力は急速に復圧して大気圧に向かう。減圧部６３は、減圧モード終了時のタンク内圧をＰ４としてＲＡＭ９３に記憶し、リークチェック部６５は、リークチェック開始直後（たとえば、ｔ５＝０．１秒）および所定時間経過後（たとえば、ｔ６＝５秒）のタンク内圧を、それぞれＰ５およびＰ６としてＲＡＭ９３に記憶する。さらに、減圧部６３は、減圧の処理時間をＴ４として記憶する。
【００５２】
大穴判定部７８は、第１のリーク有りフラグ、上記のタンク内圧Ｐ１〜Ｐ６および減圧処理時間Ｔ４に基づき、以下の判定条件（１）〜（６）に従って大穴を判定する。
（１）内圧監視モニターでリーク有りと判定され、第１のリーク有りフラグに１に設定されること。
（２）Ｐ３−Ｐ２≦所定値Ｓ１が成立していること。ここで、所定値Ｓ１は、たとえば１３３．３Paである。
（３）Ｐ５−Ｐ４＞所定値Ｓ２が成立していること。ここで、所定値Ｓ２は、たとえば１０６６．６Paである。
（４）｜Ｐ１−Ｐ５｜＜所定値Ｓ３が成立していること。ここで、所定値Ｓ３は、たとえば４００．０Paである。
（５）Ｐ６−Ｐ５＜所定値Ｓ４が成立していること。ここで、所定値Ｓ４は、たとえば２００．０Paである。
（６）減圧処理時間Ｔ４が、所定時間以上であること。ここで、所定時間Ｓ５は、たとえば５．５秒である。
【００５３】
条件（１）は、内圧監視部５７は１ｍｍ径以上の穴に起因するリークを検出するので、大穴があれば当然ここでリーク有りと判定されるからである。条件（２）は、大穴があれば、補正チェックモードにおいて大気圧からの圧力上昇がほとんど無いからである。条件（３）は、大穴があれば、減圧終了時でも実際のタンク内圧が大気圧付近であるため、リークチェック開始直後に大きな圧力変動が現れるからである。条件（４）は、大穴があれば、リークチェック開始直後に大気圧付近に復圧するからである。条件（５）は、大穴があれば、リークチェックモードで大気圧付近まで復圧した後、圧力が変動しないからである。
【００５４】
条件（６）は、燃料満タン時に作動するフロート弁４６が作動している場合と区別するためのものである。フロート弁４６が作動していると、燃料タンク９を含まない系に対して大穴が判定されるので、実際に燃料タンクに大穴があるかどうか判定することができない。したがって、フロート弁４６が作動している場合には、減圧処理時間が非常に短いことに着目して、減圧完了までに所定時間以上かかった場合にのみ大穴の判定を行う。
【００５５】
大穴判定部７８は、上記の判定条件（１）〜（６）のすべてが満たされた場合に大穴と判定し、大穴が検出されたならば大穴有りフラグに１を設定する。こうして、良好な精度で大穴を検出することができる。しかし、上記の判定条件（１）〜（６）のうちのいくつかのみを用いて大穴の判定を行うようにしてもよい。
【００５６】
ＭＩＬ点灯制御部８１は、第１のリーク判定部７７からの第１のリーク有りフラグ、第２のリーク判定部７９からの第２のリーク有りフラグ、およびその他の故障診断（図示せず）からの故障有りを示す信号（以下、その他故障有りフラグという）のいずれかが１に設定されていれば、点灯フラグに１を設定してＭＩＬ３６を点灯する。その他故障有りフラグは、上記リーク以外の、たとえば触媒の劣化、スロットルセンサや広域空燃費センサなどの各種センサの故障のような、車載診断装置により検出されるその他の故障を示し、いずれかの故障が検出されたならば１に設定される。点灯フラグは、ＭＩＬ点灯制御部８１により設定される、ＭＩＬ３６を駆動する制御信号であり、点灯するときは１に、消灯するときはゼロに設定される。
【００５７】
ＭＩＬ点灯制御部８１は、大穴以外のリークおよびその他の故障が１回検出されてＭＩＬ３６を点灯すると、誤診断と判断されない限り運転中に自動的にＭＩＬを消灯することは行わない。一方、ＭＩＬ点灯制御部８１は、大穴によるリークに起因してＭＩＬ３６を点灯すると、第１のリークが検出されなくなったことに応答して自動的にＭＩＬ３６を消灯する。
【００５８】
図７に、大穴判定に関するＭＩＬの点灯および消灯のタイミングの好ましいパターンを２つ示す。図７の（ａ）のパターンを参照して、現在の運転サイクルの時間ｔ１において第１のリーク判定部７７により第１のリークが検出されると、第１のリーク有りフラグが１に設定され、その後時間ｔ２において大穴判定部７８により大穴が検出されると、大穴有りフラグが１に設定される。それぞれのフラグはＲＡＭ９３に記憶される。ＭＩＬ点灯制御部８１は、第１のリーク有りフラグを調べ、第１のリーク有りフラグが１であるので、点灯フラグに１を設定してＭＩＬ３６を点灯する。
【００５９】
この実施例におけるリーク判定および大穴判定は１つの運転サイクル中に１回だけ実行されるので、ある運転サイクル中にＭＩＬ３６が１回点灯されると、ＭＩＬ３６は、この運転サイクル中点灯し続ける。なお、図７の（ａ）では時間ｔ２においてＭＩＬ３６を点灯させているが、時間ｔ１において第１のリーク有りフラグを調べ、ＭＩＬ３６を点灯させるようにしてもよい。
【００６０】
次に、たとえばユーザーが時間ｔ２〜ｔ３の間にフィラーキャップを閉め直して大穴を解消すると、以降の運転サイクルの時間ｔ３で実行された第１のリーク判定ではリークが検出されないので第１のリーク有りフラグはゼロに設定され、その後の時間ｔ４で実行された大穴判定処理において大穴が検出されないので、大穴有りフラグはゼロに設定される。
【００６１】
ＭＩＬ制御部８１は、時間ｔ４において、第１のリーク有りフラグがゼロに設定されているかどうか調べ、ゼロならば、さらに大穴有りフラグが１からゼロに変わったかどうか調べる。第１のリーク有りフラグがゼロであり、大穴有りフラグが１からゼロに変わったならば、前回の運転サイクルで立てられた第１のリーク有りフラグは大穴に起因するものであって、今回の運転サイクルで大穴が解消されたと判断する。その結果、その他故障有りフラグがゼロの場合には、点灯フラグにゼロを設定してＭＩＬ３６を消灯する。
【００６２】
こうして、大穴によるリークに起因して点灯したＭＩＬを、大穴の解消に応じてタイミング良く消灯することができる。この例によると、従来のように大穴が解消されリークが検出されなくなったにもかかわらずＭＩＬが点灯し続けることを回避することができる。
【００６３】
図７の（ｂ）のパターンによると、現在の運転サイクルの時間ｔ１において第１のリーク判定部７７により第１のリークが検出されると第１のリーク有りフラグが１に設定され、その後時間ｔ２において大穴判定部７８により大穴が検出されると、大穴有りフラグが１に設定される。それぞれのフラグはＲＡＭ９３に記憶される。ＭＩＬ点灯制御部８１は第１のリーク有りフラグを調べ、第１のリーク有りフラグが１に設定されているので、点灯フラグに１を設定してＭＩＬを点灯する。
【００６４】
時間ｔ２〜ｔ３の間に大穴が解消されたとすると、以降の運転サイクルの時間ｔ３において実行された第１のリーク判定ではリークが検出されないので、第１のリーク有りフラグがゼロに設定され、その後の時間ｔ４で実行された大穴判定処理では大穴が検出されないので、大穴有りフラグはゼロに設定される。
【００６５】
ＭＩＬ制御部８１は、次の運転サイクル開始時に、前回の運転サイクル（図７の（ｂ）では、「以降の運転サイクル」に対応する）において第１のリーク有りフラグがゼロに設定されたかどうか調べ、ゼロならば、さらに前々回の運転サイクル（図７の（ｂ）では、「現在の運転サイクル」に対応する）の大穴判定処理で１に設定された大穴有りフラグが、前回の運転サイクルの大穴判定処理でゼロに変わったかどうか調べる。前回の運転サイクルにおいて、第１のリーク有りフラグがゼロであり、大穴有りフラグが１からゼロに変わったならば、前々回の運転サイクルで立てられた第１のリーク有りフラグは大穴のリークに起因するものであって、前回の運転サイクルで大穴が解消されたと判断する。その結果、その他故障有りフラグがゼロの場合には、点灯フラグにゼロを設定してＭＩＬ３６を消灯する。このパターンにおいても、大穴によるリークに起因して点灯したＭＩＬが、大穴が解消された後も点灯し続けるということを回避することができる。
【００６６】
図２を参照してそれぞれの機能ブロックについて説明したので、以下に、それぞれの機能ブロックが実行する処理を流れ図にして具体的に示す。この流れ図中のタンク内圧Ｐ１〜Ｐ６、減圧時間Ｔ４および所定値Ｓ１〜Ｓ５の表記は、上記の判定条件（１）〜（６）で示されたものと同じ意味で用いられている。また、第１および第２のリーク有りフラグおよび大穴有りフラグは、それぞれの運転サイクル開始時に初期値としてゼロが設定されている。
【００６７】
内圧監視モニター
図８および図９は、内圧監視部５７により実行される内圧監視モニター処理の流れ図を示す。内圧監視モニター処理の完了時に１に設定される完了フラグが１でないとき（２０１）、図８の処理が開始する。後に図９を参照して説明する処理で１に設定されるバイパス弁許可フラグが１になっている状態では（２０２）、処理は図９に進み、１になっていなければステップ２０３以下の処理に進む。
【００６８】
今回検出したタンク内圧と前回検出しＲＡＭ９３に記憶されたタンク内圧との差の絶対値が所定値以上であるかどうかを比較することによって、タンク内圧が急激に変化したかどうかを判定する（２０３）。タンク内圧の急変は、たとえば車の急発進などにより燃料液面が揺れ、燃料がタンク壁面に触れて急激に気化するときに生じる。このような状態は、ベーパーのリーク検出を行うのに適さないので、処理を抜ける。
【００６９】
タンク内圧の急変がないと判定されると、ステップ２０４に移り、燃料消費量が所定値以上であるかどうかを判定し、所定値以上でありかつ回数ダウンカウンタがゼロになっていれば、後述するバイパス弁オープン判定処理に入る（２０６）。これは、図８のステップ２０７以下の処理を所定回数実行しても１ｍｍＯＫフラグに１が設定されず、１ｍｍ径基準をクリアできない状態を意味する。
【００７０】
ステップ２０４における燃料消費量の算出は、処理のバックグラウンドで実行されている。すなわち、ＣＰＵ９１は、バックグラウンドで所定期間における燃料噴射弁６の開弁時間の和に所定の係数をかけてこの所定期間における燃料消費量に変換し、これをＲＡＭ９３に記憶し、所定期間ごとに書き替えている。
【００７１】
ステップ２０４において燃料消費量が所定値より小さいとき、またはステップ２０５においてカウンタ値がゼロでない、すなわち予定のモニター反復回数に達していないときは、ステップ２０７に移り１ｍｍＯＫフラグが１に設定されているかどうか調べる。この１ｍｍＯＫフラグは、始動後オープン処理で１ｍｍ径基準をクリアするとき、または後述するステップ２１０、２１２において設定される。
【００７２】
１ｍｍＯＫフラグが１に設定されていなければ、ステップ２０８に進み、センサ１１が現在示すタンク内圧またはセンサ１１の出力を所定回サンプリングした平均値（この明細書で、単に現在のタンク内圧というときは、処理の性質に応じて１回の測定値であってもよく、複数回サンプリングした値の平均値であってもよい。）がＲＡＭ９３に記憶されているそれまでのタンク内圧の最大値より大きければ、ＲＡＭ９３の最大値を現在のタンク内圧で書き換え、現在のタンク内圧がＲＡＭ９３に記憶されているそれまでのタンク内圧の最小値より小さければＲＡＭ９３に記憶されている最小値を現在のタンク内圧で書き替える。
【００７３】
こうして更新された最大値および最小値の差、すなわちタンク内圧の変動幅が所定値以上であれば（２０９）、１ｍｍ径以上の穴によるリークは無いと判定し、１ｍｍＯＫフラグを１に設定する（２１０）。ここで判定に用いる所定値は、始動時のエンジン水温（ＴＷ）をパラメータとしてＲＯＭ９２に格納されているマップから読み出した値を使用する。
【００７４】
タンク内圧の変動幅が所定値より小さいときは、ステップ２１１に進み、始動後オープン処理において大気開放して測定しＲＡＭ９３に記憶されているタンク内圧ＰＭ０と、内圧センサ１１から得られる現在のタンク内圧ＰＭ１との差が１ｍｍ径以上の穴によるリークを検出するための判定値（たとえば２６６．６Pa）以上であれば（２１１）、タンク系が負圧を保持する機能をもっており１ｍｍ径基準によるリークは無いと判定して１ｍｍＯＫフラグを１に設定する（２１２）。
【００７５】
ステップ２１３に進み、ＰＭ０―ＰＭ１が０．５ｍｍ径基準の判定値（たとえば６６６．６Pa）以上であるかどうかが判定される。この判定値以上であれば、タンク系は大きな負圧を保持する機能を持っており０．５ｍｍ径基準のリークが無いと一応判断することができる。しかし、車が高負荷で運転している状態、および車が高い場所から低い場所に移動する最中であって大気圧が高くなる方向に大きく変化している状態のような、特別な要因でリークの有無とは関係なくタンク内圧が負圧になることがあるので、ステップ２１４のキャンセル処理サブルーチンに入り、このような特別な要因がないと判定されると（すなわち、ステップ２１３の判定結果をキャンセルしないとされると）、０．５ｍｍＯＫフラグを立てる（２１５）。次に、回数カウンタがゼロに達していなければ（２１６）、回数カウンタを１減らして（２１７）処理を抜け、回数カウンタがゼロに達していればそのまま処理を抜ける。
【００７６】
内圧監視モニター処理を実行するプログラムは、図８の実施例においては、予め設定された時間間隔、たとえば８０ミリ秒ごとに呼び出され、回数カウンタがゼロになるまで（２０５）繰り返される。回数カウンタがゼロになると、図９に示すバイパス弁オープン判定処理（２０６）に移る。バイパス弁オープン処理のステップ３１２または３１３で内圧監視モニター完了フラグが立てられると、図８の処理は、ステップ２０１でこのフラグを検出して処理を抜ける。
【００７７】
バイパス弁オープン処理
図９に示されるバイパス弁オープン処理は、図８の処理において回数カウンタの値がゼロになったとき（２０５）に開始する。また、バイパス弁許可フラグが立っていることが検出されるとき（２０２）は、図９のステップ３０４から入る。図８のステップ２０８で更新されたタンク内圧の最大値が、始動後オープン処理で検出されＲＡＭ９３に記憶された、大気開放したときに測定されたタンク内圧ＰＭ０より所定値以上大きいかどうかが判定され（３０１）、大きいときはタンク系が始動時以後、正圧を保持する機能を持っていたことになるので、内圧監視モニター完了フラグを立てて（３１３）、処理を終了する。ステップ３０１の判定で用いられる所定値は、始動時のエンジン水温（ＴＷ）をパラメータとする値で、ＲＯＭ９２にテーブルの形で格納されている。
【００７８】
ステップ３０１での比較の結果がノーのときは、バイパス弁を開く許可フラグを立て（３０２）、図９に示す処理に費やす予め決められた時間をタンク系判定タイマーに設定する（３０３）。こうして設定されたタイマー値は当初ゼロではないのでステップ３０４を経てステップ３０５に進み、パージ制御弁３０を閉じる。ステップ３０６は、パージ制御弁の閉弁が安定するのを待つステップで、当初は遅延タイマーがゼロに達していないから、ステップ３０８に進み、現在のタンク内圧ＰＭ２をＲＡＭ９３に記憶する。
【００７９】
図９の処理ルーチンも図８の処理ルーチンと同様に所定の時間間隔、たとえば８０ミリ秒ごとに呼び出される。したがって、ステップ３０８を経て処理を抜けた後、再びこの処理に入り、遅延タイマー３０６がゼロになっていれば、バイパス弁およびベントシャット弁を開きタンク系を大気圧に開放する（３０７）。ステップ３０９において、大気開放後の現在のタンク内圧ＰＭ３が大気開放前のタンク内圧ＰＭ２から所定値以上増したかどうかを判定し、増していればタンク系は負圧を維持する機能を持っていたことになるので、１ｍｍ径以上の穴によるリークは無いと判定し、１ｍｍＯＫフラグを立て（３１０）、内圧監視モニター完了フラグを立てて処理を抜ける（３１２）。
【００８０】
ステップ３０９以降において、第１のリーク判定を行う。ステップ３０９の判定で負圧から大気圧に向かっての変動が所定値に達しないときはステップ３１１に移り、ＰＭ２―ＰＭ３が所定値以上であるかどうか、すなわち大気開放後のタンク内圧ＰＭ３が大気開放前のタンク内圧ＰＭ２から所定値以上小さくなったか（正圧から大気圧に向かって大きく変動したか）を判断する。ここでの所定値は、ステップ３０９で用いた値とは異なる値であってもよく、典型的にはＲＯＭ９２に格納されているエンジン始動時の水温（ＴＷ）をパラメータとするテーブルから読み出した値を用いる。
【００８１】
圧力の変動が大きければ、タンク系は圧力を維持する機能を持っていたことになるが、正圧からの変動は微小な穴によるリークの有無を検出するのに適さないので、ＯＫフラグを立てることなく完了フラグを立てて（３１２）処理を抜ける。ステップ３１１で圧力の変動が大きくないと判定されるときは、さらに判定処理を繰り返すため、完了フラグを立てることなく処理を抜ける。
【００８２】
判定処理を繰り返し、タンク系判定タイマーがゼロになると（３０４）、ステップ３１４においてステップ３１１と同様の判定を行い、正圧から大気圧に向かっての変動が大きければ完了フラグを立てて処理を終了する。変動が大きくなければ、タンク系が圧力を維持する機能を持っていないということなので、タンク系にリークが有ると判定し、第１のリーク有りフラグに１を設定してＲＡＭ９３に記憶し（３１５）、内圧監視モニター完了フラグを立てて処理を終了する。第１のリーク有りフラグは、上記の大穴判定条件の（１）で使用される。
【００８３】
次に、タンク減圧モニターを構成する大気開放、補正チェック、減圧、リークチェックおよびベーパチェックのそれぞれの処理について順次説明する。それぞれの処理ルーチンは、タンク減圧モニター完了フラグが１に設定されるまで、または次の処理ルーチンに移るまで、上記と同様に所定の時間間隔（たとえば、８０ミリ秒）で呼び出される。
【００８４】
大気開放モード
図１０は、大気開放部６１により実行される大気開放処理の流れ図を示す。大気開放処理の完了時に１に設定される完了フラグが１でないとき（５０１）、図１０の処理が開始する。ステップ５０２において、バイパス弁およびベントシャット弁を開き、パージ制御弁を閉じて、排出抑止系３１全体を大気開放する。ダウンタイマーである大気開放タイマーがゼロになって所定時間経過したならば（５０３）、ステップ５０４に進んで大気開放完了フラグに１を設定する。ステップ５０５に進み、内圧センサ１１の出力を大気開放終了時のタンク内圧Ｐ１としてＲＡＭ９３に記憶する。タンク内圧Ｐ１は、上記の大穴判定条件（４）で使用される。大気開放モードが終了するとき、次の補正チェックモードを実行できるよう補正チェック許可フラグに１を設定する（５０６）。
【００８５】
補正チェックモード
図１１は、補正チェック部６２により実行される補正チェック処理の流れ図を示す。、大気開放処理の完了時に設定される補正チェック許可フラグが１ならば補正チェック処理を開始する（６０１）。ステップ６０２において、バイパス弁２４およびパージ制御弁３０を閉じ、ベントシャット弁２６を開く。
【００８６】
ステップ６０３でダウンタイマーであるタンク内圧読み込みタイマーがゼロでなければ、内圧センサ１１の出力を検出して、タンク内圧の初期値Ｐ２としてＲＡＭ９３に記憶する（６０４）。タンク内圧読み込みタイマーを設けたのは、バイパス弁２４を開いた状態から閉じるとタンク内圧が変動するため、所定時間経過して圧力がある程度落ち着いた時のタンク内圧を読み込むためである。
【００８７】
所定時間経過して、タンク内圧読み込みタイマーがゼロになったとき（６０３）、補正チェックタイマーがゼロかどうか判断する（６０５）。補正チェックタイマーは、補正値算出に必要な時間が経過したかどうかを判断するためのものであり、上記のタンク内圧読み込みタイマーより大きい値に設定される。補正チェックタイマーがゼロになったならばステップ６０６に進む。
【００８８】
ステップ６０６では、現在のタンク内圧Ｐ３と、ステップ６０４でＲＡＭ９３に記憶されたタンク内圧の初期値Ｐ２とを比較し、タンク内圧が負圧側へ所定値以上変動しているかどうかを判断する。負圧側へ変動していれば、燃料タンク内の温度が低下することにより蒸発燃料が液化している状態であり、適切な補正値を得ることができないので、タンク減圧モニター完了フラグに１を設定し（６１０）、この運転サイクルにおけるタンク減圧モニターを禁止する。
【００８９】
ステップ６０６で負圧側への変動がなければ、単位時間あたりのタンク内圧の変動量を示す補正値ＲＶＡＲを、以下の式に従って算出する（６０７）。
【００９０】
【数１】
補正値ＲＶＡＲ ＝（Ｐ３−Ｐ２）／ 補正チェックタイマー経過時間
【００９１】
ステップ６０８に進み、算出された補正値ＲＶＡＲが所定値以上であれば、ベーパが大量に発生して二方向弁２３の正圧側コントロール圧にタンク内圧がはりついている可能性があり、そのような状態で算出された補正値は適切な値でないので、タンク減圧モニター完了フラグに１を設定して（６１０）、以降のタンク減圧モニターを禁止する。補正値ＲＶＡＲが所定値より小さければ、補正チェック許可フラグにゼロを設定し、次の減圧モードを実行するため減圧許可フラグに１を設定する（６０９）。得られた補正値ＲＶＡＲおよび（Ｐ３−Ｐ２）の値は、それぞれＲＡＭ９３に記憶され、ベーパチェックモードおよび大穴の判定条件（２）で使用される。
【００９２】
減圧モード
図１２および図１３は、減圧部６３により実行される減圧処理の流れ図を示す。補正チェック処理の完了時に設定される減圧モード許可フラグが１ならば、減圧処理を開始する（７０１）。さらに、オープン減圧完了時に設定されるＦＢ減圧許可フラグが１ならば、ステップ７２０のＦＢ減圧のサブルーチンに入る。当初はＦＢ減圧許可フラグがゼロなので、ステップ７０３に進み、ダウンカウンタであるオープン減圧カウンタを１減らして、カウンタがゼロになったかどうか判定する（７０４）。カウンタがゼロでなければ、予めＲＯＭ９２に記憶されている目標流量検索テーブルを検索し（７０５）、現在のタンク内圧に応じて目標パージ流量を決定し、決定された目標パージ流量に応じた開弁量だけパージ制御弁を開く。さらに、バイパス弁を開き、ベントシャット弁を閉じて、タンク系を減圧するオープン減圧を実行する（７０６）。このオープン減圧は、ステップ７０３に示されるようにオープン減圧カウンタの回数だけ繰り返し実行される。
【００９３】
ステップ７０４でカウンタがゼロになったならば、ＦＢ減圧許可フラグに１を設定し（７０７）、ＦＢ減圧で使用されるＦＢ減圧タイマーおよび完了タイマーに時間を設定し（それぞれ、たとえば３０秒および５秒に設定される）、流量持替フラグにゼロを設定する（７０８）。
【００９４】
図１３はＦＢ減圧サブルーチンを示し、図１２のオープン減圧が完了してＦＢ減圧許可フラグに１が設定され（７０７）後、ステップ７０２においてＦＢ減圧許可フラグが１と判断された時に実行される。
【００９５】
ステップ７２１で流量持替フラグが１かどうか判断され、オープン減圧終了時はゼロなので（図１２のステップ７０８）、ステップ７２２に進む。タンク内圧が、目標タンク内圧の下限値POBJLに達したならば、持替フラグを今度は１に設定し、目標タンク内圧を上限値POBJHに持ち替える（７２３）。反対に、ステップ７２１において持替フラグが１で、目標タンク内圧の上限値POBJHに達したならば、持替フラグをゼロに設定する（７２４および７２５）。このように、目標タンク内圧をその上限値および下限値の間で交互に持ち替えることにより、図５に示されるようにタンク内圧を目標タンク内圧の上限値と下限値の間で収束させる。
【００９６】
ステップ７２６に進み、目標タンク内圧および現在のタンク内圧の差に基づいて目標パージ流量を算出する。ここで、ｋは、圧力をパージ流量に換算するための係数である。ステップ７２７で、バイパス弁を開き、ベントシャット弁を閉じ、さらにステップ７２６で算出された目標パージ流量に対応する開弁量だけパージ制御弁を開いて、ＦＢ減圧を実行する。
【００９７】
ＦＢ減圧を開始した後、ステップ７３１および７３２において、目標パージ流量が、目標パージ流量の下限値QOBJLおよび上限値QOBJHの間にあるかどうか判断する。間にあるならば、完了タイマーをリセットしてスタートさせる（７３３）。完了タイマーは、前述したようにたとえば５秒に設定されるダウンタイマーであり、目標パージ流量が上限値または下限値にはりついてからの経過時間を測定する。ＦＢ減圧は、完了タイマーがゼロになった時、すなわち目標パージ流量が上限値または下限値にはりついて所定時間経過した時に終了するので、上限値および下限値の間にある場合にはタイマーをリセットする。
【００９８】
ステップ７３２でノーであるならば、パージ流量が目標パージ流量の上限値にはりついているということなので、目標パージ流量をその上限値QOBJHに設定し直す（７３４）。一方、ステップ７３１でノーであるならば、パージ流量が目標パージ流量の下限値にはりついているということなので、目標パージ流量をその下限値QOBJLに設定し直す（７３５）。
【００９９】
ステップ７４１では、完了タイマーがゼロかどうか判断し、ゼロならば、パージ流量が下限値にはりついて所定時間経過したことを示すので、ステップ７４２に進み、減圧タイマーが所定時間（たとえば、２４．５秒）以上かどうか判断する。減圧タイマーは、前述したようにたとえば３０秒に設定されたダウンタイマーなので、このステップは、減圧処理時間Ｔ４が５．５秒（上記の大穴判定条件（６）の所定値Ｓ５に対応する）以上かかったかどうかを判断している。減圧処理時間Ｔ４が５．５秒以内ならば、ステップ７４２の条件がイエスとなり、ステップ７４３に進む。このような短時間で減圧処理が終了したということは、燃料タンク９が満タンでフロート弁４６（図１）が作動したためと考えられるので、フロート弁作動フラグに１を設定する。このフロート弁作動フラグは、上記の大穴判定条件（６）で使用される。減圧処理時間が５．５秒より長くかかったならば、フロート弁４６が作動していないと考えられるので、ステップ７３６へ進む。
【０１００】
ステップ７３６では、減圧タイマーがゼロかどうか判断し、所定時間経過してゼロになったならば、減圧処理を終えるため、減圧モード終了時のタンク内圧をＰ４としてＲＡＭ９３に記憶する（７３８）。また、ステップ７３６で減圧タイマーがゼロでなくても、目標パージ流量が下限値にはりついて所定時間（５秒）経過した場合には（７３７）、減圧を終了させるためステップ７３８に進む。ステップ７３９において、次のリークチェックモードに移行するためリークチェック許可フラグに１を設定し、さらに大穴判定処理で使用するオープン無フラグをリセットする。
【０１０１】
リークチェックモード
図１４〜図１６は、リークチェック部６５により実行されるリークチェック処理の流れ図を示す。減圧モード処理の完了時に１に設定されるリークチェック許可フラグが１ならば（８０１）、リークチェック処理を開始する。
【０１０２】
ステップ８０２では、バイパス弁２４、ベントシャット弁２６およびパージ制御弁３０をすべて閉じる。ステップ８０３に進み、タンク内圧読み込みタイマーがゼロかどうか判断する。タンク内圧読み込みタイマーがゼロでなければ、内圧センサ１１の出力を検出し、タンク内圧の初期値Ｐ５としてＲＡＭ９３に記憶する（８０４）。タンク内圧読み込みタイマーを設けたのは、前述したように、所定時間経過して程度落ち着いたタンク内圧を読み込むためである。
【０１０３】
ステップ８０３でタンク内圧読み込みタイマーがゼロならば、ダウンタイマーである復圧履歴監視タイマー（たとえば、５秒に設定される）がゼロかどうか判断し（８０５）、最初はゼロでないのでステップ８３０に進み、第１の大穴判定サブルーチンを実行する。第１の大穴判定サブルーチンでは、前述した大穴判定条件の（１）から（５）について判断する。第１の大穴判定サブルーチンを実行した後、ステップ８０９に進む。リークチェックタイマーがまだゼロになっていないのでステップ８１６に進み、大穴判定終了後に立てられる大穴判定済みフラグが１でないので、いったんこの処理ルーチンを抜ける。
【０１０４】
再びこの処理ルーチンに入ったとき、ステップ８０５で復圧履歴タイマーがゼロならば（すなわち、５秒経過したならば）、大穴判定済フラグが１かどうか判断し（８０６）、最初はこのフラグは立っていないので、ステップ８５０に進んで第２の大穴判定サブルーチンを実行する。第２の大穴判定サブルーチンでは、前述した大穴判定条件の（６）について判断した後に、最終的に大穴の有無を判定する。その後、大穴判定済みフラグに１が設定される（８１４）。このように、第１および第２の大穴判定サブルーチンは、リークチェック処理が開始してから５秒以内に１回だけ実行される。
【０１０５】
大穴判定が実行されて大穴判定済フラグに１が立つと、ステップ８０７以下の復圧履歴監視を実行する。復圧履歴監視は、ステップ８０８でリセットされる復圧履歴タイマーの計測時間ごとに、ステップ８０８で読み込んだタンク内圧を時系列にＲＡＭ９３に記憶し（すなわち、前回のタンク内圧をＰ６(n)、前々回のタンク内圧をＰ６(n-1)．．．と記憶する）、ステップ８０７でタンク内圧の圧力変動量を算出する。すなわち、現在のタンク内圧Ｐ６および前回のタンク内圧Ｐ６（ｎ）の差Ｐ６−Ｐ６(n)（これを、△Ｐｘとする）と、前回のタンク内圧Ｐ６(n)および前々回のタンク内圧Ｐ６(n−1)の差Ｐ６(n)−Ｐ６(n−1)（これを、△Ｐｙとする）を算出し、△Pｘと△Pｙとの差の絶対値｜△Ｐｘ−△Ｐｙ｜が所定値（たとえば、４００．０Pa）以上ならば、燃料タンクが満タンでフロート弁が作動している状態と判断し、このような状態では適切な圧力変動量を算出できないので、タンク減圧モニター完了フラグに１を設定して、この運転サイクルのタンク減圧モニターを禁止する（８１５）。
【０１０６】
復圧履歴監視を終えた後、ステップ８０９に進み、リークチェックタイマーがゼロかどうか判断する。所定時間経過してゼロになると、現在のタンク内圧Ｐ６およびステップ８０４で記憶されたタンク内圧の初期値Ｐ５に基づいて、以下の式に従い、リークチェックモードの単位時間あたりの圧力変動量ＬＶＡＲを算出する（８１０）。算出されたＬＶＡＲはＲＡＭ９３に記憶され、ベーパチェックモードで使用される。
【０１０７】
【数２】
0003681595.tif 000002
【０１０８】
ステップ８１１に進み、内圧センサ１１の出力を検出し、リークチェック終了時のタンク内圧Ｐ７としてＲＡＭ９３に記憶する。ステップ８１２に進み、リークチェック許可フラグにゼロを設定し、次のベーパチェックモードを実行するため、ベーパチェック許可フラグに１を設定する。
【０１０９】
ステップ８０９でリークチェックタイマーがゼロでなければ、大穴判定済みフラグが１かどうか調べ（８１６）、１が設定されていれば、現在のタンク内圧Ｐ６が、大気圧近傍の所定範囲内にあるかどうか判断する（８１７）。所定範囲内にあるならばステップ８１８に進み、現在のタンク内圧Ｐ６と、前回のタンク内圧Ｐ６(n)との差の絶対値｜Ｐ６−Ｐ６(n)｜が、所定値（たとえば、１３３．３Pa）以上かどうか判断する。所定値より小さければ、圧力がほぼ落ち着いてきており、リークチェックタイマーによる時間経過を待つ必要がないので、ステップ８１０に進み、単位時間あたりの圧力変動量を算出する。この場合の算出は、以下の式に従う。
【０１１０】
【数３】
0003681595.tif 000003
【０１１１】
上記の処理において、リークチェック開始直後（たとえば、０．１秒後）のタンク内圧Ｐ５およびリークチェックを開始して所定時間経過後（たとえば、５秒後）のタンク内圧Ｐ６は、上記の大穴判定条件（３）〜（５）で使用される。
【０１１２】
大穴判定
図１５は、上記のステップ８３０で、大穴判定部７８により実行される第１の大穴判定サブルーチンの流れ図を示す。ステップ８３１において、図１４のステップ９１４で立てられる大穴判定済フラグが１かどうか判断し、最初にこのルーチンに入る時は１でないので、ステップ８３２に進む。ステップ８３２では、ステップ８３３以下に実行する大穴判定条件を１つでも満足しない場合に立てられるオープン無フラグが１かどうか判断し、最初にこのルーチンに入る時は図１３のステップ７３９で設定されたようにゼロなので、ステップ８３３に進む。
【０１１３】
ステップ８３３〜８３７は、前述した大穴判定条件の（１）から（５）のそれぞれに対応する条件を判断する。ステップ８３３は判定条件（１）に対応し、内圧監視モニターで第１のリーク有りフラグが１に設定されたか（図９のステップ３１５）を、ＲＡＭ９３に記憶された第１のリーク有りフラグを読み出して判断する。１が設定されているならば、判定条件（１）を満たし、ステップ９３４に進む。
【０１１４】
ステップ８３４は判定条件（２）に対応し、補正チェックモードでＲＡＭ９３に記憶された圧力変動量Ｐ３−Ｐ２（図１１のステップ６０７）が所定値Ｓ１（たとえば、１３３．３Pa）以下かどうか判断する。所定値Ｓ１以下ならば、判定条件（２）を満たし、ステップ８３５に進む。ステップ８３５は判定条件（３）に対応し、ＲＡＭ９３に記憶された、リークチェック処理の開始直後（例えば、開始から０．１秒後）のタンク内圧Ｐ５から、減圧終了時のタンク内圧Ｐ４を引いた差が、所定値Ｓ２（たとえば、１０６６．６Pa）以下かどうか判断する。所定値Ｓ２より大きければ、判定条件（３）を満たし、ステップ８３６に進む。
【０１１５】
ステップ８３６は判定条件（４）に対応し、ＲＡＭ９３に記憶された、大気開放終了時のタンク内圧Ｐ１とリークチェック開始直後のタンク内圧Ｐ５とを比較し、その差の絶対値が所定値Ｓ３（たとえば、４００．０Pa）以上かどうか判断する。所定値Ｓ３より小さければ、判定条件（４）を満たし、ステップ８３７に進む。ステップ８３７は判定条件（５）に対応し、リークチェック処理を開始してから所定時間経過後（たとえば、５秒）のタンク内圧Ｐ６から、リークチェック開始直後のタンク内圧Ｐ５を引いた差が、所定値Ｓ４（たとえば、２００．０Pa）以上かどうか判断する。所定値Ｓ４より小さければ、判定条件（５）を満たし、この処理を抜ける。
【０１１６】
ステップ８３３〜８３７の判定条件（１）〜（５）のいずれかを満たさない場合には大穴と判定されないないので、ステップ８３９に進み、オープン無フラグに１を設定してこの処理を抜ける。
【０１１７】
図１６は、図１４のステップ８５０で、大穴判定部７８により実行される第２の大穴判定サブルーチンであり、このサブルーチンで最終的に大穴の有無が判定される。ステップ８５１において、オープン無フラグがゼロであり、かつフロート弁作動フラグがゼロである場合にのみステップ８５２に進む。すなわち、図１５の第１の大穴判定で判定条件をすべて満たした場合、かつ判定条件（６）に対応する減圧処理時間Ｔ４が所定時間Ｓ５（たとえば、５．５秒）より長かった場合にのみ、ステップ８５２で大穴有りフラグに１が設定され、大穴が検出されたことを示す。この実施例では、判定条件（１）〜（６）のすべてを満たす場合にのみ大穴有りと判定するが、判定条件（１）〜（６）のうち、任意の１または複数の条件を使用して大穴判定を行うこともできる。
【０１１８】
ステップ８５３では、大穴有りと判定された時の状態をＲＡＭ９３に記憶する。具体的には、減圧終了時のタンク内圧Ｐ４とリークチェック開始直後のタンク内圧Ｐ５との差圧、およびその所定差圧（上記の所定値Ｓ２）、大穴有りと判定されたことを示すコードなどを記憶する。ステップ８５４では、大穴有りと判定されたので、タンク減圧モニター完了フラグに１を設定し、この運転サイクルにおける以降のタンク減圧モニターを禁止する。
【０１１９】
ベーパチェックモード
図１７は、ベーパチェック部６６により実行されるベーパチェック処理の流れ図を示す。リークチェック処理の完了時に設定されるベーパチェック許可フラグが１ならば（９０１）、ベーパチェック処理を開始する。
【０１２０】
ステップ９０２で、補正チェックモードにおける燃料消費量ＲＧＡＳと、リークチェックモードにおける燃料消費量ＬＧＡＳとの差の絶対値が、所定値（たとえば、１０ｃｃ）以上かどうか判断する。燃料消費量は、前述したようにバックグラウンドで算出されている。ＲＧＡＳおよびＬＧＡＳの差の絶対値が所定値以上ならば、両モードの運転状態が大きく異なるため正確な判定を行うことができないと判断し、タンク減圧モニター完了フラグに１を設定し、この運転サイクルのタンク減圧モニターを禁止する（９１１）。この所定値は、微小な穴によるリーク検出に対し、補正チェックモードとリークチェックモードとで運転状態が異なることによる影響を示すデータを実験およびシミュレーションで蓄積し、その結果に基づいて決定する。
【０１２１】
ＲＧＡＳとＬＧＡＳとの差の絶対値が所定値より小さければ、バイパス弁２４およびベントシャット弁２６を開き、パージ制御弁３０を閉じて、タンク系を大気圧に開放する（９０３）。ステップ９０４に進み、現在のタンク内圧と、リークチェックのステップ８１１（図１４）でＲＡＭ９３に記憶されたリークチェック終了時のタンク内圧Ｐ７とを比較し、タンク内圧が正圧から大気圧に向けて低下したかどうか判断する。
【０１２２】
正圧から大気圧に向けて所定値（たとえば、１３３．３Pa）以上低下したならば、ベーパが大量に発生してリークチェック終了時にタンク内圧が正圧にまで変動していたことを示し、判定を正確に行うことができないので、タンク減圧モニター完了フラグに１を設定してモニターを禁止する（９１１）。正圧から大気圧に所定値以上低下したのでなければ、判定を行うための最終計測値を、以下の式に従って算出する（９０５）。
【０１２３】
【数４】
最終計測値＝ＬＶＡＲ−（補正係数＊ＲＶＡＲ）
【０１２４】
ここで、ＬＶＡＲは図１４のステップ８１０で得られたリークチェック中の単位時間あたりの圧力変動量であり、ＲＶＡＲは図１１のステップ６０７で得られた補正チェック中の単位時間あたりの圧力変動量である。補正係数は、補正チェックモードにおける大気圧からの圧力上昇量と、リークチェックモードにおける負圧からの圧力上昇量とは条件が異なるので、それを補正するための係数であり、例えば１．５〜２．０である。
【０１２５】
ステップ９０６および９０７では、第２のリーク判定が行われる。ステップ９０６において、算出された最終計測値が判定値１（たとえば、１０６６．６Pa）以上ならば、リークチェックモードの圧力上昇はタンク系のリークによるものと考えられるので、タンク系にリークが有ると異常判定（ＮＧ判定）し、第２のリーク有りフラグに１を設定したうえで（９０８）、ＯＫフラグに「０」を設定する（９０９）。算出された最終計測値が判定値１より小さければ、ステップ９０７に進む。
【０１２６】
ステップ９０７において、算出された最終計測値が判定値２（たとえば、４００．０Pa）以下ならば、リークチェックモードの圧力上昇はベーパの発生によるものと考えられるので、タンク系にリークが無く正常と判定（ＯＫ判定）し、ＯＫフラグに「１」を設定する（９１０）。最終計測値が判定値２より大きければ、すなわち、最終計測値が判定値２より大きく判定値１より小さい場合には、リークの有／無を正確に判定することができないので、タンク減圧モニター完了フラグに１を設定し、タンク減圧モニターを禁止する（９１１）。
【０１２７】
点灯制御
図１８および図１９は、ＭＩＬ点灯制御部８１により実行される点灯制御の流れ図を示し、図７の（ａ）のパターンに対応する。
【０１２８】
図１８の点灯制御ルーチンは、第１のリーク判定、第２のリーク判定またはその他の故障診断のいずれかが実行されてモニター完了フラグに１が設定されたときに処理が開始する。いずれかのモニターが完了したならば（１０１）、ステップ１０３〜１０７において、今回の運転サイクルでその他の故障、第２のリークおよび第１のリークが検出されたかどうか判断する。いずれかが検出されれば、点灯フラグに１を設定してＭＩＬを点灯する（１１５）。
【０１２９】
その他の故障も第２のリークも検出されず、今回の運転サイクルで第１のリーク有りフラグが１に設定されたならば（１０７）、ＭＩＬを点灯する前に、今回の運転サイクルで大穴有りフラグが１に設定されたかどうか調べる（１０９）。
【０１３０】
大穴有りフラグが１に設定されたならば、ＭＩＬ消去カウンタに１を設定したうえで（１１１）、ＭＩＬを点灯する（１１５）。大穴有りフラグが１に設定されていなければ、すなわち第１のリークのみが検出されたならば、ＭＩＬ消去カウンタに３を設定したうえで（１１３）、ＭＩＬを点灯する（１１５）。
【０１３１】
ＭＩＬ消去カウンタは、ＭＩＬを消灯するかどうか判断するためのダウンカウンタであり、ゼロになったとき、それに応答してＭＩＬは消灯される。この実施例において、ＭＩＬは、大穴によるリークが改善した場合にのみ早く消灯され、その他のリークおよび故障の場合は誤診断と判断されない限り消灯されないように、ステップ１１１および１１３では、大穴が検出された場合とそうでない場合とでＭＩＬ消去カウンタは異なる値に設定される。
【０１３２】
ステップ１０７において今回の運転サイクルで第１のリーク有りフラグが１でなければ、今回の運転サイクルではいかなる故障およびリークも検出されなかったということなので、ステップ１１７に進み、消灯制御ルーチンを実行する。
【０１３３】
図１９は、図１８のステップ１１７で実行される消灯制御ルーチンの流れ図を示す。ステップ１３１においてＭＩＬ消去カウンタがゼロより大きいかどうか調べ、ゼロより大きくなければ（すなわち、ＭＩＬ消去カウンタがゼロならば）、現在ＭＩＬは点灯していないのでこの処理ルーチンを抜ける。ＭＩＬ消去カウンタがゼロより大きければ、ＭＩＬが現在点灯しているので、以降のステップを実行する。
【０１３４】
ステップ１３３では、ＭＩＬ消去カウンタが１減らされる。すなわち、今回の運転サイクルにおいていかなる故障およびリークも検出されなかったときには、ＭＩＬ消去カウンタを１減らす。その結果、ステップ１３５においてＭＩＬ消去カウンタがゼロになったならば、点灯フラグにゼロを設定してＭＩＬを消灯し（１３７）、ＭＩＬ消去カウンタがゼロでなければ、そのまま処理を抜ける。
【０１３５】
図１８を参照してわかるように、ＭＩＬ消去カウンタは、第１のリークおよび大穴が検出された時には１に設定され、第１のリークのみが検出されて大穴が検出されない時は３に設定される。したがって、図７の（ａ）のパターンのように、前回の運転サイクルにおいて第１のリークおよび大穴が検出されると、ＭＩＬ消去カウンタは１に設定されてＭＩＬが点灯する。その後、今回の運転サイクルにおいて、第１のリークが検出されなければ、ＭＩＬ消去カウンタがゼロとなり、ＭＩＬは消灯する。これは、前回の運転サイクルにおいて検出された第１のリークは大穴によるものであり、今回の運転サイクルにおいて大穴が解消されたと判断できるからである。
【０１３６】
一方、前回の運転サイクルで第１のリークのみ検出されて大穴が検出されなかった場合、図１８のステップ１１１に示すようにＭＩＬ消去カウンタは３に設定され、ＭＩＬが点灯する。その後、今回の運転サイクルで第１のリークが検出されなければ、ＭＩＬ消去カウンタは１だけ減るが（１３３）、ゼロにはならないのでＭＩＬは点灯し続ける（１３５）。こうして、大穴によるリークに起因して点灯したＭＩＬのみを早く消灯することができる。
【０１３７】
なお、上記のように第１のリークのみ検出され、この第１のリークが大穴によるものでない場合、図１８のステップ１１３でＭＩＬ消去カウンタが３に設定されるように、３回の運転サイクルにわたって第１のリークが検出されなければ、第１のリーク検出が誤診断だったと判断してＭＩＬを消灯する。このような判断は、第２のリークおよびその他の故障についても同様に適用されることができる。
【０１３８】
図２０は、図７の（ｂ）のパターンに対応する流れ図を示し、運転サイクル開始時のＭＩＬの点灯制御を示す。運転サイクル開始後に、図１８に示すような点灯制御をさらに実行することは任意である。
【０１３９】
図１８と異なり、ステップ１５１で始動モードかどうか判断する。これは、たとえばＮＥセンサ１６（図１）から出力されるエンジン回転数によって判断することができる。始動モードならば、以降のステップを図１８に示したのと同様に実行する。すなわち、ステップ１５３〜１５７において、前回の運転サイクルにおいて、その他の故障、第２のリークおよび第１のリークのいずれかが検出されたならば、ＭＩＬを点灯する（１６５）。前回の運転サイクルで第１のリーク有りフラグが１に設定された場合には（１５７）、ＭＩＬを点灯する前に、さらに前回の運転サイクルで大穴有りフラグが１に設定されたかどうか調べる（１５９）。
【０１４０】
大穴有りフラグが１に設定されていればＭＩＬ消去カウンタを１に設定し（１６１）、大穴有りフラグが１に設定されていなければＭＩＬ消去カウンタを３に設定したうえで（１６３）、ＭＩＬを点灯する（１６５）。ステップ１５７において、前回の運転サイクルで第１のリーク有りフラグが１に設定されなかったならば、ステップ１６７に進んで消灯制御ルーチンを実行する。
【０１４１】
消灯制御ルーチンは、図１９と同じである。すなわち、ＭＩＬ消去カウンタがゼロより大きければＭＩＬが点灯中なので、ＭＩＬ消去カウンタを１減らす。ＭＩＬ消去カウンタがゼロならば、ＭＩＬを消灯する。こうして、運転サイクル開始時に、前々回の運転サイクルで大穴によるリークに起因して点灯したＭＩＬを、前回の運転で大穴が解消されたと判断されたならば、今回の運転サイクル開始時に消灯することができる。
【０１４２】
【発明の効果】
請求項１の発明によると、いくつかの条件を考慮して大量リークを判定することができるので、良好な精度で大量リークを判定することができる。
【０１４３】
請求項２の発明によると、大量リークに起因して警告灯が点灯している間に大量リーク無しと判定されれば警告灯を消灯するので、大量リークが直ったにもかかわらず警告灯が点灯しつづけることを回避することができる。
【図面の簡単な説明】
【図１】この発明による蒸発燃料処理装置を示す図。
【図２】この発明に関連するＥＣＵの機能ブロック図。
【図３】この発明による蒸発燃料処理装置のリークの有無を判定するときの圧力の変化を示す図。
【図４】図２におけるタンク減圧モニターにおけるタンク内圧の変化を示す図。
【図５】図３における減圧モードにおけるタンク内圧の変化を示す図。
【図６】燃料タンクに大穴があるときの、タンク減圧モニターにおけるタンク内圧の変化を示す図。
【図７】大穴によるリークに起因してＭＩＬが点灯している間に、第１のリークが検出されなかったことに応答してＭＩＬを消灯するタイミングの２つのパターンを示す図。
【図８】内圧監視モニター処理を示す流れ図。
【図９】バイパス弁オープン判定処理を示す流れ図。
【図１０】大気開放処理を示す流れ図。
【図１１】補正チェック処理を示す流れ図。
【図１２】減圧処理を示す流れ図。
【図１３】フィードバック減圧処理を示す流れ図。
【図１４】リークチェック処理を示す流れ図。
【図１５】第１の大穴判定処理を示す流れ図。
【図１６】第２の大穴判定処理を示す流れ図。
【図１７】ベーパチェック処理を示す流れ図。
【図１８】点灯制御処理の一例を示す流れ図。
【図１９】点灯制御における消灯処理を示す流れ図。
【図２０】点灯制御処理の他の一例を示す流れ図。
【符号の説明】
１    エンジン（内燃機関）                        ２  吸気管
５    電子制御ユニット（制御手段）                ６  燃料噴射弁
９    燃料タンク        １１  内圧センサ        ２０  チャージ通路
２３  圧力調整弁        ２４  バイパス弁        ２６  ベントシャット弁
３０  パージ制御弁      ３６  ＭＩＬ
【図１】
0003681595.tif 000004
【図２】
0003681595.tif 000005
【図３】
0003681595.tif 000006
【図４】
0003681595.tif 000007
【図５】
0003681595.tif 000008
【図６】
0003681595.tif 000009
【図７】
0003681595.tif 000010
【図８】
0003681595.tif 000011
【図９】
0003681595.tif 000012
【図１０】
0003681595.tif 000013
【図１１】
0003681595.tif 000014
【図１２】
0003681595.tif 000015
【図１３】
0003681595.tif 000016
【図１４】
0003681595.tif 000017
【図１５】
0003681595.tif 000018
【図１６】
0003681595.tif 000019
【図１７】
0003681595.tif 000020
【図１８】
0003681595.tif 000021
【図１９】
0003681595.tif 000022
【図２０】
0003681595.tif 000023