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