(57)【特許請求の範囲】
【請求項１】
燃料タンクから流出する蒸発燃料を吸着するキャニスタを備える蒸発燃料処理システムであって、
前記キャニスタと内燃機関の吸気通路との導通状態を制御するパージ制御弁と、
前記パージ制御弁の故障判定を行う故障判定手段と、
前記パージ制御弁を開弁させて前記キャニスタから前記吸気通路にパージガスを流通させるパージ処理を実行するためのパージ処理手段と、
排気通路に配置された酸素センサと、
前記酸素センサの出力に基づいて、前記パージガスの燃料濃度を学習する学習処理を実行するための燃料濃度学習手段と、
前記燃料濃度の学習値に基づいて内燃機関に対する燃料噴射量を補正する補正処理を実行するための燃料噴射量補正手段と、
目標空燃比と一致する空燃比が演算できるように、前記酸素センサの出力に基づいて前記燃料噴射量の演算手法を学習する演算手法学習処理を実行するための演算手法学習手段と、
パージ制御の実行条件が成立しているか否かを判断するパージ条件判断手段と、
前記パージ制御弁が正常であり、かつ、前記実行条件が成立している場合に、前記パージ処理、前記学習処理、および前記補正処理の実行を要求する通常処理要求手段と、
前記パージ制御弁が正常であり、かつ、前記パージ制御弁が閉弁状態である場合に前記演算手法学習処理の実行を要求する通常時学習要求手段と、
前記パージ制御弁の開故障時に、前記パージ条件の成否に関わらず常に、前記演算手法学習処理の実行を禁止して、前記学習処理および前記補正処理の実行を要求する開故障時処理要求手段と、
を備えることを特徴とする蒸発燃料処理システム。
【請求項２】
前記パージ制御弁の閉故障時に、常に前記演算手法学習処理の実行を要求する閉故障時学習要求手段を備えることを特徴とする請求項１記載の蒸発燃料処理システム。
【請求項３】
前記燃料噴射量補正手段は、前記パージ制御弁の開度と、前記パージガスの燃料濃度の学習値とに基づいて前記燃料噴射量の補正量を算出し、
前記燃料濃度学習手段は、前記補正量により目標空燃比が実現されるように前記燃料濃度を学習し、
前記パージ制御弁の開故障時には、当該パージ制御弁の開度をゼロでない固定値に設定する開故障時開度設定手段を備えることを特徴とする請求項１または２記載の蒸発燃料処理システム。
【請求項４】
前記固定値は、全開相当値であることを特徴とする請求項３記載の蒸発燃料処理システム。
【請求項５】
内燃機関の始動時に前記キャニスタを大気から遮断する遮断機構と、
内燃機関の始動時に前記パージ制御弁を閉弁状態に制御するパージ制御弁制御手段と、
内燃機関の始動後所定期間の間に前記キャニスタを含む系内に生じた圧力変化を検出する圧力変化検出手段と、
前記圧力変化に基づいて前記パージ制御弁の開故障を判定する開故障判定手段と、
内燃機関の始動時における燃料タンクの温度環境を検知する温度環境検知手段と、
前記温度環境が所定の低温環境である場合にのみ、前記圧力変化に基づく前記開故障の判定を許可する判定許可手段と、
を備えることを特徴とする請求項１乃至４の何れか１項記載の蒸発燃料処理システム。
【請求項６】
内燃機関の始動時に前記キャニスタを大気から遮断する遮断機構と、
内燃機関の始動時に前記パージ制御弁を開弁状態に制御するパージ制御弁制御手段と、
内燃機関の始動後所定期間の間に前記キャニスタを含む系内に生じた圧力変化を検出する圧力変化検出手段と、
前記圧力変化に基づいて前記パージ制御弁の閉故障を判定する閉故障判定手段と、
内燃機関の始動時における燃料タンクの温度環境を検知する温度環境検知手段と、
前記温度環境が所定の低温環境である場合にのみ、前記圧力変化に基づく前記閉故障の判定を許可する判定許可手段と、
を備えることを特徴とする請求項１乃至４の何れか１項記載の蒸発燃料処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、蒸発燃料処理システムに係り、特に、キャニスタに吸着された蒸発燃料を内燃機関の吸気通路に吸入させることにより処理する蒸発燃料処理システムに関する。
【０００２】
【従来の技術】
従来、例えば特開平６−５８１９７号公報に開示されるように、燃料タンクの内部で発生した蒸発燃料を吸着するためのキャニスタと、そのキャニスタを必要に応じて内燃機関の吸気通路に導通させるためのパージ制御弁とを備える蒸発燃料処理システムが知られている。このシステムにおいて、パージ制御弁が開弁されると、吸気負圧がキャニスタに導かれ、キャニスタに吸着されている燃料が空気と共に吸気通路に吸入される。このため、上記従来のシステムによれば、燃料タンクの内部で発生する蒸発燃料を大気に放出させることなく処理することができる。
【０００３】
また、上記の公報には、パージ制御弁の開故障（開状態で固着する故障）と閉故障（閉状態で固着する故障）とを区別して認識し、閉故障の発生が認められる場合には特別の処理を行わない一方、開故障の発生が認められる場合には、空燃比の学習を中止したうえで空燃比の補正制御を行う手法が開示されている。また、上記の補正制御の内容としては、機関回転数等からパージガスの流量を推定し、その推定流量に基づいて空燃比を補正する手法が開示されている。このような従来の制御手法によれば、パージ制御弁の開故障時に生ずるパージガスの影響をある程度補正することができ、開故障時における空燃比荒れを抑制することができる。
【０００４】
【特許文献１】
特開平６−５８１９７号公報
【特許文献２】
特開平５−１８０１０１号公報
【特許文献３】
特開平１１−１４１４１３号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、上述した従来の制御手法では、パージ制御弁に開故障が生じた場合に、空燃比の学習が中止されると共に、パージガスの推定流量のみをパラメータとする空燃比補正が行われる。パージガスの推定流量のみをパラメータとする補正では、パージガスの燃料濃度の変化等に精度良く対処することができない。このため、上述した従来の制御手法によっては、パージ制御弁の故障時に高精度な空燃比制御を実現することは困難であった。
【０００６】
本発明は、上記の点に鑑みてなされたものであり、キャニスタと吸気通路との導通を制御するパージ制御弁に故障が生じた場合でも、高精度な空燃比制御を実行することのできる蒸発燃料処理システムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
第１の発明は、上記の目的を達成するため、燃料タンクから流出する蒸発燃料を吸着するキャニスタを備える蒸発燃料処理システムであって、
前記キャニスタと内燃機関の吸気通路との導通状態を制御するパージ制御弁と、
前記パージ制御弁の故障判定を行う故障判定手段と、
前記パージ制御弁を開弁させて前記キャニスタから前記吸気通路にパージガスを流通させるパージ処理を実行するためのパージ処理手段と、
排気通路に配置された酸素センサと、
前記酸素センサの出力に基づいて、前記パージガスの燃料濃度を学習する学習処理を実行するための燃料濃度学習手段と、
前記燃料濃度の学習値に基づいて内燃機関に対する燃料噴射量を補正する補正処理を実行するための燃料噴射量補正手段と、
目標空燃比と一致する空燃比が演算できるように、前記酸素センサの出力に基づいて前記燃料噴射量の演算手法を学習する演算手法学習処理を実行するための演算手法学習手段と、
パージ制御の実行条件が成立しているか否かを判断するパージ条件判断手段と、
前記パージ制御弁が正常であり、かつ、前記実行条件が成立している場合に、前記パージ処理、前記学習処理、および前記補正処理の実行を要求する通常処理要求手段と、
前記パージ制御弁が正常であり、かつ、前記パージ制御弁が閉弁状態である場合に前記演算手法学習処理の実行を要求する通常時学習要求手段と、
前記パージ制御弁の開故障時に、前記パージ条件の成否に関わらず常に、前記演算手法学習処理の実行を禁止して、前記学習処理および前記補正処理の実行を要求する開故障時処理要求手段と、
を備えることを特徴とする。
【０００８】
また、第２の発明は、第１の発明において、
前記パージ制御弁の閉故障時に、常に前記演算手法学習処理の実行を要求する閉故障時学習要求手段を備えることを特徴とする。
【０００９】
また、第３の発明は、第１または第２の発明において、
前記燃料噴射量補正手段は、前記パージ制御弁の開度と、前記パージガスの燃料濃度の学習値とに基づいて前記燃料噴射量の補正量を算出し、
前記燃料濃度学習手段は、前記補正量により目標空燃比が実現されるように前記燃料濃度を学習し、
前記パージ制御弁の開故障時には、当該パージ制御弁の開度をゼロでない固定値に設定する開故障時開度設定手段を備えることを特徴とする。
【００１０】
また、第４の発明は、第３の発明において、前記固定値は、全開相当値であることを特徴とする。
【００１１】
また、第５の発明は、第１乃至第４の発明の何れかにおいて、
内燃機関の始動時に前記キャニスタを大気から遮断する遮断機構と、
内燃機関の始動時に前記パージ制御弁を閉弁状態に制御するパージ制御弁制御手段と、
内燃機関の始動後所定期間の間に前記キャニスタを含む系内に生じた圧力変化を検出する圧力変化検出手段と、
前記圧力変化に基づいて前記パージ制御弁の開故障を判定する開故障判定手段と、
内燃機関の始動時における燃料タンクの温度環境を検知する温度環境検知手段と、
前記温度環境が所定の低温環境である場合にのみ、前記圧力変化に基づく前記開故障の判定を許可する判定許可手段と、
を備えることを特徴とする。
【００１２】
また、第６の発明は、第１乃至第４の発明の何れかにおいて、
内燃機関の始動時に前記キャニスタを大気から遮断する遮断機構と、
内燃機関の始動時に前記パージ制御弁を開弁状態に制御するパージ制御弁制御手段と、
内燃機関の始動後所定期間の間に前記キャニスタを含む系内に生じた圧力変化を検出する圧力変化検出手段と、
前記圧力変化に基づいて前記パージ制御弁の閉故障を判定する閉故障判定手段と、
内燃機関の始動時における燃料タンクの温度環境を検知する温度環境検知手段と、
前記温度環境が所定の低温環境である場合にのみ、前記圧力変化に基づく前記閉故障の判定を許可する判定許可手段と、
を備えることを特徴とする。
【００１５】
【発明の実施の形態】
以下、図面を参照してこの発明の実施の形態について説明する。尚、各図において共通する要素には、同一の符号を付して重複する説明を省略する。
【００１６】
実施の形態１．
［システム構成の説明］
図１は、本発明の実施の形態１の蒸発燃料処理システムの構成を説明するための図である。本実施形態の蒸発燃料処理システムは、燃料タンク１０を備えている。燃料タンク１０には、タンク内圧PTNKを測定するためのタンク内圧センサ１２が設けられている。また、燃料タンク１０の給油孔を塞ぐキャップには、燃料タンク１０の外部から内部へ向かうガスの流れのみを許容する逆止弁１３が設けられている。更に、燃料タンク１０には、ROV(Roll Over Valve)１４，１６を介してベーパ通路１８の一端が接続されている。
【００１７】
ベーパ通路１８の他端はキャニスタ２０に接続されている。キャニスタ２０は、その内部に活性炭を備えており、ベーパ通路１８から流入してくる蒸発燃料を吸着することができる。キャニスタ２０には大気孔が設けられており、その大気孔にはCCV(Canister Closed Valve)２２と逆止弁２４が配置されている。CCV２２は、駆動信号の供給を受けることにより開状態となる常時閉タイプの電磁弁である。また、逆止弁２４は、大気側からキャニスタ２０内部へ向かう流体の流れのみを許容する一方向弁である。
【００１８】
キャニスタ２０には、また、パージ通路２６の一端が接続されている。パージ通路２６の途中には、その内部を流れるガスの流量を制御するためのパージVSV(Vacuum Switching Valve)２８が設けられている。パージVSV２８は、デューティ駆動されることにより、実質的にそのデューティ比に応じた開度を実現する制御弁である。
【００１９】
パージ通路２６の他端は、内燃機関の吸気通路３０に接続されている。吸気通路３０の端部にはエアクリーナ３２が設けられている。エアクリーナ３２の下流側には吸入空気量GAに応じた出力を発するエアフロメータ３４が配置されている。更に、エアフロメータ３４の下流には、吸入空気量GAを制御するためのスロットル弁３６が配置されている。スロットル弁３６の近傍には、スロットル開度TAに応じた出力を発するスロットルセンサ３８が配置されている。上述したパージ通路２６は、スロットル弁３６の下流において吸気通路３０に連通している。
【００２０】
吸気通路３０は、吸気マニホールド４０を介して内燃機関（図示せず）に導通している。吸気マニホールド４０には、内燃機関に対して燃料を噴射するための燃料噴射弁４２が配置されている。燃料噴射弁４２には、燃料タンク１０の内部に配置されている燃料フィードポンプ４４から、所定の圧力で燃料が供給されている。燃料噴射弁４２は、開弁信号を受けることにより開弁し、その開弁時間に応じた量だけ燃料を噴射する。従って、内燃機関に対する燃料噴射量は、燃料噴射弁４２の開弁時間、つまり、燃料噴射時間TAUを変化させることにより制御することができる。
【００２１】
内燃機関には、回転数センサ４６、水温センサ４８、吸気温センサ５０、および酸素センサ５２等のセンサが組み込まれている。回転数センサ４６は、機関回転数NEに応じた出力を発するセンサである。水温センサ４８は、内燃機関の冷却水温THWに応じた出力を発するセンサである。吸気温センサ５０は、吸気通路３０の内部を流れる吸入空気の温度に応じた出力を発するセンサである。また、酸素センサ５２は、内燃機関の排気通路に配置され、触媒（図示せず）に流入する排気ガスがリーンであるか（酸素を含んでいるか）、或いはリッチであるか（酸素を含んでいないか）に応じた出力を発するセンサである。
【００２２】
本実施形態のシステムは、ECU(Electronic Control Unit)６０を備えている。ECU６０には、上述した各種のセンサおよびアクチュエータが接続されている。ECU６０は、それらのセンサの出力に基づいて種々の演算処理を行い、CCV２２やパージVSV２８、或いは、燃料噴射弁４２などの制御を実行することができる。
【００２３】
［システムの動作説明］
（基本動作）
本実施形態のシステムにおいて、内燃機関の停止中、および給油中は、CCV２２が開弁状態とされる一方、パージVSV２８が閉弁状態とされる。内燃機関の停止直後等は、燃料タンク１０の内部で余熱により多量に蒸発燃料が発生することがある。この際、タンク内圧PTNKが不当に高圧になるのを防ぐためには、蒸発燃料を含むガスを燃料タンク１０の外部に流出させることが必要である。また、給油の際には、燃料タンク１０に燃料が流入するのに伴ってタンク内の空き容積が減少する。この際、円滑な給油を可能とするためには、燃料タンク１０内のガスが外部に押し出されるのを許容することが必要である。
【００２４】
本実施形態のシステムは、これらの場面において、燃料タンク１０内のガスがキャニスタ２０を通ってCCV２２から大気に流出するのを許容することができる。この際、ガス中に含まれる蒸発燃料はキャニスタ２０内の活性炭に吸着されるため、CCV２２の外には空気のみが流出する。このため、本実施形態のシステムによれば、内燃機関の停止中や給油時に蒸発燃料が大気に流出するのを有効に阻止することができる。
【００２５】
本実施形態のシステムにおいて、内燃機関の運転中は、原則としてCCV２２が開弁状態とされると共に、必要に応じてパージVSV２８がデューティ駆動される。内燃機関の運転中にパージVSV２８が開かれると、キャニスタ２０にパージ通路２６を介して吸気負圧が導かれる。この際、CCV２２が開いていると、そこからキャニスタ２０の内部に空気が流入し、キャニスタ２０に吸着されている蒸発燃料が空気の流れによりパージされる。その結果生じたパージガスは、吸気通路３０に吸入され、内燃機関において燃焼に付される。このように、本実施形態のシステムによれば、内燃機関の運転中において、蒸発燃料を大気に放出させることなく、キャニスタ２０を適当にパージすることができる。
【００２６】
（パージVSVの開故障判定）
図１に示すシステムは、パージVSV２８に故障が生ずると、通常の機能を果たすことができない状態となる。ここで、パージVSV２８には、弁が開いたままとなる開故障と弁が閉じたままとなる閉故障が生ずることがある。パージVSV２８の故障の影響を最小限に抑えるためには、その故障の発生を早期に検知することが望ましく、また、その故障が開故障であるのか、或いは閉故障であるのかが区別できることが望ましい。このため、本実施形態のシステムは、内燃機関の始動直後に、パージVSV２８の開故障を検知するための診断、および閉故障を検知するための診断を順次実行することとしている。
【００２７】
図２は、パージVSV２８の開故障を検知する際の処理の内容を説明するためのタイミングチャートである。より具体的には、図２（Ａ）は、内燃機関の始動直後におけるパージVSV２８の状態を示す。この図に示すように、パージVSV２８は、開故障の検出中は常に閉弁状態に制御される。また、図２（Ｂ）および図２（Ｅ）は、それぞれ内燃機関の始動直後におけるCCV２２の状態、および機関回転数NEの変化を示す。これらの図に示すように、CCV２２は、機関回転数NEが３５０rpmに達するまで、つまり、内燃機関の完爆が認識されるまでは開状態に維持され、その完爆が認められた時点で閉弁状態とされる。
【００２８】
図２（Ｃ）は、内燃機関の始動直後におけるタンク内圧PTNKの変化を示す。特に、この図中に示す波形は、パージVSV２８に開故障が生じていた場合の波形を示している。尚、図２（Ｃ）中に示すP0は、CCV２２が開いている状況下でのタンク内圧PTNKであり、実質的には大気圧を意味している。また、同図中に示すΔPは、内燃機関の始動が開始された後、所定時間KC1（図２（Ｅ）参照）が経過した時点でPTNKとP0の間に生じていた差圧を意味している。そして、図２（Ｃ）中に示すKPは、開故障の有無を判断するための判定値である。
【００２９】
吸気通路３０の内部には、内燃機関の始動と共に吸気負圧が発生する。パージVSV２８が図２（Ａ）に示すように適正に閉じている場合は、吸気負圧の影響がタンク内圧PTNKに及ぶことはない。従って、パージVSV２８に開故障が生じていない場合には、内燃機関の始動後、タンク内圧PTNKは、P0の近傍に維持されるはずである。これに対して、パージVSVに開故障が生じている場合には、吸気負圧がパージVSV２８を通過してキャニスタ２０に到達する。内燃機関の完爆後はCCV２２が閉じられるため、上記の吸気負圧は、キャニスタ２０を通過して燃料タンク１０にまで到達する。その結果、タンク内圧PTNKには、図２（Ｃ）に示すような変化が生ずる。つまり、パージVSV２８に開故障が生じている場合は、内燃機関の始動後に、タンク内圧PTNKが、逆止弁１３の開弁圧（或いは、逆止弁２４の開弁圧に対応する圧力）に達するまで低下する。従って、本実施形態のシステムによれば、原理的には、内燃機関の始動後に大きな差圧ΔPが生ずるか否かを見ることにより、パージVSV２８の開故障の有無を判断することができる。
【００３０】
図２（Ｅ）は、パージVSV２８に開故障が生じているか否かを表すための開故障判定フラグXVSV開の状態を示す。図２に示す例では、所定時間KC1が経過した時点でKPを下回る差圧ΔPの発生が認められる。この場合、図２（Ｅ）に示すように、開故障判定フラグXVSVには、その時点で１がセットされる。
【００３１】
図３は、パージVSV２８に開故障が生じているか否かを判断すべく、ECU６０が実行する具体的処理の内容を説明するためのフローチャートである。尚、図３に示すルーチンは、車両のIGスイッチがオンとされると同時に起動され、その後、所定時間毎に繰り返し実行されるものとする。
【００３２】
図３に示すルーチンでは、先ず、第１OBDカウンタの計数値COBD1が、ジャンプ判定値KC11に達したか否かが判別される（ステップ１００）。第１OBDカウンタは、車両のIGスイッチのオン時にイニシャル処理によりクリアされるカウンタである。従って、車両の始動直後は、本ステップ１００において、COBD1≧KC11が成立しないとの判定がなされる。
【００３３】
上記ステップ１００において、COBD1≧KC11が成立しないとの判定が下されると、次に、計数値COBD1がインクリメントされる（ステップ１０２）。次いで、その計数値COBD1が、診断判定値KC1に達したか否かが判別される（ステップ１０４）。診断判定値KC1は、パージVSV２８に開故障が生じているか否かを判断するタイミングに対応する値であり、上述したジャンプ判定値KC11に比して「１」だけ小さな値である。車両の始動直後は、本ステップ１０４において、COBD1≧KC1が成立しないとの判定がなされる。
【００３４】
上記ステップ１０４において、COBD1≧KC1が成立しないとの判定が下されると、次に、機関回転数NEが３５０rpmを超えたか否かが判別される（ステップ１０６）。ここで、３５０rpmは、内燃機関が完爆したか否かを判断するための判定値である。内燃機関のクランキング期間等、その始動が開始された直後は、NE＞３５０rpmの条件が成立しない。この場合は、次に、その時点におけるタンク内圧PTNKが基準圧P0として記憶される（ステップ１０８）。以後、その時点における冷却水温THWおよび吸気温THAが、それぞれ開始時冷却水温THWSTおよび開始時吸気温THASTとして記憶され（ステップ１１０、１１２）、今回の処理サイクルが終了される。
【００３５】
内燃機関の始動が開始された後、機関回転数NEが３５０rpmに達するまでは、図３に示すルーチンが起動される毎に、上述したステップ１００〜１１２の処理が繰り返し実行される。その結果、ECU６０は、機関回転数NEが３５０rpmに達した時点でのタンク内圧PTNKを基準圧P0として記憶することができ、また、その時点の冷却水温THWおよび吸気温THAを、それぞれ始動時冷却水温THWSTおよび始動時吸気温THASTとして記憶することができる。
【００３６】
機関回転数NEが３５０rpmに達した後、つまり、内燃機関の完爆後に図３に示すルーチンが起動されると、今度は、上記ステップ１０６において、NE＞３５０rpmが成立すると判断される（ステップ１０６）。この場合、次に、その時点におけるタンク内圧PTNKと基準圧P0との差圧ΔP＝PTNK−P0が算出される（ステップ１１４）。この差圧ΔPは、内燃機関の完爆後にタンク内圧PTNKに有意な低下が生じない場合は０近傍の値として算出され、一方、PTNKに有意な低下が認められる場合は負の値として算出される。
【００３７】
図３に示すルーチンでは、次に、CCV２２の閉弁処理が実行される（ステップ１１６）。次いで、上記の差圧ΔPが開故障判定値KPより小さいか否かが判別される（ステップ１１８）。つまり、内燃機関の完爆後に、タンク内圧PTNKに有意な低下が生じているか否かが判別される。その結果、ΔP＜KPが成立しないと判別される場合は、吸気負圧の影響がタンク内圧PTNKに及んでいないと判断することができる。この場合は、現時点でパージVSV２８の開故障が認められないことを表すべく、開故障判定仮フラグtXVSV開に「０」がセットされる（ステップ１２０）。一方、上記ステップ１１８において、ΔP＜KPが成立すると判別される場合は、吸気負圧の影響がタンク内圧PTNKに及んでいる、つまり、パージVSV２８が開いていると判断することができる。この場合は、パージVSV２８の開故障が認められることを表すべく、開故障判定仮フラグtXVSV開に「１」がセットされる。
【００３８】
内燃機関が完爆した後、パージVSV２８に開故障が生じているか否かを判断すべきタイミングが到来するまでの間は、つまり、第１OBDカウンタの計数値COBD1が診断判定値KC1に達するまでの間は、図３に示すルーチンが起動される毎に、上述したステップ１００〜１０６およびステップ１１４〜１２２の処理が繰り返される。その結果、開故障判定仮フラグtXVSV開の最終値は、COBD1がKC1に達する直前の処理サイクルにおいて設定されることになる。
【００３９】
図３に示すルーチンが起動された後、上記ステップ１０４において、COBD1≧KC1の成立が判定された場合は、開故障の有無を判断すべき時期が到来したと判断できる。この場合、CCV２２の開弁処理が行われた後（ステップ１２４）、開始時冷却水温THWSTが、冷間判定値KTHWより低いか否かが判別される（ステップ１２６）。
【００４０】
冷間判定値KTHWは、燃料タンク１０の内部で蒸発燃料が多量に発生する可能性が有るか否かを判断するため判定値である。従って、開始時冷却水温THWSTがKTHWより低くないと判別される場合は、内燃機関の始動時に、燃料タンク１０の内部で蒸発燃料が多量に発生していた可能性があると判断できる。このような状況下では、差圧ΔPが蒸発燃料の影響を受けるため、差圧ΔPを基礎とする判定に誤りが生じ易い。そこで、図３に示すルーチンでは、上記ステップ１２６においてTHWST＜KTHWが成立しないと判別された場合は、開故障に関する最終的な判定を下すことなく今回の処理サイクルを終了することとした。このような処理によれば、温暖な状態での内燃機関の再始動時などに、パージVSV２８の開故障の有無が誤って判断されるのを防ぐことができる。
【００４１】
上記ステップ１２６において、THWST＜KTHWが成立すると判別された場合は、差圧ΔPがさほど蒸発燃料の影響を受けていないと判断することができる。この場合、以後、開故障判定仮フラグtXVSV開の値が、開故障判定フラグXVSV開の値としてセットされる（ステップ１２８）。以後、ECU６０は、XVSV開に１がセットされている場合には、パージVSV２８に開故障が生じていると判断し、一方、XVSV開に０がセットされている場合は、パージVSV２８に開故障が生じていないと判断する。
【００４２】
上述した一連の処理が終了した後、図３に示すルーチンが再び起動された際には、上記ステップ１００において、COBD１≧KC11（＝KC1＋１）が成立すると判断される。この場合、以後ステップ１０２以降の処理がジャンプされ、実質的な処理が何ら行われることなく図３に示すルーチンが終了される。本実施形態において、ECU６０は、以上の通り説明した図３に示すルーチンを実行することにより、内燃機関の始動直後に、パージVSV２８に開故障が生じているか否かを正確に判定することができる。
【００４３】
（パージVSVの閉故障判定）
図４は、パージVSV２８の閉故障を検知する際の処理の内容を説明するためのタイミングチャートである。より具体的には、図４（Ａ）は、図３に示す開故障検出処理の終了後におけるパージVSV２８の状態を示す。図４に示す時刻t0は、内燃機関の始動後パージVSV２８が初めて開弁された時刻である。パージVSV２８は、内燃機関の始動後、既述したジャンプ判定値KC11（図３ステップ１００参照）に相当する時間が経過するまでは閉弁状態に制御される。従って、時刻t0は、計数値COBD1がジャンプ判定値KC11に到達する以後の時刻である。
【００４４】
図４（Ｂ）は、閉故障判定処理の実行中におけるCCV２２の状態を示す。また、図４に示すKC2は、パージVSV２８に閉故障が生じているか否かを判断すべき時刻、つまり、閉故障判定処理の終了時刻を意味している。図４（Ｂ）に示すように、CCV２２は、時刻t0においてパージVSV２８が開かれた後、閉故障判定処理が終了するまでの間、閉状態に制御される。
【００４５】
図４（Ｃ）は、閉故障検出処理の実行中におけるタンク内圧PTNKの変化を示す。より詳細には、この図中に破線で示す波形は、正常時におけるタンク内圧PTNKの波形であり、一方、図中に実線で示す波形は、パージVSV２８に閉故障が生じている場合の波形を示す。閉故障検出処理の実行中に、パージVSV２８が適正に開弁している場合は、吸気負圧がキャニスタ２０に導入される。閉故障検出処理の実行中は、既述した通りCCV２２が閉じているため、キャニスタ２０に導入された負圧は、燃料タンク１０にまで到達する。このため、パージVSV２８に閉故障が生じていなければ、タンク内圧PTNKは、図４（Ｃ）中に破線で示すように、時刻t0の後、大きく負圧側に変化するはずである。これに対して、パージVSV２８に閉故障が生じている場合は、吸気負圧の導入が妨げられるため、図４（Ｃ）中に実線で示した通り、タンク内圧PTNKに有意な低下は生じない。従って、本実施形態のシステムによれば、原理的には、閉故障検出処理の開始後にタンク内圧PTNKに有意な低下が生ずるか否かを見ることで、パージVSV２８の閉故障の有無を判断することができる。
【００４６】
図４（Ｄ）は、パージVSV２８に閉故障が生じているか否かを表すための閉故障判定フラグXVSV閉の状態を示す。タンク内圧PTNKが図４（Ｃ）中に実線で示すように変化した場合、閉故障検出処理の終了時刻（KC2の時刻）において、タンク内圧PTNKに有意な低下が生じていないと判断される。この場合、図４（Ｄ）に示すように、閉故障判定フラグXVSVに１がセットされる。
【００４７】
図５は、パージVSV２８に閉故障が生じているか否かを判断すべく、ECU６０が実行する具体的処理の内容を説明するためのフローチャートである。尚、図５に示すルーチンは、車両のIGスイッチがオンとされた後、所定時間毎に繰り返し起動されるものとする。
【００４８】
図５に示すルーチンでは、先ず、第１OBDカウンタの計数値COBD1が、既述したジャンプ判定値KC11に達しているか否かが判別される（ステップ１３０）。その結果、COBD1≧KC11が成立しないと判定される間は、以後速やかに今回の処理サイクルが終了される。従って、ステップ１３２以降の処理は、COBD1≧KC11が成立して初めて、つまり、既述した開故障検出処理（図３参照）が終了して初めて実行される。
【００４９】
上記ステップ１３０において、COBD１≧KC11の成立が認められると、次に、パージ率PGRが判定値KPGR以上であるか否かが判別される（ステップ１３２）。パージ率PGRは、吸入空気量GAに対するパージ流量QPGの比率「（QPG／GA）×１００」である。パージ流量QPGは、パージVSV２８を通過してキャニスタ２０から吸気通路３０に向かって流れるパージガスの流量であり、パージVSV２８の開度（駆動デューティ）と吸気負圧PMとに基づいて公知の手法で演算することができる。本実施形態実施形態において、パージ制御弁２８の駆動デューティは、図５に示すルーチンとは異なるルーチンで演算され、その駆動デューティにより実現されるパージ率PGRも他のルーチンにより演算される。本ステップ１３２では、他のルーチンにおいて演算されたパージ率PGRが読み込まれ、PGR≧KPGRが成立しているか否かが判断される。
【００５０】
上記ステップ１３２において、PGR≧KPGRが成立しないと判別された場合は、閉故障の有無を判断するのに十分な負圧がパージ通路２６に導入されていないと判断することができる。この場合、以後、閉故障の判定に必要な処理が進められることなく、速やかに今回の処理サイクルが終了される。一方、PGR≧KPGRが成立すると判別された場合は、閉故障の有無を判断するのに足る十分な負圧導入が行われていると判断することができる。この場合、次に、第２OBDカウンタの計数値COBD２が、終了判定値KC3に達しているか否かが判別される（ステップ１３４）。
【００５１】
第２OBDカウンタは、第１OBDカウンタと同様に、IGスイッチのオン時にイニシャル処理によりクリアされる。従って、閉故障判定処理の開始直後は、上記ステップ１３４において、COBD2≧KC2が成立しないとの判定がなされる。この場合、先ず、現時点でのタンク内圧PTNKと既述した基準圧P0との差圧ΔP＝PTNK−P0が算出される（ステップ１３６）。次いで、第２OBDカウンタのインクリメント処理が行われる（ステップ１３８）。
【００５２】
図５に示すルーチンでは、次に、第２OBDカウンタの計数値COBD2が、診断判定値KC2に達したか否かが判別される（ステップ１４０）。診断判定値KC2は、パージVSV２８に閉故障が生じているか否かを判断するタイミングに対応する値であり、上述した終了判定値KC3に比して「１」だけ小さな値である。閉故障判定処理の開始直後は、本ステップ１４０において、COBD2≧KC2が成立しないとの判定がなされる。
【００５３】
上記ステップ１４０において、COBD2≧KC2が成立しないとの判定が下されると、次に、CCV２２の閉弁処理が実行される（ステップ１４２）。次いで、上記の差圧ΔPが閉故障判定値KP1より大きいか否かが判別される（ステップ１４４）。閉故障判定値KP1は、パージVSV２８が適正に開いている場合に算出される差圧ΔP（負の値）に比して大きな値である。従って、ΔP＞KP1の成立が認められる場合は、パージVSV２８に閉故障が生じていると判断することができる。この場合、ECU６０は、パージVSV２８に閉故障が生じていることを表すべく、閉故障判定仮フラグtXVSV閉に「１」をセットする。（ステップ１４６）。一方、上記ステップ１４４において、ΔP＞KP1が成立しないと判別された場合は、パージVSV２８の閉故障が認められないと判断できる。この場合、ECU６０は、パージVSV２８の閉故障が認められないことを表すべく、閉故障判定仮フラグtXVSV閉に「０」をセットする（ステップ１４８）。
【００５４】
閉故障判定処理が開始された後、第２OBDカウンタの計数値COBD2が診断判定値KC2に達するまでの間は、十分なパージ率PGRが確保されている環境下で図５に示すルーチンが起動される毎に、上述したステップ１３０〜１４８の処理が繰り返される。その結果、閉故障判定仮フラグtXVSV閉の最終値は、COBD2がKC2に達する直前の処理サイクルにおいて設定されることになる。
【００５５】
図５に示すルーチンが起動された後、上記ステップ１４０において、COBD2≧KC2の成立が判定された場合は、閉故障の有無を判断すべき時期が到来したと判断できる。この場合、CCV２２の開弁処理が実行された後（ステップ１５０）、開始時冷却水温THWSTが、冷間判定値KTHWより低いか否かが判別される（ステップ１５２）。そして、THWST＜KTHWが成立しないと判別された場合は、開故障判定処理の場合と同様の理由で（上記ステップ１２６参照）、閉故障に関する判定が保留されたまま今回の処理サイクルが終了される。このため、本実施形態のシステムによれば、パージVSV２８の閉故障についても、温暖な状態で内燃機関が再始動されるような場合に、その発生の有無が誤って判断されるのを防ぐことができる。
【００５６】
一方、上記ステップ１５２において、THWST＜KTHWの成立が認められた場合は、閉故障判定仮フラグtXVSV閉の値が、閉故障判定フラグXVSV閉の値としてセットされる（ステップ１５４）。以後、ECU６０は、XVSV閉に１がセットされている場合には、パージVSV２８に閉故障が生じていると判断し、一方、XVSV閉に０がセットされている場合は、パージVSV２８に閉故障が生じていないと判断する。
【００５７】
上述した一連の処理が終了した後、図５に示すルーチンが再び起動され、上記ステップ１３４の処理が実行される際には、第２OBDカウンタの計数値COBD2が、終了判定値KC3（＝KC2＋１）に達していると判断される。この場合、以後ステップ１３６以降の処理がジャンプされ、実質的な処理が何ら行われることなく図５に示すルーチンが終了される。本実施形態において、ECU６０は、以上の通り説明した図５に示すルーチンを実行することにより、内燃機関の始動直後に、パージVSV２８に閉故障が生じているか否かを正確に判定することができる。
【００５８】
（パージ制御の説明）
本実施形態のシステムは、パージVSV２８に故障が生ずると、通常のパージ制御を行うこと、つまり、パージ流量QPGを適当に制御することができなくなる。具体的には、パージVSV２８に開故障が生じた場合は、内燃機関の運転中に常にパージガスが流通することとなり、その流通を止めることができない状態となる。また、パージVSV２８に閉故障が生じた場合は、パージガスを流通させることができない状態となる。
【００５９】
ECU６０は、通常の制御手法としては、パージ制御を実行する前提として、その実行条件が成立しているか否かを判断する。この実行条件は、吸気通路３０にパージガスが流入しても、内燃機関の運転状態が悪化せず、また、空燃比に荒れが生じないような状況下でその成立が判断される。そして、通常の制御では、上記の実行条件が成立する状況下でのみ蒸発燃料のパージが行われ、また、このパージの実行中は、パージガスの影響が相殺されるように燃料噴射時間TAUの補正が行われる。
【００６０】
しかしながら、パージVSV２８に開故障が生じている場合は、ECU６０の指令に関わらず、内燃機関の運転中は常にパージガスが吸気通路３０に流入する。つまり、パージの実行条件が成立せず、ECU６０がパージの実行を指示していない状況下でも吸気通路３０にはパージガスが流入する。この場合、通常の制御手法に沿って、パージガスの流入がないものとして燃料噴射時間TAUが算出されると、パージガスの影響で空燃比に荒れが生ずることがある。従って、パージVSV２８に開故障が生じている場合は、そのような不都合が回避されるように、制御の手法を適当に切り替えることが望ましい。
【００６１】
また、パージVSV２８に閉故障が生じている場合は、ECU６０の指令に関わらず、吸気通路３０にはパージガスが流入しない。この場合、通常の制御手法に沿って、パージガスの流入があるものとして燃料噴射時間TAUが算出されると、適切な空燃比が実現できない事態が生じ得る。従って、パージVSV２８に閉故障が生じている場合は、そのような事態が生じないように、制御の手法を切り替えることが適切である。
【００６２】
以上説明した通り、本実施形態のシステムでは、パージVSV２８に開故障、或いは閉故障が生じている場合は、それぞれ、パージVSV２８が正常である場合とは異なる手法で内燃機関の制御を行うことが好ましい。そこで、ECU６０は、既述した手法によりパージVSV２８の開故障と閉故障とを区別して認識し（図２乃至図５参照）、それぞれの故障のモードに応じて、適宜最適な結果が得られるように制御の手法を切り替えることとした。
【００６３】
図６は、上記の機能を実現するためにECU６０が実行するパージ制御ルーチンのフローチャートを示す。図６に示すルーチンでは、先ず、閉故障判定フラグXVSV閉に１がセットされているか否かが判別される（ステップ１６０）。その結果、XVSV閉＝１の成立が認められる場合は、パージVSV２８に閉故障が生じていると判断できる。この場合、パージ中止処理として、パージVSV２８の駆動デューティDPGが０とされ、パージ率PGRが０とされ、更に、ベーパ濃度学習値FGPGが０とされた後（ステップ１６２）、今回の処理サイクルが終了される。
【００６４】
パージVSV２８の閉故障時には、パージガスが流通しないため、パージガスが存在しないものとして燃料噴射時間TAUを演算することにより、高精度な空燃比制御の実現を期待することができる。駆動デューティDPGを０とすると、パージVSV２８を閉状態に維持することができる。パージ率PGRは、既述した通りパージ流量QPGの吸入空気量GAに対する割合である。また、ベーパ濃度学習値FGPGは、パージ率１％当たりのTAU補正割合であり、物理的にはパージガスの燃料濃度としての意味を有する係数である。パージ率PGRおよびベーパ濃度学習値FGPGは、何れも、後述の如く、パージガスの影響を排除するために燃料噴射時間TAUの演算の基礎とされる。これらの係数PGR、FGPGが０とされると、燃料噴射時間TAUはパージガスが存在しないものとして演算される。このため、上記ステップ１６２の処理によれば、パージVSV２８に閉故障が生じている環境下で、その故障の影響を受けることなく高精度な空燃比制御を実現することができる。
【００６５】
図６に示すルーチン中、上記ステップ１６０において、XVSV閉＝１が成立しないと判別された場合は、次に、開故障判定フラグXVSV開に１がセットされているか否かが判別される（ステップ１６４）。その結果、XVSV開＝１が成立しないと判別された場合は、パージVSV２８に開故障が生じていない、つまり、パージVSV２８が正常であると判断することができる。この場合は、次に、パージ条件が成立しているか否かが判別される（ステップ１６６）。ここでは、例えば、冷却水温THWがパージの許可温度KTHWPG以上であるか、或いは酸素センサ５２の出力に基づく空燃比フィードバック制御が実行中であるか、などの条件が判断される。
【００６６】
パージ条件が成立していないと判別された場合は、パージの実行が必ずしも適切でないと判断され、パージ率PGRおよび駆動デューティDPGが何れも０とされた後（ステップ１６８）、今回の処理サイクルが終了される。尚、ここでは、ベーパ濃度学習値FGPGのリセット処理が行われない。このため、この時点でFGPGの学習が進められている場合は、パージ条件の成立後に、その学習済みのFGPGを用いた処理が開始されることになる。
【００６７】
一方、上記ステップ１６６においてパージ条件の成立が認められた場合は、以後、キャニスタ２０内の蒸発燃料をパージするための処理が実行される。具体的には、先ず、目標パージ率tPGRが算出される。目標パージ率tPGRは、基本的には現在のパージ率PGRにスキップ値PGRSKPを加えることにより算出される。但し、目標パージ率tPGRの上限は、最大パージ率PGRMX或いは限界パージ率PGRLMTによりガードされる（ステップ１７０）。尚、ここでは、PGRMXやPGRLMTについての詳細な説明は省略する。
【００６８】
次に、全開流量QPGMXが算出される（ステップ１７２）。QPGMXは、パージ制御弁２８が全開とされることにより発生すると予想されるパージ流量QPGである。ECU６０は、ステップ１７２の枠内に示すように、吸気負圧PMとの関係で定めた全開流量QPGMXのマップを記憶している。本ステップ１７２においては、そのマップを参照することでQPGMXが算出される。尚、吸気負圧PMは、例えば、吸入空気量GAとスロットル開度TAとに基づいて、公知の手法で推定することができる。
【００６９】
次いで、全開時パージ率PGR100＝QPGMX／GAが算出される（ステップ１７４）。このPGR100は、全開流量QPGMXと吸入空気量GAとの比である。次に、目標パージ率tPGRを実現するための駆動デューティDPGが算出される。駆動デューティDPGは、基本的には目標パージ率tPGRを全開パージ率PGR100で除することにより、DPG＝tPGR／PGR100として算出される。但し、駆動デューティDPGの上限は１００にガードされる（ステップ１７６）。以後、パージVSV２８は、ここで算出された駆動デューティDPGによりデューティ駆動される。
【００７０】
ECU６０は、パージ開始カウンタCPGRST（説明省略）をインクリメントした後（ステップ１７８）、最終パージ率PGR＝DPG×PGR100を算出する（ステップ１８０）。そして、パージカウンタCPGR（説明省略）がインクリメントされた後（ステップ１８２）、今回の処理サイクルが終了される。上記ステップ１８０において算出された最終パージ率PGRは、次回の処理サイクル時に目標パージ率tPGRの基礎とされると共に、ECU６０が他のルーチンにおいて燃料噴射時間TAUを演算する際に、その演算の基礎とされる。
【００７１】
以上説明した通り、図６に示すルーチンによれば、パージVSV２８が正常であると認められる場合には、パージ条件の成否が判断され、その成立が認められる場合に限り、パージVSV２８のデューティ駆動、および最終パージ率PGRの算出処理が実行される。そして、パージVSV２８正常に閉弁できることが確認されている状況下でのみ、パージ条件の不成立時にパージの実行を禁止し、パージがないものとして（PGR＝０として）燃料噴射時間TAUを演算することができる。このような処理によれば、パージVSV２８の正常時に内燃機関を最適な状態に制御することができ、また、パージVSV２８の開故障時にパージガスがないものとして燃料噴射時間TAUが演算されるのを確実に防ぐことができる。
【００７２】
図６に示すルーチン中、上記ステップ１６４において、開故障判定フラグXVSV開に１がセットされていると判別された場合は、パージVSV２８に開故障が生じていると判断できる。ECU６０は、この場合、パージ条件の成否を見ることなく、無条件でステップ１７０以降の処理、つまり、駆動デューティDPGおよび最終パージ率PGRを算出するための処理を実行する。この場合、パージVSV２８に駆動デューティDPGに対応する駆動信号が供給され、また、ECU６０の内部では、パージ率PGRの反映された燃料噴射時間TAUが算出される。
【００７３】
パージVSV２８は、開故障時には、供給される駆動信号の通りに作動することはできない。従って、算出されるパージ率PGRは、現実の値とは異なったものとなる。しかしながら、上記の処理によれば、パージVSV２８の開故障時には、少なくともパージガスが流通していることを前提として燃料噴射時間TAUを算出することができる。そして、図６に示すルーチンによれば、パージ条件の成否とは無関係に、燃料噴射時間TAUを常にそのように演算することができる。
【００７４】
パージ率PGRの算出値が現実の値と異なっていたとしても、その算出値（PGR）を反映させて燃料噴射時間TAUを演算する方が、パージの影響を無視して燃料噴射時間TAUを演算するより、空燃比の制御精度を高めることができる。また、パージの実行条件が成立していない状況下でも、パージガスの流通を止めることができない以上は、燃料噴射時間TAUにパージの影響（PGR）を反映させた方が、優れた空燃比制御を実現することができる。このため、図６に示すルーチンによれば、パージVSV２８の開故障時における空燃比制御精度を良好に維持することができる。
【００７５】
以下、図７および図８を参照して、本実施形態のシステムが、パージVSV２８の開故障時、および閉故障時において、良好な空燃比制御精度を実現し得る理由について更に説明する。
【００７６】
図７は、ECU６０が燃料噴射時間TAUを算出するために実行するルーチンのフローチャートを示す。この図に示すように、ECU６０は、燃料噴射時間TAUの演算処理においては、先ず、次式に従ってパージ補正係数FPGを算出する（ステップ１９０）。
FPG＝FGPG×PGR                        ・・・（１）
ここで、FGPGは、既述した通り、パージ率１％当たりの補正割合を意味するベーパ濃度学習値であり、PGRは、パージ流量QPGの吸入空気量GAに対する割合を意味するパージ率である。
【００７７】
次に、ECU６０は、次式に従って燃料噴射時間TAUを算出する（ステップ１９２）。
TAU＝TAUB×（FW＋FAF＋KGX＋FPG）      ・・・（２）
ここで、TAUBは、吸入空気量GAに対して目標空燃比を実現するための基本の燃料噴射時間である。FWは、冷間時の増量補正を実現するための水温増量係数である。FAFは、酸素センサ５２の出力に基づいて、排気空燃比が目標空燃比に近づくように増減される空燃比フィードバック係数である。また、KGXは、内燃機関の経時変化の影響等を吸収するための学習値である。学習値KGXは、吸入空気量GAの大きさにより区分される複数の運転領域のそれぞれに対応して学習される係数であり、KGに付された「X」はその運転領域を意味している。そして、（２）式に含まれるFPGは、上記ステップ１９０において算出されたパージ補正係数である。
【００７８】
図８は、上述した学習値KGXおよびベーパ濃度学習値FGPGの学習を進めるべく、内燃機関の運転中においてECU６０が実行する学習制御ルーチンのフローチャートを示す。図８に示すルーチンでは、先ず、閉故障判定フラグXVSV閉に１がセットされているか否かが判別される（ステップ２００）。その結果、XVSV閉＝１が成立しないと判別された場合は、次に、開故障判定フラグXVSV開に１がセットされているか否かが判別される（ステップ２０２）。ここでXVSV開＝１の成立が認められない場合は、パージVSV２８が正常であると判断することができる。
【００７９】
パージVSV２８が正常であると判断できる場合は、次に、現在のパージ率PGRが０であるかが判別される（ステップ２０４）。ここでPGR＝０の成立が認められる場合は、パージVSV２８が確実に閉じており、パージガスが確実に存在していないと判断することができる。つまり、燃料噴射時間TAUと排気空燃比との間に、パージガスの影響は何ら及んでいないと判断することができる。ECU６０は、この場合、以後、学習値KGXの学習処理を実行する。
【００８０】
学習値KGXの学習処理では、先ず、空燃比フィードバック係数FAFが、リッチ側判定値KF01より小さいか否かが判別される（ステップ２０６）。空燃比フィードバック係数FAFは、酸素センサ５２がリッチ出力を発している間は排気空燃比をリーン側にシフトさせるべく減少方向に更新され、一方、酸素センサ５２がリーン出力を発している間は排気空燃比をリッチ側にシフトさせるべく増加方向に更新される。従って、FAF＜KF01が成立する場合は、現在のTAUの算出論理では、排気空燃比がリッチ側に偏る傾向があると判断することができる。
【００８１】
図８に示すルーチンでは、上記ステップ２０６においてFAF＜KF01の成立が認められた場合、TAUの算出論理を修正すべく、学習値KGjが、所定値kFCだけ小さな値に更新される（ステップ２０８）。学習値KGjは、現在の運転領域ｊに対応する学習値KGXである。上記（２）式によれば、燃料噴射時間TAUは、学習値KGjが小さな値に更新されることにより短縮される。このため、本ステップ２０８の処理によれば、排気空燃比のリッチ傾向が小さくなるように、学習値KGjを適正に更新することができる。
【００８２】
図８に示すルーチン中、上記ステップ２０６において、FAF＜KF01が成立しないと判別された場合は、次に、空燃比フィードバック係数FAFが、リーン側判定値KF02より大きいか否かが判別される（ステップ２１０）。その結果、FAF＞KF02が成立しないと判別された場合は、現在の学習値KGjが適正な値であると判断できる。この場合は、学習値KGjを変化させることなく今回の処理サイクルが終了される。
【００８３】
一方、上記ステップ２１０において、FAF＞KF02が成立すると判別された場合は、現在の学習値KGjが排気空燃比をリーン側に偏らせる傾向を生みだしている、つまり、現在の学習値KGjが過小な値であると判断できる。ECU６０は、この場合、学習値KGjを、所定値kFDだけ大きな値に更新する（ステップ２１２）。このような処理によれば、学習値KGjを適正な値に修正することができ、排気空燃比がリーン側にシフトする傾向を小さくすることができる。以上説明した通り、図８に示すルーチンによれば、パージVSV２８が正常である場合には、パージ率PGRが０であり、排気空燃比の傾向にパージガスの影響が及ばないことが保証されている状況下で、その傾向に基づいて学習値KGjを適正に更新することができる。
【００８４】
図８に示すルーチン中、上記ステップ２０４において、パージ率PGRが０でないと判別された場合は、正常なパージVSV２８に対してパージガスを流通させることが指令されていると判断できる。つまり、この場合は、ある程度のパージガスが確実に流通していると判断することができる。学習値KGXが適正な値に更新されていることを前提とすれば、このような状況下で排気空燃比に表れるシフト傾向は、パージガスの影響として把握することができる。ECU６０は、この場合、以後、パージガスの影響を補正するための論理を修正すべく、ベーパ濃度学習値FGPGの学習処理を実行する。
【００８５】
ベーパ濃度学習値FGPGの学習処理では、先ず、空燃比フィードバック係数FAFが、リッチ側判定値KF1より小さいか否かが判別される（ステップ２１４）。FAF＜KF1が成立すると判別された場合は、現在のパージ補正係数FGPが排気空燃比をリッチ側に偏らせる傾向を生みだしていると判断できる。つまり、この場合は、パージ補正係数FGPがより小さな値となるようにベーパ濃度学習値FGPGを修正する必要があると判断できる。ECU６０は、この場合、ベーパ濃度学習値FGPGを所定値kFAだけ小さな値に更新する（ステップ２１６）。ベーパ濃度学習値FGPGが減少すると、同じパージ率PGRに対するパージ補正係数FGPも小さな値となり、排気空燃比がリッチ側にシフトする傾向が小さくなる。このため、本ステップ２１６の処理によれば、排気空燃比のシフト量が減少する方向に、ベーパ濃度学習値FGPGを適正に更新することができる。
【００８６】
図８に示すルーチン中、上記ステップ２１４において、FAF＜KF1が成立しないと判別された場合は、次に、空燃比フィードバック係数FAFが、リーン側判定値KF2より大きいか否かが判別される（ステップ２１８）。その結果、FAF＞KF2が成立しないと判別された場合は、現在のパージ補正係数FGPが適正な値である、つまり、現在のベーパ濃度学習値FGPGが適正な値であると判断できる。この場合は、ベーパ濃度学習値FGPGを変化させることなく今回の処理サイクルが終了される。
【００８７】
一方、上記ステップ２１８において、FAF＞KF2が成立すると判別された場合は、現在のベーパ濃度学習値FGPGが排気空燃比をリーン側に偏らせる傾向を生みだしていると判断できる。ECU６０は、この場合、ベーパ濃度学習値FGPGを、所定値kFBだけ大きな値に更新する（ステップ２２０）。このような処理によれば、ベーパ濃度学習値FGPGを適正な値に修正することができ、排気空燃比がリーン側にシフトする傾向を小さくすることができる。以上説明した通り、図８に示すルーチンによれば、パージVSV２８が正常である場合には、０でないパージ率PGRが要求されている状況下で排気空燃比に表れる傾向に基づいてベーパ濃度学習値FGPGを適正に更新することができる。
【００８８】
図８に示すルーチンでは、上記ステップ２００において、閉故障判定フラグXVSV閉に１がセットされていると判別されると、その後無条件でステップ２０６以降の処理、すなわち、学習値KGXの更新処理が開始される。XVSV閉＝１が成立する場合は、パージVSV２８に閉故障が生じており、吸気通路３０に対してパージガスが流入していないと判断することができる。つまり、この場合は、正常時においてPGR＝０が要求されている場合と同様に、排気空燃比の傾向にパージガスの影響が何ら及んでいないと判断することができる。
【００８９】
図６を参照して説明した通り、ECU６０は、パージVSV２８の閉故障時には、パージの実行を中止する（上記ステップ１６２参照）。そして、ECU６０は、この場合、上記の如く学習値KGXの更新処理を実行しながら燃料噴射時間TAUを制御する。このような処理によれば、パージVSV２８に閉故障が生じている状況下で、正常時にパージが停止されている場合と同様の精度で空燃比を制御することができる。従って、本実施形態のシステムによれば、パージVSV２８の閉故障時に、その故障の発生に関わらず、優れた空燃比制御を実現することができる。
【００９０】
図８に示すルーチンでは、上記ステップ２０２において、開故障判定フラグXVSV開に１がセットされていると判別されると、その後無条件でステップ２１４以降の処理、すなわち、ベーパ濃度学習値FGPGの更新処理が開始される。XVSV開＝１が成立する場合は、パージVSV２８に開故障が生じており、パージガスが常に吸気通路３０に流入していると判断することができる。つまり、この場合は、排気空燃比の傾向に常にパージガスの影響が及んでいると判断することができる。
【００９１】
図６を参照して説明した通り、ECU６０は、パージVSV２８の開故障時には、パージ条件の成否を見ることなく常にパージ率PGRを算出する。そして、ECU６０は、この場合、上記の如くベーパ濃度学習値FGPGの更新処理を実行しながら、その更新値が反映されるように燃料噴射時間TAUを演算する。このような処理によれば、パージVSV２８に開故障が生じている場合に、常に、パージガスの存在を前提として、パージガスの濃度が反映されるような形で、燃料噴射時間TAUを算出することができる。このため、本実施形態のシステムによれば、パージVSV２８の開故障時に、その故障の発生に関わらず、優れた空燃比制御を実現することができる。
【００９２】
尚、上述した実施の形態１においては、パージVSVが前記第１の発明における「パージ制御弁」に相当していると共に、ECU６０が、図３および図４に示すルーチンを実行することにより前記第１の発明における「故障判定手段」が、上記ステップ１７６の処理を実行することにより前記第１の発明における「パージ処理手段」が、上記ステップ２１４〜２２０の処理を実行することにより前記第１の発明における「燃料濃度学習手段」が、上記ステップ１９０〜１９２の処理を実行することにより前記第１の発明における「燃料噴射量補正手段」が、上記ステップ１６６の処理を実行することにより前記第１の発明における「パージ条件判断手段」が、パージVSV２８の正常時に上記ステップ１７６、２１４〜２２０、および１９０〜１９２の処理を要求することにより前記第１の発明における「通常処理要求手段」が、パージVSV２８の開故障時に上記ステップ２１４〜２２０、および１９０〜１９２の処理を要求することにより前記第１の発明における「開故障時処理要求手段」が、それぞれ実現されている。
【００９３】
また、上述した実施の形態１においては、ECU６０が、上記ステップ２０６〜２１２の処理を実行することにより前記第１の発明における「演算手法学習手段」が、パージVSV２８の正常時に上記ステップ２０６〜２１２の処理を要求することにより前記第１の発明における「通常時学習要求手段」が、パージVSV２８の閉故障時に上記ステップ２０６〜２１２の処理を要求することにより前記第２の発明における「閉故障時学習要求手段」が、それぞれ実現されている。
【００９４】
また、上述した実施の形態１においては、CCV２２が前記第５乃至第６の発明における「遮断機構」に相当していると共に、ECU６０が、内燃機関の始動時にパージVSVを閉弁状態に維持することにより前記第５の発明における「パージ制御弁制御手段」が、上記ステップ１１４の処理を実行することにより前記第５の発明における「圧力変化検出手段」が、上記ステップ１１８〜１２２の処理を実行することにより前記第５の発明における「開故障判定手段」が、上記ステップ１１０の処理を実行することにより前記第５の発明における「温度環境検知手段」が、上記ステップ１２６の処理を実行することにより前記第５の発明における「判定許可手段」が、それぞれ実現されている。
【００９５】
また、上述した実施の形態１においては、ECU６０が、図４（Ａ）に示すようにパージVSVを開弁させることにより前記第６の発明における「パージ制御弁制御手段」が、上記ステップ１３６の処理を実行することにより前記第６の発明における「圧力変化検出手段」が、上記ステップ１４４〜１４８の処理を実行することにより前記第６の発明における「閉故障判定手段」が、上記ステップ１１０の処理を実行することにより前記第６の発明における「温度環境検知手段」が、上記ステップ１５２の処理を実行することにより前記第６の発明における「判定許可手段」が、それぞれ実現されている。
【００９６】
実施の形態２．
次に、図９を参照して、本発明の実施の形態２について説明する。本実施形態のシステムは、図１に示すシステム構成において、ECU６０に、上記図６に示すルーチンに代えて、図９に示すルーチンを実行させることにより実現することができる。
【００９７】
既述した通り、実施の形態１では、パージVSV２８の開故障時に、パージVSV２８の正常時と同様に駆動デューティDPGが算出され、また、そのDPGに基づいて最終パージ率PGRが算出される（図６参照）。そして、実施の形態１では、パージVSV２８の開故障時に、このようにして算出されたパージ率PGRを用いて燃料噴射時間TAUが算出される（図７参照）。つまり、実施の形態１においては、パージVSV２８の開故障時も、パージVSV２８の開度が駆動デューティDPGに応じて変化することを前提として燃料噴射時間TAUが算出される。
【００９８】
パージVSV２８に開故障が生じている場合は、その開度が変化しないのが通常である。このため、パージVSV２８の開故障時には、多くの場合、正常時において駆動デューティDPGが一定に維持された場合と同様の状況が形成される。従って、パージVSV２８の開故障時に、より現実の状態に即した制御を実現するためには、駆動デューティDPGが固定されているものとして燃料噴射時間TAUを演算することが適切である。
【００９９】
図９は、パージVSV２８の開故障時に、上述した適切な制御を実現するためにECU６０が実行するパージ制御ルーチンのフローチャートである。尚、図９において、上記図６に示すルーチンに示すステップと同様のステップについては、同一の符号を付してその説明を省略または簡略する。また、図９では、図６に示すステップ１６６〜１８２に対応するステップを、「通常制御」と簡略して示している。
【０１００】
既述した通り、図６に示すルーチンでは、パージVSV２８の開故障時に、正常時と同様にステップ１７０〜１８２の処理が実行される。図９に示すルーチンは、その場合に実行されるステップが、ステップ２３０〜２３６に置き換えられている点を除き、図６に示すステップと同様である。すなわち、図９に示すルーチンでは、ステップ１６２において開故障の発生が（XVSV開＝１の成立）が認められると、先ず、全開流量QPGMXが算出される（ステップ２３０）。次に、その全開流量QPGMXに基づいて全開時パージ率PGR100が算出される（ステップ２３２）。尚、これらの処理は、実質的に通常制御時に実行されるステップ１７２および１７４の処理と同様であるため、ここでは詳細な説明を省略する。
【０１０１】
図９に示すルーチンでは、上記ステップ２３２の処理に次いで、駆動デューティDPGに固定値Yが代入される（ステップ２３４）。次いで、その駆動デューティDPGを全開時パージ率PGR100に掛け合わせることにより、最終パージ率PGR＝DPG×PGR100が算出される（ステップ２３６）。パージVSV２８の開故障時には、パージVSV２８が全開状態で固着していることが多い。このため、本実施形態では、駆動デューティDPGに代入される固定値Yを「１００」に設定している。従って、上記ステップ２３４では、パージVSV２８が全開である場合のパージ率PGRが常に算出されることになる。
【０１０２】
パージVSV２８の開故障時に、現実にパージVSV２８が全開状態で固着している場合は、内燃機関の運転中に、常に上記ステップ２３６で算出されるパージ率PGRと等しいパージ率が実現される。従って、この場合は、ベーパ濃度学習値FGPGがパージガスの濃度を正しく表していれば、ステップ１９０および１９２の処理により、パージガスの影響を正確に相殺する適正な燃料噴射時間TAUを得ることができる。一方、このような状況下で図８に示すステップ２１４〜２２０の処理が繰り返されれば、ベーパ濃度学習値FGPGは、パージガスの濃度を正しく表す値に更新される。このため、本実施形態のシステムによれば、パージVSVが全開状態で固着している場合に、パージガスの影響を精度良く相殺して、高精度な空燃比制御を実現することができる。
【０１０３】
また、本実施形態のシステムは、パージVSV２８が全開でない状態で固着している場合にも、高精度な空燃比制御を実現することができる。以下、パージVSV２８が全開時の１／２の開度で固着している場合を例として、その理由を説明する。既述した通り、本実施形態では、パージVSV２８の開故障時には、駆動デューティDPGを１００に固定する（上記ステップ２３４参照）。従って、パージVSV２８が現実には全開時の１／２の開度で固着している場合には、上記ステップ２３６において算出される最終パージ率PGRが、現実に生ずるパージ率の２倍となる。この点、ECU６０において実行される制御は現実の状況と整合していない。
【０１０４】
しかしながら、ECU６０が認識するパージ率PGRと、現実のパージ率との比が一定であれば、図８に示すステップ２１４〜２２０の処理が繰り返されることにより、ベーパ濃度学習値FGPGが、その比を相殺するような値に学習される。つまり、上記の例では、ベーパ濃度学習値FGPGが、最終的にはパージガスの濃度の２倍に対応する値に更新される。その結果、結局はパージ補正係数FPGが、パージVSV２８が全開状態で固着している場合と同じ値となり、高精度な空燃比制御が実現されることになる。
【０１０５】
つまり、図６に示すルーチンによれば、パージVSV２８が一定の開度を保った状態で固着している限り、パージガスの影響が精度良く相殺されるように燃料噴射時間TAUを補正することができる。このため、本実施形態のシステムによれば、パージVSV２８の開故障時に、実施の形態１のシステムに比して更に高精度な空燃比制御を実現することができる。
【０１０６】
ところで、上述した実施の形態２においては、パージVSV２８の開故障時に駆動デューティDPGに代入する固定値Yが「１００」とされているが、固定値Yは１００に限定されるものではない。すなわち、本実施形態のシステムは、パージVSV２８が全開でない状態で固着している場合にも高精度な空燃比制御が実現できるのと同様の理由により、固定値Yが１００でない場合にも高精度な空燃比制御を実現することができる。つまり、固定値Yは、０でない限り任意の値を用いることができる。
【０１０７】
尚、上述した実施の形態２においては、ECU６０が、上記ステップ２３４の処理を実行することにより前記第３の発明における「開故障時開度設定手段」が実現されている。また、実施の形態２においては、固定値Y＝１００が、上記第４の発明における「全開相当値」に相当している。
【０１０８】
【発明の効果】
この発明は以上説明したように構成されているので、以下に示すような効果を奏する。
第１の発明によれば、パージ制御弁が正常であると認められる場合は、パージ制御の実行条件が成立している状況下でパージ処理を実行させることができる。また、パージ制御弁の開故障が認められる場合には、実行条件の成否に関わりなく、パージガス中の燃料濃度の学習処理および燃料噴射量の補正処理を常に実行させることができる。パージ制御弁の開故障時には、内燃機関が作動している限り、常に吸気通路にパージガスが流入する。本発明によれば、そのパージガス中の燃料濃度を常に学習し、その学習値に基づいて常に精度良く燃料噴射量を補正することができる。このため、本発明によれば、パージ制御弁の開故障時にも高精度な空燃比制御を実現することができる。
【０１０９】
第２の発明によれば、パージ制御弁の閉故障が認められる場合は、常に、パージガスが存在していないものとして燃料噴射量の演算手法の学習を要求することができる。このため、本発明によれば、パージ制御弁の閉故障時に高精度な空燃比制御を実現することができる。また、本発明によれば、パージ制御弁が正常であると認められ、かつ、パージ制御弁が閉弁状態に制御されている場合に、上記の学習を要求することができる。この場合、パージガスが確実に存在しない状況下でのみ燃料噴射量の演算手法を学習することができるため、誤った学習が行われることがなく、常に高精度な空燃比制御を実現することができる。
【０１１０】
第３の発明によれば、パージ制御弁の開故障時には、パージ制御弁の開度をゼロでない固定値に設定することができる。パージ制御弁の開度は、開故障時には多分に一定値となる。そして、吸気通路には、その一定の開度に応じた量のパージガスが流入する。本発明によれば、この場合に、パージ制御弁の開度が一定であるものとして燃料噴射量を補正し、その補正の結果として目標空燃比が実現されるようにパージガス中の燃料濃度を学習する。パージ制御弁の開度が固定されているにも関わらず、その開度が変動しているものとして燃料濃度が学習されると、燃料濃度の学習値は一定の値に収束できない。これに対して、本発明の手法によれば、燃料濃度の学習値は一定の値に収束することができる。このため、本発明によれば、パージ制御弁の開故障時において、常に高精度な空燃比制御を実現することができる。
【０１１１】
第４の発明によれば、パージ制御弁の開故障時には、パージ制御弁の開度が全開であるものとして燃料濃度の学習、および燃料噴射量の補正を行うことができる。パージ制御弁の開度は、開故障時には多分に全開となる。このため、本発明によれば、パージ制御弁の開故障時に、現実の状態に最も適合した手法で空燃比制御を行うことができ、優れた空燃比制御精度を実現することができる。
【０１１２】
第５の発明によれば、内燃機関の始動時に、キャニスタを含む系内の圧力変化を基礎としてパージ制御弁の開故障の有無を判断することができる。そして、本発明によれば、蒸発燃料の発生に起因する圧力変化の影響の少ない低温環境でのみ上記の判断が許可されるため、その判断に対して高い信頼性を与えることができる。
【０１１３】
第６の発明によれば、内燃機関の始動時に、キャニスタを含む系内の圧力変化を基礎としてパージ制御弁の閉故障の有無を判断することができる。そして、本発明によれば、蒸発燃料の発生に起因する圧力変化の影響の少ない低温環境でのみ上記の判断が許可されるため、その判断に対して高い信頼性を与えることができる。
【図面の簡単な説明】
【図１】  本発明の実施の形態１の構成を説明するための図である。
【図２】  本発明の実施の形態１のシステムがパージVSVの開故障を検知する際の処理の内容を説明するためのタイミングチャートである。
【図３】  本発明の実施の形態１において、パージVSVに開故障が生じているか否かを判断すべく実行される処理の内容を説明するためのフローチャートである。
【図４】  本発明の実施の形態１のシステムがパージVSVの閉故障を検知する際の処理の内容を説明するためのタイミングチャートである。
【図５】  本発明の実施の形態１において、パージVSVに開故障が生じているか否かを判断すべく実行される処理の内容を説明するためのフローチャートである。
【図６】  本発明の実施の形態１においてパージ制御のために実行されるルーチンのフローチャートである。
【図７】  本発明の実施の形態１において燃料噴射時間を演算するために実行されるルーチンのフローチャートである。
【図８】  本発明の実施の形態１において学習制御のために実行されるルーチンのフローチャートである。
【図９】  本発明の実施の形態２においてパージ制御のために実行されるルーチンのフローチャートである。
【符号の説明】
１０  燃料タンク
２０  キャニスタ
２２  CCV(Canister Closed Valve)
２８  パージVSV(Vacuum Switching Valve)
３０  吸気通路
６０  ECU(Electronic Control Unit)
THWST  開始時冷却水温
XVSV開  開故障判定フラグ
XVSV閉  閉故障判定フラグ
【図１】
0004419445.tif 000002
【図２】
0004419445.tif 000003
【図３】
0004419445.tif 000004
【図４】
0004419445.tif 000005
【図５】
0004419445.tif 000006
【図６】
0004419445.tif 000007
【図７】
0004419445.tif 000008
【図８】
0004419445.tif 000009
【図９】
0004419445.tif 000010