(57)【要約】    【課題】  より簡便な手法でフィラーキャップ外れを含む大孔漏れを判定することができる蒸発燃料処理装置の故障診断装置を提供する。    【解決手段】  パージ通路３２を介してパージガスが所定流量ＱＰＧＣＦＣＡＰ以上の流量で、かつ所定時間ＴＭＦＣＡＰ以上継続して吸気管２に供給されたとき、第１判定実行フラグＦＦＣＡＰＣＯＮＤが「１」に設定される（Ｓ２０５）。第１判定実行フラグＦＦＣＡＰＣＯＮＤが「１」である場合において、フュエルカット運転が開始され、なましタンク内圧ＤＰＴＮＫＡＶＥが所定負圧ＤＰＦＣＡＰに達するまでに要した時間が、所定時間ＴＭＦＣＡＰより短いとき、大孔漏れが有ると判定される（Ｓ２０７，Ｓ２０８，Ｓ２１０）。【選択図】  図３
2006258029.tif 000002
【特許請求の範囲】
【請求項１】
燃料タンクと、該燃料タンク内で発生する蒸発燃料を吸着する吸着剤を有するキャニスタと、該キャニスタと前記燃料タンクとを接続する第１の通路と、前記キャニスタと内燃機関の吸気系とを接続する第２の通路とを備えた蒸発燃料処理装置の故障を診断する故障診断装置において、
前記蒸発燃料処理装置内の圧力を検出する圧力検出手段と、
前記機関への燃料供給を一時的に遮断する燃料供給遮断運転を開始した直後における、前記圧力検出手段による検出圧力に基づいて前記蒸発燃料処理装置の漏れの有無を判定する漏れ判定手段とを備えることを特徴とする蒸発燃料処理装置の故障診断装置。
【請求項２】
前記漏れ判定手段により漏れがあると判定された後に、前記第２の通路を介して蒸発燃料を前記吸気系に供給しつつ、前記漏れがなくなった可能性を判定する確認手段と、
該確認手段により前記漏れがなくなった可能性があると判定されたときに、前記漏れ判定手段に、前記漏れ判定を再度実行させる再判定実行手段とを備えることを特徴とする請求項１に記載の蒸発燃料処理装置の故障診断装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、燃料タンク内で発生する蒸発燃料を一時的に貯蔵し、貯蔵した蒸発燃料を内燃機関に供給する蒸発燃料処理装置の故障を診断する故障診断装置に関する。
【背景技術】
【０００２】
燃料タンクの取り付けられるフィラーキャップが外れていると、蒸発燃料処理装置の漏れ判定を行ったときに、漏れがあると判定される。このような場合には、フィラーキャップ外れであることを特定できることが望ましく、特許文献１には、フィラーキャップ外れを判定する手法が示されている。この手法によれば、機関停止前に燃料タンク内圧力に基づいて蒸発燃料処理装置の漏れが判定されるとともに、機関停止後に運転が再開されたときの燃料タンク内圧力に基づいて蒸発燃料処理装置の漏れが判定され、機関停止前の漏れがないと判定され、機関停止後の運転再開時に漏れが有ると判定されたときは、フィラーキャップ外れと判定される。
【０００３】
【特許文献１】特許第３１７１０４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記従来の装置では、２度の漏れ判定を行い、その結果に基づいてフィラーキャップ外れの判定がなされるので、判定に要する時間が長い、あるいは判定処理が煩雑であるという課題があった。
【０００５】
本発明はこの点に着目してなされたものであり、より簡便な手法でフィラーキャップ外れを含む大孔漏れの有無を判定することができる蒸発燃料処理装置の故障診断装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため請求項１に記載の発明は、燃料タンク（９）と、該燃料タンク（９）内で発生する蒸発燃料を吸着する吸着剤を有するキャニスタ（３３）と、該キャニスタ（３３）と前記燃料タンク（９）とを接続する第１の通路（３１）と、前記キャニスタ（３３）と内燃機関の吸気系（２）とを接続する第２の通路（３２）とを備えた蒸発燃料処理装置の故障を診断する故障診断装置において、前記蒸発燃料処理装置内の圧力を検出する圧力検出手段（１５）と、前記機関への燃料供給を一時的に遮断する燃料供給遮断運転を開始した直後における、前記圧力検出手段による検出圧力（ＤＰＴＮＫＡＶＥ）に基づいて前記蒸発燃料処理装置の漏れの有無を判定する漏れ判定手段とを備えることを特徴とする。
【０００７】
請求項２に記載の発明は、請求項１に記載の蒸発燃料処理装置の故障診断装置において、前記漏れ判定手段により漏れがあると判定された後に、前記第２の通路（３２）を介して蒸発燃料を前記吸気系（２）に供給しつつ、前記漏れがなくなった可能性を判定する確認手段と、該確認手段により前記漏れがなくなった可能性があると判定されたときに、前記漏れ判定手段に、前記漏れ判定を再度実行させる再判定実行手段とを備えることを特徴とする。
【０００８】
前記漏れ判定手段は、前記燃料供給遮断運転開始時点から所定判定時間（ＴＭＦＣＡＰ）内に前記検出圧力（ＤＰＴＮＫＡＶＥ）が大気圧近傍の圧力（ＤＰＦＣＡＰ）に達したとき、前記蒸発燃料処理装置に漏れがあると判定することが望ましい。
前記漏れ判定手段は、前記第２の通路（３２）を介して前記機関の吸気系に供給される蒸発燃料と空気の混合気の流量（ＱＰＧＣ）が所定流量（ＱＰＧＣＦＣＡＰ）以上であるとき、前記漏れ判定を実行することが望ましい。
【０００９】
前記蒸発燃料処理装置を閉塞状態とし、前記吸気系（２）の負圧を導入することにより、前記圧力検出手段（１５）により検出される圧力（ＤＰＴＮＫＡＶＥ）が所定負圧（ＤＰＦＢＥＮＤ）となるまで減圧する減圧手段と、該減圧手段による減圧が判定期間（ＱＰＧＳＭＤＥＣ≦ＱＰＧＤＥＣ９が成立する期間）内に終了しないとき、前記蒸発燃料処理装置に漏れが有ると判定する第２の漏れ判定手段とをさらに備えることが望ましい。このように２つの漏れ判定手段を備えることにより、漏れを迅速に検出することができる。
【００１０】
前記再判定実行手段は、前記確認手段により前記漏れがなくなった可能性があると判定されたときに、前記減圧手段及び第２の漏れ判定手段に、前記漏れ判定を再度実行させることが望ましい。
【発明の効果】
【００１１】
請求項１に記載の発明によれば、燃料供給遮断運転を開始した直後における、検出圧力に基づいて蒸発燃料処理装置の漏れの有無が判定される。燃料供給遮断運転中は、第２の通路に設けられたパージ制御弁が閉弁され、機関へ蒸発燃料の供給が停止されるため、圧力検出手段により検出される圧力は、蒸発燃料処理装置に大孔による漏れ、例えばフィラーキャップ外れが無ければ、徐々に大気圧向かって上昇するが、大孔による漏れがあるときは、急速に大気圧に達する。したがって、燃料供給遮断運転開始直後においてこの違いを検出することにより、大孔漏れの有無を正確かつ迅速に判定することができる。また、燃料供給遮断運転中に漏れ判定を実行することにより、特別な判定期間を確保する必要がなく、機関運転に何ら影響を与えることなく判定を行うことができる。
【００１２】
請求項２に記載の発明によれば、蒸発燃料処理装置に漏れがある判定された後に、第２の通路を介して蒸発燃料を吸気系に供給しつつ、前記漏れがなくなった可能性が確認手段により判定され、前記漏れがなくなった可能性があると判定されたときに、前記漏れ判定が再度実行される。したがって、漏れが有るとの最初の判定が、例えばフィラーキャップ外れのためになされた場合に、漏れが有ることを示す警告表示に対応して運転者がフィラーキャップを取り付けたときには、確認手段により漏れがなくなった可能性が高いことが判定される。そして、漏れ判定の再実行により、漏れが無いと判定されたときは、警告表示を直ちに消すことが可能となる。したがって、運転者が必要な措置を講じたにも拘わらず警告表示がなかなか消えないという不具合を解消することができる。
【発明を実施するための最良の形態】
【００１３】
以下本発明の実施の形態を図面を参照して説明する。
図１は、本発明の一実施形態に係る内燃機関及び蒸発燃料処理装置の構成を示す図である。同図において、内燃機関（以下単に「エンジン」という）１は吸気管２を有し、吸気管２の途中にはスロットル弁３が配されている。また、スロットル弁３にはスロットル弁開度（ＴＨ）センサ４が連結されており、当該スロットル弁３の開度に応じた電気信号を出力して電子制御ユニット（以下「ＥＣＵ」という）５に供給する。
【００１４】
燃料噴射弁６は、吸気管２の途中であってエンジン１とスロットル弁３との間の図示しない吸気弁の少し上流側に各気筒毎に設けられている。また、各燃料噴射弁６は燃料供給管７を介して燃料タンク９に接続されており、燃料供給管７の途中には燃料ポンプ８が設けられている。燃料タンク９は給油のための給油口１０を有しており、給油口１０にはフィラーキャップ１１が取り付けられている。
【００１５】
燃料噴射弁６はＥＣＵ５に電気的に接続され、該ＥＣＵ５からの信号によりその開弁時間が制御される。吸気管２のスロットル弁３の下流側には吸気管内絶対圧ＰＢＡを検出する吸気管内絶対圧（ＰＢＡ）センサ１３、及び吸気温ＴＡを検出する吸気温（ＴＡ）センサ１４が装着されている。これらのセンサの検出信号は、ＥＣＵ５に供給される。
【００１６】
エンジン１の図示しないカム軸周囲又はクランク軸周囲にはエンジン回転数（エンジン回転速度）を検出するエンジン回転数（ＮＥ）センサ１７が取付けられている。エンジン回転数センサ１７はエンジン１のクランク軸の１８０度回転毎に所定のクランク角度位置でパルス（ＴＤＣパルス）を出力する。エンジン１の冷却水温ＴＷを検出するエンジン水温センサ１８及びエンジン１の排気中の酸素濃度を検出する酸素濃度センサ（以下「ＬＡＦセンサ」という）１９が設けれられており、これらのセンサ１７〜１９の検出信号はＥＣＵ５に供給される。ＬＡＦセンサ１９は、排気中の酸素濃度（エンジン１に供給される混合気の空燃比）にほぼ比例する検出信号を出力する。
【００１７】
ＥＣＵ５にはさらに、大気圧ＰＡを検出する大気圧センサ４１、及びエンジン１により駆動される車両の走行速度（車速）ＶＰを検出する車速センサ４２が接続されており、これらのセンサの検出信号がＥＣＵ５に供給される。
燃料タンク９は、チャージ通路３１を介してキャニスタ３３に接続され、キャニスタ３３は、吸気管２のスロットル弁３の下流側にパージ通路３２を介して接続されている。
【００１８】
キャニスタ３３は、燃料タンク９内の蒸発燃料を吸着（捕集）するための活性炭を内蔵する。キャニスタ３３には、空気通路３７が接続されており、キャニスタ３３は空気通路３７を介して大気に連通可能となっている。
チャージ通路３１には、圧力センサ１５が設けられており、その検出信号はＥＣＵ５に供給される。圧力センサ１５の出力ＰＴＡＮＫは、キャニスタ３３及び燃料タンク９内の圧力が安定している定常状態では、燃料タンク内の圧力に等しくなるが、キャニスタ３３または燃料タンク９内の圧力が変化しているとき、実際のタンク内圧とは異なる圧力を示す。以下の説明では、圧力センサ１５の出力を「タンク内圧ＰＴＡＮＫ」という。
【００１９】
キャニスタ３３は、燃料タンク９内の蒸発燃料を吸着するための活性炭を内蔵する。キャニスタ３３には、空気通路３７が接続されており、キャニスタ３３は空気通路３７を介して大気に連通可能となっている。
空気通路３７の途中にはベントシャット弁（開閉弁）３８が設けられている。ベントシャット弁３８は、ＥＣＵ５によりその作動が制御される電磁弁であり、給油時及びキャニスタ３３に貯蔵された蒸発燃料を吸気管２に供給するときに、開弁される。ベントシャット弁３８は、駆動信号が供給されないときは、開弁する常開型の電磁弁である。後述する蒸発燃料処理装置の減圧処理を行うときは、閉弁される。
【００２０】
パージ通路３２には、パージ制御弁３４が設けられている。パージ制御弁３４は、その制御信号のオン−オフデューティ比を変更することにより流量を連続的に制御することができるように構成された電磁弁であり、その作動はＥＣＵ５により制御される。なお、パージ制御弁３４はその弁開度を連続的に変更可能な電磁弁を使用してもよく、上記デューティ比は、このような弁開度連続可変型の電磁弁における弁開度に相当する。
【００２１】
燃料タンク９で蒸発燃料が発生すると、キャニスタ３３に蒸発燃料が貯蔵される。エンジン１の所定運転状態において、パージ制御弁３４のデューティ制御が行われ、適量の蒸発燃料がキャニスタ３３から吸気管２に供給される。
燃料タンク９、チャージ通路３１、キャニスタ３３，パージ通路３２、空気通路３７、ベントシャット弁３８、及びパージ制御弁３４により、蒸発燃料処理装置が構成される。
【００２２】
ＥＣＵ５は各種センサ等からの入力信号波形を整形し、電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する等の機能を有する入力回路、中央演算処理ユニット（以下「ＣＰＵ」という）、ＣＰＵで実行される演算プログラム及び演算結果等を記憶する記憶回路、並びに燃料噴射弁６、パージ制御弁３４、及びベントシャット弁３８に駆動信号を供給する出力回路を備えている。
【００２３】
ＥＣＵ５のＣＰＵは、エンジン回転数センサ１７、吸気管内絶対圧センサ１３、エンジン水温センサ１８などの各種センサの出力信号に応じてエンジン１に供給する燃料量制御、パージ制御弁３４のデューティ制御等を行う。
ＥＣＵ５のＣＰＵは、燃料噴射弁６の開弁時間ＴＯＵＴを、下記式（１）により算出する。
ＴＯＵＴ＝ＴＩＭ×ＫＡＦ×Ｋ１＋Ｋ２                      （１）
【００２４】
ＴＩＭは基本燃料量、具体的には燃料噴射弁６の基本燃料噴射時間であり、エンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに応じて設定されたＴＩマップを検索して決定される。ＴＩマップは、エンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに対応する運転状態において、エンジンに供給する混合気の空燃比がほぼ理論空燃比になるように設定されている。すなわち、基本燃料量ＴＩＭは、１ＴＤＣ期間（隣り合うＴＤＣパルスの時間間隔）当たりの、エンジン１の吸入空気流量（質量流量）にほぼ比例する値を有する。
【００２５】
ＫＡＦは、ＬＡＦセンサ１９の出力に応じて設定される空燃比補正係数である。空燃比補正係数ＫＡＦは、酸素濃度センサ１９により検出される空燃比が目標空燃比と一致するように設定される。
またＫ１及びＫ２は夫々各種エンジンパラメータ信号に応じて演算される他の補正係数および補正変数であり、エンジン運転状態に応じた燃費特性、エンジン加速特性等の諸特性の最適化が図れるような所定値に設定される。
【００２６】
ＥＣＵ５のＣＰＵは、さらに蒸発燃料処理装置の故障診断処理、具体的には蒸発燃料処理装置の大孔漏れ、すなわちフィラーキャップ外れの有無を判定する処理を実行する。
【００２７】
図２は、第１の判定手法を説明するためにタンク内圧ＰＴＡＮＫの推移を示すタイムチャートである。この図は、蒸発燃料のパージ実行中の時刻ｔ０からエンジン１への燃料供給を遮断するフュエルカット運転を開始した場合の、タンク内圧ＰＴＡＮＫの推移を示す。フュエルカット運転が開始されると、パージ制御弁３４が全閉状態（開弁デューティが「０」の状態）とされるので、大孔漏れがない正常時は実線で示すように、タンク内圧ＰＴＡＮＫは、時刻ｔ０から徐々に大気圧ＰＡに向かって上昇する。一方、大孔漏れがあるときは破線で示すように、急速に大気圧ＰＡまで上昇する。したがって、時刻ｔ０から所定時間ＴＭＦＣＡＰの期間内にタンク内圧ＰＴＡＮＫが所定閾値ＰＴＫＴＨを超えたときは、大孔漏れがあると判定し、超えないときは正常と判定することができる。以下の説明では、この第１の判定手法によるフィラーキャップ外れ判定を第１フィラーキャップ外れ判定といい、他の判定手法によるフィラーキャップ外れ判定を第２フィラーキャップ外れ判定という。
【００２８】
以下、図３〜図９に示すフローチャートを参照して、第１フィラーキャップ外れ判定処理及び第２フィラーキャップ外れ判定処理を含む故障診断処理を説明する。図３〜図９に示す処理は、いずれも所定時間（例えば８０ミリ秒）毎にＥＣＵ５のＣＰＵで実行される。
【００２９】
図３は、第１フィラーキャップ外れ判定処理のフローチャートである。ステップＳ２０１では、第１判定実行フラグＦＦＣＡＰＣＯＮＤが「１」であるか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ステップＳ２０２に進み、パージ流量ＱＰＧＣが、所定流量ＱＰＧＣＦＣＡＰ（例えば１０リットル／ｍｉｎ）以上であるか否かを判別する。パージ流量ＱＰＧＣは、パージ実行中にパージ通路３２を介して吸気管２に供給される、蒸発燃料を含む混合気（以下「パージガス」という）の流量を示すパラメータであり、エンジン１の吸入空気流量ＱＡＩＲ、大気圧ＰＡと吸気管内絶対圧ＰＢＡとの差圧などに応じて、図示しない処理で算出される。吸入空気流量ＱＡＩＲは、基本燃料量ＴＩＭにエンジン回転数ＮＥ及び換算係数を乗算することにより算出される。パージ制御弁３４の開弁デューティＤＯＵＴＰＧは、算出されたパージ流量ＱＰＧＣにほぼ比例するように制御される。
【００３０】
ステップＳ２０２の答が否定（ＮＯ）であるときは、ダウンカウントタイマＴＦＣＡＰＤＬＹを所定時間ＴＭＦＣＡＰＤＬＹ（例えば５秒）にセットしてスタートさせる（ステップＳ２０３）。その後ステップＳ２１２に進み、アップカウントタイマＴＦＣＡＰの値を「０」に設定し、本処理を終了する。
【００３１】
ステップＳ２０２で、ＱＰＧＣ≧ＱＰＧＣＦＣＡＰであるときは、ステップＳ２０３でスタートしたタイマＴＦＣＡＰＤＬＹの値が「０」であるか否かを判別する（ステップＳ２０４）。ＴＦＣＡＰＤＬＹ＞０である間は、前記ステップＳ２１２に進み、タイマＴＦＣＡＰＤＬＹの値が「０」となると、第１判定実行フラグＦＦＣＡＰＣＯＮＤを「１」に設定する（ステップＳ２０５）。その後前記ステップＳ２１２に進む。
【００３２】
第１判定実行フラグＦＦＣＡＰＣＯＮＤが「１」に設定された後は、ステップＳ２０１からＳ２０６に進み、フュエルカットフラグＦＦＣが「１」であるか否かを判別する。フュエルカットフラグＦＦＣは、エンジン１の減速時においてエンジン１への燃料供給を遮断するフュエルカット運転を実行するとき、「１」に設定される。フュエルカットフラグＦＦＣが「０」であるときは、直ちに前記ステップＳ２１２に進む。フュエルカットフラグＦＦＣが「１」に設定されると、ステップＳ２０６からＳ２０７に進み、なましタンク内圧ＤＰＴＮＫＡＶＥが所定負圧ＤＰＦＣＡＰ（例えば−６６．５Ｐａ（−０．５ｍｍＨｇ））以上であるか否かを判別する。なましタンク内圧ＤＰＴＮＫＡＶＥは、タンク内圧ＰＴＡＮＫになまし処理を施し、さらにエンジン始動時のタンク内圧（ほぼ大気圧ＰＡに等しい）をゼロ点とする差圧に変換したものであり、タンク内圧ＰＴＡＮＫが大気圧ＰＡより低くなると、負の値をとる。所定負圧ＤＰＦＣＡＰが図２に示した所定閾値ＰＴＫＴＨに相当する。したがって、最初はステップＳ２０７の答は否定（ＮＯ）となり、直ちに本処理を終了する。
【００３３】
なましタンク内圧ＤＰＴＮＫＡＶＥが所定負圧ＤＰＦＣＡＰに達すると、ステップＳ２０７からステップＳ２０８に進み、ステップＳ２１２でリセットされるアップカウントタイマＴＦＣＡＰの値が所定時間ＴＭＦＣＡＰ（例えば０．５秒）以上であるか否かを判別する。この答が肯定（ＹＥＳ）であるとき、すなわち図２に実線で示す例に相当するときは、フィラーキャップは取り付けられていると判定し、フィラーキャップ外れフラグＦＦＣＡＰＯＰＥＮを「０」に設定する（ステップＳ２０９）。その後、第１判定実行フラグＦＦＣＡＰＣＯＮＤを「０」にリセットし（ステップＳ２１１）、前記ステップＳ２１２に進む。
【００３４】
一方ステップＳ２０８で、タイマＴＦＣＡＰの値が所定時間ＴＭＦＣＡＰより小さいとき、すなわち図２に破線で示す例に相当するときは、フィラーキャップが外れていると判定し、フィラーキャップ外れフラグＦＦＣＡＰＯＰＥＮを「１」に設定する（ステップＳ２１０）。その後前記ステップＳ２１１に進む。
【００３５】
なお、フィラーキャップ外れフラグＦＦＣＡＰＯＰＥＮが「１」に設定されると、警告灯が点灯される。
【００３６】
図３の処理によれば、パージ流量ＱＰＧＣが所定流量ＱＰＧＣＦＣＡＰ以上の状態が所定時間ＴＭＦＣＡＰ以上継続した後に、フュエルカット運転が開始されると、ステップＳ２０７〜Ｓ２１１が実行され、フィラーキャップ外れが判定される。したがって、比較的簡便な方法で、フィラーキャップの外れを監視し、フィラーキャップ外れを迅速に検知することができる。
【００３７】
図４は、第２フィラーキャップ外れ判定の第１実行条件を判定する処理のフローチャートである。
ステップＳ１１では、禁止フラグＦＣＡＰＫＩＮＳＩが「１」であるか否かを判別し、この答が肯定（ＹＥＳ）であるときは、フィラーキャップ外れ判定が禁止されていないので、ステップＳ１２に進む。ステップＳ１２では、パージフロー正常フラグＦＯＫ９０Ｅが「１」であるか否かを判別する。パージフロー正常フラグＦＯＫ９０Ｅは、図示しない処理により、パージ通路３２を介して吸気管２に供給されるパージガスの流量が、正常であると判定されたとき「１」に設定される。
【００３８】
ステップＳ１２の答が肯定（ＹＥＳ）であるときは、パージ制御弁正常フラグＦＯＫ９２Ｅが「１」であるか否かを判別する（ステップＳ１３）。パージ制御弁正常フラグＦＯＫ９２Ｅは、図示しない処理により、パージ制御弁３４の開弁故障（開弁した状態で固定され閉弁しない故障）が発生していないと判定されたとき「１」に設定される。
【００３９】
ステップＳ１３の答が肯定（ＹＥＳ）であるときは、モニタモード変数ＥＶＰＬＫＭＯＤの値が「０」であるか否かを判別する（ステップＳ１４）。モニタモード変数ＥＶＰＬＫＭＯＤは、外気温が低いとき「０」に設定される。ステップＳ１４の答が否定（ＮＯ）であるときは、バッテリ電圧ＶＢが下限電圧ＶＢＬ（例えば１０．５Ｖ）以上であるか否かを判別する（ステップＳ１５）。
【００４０】
ステップＳ１５の答が肯定（ＹＥＳ）であるときは、エンジン水温ＴＷが所定下限水温ＴＷＣＮＣＫＬ以上であるか否かを判別する（ステップＳ１６）。この答が肯定（ＹＥＳ）であるときは、パージ実行フラグＦＰＧＡＣＴが「１」であるか否かを判別する（ステップＳ１７）。パージ実行フラグＦＰＧＡＣＴは、パージガスを吸気管２に供給するパージを実行しているとき「１」に設定される。
【００４１】
ステップＳ１７の答が肯定（ＹＥＳ）であるときは、積算パージ流量ＱＰＧＣＳＵＭが所定量ＱＰＧＣＳＵＭＦＣＡＰ以上であるか否かを判別する。積算パージ流量ＱＰＧＣＳＵＭは、パージ流量ＱＰＧＣを、パージ開始時点から積算することにより算出される。
【００４２】
ステップＳ１８の答が肯定（ＹＥＳ）であるときは、第１実行条件成立と判定し、第１実行条件フラグＦＭＣＮＤＦＣＡＰを「１」に設定する（ステップＳ１９）。
一方、ステップＳ１１〜Ｓ１３，若しくはＳ１５〜Ｓ１８のいずれかの答が否定（ＮＯ）であるとき、またはステップＳ１４の答が肯定（ＹＥＳ）であるときは、第１実行条件不成立と判定し、第１実行条件フラグＦＭＣＮＤＦＣＡＰを「０」に設定する（ステップＳ２０）。
【００４３】
図５は、第２フィラーキャップ外れ判定の第２実行条件を判定する処理のフローチャートである。
ステップＳ３１では、第３実行条件フラグＦＥＶＰＬＫＭが「１」であるか否かを判別する。第３実行条件フラグＦＥＶＰＬＫＭは、後述する図６の処理において、第３実行条件が成立すると判定されたとき「１」に設定される。最初はこの答は否定（ＮＯ）であるので、直ちにステップＳ３４に進む。
【００４４】
ステップＳ３４では、フィードバック制御フラグＦＡＦＦＢＸが「１」であるか否かを判別する。フィードバック制御フラグＦＡＦＦＢＸは、ＬＡＦセンサ１９の出力に応じた空燃比フィードバック制御が実行されているとき「１」に設定される。ステップＳ３４の答が肯定（ＹＥＳ）であるときは、リミットフラグＦＫＡＦＬＭＴＹが「１」であるか否かを判別する。リミットフラグＦＫＡＦＬＭＴＹは、空燃比補正係数ＫＡＦがリミット処理により所定上限値または所定下限値に設定されているとき「１」に設定される。
【００４５】
ステップＳ３５の答が否定（ＮＯ）であるときは、吸入空気流量ＱＡＩＲが所定下限流量ＱＡＩＲＤＥＣ以上であるか否かを判別する（ステップＳ３６）。この答が肯定（ＹＥＳ）であるときは、車速ＶＰが所定下限車速ＶＰＤＥＣＬ以上であるか否かを判別する（ステップＳ３７）。ステップＳ３７の答が肯定（ＹＥＳ）であるときは、ダウンカウントタイマＴＤＥＣＨＬＤを所定時間ＴＭＤＥＣＨＬＤ（例えば５秒）にセットしてスタートさせる（ステップＳ３８）。
【００４６】
続くステップＳ３９では、ホールドフラグＦＤＥＣＨＬＤ及びホールド終了フラグＦＤＥＣＨＬＤＥＮをともに「０」に設定し、ステップＳ４６では、第２実行条件フラグＦＴＤＲＣＯＮＤを「１」に設定する。
ステップＳ３４，Ｓ３６，若しくはＳ３７の答が否定（ＮＯ）、またはステップＳ３５の答が肯定（ＹＥＳ）であるときは、第３実行条件フラグＦＥＶＰＬＫＭが「１」であるか否かを判別する（ステップＳ４０）。最初は、この答は否定（ＮＯ）であるので、ステップＳ４４に進み、ステップＳ３８と同様にダウンカウントタイマＴＤＥＣＨＬＤを所定時間ＴＭＤＥＣＨＬＤにセットしてスタートさせる。ステップＳ４５では、ホールドフラグＦＤＥＣＨＬＤ及びホールド終了フラグＦＤＥＣＨＬＤＥＮを「０」に設定するとともに、第２実行条件フラグＦＴＤＲＣＯＮＤを「０」に設定する。
【００４７】
図６の処理で第３実行条件フラグＦＥＶＰＬＫＭが「１」に設定されると、ステップＳ３１の答が肯定（ＹＥＳ）となり、ステップＳ３２に進んで、減圧終了フラグＦＴＫＤＥＣＥＮＤが「１」であるか否かを判別する。減圧終了フラグＦＴＫＤＥＣＥＮＤは、後述する図８の処理で蒸発燃料処理装置の減圧処理が終了したとき「１」に設定される（図８，ステップＳ１０６参照）。最初はステップＳ３２の答が否定（ＮＯ）であるので、ホールド終了フラグＦＤＥＣＨＬＤＥＮが「１」であるか否かを判別する（ステップＳ３３）。最初はホールド終了フラグＦＤＥＣＨＬＤＥＮは「０」であるので、前記ステップＳ３４に進む。減圧終了フラグＦＴＫＤＥＣＥＮＤまたはホールド終了フラグＦＤＥＣＨＬＤＥＮが「１」に設定されたときは、直ちに前記ステップＳ４６に進む。
【００４８】
また第３実行条件フラグＦＥＶＰＬＫＭが「１」に設定されると、ステップＳ４０の答が肯定（ＹＥＳ）となり、ステップＳ４１に進む。ステップＳ４１では、ステップＳ３８またはＳ４４でスタートされるダウンカウントタイマＴＤＥＣＨＬＤの値が「０」であるか否かを判別する。最初は、ＴＤＥＣＨＬＤ＞０であるので、ステップＳ４２に進み、ホールドフラグＦＤＥＣＨＬＤを「１」に設定し、ホールド終了フラグＦＤＥＣＨＬＤＥＮを「０」に設定する。またタイマＴＤＥＣＨＬＤの値が「０」となると、ホールドフラグＦＤＥＣＨＬＤを「０」に戻し、ホールド終了フラグＦＤＥＣＨＬＤＥＮを「１」に設定する（ステップＳ４３）。その後、前記ステップＳ４６に進む。
【００４９】
ステップＳ３４〜Ｓ３７の何れかからステップＳ４０に進むときは、基本的には、第２実行条件不成立と判定するが、第３実行条件フラグＦＥＶＰＬＫＭが「１」であって第３実行条件が成立しているときは、第２実行条件フラグＦＴＤＲＣＯＮＤが「１」に保持される（ステップＳ４０〜Ｓ４３、Ｓ４６）。
【００５０】
図６は、第２フィラーキャップ外れ判定の第３実行条件を判定する処理のフローチャートである。
ステップＳ５１では、フィラーキャップ正常フラグＦＣＨＫＦＣＡＰＯＫが「１」であるか否かを判別する。フィラーキャップ正常フラグＦＣＨＫＦＣＡＰＯＫは、後述する図８の処理でフィラーキャップが正常に取り付けられていると判定されたとき「１」に設定される（図８，ステップＳ１００参照）。最初はステップＳ５１の答が否定（ＮＯ）であるので、ステップＳ５２に進み、大気開放不良フラグＦＤＬＫＰＡＴＭが「１」であるか否かを判別する。大気開放不良フラグＦＤＬＫＰＡＴＭは、後述する図７の処理で蒸発燃料処理装置の大気開放が正常に実行されていないと判定されたとき「１」に設定される（図７，ステップＳ８３参照）。
【００５１】
最初はステップＳ５２の答は否定（ＮＯ）であるので、フィラーキャップ取付フラグＦＦＣＡＰＣＬＯＳＥが「１」であるか否かを判別する（ステップＳ５３）。フィラーキャップ取付フラグＦＦＣＡＰＣＬＯＳＥは、図９の処理でフィラーキャップが取り付けられた可能性が高いと判定されたとき「１」に設定される（図９，ステップＳ１２７参照）。最初はステップＳ５３の答は否定（ＮＯ）であるので、フィラーキャップ外れフラグＦＦＣＡＰＯＰＥＮが「１」であるか否かを判別する（ステップＳ５４）。フィラーキャップ外れフラグＦＦＣＡＰＯＰＥＮは、図３の処理または８の処理でフィラーキャップが外れていると判定されたとき「１」に設定される（図３，ステップＳ２１０，図８，ステップＳ１０５参照）。なお、図９の処理でフィラーキャップ取付フラグＦＦＣＡＰＣＬＯＳＥが「１」に設定された後は、ステップＳ５４はスキップされる。
【００５２】
最初はステップＳ５４の答も否定（ＮＯ）であるので、ステップＳ５５に進み、第１実行条件フラグＦＭＣＮＤＦＣＡＰが「１」であるか否かを判別する。この答が肯定（ＹＥＳ）であるときは、第２実行条件フラグＦＴＤＲＣＯＮＤが「１」であるか否を判別する（ステップＳ５５）。
【００５３】
ステップＳ５１，Ｓ５２，若しくはＳ５４の答が肯定（ＹＥＳ）であるとき、またはステップＳ５５若しくはＳ５６の答が否定（ＮＯ）であるときは、第３実行条件不成立と判定し、ステップＳ５７に進む。
ステップＳ５７では、ダウンカウントタイマＴＦＣＡＰＤＬＹを所定時間ＴＭＦＣＡＰＤＬＹ（例えば５秒）にセットしてスタートさせる。次いでパージカット要求フラグＦＥＶＰＰＧを「０」に設定し（ステップＳ６０）、パージカット終了フラグＦＥＶＰＰＧＥＮＤを「０」に設定する（ステップＳ６５）。さらに、減圧終了フラグＦＴＫＤＥＣＥＮＤが「１」であるか否かを判別する（ステップＳ６６）。最初は、この答は否定（ＮＯ）であるので、ホールド終了フラグＦＤＥＣＨＬＤＥＮが「１」であるか否かを判別する（ステップＳ６７）。この答も最初は否定（ＮＯ）であるので、第３実行条件フラグＦＥＶＰＬＫＭを「０」に設定し（ステップＳ６９）、本処理を終了する。
【００５４】
減圧終了フラグＦＴＫＤＥＣＥＮＤまたはホールド終了フラグＦＤＥＣＨＬＤＥＮが「１」に設定されたときは、ステップＳ６８に進み、パージ流量ＱＰＧＣが「０」以下か否かを判別する。この答が肯定（ＹＥＳ）であってパージが行われていないときは、前記ステップＳ６９に進み、パージ流量ＱＰＧＣが「０」より大きいときは、直ちに本処理を終了する。
【００５５】
ステップＳ５６の答が肯定（ＹＥＳ）であるときは、ステップＳ５８に進み、パージカット終了フラグＦＥＶＰＰＧＥＮＤが「１」であるか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ステップＳ５７でスタートしたタイマＴＦＣＡＰＤＬＹの値が「０」であるか否かを判別する（ステップＳ５９）。最初はＴＦＣＡＰＤＬＹ＞０であるので、前記ステップＳ６０に進み、タイマＴＦＣＡＰＤＬＹの値が「０」となると、ステップＳ６１に進み、パージカット要求フラグＦＥＶＰＰＧを「１」に設定する。パージカット要求フラグＦＥＶＰＰＧが「１」に設定されると、図示しない処理により、パージ流量ＱＰＧＣを「０」まで漸減させる処理が行われる。
【００５６】
ステップＳ６２では、パージ流量ＱＰＧＣが「０」以下か否かを判別する。この答が否定（ＮＯ）であってパージが行われているときは、前記ステップＳ６５に進む。パージ流量ＱＰＧＣが「０」となると、パージカット終了フラグＦＥＶＰＰＧＥＮＤを「１」に設定し（ステップＳ６３）、第３実行条件フラグＦＥＶＰＬＫＭを「１」に設定する（ステップＳ６４）。なお、パージカット終了フラグＦＥＶＰＰＧＥＮＤが「１」に設定された後は、ステップＳ５８から直ちにステップＳ６４に進む。
【００５７】
図７は、ベントシャット弁３８を開弁し、蒸発燃料処理装置内に空気を導入する大気開放を実行する処理のフローチャートである。
ステップＳ７１では、第３実行条件フラグＦＥＶＰＬＫＭが「１」であるか否かを判別する。第３実行条件フラグＦＥＶＰＬＫＭが「０」である間は、ＯＫ判定カウンタＣＰＡＴＭＯＫ及びＮＧ判定カウンタＣＰＡＴＭＮＧの値を「０」に設定し（ステップＳ７２）、さらにベントシャット弁閉弁要求フラグＦＶＳＶＣＬＦＣＡＰを「０」に設定する（ステップＳ７３）。
【００５８】
第３実行条件フラグＦＥＶＰＬＫＭが「１」に設定されると、ステップＳ７１からステップＳ７４に進み、減圧終了フラグＦＴＫＤＥＣＥＮＤが「１」であるか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ホールド終了フラグＦＤＥＣＨＬＤＥＮが「１」であるか否かを判別する（ステップＳ７５）。通常はこの答も否定（ＮＯ）であるので、ステップＳ７７に進み、ＯＫ判定カウンタＣＰＡＴＭＯＫの値がＯＫ判定閾値ＣＴＰＡＴＭＪＤＯＫ（例えば４０）より大きいか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ステップＳ７９に進み、その時点のタンク内圧ＰＴＡＮＫと、エンジン始動時のタンク内圧ＰＴＡＮＫとの差（以下「圧力変化量」という）ＤＰＴＡＮＳＴＭの絶対値が、所定変化量ＰＴＶＥＮＴ（例えば０．６７ｋＰａ（５ｍｍＨｇ））より大きいか否かを判別する。この答が否定（ＮＯ）であるときは、ＯＫ判定カウンタＣＰＡＴＭＯＫを「１」だけインクリメントする（ステップＳ８０）。その後本処理を終了する。
【００５９】
一方、ステップＳ７９で｜ＤＰＴＡＮＳＴＭ｜＞ＰＴＶＥＮＴであるときは、ＮＧ判定カウンタＣＰＡＴＭＮＧを「１」だけインクリメントする（ステップＳ８１）。次いでＮＧカウンタの値がＮＧ判定閾値ＣＴＰＡＴＭＪＤＮＧ（例えば４０）より大きいか否かを判別する（ステップＳ８２）。この答が否定（ＮＯ）である間は、直ちに本処理を終了する。ステップＳ７７の答が肯定（ＹＥＳ）となる前に、ステップＳ８２の答が肯定（ＹＥＳ）となると、大気開放が正常に行われていない（例えばベントシャット弁３８の閉弁したままで開弁していない状態）と判定し、大気開放不良フラグＦＤＬＫＰＡＴＭを「１」に設定する（ステップＳ８３）。
【００６０】
ＮＧ判定カウンタＣＰＡＴＭＮＧの値がＮＧ判定閾値ＣＴＰＡＴＭＪＤＮＧを超える前に、ＯＫ判定カウンタＣＰＡＴＭＯＫの値がＯＫ判定閾値ＣＴＰＡＴＭＪＤＯＫを超えると、ステップＳ７７からステップＳ７８に進み、減圧許可フラグＦＴＫＤＥＣを「１」に設定するとともに、ベントシャット弁閉弁要求フラグＦＶＳＶＣＬＦＣＡＰを「１」に設定する（ステップＳ７８）。
【００６１】
図８の処理で減圧終了フラグＦＴＫＤＥＣＥＮＤが「１」に設定されたとき、または図５の処理でホールド終了フラグＦＤＥＣＨＬＤＥＮが「１」に設定されたときは、ステップＳ７４またはＳ７５からステップＳ７６に進み、減圧許可フラグＦＴＫＤＥＣを「０」に設定する。これにより、蒸発燃料処理装置の減圧処理は終了される。
【００６２】
図８は、第２フィラーキャップ外れ判定を実行する処理のフローチャートである。
ステップＳ９１では、第３実行条件フラグＦＥＶＰＬＫＭが「１」であるか否かを判別する。この答が否定（ＮＯ）である間は、減圧終了フラグＦＴＫＤＥＣＥＮＤを「０」に設定して（ステップＳ９２）、本処理を終了する。
【００６３】
第３実行条件フラグＦＥＶＰＬＫＭが「１」に設定されると、ステップＳ９１からステップＳ９３に進み、減圧許可フラグＦＴＫＤＥＣが「１」であるか否かを判別する。この答が否定（ＮＯ）である間は、待ち時間カウンタＣＤＥＣＳＴＹの値を「０」に設定し（ステップＳ９４）、積算減圧パージ流量ＱＰＧＳＭＤＥＣを「０」に設定して（ステップＳ９５）、本処理を終了する。
【００６４】
減圧許可フラグＦＴＫＤＥＣが「１」に設定されると、ステップＳ９３からステップＳ９６に進み、なましタンク内圧ＤＰＴＮＫＡＶＥが目標圧ＤＰＦＢＥＮＤ（例えば−０．５３ｋＰａ（−４ｍｍＨｇ））以下であるか否かを判別する。なましタンク内圧ＤＰＴＮＫＡＶＥは、前述したように、タンク内圧ＰＴＡＮＫになまし処理を施し、さらにエンジン始動時のタンク内圧（ほぼ大気圧ＰＡに等しい）をゼロ点とする差圧に変換したものであるので、蒸発燃料処理装置の減圧処理を行うと負の値をとる。
【００６５】
最初はこの答は否定（ＮＯ）であるので、ステップＳ１０１に進み、待ち時間カウンタの値を「０」に設定し、次いでパージ流量ＱＰＧＣが所定流量ＱＰＧＳＭＬＯＷ（例えば１リットル／ｍｉｎ）以上であるか否かを判別する（ステップＳ１０２）。この答が肯定（ＹＥＳ）であるときは、下記式により、積算減圧パージ流量ＱＰＧＳＭＤＥＣを算出する（ステップＳ１０３）。
ＱＰＧＳＭＤＥＣ＝ＱＰＧＳＭＤＥＣ＋ＱＰＧＣＦ８０
【００６６】
ここで、ＱＰＧＣＦ８０は、本処理の実行周期ΔＴに対応するパージ量（ＱＰＧＣ×ΔＴ）である。
ステップＳ１０２でＱＰＧＣ＜ＱＰＧＳＭＬＯＷであるときは、ステップＳ１０３はスキップされる。
【００６７】
ステップＳ１０４では、積算減圧パージ流量ＱＰＧＳＭＤＥＣが所定量ＱＰＧＤＥＣ９を超えたか否かを判別する。この答が否定（ＮＯ）である間は直ちに本処理を終了する。ステップＳ９６の答が肯定（ＹＥＳ）となる前に、積算減圧パージ流量ＱＰＧＳＭＤＥＣが所定量ＱＰＧＤＥＣ９を超えると、フィラーキャップが外れていると判定し、フィラーキャップ外れフラグＦＣＡＰＯＰＥＮを「１」に設定する（ステップＳ１０５）。続くステップＳ１０６では、減圧終了フラグＦＴＫＤＥＣＥＮＤを「１」に設定し、本処理を終了する。
【００６８】
フィラーキャップ外れフラグＦＣＡＰＯＰＥＮが「１」に設定されると、図６のステップＳ５４の答が肯定（ＹＥＳ）となり、第３実行条件フラグＦＥＶＰＬＫＭが「０」に戻される。したがって、図７の処理においてベントシャット弁閉弁要求フラグＦＶＳＶＣＬＦＣＡＰが「０」に設定され（ステップＳ７３）、ベントシャット弁３８が開弁される。また図８の処理において、減圧終了フラグＦＴＫＤＥＣＥＮＤが「０」に設定される。
【００６９】
ステップＳ１０４の答が肯定（ＹＥＳ）となる前に、なましタンク内圧ＤＰＴＮＫＡＶＥが目標圧ＤＰＦＢＥＮＤに達すると、待ち時間カウンタＣＤＥＣＳＴＹを「１」だけインクリメントし（ステップＳ９７）、その待ち時間カウンタＣＤＥＣＳＴＹの値が所定値ＣＴＤＥＣＳＴＹ（例えば１２）以上であるか否かを判別する（ステップＳ９８）。ＣＤＥＣＳＴＹ＜ＤＴＤＥＣＳＴＹである間は直ちに本処理を終了し、待ち時間カウンタＣＤＥＣＳＴＹの値が所定値ＣＴＤＥＣＳＴＹに達すると、フィラーキャップは正常に取り付けられていると判定し、フィラーキャップ外れフラグＦＣＡＰＯＰＥＮを「０」に設定し、フィラーキャップ正常フラグＦＣＨＫＦＣＡＰＯＫを「１」に設定する（ステップＳ９９，Ｓ１００）。その後前記ステップＳ１０６に進む。
フィラーキャップ外れと判定されたときは、警告灯が点灯される。
【００７０】
図９は、フィラーキャップ外れと判定されたときに、その後フィラーキャップが取り付けられた可能性を判定する処理のフローチャートである。
ステップＳ１１１では、フィラーキャップ正常フラグＦＣＨＫＦＣＡＰＯＫが「１」であるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、直ちに本処理を終了する。フィラーキャップ正常フラグＦＣＨＫＦＣＡＰＯＫが「０」であるときは、減圧終了フラグＦＴＫＤＥＣＥＮＤが「１」であるか否かを判別する（ステップＳ１１２）。減圧終了フラグＦＴＫＤＥＣＥＮＤが「０」であるときはフィラーキャップ外れフラグＦＣＡＰＯＰＥＮが「１」であるか否かを判別する。ステップＳ１１３の答が肯定（ＹＥＳ）であるとき、すなわち図８の処理でフィラーキャップ外れと判定されたときは、ステップＳ１１６に進む。それ以外のときは、ステップＳ１１２またはステップＳ１１３からステップＳ１１４に進む。
【００７１】
ステップＳ１１４では、ダウンカウントタイマＴＣＨＫＦＣＡＰＩＮＩを所定時間ＴＭＣＨＫＦＣＡＰＩＮＩ（例えば３秒）にセットしてスタートさせる。続くステップＳ１１５では、基準値セットフラグＦＱＳＭＥＶＰ０ＳＥＴ、取付判定実行フラグＦＦＣＡＰＭＯＮＩ、及びフィラーキャップ取付フラグＦＦＣＡＰＣＬＯＳＥを、いずれも「０」に設定し、本処理を終了する。
【００７２】
ステップＳ１１６では、車速ＶＰが所定低車速ＶＰＬ（例えば２ｋｍ／ｈ）より低い、すなわち当該車両がほぼ停止しているか否かを判別する。この答が否定（ＮＯ）であるときは、ステップＳ１１４と同様に、ダウンカウントタイマＴＣＨＫＦＣＡＰＩＮＩを所定時間ＴＭＣＨＫＦＣＡＰＩＮＩにセットしてスタートさせる（ステップＳ１１７）。続くステップＳ１１９では、基準値セットフラグＦＱＳＭＥＶＰ０ＳＥＴを「０」に設定し、取付判定実行フラグＦＦＣＡＰＭＯＮＩが「１」であるか否かを判別する。この答が否定（ＮＯ）であるときは直ちに本処理を終了し、肯定（ＹＥＳ）であるときはステップＳ１２５に進む。
【００７３】
ステップＳ１１６でＶＰ＜ＶＰＬであって当該車両がほぼ停止しているときは、ステップＳ１１４またはＳ１１７でスタートしたタイマＴＣＨＫＦＣＡＰＩＮＩの値が「０」であるか否かを判別する（ステップＳ１１８）。ＴＣＨＫＦＣＡＰＩＮＩ＞０である間は、前記ステップＳ１１９に進む。タイマＴＣＨＫＦＣＡＰＩＮＩの値が「０」となると、ステップＳ１２１に進み、基準値セットフラグＦＱＳＭＥＶＰ０ＳＥＴが「１」であるか否かを判別する。最初はこの答は否定（ＮＯ）であるので、積算パージ流量基準値ＱＰＧＳＵＭＥＶＰ０を、その時点の積算パージ流量ＱＰＧＣＳＵＭに設定する（ステップＳ１２２）。
【００７４】
次いで、ベーパ量基準値ＶＰＲＴＴＬＥＶＰ０を、その時点のトータルベーパ量ＶＰＲＲＴＴＬＦＬに設定し（ステップＳ１２３）、さらに基準値セットフラグＦＱＳＭＥＶＰ０ＳＥＴ及び取付判定実行フラグＦＦＣＡＰＭＯＮＩをともに「１」に設定する（ステップＳ１２４）。
【００７５】
ステップＳ１２５では、積算パージ流量ＱＰＧＣＳＵＭから積算パージ流量基準値ＱＰＧＳＵＭＥＶＰ０を減算した値が、所定変化量ＤＱＰＧＳＵＭＥＶ（例えば１０リットル）以上であるか否かを判別する。この答が否定（ＮＯ）であるときは、ベーパ量基準値ＶＰＲＴＴＬＥＶＰ０からトータルベーパ量ＶＰＲＲＴＴＬＦＬを減算した値が、所定ベーパ量変化量ＤＶＰＲＴＴＬＥＶＰ（例えば６）以上であるか否かを判別する（ステップＳ１２６）。その結果、ステップＳ１２６の答が肯定（ＹＥＳ）であるときは、ベーパ量が減少したので、フィラーキャップが取り付けられた可能性が高いと判定し、フィラーキャップ取付フラグＦＦＣＡＰＣＬＯＳＥを「１」に設定する（ステップＳ１２７）。その後本処理を終了する。
【００７６】
ステップＳ１２５の答が肯定（ＹＥＳ）またはステップＳ１２６の答が否定（ＮＯ）であるときは、直ちに本処理を終了する。
フィラーキャップ取付フラグＦＦＣＡＰＣＬＯＳＥが「１」に設定されると、図６のステップＳ５３の答が肯定（ＹＥＳ）となり、ステップＳ５４をスキップして、ステップＳ５５に進む。したがって、第１実行条件及び第２実行条件が成立していれば、第３実行条件が成立し、図７及び図８の処理によるフィラーキャップが外れているか否かの判定が再度実行される。その結果、フィラーキャップが外れていないと判定されたときは、フィラーキャップ外れの警告灯が消灯される。これにより、運転者が警告灯の点灯に応じてフィラーキャップを取り付けたときは、短時間のうちに警告灯を消灯することができ、フィラーキャップを取り付けたにも拘わらず警告灯が消灯しないという不具合を解消することできる。
【００７７】
以上のように図９の処理によれば、フィラーキャップ外れと判定された後に、当該車両が停止し、該停止時点から所定時間ＴＭＣＨＫＦＣＡＰＩＮＩが経過した時点の積算パージ流量ＱＰＧＣＳＵＭ及びトータルベーパ量ＶＰＲＲＴＴＬＦＬが、それぞれ積算パージ流量基準値ＱＰＧＳＵＭＥＶＰ０及びベーパ量基準値ＶＰＲＴＴＬＥＶＰ０に設定される。そして、その後の積算パージ流量ＱＰＧＣＳＵＭの増加量（ＱＰＧＣＳＵＭ−ＱＰＧＳＵＭＥＶＰ０）が所定変化量ＤＱＰＧＳＵＭＥＶより小さく、かつトータルベーパ量ＶＰＲＲＴＴＬＦＬの減少量（ＶＰＲＴＴＬＥＶＰ０−ＶＰＲＴＴＬＦＬ）が所定ベーパ量変化量ＤＶＰＲＴＴＬＥＶＰ以上であるときは、フィラーキャップが取り付けられた可能性が高いと判定される。これは以下の理由によるものである。
【００７８】
フィラーキャップが外れている状態で、パージを実行すると、給油口から空気が流入するため、燃料タンク９から直接吸気管２へ蒸発燃料が供給される。そのため、通常のキャニスタからのパージに比べて蒸発燃料濃度が非常に高くなる。したがって、蒸発燃料濃度の急激な低下が検出されたとき（積算パージ流量ＱＰＧＣＳＵＭの増加量が小さくかつトータルベーパ量ＶＰＲＲＴＴＬＦＬの減少量が大きいとき）は、フィラーキャップが取り付けられ、通常のキャニスタからのパージに移行した可能性が高いと判定することができる。すなわち、運転者がフィラーキャップ外れの警告を見て、フィラーキャップを取り付けた可能性が高いと判定することができる。
【００７９】
次にトータルベーパ量ＶＰＲＴＴＬＦＬの算出手法を、図１０〜図１３を参照して説明する。トータルベーパ量ＶＰＲＴＴＬＦＬは、ＬＡＦセンサ１９の出力に応じて算出される空燃比補正係数ＫＡＦの学習値ＫＲＥＦ及びＫＲＥＦＸに応じて算出される。
【００８０】
図１０は、空燃比補正係数ＫＡＦの学習値ＫＲＥＦ及びＫＲＥＦＸを算出する処理のフローチャートである。この処理は、ＬＡＦセンサ１９の出力に応じた空燃比フィードバック制御の実行中に、ＴＤＣパルスの発生に同期して実行される。なおこの処理では、蒸発燃料のパージ（吸気管２への供給）実行中に第１学習値ＫＲＥＦが算出され、パージ停止中に第２学習値ＫＲＥＦＸが算出される。
ステップＳ１３１では、パージ停止フラグＦＰＧＤＬＹが「１」であるか否かを判別する。パージ停止フラグＦＰＧＤＬＹは、第２学習値ＫＲＥＦＸを算出するために蒸発燃料のパージを停止するとき「１」に設定される。
【００８１】
ＦＰＧＤＬＹ＝０であってパージ停止中でないときは、学習許可フラグＦＫＲＦＣＮＤが「１」であるか否かを判別する（ステップＳ１３２）。学習許可フラグＦＫＲＦＣＮＤは、学習値ＫＲＥＦまたはＫＲＥＦＸの算出を許可するエンジン運転状態にあるとき「１」に設定される。ＦＫＲＦＣＮＤ＝１であるときは、下記式（３）により、第１学習値ＫＲＥＦを算出する（ステップＳ１３３）。
ＫＲＥＦ＝ＣＲＥＦ×ＫＡＦ＋（１−ＣＲＥＦ）×ＫＲＥＦ        （３）
ここでＣＲＥＦは、０から１の間の値に設定されるなまし係数であり、右辺のＫＲＥＦは、前回算出値である。
【００８２】
ステップＳ１３４では、ステップＳ１３３で算出される第１学習値ＫＲＥＦのリミット処理を行う。すなわち、第１学習値ＫＲＥＦが所定下限値ＫＲＥＦＬＭＴＬより小さいときは、第１学習値ＫＲＥＦをその所定下限値ＫＲＥＦＬＭＴＬに設定し、第１学習値ＫＲＥＦが所定上限値ＫＲＥＦＬＭＴＨより大きいときは、第１学習値ＫＲＥＦをその所定上限値ＫＲＥＦＬＭＴＨに設定し、第１学習値ＫＲＥＦが所定上下限値ＫＲＥＦＬＭＴＨ，ＫＲＥＦＬＭＴＬの間にあるときは、ステップＳ３３で算出された値を維持する。その後、ＫＲＥＦＸ更新フラグＦＫＲＥＦＸを「０」に設定し（ステップＳ１４２）、本処理を終了する。
【００８３】
ステップＳ１３１でＦＰＧＤＬＹ＝１であってパージ停止中であるときは、エンジン回転数ＮＥが所定上限回転数ＮＫＲＥＦＸＨ（例えば４０００ｒｐｍ）より高いか否かを判別する（ステップＳ１３５）。この答が肯定（ＹＥＳ）であるときは前記ステップＳ１４２に進む。エンジン回転数ＮＥが所定上限回転数ＮＫＲＥＦＸＨ以下であるときは、始動後経過時間タイマＴ１０ＭＳＡＣＲの値が所定時間ＴＭＫＲＥＦＸＢ（例えば２０秒）より大きいか否かを判別する（ステップＳ１３６）。この答が否定（ＮＯ）であるときは直ちにステップＳ１３８に進む。またＴ１０ＭＳＡＣＲ＞ＴＭＫＲＥＦＸＢであるときは、ＫＲＥＦＸ学習済みフラグＦＫＲＥＦＸＢＵが「１」であるか否かを判別する（ステップＳ１３７）。ＫＲＥＦＸ学習済みフラグＦＫＲＥＦＸＢＵは、バッテリが外されて、それまでの学習値が失われた後、最初に第２学習値ＫＲＥＦＸの算出が完了したとき「１」に設定される。ステップＳ１３７の答が否定（ＮＯ）であって、第２学習値ＫＲＥＦＸの算出が完了していないときは、直ちにステップＳ１４１に進む。ＦＫＲＥＦＸＢＵ＝１であって第２学習値ＫＲＥＦＸの算出が完了したときは、ステップＳ１３８に進む。
【００８４】
ステップＳ１３８では、吸気温ＴＡが所定吸気温ＴＡＲＥＦ（例えば８０℃）より高いか否かを判別する。この答が否定（ＮＯ）であるときは、吸気管内絶対圧ＰＢＡが所定下限値ＰＢＡＲＥＦＸＬ（例えば２１．３ｋＰａ（１６０ｍｍＨｇ））より高いか否かを判別する（ステップＳ１３９）。この答が肯定（ＹＥＳ）であるときは、吸気管内絶対圧ＰＢＡが所定上限値ＰＢＡＲＥＦＸＨ（例えば７４．６ｋＰａ（５６０ｍｍＨｇ））より低いか否かを判別する（ステップＳ１４０）。ステップＳ１４０の答が肯定（ＹＥＳ）であるときは、ステップＳ１４１に進む一方、ステップＳ１３８の答が肯定（ＹＥＳ）、またはステップＳ１３９若しくはＳ１４０の答が否定（ＮＯ）であるときは、前記ステップＳ１４２に進む。
【００８５】
ステップＳ１４１では、学習許可フラグＦＫＲＦＣＮＤが「１」であるか否かを判別し、この答が否定（ＮＯ）であるときは前記ステップＳ１４２に進む。ＦＫＲＦＣＮＤ＝１であって学習値算出が許可されているときは、下記式（４）により、第２学習値ＫＲＥＦＸを算出する。
ＫＲＥＦＸ＝ＣＲＥＦＸ×ＫＡＦ＋（１−ＣＲＥＦＸ）×ＫＲＥＦＸ  （４）
ここでＣＲＥＦＸは０から１の間の値に設定されるなまし係数であり、右辺のＫＲＥＦＸは前回算出値である。
【００８６】
ステップＳ１４４では、ステップＳ１４３で算出された第２学習値ＫＲＥＦＸのリミット処理を行う。すなわち、第２学習値ＫＲＥＦＸが所定下限値ＫＲＦＸＬＭＴＬより小さいときは、第２学習値ＫＲＥＦＸをその所定下限値ＫＲＦＸＬＭＴＬに設定し、第２学習値ＫＲＥＦＸが所定上限値ＫＲＦＸＬＭＴＨより大きいときは、第２学習値ＫＲＥＦＸをその所定上限値ＫＲＦＸＬＭＴＨに設定し、第２学習値ＫＲＥＦＸが所定上下限値ＫＲＦＸＬＭＴＨ，ＫＲＦＸＬＭＴＬの間にあるときは、ステップＳ１４３で算出された値を維持する。その後、ＫＲＥＦＸ更新フラグＦＫＲＥＦＸを「１」に設定し（ステップＳ１４５）、本処理を終了する。
【００８７】
図１１は、後述する図１３の処理で参照されるフラグの設定を行う処理のフローチャートである。この処理は所定時間（例えば１０ミリ秒）毎に実行される。図１１の処理では、具体的には、加算フラグＦＫＡＦＥＶＰ、減算フラグＦＫＡＦＥＶＰＭ、及び偏差算出フラグＫＡＦＥＶＣの設定が行われる。
【００８８】
ステップＳ１７１では、吸入空気流量ＱＡＩＲに応じて図１２（ａ）に示すＤＫＡＦＥＶＸＨテーブルを検索し、上側判定偏差ＤＫＡＦＥＶＸＨを算出する。ＤＫＡＦＥＶＸＨテーブルは、吸入空気流量ＱＡＩＲが増加するほど、上側判定偏差ＤＫＡＦＥＶＸＨが減少するように設定されている。
【００８９】
ステップＳ１７２では、吸入空気流量ＱＡＩＲに応じて図１２（ｂ）に示すＤＫＡＦＥＶＸＬテーブルを検索し、下側判定偏差ＤＫＡＦＥＶＸＬを算出する。ＤＫＡＦＥＶＸＬテーブルは、吸入空気流量ＱＡＩＲが増加するほど、上側判定偏差ＤＫＡＦＥＶＸＨが減少するように設定されている。
【００９０】
ステップＳ１７５では、空燃比補正係数ＫＡＦが、第２学習値ＫＲＥＦＸから下側判定偏差ＤＫＡＦＥＶＸＬを減算した値より小さいか否かを判別する（ステップＳ１７５）。この答が肯定（ＹＥＳ）であって、空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸよりリーン側に比較的大きくずれているときは、リッチ空燃比フラグＦＫＡＣＴＲが「１」であるか否かを判別する（ステップＳ１７６）。リッチ空燃比フラグＦＫＡＣＴＲは、ＬＡＦセンサ１９により検出される空燃比が理論空燃比よりリッチ側にあるとき「１」に設定される。
【００９１】
ステップＳ１７６の答が肯定（ＹＥＳ）であって検出空燃比が理論空燃比よりリッチであるときは、加算フラグＦＫＡＦＥＶＰを「１」に設定するとともに、加算フラグＦＫＡＦＥＶＭ及び偏差算出フラグＦＫＡＦＥＶＣをともに「０」に設定する（ステップＳ１７７）。ステップＳ１７６でＦＫＡＣＴＲ＝０であって検出空燃比が理論空燃比よりリッチでないときは、加算フラグＦＫＡＦＥＶＰ、加算フラグＦＫＡＦＥＶＭ及び偏差算出フラグＦＫＡＦＥＶＣをいずれも「０」に設定する（ステップＳ１８０）。
【００９２】
ステップＳ１７５でＫＡＦ≧（ＫＲＥＦＸ−ＤＫＡＦＥＶＸＬ）であるときは、空燃比補正係数ＫＡＦが、第２学習値ＫＲＥＦＸに上側判定偏差ＤＫＡＦＥＶＸＨを加算した値より大きいか否かを判別する（ステップＳ１７８）。この答が肯定（ＹＥＳ）であって、空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸよりリッチ側に比較的大きくずれているときは、リーン空燃比フラグＦＫＡＣＴＬが「１」であるか否かを判別する（ステップＳ１７９）。リーン空燃比フラグＦＫＡＣＴＬは、ＬＡＦセンサ１９により検出される空燃比が理論空燃比よりリーン側にあるとき「１」に設定される。
【００９３】
ステップＳ１７９の答が肯定（ＹＥＳ）であって検出空燃比が理論空燃比よりリーンであるときは、加算フラグＦＫＡＦＥＶＭを「１」に設定するとともに、加算フラグＦＫＡＦＥＶＰ及び偏差算出フラグＦＫＡＦＥＶＣをともに「０」に設定する（ステップＳ１８１）。またステップＳ１７９でＦＫＡＣＴＬ＝０であるときは前記ステップＳ１８０に進む。
【００９４】
ステップＳ１７８の答が否定（ＮＯ）であって、空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸの近傍にあるときは、第１学習値ＫＲＥＦが第２学習値ＫＲＥＦＸより小さいか否かを判別する（ステップＳ１８２）。この答が肯定（ＹＥＳ）であるときは、空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸより小さいか否かを判別する（ステップＳ１８３）。この答が肯定（ＹＥＳ）であるときは、リッチ空燃比フラグＦＫＡＣＴＲが「１」であるか否かを判別する（ステップＳ１８４）。この答が肯定（ＹＥＳ）であるときは、加算フラグＦＫＡＦＥＶＰ及び加算フラグＦＫＡＦＥＶＭを「０」に設定するとともに、偏差算出フラグＦＫＡＦＥＶＣを「１」に設定する（ステップＳ１８５）。ステップＳ１８３またはＳ１８４の答が否定（ＮＯ）であるときは、加算フラグＦＫＡＦＥＶＰ、加算フラグＦＫＡＦＥＶＭ及び偏差算出フラグＦＫＡＦＥＶＣをいずれも「０」に設定する（ステップＳ１８８）。
【００９５】
ステップＳ１８２で、ＫＲＥＦ≧ＫＲＥＦＸであるときは、ステップＳ１８６に進み、空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸより大きいか否かを判別する。その答が肯定（ＹＥＳ）であるときは、リーン空燃比フラグＦＫＡＣＴＬが「１」であるか否かを判別する（ステップＳ１８７）。ステップＳ１８７の答が肯定（ＹＥＳ）であるときは、加算フラグＦＫＡＦＥＶＰ及び加算フラグＦＫＡＦＥＶＭを「０」に設定するとともに、偏差算出フラグＦＫＡＦＥＶＣを「１」に設定する（ステップＳ１８９）。ステップＳ１８６またはＳ１８７の答が否定（ＮＯ）であるときは、前記ステップＳ１８８に進む。
【００９６】
図１１の処理によれば、空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸから比較的大きくリーン側にずれており、かつ検出空燃比がリッチ側にあるときは、パージガス中の蒸発燃料濃度が増加していると判定され、加算フラグＦＫＡＦＥＶＰが「１」に設定される（ステップＳ１７７）。また空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸから比較的大きくリッチ側にずれており、かつ検出空燃比がリーン側にあるときは、パージガス中の蒸発燃料濃度が減少していると判定され、加算フラグＦＫＡＦＥＶＭが「１」に設定される（ステップＳ１８１）。また、空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸの近傍にあり、第１学習値ＫＲＥＦが第２学習値ＫＲＥＦＸより小さく、空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸより小さく、かつ検出空燃比がリッチ側にあるときは、第１学習値ＫＲＥＦと第２学習値ＫＲＥＦＸの偏差（ＫＲＥＦＸ−ＫＲＥＦ）に応じた量だけ、パージガス中の蒸発燃料濃度が増加したと判定され、偏差算出フラグＦＫＡＦＥＶＣが「１」に設定される（ステップＳ１８５）。または空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸの近傍にあり、第１学習値ＫＲＥＦが第２学習値ＫＲＥＦＸ以上であり、空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸより大きく、かつ検出空燃比がリーン側にあるときは、偏差（ＫＲＥＦＸ−ＫＲＥＦ）は負の値（または「０」）となり、この負の偏差に応じた量だけ、蒸発燃料濃度が減少したと判定され、偏差算出フラグＦＫＡＦＥＶＣが「１」に設定される（ステップＳ１８９）。
【００９７】
図１３は、トータルベーパ量ＶＰＲＴＴＬＦＬを算出する処理のフローチャートである。この処理は所定時間（例えば１０ミリ秒）毎に実行される。
ステップＳ１５１では、フィードバック制御フラグＦＡＦＦＢＸが「１」であるか否かを判別する。フィードバック制御フラグＦＡＦＦＢＸは、ＬＡＦセンサ１９の出力に応じて空燃比補正係数ＫＡＦを算出する空燃比フィードバック制御を実行するとき「１」に設定される。ステップＳ１５１の答が肯定（ＹＥＳ）であるときは、パージ流量ＱＰＧＣが「０」であるか否かを判別する（ステップＳ１５２）。この答が否定（ＮＯ）であるとき、すなわち空燃比フィードバック制御及び蒸発燃料のパージを実行しているときは、ダウンカウントタイマＴＶＰＲＴＴＬＤを所定時間ＴＭＶＰＲＴＬＤ（例えば１０秒）にセットしてスタートさせる（ステップＳ１５７）。
【００９８】
ステップＳ１５８では、加算フラグＦＫＡＦＥＶＰが「１」であるか否かを判別する。ステップＳ１５８の答が肯定（ＹＥＳ）であるときは、下記式（５）により、ベーパ量パラメータＶＰＲＴを算出する（ステップＳ１５９）。その後、ステップＳ１６６に進む。
ＶＰＲＴ＝ＶＰＲＴＴＬＦＬ＋ＤＶＰＲＴＴＬＰ              （５）
ここでＶＰＲＴＴＬＦＬは、トータルベーパ量の前回算出値であり、ＤＶＰＲＴＴＬＰは所定加算項である。
【００９９】
ステップＳ１５８でＦＫＡＦＥＶＰ＝０であるときは、減算フラグＦＫＡＦＥＶＭが「１」であるか否かを判別する（ステップＳ１６０）。ステップＳ１６０の答が肯定（ＹＥＳ）であるときは、下記式（６）により、ベーパ量パラメータＶＰＲＴを算出する（ステップＳ１６１）。その後、ステップＳ１６６に進む。
ＶＰＲＴ＝ＶＰＲＴＴＬＦＬ−ＤＶＰＲＴＴＬＭ              （６）
ここでＶＰＲＴＴＬＦＬは、トータルベーパ量の前回算出値であり、ＤＶＰＲＴＴＬＭは所定減算項である。
【０１００】
ステップＳ１６０でＦＫＡＦＥＶＭ＝０であるときは、偏差算出フラグＦＫＡＦＥＶＣが「１」であるか否かを判別する。ステップＳ１６２の答が肯定（ＹＥＳ）であるときは、下記式（７）に図１０の処理で算出される第１学習値ＫＲＥＦ及び第２学習値ＫＲＥＦＸを適用し、学習値偏差ＤＫＲＥＦＸを算出する（ステップＳ１６３）。
ＤＫＲＥＦＸ＝ＫＲＥＦＸ−ＫＲＥＦ                        （７）
【０１０１】
ステップＳ１６４では、下記式（８）に学習値偏差ＤＫＲＥＦＸを適用して、ベーパ量パラメータＶＰＲＴを算出する。その後ステップＳ１６６に進む。
ＶＰＲＴ＝ＶＰＲＴＴＬＦＬ＋ＤＫＲＥＦＸ×ＣＡＦＥＶ      （８）
ここで、ＶＰＲＴＴＬＦＬは、トータルベーパ量の前回算出値であり、ＣＡＦＥＶは、例えば０．０３５１５に設定される所定間引き係数である。
【０１０２】
ステップＳ１６２でＦＫＡＦＥＶＣ＝０であるときは、ベーパ量パラメータＶＰＲＴを、トータルベーパ量の前回算出値ＶＰＲＴＴＬＦＬに設定し（ステップＳ１６５）、ステップＳ１６６に進む。
【０１０３】
一方、ステップＳ１５１の答が否定（ＮＯ）またはステップＳ１５２の答が肯定（ＹＥＳ）であるとき、すなわち空燃比フィードバック制御または蒸発燃料のパージを実行していないときは、ステップＳ１５３に進み、ステップＳ１５７でスタートされるダウンカウントタイマＴＶＰＲＴＴＬＤの値が「０」であるか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ベーパ量パラメータＶＰＲＴを、トータルベーパ量の前回算出値ＶＰＲＴＴＬＦＬに設定し（ステップＳ１５４）、ステップＳ１６６に進む。タイマＴＶＰＲＴＴＬＤの値が「０」となると、ステップＳ１５３からステップＳ１５５に進み、ステップＳ１５７と同様に、タイマＴＶＰＲＴＴＬＤを所定時間ＴＭＶＰＲＴＬＤにセットしてスタートさせる。続くステップＳ１５６では、ベーパ量パラメータＶＰＲＴを下記式（９）により算出する。その後ステップＳ１６６に進む。
ＶＰＲＴ＝ＶＰＲＴＴＬＦＬ−ＤＶＰＲＴＴＬＤ                （９）
ここで、ＶＰＲＴＴＬＦＬは、トータルベーパ量の前回算出値であり、ＤＶＰＲＴＴＬＤは、所定強制減算項である。
【０１０４】
ステップＳ１６６では、ベーパ量パラメータＶＰＲＴが所定上限値ＶＰＲＴＬＭＴ以下であるか否かを判別し、この答が肯定（ＹＥＳ）であるときは、トータルベーパ量ＶＰＲＴＴＬＦＬを、ベーパ量パラメータＶＰＲＴに設定する（ステップＳ１６７）。またベーパ量パラメータＶＰＲＴが所定上限値ＶＰＲＴＬＭＴより大きいときは、トータルベーパ量ＶＰＲＴＴＬＦＬをその所定上限値ＶＰＲＴＬＭＴに設定する（ステップＳ１６８）。その後本処理を終了する。
【０１０５】
図１０、図１１及び図１３の処理によれば、空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸから比較的大きくずれているときは、蒸発燃料濃度が比較的大きく増加または減少していると判定され、トータルベーパ量ＶＰＲＴＴＬＦＬが比較的大きく増加または減少するように更新される（図１１，ステップＳ１５９，Ｓ１６１）。また空燃比補正係数ＫＡＦが第２学習値ＫＲＥＦＸの近傍にあるときは、パージガス中の蒸発燃料濃度が低いことを示すので、第１学習値ＫＲＥＦと第２学習値ＫＲＥＦＸの偏差である学習値偏差ＤＫＲＥＦＸ（＝ＫＲＥＦＸ−ＫＲＥＦ）に間引き係数ＣＡＦＥＶを乗算した値だけ、比較的小さく増加または減少するように、トータルベーパ量ＶＰＲＴＴＬＦＬが更新される（図１１，ステップＳ１６４）。したがって、このようにして更新されるトータルベーパ量ＶＰＲＴＴＬＦＬは、パージガス中の蒸発燃料濃度を示すパラメータとして使用することができる。
【０１０６】
本実施形態では、チャージ通路３１及びパージ通路３２がそれぞれ第１の通路及び第２の通路に相当し、圧力センサ１５が圧力検出手段に相当する。また、ＥＣＵ５が、減圧手段、漏れ判定手段、第２の漏れ判定手段、確認手段、及び再判定実行手段を構成する。具体的には、図３の処理が漏れ判定手段に相当し、図７のステップＳ７８、及びパージ制御弁３４のデューティ制御処理（図示せず）が減圧手段に相当し、図８の処理が第２の漏れ判定手段に相当し、図９〜図１１及び図１３の処理が確認手段に相当し、図６のステップＳ５３が再判定実行手段に相当する。
【０１０７】
（変形例）
図３の処理に代えて、図１４の処理により、第１フィラーキャップ外れ判定を行うようにしてもよい。
【０１０８】
図１４の処理は、図３の処理にステップＳ２２１及びＳ２２２を追加したものである。
ステップＳ２２１では、フィラーキャップ取付フラグＦＦＣＡＰＣＬＯＳＥが「１」であるか否かを判別し、その答が否定（ＮＯ）であるときは、フィラーキャップ外れフラグＦＦＣＡＰＯＰＥＮが「１」であるか否かを判別する（ステップＳ２２２）。この答が肯定（ＹＥＳ）であるときは直ちにステップＳ２１２に進み、否定（ＮＯ）であるときは、ステップＳ２０５に進む。またフィラーキャップ取付フラグＦＦＣＡＰＣＬＯＳＥが「１」に設定されると、ステップＳ２２２をスキップしてステップＳ２０５に進む。
【０１０９】
上述した図３の処理によれば、第１フィラーキャップ外れ判定は、パージ流量ＱＰＧＣの条件が成立した状態（ＦＦＣＡＰＣＯＮＤ＝１）で、フュエルカット運転が開始されると常に実行されるが、図１４の処理では、フィラーキャップ外れフラグＦＦＣＡＰＯＰＥＮが「１」に設定された後は、フィラーキャップ取付フラグＦＦＣＡＰＣＬＯＳＥが「１」に設定されるまで、第１フィラーキャップ外れ判定は実行されない。すなわち、フィラーキャップが取り付けられた可能性が高いと判定されたことを条件として、第１フィラーキャップ外れ判定が再実行される。
この変形例では、図１４のステップＳ２２１が再判定実行手段に相当する。
【０１１０】
（他の変形例）
上述した図９の処理では、パージガス中の蒸発燃料濃度の急激な変化に基づいて、フィラーキャップが取り付けらた可能性を判定したが、例えばエンジン１のアイドル時間が所定時間（例えば１０秒以上）継続したとき、フィラーキャップが取り付けられた可能性が高いと判定するようにしてもよい。
【０１１１】
また上述した実施形態では、大孔漏れの例としてフィラーキャップ外れを示したが、本発明の故障診断装置によれば、燃料タンク９の破損による大孔漏れがあるときにも、その大孔漏れを検出することができる。その場合は、図９の処理は、フィラーキャップが取り付けられた可能性の判定ではなく、何らかの応急処置で大孔が塞がれた可能性の判定を行うことになるが、判定手法は同一である。
【０１１２】
また上述した実施形態では、圧力センサ１５は、チャージ通路３１に設けられているが、これに限るものではなく、例えば燃料タンク９やキャニスタ３３に設けるようにしてもよい。
【０１１３】
また上述した実施形態では、検出タンク内圧ＰＴＡＮＫをなまし処理し、差圧に変換することにより得られるなましタンク内圧ＰＴＮＫＡＶＥを用いて、漏れ判定を行うようにしたが、検出タンク内圧ＰＴＡＮＫそのものを用いてもよい。
【０１１４】
また本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンの吸気系に蒸発燃料を供給する蒸発燃料処理装置の故障診断にも適用が可能である。
【図面の簡単な説明】
【０１１５】
【図１】本発明の一実施形態にかかる内燃機関及び蒸発燃料処理装置の構成を示す図である。
【図２】フィラーキャップ外れの判定手法を説明するための図である。
【図３】図２に示す判定手法によりフィラーキャップ外れを判定する処理のフローチャートである。
【図４】図１に示す蒸発燃料処理装置の漏れ判定を実行するための第１実行条件を判定する処理のフローチャートである。
【図５】図１に示す蒸発燃料処理装置の漏れ判定を実行するための第２実行条件を判定する処理のフローチャートである。
【図６】図１に示す蒸発燃料処理装置の漏れ判定を実行するための第３実行条件を判定する処理のフローチャートである。
【図７】蒸発燃料処理装置内を大気に開放する処理のフローチャートである。
【図８】蒸発燃料処理装置内を減圧し、フィラーキャップ外れの有無を判定する処理のフローチャートである。
【図９】フィラーキャップが取り付けられた可能性を判定する処理のフローチャートである。
【図１０】空燃比補正係数（ＫＡＦ）の学習値（ＫＲＥＦ，ＫＲＥＦＸ）を算出する処理のフローチャートである。
【図１１】図１３の処理で参照されるフラグを設定する処理のフローチャートである。
【図１２】図１１の処理で使用されるテーブルを示す図である。
【図１３】パージガス中の蒸発燃料濃度を示すパラメータ（ＶＰＲＴＴＬＦＬ）を算出する処理のフローチャートである。
【図１４】図３の処理の変形例を示すフローチャートである。
【符号の説明】
【０１１６】
１  内燃機関
２  吸気管
５  電子制御ユニット（減圧手段、漏れ判定手段、第２の漏れ判定手段、確認手段、再判定実行手段）
９  燃料タンク
１５  圧力センサ（圧力検出手段）
３１  チャージ通路（第１の通路）
３２  パージ通路（第２の通路）
３３  キャニスタ
３４  パージ制御弁
【図１】
2006258029.tif 000003
【図２】
2006258029.tif 000004
【図３】
2006258029.tif 000005
【図４】
2006258029.tif 000006
【図５】
2006258029.tif 000007
【図６】
2006258029.tif 000008
【図７】
2006258029.tif 000009
【図８】
2006258029.tif 000010
【図９】
2006258029.tif 000011
【図１０】
2006258029.tif 000012
【図１１】
2006258029.tif 000013
【図１２】
2006258029.tif 000014
【図１３】
2006258029.tif 000015
【図１４】
2006258029.tif 000016