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