(57)【要約】【課題】内燃機関の停止後に蒸発燃料処理系のリークを含む故障を判定する場合において、誤判定を確実に回避でき、その判定精度を向上させることができる蒸発燃料処理系の故障判定装置を提供する。【解決手段】蒸発燃料処理系４０のリークを含む故障の有無を判定する蒸発燃料処理系４０の故障判定装置１であって、故障判定装置１は、内燃機関３の停止を検出し（ステップ４２）、内燃機関３の停止が検出された後に検出された蒸発燃料処理系４０内の圧力ＰＴＡＮＫに応じて、蒸発燃料処理系４０のリークを含む故障の有無を判定し（ステップ５１，６２，６８）、内燃機関３の停止が検出されたときの燃料タンク４１内の気層の温度を表す気層温度パラメータＴＴＡＮＫ，ＴＣＴＭＡＸを検出し（ステップ６Ａ，８）、検出された気層温度パラメータＴＴＡＮＫ，ＴＣＴＭＡＸに応じて、故障判定を禁止する（ステップ３４，３５）。【選択図】  図４
2004346812.tif 000002
【特許請求の範囲】
【請求項１】
燃料タンク内で発生した蒸発燃料を、貯蔵部に一時的に貯蔵し、内燃機関の吸気系に供給する蒸発燃料処理系のリークを含む故障の有無を判定する蒸発燃料処理系の故障判定装置であって、
前記蒸発燃料処理系内の圧力を検出する圧力検出手段と、
前記内燃機関の停止を検出する機関停止検出手段と、
当該機関停止検出手段により前記内燃機関の停止が検出された後に前記圧力検出手段により検出された前記蒸発燃料処理系内の圧力に応じて、前記蒸発燃料処理系のリークを含む故障の有無を判定する故障判定手段と、
前記内燃機関の停止が検出されたときの前記燃料タンク内の気層の温度を表す気層温度パラメータを検出する気層温度パラメータ検出手段と、
当該気層温度パラメータ検出手段により検出された気層温度パラメータに応じて、前記故障判定手段による判定を禁止する故障判定禁止手段と、
を備えることを特徴とする蒸発燃料処理系の故障判定装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、燃料タンク内で発生した蒸発燃料を、貯蔵部に一時的に貯蔵し、内燃機関の吸気系に供給する蒸発燃料処理系のリークを含む故障の有無を判定する蒸発燃料処理系の故障判定装置に関する。
【０００２】
【従来の技術】
従来の上記のような故障判定装置として、例えば特許文献１に開示されたものが知られている。この故障判定装置では、内燃機関の停止時に、蒸発燃料処理系内を負圧状態に制御した後に閉鎖するとともに、その後における蒸発燃料処理系内の圧力と大気圧との差圧の時間的な推移に基づき、蒸発燃料処理系のリークが判定される。すなわち、リークがある場合には、負圧状態に閉鎖された蒸発燃料処理系内に大気が流入することにより、蒸発燃料処理系内の圧力が上昇し、大気圧との差圧が小さくなるので、それにより、リークがあると判定することができる。
【０００３】
【特許文献１】
特開平１１−３３６６２６号公報
【０００４】
【発明が解決しようとする課題】
この従来の故障判定装置では、上述したように、蒸発燃料処理系内を負圧状態で閉鎖した状態での圧力の上昇に基づいてリーク判定が行われる。しかし、このときの蒸発燃料処理系内の圧力の上昇には、リークによる上昇分だけでなく、燃料タンク内の燃料を熱源とする蒸発燃料処理系内の温度上昇に伴う上昇分が含まれる。また、燃料タンク内の燃料温度が高いときには、蒸発燃料の発生量が多くなるため、蒸発燃料処理系内の圧力はさらに上昇する。
【０００５】
このため、燃料温度がかなり高い場合には、内燃機関の停止後において、燃料温度および蒸発燃料による蒸発燃料処理系内の圧力の上昇分が非常に大きくなるので、リークがないときでも差圧が非常に小さくなり、その結果、リークがあると誤判定するおそれがある。逆に燃料温度がかなり低い場合には、燃料温度による蒸発燃料処理系内の圧力の上昇分が小さいことにより、リークがあるときでも差圧の変化量があまり小さくならないことで、リークがないと誤判定するおそれがある。
【０００６】
本発明は、このような課題を解決するためになされたものであり、内燃機関の停止後に蒸発燃料処理系のリークを含む故障を判定する場合において、誤判定を確実に回避でき、その判定精度を向上させることができる蒸発燃料処理系の故障判定装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
この目的を達成するため、請求項１による発明は、燃料タンク４１内で発生した蒸発燃料を、貯蔵部（実施形態における（以下、本項において同じ）キャニスタ４３）に一時的に貯蔵し、内燃機関３の吸気系（吸気管４）に供給する蒸発燃料処理系４０のリークを含む故障の有無を判定する蒸発燃料処理系４０の故障判定装置１であって、蒸発燃料処理系４０内の圧力（タンク内圧ＰＴＡＮＫ）を検出する圧力検出手段（圧力センサ２８）と、内燃機関３の停止を検出する機関停止検出手段（エンジン回転数センサ２１、ＥＣＵ２、図５のステップ４２）と、機関停止検出手段により内燃機関３の停止が検出された後に圧力検出手段により検出された蒸発燃料処理系４０内の圧力に応じて、蒸発燃料処理系４０のリークを含む故障の有無を判定する故障判定手段（ＥＣＵ２、図５のステップ５１，図６のステップ６２，６８）と、内燃機関３の停止が検出されたときの燃料タンク４１内の気層の温度を表す気層温度パラメータ（推定ＴＡＮＫ温度上昇分ＴＴＡＮＫ，推定触媒温度の最大値ＴＣＴＭＡＸ）を検出する気層温度パラメータ検出手段（ＥＣＵ２、図２のステップ６Ａ，８）と、気層温度パラメータ検出手段により検出された気層温度パラメータに応じて、故障判定手段による判定を禁止する故障判定禁止手段（ＥＣＵ２、図４のステップ３４，３５）と、を備えることを特徴とする。
【０００８】
この蒸発燃料処理系の故障判定装置によれば、内燃機関の停止後に検出された蒸発燃料処理系内の圧力に応じて、蒸発燃料処理系のリークを含む故障の有無が判定される。また、内燃機関の停止が検出されたときの燃料タンク内の気層温度を表す気層温度パラメータが検出されるとともに、検出された気層温度パラメータに応じて、蒸発燃料処理系の故障判定が禁止される。このため、例えば、燃料タンク内の気層温度が、燃料温度などの影響により高すぎるために、燃料温度および蒸発燃料による蒸発燃料処理系内の圧力の上昇分が通常よりも大きすぎることで、判定を誤るおそれがあるような場合に、故障判定を禁止することができる。また、例えば、燃料タンク内の気層温度が低すぎるために、燃料温度による蒸発燃料処理系内の圧力の上昇分が通常よりも小さすぎることで、判定を誤るおそれがある場合にも、故障判定を禁止することができる。以上により、誤判定を確実に回避でき、判定精度を向上させることができる。
【０００９】
【発明の実施の形態】
以下、図面を参照しながら、本発明の好ましい実施形態を詳細に説明する。図１は、本発明の故障判定装置１、これを適用した蒸発燃料処理系４０および内燃機関（以下「エンジン」という）３の概略構成を示している。この故障判定装置１は、蒸発燃料処理系４０における故障の有無、より具体的には、リークの有無を判定するものである。
【００１０】
エンジン３は、ガソリンエンジンであり、車両（図示せず）に搭載されている。このエンジン３の本体には、エンジン回転数センサ２１（機関停止検出手段）およびエンジン水温センサ２２が取り付けられている。エンジン回転数センサ２１およびエンジン水温センサ２２はそれぞれ、エンジン回転数ＮＥおよびシリンダブロック内を循環する冷却水の温度であるエンジン水温ＴＷを検出し、それらの検出信号をＥＣＵ２に出力する。
【００１１】
エンジン３の吸気管４（吸気系）には、スロットル弁５が設けられ、その下流側には、吸気温センサ２３および吸気管内絶対圧センサ２４が取り付けられている。吸気温センサ２３および吸気管内絶対圧センサ２４はそれぞれ、吸気管４内の吸気温ＴＡおよび吸気管内絶対圧ＰＢＡを検出し、それらの検出信号をＥＣＵ２に出力する。
【００１２】
また、吸気管４の吸気管内絶対圧センサ２４よりも下流側には、インジェクタ６が吸気ポート（図示せず）に臨むように取り付けられている。このインジェクタ６の開弁時間である燃料噴射時間は、ＥＣＵ２によって制御される。また、インジェクタ６は、燃料供給管７を介して燃料タンク４１に接続されており、この燃料供給管７の途中には、インジェクタ６に燃料を圧送する燃料ポンプ８が設けられている。
【００１３】
エンジン３の排気管９には、三元触媒１０が設けられている。この三元触媒１０は燃料タンク４１の付近に配置されている。このため、燃料タンク４１およびその内部の燃料は、エンジン３の運転中、三元触媒１０内を流れる排気ガスによって昇温される。
【００１４】
ＥＣＵ２には、外気温センサ２５から外気温ＴＡＴを表す検出信号が、車速センサ２６から車両の速度（以下「車速」という）ＶＰを表す検出信号が、大気圧センサ２７から大気圧ＰＡを表す検出信号が、それぞれ出力される。
【００１５】
また、ＥＣＵ２には、イグニッションスイッチ（以下「ＩＧ・ＳＷ」という）３０が接続されている。このＩＧ・ＳＷ３０は、イグニッションキー（図示せず）の操作状態に応じたＯＮ／ＯＦＦ信号をＥＣＵ２に出力する。
【００１６】
蒸発燃料処理系４０は、燃料タンク４１、チャージ通路４２、キャニスタ４３（貯蔵部）およびパージ通路４４を備えており、燃料タンク４１内で発生した蒸発燃料を、キャニスタ４３に一時的に吸着・貯留し、吸気管４内に適宜、放出するものである。
【００１７】
燃料タンク４１は、チャージ通路４２を介して、キャニスタ４３に接続されており、燃料タンク４１内で発生した蒸発燃料がチャージ通路４２を介して、キャニスタ４３に送られる。チャージ通路４２の燃料タンク４１側には、圧力センサ２８（圧力検出手段）が配置されている。この圧力センサ２８は、例えば圧電素子で構成され、チャージ通路４２内の圧力を検出し、その検出信号をＥＣＵ２に出力する。このチャージ通路４２内の圧力は、通常は燃料タンク４１内の圧力にほぼ等しいので、以下、タンク内圧ＰＴＡＮＫ（蒸発燃料処理系内の圧力）という。
【００１８】
また、燃料タンク４１は、給油用の給油口４１ａと、これに取り付けられたフィラーキャップ４１ｂを備えている。フィラーキャップ４１ｂには、フィラーキャップスイッチ３１が設けられており、このフィラーキャップスイッチ３１は、給油口４１ａにフィラーキャップ４１ｂが取り付けられているときにＯＮ信号を、取り外されているときにＯＦＦ信号をＥＣＵ２に出力する。さらに、燃料タンク４１には、フロート弁４１ｃが設けられている。このフロート弁４１ｃは、チャージ通路４２の燃料タンク４１側のポートを、通常は開放するとともに、燃料タンク４１が満タン状態のときや燃料タンク４１内の燃料が揺れたときなどに閉鎖することにより、燃料がチャージ通路４２側に流れ込むのを阻止する。
【００１９】
さらに、燃料タンク４１には、燃料レベルセンサ２９が設けられている。この燃料レベルセンサ２９は、燃料タンク４１内の燃料のレベル（以下「燃料レベル」という）ＦＬＥＶＥＬを検出し、その検出信号をＥＣＵ２に出力する。
【００２０】
チャージ通路４２の圧力センサ２８とキャニスタ４３の間には、２方向弁４５が設けられている。この２方向弁４５は、いずれもダイアフラム式の正圧弁および負圧弁を組み合わせた機械式弁で構成されている。この正圧弁は、タンク内圧ＰＴＡＮＫが上限圧、すなわち大気圧よりも所定圧分高い所定圧力に達したときに開弁するように構成されており、その開弁により、燃料タンク４１内の蒸発燃料がキャニスタ４３に送られる。また、負圧弁は、タンク内圧ＰＴＡＮＫが下限圧、すなわちキャニスタ４３側の圧力よりも所定圧分低い所定圧力に達したときに開弁するように構成されており、その開弁により、キャニスタ４３に貯えられていた蒸発燃料が燃料タンク４１に戻される。
【００２１】
さらに、チャージ通路４２には、２方向弁４５をバイパスするようにバイパス通路４６が設けられている。このバイパス通路４６には、バイパス弁５０が設けられている。このバイパス弁５０は、常閉タイプの電磁弁で構成されており、通常はバイパス通路４６を閉鎖し、ＥＣＵ２の制御によって励磁されたときに開弁することにより、バイパス通路４６を開放する。
【００２２】
キャニスタ４３は、活性炭を内蔵しており、この活性炭によって蒸発燃料が吸着される。このキャニスタ４３には、大気側に開口する大気通路４７が接続されており、大気通路４７には、これを開閉するベントシャット弁５１が設けられている。このベントシャット弁５１は、常開タイプの電磁弁で構成されており、通常は大気通路４７を開放し、ＥＣＵ２の制御により励磁されたときに大気通路４７を閉鎖する。
【００２３】
パージ通路４４は、キャニスタ４３と吸気管４を連結しており、パージ通路４４の途中には、これを開閉するパージ制御弁５２が設けられている。このパージ制御弁５２は、電磁弁で構成されており、その開度は、ＥＣＵ２からの駆動信号のデューティ比に応じて連続的に変化するように制御される。上記ベントシャット弁５１が開弁状態のときに、パージ制御弁５２が開弁することによって、キャニスタ４３に貯えられた蒸発燃料が、吸気管４内の負圧により吸気管４内に送り込まれる（パージされる）。ＥＣＵ２は、パージ制御弁５２の開度をデューティ制御することにより、キャニスタ４３から吸気管４に送り込まれる蒸発燃料の流量、すなわちパージ流量を制御するとともに、ＩＧ・ＳＷ３０がＯＦＦされたときには、パージ制御弁５２を閉弁状態に保持する。
【００２４】
ＥＣＵ２は、Ｉ／Ｏインターフェース、ＣＰＵ、ＲＡＭおよびＲＯＭなどからなるマイクロコンピュータで構成されている。前述した各種のセンサ２１〜２９および前記スイッチ３０，３１からの検出信号はそれぞれ、Ｉ／ＯインターフェースでＡ／Ｄ変換や整形がなされた後、ＣＰＵに入力される。
【００２５】
ＣＰＵは、ＲＯＭに記憶された制御プログラムなどに従い、入力された入力信号に応じて、エンジン３の運転状態を判別するとともに、判別した運転状態に応じ、上述した各種の弁５０〜５２の動作を制御することによって蒸発燃料処理系４０の動作を制御するとともに、蒸発燃料処理系４０のリークを含む故障を判定する故障判定処理などを実行する。なお、本実施形態では、ＥＣＵ２により、機関停止検出手段、故障判定手段、気層温度パラメータ検出手段、および故障判定禁止手段が構成されている。
【００２６】
図２は、ＴＡＮＫ温度上昇分推定処理を示している。この処理は、燃料タンク４１内の気層温度を表す気層温度パラメータとして、推定触媒温度（推定された三元触媒１０の温度）の最大値ＴＣＴＭＡＸおよび推定ＴＡＮＫ温度上昇分ＴＴＡＮＫを求めるものであり、これらは、後述するように故障判定の実行条件の判定に用いられる。なお、推定触媒温度の最大値ＴＣＴＭＡＸを気層温度パラメータとして用いるのは、前述したように、燃料タンク４１が三元触媒１０の付近に配置されていることにより、燃料タンク４１内の燃料温度および気層温度が、三元触媒１０の温度に相関のある値を示すためである。さらに、本処理は、エンジン３の運転中に所定時間（例えば５００ｍｓｅｃ）ごとに実行される。まず、ステップ１（「Ｓ１」と図示。以下同じ）および２において、エンジン３が始動モードであるか否か、およびフェイルセーフが検出されているか否かをそれぞれ判別する。ステップ１または２の答がＹＥＳのときには、エンジン３が気層温度パラメータを適切に推定できるような安定した運転状態にないとして、そのまま本プログラムを終了する。
【００２７】
一方、ステップ１および２の答がいずれもＮＯのときには、フューエルカットフラグＦ＿ＤＥＣＦＣが「１」であるか否かを判別する（ステップ３）。この答がＹＥＳで、減速フューエルカット（以下「Ｆ／Ｃ」という）中のときには、Ｆ／Ｃ時用の推定触媒温度のマップ値ＴＣＴＭＦＣを求め、推定触媒温度基本値ＴＣＴＭとして設定する（ステップ４）。このＦ／Ｃ時用の推定触媒温度のマップ値ＴＣＴＭＦＣは、エンジン回転数ＮＥおよび吸気管内絶対圧ＰＢＡに基づき、Ｆ／Ｃ時用の推定触媒温度マップ（図示せず）を検索することによって求められる。
【００２８】
次いで、Ｆ／Ｃ時用の温度なまし係数ＣＴＣＴＦＣを求め、温度なまし係数ＣＴＣＴとして設定する（ステップ５）。このＦ／Ｃ時用の温度なまし係数ＣＴＣＴＦＣは、エンジン回転数ＮＥおよび吸気管内絶対圧ＰＢＡに基づき、該当する温度なまし係数テーブル（図示せず）を検索することによって求められる。なお、このＦ／Ｃ時用の温度なまし係数テーブルは、吸気管内絶対圧ＰＢＡが比較的大きな所定値ＰＢＣＴＣＴＨのときに用いられる高負荷時用テーブルと、吸気管内絶対圧ＰＢＡが比較的小さな所定値ＰＢＣＴＣＴＬのときに用いられる低負荷時用テーブルの２種類のもので構成されている。また、Ｆ／Ｃ時用の温度なまし係数ＣＴＣＴＦＣは、吸気管内絶対圧ＰＢＡが高いほど、およびエンジン回転数ＮＥが高いほど、より大きな値に設定されるとともに、吸気管内絶対圧ＰＢＡが所定値ＰＢＣＴＣＴＨおよびＰＢＣＴＣＴＬ以外の値であるときには、その値に応じて補間演算される。
【００２９】
次に、設定された推定触媒温度基本値ＴＣＴＭおよび温度なまし係数ＣＴＣＴなどを用いて、次式（１）により、推定触媒温度の今回値ＴＣＴ（ｎ）を算出する（ステップ６）。
ＴＣＴ（ｎ）＝ＴＣＴ（ｎ−１）＋［ＴＣＴＭ−ＴＣＴ（ｎ−１）］×ＣＴＣＴ  ……（１）
ここで、ＴＣＴ（ｎ−１）は推定触媒温度の前回値である。
【００３０】
次いで、算出された推定触媒温度の今回値ＴＣＴ（ｎ）、車速ＶＰおよび外気温ＴＡＴに基づき、マップ（図示せず）を検索することによって、推定ＴＡＮＫ温度上昇分ＴＴＡＮＫを算出する（ステップ６Ａ）。推定ＴＡＮＫ温度上昇分ＴＴＡＮＫは、車両の走行中における燃料タンク４１内の気層温度の上昇分を表す。このため、このマップでは、推定ＴＡＮＫ温度上昇分ＴＴＡＮＫは、推定触媒温度の今回値ＴＣＴ（ｎ）が高いほど、車速ＶＰが低いほど、および外気温ＴＡＴが高いほど、より大きな値に設定されている。これは、前述したように、燃料タンク４１内の気層温度が三元触媒１０の温度に相関のある値を示すこと、燃料タンク４１内の燃料の温度が、車速ＶＰが低いほど低下しにくく、また、外気温ＴＡＴが高いほど上昇しやすいことによるものである。
【００３１】
次に、推定触媒温度の今回値ＴＣＴ（ｎ）が、それまでに算出されている推定触媒温度の最大値ＴＣＴＭＡＸよりも大きいか否かを判別する（ステップ７）。なお、この推定触媒温度の最大値ＴＣＴＭＡＸは、エンジン３の始動時に値０に設定される。この答がＹＥＳで、ＴＣＴ（ｎ）＞ＴＣＴＭＡＸのときには、推定触媒温度の今回値ＴＣＴ（ｎ）を推定触媒温度の最大値ＴＣＴＭＡＸとして更新し（ステップ８）、本プログラムを終了する。一方、ステップ７の答がＮＯで、ＴＣＴ（ｎ）≦ＴＣＴＭＡＸのときには、ステップ８をスキップし、本プログラムを終了する。以上から明らかなように推定触媒温度の最大値ＴＣＴＭＡＸは、エンジン３の運転中に得られた三元触媒１０の最高温度を表す。
【００３２】
一方、前記ステップ３の答がＮＯで、Ｆ／Ｃ中でないときには、エンジン回転数ＮＥおよび吸気管内絶対圧ＰＢＡに基づき、Ｆ／Ｃ時以外の通常運転時用の推定触媒温度マップ（図示せず）を検索することによって、推定触媒温度基本値ＴＣＴＭを求める（ステップ９）。
【００３３】
次いで、この推定触媒温度基本値ＴＣＴＭを、大気圧ＰＡ、吸気温ＴＡ、エンジン水温ＴＷおよび点火時期補正量に応じて、補正する（ステップ１０）。具体的には、大気圧ＰＡ、吸気温ＴＡ、エンジン水温ＴＷおよび点火時期補正量に基づき、それぞれの４つのテーブル（図示せず）を検索することによって、補正係数ＫＴＣＴＰＡおよび３つの補正項ＤＴＣＴＴＡ、ＤＴＣＴＴＷおよびＤＴＣＴＩＧを求める。そして、上記ステップ９で求めた推定触媒温度基本値ＴＣＴＭに、補正係数ＫＴＣＴＰＡを乗算するとともに、３つの補正項ＤＴＣＴＴＡ、ＤＴＣＴＴＷおよびＤＴＣＴＩＧを加算することによって、推定触媒温度基本値ＴＣＴＭを補正する。このように補正した値が、推定触媒温度基本値ＴＣＴＭとして設定される。
【００３４】
次に、ステップ１１および１２において、高負荷判定フラグＦ＿ＷＯＴが「１」であるか否か、およびステップ１０で補正した推定触媒温度基本値ＴＣＴＭが所定の上限値ＴＣＴＭＷＯＴ以上であるか否かを判別する。これらの答のいずれかがＮＯで、高負荷でないとき、またはＴＣＴＭ＜ＴＣＴＭＷＯＴのときには、温度なまし係数ＣＴＣＴを、エンジン回転数ＮＥおよび吸気管内絶対圧ＰＢＡに基づき、通常運転時用の温度なまし係数テーブルを検索することによって求める（ステップ１３）とともに、前記ステップ６以降を実行し、本プログラムを終了する。このテーブルでは、前記ステップ５で用いたＦ／Ｃ時用の温度なまし係数テーブルと同様、温度なまし係数ＣＴＣＴは、エンジン回転数ＮＥが高いほど、および吸気管内絶対圧ＰＢＡが高いほど、より大きな値に設定されている。
【００３５】
一方、前記ステップ１１および１２の答がＹＥＳで、高負荷でかつＴＣＴＭ≧ＴＣＴＭＷＯＴのときには、推定触媒温度基本値ＴＣＴＭを上限値ＴＣＴＭＷＯＴに設定し（ステップ１４）、温度なまし係数ＣＴＣＴを所定値ＣＴＣＴＷＯＴに設定する（ステップ１５）とともに、前記ステップ６以降を実行し、本プログラムを終了する。
【００３６】
次に、図３および図４を参照しながら、前記蒸発燃料処理系４０の故障判定の実行条件が成立しているか否かを判定する実行条件判定処理について説明する。この処理は、所定時間（例えば１００ｍｓｅｃ）ごとに実行される。まず、ステップ２１において、ＩＧ・ＳＷ３０がＯＦＦ状態であるか否かを判別し、この答がＮＯのときには、そのまま本プログラムを終了する。一方、この答がＹＥＳで、ＩＧ・ＳＷ３０がＯＦＦ状態にあり、エンジン３が停止されているときには、異常検出フラグＦ＿ＣＳが「１」であるか否かを判別する（ステップ２２）。この異常検出フラグＦ＿ＣＳは、異常検出処理（図示せず）によって設定されるものであり、具体的には、圧力センサ２８、バイパス弁５０またはベントシャット弁５１の故障などが検出されたときに「１」に、それ以外のときに「０」にセットされる。
【００３７】
ステップ２２の答がＹＥＳで、圧力センサ２８、バイパス弁５０またはベントシャット弁５１が故障しているときには、故障判定処理の実行条件が成立していないと判定して、そのことを表すために、故障判定許可フラグＦ＿ＤＥＴを「０」にセットし（ステップ２３）、そのまま本プログラムを終了する。このような場合に実行条件が成立していないと判定するのは、後述するように、故障判定は、蒸発燃料処理系４０内を閉鎖状態にしたときのタンク内圧ＰＴＡＮＫの推移に基づいて実行されるので、上記のような場合には、誤判定を招くおそれがあるためである。
【００３８】
一方、ステップ２２の答がＮＯで、圧力センサ２８、バイパス弁５０およびベントシャット弁５１が正常であるときには、ホットスタートフラグＦ＿ＤＬＫＳＯＡＫＨが「１」であるか否かを判別する（ステップ２４）。このホットスタートフラグＦ＿ＤＬＫＳＯＡＫＨは、エンジン３が当該停止前の運転時にホットスタートされたときに「１」に、エンジン３がコールドスタートされたときに「０」にセットされる。
【００３９】
このステップ２４の答がＹＥＳで、エンジン３が停止前にホットスタートされたときには、実行条件が成立していないと判定して、前記ステップ２３を実行し、本プログラムを終了する。これは、三元触媒１０の温度が高い状態でエンジン３が始動されているために、推定触媒温度ＴＣＴ、すなわち燃料タンク４１内の気層温度を適切に算出できず、それにより、後述する燃料タンク４１内の気層温度に基づく実行条件が成立しているか否かを適切に判定することができないことで、誤判定を招くおそれがあるためである。
【００４０】
一方、ステップ２４の答がＮＯで、エンジン３が停止前にコールドスタートされたときには、判定間隔フラグＦ＿ＢＴＷＮＯＫが「１」であるか否かを判別する（ステップ２５）。この判定間隔フラグＦ＿ＢＴＷＮＯＫは、前回の故障判定の終了後の経過時間が所定時間以上であるときに「１」に、それ以外のときに「０」にセットされる。
【００４１】
ステップ２５の答がＮＯで、前回の故障判定の終了後、十分な時間が経過していないときには、前記ステップ２３を実行し、本プログラムを終了する。このような場合に、故障判定の実行条件が成立していないと判定するのは、後述するように故障判定は、エンジン３の停止中に実行されるので、頻繁に実行すると、バッテリ残量が過小なレベルまで低下するおそれがあることから、これを回避するためである。
【００４２】
一方、ステップ２５の答がＹＥＳで、前回の故障判定の終了後、十分な時間が経過しているときには、外気温センサフラグＦ＿ＯＫＦＢが「１」であるか否かを判別する（ステップ２６）。この外気温センサフラグＦ＿ＯＫＦＢは、外気温センサ２５の故障判定処理（図示せず）において、外気温センサ２５が正常であると判定されたときに「１」に、故障していると判定されたときに「０」にセットされる。
【００４３】
このステップ２６の答がＮＯで、外気温センサ２５が故障しているときには、後述する外気温ＴＡＴに基づく実行条件が成立しているか否かを適切に判定することができず、それにより、誤判定を招くおそれがあるため、前記ステップ２３を実行し、本プログラムを終了する。一方、ステップ２６の答がＹＥＳで、外気温センサ２５が正常であるときには、運転中正常判定フラグＦ＿ＯＫＦが「１」であるか否かを判別する（ステップ２７）。この運転中正常判定フラグＦ＿ＯＫＦは、エンジン３の運転中に実行される蒸発燃料処理系４０の故障判定処理（図示せず）において、蒸発燃料処理系４０が正常である（リークがない）と判定されたときに「１」に、故障している（リークがある）と判定されたときに「０」にセットされる。
【００４４】
ステップ２７の答がＮＯで、エンジン３の当該停止前の運転中に蒸発燃料処理系４０が故障していると判定されたときには、エンジン３の停止後の故障判定を実行する必要がないとして、前記ステップ２３を実行し、本プログラムを終了する。一方、ステップ２７の答がＹＥＳで、エンジン３の運転中に蒸発燃料処理系４０が正常であると判定されたときには、給油フラグＦ＿ＲＦＵＥＬＤＣが「１」であるか否かを判別する（ステップ２８）。この給油フラグＦ＿ＲＦＵＥＬＤＣは、エンジン３の運転中に実行される給油判定処理（図示せず）において、燃料タンク４１への給油が行われたと判定されたときに「１」に、それ以外のときに「０」にセットされる。なお、この給油判定は、フィラーキャップスイッチ３１の出力または燃料レベルセンサ２９の出力に基づいて行われる。
【００４５】
ステップ２８の答がＹＥＳで、エンジン３の運転中に給油が行われたときには、燃料タンク４１内の気層温度が変化するため、それに基づく後述する実行条件が成立しているか否かを適切に判別することができず、それにより、誤判定を招くおそれがあるため、前記ステップ２３を実行し、本プログラムを終了する。一方、ステップ２８の答がＮＯで、エンジン３の運転中に給油が行われなかったときには、前回のループにおいて、エンジン３が運転中であったか否かを判別する（ステップ２９）。
【００４６】
この答がＮＯで、前回のループにおいてエンジン３がすでに停止していたときには、そのまま本プログラムを終了する。一方、ステップ２９の答がＹＥＳで、今回のループがエンジン３の停止直後のループであるときには、エンジン水温ＴＷが所定の下限温度ＴＷＥＯＮＶＬ以上であるか否かを判別する（ステップ３０）。この答がＮＯで、エンジン３の暖機が不十分であるときには、前記ステップ２３を実行し、本プログラムを終了する。このような場合に実行条件が成立していないと判定するのは、次の理由による。すなわち、本実施形態における故障判定は、後述するように、判定中において、昇温された燃料によってタンク内圧ＰＴＡＮＫが上昇することを前提として行われる。一方、本実施形態では、前述したように燃料タンク４１内の燃料は排気ガスによって昇温される。したがって、エンジン３の暖機が不十分である場合には、エンジン３から燃料に与えられた熱量が十分でないことで、故障判定中において、燃料によってタンク内圧ＰＴＡＮＫが上昇しないと推定され、上記の前提が成立しないためである。
【００４７】
一方、ステップ３０の答がＹＥＳで、エンジン３が十分に暖機されているときには、車速ＶＰが所定の上限車速ＶＰＥＯＮＶＨ以下であるか否かを判別する（ステップ３１）。この答がＮＯで、車両が完全に停止していないときには、車両の状態が安定していないために、誤判定を招くおそれがあるとして、前記ステップ２３を実行し、本プログラムを終了する。一方、ステップ３１の答がＹＥＳのときには、外気温ＴＡＴが、下限値ＴＡＴＥＯＮＶＬおよび上限値ＴＡＴＥＯＮＶＨで規定される所定の範囲内にあるか否かを判別する（ステップ３２）。
【００４８】
この答がＮＯで、外気温ＴＡＴが所定の範囲内にないときには、実行条件が成立していないと判定して、前記ステップ２３を実行し、本プログラムを終了する。これは、外気温ＴＡＴが低すぎるときには、各弁５０〜５２が凍結することで、誤判定を招くおそれがあり、外気温ＴＡＴが高すぎるときには、故障判定中に蒸発燃料が多量に発生することで、タンク内圧ＰＴＡＮＫの推移がリークを良好に反映せず、やはり誤判定を招くおそれがあるためである。一方、ステップ３２の答がＹＥＳで、外気温ＴＡＴが所定の範囲内にあるときには、燃料レベルＦＬＥＶＥＬが、下限値ＦＬＶＬＥＯＬおよび上限値ＦＬＶＬＥＯＨで規定される所定の範囲内にあるか否かを判別する（ステップ３３）。
【００４９】
この答がＮＯで、燃料レベルＦＬＥＶＥＬが、所定の範囲内にないときには、実行条件が成立していないと判定して、前記ステップ２３を実行し、本プログラムを終了する。これは、燃料レベルＦＬＥＶＥＬが高すぎるときには、フロート弁４１ｃが閉鎖状態にあることで、燃料タンク４１とチャージ通路４２との間が遮断されていると想定され、それにより、タンク内圧ＰＴＡＮＫが蒸発燃料処理系４０内全体の圧力を適正に表さず、誤判定を招くおそれがあり、燃料レベルＦＬＥＶＥＬが低すぎるときには、故障判定中に蒸発燃料が多量に発生することで、やはり誤判定を招くおそれがあるためである。一方、ステップ３３の答がＹＥＳで、燃料レベルＦＬＥＶＥＬが所定の範囲内にあるときには、前述したＴＡＮＫ温度上昇分推定処理において算出した推定ＴＡＮＫ温度上昇分ＴＴＡＮＫが、所定の第１判定値ＴＲＥＦα（例えば１０℃）よりも大きいか否かを判別する（ステップ３４）。
【００５０】
この答がＮＯで、ＴＴＡＮＫ≦ＴＲＥＦαで、エンジン３の運転中における燃料タンク４１内の気層温度の上昇分が小さいときには、実行条件が成立していないと判定して、前記ステップ２３を実行し、本プログラムを終了する。これは、燃料タンク４１内の気層温度の上昇分が小さく、エンジン３の停止時における気層温度が低すぎるときには、故障判定中において、燃料によるタンク内圧ＰＴＡＮＫの上昇が小さすぎることから、前述した故障判定の前提が成立しないためである。
【００５１】
一方、ステップ３４の答がＹＥＳで、ＴＴＡＮＫ＞ＴＲＥＦαのときには、前述したＴＡＮＫ温度上昇分推定処理において算出した推定触媒温度の最大値ＴＣＴＭＡＸが所定の第２判定温度ＴＲＥＦβ（例えば８００℃）よりも大きいか否かを判別する（ステップ３５）。
【００５２】
この答がＹＥＳで、ＴＣＴＭＡＸ＞ＴＲＥＦβ、すなわち、エンジン３の運転中に得られた三元触媒１０の最高温度が非常に高いとき、すなわち燃料タンク４１内の気層温度がエンジン３の運転中に非常に高くなったときには、実行条件が成立していないと判定して、前記ステップ２３を実行し、本プログラムを終了する。これは、エンジン３が高負荷で運転されることなどにより、燃料タンク４１内の気層温度が非常に高くなったときには、蒸発燃料が多量に発生し、その結果、故障判定中において、燃料温度および蒸発燃料によるタンク内圧ＰＴＡＮＫの上昇が過大になることで、タンク内圧ＰＴＡＮＫの推移がリークを良好に反映せず、誤判定を招くおそれがあるためである。
【００５３】
一方、ステップ３５の答がＮＯで、ＴＣＴＭＡＸ≦ＴＲＥＦβのときには、実行条件が成立していると判定し、そのことを表すために、故障判定許可フラグＦ＿ＤＥＴを「１」にセットし（ステップ３６）、本プログラムを終了する。
【００５４】
図５および図６は、蒸発燃料処理系４０の故障判定処理を示している。まず、ステップ４１において、判定実行済みフラグＦ＿ＤＯＮＥが「１」であるか否かを判別する。この答がＹＥＳで、蒸発燃料処理系４０の故障判定がすでに終了しているときには、そのまま本プログラムを終了する。
【００５５】
一方、ステップ４１の答がＮＯで、Ｆ＿ＤＯＮＥ＝０、すなわち故障判定がまだ終了していないときには、エンジン３が停止しているか否かを判別する（ステップ４２）。この判別では、エンジン回転数ＮＥがほぼ値０であるときにエンジン３が停止していると判別される。この答がＮＯで、エンジン３が運転中であるときには、アップカウント式の第１タイマのタイマ値ＴＭ１を値０にリセットし（ステップ４３）、本プログラムを終了する。
【００５６】
一方、ステップ４２の答がＹＥＳで、エンジン３が停止しているときには、故障判定許可フラグＦ＿ＤＥＴが「１」であるか否かを判別する（ステップ４４）。この答がＮＯ、すなわち故障判定の実行条件が成立していないときには、前記ステップ４３を実行し、本プログラムを終了する。
【００５７】
一方、ステップ４４の答がＹＥＳで、故障判定の実行条件が成立しているときには、第１タイマのタイマ値ＴＭ１が所定の第１大気開放時間ＴＯＴＡ１よりも大きいか否かを判別する（ステップ４５）。今回のループが実行条件が成立した直後のループの場合には、前記ステップ４３の実行により、この答がＮＯとなり、その場合には、バイパス弁（「ＢＰＶ」と図示）５０およびベントシャット弁（「ＶＳＶ」と図示）５１を開弁する（ステップ４６）とともに、アップカウント式の第２タイマのタイマ値ＴＭ２を値０にリセットし（ステップ４７）、本プログラムを終了する。なお、前述したように、パージ制御弁５２は、ＩＧ・ＳＷ３０のＯＦＦに伴って閉弁状態に保持される。したがって、このステップ４６の実行により、蒸発燃料処理系４０が大気に開放され、タンク内圧ＰＴＡＮＫが大気圧と等しくなる。以下、このときの各弁５０〜５２の動作モードを、第１大気開放モードという。
【００５８】
一方、ステップ４５の答がＹＥＳで、ＴＭ１＞ＴＯＴＡ１のとき、すなわち第１大気開放モードへの移行後、第１大気開放時間ＴＯＴＡ１が経過したときには、第２タイマのタイマ値ＴＭ２が所定の第１判定時間ＴＰＨＡＳＥ１（例えば９００ｓｅｃ）よりも大きいか否かを判別する（ステップ４８）。この答がＮＯで、ＴＭ２≦ＴＰＨＡＳＥ１のときには、ベントシャット弁５１を閉弁する（ステップ４９）ことにより、蒸発燃料処理系４０を閉鎖状態に保持する。以下、このときの各弁５０〜５２の動作モードを、第１判定モードという。
【００５９】
次いで、第１判定圧ＰＴＡＮＫ１を、ＴＡＮＫ温度上昇分推定処理において算出した推定触媒温度ＴＣＴに基づき、テーブル（図示せず）を検索することによって算出する（ステップ５０）。このテーブルでは、第１判定圧ＰＴＡＮＫ１は、推定触媒温度ＴＣＴが高いほどより大きな値に設定されている。
【００６０】
次に、現在のタンク内圧ＰＴＡＮＫが、算出された第１判定圧ＰＴＡＮＫ１よりも大きいか否かを判別する（ステップ５１）。この答がＹＥＳで、ＰＴＡＮＫ＞ＰＴＡＮＫ１、すなわち第１判定モード中におけるタンク内圧ＰＴＡＮＫの上昇度合が大きいときには、蒸発燃料処理系４０が正常である（リークがない）と判定し、ステップ５２において、そのことを表すために、正常判定フラグＦ＿ＯＫを「１」にセットするとともに、故障判定が終了したことを表すために、判定実行済みフラグＦ＿ＤＯＮＥを「１」にセットし、本プログラムを終了する。
【００６１】
このような場合に、蒸発燃料処理系４０が正常であると判定するのは、次の理由による。すなわち、第１判定モードは、第１大気開放モードにより、タンク内圧ＰＴＡＮＫを大気圧に制御した状態から開始されるので、タンク内圧ＰＴＡＮＫは、燃料タンク４１内の燃料温度による上昇分とリークによる減少分を反映する。したがって、タンク内圧ＰＴＡＮＫが第１判定圧ＰＴＡＮＫ１よりも大きく、その上昇度合が大きいときに、蒸発燃料処理系４０が正常であると判定することができる。
【００６２】
一方、ステップ５１の答がＮＯで、ＰＴＡＮＫ≦ＰＴＡＮＫ１のときには、アップカウント式の第３タイマのタイマ値ＴＭ３を値０にリセットし（ステップ５３）、現在のタンク内圧ＰＴＡＮＫがそれまでに得られたタンク内圧の最大値ＰＴＡＮＫＭＡＸよりも大きいか否かを判別する（ステップ５４）。この答がＹＥＳで、ＰＴＡＮＫ＞ＰＴＡＮＫＭＡＸのときには、現在のタンク内圧ＰＴＡＮＫをタンク内圧の最大値ＰＴＡＮＫＭＡＸとして更新し（ステップ５５）、本プログラムを終了する。一方、ステップ５４の答がＮＯで、ＰＴＡＮＫ≦ＰＴＡＮＫＭＡＸのときには、ステップ５５をスキップし、本プログラムを終了する。
【００６３】
一方、前記ステップ４８の答がＹＥＳで、ＴＭ２＞ＴＰＨＡＳＥ１、すなわち第１判定モードへの移行後、第１判定時間ＴＰＨＡＳＥ１が経過したときには、第３タイマのタイマ値ＴＭ３が所定の第２大気開放時間ＴＯＴＡ２よりも大きいか否かを判別する（ステップ５６）。この答がＮＯで、ＴＭ３≦ＴＯＴＡ２のときには、ベントシャット弁５１を開弁する（ステップ５７）とともに、アップカウント式の第４タイマのタイマ値ＴＭ４を値０にリセットし（ステップ５８）、本プログラムを終了する。このステップ５７の実行により、第１大気開放モードと同様、蒸発燃料処理系４０内が大気に開放され、タンク内圧ＰＴＡＮＫが大気圧と等しくなる。以下、このときの各弁５０〜５２の動作モードを、第２大気開放モードという。
【００６４】
一方、ステップ５６の答がＹＥＳで、ＴＭ３＞ＴＯＴＡ２、すなわち第２大気開放モードへの移行後、第２大気開放時間ＴＯＴＡ２が経過したときには、第４タイマのタイマ値ＴＭ４が所定の第２判定時間ＴＰＨＡＳＥ２（例えば２４００ｓｅｃ）よりも大きいか否かを判別する（ステップ５９）。この答がＮＯで、ＴＭ４≦ＴＰＨＡＳＥ２のときには、ベントシャット弁５１を閉弁する（ステップ６０）ことにより、第１判定モードと同様、蒸発燃料処理系４０が閉鎖状態に保持される。以下、このときの各弁５０〜５２の動作モードを、第２判定モードという。
【００６５】
次いで、第２判定圧ＰＴＡＮＫ２を、推定触媒温度ＴＣＴに基づき、テーブル（図示せず）を検索することによって算出する（ステップ６１）。このテーブルでは、第２判定圧ＰＴＡＮＫ２は、推定触媒温度ＴＣＴが高いほどより小さな値に設定されている。
【００６６】
次に、現在のタンク内圧ＰＴＡＮＫが、算出された第２判定圧ＰＴＡＮＫ２よりも小さいか否かを判別する（ステップ６２）。この答がＹＥＳで、ＰＴＡＮＫ＜ＰＴＡＮＫ２、すなわちタンク内圧ＰＴＡＮＫの減少度合が大きいときには、蒸発燃料処理系４０が正常であると判定し、ステップ６３において、そのことを表すために、正常判定フラグＦ＿ＯＫを「１」にセットするとともに、故障判定の判定結果が終了したことを表すために、判定実行済みフラグＦ＿ＤＯＮＥを「１」にセットし、本プログラムを終了する。
【００６７】
このような場合に、蒸発燃料処理系４０が正常であると判定するのは、次の理由による。すなわち、第２判定モードは、第２大気開放モードによってタンク内圧ＰＴＡＮＫを大気圧に制御した状態で、かつエンジン３の停止後、時間が十分に経過した後に開始されるので、タンク内圧ＰＴＡＮＫは、燃料温度の低下による減少分とリークによる上昇分を反映する。したがって、タンク内圧ＰＴＡＮＫが第２判定圧ＰＴＡＮＫ１よりも小さく、その減少度合が大きいときに、蒸発燃料処理系４０が正常であると判定することができる。
【００６８】
一方、ステップ６２の答がＮＯで、ＰＴＡＮＫ≧ＰＴＡＮＫ２のときには、タンク内圧ＰＴＡＮＫが、それまでに得られたタンク内圧の最小値ＰＴＡＮＫＭＩＮよりも小さいか否かを判別する（ステップ６４）。この答がＹＥＳで、ＰＴＡＮＫ＜ＰＴＡＮＫＭＩＮのときには、現在のタンク内圧ＰＴＡＮＫをタンク内圧の最小値ＰＴＡＮＫＭＩＮとして更新し（ステップ６５）、本プログラムを終了する。一方、ステップ６４の答がＮＯで、ＰＴＡＮＫ≧ＰＴＡＮＫＭＩＮのときには、ステップ６５をスキップし、本プログラムを終了する。
【００６９】
一方、ステップ５９の答がＹＥＳで、ＴＭ４＞ＴＰＨＡＳＥ２、すなわち第２判定モードへの移行後、第２判定時間ＴＰＨＡＳＥ２が経過したときには、バイパス弁５０を閉弁するとともに、ベントシャット弁５１を開弁する（ステップ６６）。
【００７０】
次いで、前記ステップ５５および６５で設定したタンク内圧の最大値ＰＴＡＮＫＭＡＸと最小値ＰＴＡＮＫＭＩＮとの偏差（ＰＴＡＮＫＭＡＸ−ＰＴＡＮＫＭＩＮ）を、圧力偏差ΔＰとして設定する（ステップ６７）。次に、この圧力偏差ΔＰが所定のしきい値ΔＰＴＨ（例えば１０ｍｍＨＧ）よりも大きいか否かを判別する（ステップ６８）。
【００７１】
この答がＹＥＳで、ΔＰ＞ΔＰＴＨのときには、蒸発燃料処理系４０が正常であると判定し、正常判定フラグＦ＿ＯＫを「１」にセットするとともに、判定実行済みフラグＦ＿ＤＯＮＥを「１」にセットし（ステップ６９）、本プログラムを終了する。
【００７２】
このような場合に、蒸発燃料処理系４０が正常であると判定するのは、次の理由による。すなわち、前記ステップ５２および６３において述べた理由から明らかなように、蒸発燃料処理系４０にリークがあれば、タンク内圧の最大値ＰＴＡＮＫＭＡＸおよびタンク内圧の最小値ＰＴＡＮＫＭＩＮは、それぞれ大気圧に近い値となる。したがって、これらの偏差である圧力偏差ΔＰがしきい値ΔＰＴＨよりも大きいときに、蒸発燃料処理系４０が正常であると判定することができる。
【００７３】
一方、ステップ６８の答がＮＯで、ΔＰ≦ΔＰＴＨのときには、蒸発燃料処理系４０が故障している（リークがある）と判定し、故障判定フラグＦ＿ＯＫを「０」にセットするとともに、判定実行済みフラグＦ＿ＤＯＮＥを「１」にセットし（ステップ７０）、本プログラムを終了する。
【００７４】
次に、以上の故障判定処理により得られる動作例を、図７に示すタイミングチャートを参照しながら説明する。まず、エンジン３の停止後、バイパス弁５０およびベントシャット弁５１が開弁され、第１大気開放モードに移行すると（時刻ｔ１）、それまで大気圧よりも大きい状態であったタンク内圧ＰＴＡＮＫが減少する。その後、タンク内圧ＰＴＡＮＫが大気圧（１ａｔｍ）まで減少し、第１大気開放モードへの移行後、第１大気開放時間ＴＯＴＡ１が経過した時点（時刻ｔ２）で、ベントシャット弁５１が閉弁され、蒸発燃料処理系４０が閉鎖され、第１判定モードに移行する。
【００７５】
第１判定モードに移行すると、燃料タンク４１内の燃料温度の影響により蒸発燃料処理系４０内の温度が上昇することで、タンク内圧ＰＴＡＮＫが上昇する。その際、同図に破線Ｌ１で示すように、タンク内圧ＰＴＡＮＫが第１判定圧ＰＴＡＮＫ１を上回った（時刻ｔ３）場合には、その時点で、蒸発燃料処理系４０が正常であると判定される。
【００７６】
一方、同図に実線Ｌ２で示すように、第１判定モード中において、タンク内圧ＰＴＡＮＫの上昇度合が低く、第１判定圧ＰＴＡＮＫ１を上回らない場合には、故障判定を保留するとともに、第１判定モード中におけるタンク内圧の最大値ＰＴＡＮＫＭＡＸが記憶される。そして、第１判定モードへの移行後、第１判定時間ＴＰＨＡＳＥ１が経過した時点（時刻ｔ４）で、ベントシャット弁５１が開弁され、第２大気開放モードに移行する。これにより、タンク内圧ＰＴＡＮＫが再度、大気圧（１ａｔｍ）まで減少し、第２大気開放モードへの移行後、第２大気開放時間ＴＯＴＡ２が経過した時点（時刻ｔ５）で、ベントシャット弁５１が閉弁され、蒸発燃料処理系４０が閉鎖され、第２判定モードに移行する。
【００７７】
第２判定モードに移行すると、燃料タンク４１内の燃料を含めた蒸発燃料処理系４０内の温度が低下することにより、タンク内圧ＰＴＡＮＫが減少する。その際、同図に破線Ｌ３で示すように、タンク内圧ＰＴＡＮＫが第２判定圧ＰＴＡＮＫ２を下回った（時刻ｔ６）場合には、その時点で、蒸発燃料処理系４０が正常であると判定される。
【００７８】
一方、同図に実線Ｌ４で示すように、第２判定モード中において、タンク内圧ＰＴＡＮＫの減少度合が低く、第２判定圧ＰＴＡＮＫ２を下回らない場合には、故障判定を保留するとともに、第２判定モード中におけるタンク内圧の最小値ＰＴＡＮＫＭＩＮが記憶される。そして、第２判定モードへの移行後、第２判定時間ＴＰＨＡＳＥ２が経過した時点（時刻ｔ７）で、バイパス弁５０が閉弁され、ベントシャット弁５１が開弁されるとともに、最大値ＰＴＡＮＫＭＡＸと最小値ＰＴＡＮＫＭＩＮとの圧力偏差ΔＰと、しきい値ΔＰＴＨとを比較する。そして、圧力偏差ΔＰがしきい値ΔＰＴＨよりも大きいときには、蒸発燃料処理系４０が正常であると判定され、それ以外のときには、故障していると判定される。
【００７９】
以上のように、本実施形態によれば、推定ＴＡＮＫ温度上昇分ＴＴＡＮＫが第１判定値ＴＲＥＦα以下のときに、燃料タンク４１内の気層温度が低すぎるとして、故障判定を禁止する。これにより、燃料タンク４１内の気層温度が低すぎるために、故障判定中において、タンク内圧ＰＴＡＮＫの燃料温度による上昇度合が小さいことに起因する誤判定を確実に回避することができる。また、推定触媒温度の最大値ＴＣＴＭＡＸが第２判定温度ＴＲＥＦβよりも大きいときに、燃料タンク４１内の気層温度が高すぎるとして、故障判定を禁止する。これにより、燃料タンク４１内の気層温度が高すぎるために、故障判定中において、タンク内圧ＰＴＡＮＫの燃料温度および蒸発燃料による上昇度合が大きいことに起因する誤判定を確実に回避することができる。以上により、誤判定を確実に回避でき、判定精度を向上させることができる。
【００８０】
また、本実施形態によれば、故障判定の実行条件が成立しているか否かを、気層温度パラメータである推定ＴＡＮＫ温度上昇分ＴＴＡＮＫ、および推定触媒温度の最大値ＴＣＴＭＡＸに応じて判定する。したがって、例えば、実行条件が成立しているか否かをエンジン３の停止前の運転時間に応じて判定するような場合と異なり、停止前のエンジン３の運転時間にかかわらず、これらの気層温度パラメータが条件を満たした時点で故障判定を即座に実行できるので、この判定の実行頻度を高めることができる。
【００８１】
なお、本発明は、説明した実施形態に限定されることなく、種々の態様で実施することができる。例えば、本実施形態では、蒸発燃料処理系４０の故障としてそのリークを判定しているが、本発明はこれに限らず、蒸発燃料処理系４０のリーク以外の故障の判定に適用可能であることはいうまでもない。例えば、バイパス弁５０、ベントシャット弁５１およびパージ制御弁５２の故障の判定をエンジン３の停止後に行うものにも、適用可能である。
【００８２】
また、本実施形態では、第１および第２判定モード中、バイパス弁５０を開弁状態に保持することにより、キャニスタ４３側を含む蒸発燃料処理系４０全体をリーク判定の対象としたが、これに代えてまたは併せて、第１および第２判定モード中、バイパス弁５０を閉鎖することにより、バイパス弁５０および２方向弁４５よりも燃料タンク４１側の空間をリーク判定の対象としてもよい。この場合、２つの手法によるリーク判定を双方とも実行することにより、リークの部位がバイパス弁５０よりもキャニスタ４３側または燃料タンク４１側のいずれであるかを特定することが可能になる。さらに、本発明は、クランク軸を鉛直方向に配置した船外機などのような船舶推進機用エンジンを含む、様々な産業用の内燃機関の蒸発燃料処理系に適用することが可能である。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。
【００８３】
【発明の効果】
以上のように、本発明の蒸発燃料処理系の故障判定装置によれば、内燃機関の停止後に蒸発燃料処理系のリークを含む故障を判定する場合において、誤判定を確実に回避でき、その判定精度を向上させることができるなどの効果を有する。
【図面の簡単な説明】
【図１】本発明のリーク判定装置、これを適用した蒸発燃料処理系および内燃機関の概略構成を示す図である。
【図２】ＴＡＮＫ温度上昇分推定処理を示すフローチャートである。
【図３】実行条件判定処理を示すフローチャートである。
【図４】図３の続きを示すフローチャートである。
【図５】故障判定処理を示すフローチャートである。
【図６】図５の続きを示すフローチャートである。
【図７】故障判定処理を実行した際の各弁の動作およびタンク内圧の推移の一例を示すタイミングチャートである。
【符号の説明】
１  故障判定装置
２  ＥＣＵ（機関停止検出手段、故障判定手段、気層温度パラメータ検出手段、故障判定禁止手段）
３  エンジン
４  吸気管（吸気系）
２１  エンジン回転数センサ（機関停止検出手段）
２８  圧力センサ（圧力検出手段）
４０  蒸発燃料処理系
４１  燃料タンク
４３  キャニスタ（貯蔵部）
ＰＴＡＮＫ  タンク内圧（蒸発燃料処理系内の圧力）
ＴＴＡＮＫ  推定ＴＡＮＫ温度上昇分（気層温度パラメータ）
ＴＣＴＭＡＸ  推定触媒温度の最大値（気層温度パラメータ）
【図１】
2004346812.tif 000003
【図２】
2004346812.tif 000004
【図３】
2004346812.tif 000005
【図４】
2004346812.tif 000006
【図５】
2004346812.tif 000007
【図６】
2004346812.tif 000008
【図７】
2004346812.tif 000009