(57)【特許請求の範囲】
【請求項１】
燃料タンク内で発生した蒸発燃料を内燃機関の吸気系にパージするパージ手段と、
前記パージ手段によるパージ量に応じて前記内燃機関に供給する燃料量を減量補正するパージ補正量を算出するパージ補正量算出手段と、
前記内燃機関の運転状態に応じて目標空燃比を設定する目標空燃比設定手段と、
前記目標空燃比設定手段により設定された目標空燃比になるよう前記内燃機関に供給される混合気の空燃比を制御する空燃比補正量を算出する空燃比補正量算出手段と、
アイドル中であるか走行中であるかを判別する判別手段を有し、走行中と判別されると前記目標空燃比に応じてリーン領域では小さい値をとり、リッチ領域に移行するに従い値が大きくなるように前記パージ補正量の更新量を決定する第１更新量決定手段と、
実空燃比と前記目標空燃比との偏差に基づいて前記パージ補正量の更新量を決定する第２更新量決定手段と、
前記第１更新量決定手段により決定された更新量及び前記第２更新量決定手段により決定された更新量により更新されたパージ補正量、及び空燃比補正量に応じて前記内燃機関に供給する燃料量を決定する燃料供給量決定手段とを有し、
前記パージ補正量算出手段は、パージを停止するとき前記補正量を徐々に小さくすることを特徴とする内燃機関の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の制御装置に係わり、特に、燃料タンク内で発生した蒸発燃料を内燃機関の吸気系にパージするパージ制御に関するものである。
【０００２】
【従来の技術】
従来の内燃機関の制御装置は、例えば、パージカットソレノイドバルブ（以下、「ソレノイド」と略記する。）を用いて、燃料タンク内で発生した蒸発燃料の吸気系への供給量をコントロールし、この供給量に応じて、インジェクタから供給する燃料量を減算するパージ補正係数を算出して、シリンダー内がオーバーリッチとなるのを防いでいた。
【０００３】
すなわち、シリンダー内に供給される蒸発燃料が多ければ、パージ補正量算出の基礎となるパージ補正係数を大きくし、インジェクタから供給する燃料量もその分減算する。
この場合において、パージ補正係数はソレノイドの開度によってコントロールしていた（例えば、特開平１１−６２７２９号）。
【０００４】
【発明が解決しようとする課題】
しかしながら、パージ補正量の更新量決定の基礎となるパージ濃度補正係数を算出する際の加算項が常に固定値である場合には、その設定如何によって、以下の問題が生じる。
すなわち、目標空燃比が濃い状態を基準に加算項を大きく設定すると、燃焼が不安定なリーンバーン時には出力の変動が大きくなり、運転性の悪化を招く。逆に、目標空燃比が薄い状態を基準に小さく設定すると、パージの変化に対する追従性が低下する。
【０００５】
また、上記制御装置では、それまで開いていたソレノイドを全閉にした際には、パージ補正係数を即座に「０」としていたため、パージカットを実施（パージを停止）した後に、ソレノイドと吸気マニホールド間に残留する蒸発燃料がシリンダー内に流入するため、オーバーリッチを引き起こしていた。
【０００６】
本発明は、このような事情に鑑みてなされたもので、その目的とするところは、運転状態や目標空燃比に応じた最適燃料供給量の決定を可能とすることにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、請求項１の発明は、燃料タンク（実施の形態では、燃料タンク４１）内で発生した蒸発燃料を内燃機関（実施の形態では、内燃機関本体１）の吸気系にパージするパージ手段（実施の形態では、通路４２，パージ通路４３，パージ制御弁４４，キャニスタ４５，２ウェイバルブ４６）と、前記パージ手段によるパージ量に応じて前記内燃機関に供給する燃料量を減量補正するパージ補正量を算出するパージ補正量算出手段（実施の形態では、ＥＣＵ５で実行されるステップＳ００３，Ｓ０３９〜Ｓ０４３）と、前記内燃機関の運転状態に応じて目標空燃比を設定する目標空燃比設定手段（実施の形態では、ＥＣＵ５）と、前記目標空燃比設定手段により設定された目標空燃比になるよう前記内燃機関に供給される混合気の空燃比を制御する空燃比補正量を算出する空燃比補正量算出手段（実施の形態では、ＥＣＵ５）と、アイドル中であるか走行中であるかを判別する判別手段（実施の形態では、ＥＣＵ５で実行されるステップＳ０５３，Ｓ０５７）を有し、走行中と判別されると前記目標空燃比に応じてリーン領域では小さい値をとり、リッチ領域に移行するに従い値が大きくなるように前記パージ補正量の更新量を決定する第１更新量決定手段（実施の形態では、ＥＣＵ５で実行されるステップＳ０５３，Ｓ０５７，Ｓ０５９，Ｓ０６１）と、実空燃比と前記目標空燃比との偏差に基づいて前記パージ補正量の更新量を決定する第２更新量決定手段（実施の形態では、ＥＣＵ５で実行されるステップＳ４０７〜Ｓ４０９，Ｓ４１３，Ｓ４１４，Ｓ４１８〜Ｓ４２３，Ｓ４２５〜Ｓ４３５）と、前記第１更新量決定手段により決定された更新量及び第２更新量決定手段により決定された更新量により更新されたパージ補正量、及び空燃比補正量に応じて前記内燃機関に供給する燃料量を決定する燃料供給量決定手段（実施の形態では、ＥＣＵ５）とを有し、前記パージ補正量算出手段は、パージを停止するとき前記補正量を徐々に小さくすることを特徴としている。
【０００８】
この構成によれば、目標空燃比設定手段により設定された目標空燃比に応じて、更新量算出手段がパージ補正量の更新量を決定するため、実空燃比と目標空燃比とを比較して実空燃比がリーンである場合には、パージ補正量の更新量を緩やかに設定することが可能となり、オーバーリーンによるエンジン回転数の低下，エンスト等を防止することができる。
【００１０】
この構成によれば、パージカットを実施した際に、内燃機関に供給する燃料量の減量補正値が即座に「０」とならず、徐々に「０」へと移行させることが可能になるため、系内に残留する蒸発燃料の影響による実空燃比のリッチ化を防止することができる。
【００１１】
【発明の実施の形態】
本発明の一の実施の形態を図面を参照して以下に説明する。
図１は本発明の一の実施の形態を示す図である。同図中、１は、各気筒に吸気弁及び排気弁（図示せず）を設けた直列４気筒の、動力を発生させる内燃機関本体である。
【００１２】
内燃機関の吸気管２は分岐部（吸気マニホルド）１１を介して内燃機関本体１の各気筒の燃焼室に接続する。吸気管２の途中にはスロットル弁３が配されている。スロットル弁３にはスロットル弁開度（θＴＨ）センサ４が連結されており、スロットル弁開度θＴＨに応じた電気信号を出力してＥＣＵ５に供給する。吸気管２には、スロットル弁３をバイパスする補助空気通路６が設けられており、該通路６の途中には補助空気量制御弁７が配されている。補助空気量制御弁７は、ＥＣＵ５に接続されており、ＥＣＵ５によりその開弁量が制御される。
【００１３】
吸気管２のスロットル弁３の上流側には吸気温（ＴＡ）センサ８が装着されており、その検出信号がＥＣＵ５に供給される。吸気管２のスロットル弁３と吸気マニホルド１１の間には、チャンバ９が設けられており、チャンバ９には吸気管内絶対圧（ＰＢＡ）センサ１０が取り付けられている。ＰＢＡセンサ１０の検出信号はＥＣＵ５に供給される。
【００１４】
内燃機関本体１には内燃機関水温（ＴＷ）センサ１３が装着されており、その検出信号がＥＣＵ５に供給される。ＥＣＵ５には、内燃機関本体１のクランク軸（図示せず）の回転角度を検出するクランク角度位置センサ１４が接続されており、クランク軸の回転角度に応じた信号がＥＣＵ５に供給される。クランク角度位置センサ１４は、内燃機関本体１の特定の気筒の所定クランク角度位置で信号パルス（以下「ＣＹＬ信号パルス」という）を出力する気筒判別センサ、各気筒の吸入行程開始時の上死点（ＴＤＣ）に関し所定クランク角度前のクランク角度位置で（４気筒エンジンではクランク角１８０度毎に）ＴＤＣ信号パルスを出力するＴＤＣセンサ及びＴＤＣ信号パルスより短い一定クランク角周期（例えば３０度周期）で１パルス（以下「ＣＲＫ信号パルス」という）を発生するＣＲＫセンサから成り、ＣＹＬ信号パルス、ＴＤＣ信号パルス及びＣＲＫ信号パルスがＥＣＵ５に供給される。これらの信号パルスは、燃料噴射時期、点火時期等の各種タイミング制御及び内燃機関の回転数ＮＥの検出に使用される。
【００１５】
吸気マニホルド１１の吸気弁の少し上流側には、燃料噴射弁１２が、各気筒毎に設けられており、各燃料噴射弁１２は図示しない燃料ポンプに接続されているとともにＥＣＵ５に電気的に接続されて、ＥＣＵ５からの信号により燃料噴射時期及び燃料噴射時間（開弁時間）が制御される。内燃機関本体１の点火プラグ（図示せず）もＥＣＵ５に電気的に接続されており、ＥＣＵ５により点火時期θＩＧが制御される。
【００１６】
排気管１６は分岐部（排気マニホルド）１５を介して内燃機関本体１の燃焼室に接続されている。排気系の排気管１６には分岐部１５が集合する部分の直ぐ下流側に、広域空燃比センサ（以下「ＬＡＦセンサ」という）１７が設けられている。さらにＬＡＦセンサ１７の下流側には直下三元触媒１９及び床下三元触媒２０が配されており、またこれらの三元触媒１９及び２０の間には酸素濃度センサ（以下「Ｏ２センサ」という）１８が装着されている。三元触媒１９、２０は、排気ガス中のＨＣ，ＣＯ，ＮＯｘ等の浄化を行う。
【００１７】
ＬＡＦセンサ１７は、ＥＣＵ５に接続されており、排気ガス中の酸素濃度すなわち実空燃比を検出し該実空燃比に比例した電気信号を出力し、その電気信号をＥＣＵ５に供給する。Ｏ２センサ１８は、その出力が理論空燃比の前後において急激に変化する特性を有し、その出力は理論空燃比よりリッチ側で高レベルとなり、リーン側で低レベルとなる。Ｏ２センサ１８は、ＥＣＵ５に接続されており、その検出信号はＥＣＵ５に供給される。
【００１８】
排気還流機構３０は、吸気管２のチャンバ９と排気管１６とを接続する排気還流路３１と、排気還流路３１の途中に設けられ、排気還流量を制御する排気還流弁（ＥＧＲ弁）３２と、ＥＧＲ弁３２の弁開度を検出し、その検出信号をＥＣＵ５に供給するリフトセンサ３３とから成る。ＥＧＲ弁３２は、ソレノイドを有する電磁弁であり、ソレノイドはＥＣＵ５に接続され、その弁開度がＥＣＵ５からの制御信号によりリニアに変化させることができるように構成されている。
【００１９】
蒸発燃料処理装置４０は、燃料を貯留する燃料タンク４１内で発生した蒸発燃料を内燃機関本体１の吸気系にパージするもので、燃料タンク４１が通路４２を介してキャニスタ４５に接続し、キャニスタ４５はパージ通路４３を介して吸気管２のチャンバ９に接続している。キャニスタ４５は、燃料タンク４１内で発生する蒸発燃料を吸着する吸着剤を内蔵し、外気取込口を有する。通路４２の途中には、正圧バルブ及び負圧バルブから成る２ウェイバルブ４６が配設され、パージ通路４３の途中にはデューティ制御型の電磁弁であるパージ制御弁４４が設けられている。パージ制御弁４４は、ＥＣＵ５に接続されており、ＥＣＵ５からの信号に応じて制御される。
【００２０】
ＥＣＵ５は、上述した各種センサからの入力信号波形を整形して電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変化する等の機能を有する入力回路と、中央処理回路（ＣＰＵ）と、該ＣＰＵで実行される各種演算プログラムや後述する各種マップ及び演算結果等を記憶するＲＯＭ及びＲＡＭからなる記憶回路と、燃料噴射弁１２，パージ制御弁４４等の各種電磁弁や点火プラグに駆動信号を出力する出力回路とを備えている。
【００２１】
ＥＣＵ５は、上述の各種内燃機関運転パラメータ信号に基づいて、ＬＡＦセンサ１７及びＯ２センサ１８の出力に応じたフィードバック制御運転領域やオープン制御運転領域等の種々の内燃機関運転状態を判別するとともに、内燃機関運転状態に応じ、燃料噴射弁１２の燃料噴射時間ＴＯＵＴを演算し、この演算結果に基づいて燃料噴射弁１２を駆動する信号を出力する。すなわち、ＥＣＵ５は、上述した内燃機関本体１、燃料噴射弁１２、燃料タンク４１および蒸発燃料処理装置４０とを有する内燃機関を制御する。しかも、ＥＣＵ５は、蒸発燃料処理装置４０による蒸発燃料のパージ量に応じて、燃料噴射弁１２により内燃機関本体１に供給する燃料量である燃料噴射弁１２の燃料噴射時間ＴＯＵＴを補正する。
【００２２】
燃料量に相当する燃料噴射弁１２の燃料噴射時間（燃料噴射弁１２の開弁時間）ＴＯＵＴは、概略以下の式に基づいて求められることになる。
ＴＯＵＴ＝ＫＴＴＬ×ＴＩＭ×ＫＡＦ×ＫＣＭＤ−ＫＡＦＥＶＡＣＴ×ＴＩＭ×ＫＣＭＤ
ここで、ＫＴＴＬは空燃比補正係数以外の補正係数を、ＴＩＭは内燃機関の吸気系負圧と内燃機関の回転数ＮＥとにより決まるマップ値である基本燃料噴射量を、ＫＡＦは、ＬＡＦセンサ１７の出力に応じた空燃比のＰＩＤ制御のフィードバック係数である空燃比フィードバック係数を、ＫＣＭＤは目標空燃比に基づく目標空燃比係数を、ＫＡＦＥＶＡＣＴはパージ補正係数を、それぞれ示している。
【００２３】
この式から明らかなように、燃料噴射弁１２の開弁時間ＴＯＵＴは、内燃機関の運転状態から決まる基本燃料噴射量ＴＩＭと目標空燃比係数ＫＣＭＤと空燃比フィードバック係数ＫＡＦ等とに基づく値から、パージによる影響であるパージ補正係数ＫＡＦＥＶＡＣＴに基づく値を減算して求められることになる。すなわち、パージ補正係数ＫＡＦＥＶＡＣＴは、燃料噴射時間ＴＯＵＴをパージによる影響を排除するべく補正するための補正量となる。
【００２４】
以下に、このパージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）について図２に示すサブルーチン・フローチャートを参照して以下に説明する。このＫＡＦＥＶＡＣＴ＿ＣＡＬのフローチャートは、例えば、ＴＤＣセンサからＴＤＣ信号パルスが出力される毎にスタートからエンドまでの１サイクルが実行される。
【００２５】
このサブルーチンは、パージ補正係数ＫＡＦＥＶＡＣＴをパージ実施中とパージカット実施中とで別々に設定するステップを備えている。
まず、ステップＳ００１では、フィードバック制御実行フラグＦ＿ＬＡＦＦＢのフラグ値に「１」がセットされているか、即ち、空燃比フィードバック制御を行っているかを判定し、空燃比フィードバック制御を行っている場合（判定結果が「ＹＥＳ」）は、ステップＳ００３に進み、空燃比フィードバック制御を行っていない場合（判定結果が「ＮＯ」）は、ステップＳ０３１に進む。
【００２６】
ステップＳ００３では、パージ制御弁駆動デューティ値ＤＯＵＴＰＧが「０％」であるか、即ち、パージ制御弁４４の指令値が「０」となって、パージがカットされているかを判定し、パージ制御弁４４が開いている場合（判定結果が「ＮＯ」）、即ち、パージ実施中はステップＳ００５に進み、パージ制御弁４４が閉じられている場合（判定結果が「ＹＥＳ」）、即ち、パージカット実施中はステップＳ０３１に進む。
【００２７】
［パージ実施中］
ステップＳ００５では、空燃比フィードバック補正係数ＫＡＦの学習値（以下、「空燃比学習値」と略記する。）ＫＲＥＦ／ＫＲＥＦＸを選択処理する。具体的には、内燃機関本体１の運転状態（アイドル，リーンバーン，ストイキ，リッチの４条件）に基づき選択した値を、空燃比学習値ＫＲＥＦ／ＫＲＥＦＸにセットする。なお、空燃比学習値ＫＲＥＦはパージ実施中に算出されて記憶された学習値、空燃比学習値ＫＲＥＦＸはパージカット実施中に算出されて記憶された学習値である。
【００２８】
ステップＳ００７では、空燃比学習値ＫＲＥＦ／ＫＲＥＦＸ等に基づくパージ濃度係数ＫＡＦＥＶの算出を行う。このパージ濃度係数ＫＡＦＥＶの算出手順は、図３のサブルーチン・フロー・チャート（ＫＡＦＥＶ＿ＣＡＬ）に示す通りであるが、これについては後で説明する。
ステップＳ００９では、今回の目標空燃比係数ＫＣＭＤnと前回の目標空燃比係数ＫＣＭＤn-1との偏差ＤＫＣＭＤの絶対値が、所定の閾値＃ＤＫＣＭＥＶＡ以上であるかを判定し、その判定結果が「ＹＥＳ」の場合、即ち、目標空燃比（Ａ／Ｆ）が移行中である場合は、ステップＳ０１１に進み、目標空燃比（Ａ／Ｆ）が移行中でない場合（判定結果が「ＮＯ」）は、ステップＳ０１３に進む。
【００２９】
ステップＳ０１１では、目標空燃比移行ディレータイマＴＤＫＣＥＶＡに所定のタイマ値＃ＴＭＤＫＣＥＶＡ（例えば、１．５秒）をセットしてスタートさせる。これにより、目標空燃比（Ａ／Ｆ）が移行中、即ち、パージ濃度係数ＫＡＦＥＶ等の算出誤差が大きくなると予想される間、その後の処理は実行されない。
ステップＳ０１３では、目標空燃比移行ディレータイマＴＤＫＣＥＶＡのタイマ値が「０秒」であるかを判定し、その判定結果が「ＮＯ」の場合は、上記と同様に処理を実行せず、判定結果が「ＹＥＳ」の場合は、ステップＳ０１５に進む。
ステップＳ０１５では、目標パージ補正係数ＫＡＦＥＶＡＣＺの算出を行う。この目標パージ補正係数ＫＡＦＥＶＡＣＺの算出手順は、図４のサブルーチン・フロー・チャート（ＫＡＦＥＶＡＣＺ＿ＣＡＬ）に示す通りであるが、これについては後で説明する。
【００３０】
ステップＳ０１７，Ｓ０１９，Ｓ０２１，Ｓ０２７，Ｓ０２９は、パージ実施後間もない時、即ち、パージ制御弁４４を開いて蒸発燃料が吸気マニホールド１１に届くまでの間は、蒸発燃料による空燃比（Ａ／Ｆ）への影響遅れが生じるため、その間、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理を止めておくために実行される。
ステップＳ０１７では、一時変数ＮＥＶＤＬＹＴＸにパージ補正係数加算ディレーの所定値＃ＮＥＶＤＬＹＴをセットする。この所定値＃ＮＥＶＤＬＹＴは、内燃機関の回転数ＮＥに応じて、図５のＮＥＶＤＬＹＴテーブルをテーブル検索することにより取得する。同図に示すように、一時変数ＮＥＶＤＬＹＴＸは、内燃機関の回転数ＮＥが高回転になる程、小さくなるように設定されている。
【００３１】
ステップＳ０１９では、カウンタＮＥＶＤＬＹがステップＳ０１７でセットしたパージ補正係数加算ディレーＮＥＶＤＬＹＴＸ以上であるかを判定し、その判定結果が「ＹＥＳ」の場合は、上記影響遅れが解消したものと判断してステップＳ０２１に進み、判定結果が「ＮＯ」の場合は、上記影響遅れが解消していないものと判断してステップＳ０２７に進む。
ステップＳ０２１では、フラグＦ＿ＮＥＶＤＬＹＥＤのフラグ値に、遅れが解消したことを示す「１」をセットする。これにより、ステップＳ０１９で「ＮＯ」と判定された場合も、ステップＳ０２７での判定により、パージ補正係数算出補正係数ＫＡＦＥＶＡＣＴ等を算出する処理に復帰することとなる。
【００３２】
ステップＳ０２７では、フラグＦ＿ＮＥＶＤＬＹＥＤのフラグ値が「１」であるかを判定し、その判定結果が「ＹＥＳ」の場合は、ステップＳ０２３に進み、判定結果が「ＮＯ」の場合は、ステップＳ０２９に進む。
ステップＳ０２９では、カウンタＮＥＤＶＤＬＹの値をインクリメントする。
ステップＳ０２３では、パージ補正係数算出補正係数ＫＥＶＡＣＴを算出する。このパージ補正係数算出補正係数ＫＥＶＡＣＴの算出手順は、図１５，図１６のサブルーチン・フロー・チャート（ＫＥＶＡＣＴ＿ＣＡＬ）に示す通りであるが、これについては後で説明する。
ステップＳ０２５では、ステップＳ０１５で算出した目標パージ補正係数ＫＡＦＥＶＡＣＺと、ステップＳ０２３で算出したパージ補正係数算出補正係数ＫＥＶＡＣＴとを乗じて得た値を、パージ補正係数ＫＡＦＥＶＡＣＴにセットする。
【００３３】
［パージカット実施中］
空燃比フィードバック制御を行っていない場合（ステップＳ００１の判定結果が「ＮＯ」）、又は空燃比フィードバック制御を行っている場合（ステップＳ００１の判定結果が「ＹＥＳ」）であってもパージカットを実施している場合（ステップＳ００３の判定結果が「ＹＥＳ」）は、ステップＳ０３１に進む。
ステップＳ０３１及びそれ以降のステップＳ０３３，Ｓ０３５，Ｓ０３７では、フラグＦ＿ＮＥＶＤＬＹＥＤ，カウンタＮＥＶＤＬＹ，パージ補正係数算出補正係数ＫＥＶＡＣＴ，目標パージ補正係数ＫＡＦＥＶＡＣＺの各フラグ値に「０」をセットする。
【００３４】
また、ステップＳ０３９では、パージ補正係数ＫＡＦＥＶＡＣＴから所定のパージ補正係数下降時減算量＃ＤＫＡＦＥＶＡＭ（例えば、０．０２３）を減算し、これを新たなパージ補正係数ＫＡＦＥＶＡＣＴとする。これにより、パージ制御弁４４が全閉となった場合（ステップＳ００３の判定結果が「ＹＥＳ」）であっても、パージ補正係数ＫＡＦＥＶＡＣＴを即座に「０」とすることなく、所定のパージ補正係数下降時減算量＃ＤＫＡＦＥＶＡＭを用いて徐々に「０」に近づけることが可能になり、パージカット後においても、系内に残留する蒸発燃料の影響による実空燃比のリッチ化を効果的に緩和ないしは防止することができる。
【００３５】
ステップＳ０４１では、減算後のパージ補正係数ＫＡＦＥＶＡＣＴ（ステップＳ０１１）が目標パージ補正係数ＫＡＦＥＶＡＣＺを下回るかを判定し、下回る場合（判定結果が「ＹＥＳ」）はステップＳ０４３に進み、下回らない場合（判定結果が「ＮＯ」）は、ステップＳ０４３をスキップする。
ステップＳ０４３では、パージ補正係数ＫＡＦＥＶＡＣＴに「０」をセットする。
【００３６】
次に、図３のサブルーチン・フロー・チャートを用いて、図２のステップＳ００７で実行されるパージ濃度係数ＫＡＦＥＶの算出手順を説明する。
このサブルーチンは、パージ濃度係数ＫＡＦＥＶの加減算項ＤＫＥＶＡＰＯをアイドル運転中と走行中とで別々に設定するステップと、走行中の加減算項ＤＫＥＶＡＰＯを目標空燃比係数ＫＣＭＤに応じて設定するステップと、目標空燃比係数ＫＣＭＤ移行時におけるパージ濃度係数ＫＡＦＥＶの誤学習を防止するステップとを備えている。
【００３７】
まず、ステップＳ０５１では、前回のフィードバック制御実行フラグＦ＿ＬＡＦＦＢのフラグ値に「１」がセットされているか、即ち、空燃比フィードバック制御を行っていたかを判定し、空燃比フィードバック制御を行っていなかった場合（判定結果が「ＮＯ」）は、そのまま処理を終了し、空燃比フィードバック制御を行っていた場合（判定結果が「ＹＥＳ」）は、ステップＳ０５３に進む。
ステップＳ０５３では、アイドル運転フラグＦ＿ＩＤＬＥのフラグ値が「１」にセットされているか、即ち、内燃機関本体１がアイドル運転状態にあるかを判定し、アイドル運転状態にある場合（判定結果が「ＹＥＳ」）はステップＳ０５５に進み、アイドル運転状態外にある場合（判定結果が「ＮＯ」）はステップＳ０５７に進む。
【００３８】
ステップＳ０５５では、加減算項ＤＫＥＶＡＰＯに所定値＃ＤＫＥＶＡＰＯ１（例えば、０．００１）をセットする。この＃ＤＫＥＶＡＰＯ１は、アイドル運転状態での加減算項である。
ステップＳ０５７では、車速ＶＰが「０」であるか、すなわち、車両が停止中であるかを判定し、車両停止中の場合（判定結果が「ＹＥＳ」）は、ステップＳ０５５に進み、車両走行中の場合（判定結果が「ＮＯ」）は、ステップＳ０５９に進む。
【００３９】
ステップＳ０５９では、目標空燃比係数ＫＣＭＤに応じた加減算項＃ＤＫＥＶＡＰＯ２のテーブル検索（図７）を行う。この＃ＤＫＥＶＡＰＯ２は、アイドル運転状態外での加減算項であり、図７に示すように、目標空燃比係数ＫＣＭＤが小さい程、小さくなるように設定されている。これにより、燃焼の不安定となるリーンバーン中（判断結果が「ＹＥＳ」）には、パージ濃度係数ＫＡＦＥＶの変動を緩やかにし得て、オーバーリーンによる運転性の悪化を防止することが可能となる。
ステップＳ０６１では、ステップＳ０５９でテーブル検索により取得した所定値＃ＤＫＥＶＡＰＯ２（例えば、０．０７）を加減算項ＤＫＥＶＡＰＯにセットする。
【００４０】
しかるに、以上説明したステップＳ０５３〜Ｓ０６１により、アイドル運転中と走行中とでパージ濃度係数ＫＡＦＥＶの加減算項ＤＫＥＶＡＰＯを別々に設定する処理と、走行中においても目標空燃比係数ＫＣＭＤに応じて加減算項ＤＫＥＶＡＰＯを設定する処理とが実現されている。
ステップＳ０６３では、目標空燃比係数の今回値ＫＣＭＤnと前回値ＫＣＭＤn-1の偏差ＤＫＣＭＤの絶対値が所定の閾値＃ＤＫＣＭＥＶ（例えば、０．００８）以上であるかを判定し、その判定結果が「ＹＥＳ」の場合、即ち、目標空燃比係数ＫＣＭＤが移行中であると判定した場合はステップＳ０６５に進み、そうでない場合（判定結果が「ＮＯ」）は、ステップＳ０６７に進む。
【００４１】
ステップＳ０６５では、目標空燃比移行完了後パージ濃度係数算出デイレータイマＴＤＫＣＭＥＶに所定のタイマ値＃ＴＭＤＫＣＭＥＶ（例えば、１．５秒）をセットしてスタートさせる。これにより、目標空燃比移行完了後から所定タイマー時間は、パージ濃度係数ＫＡＦＥＶの算出処理が実行されないので、目標空燃比係数ＫＣＭＤの移行時に生じ得るパージ濃度係数ＫＡＦＥＶの誤学習が効果的に防止される。
ステップＳ０６７では、空燃比移行完了後パージ濃度係数算出ディレータイマＴＤＫＣＭＥＶが「０秒」であるかを判定し、その判定結果が「ＮＯ」の場合は、上記と同様に処理を中断し、「ＹＥＳ」の場合は、ステップＳ０６９に進む。
【００４２】
ステップＳ０６９では、空気流量ＱＡＩＲに応じたパージ濃度係数算出判定偏差ＤＫＡＦＥＶのテーブル検索（図６）を行い、このテーブル検索により取得した所定値＃ＤＫＡＦＥＶ（例えば、０．０７）をパージ濃度係数算出判定偏差ＤＫＡＦＥＶにセットする。なお、パージ濃度係数算出判定偏差ＤＫＡＦＥＶは、図６に示すように、空気流量ＱＡＩＲが高流量になる程、小さくなるように設定されている。
【００４３】
ステップＳ０７１，Ｓ０７３では、ＬＡＦセンサ１１７の検出値に基づいて公知の手法、例えば、ＰＩＤ制御則を用いて求められる空燃比フィードバック補正係数ＫＡＦが、図２のステップＳ００５にて選択した空燃比学習値ＫＲＥＦＸからパージ濃度係数算出判定偏差ＤＫＡＦＥＶを減算して得た下側の閾値よりも小さいか（ステップＳ０７１の判定結果が「ＹＥＳ」），パージ濃度係数算出判定偏差ＤＫＡＦＥＶを加算して得た上側の閾値よりも大きいか（ステップＳ０７１の判定結果が「ＮＯ」かつステップＳ０７３の判定結果が「ＹＥＳ」），下側の閾値と上側の閾値の間にあるか（ステップＳ０７１，Ｓ０７３の判定結果が共に「ＮＯ」）を判定する。
【００４４】
空燃比フィードバック補正係数ＫＡＦが下側の閾値よりも小さい場合（ステップＳ０７１の判定結果が「ＹＥＳ」）であって、ＬＡＦセンサ１７によって検出された実空燃比係数ＫＡＣＴが目標空燃比係数ＫＣＭＤよりも大きいとき（ステップＳ０７５の判定結果が「ＹＥＳ」）は、パージによる影響で空燃比（Ａ／Ｆ）がリッチになったものと判定して、ステップＳ０７９に進み、ステップＳ０７５の判定結果が「ＮＯ」の場合は、ステップＳ０８３に進む。
【００４５】
空燃比フィードバック補正係数ＫＡＦが上側の閾値よりも大きい場合（ステップＳ０７１の判定結果が「ＮＯ」かつステップＳ０７３の判定結果が「ＹＥＳ」）であって、実空燃比係数ＫＡＣＴが目標空燃比係数ＫＣＭＤよりも小さいとき（ステップＳ０７７の判定結果が「ＹＥＳ」）は、パージによる空燃比（Ａ／Ｆ）への影響が少ないものと判定して、ステップＳ０８１に進み、ステップＳ０７７の判定結果が「ＮＯ」の場合は、ステップＳ０８３に進む。
空燃比フィードバック補正係数ＫＡＦが上下閾値の間にある場合（ステップＳ０７１及びステップＳ０７３の判定結果が共に「ＮＯ」）は、ステップＳ０８３に進む。
【００４６】
ステップＳ０７９では、一時変数ＫＡＦＥＶＦにステップＳ０５５もしくはＳ０６１で設定された加減算項ＤＫＥＶＡＰＯを加算して得た値を、新たな一時変数ＫＡＦＥＶＦとする。これにより、ステップＳ０８５で算出されるパージ濃度係数ＫＡＦＥＶは大きなものとなる。
ステップＳ０８１では、一時変数ＫＡＦＥＶＦから加減算項ＤＫＥＶＡＰＯを減算して得た値を、新たな一時変数ＫＡＦＥＶＦとする。これにより、ステップＳ０８５で算出されるパージ濃度係数ＫＡＦＥＶは小さなものとなる。
ステップＳ０８３では、空燃比学習値ＫＲＥＦＸから空燃比フィードバック補正係数ＫＡＦを減算し、更にこれを係数＃ＣＡＦＥＶ（例えば、２５６）で除算した値を一時変数ＫＡＦＥＶＦに加算して得た値を、新たな一時変数ＫＡＦＥＶＦとする。これにより、ステップＳ０８５で算出されるパージ濃度係数ＫＡＦＥＶは、小さくも大きくもなくなる。
【００４７】
しかるに、以上説明したステップＳ０７１，Ｓ０７３においては、パージ濃度係数ＫＡＦＥＶの算出基準として、空燃比学習値ＫＲＥＦＸを用いることにより、蒸発燃料の影響によるリッチ化，リーン化の補正を適切に行うことができる。
【００４８】
ステップＳ０８５では、今回の一時変数ＫＡＦＥＶＦ，前回の一時変数ＫＡＦＥＶＦ（ｎ−１）及びなまし値＃ＣＫＡＦＥＶ（例えば、０．０３１）を用いて、なまし計算を行い、その計算結果をパージ濃度係数ＫＡＦＥＶにセットする。
ステップＳ０８７では、ステップＳ０８５で算出したパージ濃度係数ＫＡＦＥＶが所定のリミット値＃ＫＡＦＥＶＬＭＴ（例えば、２．０）よりも大きいかを判定し、このリミット値＃ＫＡＦＥＶＬＭＴを超える場合（判定結果が「ＹＥＳ」）は、ステップＳ０８９に進み、リミット値＃ＫＡＦＥＶＬＭＴを超えない場合（判定結果が「ＮＯ」）は、ステップＳ０８９をスキップする。
ステップＳ０８９では、パージ濃度係数ＫＡＦＥＶにリミット値＃ＫＡＦＥＶＬＭＴをセットする。
【００４９】
次に、図４のサブルーチン・フロー・チャートを用いて、図２のステップＳ０１５で実行される目標パージ補正係数ＫＡＦＥＶＡＣＺの算出手順を説明する。
【００５０】
まず、ステップＳ０９１では、その他補正係数ＫＴＴＬに空燃比フィードバック補正係数ＫＡＦを乗じ、更にこれから所定のガード算出補正値＃ＤＥＶＡＣＴＧを減算して得た値を、一時変数ＫＥＶＡＣＴＧにセットする。
【００５１】
ステップＳ０９３では、ステップＳ０２３で算出したパージ濃度係数ＫＡＦＥＶと、パージ制御弁駆動デューティ値比ＰＧＲＡＴＥと、目標パージ流量比ＱＲＡＴＥとを乗じて得た値を、目標パージ補正係数ＫＡＦＥＶＡＣＺにセットする。
ステップＳ０９５では、ステップＳ０９３でセットされた目標パージ補正係数ＫＡＦＥＶＡＣＺがステップＳ０９１でセットされた一時変数ＫＥＶＡＯＴＧよりも大きいかを判定し、その判定結果が「ＹＥＳ」の場合は、ステップＳ０９７に進み、判定結果が「ＮＯ」の場合は、ステップＳ０９７をスキップする。
【００５２】
ステップＳ０９７では、目標パージ補正係数ＫＡＦＥＶＡＣＺに一時変数ＫＥＶＡＣＴＧをセットする。
【００５３】
次に、図１のフローチャートのステップＳ０２３で算出される、パージ補正係数ＫＡＦＥＶＡＣＴを修正するための修正量であるパージ補正係数算出補正係数ＫＥＶＡＣＴ（０以上１以下）の算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）のサブルーチンフローチャートについて図１５，図１６を参照して以下に説明する。
【００５４】
まず、ステップＳ４０１において、内燃機関本体１がアイドル状態にあるか否かを示すアイドル運転フラグＦ＿ＩＤＬＥがセットされているか否か、すなわちＦ＿ＩＤＬＥ＝１であるか否かを判定する。
このステップＳ４０１において、Ｆ＿ＩＤＬＥ＝１でない場合、すなわち内燃機関本体１がアイドル状態外にある場合には、後述するステップＳ４２４に進む。
【００５５】
「アイドル状態」
一方、ステップＳ４０１においてＦ＿ＩＤＬＥ＝１である場合、すなわち内燃機関本体１がアイドル状態にある場合には、ステップＳ４０２において、後述するステップＳ４２４でアイドル状態外になってから所定時間経過したか否かを判断する際に用いるアイドル外移行ディレイタイマＴＫＥＶＡＣＴＩのタイマ値を、所定のアイドル外移行ディレイタイマ値♯ＴＭＫＥＶＡＣＩ（例えば２．０ｓ）にセットする。
【００５６】
次に、ステップＳ４０３において、このパージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルで、内燃機関本体１に負荷となるエアコンディショナ（以下「エアコン」と称す）がＯＮ状態にあるか否かを示すエアコンＯＮフラグＦ＿ＨＡＣＩＮＤがセットされているか否か、すなわちＦ＿ＨＡＣＩＮＤ＝１であるか否かを判定する。ここで、エアコンＯＮフラグＦ＿ＨＡＣＩＮＤは、エアコン負荷そのものでセットしてもよく、エアコン負荷補正用二次エアが導入されるのをトリガとしてセットしてもよい。
【００５７】
このステップＳ４０３において、Ｆ＿ＨＡＣＩＮＤ＝１でない場合、エアコンがＯＮ状態になく、内燃機関本体１にとっての負荷が小さいと判定して後述するステップＳ４０７に進む。
【００５８】
一方、ステップＳ４０３において、Ｆ＿ＨＡＣＩＮＤ＝１である場合、エアコンがＯＮ状態にあって、内燃機関本体１にとっての負荷が大きくなっていると判定できるが、このとき、次のステップＳ４０４において、このパージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の前回のサイクルで、エアコンＯＮフラグＦ＿ＨＡＣＩＮＤがセットされていたか否か、すなわＦ＿ＨＡＣＩＮＤ＝１であったか否かを判定する。
【００５９】
このステップＳ４０４において、前回のサイクルでＦ＿ＨＡＣＩＮＤ＝１であった場合、ステップＳ４０３で今回のサイクルでもＦ＿ＨＡＣＩＮＤ＝１であることから、エアコンのＯＮ状態が持続していて、内燃機関本体１にとっての負荷の変動を検出していないと判定して後述するステップＳ４０７に進む。
【００６０】
一方、ステップＳ４０４において、前回のサイクルでＦ＿ＨＡＣＩＮＤ＝１でなかった場合、ステップＳ４０３で今回のサイクルでＦ＿ＨＡＣＩＮＤ＝１であることから、エアコンがＯＦＦ状態からＯＮ状態になった直後である、すなわち内燃機関本体１にとっての負荷の変動を検出したと判定し、ステップＳ４０５で、現在設定されているパージ補正係数算出補正係数ＫＥＶＡＣＴが所定のリミット値♯ＫＥＶＡＣＴＡＣ（具体的には０．３）より大きいか否かを判定する。
【００６１】
そして、ステップＳ４０５で、ＫＥＶＡＣＴ＞♯ＫＥＶＡＣＴＡＣではない場合、現在のパージ補正係数算出補正係数ＫＥＶＡＣＴに基づくパージ補正係数ＫＡＦＥＶＡＣＴが小さいため、負荷変動があっても影響が少ないと判定して後述するステップＳ４０７に進む。
【００６２】
一方、ステップＳ４０５で、ＫＥＶＡＣＴ＞♯ＫＥＶＡＣＴＡＣである場合、負荷変動があった場合の影響が大きいと判定して、ステップＳ４０６において、パージ補正係数算出補正係数ＫＥＶＡＣＴを予め定められた所定のリミット値♯ＫＥＶＡＣＴＡＣに初期化して、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。ここで、この初期化は、例えば、高温条件下における高濃度蒸発燃料発生時等、燃料噴射時間ＴＯＵＴを補正するパージ補正係数ＫＡＦＥＶＡＣＴが大きい場合には、負荷変動直後はパージ制御弁４４を介して流入する蒸発燃料の増大が遅れるため、そのままパージ補正係数ＫＡＦＥＶＡＣＴを用いると過補正となり、オーバーリーンになってアイドル回転が低下してしまうことを防止するのである。
【００６３】
上述したステップＳ４０３で、今回のサイクルにおいてＦ＿ＨＡＣＩＮＤ＝１でないと判定された場合、ステップＳ４０４で前回のサイクルにおいてＦ＿ＨＡＣＩＮＤ＝１であると判定された場合およびステップＳ４０５でＫＥＶＡＣＴ＞♯ＫＥＶＡＣＴＡＣではないと判定された場合は、ステップＳ４０７において、ＬＡＦセンサ１７の出力に基づく実空燃比係数ＫＡＣＴと目標空燃比係数ＫＣＭＤとの偏差｜ＫＣＭＤ−ＫＡＣＴ｜を算出し、これが所定の加算量切換判定値♯ＤＫＡＦＥＶＩＣ（具体的に０．０２３）以下であるか否かを判定する。
【００６４】
ステップＳ４０７において、偏差｜ＫＣＭＤ−ＫＡＣＴ｜≦♯ＤＫＡＦＥＶＩＣでない場合、すなわち、偏差｜ＫＣＭＤ−ＫＡＣＴ｜が大きい場合には、後述するステップＳ４２１に進む。
【００６５】
一方、ステップＳ４０７において、偏差｜ＫＣＭＤ−ＫＡＣＴ｜≦♯ＤＫＡＦＥＶＩＣである場合、すなわち、偏差｜ＫＣＭＤ−ＫＡＣＴ｜が小さい場合には、ステップＳ４０８において、空燃比フィードバック係数ＫＡＦが、大きい所定の減算判定値♯ＫＡＦＥＶＡＩＨ（具体的には１．０６３）より大きいか否かを判定する。
【００６６】
ステップＳ４０８において、ＫＡＦ＞♯ＫＡＦＥＶＡＩＨである場合、すなわち空燃比フィードバック係数ＫＡＦが、♯ＫＡＦＥＶＡＩＨ（１．０６３）より大きくなると、パージ補正係数算出補正係数ＫＥＶＡＣＴを減少させることになる。次に、ステップＳ４０９において、パージ補正係数ＫＡＦＥＶＡＣＴを小さくする更新量ＤＫＥＶＡＣＴを、所定の減算量♯ＤＫＥＶＡＩＭ１（具体的には０．００００５）にする。
【００６７】
そして、ステップＳ４１０で、パージ補正係数算出補正係数ＫＥＶＡＣＴから更新量ＤＫＥＶＡＣＴを減算しこの値を新たなパージ補正係数算出補正係数ＫＥＶＡＣＴとして設定する。続いて、ステップＳ４１１において、この設定したパージ補正係数算出補正係数ＫＥＶＡＣＴが「０」より小さいか否かを判定し、ＫＥＶＡＣＴ＜０でない場合は、そのまま、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００６８】
一方、ステップＳ４１１において、ＫＥＶＡＣＴ＜０である場合は、ステップＳ４１２において、パージ補正係数算出補正係数ＫＥＶＡＣＴを「０」として、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００６９】
上述したステップＳ４０８において、ＫＡＦ＞♯ＫＡＦＥＶＡＩＨでない場合、ステップＳ４１３において、空燃比フィードバック係数ＫＡＦが、小さい所定の加算切替判定値♯ＫＡＦＥＶＡＩＬ（具体的には０．９５３）よりも小さいか否かを判定する。
【００７０】
ステップＳ４１３において、ＫＡＦ＜♯ＫＡＦＥＶＡＩＬである場合、すなわち空燃比フィードバック係数ＫＡＦが、♯ＫＡＦＥＶＡＩＬ（具体的には０．９５３）より低くなると、パージ補正係数算出補正係数ＫＥＶＡＣＴを増加させることになる。次に、ステップＳ４１４において、更新量ＤＫＥＶＡＣＴを所定の加算量♯ＤＫＥＶＡＣＩ３（具体的には０．０００５）とする。
【００７１】
そして、ステップＳ４１５で、パージ補正係数算出補正係数ＫＥＶＡＣＴに更新量ＤＫＥＶＡＣＴを加算してこの値を新たなパージ補正係数算出補正係数ＫＥＶＡＣＴとして設定する。続いて、ステップＳ４１６において、この設定したパージ補正係数算出補正係数ＫＥＶＡＣＴが「１」より大きいか否かを判定し、ＫＥＶＡＣＴ＞１でない場合は、そのまま、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００７２】
一方、ステップＳ４１６において、ＫＥＶＡＣＴ＞１である場合は、ステップＳ４１７において、パージ補正係数算出補正係数ＫＥＶＡＣＴを「１」として、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００７３】
上述したステップＳ４１３において、ＫＡＦ＜♯ＫＡＦＥＶＡＩＬでない場合、ステップＳ４１８において、空燃比フィードバック係数ＫＡＦが、上記加算切替判定値♯ＫＡＦＥＶＡＩＬよりもやや大きい所定の保持判定値♯ＫＡＦＥＶＡＩＭ（具体的には０．９９２）よりも小さいか否かを判定する。
【００７４】
ステップＳ４１８において、ＫＡＦ＜♯ＫＡＦＥＶＡＩＭでない場合、パージ補正係数算出補正係数ＫＥＶＡＣＴを変更せずに、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００７５】
一方、ステップＳ４１８において、ＫＡＦ＜♯ＫＡＦＥＶＡＩＭである場合、すなわち空燃比フィードバック係数ＫＡＦが、♯ＫＡＦＥＶＡＩＭ（０．９９２）より低くなると、ステップＳ４１９において、実空燃比係数ＫＡＣＴから目標空燃比係数ＫＣＭＤを減算した値が、所定の保持判定値♯ＤＫＡＦＥＶＩＭ（具体的には０．００３）以下であるか否かを判定し、ＫＡＣＴ−ＫＣＭＤ≦♯ＤＫＡＦＥＶＩＭである場合、すなわちリーン側であった場合、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００７６】
逆に、ステップＳ４１９においてＫＡＣＴ−ＫＣＭＤ≦♯ＤＫＡＦＥＶＩＭでない場合、すなわちリッチ側であった場合、ステップＳ４２０において、パージ補正係数算出補正係数ＫＥＶＡＣＴを増加させるための更新量ＤＫＥＶＡＣＴを＃ＤＫＥＶＡＣＴ２に設定することになる。上述したステップＳ４１５〜Ｓ４１７の加算処理を行って、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００７７】
すなわち、以上のステップＳ４０８〜Ｓ４２０までの処理は、偏差｜ＫＣＭＤ−ＫＡＣＴ｜が小さい場合に、空燃比フィードバック係数ＫＡＦの大きさに応じて、パージ補正係数ＫＡＦＥＶＡＣＴを修正するためのパージ補正係数算出補正係数ＫＥＶＡＣＴの更新値ＤＫＥＶＡＣＴを選択するのである。具体的には、空燃比フィードバック係数ＫＡＦが、中央値（具体的には１．０）を上回る減算判定値♯ＫＡＦＥＶＡＩＨ（具体的には１．０６３）より大きい場合は、更新量ＤＫＥＶＡＣＴとして減算量♯ＤＫＥＶＡＩＭ１（具体的には０．０００５）を選択設定し、中央値を挟んで上下の減算判定値♯ＫＡＦＥＶＡＩＨ（具体的には１．０６３）以下かつ保持判定値♯ＫＡＦＥＶＡＩＭ（具体的には０．９９２）以上の範囲では、パージ補正係数算出補正係数ＫＥＶＡＣＴを変更せず、この範囲より下の保持判定値♯ＫＡＦＥＶＡＩＭ（具体的には０．９９２）より小さく加算切替判定値♯ＫＡＦＥＶＡＩＬ（具体的には０．９５３）以上の範囲では、偏差｜ＫＣＭＤ−ＫＡＣＴ｜が大きいとき更新量ＤＫＥＶＡＣＴを小さな加算量♯ＤＫＥＶＡＣＩ２（具体的には０．０００１）を選択設定し、中央値（具体的には１．０）を大きく下回る加算切替判定値♯ＫＡＦＥＶＡＩＬ（具体的には０．９５３）より小さい場合は、更新量ＤＫＥＶＡＣＴとして大きな加算量♯ＤＫＥＶＡＣＩ３（具体的には０．０００５）を選択設定したりするのである。
【００７８】
上述したステップＳ４０７において、偏差｜ＫＣＭＤ−ＫＡＣＴ｜≦♯ＤＫＡＦＥＶＩＣでない場合、すなわち、偏差｜ＫＣＭＤ−ＫＡＣＴ｜が大きい場合には、ステップＳ４２１において、実空燃比係数ＫＡＣＴが目標空燃比係数ＫＣＭＤよりも小さいか否か、すなわち、実空燃比が目標空燃比よりもリーンであるかリッチであるかを判定する。
【００７９】
ステップＳ４２１において、ＫＡＣＴ＜ＫＣＭＤである場合、すなわち、実空燃比が目標空燃比よりもリーンである場合は、ステップＳ４２２において、パージ補正係数算出補正係数ＫＥＶＡＣＴを更新するための更新量ＤＫＥＶＡＣＴを、大きな所定の減算量♯ＤＫＥＶＡＩＭ２（具体的には０．０００５）として、上述したステップＳ４１０〜Ｓ４１２の減算処理を行って、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００８０】
一方、ステップＳ４２１において、ＫＡＣＴ＜ＫＣＭＤでない場合、すなわち、実空燃比が目標空燃比よりもリッチである場合は、ステップＳ４２３において、パージ補正係数算出補正係数ＫＥＶＡＣＴを更新するための更新量ＤＫＥＶＡＣＴを、所定の加算量♯ＤＫＥＶＡＣＩ１（具体的には０．００１）として、上述したステップＳ４１５〜Ｓ４１７の加算処理を行って、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００８１】
ここで、上記数値の大小関係をまとめると、♯ＫＡＦＥＶＡＩＨ＞♯ＫＡＦＥＶＡＩＭ＞♯ＫＡＦＥＶＡＩＬであり、♯ＤＫＥＶＡＩＭ１＜♯ＤＫＥＶＡＩＭ２であり、♯ＤＫＥＶＡＣＩ２＜♯ＤＫＥＶＡＣＩ３＜♯ＤＫＥＶＡＣＩ１となる。
【００８２】
「アイドル状態外」
ステップＳ４０１においてＦ＿ＩＤＬＥ＝１でない場合、すなわち内燃機関本体１がアイドル状態にない場合には、ステップＳ４２４において、アイドル状態外になってから所定時間経過したか否かを、アイドル外移行ディレイタイマＴＫＥＶＡＣＴＩ（具体的には２秒）のタイマ値が「０」であるか否かにより判定する。これは、アイドル状態からアイドル状態外に切り替わった直後は、アイドル状態と同様の処理を行うことでパージ補正係数算出補正係数ＫＥＶＡＣＴの急変による空燃比の影響を排除するために行われる。
【００８３】
このステップＳ４２４において、ＴＫＥＶＡＣＴＩ＝０でない場合、すなわち、アイドル状態からアイドル状態外に切り替わってから所定のアイドル外移行ディレイ時間が経過していない場合は、上述したステップＳ４０７に進む。
【００８４】
一方、このステップＳ４２４において、ＴＫＥＶＡＣＴＩ＝０の場合、すなわち、アイドル状態からアイドル状態外に切り替わってから所定のアイドル外移行ディレイ時間が経過している場合は、上述したステップＳ４０７〜Ｓ４２３とほぼ同様で判定値および更新値が異なる処理が行われる。すなわち、ステップＳ４２５において、ＬＡＦセンサ１７の出力に基づく実空燃比係数ＫＡＣＴと目標空燃比係数ＫＣＭＤとの偏差｜ＫＣＭＤ−ＫＡＣＴ｜を算出し、これが所定の加算量切換判定値♯ＤＫＡＦＥＶＡＣ（具体的には０．０２）以下であるか否かを判定する。すなわち、偏差｜ＫＣＭＤ−ＫＡＣＴ｜が大きい場合と小さい場合とで、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理を変えるのである。
【００８５】
ステップＳ４２５において、偏差｜ＫＣＭＤ−ＫＡＣＴ｜≦♯ＤＫＡＦＥＶＡＣでない場合、すなわち、偏差｜ＫＣＭＤ−ＫＡＣＴ｜が大きい場合には、後述するステップＳ４３３に進む。
【００８６】
一方、ステップＳ４２５において、偏差｜ＫＣＭＤ−ＫＡＣＴ｜≦♯ＤＫＡＦＥＶＡＣである場合、すなわち、偏差｜ＫＣＭＤ−ＫＡＣＴ｜が小さい場合には、ステップＳ４２６において、空燃比フィードバック係数ＫＡＦが、大きい所定の減算判定値♯ＫＡＦＥＶＡＨ（具体的には１．０７８）より大きいか否かを判定する。
【００８７】
ステップＳ４２５において、ＫＡＦ＞♯ＫＡＦＥＶＡＨである場合、すなわち空燃比フィードバック係数ＫＡＦが、中央値を上回る♯ＫＡＦＥＶＡＨより高くなると、パージ補正係数算出補正係数ＫＥＶＡＣＴを減少させることになる。
ステップＳ４２７において、パージ補正係数算出補正係数ＫＥＶＡＣＴを更新するための更新量ＤＫＥＶＡＣＴを、所定の減算量♯ＤＫＥＶＡＭ１（具体的には０．０００５）にして、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００８８】
一方、上述したステップＳ４２６において、ＫＡＦ＞♯ＫＡＦＥＶＡＨでない場合、ステップＳ４２８において、空燃比フィードバック係数ＫＡＦが、所定の加算切替判定値♯ＫＡＦＥＶＡＬ（具体的には０．９５３）よりも小さいか否かを判定する。
【００８９】
ステップＳ４２８において、ＫＡＦ＜♯ＫＡＦＥＶＡＬである場合、すなわち空燃比フィードバック係数ＫＡＦが、♯ＫＡＦＥＶＡＬより低くなると、パージ補正係数算出補正係数ＫＥＶＡＣＴを増加させることになる。
ステップＳ４２９において、更新量ＤＫＥＶＡＣＴを所定の加算量♯ＤＫＥＶＡＣＴ３（具体的には０．００２）とする。
【００９０】
そして、ステップＳ４１５〜Ｓ４１７の加算処理を行って、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００９１】
上述したステップＳ４２８において、ＫＡＦ＜♯ＫＡＦＥＶＡＬでない場合、ステップＳ４３０において、空燃比フィードバック係数ＫＡＦが、上記加算切替判定値♯ＫＡＦＥＶＡＬよりもやや大きく所定の保持判定値♯ＫＡＦＥＶＡＭ（具体的には０．９９２）よりも小さいか否かを判定する。
【００９２】
ステップＳ４３０において、ＫＡＦ＜♯ＫＡＦＥＶＡＭでない場合、パージ補正係数算出補正係数ＫＥＶＡＣＴを変更せずに、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００９３】
一方、ステップＳ４３０において、ＫＡＦ＜♯ＫＡＦＥＶＡＭである場合、すなわち空燃比フィードバック係数ＫＡＦが低くなると、ステップＳ４３１において、実空燃比係数ＫＡＣＴから目標空燃比係数ＫＣＭＤを減算した値が、所定の保持判定値♯ＤＫＡＦＥＶＭ（具体的には０．００３）以下であるか否かを判定し、ＫＡＣＴ−ＫＣＭＤ≦♯ＤＫＡＦＥＶＭである場合、すなわちリーン側であった場合、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００９４】
逆に、ステップＳ４３１においてＫＡＣＴ−ＫＣＭＤ≦♯ＤＫＡＦＥＶＭでない場合、すなわちリッチ側であった場合、ステップＳ４３２において、パージ補正係数算出補正係数ＫＥＶＡＣＴを増加させるための更新量ＤＫＥＶＡＣＴを、設定することになる。
上述したステップＳ４１５〜Ｓ４１７の加算処理を行って、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００９５】
すなわち、以上のステップＳ４２６〜Ｓ４３２までの処理は、偏差｜ＫＣＭＤ−ＫＡＣＴ｜が小さい場合に、空燃比フィードバック係数ＫＡＦの大きさに応じて、パージ補正係数ＫＡＦＥＶＡＣＴを修正するためのパージ補正係数算出補正係数ＫＥＶＡＣＴの更新値ＤＫＥＶＡＣＴを選択するのである。具体的には、空燃比フィードバック係数ＫＡＦが、減算判定値♯ＫＡＦＥＶＡＨより大きい場合は、更新量ＤＫＥＶＡＣＴとして減算量♯ＤＫＥＶＡＭ１（具体的には０．０００５）を選択設定し、減算判定値♯ＫＡＦＥＶＡＨ以下かつ保持判定値♯ＫＡＦＥＶＡＭ以上の範囲では、パージ補正係数算出補正係数ＫＥＶＡＣＴを変更せず、この範囲より下の保持判定値♯ＫＡＦＥＶＡＭより小さく加算切替判定値♯ＫＡＦＥＶＡＬ以上の範囲では、条件によって、更新量ＤＫＥＶＡＣＴとして小さな加算量♯ＤＫＥＶＡＣＴ２（具体的には０．００１）を選択設定し、加算切替判定値♯ＫＡＦＥＶＡＬより小さい場合は、更新量ＤＫＥＶＡＣＴとして大きな加算量♯ＤＫＥＶＡＣＴ３（具体的には０．００２）を選択設定したりするのである。
【００９６】
上述したステップＳ４２５において、偏差｜ＫＣＭＤ−ＫＡＣＴ｜≦♯ＤＫＡＦＥＶＡＣでない場合、すなわち、偏差｜ＫＣＭＤ−ＫＡＣＴ｜が大きい場合には、ステップＳ４３３において、実空燃比係数ＫＡＣＴが目標空燃比係数ＫＣＭＤよりも小さいか否か、すなわち、実空燃比が目標空燃比よりもリーンであるかリッチであるかを判定する。
【００９７】
ステップＳ４３３において、ＫＡＣＴ＜ＫＣＭＤである場合、すなわち、実空燃比が目標空燃比よりもリーンである場合は、ステップＳ４３４において、パージ補正係数算出補正係数ＫＥＶＡＣＴを更新するための更新量ＤＫＥＶＡＣＴを、大きな所定の減算量♯ＤＫＥＶＡＭ２（具体的には０．００１）として、上述したステップＳ４１０〜Ｓ４１２の減算処理を行って、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００９８】
一方、ステップＳ４３３において、ＫＡＣＴ＜ＫＣＭＤでない場合、すなわち、実空燃比が目標空燃比よりもリッチである場合は、ステップＳ４３５において、パージ補正係数算出補正係数ＫＥＶＡＣＴを更新するための更新量ＤＫＥＶＡＣＴを、かなり大きな所定の加算量♯ＤＫＥＶＡＣＴ１（具体的には０．００３）として、上述したステップＳ４１５〜Ｓ４１７の加算処理を行って、パージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理（ＫＥＶＡＣＴ＿ＣＡＬ）の今回のサイクルを終了し、パージ補正係数ＫＡＦＥＶＡＣＴの算出処理（ＫＡＦＥＶＡＣＴ＿ＣＡＬ）のフローチャートに戻る。
【００９９】
ここで、上記数値の大小関係をまとめると、♯ＫＡＦＥＶＡＨ＞♯ＫＡＦＥＶＡＭ＞♯ＫＡＦＥＶＡＬであり、♯ＤＫＥＶＡＭ１＜♯ＤＫＥＶＡＭ２であり、♯ＤＫＥＶＡＣＴ２＜♯ＤＫＥＶＡＣＴ３＜♯ＤＫＥＶＡＣＴ１となる。
【０１００】
さらに、♯ＤＫＥＶＡＭ１>♯ＤＫＥＶＡＩＭ１、♯ＤＫＥＶＡＭ２>♯ＤＫＥＶＡＩＭ２、♯ＤＫＥＶＡＣＴ１>♯ＤＫＥＶＡＣＩ１、♯ＤＫＥＶＡＣＴ２>♯ＤＫＥＶＡＣＩ２、♯ＤＫＥＶＡＣＴ３>♯ＤＫＥＶＡＣＩ３となる。
【０１０１】
図８及び図９は、パージ流量を所定の流量とするためにパージ制御弁４４を駆動制御する処理を示すフローチャートであり、図１０及び図１１は図８に示すＰＧＣＭＤ算出処理において、特に目標流量算出（ＱＰＧ＿ＣＡＬ）の処理を示すフローチャートであり、図１２はパージ補正係数ＫＡＦＥＶＡＣＴに応じて変化する低地側及び高地側パージ絞り係数ＫＰＧＴＳＰＬ／Ｈのグラフ図であり、図１３は大気圧ＰＡに応じて変化するパージ絞り係数ＫＰＧＴＳＰのグラフ図であり、図１４はパージ補正係数ＫＡＦＥＶＡＣＴに応じて変化する更新タイマ値ＴＭＰＧＴＬ／ＬＩのグラフ図である。
【０１０２】
先ず、図８に示すステップＳ１０１において、目標空燃比係数ＫＣＭＤの増加に伴って減少するように設定された空気流量換算係数ＫＱＡＩＲをテーブル検索により求める。なお、目標空燃比係数ＫＣＭＤは空燃比（Ａ／Ｆ）の逆数すなわち燃空比（Ｆ／Ａ）に比例し、理論空燃比に対応する値は１．０である。
次に、ステップＳ１０２に進み、内燃機関本体１の回転数ＮＥ及び吸気管内絶対圧ＰＢＡに応じて設定される基本燃料噴射量ＴＩＭと、目標空燃比係数ＫＣＭＤと、回転数ＮＥと、空気流量換算係数ＫＱＡＩＲとを乗算して得た値を、空気流量ＱＡＩＲとして設定する。なお、空気流量ＱＡＩＲは内燃機関本体１に供給される流量である。
【０１０３】
次に、ステップＳ１０３に進み、パージ制御弁４４を作動させてパージの実行を許可するか否かを判定するためのパージ実行許可フラグＦ＿ＰＧＡＣＴのフラグ値が「１」であるか否かを判定する。なお、パージの実行許可は、例えば内燃機関本体１の冷却水温度等に応じて設定される。
この判定結果が「ＮＯ」であると判定された場合、すなわちパージの実行を停止すると判定された場合には、後述するステップＳ１２０以下の処理を行う。
一方、ステップＳ１０３における判定結果が「ＹＥＳ」であると判定された場合、すなわちパージの実行が許可された場合には、ステップＳ１０４に進み、燃料供給停止実行フラグＦ＿ＦＣのフラグ値が「１」であるか否かを判定する。
この判定結果が「ＹＥＳ」であると判定された場合、つまり内燃機関本体１への燃料供給が停止されていると判定された場合にはステップＳ１０５に進む。
【０１０４】
ステップＳ１０５においては、後述する目標パージ制御弁駆動デューティ値ＰＧＣＭＤに０％をセットしてステップＳ１０６に進み、次に、ステップＳ１０６において目標パージ流量ＱＰＧＣにゼロをセットして、ステップＳ１０７に進む。なお、パージ制御弁駆動デューティ値とは、パージ制御弁４４を、例えばＰＷＭにより駆動する際のデューティ比である。
図９に示すステップＳ１０７においては、判定用パージ流量制限係数ＫＰＧＴＪＵＤがパージ流量制限係数ＫＰＧＴ以下であるか否かを判定する。
この判定結果が「ＮＯ」であると判定された場合には、後述するステップＳ１２８以下の処理を行う。一方、判定結果が「ＹＥＳ」であると判定された場合には、ステップＳ１０８に進み、判定用パージ流量制限係数ＫＰＧＴＪＵＤにパージ流量制限係数ＫＰＧＴをセットして、後述するステップＳ１２８に進む。
なお、判定用パージ流量制限係数ＫＰＧＴＪＵＤは、例えばパージの実行が一時的に停止された後に再開された場合等において、停止前のパージ流量制限係数ＫＰＧＴの値を保持するためのものである。
【０１０５】
一方、ステップＳ１０４における判定結果が「ＮＯ」であると判定された場合には、ステップＳ１０９に進む。
ステップＳ１０９においては、全開増量実行フラグＦ＿ＷＯＴのフラグ値が「１」であるか否かを判定する。
この判定結果が「ＹＥＳ」であると判定された場合には、後述するステップＳ１１１に進む。一方、判定結果が「ＮＯ」であると判定された場合には、ステップＳ１１０に進む。
【０１０６】
ステップＳ１１０においては、ＬＡＦセンサ１７からの出力に基づいて、例えばＰＩＤ制御等により、内燃機関本体１の空燃比を目標空燃比にフィードバック制御するためのフィードバック制御実行フラグＦ＿ＬＡＦＦＢのフラグ値が「１」であるか否かを判定する。
この判定結果が「ＮＯ」であると判定された場合には、ステップＳ１０５に進む。一方、判定結果が「ＹＥＳ」であると判定された場合には、ステップＳ１１１に進む。
【０１０７】
ステップＳ１１１においては、アイドル停止フラグＦ＿ＩＤＬＳＴＰのフラグ値が「１」であるか否かを判定する。
なお、アイドル停止とは、ＥＣＵ５により内燃機関本体１への燃料供給が停止して内燃機関本体１を停止させて、不要なアイドル運転を禁止して燃料の節減を図る処理である。
このアイドル停止フラグＦ＿ＩＤＬＳＴＰのフラグ値に「１」がセットされる場合としては、例えば車両の減速時等に車速Ｖが所定車速（ゼロも含む）に達した後、シフトポジションがニュートラル又はＰ（駐車）ポジションにある場合、或いはシフトポジションがＤ（前進）ポジション又はＲ（後進）ポジションにあってもブレーキペダルが踏まれている場合等である。ただし、内燃機関本体１を停止させてもスタータモータ（図示略）を作動させて内燃機関本体１を再始動できるか否かを判定して、電力の余裕がない場合には内燃機関本体１を停止させずにアイドル運転状態を維持する。
なお、アイドル停止状態から内燃機関本体１が再始動される場合としては、例えばクラッチスイッチ（図示略）がＯＮ状態になってシフトポジションがインギアになった場合等であり、ＥＣＵ５によりスタータモータが自動的に駆動されて内燃機関本体１が始動する。
ステップＳ１１１における判定結果が「ＹＥＳ」であると判定された場合、すなわち内燃機関本体１のアイドル停止を実行中であると判定された場合には、ステップＳ１０５に進む。
一方、この判定結果が「ＮＯ」であると判定された場合、すなわちアイドル停止の実行中ではないと判定された場合にはステップＳ１１２に進み、後述するＰＧＣＭＤ算出処理を実行して、ステップＳ１１３に進む。
すなわち、内燃機関本体１がアイドル停止状態に移行する際にパージの実行を停止することによって、内燃機関本体１に空気が流入することを抑制して、これらの空気が圧縮されることに起因する、いわゆるディーゼリング現象が発生することを防ぎ、内燃機関本体１に振動等が発生することを抑制している。
【０１０８】
図９に示すステップＳ１１３においては、目標パージ制御弁駆動デューティ値ＰＧＣＭＤが、所定のハイ側パージ制御弁駆動デューティ閾値＃ＤＯＵＴＰＧＨ（例えば１００％）以上であるか否かを判定する。
この判定結果が「ＹＥＳ」であると判定された場合、すなわち目標パージ制御弁駆動デューティ値ＰＧＣＭＤがオーバーフローしている判定された場合には、ステップＳ１１４に進み、所定のハイ側パージ制御弁駆動デューティ閾値＃ＤＯＵＴＰＧＨをパージ制御弁駆動デューティ値ＤＯＵＴＰＧにセットして、後述するステップＳ１１７に進む。
【０１０９】
一方、ステップＳ１１３における判定結果が「ＮＯ」であると判定された場合、すなわち目標パージ制御弁駆動デューティ値ＰＧＣＭＤがオーバーフローしていないと判定された場合には、ステップＳ１１５に進み、目標パージ制御弁駆動デューティ値ＰＧＣＭＤが、所定のロー側パージ制御弁駆動デューティ閾値＃ＤＯＵＴＰＧＬ（例えば０％）以下であるか否かを判定する。
この判定結果が「ＹＥＳ」であると判定された場合、すなわち目標パージ制御弁駆動デューティ値ＰＧＣＭＤがアンダーフローしていると判定された場合には、後述するステップＳ１２８に進む。
一方、ステップＳ１１５における判定結果が「ＮＯ」であると判定された場合、すなわち目標パージ制御弁駆動デューティ値ＰＧＣＭＤがアンダーフローしていないと判定された場合には、ステップＳ１１６に進み、目標パージ制御弁駆動デューティ値ＰＧＣＭＤをパージ制御弁駆動デューティ値ＤＯＵＴＰＧにセットして、ステップＳ１１７に進む。
【０１１０】
ステップＳ１１７においては、パージ終了後所定時間検知タイマＴＭＰＧＯＦＦに所定のタイマ値＃ＴＭＰＧＯＦＦ（例えば１．０ｓ）をセットしてステップＳ１１８に進む。
ステップＳ１１８においては、パージ制御弁駆動デューティ値ＤＯＵＴＰＧからパージ制御弁駆動デューティ値電圧補正ＤＰＧＣＶＢを減算して得た値を、さらに初期目標パージ制御弁駆動デューティ値ＰＧＣＭＤ０により除算して得た値をパージ制御弁駆動デューティ値比ＰＧＲＡＴＥにセットする。
なお、パージ制御弁駆動デューティ値電圧補正ＤＰＧＣＶＢは、パージ制御弁４４に供給される電圧に応じて、パージ制御弁駆動デューティ値ＤＯＵＴＰＧの立ち上がり遅れ分を補正するものであって、パージ制御弁４４に供給される電圧の増加に伴って減少するように設定されている。
次に、ステップＳ１１９においては、目標パージ流量ＱＰＧＣを目標パージ流量基本値ＱＰＧＣＢＡＳＥで除算して得た値を目標パージ流量比ＱＲＡＴＥにセットして、一連の処理を終了する。
【０１１１】
また、図８に示すステップＳ１２０においては、パージ制御弁駆動デューティ値ＤＯＵＴＰＧに０％をセットする。そして、目標パージ制御弁駆動デューティ値ＰＧＣＭＤに０％をセットして（ステップＳ１２１）、目標パージ流量ＱＰＧＣにゼロをセットして（ステップＳ１２２）、ステップＳ１２３に進む。
ステップＳ１２３においては、パージ流量制限係数ＫＰＧＴに所定のパージ開始時流量制限係数＃ＫＰＧＴＩＮＩ（例えば０．１２０）をセットする。そして、パージ流量制限係数ＫＰＧＴ更新タイマＴＭＰＧＴに所定の始動後用更新タイマ値＃ＴＭＰＧＴ０（例えば１０ｓ）をセットして（ステップＳ１２４）、次に、パージ終了後所定時間検知タイマＴＭＰＧＯＦＦに所定のタイマ値＃ＴＭＰＧＯＦＦ（例えば１．０ｓ）をセットして（ステップＳ１２５）、ステップＳ１２６に進む。
ステップＳ１２６においては、パージ流量制限係数ＫＰＧＴ算出実行フラグＦ＿ＫＰＧＴＯＮのフラグ値に「０」をセットする。そして、判定用パージ流量制限係数ＫＰＧＴＪＵＤにゼロをセットして（ステップＳ１２７）、後述するステップＳ１３５以下の処理を行う。
【０１１２】
また、ステップＳ１２８においては、パージ流量制限係数ＫＰＧＴ算出実行フラグＦ＿ＫＰＧＴＯＮのフラグ値が「１」であるか否かを判定する。
この判定結果が「ＮＯ」であると判定された場合、例えば内燃機関本体１の始動直後、或いはパージの実行が一時的に停止された後のパージの再開直後等におけるパージ実行時において、パージ流量制限係数ＫＰＧＴの算出中ではない場合には、パージ流量制限係数ＫＰＧＴ更新タイマＴＭＰＧＴに所定の更新タイマ値＃ＴＭＰＧＴＳ０（例えば５ｓ）をセットして（ステップＳ１２９）、次に、パージ流量制限係数ＫＰＧＴに所定のパージ開始時流量制限係数＃ＫＰＧＴＩＮＩ（例えば０．１０２）をセットして（ステップＳ１３０）、後述するステップＳ１３４以下の処理を行う。
【０１１３】
一方、ステップＳ１２８における判定結果が「ＹＥＳ」であると判定された場合、すなわちパージの実行開始時等においてパージ流量制限係数ＫＰＧＴの算出中である場合には、パージ流量制限係数ＫＰＧＴ更新タイマＴＭＰＧＴに所定の更新タイマ値＃ＴＭＰＧＴＳ（例えば０．３ｓ）をセットして（ステップＳ１３１）、次に、パージ流量制限係数ＫＰＧＴが所定のパージ再開時流量制限係数＃ＫＰＧＴＲＥＳＴ（例えば０．３２０）以上であるか否かを判定する（ステップＳ１３２）。
この判定結果が「ＮＯ」であると判定された場合には、後述するステップＳ１３４以下の処理を行う。一方、判定結果が「ＹＥＳ」であると判定された場合には、パージ流量制限係数ＫＰＧＴに所定のパージ再開時流量制限係数＃ＫＰＧＴＲＥＳＴ（例えば０．３２０）をセットして（ステップＳ１３３）、ステップＳ１３４に進む。
【０１１４】
ステップＳ１３４においては、パージ制御弁駆動デューティ値ＤＯＵＴＰＧに０％をセットして、ステップＳ１３５に進む。
ステップＳ１３５においては、パージ制御弁駆動デューティ値比ＰＧＲＡＴＥにゼロをセットする。そして、目標パージ流量比ＱＲＡＴＥにゼロをセットして（ステップＳ１３６）、一連の処理を終了する。
【０１１５】
次に、上述したステップＳ１１２におけるＰＧＣＭＤ算出処理について添付図面を参照しながら説明する。この処理では目標パージ流量ＱＰＧＣを算出すると共に、この目標パージ流量ＱＰＧＣに基づいて、目標パージ制御弁駆動デューティ値ＰＧＣＭＤを算出する処理である。以下においては、特に、目標パージ流量ＱＰＧＣを算出する処理について説明する。
【０１１６】
先ず、図１０に示すステップＳ２０１において、空気流量ＱＡＩＲに所定の目標パージ率＃ＫＱＰＧＢ（例えば０．１５０）を乗算して得た値を目標パージ流量基本値ＱＰＧＣＢＡＳＥにセットしてステップＳ２０２に進む。
なお、目標パージ率＃ＫＱＰＧＢは、例えばパージ制御弁４４の開度が一定値であっても、絶対吸気管負圧ＰＢＡに応じてパージ流量が変化することを補正する補正係数である。
ステップＳ２０２においては、目標パージ流量基本値ＱＰＧＣＢＡＳＥが所定のパージ流量上限値＃ＱＰＧＭＡＸ（例えば３５リットル／ｍｉｎ）よりも大きいか否かを判定する。
この判定結果が「ＹＥＳ」であると判定された場合には、ステップＳ２０３に進み、目標パージ流量値ＱＰＧＣＭＤにパージ流量上限値＃ＱＰＧＭＡＸをセットして、後述するステップＳ２０７に進む。
【０１１７】
一方、ステップＳ２０２における判定結果が「ＮＯ」であると判定された場合は、ステップＳ２０４に進み、目標パージ流量基本値ＱＰＧＣＢＡＳＥが所定のパージ流量下限値＃ＱＰＧＭＩＮ（例えば０）よりも小さいか否かを判定する。
この判定結果が「ＹＥＳ」であると判定された場合には、ステップＳ２０５に進み、目標パージ流量値ＱＰＧＣＭＤにパージ流量下限値＃ＱＰＧＭＩＮをセットして、後述するステップＳ２０７に進む。
一方、ステップＳ２０４における判定結果が「ＮＯ」であると判定された場合には、ステップＳ２０６に進み、目標パージ流量値ＱＰＧＣＭＤに目標パージ流量基本値ＱＰＧＣＢＡＳＥをセットして、ステップＳ２０７に進む。
【０１１８】
ステップＳ２０７においては、アイドル運転フラグＦ＿ＩＤＬＥのフラグ値が「１」であるか否かを判定する。
この判定結果が「ＮＯ」であると判定された場合、すなわち内燃機関本体１がアイドル運転状態ではないと判定された場合には、後述するステップＳ２１３に進む。
一方、ステップＳ２０７における判定結果が「ＹＥＳ」であると判定された場合には、ステップＳ２０８に進み、図１３に示すように、パージ補正係数ＫＡＦＥＶＡＣＴの増加に伴って減少するように設定された低地側パージ絞り係数＃ＫＰＧＴＳＰＬ及び高地側パージ絞り係数＃ＫＰＧＴＳＰＨをテーブル検索により求める。
なお、図１３に示すように、パージ補正係数ＫＡＦＥＶＡＣＴの増加に伴って両パージ絞り係数＃ＫＰＧＴＳＰＬ／Ｈが減少するように設定されていることで、パージの濃度が高いときにはパージ流量を減少させるようにすると共に、燃料噴射弁１２の開弁時間が短くなって最低限必要とされる燃料値が確保できなくなることを防止している。
【０１１９】
そして、ステップＳ２０９において、図１４に示すように、低地側及び高地側パージ絞り係数検索値ＫＰＧＴＳＰＬ／Ｈのそれぞれを、順に、大気圧ＰＡに関する所定の低地側格子点＃ＰＡＫＰＧＴＬ（例えば６１．３ｋＰａ）と、高地側格子点＃ＰＡＫＰＧＴＨ（９７．３ｋＰａ）とに対応させ、大気圧ＰＡの適宜の値に対して補間算出することでパージ絞り係数ＫＰＧＴＳＰを求める。
すなわち、例えば高地ではアイドリング運転中の燃料値が減少するため、パージ絞り係数ＫＰＧＴＳＰを減少させる。
【０１２０】
次に、ステップＳ２１０においては、パージ流量制限係数ＫＰＧＴがパージ絞り係数ＫＰＧＴＳＰ以下であるか否かを判定する。
この判定結果が「ＮＯ」であると判定された場合には、図１１に示すステップＳ２１１に進み、パージ流量制限係数ＫＰＧＴにパージ絞り係数ＫＰＧＴＳＰをセットして、判定用パージ流量制限係数ＫＰＧＴＪＵＤにパージ絞り係数ＫＰＧＴＳＰをセットして（ステップＳ２１２）、後述するステップＳ２１６以下の処理を行う。
一方、ステップＳ２１０における判定結果が「ＹＥＳ」であると判定された場合には、ステップＳ２１３に進み、パージ流量制限係数ＫＰＧＴ更新タイマＴＭＰＧＴがゼロであるか否かを判定する。
この判定結果が「ＮＯ」であると判定された場合には、後述するステップＳ２２７以下の処理を行う。
【０１２１】
一方、ステップＳ２１３における判定結果が「ＹＥＳ」であると判定された場合には、図１１に示すステップＳ２１４に進み、パージ流量制限係数ＫＰＧＴ算出実行フラグＦ＿ＫＰＧＴＯＮのフラグ値に「１」をセットする。
そして、パージ流量制限係数ＫＰＧＴに所定の加算値＃ＤＫＰＧＴ（例えば０．００８）を加算して得た値を、新たなパージ流量制限係数ＫＰＧＴとして（ステップＳ２１５）、ステップＳ２１６に進む。
ステップＳ２１６においては、パージ流量制限係数ＫＰＧＴが「１．０」よりも大きいか否かを判定する。
この判定結果が「ＮＯ」であると判定された場合には、後述するステップＳ２１８に進む。一方、判定結果が「ＹＥＳ」であると判定された場合には、パージ流量制限係数ＫＰＧＴに「１．０」をセットして（ステップＳ２１７）、ステップＳ２１８に進む。
【０１２２】
ステップＳ２１８においては、パージ流量制限係数ＫＰＧＴが判定用パージ流量制限係数ＫＰＧＴＪＵＤ以上であるか否かを判定する。
この判定結果が「ＮＯ」であると判定された場合には、ステップＳ２１９に進み、アイドル運転フラグＦ＿ＩＤＬＥのフラグ値が「１」であるか否かを判定する。
ステップＳ２１９における判定結果が「ＹＥＳ」であると判定された場合には、パージ流量制限係数ＫＰＧＴ更新タイマＴＭＰＧＴに所定の更新タイマ値＃ＴＭＰＧＴＳＩ（例えば２．８ｓ）をセットして（ステップＳ２２０）、後述するステップＳ２２７以下の処理を行う。
一方、ステップＳ２１９における判定結果が「ＮＯ」であると判定された場合には、パージ流量制限係数ＫＰＧＴ更新タイマＴＭＰＧＴに所定の更新タイマ値＃ＴＭＰＧＴＳ（例えば０．３ｓ）をセットして（ステップＳ２２１）、後述するステップＳ２２７以下の処理を行う。
【０１２３】
また、ステップＳ２１８における判定結果が「ＹＥＳ」であると判定された場合には、ステップＳ２２２に進み、アイドル運転フラグＦ＿ＩＤＬＥのフラグ値が「１」であるか否かを判定する。
ステップＳ２２２における判定結果が「ＹＥＳ」であると判定された場合には、図１２に示すように、パージ補正係数ＫＡＦＥＶＡＣＴの増加に伴って増大するように設定された更新タイマ値＃ＴＭＰＧＴＬＩのテーブル検索により、更新タイマ検索値ＴＭＰＧＴＬＩを求める（ステップＳ２２３）。
そして、パージ流量制限係数ＫＰＧＴ更新タイマＴＭＰＧＴに更新タイマ検索値ＴＭＰＧＴＬＩをセットして（ステップＳ２２４）、後述するステップＳ２２７以下の処理を行う。
【０１２４】
一方、ステップＳ２２２における判定結果が「ＮＯ」であると判定された場合には、図１２に示すように、パージ補正係数ＫＡＦＥＶＡＣＴの増加に伴って増大するように設定された更新タイマ値＃ＴＭＰＧＴＬのテーブル検索により、更新タイマ検索値ＴＭＰＧＴＬを求める（ステップＳ２２５）。そして、パージ流量制限係数ＫＰＧＴ更新タイマＴＭＰＧＴに更新タイマ検索値ＴＭＰＧＴＬをセットして（ステップＳ２２６）、ステップＳ２２７に進む。
ステップＳ２２７においては、目標パージ流量値ＱＰＧＣＭＤにパージ流量制限係数ＫＰＧＴを乗算して得た値を、目標パージ流量ＱＰＧＣにセットして、一連の処理を終了する。
【０１２５】
すなわち、パージ流量制限係数ＫＰＧＴが徐々に増大してパージ絞り係数ＫＰＧＴＳＰと等しくなると、パージ流量制限係数ＫＰＧＴの更新速度を低下させる。さらに、アイドル運転状態においては、パージ流量制限係数ＫＰＧＴの更新速度を低下させる。
【０１２６】
【発明の効果】
以上の説明から明らかなように、本発明によれば、以下の効果を得ることができる。
請求項１の発明によれば、目標空燃比設定手段により設定された目標空燃比に応じて、更新量算出手段がパージ補正量の更新量を決定するため、実空燃比と目標空燃比とを比較して実空燃比がリーンである場合には、パージ補正量の更新量を緩やかに設定することが可能となり、オーバーリーンによるエンジン回転数の低下，エンスト等を防止することができる。
【０１２７】
また、パージカットを実施した際に、内燃機関に供給する燃料量の減量補正値が即座に「０」とならず、徐々に「０」へと移行させることが可能になるため、系内に残留する蒸発燃料の影響による実空燃比のリッチ化を防止することができる。
【図面の簡単な説明】
【図１】  本発明の一の実施の形態を示すブロック図である。
【図２】  パージ補正係数ＫＡＦＥＶＡＣＴの算出手順を示すサブルーチン・フロー・チャートである。
【図３】  図２のステップＳ００７で実行されるパージ濃度係数ＫＡＦＥＶの算出手順を示すサブルーチン・フロー・チャートである。
【図４】  図２のステップＳ０１５で実行される目標パージ補正係数ＫＡＦＥＶＡＣＺの算出手順を示すサブルーチン・フロー・チャートである。
【図５】  エンジン回転数ＮＥから一時変数ＮＥＶＤＬＹＴをテーブル検索するための図である。
【図６】  空気流量ＱＡＩＲからパージ濃度係数算出判定偏差ＤＫＡＦＥＶをテーブル検索するための図である。
【図７】  目標空燃比係数ＫＣＭＤから加減算項ＤＫＥＶＡＰＯ２をテーブル検索するための図である。
【図８】  パージ流量を所定の流量とするためにパージ制御弁を駆動制御する処理を示すフローチャートである。
【図９】  パージ流量を所定の流量とするためにパージ制御弁を駆動制御する処理を示すフローチャートである。
【図１０】  図８に示すＰＧＣＭＤ算出処理において、特に目標流量算出（ＱＰＧ＿ＣＡＬ）の処理を示すフローチャートである。
【図１１】  図８に示すＰＧＣＭＤ算出処理において、特に目標流量算出（ＱＰＧ＿ＣＡＬ）の処理を示すフローチャートである。
【図１２】  パージ補正係数ＫＡＦＥＶＡＣＴに応じて変化する更新タイマ値ＴＭＰＧＴＬ／ＬＩのグラフ図である。
【図１３】  パージ補正係数ＫＡＦＥＶＡＣＴに応じて変化する低地側及び高地側パージ絞り係数ＫＰＧＴＳＰＬ／Ｈのグラフ図である。
【図１４】  大気圧ＰＡに応じて変化するパージ絞り係数ＫＰＧＴＳＰのグラフ図である。
【図１５】  パージ補正係数ＫＡＦＥＶＡＣＴを修正するための修正量であるパージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理の一部のフローチャートである。
【図１６】  パージ補正係数ＫＡＦＥＶＡＣＴを修正するための修正量であるパージ補正係数算出補正係数ＫＥＶＡＣＴの算出処理の他の一部のフローチャートである。
【符号の説明】
１  内燃機関本体（内燃機関）
５  ＥＣＵ（パージ補正量算出手段、目標空燃比設定手段、空燃比補正量算出手段、更新量算出手段、燃料供給量決定手段）
４１  燃料タンク
４２  通路（パージ手段の一部）
４３  パージ通路（パージ手段の一部）
４４  パージ制御弁（パージ手段の一部）
４５  キャニスタ（パージ手段の一部）
４６  ２ウェイバルブ（パージ手段の一部）
【図１】
0004215917.tif 000002
【図２】
0004215917.tif 000003
【図３】
0004215917.tif 000004
【図４】
0004215917.tif 000005
【図５】
0004215917.tif 000006
【図６】
0004215917.tif 000007
【図７】
0004215917.tif 000008
【図８】
0004215917.tif 000009
【図９】
0004215917.tif 000010
【図１０】
0004215917.tif 000011
【図１１】
0004215917.tif 000012
【図１２】
0004215917.tif 000013
【図１３】
0004215917.tif 000014
【図１４】
0004215917.tif 000015
【図１５】
0004215917.tif 000016
【図１６】
0004215917.tif 000017