(57)【要約】【課題】本発明はキャニスタを用いた蒸発燃料処理装置に関し、装置の内部に漏れ故障が生じた場合に、蒸発燃料の大気流出を有効に阻止し得る状況を安定的に実現することを目的とする。【解決手段】燃料タンクから流出する蒸発燃料を吸着するキャニスタを設ける。キャニスタと燃料タンクを含む系内の小さな漏れ故障を検出する手段と、その系に負圧を導入する手段と、タンク内圧ＰＴＮＫを検出する手段とを設ける。上記の漏れ故障が生じている場合（ＸＥＶＰ＝１）に、ＰＴＮＫが大気圧以下（ＰＴＮＫ＞０不成立）であれば（ステップ３１２）、キャニスタの大気孔に設けたＣＣＶを開いて通常のパージを行う（ステップ３０４，３０６）。ＰＴＮＫ＞０が成立する場合はＣＣＶを閉じて（ステップ３１６）、かつ、大きなパージ率が得られる手法で（ステップ３１４）パージを行う。【選択図】        図１５
2005023892.tif 000002
【特許請求の範囲】
【請求項１】
燃料タンクから流出する蒸発燃料を吸着するキャニスタを備える蒸発燃料処理装置であって、
前記キャニスタおよび前記燃料タンクを含む系内の所定の漏れ故障を検出する漏れ故障検出手段と、
前記系に負圧を導入する負圧導入手段と、
前記系内の圧力を検出する圧力検出手段と、
前記系内に前記所定の漏れ故障が生じている場合に、その系内の圧力が判定圧以下である状況下ではその状況が維持されるように第１の手法で前記系内への負圧導入を制御し、一方、その系内の圧力が前記判定圧を越えている状況下では前記第１の手法に比して多くの負圧を導入するための第２の手法で前記系内への負圧導入を制御する負圧導入制御手段と、
を備えることを特徴とする蒸発燃料処理装置。
【請求項２】
前記キャニスタの大気孔を開閉するキャニスタ開閉弁を備え、
前記第１の手法は前記キャニスタ開閉弁を開弁状態とするものであり、前記第２の手法は前記キャニスタ開閉弁を閉弁状態とするものであることを特徴とする請求項１記載の蒸発燃料処理装置。
【請求項３】
前記負圧導入手段は、内燃機関の吸気通路と前記キャニスタとをつなぐパージ通路、および当該パージ通路の導通状態を制御するパージ制御弁を備え、
前記第２の手法は、前記第１の手法に比して、前記パージ制御弁により大きな開度を与え易いものであることを特徴とする請求項１または２記載の蒸発燃料処理装置。
【請求項４】
前記漏れ故障検出手段は、前記系の大きな漏れ故障を検出する大穴故障検出手段と、前記系の小さな漏れ故障を検出する小穴故障検出手段とを含み、
前記所定の漏れ故障は、前記小さな漏れ故障であることを特徴とする請求項１乃至３の何れか１項記載の蒸発燃料処理装置。
【請求項５】
燃料タンクから流出する蒸発燃料を吸着するキャニスタを備える蒸発燃料処理装置であって、
前記キャニスタおよび前記燃料タンクを含む系内の所定の漏れ故障を検出する漏れ故障検出手段と、
前記系に負圧を導入する負圧導入手段と、
前記系内に前記所定の漏れ故障が生じていない場合に第１の手法で前記系内への負圧導入を制御し、一方、前記系内に前記所定の漏れ故障が生じている場合に、前記第１の手法に比して前記系からの流出ガス量が少量となり易い第２の手法で、前記系内への負圧導入を制御する負圧導入制御手段と、
を備えることを特徴とする蒸発燃料処理装置。
【請求項６】
前記負圧導入手段は、内燃機関の吸気通路と前記キャニスタとをつなぐパージ通路、および当該パージ通路の導通状態を制御するパージ制御弁を備え、
前記第２の手法は、前記第１の手法に比して、前記パージ制御弁の開度をより小さく抑え易いものであることを特徴とする請求項５記載の蒸発燃料処理装置。
【請求項７】
前記系内の圧力を検出する圧力検出手段を備え、
前記第２の手法は、前記系内の圧力が、所定の圧力下限値を下回らないように前記系内への負圧導入を制御するものであることを特徴とする請求項５記載の蒸発燃料処理装置。
【請求項８】
前記漏れ故障検出手段は、前記系の大きな漏れ故障を検出する大穴故障検出手段と、前記系の小さな漏れ故障を検出する小穴故障検出手段とを含み、
前記所定の漏れ故障は、前記大きな漏れ故障であることを特徴とする請求項５乃至７の何れか１項記載の蒸発燃料処理装置。
【請求項９】
前記キャニスタの大気孔を開閉するキャニスタ開閉弁と、
前記系内への負圧導入が可能であるか否かを判断する負圧導入可否判断手段と、
前記系内の圧力を検出する圧力検出手段と、
前記系内に負圧が導入できない状況下で、前記系内の圧力が前記判定圧力を上回っている場合には前記キャニスタ開閉弁を開弁状態とするキャニスタ開閉弁制御手段と、
を備えることを特徴とする請求項１乃至８の何れか１項記載の蒸発燃料処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、蒸発燃料処理装置に係り、特に、キャニスタに吸着された蒸発燃料を内燃機関の吸気通路に吸入させることにより処理する蒸発燃料処理装置に関する。
【０００２】
【従来の技術】
従来、例えば特開平６−１８５４２０号公報に開示されるように、燃料タンクの内部で発生した蒸発燃料を吸着するためのキャニスタを備えた蒸発燃料処理装置が知られている。このようなシステムでは、キャニスタを含む系内に漏れが発生すると、その漏れの箇所から蒸発燃料が大気に流出する事態が生じ得る。上記従来の装置は、このような蒸発燃料の大気流出を防ぐべく、装置の内部に漏れが検知された場合に、タンク内圧を大気圧以下に保持する機能を有している。
【０００３】
より詳細には、この装置は、内燃機関の吸気負圧をキャニスタに導くための通路と、キャニスタと燃料タンクをつなぐ通路とを備えている。後者の通路には、正圧弁と負圧弁の組み合わせで構成された２方向弁と、その２方向弁をバイバスするバイパス弁とが配置されている。バイバス弁は、通常時には閉じられており、燃料タンクの漏れ故障が検知されると、タンク内圧が負圧に維持されるように開弁される。タンク内圧が負圧であれば、燃料タンク内の蒸発燃料が大気中に流出することはない。このため、上記従来の装置によれば、タンク内圧の漏れ故障に起因する蒸発燃料の大気流出を有効に阻止することができる。
【０００４】
【特許文献１】
特開平６−１８５４２０号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来の装置では、漏れ故障の発生時に、タンク内圧が大気圧以下となるように、常に一定の手法で負圧の導入が行われる。このため、燃料タンクに大きな漏れが生じており、タンク内圧が負圧化され難い状況下では、漏れ故障の箇所から不当に多量の空気が燃料タンクに流入するような事態が生じ得る。また、この装置では、タンク内圧の高低に関わらず負圧導入の手法が同じであるため、正圧化したタンク内圧が負圧化するのに多大な時間を要したり、或いは、大気圧まで低下したタンク内圧がその後一時的に不必要に大きく負圧化されたりといった事態が生じ得る。
【０００６】
このように、上記従来の装置は、燃料タンクに漏れ故障が生じた場合に、その漏れ故障の箇所から蒸発燃料が大気に流出するのを防ぐうえで一定の効果は達成し得るものの、漏れ故障が発生した状況下で、蒸発燃料の大気流出を防止し得る状況を安定に維持することが困難であるとの特性を有するものであった。本発明は、このような点に鑑みてなされたものであり、装置の内部に漏れ故障が生じた場合に、蒸発燃料の大気流出を有効に阻止し得る状況を安定的に実現することのできる蒸発燃料処理装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
第１の発明は、上記の目的を達成するため、燃料タンクから流出する蒸発燃料を吸着するキャニスタを備える蒸発燃料処理装置であって、
前記キャニスタおよび前記燃料タンクを含む系内の所定の漏れ故障を検出する漏れ故障検出手段と、
前記系に負圧を導入する負圧導入手段と、
前記系内の圧力を検出する圧力検出手段と、
前記系内に前記所定の漏れ故障が生じている場合に、その系内の圧力が判定圧以下である状況下ではその状況が維持されるように第１の手法で前記系内への負圧導入を制御し、一方、その系内の圧力が前記判定圧を越えている状況下では前記第１の手法に比して多くの負圧を導入するための第２の手法で前記系内への負圧導入を制御する負圧導入制御手段と、
を備えることを特徴とする。
【０００８】
また、第２の発明は、第１の発明において、
前記キャニスタの大気孔を開閉するキャニスタ開閉弁を備え、
前記第１の手法は前記キャニスタ開閉弁を開弁状態とするものであり、前記第２の手法は前記キャニスタ開閉弁を閉弁状態とするものであることを特徴とする。
【０００９】
また、第３の発明は、第１または第２の発明において、
前記負圧導入手段は、内燃機関の吸気通路と前記キャニスタとをつなぐパージ通路、および当該パージ通路の導通状態を制御するパージ制御弁を備え、
前記第２の手法は、前記第１の手法に比して、前記パージ制御弁により大きな開度を与え易いものであることを特徴とする。
【００１０】
また、第４の発明は、第１乃至第３の発明において、
前記漏れ故障検出手段は、前記系の大きな漏れ故障を検出する大穴故障検出手段と、前記系の小さな漏れ故障を検出する小穴故障検出手段とを含み、
前記所定の漏れ故障は、前記小さな漏れ故障であることを特徴とする。
【００１１】
また、第５の発明は、燃料タンクから流出する蒸発燃料を吸着するキャニスタを備える蒸発燃料処理装置であって、
前記キャニスタおよび前記燃料タンクを含む系内の所定の漏れ故障を検出する漏れ故障検出手段と、
前記系に負圧を導入する負圧導入手段と、
前記系内に前記所定の漏れ故障が生じていない場合に第１の手法で前記系内への負圧導入を制御し、一方、前記系内に前記所定の漏れ故障が生じている場合に、前記第１の手法に比して前記系からの流出ガス量が少量となり易い第２の手法で、前記系内への負圧導入を制御する負圧導入制御手段と、
を備えることを特徴とする。
【００１２】
また、第６の発明は、第５の発明において、
前記負圧導入手段は、内燃機関の吸気通路と前記キャニスタとをつなぐパージ通路、および当該パージ通路の導通状態を制御するパージ制御弁を備え、
前記第２の手法は、前記第１の手法に比して、前記パージ制御弁の開度をより小さく抑え易いものであることを特徴とする。
【００１３】
また、第７の発明は、第５の発明において、
前記系内の圧力を検出する圧力検出手段を備え、
前記第２の手法は、前記系内の圧力が、所定の圧力下限値を下回らないように前記系内への負圧導入を制御するものであることを特徴とする。
【００１４】
また、第８の発明は、第５乃至第３の発明において、
前記漏れ故障検出手段は、前記系の大きな漏れ故障を検出する大穴故障検出手段と、前記系の小さな漏れ故障を検出する小穴故障検出手段とを含み、
前記所定の漏れ故障は、前記大きな漏れ故障であることを特徴とする。
【００１５】
また、第９の発明は、第１乃至第８の発明において、
前記キャニスタの大気孔を開閉するキャニスタ開閉弁と、
前記系内への負圧導入が可能であるか否かを判断する負圧導入可否判断手段と、
前記系内の圧力を検出する圧力検出手段と、
前記系内に負圧が導入できない状況下で、前記系内の圧力が前記判定圧力を上回っている場合には前記キャニスタ開閉弁を開弁状態とするキャニスタ開閉弁制御手段と、
を備えることを特徴とする。
【００１６】
【発明の実施の形態】
以下、図面を参照してこの発明の実施の形態について説明する。尚、各図において共通する要素には、同一の符号を付して重複する説明を省略する。
【００１７】
実施の形態１．
［システム構成の説明］
図１は、本発明の実施の形態１の蒸発燃料処理装置の構成を説明するための図である。本実施形態の蒸発燃料処理装置は、燃料タンク１０を備えている。燃料タンク１０には、タンク内圧ＰＴＮＫを測定するためのタンク内圧センサ１２が設けられている。また、燃料タンク１０の給油孔を塞ぐキャップには、燃料タンク１０の外部から内部へ向かうガスの流れのみを許容するチェック弁１３が設けられている。更に、燃料タンク１０には、ＲＯＶ（Ｒｏｌｌ  Ｏｖｅｒ  Ｖａｌｖｅ）１４，１６を介してベーパ通路１８の一端が接続されている。
【００１８】
ベーパ通路１８の他端はキャニスタ２０に接続されている。キャニスタ２０は、その内部に活性炭を備えており、ベーパ通路１８から流入してくる蒸発燃料を吸着することができる。キャニスタ２０には大気孔が設けられており、その大気孔にはＣＣＶ（Ｃａｎｉｓｔｅｒ  Ｃｌｏｓｅｄ  Ｖａｌｖｅ）２２とチェック弁２４が配置されている。ＣＣＶ２２は、駆動信号の供給を受けることにより開状態となる常時閉タイプの電磁弁である。また、チェック弁２４は、大気側からキャニスタ２０内部へ向かう流体の流れのみを許容する一方向弁である。
【００１９】
チェック弁２４の開弁圧は、燃料タンク１０のキャップに配されているチェック弁１３の開弁圧より大きな値に設定されている。このため、本実施形態のシステムでは、キャニスタ２０および燃料タンク１０を含む系に負圧が供給された場合、チェック弁２４より先にチェック弁１３が開弁し、その系内には、原則として燃料タンク１０側から大気が流入することとなる。
【００２０】
キャニスタ２０には、パージ通路２６の一端が接続されている。パージ通路２６の途中には、その内部を流れるガスの流量を制御するためのパージＶＳＶ（Ｖａｃｕｕｍ  Ｓｗｉｔｃｈｉｎｇ  Ｖａｌｖｅ）２８が設けられている。パージＶＳＶ２８は、デューティ駆動されることにより、実質的にそのデューティ比に応じた開度を実現する制御弁である。
【００２１】
パージ通路２６の他端は、内燃機関の吸気通路３０に接続されている。吸気通路３０の端部にはエアクリーナ３２が設けられている。エアクリーナ３２の下流側には吸入空気量ＧＡに応じた出力を発するエアフロメータ３４が配置されている。更に、エアフロメータ３４の下流には、吸入空気量ＧＡを制御するための電子スロットル弁３６が配置されている。電子スロットル弁３６の近傍には、スロットル開度ＴＡに応じた出力を発するスロットルセンサ３８が配置されている。上述したパージ通路２６は、スロットル弁３６の下流において吸気通路３０に連通している。
【００２２】
吸気通路３０は、吸気マニホールド４０を介して内燃機関（図示せず）に導通している。吸気マニホールド４０には、内燃機関に対して燃料を噴射するための燃料噴射弁４２が配置されている。燃料噴射弁４２には、燃料タンク１０の内部に配置されている燃料フィードポンプ４４から、所定の圧力で燃料が供給されている。燃料噴射弁４２は、開弁信号を受けることにより開弁し、その開弁時間に応じた量だけ燃料を噴射する。従って、内燃機関に対する燃料噴射量は、燃料噴射弁４２の開弁時間、つまり、燃料噴射時間ＴＡＵを変化させることにより制御することができる。
【００２３】
内燃機関には、回転数センサ４６、水温センサ４８、吸気温センサ５０、および酸素センサ５２等のセンサが組み込まれている。回転数センサ４６は、機関回転数ＮＥに応じた出力を発するセンサである。水温センサ４８は、内燃機関の冷却水温ＴＨＷに応じた出力を発するセンサである。吸気温センサ５０は、吸気通路３０の内部を流れる吸入空気の温度に応じた出力を発するセンサである。また、酸素センサ５２は、内燃機関の排気通路に配置され、触媒（図示せず）に流入する排気ガスがリーンであるか（酸素を含んでいるか）、或いはリッチであるか（酸素を含んでいないか）に応じた出力を発するセンサである。
【００２４】
本実施形態のシステムは、ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）６０を備えている。ＥＣＵ６０には、上述した各種のセンサおよびアクチュエータが接続されている。ＥＣＵ６０は、それらのセンサの出力に基づいて種々の演算処理を行い、ＣＣＶ２２やパージＶＳＶ２８、或いは、燃料噴射弁４２などの制御を実行することができる。
【００２５】
［システムの動作説明］
（基本動作）
本実施形態のシステムは、内燃機関の停止中や給油中は、ＣＣＶ２２を開弁状態とし、パージＶＳＶ２８を閉弁状態とする。この状態によれば、燃料タンク１０から流出する蒸発燃料をキャニスタ２０に吸着することができる。また、このシステムは、内燃機関の運転中に、ＣＣＶ２２を開いた状態でパージＶＳＶ２８を適宜デューティ駆動する。このような制御によれば、ＣＣＶ２２から空気を取り込んでキャニスタ２０をパージし、パージＶＳＶ２８の駆動デューティ比に応じた流量のパージガスを内燃機関の吸気通路３０に吸入させることができる。このように、本実施形態のシステムは、燃料タンク１０から流出する蒸発燃料を大気に放出させることなく、燃料として燃焼させることにより処理することができる。
【００２６】
（パージＶＳＶの開故障判定）
図１に示すシステムは、パージＶＳＶ２８に故障が生ずると、通常の機能を果たすことができない状態となる。ここで、パージＶＳＶ２８には、弁が開いたままとなる開故障と弁が閉じたままとなる閉故障が生ずることがある。パージＶＳＶ２８の故障の影響を最小限に抑えるためには、その故障の発生を早期に検知することが望ましく、また、その故障が開故障であるのか、或いは閉故障であるのかが区別できることが望ましい。このため、本実施形態のシステムは、内燃機関の始動直後に、パージＶＳＶ２８の開故障を検知するための診断、および閉故障を検知するための診断を順次実行することとしている。
【００２７】
図２は、パージＶＳＶ２８の開故障を検知する際の処理の内容を説明するためのタイミングチャートである。より具体的には、図２（Ａ）は、内燃機関の始動直後におけるパージＶＳＶ２８の状態を示す。この図に示すように、パージＶＳＶ２８は、開故障の検出中は常に閉弁状態に制御される。また、図２（Ｂ）および図２（Ｅ）は、それぞれ内燃機関の始動直後におけるＣＣＶ２２の状態、および機関回転数ＮＥの変化を示す。これらの図に示すように、ＣＣＶ２２は、機関回転数ＮＥが３５０ｒｐｍに達するまで、つまり、内燃機関の完爆が認識されるまでは開状態に維持され、その完爆が認められた時点で閉弁状態とされる。
【００２８】
図２（Ｃ）は、内燃機関の始動直後におけるタンク内圧ＰＴＮＫの変化を示す。特に、この図中に示す波形は、パージＶＳＶ２８に開故障が生じていた場合の波形を示している。尚、図２（Ｃ）中に示すＰ０は、ＣＣＶ２２が開いている状況下でのタンク内圧ＰＴＮＫであり、実質的には大気圧を意味している。また、同図中に示すΔＰは、内燃機関の始動が開始された後、所定時間ＫＣ１（図２（Ｅ）参照）が経過した時点でＰＴＮＫとＰ０の間に生じていた差圧を意味している。そして、図２（Ｃ）中に示すＫＰは、開故障の有無を判断するための判定値である。
【００２９】
吸気通路３０の内部には、内燃機関の始動と共に吸気負圧が発生する。パージＶＳＶ２８が図２（Ａ）に示すように適正に閉じている場合は、吸気負圧の影響がタンク内圧ＰＴＮＫに及ぶことはない。従って、パージＶＳＶ２８に開故障が生じていない場合には、内燃機関の始動後、タンク内圧ＰＴＮＫは、Ｐ０の近傍に維持されるはずである。これに対して、パージＶＳＶに開故障が生じている場合には、吸気負圧がパージＶＳＶ２８を通過してキャニスタ２０に到達する。内燃機関の完爆後はＣＣＶ２２が閉じられるため、上記の吸気負圧は、キャニスタ２０を通過して燃料タンク１０にまで到達する。その結果、タンク内圧ＰＴＮＫには、図２（Ｃ）に示すような変化が生ずる。つまり、パージＶＳＶ２８に開故障が生じている場合は、内燃機関の始動後に、タンク内圧ＰＴＮＫが、逆止弁１３の開弁圧（或いは、逆止弁２４の開弁圧に対応する圧力）に達するまで低下する。従って、本実施形態のシステムによれば、原理的には、内燃機関の始動後に大きな差圧ΔＰが生ずるか否かを見ることにより、パージＶＳＶ２８の開故障の有無を判断することができる。
【００３０】
図２（Ｄ）は、パージＶＳＶ２８に開故障が生じているか否かを表すための開故障判定フラグＸＶＳＶ開の状態を示す。図２に示す例では、所定時間ＫＣ１が経過した時点でＫＰを下回る差圧ΔＰの発生が認められる。この場合、図２（Ｄ）に示すように、開故障判定フラグＸＶＳＶには、その時点で１がセットされる。
【００３１】
図３は、パージＶＳＶ２８に開故障が生じているか否かを判断すべく、ＥＣＵ６０が実行する具体的処理の内容を説明するためのフローチャートである。尚、図３に示すルーチンは、車両のＩＧスイッチがオンとされると同時に起動され、その後、所定時間毎に繰り返し実行されるものとする。
【００３２】
図３に示すルーチンでは、先ず、第１ＯＢＤカウンタの計数値ＣＯＢＤ１が、ジャンプ判定値ＫＣ１１に達したか否かが判別される（ステップ１００）。第１ＯＢＤカウンタは、車両のＩＧスイッチのオン時にイニシャル処理によりクリアされるカウンタである。従って、車両の始動直後は、本ステップ１００において、ＣＯＢＤ１≧ＫＣ１１が成立しないとの判定がなされる。
【００３３】
上記ステップ１００において、ＣＯＢＤ１≧ＫＣ１１が成立しないとの判定が下されると、次に、計数値ＣＯＢＤ１がインクリメントされる（ステップ１０２）。次いで、その計数値ＣＯＢＤ１が、診断判定値ＫＣ１に達したか否かが判別される（ステップ１０４）。診断判定値ＫＣ１は、パージＶＳＶ２８に開故障が生じているか否かを判断するタイミングに対応する値であり、上述したジャンプ判定値ＫＣ１１に比して「１」だけ小さな値である。車両の始動直後は、本ステップ１０４において、ＣＯＢＤ１≧ＫＣ１が成立しないとの判定がなされる。
【００３４】
上記ステップ１０４において、ＣＯＢＤ１≧ＫＣ１が成立しないとの判定が下されると、次に、機関回転数ＮＥが３５０ｒｐｍを超えたか否かが判別される（ステップ１０６）。ここで、３５０ｒｐｍは、内燃機関が完爆したか否かを判断するための判定値である。内燃機関のクランキング期間等、その始動が開始された直後は、ＮＥ＞３５０ｒｐｍの条件が成立しない。この場合は、次に、その時点におけるタンク内圧ＰＴＮＫが基準圧Ｐ０として記憶される（ステップ１０８）。以後、その時点における冷却水温ＴＨＷおよび吸気温ＴＨＡが、それぞれ開始時冷却水温ＴＨＷＳＴおよび開始時吸気温ＴＨＡＳＴとして記憶され（ステップ１１０、１１２）、今回の処理サイクルが終了される。
【００３５】
内燃機関の始動が開始された後、機関回転数ＮＥが３５０ｒｐｍに達するまでは、図３に示すルーチンが起動される毎に、上述したステップ１００〜１１２の処理が繰り返し実行される。その結果、ＥＣＵ６０は、機関回転数ＮＥが３５０ｒｐｍに達した時点でのタンク内圧ＰＴＮＫを基準圧Ｐ０として記憶することができ、また、その時点の冷却水温ＴＨＷおよび吸気温ＴＨＡを、それぞれ始動時冷却水温ＴＨＷＳＴおよび始動時吸気温ＴＨＡＳＴとして記憶することができる。
【００３６】
機関回転数ＮＥが３５０ｒｐｍに達した後、つまり、内燃機関の完爆後に図３に示すルーチンが起動されると、今度は、上記ステップ１０６において、ＮＥ＞３５０ｒｐｍが成立すると判断される（ステップ１０６）。この場合、次に、その時点におけるタンク内圧ＰＴＮＫと基準圧Ｐ０との差圧ΔＰ＝ＰＴＮＫ−Ｐ０が算出される（ステップ１１４）。この差圧ΔＰは、内燃機関の完爆後にタンク内圧ＰＴＮＫに有意な低下が生じない場合は０近傍の値として算出され、一方、ＰＴＮＫに有意な低下が認められる場合は負の値として算出される。
【００３７】
図３に示すルーチンでは、次に、ＣＣＶ２２の閉弁処理が実行される（ステップ１１６）。次いで、上記の差圧ΔＰが開故障判定値ＫＰより小さいか否かが判別される（ステップ１１８）。つまり、内燃機関の完爆後に、タンク内圧ＰＴＮＫに有意な低下が生じているか否かが判別される。その結果、ΔＰ＜ＫＰが成立しないと判別される場合は、吸気負圧の影響がタンク内圧ＰＴＮＫに及んでいないと判断することができる。この場合は、現時点でパージＶＳＶ２８の開故障が認められないことを表すべく、開故障判定仮フラグｔＸＶＳＶ開に「０」がセットされる（ステップ１２０）。一方、上記ステップ１１８において、ΔＰ＜ＫＰが成立すると判別される場合は、吸気負圧の影響がタンク内圧ＰＴＮＫに及んでいる、つまり、パージＶＳＶ２８が開いていると判断することができる。この場合は、パージＶＳＶ２８の開故障が認められることを表すべく、開故障判定仮フラグｔＸＶＳＶ開に「１」がセットされる。
【００３８】
内燃機関が完爆した後、パージＶＳＶ２８に開故障が生じているか否かを判断すべきタイミングが到来するまでの間は、つまり、第１ＯＢＤカウンタの計数値ＣＯＢＤ１が診断判定値ＫＣ１に達するまでの間は、図３に示すルーチンが起動される毎に、上述したステップ１００〜１０６およびステップ１１４〜１２２の処理が繰り返される。その結果、開故障判定仮フラグｔＸＶＳＶ開の最終値は、ＣＯＢＤ１がＫＣ１に達する直前の処理サイクルにおいて設定されることになる。
【００３９】
図３に示すルーチンが起動された後、上記ステップ１０４において、ＣＯＢＤ１≧ＫＣ１の成立が判定された場合は、開故障の有無を判断すべき時期が到来したと判断できる。この場合、ＣＣＶ２２の開弁処理が行われた後（ステップ１２４）、開始時冷却水温ＴＨＷＳＴが、冷間判定値ＫＴＨＷより低いか否かが判別される（ステップ１２６）。
【００４０】
冷間判定値ＫＴＨＷは、燃料タンク１０の内部で蒸発燃料が多量に発生する可能性が有るか否かを判断するため判定値である。従って、開始時冷却水温ＴＨＷＳＴがＫＴＨＷより低くないと判別される場合は、内燃機関の始動時に、燃料タンク１０の内部で蒸発燃料が多量に発生していた可能性があると判断できる。このような状況下では、差圧ΔＰが蒸発燃料の影響を受けるため、差圧ΔＰを基礎とする判定に誤りが生じ易い。そこで、図３に示すルーチンでは、上記ステップ１２６においてＴＨＷＳＴ＜ＫＴＨＷが成立しないと判別された場合は、開故障に関する最終的な判定を下すことなく今回の処理サイクルを終了することとした。このような処理によれば、温暖な状態での内燃機関の再始動時などに、パージＶＳＶ２８の開故障の有無が誤って判断されるのを防ぐことができる。
【００４１】
上記ステップ１２６において、ＴＨＷＳＴ＜ＫＴＨＷが成立すると判別された場合は、差圧ΔＰがさほど蒸発燃料の影響を受けていないと判断することができる。この場合、以後、開故障判定仮フラグｔＸＶＳＶ開の値が、開故障判定フラグＸＶＳＶ開の値としてセットされる（ステップ１２８）。以後、ＥＣＵ６０は、ＸＶＳＶ開に１がセットされている場合には、パージＶＳＶ２８に開故障が生じていると判断し、一方、ＸＶＳＶ開に０がセットされている場合は、パージＶＳＶ２８に開故障が生じていないと判断する。
【００４２】
上述した一連の処理が終了した後、図３に示すルーチンが再び起動された際には、上記ステップ１００において、ＣＯＢＤ１≧ＫＣ１１（＝ＫＣ１＋１）が成立すると判断される。この場合、以後ステップ１０２以降の処理がジャンプされ、実質的な処理が何ら行われることなく図３に示すルーチンが終了される。本実施形態において、ＥＣＵ６０は、以上の通り説明した図３に示すルーチンを実行することにより、内燃機関の始動直後に、パージＶＳＶ２８に開故障が生じているか否かを正確に判定することができる。
【００４３】
（パージＶＳＶの閉故障判定）
図４は、パージＶＳＶ２８の閉故障を検知する際の処理の内容を説明するためのタイミングチャートである。より具体的には、図４（Ａ）は、図３に示す開故障検出処理の終了後におけるパージＶＳＶ２８の状態を示す。図４に示す時刻ｔ０は、内燃機関の始動後パージＶＳＶ２８が初めて開弁された時刻である。パージＶＳＶ２８は、内燃機関の始動後、既述したジャンプ判定値ＫＣ１１（図３ステップ１００参照）に相当する時間が経過するまでは閉弁状態に制御される。従って、時刻ｔ０は、計数値ＣＯＢＤ１がジャンプ判定値ＫＣ１１に到達する以後の時刻である。
【００４４】
図４（Ｂ）は、閉故障判定処理の実行中におけるＣＣＶ２２の状態を示す。また、図４に示すＫＣ２は、パージＶＳＶ２８に閉故障が生じているか否かを判断すべき時刻、つまり、閉故障判定処理の終了時刻を意味している。図４（Ｂ）に示すように、ＣＣＶ２２は、時刻ｔ０においてパージＶＳＶ２８が開かれた後、閉故障判定処理が終了するまでの間、閉状態に制御される。
【００４５】
図４（Ｃ）は、閉故障検出処理の実行中におけるタンク内圧ＰＴＮＫの変化を示す。より詳細には、この図中に破線で示す波形は、正常時におけるタンク内圧ＰＴＮＫの波形であり、一方、図中に実線で示す波形は、パージＶＳＶ２８に閉故障が生じている場合の波形を示す。閉故障検出処理の実行中に、パージＶＳＶ２８が適正に開弁している場合は、吸気負圧がキャニスタ２０に導入される。閉故障検出処理の実行中は、既述した通りＣＣＶ２２が閉じているため、キャニスタ２０に導入された負圧は、燃料タンク１０にまで到達する。このため、パージＶＳＶ２８に閉故障が生じていなければ、タンク内圧ＰＴＮＫは、図４（Ｃ）中に破線で示すように、時刻ｔ０の後、大きく負圧側に変化するはずである。これに対して、パージＶＳＶ２８に閉故障が生じている場合は、吸気負圧の導入が妨げられるため、図４（Ｃ）中に実線で示した通り、タンク内圧ＰＴＮＫに有意な低下は生じない。従って、本実施形態のシステムによれば、原理的には、閉故障検出処理の開始後にタンク内圧ＰＴＮＫに有意な低下が生ずるか否かを見ることで、パージＶＳＶ２８の閉故障の有無を判断することができる。
【００４６】
図４（Ｄ）は、パージＶＳＶ２８に閉故障が生じているか否かを表すための閉故障判定フラグＸＶＳＶ閉の状態を示す。タンク内圧ＰＴＮＫが図４（Ｃ）中に実線で示すように変化した場合、閉故障検出処理の終了時刻（ＫＣ２の時刻）において、タンク内圧ＰＴＮＫに有意な低下が生じていないと判断される。この場合、図４（Ｄ）に示すように、閉故障判定フラグＸＶＳＶ閉に１がセットされる。
【００４７】
図５は、パージＶＳＶ２８に閉故障が生じているか否かを判断すべく、ＥＣＵ６０が実行する具体的処理の内容を説明するためのフローチャートである。尚、図５に示すルーチンは、車両のＩＧスイッチがオンとされた後、所定時間毎に繰り返し起動されるものとする。
【００４８】
図５に示すルーチンでは、先ず、第１ＯＢＤカウンタの計数値ＣＯＢＤ１が、既述したジャンプ判定値ＫＣ１１に達しているか否かが判別される（ステップ１３０）。その結果、ＣＯＢＤ１≧ＫＣ１１が成立しないと判定される間は、以後速やかに今回の処理サイクルが終了される。従って、ステップ１３２以降の処理は、ＣＯＢＤ１≧ＫＣ１１が成立して初めて、つまり、既述した開故障検出処理（図３参照）が終了して初めて実行される。
【００４９】
上記ステップ１３０において、ＣＯＢＤ１≧ＫＣ１１の成立が認められると、次に、パージ率ＰＧＲが判定値ＫＰＧＲ以上であるか否かが判別される（ステップ１３２）。パージ率ＰＧＲは、吸入空気量ＧＡに対するパージ流量ＱＰＧの比率「（ＱＰＧ／ＧＡ）×１００」である。パージ流量ＱＰＧは、パージＶＳＶ２８を通過してキャニスタ２０から吸気通路３０に向かって流れるパージガスの流量であり、パージＶＳＶ２８の開度（駆動デューティ）と吸気負圧ＰＭとに基づいて公知の手法で演算することができる。本実施形態実施形態において、パージ制御弁２８の駆動デューティは、図５に示すルーチンとは異なるルーチンで演算され、その駆動デューティにより実現されるパージ率ＰＧＲも他のルーチンにより演算される。本ステップ１３２では、他のルーチンにおいて演算されたパージ率ＰＧＲが読み込まれ、ＰＧＲ≧ＫＰＧＲが成立しているか否かが判断される。
【００５０】
上記ステップ１３２において、ＰＧＲ≧ＫＰＧＲが成立しないと判別された場合は、閉故障の有無を判断するのに十分な負圧がパージ通路２６に導入されていないと判断することができる。この場合、以後、閉故障の判定に必要な処理が進められることなく、速やかに今回の処理サイクルが終了される。一方、ＰＧＲ≧ＫＰＧＲが成立すると判別された場合は、閉故障の有無を判断するのに足る十分な負圧導入が行われていると判断することができる。この場合、次に、第２ＯＢＤカウンタの計数値ＣＯＢＤ２が、終了判定値ＫＣ３に達しているか否かが判別される（ステップ１３４）。
【００５１】
第２ＯＢＤカウンタは、第１ＯＢＤカウンタと同様に、ＩＧスイッチのオン時にイニシャル処理によりクリアされる。従って、閉故障判定処理の開始直後は、上記ステップ１３４において、ＣＯＢＤ２≧ＫＣ２が成立しないとの判定がなされる。この場合、先ず、現時点でのタンク内圧ＰＴＮＫと既述した基準圧Ｐ０との差圧ΔＰ＝ＰＴＮＫ−Ｐ０が算出される（ステップ１３６）。次いで、第２ＯＢＤカウンタのインクリメント処理が行われる（ステップ１３８）。
【００５２】
図５に示すルーチンでは、次に、第２ＯＢＤカウンタの計数値ＣＯＢＤ２が、診断判定値ＫＣ２に達したか否かが判別される（ステップ１４０）。診断判定値ＫＣ２は、パージＶＳＶ２８に閉故障が生じているか否かを判断するタイミングに対応する値であり、上述した終了判定値ＫＣ３に比して「１」だけ小さな値である。閉故障判定処理の開始直後は、本ステップ１４０において、ＣＯＢＤ２≧ＫＣ２が成立しないとの判定がなされる。
【００５３】
上記ステップ１４０において、ＣＯＢＤ２≧ＫＣ２が成立しないとの判定が下されると、次に、ＣＣＶ２２の閉弁処理が実行される（ステップ１４２）。次いで、上記の差圧ΔＰが閉故障判定値ＫＰ１より大きいか否かが判別される（ステップ１４４）。閉故障判定値ＫＰ１は、パージＶＳＶ２８が適正に開いている場合に算出される差圧ΔＰ（負の値）に比して大きな値である。従って、ΔＰ＞ＫＰ１の成立が認められる場合は、パージＶＳＶ２８に閉故障が生じていると判断することができる。この場合、ＥＣＵ６０は、パージＶＳＶ２８に閉故障が生じていることを表すべく、閉故障判定仮フラグｔＸＶＳＶ閉に「１」をセットする。（ステップ１４６）。一方、上記ステップ１４４において、ΔＰ＞ＫＰ１が成立しないと判別された場合は、パージＶＳＶ２８の閉故障が認められないと判断できる。この場合、ＥＣＵ６０は、パージＶＳＶ２８の閉故障が認められないことを表すべく、閉故障判定仮フラグｔＸＶＳＶ閉に「０」をセットする（ステップ１４８）。
【００５４】
閉故障判定処理が開始された後、第２ＯＢＤカウンタの計数値ＣＯＢＤ２が診断判定値ＫＣ２に達するまでの間は、十分なパージ率ＰＧＲが確保されている環境下で図５に示すルーチンが起動される毎に、上述したステップ１３０〜１４８の処理が繰り返される。その結果、閉故障判定仮フラグｔＸＶＳＶ閉の最終値は、ＣＯＢＤ２がＫＣ２に達する直前の処理サイクルにおいて設定されることになる。
【００５５】
図５に示すルーチンが起動された後、上記ステップ１４０において、ＣＯＢＤ２≧ＫＣ２の成立が判定された場合は、閉故障の有無を判断すべき時期が到来したと判断できる。この場合、ＣＣＶ２２の開弁処理が実行された後（ステップ１５０）、開始時冷却水温ＴＨＷＳＴが、冷間判定値ＫＴＨＷより低いか否かが判別される（ステップ１５２）。そして、ＴＨＷＳＴ＜ＫＴＨＷが成立しないと判別された場合は、開故障判定処理の場合と同様の理由で（上記ステップ１２６参照）、閉故障に関する判定が保留されたまま今回の処理サイクルが終了される。このため、本実施形態のシステムによれば、パージＶＳＶ２８の閉故障についても、温暖な状態で内燃機関が再始動されるような場合に、その発生の有無が誤って判断されるのを防ぐことができる。
【００５６】
一方、上記ステップ１５２において、ＴＨＷＳＴ＜ＫＴＨＷの成立が認められた場合は、閉故障判定仮フラグｔＸＶＳＶ閉の値が、閉故障判定フラグＸＶＳＶ閉の値としてセットされる（ステップ１５４）。以後、ＥＣＵ６０は、ＸＶＳＶ閉に１がセットされている場合には、パージＶＳＶ２８に閉故障が生じていると判断し、一方、ＸＶＳＶ閉に０がセットされている場合は、パージＶＳＶ２８に閉故障が生じていないと判断する。
【００５７】
上述した一連の処理が終了した後、図５に示すルーチンが再び起動され、上記ステップ１３４の処理が実行される際には、第２ＯＢＤカウンタの計数値ＣＯＢＤ２が、終了判定値ＫＣ３（＝ＫＣ２＋１）に達していると判断される。この場合、以後ステップ１３６以降の処理がジャンプされ、実質的な処理が何ら行われることなく図５に示すルーチンが終了される。本実施形態において、ＥＣＵ６０は、以上の通り説明した図５に示すルーチンを実行することにより、内燃機関の始動直後に、パージＶＳＶ２８に閉故障が生じているか否かを正確に判定することができる。
【００５８】
（パージＶＳＶに閉故障が生じていない状況下でのＣＣＶの故障判定）
次に、図６乃至図１１を参照して、ＣＣＶ２２を対象とする故障判定の手法について説明する。本実施形態の装置は、ＣＣＶ２２についても、開故障と閉故障とを区別して検出する。ここで、それらの故障検出は、パージＶＳＶ２８に閉故障が生じているか否かに応じて、つまり、キャニスタ２０に吸気負圧が導けるか否かに応じて、異なった手法で行うことが適切である。ここでは、先ず図６乃至図８を参照して、パージＶＳＶ２８に閉故障が生じていない場合の故障検出の手法（以下、「ＣＣＶ故障検出第１手法」と称す）を説明する。
【００５９】
図６は、ＣＣＶ故障検出第１手法によってＣＣＶ２２の開故障を検知する際の動作を説明するためのタイミングチャートである。ここに示すタイミングチャートは、パージＶＳＶ２８を対象とする故障検出の処理、つまり、図３および図５に示す故障検出のためのルーチンが終了した後の動作を示すものである。
【００６０】
より具体的には、図６（Ａ）は、それらのルーチンが実行されることによりパージＶＳＶ２８に閉故障が生じていないことが確認された後に、パージＶＳＶ２８に向けて発せられる指令の内容を示す。図６（Ａ）に示す通り、ここでは、パージＶＳＶ２８に対する指令が継続的に開指令に維持される。その結果、ＣＣＶ故障検出第１手法では、ＣＣＶ２２の開故障を検出する間中、キャニスタ２０に吸気負圧が導かれる状態が常時維持される。
【００６１】
図６（Ｂ）は、ＣＣＶ故障検出第１手法によってＣＣＶ２２の開故障を検出する際に、ＣＣＶ２２に与えられる指令の内容を示す。この図に示すように、ＣＣＶ故障検出第１手法による開故障の検出時には、その検出処理が開始された後、ＣＣＶ２２に対する指令は常時閉指令に維持される。
【００６２】
図６（Ｃ）は、ＣＣＶ故障検出第１手法による開故障の検出中にタンク内圧ＰＴＮＫに生ずる変化を示す。より詳細には、この図中に破線で示す波形は、正常時におけるタンク内圧ＰＴＮＫの波形であり、一方、図中に実線で示す波形は、ＣＣＶ２２に開故障が生じている場合、或いは、キャニスタ２０および燃料タンク１０を含む系内にＣＣＶ２２の開故障と同視できる程度の大きな漏れ故障が生じている場合の波形を示す。
【００６３】
ＣＣＶ故障検出第１手法によれば、ＣＣＶ２２の開故障の検出中は、キャニスタ２２に吸気負圧が導入され続けるため、ＣＣＶ２２が閉指令を受けて適正に閉弁しており、その結果、上記の系が適正に大気から切り離されていれば、タンク内圧ＰＴＮＫは、図６（Ｃ）中に破線で示すように大きく負圧側に変化するはずである。これに対して、ＣＣＶ２２に開故障が生じていたり、或いは、ＣＣＶ２２の開故障と同視できる大きな漏れ故障が系内に生じていたりした場合は、その系内に大気が流入することにより、図６（Ｃ）中に実線で示す通り、タンク内圧ＰＴＮＫに有意な低下は生じない。このため、ＣＣＶ故障検出第１手法によれば、開故障の検出開始後に、タンク内圧ＰＴＮＫに有意な低下が生ずるか否かを見ることで（ＰＴＮＫが図６（Ｃ）に示すＫＰ２を下回るか否かを見ることで）、ＣＣＶ２２の開故障、或いは、これと同視し得る大きな漏れ故障が生じているか否かを判断することができる。尚、以下の記載においては、「ＣＣＶ故障検出第１手法により検出されるＣＣＶ２２の開故障」とは、ＣＣＶ２２の開故障そのものの他、ＣＣＶ２２の開故障と同視し得る大きな漏れ故障をも含む概念であるものとし、それらの両者を「ＣＣＶ２２の開故障」として総称することとする。
【００６４】
図６（Ｄ）は、ＣＣＶ２２に開故障が生じているか否かを表すための開故障判定フラグＸＣＣＶ開の状態を示す。タンク内圧ＰＴＮＫが図６（Ｃ）中に実線で示すように変化した場合、開故障の有無を判断する時刻（ＫＣ３２の時刻）において、タンク内圧ＰＴＮＫに有意な低下が生じていないと判断される。この場合、ＣＣＶ２２に開故障が生じていることを表すべく、図６（Ｄ）に示すように、開故障判定フラグＸＣＣＶ開に１がセットされる。一方、ＫＣ３２の時点においてタンク内圧ＰＴＮＫがＫＰ２を下回っていれば、ＣＣＶ２２に開故障は生じていないと判断され、開故障判定フラグＸＣＣＶ開には０がセットされる。
【００６５】
図７は、ＣＣＶ故障検出第１手法により、ＣＣＶ２２の閉故障を検出する際の動作を説明するためのタイミングチャートである。ここに示すタイミングチャートは、図６に示す開故障の検出動作に次いで（厳密には、その動作に次いで行われる漏れ故障の検出動作に次いで）実行される動作を示したものである。尚、漏れ故障の検出動作については、後に、図８を参照して、ＥＣＵ６０が実行する具体的な処理を説明する際にその内容を説明する。
【００６６】
図７（Ａ）は、ＣＣＶ２２の閉故障検出の際にパージＶＳＶ２８に向けて発せられる指令の内容を示す。この図に示す通り、ＣＣＶ２２の閉故障検出の際には、パージＶＳＶ２８に常に開指令が発せられる。その結果、ここでは、ＣＣＶ２２の開故障検出の場合と同様に、キャニスタ２０に吸気負圧が導入される状態が常時維持される。図７（Ｂ）は、ＣＣＶ２２の閉故障検出の際にＣＣＶ２２に供給される指令の内容を示す。この図に示すように、ＣＣＶ故障検出第１手法では、ＣＣＶ２２の閉故障検出の期間中、ＣＣＶ２２に対して常に開指令が発せられる。
【００６７】
図７（Ｃ）は、ＣＣＶ故障検出第１手法による閉故障の検出中にタンク内圧ＰＴＮＫに生ずる変化を示す。より詳細には、この図中に破線で示す波形は、正常時におけるタンク内圧ＰＴＮＫの波形であり、一方、図中に実線で示す波形は、ＣＣＶ２２に閉故障が生じている場合の波形を示す。ＣＣＶ２２が開指令を受けて適正に開弁すれば、タンク内圧ＰＴＮＫは、キャニスタ２０への大気の流入に伴い、図７（Ｃ）中に破線で示すように大きく大気圧側に変化するはずである。これに対して、ＣＣＶ２２に閉故障が生じていると、キャニスタ２０への大気の流入が生じないため、図７（Ｃ）中に実線で示す通り、タンク内圧ＰＴＮＫは負圧化された状態のまま維持される。このため、ＣＣＶ故障検出第１手法においては、閉故障の検出開始後に、タンク内圧ＰＴＮＫに有意な上昇が生ずるか否かを見ることで、ＣＣＶ２２に閉故障が生じているか否かを判断することができる。尚、図７（Ｃ）中に示すＫＰ４は、タンク内圧ＰＴＮＫに有意な上昇が生じたか否かを判断するために設定された判定値である。
【００６８】
図７（Ｄ）は、ＣＣＶ２２に閉故障が生じているか否かを表すための閉故障判定フラグＸＣＣＶ閉開の状態を示す。タンク内圧ＰＴＮＫが図７（Ｃ）中に実線で示すように変化した場合、閉故障の有無を判断する時刻（ＫＣ３５の時刻）において、タンク内圧ＰＴＮＫに有意な上昇は生じていないと判断される。この場合、ＣＣＶ２２に閉故障が生じていることを表すべく、図７（Ｄ）に示すように、閉故障判定フラグＸＣＣＶ閉に１がセットされる。一方、ＫＣ３５の時点においてタンク内圧ＰＴＮＫがＫＰ４を上回っていれば、ＣＣＶ２２に閉故障は生じていないと判断され、閉故障判定フラグＸＣＣＶ閉には０がセットされる。尚、図７（Ｄ）に示すＫＣ３３はＣＣＶ２２に開弁指令が発せられる時刻である。また、ＫＣ３４は、ＰＴＮＫの応答時間を考慮して、ＰＴＮＫに有意な上昇が生じたか否かが判断され始める時刻である。
【００６９】
図８は、上述したＣＣＶ故障検出第１手法によりＣＣＶ２２の故障診断を進めるべくＥＣＵ６０が実行するルーチンのフローチャートを示す。尚、図８に示すルーチンは、上記図５に示すルーチンに続いて実行されるものとする。図８に示すルーチンでは、先ず、ＸＶＳＶ閉＝０が成立するか否かが判別される（ステップ１６０）。ここでＸＶＳＶ閉＝０が成立しないと判別された場合は、パージＶＳＶ２８に閉故障が生じていると判断される。この場合、後に図９乃至１１を参照して説明するＣＣＶ故障検出第２手法により、以後の処理が進められる。一方、ＸＶＳＶ閉＝０が成立すると判別された場合は、以後、ＣＣＶ故障検出第１手法により以後の処理が進められる。
【００７０】
ここでは、先ず、第３ＯＢＤカウンタの計数値ＣＯＢＤ３が、終了判定値Ｋ３１に達しているか否かが判別される（ステップ１６２）。その結果、ＣＯＢＤ３≧ＫＣ３１が成立すると判定される間は、以後速やかに今回の処理サイクルが終了される。ＣＰＢＤ３は、内燃機関の始動直後にイニシャル処理によりクリアされている。従って、内燃機関の始動後しばらくの間は本ステップ１６２において、ＣＯＢＤ３≧ＫＣ３１が成立しないと判断される。この場合は、次に、タンク内圧ＰＴＮＫと基準圧Ｐ０（上記ステップ１０８参照）との差圧ΔＰ＝ＰＴＮＫ−Ｐ０が算出される（ステップ１６４）。次いで、第３ＯＢＤカウンタのインクリメント処理が行われる（ステップ１６６）。
【００７１】
図８に示すルーチンでは、次に、第３ＯＢＤカウンタの計数値ＣＯＢＤ３が、開故障診断判定値ＫＣ３２に達したか否かが判別される（ステップ１６８）。開故障診断判定値ＫＣ３２は、ＣＣＶ２２に開故障が生じているか否かを判断するタイミングに対応する値であり、上述した終了判定値ＫＣ３１に比して小さな値である。ＣＣＶ２２の開故障を検出する処理が開始された直後は、本ステップ１６８において、ＣＯＢＤ３≧ＫＣ３２が成立しないとの判定がなされる。この場合、次に、ＣＣＶ２２に対して閉指令が発せられる（ステップ１７０）。
【００７２】
次いで、上記の差圧ΔＰが開故障判定値ＫＰ２より大きいか否かが判別される（ステップ１７２）。ＣＣＶ２２が適正に閉弁し、その結果、キャニスタ２０および燃料タンク１０を含む系が適正に大気から切り離されている場合は、ＰＴＮＫが大きく低下するため差圧ΔＰは開故障判定値ＫＰ２より小さな値となる（図６（Ｃ）参照）。従って、ΔＰ＞ＫＰ２の成立が認められる場合は、ＣＣＶ２２に開故障（大きな漏れ故障の場合を含む）が生じている可能性があると判断することができる。この場合、ＥＣＵ６０は、開故障判定仮フラグｔＸＣＣＶ開に「１」をセットする（ステップ１７４）。一方、上記ステップ１７２において、ΔＰ＞ＫＰ２が成立しないと判別された場合は、ＣＣＶ２２に開故障は生じていないと判断できる。この場合、ＥＣＵ６０は、開故障判定仮フラグｔＸＣＣＶ開に「０」をセットする（ステップ１７６）。これらの処理が終了すると、次に、現在のタンク内圧ＰＴＮＫが開故障判定終了時圧力Ｐ１として記憶された後（ステップ１７８）、今回の処理サイクルが終了される。
【００７３】
ＣＣＶ２２の開故障を検出する処理が開始された後、第３ＯＢＤカウンタの計数値ＣＯＢＤ３が開故障診断判定値ＫＣ３２に達するまでの間は、図８に示すルーチンが起動される毎に、上述したステップ１６０〜１７８の処理が繰り返される。その結果、開故障判定仮フラグｔＸＣＣＶ開の最終値は、ＣＯＢＤ３がＫＣ３２に達する直前の処理サイクルにおいて設定されることになる。また、開故障判定終了時圧力Ｐ１には、ＣＯＢＤ３がＫＣ３２に達する直前の処理サイクル時におけるタンク内圧ＰＴＮＫが設定されることになる。
【００７４】
第３ＯＢＤカウンタの計数値ＣＯＢＤ３が開故障診断判定値ＫＣ３２以上になると、その値ＣＯＢＤ３が終了判定値ＫＣ３１より小さい限り、図８に示すルーチンが起動される毎に、上記ステップ１６８において、ＣＯＢＤ３≧ＫＣ３２の成立が認められる。この場合、先ず、ＣＣＶ２２の開故障に関する判断を開故障判定フラグＸＣＣＶ開に反映させるべく、仮フラグｔＸＣＣＶ開の値がＸＣＣＶ開にセットされる（ステップ１８０）。以後、ＥＣＵ６０は、ＸＣＣＶ開に１がセットされている場合には、ＣＣＶ２２に開故障（大きな漏れ故障の場合を含む）が生じていると判断し、一方、ＸＣＣＶ開に０がセットされている場合は、ＣＣＶ２２に開故障が生じていないと判断する。
【００７５】
図８に示すルーチンでは、次に、上記の如くセットされた開故障判定フラグＸＣＣＶ開につき、ＸＣＣＶ開＝０が成立するか否かが判別される（ステップ１８２）。その結果、ＸＣＣＶ開＝０が成立しないと判別された場合は、故障の発生とその内容（開故障）が確認できたとして、以後速やかに今回の処理サイクルが終了される。一方、ＸＣＣＶ開＝０が成立する場合は、更に故障検出の処理が続けられる。
【００７６】
ここでは、先ず、ＸＶＳＶ開＝０が成立するかが判別される（ステップ１８４）。ＸＶＳＶ開＝０が成立すると判別された場合は、パージＶＳＶ２８を閉じてキャニスタ２０を含む系内に圧力を封じ込めることが可能であると判断できる。この場合は、更に、第３ＯＢＤカウンタの計数値ＣＯＢＤ３が漏れ故障診断判定値ＫＣ３３に達しているか否かが判別される（ステップ１８６）。
【００７７】
漏れ故障診断判定値ＫＣ３３は、開故障診断判定値ＫＣ３２より所定数だけ大きく、かつ、終了判定値ＫＣ３１より小さな値である。この場合、上記ステップ１８６では、ＣＯＢＤ３がＫＣ３２を越えた後ＫＣ３３に達するまでの間だけ、ＣＯＢＤ３≧ＫＣ３３の不成立が判定される。図８に示すルーチンにおいて、このような判定がなされている間は、キャニスタ２０を含む系内の漏れ故障を行うべく、ステップ１８６の処理に次いで、パージＯＢＤフラグＸＯＢＤＰＧに１がセットされる（ステップ１８８）。
【００７８】
ＥＣＵ６０は、ＸＯＢＤＰＧに１がセットされている間は、パージの実行条件が成立していないとして、パージＶＳＶ２８を閉弁状態とする。ＣＣＶ２２がこの時点で閉じられていることから、パージＶＳＶ２８が閉弁されると、キャニスタ２０および燃料タンク１０を含む系は吸気通路３０からも大気からも切り離されることになり、その系内に圧力が封じ込められた状態が形成される。
【００７９】
図８に示すルーチンでは、パージＯＢＤフラグＸＯＢＤＰＧに１がセットされた後、現在のタンク内圧ＰＴＮＫと開故障判定終了時圧力Ｐ１との差ＰＴＮＫ−Ｐ１（以下、「圧力変動量」と称す）が、漏れ故障判定値ＫＰ３より大きいか否かが判別される（ステップ１９０）。上記の系が適正に密閉されていれば、ＫＰ３を越える圧力変動量ＰＴＮＫ−Ｐ１が生ずることはない。従って、ＰＴＮＫ−Ｐ１＞ＫＰ３の成立が認められる場合は、キャニスタ２０を含む系に漏れ故障が生じている可能性があると判断することができる。この場合、ＥＣＵ６０は、漏れ故障判定仮フラグｔＸＥＶＰに「１」をセットする（ステップ１９２）。一方、上記ステップ１９０において、ＰＴＮＫ−Ｐ１＞ＫＰ３が成立しないと判別された場合は、上記の系内に漏れ故障は認められないと判断できる。この場合、ＥＣＵ６０は、漏れ故障判定仮フラグｔＸＥＶＰに「０」をセットする（ステップ１９４）。これらの処理が終了すると、今回の処理サイクルが終了される。
【００８０】
上述したステップ１９０〜１９４の処理は、ＸＣＣＶ開＝０が成立する状況下で、つまり、ＣＣＶ２２に開故障が生じておらず、かつ、これと同視できる大きな漏れ故障が生じていないことが確認された状況下でのみ実行される。このため、上記ステップ１９０〜１９４の処理によれば、ＣＣＶ２２の開故障とは同視することのできない小さな漏れ故障の有無を判断することができる。つまり、ＣＣＶ故障検出第１手法によりセットされる漏れ故障判定仮フラグｔＸＥＶＰは、ＣＣＶ２２の開故障と同視できない小さな漏れ故障の有無に対応していることになる。
【００８１】
パージＶＳＶ２８に開故障が生じている場合は、上述した漏れ故障の検出処理を行うことができない。このため、上記ステップ１８４において、ＸＶＳＶ開＝０の不成立が認められた場合は、上記ステップ１８６〜１９４の処理はジャンプされ、その後速やかにステップ１９６以降の処理が行われる。また、上記ステップ１８６において、ＣＰＢＤ３≧ＫＣ３３の成立が認められた場合は、漏れ故障の検出期間が終了していると判断できる。この場合も、上記ステップ１８６〜１９４の処理がジャンプされ、以後速やかにステップ１９６以降の処理が行われる。
【００８２】
ここでは、先ず、パージＯＢＤフラグＸＯＢＤＰＧが０にリセットされる（ステップ１９６）。ＸＯＢＤＰＧが０とされると、パージの実行条件の成立が認められ、再びパージＶＳＶ２８は開状態とされる。次に、漏れ故障に関する判断の内容を、より詳しくは、ＣＣＶ２２の開故障と同視できない小さな漏れ故障に関する判断の内容を、障判定フラグＸＥＶＰに反映させるべく、仮フラグｔＸＥＶＰの値がＸＥＶＰにセットされる（ステップ１９８）。以後、ＥＣＵ６０は、ＸＥＶＰに１がセットされている場合には、キャニスタ２０を含む系に小さな漏れ故障が生じていると判断し、一方、ＸＥＶＰに０がセットされている場合は、その系に小さな漏れ故障は生じていないと判断する。
【００８３】
上記の処理が終了すると、次に、ＣＣＶ２２の閉故障を検出するため、ＣＣＶ２２に対して開指令が与えられる（ステップ２００）。次に、第３ＯＢＤカウンタの計数値ＣＯＢＤ３が応答判定値ＫＣ３４に達したか否かが判別される（ステップ２０２）。ＣＣＶ２２が上記の開指令を受けて適正に開弁すると、キャニスタ２０に大気が流入するのに伴ってタンク内圧ＰＴＮＫは大気圧に向けて上昇し始める。応答判定値ＫＣ３４は、ＰＴＮＫに有意な変化が生ずるまでの応答時間分だけ漏れ故障診断判定値ＫＣ３３より大きく、かつ、終了判定値ＫＣ３１より小さな値である。従って、本ステップ２０２で、ＣＯＢＤ３≧ＫＣ３４の成立が認められない場合は、十分な応答時間が経過していないと判断することができる。この場合、ＥＣＵ６０は、以後速やかに今回の処理サイクルを終了させる。
【００８４】
一方、上記ステップ２０２において、ＣＯＢＤ３≧ＫＣ３４の成立が認められた場合は、ＣＣＶ２２に対して開指令が発せられた後、十分な応答時間が経過していると判断できる。図８に示すルーチンでは、この場合、第３ＯＢＤカウンタの計数値ＣＯＢＤ３が閉故障診断判定値ＫＣ３５に達したか否かが判別される（ステップ２０４）。閉故障診断判定値ＫＣ３５は、応答判定値ＫＣ３４より所定数だけ大きく、かつ、終了判定値ＫＣ３１より１だけ小さな値である。計数値ＣＯＢＤ３が応答判定値ＫＣ３４に達した後、所定回数だけ処理サイクルが繰り返される間は、ここでＣＯＢＤ３≧ＫＣ３５の不成立が判定される。この間は、その判定処理に次いで、更に、差圧ΔＰが閉故障判定値ＫＰ４より小さいか否かが判別される（ステップ２０６）。
【００８５】
上記の判別の結果、ΔＰ＜ＫＰ４の成立が認められた場合は、ＣＣＶ２２に対して開指令が与えられているにも関わらず、タンク内圧ＰＴＮＫに有意な上昇が生じていないと判断できる（図７（Ｃ）中の実線参照）。この場合、ＥＣＵ６０は、ＣＣＶ２２に閉故障が生じている可能性があると判断して、閉故障判定仮フラグｔＸＣＣＶ閉に「１」をセットする（ステップ２０８）。一方、上記ステップ２０６において、ΔＰ＜ＫＰ４が成立しないと判別された場合は、タンク内圧ＰＴＮＫに有意な上昇が生じていると判断できる。ＥＣＵ６０は、この場合、ＣＣＶ２２に閉故障が生じている可能性はないと判断して、閉故障判定仮フラグｔＸＣＣＶ閉に「０」をセットする（ステップ２１０）。
【００８６】
第３ＯＢＤカウンタの計数値ＣＯＢＤ３が閉故障診断判定値ＫＣ３５に達すると、上記ステップ２０４において、ＣＯＢＤ３≧ＫＣ３５の成立が判断される。この場合、ＥＣＵ６０は、ＣＣＶ２２の閉故障に関する判断を閉故障判定フラグＸＣＣＶ閉に反映させるべく、仮フラグｔＸＣＣＶ閉の値をＸＣＣＶ閉にセットする（ステップ２１２）。以後、ＥＣＵ６０は、ＸＣＣＶ閉に１がセットされている場合には、ＣＣＶ２２に閉故障が生じていると判断し、一方、ＸＣＣＶ閉に０がセットされている場合は、ＣＣＶ２２に閉故障が生じていないと判断する。次回以降、図８に示すルーチンが起動された際には、上記ステップ１６２において、ＣＯＢＤ３≧ＫＣ３１の成立が認められる。この場合、ＥＣＵ６０は、実質的な処理を何ら行うことなく図８に示すルーチンを終了させる。
【００８７】
図８に示すルーチンは、既述した通り、パージＶＳＶ２８に閉故障が生じていない場合に実行される処理である。パージＶＳＶ２８に閉故障が生じていない場合は、キャニスタ２０のパージを進めるために、そこに吸気負圧が導かれることがある。大きな漏れ故障が生じている状況下でキャニスタ２０に多大な負圧が導入されれば、漏れ故障の箇所から多量の空気が系内に流入し、その結果、系内に異物が流入する事態が生じ得る。このため、そのような状況下では、漏れ故障の箇所から不当に多量の空気が流入することがないように負圧の導入を制御することが適切である。
【００８８】
これに対して、系内に生じている故障がＣＣＶ２２の開故障とは同視できない小さな漏れ故障であれば、異物の混入を考慮して負圧導入を制限する必要は存在しない。むしろ、この場合は、キャニスタ２０のパージ効率を高めるべく多量のパージガスが生ずるように負圧の導入を制御すること、或いは、漏れ故障の箇所から蒸発燃料が大気に流出するのを避けるべく、系内が常時安定的に負圧に維持されるように負圧の導入を制御することが望まれる。このように、本実施形態の装置においては、ＣＣＶ２２の開故障と同視できる大きな漏れ故障が生じている場合と、そのような同視ができない小さな漏れ故障が生じている場合とでは、系内に負圧を導入するための制御に異なる要求が課される。
【００８９】
上述した図８に示すルーチンによれば、パージＶＳＶ２８に閉故障が生じていないことを条件に、ＣＣＶ２２の開故障（大きな漏れ故障を含む）の有無、ＣＣＶ２２の閉故障の有無、並びにＣＣＶ２２の開故障とは同視できない小さな漏れ故障の有無を正確に診断することができる。つまり、このルーチンにより実現されるＣＣＶ故障検出第１処理によれば、ＣＣＶ２２の開故障と同視できる大きな漏れ故障と、その同視ができない小さな漏れ故障とを区別して検出することができる。このため、本実施形態の装置は、キャニスタ２０に吸気負圧が導入される状況下では、大きな漏れ故障と小さな漏れ故障とを区別し、それぞれの故障に対して適切な対処を採ることが可能である。
【００９０】
（パージＶＳＶに閉故障が生じている状況下でのＣＣＶの故障判定）
次に、図９乃至図１１を参照して、パージＶＳＶ２８に閉故障が生じている状況下でＣＣＶ２２の故障を検出する手法（以下、「ＣＣＶ故障検出第２手法」と称す）について説明する。つまり、キャニスタ２０に吸気負圧が導かれることのない状況下でＣＣＶ２２の故障を検出するためのＣＣＶ故障検出第２手法について説明する。
【００９１】
図９は、ＣＣＶ故障検出第２手法よってＣＣＶ２２の閉故障を検知する際の動作を説明するためのタイミングチャートである。ここに示すタイミングチャートは、パージＶＳＶ２８を対象とする故障検出（図３および図５に示す処理）の結果、パージＶＳＶ２８に閉故障が生じていることが確認された後に実現される動作を示したものである。
【００９２】
より具体的には、図９（Ａ）は、パージＶＳＶ２８の閉故障が認められた後に、パージＶＳＶ２８に向けて発せられる指令の内容を示す。パージＶＳＶ２８に閉故障が生じている場合は、パージＶＳＶ２８を開くことはできない。ここでは、無駄な電力消費を発生させないこと等を目的として、図９（Ａ）に示す通り、パージＶＳＶ２８に対する指令は継続的に閉指令に維持される。ＣＣＶ故障検出第２手法を用いる場合は、このような状況下で、つまり、キャニスタ２０に吸気負圧を導くことができない状況下でＣＣＶ２０の開故障を検出することが要求される。
【００９３】
図９（Ｂ）は、ＣＣＶ故障検出第２手法によってＣＣＶ２２の開故障を検出する際に、ＣＣＶ２２に与えられる指令の内容を示す。この図に示すように、ＣＣＶ故障検出第２手法による開故障の検出時には、その検出処理が開始された後、ＣＣＶ２２に対する指令は常時閉指令に維持される。
【００９４】
図９（Ｃ）は、ＣＣＶ故障検出第２手法による開故障の検出中にタンク内圧ＰＴＮＫに生ずる変化を示す。より詳細には、この図中に破線で示す波形は、正常時におけるタンク内圧ＰＴＮＫの波形であり、一方、図中に実線で示す波形は、ＣＣＶ２２に開故障（大きな漏れ故障の場合を含む）が生じている場合の波形を示す。ＣＣＶ故障検出第２手法によれば、ＣＣＶ２２の開故障の検出中は、パージＶＳＶ２８が閉弁状態に維持されるため、ＣＣＶ２２が閉指令を受けて適正に閉弁し、その結果キャニスタ２０および燃料タンクを含む系が大気から適切に切り離されていれば、その系は密閉された状態となる。この場合、タンクベーパの発生する環境が整っていれば、タンク内圧ＰＴＮＫは、図９（Ｃ）中に破線で示すように正圧側に変化するはずである。これに対して、ＣＣＶ２２に開故障（大きな漏れ故障の場合を含む）が生じていると、上記の系が密閉されないため、図９（Ｃ）中に実線で示す通り、タンク内圧ＰＴＮＫに有意な上昇は生じない。このため、ＣＣＶ故障検出第２手法においては、タンクベーパの発生する環境下でタンク内圧ＰＴＮＫに有意な上昇が生ずるか否かを見ることで、ＣＣＶ２２に開故障（大きな漏れ故障の場合を含む）が生じているか否かを判断することができる。
【００９５】
図９（Ｄ）は、ＣＣＶ２２に開故障が生じているか否かを表すための開故障判定フラグＸＣＣＶ開の状態を示す。タンク内圧ＰＴＮＫが図９（Ｃ）中に実線で示すように変化した場合、開故障の有無を判断する時刻（ＫＣ４２の時刻）において、タンク内圧ＰＴＮＫに有意な上昇が生じていないと判断される。この場合、ＣＣＶ２２に開故障が生じていることを表すべく、図９（Ｄ）に示すように、開故障判定フラグＸＣＣＶ開に１がセットされる。一方、ＫＣ４２の時点においてタンク内圧ＰＴＮＫが正圧化していれば、ＣＣＶ２２に開故障は生じていないと判断され、開故障判定フラグＸＣＣＶ開には０がセットされる。
【００９６】
図１０は、ＣＣＶ故障検出第２手法により、ＣＣＶ２２の閉故障を検出する際の動作を説明するためのタイミングチャートである。ここに示すタイミングチャートは、図９に示す開故障の検出動作に次いで実行される動作を示したものである。図１０（Ａ）は、ＣＣＶ２２の閉故障検出の際にパージＶＳＶ２８に向けて発せられる指令の内容を示す。ＣＣＶ故障検出第２手法では、ここでも、パージＶＳＶ２８に対する指令は常に閉指令とされる。図１０（Ｂ）は、ＣＣＶ２２の閉故障検出の際にＣＣＶ２２に供給される指令の内容を示す。この図に示すように、ＣＣＶ故障検出第２手法では、ＣＣＶ２２の閉故障検出の期間中、ＣＣＶ２２に対して常に開指令が発せられる。
【００９７】
図１０（Ｃ）は、ＣＣＶ故障検出第２手法による閉故障の検出中にタンク内圧ＰＴＮＫに生ずる変化を示す。より詳細には、この図中に破線で示す波形は、正常時におけるタンク内圧ＰＴＮＫの波形であり、一方、図中に実線で示す波形は、ＣＣＶ２２に閉故障が生じている場合の波形を示す。ＣＣＶ２２が開指令を受けて適正に開弁すれば、キャニスタ２０が大気に解放されるのに伴い、タンク内圧ＰＴＮＫは図１０（Ｃ）中に破線で示すように大気圧近傍値に低下するはずである。これに対して、ＣＣＶ２２に閉故障が生じていると、キャニスタ２０が大気に解放されないため、図１０（Ｃ）中に実線で示す通り、タンク内圧ＰＴＮＫは正圧化されたまま維持される。このため、ＣＣＶ故障検出第２手法においては、閉故障の検出開始後に、タンク内圧ＰＴＮＫに有意な低下が生じたか否かにより、ＣＣＶ２２に閉故障が生じているか否かを判断することができる。
【００９８】
図１０（Ｄ）は、ＣＣＶ故障検出第２手法によりセットされる閉故障判定フラグＸＣＣＶ閉開の状態を示す。タンク内圧ＰＴＮＫが図１０（Ｃ）中に実線で示すように変化した場合、閉故障の有無を判断する時刻（ＫＣ４４の時刻）において、タンク内圧ＰＴＮＫに有意な低下は生じていないと判断される。この場合、ＣＣＶ２２に閉故障が生じていることを表すべく、図１０（Ｄ）に示すように、閉故障判定フラグＸＣＣＶ閉に１がセットされる。一方、ＫＣ４４の時点においてタンク内圧ＰＴＮＫが大気圧近傍値に低下していた場合は、ＣＣＶ２２に閉故障は生じていないと判断され、閉故障判定フラグＸＣＣＶ閉に０がセットされる。尚、図１０（Ｄ）に示すＫＣ４３は、ＰＴＮＫの応答時間を考慮して、ＰＴＮＫに有意な低下が生じたか否かが判断され始める時刻である。
【００９９】
図１１は、上述したＣＣＶ故障検出第２手法によりＣＣＶ２２の故障診断を進めるべくＥＣＵ６０が実行するルーチンのフローチャートを示す。尚、図１１に示すルーチンは、上記図８に示すルーチン中、上記ステップ１６０において、ＸＶＳＶ閉＝０の不成立が認められた場合に実行されるルーチンである。
【０１００】
図１１に示すルーチンでは、先ず、現在の吸気温ＴＨＡが、開始時冷却水温ＴＨＡＳＴ（上記ステップ１１２参照）より所定値ｋ１以上高温であるか否かが判別される（ステップ２２０）。その結果、ＴＨＡ≧ｋ１＋ＴＨＡＳＴの成立が認められない場合は、未だ暖機が十分に進行しておらず、タンクベーパが活発に発生する状況が形成されていないと判断できる。この場合は、ＣＣＶ２２の開故障判定を進めることなく、以後速やかに今回の処理サイクルが終了される。一方、上記の条件が成立する場合は、タンクベーパが活発に発生する状況が形成されていると判断され、以後、ＣＣＶ２２の開故障を検出するための処理が進められる。尚、本ステップ２２０の処理は、タンクベーパの発生状況を推定するための処理であり、その推定が可能である限り、他の処理に置き換えることが可能である。
【０１０１】
上記ステップ２２２において、ＴＨＡ≧ｋ１＋ＴＨＡＳＴの成立が認められた場合は、次に、第４ＯＢＤカウンタの計数値ＣＯＢＤ４が、終了判定値Ｋ４１に達しているか否かが判別される（ステップ２２２）。その結果、ＣＯＢＤ４≧ＫＣ４１が成立すると判定される間は、以後速やかに今回の処理サイクルが終了される。ＣＰＢＤ４は、内燃機関の始動直後にイニシャル処理によりクリアされている。従って、内燃機関の始動後しばらくの間は本ステップ２２２において、ＣＯＢＤ４≧ＫＣ４１が成立しないと判断される。この場合は、次に、タンク内圧ＰＴＮＫと基準圧Ｐ０（上記ステップ１０８参照）との差圧ΔＰ＝ＰＴＮＫ−Ｐ０が算出される（ステップ２２４）。次いで、第４ＯＢＤカウンタのインクリメント処理が行われる（ステップ２２６）。
【０１０２】
図１１に示すルーチンでは、次に、第４ＯＢＤカウンタの計数値ＣＯＢＤ４が、開故障診断判定値ＫＣ４２に達したか否かが判別される（ステップ２２８）。開故障診断判定値ＫＣ４２は、ＣＣＶ２２に開故障が生じているか否かを判断するタイミングに対応する値であり、上述した終了判定値ＫＣ４１に比して小さな値である。ＣＣＶ２２の開故障を検出する処理が開始された直後は、本ステップ２２８において、ＣＯＢＤ４≧ＫＣ４２が成立しないとの判定がなされる。この場合、次に、ＣＣＶ２２に対して閉指令が発せられる（ステップ２３０）。
【０１０３】
次いで、上記の差圧ΔＰが開故障判定値ＫＰ２より大きいか否かが判別される（ステップ２３２）。ＣＣＶ２２が適正に閉弁しており、その結果、キャニスタ２０およびタンク内圧１０を含む系が適正に大気から切り離されている場合は、タンクベーパの発生に伴ってタンク内圧ＰＴＮＫが上昇するため、差圧ΔＰは開故障判定値ＫＰ２より大きな値となる。従って、ΔＰ＞ＫＰ２が不成立であれば、ＣＣＶ２２に開故障（大きな漏れ故障の場合を含む）が生じている可能性があると判断することができる。この場合、ＥＣＵ６０は、開故障判定仮フラグｔＸＣＣＶ開に「１」をセットする（ステップ２３４）。一方、上記ステップ２３２において、ΔＰ＞ＫＰ２の成立が判定された場合は、ＣＣＶ２２に開故障は生じていないと判断できる。この場合、ＥＣＵ６０は、開故障判定仮フラグｔＸＣＣＶ開に「０」をセットする（ステップ２３６）。
【０１０４】
ＣＣＶ２２の開故障を検出する処理が開始された後、第４ＯＢＤカウンタの計数値ＣＯＢＤ４が開故障診断判定値ＫＣ４２に達するまでの間は、図１１に示すルーチンが起動される毎に、上述したステップ２２０〜２３６の処理が繰り返される。その結果、開故障判定仮フラグｔＸＣＣＶ開の最終値は、ＣＯＢＤ４がＫＣ４２に達する直前の処理サイクルにおいて設定されることになる。
【０１０５】
第４ＯＢＤカウンタの計数値ＣＯＢＤ４が開故障診断判定値ＫＣ４２より大きな値になると、その値ＣＯＢＤ４が終了判定値ＫＣ４１より小さい限り、図１１に示すルーチンが起動される毎に、上記ステップ２２８において、ＣＯＢＤ４≧ＫＣ４２の成立が認められる。この場合、先ず、ＣＣＶ２２の開故障に関する判断を開故障判定フラグＸＣＣＶ開に反映させるべく、仮フラグｔＸＣＣＶ開の値がＸＣＣＶ開にセットされる（ステップ２３８）。以後、ＥＣＵ６０は、ＸＣＣＶ開に１がセットされている場合には、ＣＣＶ２２に開故障（大粉漏れ故障の場合を含む）が生じていると判断し、一方、ＸＣＣＶ開に０がセットされている場合は、ＣＣＶ２２に開故障が生じていないと判断する。
【０１０６】
図１１に示すルーチンでは、次に、上記の如くセットされた開故障判定フラグＸＣＣＶ開につき、ＸＣＣＶ開＝０が成立するか否かが判別される（ステップ２４０）。その結果、ＸＣＣＶ開＝０が成立しないと判別された場合は、故障の発生とその内容（開故障）が確認できたとして、以後速やかに今回の処理サイクルが終了される。一方、ＸＣＣＶ開＝０が成立する場合は、ＣＣＶ２２の閉故障を検出するための処理が更に継続される。
【０１０７】
ここでは、先ず、ＣＣＶ２２に対して開指令が与えられる（ステップ２４２）。次に、第４ＯＢＤカウンタの計数値ＣＯＢＤ４が応答判定値ＫＣ４３に達したか否かが判別される（ステップ２４４）。これらの処理が最初に実行される時点では、タンク内圧ＰＴＮＫが、タンクベーパの発生に伴って正圧化されている。ＣＣＶ２２が、上記ステップ２４２の処理を受けて適正に開弁した場合は、キャニスタ２０が大気に解放されることによりそのタンク内圧ＰＴＮＫは大気圧に向けて低下する。応答判定値ＫＣ４３は、ＰＴＮＫに有意な低下が生ずるまでの応答時間分だけ開故障診断判定値ＫＣ４２より大きく、かつ、終了判定値ＫＣ４１より小さな値である。従って、本ステップ２４４で、ＣＯＢＤ４≧ＫＣ４３の成立が認められない場合は、十分な応答時間が経過していないと判断することができる。この場合、ＥＣＵ６０は、以後速やかに今回の処理サイクルを終了させる。
【０１０８】
一方、上記ステップ２４４において、ＣＯＢＤ４≧ＫＣ４３の成立が認められた場合は、ＣＣＶ２２に対して開指令が発せられた後、十分な応答時間が経過していると判断できる。図１１に示すルーチンでは、この場合、差圧ΔＰが閉故障判定値ＫＰ５より大きいか否かが判別される（ステップ２４６）。その結果、ΔＰ＞ＫＰ５の成立が認められた場合は、ＣＣＶ２２に対して開指令が与えられているにも関わらず、タンク内圧ＰＴＮＫが正圧化されたままであると判断できる。この場合、ＥＣＵ６０は、ＣＣＶ２２に閉故障が生じている可能性があると判断して、閉故障判定仮フラグｔＸＣＣＶ閉に「１」をセットする（ステップ２４８）。一方、上記ステップ２４６において、ΔＰ＞ＫＰ５が成立しないと判別された場合は、タンク内圧ＰＴＮＫが大気圧近傍値にまで低下していると判断できる。ＥＣＵ６０は、この場合、ＣＣＶ２２に閉故障が生じている可能性はないと判断して、閉故障判定仮フラグｔＸＣＣＶ閉に「０」をセットする（ステップ２５０）。
【０１０９】
図１１に示すルーチンでは、これらの処理に次いで、第４ＯＢＤカウンタの計数値ＣＯＢＤ４が閉故障診断判定値ＫＣ４４に達したか否かが判別される（ステップ２５２）。閉故障診断判定値ＫＣ４４は、応答判定値ＫＣ４３より所定数だけ大きく、かつ、終了判定値ＫＣ４１より１だけ小さな値である。計数値ＣＯＢＤ４が応答判定値ＫＣ４３に達した後、所定回数だけ処理サイクルが繰り返される間は、ここでＣＯＢＤ４≧ＫＣ４４の不成立が判定される。この間は、その判定処理の後、速やかに今回の処理サイクルが終了される。
【０１１０】
第４ＯＢＤカウンタの計数値ＣＯＢＤ４が閉故障診断判定値ＫＣ４４に達すると、上記ステップ２５２において、ＣＯＢＤ４≧ＫＣ４４の成立が判断される。この場合、ＥＣＵ６０は、ＣＣＶ２２の閉故障に関する判断を閉故障判定フラグＸＣＣＶ閉に反映させるべく、仮フラグｔＸＣＣＶ閉の値をＸＣＣＶ閉にセットする（ステップ２５４）。以後、ＥＣＵ６０は、ＸＣＣＶ閉に１がセットされている場合には、ＣＣＶ２２に閉故障が生じていると判断し、一方、ＸＣＣＶ閉に０がセットされている場合は、ＣＣＶ２２に閉故障が生じていないと判断する。次回以降、図１１に示すルーチンが起動された際には、上記ステップ２２２において、ＣＯＢＤ４≧ＫＣ４１の成立が認められる。この場合、ＥＣＵ６０は、実質的な処理を何ら行うことなく図１１に示すルーチンを終了させる。以上説明した通り、図１１に示すルーチンによれば、パージＶＳＶ２８に閉故障が生じている環境下で、ＣＣＶ２２の開故障および閉故障の有無を正確に診断することができる。
【０１１１】
尚、図８を参照して説明したＣＣＶ故障検出第１手法では、負圧導入のための制御に課される要求が異なることから、大きな漏れ故障（つまりＣＣＶ２２の開故障）の発生とは区別して、小さな漏れ故障の発生を検出することとしていた。しかしながら、ＣＣＶ故障検出第２手法は、キャニスタ２０に負圧が導入されることのない状況下で行われる処理である。そして、このような状況下では、大きな漏れ故障と小さな漏れ故障とを区別して検出する実益がない。このため、図１１に示すルーチンにより実現されるＣＣＶ故障検出第２手法では、大きな漏れ故障の発生と区別して小さな漏れ故障の発生を検出する処理は省略されている。
【０１１２】
（パージ制御の説明）
本実施形態の装置において、ＣＣＶ２２の開故障が認められた場合には、その開故障と同視し得る大きな漏れ故障の箇所から異物が流入するのを避けるため、パージの実行を制限することが望ましいことは既述した通りである。また、本実施形態の装置において、ＣＣＶ２２の閉故障が認められた場合には、タンク内圧ＰＴＮＫが過剰に負圧化するのを避ける意味でパージの実行を制限することが望まれる。このように、本実施形態の装置では、ＣＣＶ２２に開故障または閉故障が発生した場合に、それぞれパージを制限すべき状態が形成される。そこで、本実施形態では、ＣＣＶ２２の開故障または閉故障が認められた場合に、それぞれ通常の制御手法とは異なる制御手法を用いて、パージの実行を制御することとした。
【０１１３】
図１２は、上記の機能を実現するために、本実施形態においてＥＣＵ６０が実行するパージ制御ルーチンのフローチャートを示す。図１２に示すルーチンでは、先ず、パージの実行条件が成立しているか否かが判別される。例えば、パージＶＳＶ２８に閉故障が生じている場合は、パージが実行できないため、その実行条件は不成立であると判定される。パージの実行条件が成立していないと判別された場合は、パージ率ＰＧＲの目標値ｔＰＧＲが０とされ、更に、パージＶＳＶ２８の駆動デューティＤＰＧが０とされる（ステップ２６２）。この場合、パージＶＳＶ２８が全閉状態とされるため、パージガスの流通は生じない。
【０１１４】
パージＶＳＶ２８に閉故障が生じていない（ＸＶＳＶ閉＝０が成立する）など、パージの実行に必要な全ての条件が成立している場合は、上記ステップ２６０において、パージの実行条件の成立が認められる。この場合は、次に、ＸＣＣＶ開＝１の成立性が判断される（ステップ２６４）。その結果、ＸＣＣＶ開＝１の成立が認められない場合は、更に、ＸＣＣＶ閉＝１の成立性が判断される（ステップ２６６）。ここでＸＣＣＶ閉＝１の成立が認められないと判別された場合は、ＣＣＶ２２の開故障、これと同視できる大きな漏れ故障、およびＣＣＶ２２の閉故障は、何れも発生していないと判断することができる。この場合は、目標パージ率ｔＰＧＲが、次式を用いて通常の手法で設定される（ステップ２６８）。
【０１１５】
2005023892.tif 000003
【０１１６】
上記（１）式に含まれるＰＧＲは、前回の処理サイクル時に算出された最終パージ率、つまり、前回の処理サイクルにより実現されるパージ率である。この式（１）によれば、目標パージ率ｔＰＧＲは、基本的には、前回の処理サイクル時に実現されたパージ率ＰＧＲにスキップ値ＰＧＲＳＫＰを加えることにより算出される。但し、目標パージ率ｔＰＧＲの上限は、最大パージ率ＰＧＲＭＸ或いは限界パージ率ＰＧＲＬＭＴによりガードされる。従って、目標パージ率ｔＰＧＲは、それらのガード値ＰＧＲＭＸおよびＰＧＲＬＭＴを越えない範囲で増加方向に更新されることになる。尚、ここでは、ＰＧＲＭＸやＰＧＲＬＭＴについての詳細な説明は省略する。
【０１１７】
既述したＣＣＶ故障検出第１手法（図８参照）によれば、小さな漏れ故障の発生は、つまり、ＸＥＶＰに１をセットするか否かは、ＣＣＶ２２の開故障と区別して判断される。より詳しくは、本実施形態では、小さな漏れ故障の発生は、ＸＣＣＶ開＝１が成立しない場合にこそ認められることがある。このため、上述したステップ２６４および２６６の場合分けによれば、小さな漏れ故障の発生時には、その発生が認められない場合と同様に、目標パージ率ｔＰＧＲが、上記（１）式に従って通常の手法により設定されることになる。
【０１１８】
図１２に示すルーチンにおいて、上記ステップ２６４の処理により、ＸＣＣＶ開＝１が成立すると判別された場合は、ＣＣＶ２２に開故障（大きな漏れ故障の場合を含む）が生じていると判断できる。この場合は、次式により目標パージ率ｔＰＧＲが算出される（ステップ２７０）。
【０１１９】
ｔＰＧＲ＝ＰＧＲ＋ＳＫＰ１０≦ＰＧＲＭＸＣＣＶ開      ・・・（２）
【０１２０】
上記（２）式に含まれるＳＫＰ１０は、通常制御において用いられるスキップ値ＰＧＲＳＫＰに比して小さな値である。同様に、ＰＧＲＭＸＣＣＶ開も、通常制御において用いられる最大パージ率ＰＧＲＭＸより小さな値である。このため、上記の（２）式によれば、目標パージ率ｔＰＧＲは、通常制御時に算出される値より小さな値となる。目標パージ率ｔＰＧＲが小さな値であるほど、パージ制御により流通させられるパージガス流量ＱＰＧは少量となる。従って、上記の処理によれば、パージガス流量ＱＰＧを通常時に比して減量することができ、系内に生じている可能性のある大きな漏れ故障の箇所から、異物が吸入される確率を下げることができる。
【０１２１】
図１２に示すルーチンにおいて、上記ステップ２６６の処理により、ＸＣＣＶ閉＝１が成立すると判別された場合は、ＣＣＶ２２に閉故障が生じていると判断できる。つまり、通常の手法でパージが行われると、タンク内圧ＰＴＮＫが過剰に負圧化する可能性があると判断できる。この場合は、更に、現在のタンク内圧ＰＴＮＫが目標上限値ＫＰ１１を越えているか否かが判別される（ステップ２７２）。ＰＴＮＫ＞ＫＰ１１が成立する場合は、ＣＣＶ２２の閉故障に関わらず、タンク内圧ＰＴＮＫは十分に高い圧力に保たれていると判断できる。換言すると、燃料タンク１０に不当な圧力負荷を加えずにパージ率ＰＧＲをより大きな値にすることが可能であると判断できる。この場合は、次式に従って目標パージ率ｔＰＧＲが算出される（ステップ２７４）。
【０１２２】
2005023892.tif 000004
【０１２３】
上記（３）式に含まれるＳＫＰ１１は、通常制御において用いられるスキップ値ＰＧＲＳＫＰに比して十分に小さな値である。また、ＰＧＲＭＸＣＣＶ閉も、通常制御において用いられる最大パージ率ＰＧＲＭＸより十分に小さな値である。このため、上記の（３）式によれば、目標パージ率ｔＰＧＲを、通常制御時に比して十分に緩やかに増加させることができる。目標パージ率ｔＰＧＲが緩やかに増加する限りは、タンク内圧ＰＴＮＫが急激に降下することはない。従って、上記の処理によれば、ＣＣＶ２２に閉故障が生じている状況下で、ＰＴＮＫを過剰に負圧化させることなく徐々にパージ率ＰＧＲを挙げることができ、パージの効率を高めることができる。
【０１２４】
図１２に示すルーチンにおいて、上記ステップ２７２の処理によりタンク内圧ＰＴＮＫが、目標上限値ＫＰ１１を越えていないと判別された場合は、更に、ＰＴＮＫが目標下限値ＫＰ１２を下回っているか否かが判別される（ステップ２７６）。ＰＴＮＫ＜ＫＰ１２の成立が認められない場合は、タンク内圧ＰＴＮＫが適正な範囲に制御されていると判断できる。つまり、現在のパージ率ＰＧＲは、ＣＣＶ２２に閉故障が生じている状況下で、タンク内圧ＰＴＮＫを過剰に負圧化させることなく、かつ、効率的なパージを実現することのできる適切な値であると判断できる。この場合は、目標パージ率ｔＰＧＲが更新されることなく、後述するステップ２８０以降の処理が行われる。
【０１２５】
一方、上記ステップ２７６の処理によりＰＴＮＫ＜ＫＰ１２の成立が認められた場合は、燃料タンク１０の内部に不当に大きな負圧が生じていると判断することができる。この場合は、パージ率ＰＧＲを下げてタンク内圧ＰＴＮＫを上昇させるべく、次式に従って目標パージ率ｔＰＧＲが算出される（ステップ２７８）。
【０１２６】
ｔＰＧＲ＝ＰＧＲ−ＳＫＰ１２≧０          ・・・（４）
【０１２７】
上記（４）式によれば、目標パージ率ｔＰＧＲは、０を下限として、前回の処理サイクルにより実現されたパージ率ＰＧＲよりＳＫＰ１２だけ小さな値に更新される。タンク内圧ＰＴＮＫは、大きな目標パージ率ｔＰＧＲが設定されるほど負圧化し易い。従って、目標パージ率ｔＰＧＲが上記の如く減少方向に更新されれば、タンク内圧ＰＴＮＫはやがて上昇し始め、目標下限値ＫＰ１２を上回る。このため、図１２に示すルーチンによれば、ＣＣＶ２２に閉故障が生じている場合に、タンク内圧ＰＴＮＫが不当に大きく負圧化するのを避けつつ適当にパージを継続させることができる。
【０１２８】
図１２に示すルーチンでは、上記の処理に次いで、全開流量ＱＰＧＭＸが算出される（ステップ２８０）。ＱＰＧＭＸは、パージ制御弁２８が全開とされることにより生ずるパージ流量ＱＰＧである。ＥＣＵ６０は、ステップ２８０の枠内に示すように、吸気負圧ＰＭとの関係で定めた全開流量ＱＰＧＭＸのマップを記憶している。本ステップ２８０では、そのマップを参照して、現在の吸気管圧力ＰＭに対応するＱＰＧＭＸが算出される。
【０１２９】
次に、全開時パージ率ＰＧＲ１００が算出される（ステップ２８２）。全開時パージ率ＰＧＲ１００は、全開流量ＱＰＧＭＸと吸入空気量ＧＡとの比をパーセント表示した物理量（ＰＧＲ１００＝ＱＰＧＭＸ／ＧＡ×１００）である。次に、パージＶＳＶ２８の駆動デューティＤＰＧが算出される。駆動デューティＤＰＧは、目標パージ率ｔＰＧＲを実現するためのデューティ比であり、基本的には目標パージ率ｔＰＧＲと全開パージ率ＰＧＲ１００との比（ＤＰＧ＝ｔＰＧＲ／ＰＧＲ１００×１００）として算出される。但し、駆動デューティＤＰＧの上限は１００にガードされる（ステップ２８４）。
【０１３０】
図１２に示すルーチンでは、次に、パージカウンタＣＰＧＲＳＴ（説明省略）がインクリメントされる（ステップ２８６）。次いで、再びＸＣＣＶ閉＝１の成立性が判断される（ステップ２８８）。ここでＸＣＣＶ閉＝１が成立しないと判別された場合は、以後速やかに後述するステップ２９２の処理が実行される。この場合、ＥＣＵ６０は、上記ステップ２８４で算出されたＤＰＧを最終的な駆動デューティとして、パージＶＳＶ２８のデューティ駆動を行う。
【０１３１】
これに対して、ＸＣＣＶ閉＝１の成立が認められた場合は、更に、駆動デューティＤＰＧの増加幅を制限するための処理が実行される。ここでは、その処理の内容を説明するに先立って、ＣＣＶ２２が閉じている状況下で、パージガスの流量ＱＰＧと濃度の間に成立する関係について説明する。
【０１３２】
図１３は、ＣＣＶ２２の閉弁時に生ずるパージガスの流量ＱＰＧ（縦軸）を吸気管圧力ＰＭとの関係で表した図である。尚、図１３中に符号ＫＱＴを付して示す直線は、燃料タンク１０の内部で発生するベーパ（以下、「タンクベーパ」と称す）の量を表している。本実施形態の装置は、既述した通りチェック弁１３を備えている。チェック弁１３は、タンク内圧ＰＴＮＫと大気圧との差がチェック弁１３の開弁圧より大きくなることにより開弁する。パージガス流量ＱＰＧがタンクベーパ量ＫＱＴより少ない間は、タンク内圧ＰＴＮＫが大きく負圧化することがない。この場合、チェック弁１３は閉弁状態に維持され、その結果、パージガスはほぼ１００％タンクベーパとなる。一方、パージガス流量ＱＰＧがタンクベーパ発生量ＫＱＴを越えている場合は、タンク内圧ＰＴＮＫが負圧となり、やがてチェック弁１３が開弁する。この場合、パージガスは、タンクベーパと、チェック弁１３から流入した空気の混合ガスとなる。
【０１３３】
チェック弁１３から空気が流入しない環境化では、パージガスがほぼ１００％タンクベーパとなる。この場合は、パージガスの濃度は、ＱＰＧの多少に関わらず、実質的にタンクベーパの濃度と等しくなる。これに対して、パージガス中にチェック弁１３から流入した空気が混じる場合は、パージガスの濃度が、空気の混入割合に応じた値となる。つまり、ＱＰＧがＫＱＴを越える場合は、タンクベーパの燃料濃度が仮にαであるとすれば、パージガスの濃度はα×ＫＱＴ／ＱＰＧで表されるようなＱＰＧの関数値となる。
【０１３４】
本実施形態の装置は、パージ制御の実行中は、パージの影響で空燃比に荒れが生ずるのを防ぐため、パージにより供給される燃料分を燃料噴射量から減量する補正を行っている。この補正は、具体的には、パージガスの燃料濃度を意味するベーパ濃度学習値ＦＧＰＧを学習し、その学習値ＦＧＰＧにパージ率ＰＧＲを掛け合わせることにより、パージ補正係数ＦＰＧを算出し、更に、そのパージ補正係数ＦＰＧ分だけ基本の燃料噴射量を減量することにより実現される。このような手法でパージの影響を精度良く排除するためには、ベーパ濃度学習値ＦＧＰＧを精度良く現実のパージガス濃度に整合させることが重要である。
【０１３５】
しかしながら、パージガスの燃料濃度が頻繁に変化する状況下では、ベーパ濃度学習値ＦＧＰＧを精度良く学習することが困難である。このため、本実施形態の装置では、ＣＣＶ２２に閉故障が発生しており、かつ、パージガス流量ＱＰＧがタンクベーパ発生量ＫＱＴを越えているような場合に、ベーパ濃度学習値ＦＧＰＧを精度良く学習することが困難な事態が生ずる。ところが、このような状況下でも、パージガス流量ＱＰＧの変化を抑制すれば、パージガスに含まれる空気の混入割合が激しく変化するのを防ぎ、その結果、パージガスの燃料濃度が急変するのを防ぐことができる。そして、パージガス濃度の急変が避けられれば、ベーパ濃度学習値ＦＧＰＧを精度良く更新して高精度な空燃比制御を実現することが可能である。
【０１３６】
そこで、図１２に示すルーチンでは、上記ステップ２８８においてＸＣＣＶ閉＝１の成立が認められた場合、既述した通り駆動デューティＤＰＧの増加幅を制限して、パージガス流量ＱＰＧの変化幅を抑制することとした。ここでは、具体的には、上記ステップ２８４において算出された駆動デューティＤＰＧに対して、次式の制限を課する処理が行われる（ステップ２９０）。
ＤＰＧ≦ＤＰＧＯ＋ＤＰＧＳ                      ・・・（５）
ここで、（５）式に含まれるＤＰＧＯは、前回の処理サイクル時に算出された最終的な駆動デューティＤＰＧである。また、ＤＰＧＳは、ＣＣＶ２２の閉故障時に許容する値として定められた駆動デューティＤＰＧの増加ステップ幅である。
【０１３７】
上記ステップ２９０の処理が実行されると、以後、ＥＣＵ６０は、ここで算出されたＤＰＧを最終的な駆動デューティとして、パージＶＳＶ２８のデューティ駆動を行う。駆動デューティＤＰＧの増加幅が抑制されれば、パージガス流量ＱＰＧの増加幅も当然に抑制される。そして、ＱＰＧの増加幅が抑制されれば、ＣＣＶ２２の閉弁時に生ずるパージガスの燃料濃度の変化が抑制される。このため、本実施形態の装置によれば、ＣＣＶ２２の閉故障時においても、高い精度で空燃比を制御することが可能である。
【０１３８】
図１２に示すルーチンでは、最後に、次式に従って最終パージ率ＰＧＲが算出される（ステップ２９２）。ここで算出された最終パージ率ＰＧＲは、次回の処理サイクルに備えてＥＣＵ６０の内部に記憶される。
【０１３９】
ＰＧＲ＝ＤＰＧ×ＰＧＲ１００／１００        ・・・（６）
【０１４０】
以上説明した通り、図１２に示すルーチンによれば、ＣＣＶ２２の開故障（大きな漏れ故障の場合を含む）が認められている場合、およびＣＣＶ２２の閉故障が認められている場合に、それぞれ適切なパージ制御を継続させることができる。特に、ＣＣＶ２２の開故障が認められている場合には、目標パージ率ｔＰＧＲを抑えることで、系内に生じている可能性のある大きな漏れ故障の箇所から異物が吸入される可能性を下げつつ、効率的なキャニスタ２０のパージを継続させることができる。
【０１４１】
また、上述した図１２に示すルーチンによれば、ＣＣＶ２２の開故障と同視できない小さな漏れ故障の発生時には、通常の手法で目標パージ率ｔＰＧＲを算出することで、不必要にパージが抑制されるのを防ぐことができる。つまり、系内に発生した漏れ故障が、このような小さな漏れ故障である場合は、多量のパージガスを発生させても、その漏れ故障の箇所から異物が系内に吸い込まれる可能性は低いと考えられる。このため、このような状況下では、目標パージ率ｔＰＧＲを下げる実益はなく、キャニスタ２０のパージ効率を優先して、可能な限り大きな目標パージ率ｔＰＧＲを設定することが望ましい。本実施形態の装置では、そのような要求に応えることができ、小さな漏れ故障の発生時に、キャニスタ２０のパージ効率が不必要に下げられるのを有効に防ぐことができる。
【０１４２】
ところで、上述した説明においては、ＣＣＶ２２の開故障が認められる場合に、スキップ値ＳＫＰ１０と最大パージ率ＰＧＲＭＸＣＣＶ開とを、通常の値より小さな値とすることで、目標パージ率ｔＰＧＲが小さな値に設定され易い環境を作り出し、その結果としてパージガス流量ＱＰＧの抑制を図ることとしている。しかしながら、ＣＣＶ２２の開故障時に通常時に比してパージガス流量ＱＰＧを抑制する手法は、これに限定されるものではない。例えば、パージガス流量ＱＰＧ自体の上限値を設定して、ＱＰＧがその上限値を超えないように駆動デューティＤＰＧをガードするなどの手法でＱＰＧを抑制することとしてもよい。
【０１４３】
また、ＣＣＶ２２の開故障時における異物の流入は、パージガス流量ＱＰＧを抑制することで防ぐことができると共に、燃料タンク１０の内外に不当に大きな差圧が生ずるのを避けることによっても防ぐことができる。このため、タンク内圧ＰＴＮＫの許容下限値を予め設定しておき、ＣＣＶ２２の開故障時には、タンク内圧ＰＴＮＫがその許容下限値を下回らないようにパージを制御することで、装置内部への異物の流入を避けることとしてもよい。
【０１４４】
（漏れ故障に対する対策の説明）
次に、本実施形態の装置が、小さな漏れ故障に対処すべく実行する処理の内容について説明する。本実施形態の装置は、上記図８に示すルーチン中、ステップ１８６〜１９４の処理を行うことにより、キャニスタ２０および燃料タンク１０を含む系に小さな漏れ故障が生じているか否かをＣＣＶ２２の開故障と区別して、つまり、大きな漏れ故障と区別して判断することができる。
【０１４５】
装置内に小さな漏れ故障が生じている場合は、燃料タンク１０内のベーパが、その漏れ故障の箇所から大気中に放出され難い状態を作り出しておくことが好ましい。また、装置内の漏れが小さなものである場合は、その漏れが大きなものである場合とは異なり、装置を適切な状態に制御すれば、ベーパが漏れ故障の箇所から漏出し難い状況を作り出すことが可能である。
【０１４６】
図１４は、そのような好ましい状態を、タンク内圧ＰＴＮＫの正負、およびパージの有無（パージ率ＰＧＲが０か否か）との関係で整理したものである。図中右上に位置する領域は、パージ率ＰＧＲが０でなく、かつ、タンク内圧ＰＴＮＫが正圧である状態に対応している。この場合、キャニスタ２０に吸気負圧を導くことが可能であるから、その吸気負圧を利用して系内を負圧化すれば、漏れ箇所からのベーパの流出は防ぐことができる。そして、系内を速やかに負圧化するためには、ＣＣＶ２２を閉じて、かつ、大きなパージ率を確保することが有利である。このため、装置の状態がこの領域に属する場合には、ＣＣＶ２２を閉弁し、大きなパージ率ＰＧＲの発生を認めることが適切である。また、図１４中右下に位置する領域は、パージ率ＰＧＲが０でなく、かつ、タンク内圧ＰＴＮＫが負圧である状態に対応している。この場合、吸気負圧を利用して現在の負圧を維持すれば足りることから、タンク内圧ＰＴＮＫの過剰な負圧化を防ぎつつキャニスタ２０のパージを進めるべく、ＣＣＶ２を開いて、通常の手法でパージ制御を行うことが適切である。
【０１４７】
一方、図１４中左上に位置する領域は、パージ率ＰＧＲが０の状況下でタンク内圧ＰＴＮＫが正圧化した状態に対応している。この領域は、例えば、パージＶＳＶ２８に閉故障が生じているなど、パージの実行条件が成立していない状況下で実現されることがある。蒸発燃料処理装置がこの領域に属する場合は、系内を負圧化することができないため、系内圧力の更なる上昇を防ぐと共に、新たに発生するタンクベーパをキャニスタ２０が捕獲できる状態を作り出すことが必要である。このような要求より、この領域では、ＣＣＶ２２を開いて、タンク内圧ＰＴＮＫを、キャニスタ２０を介して大気に開放することが適切である。また、図１４中左下に位置する領域は、パージ率ＰＧＲが０の状況下でタンク内圧ＰＴＮＫが負圧化した状態に対応している。この場合は、既に系内が負圧化されていることから、現状を維持することが適切である。
【０１４８】
図１５は、蒸発燃料処理装置の状態に応じて、図１４に示す適切な状態が実現されるように、ＥＣＵ６０が実行する制御ルーチンのフローチャートを示す。図１５に示すルーチンでは、先ず、現在のパージ率ＰＧＲが０か否かが判別される（ステップ３００）。その結果、ＰＧＲ＝０が成立すると判別された場合は、次に、現在のタンク内圧ＰＴＮＫが正圧であるか否かが判別される（ステップ３０２）。ここでＰＴＮＫ＞０が成立しないと判別された場合は、蒸発燃料処理装置が、図１４中左下に位置する領域に属していると判断できる。この場合は、現状を維持するため、以後速やかに今回の処理サイクルが終了される。
【０１４９】
一方、上記ステップ３０２において、ＰＴＮＫ＞０が成立すると判別された場合は、蒸発燃料処理装置が、図１４中左上に位置する領域に属していると判断できる。この場合は、先ず、パージ率ＰＧＲのスキップ値ＰＧＲＳＫＰ、および最大パージ率ＰＧＲＭＸがそれぞれ標準値に設定され（ステップ３０４）、次いでＣＣＶ２２が開弁された後（ステップ３０６）、今回の処理サイクルが終了される。尚、ここでは、ＰＧＲ＝０の成立（パージのカット）が前提であるため、上記ステップ３０４の処理は必ずしも必要な処理ではない。
【０１５０】
装置の内部に漏れ故障が生じている場合は、その漏れの大小に関わらず、タンク内圧ＰＴＮＫが正圧であれば、漏れ故障の箇所から大気へベーパが流出し易い。このような状況下で上記の如くＣＣＶ２２を開くと、タンク内圧ＰＴＮＫを、キャニスタ２０を介して大気に開放することができる。タンク内圧ＰＴＮＫがこのようにして大気に開放されると、漏れ故障の箇所から大気へ流出するガス量が減少する。また、キャニスタ２０を通過して大気に流出するガス中のベーパは、その通過の際にキャニスタ２０に吸着される。このため、上記ステップ３０６の処理によれば、漏れ故障の生じた装置から、負圧導入ができない状況下で放出されるベーパ量を、有効に削減することができる。
【０１５１】
図１５に示すルーチン中、上記ステップ３００の処理でＰＧＲ＝０が成立しないと判別された場合は、次に、ＸＣＣＶ開＝１の成立が認められるか否かが判別される（ステップ３０８）。ＸＣＣＶ開＝１の成立が認められる場合は、ＣＣＶ２２に開故障が生じているか、或いは、その開故障と同視できる大きな漏れが系内に生じていると判断することができる。大きな漏れ故障が発生している状況下で系内を負圧化させるためには、多大な負圧導入を行う必要が生ずる。そして、そのような負圧導入は、不当に多量のパージガスを発生させ、また、装置内への異物流入の原因ともなる。図１５に示すルーチンによれば、このような場合には、小さな漏れ故障の発生を前提とした対策を講じるべきではないと判断され、以後速やかに今回の処理が終了される。このため、本実施形態の装置によれば、小さな漏れ故障に対処する弊害として、大きな漏れ故障が生じている場合に過剰な負圧導入が行われるという事態が生ずるのを確実に防ぐことができる。
【０１５２】
上記ステップ３０８の処理により、ＸＣＣＶ開＝１が成立しないと判別された場合は、次に、漏れ故障判定フラグＸＥＶＰに１がセットされているか否かが判別される（ステップ３１０）。その結果、ＸＥＶＰ＝１が成立しないと判別された場合は、系内に小さな漏れ故障は生じていないと判断できる。この場合、小さな漏れ故障に対処するための処理を続ける実益がないことから、以後速やかに今回の処理サイクルが終了される。
【０１５３】
上記ステップ３１０において、ＸＥＶＰ＝１の成立が認められた場合は、微少な漏れ故障に対処する必要があると判断できる。この場合は、次に、現在のタンク内圧ＰＴＮＫが正圧であるか否かが判別される（ステップ３１２）。ここでＰＴＮＫ＞０が成立しないと判別された場合は、蒸発燃料処理装置が、図１４中右下に位置する領域に属していると判断できる。この場合は、ＣＣＶ２２が開かれた状態で通常のパージが実行されるように、既述したステップ３０４および３０６の処理が順次実行される。
【０１５４】
ここでは、既にタンク内圧ＰＴＮＫが負圧化されているため、その状態が維持できれば、漏れ故障の箇所からベーパが大気に放出されるのを防ぐことができる。むしろ、多大な負圧導入が行われると、タンク内圧ＰＴＮＫが過剰に負圧化される事態が生ずるため、負圧の導入は少量であることが望ましい。上記ステップ３０４および３０６の処理によれば、キャニスタ２０への大気流入を許容しつつ、適当なパージガス流量ＱＰＧを発生させることにより、このような要求を満たすことができる。このため、本実施形態の装置によれば、系内に小さな漏れ故障が生じている場合に、安定的にタンク内圧ＰＴＮＫを適度な負圧に保つことができ、ベーパの大気流出を安定的に防ぐことができる。
【０１５５】
上記ステップ３１２の処理により、ＰＴＮＫ＞０の成立が認められた場合は、蒸発燃料処理装置が、図１４中右上に位置する領域に属していると判断できる。この場合は、先ず、パージ率ＰＧＲのスキップ値ＰＧＲＳＫＰ、および最大パージ率ＰＧＲＭＸが、それぞれ標準値に係数ａまたはｂを乗じた値に設定される（ステップ３１４）。係数ａおよびｂは、何れも１より大きな値である。従って、本ステップ３１４の処理によれば、スキップ値ＰＧＲＳＫＰ、および最大パージ率ＰＧＲＭＸは、何れも標準値より大きな値となる。以後、ＥＣＵ６０は、ここで設定されたスキップ値ＰＧＲＳＫＰおよび最大パージ率ＰＧＲＭＸを用いて通常のパージ制御を実行する（図１２中ステップ２６８参照）。
【０１５６】
目標パージ率ｔＰＧＲは、スキップ値ＰＧＲＳＫＰや最大パージ率ＰＧＲＭＸが大きな値であるほど大きな値に設定され易い。そして、目標パージ率ｔＰＧＲが大きな値であるほど、タンク内圧ＰＴＮＫがより大きく負圧化する傾向が生ずる。このため、上記ステップ３１４の処理によれば、現在のタンク内圧ＰＴＮＫ（正圧）を迅速に負圧化するうえで好適な状況を作り出すことができる。
【０１５７】
ＰＴＮＫ＞０の成立が認められる場合は、更に、ＣＣＶ２２の閉弁処理が実行される（ステップ３１６）。ＣＣＶ２２が閉じられると、キャニスタ２０への大気の流入が禁止される。この状態で負圧導入が行われると、タンク内圧ＰＴＮＫは急激な低下を示す。このため、本ステップ３１６の処理によれば、上記ステップ３１４の処理と相まって、現在のタンク内圧ＰＴＮＫ（正圧）を極めて短時間で負圧化することができる。漏れ故障の箇所から大気へ放出されるベーパ量は、タンク内圧ＰＴＮＫが正圧に保たれている時間が短いほど少量となる。図１５に示す処理によれば、上記の如くその時間を極めて短時間とすることができるため、タンク内圧ＰＴＮＫが正圧化することで漏出するベーパ量を十分に少量とすることができる。
【０１５８】
以上説明した通り、図１５に示すルーチンによれば、パージ率ＰＧＲが０であるか否か、つまり、キャニスタ２０に負圧を導くことができるか否か、およびタンク内圧ＰＴＮＫが正圧であるか負圧であるかに応じて、漏れ故障の箇所から流出するベーパ量を抑制するうえで最適な状態を適宜作り出すことができる。このため、本実施形態の蒸発燃料処理装置によれば、漏れ故障の発生に伴うベーパの大気流出を有効に阻止することができる。
【０１５９】
尚、上述した実施の形態１においては、パージ通路２６、パージＶＳＶ２８、および吸気通路３０が前記第１の発明における「負圧導入手段」に、タンク内圧センサ１２が前記第１の発明における「圧力検出手段」に、小さな漏れ故障が前記第１の発明における「所定の漏れ故障」に、大気圧が前記第１の発明における「判定圧」に、上記ステップ３０４および３０６の処理を伴ってパージを制御する手法が前記第１の発明における「第１の手法」に、上記ステップ３１４および３１６の処理を伴ってパージを制御する手法が前記第１の発明における「第２の手法」に、それぞれ相当している。また、ここでは、ＥＣＵ６０が、上記ステップ１６０〜１９８の処理を実行することにより前記第１の発明における「漏れ故障検出手段」が、図１５に示すルーチンによる設定に従ってパージを制御することにより前記第１の発明における「負圧導入制御手段」が、それぞれ実現されている。更に、上述した実施の形態１においては、ＣＣＶ２２が前記第２の発明における「キャニスタ開閉弁」に、パージＶＳＶ２８が前記第３の発明における「パージ制御弁」に、それぞれ相当していると共に、ＥＣＵ６０が、上記ステップ１６０〜１８０の処理を実行することにより前記第４の発明における「大穴故障検出手段」が、上記ステップ１８２〜１９８の処理を実行することにより前記第４の発明における「小穴故障検出手段」が、それぞれ実現されている。
【０１６０】
また、上述した実施の形態１においては、パージ通路２６、パージＶＳＶ２８、および吸気通路３０が前記第５の発明における「負圧導入手段」に、大きな漏れ故障が前記第５の発明における「所定の漏れ故障」に、上記ステップ２６８の処理を伴ってパージを制御する手法が前記第５の発明における「第１の手法」に、上記ステップ２７０の処理を伴ってパージを制御する手法が前記第５の発明における「第２の手法」に、それぞれ相当している。また、ここでは、ＥＣＵ６０が、上記ステップ１６０〜１９８の処理を実行することにより前記第５の発明における「漏れ故障検出手段」が、図１２に示すルーチンに沿ってパージを制御することにより前記第５の発明における「負圧導入制御手段」が、それぞれ実現されている。更に、上述した実施の形態１においては、パージＶＳＶ２８が前記第６の発明における「パージ制御弁」に、タンク内圧センサ１２が前記第７の発明における「圧力検出手段」に、それぞれ相当していると共に、ＥＣＵ６０が、上記ステップ１６０〜１８０の処理を実行することにより前記第８の発明における「大穴故障検出手段」が、上記ステップ１８２〜１９８の処理を実行することにより前記第８の発明における「小穴故障検出手段」が、それぞれ実現されている。
【０１６１】
そして、上述した実施の形態１においては、ＣＣＶ２２が前記第９の発明における「キャニスタ開閉弁」に、タンク内圧センサ１２が前記第９の発明における「圧力検出手段」に、それぞれ相当していると共に、ＥＣＵ６０が、上記ステップ３００の処理を実行することにより前記第９の発明における「負圧導入可否判断手段」が、上記ステップ３０２に次いで上記ステップ３０６の処理を実行することにより前記第９の発明における「キャニスタ開閉弁制御手段」が、それぞれ実現されている。
【０１６２】
【発明の効果】
この発明は以上説明したように構成されているので、以下に示すような効果を奏する。
第１の発明によれば、キャニスタおよび燃料タンクを含む系内に所定の漏れ故障が生じている場合に、その系内の圧力が判定圧以下であれば少量の負圧導入を行うことでその状況を維持することができる。また、その系内の圧力が判定圧を越えている場合は大きく負圧を導入して速やかにその圧力を下げることができる。このため、本発明によれば、所定の漏れ故障の発生時に、系内圧力を安定的に判定圧以下に維持して、蒸発燃料の大気流出を有効に阻止することができる。
【０１６３】
第２の発明によれば、系内圧力が判定圧以下である場合はキャニスタ開閉弁を開いて系内圧力が急激に低下するのを防ぎ、一方、系内圧力が判定圧を越えている場合にはキャニスタ開閉弁を閉じて迅速に系内圧力を低下させることができる。
【０１６４】
第３の発明によれば、系内圧力が判定圧以下である場合はパージ制御弁の開度を抑えることで系内圧力が急激に低下するのを防ぎ、一方、系内圧力が判定圧を越えている場合にはパージ制御弁の開度を確保することで迅速に系内圧力を低下させることができる。
【０１６５】
第４の発明によれば、第１の手法および第２の手法を用いて系内圧力を判定圧以下とする制御を、小さな漏れ故障の発生時にのみ行うことができる。従って、本発明によれば、大きな漏れ故障の発生時に、系内圧力を判定圧以下とするために不当に多量の負圧導入が行われるのを防ぐことができる。
【０１６６】
第５の発明によれば、キャニスタおよび燃料タンクを含む系内に所定の漏れ故障が生じている場合に、そのような漏れ故障が生じていない場合に比して、負圧導入に伴う系内からのガスの流出量を少量とすることができる。漏れ故障の箇所から系内に流入するガスの量は、系内から流出するガス量が少ないほど少量となる。また、漏れ故障の箇所から系内に異物が流入する確率は、そこから流入するガス量が少ないほど低くなる。このため、本発明によれば、漏れ故障の発生時に、その発生が認められていない場合と同等以上の負圧導入が行われる場合に比して、系内への異物流入の確率を下げることができ、２次的な装置故障の発生を有効に防ぐことができる。
【０１６７】
第６の発明によれば、所定の漏れ故障が生じている場合に、パージ制御弁の開度を抑えることで、負圧導入に伴う系内からのガス流出量を少量とすることができる。
【０１６８】
第７の発明によれば、所定の漏れ故障が生じている場合に、タンク内圧が圧力下限値を下回ることがないように負圧導入を制御することで、その負圧導入に伴って系内から流出するガス量を少量とすることができる。
【０１６９】
第８の発明によれば、系内からのガス流出量を抑える制御を、大きな漏れ故障の発生時にのみ行うことができる。小さな漏れ故障の発生時には、漏れ故障の箇所から異物が流入することがないため、負圧導入に伴うガスの流出量を抑制する必要がない。本発明によれば、小さな漏れ故障の発生時に、系内からのガス流出量を不必要に抑制して、キャニスタのパージ効率が下がるのを避けることができる。
【０１７０】
第９の発明によれば、キャニスタおよび燃料タンクを含む系内に負圧が導入できない状況下では、系内の圧力が判定圧を越えている場合は、キャニスタ開閉弁を開いて、キャニスタを介してその圧力が大気に開放される状態を作り出すことができる。この場合、圧力が大気に開放される過程で蒸発燃料がキャニスタに吸着されるため、蒸発燃料の大気流出を有効に阻止することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１の構成を説明するための図である。
【図２】本発明の実施の形態１のシステムがパージＶＳＶの開故障を検知する際の動作を説明するためのタイミングチャートである。
【図３】本発明の実施の形態１において、パージＶＳＶに開故障が生じているか否かを判断すべく実行されるルーチンのフローチャートである。
【図４】本発明の実施の形態１のシステムがパージＶＳＶの閉故障を検知する際の動作を説明するためのタイミングチャートである。
【図５】本発明の実施の形態１において、パージＶＳＶに開故障が生じているか否かを判断すべく実行されるルーチンのフローチャートである。
【図６】本発明の実施の形態１のシステムがパージＶＳＶに閉故障が生じていない状況下でＣＣＶの開故障を検知する際の動作を説明するためのタイミングチャートである。
【図７】本発明の実施の形態１のシステムがパージＶＳＶに閉故障が生じていない状況下でＣＣＶの閉故障を検知する際の動作を説明するためのタイミングチャートである。
【図８】本発明の実施の形態１において、パージＶＳＶに閉故障が生じていない状況下でＣＣＶの故障を検出するために実行されるルーチンのフローチャートである。
【図９】本発明の実施の形態１のシステムがパージＶＳＶに閉故障が生じている状況下でＣＣＶの開故障を検知する際の動作を説明するためのタイミングチャートである。
【図１０】本発明の実施の形態１のシステムがパージＶＳＶに閉故障が生じている状況下でＣＣＶの閉故障を検知する際の動作を説明するためのタイミングチャートである。
【図１１】本発明の実施の形態１において、パージＶＳＶに閉故障が生じている状況下でＣＣＶの故障を検出するために実行される処理の内容を説明するためのフローチャートである。
【図１２】本発明の実施の形態１においてパージ制御のために実行されるルーチンのフローチャートである。
【図１３】本発明の実施の形態１においてＣＣＶの閉弁時に生ずるパージガスの流量を吸気管圧力との関係で表した図である。
【図１４】本発明の実施の形態１の装置内に微少な漏れ故障が生じている場合に作り出しておくべき好ましい状態を整理して表した図である。
【図１５】本発明の実施の形態１において漏れ故障に対処するための実行されるルーチンのフローチャートである。
【符号の説明】
１０  燃料タンク
２０  キャニスタ
２２  ＣＣＶ（Ｃａｎｉｓｔｅｒ  Ｃｌｏｓｅｄ  Ｖａｌｖｅ）
２８  パージＶＳＶ（Ｖａｃｕｕｍ  Ｓｗｉｔｃｈｉｎｇ  Ｖａｌｖｅ）
３０  吸気通路
６０  ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）
ＴＨＷＳＴ  開始時冷却水温
ＸＶＳＶ開  パージＶＳＶの開故障判定フラグ
ＸＶＳＶ閉  パージＶＳＶの閉故障判定フラグ
ＸＣＣＶ開  ＣＣＶの開故障判定フラグ
ＸＣＣＶ閉  ＣＣＶの閉故障判定フラグ
ＸＥＶＰ  漏れ故障判定フラグ
ＰＴＮＫ  タンク内圧
ＱＰＧ  パージガス流量
ＰＧＲ  パージ率（最終パージ率）
ｔＰＧＲ  目標パージ率
ＰＧＲＳＫＰ  通常のスキップ値
ＰＧＲＭＸ  通常の最大パージ率
ＳＫＰ１１  ＣＣＶ閉故障時のスキップ値
ＰＧＲＭＸＣＣＶ閉  ＣＣＶ閉故障時の最大パージ率
ＤＰＧ  駆動デューティ
ＤＰＧＯ  前回の処理サイクル時の駆動デューティ
ＤＰＧＳ  ＣＣＶ閉故障時に許容されるＤＰＧの増加ステップ幅
ＫＱＴ  タンクベーパ発生量
【図１】
2005023892.tif 000005
【図２】
2005023892.tif 000006
【図３】
2005023892.tif 000007
【図４】
2005023892.tif 000008
【図５】
2005023892.tif 000009
【図６】
2005023892.tif 000010
【図７】
2005023892.tif 000011
【図８】
2005023892.tif 000012
【図９】
2005023892.tif 000013
【図１０】
2005023892.tif 000014
【図１１】
2005023892.tif 000015
【図１２】
2005023892.tif 000016
【図１３】
2005023892.tif 000017
【図１４】
2005023892.tif 000018
【図１５】
2005023892.tif 000019