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