(57)【要約】【課題】始動直後にベース空燃比エラーが露わになっている状態で較正タイミングを迎えた場合にあってもキャニスタモデルの較正の精度を高く保つ。【解決手段】コントローラ１１は、キャニスタモデルを用いてパージ処理時にキャニスタ２４から脱離する燃料量を推定し、この脱離燃料量に基づき目標パージ率でパージ処理を行うことによる理論空燃比からの空燃比偏差が小さくなるようにパージ分補正量を演算し、このパージ分補正量でエンジンへの供給燃料量を補正する。さらに第１リミッタよりも空燃比フィードバック補正量の中心値までの幅が狭い第２リミッタを設定し、演算される空燃比フィードバック補正量と第２リミッタとの比較によりベース空燃比エラーがあると判定した場合に較正タイミングとなったとき、パージカットを行い、キャニスタモデルに対してこのパージカット前後のデータに基づいて第１較正処理を行う。【選択図】　　　　図１
2004060483.tif 000002
【特許請求の範囲】
【請求項１】
排気中の空燃比を検出する空燃比検出手段と、この空燃比検出手段により検出される排気空燃比が理論空燃比と一致するように空燃比フィードバック補正量を演算する空燃比フィードバック補正量演算手段と、
空燃比フィードバック補正量の中心値より所定の幅を有する第１リミッタを設定する第１リミッタ設定手段と、
空燃比フィードバック補正量が第１リミッタを含んで中心値の側に収まるように、演算される空燃比フィードバック補正量を制限する空燃比フィードバック補正量制限手段と、
この制限された空燃比フィードバック補正量でエンジンへの供給燃料量を補正する空燃比フィードバック補正手段と
を備えるエンジンの空燃比制御装置において、
燃料タンクで発生する蒸発燃料を吸着するキャニスタと、
キャニスタとエンジンの吸気通路とを連通する配管を開閉するパージバルブと、
目標パージ率が得られるようにパージバルブを制御するパージバルブ制御手段と、
少なくとも、
（ａ）　キャニスタに吸着されている燃料量の前回値及びキャニスタから脱離する燃料量の前回値に基づきキャニスタに吸着されている燃料量を演算する吸着燃料量演算式と、
（ｂ）吸着燃料量演算式によって演算された吸着燃料量と、目標パージ率とに基づきキャニスタから脱離する燃料量を演算する脱離燃料量演算式と
で構成されるキャニスタモデルと、
目標パージ率でパージ処理を行うことによる、理論空燃比からの空燃比偏差が小さくなるように、キャニスタモデルを用いて演算される脱離燃料量に基づいてパージ分補正量を演算するパージ分補正量演算手段と、
このパージ分補正量でエンジンへの供給燃料量を補正するパージ分補正手段と、
較正タイミングであるか否かを判定する較正タイミング判定手段と、
第１リミッタよりも空燃比フィードバック補正量の中心値までの幅が狭い第２リミッタを設定する手段と、
演算される空燃比フィードバック補正量と第２リミッタとの比較によりベース空燃比エラーがあるか否かを判定するベース空燃比エラー判定手段と、
この判定結果よりベース空燃比エラーがある場合に較正タイミングとなったときパージカットを行うパージカット手段と、
キャニスタモデルに対してこのパージカット前後のデータに基づいて第１較正処理を行う第１較正処理手段と
を備えることを特徴とするエンジンの空燃比制御装置。
【請求項２】
第１較正処理手段は、
ベース空燃比エラーがある場合に較正タイミングとなったとき、そのときのデータをパージカット前データとしてサンプリングするパージカット前データサンプリング手段と、
パージカット時にそのときの空燃比フィードバック補正量をパージカット時データとしてサンプリングするパージカット時データサンプリング手段と、
これらパージカット前後のデータに基づいてキャニスタから脱離した燃料量を推定する脱離燃料量推定手段と、
推定された脱離燃料量からキャニスタに吸着されていた燃料量を逆算する吸着燃料量逆算手段と、
キャニスタモデル内の内部変数である吸着燃料量の値をこの逆算した吸着燃料量の値で較正する較正手段と
からなることを特徴とする請求項１に記載のエンジンの空燃比制御装置。
【請求項３】
空燃比学習制御を行う場合に、パージカット時データとして空燃比学習値を加えることを特徴とする請求項１または２に記載のエンジンの空燃比制御装置。
【請求項４】
パージカット前データは少なくとも空燃比フィードバック補正量、パージ分補正量、目標パージ率であることを特徴とする請求項２に記載のエンジンの空燃比制御装置。
【請求項５】
空燃比学習制御を行う場合に、パージカット前データに空燃比学習値を加えることを特徴とする請求項２に記載のエンジンの空燃比制御装置。
【請求項６】
パージカット時データサンプリング手段のサンプリングタイミングは、目標パージ率がゼロとなってから安定化時間が経過したタイミングであることを特徴とする請求項２に記載のエンジンの空燃比制御装置。
【請求項７】
ベース空燃比エラー判定手段は、演算される空燃比フィードバック補正量が第２リミッタを含んで中心値の側に収まらないとき、その収まらない状態が継続する時間を計測する時間計測手段と、この継続時間と所定値との比較によりベース空燃比エラーがあるか否かを判定する比較手段とからなることを特徴とする請求項１または２に記載のエンジンの空燃比制御装置。
【請求項８】
パージカット手段は、ベース空燃比エラーがある場合に較正タイミングとなったときの目標パージ率を初期値として所定時間間隔で所定値ずつゼロまで低下させる処理を行うパージ率低下処理手段であることを特徴とする請求項１または２に記載のエンジンの空燃比制御装置。
【請求項９】
エンジン始動後に初めて較正タイミングとなったとき、この初回較正タイミングでの較正処理を第１較正処理で行ない、その第１較正処理により較正されたキャニスタモデルを用いて演算される脱離量に応じて判定値を演算し、この判定値に基づいてパージ処理が終了したか否かを判定し、パージ処理が終了したと判定したとき、パージ率またはパージ流量を小さくして空燃比学習値の更新を行うことを特徴とする請求項１または２に記載のエンジンの空燃比制御装置。
【請求項１０】
判定値は積算パージ流量に対する判定値であり、エンジン始動からの積算パージ流量が判定値以上となったときパージ処理が終了したと判定することを特徴とする請求項９に記載のエンジンの空燃比制御装置。
【請求項１１】
ベース空燃比エラーがない場合に較正タイミングとなったとき、キャニスタモデルに対してパージ実行中のデータに基づく第２較正処理を行うことを特徴とする請求項１または２に記載のエンジンの空燃比制御装置。
【請求項１２】
第２較正処理手段は、
パージ実行中のデータに基づいてキャニスタから脱離した燃料量を推定する脱離燃料量推定手段と、
推定された脱離燃料量からキャニスタに吸着されていた燃料量を逆算する吸着燃料量逆算手段と、
キャニスタモデル内の内部変数である吸着燃料量の値をこの逆算した吸着燃料量の値で較正する較正手段と
からなることを特徴とする請求項１１に記載のエンジンの空燃比制御装置。
【請求項１３】
パージ実行中のデータは、少なくとも空燃比フィードバック補正量、パージ分補正量、目標パージ率であることを特徴とする請求項１０または１１に記載のエンジンの空燃比制御装置。
【請求項１４】
第２リミッタにヒステリシスを設けることを特徴とする請求項１または２に記載のエンジンの空燃比制御装置。
【請求項１５】
キャニスタモデルの脱離燃料量演算式が、吸着燃料量演算式によって演算された吸着燃料量と、目標パージ率と、キャニスタ内の燃料吸着剤の温度とに基づきキャニスタから脱離する燃料量を演算する式であることを特徴とする請求項１または２に記載のエンジンの空燃比制御装置。
【請求項１６】
キャニスタモデルが、さらに、キャニスタから脱離する燃料量に基づき燃料吸着剤の温度降下量を演算し、この温度降下量に基づき燃料吸着剤の温度を演算する吸着剤温度演算式を含んで構成されることを特徴とする請求項１５に記載のエンジンの空燃比制御装置。
【請求項１７】
キャニスタに吸着していた燃料量を逆算する手段が、キャニスタモデルの脱離燃料量演算式の逆演算によって前記推定された脱離燃料量からキャニスタに吸着していた燃料量を演算することを特徴とする請求項１または２に記載のエンジンの空燃比制御装置。
【請求項１８】
脱離燃料量を推定する手段が、パージ以外の外乱による理論空燃比からの空燃比偏差が生じないときの理論空燃比からの空燃比偏差に基づきキャニスタからの脱離燃料量を推定することを特徴とする請求項１または２に記載のエンジンの空燃比制御装置。
【請求項１９】
脱離燃料量を推定する手段が、パージ空燃比が所定値よりも濃く、パージによる理論空燃比からの空燃比偏差が十分に表れるときの理論空燃比からの空燃比偏差よりキャニスタからの脱離燃料量を推定することを特徴とする請求項１または２に記載のエンジンの空燃比制御装置。
【請求項２０】
脱離燃料量を推定する手段が、パージ率が所定値よりも高く、パージによる理論空燃比からの空燃比偏差が十分に表れるときの理論空燃比からの空燃比偏差よりキャニスタからの脱離燃料量を推定することを特徴とする請求項１または２に記載のエンジンの空燃比制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、エンジンの空燃比制御装置、特に蒸発燃料処理装置を備えるものに関する。
【０００２】
【従来の技術】
エンジンには、エンジン停止中に燃料タンク内で発生した蒸発燃料をキャニスタ内の活性炭に一旦吸着させておき、エンジン始動後の所定の運転条件で吸気管圧力（大気圧より低い圧力）を利用して活性炭に吸着した燃料を脱離させ、吸気絞り弁下流の吸気通路に導いて燃焼処理する蒸発燃料処理装置を備えている（特開平７−１６６９７８号公報参照）。
【０００３】
以下では、キャニスタに吸着させている燃料を脱離させてエンジンに供給することを「パージ」あるいは「パージ処理」、キャニスタから脱離する燃料を「パージ燃料」、パージ燃料だけでなくパージ燃料と共にエンジンに供給される新気をも併せて「パージガス」ということがある。
【０００４】
こうした従来装置にあっては、パージによる排気空燃比への影響は外乱として扱い、その外乱により排気空燃比が理論空燃比を外れることがあっても、排気通路に設けた酸素濃度センサを用いた空燃比フィードバック制御を行って排気空燃比を理論空燃比へと戻し、これによって排気通路に設けた三元触媒の転化効率が低下することがないようにしている。
【０００５】
【発明が解決しようとしている問題点】
ところで、パージ燃料がエンジンに供給されることによる空燃比フィードバック補正係数α（空燃比フィードバック補正量）の変化を予測できるので、この予測可能な空燃比フィードバック補正係数αをパージ分補正係数ＦＨＯＳ（パージ分補正量）として新たに導入し、パージによる理論空燃比からの空燃比偏差が小さくなるようにこのパージ分補正係数ＦＨＯＳでエンジンへの供給燃料量の基本値を補正すると共に、
（１）キャニスタに吸着されている燃料量を演算する式と、
（２）この吸着燃料量と目標パージ率とに基づいてキャニスタから脱離する燃料量を演算する式と
で構成されるキャニスタモデルを用いてキャニスタから脱離する燃料量を推定し、この脱離燃料量、目標パージ率及び吸入空気質量に基づいて上記のパージ分補正係数ＦＨＯＳを演算するようにした装置を本願と同一の出願人が先に提案している（特願２００１−７１５６２号参照）。
【０００６】
この先願装置によるパージ処理（モデル規範パージ処理）によれば、パージによる外乱は専らこのパージ分補正係数ＦＨＯＳが対応することになり、ベース空燃比エラーがなくかつＦＨＯＳが正確に演算されていさいすれば空燃比フィードバック制御を開始する前からパージ処理を行っても、排気空燃比が理論空燃比へと制御される。すなわち、パージ処理中に空燃比フィードバック制御条件が成立して空燃比フィードバック制御を開始したとき、空燃比フィードバック補正係数αはパージがないときのように動く。
【０００７】
空燃比フィードバック補正係数αに対しては補正代の限界を定める第１リミッタが例えば±２５％と予め設けられ、αの中心値である１００％より１２５％（上限リミッタ）までがαを大きくする側のフルの補正代、また１００％より７５％（下限リミッタ）がαを小さくする側のフルの補正代となるところ、従来装置によれば、パージによる排気空燃比への影響を空燃比フィードバック補正係数αが補償していたためにその分だけ外乱に対するαの補正代が目減りしていたわけであるが、先願装置によれば、空燃比フィードバック補正係数αがパージに対してフリーになり、αが有している補正代をパージ以外の外乱に対してフルに使用可能となった。
【０００８】
また、目標パージ率として、パージバルブの流量等による一定の制限の範囲内で最大のパージ率を設定することで、エンジン始動直後より早期にかつ大量のパージを行うことができている。
【０００９】
ただし、キャニスタモデルは、あくまで近似モデルであるため、これを用いて演算される値（脱離量、吸着量等）は実際の値から幾らかずれた値となる。また、キャニスタモデルは後述するように漸化式であるので、キャニスタモデルの動作時間が長くなるにつれて誤差が積分されて演算値と実際値とのずれが拡大する。このため、このずれをなくしキャニスタモデルの演算精度を高く維持するため、較正タイミングになると、パージ処理中のデータに基づいて、キャニスタモデルの内部変数の一つであるキャニスタの吸着量の値を較正している。
【００１０】
一方、エアフローメータや燃料噴射弁などの構成部品の経時劣化やバラツキ、燃料噴射弁の噴射パルス幅−流量特性の非直線性などによるベース空燃比の理論空燃比からの偏差をベース空燃比エラーといい、このベース空燃比エラーを無くすため、ストイキ運転時（理論空燃比を目標空燃比とする運転時のこと）には空燃比の学習制御が行われている。
【００１１】
こうした空燃比学習制御に対してエンジン始動直後より大量のパージを行う先願装置のパージ処理とが組み合わされる場合には、次のような問題が生じる。すなわち、ベース空燃比エラーがあっても空燃比学習制御が正常に働いていれば、ベース空燃比エラーを空燃比学習値が吸収するためベース空燃比エラーが存在しないのと同じ状態になるが、何らかの原因により、エンジン始動直後に大幅なベース空燃比エラーが存在する場合には、空燃比フィードバック補正係数αによる補正代だけでは補正代が足りずに補正しきれない場合が考えられる。補正しきれない場合、排気エミッションの悪化につながる。
【００１２】
その一方で、パージは、パージによる排気エミッションの悪化低減を目的として始動後に大量に流すことが要求されているため、先願装置のようにパージ処理の開始を早期に行うことが望ましい。
【００１３】
従って、ベース空燃比エラーが生じている状態で始動後速やかに大量のパージを開始した後に較正タイミングとなったときには、ベース空燃比エラーの分もパージによるものとみなして較正処理が行われてしまうため、ベース空燃比エラーの分だけ大きな較正エラーが生じ、パージ分補正係数ＦＨＯＳが正確に演算されない。すなわち、ベース空燃比エラーに伴う較正エラーの影響を受けてパージ分補正係数ＦＨＯＳにもエラーが生じるのであるが、こうしてパージ分補正係数ＦＨＯＳにエラーが生じた場合であっても、空燃比フィードバック制御中であれば空燃比フィードバック補正係数αによってパージによる理論空燃比からの空燃比偏差がなくされる。
【００１４】
このことは、先願装置によればパージによる排気空燃比への影響をパージ分補正係数ＦＨＯＳによって補償することにより、空燃比フィードバック補正係数αの補正代をフルに使用可能としたはずなのに、ベース空燃比エラーが露わになっている状態での較正エラーに伴ってパージ分補正係数ＦＨＯＳにエラーが生じると再び空燃比フィードバック補正係数αの補正代が狭くなってしまうことを意味する。
【００１５】
そこで本発明は、先願装置を前提として、空燃比フィードバック補正係数αの中心値と、もともとある空燃比フィードバック補正係数αに対するリミッタ（第１リミッタ）との間にパージ用のリミッタとして第２リミッタを設け、演算される空燃比フィードバック補正係数αと第２リミッタとの比較によりベース空燃比エラーがあるか否かを判定し、ベース空燃比エラーがあると判定された場合において較正タイミングとなったときパージカットを行い、キャニスタモデルに対してこのパージカット前後のデータに基づいて較正処理（第１較正処理）を行うことにより、始動直後にベース空燃比エラーが露わになっている状態で較正タイミングを迎えた場合にあっても、ベース空燃比エラーの影響を排除してキャニスタモデルの較正の精度を高く保つ（ＦＨＯＳの演算精度も高く保つ）ことを目的とする。
【００１６】
【問題点を解決するための手段】
請求項１に記載の発明は、排気中の空燃比を検出する空燃比検出手段と、この空燃比検出手段により検出される排気空燃比が理論空燃比と一致するように空燃比フィードバック補正量を演算する空燃比フィードバック補正量演算手段と、空燃比フィードバック補正量の中心値より所定の幅を有する第１リミッタを設定する第１リミッタ設定手段と、空燃比フィードバック補正量が第１リミッタを含んで中心値の側に収まるように、演算される空燃比フィードバック補正量を制限する空燃比フィードバック補正量制限手段と、この制限された空燃比フィードバック補正量でエンジンへの供給燃料量を補正する空燃比フィードバック補正手段とを備えるエンジンの空燃比制御装置において、燃料タンクで発生する蒸発燃料を吸着するキャニスタと、キャニスタとエンジンの吸気通路とを連通する配管を開閉するパージバルブと、目標パージ率が得られるようにパージバルブを制御するパージバルブ制御手段と、
少なくとも、
（ａ）　キャニスタに吸着されている燃料量の前回値及びキャニスタから脱離する燃料量の前回値に基づきキャニスタに吸着されている燃料量を演算する吸着燃料量演算式と、
（ｂ）吸着燃料量演算式によって演算された吸着燃料量と、目標パージ率とに基づきキャニスタから脱離する燃料量を演算する脱離燃料量演算式と
で構成されるキャニスタモデルと、
目標パージ率でパージ処理を行うことによる、理論空燃比からの空燃比偏差が小さくなるように、キャニスタモデルを用いて演算される脱離燃料量に基づいてパージ分補正量を演算するパージ分補正量演算手段と、このパージ分補正量でエンジンへの供給燃料量を補正するパージ分補正手段と、較正タイミングであるか否かを判定する較正タイミング判定手段と、第１リミッタよりも空燃比フィードバック補正量の中心値までの幅が狭い第２リミッタを設定する手段と、演算される空燃比フィードバック補正量と第２リミッタとの比較によりベース空燃比エラーがあるか否かを判定するベース空燃比エラー判定手段と、この判定結果よりベース空燃比エラーがある場合に較正タイミングとなったときパージカットを行うパージカット手段と、キャニスタモデルに対してこのパージカット前後のデータに基づいて第１較正処理を行う第１較正処理手段とを備える。
【００１７】
【作用及び効果】
エンジンの始動直後にベース空燃比エラーが露わになっている場合は希にしか生じないのであるが、その希な場合は先願装置では考慮の対象外であったため、その希な場合において較正タイミングとなったとき、先願装置の較正処理（第２較正処理）を継続している限り、較正処理からベース空燃比エラーに伴う較正エラーを無くすことができず、このベース空燃比エラーに伴う較正エラーに起因してパージ分補正量を正しく演算できないので、理論空燃比からの空燃比偏差が大きくなり、この空燃比偏差を小さくしようと空燃比フィードバック補正量の補正代が狭くなってしまう。これに対して、請求項１に記載の発明によれば、エンジンの始動直後にベース空燃比エラーが露わになっている場合において較正タイミングとなったとき、パージカットを行い、キャニスタモデルに対してこのパージカット前後のデータに基づいて第１較正処理を行うので、エンジン始動後にベース空燃比エラーが露わになっている場合において較正タイミングとなっても、キャニスタモデルの較正を、ベース空燃比エラーの影響を受けることなく精度良く行うことができ、これによってパージ分補正量の演算精度が向上すると共に、空燃比フィードバック補正量の補正代を無駄に使うことがない。
【００１８】
【発明の実施の形態】
以下、添付図面に基づき本発明の実施の形態について説明する。
【００１９】
図１は、蒸発燃料処理装置を備えるエンジンの全体構成を示したものである。
【００２０】
１はエンジン本体で、吸気通路２には吸気絞り弁３の下流に位置して気筒別に燃料噴射弁４が設けられ、エンジンコントローラ１１からの噴射信号により運転条件に応じて所定の空燃比となるように、吸気中に燃料を噴射供給する。詳細には、クランク角センサ１２からの信号、エアフローメータ１３からの吸入空気流量の信号、水温センサ１４からのエンジン冷却水温の信号等が、主にマイクロコンピュータからなるエンジンコントローラ１１に入力され、エンジンコントローラ１１ではこれらの信号に基づいて基本空燃比（理論空燃比）の混合気が得られる基本噴射パルス幅Ｔｐを算出し、これに水温増量などの各種の補正を行って燃料噴射パルス幅Ｔｉを求め、所定のタイミングでこのＴｉに対応する期間だけ燃料噴射弁４を開く。
【００２１】
排気通路５には三元触媒（図示しない）を備える。三元触媒は排気中の空燃比が理論空燃比を中心とする狭い範囲にあるとき最大の転化効率をもって排気中のＮＯｘの還元とＨＣ、ＣＯの酸化を行う。このため、エンジンコントローラ１１では空燃比センサ１５により検出される排気中の空燃比が理論空燃比と一致するように空燃比フィードバック補正係数αを演算し、この空燃比フィードバック補正係数α（空燃比フィードバック補正量）で上記の基本噴射パルス幅Ｔｐ（エンジンへの供給燃料量の基本値）を補正することにより空燃比のフィードバック制御を行う。
【００２２】
この場合に、空燃比フィードバック補正係数αに対して、αが動きうる範囲としてαの中心値（１００％）を中心として所定幅を有する第１リミッタ±ＬＭＴ１（±２５％）が予め設けられ、演算されるαが中心値から大きくなって上限リミッタである１００＋ＬＭＴ１を超えるときにはこの上限リミッタに、また演算されるαが中心値より小さくなって下限リミッタである１００−ＬＭＴ１を下回るときにはこの下限リミッタに制限される。
【００２３】
また、エアフローメータ１３や燃料噴射弁４などの構成部品の経時劣化やバラツキ、燃料噴射弁４の噴射パルス幅−流量特性の非直線性などに伴うベース空燃比エラーを無くすため、エンジンコントローラ１１では、ストイキ運転時（理論空燃比を目標空燃比とする運転時のこと）に空燃比の学習制御を行っている。
【００２４】
一方、蒸発燃料処理装置は燃料タンク２１内で発生する蒸発燃料を処理するためのもので、キャニスタ２４と、キャニスタ２４および燃料タンク２１を連通する配管２２と、キャニスタ２４およびエンジンの吸気絞り弁３下流の吸気通路２を連通する配管２６と、配管２６を開閉するパージバルブ２７とを備える。
【００２５】
燃料タンク２１内に発生した蒸発燃料は、配管２２を介してキャニスタ２４に導かれ、燃料成分だけがキャニスタ２４内の燃料吸着剤（活性炭）２４ａに吸着され、残りの空気は大気解放口２５より外部に放出される。活性炭２４ａに吸着された燃料を燃焼処理するため、パージバルブ２７を開き、吸気絞り弁３下流に発達する吸気管圧力（大気より低い圧力）を利用して大気解放口２５からキャニスタ２４内に新気を導入する。これによって新気により活性炭２４ａに吸着されていた燃料が脱離し、新気とともに配管２６を介してエンジン１の吸気通路２内に導入される。
【００２６】
キャニスタ２４に吸着させている燃料を脱離させてエンジンに供給する処理（パージ処理）を行うに際して、エンジンコントローラ２１ではエンジンの燃焼安定性、排気エミッションを悪化させない範囲で可能な限り高い目標パージ率（吸入空気流量に対するパージ流量の比率）を設定し、エンジン始動後よりその目標パージ率が実現されるようにパージバルブ２７の開度を制御する。
【００２７】
さらに、パージ処理を開始した後にはパージが外乱となり、理論空燃比からの空燃比偏差が生じる。パージの初期であれば排気空燃比が理論空燃比よりリッチ側に外れるので、その外れた空燃比が理論空燃比に戻るまで空燃比フィードバック補正係数αが中心値より小さくなる側に動き、特にエンジン始動後より可能な限り高い目標パージ率を設定し、大量のパージを行うときにはαがαの下限リミッタである７５％の近くまで動く。
【００２８】
その場合にパージ以外の外乱が生じて排気空燃比が理論空燃比を外れてリッチ側になったとすれば、αはさらに小さくなる側へと動くが、すぐに下限リミッタに達してそれ以上は小さくならない。すなわち、既にパージによる外乱に対してαを小さくする側へのαの補正代をほとんど使い果たしているので、パージ以外の外乱に対して補正代がわずかしか残っておらず、そのためわずかな補正代を用いても排気空燃比を理論空燃比に戻すことができなければ排気エミッションが悪化する。
【００２９】
このため、エンジンコンロトローラ１１では、後述するキャニスタモデルを用いてキャニスタからの脱離燃料量を推定し、その推定した脱離燃料量Ｄｇ、目標パージ率、吸入空気質量に基づいてパージ分補正係数ＦＨＯＳを演算し、このパージ分補正係数ＦＨＯＳで基本噴射パルス幅Ｔｐを補正することにより、エンジン始動後より可能な限り高い目標パージ率を設定して大量のパージが行われても、理論空燃比からの空燃比偏差が小さくなるようにする。すなわち、パージによる排気空燃比への影響はパージ分補正係数ＦＨＯＳが補償することになるので、空燃比フィードバック補正係数αはパージがないのと同じ動きをすることになり、これによってαはパージによる外乱に対して補正代を使う必要がなくなり補正代がフルで残り、パージ以外の外乱に対して強いロバスト性を有することになる。
【００３０】
後述するように、キャニスタモデルにより算出した脱離量Ｄｇがエンジンに供給されることにより空燃比フィードバック補正係数αの変化を予測することができるが、この予測されるαがパージ分補正係数ＦＨＯＳである。従ってこの予測されるαは目標パージ率が大きくなるほど大きくなり、脱離量Ｄｇが多くなるほど大きくなり、吸入空気質量Ｑｇが多くなるほど小さくなる。従って、パージ分補正係数ＦＨＯＳも、目標パージ率が大きくなるほど大きくなり、脱離量Ｄｇが多くなるほど大きくなり、吸入空気質量Ｑｇが多くなるほど小さくなる。
【００３１】
また、キャニスタモデルに対して較正処理を行う必要があり、その際に較正エラーが生じる。較正エラーが生じる最大の要因は、ベース空燃比エラーに由来するものである。これは、キャニスタモデルの較正処理を行う場合に、理論空燃比からの空燃比偏差が生じるのは、すべてパージによるものであると仮定しているためであり、空燃比学習制御を行っていても、何らかの原因でエンジン始動直後にベース空燃比エラーが露わになっている場合に較正タイミングになったからといって較正処理を行うと、ベース空燃比エラーによって空燃比フィードバック補正係数αが変化した分もそっくりパージによるものとして較正処理が行われてしまうからである。
【００３２】
そこでエンジンコントローラ１１では、第１リミッタ±ＬＭＴ１よりも空燃比フィードバック補正係数αの中心値までの幅が狭い第２リミッタ±ＬＭＴ２を設定し、演算される空燃比フィードバック補正係数αと第２リミッタとの比較によりベース空燃比エラーがあるか否かを判定し、ベース空燃比エラーがあると判定された場合において較正タイミングとなったとき先願装置と同様の較正処理では無く、ベース空燃比エラーの影響を受けない方法での新たな較正処理を行う。
【００３３】
なお、配管２２には燃料タンク２１側の通路内が大気圧よりも低くなると開かれるバキュームカットバルブ２３を迂回するバイパスバルブ２９が、配管２６には配管内の圧力を測定する圧力センサ３０が、またキャニスタ２４の大気解放口２５にはドレンカットバルブ２８がそれぞれ設けられているが、これらは蒸発処理装置の診断のために必要となるものであり、パージ処理とは直接関係がない。
【００３４】
エンジンコントローラ１１が行うこうした制御を図２、図３１、図３に示すブロック図によりまず概説する。
【００３５】
図２はパージ処理及び空燃比制御に関連する部分の概要をブロック図で示したものである。図２において目標パージ率設定部Ｂ１ではパージ処理に関連する部品の性能限界等に基づき現在の運転領域で設定可能な最大パージ率を演算し、この最大パージ率に追従するように目標パージ率を設定する。ただし、パージ率の急激な変化は排気空燃比の大きな変動（理論空燃比からの空燃比偏差が大きくなること）を招き、排気エミッションの悪化等の原因となるので、パージ率を急激に変化させないようにパージ率の変化量は所定量（パージ率変化量制限値）以下に制限している。
【００３６】
また、デューティ比演算部Ｂ２では目標パージ率を実現するために必要なパージバルブ２７のデューティ比を演算し、パージバルブ駆動部Ｂ３ではデューティ比演算部Ｂ２で演算されたデューティ比でパージバルブ２７を駆動する。
【００３７】
一方、脱離量演算部Ｂ４では、すぐ後に述べるキャニスタ２４の物理モデル（以下、キャニスタモデル」という。）を用いて上記目標パージ率でパージを行った場合にキャニスタ２４から脱離してくる燃料量を演算する。
【００３８】
パージ分補正係数演算部Ｂ５ではこの推定された脱離量（脱離燃料量）、目標パージ率、吸入空気流量に基づきパージによる理論空燃比からの空燃比偏差が小さくなるようにパージ分補正係数ＦＨＯＳを演算する。遅れ補正部Ｂ６ではこのパージ分補正係数ＦＨＯＳに対して、吸入空気流量を考慮した無駄時間補正及びなまし処理からなる遅れ補正を施し、遅れ補正後の補正係数を改めてパージ分補正係数ＦＨＯＳとする。
【００３９】
基本噴射パルス幅演算部Ｂ７では吸入空気流量とエンジン回転速度から基本噴射パルス幅Ｔｐを、また空燃比フィードバック補正係数演算部Ｂ８では実際の排気空燃比に基づいて空燃比フィードバック補正係数αをそれぞれ演算し、燃料噴射パルス幅演算部Ｂ９では、基本噴射パルス幅Ｔｐに対して、上記のように各種の補正や空燃比フィードバック補正係数αによる補正を行うほか、遅れ補正後のパージ分補正係数ＦＨＯＳによる補正を行い、最終的な燃料噴射パルス幅Ｔｉを演算する。燃料噴射弁駆動部Ｂ１０ではこのようにして演算した燃料噴射パルス幅Ｔｉで燃料噴射弁４を駆動する。
【００４０】
上記のキャニスタモデルは、図３に示したように吸着量演算部Ｂ２１、基準脱離量演算部Ｂ２２、パージ流量相当脱離量演算部Ｂ２３、活性炭温度演算部Ｂ２４からなっており、サンプリング周期Δｔ毎に各演算を行っている。
【００４１】
吸着量演算部Ｂ２１では、次の式によりキャニスタ２４に吸着されている燃料量の今回値Ｙを演算する。
【００４２】
［吸着量演算式］
Ｙ＝Ｙｚ−Ｄｇｚ…（１）
ただし、Ｙ　　：吸着量の今回値、
Ｙｚ　：吸着量の前回値、
Ｄｇｚ：脱離量の前回値、
この吸着量演算式は、吸着量（吸着燃料量）の前回値Ｙｚから前回脱離した燃料量であるＤｇｚを差し引いて現在（今回）の吸着量Ｙ［ｇ］を演算するものである。
【００４３】
基準脱離量演算部Ｂ２２では次の式により基準パージ流量時の脱離量Ｄｇｋ［ｇ］を演算する。
【００４４】
［基準パージ流量での脱離量演算式］
Ｄｇｋ＝（Ｙ／Ａ）＾ｎ（Ｔ）…（２）
ただし、Ｙ　　　：吸着量、
Ａ　　　：脱離定数、
ｎ（Ｔ）：脱離指数、
Ｔ　　　：活性炭温度、
この式は吸着脱離現象（フロイントリッヒ（Ｆｒｅｕｎｄｌｉｃｈの式）の考え方をキャニスタ２４からの燃料脱離現象に応用したものであり、これによってキャニスタ２４からの燃料脱離特性をほぼ正確に表現することができる。なお、フロイントリッヒの式に関しては「表面における理論ＩＩ」（丸善、塚田著）のｐ．２５〜ｐ．２７、ｐ．１０８〜ｐ．１１５に記載がある。
【００４５】
パージ流量相当脱離量演算部Ｂ２３では次式より脱離量Ｄｇ［ｇ］を演算する。
【００４６】
［パージ流量に応じた脱離量演算式］
Ｄｇ＝Ｋ×ＰＱ×Ｄｇｋ…（３）
ただし、Ｋ　　：定数、
ＰＱ　：パージ流量（＝目標パージ率×吸入空気流量）、
Ｄｇｋ：基準流量時脱離量、
このパージ流量ＰＱに応じた脱離量演算式は、パージ流量ＰＱと脱離量とがほぼ比例することから、直線近似により脱離量を演算するものである。なお、ここでは（２）式によって基準流量時の脱離量Ｄｇｋを求め、（３）式でこれにパージ流量ＰＱを乗算することによって脱離量Ｄｇを演算しているが、（２）式、（３）式を一つの式にまとめてもよい。
【００４７】
活性炭温度演算部Ｂ２４では次式により活性炭温度Ｔ［Ｋ］を演算する。
【００４８】
［活性炭温度演算式］
Ｔ＝Ｔｚ−Ｋｔ１×（Ｙｚ２−Ｙｚ）＋Ｋｔ２×（Ｔｚ−Ｔａ）…（４）
ただし、Ｔ　　：活性炭温度の今回値、
Ｔｚ　：活性炭温度の前回値、
Ｋｔ１：吸熱分係数、
Ｙｚ２：吸着量の前々回値、
Ｙｚ　：吸着量の前回値、
Ｋｔ２：熱伝達分係数、
Ｔａ　：キャニスタ雰囲気温度、
この活性炭温度演算式は、過去の温度（右辺第１項）と、脱離量（Ｙｚ２−Ｙｚ）に比例する温度低下分（右辺第２項）と、熱伝達による温度上昇分（右辺第３項）とで構成されている。このように活性炭温度Ｔを演算するのは、（２）式中の脱離指数ｎ（Ｔ）が活性炭温度Ｔの影響を受け、特に脱離量が多いときには活性炭温度Ｔの降下量が大きく、これがキャニスタ２４における燃料の脱離特性に与える影響を無視することができないからである。
【００４９】
したがって、キャニスタモデルは上記（１）式から（４）式の４つの式で、また（２）式と（３）式とをまとめた場合には３つの式で構成されることになる。
【００５０】
図２に戻り、このようにキャニスタモデルはキャニスタの脱離特性を高い精度で表現するものであるが、あくまで近似モデルであるため、これを用いて演算される値（脱離量、吸着量等）は実際の値から幾らかずれた値となる。また、キャニスタモデルは上記（１）式に示したように前回の演算結果を用いる漸化式であるので、モデル動作時間が長くなるにつれて誤差が積分されて演算値と実際値とのずれが拡大する。
【００５１】
そこで、このずれを較正しキャニスタモデルの演算精度を高く維持するため、較正タイミング判定部Ｂ１１が較正処理実行可能タイミングであると判定すると、較正処理部Ｂ１２がキャニスタモデルの内部変数の一つであるキャニスタ４の吸着量の値を較正する。具体的には、図３１に示したように、較正タイミング判定部Ｂ１１では、空燃比フィードバック制御中の空燃比フィードバック補正係数αの中心値（１００％）からの偏差がほぼ全てパージによるものとみなすことができる条件が成立したときに較正処理実行可能タイミングであると判定してスイッチＢ１３をＯＮにし、データサンプリング部Ｂ３２ではそのタイミング（パージ処理中）での空燃比フィードバック補正係数α、パージ分補正係数ＦＨＯＳ、目標パージ率ＭＰＲ、吸入空気質量Ｑｇを読み込み、これらパージ実行中のデータに基づいて脱離量演算部Ｂ３３がキャニスタ２４からの燃料の脱離量を推定し、吸着量演算部Ｂ３４が推定された脱離量から吸着量を逆算する。そして、較正部Ｂ３５がこの値でキャニスタモデルが持っている吸着量の値の較正を行う。
【００５２】
一方、空燃比学習制御部Ｂ１６（図２参照）を備えていながら、何らかの原因でエンジン始動直後にベース空燃比エラーが露わになっている場合において、較正タイミングになったからといってこのときも先願装置と同様に、パージ実行中のデータに基づく較正処理（この較正処理を以下「パッシブ較正処理」という。）を行うと、ベース空燃比エラーによって空燃比フィードバック補正係数αが変化した分もそっくりパージによるものとして較正処理が行われてしまうので、本実施形態ではブロックＢ３２〜Ｂ３５からなるパッシブ較正処理部Ｂ３１とは別に、パージカット前後のデータに基づく較正処理（この較正処理を以下「アクティブ較正処理」という。）を行うアクティブ較正処理部Ｂ４１を追加して設けている。
【００５３】
ここで、アクティブ較正処理部Ｂ４１は、パージカット前データサンプリング部Ｂ４２、パージカット時データサンプリング部Ｂ４３、脱離量演算部Ｂ４４、吸着量演算部Ｂ４５、較正部Ｂ４６からなり、アクティブ較正処理部Ｂ４１を働かせるために、ベース空燃比エラー判定部Ｂ３６、アクティブ較正要求部Ｂ３７、ＡＮＤ回路Ｂ３８、パージ率低下処理部Ｂ３９、切換スイッチＢ４０、Ｂ４７を設けている。
【００５４】
すなわち、ベース空燃比エラー判定部３６では空燃比フィードバック補正係数αと第２リミッタ±ＬＭＴ２とに基づいてベース空燃比エラーがあるか否かを判定し、ベース空燃比エラーがあると判定したときにはアクティブ較正要求部Ｂ３７がハイレベルの信号をＡＮＤ回路Ｂ３８に出力する。ＡＮＤ回路Ｂ３８では、アクティブ較正要求部Ｂ３７からの信号がハイレベルにありかつ較正タイミング判定部からの信号がハイレベルとなったときだけ２つの切換スイッチＢ４０、Ｂ４７を図示の状態から反対側へと切換える。
【００５５】
パージ率低下処理部３９は、切換スイッチＢ４０の切換直前での目標パージ率ＭＰＲを初期値として所定時間当たり所定値ずつ小さくして最終的に目標パージ率をゼロにする処理を行うものであり、このようにして低下していく目標パージ率が、切換スイッチＢ４０の切換後には切換スイッチＢ４０を介し切換スイッチ１５へと出力される。
【００５６】
パージ率低下処理部３９によるパージ率低下処理に際しては、パージ率低下処理の開始時にパージカット前データサンプリング部Ｂ４２がそのときの空燃比フィードバック補正係数α、空燃比学習値αｍ、パージ分補正係数ＦＨＯＳ、目標パージ率ＭＰＲ、吸入空気質量Ｑｇをパージカット前のデータとしてサンプリングする。また、パージ率低下処理により目標パージ率ＭＰＲがゼロになったときにはパージカット時データサンプリング部Ｂ４３がそのときのαとαｍをパージカット時のデータとしてサンプリングする。
【００５７】
脱離部演算部Ｂ４４ではこれらパージカット前後のデータを用いてキャニスタ２４からの燃料の脱離量を推定し、吸着量演算部Ｂ４５では推定された脱離量から吸着量を逆算する。そして、切換スイッチＢ４７の切換後には較正部Ｂ４６が切換スイッチＢ４７を介し、この逆算された値でキャニスタモデルが持っている吸着量の値の較正を行う。
【００５８】
以下、エンジンコントローラ１１が行うパージ処理及び空燃比制御の具体的内容を以下、フローチャートに従って説明する。
【００５９】
図４はパージ分補正係数を演算するためのもので、一定時間毎（例えば１０ｍｓｅｃ毎）に実行する。
【００６０】
ステップ１ではパージ許可条件にあるか否かを判定する。パージ許可条件になければステップ２に進んでパージ分補正係数ＦＨＯＳ＝１．０として今回の処理を終了する。なお、このステップ１は省略し、始動直後にステップ３の判定を実行するようにしてもかまわない。
【００６１】
パージ許可条件にあるときにはステップ３に進みキャニスタモデルの内部変数である吸着量の較正処理が実行可能なタイミングであるか否かを判定する。パージ以外の要因による外乱が小さく、かつパージによる空燃比フィードバック補正係数αへの影響が比較的大きい場合、すなわち空燃比フィードバック補正係数αの中心値からの偏差がほぼ全てパージによる影響とみなすことができる場合に較正処理実行可能タイミングであると判断する。
【００６２】
具体的には、図５に示す、「定常条件」、「パージバルブ精度条件」、「パージ影響度条件」全てが成立した場合に較正処理実行可能タイミングであると判断し、これらの条件のうち一つでも成立していないと較正処理実行不可と判断する。この判定処理は図２中の較正タイミング判定部Ｂ１１における処理に対応する。
【００６３】
図５に示すように、「定常条件」としては、失火条件（エンジンが失火を起こしていないこと）、燃料カット条件（燃料カットを行っていないこと）、ブローバイ条件（ブローバイガスがないこと）、ＥＧＲ条件（排気還流率が一定であること）、吸気絞り弁開口面積及びエンジン回転速度条件（吸気絞り弁開口面積、エンジン回転速度が一定であること）、パージ率条件（パージ率が一定であること）といった条件を設定している。そして、これらの条件が全て成立し、パージ以外の外乱が小さいと判断した場合に定常条件が成立したと判断する。
【００６４】
また、「パージバルブ精度条件」としてはパージ流量条件（パージ流量が所定量以上であること）を設定している。パージ流量が少ないときはパージ流量の制御精度が落ち、後述する較正処理における演算精度が落ちることから、パージ流量が所定量よりも小さい場合にはパージバルブ精度条件が不成立であると判断する。
【００６５】
また、「パージ影響度条件」としては、パージ成立条件（パージを行っていること）、パージ濃度条件（パージガスの濃度が所定濃度より濃い、例えば、パージ率１％当たりのα変化量が１％以上）、パージ率条件（パージ率が所定値以上、例えば、パージ率が３０％以上）を設定している。これらの条件がすべて成立し、パージによる空燃比への影響が比較的大きいと判断した場合にパージ影響度条件が成立したと判断する。
【００６６】
このようにしてステップ１で較正処理実行可能タイミングであると判断すれば、ステップ４に進んで較正処理を実行する。この較正処理を図６のフローにより説明すると、較正処理は、空燃比フィードバック補正係数αの変化よりキャニスタ２４から脱離した燃料量を推定し、さらに推定した脱離量から逆演算によってキャニスタ２４に吸着していた燃料量を演算し、キャニスタモデルの内部変数である吸着量の値をこの逆演算によって求めた吸着量の値に較正するもので、この較正処理は、図３１中のパッシブ較正処理部Ｂ３１における処理に対応する。
【００６７】
なお、ステップ１１１〜１１９の処理は本願発明により追加した部分であるため、後述する。
【００６８】
ステップ３１ではパージ実行中かどうかを判定する。このようにパージ実行中かどうかを判定するのは、後に続くステップ３２〜３５における演算処理がパージ実行中であることを前提としているので、パージ非実行時にこれらの処理を行ってしまうと正しい較正ができなくなるからである。したがって、パージ実行中でないときには本ルーチンを終了し較正処理は行わない。
【００６９】
パージ実行中であると判定したときにはステップ３２へと進み、吸入空気流量Ｑと吸気温度等から求まる吸入空気質量Ｑｇ［ｇ］、目標パージ率ＭＰＲ、パージ分補正係数ＦＨＯＳ、空燃比フィードバック補正係数αを読み込む。
【００７０】
ステップ３３ではこのうち空燃比フィードバック補正係数αとパージ分補正係数ＦＨＯＳ（パージ実行中のデータ）を用いて
ＤＬＴ＝α×ＦＨＯＳ…（５ａ）
の式により全空燃比補正係数ＤＬＴを算出し、この全空燃比補正係数ＤＬＴと目標パージ率ＭＰＲ、吸入空気質量Ｑｇからステップ３４において、
Ｄｇ＝Ｋ１×（１−ＤＬＴ＋Ｋ２×ＭＰＲ）×Ｑｇ…（５ｂ）
ただし、Ｄｇ　：脱離量、
ＤＬＴ：全空燃比補正係数、
ＭＰＲ：目標パージ率、
Ｋ１　：係数（脱離燃料の性質により決まる定数）、
Ｋ２　：係数（空気の性質により決まる定数）、
Ｑｇ　：吸入空気重量、
の式により脱離量Ｄｇ［ｇ］を演算する。
【００７１】
この（５ｂ）式は、１．０（中心値）からの全空燃比補正係数の偏差（右辺第１項及び第２項）、そのときの目標パージ率ＭＰＲ（右辺第３項）及び吸入空気質量Ｑｇより、キャニスタ４から脱離する燃料量Ｄｇを演算する式である。すなわち、空燃比フィードバック補正係数αとパージ分補正係数ＦＨＯＳとはいずれも１．０を中心値とする値であり、これらαとＦＨＯＳを掛け合わせた値である全空燃比補正係数ＤＬＴの中心値（１．０）からのずれをすべてパージによるものとみなして脱離量を推定している。
【００７２】
そして、ステップ３５では、ステップ３４で演算した脱離量Ｄｇから、
Ｙｒ＝ＫＤ×Ｄｇ＾（１／ｎ（Ｔ））…（６）
ただし、ｎ（Ｔ）：脱離指数、
ＫＤ　　：脱離係数、
Ｔ　　　：活性炭温度、
の式により、キャニスタ２４の吸着量Ｙｒ（質量）を演算する。（６）式は前述のキャニスタモデルを構成する式の一つである（２）式の逆演算である。
【００７３】
ステップ３６では、キャニスタモデルに基づき脱離量Ｄｇを演算する際に使用する吸着量Ｙを、ステップ３５で演算した吸着量Ｙｒに置き換える。これにより、キャニスタモデルで用いる吸着量の値を正しい値に較正することができ、以後の脱離量Ｄｇの演算精度を向上させることできる。
【００７４】
このようにして較正処理（第２較正処理）を終了したら図４に戻り、ステップ６ではキャニスタモデルを用いてキャニスタ４からの脱離量Ｄｇを演算する。この脱離量Ｄｇの演算については図７のフローにより説明する。この処理は図２の脱離量演算部Ｂ４における処理に相当する。
【００７５】
ステップ４１では、上記（１）式によりキャニスタに吸着されている燃料量の今回値Ｙを演算する。ただし、図６に示した較正処理を実行した場合は、（１）式の演算は行わず、あるいは（１）式で演算した値は無視し、以後の演算では上記較正処理によって演算した吸着量Ｙｒを吸着量Ｙとして用いる。
【００７６】
ステップ４２では吸着量Ｙから上記（２）式により基準パージ流量時の脱離量Ｄｇｋを演算し、ステップ４３ではこの基準脱離量Ｄｇｋとパージ流量ＰＱとから上記（３）式により脱離量Ｄｇを演算する。ステップ４４ではこの脱離量Ｄｇから上記（４）式により活性炭温度Ｔを演算する。
【００７７】
このようにして脱離量Ｄｇ及び活性炭温度Ｔの演算を終了したら図４に戻り、ステップ７では脱離量Ｄｇ、吸入空気質量Ｑｇのほか目標パージ率に基づいてパージ分補正係数ＦＨＯＳを演算する。演算したパージ分補正係数ＦＨＯＳはエンジンコントローラ１１内の所定のデータ格納場所（図１１参照）に順次格納する。
【００７８】
キャニスタモデルにより算出した脱離量Ｄｇがエンジンに供給されることにより空燃比フィードバック補正係数αの変化を予測することができるが、この予測されるαがパージ分補正係数ＦＨＯＳである。従って、ＦＨＯＳはαと同じ単位であり、ＦＨＯＳの中心値もαと同じ１．０（＝１００％）である。例えば、キャニスタ２４からの脱離量Ｄｇ多くなってあるいは目標パージ率が大きくなってエンジンに供給される燃料量が多くなると、排気の空燃比は理論空燃比よりリッチ側にシフトし、これを元に戻そうと空燃比フィードバック補正係数αは１００％より小さくなる側に変化すると予想されることから、これに対応してパージ分補正係数ＦＨＯＳは１００％より小さくなる側に変化する。また、脱離量Ｄｇと目標パージ率が同じでも吸入空気質量Ｑｇが大きくなると、排気の空燃比は理論空燃比よりリーン側にシフトし、これを元に戻そうと空燃比フィードバック補正係数αは大きくなる側に変化すると予想されることから、これに対応してパージ分補正係数ＦＨＯＳは大きくなる側に変化する。
【００７９】
ステップ８ではパージ分補正係数ＦＨＯＳに対して無駄時間補正及びなまし処理で構成される遅れ補正を施す。無駄時間補正を行うのは、パージバルブ２７が開かれてからパージガスがエンジンのシリンダに到達するまでにパージガスの移行速度及びパージバルブ２７とエンジンのシリンダ間の距離に応じた遅れがあるからであり、また、なまし処理を行うのはキャニスタ２４から脱離した燃料がエンジンのシリンダに到達するまでに燃料の拡散があるからである。
【００８０】
この遅れ補正を図８のフローにより説明すると、遅れ補正は図２中の遅れ補正部Ｂ６における処理に対応する。
【００８１】
ステップ５１ではエアフローメータ１３の出力から吸入空気流量を演算し、ステップ５２、５３ではそれぞれ図９、図１０を内容とするテーブルを検索することにより無駄時間及びなまし係数を求める。吸入空気流量が多くなるほど吸気流速は速くなるので無駄時間に吸入空気流量が多くなるほど小さくなる値を、また、吸入空気流量が多くなって吸気流速が速くなると、脱離した燃料が拡散する速度も速くなることからなまし係数に吸入空気流量が多くなるほど大きくなる値を設定している。
【００８２】
ステップ５４では無駄時間からパージガスの移動速度相当値を演算する。このパージガス移動速度相当値はステップ２２で求めた無駄時間の逆数として演算する。
【００８３】
ステップ５５では、パージバルブ２７とエンジンのシリンダの間の距離に相当するエンジンコントローラ１１内のデータ格納場所（図１１参照）に格納されているパージ分補正係数ＦＨＯＳを読み込み、ステップ５６で前記パージガスの移動速度相当値分だけデータをシリンダ側にシフトする。ステップ５７ではデータのシフトにより上記データ格納場所からオーバーフローしたデータの平均値を求める。
【００８４】
ステップ５８では、ステップ５７で求めたオーバーフローデータの平均値に対して、ステップ５２で求めたなまし係数を用いてなまし処理を施し、なまし処理後の値を改めてパージ分補正係数ＦＨＯＳとする。なお、なまし処理は一般的な一次遅れ系によるなまし処理であり、なまし係数が小さくなるほどなましの度合いが大きくなる。
【００８５】
図１１は遅れ補正における無駄時間補正の概要を示した図であり、図中黒丸、白丸はそれぞれ上記データシフト前のデータ、データシフト後のデータを示す。
【００８６】
これに示すように、エンジンコントローラ１１のメモリにはパージバルブ２７からエンジンのシリンダ間の距離に相当するデータ格納場所が用意されており、キャニスタ２４から脱離する燃料量に応じて演算されるパージ分補正係数ＦＨＯＳが順次格納場所に格納される。上記無駄時間補正では、これらのデータがパージガスの移行速度相当分（無駄時間の逆数）だけシリンダ側にシフトされ、このデータシフトによりデータ格納場所からオーバーフローした分がシリンダ内に到達、供給されたパージガスに対応する補正係数とされる。そして、このオーバーフローしたデータの平均値に対してなまし処理を施した値が、後述する燃料噴射パルス幅Ｔｉの補正に用いられる。このように、無駄時間補正となまし処理を組み合わせることによりパージガスの到達遅れを正確に補正できる。
【００８７】
このようにして遅れ補正を終了したら図４に戻り、これで較正実行可能タイミングでの処理を終了する。
【００８８】
一方、ステップ３で較正処理実行不可と判断した場合にはステップ５に進み、過去に較正処理を実行したことがあるか否かを判定する。このような判定を行うのは、較正処理を一度も行ったことがない場合にキャニスタモデルを動作させるのに必要な初期値（初期吸着量）がまだ存在しないので、そのような場合にはキャニスタモデルに基づくパージ処理を行わないようにするためである。判定の結果、過去に較正処理を一度でも行っていればステップ６〜８の操作を実行し、これに対して一度も較正処理を行っていない場合にはステップ２の操作を行ったあと本ルーチンを終了する。
【００８９】
なお、一度も較正処理を行っていない場合にパージが行われないというわけでなく、後述するキャニスタモデルを用いないパージ処理（図１６、ブートアップ制御）によってパージ処理を実行する。
【００９０】
このようにして演算されたパージ分補正係数ＦＨＯＳを用い、図示しない燃料噴射パルス幅Ｔｉの演算ルーチンにおいて、
2004060483.tif 000003
ただし、Ｔｐ：基本噴射パルス幅［ｍｓｅｃ］、
Ｔｆｂｙａ：目標当量比［無名数］、
Ｋａｔｈｏｓ：過渡補正量［ｍｓｅｃ］、
ＦＨＯＳ：パージ分補正係数（遅れなまし処理後の値）、
α：空燃比フィードバック補正係数、
αｍ：空燃比学習値、
Ｔｓ：無効パルス幅［ｍｓｅｃ］、
の式により燃料噴射弁４に与える燃料噴射パルス幅Ｔｉ［ｍｓｅｃ］を演算する。この演算は図２中の基本噴射パルス幅演算部Ｂ７、空燃比フィードバック補正係数演算部８、燃料噴射パルス幅演算部Ｂ９、空燃比学習制御部Ｂ１６における処理に対応する。
【００９１】
ここで、パージ分補正係数ＦＨＯＳで過渡補正量Ｋａｔｈｏｓを除いた部分（Ｔｐ×Ｔｆｂｙａ）を補正することにしているのは、パージにより供給される燃料は気体燃料であるため壁流補正を行う必要がないためである。
【００９２】
基本噴射パルス幅Ｔｐはほぼ理論空燃比の得られる噴射パルス幅で、吸入空気流量Ｑとエンジン回転速度Ｎから求めている。
【００９３】
目標当量比Ｔｆｂｙａは１．０を中心とする値で、冷却水温が低いときやエンジン始動直後には１．０より大きな値となる。エンジンの暖機完了後はＴｆｂｙａ＝１．０である。
【００９４】
空燃比フィードバック補正係数αは排気空燃比が理論空燃比を中心とするいわゆるウィンドウに収まるように空燃比センサ１５の出力に基づいて演算される値である。具体的には１００％を中心とする値で、定常偏差（ベース空燃比エラー）がないとした場合、検出された空燃比が理論空燃比よりもリッチ側にあるとき１００％よりも小さな値に、検出された空燃比が理論空燃比よりもリーン側にあるときに１００％よりも大きな値になる。
【００９５】
空燃比学習値αｍは空燃比フィードバック補正係数αに基づいて演算される値で、主に定常偏差を補償するために導入されている。
【００９６】
燃料噴射弁４から噴射された燃料の一部は吸気ポート壁や吸気弁傘裏部に壁流燃料を形成し、この壁流燃料は加速や減速といった過渡時に大きな応答遅れを有してシリンダに流入する。過渡補正量Ｋａｔｈｏｓはこの過渡時の壁流燃料の応答遅れ分を補償するための値である。
【００９７】
無効パルス幅Ｔｓは、燃料噴射弁４が所定のタイミングで噴射信号を受けてから実際に開弁するまでの作動遅れを補償するための値である。
【００９８】
また、（７）式はシーケンシャル噴射（４気筒ではエンジン２回転毎に１回、各気筒の点火順序に合わせて噴射）の場合の式であるため、数字の２が入っている。
【００９９】
図１２、図１３は目標パージ率ＭＰＲを設定するためのもので、一定時間毎（例えば１０ｍｓｅｃ毎）に実行する。この演算は図２中の目標パージ率設定部Ｂ１における処理に対応する。
【０１００】
ステップ６１では初回の較正処理後であるか否かを判定する。これは初回の較正処理の前後で目標パージ率の設定方法が異なるためである。初回の較正処理前であるときにはそのまま今回の処理を終了する。なお、初回の較正処理前の目標パージ率の設定については、後述するブートアップ制御のところで説明する。
【０１０１】
初回の較正処理後であるときにはステップ６２に進み、キャニスタモデルに基づき演算された脱離量Ｄｇ（図４ステップ６により演算されている）とパージ流量ＰＱとに基づきパージガスの空燃比（パージ空燃比）を演算する。ここで、パージ流量ＰＱは目標パージ率と吸入空気流量Ｑとの積であり、この場合の目標パージ率には前回値を用いる。
【０１０２】
このパージ空燃比に対しては次のような補正を施してもかまわない。すなわち、運転状態、例えばエンジン回転速度、エンジン負荷、吸入空気流量などのパラメータから、パージ空燃比の誤差を推定する。例えば、図１４を内容とするテーブルを検索することにより求める。図示のように吸入空気流量が少なくなるほど、またパージ率が小さくなるほどパージ空燃比誤差は大きくなる値である。あるいは、パージ空燃比誤差を、図１５に示すようにパージ空燃比とパージ空燃比誤差の関係を規定したテーブルを検索することにより求めるようにしてもよい。パージ空燃比誤差が求まったら、ステップ６２で求めたパージ空燃比をこの誤差に基づいて補正する。
【０１０３】
なお、パージ空燃比はＨＣセンサによって検出するようにしてもよいが、キャニスタモデルに基づき演算される脱離量等に基づき演算によって求めればパージ空燃比を安価かつ正確に演算することができる。
【０１０４】
ステップ６３ではこのようにして求めた（あるいは誤差補正後の）パージ空燃比に基づきパージ率変化量制限値を演算する。パージ率が変化すると排気空燃比が変化するが、このときの理論空燃比からの空燃比偏差が許容幅以内に収まるようにパージ率変化量制限値を演算する。理論空燃比からの空燃比偏差の許容幅は空燃比フィードバック制御により吸収可能な、排気エミッションを悪化させない幅に設定する。
【０１０５】
ステップ６４では、パージバルブ２７のサイズから規定されるパージ率上限値ＰＶＭＸを演算する。このようなパージ率上限値ＰＶＭＸを求めるのは、目標パージ率がパージバルブ２７を最大開度として得られるパージ率よりも大きな値に設定されてしまうと、パージ率と目標パージ率との不一致が生じ、ＦＨＯＳの演算の誤差が大きくなるため、理論空燃比からの空燃比偏差が増加する。これにより、排気エミッション悪化等の問題が生じるからである。具体的には、パージバルブ２７のサイズが一定の場合、パージバルブ２７の前後差圧が大きいほど流せるパージガスの流量も多くなることから、パージバルブ２７の前後差圧が大きいときにパージ率上限値ＰＶＭＸとして大きな値を演算する。
【０１０６】
ステップ６５では、燃料噴射弁４の性能に応じて決まる最小噴射パルス幅、目標パージ率の前回値、パージ分補正係数との関係から燃料噴射弁４の性能に基づくパージ率上限値ＴＩＭＮＭＸを演算する。パージ率が高くなるとパージによってエンジンに供給される燃料量が増加するので、燃料噴射弁４からの燃料噴射量がその分だけ減らされるように燃料噴射パルス幅を補正するが、燃料噴射弁４の噴射精度を確保するためには噴射パルス幅は所定の最小パルス幅よりも大きくなくてはならない。言い換えれば、燃料噴射パルス幅を最小パルス幅より大きくするためにはパージ率はある値よりも小さくしなくてはならない。このような理由から、燃料噴射弁４の噴射性能によってもパージ率の上限を規定する。
【０１０７】
また、ステップ６６では、現在の運転領域から想定しうる全ての運転領域を想定し、その中での最小パージ率を予測し、この最小パージ率とパージ率変化量制限値とからパージ率上限値ＰＲＭＮＭＸを演算する。例えば、アクセルペダルをあるだけ踏み込んでで加速した場合に目標パージ率はごく小さな値に設定するが、このアクセルペダルをあるだけ踏み込む直前に目標パージ率が大きな値に設定していると、パージ率の変化量が変化量制限値以下に制限されていることからパージ率を目標パージ率に追従させることができなくなる。この追従遅れは排気エミッション増大の原因等となることから、こうした追従遅れを生じないように想定しうる最小パージ率からもパージ率の上限を規定する必要がある。
【０１０８】
また、ステップ６７では、空燃比フィードバック補正係数αをモニターし、所定値以下であれば空燃比フィードバック補正係数αを所定値以上とするパージ率のうち最も大きな値をパージ率上限値ＡＬＰＭＸとして演算する。このような上限値ＡＬＰＭＸを設けるのは、空燃比フィードバック制御では空燃比フィードバック補正係数αは１００±２５％に収まるように制御されているが、空燃比フィードバック補正係数αが前記制限値近傍（例えば８０％）で制御されているような場合は、大量のパージを行っているとパージ以外の外乱を受けて前記制御範囲から外れやすくなるからである。
【０１０９】
ステップ６８では上記４つの上限値ＰＶＭＸ、ＴＩＭＮＭＸ、ＰＲＭＮＭＸ、ＡＬＰＭＸから最も小さい値を選択し、その値を最大パージ率ＰＲＭＡＸとして設定する。
【０１１０】
ステップ６９、７０では目標パージ率の前回値と最大パージ率ＰＲＭＡＸとを比較し、目標パージ率の前回値と最大パージ率ＰＲＭＡＸとが等しいときにはステップ６９よりステップ７３に進んで目標パージ率を前回値のままとし、目標パージ率の前回値が最大パージ率ＰＲＭＡＸよりも大きいときにはステップ６９、７０よりステップ７２に進んで目標パージ率をその前回値からパージ率変化量制限値を引いた値とし、目標パージ率の前回値が最大パージ率ＰＲＭＡＸよりも小さいときにはステップ６９、７０よりステップ７１に進んで目標パージ率をその前回値にパージ率変化量制限値を加えた値とする。
【０１１１】
図１３のステップ７４〜８１の処理については本願発明により追加した部分であり、後述する。
【０１１２】
このようにして、目標パージ率は、最大パージ率ＰＲＭＡＸを目標としてパージ率変化量制限値の範囲内でこれに追従するように設定され、排気エミッションを悪化させずに大量のパージを行う上で最良のパージ率が設定される。また、最大パージ率ＰＲＭＡＸを設定する際に、物理的な制限、現在の運転領域等で決まる上限値ＰＶＭＸ、ＴＩＭＮＭＸ、ＡＬＰＭＸだけでなく、運転領域が変化した場合でも遅れなくその領域での最大パージ率に移行できるように決定される上限値ＰＲＭＮＭＸをも考慮しているので、運転条件が変化しても排気エミッションを悪化させずに大量パージを行う上で最良のパージ率を設定することができる。
【０１１３】
このようにして設定された目標パージ率はパージバルブへのデューティ比に変換され、パージバルブ２７に出力される。
【０１１４】
ところで、キャニスタモデルに基づくパージ処理（モデル規範パージ処理）は、エンジン始動後に較正処理が一度も行われておらずキャニスタモデルで用いる初期値（初期吸着量）が存在しない間は、実行することができない。しかし、エンジン始動後より大量パージを実現するためには、たとえ較正処理前であってもパージ処理を実行する必要がある。そこで初回の較正処理が実行されるまでは、キャニスタモデルに基づくパージ処理に代えて次に示す制御（図１６に示すブートアップ制御）により目標パージ率を設定し、設定された目標パージ率でパージ処理を実行する。なお、このブートアップ制御では、パージによる排気空燃比への影響は空燃比フィードバック補正係数αによって吸収し、燃料噴射パルス幅の補正は行わない（ＦＨＯＳ＝１．０）。
【０１１５】
図１６はブートアップ制御を行うためのもので、一定時間毎（例えば１０ｍｓｅｃ毎）に実行する。このブートアップ制御は図２中のブートアップ制御部Ｂ１４、切換スイッチＢ１５における処理に対応する。
【０１１６】
ステップ９１で吸入空気流量Ｑを読み込み、ステップ９２で初回の較正処理前であるか否かを判定する。初回の較正処理前である場合には、ステップ９３で積算パージ流量（パージを開始してからの総パージ流量）ＳＱＰとパージ配管容積（キャニスタ２４からパージバルブ２７までの配管の容積）を比較する。積算パージ流量ＳＱＰがパージ配管容積を超えているときにはステップ９４に進み、これに対して超えていないときにはステップ９７に進む。
【０１１７】
ステップ９７では目標パージ率ＭＰＲとして初期パージ率（１％以下の小さな値）を設定する。このような小さな値に設定するのは、積算パージ流量ＳＱＰがパージ配管容積に達してない場合はパージ開始前にパージ配管内のガスがエンジンに供給されることになるが、このパージ配管内のガスの空燃比が不明であり、このままステップ９４〜９６に示す目標パージ率設定処理を行うとエンジンの燃焼安定性悪化等の問題を生じるからである。
【０１１８】
つまり、パージ開始時にパージ配管中に存在する低濃度のパージガスが供給され、これによる理論空燃比からの空燃比偏差が小さいと、さらに大量のパージが可能であると判断されて大きな目標パージ率ＭＰＲが設定されるが、このようにして大きな目標パージ率ＭＰＲが設定されてしまうと、配管内の低濃度のガスが全て供給されて本来の高濃度のパージガスが供給されるときに大量の脱離燃料が突然供給されることになり、エンジンの燃焼安定性等を悪化させる原因となるからである。
【０１１９】
積算パージ流量ＳＱＰが配管容積を超えたらステップ９４に進み実空燃比フィードバック偏差と目標空燃比フィードバック偏差との差を演算する。
【０１２０】
ここで、目標空燃比フィードバック偏差とは、空燃比フィードバック補正係数の目標値ｔαと空燃比フィードバック補正係数の中心値（１００％）との偏差（＝｜ｔα−１００｜％）をいい、実空燃比フィードバック偏差とは実際の空燃比フィードバック補正係数αと空燃比フィードバック補正係数の中心値との偏差（＝｜α−１００｜％）をいう。例えば、パージによる理論空燃比からの空燃比偏差を空燃比フィードバック制御で十分吸収できる範囲内で大量のパージ流量を確保することを目的として空燃比フィードバック補正係数αの目標値ｔαが８０％に設定されると、目標空燃比フィードバック偏差は｜８０−１００｜＝２０％に設定される。
【０１２１】
ステップ９５では図１７を内容とするテーブルを検索することにより上記目標空燃比フィードバック偏差と実空燃比フィードバック偏差との差に応じたパージ率変化量を算出する。パージ率変化量は、目標空燃比フィードバック偏差と実空燃比フィードバック偏差の差の絶対値が大きくなるほど大きな値を設定して、目標値への収束性を高めるのであるが、目標空燃比フィードバック偏差と実空燃比フィードバック偏差の差の正負によって、偏差の絶対値が同じであっても異なる値を設定し、空燃比フィードバック偏差の差が負側にずれた場合の方が大きな値（絶対値）をパージ率変化量に設定する。
【０１２２】
このようにパージ率変化量を空燃比フィードバック偏差の正負で異なる特性とするのは、空燃比フィードバック偏差の差が負側にずれている場合には空燃比フィードバック補正係数αが目標とする８０％よりも小さな値になっており、逆の正側にずれている場合と比べてパージ以外の外乱によってエンジン安定性、排気エミッションの悪化を招きやすく、不利な状態あるといえるからである。つまり、パージ率変化量を空燃比フィードバック偏差の差の正負に応じて特性を変えるのは、エンジンの燃焼安定性及び排気エミッション悪化防止の観点から、制御点を速やかに安全側に復帰させるためである。
【０１２３】
以上のようにしてパージ率変化量を演算したらステップ９６に進み、本ルーチン前回実行時に求めた目標パージ率に対して、ステップ９５で演算したパージ率変化量を付加し、新たな目標パージ率ＭＰＲを演算する。
【０１２４】
ステップ９８ではこのようにして得た目標パージ率ＭＰＲと吸入空気流量Ｑからパージ流量ＰＱを求め、これをステップ９９において積算パージ流量の前回値であるＳＱＰｚに加算することにより積算パージ流量ＳＱＰを更新する。
【０１２５】
したがって、ステップ９４〜９６の処理によると、キャニスタ２４の吸着状態によらず、最適な目標パージ率ＭＰＲを設定することができ、また、想定以上の濃度のパージガスが供給された場合でも、それによる排気空燃比の変化を受けて目標パージ率ＭＰＲが適宜変更され、常に最適な目標パージ率ＭＰＲを設定することができる。
【０１２６】
一方、初回の較正処理後にはステップ９２よりステップ１００以降に進み、積算パージ流量ＳＱＰに基づいてパージ処理が終了したか否かを判定する。すなわち、ステップ１００でパージ終了判定フラグ（ゼロに初期設定）をみる。エンジン始動直後にはパージ終了判定フラグ＝０であるので、ステップ１０１に進み脱離量Ｄｇ（図４のステップ６で演算されている）と目標パージ率ＭＰＲ（図１２、図１３により演算されている）を読み込む。ステップ１０２では、この読み込んだ目標パージ率ＭＰＲと吸入空気流量Ｑとからパージ流量ＱＰを算出し、これをステップ１０３において積算パージ流量の前回値であるＳＱＰｚに加算することにより積算パージ流量ＳＱＰを更新する。
【０１２７】
ステップ１０４では初回の較正処理タイミングであるか否かを判定する。ここで、初回の較正処理タイミングはステップ９２で初回の較正処理前でなくなった初めてのタイミングであるので、このときだけステップ１０５に進み、ステップ１０２で演算されているパージ流量ＰＱとステップ１０１で読み込んでいる脱離量Ｄｇとに基づいてパージ空燃比を演算し、このパージ空燃比からステップ１０６において図１８を内容とするテーブルを検索することにより、パージ終了判定値ＳＬＳＱＰを演算する。
【０１２８】
ここで、パージ終了判定値ＳＬＳＱＰはキャニスタ２４からのパージガス中にほぼ脱離燃料がなくなったと思われる積算パージ流量である。図１８のように、この判定値ＳＬＳＱＰはパージ空燃比が大きくなるほど小さくなる。
【０１２９】
ステップ１０７ではこのパージ終了判定値ＳＬＳＱＰと積算パージ流量ＳＱＰとを比較する。積算パージ流量ＳＱＰがパージ終了判定値ＳＬＳＱＰ未満であればそのまま今回の処理を終了する。やがて積算パージ流量ＳＱＰがパージ終了判定値ＳＬＳＱＰ以上になればキャニスタ２４からのパージガス中にほぼ脱離燃料がなくなったと判断し、パージが終了したことを表すためステップ１０８に進んでパージ終了判定フラグ＝１とする。
【０１３０】
パージ終了判定フラグ＝１になると次回からはステップ９１、９２、１００と流れてもステップ１０１以降に進むことができないので、そのまま処理を終了する。
【０１３１】
次に、パージ処理を行うことによる本実施形態の全体的な作用について先に説明する。
【０１３２】
パージ処理時、目標パージ率ＭＰＲはエンジン燃焼安定性低下、排気エミッション増大を起こさない範囲でできる限り大きな値が設定され、この目標パージ率ＭＰＲが実現されるようにパージバルブ２７が開かれる（図１２ステップ６１〜７３）。
【０１３３】
パージ処理中はキャニスタ２４から脱離した燃料を含んだパージガスがエンジンに供給されることになるので、エンジンコントローラ１１ではキャニスタ２４から脱離してくる燃料量Ｄｇを推定し、この脱離量Ｄｇ、目標パージ率、吸入吸気質量Ｑｇに基づいて、パージ燃料によって生じる空燃比フィードバック補正係数αの変化を予測する値であるパージ分補正係数ＦＨＯＳを演算し（図４ステップ１、３、４、６、７、８またはステップ１、３、５、６、７、８）、このパージ分補正係数ＦＨＯＳにより基本噴射パルス幅Ｔｐを補正することで、パージによる理論空燃比からの空燃比偏差が小さなものに抑えられる。
【０１３４】
このときキャニスタ２４からの脱離量Ｄｇは、（１）式から（４）式で表されるキャニスタモデルを用いて推定され、脱離量Ｄｇは短時間でかつ正確に推定される。ここで、キャニスタモデルに基づき演算される脱離量Ｄｇ等は誤差を含んでおり、キャニスタモデルの動作時間が長くなるにつれこの誤差が積算され大きくなるので、エンジンコントローラ１１は空燃比フィードバック補正係数αの変化よりキャニスタ２４から脱離された燃料量を推定し、この推定した脱離量から逆演した吸着量Ｙｒでキャニスタモデルの内部変数である吸着量の値を較正する。この較正処理は、パージ以外の外乱が小さく空燃比フィードバック係数αの変化をほぼ全てパージによるものとみなすことができ、かつ、パージによる排気空燃比への影響が比較的大きいときに実行される。
【０１３５】
また、パージバルブ２７が開かれてから脱離燃料がエンジンのシリンダに到達するまでに遅れがあり、また到達するまでに燃料の拡散もあるので、この遅れとなまし作用を考慮して上記のパージ分補正係数ＦＨＯＳに対して遅れ補正が施されている。
【０１３６】
また、上記キャニスタモデルを用いたパージ処理（モデル規範パージ処理）は、較正処理によって吸着量の初期値が求まるまではその効果を発揮することができないが、キャニスタモデルの初期値が演算されるまでは目標空燃比フィードバック偏差と実空燃比フィードバック偏差との差に応じて目標パージ率が設定され、この目標パージ率が実現されるようにパージバルブ２７が開かれる。これにより、較正処理によって初期値が演算される前であってもパージ処理を行うことができ、全領域で効果的なパージを行うことができる。
【０１３７】
これで先願装置（特願２００１−７１５６２号参照）におけるパージ処理と同様の部分の説明を終了し、次には本願発明で追加した図６のステップ１１１〜１１９、図１３のステップ７４〜８１、図１９、図２０、図２１、図２３、図２４、図２６、図２７に示すフローチャートを説明する。
【０１３８】
まず目標パージ率を設定するためのフローチャートの後半部である図１３から説明する。この部分の処理は図３１中のＡＮＤ回路Ｂ３８、パージ率低下処理部Ｂ３９、切換スイッチＢ４０における処理に対応する。
【０１３９】
ステップ７４では目標パージ率を変数ＭＰＲ０に移す。
【０１４０】
ステップ７５では較正実行可能判定フラグ（ゼロに初期設定）をみる。前述の図５では「定常条件」、「パージバルブ精度条件」、「パージ影響度条件」全てが成立した場合に較正処理実行可能タイミングであると判断したが、較正実行可能判定フラグはこのタイミングで１となるフラグである。較正実行可能判定フラグ＝０であるときにはステップ７８に進みＭＰＲ０の値をそのまま目標パージ率ＭＰＲとして設定する。
【０１４１】
一方、較正実行可能判定フラグ＝１であるときにはステップ７６、７７に進みデータサンプリング終了フラグ、アクティブ較正要求フラグ（いずれもゼロに初期設定）をみる。後述するように、ベース空燃比エラーがあると判定されたときにアクティブ較正要求フラグ＝１となり、このアクティブ較正要求フラグの０から１への切換タイミングで、パージカット前のデータをサンプリングした後にパージ率低下処理を開始する。このパージ率低下処理はアクティブ較正要求フラグが０から１へと切換わる直前の目標パージ率を初期値として、目標パージ率をゼロになるまで所定時間当たり所定値ずつ低下させる処理であり、このパージ率低下処理により目標パージ率がゼロとなった状態（パージカット状態）で安定化時間を経過したとき、パージカット時のデータをサンプリングし、これでパージカット前後のデータのサンプリングを終了するので、データサンプリング終了フラグ＝１としている。
【０１４２】
このため、アクティブ較正要求フラグ＝１となる前にはデータサンプリング終了フラグ＝０であり、このときにはステップ７６。７７よりステップ７８に進み、またデータサンプリング終了フラグ＝１となったときにはステップ７６よりステップ７８に進みステップ７８の操作を実行する。
【０１４３】
これに対して、アクティブ較正要求フラグ＝１となってからデータサンプリング終了フラグ＝１となる直前までの間はステップ７９に進んでパージ率低下処理を行う。
【０１４４】
ここで、ステップ７７のアクティブ較正要求フラグの設定について図１９のフローより説明する。
【０１４５】
図１９はアクティブ較正要求フラグを設定するためのもので、一定時間毎（例えば１０ｍｓｅｃ毎）に実行する。
【０１４６】
ステップ１２１ではモデルパージ実行中であるかどうかみる。モデルパージ実行中とはキャニスタモデルの初回の較正処理が終了しておりかつパージを禁止していない状態のことである。モデルパージ実行中であればステップ１２２に進み、パージ用リミッタ判定フラグをみる。このパージ用リミッタ判定フラグにはパージ用下限リミッタ判定フラグとパージ用上限リミッタ判定フラグの２つがあり、これら２つのフラグの設定については図２０、図２１のフローより説明する。
【０１４７】
図２０はパージ用下限リミッタ判定フラグを、また図２１はパージ用上限リミッタ判定フラグを設定するためのもので、いずれも一定時間毎（例えば１０ｍｓｅｃ毎）に実行する。これら図２０、図２１の設定処理と図１９の設定処理とが、図３１中のベース空燃比エラー判定部Ｂ３６、アクティブ較正要求部Ｂ３７における処理に対応する。
【０１４８】
空燃比フィードバック補正係数αには、従来よりαによる制御範囲を限定するため図２８に示したように、αの中心値（１００％）を中心として上下に第１リミッタ±ＬＭＴ１（例えば±２５％）を設けている。すなわち、αの第１上限リミッタは１２５％（＝１００＋ＬＭＴ１）、αの第１下限リミッタは７５％（＝１００−ＬＭＴ１）であり、演算されたαが、αの第１上限リミッタである１２５％を超えるときには、このαを１２５％に制限し、この逆に演算されたαが、αの第１下限リミッタである７５％を下回るときには、このαを７５％に制限している。
【０１４９】
本実施形態では、この第１リミッタ±ＬＭＴ１とは別に、パージ用にこれより小さい第２リミッタ±ＬＭＴ２を新たに導入している。すなわち、第２下限リミッタは１００−ＬＭＴ２、第２上限リミッタは１００＋ＬＭＴ２であり、図２８において、αの中心値である１００％と第１下限リミッタである１００−ＬＭＴ１との間に、１００−ＬＭＴ１からある程度の余裕代を持たせた位置に第２下限リミッタである１００−ＬＭＴ２がくるようにしている。すなわち、１００−ＬＭＴ２（第２下限リミッタ）と１００−ＬＭＴ１（第１下限リミッタ）の間をαの補正代として残し、パージ以外の外乱があった場合に、この残したαの補正代により理論空燃比からの空燃比偏差を小さなものとする。
【０１５０】
そして、αが第２下限リミッタ以下の領域にあるか否かあるいは第２上限リミッタ（図２８には示していない）以上の領域にあるか否かを示すため、フラグを設定する。すなわち、演算されたαが第２下限リミッタである１００−ＬＭＴ２以下になるとパージ用下限リミッタ設定フラグ＝１とし、この逆に演算されたαが第２上限リミッタである１００＋ＬＭＴ２以上となるとパージ用上限リミッタ設定フラグ＝１とする。
【０１５１】
ただし、第２下限リミッタ、第２上限リミッタにはそれぞれヒステリシスＨＹＳを設けている。これは、αが各リミッタ付近にいることにより各フラグがゼロとなったり１となったりを頻繁に繰り返すことを防止するためである。
【０１５２】
具体的に図２０から説明すると、ステップ１３１では空燃比フィードバック制御中であるか否かを判定する。空燃比フィードバック制御中でなければそのまま今回の処理を終了する。
【０１５３】
空燃比フィードバック制御中であるときには、ステップ１３２に進んで空燃比フィードバック補正係数αを読み込む。
【０１５４】
このαは図示しないフローにおいて空燃比センサ１５に基づいて演算している。ここでは、簡単のため比例動作の場合で説明すると、空燃比センサ１５により検出される実際の排気空燃比と理論空燃比との偏差を求め、この偏差に比例ゲインを乗算することにより求めればよい。このときαの波形は、実際の排気空燃比が理論空燃比よりリッチ側にあるあいだは、実際の排気空燃比を理論空燃比へと戻すため制御周期毎にαが階段状に小さくなってゆき、この逆に実際の排気空燃比が理論空燃比よりリーン側にあるあいだは、実際の空燃比を理論空燃比へと戻すため制御周期毎にαが階段状に大きくなってゆく。
【０１５５】
ステップ１３３ではパージ用下限リミッタ判定フラグ（エンジン始動時にゼロに初期設定）をみる。始動直後であればパージ用下限リミッタ判定フラグ＝０であることよりステップ１３４に進みαとパージ用下限リミッタである１００−ＬＭ２とを比較する。αが１００−ＬＭＴ２を超えているときにはそのまま今回の処理を終了し、αが１００−ＬＭＴ２以下になると、ステップ１３５に進んでパージ用下限リミッタ判定フラグ＝１として今回の処理を終了する。
【０１５６】
このパージ用下限リミッタ判定フラグ＝１により次回にはステップ１３３よりステップ１３６に進みαと１００−ＬＭＴ２＋ＨＹＳ（ＨＹＳは正の一定値）を比較する。αが１００−ＬＭＴ２＋ＨＹＳ以下であればステップ１３５に進んでパージ用下限リミッタ判定フラグ＝１のままとし、αが１００−ＬＭＴ２＋ＨＹＳを超えるとステップ１３７に進んでパージ用下限リミッタ判定フラグ＝０とする。
【０１５７】
図２１に移ると、ステップ１４１、１４２は図２０のステップ１３１、１３２と同様である。
【０１５８】
ステップ１４３ではαのパージ用上限リミッタ判定フラグ（エンジン始動時にゼロに初期設定）をみる。始動直後であればパージ用上限リミッタ判定フラグ＝０であることよりステップ１４４に進みαとパージ用上限リミッタである１００＋ＬＭＴ２とを比較する。αが１００＋ＬＭＴ２未満であるときにはそのまま今回の処理を終了し、αが１００＋ＬＭＴ２以上になると、ステップ１４５に進んでパージ用上限リミッタ判定フラグ＝１として今回の処理を終了する。
【０１５９】
このパージ用上限リミッタ判定フラグ＝１により次回にはステップ１４３よりステップ１４６に進みαと１００＋ＬＭＴ２−ＨＹＳ（ＨＹＳは正の一定値）を比較する。αが１００＋ＬＭＴ２−ＨＹＳ以上であれステップ１４５に進んでパージ用上限リミッタ判定フラグ＝１のままとし、αが１００＋ＬＭＴ２−ＨＹＳ未満になるとステップ１４７に進んでパージ用上限リミッタ判定フラグ＝０とする。
【０１６０】
図１９のステップ１２２に戻り、パージ用リミッタ判定フラグ（パージ用下限リミッタ判定フラグまたはパージ用上限リミッタ判定フラグ）＝１であるときにはステップ１２３に進みタイマ１（ゼロに初期設定）をインクリメントする。タイマ１は、継続してパージ用リミッタ判定フラグ＝１でいる時間を計測するためのものである。このため、インクリメントの途中でもパージ用リミッタ判定フラグ＝０となればステップ１２６に進んでタイマ１をゼロにクリアし、再びパージ用リミッタ判定フラグ＝１となればステップ１２３に進んでタイマ１をインクリメントする。
【０１６１】
ステップ１２４でタイマ１値と所定値を比較する。所定値はベース空燃比エラーがあるかどうかを判定するための値である。タイマ１値が所定値以上になるとベース空燃比エラーがあると判断し、ステップ１２５に進んでアクティブ較正処理（第２較正処理）を行うため、アクティブ較正要求フラグ（ゼロに初期設定）＝１とする。
【０１６２】
ただし、運転条件が過渡的に変化するときには、ベース空燃比エラーが存在していなくても一時的にパージ用リミッタ判定フラグ＝１となることがあるので、この場合にもベース空燃比エラーがあると誤判定されることがないように所定値を設定する。すなわち、過渡的にパージ用リミッタ判定フラグ＝１となる時間よりも長めの時間（例えば数秒）を所定値として定めておくことで、運転条件の過渡的変化による場合をベース空燃比エラーと誤判定することを回避する。
【０１６３】
これで、図１９の説明を終了するので、図１３に戻り、アクティブ較正要求フラグ＝１となった直後であればデータサンプリング終了フラグ＝０であるため、ステップ７６、７７よりステップ７９に進んでパージ率低下処理を行う。
【０１６４】
このパージ率低下処理は図２２に示したように、アクティブ較正要求フラグ＝１かつ較正実行可能判定フラグが０から１へと切換わったタイミングでの目標パージ率（図１２のステップ６１〜７３で演算されている）を初期値として所定時間Δｔ当たり所定値Δずつ減らし最終的にゼロにする制御である。これは、パージカットを行うための一方法であり、初期値からステップ的にゼロにするのではない。
【０１６５】
図２３、図２４（図１３ステップ７９のサブルーチン）はこのパージ率低下処理を行うためのものである。この処理は図３１中のパージ率低下処理部Ｂ３９、パージカット前データサンプリング部Ｂ４２、パージカット時データサンプリング部Ｂ４３における処理に対応する。
【０１６６】
図２３において、ステップ１５１、１５２では今回と前回の較正実行可能判定フラグをみる。今回に較正実行可能判定フラグ＝１かつ前回に較正実行可能判定フラグ＝０（つまり較正実行可能判定フラグが０より１へと切換わった直後）のときステップ１５３に進み、パージ率低下処理開始時の空燃比フィードバック補正係数α（図示しないαの演算フローにおいて演算されている）、パージ分補正係数ＦＨＯＳ（図４により演算されている）、目標パージ率ＭＰＲ０（図１３ステップ７４で得ている）、吸入空気質量Ｑｇ（吸入空気流量Ｑと吸気温度等から得ている）、空燃比学習値αｍ（図示しない空燃比学習値のマップからそのときの運転条件の属する小領域に入っている空燃比学習値を読み出してくる）を読み込んで、対応するメモリα１、ＦＨＯＳ１、ＭＰＲ１、Ｑｇ１、αｍ１に入れる（パージカット前データのサンプリング）。
【０１６７】
ステップ１５４では同じくパージ率低下処理開始時のＭＰＲ０の値を変数ＭＰＲＧに移す。これは、較正実行可能判定フラグが０より１へと切換わったタイミングでの目標パージ率を初期値としてサンプリングするためである。
【０１６８】
ステップ１５５ではタイマ２を一旦ゼロにクリアした後、ステップ１５６でインクリメントを開始する。
【０１６９】
今回、前回とも較正実行可能判定フラグ＝１であるときにはステップ１５３、１５４、１５５を飛ばしてステップ１５６の操作を実行する。
【０１７０】
ステップ１５７ではタイマ２値と所定時間Δｔを比較する。タイマ２値が所定時間Δｔ以上になると、ステップ１５８、１５９に進み、タイマ２値をゼロにクリアすると共に、
ＭＰＲＧ＝ＭＰＲＧｚ−Δ…（８）
ただし、ＭＰＲＧｚ：ＭＰＲＧの前回値、
の式により変数ＭＰＲＧを所定値Δ（正の値）だけ小さくする。タイマ２値が所定時間Δｔ未満のときにはステップ１６０に進み現在のＭＰＲＧを維持する。
【０１７１】
ステップ１５７〜１６０の操作により、ＭＰＲＧは所定時間Δｔが経過する毎に所定値Δずつ小さくなってゆく（図２２最下段参照）。
【０１７２】
ここで、パージ率を急激に低下させてのパージカットを行うと排気空燃比が変化し運転性や排気エミッションに影響するので、そうならないように所定時間Δｔと所定値Δの値は目標パージ率を設定する際のパージ率変化量制限値を用いて、またはこれに基づいて定めればよい。
【０１７３】
図２４に進み、ステップ１６１ではＭＰＲＧとゼロを比較する。ＭＰＲＧがゼロ以上であればステップ１６２に進みＭＰＲＧを目標パージ率ＭＰＲとして、これに対してＭＰＲＧが負の値になったときにはステップ１６３に進みゼロを目標パージ率ＭＰＲとして設定する。
【０１７４】
ステップ１６４では目標パージ率ＭＰＲとゼロを比較する。ＭＰＲ＝０であるときにはステップ１６５に進んでタイマ３（ゼロに初期設定）をインクリメントする。タイマ３はパージカット状態（目標パージ率ＭＰＲがゼロ）の連続経過時間を計測するためのものである。
【０１７５】
ステップ１６６ではタイマ３値と安定化時間を比較する。安定化時間はパージカット状態が安定するのを待つ時間である。
【０１７６】
タイマ３値が安定化時間以上になるとステップ１６７に進み、そのときの空燃比フィードバック補正係数α、空燃比学習値αｍを対応するメモリα２、αｍ２に入れる。これはパージカット時のデータをサンプリングするものである。これで、パージカット前後でのデータのサンプリングを終了するので、ステップ１６８ではデータサンプリング終了フラグ（ゼロに初期設定）＝１とすると共に、ステップ１６９でタイマ２、３をゼロにクリアする。
【０１７７】
このようにしてパージ率低下処理を終了したら図１３にのステップ８０に戻る。ステップ８０ではパージ終了判定フラグ（図１６により設定されている）をみる。パージ終了判定フラグ＝１のときには、空燃比学習を開始するためステップ８１に進み空燃比学習用のパージ率を目標パージ率ＭＰＲに入れる。これによって空燃比学習を開始するときには図２５に示したように目標パージ率ＭＰＲが小さくなる。
【０１７８】
図２６は空燃比学習開始フラグを設定するためのもので、一定時間毎（例えば１０ｍｓｅｃ毎）に実行する。
【０１７９】
ステップ１７１では空燃比学習開始フラグ（ゼロに初期設定）をみる。エンジン始動直後であれば空燃比学習開始フラグ＝０であることよりステップ１７２に進み、パージ終了判定フラグ（図１６により設定されている）をみる。
【０１８０】
パージ終了判定フラグ＝１であるときだけ空燃比学習を開始させるためステップ１７３に進み空燃比学習開始フラグ＝１とする。
【０１８１】
図２７は空燃比学習値の更新を行うためのもので、所定のタイミング毎（例えば所定のエンジン回転速度の間隔毎）に実行する。この空燃比学習値の更新と図２６の空燃比学習開始フラグ設定の各処理は図２中の空燃比学習制御部Ｂ１６における処理に対応する。
【０１８２】
ステップ１８１では空燃比学習開始フラグをみる。空燃比学習開始フラグ＝１であるときにはステップ１８２に進み空燃比学習許可条件が成立しているか否かを判定する。空燃比学習許可条件は従来と同様である。例えば空燃比フィードバック制御中であることや空燃比フィードバック制御に関わる空燃比センサ１５等に故障がないことなどを総て満足するときに空燃比学習許可条件が成立していると判断し、ステップ１８３に進んで空燃比学習値を更新する。この空燃比学習値の更新方法には次式によって更新する方法がある。
【０１８３】
αｍ＝αｍｚ＋（α−１００）×Ｍ…（９）
ただし、αｍ　：更新後の空燃比学習値、
αｍｚ：更新前の空燃比学習値、
Ｍ　　：学習割合（一定値）、
この場合、エンジンの回転速度と基本噴射パルス幅Ｔｐ（エンジン負荷相当）をパラメータとする全運転領域が複数の小さな領域に区分けされ、その各小領域毎に独立の空燃比学習値を有している。このため、（９）式右辺の更新前の空燃比学習値は更新タイミングでの運転条件が属する小領域に格納されている空燃比学習値であり、その同じ小領域に（９）式左辺の更新後の空燃比学習値が格納される。
【０１８４】
なお、実施形態は空燃比センサ１５に基づく空燃比フィードバック制御であるが、これに代えてＯ２センサに基づく空燃比フィードバック制御であってもよく、この場合には、Ｏ２センサの反転タイミングを空燃比学習値の更新タイミングとすればよい。
【０１８５】
次に、図６に戻ってステップ１１１〜１１９の処理を説明する。この部分の処理は図３１中のアクティブ較正処理部Ｂ４１、切換スイッチＢ４７における処理に対応する。
【０１８６】
ステップ１１１、１１２でアクティブ較正要求フラグ、データサンプリング終了フラグをみる。アクティブ較正要求フラグ＝０であるとき、アクティブ較正要求フラグ＝１であってもデータサンプリング終了フラグ＝０であるときにはステップ３２〜３６に進み先願装置と同様のパッシブ較正処理（第２較正処理）を実行する。
【０１８７】
アクティブ較正要求フラグ＝１かつデータサンプリング終了フラグ＝１であるときにはステップ１１３〜１１７でのアクティブ較正処理（第１較正処理）を行う。すなわち、ステップ１１３ではメモリに格納されているα１、α２、ＦＨＯＳ１、Ｑｇ１、αｍ１、αｍ２を読み込む。ここで、「１」が付いている値がパージカット前の、これに対して「２」が付いている値がパージカット時のデータである。
【０１８８】
ステップ１１４ではこれらパージカット前後のデータを用いて、
ＤＬＴ＝（α１＋αｍ１＋α２＋αｍ２−３）×ＦＨＯＳ１…（１０）
の式により全空燃比補正係数ＤＬＴを算出し、この全空燃比補正係数ＤＬＴとＭＰＲ１、Ｑｇ１とを用いて、
Ｄｇ＝Ｋ１×（１−ＤＬＴ＋Ｋ２×ＭＰＲ１）×Ｑｇ１…（１１）
の式により脱離量Ｄｇを算出する。
【０１８９】
ここで、（１０）式をどのようにして導いたかを説明する。
【０１９０】
（ア）空燃比学習制御を行わない場合：
実施形態は空燃比学習制御部Ｂ１６を備えるものであるが、空燃比学習制御を行わないものが考えの基本となるので、こちらから説明すると、このときには、
ＤＬＴ＝｛α１−（１−α２）｝×ＦＨＯＳ１…（ａ）
の式により全空燃比補正係数ＤＬＴを算出すればよい。ここで、（ａ）式右辺の（１−α２）がパージカット時における、αの中心値からのαの偏差、つまりベース空燃比エラーを表し、これがパージ実行中の値である（ａ）式右辺のα１に含まれてしまうことにより較正エラーとなるので、α１よりベース空燃比エラーを表す（１−α２）を差し引くことにより、ベース空燃比エラー分の誤差をα１から取り去っている。
【０１９１】
（イ）空燃比学習制御を行う場合：
このときには、空燃比学習値についても空燃比フィードバック補正係数αと同様に考える必要があるので、
2004060483.tif 000004
の式により全空燃比補正係数ＤＬＴを算出する。ここで、（ｂ）式右辺の（１−αｍ２）はパージカット時における、αｍの中心値からのαｍの偏差、つまりこれもベース空燃比エラーを表し、これがパージ実行中の値である（ｂ）式右辺のαｍ１に含まれてしまうことにより較正エラーとなるので、αｍ１よりベース空燃比エラーを表す（１−αｍ２）を差し引くことにより、ベース空燃比エラー分の誤差をαｍ１から取り去っている。ただし、１．０を中心とする｛α１−（１−α２）｝と｛αｍ１−（１−αｍ２）｝の２つの値を足し合わせた合計は２となるので、２つの値の合計から１を差し引くことによって計算上のつじつま合わせをしている。（ｂ）式を整理すると上記（１０）式が得られる。
【０１９２】
このようにして全空燃比補正係数ＤＬＴが得られると、脱離量の演算式は前述の（５ｂ）式と同じである。ただし、この場合の目標パージ率ＭＰＲ、吸入空気質量Ｑｇはパージカット前の値なければならないので、上記（１１）のようにＭＰＲ、Ｑｇに代えてＭＰＲ１、Ｑｇ１を用いている。
【０１９３】
ステップ１１６、１１７はパッシブ較正処理と同様である。すなわち、ステップ１１６では、ステップ１１５で演算した脱離量Ｄｇから上記（６）式により、キャニスタ２４の吸着量Ｙｒ（質量）を演算する。ステップ１１７では、キャニスタモデルに基づき脱離量Ｄｇを演算する際に使用する吸着量Ｙを、ステップ１１６で演算した吸着量Ｙｒに置き換える。
【０１９４】
これでアクティブ較正処理を終了するので、ステップ１１８、１１９ではデータサンプリング終了フラグ＝０、アクティブ較正要求フラグ＝０とする。アクティブ較正要求フラグ＝０より、次回に較正実行可能と判定されたときには図６においてステップ１１１よりステップ３２〜３６へと進みパッシブ較正処理を実行する。
【０１９５】
ここで、本実施形態のパージ実行中の作用を図２８、図２９の波形図を参照しながら説明する。
【０１９６】
図２８の右側は、ベース空燃比エラーはなく、空燃比学習機能は考えないものとした状態で、パージ分補正係数ＦＨＯＳが正しく演算されているときの空燃比フィードバック補正係数α、パージ分補正係数ＦＨＯＳの各波形を、、これに対して図２８の左側は同じくベース空燃比エラーはなく、空燃比学習機能は考えないものとした状態で、較正エラーに伴ってＦＨＯＳが正しく演算されていないときの空燃比フィードバック補正係数α、パージ分補正係数ＦＨＯＳの各波形をモデル的に示す。ただし、運転条件は理想的な定常でなく、目標パージ率が緩やかに変化しているように緩やかに変化している場合で示している。
【０１９７】
図２８右側に示したように、設定された目標パージ率のもとでパージ処理を行っているとき、パージ分補正係数ＦＨＯＳが正しく演算されていれば、このＦＨＯＳにより理論空燃比からの空燃比偏差が小さくなるため、空燃比フィードバック制御が働くまでもないことから、空燃比フィードバック補正係数αは補正代がフル（最大）となる位置（つまりαの中心値である１００％）の付近にとどまっている。
【０１９８】
これに対して、較正エラーに伴ってＦＨＯＳが正しく演算されていないときには空燃比フィードバック制御中における理論空燃比からの空燃比偏差が大きくなり、この大きくなった空燃比偏差を小さなものにしようと、空燃比フィードバック制御が働く。すなわち、図２８左側に示したようにαが第１下限リミッタである７５％からは少し余裕を残した位置で緩やかに振れており、このことは、この状態で理論空燃比からの空燃比偏差が小さくなっていることを現している。言い換えると、ＦＨＯＳが誤って１００％に近い値に演算されたために排気空燃比が理論空燃比よりリッチ側に傾き、このリッチ側に傾いた排気空燃比を理論空燃比に戻そうとαが１００％より小さくなっている。
【０１９９】
この場合に、本実施形態では、αの第１下限リミッタである７５％よりもαの中心値（１００％）までの幅が狭い第２下限リミッタである１００−ＬＭＴ２を設定しており、図２８左側のようにこの第２下限リミッタを横切りながらαが推移するとき、パージ用下限リミッタ判定フラグが０から１になったり、再び０に戻ったりを繰り返す（図２８左側、下から第２段目参照）。これは、αとヒステリシス付きの判定値との比較による。すなわち、αが判定値である１００−ＬＭＴ２を横切って小さくなったタイミングでパージ用下限リミッタ判定フラグが０から１に切換わる（図２０ステップ１３３、１３４、１３５）。その後にαが今度は１００−ＬＭＴ２を横切って大きくなる側に変化すると、１００−ＬＭＴ２＋ＨＹＳ以下にある間はパージ用下限リミッタ判定フラグ＝１のままであるが（図２０ステップ１３３、１３６、１３５）、αが１００−ＬＭＴ２＋ＨＹＳより大きくなったタイミングでパージ用下限リミッタ判定フラグが１から０に切換わる（図２０ステップ１３３、１３６、１３７）。αが再び１００−ＬＭＴ２を横切って小さくなると、パージ用下限リミッタ判定フラグが０から１に切換わる（図２０ステップ１３３、１３４、１３５）。このような繰り返しによりパージ用下限リミッタ判定フラグが図２８左側の下から第２段目に示すようになる。
【０２００】
そして、パージ用下限リミッタ判定フラグ＝１となっている連続時間（タイマ２値）が所定値以上になるとアクティブ較正要求フラグが０から１に切換わる（図１９ステップ１２４、１２５）。
【０２０１】
図２９は空燃比学習制御を行っているものの、何らの原因でエンジン始動後にベース空燃比エラーが露わになっており、しかも空燃比学習が開始される前にあるとした状態で、なおかつ較正エラーに伴ってパージ分補正係数ＦＨＯＳが正しく演算されていないときの空燃比フィードバック補正係数α、パージ分補正係数ＦＨＯＳ、空燃比学習値αｍの各波形をモデル的に示す。すなわちｔ１以前ではベース空燃比エラーに起因して排気空燃比が理論空燃比よりリーン側に傾き、このリーン側に傾いた排気空燃比を理論空燃比に戻そうと空燃比フィードバック補正係数αが１００％より大きくなっている。ただし、運転条件は緩やかな加速時のものである。
【０２０２】
なお、空燃比学習値αｍはエンジンの回転速度と負荷とで表される全運転領域をいくつかの小領域に分割し、その各小領域毎に別々の空燃比学習値を格納している場合を想定しており、このため、最下段に示したようにｔ１とｔ２の間で空燃比学習値αｍが変化している。これは、運転条件が別の小領域に移ったために読み出される空燃比学習値が異なったことを示している。
【０２０３】
また、目標パージ率ＭＰＲ、パージ分補正係数ＦＨＯＳ、空燃比フィードバック補正係数αとも、図２８に示したように実際には演算周期毎に階段状に動く値であるが、簡単のため図２８と相違して図２９では直線で示している。また、ｔ１、ｔ３のタイミングは縦の２つの破線のうち左側の破線位置のタイミングであり、右側の破線位置のタイミングは次の演算タイミング（従って２つの破線の幅が演算周期）を表している。
【０２０４】
さて、ｔ１のタイミング以前でアクティブ較正要求フラグ＝１となっており、較正実行可能判定フラグが０より１に切換わるｔ１のタイミングでパージ率低下処理が開始される（図１３ステップ７５、７６、７７、７９）。このパージ率低下処理では、パージ率低下処理開始時の目標パージ率を初期値として所定時間当Δｔたり所定値Δずつ小さくされてゆき（図２２参照）、ｔ２で目標パージ率がゼロに達する（図２９第４段目参照）。この場合、パージ分補正係数ＦＨＯＳは目標パージ率に比例する値であるので、このように目標パージ率を低下させると、ＦＨＯＳもＦＨＯＳの中心値である１００％に向かって小さくなる（図２９第５段目参照）。
【０２０５】
ここで、パージ率低下処理はパージカットを行うための一方法であり、パージカット前であるパージ率低下処理開始時には、そのときのα、ＦＨＯＳ、ＭＰＲ、αｍ、Ｑｇが、対応するメモリα１、ＦＨＯＳ１、ＭＰＲ１、αｍ１、Ｑｇ１にパージカット前のデータとしてサンプリングされる（図２３ステップ１５１、１５２、１５３）。
【０２０６】
また、目標パージ率がゼロになるとパージカット状態となり、この状態ですぐにパージカット時のデータをサンプリングするのではなく、安定化時間が経過したｔ３のタイミングでのα、αｍが、対応するメモリα２、αｍ２にパージカット時のデータとしてサンプリングされる（図２４ステップ１６４、１６５、１６６、１６７）。
【０２０７】
これでパージカット前後のデータサンプリングが終了するので、データサンプリング終了フラグが０から１へと切換わり（図２４ステップ１６６、１６８）、このパージカット前後のデータを用いｔ４のタイミングでアクティブ較正処理が行われる。
【０２０８】
このアクティブ較正処理では、上記（５ａ）、（５ｂ）式に代えて、上記（１０）、（１１）式により全空燃比補正係数ＤＬＴと脱離量Ｄｇが算出され、このようにして得た脱離量Ｄｇより逆演算によって吸着量Ｙｒを演算し、キャニスタモデル中の吸着量のデータをこの吸着量Ｙｒに置き換える（図６ステップ１１１、１１２、１１３、１１４、１１５、１１６、１１７）。この結果、アクティブ較正処理後はパージ分補正係数ＦＨＯＳが正しく演算される。
【０２０９】
アクティブ較正処理が終了したあとは、アクティブ較正要求フラグ＝０、データサンプリングフラグ＝０となり（図６ステップ１１８、１１９）、これによって目標パージ率がパージカット前の値へと戻される（図１３ステップ７５、７６、７７、７８）。すなわち目標パージ率は、パージ率変化量制限値に従ってパージカット前の値へと徐々に戻され、この目標パージ率の増大を受けてパージ分補正係数ＦＨＯＳも中心値である１００％から離れて小さくなってゆく。このときのＦＨＯＳはアクティブ較正処理の実行によって正しく演算されるため、αがその中心値である１００％へと収束しており、パージ以外の外乱に備えることになる。
【０２１０】
また、アクティブ較正処理が終了したあとに較正実行可能となったときには先願装置と同様の較正処理であるパッシブ較正処理が行われる（図３０参照）。
【０２１１】
このようにして、本実施形態（請求項１に記載の発明）によれば、空燃比学習制御を行っているものの、何からの原因でエンジン始動直後にベース空燃比エラーが露わになっている場合には、パッシブ較正処理を継続している限りキャニスタモデルの較正にベース空燃比エラー分の誤差が生じ、これによってパージ分補正係数ＦＨＯＳが不正確にしか演算されず、これに起因して理論空燃比からの空燃比偏差が大きくなり、この空燃比偏差を小さくするために空燃比フィードバック制御が働いて空燃比フィードバック補正係数αの補正代が小さくなるのであるが、本実施形態によれば、第１リミッタよりも空燃比フィードバック補正係数αの中心値までの幅が狭い第２リミッタ±ＬＭＴ２を設定し、演算される空燃比フィードバック補正係数αと第２リミッタとの比較によりベース空燃比エラーがあるか否かを判定し、ベース空燃比エラーがあると判定した場合に較正タイミングとなったとき、パージカットを行い、キャニスタモデルに対してこのパージカット前後のデータに基づいてアクティブ較正処理（第１較正処理）を行うので、エンジン始動後にベース空燃比エラーが露わになっている場合において較正タイミングとなっても、キャニスタモデルの較正を、ベース空燃比エラーの影響を受けることなく精度良く行うことができ、これによってパージ分補正係数ＦＨＯＳの演算精度が向上すると共に、空燃比フィードバック補正係数αの補正代を無駄に使うことがない。
【０２１２】
また、運転条件が過渡的に変化するときには、ベース空燃比エラーがなくても、演算される空燃比フィードバック補正係数αが第２リミッタを含んで中心値の側に収まらないことがあり、このとき即座にベース空燃比エラーがあると判定したのでは誤判定になってしまうが、本実施形態（請求項７に記載の発明）によれば、所定値（遅れ時間）の経過後にベース空燃比エラーがあるか否かの判定を行うので（図１９ステップ１２１、１２２、１２３、１２４、１２５）、ベース空燃比エラーと通常の空燃比エラー（ベース空燃比エラーはないのに過渡などでの理論空燃比からの空燃比偏差をもつこと）との分離を行うことが可能になり、ベース空燃比エラーの判定精度が向上する。
【０２１３】
また、本実施形態（請求項８に記載の発明）によれば、ベース空燃比エラーがある場合に較正タイミングとなったときの目標パージ率を初期値として所定時間間隔で所定値ずつゼロまで低下させる処理（パージ率低下処理）を行うので、ベース空燃比エラーによる較正エラーが生じ、これに伴ってパージ分補正係数ＦＨＯＳが正しく演算されていない場合においても急激に目標パージ率を低下させることがなく、かつ空燃比フィードバック制御が可能な範囲で目標パージ率を変化させることができる。
【０２１４】
また、アクティブ較正処理によれば、キャニスタモデルの状態の推定をベース空燃比の影響を受けずに精度良く行うことが可能であるため、アクティブ較正処理の結果をパージ処理が終了していることを確認するために用いることができる。すなわち、エンジン始動後初めての較正タイミングでアクティブ較正処理が行われた後は、キャニスタモデルにより演算される脱離量Ｄｇが精度の良いものとなり、これによって積算パージ流量ＳＱＰと比較するための判定値ＳＬＳＱＰが正確に演算されるため、パージ処理が終了したか否かの判定精度が向上する（図１６ステップ９２、１００〜１０８）。
【０２１５】
空燃比学習制御の精度を向上させるためには、パージなどの外乱要因を取り除いた状態で行うことが望ましい。一方、燃料タンク２１から発生する蒸発燃料の処理を行うためにパージ処理は必要であり、始動直後より可能な限り大量のパージ処理を行うことが車両から大気へのパージ燃料の放出防止につながる。このように空燃比学習制御とパージ処理の２つの制御は相反する要求を持つが、パージ燃料を十分に処理できた時点においてはパージ率（パージ流量）を必要最低限の値に保持し（図１３ステップ８０、８１、図２５）、空燃比学習値の更新を行うことで（図２６ステップ１７１〜１７３、図２７ステップ１８１〜１８３）、空燃比学習制御の精度の保証を行うことができている。
【０２１６】
このように、本実施形態（請求項９に記載の発明）によれば、アクティブ較正処理の結果をパージ処理の終了判定に活かすことで、パージ処理終了判定の精度を高め、このようにして高い精度でパージ終了判定を行った後で、パージ率を小さくして空燃比学習値の更新を行うので、空燃比学習制御の精度向上と始動直後よりの大量のパージ処理とを両立させることができる。
【０２１７】
さらに、キャニスタ２４からの燃料の脱離特性は、キャニスタ内の燃料吸着剤（活性炭等）の温度の影響を受けるので、脱離量演算式は吸着剤温度と脱離量の関係を考慮した式とする（請求項１５に記載の発明）。脱離量が多い領域では脱離量の演算誤差が排気空燃比に及ぼす影響が大きく特に高い演算精度が要求され、しかも、キャニスタ２４からの燃料の脱離現象が吸熱反応であるため、大量の脱離が行われるときはキャニスタ内の吸着剤温度が低下し脱離特性も変化する。そのため、吸着剤温度と脱離量の関係を考慮しないと脱離量が多い領域では脱離量の演算精度が低下するが、吸着剤温度も考慮に入れて脱離量を演算するようにキャニスタモデルを構成すれば、脱離量の演算精度の悪化を抑え、演算精度の悪化に起因する排気エミッション悪化等を防止できる。
【０２１８】
なお、吸着燃料量とパージ率と吸着剤温度とに基づき脱離燃料量を演算する脱離量演算式としては、フロイントリッヒ（Ｆｒｅｕｎｄｌｉｃｈ）の式をベースにキャニスタ２４の脱離現象に応用した式を用いることができる。また、吸着剤温度はキャニスタ２４からの燃料の脱離量に基づき吸着剤温度の降下量を求めることによって求めることができる（請求項１６に記載の発明）。
【０２１９】
また、本実施形態（請求項１１廃止に記載の発明）によれば、ベース空燃比エラーがない場合に較正タイミングとなったとき、キャニスタモデルに対してパージ実行中のデータに基づくパッシブ較正処理（第２較正処理）も行われる。キャニスタモデルは近似モデルであり、それによって演算される値は幾らかの誤差を含んだものとなり、また、キャニスタモデルは前回値を用いて新たな値を演算するため、その動作時間が長くなるにつれ誤差が積分され大きくなるが、このようなパッシブ較正処理を行うことで誤差を適宜修正し、高い演算精度を保つことができる。なお、このパッシブ較正処理は、理論空燃比からの空燃比偏差から推定される脱離量から吸着量を逆算し、内部変数の吸着量をこの逆算された吸着量で較正するというものであり、特殊なシーケンスを踏む必要が無く、パージ率を落とす必要もない。なお、吸着量はキャニスタモデルにおける脱離量演算式の逆演算によって求めることができる（請求項１７に記載の発明）。
【０２２０】
上記較正処理はパージ以外の外乱による理論空燃比からの空燃比偏差が生じないときに行われ、理論空燃比からの空燃比偏差を全てパージによるものとみなしてキャニスタからの燃料の脱離量を推定し、この推定脱離量から逆算したキャニスタ２４の実吸着量に基づき較正が行われるので、較正処理の精度が確保できる（請求項１８に記載の発明）。
【０２２１】
また、本実施形態（請求項１９、２０に記載の発明）によれば、脱離量の演算精度を高めるべく、較正処理はパージによる理論空燃比からの空燃比偏差が比較的大きなとき（パージ率が高く、パージ空燃比が濃いとき）に行われる。運転領域によっては十分な較正処理の演算精度が得られない場合があるが、このように十分な精度が得られる領域のみで較正処理を実行することにより、較正処理の精度を向上させ、キャニスタモデルの精度をさらに向上させることができる。
【０２２２】
以上、本発明の実施の形態について説明したが、上記実施形態の構成は本発明が適用される構成の一例を示したものであり、本発明の範囲を上記構成に限定するものではない。上述した通り、上記実施形態においては、キャニスタモデルによるパージ処理が可能となるまでは、図１６に示したパージ処理が補助的に実行されるが、図１６に示したパージ処理を継続して用いるようにしてもよい。
【図面の簡単な説明】
【図１】本発明に係る蒸発燃料処理装置の全体構成図。
【図２】エンジンコントローラにおけるパージ処理の概要を示したブロック図。
【図３】キャニスタモデルの構成を示したブロック図。
【図４】パージ分補正係数の演算を説明するためのフローチャート。
【図５】較正処理可能条件を示したフローチャート。
【図６】較正処理を説明するためのフローチャート。
【図７】キャニスタモデルに基づく脱離量の演算を説明するためのフローチャート。
【図８】遅れ補正を説明するためのフローチャート。
【図９】吸入空気流量と無駄時間の関係を示す特性図。
【図１０】吸入空気流量となまし係数の関係を示す特性図。
【図１１】遅れ補正における無駄時間処理の概要を示した図。
【図１２】目標パージ率の設定を説明するためのフローチャート。
【図１３】目標パージ率の設定を説明するためのフローチャート。
【図１４】吸入空気流量及びパージ率に対するパージ空燃比誤差の関係を示す特性図。
【図１５】パージ空燃比に対するパージ空燃比誤差の関係を示す特性図。
【図１６】ブートアップ制御を説明するためのフローチャート。
【図１７】空燃比フィードバック偏差の差（＝目標空燃比フィードバック偏差−実空燃比フィードバック偏差）とパージ率変化量の関係を示す特性図。
【図１８】パージ空燃比に対するパージ終了判定値の関係を示す特性図。
【図１９】アクティブ較正要求フラグの設定を説明するためのフローチャート。
【図２０】パージ用下限リミッタ判定フラグの設定を説明するためのフローチャート。
【図２１】パージ用上限リミッタ判定フラグの設定を説明するためのフローチャート。
【図２２】パージ率低下処理を説明するための波形図。
【図２３】パージ率低下処理を説明するためのフローチャート。
【図２４】パージ率低下処理を説明するためのフローチャート。
【図２５】パージ終了が判定されたときの目標パージ率の変化を示す波形図。
【図２６】空燃比学習開始フラグの設定を説明するためのフローチャート。
【図２７】空燃比学習値の更新を説明するためのフローチャート。
【図２８】正常に較正が行われたときと較正エラーがあるときとを比較して説明するための波形図。
【図２９】アクティブ較正処理の内容を示す波形図。
【図３０】パッシブ較正処理の内容を示す波形図。
【図３１】較正処理の概要を示したブロック図。
【符号の説明】
４　燃料噴射弁
５　排気通路
８　吸気通路
１１　エンジンコントローラ
１３　エアフローメータ
１５　空燃比センサ（空燃比検出手段）
２１　燃料タンク
２２　配管
２４　キャニスタ
２６　配管
２７　パージバルブ
【図１】
2004060483.tif 000005
【図２】
2004060483.tif 000006
【図３】
2004060483.tif 000007
【図４】
2004060483.tif 000008
【図５】
2004060483.tif 000009
【図６】
2004060483.tif 000010
【図７】
2004060483.tif 000011
【図８】
2004060483.tif 000012
【図９】
2004060483.tif 000013
【図１０】
2004060483.tif 000014
【図１１】
2004060483.tif 000015
【図１２】
2004060483.tif 000016
【図１３】
2004060483.tif 000017
【図１４】
2004060483.tif 000018
【図１５】
2004060483.tif 000019
【図１６】
2004060483.tif 000020
【図１７】
2004060483.tif 000021
【図１８】
2004060483.tif 000022
【図１９】
2004060483.tif 000023
【図２０】
2004060483.tif 000024
【図２１】
2004060483.tif 000025
【図２２】
2004060483.tif 000026
【図２３】
2004060483.tif 000027
【図２４】
2004060483.tif 000028
【図２５】
2004060483.tif 000029
【図２６】
2004060483.tif 000030
【図２７】
2004060483.tif 000031
【図２８】
2004060483.tif 000032
【図２９】
2004060483.tif 000033
【図３０】
2004060483.tif 000034
【図３１】
2004060483.tif 000035