(57)【要約】【課題】フィラーチューブ内の空間を含む系のリークについて誤判定を回避する。【解決手段】車両の蒸発燃料処理系は、燃料タンクを含み、該燃料タンクには、給油のためのフィラーチューブが設けられている。蒸発燃料処理系には、該蒸発燃料処理系の圧力を検出する圧力センサが設けられている。リーク判定装置は、内燃機関が停止されたことが検出されたならば、該蒸発燃料処理系を閉じた後、圧力センサによって検出された圧力と所定に基づいて、該蒸発燃料処理系内にリークがあるかどうかを判定する。リーク判定装置は、圧力センサを含む空間の第１の系と、フィラーチューブ内の空間を含む第２の系とが、燃料タンク内の燃料によって分離されている状態を検出する。該分離状態が検出されることに応じて、リーク判定を禁止する。一実施形態では、燃料レベルが所定値より大きく、かつ燃料タンクが傾いていると判断したならば、第１および第２の系が分離されている状態にあると判断する。【選択図】図１２
2005264914.tif 000002
【特許請求の範囲】
【請求項１】
燃料タンクと、大気に連通する吸気口が設けられ、該燃料タンク内で発生する蒸発燃料を吸着するキャニスタと、該燃料タンクおよび該キャニスタを接続する第１の通路と、該キャニスタを内燃機関の吸気系に接続する第２の通路と、該キャニスタの吸気口を開閉するベントシャット弁と、該第２の通路に設けられたパージ制御弁とを備える蒸発燃料処理系のリークを判定する装置であって、前記燃料タンクには、給油のためのフィラーチューブが設けられており、
前記蒸発燃料処理系の圧力を検出する圧力センサと、
前記内燃機関の停止を検出する機関停止検出手段と、
前記機関停止検出手段によって前記内燃機関の停止が検出されたならば、前記パージ制御弁および前記ベントシャット弁を閉じることによって前記蒸発燃料処理系を閉じた後、所定期間中に前記圧力センサによって検出された圧力に基づいて、該蒸発燃料処理系内にリークがあるかどうかを判定するリーク判定手段と、
前記圧力センサを含む空間の第１の系と、前記フィラーチューブ内の空間を含む第２の系とが、前記燃料タンク内の燃料によって分離されている状態を検出する状態検出手段と、
前記分離されている状態が検出されることに応じて、前記リーク判定を禁止する禁止手段と、
を備える、リーク判定装置。
【請求項２】
さらに、
前記燃料タンク内の燃料の液位を燃料レベルとして検出するセンサと、
前記内燃機関が停止するまで、前記燃料タンクに残存する燃料の量を表す第１の燃料レベルを算出する手段であって、該内燃機関を搭載した車両が傾斜地を走行していないときは、前記センサにより検出された燃料レベルに基づいて該第１の燃料レベルを算出し、該車両が傾斜地を走行しているときは、前記第１の燃料レベルの過去値と燃料消費量とに基づいて、該第１の燃料レベルを推定する第１の算出手段と、
前記内燃機関が停止するまで、前記燃料タンクに残存する燃料の量を表す第２の燃料レベルを算出する手段であって、該内燃機関を搭載した車両が傾斜地を走行しているか否かにかかわらず、前記センサにより検出された燃料レベルに基づいて該第２の燃料レベルを算出する第２の算出手段と、
前記内燃機関の停止が検出されることに応じて、前記第１の燃料レベルおよび前記第２の燃料レベルを比較し、前記燃料タンクが傾いているかどうかを判断する傾斜判断手段と、を備え、
前記状態検出手段は、前記第１の燃料レベルが所定値以上であり、かつ前記燃料タンクが傾いていると判断したならば、前記第１および第２の系が分離されている状態にあると判断する、請求項１に記載のリーク判定装置。
【請求項３】
前記傾斜判断手段は、前記内燃機関の停止が検出された時から所定時間内に、前記燃料タンクが傾いているかどうかを判断し、
該所定時間は、給油を開始するのに必要な時間よりも短く設定される、請求項２に記載のリーク判定装置。
【請求項４】
さらに、
前記第１の算出手段は、前記車両が傾斜地を走行していないとき、前記燃料レベルを第１の平滑化係数を用いて平滑化して、前記第１の燃料レベルを算出し、
前記第２の算出手段は、前記燃料レベルを第２の平滑化係数を用いて平滑化して、前記第２の燃料レベルを算出し、
前記第１および第２の平滑化係数は、前記第２の燃料レベルが、前記第１の燃料レベルよりも平滑化の程度が小さいように設定される、請求項２または３のいずれかに記載のリーク判定装置。
【請求項５】
さらに、前記車両の加速度に基づいて、前記車両が傾斜地を走行しているかどうかを判断する、請求項２から４のいずれかに記載のリーク判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、内燃機関が停止した後に、該内燃機関の蒸発燃料処理系にリークがあるかどうかを判定する装置に関する。
【背景技術】
【０００２】
内燃機関（以下、エンジンと呼ぶ）が停止した後に、該エンジンの蒸発燃料処理系にリーク（漏れ）があるかどうかを判定する手法が提案されている（例えば、特許文献１を参照）。この手法によれば、エンジンを停止した後に、蒸発燃料処理系の圧力と大気圧との差圧を検出する。検出された差圧の変化に基づいて、リークがあるかどうかが判定される。
【０００３】
下記の特許文献２には、エンジンが停止しているとき、燃料タンク内の燃料が所定範囲内にあれば、異常判定処理を実行する手法が記載されている。燃料タンク内の燃料が所定範囲内にないとき、大量の燃料蒸気が発生するおそれがあるので、異常判定処理を中止する。
【特許文献１】特開２００３−１１３７４３号公報
【特許文献２】特開平５−２４０１１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
リーク判定は、圧力センサにより検出された圧力に基づいて行われる。一方、燃料タンクには、フィラーチューブが接続されており、該フィラーチューブを介して給油が行われる。圧力センサが存在する空間が、フィラーチューブ内の空間と燃料によって分離されると、フィラーチューブにおけるリークを検出することができない。たとえば、フィラーチューブの先端が燃料タンク内の燃料に液没することにより、圧力センサが存在する空間とフィラーチューブ内の空間とが燃料によって分離されると、圧力センサからの出力に基づいて、フィラーチューブにおけるリーク（たとえば、フィラーキャップの閉め忘れ）を検出することができない。
【０００５】
フィラーチューブには、たとえば燃料タンク内の蒸発燃料をフィラーチューブに戻すリターン通路が接続されることがある。フィラーチューブとリターン通路は空間的につながっている。燃料タンクに残存する燃料の量が所定値以上で、かつ燃料タンクが傾いているとき、リターン通路の先端およびフィラーチューブの先端の両方が燃料に液没することがある。その結果、やはり、該リターン通路およびフィラーチューブを含む空間の系が、圧力センサが存在する空間と燃料によって分離される。このような分離状態でリーク判定を実行すると、リターン通路およびフィラーチューブのいずれかにリークが存在しても、正常と誤判定されるおそれがある。
【０００６】
したがって、圧力センサが存在する空間の系と、フィラーチューブ内の空間の系とが分離されるような状態では、誤判定となりうるリーク判定を禁止することのできる装置が必要とされている。
【課題を解決するための手段】
【０００７】
この発明の一つの側面によると、リーク判定装置は、燃料タンクと、大気に連通する吸気口が設けられ、該燃料タンク内で発生する蒸発燃料を吸着するキャニスタと、該燃料タンクおよび該キャニスタを接続する第１の通路と、該キャニスタを内燃機関の吸気系に接続する第２の通路と、キャニスタの吸気口を開閉するベントシャット弁と、第２の通路に設けられたパージ制御弁とを備える蒸発燃料処理系のリークを判定する。燃料タンクには、給油のためのフィラーチューブが設けられている。リーク判定装置は、蒸発燃料処理系の圧力を検出する圧力センサと、内燃機関の停止を検出する手段を備える。リーク判定装置は、内燃機関の停止が検出されたならば、パージ制御弁およびベントシャット弁を閉じることにより、蒸発燃料処理系を閉じる。その後、リーク判定装置は、圧力センサによって検出された圧力に基づいて、該蒸発燃料処理系内にリークがあるかどうかを判定する。リーク判定装置は、圧力センサを含む空間の第１の系と、フィラーチューブ内の空間を含む第２の系とが、燃料タンク内の燃料によって分離されている状態を検出する。該分離状態が検出されることに応じて、リーク判定装置は、リーク判定を禁止する。
【０００８】
この発明の一実施形態によると、リーク判定装置は、燃料タンク内の燃料の液位を燃料レベルとして検出するセンサを備える。リーク判定装置は、さらに、内燃機関が停止するまで、燃料タンクに残存する燃料の量を表す第１の燃料レベルを算出する第１の算出手段を備える。第１の算出手段は、該内燃機関を搭載した車両が傾斜地を走行していないときは、センサからの燃料レベルに基づいて該第１の燃料レベルを算出し、該車両が傾斜地を走行しているときは、該センサからの燃料レベルに基づいて算出された第１の燃料レベルの過去値と、燃料消費量とに基づいて、該第１の燃料レベルを推定する。リーク判定装置は、さらに、内燃機関が停止するまで、燃料タンクに残存する燃料の量を表す第２の燃料レベルを算出する第２の算出手段を備える。第２の算出手段は、該内燃機関を搭載した車両が傾斜地を走行しているか否かにかかわらず、センサからの燃料レベルに基づいて該第２の燃料レベルを算出する。リーク判定装置は、内燃機関の停止が検出されることに応じて、第１の燃料レベルおよび第２の燃料レベルを比較し、燃料タンクが傾いているかどうかを判断する。第１の燃料レベルが所定値以上であり、かつ燃料タンクが傾いていると判断したならば、第１および第２の系が分離されている状態にあると判断する。
【０００９】
この発明の一実施形態によると、燃料タンクが傾いているかどうかの判断は、内燃機関の停止が検出された時から所定時間内に行われる。該所定時間は、給油を開始するのに必要な時間よりも短く設定される。
【００１０】
この発明の一実施形態によると、上記の第１の算出手段は、車両が傾斜地を走行していないとき、センサからの燃料レベルを第１の平滑化係数を用いて平滑化して、第１の燃料レベルを算出する。上記の第２の算出手段は、センサからの燃料レベルを第２の平滑化係数を用いて平滑化して、第２の燃料レベルを算出する。第１および第２の平滑化係数は、第２の燃料レベルが、第１の燃料レベルよりも平滑化の程度が小さいように設定される。
【００１１】
この発明の一実施形態によると、上記の第１の算出手段は、さらに、車両の加速度に基づいて、該車両が傾斜地を走行しているかどうかを判断する。
【発明の効果】
【００１２】
この発明によれば、フィラーチューブ内の空間を含む第２の系が、圧力センサが存在する空間を含む第１の系から燃料により分離されたときは、リーク判定を禁止する。第２の系におけるリークを検出することのできない状態ではリーク判定を禁止するので、誤判定を回避することができる。
【００１３】
この発明の一実施形態によれば、燃料タンクが傾いているか否かにかかわらず、第１の燃料レベルは、燃料タンクに残存する燃料の量を正確に表す。第２の燃料レベルは、燃料タンクが傾いているかどうかに従い、異なる値を取る。したがって、第１および第２の燃料レベルを比較することにより、燃料タンクが傾いているかどうかを判断することができる。
【００１４】
内燃機関が停止した後に、給油が行われることがある。給油が行われると、第２の燃料レベルが変化する。給油に起因して第２の燃料レベルが変化すると、燃料タンクの傾斜に起因した第２の燃料レベルの変化を検出することができないおそれがある。この発明の一実施形態によれば、燃料タンクが傾斜しているかどうかの判断を、内燃機関が停止してからの短い時間内に行うので、燃料タンクの傾斜をより正確に検出することができる。
【００１５】
センサからの燃料レベルの平滑化の程度を大きくして第１の燃料レベルを算出することにより、車両が走行している間における、燃料タンクに残存する燃料の量をより正確に算出することができる。センサからの燃料レベルの平滑化の程度を小さくして第２の燃料レベルを算出することにより、燃料タンクの傾斜に起因した燃料の液位の変化をより正確に検出することができる。
【発明を実施するための最良の形態】
【００１６】
次に図面を参照してこの発明の実施の形態を説明する。図１は、この発明の実施形態に従う、内燃機関およびその制御装置の全体構成図である。
【００１７】
電子制御ユニット（以下、「ＥＣＵ」）という）５は、車両の各部から送られてくるデータを受け入れる入力インターフェース５ａ、車両の各部の制御を行うための演算を実行するＣＰＵ５ｂ、読み取り専用メモリ（ＲＯＭ）およびランダムアクセスメモリ（ＲＡＭ）を有するメモリ５ｃ、および車両の各部に制御信号を送る出力インターフェース５ｄを備えている。メモリ５ｃのＲＯＭには、車両の各部の制御を行うためのプログラムおよび各種のデータが格納されている。この発明に従うリーク判定を実施するためのプログラム、および該プログラムの実行の際に用いるデータおよびテーブルは、このＲＯＭに格納されている。ＲＯＭは、ＥＰＲＯＭのような書き換え可能なＲＯＭでもよい。ＲＡＭには、ＣＰＵ５ｂによる演算のための作業領域が設けられる。車両の各部から送られてくるデータおよび車両の各部に送り出す制御信号は、ＲＡＭに一時的に記憶される。
【００１８】
エンジン１は、例えば４気筒を備えるエンジンであり、吸気管２が連結されている。吸気管２の上流側にはスロットル弁３が配されており、スロットル弁３に連結されたスロットル弁開度センサ（θＴＨ）４は、スロットル弁３の開度に応じた電気信号を出力してＥＣＵ５に供給する。
【００１９】
燃料噴射弁６は、エンジン１とスロットル弁３の間に気筒毎に設けられ、ＥＣＵ５からの制御信号によって開弁時間が制御される。燃料供給管７は、燃料噴射弁６および燃料タンク９を接続し、その途中に設けられた燃料ポンプ８が、燃料を燃料タンク９から燃料噴射弁６に供給する。図示しないレギュレータが、ポンプ８と燃料噴射弁６の間に設けられ、吸気管２から取り込まれる空気の圧力と、燃料供給管７を介して供給される燃料の圧力との間の差圧を一定にするよう動作して、燃料の圧力が高すぎるときは図示しないリターン管を通して余分な燃料を燃料タンク９に戻す。こうして、スロットル弁３を介して取り込まれた空気は、吸気管２を通り、燃料噴射弁６から噴射される燃料と混合してエンジン１のシリンダ（図示せず）に供給される。
【００２０】
吸気管圧力（ＰＢ）センサ１３および吸気温（ＴＡ）センサ１４は、スロットル弁３の下流側に装着されており、それぞれ吸気管圧力ＰＢおよび吸気温ＴＡを検出し、それをＥＣＵ５に送る。
【００２１】
エンジン１には、クランク角センサ１７が設けられている。クランク角センサ１７は、クランクシャフト（図示せず）の回転に伴い、パルス信号であるＣＲＫ信号およびＴＤＣ信号をＥＣＵ５に出力する。
【００２２】
ＣＲＫ信号は、所定のクランク角（たとえば、３０度）で出力されるパルス信号である。ＥＣＵ５は、該ＣＲＫ信号に応じ、エンジン１の回転数ＮＥを算出する。ＴＤＣ信号は、ピストン（図示せず）のＴＤＣ位置に関連したクランク角度で出力されるパルス信号である。
【００２３】
エンジン水温（ＴＷ）センサ１８は、エンジン１のシリンダブロックの冷却水が充満した気筒周壁（図示せず）に取り付けられ、エンジン冷却水の温度ＴＷを検出し、それをＥＣＵ５に送る。
【００２４】
エンジン１には排気管１２が接続され、排気管１２の途中に設けられた排気ガス浄化装置である三元触媒（図示せず）を介して排気する。三元触媒の上流に設けられたＬＡＦセンサ１９は広域空燃比センサであり、リーンからリッチにわたる範囲において排気ガス中の酸素濃度すなわち実空燃比を検出し、それをＥＣＵ５に送る。
【００２５】
イグニッションスイッチ２１がＥＣＵ５に接続されている。イグニッションスイッチ２１の切換信号は、ＥＣＵ５に送られる。
【００２６】
車速（ＶＰ）センサ２２および大気圧（ＰＡ）センサ２３がＥＣＵ５に接続されており、それぞれ、車両の速度ＶＰおよび大気圧ＰＡを検出し、それをＥＣＵ５に送る。
【００２７】
エンジン１には、たとえば４速の変速機（図示せず）が連結されており、該変速機は、選択された変速比に従い、エンジン１の駆動力を車両の駆動輪に伝達する。
【００２８】
次に、蒸発燃料処理系５０について説明する。燃料タンク９は、チャージ通路３１を介してキャニスタ３３に接続され、燃料タンク９からの蒸発燃料が、キャニスタ３３に移動できるようになっている。チャージ通路３１には、機械式の二方向弁３５が設けられている。二方向弁３５は、タンク内圧が大気圧より第１の所定圧（たとえば、２．７ｋＰａ）以上高いときに開く正圧弁と、タンク内圧がキャニスタ３３の圧力より第２の所定圧以上低いとき開く負圧弁を備える。
【００２９】
二方向弁をバイパスするバイパス通路３１ａが設けられている。バイパス通路３１ａには、電磁弁であるバイパス弁３６が設けられる。バイパス弁３６は、通常は閉弁状態にあり、ＥＣＵ５からの制御信号に従って開弁する。
【００３０】
圧力センサ１５は、二方向弁３５と燃料タンク９との間に設けられており、その検出信号はＥＣＵ５に送られる。圧力センサ１５の出力ＰＴＡＮＫは、キャニスタ３３および燃料タンク９内の圧力が安定している定常状態では、燃料タンク内の圧力に等しくなる。一方、圧力センサ１５の出力ＰＴＡＮＫは、キャニスタ３３または燃料タンク９内の圧力が変化しているときは、実際のタンク内圧とは異なる圧力を示す。圧力センサ１５の出力を、以下「タンク内圧ＰＴＡＮＫ」と呼ぶ。
【００３１】
キャニスタ３３は、燃料蒸気を吸着する活性炭を内蔵し、通路３７を介して大気に連通する吸気口（図示せず）を持つ。通路３７の途中には、ベントシャット弁３８が設けられる。ベントシャット弁３８は、通常は開弁状態にあり、ＥＣＵ５からの制御信号に従って閉弁する。
【００３２】
キャニスタ３３は、パージ通路３２を介して吸気管２のスロットル弁３の下流側に接続される。パージ通路３２の途中には電磁弁であるパージ制御弁３４が設けられ、キャニスタ３３に吸着された燃料が、パージ制御弁３４を介してエンジンの吸気系に適宜パージされる。パージ制御弁３４は、ＥＣＵ５からの制御信号に基づいて、オン−オフデューティ比を変更することにより、パージ流量を連続的に制御する。
【００３３】
この実施形態によると、イグニッションスイッチ２１がオフされても、リーク判定を実施する期間中は、ＥＣＵ５、バイパス弁３６およびベントシャット弁３８には電気が供給される。パージ制御弁３４は、イグニッションスイッチ２１がオフされると電気が供給されなくなり、閉弁状態を維持する。
【００３４】
各種センサからの入力信号はＥＣＵ５の入力インターフェース５ａに渡される。入力インターフェース５ａは、受け取ったアナログ信号をデジタル信号に変換する。ＣＰＵ５ｂは、変換されたデジタル信号を処理し、メモリ５ｃに格納されているプログラムに従って演算を実行し、車の各部のアクチュエータに送る制御信号を作り出す。この制御信号は出力インターフェース５ｄに送られ、出力インターフェース５ｄは、燃料噴射弁６、パージ制御弁３４、バイパス弁３６およびベントシャット弁３８に制御信号を送る。
【００３５】
図２は、燃料タンク９の構成を概略的に示す。矢印Ａに示される方向は、車両の進行方向を示し、その反対方向が、矢印Ｂにより示されている。燃料が“満タン”になった時の液面が、破線Ｆにより表されている。
【００３６】
燃料レベルセンサ１０は、燃料の液面に浮かぶフロートと、該フロートの上下動に従って信号を出力する回路とを備える（いずれも図示せず）。該信号は、ＥＣＵ５に送られ、燃料の液位Ｌを表す燃料レベルＦＬＥＶＥＬが検出される。この実施形態では、燃料レベルセンサ１０は、矢印Ａ側に設けられている。
【００３７】
燃料タンク９の上部には、フロート弁４１が設けられている。フロート弁４１は弁室４２を備えており、弁室４２の上部には、キャニスタ３３へのチャージ通路３１が接続されている。弁室４２には、上下に可動なフロート４３が収容されている。燃料が“満タン”になると、フロート４３が、チャージ通路３１への開口部４４を閉じる。
【００３８】
カット弁４５は、満タンのレベルＦよりも高い位置に設けられている。カット弁４５は、弁室４６を備えており、弁室４６の上部には、チャージ通路３１へ至る燃料通路４７が接続されている。弁室４６には、上下に可動なフロート４８が収容されている。燃料タンク９内の燃料の液面が満タン時の液面Ｆよりも高くなったとき、たとえば車体が大きく傾いたりすることによって燃料が極度に上部まで達したとき、フロート４８が、燃料通路４７への開口部４９を閉じ、燃料タンク９内の燃料がキャニスタ３３に流入するのを阻止する。カット弁４５は、液面が“満タン”のレベルＦにある時は、開いている。
【００３９】
燃料タンク９には、ガソリンを燃料タンク９に給油するためのフィラーチューブ５１が取り付けられている。フィラーチューブ５１には、フィラーキャップ５２が取り付けられる。リターン通路５３が、燃料タンク９とフィラーチューブ５１との間に接続されている。
【００４０】
フィラーチューブ５１から給油ガンを介して燃料を供給すると、燃料タンク９の液面Ｌが次第に上昇し、燃料タンク９からチャージ通路３１に押し出された蒸発燃料は、開弁状態にあるフロート弁４１からチャージ通路３１を経てキャニスタ３３に供給され、該キャニスタ３３にチャージされる。燃料タンクの液面Ｌが“満タン”レベルＦに達すると、フロート弁４１が閉弁状態になり、チャージ通路３１が閉じられる。燃料タンク９内の蒸発燃料は、キャニスタ３３に供給されなくなる。その結果、フィラーチューブ５１内の液面が上昇する。これに応じて、オートストップ装置（図示せず）が作動し、燃料の供給が自動的に停止する。
【００４１】
また、給油ガンから燃料が供給されるとき、燃料タンク９から押し出された蒸発燃料の一部は、キャニスタ３３に供給されることなく、リターン通路５３を通ってフィラーチューブ５１に返される。この蒸発燃料は、給油ガンからフィラーチューブ５１に供給される燃料と共に、燃料タンク９の内部に還流する。これにより、新気が、フィラーチューブ５１を経て燃料タンク９に取り込まれることが抑制される。新気が吸入されにくくなると、新たな蒸発燃料が発生しにくくなるので、キャニスタ３３の負荷を軽減することができる。
【００４２】
フィラーチューブ５１の先端５５は、燃料レベルの液面Ｌが所定値以上になったとき、燃料に液没する。リターン通路５３の先端５６は、燃料レベルの液面Ｌが満タンレベルＦになったとき、燃料に液没する。すなわち、燃料レベルの液面Ｌが満タンレベルＦになったとき、フィラーチューブ５１およびリターン通路５３の先端５５および５６の両方が燃料に液没する。
【００４３】
燃料が満タンでなくても、フィラーチューブ５１およびリターン通路５３の先端５５および５６の両方が燃料に液没する状態は起こりうる。たとえば、傾斜している場所に車両を停車することにより、燃料タンク９が傾く。残存している燃料の量が所定値（たとえば、満タンのレベルＦの８割）以上の時に燃料タンクが傾くと、リターン通路５３の先端５６が燃料に液没する。
【００４４】
図３は、このような状態の一例を示している。車両は坂道上にあり、車両の前方（矢印Ａ側）が高くなるように、燃料タンク９が傾斜している。蒸発燃料処理系５０は、第１の系と第２の系とに、燃料により分離される。第１の系は、圧力センサ１５（前述したように、これは、チャージ通路３１に設けられている）が存在する空間を含む系である。燃料タンク９から、チャージ通路３１を経てキャニスタへと至る系が空間的につながっており、第１の系を構成する。図では、第１の系の一部が、点の網掛けにより表されている。
【００４５】
第２の系は、フィラーチューブ５１内の空間を含む系である。この実施形態では、フィラーチューブ５１内の空間は、リターン通路５３内の空間とつながっているので、第２の系は、フィラーチューブ５１およびリターン通路５３を含む。図では、第２の系は、斜線の網掛けにより表されている。
【００４６】
リーク判定は、圧力センサ１５により検出される圧力ＰＴＡＮＫに基づいて実施される。第１の系と第２の系とに分離された状態では、リーク判定の対象は、実質的に第１の系のみとなり、第２の系にリークがあるかどうかは判定されない。第２の系にリークがあったとしても、蒸発燃料処理系５０にはリーク無し（すなわち正常）と誤判定されるおそれがある。
【００４７】
本願発明の一実施形態では、図３に示されるような、第１および第２の系が燃料により分離された状態にあると判断した時、リーク判定を禁止する。一実施例として、燃料タンクに残存する燃料の量が所定値以上の時に燃料タンクが傾いている状態が検出されたならば、第１および第２の系が燃料により分離された状態であると判断する。
【００４８】
図４は、本願発明の一実施形態に従う、蒸発燃料処理系５０のリークを判定する装置のブロック図である。各機能ブロックは、典型的には、メモリ５ｃに記憶されたコンピュータプログラムにより実現される。代替的に、ソフトウェア、ハードウェアおよびファームウェアおよびこれらの任意の組み合わせにより実現してもよい。
【００４９】
この発明の一実施形態では、第１および第２のリーク判定が実施される。第２のリーク判定は、第１のリーク判定よりも小さい穴（たとえば、直径が約０．５ミリメートルの穴）を検出する。以下の説明において、単に「リーク判定」と呼ぶ時は、第１および第２のリーク判定を含むものとする。
【００５０】
傾斜地走行判定部６０は、車両の加速度に基づいて、車両が傾斜地を走行しているのか、または平地を走行しているのかを判断する。
【００５１】
第１の燃料レベル算出部６１は、燃料タンク９に実際に残存する燃料の量を表す第１の燃料レベルＦＬＥＶＥＬＦを算出する。具体的には、車両が平地を走行していると判断されたときは、燃料タンク９内の燃料の液位を示す燃料レベルＦＬＥＶＥＬを燃料レベルセンサ１０から受け取り、式（１）に従って、第１の燃料レベルＦＬＥＶＥＬＦを算出する。ここで、ｋはサイクルを識別する識別子であり、(k)は今回のサイクルを示し、(k-1)は前回のサイクルを示す。
【００５２】
係数ＣＦＬＦは、第１の平滑化（なまし）係数を示しており、予め決められた値（たとえば、０．０１）にセットされる。代替的に、燃料レベルＦＬＥＶＥＬに応じて、または他のパラメータに応じて、可変であってもよい。車両が走行しているとき、路面の状況により、液位Ｌの変動が大きく、かつ速いことがある。このような変動は、燃料レベルＦＬＥＶＥＬにも現れる。第１の平滑化係数ＣＦＬＦは、このような変動を平滑化することのできる値に設定される。
【００５３】
第１の燃料レベルＦＬＥＶＥＬＦ＝
ＣＦＬＦ×ＦＬＥＶＥＬ(ｋ)＋（１−ＣＦＬＦ）×ＦＬＥＶＥＬＦ(ｋ−１)
（１）
第１の燃料レベル算出部６１は、車両が傾斜地を走行しているときは、式（２）に従い、車両が平地を走行していると判断された時に算出された第１の燃料レベルの過去値ＦＬＥＶＥＬ１と、燃料消費量ＵＧＡＳＦＬＶＬとに基づいて、第１の燃料レベルＦＬＥＶＥＬＦを推定する。
【００５４】
第１の燃料レベルＦＬＥＶＥＬＦ＝ＦＬＥＶＥＬＦ１−ＵＧＡＳＦＬＶＬ
（２）
一実施例では、ＦＬＥＶＥＬＦ１は、式（１）に従って直近に算出された第１の燃料レベルＦＬＥＶＥＬＦである。燃料消費量ＵＧＡＳＦＬＶＬは、ＦＬＥＶＥＬ１が算出された時点から消費された燃料の量である。
【００５５】
車両が傾斜地を走行している時は、燃料レベルセンサ１０は、正確な値を示さないおそれがある。たとえば、図３に示されるように燃料タンクが傾くと、燃料レベルセンサ１０は、実際の燃料レベルよりも低い値を出力する。燃料タンクに残存している正確な燃料の量を検出するため、車両が傾斜地を走行している時には、式（２）に従って、第１の燃料レベルＦＬＥＶＥＬＦを推定する。
【００５６】
第２の燃料レベル算出部６２は、車両が傾斜地を走行しているか否かにかかわらず、燃料レベルセンサ１０から受け取った燃料レベルＦＬＥＶＥＬに基づいて第２の燃料レベルＦＬＥＶＥＬＲを算出する。算出は、式（３）に従う。
【００５７】
係数ＣＦＬＲは、第２の平滑化係数を示しており、予め決められた値（たとえば、０．２５）がセットされる。代替的に、燃料レベルＦＬＥＶＥＬに応じて、または他のパラメータに応じて、可変であってもよい。
【００５８】
第２の燃料レベルＦＬＥＶＥＬＲ＝
ＣＦＬＲ×ＦＬＥＶＥＬ(ｋ)＋（１−ＣＦＬＲ）×ＦＬＥＶＥＬＲ(ｋ−１)
（３）
好ましくは、第２の平滑化係数は、給油行為のような、燃料レベルＦＬＥＶＥＬの変化速度が遅い状態を検出することができるような大きさに設定される。すなわち、第２の燃料レベルＦＬＥＶＥＬＲの方が、第１の燃料レベルＦＬＥＶＥＬＦよりも、燃料レベルセンサ１０からの燃料レベルＦＬＥＶＥＬを平滑化する度合いが小さくなるように、第１および第２の平滑化係数は設定されるのが好ましい。したがって、この実施形態では、第２の平滑化係数は、第１の平滑化係数よりも大きい値を持つ。
【００５９】
燃料タンク９が傾いておらず、かつ燃料タンク９に残存している燃料の量が実際に変化しなければ、第１の燃料レベルＦＬＥＶＥＬＦおよび第２の燃料レベルＦＬＥＶＥＬＲは、実質的に同じ値を示す。燃料タンクが傾いているとき、第１の燃料レベルＦＬＥＶＥＬＦは、燃料タンク内に実際に残存している燃料の量を正確に表す。燃料タンクが傾いているとき、第２の燃料レベルＦＬＥＶＥＬＲは、燃料タンク内の燃料の液位を表し、実際に残存している燃料の量を表さない。したがって、第１の燃料レベルＦＬＥＶＥＬＦと第２の燃料レベルＦＬＥＶＥＬＲを比較することにより、燃料タンクが傾いているかどうかを判断することができる。
【００６０】
この実施例では、第１の燃料レベルの算出と第２の燃料レベルの算出との間で、異なる大きさの平滑化係数を用いているが、このことは、この発明の趣旨に従えば、必須ではない。
【００６１】
しかしながら、第１の平滑化係数を小さめに設定することにより、車両の走行中における残存燃料を正確に検出することができる。また、第２の平滑化係数を、燃料レベルＦＬＥＶＥＬのゆるやかな変化を検出することができるよう大きめに設定することにより、燃料タンクの傾斜による燃料の液位の変化を確実に検出することができる。
【００６２】
分離状態検出部６３は、エンジンが停止した後の所定時間内に、第１の燃料レベルＦＬＥＶＥＬＦと第２の燃料レベルＦＬＥＶＥＬＲの差を算出する。第１の燃料レベルＦＬＥＶＥＬＦと第２の燃料レベルＦＬＥＶＥＬＲの間に差があるということは、燃料タンク９が傾いていることを示す。
【００６３】
該所定時間は、短い時間（たとえば５秒）に設定される。好ましくは、エンジンが停止してから給油が開始されるのに必要な時間よりも短く設定される。給油行為が開始されると、第２の燃料レベルＦＬＥＶＥＬＲの値が変化し、よって、燃料タンクが傾斜しているかどうかを正確に判断することができなくなるからである。
【００６４】
前述したように、燃料タンク９に残存している燃料の量が所定値以上のときに燃料タンク９が傾斜すると、圧力センサ１５が存在する空間の第１の系と、フィラーチューブ５１内の空間の第２の系とが燃料により分離される。分離状態検出部６３は、残存している燃料の量が所定値以上であり、かつ燃料タンク９の傾斜が検出されたならば、第１および第２の系が分離されている状態にあると判断する。該残存している燃料の量は、第１の燃料レベルＦＬＥＶＥＬＦにより表される。
【００６５】
判定許可部６４は、エンジンが停止したことに応じて、リーク判定を実行するための条件が成立するかどうかを判断する。判定許可部６４は、分離状態検出部６３により第１および第２の系の分離状態が検出されたならば、リーク判定を禁止する。こうして、第２の系のリークを検出することができない状態でリーク判定を実行することが禁止される。
【００６６】
リーク開始部６５は、リーク判定を実行するための条件が成立したことに応じて、ベントシャット弁３８およびバイパス弁３６を開き、蒸発燃料処理系５０を大気に開放する。該大気開放処理は、所定時間にわたって実行される。その後、ベントシャット弁３８を閉じる。
【００６７】
リーク判定部６６は、ベントシャット弁３８が閉じることに応じて、第１および第２のリーク判定を開始する。第１および第２のリーク判定は、所定時間の間隔で、第１のリーク判定部７１および第２のリーク判定部７２によりそれぞれ実行される。
【００６８】
リーク判定は、任意の既知の手法で実行することができる。本願発明の一実施形態によると、第１の判定部６１は、タンク内圧ＰＴＡＮＫの２回微分値に基づいて、蒸発燃料処理系５０にリークがあるかどうかを判定する。第２の判定部６２は、タンク内圧ＰＴＡＮＫと、該タンク内圧ＰＴＡＮＫの停滞時間との関係に基づいて、リークがあるかどうかを判定する。
【００６９】
図５〜図８を参照して、第１のリーク判定を説明する。
【００７０】
図５は、タンク内圧ＰＴＡＮＫの推移を示すタイムチャートの一例である。具体的には、図５は、大気開放処理の後にベントシャット弁３８を閉じた時刻ｔ０からのタンク内圧ＰＴＡＮＫの推移を示す。図５の（ａ）は、蒸発燃料処理系５０が正常な（すなわちリーク無しの）場合を示し、図５の（ｂ）は、蒸発燃料処理系５０にリークがある場合を示す。蒸発燃料処理系５０が正常なときは、タンク内圧ＰＴＡＮＫはほぼ直線的に増加する。蒸発燃料処理系５０にリークがあるときは、タンク内圧ＰＴＡＮＫは、比較的大きな変化率で上昇した後、徐々に変化率が減少する。したがって、タンク内圧ＰＴＡＮＫの変化率の推移を観測することにより、リークがあるかどうかを判定することができる。
【００７１】
この発明の一実施形態では、リークがあるかどうかを判定するための判定パラメータの算出に、タンク内圧ＰＴＡＮＫの２回微分値を用いる。蒸発燃料処理系５０が正常ならば、該タンク内圧ＰＴＡＮＫの２回微分値はほぼゼロとなる。蒸発燃料処理系５０にリークがあれば、該２回微分値は負の値となる。
【００７２】
図６の（ａ）は、一定時間毎にサンプリングされたタンク内圧ＰＴＡＮＫの実測値の一例を示す。今回のサンプリングサイクルで検出されたタンク内圧をＰＴＡＮＫ（ｋ）で表すと、タンク内圧の変化量ＤＰは、式（４）で表される。
【００７３】
ＤＰ＝ＰＴＡＮＫ（ｋ）−ＰＴＡＮＫ（ｋ−１）      （４）
図６の（ｂ）は、変化量ＤＰの推移を示すタイムチャートである。変化量ＤＰが徐々に減少する傾向があることが、示されている。本願発明の一実施形態では、最小二乗法により、変化量ＤＰの推移を示す回帰直線Ｌ１を求め、この傾きＥＤＤＰＬＳＱＡ（第１の傾きパラメータと呼ぶ）を算出する。第１の傾きパラメータは、タンク内圧ＰＴＡＮＫの２回微分値を表している。
【００７４】
燃料タンク９内で発生する蒸発燃料の量が多く、かつベントシャット弁３８を閉じた後の圧力変化率が大きいときは、蒸発燃料処理系５０が正常であっても、変化量ＤＰは徐々に減少する傾向を示すことが、実験的に確認されている。このような状態においてもリークがあるかどうかをより正確に判定するため、本願発明の一実施形態では、図７に示すように、ベントシャット弁３８を閉じた時刻ｔ０から、第１の判定時間ＴＭＤＤＰＴＬが経過するまでの期間における、タンク内圧の最大値ＤＰＥＯＭＡＸを検出する。蒸発燃料処理系５０にリークがあれば、最大値ＤＰＥＯＭＡＸに対する傾きＥＤＤＰＬＳＱＡの割合が大きくなる。該割合を調べることにより、リークがあるかどうかを判定することができる。該割合は式（５）により算出され、これを判定パラメータＥＯＤＤＰＪＵＤとする。
【００７５】
ＥＯＤＤＰＪＵＤ＝｜ＥＤＤＰＬＳＱＡ｜／ＤＰＥＯＭＡＸ    （５）
図８は、判定パラメータＥＯＤＤＰＪＵＤを縦軸とし、最大圧力ＤＰＥＯＭＡＸを横軸とした座標平面上に、蒸発燃料処理系５０にリークが無い（すなわち、正常）場合のデータを黒丸としてプロットし、リークがある場合のデータを白丸としてプロットしている。この図から明らかなように、しきい値ＤＤＰＪＵＤを適切な値に設定することにより、リークがあるかどうかを正確に判定することができる。
【００７６】
次に、図９を参照して、第２のリーク判定について説明する。蒸発燃料処理系５０に小さな孔（たとえば、直径が０．５ミリメートルのような孔）があり、タンク内圧ＰＴＡＮＫの変化速度が非常に小さいときには、第１の判定によりリークを検出することが困難なことがある。第２の判定によれば、このような小さな孔によるリークを検出することができる。
【００７７】
図９の（ａ）は、正常な場合のタンク内圧ＰＴＡＮＫ（後述するように、より正確には、タンク内圧ＰＴＡＮＫを平滑化した（ローパスフィルタを適用した）タンク内圧ＰＥＯＮＶＡＶＥ）の推移を示し、図９の（ｂ）は、リークがある場合のタンク内圧ＰＴＡＮＫ（後述するように、より正確には、タンク内圧ＰＴＡＮＫを平滑化した（ローパスフィルタを適用した）タンク内圧ＰＥＯＮＶＡＶＥ）の推移を示す。検出された圧力ＰＴＡＮＫが変化しない持続時間を、停滞時間ＴＳＴＹと定義する。図に示すＴ１、Ｔ２およびＴ３が、停滞時間ＴＳＴＹに相当する。停滞時間ＴＳＴＹとタンク内圧ＰＴＡＮＫとの間の関係をプロットすると、正常な場合については図９の（ｃ）に示されるような相関特性が得られ、リークがある場合については図９の（ｄ）に示されるような相関特性が得られる。それぞれの図における回帰直線Ｌ１１およびＬ１２の傾きに着目すると、回帰直線Ｌ１１の傾きＡＬ１１は、正の比較的小さな値であり、回帰直線Ｌ１２の傾きＡＬ１２は、絶対値が大きな負の値となることがわかる。本願発明の一実施形態では、タンク内圧ＰＴＡＮＫと停滞時間ＴＳＴＹとの相関特性を表す回帰直線の傾き（第２の傾きパラメータＥＯＤＴＭＪＵＤと呼ぶ）により、リークを判定する。
【００７８】
図１０は、燃料タンクが傾斜している状態を検出するプロセスのフローチャートである。この実施例では、エンジンが停止した時に燃料タンクが傾いていることが検出されたならば、第１および第２の系が分離していると判断する。該プロセスは、所定の時間間隔（たとえば、１秒）で実行される。
【００７９】
ステップＳ１において、車両が傾斜地を走行している時に値１が設定される傾斜地走行フラグＶＳＬＯＰＥを調べる。該フラグの値は、傾斜地走行判断のプロセス（図１１）でセットされる。フラグＶＳＬＯＰＥの値がゼロならば、車両が平地を走行していることを示し、ステップＳ２に進む。
【００８０】
ステップＳ２において、現在の燃料消費量ＵＳＥＤＧＡＳを、基準値ＵＧＡＳＦＬＳに設定する。ステップＳ３において、第１の燃料レベルＦＬＥＶＥＬＦを算出する。車両が平地を走行している状態なので、第１の燃料レベルＦＬＥＶＥＬＦは、上記の式（１）に従って算出される。ステップＳ４において、第１の燃料レベルの前回値ＦＬＥＶＥＬＦ１に、ステップＳ３で算出された第１の燃料レベルＦＬＥＶＥＬＦを設定する。
【００８１】
ステップＳ１において車両が傾斜地を走行していると判断されたならば、ステップＳ５およびＳ６において、第１の燃料レベルＦＬＥＶＥＬＦを推定する。ステップＳ５において、現在の燃料消費量ＵＳＥＤＧＡＳから、ステップＳ２で設定された基準値ＵＧＡＳＦＬＳを減算し、第２の燃料消費量ＵＧＡＳＦＬＶＬを算出する。第２の燃料消費量ＵＧＡＳＦＬＶＬは、ＦＬＥＶＥＬＦ１が算出された時点から消費した燃料の量を示す。ステップＳ６において、上記の式（２）に従い、第１の燃料レベルＦＬＥＶＥＬＦを算出する。
【００８２】
ステップＳ８において、車速ＶＰがゼロかどうかを調べる。車速ＶＰがゼロでなければ、すなわち車両が走行しているときは、ステップＳ１５に進む。ステップＳ１５において、エンジンが停車した時に燃料タンクが傾斜していれば値１に設定される傾斜フラグＦＥＯＳＬＯＰＥをゼロに設定する。ステップＳ１６において、エンジンが停止した時からの経過時間を計測するダウンタイマＴＲＦＤＣＤＹの値に、所定値ＴＭＲＦＤＣＤＹ（たとえば、５秒）をセットし、ステップＳ１７に進む。
【００８３】
エンジンが停止した後にこのルーチンに入ると、ステップＳ８の判断がＹｅｓになる。ステップＳ９に進み、ダウンタイマＴＲＦＤＣＤＹの値がゼロかどうかを調べる。最初にこのステップを実行する時の答えはＮｏである。これは、エンジンが停止してから、所定時間、たとえば５秒が経過していないことを示す。
【００８４】
ステップＳ１０において、第１の燃料レベルＦＬＥＶＥＬＦから第２の燃料レベルＦＬＥＶＥＬＲを減算した値が、所定値ＤＦＬＳＬＰ以上かどうかを判断する。ＦＬＥＶＥＬＦ−ＦＬＥＶＥＬＲ≧ＤＦＬＳＬＰならば、エンジンが停止した時に、図３に示されるように、矢印Ａ側が高くなるよう燃料タンク９が傾いていることを示す。したがって、ステップＳ１１において傾斜フラグＦＥＯＳＬＯＰＥを値１に設定し、ステップＳ１２に進む。ステップＳ１０の答えがＮｏならば、燃料タンクが傾いていないことを示す。傾斜フラグＦＥＳＬＯＰＥの値を１に設定することなく、ステップＳ１２に進む。
【００８５】
傾斜フラグＦＥＯＳＬＯＰＥは、燃料タンクの傾斜によって、第１の系と第２の系が分離されている時に値１が設定される点に注意されたい。図３において、矢印Ｂ側が高くなるように燃料タンク９が傾くと、燃料レベルセンサ１０の検出値ＦＬＥＶＥＬは、実際の燃料レベルよりも高い値を示す。しかしながら、このような傾斜においては、フィラーチューブ５１の先端５５およびリターン通路５３の先端５６は液没しない。液没が生じないので、リーク判定を行うことができる。したがって、（ＦＬＥＶＥＬＦ−ＦＬＥＶＥＬＲ）が所定値ＤＦＬＳＬＰより小さいときは（たとえ、（ＦＬＥＶＥＬＦ−ＦＬＥＶＥＬＲ）の絶対値が該所定値ＤＦＬＳＬＰより大きくても）、傾斜フラグＦＥＯＳＬＯＰＥに値１を設定しない。
【００８６】
車両の機種によっては、燃料レベルセンサ１０が、図３の矢印Ｂ側（たとえば、リターン通路の先端５６付近）に設けられることがある。この場合には、図３に示されるように燃料タンク９が傾斜すると、第２の燃料レベルＦＬＥＶＥＬＲは、実際の燃料レベルよりも高い値を示す。したがって、第２の燃料レベルＦＬＥＶＥＬＲから第１の燃料レベルＦＬＥＶＥＬＦを減算した値が、所定値ＤＦＬＳＬＰ以上ならば、傾斜フラグＦＥＳＬＯＰＥに値１を設定する。
【００８７】
このように、傾斜フラグＦＥＯＳＬＯＰＥに値１を設定するかどうかは、燃料レベルセンサ１０と、第２の系を構成する要素（フィラーチューブ５１やリターン通路５３）との相対位置に従って変わる点に注意されたい。
【００８８】
ステップＳ１２において、現在の第２の燃料レベルＦＬＥＶＥＬＲを、ＦＬＶＬＲＤＣ１として保存する。
【００８９】
ステップＳ９の答えがＹｅｓならば、エンジンが停止してから所定時間が経過していることを示す。ステップＳ１３において、給油中かどうかを判断する。具体的には、第２の燃料レベルの今回値ＦＬＥＶＥＬＲと、ステップＳ１２で保存された第２の燃料レベルの前回値ＦＬＦＬＲＤＣ１との差が、所定値ＤＦＬＲＦＬＤＣ以上かどうかを判断する。第２の燃料レベルに変化が生じていれば、給油中であると判断することができる。したがって、ステップＳ１３の答えがＹｅｓならば、給油フラグＦＲＦＵＥＬＤＣを値１に設定し、給油中であることを示す。ステップＳ１３の判断がＮｏならば、給油中でないことを示す。
【００９０】
ステップＳ１７において、第２の燃料レベルＦＬＥＶＥＬＲを、上記の式（３）に従い算出する。
【００９１】
こうして、ステップＳ１０およびＳ１１に示されるように、第１の燃料レベルと第２の燃料レベルとの差に基づいて、第１の系と第２の系の分離状態を生じさせるような燃料タンクの傾斜を検出することができる。
【００９２】
車両が傾斜地を走行しているかどうかの判断は、任意の既知の手法を用いて実施されることができる。この実施例では、本願の出願人による、特許第２９５９９３７号公報に示される手法を用いる。ここで、簡単にその手法を説明する。
【００９３】
図１１は、車両が傾斜地を走行しているかどうかを判断するプロセスのフローチャートである。このプロセスは、所定の時間間隔（たとえば、１秒）で実行される。
【００９４】
ステップＳ２１において、車両が平地を走行するときに期待される加速度ＧＧＨ（予想加速度と呼ぶ）を算出する。この実施例では、予想加速度ＧＧＨは、選択された変速比が３速であることを前提として算出される。予想加速度ＧＧＨは、検出された車速とスロットル弁の開度に基づいて算出されることができる。たとえば、車速およびスロットル弁の開度に基づく加速度を、予めマップに規定し、該マップをメモリに記憶する。プロセスは、該マップを参照することにより、予想加速度ＧＧＨを求めることができる。
【００９５】
ステップＳ２２において、変速比が３速である場合の実加速度ＨＤＥＬＶを算出する。実加速度ＨＤＥＬＶは、検出された車速の変化量ΔＶに補正係数を乗算することにより算出されることができる。該補正係数は、検出された車速の変化量ΔＶを、３速に相当する値に換算するための係数である。
【００９６】
ステップＳ２３において、実加速度ＨＤＥＬＶから予想加速度ＧＧＨを減算し、降板方向の差分ＰＫＵを算出する。車両が坂を下っているときは、予想加速度よりも実加速度が大きくなる。したがって、車両が実際に坂を下っているならば、差分ＰＫＵは正の値を持つ。
【００９７】
ステップＳ２４において、予想加速度ＧＧＨから実加速度ＨＤＥＬＶを減算し、登板方向の差分ＰＮＯを算出する。車両が坂を登っているときは、実加速度よりも予想加速度が大きくなる。したがって、車両が実際に坂を登っているならば、差分ＰＮＯは正の値を持つ。
【００９８】
ステップＳ２５において、差分ＰＫＵおよびＰＮＯについて、重み付け平均値ＰＫＵＡＶＥおよびＰＮＯＡＶＥをそれぞれ算出する。
【００９９】
ステップＳ２６およびＳ２７において、降板用平均値ＰＫＵＡＶＥが所定値より小さく、かつ登板用平均値ＰＮＯＡＶＥが所定値より小さければ、これは、実加速度と予想加速度との差がそれほど大きくないことを示す。すなわち、車両が平地を走行していると判断することができる。ステップＳ２８において、傾斜地走行フラグＶＳＬＯＰＥにゼロを設定する。
【０１００】
降板用平均値ＰＫＵＡＶＥが所定値以上ならば、車両が坂を下っていることを示し、登板用平均値ＰＮＯＡＶＥが所定値以上ならば、車両が坂を上っていることを示す。ステップＳ２９において、車両が傾斜地を走行していることを示すよう、傾斜地走行フラグＶＳＬＯＰＥに値１を設定する。
【０１０１】
代替的に、車速ＶＰに基づいて、車両が傾斜地を走行しているかどうかを判断してもよい。発明者の知見によれば、所定時間以上にわたって、所定の速度（たとえば、４０キロメートル／時）以上に傾斜地を走行することは、ほとんど行われない。したがって、検出された車速が該所定の速度より小さければ、傾斜地を走行している可能性があると判断して、第１の燃料レベルを推定する（すなわち、図１０のステップＳ５に進む）ようにしてもよい。
【０１０２】
図１２は、リーク判定を実行するための条件が成立するかどうかを判断するプロセスのフローチャートである。このプロセスでは、該条件が成立することに応じて、許可フラグＦＭＣＮＤＥＯＮＶが値１に設定される。このプロセスは、所定時間（たとえば、８０ミリ秒）毎に実行される。
【０１０３】
ステップＳ３１において、許可フラグＦＭＣＮＤＥＯＮＶの値を調べる。ＦＭＣＮＤＥＯＮＶ＝０ならば、許可フラグＦＭＣＮＤＥＯＮＶの値をゼロに維持し（Ｓ３２）、このプロセスを終了する。
【０１０４】
ステップＳ３３において、リーク判定が終了するときに値１にセットされる判定終了フラグＦＤＯＮＥの値を調べる。ＦＤＯＮＥ＝１ならば、リーク判定が既に終了しているので、ステップＳ３２に進む。
【０１０５】
ＦＤＯＮＥ＝０ならば、ステップＳ３４において、エンジンが停止しているか、すなわちイグニションスイッチ２１がオフされているかどうかを調べる。エンジンが作動中であるときは、許可フラグＦＭＣＮＤＥＯＮＶの値をゼロにし（Ｓ３２）、このプロセスを終了する。
【０１０６】
エンジンが停止するとステップＳ３５に進み、第１の燃料レベルＦＬＥＶＥＬＦが所定値ＦＬＶＳＬＰＬ以上かどうかを判断する。所定値ＦＬＶＳＬＰＬは、たとえば、燃料タンクが満タンである時の燃料の量の８割の値に設定される。ステップＳ３５の答えがＹｅｓならば、ステップＳ３６において傾斜フラグＦＥＯＳＬＯＰＥの値を調べる。ステップＳ３５およびＳ３６の答えがＹｅｓならば、エンジンが停止した時に、燃料タンクに残存する燃料の量が所定値以上であり、かつ燃料タンクが傾斜していることを示す。これは、前述したように、第１の系と第２の系とが分離している状態を示す。このような分離状態下では、第２の系のリークを検出することはできない。したがって、ステップＳ３２に進み、許可フラグＦＭＣＮＤＥＯＮＶをゼロにセットしてリーク判定を禁止する。
【０１０７】
ステップＳ３５の答えまたはＳ３６の答えがＮｏならば、ステップＳ３７において、給油中であるときに値１がセットされる給油フラグＦＲＦＵＥＬＤＣを調べる。給油中である時は、リーク判定を正確に実行することができないので、ステップＳ３２に進む。
【０１０８】
給油中でなければ、ステップＳ３８において許可フラグＦＭＣＮＤＥＯＮＶに値１をセットし、リーク判定を実行するための条件が成立したことを示す。
【０１０９】
図１３は、該タンク内圧ＰＥＯＮＶＡＶＥと、該停滞タンク内圧ＰＥＯＡＶＤＴＭを算出するプロセスのフローチャートを示す。このプロセスは、エンジンが停止した後、所定時間（たとえば、８０ミリ秒）毎に実行される。
【０１１０】
ステップＳ５２において、許可フラグＦＭＣＮＤＥＯＮＶの値がゼロならば、リーク判定を実行するための条件が成立していないことを示す。リーク判定の実行条件が成立していないときは、ダウンカウントタイマＴＥＯＤＬＹを所定時間ＴＥＯＤＬＹ０（たとえば、９０秒）に設定してスタートする（Ｓ５３）。タイマＴＥＯＤＬＹは、大気開放処理期間を計測するタイマである。
【０１１１】
ステップＳ５４において、実行フラグＦＥＯＮＶＥＸＥをゼロに設定する。さらに、バイパス弁３６およびベントシャット弁３８を開弁状態に維持し、蒸発燃料処理系５０を大気に開放する。フラグＦＶＳＶＣＰＣＴＬをゼロに設定して、ベントシャット弁３８が開いていることを示す。
【０１１２】
ステップＳ５２においてＦＭＣＮＤＥＯＮＶ＝１ならば、リーク判定を実行する条件が成立していることを示す。ステップＳ５５において、実行フラグＦＥＯＮＶＥＸＥの値が１かどうかを判断する。最初にこのステップを実行する時は答えがＮｏであるので、ステップＳ５６に進み、ステップＳ５３でスタートしたタイマＴＥＯＤＬＹの値がゼロかどうかを判断する。最初にこのステップを実行する時は答えがＮｏであるので、フラグＦＶＳＶＣＰＴＣＬをゼロに設定し（Ｓ６１）、ベントシャット弁３８を開弁状態に維持する。
【０１１３】
ステップＳ５６においてＴＥＯＤＬＹ＝０となると、ステップＳ５７に進み、現在のタンク内圧ＰＴＡＮＫを、開始圧ＰＥＯＴＡＮＫ０として記憶する。このタンク内圧ＰＴＡＮＫは、大気開放処理により、ほぼ大気圧を示す。
【０１１４】
ステップＳ５８において、修正タンク内圧ＰＥＯＴＡＮＫ、タンク内圧ＰＥＯＮＶＡＶＥ、比較パラメータの今回値ＰＥＯＤＴＭ、比較パラメータの前回値ＰＥＯＤＴＭＺ、停滞タンク内圧の今回値ＰＥＯＡＶＤＴＭ、停滞タンク内圧の前回値ＰＥＯＡＶＤＴＭＺを、ゼロに設定する。
【０１１５】
ステップＳ５９において、実行フラグＦＥＯＮＶＥＸＥを値１に設定し、リーク判定の実行を開始する。ステップＳ６０では、ダウンカウントタイマＴＥＯＤＴＭを、所定時間ＴＭＥＯＤＴＭに設定してスタートさせる。さらに、アップカウントタイマＴＥＯＮＶＴＬをゼロに設定して、ステップＳ６１に進む。タイマＴＥＯＮＶＴＬは、リーク判定を開始してからの経過時間を計測するタイマである。
【０１１６】
ステップＳ５９において実行フラグＦＥＯＮＶＥＸＥが値１に設定された後にこのルーチンに入ると、ステップＳ５５の答えがＹｅｓになる。ステップＳ６２に進み、現在のタンク内圧ＰＴＡＮＫから開始圧ＰＥＯＴＡＮＫ０を減算することにより、修正タンク内圧ＰＥＯＴＡＮＫを算出する。ステップＳ６３において、式（６）により、タンク内圧ＰＥＯＮＶＡＶＥを算出する。
【０１１７】
ＰＥＯＮＶＡＶＥの今回値＝ＣＰＴＡＶＥ×ＰＥＯＴＡＮＫ      
＋（１−ＣＰＴＡＶＥ）×ＰＥＯＮＶＡＶＥの前回値    （６）
ここで、ＣＰＴＡＶＥはゼロから１の間の値に設定される平滑化（なまし）係数である。
【０１１８】
ステップＳ６４において、比較パラメータの前回値ＰＥＯＤＴＭＺに、今回値ＰＥＯＤＴＭを設定する。ステップＳ６５において、比較パラメータの今回値ＰＥＯＤＴＭに、タンク内圧ＰＥＯＮＶＡＶＥを設定する。ステップＳ６６では、比較パラメータの今回値と前回値が等しいかどうかを判断する。この答えがＮｏならば、タンク内圧ＰＥＯＮＶＡＶＥが変化していることを示す。ステップＳ６７において、ダウンカウントタイマＴＥＯＤＴＭに所定時間ＴＭＥＯＤＴＭを設定してスタートさせる。ステップＳ７１に進み、フラグＦＶＳＶＣＰＴＣＬを値１に設定し、ベントシャット弁３８を閉じる。
【０１１９】
ステップＳ６６の答えがＹｅｓであれば、タンク内圧ＰＥＯＮＶＡＶＥが停滞していることを示す。ステップＳ６８において、タイマＴＥＯＤＴＭの値がゼロかどうかを判断する。最初にこのステップを実行する時は答えがＮｏであるので、ステップＳ７１に進む。ステップＳ６８の答えがＹｅｓになると、停滞タンク内圧の前回値ＰＥＯＡＶＤＴＭＺに今回値ＰＥＯＡＶＤＴＭを設定し（Ｓ６９）、今回値ＰＥＯＡＶＤＴＭに、タンク内圧ＰＥＯＮＶＡＶＥを設定する（Ｓ７０）。その後、ステップＳ７１に進む。
【０１２０】
このように、リーク判定の実行条件が成立したときに、大気開放処理が実行され（Ｓ５４）、その後ベントシャット弁３８が閉じられる（Ｓ７１）。リーク判定を実行している間は、タンク内圧ＰＥＯＮＶＡＶＥおよび停滞タンク内圧ＰＥＯＡＶＤＴＭの演算が実行される。
【０１２１】
図１４および図１５は、第１のリーク判定のプロセスのフローチャートである。このプロセスは、所定時間（例えば、１秒）毎に実行される。
【０１２２】
ステップＳ８０において、フラグＦＶＳＶＣＰＴＣＬの値が調べる。前述したように、該フラグは、ベントシャット弁３８が閉じている時に値１を持つ。ＦＶＳＶＣＰＴＣＬ＝０ならば、現在のタンク内圧ＰＥＯＮＶＡＶＥを、初期圧ＰＥＯＮＶＡＶに設定する（Ｓ８１）。ステップＳ８２において、第１の傾きパラメータＥＤＤＰＬＳＱＡの算出に用いられる各種パラメータの初期化を行う。第１の傾きパラメータＥＤＤＰＬＳＱＡは、図６の（ｂ）を参照して説明した、回帰直線Ｌ１の傾きを示す。
【０１２３】
ステップＳ８３において、最大圧力ＤＰＥＯＭＡＸをゼロに設定する。ステップＳ８４において、第１の漏れ判定フラグＦＤＤＰＬＫ、保留フラグＦＤＤＰＪＤＨＤ、第１の判定終了フラグＦＥＯＮＶＤＤＰＪＵＤを、すべてゼロに設定する。第１の漏れ判定フラグＦＤＤＰＬＫは、リークがあると判定されたときに値１に設定されるフラグである。ステップＳ８５において、アップカウントタイマＴＤＤＰＴＬの値をゼロに設定する。
【０１２４】
ステップＳ８０においてＦＶＳＶＣＰＴＣＬ＝１ならば、ベントシャット弁３８は閉じている。ステップＳ８６において、タイマＴＤＤＰＴＬの値が、第１の判定時間ＴＭＤＤＰＴＬ以上かどうかを判断する。前述したように、第１の判定時間ＴＭＤＤＰＴＬは、第１のリーク判定に必要な時間である。最初にこのステップを実行する時は答えがＮｏであるので、ステップＳ８７〜Ｓ９５を実行し、第１の傾きパラメータＥＤＤＰＬＳＱＡおよび最大圧力ＤＰＥＯＭＡＸを算出する。
【０１２５】
ステップＳ８７において、時間パラメータＣＥＤＤＰＣＡＬを１だけインクリメントする。ステップＳ８８において、タンク内圧ＰＥＯＮＶＡＶＥから初期圧ＰＥＯＮＶＡＶ０を減算することにより、圧力変化量ＤＰＥＯＮＶを算出する。
【０１２６】
ステップ８９において、式（７）により、時間パラメータＣＥＤＤＰＣＡＬの積算値ＥＳＩＧＭＡＸを算出する。
【０１２７】
ＥＳＩＧＭＡＸの今回値＝ＥＳＩＧＭＡＸの前回値＋ＣＥＤＤＰＣＡＬ  （７）
ステップＳ９０において、式（８）により、時間パラメータＣＥＤＤＰＣＡＬを２乗した値の積算値ＥＳＩＧＭＡＸ２を算出する。
【０１２８】
ＥＳＩＧＭＡＸ２の今回値＝ＥＳＩＧＭＡＸ２の前回値
＋ＣＥＤＤＰＣＡＬ×ＣＥＤＤＰＣＡＬ            （８）
ステップＳ９１において、式（９）により、時間パラメータＣＥＤＤＰＣＡＬと、圧力変化量ＤＰＥＯＮＶの積の積算値ＥＳＩＧＭＡＸＹを算出する。
【０１２９】
ＥＳＩＧＭＡＸＹの今回値＝ＥＳＩＧＭＡＸＹの前回値
＋ＣＥＤＤＰＣＡＬ×ＤＰＥＯＮＶ          （９）
ステップＳ９２において、式（１０）により、圧力変化量ＤＰＥＯＮＶの積算値ＥＳＩＧＭＡＹを算出する。
【０１３０】
ＥＳＩＧＭＡＹの今回値＝ＥＳＩＧＭＡＹの前回値＋ＤＰＥＯＮＶ    （１０）
ステップＳ９３において、ステップＳ８７、Ｓ８９〜Ｓ９２で算出される時間パラメータＣＥＤＤＰＣＡＬ、積算値ＥＳＩＧＭＡＸ、ＥＳＩＧＭＡＸ２、ＥＳＩＧＭＡＸＹ、およびＥＳＩＧＭＡＹを用い、式（１１）に従って第１の傾きパラメータＥＤＤＰＬＳＱＡを算出する。
【数１】
2005264914.tif 000003
【０１３１】
ステップＳ９４において、初期圧ＰＥＯＮＶＡＶ０に、現在のタンク内圧ＰＥＯＮＶＡＶＥを設定する。ステップＳ９５において、最大圧力ＤＰＥＯＭＡＸと、タンク内圧ＰＥＯＮＶＡＶＥの大きい方を選択し、最大圧力ＤＰＥＯＭＡＸを求める。
【０１３２】
ステップＳ８６においてタイマＴＤＤＰＴＬの値が第１の判定時間ＴＭＤＤＰＴＬに達すると、ステップＳ１０１（図１５）に進み、最大圧力ＤＰＥＯＭＡＸが、所定圧ＰＤＤＰＭＩＮ以上であるかどうかを判断する。その答えがＮｏであるならば、タンク内圧ＰＴＡＮＫの上昇が不十分であることを示す。この場合、正確な判定はできないので、第１の判定終了フラグＦＥＯＮＶＤＤＰＪＵＤをゼロに設定する（Ｓ１１２）。
【０１３３】
ステップＳ１０１においてＤＰＥＯＭＡＸ≧ＰＤＤＰＭＩＮならば、前述した式（５）により判定パラメータＥＯＤＤＰＪＵＤを算出する（Ｓ１０２）。
【０１３４】
ステップＳ１０３において、大気圧ＰＡに基づいて図１６に示すＫＥＯＰ１ＪＤＸテーブルを参照し、補正係数ＫＥＯＰ１ＪＤＸを算出する。ＫＥＯＰ１ＪＤＸテーブルは、大気圧ＰＡが低下するほど、補正係数ＫＥＯＰ１ＪＤＸが減少するように設定されている。図のＰＡ１、ＰＡ２およびＰＡ３は、たとえば、７７ｋＰａ（５８０ｍｍＨｇ）、８４ｋＰａ（６３０ｍｍＨｇ）、および９９ｋＰａ（７４０ｍｍＨｇ）に設定され、ＫＸ１およびＫＸ２は、たとえば、それぞれ０．７５および０．８４に設定される。
【０１３５】
ステップＳ１０４およびＳ１０５において、補正係数ＫＥＯＰ１ＪＤＸを用い、式（１２）および式（１３）に従ってＯＫ判定用しきい値ＤＤＰＪＵＤＯＫおよびＮＧ判定用しきい値ＤＤＰＪＵＤＮＧを算出する。
【０１３６】
ＤＤＰＪＵＤＯＫ＝ＥＯＤＤＰＪＤＯＫ×ＫＥＯＰ１ＪＤＸ    （１２）
ＤＤＰＪＵＤＮＧ＝ＥＯＤＤＰＪＤＮＧ×ＫＥＯＰ１ＪＤＸ    （１３）
ここで、ＥＯＤＤＰＪＤＯＫおよびＥＯＤＤＰＪＤＮＧは、それぞれ、ＯＫ判定用のしきい値およびＮＧ判定用の所定のしきい値であり、前者は、後者より小さい値に設定される。
【０１３７】
ステップＳ１０６において、判定パラメータＥＯＤＤＰＪＵＤが、ＯＫ判定用しきい値ＤＤＰＪＵＤＯＫ以下かどうかを判断する。その答えがＹｅｓならば、蒸発燃料処理系５０は正常であると判定し、第１の漏れ判定フラグＦＤＤＰＬＫをゼロに設定する（Ｓ１０８）。
【０１３８】
ステップＳ１０６においてＥＯＤＤＰＪＵＤ＞ＤＤＰＪＵＤＯＫならば、判定パラメータＥＯＤＤＰＪＵＤがＮＧ判定用のしきい値ＤＤＰＪＵＤＮＧより大きいかどうかを判断する（Ｓ１０７）。この答えがＹｅｓならば、蒸発燃料処理系５０にリークがあると判定し、第１の漏れ判定フラグＦＤＤＰＬＫを値１に設定する（Ｓ１０９）。ステップＳ１０７の答えがＮｏならば、すなわちＤＤＰＪＵＤＯＫ＜ＥＯＤＤＰＪＵＤ≦ＤＤＰＪＵＤＮＧならば、判定を保留し、保留フラグＦＤＤＰＪＤＨＤを値１に設定する（Ｓ１１０）。
【０１３９】
ステップＳ１１１において、第１の判定終了フラグＦＥＯＮＶＤＤＰＪＵＤを値１に設定し、第１の判定が終了したことを示す。
【０１４０】
第１の判定手法に従えば、タンク内圧ＰＥＯＮＶＡＶＥの時間についての２回微分値に相当する第１の傾きパラメータＥＤＤＰＬＳＱＡが算出される。さらに、第１の傾きパラメータＥＤＤＰＬＳＱＡを最大圧力ＤＰＥＯＭＡＸで除算することにより、判定パラメータＥＯＤＤＪＵＤが算出される。判定パラメータがＯＫ判定用しきい値ＤＤＰＪＵＤＯＫ以下ならば、蒸発燃料処理系５０は正常と判定され、ＮＧ判定用しきい値ＤＤＰＪＵＤＮＧより大きければ、リークがあると判定される。こうして、図８を参照して説明した第１の判定が実現される。
【０１４１】
図１７は、第２のリーク判定の実行条件が成立するかどうかを判断するプロセスのフローチャートである。このプロセスは、エンジンが停止した後、所定時間（例えば、１秒）毎に実施される。
【０１４２】
ステップＳ１２１では、ベントシャット弁３８が閉じている時に値１がセットされるフラグＦＶＳＶＣＰＴＣＬの値を調べる。ＦＶＳＶＣＰＴＣＬ＝０ならば、ステップＳ１２５に進み、許可フラグＦＥＯＤＴＭＥＸにゼロを設定し、第２のリーク判定の実施を禁止する。
【０１４３】
ステップＳ１２１においてＦＶＳＶＣＰＴＣＬ＝１ならば、ステップＳ１２２に進み、
アップカウントタイマＴＥＯＮＶＴＬの値が、リーク判定に許容される所定時間ＴＢＡＴＴＯＫより小さいかどうかを判断する。該許容時間は、たとえば、バッテリの充電状態に応じて設定されることができる。アップカウントタイマＴＥＯＮＶＴＬは、実行フラグＦＥＯＮＶＥＸＥが値１に設定された時に起動され（図１３のＳ６０）、リーク判定の実行が開始されてからの経過時間を計測する。
【０１４４】
ＴＥＯＮＶＴＬ≧ＴＢＡＴＴＯＫならば、第２のリーク判定の実行を開始してからの経過時間が、許容される該所定時間を超えていることを示す。ステップＳ１２４に進み、中止フラグＦＥＯＮＶＴＭＵＰを値１に設定して第２のリーク判定を中止する。第２のリーク判定が中止されたので、ステップＳ１２５において、許可フラグＦＥＯＤＴＭＥＸにゼロを設定する。
【０１４５】
ステップＳ１２２において、ＴＥＯＮＶＴＬ＜ＴＢＡＴＴＯＫならば、ステップＳ１２３において、最大実行時間ＴＭＥＯＭＡＸ（所定値であり、例えば、２４００秒）と、経過時間ＴＥＯＮＶＴＬとを比較する。ＴＥＯＮＶＴＬ≧ＴＭＥＯＭＡＸならば、第２のリーク判定を実行することのできる最大実行時間が経過したことを示す。ステップＳ１２４に進み、中止フラグＦＥＯＮＶＴＭＵＰを値１に設定して第２の判定を中止する。第２のリーク判定が中止されたので、ステップＳ１２５において、許可フラグＦＥＯＤＴＭＥＸにゼロを設定する。
【０１４６】
ステップＳ１２３においてＴＥＯＮＶＴＬ＜ＴＭＥＯＭＡＸならば、ステップＳ１２６に進み、停滞タンク内圧の今回値ＰＥＯＡＶＤＴＭが第１の所定圧Ｐ０以上で、かつ第２の所定圧Ｐ１以下であるかどうかを判断する。第１の所定圧Ｐ０は、例えば大気圧に等しい値に設定され、第２の所定圧Ｐ１は、第１の所定圧Ｐ０よりわずかに高い値、たとえば第１の所定圧Ｐ０より０．１３３ｋＰａ（１ｍｍＨｇ）高い値に設定される。
【０１４７】
ステップＳ１２６の答えがＹｅｓであるならば、停滞タンク内圧の今回値ＰＥＯＡＶＤＴＭが大気圧近傍にあることを示す。ステップＳ１３０に進み、停滞タンク内圧の前回値ＰＥＯＡＶＤＴＭＺが第１の所定圧Ｐ０より低いかどうかを判断する。ＰＥＯＡＶＤＴＭＺ＜Ｐ０であるならば、停滞タンク内圧が増加していることを示す。ステップＳ１３２に進み、許可フラグＦＥＯＤＴＭＥＸにゼロを設定する。
【０１４８】
一方、ステップＳ１３０においてＰＥＯＡＶＴＭＺ≧Ｐ０ならば、停滞タンク内圧が停滞している、または減少していることを示す。ステップＳ１３１において、許可フラグＦＥＯＤＭＥＸを値１に設定する。
【０１４９】
ステップＳ１２６の答えがＮｏであるならば、すなわちＰＥＯＡＶＤＴＭ＜Ｐ０またはＰＥＯＡＶＤＴＭ＞Ｐ１であるならば、停滞タンク内圧の今回値ＰＥＯＡＶＤＴＭが前回値ＰＥＯＡＶＤＴＭＺと等しいかどうかを判断する（Ｓ１２７）。両者が等しければ、停滞タンク内圧が変化していないことを示し、該プロセスを終了する。
【０１５０】
ステップＳ１２７の答えがＮｏならば、停滞タンク内圧の今回値ＰＥＯＡＶＤＴＭが前回値ＰＥＯＡＶＤＴＭＺより大きいかどうかを判断する（Ｓ１２８）。この答えがＹｅｓであるならば、停滞タンク内圧が増加したことを示し、許可フラグＦＥＯＤＴＭＥＸにゼロを設定する（Ｓ１３２）。
【０１５１】
ステップＳ１２８の答えがＮｏであるならば、停滞タンク内圧が減少したことを示し、ステップＳ１２９に進んで許可フラグＦＥＯＤＴＭＥＸを値１に設定する。
【０１５２】
こうして、停滞タンク内圧ＰＥＯＡＶＤＴＭが増加している時は、許可フラグＦＥＯＤＴＭＥＸはゼロに設定され、減少している時は、値１に設定される。また、停滞タンク内圧が大気圧近傍（Ｐ０からＰ１の間）に停滞しているときは、許可フラグＦＥＯＤＴＭＥＸは常に値１に設定される。
【０１５３】
このように、第２のリーク判定は、停滞タンク内圧が、大気圧近傍に停滞しているときと、減少しているときとに実行される。
【０１５４】
図１８および図１９は、第２のリーク判定を実行するプロセスのフローチャートである。このプロセスは、所定時間（例えば１秒）毎に実行される。
【０１５５】
ステップＳ１４１では、ベントシャット弁３８が閉じている時に値１が設定されるフラグＦＶＳＶＣＰＴＣＬを調べる。ＦＶＳＶＣＰＴＣＬ＝０ならば、ステップＳ１４５（図１９）に進み、最小圧力の今回値ＤＰＥＯＭＩＮおよび前回値ＤＰＥＯＭＩＮＺを、現在の停滞タンク内圧ＰＥＯＡＶＤＴＭに設定する。ステップＳ１４６において、タンク内圧の停滞時間を計測するアップカウントタイマＴＤＴＭＳＴＹの値をゼロに設定する。
【０１５６】
ステップＳ１４７において、図９の（ｃ）および（ｄ）に示す回帰直線Ｌ１１およびＬ１２の傾きに相当する第２の傾きパラメータＥＯＤＴＭＪＵＤを算出するための各種パラメータを初期化する。
【０１５７】
ステップＳ１４８では、第２の漏れ判定フラグＦＤＴＭＬＫ、判定不可フラグＦＤＴＭＤＩＳＢＬ、第２の判定終了フラグＦＥＯＮＶＤＴＭＪＵＤ、および圧力変化フラグＦＣＨＧのすべてをゼロに設定する。第２の判定フラグＦＤＴＭＬＫは、リークがあると判定されたときに値１に設定されるフラグである。
【０１５８】
ステップＳ１４１の答えがＹｅｓならば、ベントシャット弁３８が閉じていることを示す。ステップＳ１４２において、中止フラグＦＥＯＮＶＴＭＵＰの値が１かどうかを調べる。この答えがＹｅｓならば、判定不可フラグＦＤＴＭＤＩＳＢＬを値１に設定し（Ｓ１４３）、該プロセスを終了する。
【０１５９】
ステップＳ１４２においてＦＥＯＮＶＴＭＵＰ＝０ならば、ステップＳ１４４に進み、許可フラグＦＥＯＤＴＭＥＸの値が１かどうかを調べる。この答えがＮｏであるならば、ステップＳ１４５に進み、第２のリーク判定の実施を禁止する。
【０１６０】
ステップＳ１４４においてＦＥＯＤＴＭＥＸ＝１ならば、ステップＳ１４９に進み、最小圧力の前回値ＤＰＥＯＭＩＮＺに、今回値ＤＰＥＯＭＩＮを設定する。ステップＳ１５０において、最小圧力ＤＰＥＯＭＩＮと、停滞タンク内圧ＰＥＯＡＶＤＴＭのうちの小さい方を選択し、最小圧力ＤＰＥＯＭＩＮに設定する。
【０１６１】
ステップＳ１５１において、最小圧力の今回値ＤＰＥＯＭＩＮが前回値ＤＰＥＯＭＩＮＺと等しいかどうかを判断する。この答えがＹｅｓならば、タイマＴＤＴＭＳＴＹの値が、所定値ＴＤＴＭＬＫ以上かどうかを判断する（Ｓ１５２）。最初にこのステップを実行する時は答えがＮｏであるので、ステップＳ１５３に進み、停滞時間パラメータＣＴＭＳＴＹを１だけインクリメントする。停滞時間パラメータＣＴＭＳＴＹは、停滞時間ＴＳＴＹ（図９）に対応するパラメータである。ステップＳ１５４において、圧力変化フラグＦＣＨＧが１かどうかを判断する。最初にこのステップを実行する時は答えがＮｏとなるので、ステップＳ１６４（図１９）に進む。
【０１６２】
最小圧力ＤＰＥＯＭＩＮが変化すると、すなわち停滞タンク内圧ＰＥＯＡＶＤＴＭが低下すると、ステップＳ１５１からステップＳ１５９に進み、圧力変化フラグＦＣＨＧを値１に設定する。ステップＳ１６０において、圧力パラメータＣＤＴＭＰＣＨＧを１だけインクリメントする。圧力パラメータＣＤＴＭＰＣＨＧは、図９の（ｃ）または（ｄ）の横軸に示すタンク内圧ＰＴＡＮＫに対応するパラメータであるが、タンク内圧ＰＴＡＮＫが低下するほど、圧力パラメータＣＤＴＭＰＣＨＧは増加する。したがって、第２の傾きパラメータＥＯＤＴＭＪＵＤは、図９の（ｃ）の直線Ｌ１１に対応する値は負の値となり、図９の（ｄ）の直線Ｌ１２に対応する値は正の値となる。
【０１６３】
ステップＳ１６１において、式（１４）により、圧力パラメータＣＤＴＭＰＣＨＧの積算値ＤＴＭＳＩＧＸを算出する。
【０１６４】
ＤＴＭＳＩＧＸの今回値＝ＤＴＭＳＩＧＸの前回値＋ＣＤＴＭＰＣＨＧ
（１４）
ステップＳ１６２において、式（１５）により、圧力パラメータＣＤＴＭＰＣＨＧを２乗した値の積算値ＤＴＭＳＩＧＸ２を算出する。
【０１６５】
ＤＴＭＳＩＧＸ２の今回値＝ＤＴＭＳＩＧＸ２の前回値
＋ＣＤＴＭＰＣＨＧ×ＣＤＴＭＰＣＨＧ        （１５）
ステップＳ１６３において、タイマＴＤＴＭＳＴＹの値をゼロに戻し、ステップＳ１６４に進む。
【０１６６】
圧力変化フラグＦＣＨＧが値１に設定された後に、ステップＳ１５１の答えがＹｅｓとなり、ステップＳ１５３を経てステップＳ１５４に進む。ステップＳ１５４の答えがＹｅｓとなるので、ステップＳ１５５に進み、式（１６）により、停滞時間パラメータＣＴＭＳＴＹの積算値ＤＴＭＳＩＧＹを算出する
ＤＴＭＳＩＧＹの今回値＝ＤＴＭＳＩＧＹの前回値＋ＣＴＭＳＴＹ    （１６）
ステップＳ１５６において、式（１７）により、圧力パラメータＣＤＴＭＰＣＨＧと停滞時間パラメータＣＴＭＳＴＹとの積の積算値ＤＴＭＳＩＧＸＹを算出する。
【０１６７】
ＤＴＭＳＩＧＸＹの今回値＝ＤＴＭＳＩＧＸＹの前回値＋
ＣＤＴＭＰＣＨＧ×ＣＴＭＳＴＹ            （１７）
ステップＳ１５７において、圧力変化フラグＦＣＨＧをゼロに戻し、停滞時間パラメータＣＴＭＳＴＹをゼロに戻す。その後、ステップＳ１６４に進む。
【０１６８】
ステップＳ１６４において、圧力パラメータＣＤＴＭＰＣＨＧが１より大きいかどうかを判断する。その答えがＮｏであるときは、回帰直線の傾きを求めることはできないので、該プロセスを終了する。ＣＤＴＭＰＣＨＧ＞１ならば、圧力パラメータＣＤＴＭＰＣＨＧ、積算値ＤＴＭＳＩＧＸ、ＤＴＭＳＩＧＸ２、ＤＴＭＳＩＧＹおよびＤＴＭＳＩＧＸＹを用い、式（１８）に従って第２の傾きパラメータＥＯＤＴＭＪＵＤを算出する（Ｓ１６５）。この実施形態では、最小圧力ＤＰＥＯＭＩＮが変化する毎に圧力パラメータＣＤＴＭＰＣＨＧが１だけインクリメントされるので、圧力パラメータＣＤＴＭＰＣＨＧはサンプリングデータ数を示すパラメータでもあることに注意されたい。
【数２】
2005264914.tif 000004
【０１６９】
ステップＳ１６６において、第２の傾きパラメータＥＯＤＴＭＪＵＤが、判定しきい値ＥＯＤＴＭＪＤＯＫより大きいかどうかを判断する。その答えがＹｅｓであるならば、リークがあると判定し、第２の漏れ判定フラグＦＤＴＭＬＫを値１に設定する。第２の判定終了フラグＦＥＯＮＶＤＴＭＪＵＤを値１に設定し（Ｓ１６９）、第２のリーク判定が終了したことを示す。
【０１７０】
第２の傾きパラメータＥＯＤＴＭＪＵＤが判定しきい値ＥＯＤＴＭＪＤＯＫ以下であるならば、圧力パラメータＣＤＴＭＰＣＨＧが所定値ＤＴＭＥＮＢＩＴ以上であるかどうかを判断する（Ｓ１６７）。ＣＤＴＭＰＣＨＧ＜ＤＴＭＥＮＢＩＴであるならば、該プロセスを終了する。圧力パラメータＣＤＴＭＰＣＨＧが所定値ＤＴＭＥＮＢＩＴに達すると、ステップＳ１６８に進み、第２の漏れ判定フラグＦＤＴＭＬＫをゼロに設定し、第２のリーク判定でリークが検出されなかったことを示す。さらに、第２の判定終了フラグＦＥＯＮＶＤＴＭＪＵＤを値１に設定する（Ｓ１６８）。
【０１７１】
また、ステップＳ１５２において、停滞時間を計測するタイマＴＤＴＭＳＴＹの値が所定時間ＴＤＴＭＬＫ以上になったときは、リークがあると判定し、第２の漏れ判定フラグＦＤＴＭＬＫを１に設定し、第２の判定終了フラグＦＥＯＮＶＤＴＭＪＵＤを値１に設定する（Ｓ１５８）。
【０１７２】
このように、停滞タンク内圧ＰＥＯＡＶＤＴＭが停滞または低下している時に、第２のリーク判定が実行される。停滞時間ＴＤＴＭＳＴＹが所定時間ＴＤＴＭＬＫ以上であるならば、または図９に示す回帰直線の傾きに対応する第２の傾きパラメータＥＯＤＴＭＪＵＤが判定しきい値ＥＯＤＴＭＪＤＯＫより大きければ、蒸発燃料処理系に、小さい孔によるリークがあると判定される。
【０１７３】
図２０は、最終判定を行うプロセスのフローチャートである。このプロセスは、所定時間（例えば、１秒）毎に実行される。
【０１７４】
ステップＳ１７１において、判定終了フラグＦＤＯＮＥが１かどうかを判断する。この答えがＹｅｓならば、本プロセスを終了する。ＦＤＯＮＥ＝０ならば、許可フラグＦＭＣＮＤＥＯＮＶが１かどうかを判断する（Ｓ１７２）。この答えがＹｅｓならば、判定不可フラグＦＤＴＭＤＩＳＢＬが１かどうかを判断する（Ｓ１７３）。ＦＭＣＮＤＥＯＮＶ＝０またはＦＤＴＭＤＩＳＢＬ＝１ならば、リーク判定を中断するため、中断フラグＦＥＯＮＶＡＢＯＴおよび判定終了フラグＦＤＯＮＥを１に設定し（Ｓ１７４）、本プロセスを終了する。
【０１７５】
ステップＳ１７３においてＦＤＴＭＤＩＳＢＬ＝０ならば、第１の判定終了フラグＦＥＯＮＶＤＤＰＪＵＤが１かどうかを判断する。ＦＥＯＮＶＤＤＰＪＵＤ＝１ならば、第１のリーク判定は終了している。ステップＳ１７６において、保留フラグＦＤＤＰＪＤＨＤの値が１かどうかを判断する。ＦＤＤＰＪＤＨＤ＝１ならば、中断フラグＦＥＯＮＶＡＢＯＴをゼロに設定し、終了フラグＦＤＯＮＥを１に設定する（Ｓ１８４）。
【０１７６】
ステップＳ１７６において保留フラグＦＤＤＰＪＤＨＤがゼロならば、ステップＳ１７７に進み、第１の漏れ判定フラグＦＤＤＰＬＫが１かどうかを判断する。ＦＤＤＰＬＫ＝１ならば、故障フラグＦＦＳＤを１に設定し（Ｓ１７８）、故障が生じたことを示す。ＦＤＤＰＬＫ＝０ならば、正常フラグＦＯＫを１に設定する（Ｓ１７９）。その後、ステップＳ１８４に進む。
【０１７７】
ステップＳ１７５において第１のリーク判定が終了していなければ、ステップＳ１８０に進み、第２の判定終了フラグＦＥＯＮＶＤＴＭＪＵＤが１かどうかを判断する。この答えがＮｏならば、本プロセスを終了する。第２の判定が終了しているときはＳ１８１に進み、第２の漏れ判定フラグＦＤＴＭＬＫが１かどうかを判断する。ＦＤＴＭＬＫ＝１ならば、故障フラグＦＦＳＤを１に設定し（Ｓ１８２）、故障が生じたことを示す。ＦＤＴＭＬＫ＝０ならば、正常フラグＦＦＳＤを１に設定する（Ｓ１８３）。その後、ステップＳ１８４に進む。
【０１７８】
こうして、第１のリーク判定および第２のリーク判定のどちらかが終了することに応じて、発燃料処理系のリーク判定を終了する。第２のリーク判定は、第１のリーク判定よりも時間がかかるので、第１のリーク判定の結果を優先的に用いるようにしている。代替的に、両方の判定結果が得られることに応じて、蒸発燃料処理系のリーク判定を終了してもよい。また、第１のリーク判定においてリーク有りと判定された場合にのみ、第２のリーク判定の結果を得るようにしてもよい。
【０１７９】
代替的に、平滑化されたタンク内圧ＰＥＯＮＶＡＶＥおよび停滞タンク内圧ＰＥＯＡＶＤＴＭの変わりに、検出されたタンク内圧ＰＴＡＮＫを用いてもよい。
【０１８０】
図１８および図１９のプロセスでは、圧力パラメータＣＤＴＭＰＣＨＧおよび停滞時間パラメータＣＴＭＳＴＹについて最小２乗法を適用して、第２の傾きＥＯＤＴＭＪＵＤを算出する。代替的に、タンク内圧ＰＴＡＮＫおよびアップカウントタイマＴＤＴＭＳＴＹの値に最小２乗法を適用して、第２の傾きＥＯＤＴＭＪＵＤを算出してもよい。
【０１８１】
上記の実施形態では、エンジンが停車した時に燃料タンクが傾斜しているならば、第１の系と第２の系とが分離される状態と判断した。他の状態を、分離状態として判定することができる。たとえば、燃料が満タンである時も、リターン通路とフィラーチューブの両方が燃料に液没するので、分離状態と判断することができる。
【０１８２】
また、リターン通路に代えて、またはリターン通路に加えて、フィラーチューブに空間的につながる構成要素が設けられることがある。第２の系には、このような構成要素も含まれる。本願発明は、圧力センサが存在する空間の系と、フィラーチューブ内の空間を含む系とが、燃料により分離される様々な状態に適用可能である。
【図面の簡単な説明】
【０１８３】
【図１】この発明の一実施例に従う、内燃機関およびその制御装置を概略的に示す図。
【図２】この発明の一実施例に従う、燃料タンクの構成を概略的に示す図。
【図３】この発明の一実施例に従う、燃料タンクが傾斜している場合を示す図。
【図４】この発明の一実施例に従う、リーク判定装置の機能ブロック図。
【図５】この発明の一実施例に従う、リーク判定を実行しているときのタンク内圧の推移を示す図。
【図６】この発明の一実施例に従う、タンク内圧の実測データを示すタイムチャート、および該実測データに基づいて算出される回帰直線を示す図。
【図７】この発明の一実施例に従う、リーク判定を実行する期間における最大圧力を説明するための図。
【図８】この発明の一実施例に従う、第１のリーク判定手法を説明するための図。
【図９】この発明の一実施例に従う、第２のリーク判定手法を説明するための図。
【図１０】この発明の一実施例に従う、燃料タンクが傾斜している状態を検出するプロセスのフローチャート。
【図１１】この発明の一実施例に従う、車両が傾斜地を走行しているかどうかを判断するプロセスのフローチャート。
【図１２】この発明の一実施例に従う、リーク判定を実行する条件が成立するかどうかを判断するプロセスのフローチャート。
【図１３】この発明の一実施例に従う、圧力パラメータを算出するプロセスのフローチャート。
【図１４】この発明の一実施例に従う、第１のリーク判定を実行するプロセスのフローチャート。
【図１５】この発明の一実施例に従う、第１のリーク判定を実行するプロセスのフローチャート。
【図１６】この発明の一実施例に従う、図１４で使用されるテーブルの一例を示す図。
【図１７】この発明の一実施例に従う、第２のリーク判定を実行するための条件が成立するかどうかを判断するプロセスのフローチャート。
【図１８】この発明の一実施例に従う、第２のリーク判定を実行するプロセスのフローチャート。
【図１９】この発明の一実施例に従う、第２のリーク判定を実行するプロセスのフローチャート。
【図２０】この発明の一実施例に従う、最終判定を実行するプロセスのフローチャート。
【符号の説明】
【０１８４】
１  エンジン                ５  ＥＣＵ        
６  燃料噴射弁              ９  燃料タンク    
３４  パージ制御弁        ３６  バイパス弁
３８  ベントシャット弁    
【図１】
2005264914.tif 000005
【図２】
2005264914.tif 000006
【図３】
2005264914.tif 000007
【図４】
2005264914.tif 000008
【図５】
2005264914.tif 000009
【図６】
2005264914.tif 000010
【図７】
2005264914.tif 000011
【図８】
2005264914.tif 000012
【図９】
2005264914.tif 000013
【図１０】
2005264914.tif 000014
【図１１】
2005264914.tif 000015
【図１２】
2005264914.tif 000016
【図１３】
2005264914.tif 000017
【図１４】
2005264914.tif 000018
【図１５】
2005264914.tif 000019
【図１６】
2005264914.tif 000020
【図１７】
2005264914.tif 000021
【図１８】
2005264914.tif 000022
【図１９】
2005264914.tif 000023
【図２０】
2005264914.tif 000024