(57)【特許請求の範囲】
【請求項１】
燃料タンクと、大気に連通する吸気口が設けられ、該燃料タンク内で発生する蒸発燃料を吸着するキャニスタと、該燃料タンクおよび該キャニスタを接続する第１の通路と、該キャニスタを内燃機関の吸気系に接続する第２の通路と、該キャニスタの吸気口を開閉するベントシャット弁と、該第２の通路に設けられたパージ制御弁とを備える蒸発燃料処理系のリークを判定する装置であって、
前記蒸発燃料処理系の圧力を検出する圧力センサと、
前記内燃機関の停止を検出する機関停止検出手段と、
前記機関停止検出手段によって前記内燃機関が停止されたことが検出されたならば、前記パージ制御弁および前記ベントシャット弁を閉じることにより、前記蒸発燃料処理系を閉じた後、所定期間中に前記圧力センサによって検出された圧力と所定の判定値とに基づいて、該蒸発燃料処理系内のリークの有無を判定するリーク判定手段と、
前記燃料タンク内の燃料の量を検出する残燃料検出手段と、
前記検出された燃料量に、所定の第１のなまし係数を用いたなまし演算を適用して、第１の燃料レベルを算出する第１の燃料レベル算出手段と、
前記第１の燃料レベル算出手段によって算出された前記第１の燃料レベルに基づいて、前記リーク判定手段で用いられる前記判定値を補正する判定値補正手段と、
前記検出された燃料量に、所定の第２のなまし係数を用いたなまし演算を適用して、第２の燃料レベルを算出する第２の燃料レベル算出手段と、
前記第２の燃料レベル算出手段によって算出された前記第２の燃料レベルが、前記第１の燃料レベルの最小値より所定値以上大きければ、給油が行われていると判断して、前記リーク判定手段によるリークの判定を禁止する判定禁止手段と、を備え、前記第２のなまし係数は、前記第１のなまし係数よりも大きい、
リーク判定装置。
【請求項２】
前記判定禁止手段は、さらに、前記内燃機関が搭載された車両の車速を判断する手段を備えており、該車速がゼロならば、前記給油が行われているかどうかを判断する、請求項１に記載のリーク判定装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、内燃機関の蒸発燃料処理系にリークがあるかどうかを判定する装置に関し、より具体的には、燃料レベルを考慮に入れてリーク判定の信頼性を向上させるリーク判定装置に関する。
【０００２】
【従来の技術】
燃料タンク内で発生した蒸発燃料を処理する蒸発燃料処理系にリーク（漏れ）があるかどうかを判定する様々な方法が提案されている。特開２００１―１７３５２４号公報には、走行中にリーク判定において、燃料タンクの揺れをリーク判定の実施条件に含める手法が示されている。この手法では、リーク判定用の燃料レベルを算出するためのなまし係数が、燃料の量に応じて複数設定される。検出された燃料タンク内の燃料レベルに対応するなまし係数を用いて、リーク判定用の燃料レベルを求める。該求められた燃料レベルに基づいて、燃料の揺れ幅を求める。揺れ幅が所定値以上ならば、リーク判定の実施を禁止する。
【０００３】
蒸発燃料処理系におけるリーク判定は、内燃機関が停止した後に実施される場合もある。この場合、内燃機関を停止した後に、蒸発燃料処理系の圧力と大気圧との差圧の推移を検出する。検出された差圧の変動量に基づいて、リークがあるかどうかが判定される。
【０００４】
【発明が解決しようとする課題】
蒸発燃料処理系の圧力変化は燃料タンク内に残存する燃料の量に依存する。したがって、内燃機関を停止した後のリーク判定の精度を向上させるためには、該リーク判定時において燃料タンクに残っている燃料の量を考慮する必要がある。一方、給油時に蒸発燃料処理系は閉回路とならないため、リークありと誤判定を招くおそれがある。
【０００５】
したがって、この発明は、内燃機関が停止した後にリーク判定を実施する場合において、燃料レベルを考慮したリーク判定を実施し、該リーク判定の精度を向上させることを目的とする。
【０００６】
【課題を解決するための手段】
この発明の一つの側面によると、リーク判定装置は、燃料タンクと、大気に連通する吸気口が設けられ、該燃料タンク内で発生する蒸発燃料を吸着するキャニスタと、該燃料タンクおよび該キャニスタを接続する第１の通路と、該キャニスタを内燃機関の吸気系に接続する第２の通路と、キャニスタの吸気口を開閉するベントシャット弁と、第２の通路に設けられたパージ制御弁とを備える蒸発燃料処理系のリークを判定する。リーク判定装置は、さらに、蒸発燃料処理系の圧力を検出する圧力センサと、内燃機関の停止を検出する期間停止検出手段と、リーク判定手段を備える。リーク判定手段は、内燃機関の停止が検出されたならば、パージ制御弁およびベントシャット弁を閉じることにより、蒸発燃料処理系を閉じる。その後、リーク判定手段は、所定期間中に圧力センサによって検出された圧力と所定の判定値とに基づいて、該蒸発燃料処理系内のリークの有無を判定する。リーク判定装置は、さらに、燃料タンク内の燃料の量を検出する残燃料検出手段と、該検出された燃料量に、所定の第１のなまし係数を用いたなまし演算を適用して、第１の燃料レベルを算出する第１の燃料レベル算出手段と、該算出された第１の燃料レベルに基づいて、リーク判定手段で用いられる前記判定値を補正する判定値補正手段を備える。リーク判定装置は、さらに、前記検出された燃料量に、所定の第２のなまし係数を用いたなまし演算を適用して、第２の燃料レベルを算出する第２の燃料レベル算出手段と、第２の燃料レベル算出手段によって算出された前記第２の燃料レベルに基づいて、リーク判定手段によるリークの判定を禁止する判定禁止手段を備える。
【０００７】
この発明によると、内燃機関の停止後のリーク判定において、第１の燃料レベルに基づいて補正された判定値が使用されるので、リーク判定の精度を向上させることができる。さらに、第２の燃料レベルに基づいて、誤判定を招くおそれのあるリーク判定の実施を回避することができる。こうして、第１および第２の燃料レベルを目的に応じて使い分けることにより、内燃機関停止後のリーク判定をより正確に実施することができる。
【０００８】
この発明の他の側面によると、第１のなまし係数は、第２のなまし係数よりも小さい。この発明によると、第１の燃料レベルを算出するための燃料量に対する“なまし”の程度は、第２の燃料レベルを算出するための燃料量に対する“なまし”の程度より大きい。言い換えると、第２の燃料レベルは、第１の燃料レベルよりも、燃料量の変動をより敏感に反映する。したがって、第２の燃料量を算出することにより、内燃機関の停止後の燃料の比較的小さい変動を検出することができる。これにより、たとえば給油行為が行われているかどうかを判断することが可能となる。また、第１の燃料レベルは、検出された燃料量を比較的大きく平均化する。したがって、第１の燃料レベルによって判定値を補正することにより、リーク判定の精度を向上させることができる。
【０００９】
【発明の実施の形態】
次に図面を参照してこの発明の実施の形態を説明する。図１は、この発明の実施形態に従う、内燃機関およびその制御装置の全体構成図である。
【００１０】
電子制御ユニット（以下、「ＥＣＵ」）という）５は、車両の各部から送られてくるデータを受け入れる入力インターフェース５ａ、車両の各部の制御を行うための演算を実行するＣＰＵ５ｂ、読み取り専用メモリ（ＲＯＭ）およびランダムアクセスメモリ（ＲＡＭ）を有するメモリ５ｃ、および車両の各部に制御信号を送る出力インターフェース５ｄを備えている。メモリ５ｃのＲＯＭには、車両の各部の制御を行うためのプログラムおよび各種のデータが格納されている。この発明にリーク判定を実施するためのプログラム、および該プログラムの実行の際に用いるデータおよびテーブルは、このＲＯＭに格納されている。ＲＯＭは、ＥＥＰＲＯＭのような書き換え可能なＲＯＭでもよい。ＲＡＭには、ＣＰＵ５ｂによる演算のための作業領域が設けられる。車両の各部から送られてくるデータおよび車両の各部に送り出す制御信号は、ＲＡＭに一時的に記憶される。
【００１１】
エンジン１は、例えば４気筒を備えるエンジンであり、吸気管２が連結されている。吸気管２の上流側にはスロットル弁３が配されており、スロットル弁３に連結されたスロットル弁開度センサ（θＴＨ）４は、スロットル弁３の開度に応じた電気信号を出力してＥＣＵ５に供給する。
【００１２】
燃料噴射弁６は、吸気管２の途中であって、エンジン１とスロットル弁３の間に各気筒毎に設けられ、ＥＣＵ５からの制御信号によって開弁時間が制御される。燃料供給管７は、燃料噴射弁６および燃料タンク９を接続し、その途中に設けられた燃料ポンプ８が、燃料を燃料タンク９から燃料噴射弁６に供給する。図示しないレギュレータが、ポンプ８と燃料噴射弁６の間に設けられ、吸気管２から取り込まれる空気の圧力と、燃料供給管７を介して供給される燃料の圧力との間の差圧を一定にするよう動作して、燃料の圧力が高すぎるときは図示しないリターン管を通して余分な燃料を燃料タンク９に戻す。こうして、スロットル弁３を介して取り込まれた空気は、吸気管２を通り、燃料噴射弁６から噴射される燃料と混合してエンジン１のシリンダ（図示せず）に供給される。燃料タンク９には、給油のための給油口１０が設けられ、給油口１０には、フィラーキャップ１１が取り付けられている。
【００１３】
吸気管圧力（ＰＢＡ）センサ１３および吸気温（ＴＡ）センサ１４は、吸気管２のスロットル弁３の下流側に装着されており、それぞれ吸気管圧力ＰＢＡおよび吸気温ＴＡを検出して電気信号に変換し、それをＥＣＵ５に送る。
【００１４】
エンジン回転数（ＮＥ）センサ１７が、カム軸またはクランク軸周辺に取り付けられ、クランク軸が１８０度回転するたびに、所定のクランク角度位置でＴＤＣ信号を出力する。検出されたＴＤＣ信号パルスは、ＥＣＵ５に送られる。エンジン水温（ＴＷ）センサ１８は、エンジン１のシリンダブロックの冷却水が充満した気筒周壁（図示せず）に取り付けられ、エンジン冷却水の温度ＴＷを検出し、これをＥＣＵ５に送る。
【００１５】
エンジン１は排気管１２を持ち、排気管１２の途中に設けられた排気ガス浄化装置である三元触媒（図示せず）を介して排気する。排気管１２の途中に装着されたＬＡＦセンサ１９は広域空燃比センサであり、リーンからリッチにわたる範囲において排気ガス中の酸素濃度すなわち実空燃比を検出し、それをＥＣＵ５に送る。
【００１６】
外気温を検出する外気温（ＴＡＴ）センサ４１およびイグニッションスイッチ４２がＥＣＵ５に接続されている。ＴＡＴセンサ４１によって検出された信号およびイグニッションスイッチ４２の切換信号は、ＥＣＵ５に送られる。
【００１７】
バッテリ電圧（ＶＢ）センサ４３および車速（ＶＰ）センサ４４がＥＣＵ５に接続されており、それぞれ、バッテリ電圧および車両の速度を検出し、それをＥＣＵ５に送る。
【００１８】
次に、蒸発燃料処理系について説明する。蒸発燃料処理系５０は、燃料タンク９、チャージ通路３１、バイパス通路３１ａ、キャニスタ３３、パージ通路３２、二方向弁３５、バイパス弁３６、パージ制御弁３４、通路３７およびベントシャット弁３８を備える。
【００１９】
燃料タンク９は、チャージ通路３１を介してキャニスタ３３に接続され、燃料タンク９からの蒸発燃料が、キャニスタ３３に移動できるようになっている。チャージ通路３１には、機械式の二方向弁３５が設けられている。二方向弁３５は、タンク内圧が大気圧より第１の所定圧（たとえば、２．７ｋＰａ）以上高いときに開く正圧弁と、タンク内圧がキャニスタ３３の圧力より第２の所定圧以上低いとき開く負圧弁を備える。
【００２０】
二方向弁をバイパスするバイパス通路３１ａが設けられている。バイパス通路３１ａには、電磁弁であるバイパス弁３６が設けられる。バイパス弁３６は、通常は閉弁状態にあり、ＥＣＵ５からの制御信号に従って開弁する。
【００２１】
圧力センサ１５は、二方向弁３５と燃料タンク９との間に設けられており、その検出信号はＥＣＵ５に送られる。圧力センサ１５の出力ＰＴＡＮＫは、キャニスタ３３および燃料タンク９内の圧力が安定している定常状態では、燃料タンク内の圧力に等しくなる。一方、圧力センサ１５の出力ＰＴＡＮＫは、キャニスタ３３または燃料タンク９内の圧力が変化しているときは、実際のタンク内圧とは異なる圧力を示す。圧力センサ１５の出力を、以下「タンク内圧ＰＴＡＮＫ」と呼ぶ。
【００２２】
キャニスタ３３は、燃料蒸気を吸着する活性炭を内蔵し、通路３７を介して大気に連通する吸気口（図示せず）を持つ。通路３７の途中には、ベントシャット弁３８が設けられる。ベントシャット弁３８は、ＥＣＵ５により制御される電磁弁であり、給油時またはパージ実行中に開弁される。また、ベントシャット弁３８は、後述するリーク判定時に開閉される。ベントシャット弁３８は、駆動信号が供給されないときは、開弁状態にある。
【００２３】
キャニスタ３３は、パージ通路３２を介して吸気管２のスロットル弁３の下流側に接続される。パージ通路３２の途中には電磁弁であるパージ制御弁３４が設けられ、キャニスタ３３に吸着された燃料が、パージ制御弁３４を介してエンジンの吸気系に適宜パージされる。パージ制御弁３４は、ＥＣＵ５からの制御信号に基づいて、オン−オフデューティ比を変更することにより、パージ流量を連続的に制御する。
【００２４】
燃料タンク９には、燃料タンク内の気層（空気と蒸発燃料とからなる混合気層）の温度を検出する気層温度（ＴＧＴ）センサ３９が設けられている。さらに、燃料タンク９には、燃料タンク９内の残存する燃料の量を検出する燃料レベル（ＦＲ）センサ４５が設けられている。気層温度センサ３９および燃料レベルセンサ４５からの検出信号は、それぞれＥＣＵ５に送られる。
【００２５】
この実施形態によると、イグニッションスイッチ４２がオフされても、リーク判定を実施する期間中は、ＥＣＵ５、バイパス弁３６およびベントシャット弁３８には電気が供給される。パージ制御弁３４は、イグニッションスイッチ４２がオフされると電気が供給されなくなり、閉弁状態を維持する。
【００２６】
燃料タンク９の給油時に蒸発燃料が多量に発生すると、二方向弁３５が開き、該蒸発燃料がキャニスタ３３に貯蔵される。エンジン１の所定の運転状態において、パージ制御弁３４のデューティ制御が実施され、これにより、適量の蒸発燃料がキャニスタ３３から吸気管２に供給される。
【００２７】
各種センサからの入力信号はＥＣＵ５の入力インターフェース５ａに渡される。入力インターフェース５ａは、入力信号波形を整形して電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する。ＣＰＵ５ｂは、変換されたデジタル信号を処理し、ＲＯＭ５ｃに格納されているプログラムに従って演算を実行し、車の各部のアクチュエータに送る制御信号を作り出す。この制御信号は出力インターフェース５ｄに送られ、出力インターフェース５ｄは、燃料噴射弁６、パージ制御弁３４、バイパス弁３６およびベントシャット弁３８に制御信号を送る。
【００２８】
図２は、エンジンを停止した後に実施されるリーク判定のタイムチャートを示す。タンク内圧ＰＴＡＮＫは、実際には絶対圧として検出されるが、大気圧を基準とした差圧で示されている。
【００２９】
時間ｔ１においてエンジンが停止すると、バイパス弁３６が開かれ、ベントシャット弁３８は開弁状態を維持される。これにより、蒸発燃料処理系５０は大気に開放され、タンク内圧ＰＴＡＮＫは大気圧と等しくなる。パージ制御弁３４は、エンジンが停止した時に閉じられる。第１の大気開放期間は、所定期間ＴＯＴＡ１（たとえば、１２０秒）にわたって継続する。
【００３０】
時刻ｔ２において、ベントシャット弁３８が閉じられ、第１の判定モードが開始する。第１の判定モードでは、蒸発燃料処理系５０が閉じた状態に置かれる。第１の判定モードは、第１の判定時間ＴＰＨＡＳＥ１（たとえば、９００秒）にわたって続く。タンク内圧ＰＴＡＮＫが、破線Ｌ１で示されるように、第１の所定の圧力ＰＴＡＮＫ１（たとえば、「大気圧＋１．３ｋＰａ（１０ｍｍＨｇ）」）を超えたならば、蒸発燃料処理系５０にリークが無いと判定される（時刻ｔ３）。一方、タンク内圧ＰＴＡＮＫが、実線Ｌ２で示されるように、第１の所定の圧力ＰＴＡＮＫ１に達しないとき、最大タンク内圧ＰＴＡＮＫＭＡＸが記憶される（時刻ｔ４）。
【００３１】
時刻ｔ４においてベントシャット弁３８が開かれ、蒸発燃料処理系５０が大気に開放される。第２の大気開放期間は、所定期間ＴＯＴＡ２（たとえば、１２０秒）にわたって継続する。
【００３２】
時刻ｔ５において、ベントシャット弁３８が閉じられ、第２の判定モードが開始する。第２の判定モードは、第２の判定時間ＴＰＨＡＳＥ２（たとえば、２４００秒）にわたって続く。タンク内圧ＰＴＡＮＫが、破線Ｌ３で示されるように、第２の所定圧力ＰＴＡＮＫ２（たとえば、「大気圧−１．３ｋＰａ（１０ｍｍＨｇ）」）よりも低くなったとき（時刻ｔ６）、蒸発燃料処理系５０はリークが無いと判定される。一方、タンク内圧ＰＴＡＮＫが、実線Ｌ４で示されるように変化したとき、最小タンク内圧ＰＴＡＮＫＭＩＮが記憶される（時刻ｔ７）。
【００３３】
時刻ｔ７において、バイパス弁３６が閉じられ、ベントシャット弁３８が開かれる。記憶された最大タンク内圧ＰＴＡＮＫＭＡＸおよび最小タンク内圧ＰＴＡＮＫＭＩＮの差ΔＰが、判定しきい値ΔＰＴＨより大きいとき、蒸発燃料処理系５０にはリークが無いと判定される。該差ΔＰが、判定しきい値ΔＰＴＨ以下であるとき、蒸発燃料処理系５０にリークがあると判定される。これは、リークがあるとき、タンク内圧ＰＴＡＮＫの大気圧に対する変動量が小さくなり、よってΔＰが小さくなるからである。
【００３４】
図３は、この発明に従う、リーク判定装置の機能ブロック図を示す。第１の燃料レベル算出部５１は、燃料レベルセンサ４５から燃料タンク９に残っている燃料量ＦＬＥＶＥＬを受け取り、以下の式（１）に従って、第１の燃料レベルＦＬＥＶＥＬＦを算出する。ここで、ｋはサイクルを識別する識別子であり、(k)は今回のサイクルを示し、(k-1)は前回のサイクルを示す。
【００３５】
係数ＣＦＬＦは、第１のなまし係数を示しており、予め決められた値（たとえば、０．０１）がセットされる。代替的に、燃料レベルに応じて、または他のパラメータに応じて、可変であってもよい。第１のなまし係数ＣＦＬＦの大きさは、燃料レベルセンサによって検出された燃料レベルの変動が吸収されるように設定される。
【００３６】
【数１】
0003808797.tif 000002
第２の燃料レベル算出部５２は、燃料レベルセンサ４５から燃料タンク９に残っている燃料量ＦＬＥＶＥＬを受け取り、以下の式（２）に従って、第２の燃料レベルＦＬＥＶＥＬＲを算出する。係数ＣＦＬＲは、第２のなまし係数を示しており、予め決められた値（たとえば、０．２５）がセットされる。代替的に、燃料レベルに応じて、または他のパラメータに応じて、可変であってもよい。第２のなまし係数の大きさは、燃料レベルが徐々に上昇する給油行為のような燃料の変動を追従することができるように設定される。したがって、第２のなまし係数は、第１のなまし係数よりも大きく設定される。
【００３７】
【数２】
0003808797.tif 000003
給油判定部５３は、車速センサ４４（図１）から検出された車速ＶＰおよび第２の燃料レベルＦＬＥＶＥＬＲに基づいて、現在給油が実施されているかどうかを判断する。一方、エンジン停止検出部５４は、エンジンが停止しているかどうかを判断する。リーク判定許可部５５は、エンジンが停止しており、かつ給油が実施されていないとき、リーク判定の実施を許可する。当然ながら、リーク判定許可部５５は、さらに他の条件が成立したときに、リーク判定を許可するようにしてもよい。
【００３８】
リーク判定の実施が許可されたならば、判定値補正部５６は、第１の燃料レベルＦＬＥＶＥＬＦに基づいて、図２を参照して前述したリーク判定に用いられるしきい値ＰＴＡＮＫ１、ＰＴＡＮＫ２およびΔＰＴＨを補正する。リーク判定部５７は、補正されたこれらのしきい値を用いて、リーク判定を実施する。
【００３９】
図４および図５を参照して、第１の燃料レベルおよび第２の燃料レベルの違いについて説明する。図４の（ａ）において、グラフ６１および６２は、それぞれ、車速ＶＰおよび燃料レベルＦＬＥＶＥＬの時間的推移の一例を示す。図４の（ｂ）において、グラフ６３は、第１の燃料レベルＦＬＥＶＥＬＦの時間的推移を示す。グラフ６３で示される第１の燃料レベルＦＬＥＶＥＬＦは、グラフ６２で示される燃料レベルＦＬＥＶＥＬに上記の式（１）を適用した結果である。グラフ６３の第１の燃料レベルＦＬＥＶＥＬＦから明らかなように、比較的小さい第１のなまし係数ＣＦＬＦを用いることにより、走行中に検出された燃料レベルの変動が吸収されているのがわかる。
【００４０】
図５におけるグラフ６５および６６は、それぞれ、給油開始からの経過時間に伴うタンク内圧ＰＴＡＮＫおよび燃料レベルＦＬＥＶＥＬの推移を示す。これらのグラフに示されるように、給油が進行するにつれ、燃料レベルＦＬＥＶＥＬは徐々に上昇し、よってタンク内圧ＰＴＡＮＫも徐々に上昇する。この燃料レベルの変動を検出することができるように、第２のなまし係数ＣＦＬＲが設定される。給油の場合、たとえば４ガロン（=15.14リットル）/分の燃料レベルの上昇レートを検出することができるように設定される。グラフ６７によって示される第２の燃料レベルＦＬＥＶＥＬＲは、グラフ６６に示される燃料レベルＦＬＥＶＥＬに上記の式（２）を適用した結果である。グラフ６７の第２の燃料レベルＦＬＥＶＥＬＲの推移から明らかなように、比較的大きい第２のなまし係数ＣＬＦＲを用いることにより、給油行為のような、燃料レベルの緩やかな変動を検出することができる。
【００４１】
図６は、燃料レベルを算出する処理のフローチャートを示す。この処理は、所定時間（たとえば、１００ミリ秒）ごとに実施される。
【００４２】
ステップＳ１１において、エンジンが始動モードにあるかどうかを判断する。たとえば、エンジン回転数ＮＥが所定回転数（たとえば、５００ｒｐｍ）未満であれば始動モードと判断される。始動モードならば、ステップＳ１３に進み、燃料レベルを検出する条件が成立しなかったことを示すため、条件フラグＦＬＶＬＣＮＤにゼロを設定する。
【００４３】
ステップＳ１２において、バッテリ電圧が所定値（たとえば、１０．５Ｖ）以下かどうかを判断する。バッテリ電圧が所定値以下ならば、ステップＳ１３に進み、条件フラグＦＬＶＬＣＮＤにゼロを設定する。ステップＳ１１およびＳ１２の両方の判断がＮＯならば、燃料レベルを検出する条件が成立したことを示すため、条件フラグＦＬＶＬＣＮＤに１を設定する（Ｓ１４）。
【００４４】
ステップ１５において、異常検出フラグＦＣＳが１であるかどうかを判断する。異常検出フラグＦＣＳは、圧力センサ１５の断線またはショート、またはベントシャット弁３８の断線またはショートが検出されたとき、１に設定される（図１０参照）。異常検出フラグＦＣＳが１ならば、ステップＳ１６に進み、初期フラグＦＬＶＬＩＮＩＴをゼロに設定し、第１の燃料レベルＦＬＥＶＥＬＦおよび第２の燃料レベルＦＬＥＶＥＬＲを、所定値ＦＬＥＶＥＬＤにそれぞれセットする（Ｓ１７およびＳ１８）。
【００４５】
ステップＳ１５の判断がＮＯのとき、ステップＳ１９において、タイマーＴＧＰＯＮに所定期間ＴＭＦＬＶＬＤＹをセットする。これは、エンジンの始動から所定期間が経過してエンジンが安定した後に、燃料レベルを検出するためである。タイマーＴＧＰＯＮが所定期間ＴＭＦＬＶＬＤＹを経過していなければ、ステップＳ２０およびＳ２１において、検出された燃料レベルＦＬＥＶＥＬを、第１の燃料レベルＦＬＥＶＥＬＦおよび第２の燃料レベルＦＬＥＶＥＬＲにそれぞれセットし、このルーチンを抜ける。
【００４６】
次にこのルーチンに入ったとき、ステップＳ１９において、タイマＴＧＰＯＮが所定期間ＴＭＦＬＶＬＤＹを経過しているならば、ステップＳ２２において、初期フラグＦＬＶＬＩＮＩＴの値を調べる。初期フラグＦＬＶＬＩＮＩＴの初期値はゼロである。したがって、エンジンが始動した後に初めてこのステップを実行するとき、この判断はＮＯとなる。ステップＳ２３に進み、初期フラグＦＬＶＬＩＮＩＴを１にセットする。ステップＳ２０および２１において、再び、第１および第２の燃料レベルＦＬＥＶＥＬＦおよびＦＬＥＶＥＬＲに、検出された燃料レベルＦＬＥＶＥＬをセットし、このルーチンを抜ける。
【００４７】
次にこのルーチンに入ったとき、ステップＳ２２の判断はＹＥＳとなる。ステップＳ２４において、上記の式（１）に従い、第１の燃料レベルＦＬＥＶＥＬＦを算出する。ステップＳ２５において、上記の式（２）に従い、第２の燃料レベルＦＬＥＶＥＬＲを算出する。
【００４８】
ステップＳ２６において、燃料レベルの最小値ＦＬＭＩＮを更新する。具体的には、ステップ２４で算出された第１の燃料レベルＦＬＥＶＥＬＦが、現在の最小値ＦＬＭＩＮより小さければ、該第１の燃料レベルＦＬＥＶＥＬＦが、新たな最小値ＦＬＭＩＮとして記憶される。
【００４９】
ステップ２７において、車速ＶＰがゼロかどうかを判断する。車速がゼロならば、ステップＳ２８おいて、ステップ２５において算出された第２の燃料レベルＦＬＶＥＬＲが、最小値ＦＬＭＩＮより所定値以上大きいかどうかを判断する。この判断がＹｅｓならば、現在給油が実施されていることを示す。したがって、給油フラグＦ＿ＲＦＵＥＬに１をセットする（Ｓ２９）。
【００５０】
図７は、リーク判定許可フラグＦＤＥＴを設定する判断する処理のフローチャートである。この処理は、所定時間（たとえば、１００ミリ秒）ごとに実施される。
【００５１】
ステップＳ３１において、イグニッションスイッチ４２（図１）がオフされたかどうかを判断する。イグニッションスイッチがオフされなかったときは、このルーチンを抜ける。イグニッションスイッチがオフされたときは、前述した異常検出フラグＦＣＳが１であるかどうかを判断する（Ｓ３２）。異常検出フラグＦＣＳが１であるとき、処理はステップＳ３９に進み、リーク判定許可フラグＦＤＥＴをゼロに設定し、リーク判定を禁止する。ＦＣＳ＝０であるとき、前述した給油フラグＦ＿ＲＦＵＥＬが１かどうかを判断する（Ｓ３３）。給油フラグＦＲＦＵＥＬが１であるとき、給油が行われていることを示す。したがって、リーク判定許可フラグＦＤＥＴをゼロに設定し（Ｓ３９）、リーク判定を禁止する。
【００５２】
給油フラグＦ＿ＲＦＵＥＬがゼロであるとき、前回のサイクルにおいてエンジンが作動していたかどうかを判断する（Ｓ３４）。この判断がＮＯであるとき、このルーチンを抜ける。ＹＥＳであるとき（すなわち、エンジンが停止した直後であるとき）、外気温センサ４１の検出値ＴＡＴを読み込み（Ｓ３５）、さらに気層温度センサ３９の検出値ＴＴＧを読み込む（Ｓ３６）。
【００５３】
ステップＳ３７において、気層温度ＴＴＧと外気温ＴＡＴとの差が所定温度ΔＴ１（たとえば、５℃）より大きいかどうかを判断する。この判断がＮＯであるとき（すなわち、気層温度ＴＴＧと外気温ＴＡＴとの差が小さいとき）、リーク判定を実施すると誤判定を起こす可能性が高い。したがって、ステップＳ３９に進み、リーク判定を禁止する。ステップＳ３７の判断がＹＥＳであるとき、リーク判定許可フラグＦＤＥＴを１に設定し（Ｓ３８）、リーク判定を許可する。
【００５４】
図８および図９は、リーク判定を実行する処理のフローチャートである。この処理は、所定時間（たとえば、１００ミリ秒）ごとに実施される。
【００５５】
ステップＳ４１において、エンジン１が停止したかどうかを判断する。エンジン１が作動中であるときは、第１のアップカウントタイマＴＭ１の値をゼロにセットし（Ｓ４３）、このルーチンを抜ける。第１のアップカウントタイマＴＭ１は、第１の大気開放期間ＴＯＴＡ１（図２参照）を計測するためのタイマである。エンジン１が停止すると、ステップＳ４２において、リーク判定許可フラグＦＤＥＴが１であるかどうかを判断する。許可フラグＦＤＥＴがゼロであるとき、ステップＳ４３に進む。
【００５６】
ＦＤＥＴ＝１であるときは、補正テーブルＰＥＯＪＤを、第１の燃料レベルＦＬＥＶＥＬＦおよび外気温ＴＡＴに基づいて検索し、しきい値ＰＴＡＮＫ１、ＰＴＡＮＫ２およびΔＰを抽出する。補正テーブルＰＥＯＪＤは、第１の燃料レベルＦＬＥＶＥＬＦおよび外気温ＴＡＴに基づくしきい値ＰＴＡＮＫ１、ＰＴＡＮＫ２およびΔＰを規定するテーブルである。こうして、燃料タンクに残存する燃料量および外気温に基づいて適切なしきい値が選択されるので、リーク判定の精度を高めることができる。
【００５７】
ステップＳ４５に進み、第１のアップカウントタイマＴＭ１の値が、予め決められた第１の大気開放時間ＴＯＴＡ１を超えたかどうかを判断する。最初にこのステップを実行するとき、この判断はＮＯとなるので、ステップＳ４６においてバイパス弁３６を開き、ベントシャット弁３８の開弁状態を維持する（図２の時刻ｔ１）。ステップＳ４７において、第２のアップカウントタイマＴＭ２の値をゼロにセットし、このルーチンを抜ける。第２のアップカウントタイマＴＭ２は、第１の判定期間ＴＰＨＡＳＥ１を計測するためのタイマである。
【００５８】
次にこのルーチンに入ったとき、第１のアップカウントタイマＴＭ１の値が第１の大気開放期間ＴＯＴＡ１に達したならば（図２の時刻ｔ２）、ステップＳ４５からステップＳ４８に進み、第１のアップカウントタイマＴＭ２の値が第１の判定期間ＴＰＨＡＳＥ１（図２）より大きいかどうかを判断する。最初にこのステップを実施するとき、この判断はＮＯであるので、ステップＳ４９においてベントシャット弁３８を閉じる。ステップＳ５０において、タンク内圧ＰＴＡＮＫが第１の所定タンク内圧ＰＴＡＮＫ１より高いかどうかを判断する。最初にこのステップを実行するとき、この判断はＮＯとなるので、ステップＳ５２において第３のアップカウントタイマＴＭ３の値をゼロにセットする。第３のアップカウントタイマＴＭ３は、第２の大気開放期間ＴＯＴＡ２（図２）を計測するためのタイマである。
【００５９】
ステップＳ５３において、タンク内圧ＰＴＡＮＫが、最大タンク内圧ＰＴＡＮＫＭＡＸより高いかどうかを判断する。最大タンク内圧ＰＴＡＮＫＭＡＸの初期値は、大気圧より低い値を持つよう設定されている。したがって、最初にこのステップを実行するとき、この判断はＹＥＳとなり、現在のタンク内圧ＰＴＡＮＫが、最大タンク内圧ＰＴＡＮＫＭＡＸにセットされる（Ｓ５４）。ステップＳ５３の判断がＮＯであるときは、このルーチンを抜ける。こうして、第１の判定モードにおける最大タンク内圧ＰＴＡＮＫＭＡＸが得られる。
【００６０】
ステップＳ５０の判断がＹＥＳとなったとき（図２の破線Ｌ１および時刻ｔ３を参照）、タンク内圧ＰＴＡＮＫの上昇が大きいので、蒸発燃料処理系にリークは無いと判定し（Ｓ５１）、リーク判定を終了する。
【００６１】
このルーチンに入ったときに、ステップＳ４８において、第２のアップカウントタイマＴＭ２の値が第１の判定期間ＴＰＨＡＳＥ１に達したならば（図２の時刻ｔ４）、ステップＳ５５に進む。ステップＳ５５において、第３のアップカウントタイマＴＭ３の値が、第２の大気開放期間ＴＯＴＡ２より大きいかどうかを判断する。最初にこのステップを実行するとき、この判断はＮＯであるので、ステップＳ５６においてベントシャット弁を開く（時刻ｔ４）。ステップＳ５７において、第４のアップカウントタイマＴＭ４にゼロをセットし、このルーチンを抜ける。第４のアップカウントタイマＴＭ４は、第２の判定期間ＴＰＨＡＳＥ２を計測するためのタイマである。
【００６２】
このルーチンに入ったとき、ステップＳ５５において、第３のアップカウントタイマＴＭ３の値が第２の大気開放期間ＴＯＴＡ２に達したならば（図２の時刻ｔ５）、ステップ６１（図９）に進む。ステップＳ６１において、第４のアップカウントタイマＴＭ４の値が、第２の判定期間ＴＰＨＡＳＥ２より大きいかどうかを判断する。最初にこのステップを実行するとき、この判断はＮＯであるので、ステップＳ６２においてベントシャット弁３８を閉じる。ステップＳ６３に進み、タンク内圧ＰＴＡＮＫが第２の所定タンク内圧ＰＴＡＮＫ２より低いかどうかを判断する。最初にこのステップを実行するとき、この判断はＮＯとなるので、ステップＳ６５に進み、タンク内圧ＰＴＡＮＫが最小タンク内圧ＰＴＡＮＫＭＩＮより低いかどうかを判断する。最小タンク内圧ＰＴＡＮＫＭＩＮの初期値は、大気圧より高い値を持つように設定されているので、最初にこのステップを実行するとき、この判断はＹＥＳとなる。したがって、現在のタンク内圧ＰＴＡＮＫが最小タンク内圧ＰＴＡＮＫＭＩＮに設定される（Ｓ６６）。ステップＳ６５の判断がＮＯであるときは、このルーチンを終了する。こうして、第２の判定モードにおける最小タンク内圧ＰＴＡＮＫＭＩＮが得られる。
【００６３】
ステップＳ６３の判断がＹＥＳとなったとき（図２の破線Ｌ３および時刻ｔ６を参照）、タンク内圧ＰＴＡＮＫの減少が大きいので、蒸発燃料処理系５０にリークは無いと判定し（Ｓ６４）、リーク判定を終了する。
【００６４】
このルーチンに入ったとき、ステップＳ６１において、第４のアップカウントタイマＴＭ４の値が第２の判定期間ＴＰＨＡＳＥ２に達したならば（時刻ｔ７）、バイパス弁３６を閉じ、ベントシャット弁３８を開く（Ｓ６７）。ステップＳ６８において、最大タンク内圧ＰＴＡＮＫＭＡＸと最小タンク内圧ＰＴＡＮＫＭＩＮとの差ΔＰを算出し、該差ΔＰが、しきい値ΔＰＴＨより大きいかどうかを判断する（Ｓ６９）。ΔＰ＞ΔＰＴＨであるとき、蒸発燃料処理系５０は正常と判定して、リーク判定を終了する（Ｓ７０）。ΔＰ≦ΔＰＴＨであるとき、蒸発燃料処理系５０にはリークがあると判定し、リーク判定を終了する（Ｓ７１）。
【００６５】
図１０は、異常検出フラグＦＣＳを設定する処理のフローチャートである。この処理は、所定時間（たとえば、１００ミリ秒）ごとに実施される。
【００６６】
ステップＳ８１において、図８および図９に示されるリーク判定を実行しているかどうかが判断される。リーク判定を実行していないとき、このルーチンを抜け、リーク判定を実行しているとき、ステップＳ８２〜Ｓ９２の処理を実施する。
【００６７】
ステップＳ８２において、圧力センサ１５（図１）の断線およびショートを検出する処理を実施する。この処理では、圧力センサ１５の出力電圧および出力電流に基づいて、断線またはショートの発生が検出される。ステップＳ８３において、バイパス弁３６の断線およびショートを検出する処理を実行する。この処理では、バイパス弁３６の入力電圧および入力電流に基づいて、断線またはショートの発生が検出される。ステップＳ８４においては、ベントシャット弁３８の断線およびショートを検出する処理を実行する。この処理では、ベントシャット弁３８の入力電圧および入力電流に基づいて、断線またはショートの発生が検出される。
【００６８】
ステップＳ８５において、圧力センサ１５の断線が検出されたかどうかを判断する。ステップＳ８６において、圧力センサ１５のショートが検出されたかどうかを判断する。ステップＳ８７において、バイパス弁３６の断線が検出されたかどうかを判断する。ステップＳ８８において、バイパス弁３６のショートが検出されたかどうかを判断する。ステップＳ８９において、ベントシャット弁３８の断線が検出されたかどうかを判断する。ステップＳ９０において、ベントシャット弁３８のショートが検出されたかどうかを判断する。ステップＳ８５〜Ｓ９０のいずれかにおいて、断線またはショートが検出されたならば、ステップＳ９２において、異常検出フラグＦＣＳを１に設定する。ステップＳ８５〜Ｓ９０のすべての判断がＮＯであるとき、異常検出フラグＦＣＳをゼロに設定する（Ｓ９１）。
【００６９】
このように、リーク判定の実施に直接関わる圧力センサ１５、バイパス弁３６およびベントシャット弁３８の断線またはショートが検出されたときは、リーク判定の実施が禁止されるので、誤判定の発生を防止することができる。
【００７０】
他の実施形態では、吸気温センサ１４によって検出される吸気温を、外気温ＴＡＴとして用いても良い。また、圧力センサ１５を、燃料タンク９に設けてもよい。
【００７１】
本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンにも適用が可能である。
【００７２】
【発明の効果】
この発明によれば、内燃機関停止後のリーク判定の精度を向上させることができる。
【図面の簡単な説明】
【図１】この発明の一実施例に従う、蒸発燃料処理装置および内燃機関の制御装置を概略的に示す図。
【図２】この発明の一実施例に従う、リーク判定の概要を説明するためのタイムチャートを示す図。
【図３】この発明の一実施例に従う、リーク判定装置の機能ブロック図。
【図４】この発明の一実施例に従う、第１の燃料レベルの推移を示す図。
【図５】この発明の一実施例に従う、第２の燃料レベルの推移を示す図。
【図６】この発明の一実施例に従う、燃料レベルを算出する処理のフローチャート。
【図７】この発明の一実施例に従う、リーク判定許可フラグを設定する処理のフローチャート。
【図８】この発明の一実施例に従う、リーク判定処理のフローチャート。
【図９】この発明の一実施例に従う、リーク判定処理のフローチャート。
【図１０】この発明の一実施例に従う、異常検出フラグを設定する処理のフローチャート。
【符号の説明】
１  エンジン                ５  ＥＣＵ
６  燃料噴射弁              ９  燃料タンク
３４  パージ制御弁        ３６  バイパス弁
３８  ベントシャット弁    ４５  燃料レベルセンサ
【図１】
0003808797.tif 000004
【図２】
0003808797.tif 000005
【図３】
0003808797.tif 000006
【図４】
0003808797.tif 000007
【図５】
0003808797.tif 000008
【図６】
0003808797.tif 000009
【図７】
0003808797.tif 000010
【図８】
0003808797.tif 000011
【図９】
0003808797.tif 000012
【図１０】
0003808797.tif 000013