(57)【要約】【課題】内燃機関の冷間始動時から所定時間運転が継続したとき故障診断実行条件が成立する場合に、故障診断の精度を低下させることなく実行頻度を高めることができる故障診断装置を提供する。【解決手段】内燃機関の冷間始動時から所定運転時間ＴＲＵＮＪＵＤより長く、機関運転が継続されると、故障診断の実施が許可される（Ｓ１１６，Ｓ１２２，Ｓ１２３，Ｓ１２５）。冷間始動時から所定運転時間ＴＲＵＮＪＵＤが経過する前に機関が停止された場合であっても、その停止時間ＴＳＯＡＫＺ、または停止時間ＴＳＯＡＫＺの積算値ＴＳＯＡＫが、判定時間ＴＳＯＡＫＪＵＤ以下であるときは（ＦＬＯＮＧＳＯＡＫ＝０）、冷間始動時から運転時間の計測を開始した運転時間カウンタＴＲＵＮをリセットすることなく、温間再始動時に運転時間の計測が再開される（Ｓ１１７，Ｓ１１９）。【選択図】　図３
2004124868.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の冷間始動時からの機関運転時間を計測する計測手段と、該計測手段により計測される機関運転時間が所定時間を超えたとき、故障診断の実施を許可する診断許可手段と、イグニッションスイッチがオンされた時点から次にイグニッションスイッチがオンされるまでの期間を１ドライビングサイクルとして定義した場合において、前記診断許可手段により故障診断が許可された後、当該ドライビングサイクル中に１回、前記機関の制御デバイスの故障診断を実行する故障診断手段とを備える内燃機関制御デバイスの故障診断装置において、
前記計測手段は、前記機関の温間再始動時においては、前記機関の停止時間が所定停止時間より短いとき、または前記停止時間の積算値が所定積算値より小さいときは、前回計測された機関運転時間を初期値として前記機関運転時間の計測を再開することを特徴とする内燃機関制御デバイスの故障診断装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関に取り付けられる制御デバイス、具体的には例えば蒸発燃料処理装置の故障診断を行う故障診断装置に関する。
【０００２】
【従来の技術】
燃料タンク内で発生する蒸発燃料を一時的に貯蔵し、貯蔵した蒸発燃料を内燃機関に供給する蒸発燃料処理装置において、漏れが発生すると大気中に蒸発燃料が放出されるため、種々の漏れ判定手法が提案されている。例えば特許文献１には、燃料タンク内で発生する蒸発燃料の影響を排除して、より正確な判定を行うために、内燃機関の冷間始動直後にのみ漏れの判定を行う手法が示されている。
【０００３】
蒸発燃料処理装置の故障（漏れ）はいつ発生するかは不明であるため、故障診断の実行頻度を高めて、故障の発生を迅速に検出することが要求されている。したがって、冷間始動直後のみに限定していると、この要求を満たすことはできない。例えば機関停止後においても、蒸発燃料処理装置の故障診断を行うことにより、故障診断の実行頻度を高めることが考えられる。機関停止後に蒸発燃料処理装置の故障診断を行う手法は、特許文献２に示されている。
【０００４】
【特許文献１】
特許第２６９９７７４号公報
【特許文献２】
特開平１１−３３６６２６号公報
【０００５】
【発明が解決しようとする課題】
機関停止後に故障診断を実行する場合に、診断の精度を向上させるためには、機関の運転により、燃料タンク内の温度が十分に上昇した状態で故障診断を実行することが必要である。そのため、冷間始動時から所定時間継続して機関が作動した場合に、機関停止後の故障診断の実行を許可することにより、故障診断の精度を向上させることができる。
【０００６】
その故障診断実行条件を採用した場合に、前記所定時間に満たない短時間の運転が繰り返されると、機関が停止しても故障診断を実行できない状態が長くつづくことがある。
【０００７】
図９は、このような状態を説明するためのタイムチャートであり、Ｄ１からＤ４が機関の運転期間を示す。運転期間Ｄ４は前記所定時間より長いため、故障診断実行条件が満たされ、時刻ｔ７の直後に故障診断が実行される。一方を時刻ｔ０からｔ５まで時間は、前記所定時間より長いが、運転の中断（ｔ１〜ｔ２，ｔ３〜ｔ４）があるため、故障診断実行条件が満たされず、故障診断が実行されない。
【０００８】
本発明はこの点に着目してなされたものであり、内燃機関の冷間始動時から所定時間運転が継続したとき故障診断実行条件が成立する場合に、故障診断の精度を低下させることなく実行頻度を高めることができる故障診断装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するため請求項１に記載の発明は、内燃機関の冷間始動時からの機関運転時間（ＴＲＵＮ）を計測する計測手段と、該計測手段により計測される機関運転時間（ＴＲＵＮ）が所定時間（ＴＲＵＮＪＵＤ）を超えたとき、故障診断の実施を許可する診断許可手段と、イグニッションスイッチがオンされた時点から次にイグニッションスイッチがオンされるまでの期間を１ドライビングサイクルとして定義した場合において、前記診断許可手段により故障診断が許可された後、当該ドライビングサイクル中に１回、前記機関の制御デバイスの故障診断を実行する故障診断手段とを備える内燃機関制御デバイスの故障診断装置において、前記計測手段は、前記機関の温間再始動時においては、前記機関の停止時間（ＴＳＯＡＫＺ）が所定停止時間（ＴＳＯＡＫＪＵＤ）より短いとき、または前記停止時間の積算値（ＴＳＯＡＫ）が所定積算値（ＴＳＯＡＫＪＵＤ，ＴＳＯＡＫＪＵＤ２）より小さいときは、前回計測された機関運転時間を初期値として前記機関運転時間の計測を再開することを特徴とする。
【００１０】
この構成によれば、冷間始動時からの機関運転時間が計測され、温間始動時において、機関停止時間が所定停止時間より短いとき、または前記停止時間の積算値が所定積算値より小さいときは、前回の機関運転時間を初期値として機関運転時間の計測が再開される。機関停止時間が所定停止時間より短いとき、または前記停止時間の積算値が所定積算値より小さいときは、機関停止を無視して機関運転時間を連続して計測しても、故障診断の精度は低下しない。したがって、そのようなときには、前回計測された機関運転時間を初期値として前記機関運転時間の計測を再開することにより、故障診断の実行頻度を増加させることができる。その結果、内燃機関制御デバイスで発生する故障を迅速に検出することができる。
【００１１】
【発明の実施の形態】
以下本発明の実施の形態を図面を参照して説明する。
図１は、本発明の一実施形態に係る蒸発燃料処理装置及び内燃機関の制御装置の構成を示す図である。同図において、１は例えば４気筒を有する内燃機関（以下単に「エンジン」という）であり、エンジン１の吸気管２の途中にはスロットル弁３が配されている。また、スロットル弁３にはスロットル弁開度（ＴＨＡ）センサ４が連結されており、当該スロットル弁３の開度に応じた電気信号を出力して電子コントロールユニット（以下「ＥＣＵ」という）５に供給する。
【００１２】
燃料噴射弁６は、吸気管２の途中であってエンジン１とスロットル弁３との間の図示しない吸気弁の少し上流側に各気筒毎に設けられている。また、各燃料噴射弁６は燃料供給管７を介して燃料タンク９に接続されており、燃料供給管７の途中には燃料ポンプ８が設けられている。燃料タンク９は給油のための給油口１０を有しており、給油口１０にはフィラーキャップ１１が取付けられている。
【００１３】
燃料噴射弁６はＥＣＵ５に電気的に接続され、該ＥＣＵ５からの信号によりその開弁時間が制御される。吸気管２のスロットル弁３の下流側には吸気管内絶対圧ＰＢＡを検出する吸気管内絶対圧（ＰＢＡ）センサ１３、及び吸気温ＴＡを検出する吸気温（ＴＡ）センサ１４が装着されている。
【００１４】
エンジン１の図示しないカム軸周囲又はクランク軸周囲にはエンジン回転数を検出するエンジン回転数（ＮＥ）センサ１７が取付けられている。エンジン回転数センサ１７はエンジン１のクランク軸の１８０度回転毎に所定のクランク角度位置でパルス（ＴＤＣ信号パルス）を出力する。エンジン１の冷却水温ＴＷを検出するエンジン水温センサ１８及びエンジン１の排気中の酸素濃度を検出する酸素濃度センサ（以下「ＬＡＦセンサ」という）１９が設けれられており、これらのセンサ１３〜１９の検出信号はＥＣＵ５に供給される。ＬＡＦセンサ１９は、排気中の酸素濃度（エンジン１に供給される混合気の空燃比）にほぼ比例する信号を出力する広域空燃比センサとして機能するものである。
【００１５】
ＥＣＵ５にはさらに、イグニッションスイッチ４２が接続されており、イグニッションスイッチ４２の切替信号がＥＣＵ５に供給される。
燃料タンク９は、チャージ通路３１を介してキャニスタ３３に接続され、キャニスタ３３は、吸気管２のスロットル弁３の下流側にパージ通路３２を介して接続されている。
【００１６】
チャージ通路３１には、二方向弁３５が設けられている。二方向弁３５は、燃料タンク９内の圧力が大気圧より第１所定圧（例えば２．７ｋＰａ（２０ｍｍＨｇ））以上高いとき開弁する正圧弁と、燃料タンク９内の圧力がキャニスタ３３内の圧力より第２所定圧以上低いとき開弁する負圧弁とからなる。
【００１７】
二方向弁３５をバイパスするバイパス通路３１ａが設けられており、バイパス通路３１ａには、バイバス弁（開閉弁）３６が設けられている。バイパス弁３６は、通常は閉弁状態とされ、後述する故障診断実行中開閉される電磁弁であり、その動作はＥＣＵ５により制御される。
【００１８】
チャージ通路３１には、二方向弁３５と燃料タンク９との間に圧力センサ１５が設けられており、その検出信号はＥＣＵ５に供給される。圧力センサ１５の出力ＰＴＡＮＫは、キャニスタ３３及び燃料タンク９内の圧力が安定している定常状態では、燃料タンク内の圧力に等しくなるが、キャニスタ３３または燃料タンク９内の圧力が変化しているとき、実際のタンク内圧とは異なる圧力を示す。以下の説明では、圧力センサ１５の出力を「タンク内圧ＰＴＡＮＫ」という。
【００１９】
キャニスタ３３は、燃料タンク９内の蒸発燃料を吸着するための活性炭を内蔵する。キャニスタ３３には、空気通路３７が接続されており、キャニスタ３３は空気通路３７を介して大気に連通可能となっている。
空気通路３７の途中にはベントシャット弁（開閉弁）３８が設けられている。ベントシャット弁３８は、ＥＣＵ５によりその作動が制御される電磁弁であり、給油時またはパージ実行中に開弁される。またベントシャット弁３８は、後述する故障診断実行時に開閉される。ベントシャット弁３８は、駆動信号が供給されないときは、開弁する常開型の電磁弁である。
【００２０】
パージ通路３２のキャニスタ３３と吸気管２との間には、パージ制御弁３４が設けられている。パージ制御弁３４は、その制御信号のオン−オフデューティ比（制御弁の開度）を変更することにより流量を連続的に制御することができるように構成された電磁弁であり、その作動はＥＣＵ５により制御される。
燃料タンク９、チャージ通路３１、バイパス通路３１ａ、キャニスタ３３、パージ通路３２、二方向弁３５、バイパス弁３６、パージ制御弁３４、空気通路３７、及びベントシャット弁３８により、蒸発燃料処理装置４０が構成される。
【００２１】
本実施形態では、イグニッションスイッチ４２がオフされても、後述する故障診断を実行する期間中は、ＥＣＵ５、バイパス弁３６及びベントシャット弁３８には電源が供給される。なおパージ制御弁３４は、イグニッションスイッチ４２がオフされると、電源が供給されなくなり、閉弁状態を維持する。
【００２２】
燃料タンク９の給油時に蒸発燃料が大量に発生すると、二方向弁３５が開弁し、キャニスタ３３に蒸発燃料が貯蔵される。エンジン１の所定運転状態において、パージ制御弁３４のデューティ制御が行われ、適量の蒸発燃料がキャニスタ３３から吸気管２に供給される。
【００２３】
ＥＣＵ５は各種センサ等からの入力信号波形を整形し、電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する等の機能を有する入力回路、中央演算処理ユニット（以下「ＣＰＵ」という）、ＣＰＵで実行される演算プログラム及び演算結果等を記憶する記憶回路のほか、燃料噴射弁６、パージ制御弁３４、バイパス弁３６及びベントシャット弁３８に駆動信号を供給する出力回路等から構成される。
【００２４】
ＥＣＵ５のＣＰＵは、エンジン回転数センサ１７、吸気管内絶対圧センサ１３、エンジン水温センサ１８などの各種センサの出力信号に応じてエンジン１に供給する燃料量制御、パージ制御弁のデューティ制御等を行う。
【００２５】
図２は、エンジン停止後に実行される故障診断を説明するためのタイムチャートである。なお、タンク内圧ＰＴＡＮＫは実際には絶対圧として検出されるが、図２では大気圧を基準とした差圧で示されている。
エンジンが停止すると、バイパス弁（ＢＰＶ）３６が開弁され、ベントシャット弁（ＶＳＶ）３８の開弁状態が維持される（時刻ｔ１）。これにより、蒸発燃料処理装置４０が大気に開放され、タンク内圧ＰＴＡＮＫは大気圧と等しくなる。なお、パージ制御弁３４はエンジン停止時に閉弁する。
【００２６】
時刻ｔ２から第１判定モードが開始される。すなわち、ベントシャット弁３８が閉弁され、蒸発燃料処理装置４０が閉じた状態とされる。この状態は第１判定時間ＴＰＨＡＳＥ１（例えば９００秒）に亘って維持される。タンク内圧ＰＴＡＮＫは破線Ｌ１で示すように第１所定タンク内圧ＰＴＡＮＫ１（例えば大気圧＋１．３ｋＰａ（１０ｍｍＨｇ））を越えて上昇したときは、直ちに蒸発燃料処理装置４０は正常（漏れが無い）と判定される（時刻ｔ３）。タンク内圧ＰＴＡＮＫが実線Ｌ２で示すように変化したときは、最大タンク内圧ＰＴＡＮＫＭＡＸが記憶される（時刻ｔ４）。
【００２７】
次にベントシャット弁３８が開弁され（時刻ｔ４）、蒸発燃料処理装置が大気に開放される。
時刻ｔ５から第２判定モードが開始される。すなわちベントシャット弁３８が閉弁され、この状態が第２判定時間ＴＰＨＡＳＥ２（例えば２４００秒）に亘って維持される。タンク内圧ＰＴＡＮＫが破線Ｌ３で示すように第２所定タンク内圧ＰＴＡＮＫ２（例えば大気圧−１．３ｋＰａ（１０ｍｍＨｇ））より低くなったときは（時刻ｔ６）、直ちに蒸発燃料処理装置４０は正常（漏れが無い）と判定される。タンク内圧ＰＴＡＮＫが実線Ｌ４で示すように変化したときは、最小タンク内圧ＰＴＡＮＫＭＩＮが記憶される（時刻ｔ７）。
【００２８】
時刻ｔ７においてバイパス弁３６が閉弁されるとともに、ベントシャット弁３８が開弁される。記憶した最大タンク内圧ＰＴＡＮＫＭＡＸと最小タンク内圧ＰＴＡＮＫＭＩＮとの圧力差ΔＰが判定閾値ΔＰＴＨより大きいときは、蒸発燃料処理装置４０は正常と判定され、圧力差ΔＰが判定閾値ΔＰＴＨ以下であるときは、蒸発燃料処理装置４０は故障した（漏れが有る）と判定される。漏れが有る場合には、タンク内圧ＰＴＡＮＫは大気圧からの変化量が小さくなり、圧力差ΔＰが小さくなるからである。
【００２９】
図３は、故障診断実行条件の判定を行う処理のフローチャートである。この処理は、所定時間（例えば１秒）毎にＥＣＵ５のＣＰＵで実行される。
ステップＳ１１１では、エンジン１の運転モードが始動モードであるか否か、すなわちエンジン１のクランキング中であるか否かを判別する。始動モードであるときは、コールドスタート（冷間始動）か否かを判別する（ステップＳ１１２）。例えば、エンジン水温ＴＷと吸気温ＴＡとの差が所定温度差（例えば６°Ｃ）より小さく、かつ吸気温ＴＡが所定温度（例えば３０°Ｃ）以下であるとき、今回の始動はコールドスタートであると判定される。
【００３０】
コールドスタートであるときは、コールドスタートフラグＦＣＯＬＤＳＴＡＲＴを「１」に設定するとともに、診断未了フラグＦＭＣＮＤＥＶＰを「１」に設定する（ステップＳ１１３）。診断未了フラグＦＭＣＮＤＥＶＰは、故障診断が終了したとき、または比較的長いエンジン停止時間の後のホットリスタート時に「０」に設定される（ステップＳ１２８，Ｓ１１８参照）。
【００３１】
ステップＳ１１４では、運転時間カウンタＴＲＵＮの値を「０」に設定する。一方コールドスタートではないとき、すなわちホットリスタート（温間再始動）であるときは、コールドスタートフラグＦＣＯＬＤＳＴＡＲＴを「０」に設定する（ステップＳ１１５）。
【００３２】
エンジン１の始動が完了すると、ステップＳ１１１からステップＳ１１６に進み、コールドスタートフラグＦＣＯＬＤＳＴＡＲＴが「１」であるか否かを判別する。ＦＣＯＬＤＳＴＡＲＴ＝１であってコールドスタート後であるときは、運転時間カウンタＴＲＵＮを「１」だけインクリメントする（ステップＳ１２２）。ステップＳ１２３では、運転時間カウンタＴＲＵＮの値が所定運転時間ＴＲＵＮＪＵＤ（例えば５〜２０分）より大きいか否かを判別する。ＴＲＵＮ≦ＴＲＵＮＪＵＤである間は、ステップＳ１２４に進み、第１の診断許可フラグＦＥＶＰＬＫＭ及び第２の診断許可フラグＦＥＯＮＶＭをともに「０」に設定する。
【００３３】
運転時間カウンタＴＲＵＮの値が所定運転時間ＴＲＵＮＪＵＤを超えると、ステップＳ１２３からステップＳ１２５に進み、第１及び第２の診断許可フラグＦＥＶＰＬＫＭ及びＦＥＯＮＶＭをともに「１」に設定する。第１の診断許可フラグＦＥＶＰＬＫＭが「１」に設定されると、エンジン運転中における蒸発燃料処理装置４０の故障診断が許可され、第２の診断許可フラグＦＥＯＮＶＭが「１」に設定されると、エンジン停止直後の蒸発燃料処理装置４０の故障診断が許可される。
【００３４】
ステップＳ１２６では、今回のドライビングサイクルにおいて故障診断が完了したか否かを判別し、完了していなければ直ちに本処理を終了する。故障診断が完了したときは、運転時間カウンタＴＲＵＮの値を「０」に戻す（ステップＳ１２７）とともに、診断未了フラグＦＭＣＮＤＥＶＰを「０」に設定する（ステップＳ１２８）。
【００３５】
なお、本明細書中においては、「ドライビングサイクル」とは、イグニッションスイッチがオンされた時点から、次にイグニッションスイッチがオンされるまでの期間をいう。すなわち、１ドライビングサイクルは、エンジン１の１運転期間と、次に運転が開始されるまでの１停止期間とからなる。
【００３６】
ステップＳ１１６でＦＣＯＬＤＳＴＡＲＴが「０」であるときは、すなわちホットリスタート後であるときは、図４の処理で設定される停止時間フラグＦＬＯＮＧＳＯＡＫ「１」であるか否かをを判別する（ステップＳ１１７）。停止時間フラグＦＬＯＮＧＳＯＡＫは、エンジン１の停止時間ＴＳＯＡＫＺ、または低時間ＴＳＯＡＫＺの積算値ＴＳＯＡＫが、判定時間ＴＳＯＡＫＪＵＤより長いとき「１」に設定される。
【００３７】
ステップＳ１１７で、ＦＬＯＮＧＳＯＡＫ＝０であって、停止時間ＴＳＯＡＫＺまたは積算値ＴＳＯＡＫが判定時間ＴＳＯＡＫＪＵＤより小さいときは、診断未了フラグＦＭＣＮＤＥＶＰが「１」であるか否かを判別する（ステップＳ１１９）。ＦＭＣＮＤＥＶＰ＝１であって故障診断が完了していないときは、前記ステップＳ１２２に進む。これにより、ホットリスタート後であっても、エンジン１の停止時間ＴＳＯＡＫＺまたは停止時間ＴＳＯＡＫＺの積算値ＴＳＯＡＫが比較的小さいときは、コールドスタート時からの運転時間が継続してカウントされる。
【００３８】
ステップＳ１１７でＦＬＯＮＧＳＯＡＫ＝１であって、エンジン停止時間が比較的長いときは、診断未了フラグＦＭＣＮＤＥＶＰを「０」に戻して（ステップＳ１１８）、ステップＳ１２０に進む。
ステップＳ１１９でＦＭＣＮＤＥＶＰ＝０であって、今回のドライビングサイクルにおける故障診断が完了しているときは、ステップＳ１２０に進み、運転時間カウンタＴＲＵＮの値を「０」に戻す。続くステップＳ１２１は、第１及び第２の診断許可フラグＦＥＶＰＬＫＭ及びＦＥＯＮＶＭをともに「０」に設定する。
【００３９】
図４は、図３のステップＳ１１７で参照される停止時間フラグＦＬＯＮＧＳＯＡＫの設定を行う処理のフローチャートである。この処理は、所定時間（例えば１秒）毎に、ＥＣＵ５のＣＰＵで実行される。
ステップＳ１３１では、エンジン停止直後のＥＣＵセルフシャットダウン処理中であるか否かを判別する。ＥＣＵ５は、イグニッションスイッチ４２がオフされると、セルフシャットダウン処理を実行し、その後電源の供給を停止させる。ただし、エンジン停止後に故障診断を実行するときは、故障診断終了後にセルフシャットダウン処理が実行される。
【００４０】
セルフシャットダウン処理中であるときは、エンジンの停止時間を計測する停止時間タイマＴＭＳＴＯＰをリセットし（ステップＳ１３２）、次いで停止時間ＴＳＯＡＫＺを「０」に設定する（ステップＳ１４１）。停止時間タイマＴＭＳＴＯＰは、ＥＣＵ５内に設けられており、常時電源が供給されている。そして、ＥＣＵ５のＣＰＵは、停止時間タイマＴＭＳＴＯＰの値を読みとってメモリに格納すること、及び停止時間タイマＴＭＳＴＯＰのリセットを行う。停止時間タイマＴＭＳＴＯＰがリセットされるのは、イグニッションスイッチ４２がオフされた直後にステップＳ１３２が実行されるときのみである。
【００４１】
セルフシャットダウン処理中でないときは、エンジン１の運転モードが始動モードであるか否かを判別する（ステップＳ１３３）。始動モードであるときは、停止時間判定終了フラグＦＳＫＴＭＣＡＬが「１」であるか否かを判別する（ステップＳ１３４）。最初は、ＦＳＫＴＭＣＡＬ＝０であるので、ステップＳ１３５に進み、停止時間タイマＴＭＳＴＯＰの指示値を、停止時間ＴＳＯＡＫＺとして読み込む。
【００４２】
ステップＳ１３６では、吸気温ＴＡに応じて図５（ａ）に示すＴＳＯＡＫＪＵＤテーブルを検索し、判定時間ＴＳＯＡＫＪＵＤを算出する。ＴＳＯＡＫＪＵＤテーブルは、吸気温ＴＡが高くなるほど、判定時間ＴＳＯＡＫＪＵＤが長くなるように設定されている。
【００４３】
ステップＳ１３７では、停止時間ＴＳＯＡＫＺが判定時間ＴＳＯＡＫＪＵＤより長いか否かを判別し、ＴＳＯＡＫＺ≦ＴＳＯＡＫＪＵＤであるときは、下記式により、停止時間ＴＳＯＡＫＺの積算値ＴＳＯＡＫを算出する（ステップＳ１３８）。積算値ＴＳＯＡＫは、イグニッションスイッチ４２がオフされても、メモリに格納されている値が保持される。
ＴＳＯＡＫ＝ＴＳＯＡＫ＋ＴＳＯＡＫＺ
【００４４】
ステップＳ１３９では、積算値ＴＳＯＡＫが判定時間ＴＳＯＡＫＪＵＤより大きいか否かを判別し、ＴＳＯＡＫ≦ＴＳＯＡＫＪＵＤであるときは、停止時間フラグＦＬＯＮＧＳＯＡＫを「０」に設定するとともに、停止時間判定終了フラグＦＳＫＴＭＣＡＬを「１」に設定する（ステップＳ１４３）。
【００４５】
一方、ステップＳ１３６またはＳ１３９の答が肯定（ＹＥＳ）であるとき、すなわちＴＳＯＡＫＺ＞ＴＳＯＡＫＪＵＤであるとき、またはＴＳＯＡＫ＞ＴＳＯＡＫＪＵＤであるときは、停止時間フラグＦＬＯＮＧＳＯＡＫを「１」に設定するとともに、停止時間判定終了フラグＦＳＫＴＭＣＡＬを「１」に設定する（ステップＳ１４０）。ステップＳ１４１では、積算値ＴＳＯＡＫを「０」に設定し、前記ステップＳ１４２に進む。
【００４６】
始動モードでないとき、または停止時間判定終了フラグＦＳＫＴＭＣＡＬが「１」に設定されたときは、ステップＳ１４４に進み、今回のドライビングサイクルにおける故障診断が完了したか否かを判別する。完了していないときは直ちに本処理を終了する。完了したときは、積算値ＴＳＯＡＫ及び停止時間ＴＳＯＡＫＺをともに「０」に戻す（ステップＳ１４５）。
【００４７】
以上のように図３及び図４の処理によれば、エンジン１のコールドスタート時から所定運転時間ＴＲＵＮＪＵＤより長くエンジン運転が継続されると、故障診断の実施が許可される。また、コールドスタート時から所定運転時間ＴＲＵＮＪＵＤが経過する前にエンジン１が停止された場合であっても、その停止時間ＴＳＯＡＫＺ、または積算値ＴＳＯＡＫが、判定時間ＴＳＯＡＫＪＵＤ以下であるときは（ＦＬＯＮＧＳＯＡＫ＝０）、コールドスタート時から運転時間の計測を開始した運転時間カウンタＴＲＵＮをリセットすることなく（前回運転時までに計測された運転時間を初期値として）、ホットリスタート時に運転時間の計測が再開される。したがって、例えば図９の時刻ｔ０〜ｔ５に示すような運転が行われた場合でも、時刻ｔ５の直後に故障診断が実行され、故障診断の実行頻度を高めることができる。
【００４８】
図６及び７はエンジン停止後に故障診断を実行する処理のフローチャートである。この処理は、所定時間（例えば１００ミリ秒）毎にＥＣＵ５のＣＰＵで実行される。
ステップＳ２１では、エンジン１が停止したか否かを判別する。エンジン１が作動中であるときは、第１アップカウントタイマＴＭ１の値を「０」にセットし（ステップＳ２３）、本処理を終了する。エンジン１が停止すると、ステップＳ２１からステップＳ２２に進み、第２の診断許可フラグＦＥＯＮＶＭが「１」であるか否かを判別する。ＦＥＯＮＶＭ＝０であるときは前記ステップＳ２３に進み、ＦＥＯＮＶＭ＝１であるときは、第１アップカウントタイマＴＭ１の値が第１大気開放時間ＴＯＴＡ１（例えば１２０秒）を越えたか否かを判別する（ステップＳ２４）。最初はこの答は否定（ＮＯ）であるので、バイパス弁３６を開弁し、ベントシャット弁３８の開弁状態を維持する（ステップＳ２５）（図２，時刻ｔ１）。次いで第２アップカウントタイマＴＭ２の値を「０」に設定し（ステップＳ２６）、本処理を終了する。
【００４９】
第１アップカウントタイマＴＭ１の値が第１大気開放時間ＴＯＴＡ１に達すると（時刻ｔ２）、ステップＳ２４からステップＳ２７に進み、第２アップカウントタイマＴＭ２の値が第１判定時間ＴＰＨＡＳＥ１より大きいか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ベントシャット弁３８を閉弁し（ステップＳ２８）、タンク内圧ＰＴＡＮＫが第１所定タンク内圧ＰＴＡＮＫ１より高いか否かを判別する（ステップＳ２９）。最初はこの答は否定（ＮＯ）となるので、第３アップカウントタイマＴＭ３の値を「０」に設定し（ステップＳ３１）、タンク内圧ＰＴＡＮＫが最大タンク内圧ＰＴＡＮＫＭＡＸより高いか否かを判別する（ステップＳ３２）。最大タンク内圧ＰＴＡＮＫＭＡＸの初期値は、大気圧より低い値に設定されているため、最初はこの答は肯定（ＹＥＳ）となり、そのときのタンク内圧ＰＴＡＮＫが最大タンク内圧ＰＴＡＮＫＭＡＸに設定される（ステップＳ３３）。ステップＳ３２の答が否定（ＮＯ）であるときは、直ちに本処理を終了する。ステップＳ３２及びＳ３３により、第１判定モードにおける最大タンク内圧ＰＴＡＮＫＭＡＸが得られる。
【００５０】
ステップＳ２９の答が肯定（ＹＥＳ）となったときは（図２，破線Ｌ１，時刻ｔ３参照）、タンク内圧ＰＴＡＮＫの上昇速度が大きいので蒸発燃料処理装置４０は正常（漏れは無い）と判定し（ステップＳ３０）、故障診断を終了する。
第２アップカウントタイマＴＭ２の値が第１判定時間ＴＰＨＡＳＥ１に達すると（時刻ｔ４）、ステップＳ２７からステップＳ３４に進む。ステップＳ３４では、第３アップカウントタイマＴＭ３の値が第２大気開放時間ＴＯＴＡ２（例えば１２０秒）より大きいか否かを判別する。この答は最初は否定（ＮＯ）であるので、ベントシャット弁３８を開弁し（ステップＳ３５）、第４アップカウントタイマＴＭ４の値を「０」に設定し（ステップＳ３６）、本処理を終了する。
【００５１】
第３アップカウントタイマＴＭ３の値が第２大気開放時間ＴＯＴＡ２に達すると（時刻ｔ５）、ステップＳ３４からステップＳ４１（図７）に進み、第４アップカウントタイマＴＭ４の値が第２判定時間ＴＰＨＡＳＥ２より大きいか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ベントシャット弁３８を閉弁し（ステップＳ４２）、タンク内圧ＰＴＡＮＫが第２所定タンク内圧ＰＴＡＮＫ２より低いか否かを判別する（ステップＳ４３）。最初はこの答は否定（ＮＯ）となるので、タンク内圧ＰＴＡＮＫが最小タンク内圧ＰＴＡＮＫＭＩＮより低いか否かを判別する（ステップＳ４５）。最小タンク内圧ＰＴＡＮＫＭＩＮの初期値は、大気圧より高い値に設定されているため、最初はこの答は肯定（ＹＥＳ）となり、そのときのタンク内圧ＰＴＡＮＫが最小タンク内圧ＰＴＡＮＫＭＩＮに設定される（ステップＳ４６）。ステップＳ４５の答が否定（ＮＯ）であるときは、直ちに本処理を終了する。ステップＳ４５及びＳ４６により、第２判定モードにおける最小タンク内圧ＰＴＡＮＫＭＩＮが得られる。
【００５２】
ステップＳ４３の答が肯定（ＹＥＳ）となったときは（図２，破線Ｌ３，時刻ｔ６参照）、タンク内圧ＰＴＡＮＫの減少速度が大きいので蒸発燃料処理装置４０は正常（漏れは無い）と判定し（ステップＳ４４）、故障診断を終了する。
第４アップカウントタイマＴＭ４の値が第２判定時間ＴＰＨＡＳＥ２に達すると（時刻ｔ７）、バイパス弁３６を閉弁するとともにベントシャット弁３８を開弁する（ステップＳ４７）。次いで最大タンク内圧ＰＴＡＮＫＭＡＸと最小タンク内圧ＰＴＡＮＫＭＩＮとの圧力差ΔＰ（ＰＴＡＮＫＭＡＸ−ＰＴＡＮＫＭＩＮ）を算出し（ステップＳ４８）、圧力差ΔＰが判定閾値ΔＰＴＨより大きいか否かを判別する（ステップＳ４９）。その結果、ΔＰ＞ΔＰＴＨであるときは、蒸発燃料処理装置４０は正常と判定して故障診断を終了し（ステップＳ５０）、ΔＰ≦ΔＰＴＨであるときは、蒸発燃料処理装置４０は故障した（漏れが有る）と判定して故障診断を終了する（ステップＳ５１）。
【００５３】
図８は、異常検出フラグＦＣＳの設定を行う処理のフローチャートである。この処理は、ＥＣＵ５のＣＰＵで所定時間（例えば１００ミリ秒）毎に実行される。
ステップＳ６１では、図６及び７の故障診断処理を実行しているか否かを判別し、実行してないときは直ちに本処理を終了する。故障診断処理を実行しているときは、ステップＳ６２〜Ｓ８１の処理を実行する。
【００５４】
ステップＳ６２では、圧力センサ１５の断線・ショート検知処理を実行する。この処理では、圧力センサ１５の出力電圧及び出力電流から、断線またはショートの発生が検出される。ステップＳ６３では、バイパス弁３６の断線・ショート検知処理を実行する。この処理では、バイパス弁３６の入力電圧及び入力電流から、断線またはショートの発生が検出される。ステップＳ６４では、ベントシャット弁３８の断線・ショート検知処理を実行する。この処理では、ベントシャット弁３８の入力電圧及び入力電流から、断線またはショートの発生が検出される。
【００５５】
次いで圧力センサ１５の断線が検出されたか否かを判別し（ステップＳ６５）、検出されていないときは圧力センサ１５のショートが検出されたか否かを判別する（ステップＳ６６）。この答が否定（ＮＯ）であるときは、バイパス弁３６の断線が検出されたか否かを判別し（ステップＳ６７）、検出されていないときはバイパス弁３６のショートが検出されたか否かを判別する（ステップＳ６８）。この答が否定（ＮＯ）であるときは、ベントシャット弁３８の断線が検出されたか否かを判別し（ステップＳ６９）、検出されていないときはベントシャット弁３８のショートが検出されたか否かを判別する（ステップＳ７０）。
【００５６】
そして、ステップＳ６５〜Ｓ７０のいずれかの答が肯定（ＹＥＳ）であるときは、異常検出フラグＦＣＳを「１」に設定し（ステップＳ８１）、ステップＳ６５〜Ｓ７０の全ての答が否定（ＮＯ）であるときは、異常検出フラグＦＣＳを「０」に設定する（ステップＳ８０）。
【００５７】
このように、故障診断の実行に直接関わる圧力センサ１５、バイパス弁３６またはベントシャット弁３８の断線またはショートが検出されたときは、異常検出フラグＦＣＳが「１」に設定され、故障診断が禁止されるので、圧力センサ１５、バイパス弁３６またはベントシャット弁３８の故障によって、誤判定が発生することを防止することができる。
【００５８】
なお、第１の診断許可ＦＥＶＰＬＫＭが「１」に設定されると、エンジン１の運転中に所定の診断実行条件が満たされたときに、蒸発燃料処理装置４０の故障診断が実行される。
【００５９】
本実施形態では、ＥＣＵ５が計測手段、診断許可手段、及び故障診断手段を構成する。より具体的には、図３のステップＳ１１２〜Ｓ１１４，Ｓ１１６及びＳ１２２が計測手段に相当し、同図のステップＳ１２３及びＳ１２５が診断許可手段に相当し、図６及び図７処理が故障診断手段に相当する。
【００６０】
なお上述した実施形態では、図４のステップＳ１３７及びＳ１３９で参照される判定時間ＴＳＯＡＫＪＵＤを吸気温ＴＡに応じて設定するようにたが、図５（ｂ）に示すように、エンジン１により駆動される車両の走行時間ＴＤＲＶ、または走行距離ＤＤＲＶ、または燃料消費量ＱＦＵＥＬに応じて設定するようにしてもよい。
また図４のステップＳ１３９では、判定時間ＴＳＯＡＫより大きい第２の判定時間ＴＳＯＡＫＪＵＤ２を採用し、積算値ＴＳＯＡＫが、第２の判定時間ＴＳＯＡＫＪＵＤ２より大きいか否かを判別するようにしてもよい。第２の判定時間ＴＳＯＡＫＪＵＤ２も、吸気温ＴＡ、走行時間ＴＤＲＶ、走行距離ＤＤＲＶ、または燃料消費量ＱＦＵＥＬに応じて、図５に示すように設定される。
【００６１】
また、圧力センサ１５はチャージ通路３１に設けたが、燃料タンク９に設けるようにしてもよい。
また本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンなどの制御デバイスの故障診断にも適用が可能である。
【００６２】
【発明の効果】
以上詳述したように請求項１に記載の発明によれば、冷間始動時からの機関運転時間が計測され、温間始動時において、機関停止時間が所定停止時間より短いとき、または前記停止時間の積算値が所定積算値より小さいときは、前回の機関運転時間を初期値として機関運転時間の計測が再開される。機関停止時間が所定停止時間より短いとき、または前記停止時間の積算値が所定積算値より小さいときは、機関停止を無視して機関運転時間を連続して計測しても、故障診断の精度は低下しない。したがって、そのようなときには、前回計測された機関運転時間を初期値として前記機関運転時間の計測を再開することにより、故障診断の実行頻度を増加させることができる。その結果、内燃機関制御デバイスで発生する故障を迅速に検出することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態にかかる蒸発燃料処理装置及び内燃機関の制御装置の構成を示す図である。
【図２】故障診断の概要を説明するためのタイムチャートである。
【図３】故障診断実行条件を判定する処理のフローチャートである。
【図４】図３の処理で参照されるフラグ（ＦＬＯＮＧＳＯＡＫ）の設定を行う処理のフローチャートである。
【図５】図４の処理で使用されるテーブルを示す図である。
【図６】故障診断を実行する処理のフローチャートである。
【図７】故障診断を実行する処理のフローチャートである。
【図８】異常検出フラグ（ＦＣＳ）の設定を行う処理のフローチャートである。
【図９】発明が解決すべき課題を説明するためのタイムチャートである。
【符号の説明】
１　内燃機関
２　吸気管
５　電子コントロールユニット（計測手段、診断許可手段、故障診断手段）
４０　蒸発燃料処理装置（機関制御デバイス）
４２　イグニッションスイッチ
【図１】
2004124868.tif 000003
【図２】
2004124868.tif 000004
【図３】
2004124868.tif 000005
【図４】
2004124868.tif 000006
【図５】
2004124868.tif 000007
【図６】
2004124868.tif 000008
【図７】
2004124868.tif 000009
【図８】
2004124868.tif 000010
【図９】
2004124868.tif 000011