(57)【特許請求の範囲】
【請求項１】
燃料タンクの上部空間と吸気通路とを連結する燃料ベーパのパージ通路と、パージ通路内に配置されたパージ制御弁と、空燃比を検出するための空燃比検出手段と、該空燃比検出手段により検出された空燃比に基づいて空燃比が目標空燃比となるように供給燃料量を制御する第１の供給燃料量補正手段と、目標空燃比に対する空燃比のずれ量から吸気通路内に供給された燃料ベーパのベーパ濃度を算出するベーパ濃度算出手段と、該ベーパ濃度に基づいて空燃比が目標空燃比となるように供給燃料量を補正する第２の供給燃料量補正手段とを具備した内燃機関の蒸発燃料処理装置において、パージが開始されたときの空燃比又はベーパ濃度の変化から燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内におけるパージ停止中の燃料ベーパのベーパ濃度変化を検出する濃度変化検出手段を具備し、該第２の供給燃料量補正手段は、その後パージ作用が一旦停止され次いで再びパージが開始されたときに該濃度変化検出手段により検出されたベーパ濃度変化に基づいて空燃比が目標空燃比となるように上記ベーパ濃度算出手段により算出されたベーパ濃度を補正する内燃機関の蒸発燃料処理装置。
【請求項２】
パージ停止時における燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内の燃料ベーパのベーパ濃度が増大したときには、その後パージ作用が一旦停止され次いで再びパージが開始されたときにベーパ濃度を予め定められた修正量だけ増大させる請求項１に記載の内燃機関の蒸発燃料処理装置。
【請求項３】
パージ開始時における空燃比が予め定められた空燃比よりも小さくなったときにはパージ停止中に燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内の燃料ベーパのベーパ濃度が増大したと判断される請求項２に記載の内燃機関の蒸発燃料処理装置。
【請求項４】
パージ開始後予め定められた期間内にベーパ濃度が予め定められた濃度を越えたと判断されたときにはパージ停止中に燃料タンク上部空間又は燃料タンク上部空間からパージ制御弁に至るパージ通路内の燃料ベーパのベーパ濃度が増大したと判断される請求項２に記載の内燃機関の蒸発燃料処理装置。
【請求項５】
パージ停止中に燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内の燃料ベーパのベーパ濃度が増大したと判断されたときにはパージ開始後予め定められた期間内におけるベーパ濃度からパージ停止直前のベーパ濃度を差し引いた差に比例した値を上記修正量とする請求項４に記載の内燃機関の蒸発燃料処理装置。
【請求項６】
パージ停止中に燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内の燃料ベーパのベーパ濃度が増大したと判断されたときにはパージ開始後予め定められた期間内におけるベーパ濃度からパージ停止直前のベーパ濃度を差し引いた差と、その後再びパージ作用が停止されたときのパージ停止期間とにより上記修正量が算出され、該修正量が該差に比例すると共に該パージ停止期間に比例する請求項４に記載の内燃機関の蒸発燃料処理装置。
【請求項７】
ベーパ濃度が上記修正量だけ増大せしめられたときに空燃比が予め定められた空燃比よりも小さいときにはパージ作用が再開される毎にベーパ濃度が予め定められた修正量だけ増大せしめられ、ベーパ濃度が上記修正量だけ増大せしめられたときに空燃比が予め定められた空燃比よりも大きくなったときには次にパージ作用が停止され次いでパージが再開されたときにベーパ濃度を修正すべきか否かが再び判断され、この判断に基づいて次にパージ作用が停止され次いでパージが再開されたときにベーパ濃度が修正される請求項２に記載の内燃機関の蒸発燃料処理装置。
【請求項８】
ベーパ濃度が上記修正量だけ増大せしめられた後一定期間ベーパ濃度が予め定められた濃度よりも大きいときにはパージ作用が再開される毎にベーパ濃度が予め定められた修正量だけ増大せしめられ、ベーパ濃度が上記修正量だけ増大せしめられた後一定期間内にベーパ濃度が予め定められた濃度よりも小さくなったときには次にパージ作用が停止され次いでパージが再開されたときにベーパ濃度を修正すべきか否かが再び判断され、この判断に基づいて次にパージ作用が停止され次いでパージが再開されたときにベーパ濃度が修正される請求項２に記載の内燃機関の蒸発燃料処理装置。
【請求項９】
パージ停止時における燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内の燃料ベーパのベーパ濃度が増大したときには、その後パージ作用が一旦停止され次いで再びパージが開始されたときから予め定められた一定時間後にベーパ濃度を予め定められた修正量だけ増大させる請求項１に記載の内燃機関の蒸発燃料処理装置。
【請求項１０】
パージ作用の停止期間が予め定められた期間よりも短かいときには上記第２の燃料供給量補正手段によるベーパ濃度の補正を禁止する請求項１に記載の内燃機関の蒸発燃料処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は内燃機関の蒸発燃料処理装置に関する。
【０００２】
【従来の技術】
燃料タンク内で発生する蒸発燃料を一時的に蓄えるキャニスタと、キャニスタから吸気通路内にパージされる燃料ベーパのパージ量を制御するパージ制御弁とを具備した内燃機関において、キャニスタに吸着されている蒸発燃料量とパージ作用が行われたときの吸気通路内におけるベーパ濃度との関係を予め記憶しておき、空燃比のずれ量からパージ開始直後における初期ベーパ濃度を求めると共にこの初期ベーパ濃度から上述の予め記憶された関係を用いてキャニスタの初期蒸発燃料吸着量を求め、次いで初期ベーパ濃度から単位時間当りのキャニスタ蒸発燃料吸着量の減少量を求め、次いで減少したキャニスタ蒸発燃料吸着量から上記予め記憶された関係を用いてベーパ濃度を予測し、予測されたベーパ濃度から再び単位時間当りのキャニスタ蒸発燃料吸着量の減少量を求め、次いで減少したキャニスタ蒸発燃料吸着量から上記予め記憶された関係を用いて再びベーパ濃度を予測し、予測されたベーパ濃度に基づいて空燃比が目標空燃比となるように供給燃料量を補正するようにした内燃機関が公知である（特開平５−２４８３１２号公報参照）。
【０００３】
即ち、過渡運転時にはベーパ濃度が変化しないのに空燃比が変動することがある。ところが空燃比のずれ量に基づいてベーパ濃度を算出しているとこのような場合にもベーパ濃度が変化したと判断され、このときベーパ濃度が更新されると逆に空燃比が変動することになる。そこで上述の内燃機関ではパージ作用が開始された後はキャニスタ蒸発燃料吸着量が徐々に減少していくとの前提に立ち、この前提をもとにベーパ濃度は時間の経過と共に減少するものと予測し、この予測されたベーパ濃度に基づき燃料噴射量を補正することにより空燃比が変動するのを抑制するようにしている。
【０００４】
【発明が解決しようとする課題】
しかしながら例えば燃料温が高いときに一時的にパージが停止されるとこの間に多量の蒸発燃料がキャニスタに吸着され、斯くしてキャニスタ蒸発燃料吸着量は増大することになる。しかしながら上述の内燃機関ではこのような場合でもキャニスタ蒸発燃料吸着量は徐々に減少するものとされ、ベーパ濃度の予測値も徐々に減少せしめられるのでパージが再開されたときにベーパ濃度の予測値が実際のベーパ濃度に対して大巾にずれ、斯くして空燃比が大巾に変動するという問題を生ずる。
【０００５】
【課題を解決するための手段】
上記問題点を解決するために１番目の発明では、燃料タンクの上部空間と吸気通路とを連結する燃料ベーパのパージ通路と、パージ通路内に配置されたパージ制御弁と、空燃比を検出するための空燃比検出手段と、空燃比検出手段により検出された空燃比に基づいて空燃比が目標空燃比となるように供給燃料量を制御する第１の供給燃料量補正手段と、目標空燃比に対する空燃比のずれ量から吸気通路内に供給された燃料ベーパのベーパ濃度を算出するベーパ濃度算出手段と、ベーパ濃度に基づいて空燃比が目標空燃比となるように供給燃料量を補正する第２の供給燃料量補正手段とを具備した内燃機関の蒸発燃料処理装置において、パージが開始されたときの空燃比又はベーパ濃度の変化から燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内におけるパージ停止中の燃料ベーパのベーパ濃度変化を検出する濃度変化検出手段を具備し、第２の供給燃料量補正手段は、その後パージ作用が一旦停止され次いで再びパージが開始されたときに濃度変化検出手段により検出されたベーパ濃度変化に基づいて空燃比が目標空燃比となるようにベーパ濃度算出手段により算出されたベーパ濃度を補正するようにしている。
【００１７】
２番目の発明では１番目の発明において、パージ停止時における燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内の燃料ベーパのベーパ濃度が増大したときには、その後パージ作用が一旦停止され次いで再びパージが開始されたときにベーパ濃度を予め定められた修正量だけ増大させるようにしている。
【００１８】
３番目の発明では２番目の発明において、パージ開始時における空燃比が予め定められた空燃比よりも小さくなったときにはパージ停止中に燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内の燃料ベーパのベーパ濃度が増大したと判断される。
４番目の発明では２番目の発明において、パージ開始後予め定められた期間内にベーパ濃度が予め定められた濃度を越えたと判断されたときにはパージ停止中に燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内の燃料ベーパのベーパ濃度が増大したと判断される。
【００１９】
５番目の発明では４番目の発明において、パージ停止中に燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内の燃料ベーパのベーパ濃度が増大したと判断されたときにはパージ開始後予め定められた期間内におけるベーパ濃度からパージ停止直前のベーパ濃度を差し引いた差に比例した値を修正量とするようにしている。
【００２０】
６番目の発明では４番目の発明において、パージ停止中に燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内の燃料ベーパのベーパ濃度が増大したと判断されたときにはパージ開始後予め定められた期間内におけるベーパ濃度からパージ停止直前のベーパ濃度を差し引いた差と、その後再びパージ作用が停止されたときのパージ停止期間とにより修正量が算出され、修正量が上述の差に比例すると共にパージ停止期間に比例する。
【００２１】
７番目の発明では２番目の発明において、ベーパ濃度が修正量だけ増大せしめられたときに空燃比が予め定められた空燃比よりも小さいときにはパージ作用が再開される毎にベーパ濃度が予め定められた修正量だけ増大せしめられ、ベーパ濃度が修正量だけ増大せしめられたときに空燃比が予め定められた空燃比よりも大きくなったときには次にパージ作用が停止され次いでパージが再開されたときにベーパ濃度を修正すべきか否かが再び判断され、この判断に基づいて次にパージ作用が停止され次いでパージが再開されたときにベーパ濃度が修正される。
【００２２】
８番目の発明では２番目の発明において、ベーパ濃度が修正量だけ増大せしめられた後一定期間ベーパ濃度が予め定められた濃度よりも大きいときにはパージ作用が再開される毎にベーパ濃度が予め定められた修正量だけ増大せしめられ、ベーパ濃度が修正量だけ増大せしめられた後一定期間内にベーパ濃度が予め定められた濃度よりも小さくなったときには次にパージ作用が停止され次いでパージが再開されたときにベーパ濃度を修正すべきか否かが再び判断され、この判断に基づいて次にパージ作用が停止され次いでパージが再開されたときにベーパ濃度が修正される。
【００２３】
９番目の発明では１番目の発明において、パージ停止時における燃料タンク上部空間内又は燃料タンク上部空間からパージ制御弁に至るパージ通路内の燃料ベーパのベーパ濃度が増大したときには、その後パージ作用が一旦停止され次いで再びパージが開始されたときから予め定められた一定時間後にベーパ濃度を予め定められた修正量だけ増大させる。
【００２４】
１０番目の発明では１番目の発明において、パージ作用の停止期間が予め定められた期間よりも短かいときには第２の燃料供給量補正手段によるベーパ濃度の補正を禁止するようにしている。
【００２５】
【発明の実施の形態】
図１を参照すると、１は機関本体、２は吸気枝管、３は排気マニホルド、４は各吸気枝管２に夫々取付けられた燃料噴射弁を示す。各吸気枝管２は共通のサージタンク５に連結され、このサージタンク５は吸気ダクト６およびエアフローメータ７を介してエアクリーナ８に連結される。吸気ダクト６内にはスロットル弁９が配置される。また、図１に示されるように内燃機関は活性炭１０を内蔵したキャニスタ１１を具備する。このキャニスタ１１は活性炭１０の両側に夫々燃料蒸気室１２と大気室１３とを有する。燃料蒸気室１２は一方では導管１４を介して燃料タンク１５の上部空間に連結され、他方では導管１６を介してサージタンク５内に連結される。導管１６内には電子制御ユニット２０の出力信号に制御されるパージ制御弁１７が配置される。燃料タンク１５内で発生した燃料蒸気は導管１４を介してキャニスタ１１内に送り込まれて活性炭１０に吸着される。パージ制御弁１７が開弁すると空気が大気室１３から活性炭１０内を通って導管１６内に送り込まれる。空気が活性炭１０内を通過する際に活性炭１０に吸着されている燃料蒸気が活性炭１０から脱離され、斯くして燃料蒸気を含んだ空気、即ち燃料ベーパが導管１６を介してサージタンク５内にパージされる。
【００２６】
電子制御ユニット２０はディジタルコンピュータからなり、双方向性バス２１によって相互に接続されたＲＯＭ（リードオンリメモリ）２２、ＲＡＭ（ランダムアクセスメモリ）２３、ＣＰＵ（マイクロプロセッサ）２４、入力ポート２５および出力ポート２６を具備する。エアフローメータ７は吸入空気量に比例した出力電圧を発生し、この出力電圧が対応するＡＤ変換器２７を介して入力ポート２５に入力される。スロットル弁９にはスロットル弁９がアイドリング開度のときにオンとなるスロットルスイッチ２８が取付けられ、このスロットルスイッチ２８の出力信号が入力ポート２５に入力される。機関本体１には機関冷却水温に比例した出力電圧を発生する水温センサ２９が取付けられ、この水温センサ２９の出力電圧が対応するＡＤ変換器２７を介して入力ポート２５に入力される。排気マニホルド３には空燃比センサ３０が取付けられ、この空燃比センサ３０の出力信号が対応するＡＤ変換器２７を介して入力ポート２５に入力される。
【００２７】
また、燃料蒸気室１２は導管３１を介して圧力センサ３２に連結され、この圧力センサ３２によって燃料蒸気室１２内の圧力が検出される。この圧力センサ３２は燃料蒸気室１２内の圧力、即ち燃料タンク１５の上部空間又は燃料タンク１５の上部空間からパージ制御弁１７に至る導管１６の圧力に比例した出力電圧を発生し、この出力電圧は対応するＡＤ変換器２７を介して入力ポート２５に入力される。更に入力ポート２５にはクランクシャフトが例えば３０度回転する毎に出力パルスを発生するクランク角センサ３３が接続される。ＣＰＵ２４ではこの出力パルスに基づいて機関回転数が算出される。一方、出力ポート２６は夫々対応する駆動回路３４を介して燃料噴射弁４およびパージ制御弁１７に接続される。
【００２８】
図１に示す内燃機関では基本的には次式に基づいて燃料噴射時間ＴＡＵが算出される。
ＴＡＵ＝ＴＰ・ＦＷ・（ＦＡＦ＋ＫＧｊ−ＦＰＧ）
ここで各係数は次のものを表わしている。
ＴＰ：基本燃料噴射時間
ＦＷ：補正係数
ＦＡＦ：フィードバック補正係数
ＫＧｊ：空燃比の学習係数
ＦＰＧ：パージ空燃比補正係数（以下、パージＡ／Ｆ補正係数と称する）
基本燃料噴射時間ＴＰは空燃比を目標空燃比とするのに必要な実験により求められた噴射時間であってこの基本燃料噴射時間ＴＰは機関負荷Ｑ／Ｎ（吸入空気量Ｑ／機関回転数Ｎ）および機関回転数Ｎの関数として予めＲＯＭ２２内に記憶されている。
【００２９】
補正係数ＦＷは暖機増量係数や加速増量係数を一まとめにして表わしたもので増量補正する必要がないときにはＦＷ＝１．０となる。
フィードバック補正係数ＦＡＦは空燃比センサ３０の出力信号に基づいて空燃比を目標空燃比に制御するために設けられている。
パージＡ／Ｆ補正係数ＦＰＧは機関の運転が開始されてからパージが開始されるまでの間はＦＰＧ＝０とされ、パージ作用が開始されると燃料ベーパ濃度が高くなるほど大きくなる。なお、機関運転中においてパージ作用が一時的に停止されたときはパージ作用の停止期間中、ＦＰＧ＝０とされる。
【００３０】
ところで上述したようにフィードバック補正係数ＦＡＦは空燃比センサ３０の出力信号に基づいて空燃比を目標空燃比に制御するためのものである。この場合、目標空燃比としてはどのような空燃比を用いてもよいが図１に示す実施例では目標空燃比が理論空燃比とされており、従って以下目標空燃比を理論空燃比とした場合について説明する。なお、目標空燃比が理論空燃比であるときには空燃比センサ３０として排気ガス中の酸素濃度に応じ出力電圧が変化するセンサが使用され、従って以下空燃比センサ３０をＯ２  センサと称する。このＯ２  センサ３０は空燃比が過濃側のとき、即ちリッチのとき０．９（Ｖ）程度の出力電圧を発生し、空燃比が希薄側のとき、即ちリーンのとき０．１（Ｖ）程度の出力電圧を発生する。
【００３１】
図２は空燃比が目標空燃比に維持されているときのＯ２  センサ３０の出力電圧Ｖとフィードバック補正係数ＦＡＦとの関係を示している。図２に示されるようにＯ２  センサ３０の出力電圧Ｖが基準電圧、例えば０．４５（Ｖ）よりも高くなると、即ち空燃比がリッチになるとフィードバック補正係数ＦＡＦはスキップ量Ｓだけ急激に低下せしめられ、次いで積分定数Ｋでもって徐々に減少せしめられる。これに対してＯ２  センサ３０の出力電圧Ｖが基準電圧よりも低くなると、即ち空燃比がリーンになるとフィードバック補正係数ＦＡＦはスキップ量Ｓだけ急激に増大せしめられ、次いで積分定数Ｋでもって徐々に増大せしめられる。
【００３２】
即ち、空燃比がリッチになるとフィードバック補正係数ＦＡＦが減少せしめられるので燃料噴射量が減少せしめられ、空燃比がリーンになるとフィードバック補正係数ＦＡＦが増大せしめられるために燃料噴射量が増大せしめられ、斯くして空燃比が理論空燃比に制御されることになる。図２に示されるようにこのときフィードバック補正係数ＦＡＦは基準値、即ち１．０を中心として上下動する。
【００３３】
また、図２においてＦＡＦＬは空燃比がリーンからリッチになったときのフィードバック補正係数ＦＡＦの値を示しており、ＦＡＦＲは空燃比がリッチからリーンになったときのフィードバック補正係数ＦＡＦの値を示している。本発明による実施例ではフィードバック補正係数ＦＡＦの変動平均値（以下、単に平均値という）としてこれらＦＡＦＬとＦＡＦＲとの平均値が用いられている。
【００３４】
図３はパージ作用の概略を示している。なお、図３においてＰＧＲは燃料ベーパのパージ率を示している。図３に示されるように本発明による実施例では機関の運転開始後、初めてパージ作用が開始されたときにはパージ率ＰＧＲは零から徐々に増大せしめられ、パージ率ＰＧＲが一定値、例えば６パーセントに達するとその後はパージ率ＰＧＲが目標パージ率に維持される。
【００３５】
次いで例えば減速運転時に燃料の供給が停止されたような場合にはＸで示されるようにパージ率ＰＧＲが一時的に零にされる。次いでパージ作用が停止される直前のパージ率ＰＧＲでもってパージ作用が再開される。
次に図４を参照しつつ燃料ベーパ濃度の学習方法について説明する。
燃料ベーパ濃度の学習は単位パージ率当りのベーパ濃度を正確に求めることから始まる。この単位パージ率当りのベーパ濃度が図４においてＦＧＰＧで示されている。パージＡ／Ｆ補正係数ＦＰＧはＦＧＰＧにパージ率ＰＧＲを乗算することによって得られる。
【００３６】
単位パージ率当りのベーパ濃度ＦＧＰＧはフィードバック補正係数ＦＡＦがスキップ（図２のＳ）する毎に次式に基づいて算出される。
ｔＦＧ＝（１−ＦＡＦＡＶ）／（ＰＧＲ・ａ）
ＦＧＰＧ＝ＦＧＰＧ＋ｔＦＧ
ここでｔＦＧはＦＡＦのスキップ毎に行われるＦＧＰＧの更新量を示しており、ＦＡＦＡＶはフィードバック補正係数の平均値（＝（ＦＡＦＬ＋ＦＡＦＲ）／２）を示しており、本発明による実施例ではａは２に設定されている。
【００３７】
即ち、パージが開始されると空燃比がリッチとなるために空燃比を理論空燃比とすべくフィードバック補正係数ＦＡＦが小さくなる。次いで時刻ｔ１  においてＯ２  センサ３１により空燃比がリッチからリーンに切替ったと判断されるとフィードバック補正係数ＦＡＦは増大せしめられる。この場合、パージが開始されてから時刻ｔ１  に至るまでのフィードバック補正係数ＦＡＦの変化量ΔＦＡＦ（ΔＦＡＦ＝（１．０−ＦＡＦ））はパージ作用による空燃比の変動量を表しており、この変動量ΔＦＡＦは時刻ｔ１  における燃料ベーパ濃度を表わしている。
【００３８】
時刻ｔ１  に達すると空燃比は理論空燃比に維持され、その後空燃比が理論空燃比からずれないようにフィードバック補正係数の平均値ＦＡＦＡＶを１．０まで戻すために単位パージ率当りのベーパ濃度ＦＧＰＧがフィードバック補正係数ＦＡＦのスキップ毎に徐々に更新される。このときのＦＧＰＧの一回当りの更新量ｔＦＧは１．０に対するフィードバック補正係数の平均値ＦＡＦＡＶのずれ量の半分とされ、従ってこの更新量ｔＦＧは上述した如くｔＦＧ＝（１−ＦＡＦＡＶ）／（ＰＧＲ・２）となる。
【００３９】
図４に示されるようにＦＧＰＧの更新作用が数回繰返されるとフィードバック補正係数の平均値ＦＡＦＡＶは１．０に戻り、その後は単位パージ率当りのベーパ濃度ＦＧＰＧは一定となる。このようにＦＧＰＧが一定になるということはこのときのＦＧＰＧが単位パージ率当りのベーパ濃度を正確に表わしていることを意味しており、従ってベーパ濃度の学習が完了したことを意味している。一方、実際の燃料ベーパ濃度は単位パージ率当りのベーパ濃度ＦＧＰＧにパージ率ＰＧＲを乗算した値となる。従って実際の燃料ベーパ濃度を表わすパージＡ／Ｆ補正係数ＦＰＧ（＝ＦＧＰＧ・ＰＧＲ）は図４に示されるようにＦＧＰＧが更新される毎に更新され、パージ率ＰＧＲが増大するにつれて増大する。
【００４０】
パージ開始後におけるベーパ濃度の学習が一旦完了した後においてもベーパ濃度が変化すればフィードバック補正係数ＦＡＦは１．０からずれ、このときにも上述のｔＦＧ（＝（１−ＦＡＦＡＶ）／（ＰＧＲ・ａ））を用いてＦＧＰＧの更新量が算出される。
次に図５および図６を参照しつつパージ制御ルーチンについて説明する。なお、このルーチンは一定時間毎の割込みによって実行される。
【００４１】
図５および図６を参照するとまず初めにステップ５０においてパージ制御弁１７の駆動パルスのデューティ比の計算時期か否かが判別される。本発明による実施例ではデューティ比の計算は１００ｍｓｅｃ毎に行われる。デューティ比の計算時期でないときにはステップ６３にジャンプしてパージ制御弁１７の駆動処理が実行される。これに対してデューティ比の計算時期であるときにはステップ５１に進んでパージ条件１が成立しているか否か、例えば暖機が完了したか否かが判別される。パージ条件１が成立していないときにはステップ６４に進んで初期化処理が行われ、次いでステップ６５ではデューティ比ＤＰＧおよびパージ率ＰＧＲが零とされる。これに対してパージ条件１が成立しているときにはステップ５２に進んでパージ条件２が成立しているか否か、例えば空燃比のフィードバック制御が行われているか否かおよび燃料の供給が停止されていないか否かが判別される。パージ条件２が成立していないときにはステップ６５に進み、パージ条件２が成立しているときにはステップ５３に進む。
【００４２】
ステップ５３では全開パージ量ＰＧＱと吸入空気量ＱＡとの比である全開パージ率ＰＧ１００（＝（ＰＧＱ／ＱＡ）・１００）が算出される。ここで全開パージ量ＰＧＱはパージ制御弁１７を全開にしたときのパージ量を表わしている。全開パージ率ＰＧ１００は例えば機関負荷Ｑ／Ｎ（吸入空気量ＱＡ／機関回転数Ｎ）と機関回転数Ｎの関数であって予め実験により求められており、下表に示すようなマップの形で予めＲＯＭ２２内に記憶されている。
【００４３】
【表１】
0003620261.tif 000002
【００４４】
機関負荷Ｑ／Ｎが低くなるほど吸入空気量ＱＡに対する全開パージ量ＰＧＱは大きくなるので表１に示されるように全開パージ率ＰＧ１００は機関負荷Ｑ／Ｎが低くなるほど大きくなり、また機関回転数Ｎが低くなるほど吸入空気量ＱＡに対する全開パージ量ＰＧＱは大きくなるので表１に示されるように全開パージ率ＰＧ１００は機関回転数Ｎが低くなるほど大きくなる。
【００４５】
次いでステップ５４ではフィードバック補正係数ＦＡＦが上限値ＫＦＡＦ１５（＝１．１５）と下限値ＫＦＡＦ８５（＝０．８５）との間にあるか否かが判別される。ＫＦＡＦ１５＞ＦＡＦ＞ＫＦＡＦ８５のときには、即ち空燃比が理論空燃比にフィードバック制御されているときにはステップ５５に進んでパージ率ＰＧＲが零であるか否かが判別される。既にパージ作用が行われているときにはＰＧＲ＞０であるのでこのときにはステップ５７にジャンプする。これに対してまだパージ作用が開始されていないときにはステップ５６に進んでパージ率ＰＧＲＯが再開パージ率ＰＧＲとされる。機関の運転が開始されてから初めてパージ条件１およびパージ条件２が成立したときには初期化処理（ステップ６４）によりパージ率ＰＧＲＯは零とされているのでこのときにはＰＧＲ＝０となる。これに対してパージ作用が一旦中止され、その後パージ制御が再開されたときにはパージ制御が中止される直前のパージ率ＰＧＲＯが再開パージ率ＰＧＲとされる。
【００４６】
次いでステップ５７ではパージ率ＰＧＲに一定値ＫＰＧＲｕを加算することによって目標パージ率ｔＰＧＲ（＝ＰＧＲ＋ＫＰＧＲｕ）が算出される。即ち、ＫＦＡＦ１５＞ＦＡＦ＞ＫＦＡＦ８５のときには目標パージ率ｔＰＧＲが１００ｍｓｅｃ毎に徐々に増大せしめられることがわかる。なお、この目標パージ率ｔＰＧＲに対しては上限値Ｐ（Ｐは例えば６％）が設定されており、従って目標パージ率ｔＰＧＲは上限値Ｐまでしか上昇できない。次いでステップ５９に進む。
【００４７】
一方、ステップ５４においてＦＡＦ≧ＫＦＡＦ１５であるか又はＦＡＦ≦ＫＦＡＦ８５であると判別されたときにはステップ５８に進み、パージ率ＰＧＲから一定値ＫＰＧＲｄを減算することによって目標パージ率ｔＰＧＲ（＝ＰＧＲ−ＫＰＧＲｄ）が算出される。即ち、燃料ベーパのパージ作用により空燃比を理論空燃比に維持しえないときには目標パージ率ｔＰＧＲが減少せしめられる。なお、目標パージ率ｔＰＧＲに対しては下限値Ｓ（Ｓ＝０％）が設定されている。次いでステップ５９に進む。
【００４８】
ステップ５９では目標パージ率ｔＰＧＲを全開パージ率ＰＧ１００により除算することによってパージ制御弁１７の駆動パルスのデューティ比ＤＰＧ（＝（ｔＰＧＲ／ＰＧ１００）・１００）が算出される。従ってパージ制御弁１７の駆動パルスのデューティ比ＤＰＧ、即ちパージ制御弁１７の開弁量は全開パージ率ＰＧ１００に対する目標パージ率ｔＰＧＲの割合に応じて制御されることになる。このようにパージ制御弁１７の開弁量を全開パージ率ＰＧ１００に対する目標パージ率ｔＰＧＲの割合に応じて制御すると目標パージ率ｔＰＧＲがどのようなパージ率であったとしても機関の運転状態にかかわらず実際のパージ率が目標パージ率に維持される。
【００４９】
例えば今、目標パージ率ｔＰＧＲが２％であり、現在の運転状態における全開パージ率ＰＧ１００が１０％であったとすると駆動パルスのデューティ比ＤＰＧは２０％となり、このときの実際のパージ率は２％となる。次いで運転状態が変化し、変化後の運転状態における全開パージ率ＰＧ１００が５％になったとすると駆動パルスのデューティ比ＤＰＧは４０％となり、このときの実際のパージ率は２％となる。即ち、目標パージ率ｔＰＧＲが２％であれば機関の運転状態にかかわらずに実際のパージ率は２％となり、目標パージ率ｔＰＧＲが変化して４％になれば機関の運転状態にかかわらずに実際のパージ率は４％に維持される。
【００５０】
次いでステップ６０では全開パージ率ＰＧ１００にデューティ比ＤＰＧを乗算することによって実際のパージ率ＰＧＲ（＝ＰＧ１００・（ＤＰＧ／１００））が算出される。即ち、前述したようにデューティ比ＤＰＧは（ｔＰＧＲ／ＰＧ１００）・１００で表わされ、この場合目標パージ率ｔＰＧＲが全開パージ率ＰＧ１００よりも大きくなるとデューティ比ＤＰＧは１００％以上となる。しかしながらデューティ比ＤＰＧは１００％以上にはなりえず、このときデューティ比ＤＰＧは１００％とされるために実際のパージ率ＰＧＲは目標パージ率ｔＰＧＲよりも小さくなる。従って実際のパージ率ＰＧＲは上述した如くＰＧ１００・（ＤＰＧ／１００）で表わされることになる。
【００５１】
次いでステップ６１ではデューティ比ＤＰＧがＤＰＧＯとされ、パージ率ＰＧＲがＰＧＲＯとされる。次いでステップ６２ではパージが開始されてからの時間を表しているパージ実行時間カウンタＣＰＧＲが１だけインクリメントされる。次いでステップ６３においてパージ制御弁１７の駆動処理が行われる。この駆動処理は図７に示されており、従って次に図７に示す駆動処理について説明する。
【００５２】
図７を参照するとまず初めにステップ６６においてデューティ比の出力周期か否か、即ちパージ制御弁１７の駆動パルスの立上り周期であるか否かが判別される。このデューティ比の出力周期は１００ｍｓｅｃである。デューティ比の出力周期であるときにはステップ６７に進んでデューティ比ＤＰＧが零であるか否かが判別される。ＤＰＧ＝０のときにはステップ７１に進んでパージ制御弁１７の駆動パルスＹＥＶＰがオフとされる。これに対してＤＰＧ＝０でないときにはステップ６８に進んでパージ制御弁１７の駆動パルスＹＥＶＰがオンにされる。次いでステップ６９では現在の時刻ＴＩＭＥＲにデューティ比ＤＰＧを加算することによって駆動パルスのオフ時刻ＴＤＰＧ（＝ＤＰＧ＋ＴＩＭＥＲ）が算出される。
【００５３】
一方、ステップ６６においてデューティ比の出力周期ではないと判別されたときにはステップ７０に進んで現在の時刻ＴＩＭＥＲが駆動パルスのオフ時刻ＴＤＰＧであるか否かが判別される。ＴＤＰＧ＝ＴＩＭＥＲになるとステップ７１に進んで駆動パルスＹＥＶＰがオフとされる。
次に図８に示すフィードバック補正係数ＦＡＦの算出ルーチンについて説明する。このルーチンは例えば一定時間毎の割込みによって実行される。
【００５４】
図８を参照するとまず初めにステップ１００において空燃比のフィードバック制御条件が成立しているか否かが判別される。フィードバック制御条件が成立していないときにはステップ１１３に進んでフィードバック補正係数ＦＡＦが１．０に固定され、次いでステップ１１４においてフィードバック補正係数の平均値ＦＡＦＡＶが１．０に固定される。次いでステップ１１２に進む。これに対してフィードバック制御条件が成立しているときにはステップ１０１に進む。
【００５５】
ステップ１０１ではＯ２  センサ３１の出力電圧Ｖが０．４５（Ｖ）よりも高いか否か、即ちリッチであるか否かが判別される。Ｖ≧０．４５（Ｖ）のとき、即ちリッチのときにはステップ１０２に進んで前回の処理サイクル時にリーンであったか否かが判別される。前回の処理サイクル時にリーンのとき、即ちリーンからリッチに変化したときにはステップ１０３に進んでフィードバック補正係数ＦＡＦがＦＡＦＬとされ、ステップ１０４に進む。ステップ１０４ではフィードバック補正係数ＦＡＦからスキップ値Ｓが減算され、従って図２に示されるようにフィードバック補正係数ＦＡＦはスキップ値Ｓだけ急激に減少せしめられる。次いでステップ１０５ではＦＡＦＬとＦＡＦＲの平均値ＦＡＦＡＶが算出される。次いでステップ１０６ではスキップフラグがセットされる。次いでステップ１１２に進む。一方、ステップ１０２において前回の処理サイクル時にはリッチであったと判別されたときはステップ１０７に進んでフィードバック補正係数ＦＡＦから積分値Ｋ（Ｋ≪Ｓ）が減算され、次いで１１２に進む。従って図２に示されるようにフィードバック補正係数ＦＡＦは徐々に減少せしめられる。
【００５６】
一方、ステップ１０１においてＶ＜０．４５（Ｖ）であると判断されたとき、即ちリーンのときにはステップ１０８に進んで前回の処理サイクル時にリッチであったか否かが判別される。前回の処理サイクル時にリッチのとき、即ちリッチからリーンに変化したときにはステップ１０９に進んでフィードバック補正係数ＦＡＦがＦＡＦＲとされ、ステップ１１０に進む。ステップ１１０ではフィードバック補正係数ＦＡＦにスキップ値Ｓが加算され、従って図２に示されるようにフィードバック補正係数ＦＡＦはスキップ値Ｓだけ急激に増大せしめられる。次いでステップ１０５ではＦＡＦＬとＦＡＦＲの平均値ＦＡＦＡＶが算出される。一方、ステップ１０８において前回の処理サイクル時にはリーンであったと判別されたときはステップ１１１に進んでフィードバック補正係数ＦＡＦに積分値Ｋが加算される。従って図２に示されるようにフィードバック補正係数ＦＡＦは徐々に増大せしめられる。
【００５７】
ステップ１１２ではフィードバック補正係数ＦＡＦが変動許容範囲の上限１．２と下限０．８によりガードされる。即ち、ＦＡＦが１．２よりも大きくならず、０．８よりも小さくならないようにＦＡＦの値がガードされる。上述したように空燃比がリッチとなってＦＡＦが小さくなると燃料噴射時間ＴＡＵが短かくなり、空燃比がリーンとなってＦＡＦが大きくなると燃料噴射時間ＴＡＵが長くなるので空燃比が理論空燃比が維持されることになる。
【００５８】
図８に示すフィードバック補正係数ＦＡＦの算出ルーチンが完了すると図９に示される空燃比の学習ルーチンに進む。
図９を参照するとまず初めにステップ１２０において空燃比の学習条件が成立しているか否かが判別される。空燃比の学習条件が成立していないときにはステップ１２８にジャンプし、空燃比の学習条件が成立しているときにはステップ１２１に進む。ステップ１２１ではスキップフラグがセットされているか否かが判別され、スキップフラグがセットされていないときにはステップ１２８にジャンプする。これに対してスキップフラグがセットされているときにはステップ１２２に進んでスキップフラグがリセットされ、次いでステップ１２３に進む。即ち、フィードバック補正係数ＦＡＦがスキップせしめられる毎にステップ１２３に進むことになる。
【００５９】
ステップ１２３ではパージ率ＰＧＲが零であるか否か、即ちパージ作用が行われているか否かが判別される。パージ率ＰＧＲが零でないとき、即ちパージ作用が行われているときには図１０に示されるベーパ濃度の学習ルーチンへ進む。これに対してパージ率ＰＧＲが零のとき、即ちパージ作用が行われていないときにはステップ１２４に進んで空燃比の学習が行われる。
【００６０】
即ち、まず初めにステップ１２４においてフィードバック補正係数の平均値ＦＡＦＡＶが１．０２よりも大きいか否かが判別される。ＦＡＦＡＶ≧１．０２のときにはステップ１２７に進んで学習領域ｊに対する空燃比の学習値ＫＧｊに一定値Ｘが加算される。即ち、本発明による実施例では機関負荷に応じて複数個の学習領域ｊが予め定められており、各学習領域ｊに対して夫々空燃比の学習値ＫＧｊが設けられている。従ってステップ１２７では機関負荷に応じた学習領域ｊの空燃比の学習値ＫＧｊが更新される。次いでステップ１２８に進む。
【００６１】
一方、ステップ１２４においてＦＡＦＡＶ＜１．０２であると判別されたときにはステップ１２５に進んでフィードバック補正係数の平均値ＦＡＦＡＶが０．９８よりも小さいか否かが判別される。ＦＡＦＡＶ≦０．９８のときにはステップ１２６に進んで機関負荷に応じた学習領域ｊの空燃比の学習値ＫＧｊから一定値Ｘが減算される。一方、ステップ１２５においてＦＡＦＡＶ＞０．９８であると判別されたとき、即ちＦＡＦＡＶが０．９８と１．０２との間にあるときには空燃比の学習値ＫＧｊを更新することなくステップ１２８にジャンプする。
【００６２】
ステップ１２８およびステップ１２９ではベーパ濃度を学習するための初期化処理が行われる。即ち、ステップ１２８では機関始動中であるか否かが判別され、機関始動中のときにはステップ１２９に進んで単位パージ率当りのベーパ濃度ＦＧＰＧが零とされ、パージ実行時間カウント値ＣＰＧＲがクリアされる。次いで図１１に示される燃料噴射時間の算出ルーチンに進む。一方、始動時でない場合には図１１に示される燃料噴射時間の算出ルーチンに直接進む。
【００６３】
上述したようにステップ１２３においてパージ作用が行われていると判断されたときには図１０に示されるベーパ濃度の学習ルーチンに進む。次にこのベーパ濃度の学習ルーチンについて説明する。
図１０を参照すると、まず初めにステップ１３０において、フィードバック補正係数の平均値ＦＡＦＡＶが一定範囲内にあるか否か、即ち１．０２＞ＦＡＦＡＶ＞０．９８であるか否かが判別される。フィードバック補正係数の平均値ＦＡＦＡＶが設定範囲内にあるとき、即ち１．０２＞ＦＡＦＡＶ＞０．９８であるときにはステップ１３２に進んで単位パージ率当りのパージ濃度ＦＧＰＧの更新量ｔＦＧが零とされ、次いでステップ１３３に進む。従ってこのときにはベーパ濃度ＦＧＰＧは更新されない。
【００６４】
一方、ステップ１３０においてフィードバック補正係数の平均値ＦＡＦＡＶが一定範囲を越えていると判断されたとき、即ちＦＡＦＡＶ≧１．０２であるか又はＦＡＦＡＶ≦０．９８であるときにはステップ１３１に進んで次式に基づきベーパ濃度ＦＧＰＧの更新量ｔＦＧが算出される。
ｔＦＧ＝（１．０−ＦＡＦＡＶ）／ＰＧＲ・ａ
ここでａは２である。即ちフィードバック補正係数の平均値ＦＡＦＡＶが設定範囲（０．９８と１．０２との間）を越えると１．０に対するＦＡＦＡＶのずれ量の半分が更新量ｔＦＧとされる。次いでステップ１３３に進む。ステップ１３３ではベーパ濃度ＦＧＰＧに更新量ｔＦＧが加算される。次いでステップ１３４ではベーパ濃度ＦＧＰＧの更新回数を表している更新回数カウンタＣＦＧＰＧが１だけインクリメントされる。次いで図１１に示される燃料噴射時間の算出ルーチンに進む。
【００６５】
次に図１１に示される燃料噴射時間の算出ルーチンについて説明する。
図１１を参照するとまず初めにステップ１４０において機関負荷Ｑ／Ｎおよび機関回転数Ｎに基づき基本燃料噴射時間ＴＰが算出される。次いでステップ１４１では暖機増量等のための補正係数ＦＷが算出される。次いでステップ１４２では単位パージ率当りのベーパ濃度ＦＧＰＧにパージ率ＰＧＲを乗算することによってパージＡ／Ｆ補正係数ＦＧＲ（＝ＦＧＰＧ・ＰＧＲ）が算出される。次いでステップ１４３では次式に基づいて燃料噴射時間ＴＡＵが算出される。
【００６６】
ＴＡＵ＝ＴＰ・ＦＷ・（ＦＡＦ＋ＫＧｊ−ＦＰＧ）
ところで前述したように本発明による実施例ではパージ作用中にパージ作用が一時的に停止され、次いでパージ作用が再開される際にはパージ作用が停止される直前のパージ率でもってパージ作用が再開される。この場合、パージ作用が停止される直前の吸気通路内のベーパ濃度とパージが再開されたときの吸気通路内のベーパ濃度とがほぼ同じであればパージ再開時に空燃比は変動することなく、空燃比はただちに目標空燃比に維持される。
【００６７】
ところが例えば燃料タンク１５内の燃料温が高いときにパージ作用が停止せしめられるとパージ作用が停止せしめられている間に多量の蒸発燃料が燃料タンク１５内に発生し、従ってこの間に多量の蒸発燃料がキャニスタ１１の活性炭１０に吸着されることになる。このように多量の蒸発燃料が燃料タンク１５内に発生し、また多量の蒸発燃料がキャニスタ１１の活性炭１０に吸着されているときにパージ作用が再開されるとパージ再開時における吸気通路内のベーパ濃度がパージ停止直前における吸気通路内のベーパ濃度に比べてかなり高くなる。この場合、パージ再開時におけるベーパ濃度がパージ停止直前におけるベーパ濃度と同じであるとして燃料供給量を補正すると空燃比が大巾にリッチになってしまうという問題を生ずる。
【００６８】
そこで本発明ではパージ作用が停止されているときに燃料タンク１５の上部空間内又は燃料タンク１５の上部空間からパージ制御弁１７に至るパージ通路内の燃料ベーパのベーパ濃度を検出し、パージ作用が停止されているときにこのベーパ濃度が増大したときには燃料噴射時間ＴＡＵを算出する際に用いるベーパ濃度による補正値、具体的には単位パージ率当りのベーパ濃度ＦＧＰＧを増大させるようにしている。
【００６９】
次に図１２および図１３を参照しつつ具体的に説明する。図１２および図１３に示す実施例では圧力センサ３２により検出された燃料蒸気室１２内の圧力ＰＴに基づいてベーパ濃度ＦＧＰＧが制御される。
図１２においてｔ１  においてパージ作用が停止され、ｔ２  においてパージ作用が再開されたとする。パージ作用が停止される前は図１２に示されるように燃料蒸気室１２内の圧力ＰＴは負圧となっている。燃料タンク１５内の燃料温が低いときには蒸発燃料の発生量は少なく、このときパージ作用が停止されると燃料蒸気室１２内の圧力ＰＴは図１２において破線で示すようにほぼ大気圧まで上昇する。この場合には図１２において破線で示されるようにベーパ濃度ＦＧＰＧの値は更新されることなくそのまま維持される。
【００７０】
これに対し燃料タンク１５内の燃料温が高いときにパージ作用が停止せしめられると燃料タンク１５内にはパージ作用停止中に多量の蒸発燃料が発生し続けるために燃料蒸気室１２内の圧力ＰＴは図１２において実線で示すように大気圧よりもかなり大きく増大する。そこで図１２に示す第１実施例では燃料蒸気室１２内の圧力ＰＴが予め定められた設定値ＫＰＴを越えたときにはベーパ濃度ＦＧＰＧを実線で示すように徐々に増大させ、パージ作用が開始されたときには増大されたベーパ濃度ＦＧＰＧを用いて燃料噴射時間ＴＡＵを補正するようにしている。このようにすることによってパージ再開時に空燃比が変動するのを阻止することができる。
【００７１】
図１３はベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。
図１３を参照するとまず初めにステップ２００においてパージ実行時間カウント値ＣＰＧＲが一定値Ｋ３を越えたた否か、例えば機関運転が開始された後最初にパージが開始されてから３分を経過したか否かが判別される。ＣＰＧＲ≦Ｋ３のときには処理ルーチンを完了し、従ってこのときにはベーパ濃度ＦＧＰＧの更新作用は行われない。即ち、最初にパージが開始されたときにはベーパ濃度ＦＧＰＧの学習は未だ行われておらず、このとき燃料蒸気室１２内の圧力ＰＴに基づきベーパ濃度ＦＧＰＧを更新しても意味がないのでこのときにはベーパ濃度ＦＧＰＧの更新作用を禁止するようにしている。一方、最初にパージが開始されてから３分を経過すればベーパ濃度ＦＧＰＧの学習は完了しているものと考えられ、従ってその後、ベーパ濃度ＦＧＰＧの更新作用を行うようにしている。
【００７２】
即ち、ステップ２００においてＣＰＧＲ＞Ｋ３であると判別されたときにはステップ２０１に進んでパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止されているときにはステップ２０２に進んで圧力センサ３２により検出された燃料蒸気室１２内の圧力ＰＴが設定値ＫＰＴ（図１２）よりも高いか否かが判別される。ＰＴ＞ＫＰＴのときにはステップ２０３に進んでベーパ濃度ＦＧＰＧに一定値ΔＫが加算される。従ってこのとき図１２に示されるようにベーパ濃度ＦＧＰＧは徐々に増大せしめられる。
【００７３】
図１４および図１５に第２実施例を示す。この実施例では燃料蒸気室１２内の圧力ＰＴから燃料タンク１５内における単位時間当りの蒸発燃料量ＰＶを求め、この蒸発燃料量ＰＶの累積値を求めてこの累積値が予め定められた設定値ＫＤを越えたときにベーパ濃度ＦＧＰＧを徐々に増大せしめるようにしている。なお、この場合、燃料蒸気室１２内の圧力ＰＴと単位時間当りの蒸発燃料量ＰＶとの関係は予め実験により求められており、この関係が図１４に示されている。
【００７４】
図１５は第２実施例におけるベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。
図１５を参照するとまず初めにステップ３００において更新回数カウント値ＣＦＧＰＧが予め定められた設定値Ｋ２０、例えば２０よりも大きいか否かが判別される。ＣＦＧＰＧ≦Ｋ２０のときには処理サイクルを完了する。一方、ＣＦＧＰＧ＞Ｋ２０になれば、即ちベーパ濃度ＦＧＰＧの更新回数がほぼ２０回以上になればベーパ濃度ＦＧＰＧの学習が完了していると判断され、このときにはステップ３０１に進む。
【００７５】
ステップ３０１ではパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止せしめられているときにはステップ３０２に進んで燃料蒸気室１２内の圧力ＰＴに基づき図１４に示す関係から単位時間当りの蒸発燃料量ＰＶが算出される。次いでステップ３０３では蒸発燃料量ＰＶの累積値ΣＰＶ（＝ΣＰＶ＋ＰＶ）が算出される。次いでステップ３０４では累積値ΣＰＶが予め定められた設定値ＫＤよりも大きくなったか否かが判別され、ΣＰＶ≧ＫＤのときにはステップ３０５に進んでベーパ濃度ＦＧＰＧに一定値ΔＫが加算される。従ってΣＰＶ≧ＫＤである間、ベーパ濃度ＦＧＰＧが徐々に増大せしめられる。一方、ステップ３０１においてパージ率ＰＧＲ＞０であると判断されたときにはステップ３０６に進んで累積値ΣＰＶが零とされる。
【００７６】
図１６および図１７に第３実施例を示す。この実施例では燃料タンク１５内における蒸発燃料量ＴＶとベーパ濃度ＦＧＰＧとの関係を予め実験により求めておき、この関係に基づいてベーパ濃度ＦＧＰＧを求めるようにしている。図１６に燃料タンク１５内における蒸発燃料量ＴＶとベーパ濃度ＦＧＰＧとの関係を示す。
【００７７】
図１７は第３実施例を実行するためのベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。図１７を参照するとまず初めにステップ４００においてパージ時間実行カウント値ＣＰＧＲが設定値Ｋ３よりも大きいか否か、即ち機関の運転が開始された後パージ作用が開始されてから３分が経過したか否かが判別される。ＣＰＧＲ≦Ｋ３のときには処理サイクルを完了する。これに対しＣＰＧＲ＞Ｋ３のときにはステップ４０１に進んでパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止されているときにはステップ４０２に進んでパージ作用停止直後における燃料タンク１５内の蒸発燃料量ＴＶ１を算出したか否かが判別される。パージ作用停止直後にはまだ蒸発燃料量ＴＶ１を算出していないのでこのときにはステップ４０３に進み、そのときのベーパ濃度ＦＧＰＧから図１６に示す関係を用いて蒸発燃料量ＴＶ１が算出される。
【００７８】
次いでステップ４０４では燃料蒸気室１２内の圧力ＰＴから図１４に示す関係を用いて単位時間当りの蒸発燃料量ＰＶが算出され、次いでステップ４０５では蒸発燃料量の累積値ΣＰＶ（＝ΣＰＶ＋ＰＶ）が算出される。次の処理サイクルではステップ４０２からステップ４０４にジャンプする。
一方、ステップ４０１においてＰＧＲ＞０であると判別されると、即ちパージ作用が開始されるとステップ４０６に進み、蒸発燃料量の累積値ΣＰＶが設定値ＫＤよりも大きいか否かが判別される。なお、このときのΣＰＶはパージ作用が停止している期間中に蒸発した燃料量を表している。ΣＰＶ＜ＫＤのときにはステップ４０８にジャンプし、ΣＰＶが零とされる。これに対しΣＰＶ≧ＫＤのときにはステップ４０７に進んでパージ停止直後の蒸発燃料量ＴＶ１にΣＰＶを加算することによりパージ再開時における燃料タンク１５内の蒸発燃料量ＰＶ２が算出され（図１６）、このＰＶ２から図１６に示す関係を用いてパージ再開時におけるベーパ濃度ＦＧＰＧが算出される。
【００７９】
図１８および図１９に第４実施例を示す。この実施例では燃料タンク１５の燃料温に基づいてパージ再開時の、ベーパ濃度ＦＧＰＧが算出される。この実施例では図１８に示されるように燃料タンク１５に燃料温を検出するための温度センサ３５が取付けられる。
図１９は第４実施例を実行するためのベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。
【００８０】
図１９を参照するとまず初めにステップ５００においてパージ時間実行カウント値ＣＰＧＲが設定値Ｋ３よりも大きいか否か、即ち機関の運転が開始された後パージ作用が開始されてから３分が経過したか否かが判別される。ＣＰＧＲ≦Ｋ３のときには処理サイクルを完了する。これに対しＣＰＧＲ＞Ｋ３のときにはステップ５０１に進んでパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止されているときにはステップ５０２に進んでパージ停止期間を表しているパージ停止期間カウント値ＣＯＦＦが１だけインクリメントされる。
【００８１】
次いでステップ５０３では温度センサ３５により検出された燃料タンク１５内の燃料温ＴＥＭＰが多量の蒸発燃料を発生させる温度Ｋ４５、例えば４５℃よりも高いか否かが判別される。ＴＥＭＰ＞Ｋ４５のときにはステップ５０４に進んでパージ停止期間カウント値ＣＯＦＦが一定値ＫＣよりも大きいか否かが判別される。ＣＯＦＦ＞ＫＣのときにはステップ５０５に進んでベーパ濃度ＦＧＰＧに一定値ΔＫが加算される。即ち、この実施例ではパージ停止期間が短かいとき（ＣＯＦＦ≦ＫＣ）にはベーパ濃度ＦＧＰＧの更新作用が禁止される。これに対し、燃料タンク１５内の燃料温が例えば４５℃以上であってパージの停止期間が比較的長いときにはベーパ濃度ＦＧＰＧが徐々に増大せしめられる。一方、ステップ５０１においてＰＧＲ＞０であると判断されるとステップ５０６に進んでＣＯＦＦが零とされる。
【００８２】
図２０および図２１に第５実施例を示す。この実施例では燃料タンク１５内の燃料温ＴＥＭＰと単位時間当りの燃料タンク１５内の蒸発燃料量ＰＶとの関係を実験により予め求めておき、この関係に基づいてパージ再開時におけるベーパ濃度ＦＧＰＧの更新作用が行われる。図２０は燃料タンク１５内の燃料圧ＴＥＭＰと単位時間当りの燃料タンク１５内の蒸発燃料量ＰＶとの関係を示している。
【００８３】
図２１を参照するとまず初めにステップ６００においてパージ時間実行カウント値ＣＰＧＲが設定値Ｋ３よりも大きいか否か、即ち機関の運転が開始された後パージ作用が開始されてから３分が経過したか否かが判別される。ＣＰＧＲ≦Ｋ３のときには処理サイクルを完了する。これに対しＣＰＧＲ＞Ｋ３のときにはステップ６０１に進んでパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止されているときにはステップ６０２に進んで燃料タンク１５内の燃料温ＴＥＭＰに基づき図２０に示す関係から単位時間当りの蒸発燃料量ＰＶが算出される。次いでステップ６０３では蒸発燃料量ＰＶの累積値ΣＰＶ（＝ΣＰＶ＋ＰＶ）が算出される。次いでステップ６０４では累積値ΣＰＶが予め定められた設定値ＫＤよりも大きくなったか否かが判別され、ΣＰＶ≧ＫＤのときにはステップ６０５に進んでベーパ濃度ＦＧＰＧに一定値ΔＫが加算される。従ってΣＰＶ≧ＫＤである間、ベーパ濃度ＦＧＰＧが徐々に増大せしめられる。一方、ステップ６０１においてベーパ率ＰＧＲ＞０であると判断されたときにはステップ６０６に進んで累積値ΣＰＶが零とされる。
【００８４】
次に第６実施例について説明する。この実施例ではパージ作用が停止されているときに燃料タンク１５の上部空間内又は燃料タンク１５の上部空間からパージ制御弁１７に至るパージ通路内の燃料ベーパのベーパ濃度を検出し、パージ作用が停止されているときにこのベーパ濃度が増大したときにはパージ再開時におけるフィードバック補正係数ＦＡＦの値を減少させるようにしている。図２２および図２３はこの第６実施例を具体的に示している。
【００８５】
図２２は図１２と同様にｔ１  においてパージ作用が停止され、ｔ２  においてパージ作用が再開された場合を示している。また、実線は燃料タンク１５内の燃料温が高いときを示しており、破線は燃料タンク１５内の燃料温が低いときを示している。この第６実施例では図２２に示されるようにパージ停止中に燃料蒸気室１２内の圧力ＰＴが予め定められた設定値ＫＰＴＫを越えたときにはパージ再開時ｔ２  におけるフィードバック補正係数ＦＡＦの値がパージ停止直前ｔ１  の値に対して予め定められた修正量ＫＦＡＦ１０だけ減少せしめられる。図２２に示す例では修正量ＫＦＡＦ１０は０．１とされている。
【００８６】
このように燃料蒸気室１２内の圧力ＰＴが設定値をＫＰＴＫ越えたときに、即ちパージ停止直前ｔ１  におけるパージガスのベーパ濃度に比べてパージ再開時ｔ２  におけるパージガスのベーパ濃度が高くなったときにパージ再開時ｔ２  におけるフィードバック補正係数ＦＡＦの値が修正量ＫＦＡＦ１０だけ減少せしめられるとパージ再開時ｔ２  に空燃比がリッチになることがなく、斯くしてパージ再開時に空燃比が変動するのを阻止することができる。
【００８７】
図２３は第６実施例を実行するためのベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。図２３を参照するとまず初めにステップ７００においてパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止されているときにはステップ７０１に進んで圧力センサ３２により検出された燃料蒸気室１２内の圧力ＰＴが設定値ＫＰＴＫ（図２２）よりも高いか否かが判別される。ＰＴ≧ＫＰＴＫのときにはステップ７０２に進んでフィードバック補正係数ＦＡＦの修正量ＫＦＡＦがＫＦＡＦ１０（図２２）とされる。これに対してＰＴ＜ＫＰＴＫのときにはステップ７０４に進んでＫＦＡＦが零とされる。
【００８８】
一方、ステップ７００においてＰＧＲ＞０であると判別されると、即ちパージ作用が開始されるとステップ７０３に進み、フィードバック補正係数ＦＡＦから修正量ＫＦＡＦが減算される。次いでステップ７０４に進む。即ち、パージ停止中にＰＴ≧ＫＰＴＫになるとパージ再開時のＦＡＦが修正量ＫＦＡＦだけ減少せしめられる。
【００８９】
図２４はベーパ濃度の制御ルーチンの第７実施例を示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。
この実施例はパージ再開時にパージ作用が空燃比に大きな影響を与える場合に限ってパージ再開時にフィードバック補正係数ＦＡＦの値を減少させるようにした場合を示している。例えば機関始動後パージを初めて開始したときにはパージ率ＰＧＲが小さなパージ率ＰＧＲから徐々に大きくされる。この場合、パージ率ＰＧＲが小さなときにパージが停止され次いでパージが再開されたときにフィードバック補正係数ＦＡＦの値が減少せしめられると過補正となり、空燃比が大巾にリーンとなる危険性がある。これを防止するために第７実施例ではパージ実行時間カウント値ＣＰＧＲが一定時間ＫＣＰＧＲ３、例えば３分を越えたときに限ってパージ再開時にフィードバック補正係数ＦＡＦを減少させるようにしている。
【００９０】
即ち、図２４を参照するとまず初めにステップ８００においてパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止されているときにはステップ８０１に進んで圧力センサ３２により検出された燃料蒸気室１２内の圧力ＰＴが設定値ＫＰＴＫ（図２２）よりも高いか否かが判別される。ＰＴ≧ＫＰＴＫのときにはステップ８０２に進んでフィードバック補正係数ＦＡＦの修正量ＫＦＡＦがＫＦＡＦ１０（図２２）とされる。これに対してＰＴ＜ＫＰＴＫのときにはステップ８０５に進んでＫＦＡＦが零とされる。
【００９１】
一方、ステップ８００においてＰＧＲ＞０であると判別されると、即ちパージ作用が開始されるとステップ８０３に進み、パージ実行時間カウント値ＣＰＧＲが一定時間ＫＣＰＧＲ３よりも大きくなったか否かが判別される。ＣＰＧＲ＜ＫＣＰＧＲ３のときにはステップ８０５にジャンプする。これに対してＣＰＧＲ≧ＫＣＰＧＲ３のときにはステップ８０４に進んでフィードバック補正係数ＦＡＦから修正量ＫＦＡＦが減算される。次いでステップ８０５に進む。即ち、パージ停止中にＰＴ≧ＫＰＴＫになるとパージ再開時にＣＰＧＲ≧ＫＣＰＧＲ３となっていればパージ再開時のＦＡＦが修正量ＫＦＡＫだけ減少せしめられる。
【００９２】
図２５から図２８は夫々、パージ再開時にパージ作用が空燃比に大きな影響を与える場合に限ってパージ再開時にフィードバック補正係数ＦＡＦの値を減少させるようにした第７実施例の変形例を示している。図２５から図２８に示されるベーパ濃度の制御ルーチンにおいて図２４に示すルーチンと異なるのは図２４のステップ８０３だけであり、その他のステップ８００，８０１，８０２，８０４，８０５については図２４のルーチンと同じであるので図２４のステップ８０３に対応するステップのみについて説明する。
【００９３】
図２５に示すルーチンではステップ８０３ａにおいてパージ率ＰＧＲが予め定められたパージ率ＫＰＧＲ０５、例えば０．５パーセントよりも大きいか否かが判別され、ＰＧＲ≧ＫＰＧＲ０５の場合に限ってステップ８０４に進む。即ち、パージ率ＰＧＲが小さなときにパージが再開され、このときにフィードバック補正係数ＦＡＦの値が減少せしめられると過補正となって空燃比が大巾にリーンとなる危険性がある。これを防止するためにパージ率ＰＧＲが予め定められたパージ率ＫＰＧＲ０５を越えたときに限ってパージ再開時にフィードバック補正係数ＦＡＦを減少させるようにしている。
【００９４】
図２６に示すルーチンではステップ８０３ｂにおいてパージ制御弁１７のデューティ比ＤＰＧが予め定められたデューティ比ＫＤＰＧ１０、例えば１０パーセントよりも大きいか否かが判別され、ＤＰＧ≧ＫＤＰＧ１０の場合に限ってステップ８０４に進む。即ち、デューティ比ＤＰＧが小さなときにパージが再開され、このときにフィードバック補正係数ＦＡＦの値が減少せしめられると過補正となって空燃比が大巾にリーンとなる危険性がある。これを防止するためにデューティ比ＤＰＧが予め定められたデューティ比ＫＤＰＧ１０よりも大きいときに限ってパージ再開時にフィードバック補正係数ＦＡＦを減少させるようにしている。
【００９５】
図２７に示すルーチンではステップ８０３ｃにおいて吸入空気量Ｇａが予め定められた吸入空気量ＫＧａよりも少ないか否かが判別され、Ｇａ≦ＫＧａの場合に限ってステップ８０４に進む。即ち、吸入空気量が多く、燃料噴射量が多いときにパージが再開され、このときにフィードバック補正係数ＦＡＦの値が減少せしめられると過補正となって空燃比が大巾にリーンとなる危険性がある。これを防止するために吸入空気量Ｇａが予め定められた吸入空気量ＫＧａよりも少ないときに限ってパージ再開時にフィードバック補正係数ＦＡＦを減少させるようにしている。
【００９６】
図２８に示すルーチンではステップ８０３ｄにおいてベーパ濃度の更新回数ＣＦＧＰＧが予め定められた回数ＫＣＦＧＰＧ２０、例えば２０回よりも大きいか否かが判別され、ＣＦＧＰＧ≧ＫＣＦＧＰＧ２０の場合に限ってステップ８０４に進む。即ち、ベーパ濃度の更新回数が小さいときにはベーパ濃度が実際のベーパ濃度を正確に表わしていない場合が多く、このような場合にパージが再開されたときにフィードバック補正係数ＦＡＦの値が減少せしめられると過補正となって空燃比が大巾に変動する危険性がある。これを防止するためにベーパ濃度の更新回数ＣＦＧＰＧが予め定められた回数ＫＣＦＧＰＧ２０よりも大きいときに限ってパージ再開時にフィードバック補正係数ＦＡＦを減少させるようにしている。
【００９７】
図２９および図３０に第８実施例を示す。パージ停止中における燃料蒸気室１２の圧力ＰＴが高くなるほどパージ再開時におけるパージガス中のベーパ濃度は高くなる。従ってこの実施例では図２９に示されるようにパージ停止中における燃料蒸気室１２内の圧力ＰＴが高くなるほどフィードバック補正係数ＦＡＦの修正量ＫＦＡＦが大きくされる。
【００９８】
図３０は第８実施例を実行するためのベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。図３０を参照するとまず初めにステップ９００においてパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止されているときにはステップ９０１に進んで圧力センサ３２により検出された燃料蒸気室１２内の圧力ＰＴが設定値ＫＰＴＫ（図２２）よりも高いか否かが判別される。ＰＴ≧ＫＰＴＫのときにはステップ９０２に進んで図２９に示す関係から圧力ＰＴに基づいてフィードバック補正係数ＦＡＦの修正量ＫＦＡＦが算出される。これに対してＰＴ＜ＫＰＴＫのときにはステップ９０４に進んでＫＦＡＦが零とされる。
【００９９】
一方、ステップ９００においてＰＧＲ＞０であると判別されると、即ちパージ作用が開始されるとステップ９０３に進み、フィードバック補正係数ＦＡＦから修正量ＫＦＡＦが減算される。次いでステップ９０４に進む。即ち、パージ停止中にＰＴ≧ＫＰＴＫになるとパージ再開時のＦＡＦが修正量ＫＦＡＦだけ減少せしめられる。
【０１００】
図３１および図３２に第９実施例を示す。パージ停止中における燃料タンク１５の上部空間内又は燃料タンク１５の上部空間からパージ制御弁１７に至るパージ通路内の燃料ベーパのベーパ濃度の増大量が大きくてもパージ停止直前におけるベーパ濃度ＦＧＰＧが大きいほどパージ停止直前のベーパ濃度ＦＧＰＧに対するパージ再開時におけるベーパ濃度ＦＧＰＧの変化割合は小さくなる。従ってこの実施例では修正量ＫＦＡＦに補正係数ＫＦＧＰＧを乗算することによって最終的な修正量（ＫＦＡＦ・ＫＦＧＰＧ）を求め、この補正係数ＫＦＧＰＧを図３１に示すようにベーパ濃度ＦＧＰＧが大きくなるほど小さくするようにしている。このようにすることによってパージ再開時におけるベーパ濃度ＦＧＰＧの過補正を防止することができる。
【０１０１】
図３２は第９実施例を実行するためのベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。図３２を参照するとまず初めにステップ１０００においてパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止されているときにはステップ１００１に進んで圧力センサ３２により検出された燃料蒸気室１２内の圧力ＰＴが設定値ＫＰＴＫ（図２２）よりも高いか否かが判別される。ＰＴ≧ＫＰＴＫのときにはステップ１００２に進んでフィードバック補正係数ＦＡＦの修正量ＫＦＡＦがＫＦＡＦ１０（図２２）とされる。これに対してＰＴ＜ＫＰＴＫのときにはステップ１００５に進んでＫＦＡＦが零とされる。
【０１０２】
一方、ステップ１０００においてＰＧＲ＞０であると判別されると、即ちパージ作用が開始されるとステップ１００３に進み、図３１に示す関係からベーパ濃度ＦＧＰＧに基づいて補正係数ＫＦＧＰＧが算出される。次いでステップ１００４では次式に基づいてフィードバック補正係数ＦＡＦが算出される。
ＦＡＦ＝ＦＡＦ−（ＫＦＡＦ・ＫＦＧＰＧ）
即ち、フィードバック補正係数ＦＡＦから修正量ＫＦＡＦ・補正係数ＫＦＧＰＧが減算される。次いでステップ１００５に進む。従ってこの実施例ではパージ停止中にＰＴ≧ＫＰＴＫになるとパージ再開時のＦＡＦがＫＦＡＫ・ＫＦＧＰＧだけ減少せしめられることになる。
【０１０３】
図３３に第１０実施例を示す。パージ停止中における燃料タンク１５の上部空間内又は燃料タンク１５の上部空間からパージ制御弁１７に至るパージ通路内の燃料ベーパのベーパ濃度の増大量が同一である場合にはパージ再開時におけるパージ率ＰＧＲが高いほどパージ再開時における空燃比のずれ量が大きくなる。従ってこの実施例では次式に基づいてフィードバック補正係数ＦＡＦを求めるようにしている。
【０１０４】
ＦＡＦ＝ＦＡＦ−（ＫＦＡＦ・ＫＦＧＰＧ）・（ＰＧＲ／ＫＰＧＲ）
ここでＫＰＧＲは予め定められた基準パージ率である。従ってこの実施例では修正量ＫＦＡＦに前述した補正係数ＫＦＧＰＧを乗算し、更に基準パージ率ＫＰＧＲに対するパージ率ＰＧＲの割合（ＰＧＲ／ＫＰＧＲ）を乗算することによって最終的な修正量が算出される。
【０１０５】
図３３は第１０実施例を実行するためのベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。
図３３を参照するとまず初めにステップ１１００においてパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止されているときにはステップ１１０１に進んで圧力センサ３２により検出された燃料蒸気室１２内の圧力ＰＴが設定値ＫＰＴＫ（図２２）よりも高いか否かが判別される。ＰＴ≧ＫＰＴＫのときにはステップ１１０２に進んでフィードバック補正係数ＦＡＦの修正量ＫＦＡＦがＫＦＡＦ１０（図２２）とされる。これに対してＰＴ＜ＫＰＴＫのときにはステップ１１０５に進んでＫＦＡＦが零とされる。
【０１０６】
一方、ステップ１１０１においてＰＧＲ＞０であると判別されると、即ちパージ作用が開始されるとステップ１１０３に進み、図３１に示す関係からベーパ濃度ＦＧＰＧに基づいて補正係数ＫＦＧＰＧが算出される。次いでステップ１００４では次式に基づいてフィードバック補正係数ＦＡＦが算出される。
ＦＡＦ＝ＦＡＦ−（ＫＦＡＦ・ＫＦＧＰＧ）・（ＰＧＲ／ＫＰＧＲ）
即ち、フィードバック補正係数ＦＡＦから修正量ＫＦＡＦ・補正係数ＫＦＰＧＰ・パージ率の割合（ＰＧＲ／ＫＰＧＲ）が減算される。次いでステップ１１０５に進む。従ってこの実施例ではパージ停止中にＰＴ≧ＫＰＴＫになるとパージ再開時のＦＡＦがＫＦＡＫ・ＫＦＰＧＰ（ＰＧＲ／ＫＰＧＲ）だけ減少せしめられることになる。
【０１０７】
図３４および図３５に第１１実施例を示す。パージ再開後、パージされた燃料ベーパが燃焼室内に到達して燃焼せしめられるまでに時間遅れを有する。従ってこの実施例では図３４に示されるようにパージ再開時ｔ２  から予め定められた遅れ時間Δｔが経過した後にフィードバック補正係数ＦＡＦを減少させるようにしている。
【０１０８】
図３５は第１１実施例を実行するためのベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。
図３５を参照するとまず初めにステップ１２００においてパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止されているときにはステップ１２０１に進んで時間算出カウント値ＣＦＡＦが零とされる。次いでステップ１２０２に進んで圧力センサ３２により検出された燃料蒸気室１２内の圧力ＰＴが設定値ＫＰＴＫ（図２２）よりも高いか否かが判別される。ＰＴ≧ＫＰＴＫのときにはステップ１２０３に進んでフィードバック補正係数ＦＡＦの修正量ＫＦＡＦがＫＦＡＦ１０（図２２）とされる。これに対してＰＴ＜ＫＰＴＫのときにはステップ１２０８に進んでＫＦＡＦが零とされる。
【０１０９】
一方、ステップ１２００においてＰＧＲ＞０であると判別されると、即ちパージ作用が開始されるとステップ１２０４に進み、時間算出カウント値ＣＦＡＦが１だけインクリメントされる。次いでステップ１２０５では時間算出カウント値ＣＦＡＦが予め定められたカウント値ＫＣＦＡＦ５に達したか否か、即ちパージが再開されてから図３４に示す遅れ時間Δｔに達したか否かが判別される。ＣＦＡＦ＝ＫＣＦＡＦ５でないときには処理サイクルを完了する。これに対してＣＦＡＦ＝ＫＣＦＡＦ５となったときにはステップ１２０６に進み、図３１に示す関係からベーパ濃度ＦＧＰＧに基づいて補正係数ＫＦＧＰＧが算出される。次いでステップ１２０７では次式に基づいてフィードバック補正係数ＦＡＦが算出される。
【０１１０】
ＦＡＦ＝ＦＡＦ−（ＫＦＡＦ・ＫＦＧＰＧ）・（ＰＧＲ／ＫＰＧＲ）
次いでステップ１２０８に進む。即ち、パージ停止中にＰＴ≧ＫＰＴＫになるとパージ再開後一定の遅れ時間Δｔを経過したときにＦＡＦがＫＦＡＦ・ＫＦＧＰＧ・（ＰＧＲ／ＫＰＧＲ）だけ減少せしめられる。
図３６および図３７に第１２実施例を示す。前述したようにパージ再開後、パージされた燃料ベーパが燃焼室内に到達して燃焼せしめられるまでに時間遅れを有するばかりでなく、パージされた燃料ベーパはサージタンク５内において吸入空気と混合した後に順次各気筒に供給されるので各気筒に供給される吸入空気中のベーパ濃度は順次段階的に増大していく。従ってこの実施例では図３６に示されるようにパージ再開時ｔ２  から予め定められた遅れ時間Δｔが経過した後に予め定められた一定期間Δｔ１に亘ってフィードバック補正係数ＦＡＦを少しずつ段階的に減少させるようにしている。
【０１１１】
このようにフィードバック補正係数ＦＡＦを段階的に減少させるためにこの実施例では次式に基づいてフィードバック補正係数ＦＡＦが算出される。
ＦＡＦ＝ＦＡＦ−（ＫＦＡＦ・ＫＦＧＰＧ）・（ＰＧＲ／ＫＰＧＲ）／ＫＭ
ここでＫＭは４から８程度の値である。即ち、この実施例ではＦＡＦがＫＦＡＦ・ＫＦＧＰＧ・（ＰＧＲ／ＫＰＧＲ）の数分の１ずつ段階的に減少せしめられる。
【０１１２】
図３７は第１２実施例を実行するためのベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。
図３７を参照するとまず初めにステップ１３００においてパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止されているときにはステップ１３０１に進んで時間算出カウント値ＣＦＡＦが零とされる。次いでステップ１３０２に進んで圧力センサ３２により検出された燃料蒸気室１２内の圧力ＰＴが設定値ＫＰＴＫ（図２２）よりも高いか否かが判別される。ＰＴ≧ＫＰＴＫのときにはステップ１３０３に進んでフィードバック補正係数ＦＡＦの修正量ＫＦＡＦがＫＦＡＦ１０（図２２）とされる。これに対してＰＴ＜ＫＰＴＫのときにはステップ１３０９に進んでＫＦＡＦが零とされる。
【０１１３】
一方、ステップ１３００においてＰＧＲ＞０であると判別されると、即ちパージ作用が開始されるとステップ１３０４に進み、時間算出カウント値ＣＦＡＦが１だけインクリメントされる。次いでステップ１３０５では時間算出カウント値ＣＦＡＦが予め定められたカウント値ＫＣＦＡＦ５を越えたか否か、即ちパージが再開されてから図３６に示す遅れ時間Δｔに達したか否かが判別される。ＣＦＡＦ＜ＫＣＦＡＦ５のときには処理サイクルを完了する。これに対してＣＦＡＦ≧ＫＣＦＡＦ５となったときにはステップ１３０６に進み、図３１に示す関係からベーパ濃度ＦＧＰＧに基づいて補正係数ＫＦＧＰＧが算出される。次いでステップ１３０７では次式に基づいてフィードバック補正係数ＦＡＦが算出される。
【０１１４】
ＦＡＦ＝ＦＡＦ−（ＫＦＡＦ・ＫＦＧＰＧ）・（ＰＧＲ／ＫＰＧＲ）／ＫＭ
次いでステップ１３０８では時間算出カウント値ＣＦＡＦが予め定められたカウント値ＫＣＦＡＦ１５を越えたか否か、即ち図３６の時間範囲Δｔ１を越えたか否かが判別される。ＣＦＡＦ＜ＫＣＦＡＦ１５のときには処理サイクルを完了し、これに対してＣＦＡＦ≧ＫＣＦＡＦ１５になるとステップ１３０９に進む。即ち、パージ停止中にＰＴ≧ＫＰＴＫになるとパージ再開後一定の遅れ時間Δｔを経過したときから一定期間Δｔ１，ＦＡＦがＫＦＡＦ・ＫＦＧＰＧ・（ＰＧＲ／ＫＰＧＲ）／ＫＭずつ段階的に減少せしめられる。
【０１１５】
図３８および図３９に第１３実施例を示す。この実施例では図３８に示されるようにパージ再開後空燃比がリーンとなるまでフィードバック補正係数ＦＡＦが段階的に減少せしめられる。このようにするとＦＡＦの過補正を阻止することができる。
図３９は第１３実施例を実行するためのベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。
【０１１６】
図３９を参照するとまず初めにステップ１４００においてパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のとき、即ちパージ作用が停止されているときにはステップ１４０１に進んで時間算出カウント値ＣＦＡＦが零とされる。次いでステップ１４０２に進んで圧力センサ３２により検出された燃料蒸気室１２内の圧力ＰＴが設定値ＫＰＴＫ（図２２）よりも高いか否かが判別される。ＰＴ≧ＫＰＴＫのときにはステップ１４０３に進んでフィードバック補正係数ＦＡＦの修正量ＫＦＡＦがＫＦＡＦ１０（図２２）とされる。これに対してＰＴ＜ＫＰＴＫのときにはステップ１４０９に進んでＫＦＡＦが零とされる。
【０１１７】
一方、ステップ１４００においてＰＧＲ＞０であると判別されると、即ちパージ作用が開始されるとステップ１４０４に進み、時間算出カウント値ＣＦＡＦが１だけインクリメントされる。次いでステップ１４０５では時間算出カウント値ＣＦＡＦが予め定められたカウント値ＫＣＦＡＦ５を越えたか否か、即ちパージが再開されてから図３８に示す遅れ時間Δｔを越えたか否かが判別される。ＣＦＡＦ＜ＫＣＦＡＦ５のときには処理サイクルを完了する。これに対してＣＦＡＦ≧ＫＣＦＡＦ５となったときにはステップ１４０６に進み、図３１に示す関係からベーパ濃度ＦＧＰＧに基づいて補正係数ＫＦＧＰＧが算出される。次いでステップ１４０７では次式に基づいてフィードバック補正係数ＦＡＦが算出される。
【０１１８】
ＦＡＦ＝ＦＡＦ−（ＫＦＡＦ・ＫＦＧＰＧ）・（ＰＧＲ／ＫＰＧＲ）／ＫＭ
次いでステップ１４０８ではＯ２  センサ３０の出力信号から空燃比がリーンになったか否かが判別される。空燃比がリーンでないときには処理サイクルを完了し、これに対して空燃比がリーンになるとステップ１４０９に進む。即ち、パージ停止中にＰＴ≧ＫＰＴＫになるとパージ再開後一定の遅れ時間Δｔを経過した後、空燃比がリーンとなるまでＦＡＦがＫＦＡＦ・ＫＦＧＰＧ・（ＰＧＲ／ＫＰＧＲ）／ＫＭずつ段階的に減少せしめられる。
【０１１９】
図４０から図４２に第１４実施例を示す。まず初めに図４０について説明すると、図４０には第１のパージ停止作用Ｉと第２のパージ停止作用ＩＩとが示されている。ｔ１  およびｔ２  は第１のパージ停止作用Ｉにおけるパージ停止時期とパージ再開時期とを夫々示しており、ｔ３  およびｔ４  は第２のパージ作用ＩＩのパージ停止時期とパージ再開時期とを夫々示している。
【０１２０】
この実施例ではパージ停止中に燃料タンク１５の上部空間内又は燃料タンク１５の上部空間からパージ制御弁１７に至るパージ通路内の燃料ベーパのベーパ濃度が増大したか否かがパージ開始後のフィードバック補正係数ＦＡＦの変化から判断される。例えば図４０において第１のパージ停止期間Ｉ中に燃料タンク１５の上部空間内又は燃料タンク１５の上部空間からパージ制御弁１７に至るパージ通路内の燃料ベーパのベーパ濃度が増大したとするとパージ再開（図４０のｔ２  ）直後においてフィードバック補正係数ＦＡＦが小さくなる。図４０に示される例ではこのときフィードバック補正係数ＦＡＦが予め定められた設定値ＫＦＡＦ０９、例えば０．９よりも小さくなったときにパージ停止中に燃料タンク１５の上部空間内又は燃料タンク１５の上部空間からパージ制御弁１７に至るパージ通路内の燃料ベーパのベーパ濃度が増大したと判断され、このときベーパ濃度が増大したことを示すベーパ濃度増大フラグＸＶＡＰＯＲがセットされる。
【０１２１】
ベーパ濃度増大フラグＸＶＡＰＯＲが一旦セットされるとその後パージが停止され次いでパージが再開される毎に、図４０に示される例では第２のパージ停止期間ＩＩ後のパージ再開時ｔ４  においてベーパ濃度ＦＧＰＧが予め定められた修正量ＫＦＧＰＧだけ増大せしめられる。このようにパージ再開時にベーパ濃度ＦＧＰＧが増大せしめられるとパージ再開時にフィードバック補正係数ＦＡＦが基準値（＝１．０）に維持され、空燃比Ａ／Ｆが理論空燃比に維持される。
【０１２２】
図４１および図４２は第１４実施例を実行するためのベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。
図４１および図４２を参照するとまず初めにステップ１５００においてパージ時間実行カウント値ＣＰＧＲが設定値ＫＣＰＧＲ３よりも大きいか否か、例えば機関の運転が開始された後パージ作用が開始されてから３分が経過したか否かが判別される。ＣＰＧＲ＜ＫＣＰＧＲ３のときにはステップ１５０８に進んでベーパ濃度増大フラグＸＶＡＰＯＲがリセットされる。次いでステップ１５０９では前回の処理サイクル時におけるパージ率ＰＧＲＯが零であったか否かが判別される。ＰＧＲＯ＝０のときにはステップ１５１０に進んでパージ停止時間を表すパージ停止時間カウント値ＣＰＧＲＯＦが１だけインクリメントされ、次いでステップ１５１２に進む。これに対してＰＧＲＯ＝０でないときにはステップ１５１１に進んでパージ停止時間カウント値ＣＰＧＲＯＦが零とされ、次いでステップ１５１２に進む。ステップ１５１２ではパージ継続時間を表すパージ時間カウント値ＣＰＧＲＯＮが零とされ、次いで処理サイクルを完了する。
【０１２３】
一方、ステップ１５００においてＣＰＧＲ≧ＫＣＰＧＲ３であると判別されたときにはステップ１５０１に進んでパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のときにはステップ１５０９に進む。これに対してＰＧＲ＞０のとき、即ちパージが開始されたときにはステップ１５０２に進んでパージ停止時間カウント値ＣＰＧＯＦが設定値ＫＣＵＴよりも大きいか否かが判別される。ＣＰＧＲＯＦ≧ＫＣＵＴのときにはステップ１５０３に進む。
【０１２４】
ステップ１５０３ではベーパ濃度増大フラグＸＶＡＰＯＲがセットされているか否かが判別される。ＸＶＡＰＯＲ＝０のとき、即ちベーパ濃度増大フラグＸＶＡＰＯＲがリセットされているときにはステップ１５０４に進んでパージ開始後におけるフィードバック補正係数ＦＡＦのスキップＳの回数ＣＳＫＩＰが３回よりも小さいか否かが判別される。ＣＳＫＩＰ≦３のときにはステップ１５０５に進んでフィードバック補正係数ＦＡＦが設定値ＫＦＡＦ０９（図４０）よりも小さくなったか否かが判別される。ＦＡＦ≦ＫＦＡＦ０９になるとステップ１５０６に進んでベーパ濃度増大フラグＸＶＡＰＯＲがセットされる。即ち、ＣＳＫＩＰ≦３のときにＦＡＦ≦ＫＦＡＦ０９になればベーパ濃度増大フラグＸＶＡＰＯＲがセットされることになる。次いでステップ１５０７においてパージ時間カウント値ＣＰＧＲＯＮが１とされる。
【０１２５】
ベーパ濃度増大フラグＸＶＡＰＯＲがセットされると次の処理サイクルではステップ１５０３からステップ１５１３に進み、パージ時間カウント値ＣＰＧＲＯＮが１だけインクリメントされる。次いでステップ１５１４ではベーパ濃度増大フラグＸＶＡＰＯＲがセットされておりかつパージ時間カウント値ＣＰＧＲＯＮが１であるか否かが判別される。このときにはＸＶＡＰＯＲ＝１であるがＣＰＧＲＯＮ＝２であるので処理サイクルを完了する。このときにはベーパ濃度ＦＧＰＧの修正は行われない。
【０１２６】
次いで再びパージが停止され次いでパージが再開されたとするとこのときにはベーパ濃度増大フラグＸＶＡＰＯＲが既にセットされているのでステップ１５０３からステップ１５１３に進む。このときにはパージ時間カウント値ＣＰＧＲＯＮは１となる。従って次のステップ１５１４ではＸＶＡＰＯＲ＝１でありかつＣＰＧＲＯＮ＝１であると判断されるのでステップ１５１５に進み、ベーパ濃度ＦＧＰＧに予め定められた修正量ＫＦＧＰＧが加算される。従って図４０を参照しつつ前述したようにパージ再開時に空燃比Ａ／Ｆが変動するのを阻止することができる。
【０１２７】
図４３から図４５に第１５実施例を示す。この実施例ではパージ再開時におけるベーパ濃度ＦＧＰＧが一定値以上増大したときにパージ停止中に燃料タンク１５の上部空間内又は燃料タンク１５の上部空間からパージ制御弁１７に至るパージ通路内の燃料ベーパのベーパ濃度が増大したと判断される。即ち、図４３において第１のパージ停止期間Ｉ後のパージ再開時にベーパ濃度ＦＧＰＧがパージ停止直前のベーパ濃度ＦＧＰＧＯＦに比べて設定値ＫＦＧよりも大きくなったとき、即ちＦＧＰＧ≧ＦＧＰＧＯＦ＋ＫＦＧになったときにはベーパ濃度増大フラグＸＶＡＰＯＲがセットされ、次いでパージが停止され次いでパージが再開されたときにベーパ濃度ＦＧＰＧが予め定められた修正量ＫＦＧＰＧだけ増大せしめられる。
【０１２８】
図４４および図４５は第１５実施例を実行するためのベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。
図４４および図４５を参照するとまず初めにステップ１６００においてパージ時間実行カウント値ＣＰＧＲが設定値ＫＣＰＧＲ３よりも大きいか否か、例えば機関の運転が開始された後パージ作用が開始されてから３分が経過したか否かが判別される。ＣＰＧＲ＜ＫＣＰＧＲ３のときにはステップ１６０８に進んでベーパ濃度増大フラグＸＶＡＰＯＲがリセットされる。次いでステップ１６０９では前回の処理サイクル時におけるパージ率ＰＧＲＯが零であったか否かが判別される。ＰＧＲＯ＝０のときにはステップ１６１０に進んでパージ停止時間を表すパージ停止時間カウント値ＣＰＧＲＯＦが１だけインクリメントされ、次いでステップ１６１２に進む。これに対してＰＧＲＯ＝０でないときにはステップ１６１１に進んでパージ停止時間カウント値ＣＰＧＲＯＦが零とされ、次いでステップ１６１２に進む。ステップ１６１２ではベーパ濃度ＦＧＰＧがＦＧＰＧＯＦとされる。次いでステップ１６１３ではパージ継続時間を表すパージ時間カウント値ＣＰＧＲＯＮが零とされ、次いで処理サイクルを完了する。
【０１２９】
一方、ステップ１６００においてＣＰＧＲ≧ＫＣＰＧＲ３であると判別されたときにはステップ１６０１に進んでパージ率ＰＧＲが零であるか否かが判別される。ＰＧＲ＝０のときにはステップ１６０９に進む。これに対してＰＧＲ＞０のとき、即ちパージが開始されたときにはステップ１６０２に進んでパージ停止時間カウント値ＣＰＧＯＦが設定値ＫＣＵＴよりも大きいか否かが判別される。ＣＰＧＲＯＦ≧ＫＣＵＴのときにはステップ１６０３に進む。
【０１３０】
ステップ１６０３ではベーパ濃度増大フラグＸＶＡＰＯＲがセットされているか否かが判別される。ＸＶＡＰＯＲ＝０のとき、即ちベーパ濃度増大フラグＸＶＡＰＯＲがリセットされているときにはステップ１６０４に進んでパージ開始後におけるフィードバック補正係数ＦＡＦのスキップＳの回数ＣＳＫＩＰが６回よりも小さいか否かが判別される。ＣＳＫＩＰ≦６のときにはステップ１６０５に進んでベーパ濃度ＦＧＰＧがパージ停止直前のベーパ濃度ＦＧＰＧＯＦと設定値ＫＦＧとの和（ＦＧＰＧＯＦ＋ＫＦＧ）よりも大きくなったか否かが判別される。ＦＧＰＧ≧ＦＧＰＧＯＦ＋ＫＦＧになるとステップ１６０６に進んでベーパ濃度増大フラグＸＶＡＰＯＲがセットされる。即ち、ＣＳＫＩＰ≦６のときにＦＧＰＧ≧ＦＧＰＧＯＦ＋ＫＦＧになればベーパ濃度増大フラグＸＶＡＰＯＲがセットされることになる。次いでステップ１６０７においてパージ時間カウント値ＣＰＧＲＯＮが１とされる。
【０１３１】
ベーパ濃度増大フラグＸＶＡＰＯＲがセットされると次の処理サイクルではステップ１６０３からステップ１６１４に進み、パージ時間カウント値ＣＰＧＲＯＮが１だけインクリメントされる。次いでステップ１６１５ではベーパ濃度増大フラグＸＶＡＰＯＲがセットされておりかつパージ時間カウント値ＣＰＧＲＯＮが１であるか否かが判別される。このときにはＸＶＡＰＯＲ＝１であるがＣＰＧＲＯＮ＝２であるので処理サイクルを完了する。このときにはベーパ濃度ＦＧＰＧの修正は行われない。
【０１３２】
次いで再びパージが停止され次いでパージが再開されたとするとこのときにはベーパ濃度増大フラグＸＶＡＰＯＲが既にセットされているのでステップ１６０３からステップ１６１４に進む。このときにはパージ時間カウント値ＣＰＧＲＯＮは１となる。従って次のステップ１６１５ではＸＶＡＰＯＲ＝１でありかつＣＰＧＲＯＮ＝１であると判断されるのでステップ１６１６に進み、ベーパ濃度ＦＧＰＧに予め定められた修正量ＫＦＧＰＧが加算される。従ってパージ再開時に空燃比Ａ／Ｆが変動するのを阻止することができる。
【０１３３】
図４６から図４８に第１６実施例を示す。この実施例では図４６に示されるように第１のパージ停止期間Ｉ後のベーパ濃度ＦＧＰＧの増大量のほぼ全体ＫＦＧＰＧが第２のパージ停止期間ＩＩ後のパージ再開時におけるパージ濃度の修正量ＫＦＧＰＧとされる。
図４７および図４８は第１６実施例を実行するためのベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。なお、図４７のステップ１７００からステップ１７１３は図４４のステップ１６００からステップ１６１３と同じであり、図４４および図４５に示すルーチンと異なるところは図４８のステップ１７１４以後であるので以下、図４８のステップ１７１４以後について説明する。
【０１３４】
パージ開始後、ＦＧＰＧ≧ＦＧＰＧＯＦ＋ＫＦＧとなり、ベーパ濃度増大フラグＸＶＡＰＯＲがセットされると次の処理サイクルではステップ１７０３からステップ１７１４に進む。ステップ１７１４ではベーパ濃度増大フラグＸＶＡＰＯＲがセットされておりかつスキップ回数ＣＳＫＩＰが６回以下でありかつパージ時間カウント値ＣＰＧＲＯＮが１以上であるか否かが判別される。このときにはＸＶＡＰＯＲ＝１でありかつＣＰＧＲＯＮ≧１であるのでＣＳＫＩＰ≦６であればステップ１７１５に進んで現在のベーパ濃度ＦＧＰＧからパージ停止直前のベーパ濃度ＦＧＰＧＯＦを差し引いた差（ＦＧＰＧ−ＦＧＰＧＯＦ）が修正量ＫＦＧＰＧとされる。
【０１３５】
次いでステップ１７１６ではパージ時間カウント値ＣＰＧＲＯＮが１だけインクリメントされる。次いでステップ１７１７ではベーパ濃度増大フラグＸＶＡＰＯＲがセットされておりかつパージ時間カウント値ＣＰＧＲＯＮが１であるか否かが判別される。このときにはＸＶＡＰＯＲ＝１であるがＣＰＧＲＯＮ＝２であるので処理サイクルを完了する。このときにはベーパ濃度ＦＧＰＧの修正は行われない。
【０１３６】
次の処理サイクルではＳＫＩＰ≦６である限りステップ１７１４からステップ１７１５に進んで修正量ＫＦＧＰＧが更新される。ＳＫＩＰ＝６となるころにはベーパ濃度ＦＧＰＧの学習がほぼ完了しており、従って修正量ＫＦＧＰＧはベーパ濃度ＦＧＰＧの増大量にほぼ一致する。
次いで再びパージが停止され次いでパージが再開されたとするとこのときにはベーパ濃度増大フラグＸＶＡＰＯＲが既にセットされているのでステップ１７０３からステップ１７１４に進む。このときにはパージ時間カウント値ＣＰＧＲＯＮは零であるのでステップ１７１４からステップ１７１６にジャンプし、ステップ１７１６においてパージ時間カウント値ＣＰＧＲＯＮが１となる。従って次のステップ１７１７ではＸＶＡＰＯＲ＝１でありかつＣＰＧＲＯＮ＝１であると判断されるのでステップ１７１８に進み、ベーパ濃度ＦＧＰＧに既に算出されている修正量ＫＦＧＰＧが加算される。従ってパージ再開時に空燃比Ａ／Ｆが変動するのを阻止することができる。
【０１３７】
次の処理サイクルではＣＳＫＩＰ≦６であればステップ１７１５に進み、再び修正量ＫＦＧＰＧが更新される。
図４９および図５０に第１７実施例を示す。この実施例では単位パージ停止時間当りの修正量ΔＦＧＰＧを求め、この修正量ΔＦＧＰＧからパージ停止時間に比例した最終的な修正量ＫＦＧＰＧを求めるようにしている。具体的に云うと次式に基づいて最終的な修正量ＫＦＧＰＧが算出される。
【０１３８】
ΔＦＧＰＧ＝（ＦＧＰＧ−ＦＧＰＧＯＦ）・ＫＣＰＧＲＯＦ／ＣＰＧＲＯＦ・・・（１）
ＫＦＧＰＧ＝ΔＦＧＰＧ・（ＣＰＧＲＯＦ／ＫＣＰＧＲＯＦ）・・・（２）
ここでＫＣＰＧＲＯＦは基準となるパージ停止時間、例えば１０ｓｅｃ  である。
図４６を利用して説明すると（１）式におけるＣＰＧＲＯＦは第１のパージ停止期間Ｉを表わしており、従って（１）式よりパージ停止時間１０ｓｅｃ  当りの修正量ΔＦＧＰＧが求められる。
【０１３９】
これに対して（２）式におけるＣＰＧＲＯＦは第２のパージ停止期間ＩＩを表わしており、従ってパージ停止時間が長くなるほど最終的な修正量ＫＦＧＰＧが増大せしめられる。
図４９および図５０はベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。なお、図４９のステップ１８００からステップ１８１３は図４４のステップ１６００からステップ１６１３と同じであり、図４４および図４５に示すルーチンと異なるところは図５０のステップ１８１４以後であるので以下、図５０のステップ１８１４以後について説明する。
【０１４０】
パージ開始後、ＦＧＰＧ≧ＦＧＰＧＯＦ＋ＫＦＧとなり、ベーパ濃度増大フラグＸＶＡＰＯＲがセットされると次の処理サイクルではステップ１８０３からステップ１８１４に進む。ステップ１８１４ではベーパ濃度増大フラグＸＶＡＰＯＲがセットされておりかつスキップ回数ＣＳＫＩＰが６回以下でありかつパージ時間カウント値ＣＰＧＲＯＮが１以上であるか否かが判別される。このときにはＸＶＡＰＯＲ＝１でありかつＣＰＧＲＯＮ≧１であるのでＣＳＫＩＰ≦６であればステップ１８１５に進んで現在のベーパ濃度ＦＧＰＧ、パージ停止直前のベーパ濃度ＦＧＰＧＯＦ、基準パージ停止時間ＫＣＰＧＲＯＦおよびパージ停止時間を表すパージ停止時間カウント値ＣＰＧＲＯＦを用いて次式に基づき単位パージ停止時間当りの修正量ΔＦＧＰＧが算出される。
【０１４１】
ΔＦＧＰＧ＝（ＦＧＰＧ−ＦＧＰＧＯＦ）・ＫＣＰＧＲＯＦ／ＣＰＧＲＯＦ
次いでステップ１８１６ではパージ時間カウント値ＣＰＧＲＯＮが１だけインクリメントされる。次いでステップ１８１７ではベーパ濃度増大フラグＸＶＡＰＯＲがセットされておりかつパージ時間カウント値ＣＰＧＲＯＮが１であるか否かが判別される。このときにはＸＶＡＰＯＲ＝１であるがＣＰＧＲＯＮ＝２であるので処理サイクルを完了する。このときにはベーパ濃度ＦＧＰＧの修正は行われない。
【０１４２】
次の処理サイクルではＳＫＩＰ≦６である限りステップ１８１４からステップ１８１５に進んでΔＦＧＰＧが更新される。
次いで再びパージが停止され次いでパージが再開されたとするとこのときにはベーパ濃度増大フラグＸＶＡＰＯＲが既にセットされているのでステップ１８０３からステップ１８１４に進む。このときにはパージ時間カウント値ＣＰＧＲＯＮは零であるのでステップ１８１４からステップ１８１６にジャンプし、ステップ１８１６においてパージ時間カウント値ＣＰＧＲＯＮが１となる。従って次のステップ１８１７ではＸＶＡＰＯＲ＝１でありかつＣＰＧＲＯＮ＝１であると判断されるのでステップ１８１８に進み、次式に基づいて最終的な修正量ＫＦＧＰＧが算出される。
【０１４３】
ＫＦＧＰＧ＝ΔＦＧＰＧ・（ＣＰＧＲＯＦ／ＫＣＰＧＲＯＦ）
次いでステップ１８１９ではパージ濃度ＦＧＰＧに修正量ＫＦＧＰＧが加算される。次の処理サイクルではＣＳＫＩＰ≦６であればステップ１８１５に進み、再びΔＦＧＰＧが更新される。
図５１および図５２に第１８実施例を示す。この実施例ではパージが再開されてからパージされた燃料ベーパが燃焼室内に到達するまでの遅れ時間を考慮してパージ再開時のベーパ濃度ＦＧＰＧの修正作用をパージ時間カウント値ＣＰＧＲＯＮが一定値ＫＣＰＧとなるまで一定時間だけ遅らせるようにしている。
【０１４４】
図５１および図５２はベーパ濃度の制御ルーチンを示しており、このルーチンは一定時間、例えば１００ｍｓｅｃ毎の割込みによって実行される。なお、図５１のステップ１９００からステップ１９１３は図４４のステップ１６００からステップ１６１３と同じであり、図４４および図４５に示すルーチンと異なるところは図５２のステップ１９１４以後であるので以下、図５２のステップ１９１４以後について説明する。
【０１４５】
パージ開始後、ＦＧＰＧ≧ＦＧＰＧＯＦ＋ＫＦＧとなり、ベーパ濃度増大フラグＸＶＡＰＯＲがセットされると次の処理サイクルではステップ１９０３からステップ１９１４に進む。ステップ１９１４ではベーパ濃度増大フラグＸＶＡＰＯＲがセットされておりかつスキップ回数ＣＳＫＩＰが６回以下でありかつパージ時間カウント値ＣＰＧＲＯＮがＫＣＰＧ以上であるか否かが判別される。このときにはＸＶＡＰＯＲ＝１であるがＣＰＧＲＯＮは１であるのでステップ１９１６にジャンプする。
【０１４６】
ステップ１９１６ではパージ時間カウント値ＣＰＧＲＯＮが１だけインクリメントされる。次いでステップ１９１７ではベーパ濃度増大フラグＸＶＡＰＯＲがセットされておりかつパージ時間カウント値ＣＰＧＲＯＮがＫＣＰＧであるか否かが判別される。このときにはＸＶＡＰＯＲ＝１であるがＣＰＧＲＯＮ＝２（＜ＫＣＰＧ）であるので処理サイクルを完了する。このときにはベーパ濃度ＦＧＰＧの修正は行われない。
【０１４７】
次いでステップ１９１６においてＣＰＧＲＯＮがＫＣＰＧになるとステップ１９１８に進む。機関の運転が開始された後、初めてステップ１９１８に進んだときにはΔＦＧＰＧは未だ算出されておらずΔＦＧＰＧは零になっているので修正量ＫＦＧＰＧは零となり、斯くしてこのときもベーパ濃度ＦＧＰＧの修正作用は行われない。
【０１４８】
一方、ＣＰＧＲＯＮがＫＣＰＧになると次の処理サイクルではＣＳＫＩＰ≦６であればステップ１９１４からステップ１９１５に進んで現在のベーパ濃度ＦＧＰＧ、パージ停止直前のベーパ濃度ＦＧＰＧＯＦ、基準パージ停止時間ＫＣＰＧＲＯＦおよびパージ停止時間を表すパージ停止時間カウント値ＣＰＧＲＯＦを用いて次式に基づき単位パージ停止時間当りの修正量ΔＦＧＰＧが算出される。
【０１４９】
ΔＦＧＰＧ＝（ＦＧＰＧ−ＦＧＰＧＯＦ）・ＫＣＰＧＲＯＦ／ＣＰＧＲＯＦ
次いでステップ１９１６ではＣＰＧＲＯＮがＫＣＰＧ＋１となるのでステップ１９１７を経て処理サイクルを完了する。
次の処理サイクルではＳＫＩＰ≦６である限りステップ１９１４からステップ１９１５に進んでΔＦＧＰＧが更新される。
【０１５０】
次いで再びパージが停止され次いでパージが再開されたとするとこのときにはベーパ濃度増大フラグＸＶＡＰＯＲが既にセットされているのでステップ１９０３からステップ１９１４に進む。このときにはパージ時間カウント値ＣＰＧＲＯＮは零であるのでステップ１９１４からステップ１９１６にジャンプする。
次いでステップ１９１６においてＣＰＧＲＯＮがＫＣＰＧになるとステップ１９１７からステップ１９１８に進み、次式に基づいて最終的な修正量ＫＦＧＰＧが算出される。
【０１５１】
ＫＦＧＰＧ＝ΔＦＧＰＧ・（ＣＰＧＲＯＦ／ＫＣＰＧＲＯＦ）
次いでステップ１９１９ではパージ濃度ＦＧＰＧに修正量ＫＦＧＰＧが加算される。即ち、パージが再開されたときにはパージ再開後ＣＰＧＲＯＮがＫＣＰＧとなったときに、即ちパージ再開後一定時間遅れてベーパ濃度ＦＧＰＧが修正されることになる。次の処理サイクルではＣＳＫＩＰ≦６であればステップ１９１５に進み、再びΔＦＧＰＧが更新される。
【０１５２】
次に、パージ再開時に例えばベーパ濃度ＦＧＰＧを修正したときにこの修正が過補正となる場合にはベーパ濃度増大フラグＸＶＡＰＯＲをリセットするようにした場合について説明する。図５３はパージ再開時ｔ４  にベーパ濃度が修正され、この修正が過補正となる場合を示している。このように修正が過補正となる場合には図５３に示されるようにフィードバック補正係数ＦＡＦは大きくなり、ベーパ濃度ＦＧＰＧが急速に低下する。
【０１５３】
そこで図５４に示すベーパ濃度増大フラグＸＶＡＰＯＲの制御ルーチンでは図５３に示されるようにパージ再開後一定期間内にフィードバック補正係数ＦＡＦが予め定められた値ＫＦＡＦ１１、例えば１．１を越えたときにはベーパ濃度増大フラグＸＶＡＰＯＲをリセットして再度パージ停止中に燃料タンク１５の上部空間内又は燃料タンク１５の上部空間からパージ制御弁１７に至るパージ通路内の燃料ベーパのベーパ濃度が増大したか否かを判断するようにし、図５５に示すベーパ濃度増大フラグＸＶＡＰＯＲの制御ルーチンでは図５３に示されるようにパージ再開後一定期間内にベーパ濃度ＦＧＰＧが予め定められた値ＦＧＰＧＯＦ＋α（α≧０）よりも低下したときにはベーパ濃度増大フラグＸＶＡＰＯＲをリセットして再度パージ停止中に燃料タンク１５の上部空間内又は燃料タンク１５の上部空間からパージ制御１７に至るパージ通路内の燃料ベーパのベーパ濃度が増大したか否かを判断するようにしている。
【０１５４】
図５４を参照するとまず初めにステップ２０００においてパージ停止時間カウント値ＣＰＧＲＯＦが一定時間ＫＣＵＴよりも大きいか否かが判別される。ＣＰＧＲＯＦ≧ＫＣＵＴのときにはステップ２００１に進んでパージ時間カウント値ＣＰＧＲＯＮが一定時間ＫＣＰＧよりも大きいか否かが判別される。ＣＰＧＲＯＮ≧ＫＣＰＧのときにはステップ２００２に進んでベーパ濃度増大フラグＸＶＡＰＯＲがセットされているか否かが判別される。
【０１５５】
ベーパ濃度増大フラグＸＶＡＰＯＲがセットされているときにはステップ２００３に進んでフィードバック補正係数ＦＡＦのスキップ回数ＣＳＫＩＰが３回以下であるか否かが判別される。ＣＳＫＩＰ≧３のときにはステップ２００４に進んでフィードバック補正係数ＦＡＦが予め定められた値ＫＦＡＦ１１よりも大きくなったか否かが判別される。ＦＡＦ≧ＫＦＡＦ１１のときにはステップ２００５に進んでベーパ濃度増大フラグＸＶＡＰＯＲがリセットされる。
【０１５６】
次に別の実施例を示す図５５を参照するとまず初めにステップ２１００においてパージ停止時間カウント値ＣＰＧＲＯＦが一定時間ＫＣＵＴよりも大きいか否かが判別される。ＣＰＧＲＯＦ≧ＫＣＵＴのときにはステップ２１０１に進んでパージ時間カウント値ＣＰＧＲＯＮが一定時間ＫＣＰＧよりも大きいか否かが判別される。ＣＰＧＲＯＮ≧ＫＣＰＧのときにはステップ２１０２に進んでベーパ濃度増大フラグＸＶＡＰＯＲがセットされているか否かが判別される。
【０１５７】
ベーパ濃度増大フラグＸＶＡＰＯＲがセットされているときにはステップ２１０３に進んでフィードバック補正係数ＦＡＦのスキップ回数ＣＳＫＩＰが６回以下であるか否かが判別される。ＣＳＫＩＰ≦６のときにはステップ２１０４に進んでベーパ濃度ＦＧＰＧが予め定められた値ＦＧＰＧＯＦ＋αよりも小さくなったか否かが判別される。ＦＧＰＧ≦ＦＧＰＧＯＦ＋αのときにはステップ２１０５に進んでベーパ濃度増大フラグＸＶＡＰＯＲがリセットされる。
【０１５８】
【発明の効果】
パージ作用が一時的に停止され、その後パージ作用が再開されるときに空燃比が変動するのを阻止することができる。
【図面の簡単な説明】
【図１】内燃機関の全体図である。
【図２】フィードバック補正係数ＦＡＦの変化を示す図である。
【図３】パージ率ＰＧＲの変化を示す図である。
【図４】パージ作用開始時におけるフィードバック補正係数ＦＡＦ等の変化を示す図である。
【図５】パージ制御を行うためのフローチャートである。
【図６】パージ制御を行うためのフローチャートである。
【図７】パージ制御弁駆動処理のためのフローチャートである。
【図８】フィードバック補正係数ＦＡＦを算出するためのフローチャートである。
【図９】空燃比の学習を行うためのフローチャートである。
【図１０】ベーパ濃度の学習を行うためのフローチャートである。
【図１１】燃料噴射時間の算出を行うためのフローチャートである。
【図１２】ベーパ濃度ＦＧＰＧ等の変化を示す図である。
【図１３】第１実施例においてベーパ濃度を制御するためのフローチャートである。
【図１４】燃料蒸気室内の圧力ＰＴと蒸発燃料量ＰＶとの関係を示す図である。
【図１５】第２実施例においてベーパ濃度を制御するためのフローチャートである。
【図１６】ベーパ濃度ＦＧＰＧと蒸発燃料量ＴＶとの関係を示す図である。
【図１７】第３実施例においてベーパ濃度を制御するためのフローチャートである。
【図１８】内燃機関の全体図である。
【図１９】第４実施例においてベーパ濃度を制御するためのフローチャートである。
【図２０】燃料タンク内の燃料温ＴＥＭＰと蒸発燃料量ＰＶとの関係を示す図である。
【図２１】第５実施例においてベーパ濃度を制御するためのフローチャートである。
【図２２】フィードバック等の変化を示す図である。
【図２３】第６実施例においてベーパ濃度を制御するためのフローチャートである。
【図２４】ベーパ濃度を制御するための第７実施例のフローチャートである。
【図２５】第７実施例の変形例を示すベーパ濃度を制御するためのフローチャートである。
【図２６】第７実施例の変形例を示すベーパ濃度を制御するためのフローチャートである。
【図２７】第７実施例の変形例を示すベーパ濃度を制御するためのフローチャートである。
【図２８】第７実施例の変形例を示すベーパ濃度を制御するためのフローチャートである。
【図２９】燃料蒸気室内の圧力ＰＴと修正量ＫＦＡＦとの関係を示す図である。
【図３０】第８実施例においてベーパ濃度を制御するためのフローチャートである。
【図３１】ベーパ濃度ＦＧＰＧと補正係数ＫＦＧＰＧとの関係を示す図である。
【図３２】第９実施例においてベーパ濃度を制御するためのフローチャートである。
【図３３】ベーパ濃度を制御するための第１０実施例を示すフローチャートである。
【図３４】フィードバック補正係数ＦＡＦ等の変化を示す図である。
【図３５】第１１実施例においてベーパ濃度を制御するためのフローチャートである。
【図３６】フィードバック補正係数ＦＡＦ等の変化を示す図である。
【図３７】第１２実施例においてベーパ濃度を制御するためのフローチャートである。
【図３８】フィードバック補正係数ＦＡＦ等の変化を示す図である。
【図３９】第１３実施例においてベーパ濃度を制御するためのフローチャートである。
【図４０】フィードバック補正係数ＦＡＦ、ベーパ濃度ＦＧＰＧ、空燃比Ａ／Ｆ等を示す図である。
【図４１】第１４実施例においてベーパ濃度を制御するためのフローチャートである。
【図４２】第１４実施例においてベーパ濃度を制御するためのフローチャートである。
【図４３】フィードバック補正係数ＦＡＦ、ベーパ濃度ＦＧＰＧ、空燃比Ａ／Ｆ等を示す図である。
【図４４】第１５実施例においてベーパ濃度を制御するためのフローチャートである。
【図４５】第１５実施例においてベーパ濃度を制御するためのフローチャートである。
【図４６】フィードバック補正係数ＦＡＦ、ベーパ濃度ＦＧＰＧ、空燃比Ａ／Ｆ等を示す図である。
【図４７】第１６実施例においてベーパ濃度を制御するためのフローチャートである。
【図４８】第１６実施例においてベーパ濃度を制御するためのフローチャートである。
【図４９】ベーパ濃度を制御するための第１７実施例のフローチャートである。
【図５０】ベーパ濃度を制御するための第１７実施例のフローチャートである。
【図５１】ベーパ濃度を制御するための第１８実施例のフローチャートである。
【図５２】ベーパ濃度を制御するための第１８実施例のフローチャートである。
【図５３】フィードバック補正係数ＦＡＦ、ベーパ濃度ＦＧＰＧ、空燃比Ａ／Ｆ等を示す図である。
【図５４】ベーパ濃度増大フラグＸＶＡＰＯＲを制御するためのフローチャートである。
【図５５】ベーパ濃度増大フラグＸＶＡＰＯＲを制御するための別の実施例のフローチャートである。
【符号の説明】
４…燃料噴射弁
５…サージタンク
１１…キャニスタ
１７…パージ制御弁
３０…空燃比センサ
【図１】
0003620261.tif 000003
【図２】
0003620261.tif 000004
【図３】
0003620261.tif 000005
【図４】
0003620261.tif 000006
【図５】
0003620261.tif 000007
【図６】
0003620261.tif 000008
【図７】
0003620261.tif 000009
【図８】
0003620261.tif 000010
【図９】
0003620261.tif 000011
【図１０】
0003620261.tif 000012
【図１１】
0003620261.tif 000013
【図１２】
0003620261.tif 000014
【図１３】
0003620261.tif 000015
【図１４】
0003620261.tif 000016
【図１５】
0003620261.tif 000017
【図１６】
0003620261.tif 000018
【図１７】
0003620261.tif 000019
【図１８】
0003620261.tif 000020
【図１９】
0003620261.tif 000021
【図２０】
0003620261.tif 000022
【図２１】
0003620261.tif 000023
【図２２】
0003620261.tif 000024
【図２３】
0003620261.tif 000025
【図２４】
0003620261.tif 000026
【図２５】
0003620261.tif 000027
【図２６】
0003620261.tif 000028
【図２７】
0003620261.tif 000029
【図２８】
0003620261.tif 000030
【図２９】
0003620261.tif 000031
【図３０】
0003620261.tif 000032
【図３１】
0003620261.tif 000033
【図３２】
0003620261.tif 000034
【図３３】
0003620261.tif 000035
【図３４】
0003620261.tif 000036
【図３５】
0003620261.tif 000037
【図３６】
0003620261.tif 000038
【図３７】
0003620261.tif 000039
【図３８】
0003620261.tif 000040
【図３９】
0003620261.tif 000041
【図４０】
0003620261.tif 000042
【図４１】
0003620261.tif 000043
【図４２】
0003620261.tif 000044
【図４３】
0003620261.tif 000045
【図４４】
0003620261.tif 000046
【図４５】
0003620261.tif 000047
【図４６】
0003620261.tif 000048
【図４７】
0003620261.tif 000049
【図４８】
0003620261.tif 000050
【図４９】
0003620261.tif 000051
【図５０】
0003620261.tif 000052
【図５１】
0003620261.tif 000053
【図５２】
0003620261.tif 000054
【図５３】
0003620261.tif 000055
【図５４】
0003620261.tif 000056
【図５５】
0003620261.tif 000057