(57)【特許請求の範囲】
【請求項１】
エンジンの燃焼室に供給される混合気の空燃比を検出する空燃比検出手段と、前記空燃比検出手段によって検出された空燃比の目標値に対する偏差に基づいてフィードバック補正値を設定するフィードバック補正値設定手段と、前記フィードバック補正値設定手段によって設定されたフィードバック補正値に基づいて空燃比を制御する空燃比制御手段と、燃料タンクから発生する蒸発燃料を捕集する蒸発燃料捕集手段と、所定運転領域において前記蒸発燃料捕集手段から蒸発燃料をパージし吸気系に供給する蒸発燃料パージ手段と、前記蒸発燃料パージ手段によるパージ実行中に前記フィードバック補正値設定手段により設定されたフィードバック補正値に基づいて前記蒸発燃料捕集手段による蒸発燃料捕集量を検出する蒸発燃料捕集量検出手段と、前記蒸発燃料捕集量検出手段により検出された蒸発燃料捕集量に基づいて実際にエンジンに吸入される蒸発燃料流入量を演算する蒸発燃料流入量演算手段と、前記蒸発燃料流入量演算手段により演算された蒸発燃料流入量に応じた減量値によって前記空燃比の目標値を得るための要求燃料供給量を減量補正する燃料供給量減量補正手段を備えたエンジンの燃料制御装置において、エンジンの負荷状態を検出する負荷検出手段と、前記蒸発燃料パージ手段が前記蒸発燃料捕集手段から蒸発燃料をパージし吸気系に供給する前記所定運転領域における前記負荷検出手段により検出された負荷が小さいときは大きいときに対して前記減量補正を制限する減量補正制限手段を設けたことを特徴とするエンジンの燃料制御装置。
【請求項２】
前記燃料供給量補正手段は前記蒸発燃料流入量の変化に応じて前記減量値を前記蒸発燃料流入量に応じた設定減量値まで所定燃料減量速度で変化させるものであり、前記減量補正制限手段はエンジンの負荷が小さいときは大きいときに対して前記燃料減量速度を低下させるものである請求項１記載のエンジンの燃料制御装置。
【請求項３】
減量補正制限手段はアイドル時とオフアイドル時とで前記燃料減量速度を変えるものである請求項２記載のエンジンの燃料制御装置。
【請求項４】
前記減量補正制限手段はアイドル時のパージ開始時にのみ前記減量補正の制限を実行するものである請求項３記載のエンジンの燃料制御装置。
【請求項５】
前記燃料供給量補正手段は前記蒸発燃料流入量の変化に応じて前記減量値を前記蒸発燃料流入量に応じた設定減量値まで変化させるものであり、前記減量補正制限手段は、エンジンの負荷が小さいときは大きいときに対して前記設定減量値を小さくするものである請求項１記載のエンジンの燃料制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、燃料タンクから発生する蒸発燃料をキャニスタ等の蒸発燃料補集手段によって補集し、その補集した蒸発燃料を所定運転領域においてパージして吸気系に供給するエンジンの燃料制御装置に関するものである。
【０００２】
【従来の技術】
一般に、自動車用の燃料噴射式エンジンにおいては、空燃比を目標値（目標空燃比）に合わせるために、基本的にはエアフローセンサによって検出される吸入空気量に対応する基本燃料噴射量（基本パルス幅）にて燃料噴射弁から吸気系又は燃焼室に燃料を噴射するようにしている。しかしながら燃料噴射弁による噴射量制御の精度には限度があり、また、燃料噴射弁から噴射された燃料の一部は吸気通路壁に付着するなどしてすぐには燃焼室に入らない。また、燃料噴射弁の噴射特性は経時的に変化することがある。このため、単に吸入空気量に対応する基本燃料噴射量で燃料を噴射するだけでは、高い精度で空燃比を目標空燃比に一致させることはむずかしい。
【０００３】
そこで、通常、燃料噴射式エンジンにおいては、所定の運転領域（フィードバック領域）では、リニアＯ２センサで排気ガス中のＯ２濃度を検出して、該Ｏ２濃度から空燃比を算出し、この空燃比の目標空燃比に対する偏差（空燃比偏差）に応じて該空燃比偏差をなくす方向に作用するフィードバック補正値を演算し、該フィードバック補正値で上記基本燃料噴射量を補正して空燃比を目標値に追従させるといった空燃比制御、すなわち空燃比のフィードバック制御を行うようにしている。なお、フィードバック領域外では、フィードバック補正値が中立値に固定され、オープンループ制御とされる。
【０００４】
また、自動車において燃料タンクで発生した蒸発燃料を直接大気中に排出すると大気汚染を招くとともに燃料の損失となる。そこで、自動車には通常、燃料タンク内の空気に含まれる蒸発燃料を吸着により捕集するキャニスタが設けられる。そして、キャニスタには、該キャニスタ内に捕集されている蒸発燃料を適宜吸気系にパージする蒸発燃料パージ手段が設けられている。そして、蒸発燃料パージ手段は通常、キャニスタと吸気系とを接続するパージ通路と、該パージ通路を適宜開閉するパージ制御弁とからなるもので、パージ制御弁が開かれたときにキャニスタ内の蒸発燃料が吸気系にパージ（キャニスタパージ）されるようになっている。
【０００５】
ところで、キャニスタパージが行われるとキャニスタ内の蒸発燃料が吸気系に供給されるので、吸入空気量に応じた基本燃料噴射量でオープンループ制御による燃料噴射を行っている時ににキャニスタパージを行ったのでは空燃比が目標値から大幅にずれてしまう。そこで、フィードバック領域で空燃比のフィードバック制御を行うようにしたエンジンでは通常、フィードバック制御時にキャニスタパージを行うようにしている。しかしながら、このように空燃比のフィードバック制御時にキャニスタパージを行う場合、該キャニスタパージによって吸気系に供給される蒸発燃料は空燃比制御側からみれば外乱となり、キャニスタ内に蒸発燃料がトラップされている場合に、この外乱はフィードバック補正値を中立値よりもリーン側に変化させるフィードバック動作によって補償されることになる。そして、この場合、キャニスタパージによって吸気系に供給される蒸発燃料の量（蒸発燃料パージ量）が一定であり、かつエンジンが定常状態にあるときには、キャニスタパージに起因する外乱はほぼ完全に補償される。しかし、蒸発燃料パージ量が急変する際、例えばパージ制御弁が閉状態から開状態に変化する際又は開状態から閉状態に変化する際、あるいはパージ制御弁の前後差圧が急変する際、あるいはキャニスタパージ時においてエンジンが過渡状態にあるとき、例えば加減速時には、空燃比の検出遅れ（タイムラグ）あるいはフィードバック動作の遅れによりキャニスタパージに起因する外乱が十分に補償されず、空燃比が目標値からずれてしまうといった問題がある。かかる現象が生じるのは、次のような理由による。
【０００６】
すなわち、空燃比のフィードバック制御時において、例えばパージ制御弁が閉状態から開状態になったときには、蒸発燃料パージ量に応じて空燃比がリッチ化することになる。そして、かかる空燃比のリッチ化は排気通路に臨設されたリニアＯ２センサによって検出された後、これに基づいてフィードバック補正値がリーン方向に変更されて上記空燃比のリッチ化が是正されることになる。換言すれば、キャニスタパージによって空燃比がリッチ化し場合、タイムラグがあって、リッチ化がリニアＯ２センサによって実際に検出されるまでは該空燃比のリッチ化は何ら是正されないことになる。
【０００７】
逆に、パージバルブが開状態から閉状態になったときには空燃比がリーン化することになるが、この場合も、やはりタイムラグがあり、キャニスタパージの停止によって空燃比がリーン化した後、このリーン化がリニアＯ２センサによって実際に検出されるまでは該空燃比のリーン化は何ら是正されないことになる。
【０００８】
また、キャニスタパージ時においてエンジンが過渡状態にあるとき、例えば加速時においては、パージ制御弁の前後差圧が急低下するので、１回の吸入行程で燃焼室に供給される蒸発燃料の量（蒸発燃料流入量）ないし該蒸発燃料流入量が全燃料流入量中に占める比率が急低下して空燃比がリーン化し、一方、減速時には空燃比がリッチ化する。しかし、この場合もタイムラグがあり、かかる空燃比のリーン化あるいはリッチ化も、リニアＯ２センサによって実際に検出されるまでは何ら是正されないことになる。
【０００９】
このため、蒸発燃料パージ量の急変時あるいはキャニスタパージ時においてエンジンが過渡状態にあるときには、一時的に空燃比がリッチ化して燃料が無駄に消費され燃費性能が低下するとともにＨＣ排出量が増加してエミッション性能が低下するなどといった問題が生じたり、逆に空燃比がリーン化して十分なエンジン出力が得られない場合があるなどといった問題が生じたりする。
【００１０】
また、蒸発燃料パージ量の急増と急減とが頻繁に繰り返されたとき、あるいはキャニスタパージ時において加速と減速とが頻繁に繰り返されたときには、前記のタイムラグ或はフィードバック動作遅れにより空燃比の是正が後手後手にまわり、ハンチングあるいはサイクリングが生じて空燃比のフィードバック制御の安定性が悪くなるといった問題が生じる。
【００１１】
なお、蒸発燃料を空燃比フィードバック制御の外乱として処理する場合、蒸発燃料パージ量が非常に多いときには、これに起因する外乱を補償するためにフィードバック補正値がリーン側の限界値にはりついてしまい、その他の外乱に対処することができなくなるおそれもある。
【００１２】
これに対して、蒸発燃料パージ量を検出し、本来必要とされる最終的な燃料噴射量すなわちキャニスタパージがない場合に必要とされる最終的な燃料噴射量（以下、これを要求燃料噴射量という）を上記蒸発燃料パージ量分だけ減量補正することにより、キャニスタパージの影響を空燃比のフィードバック制御から排除するといった対応、すなわちキャニスタパージによって吸気系に供給される蒸発燃料を空燃比フィードバック制御の外乱とはならないようにするといった対応が考えられるが、蒸発燃料パージ量を直接的に高精度で検出することができる実用的な手段は現時点では見当たらない。
【００１３】
そこで、間接的に蒸発燃料パージ量を推定し、必要燃料噴射量を上記推定値分だけ減量補正するようにしたエンジンが提案されている（例えば、特開平２−２４５４４１号公報参照）。そして、このような従来のエンジン、例えば特開平２−２４５４４１号公報に開示されているエンジンでは、フィードバック補正値とその中立値との差に基づいて蒸発燃料パージ量を推定するようにしている。なお、この従来のエンジンでは、蒸発燃料パージ量の推定値をエンジン回転数で除算して１回転当たりの蒸発燃料パージ量を算出し、基本燃料噴射量をこの１回転当たりの蒸発燃料パージ量分だけ減量補正するようにしている。
【００１４】
【発明が解決しようとする課題】
一般に、蒸発燃料パージ量は、例えば、吸入空気量の変化、吸気圧の変化、エンジン回転数の変化等のエンジンの運転状態の変化に伴って非常に短い周期で変動する。ところで、例えば上記特開平２−２４５４４１号公報に開示されているような従来のエンジンでは、蒸発燃料パージ量をフィードバック補正値に基づいて推定するようにしている。しかし、上述のようにフィードバック補正値は、リニアＯ２センサによって検出される空燃比に基づいて演算される関係上どうしてもタイムラグが伴うので、エンジンの運転状態の変化に伴って実際の蒸発燃料パージ量が短い周期で変化すると、蒸発燃料パージ量の推定精度が低下し、ひいては空燃比の目標値からのずれを生じさせるといった問題が生じる。そこで、本願発明者は、先に、キャニスタパージ時に、空燃比制御のフィードバック補正値を平均化処理することにより平均フィードバック補正値演算し、その平均フィードバック補正値に基づいて間接的にトラップ量を推定し、そのトラップ量推定値に基づいて蒸発燃料流入量を演算し、要求燃料噴射量から蒸発燃料流入量を減算することによって実燃料噴射量を設定するようにし、つまり、フィードフォワード制御によって空燃比制御に対するキャニスタパージの影響を補償するようにしたものを提案した。この場合、具体的には、トラップ量推定値に基づいて蒸発燃料放出量を演算し、この蒸発燃料放出量に基づいて蒸発燃料流入量を演算する。そして、この蒸発燃料流入量に相当する噴射のパルス幅すなわちパージパルス幅を演算し、要求燃料噴射量（パルス幅）をこのパージ幅で補正したもので燃料噴射弁を駆動することにより、キャニスタパージに起因する実空燃比の目標値に対するずれが生じないようにしている。その際、吸気充填効率に基づいてパージ制御弁前後差圧を演算し、そのパージ制御弁前後差圧とパージ制御弁開度とに基づいてパージ空気量を演算し、この演算したパージ空気量と、トラップ量推定値とに基づいて蒸発燃料放出量を演算している。こうすることにより、キャニスタパージに起因する実空燃比の目標値に対するずれが生じないようになり、アイドルでも十分パージが可能となる。
【００１５】
しかしながら、たとえばこのようにしてパージ行う場合に、トラップ量は、空燃比のフィードバック補正値に基づいて推定するようにしているので、このフィードバック補正値が例えばリニアＯ２センサへのノイズとか、センサの劣化等の要因で異常な値となった場合には、トラップ量の推定が不適正で、誤推定となり、そのため、トラップ量推定値に基づいて演算された蒸発燃料流入量が実際の蒸発燃料流入量からかけはなれたものとなる。そして、要求燃料噴射量から減算する蒸発燃料流入量（燃料減量値）が適正でなくなり、大きすぎたり小さすぎたりして、空燃比が目標値からずれてしまう。そのため、高負荷時のように空燃比のずれがさほど影響しない領域ではともかくも、アイドル時等の低負荷領域では、このようなトラップ量の誤推定に伴う空燃比のずれによって燃焼性が悪化し、特に、燃料の過減量によるリーン化が生じて、高地等ではエンストを起こしやすくなる。
【００１６】
そこで、このようなトラップ量の誤推定があった場合でも、その誤推定による影響を空燃比のフィードバック補正によってカバーできる程度に燃料減量速度を小さくするということが考えられる。しかし、そのように燃料減量速度を小さくしたのでは、トラップ量の推定が正常である場合の燃料減量補正に遅れが生じ空燃比のずれを招いていまう。
【００１７】
本発明は、このような問題点を解決するためになされたものであって、トラップ量の誤推定があった時の燃料の過減量を抑制しつつトラップ量の推定が正常である場合の空燃比のずれを抑制できるようにすることを目的とする。
【００１８】
【課題を解決するための手段】
上記の目的を達成するため、請求項１の発明は、図１に全体構成を示すように、エンジンの燃焼室に供給される混合気の空燃比を検出する空燃比検出手段と、前記空燃比検出手段によって検出された空燃比の目標値に対する偏差に基づいてフィードバック補正値を設定するフィードバック補正値設定手段と、前記フィードバック補正値設定手段によって設定されたフィードバック補正値に基づいて空燃比を制御する空燃比制御手段と、燃料タンクから発生する蒸発燃料を捕集する蒸発燃料捕集手段と、所定運転領域において前記蒸発燃料捕集手段から蒸発燃料をパージし吸気系に供給する蒸発燃料パージ手段と、前記蒸発燃料パージ手段によるパージ実行中に前記フィードバック補正値設定手段により設定されたフィードバック補正値に基づいて前記蒸発燃料捕集手段による蒸発燃料捕集量を検出する蒸発燃料捕集量検出手段と、前記蒸発燃料捕集量検出手段により検出された蒸発燃料捕集量に基づいて実際にエンジンに吸入される蒸発燃料流入量を演算する蒸発燃料流入量演算手段と、前記蒸発燃料流入量演算手段により演算された蒸発燃料流入量に応じた減量値によって前記空燃比の目標値を得るための要求燃料供給量を減量補正する燃料供給量減量補正手段を備えたエンジンの燃料制御装置において、エンジンの負荷状態を検出する負荷検出手段と、前記蒸発燃料パージ手段が前記蒸発燃料捕集手段から蒸発燃料をパージし吸気系に供給する前記所定運転領域における前記負荷検出手段により検出された負荷が小さいときは大きいときに対して前記減量補正を制限する減量補正制限手段を設けたことを特徴とするエンジンの燃料制御装置を提供する。
【００１９】
また、請求項２の発明は、請求項１に係る構成において、前記燃料供給量補正手段が前記蒸発燃料流入量の変化に応じて前記減量値を前記蒸発燃料流入量に応じた設定減量値まで所定燃料減量速度で変化させるものであり、前記減量補正制限手段がエンジンの負荷が小さいときは大きいときに対して前記燃料減量速度を低下させるものであるエンジンの燃料制御装置を提供する。
【００２０】
また、請求項３の発明は、請求項２に係る構成において、減量補正制限手段がアイドル時とオフアイドル時とで前記燃料減量速度を変えるものであるエンジンの燃料制御装置を提供する。
【００２１】
また、請求項４の発明は、請求項３に係る構成において、前記減量補正制限手段がアイドル時のパージ開始時にのみ前記減量補正の制限を実行するものであるエンジンの燃料制御装置を提供する。
【００２２】
また、請求項５の発明は、請求項１に係る構成において、前記燃料供給量補正手段が前記蒸発燃料流入量の変化に応じて前記減量値を前記蒸発燃料流入量に応じた設定減量値まで変化させるものであり、前記減量補正制限手段が、エンジンの負荷が小さいときは大きいときに対して前記設定減量値を小さくするものであるエンジンの燃料制御装置を提供する。
【００２３】
【作用】
請求項１の発明によれば、空燃比が検出され、この検出された空燃比の目標値に対する偏差に基づいてフィードバック補正値が設定され、設定されたフィードバック補正値に基づいて空燃比のフィードバック制御が行われる。また、燃料タンクから発生した蒸発燃料は蒸発燃料捕集手段に捕集され、所定運転領域において蒸発燃料捕集手段から蒸発燃料がパージされ吸気系に供給される。その際、パージ実行中にフィードバック補正値に基づいて蒸発燃料捕集量（トラップ量）の検出が行われ、その蒸発燃料捕集量の検出値に基づいてエンジンへの蒸発燃料流入量が演算され、その演算された蒸発燃料流入量に応じた減量値を要求燃料供給量から減量する減量補正が行われ、それにより、キャニスタパージに起因する空燃比の目標値に対するずれが防止される。また、その減量補正は、エンジンの負荷が小さいときは大きいときに対して制限され、それによって、蒸発燃料捕集量の誤推定による影響が大きい低負荷領域で過減量になってエンストが発生するのが防止される。また、高負荷領域では減量補正は制限されないので誤推定があった場合にはある程度の影響がでるが、高負荷領域ではその影響が小さい。そして、高負荷領域で正規の減量補正が行われることにより、トラップ量の推定が正常である場合の空燃比のずれが抑制される。
【００２４】
また、請求項２の発明によれば、エンジンの負荷が小さいときは大きいときに対して前記燃料減量速度を低下させる方式で減量補正の制限が行われ、それによって上述の作用が得られる。
【００２５】
また、請求項３の発明によれば、アイドル時に燃料減量速度が小さくされ、それによって上述の作用が得られ、特に、トラップ量の推定が正常である場合の空燃比のずれが最小限に抑制される。
【００２６】
また、請求項４の発明によれば、アイドル時のパージ開始時にのみ燃料減量速度が小さくされ、それによって上述の作用が得られ、特に、トラップ量の推定が正常である場合の本来の減量補正への影響が一層小さくなる。
【００２７】
また、請求項５の発明によれば、エンジンの負荷が小さいときは大きいときに対して設定減量値自体を小さくする方式で燃料減量補正の制限が行われ、それによってやはり上述の作用が得られる。
【００２８】
【実施例】
以下、本発明の実施例を具体的に説明する。
【００２９】
図２は、本発明に一実施例に係るエンジンのシステム図である。図２にＣＥで示すこの実施例のエンジンは、直列４気筒のガソリン噴射式エンジンであって、各気筒１（一つの気筒のみ図示）は、吸気弁２が開かれることによって吸気ポート３から燃焼室４に混合気が吸入され、この混合気がピストン５で圧縮された後点火プラグ（図示せず）によって着火され燃焼して爆発、膨張し、燃焼ガスが排気弁６が開かれることによって排気ガスとして排気ポート７を介し排気通路８に排出されるよう構成されたものである。
【００３０】
排出通路８には、排気ガス中のＯ２濃度を検出するリニアＯ２センサ９が臨設されている。リニアＯ２センサで検出されたＯ２濃度はコントロールユニットＣＵに入力される。コントロールユニットＣＵではこのＯ２濃度に基づいて燃焼室４に吸入された混合気の空燃比が演算される。ここで、リニアＯ２センサ９によって検出されたＯ２濃度と上記混合気の空燃比とは一義的な対応関係にある。そこで、以下、Ｏ２濃度に基づいて演算された空燃比を、「リニアＯ２センサ９によって検出された空燃比」又は「実空燃比」ということにする。
【００３１】
エンジンＣＥには、各気筒１の燃焼室４に燃焼用空気を供給するための吸気系１０が設けられている。この吸気系１０は、上流端が図示しないエアクリーナを介して大気に開放された共通吸気通路１１を備え、その共通吸気通路１１にはアクセルペダル（図示せず）と連動して開閉されるスロットル弁１２が介設されている。そして、共通吸気通路１１の下流端には吸入空気の流れを安定させるサージタンク１３が接続され、サージタンク１３には、各気筒１に夫々個別に空気を供給する独立吸気通路１４（１つのみ図示）が接続され、これらの各独立吸気通路１４の下流端は夫々対応する気筒１の吸気ポート３に接続されている。
【００３２】
また、各気筒１の独立吸気通路１４には、それぞれの吸気ポート３の近傍において吸気ポート３内ないしは燃焼室４内に燃料を噴射する燃料噴射弁１５が、噴射口が下流側に向くようにして臨設されている。これら燃料噴射弁１５は、後述のように燃料噴射量（噴射パルス幅）及び噴射タイミングがコントロールユニットＣＵによって制御される。
【００３３】
また、エンジンＣＥには、燃料の気化・霧化を促進するため、各燃料噴射弁１５にアシストエアを供給するアシストエア供給装置（以下、これをＡＭＩという）１６が設けられている。このＡＭＩ１６には、詳細には図示されていないが、上流端がスロットル弁１２より上流側で上記共通吸気通路１１と連通するアシストエア導入通路１７が設けられ、このアシストエア導入通路１７にはコントロールユニットＣＵによって開閉されるソレノイド式のアシストエア制御弁１８が介設されている。そして、アシストエア制御弁１８をバイパスしてエアを通すバイパスアシストエア通路１９が設けられ、このバイパスアシストエア通路１９には所定の圧力損失（圧力低下）を生じさせることによって流量を規制するオリフィス２０が介設されている。
【００３４】
アシストエア導入通路１７の下流端はミキシングチャンバ２１に接続され、このミキシングチャンバ２１にはさらにアシストエア供給通路２２が接続されている。そして、アシストエア供給通路２２は下流側で４つの分岐アシストエア供給通路２３に分岐し、各分岐アシストエア供給通路２３は夫々、その下流端で対応する気筒１の燃料噴射弁１５に接続されている。各気筒１の燃料噴射弁１５には、対応する分岐アシストエア供給通路２３から個別にアシストエアが供給される。
【００３５】
エンジンＣＥには、燃料タンク（図示せず）から蒸発した蒸発燃料（ガソリンベーパ）を捕集し、捕集した蒸発燃料を適宜パージして吸気系１０に供給する蒸発燃料処理装置２４が設けられている。
【００３６】
この蒸発燃料処理装置２４は、内部に蒸発燃料を吸着により捕集することができる吸着材（例えば、活性炭）を充填したキャニスタ２５が備えている。そして、キャニスタ２５には、先端が燃料タンクの上部空間部と連通し燃料タンク上部空間部の空気および蒸発燃料をキャニスタ２５内にリリーフするリリーフ通路２６と、先端が大気に開放された大気開放通路２７と、先端が上記ミキシングチャンバ２１に接続されたパージ通路２８とが接続されている。なお、大気開放通路２７は、先端をスロットル弁１２よりも上流側で上記共通吸気通路１１に接続するようにしてもよい。また、キャニスタ２５は、吸着材を充填するのではなく、吸着以外の機能（例えば、吸収、反応等）を利用して蒸発燃料を捕集する材料（ただし、空気によるパージが可能なもの）を充填してもよい。
【００３７】
上記パージ通路２８には、コントロールユニットＣＵによって開度をデューティ制御することのより該通路２８を任意に開閉することができるデューティソレノイド式のパージ制御弁２９が介設されている。パージ制御弁２９は、コントロールユニットＣＵから印加される駆動デューティ比によって開度が制御されるもので、例えば駆動デューティ比が０のときに全閉で、駆動デューティ比が１００％のときに全開で、その間では駆動デューティ比が大きいときほど開弁度合が大きくなるよう制御される。
【００３８】
この蒸発燃料処理装置２４において、パージ制御弁２９が全閉（駆動デューティ比０）のときには、燃料タンク内の空気はリリーフ通路２６を通してキャニスタ２５内にリリーフされ、大気開放通路２７を通して大気中に排出される。しかし、リリーフされた空気中の蒸発燃料は、キャニスタ２５内の吸着材層を通過する際に吸着材に捕集され、大気中には排出されない。
【００３９】
また、パージ制御弁２９が開かれているときには、吸気系１０の負圧によって、大気中の空気が大気開放通路２７を通してキャニスタ２５内に吸い込まれ、吸着材層を通り抜けて、パージ通路２８を介しＡＭＩ１６のミキシングチャンバ２１に入り、アシストエア供給通路２２から分岐アシストエア供給通路２３に流れ、吸気系１０を介して燃焼室４にパージされる。このパージされる空気の流量（以下、これをパージ空気量という）は、パージ制御弁２９の開弁度合（すなわち、駆動デューティ比）に応じて変化する。そして、その際、キャニスタ２５内の吸着材に捕集されている蒸発燃料の一部が吸着材から離脱し、パージされた上記空気（以下、これをパージ空気という。）と共に吸気系１０を介して燃焼室４にパージされる。なお、以下、このように吸気系１０を介して燃焼室４にパージされる蒸発燃料の流量を「蒸発燃料パージ量」という。
【００４０】
キャニスタ２５から燃焼室４に至るパージ空気ないしは蒸発燃料の輸送経路はかなり容量がある。そのため、キャニスタ２５からパージ通路２８に放出された蒸発燃料が燃焼室４に実際に流入するまでには、上記輸送経路の容積及び形状（輸送特性）に相応する輸送遅れが伴う。したがって、ある時刻において、キャニスタ２５からパージ通路２８に放出される蒸発燃料の流量（以下、これを蒸発燃料放出量という。）と、燃焼室４に実際に流入する蒸発燃料の流量（以下、これを蒸発燃料流入量という）とは、定常状態にあるような特別な場合を除けば通常は一致しない。このため、以下、蒸発燃料パージ量を、蒸発燃料放出量と蒸発燃料流入量とに区別して説明することにする。
【００４１】
なお、キャニスタ２５から燃焼室４に至るパージ空気ないしは蒸発燃料の輸送経路の容積が非常に小さい場合は、輸送遅れを無視することができるので、蒸発燃料放出量と蒸発燃料流入量とをとくには区別しないで、蒸発燃料パージ量という概念を用いても、とくには不具合は生じない。
【００４２】
ところで、図２に示すエンジンＣＥでは、パージ通路２８の下流端をミキシングチャンバ２１に接続し、キャニスタ２５に捕集されている蒸発燃料をＡＭＩ１６を介して吸気系１０にパージするようにしているが、ＡＭＩが設けられていないエンジンの場合は、パージ通路２８の下流端を分岐して各独立吸気通路１４に接続すればよい。また、ＡＭＩが設けられていないエンジンＣＥの場合に、パージ通路２８の下流端をサージタンク１３に接続し、キャニスタ２５に捕集されている蒸発燃料を直接的に吸気系１０にパージするようにしてもよい。
【００４３】
コントロールユニットＣＵは、マイクロコンピュータで構成された総合的なエンジンＣＥ用制御装置であって、リニアＯ２センサ９によって検出される空燃比（実空燃比）、スロットル開度センサ３１によって検出されるスロットル開度、エアフローセンサ３２によって検出される吸入空気量、回転数センサ３３によって検出されるエンジン回転数、アイドルスイッチ３４から出力されるアイドル信号、大気圧センサ３５によって検出される大気圧等を制御情報として、エンジンＣＥの各種制御、蒸発燃料処理装置２４の制御、キャニスタ２５に捕集されている蒸発燃料の量（以下、これをトラップ量という。）の推定、蒸発燃料放出量の演算、蒸発燃料流入量の演算等を行う。
【００４４】
図３は上記コントロールユニットＣＵの基本的な機能を示す制御ブロック図である。この図３に示すように、コントロールユニットＣＵは機能的には、空燃比制御（燃料噴射量制御）及びキャニスタパージ制御を行うエンジン制御ブロックＳＬと、トラップ量の推定を行うトラップ量推定ブロックＳＭと、トラップ量に基づいて蒸発燃料放出量及び蒸発燃料流入量を演算する蒸発燃料パージ量演算ブロックＳＮとに大別される。
【００４５】
エンジン制御ブロックＳＬは、基本的には、空燃比が目標空燃比となるように燃料噴射弁１５の噴射パルス幅すなわち燃料噴射量を運転状態に応じてフィードバック又はオープンループで制御（空燃比制御）するとともに、キャニスタパージを行うべき運転領域で運転状態に応じたキャニスタパージ制御を行う。
【００４６】
空燃比制御では、エンジンＣＥの運転状態が所定のフィードバック領域（例えば、高負荷領域と高回転領域を除いた領域）に入っていれば、実空燃比の目標空燃比に対する偏差（以下、これを空燃比偏差という。）に基づいてフィードバック制御が行われ、フィードバック領域に入っていなければ、空燃比偏差に基づかずオープンループ制御が行われる。  空燃比のフィードバック制御では、吸入空気量とエンジン回転数とに応じて燃料噴射弁１５を駆動するパルス（噴射パルス）の基本パルス幅すなわち基本燃料噴射量が演算される（ベース演算）。そして、他方では、空燃比偏差（例えば、目標空燃比から実空燃比を引いた値）に基づいてフィードバック補正量ｃｆｂが演算される（ステイジＳ１）。ここで、フィードバック補正量ｃｆｂは、中立値すなわち空燃比をいずれの方向にも補正しない中立的な値が０で、ｃｆｂ＞０のときは空燃比を燃料リッチ方向に補正するよう燃料噴射量を補正し、ｃｆｂ＜０のときは空燃比（燃料噴射量）を燃料リーン方向に補正するものである。
【００４７】
そして、基本パルス幅とフィードバック補正値ｃｆｂとに基づいて、例えば基本パルス幅にｃｆｂが乗算されることにより、基本パルス幅が空燃比偏差が縮小する方向に補正され、要求パルス幅すなわち要求燃料噴射量が演算される（ステイジＳ２）。例えば、実空燃比が目標空燃比よりもリーンなときにはｃｆｂ＞０となり、これに伴って燃料噴射量が増量補正され、空燃比がリッチ方向に補正されて空燃比偏差が縮小される。逆に、実空燃比が目標空燃比よりもリッチなときにはｃｆｂ＜０となり、これに伴って燃料噴射量が減量補正され、空燃比がリーン方向に補正されて空燃比偏差が縮小される。かくして、空燃比偏差に応じて該空燃比偏差をなくすように空燃比（燃料噴射量）がフィードバック制御される。
【００４８】
また、空燃比のオープンループ制御が行われる場合は、フィードバック補正値ｃｆｂが０に固定される。この場合は、基本パルス幅が空燃比偏差に応じた補正を受けることなくそのまま要求パルス幅となり、フィードバックのないオープンループ制御が行われる。
【００４９】
さらに、要求パルス幅すなわち要求燃料噴射量から、後述の蒸発燃料流入量に対応するパルス幅（以下、これをパージ補正パルス幅という。）が減算され燃料噴射弁１５の実際の噴射パルス幅（以下、これを実噴射パルス幅という。）すなわち実燃料噴射量（実際の燃料噴射量）が演算される。そして、この実噴射パルス幅すなわち実燃料噴射量でもって、所定のタイミングで燃料噴射弁１５が駆動され、燃料が噴射される。かくして、実空燃比が目標空燃比に保持される。
【００５０】
キャニスタパージ制御は、例えば水温が所定値以上といったキャニスタパージ条件が成立しているときに、エンジンＣＥの運転状態に応じて、よく知られた普通の手法で行われる。すなわち、パージ制御弁２９にエンジンＣＥの運転状態に応じたデューティ比が印加され、それによってキャニスタパージが行われる。
【００５１】
トラップ量推定ブロックＳＭは、キャニスタパージ時に、エンジン制御ブロックＳＬのステイジＳ１で演算されたフィードバック補正値ｃｆｂを平均化処理することにより平均フィードバック補正値ｃｆｂａｖｅを演算し（ステイジＳ３）、さらにこの平均フィードバック補正値ｃｆｂａｖｅに基づいて間接的にトラップ量を推定する（ステイジＳ４）。すなわち、平均フィードバック補正値ｃｆｂａｖｅを、現在把握しているトラップ量（トラップ量推定値）が真のトラップ量よりも大きいか小さいかを判定する指標として用いていることによりトラップ量を把握する。
【００５２】
後述のように、コントロールユニットＣＵは、所定の演算式によりトラップ量推定値に基づいて蒸発燃料流入量を演算し、さらに要求燃料噴射量から蒸発燃料流入量を減算することによって実燃料噴射量を設定する。ここで、トラップ量推定値が正確であれば、すなわち真のトラップ量と一致していれば、蒸発燃料流入量が正確に演算されるので、キャニスタパージによって燃焼室４に供給される蒸発燃料はフィードバック制御の外乱とはならず、フィードバック補正値ｃｆｂにとくには影響を与えない。この場合、ほかに大きな外乱がなければフィードバック補正値ｃｆｂは中立値（すなわち０）を中心にして若干変動するだけであり、したがって、平均フィードバック補正値ｃｆｂａｖｅはほぼ中立値０となる。換言すれば、平均フィードバック補正値ｃｆｂａｖｅが０であれば、トラップ量推定値は真のトラップ量に一致していることになる。
【００５３】
しかしながら、トラップ量推定値が真のトラップ量より大きいと、これ伴って蒸発燃料流入量演算値が真値よりも大きくなり、したがって、実燃料噴射量が適正値よりも小さくなるので、燃焼室４に実際に供給される燃料が必要とされる燃料量（要求燃料噴射量）よりも少なくなり、そのため実空燃比がリーン化する。この場合、このリーン化を是正するためにフィードバック補正値ｃｆｂがリッチ方向に変化して０より大きくなり、これに伴って平均フィードバック補正値ｃｆｂａｖｅが０より大きくなる。換言すれば、ｃｆｂａｖｅ＞０であれば、トラップ量推定値は真のトラップ量よりも大であるということになる。
【００５４】
なお、前述のとおり、フィードバック補正値ｃｆｂには変動があるため、トラップ量推定値が真のトラップ量より大であっても必ずしもｃｆｂ＞０になるとは限らず、したがってｃｆｂ＞０であってもトラップ量推定値が真のトラップ量よりも大であるとは限らない。したがって、フィードバック補正値ｃｆｂに基づいてトラップ量を推定したのでは、その推定精度は非常に低くなるものと考えられる。かかる事情に鑑み、本実施例では平均フィードバック補正値ｃｆｂａｖｅに基づいてトラップ量を推定するようにしている。
【００５５】
逆に、トラップ量推定値が真のトラップ量よりも小さいと、これに伴って蒸発燃料流入量演算値が真値よりも小さくなり、したがって実燃料噴射量が適正値よりも大きくなるので、燃焼室４に供給される燃料は必要とされる燃料量よりも多くなり、実空燃比がリッチ化する。この場合、このリッチ化を是正するためにフィードバック補正値ｃｆｂがリーン方向に変化して０より小となり、これに伴って平均フィードバック補正値ｃｆｂａｖｅが０より小となる。換言すれば、ｃｆｂａｖｅ＜０であれば、トラップ量推定値が真のトラップ量よりも小であるということになる。
【００５６】
したがって、最初にトラップ量推定値に適当な初期値を設定した上で、ｃｆｂａｖｅ＞０であればトラップ量推定値を所定の補正量σだけ減らし、ｃｆｂａｖｅ＜０であればトラップ量推定値を補正量σだけ増やすといった操作を繰り返すことにより、トラップ量推定値はやがて真のトラップ量に収束（到達）し、トラップ量が把握されることになる。かくして、平均フィードバック補正値ｃｆｂａｖｅに基づいてトラップ量が推定される。
【００５７】
ここで、トラップ量推定値が真のトラップ量にほぼ一致しているか否か、すなわちトラップ量の推定がほぼ完了しているか否かは、平均フィードバック補正値
0003552299.tif 000002
定するのが好ましい。｜ｃｆｂａｖｅ｜が非常に小さければ、トラップ量推定値が真のトラップにほぼ一致していると考えられるからである。
【００５８】
上記補正量σが大きいと、推定開始後においてトラップ量推定値の収束に要する時間すなわちトラップ量を推定するのに要する時間を短くすることができるものの、トラップ量推定値の精度が低下する。また、補正量σが小さいと、トラップ量推定値の収束に要する時間は長くなるものの、トラップ量推定値の精度を高めることができる。したがって、収束に要する時間に対する要求と、トラップ量推定値の精度に対する要求とが両立するよう、補正量σを適切な値に設定するのが好ましい。
【００５９】
なお、補正量σは一定値とする必要はなく、トラップ量の推定中に例えばトラップ量の推定の進行状況に応じて変化させてもよく、あるいは平均フィードバック補正値ｃｆｂａｖｅの値に応じた設定としてもよい。例えば、トラップ量の推定開始時には補正量σを大きくして収束を早め、トラップ量推定値がある程度収束した後は補正量σを小さくしてトラップ量推定値の精度を高めるようにしてもよい。また、平均フィードバック補正値ｃｆｂａｖｅが大きいときほど補正量σを大きくすれば、トラップ量推定値が真のトラップ量からかけ離れているときには収束を早め、トラップ量推定値が真のトラップ量に近いときには精度を高めるようにできる。
【００６０】
このトラップ量の推定手法は、トラップ量ないしは蒸発燃料パージ量と、フィードバック補正値ｃｆｂないしは平均フィードバック補正値ｃｆｂａｖｅとの間に前記のような相関性（相関関係）が成立していることを前提としている。したがって、かかる相関性が低い状況下あるいは相関性が存在しない状況下ではトラップ量を高精度で推定することはできない。このため、上記相関性が低い状況下あるいは相関性が存在しない状況下ではトラップ量の推定を禁止するのが好ましい。ここで、上記相関性が低い状況としては、後述のように、例えば吸入空気量が非常に多いとき、吸気圧が非常に低いとき等があげられる。また、上記相関性が存在しない状況としては、例えばキャニスタパージが停止されているとき、空燃比のフィードバック制御が停止されているとき（オープンループ制御時）等があげられる。なお、上記相関性が低い状況あるいは相関性がない状況がいくつか重複して存在するときにのみトラップ量の推定を禁止するようにしてもよいのはもちろんである。
【００６１】
また、このトラップ量の推定手法は、蒸発燃料流入量が正確に把握されていれば、すなわちキャニスタパージによる蒸発燃料の供給がフィードバック補正値ｃｆｂに対して影響を与えなければ、フィードバック補正値ｃｆｂが中立値０を中心にして変動し、したがって平均フィードバック補正値ｃｆｂａｖｅは中立値０になるということを前提としている。ところで、エンジンにおいては、フィードバック補正値ｃｆｂが平均的には中立値０となるよう学習により制御出力特性すなわち燃料噴射弁の噴射特性を自動的に補正してゆくといった空燃比学習が広く行われているが、かかる空燃比学習を行うエンジンにおいてトラップ量を推定する場合は、トラップ量の推定は空燃比学習が終了してから行うのが好ましい。けだし、空燃比学習が終了していれば、キャニスタパージの影響がない場合には平均フィードバック補正値ｃｆｂａｖｅが確実に中立値０になるからである。
【００６２】
なお、このようにしてトラップ量の推定が禁止されて、その禁止期間がある程度以上継続した場合は、トラップ量推定値が真のトラップ量からずれてくるおそれがあるので、すでにトラップ量の推定が完了していると判定されている場合でもその判定を撤回（リセット）するのが好ましい。
【００６３】
蒸発燃料パージ量演算ブロックＳＮは、基本的には、トラップ量推定ブロックＳＭのステイジＳ４で推定されたトラップ量推定値に基づいて蒸発燃料放出量を演算し、さらにこの蒸発燃料放出量に基づいて蒸発燃料流入量を演算し、この蒸発燃料流入量に相当する燃料噴射弁１５のパルス幅すなわちパージ補正パルス幅を演算し、このパージ補正パルス幅をエンジン制御ブロックＳＬに出力する。つまり、フィードフォワード制御（見込み制御）により、タイムラグを生じさせることなく、ひいては空燃比のずれを生じさせることなく空燃比制御に対するキャニスタパージの影響を補償する。
【００６４】
より詳しくは、まずパージ通路２８内におけるパージ制御弁２９の前後差圧すなわちパージ制御弁２９の直上流側と直下流側との間の圧力差（以下、これをパージ制御弁前後差圧という）が演算され（ステイジＳ５）、一方、パージ制御弁２９に印加されている駆動デューティ比からパージ制御弁開度（パージＳＯＬ開度）が演算され（ステイジＳ６）、続いてパージ制御弁前後差圧とパージ制御弁開度とに基づいてパージ空気量（キャニスタ脱気Ａｉｒ量）が演算される（ステイジＳ７）。
【００６５】
この実施例では、パージ制御弁前後差圧は吸気充填効率に基づいて演算されるようになっている。その理由は次のとおりである。すなわち、吸気圧はよく知られた手法で充填効率から演算することができ、かつ、パージ制御弁２９の直下流側の圧力は吸気圧とほぼ同一である。一方、パージ制御弁２９の直上流側の圧力は実質的に一定値（大気圧）とみなすことができる。そして、パージ制御弁前後差圧はパージ制御弁２９の直上流側の圧力と直下流側の圧力の差、すなわち大気圧と吸気圧との差である。したがって、充填効率に所定の演算処理を施すことによりパージ制御弁前後差圧を得ることができることになる。このようにすれば、吸気圧センサを設ける必要がなくなり、吸気系１０が簡素化される。なお、パージ制御弁２９の直下流側の圧力を吸気圧センサを用いて検出するようにしてもよいのはもちろんである。また、パージ制御弁前後差圧を直接検出する差圧センサを設けてもよい。
【００６６】
パージ空気量は、パージ制御弁前後差圧とパージ制御弁開度とに基づいて、よく知られた手法で演算される。すなわち、一般に気体の密閉通路に介設された機器の前後差圧ΔＰすなわち圧力損失と、該機器を流通する気体の流速ｕとの間には、流体力学の分野でよく知られていた一定の関数関係が成立する（例えば、ΔＰ＝ｋ・ｕ２）。したがって、前後差圧に基づいて該機器内における気体の流速を演算することができる。そして、この流速に該機器の流通断面積を乗算すれば該流路を流れている気体の体積流量を得ることができる。したがって、かかる一般原理に鑑みれば、本実施例においては、パージ制御弁開度からパージ制御弁２９の流通断面積を容易に求めることができるので、パージ制御弁前後差圧とパージ制御弁開度（駆動デューティ比）とに基づいてパージ空気量（体積流量）を求めることができるわけである。なお、パージ空気量を直接検出することができる流量検出センサを設け、該流量検出センサでパージ空気量を検出するようにしてもよい。
【００６７】
そして、ステイジＳ７で演算されたパージ空気量と、トラップ量推定値とに基づいて、蒸発燃料放出量（パージガス質量流量すなわち蒸発燃料の質量流量）が演算される（ステイジＳ８）。次に、エンジン回転数が計測され（ステイジＳ９）、このエンジン回転数とステイジＳ８で演算された蒸発燃料放出量とに基づいてパージガス比率が演算される（ステイジＳ１０）。ここで、パージガス比率とは、キャニスタ２５からパージ通路２８に放出された蒸発燃料が、必要とされる全燃料（要求燃料噴射量）中に占める比率であって、蒸発燃料の燃焼への寄与率をあらわしている。
【００６８】
この後、キャニスタ２５から燃焼室４に至るパージ空気ないしは蒸発燃料の輸送経路（以下、これを蒸発燃料輸送経路という）の輸送遅れ特性（吸入空気量モデル）を設定し（ステイジＳ１１）、続いてステイジ１０で演算されたパージガス比率とステイジＳ１１で設定された吸入空気量モデルとに基づいて正味パージガス比率が演算される（ステイジＳ１２）。この正味パージガス比率は、燃焼室４に流入する蒸発燃料が、必要とされる全燃料（要求燃料噴射量）中に占める比率、すなわち蒸発燃料流入量が要求燃料噴射量中に占める比率である。したがって、燃料噴射弁１５から噴射すべき燃料量は、要求燃料噴射量に（１と正味パージガス比率との差）を乗算したものとなる。
【００６９】
ところで、トラップ量推定値は空燃比のフィードバック補正値に基づくものであるので、フィードバック補正値が例えばリニアＯ２センサへのノイズとか、センサの劣化等の要因で異常な値となった場合には、誤推定が生じてトラップ量推定値が不適正となり、そのため、トラップ量推定値に基づいて演算された蒸発燃料流入量が実際の蒸発燃料流入量からかけはなれたものとなる。そして、要求燃料噴射量から減算する燃料減算値が適正でなくなり、実際より大きすぎたり小さすぎたりして、その結果、空燃比が目標値からずれてしまう。そして、アイドル時等においては、このようなトラップ量の誤推定に伴う空燃比のずれによって燃焼性が悪化し、特に、燃料の過減量によるリーン化が生じて、高地等ではエンストを起こしやすくなる。そこで、トラップ量推定値に基づく蒸発燃料流入量（パージガス比率）になまし処理を施し、特にアイドル時には減量速度を小さくすることによって蒸発燃料流入量が変化する時の燃料減量を制限し、オフアイドル時には大きくして、トラップ量誤推定による影響の大きいアイドル時の空燃比のずれを抑制している。なお、このように燃料減量速度を小さくする領域はアイドル時以外に低負荷域まで広めるようにしてもよい。また、減量を制限する手段としては減量速度を小さくする以外に、燃料減量値の設定そのものを小さくするようなものでも良い。
【００７０】
そして、ステイジＳ１２で演算された正味パージガス比率（蒸発燃料流入量）に相当する燃料噴射弁１５のパルス幅すなわちパージ補正パルス幅が演算され（ステイジ１３）、このパージ補正パルス幅が前記エンジン制御ブロックＳＬに出力される。
【００７１】
以下、図４に示すフローチャートに従って、適宜図２および図３を参照しつつ、コントロールユニットＣＵによるトラップ量の具体的な推定方法（トラップ量推定ルーチン）を説明する。
【００７２】
このトラップ量推定ルーチンは所定の時間周期で実行し、ステップ＃１では初期化を行い、トラップ量推定完了フラグｘｔｒａｐｌｒｎとトラップ量推定可能フラグｘｔｌｅｘとに夫々初期値として０をセットする。ここで、トラップ量推定完了フラグｘｔｒａｐｌｒｎは、トラップ量の推定が完了したときに１を立て、トラップ量の推定の禁止が所定時間以上継続したときに０にリセットするフラグである。トラップ量推定可能フラグｘｔｌｅｘは、トラップ量推定条件が成立したときに１を立て、上記トラップ量推定条件が不成立となったときに０にリセットするフラグである。
【００７３】
次に、ステップ＃２で、所定のトラップ量推定条件が成立しているか否か、すなわち、エンジンＣＥの運転状態がトラップ量を高精度で推定することが可能な状態にあるか否かを判定する。ここでは、次の４つの条件が全て成立しているときにはトラップ量推定条件が成立しているものと判定するようにしている。
（１）キャニスタパージが行われていること
（２）空燃比のフィードバック制御が行われれいること
（３）吸入空気量が所定値未満であること
（４）吸気圧が所定値を越えていること
換言すれば、キャニスタパージが停止されているとき、空燃比のフィードバック制御が停止されているとき、吸入空気量が所定値以上であるとき、又は吸気圧が所定値以下であるときには、トラップ量の推定を禁止するようにしている。このようにする理由は次のとおりである。
【００７４】
すなわち、上述のように、キャニスタパージ（オフアイドル時）又はフィードバック制御が停止されているときは、トラップ量とフィードバック補正値ないしは平均フィードバック補正値との間に相関性が存在せず、したがってトラップ量を推定することができないので、トラップ量の推定を禁止するようにしている。
【００７５】
また、吸入空気量が非常に多いときには、パージ制御弁前後差圧が非常に小さくなるとともに、吸気脈動が激しくなり、フィードバック補正値が変動し、そのためパージ空気量を高精度で演算することができなくなるので、トラップ量の推定を禁止するようにしている。
【００７６】
また、吸気圧が非常に低いときには、パージ制御弁前後差圧が大きくなりすぎ、パージ空気量を高精度で演算することができなくなるので、トラップ量の推定を禁止するようにしている。
【００７７】
かくして、ステップ＃２でトラップ量推定条件が成立している（ＹＥＳ）と判定した場合は、ステップ＃３でトラップ量推定可能フラグｘｔｌｅｘに１を立てるとともに、トラップ量推定禁止カウンタｃｔに初期値ｃｔ０をセットする。ここで、トラップ量推定禁止カウンタｃｔは、トラップ量推定条件が不成立となってトラップ量の推定が禁止されている期間（時間）をカウントするためのカウンタである。
【００７８】
続いて、ステップ＃４で、次の式１により平均フィードバック補正値ｃｆｂａｖｅを演算するとともに、平均フィードバック補正値ｃｆｂａｖｅの演算回数をカウントするための演算回数カウンタＰを１だけインクリメントする（Ｐ＝Ｐ＋１）。
ｃｆｂａｖｅ＝Σ（ｋ＝０→ｎ−１）［ｃｆｂ（ｉ−ｋ）］／ｎ…………式１
ｃｆｂａｖｅ：平均フィードバック補正値
ｃｆｂ（ｉ）：今回のフィードバック補正値
ｃｆｂ（ｉ−ｋ）：ｋ回前のフィードバック補正値
ｎ：平均化処理されるｃｆｂのサンプル数
なお、式１において、Σ（ｋ＝α→β）［ｆ（ｋ）］は、関数ｆ（ｋ）の、Ｋ＝αからｋ＝βまでのシグマ演算（Σ）をあらわすものとする。
【００７９】
次に、ステップ＃５で演算回数カウンタＰが所定の設定値Ｐ０以上であるか否かを判定し、Ｐ＜Ｐ０である（ＮＯ）と判定した場合は、以下の全ステップをスキップし、すなわちトラップ量の推定を行わず、ステップ＃２に復帰する。このトラップ量推定ルーチンでは、演算回数カウンタＰのカウント値が設定値Ｐ０未満の場合は、平均フィードバック補正値ｃｆｂａｖｅがまだ十分には安定していないものと考えられるので（フィードバック補正値ｃｆｂの変動の影響が残っている）、トラップ量の推定を行わないようにしている。
【００８０】
一方、ステップ＃５でＰ≧Ｐ０である（ＹＥＳ）と判定した場合は、ステップ＃６で平均フィードバック補正値ｃｆｂａｖｅの絶対量｜ｃｆｂａｖｅ｜が所定の限界値ε以上であるか否かを判定する。ここでは｜ｃｆｂａｖｅ｜＜εであればトラップ量の推定が完了しているものと判定し、この場合はトラップ量推定値が真のトラップ量とほぼ一致していると考えられるので、この現時点におけるトラップ量推定値ｔｒａｐを変化させずにそのまま保持するようにしている。
【００８１】
例えば、図９に模式的に示すように、真のトラップ量がａ２である場合、トラップ量推定値ｔｒａｐがａ１〜ａ３の範囲内に入ったときにトラップ量の推定が完了しているものと判定することになる。なお、図９においてグラフＧ１は｜ｃｆｂａｖｅ｜をあらわしている。また、ｔｒａｐ＞ａ２の範囲内ではｃｆｂａｖｅ＞０であり、ｔｒａｐ＜ａ２の範囲内ではｃｆｂａｖｅ＜０である。
【００８２】
一方、｜ｃｆｂａｖｅ｜≧εであれば、平均フィードバック補正値ｃｆｂａｖｅが０以下であるか又は０より大きいかに応じてトラップ量推定値ｔｒａｐを補正量σだけ増加又は減少させ、トラップ量推定値ｔｒａｐを真のトラップ量に近付けるようにしている。補正量σの設定方法は前述のとおりである。具体的には、ステップ＃６で｜ｃｆｂａｖｅ｜＜εである（ＮＯ）と判定した場合は、ステップ＃１０でトラップ量推定完了フラグｘｔｒａｐｌｒｎに１を立てた後、ステップ＃２に復帰する。一方、ステップ＃６で｜ｃｆｂａｖｅ｜≧εである（ＹＥＳ）と判定した場合は、ステップ＃７でｃｆｂａｖｅが０以下であるか否かを判定する。そして、ｃｆｂａｖｅ≦０である（ＹＥＳ）と判定した場合はステップ＃８でトラップ量推定値ｔｒａｐを補正量σだけ増やし（ｔｒａｐ＝ｔｒａｐ＋σ）、一方、ｃｆｂａｖｅ＞０である（ＮＯ）と判定した場合は、ステップ＃９でトラップ量推定値ｔｒａｐを補正量σだけ減らす（ｔｒａｐ＝ｔｒａｐ−σ）。
【００８３】
また、ステップ＃２でトラップ量推定条件が成立していない（ＮＯ）と判定した場合は、ステップ＃１１でトラップ量推定禁止カウンタｃｔを１だけデクリメントしてトラップ量の推定が禁止されている期間（時間）のカウント（ｃｔ＝ｃｔ−１）を行うとともに、演算回数カウンタＰを０にリセットする（Ｐ＝０）。
【００８４】
次に、ステップ＃１２でトラップ量推定禁止カウンタｃｔが０以下であるか否か、すなわちトラップ量の推定が禁止された後所定時間ｃｔ０が経過したか否かを判定し、ｃｔ≦０である（ＹＥＳ）と判定した場合は、既に所定時間ｃｔ０が経過しているということで、ステップ＃１３でトラップ量推定完了フラグｘｔｒａｐｌｒｎを０にリセットし、その後ステップ＃２に復帰する。この場合は、前述のとおり、トラップ量推定値ｔｒａｐが真のトラップ量からずれているおそれがあるので、トラップ量推定完了フラグｘｔｒａｐｌｒｎをリセットするようにしている。一方、ステップ＃１４でｃｔ＞０である（ＮＯ）と判定した場合は、まだｃｔ０を経過していないということで、ステップ＃１３をスキップしてステップ＃２に復帰する。
【００８５】
ところで、コントロールユニットＣＵが空燃比の学習機能を備えている場合は、前に説明したとおり空燃比学習が終了した後でトラップ量の推定を行うのが好ましい。なお、空燃比学習が終了した後でトラップ量の推定を行う場合の利点は前述のとおりである。そこで、以下、図５に示すフローチャートに従って、適宜図２および図３を参照しつつ、空燃比の学習機能を備えている場合の好ましいトラップ量の推定方法を説明する。このルーチンでは、基本的にはアイドル時において所定の空燃比学習条件が成立しているときに空燃比学習を行い、一方、該空燃比学習が終了した後の非アイドル時において所定のトラップ量推定条件が成立しているときにトラップ量の推定を行うようにしている。
【００８６】
具体的には、図５に示すようにこのルーチンは所定の時間周期で実行し、まずステップ＃２１で初期化を行い、空燃比学習完了フラグｘｌｒｎｄに初期値０をセットする。この空燃比学習完了フラグｘｌｒｎｄは、空燃比学習が完了したときに１を立てるフラグである。
【００８７】
次に、ステップ＃２２でアイドル判定フラグｘｉｄｌｅが１であるか否かを判定する。アイドル判定フラグｘｉｄｌｅは、エンジンＣＥがアイドル状態にあるときには１を立て、非アイドル状態にあるときには０にリセットするフラグである。そして、ｘｉｄｌｅ＝１である（ＹＥＳ）と判定し場合はステップ＃２３〜ステップ＃２９の空燃比学習を行うためのアイドル時用ルーチンを実行し、ｘｉｄｌｅ≠１（ｘｉｄｌｅ＝０）である（ＮＯ）と判定した場合はステップ＃３０〜ステップ＃３５のトラップ量を推定するための非アイドル時用ルーチンを実行する。
【００８８】
アイドル時用ルーチンを実行する場合は、まずステップ＃２３とステップ＃２４とで、順に、空燃比フィードバック制御実行フラグｘｆｂが１であるか否かと、アイドル継続時間カウンタｔｉｄｌが所定値αを越えているか否かとを判定する。ここで、空燃比フィードバック制御実行フラグｘｆｂは、空燃比のフィードバック制御が行われているときには１が立てられ、フィードバック制御が行われていないとき（オープンループ制御時）には０にリセットされるフラグである。また、アイドル継続時間カウンタｔｉｄｌは、アイドル時におけるアイドル運転開始後の経過時間をカウントするためのカウンタである。このルーチンでは、アイドル時の空燃比のフィードバック制御時において、アイドル運転の継続時間が所定期間α以下の場合は、エンジンＣＥが安定したアイドル状態に達していないものと考えられるので、空燃比学習を行わないようにしている。
【００８９】
かくして、ステップ＃２３でｘｆｂ≠１（ｘｆｂ＝０）である（ＮＯ）と判定し場合、又はステップ＃２４でｔｉｄｌ≦αである（ＮＯ）と判定した場合は、空燃比学習を行わないので、以下のステップ＃２５〜ステップ＃２９をスキップしてスキップ＃２２に復帰する。
【００９０】
一方、ステップ＃２３でｘｆｂ＝１である（ＹＥＳ）と判定し、かつステップ＃２４でｔｉｄｌ＞αである（ＹＥＳ）と判定した場合は、ステップ＃２５で空燃比学習実行カウンタＣｌｒｎが所定値β未満であるか否かを判定する。この空燃比学習実行カウンタＣｌｒｎは、アイドル運転開始後において空燃比学習が実行された回数をカウントするためのカウンタである。ここでは、空燃比学習の実行回数が所定値β以上となったときに空燃比学習が終了しているものと判定するようにしている。
【００９１】
かくして、ステップ＃２５でＣｌｒｎ＜βである（ＹＥＳ）と判定した場合は、まだ空燃比学習が終了していないのでステップ＃２６で空燃比学習を継続し、続いてステップ＃２７で空燃比学習実行カウンタＣｌｒｎを１だけインクリメントし（Ｃｌｒｎ＝Ｃｌｒｎ＋１）、次にステップ＃２８でアイドル継続時間カウンタｔｉｄｌを１だけインクリメントし（ｔｉｄｌ＝ｔｉｄｌ＋１）、その後ステップ＃２２に復帰する。なお、空燃比学習は、空燃比偏差が０のときにはフィードバック補正値ｃｆｂが平均的には中立値０となるように燃料噴射弁１５の噴射特性を変化させるなどといった普通の手法で行われる。
【００９２】
一方、ステップ＃２５でＣｌｒｎ≧βである（ＮＯ）と判定した場合は、空燃比学習が終了しているのでステップ＃２９で空燃比学習完了フラグｘｌｒｎｄに
１を立て、その後ステップ＃２２に復帰する。
【００９３】
また、非アイドル時用ルーチンを実行する場合は、まずステップ＃３０で空燃比学習実行カウンタＣｌｒｎとアイドル継続時間カウンタｔｉｄｌとを夫々０にリセットする。そして、ステップ＃３１〜ステップ＃３４でトラップ推定条件が成立しているか否かを判定する。ここでは、次の４つの条件がすべて成立しているときには、トラップ量推定条件が成立しているものと判定し、これらのうちのいずれか１つでも不成立であればトラップ量推定条件が不成立であると判定するようにしている。
（１）キャニスタパージが行われていること
（２）空燃比のフィードバック制御が行われていること
（３）単位時間当たりの吸入空気量が所定値未満であること
（４）空燃比学習が終了していること
これらの４つの条件のうち（１）〜（３）を設ける理由は、図４のフローチャートを示している前記トラップ量推定ルーチンの場合と同様である。空燃比学習が終了した後でトラップ量の推定を行うようにしているのは、前記したとおり、空燃比学習が終了した後はトラップ量の推定精度が非常に高くなるからである。
【００９４】
具体的には、ステップ＃３１〜ステップ＃３４の四つステップで、順に、パージ実行フラグｘｐｇが１であるか否かすなわちキャニスタパージが行われているか否かを判定し、空燃比フィードバック制御実行フラグｘｆｂが１であるか否かすなわち空燃比のフィードバック制御が行われているか否かを判定し、単位時間当たりの吸入空気量ｑａｖが所定値γ未満であるか否かを判定し、空燃比学習完了フラグｘｌｒｎｄが１であるか否かすなわち空燃比学習が終了しているか否かを判定する。そして、ｘｐｇ＝１であり、ｘｆｂ＝１であり、ｑａｖ＜γであり、かつｘｌｒｎｄ＝１である（ステップ＃３１〜ステップ＃３４がすべてＹＥＳ）と判定した場合は、すなわちトラップ量推定条件が成立しているということで、ステップ＃３５でトラップ量を推定し、その後ステップ＃２２に復帰する。なお、トラップ量の具体的な推定方法は、図４にフローチャートを示すトラップ量推定ルーチンによる。
【００９５】
また、ｘｐｇ＝０であるか、ｘｆｂ＝０であるか、ｑａｖ≧γであるか、又はｘｌｒｎｄ＝０である（ステップ＃３１〜ステップ＃３４のいずれか１つがＮＯ）と判定し場合は、トラップ量推定条件が成立していないということで、ステップ＃３５をスキップしてステップ＃２２に復帰する。
【００９６】
図５にフローチャートを示すこのトラップ量推定手法によれば、このように空燃比学習が終了した後でトラップ量を推定するので、トラップ量の推定精度が大幅に高まる。
【００９７】
以下、図６に示すフローチャートに従って、適宜図２および図３を参照しつつ、コントロールユニットＣＵによるパージガス比率（蒸発燃料放出量）及び正味パージガス比率（蒸発燃料流入量）の演算方法と、空燃比制御（燃料噴射量制御）の制御方法とについて具体的に説明する。
【００９８】
このルーチンは、ステップ＃４１〜ステップ＃５３からなり、ステップ＃４１ではアイドルパージ実行フラグｘｐｇｉｄが立っているか否かを見る。そして、アイドルパージ実行フラグｘｐｇｉｄが立っていればステップ＃４２でアイドルの基本パージ量ｔｐｒｇａを一定値ＫＰＬＤＬに設定し、アイドルパージ実行フラグｘｐｇｉｄが立っていなければ、ステップ＃４３でオフアイドルのｔｐｒｇａを吸気充填効率ｃｅとエンジン回転数ｎｅのマップで設定する。
【００９９】
そして、ステップ＃４４で、パージ制御弁前後差圧テーブルｔａｂｌｅ１を検索することにより、吸気充填効率ｃｅに基づいてパージ制御弁前後差圧ｄｐを演算する。ここでｓｉｐｏｌ（ｔａｂｌｅ１，ｃｅ）は、ｃｅを独立変数としｄｐを従属変数とする所定の関数関係をあらわすｔａｂｌｅ１において、あるｃｅに対応するｄｐを意味する。パージ制御弁前後差圧テーブルｔａｂｌｅ１は、吸気充填効率ｃｅとパージ制御弁前後差圧ｄｐとの間の関数関係をあらわすテーブルである。吸気充填効率ｃｅに基づいてパージ制御弁前後差圧ｄｐを演算することができる所以は前に説明したとおりである。なお、パージ制御弁前後差圧ｄｐを、このようなテーブル検索によるのではなく、ｃｅとｄｐの関係をあらわす関数ｆ１（ｃｅ）を用いて直接的に演算するようにしてもよい（ｄｐ＝ｆ１（ｃｅ））。
【０１００】
次にステップ＃４５では、パージ空気量マップｍａｐ１を検索することにより、パージ制御弁前後差圧ｄｐとパージ制御弁２９に印加される駆動デューティ比ｄｐｇとに基づいてパージ空気量ｑｐｇを演算する。ここでｓｍａｐ（ｍａｐ１，ｄｐｇ，ｄｐ）は、ｄｐｇ及びｄｐを独立変数としｑｐｇを従属変数とする所定の関数関係をあらわすｍａｐ１において、あるｄｐｇ及びｄｐに対応するｑｐｇを意味する。パージ空気量ｍａｐ１は、駆動デューティ比ｄｐｇ、パージ制御弁前後差圧ｄｐ及びパージ空気量ｑｐｇの相互間の関数関係をあらわすマップである。駆動デューティ比ｄｐｇとパージ制御弁前後差圧ｄｐとに基づいてパージ空気量ｑｐｇを演算することができる所以は前に説明したとおりである。なお、パージ空気量ｑｐｇを、このようなマップ検索によるのではなく、ｄｐｇ、ｄｐ及びｑｐｇの相互関係をあらわす関数ｆ２（ｄｐｇ，ｄｐ）を用いて直接的に演算するようにしてもよい（ｑｐｇ＝ｆ２（ｄｐｇ，ｄｐ））。
【０１０１】
次にステップ＃４６では、蒸発燃料放出量マップｍａｐ２を検索することにより、パージ空気量ｑｐｇとトラップ量ｔｒａｐとに基づいて蒸発燃料放出量ｇｐｇを演算する。ここでｓｍａｐ（ｍａｐ２，ｑｐｇ，ｔｒａｐ）は、ｑｐｇ及びｔｒａｐを独立変数としｇｐｇを従属変数とする所定の関数関係をあらわすｍａｐ２において、あるｑｐｇ及びｔｒａｐに対応するｇｐｇを意味する。パージ空気量ｍａｐ２は、パージ空気量ｑｐｇ、トラップ量ｔｒａｐ及び蒸発燃料放出量ｇｐｇの相互間の関数関係をあらわすマップである。
【０１０２】
次にステップ＃４７で、次の式２によりパージガス比率ｃｐｇｏを演算する。
ｃｐｇｏ＝Ｙｓ・｛１２０／（γ０・Ｖｃ）｝・（ｇｐｇ／ｎｅ）……式２
ｃｐｇｏ：パージガス比率
Ｙｓ：吸入空気量を燃料噴射量に換算するための換算係数
γ０：密度
Ｖｃ：シリンダ有効容積
ｇｐｇ：蒸発燃料放出量
ｎｅ：エンジン回転数［ｒ．ｐ．ｍ．］
式２において、１２０／（γ０・Ｖｃ・ｎｅ）は、単位時間（秒）あたりの燃焼室４への吸入空気量（質量流量）の逆数であり、したがってこれに換算係数Ｙｓを乗算したＹｓ・１２０／（γ０・Ｖｃ・ｎｅ）は単位時間あたりの要求燃料噴射量の逆数である。したがって、パージガス比率ｃｐｇｏは、蒸発燃料放出量を要求燃料噴射量で除算した値、すなわち蒸発燃料放出量の全燃料流量に対する比率である。
【０１０３】
次に、ステップ＃４８〜ステップ＃５０でなまし処理を行う。すなわち、ステップ＃４８では、アイドルパージ実行フラグｘｐｇｉｄが立ち、かつアイドルパージ導入時判定フラグ（アイドルパージ導入開始に一定時間だけ立つフラグ）ｘｃｐｇｆｓが立っているかどうかを判定する。そして、アイドルパージ導入時という時は、ステップ＃４８で次の式３によってアイドルパージ導入時のなまし処理をする。
ｃｐｒｇ＝ＫＧＡＬＰＲＧＳ×ｃｐｒｇ（ｉ−１）
＋（１−ＫＧＡＬＰＲＧＳ）×ｃｐｒｇｏ……式３
ｃｐｒｇ：なまし処理後の正味パージガス比率
ＫＧＡＬＰＲＧＳ：アイドルパージ導入時なまし係数
ｃｐｒｇ（ｉ−１）：前回のなまし処理後の正味パージガス比率
ｃｐｒｇｏ：パージガス比率
また、いずれかのフラグが立っていないくアイドルパージ導入時でないという場合は、ステップ＃５０で次の式４によってオフアイドル時のなまし処理をする。
ｃｐｒｇ＝ＫＧＡＬＰＲＧ×ｃｐｒｇ（ｉ−１）
＋（１−ＫＧＡＬＰＲＧ）×ｃｐｒｇｏ……式４
ｃｐｒｇ：なまし処理後の正味パージガス比率
ＫＧＡＬＰＲＧ：通常パージなまし係数
ｃｐｒｇ（ｉ−１）：前回のなまし処理後の正味パージガス比率
ｃｐｒｇｏ：パージガス比率
ここで、ＫＧＡＬＰＲＧＳ＞ＫＧＡＬＰＲＧであり、これによって、アイドル時には前回の値を引きずる度合が大きくてｃｐｒｇの立ち上がりがゆっくりとしたものとなり、オフアイドル時にはなまし度合が小さくて速い立ち上がりとなる。
【０１０４】
次にステップ＃５１では、次の式５により正味パージガス比率ｃｐｇを演算する。
ｃｐｇ＝λ・ｃｐｇ＋（１−λ）・ｃｐｇｏ…………………………式５
ｃｐｇ：正味パージガス比率
λ：一次フィルタ係数（０＜λ＜１）
ｃｐｇｏ：パージガス比率
式５は蒸発燃料輸送経路の輸送遅れ特性をあらわすモデル式である。エンジンＣＥの吸気系１０、ＡＭＩ１６及びパージ通路２８の形状に応じて好ましく一次フィルタ係数λを設定することにより、式５を用いて正味パージガス比率ｃｐｇ（蒸発燃料流入量）を正確に演算することができる。
【０１０５】
次にステップ＃５２では、次の式６により実パルス幅ｔａ（実燃料噴射量）すはわち燃料噴射弁１５から実際に噴射すべき燃料噴射量を演する。
ｔａ＝Ｋ・（ｃｅ・ｃｔｏｔａｌ−ｃｐｇ）………………………式６
ｔａ：実パルス幅
Ｋ：換算係数
ｃｅ：吸気充填効率
ｃｔｏｔａｌ：補正係数
式６において、Ｋ・ｃｅ・ｃｔｏｔａｌは要求パルス幅（要求燃料噴射量）すなわち燃焼室４で実際に必要とされる燃料量に相当する。また、Ｋ・ｃｐｇはパージによる供給燃料量を噴射パルス幅相当に換算したものである。したがって、式４では燃料噴射弁１５から実際に噴射すべき燃料量（実燃料噴射量）に対応する噴射パルス幅すなわち実パルス幅ｔａが演算されることになる。
【０１０６】
そして、ステップ＃５３では、ステップ＃５２で演算した実パルス幅ｔａにて燃料噴射弁１５から燃料を噴射し、その後ステップ＃４１に復帰する。
【０１０７】
図１０は、かかる図６のルーチンが実行された場合のタイムチャートであって、リニアＯ２センサ出力（ａ）、フィードバック補正値ｃｆｂ（ｂ）、平均フィードバック補正値ｃｆｂａｖｅ（ｃ）、トラップ量ｔｒａｐ（ｄ）、蒸発燃料放出量（ｌ／ｓ）ｐｒｇ（ｅ）、蒸発燃料放出量（ｇ／ｓ）ｐｒｇ（ｆ）、正味パージガス比率ｃｐｇ（ｇ）及び実パルス幅ｔａ（ｈ）の経時変化の一例を（１）に示し、その正味パージガス比率ｃｐｇの経時変化の要部をアイドルパージ実行フラグｘｐｇｉｄ及びアイドルパージ導入判定フラグｘｃｐｇｆｓと共に（２）に示す。
【０１０８】
図１０から明らかなように、正味パージガス比率ｃｐｇはアイドルパージ導入時に実線のようにゆっくりした立ち上がりとなり、オフアイドル時には破線のように速い立ち上がりとなる。そして、また、実パルス幅ｔａ（噴射量）はアイドル時には図に実線で示すようにゆっくりと減少し、オフアイドル時には破線のように速い減量となる。なお、アイドル時のｃｐｇの立ち上がりは図１０の（２）に示すように最初はゆっくりで、一定時間後に速くなる。
【０１０９】
図１１は、蒸発燃料放出量ｇｐｇ、パージ空気量ｑｐｇ及びトラップ量ｔｒａｐに対する依存特性の一例を示す。蒸発燃料放出量マップｍａｐ３は、例えば、図１１に示すような関数関係をマップ化したものである。なお、蒸発燃料放出量ｇｐｇを、このようなマップ検索によるのではなく、ｑｐｇ、ｔｒａｐ及びｇｐｇの相互関係をあらわす関数ｆ３（ｇｐｇ，ｔｒａｐ）を用いて直接的に演算するようにしてもよい（ｇｐｇ＝ｆ３（ｇｐｇ，ｔｒａｐ））。
【０１１０】
図１２には、かかる制御が行われた場合において時刻ｔ２でキャニスタパージが開始されたときの、駆動デューティ比ｄｐｇ（グラフＨ１）、パージガス比率ｃｐｇｏ（グラフＨ２）、正味パージガス比率ｃｐｇ（グラフＨ３）及び実パルス幅ｔａ（グラフＨ４）の時間に対する変化特性の一例を示す。
【０１１１】
この実施例のエンジンＣＥにおいては、このように、トラップ量を推定し、該トラップ量に基づいて蒸発燃料流入量（正味パージガス比率）を正確に演算し、要求燃料噴射量から蒸発燃料流入量を差し引いて実燃料噴射量を設定するようにしているので、キャニスタパージによって吸気系１０ないしは燃焼室４に流入する蒸発燃料が空燃比のフィードバック制御の外乱とはならない。このため、トラップ量の推定が完了しているときにはキャニスタパージによっては空燃比の目標値に対するずれは生じない。しかしながら、トラップ量の推定が完了していないときすなわちトラップ量推定完了フラグｘｔｒａｐｌｒｎが０であるときには、正味パージガス比率ないしは蒸発燃料流入量が正確には把握されない。したがって、トラップ量の推定が完了していないときには、キャニスタパージを規制するのが好ましい。
【０１１２】
かかるキャニスタパージの具体的な規制方法としては、例えば次のようなものが考えられる。
【０１１３】
すなわち、トラップ量の推定が完了するまでは、キャニスタパージを禁止し、あるいはパージ速度（パージ空気量）を小さくするようにしてもよい。なお、キャニスタパージを禁止する場合は、該禁止をアイドル時のみとしてもよい。
【０１１４】
また、パージ制御弁２９が閉状態から開状態に変化してキャニスタパージが開始される際には、燃焼室４への燃料供給特性の急変を防止するために、パージ制御弁２９の駆動デューティ比（パージ空気量）を、運転状態に応じて設定される目標駆動デューティ比まで一挙に増加させるのではなく、徐々に増加させるのが好ましい。そして、このように駆動デューティ比を目標駆動デューティ比に達するまで徐々に増加させるようにした場合において、トラップ量の推定が完了していないときには、キャニスタパージ開始時における駆動デューティ比の増加速度を小さくするのが好ましい。つまり、トラップ量の推定が完了しているときには駆動デューティ比の増加速度を大きくし、トラップ量の推定が完了していないときには駆動デューティ比の増加速度を小さくする。
【０１１５】
以下、図７に示すフローチャートに従って、適宜図２および図３を参照しつつ、キャニスタパージ開始時に駆動デューティ比を徐々に増加させるようにした場合における駆動デューティ比の増加速度の制御方法を説明する。
【０１１６】
この制御ルーチンでは、まずステップ＃５１でキャニスタパージ実行中であるか否かを判定し、キャニスタパージ実行中（ＮＯ）でなければ、ステップ＃５２でパージ補正値ｃｍｏｄを０とし、その後ステップ＃５１に復帰する。パージ補正値ｃｍｏｄは、キャニスタパージが開始される際に、エンジンＣＥの運転状態に応じて設定された目標駆動デューティ比を補正するための０以上１以下の補正値であって、目標駆動デューティ比とパージ補正値ｃｍｏｄの積がパージ制御弁２９に実際に印加される駆動デューティ比ｄｐｇとなる。このパージ補正値ｃｍｏｄは、キャニスタパージ開始前は０とし、キャニスタパージ開始後は増分ＳＰで徐々に増やし、パージ空気量を徐々に増やす。そして、パージ補正値ｃｍｏｄが１に達した後は、１に保持する。なお、パージ補正値ｃｍｏｄが０である場合は目標駆動デューティ比の値にかかわらずキャニスタパージが停止され、パージ補正値ｃｍｏｄが１である場合は目標駆動デューティ比がそのままパージ制御弁２９に印加されることになる。
【０１１７】
一方、ステップ＃５１でキャニスタパージ実行中である（ＹＥＳ）と判定した場合は、ステップ＃５３でパージ補正値ｃｍｏｄが１であるか否かを判定する。そして、ｃｍｏｄ≠１（すなわち、ｃｍｏｄ＜１）である（ＮＯ）と判定した場合は、キャニスタパージ開始後においてパージ補正値ｃｍｏｄを徐々に増加させるべき状態にあるということで、ステップ＃５４〜ステップ＃５７で、トラップ量の推定が完了しているか否かを考慮して、パージ補正値ｃｍｏｄを徐々に増やす。
【０１１８】
具体的には、ステップ＃５４で、トラップ量推定完了フラグｘｔｒａｐｌｒｎが１であるか否か、すなわちトラップ量の推定が完了しているか否かを判定する。そして、ｘｔｒａｐｌｒｎ＝１である（ＹＥＳ）と判定した場合は、ステップ＃５５で増分ＳＰを比較的大きい値ＫＭ１とし、その後ステップ＃５７へ進む。この場合は、トラップ量の推定が完了しているので、正味パージガス比率ないしは蒸発燃料流入量を正確に演算することができる。したがって、フィードフォワード制御でキャニスタパージの影響を確実に補償することができる。すなわち、ある程度急激にキャニスタパージを開始しても、その影響は十分に補償され、空燃比制御に乱れを生じさせない。そこで、増分ＳＰを大きくして、すなわちパージ補正値ｃｍｏｄの増加速度を大きくして、早期に目標駆動デューティ比でキャニスタパージを行うようにしている。この場合、実際にパージ制御弁２９に印加される駆動デューティ比ｄｐｇの時間に対する変化特性は、例えば図１３中のグラフＬ１のようになる。なお、図１３中において、グラフＬ１，Ｌ２が時間軸を平行になっている部分は、目標駆動デューティ比をあらわしている。
【０１１９】
また、ステップ＃５４でｘｔｒａｐｌｒｎ≠１（ｘｔｒａｐｌｒｎ＝０）である（ＮＯ）と判定した場合は、ステップ＃５６で増分ＳＰを比較的小さい値ＫＭ２（ＫＭ２＜ＫＭ１）とし、その後ステップ＃５７に進む。この場合は、トラップ量の推定がまだ完了していないので、正味パージガス比率ないしは蒸発燃料流入量を正確に演算することができない。したがって、フィードフォワード機能が十分にははたらかないので、急激にキャニスタパージを開始すると、その影響が十分に補償されず、空燃比制御に乱れを生じる。そこで、増分ＳＰを小さくして、すなわちパージ補正値ｃｍｏｄの増加速度を小さくするようにしている。この場合、実際にパージ制御弁２９に印加される駆動デューティ比ｄｐｇの時間に対する変化特性は、例えば図１３中のグラフＬ２のようになる。
【０１２０】
ステップ＃５７では、前回のパージ補正値ｃｍｏｄにＳＰを加算して今回のパージ補正値ｃｍｏｄを演算する。なお、加算の結果今回のパージ補正値ｃｍｏｄが１を越える場合には、１に止どめる。ここで、ａｄｄｃｌｉｐ（ｃｍｏｄ，ＳＰ，１）は、ｃｍｏｄにＳＰを加算するが上限値を１とするといった演算処理をあらわしている。このようにして、パージ補正値ｃｍｏｄが徐々に増やされる。
【０１２１】
次に、ステップ＃５８で、次の式５によりパージ制御弁２９に実際に印加すべき駆動デューティ比ｄｐｇを演算し、その後ステップ＃５１に復帰する。
ｄｐｇ＝ｃｍｏｄ・ｓｍａｐ（ｍａｐ３，ｎｅ，ｃｅ）……………式７
ｄｐｇ：駆動デューティ比
ｃｍｏｄ：パージ補正値
ｓｍａｐ（ｍａｐ３，ｎｅ，ｃｅ）：目標駆動デューティ比
ｎｅ：エンジン回転数
ｃｅ：吸気充填効率
式５において、ｓｍａｐ（ｍａｐ３，ｎｅ，ｃｅ）は、ｎｅ及びｃｅを独立変数としｄｐｇを従属変数とする所定の関数関係をあらわすデューティ比ｍａｐ３において、あるｎｅ及びｃｅに対応するｄｐｇを意味する。デューティ比ｍａｐ３は、エンジン回転数ｎｅ、吸気充填効率ｃｅ及び駆動デューティ比ｄｐｇの相互間の関数関係をあらわすマップである。
【０１２２】
このようにして、キャニスタパージが開始される際には、駆動デューティ比ｄｐｇすはわちパージ空気量が徐々に増やされる。
【０１２３】
また、前記のステップ＃５３でｃｍｏｄ＝１である（ＹＥＳ）と判定した場合は、キャニスタパージ開始後ｃｍｏｄが既に１に達しているということで、ステップ＃５４〜ステップ＃５７をスキップして、ステップ＃５８でパージ補正値ｃｍｏｄを１として駆動デューティ比ｄｐｇを演算する。そしてステップ＃５１に復帰する。
【０１２４】
以下、図８に示すフローチャートに従って、適宜図２および図３を参照しつつ、アイドル時におけるキャニスタパージの制御方法を説明する。
【０１２５】
この制御ルーチンでは、まずステップ＃６１でアイドル時であるか否かを判定し、アイドル時でなければ（ＮＯ）、以下のステップを実行する必要がないので、このステップ＃６１を繰り返し実行する。
【０１２６】
一方、ステップ＃６１でアイドル時であると判定し場合は（ＹＥＳ）、ステップ＃６２〜ステップ＃６４でアイドル時におけるキャニスタパージ条件が成立しているか否かを判定する。ここでは、通常時のキャニスタパージ条件が成立しており、空燃比学習が完了しており、かつトラップ量の推定が完了しているときにはキャニスタパージを実行し、これ以外の場合はキャニスタパージを禁止するようにしている。
【０１２７】
具体的には、ステップ＃６２〜ステップ＃６４で順に、通常時におけるキャニスタパージ条件が成立しているか否かと、空燃比学習が完了しているか否かと、トラップ量推定完了フラグｘｔｒａｐｌｒｎが１であるか否かとを判定し、これらがすべてＹＥＳであればステップ＃６５でキャニスタパージ（アイドルパージ）を実行する。他方、ステップ＃６２〜ステップ＃６４のいずれかがＮＯであれば、ステップ＃６６でキャニスタパージ（アイドルパージ）を禁止する。
【０１２８】
【発明の効果】
請求項１の発明によれば、パージ実行時に蒸発燃料捕集量の誤検出による影響が大きい低負荷領域で過減量になってエンストが発生するのを防止することができ、また、トラップ量の推定が正常である場合の空燃比のずれを抑制しパージ領域を拡大することができる。
【０１２９】
また、請求項２の発明によれば、エンジンの負荷が小さいときは大きいときに対して前記燃料減量速度を低下させる方式で減量補正を制限することにより上記効果を得ることができる。
【０１３０】
また、請求項３の発明によれば、アイドル時に燃料減量速度が小さくすることにより、アイドルパージ時の燃料過減量を防止し、また、トラップ量の推定が正常である場合の空燃比のずれを最小限に抑制することができる。
【０１３１】
また、請求項４の発明によれば、アイドル時のパージ開始時にのみ燃料減量速度を小さくすることにより、トラップ量の推定が正常である場合の本来の減量補正への影響を一層小さくできる。
【０１３２】
また、請求項５の発明によれば、エンジンの負荷が小さいときは大きいときに対して設定減量値自体を小さくする方式で燃料減量補正の制限を行うことにより上記効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の全体構成図。
【図２】本発明の一実施例に係る蒸発燃料処理装置を備えたエンジンのシステム図。
【図３】本発明の一実施例におけるコントロールユニットの構成を機能化して示したブロック図。
【図４】本発明の一実施例におけるトラップ量の推定方法を示すフローチャート。
【図５】本発明の一実施例における、空燃比学習を行う場合のトラップ量の推定方法を示すフローチャート。
【図６】本発明の一実施例における蒸発燃料流入量の演算方法、及び実燃料噴射量の設定方法（空燃比制御）を示すフローチャート。
【図７】本発明の一実施例におけるキャニスタパージ開始時におけるパージ速度の設定方法を示すフローチャート。
【図８】本発明の一実施例におけるアイドル時のキャニスタパージの実行方法を示すフローチャート。
【図９】本発明の一実施例に係る平均フィードバック補正値とトラップ量の関係を示す図。
【図１０】本発明の一実施例に係る経時変化の一例を示す図。
【図１１】本発明の一実施例に係る蒸発燃料放出量のパージ空気量及びトラップ量に対する依存特性を示す図。
【図１２】本発明の一実施例に係る駆動デューティ比、パージガス比率、正味パージガス比率及び実パルス幅の経時変化の一例を示す図。
【図１３】本発明に一実施例に係る、キャニスタパージ開始時における駆動デューティ比の経時変化の一例を示す図。
【符号の説明】
ＣＥ：エンジン
ＣＵ：コントロールユニット
４：燃焼室
９：リニアＯ２センサ
１０：吸気系
１５：燃料噴射弁
２５：キャニスタ
２９：パージ制御弁
【図１】
0003552299.tif 000003
【図２】
0003552299.tif 000004
【図３】
0003552299.tif 000005
【図４】
0003552299.tif 000006
【図５】
0003552299.tif 000007
【図６】
0003552299.tif 000008
【図７】
0003552299.tif 000009
【図８】
0003552299.tif 000010
【図９】
0003552299.tif 000011
【図１０】
0003552299.tif 000012
【図１１】
0003552299.tif 000013
【図１２】
0003552299.tif 000014
【図１３】
0003552299.tif 000015