(57)【特許請求の範囲】
【請求項１】
内燃機関の運転状態を検出する運転状態検出手段と、
前記運転状態に応じて前記内燃機関に供給される基本燃料量を算出する基本燃料量算出手段と、
内燃機関の排気系に設けられ排気中の空燃比を検出する空燃比検出手段と、
前記空燃比検出手段の出力に応じて前記内燃機関に供給される混合気の空燃比を制御する空燃比補正量を算出するフィードバック制御手段と、
前記空燃比補正量の学習値を算出する空燃比学習値算出手段と、
前記基本燃料量と前記空燃比補正量と前記空燃比学習値に応じて前記内燃機関に供給される燃料量を算出する燃料供給量算出手段とを有する内燃機関の燃料供給量制御装置において、
前記内燃機関の吸気系に供給するパージ量を制御するパージ制御手段と、
前記空燃比補正量に基づいてパージ制御手段による蒸発燃料の濃度を推定するパージ濃度推定手段と、
前記パージ濃度推定手段により推定された蒸発燃料の濃度に関する値が所定値以下のときに前記空燃比学習値の算出を許可する学習許可手段と、
空気流量検出手段と、
空気流量に所定の目標パージ率を乗算することにより目標パージ流量基本値を算出する目標パージ流量基本値算出手段と、
前記目標パージ流量基本値が所定リミット値より大きいと判定された場合に第１目標パージ流量値に前記所定リミット値を設定するとともに、前記目標パージ流量基本値が所定リミット値以下と判定された場合に第１目標パージ流量値に前記目標パージ流量基本値を設定するリミット値設定手段と、
パージ開始後の時間経過とともに前記第１目標パージ流量値になるまで徐々に増加させるようにパージ絞り係数を設定するパージ絞り係数設定手段と、
前記第１目標パージ流量値に前記パージ絞り係数を乗ずることにより第２目標パージ流量値を算出するパージ流量算出手段と、
前記パージ制御手段によりパージが開始されるときは前記第１目標パージ流量値を前記パージ絞り係数により制限した前記第２目標パージ流量値に基づいてパージ量を制限するパージ制限手段と、
パージ量の制限開始とともに所定時間をセットするタイマ手段と、
前記パージ制限手段によりパージ量の制限が終了し、かつ、前記所定時間が経過するまでは前記学習許可手段による学習許可判断を行わない学習許可判断禁止手段と、
前記第２目標パージ流量値を前記目標パージ流量基本値で除することにより、パージ流量比を算出するパージ流量比算出手段とを有し、
前記パージ制限手段によるパージ量の制限が終了し、かつ、前記所定時間が経過した後、前記学習許可手段は、前記パージ流量比に応じてそれぞれ異なる値に設定された前記所定値に基づいて前記学習許可手段による判定を行うことを特徴とする内燃機関の燃料供給量制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、空燃比の学習制御を行う内燃機関の燃料供給量制御装置に関する。
【０００２】
【従来の技術】
空燃比補正係数の平均値を算出して空燃比フィードバック制御時に前記平均値を用いて内燃エンジンに供給される混合気の空燃比を制御するものにおいて、前記平均値の算出をキャニスタ内に存在する気化燃料が所定値以下のときに行うことが特公平７−１１７０１号に開示されている。
また、パージ開始初期には高濃度の蒸発燃料がエンジンに供給されることにより排気特性が悪化することを防止するために、パージ開始時にパージ流量を通常時のパージ流量より減量し、その後時間の経過とともにパージ流量を通常時のパージ流量に近づけるように増量することが知られている。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来の装置においては、特にパージ濃度を空燃比補正量に応じて推定する装置においては、パージ開始初期でパージが通常より制限されている状態では、算出されたパージ濃度が実際のパージ濃度とずれている虞れがあり、このパージ濃度を基に学習の許可判定をすると、実際は高濃度の蒸発燃料がパージされているにもかかわらず、パージ濃度は低濃度であると判断され、学習が許可されることになり、学習値が蒸発燃料の影響によりずれてしまう虞れがある。
また、パージの影響を防止するために学習を行うときは、パージを停止して、パージの影響を受けないようにすることも考えられるが、この場合は、学習の頻度を上げるとパージできる量が低下し、キャニスタ内に蒸発燃料が堆積してしまうという問題がある。
【０００４】
本発明は、かかる問題を解決するためになされたもので、パージを停止することなく、蒸発燃料の影響を防止して精度の高い学習値を算出することのできる内燃機関の燃料供給量制御装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載した発明は、内燃機関の運転状態を検出する運転状態検出手段（例えば、実施の形態の図２における吸気管内絶対圧センサ１０および回転情報センサ１４）と、前記運転状態に応じて前記内燃機関に供給される基本燃料量を算出する基本燃料量算出手段（例えば、実施の形態の図２における基本燃料噴射量演算部５４）と、内燃機関の排気系に設けられ排気中の空燃比を検出する空燃比検出手段（例えば、実施の形態の図２における上流Ｏ２センサ１７）と、前記空燃比検出手段の出力に応じて前記内燃機関に供給される混合気の空燃比を制御する空燃比補正量を算出するフィードバック制御手段（例えば、実施の形態の図２における空燃比Ｆ／Ｂ係数演算部５１）と、前記空燃比補正量の学習値を算出する空燃比学習値算出手段（例えば、実施の形態の図２における空燃比学習値格納部５３）と、前記基本燃料量と前記空燃比補正量と前記空燃比学習値に応じて前記内燃機関に供給される燃料量を算出する燃料供給量算出手段（例えば、実施の形態の図２における燃料噴射量演算部５５）とを有する内燃機関の燃料供給量制御装置において、前記内燃機関の吸気系に供給するパージ量を制御するパージ制御手段（例えば、実施の形態の図１におけるパージ制御弁４４）と、前記空燃比補正量に基づいてパージ制御手段による蒸発燃料の濃度を推定するパージ濃度推定手段（例えば、実施の形態の図２におけるパージ濃度推定部６２）と、前記パージ濃度推定手段により推定された蒸発燃料の濃度に関する値が所定値以下のときに前記空燃比学習値の算出を許可する学習許可手段（例えば、実施の形態の図２における空燃比学習実行判定部５８）と、空気流量検出手段と、空気流量に所定の目標パージ率を乗算することにより目標パージ流量基本値を算出する目標パージ流量基本値算出手段と、前記目標パージ流量基本値が所定リミット値より大きいと判定された場合に第１目標パージ流量値に前記所定リミット値を設定するとともに、前記目標パージ流量基本値が所定リミット値以下と判定された場合に第１目標パージ流量値に前記目標パージ流量基本値を設定するリミット値設定手段と、パージ開始後の時間経過とともに前記第１目標パージ流量値になるまで徐々に増加させるようにパージ絞り係数を設定するパージ絞り係数設定手段と、前記第１目標パージ流量値に前記パージ絞り係数を乗ずることにより第２目標パージ流量値を算出するパージ流量算出手段と、前記パージ制御手段によりパージが開始されるときは前記第１目標パージ流量値を前記パージ絞り係数により制限した前記第２目標パージ流量値に基づいてパージ量を制限するパージ制限手段（例えば、実施の形態の図２におけるパージ流量演算部６１）と、パージ量の制限開始とともに所定時間をセットするタイマ手段と、前記パージ制限手段によりパージ量の制限が終了し、かつ、前記所定時間が経過するまでは前記学習許可手段による学習許可判断を行わない学習許可判断禁止手段（例えば、実施の形態の図２における空燃比学習実行判定部５８）と、前記第２目標パージ流量値を前記目標パージ流量基本値で除することにより、パージ流量比を算出するパージ流量比算出手段とを有し、前記パージ制限手段によるパージ量の制限が終了し、かつ、前記所定時間が経過した後、前記学習許可手段は、前記パージ流量比に応じてそれぞれ異なる値に設定された前記所定値に基づいて前記学習許可判断手段による判定を行うことを特徴とする。
【０００６】
このような構成によれば、パージ開始初期にパージ量制限されている時およびその後所定時間、学習許可手段による学習許可の判定が行われず、前回の学習許可判定の結果に基づき、学習の許可／不許可が決定される。このため、パージ量を通常よりも減量して制限している場合には、実パージ濃度と推定パージ濃度との間にズレを生じていても、この推定パージ濃度を基に空燃比を誤学習してしまうことが有効に防止し得るようになり、空燃比の学習値を高精度に算出することができる。
【０００７】
【発明の実施の形態】
本発明の一の実施の形態を図面を参照して以下に説明する。
図１は本発明の一の実施の形態を示す図である。同図中、符号１は、各気筒に吸気弁及び排気弁（図示せず）を設けた直列４気筒の、動力を発生させる内燃機関本体である。
【０００８】
内燃機関の吸気管２は分岐部（吸気マニホルド）１１を介して内燃機関本体１の各気筒の燃焼室に接続する。吸気管２の途中にはスロットル弁３が配されている。スロットル弁３にはスロットル弁開度（θＴＨ）センサ４が連結されており、スロットル弁開度θＴＨに応じた電気信号を出力してＥＣＵ５に供給する。吸気管２には、スロットル弁３をバイパスする補助空気通路６が設けられており、該補助空気通路６の途中には補助空気量制御弁７が配されている。補助空気量制御弁７は、ＥＣＵ５に接続されており、ＥＣＵ５によりその開弁量が制御される。
【０００９】
吸気管２のスロットル弁３の上流側には吸気温（ＴＡ）センサ８が装着されており、その検出信号がＥＣＵ５に供給される。吸気管２のスロットル弁３と吸気マニホルド１１の間には、チャンバ９が設けられており、チャンバ９には吸気管内絶対圧（ＰＢＡ）センサ（運転状態検出手段）１０が取り付けられている。吸気管内絶対圧センサ１０の検出信号はＥＣＵ５に供給される。
【００１０】
内燃機関本体１には内燃機関水温（ＴＷ）センサ１３が装着されており、その検出信号がＥＣＵ５に供給される。ＥＣＵ５には、内燃機関本体１のクランク軸（図示せず）の回転に関する情報を検出する回転情報センサ（運転状態検出手段）１４が接続されており、該回転情報センサ１４から、クランク軸の回転角度に応じた信号がＥＣＵ５に供給される。回転情報センサ１４は、内燃機関本体１の特定の気筒の所定クランク角度位置で信号パルス（以下「ＣＹＬ信号パルス」という）を出力する気筒判別センサ、各気筒の吸入行程開始時の上死点（ＴＤＣ）に関し所定クランク角度前のクランク角度位置で（４気筒エンジンではクランク角１８０度毎に）ＴＤＣ信号パルスを出力するＴＤＣセンサ及びＴＤＣ信号パルスより短い一定クランク角周期（例えば３０度周期）で１パルス（以下「ＣＲＫ信号パルス」という）を発生するＣＲＫセンサから成り、ＣＹＬ信号パルス、ＴＤＣ信号パルス及びＣＲＫ信号パルスがＥＣＵ５に供給される。これらの信号パルスは、燃料噴射時期、点火時期等の各種タイミング制御およびエンジン回転数Ｎｅの検出に使用される。
【００１１】
吸気マニホルド１１の吸気弁の少し上流側には、単位時間当たりの燃料噴射量が一定の燃料噴射弁１２が、各気筒毎に設けられており、各燃料噴射弁１２は図示しない燃料ポンプに接続されているとともにＥＣＵ５に電気的に接続されて、ＥＣＵ５からの信号により燃料噴射時期及び燃料噴射時間（開弁時間すなわち噴射量）が制御される。内燃機関本体１の点火プラグ（図示せず）もＥＣＵ５に電気的に接続されており、ＥＣＵ５により点火時期θＩＧが制御される。
【００１２】
排気管１６は分岐部（排気マニホルド）１５を介して内燃機関本体１の燃焼室に接続されている。排気系の排気管１６には分岐部１５が集合する部分の直ぐ下流側に、上流側の酸素濃度センサ（以下「上流Ｏ２センサ」という）１７が装着されている。さらに上流Ｏ２センサ（空燃比検出手段）１７の下流側には三元触媒１９が配されており、またこの三元触媒１９の下流には下流側の酸素濃度センサ（以下「下流Ｏ２センサ」という）１８が装着されている。三元触媒１９は、排気ガス中のＨＣ，ＣＯ，ＮＯｘ等の浄化を行う。
【００１３】
上流Ｏ２センサ１７は、ＥＣＵ５に接続されており、理論空燃比の前後において急変する電気信号（リッチ側で高レベル、リーン側で低レベル）を出力し、その電気信号をＥＣＵ５に供給する。下流Ｏ２センサ１８は、その出力が理論空燃比の前後において急激に変化する特性を有し、その出力は理論空燃比よりリッチ側で高レベルとなり、リーン側で低レベルとなる。下流Ｏ２センサ１８はＥＣＵ５に接続されており、その検出信号はＥＣＵ５に供給される。さらに大気圧を検出する大気圧センサ２１がＥＣＵ５に接続されており、その検出信号はＥＣＵ５に供給される。
【００１４】
排気還流機構３０は、吸気管２のチャンバ９と排気管１６とを接続する排気還流路３１と、排気還流路３１の途中に設けられ、排気還流量を制御する排気還流弁（ＥＧＲ弁）３２と、ＥＧＲ弁３２の弁開度を検出し、その検出信号をＥＣＵ５に供給するリフトセンサ３３とから成る。ＥＧＲ弁３２は、ソレノイドを有する電磁弁であり、ソレノイドはＥＣＵ５に接続され、その弁開度がＥＣＵ５からの制御信号によりリニアに変化させることができるように構成されている。
【００１５】
蒸発燃料処理装置４０は、燃料を貯留する燃料タンク４１内で発生した蒸発燃料を内燃機関本体１の吸気系にパージするもので、燃料タンク４１が通路４２を介してキャニスタ４５に接続し、キャニスタ４５はパージ通路４３を介して吸気管２のチャンバ９に接続している。キャニスタ４５は、燃料タンク４１内で発生する蒸発燃料を吸着する吸着剤を内蔵し、外気取込口を有する。通路４２の途中には、正圧バルブ及び負圧バルブから成る２ウェイバルブ４６が配設され、パージ通路４３の途中にはデューティ制御型の電磁弁であるパージ制御弁（パージ制御手段）４４が設けられている。パージ制御弁４４は、ＥＣＵ５に接続されており、ＥＣＵ５からの信号に応じて制御される。
【００１６】
ＥＣＵ５は、上述した各種センサからの入力信号波形を整形して電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変化する等の機能を有する入力回路と、中央処理回路（ＣＰＵ）と、該ＣＰＵで実行される各種演算プログラムや後述する各種マップ及び演算結果等を記憶するＲＯＭ及びＲＡＭからなる記憶回路と、燃料噴射弁１２，パージ制御弁４４等の各種電磁弁や点火プラグに駆動信号を出力する出力回路とを備えている。
【００１７】
ＥＣＵ５は、上述の各種内燃機関運転パラメータ信号に基づいて燃料噴射弁１２の燃料噴射時間ＴＯＵＴを演算し、この演算結果に基づいて燃料噴射弁１２を駆動する信号を出力する。すなわち、ＥＣＵ５は各種センサとで、内燃機関を制御する内燃機関の制御装置５０を構成する。
【００１８】
ＥＣＵ５は、例えば、図２に示すように、上流Ｏ２センサ１７の出力に応じて内燃機関に供給される混合気の空燃比を制御する空燃比補正量を算出する、より具体的には、上流Ｏ２センサ１７で検出された空燃比ＶＯ２に応じて空燃比フィードバック係数（空燃比補正係数）ＫＯ２を算出する空燃比Ｆ／Ｂ係数演算部（フィードバック制御手段）５１と、上流Ｏ２センサ１７で検出された空燃比ＶＯ２の反転周期ＦＰＶＯ２を算出するＯ２センサ反転周期演算部（反転周期算出手段）５２とを有している。
【００１９】
また、空燃比補正量の学習値を算出する、より具体的には、空燃比Ｆ／Ｂ係数演算部５１で算出された空燃比フィードバック係数の平均値ＫＯ２ＭＥＮを算出するとともに空燃比フィードバック係数の平均値ＫＯ２ＭＥＮに基づいて空燃比学習値ＫＴＩＭを算出し、該算出時の内燃機関の運転状態に対応する記憶位置に空燃比学習値ＫＴＩＭを更新記憶する空燃比学習値格納部（空燃比学習値算出手段）５３と、運転状態に応じて内燃機関に供給される基本燃料量を算出する、より具体的には、内燃機関の運転状態に対応する記憶位置より基本燃料噴射量ＴＩＭを検索する基本燃料噴射量演算部（基本燃料量算出手段）５４とを有している。
【００２０】
さらに、基本燃料量と空燃比補正量と空燃比学習値に応じて内燃機関に供給される燃料量を算出する、より具体的には、内燃機関の運転状態に対応する記憶位置より空燃比学習値ＫＴＩＭを検索し、該空燃比学習値ＫＴＩＭに基づいて内燃機関内に噴射する燃料噴射量に相当する燃料噴射時間ＴＯＵＴを設定する燃料噴射量演算部（燃料供給量算出手段）５５と、該設定された燃料噴射時間ＴＯＵＴで燃料噴射弁１２を駆動する燃料噴射出力部５６と、内燃機関への吸入空気量に相関する吸入空気量相関値ＮＴＩを演算する吸入空気量相関値演算部５７とを有している。
【００２１】
さらにまた、パージ制御弁４４によりパージが開始されるときパージ量を時間の経過とともに目標蒸発燃料量になるまで徐々に増量するパージ流量演算部（パージ制御手段）６１と、空燃比補正量に基づいてパージ制御弁４４による蒸発燃料の濃度を推定するパージ濃度推定部（パージ濃度推定手段）６２と、パージ濃度推定部６２により推定された蒸発燃料の濃度が低いときに空燃比の学習値を算出する空燃比学習実行判定部（学習許可手段、学習許可判断禁止手段）５８とを有している。
【００２２】
この空燃比学習実行判定部５８は、蒸発燃料量が制限されているときには学習許可判断を行わず、また、空燃比学習値格納部５３による空燃比学習値ＫＴＩＭの更新記憶の実行を許可する反転周期ＦＰＶＯ２の許可範囲を内燃機関への吸入空気量相関値ＮＴＩに応じて決定するとともに、決定された許可範囲外に反転周期ＦＰＶＯ２があるときに空燃比学習値格納部５３による空燃比学習値ＫＴＩＭの更新記憶の実行を停止する。
【００２３】
上記ＥＣＵ５による燃料噴射制御の制御内容について以下に説明する。
ＥＣＵ５は、図３に示す燃料噴射制御のフローチャートのＳＴＡＲＴからＥＸＩＴまでの１制御サイクルを、例えば、ＴＤＣセンサからＴＤＣ信号パルスが出力される毎に実行する。
【００２４】
ＥＣＵ５の記憶回路には、エンジン回転数Ｎｅと吸気管内絶対圧Ｐｂとで規定される各運転状態毎にそれぞれ基本燃料噴射量（基本燃料噴射時間）ＴＩＭが対応設定されてなる基本燃料噴射量マップが記憶されており、まず、ステップＳＡ１において、その時点のエンジン回転数Ｎｅを回転情報センサ１４の出力から検出するとともに、その時点の吸気管内絶対圧Ｐｂを吸気管内絶対圧センサ１０の出力から検出し、これらエンジン回転数Ｎｅと吸気管内絶対圧Ｐｂとで規定される運転状態に対する基本燃料噴射量ＴＩＭを基本燃料噴射量マップで検索し読み出す。なお、この基本燃料噴射量ＴＩＭの演算は、本発明の基本燃料量算出手段に対応する基本燃料噴射量演算部５４が実行する。
【００２５】
また、ＥＣＵ５の記憶回路を構成するバッテリバックアップＲＡＭには、エンジン回転数Ｎｅと吸気管内絶対圧Ｐｂとで規定される各運転状態毎にＲＡＭエリア（記憶位置）が設定されこれらＲＡＭエリアにそれぞれ空燃比学習値ＫＴＩＭが対応設定されてなる空燃比学習値マップが記憶されており、ステップＳＡ２において、この空燃比学習値マップから、その時点のエンジン回転数Ｎｅと吸気管内絶対圧Ｐｂとで検出される内燃機関の運転状態に対するＲＡＭエリアにある空燃比学習値ＫＴＩＭを検索し読み出す。
【００２６】
ここで、上記した空燃比学習値マップは、例えば、図４に示すように、エンジン回転数Ｎｅを＃ＮＫＴＩＭ＋０〜＃ＮＫＴＩＭ＋８の９つの値の格子点により区画される８つの領域（図４における横方向）に分けるとともに、吸気管内絶対圧Ｐｂを＃ＰＫＴＩＭ＋０〜＃ＰＫＴＩＭ＋８の９つの値の格子点により区画される８つの領域（図４における縦方向）に分けることにより、８×８＝６４のＲＡＭエリアに区分されており、各ＲＡＭエリア毎にＫＴＩＭ０〜ＫＴＩＭ６３の空燃比学習値が設定記憶されている。さらに、この空燃比学習値マップとは別に、内燃機関がアイドリング状態において用いられる空燃比学習値ＫＴＩＭ６４が設定記憶されている。
【００２７】
これら空燃比学習値ＫＴＩＭの初期値は１．０であり、空燃比学習値は、図３に示すこの燃料噴射制御のフローチャートとは別に、所定時間（１０ｍｓ）毎に実行される後述する空燃比フィードバック係数ＫＯ２の算出処理で実行される空燃比学習値ＫＴＩＭの算出処理で必要に応じて補正され更新される。
【００２８】
なお、空燃比学習値マップから空燃比学習値ＫＴＩＭを読み出す際には、補間計算が行われる。すなわち、まず、図５に示すように、ＲＡＭエリアを区分する格子点の隣り合うもの同士の中間値を補間計算用格子点とする。具体的には、例えば、ＲＡＭエリアを区分する格子点＃ＮＫＴＩＭ２，＃ＮＫＴＩＭ３，＃ＰＢＫＴＩＭ３，＃ＰＢＫＴＩＭ４に対して、（ＮＫＴＩＭ２＋ＮＫＴＩＭ３）／２，（ＰＢＫＴＩＭ３＋ＰＢＫＴＩＭ４）／２を補間計算用格子点Ａ１とし、格子点＃ＮＫＴＩＭ３，＃ＮＫＴＩＭ４，＃ＰＢＫＴＩＭ３，＃ＰＢＫＴＩＭ４に対して、（ＮＫＴＩＭ３＋ＮＫＴＩＭ４）／２，（ＰＢＫＴＩＭ３＋ＰＢＫＴＩＭ４）／２を補間計算用格子点Ａ２とし、格子点＃ＮＫＴＩＭ４，＃ＮＫＴＩＭ５，＃ＰＢＫＴＩＭ３，＃ＰＢＫＴＩＭ４に対して、（ＮＫＴＩＭ４＋ＮＫＴＩＭ５）／２，（ＰＢＫＴＩＭ３＋ＰＢＫＴＩＭ４）／２を補間計算用格子点Ａ３とし、また、格子点＃ＮＫＴＩＭ２，＃ＮＫＴＩＭ３，＃ＰＢＫＴＩＭ４，＃ＰＢＫＴＩＭ５に対して、（ＮＫＴＩＭ２＋ＮＫＴＩＭ３）／２，（ＰＢＫＴＩＭ４＋ＰＢＫＴＩＭ５）／２を補間計算用格子点Ａ４とし、格子点＃ＮＫＴＩＭ３，＃ＮＫＴＩＭ４，＃ＰＢＫＴＩＭ４，＃ＰＢＫＴＩＭ５に対して、（ＮＫＴＩＭ３＋ＮＫＴＩＭ４）／２，（ＰＢＫＴＩＭ４＋ＰＢＫＴＩＭ５）／２を補間計算用格子点Ａ５とし、格子点＃ＮＫＴＩＭ４，＃ＮＫＴＩＭ５，＃ＰＢＫＴＩＭ４，＃ＰＢＫＴＩＭ５に対して、（ＮＫＴＩＭ４＋ＮＫＴＩＭ５）／２，（ＰＢＫＴＩＭ４＋ＰＢＫＴＩＭ５）／２を補間計算用格子点Ａ６とし、さらに、格子点＃ＮＫＴＩＭ２，＃ＮＫＴＩＭ３，＃ＰＢＫＴＩＭ５，＃ＰＢＫＴＩＭ６に対して、（ＮＫＴＩＭ２＋ＮＫＴＩＭ３）／２，（ＰＢＫＴＩＭ５＋ＰＢＫＴＩＭ６）／２を補間計算用格子点Ａ７とし、格子点＃ＮＫＴＩＭ３，＃ＮＫＴＩＭ４，＃ＰＢＫＴＩＭ５，＃ＰＢＫＴＩＭ６に対して、（ＮＫＴＩＭ３＋ＮＫＴＩＭ４）／２，（ＰＢＫＴＩＭ５＋ＰＢＫＴＩＭ６）／２を補間計算用格子点Ａ８とし、格子点＃ＮＫＴＩＭ４，＃ＮＫＴＩＭ５，＃ＰＢＫＴＩＭ５，＃ＰＢＫＴＩＭ６に対して、（ＮＫＴＩＭ４＋ＮＫＴＩＭ５）／２，（ＰＢＫＴＩＭ５＋ＰＢＫＴＩＭ６）／２を補間計算用格子点Ａ９とする。そして、エンジン回転数Ｎｅと吸気管内絶対圧Ｐｂとに対応する位置（例えば図５に示す位置Ａ０）に対し最も近接する四つの補間計算用格子点（図５に示す補間計算用格子点Ａ１，Ａ２，Ａ４，Ａ５）を割り出しこれら四つの補間計算用格子点からの各距離に応じた重み付けをするようにして補間計算を行うのである。
【００２９】
さらに、このように補間計算されたＫＴＩＭに対し、大気圧センサ２１の検出値から図６に示す大気圧補正テーブルに基づく検索で割り出される大気圧補正係数ＫＴＫＰＡで次式にしたがった補正を行う。
ＫＴＩＭ＝（ＫＴＩＭ−１．０）×ＫＴＫＰＡ＋１．０
【００３０】
さらに、ＥＣＵ５の記憶回路には、図３に示す燃料噴射制御のフローチャートとは別に、所定時間（１０ｍｓ）毎に実行される後述する空燃比フィードバック係数（空燃比補正係数）ＫＯ２Ｔの算出処理で算出された空燃比フィードバック係数ＫＯ２Ｔが記憶されており、ステップＳＡ３において、この空燃比フィードバック係数ＫＯ２Ｔを空燃比フィードバック係数ＫＯ２として読み出す。
【００３１】
ＥＣＵ５は、ステップＳＡ４において、ステップＳＡ１で読み出した基本燃料噴射量ＴＩＭと、ステップＳＡ２で読み出した空燃比学習値ＫＴＩＭと、ステップＳＡ３で読み出した空燃比フィードバック係数ＫＯ２と、さらにその時点のバッテリの状態に応じた補正値ＴＩＶＢとから、内燃機関内に噴射する燃料噴射量に相当する燃料噴射弁１２の燃料噴射時間（燃料噴射弁１２の開弁時間）ＴＯＵＴを以下の式に基づいて設定することになる。
ＴＯＵＴ＝ＴＩＭ＊ＫＴＩＭ＊ＫＯ２＋ＴＩＶＢ
この算出は、本発明の燃料供給量算出手段に対応する燃料噴射量演算部５５が実行する。
【００３２】
そして、ＥＣＵ５は、このようにして算出した燃料噴射時間ＴＯＵＴの間だけ燃料噴射弁１２を開弁させる。この燃料噴射弁１２の開弁駆動は燃料噴射出力部５６が実行する。
【００３３】
このようにしてステップＳＡ４で燃料噴射時間ＴＯＵＴを算出し燃料噴射弁１２を開弁させると、図２の燃料噴射制御の処理を終了する。
【００３４】
次に、上記した燃料噴射制御のフローチャートのステップＳＡ３で用いられる空燃比フィードバック係数ＫＯ２Ｔを算出するための算出処理と、燃料噴射制御のフローチャートのステップＳＡ２で用いられる、この空燃比フィードバック係数ＫＯ２Ｔの算出処理中のステップＳＢ１５で実行される空燃比学習値ＫＴＩＭを算出するための算出処理とについて説明する。
【００３５】
まず、空燃比フィードバック係数ＫＯ２Ｔを上流Ｏ２センサ１７の出力すなわち空燃比に応じて算出するための算出処理について図７のフローチャートに基づき説明する。なお、図７に示す空燃比フィードバック係数ＫＯ２Ｔの算出処理のフローチャートのＳＴＡＲＴからＥＸＩＴまでの１制御サイクルを、例えば、所定時間（１０ｍｓ）毎に実行する。
【００３６】
まず、ステップＳＢ１において、上流Ｏ２センサ１７の出力に反転があったか否かをフラグＦ＿ＰＶＲＥＦの反転に基づき判定する。すなわち、上流Ｏ２センサ１７の出力すなわち空燃比ＶＯ２は、図８（ａ）に示すように周期をもって変動するものであり、ＥＣＵ５においては、図８（ｂ）に示すように、上流Ｏ２センサ１７の出力ＶＯ２がリーン（０Ｖ）側からリッチ（１Ｖ）側に変動しているときは１Ｖに近い所定のしきい値Ｂ１を上回ると、フラグＦ＿ＰＶＲＥＦを「１」にセットする一方、上流Ｏ２センサ１７の出力がリッチ（１Ｖ）側からリーン（０Ｖ）側に変動しているときは０Ｖに近い所定のしきい値Ｂ２を下回ると、フラグＦ＿ＰＶＲＥＦを「０」にリセットする処理を行う。そして、ステップＳＢ１では、このフラグＦ＿ＰＶＲＥＦが前回の１サイクルのときに対し反転したか（０→１または１→０）否かを判定するのである。
【００３７】
ステップＳＢ１においてフラグＦ＿ＰＶＲＥＦに反転があった場合は、ステップＳＢ２においてフラグＦ＿ＰＶＲＥＦが１であるか否かを判定する。ステップＳＢ２において、フラグＦ＿ＰＶＲＥＦが１である場合、すなわち現在の空燃比の状態がリッチ側にある場合は、ステップＳＢ３においてリッチ用のタイマ値ＲＤＬＹをディレイタイマＴＲＬＤＬＹにセットする一方、ステップＳＢ２において、フラグＦ＿ＰＶＲＥＦが０である場合、すなわち現在の空燃比の状態がリーン側にある場合は、ステップＳＢ４においてリーン用のタイマ値ＬＤＬＹをディレイタイマＴＲＬＤＬＹにセットする。なお、ディレイタイマＴＲＬＤＬＹはセット後、自動的に所定の時間毎にカウントダウンされる。
【００３８】
ステップＳＢ３の後およびステップＳＢ４の後は、ステップＳＢ５において、フラグＦ＿ＫＯ２ＷＩＮを「０」にする。
【００３９】
上記ステップＳＢ１においてフラグＦ＿ＰＶＲＥＦに反転がなかった場合は、ステップＳＢ６においてディレイタイマＴＲＬＤＬＹ＝０であるか否かを判定する。そして、ステップＳＢ６においてディレイタイマＴＲＬＤＬＹ＝０であった場合、ステップＳＢ７においてフラグＦ＿ＰＶＲＥＦが１であるか否かを判定する。
【００４０】
ステップＳＢ７において、フラグＦ＿ＰＶＲＥＦが１である場合、すなわち現在の空燃比の状態がリッチ側にある場合は、ステップＳＢ８においてフラグＦ＿ＫＯ２ＷＩＮ＝１であるか否かを判定する。そして、ステップＳＢ８においてフラグＦ＿ＫＯ２ＷＩＮ＝１でなかった場合、ステップＳＢ９において現在の空燃比フィードバック係数ＫＯ２Ｔから飛躍的に補正するための所定値ＫＯ２ＷＲを減算した値を新たな空燃比フィードバック係数ＫＯ２Ｔとするとともに、ステップＳＢ１０において、フラグＦ＿ＫＯ２ＷＩＮを「１」とする。他方、ステップＳＢ８においてフラグＦ＿ＫＯ２ＷＩＮ＝１であった場合、ステップＳＢ１１において現在の空燃比フィードバック係数ＫＯ２Ｔから、徐々に補正していくための所定値ＩＬを減算した値を新たな現在の空燃比フィードバック係数ＫＯ２Ｔとする。
【００４１】
上記ステップＳＢ７において、フラグＦ＿ＰＶＲＥＦが１でない場合、すなわち現在の空燃比の状態がリーン側にある場合は、ステップＳＢ１２においてフラグＦ＿ＫＯ２ＷＩＮ＝１であるか否かを判定する。そして、ステップＳＢ１２においてフラグＦ＿ＫＯ２ＷＩＮ＝１でなかった場合、ステップＳＢ１３において現在の空燃比フィードバック係数ＫＯ２Ｔに対し飛躍的に補正するための所定値ＫＯ２ＷＬを加算した値を新たな空燃比フィードバック係数ＫＯ２Ｔとし、ステップＳＢ１０において、フラグＦ＿ＫＯ２ＷＩＮを「１」とする。他方、ステップＳＢ１２においてフラグＦ＿ＫＯ２ＷＩＮ＝１であった場合、ステップＳＢ１４において現在の空燃比フィードバック係数ＫＯ２Ｔに対し、徐々に補正していくための所定値ＩＲを加算した値を新たな空燃比フィードバック係数ＫＯ２Ｔとする。
【００４２】
ステップＳＢ５の後と、ステップＳＢ６の判断がＮＯの場合と、ステップＳＢ１０の後と、ステップＳＢ１１の後と、ステップＳＢ１４の後とに、ステップＳＢ１５において、空燃比学習値ＫＴＩＭの算出処理（後述）を行う。そして、このステップＳＢ１５の処理を終了すると、図７に示す空燃比フィードバック係数ＫＯ２Ｔを算出するための算出処理を終了する。
【００４３】
ここで、図９に示すタイミングチャートに照らし合わせて以上を説明すると、時点ｔ１において、フラグＦ＿ＰＶＲＥＦが「０」から「１」に変わると、ステップＳＢ１での判断がＹＥＳとなり、ステップＳＢ２での判断がＹＥＳとなって、ステップＳＢ３においてタイマ値ＲＤＬＹをディレイタイマＴＲＬＤＬＹにセットし、ステップＳＢ５において、フラグＦ＿ＫＯ２ＷＩＮを「０」にする。
【００４４】
すると、次の制御サイクルでは、ステップＳＢ１の判断がＮＯとなり、ステップＳＢ６でディレイタイマＴＲＬＤＬＹ＝０となるまで、空燃比フィードバック係数ＫＯ２Ｔをそのままの状態で維持する（時点ｔ１〜ｔ２）。そして、ステップＳＢ６でディレイタイマＴＲＬＤＬＹ＝０となった時点ｔ２においては現在の空燃比の状態がリッチ側にあってフラグＦ＿ＰＶＲＥＦ＝１であるため、ステップＳＢ７の判断がＹＥＳとなり、さらにステップＳＢ８においてフラグＦ＿ＫＯ２ＷＩＮ＝１がＮＯとなって、ステップＳＢ９において現在の空燃比フィードバック係数ＫＯ２Ｔから飛躍的に補正するための所定値ＫＯ２ＷＲを減算した値を新たな空燃比フィードバック係数ＫＯ２Ｔとする。そして、ステップＳＢ１０において、フラグＦ＿ＫＯ２ＷＩＮを「１」とする。
【００４５】
すると、次の制御サイクルでは、ステップＳＢ８の判断がＹＥＳとなり、ステップＳＢ１１において、現在の空燃比フィードバック係数ＫＯ２Ｔから、徐々に補正していくための所定値ＩＬを減算した値を新たな現在の空燃比フィードバック係数ＫＯ２Ｔとする。そして、ステップＳＢ１において次のフラグＦ＿ＰＶＲＥＦの反転の判断がＹＥＳとなるまで、ステップＳＢ１１を繰り返し、空燃比フィードバック係数ＫＯ２Ｔを徐々に小さくしていく（時点ｔ２〜ｔ３）。
【００４６】
次に、時点ｔ３において、フラグＦ＿ＰＶＲＥＦが「０」から「１」に変わると、ステップＳＢ１での判断がＹＥＳとなり、ステップＳＢ２での判断がＮＯとなって、ステップＳＢ４においてタイマ値ＬＤＬＹをディレイタイマＴＲＬＤＬＹにセットし、ステップＳＢ５において、フラグＦ＿ＫＯ２ＷＩＮを「０」にする。
【００４７】
すると、次の制御サイクルでは、ステップＳＢ１の判断がＮＯとなり、ステップＳＢ６でディレイタイマＴＲＬＤＬＹ＝０となるまで、空燃比フィードバック係数ＫＯ２Ｔをそのままの状態で維持する（時点ｔ３〜ｔ４）。そして、ステップＳＢ６でディレイタイマＴＲＬＤＬＹ＝０となると、時点ｔ４においては現在の空燃比の状態がリーン側にあってフラグＦ＿ＰＶＲＥＦ＝１ではないため、ステップＳＢ７の判断がＮＯとなり、さらにステップＳＢ１２においてフラグＦ＿ＫＯ２ＷＩＮ＝１がＮＯとなって、ステップＳＢ１３において現在の空燃比フィードバック係数ＫＯ２Ｔに飛躍的に補正するための所定値ＫＯ２ＷＬを加算した値を新たな空燃比フィードバック係数ＫＯ２Ｔとする。そして、ステップＳＢ１０において、フラグＦ＿ＫＯ２ＷＩＮを「１」とする。
【００４８】
すると、次の制御サイクルでは、ステップＳＢ１２の判断がＹＥＳとなり、ステップＳＢ１４において、現在の空燃比フィードバック係数ＫＯ２Ｔに、徐々に補正していくための所定値ＩＲを加算した値を新たな現在の空燃比フィードバック係数ＫＯ２Ｔとする。そして、ステップＳＢ１において次のフラグＦ＿ＰＶＲＥＦの反転の判断がＹＥＳとなるまで、ステップＳＢ１４を繰り返し、空燃比フィードバック係数ＫＯ２Ｔを徐々に大きくしていく（時点ｔ４〜ｔ５）。
【００４９】
以上のようにして空燃比フィードバック係数ＫＯ２Ｔを算出する。
なお、この空燃比フィードバック係数ＫＯ２Ｔの算出処理は、本発明のフィードバック制御手段に対応する空燃比Ｆ／Ｂ係数演算部５１が実行する。
【００５０】
次に、上記した空燃比フィードバック係数ＫＯ２Ｔの算出処理のステップＳＢ１５で実行される空燃比学習値ＫＴＩＭを算出するための算出処理について図１０〜図１３のフローチャートに基づき説明する。
【００５１】
まず、図１０のステップＳＣ１において、前回の制御サイクルにおけるフラグＦ＿ＰＶＲＥＦが「０」であり、かつ今回の制御サイクルにおけるフラグＦ＿ＰＶＲＥＦが「１」であるか否か、すなわち上流Ｏ２センサ１７の出力ＶＯ２がリーン側からリッチ側に反転したか否かを判定する。
【００５２】
そして、ステップＳＣ１の判断がＮＯの場合、ステップＳＣ２において、カウンタＣＦＰＶＯ２を「１」だけインクリメントする。
【００５３】
次に、ステップＳＣ３において、前回の制御サイクルにおけるフラグＦ＿ＰＶＲＥＦが「１」であり、かつ今回の制御サイクルにおけるフラグＦ＿ＰＶＲＥＦが「０」であるか否か、すなわち上流Ｏ２センサ１７の出力ＶＯ２がリッチ側からリーン側に反転したか否かを判定する。
【００５４】
そして、ステップＳＣ３の判断がＹＥＳの場合、ステップＳＣ４において、現在の空燃比フィードバック係数ＫＯ２Ｔを空燃比フィードバック係数の最小値ＫＯ２ＭＩＮとして記憶する。
【００５５】
ステップＳＣ３の判断がＮＯの場合と、ステップＳＣ４の後とにおいては、ステップＳＣ５で、フラグＦ＿ＫＴＩＭＧを「０」とする。
【００５６】
上記ステップＳＣ１の判断がＹＥＳであった場合、すなわち上流Ｏ２センサ１７の出力ＶＯ２がリーン側からリッチ側に反転した場合は、ステップＳＣ６においてカウンタＣＦＰＶＯ２を反転周期ＦＰＶＯ２として記憶する。そして、ステップＳＣ７においてカウンタＣＦＰＶＯ２を「０」とし、ステップＳＣ８において、現在の空燃比フィードバック係数ＫＯ２Ｔを空燃比フィードバック係数の最大値ＫＯ２ＭＡＸとして記憶する。
【００５７】
次に、ステップＳＣ９において、空燃比フィードバック係数の最小値ＫＯ２ＭＩＮと最大値ＫＯ２ＭＡＸとを加算して２で割ることで、空燃比フィードバック係数の平均値ＫＯ２ＭＥＮを算出する。そして、ステップＳＣ１０において、フラグＦ＿ＫＴＩＭＧを「１」とする。
【００５８】
ここで、図９に示すタイミングチャートに照らし合わせて以上を説明すると、時点ｔ１において、フラグＦ＿ＰＶＲＥＦが「０」から「１」に変わると、ステップＳＣ１での判断がＹＥＳとなり、ステップＳＣ７においてカウンタＣＦＰＶＯ２を「０」とする。
【００５９】
次の制御サイクルでは、ステップＳＣ１での判断がＮＯとなり、ステップＳＣ２において、カウンタＣＦＰＶＯ２を「１」だけインクリメントする。そして、フラグＦ＿ＰＶＲＥＦが「０」から「１」に変わった時点ｔ１から、次にステップＳＣ１での判断がＹＥＳとなる、すなわちフラグＦ＿ＰＶＲＥＦが「０」から「１」に変わる時点ｔ５までに０から制御サイクル毎に１ずつインクリメントされるカウンタＣＦＰＶＯ２を、ステップＳＣ６において反転周期ＦＰＶＯ２として記憶する。なお、このような反転周期ＦＰＶＯ２の演算はＯ２センサ反転周期演算部５２において行われる。
【００６０】
また、時点ｔ３において、フラグＦ＿ＰＶＲＥＦが「１」から「０」に変わると、ステップＳＣ３での判断がＹＥＳとなり、ステップＳＣ４において、その時点での空燃比フィードバック係数ＫＯ２Ｔをその最小値ＫＯ２ＭＩＮとして記憶することになり、その後、時点ｔ５において、フラグＦ＿ＰＶＲＥＦが「０」から「１」に変わると、ステップＳＣ１での判断がＹＥＳとなり、ステップＳＣ８において、その時点での空燃比フィードバック係数ＫＯ２Ｔをその最大値ＫＯ２ＭＡＸとして記憶するとともに、ステップＳＣ９でその平均値ＫＯ２ＭＥＮを算出して記憶する。そして、ステップＳＣ６で反転周期ＦＰＶＯ２が算出され、ステップＳＣ９で空燃比フィードバック係数の平均値ＫＯ２ＭＥＮが算出されると、ステップＳＣ１０においてこれらの算出が終わったことを示すフラグＦ＿ＫＴＩＭＧを「１」とする。
【００６１】
なお、ここでは、空燃比フィードバック係数の平均値ＫＯ２ＭＥＮを最大値ＫＯ２ＭＡＸおよび最小値ＫＯ２ＭＩＮの平均から求めたが、フラグＦ＿ＰＶＲＥＦが「１」から「０」に変わってから次にフラグＦ＿ＰＶＲＥＦが「１」から「０」に変わるまでの間のすべての制御サイクルで求められる空燃比フィードバック係数ＫＯ２Ｔを加算しその加算回数で除算して平均値を求めてもよい。
【００６２】
上記ステップＳＣ５の後およびステップＳＣ１０の後、図１１のステップＳＷ１において、フラグＦ＿ＰＧＡＣＴのフラグ値にパージ実施中であることを示す「１」がセットされているかを判定する。その判定結果が「ＹＥＳ」の場合、すなわち、パージ実施中の場合は、ステップＳＷ２に進み、「ＮＯ」の場合、すなわち、パージ停止中の場合は、ステップＳＷ２以下の処理をスキップし、図１２のステップＳＣ１１に進む。
【００６３】
ステップＳＷ２では、フラグＦ＿ＰＧＫＴＩＭのフラグ値に、後述のステップＳＷ６において実行される学習許可判断の許可を示す「１」がセットされているかを判定する。その判定結果が「ＹＥＳ」の場合は、ステップＳＷ３に進み、「ＮＯ」の場合は、ステップＳＷ２１に進む。ここで、フラグＦ＿ＰＧＫＴＩＭは始動時に「０」にセットされている。
このステップＳＷ２の処理は、本発明の学習許可判断禁止手段に対応する空燃比学習実行判定部５８が実行する。
【００６４】
ステップＳＷ３では、ダウンタイマＴＫＴＩＳＴに所定のタイマ値＃ＴＭＫＴＩＳＴをセットする。
ステップＳＷ４では、後述するステップＳＷ２１でセットされるダウンタイマＴＫＴＩＧＯのタイマ値が「０」であるかを判定する。その判定結果が、「ＹＥＳ」の場合は、ステップＳＷ１１に進み、「ＮＯ」の場合は、ステップＳＷ５に進む。
ステップＳＷ１１では、フラグＦ＿ＰＧＴＩＭのフラグ値に、後述のステップＳＷ６において実行される学習許可判断の禁止を示す「０」をセットする。
【００６５】
そして、ステップＳＷ１２において、フラグＦ＿ＰＫＴＩＭＯＫのフラグ値に空燃比の学習禁止を示す「０」をセットし、図１２のステップＳＣ１１以降の処理を全てスキップし、空燃比学習値ＫＴＩＭの算出処理を終了する。
ステップＳＷ４の判定結果が「ＮＯ」の場合に実行されるステップＳＷ５では、バージ濃度が濃いかを判定するための判定処理を行う。この判定処理については、後ほど図１３を用いて説明する。
【００６６】
ステップＳＷ６では、フラグＦ＿ＰＫＴＩＭＯＫのフラグ値が空燃比の学習許可を示す「１」であるかを判定し、その判定結果が「ＹＥＳ」の場合、すなわち、空燃比の学習を行う場合は、図１２のステップＳＣ１１に進み、「ＮＯ」の場合、すなわち、空燃比の学習を行わない場合は、図１２のステップＳＣ１１以降の処理を全てスキップし、空燃比学習値ＫＴＩＭの算出処理を終了する。
このステップＳＷ６の処理は、本発明の学習許可手段に対応する空燃比学習実行判定部５８が実行する。
【００６７】
ステップＳＷ２の判定結果が「ＮＯ」の場合に実行されるステップＳＷ２１では、タイマＴＫＴＩＧＯに所定のタイマ値＃ＴＭＫＴＩＧＯをセットする。
ステップＳＷ２２では、タイマＴＫＴＩＳＴのタイマ値が「０」であるかを判定する。その判定結果が、「ＹＥＳ」の場合は、ステップＳＷ２３に進み、「ＮＯ」の場合は、図１２のステップＳＣ１１以降の処理を全てスキップし、空燃比学習値ＫＴＩＭの算出処理を終了する。
【００６８】
そして、ステップＳＷ２３において、フラグＦ＿ＰＧＫＴＩＭのフラグ値に、上記したステップＳＷ６において実行される学習許可判断の禁止を示す「１」をセットすると、図１２のステップＳＣ１１以降の処理を全てスキップし、空燃比学習値ＫＴＩＭの算出処理を終了する。
なお、図１１に示す学習処理を継続的に行うと、パージの影響分を学習して学習値がズレてしまうため、同図に示す学習処理は、所定周期＃ＴＭＫＴＩＧＯ，＃ＴＭＫＴＩＳＴ（例えば、２０分）毎に行う。
【００６９】
図１２のステップＳＣ１１において、空燃比学習値マップ（図４参照）から、その時点のエンジン回転数Ｎｅと吸気管内絶対圧Ｐｂとで検出されるＲＡＭエリアにある空燃比学習値ＫＴＩＭを検索し読み出す。そして、ステップＳＣ１２において、一の反転周期計測中に空燃比学習値ＫＴＩＭが記憶されたＲＡＭエリアに変化（他のＲＡＭエリアへの移行）があったか否かを判定し、ＲＡＭエリアの変化があった場合には、運転状態が変化していることから、ステップＳＣ１３で、その旨を示すフラグＦ＿ＫＴＩＭＡを「１」にする。
【００７０】
ステップＳＣ１２においてＲＡＭエリアの変化がなかった場合、およびステップＳＣ１３でフラグＦ＿ＫＴＩＭＡを「１」にした場合は、ステップＳＣ１４においてフラグＦ＿ＫＴＩＭＧ＝１であるか否かを判定し、フラグＦ＿ＫＴＩＭＧ＝１でない場合は、反転周期ＦＰＶＯ２および空燃比フィードバック係数の平均値ＫＯ２ＭＥＮが算出されていないため、図１０から図１２に示すフローチャートの処理すなわち図７に示すフローチャートのステップＳＢ１５を終了する。
【００７１】
ステップＳＣ１４においてフラグＦ＿ＫＴＩＭＧ＝１である場合、すなわち、反転周期ＦＰＶＯ２および空燃比フィードバック係数の平均値ＫＯ２ＭＥＮが算出されていると、ステップＳＣ１５においてフラグＦ＿ＩＤＬＥ＝１であるか否かを判定する。このフラグＦ＿ＩＤＬＥは、内燃機関がアイドリング状態にあると判定される所定の条件下において「１」とされ、内燃機関がアイドリング状態にないと判定される所定の条件下において「０」とされる。
【００７２】
そして、ステップＳＣ１５において、フラグＦ＿ＩＤＬＥ＝１である場合、すなわち、内燃機関がアイドリング状態にある場合は、ステップＳＣ１６において、ステップＳＣ６で記憶した反転周期ＦＰＶＯ２が、下側しきい値＃ＦＰＶＯ２ＩＬと上側しきい値＃ＦＰＶＯ２ＩＨとで規定される一の学習許可範囲に入っているか否か、すなわち＃ＦＰＶＯ２ＩＬ≦ＦＰＶＯ２≦＃ＦＰＶＯ２ＩＨであるか否かを判定し、＃ＦＰＶＯ２ＩＬ≦ＦＰＶＯ２≦＃ＦＰＶＯ２ＩＨでない場合は、後述するステップＳＣ２２〜ＳＣ２４で実行される空燃比学習値ＫＴＩＭの更新記憶の実行を停止する。ここで、アイドリング状態にあるときは、エンジン負荷がほとんど変わることがないので、反転周期ＦＰＶＯ２がこのような一の所定範囲に入っているか否かの判断のみを行う。なお、この空燃比学習値ＫＴＩＭの更新記憶の実行停止の判定は空燃比学習実行判定部５８が実行する。
【００７３】
上記ステップＳＣ１５において、フラグＦ＿ＩＤＬＥ＝１でない場合、すなわち、内燃機関がアイドリング状態にない場合は、ステップＳＣ１７において、内燃機関への吸入空気量に相関がある吸入空気量相関値ＮＴＩを算出する。なお、この吸入空気量相関値ＮＴＩの算出は、吸入空気量相関値演算部５７が実行する。
【００７４】
ステップＳＣ１７においては、まず、エンジン回転数Ｎｅおよび吸気管内絶対圧Ｐｂを検出し、これらエンジン回転数Ｎｅと吸気管内絶対圧Ｐｂとで規定される運転状態に対する基本燃料噴射量ＴＩＭを基本燃料噴射量マップで検索し読み出す。そして、この基本燃料噴射量ＴＩＭとエンジン回転数Ｎｅとから、以下の式で算出を行う。
吸入空気量相関値ＮＴＩ＝エンジン回転数Ｎｅ×基本燃料噴射量ＴＩＭ
【００７５】
なお、基本燃料噴射量ＴＩＭは、単位回転当たりの燃料噴射量であるので、これにエンジン回転数Ｎｅをかけることで、単位時間当たりの燃料噴射量が得られ、この単位時間当たりの燃料噴射量が、単位時間当たりの吸入空気量に相当する値となる。
【００７６】
ここで、ＥＣＵ５の記憶回路には、各吸入空気量相関値ＮＴＩ毎にそれぞれ下側しきい値データ＃ＦＰＶＯ２ＮＮＬおよび上側しきい値データ＃ＦＰＶＯ２ＮＮＨが対応設定された図１７に示すしきい値テーブルが記憶されている。すなわち、図１７においては、吸入空気量相関値ＮＴＩの各値に対し設定された上側の線Ｃ１が上側しきい値データを、下側の線Ｃ２が下側しきい値データを示している。
【００７７】
そして、ステップＳＣ１８において、ステップＳＣ１７で算出された吸入空気量相関値ＮＴＩに対する下側しきい値データ＃ＦＰＶＯ２ＮＮＬおよび上側しきい値データ＃ＦＰＶＯ２ＮＮＨをしきい値テーブルで検索して読み出し、読み出した下側しきい値データ＃ＦＰＶＯ２ＮＮＬを下側しきい値ＦＰＶＯ２ＮＬとし、上側しきい値データ＃ＦＰＶＯ２ＮＮＨを上側しきい値ＦＰＶＯ２ＮＨとする。
【００７８】
そして、ステップＳＣ１９において、ステップＳＣ６で記憶した反転周期ＦＰＶＯ２が、下側しきい値ＦＰＶＯ２ＮＬと上側しきい値ＦＰＶＯ２ＮＨとで規定される学習許可範囲に入っているか否か、すなわちＦＰＶＯ２ＮＬ≦ＦＰＶＯ２≦ＦＰＶＯ２ＮＨであるか否かを判定し、ＦＰＶＯ２ＮＬ≦ＦＰＶＯ２≦ＦＰＶＯ２ＮＨでない場合は、後述するステップＳＣ２２〜ＳＣ２４で実行される空燃比学習値ＫＴＩＭの更新記憶の実行を停止する。すなわち、アイドリング状態にないときは、エンジン負荷が変動しているため、エンジン負荷の大きさ毎に設定された学習許可範囲に反転周期ＦＰＶＯ２が入っているか否かの判断を行う。なお、この空燃比学習値ＫＴＩＭの更新記憶の実行停止の判定は空燃比学習実行判定部５８が実行する。
【００７９】
上述したステップＳＣ１６において＃ＦＰＶＯ２ＩＬ≦ＦＰＶＯ２≦＃ＦＰＶＯ２ＩＨであった場合、およびステップＳＣ１９においてＦＰＶＯ２ＮＬ≦ＦＰＶＯ２≦ＦＰＶＯ２ＮＨであった場合は、ステップＳＣ２０において、ＲＡＭエリアの変化があり運転状態が変化したことを示すフラグＦ＿ＫＴＩＭＡが「１」であるか否かを判断する。
【００８０】
ステップＳＣ２０において、Ｆ＿ＫＴＩＭＡ＝１であった場合は、ステップＳＣ２１において、Ｆ＿ＫＴＩＭＡを「０」にするとともに、図１０から図１２に示すフローチャートの処理すなわち図７に示すフローチャートのステップＳＢ１５を終了する。すなわち、運転状態が定常的状態になく過渡的状態にあることから空燃比学習値ＫＴＩＭの更新記憶の実行を停止する。なお、この空燃比学習値ＫＴＩＭの更新記憶の実行停止の判定は空燃比学習実行判定部５８が実行する。
【００８１】
ステップＳＣ２０において、Ｆ＿ＫＴＩＭＡ＝１でなかった場合は、ステップＳＣ２２において、ステップＳＣ９で算出された空燃比フィードバック係数の平均値ＫＯ２ＭＥＮから、基準値である１．００を減算して偏差ＤＫＯ２ＭＥＮを算出する。
【００８２】
そして、ステップＳＣ２３において、ステップＳＣ１１で運転状態に対応する空燃比学習値マップのＲＡＭエリアから読み出された空燃比学習値ＫＴＩＭ（ＫＴＩＭｎＯＬＤ）に偏差ＤＫＯ２ＭＥＮを加算した値を新たな空燃比学習値ＫＴＩＭ（ＫＴＩＭｎＮＥＷ）として同じＲＡＭエリアに更新記憶する。なお、この空燃比学習値ＫＴＩＭの更新記憶は、空燃比学習値格納部５３が実行する。
【００８３】
さらに、ステップＳＣ２４において、空燃比学習値ＫＴＩＭを所定の下限値＃ＫＴＩＭＬＬと所定の上限値＃ＫＴＩＭＬＨとの間に収めるリミット処理を行う。すなわち、空燃比学習値ＫＴＩＭが下限値＃ＫＴＩＭＬＬ以上かつ上限値＃ＫＴＩＭＬＨ以下であればそのままとし、空燃比学習値ＫＴＩＭが所定の下限値＃ＫＴＩＭＬＬを下回った場合にはこれを下限値＃ＫＴＩＭＬＬとし、空燃比学習値ＫＴＩＭが所定の下限値＃ＫＴＩＭＬＨを上回った場合にはこれを上限値＃ＫＴＩＭＬＨとするのである。
【００８４】
ステップＳＣ２４の処理を行った後、図１０から図１２に示すフローチャートの処理すなわち図７に示すフローチャートのステップＳＢ１５を終了する。
【００８５】
次に、上記した図１１のステップＳＷ５で実行されるバージ濃度が濃いかを判定するための判定処理について、図１３のフローチャートに基づき説明する。
【００８６】
まず、ステップＳＸ１では、キャニスターパージ制御絞り係数ＫＰＧＴが「１．０」であるかを判定する。このキャニスターパージ制御絞り係数ＫＰＧＴを算出するための算出処理は、後ほど図１４を用いて説明する。
ステップＳＸ１の判定結果が「ＹＥＳ」の場合は、ステップＳＸ２の処理をスキップし、ステップＳＸ３に進む。
【００８７】
これに対し、ステップＳＸ１の判定結果が「ＮＯ」の場合は、ステップＳＸ２に進み、タイマＴＫＴＩＤに所定のタイマ値＃ＴＭＫＴＩＤをセットする。
このタイマＴＫＴＩＤは、パージ濃度推定値が実際のパージ濃度になるまで待つためのタイマーである。
【００８８】
次に、ステップＳＸ３において、タイマＴＫＴＩＤにセットされている値が「０」であるかを判定する。その判定結果が「ＮＯ」の場合は、バージ濃度が濃いかを判定するための判定処理を終了し、「ＹＥＳ」の場合は、ステップＳＸ４に進む。
【００８９】
ステップＳＸ４では、パージ流量比ＱＲＡＴＥが「１．０」であるかを判定する。その判定結果が「ＮＯ」の場合、すなわち、「パージ流量一定パージ」の場合は、ステップＳＸ１１に進み、「ＹＥＳ」の場合、すなわち、「吸入空気量比例パージ」の場合は、ステップＳＸ５に進む。
なお、パージ流量比ＱＲＡＴＥは、後ほど説明する図１４のステップＳＶ６でセットされる。
【００９０】
ステップＳＸ５，ステップＳＸ１１では、空気流量ＱＡＩＲが所定の範囲内であるかを判定する。この空気流量ＱＡＩＲは、基本燃料噴射量ＴＩＭ，エンジン回転数ＮＥ，及び，所定の係数＃ＫＱＡＩＲを用いて、次式に従い算出する。
空気流量ＱＡＩＲ＝
基本燃料噴射量ＴＩＭ×エンジン回転数ＮＥ×２×係数＃ＫＱＡＩＲ
【００９１】
ステップＳＸ５では、パージ濃度推定が正確に行える領域内にあるか、すなわち、空気流量ＱＡＩＲが下限値＃ＱＡＩＲＰＬＬ以上、かつ、上限値＃ＱＡＩＲＰＬＨ以下であるかを判定する。その判定結果が「ＮＯ」の場合は、パージ濃度が濃いかを判定するための判定処理を終了し、「ＹＥＳ」の場合は、ステップＳＸ６に進む。
【００９２】
これに対し、ステップＳＸ１１では、パージ濃度推定値が正確に行える領域内に空気流量ＱＡＩＲが収まっているか、すなわち、空気流量ＱＡＩＲが下限値＃ＱＡＩＲＰＨＬ以上、かつ、上限値＃ＱＡＩＲＰＨＨ以下であるかを判定する。その判定結果が「ＮＯ」の場合は、パージ濃度が濃いかを判定するための判定処理を終了し、「ＹＥＳ」の場合は、ステップＳＸ１２に進む。
【００９３】
ステップＳＸ６，ステップＳＸ１２では、パージ補正係数ＫＡＦＥＶＡＣＴが所定の上限値以下であるかを判定する。なお、これら上限値の大小関係は、＃ＰＧＣＪＵＤＬ（例えば、０．１０）＞＃ＰＧＣＪＵＤＨ（例えば、０．０５）となっている。
また、パージ補正係数ＫＡＦＥＶＡＣＴは、後ほど説明する図１６のステップＳＲ６で設定される。
【００９４】
そして、ステップＳＸ６，ステップＳＸ１２のいずれにおいても、判定結果が「ＹＥＳ」の場合は、ステップＳＸ７に進み、「ＮＯ」の場合は、ステップＳＸ１３に進む。
ステップＳＸ７では、フラグＦ＿ＰＫＴＩＭＯＫのフラグ値に空燃比の学習許可を示す「１」をセットし、ステップＳＸ１３では、フラグＦ＿ＰＫＴＩＭＯＫのフラグ値に空燃比の学習禁止を示す「０」をセットする。これにより、バージ濃度が濃いかを判定するための判定処理は終了する。
【００９５】
次に、パージ流量が最適な流量となるようにパージ制御弁４４を制御するためのメインフローについて、図１４のフローチャートに基づき説明する。このメインフローは、８０ｍｓ毎に実行される。
まず、ステップＳＶ１において、空気流量ＱＡＩＲの算出処理を行う。この空気流量ＱＡＩＲは、次式に従い算出する。
【００９６】
空気流量ＱＡＩＲ＝
基本燃料噴射量ＴＩＭ×エンジン回転数ＮＥ×２×係数＃ＫＱＡＩＲ
ステップＳＶ２では、フラグＦ＿ＰＧＡＣＴのフラグ値にパージ実施中を示す「１」がセットされているかを判定する。その判定結果が「ＮＯ」の場合、すなわち、パージ停止中の場合は、ステップＳＶ２１に進み、パージ制御弁駆動デューティ値ＤＯＵＴＰＧＣに全閉を示す「０％」をセットする。
【００９７】
次いで、ステップＳＶ２２において、キャニスターパージ制御絞り係数ＫＰＧＴに初期値＃ＫＰＧＴＩＮＩをセットして、パージ制御弁４４の制御処理を終了する。
ステップＳＶ２の判定結果が「ＹＥＳ」の場合、すなわち、パージ実施中の場合は、ステップＳＶ３に進み、フラグＦ＿ＦＣのフラグ値が燃料カット実施中を示す「１」であるかを判定する。
【００９８】
ステップＳＶ３の判定結果が「ＹＥＳ」の場合、すなわち、燃料カット実施中の場合は、ステップＳＶ１１に進み、キャニスターパージ制御絞り係数ＫＰＧＴに初期値＃ＫＰＧＴＩＮＩをセットする。
次いで、ステップＳＶ１２において、パージ制御弁駆動デューティ値ＤＯＵＴＰＧＣに全閉を示す「０％」をセットして、パージ制御弁４４の制御処理を終了する。
【００９９】
ステップＳＶ３の判定結果が「ＮＯ」の場合、すなわち、燃料カット実施中でない場合は、ステップＳＶ４に進み、目標パージ流量となるようなパージ制御弁４４の目標パージ制御弁駆動デューティ値ＰＧＣＭＤを算出する。
この目標パージ制御弁駆動デューティ値ＰＧＣＭＤの算出処理については、後ほど図１５を用いて説明する。
【０１００】
ステップＳＶ５では、ステップＳＶ４において算出した目標パージ制御弁駆動デューティ値ＰＧＣＭＤをパージ制御弁駆動デューティ値ＤＯＵＴＰＧＣにセットする。
そして、ステップＳＶ６において、目標パージ流量ＱＰＧＣを目標パージ流量基本値ＱＰＧＣＢＡＳＥで除算して得た値をパージ流量比ＱＲＡＴＥにセットして、パージ制御弁４４の制御処理を終了する。
【０１０１】
次に、上記した図１４のステップＳＶ４で実行される目標パージ制御弁駆動デューティ値ＰＧＣＭＤの算出処理について、図１５のフローチャートに基づき説明する。
まず、ステップＳＴ１では、空気流量ＱＡＩＲに所定の目標パージ率＃ＫＱＰＧＢを乗じて得た値を目標パージ流量基本値ＱＰＧＣＢＡＳＥにセットする。
【０１０２】
次いで、この目標パージ流量基本値ＱＰＧＣＢＡＳＥのリミット処理を行う。具体的には、まず、ステップＳＴ２において、目標パージ流量基本値ＱＰＧＣＢＡＳＥが所定のパージ流量上限値＃ＱＰＧＭＡＸよりも大きいかを判定する。その判定結果が「ＹＥＳ」の場合は、ステップＳＴ１１に進み、目標パージ流量値ＱＰＧＣＭＤにパージ流量上限値＃ＱＰＧＭＡＸをセットする。
【０１０３】
これに対し、ステップＳＴ２の判定結果が「ＮＯ」の場合は、ステップＳＴ３に進み、目標パージ流量値ＱＰＧＣＭＤに目標パージ流量基本値ＱＰＧＣＢＡＳＥをセットする。
ステップＳＴ３にて目標パージ流量値ＱＰＧＣＭＤを設定した場合が「吸入空気量比例パージ」であり、パージ流量比ＱＲＡＴＥは「１」となる。また、ステップＳＴ１１にて目標パージ流量値ＱＰＧＣＭＤを設定した場合が「パージ流量一定パージ」であり、パージ流量比ＱＲＡＴＥは「１」より小さな値となる。
【０１０４】
ステップＳＴ４では、キャニスターパージ制御絞り係数ＫＰＧＴにセットされている値を所定の加算値＃ＤＫＰＧＴだけインクリメントする。これにより、パージ量は時間の経過とともに徐々に増量される。
このステップＳＴ４の処理は、本発明のパージ制限手段に対応するパージ流量演算部６１が実行する。
【０１０５】
次いで、キャニスターパージ制御絞り係数ＫＰＧＴのリミット処理を行う。具体的には、まず、ステップＳＴ５において、キャニスターパージ制御絞り係数ＫＰＧＴが「１．０」よりも大きいかを判定し、その判定結果がＹＥＳの場合は、ステップＳＴ６に進み、キャニスターパージ制御絞り係数ＫＰＧＴに「１．０」をセットする。これに対し、ステップＳＴ５の判定結果が「ＮＯ」の場合は、ステップＳＴ６をスキップする。
【０１０６】
そして、ステップＳＴ７において、ステップＳＴ３又はステップＳＴ１１の処理でセットした目標パージ流量値ＱＰＧＣＭＤにステップＳＴ４の処理で算出したキャニスターパージ制御絞り係数ＫＰＧＴを乗じて得た値を目標パージ流量値ＱＰＧＣにセットする。
【０１０７】
次に、ステップＳＴ８において、パージ流量をデューティ値に変換するための処理を実行して、目標パージ制御弁駆動デューティ値ＰＧＣＭＤの算出処理を終了する。この変換処理では、目標パージ流量ＱＰＧＣに所定の係数＃ＫＤＵＴＹを乗じ、更にこれを差圧ＫＤＰＢＧで除算して得た値を目標パージ制御弁駆動デューティ値ＰＧＣＭＤとしてセットする。なお、差圧ＫＤＰＢＧは、吸気管内絶対圧との相関テーブルを検索することにより取得する。
【０１０８】
次に、上記した図１３のステップＳＸ６，ステップＳＸ１２の判定処理に用いられるパージ補正係数ＫＡＦＥＶＡＣＴを算出するための算出処理について、図１６のフローチャートに基づき説明する。
【０１０９】
まず、ステップＳＲ１において、フラグＦ＿ＡＦＦＢのフラグ値にフィードバック制御実施中を示す「１」がセットされているかを判定する。その判定結果が「ＹＥＳ」の場合、すなわち、フィードバック制御実施中の場合は、ステップＳＲ２１に進む。
【０１１０】
ステップＳＲ２１では、パージ停止中の空燃比学習値ＫＲＥＦＸから、ＤＫＡＦＥＶＸＬを減算して得られた値が、空燃比フィードバック係数ＫＯ２よりも大きいかを判定する。その判定結果が「ＹＥＳ」の場合は、ステップＳＲ２２に進み、パージ濃度が推定値より濃い状態なので、パージ濃度係数ＫＡＦＥＶに所定の加算値＃ＤＫＥＶＡＰＯＰをインクリメントする。
【０１１１】
これに対し、ステップＳＲ２１の判定結果が「ＮＯ」の場合は、ステップＳＲ２３に進み、パージ実施中の空燃比学習値ＫＲＥＦＸに、ＤＫＡＦＥＶＸＨを加算して得られた値が、空燃比フィードバック係数ＫＯ２よりも小さいかを判定する。その判定結果が「ＹＥＳ」の場合は、ステップＳＲ２４に進み、パージ濃度が推定値より薄い状態なので、パージ濃度係数ＫＡＦＥＶから所定の減算値＃ＤＫＥＶＡＰＯＭをデクリメントする。
【０１１２】
ステップＳＲ１の判定結果が「ＮＯ」の場合、すなわち、フィードバック制御実施中でない場合は、パージ濃度係数ＫＡＦＥＶのリミット処理を行う。
具体的には、まず、ステップＳＲ３において、パージ濃度係数ＫＡＦＥＶが「０」よりも大きいかを判定する。その判定結果が「ＮＯ」の場合は、ステップＳＲ４に進み、パージ濃度係数ＫＡＦＥＶに「０」をセットする。
【０１１３】
これに対し、ステップＳＲ３の判定結果が「ＹＥＳ」の場合は、ステップＳＲ３１に進み、パージ濃度係数ＫＡＦＥＶが所定のリミット値＃ＫＡＦＥＶＬＭＴよりも大きいかを判定する。その判定結果が「ＹＥＳ」の場合は、ステップＳＲ３２に進み、パージ濃度係数ＫＡＦＥＶにリミット値＃ＫＡＦＥＶＬＭＴをセットする。これに対し、ステップＳＲ３１の判定結果が「ＮＯ」の場合は、ステップＳＲ３２をスキップする。
【０１１４】
次に、ステップＳＲ５において、目標パージ補正係数ＫＡＦＥＶＡＣＺを算出する。この目標パージ補正係数ＫＡＦＥＶＡＣＺは、次式に従い算出する。
目標パージ補正係数ＫＡＦＥＶＡＣＺ
＝パージ濃度係数ＫＡＦＥＶ×パージ流量比ＱＲＡＴＥ
このステップＳＲ５の処理は、本発明のパージ濃度推定手段に対応するパージ濃度推定部６２が実行する。
【０１１５】
なお、パージ濃度係数ＫＡＦＥＶについては、本フローのステップＳＲ４又はステップＳＲ３２においてセットされており、また、パージ流量比ＱＲＡＴＥについては、上記した図１４のステップＳＶ６においてセットされている。
そして、ステップＳＲ６において、ステップＳＲ５で算出した目標パージ補正係数ＫＡＦＥＶＡＣＺをパージ補正係数ＫＡＦＥＶＡＣＴにセットして、バージ補正係数ＫＡＦＥＶＡＣＴを算出するための算出処理を終了する。
ここで算出されたバージ補正係数ＫＡＦＥＶＡＣＴを用いて燃料噴射量を減量補正する。
【０１１６】
以上の実施の形態では、パージ開始初期にパージ量を制限している時およびその後所定時間、学習許可手段による学習許可の判定を行わず、前回の学習許可判定の結果に基づき、学習の許可／不許可を決定するようにしている。
これにより、パージ量を通常よりも制限している場合には、実パージ濃度と推定パージ濃度との間にズレが生じるが、この推定パージ濃度を基に学習の許可判定をして、空燃比を誤学習してしまうことを有効に防止し得るようになり、空燃比の学習値を高精度に算出することができる。
【０１１７】
なお、以上の実施の形態においては、基本燃料噴射量ＴＩＭとエンジン回転数Ｎｅとから求められる吸入空気量相関値ＮＴＩを用いる場合を例にとり説明したが、この吸入空気量相関値ＮＴＩに代えて他の吸入空気量相関値を用いたり、内燃機関の吸入空気量を直接検出するセンサを設け、このセンサで検出した吸入空気量を上記吸入空気量相関値ＮＴＩに代えて用いたりすることも勿論可能である。
【０１１８】
また、以上の実施の形態においては、上流Ｏ２センサ１７で空燃比を検出する場合を例にとり説明したが、これに代えてリニアＡ／Ｆセンサで空燃比を検出することも可能である。
【０１１９】
【発明の効果】
以上詳述したように、本発明によれば、パージ濃度推定値が実際のパージ濃度を示す状態になった時に、パージの影響が小さいことをパージ濃度推定値より判断し、パージの影響が小さいと判断したときに学習を許可する構成としたので、パージの影響を防止して精度の高い学習値を算出することが可能となる。
【図面の簡単な説明】
【図１】  本発明の一の実施の形態を示す全体構成図である。
【図２】  本発明の一の実施の形態の制御系を示すブロック図である。
【図３】  本発明の一の実施の形態の燃料噴射制御の制御内容を示すフローチャートである。
【図４】  本発明の一の実施の形態の空燃比学習値マップを模式的に示す図である。
【図５】  本発明の一の実施の形態の空燃比学習値の補間計算を説明するための図である。
【図６】  本発明の一の実施の形態の空燃比学習値の補正に用いられる大気圧補正テーブルを模式的に示す図である。
【図７】  本発明の一の実施の形態の空燃比フィードバック係数の算出処理の制御内容を示すフローチャートである。
【図８】  本発明の一の実施の形態のＯ２センサの出力（ａ）およびフラグＦ＿ＰＶＲＥＦの状態（ｂ）を示すタイミングチャートである。
【図９】  本発明の一の実施の形態の空燃比フィードバック係数ＫＯ２の値（ａ）およびフラグＦ＿ＰＶＲＥＦの状態（ｂ）を示すタイミングチャートである。
【図１０】  本発明の一の実施の形態の空燃比学習値の算出処理の制御内容の一部を示すフローチャートである。
【図１１】  本発明の一の実施の形態の空燃比学習値の算出処理の制御内容の残りの一部（図１０の続き）を示すフローチャートである。
【図１２】  本発明の一の実施の形態の空燃比学習値の算出処理の制御内容の残りの一部（図１１の続き）を示すフローチャートである。
【図１３】  図１１のステップＳＷ５で実行されるバージ濃度が濃いかの判定処理の制御内容を示すフローチャートである。
【図１４】  パージ流量が最適な流量となるようなパージ制御弁の制御内容を示すフローチャートである。
【図１５】  図１４のステップＳＶ４で実行される目標パージ制御弁駆動デューティ値の算出処理の制御内容を示すフローチャートである。
【図１６】  図１３のステップＳＸ６，ステップＳＸ１２の判定処理に用いられるパージ補正係数の算出処理の制御内容を示すフローチャートである。
【図１７】  本発明の一の実施の形態の空燃比学習値の算出処理で用いられる学習値の更新記憶の実行許可を判断するしきい値テーブルである。
【符号の説明】
１０  吸気管内絶対圧センサ（運転状態検出手段）
１４  回転情報センサ（運転状態検出手段）
１７  上流Ｏ２センサ（空燃比検出手段）
４４  パージ制御弁（パージ制御手段）
５１  空燃比Ｆ／Ｂ係数演算部（フィードバック制御手段）
５３  空燃比学習値格納部（空燃比学習値算出手段）
５４  基本燃料噴射量演算部（基本燃料量算出手段）
５５  燃料噴射量演算部（燃料供給量算出手段）
５８  空燃比学習実行判定部（学習許可手段）
６１  パージ流量演算部（パージ制限手段）
６２  パージ濃度推定部（パージ濃度推定手段、学習許可判断禁止手段）
【図１】
0004405049.tif 000002
【図２】
0004405049.tif 000003
【図３】
0004405049.tif 000004
【図４】
0004405049.tif 000005
【図５】
0004405049.tif 000006
【図６】
0004405049.tif 000007
【図７】
0004405049.tif 000008
【図８】
0004405049.tif 000009
【図９】
0004405049.tif 000010
【図１０】
0004405049.tif 000011
【図１１】
0004405049.tif 000012
【図１２】
0004405049.tif 000013
【図１３】
0004405049.tif 000014
【図１４】
0004405049.tif 000015
【図１５】
0004405049.tif 000016
【図１６】
0004405049.tif 000017
【図１７】
0004405049.tif 000018