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