以下では図面等を参照して本発明を実施するための最良の形態についてさらに詳しく説明する。図1は、本発明による蒸発燃料処理装置を備えるエンジンの全体構成図である。
エンジン30の吸気通路31には、吸気絞り弁33の下流に気筒別の燃料噴射弁34が設けられる。また排気通路35には三元触媒(図示しない)が設けられる。三元触媒は排気中の空燃比が理論空燃比を中心とする狭い範囲にあるときに最大の転化効率を発揮して、排気中の窒素酸化物NOxを還元するとともに、炭化水素HC及び一酸化炭素COを酸化する。
そこでコントローラ100は、エアフローメータ32からの吸入空気流量の信号、クランク角センサ37からの信号、水温センサ38からのエンジン冷却水温の信号等を入力し、これらの信号に基づいて基本空燃比(理論空燃比)の混合気が得られる基本噴射パルス幅Tpを算出する。そしてコントローラ100は、酸素センサ(O2センサ)36の出力信号に基づいて空燃比フィードバック補正係数αを演算し、この空燃比フィードバック補正係数α(空燃比フィードバック補正量)で基本噴射パルス幅Tp(エンジンへの供給燃料量の基本値)を補正して燃料噴射パルス幅Tiを求め、燃料噴射弁34を開弁制御する。このようにすることで、排気中の空燃比が理論空燃比と一致し、三元触媒は最大の転化効率を発揮できる。
蒸発燃料処理装置1は、キャニスタ10と、バイパスバルブ11と、バキュームカットバルブ12と、ドレンカットバルブ13と、パージバルブ14とを備え、それらのバルブがコントローラ100によって開閉制御され、エンジン30の燃料タンク20で発生した蒸発燃料を処理する。
キャニスタ10は、配管21を介して燃料タンク20に連通し、配管22を介してエンジン30のスロットルバルブ33よりも下流の吸気通路31に連通する。キャニスタ10は、内部に燃料吸着剤(活性炭)10aを有する。キャニスタ10は大気解放口10bを備える。この大気解放口10bは、ドレンカットバルブ13によって開閉される。
バイパスバルブ11及びバキュームカットバルブ12は、配管21に並列に設けられる。バキュームカットバルブ12は、燃料タンク20の内圧が大気圧よりも低くなると開弁する。
パージバルブ14は、配管22に設けられる。パージバルブ14は、キャニスタ10の燃料吸着剤(活性炭)10aに吸着されている燃料を脱離させるときに開弁する。配管22には、配管内の圧力を測定する圧力センサ23が設けられる。
燃料タンク20で発生した蒸発燃料は、配管21を介してキャニスタ10に導かれ、燃料成分だけがキャニスタ10の活性炭10aに吸着され、残りの空気は大気解放口10bから外部に放出される。
この活性炭10aに吸着された燃料を処理するときは、パージバルブ14を開弁し、スロットルバルブ33の下流に発達した吸入負圧によって大気解放口10bからキャニスタ10に新気を導入する。これによって活性炭10aに吸着されていた燃料が脱離して、新気とともに配管22を介してエンジン30の吸気通路31に吸入される(以下、この処理を「パージ処理」という)。
コントローラ100は、パージ処理中、エンジン燃焼安定性や、排気エミッションを悪化させない範囲で可能な限り高い目標パージ率(吸入空気流量に対するパージ流量の比率)を設定し、その目標パージ率を実現するようにパージバルブ14を駆動する。
さらに、パージ処理を行っているときは、パージガス中の燃料及び空気がエンジンに供給されることになるので、そのパージ率及びパージ濃度に応じて燃料噴射量を補正し、エンジン30の空燃比変動を抑える。
このため、コントローラ100は、後述するキャニスタモデルを用いてキャニスタ10からの脱離燃料量Dgを推定し、脱離燃料量Dg、目標パージ率、吸入空気質量に基づいてパージ分補正係数FHOSを演算し、このパージ分補正係数FHOSで基本噴射パルス幅Tpを補正する。このようにすることで、パージによる排気空燃比への影響はパージ分補正係数FHOSが補償することになり、空燃比フィードバック補正係数αはパージがないのと同じ動きをする。したがって空燃比フィードバック補正係数αはパージによる外乱に対する影響を考慮しないでよい。
ここで目標パージ率の設定方法について説明する。図2は、目標パージ率設定ルーチンの内容を説明するフローチャートである。
ステップS11においてコントローラ100は、今回のパージ制御が初回の制御であるか否かを判定する。すなわちキャニスタ10の吸着状態に基づいて目標パージ率を設定するには目標パージ率の前回値が必要である。ところが初回制御のときには前回値がないのでそのときにはキャニスタ10の吸着状態に基づかないで目標パージ率を設定しなければならない。そこで今回制御が初回制御であるか否かを判定する。初回制御であるときはステップS12へ処理を移行し、初回制御でなければステップS13へ処理を移行する。
ステップS12においてコントローラ100は、キャニスタ10の吸着状態に基づかない目標パージ率を設定する。具体的な設定方法は後述する。
ステップS13においてコントローラ100は、キャニスタ10の吸着状態に基づく目標パージ率を設定する。具体的な設定方法は後述する。
図3は、キャニスタの吸着状態に基づかない目標パージ率設定ルーチンの内容を説明するフローチャートである。
ステップS121においてコントローラ100は、積算パージ流量(パージを開始してからの総パージ流量)を算出する。この積算パージ流量は、パージ開始時点では初期値としてゼロが与えられており、パージ開始後は前回算出された目標パージ率と吸入空気流量とからパージ流量を求めて、積算パージ流量を更新する。
ステップS122においてコントローラ100は、積算パージ流量がパージ配管容積(キャニスタ10からパージバルブ14までの配管の容積)よりも大きいか否かを判定する。積算パージ流量がパージ配管容積よりも大きければステップS124へ処理を移行し、そうでなければステップS123へ処理を移行する。
ステップS123においてコントローラ100は、目標パージ率をして初期パージ率(1%以下の小さな値)を設定する。なおこのように小さな値に設定するのは以下の理由による。すなわち、積算パージ流量がパージ配管容積に達していないときにパージを開始すると、エンジンへはパージ配管中に存在する低濃度のパージガスが供給される。このような場合にもステップS124以降に示すように目標パージ率を設定しては、低濃度パージガスによる空燃比変動が小さいことから、大量パージが可能であると判断されて大きなパージ率が設定されるおそれがある。しかし、このようにして大きなパージ率を設定しては、大量の脱離燃料が突然供給されることになるので、エンジン10の燃焼安定性等を悪化させてしまう。そこで積算パージ流量がパージ配管容積に達していないときは目標パージ率をして初期パージ率(1%以下の小さな値)を設定するのである。
ステップS124においてコントローラ100は、目標空燃比フィードバック偏差と実空燃比フィードバック偏差との差(以下「空燃比フィードバック偏差の差」という)を演算する。なお目標空燃比フィードバック偏差とは、空燃比フィードバック補正係数の目標値tαの空燃比フィードバック補正係数の基準値(100%)に対する偏差(=|tα-100|%)をいう。また実空燃比フィードバック偏差とは、実際の空燃比フィードバック補正係数αの空燃比フィードバック補正係数の基準値(100%)に対する偏差(=|α-100|%)をいう。例えば、パージによる空燃比変動を空燃比フィードバック制御で十分吸収できる範囲内で大量のパージ流量を確保することを目的として空燃比フィードバック補正係数の目標値tαを80%に設定する場合には、目標空燃比フィードバック偏差は20%に設定される。
ステップS125においてコントローラ100は、あらかじめROMに格納された図4に示す特性のテーブルを検索して空燃比フィードバック偏差の差に応じたパージ率変化量を求める。パージ率変化量の絶対値は、空燃比フィードバック偏差の差の絶対値が大きくなるほど大きくなって目標値への収束性を高める。ただし空燃比フィードバック偏差の差の絶対値が同じであっても正負によって、パージ率変化量の絶対値は異なる。パージ率変化量の絶対値は、負値のほうが正値よりも大きい。このような特性とするのは、空燃比フィードバック偏差の差が負側にずれている場合は空燃比フィードバック補正係数αが目標とする80%よりも小さな値になっており、逆の正側にずれている場合と比べてパージ以外の外乱によってエンジン安定性、エミッションの悪化を招きやすく、不利な状態あるからである。つまり、パージ変化量を空燃比フィードバック偏差の差の正負に応じて特性を変えるのは、エンジンの燃焼安定性を図り、エミッションの悪化を防止するために、制御点を速やかに安全側に復帰させるためである。
ステップS126においてコントローラ100は、目標パージ率の前回値にステップS125で演算したパージ率変化量を加算することで、目標パージ率の今回値を算出する。
この処理によれば、キャニスタ10の吸着状態によらず、最適なパージ率を設定することができ、また、想定以上の濃度のパージが供給された場合でも、それによる空燃比変動を受けて目標パージ率が適宜変更され、常に最適なパージ率を設定することができる。
図5は、キャニスタの吸着状態に基づく目標パージ率設定ルーチンの内容を説明するフローチャートである。
ステップS131においてコントローラ100は、パージ変化量制限値を設定する。具体的な設定方法は後述する。
ステップS132においてコントローラ100は、最大パージ率を設定する。具体的な設定方法は後述する。
ステップS133においてコントローラ100は、目標パージ率の前回値が最大パージ率と一致するか否かを判定する。一致すればステップS134に処理を移行し、そうでなければステップS135へ処理を移行する。
ステップS134においてコントローラ100は、目標パージ率の前回値をそのまま目標パージ率として設定する。
ステップS135においてコントローラ100は、目標パージ率の前回値が最大パージ率を下回るか否かを判定する。下回るときにはステップS136へ処理を移行し、そうでなければステップS137へ処理を移行する。
ステップS136においてコントローラ100は、目標パージ率の前回値にパージ率変化量制限値を加算して目標パージ率を設定する。
ステップS137においてコントローラ100は、目標パージ率の前回値からパージ率変化量制限値を減算して目標パージ率を設定する。
図6は、パージ変化量制限値設定ルーチンの内容を説明するフローチャートである。
ステップS1311においてコントローラ100は、キャニスタモデルで演算した脱離量及びパージ流量に基づいて、パージガスの空燃比(パージ空燃比)を算出する。なお、パージ空燃比を、HCセンサを使用して検出してもよいが、演算によって算出すれば安価かつ正確に求めることができる。
ステップS1312においてコントローラ100は、運転状態、例えばエンジン回転速度、エンジン負荷、吸入空気流量などのパラメータに基づいて、パージ空燃比の誤差を推定する。具体的には、例えば図7(A)に示す特性のテーブルを参照して求める。図7(A)によれば、吸入空気流量が小さくなるほど、またパージ率が小さくなるほど、パージ空燃比誤差は大きくなる。また図7(B)に示す特性のテーブルを参照して求めてもよい。図7(B)によれば、パージ空燃比が薄くなるほど、パージ空燃比誤差は大きくなる。
ステップS1313においてコントローラ100は、パージ空燃比誤差に基づいて、ステップS1311で求めたパージ空燃比を補正する。
ステップS1314においてコントローラ100は、補正後のパージ空燃比に基づいてパージ率変化量制限値を計算する。パージ率変化量制限値とは、パージ率を変化させたときに生ずるエンジン10の空燃比変化を、エミッションを悪化させることなく空燃比フィードバック制御によって吸収可能な空燃比変動幅に収めるための制限値である。
図8は、最大パージ率設定ルーチンの内容を説明するフローチャートである。
ステップS1321においてコントローラ100は、パージバルブ14のサイズに基づいてパージ率上限値PVMXを設定する。このパージ率上限値PVMXとは、パージバルブ14を最大開度としたときのパージ率である。パージバルブ14を最大開度としたときのパージ率よりも大きな目標パージ率を設定してしまっては、パージ率を目標パージ率に一致させることができない。そのため、FHOSの演算誤差が大きくなり、空燃比変動が大きくなって、エミッション悪化等が生じる。パージバルブのサイズが大きいほどパージガスの流量も大きくなる。そこでパージバルブのサイズが大きいほどパージ率上限値PVMXを大きく設定する。
ステップS1322においてコントローラ100は、燃料噴射弁15の性能に応じて決まる燃料最小噴射パルス幅、目標パージ率の前回値、パージ分補正係数との関係から燃料噴射弁15の性能に基づくパージ率上限値TIMNMXを設定する。パージ率が大きくなるとパージによってエンジン10に供給される燃料量が増加するので、燃料噴射弁15の燃料噴射量を、その増加量だけ減らす必要があるが、燃料噴射弁15の噴射精度を確保するには、ある程度以上の燃料噴射量が必要である。そこで燃料噴射弁15の噴射精度を確保するために、パージ率に上限値TIMNMXを設定する。
ステップS1323においてコントローラ100は、現在の運転領域から想定しうるすべての運転領域を想定し、その中での最小パージ率を予測し、この最小パージ率とパージ率変化量制限値とからパージ率上限値PRMNMXを設定する。例えば、アクセル全開で加速した場合には目標パージ率はごく小さな値に設定されるが、このアクセルを全開とする直前に目標パージ率が大きな値に設定されていると、パージ率の変化量が変化量制限値以下に制限されていることからパージ率を目標パージ率に追従させることができない。この追従遅れはエミッション増大の原因等となるので、このような追従遅れを生じないように想定しうる最小パージ率に基づいてパージ率上限値PRMNMXを設定する。
ステップS1324においてコントローラ100は、空燃比フィードバック補正係数αをモニタし、所定値以下であれば空燃比フィードバック補正係数αを所定値以上とするパージ率のうち最も大きな値をパージ率上限値ALPMXとして設定する。このような上限値ALPMXを設けるのは、空燃比フィードバック制御では空燃比フィードバック補正係数αは100±25%に収まるように制御されているが、空燃比フィードバック補正係数αが前記制限値(例えば80%)近傍で制御されているような場合は、大量にパージしているとパージ以外の外乱を受けて制御範囲から外れやすくなるからである。
ステップS1325においてコントローラ100は、上記4つの上限値PVMX、TIMNMX、PRMNMX、ALPMXから最も小さい値を選択し、その値を最大パージ率とする。
キャニスタ10の吸着状態に基づく目標パージ率設定ルーチン(S13)において、パージ率変化量制限値の範囲内で最大パージ率になるように、目標パージ率を設定するので、排気エミッションを悪化させることなく大量のパージを行う上で最良のパージ率を設定することができる。また、物理的な制限、現在の運転領域等で決まる上限値PVMX、TIMNMX、ALPMXだけでなく、運転領域が変化した場合でも遅れなくその領域での最大パージ率に移行できるように決定される上限値PRMNMXも考慮して、最大パージ率を設定するので、運転条件が変化しても排気エミッションを悪化させない大量パージを可能にする最良のパージ率を設定することができる。
次に図9を参照してキャニスタモデルに基づく脱離燃料量Dgの推定方法について説明する。
ステップS101においてコントローラ100は、次式(1)によってキャニスタ10が吸着する燃料量の今回値Yを演算する。
ステップS102においてコントローラ100は、次式(2)によって活性炭温度Tを演算する。
この活性炭温度演算式は、過去の温度(右辺第1項)と、脱離による温度低下(右辺第2項)と、熱伝達による温度上昇(右辺第3項)とで構成される。このように活性炭温度Tを演算するのは、次式(3)中の脱離指数n(T)が活性炭温度Tの影響を受け、特に、脱離量が多いときは活性炭温度Tの降下量が大きく、これがキャニスタ10における燃料の脱離特性に与える影響を無視することができないからである。
ステップS103においてコントローラ100は、次式(3)により基準パージ流量での脱離量Dgkを演算する。
この式(3)は吸着脱離現象(フロイントリッヒ(Freundlich)の式)の考え方をキャニスタ10の脱離現象に応用したものであり、これによってキャニスタ10からの燃料脱離特性をほぼ正確に表現することができる。なお、フロイントリッヒの式に関しては「表面における理論II」(丸善、塚田著)のp.25-p.27、p.108-p115に記載がある。
ステップS104においてコントローラ100は、次式(4)よって脱離量を演算する。
このパージ流量に応じた脱離量演算式(4)は、パージ流量と脱離量がほぼ比例することから、直線近似により脱離量Dgを演算するものである。なお、ここでは式(3)によって基準流量時の脱離量を求め、式(4)でこれにパージ流量を掛けることによって脱離量を演算しているが、式(3),(4)を一つの式にまとめてもよい。
したがって、キャニスタモデルは上記式(1)〜(4)で構成され、このキャニスタモデルを制御ブロック図で示すと図10になる。キャニスタモデルは吸着量演算部B101、活性炭温度演算部B102、基準脱離量演算部B103、流量相当脱離量演算部B104で構成され、各部分がそれぞれ式(1)〜(4)に対応する。
ところで、従来は、外気温が高温で蒸発燃料が過大となる可能性があり、かつキャニスタモデルに基づいて燃料噴射量を減量補正してもなおリッチ空燃比となるときに、燃料過蒸発状態を判定し、パージバルブの開度を絞ってパージ処理よりも燃焼安定性を優先するようにしていた。ところが、このような判定は、吸入空気量が小さくかつ運転状態が安定している状態で行う必要があり、アイドル運転中に行う必要があったので、いわゆるアイドルストップ車両には適用できなかった。
本発明では、リッチ空燃比のときには、そのリッチ空燃比を補正するために空燃比フィードバック補正係数αの変動振幅が大きくなること、及びその変動周期が短くなることに着目し、これらに基づいて燃料過蒸発状態を判定するようにしたのである。
以下ではコントローラ100の具体的な制御ロジックについてフローチャートに沿って説明する。
図11は、本発明による蒸発燃料処理装置の動作を説明するメインフローチャートである。
ステップS1においてコントローラ100は、パージ実行中であるか否かを判定する。パージ実行中であればステップS2へ処理を移行し、そうでなければ一旦処理を抜ける。
ステップS2においてコントローラ100は、パージ濃度の推定が完了したか否かを判定する。完了したらステップS4へ処理を移行し、そうでなければステップS3へ処理を移行する。
ステップS3においてコントローラ100は、濃度推定完了前の燃料過蒸発状態判定を行う。詳細は後述する。
ステップS4においてコントローラ100は、濃度推定完了後の燃料過蒸発状態判定を行う。詳細は後述する。
図12は、濃度推定完了前の燃料過蒸発状態判定ルーチンの内容を説明するフローチャートである。
ステップS31においてコントローラ100は、α変動タイマをインクリメントする。
ステップS32においてコントローラ100は、α変動タイマが規定時間を超えたか否かを判定する。超えるまではステップS33へ処理を移行し、超えたらステップS39へ処理を移行する。
ステップS33においてコントローラ100は、空燃比フィードバック補正係数αの前回値αzが変動幅下限値MIN以上であってかつ今回の空燃比フィードバック補正係数αが変動幅下限値MINよりも小さいか否かを判定する。すなわち空燃比フィードバック補正係数αが今回はじめて変動幅下限値MINよりも小さくなったか否かを判定する。この条件が成立するまでは一旦処理を抜け、成立したらステップS34に処理を移行する。
ステップS34においてコントローラ100は、α変動カウンタがゼロであるか否かを判定する。ゼロであればステップS35へ処理を移行し、そうでなければステップS36へ処理を移行する。
ステップS35においてコントローラ100は、α変動タイマをリセットする。
ステップS36においてコントローラ100は、α変動カウンタをインクリメントする。
ステップS37においてコントローラ100は、α変動カウンタが規定値を超えたか否かを判定する。超えていればステップS38へ処理を移行し、そうでなければ一旦処理を抜ける。
ステップS38においてコントローラ100は、燃料が過蒸発状態であることを判定し、パージバルブの開度を絞るように調整する。またα変動タイマをリセットするとともに、1JOB後にα変動カウンタをリセットする。
ステップS39においてコントローラ100は、α変動カウンタをリセットする。
図13は、濃度推定完了後の燃料過蒸発状態判定ルーチンの内容を説明するフローチャートである。
ステップS41においてコントローラ100は、空燃比フィードバック補正係数αがハンチングするか否かを判定する。詳細は後述する。
ステップS42においてコントローラ100は、ハンチングか否かを判定する。ハンチングするまでは一旦処理を抜け、ハンチングするようになったらステップS43へ処理を移行する。
ステップS43においてコントローラ100は、現在の状態がパッシブキャリブレーションであるか否かを判定する。なおパッシブキャリブレーションについては後で説明する。
ステップS44においてコントローラ100は、ベースずれを判定する。詳細は後述する。
ステップS45においてコントローラ100は、ベースがズレているか否かを判定する。ベースずれがあればステップS47へ処理を移行し、そうでなければステップS46へ処理を移行する。
ステップS46においてコントローラ100は、アクティブキャリブレーションにする。なおアクティブキャリブレーションについては後で説明する。
ステップS47においてコントローラ100は、燃料が過蒸発状態であることを判定し、パージバルブの開度を絞るように調整する。
図14は、空燃比フィードバック補正係数αがハンチングするか否かを判定するルーチンの内容を説明するフローチャートである。
ステップS411においてコントローラ100は、α変動タイマをインクリメントする。
ステップS412においてコントローラ100は、α変動タイマが規定時間を超えたか否かを判定する。超えるまではステップS413へ処理を移行し、超えたらステップS420へ処理を移行する。
ステップS413においてコントローラ100は、空燃比フィードバック補正係数αの前回値αzが変動幅上限値MAX以下であってかつ今回の空燃比フィードバック補正係数αが変動幅上限値MAXよりも大きいか否かを判定する。すなわち空燃比フィードバック補正係数αが今回はじめて変動幅上限値MAXよりも大きくなったか否かを判定する。この条件が成立するまではステップS414に処理を移行し、成立したらステップS415に処理を移行する。
ステップS414においてコントローラ100は、空燃比フィードバック補正係数αの前回値αzが変動幅下限値MIN以上であってかつ今回の空燃比フィードバック補正係数αが変動幅下限値MINよりも小さいか否かを判定する。すなわち空燃比フィードバック補正係数αが今回はじめて変動幅下限値MINよりも小さくなったか否かを判定する。この条件が成立するまでは一旦処理を抜け、成立したらステップS415に処理を移行する。
ステップS415においてコントローラ100は、α変動カウンタがゼロであるか否かを判定する。ゼロであればステップS416へ処理を移行し、そうでなければステップS417へ処理を移行する。
ステップS416においてコントローラ100は、α変動タイマをリセットする。
ステップS417においてコントローラ100は、α変動カウンタをインクリメントする。
ステップS418においてコントローラ100は、α変動カウンタが規定値を超えたか否かを判定する。超えていればステップS419へ処理を移行し、そうでなければ一旦処理を抜ける。
ステップS419においてコントローラ100は、ハンチングを判定する。またα変動タイマをリセットするとともに、1JOB後にα変動カウンタをリセットする。
ステップS420においてコントローラ100は、α変動カウンタをリセットする。
図15は、ベースずれルーチンの内容を説明するフローチャートである。
ステップS441においてコントローラ100は、ベースチェックタイマをインクリメントする。
ステップS442においてコントローラ100は、ベースチェックタイマが規定時間を超えたか否かを判定する。超えるまではステップS443へ処理を移行し、超えたらステップS448へ処理を移行する。
ステップS443においてコントローラ100は、空燃比フィードバック補正係数αがベースずれなし領域にあるか否かを判定する。ベースずれなし領域にあればステップS444へ処理を移行し、そうでなければステップS445へ処理を移行する。
ステップS444においてコントローラ100は、ベースずれタイマをリセットする。
ステップS445においてコントローラ100は、ベースずれタイマをインクリメントする。
ステップS446においてコントローラ100は、ベースずれタイマが規定時間を超えたか否かを判定する。超えるまでは一旦処理を抜け、超えたらステップS447へ処理を移行する。
ステップS447においてコントローラ100は、ベースずれを判定する。またベースチェックタイマ及びベースずれタイマをリセットする。
ステップS448においてコントローラ100は、ベースずれなしを判定し、ベースチェックタイマをリセットする。
図16は、パッシブキャリブレーション及びアクティブキャリブレーションについての説明図である。
パッシブキャリブレーションは、図16(a−1)のように、パージ率を例えば10%上げた場合の、空燃比フィードバック補正係数αの値を検出する。ベースずれがなくベースが100%であれば、図16(a−2)に実線で示すように検出値は例えば90%となる。ところが、ベースずれがあって例えばベースが90%であれば、図16(a−2)に破線で示すように検出値は80%となる。このように検出値によってベースずれの有無を判定できる。また空燃比フィードバック補正係数αの検出値によって判定できるので、迅速に検出できる。しかしベースずれがあった場合には、空燃比フィードバック補正係数αの変動が正確ではない。したがってステップS41においてハンチングを正確には判定できないおそれがある。
一方、アクティブキャリブレーションは、図16(b−1)のように、パージ率を例えば10%上げた後、0%に戻した場合の、空燃比フィードバック補正係数αの変化量を検出する。この場合は、ベースずれの有無にかかわらず、空燃比フィードバック補正係数αの変動は同じであり(すなわち、図16(b−2)でΔA=ΔB)、ハンチングを正確に判定できる。
次に図17に示すタイムチャートを参照して本発明による蒸発燃料処理装置の動作を説明する。図17は濃度推定完了前の蒸発燃料処理装置の動作を示すタイムチャートである。なおフローチャートとの対応が分かりやすくなるように、ステップ番号をS付けで併記する。
パージ実行中であって(図17(B);ステップS1でYes)、パージ濃度の推定が完了していない間は(ステップS2でNo)、濃度推定完了前の燃料過蒸発状態判定を行う(ステップS3)。図17の時刻t10〜t11までは、α変動タイマをインクリメントする(図17(D);ステップS31)。
時刻t11で空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなり(図17(A);ステップS33でYes)、α変動カウンタが0であるので(図17(C);ステップS34でYes)、α変動タイマをリセットし(図17(D);ステップS35)、α変動カウンタを1にインクリメントする(図17(C);ステップS36)。
時刻t12で空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなったら(図17(A);ステップS33でYes)、α変動カウンタを2にインクリメントする(図17(C);ステップS36)。
時刻t13でα変動タイマが規定時間を超えたら(図17(D);ステップS32でYes)、α変動カウンタ及びα変動タイマをリセットする(図17(C)(D);ステップS36)。
時刻t14で空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなり(図17(A);ステップS33でYes)、α変動カウンタが0であるので(図17(C);ステップS34でYes)、α変動タイマをリセットし(図17(D);ステップS35)、α変動カウンタを1にインクリメントする(図17(C);ステップS36)。
時刻t15でパージを停止したら(図17(B);ステップS1でNo)、時刻t17でパージ開始するまでは(図17(B);ステップS1でYes)、時刻t16で空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなっても(図17(A))、α変動カウンタ及びα変動タイマは現在値を保持する(図17(C)(D))。
時刻t18で空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなったら(図17(A);ステップS33でYes)、α変動カウンタを2にインクリメントする(図17(C);ステップS36)。
時刻t19で空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなったら(図17(A);ステップS33でYes)、α変動カウンタを3にインクリメントし(図17(C);ステップS36)、α変動カウンタが規定値を超えたので(図17(C);ステップS37でYes)、燃料過蒸発状態であると判定しフラグをセットする(図17(E);ステップS38)。
図18は、濃度推定完了後であってアクティブキャリブレーションにおける蒸発燃料処理装置の動作を示すタイムチャートである。
パージ実行中であって(図18(B);ステップS1でYes)、パージ濃度の推定が完了した後は(ステップS2でYes)、濃度推定完了後の燃料過蒸発状態判定を行う(ステップS4)。図18の時刻t200〜t201までは、α変動タイマをインクリメントする(図18(D);ステップS411)。
時刻t201で空燃比フィードバック補正係数αが変動幅上限値MAXよりも大きくなり(図18(A);ステップS413でYes)、α変動カウンタが0であるので(図18(C);ステップS415でYes)、α変動タイマをリセットし(図18(D);ステップS416)、α変動カウンタを1にインクリメントする(図18(C);ステップS417)。
時刻t202で空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなったら(図18(A);ステップS414でYes)、α変動カウンタを2にインクリメントする(図18(C);ステップS417)。
時刻t203で空燃比フィードバック補正係数αが変動幅上限値MAXよりも大きくなったら(図18(A);ステップS413でYes)、α変動カウンタを3にインクリメントする(図18(C);ステップS417)。
時刻t204で空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなったら(図18(A);ステップS414でYes)、α変動カウンタを4にインクリメントする(図18(C);ステップS417)。
時刻t205でα変動タイマが規定時間を超えたら(図18(D);ステップS412でYes)、α変動カウンタ及びα変動タイマをリセットする(図18(C)(D);ステップS420)。
時刻t206で空燃比フィードバック補正係数αが変動幅上限値MAXよりも大きくなり(図18(A);ステップS413でYes)、α変動カウンタが0であるので(図18(C);ステップS415でYes)、α変動タイマをリセットし(図18(D);ステップS416)、α変動カウンタを1にインクリメントする(図18(C);ステップS417)。
時刻t209でパージを停止したら(図18(B);ステップS1でNo)、時刻t212でパージ開始するまでは(図18(B);ステップS1でYes)、空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなったり(時刻t210)、空燃比フィードバック補正係数αが変動幅上限値MAXよりも大きくなっても(時刻t211;図18(A))、α変動カウンタ及びα変動タイマは現在値を保持する(図18(C)(D))。
時刻t213で空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなったら(図18(A);ステップS414でYes)、α変動カウンタを4にインクリメントする(図18(C);ステップS417)。
時刻t215で空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなったら(図18(A);ステップS414でYes)、α変動カウンタを6にインクリメントし(図18(C);ステップS417)、α変動カウンタが規定値を超えたので(図18(C);ステップS418でYes)、空燃比フィードバック係数αのハンチングを判定しフラグをセットする(図17(F);ステップS419)。
なお図18はアクティブキャリブレーション中であるので(図18(E))、その後は燃料過蒸発状態であると判定しフラグをセットする(図18(F);ステップS47)。
図19は、濃度推定完了後であってパッシブキャリブレーションのベースずれがない場合の蒸発燃料処理装置の動作を示すタイムチャートである。
時刻t314で空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなったら(図19(A);ステップS414でYes)、α変動カウンタを5にインクリメントする(図19(C);ステップS417)。
時刻t315で空燃比フィードバック補正係数αが変動幅上限値MAXよりも大きくなったら(図19(A);ステップS413でYes)、α変動カウンタを6にインクリメントし(図19(C);ステップS417)、α変動カウンタが規定値を超えたので(図19(C);ステップS418でYes)、空燃比フィードバック係数αのハンチングを判定しフラグをセットする(図19(G);ステップS419)。
時刻t316でベースチェックタイマのインクリメントを開始し(図19(H);ステップS441)、空燃比フィードバック補正係数αがベースずれなし領域内に収まったまま(ステップS443でYes)、時刻t317で規定時間を経過したら(図19(H);ステップS442でYes)、ベースずれなしを判定し(ステップS448)、ベースずれがないにもかかわらず、ハンチングしていることから燃料過蒸発状態であると判定しフラグをセットする(図19(F);ステップS47)。
図20は、濃度推定完了後であってパッシブキャリブレーションのベースずれがある場合の蒸発燃料処理装置の動作を示すタイムチャートである。
時刻t414で空燃比フィードバック補正係数αが変動幅下限値MINよりも小さくなったら(図20(A);ステップS414でYes)、α変動カウンタを5にインクリメントする(図20(C);ステップS417)。
時刻t415で空燃比フィードバック補正係数αが変動幅上限値MAXよりも大きくなったら(図20(A);ステップS413でYes)、α変動カウンタを6にインクリメントし(図20(C);ステップS417)、α変動カウンタが規定値を超えたので(図20(C);ステップS418でYes)、空燃比フィードバック係数αのハンチングを判定しフラグをセットする(図20(G);ステップS419)。
時刻t416でベースチェックタイマのインクリメントを開始し(図20(H);ステップS441)、時刻t417で空燃比フィードバック補正係数αがベースずれなし領域から外れたら(図20(A);ステップS443でNo)、ベースずれタイマをインクリメントする(図20(I);ステップS445)。
時刻t418で空燃比フィードバック補正係数αがベースずれなし領域に戻ったら(図20(A);ステップS443でYes)、ベースずれタイマをリセットし(図20(I);ステップS444)、時刻t419で空燃比フィードバック補正係数αがベースずれなし領域から外れたら(図20(A);ステップS443でNo)、ベースずれタイマをインクリメントする(図20(I);ステップS445)。
時刻t420で空燃比フィードバック補正係数αがベースずれなし領域から外れたまま規定時間を超えたら(図20(A);ステップS446でYes)、ベースずれありを判定する(ステップS447)。ベースずれを判定したらアクティブキャリブレーションにし(ステップS46)、それでもハンチングを判定するときは(ステップS42でYes)、燃料過蒸発状態であると判定しフラグをセットする(ステップS47)。
本実施形態によれば、排気エミッションを悪化させないように目標パージ率を設定し、その目標パージ率に基づいてパージバルブを開弁制御したときにキャニスタから脱離する燃料脱離量をキャニスタモデルで推定し、キャニスタモデルで推定された燃料脱離量の相当量を減量補正してエンジンに燃料を供給しているにもかかわらず、排気エミッションの悪化を判定したときには、燃料タンクで発生中の蒸発燃料量が過大であると判定するようにしたので、燃料の過蒸発状態を正確に検出することができる。また排気エミッションの悪化は空燃比フィードバック補正係数の変動周期に基づいて判定するようにした。またパージ制御を停止中に、パージ制御を停止前の空燃比フィードバック補正係数の変動回数カウント及びカウント開始からの経過時間を保持し、パージ制御を再び開始したらその保持した回数カウント及び経過時間から再開するようにしたので、走行中であっても燃料の過蒸発状態を判定でき、アイドルストップ車両にも適用することができる。
空燃比フィードバック補正係数の変動周期はパッシブキャリブレーション方式で検出するので迅速である。またパッシブキャリブレーション方式ではうまく検出できないときはベースずれチェックを行い、ベースずれがあればアクティブキャリブレーション方式に変更するので、いかなる場合も正確な検出が可能である。
燃料タンクで発生中の蒸発燃料量が過大であると判定したときには、パージバルブの開度を絞るようにしたので、気筒内のリッチ空燃比を防止できる。
パージ濃度推定の完了前は、空燃比フィードバック補正係数が許容変動幅を下回る回数をカウントし、所定時間以内に規定カウント数に達したか否かによって判定し、パージ濃度推定の完了後は、空燃比フィードバック補正係数が許容変動幅を上回る回数及び下回る回数をカウントし、所定時間以内に規定カウント数に達したか否かによって判定するので正確に判定できる。所定時間以内に規定カウント数に達しなければ再度判定をやり直すので誤判定を防止できる。
以上説明した実施形態に限定されることなく、その技術的思想の範囲内において種々の変形や変更が可能であり、それらも本発明と均等であることは明白である。