(57)【要約】【課題】  混合気供給系の機構的誤差をより簡易かつ迅速に補償することができる、好適な内燃機関の空燃比制御装置を提供すること。【解決手段】  筒内吸入空気量が一定であるとの仮定の下、指令燃料噴射量Fi(k−M)と検出空燃比abyfs(k)の積は機関の実際の空燃比を目標空燃比abyfr(k)とするための目標基本燃料噴射量Fbasetと目標空燃比abyfr(k)の積に等しくなる関係から、Fbaset＝Fi(k−M)・abyfs(k)／abyfr(k)を求め、基本燃料噴射量補正係数KF＝Fbaset／Fbaseb(k)より補正前基本燃料噴射量Fbaseb(k)を補正していく。このKF算出にあたり行うローパスフィルタ処理のフィルタ時定数τ2をエバポパージ条件により可変とする。【選択図】  図５
2006161695.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は、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。以上、補正前基本燃料噴射量算出部Ａ３が基本燃料噴射量取得部に相当する。
【００７５】
補正後基本燃料噴射量算出部Ａ４は、補正前基本燃料噴射量算出部Ａ３により求められた今回の補正前基本燃料噴射量Fbaseb(k)に、後述する基本燃料噴射量補正係数設定部Ａ１７により（前回の吸気行程にて既に）求められている基本燃料噴射量補正係数KFを乗じることで、補正後基本燃料噴射量Fbaseを求める。ここで、基本燃料噴射量補正係数設定部Ａ１７にて用いられる、後述するフィルタ時定数（単に「時定数」ということもある）τ2は、時定数設定部Ａ１８により設定される。基本燃料噴射量補正係数設定部Ａ１７及び時定数設定部Ａ１８については後に詳述する。
【００７６】
このように、本装置は、筒内吸入空気量算出部Ａ１、上流側目標空燃比設定部Ａ２、補正前基本燃料噴射量算出部Ａ３、補正後基本燃料噴射量算出部Ａ４、基本燃料噴射量補正係数設定部Ａ１７、及び時定数設定部Ａ１８を利用して、補正後基本燃料噴射量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）以上の高周波数成分はハイパスフィルタＡ１５を通過するから、過渡運転状態における空燃比の急変に対する補償はメインフィードバック制御により迅速、且つ確実に行われ得る。
【０１０７】
<基本燃料噴射量補正係数の設定>
先に説明したように、前記ＰＩＤコントローラＡ９において積分処理が実行されることにより、サブフィードバック制御において上述した混合気供給系の機構的誤差やエバポパージによる空燃比変動が補償され得る。しかしながら、上述した第１触媒５３の酸素吸蔵機能の影響により機関の空燃比の変化は少し遅れて同第１触媒５３の下流の排気ガスの空燃比の変化として現れるから、サブフィードバック制御のみでは上述の混合気供給系の機構的誤差の急な増大やエバポパージによる空燃比変動を直ちに補償することができず、その結果、一時的にエミッションの排出量が増大する場合が発生するという問題がある。
【０１０８】
従って、前記酸素吸蔵機能による遅れの影響がないメインフィードバック制御においても上述の混合気供給系の機構的誤差やエバポパージによる空燃比変動を直ちに補償できるように構成することが必要である。しかしながら、ハイパスフィルタ処理は微分処理（Ｄ処理）と同等の機能を有する処理であるから、ハイパスフィルタＡ１５通過後の値がＰＩコントローラＡ１６の入力値とされている前記メインフィードバック制御においては、実質的に積分処理が実行され得ない。よって、前記メインフィードバック制御においては前記混合気供給系の機構的誤差やエバポパージによる空燃比変動が補償され得ない。
【０１０９】
以上のことから、メインフィードバック制御、及びサブフィードバック制御による積分処理によることなく前記混合気供給系の機構的誤差やエバポパージによる空燃比変動を直ちに補償する必要がある。このためには、指令燃料噴射量Fiを決定する値のうちメインフィードバック補正量DFi_main、及びサブフィードバック補正量DFi_sub以外の値である補正後基本燃料噴射量Fbaseが、燃焼室に供給される混合気の実際の空燃比を目標空燃比abyfrとするために（すなわち実際に噴射される燃料が必要燃料噴射量となるようにするために）、吸気行程を迎える気筒のインジェクタ３９に噴射指示すべき目標燃料噴射指令値（以下、「目標基本燃料噴射量Fbaset」と称呼する。）と一致する（近づく）ように補正される必要がある。
【０１１０】
そのためには、図５から理解できるように、今回の前記補正前基本燃料噴射量Fbaseb(k)に上述した基本燃料噴射量補正係数設定部Ａ１７により設定される基本燃料噴射量補正係数KFを乗じた値が前記目標基本燃料噴射量Fbasetと一致する（近づく）ように同基本燃料噴射量補正係数KFが設定される必要がある。以下、基本燃料噴射量補正係数設定部Ａ１７による係る基本燃料噴射量補正係数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)式に示した関係が維持され得なくなる可能性がある。従って、係る高周波数の変動による影響をカットするために（ローパス）フィルタ処理を用いることが好ましい。
【０１１７】
以上のことから、基本燃料噴射量補正係数設定部Ａ１７は、その機能ブロック図である図７に示したようにＡ１７ａ〜Ａ１７ｄの各機能ブロック（演算処理部）を含んで構成されている。すなわち、基本燃料噴射量補正係数設定部Ａ１７は、前記遅れ時間Ｌ２に相当するＭストローク前の指令燃料噴射量Fi(k−M)を取得するための指令燃料噴射量遅延部Ａ１７ａと、上流側空燃比センサ６６の出力値をテーブル変換部Ａ１０により空燃比に変換した信号である今回の検出空燃比abyfs(k)，上流側目標空燃比設定部Ａ２からの出力信号である今回の吸気行程の上流側目標空燃比abyfr(k)，及び前記指令燃料噴射量遅延部Ａ１７ａからの出力信号を入力とする目標基本燃料噴射量算出部Ａ１７ｂと、その目標基本燃料噴射量算出部Ａ１７ｂからの出力信号である今回の目標基本燃料噴射量Fbaset，及び補正前基本燃料噴射量算出部Ａ３からの出力信号である今回の補正前基本燃料噴射量Fbaseb(k)を入力とする基本燃料噴射量補正係数設定部Ａ１７ｃと、その基本燃料噴射量補正係数設定部Ａ１７ｃからの出力信号及び時定数設定部Ａ１８からの出力信号を入力とし補正後基本燃料噴射量算出部Ａ４へ基本燃料噴射量補正係数KFを出力するローパスフィルタＡ１７ｄとを備えている。
【０１１８】
ローパスフィルタＡ１７ｄは、ラプラス演算子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の値をローパスフィルタ処理した後の値である基本燃料噴射量補正係数KFを出力する。
【０１２３】
以上、補正後基本燃料噴射量算出部Ａ４、及び基本燃料噴射量補正係数設定部Ａ１７が基本燃料噴射量補正部に相当する。
【０１２４】
<<フィルタ時定数の決定>>
上述した基本燃料噴射量補正係数KFの設定にあたり、パラメータ変更部に相当する時定数設定部Ａ１８は、前記ローパスフィルタＡ１７ｄにて前記KF0の値をローパスフィルタ処理する際の、当該ローパスフィルタＡ１７ｄの応答性に関するパラメータであるフィルタ時定数τ2（上流側空燃比センサ６６による空燃比検出出力信号に対する基本燃料噴射量補正の応答性）を、エバポパージ状態に応じて変更可能に設定するように構成されている。
【０１２５】
すなわち、基本燃料噴射量補正係数設定部Ａ１７における基本燃料噴射量補正は、混合気供給系の機構的誤差等を迅速に補償するために、上流側空燃比センサ６６の出力に基づいて行われるが、その一方で、補正量の大きな振動を可及的に抑えた安定した基本燃料噴射量補正を実現するため、ローパスフィルタＡ１７ｄの時定数τ2は上述の迅速性を阻害しない範囲で可能な限り大きい方が好ましい。一方、エバポパージは空燃比制御系に対する急激且つ大きな外乱に相当するので、これによる空燃比の変動を基本燃料噴射量補正で迅速に補償するためには、ローパスフィルタＡ１７ｄの時定数τ2を可能な範囲で小さくすることが好ましい。そして、エバポパージによる外乱の程度はエバポパージの状態により異なる。
【０１２６】
よって、本装置は、エバポパージによる外乱の状態に応じて、前記ローパスフィルタＡ１７ｄの時定数τ2を変化させて上流側空燃比センサ６６の空燃比検出出力に対する基本燃料噴射量補正の応答性を変化させることで、エバポパージの際にも適切な空燃比制御を可及的に維持し得るように構成されている。具体的には、エバポガス濃度が高いほど、空燃比制御系に対する外乱がより大きくなるので、これに対応してより迅速な空燃比補償を行うべく、前記ローパスフィルタＡ１７ｄの時定数τ2がより小さく設定される。
【０１２７】
但し、エバポガス濃度に応じた時定数τ2の変更は、エバポガス濃度を取得（学習）するまでは実施できない。そこで、エバポガス濃度を取得する前は、パージ開始からの経過時間に応じて時定数τ2を次第に増加させるような制御がなされる。すなわち、エバポガス濃度を取得する前は、今回のトリップにおける最初の回のパージ（以下、「初回パージ」と称する。）の開始直後である蓋然性が高く、この場合、パージガス中の燃料濃度が高くなっている可能性が高い。そして、このような燃料濃度の高いパージガスが吸気管４１に導入されることにより、燃焼室２５に導入される混合気の実際の空燃比が大きく変動してしまう可能性がある。一方、エバポガス濃度を取得する時点においては、比較的に安定的な空燃比制御がなされており信頼できるエバポガス濃度が得られる状態であることが好ましい。そこで、エバポガス濃度を取得する前は、パージ開始時点の時定数τ2を最小として、パージ開始からの経過時間とともに次第に時定数τ2を大きくするような制御が行われる。
【０１２８】
以上、基本燃料噴射量補正係数設定部Ａ１７は、燃料の噴射時点（より具体的には、噴射指示が開始される時点）が到来する毎に、Ａ１７ａ〜Ａ１７ｄの各機能ブロックを利用して基本燃料噴射量補正係数KFを設定する。そして、本装置は、このようにして今回設定された基本燃料噴射量補正係数KFを次回の補正前基本燃料噴射量Fbasebに乗じることで次回の補正前基本燃料噴射量Fbasebを補正していく（即ち、次回の補正後基本燃料噴射量Fbaseを決定していく）。従って、次回の補正後基本燃料噴射量Fbaseが、燃焼室に供給される混合気の実際の空燃比を目標空燃比abyfrとするために噴射指示すべき燃料噴射量と一致する（近づく）ように決定されていき、この結果、燃焼室に供給される混合気の空燃比が目標空燃比abyfrに向けて制御されつつ混合気供給系の機構的誤差やエバポパージによる空燃比変動が迅速に補償されていく。
【０１２９】
<基本燃料噴射量補正係数の記憶処理>
内燃機関の暖機運転中等、「上流側空燃比センサ６６の出力値Vabyfsが正常な値とならない場合」においては、検出空燃比abyfsが排気ガスの空燃比を精度良く表す値とならない。このような場合、検出空燃比abyfsの値を使用して前記(11)式（、及び前記(12)式）に従って算出される基本燃料噴射量補正係数KFの値も、補正前基本燃料噴射量Fbaseb(k)を、目標基本燃料噴射量Fbasetになるように精度良く補正するための値とならない。従って、このような場合、前記(11)式、及び前記(12)式に従って算出される基本燃料噴射量補正係数KFは補正前基本燃料噴射量Fbaseb(k)の補正に使用されるべきでない。
【０１３０】
そこで、本装置は、「上流側空燃比センサ６６の出力値Vabyfsが正常な値となる場合（具体的には、後述するメインフィードバック条件が成立する場合）」に限り、前記(11)式、及び前記(12)式に従って計算された基本燃料噴射量補正係数KFを使用して補正前基本燃料噴射量Fbaseb(k)を補正していくとともに、計算された基本燃料噴射量補正係数KFの値を逐次バックアップＲＡＭ７４に記憶・更新していく。
【０１３１】
ここで、吸入空気流量Gaが増大（従って筒内吸入空気量Mcも増大）すると、エアフローメータ６１によるGaの測定誤差も当然大きくなる等、混合気供給系の機構的誤差が筒内吸入空気量Mcに応じて増大していく（従って、基本燃料噴射量補正係数KFの値が筒内吸入空気量Mcに応じて増大していく）傾向がある。そこで、本装置は、図８に示すように、筒内吸入空気量Mcのとり得る範囲を複数の（本例では、４つの）分類に区分する。そして、本装置は、新たな基本燃料噴射量補正係数KFを計算する毎に、今回の筒内吸入空気量Mc(k)が属する分類を選択するとともに、同選択された分類に対応する基本燃料噴射量補正係数KF(m)(m:1,2,3,4)の値を前記計算された新たな基本燃料噴射量補正係数KFの値に更新・記憶していく。
【０１３２】
一方、本装置は、「上流側空燃比センサ６６の出力値Vabyfsが正常な値とならない場合（具体的には、後述するメインフィードバック条件が成立しない場合）」においては、今回の筒内吸入空気量Mc(k)が属する分類を選択するとともに、バックアップＲＡＭ７４に記憶されている基本燃料噴射量補正係数KF(m)(m:1,2,3,4)のうち同選択された分類に対応する値を基本燃料噴射量補正係数記憶値KFmemoryとして設定する。
【０１３３】
そして、前記(11)式、及び前記(12)式に従って計算される基本燃料噴射量補正係数KFに代えて同基本燃料噴射量補正係数記憶値KFmemoryを使用して補正前基本燃料噴射量Fbaseb(k)を補正していく。これにより、「上流側空燃比センサ６６の出力値Vabyfsが正常な値とならない場合」においても、補正前基本燃料噴射量Fbaseb(k)を、ある程度正確に目標基本燃料噴射量Fbasetに一致させていくことができ、この結果、混合気供給系の機構的誤差がある程度補償されていく。
【０１３４】
但し、エバポパージが行われている場合、このエバポパージによる空燃比制御系に対する外乱が入った状態の基本燃料噴射量補正係数KFの値は、「上流側空燃比センサ６６の出力値Vabyfsが正常な値とならない場合」のための補正値として学習すべきではない。したがって、エバポパージが行われていない場合に限り、上述の基本燃料噴射量補正係数KFのバックアップＲＡＭ７４への記憶・更新が行われる。
【０１３５】
<エバポパージ制御>
ＶＳＶ４９は、上述の通り、所謂「常閉タイプ」の開閉弁であるので、機関停止中における日光等による加熱によって燃料タンク４５中で発生した燃料ガスは、当該燃料タンク４５，ベーパー捕集管４７，キャニスタ４６，及びパージ流路４８のＶＳＶ４９よりもパージガスの流れにおける上流側（キャニスタ４６側）によって形成される閉空間内に充満する。そして、この閉空間内に充満した燃料ガスは、吸着剤４６ｄに吸着されることでキャニスタ４６内に吸蔵される。
【０１３６】
その後、機関運転中であって、（ア）エンジン暖気後、（イ）空燃比フィードバック中、（ウ）今回のトリップにおける、現在の筒内吸入空気量Mcの領域における現在のKF(m)の更新終了、のすべての条件（以下、「パージ条件成立」と称する。）が成立したとき、ＶＳＶ４９が開放される。
【０１３７】
このＶＳＶ４９が開放された場合、吸気管４１にて生じる負圧により、キャニスタ４６の大気ポート４６ｃから前記キャニスタパージ流路を通って吸気管４１に向かう前記第１のガス流が生じる。そして、この第１のガス流が吸着剤４６ｄを通過する際に、吸着剤４６ｄに吸着されている燃料ガスは、吸着剤４６ｄから脱離して、エバポガスとして吸気管４１内へパージされる。また、燃料タンク４５から前記タンクベーパー流路を通って吸気管４１に向かう前記第２のガス流が生じる。そして、この第２のガス流に乗って、燃料タンク４５内のタンクベーパーがエバポガスとして吸気管４１内へパージされる。
【０１３８】
ここで、前記パージ率の制御は、周知の通り、ＶＳＶ４９をデューティ制御することにより行い得る。そして、定常運転時にて通常適用されるパージ率（目標パージ率）は、運転状態により適宜選択され得る（例えばアイドリング時は１０％）。但し、特に初回パージ開始時点において、いきなり目標パージ率のパージが行われると、高濃度のパージガスが吸気通路に導入されるおそれがあり、一時的にエミッションが悪化するおそれがある。そこで、初回パージ時においては、パージ時間が経過して基本燃料噴射量補正、上流側フィードバック、及び下流側フィードバックにより空燃比変動が比較的安定してくるにつれてパージ率を徐々に増加させ、最終的にパージ率を前記目標パージ率まで増加させる。
【０１３９】
そして、基本燃料噴射量補正値に基づいて後述のようにエバポガス濃度を取得する。これにより、エバポガス濃度が比較的正確に取得される。
【０１４０】
すなわち、同一の筒内吸入空気量Mc(k)における、非パージ時とパージ時との間の目標基本燃料噴射量Fbasetの差は、混合気吸気系の機構的誤差の影響が除外された、純粋なエバポパージによる空燃比リッチシフト分の燃料量（以下、「余剰燃料量」と称する。）に相当する。また、同一の筒内吸入空気量Mc(k)においては、補正前基本燃料噴射量Fbaseb(k)は同一である。よって、前記(9)式に基づけば、非パージ時のKF値をKFnonpurge、パージ時のKF値をKFpurgeとすると、KFnonpurgeとKFpurgeとの偏差△KFは上述の余剰燃料量を反映した値となる。したがって、この偏差△KFと、吸入空気流量Gaと、実験等により求められたＶＳＶ４９開放時のパージ流路４８におけるガス流量とを用いれば、エバポガス濃度を取得することができる。
【０１４１】
そして、この△KFを求める際のKFpurgeは、時定数τ2が大きいほど精度の良い値が取得できるので、エバポガス濃度取得の際にはできるだけ時定数τ2が大きい方が好ましい。そこで、上述のように、パージ開始直後から所定時間経過して時定数τ2が或る程度大きくなり、上流側空燃比センサ６６の空燃比検出出力が安定化してきたところでKFpurgeを取得することで、比較的正確なエバポガス濃度が求められる。
【０１４２】
２回目以降のパージ時では、上述のようにして取得されたエバポガス濃度現在値に応じて時定数τ2を設定することで、的確な基本燃料噴射量補正が行われ、以て適切な空燃比制御が維持され得る。
以上が、本装置による機関の空燃比フィードバック制御の概要である。
【０１４３】
（実際の作動）
次に、前記空燃比制御装置の実際の作動について説明する。
【０１４４】
<空燃比フィードバック制御>
ＣＰＵ７１は、図９にフローチャートにより示した燃料噴射量Fiの計算、及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が前記所定クランク角度になると、ＣＰＵ７１は「Fi計算・噴射」ルーチン９００の処理を開始する。
【０１４５】
まず、ステップ９０５にて、エアフローメータ６１により計測された吸入空気流量Gaと、エンジン回転速度NEと、上述したテーブルMapMcとに基づいて、今回の吸気行程を迎える気筒（以下、「燃料噴射気筒」と云うこともある。）に吸入された今回の筒内吸入空気量Mc(k)が推定・決定される。
【０１４６】
次に、ＣＰＵ７１は、ステップ９１０に進んで、前記推定された筒内吸入空気量Mc(k)を今回の目標空燃比abyfr(k)で除した値を今回の補正前基本燃料噴射量Fbaseb(k)として決定する。次いで、ＣＰＵ７１は、ステップ９１５に進んで、メインフィードバック条件が成立しているか否かを判定する。ここで、メインフィードバック条件は、例えば、機関の冷却水温THWが第１所定温度以上であって、上流側空燃比センサ６６が正常（活性状態となっていることを含む）であって、機関の一回転当りの吸入空気量（負荷）が所定値以下であるときに成立する。即ち、メインフィードバック条件が成立することは、上述した「上流側空燃比センサ６６の出力値Vabyfsが正常な値となる場合」に対応する。
【０１４７】
メインフィードバック条件が成立している場合（ステップ９１５＝「Ｙｅｓ」）、ＣＰＵ７１はステップ９２０に進み、前記補正前基本燃料噴射量Fbaseb(k)に、後述するルーチンにて（前回の燃料噴射時点にて）求められている最新の基本燃料噴射量補正係数KFを乗じた値を補正後基本燃料噴射量Fbaseとして設定する。
【０１４８】
一方、メインフィードバック条件が成立していない場合（ステップ９１５＝「Ｎｏ」）、ＣＰＵ７１はステップ９２５に進み、前記補正前基本燃料噴射量Fbaseb(k)に、バックアップＲＡＭ７４に記憶されている基本燃料噴射量補正係数KF(m)(m:1,2,3,4)のうち先のステップ９０５にて決定された筒内吸入空気量Mc(k)の値から選択されたKF(m)の値を基本燃料噴射量補正係数記憶値KFmemoryとして設定する。続いて、ＣＰＵ７１はステップ９３０に進み、前記補正前基本燃料噴射量Fbaseb(k)に、ステップ９２５にて設定した基本燃料噴射量補正係数記憶値KFmemoryを乗じた値を補正後基本燃料噴射量Fbaseとして設定する。
【０１４９】
次に、ＣＰＵ７１はステップ９３５に進み、前記(1)式に従って、上述のように求めた補正後基本燃料噴射量Fbaseに、後述するルーチンにて（前回の燃料噴射時点にて）求められている最新のメインフィードバック補正量DFi_mainと、後述するルーチンにて（前回の燃料噴射時点にて）求められている最新のサブフィードバック補正量DFi_subとを加えた値を今回の指令燃料噴射量Fi(k)として求める。
【０１５０】
そして、ＣＰＵ７１はステップ９４０に進んで、前記指令燃料噴射量Fi(k)の燃料の噴射指示を行う。具体的には、図示しないルーチンにより別途計算されている燃料噴射開始時期が到来すると、ＣＰＵ７１は、前記指令燃料噴射量Fi(k)に応じた時間だけ燃料噴射気筒のインジェクタ３９を開弁する指示を当該インジェクタ３９に対して行うことで燃料が噴射される。そして、ＣＰＵ７１はステップ９９５に進んで本ルーチンを一旦終了する。
【０１５１】
以上により、補正前基本燃料噴射量Fbaseb(k)が上述した目標基本燃料噴射量Fbasetに一致するように補正されるとともに、同補正された補正前基本燃料噴射量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を「０」としてサブフィードバック制御に基づく機関の空燃比の補正を行わない。
【０１６７】
<エバポパージ制御>
次に、エバポパージを行う場合の、ＣＰＵ７１によるパージ率制御（ＶＳＶ４９のデューティ制御）について説明する。このパージ率制御においては、上述の通り、今回のパージが初回パージの場合、パージ率がパージ時間とともに徐々に増加するように制御される一方、２回目以降のパージの場合、パージ率が常に目標パージ率に設定される。
【０１６８】
ＣＰＵ７１は図１２にフローチャートにより示した「エバポパージ制御」ルーチン１２００を、燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、まずＣＰＵ７１はステップ１２０５に進み、パージ条件が成立しているか否かを判定する。
【０１６９】
パージ条件が成立していない場合（ステップ１２０５＝「Ｎｏ」）、ＣＰＵ７１は、ステップ１２１０に進んでパージ率ＰＧＲを０に設定し、ステップ１２１５に進んでＰＧＲ＝０に基づいて（ＶＳＶ４９のＯＮデューティ比が０となるように）ＶＳＶ４９を制御し、ステップ１２９５に進んで本ルーチンを一旦終了する。
【０１７０】
パージ条件が成立している場合（ステップ１２０５＝「Ｙｅｓ」）、ＣＰＵ７１はステップ１２２０に進んで、今回のパージが初回パージであるか否かを判定する。
【０１７１】
まず、今回のパージが初回パージである場合（ステップ１２２０＝「Ｙｅｓ」）、ＣＰＵ７１は、パージ率ＰＧＲが０からステップ値ＰＧＲsずつ大きくなるようにパージ率ＰＧＲを制御する。すなわち、ＣＰＵ７１は、ステップ１２２５に進んで、パージ率ＰＧＲが目標パージ率ＰＧＲtに達したか否かを判定する。そして、パージ率ＰＧＲが目標パージ率ＰＧＲtに達する前（ステップ１２２５＝「Ｎｏ」）は、ＣＰＵ７１はステップ１２３０にてパージ率ＰＧＲをステップ値ＰＧＲsだけインクリメントし、ステップ１２１５に進んで所定パージ率となるようにＶＳＶ４９をデューティ制御する。一方、パージ率ＰＧＲが目標パージ率ＰＧＲtに達した場合（ステップ１２２５＝「Ｙｅｓ」）、ＣＰＵ７１はそのままステップ１２１５に進んで、パージ率ＰＧＲが目標パージ率ＰＧＲtとなるようにＶＳＶ４９をデューティ制御する。
【０１７２】
また、今回のパージが２回目以降のパージである場合（ステップ１２２０＝「Ｎｏ」）、ＣＰＵ７１はステップ１２３５に進んでパージ率ＰＧＲを目標パージ率ＰＧＲtに設定した後、ステップ１２１５に進んで、パージ率ＰＧＲが目標パージ率ＰＧＲtとなるようにＶＳＶ４９をデューティ制御する。
【０１７３】
<基本燃料噴射量補正係数の計算、及び記憶>
次に、基本燃料噴射量補正係数KFを算出する際の作動について説明すると、ＣＰＵ７１は図１３にフローチャートにより示した「基本燃料噴射量補正係数の計算」ルーチン１３００を、燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１は前記ルーチン１３００の処理を開始する。ＣＰＵ７１は、まず、ステップ１３０５にて、メインフィードバック条件が成立しているか否かを判定し、「Ｎｏ」と判定する場合、ステップ１３９５に直ちに進んで本ルーチンを一旦終了する。この場合、基本燃料噴射量補正係数KFの計算、及び同補正係数KFの値のバックアップＲＡＭ７４への記憶処理が実行されない。このメインフィードバック条件は、先のステップ９１５（及び、ステップ１００５）におけるメインフィードバック条件と同一である。
【０１７４】
いま、メインフィードバック条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１３０５にて「Ｙｅｓ」と判定してステップ１３１０に進み、現時点でのエンジン回転速度NEと、先の図９のステップ９０５にて求めた今回の筒内吸入空気量Mc(k)と、図６に示したテーブルMapMcとに基づいて値Ｍを求めるとともに、現時点からＭストローク前の指令燃料噴射量Fi(k−M)を取得し、更に、先の図１０のステップ１００５にて求められている今回の検出空燃比abyfs(k)，及び先の図９のステップ９１０にて使用した今回の目標空燃比abyfr(k)と、前記(11)式とに基づいて目標基本燃料噴射量Fbasetを求め、続くステップ１３１５にて、前記目標基本燃料噴射量Fbasetと、先の図９のステップ９１０にて求められている今回の補正前基本燃料噴射量Fbaseb(k)と、前記(12)式とに基づいて、ローパスフィルタ処理前基本燃料噴射量補正係数KF0を求める。
【０１７５】
次に、ＣＰＵ７１はステップ１３２０に進んで、前記ローパスフィルタＡ１７ｄにおける時定数τ2を時定数設定部Ａ１８から取得する（時定数τ2の設定の詳細は後述する）。ここで、ローパスフィルタの時定数τ2は、後述する図１４のルーチンにより所定の周期毎に繰り返し計算されてＲＡＭ７３に最新値が記憶されているので、このステップ１３２０では、当該ＲＡＭ７３から最新のτ2の値が読み出される。続いて、ＣＰＵ７１はステップ１３２５に進んで、KF0を時定数τ2に基づきローパスフィルタ処理することで基本燃料噴射量補正係数KFを取得する。
【０１７６】
続いて、ＣＰＵ７１はステップ１３３０に進んで、上述のパージ条件が成立しているか否かを判定する。上述した通り、パージ条件は、暖機運転が終了し、今回のトリップにおいてKF(m)(m:1〜4)の値が更新されない限り成立しないので、今回のトリップにて上述のステップ１３３５が繰り返し行われることによってKF(m)(m:1〜4)の値が更新されるまではステップ１３３０は「Ｎｏ」判定となる。よって、ＣＰＵ７１はステップ１３３５に進んで、図９のステップ９０５にて決定されている筒内吸入空気量Mc(k)の値に応じて選択されるKF(m)(m:1〜4)の値を前記求めた基本燃料噴射量補正係数KFの値に更新し、同更新したKF(m)の値をバックアップＲＡＭ７４の対応するメモリに記憶した後、ステップ１３９５に進んで本ルーチンを一旦終了する。これにより、メインフィードバック条件が成立している場合において、燃料噴射気筒について燃料噴射開始時期が到来する毎に、基本燃料噴射量補正係数KFの計算（更新）、及び同補正係数KFの値のバックアップＲＡＭ７４への記憶処理が実行されていく。そして、この基本燃料噴射量補正係数KFが次回の燃料噴射気筒について実行される前述した図９のルーチンのステップ９２０にて使用されることで次回の補正前基本燃料噴射量Fbasebが今回計算した基本燃料噴射量補正係数KFに従って補正されていく。
【０１７７】
<<エバポガス濃度の取得>>
一方、パージ条件が成立している場合（ステップ１３３０＝「Ｙｅｓ」）、当該内燃機関１０ではエバポパージがなされているため、ＣＰＵ７１はステップ１３４５に進んで、今回の筒内吸入空気量Mc(k)に対応するKF(m)の記憶値（すなわち非パージ時のKF値）をバックアップＲＡＭ７４から読み出して上述のKFnonpurgeとし、今回（すなわちパージ時）のKF値を上述のKFpurgeとして、これらの偏差△KFに基づいて上述のようにエバポガス濃度を取得し、ステップ１３９５に進んで本ルーチンを一旦終了する。
【０１７８】
以上に説明したように、本発明による内燃機関の空燃比制御装置の実施形態によれば、燃焼室内に吸入される筒内吸入空気量が一定であるという仮定のもと、指令燃料噴射量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に向けて制御されつつ混合気供給系の機構的誤差が迅速に補償されていく。
【０１８０】
また、上述の基本燃料噴射量補正係数を利用することで、エバポパージ濃度が簡単かつ迅速に取得され得る。
【０１８１】
更に、本発明による内燃機関の空燃比制御装置の実施形態によれば、以下の通り、エバポパージ状態に応じてローパスフィルタＡ１７ｄの応答性に関するパラメータとしての時定数τ2が変更されることで、初回パージの初期におけるエミッション悪化を抑制しつつ、比較的正確にエバポパージ濃度が取得できるとともに、当該濃度取得後のパージによる空燃比変動を的確に補償することができ、以てエバポパージに起因するエミッションの悪化が可及的に防止し得る。
【０１８２】
<基本燃料噴射量補正係数設定部のフィルタ時定数の決定>
次に、基本燃料噴射量補正係数設定部Ａ１７におけるローパスフィルタＡ１７ｄの時定数τ2を、時定数設定部Ａ１８により設定する際の作動について説明する。
【０１８３】
この時定数τ2の決定は、図１４にフローチャートにより示した「フィルタ時定数τ2の決定」ルーチン１４００を、燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行することによって行われる。
【０１８４】
まず、ＣＰＵ７１は、ステップ１４０５にて、メインフィードバック条件が成立しているか否かを判定し、「Ｎｏ」と判定する場合、ステップ１４９５に直ちに進んで本ルーチンを一旦終了する。この場合、フィルタ時定数の決定処理が実行されない。このメインフィードバック条件は、先のステップ９１５等におけるメインフィードバック条件と同一である。
【０１８５】
いま、メインフィードバック条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１４０５にて「Ｙｅｓ」と判定してステップ１４１０に進む。そして、ＣＰＵ７１は、ステップ１４１０にて、上述のパージ条件が成立したか否かを判定し、パージ条件不成立（ステップ１４１０＝「Ｎｏ」）であればステップ１４１５に進み、時定数τ2を非パージ時用の時定数τ20に設定してステップ１４９５に進んで本ルーチンを一旦終了する。
【０１８６】
ここで最初に、初回パージが行われる場合について説明すると、ステップ１４１０の判定が「Ｙｅｓ」となり、ＣＰＵ７１はステップ１４２０に進んで、図１３のステップ１３４５によってエバポガス濃度が取得済みであるか否かを判定する。ここでの説明では、エバポガス濃度は取得済みではないので（ステップ１４２０＝「Ｎｏ」）、ＣＰＵ７１はステップ１４２５に進んで、パージ開始からの経過時間に応じて、図１５に示す時定数マップに基づいて時定数τ2を取得し、ステップ１４９５で一旦本ルーチンを終了する。
【０１８７】
この図１５の時定数マップは、初回パージ時であって、且つエバポガス濃度の取得前に用いられるものであって、ＲＯＭ７２に記憶されている。そして、図１５の時定数マップは、パージ開始時の時定数τ2が最も小さく、パージ開始からの時間が経過するに応じて時定数τ2が次第に大きくなるように作成されている。
【０１８８】
すなわち、初回パージの開始直後の場合、比較的濃度の高いパージガスが吸気管４１に導入されて実際の空燃比が大きく且つ急激にリッチ側に変移する一方、メイン・サブフィードバックにおける積分項による補償では当該変移を迅速に補償することができない。そこで、この場合、基本燃料噴射量補正係数設定部Ａ１７のローパスフィルタＡ１７ｄの時定数τ2を小さくすることにより、パージによる空燃比の変移を基本燃料噴射量補正で迅速に補償し得る。そして、メイン・サブフィードバック及び基本燃料噴射量補正により、パージによる空燃比変動が或る程度補償され、パージ開始直後よりも空燃比変動が比較的安定化してくるにつれて、時定数τ2を次第に大きくしていくことで、安定的な基本燃料噴射量補正を行いつつ、このときの基本燃料噴射量補正係数KFを用いて比較的正確なエバポガス濃度を取得し得る。そして、このように比較的正確なエバポガス濃度を得ることで、それ以降のパージ時における空燃比制御を簡易且つ適切に行うことが可能となる。この図１５の時定数マップは、実験やシミュレーションにより予め作成することができる。
【０１８９】
そして、エバポガス濃度を取得した後は、ステップ１４２０の判定が常に「Ｙｅｓ」となり（２回目以降のパージ時も同様である）、ＣＰＵ７１は、ステップ１４４０にて、エバポガス濃度現在値と図１６に示す時定数マップとに基づいて時定数τ2が取得される。その後、ＣＰＵ７１はステップ１４９５に進んで本ルーチンを一旦終了する。
【０１９０】
この図１６の時定数マップは、エバポガス濃度が高いほど、時定数τ2が小さくなるように予め作成されており、ＲＯＭ７２に記憶されている。この図１６の時定数マップは、例えば、既知の濃度のエバポガスを吸気管４１に導入しつつ、時定数τ2を変更した場合に最もエミッションの少なかったτ2を求める実験やシミュレーションを、複数のエバポガス濃度で実施して、エバポガス濃度と時定数τ2のプロットを作成することにより得られる。これにより、エバポガス濃度が高い場合には、基本燃料噴射量補正におけるフィルタ時定数τ2を小さくして基本燃料噴射量補正の応答性を高めることで、当該エバポガスの吸気管４１への導入による混合気の空燃比の大きな変動が基本燃料噴射量補正により迅速に補償される。一方、エバポガス濃度が低い場合には、基本燃料噴射量補正におけるフィルタ時定数τ2を大きくして基本燃料噴射量補正の応答性を下げることで、安定した基本燃料噴射量補正による的確な空燃比制御を維持することができる。
【０１９１】
（第２実施形態）
続いて、図１７及び図１８を用いて、第２実施形態による空燃比制御装置について説明する。なお、第１の実施形態と同様の作用・機能を有する機能ブロックやフローチャート，ステップについては、第１の実施形態に係る図１〜図１６に関する説明や図示を援用するものとする（下記の第３実施形態も同様）。
【０１９２】
第２実施形態に係る空燃比制御装置においては、図１７に示す通り、「フィルタ時定数τ2の決定」ルーチン１４００の、パージ条件成立判断（ステップ１４１０＝Ｙｅｓ）の後、現在のパージ率ＰＧＲと図１８に示す時定数マップとから時定数τ2を取得するステップ１４５０を有する。
【０１９３】
そして、本実施形態においては、図１８に示すように、パージ率が大きいほど、時定数τ2が小さくされ、これにより基本燃料噴射量補正の応答性が上がるように空燃比制御がなされる。すなわち、インジェクタ３９により噴射される燃料量とは異なり、エバポガス中の燃料量は、燃料温度等の運転状態によって左右される不確定な量である。よって、パージ率が大きくなるほど、上述のような不確定量の燃料を含有するエバポガスの混合気中の割合が高くなり、これにより不用意な空燃比変動が生じ得、エミッションの悪化が生じ得る。したがって、パージ率の上昇による、このような不用意な空燃比変動によるエミッションの悪化を可及的に防止するため、パージ率が大きくなるほどフィルタ時定数τ2を小さくして、より迅速な基本燃料噴射量補正を行うようにする。この図１８の時定数マップも、実験やシミュレーションにより予め作成することができる。
【０１９４】
（第３実施形態）
更に、図１９〜図２２を用いて、第３実施形態による空燃比制御装置について説明する。かかる第３実施形態においては、内燃機関１１０は、図１９に示す通り、燃料タンク４５からキャニスタ４６のタンクポート４６ａに通じる燃料ガス流路であるベーパー捕集管４７の他に、燃料タンク４５からキャニスタ４６を介さずに直接パージ流路４８に通じる（キャニスタ４６のパージポート４６ｂからのキャニスタパージガス流路と合流する）バイパス流路４７ａを備えている。バイパス流路４７ａには、バイパス流路弁４７ｂが介装されている。また、ベーパー捕集管４７には捕集弁４７ｃが介装されているとともに、バイパス流路４７ａとパージ流路４８との合流点とキャニスタ４６のパージポート４６ｂとの間のパージ流路４８にはキャニスタパージ弁４８ａが介装されている。
【０１９５】
そして、当該内燃機関１１０は、運転状態に応じて、ＶＳＶ４９、バイパス流路弁４７ｂ、捕集弁４７ｃ、及びキャニスタパージ弁４８ａの開閉状態を切り替えることで、エバポガス流路の構成を切り替え、このエバポガス流路の構成の切り替えに基づくエバポパージ状態の変化に応じて、時定数τ2を取得するための時定数マップを変更可能に構成されている。
【０１９６】
具体的には、例えば、燃料温度が所定温度以上の場合には、タンクベーパーが多量に（高濃度で）発生していることが予測されるので、この場合には、燃料タンク４５内の多量のタンクベーパーをより迅速に排出するため、捕集弁４７ｃ及びキャニスタパージ弁４８ａが閉弁され、バイパス流路弁４７ｂが開弁される。すなわち、タンクベーパー導入のみが行われる（このように、タンクベーパー導入のみが行われることを、以下、単に「タンクベーパー導入」と称する。）。このタンクベーパー導入が行われている場合（ステップ１４６０＝「Ｙｅｓ」）、タンクベーパー濃度が取得済みであれば（ステップ１４６５＝「Ｙｅｓ」）、タンクベーパー濃度値と図２１に示す時定数マップとから時定数τ2が取得される（ステップ１４７０）。タンクベーパー濃度が取得済みでない場合（ステップ１４６５＝「Ｎｏ」）、ステップ１４２５と同様に作動するステップ１４７５により、キャニスタパージの開始時間からの経過時間と図１５の時定数マップとに基づいて時定数τ2が取得される。
【０１９７】
また、例えば、燃料温度が低い場合、上述のタンクベーパー導入ではなく、通常のエバポパージが行われる。すなわち、捕集弁４７ｃ及びキャニスタパージ弁４８ａが開弁され、バイパス流路弁４７ｂが閉弁されることで、エバポガス流路の構成が上述の第１の実施形態と同様となり、キャニスタパージガスとタンクベーパーとが同時に導入される。このように今回のパージが通常のエバポパージである場合（上述のタンクベーパー導入が行われていない場合：ステップ１４６０＝「Ｎｏ」）、ステップ１４８０により、エバポガス濃度の取得の有無が判定される。そして、エバポガス濃度がまだ取得されていない場合には（ステップ１４８０＝「Ｎｏ」）、上述のステップ１４７０により、パージの開始時間からの経過時間と図１５の時定数マップとに基づいて時定数τ2が取得される。エバポガス濃度が取得済みである場合（ステップ１４８０＝「Ｙｅｓ」）、図１４のステップ１４４０と同様に作動するステップ１４８５により、エバポガス濃度と図２２の時定数マップ（この図２２の時定数マップは図１６の時定数マップと同様である）とから時定数τ2が取得される。
【０１９８】
以上の通り、本実施形態によれば、エバポパージの状態に応じたより精度の高い空燃費制御が可能になる。
【０１９９】
（変形例の示唆）
なお、前記各実施形態は、上述した通り、本願の出願時点において最良と考えられる本発明の実施の形態を例示したものにすぎないのであって、本発明は上述した各実施形態に限定されるものではなく、本発明の本質的部分を変更しない範囲内において種々の変形を施すことができることは当然である。
【０２００】
例えば、前記各実施形態は、基本燃料噴射量補正の他に、メインフィードバック及びサブフィードバックの双方を有していたが、メインフィードバック及びサブフィードバックのうちの一方又は双方がなくても、本発明の本来の作用・効果を何ら減殺するものではない。
【０２０１】
また、前記各実施形態における「燃料噴射量」は、字義通りの「燃料量」に限定された概念ではない。例えば、インジェクタ（燃料噴射装置）の駆動時間に関する量、すなわち、燃料噴射時間や駆動パルスのデューティ比、更には燃料量・燃料噴射時間・デューティ比を求めるための係数をも含む概念であることは当然である。
【０２０２】
また、前記各実施形態においては、図７に示した基本燃料噴射量補正係数設定部Ａ１７にて、検出空燃比abyfs(k)，上流側目標空燃比abyfr(k)，及び現時点からＭストローク（Ｍ回の吸気行程）前の指令燃料噴射量Fi(k−M)から前記(11)式に従って目標基本燃料噴射量Fbasetを求めた後、この目標基本燃料噴射量Fbasetと補正前基本燃料噴射量Fbaseb(k)との比である基本燃料噴射量補正係数KFを求め、その後、補正後基本燃料噴射量算出部Ａ４にて、基本燃料噴射量補正係数KFを補正前基本燃料噴射量Fbaseb(k)と乗算することで補正後基本燃料噴射量Fbaseを求めるようにしていた。この点、目標基本燃料噴射量Fbasetも、前回の吸気行程にて求められた混合気供給系の機構的誤差を補償して、今回の吸気行程において燃焼室に供給される混合気の実際の空燃比を今回の上流側目標空燃比abyfr(k)と一致させるようにするための必要燃料噴射量に相当する燃料噴射量（すなわち目標燃料噴射指令値）である。したがって、例えば、基本燃料噴射量補正係数設定部Ａ１７と補正後基本燃料噴射量算出部Ａ４とを統合して「目標燃料噴射指令値算出部」とし、前記目標基本燃料噴射量Fbasetを指令燃料噴射量算出部Ａ５の入力として直接用いるようにしてもよい。
【０２０３】
また、前記各実施形態においては、図７に示すように、基本燃料噴射量補正係数設定部Ａ１７に備えられたローパスフィルタは、検出空燃比abyfs(k)、指令燃料噴射量Fi(k−M)、及び補正前基本燃料噴射量Fbaseb(k)の各値そのものからローパスフィルタ処理前基本燃料噴射量補正係数KF0(＝(abyfs(k)・Fi(k−M))／(abyfr(k)・Fbaseb(k)))を求め、同ローパスフィルタ処理前基本燃料噴射量補正係数KF0をローパスフィルタによりローパスフィルタ処理することで基本燃料噴射量補正係数KFを求めるように構成したが、これに代えて、検出空燃比abyfs(k)、指令燃料噴射量Fi(k−M)、及び補正前基本燃料噴射量Fbaseb(k)をそれぞれ各別にローパスフィルタ処理した後に、このローパスフィルタ処理後の各値を用いて基本燃料噴射量補正係数KFを求めるようにしてもよい。
【０２０４】
また、前記各実施形態におけるローパスフィルタ及びハイパスフィルタに代えて、所定範囲内の周波数以外をカットする所謂バンドパスフィルタを用いることも可能である。更に、「フィルタ」は、周知の通り、所謂ソフトフィルタであって、なまし処理等も含む概念であることは当然である。このなまし処理場合、前記パラメータとしては、なまし係数αが相当する。
【０２０５】
また、前記各実施形態においては、基本燃料噴射量補正係数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を求めるように構成してもよい。
【０２０８】
また、前記各実施形態においては、非パージ時のKF値であるKFnonpurgeとパージ時のKF値であるKFpurgeとの偏差△KFに基づいてエバポガス濃度を取得していたが、これに代えて、パージ流路４８内に蒸発燃料濃度センサを配置して、この蒸発燃料濃度センサの出力信号に基づいてエバポガス濃度を取得するようにしてもよい。
【０２０９】
また、前記各実施形態においては、パージ状態に応じて時定数を設定していたが、これに代えて、上流側空燃比センサ６６の応答性等、パージ状態以外の要素に基づいて時定数を取得し、この取得した時定数を、パージ状態に応じた係数を乗算することで修正するように構成してもよい。この場合、上述の各実施形態における各種の時定数マップの代わりに「係数マップ」が用いられることとなる。この係数マップは、上述の各実施形態における時定数マップと同様に作成することができ、増減の様子も各時定数マップと同様である。
【０２１０】
また、前記第１の実施形態においては、上述の（ｉ）燃料温度が低くエバポガスが主にキャニスタパージガスである場合、及び（ii）燃料温度が高くエバポガス中にタンクベーパーが多く含まれる場合、の２つの場合を制御上区別していなかったが、これに代えて、例えば、燃料温度に応じて時定数マップを変更する等、エバポガス中のタンクベーパーの割合に応じて異なる制御を行うようにしてもよい。
【０２１１】
また、前記第３の実施形態における図１９の構成のような、エバポガス流路の構成を切り替え可能な構成において、通常のエバポパージモードとタンクベーパー導入モードとキャニスタパージモード（キャニスタパージガスだけがパージ流路４８を介して吸気管４１に導入されること：以下同じ）とを切り替え可能とし、これらの間の切り替えによって時定数マップの切り替え等の制御上の切り替えが行われるようにしてもよい。これにより、タンクベーパー導入モードとすることでキャニスタパージをカットしてタンクベーパー濃度を常時算出することができ、キャニスタパージモードとすることでタンクベーパーをカットしてキャニスタ４６内の燃料吸蔵量を把握することができる。したがって、タンクベーパー量やキャニスタ４６内の燃料吸蔵量に応じた最適なエバポパージ状態を選択することが可能となるとともに、当該エバポパージ状態に応じたより精密な空燃費制御を行うことが可能となる。
【０２１２】
また、上述のこれらの間で優先順位を設けるようにしてもよい。具体的には、例えば、機関が所定時間以上停止された後（長時間の駐車の後）の内燃機関１１０の運転開始後の最初のパージ条件成立時においては、それに先立つ機関停止中にてキャニスタ４６に多量の蒸発燃料ガスが吸蔵されていることが予測される一方、内燃機関１１０の運転開始からの経過時間が短いために、インジェクタ３９と燃料タンク４５とを結ぶ液体燃料の循環経路を循環中の燃料はそれほど加熱されておらず、タンクベーパー発生量は少ないと予測される。よって、キャニスタ４６内の吸蔵気化燃料量を可及的に減少させて次回の機関停止時におけるタンクベーパーの吸蔵可能量を確保する（気化燃料の大気への放出を可及的に防止する）ため、始動直後にはキャニスタパージが優先的に行われるようにしてもよい（この場合、長時間の駐車の有無を判別するための、機関停止時間を積算するタイマ等を備えているとよい。）。
【０２１３】
すなわち、例えば、始動後の初回のエバポパージ時にはキャニスタパージのみが行われ（すなわち、バイパス流路弁４７ｂ及び捕集弁４７ｃは閉鎖されてキャニスタパージ弁４８ａが開放され）、２回目以降のエバポパージ時には、キャニスタパージガス濃度が所定濃度以下になった場合や、キャニスタパージ積算時間が所定時間以上になった場合はそれ以降のキャニスタパージは行わないようにする一方、燃料温度が所定温度以上になった場合にはタンクベーパー導入のみを行うようにしてもよい。
【０２１４】
また、前記第１の実施形態においては、エバポガス濃度取得前の場合、図１５の時定数マップを用いて、パージ開始時間からの経過時間に応じてフィルタ時定数τ2が取得されていたが、これに代えて、パージ率ＰＧＲに応じて図１８の時定数マップに基づいてフィルタ時定数τ2を取得するようにしてもよい。一方、前記第２の実施形態において、パージ条件が成立した場合、パージ率ＰＧＲに応じて図１８の時定数マップに基づいてフィルタ時定数τ2を取得されていたが、これに代えて、パージ開始からの経過時間に応じて図１５の時定数マップに基づいてフィルタ時定数τ2を取得するようにしても良い。すなわち、前記第１の実施形態における図１４のフローチャートのステップ１４２５と、前記第２の実施形態における図１７のフローチャートのステップ１４５０とは互いに置換可能である。
【図面の簡単な説明】
【０２１５】
【図１】本発明の第１及び第２の実施形態の空燃比制御装置を適用した内燃機関の概略図である。
【図２】エアフローメータの出力電圧と計測された吸入空気流量との関係を示したグラフである。
【図３】上流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図４】下流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図５】第１の実施形態に係る空燃比制御装置の機能ブロック図である。
【図６】エンジン回転速度及び筒内吸入空気量と、遅れ時間に相当するストローク数との関係を規定するテーブルを示したグラフである。
【図７】基本燃料噴射量補正係数設定部の機能ブロック図である。
【図８】計算された基本燃料噴射量補正係数が筒内吸入空気量に応じて分類されてバックアップＲＡＭのメモリに記憶されている様子を示した図である。
【図９】指令燃料噴射量の計算、及び噴射指示を行うためのルーチンを示したフローチャートである。
【図１０】メインフィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図１１】サブフィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図１２】エバポパージ時のＶＳＶ制御のルーチンを示したフローチャートである。
【図１３】基本燃料噴射量補正係数を計算するためのルーチンを示したフローチャートである。
【図１４】基本燃料噴射量補正係数設定部のフィルタ時定数を決定するためのルーチンを示したフローチャートである。
【図１５】パージ時間からフィルタ時定数を取得するための時定数マップを示した図である。
【図１６】エバポガス濃度からフィルタ時定数を取得するための時定数マップを示した図である。
【図１７】第２の実施形態に係る空燃比制御装置における基本燃料噴射量補正係数設定部のフィルタ時定数を決定するためのルーチンを示したフローチャートである。
【図１８】第２の実施形態においてパージ率からフィルタ時定数を取得するための時定数マップを示した図である
【図１９】第３の実施形態に係る空燃比制御装置を適用した内燃機関の概略図である。
【図２０】第３の実施形態における基本燃料噴射量補正係数設定部のフィルタ時定数を決定するためのルーチンを示したフローチャートである。
【図２１】第３の実施形態においてキャニスタパージ濃度からフィルタ時定数を取得するための時定数マップを示した図である。
【図２２】第３の実施形態においてタンクベーパー濃度からフィルタ時定数を取得するための時定数マップを示した図である。
【符号の説明】
【０２１６】
１０，１１０…内燃機関、２５…燃焼室、３９…インジェクタ、４５…燃料タンク、４６…キャニスタ、４７…ベーパー捕集管、４８…パージ流路、４９…パージ制御弁（ＶＳＶ）、５１…エキゾーストマニホールド、５３…第１触媒、６６…上流側空燃比センサ、６７…下流側空燃比センサ、７０…電気制御装置、７１…ＣＰＵ、７４…バックアップＲＡＭ、Ａ３…補正前基本燃料噴射量算出部、Ａ４…補正後基本燃料噴射量算出部、Ａ５…指令燃料噴射量算出部、Ａ１７…基本燃料噴射量補正係数設定部、Ａ１７ｄ…ローパスフィルタ、Ａ１８…時定数設定部
【図１】
2006161695.tif 000003
【図２】
2006161695.tif 000004
【図３】
2006161695.tif 000005
【図４】
2006161695.tif 000006
【図５】
2006161695.tif 000007
【図６】
2006161695.tif 000008
【図７】
2006161695.tif 000009
【図８】
2006161695.tif 000010
【図９】
2006161695.tif 000011
【図１０】
2006161695.tif 000012
【図１１】
2006161695.tif 000013
【図１２】
2006161695.tif 000014
【図１３】
2006161695.tif 000015
【図１４】
2006161695.tif 000016
【図１５】
2006161695.tif 000017
【図１６】
2006161695.tif 000018
【図１７】
2006161695.tif 000019
【図１８】
2006161695.tif 000020
【図１９】
2006161695.tif 000021
【図２０】
2006161695.tif 000022
【図２１】
2006161695.tif 000023
【図２２】
2006161695.tif 000024