(57)【特許請求の範囲】
【請求項１】
燃料タンク内に発生した蒸発燃料の、内燃機関の吸気系にパージする流量を制御するための内燃機関の蒸発燃料制御装置において、
前記内燃機関の現在の運転状態を検出する運転状態検出手段と、
前記検出された現在の運転状態に基づいて、前記吸気系にパージする燃料についての上限値を算出する上限値算出手段と、
前記吸気系にパージする燃料の量が前記上限値を超えないように、前記蒸発燃料の該吸気系にパージする流量を算出する流量算出手段と、
前記算出された流量の蒸発燃料を、前記吸気系にパージするパージ手段と、
を備える、蒸発燃料制御装置。
【請求項２】
前記パージ手段は、前記算出された流量の蒸発燃料を前記吸気系にパージするパージ制御弁を備えており、
前記パージ制御弁から前記内燃機関の吸気系までの前記蒸発燃料の輸送遅れを算出する輸送遅れ算出手段をさらに有し、
前記輸送遅れに相当する期間だけ遡った時点において前記吸気系にパージされた燃料の量が前記上限値に近ければ、前記流量算出手段は、前記吸気系にパージする蒸発燃料の流量が増えないように、該蒸発燃料の流量を算出する、請求項１に記載の制御装置。
【請求項３】
前記輸送遅れに相当する期間だけ遡った時点における前記吸気系にパージされた燃料の量は、前記輸送遅れに相当する期間だけ遡った時点において前記吸気系にパージされた蒸発燃料の流量に基づいて算出される、請求項２に記載の内燃機関の蒸発燃料制御装置。
【請求項４】
前記輸送遅れに相当する期間は、前記運転状態検出手段によって検出された前記内燃機関の回転数に従って算出される、請求項２に記載の内燃機関の蒸発燃料制御装置。
【請求項５】
前記流量算出手段は、前記吸気系にパージする燃料の量が前記上限値を超えない限りにおいて、なるべく多くの蒸発燃料が前記吸気系にパージされるように、前記吸気系にパージする蒸発燃料の流量を算出する、請求項１に記載の内燃機関の蒸発燃料制御装置。
【請求項６】
前記蒸発燃料の濃度を算出する濃度算出手段をさらに備えており、
前記流量算出手段は、さらに、前記濃度算出手段によって算出された蒸発燃料の濃度に基づいて、該蒸発燃料の前記吸気系にパージする流量を算出する、請求項１に記載の内燃機関の蒸発燃料制御装置。
【請求項７】
前記流量算出手段は、さらに、前記運転状態検出手段によって検出された吸入空気量に基づいて、前記蒸発燃料の前記吸気系にパージする流量を算出する、請求項１に記載の内燃機関の蒸発燃料制御装置。
【請求項８】
前記吸気系にパージする燃料の量に基づいて、燃料噴射弁を介して前記内燃機関に供給する燃料の量を補正する燃料補正手段をさらに備える、請求項１に記載の内燃機関の蒸発燃料制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、燃料タンクに発生する蒸発燃料が大気に放出されるのを抑止する蒸発燃料制御装置に関し、より具体的には、内燃機関の吸気系にパージされる蒸発燃料の量が最適化されるよう制御する内燃機関の蒸発燃料制御装置に関する。
【０００２】
【従来の技術】
自動車の内燃機関には、燃料タンクから燃料噴射弁を介して燃料が供給される。一方、燃料タンク内で発生した蒸発燃料はキャニスタに吸着され、該キャニスタに吸着された蒸発燃料の一部は、パージ通路を介して内燃機関の吸気系にパージされる。パージ通路にはパージ制御弁が設けられており、運転状態に従って該パージ制御弁の開度を調節することにより、内燃機関に流入する蒸発燃料の量が制御される。
【０００３】
一般に、内燃機関においては空燃比のフィードバック制御が行われる。このフィードバック制御では、空燃比が目標空燃比になるよう燃料噴射量が算出され、該算出された燃料噴射量に従って燃料噴射弁が制御される。具体的には、空燃比センサにより空燃比を検出し、該検出された空燃比と目標空燃比との差を補正するフィードバック補正値を求める。燃料噴射量を該補正値で補正することにより、空燃比が目標空燃比に達するようにする。
【０００４】
このような空燃比フィードバック制御において、上記のように蒸発燃料が内燃機関の吸気系にパージされると、空燃比に変動が生じる。また、蒸発燃料がパージされてから内燃機関に到達するまでには時間的遅れがあるので、空燃比フィードバック制御に遅れが生じる。したがって、より精度の高い空燃比フィードバック制御を実現するには、内燃機関に供給される燃料に寄与する蒸発燃料量を制御する必要がある。
【０００５】
たとえば、特開平９−１０５３４７号公報には、要求される燃料量に占める蒸発燃料量の割合が所定値以上になった時、蒸発燃料量を制限する制御装置が開示されている。また、特公平７−３２１１号公報には、空燃比フィードバック制御によりフィードバック制御された燃料供給量が、所定の比較燃料供給量以下になったことが判別されたならば、蒸発燃料をパージする通路の通路面積を減少方向に制御する燃料蒸発ガス排出抑止装置が記載されている。
【０００６】
【発明が解決しようとする課題】
前述したように、蒸発燃料が吸気系にパージされてから内燃機関に到達するまでには何らかの時間を要する（この時間的遅れを、以下「輸送遅れ」という）。上記の特開平９−１０５３４７号公報および特公平７−３２１１号公報のもののように、要求燃料量に対する蒸発燃料量の割合が所定値以上になった後に、パージされる蒸発燃料量を制限するのでは、この輸送遅れに起因する蒸発燃料の残留分によって空燃比が影響され、結果として適切な空燃比フィードバック制御を維持することができない。
【０００７】
したがって、要求燃料量に対する蒸発燃料量の割合が所定値以上になる前に、パージされる蒸発燃料量を制御し、適切な空燃比フィードバック制御を維持することが必要とされている。
【０００８】
【課題を解決するための手段】
上記の課題を解決するため、請求項１の発明は、燃料タンク内に発生した蒸発燃料の、内燃機関の吸気系にパージする流量を制御するための内燃機関の蒸発燃料制御装置において、内燃機関の現在の運転状態を検出する運転状態検出手段と、該検出された現在の運転状態に基づいて、吸気系にパージする燃料についての上限値を算出する上限値算出手段と、吸気系にパージする燃料の量が前記上限値を超えないように、蒸発燃料の該吸気系にパージする流量を算出する流量算出手段と、該算出された流量の蒸発燃料を、吸気系にパージするパージ手段と、を備える、という構成をとる。
【０００９】
請求項１の発明によると、上限値を超えないよう算出された流量の蒸発燃料が吸気系にパージされるので、内燃機関に供給される燃料に対する蒸発燃料の割合が所定値以上になる前に、パージされる蒸発燃料の流量を適切に制御することが可能になる。よって、適切な空燃比フィードバック制御を維持することができる。
【００１０】
請求項２の発明は、請求項１の発明の内燃機関の蒸発燃料制御装置において、パージ手段は、前記算出された流量の蒸発燃料を吸気系にパージするパージ制御弁を備えており、パージ制御弁から前記内燃機関の吸気系までの蒸発燃料の輸送遅れを算出する輸送遅れ算出手段をさらに有し、該輸送遅れに相当する期間だけ遡った時点において吸気系にパージされた燃料の量が前記上限値に近ければ、流量算出手段は、吸気系にパージする蒸発燃料の流量が増えないように、該蒸発燃料の流量を算出する、という構成をとる。請求項３の発明は、請求項２の発明の蒸発燃料制御装置において、輸送遅れに相当する期間だけ遡った時点における前記吸気系にパージされた燃料の量は、前記輸送遅れに相当する期間だけ遡った時点において吸気系にパージされた蒸発燃料の流量に基づいて算出される、という構成をとる。
【００１１】
請求項２および３の発明によると、蒸発燃料の輸送遅れを考慮して、パージされる蒸発燃料の流量が算出されるので、それぞれの時点において吸気系にパージされる蒸発燃料の流量がより正確に制御され、よってそれぞれの時点において適切な空燃比フィードバック制御を実現することができる。
【００１２】
請求項４の発明は、請求項２の発明の内燃機関の蒸発燃料制御装置において、輸送遅れに相当する期間は、運転状態検出手段によって検出された内燃機関の回転数に従って算出される、という構成をとる。
【００１３】
請求項４の発明によると、輸送遅れに相当する期間が内燃機関の回転数に従って算出されるので、運転状態に応じてより正確に輸送遅れを算出することができ、よってそれぞれの時点において吸気系にパージされる蒸発燃料の流量をより正確に制御することができる。
【００１４】
請求項５の発明は、請求項１の発明の内燃機関の蒸発燃料制御装置において、流量算出手段は、吸気系にパージする燃料の量が前記上限値を超えない限りにおいて、なるべく多くの蒸発燃料が前記吸気系にパージされるように、該吸気系にパージする蒸発燃料の流量を算出する、という構成をとる。
【００１５】
請求項５の発明によると、上限値を超えない限りにおいて、なるべく多くの量の蒸発燃料がパージされるよう蒸発燃料の流量が算出されるので、最適な空燃比フィードバック制御を維持しつつ、より多くの蒸発燃料を内燃機関への燃料として使用することができる。
【００１６】
請求項６の発明は、請求項１の発明の内燃機関の蒸発燃料制御装置において、蒸発燃料の濃度を算出する濃度算出手段をさらに備えており、流量算出手段は、さらに、前記濃度算出手段によって算出された蒸発燃料の濃度に基づいて、該蒸発燃料の吸気系にパージする流量を算出する、という構成をとる。
【００１７】
請求項６の発明によると、パージされる蒸発燃料の濃度に従って、パージされる蒸発燃料の流量が算出されるので、内燃機関に供給される燃料の量を適切に制御しつつ、空燃比フィードバック制御をより正確に実現することができる。
【００１８】
請求項７の発明は、請求項１の発明の内燃機関の蒸発燃料制御装置において、流量算出手段は、さらに、前記運転状態検出手段によって検出された吸入空気量に基づいて、前記蒸発燃料の吸気系にパージする流量を算出する、という構成をとる。
【００１９】
請求項７の発明によると、吸入空気量に従って、パージされる蒸発燃料の流量が算出されるので、内燃機関に供給される燃料の量を適切に制御しつつ、空燃比フィードバック制御をより正確に実現することができる。
【００２０】
請求項８の発明は、請求項１の発明の内燃機関の蒸発燃料制御装置において、前記吸気系にパージする燃料の量に基づいて、燃料噴射弁を介して内燃機関に供給する燃料の量を補正する燃料補正手段をさらに備える、という構成をとる。
【００２１】
請求項８の発明によると、燃料噴射弁を介して内燃機関に供給される燃料が、上限値を超えないよう予め算出された蒸発燃料の流量に応じた燃料補正値に基づいて補正されるので、該内燃機関に供給される燃料に対する蒸発燃料の割合が所定値以上になることなく、パージされる蒸発燃料の流量が制御され、よって適切な空燃比フィードバック制御を維持することができる。
【００２２】
【発明の実施の形態】
次に図面を参照してこの発明の実施の形態を説明する。図１は、この発明の実施形態による内燃機関の蒸発燃料制御装置の全体構成図である。この装置は、内燃機関（以下、「エンジン」という）１、蒸発燃料排出抑止装置３１および電子制御ユニット（以下、「ＥＣＵ」という）５を備える。
【００２３】
電子制御ユニット（以下、「ＥＣＵ」）という）５は、エンジン１の各部の制御を行うための演算を実行するＣＰＵ４１、エンジン各部の制御を行うためのプログラムおよび各種のデータを格納する読み取り専用メモリ（ＲＯＭ）４２、ＣＰＵ４１による演算の作業領域を提供し、エンジン各部から送られてくるデータおよびエンジン各部に送り出す制御信号を一時記憶するランダムアクセスメモリ（ＲＡＭ）４３、エンジン各部から送られてくるデータを受け入れる入力回路４４、エンジン各部に制御信号を送る出力回路４５を備えている。
【００２４】
図１では、プログラムは、モジュール１、モジュール２、モジュール３等で示されており、この発明に従う蒸発燃料を制御するためのプログラムは、これらのモジュールのうちの１つまたは複数に含まれている。また、演算に用いる各種のデータはテーブル１、テーブル２等の形でＲＯＭ４２に格納されている。ＲＯＭ４２は、ＥＥＰＲＯＭのような書き換え可能なＲＯＭであってもよく、この場合、ある運転サイクルにおいてＥＣＵ５が演算した結果をＲＯＭに格納しておき、次の運転サイクルで利用することができる。また、種々の処理でセットされた多くのフラグ情報をＥＥＰＲＯＭに記録しておくことにより、故障診断に利用することができる。
【００２５】
内燃機関（以下、「エンジン」という）１は、例えば４気筒を備えるエンジンであり、吸気管２が連結されている。吸気管２の上流側にはスロットル弁３が配されており、スロットル弁３に連結されたスロットル弁開度センサ（θＴＨ）４は、スロットル弁３の開度に応じた電気信号を出力してＥＣＵ５に供給する。
【００２６】
燃料噴射弁６は、吸気管２の途中であって、エンジン１とスロットル弁３の間に各気筒毎に設けられ、ＥＣＵ５からの制御信号によって開弁時間が制御される。燃料供給管７は、燃料噴射弁６および燃料タンク９を接続し、その途中に設けられた燃料ポンプ８が燃料を燃料タンクから燃料噴射弁６に供給する。図示しないレギュレータが、ポンプ８と燃料噴射弁６の間に設けられ、吸気管２から取り込まれる空気の圧力と、燃料供給管７を介して供給される燃料の圧力との間の差圧を一定にするよう動作して、燃料の圧力が高すぎるときは図示しないリターン管を通して余分な燃料を燃料タンク９に戻す。こうして、スロットル弁３を介して取り込まれた空気は、吸気管２を通り、燃料噴射弁６から噴射される燃料と混合してエンジン１のシリンダ（図示せず）に供給される。
【００２７】
吸気管圧力（ＰＢＡ）センサ１３および吸気温（ＴＡ）センサ１４は、吸気管２のスロットル弁３の下流側に装着されており、それぞれ吸気管圧力ＰＢＡおよび吸気温ＴＡを検出して電気信号に変換し、それをＥＣＵ５に送る。エンジン水温（ＴＷ）センサ１５は、エンジン１のシリンダブロックの冷却水が充満した気筒周壁（図示せず）に取り付けられ、エンジン冷却水の温度ＴＷを検出し、電気信号に変換して結果をＥＣＵ５に送る。
【００２８】
気筒判別センサ３４は、エンジン１のカム軸またはクランク軸（共に図示せず）周辺に取り付けられ、いずれの気筒のピストンがＴＤＣ位置（上死点）に達したかを示す気筒判別信号ＣＹＬを出力し、それをＥＣＵ５に送る。同様に、ＴＤＣセンサ３６が、カム軸またはクランク軸周辺に取り付けられ、ピストンのＴＤＣ位置に関連したクランク角度（たとえば、ＢＴＤＣ１０度）ごとにＴＤＣ信号パルスを出力する。さらに、クランク角センサ３８が取り付けられ、ＴＤＣ信号パルスの周期よりも短いクランク角度（たとえば、３０度）の周期で、ＣＲＫ信号パルスを出力する。ＣＲＫ信号のパルスはＥＣＵ５によってカウントされ、これによりエンジン回転数ＮＥが検出される。
【００２９】
エンジン１は排気管１２を持ち、排気管１２の途中に設けられた排気ガス浄化装置である三元触媒３３を介して排気する。排気管１２の途中に装着されたＬＡＦセンサ３２は広域空燃比センサであり、リーンからリッチにわたる範囲において排気ガス中の酸素濃度すなわち実空燃比を検出し、それをＥＣＵ５に送る。
【００３０】
エンジン１の燃焼室（図示せず）には点火プラグ５８が配置され、点火コイルおよびイグナイタ５０を介してＥＣＵ５に電気的に接続される。また、エンジン１のシリンダヘッド（図示せず）にはノックセンサ５２が配置され、エンジン１の振動に応じて信号を出力し、それをＥＣＵ５に送る。
【００３１】
エンジン１が搭載される車両のドライブシャフト（図示せず）の付近には車輪速（ＶＰＳ）センサ１７が搭載され、車輪が１回転するごとにパルスを出力し、これをＥＣＵ５に送る。さらに、バッテリ電圧（ＶＢ）センサ１８および大気圧（ＰＡ）センサ１９がＥＣＵ５に接続されており、それぞれ、バッテリ電圧および大気圧を検出し、それをＥＣＵ５に送る。
【００３２】
各種センサからの入力信号は入力回路４４に渡される。入力回路４４は、入力信号波形を整形して電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する。ＣＰＵ４１は、変換されたデジタル信号を処理し、ＲＯＭ４２に格納されているプログラムに従って演算を実行し、車の各部のアクチュエータに送る制御信号を作り出す。この制御信号は出力回路４５に送られ、出力回路４５は、燃料噴射弁６、イグナイタ５０およびその他のアクチュエータに制御信号を送る。
【００３３】
次に、蒸発燃料排出抑止系３１について説明する。排出抑止系３１は、燃料タンク９、チャージ通路２０、キャニスタ２５、パージ通路２７およびいくつかの制御弁を備え、燃料タンク９からの蒸発燃料の排出を制御する。
【００３４】
燃料タンク９は、チャージ通路２０を介してキャニスタ２５に接続され、燃料タンク９からの蒸発燃料が、キャニスタ２５に移動できるようになっている。チャージ通路２０は、第１の分岐２０ａおよび第２の分岐２０ｂを持ち、これらはエンジンルーム内に設けられている。内圧センサ１１は、チャージ通路２０の燃料タンク側に取り付けられており、チャージ通路２０内の内圧と大気圧との差圧を検出する。
【００３５】
第１の分岐２０ａには二方向弁２３が設けられ、二方向弁２３は２つの機械式の弁２３ａおよび２３ｂを備える。弁２３ａは、タンク内圧が大気圧より所定量高くなったときに開く正圧弁であり、これが開弁状態にあると、蒸発燃料がキャニスタ２５に流れ、そこで吸着される。弁２３ｂは、タンク内圧がキャニスタ２５側の圧力より所定量低くなったとき開く負圧弁であり、これが開弁状態にあると、キャニスタ２５に吸着された蒸発燃料が燃料タンク９に戻る。第２の分岐２０ｂには電磁弁であるバイパス弁２４が設けられる。バイパス弁２４は、通常は閉弁状態にある。
【００３６】
キャニスタ２５は、燃料蒸気を吸着する活性炭を内蔵し、通路２６ａを介して大気に連通する吸気口（図示せず）を持つ。通路２６ａの途中に、電磁弁であるベントシャット弁２６が設けられる。ベントシャット弁２６は、通常は開弁状態にある。
【００３７】
キャニスタ２５は、パージ通路２７を介して吸気管２のスロットル弁３の下流側に接続される。パージ通路２７の途中には電磁弁であるパージ制御弁３０が設けられ、キャニスタ２５に吸着された燃料が、パージ制御弁３０を介してエンジンの吸気系に適宜パージされる。パージ制御弁３０は、ＥＣＵ５からの制御信号に基づいて、オン−オフデューティ比を変更することにより、流量を連続的に制御する。
【００３８】
図２は、この発明に従う、要求燃料および該要求燃料に寄与する蒸発燃料の関係を示す図である。ここで、要求燃料ＴＣＹＬは、エンジンの各気筒に供給すべき燃料を示し、これは、運転状態に応じて算出される。図２に示されるように、長方形の水平方向の辺の長さは基本噴射量ＴＩＭの大きさを示しており、長方形の縦方向の辺の長さは係数の大きさを示している。図２に示される、基本噴射量ＴＩＭで表された辺と、燃料噴射係数で表された辺とを持つ長方形の面積は、要求燃料ＴＣＹＬの大きさを表している。すなわち、要求燃料ＴＣＹＬは、式（１）に示されるように、基本燃料量ＴＩＭに、燃料噴射係数（ＫＴＯＴＡＬ×ＫＣＭＤ×ＫＡＦ）を乗算することにより算出される。
【００３９】
【数１】
ＴＣＹＬ＝ＴＩＭ×（ＫＴＯＴＡＬ×ＫＣＭＤ×ＫＡＦ）      （１）
【００４０】
ここで、基本燃料量ＴＩＭは、具体的には、エンジン回転数ＮＥおよび吸気管圧力ＰＢＡに従って決定される基本燃料噴射時間で表される。ＫＴＯＴＡＬは、各種センサからの検出信号に基づいて算出される補正係数であり、運転状態に応じてエンジンの燃費特性および加速特性等が最適化されるように設定される。ＫＣＭＤは目標空燃比係数と呼ばれ、目標空燃比を当量比で表したものである。目標空燃比係数ＫＣＭＤは、空燃比Ａ／Ｆの逆数、すなわち燃空比Ｆ／Ａに比例し、理論空燃比のとき値１．０をとる。ＫＡＦは空燃比補正係数を示す。空燃比補正係数ＫＡＦは、空燃比フィードバック制御が実行されているときに、エンジンに供給される混合気の空燃比が目標空燃比に一致するように、ＬＡＦセンサ３２からの出力信号に基づいて計算される。
【００４１】
縦線で網掛けされた領域は、基本噴射量ＴＩＭにデルタ係数ＤＥＶＡＣＴＧＸを乗算したデルタ燃料を表している。デルタ燃料は、現在の運転状態において、空燃比フィードバック制御によって空燃比を適切に制御するのに必要な、燃料噴射弁を介して供給される最小限の燃料量を示す。式（２）に、デルタ燃料を表す式を示す。
【００４２】
【数２】
デルタ燃料＝ＴＩＭ×ＤＥＶＡＣＴＧＸ    （２）
【００４３】
ここで、デルタ係数ＤＥＶＡＣＴＧＸは、燃料噴射係数に対する割合で表され、運転状態に応じて算出される。この実施例においては、デルタ係数、エンジン回転数および吸気管圧力の関係がマップとして予め格納されており（たとえば、図１のＲＯＭ４２に格納される）、現在のエンジン回転数ＮＥおよび吸気管圧力ＰＢＡに基づいてこのマップをアクセスすることにより、現在の運転状態に応じたデルタ係数ＤＥＶＡＣＴＧＸを求める。
【００４４】
斜め線で網掛けされた領域は、基本噴射量ＴＩＭにガード係数ＫＥＶＡＣＴＧを乗算したガード値を表している。ガード値は、蒸発燃料量の上限値を示す。式（３）に、ガード値を表す式を示す。
【００４５】
【数３】
ガード値＝ＴＩＭ×ＫＥＶＡＣＴＧ    （３）
【００４６】
ガード係数ＫＥＶＡＣＴＧは、要求燃料量ＴＣＹＬに対するガード値の割合の上限値を表しており、式（４）に示されるように、式（１）における燃料噴射係数（ＫＴＯＴＡＬ×ＫＣＭＤ×ＫＡＦ）から、上記求めたデルタ係数ＤＥＶＡＣＴＧＸを減算することにより算出される。
【００４７】
【数４】
ＫＥＶＡＣＴＧ＝ＫＴＯＴＡＬ×ＫＣＭＤ×ＫＡＦ−ＤＥＶＡＣＴＧＸ  （４）
【００４８】
ガード値の領域において黒い太線で囲まれた領域は、要求燃料に対してパージ流量ＱＰＧＣが寄与する燃料量（以下、燃料補正量と呼ぶ）を表している。ここで、パージ流量ＱＰＧＣは、エンジンの吸気系にパージされる蒸発燃料の流量を示す。燃料補正量は、式（５）に示されるように、基本燃料量ＴＩＭにパージ補正係数ＫＡＦＥＶＡＣＴを乗算することにより算出される。
【００４９】
【数５】
燃料補正量＝ＴＩＭ×ＫＡＦＥＶＡＣＴ    （５）
【００５０】
ここで、パージ補正係数ＫＡＦＥＶＡＣＴは、燃料噴射係数に対する割合で表され、パージ流量ＱＰＧＣおよび蒸発燃料の濃度に基づいて算出される。算出する方法は、後述される。
【００５１】
この発明に従うと、燃料補正量が、ガード値を超えないよう制御される。具体的にいうと、前述したように、現在の運転状態に応じたデルタ係数ＤＥＶＡＣＴＧＸを求めることにより、ガード係数ＫＥＶＡＣＴＧが算出される。その後、ガード係数ＫＥＶＡＣＴＧを超えないよう、パージ補正係数ＫＡＦＥＶＡＣＴの値が制御される。すなわち、後述する算出方法で算出されたパージ補正係数の値がガード補正係数ＫＥＶＡＣＴＧの値を超えたならば、ガード補正係数ＫＥＶＡＣＴＧの値が、パージ補正係数ＫＡＦＥＶＡＣＴにセットされる。反対に、算出されたパージ補正係数の値がガード補正係数ＫＥＶＡＣＴＧの値以下ならば、該算出されたパージ補正係数の値が、パージ補正係数ＫＡＦＥＶＡＣＴにセットされる。こうして、エンジンに供給される蒸発燃料の量がガード値を超えることがないように、パージ流量が予め制御される。その結果、適切な空燃比制御が実現される。
【００５２】
図３は、上記のパージ流量ＱＰＧＣを説明するための図である。まず、図３の（ａ）を参照して、目標パージ流量ＱＰＧＣＭＤを説明する。目標パージ流量ＱＰＧＣＭＤは、今回のサイクルにおいてエンジンの吸気系にパージするパージ流量の目標値を表す。図３の線７１および７２に示されるように、目標パージ流量ＱＰＧＣＭＤは、吸入空気量ＱＡＩＲが大きくなるほど大きい値を持つよう設定される。これは、吸入空気量ＱＡＩＲが大きいほど、パージ流量を増やしても空燃比への影響が少ないからである。吸入空気量ＱＡＩＲが所定値を超えると、目標パージ流量ＱＰＧＣＭＤは一定に維持される。これはパージ流量の物理的限界に起因するものである。
【００５３】
目標パージ流量ＱＰＧＣＭＤは、以下の式（６）に基づいて算出される。
【００５４】
【数６】
ＱＰＧＣＭＤ＝ＱＰＧＣＢＡＳＥ×ＫＰＧＴ    （６）
【００５５】
ここで、ＱＰＧＣＢＡＳＥは、吸入空気量ＱＡＩＲに比例する基本パージ流量を示す。ＫＰＧＴはパージ流量係数であり、１以下の値を持つ。この係数ＫＰＧＴを制御することにより、目標パージ流量ＱＰＧＣＭＤの量を制御する。
【００５６】
線７１は、線７２より係数ＫＰＧＴの値が大きい場合の目標パージ流量ＱＰＧＣＭＤを示す。吸入空気量ＱＡＩＲに対する目標パージ流量ＱＰＧＣＭＤの割合を増やすときは、係数ＫＰＧＴの値を大きくすればよいことが、線７１および７２からわかる。
【００５７】
係数ＫＰＧＴは、空燃比がリッチな状態にならず、かつ図２で参照したようにパージ流量が寄与する燃料補正量がガード値を超えない限り、サイクルごとに一定量だけ増やされる。これは、目標パージ流量を、空燃比フィードバック制御に影響を及ぼさない限り増やして、なるべく多くの量の蒸発燃料をエンジンに使用するためである。しかし、空燃比がリッチな状態に近づいたり、またはパージ流量が寄与する燃料補正量がガード値に近づくと、係数ＫＰＧＴの加算処理は行われない。こうして、係数ＫＰＧＴの値を制御することにより、空燃比を適切に制御することができる範囲で、エンジンに流入するパージ流量を最大にするよう制御する。
【００５８】
図３の（ｂ）は、目標パージ流量ＱＰＧＣＭＤおよびパージ流量ＱＰＧＣの関係を説明するための図である。図に示されるように、パージ流量ＱＰＧＣは、徐々に目標パージ流量ＱＰＧＣＭＤに達するよう制御される。これは、今回のサイクルにおいていきなり目標パージ流量ＱＰＧＣＭＤをエンジンに流入させると、空燃比に影響を及ぼすおそれがあるからである。このように、それぞれのサイクルにおいて、目標パージ流量ＱＰＧＣＭＤを超えないようパージ流量ＱＰＧＣが算出され、該算出されたパージ流量ＱＰＧＣがエンジンの吸気系に流入するようパージ制御弁を制御する。
【００５９】
図４は、この発明従う蒸発燃料制御装置の機能ブロック図である。各機能ブロックで表される機能は、典型的にはコンピュータプログラムによって実行される。代替的には、各機能ブロックで表される機能を実行するよう構成された任意のハードウェアによって、各機能ブロックを実現してもよい。
【００６０】
吸入空気量算出部８１は、式（７）に基づいて、吸入空気量ＱＡＩＲを算出する。
【００６１】
【数７】
ＱＡＩＲ＝ＴＩＭ×ＮＥ×２×ＫＱＡＩＲ×ＫＰＡ  （７）
【００６２】
ここで、前述したようにＴＩＭは基本燃料噴射量を示す。ＫＱＡＩＲは、燃料噴射量を空気の流量に換算するための係数であり、固定値（たとえば、０．４５Ｌ／ｍｓ）を持つ。ＫＰＡは、吸気管圧力ＰＢＡに応じた流量の変動を補正するための係数である。
【００６３】
吸入空気量算出部８１は、さらに、吸入空気量ＱＡＩＲに対する蒸発燃料の割合を、式（８）に基づいて算出する。
【００６４】
【数８】
ＱＰＧＣＢＡＳＥ＝ＱＡＩＲ×ＫＱＰＧＢ    （８）
【００６５】
ここで、ＫＱＰＧＢは目標パージ率を示しており、たとえば０．０４である。この場合、吸入空気量ＱＡＩＲの４％に蒸発燃料を含めることになる。前述したように、ＱＰＧＣＢＡＳＥを基本パージ量と呼ぶ。
【００６６】
次に、パージ流量算出部８２は、基本パージ量ＱＰＧＣＢＡＳＥに基づいて、目標パージ流量ＱＰＧＣＭＤを前述の式（６）に基づいて算出する。
【００６７】
さらに、パージ流量算出部８２は、吸入空気量ＱＡＩＲに基づいて、今回のサイクルでパージするパージ流量ＱＰＧＣを、式（９）に基づいて算出する。
【００６８】
【数９】
ＱＰＧＣ（ｋ）＝ＱＰＧＣ（ｋ−１）＋（ＱＡＩＲ×ＫＤＱＰＧＣ）    （９）
【００６９】
ここで、ｋはサイクルを識別する数字であり、（ｋ）は今回のサイクルを示し、（ｋ−１）は前回のサイクルを示す。ＫＤＱＰＧＣは予め決められた固定値（たとえば、０．００３）である。式（９）によって算出されたパージ流量が目標パージ流量ＱＰＧＣＭＤを超えたならば、目標パージ流量ＱＰＧＣＭＤの値が、パージ流量ＱＰＧＣにセットされる。こうして、パージ流量ＱＰＧＣは、目標パージ流量ＱＰＧＣＭＤを超えないよう制御される。
【００７０】
デューティ算出部８３は、パージ流量算出部８２から受け取ったパージ流量ＱＰＧＣがパージされるように、パージ制御弁を駆動するデューティ比ＰＧＣＭＤを、式（１０）に基づいて算出する。デューティ比は、パージ制御弁が開弁している比率を表す。
【００７１】
【数１０】
0003560156.tif 000002
【００７２】
ＫＤＵＴＹは、パージ流量をデューティ比に換算するための係数であり、固定値（たとえば、３．８％・ｍｉｎ／Ｌ）を持つ。ＫＤＰＢＧは、差圧に応じてパージ制御弁の開度が変化するので、それを補正するための係数である。ＰＧＣＭＤ０は、パージ流量ＱＰＧＣに対応するデューティ比を表しており、以下目標デューティ比と呼ぶ。ＤＰＧＣＶＢＸおよびＤＰＧＣ０は、それぞれ、バッテリ電圧ＶＢおよび吸気管圧力ＰＢＡに依存してパージ制御弁が開き始めるまでに何らかの遅れが生ずるので、この遅れ（以下、無効時間と呼ぶ）を補正する係数である。
【００７３】
デューティ算出部８３は、デューティ比ＰＧＣＭＤに対して、所定の上限値および下限値でリミット処理を行い、最終デューティ比ＤＯＵＴＰＧＣを出力する。こうして、パージ制御弁の開度は、最終デューティ比ＤＯＵＴＰＧＣに従って制御される。
【００７４】
パージ流量係数算出部８４は、パージ流量係数ＫＰＧＴを算出する。パージ流量係数算出部８４は、パージ補正係数算出部８７から１がセットされたフラグＦ＿ＫＥＶＡＣＴＳを受け取らない限り、サイクルごとに所定量だけ係数ＫＰＧＴを増やす。この増やす処理を実行する期間（以下、これを更新タイムと呼ぶ）は、蒸発燃料の濃度（以下、該濃度を示す係数をベーパ濃度係数ＫＡＦＥＶと呼ぶ）および吸入空気量ＱＡＩＲに基づいて決定される。ベーパ濃度係数ＫＡＦＥＶが大きいほど、また吸入空気量ＱＡＩＲが小さいほど更新タイムが長く設定され、目標パージ流量ＱＰＧＣＭＤがより緩やかに増えるようにする。
【００７５】
パージ流量係数算出部８４は、パージ補正係数算出部８７から、１がセットされたＦ＿ＫＥＶＡＣＴＳを受け取ったならば、係数ＫＰＧＴをそのままの値に維持する。係数ＫＰＧＴはパージ流量算出部８２に渡され、前述したように、目標パージ流量ＱＰＧＣＭＤを算出するのに使用される。
【００７６】
空燃比制御手段９２は、ＬＡＦセンサ３２の出力に基づいて空燃比のフィードバック制御を実行する。ベーパ濃度係数算出部８５は、空燃比制御部９２によって算出された空燃比フィードバック係数ＫＡＦに基づいて、ベーパ濃度係数ＫＡＦＥＶを算出する。
【００７７】
目標パージ補正係数算出部８６およびパージ補正係数算出部８７は、それぞれ、目標パージ補正係数ＫＡＦＥＶＡＣＺおよびパージ補正係数ＫＡＦＥＶＡＣＴを算出する。両者は、式（１１）に示される関係を有する。
【００７８】
【数１１】
ＫＡＦＥＶＡＣＴ＝ＫＡＦＥＶＡＣＺ×ＫＫＥＶＧ    （１１）
【００７９】
ここで、ＫＫＥＶＧは高濃度補正係数を示しており、蒸発燃料の濃度が非常に高いと空燃比への影響が大きいので、これを補正するための係数である。高濃度補正係数ＫＫＥＶＧは、蒸発燃料の濃度が非常に高いときに、それに応じて１より大きい値が設定される。図２を参照して説明したように、パージ補正係数ＫＡＦＥＶＡＣＴは、要求燃料に対してパージ流量ＱＰＧＣが寄与する燃料量の割合を示す。パージ流量ＱＰＧＣが寄与する燃料量の割合は、まず目標パージ補正係数ＫＡＦＥＶＡＣＺとして算出され、これに高濃度補正係数ＫＫＥＶＧを乗算して補正したものを、最終的にパージ補正係数ＫＡＦＥＶＡＣＴに設定する。
【００８０】
目標パージ補正係数算出部８６は、目標パージ補正係数ＫＡＦＥＶＡＣＺを、式（１２）に基づいて算出する。
【００８１】
【数１２】
ＫＡＦＥＶＡＣＺ＝ＫＡＦＥＶ×ＰＧＲＡＴＥ×ＱＲＡＴＥ    （１２）
【００８２】
ここで、ＰＧＲＡＴＥおよびＱＲＡＴＥは、式（１３）および（１４）で表される。
【００８３】
【数１３】
0003560156.tif 000003
【００８４】
「ＰＧＲＡＴＥ×ＱＲＡＴＥ」は、今回のサイクルにおいてエンジンの吸気系にパージされるパージ流量の、エンジンの吸気系にパージすることのできる最大パージ流量に対する割合を示す。具体的に説明すると、前述したようにＤＯＵＴＰＧＣは最終デューティ比を表しているので、式（１３）に示されるデューティレートＰＧＲＡＴＥは、パージ流量ＱＰＧＣの目標デューティ比ＰＧＣＭＤ０に対する、実際のデューティ比（無効時間を差し引いたもの）の割合を示す。したがって、ＰＧＲＡＴＥ×ＱＰＧＣは、今回のサイクルにおいてパージ制御弁によってパージされる実際のパージ流量を示す。一方、ＱＰＧＣＢＡＳＥは、式（８）を参照して前述したように、今回のサイクルにおける吸入空気量ＱＡＩＲに含めることのできる蒸発燃料の流量を示す。吸入空気量ＱＡＩＲは、要求燃料ＴＣＹＬに対応する空気量であるので、燃料噴射係数（ＫＴＯＴＡＬ×ＫＣＭＤ×ＫＡＦ）に対する目標パージ補正係数ＫＡＦＥＶＡＣＴの割合は、基本パージ流量ＱＰＧＣＢＡＳＥに対する（ＰＧＲＡＴＥ×ＱＰＧＣ）の割合に比例する。燃料はベーパ濃度係数ＫＡＦＥＶに依存して表されるので、式（１１）に示されるように、「ＰＧＲＡＴＥ×ＱＲＡＴＥ」にベーパ濃度係数ＫＡＦＥＶを乗算することにより、目標パージ補正係数ＫＡＦＥＶＡＣＺを求めることができる。
【００８５】
パージ補正係数算出部８７は、前述したように、目標パージ補正係数ＫＡＦＥＶＡＣＺに高濃度補正係数ＫＫＥＶＧを乗算して、パージ補正係数ＫＡＦＥＶＡＣＴを算出する。
【００８６】
ガード係数算出部８８は、エンジン回転数ＮＥおよび吸気管圧力ＰＢＡに基づいてガード係数ＫＥＶＡＣＴＧを求める。具体的には、図２を参照して説明したように、エンジン回転数ＮＥおよび吸気管圧力ＰＢＡに基づくマップをアクセスしてデルタ係数ＤＥＶＡＣＴＧＸを求めることにより、ガード係数ＫＥＶＡＣＴＧを算出する。ガード係数算出部８８は、算出したガード係数ＫＥＶＡＣＴＧを、パージ補正係数算出部８７に渡す。
【００８７】
パージ補正係数算出部８７は、上記のように算出したパージ補正係数ＫＡＦＥＶＡＣＴをガード係数ＫＥＶＡＣＴＧと比較する。算出したパージ補正係数の値がガード係数ＫＥＶＡＣＴＧを超えたならば、パージ補正係数算出部８７は、パージ補正係数ＫＡＦＥＶＡＣＴにガード係数ＫＥＶＡＣＴＧの値をセットし、かつフラグＦ＿ＫＥＶＡＣＴＳに１をセットする。こうして、パージ補正係数ＫＡＦＥＶＡＣＴは、ガード係数ＫＥＶＡＣＴＧの値を超えないよう制御される。すなわち、燃料補正量（前述したように、蒸発燃料に基づく燃料の量）が、上限値（図２のガード値）を超えないよう予め制御される。
【００８８】
前述したように、パージ流量係数算出部８４は、パージ補正係数算出部８７から、１がセットされたフラグＦ＿ＫＥＶＡＣＴＳを受け取ったならば、係数ＫＰＧＴをそのままの値に維持し、目標パージ流量ＱＰＧＣＭＤが増加するのを防止する。こうして、パージ補正係数に従って、エンジンに流入するパージ流量が制御される。
【００８９】
輸送遅れ算出部８９は、エンジン回転数ＮＥに基づいて、パージ輸送遅れＣＰＧＤＬＹＲＸを算出する。パージ輸送遅れＣＰＧＤＬＹＲＸとは、蒸発燃料がパージ通路にパージされてからエンジンの吸気系に送られるまでの時間的な遅れを示す。パージ輸送遅れＣＰＧＤＬＹＲＸは整数ｎで表され、ｎが大きくなるにつれ輸送遅れが大きいことを示す。代替的に、パージ輸送遅れを、エンジン回転数ＮＥの代わりに吸入空気量ＱＡＩＲに基づいて算出するようにしてもよい。
【００９０】
目標パージ補正係数算出部８６は、０〜（ｎ−１）の番号がそれぞれ付与された複数のバッファを有しており、今回のサイクルで算出された目標パージ補正係数をゼロ番目のバッファに格納し、前回のサイクルで算出された目標パージ補正係数を１番目のバッファに格納し、．．．というように、目標パージ補正係数を時系列に格納する。目標パージ補正係数算出部８６は、輸送遅れ算出部８９によって算出された蒸発燃料輸送遅れＣＰＧＤＬＹＲＸの値ｎを受け取り、該ｎに対応する番号のバッファから、目標パージ補正係数ＫＡＦＥＶＡＣＺを抽出する。たとえば、受け取ったＣＰＧＤＬＹＲＸの値ｎが３ならば、３番目のバッファから目標パージ補正係数ＫＡＦＥＶＡＣＺを抽出する。
【００９１】
供給燃料算出部９０は、パージ補正係数算出部８７からパージ補正係数ＫＡＦＥＶＡＣＴを受け取り、式（１５）に従って、エンジンに供給する燃料の量ＴＣＹＬを算出する。算出された燃料量ＴＣＹＬは、燃料噴射弁を介してエンジンに供給される。こうして、パージ流量ＱＰＧＣが寄与する蒸発燃料量を差し引いた量の燃料が、燃料噴射弁を介してエンジンに供給される。
【００９２】
【数１４】
0003560156.tif 000004
【００９３】
図５は、吸入空気量ＱＡＩＲおよび基本パージ流量ＱＰＧＢＡＳＥを求めるフローチャートである。このフローは、たとえばＴＤＣセンサからＴＤＣパルス信号が出力されるたびに実行される。ステップ１０１において、前述した式（７）に従って、吸入空気量ＱＡＩＲを求める。ステップ１０２において、前述した式（８）に従って、基本パージ流量ＱＰＧＣＢＡＳＥを求める。
【００９４】
図６は、パージ制御弁を駆動する最終デューティ比ＤＯＵＴＰＧＣを求めるフローチャートである。このフローは、一定の時間間隔（たとえば８０ミリ秒）で繰り返し実行される。
【００９５】
ステップ１１１において、パージ流量ＱＰＧＣを求めるルーチン（図７）を実行する。ステップ１１２において、ステップ１１１で算出されたパージ流量ＱＰＧＣがゼロならば、蒸発燃料をパージしないことを示すので、デューティ比ＰＧＣＭＤにゼロを設定し（１１３）、ステップ１２０に進む。ステップ１１２においてパージ流量ＱＰＧＣがゼロでなければ、ステップ１１４に進み、パージ制御弁を駆動する周期（たとえば、８０ミリ秒）を設定する。
【００９６】
ステップ１１５〜１１９は、前述した式（１０）に従ってデューティ比ＰＧＣＭＤを求める処理である。ステップ１１５において、バッテリ電圧に応じたパージ制御弁の無効時間を補正するため、ＤＰＧＣＶＢＸテーブルをアクセスし、バッテリ電圧ＶＢに基づいて無効時間ＤＰＧＣＶＢＸを求める。図１３に、ＤＰＧＣＶＢＸテーブルの例を示す。図１３から明らかなように、バッテリ電圧が大きくなるほど、無効時間ＤＰＧＣＶＢＸは小さくなる。
【００９７】
ステップ１１６に進み、差圧に起因するパージ制御弁のデューティの変動を補正するため、ＫＤＰＢＧテーブルをアクセスし、吸気管圧力ＰＢＡに基づいて差圧補正値ＫＤＰＢＧを求める。図１４に、ＫＤＰＢＧテーブルの例を示す。図１４から明らかなように、エンジン負荷が低くなるほど、差圧補正値ＫＤＰＢＧは大きくなる。ステップ１１７に進み、吸気管圧力ＰＢＡに応じたパージ制御弁の無効時間を補正するため、ＤＰＧＣ０テーブルをアクセスし、吸気管圧力ＰＢＡに基づいて無効時間ＤＰＧＣ０を求める。図１５に、ＤＰＧＣ０テーブルの例を示す。図１５から明らかなように、負荷が大きくなるほど、無効時間ＤＰＧＣ０は大きくなる。
【００９８】
ステップ１１８に進み、パージ流量ＱＰＧＣに対応する目標デューティ比ＰＧＣＭＤ０を求める。具体的には、ステップ１１１で求めたパージ流量ＱＰＧＣに、流量をデューティに換算する係数ＫＤＵＴＹを乗算したものを、ステップ１１６で求めた差圧補正値ＫＤＰＢＧで除算する。
【００９９】
ステップ１１９に進み、目標デューティ比ＰＧＣＭＤ０に基づいて、デューティ比ＰＧＣＭＤを求める。具体的には、目標デューティ比ＰＧＣＭＤ０に、ステップ１１５で求めたバッテリ電圧に基づく無効時間ＤＰＧＣＶＢＸおよびステップ１１７で求めた負荷に基づく無効時間ＤＰＧＣ０を加算し、デューティ比ＰＧＣＭＤを求める。
【０１００】
ステップ１２０〜１２５は、デューティ比ＰＧＣＭＤに対するリミット処理を示す。ステップ１２０において、デューティ比ＰＧＣＭＤが予め決められた上限値ＤＯＵＴＰＧＨ（たとえば、９５％）以上ならば、最終デューティ比ＤＯＵＴＰＧＣに、該上限値ＤＯＵＴＰＧＨをセットする（１２２）。ステップ１２０および１２１において、デューティ比ＰＧＣＭＤが、上限値ＤＯＵＴＰＧＨおよび予め決められた下限値ＤＯＵＴＰＧＬ（たとえば、５％）の間の値を持つならば、最終デューティ比ＤＯＵＴＰＧＣに、デューティ比ＰＧＣＭＤをセットする（１２３）。ステップ１２１において、デューティＰＧＣＭＤが下限値値ＤＯＵＴＰＧＬより小さければ、最終デューティ比ＤＯＵＴＰＧＣにゼロを設定する（１２４）。この場合、最終デューティ比ＤＯＵＴＰＧＣがゼロなので、デューティレートＰＧＲＡＴＥおよびパージ流量レートＱＲＡＴＥにゼロが設定され、高濃度補正係数ＫＫＥＶＧに値１がセットされる（１２５）。
【０１０１】
ステップ１２６に進み、前述した式（１３）に従ってデューティレートＰＧＲＡＴＥを求める。
【０１０２】
図７は、図６のステップ１１１で実行される、パージ量ＱＰＧＣを求めるフローチャートである。ステップ１５１において、パージ流量係数ＫＰＧＴを求めるルーチンを実行する。ステップ１５２〜１５７は、目標パージ流量ＱＰＧＣＭＤを求める処理である。ステップ１５２において、基本パージ流量ＱＰＧＣＢＡＳＥに係数ＫＰＧＴを乗算した値を、一時変数ｑｐｇｃｍｄにセットする。一次変数ｑｐｇｃｍｄが、予め設定された上限値ＱＰＧＭＡＸ（たとえば、３０Ｌ／ｍｉｎ）より大きければ、該上限値がパージ流量ＱＰＧＣＭＤに設定される（１５３および１５７）。一次変数ｑｐｇｃｍｄが、予め設定された下限値（たとえば１Ｌ／ｍｉｎ）より小さければ、該下限値が目標パージ流量ＱＰＧＣＤＭＤにセットされる（１５４および１５５）。一次変数ｑｐｇｃｍｄが上限値および下限値の間にあるならば、該一時変数ｑｐｇｃｍｄにセットされた値が目標パージ流量ＱＰＧＣＭＤに設定される（１５６）。
【０１０３】
ステップ１５８〜１６７は、前述した式（９）に従ってパージ流量ＱＰＧＣを求める処理である。前述したように、パージ流量ＱＰＧＣは、段階的に目標パージ流量ＱＰＧＣＭＤに達するよう制御される。まず、ステップ１５８〜１６２において、今回のサイクルで加算するデルタパージ量ＤＱＰＧＣを算出する。ステップ１５８において、パージカットフラグＦ＿ＰＧＲＥＱに１が設定されているかどうか調べる。１が設定されていれば、パージカットが実行されていること（すなわち、パージされていない状態）を示すので、前回のサイクルで算出されたパージ流量ＱＰＧＣ（ｋ−１）から所定値ＤＱＰＧＣＯＢＤ（たとえば、２Ｌ／ｍｉｎ）だけ減らした値を、一時変数ｑｐｇｃに代入する（１６４）。パージカットフラグがゼロならば、一時変数ｄｑｐｇｃに、「吸入空気量ＱＡＩＲ×パージ加算係数ＫＤＱＰＧＣ」を代入する。パージ加算係数ＫＤＱＰＧＣは、吸入空気量ＱＡＩＲに対してどれくらいをパージ流量として加算するかを定める係数であり、たとえば０．００３である。
【０１０４】
ステップ１６０おいて、一時変数ｄｑｐｇｃの値が、予め決められた上限値ＤＱＰＧＣＭＡＸ（たとえば、２Ｌ／ｍｉｎ）より大きければ、該上限値をデルタパージ量ＤＱＰＧＣにセットし（１６２）、該上限値ＤＱＰＧＣＭＡＸより小さければ、一時変数ｄｑｐｇｃの値をデルタパージ量ＤＱＰＧＣにセットする（１６１）。
【０１０５】
ステップ１６３に進み、前回のサイクルで算出されたパージ流量ＱＰＧＣ（ｋ−１）に、ステップ１６１または１６２で求めたデルタパージ量ＤＱＰＧＣを加算する。こうして、目標パージ流量ＱＰＧＣＭＤに向けて、パージ流量が増やされる。
【０１０６】
ステップ１６５では、ステップ１６３パージ流量を増やした結果、一時変数ｑｐｇｃが目標パージ流量ＱＰＧＣＭＤを超えたかどうか判断する。超えたならば、目標パージ流量ＱＰＧＣＭＤの値をパージ流量ＱＰＧＣにセットし（１６６）、超えなければ、一時変数ｑｐｇｃの値をパージ流量ＱＰＧＣにセットする（１６７）。こうして、今回のサイクルにおいてパージされるパージ流量ＱＰＧＣが、目標パージ流量ＱＰＧＣＭＤを超えないよう算出される。
【０１０７】
図８は、図７のステップ１５１で実行される、パージ流量係数ＫＰＧＴを求めるフローチャートである。係数ＫＰＧＴの初期値はゼロに設定されていると仮定する。ステップ１７１〜１７３は、係数ＫＰＧＴの上限値を算出する処理を示す。運転状態に応じて係数ＫＰＧＴの上限値を設定することにより、係数ＫＰＧＴによるパージ流量制御の精度を向上させることができる。
【０１０８】
ステップ１７１において、ＫＰＧＴＳＰＸマップにアクセスし、ベーパ濃度係数ＫＡＦＥＶおよび吸入空気量ＱＡＩＲに基づいて、係数ＫＰＧＴＳＰＸを求める。ＫＰＧＴＳＰＸマップは、ベーパ濃度係数ＫＡＦＥＶおよび吸入空気量ＱＡＩＲに基づく係数ＫＰＧＴＳＰＸを格納したマップである。
【０１０９】
ステップ１７２において、ＫＰＧＴＰＡＸテーブルにアクセスし、大気圧ＰＡに基づいて、係数ＫＰＧＴＰＡＸを求める。図１６に、ＫＰＧＴＰＡＸテーブルの例を示す。図１６から明らかなように、大気圧ＰＡが大きくなるほど（すなわち、平地であるほど）、係数ＫＰＧＴＰＡＸが大きくなる。ステップ１７３において、式（１６）に従い、上限値ＫＰＧＴＳＰＧを算出する。
【０１１０】
【数１５】
0003560156.tif 000005
【０１１１】
ステップ１７４において、現在のＫＰＧＴが上限値ＫＰＧＴＳＰＧを超えているならば、該上限値で係数ＫＰＧＴを更新する（１７５）。係数ＫＰＧＴが上限値ＫＰＧＴＳＰＧより小さければ、ステップ１８１に進む。
【０１１２】
ステップ１８１〜１８５は、係数ＫＰＧＴを加算するための条件が成立しているかどうか調べる処理である。図３を参照して前述したように、係数ＫＰＧＴは、空燃比がリーンであるとき、かつパージ流量が寄与する燃料補正量がガード値に近くないときに、増やされる。
【０１１３】
ステップ１８１において、更新タイムＣＰＧＴが１以下かどうか判断する。更新タイムＣＰＧＴは、図４を参照して前述したように、係数ＫＰＧＴを更新する期間を規定する。この実施例では、更新タイムＣＰＧＴは、ダウンカウンタと同様の働きをする。更新タイムＣＰＧＴが１より大きければ、まだ更新タイムＣＰＧＴは満了していないのでカウンタを１だけ減らし（１８２）、このルーチンを抜ける。
【０１１４】
更新タイムＣＰＧＴが１以下ならば、更新タイムＣＰＧＴが満了したことを示す。ステップ１８３に進み、ＤＫＣＭＤＫＰＧテーブルをアクセスし、吸入空気量ＱＡＩＲに基づいてデルタ値ＤＫＣＭＤＫＰＧを求める。図１７に、ＤＰＣＭＤＫＰＧテーブルの例を示す。図１７に示されるように、デルタ値ＤＫＣＭＤＫＰＧは、吸入空気量ＱＡＩＲが大きくなるほど大きくなるよう設定されている。
【０１１５】
ステップ１８４において、実空燃比係数ＫＡＣＴが、目標空燃比係数ＫＣＭＤよりも、ステップ１８３で求めたデルタ値ＤＫＣＭＤＫＰＧより大きければ、このルーチンを抜ける。そうでなければ、ステップ１８５進む。ここで、実空燃比係数ＫＡＣＴは、ＬＡＦセンサによって検出された空燃比を当量比で表したものである。このように、空燃比がリッチに近いときは、係数ＫＰＧＴを加算するとパージ流量が増えてしまうので、加算することなくこのルーチンを抜け、オーバーリッチになるのを防止する。
【０１１６】
ステップ１８５に進み、パージ補正係数ＫＡＦＥＶＡＣＴがガード係数ＫＥＶＡＣＴＧに近い値を持つときに１がセットされるフラグＦ＿ＫＥＶＡＣＴＳを調べる。フラグＦ＿ＫＥＶＡＣＴＳが１ならば、パージ補正係数ＫＡＦＥＶＡＣＴの値がガード係数ＫＥＶＡＣＴＧに近いことを示すので、パージ流量を増やさないようこのルーチンを抜ける。フラグＦ＿ＫＥＶＡＣＴＳが１でなければ、ステップ１８６に進み、係数ＫＰＧＴを所定値ＤＫＰＧＴ（たとえば、０．０５）だけ増やす。
【０１１７】
このように、係数ＫＰＧＴの加算処理は、該加算処理が実行されてもリッチにならないとき、かつ燃料補正量が上限値を超えないときに実行される。次に、ステップ１９１に進み、更新タイムＣＰＧＴを算出するルーチン（図９）を実行する。
【０１１８】
図９は、更新タイムＣＰＧＴを算出するフローチャートである。更新タイムＣＰＧＴは、前述したように、係数ＫＰＧＴを更新するタイミングを規定する。ステップ２０１において、カウンタＣＣＰＧＴの値を調べる、カウンタＣＣＰＧＴは、初期値としてたとえば５が設定されている。カウンタＣＣＰＧＴの値がゼロでなければ、カウンタがまだ満了していないことを示す。ステップ２０２に進み、更新基本タイムＣＰＧＴＬＸに、所定値ＣＰＧＴＳＴ（たとえば、１．２秒）を設定する。カウンタＣＣＰＧＴの値がゼロならば、ＣＰＧＴＬＸテーブルを検索し、ベーパ濃度係数ＫＡＦＥＶに基づいて更新基本タイムＣＰＧＴＬＸを求める（２０３）。図１８にＣＰＧＴＬＸテーブルの例を示す。図１８に示されるように、ベーパ濃度係数ＫＡＦＥＶが大きくなるにつれて、更新基本タイムＣＰＧＴＬＸは大きくなる。したがって、ベーパ濃度が濃いときは、更新基本タイムＣＰＧＴＬＸが大きくなり、よって係数ＫＰＧＴの更新タイムＣＰＧＴが長くなる。
【０１１９】
ステップ２０４進み、ＫＣＰＧＴテーブルを検索し、吸入空気量ＱＡＩＲに基づいて係数ＫＣＰＧＴを求める。図１９に、ＫＣＰＧＴテーブルの例を示す。図１９に示されるように、吸入空気量ＱＡＩＲが大きくなるにつれ、係数ＫＣＰＧＴが小さくなる。したがって、吸入空位量ＱＡＩＲが小さいときには、係数ＫＣＰＧＴが大きくなり、よって係数ＫＰＧＴの更新タイムＣＰＧＴが長くなる。
【０１２０】
ステップ２０５進み、ステップ２０２または２０３で求めた更新基本タイムＣＰＧＴＬＸと、ステップ２０４で求めた係数ＫＣＰＧＴを乗算し、更新タイムＣＰＧＴを算出する。ステップ２０６に進み、カウンタＣＣＰＧＴを１だけディクリメントする。
【０１２１】
このように、パージ開始時においては（すなわち、カウンタＣＣＰＧＴがゼロでないとき）、パージされる蒸発燃料の濃度がわからないので、所定値ＣＰＧＴＳＴによって更新タイムＣＰＧＴを制御する。その後、更新タイムＣＰＧＴは、ベーパ濃度係数ＫＡＦＥＶおよび吸入空気量ＱＡＩＲに応じて設定される。具体的には、ベーパ濃度が濃いほど、また吸入空気量が少ないほど空燃比に及ぼす影響が大きいので、パージ流量をより緩やかに増加するよう更新タイムＣＰＧＴを大きくする。
【０１２２】
図１０は、パージ補正係数ＫＡＦＥＶＡＣＴを算出するフローチャートである。このフローチャートは、たとえばＴＤＣセンサからＴＤＣパルス信号が出力されるたびに実行される。
【０１２３】
ステップ３０１において、目標パージ補正係数ＫＡＦＥＶＡＣＺを求めるルーチン（図１１）を実行する。目標パージ補正係数ＫＡＦＥＶＡＣＺは、前述したように、高濃度補正係数ＫＫＥＶＧで補正される前の、要求燃料に対する蒸発燃料の割合を示す係数である。
【０１２４】
ステップ３０２〜３０４は、高濃度補正係数ＫＫＥＶＧを算出する処理を示す。ステップ３０２において、ベーパ濃度係数ＫＡＦＥＶと、ガード係数ＫＥＶＡＣＴＧを比較する。ベーパ濃度係数ＫＡＦＥＶがガード係数ＫＥＶＡＣＴＧより大きければ、蒸発燃料の濃度が非常に濃いことを示す。この場合、「ＫＡＦＥＶ／ＫＥＶＡＣＴＧ」を計算し、高濃度係数ＫＫＥＶＧを求める。一方、ベーパ濃度係数ＫＡＦＥＶがガード係数ＫＥＶＡＣＴＧより小さければ、蒸発燃料の濃度が補正するほど大きくないことを示す。この場合、高濃度補正係数ＫＫＥＶＧに１をセットする。
【０１２５】
ステップ３０７に進み、目標パージ補正係数ＫＡＦＥＶＡＣＺに、ステップ３０３または３０４で求めた高濃度係数ＫＫＥＶＧを乗算し、パージ補正係数ＫＡＦＥＶＡＴを求める。ステップ３０９において、算出されたパージ補正係数ＫＡＦＥＶＡＣＴをガード係数ＫＥＶＡＣＴＧと比較する。前述したように、ガード係数ＫＥＶＡＣＴＧは、吸気管圧力ＰＢＡおよび回転数ＮＥに基づくマップから求められる係数である（図１１を参照）。算出されたパージ補正係数ＫＡＦＥＶＡＣＴがガード係数ＫＥＶＡＣＴＧより大きければ、パージ補正係数ＫＡＦＥＶＡＣＴには、該ガード係数ＫＥＶＡＣＴＧの値がセットされ（３１０）、さらにフラグＦ＿ＫＥＶＡＣＴＳに１がセットされる（３１１）。
【０１２６】
算出されたパージ補正係数ＫＡＦＥＶＡＣＴが、ガード係数ＫＥＶＡＣＴＧから所定値ＤＫＥＶＡＣＴＳ（たとえば、０．０５）を減算した値より大きければ（３１２）、該算出されたパージ補正係数ＫＡＦＥＶＡＣＴが、ガード係数ＫＥＶＡＣＴＧに近い値を持つことを示す。この場合も、ステップ３１１に進み、フラグＦ＿ＫＥＶＡＣＴＳに１をセットする。算出されたパージ補正係数ＫＡＦＥＶＡＣＴが、ガード係数ＫＥＶＡＣＴＧから所定値ＤＫＥＶＡＣＴＳを減算した値より小さければ（３１２）、フラグＦ＿ＫＥＶＡＣＴＳにはゼロがセットされる（３１３）。こうして、パージ補正係数ＫＡＦＥＶＡＣＴは、ガード係数ＫＥＶＡＣＴＧを超えないよう制御される。また、パージ補正係数ＫＡＦＥＶＡＣＴがガード係数ＫＥＶＡＣＴＧに近い場合には、フラグＦ＿ＫＥＶＡＣＴＳに１がセットされる。
【０１２７】
前述したように、フラグＦ＿ＫＥＶＡＣＴＳは、図８に示されるパージ流量係数ＫＰＧＴを算出するフローにおいて使用される。フラグＦ＿ＫＥＶＡＣＴＳに１がセットされていれば、要求燃料量に寄与する現在の燃料補正量（図２を参照）がガード値に近づいていることを示すので、係数ＫＰＧＴの加算処理を禁止し、パージ流量の増量を禁止する。
【０１２８】
図１１は、図１０のステップ３０１で実行される、目標パージ補正係数ＫＡＦＥＶＡＣＺを算出するフローチャートを示す。ステップ３５１〜３５５は、前述した式（１２）に従い目標パージ補正係数ＫＡＦＥＶＡＣＺを求める処理を示す。
【０１２９】
ステップ３５１において、パージ流量レートＱＲＡＴＥを求める。これは、前述した式（１４）に従って算出される。ステップ３５２において、パージ輸送遅れテーブルＣＰＧＤＬＹＲＸをアクセスし、エンジン回転数ＮＥに基づいてパージ輸送遅れＣＰＧＤＬＹＲＸを求める。前述したように、パージ輸送遅れＣＰＧＤＬＹＲＸは、蒸発燃料がパージ制御弁を介してパージ通路にパージされてから、エンジンの吸気系に到達するまでの時間的遅れを示す。この実施例では、パージ輸送遅れＣＰＧＤＬＹＲＸは整数ｎで表される。図２０に、パージ輸送遅れテーブルＣＰＧＤＬＹＲＸテーブルの例を示す。図２０に示されるように、回転ＮＥが大きくなるほど、パージ輸送遅れＣＰＧＤＬＹＲＸも大きくなる。これは、エンジン回転数ＮＥが大きいほど、蒸発燃料がパージされてからエンジンの吸気系に到達するまでの間に実行される、内燃機関における吸入工程数が増加するからである。
【０１３０】
ステップ３５３において、リングバッファを１つだけシフトする。リングバッファは、たとえばＫＡＦＥＶＲＴ０〜ＫＡＦＥＶＲＴｆの１６個のバッファから構成される。リングバッファをシフトするということは、ＫＡＦＥＶＲＴ０〜ＫＡＦＥＶＲＴｅに格納されたデータを、ＫＡＦＥＶＲＴ１〜ＫＡＦＥＶＲＴｆにそれぞれシフトすることを示す。ＫＡＦＥＶＲＴｆに格納されていたデータを廃棄される。こうして、ＫＡＦＥＶＲＴ０を空にする。
【０１３１】
ステップ３５４において、パージ流量レートＱＲＡＴＥに、図６のステップ１２６で算出されたデューティレートＰＧＲＡＴＥを乗算したものを、バッファＫＡＦＥＶＲＴ０に格納する。こうして、ゼロ番目のバッファには、今回のサイクルで算出された「ＰＧＲＡＴＥ×ＱＲＡＴＥ」が格納される。１番目、２番目、．．．のバッファ（すなわち、ＫＡＦＥＶＲＴ１、ＫＡＦＥＶＲＴ２、、、）には、それぞれ、前回、前々回、．．．のサイクルで算出された「ＰＧＲＡＴＥ×ＱＲＡＴＥ」が格納されている。
【０１３２】
ステップ３５５に進み、ベーパ濃度係数ＫＡＦＥＶに、ステップ１５２で求めたパージ輸送遅れの値ｎに対応するＫＡＦＥＶＲＴｎを乗算し、目標パージ補正係数ＫＡＦＥＶＡＣＺを算出する。たとえば、パージ輸送遅れＣＰＧＤＬＹＲＸが「４」ならば、バッファＫＡＦＥＶＲＴ４に格納されたＫＡＦＥＶＲＴの値が使用される。
【０１３３】
ステップ３５６および３５７は、ガード係数ＫＥＶＡＣＴＧを算出する処理を示す。ステップ３５６において、ＤＥＶＡＣＴＧＸマップを検索し、吸気管圧力ＰＢＡおよび回転数ＮＥに基づいてデルタ係数ＤＥＶＡＣＴＧＸを求める。デルタ係数ＤＥＶＡＣＴＧＸについては、図２を参照して前述した。ステップ３５７に進み、前述した式（４）に従ってガード係数ＫＥＶＡＣＴＧを算出する。
【０１３４】
図１２は、ベーパ濃度係数ＫＡＦＥＶを求めるフローチャートである。このフローチャートは、一定の時間間隔（たとえば１０ミリ秒）ごとに繰り返し実行される。
【０１３５】
ステップ４０１において、空燃比フィードバック制御が実行中のときに１がセットされるフラグＦ＿ＡＦＦＢの値を調べる。フラグＦ＿ＡＦＦＢがゼロならば、このルーチンを抜け、１ならば、ステップ４０２に進む。ステップ４０２において、パージ流量ＱＰＧＣがゼロならば、今回のサイクルでは蒸発燃料をパージしないことを示すので、このルーチンを抜ける。パージ流量ＱＰＧＣがゼロでなければ、ステップ４０３に進む。
【０１３６】
ステップ４０３および４０４において、ＤＫＡＦＥＶＸＨテーブルおよびＤＫＡＦＥＶＸＬテーブルをアクセスし、吸入空気量ＱＡＩＲに基づいて高側判定値ＤＫＡＦＥＶＸＨおよび低側判定値ＤＫＡＦＥＶＸＬをそれぞれ求める。図２１は、このテーブルの例を示す。高側および低側判定値ＤＫＡＦＥＶＸＨおよびＤＫＡＦＥＶＸＬは、吸入空気量ＱＡＩＲが大きくなるほど小さくなる。
【０１３７】
ステップ４０５において、空燃比学習値ＫＲＥＦＸと低側判定値ＤＫＡＦＥＶＸＬの差が空燃比フィードバック係数ＫＡＦより大きく、かつステップ４０６において、実空燃比係数ＫＡＣＴが目標空燃比係数ＫＣＭＤより大きければ、パージによる影響で空燃比がリッチであることを示す。したがって、ベーパ濃度係数ＫＡＦＥＶを、所定値ＤＫＥＶＡＰＯＰ（たとえば、０．０５）だけ増やす（４０７）。空燃比学習値ＫＲＥＦＸは、パージカットが実施されている間に空燃比フィードバック係数ＫＡＦを平均した値である。
【０１３８】
一方、空燃比学習値ＫＲＥＦＸに高側判定値ＤＫＡＦＥＶＸＨを足したものが、空燃比フィードバック係数ＫＡＦより小さく（４０８）、かつ実空燃比ＫＡＣＴが目標空燃比ＫＣＭＤより小さければ（４０９）、空燃比がリーンであることを示す。したがって、ベーパ濃度係数ＫＡＦＥＶを所定値ＤＫＥＶＡＰＯＭ（たとえば、０．０８）だけ減らす（４１０）。
【０１３９】
ステップ４０５および４０８の両方の判断ステップがＮｏであるとき、空燃比フィードバック係数ＫＡＦが、高側判定値ＤＫＡＦＥＶＸＨと低側判定値ＤＫＡＦＥＶＸＬの間にあることを示す。この場合、ステップ４１１〜４１４において、学習値ＫＲＥＦおよびＫＲＥＦＸの差に応じて、ベーパ濃度係数ＫＡＦＥＶを求める。学習値ＫＲＥＦは、パージの有無に関わらず、空燃比フィードバック制御が実行されている間に空燃比フィードバック係数ＫＡＦを平均した値である。学習値ＫＲＥＦが学習値ＫＲＥＦＸより小さければステップ４１２に進み、学習値ＫＲＥＦが学習値ＫＲＥＦＸ以上ならばステップ４１４に進む。ステップ４１２において、空燃比フィードバック係数ＫＡＦが学習値ＫＲＥＦＸより小さければ、パージの影響で空燃比がリッチに近い状態にあることを示すので、学習値ＫＲＥＦＸからＫＲＥＦを引いた値に所定値ＣＡＦＥＶ（たとえば、０．０２）を乗算した値を加算することにより、ベーパ濃度係数ＫＡＦＥＶを更新する。この場合、ＫＲＥＦ＜ＫＲＥＦＸなので、ベーパ濃度係数ＫＡＦＥＶは大きくなる。
【０１４０】
一方、ステップ４１４において空燃比フィードバック係数ＫＡＦが学習値ＫＲＥＦＸより大きければ、空燃比がリーンに近い状態にあることを示す。学習値ＫＲＥＦＸからＫＲＥＦを引いた値に所定値を乗算した値を加算することにより、ベーパ濃度係数ＫＡＦＥＶを更新する。この場合、ＫＲＥＦ＞ＫＲＥＦＸなので、ベーパ濃度係数ＫＡＦＥＶは小さくなる。こうして、ベーパ濃度係数ＫＡＦＥＶは、空燃比フィードバック係数ＫＡＦに基づいて推定される。
【０１４１】
【発明の効果】
この発明によれば、運転状態に応じて算出された上限値を超えないように、パージされる蒸発燃料の量が事前に制御されるので、空燃比フィードバック制御を最適に維持することができる。
【図面の簡単な説明】
【図１】この発明の一実施例に従う、内燃機関および蒸発燃料制御装置を概略的に示す図。
【図２】この発明の一実施例に従う、要求燃料および該要求燃料に寄与する蒸発燃料の関係を示す図。
【図３】この発明の一実施例に従う、目標パージ流量およびパージ流量を説明するための図。
【図４】この発明の一実施例に従う、蒸発燃料制御装置の機能ブロック図。
【図５】この発明の一実施例に従う、吸入空気量ＱＡＩＲを算出するフローチャート。
【図６】この発明の一実施例に従う、パージ制御弁を駆動するためのデューティＰＧＣＭＤを算出するフローチャート。
【図７】この発明の一実施例に従う、パージ流量ＱＰＧＣを算出するフローチャート。
【図８】この発明の一実施例に従う、パージ流量係数ＫＰＧＴを算出するフローチャート。
【図９】この発明の一実施例に従う、更新タイムＣＰＧＴを算出するフローチャート。
【図１０】この発明の一実施例に従う、パージ補正係数ＫＡＦＥＶＡＣＴを算出するフローチャート。
【図１１】この発明の一実施例に従う、目標パージ補正係数ＫＡＦＥＶＡＣＺを算出するフローチャート。
【図１２】この発明の一実施例に従う、ベーパ濃度係数ＫＡＦＥＶを算出するフローチャート。
【図１３】この発明の一実施例に従う、バッテリ電圧に基づく無効時間を求めるためのＤＰＧＣＶＢＸテーブルの例を示す図。
【図１４】この発明の一実施例に従う、デューティに対して差圧に基づく変動を補正する係数を求めるためのＫＤＰＢＧテーブルの例を示す図。
【図１５】この発明の一実施例に従う、吸気管圧力に基づく無効時間を求めるためのＤＰＧＣ０テーブルの例を示す図。
【図１６】この発明の一実施例に従う、パージ流量補正係数ＫＰＧＴの上限値に対して大気圧に基づく変動を補正する係数を求めるためのＫＰＧＴＰＡＸテーブルの例を示す図。
【図１７】この発明の一実施例に従う、目標空燃比ＫＣＭＤの偏差を求めるためのＤＫＣＭＤＫＰＧテーブルの例を示す図。
【図１８】この発明の一実施例に従う、ベーパ濃度係数ＫＡＦＥＶに基づいてパージ流量補正算出係数ＫＰＧＴの基本更新タイムＣＰＧＴＬＸを求めるためのＣＰＧＴＬテーブルの例を示す図。
【図１９】この発明の一実施例に従う、パージ流量補正算出係数ＫＰＧＴの更新タイムに対する吸入空気量ＱＡＩＲに基づく補正係数を求めるためのＫＣＰＧＴテーブルの例を示す図。
【図２０】この発明の一実施例に従う、エンジン回転数ＮＥに基づくパージ輸送遅れを求めるためのＣＰＧＤＬＹＲＸテーブルの例を示す図。
【図２１】この発明の一実施例に従う、吸入空気量ＱＡＩＲに基づく、空燃比学習値の高側および低側判定値ＤＫＡＦＥＶＸＨおよびＤＫＡＦＥＶＸＬを求めるためのテーブルの例を示す図。
【符号の説明】
１  エンジン
２  吸気管
５  ＥＣＵ
９  燃料タンク
２７  パージ通路
３０  パージ制御弁
【図１】
0003560156.tif 000006
【図２】
0003560156.tif 000007
【図３】
0003560156.tif 000008
【図４】
0003560156.tif 000009
【図５】
0003560156.tif 000010
【図６】
0003560156.tif 000011
【図７】
0003560156.tif 000012
【図８】
0003560156.tif 000013
【図９】
0003560156.tif 000014
【図１０】
0003560156.tif 000015
【図１１】
0003560156.tif 000016
【図１２】
0003560156.tif 000017
【図１３】
0003560156.tif 000018
【図１４】
0003560156.tif 000019
【図１５】
0003560156.tif 000020
【図１６】
0003560156.tif 000021
【図１７】
0003560156.tif 000022
【図１８】
0003560156.tif 000023
【図１９】
0003560156.tif 000024
【図２０】
0003560156.tif 000025
【図２１】
0003560156.tif 000026