(57)【要約】【課題】蒸発燃料処理系内の圧力変化に大きな影響を及ぼすような燃料の強い揺れの発生を可能な限り正確に把握し、蒸発燃料処理系の漏れの有無の診断結果の信頼性を高めることができると共に、適正な診断を行い得る機会を多くすることができる蒸発燃料処理系の漏れ診断装置を提供することを目的とする。【解決手段】内燃機関１の運転中に、車両速度検出手段１５及び操舵角検出手段１６によりそれぞれ検出される車両速度及びステアリングの操舵角に基づいて、燃料タンク１１における燃料の強い揺れ（スロッシュ）の発生の有無を判断する。その判断結果に応じて蒸発燃料処理系３内の圧力変化に基づく漏れの有無の診断を無効にしたり、漏れの有無の判定に用いる判定閾値を可変的に設定する。【選択図】図１
2004011477.tif 000002
【特許請求の範囲】
【請求項１】
燃料タンクと、該燃料タンクに第１通路を介して接続され、該燃料タンク内で発生した蒸発燃料を吸着材により吸着するキャニスタと、該キャニスタで吸着された蒸発燃料を内燃機関の吸気系に供給すべく該キャニスタを内燃機関の吸気系に接続する第２通路とを備えた蒸発燃料処理系に対し、前記内燃機関の運転中における該蒸発燃料処理系内の圧力を圧力検出手段により観測し、その観測した圧力に基づいて該蒸発燃料処理系の漏れの有無を診断する漏れ診断装置において、
前記内燃機関を搭載した車両のステアリングの操舵角を検出する操舵角検出手段と、該車両の速度を検出する車両速度検出手段と、該操舵角検出手段による検出操舵角と該車両速度検出手段による検出速度とに基づいて燃料タンク内の燃料の揺れの強さを判断する燃料揺れ判断手段とを備え、該燃料揺れ判断手段により判断された燃料の揺れの強さに応じて、蒸発燃料処理系の漏れの有無の診断を無効にするか否かを決定するようにしたことを特徴とする蒸発燃料処理系の漏れ診断装置。
【請求項２】
燃料タンクと、該燃料タンクに第１通路を介して接続され、該燃料タンク内で発生した蒸発燃料を吸着材により吸着するキャニスタと、該キャニスタで吸着された蒸発燃料を内燃機関の吸気系に供給すべく該キャニスタを内燃機関の吸気系に接続する第２通路を備えた蒸発燃料処理系に対し、前記内燃機関の運転中における該蒸発燃料処理系内の圧力を圧力検出手段により観測し、その観測した圧力に基づいて該蒸発燃料処理系の漏れの有無を診断する漏れ診断装置において、
前記内燃機関を搭載した車両のステアリングの操舵角を検出する操舵角検出手段と、該車両の速度を検出する車両速度検出手段と、該操舵角検出手段による検出操舵角と該車両速度検出手段による検出速度とに基づいて燃料タンク内の燃料の揺れの強さ判断する燃料揺れ判断手段とを備え、該燃料揺れ判断手段により判断された燃料の揺れの強さに応じて、蒸発燃料処理系の漏れの有無を判定するための判定閾値を変更するようにしたことを特徴とする蒸発燃料処理系の漏れ診断装置。
【請求項３】
前記燃料揺れ判断手段は、左右いずれかの方向への前記検出操舵角が前記検出速度に応じて設定した揺れ判定閾値を越えているか否かにより、前記燃料の揺れの強さを判断することを特徴とする請求項１又は２記載の蒸発燃料処理系の漏れ診断装置。
【請求項４】
前記燃料揺れ判断手段は、前記検出操舵角の所定の単位時間当たりの変化量が前記検出速度に応じて設定した揺れ判定閾値を越えているか否かにより、前記燃料の揺れの強さを判断することを特徴とする請求項１又は２記載の蒸発燃料処理系の漏れ診断装置。
【請求項５】
前記燃料揺れ判断手段は、前記検出操舵角が左右いずれかの方向に、前記検出速度に応じて設定した第１揺れ判定閾値を越えた後、該検出操舵角が所定時間内に逆方向に前記検出速度に応じて設定した第２揺れ判定閾値を越えて変化したか否かにより、前記燃料の揺れの強さを判断することを特徴とする請求項１又は２記載の蒸発燃料処理系の漏れ診断装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、燃料タンク内で発生する蒸発燃焼を処理する蒸発燃料処理系に関し、より詳しくは、その蒸発燃料処理系の漏れの有無を診断する装置に関する。
【０００２】
【従来の技術】
燃料タンク内で発生する蒸発燃料を処理する蒸発燃料処理系は、一般に、蒸発燃料の吸着材（活性炭等）を内蔵したキャニスタを備え、このキャニスタが燃料タンクに第１通路を介して接続されると共に、第２通路を介して内燃機関の吸気系（吸気管）に接続されている。このように構成された蒸発燃料処理系では、燃料タンク内で発生した蒸発燃料をキャニスタ内の吸着材で一時的に吸着・保持し、その吸着した蒸発燃料を適宜、内燃機関の吸気系に供給して該内燃機関で燃焼させる（キャニスタのパージを行う）ようにしている。尚、このような蒸発燃料処理系では、前記第２通路には、開度を調整可能なパージ制御弁が設けられている。また、キャニスタは、その内部を大気に連通させる通気口を有しており、この通気口に接続された通気路には、該通気口を適宜開閉するためのベントシャット弁が設けられている。
【０００３】
この種の蒸発燃料処理系では、外部（大気側）への蒸発燃料の漏れの有無を診断する必用がある。そして、このような診断を行う技術としては、例えば特開２０００−２２７０５２号公報にて本願出願人が提案している技術が知られている。
【０００４】
この技術では、内燃機関の運転中に、適宜、蒸発燃料処理系内に内燃機関の吸気系から前記第２通路を介して負圧が導入され、その後の蒸発燃料処理系内の圧力の変化が圧力センサにより観測される。そして、その観測した圧力変化に基づく診断用パラメータを所定の判定閾値と比較することで、蒸発燃料処理系内の漏れの有無が診断される。
【０００５】
ところで、上記公報のような技術により蒸発燃料処理系の漏れの診断を行う場合、該蒸発燃料処理系内の圧力の変化が蒸発燃料処理系の漏れの有無と相関性を有することが前提となる。しかるに、該蒸発燃料処理系の圧力は漏れの有無だけでなく、他の要因の影響も受ける。例えば、燃料タンク内の燃料の強い揺れ（所謂スロッシュ）が発生したような状況では、蒸発燃料（ベーパ）が急増し、それが蒸発燃料処理系内の圧力に大きく影響する。従って、燃料タンク内の燃料の強い揺れ（スロッシュ）が発生するような状況では、蒸発燃料処理系内の圧力の変化と漏れの有無との相関性が不鮮明になって、その圧力変化に基づく漏れの有無の診断結果の信頼性を確保することが困難となる。
【０００６】
このため、前記公報の技術では、蒸発燃料処理系内の圧力の変化を観測している際に、その圧力の単位時間（サンプリングタイム）当たりの変化量が所定の閾値（以下、ここではスロッシュ判定閾値という）を越えるような場合には、燃料の液面の揺れ等による圧力の急変と判断し、漏れの有無の診断を中断するようにしている。
【０００７】
【発明が解決しようとする課題】
しかしながら、蒸発燃料処理系の漏れの有無と蒸発燃料の発生状況とは共に蒸発燃料処理系内の圧力の変化に影響を及ぼすものであるため、それらを該蒸発燃料処理系内の圧力の変化に基づいて明確に区別することは困難である。このため、前記公報の技術において、確実に燃料の強い揺れに伴う蒸発燃料の発生の影響を排除して、漏れ有無の診断結果の信頼性を確保するためには、前記スロッシュ判定閾値を低めに設定せざるを得ない。その結果、実際には、燃料の揺れに伴う蒸発燃料の影響が小さいような状況でも、漏れの有無の診断を行うことができないような事態が生じ、ひいては、実質的に漏れの有無の診断を行い得る機会が少なくなってしまうという不都合があった。
【０００８】
尚、前記スロッシュ判定閾値を高めに設定した場合には、燃料の揺れの影響が比較的大きい状況で漏れの有無の診断を行ってしまい、漏れの有無の誤診をしてしまうという場合が生じることとなる。
【０００９】
本発明はこのような背景に鑑みてなされたものであり、燃料の揺れに伴う蒸発燃料の発生状況、特に、蒸発燃料処理系内の圧力変化に大きな影響を及ぼすような燃料の強い揺れの発生を可能な限り正確に把握することができ、ひいては、蒸発燃料処理系の漏れの有無の診断結果の信頼性を高めることができると共に、適正な診断を行い得る機会を多くすることができる蒸発燃料処理系の漏れ診断装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本願発明者等の知見よれば、燃料タンク内の燃料の揺れは、内燃機関を搭載した車両の種々様々な運転状況下で発生するものの、蒸発燃料処理系内の圧力の変化に大きな影響を及ぼすような蒸発燃料の発生を伴う燃料の揺れ、すなわち、多量の蒸発燃料が急激に発生しやすいような燃料の揺れは、車両のステアリングの操舵角や、その変化が比較的大きい状況で生じる。特に、車両の進路変更（走行レーンの変更）の場合のように、ステアリングの操舵を左右いずれかの方向に行った後、比較的短い時間内でステアリングを逆方向に操舵したような場合に、多量の蒸発燃料が急激に発生するような燃料の揺れ（本明細書では、このような燃料の揺れを強い揺れと表現する）を生じる。また、車両の速度が高い程、ステアリングの操舵角やその変化量が比較的小さくても、燃料の強い揺れを生じる。このように、燃料タンク内の燃料の強い揺れが生じるか否か、ひいては、蒸発燃料処理系内の圧力に大きな影響を及ぼすような蒸発燃料を発生させるような燃料の揺れが生じるか否かは、ステアリングの操舵角や車両の速度に対する依存性が高い。
【００１１】
そこで、本発明の蒸発燃料処理系の漏れ診断装置では、燃料タンクと、該燃料タンクに第１通路を介して接続され、該燃料タンク内で発生した蒸発燃料を吸着材により吸着するキャニスタと、該キャニスタで吸着された蒸発燃料を内燃機関の吸気系に供給すべく該キャニスタを内燃機関の吸気系に接続する第２通路とを備えた蒸発燃料処理系に対し、前記内燃機関の運転中における該蒸発燃料処理系内の圧力を圧力検出手段により観測し、その観測した圧力に基づいて該蒸発燃料処理系の漏れの有無を診断する漏れ診断装置において、前記内燃機関を搭載した車両のステアリングの操舵角を検出する操舵角検出手段と、該車両の速度を検出する車両速度検出手段と、該操舵角検出手段による検出操舵角と該車両速度検出手段による検出速度とに基づいて燃料タンク内の燃料の揺れの強さを判断する燃料揺れ判断手段とを備える。
【００１２】
そして、本発明の第１の態様では、前記燃料揺れ判断手段により判断された燃料の揺れの強さに応じて、蒸発燃料処理系の漏れの有無の診断を無効するか否かを決定する。また、本発明の第２の態様では、燃料揺れ判断手段により判断された燃料の揺れの強さに応じて、蒸発燃料処理系の漏れの有無を判定するための判定閾値を変更する。
【００１３】
前述のように多量の蒸発燃料が急激に発生し易いような燃料の揺れ（強い揺れ）は、ステアリングの操舵角及び車両の速度に対する依存性が高いため、前記検出操舵角及び検出速度に基づいて燃料の揺れの強さを判断することにより、蒸発燃料処理系内の圧力の変化に大きな影響を及ぼすような燃料の強い揺れが生じたか否かを正確に判断することができる。そして、本発明の第１の態様では、このように判断した燃料の揺れの強さに応じて、蒸発燃料処理系の漏れの有無の診断を無効とするか否かを決定するので、燃料の強い揺れに伴う蒸発燃料の急激な発生によって漏れの有無の診断結果の信頼性を確保することが困難な状況で、且つそのような状況においてのみ、確実に漏れの有無の診断を無効にすることが可能となる。その結果、漏れの有無の診断を無効にしないような状況では、診断結果の信頼性を高めることができる。同時に、漏れの有無の診断を支障なく行い得る状況では、その診断を有効に行うことができるので、適正な診断を行い得る機会を多くすることができる。
【００１４】
また、本発明の第２の態様では、前記のように燃料揺れ判断手段により判断した燃料の揺れの強さに応じて、蒸発燃料処理系の漏れの有無を判定するための判定閾値を変更するので、燃料の揺れの強さに適した判定閾値を設定することができる。その結果、漏れの有無の診断結果の信頼性を高めることができると共に、適正な診断を行い得る機会を多くすることができる。
【００１５】
尚、本発明の第１及び第２の態様においては、漏れの有無の診断を無効にする場合、診断結果を無効にしてもよいが、診断結果を出すまでの処理を中断したり、禁止するようにしてもよい。
【００１６】
かかる本発明の第１及び第２の態様では、前記燃料揺れ判断手段は、例えば左右いずれかの方向への前記検出操舵角が前記検出速度に応じて設定した揺れ判定閾値を越えているか否かにより、前記燃料の揺れの強さを判断する。すなわち、検出操舵角が上記揺れ判定値よりも小さい状態から該揺れ判定値を越えたような状況は、ステアリングを左右いずれかの方向に比較的大きく操作した状況であり、このような状況では、車両の進行向きが大きく変化するので、燃料の強い揺れが生じやすい。そして、このような燃料の揺れは、車両の検出速度が高い程、より小さな操舵角で発生する。従って、上記のような燃料揺れ判断手段により燃料の揺れの強さを判断することにより、燃料の強い揺れ（多くの蒸発燃料を急激に発生させるような揺れ）が生じているか否かを判断することが可能となる。尚、この場合、検出操舵角に対する前記揺れ判定閾値は、基本的には車両の検出速度が高い程、より小さな値に設定すればよい。
【００１７】
あるいは前記燃料揺れ判断手段は、例えば前記検出操舵角の所定の単位時間当たりの変化量が前記検出速度に応じて設定した揺れ判定閾値を越えているか否かにより、前記燃料の揺れの強さを判断するようにしてもよい。すなわち、検出操舵角の単位時間当たりの変化量が上記揺れ判定閾値を越えて大きくなるような状況は、車両のステアリングを比較的急速に左右いずれかの方向い操舵した状況であり、このような状況では、車両の進行向きが比較的急激に変化するので、燃料の強い揺れが生じやすい。そして、このような燃料の揺れは、車両の検出速度が高い程、操舵角の単位時間当たりの変化量が比較的小さくても発生し易くなる。従って、上記のような燃料揺れ判断手段により燃料の揺れの強さを判断することにより、燃料の強い揺れ（多くの蒸発燃料を急激に発生させるような揺れ）が生じているか否かを判断することが可能となる。尚、この場合、検出操舵角の単位時間当たりの変化量に対する前記揺れ判定閾値は、基本的には車両の検出速度が高い程、より小さな値に設定すればよい。
【００１８】
あるいは前記燃料揺れ判断手段は、前記検出操舵角が左右いずれかの方向に、前記検出速度に応じて設定した第１揺れ判定閾値を越えた後、該検出操舵角が所定時間内に逆方向に前記検出速度に応じて設定した第２揺れ判定閾値を越えて変化したか否かにより、前記燃料の揺れの強さを判断することが好適である。すなわち、検出操舵角が左右いずれかの方向で第１揺れ判定閾値を越えた後、所定時間内に逆方向に第２揺れ判定閾値を越えて変化したような状況は、車両の進路変更（走行レーンの変更）の場合のように、車両のステアリングを左右いずれかに操舵した後、さほど時間をおかずに、増加させた後、ステアリングを逆方向に操舵したような状況である。そして、前述のように、特にこのような状況では、燃料の強い揺れが発生しやすい。そして、このような燃料の揺れは、車両の速度が高い程、より小さなステアリング操作で生じやすくなる。従って、上記のような燃料揺れ判断手段により燃料の揺れの強さを判断することにより、燃料の強い揺れ（多くの蒸発燃料を急激に発生させるような揺れ）が生じているか否かを判断することが可能となる。尚、この場合、前記第１揺れ判定閾値及び第２揺れ判定閾値は、基本的には車両の検出速度が高い程、より小さな値に設定すればよい。
【００１９】
【発明の実施の形態】
本発明の第１実施形態を図１〜図６を参照して説明する。図１は、図１は本実施形態の装置の全体構成を示すブロック図である。同図において、１は例えば自動車に車両の推進源として搭載されたエンジン（内燃機関）、２は電子制御ユニット（以下、ＥＣＵという）、３は蒸発燃料処理系である。エンジン１は例えば４気筒エンジンである。
【００２０】
エンジン１の吸気系を構成する吸気管４の途中部には、上流側から順に、吸気量を調整するスロットル弁５と、吸気管内圧ＰＢＡ（詳しくは吸気管４内の絶対圧）を検出する吸気管内圧センサ６と、吸気温度ＴＡＯＢ（吸気管４内における空気の温度）を検出する吸気温度センサ７と、燃料を吸気管４に噴射して空気と混合させる燃料噴射弁８とが設けられている。また、スロットル弁５の配置箇所には、該スロットル弁５の開度θＴＨを検出するスロットル弁開度センサ９が設けられている。上記各センサ６，７，９は、それぞれの検出値を示す電気信号をＥＣＵ２に出力する。
【００２１】
燃焼噴射弁８は、エンジン１の各気筒の吸気バルブ（図示せず）の若干上流側で各気筒毎に設けられている。各燃料噴射弁８は、燃料供給管１０を介して燃料タンク１１に接続されており、燃料供給管１０の途中に設けられた燃料ポンプ１２の作動により燃料タンク１１から燃料が供給される。そして、各燃料噴射弁８は、その開弁時間（ひいては燃料噴射量）がＥＣＵ２により制御されるようになっている。
【００２２】
また、エンジン１の回転数ＮＥ（回転速度）を検出する回転数センサ１３と、エンジン１の冷却水温を機関温度として検出する水温センサ１４（機関温度検出手段）と、車両の速度ＶＰを検出する車速センサ１５（車両速度検出手段）と、車両のステアリング（図示省略）の操舵角ＳＡを検出する操舵角センサ１６（操舵角検出手段）とが備えられている。これらのセンサ１３〜１６はそれぞれの検出値を示す電気信号をＥＣＵ２に出力する。
【００２３】
前記蒸発燃料処理系３は、燃料タンク１１と、キャニスタ１７と、これらを接続する第１通路としてのチャージ通路１８と、キャニスタ１７を吸気管４に接続する第２通路としてのパージ通路１９とを備えている。
【００２４】
チャージ通路１８には、二つの機械式の弁２０ａ，２０ｂを備える二方向弁２０が設けられている。この二方向弁２０の一方の弁２０ａは、燃料タンク１１内の圧力が大気圧より第１所定圧（例えば２．０ｋＰａ（１５ｍｍＨｇ））以上高いときに開弁する正圧弁である。また、他方の弁２０ｂは、燃料タンク１２内の圧力がキャニスタ１８内の圧力よりも第２所定圧（例えば１．３〜２．０ｋＰａ（１０〜１５ｍｍＨｇ）以上低いときに開弁する負圧弁である。また、チャージ通路１８には、二方向弁２０をバイパスするバイパス通路２１が接続されており、このバイパス通路２１にはバイパス弁２２が設けられている。該バイパス弁２２は、通常は閉弁状態とされる電磁開閉弁であり、後述する漏れ診断処理においてＥＣＵ２の制御により開閉される。
【００２５】
さらに、チャージ通路１８には、二方向弁２０と燃料タンク１１との間の箇所での圧力ＰＴを検出する圧力センサ２３（圧力検出手段）が設けられている。ここで、圧力センサ２３が検出する圧力ＰＴは、後述する漏れ診断処理において、蒸発燃料処理系３内の圧力としての意味を持つものであり、本実施形態では、大気圧との差圧（大気圧を基準とした圧力）である。そして、圧力センサ２３は、その検出値を示す電気信号がＥＣＵ２に出力する。尚、圧力センサ２３が検出する圧力ＰＴ（以下、処理系内圧力ＰＴという）は、キャニスタ１７及び燃料タンク１１内の圧力が安定している定常状態では、燃料タンク１１内の圧力に等しくなるが、キャニスタ１７又は燃料タンク１１内の圧力が変化しているときには、一般には燃料タンク１１内の実際の圧力とは異なるものとなる。
【００２６】
キャニスタ１７は、燃料タンク１１内で発生する蒸発燃料を吸着する吸着材としての活性炭（図示せず）を内蔵するものである。このキャニスタ１７は、その内部を大気側に連通させるための通気口１７ａを備えており、この通気口１７ａに接続された通気路２４を介して大気側に連通可能とされている。通気路２４には、ベントシャット弁２５が設けられている。このベントシャット弁２５は、常開型の電磁開閉弁であり、ＥＣＵ２により開閉制御される。例えば燃料タンク１２への給油やキャニスタ１７のパージ処理（キャニスタ１８内の活性炭が吸着した蒸発燃料をエンジン１の吸気系に供給する処理）を行うときにはベントシャット弁２５は開弁保持され、後述する漏れ診断処理においては適宜開閉される。
【００２７】
パージ通路１９は、スロットル弁５の下流側（燃料噴射弁８の上流側）で吸気管４に接続されている。そして、パージ通路１９の途中部には、パージ制御弁２６が設けられている。このパージ制御弁２６は、その開度を、ＰＷＭ制御により全閉状態から全開状態まで連続的に変更可能な電磁制御弁であり、ＰＷＭ制御のパルス信号のデューティを調整することによりその開度が制御される。この制御はＥＣＵ２により行われる。
【００２８】
尚、上述のように構成された蒸発燃料処理系３では、燃料タンク１１の給油時等に該燃料タンク１１内の蒸発燃料が増加し、燃料タンク１１内の圧力が上昇すると、前記二方向弁２０の正圧弁２０ａが開く。これにより燃料タンク１１内の蒸発燃料が、燃料タンク１１からチャージ通路１８を介してキャニスタ１７に供給され、該キャニスタ１７内の活性炭により吸着される。そして、エンジン１の所定の運転状態で、パージ制御弁２６がＥＣＵ２により所要の開度で開弁側に制御され、キャニスタ１７内の活性炭で吸着された蒸発燃料がパージ通路１９を介して吸気管４に供給され、エンジン１で燃焼される。
【００２９】
ＥＣＵ２は、図示を省略するＣＰＵ、ＲＡＭ、ＲＯＭから構成されるマイクロコンピュータを含めて構成された電子回路ユニットである。そして、ＥＣＵ２は、前述の吸気管内圧センサ６等、各センサの出力信号や、あらかじめＲＯＭに記憶保持されたプログラム及び設定データに基づいて、前記燃料噴射弁８、パージ制御弁２６、バイパス弁２２、ベントシャット弁２５等、ＥＣＵ２に接続された各アクチュエータの動作を制御し、これにより、エンジン１の運転制御や蒸発燃料処理系３の動作制御を行なう。ここで、ＥＣＵ２は、本発明における燃料揺れ判断手段としての機能を有すると共に、蒸発燃料処理系３の漏れの有無を診断する機能を有するものであり、これらの機能は後述する処理のアルゴリズムにより実現されるものである。
【００３０】
次に、本実施形態の装置の作動を説明する。まず、ＥＣＵ２の燃料揺れ判断手段としての機能について説明する。ＥＣＵ２は、エンジン１の運転中に、所定のサイクルタイム（例えば１秒周期）で燃料タンク１１内の燃料の強い揺れ（スロッシュ）が発生しているか否かを判断するルーチン処理（以下、燃料揺れ判断処理という）を実行する。この燃料揺れ判断処理は、図２のフローチャートに示すように実行される。
【００３１】
図２を参照して、ＥＣＵ２は、ＳＴＥＰ１において、前記車速センサ１５による検出速度ＶＰの現在値（今回値）ＶＰ（ｋ）と操舵角センサ１６による検出操舵角ＳＡの現在値（今回値）ＳＡ（ｋ）を読み込む。尚、添え字ｋは、燃料揺れ判断処理のサイクルタイムの番数を意味している。また、検出操舵角ＳＡは、本実施形態では、車両のステアリングが右旋回方向に操舵されているときには正の値、左旋回方向に操舵されているときには負の値である。
【００３２】
次いで、ＥＣＵ２は、ＳＴＥＰ２において、燃料の強い揺れが発生しているか否かを判断するための判定閾値ＳＡＳＨ１（検出操舵角に対する閾値）を現在の検出速度ＶＰ（ｋ）に基づいて設定する。この設定は、ＶＰ（ｋ）から、あらかじめ定められたデータテーブルを検索することで行われ、基本的には、ＶＰ（ｋ）が大きい程、判定閾値ＳＡＳＨ１は、より小さくなるように設定される。例えば、ＶＰ（ｋ）＝５０ｋｍ／ｈではＳＡＳＨ１＝４５度、ＶＰ（ｋ）＝１００ｋｍ／ｈではＳＡＳＨ１＝１０度というように判定閾値ＳＡＳＨ１が設定される。
【００３３】
次いで、ＥＣＵ２は、ＳＴＥＰ３で、現在の検出操舵角ＳＡ（ｋ）の絶対値｜ＳＡ（ｋ）｜を判定閾値ＳＡＳＨ１と比較する。このとき｜ＳＡ（ｋ）｜＞ＳＡＳＨ１であるときには、車両のステアリングが左右いずれかの方向に比較的大きく操舵された状況であり、燃料タンク１１内の燃料の強い揺れが発生する可能性が高い。このため、ＥＣＵ２は、ＳＴＥＰ３で｜ＳＡ（ｋ）｜＞ＳＡＳＨ１であるときには、ＳＴＥＰ４で、燃料の強い揺れが発生している（以下、この状況をスロッシュ有りと称する）と判断し、今回のサイクルタイムにおける燃料揺れ判断処理を終了する。また、｜ＳＡ（ｋ）｜≦ＳＡＳＨ１であるときには、ＥＣＵ２は、ＳＴＥＰ５でスロッシュ無しと判断し、今回のサイクルタイムにおける燃料揺れ判断処理を終了する。尚、これらの判断結果は、例えばフラグの値としてＥＣＵ２により記憶保持される。
【００３４】
上述のように車両の検出速度ＶＰ（ｋ）に応じて設定した判定閾値ＳＡＳＨ１と検出操舵角ＳＡ（ｋ）を比較することにより、燃料の強い揺れ（スロッシュ）の発生の有無を適正に判断できる。
【００３５】
次に、ＥＣＵ２による蒸発燃料処理系３の漏れの有無を診断処理について説明する。本実施形態では、エンジン１の運転中に、蒸発燃料処理系３の漏れの有無の診断がなされる。この漏れ診断は、本実施形態では、前記バイパス弁２２及び二方向弁２０よりも燃料タンク１１側の蒸発燃料処理系３（以下、タンク側蒸発燃料処理系３ａという）と、バイパス弁２２及び二方向弁２０よりもキャニスタ１７側の蒸発燃料処理系３（以下、キャニスタ側蒸発燃料処理系３ｂという）とに分けて行われる。以下に、この漏れ診断について説明する。尚、この漏れ診断の手法の基本的な考え方は、例えば本願出願人による特開２０００−２２７０５２号公報に詳細に説明されているので、本明細書の説明では、特に本発明に関連した部分を重点的に説明し、他の部分の説明は概略的な説明に留める。
【００３６】
まず、タンク側蒸発燃料処理系３ａの漏れの診断処理（以下、タンク側漏れ診断処理という）を図３のタイムチャート並びに図４及び図５のフローチャートを参照して説明する。尚、図３中の実線のグラフａは、タンク側漏れ診断処理において前記圧力センサ２３で検出される処理系内圧力ＰＴ（大気圧との差圧）の変化の様子を例示するものである。
【００３７】
図３に示すように、タンク側漏れ診断処理は、その処理を大別すると、大気開放モード、補正チェックモード、減圧モード、リークチェックモード、及び判定モードから成り、これらのモードの処理が順次実行される。尚、このタンク側漏れ診断処理は、いくつかの基本条件が満たされている状況下で行われる。該基本条件としては、例えばスロットル弁５の開度θＴＨ、エンジン１の回転数ＮＥ、車両速度ＶＰがそれぞれ所定の範囲内にあること、エンジン１の運転状態が高負荷運転状態で無いこと、エンジン１の空燃比が理論空燃比近傍で制御されていること、タンク側漏れ診断処理の開始前にバイパス弁２２を閉弁した状態（バイパス弁２２の通常状態）において圧力センサ２３で検出される処理系内圧力ＰＴがで負圧方向に減少するような状況（燃料タンク１１が雨等の影響で温度低下を生じるような状況）で無いこと、等の条件がある。
【００３８】
タンク側漏れ診断処理の最初のモードである大気開放モードでは、ＥＣＵ２は、バイパス弁２２及びベントシャット弁２５を開弁保持し、パージ制御弁２６を閉弁保持する。これにより、蒸発燃料処理系３の全体が大気に開放されることとなる。従って、圧力センサ２３で検出される処理系内圧力ＰＴはグラフａで示すように大気圧へと変化する。この大気開放モードに要する時間は、例えば１５秒である。尚、この大気開放モードにおいて、処理系内圧力ＰＴが大気圧近傍の圧力まで低下しないような場合には、燃料タンク１１内で大量の蒸発燃料が発生している状況であるので、今回のエンジン１の運転中におけるタンク側漏れ診断処理は中止される。
【００３９】
大気開放モードで処理系内圧力ＰＴが大気圧とほぼ等しい圧力まで低下すると、補正チェックモードに移行する。この補正チェックモードでは、ＥＣＵ２は、バイパス弁２２を閉弁し、また、ベントシャット弁２５及びパージ制御弁２６を、引き続き大気開放モードでの状態に保持する。これにより、タンク側蒸発燃料処理系３ａが閉空間状態にされる。この補正チェックモードは、該補正チェックモードの開始時から、所定の補正チェック時間（例えば３０秒）が経過するまでの期間で行われる。
【００４０】
この補正チェックモードにおいて、ＥＣＵ２は、燃料タンク１１内での通常的な蒸発燃料の発生に伴う処理系内圧力ＰＴの変化の影響を、後に行う漏れの有無の判定処理で補償するための補正量ＲＶＡＲを求める。ここで、通常的な蒸発燃料の発生というのは、燃料タンク１１内の燃料の揺れ等の無い、ほぼ静的な状態（定常的な状態）における蒸発燃料の発生を意味する。そして、ＥＣＵ２が求める補正量ＲＶＡＲは、圧力センサ２３で検出される処理系内圧力ＰＴの単位時間当たりの上昇量（平均上昇量）、すなわち、補正チェックモードにおけるグラフａの傾きである。尚、補正チェックモードで、処理系内圧力ＰＴが負圧（＜０）になった場合、あるいは、補正量ＲＶＡＲ（処理系内圧力ＰＴの単位時間当たりの上昇量）が過大である場合には、今回のエンジン１の運転中におけるタンク側漏れ診断処理は中止される。
【００４１】
補正チェックモードが終了すると、減圧モードに移行する。この減圧モードでは、ＥＣＵ２は、バイパス弁２２を開弁保持させると共に、ベントシャット弁２５を閉弁保持させる。さらに、ＥＣＵ２は、処理系内圧力ＰＴが所定の負圧（例えば−１５ｍｍＨｇ）になるようにパージ制御弁２６の開度を制御する。より詳しくは、ＥＣＵ２は、減圧モードの開始時から一時的にオープンループ制御でパージ制御弁２６の開度を略全開状態に制御した後、処理系内圧力ＰＴの検出値と目標の負圧（−１５ｍｍＨｇ）との偏差に応じたフィードバック制御によりパージ制御弁２６の開度を制御する。これにより、吸気管４内の負圧を利用して、処理系内圧力ＰＴが所定の負圧に減圧される。この減圧モードに要する時間は例えば３０〜４０秒である。
【００４２】
減圧モードが終了すると、リークチェックモードが開始する。このリークチェックモードでは、ＥＣＵ２は、バイパス弁２２、ベントシャット弁２５、パージ制御弁２６を全て閉弁保持する。これにより、タンク側蒸発燃料処理系３ａ及びキャニスタ側蒸発燃料処理系３ｂが分離した状態でそれぞれ閉空間状態になる。このとき、圧力センサ２３で検出される処理系内圧力ＰＴは、閉空間状態のタンク側蒸発燃料処理系３ａ内の圧力である。そして、該処理系内圧力ＰＴは、タンク側蒸発燃料処理系３ａの漏れが無ければ、破線のグラフａ’で示すように負圧に維持される。また、タンク側蒸発燃料処理系３ａの漏れが有る場合には、処理系内圧力ＰＴは、例えば実線のグラフａで示すように、比較的速く上昇し、負圧が解消していく。
【００４３】
このリークチェックモードでは、ＥＣＵ２は、図４のフローチャートに示すルーチン処理を所定のサイクルタイム（例えば１秒周期）で実行する。
【００４４】
すなわち、図４を参照して、ＥＣＵ２は、ＳＴＥＰ１１でリークチェックモードの開始時からの経過時間が所定の待機時間に達したか否かを判断する。ここで、待機時間は、減圧モードからリークチェックモードへの移行直後における処理系内圧力Ｐ　Ｔの過渡的な変動が解消して安定するまでの待ち時間であり、例えば１秒である。
【００４５】
ＳＴＥＰ１１で経過時間＜待機時間である場合には、ＥＣＵ２は、処理系内圧力ＰＴの現在の検出値ＰＴを、リークチェックモードにおける処理系内圧力ＰＴの初期値ＰＴ（０）として記憶保持し（ＳＴＥＰ１２）、今回の図３の処理を終了する。
【００４６】
また、ＳＴＥＰ１１で経過時間≧待機時間である場合には、ＥＣＵ２は、現在タイミングがリークチェックモードでの処理系内圧力ＰＴのサンプリングタイミングであるか否かをＳＴＥＰ１３で判断する。ここで、本実施形態では、リークチェックモードにおける処理系内圧力ＰＴの瞬時瞬時の変動でなく、全体的な変化の傾向を観るため、圧力センサ２３で検出される処理系内圧力ＰＴを図４の処理のサイクルタイムよりも幾分長い所定周期（例えば３秒）でサンプリングするようにしている。
【００４７】
そして、ＳＴＥＰ１３でサンプリングタイミングである場合には、ＥＣＵ２は、前述の燃料揺れ判断処理により判断した現在の燃料の揺れがスロッシュ有りの状態であるか否かをＳＴＥＰ１４で判断する。このとき、スロッシュ有りの状態である場合には、該スロッシュの発生に伴う蒸発燃料の急増によってタンク側蒸発燃料処理系３ａの漏れの有無によらずに処理系内圧力ＰＴが上昇する可能性が高いので、現在実行中のタンク側漏れ診断処理を中断する（ＳＴＥＰ１５）。従って、この場合には、現在実行中のタンク側漏れ診断処理では、漏れの有無の判断は下されず、これにより漏れの有無の診断が無効にされる。尚、この場合、今回のエンジン１の運転中に前述の基本条件が再び満たされた場合には、タンク側漏れ診断処理が改めて実行される。
【００４８】
また、ＳＴＥＰ１４でスロッシュ有りの状態でない場合には、ＥＣＵ２は、ＳＴＥＰ１６において、処理系内圧力ＰＴの現在の検出値ＰＴ（ｎ）を読み込む。尚、添え字ｎは、処理系内圧力ＰＴのサンプリングタイミングの番数を意味する。
【００４９】
このＳＴＥＰ１６の処理を実行した後、あるいは、ＳＴＥＰ１３でサンプリングタイミングでない場合には、ＥＣＵ２は、ＳＴＥＰ１７において、リークチェックモードの開始時からの経過時間が、所定のリークチェック時間に達したか否かを判断する。ここで、リークチェック時間は、リークチェックモードの処理に要する時間としてあらかじめ定められた時間（例えば３０秒）である。
【００５０】
このとき、経過時間≧リークチェック時間である場合には、ＥＣＵ２は、後述するＳＴＥＰ２０，２１の処理を実行し、今回の図４の処理を終了する。尚、この場合、ＳＴＥＰ２０，２１の処理を実行したときには、リークチェックモードは終了する。
【００５１】
また、ＳＴＥＰ１７で、経過時間＜リークチェック時間である場合には、ＥＣＵ２は、ＳＴＥＰ１６で読み込んだ処理系内圧力ＰＴの現在値ＰＴ（ｎ）が、大気圧近傍（「０」近傍）の所定範囲にあるか否か、換言すれば、ＰＴ（ｎ）がほぼ大気圧に等しいか否かをＳＴＥＰ１８で判断する。このとき、ＰＴ（ｎ）が所定範囲内に無い場合には、ＥＣＵ２は今回の図４の処理を終了する。また、ＰＴ（ｎ）が所定範囲内にある場合には、ＥＣＵ２は、さらに、処理系内圧力ＰＴの現在値ＰＴ（ｎ）と前回値ＰＴ（ｎ−１）との偏差の絶対値が所定値よりも小さいか否か、換言すれば、処理系内圧力ＰＴがほぼ一定状態になっているか否かをＳＴＥＰ１９で判断する。このとき、｜ＰＴ（ｎ）−ＰＴ（ｎ−１）｜≧所定値である場合には、処理系内圧力ＰＴが未だ変化途中であると考えられるので、ＥＣＵ２は今回の図４の処理を終了する。
【００５２】
一方、ＳＴＥＰ１９で、｜ＰＴ（ｎ）−ＰＴ（ｎ−１）｜＜所定値である場合には、処理系内圧力ＰＴが大気圧とほぼ同等の圧力まで復帰し、且つ、その圧力に落ち着いた状態であるので、ＥＣＵ２はＳＴＥＰ２０，２１の処理を実行し、今回の図４の処理を終了する（この場合、リークチェックモードも終了する）。尚、ＳＴＥＰ１９で｜ＰＴ（ｎ）−ＰＴ（ｎ−１）｜＜所定値となるような状況は、基本的にはタンク側蒸発燃料処理系３ａの漏れが比較的多いような状況であり、その漏れが無い場合やもしくはその漏れが少ない場合（通常的な場合）は、ＳＴＥＰ１７で経過時間≧リークチェック時間となった後にＳＴＥＰ２０，２１の処理が実行される。
【００５３】
前記ＳＴＥＰ２０の処理においては、ＥＣＵ２は、リークチェックモードにおける処理系内圧力ＰＴの単位時間当たりの変化量を、漏れの有無を診断するための基本診断パラメータＬＶＡＲとして次式（１）により求める。
【００５４】
ＬＶＡＲ＝（ＰＴ（ｎ）−ＰＴ（０））／Δｔ　　　……（１）
ここで、Δｔは、ＳＴＥＰ１１で経過時間≧待機時間となってから、ＳＴＥＰ１７で経過時間≧リークチェック時間となるまでに要した時間（＝リークチェック時間−待機時間）、又は、ＳＴＥＰ１９で｜ＰＴ（ｎ）−ＰＴ（ｎ−１）｜＜所定値となるまでに要した時間であり、通常は前者の時間である。また、式（１）におけるＰＴ（０）は、前記待機時間内におけるＳＴＥＰ１２で最後に得られた処理系内圧力ＰＴ（リークチェックモードにおける処理系内圧力ＰＴの初期値としての意味を持つもの）である。
【００５５】
また、このＳＴＥＰ２０に続くＳＴＥＰ２１では、処理系内圧力ＰＴの現在の検出値が、リークチェックモードの終了時における処理系内圧力の検出値ＰＴＬＣとして記憶保持される。この検出値ＰＴＬＣは後述の判定モードにおいて用いられるものである。
【００５６】
図３の説明に戻って、以上説明したようにしてリークチェックモードが終了すると、判定モードに移行する。この判定モードでは、ＥＣＵ２は、所定時間（例えば３秒）に渡って、バイパス弁２２及びベントシャット弁２５を開弁保持すると共に、パージ制御弁２６を引き続き、閉弁保持する。これにより、前記大気開放モードと同様、蒸発燃料処理系３はその全体が大気側に開放される。従って、処理系内圧力ＰＴは、グラフａで示すように大気圧に向かって変化する。
【００５７】
そして、この判定モードでは、ＥＣＵ２は、図５のフローチャートに示す処理を実行する。すなわち、ＥＣＵ２は、まず、前記補正チェックモードにおいて別途求めた燃料消費量ＲＧＡＳとリークチェックモードにおいて別途求めた燃料消費量ＬＧＡＳとの差の絶対値｜ＲＧＡＳ−ＬＧＡＳ｜が所定値以上であるか否かをＳＴＥＰ３１で判断する。ここで、本実施形態では、補正チェックモードの処理に要する時間と、リークチェックモードの処理に要する時間とはほぼ同一であり、両モードのそれぞれにおけるエンジン１の運転状態が同等であれば、上記絶対値｜ＲＧＡＳ−ＬＧＡＳ｜は十分に小さい値（略「０」）になる。そして、｜ＲＧＡＳ−ＬＧＡＳ｜≧所定値である場合には、補正チェックモード及びリークチェックモードにおけるエンジン１の運転状態が比較的大きく相違していると考えられる。このように両モードにおけるエンジン１の運転状態が比較的大きく相違していると、蒸発燃料の発生条件が異なるため、補正チェックモードで求めた前記補正量ＲＶＡＲにより、後述するように基本診断パラメータＬＶＡＲを補正して、最終的な診断パラメータを得ることは適当でない。
【００５８】
そこで、ＳＴＥＰ３１において、｜ＲＧＡＳ−ＬＧＡＳ｜≧所定値である場合には、ＥＣＵ２は、タンク側蒸発燃料処理系３ａの漏れの有無の最終的な診断を行うことなく、図５の処理を終了する。
【００５９】
一方、ＳＴＥＰ３１で｜ＲＧＡＳ−ＬＧＡＳ｜＜所定値である場合には、ＥＣＵ２は、前記図４のＳＴＥＰ２１で保持した、リークチェックモードの終了時における処理系内圧力の検出値ＰＴＬＣが正圧（大気圧よりも高い圧力）であったか否かをＳＴＥＰ３２で判断する。このときＰＴＬＣが正圧である場合には、何らかの原因（スロッシュ発生以外の条件）で多量の蒸発燃料が発生して、処理系内圧力ＰＴが正圧にまで変化したと考えられる。従って、この場合には、ＥＣＵ２は、タンク側蒸発燃料処理系３ａの漏れの有無の最終的な診断を行うことなく、図５の処理を終了する。
【００６０】
ＳＴＥＰ３２でリークチェックモードの終了時における処理系内圧力の検出値ＰＴＬＣが正圧で無い場合には、ＥＣＵ２は、ＳＴＥＰ３３において、前記式（１）により求めた基本診断パラメータＬＶＡＲを、補正チェックモードで求めた前記補正量ＲＶＡＲに基づいて次式（２）により補正し、これにより、タンク側蒸発燃料処理系３ａの漏れの有無を最終的に判断するための診断パラメータＬＶＡＲＦを求める。
【００６１】
ＬＶＡＲＦ＝ＬＶＡＲ−Ｋ・ＲＶＡＲ　　　……（２）
ここで、Ｋは所定の係数であり、次のような意味をもつ。補正チェックモードで求める補正量ＲＶＡＲは、処理系内圧力ＰＴが大気圧から上昇する場合における単位時間当たりの圧力上昇量であるのに対し、リークチェックモードで求める基本診断パラメータＬＶＡＲは、処理系内圧力ＰＴが負圧状態で上昇する場合における単位時間当たりの圧力上昇量である。そこで、これらの圧力上昇の条件の違いによる影響を補償するために、式（２）では、係数Ｋを補正量ＲＶＡＲに乗算した上で、基本診断パラメータＬＶＡＲから減算するようにしている。このようにして、診断パラメータＬＶＡＲＦを求めることにより、蒸発燃料の発生（より詳しくは定常的な蒸発燃料の発生）に伴う圧力変化の影響が補償され、該診断パラメータＬＶＡＲＦは、タンク側蒸発燃料処理系３ａの漏れの有無に応じた値を示すものとなる。特に、本実施形態では、スロッシュ有りの状態では、漏れ診断を中断するので、基本診断パラメータＬＶＡＲや、スロッシュ（燃料の強い揺れ）に伴う急激な蒸発燃料の発生の影響は含まれないので、診断パラメータＬＶＡＲＦと、タンク側蒸発燃料処理系３ａの漏れの有無とは相関性が高いものとなる。
【００６２】
上記のように診断パラメータＬＶＡＲＦを求めた後、ＥＣＵ２は、次に、ＳＴＥＰ３４〜３７の処理を実行し、タンク側蒸発燃料処理系３ａの最終的な漏れ診断を行う。すなわち、ＥＣＵ２は、ＳＴＥＰ３４，３６において、診断パラメータＬＶＡＲＦを二種類の所定の漏れ判定閾値ＬＨ，ＬＬ（ＬＨ＞ＬＬ）と比較し、ＬＶＡＲＦ≧ＬＨである場合には、リークチェックモードにおける処理系内圧力ＰＴの上昇度合いが大きいので、タンク側蒸発燃料処理系３ａの漏れが有ると判断する（ＳＴＥＰ３５）。また、ＬＶＡＲＦ≦ＬＬである場合には、リークチェックモードにおける処理系内圧力ＰＴの上昇度合いが十分に小さいので、タンク側蒸発燃料処理系３ａの漏れが無いと判断する（ＳＴＥＰ３７）。また、ＬＬ＜ＬＶＡＲＦ＜ＬＨである場合には、リークチェックモードにおける処理系内圧力ＰＴの上昇が、タンク側蒸発燃料処理系３ａの漏れ以外の要因もあり得るので、漏れの有無の最終判断を下すことなく、図５の処理を終了する。
【００６３】
以上説明したタンク側漏れ診断処理によって、タンク側蒸発燃料処理系３ａの漏れの有無の診断がエンジン１の運転中に行われる。この場合、特に、ＥＣＵ２の燃料揺れ判断処理によって、スロッシュ有りと判断された状態では、タンク側蒸発燃料処理系３ａの漏れの有無の診断処理が中断されるので、漏れの有無の誤判断を防止できる。また、実際のスロッシュの発生の有無を前記燃料揺れ判断処理によって、高い信頼性で判断できることから、実際にスロッシュが発生していない状態でのみ、タンク側蒸発燃料処理系３ａの漏れの有無を最終的に判断することができる。このため、前記図５の判定処理では、実際のスロッシュの発生の有無を考慮する必要がないので、例えば図５のＳＴＥＰ３４で用いる漏れ判定閾値ＬＨを従来よりも低めに設定することが可能となる。この結果、タンク側蒸発燃料処理系３ａの漏れ有り、漏れ無しの判断を、その信頼性を確保しつつ下すことができる機会を多くすることができる。
【００６４】
次に、キャニスタ側蒸発燃料処理系３ｂの漏れの診断処理（以下、キャニスタ側漏れ診断処理という）を図６のタイムチャートを参照して説明する。尚、図６中の実線のグラフｂは、キャニスタ側漏れ診断処理において圧力センサ２３で検出される処理系内圧力ＰＴ（大気圧との差圧）の変化の様子を例示するものであり、二点鎖線のグラフｃは、キャニスタ１７内の圧力（大気圧との差圧）の変化の様子を例示するものである。
【００６５】
図６に示すように、キャニスタ側漏れ診断処理は、その処理を大別すると、大気開放モード、減圧モード、圧力安定化モード、リークチェック／判定モード、及び圧力復帰モードから成り、これらのモードの処理が順次実行される。
【００６６】
キャニスタ側漏れ診断処理の最初のモードである大気開放モードでは、ＥＣＵ２は、バイパス弁２２及びベントシャット弁２５を開弁保持し、パージ制御弁２６を閉弁保持する。これにより、蒸発燃料処理系３の全体が大気に開放されることとなる。従って、圧力センサ２３で検出される処理系内圧力ＰＴ及びキャニスタ内の圧力は、それぞれ例えばグラフｂ，ｃで示すように大気圧へと変化する。この大気開放モードに要する時間は、例えば１０〜１５秒である。
【００６７】
大気開放モードで圧力センサ２３で検出される処理系内圧力ＰＴが大気圧とほぼ等しい圧力になると、減圧モードに移行する。この減圧モードでは、ＥＣＵ２は、バイパス弁２２を開弁保持させると共に、ベントシャット弁２５を閉弁保持させる。さらに、ＥＣＵ２は、パージ制御弁２６をほぼ全開状態に開弁保持する。これにより、吸気管４内の負圧を利用して、キャニスタ１７内の圧力が所要の圧力（例えば−５．３ｋＰａ〜−８．０ｋＰａ（−４０ｍｍＨｇ〜−６０ｍｍＨｇ））まで減圧される。この減圧モードに要する時間は、例えば１秒〜１１秒である。尚、この場合、圧力センサ２３で検出される処理系内圧力ＰＴは、キャニスタ１７内の負圧の状態を反映した値を示すが、燃料タンク１１内の実際の圧力は、処理系内圧力ＰＴの検出値が示すほどには、負圧状態にされていない。これは、燃料タンク１１の容積が大きいと共に、上記減圧モードの実行時間が比較的短いためである。
【００６８】
減圧モードが終了すると、圧力安定化モードに移行する。この圧力安定化モードでは、ＥＣＵ２は、バイパス弁２２、ベントシャット弁２５、パージ制御弁２６を全て閉弁保持する。これにより、タンク側蒸発燃料処理系３ａ及びキャニスタ側蒸発燃料処理系３ｂが分離した状態でそれぞれ閉空間状態になる。このとき、キャニスタ１７内の圧力（キャニスタ側蒸発燃料処理系３ｂ内の圧力）は、キャニスタ側蒸発燃料処理系３ｂの漏れが無ければ、二点鎖線のグラフｃで示すように、負圧状態でほぼ一定に維持される。一方、キャニスタ側蒸発燃料処理系３ｂの漏れがある場合には、キャニスタ１７内の圧力は、破線のグラフｃ’で示すように、大気圧に向かって上昇・復帰していく。ここで、圧力安定化モードの実行時間は、比較的長い所定時間（例えば４０秒）に設定されている。このため、キャニスタ側蒸発燃料処理系３ｂの漏れが有る場合には、その漏れが比較的微小なもの（例えば０．５ｍｍ径の穴からの漏れ）であっても、圧力安定化モードの実行時間内にキャニスタ１７内の圧力が大気圧付近まで復帰する。
【００６９】
尚、上記圧力安定化モードにおいて圧力センサ２３で検出される処理系内圧力ＰＴは、キャニスタ側蒸発燃料処理系３ｂの漏れの有無によらずに、実線のグラフｂで示すように大気圧に向かって上昇・復帰する。これは、先にも述べたように減圧モードにおいて、燃料タンク１１内の実際の圧力は、ほとんど負圧状態になっていないため、圧力安定化モードでのバイパス弁２２の閉弁により、圧力センサ２３で検出される処理系内圧力ＰＴが燃料タンク１１内の実際の圧力と同等になるからである。
【００７０】
圧力安定化モードが終了すると、リークチェック／判定モードに移行する。このリークチェック／判定モードでは、ＥＣＵ２は、バイパス弁２２を開弁保持する。また、ＥＣＵ２は、ベントシャット弁２５及びパージ制御弁２６を引き続き閉弁保持する。このリークチェック／判定モードに要する時間は、例えば３秒である。このとき、キャニスタ側蒸発燃料処理系３ｂの漏れが無い場合には、前述の通りキャニスタ１７内の圧力が圧力安定化モードで負圧状態に維持されているため、その影響によって、圧力センサ２３が検出する処理系内圧力ＰＴは、実線のグラフｂで示すように、基本的には、負圧側（圧力が減少する方向）に比較的大きく変化する。また、キャニスタ側蒸発燃料処理系３ｂの漏れがある場合には、キャニスタ１７内の圧力が圧力安定化モードで大気圧付近まで復帰しているので、リークチェック／判定モードで圧力センサ２３が検出する処理系内圧力ＰＴは、負圧側に大きく変化するようなことはない。
【００７１】
そこで、本実施形態では、ＥＣＵ２は、例えば、リークチェック／判定モードの開始時から、所定時間（例えば３秒）が経過するまでに処理系内圧力ＰＴの検出値が所定の漏れ判定閾値以上、負圧側に変化した場合には、キャニスタ側蒸発燃料処理系３ｂの漏れが無いと判断し、これ以外の場合には、漏れが有ると判断する。但し、リークチェック／判定モードで燃料タンク１１内の燃料の強い揺れ、すなわちスロッシュが発生している場合には、その時に急激に発生する蒸発燃料の影響によって、キャニスタ側蒸発燃料処理系３ｂの漏れが無くても、処理系内圧力ＰＴが負圧側に大きく変化しない場合がある。このため、ＥＣＵ２は、リークチェック／判定モードの開始時に、前述の燃料揺れ判断処理により判断した現在の燃料の揺れがスロッシュ有りの状態であるか否かを判断する。そして、スロッシュ有りの状態であるときには、ＥＣＵ２は、上記のようなキャニスタ側蒸発燃料処理系３ｂの漏れの有無の判断を行わず、リークチェック／判定モードを終了する。これにより、キャニスタ側蒸発燃料処理系３ｂの漏れの診断は無効にされる。また、スロッシュ無しの状態であるときには、ＥＣＵ２は、キャニスタ側蒸発燃料処理系３ｂの漏れの有無を上述のように判断する。
【００７２】
リークチェック／判定モードが終了すると、圧力復帰モードに移行する。この圧力復帰モードでは、ＥＣＵ２は、ベントシャット弁２５を開弁保持すると共に、バイパス弁２２及びパージ制御弁２６をそれぞれ引き続き、開弁状態、閉弁状態に保持する。これにより、蒸発燃料処理系３ａ内の全体の圧力が大気圧に復帰される。以上により、キャニスタ側漏れ診断処理が終了する。
【００７３】
以上説明したキャニスタ側漏れ診断処理によって、キャニスタ側蒸発燃料処理系３ｂの漏れの有無の診断がエンジン１の運転中に行われる。この場合、ＥＣＵ２の燃料揺れ判断処理によってスロッシュ有りと判断された状態では、キャニスタ側蒸発燃料処理系３ｂの漏れの有無の診断処理が中断されるので、漏れの有無の誤判断を防止できる。また、実際のスロッシュの発生の有無を前記燃料揺れ判断処理によって、高い信頼性で判断できることから、前記リークチェック／判定モードで、キャニスタ側蒸発燃料処理系３ｂの漏れの有無を最終的に判断するための漏れ判定閾値を、実際のスロッシュの発生の有無を考慮することなく設定することができる。この結果、キャニスタ側蒸発燃料処理系３ｂの漏れ有り、漏れ無しの判断を、信頼性を確保しつつ下すことができる機会を多くすることができる。
【００７４】
次に、本発明の第２実施形態を図７のフローチャートを参照して説明する。尚、本実施形態は、ＥＣＵ２の燃料揺れ判断処理のみが前記第１実施形態と相違するものである。従って、本実施形態の説明では、燃料揺れ判断処理以外の処理及び構成については前記第１実施形態と同一の参照符号を用い、説明を省略する。
【００７５】
本実施形態では、ＥＣＵ２による燃料揺れ判断処理は、エンジン１の運転中に、図７のフローチャートに示すルーチン処理を所定のサイクルタイム（例えば１秒周期）で実行することにより行われる。
【００７６】
この燃料揺れ判断処理では、ＥＣＵ２は、ＳＴＥＰ４１において、前記車速センサ１５による検出速度ＶＰの現在値（今回値）ＶＰ（ｋ）と操舵角センサ１６による検出操舵角ＳＡの現在値（今回値）ＳＡ（ｋ）を読み込む。
【００７７】
次いで、ＥＣＵ２は、ＳＴＥＰ４２において、検出操舵角ＳＡの今回値ＳＡ（ｋ）と前回値ＳＡ（ｋ−１）（前回のサイクルタイムにおける検出操舵角ＳＡ）との差の絶対値｜ＳＡ（ｋ）−ＳＡ（ｋ−１）｜、すなわち、１サイクルタイム当たりの検出操舵角ＳＡの変化量ΔＳＡ（以下、舵角変化量ΔＳＡという）を算出する。
【００７８】
次いで、ＥＣＵ２は、ＳＴＥＰ４３において、スロッシュ（燃料の強い揺れ）が発生しているか否かを判断するための判定閾値ＳＡＳＨ２を現在の検出速度ＶＰ（ｋ）に基づいて設定する。該判定閾値ＳＡＳＨ２は、上記舵角変化量ΔＳＡと比較する閾値である。そして、該判定閾値ＳＡＳＨ２の設定は、ＶＰ（ｋ）から、あらかじめ定められたデータテーブルを検索することで行われ、基本的には、ＶＰ（ｋ）が大きい程、判定閾値ＳＡＳＨ２は、より小さくなるように設定される。例えば、ＶＰ（ｋ）＝５０ｋｍ／ｈではＳＡＳＨ２＝２２．５度、ＶＰ（ｋ）＝１００ｋｍ／ｈではＳＡＳＨ２＝５度というように判定閾値ＳＡＳＨ２が設定される。
【００７９】
次いで、ＥＣＵ２は、ＳＴＥＰ４２で求めた舵角変化量ΔＳＡをＳＴＥＰ４４において判定閾値ＳＡＳＨ２と比較する。このときΔＳＡ＞ＳＡＳＨ２であるときには、車両のステアリングが左右いずれかの方向に比較的素早く操舵された状況であり、燃料タンク１１内の燃料の強い揺れが発生する可能性が高い。このため、ＥＣＵ２は、ＳＴＥＰ４４でΔＳＡ＞ＳＡＳ　Ｈ２であるときには、ＳＴＥＰ４５においてスロッシュ有りと判断し、今回のサイクルタイムにおける燃料揺れ判断処理を終了する。また、ΔＳＡ≦ＳＡＳＨ２であるときには、ＥＣＵ２は、ＳＴＥＰ４６でスロッシュ無しと判断し、今回のサイクルタイムにおける燃料揺れ判断処理を終了する。尚、これらの判断結果は、例えばフラグの値としてＥＣＵ２により記憶保持される。
【００８０】
上述のように車両の検出速度ＶＰ（ｋ）に応じて設定した判定閾値ＳＡＳＨ２と舵角変化量ΔＳＡを比較することにより、スロッシュの発生の有無を適正に判断できる。従って、前記第１実施形態と同様に、タンク側蒸発燃料処理系３ａやキャニスタ側蒸発燃料処理系３ｂの漏れの有無の誤判断を防止できると共に、その判断を下す機会を多くすることができる。
【００８１】
次に本発明の第３実施形態を図８を参照して説明する。尚、本実施形態は、ＥＣＵ２の燃料揺れ判断処理のみが前記第１実施形態と相違するものである。従って、本実施形態の説明では、燃料揺れ判断処理以外の処理及び構成については前記第１実施形態と同一の参照符号を用い、説明を省略する。
【００８２】
前述の第１及び第２実施形態では、検出操舵角あるいはその変化量（単位時間当たりの変化量）が所定の判定閾値よりも大きいか否かのみにより、スロッシュの発生の有無を判断するようにしたが、蒸発燃料を急激に発生させるようなスロッシュ（燃料の強い揺れ）は、車両の進路変更（走行レーン）の変更を行う際に行われるような操舵形態でステアリングが操作されたときに特に生じやすい。本実施形態では、このようなステアリング操作を把握して、スロッシュの発生の有無を判断するものである。この場合における燃料揺れ判断処理は、エンジン１の運転中に、図８のフローチャートに示すルーチン処理を所定のサイクルタイム（例えば１秒周期）で実行することにより行われる。
【００８３】
この燃料揺れ判断処理では、ＥＣＵ２は、ＳＴＥＰ５１において、前記車速センサ１５による検出速度ＶＰの現在値（今回値）ＶＰ（ｋ）と操舵角センサ１６による検出操舵角ＳＡの現在値（今回値）ＳＡ（ｋ）を読み込む。尚、検出操舵角ＳＡは、前記第１実施形態で説明した通り、例えば車両のステアリングが右旋回方向に操舵されているときには正の値、左旋回方向に操舵されているときには負の値である。
【００８４】
次いで、ＥＣＵ２は、ＳＴＥＰ５２において、スロッシュが発生しているか否かを判断するための第１判定閾値ＳＡＳＨ３及び第２判定閾値ＳＡＳＨ４をそれぞれ現在の検出速度ＶＰ（ｋ）に基づいて設定する。これらの判定閾値ＳＡＳＨ３，ＳＡＳＨ４は、検出操舵角ＳＡと比較する閾値である。そして、これらの判定閾値ＳＡＳＨ３，ＳＡＳＨ４の設定は、ＶＰ（ｋ）から、各判定閾値ＳＡＳＨ３、ＳＡＳＨ４毎に各別にあらかじめ定められたデータテーブルを検索することで行われ、基本的には、ＶＰ（ｋ）が大きい程、各判定閾値ＳＡＳＨ３、ＳＡＳＨ４は、より小さくなるように設定される。例えば、ＶＰ（ｋ）＝５０ｋｍ／ｈではＳＡＳＨ３＝４５度、ＶＰ（ｋ）＝１００ｋｍ／ｈではＳＡＳＨ３＝１０度というように判定閾値ＳＡＳＨ３が設定される。また、ＶＰ（ｋ）＝５０ｋｍ／ｈではＳＡＳＨ４＝３０度、ＶＰ（ｋ）＝１００ｋｍ／ｈではＳＡＳＨ４＝５度というように判定閾値ＳＡＳＨ４が設定される。尚、判定閾値ＳＡＳＨ３及びＳＡＳＨ４はいずれも正の値である。また、第２判定閾値ＳＡＳＨ４は、第１判定閾値ＳＡＳＨ３よりも小さな値である。
【００８５】
次いで、ＥＣＵ２は、フラグＦ／Ａ及びＦ／Ｂの値をそれぞれＳＴＥＰ５３，５４で判断する。これらのフラグＦ／Ａ、Ｆ／Ｂは、例えば車両の直進走行状態では、Ｆ　／Ａ＝Ｆ／Ｂ＝０である。
【００８６】
ＳＴＥＰ５３，５４でＦ／Ａ＝Ｆ／Ｂ＝０である場合には、ＥＣＵ２は、ＳＴＥＰ５５において、現在の検出操舵角ＳＡ（ｋ）が前記第１判定閾値ＳＡＳＨ３よりも大きいか否か、換言すれば、車両の直進走行状態もしくはこれに近い状態（スロッシュが発生し難い状態）から、ステアリングが右旋回方向に第１判定閾値ＳＡＳＨ３を越える操舵角で操作されたか否かを判断する。そして、この判断結果がＹＥＳである場合には、ＥＣＵ２は、フラグＦ／Ａの値を「１」に設定し（ＳＴＥＰ５６）、今回の図８の処理を終了する。
【００８７】
また、ＳＴＥＰ５５の判断結果がＮＯである場合には、ＥＣＵ２は、さらに、ＳＴＥＰ５７において、現在の検出操舵角ＳＡ（ｋ）が前記第１判定閾値ＳＡＳＨ３の符号を反転させた値−ＳＡＳＨ３（＜０）よりも小さいか否か、換言すれば、車両の直進状態から、ステアリングが左旋回方向に第１判定閾値ＳＡＳＨ３を越える大きさの操舵角で操作されたか否かを判断する。そして、この判断結果がＮＯである場合には、ＥＣＵ２は、フラグＦ／Ｂの値を「１」に設定し（ＳＴＥＰ５８）、今回の図８の処理を終了する。
【００８８】
一方、ＳＴＥＰ５５，５７の判断結果がＮＯである場合には、車両の直進走行状態のように、スロッシュが発生しない状態である。そして、この場合には、ＥＣＵ２は、ＳＴＥＰ５６又は５８でフラグＦ／Ａ又はＦ／Ｂが「０」から「１」に切替った時からの時間を計時するカウントダウンタイマＴＭの値をＳＴＥＰ５９で所定時間ＴＭ０（例えば５秒）に初期化する。さらにＥＣＵ２は、ＳＴＥＰ６０においてスロッシュ無しと判定した後、今回の図８の処理を終了する。
【００８９】
車両のステアリングの右旋回方向への操舵（ＳＡ（ｋ）＞ＳＡＳＨ３となるような操舵）によって前記ＳＴＥＰ５６でフラグＦ／Ａの値が「１」に設定されると、次回のサイクルタイムから、ＳＴＥＰ５３における判断結果がＹＥＳになる。このとき、ＥＣＵ２は、前記ＳＴＥＰ５９で初期化されたカウントダウンタイマＴＭの値が「０」になったか否か、換言すれば、カウントダウンタイマＴＭが、前記所定時間ＴＭ０の計時を完了したか否かをＳＴＥＰ６１で判断する。そして、このとき、ＴＭ≠０である場合には、ＥＣＵ２は、さらに、現在の検出操舵角ＳＡ（ｋ）が、前記第２判定閾値ＳＡＳＨ４の符号を反転させた値−ＳＡＳＨ４（＜０）よりも小さいか否か、換言すれば、ステアリングが左旋回方向に第２判定閾値ＳＡＳＨ４を越える大きさの操舵角で操作されたか否かをＳＴＥＰ６２で判断する。
【００９０】
ここで、ＳＴＥＰ６２の判断結果がＹＥＳとなるような状況は、ステアリングを右旋回方向に操舵（ＳＡ（ｋ）＞ＳＡＳＨ３となるような操舵）した後、前記所定時間ＴＭ０を経過する前に左旋回方向に操舵（ＳＡ（ｋ）＜−ＳＡＳＨ４となるような操舵）を行った場合である。つまり、基本的には車両を右レーン側に進路変更したような場合に、ＳＴＥＰ６２の判断結果がＹＥＳとなる。そして、このような進路変更を行った場合には、ステアリングの操舵が比較的短い時間の間に右旋回方向から左旋回方向に切換えられることで、スロッシュ（燃料の強い揺れ）が生じる。そこで、ＥＣＵ２は、ＳＴＥＰ６２の判断結果がＹＥＳである場合には、ＳＴＥＰ６３でスロッシュ有りと判断し、今回の図８の処理を終了する。
【００９１】
また、ＳＴＥＰ６２の判断結果がＮＯである場合には、ステアリングの右旋回方向の操舵が継続しているか、もしくは、操舵角の戻し量が小さい状態（進路変更の途中等）である。そして、この場合には、ＥＣＵ２は、前記ＳＴＥＰ５６でフラグＦ／Ａの値を「１」に維持し、今回の図８の処理を終了する。
【００９２】
前記ＳＴＥＰ６１でＴＭ＝０となった場合、すなわち、ステアリングを右旋回方向に操舵（ＳＡ（ｋ）＞ＳＡＳＨ３となるような操舵）した後、前記所定時間ＴＭ０を経過しても、左旋回方向にステアリング操舵が戻されない場合は、例えば走行路のカーブにおける定常的な旋回走行（ある程度の時間継続するような旋回走行）の状態である。そして、このような場合には、スロッシュは発生し難い。そこで、この場合には、ＥＣＵ２は、ＳＴＥＰ６４でフラグＦ／Ａ，Ｆ／Ｂの値を両者とも「０」にリセットし、さらにＳＴＥＰ６５において、スロッシュ無しと判定した後、今回の図８の処理を終了する。
【００９３】
また、車両のステアリングの左旋回方向への操舵（ＳＡ（ｋ）＜−ＳＡＳＨ３となるような操舵）によって前記ＳＴＥＰ５８でフラグＦ／Ｂの値が「１」に設定されると、次回のサイクルタイムから、ＳＴＥＰ５４における判断結果がＹＥＳになる。このとき、ＥＣＵ２は、前記ＳＴＥＰ６１と同様、カウントダウンタイマＴＭの値が「０」になったか否かをＳＴＥＰ６６で判断する。そして、このとき、ＴＭ≠０である場合には、ＥＣＵ２は、さらに、現在の検出操舵角ＳＡ（ｋ）が、前記第２判定閾値ＳＡＳＨ４よりも大きいか否か、換言すれば、ステアリングが右旋回方向に第２判定閾値ＳＡＳＨ４を越える操舵角で操作されたか否かをＳＴＥＰ６７で判断する。
【００９４】
ここで、ＳＴＥＰ６７の判断結果がＹＥＳとなるような状況は、ステアリングを左旋回方向に操舵（ＳＡ（ｋ）＜−ＳＡＳＨ３となるような操舵）した後、前記所定時間ＴＭ０を経過する前に、右旋回方向に操舵（ＳＡ（ｋ）＞ＳＡＳＨ４となるような操舵）を行った場合である。つまり、基本的には車両を左レーン側に進路変更したような場合に、ＳＴＥＰ６７の判断結果がＹＥＳとなる。そして、このような進路変更を行った場合には、ステアリングの操舵が比較的短い時間の間に左旋回方向から右旋回方向に切換えられることで、スロッシュ（燃料の強い揺れ）が生じる。そこで、ＥＣＵ２は、ＳＴＥＰ６７の判断結果がＹＥＳである場合には、ＳＴＥＰ６８でスロッシュ有りと判断し、今回の図８の処理を終了する。
【００９５】
また、ＳＴＥＰ６７の判断結果がＮＯである場合には、ステアリングの左旋回方向の操舵が継続しているか、もしくは、操舵角の戻し量が小さい状態（進路変更の途中等）である。そして、この場合には、ＥＣＵ２は、前記ＳＴＥＰ５８でフラグＦ／Ｂの値を「１」に維持し、今回の図８の処理を終了する。
【００９６】
尚、前記ＳＴＥＰ６６でＴＭ＝０となった場合におけるＥＣＵ２の処理は、前記ＳＴＥＰ６１でＴＭ＝０となった場合と同じであり、前記ＳＴＥＰ６４，６５の処理が実行された後、今回の図８の処理が終了する。従って、フラグＦ／Ａ，Ｆ／Ｂの値が「０」にリセットされると共に、スロッシュ無しと判定される。
【００９７】
以上説明した図８の処理（燃料揺れ判断処理）によって、基本的にはスロッシュが真に発生するような状況（車両の進路変更を行うような状況）でのみスロッシュ有りと判定されるようになり、特にスロッシュ有りの判定結果の信頼性をより高めることができる。逆に言えば、スロッシュが実際には発生していないような状況で、スロッシュ有りと誤判定するような場合がほとんどなくなる。その結果、前記第１実施形態で説明したような効果をより効果的に奏することができる。特に、漏れ有無の最終的判断を下せるような機会をより多くすることができる。
【００９８】
次に、本発明の第４実施形態を図９を参照して説明する。尚、本実施形態は、ＥＣＵ２の燃料揺れ判断処理のみが前記第１実施形態と相違するものである。従って、本実施形態の説明では、燃料揺れ判断処理以外の処理及び構成については前記第１実施形態と同一の参照符号を用い、説明を省略する。
【００９９】
本実施形態では、前記第３実施形態と同様、車両の進路変更の際のようなステアリング操作を把握して、スロッシュの発生の有無を判断するものである。この場合における燃料揺れ判断処理は、エンジン１の運転中に、図９のフローチャートに示すルーチン処理を所定のサイクルタイム（例えば１秒周期）で実行することにより行われる。
【０１００】
この燃料揺れ判断処理では、ＥＣＵ２は、ＳＴＥＰ６１において、前記車速センサ１５による検出速度ＶＰの現在値（今回値）ＶＰ（ｋ）と操舵角センサ１６による検出操舵角ＳＡの現在値（今回値）ＳＡ（ｋ）を読み込む。
【０１０１】
次いで、ＥＣＵ２は、ＳＴＥＰ６２において、検出操舵角ＳＡの今回値ＳＡ（ｋ）と前回値ＳＡ（ｋ−１）（前回のサイクルタイムにおける検出操舵角ＳＡ）との差（ＳＡ（ｋ）−ＳＡ（ｋ−１））、すなわち、１サイクルタイム当たりの検出操舵角ＳＡの変化量ΔＳＡ（舵角変化量ΔＳＡ）を算出する。尚、本実施形態における舵角変化量は、右旋回方向に操舵角が変化した場合には、正の値となり、左旋回方向に操舵角が変化した場合には、負の値となる。
【０１０２】
次いで、ＥＣＵ２は、ＳＴＥＰ６３において、スロッシュが発生しているか否かを判断するための第１判定閾値ＳＡＳＨ５及び第２判定閾値ＳＡＳＨ６をそれぞれ現在の検出速度ＶＰ（ｋ）に基づいて設定する。これらの判定閾値ＳＡＳＨ５，ＳＡＳＨ６は、舵角変化量ΔＳＡと比較する閾値である。そして、これらの判定閾値ＳＡＳＨ５，ＳＡＳＨ６の設定は、ＶＰ（ｋ）から、各判定閾値ＳＡＳＨ５、ＳＡＳＨ６毎に各別にあらかじめ定められたデータテーブルを検索することで行われ、基本的には、ＶＰ（ｋ）が大きい程、各判定閾値ＳＡＳＨ５、ＳＡＳＨ６は、より小さくなるように設定される。例えば、ＶＰ（ｋ）＝５０ｋｍ／ｈではＳＡＳＨ５＝３０度、ＶＰ（ｋ）＝１００ｋｍ／ｈではＳＡＳＨ５＝１５度というように判定閾値ＳＡＳＨ５が設定される。また、ＶＰ（ｋ）＝５０ｋｍ／ｈではＳＡＳＨ６＝１０度、ＶＰ（ｋ）＝１００ｋｍ／ｈではＳＡＳＨ６＝５度というように判定閾値ＳＡＳＨ６が設定される。尚、判定閾値ＳＡＳＨ５及びＳＡＳＨ６はいずれも正の値である。また、第２判定閾値ＳＡＳＨ６は、第１判定閾値ＳＡＳＨ５よりも小さな値である。
【０１０３】
次いで、ＥＣＵ２は、フラグＦ／ＡＡ及びＦ／　ＢＢの値をそれぞれＳＴＥＰ６４，６５で判断する。これらのフラグＦ／ＡＡ、Ｆ／ＢＢは、車両の直進走行状態あるいは定常的な旋回走行状態では、Ｆ／ＡＡ＝Ｆ／ＢＢ＝０である。
【０１０４】
ＳＴＥＰ６４，６５でＦ／ＡＡ＝Ｆ／ＢＢ＝０である場合には、ＥＣＵ２は、ＳＴＥＰ６６において、今回の舵角変化量ΔＳＡが前記第１判定閾値ＳＡＳＨ５よりも大きいか否か、換言すれば、車両の直進走行状態や、定常的な旋回走行状態のように、ステアリングの操舵角がほぼ一定に維持されている状態（このような状態ではスロッシュは発生し難い）から、ステアリングが右旋回方向に第１判定閾値ＳＡＳＨ５を越える舵角変化量ΔＳＡで操作されたか否かを判断する。そして、この判断結果がＹＥＳである場合には、ＥＣＵ２は、フラグＦ／ＡＡの値を「１」に設定し（ＳＴＥＰ６７）、今回の図９の処理を終了する。
【０１０５】
また、ＳＴＥＰ６６の判断結果がＮＯである場合には、ＥＣＵ２は、さらに、ＳＴＥＰ６８において、今回の舵角変化量ΔＳＡが前記第１判定閾値ＳＡＳＨ５の符号を反転させた値−ＳＡＳＨ５（＜０）よりも小さいか否か、換言すれば、ステアリングの操舵角をほぼ一定に保持した状態から、ステアリングが左旋回方向に第１判定閾値ＳＡＳＨ５を越える大きさの舵角変化量ΔＳＡで操作されたか否かを判断する。そして、この判断結果がＮＯである場合には、ＥＣＵ２は、フラグＦ／ＢＢの値を「１」に設定し（ＳＴＥＰ６９）、今回の図９の処理を終了する。
【０１０６】
一方、ＳＴＥＰ６６，６８の判断結果がＮＯである場合には、ステアリングの操舵角をほぼ一定に保持した状態であり、スロッシュが発生しない状態である。そして、この場合には、ＥＣＵ２は、ＳＴＥＰ６７又は６９でフラグＦ／ＡＡ又はＦ／ＢＢが「０」から「１」に切替った時からの時間を計時するカウントダウンタイマＴＭＭ値をＳＴＥＰ７０で所定時間ＴＭＭ０（例えば５秒）に初期化する。さらにＥＣＵ２は、ＳＴＥＰ７１においてスロッシュ無しと判定した後、今回の図９の処理を終了する。
【０１０７】
車両のステアリングの右旋回方向への操舵（ΔＳＡ＞ＳＡＳＨ５となるような操舵）によって前記ＳＴＥＰ６７でフラグＦ／ＡＡの値が「１」に設定されると、次回のサイクルタイムから、ＳＴＥＰ６４における判断結果がＹＥＳになる。このとき、ＥＣＵ２は、前記ＳＴＥＰ７０で初期化されたカウントダウンタイマＴＭの値が「０」になったか否かをＳＴＥＰ７２で判断する。そして、このとき、ＴＭ≠０である場合には、ＥＣＵ２は、さらに、今回の舵角変化量ΔＳＡが、前記第２判定閾値ＳＡＳＨ６の符号を反転させた値−ＳＡＳＨ５（＜０）よりも小さいか否か、換言すれば、ステアリングが左旋回方向に第２判定閾値ＳＡＳＨ６を越える大きさの舵角変化量ΔＳＡで操作されたか否かをＳＴＥＰ７３で判断する。
【０１０８】
ここで、ＳＴＥＰ７３の判断結果がＹＥＳとなるような状況は、ステアリングを右旋回方向に操舵（ΔＳＡ＞ＳＡＳＨ５となるような操舵）した後、前記所定時間ＴＭＭ０を経過する前に左旋回方向に操舵（ΔＳＡ＜−ＳＡＳＨ６となるような操舵）を行った場合である。つまり、車両の右側への進路変更のように、車両の走行位置を右側に変更したような場合に、ＳＴＥＰ７３の判断結果がＹＥＳとなる。そして、このような走行位置変更を行った場合には、ステアリングの操舵方向が比較的短い時間の間に右旋回方向から左旋回方向に切換えられることで、スロッシュ（燃料の強い揺れ）が生じる。そこで、ＥＣＵ２は、ＳＴＥＰ７３の判断結果がＹＥＳである場合には、ＳＴＥＰ７４でスロッシュ有りと判断し、今回の図９の処理を終了する。
【０１０９】
また、ＳＴＥＰ７３の判断結果がＮＯである場合には、ステアリングの右旋回方向の操舵後に、左旋回方向へはほとんど操舵されていない状態（進路変更の途中等）である。そして、この場合には、ＥＣＵ２は、前記ＳＴＥＰ６７でフラグＦ／ＡＡの値を「１」に維持し、今回の図９の処理を終了する。
【０１１０】
前記ＳＴＥＰ７２でＴＭＭ＝０となった場合、すなわち、ステアリングを右旋回方向に操舵（ΔＳＡ＞ＳＡＳＨ５となるような操舵）した後、前記所定時間ＴＭＭ０を経過しても、左旋回方向にステアリング操舵がなされない場合は、例えば走行路のカーブにおける定常的な旋回走行の状態である。そして、このような場合には、スロッシュは発生し難いので、ＥＣＵ２は、ＳＴＥＰ７５でフラグＦ／ＡＡ，Ｆ／ＢＢの値を両者とも「０」にリセットし、さらにＳＴＥＰ７６において、スロッシュ無しと判定した後、今回の図９の処理を終了する。
【０１１１】
また、車両のステアリングの左旋回方向への操舵（ΔＳＡ＜−ＳＡＳＨ５となるような操舵）によって前記ＳＴＥＰ６９でフラグＦ／ＢＢの値が「１」に設定されると、次回のサイクルタイムから、ＳＴＥＰ６５における判断結果がＹＥＳになる。このとき、ＥＣＵ２は、前記ＳＴＥＰ７２と同様、カウントダウンタイマＴＭＭの値が「０」になったか否かをＳＴＥＰ７７で判断する。そして、このとき、ＴＭＭ≠０である場合には、ＥＣＵ２は、さらに、今回の舵角変化量ΔＳＡが、前記第２判定閾値ＳＡＳＨ６よりも大きいか否か、換言すれば、ステアリングが右旋回方向に第２判定閾値ＳＡＳＨ６を越える舵角変化量ΔＳＡで操作されたか否かをＳＴＥＰ７８で判断する。
【０１１２】
ここで、ＳＴＥＰ７８の判断結果がＹＥＳとなるような状況は、ステアリングを左旋回方向に操舵（ΔＳＡ（ｋ）＜−ＳＡＳＨ５となるような操舵）した後、前記所定時間ＴＭＭ０を経過する前に、右旋回方向に操舵（ΔＳＡ（ｋ）＞ＳＡＳＨ６となるような操舵）を行った場合である。つまり、車両の左側への進路変更のように、基本的には車両の走行位置を左側に変更したような場合に、ＳＴＥＰ７８の判断結果がＹＥＳとなる。そして、このような進路変更を行った場合には、ステアリングの操舵方向が比較的短い時間の間に左旋回方向から右旋回方向に切換えられることで、スロッシュ（燃料の強い揺れ）が生じる。そこで、ＥＣＵ２は、ＳＴＥＰ７８の判断結果がＹＥＳである場合には、ＳＴＥＰ７９でスロッシュ有りと判断し、今回の図９の処理を終了する。
【０１１３】
また、ＳＴＥＰ７８の判断結果がＮＯである場合には、ステアリングの左旋回方向の操舵後、右旋回方向への操舵がほとんど行われていない状態（進路変更の途中等）である。そして、この場合には、ＥＣＵ２は、前記ＳＴＥＰ６９でフラグＦ／ＢＢの値を「１」に維持し、今回の図９の処理を終了する。
【０１１４】
尚、前記ＳＴＥＰ７７でＴＭＭ＝０となった場合におけるＥＣＵ２の処理は、前記ＳＴＥＰ７２でＴＭＭ＝０となった場合と同じであり、前記ＳＴＥＰ７５，７６の処理が実行された後、今回の図９の処理が終了する。従って、フラグＦ／ＡＡ，Ｆ／Ｂ　Ｂの値が「０」にリセットされると共に、スロッシュ無しと判定される。
【０１１５】
以上説明した図９の処理（燃料揺れ判断処理）によって、前記第３実施形態の場合と同様に、スロッシュが真に発生するような状況（車両の進路変更を行うような状況）でのみスロッシュ有りと判定されるようになり、特にスロッシュ有りの判定結果の信頼性をより高めることができる。逆に言えば、スロッシュが実際には発生していないような状況で、スロッシュ有りと誤判定するような場合がほとんどなくなる。その結果、前記第１実施形態で説明したような効果をより効果的に奏することができ、特に、漏れ有無の最終的判断を下せるような機会をより多くすることができる。
【０１１６】
次に、本発明の第５実施形態を図１０及び図１１を参照して説明する。尚、本実施形態では、ＥＣＵ２による燃料揺れ判断処理は、前記第１〜第４実施形態のいずれかと同一である。そして、本実施形態では、蒸発燃料処理系３の漏れの有無の診断処理の一部のみが前記第１実施形態で説明したものと相違するものである。従って、本実施形態の説明では、その相違点を主に説明し、他の構成及び処理については前記第１実施形態と同一の参照符号を用い、説明を省略する。
【０１１７】
図１０及び図１１は、それぞれ本実施形態での、タンク側漏れ診断処理の前記リークチェックモード、判定モード（図３参照）におけるＥＣＵ２の処理を示すフローチャートである。
【０１１８】
まず、図１０を参照して、本実施形態では、タンク側漏れ診断処理のリークチェックモードでは、ＳＴＥＰ１５’の処理（図４のＳＴＥＰ１５に対応する処理）のみが前記図４を参照して説明した処理と相違している。すなわち、リークチェックモードにおいて処理系内圧力ＰＴの検出値を読み込む際（ＳＴＥＰ１６の処理を行う際）に、燃料揺れ判断処理においてスロッシュ有りの判定がなされている場合（ＳＴＥＰ１４でＹＥＳ）には、フラグＦ／ＳＨの値を「１」に設定し、今回のサイクルタイムにおける図４の処理を終了する。ここで、フラグＦ／ＳＨは、リークチェックモードに続く判定モードで使用するフラグであり、リークチェックモードの開始時における値は、「０」である。従って、リークチェックモードの期間中にＳＴＥＰ１４でスロッシュ有りの判定がなされていない場合には、フラグＦ／ＳＨの値は「０」に維持される。リークチェックモードにおける上記以外の処理は、前記図４で説明したものと全く同一である。
【０１１９】
次に、図１１を参照して、上記リークチェックモードに続く判定モードでは、ＳＴＥＰ３８の処理が新たに追加されている点でのみ、前記図５を参照して説明した処理と相違している。ＳＴＥＰ３８は、ＳＴＥＰ３２の判断結果がＮＯである場合、すなわち、タンク側蒸発燃料処理系３ａの漏れの有無の最終的な判断を下すための診断パラメータＬＶＡＲＦを算出する場合に、その算出を行うＳＴＥＰ３３の処理の直前に実行される処理である。このＳＴＥＰ３８の処理では、ＥＣＵ２は、前記フラグＦ／ＳＨの値に応じて、すなわち、リークチェックモードの期間中にスロッシュの発生が有ったか否かに応じて、ＳＴＥＰ３４，３６で用いる漏れ判定閾値ＬＨ、ＬＬの値を設定する処理である。この場合、ＳＴＥＰ３８では、Ｆ／ＳＨ＝０、すなわち、リークチェックモードの期間中にスロッシュが発生ししていないと判断された場合には、漏れ判定閾値ＬＨ、ＬＬの設定値は、前記第１実施形態の場合と同一である。一方、Ｆ／ＳＨ＝１、すなわち、リークチェックモードの期間中にスロッシュ有りの判断がなされた場合には、漏れ判定閾値ＬＨは、Ｆ／ＳＨ＝０の場合よりも大きい値に設定され、また、漏れ判定閾値ＬＬは、Ｆ／Ｓ　Ｈ＝０の場合よりも小さい値に設定される。判定モードにおける上記以外の処理は、前記図５で説明したものと全く同一である。
【０１２０】
上述のように、リークチェックモードにおけるスロッシュの有り、無しに応じて漏れ判定閾値ＬＨ、ＬＬを変更することにより、特にスロッシュ有りの状態でも、診断結果の信頼性を確保しながら、タンク側蒸発燃料処理系３ａの漏れの有無の判定を下す（ＳＴＥＰ３５又は３７の処理を実行する）ことができるようになる。この結果、タンク側蒸発燃料処理系３ａの漏れの有無の判定を下す機会を多くすることができる。
【０１２１】
また、本実施形態では、キャニスタ側漏れ診断処理においても、上記と同様に、スロッシュ発生の有無に応じて、前記リークチェック／判定モード（図６参照）において用いる漏れ判定閾値を変更する。より具体的には、ＥＣＵ２は、例えば、リークチェック／判定モードの開始時に、スロッシュ有りと判断している場合には、スロッシュ無しの判断をした場合よりも、漏れ判定閾値をその絶対値がより大きな値になるように設定する。そして、スロッシュ有りの状態では、それに対応して設定した漏れ判定閾値を用いてキャニスタ側蒸発燃料処理系３ｂの漏れの有無を診断する。尚、この場合、スロッシュ無しの判断をした場合における漏れ判定閾値は、前記第１実施形態で説明した場合と同一である。また、本実施形態におけるリークチェック／判定モードでは、前述のように該モードの開始時から所定時間が経過するまでの処理系内圧力ＰＴの負圧方向への変化量を漏れ判定閾値と比較するため、該漏れ判定閾値は、負の値である。但し、リークチェック／判定モードで、処理系内圧力ＰＴの変化量の絶対値を漏れ判定閾値と比較するようにしてもよく、この場合には、漏れ判定閾値は正の値となる。
【０１２２】
上記のようにスロッシュの有無に応じて漏れ判定閾値を設定することにより、スロッシュ有りの状態でも、診断結果の信頼性を確保しながら、キャニスタ側蒸発燃料処理系３ｂの漏れの有無の判定を下すことができるようになる。この結果、キャニスタ側蒸発燃料処理系３ｂの漏れの有無の判定を下す機会を多くすることができる。
【０１２３】
尚、本発明は、蒸発燃料処理系３の漏れの有無の診断手法は、前記第１〜第５実施形態で用いた手法に限られるものではなく、基本的には蒸発燃料処理系３内の圧力の変化を観測して漏れの有無を診断するものであれば、他の手法を用いてもよい。
【０１２４】
また、以上説明した第１〜第５実施形態における燃料揺れ判断処理では、燃料の強い揺れ（スロッシュ）が発生しているか否かのみを判断するようにしたが、燃料揺れ判断処理で用いる判定閾値を車両速度に応じて複数種類設定することにより、燃料の揺れの強さの度合いを段階的に判断する（例えば揺れの強さを強、中、弱の３段階に分けて判断する）ようにすることも可能である。そして、この場合、燃料の揺れの強さの度合いに応じて、蒸発燃料処理系の漏れの有無の診断を無効にしたり、その診断のための漏れ判定閾値を変更するようにしてもよい。
【図面の簡単な説明】
【図１】本発明の第１実施形態の装置構成を示すブロック図。
【図２】第１実施形態における燃料揺れ判断処理を示すフローチャート。
【図３】第１実施形態におけるタンク側蒸発燃料処理系の漏れの有無の診断処理を説明するためのタイムチャート。
【図４】第１実施形態におけるタンク側蒸発燃料処理系の漏れの有無の診断処理を説明するためのフロ−チャート。
【図５】第１実施形態におけるタンク側蒸発燃料処理系の漏れの有無の診断処理を説明するためのフロ−チャート。
【図６】第１実施形態におけるキャニスタ側蒸発燃料処理系の漏れの有無の診断処理を説明するためのタイムチャート。
【図７】本発明の第２実施形態における燃料揺れ判断処理を示すフローチャート。
【図８】本発明の第３実施形態における燃料揺れ判断処理を示すフローチャート。
【図９】本発明の第４実施形態における燃料揺れ判断処理を示すフローチャート。
【図１０】本発明の第５実施形態におけるタンク側蒸発燃料処理系の漏れの有無の診断処理を説明するためのフローチャート。
【図１１】本発明の第５実施形態におけるタンク側蒸発燃料処理系の漏れの有無の診断処理を説明するためのフローチャート。
【符号の説明】
１…エンジン（内燃機関）、２…電子制御ユニット（燃料揺れ判断手段）、３…蒸発燃料処理系、４…吸気管（吸気系）、１１…燃料タンク、１５…車速センサ（車両速度検出手段）、１６…操舵角センサ（操舵角検出手段）、１７…キャニスタ、１８…チャージ通路（第１通路）、１９…パージ通路（第２通路）。
【図１】
2004011477.tif 000003
【図２】
2004011477.tif 000004
【図３】
2004011477.tif 000005
【図４】
2004011477.tif 000006
【図５】
2004011477.tif 000007
【図６】
2004011477.tif 000008
【図７】
2004011477.tif 000009
【図８】
2004011477.tif 000010
【図９】
2004011477.tif 000011
【図１０】
2004011477.tif 000012
【図１１】
2004011477.tif 000013