(57)【要約】【課題】  エバポパージに起因するエミッション悪化を可及的に回避するとともに、比較的正確なパージ学習を簡易に行う。【解決手段】  筒内吸入空気量が一定であるとの仮定の下、指令燃料噴射量と検出空燃比との積は、機関の実際の空燃比を目標空燃比とするための目標基本燃料噴射量と目標空燃比との積に等しくなる、という関係から補正後基本燃料噴射量を求め、この補正後基本燃料噴射量と補正前基本燃料噴射量との比から基本燃料噴射量補正係数KFを求めて基本燃料噴射量補正を行う。ここで、KF値算出のためのローパスフィルタ処理のフィルタ時定数について、パージ時は非パージ時よりも小さくする。また、パージ時には、実際の空燃比制御に供される時定数の小さいフィルタを用いたKF値の他、時定数の大きいフィルタを用いた非パージ時のKF値も算出されており、この非パージ時のKF値を用いてパージ学習を行う。【選択図】  図５
2006125304.tif 000002
【特許請求の範囲】
【請求項１】
燃焼室と、その燃焼室に接続された吸気通路及び排気通路と、燃料タンク中で蒸発した燃料に基づく燃料ガスを前記吸気通路に導入可能に構成された燃料ガス導入路と、指令燃料噴射量の燃料の噴射指示を受けることにより前記燃料タンクから輸送されて来た液体燃料を前記吸気通路又は燃焼室にて噴射する燃料噴射装置と、前記排気通路に配設された触媒装置と、その触媒装置よりも上流の前記排気通路に配設された上流側空燃比センサとを備えた内燃機関に適用される、内燃機関の空燃比制御装置において、
少なくとも前記内燃機関の運転速度及び前記吸気通路における空気流量に基づいて、目標空燃比に対応する今回の燃料噴射量の推定値を基本燃料噴射量として取得する基本燃料噴射量取得部と、
フィルタを含む演算処理部を有し、前記目標空燃比と前記上流側空燃比センサの検出信号と過去の前記指令燃料噴射量とに基づいて前記演算処理部で演算処理することで前記基本燃料噴射量を補正するための基本燃料噴射量補正値に対応する演算結果を取得する基本燃料噴射量補正値取得部と、
前記上流側空燃比センサの検出信号に基づく空燃比フィードバック補正値である上流側フィードバック補正値を算出する上流側フィードバック補正値算出部と、
前記演算結果と前記上流側フィードバック補正値とに基づいて今回の指令燃料噴射量を算出する指令燃料噴射量算出部と、
前記燃料ガス導入路を介して前記吸気通路に前記燃料ガスが導入されている燃料ガス導入時に、前記基本燃料噴射量補正値取得部における前記演算結果に基づいて、前記燃料ガスの濃度に基づく空燃比学習値であるパージ学習値を取得するパージ学習部と、
を備えるとともに、
前記基本燃料噴射量補正値取得部は、前記パージ学習部にて前記パージ学習値を取得する場合に使用される第１のフィルタと、前記燃料ガス導入時にて前記指令燃料噴射量算出部に供される前記演算結果を取得する場合に使用される第２のフィルタと、を備え、前記第１のフィルタと第２のフィルタとは、フィルタの応答性に関するパラメータが異なるように構成された内燃機関の空燃比制御装置。
【請求項２】
燃焼室と、その燃焼室に接続された吸気通路及び排気通路と、燃料タンク中で蒸発した燃料に基づく燃料ガスを前記吸気通路に導入可能に構成された燃料ガス導入路と、指令燃料噴射量の燃料の噴射指示を受けることにより前記燃料タンクから輸送されて来た液体燃料を前記吸気通路又は燃焼室にて噴射する燃料噴射装置と、前記排気通路に配設された触媒装置と、その触媒装置よりも上流の前記排気通路に配設された上流側空燃比センサとを備えた内燃機関に適用される、内燃機関の空燃比制御装置において、
少なくとも前記内燃機関の運転速度及び前記吸気通路における空気流量に基づいて、目標空燃比に対応する今回の燃料噴射量の推定値を基本燃料噴射量として取得する基本燃料噴射量取得部と、
フィルタを含む演算処理部を有し、前記目標空燃比と前記上流側空燃比センサの検出信号と過去の前記指令燃料噴射量とに基づいて前記演算処理部で演算処理することで前記基本燃料噴射量を補正するための基本燃料噴射量補正値に対応する演算結果を取得する基本燃料噴射量補正値取得部と、
少なくとも前記演算結果に基づいて今回の指令燃料噴射量を算出する指令燃料噴射量算出部と、
前記燃料ガス導入路を介して前記吸気通路に前記燃料ガスが導入されている燃料ガス導入時に、前記基本燃料噴射量補正値取得部における前記演算結果に基づいて、前記燃料ガスの濃度に基づく空燃比学習値であるパージ学習値を取得するパージ学習部と、
を備えるとともに、
前記基本燃料噴射量補正値取得部は、前記パージ学習部にて前記パージ学習値を取得する場合に使用される第１のフィルタと、前記燃料ガス導入時にて前記指令燃料噴射量算出部に供される前記演算結果を取得する場合に使用される第２のフィルタと、を備え、前記第１のフィルタと第２のフィルタとは、フィルタの応答性に関するパラメータが異なるように構成された内燃機関の空燃比制御装置。
【請求項３】
請求項１又は請求項２に記載の内燃機関の空燃比制御装置であって、
前記内燃機関は、前記触媒装置よりも下流の前記排気通路に配設された下流側空燃比センサを備えており、
前記下流側空燃比センサの検出信号に基づく空燃比フィードバック補正値である下流側フィードバック補正値を算出する下流側フィードバック補正値算出部を備え、
前記指令燃料噴射量算出部は、前記下流側フィードバック補正値に基づいて前記今回の指令燃料噴射量を算出するように構成された内燃機関の空燃比制御装置。
【請求項４】
請求項１乃至請求項３のいずれかに記載の内燃機関の空燃比制御装置であって、
前記第１のフィルタは、前記燃料ガス導入が行われていない燃料ガス非導入時にて前記指令燃料噴射量算出部に供される前記演算結果を取得する場合にも使用されるように構成された内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気通路に配設された空燃比センサの出力に基づいて内燃機関の空燃比を制御する、内燃機関の空燃比制御装置に関する。（なお、以降の説明では、「内燃機関」を単に「機関」と称したり、「内燃機関の空燃比制御装置」を単に「空燃比制御装置」と略称したりすることがある。）
【背景技術】
【０００２】
従来広く知られるこの種の空燃比制御装置として、触媒装置よりも上流側の排気通路に配設された上流側空燃比センサ、及び触媒装置よりも下流側の排気通路に配設された下流側空燃比センサの出力値に基づいて、空燃比をフィードバック制御するものがある。このような構成を採用する従来の空燃比制御装置の具体例としては、例えば、下記特許文献に記載のものが挙げられる。
【特許文献１】特開２００３−３３６５３５号公報
【０００３】
特許文献１に記載の空燃比制御装置は、上流側空燃比センサの出力に基づく上流側フィードバック（メインフィードバック）ループと、下流側空燃比センサの出力に基づく下流側フィードバック（サブフィードバック）ループとを有している。そして、前記空燃比制御装置では、以下のように空燃比のフィードバック制御が行われる。
【０００４】
まず、機関の運転速度、アクセル開度、吸気通路に配設されたエアフローメータにより検知された吸入空気流量等に基づいて、今回の燃焼サイクルにて機関の燃焼室に吸入される筒内吸入空気量が算出される。次に、この筒内吸入空気量と目標空燃比とに基づいて、フィードバック制御により補正される前の基本燃料噴射量が取得される。続いて、上流側空燃比センサの出力に基づく上流側フィードバック補正値と、下流側空燃比センサの出力に基づく下流側フィードバック補正値と、に基づいて前記基本燃料噴射量が補正されることで指令燃料噴射量が算出される。そして、この指令燃料噴射量の燃料の噴射指示が燃料噴射装置に対して行われることによって、吸気通路又は燃焼室にて燃料が噴射される。
【０００５】
ここで、上述の上流側及び下流側フィードバックには、通常、比例・積分制御（ＰＩ制御）又は比例・積分・微分制御（ＰＩＤ制御）が用いられる。なぜなら、このＰＩ制御及びＰＩＤ制御における積分項（Ｉ項）には、フィードバック制御における所謂定常偏差を補償し、実際の空燃比を目標空燃比に収斂させる効果があるからである。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上述した従来の空燃比制御装置においては、エアフローメータへの汚れや異物付着等によるエアフローメータの測定誤差によって、筒内吸入空気量の算出値と実際の筒内吸入空気量との間に誤差が生じることがあった。そして、この誤差を含んだ筒内吸入空気量の算出値を用いて基本燃料噴射量が算出されることにより、基本燃料噴射量の算出にも誤差が生じることがあった。また、燃料噴射装置周辺の機構的要因（燃料噴射装置の燃料噴射性能のばらつきや、燃料噴射装置の目詰まり等）によって、指令燃料噴射量と実際の燃料噴射量との間に誤差が生じることがあった。（上述のような、筒内吸入空気量算出の誤差に起因する基本燃料噴射量算出の誤差や、燃料噴射装置周辺の機構的要因による燃料噴射量の誤差を、併せて、以下「混合気供給系の機構的誤差」と総称する。）
【０００７】
この点、上述の積分項を含む上流側フィードバック又は下流側フィードバックによれば、当該積分項の定常偏差補償作用によって上述の混合気供給系の機構的誤差を補償し得るものの、混合気供給系の機構的誤差が急に変化した場合（例えばエアフローメータへの異物付着や燃料噴射装置の目詰まり発生の直後の場合）の補償については改善の余地があった。すなわち、上述の混合気供給系の機構的誤差の急な変化を補償するための、適切なフィードバック補正値が得られるためには、来歴経過が積算されることでなされる積分項の計算等のための相応の手順や時間を要していた。このため、上述の積分項では混合気供給系の機構的誤差の急な変化に対する迅速な補償が達成されず、一時的なエミッションの悪化が発生することが懸念された。
【０００８】
また、一般に、内燃機関においては、燃料タンク中で液体燃料が蒸発して燃料ガスが発生するので、この燃料ガスが大気中に放出されることを防止するために、蒸発燃料処理機構が設けられている。この蒸発燃料処理機構は、機関停止中に燃料タンクにて発生する燃料ガスを吸蔵し、この吸蔵された燃料ガスを機関の運転中に脱離して吸気通路に放出するように構成されたキャニスタを備えている。また、機関運転中においても、燃料噴射装置（インジェクタ）と燃料タンクとの間の燃料循環経路にて循環している液体燃料は、インジェクタ付近にて燃焼室からの伝熱により加熱され、この加熱された液体燃料が燃料タンクに戻ったときに、高温となった燃料が燃料タンク中で蒸発することで燃料ガスが発生する。そこで、上述のキャニスタを備える他、機関運転中のインジェクタ付近における燃料加熱に起因して発生する燃料タンク中の燃料ガスを直接に吸気通路に放出するように蒸発燃料処理機構が構成されるのが通常である。
【０００９】
ここで、キャニスタから吸気通路に導入される脱離燃料ガス（キャニスタパージガス）や、キャニスタによって吸蔵されることなく燃料タンクから直接吸気通路に導入される蒸発燃料ガス（タンクベーパー）により、上述の空燃比フィードバック制御系が大きな外乱を受けることがある（なお、キャニスタパージガスとタンクベーパーとを総称する場合、以下「エバポガス（evaporated fuel gas）」と略称する。また、吸気通路へのキャニスタパージガス導入とタンクベーパー導入とを総称する場合、以下「エバポパージ」又は単に「パージ」と略称する。）。そして、このようなエバポパージの場合にも、上述のフィードバック制御の積分項では迅速な補償が達成されず、一時的なエミッションの悪化が発生することが懸念された。
【００１０】
そこで、エバポパージが行われる場合、当該エバポパージによる空燃比リッチシフト分の燃料量（以下、「余剰燃料量」と称する。）を比較的正確に求めて基本燃料噴射量から差し引くことで、エバポパージによる空燃比の急変を可及的に回避することが必要となる。すなわち、この余剰燃料量に対応するパージ学習値の取得（以下、「パージ学習」と称する）が必要となる。そして、従来の空燃比制御装置においては、このパージ学習を行うものがあったが、かかる従来の空燃比制御装置においても、このパージ学習を比較的正確に行うためには、通常の空燃比制御とは異なる特別なパージ学習制御のための制御系を別途設ける必要があり、空燃比制御系が複雑化するという問題があった。
【課題を解決するための手段】
【００１１】
本発明は、上述した従来の空燃比制御装置の有する問題点を解決するためになされたものであり、その目的は、混合気供給系の機構的誤差をより簡易かつ迅速に補償しつつ、エバポパージ時の空燃比変動に対する迅速な補償を行うとともに、比較的精度の良いパージ学習を簡易に行うことができ、以てエバポパージに起因するエミッション悪化を可及的に抑制して好適な空燃比制御を維持することができる、好適な内燃機関の空燃比制御装置を提供することにある。
【００１２】
かかる目的を達成するため、本発明は、燃焼室と、その燃焼室に接続された吸気通路及び排気通路と、燃料タンク中で蒸発した燃料に基づく燃料ガスを前記吸気通路に導入可能に構成された燃料ガス導入路と、指令燃料噴射量の燃料の噴射指示を受けることにより前記燃料タンクから輸送されて来た液体燃料を前記吸気通路又は燃焼室にて噴射する燃料噴射装置と、前記排気通路に配設された触媒装置と、その触媒装置よりも上流の前記排気通路に配設された上流側空燃比センサとを備えた内燃機関に適用される空燃比制御装置が、以下の構成を備えたことを特徴としている。
【００１３】
第１に、本発明の内燃機関の空燃比制御装置は、少なくとも前記内燃機関の運転速度及び前記吸気通路における空気流量に基づいて目標空燃比に対応する今回の燃料噴射量の推定値を基本燃料噴射量として取得する基本燃料噴射量取得部と、フィルタを含む演算処理部を有しており前記目標空燃比と前記上流側空燃比センサの検出信号と過去の前記指令燃料噴射量とに基づいて前記演算処理部で演算処理することで前記基本燃料噴射量を補正するための基本燃料噴射量補正値に対応する演算結果を取得する基本燃料噴射量補正値取得部と、少なくとも前記演算結果（及び好適には前記基本燃料噴射量と）に基づいて今回の指令燃料噴射量を算出する指令燃料噴射量算出部と、前記燃料ガス導入路を介して前記吸気通路に前記燃料ガスが導入されている燃料ガス導入時に、前記基本燃料噴射量補正値取得部における前記演算結果に基づいて、前記燃料ガスの濃度に基づく空燃比学習値であるパージ学習値を取得するパージ学習部と、を備える。
【００１４】
そして、前記基本燃料噴射量補正値取得部は、前記パージ学習部にて前記パージ学習値を取得する場合に使用される第１のフィルタと、前記燃料ガス導入時にて前記指令燃料噴射量算出部に供される前記演算結果を取得する場合に使用される第２のフィルタと、を備え、前記第１のフィルタと第２のフィルタとは、フィルタの応答性に関するパラメータが異なるように構成されている（なお、ここで、前記基本燃料噴射量補正値取得部にて取得される値を単に「基本燃料噴射量補正値」と称さずに「基本燃料噴射量補正値に対応する演算結果」と称しているのは、前記第１のフィルタに基づいて取得される値が基本燃料噴射量の補正のために用いられずにパージ学習にのみ用いられる場合があり得ることに鑑みたものである。）。
【００１５】
換言すれば、前記基本燃料噴射量補正値取得部は、前記演算処理部のフィルタとして、フィルタの応答性に関するパラメータが異なる第１のフィルタと第２のフィルタとを備えていて、前記燃料ガス導入時にて、前記第１のフィルタを使用して前記パージ学習部に供される前記基本燃料噴射量補正値（に対応する演算結果）を取得するとともに前記第２のフィルタを使用して前記指令燃料噴射量算出部に供される前記基本燃料噴射量補正値（に対応する演算結果）を取得するように構成されている。
【００１６】
かかる構成を有する本発明の空燃比制御装置によれば、まず、少なくとも内燃機関の運転速度及び前記吸気通路における空気流量に基づいて基本燃料噴射量が取得される。次に、この取得された基本燃料噴射量に基づいて燃料噴射装置にて実際に噴射される燃料噴射量が、燃焼室に供給される混合気の実際の空燃比を目標空燃比とするために必要な燃料噴射量（以下、単に「必要燃料噴射量」という。）となるように、前記目標空燃比と前記上流側空燃比センサの検出信号と過去の前記指令燃料噴射量とに基づいて前記演算処理部で演算処理することで、前記基本燃料噴射量を補正するための基本燃料噴射量補正値に対応する演算結果の取得（基本燃料噴射量補正値の取得）が行われる。より具体的には、例えば以下の通りに行われる。
【００１７】
一般に、燃料噴射量と空燃比との積は筒内吸入空気量に相当するところ、燃焼室内に吸入される筒内吸入空気量が一定であるという仮定のもとでは、燃料噴射量と空燃比との積が一定となる。また、燃焼室に供給される混合気の実際の空燃比は、上流側空燃比センサの検出空燃比に反映される。よって、燃料噴射量と空燃比との積が一定であるという前提の下では、前記検出空燃比と、その検出空燃比に対応する燃料噴射時の指令燃料噴射量との積は、目標空燃比と、前記必要燃料噴射量の燃料を実際に噴射するために今回燃料噴射装置に指示すべき燃料噴射量（以下、単に「目標燃料噴射指令値」という。）との積と等しくなるという関係が成立する。そして、このような関係を基礎として、目標空燃比と前記上流側空燃比センサの検出信号と過去の前記指令燃料噴射量とに基づいて所定の演算処理を行い、この演算結果を用いることで、基本燃料噴射量に対する補正値としての基本燃料噴射量補正値が算出できる。例えば、前記検出空燃比とその検出空燃比に対応する燃料噴射時の指令燃料噴射量との積を、目標空燃比と前記基本燃料噴射量との積で除すれば、前記目標燃料噴射指令値を得るための基本燃料噴射量補正値（に対応する演算結果）としての補正係数が簡易な計算で得られる。
【００１８】
そして、このようにして得られた演算結果に基づいて、前記目標燃料噴射指令値に相当する値としての補正後基本燃料噴射量が得られ、この得られた補正後基本燃料噴射量に基づいて、今回の指令燃料噴射量が算出され、この算出された今回の指令燃料噴射量に基づく燃料の噴射指示が燃料噴射装置に対してなされる。
【００１９】
このように、前記構成によれば、必要燃料噴射量の燃料噴射を行うための目標燃料噴射指令値が、過去の指令燃料噴射量と（当該過去の指令燃料噴射量に対応した燃料噴射時における実際の空燃比に相当する）上流側空燃比センサの検出空燃比と目標空燃比とを用いて簡易な計算によって直接算出され、混合気吸気系の機構的誤差が（空燃比フィードバックとは独立に）直接補償される。
【００２０】
また、パージ学習部は、前記燃料ガス導入路を介して前記吸気通路に前記燃料ガス（パージガス）が導入されている燃料ガス導入時（パージ時）に、前記基本燃料噴射量補正値取得部における前記演算結果に基づいて、前記パージガス中の燃料濃度（以下パージガス濃度と略称する）に基づく空燃比学習値であるパージ学習値を取得する。
【００２１】
すなわち、例えば、パージ時と非パージ時（燃料ガス導入が行われていない燃料ガス非導入時）とで内燃機関の運転速度や前記吸気通路における空気流量等が同一の場合、基本燃料噴射量取得部により取得される（補正前の）基本燃料噴射量や、混合気吸気系の機構的誤差が、パージ時と非パージ時とで同一となる。よって、パージ時における上流側空燃比センサの空燃比出力に基づいて取得される前記演算結果は、エバポパージによるリッチ側への空燃比変動を補償するための基本燃料噴射量の補正に使用すべき適切な値となり得る。
【００２２】
したがって、例えば、このパージ時に取得される前記演算結果をパージ学習値として逐次学習（記憶）しておくことによって、エバポパージの際の適切な空燃比制御の維持のために活用され得るパージ学習値が簡易に取得される。例えば、次回のパージ時に、パージ開始時点よりこのパージ学習値を用いて基本燃料噴射量補正を行うことで、パージ開始直後における空燃比変動によるエミッション悪化を可及的に抑制し得る。
【００２３】
このように、前記構成によれば、パージ学習が、基本燃料噴射量補正値取得部における基本燃料噴射量補正値取得のための演算処理部の演算結果（本来、「基本燃料噴射量補正値」と称される値）を流用することで、特別なパージ学習部を設けることなく簡易にパージ学習が行われ得る。
【００２４】
ここで、本発明の前記構成の特徴は、特に、前記基本燃料噴射量補正値取得部は、前記パージ学習部にて前記パージ学習値を取得する場合に使用される第１のフィルタと、前記燃料ガス導入時にて前記指令燃料噴射量算出部に供される前記演算結果を取得する場合に使用される第２のフィルタと、を備え、前記第１のフィルタと第２のフィルタとは、フィルタの応答性に関するパラメータ（以下、単に「応答性パラメータ」と称する。）が異なることにある。
【００２５】
すなわち、例えば、内燃機関が過渡運転状態にある場合、内燃機関内部におけるガスの流動状態が大きく変動するため、前記基本燃料噴射量取得部により取得される基本燃料噴射量や、排気ガスの実際の空燃比も、所定の周波数を超える高周波数で激しく変動し得る。このような場合、上述のような燃料噴射量と空燃比との積が一定となるという前提が崩れたり、基本燃料噴射量補正値に対応する前記演算結果が前記所定の周波数を超える高周波で振動したりすること等によって、前記基本燃料噴射量補正値が適切な値とならなくなる可能性がある。そこで、前記演算結果を得る際に、前記所定の周波数を超える高周波数をカットするフィルタ処理（好適にはローパスフィルタ処理）を施すことによって、適切な基本燃料噴射量の補正値が、簡易な計算で、かつより一層精度良く算出され得る。かかる観点からすれば、一般的な空燃比フィードバック制御系における前記積分項と対比した場合の基本燃料噴射量補正の迅速性を損なわない範囲で、前記応答性パラメータは応答性を抑える方向の（ローパスフィルタの場合は時定数が大きい）値であることが好ましい。
【００２６】
一方、上述のように前記演算結果を取得しているとき、エバポガスが吸気通路に導入されるエバポパージが行われることがあるが、このエバポパージは空燃比制御系における大きな外乱であり、これにより一時的にエミッションが悪化する可能性がある。そこで、この大きな外乱を迅速に補償してエミッション悪化を可及的に抑制するためには、前記応答性パラメータは応答性を高める方向の（ローパスフィルタの場合は時定数が小さい）値であることが好ましい。
【００２７】
もっとも、パージ学習を行う際には、パージ学習の基礎となる前記基本燃料噴射量補正値取得部における前記演算結果が高い周波数で振動していては、精度良い学習が行われ得ない。よって、パージ学習の際には、前記応答性パラメータは応答性を抑える方向の（ローパスフィルタの場合は時定数が大きい）値であることが好ましい。
【００２８】
以上のことから、パージ中は、応答性を高める方向の（ローパスフィルタの場合は時定数が小さい）前記応答性パラメータを有する前記第２のフィルタの出力に基づく前記演算結果に基づいて得られた基本燃料噴射量補正値によって、エバポパージによる空燃比変動が可及的に迅速に補償されつつ、応答性を抑える方向の（ローパスフィルタの場合は時定数が大きい）前記応答性パラメータを有する前記第１のフィルタの出力に基づくパージ学習値によって、精度良いパージ学習が行われ得る。
【００２９】
そして、より好適には、パージ時の基本燃料噴射量補正は、以下のように行われる。すなわち、パージ開始直後の所定時間においては、基本燃料噴射量補正値が前記パージ学習値（過去のパージ時の基本燃料噴射量補正値）に基づいて取得される。すると、今回のパージ開始当初より、基本燃料噴射量取得部による補正前の基本燃料噴射量算出値から前記余剰燃料量が予め差し引かれ得ることとなるので、エバポパージによる実際の空燃比の急変が可及的に回避され得る。そして、前記所定時間経過後は、現時点での上流側空燃比センサの空燃比出力等に基づく第２のフィルタ等の演算処理部による演算結果に基づいて基本燃料噴射量補正値が取得される。
【００３０】
ここで、前記第１のフィルタは、非パージ時にて前記指令燃料噴射量算出部に供される前記演算結果を取得する場合にも使用されるように構成されることが好ましい。すなわち、かかる構成によれば、前記第１のフィルタの出力は、パージ時と非パージ時とに拘らず使用される。そして、この第１のフィルタの出力に基づく前記基本燃料噴射量補正値取得部の前記演算結果は、非パージ時には基本燃料噴射量補正値の取得に使用され、パージ時にはパージ学習に使用される。一方、前記第２のフィルタの出力に基づく前記基本燃料噴射量補正値取得部の前記演算結果は、パージ時には基本燃料噴射量補正値の取得に使用されるが、非パージ時には基本燃料噴射量補正値の取得には使用されない。これにより、非パージ時における安定した精度良い基本燃料噴射量補正を行うための基本燃料噴射量補正値を取得すべき新たな手段を別途設けなくても、パージ時と非パージ時との双方について適切な空燃比制御の維持と簡易かつ正確なパージ学習とがともに達成され得る。
【００３１】
第２に、本発明の空燃比制御装置においては、前記上流側空燃比センサの検出信号に基づく空燃比フィードバック補正値である上流側フィードバック補正値を算出する上流側フィードバック補正値算出部を備え、前記指令燃料噴射量算出部は、前記基本燃料噴射量補正部で補正された基本燃料噴射量を前記上流側フィードバック補正値で補正するように構成されることが好ましい。かかる構成によれば、基本燃料噴射量補正部により迅速な基本燃料噴射量の補正を行いつつ、上流側フィードバック制御によって過渡運転状態における空燃比変動に対する補償が行われる。
【００３２】
また、前記上流側フィードバック補正値算出部においては、上流側空燃比センサの出力値に基づいて各種の演算処理が行われることによって、フィードバック補正値が算出されるが、かかる演算処理の際には、所定の上流側目標値を考慮するように構成してもよい。すなわち、上流側フィードバック補正値算出部は、（１）上流側空燃比センサの出力値と所定の上流側目標値との相違に起因する値を所定のハイパスフィルタ処理した後の値、又は（２）上流側空燃比センサの出力値を所定のハイパスフィルタ処理した後の値、に基づいて上流側フィードバック補正値を算出する。なお、前記（１）の場合、所定の上流側目標値は、前記目標空燃比に相当する値であることが好ましい。また、前記の「上流側空燃比センサの出力値と所定の上流側目標値との相違に起因する値」の具体例としては、例えば、センサの出力値と目標値との差、センサの出力値に相当する検出空燃比（実空燃比）と目標値に相当する目標空燃比との差、筒内吸入空気量をセンサの出力値に相当する検出空燃比で除した値である実際の筒内燃料供給量と同筒内吸入空気量を目標値に相当する目標空燃比で除した値である目標筒内燃料供給量との差、等が挙げられるが、これらに限定されるものではない。
【００３３】
第３に、本発明の空燃比制御装置においては、前記触媒装置よりも下流の前記排気通路に配設された下流側空燃比センサをも備えた内燃機関を対象とするものであって、前記下流側空燃比センサの検出信号に基づく空燃比フィードバック補正値である下流側フィードバック補正値を算出する下流側フィードバック補正値算出部を備え、前記指令燃料噴射量算出部は、前記基本燃料噴射量補正部によって補正された基本燃料噴射量を前記下流側フィードバック補正値で補正するように構成された場合に特に好適に作用する。
【００３４】
かかる構成おいて、下流側フィードバック補正値算出部によるフィードバック補正値は、触媒の排気ガス浄化作用によって小刻みな空燃比変動が吸収され且つ空燃比変動の検知が遅延された下流側空燃比センサの検出信号に基づくものであり、触媒装置の下流側の空燃比の変動として現れうる程度の、所定の周波数以下の低周波数で且つ比較的大きな振幅の空燃比変動を反映したものとなる。一方、基本燃料噴射量の補正は、上述の触媒の排気ガス浄化作用による検出遅延のない上流側空燃比センサの検出信号に基づいて迅速に行われ、且つ下流側フィードバック補正値に影響されずに行われる。このように、前記構成によれば、下流側フィードバック制御により安定した空燃比フィードバック制御を行いつつ、迅速な基本燃料噴射量補正が行われる。
【００３５】
特に、（Ａ）前記上流側フィードバック補正値算出部が、上流側空燃比センサの検出信号に基づくフィルタ入力信号をハイパスフィルタ処理したフィルタ出力信号に基づいて、燃料噴射量に対するフィードバック補正値が算出されるように構成されている場合や、（Ｂ）上述の（Ａ）の場合に加えて、更に前記下流側フィードバック補正値算出部が、下流側空燃比センサの検出信号に基づくフィルタ入力信号をローパスフィルタ処理したフィルタ出力信号に基づいて、燃料噴射量に対するフィードバック補正値が算出されるように構成されている場合に、本発明の構成が特に好適に作用する。
【００３６】
すなわち、上述の（Ａ）の場合、上流側フィードバック制御においては、上流側空燃比センサの検出信号に基づくハイパスフィルタ出力信号に従って、過渡的な空燃比変動に対する空燃比フィードバック制御がなされる。また、上述の（Ｂ）の場合、更に、下流側フィードバック制御においては、下流側空燃比センサの検出信号に基づくローパスフィルタ出力信号に従って、定常的な空燃比変動に対する空燃比フィードバック制御がなされる。そして、これら（Ａ）や（Ｂ）の場合、上流側フィードバック制御と下流側フィードバック制御との間には、上述の通り、前者は過渡的な高周波数の空燃比変動に対する補償、後者は定常的な低周波数の空燃比変動に対する補償、というような役割分担が生じる。特に（Ｂ）の場合、上流側フィードバック制御に用いられる上流側空燃比センサ検出信号にはハイパスフィルタ処理がなされ、下流側フィードバック制御に用いられる下流側空燃比センサ検出信号にはローパスフィルタ処理がなされるので、上流側フィードバック制御と下流側フィードバック制御とは空燃比変動における異なる周波数帯で作動する。よって、上流側空燃比センサの出力値と下流側空燃比センサの出力値とが目標空燃比に対して互いに逆方向に偏移した空燃比を示した場合であっても、上流側フィードバック制御と下流側フィードバック制御とが互いに干渉を起こして制御がハンチングしてしまうことが可及的に防止される。しかも、上述の通り、上流側フィードバック制御ではハイパスフィルタ処理がなされているため実質的に積分処理ができず、下流側フィードバック制御では触媒の排気ガス浄化作用により空燃比変動検出が遅延する。よって、これらの各フィードバック制御とは独立して上述の基本燃料噴射量補正を行うことで、目標空燃比への安定した空燃比フィードバック制御とともに、混合気供給系の機構的誤差が簡易且つ迅速に補償されるとともに、エバポパージによる大きな空燃比変動に対する迅速な補償が行われる。
【００３７】
なお、前記下流側フィードバック補正値算出部においては、前記下流側空燃比センサの出力値と所定の下流側目標値との相違に起因する値に基づいて、フィードバック補正値を算出するように構成されることが好ましい。また、前記所定の下流側目標値は、前記目標空燃比に相当する値であることが好ましい。ここで、「下流側空燃比センサの出力値と所定の下流側目標値との相違に起因する値」の具体例については、上述の上流側フィードバック補正値算出部における「上流側空燃比センサの出力値と所定の上流側目標値との相違に起因する値」の具体例と同様である。
【００３８】
また、本発明の空燃比制御装置における前記基本燃料噴射量補正部では、「過去の」指令燃料噴射量が基本燃料噴射量補正に用いられるが、この「過去の」指令燃料噴射量とは、好ましくは、以下の通りのものである。
【００３９】
すなわち、本発明の好ましい態様としては、前記燃料噴射装置に対する燃料の噴射指示から、当該噴射指示に基づき噴射された燃料の燃焼による排気の空燃比が前記上流側空燃比センサの出力値として現れるまでの遅れ時間を取得する遅れ時間取得部を更に備えている。そして、「過去の」指令燃料噴射量とは、前記遅れ時間だけ前の時点での噴射指示に係る指令燃料噴射量である。
【００４０】
一般に、燃料の噴射指示は、吸気行程中或いは吸気行程よりも前の時点にて実行され、噴射された燃料は、その後に到来する圧縮上死点近傍の時点で燃焼室内にて着火されることで燃焼する。そして、この燃焼により発生した排気ガスは、排気弁を介して燃焼室から排気通路へと排出され、その後、排気通路内を移動していくことで上流側空燃比センサの検出部に到達する。更に、排気ガスが上流側空燃比センサの検出部に到達してから、当該排気ガスの空燃比（の変化）が同センサの出力値（の変化）として現れるまでに所定の時間を要する。
【００４１】
以上のことから、燃料の噴射指示から、同噴射指示により噴射された燃料の燃焼に基づく排気ガスの空燃比が前記上流側空燃比センサの出力値として現れるまでの間には、燃焼行程に関する遅れ（行程遅れ）、排気通路内での排気ガスの移動に関する遅れ（輸送遅れ）、及び上流側空燃比センサの応答に関する遅れ（応答遅れ）による遅れ時間が必要である。換言すれば、（現時点での）上流側空燃比センサの出力値は、上述の遅れ時間前に実行された燃料の噴射指示に基づいて発生した排気ガスの空燃比を表す値となる。
【００４２】
もっとも、上述した行程遅れ及び輸送遅れに係る時間は、例えば、噴射時期、点火時期、内燃機関の寸法や気筒数等の諸元、エンジン回転速度、筒内吸入空気量、排気通路の断面積等に基づいて簡易に取得することができる。また、応答遅れに係る時間は、上流側空燃比センサの応答特性を予め実験等を通して取得しておくことができる。よって、前記遅れ時間取得部により、前記行程遅れ、輸送遅れ、及び応答遅れによる前記遅れ時間が正確に取得され得る。
【００４３】
そこで、基本燃料噴射量の補正値を算出する際、（上流側空燃比センサの出力値として現時点での値を使用するとともに、）少なくとも指令燃料噴射量として前記遅れ時間だけ前の時点での噴射指示に係る値を使用するように構成すれば、（現時点での）上流側空燃比センサの出力値が表す空燃比の排気ガスの発生に係る燃料噴射指示時点と、基本燃料噴射量の補正値の算出に使用される指令燃料噴射量に対応する燃料噴射指示の時点とが一致ないし極めて近接し得る。従って、前記補正値が、上述の目標燃料噴射指令値を得るための値としてより一層精度良く算出され得る。
【００４４】
この場合、前記遅れ時間取得部は、前記内燃機関の運転状態に応じて前記遅れ時間を変更するように構成されることが好ましい。上述したように、行程遅れや輸送遅れに係る時間は、例えば、エンジン回転速度、筒内吸入空気量等、機関の運転状態に応じて変化する。従って、当該構成によれば、内燃機関の運転状態にかかわらず前記遅れ時間が正確に取得され得る。
【発明の効果】
【００４５】
このように、本発明によれば、エバポパージによるという空燃比制御に対する大きな外乱が生じた場合であっても、上流側空燃比センサの出力に基づく応答性の高い基本燃料噴射量補正により、パージ時の空燃比変動に対する迅速な補償を行いつつ、比較的精度の良いパージ学習を行うことができ、以てエバポパージに起因するエミッション悪化を可及的に抑制して好適な空燃比制御を維持することが可能となる。
【発明を実施するための最良の形態】
【００４６】
以下、本発明による内燃機関の空燃比制御装置（以降の説明では単に「空燃比制御装置」と略称することがある。）の、本願の出願時点において最良と考えられる実施形態について図面を参照しつつ説明する。
【００４７】
（実施形態の内燃機関の概要）
図１は、本実施形態による空燃比制御装置を火花点火式多気筒（４気筒）内燃機関１０に適用したシステムの概略構成を示している。この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排気ガスを外部に放出するための排気系統５０とを含んでいる。
【００４８】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３、及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより当該クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００４９】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに当該インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８、及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射装置）３９を備えている。
【００５０】
吸気系統４０は、吸気ポート３１に連通し当該吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットル弁４３、スロットル弁駆動手段を構成するＤＣモータからなるスロットル弁アクチュエータ４３ａ、スワールコントロールバルブ（以下、「ＳＣＶ」と称呼する。）４４、ＤＣモータからなるＳＣＶアクチュエータ４４ａ、液体燃料を貯蔵する燃料タンク４５、所定量の燃料ガスを吸蔵可能なキャニスタ４６、燃料タンク４５内で蒸発した燃料ガスをキャニスタ４６へ導入するためのベーパ捕集管４７、キャニスタ４６から脱離した燃料ガスを吸気管４１に導入するためのパージ流路４８、及びパージ流路４８に介装されたパージ制御弁４９を備えている。ここで、吸気ポート３１、及び吸気管４１は、吸気通路を構成している。
【００５１】
キャニスタ４６は、周知のチャコールキャニスタであって、ベーパ捕集管４７に接続されたタンクポート４６ａと、パージ流路４８に接続されたパージポート４６ｂと、大気ポート４６ｃとが形成された筐体内に、燃料ガスを吸着するための吸着剤４６ｄを収納することにより構成されている。大気ポート４６ｃは、パージ制御弁４９が開放された場合に、吸気管４１にて生じる負圧により、パージ流路４８にて吸気管４１に向かうガスの流れが生じるように、外部の空気をキャニスタ４６内に導入するための大気連通孔である。
【００５２】
なお、キャニスタ４６は、タンクポート４６ａからパージポート４６ｂへの直接のガス流路を有している。そして、このガス流路により、内燃機関１０の運転中であってパージ制御弁４９が開放された場合に、燃料タンク４５にて発生したタンクベーパーがタンクポート４６ａから当該キャニスタ４６の内部に流入した後に吸着剤４６ｄに吸着されることなくそのままパージポート４６ｂから排出され得るようになっている。
【００５３】
また、本装置においては、キャニスタパージとタンクベーパー導入との双方が特に区別されることなく行われる。すなわち、本装置におけるパージ実行により、大気ポート４６ｃから吸着剤４６ｄを通ってパージポート４６ｂからパージ流路４８へ流れるキャニスタパージガスと、燃料タンク４５からタンクポート４６ａ及び上述のタンクポート４６ａとパージポート４６ｂとの間の直接のガス流路を経てパージ流路４８へ流れるタンクベーパーとが混合したエバポガスが、パージ制御弁４９を通って吸気管４１に吸入される構成となっている。
【００５４】
パージ制御弁４９は、周知のＶＳＶ（バキュームスイッチングバルブ）により構成されている（本実施形態の以下の説明では、パージ制御弁４９を「ＶＳＶ４９」と略称する。）。このＶＳＶ４９は、通電されることで流路を開き、非通電時には流路を閉じるように構成された、所謂「常閉タイプ」の開閉弁が用いられる。
【００５５】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１（実際には、各排気ポート３４に連通した各々のエキゾーストマニホールド５１が集合した集合部）に接続されたエキゾーストパイプ（排気管）５２、エキゾーストパイプ５２に配設（介装）された上流側触媒装置５３（上流側触媒コンバータ、又はスタート・キャタリティック・コンバータとも云うが、以下「第１触媒５３」と称呼する。）、及びこの第１触媒５３の下流のエキゾーストパイプ５２に配設（介装）された下流側触媒装置５４（車両のフロア下方に配設されるため、アンダ・フロア・キャタリティック・コンバータとも云うが、以下「第２触媒５４」と称呼する。）を備えている。排気ポート３４、エキゾーストマニホールド５１、及びエキゾーストパイプ５２は、排気通路を構成している。
【００５６】
一方、内燃機関１０は、エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、水温センサ６５、第１触媒５３の上流の排気通路（本例では、前記各々のエキゾーストマニホールド５１が集合した集合部）に配設された空燃比センサ６６（以下、「上流側空燃比センサ６６」と称呼する。）、第１触媒５３の下流であって第２触媒５４の上流の排気通路に配設された空燃比センサ６７（以下、「下流側空燃比センサ６７」と称呼する。）、アクセル開度センサ６８、及び燃料タンク４５内の燃料温度を検知するための温度センサである燃料温センサ６９を備えている。
【００５７】
エアフローメータ６１は、周知の熱線式エアフローメータにより構成されており、吸気管４１内を流れる吸入空気の単位時間あたりの質量流量に応じた電圧Vgを出力するようになっている。かかるエアフローメータ６１の出力Vgと、計測された吸入空気量（流量）Gaとの関係は、図２に示したとおりである。スロットルポジションセンサ６２は、スロットル弁４３の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ６３は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに当該クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。水温センサ６５は、内燃機関１０の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【００５８】
上流側空燃比センサ６６は、限界電流式の酸素濃度センサであり、図３に示したように、空燃比Ａ／Ｆに応じた電流を出力し、この電流に応じた電圧である出力値Vabyfsを出力するようになっていて、特に、空燃比が理論空燃比であるときには出力値Vabyfsは上流側目標値Vstoichになる。図３から明らかなように、上流側空燃比センサ６６によれば、広範囲にわたる空燃比Ａ／Ｆを精度良く検出することができる。
【００５９】
下流側空燃比センサ６７は、起電力式（濃淡電池式）の酸素濃度センサであり、図４に示したように、理論空燃比近傍において急変する電圧である出力値Voxsを出力するようになっている。より具体的に述べると、下流側空燃比センサ６７は、空燃比が理論空燃比よりもリーンのときは略０．１（Ｖ）、空燃比が理論空燃比よりもリッチのときは略０．９（Ｖ）、及び空燃比が理論空燃比のときは０．５（Ｖ）の電圧を出力するようになっている。アクセル開度センサ６８は、運転者によって操作されるアクセルペダル８１の操作量を検出し、当該アクセルペダル８１の操作量Accpを表す信号を出力するようになっている。
【００６０】
電気制御装置７０は、互いにバスで接続されたＣＰＵ７１、ＣＰＵ７１が実行するルーチン（プログラム）、テーブル（ルックアップテーブル、マップ）、及びパラメータ等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、電源が投入された状態でデータを格納するとともに、この格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ７４、並びにＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。インターフェース７５は、前記センサ６１〜６９と接続され、ＣＰＵ７１にセンサ６１〜６９からの信号を供給するとともに、ＣＰＵ７１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９、スロットル弁アクチュエータ４３ａ、ＳＣＶアクチュエータ４４ａ、及びＶＳＶ４９に駆動信号を送出するようになっている。
【００６１】
<エバポパージ制御>
ＶＳＶ４９は、上述の通り、所謂「常閉タイプ」の開閉弁であるので、機関停止中における日光等による加熱によって燃料タンク４５中で発生した燃料ガスは、当該燃料タンク４５，ベーパ捕集管４７，キャニスタ４６，及びパージ流路４８のＶＳＶ４９よりもパージガスの流れにおける上流側（キャニスタ４６側）によって形成される閉空間内に充満する。そして、この閉空間内に充満した燃料ガスは、吸着剤４６ｄに吸着されることでキャニスタ４６内に吸蔵される。
【００６２】
その後、機関運転中であって、（ア）エンジン暖気後、（イ）空燃比フィードバック中、（ウ）アクセルＯＮ、等の、エバポパージを行うためのすべての条件（以下、「パージ条件成立」と称する。）が成立した場合に、ＶＳＶ４９が開放される。周知の通り、このＶＳＶ４９が開放された場合、吸気管４１にて生じる負圧により、キャニスタ４６の大気ポート４６ｃから吸着剤４６ｄ及びパージポート４６ｂを経て吸気管４１に向かうガスの流れがパージ流路４８にて生じ、このガスの流れが吸着剤４６ｄを通過する際に、吸着剤４６ｄに吸着されている燃料ガスが吸着剤４６ｄから脱離してエバポガスとして吸気管４１内へパージされる。ここで、パージ率（＝エバポガス流量／（エバポガス流量＋エアフローメータ検出空気流量）：単位は重量％）の制御は、周知の通り、ＶＳＶ４９をデューティ制御することにより行い得る。そして、定常運転時にて通常適用されるパージ率（目標パージ率）は、運転状態により適宜選択され得る（例えばアイドリング時は１０％）。
【００６３】
（空燃比制御の概要）
次に、上述のように構成された空燃比制御装置が行う機関の空燃比制御の概要について説明する。
【００６４】
第１触媒５３（第２触媒５４も同様である。）は、周知の通り、金属製の筐体内に所謂三元触媒を配置することで構成されており、この第１触媒５３に流入するガスの空燃比が略理論空燃比であるときに、前記三元触媒によってＨＣ,ＣＯを酸化するとともにＮＯｘを還元し、これらの有害成分を高い効率で浄化する。また、第１触媒５３に備えられる三元触媒は、酸素を吸蔵・放出する機能（酸素吸蔵機能、酸素吸蔵・放出機能）を有し、この酸素吸蔵・放出機能により、空燃比が理論空燃比からある程度まで偏移したとしても、ＨＣ,ＣＯ、及びＮＯｘを浄化することができる。即ち、燃焼室に供給される混合気の空燃比（以下、「機関の空燃比」と云うこともある。）の空燃比がリーンとなって第１触媒５３に流入するガスにＮＯｘが多量に含まれると、第１触媒５３に備えられた前記三元触媒はＮＯｘから酸素分子を奪って同酸素分子を吸蔵するとともに同ＮＯｘを還元し、これによりＮＯｘを浄化する。また、機関の空燃比がリッチになって第１触媒５３に流入するガスにＨＣ,ＣＯが多量に含まれると、前記三元触媒は吸蔵している酸素分子を放出してＨＣ,ＣＯに与えることでＨＣ,ＣＯを酸化し、これによりＨＣ,ＣＯを浄化する。
【００６５】
従って、第１触媒５３が連続的に流入する多量のＨＣ,ＣＯを効率的に浄化するためには、当該第１触媒５３に備えられた三元触媒が酸素を多量に貯蔵していなければならず、逆に連続的に流入する多量のＮＯｘを効率的に浄化するためには、当該三元触媒が酸素を十分に貯蔵し得る状態になければならないことになる。以上のことから、第１触媒５３の浄化能力は、当該三元触媒が貯蔵し得る最大の酸素量（最大酸素吸蔵量）に依存する。
【００６６】
一方、第１触媒５３に備えられる三元触媒は、燃料中に含まれる鉛や硫黄等による被毒、或いは触媒に加わる熱により劣化し、これに伴い最大酸素吸蔵量が次第に低下してくる。この結果、触媒ウィンドウの範囲も狭くなってくる。このように最大酸素吸蔵量が低下して触媒ウィンドウが狭くなった場合であっても、エミッションの排出量を継続的に抑制するには、第１触媒５３から排出されるガスの空燃比（従って、第１触媒５３に流入するガスの平均空燃比）が、理論空燃比に極めて近い状態となるように精度よく制御する必要がある。
【００６７】
そこで、本実施形態の空燃比制御装置は、上流側空燃比センサ６６の出力値を用いた上流側フィードバック（以下メインフィードバックと称する）及び下流側空燃比センサ６７の出力値を用いた下流側フィードバック（以下サブフィードバックと称する）という２つの空燃比フィードバック制御を行っている。しかも、これらのフィードバック制御だけでは迅速かつ充分に補償することが困難な、混合気供給系の機構的誤差の変動や、エバポパージによる空燃比の急激な変動は、当該各フィードバック制御における補正の対象としての基本燃料噴射量を補正することで補償される。
【００６８】
より具体的に述べると、この空燃比制御装置（以下、「本装置」と云うこともある。）は、機能ブロック図である図５及び図７に示したように、Ａ１〜Ａ１７，Ａ２７〜Ａ２９の各機能ブロックを含んで構成されている。以下、各図を参照しながら各機能ブロックについて説明していく。
【００６９】
<基本燃料噴射量の算出>
先ず、筒内吸入空気量算出部Ａ１は、エアフローメータ６１が計測している吸入空気流量Gaと、クランクポジションセンサ６４の出力に基づいて得られるエンジン回転速度NEと、ＲＯＭ７２が記憶しているテーブルMapMcとに基づき、吸気行程を迎える気筒の今回の吸入空気量である筒内吸入空気量Mc(k)を求める。ここで、添え字の（k）は、今回の吸気行程に対する値であることを示している（以下、他の物理量についても同様。）。筒内吸入空気量Mcは、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【００７０】
上流側目標空燃比設定部Ａ２は、内燃機関１０の運転状態であるエンジン回転速度NE、及びスロットル弁開度TA等に基づいて所定の上流側目標値に相当する上流側目標空燃比abyfr(k)を決定する。この上流側目標空燃比abyfr(k)は、例えば、内燃機関１０の暖機終了後においては、特殊な場合を除き理論空燃比に設定されている。また、上流側目標空燃比abyfrは、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【００７１】
補正前基本燃料噴射量算出部Ａ３は、筒内吸入空気量算出部Ａ１により求められた筒内吸入空気量Mc(k)を上流側目標空燃比設定部Ａ２により設定された上流側目標空燃比abyfr(k)で除することにより、機関の空燃比を当該上流側目標空燃比abyfr(k)とするための今回の吸気行程に対する目標筒内燃料供給量Fcr(k)（即ち、今回の補正前基本燃料噴射量Fbaseb(k)）を求める。目標筒内燃料供給量Fcr、及び補正前基本燃料噴射量Fbasebは、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。以上、補正前基本燃料噴射量算出部Ａ３が基本燃料噴射量取得部に相当する。
【００７２】
補正係数設定部Ａ２９は、機関の運転状態に応じて、第１基本燃料噴射量補正係数取得部Ａ１７からの出力KF1、第２基本燃料噴射量補正係数取得部Ａ２７からの出力KF2、及び補正係数学習部Ａ２８からの出力KFm，KFmpに基づいて基本燃料噴射量補正係数KFの値の設定を行い、補正後基本燃料噴射量算出部Ａ４に出力する。これら第１基本燃料噴射量補正係数取得部Ａ１７、第２基本燃料噴射量補正係数取得部Ａ２７、補正係数学習部Ａ２８、及び補正係数設定部Ａ２９の詳細は後述する。
【００７３】
補正後基本燃料噴射量算出部Ａ４は、補正前基本燃料噴射量算出部Ａ３により求められた今回の補正前基本燃料噴射量Fbaseb(k)に、補正係数設定部Ａ２９により設定された基本燃料噴射量補正係数KFを乗じることで、補正後基本燃料噴射量Fbaseを求める。
【００７４】
このように、本装置は、筒内吸入空気量算出部Ａ１、上流側目標空燃比設定部Ａ２、補正前基本燃料噴射量算出部Ａ３、補正後基本燃料噴射量算出部Ａ４、第１基本燃料噴射量補正係数取得部Ａ１７、第２基本燃料噴射量補正係数取得部Ａ２７、補正係数学習部Ａ２８、及び補正係数設定部Ａ２９を利用して、補正後基本燃料噴射量Fbaseを求める。この補正後基本燃料噴射量Fbaseは、後に詳述するように、前回の吸気行程にて求められた混合気供給系の機構的誤差やエバポパージによる空燃比変動を補償して、今回の吸気行程において燃焼室に供給される混合気の実際の空燃比を今回の上流側目標空燃比abyfr(k)と一致させるようにするための前記必要燃料噴射量の燃料を実際に噴射するためにインジェクタ３９に指示すべき前記燃料噴射量指令値である（メイン及びサブフィードバック前の）目標燃料噴射指令値である。
【００７５】
<指令燃料噴射量の算出>
指令燃料噴射量算出部Ａ５は、前記補正後基本燃料噴射量Fbase(k)に後述するメインフィードバック補正量DFi_main、及びサブフィードバック補正量DFi_subを加えることで、下記(1)式に基づいて今回の指令燃料噴射量Fi(k)を求める。指令燃料噴射量Fi(k)は、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
Fi(k)＝Fbase(k)＋DFi_main＋DFi_sub  ・・・(1)
【００７６】
本装置は、このようにして、指令燃料噴射量算出部Ａ５により、補正後基本燃料噴射量Fbase(k)をメインフィードバック補正量DFi_mainとサブフィードバック補正量DFi_subとに基づいて補正することにより得られる指令燃料噴射量Fi(k)の燃料の噴射指示を今回の吸気行程を迎える気筒についてのインジェクタ３９に対して行う。
【００７７】
<サブフィードバック制御>
先ず、下流側目標値設定部Ａ６は、上述した上流側目標空燃比設定部Ａ２と同様、内燃機関１０の運転状態であるエンジン回転速度NE、及びスロットル弁開度TA等に基づいて下流側目標空燃比に対応する下流側目標値（所定の下流側目標値）Voxs_refを決定する。この下流側目標値Voxs_refは、例えば、内燃機関１０の暖機終了後においては、特殊な場合を除き理論空燃比に対応する値である０．５（Ｖ）に設定されている（図４を参照。）。また、本例では、下流側目標値Voxs_refは、当該下流側目標値Voxs_refに対応する下流側目標空燃比が上述した上流側目標空燃比abyfr(k)と常時一致するように設定される。
【００７８】
出力偏差量算出部Ａ７は、下記(2)式に基づいて、下流側目標値設定部Ａ６により設定されている現時点（具体的には、今回のFi(k)の噴射指示開始時点）での下流側目標値Voxs_refから同現時点での下流側空燃比センサ６７の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。
DVoxs＝Voxs_ref−Voxs  ・・・(2)
【００７９】
ローパスフィルタＡ８は、その特性をラプラス演算子sを用いて表した下記(3)式に示すように、一次のフィルタである。下記(3)式において、τ1は時定数である。ローパスフィルタＡ８は、周波数（１／τ1）以上の高周波数成分が通過することを実質的に禁止する。ローパスフィルタＡ８は、前記出力偏差量算出部Ａ７により求められた前記出力偏差量DVoxsの値を入力するとともに、下記(3)式に従って当該出力偏差量DVoxsの値をローパスフィルタ処理した後の値であるローパスフィルタ通過後出力偏差量DVoxs_lowを出力する。
１／（１＋τ1・s）  ・・・(3)
【００８０】
ＰＩＤコントローラＡ９は、ローパスフィルタＡ８の出力値であるローパスフィルタ通過後出力偏差量DVoxs_lowを比例・積分・微分処理（ＰＩＤ処理）することで、下記(4)式に基づいてサブフィードバック補正量DFi_subを求める。
DFi_sub＝Kp・DVoxs_low＋Ki・SDVoxs_low＋Kd・DDVoxs_low  ・・・(4)
【００８１】
前記(4)式において、Kpは予め設定された比例ゲイン（比例定数）、Kiは予め設定された積分ゲイン（積分定数）、Kdは予め設定された微分ゲイン（微分定数）である。また、SDVoxs_lowはローパスフィルタ通過後出力偏差量DVoxs_lowの時間積分値であり、DDVoxs_lowはローパスフィルタ通過後出力偏差量DVoxs_lowの時間微分値である。
【００８２】
このようにして、本装置は、下流側目標値Voxs_refと下流側空燃比センサ６７の出力値Voxsとの偏差である出力偏差量DVoxs（実際には、ローパスフィルタ通過後出力偏差量DVoxs_low）に基づいて、サブフィードバック補正量DFi_subを求め、前記補正後基本燃料噴射量Fbase(k)に前記サブフィードバック補正量DFi_subを加えることで、後述するメインフィードバック制御による(前記メインフィードバック補正量DFi_mainによる)補正後基本燃料噴射量Fbase(k)の補正とは独立に補正後基本燃料噴射量Fbase(k)を補正する。
【００８３】
例えば、機関の平均的な空燃比がリーンであるために下流側空燃比センサ６７の出力値Voxsが理論空燃比よりもリーンである空燃比に対応した値を示すと、出力偏差量算出部Ａ７により求められる出力偏差量DVoxsが正の値となるので（図４を参照。）、ＰＩＤコントローラＡ９にて求められるサブフィードバック補正量DFi_subは正の値となる。これにより、指令燃料噴射量算出部Ａ５にて求められる指令燃料噴射量Fi(k)は補正後基本燃料噴射量Fbase(k)よりも大きくなって、機関の空燃比がリッチとなるように制御される。
【００８４】
反対に、機関の平均的な空燃比がリッチであるために下流側空燃比センサ６７の出力値Voxsが理論空燃比よりもリッチである空燃比に対応した値を示すと、出力偏差量算出部Ａ７により求められる出力偏差量DVoxsが負の値となるので、ＰＩＤコントローラＡ９にて求められるサブフィードバック補正量DFi_subは負の値となる。これにより、指令燃料噴射量算出部Ａ５にて求められる指令燃料噴射量Fi(k)は補正後基本燃料噴射量Fbase(k)よりも小さくなって、機関の空燃比がリーンとなるように制御される。
【００８５】
また、ＰＩＤコントローラＡ９は積分項Ki・SDVoxs_lowを含んでいるので、定常状態では出力偏差量DVoxsがゼロになることが保証される。換言すれば、下流側目標値Voxs_refと下流側空燃比センサ６７の出力値Voxsとの定常偏差がゼロになる。また、定常状態では、出力偏差量DVoxsがゼロになることで比例項Kp・DVoxs_low、微分項Kd・DDVoxs_lowが共にゼロとなるから、サブフィードバック補正量DFi_subは積分項Ki・SDVoxs_lowの値と等しくなる。この値は、下流側空燃比センサ６７の出力値Voxsと下流側目標値Voxs_refとの偏差の時間積分値に基づく値である。
【００８６】
ＰＩＤコントローラＡ９においてかかる積分処理が実行されることにより、上述した混合気供給系の機構的誤差やエバポパージによる空燃比変動が補償され得、且つ、定常状態において第１触媒５３の下流の空燃比（従って、機関の空燃比）が前記下流側目標値Voxs_refに対応する下流側目標空燃比（即ち、理論空燃比）に収束し得る。以上、下流側目標値設定部Ａ６、出力偏差量算出部Ａ７、ローパスフィルタＡ８、及びＰＩＤコントローラＡ９が下流側フィードバック補正値算出部に相当する。
【００８７】
<メインフィードバック制御>
先に説明したように、第１触媒５３は酸素吸蔵機能を有している。従って、第１触媒５３の上流の排気ガスの空燃比の変動における比較的周波数の高い（例えば、前記周波数（１／τ1）以上の）高周波数成分、及び比較的周波数が低くて（例えば、前記周波数（１／τ1）以下であって）振幅（理論空燃比からの偏移量）が比較的小さい低周波数成分は第１触媒５３が有する酸素吸蔵機能により完全に吸収されることにより第１触媒５３の下流の排気ガスの空燃比の変動として現れることはない。従って、例えば、内燃機関１０が過渡運転状態にあって排気ガスの空燃比が前記周波数（１／τ1）以上の高周波数で大きく変動するような場合、同空燃比の変動が下流側空燃比センサ６７の出力値Voxsに現れないから、同周波数（１／τ1）以上の空燃比の変動に対する空燃比制御（即ち、過渡運転状態における空燃比の急変に対する補償）はサブフィードバック制御により実行することができない。従って、過渡運転状態における空燃比の急変に対する補償を確実に行うためには、上流側空燃比センサ６６の出力値Vabyfsに基づいた空燃比制御であるメインフィードバック制御を行う必要がある。
【００８８】
一方、第１触媒５３の上流の排気ガスの空燃比の変動における比較的周波数が低くて（例えば、前記周波数（１／τ1）以下であって）振幅が比較的大きい低周波数成分は第１触媒５３の酸素吸蔵機能では完全には吸収されず、少し遅れて第１触媒５３の下流の排気ガスの空燃比の変動として現れる。この結果、上流側空燃比センサ６６の出力値Vabyfsと下流側空燃比センサ６７の出力値Voxsとが理論空燃比に対して互いに逆方向に偏移した空燃比を示す値となる場合が存在する。従って、この場合、メインフィードバック制御（後述するメインフィードバック補正量DFi_main）に基づく機関の空燃比制御とサブフィードバック制御（従って、前記サブフィードバック補正量DFi_sub）に基づく機関の空燃比制御とを同時に行うと、２つの空燃比制御が互いに干渉することになるので良好な機関の空燃比制御を行うことができない。
【００８９】
以上のことから、上流側空燃比センサ６６の出力値Vabyfsの変動における各周波数成分のうち第１触媒５３の下流の空燃比の変動として現れ得る程度の周波数成分である所定の周波数（本例では、周波数（１／τ1））以下の低周波数成分をカットした後の当該上流側空燃比センサ６６の出力値Vabyfsをメインフィードバック制御に使用すれば、前記機関の空燃比制御の干渉が発生することを回避することができるとともに、過渡運転状態における空燃比の急変に対する補償を確実に行うことができる。
【００９０】
そこで、本装置は、前述の図５に示したように、Ａ１０〜Ａ１６の各機能ブロックを含んで構成されている。以下、図５を参照しながら各機能ブロックについて説明していく。
【００９１】
<<メインフィードバック補正量の算出>>
先ず、テーブル変換部Ａ１０は、上流側空燃比センサ６６の出力値Vabyfsと、先に説明した図３に示した上流側空燃比センサ出力値Vabyfsと空燃比Ａ／Ｆとの関係を規定したテーブルとに基づいて、上流側空燃比センサ６６が検出する現時点（具体的には、今回のFi(k)の噴射指示開始時点）における今回の検出空燃比abyfs(k)を求める。
【００９２】
筒内吸入空気量遅延部Ａ１１は、筒内吸入空気量算出部Ａ１により吸気行程毎に求められＲＡＭ７３に記憶されている筒内吸入空気量Mcのうち、現時点からＮストローク（Ｎ回の吸気行程）前に吸気行程を迎えた気筒の筒内吸入空気量McをＲＡＭ７３から読み出し、これを筒内吸入空気量Mc(k−N)として設定する。
【００９３】
筒内燃料供給量算出部Ａ１２は、筒内吸入空気量遅延部Ａ１１により求められた現時点からＮストローク前の筒内吸入空気量Mc(k−N)をテーブル変換部Ａ１０により求められた今回の検出空燃比abyfs(k)で除することで、現時点からＮストローク前の実際の筒内燃料供給量Fc(k−N)を求める。ここで、前記値Ｎは、内燃機関１０の排気量、及び燃焼室２５から上流側空燃比センサ６６までの距離等により異なる値である。
【００９４】
このように、現時点からＮストローク前の実際の筒内燃料供給量Fc(k−N)を求めるために、現時点からＮストローク前の筒内吸入空気量Mc(k−N)を現時点における今回の検出空燃比abyfs(k)で除するのは、燃焼室２５内で燃料された混合気が上流側空燃比センサ６６に到達するまでには、Ｎストロークに相当する時間Ｌ１を要しているからである。
【００９５】
目標筒内燃料供給量遅延部Ａ１３は、補正前基本燃料噴射量算出部Ａ３により吸気行程毎に求められＲＡＭ７３に記憶されている目標筒内燃料供給量Fcrのうち、現時点からＮストローク前の目標筒内燃料供給量FcrをＲＡＭ７３から読み出し、これを目標筒内燃料供給量Fcr(k−N)として設定する。
【００９６】
筒内燃料供給量偏差算出部Ａ１４は、下記(5)式に基づいて、目標筒内燃料供給量遅延部Ａ１３により設定された現時点からＮストローク前の目標筒内燃料供給量Fcr(k−N)から筒内燃料供給量算出部Ａ１２により求められた現時点からＮストローク前の実際の筒内燃料供給量Fc(k−N)を減じることにより、筒内燃料供給量偏差DFcを求める。この筒内燃料供給量偏差DFcは、Ｎストローク前の時点で筒内に供給された燃料の過不足分を表す量であって、上流側空燃比センサ６６の出力値Vabyfsと上流側目標値（上流側目標空燃比abyfrが理論空燃比のときは図３に示すVstoich）との偏差に基づく値である。
DFc＝Fcr(k−N)−Fc(k−N)  ・・・(5)
【００９７】
ハイパスフィルタＡ１５は、その特性をラプラス演算子sを用いて表した下記(6)式に示すように、一次のフィルタである。下記(6)式において、τ1は前記ローパスフィルタＡ８の時定数τ1と同一の時定数である。ハイパスフィルタＡ１５は、周波数（１／τ1）以下の低周波数成分が通過することを実質的に禁止する。
１−１／（１＋τ1・s）  ・・・(6)
【００９８】
ハイパスフィルタＡ１５は、前記筒内燃料供給量偏差算出部Ａ１４により求められた前記筒内燃料供給量偏差DFcの値を入力するとともに、前記(6)式に従って当該筒内燃料供給量偏差DFcの値をハイパスフィルタ処理した後の値であるハイパスフィルタ通過後筒内燃料供給量偏差DFchiを出力する。従って、ハイパスフィルタ通過後筒内燃料供給量偏差DFchiは、上流側空燃比センサ６６の出力値Vabyfsと上流側目標値との偏差に基づく値をハイパスフィルタ処理した後の値である。
【００９９】
ＰＩコントローラＡ１６は、ハイパスフィルタＡ１５の出力値であるハイパスフィルタ通過後筒内燃料供給量偏差DFchiを比例・積分処理（ＰＩ処理）することで、下記(7)式に基づいてＮストローク前の燃料供給量の過不足（における周波数（１／τ1）以上の高周波数成分のみの過不足）を補償するためのメインフィードバック補正量DFi_mainを求める。
DFi_main＝(Gphi・DFchi＋Gihi・SDFchi)・KFB  ・・・(7)
【０１００】
前記(7)式において、Gphiは予め設定された比例ゲイン（比例定数）、Gihiは予め設定された積分ゲイン（積分定数）である。SDFchiはハイパスフィルタ通過後筒内燃料供給量偏差DFchiの時間積分値である。また、係数KFBは、エンジン回転速度NE、及び筒内吸入空気量Mc等により可変とすることが好ましいが、本例では「１」としている。係るメインフィードバック補正量DFi_mainは、先に述べたように指令燃料噴射量算出部Ａ５により指令燃料噴射量Fi(k)を求める際に使用される。
【０１０１】
このようにして、本装置は、メインフィードバック制御回路とサブフィードバック制御回路とを内燃機関１０に対して並列に接続している。そして、本装置は、上流側目標空燃比abyfrに対応する上流側目標値と上流側空燃比センサ６６の出力値Vabyfsとの偏差に基づく値をハイパスフィルタ処理した後の値であるハイパスフィルタ通過後筒内燃料供給量偏差DFchiに基づいて、メインフィードバック補正量DFi_mainを求め、前記補正後基本燃料噴射量Fbaseに当該メインフィードバック補正量DFi_mainを加えることで、上述したサブフィードバック制御による(サブフィードバック補正量DFi_subによる)補正後基本燃料噴射量Fbaseの補正とは独立に補正後基本燃料噴射量Fbaseを補正する。
【０１０２】
例えば、機関の空燃比が急変してリーンとなると、テーブル変換部Ａ１０にて求められる今回の検出空燃比abyfs(k)は上流側目標空燃比設定部Ａ２により設定されている現時点からＮストローク前の上流側目標空燃比abyfr(k−N)よりもリーンな値（より大きな値）として求められる。このため、筒内燃料供給量算出部Ａ１２にて求められる実際の筒内燃料供給量Fc(k−N)は目標筒内燃料供給量遅延部Ａ１３にて求められる目標筒内燃料供給量Fcr(k−N)よりも小さい値となり、筒内燃料供給量偏差DFcは大きい正の値として求められる。また、機関の空燃比の急変によりこの筒内燃料供給量偏差DFcを示す信号には前記周波数（１／τ1）以上の高周波数成分が存在するから、ハイパスフィルタＡ１５を通過した後のハイパスフィルタ通過後筒内燃料供給量偏差DFchiも大きい正の値となる。従って、メインフィードバック補正量DFi_mainが大きい正の値となる。これにより、指令燃料噴射量算出部Ａ５にて求められる指令燃料噴射量Fi(k)は、補正後基本燃料噴射量Fbaseよりも大きくなって、機関の空燃比がリッチとなるように制御される。
【０１０３】
反対に、機関の空燃比が急変してリッチとなると、今回の検出空燃比abyfs(k)は現時点からＮストローク前の上流側目標空燃比abyfr(k−N)よりもリッチな値（より小さな値）として求められる。このため、実際の筒内燃料供給量Fc(k−N)は目標筒内燃料供給量Fcr(k−N)よりも大きい値となり、筒内燃料供給量偏差DFcは負の値として求められる。また、機関の空燃比の急変によりこの筒内燃料供給量偏差DFcを示す信号には前記周波数（１／τ1）以上の高周波数成分が存在するから、ハイパスフィルタ通過後筒内燃料供給量偏差DFchiも負の値となる。従って、メインフィードバック補正量DFi_mainが負の値となる。これにより、指令燃料噴射量Fi(k)は、補正後基本燃料噴射量Fbaseよりも小さくなって、機関の空燃比がリーンとなるように制御される。以上、テーブル変換部Ａ１０、筒内吸入空気量遅延部Ａ１１、筒内燃料供給量算出部Ａ１２、目標筒内燃料供給量遅延部Ａ１３、筒内燃料供給量偏差算出部Ａ１４、ハイパスフィルタＡ１５、及びＰＩコントローラＡ１６は上流側フィードバック補正値算出部に相当する。
【０１０４】
このようにして、第１触媒５３の下流の空燃比の変動として現れ得る程度の周波数（１／τ1）以下の空燃比の変動に対する実質的な空燃比制御はサブフィードバック制御により確実に行われ得るとともに、同周波数（１／τ1）以下の低周波数成分はハイパスフィルタＡ１５を通過し得ずＰＩコントローラＡ１６に入力されないから前述した機関の空燃比制御の干渉が発生することを回避できる。また、機関の空燃比の変動（従って、上流側空燃比センサ６６の出力値Vabyfsの変動）における前記周波数（１／τ1）以上の高周波数成分はハイパスフィルタＡ１５を通過するから、過渡運転状態における空燃比の急変に対する補償はメインフィードバック制御により迅速、且つ確実に行われ得る。
【０１０５】
<基本燃料噴射量補正係数KFの概要>
先に説明したように、前記ＰＩＤコントローラＡ９において積分処理が実行されることにより、サブフィードバック制御において上述した混合気供給系の機構的誤差やエバポパージによる空燃比変動が補償され得る。しかしながら、上述した第１触媒５３の酸素吸蔵機能の影響により機関の空燃比の変化は少し遅れて第１触媒５３の下流の排気ガスの空燃比の変化として現れるから、サブフィードバック制御のみでは上述の混合気供給系の機構的誤差の急な増大やエバポパージによる空燃比変動を直ちに補償することができず、その結果、一時的にエミッションの排出量が増大する場合が発生するという問題がある。
【０１０６】
従って、前記酸素吸蔵機能による遅れの影響がないメインフィードバック制御においても上述の混合気供給系の機構的誤差やエバポパージによる空燃比変動を直ちに補償できるように構成することが必要である。しかしながら、ハイパスフィルタ処理は微分処理（Ｄ処理）と同等の機能を有する処理であるから、ハイパスフィルタＡ１５通過後の値がＰＩコントローラＡ１６の入力値とされている前記メインフィードバック制御においては、実質的に積分処理が実行され得ない。よって、前記メインフィードバック制御においては前記混合気供給系の機構的誤差やエバポパージによる空燃比変動が補償され得ない。
【０１０７】
以上のことから、メインフィードバック制御、及びサブフィードバック制御による積分処理によることなく前記混合気供給系の機構的誤差やエバポパージによる空燃比変動を直ちに補償する必要がある。このためには、指令燃料噴射量Fiを決定する値のうちメインフィードバック補正量DFi_main、及びサブフィードバック補正量DFi_sub以外の値である補正後基本燃料噴射量Fbaseが、燃焼室に供給される混合気の実際の空燃比を目標空燃比abyfrとするために（すなわち実際に噴射される燃料が必要燃料噴射量となるようにするために）、吸気行程を迎える気筒のインジェクタ３９に噴射指示すべき目標燃料噴射指令値（以下、「目標基本燃料噴射量Fbaset」と称呼する。）と一致する（近づく）ように補正される必要がある。
【０１０８】
そのためには、図５から理解できるように、補正前基本燃料噴射量算出部Ａ３からの出力値である今回の前記補正前基本燃料噴射量Fbaseb(k)に、何らかの補正係数（基本燃料噴射量補正係数KF）を乗じることで、メインフィードバック及びサブフィードバックの対象となる（補正後）基本燃料噴射量が可及的に前記目標基本燃料噴射量Fbasetと一致する（近づく）ようにすることが必要である。以下、基本燃料噴射量補正係数KFの設定方法について説明する。
【０１０９】
一般に、燃焼室内に吸入される筒内吸入空気量が一定であるという仮定のもとでは、燃料噴射量と、燃焼室に供給される混合気の空燃比（従って、排気ガスの空燃比）の積は一定となる。従って、係る仮定のもとでは、一般に、前記指令燃料噴射量Fiと、上流側空燃比センサ６６による検出空燃比abyfsの積は、燃焼室に供給される混合気の実際の空燃比を今回の目標空燃比abyfr(k)とするために必要な前記目標基本燃料噴射量Fbasetと、目標空燃比abyfr(k)の積に等しい、という関係が成立する。従って、目標基本燃料噴射量Fbasetは、一般に、下記(8)式に従って表すことができる。
Fbaset＝(abyfs ／ abyfr(k))・Fi  ・・・(8)
【０１１０】
ここで、上述したように、今回の補正前基本燃料噴射量Fbaseb(k)に基本燃料噴射量補正係数KFを乗じた値が前記(8)式に従って求められる目標基本燃料噴射量Fbasetと等しくなるように当該補正係数KFが設定されるから、当該補正係数KFは下記(9)式に従って設定することができる。
KF＝Fbaset ／ Fbaseb(k)  ・・・(9)
【０１１１】
ところで、燃料の噴射指示から、同噴射指示により噴射された燃料の燃焼に基づく排気ガスの空燃比が上流側空燃比センサ６６の出力値Vabyfsとして現れるまでには、上述した行程遅れ、輸送遅れ、及び応答遅れの和として表される遅れ時間Ｌ２が必要である。換言すれば、上流側空燃比センサ６６による検出空燃比abyfsは、遅れ時間Ｌ２前に実行された燃料の噴射指示に基づいて発生した排気ガスの空燃比を表す値となる。
【０１１２】
従って、前記(8)式に従って目標基本燃料噴射量Fbasetが計算される際、検出空燃比abyfsとして今回の検出空燃比abyfs(k)が使用される一方で、指令燃料噴射量Fiとしては、現時点（具体的には、今回のFi(k)の噴射指示開始時点）から遅れ時間Ｌ２に相当するＭストローク（Ｍ回の吸気行程）前に実行された燃料の噴射指示に係わる指令燃料噴射量である現時点からＭストローク前の指令燃料噴射量Fi(k−M)が使用されることが好ましい。
【０１１３】
そして、上述した行程遅れ、及び輸送遅れに係る時間は、エンジン回転速度NEの上昇に応じて短くなるとともに、輸送遅れに係る時間は、筒内吸入空気量Mcの増加に応じて短くなる傾向がある。従って、前記遅れ時間Ｌ２（従って、値Ｍ）は、例えば、エンジン回転速度NEと、筒内吸入空気量Mc(k)と、図６にグラフにより示した、エンジン回転速度NE及び筒内吸入空気量Mcと、ストローク数Ｍとの関係を規定するテーブルMapMcと、に基づいて求めることができる。
【０１１４】
また、機関が過渡運転状態にある場合、検出空燃比abyfs、指令燃料噴射量Fi、及び補正前基本燃料噴射量Fbasebが別個独立に所定の周波数以上の高周波数で大きく変動し得る。このような場合、前記(8)式、及び前記(9)式に示した関係が維持され得なくなる可能性がある。従って、係る高周波数の変動による影響をカットして安定的な空燃比制御を行うために、基本燃料噴射量補正係数KFの取得に際してローパスフィルタ処理（又はローパスフィルタ処理と等価な所謂なまし処理）を用いることが好ましい。
【０１１５】
<<第１基本燃料噴射量補正係数KF1の算出>>
以上のことから、第１基本燃料噴射量補正係数取得部Ａ１７は、その機能ブロック図である図７（ａ）に示したようにＡ１７ａ〜Ａ１７ｄの各機能ブロック（演算処理部）を含んで構成されている。すなわち、第１基本燃料噴射量補正係数取得部Ａ１７は、前記遅れ時間Ｌ２に相当するＭストローク前の指令燃料噴射量Fi(k−M)を取得するための指令燃料噴射量遅延部Ａ１７ａと、上流側空燃比センサ６６の出力値をテーブル変換部Ａ１０により空燃比に変換した信号である今回の検出空燃比abyfs(k)，上流側目標空燃比設定部Ａ２からの出力信号である今回の吸気行程の上流側目標空燃比abyfr(k)，及び前記指令燃料噴射量遅延部Ａ１７ａからの出力信号を入力とする目標基本燃料噴射量算出部Ａ１７ｂと、その目標基本燃料噴射量算出部Ａ１７ｂからの出力信号である今回の目標基本燃料噴射量Fbaset，及び補正前基本燃料噴射量算出部Ａ３からの出力信号である今回の補正前基本燃料噴射量Fbaseb(k)を入力とする基本燃料噴射量補正係数算出部Ａ１７ｃと、その基本燃料噴射量補正係数算出部Ａ１７ｃからの出力信号を入力とし第１基本燃料噴射量補正係数KF1を出力するローパスフィルタＡ１７ｄとを備えている。
【０１１６】
ローパスフィルタＡ１７ｄは、ラプラス演算子sを用いてその特性を表した下記(10)式に示すように、一次のフィルタである。下記(10)式において、τ2は時定数（フィルタの応答性に関するパラメータ）である。このローパスフィルタＡ１７ｄは、周波数（１／τ2）以上の高周波数成分が通過することを実質的に禁止する。
１／（１＋τ2・s）  ・・・(10)
【０１１７】
指令燃料噴射量遅延部Ａ１７ａは、ＲＯＭ７２に記憶されている上述したテーブルMapMcと、現時点でのエンジン回転速度NEと、今回の筒内吸入空気量Mc(k)と、に基づいて上述の値Ｍを求める。そして、指令燃料噴射量遅延部Ａ１７ａは、指令燃料噴射量算出部Ａ５により吸気行程毎に求められＲＡＭ７３に記憶されている指令燃料噴射量Fiのうち、現時点からＭストローク（Ｍ回の吸気行程）前の値をＲＡＭ７３から読み出し、これを指令燃料噴射量Fi(k−M)として設定する。
【０１１８】
目標基本燃料噴射量算出部Ａ１７ｂは、前記(8)に相当する下記(11)式に従って、検出空燃比abyfs(k)の値を今回の目標空燃比abyfr(k)で除することで得られる値に、指令燃料噴射量Fi(k−M)の値を乗じることで目標基本燃料噴射量Fbasetを求める。
Fbaset＝(abyfs(k) ／ abyfr(k))・Fi(k−M)  ・・・(11)
【０１１９】
基本燃料噴射量補正係数算出部Ａ１７ｃは、上記(9)に相当する下記(12)式に従って、目標基本燃料噴射量算出部Ａ１７ｂにより求められた目標基本燃料噴射量Fbasetを補正前基本燃料噴射量Fbaseb(k)で除することで、ローパスフィルタ処理前の基本燃料噴射量補正係数KF0を求める。
KF0＝Fbaset ／ Fbaseb(k)  ・・・（12）
【０１２０】
ローパスフィルタＡ１７ｄは、基本燃料噴射量補正係数算出部Ａ１７ｃにより求められたローパスフィルタ処理前の基本燃料噴射量補正係数KF0の値を入力とし、前記(10)式に従って、前記KF0の値をローパスフィルタ処理した後の値である基本燃料噴射量補正係数KF1を出力する。
【０１２１】
<<第２基本燃料噴射量補正係数KF2の算出>>
また、第２基本燃料噴射量補正係数取得部Ａ２７は、前記第１基本燃料噴射量補正係数取得部Ａ１７と同様の構成を有しており、その機能ブロック図である図７（ｂ）に示したように、指令燃料噴射量遅延部Ａ２７ａと、目標基本燃料噴射量算出部Ａ２７ｂと、基本燃料噴射量補正係数取得部Ａ２７ｃと、ローパスフィルタＡ２７ｄの各機能ブロック（演算処理部）を含んで構成されている。
【０１２２】
この第２基本燃料噴射量補正係数取得部Ａ２７におけるローパスフィルタＡ２７ｄは、基本燃料噴射量補正係数取得部Ａ２７ｃからの出力信号を入力として第２基本燃料噴射量補正係数KF2を出力する。ここで、ローパスフィルタＡ２７ｄは、前記ローパスフィルタＡ１７ｄと同様、周波数（１／τ3）以上の高周波数成分が通過することを実質的に禁止するものであって、その時定数τ3が前記第１基本燃料噴射量補正係数取得部Ａ１７におけるローパスフィルタＡ１７ｄの時定数τ2よりも小さく設定されている。
【０１２３】
<<補正係数設定部による基本燃料噴射量補正係数KFの設定>>
そして、非パージ時には、第１基本燃料噴射量補正係数取得部Ａ１７にて求められた第１基本燃料噴射量補正係数KF1は、補正係数設定部Ａ２９により基本燃料噴射量補正係数KFとして設定されることで補正後基本燃料噴射量算出部Ａ４に出力され、今回の指令燃料噴射量Fi(k)を得るための補正後基本燃料噴射量Fbaseの取得のために供される。これに対し、第２基本燃料噴射量補正係数取得部Ａ２７にて求められた第２基本燃料噴射量補正係数KF2は、今回の指令燃料噴射量Fi(k)を得るための補正後基本燃料噴射量Fbaseの取得のためには用いられない。
【０１２４】
一方、パージ時には、第２基本燃料噴射量補正係数取得部Ａ２７にて求められた第２基本燃料噴射量補正係数KF2は、補正係数設定部Ａ２９により基本燃料噴射量補正係数KFとして設定されることで補正後基本燃料噴射量算出部Ａ４に出力され、今回の指令燃料噴射量Fi(k)を得るための補正後基本燃料噴射量Fbaseの取得のために供される。これに対し、第１基本燃料噴射量補正係数取得部Ａ１７にて求められた第１基本燃料噴射量補正係数KF1は、今回の指令燃料噴射量Fi(k)を得るための基本燃料噴射量補正係数KFとしては用いられないが、補正係数学習部Ａ２８において、パージ開始直後の実際の空燃比の急激な変動を可及的に抑制するためのパージ学習に用いられる。
【０１２５】
すなわち、上述の通り、基本燃料噴射量補正係数KFによる基本燃料噴射量補正は、混合気供給系の機構的誤差等を迅速に補償するために、上流側空燃比センサ６６の出力に基づいて行われるが、その一方で、補正量の大きな振動を可及的に抑えて安定した基本燃料噴射量補正を実現するという要求があるために、基本燃料噴射量補正係数KFの取得に際してローパスフィルタ処理が行われる。
【０１２６】
このため、通常の定常運転時（非パージ時）においては、比較的大きな時定数τ2のローパスフィルタＡ１７ｄを備えた第１基本燃料噴射量補正係数取得部Ａ１７によって求められた第１基本燃料噴射量補正係数KF1が、補正係数設定部Ａ２９にて基本燃料噴射量補正係数KFとして設定されることによって、安定した基本燃料噴射量補正による適切な空燃比制御が維持され得る。このように、非パージ時に用いられるローパスフィルタＡ１７ｄの時定数τ2は、メイン及びサブフィードバック（の積分項）による空燃比補償の応答性と比較した場合の迅速性を阻害しない範囲で、可能な限り大きい方が好ましい。
【０１２７】
これに対し、エバポパージは空燃比制御系に対する急激且つ大きな外乱に相当する。よって、このエバポパージによる空燃比の変動を基本燃料噴射量補正で迅速に補償するためには、基本燃料噴射量補正係数KFの取得に際して行われるローパスフィルタ処理の、実際の空燃比変動（上流側空燃比センサ６６の検出空燃比の変動）に対する応答性を高める必要がある。したがって、パージ時には、前記時定数τ2よりも小さな時定数τ3のローパスフィルタＡ２７ｄを備えた第２基本燃料噴射量補正係数取得部Ａ２７によって求められた第２基本燃料噴射量補正係数KF2が、補正係数設定部Ａ２９にて基本燃料噴射量補正係数KFとして設定されることによって、エバポパージによる空燃比変動が迅速に補償され得る。
【０１２８】
なお、パージ時にて上述のように小さな時定数τ3のローパスフィルタＡ２７ｄを備えた第２基本燃料噴射量補正係数取得部Ａ２７の出力値KF2によって迅速な空燃比補償を行ったとしても、パージ開始直後においては、かかる第２基本燃料噴射量補正係数KF2によって空燃比が実効的に補償されるまでの間に一時的にエミッションが悪化することが懸念される。
【０１２９】
そこで、パージ開始から所定時間経過前は、補正係数設定部Ａ２９は、前回のパージ時にて学習したパージ時基本燃料噴射量補正係数学習値（以下「パージ学習値」と称する）KFmpに基づいて基本燃料噴射量補正係数KFを算出し、前記所定時間経過後は、前記第２基本燃料噴射量補正係数KF2に基づいて基本燃料噴射量補正係数KFを算出して基本燃料噴射量補正を行う。以下、このパージ学習値KFmpの取得（パージ学習）について説明する。
【０１３０】
<<パージ学習制御>>
パージ時と非パージ時とで吸入空気流量Gaやエンジン回転速度NEが同一（したがって筒内吸入空気量Mc(k)が同一）である場合、補正前基本燃料噴射量算出部Ａ３により取得される補正前基本燃料噴射量Fbaseb(k)や、混合気吸気系の機構的誤差は、パージ時と非パージ時とでは同一となる。それにも拘らず、初回パージ開始時点においては、燃焼室２５に導入される燃料量が、非パージ時よりもパージガス中の燃料量相当分だけ多くなる（リッチになる）。そして、かかるパージ開始時点でのリッチ側にシフトした混合気が燃焼室２５にて燃焼された直後、上流側空燃比センサ６６の空燃比出力がリッチ側にシフトする。このリッチ側にシフトした上流側空燃比センサ６６の空燃比出力に基づいて算出された目標基本燃料噴射量Fbasetは、非パージ時に算出される（通常の）目標基本燃料噴射量Fbasetから、エバポパージによる空燃比リッチシフト分の燃料量である前記余剰燃料量が補償された（差し引かれた）値となる。すなわち、同一の筒内吸入空気量Mc(k)における、非パージ時とパージ時との間の目標基本燃料噴射量Fbasetの差は、混合気吸気系の機構的誤差の影響が除外された、純粋な前記余剰燃料量に相当する。
【０１３１】
よって、同一の筒内吸入空気量Mc(k)において補正前基本燃料噴射量Fbaseb(k)が同一であるという前提と前記(9)式とに基づけば、非パージ時の第１基本燃料噴射量補正係数KF1nonpurgeと、パージ時の第１基本燃料噴射量補正係数KF1purgeとの偏差は、上述の余剰燃料量を反映した値となる。すなわち、パージ時の第１基本燃料噴射量補正係数KF1purgeは、上述の混合気吸気系の機構的誤差を補償した非パージ時の第１基本燃料噴射量補正係数KF1nonpurgeに対して、さらにエバポパージに起因する空燃比変動を補償した値となる。したがって、同一の筒内吸入空気量Mc(k)における前回のパージ時の第１基本燃料噴射量補正係数KF1purgeを学習してパージ学習値KFmpとしてＲＡＭ７３に格納しておき、これに基づいて基本燃料噴射量補正係数KFを算出して基本燃料噴射量補正を行うことで、同一の筒内吸入空気量Mc(k)における２回目以降のパージ時では、パージ開始直後においても当該パージによる空燃比変動がある程度補償されていく。
【０１３２】
ここで、上述のパージ学習値KFmpの学習は、補正係数学習部Ａ２８において、パージ開始時点から時間ｔ0経過後、大きな時定数τ2のローパスフィルタＡ１７ｄを備えた第１基本燃料噴射量補正係数取得部Ａ１７からの出力値（第１基本燃料噴射量補正係数KF1）が充分安定したときに、当該第１基本燃料噴射量補正係数KF1の出力値を学習値としてＲＡＭ７３に格納することによって行われる。これにより、精度の良いパージ学習が行われる。
【０１３３】
上述のような、初回パージ時におけるパージ学習と、このパージ学習によるパージ学習値を用いた（同一の筒内吸入空気量Mc(k)の分類における）２回目の空燃比制御の概略を図８で説明する。
【０１３４】
まず、初回パージ時においては、図８（ａ）に示す通り、初回パージ開始時点（ｔPGR＝０）から（正確には所定の輸送遅れ時間経過後）、エバポパージによるリッチ側への空燃比変動が上流側空燃比センサ６６に現れることによって、第１基本燃料噴射量補正係数取得部Ａ１７の出力値KF1及び第２基本燃料噴射量補正係数取得部Ａ２７の出力値KF2が変動する。
【０１３５】
この場合、第２基本燃料噴射量補正係数取得部Ａ２７の出力値KF2は、小さい時定数τ3のローパスフィルタＡ２７ｄの出力に基づいたものであるので、エバポパージによる空燃比変動に対して高い応答性で追随する。そこで、補正係数設定部Ａ２９により、第２基本燃料噴射量補正係数取得部Ａ２７の出力値KF2に基づいて基本燃料噴射量補正係数KFが算出される。これにより、初回（パージ学習前）のエバポパージによる急激な空燃比変動が高い応答性で補償される。
【０１３６】
一方、第１基本燃料噴射量補正係数取得部Ａ１７の出力値KF1の出力は、大きい時定数τ2のローパスフィルタＡ１７ｄの出力に基づいたものであるので、低周波数で変動しながら徐々に一定値KFmpに収束するような挙動を示す。そこで、パージ時間が所定時間ｔ0だけ経過した後（ｔPGR＝ｔ0）、KF1の出力値がパージ学習値KFmpとして取得される。すなわち、図８（ａ）から明らかなように、パージ時間が所定時間ｔ0だけ経過した（ｔPGR＝ｔ0）場合、KF2の値は高周波数で変動しているのに対し、KF1の値は変動が小さいので、ｔPGR＝ｔ0の時点からKF1をKFmpに逐次学習することで、精度良くパージ学習が行われ得る。
【０１３７】
上述のようにパージ学習が行われた後は、この学習値KFmpに基づいてパージ時の基本燃料噴射量補正が行われる。よって、図８（ｂ）に示す通り、パージ学習後におけるパージ中（特にパージ開始直後）の空燃比変動が、初回パージ時（図８（ａ）参照）よりも抑制される。
【０１３８】
なお、図８（ｂ）に示す２回目のパージ時において、パージ時間がｔ0に達した場合は、図８（ａ）と同様にKFmpを逐次学習する。また、（同一の筒内吸入空気量Mc(k)の分類における）３回目以降のパージ時においては、上述した２回目のパージ時と同様の処理となる。
【０１３９】
このKFmpの逐次学習（記憶値の更新）について、今回新たに記憶すべき更新値KFmpは、前回のKFmp’の値と今回のKF1の値に基づき、以下の式(13)により求められる。
KFmp＝KFmp’−（KFmp’−KF1）×β・・・（13）
【０１４０】
<<基本燃料噴射量補正係数の記憶処理>>
内燃機関の暖機運転中等、「上流側空燃比センサ６６の出力値Vabyfsが正常な値とならない場合」においては、検出空燃比abyfsが排気ガスの空燃比を精度良く表す値とならない。このような場合、検出空燃比abyfsの値を使用して前記(11)式（、及び前記(12)式）に従って算出される基本燃料噴射量補正係数KFの値も、補正前基本燃料噴射量Fbaseb(k)を、目標基本燃料噴射量Fbasetになるように精度良く補正するための値とならない。従って、このような場合、前記(11)式、及び前記(12)式に従って算出される基本燃料噴射量補正係数KFは補正前基本燃料噴射量Fbaseb(k)の補正に使用されるべきでない。
【０１４１】
そこで、本装置は、非パージ時であって且つ「上流側空燃比センサ６６の出力値Vabyfsが正常な値となる場合（具体的には、後述するメインフィードバック条件が成立する場合）」に限り、前記(11)式、及び前記(12)式に従って計算された基本燃料噴射量補正係数KFを使用して補正前基本燃料噴射量Fbaseb(k)を補正していくとともに、計算された第１基本燃料噴射量補正係数KF1の値を補正係数学習部Ａ２８により基本燃料噴射量補正係数記憶値KFmとして逐次バックアップＲＡＭ７４に記憶・更新していく。
【０１４２】
ここで、吸入空気流量Gaが増大（従って筒内吸入空気量Mcも増大）すると、エアフローメータ６１によるGaの測定誤差も当然大きくなる等、混合気供給系の機構的誤差が筒内吸入空気量Mcに応じて増大していく（従って、基本燃料噴射量補正係数KFの値が筒内吸入空気量Mcに応じて増大していく）傾向がある。そこで、本装置は、図９に示すように、筒内吸入空気量Mcのとり得る範囲を複数の（本例では、４つの）分類に区分する。そして、本装置は、新たな第１基本燃料噴射量補正係数KF1を計算する毎に、今回の筒内吸入空気量Mc(k)が属する分類を選択するとともに、同選択された分類に対応する基本燃料噴射量補正係数記憶値KFm (j)(j:1,2,3,4)の値を前記計算された新たな第１基本燃料噴射量補正係数KF1の値に基づいて更新・記憶していく。
【０１４３】
このKFmの逐次更新について、今回新たに記憶すべき更新値KFmは、前回のKFm’の値と今回のKF1の値に基づき、以下の式(14)により求められる。
KFm＝KFm’−（KFm’−KF1）×α・・・（14）
【０１４４】
一方、本装置は、「上流側空燃比センサ６６の出力値Vabyfsが正常な値とならない場合（具体的には、後述するメインフィードバック条件が成立しない場合）」においては、今回の筒内吸入空気量Mc(k)が属する分類を選択するとともに、バックアップＲＡＭ７４に記憶されている基本燃料噴射量補正係数記憶値KFm(j)(j:1,2,3,4)のうち同選択された分類に対応する値を読み出し、前記(11)式、及び前記(12)式に従って計算される基本燃料噴射量補正係数KFに代えて当該基本燃料噴射量補正係数記憶値KFmを使用して補正前基本燃料噴射量Fbaseb(k)を補正していく。これにより、「上流側空燃比センサ６６の出力値Vabyfsが正常な値とならない場合」においても、補正前基本燃料噴射量Fbaseb(k)を、ある程度正確に目標基本燃料噴射量Fbasetに一致させていくことができ、この結果、混合気供給系の機構的誤差がある程度補償されていく。
【０１４５】
但し、エバポパージが行われている場合、このエバポパージによる空燃比制御系に対する外乱が入った状態の基本燃料噴射量補正係数KFの値は、「上流側空燃比センサ６６の出力値Vabyfsが正常な値とならない場合」のための補正値として学習すべきではない。したがって、エバポパージが行われている場合には、上述の基本燃料噴射量補正係数記憶値KFmの更新が行われない。
【０１４６】
以上の通り、第１基本燃料噴射量補正係数取得部Ａ１７及び第２基本燃料噴射量補正係数取得部Ａ２７は、燃料の噴射時点（より具体的には、噴射指示が開始される時点）が到来する毎に、Ａ１７ａ〜Ａ１７ｄ及びＡ２７ａ〜Ａ２７ｄの各機能ブロックを利用してKF1及びKF2を取得する。また、補正係数学習部Ａ２８は、パージ時及び非パージ時の基本燃料噴射量補正係数の学習を行う。更に、補正係数設定部Ａ２９は、機関の運転状態に応じて、KF1，KF2，KFm，及びKFmpに基づいて基本燃料噴射量補正係数KFを算出する。そして、本装置は、このようにして今回設定された基本燃料噴射量補正係数KFを次回の補正前基本燃料噴射量Fbasebに乗じることで次回の補正前基本燃料噴射量Fbasebを補正していく（即ち、次回の補正後基本燃料噴射量Fbaseを決定していく）。従って、次回の補正後基本燃料噴射量Fbaseが、燃焼室に供給される混合気の実際の空燃比を目標空燃比abyfrとするために噴射指示すべき燃料噴射量と一致する（近づく）ように決定されていき、この結果、燃焼室に供給される混合気の空燃比が目標空燃比abyfrに向けて制御されつつ混合気供給系の機構的誤差やエバポパージによる空燃比変動が迅速に補償されていく。
【０１４７】
このように、前記構成によれば、パージ時における実際の空燃比補償が、小さな時定数τ3のローパスフィルタＡ２７ｄを備えた第２基本燃料噴射量補正係数取得部Ａ２７によって求められた第２基本燃料噴射量補正係数KF2を用いて行われるので、エバポパージによる空燃比変動が迅速に補償され得る。その一方で、パージ時におけるパージ学習が、大きな時定数τ2のローパスフィルタＡ１７ｄを備えた第１基本燃料噴射量補正係数取得部Ａ１７にて求められた第１基本燃料噴射量補正係数KF1を用いて行われるので、精度良いパージ学習が行われ得る。すなわち、前記構成によれば、エバポパージによる空燃比変動が可及的に迅速に補償されつつ、精度良いパージ学習が行われ得る。
【０１４８】
また、前記構成によれば、非パージ時の実際の空燃比補償とパージ時のパージ学習とが、前記第１基本燃料噴射量補正係数取得部Ａ１７にて求められた第１基本燃料噴射量補正係数KF1を用いて行われるので、簡易な制御系構成によって上述のエバポパージによる空燃比変動の可及的に迅速な補償と精度良いパージ学習とが達成され得る。
【０１４９】
以上、第１基本燃料噴射量補正係数取得部Ａ１７及び第２基本燃料噴射量補正係数取得部Ａ２７が基本燃料噴射量補正値取得部に相当し、第１基本燃料噴射量補正係数取得部Ａ１７のローパスフィルタＡ１７ｄが第１のフィルタに相当し、第２基本燃料噴射量補正係数取得部Ａ２７のローパスフィルタＡ２７ｄが第２のフィルタに相当する。また、補正係数学習部Ａ２８がパージ学習部に相当する。
以上が、本装置による機関の空燃比フィードバック制御の概要である。
【０１５０】
（実際の作動）
次に、前記空燃比制御装置の実際の作動について説明する。
【０１５１】
<空燃比フィードバック制御>
ＣＰＵ７１は、図１０にフローチャートにより示した燃料噴射量Fiの計算、及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が前記所定クランク角度になると、ＣＰＵ７１は「Fi計算・噴射」ルーチン１０００の処理を開始する。
【０１５２】
まず、ステップ１００５にて、エアフローメータ６１により計測された吸入空気流量Gaと、エンジン回転速度NEと、上述したテーブルMapMcとに基づいて、今回の吸気行程を迎える気筒（以下、「燃料噴射気筒」と云うこともある。）に吸入された今回の筒内吸入空気量Mc(k)が推定・決定される。
【０１５３】
次に、ＣＰＵ７１は、ステップ１０１０に進んで、前記推定された筒内吸入空気量Mc(k)を今回の目標空燃比abyfr(k)で除した値を今回の補正前基本燃料噴射量Fbaseb(k)として決定する。その後、ＣＰＵ７１は、ステップ１０１５に進んで、前記補正前基本燃料噴射量Fbaseb(k)に、バックアップＲＡＭ７４に記憶されている基本燃料噴射量補正係数記憶値KFm(j)(j:1,2,3,4)のうち先のステップ１００５にて決定された筒内吸入空気量Mc(k)の値に対応する値を読み出して、本フローにおける「KFm」の値として決定する。
【０１５４】
続いて、ＣＰＵ７１は、ステップ１０２０に進み、メインフィードバック条件が成立しているか否かを判定する。ここで、メインフィードバック条件は、例えば、機関の冷却水温THWが第１所定温度以上であって、上流側空燃比センサ６６が正常（活性状態となっていることを含む）であって、機関の一回転当りの吸入空気量（負荷）が所定値以下であるときに成立する。即ち、メインフィードバック条件が成立することは、上述した「上流側空燃比センサ６６の出力値Vabyfsが正常な値となる場合」に対応する。
【０１５５】
メインフィードバック条件が成立していない場合（ステップ１０２０＝「Ｎｏ」）、ＣＰＵ７１はステップ１０２５に進み、前記決定したKFmの値を基本燃料噴射量補正係数KFとして設定した後、ステップ１０３０に進み、前記補正前基本燃料噴射量Fbaseb(k)に、ステップ１０２５にて設定した基本燃料噴射量補正係数KFを乗じた値を補正後基本燃料噴射量Fbaseとして設定する。次に、ＣＰＵ７１はステップ１０３５に進み、前記(1)式に従って、上述のように求めた補正後基本燃料噴射量Fbaseに、後述するルーチンにて（前回の燃料噴射時点にて）求められている最新のメインフィードバック補正量DFi_mainと、後述するルーチンにて（前回の燃料噴射時点にて）求められている最新のサブフィードバック補正量DFi_subとを加えた値を今回の指令燃料噴射量Fi(k)として求める。そして、ＣＰＵ７１はステップ１０４０に進んで、前記指令燃料噴射量Fi(k)の燃料の噴射指示を行う。具体的には、図示しないルーチンにより別途計算されている燃料噴射開始時期が到来すると、ＣＰＵ７１は、前記指令燃料噴射量Fi(k)に応じた時間だけ燃料噴射気筒のインジェクタ３９を開弁する指示を当該インジェクタ３９に対して行うことで燃料が噴射される。そして、ＣＰＵ７１はステップ１０９５に進んで本ルーチンを一旦終了する。
【０１５６】
メインフィードバック条件が成立している場合（ステップ１０２０＝「Ｙｅｓ」）、ＣＰＵ７１はステップ１０４５に進み、前記パージ条件が成立しているか否かを判断する。
【０１５７】
パージ条件が成立していない場合（ステップ１０４５＝「Ｎｏ」）、現在はパージ中ではないので、ＣＰＵ７１はステップ１０５０に進み、後述するルーチンにて（前回の燃料噴射時点にて）求められている最新の第１基本燃料噴射量補正係数KF1に前記決定したKFmの値を乗じた値を、基本燃料噴射量補正係数KFとして設定する。その後、上述と同様にステップ１０３０，１０３５，１０４０，１０９５を順次実行することで、通常の（非パージ時の）基本燃料噴射量補正を行う。
【０１５８】
パージ条件が成立している場合（ステップ１０４５＝「Ｙｅｓ」）、現在はパージ中であるので、ＣＰＵ７１はステップ１０６０に進み、パージ学習値KFmpが未算出か否かを判断する。
【０１５９】
パージ学習値KFmpが未算出である場合（ステップ１０６０＝「Ｙｅｓ」）、ＣＰＵ７１はステップ１０６５に進み、後述するルーチンにて（前回の燃料噴射時点にて）求められている最新の第２基本燃料噴射量補正係数KF2に前記決定したKFmの値を乗じた値を、基本燃料噴射量補正係数KFとして設定する。その後、上述と同様にステップ１０３０，１０３５，１０４０，１０９５を順次実行することで、パージ学習前のパージ時の基本燃料噴射量補正を行う。すなわち、初回パージ時等、パージ学習がなされていない場合には、上述したように応答性の抑えられた第１基本燃料噴射量補正係数取得部Ａ１７の安定した出力値KF1を用いてパージ学習を行いつつ（具体的なフローは後述する）、パージに対する実際の空燃比補償は、パージ開始直後より、応答性の高められた第２基本燃料噴射量補正係数取得部Ａ２７の出力値KF2を用いて迅速に行われる。
【０１６０】
一方、パージ学習値KFmpが算出済みである場合（ステップ１０６０＝「Ｎｏ」）、ＣＰＵ７１はステップ１０７０に進み、後述するルーチンにて（前回の燃料噴射時点にて）求められている最新の第２基本燃料噴射量補正係数KF2に、前記決定したKFm、及びパージ学習値KFmpの値を乗じた値を、基本燃料噴射量補正係数KFとして設定する。その後、上述と同様にステップ１０３０，１０３５，１０４０，１０９５を順次実行することで、パージ学習後のパージ時の基本燃料噴射量補正を行う。これにより、パージ開始直後であってもパージ学習値をKFmp利用して、可及的にエミッション悪化が抑制された良好な空燃比制御を維持することが可能になる。
【０１６１】
以上により、補正前基本燃料噴射量Fbaseb(k)が、パージの有無やパージ学習の有無等の運転状態に応じた適切な基本燃料噴射量補正係数KFの値によって補正されるとともに、同補正された補正前基本燃料噴射量Fbaseb(k)（即ち、補正後基本燃料噴射量Fbase）がメインフィードバック補正、及びサブフィードバック補正された後の指令燃料噴射量Fi(k)の燃料の噴射指示が燃料噴射気筒に対して噴射される。
【０１６２】
<メインフィードバック補正量の計算>
次に、前記メインフィードバック制御において前記メインフィードバック補正量DFi_mainを算出する際の作動について説明すると、ＣＰＵ７１は図１１にフローチャートにより示した「メインフィードバック補正量DFi_main計算」ルーチン１１００を、燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１は前記ルーチン１１００の処理を開始し、まず、ステップ１１０５にて、メインフィードバック条件が成立しているか否かを判定する。このメインフィードバック条件は、先のステップ１００５におけるメインフィードバック条件と同一である。
【０１６３】
いま、メインフィードバック条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１１０５にて「Ｙｅｓ」と判定してステップ１１１０に進み、現時点（即ち、噴射指示開始時点）の上流側空燃比センサ６６の出力値Vabyfsを図３に示したテーブルに基づいて変換することにより、今回の検出空燃比abyfs(k)を求める。
【０１６４】
次に、ＣＰＵ７１はステップ１１１５に進み、現時点からＮストローク（Ｎ回の吸気行程）前に吸気行程を迎えた気筒の吸入空気量である筒内吸入空気量Mc(k−N)を前記求めた検出空燃比abyfs(k)で除することにより、現時点からＮストローク前の実際の筒内燃料供給量Fc(k−N)を求める。
【０１６５】
次いで、ＣＰＵ７１はステップ１１２０に進み、現時点からＮストローク前の筒内吸入空気量Mc(k−N)を現時点からＮストローク前の目標空燃比abyfr(k−N)で除することにより、現時点からＮストローク前の目標筒内燃料供給量Fcr(k−N)を求める。
【０１６６】
そして、ＣＰＵ７１はステップ１１２５に進んで、前記(5)式に従って、目標筒内燃料供給量Fcr(k−N)から筒内燃料供給量Fc(k−N)を減じた値を筒内燃料供給量偏差DFcとして設定する。つまり、筒内燃料供給量偏差DFcは、Ｎストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。次に、ＣＰＵ７１はステップ１１３０に進み、前記筒内燃料供給量偏差DFcをハイパスフィルタＡ１５によりハイパスフィルタ処理してハイパスフィルタ通過後筒内燃料供給量偏差DFchiを取得する。
【０１６７】
次いで、ＣＰＵ７１はステップ１１３５に進んで、前記(7)式に基づくステップ１１３５内に示した式に従ってメインフィードバック補正量DFi_mainを求め、続くステップ１１４０にてその時点におけるハイパスフィルタ通過後筒内燃料供給量偏差DFchiの積分値SDFchiに前記ステップ１１３０にて求めたハイパスフィルタ通過後筒内燃料供給量偏差DFchiを加えて、新たなハイパスフィルタ通過後筒内燃料供給量偏差の積分値SDFchiを求めた後、ステップ１１９５に進んで本ルーチンを一旦終了する。
【０１６８】
以上により、メインフィードバック補正量DFi_mainが求められ、このメインフィードバック補正量DFi_mainが前述した図１０のステップ１０３５により指令燃料噴射量Fi(k)に反映されることで上述したメインフィードバック制御に基づく機関の空燃比制御が実行される。
【０１６９】
一方、ステップ１１０５の判定時において、メインフィードバック条件が不成立であると、ＣＰＵ７１は当該ステップ１１０５にて「Ｎｏ」と判定してステップ１１４５に進んでメインフィードバック補正量DFi_mainの値を「０」に設定し、その後ステップ１１９５に進んで本ルーチンを一旦終了する。このように、メインフィードバック条件が不成立であるときは、メインフィードバック補正量DFi_mainを「０」としてメインフィードバック制御に基づく機関の空燃比の補正を行わない。
【０１７０】
<サブフィードバック補正量の計算>
次に、前記サブフィードバック制御において前記サブフィードバック補正量DFi_subを算出する際の作動について説明すると、ＣＰＵ７１は図１２にフローチャートにより示した「サブフィードバック補正量DFi_sub計算」ルーチン１２００を、燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１は前記ルーチン１２００の処理を開始し、まず、ステップ１２０５にて、サブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件は、例えば、前述したステップ１０１５（及び、ステップ１１０５）でのメインフィードバック条件に加え、機関の冷却水温THWが前記第１所定温度よりも高い第２所定温度以上のときに成立する。
【０１７１】
いま、サブフィードバック制御条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１２０５にて「Ｙｅｓ」と判定してステップ１２１０に進み、前記(2)式に従って、下流側目標値Voxs_refから現時点の下流側空燃比センサ６７の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。
【０１７２】
次に、ＣＰＵ７１はステップ１２１５に進んで、前記出力偏差量DVoxsをローパスフィルタＡ８によりローパスフィルタ処理してローパスフィルタ通過後出力偏差量DVoxs_lowを取得し、続くステップ１２２０にて、下記(13)式に基づきローパスフィルタ通過後出力偏差量DVoxs_lowの微分値DDVoxs_lowを求める。
DDVoxs_low＝(DVoxs_low−DVoxs_low1)／Δt  ・・・(13)
【０１７３】
前記(13)式において、DVoxs_low1は前回の本ルーチン実行時において後述するステップ１２３５にて設定（更新）されたローパスフィルタ通過後出力偏差量DVoxs_lowの前回値である。また、Δtは本ルーチンが前回実行された時点から今回実行された時間までの時間である。
【０１７４】
次いで、ＣＰＵ７１はステップ１２２５に進み、前記(4)式に従って、サブフィードバック補正量DFi_subを求めた後、ステップ１２３０に進んで、その時点におけるローパスフィルタ通過後出力偏差量の積分値SDVoxs_lowに前記ステップ１２１５にて求めたローパスフィルタ通過後出力偏差量DVoxs_lowを加えて、新たなローパスフィルタ通過後出力偏差量の積分値SDVoxs_lowを求め、続くステップ１２３５にて、前記ステップ１２１５にて求めたローパスフィルタ通過後出力偏差量DVoxs_lowをローパスフィルタ通過後出力偏差量DVoxs_lowの前回値DVoxs_low1として設定した後、ステップ１２９５に進んで本ルーチンを一旦終了する。
【０１７５】
以上により、サブフィードバック補正量DFi_subが求められ、このサブフィードバック補正量DFi_subが前述した図１０のステップ１０３５により指令燃料噴射量Fi(k)に反映されることで上述したサブフィードバック制御に基づく機関の空燃比制御が実行される。
【０１７６】
一方、ステップ１２０５の判定時において、サブフィードバック制御条件が不成立であると、ＣＰＵ７１は当該ステップ１２０５にて「Ｎｏ」と判定してステップ１２４０に進んでサブフィードバック補正量DFi_subの値を「０」に設定し、その後、ステップ１２９５に進んで本ルーチンを一旦終了する。このように、サブフィードバック制御条件が不成立であるときは、サブフィードバック補正量DFi_subを「０」としてサブフィードバック制御に基づく機関の空燃比の補正を行わない。
【０１７７】
<第１基本燃料噴射量補正係数KF1の計算、及びKFm，KFmpの記憶>
次に、第１基本燃料噴射量補正係数KF1を算出する際の作動について説明すると、ＣＰＵ７１は図１３にフローチャートにより示した「第１基本燃料噴射量補正係数KF1の計算」ルーチン１３００を、燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１は前記ルーチン１３００の処理を開始する。ＣＰＵ７１は、まず、ステップ１３０５にて、メインフィードバック条件が成立しているか否かを判定し、「Ｎｏ」と判定する場合、ステップ１３９５に直ちに進んで本ルーチンを一旦終了する。この場合、第１基本燃料噴射量補正係数KF1の計算、及び当該補正係数KF1の値のバックアップＲＡＭ７４への記憶処理が実行されない。このメインフィードバック条件は、先のステップ１００５におけるメインフィードバック条件（及びステップ１１０５におけるサブフィードバック条件）と同一である。
【０１７８】
いま、メインフィードバック条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１３０５にて「Ｙｅｓ」と判定してステップ１３１０に進み、現時点でのエンジン回転速度NEと、先の図１０のステップ１００５にて求めた今回の筒内吸入空気量Mc(k)と、図６に示したテーブルMapMcとに基づいて値Ｍを求めるとともに、現時点からＭストローク前の指令燃料噴射量Fi(k−M)を取得し、更に、先の図１１のステップ１１１０にて求められている今回の検出空燃比abyfs(k)，及び先の図１０のステップ１０１０にて使用した今回の目標空燃比abyfr(k)と、前記(11)式とに基づいて目標基本燃料噴射量Fbasetを求め、続くステップ１３１５にて、前記目標基本燃料噴射量Fbasetと、先の図１０のステップ１０１０にて求められている今回の補正前基本燃料噴射量Fbaseb(k)と、前記(12)式とに基づいて、ローパスフィルタ処理前基本燃料噴射量補正係数KF0を求める。
【０１７９】
次に、ＣＰＵ７１はステップ１３２０に進んで、KF0を時定数τ2に基づき前記ローパスフィルタＡ１７ｄでローパスフィルタ処理することで第１基本燃料噴射量補正係数KF1を取得する。
【０１８０】
続いて、ＣＰＵ７１はステップ１３２５に進んで、上述のパージ条件が成立しているか否かを判定する。
【０１８１】
パージ条件が成立していない場合（ステップ１３２５＝「Ｎｏ」）、現在はパージ中ではないのでＣＰＵ７１はステップ１３３０に進み、先の図１０のステップ１０５０と同様に、前回のパージの終了から所定時間ｔ2が経過したか（すなわちパージ終了直後ではないか）否かを判断する。
【０１８２】
そして、パージ終了直後ではない場合（ステップ１３３０＝「Ｙｅｓ」）、ＣＰＵ７１はステップ１３３５に進んで、図１０のステップ１００５にて決定されている筒内吸入空気量Mc(k)の値に応じて選択される基本燃料噴射量補正係数記憶値KFm(j)(j:1〜4)の値を前記求めた第１基本燃料噴射量補正係数KF1の値に基づいて前記式(14)を用いて更新してバックアップＲＡＭ７４の対応するメモリに記憶した後、ステップ１３９５に進んで本ルーチンを一旦終了する。これにより、メインフィードバック条件が成立している場合において、燃料噴射気筒について燃料噴射開始時期が到来する毎に、第１基本燃料噴射量補正係数KF1の計算、及び当該補正係数KF1の値によるKFmのバックアップＲＡＭ７４への更新・記憶処理が実行されていく。そして、この第１基本燃料噴射量補正係数KF1が次回の燃料噴射気筒について実行される前述した図１０のルーチンのステップ１０５５にて使用されることで次回の補正前基本燃料噴射量Fbasebが今回計算された基本燃料噴射量補正係数KFに従って補正されていく。
【０１８３】
一方、パージ終了直後である場合（ステップ１３３０＝「Ｎｏ」）、上述した図１０にて、ステップ１０５０＝「Ｎｏ」→ステップ１０２０→ステップ１０２５のように、基本燃料噴射量補正係数KFは強制的にKFmに設定されているので、第１基本燃料噴射量補正係数KF1の値によるKFmのバックアップＲＡＭ７４への更新・記憶処理が実行されない。
【０１８４】
パージ条件が成立している場合（ステップ１３２５＝「Ｙｅｓ」）、現在はパージ中であるのでＣＰＵ７１はステップ１３４０に進み、パージ開始から所定時間ｔ0が経過したか（今回のパージ時間ｔPGRがｔ0に達したか）を判断する。そして、今回のパージ時間ｔPGRがｔ0に達するまではステップ１３４０は「Ｎｏ」判定となるので、ＣＰＵ７１はステップ１３９５に進んで本ルーチンを一旦終了する（ステップ１３４５のパージ学習が行われない）。一方、今回のパージ時間ｔPGRがｔ0に達した場合（ステップ１３４０＝「Ｙｅｓ」）、ＣＰＵ７１はステップ１３４５に進んで、パージ学習値KFmpの値を前記求めた第１基本燃料噴射量補正係数KF1の値に基づいて前記式(13)を用いて逐次更新してＲＡＭ７３の対応するメモリに記憶した後、ステップ１３９５に進んで本ルーチンを一旦終了する。
【０１８５】
<第２基本燃料噴射量補正係数KF2の計算>
次に、第２基本燃料噴射量補正係数KF2を算出する際の作動について説明すると、ＣＰＵ７１は図１４にフローチャートにより示した「第２基本燃料噴射量補正係数KF2の計算」ルーチン１４００を、燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１は前記ルーチン１４００の処理を開始する。ＣＰＵ７１は、まず、ステップ１４０５にて、メインフィードバック条件が成立しているか否かを判定し、「Ｎｏ」と判定する場合、ステップ１４９５に直ちに進んで本ルーチンを一旦終了する。この場合、第２基本燃料噴射量補正係数KF2の計算処理が実行されない。このステップ１４０５におけるメインフィードバック条件は、先の図１３のステップ１３０５と同一である。
【０１８６】
いま、メインフィードバック条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１４０５にて「Ｙｅｓ」と判定してステップ１４１０に進み、以降、先の図１３のステップ１３１０〜１３２０と同様のステップ１４１０〜１４２０が実行される。すなわち、ステップ１４１０にて、現時点でのエンジン回転速度NEと、先の図１０のステップ１００５にて求めた今回の筒内吸入空気量Mc(k)と、図６に示したテーブルMapMcとに基づいて値Ｍを求めるとともに、現時点からＭストローク前の指令燃料噴射量Fi(k−M)を取得し、更に、先の図１１のステップ１１１０にて求められている今回の検出空燃比abyfs(k)，及び先の図１０のステップ１０１０にて使用した今回の目標空燃比abyfr(k)と、前記(11)式とに基づいて目標基本燃料噴射量Fbasetを求め、続くステップ１４１５にて、前記目標基本燃料噴射量Fbasetと、先の図１０のステップ１０１０にて求められている今回の補正前基本燃料噴射量Fbaseb(k)と、前記(12)式とに基づいて、ローパスフィルタ処理前基本燃料噴射量補正係数KF0を求める。
【０１８７】
次に、ＣＰＵ７１はステップ１４２０に進んで、KF0を時定数τ3に基づき前記ローパスフィルタＡ２７ｄでローパスフィルタ処理することで第２基本燃料噴射量補正係数KF2を取得し、本ルーチンを一旦終了する。
【０１８８】
以上に説明したように、本発明による内燃機関の空燃比制御装置の実施形態によれば、燃焼室内に吸入される筒内吸入空気量が一定であるという仮定のもと、指令燃料噴射量Fi（実際には、Fi(k−M)）と、上流側空燃比センサ６６による検出空燃比abyfs(k)の積は、燃焼室に供給される混合気の実際の空燃比を目標空燃比abyfr(k)とするために必要な目標基本燃料噴射量Fbasetと、目標空燃比abyfr(k)の積に等しい、という関係から目標基本燃料噴射量Fbaset(＝(abyfs(k)／abyfr(k))・Fi(k−M))を求め、同求めた目標基本燃料噴射量Fbasetを補正前基本燃料噴射量Fbaseb(k)で除することで基本燃料噴射量補正係数KF(＝Fbaset／Fbaseb(k))を求める（実際には、上述の通り、ローパスフィルタ処理が併せて実行される）。
【０１８９】
そして、この基本燃料噴射量補正係数KFを次回の補正前基本燃料噴射量Fbasebに乗じることで次回の補正前基本燃料噴射量Fbasebを補正していく（即ち、次回の補正後基本燃料噴射量Fbaseを決定していく）。従って、次回の補正後基本燃料噴射量Fbaseが、燃焼室に供給される混合気の実際の空燃比を目標空燃比abyfrとするために噴射指示すべき燃料噴射量と一致する（近づく）ように決定されていき、この結果、燃焼室に供給される混合気の空燃比が目標空燃比abyfrに向けて制御されつつ混合気供給系の機構的誤差が迅速に補償されていく。
【０１９０】
更に、本発明による内燃機関の空燃比制御装置の実施形態によれば、パージ時には小さな時定数τ3のローパスフィルタを備えた第２基本燃料噴射量補正係数取得部Ａ２７によって基本燃料噴射量補正を行うことで、エバポパージによる空燃比変動が可及的に速やかに補償され得る。また、非パージ時には大きな時定数τ2のローパスフィルタを備えた第１基本燃料噴射量補正係数取得部Ａ１７によって基本燃料噴射量補正を行うことで、混合気吸気系の機構的誤差に対する安定的な補償が行われる。更に、パージ時には当該第１基本燃料噴射量補正係数取得部Ａ１７における演算結果に基づいてパージ学習を行うことで、比較的正確なパージ学習を行うことができる。これにより、パージ時・非パージ時に拘らず適切な空燃比制御を維持してエミッション悪化を可及的に抑制しつつ、比較的精度良いパージ学習を行い得る。
【０１９１】
（変形例の示唆）
なお、前記実施形態は、上述した通り、本願の出願時点において最良と考えられる本発明の実施の形態を例示したものにすぎないのであって、本発明は上述した実施形態に限定されるものではなく、本発明の本質的部分を変更しない範囲内において種々の変形を施すことができることは当然である。
【０１９２】
例えば、前記実施形態は、基本燃料噴射量補正の他に、メインフィードバック及びサブフィードバックの双方を有していたが、メインフィードバック及びサブフィードバックのうちの一方又は双方がなくても、本発明の本来の作用・効果を何ら減殺するものではない。
【０１９３】
また、前記実施形態における「燃料噴射量」は、字義通りの「燃料量」に限定された概念ではない。例えば、インジェクタ（燃料噴射装置）の駆動時間に関する量、すなわち、燃料噴射時間や駆動パルスのデューティ比、更には燃料量・燃料噴射時間・デューティ比を求めるための係数をも含む概念であることは当然である。
【０１９４】
また、前記実施形態においては、図７に示すように、検出空燃比abyfs(k)、指令燃料噴射量Fi(k−M)、及び補正前基本燃料噴射量Fbaseb(k)の各値からローパスフィルタ処理前基本燃料噴射量補正係数KF0(＝(abyfs(k)・Fi(k−M))／(abyfr(k)・Fbaseb(k)))を求め、当該ローパスフィルタ処理前基本燃料噴射量補正係数KF0をローパスフィルタによりローパスフィルタ処理することで第１及び第２基本燃料噴射量補正係数KF1，KF2を求めるように構成したが、これに代えて、検出空燃比abyfs(k)、指令燃料噴射量Fi(k−M)、及び補正前基本燃料噴射量Fbaseb(k)をそれぞれ各別にローパスフィルタ処理した後に、このローパスフィルタ処理後の各値を用いて第１及び第２基本燃料噴射量補正係数KF1，KF2を求めるようにしてもよい。
【０１９５】
また、前記実施形態におけるローパスフィルタ及びハイパスフィルタに代えて、所定範囲内の周波数以外をカットする所謂バンドパスフィルタを用いることも可能である。更に、「フィルタ」は、周知の通り、所謂ソフトフィルタであって、なまし処理等も含む概念であることは当然である。このなまし処理場合、前記パラメータとしては、なまし係数が相当する。
【０１９６】
また、前記実施形態においては、基本燃料噴射量補正係数KFを求める際に使用される現時点からＭストローク前の指令燃料噴射量Fi(k−M)についての値Ｍ（遅れ時間に相当する値）を、エンジン回転速度NEと、筒内吸入空気量Mc(k)と、図６に示すテーブルMapMcとに基づいて求めているが、値Ｍを所定の一定値としてもよい。
【０１９７】
また、前記実施形態においては、図７に示すように、今回の検出空燃比abyfs(k)、現時点からＭストローク前の指令燃料噴射量Fi(k−M)、今回の目標空燃比abyfr(k)、及び今回の補正前基本燃料噴射量Fbaseb(k)に基づいて基本燃料噴射量補正係数KFを求めているが、今回の検出空燃比abyfs(k)、現時点からＭストローク前の指令燃料噴射量Fi(k−M)、現時点からＭストローク前の目標空燃比abyfr(k−M)、及び現時点からＭストローク前の補正前基本燃料噴射量Fbaseb(k−M)に基づいて基本燃料噴射量補正係数KFを求めるように構成してもよい。
【０１９８】
また、前記各実施形態においては、メインフィードバック制御において、現時点からＮストローク前の目標筒内燃料供給量Fcr(k−N)から現時点からＮストローク前の実際の筒内燃料供給量Fc(k−N)を減じた値である筒内燃料供給量偏差DFcに基づいてメインフィードバック補正量DFi_mainを求めているが、上流側空燃比センサ６６による今回の検出空燃比abyfs(k)から現時点からＮストローク前の目標空燃比abyfr(k−N)を減じた値に基づいてメインフィードバック補正量DFi_mainを求めるように構成してもよい。
【０１９９】
また、前記実施形態においては、パージ時の基本燃料噴射量補正に用いられるローパスフィルタＡ２７ｄの時定数τ3は一定値であったが、パージ率やパージ時間、パージガス濃度等のエバポパージ状態に応じて変更するようにしてもよい。この場合、例えば、図１４のフローチャートにおけるステップ１３２０の直前に、エバポパージ状態に応じて時定数τ3を取得するステップを追加すればよい。
【０２００】
また、前記実施形態においては、キャニスタパージとタンクベーパー導入との双方が特に区別されることなく行われていた。もっとも、前記エバポパージとしては、上述の通り、主に機関停止中にキャニスタ４６に吸蔵された燃料ガスをキャニスタ４６（の吸着剤４６ｄ）から吸気管４１へ放出（パージ）するための「キャニスタパージ」と、燃料タンク４５中に充満しているタンクベーパーを吸気管４１へ導入することで当該タンクベーパーを燃料タンク４５から放出（パージ）するための「タンクベーパー導入」とが区別して行われ得る。
【０２０１】
更に、キャニスタパージを主目的としたエバポパージは、機関運転開始後、上述のパージ条件が成立した場合に速やかに行われる必要がある一方、機関運転開始からしばらく時間が経過するまでは燃料温度はそれほど上昇していないのでタンクベーパー発生量は比較的少ない。したがって、エバポパージは、機関運転開始からのパージ時間の積算値（以下、「パージ積算時間」という。）が所定値に達するまでは、上述のパージ条件成立によって直ちに行われ、上述の所定時間に達した後は、上述のパージ条件成立の他、燃料温センサ６９により燃料タンク４５中の燃料が所定温度以上になったことが検知された場合に行われることが好適である。
【０２０２】
具体的には、例えば、パージ積算時間が所定値に達するまでは、エバポパージガスはキャニスタパージガスが中心であり、このキャニスタパージガス濃度はパージ積算時間とともに減少していくから、エバポパージによる空燃比制御系に対する外乱の度合いもまた、パージ積算時間とともに減少していく。よって、時定数τ3をパージ積算時間とともに減少させていく。この時定数τ3のパージ積算時間に従った減少は、初期値からの所定値のデクリメント、所定の関数やマップに基づく値取得等により行い得る。そして、パージ積算時間が所定値に達した後は、キャニスタ４６中に吸蔵されていた燃料ガスがほとんど放出された状態となっている可能性が高い一方、燃料温度は上昇し、タンクベーパーが大量に発生している可能性が高い。したがって、パージ積算時間が所定値に達した後は、燃料タンク４５に設置された燃料温センサ６９の検出燃料温度に応じてパージガス濃度を推定し、この推定パージガス濃度に対応して所定の時定数マップに基づいて時定数τ3を取得する。ここで、上述の関数や時定数マップは、所定の実験により予め求めておき、ＲＯＭ７２又はバックアップＲＡＭ７４に格納しておくことが可能である。
【０２０３】
これにより、更に、運転状態に応じて異なり得るエバポパージ状態に対応した、より適切なパージ時の基本燃料噴射量補正が行われ、以てパージ時の空燃比変動に起因するエミッションの悪化がより効果的に抑制し得る。
【０２０４】
更に、前記実施形態においては、非パージ時の実際の空燃比制御及びパージ時のパージ学習に供される時定数の大きなローパスフィルタＡ１７ｄ（応答性の抑えられた第１のフィルタ）を備えた第１基本燃料噴射量補正係数取得部Ａ１７と、パージ時の実際の空燃比制御に供される時定数の小さなローパスフィルタＡ２７ｄ（第１のフィルタよりも応答性の高い第２のフィルタ）を備えた第２基本燃料噴射量補正係数取得部Ａ２７とを別個に設けたが、両者を一体として、ローパスフィルタのみを切り替えるようにしてもよい。
【０２０５】
また、第１基本燃料噴射量補正係数取得部Ａ１７は、非パージ時の基本燃料噴射量補正係数記憶値KFmを取得する場合とパージ学習値KFmpを取得する場合とでフィルタ時定数を変更可能に構成されていていてもよい。あるいは、非パージ時の実際の空燃比制御とは別に、パージ学習のみに供される第３のフィルタを備えた第３基本燃料噴射量補正係数取得部を設けるようにしてもよい。
【図面の簡単な説明】
【０２０６】
【図１】本発明の実施形態の空燃比制御装置を適用した内燃機関の概略図である。
【図２】エアフローメータの出力電圧と計測された吸入空気流量との関係を示したグラフである。
【図３】上流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図４】下流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図５】第１の実施形態に係る空燃比制御装置の機能ブロック図である。
【図６】エンジン回転速度及び筒内吸入空気量と、遅れ時間に相当するストローク数との関係を規定するテーブルを示したグラフである。
【図７】基本燃料噴射量補正係数設定部の機能ブロック図である。
【図８】パージ時における空燃比制御の概略を説明するためのタイムチャートである。
【図９】計算された基本燃料噴射量補正係数が筒内吸入空気量に応じて分類されてバックアップＲＡＭに記憶されている様子を示した図である。
【図１０】指令燃料噴射量の計算、及び噴射指示を行うためのルーチンを示したフローチャートである。
【図１１】メインフィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図１２】サブフィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図１３】第１基本燃料噴射量補正係数の計算及び学習を行うためのルーチンを示したフローチャートである。
【図１４】第２基本燃料噴射量補正係数を計算するためのルーチンを示したフローチャートである。
【符号の説明】
【０２０７】
１０…内燃機関、２５…燃焼室、３９…インジェクタ、４５…燃料タンク、４６…キャニスタ、４７…ベーパ捕集管、４８…パージ流路、４９…パージ制御弁（ＶＳＶ）、５１…エキゾーストマニホールド、５３…第１触媒、６６…上流側空燃比センサ、６７…下流側空燃比センサ、７０…電気制御装置、７１…ＣＰＵ、７４…バックアップＲＡＭ、Ａ３…補正前基本燃料噴射量算出部、Ａ４…補正後基本燃料噴射量算出部、Ａ５…指令燃料噴射量算出部、Ａ１７…第１基本燃料噴射量補正係数取得部、Ａ１７ｄ…ローパスフィルタ、Ａ２７…第１基本燃料噴射量補正係数取得部、Ａ２７ｄ…ローパスフィルタ、Ａ２８…補正係数学習部、Ａ２９…補正係数設定部
【図１】
2006125304.tif 000003
【図２】
2006125304.tif 000004
【図３】
2006125304.tif 000005
【図４】
2006125304.tif 000006
【図５】
2006125304.tif 000007
【図６】
2006125304.tif 000008
【図７】
2006125304.tif 000009
【図８】
2006125304.tif 000010
【図９】
2006125304.tif 000011
【図１０】
2006125304.tif 000012
【図１１】
2006125304.tif 000013
【図１２】
2006125304.tif 000014
【図１３】
2006125304.tif 000015
【図１４】
2006125304.tif 000016