(57)【特許請求の範囲】
【請求項１】
燃料タンク内で発生した蒸発燃料を、貯蔵部に一時的に貯蔵し、内燃機関の吸気系に供給する蒸発燃料処理系のリークを含む故障の有無を判定する蒸発燃料処理系の故障判定装置であって、
前記蒸発燃料処理系内の圧力を検出する圧力検出手段と、
前記内燃機関の停止を検出する機関停止検出手段と、
当該機関停止検出手段により前記内燃機関の停止が検出された後に前記圧力検出手段により検出された前記蒸発燃料処理系内の圧力に応じて、前記蒸発燃料処理系のリークを含む故障の有無を判定する故障判定手段と、
前記燃料タンクへの給油が行われたか否かを判定する給油判定手段と、
当該給油判定手段により前記燃料タンクへの給油が行われたと判定されたときに、前記故障判定手段による判定を禁止する故障判定禁止手段と、
を備え、
前記給油判定手段は、前記燃料タンク内の燃料レベルの学習値を算出し、当該算出された学習値のうちの最小値を記憶するとともに、今回算出された前記学習値と当該記憶されている最小値との偏差が所定値以上のときに、前記燃料タンクへの給油が行われたと判定することを特徴とする蒸発燃料処理系の故障判定装置。
【請求項２】
前記給油判定手段は、前記内燃機関の運転中に前記燃料タンクへの給油の有無を判定し、
前記故障判定禁止手段は、前記内燃機関の停止前に前記給油判定手段により前記燃料タンクへの給油が行われたと判定されたときに、前記内燃機関の停止後に前記故障判定手段による判定を禁止することを特徴とする請求項１に記載の蒸発燃料処理系の故障判定装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、燃料タンク内に発生した蒸発燃料を、キャニスタに一時的に吸着し、吸気系に適宜供給する内燃機関の蒸発燃料処理系におけるリークを含む故障の有無を判定する蒸発燃料処理系の故障判定装置に関する。
【０００２】
【従来の技術】
従来、この種の故障判定装置として、例えば特開平１１−３３６６２６号公報に記載されたものが知られている。この故障判定装置は、自動車に搭載された内燃機関の蒸発燃料処理系に適用されたものである。この故障判定装置では、内燃機関の停止後、蒸発燃料処理系の故障の有無が判定される。具体的には、内燃機関の停止後、蒸発燃料処理系内が閉鎖状態に保持されるとともに、その状態での蒸発燃料処理系内の圧力と大気圧との差圧の時間的な推移に基づいて、蒸発燃料処理系のリークの有無が判定される。
【０００３】
【発明が解決しようとする課題】
上記従来の故障判定装置では、蒸発燃料処理系内の圧力と大気圧との差圧の時間的な推移のみに基づいて、リークの有無が判定されるに過ぎない。これに対して、内燃機関の停止直後における蒸発燃料処理系内の圧力は、燃料タンク内の燃料温度などの条件によって異なり、そのため、上記差圧の時間的な推移は、たとえリークがない場合でも一定ではなく、その傾向が燃料温度などの上記条件に応じて異なる。したがって、この従来の故障判定装置によれば、このような条件が全く反映されないため、誤判定を招くおそれがある。
【０００４】
本発明は、上記課題を解決するためになされたもので、内燃機関の停止後、蒸発燃料処理系のリークを含む故障の判定を行う場合において、誤判定を回避でき、判定精度を向上させることができる蒸発燃料処理系の故障判定装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
この目的を達成するために、請求項１に係る発明は、燃料タンク２１内で発生した蒸発燃料を、貯蔵部（キャニスタ２４）に一時的に貯蔵し、内燃機関３の吸気系（吸気管５）に供給する蒸発燃料処理系２０のリークを含む故障の有無を判定する蒸発燃料処理系２０の故障判定装置１であって、蒸発燃料処理系２０内の圧力（タンク内圧ＰＴＡＮＫ）を検出する圧力検出手段（圧力センサ１２）と、内燃機関３の停止を検出する機関停止検出手段（ＥＣＵ２、クランク角センサ１１）と、機関停止検出手段により内燃機関３の停止が検出された後に圧力検出手段により検出された蒸発燃料処理系２０内の圧力に応じて、蒸発燃料処理系２０のリークを含む故障の有無を判定する故障判定手段（ＥＣＵ２、ステップ３１〜５７）と、燃料タンク２１への給油が行われたか否かを判定する給油判定手段（ＥＣＵ２、ステップ８）と、給油判定手段により燃料タンク２１への給油が行われたと判定されたとき（ステップ８の判別結果がＹＥＳのとき）に、故障判定手段による判定を禁止する故障判定禁止手段（ＥＣＵ２、ステップ１０，２１，２８，３２）と、を備え、給油判定手段は、燃料タンク内の燃料レベルの学習値を算出し、算出された学習値のうちの最小値を記憶するとともに、今回算出された学習値と記憶されている最小値との偏差が所定値以上のとき（ステップ８の判別結果がＹＥＳのとき）に、燃料タンクへの給油が行われたと判定することを特徴とする。
【０００６】
この蒸発燃料処理系の故障判定装置によれば、機関停止検出手段により内燃機関の停止が検出された後に圧力検出手段により検出された蒸発燃料処理系内の圧力に応じて、蒸発燃料処理系のリークを含む故障の有無が判定されるとともに、給油判定手段により燃料タンクへの給油が行われたと判定されたときに、故障判定手段による判定が禁止される。すなわち、燃料タンクへの給油に起因する、燃料タンク内の燃料温度の変化や蒸発燃料の発生などに伴い、内燃機関の停止直後における蒸発燃料処理系内の圧力が、燃料タンクへの給油がない通常の場合と異なるとともに、その時間的な推移も異なる傾向を示す可能性がある場合には、故障判定が禁止される。その結果、誤判定を回避でき、判定精度を向上させることができる。また、給油判定手段により、燃料タンク内の燃料レベルの学習値が算出され、算出された学習値のうちの最小値が記憶されるとともに、今回算出された学習値と記憶されている最小値との偏差が所定値以上のときに、燃料タンクへの給油が行われたと判定される。
【０００７】
請求項２に係る発明は、請求項１に記載の蒸発燃料処理系２０の故障判定装置１において、給油判定手段は、内燃機関３の運転中に燃料タンク２１への給油の有無を判定し、故障判定禁止手段は、内燃機関３の停止前に給油判定手段により燃料タンク２１への給油が行われたと判定されたときに、内燃機関３の停止後に故障判定手段による判定を禁止することを特徴とする。
【０００８】
この蒸発燃料処理系の故障判定装置によれば、内燃機関の運転中に燃料タンクへの給油の有無が判定されるとともに、内燃機関の停止前に燃料タンクへの給油が行われたと判定されたときに、内燃機関の停止後に故障判定が禁止されるので、故障判定の際、内燃機関の停止前の燃料タンクへの給油に起因する蒸発燃料処理系内の圧力変化の影響を排除できる。これに加えて、内燃機関の停止前に給油があった場合、内燃機関の停止後に不要な故障判定が行われるのを確実に回避することができる。
【０００９】
【発明の実施の形態】
以下、図面を参照しながら、本発明の一実施形態に係る蒸発燃料処理系の故障判定装置について説明する。図１は、本実施形態の故障判定装置、およびこれを適用した内燃機関の蒸発燃料処理系の概略構成を示している。この故障判定装置１は、内燃機関（以下「エンジン」という）３の蒸発燃料処理系２０における故障の有無、より具体的にはリークの有無を判定するものであり、ＥＣＵ２を備えている。これらの蒸発燃料処理系２０およびＥＣＵ２の詳細については後述する。
【００１０】
このエンジン３は、ガソリンエンジンであり、図示しない車両に搭載されている。エンジン３の吸気管５（吸気系）には、スロットルバルブ６が設けられ、その下流側には、吸気温センサ１０が取り付けられている。この吸気温センサ１０は、吸気管５内の吸気温ＴＡを検出し、その検出信号をＥＣＵ２に出力する。
【００１１】
さらに、吸気管５の吸気温センサ１０よりも下流側の部分には、インジェクタ７が、図示しない吸気ポートに臨むように取り付けられている。このインジェクタ７の開弁時間である燃料噴射時間ＴＯＵＴは、ＥＣＵ２によって制御される。また、インジェクタ７は、燃料供給管８を介して燃料タンク２１に接続されている。この燃料供給管８の途中には、インジェクタ７に燃料を圧送する燃料ポンプ９が設けられている。
【００１２】
また、エンジン３には、マグネットロータおよびＭＲＥピックアップで構成されたクランク角センサ１１が設けられている。このクランク角センサ１１（機関停止検出手段）は、図示しないクランクシャフトの回転に伴い、ともにパルス信号であるＣＲＫ信号およびＴＤＣ信号をＥＣＵ２に出力する。ＣＲＫ信号は、クランクシャフトの回転角度位置を示す信号であり、所定のクランク角（例えば、３０゜）ごとに１パルスが出力される。ＥＣＵ２は、このＣＲＫ信号に基づき、エンジン３のエンジン回転数ＮＥを算出する。また、ＴＤＣ信号は、各気筒におけるピストン（いずれも図示せず）の吸気行程開始時の上死点位置付近の所定タイミングで、１パルスが出力される。
【００１３】
一方、前記蒸発燃料処理系２０は、燃料タンク２１内で発生した蒸発燃料を、キャニスタ２４に一時的に貯留し、吸気管５内に適宜放出するものであり、チャージ通路２２、バイパス通路２３、キャニスタ２４およびパージ通路２５などで構成されている。
【００１４】
キャニスタ２４（貯蔵部）は、チャージ通路２２を介して、燃料タンク２１に接続されており、燃料タンク２１内で発生した蒸発燃料は、チャージ通路２２を介してキャニスタ２４に送られる。チャージ通路２２の燃料タンク２１に近い部分には、圧力センサ１２が配置されている。この圧力センサ１２（圧力検出手段）は、例えば圧電素子で構成され、チャージ通路２２内の圧力を検出し、その検出信号をＥＣＵ２に出力する。このチャージ通路２２内の圧力は、通常は燃料タンク２１内の圧力にほぼ等しいので、以下、タンク内圧ＰＴＡＮＫという。
【００１５】
また、チャージ通路２２の圧力センサ１２とキャニスタ２４との間には、２方向弁２７が設けられている。この２方向弁２７は、いずれもダイアフラム式の正圧弁および負圧弁を組み合わせた機械式弁で構成されている。この正圧弁は、タンク内圧ＰＴＡＮＫが大気圧よりも所定圧分、高くなったときに開弁するように構成されており、その開弁により、燃料タンク２１内の蒸発燃料がキャニスタ２４に送られる。また、負圧弁は、タンク内圧ＰＴＡＮＫがキャニスタ２４側の圧力よりも所定圧分、低くなったときに開弁するように構成されており、その開弁により、キャニスタ２４に貯えられていた蒸発燃料が燃料タンク２１に戻される。
【００１６】
さらに、バイパス通路２３は、２方向弁２７をバイパスするものであり、チャージ通路２２の２方向弁２７よりもキャニスタ２４側の部分と圧力センサ１２側の部分とに、接続されている。このバイパス通路２３の途中には、バイパス弁３０が設けられている。このバイパス弁３０は、常閉タイプの電磁弁で構成されており、通常はバイパス通路２３を閉鎖し、ＥＣＵ２の制御によって励磁されたときに開弁することにより、バイパス通路２３を開放する。
【００１７】
また、燃料タンク２１は、給油用の給油口２１ａと、これに取り付けられたフィラーキャップ２１ｂとを備えている。ＥＣＵ２には、フィラーキャップスイッチ１９が接続されており、このフィラーキャップスイッチ１９は、フィラーキャップ２１ｂの給油口２１ａへの取り付け・取り外し状態を表す信号を、ＥＣＵ２に出力する。
【００１８】
さらに、燃料タンク２１には、気層温センサ１３および油面レベルセンサ１４が設けられている。この気層温センサ１３は、燃料タンク２１内の気層すなわち蒸発燃料を含む空気層の温度（以下「気層温」という）ＴＧＴを検出して、その検出信号をＥＣＵ２に出力する。また、燃料レベルセンサ１４は、燃料タンク２１内の液位すなわち燃料レベルＦＬＥＶＥＬを検出して、その検出信号をＥＣＵ２に出力する。
【００１９】
一方、キャニスタ２４は、活性炭を内蔵しており、この活性炭によって蒸発燃料が吸着される。また、キャニスタ２４には、大気側に開口する大気通路２９が接続されており、この大気通路２９には、これを開閉するベントシャット弁３１が設けられている。このベントシャット弁３１は、常開タイプの電磁弁で構成されており、通常は大気通路２９を開放状態に保持するとともに、ＥＣＵ２の制御によって励磁されたときに大気通路２９を閉鎖する。
【００２０】
また、前述したパージ通路２５の途中には、これを開閉するパージ制御弁３２が設けられている。このパージ制御弁３２は、その開度がＥＣＵ２からの駆動信号のデューティ比に応じて連続的に変化する電磁弁で構成されている。上記ベントシャット弁３１が開弁状態のときに、このパージ制御弁３２が開弁することにより、キャニスタ２４により吸着された蒸発燃料が、吸気管５内の負圧によって吸気管５に送り込まれる。ＥＣＵ２は、このパージ制御弁３２の開度をエンジン３の運転状態に応じてデューティ制御することにより、キャニスタ２４から吸気管５に送り込まれる蒸発燃料の流量、すなわちパージ流量を制御するとともに、後述するイグニッション・スイッチ１８がＯＦＦされたときには、パージ制御弁３２を閉弁状態に保持する。
【００２１】
さらに、ＥＣＵ２には、外気温センサ１５、バッテリ電圧センサ１６、車輪回転数センサ１７およびイグニッション・スイッチ（以下「ＩＧ・ＳＷ」という）１８が接続されている。外気温センサ１５およびバッテリ電圧センサ１６はそれぞれ、外気温ＴＡＴおよびバッテリ電圧ＶＢを検出して、それらの検出信号をＥＣＵ２に出力する。
【００２２】
また、車輪回転数センサ１７は、車両の複数の車輪（図示せず）に対応してそれぞれ設けられており（１つのみ図示）、各車輪回転数センサ１７は、対応する車輪の回転数を表す検出信号をＥＣＵ２に出力する。ＥＣＵ２は、これらの車輪回転数センサ１７の検出信号に基づき、車速ＶＰを算出する。さらに、ＩＧ・ＳＷ１８は、イグニッションキー（図示せず）操作によりＯＮ／ＯＦＦされるとともに、そのＯＮ／ＯＦＦ状態を表す信号をＥＣＵ２に出力する。
【００２３】
一方、ＥＣＵ２（機関停止検出手段、故障判定手段、給油判定手段、故障判定禁止手段）は、Ｉ／Ｏインターフェース、ＣＰＵ、ＲＡＭおよびＲＯＭなどからなるマイクロコンピュータで構成されている。前述した各種のセンサ１０〜１７の検出信号およびスイッチ１８，１９の信号はそれぞれ、Ｉ／ＯインターフェースでＡ／Ｄ変換や整形がなされた後、ＣＰＵに入力される。ＣＰＵは、これらの入力信号に応じて、エンジン３の運転状態を判別し、ＲＯＭに予め記憶された制御プログラムやＲＡＭに記憶されたデータなどに従い、前述した各種の弁３０〜３２を駆動するとともに、以下に述べるように、給油の有無の判定処理、故障判定の実行条件の成立・不成立の判定処理、および蒸発燃料処理系２０の故障判定処理を実行する。
【００２４】
以下、図２を参照しながら、エンジン３の運転中に給油が行われたか否かを判定する処理について説明する。この処理は、エンジン３の運転中、ＴＤＣ信号が入力されるごとに、これに同期して実行される。
【００２５】
本処理では、まず、ステップ１（図では「Ｓ１」と略す。以下、同様）において、始動モードフラグＦ＿ＳＴＭＯＤが「１」であるか否かを判別する。この始動モードフラグＦ＿ＳＴＭＯＤは、エンジン３が始動モードであるときには「１」に、それ以外のときには「０」にそれぞれセットされる。この判別結果がＹＥＳで、エンジン３が始動モードであるときには、給油の判定を行う状態にないとして、そのまま本処理を終了する。
【００２６】
一方、ステップ１の判別結果がＮＯで、始動モードでないときには、ステップ２に進み、バッテリ電圧センサ１６により検出されたバッテリ電圧ＶＢが、所定値ＶＢＦＬＭＬより小さいか否かを判別する。この判別結果がＹＥＳで、バッテリ電圧ＶＢが給油の判定を行うのに不十分な値であるときには、そのまま本処理を終了する。
【００２７】
一方、ステップ２の判別結果がＮＯで、バッテリ電圧ＶＢが給油の判定を行うのに十分な値であるときには、ステップ３に進み、ＩＧ・ＳＷ１８がＯＮされてからの経過時間を計時するタイマの値ＴＭＩＧＰＯＮが、所定値ＴＭＦＬＶＬＤＹ（例えば１００ｍｓｅｃ）以上であるか否かを判別する。
【００２８】
この判別結果がＮＯで、ＩＧ・ＳＷ１８のＯＮ後、時間が十分に経過していないときには、燃料レベルセンサ１４の出力が安定していないとして、ステップ１１に進み、燃料レベルセンサ１４により検出された燃料レベルの検出値ＦＬＥＶＥＬを、その学習値ＦＬＥＶＥＬＲとしてセットした後、本処理を終了する。
【００２９】
一方、ステップ３の判別結果がＹＥＳで、ＩＧ・ＳＷ１８のＯＮ後、時間が十分に経過したときには、燃料レベルセンサ１４の出力が安定しているとして、ステップ４に進み、燃料レベルの学習値ＦＬＥＶＥＬＲを算出する。具体的には、この学習値ＦＬＥＶＥＬＲは、例えば下式（１）を用いたなまし演算により算出される。
FLEVELR(n)＝FLEVELR(n-1)＋[FLEVEL−FLEVELR(n-1)]・CFLFLTRF  ……（１）
ここで、ＦＬＥＶＥＬＲ（ｎ）およびＦＬＥＶＥＬＲ（ｎ−１）はそれぞれ、学習値ＦＬＥＶＥＬＲの今回値および前回値であり、ＣＦＬＦＬＴＲＦは所定のなまし係数である。
【００３０】
次に、ステップ５に進み、上記ステップ４で算出された今回の学習値ＦＬＥＶＥＬＲが、ＲＡＭに記憶されている最小値ＦＬＦＭＩＮよりも小さいか否かを判別する。この判別結果がＹＥＳで、ＦＬＥＶＥＬＲ＜ＦＬＦＭＩＮのときには、ステップ６に進み、学習値ＦＬＥＶＥＬＲを最小値ＦＬＦＭＩＮとして設定した後、後述するステップ７に進む。一方、ステップ５の判別結果がＮＯで、ＦＬＦＭＩＮ≧ＦＬＦＭＩＮのときには、ステップ６をスキップしてステップ７に進む。
【００３１】
このステップ７では、車速ＶＰが値０であるか否かを判別する。この判別結果がＮＯで、走行中のときには、そのまま本処理を終了する。一方、この判別結果がＹＥＳで、停車中のときには、ステップ８に進み、学習値ＦＬＥＶＥＬＲと最小値ＦＬＦＭＩＮとの偏差（ＦＬＥＶＥＬＲ−ＦＬＦＭＩＮ）が、所定値ＦＬＪＤＦＬＭＲ以上であるか否かを判別する。
【００３２】
この判別結果がＮＯで、燃料レベルＦＬＥＶＥＬがあまり変化していないときには、給油が行われていないとして、ステップ９に進み、それを表すために給油フラグＦ＿ＲＦＵＥＬＤＣを「０」にセットした後、本処理を終了する。一方、ステップ８の判別結果がＹＥＳで、燃料レベルＦＬＥＶＥＬの変化の度合が大きいときには、給油が行われたとして、ステップ１０に進み、それを表すために給油フラグＦ＿ＲＦＵＥＬＤＣを「１」にセットした後、本処理を終了する。
【００３３】
次に、図３を参照しながら、蒸発燃料処理系２０の故障判定処理（図４および図５参照）の実行条件が成立しているか否かを判定する処理について説明する。この処理は、タイマ設定により所定時間（例えば１００ｍｓｅｃ）ごとに実行される。
【００３４】
本処理では、まず、ステップ２０において、今回ＩＧ・ＳＷ１８がＯＦＦされたか否かを判別し、この判別結果がＮＯのときには、本処理を終了する。一方、この判別結果がＹＥＳで、今回ＩＧ・ＳＷ１８がＯＦＦされたときには、ステップ２１に進み、給油フラグＦ＿ＲＦＵＥＬＤＣが「１」であるか否かを判別する。
【００３５】
この判別結果がＮＯで、エンジン運転中に給油が行われなかったときには、ステップ２２に進み、異常検出フラグＦ＿ＣＳが「１」であるか否かを判別する。この異常検出フラグＦ＿ＣＳは、図示しない異常検出処理によりその値が設定されるものであり、具体的には、圧力センサ１２、バイパス弁３０またはベントシャット弁３１の故障などが検出されたときには「１」に、それ以外のときには「０」にそれぞれ設定される。
【００３６】
ステップ２２の判別結果がＮＯで、圧力センサ１２、バイパス弁３０およびベントシャット弁３１がいずれも正常であるときには、ステップ２３に進み、前回の本処理実行時において、エンジン３が運転中であったか否かを判別する。この判別結果がＮＯで、エンジン３が停止されていたときには、そのまま本処理を終了する。一方、この判別結果がＹＥＳで、エンジン３が運転中であったときには、ステップ２４に進み、外気温センサ１５により検出された外気温の検出値ＴＡＴを読み込む。
【００３７】
次に、ステップ２５に進み、気層温センサ１３により検出された気層温の検出値ＴＧＴを読み込む。
【００３８】
次いで、ステップ２６に進み、気層温ＴＧＴと外気温ＴＡＴとの偏差（ＴＧＴ−ＴＡＴ）が所定偏差ΔＴ１より大きいか否かを判別する。この判別結果がＹＥＳで、ＴＧＴ−ＴＡＴ＞ΔＴ１のときには、蒸発燃料処理系２０の故障判定処理の実行条件が成立したとして、ステップ２７に進み、それを表すために故障判定許可フラグＦ＿ＤＥＴを「１」にセットした後、本処理を終了する。
【００３９】
一方、ステップ２６の判別結果がＮＯで、ＴＧＴ−ＴＡＴ≦ΔＴ１のときには、蒸発燃料処理系２０の故障判定処理の実行条件が不成立であるとして、ステップ２８に進み、それを表すために故障判定許可フラグＦ＿ＤＥＴを「０」にセットした後、本処理を終了する。これにより、後述するように、蒸発燃料処理系２０の故障判定が禁止される。このように、ＴＧＴ−ＴＡＴ≦ΔＴ１のときに故障判定が禁止されるのは、気層温ＴＧＴが十分に上昇していない状態、すなわち燃料温度が十分に上昇していない状態では、エンジン停止後の故障判定処理中、タンク内圧ＰＴＡＮＫの上昇状態および下降状態が適切に得られず、故障判定を適切に行うことができないからである。
【００４０】
一方、ステップ２１またはステップ２２の判別結果がＹＥＳのとき、すなわち、エンジン３の運転中に給油が行われたとき、または圧力センサ１２、バイパス弁３０およびベントシャット弁３１のいずれかが故障したときにも、上記ステップ２８を実行した後、本処理を終了する。これにより、蒸発燃料処理系２０の故障判定が禁止される。このように、エンジン運転中に給油が行われたときに故障判定が禁止されるのは、給油が行われなかったときと比べて、給油による燃料タンク２１内の燃料温度の変化に起因して、エンジン停止後の故障判定処理中にタンク内圧ＰＴＡＮＫの上昇状態および下降状態が適切に得られず、故障判定を適切に行うことができないからである。
【００４１】
次に、図４および図５を参照しながら、蒸発燃料処理系２０の故障判定処理、より具体的には、エンジン３の停止後、蒸発燃料処理系２０でリークが発生したか否かを判定する処理について説明する。
【００４２】
この処理では、まず、ステップ３０において、判定実行済みフラグＦ＿ＤＯＮＥが「１」であるか否かを判別する。この判定実行済みフラグＦ＿ＤＯＮＥは、エンジン３の始動時に「０」にセットされ、後述するように、本処理による蒸発燃料処理系２０の故障判定を実行したときに「１」にセットされる（後述するステップ３９，５０，５６，５７参照）。この判別結果がＹＥＳで、蒸発燃料処理系２０の故障判定を実行済みであるときには、そのまま本処理を終了する。
【００４３】
一方、ステップ３０の判別結果がＮＯで、蒸発燃料処理系２０の故障判定を実行していないときには、ステップ３１に進み、エンジン３が停止されているか否かを判別する。この判別では、クランク角センサ１１からのＣＲＫ信号に基づいて算出されたエンジン回転数ＮＥが所定値（例えば値０）以下であるときに、エンジン３が停止されていると判別される。
【００４４】
この判別結果がＮＯで、エンジン３が運転中であるときには、ステップ４６に進み、アップカウント式の第１タイマの計数値ＴＭ１を値０にセットした後、本処理を終了する。一方、ステップ３１の判別結果がＹＥＳで、エンジン３が停止されているときには、ステップ３２に進み、故障判定許可フラグＦ＿ＤＥＴが「１」であるか否かを判別する。
【００４５】
この判別結果がＮＯで、本処理の実行条件が成立していないときには、上記ステップ４６を実行した後、本処理を終了する。一方、ステップ３２の判別結果がＹＥＳで、本処理の実行条件が成立しているときには、ステップ３３に進み、第１タイマの計数値ＴＭ１が所定の第１大気開放時間ＴＯＴＡ１より大きいか否かを判別する。
【００４６】
この判別結果がＮＯで、エンジン停止後の経過時間が第１大気開放時間ＴＯＴＡ１を上回っていないときには、ステップ３４に進み、バイパス弁（図では「ＢＰＶ」と記す）３０およびベントシャット弁（図では「ＶＳＶ」と記す）３１を開弁する（後述する第１大気開放モード）。次に、ステップ３５に進み、アップカウント式の第２タイマの計数値ＴＭ２を値０にセットした後、本処理を終了する。
【００４７】
一方、ステップ３３の判別結果がＹＥＳで、エンジン停止後の経過時間が第１大気開放時間ＴＯＴＡ１を上回ったときには、ステップ３６に進み、第２タイマの計数値ＴＭ２が所定の第１判定時間ＴＰＨＡＳＥ１（例えば９００ｓｅｃ）より大きいか否かを判別する。この判別結果がＮＯで、ＴＭ２≦ＴＰＨＡＳＥ１のときには、ステップ３７に進み、ベントシャット弁３１を閉弁する（後述する第１判定モード）。
【００４８】
次いで、ステップ３８に進み、タンク内圧ＰＴＡＮＫが所定の第１判定圧ＰＴＡＮＫ１（例えば１．０１３ａｔｍ）より高いか否かを判別する。この判別結果がＹＥＳで、タンク内圧ＰＴＡＮＫの上昇度合が大きいときには、蒸発燃料処理系２０が正常である（すなわちリークがない）として、ステップ３９に進み、それを表すために正常判定フラグＦ＿ＯＫを「１」にセットすると同時に、故障判定を実行済みであることを表すために、判定実行済みフラグＦ＿ＤＯＮＥを「１」にセットした後、本処理を終了する。
【００４９】
一方、ステップ３８の判別結果がＮＯで、ＰＴＡＮＫ≦ＰＴＡＮＫ１のときには、ステップ４０に進み、アップカウント式の第３タイマの計数値ＴＭ３を値０にセットする。
【００５０】
次に、ステップ４１に進み、タンク内圧ＰＴＡＮＫがＲＡＭに記憶されているタンク内圧の最大値ＰＴＡＮＫＭＡＸよりも高いか否かを判別する。この判別結果がＮＯで、ＰＴＡＮＫ≦ＰＴＡＮＫＭＡＸのときには、本処理を終了する。一方、この判別結果がＹＥＳで、ＰＴＡＮＫ＞ＰＴＡＮＫＭＡＸのときには、ステップ４２に進み、タンク内圧ＰＴＡＮＫを最大値ＰＴＡＮＫＭＡＸとして設定した後、本処理を終了する。
【００５１】
一方、ステップ３６の判別結果がＹＥＳで、ＴＭ２＞ＴＰＨＡＳＥ１のときには、ステップ４３に進み、アップカウント式の第３タイマの計数値ＴＭ３が所定の第２大気開放時間ＴＯＴＡ２より大きいか否かを判別する。この判別結果がＮＯで、ＴＭ３≦ＴＯＴＡ２のときには、ステップ４４に進み、ベントシャット弁３１を開弁する（後述する第２大気開放モード）。次に、ステップ４５に進み、アップカウント式の第４タイマの計数値ＴＭ４を値０に設定した後、本処理を終了する。
【００５２】
一方、ステップ４３の判別結果がＹＥＳで、ＴＭ３＞ＴＯＴＡ２のときには、図５のステップ４７に進み、第４タイマの計数値ＴＭ４が所定の第２判定時間ＴＰＨＡＳＥ２（例えば２４００ｓｅｃ）より大きいか否かを判別する。この判別結果がＮＯで、ＴＭ４≦ＴＰＨＡＳＥ２のときには、ステップ４８に進み、ベントシャット弁３１を閉弁する（後述する第２判定モード）。
【００５３】
次いで、ステップ４９に進み、タンク内圧ＰＴＡＮＫが所定の第２判定圧ＰＴＡＮＫ２（例えば０．９８６ａｔｍ）より低いか否かを判別する。この判別結果がＹＥＳで、タンク内圧ＰＴＡＮＫの下降度合が大きいときには、蒸発燃料処理系２０が正常であるとして、ステップ５０に進み、前記ステップ３９と同様に、正常判定フラグＦ＿ＯＫを「１」にセットすると同時に、判定実行済みフラグＦ＿ＤＯＮＥを「１」にセットした後、本処理を終了する。
【００５４】
一方、ステップ４９の判別結果がＮＯで、ＰＴＡＮＫ≧ＰＴＡＮＫ２のときには、ステップ５１に進み、タンク内圧ＰＴＡＮＫがＲＡＭに記憶されているタンク内圧の最小値ＰＴＡＮＫＭＩＮより低いか否かを判別する。
【００５５】
この判別結果がＮＯで、ＰＴＡＮＫ≧ＰＴＡＮＫＭＩＮのときには、本処理を終了する。一方、この判別結果がＹＥＳで、ＰＴＡＮＫ＜ＰＴＡＮＫＭＩＮのときには、ステップ５２に進み、タンク内圧ＰＴＡＮＫを最小値ＰＴＡＮＫＭＩＮとして設定した後、本処理を終了する。
【００５６】
一方、ステップ４７の判別結果がＹＥＳで、ＴＭ４＞ＴＰＨＡＳＥ２のときには、ステップ５３に進み、バイパス弁３０を閉弁すると同時に、ベントシャット弁３１を開弁する。
【００５７】
次に、ステップ５４に進み、タンク内圧の最大値ＰＴＡＮＫＭＡＸと最小値ＰＴＡＮＫＭＩＮとの偏差（ＰＴＡＮＫＭＡＸ−ＰＴＡＮＫＭＩＮ）を、圧力偏差ΔＰとして設定する。
【００５８】
次いで、ステップ５５に進み、圧力偏差ΔＰが所定のしきい値ΔＰＴＨより大きいか否かを判別する。この判別結果がＹＥＳで、ΔＰ＞ΔＰＴＨのときには、蒸発燃料処理系２０が正常であるとして、ステップ５６に進み、前記ステップ３９，５０と同様に、正常判定フラグＦ＿ＯＫを「１」にセットすると同時に、判定実行済みフラグＦ＿ＤＯＮＥを「１」にセットした後、本処理を終了する。
【００５９】
一方、ステップ５５の判別結果がＮＯで、ΔＰ≦ΔＰＴＨのときには、蒸発燃料処理系２０が故障している（すなわちリークがある）として、ステップ５７に進み、それを表すために故障判定フラグＦ＿ＮＧを「１」にセットすると同時に、故障判定を実行済みであることを表すために、判定実行済みフラグＦ＿ＤＯＮＥを「１」にセットした後、本処理を終了する。これは、蒸発燃料処理系２０内にリークがあるときには、タンク内圧ＰＴＡＮＫが大気圧に対して変化する度合が小さくなることによる。
【００６０】
次に、以上の故障判定処理を実行した場合に得られるタンク内圧ＰＴＡＮＫの推移の一例を、図６に示すタイミングチャートを参照しながら説明する。同図に示すように、まず、バイパス弁３０およびベントシャット弁３１がいずれも開弁され、第１大気開放モードに移行すると（時刻ｔ１）、タンク内圧ＰＴＡＮＫが低下する。その後、タンク内圧ＰＴＡＮＫが大気圧（１ａｔｍ）まで低下し、第１大気開放時間ＴＯＴＡ１が経過した時点（時刻ｔ２）で、ベントシャット弁３１が閉弁され、蒸発燃料処理系２０が閉鎖され、第１判定モードに移行する。
【００６１】
この第１判定モード中、タンク内圧ＰＴＡＮＫは上昇し、その際、同図に破線Ｌ１で示すように、タンク内圧ＰＴＡＮＫが第１判定圧ＰＴＡＮＫ１を超えると（時刻ｔ３）、蒸発燃料処理系２０が正常であると判定される。
【００６２】
一方、第１判定モード中、タンク内圧ＰＴＡＮＫが実線Ｌ２に示すように変化した場合、第１判定時間ＴＰＨＡＳＥ１が経過した時点（時刻ｔ４）で、タンク内圧の最大値ＰＴＡＮＫＭＡＸがＲＡＭに記憶されると同時に、ベントシャット弁３１が開弁され、第２大気開放モードに移行する。これにより、タンク内圧ＰＴＡＮＫが再度、低下する。その後、タンク内圧ＰＴＡＮＫが大気圧（１ａｔｍ）まで低下し、第２大気開放時間ＴＯＴＡ２が経過した時点（時刻ｔ５）で、ベントシャット弁３１が閉弁され、蒸発燃料処理系２０が閉鎖され、第２判定モードに移行する。
【００６３】
この第２判定モード中、タンク内圧ＰＴＡＮＫは低下し、その際、同図に破線Ｌ３で示すように、タンク内圧ＰＴＡＮＫが第２判定圧ＰＴＡＮＫ１を下回ると（時刻ｔ６）、蒸発燃料処理系２０が正常であると判定される。
【００６４】
一方、第２判定モード中、タンク内圧ＰＴＡＮＫが実線Ｌ４に示すように変化した場合、第２判定時間ＴＰＨＡＳＥ２が経過した時点（時刻ｔ７）で、タンク内圧の最小値ＰＴＡＮＫＭＩＮがＲＡＭに記憶される。これと同時に、バイパス弁３０が閉弁され、かつベントシャット弁３１が開弁される。この時点で、前述したように、最大値ＰＴＡＮＫＭＡＸと最小値ＰＴＡＮＫＭＩＮとの圧力偏差ΔＰとしきい値ΔＰＴＨとを比較することにより、故障判定が実行される。すなわち、圧力偏差ΔＰがしきい値ΔＰＴＨよりも大きいときには、蒸発燃料処理系２０が正常であると判定され、そうでないときには、蒸発燃料処理系２０が故障していると判定される。
【００６５】
以上のように、本実施形態の故障判定装置１によれば、エンジン停止後の第１判定モードおよび第２判定モード中、タンク内圧ＰＴＡＮＫに基づいて、蒸発燃料処理系２０の故障の有無が判定されるとともに、故障判定実行前のエンジン運転中、燃料タンク２１への給油が行われたと判定されていたときには、故障判定が禁止される。すなわち、燃料タンク２１への給油に起因して燃料温度が変化するのに伴い、エンジン停止後のタンク内圧ＰＴＡＮＫが、給油がない場合と比べて、その時間的な推移が異なる傾向を示す可能性がある場合、言い換えれば故障判定に不適切な状態で推移する可能性がある場合には、故障判定が禁止される。その結果、誤判定を回避でき、判定精度を向上させることができる。
【００６６】
また、そのような給油の有無の判定が、エンジン停止前に予め実行されるので、故障判定の際、エンジン停止前の燃料タンク２１への給油に起因する燃料温度の変化の影響を排除できるとともに、エンジン停止後に不要な故障判定が行われるのを確実に回避できる。
【００６７】
なお、実施形態は、燃料タンク２１の燃料レベルＦＬＥＶＥＬに基づいて給油の有無を判定する例であるが、給油の有無を判定する手法は、これに限らず、エンジン運転中に給油の有無を判定できるものであればよい。例えば、図７に示す判定処理により、給油の有無を判定してもよい。同図に示すように、この判定処理では、実施形態の図２に示す判定処理と比べて、ステップ８Ａの部分のみが異なっている。具体的には、このステップ８Ａにおいて、フィラーキャップスイッチ１９の信号に基づき、フィラーキャップ２１ｂが取り外されたか否か、すなわち給油が行われたか否かが判別される。この判定処理によれば、図２に示す判定処理と同様に、エンジン運転中、給油が行われたか否かを確実に判定することができる。
【００６８】
また、実施形態では、エンジン運転中に給油の有無を判定するようにしたが、エンジン停止後に給油の有無を判定するとともに、エンジン停止後に給油が行われたと判定されたときに、故障判定を禁止（中止）するようにしてもよい。このようにすれば、誤判定を回避することができる。
【００６９】
さらに、本発明の故障判定装置１は、蒸発燃料処理系２０の故障としてリークの有無を判定する実施形態の例に限らず、エンジン停止後に蒸発燃料処理系２０の故障を判定するものであれば適用可能であることはいうまでもない。例えば、バイパス弁３０、ベントシャット弁３１およびパージ制御弁３２の故障の判定を、エンジン停止後に行うものにも適用可能である。
【００７０】
また、実施形態では、吸気温センサ１０とは別個の外気温センサ１５により外気温ＴＡＴを検出したが、外気温センサ１５を省略し、吸気温センサ１０により検出された吸気温ＴＡを外気温ＴＡＴとして用いるようにしてもよい。また、実施形態は、圧力センサ１２をチャージ通路２２に設けた例であるが、圧力センサ１２を設ける位置は、これに限らず、蒸発燃料処理系２０内の圧力を検出可能な場所であればよい。例えば、圧力センサ１２を燃料タンク２１に設けてもよい。
【００７１】
【発明の効果】
以上のように、本発明の蒸発燃料処理系の故障判定装置によれば、内燃機関の停止後、蒸発燃料処理系のリークを含む故障の判定を行う場合において、誤判定を回避でき、判定精度を向上させることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る故障判定装置、これを適用した内燃機関の蒸発燃料処理系の概略構成を示す図である。
【図２】エンジンの運転中の給油の有無を判定する処理を示すフローチャートである。
【図３】蒸発燃料処理系の故障判定処理の実行条件が成立しているか否かを判定する処理を示すフローチャートである。
【図４】蒸発燃料処理系の故障判定処理の一部を示すフローチャートである。
【図５】図４の続きを示すフローチャートである。
【図６】図４および図５の処理を実行した際の各弁の動作およびタンク内圧の推移の一例を示すタイミングチャートである。
【図７】エンジンの運転中の給油の有無を判定する処理の変形例を示すフローチャートである。
【符号の説明】
１    故障判定装置
２    ＥＣＵ（機関停止検出手段、故障判定手段、給油判定手段、故障判定禁止手段）
３    内燃機関
５    吸気管（吸気系）
１１    クランク角センサ（機関停止検出手段）
１２    圧力センサ（圧力検出手段）
２０    蒸発燃料処理系
２１    燃料タンク
２４    キャニスタ（貯蔵部）
ＰＴＡＮＫ  タンク内圧（蒸発燃料処理系内の圧力）
【図１】
0003825362.tif 000002
【図２】
0003825362.tif 000003
【図３】
0003825362.tif 000004
【図４】
0003825362.tif 000005
【図５】
0003825362.tif 000006
【図６】
0003825362.tif 000007
【図７】
0003825362.tif 000008