(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を運転状態等により可変とする。【選択図】  図７
2006112274.tif 000002
【特許請求の範囲】
【請求項１】
燃焼室と、その燃焼室に接続された吸気通路及び排気通路と、指令燃料噴射量の燃料の噴射指示を受けることにより前記吸気通路又は燃焼室にて燃料を噴射する燃料噴射装置と、前記排気通路に配設された触媒装置と、その触媒装置よりも上流の前記排気通路に配設された上流側空燃比センサとを備えた内燃機関に適用される、内燃機関の空燃比制御装置において、
少なくとも前記内燃機関の運転速度及び前記吸気通路における空気流量に基づいて、目標空燃比に対応する今回の燃料噴射量の推定値を基本燃料噴射量として取得する基本燃料噴射量取得部と、
フィルタを含む演算処理部を有し、前記目標空燃比と前記上流側空燃比センサの検出信号と過去の前記指令燃料噴射量とに基づいて前記演算処理部で演算処理することで前記基本燃料噴射量を補正する基本燃料噴射量補正部と、
前記上流側空燃比センサの検出信号に基づく空燃比フィードバック補正値である上流側フィードバック補正値を算出する上流側フィードバック補正値算出部と、
前記基本燃料噴射量補正部で補正された基本燃料噴射量を前記上流側フィードバック補正値で補正することで今回の指令燃料噴射量を算出する指令燃料噴射量算出部と、
を備えるとともに、
前記基本燃料噴射量補正部の前記演算処理部における前記フィルタの応答性に関するパラメータを変更するパラメータ変更部を更に備えた内燃機関の空燃比制御装置。
【請求項２】
燃焼室と、その燃焼室に接続された吸気通路及び排気通路と、指令燃料噴射量の燃料の噴射指示を受けることにより前記吸気通路又は燃焼室にて燃料を噴射する燃料噴射装置と、前記排気通路に配設された触媒装置と、その触媒装置よりも上流の前記排気通路に配設された上流側空燃比センサとを備えた内燃機関に適用される、内燃機関の空燃比制御装置において、
少なくとも前記内燃機関の運転速度及び前記吸気通路における空気流量に基づいて、目標空燃比に対応する今回の燃料噴射量の推定値を基本燃料噴射量として取得する基本燃料噴射量取得部と、
フィルタを含む演算処理部を有し、前記目標空燃比と前記上流側空燃比センサの検出信号と過去の前記指令燃料噴射量とに基づいて前記演算処理部で演算処理することで前記基本燃料噴射量を補正する基本燃料噴射量補正部と、
少なくとも前記基本燃料噴射量補正部で補正された基本燃料噴射量に基づいて今回の指令燃料噴射量を算出する指令燃料噴射量算出部と、
を備えるとともに、
前記基本燃料噴射量補正部の前記演算処理部における前記フィルタの応答性に関するパラメータを変更するパラメータ変更部を更に備えた内燃機関の空燃比制御装置。
【請求項３】
前記内燃機関は、前記触媒装置よりも下流の前記排気通路に配設された下流側空燃比センサを備えており、
前記下流側空燃比センサの検出信号に基づく空燃比フィードバック補正値である下流側フィードバック補正値を算出する下流側フィードバック補正値算出部を備え、
前記指令燃料噴射量算出部は、前記基本燃料噴射量補正部によって補正された基本燃料噴射量を前記下流側フィードバック補正値で補正することで前記今回の指令燃料噴射量を算出するように構成された、
請求項１又は請求項２に記載の内燃機関の空燃比制御装置。
【請求項４】
請求項１乃至請求項３のいずれかに記載の内燃機関の空燃比制御装置であって、
前記上流側空燃比センサの応答性に関する値である特性値を取得する特性値取得部を更に備え、
前記パラメータ変更部は、前記特性値に基づいて前記パラメータを変更可能に構成された内燃機関の空燃比制御装置。
【請求項５】
請求項１乃至請求項４のいずれかに記載の内燃機関の空燃比制御装置であって、
前記パラメータ変更部は、内燃機関の運転状態に応じて前記パラメータを変更可能に構成された内燃機関の空燃比制御装置。
【請求項６】
請求項５に記載の内燃機関の空燃比制御装置であって、
前記パラメータ変更部は、前記運転状態としての前記上流側空燃比センサの活性度に応じて前記パラメータを変更可能に構成された内燃機関の空燃比制御装置。
【請求項７】
請求項５に記載の内燃機関の空燃比制御装置であって、
前記パラメータ変更部は、前記運転状態としての前記排気通路における排気ガス流速に応じて前記パラメータを変更可能に構成された内燃機関の空燃比制御装置。
【請求項８】
請求項５に記載の内燃機関の空燃比制御装置であって、
前記内燃機関は、前記燃焼室を複数備え、かつ、燃料の燃焼による動力の発生に係る燃焼室の数である運転気筒数を変更可能に構成されており、
前記運転状態は、前記運転気筒数である内燃機関の空燃比制御装置。
【請求項９】
請求項１乃至請求項８のいずれかに記載の内燃機関の空燃比制御装置であって、
前記パラメータ変更部は、前記触媒装置よりも下流の前記排気通路に配設された下流側空燃比センサの出力に基づいて、前記パラメータを変更可能に構成された内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気通路に配設された空燃比センサの出力に基づいて内燃機関の空燃比を制御する、内燃機関の空燃比制御装置に関する。（なお、内燃機関を以下単に「機関」と称することがある。）
【背景技術】
【０００２】
従来広く知られるこの種の空燃比制御装置として、触媒装置よりも上流側の排気通路に配設された上流側空燃比センサ、及び触媒装置よりも下流側の排気通路に配設された下流側空燃比センサの出力値に基づいて、空燃比をフィードバック制御するものがある。このような構成を採用する従来の空燃比制御装置の具体例としては、例えば、下記特許文献に記載のものが挙げられる。
【特許文献１】特開２００３−３３６５３５号公報
【０００３】
特許文献１に記載の装置では、上流側空燃比センサの出力に基づく上流側フィードバック（メインフィードバック）ループと、下流側空燃比センサの出力に基づく下流側フィードバック（サブフィードバック）ループとを有し、以下のように空燃比のフィードバック制御が行われる。まず、機関の運転速度、アクセル開度、吸気通路に配設されたエアフローメータにより検知された吸入空気流量等に基づいて、今回の燃焼サイクルにて機関の燃焼室に吸入される筒内吸入空気量が算出される。次に、この筒内吸入空気量と目標空燃比とに基づいて、フィードバック制御により補正される前の基本燃料噴射量が取得される。続いて、上流側空燃比センサの出力に基づく上流側フィードバック補正値と、下流側空燃比センサの出力に基づく下流側フィードバック補正値と、に基づいて前記基本燃料噴射量が補正されることで指令燃料噴射量が算出される。そして、この指令燃料噴射量の燃料の噴射指示が燃料噴射装置に対して行われることによって、吸気通路又は燃焼室にて燃料が噴射される。
【０００４】
ここで、上述の上流側及び下流側フィードバックには、通常、比例・積分制御（ＰＩ制御）又は比例・積分・微分制御（ＰＩＤ制御）が用いられる。なぜなら、このＰＩ制御及びＰＩＤ制御における積分項（Ｉ項）には、フィードバック制御における所謂定常偏差を補償し、実際の空燃比を目標空燃比に収斂させる効果があるからである。
【０００５】
ところで、上述した従来の空燃比制御装置においては、エアフローメータへの汚れや異物付着等によるエアフローメータの測定誤差によって、筒内吸入空気量の算出値と実際の筒内吸入空気量との間に誤差が生じることがあった。そして、この誤差を含んだ筒内吸入空気量の算出値を用いて基本燃料噴射量が算出されることにより、基本燃料噴射量の算出にも誤差が生じることがあった。また、燃料噴射装置周辺の機構的要因（燃料噴射装置の燃料噴射性能のばらつきや、燃料噴射装置の目詰まり等）によって、指令燃料噴射量と実際の燃料噴射量との間に誤差が生じることがあった。（上述のような、筒内吸入空気量算出の誤差に起因する基本燃料噴射量算出の誤差や、燃料噴射装置周辺の機構的要因による燃料噴射量の誤差を、併せて、以下「混合気供給系の機構的誤差」と総称する。）
【０００６】
この点、上述の積分項を含む上流側フィードバック又は下流側フィードバックによれば、上述の混合気供給系の機構的誤差を補償し得るものの、混合気供給系の機構的誤差が急に変化した場合（例えばエアフローメータへの異物付着や燃料噴射装置の目詰まり発生の直後の場合）の補償については改善の余地があった。すなわち、上述の混合気供給系の機構的誤差の急な変化を補償するための、適切なフィードバック補正値が得られるためには、来歴経過が積算されることでなされる積分項の計算等のための相応の手順や時間を要する。よって、上述のような混合気供給系の機構的誤差の急な変化に対する、より簡易かつ迅速な補償が望まれている。
【発明の開示】
【０００７】
本発明は、上述した背景技術の問題点を解決するためになされたものであり、その目的は、混合気供給系の機構的誤差をより簡易かつ迅速に補償することができる、好適な内燃機関の空燃比制御装置を提供することにある。
【０００８】
かかる目的を達成するため、本発明は、燃焼室と、その燃焼室に接続された吸気通路及び排気通路と、指令燃料噴射量の燃料の噴射指示を受けることにより前記吸気通路又は燃焼室にて燃料を噴射する燃料噴射装置と、前記排気通路に配設された触媒装置と、その触媒装置よりも上流の前記排気通路に配設された上流側空燃比センサとを備えた内燃機関に適用される空燃比制御装置が、以下の構成を備えたことを特徴としている。
【０００９】
第１に、本発明の内燃機関の空燃比制御装置は、内燃機関の運転状態のうちの少なくとも前記内燃機関の運転速度及び前記吸気通路における空気流量に基づいて、目標空燃比に対応する今回の燃料噴射量の推定値を基本燃料噴射量として取得する基本燃料噴射量取得部と、フィルタを含む演算処理部を有し、前記目標空燃比と前記上流側空燃比センサの検出信号と過去の前記指令燃料噴射量とに基づいて前記演算処理部で演算処理することで、前記基本燃料噴射量を補正する基本燃料噴射量補正部と、少なくとも前記基本燃料噴射量補正部で補正された基本燃料噴射量に基づいて今回の指令燃料噴射量を算出する指令燃料噴射量算出部と、前記基本燃料噴射量補正部の前記演算処理部における前記フィルタの応答性に関するパラメータを変更するパラメータ変更部と、を備える。
【００１０】
かかる構成を有する本発明の内燃機関の空燃比制御装置によれば、まず、少なくとも内燃機関の運転速度及び前記吸気通路における空気流量に基づいて基本燃料噴射量が取得される。次に、この取得された基本燃料噴射量に基づいて燃料噴射装置にて実際に噴射される燃料噴射量が、燃焼室に供給される混合気の実際の空燃比を目標空燃比とするために必要な燃料噴射量（以下、単に「必要燃料噴射量」という。）となるように、前記目標空燃比と前記上流側空燃比センサの検出信号と過去の前記指令燃料噴射量とに基づいて前記演算処理部で演算処理することで、前記基本燃料噴射量の補正が行われる。より具体的には、例えば以下の通りに行われる。
【００１１】
一般に、燃料噴射量と空燃比との積は筒内吸入空気量に相当するところ、燃焼室内に吸入される筒内吸入空気量が一定であるという仮定のもとでは、燃料噴射量と空燃比との積が一定となる。また、燃焼室に供給される混合気の実際の空燃比は、上流側空燃比センサの検出空燃比に反映される。よって、燃料噴射量と空燃比との積が一定であるという前提の下では、前記検出空燃比と、その検出空燃比に対応する燃料噴射時の指令燃料噴射量との積は、目標空燃比と、前記必要燃料噴射量の燃料を実際に噴射するために今回燃料噴射装置に指示（指令）すべき燃料噴射量（以下、単に「目標燃料噴射指令値」という。）との積と等しくなるという関係が成立する。そして、このような関係から、基本燃料噴射量に対する補正値が算出できる。例えば、前記検出空燃比とその検出空燃比に対応する燃料噴射時の指令燃料噴射量との積を、目標空燃比と前記基本燃料噴射量との積で除すれば、前記目標燃料噴射指令値を得るための基本燃料噴射量に対する補正値としての補正係数が簡易な計算で得られる。
【００１２】
そして、このように補正された基本燃料噴射量（目標燃料噴射指令値）に基づいて、今回の指令燃料噴射量が算出され、この算出された今回の指令燃料噴射量の燃料噴射指示が燃料噴射装置に対してなされる。
【００１３】
このように、本発明によれば、必要燃料噴射量の実際の燃料噴射を行うための今回の指令燃料噴射量とすべき目標燃料噴射指令値が、過去の指令燃料噴射量と（当該過去の指令燃料噴射量に対応した燃料噴射時における実際の空燃比に相当する）上流側空燃比センサの検出空燃比と目標空燃比とを用いて簡易な計算によって直接算出され、混合気吸気系の機構的誤差が（空燃比フィードバックとは独立に）直接補償されることとなる。よって、混合気供給系の機構的誤差が急に変動したとしても、これを簡易かつ迅速に補償することができる。
【００１４】
ここで、本発明の前記構成の特徴は、特に、前記基本燃料噴射量補正部の演算処理部にフィルタを有するとともに、このフィルタの応答性に関するパラメータ（以下、単に「パラメータ」と称する。）を変更するためのパラメータ変更部を備えていることにある。これにより、上流側空燃比センサの応答性や内燃機関の運転状態等に合致した好適な基本燃料噴射量補正を行うことができ、以て適切な空燃比制御が維持され得る。
【００１５】
すなわち、例えば、内燃機関が過渡運転状態にある場合、内燃機関内部におけるガスの流動状態が大きく変動するため、前記基本燃料噴射量取得部により取得される基本燃料噴射量や、排気ガスの実際の空燃比も、所定の周波数を超える高周波数で激しく変動し得る。このような場合、上述のような燃料噴射量と空燃比との積が一定となるという前提が崩れること等によって、前記基本燃料噴射量に対する補正値が適切な値とならなくなる可能性がある。そこで、基本燃料噴射量補正値を得る際に、前記所定の周波数を超える高周波数をカットするフィルタ処理（好適にはローパスフィルタ処理）を施すことによって、適切な基本燃料噴射量の補正値が、簡易な計算で、かつより一層精度良く算出され得る。
【００１６】
そして、前記パラメータは、パラメータ変更部により変更可能である。この場合、例えば、上流側空燃比センサの応答性に関する値である特性値が取得され、この特性値に基づいて、前記パラメータが変更されることが好ましい。ここで、上流側空燃比センサの応答性、したがって特性値は、個体差により異なり、また経年劣化等によって変化しうる。そして、上流側空燃比センサの応答性が悪い場合、この上流側空燃比センサの出力が所定の周波数を超える高周波数で変動しても、その検出値は信頼できないので、上流側空燃比センサが検出する空燃比変動のうちの、当該所定の周波数を超える高周波数成分をカットするようにパラメータが設定される（ローパスフィルタの場合は時定数が大きくされる）。これにより、上流側空燃比センサが検出する空燃比変動のうちの、信頼できる低周波数成分を用いて、安定した基本燃料噴射量補正（混合気供給系の機構的誤差の補償）が行われ得る。一方、上流側空燃比センサの応答性が良い場合、この上流側空燃比センサの出力が或る程度の高周波数で変動しても、その検出値は信頼できるので、かかる高周波数の空燃比検出値の変動を捉え得るようにパラメータが設定され（ローパスフィルタの場合は時定数が小さくされ）、より迅速に基本燃料噴射量補正が行われ得る。
【００１７】
また、前記パラメータ変更部は、更に前記内燃機関の運転状態に応じて前記パラメータを変更可能に構成されることが好ましい。すなわち、内燃機関の運転状態によって、上流側空燃比センサの応答性自体が変化したり、上流側空燃比センサに対する排気ガスの当たり方が変化し、この排気ガスの当たり方の変化によって上流側空燃比センサの応答性が変化したりする。よって、当該構成によれば、内燃機関の運転状態の変化に基づく上流側空燃比センサの応答性の変化に対応して前記パラメータが変更され、好適な基本燃料噴射量補正が行われる。
【００１８】
例えば、上流側空燃比センサの応答性は、当該上流側空燃比センサの活性度によって変化する。この活性度は、前記運転状態としての、上流側空燃比センサの素子温度に関連するものである。そして、上流側空燃比センサの応答性は、素子温度が高いほど良い。よって、前記パラメータは、上流側空燃比センサの活性度に応じて変更可能とすることが好ましい。具体的には、例えば、前記活性度が低い場合には、上流側空燃比センサが検出する空燃比変動のうちの、当該所定の周波数を超える高周波数成分をカットするようにパラメータが設定される（ローパスフィルタの場合は時定数が大きくされる）。一方、前記活性度が高い場合には、高周波数の空燃比検出値の変動を捉え得るようにパラメータが設定される（ローパスフィルタの場合は時定数が小さくされる）。ここで、前記活性度は、上流側空燃比センサの素子温度を熱電対等によって直接測定することで取得したり、当該空燃比センサの素子インピーダンスを測定して、この素子インピーダンスから素子温度を取得したりすることによって取得することができる。
【００１９】
また、上流側空燃比センサの応答性は、前記運転状態としての、上流側空燃比センサに当たる排気ガス流速によって変化する。この排気ガス流速は、筒内吸入空気量すなわちアクセル開度及び機関の運転速度に関連するものである。そして、上流側空燃比センサの応答性は、排気ガス流速が大きいほど良い。よって、前記パラメータは、排気ガス流速に応じて変更可能とすることが好ましい。具体的には、例えば、排気ガス流速が小さい場合には、上流側空燃比センサが検出する空燃比変動のうちの、当該所定の周波数を超える高周波数成分をカットするようにパラメータが設定される（ローパスフィルタの場合は時定数が大きくされる）。一方、排気ガス流速が大きい場合には、高周波数の空燃比検出値の変動を捉え得るようにパラメータが設定される（ローパスフィルタの場合は時定数が小さくされる）。なお、この排気ガス流速は、排気通路において流量計等により直接測定されてもよいが、エアフローメータ等により取得され得る筒内吸入空気量によって代用されることも可能である。
【００２０】
また、前記内燃機関が、前記燃焼室を複数備え、かつ、燃料の燃焼による動力の発生に係る燃焼室の数である運転気筒数を変更可能に構成されている場合、前記パラメータ変更部は、前記運転状態としての運転気筒数が変更された場合に前記パラメータを変更可能に構成されることが好ましい。すなわち、通常運転時と減筒運転時とでは、排気ガスの排気通路内での流量（流速）が異なるため、上流側空燃比センサに対する排気ガスの当たり方も異なる。よって、通常運転時と減筒運転時とでは、上流側空燃比センサの応答性が異なることになるので、異なるパラメータが設定される。具体的には、例えば、減筒運転時には通常運転時よりも、上流側空燃比センサが検出する空燃比変動のうちの、当該所定の周波数を超える高周波数成分をよりカットするようにパラメータが設定される（ローパスフィルタの場合は時定数が大きくされる）。
【００２１】
また、本発明の内燃機関の空燃比制御装置においては、前記パラメータ変更部は、前記触媒装置よりも下流の前記排気通路に配設された下流側空燃比センサの出力に基づいて（好適には下流側空燃比センサの出力と所定の目標値との大小関係に基づいて）、前記パラメータを変更可能に構成されることが好ましい。かかる構成によれば、下流側空燃比センサの出力は、触媒の排気ガス浄化作用によって小刻みな空燃比変動が吸収され、比較的大きな振幅で低周波数の空燃比変動を反映した出力であり、このような下流側空燃比センサの出力に基づいて検知された、比較的低周波数の定常的な空燃比変動の状態に対応して前記パラメータが変更されるため、実際の排気ガスの空燃比が目標空燃比からどのように（好適には目標空燃比からリッチ又はリーンのいずれの方向に）ずれているかに応じて、例えば下記のように基本燃料噴射量の補正の度合い（目標値への収束性）を変えることができるなど、より合目的的な空燃比制御が可能となる。
【００２２】
すなわち、好適には、例えば、下流側空燃比センサの出力が目標空燃比（多くの場合理論空燃比）よりもリッチの場合とリーンの場合とで、「混合気供給系の機構的誤差」の補償の「応答性」（補償にあたって所定の周波数以下の低周波数の変動しか考慮しないか、又はそれよりも高周波数の変動も考慮するか）が変更されることで、目標空燃比から実際の空燃比がリッチ側にずれている場合とリーン側にずれている場合とで異なる（非対称の）空燃比制御が行われ得る。すなわち、「混合気供給系の機構的誤差」がリッチ側に生じ且つ上記定常的な実際の空燃比変動がリッチ側に生じた場合と、「混合気供給系の機構的誤差」がリーン側に生じ且つ上記定常的な実際の空燃比変動がリーン側に生じた場合とで、「混合気供給系の機構的誤差」の補償における前記「応答性」を異ならせ、以て実際の空燃比の時間的平均値を前記目標空燃比よりもリッチ側又はリーン側に寄せることができる。換言すれば、所謂「リッチ寄せ」や「リーン寄せ」というような、目標空燃比を見かけ上若干リッチ側又はリーン側にずらした空燃比制御を、単に前記パラメータを変更するだけで容易に実現することができる。
【００２３】
第２に、本発明の内燃機関の空燃比制御装置においては、前記上流側空燃比センサの検出信号に基づく空燃比フィードバック補正値である上流側フィードバック補正値を算出する上流側フィードバック補正値算出部を備え、前記指令燃料噴射量算出部は、前記基本燃料噴射量補正部で補正された基本燃料噴射量を前記上流側フィードバック補正値で補正することで今回の指令燃料噴射量を算出するように構成されることが好ましい。かかる構成によれば、基本燃料噴射量補正部により迅速な基本燃料噴射量の補正を行いつつ、上流側フィードバック制御によって過渡運転状態における空燃比変動に対する補償を行うことができる。
【００２４】
また、前記上流側フィードバック補正値算出部においては、上流側空燃比センサの出力値に基づいて各種の演算処理が行われることによって、フィードバック補正値が算出されるが、かかる演算処理の際には、所定の上流側目標値を考慮するように構成してもよい。すなわち、上流側フィードバック補正値算出部は、（１）上流側空燃比センサの出力値と所定の上流側目標値との相違に起因する値を所定のハイパスフィルタ処理した後の値、又は（２）上流側空燃比センサの出力値を所定のハイパスフィルタ処理した後の値、に基づいて上流側フィードバック補正値を算出する。なお、前記（１）の場合、所定の上流側目標値は、前記目標空燃比に相当する値であることが好ましい。また、前記の「上流側空燃比センサの出力値と所定の上流側目標値との相違に起因する値」の具体例としては、例えば、センサの出力値と目標値との差、センサの出力値に相当する検出空燃比（実空燃比）と目標値に相当する目標空燃比との差、筒内吸入空気量をセンサの出力値に相当する検出空燃比で除した値である実際の筒内燃料供給量と同筒内吸入空気量を目標値に相当する目標空燃比で除した値である目標筒内燃料供給量との差、等が挙げられるが、これらに限定されるものではない。
【００２５】
第３に、本発明の内燃機関の空燃比制御装置においては、前記触媒装置よりも下流の前記排気通路に配設された下流側空燃比センサをも備えた内燃機関を対象とするものであって、前記下流側空燃比センサの検出信号に基づく空燃比フィードバック補正値である下流側フィードバック補正値を算出する下流側フィードバック補正値算出部を備え、前記指令燃料噴射量算出部は、前記基本燃料噴射量補正部によって補正された基本燃料噴射量を前記下流側フィードバック補正値で補正するように構成された場合に特に好適に作用する。
【００２６】
かかる構成おいて、下流側フィードバック補正値算出部によるフィードバック補正値は、触媒の排気ガス浄化作用によって小刻みな空燃比変動が吸収され且つ空燃比変動の検知が遅延された下流側空燃比センサの検出信号に基づくものであり、触媒装置の下流側の空燃比の変動として現れうる程度の、所定の周波数以下の低周波数で且つ比較的大きな振幅の空燃比変動を反映したものとなる。一方、基本燃料噴射量の補正は、上述の触媒の排気ガス浄化作用による検出遅延のない上流側空燃比センサの検出信号に基づいて迅速に行われ、且つ下流側フィードバック補正値に影響されずに行われる。このように、前記構成によれば、下流側フィードバック制御により安定した空燃比フィードバック制御を行いつつ、迅速な基本燃料噴射量補正を行うことができる。
【００２７】
特に、（Ａ）前記上流側フィードバック補正値算出部が、上流側空燃比センサの検出信号に基づくフィルタ入力信号をハイパスフィルタ処理したフィルタ出力信号に基づいて、燃料噴射量に対するフィードバック補正値が算出されるように構成されている場合や、（Ｂ）上述の（Ａ）の場合に加えて、更に前記下流側フィードバック補正値算出部が、下流側空燃比センサの検出信号に基づくフィルタ入力信号をローパスフィルタ処理したフィルタ出力信号に基づいて、燃料噴射量に対するフィードバック補正値が算出されるように構成されている場合に、本発明の構成が特に好適に作用する。
【００２８】
すなわち、上述の（Ａ）の場合にあっては、上流側フィードバック制御においては、上流側空燃比センサの検出信号に基づくハイパスフィルタ出力信号に従って、過渡的な空燃比変動に対する空燃比フィードバック制御がなされる。また、上述の（Ｂ）の場合にあっては、更に、下流側フィードバック制御においては、下流側空燃比センサの検出信号に基づくローパスフィルタ出力信号に従って、定常的な空燃比変動に対する空燃比フィードバック制御がなされる。そして、これら（Ａ）や（Ｂ）の場合（特に（Ｂ）の場合）、上流側空燃比センサの出力値と下流側空燃比センサの出力値とが目標空燃比に対して互いに逆方向に偏移した空燃比を示した場合であっても、上流側フィードバック制御と下流側フィードバック制御との間には上述の通りの役割分担が生じるので、上流側フィードバック制御と下流側フィードバック制御とが互いに干渉を起こして制御がハンチングしてしまうことが防止され得る。しかも、上述の通り、上流側フィードバック制御ではハイパスフィルタ処理がなされているため実質的に積分処理ができず、下流側フィードバック制御では触媒の排気ガス浄化作用により空燃比変動検出が遅延するため、これらの各フィードバック制御とは独立して上述の基本燃料噴射量補正を行うことで、目標空燃比に対する適切なフィードバック制御を行いつつ混合気供給系の機構的誤差を迅速に補償することが可能になる。
【００２９】
なお、前記下流側フィードバック補正値算出部においては、前記下流側空燃比センサの出力値と所定の下流側目標値との相違に起因する値に基づいて、フィードバック補正値を算出するように構成されることが好ましい。また、前記所定の下流側目標値は、前記目標空燃比に相当する値であることが好ましい。ここで、「下流側空燃比センサの出力値と所定の下流側目標値との相違に起因する値」の具体例については、上述の上流側フィードバック補正値算出部における「上流側空燃比センサの出力値と所定の上流側目標値との相違に起因する値」の具体例と同様である。
【００３０】
また、本発明の内燃機関の空燃比制御装置における前記基本燃料噴射量補正部では、「過去の」指令燃料噴射量が基本燃料噴射量補正に用いられるが、この「過去の」指令燃料噴射量とは、好ましくは、以下の通りのものである。
【００３１】
すなわち、本発明の好ましい態様としては、前記燃料噴射装置に対する燃料の噴射指示から、当該噴射指示に基づき噴射された燃料の燃焼による排気の空燃比が前記上流側空燃比センサの出力値として現れるまでの遅れ時間を取得する遅れ時間取得部を更に備えている。そして、「過去の」指令燃料噴射量とは、前記遅れ時間だけ前の時点での噴射指示に係る指令燃料噴射量である。
【００３２】
一般に、燃料の噴射指示は、吸気行程中或いは吸気行程よりも前の時点にて実行され、噴射された燃料は、その後に到来する圧縮上死点近傍の時点で燃焼室内にて着火されることで燃焼する。そして、この燃焼により発生した排気ガスは、排気弁を介して燃焼室から排気通路へと排出され、その後、排気通路内を移動していくことで上流側空燃比センサの検出部に到達する。更に、排気ガスが上流側空燃比センサの検出部に到達してから、当該排気ガスの空燃比（の変化）が同センサの出力値（の変化）として現れるまでに所定の時間を要する。
【００３３】
以上のことから、燃料の噴射指示から、同噴射指示により噴射された燃料の燃焼に基づく排気ガスの空燃比が前記上流側空燃比センサの出力値として現れるまでの間には、燃焼行程に関する遅れ（行程遅れ）、排気通路内での排気ガスの移動に関する遅れ（輸送遅れ）、及び上流側空燃比センサの応答に関する遅れ（応答遅れ）による遅れ時間が必要である。換言すれば、（現時点での）上流側空燃比センサの出力値は、上述の遅れ時間前に実行された燃料の噴射指示に基づいて発生した排気ガスの空燃比を表す値となる。
【００３４】
もっとも、上述した行程遅れ及び輸送遅れに係る時間は、例えば、噴射時期、点火時期、内燃機関の寸法や気筒数等の諸元、エンジン回転速度、筒内吸入空気量、排気通路の断面積等に基づいて簡易に取得することができる。また、応答遅れに係る時間は、上流側空燃比センサの応答特性を予め実験等を通して取得しておくことができる。よって、前記遅れ時間取得部により、前記行程遅れ、輸送遅れ、及び応答遅れによる前記遅れ時間が正確に取得され得る。
【００３５】
そこで、基本燃料噴射量の補正値を算出する際、（上流側空燃比センサの出力値として現時点での値を使用するとともに、）少なくとも指令燃料噴射量として前記遅れ時間だけ前の時点での噴射指示に係る値を使用するように構成すれば、（現時点での）上流側空燃比センサの出力値が表す空燃比の排気ガスの発生に係る燃料噴射指示時点と、基本燃料噴射量の補正値の算出に使用される指令燃料噴射量に対応する燃料噴射指示の時点とが一致ないし極めて近接し得る。従って、前記補正値が、上述の目標燃料噴射指令値を得るための値としてより一層精度良く算出され得る。
【００３６】
この場合、前記遅れ時間取得部は、前記内燃機関の運転状態に応じて前記遅れ時間を変更するように構成されることが好ましい。上述したように、行程遅れや輸送遅れに係る時間は、例えば、エンジン回転速度、筒内吸入空気量等、機関の運転状態に応じて変化する。従って、当該構成によれば、内燃機関の運転状態にかかわらず前記遅れ時間を正確に取得することができる。
【００３７】
ところで、本発明の上記構成においては、基本燃料噴射量取得部にて、内燃機関の運転状態のうちの少なくとも前記内燃機関の運転速度及び前記吸気通路における空気流量に基づいて、目標空燃比に対応する今回の燃料噴射量の推定値を基本燃料噴射量として取得し、その後、基本燃料噴射量補正部にて、前記目標空燃比と前記上流側空燃比センサの検出信号と過去の前記指令燃料噴射量とに基づいて所定の演算処理をすることで今回の指令燃料噴射量を算出するために前記基本燃料噴射量を補正するように構成されている。この点に関しては、前記目標空燃比と前記上流側空燃比センサの検出信号と過去の前記指令燃料噴射量とに基づいて上述のような所定の演算処理をすることで、直接に上述の目標燃料噴射指令値が求められ得る。そこで、「少なくとも前記内燃機関の運転速度及び前記吸気通路における空気流量に基づいて、目標空燃比に対応する今回の燃料噴射量の推定値を基本燃料噴射量として取得する基本燃料噴射量取得部と、フィルタを含む演算処理部を有し、前記目標空燃比と前記上流側空燃比センサの検出信号と過去の前記指令燃料噴射量とに基づいて前記演算処理部で演算処理することで、今回の指令燃料噴射量を算出するために前記基本燃料噴射量を補正する基本燃料噴射量補正部と」を備えた構成に代えて、「フィルタを含む演算処理部を有し、目標空燃比と上流側空燃比センサの検出信号と過去の指令燃料噴射量とに基づいて前記演算処理部で演算処理することで、今回の指令燃料噴射量を算出するために目標燃料噴射指令値を取得する目標燃料噴射指令値取得部」を備えた構成としてもよい。
【発明を実施するための最良の形態】
【００３８】
以下、本発明による内燃機関の空燃比制御装置（以降の説明では単に「空燃比制御装置」と略称することがある。）の各実施形態（本願の出願時点において最良と考えられる実施形態）について図面を参照しつつ説明する。
【００３９】
（第１実施形態）
図１は、第１実施形態による空燃比制御装置を火花点火式多気筒（４気筒）内燃機関１０に適用したシステムの概略構成を示している。この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排気ガスを外部に放出するための排気系統５０とを含んでいる。
【００４０】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３、及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００４１】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８、及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射装置）３９を備えている。
【００４２】
吸気系統４０は、吸気ポート３１に連通し同吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットル弁４３、スロットル弁駆動手段を構成するＤＣモータからなるスロットル弁アクチュエータ４３ａ、スワールコントロールバルブ（以下、「ＳＣＶ」と称呼する。）４４、及びＤＣモータからなるＳＣＶアクチュエータ４４ａを備えている。吸気ポート３１、吸気管４１、ＳＣＶ４４、スロットル弁４３、エアフィルタ４２は、吸気通路を構成している。
【００４３】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１（実際には、各排気ポート３４に連通した各々のエキゾーストマニホールド５１が集合した集合部）に接続されたエキゾーストパイプ（排気管）５２、エキゾーストパイプ５２に配設（介装）された上流側触媒装置５３（上流側触媒コンバータ、又はスタート・キャタリティック・コンバータとも云うが、以下「第１触媒５３」と称呼する。）、及びこの第１触媒５３の下流のエキゾーストパイプ５２に配設（介装）された下流側触媒装置５４（車両のフロア下方に配設されるため、アンダ・フロア・キャタリティック・コンバータとも云うが、以下「第２触媒５４」と称呼する。）を備えている。排気ポート３４、エキゾーストマニホールド５１、及びエキゾーストパイプ５２は、排気通路を構成している。
【００４４】
一方、このシステムは、エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、水温センサ６５、第１触媒５３の上流の排気通路（本例では、前記各々のエキゾーストマニホールド５１が集合した集合部）に配設された空燃比センサ６６（以下、「上流側空燃比センサ６６」と称呼する。）、第１触媒５３の下流であって第２触媒５４の上流の排気通路に配設された空燃比センサ６７（以下、「下流側空燃比センサ６７」と称呼する。）、及びアクセル開度センサ６８を備えている。
【００４５】
エアフローメータ６１は、周知の熱線式エアフローメータにより構成されており、吸気管４１内を流れる吸入空気の単位時間あたりの質量流量に応じた電圧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を求める。基本燃料噴射量補正係数設定部Ａ１７については後に詳述する。
【００５９】
このように、本装置は、筒内吸入空気量算出部Ａ１、上流側目標空燃比設定部Ａ２、補正前基本燃料噴射量算出部Ａ３、補正後基本燃料噴射量算出部Ａ４、及び基本燃料噴射量補正係数設定部Ａ１７を利用して、補正後基本燃料噴射量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を出力する。
【０１０６】
以上、補正後基本燃料噴射量算出部Ａ４、及び基本燃料噴射量補正係数設定部Ａ１７が基本燃料噴射量補正部に相当する。
【０１０７】
<<フィルタ時定数の決定>>
基本燃料噴射量補正係数設定部Ａ１７は、上流側空燃比センサ６６の出力値をテーブル変換部Ａ１０により空燃比に変換した信号である今回の検出空燃比abyfs(k)を入力信号とすることで上流側空燃比センサ６６の応答性を取得する応答性取得部Ａ１７ｈと、その応答性取得部Ａ１７ｈにより取得された上流側空燃比センサ６６の応答性を、吸入空気流量Ga及び上流側空燃比センサ６６の温度Tabyfsに基づいて補正する応答性補正部Ａ１７ｊと、その応答性補正部Ａ１７ｊの出力に基づいて前記ローパスフィルタＡ１７ｇにおける時定数τ2を決定する時定数決定部Ａ１７ｋと、を備えている。すなわち、後に詳述するように、本装置は、応答性取得部Ａ１７ｈ，応答性補正部Ａ１７ｊ，及び時定数決定部Ａ１７ｋによって、上流側空燃比センサ６６の製造時における性能のばらつきや劣化による個体差や内燃機関の運転状態（吸入空気流量Ga及び上流側空燃比センサ６６の温度Tabyfs）に応じて時定数τ2（混合気供給系の機構的誤差の補償の応答性）を変更可能に構成されている。以上、時定数決定部Ａ１７ｋ（及び応答性取得部Ａ１７ｈ，応答性補正部Ａ１７ｊ）がパラメータ変更部に相当し、応答性取得部Ａ１７ｈが特性値取得部に相当する。
【０１０８】
ここで、応答性取得部Ａ１７ｈは、後述する通り、ＣＰＵ７１の制御下で、定常運転時にて強制的に空燃比ないし指令燃料噴射量を矩形波状に所定周期で変調させる、周知の所謂「アクティブ制御」を行い、このアクティブ制御における強制的な空燃比変動に対する上流側空燃比センサ６６の応答時間によって、当該上流側空燃比センサ６６の応答性を応答性取得値として取得し、バックアップＲＡＭ７４に格納するように構成されている。また、応答性取得部Ａ１７ｈによって取得され、バックアップＲＡＭ７４に格納された応答性取得値は、ＣＰＵ７１からの指示により、当該バックアップＲＡＭ７４から読み出され、応答性補正部Ａ１７ｊに出力される（なお、図７では、本実施形態の理解を簡略にするために、前記応答性取得値が応答性取得部Ａ１７ｈから応答性補正部Ａ１７ｊへの直接の出力として表現されている。）。
【０１０９】
そして、前記応答性取得値は、応答性補正部Ａ１７ｊにおいて、吸入空気流量Ga及び上流側空燃比センサ６６の温度Tabyfsにより補正される。この応答性補正部Ａ１７ｊにおける応答性の補正は、実験等で求めた、温度と空燃比センサ応答性との関係を示すテーブル、及び吸入空気流量と空燃比センサ応答性との関係を示すテーブルに基づいて行われ得る。その後、前記補正された応答性に基づき、時定数決定部Ａ１７ｋにより、ローパスフィルタＡ１７ｇのフィルタ時定数τ2が決定される。かかる時定数決定部Ａ１７ｋにおける時定数τ2の決定も、実験等で求めた、空燃比センサの応答性と時定数との関係を示すテーブルに基づいて行われ得る。
【０１１０】
また、応答性補正部Ａ１７ｊにて用いられる上流側空燃比センサ６６の温度Tabyfsは、図５に示す通り、素子温度取得部Ａ１８により取得される。かかる素子温度取得部Ａ１８は、ＣＰＵ７１の制御下で、所定の周期（例えば１００msec）毎に、上流側空燃比センサ６６に交流電圧パルスを印加し、その交流印加電圧パルスに対応する上流側空燃比センサ６６の出力電流パルスを検知することで、上流側空燃比センサ６６の素子インピーダンスを測定し、以て上流側空燃比センサ６６の温度を推定するように構成されている。なお、上流側空燃比センサ６６の素子インピーダンスと温度Tabyfsとの関係（テーブル）は、周知のものであって、当該上流側空燃比センサ６６が内燃機関１０に装着される前に予め求められ得る。この素子温度取得部Ａ１８により取得された上流側空燃比センサ６６の温度Tabyfsは、ＲＡＭ７３に記憶され、時定数決定部Ａ１７ｋによるフィルタ時定数τ2の決定（変更）処理の際に、ＣＰＵ７１により適宜読み出され、応答性補正部Ａ１７ｊに入力される。また、応答性補正部Ａ１７ｊにて用いられる吸入空気流量Gaは、当該応答性補正を行う時点でのエアフローメータ６１の出力に基づくものである。
【０１１１】
以上、基本燃料噴射量補正係数設定部Ａ１７は、燃料の噴射時点（より具体的には、噴射指示が開始される時点）が到来する毎に、Ａ１７ｂ〜Ａ１７ｋの各機能ブロックを利用して基本燃料噴射量補正係数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に一致させていくことができ、この結果、混合気供給系の機構的誤差がある程度補償されていく。
以上が、本装置による機関の空燃比フィードバック制御の概要である。
【０１１７】
（実際の作動）
次に、前記空燃比制御装置の実際の作動について説明する。
【０１１８】
<空燃比フィードバック制御>
ＣＰＵ７１は、図９フローチャートにより示した燃料噴射量Fiの計算、及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が前記所定クランク角度になると、ＣＰＵ７１は「Fi計算・噴射」ルーチン９００の処理を開始する。
【０１１９】
まず、ステップ９０５にて、エアフローメータ６１により計測された吸入空気流量Gaと、エンジン回転速度NEと、上述したテーブルMapMcとに基づいて、今回の吸気行程を迎える気筒（以下、「燃料噴射気筒」と云うこともある。）に吸入された今回の筒内吸入空気量Mc(k)が推定・決定される。
【０１２０】
次に、ＣＰＵ７１は、ステップ９１０に進んで、前記推定された筒内吸入空気量Mc(k)を今回の目標空燃比abyfr(k)で除した値を今回の補正前基本燃料噴射量Fbaseb(k)として決定する。
【０１２１】
次いで、ＣＰＵ７１は、ステップ９１５に進んで、メインフィードバック条件が成立しているか否かを判定する。ここで、メインフィードバック条件は、例えば、機関の冷却水温THWが第１所定温度以上であって、上流側空燃比センサ６６が正常（活性状態となっていることを含む）であって、機関の一回転当りの吸入空気量（負荷）が所定値以下であるときに成立する。即ち、メインフィードバック条件が成立することは、上述した「上流側空燃比センサ６６の出力値Vabyfsが正常な値となる場合」に対応する。
【０１２２】
メインフィードバック条件が成立している場合（ステップ９１５＝「Ｙｅｓ」）、ＣＰＵ７１はステップ９１６に進み、上流側空燃比センサ６６の温度取得タイミングが到来したか否かを判定する。すなわち、上述の通り、上流側空燃比センサ６６の温度Tabyfsの取得は、ＣＰＵ７１の制御下で、当該「Fi計算・噴射」ルーチン９００の計算周期（後述する「メインフィードバック補正量DFi_main計算」ルーチン１０００，「サブフィードバック補正量DFi_sub計算」ルーチン１１００，「基本燃料噴射量補正係数の計算」ルーチン１２００の計算周期も同様）よりも充分長い所定の周期（例えば１００msec）毎に行われるので、ＣＰＵ７１は、所定のタイマのカウントダウンにより、前記所定の周期が経過したことを判断すると、ステップ９１６にて「Ｙｅｓ」と判定し、ステップ９２５に進む。
【０１２３】
一方、ＣＰＵ７１は、ステップ９１６にて「Ｎｏ」と判定すると、ステップ９１８に進み、上述した所謂「アクティブ制御」を行うタイミングか否かを判定する。このアクティブ制御は、上流側空燃比センサ６６の応答性を取得するために行われ、詳細は後に説明するが、理論空燃比１４．７を中心として空燃比が±１０％変動するように燃料噴射量が強制加振されることで行われる。このアクティブ制御が行われる条件は、定常運転時、すなわち少なくともメインフィードバック条件成立時（ステップ９１５＝「Ｙｅｓ」）であって、更に所定の条件（内燃機関の運転開始以後、最初にメインフィードバック条件が成立した時点、及びその時点から所定間隔（例えば１０ｋｍ走行又は３０分経過）おき（前記「Fi計算・噴射」ルーチン９００の計算周期よりも充分長い周期）であって、且つエンジン回転速度NEが所定値以下であるとき）が成立したときである。そして、ＣＰＵ７１は、上述のアクティブ制御条件が成立してアクティブ制御タイミングが到来したことを判定すると（ステップ９１８＝「Ｙｅｓ」）、ステップ９１９に進んで後述するアクティブ制御（図１４参照）を行う一方、アクティブ制御タイミングではないことを判定すると（ステップ９１８＝「Ｎｏ」）、ステップ９２０に進み、前記補正前基本燃料噴射量Fbaseb(k)に、後述するルーチンにて（前回の燃料噴射時点にて）求められている最新の基本燃料噴射量補正係数KFを乗じた値を補正後基本燃料噴射量Fbaseとして設定する。
【０１２４】
メインフィードバック条件が成立していない場合（ステップ９１５＝「Ｎｏ」）、ＣＰＵ７１はステップ９２５に進み、前記補正前基本燃料噴射量Fbaseb(k)に、バックアップＲＡＭ７４に記憶されている基本燃料噴射量補正係数KF(m)(m:1,2,3,4)のうち先のステップ９０５にて決定された筒内吸入空気量Mc(k)の値から選択されたKF(m)の値を基本燃料噴射量補正係数記憶値KFmemoryとして設定する。続いて、ＣＰＵ７１はステップ９３０に進み、前記補正前基本燃料噴射量Fbaseb(k)に、ステップ９２５にて設定した基本燃料噴射量補正係数記憶値KFmemoryを乗じた値を補正後基本燃料噴射量Fbaseとして設定する。なお、上流側空燃比センサ６６の温度取得タイミングが到来した場合（ステップ９１６＝「Ｙｅｓ」）も、ステップ９２５及び９３０に進む。すなわち、上流側空燃比センサ６６の温度取得時においては、当該上流側空燃比センサ６６には素子インピーダンス測定のための信号が印加されているため、当該上流側空燃比センサ６６は空燃比センサとしての動作を停止している状態となる。そこで、この場合にも、前者のメインフィードバック条件が成立していない場合と同様の処理をすることで、補正前基本燃料噴射量Fbaseb(k)を可及的に目標基本燃料噴射量Fbasetに一致させていくことができる。
【０１２５】
次に、ＣＰＵ７１はステップ９３５に進み、前記(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を「０」としてサブフィードバック制御に基づく機関の空燃比の補正を行わない。
【０１４３】
<基本燃料噴射量補正係数の計算、及び記憶>
次に、基本燃料噴射量補正係数KFを算出する際の作動について説明すると、ＣＰＵ７１は図１２にフローチャートにより示した「基本燃料噴射量補正係数の計算」ルーチン１２００を、燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１は前記ルーチン１２００の処理を開始し、まず、ステップ１２０５にて、メインフィードバック条件が成立しているか否かを判定し、「Ｎｏ」と判定する場合、ステップ１２９５に直ちに進んで本ルーチンを一旦終了する。この場合、基本燃料噴射量補正係数KFの計算、及び同補正係数KFの値のバックアップＲＡＭ７４への記憶処理が実行されない。このメインフィードバック条件は、先のステップ９１５（及び、ステップ１００５）におけるメインフィードバック条件と同一である。
【０１４４】
いま、メインフィードバック条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１２０５にて「Ｙｅｓ」と判定してステップ１２２５に進み、現時点でのエンジン回転速度NEと、先の図９のステップ９０５にて求めた今回の筒内吸入空気量Mc(k)と、図６に示したテーブルMapMcとに基づいて値Ｍを求めるとともに、現時点からＭストローク前の指令燃料噴射量Fi(k−M)を取得し、更に、先の図１０のステップ１００５にて求められている今回の検出空燃比abyfs(k)，及び先の図９のステップ９１０にて使用した今回の目標空燃比abyfr(k)と、前記(11)式とに基づいて目標基本燃料噴射量Fbasetを求め、続くステップ１２３０にて、前記目標基本燃料噴射量Fbasetと、先の図９のステップ９１０にて求められている今回の補正前基本燃料噴射量Fbaseb(k)と、前記(12)式とに基づいて、ローパスフィルタ処理前基本燃料噴射量補正係数KF0を求める。
【０１４５】
そして、ＣＰＵ７１はステップ１２３３に進んで、KF0をローパスフィルタ処理することで基本燃料噴射量補正係数KFを取得する。ここで、当該ステップ１２３３におけるローパスフィルタの時定数τ2は、後述する通り、所定の周期（例えば１０００msec）毎に繰り返し計算されバックアップＲＡＭ７４に最新値が記憶されているものを当該バックアップＲＡＭ７４から読み出される。
【０１４６】
そして、ステップ１２３５に進んで、図９のステップ９０５にて決定されている筒内吸入空気量Mc(k)の値に応じて選択されるKF(m)(m:1〜4)の値を前記求めた基本燃料噴射量補正係数KFの値に更新し、同更新したKF(m)の値をバックアップＲＡＭ７４の対応するメモリに記憶した後、ステップ１２９５に進んで本ルーチンを一旦終了する。
【０１４７】
これにより、メインフィードバック条件が成立している場合において、燃料噴射気筒について燃料噴射開始時期が到来する毎に、基本燃料噴射量補正係数KFの計算（更新）、及び同補正係数KFの値のバックアップＲＡＭ７４への記憶処理が実行されていく。そして、この基本燃料噴射量補正係数KFが次回の燃料噴射気筒について実行される前述した図９のルーチンのステップ９２０にて使用されることで次回の補正前基本燃料噴射量Fbasebが今回計算した基本燃料噴射量補正係数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の決定は、図１３にフローチャートにより示した「フィルタ時定数の決定」ルーチン１３００を、前記上流側空燃比センサ６６の温度Tabyfsの取得周期よりも充分長い所定の周期（例えば１０００msec）毎に繰り返し実行することによって行われるが、この際、図１４及び図１５に示したアクティブ制御によって予め上流側空燃比センサ６６の応答性を取得しておく。そして、図１６のような時定数マップ（θ−τ2マップ）に基づき、上流側空燃比センサ６６の応答性から時定数τ2が求められる。もっとも、上流側空燃比センサ６６の応答性は、当該上流側空燃比センサ６６の素子温度（Tabyfs）や吸入空気流量（Ga）によって変化するので、応答性取得時と時定数τ2の決定時との間でTabyfsやGaが変化している場合があり得る。そこで、一旦取得した上流側空燃比センサ６６の応答性（応答性取得値θ1）を、図１７及び図１８に示したような応答性補正係数マップにより、TabyfsやGaで補正した後、当該補正後の応答性θによって時定数τ2を決定するようにしている。
【０１５３】
すなわち、図１６に示す通り、時定数τ2は、上流側空燃比センサ６６の応答性が良い（早い）程小さくされる。これにより、ローパスフィルタＡ１７ｇのカットオフ周波数が高くされ、高周波数の上流側空燃比センサ６６の出力変化に対応して基本燃料噴射量補正がより迅速に行われる。ここで、図１６のような時定数マップ（θ−τ2マップ）、すなわち、フィルタの時定数τ2と、上流側空燃比センサ６６の応答性θとの関係は、実験やシミュレーションにより求められる。具体的には、所定の実験等により、定常運転時にてエミッションが最も少なくなるような時定数τ2を、既知の応答性を示す複数種類の上流側空燃比センサ６６に対して順次求めることで、上述のθ−τ2マップが求められる。
【０１５４】
そして、上流側空燃比センサ６６の素子温度Tabyfsが高いほど、当該上流側空燃比センサ６６の応答性が良くなる（活性度が高くなる）。また、吸入空気流量Gaが大きいほどエキゾーストマニホールド（排気通路）内の排気ガス流速も高くなり、この排気ガス流速が高いほど、上流側空燃比センサ６６に対して排気ガスが強く当たることとなって当該上流側空燃比センサ６６の応答性が良くなる（空燃比変動に対する感度が高くなる）。そこで、上流側空燃比センサ６６の標準的な応答性（例えばカタログ公称値）を１として、この標準的な応答性を得るための標準的な温度をT1，吸入空気流量をGa1とし、温度を変えたときの応答性の変化を実験等によって求めることで、図１７に示す応答性補正係数マップ（Tabyfs−θ2マップ）を求めることができる。同様に、吸入空気流量Gaを変えたときの応答性の変化を実験等によって求めることで、図１８に示す応答性補正係数マップ（Ga−θ3マップ）を求めることができる。
【０１５５】
以下、時定数τ2を決定する際の実際の作動を、フローチャートを用いて詳述する。
【０１５６】
まず、ＣＰＵ７１は、ステップ１３０５にて、メインフィードバック条件が成立しているか否かを判定し、「Ｎｏ」と判定する場合、ステップ１３９５に直ちに進んで本ルーチンを一旦終了する。この場合、フィルタ時定数の決定処理が実行されない。このメインフィードバック条件は、先のステップ９１５等におけるメインフィードバック条件と同一である。
【０１５７】
いま、メインフィードバック条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１３０５にて「Ｙｅｓ」と判定してステップ１３１０に進む。そして、ＣＰＵ７１は、バックアップＲＡＭ７４に格納された上流側空燃比センサ６６の応答性取得値θ1の最新値と、当該最新値に対応してバックアップＲＡＭ７４に格納された上流側空燃比センサ６６の温度Tabyfs0及び吸入空気流量Ga0とを、当該バックアップＲＡＭ７４より読み出して取得する。
【０１５８】
次に、ＣＰＵ７１は、ステップ１３１５に進んで、ＲＡＭ７３より最新の上流側空燃比センサ６６の温度Tabyfsを読み出して取得する。
【０１５９】
次に、ＣＰＵ７１は、ステップ１３２０に進んで、応答性取得値θ1に対応する素子温度Tabyfs0から、図１７に示すように、Tabyfs−θ2マップに基づき、応答性補正係数θ2を取得する。続いて、ＣＰＵ７１は、ステップ１３２５に進んで、前記の取得した最新の素子温度Tabyfsから、図１７に示すように、Tabyfs−θ2マップに基づき、応答性補正係数θ2’を取得する。
【０１６０】
次に、ＣＰＵ７１はステップ１３３０に進んで、応答性取得値θ1に対応する吸入空気流量Ga0から、図１８に示すように、Ga−θ3マップに基づき、応答性補正係数θ3を取得する。続いて、ＣＰＵ７１は、ステップ１３３５に進んで、現在の吸入空気流量Gaから、図１８に示すように、Ga−θ3マップに基づき、応答性補正係数θ3’を取得する。
【０１６１】
そして、ＣＰＵ７１はステップ１３４０に進んで、上述のθ2’をθ2で除することによって、新たに今回最終的に使用すべき応答性補正係数θ2を得る。また、同様に、上述のθ3’をθ3で除することによって、新たに今回最終的に使用すべき応答性補正係数θ3を得る。
【０１６２】
その後、ＣＰＵ７１はステップ１３４５に進んで、θ＝θ1×θ2×θ3と上述のθ−τ2マップとから、フィルタ時定数τ2を決定し、この値をバックアップＲＡＭ７４の対応するメモリに記憶した後、ステップ１３９５に進んで本ルーチンを一旦終了する。
【０１６３】
<アクティブ制御による上流側空燃比センサの応答性の取得>
次に、図９のフローチャートにおけるアクティブ制御ステップ９１９について、図１４のフローチャート及び図１５の概念図を用いて説明する。
【０１６４】
まず、ＣＰＵ７１は、ステップ９１９１０において、エンジン回転速度NE，及び吸入空気流量Gaの変動が所定範囲内か否かを判断する。そして、ＣＰＵ７１が、エンジン回転速度NE，及び吸入空気流量Gaの変動が所定範囲を超えると判断すると（ステップ９１９１０＝「Ｎｏ」）、アクティブ制御の途中で内燃機関１０の運転状態がアクティブ条件から外れたことが検知されたこととなるため、ステップ９１９２０に進んでアクティブ制御を中断して本ルーチンを一旦終了する。
【０１６５】
いま、アクティブ条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ９１９１０にて「Ｙｅｓ」と判定してステップ９１９３０に進み、図９のフローチャートにおけるステップ９０５と同様にして今回の筒内吸入空気量Mc(k)が推定・決定される。
【０１６６】
次に、ＣＰＵ７１はステップ９１９４０に進んで、図９のフローチャートにおけるステップ９１０と同様にして、今回の補正前基本燃料噴射量Fbaseb(k)を決定する。
【０１６７】
次に、ＣＰＵ７１はステップ９１９５０に進んで、今回の指令燃料噴射量Fi(k)を算出する。この算出は、アクティブ制御開始からの経過時間に応じて、係数KAの値を１．１と０．９との間で矩形波状に変更させ、このKAの値に今回の補正前基本燃料噴射量Fbaseb(k)を乗算することで行われる。そして、ＣＰＵ７１はステップ９１９６０に進んで、上述のように算出された今回の指令燃料噴射量Fi(k)に基づき、インジェクタ３９に対して噴射指示が行われる。これにより、図１５（ａ）に示すように、理論空燃比１４．７を中心として、空燃比が±１０％変動するように燃料噴射量がアクティブ制御される。すると、図１５（ｂ）に示す通り、上流側空燃比センサ６６の出力も上述の燃料噴射量波形に準じた規則的な波形を示す。
【０１６８】
そして、ＣＰＵ７１は、この燃料噴射量アクティブ制御の際の上流側空燃比センサ６６の出力から、応答性取得値θ1を取得する。具体的には、例えば、図１５に示されているように、上述の燃料噴射量アクティブ制御開始時より所定回数目（例えば５回目）にリッチ側（＋１０％すなわち図１５（ａ）における１．１×Fbaseb(k)に対応する燃料噴射量）からリーン側（−１０％すなわち図１５（ｂ）における０．９×Fbaseb(k)に対応する燃料噴射量）に切り替わった時点から、上流側空燃比センサ６６の出力がアクティブ制御におけるリーン側目標値（図３における、理論空燃比に対して＋１０％だけ空燃比が変動した場合に対応する出力電圧値）の８割に達するまでの時間を取得することにより、上述のθ1が取得される。
【０１６９】
そして、上述のθ1が取得されるまで、ステップ９１９１０〜９１９６０が繰り返され（ステップ９１９７０＝「Ｎｏ」）、θ1の取得が終了すると（ステップ９１９７０＝「Ｙｅｓ」）、ＣＰＵ７１はステップ９１９８０に進んで、当該θ1を取得した際における最新の上流側空燃比センサ６６の素子温度（ＲＡＭ７３の格納値）をTabyfs0，吸入空気流量（エアフローメータ６１の現在の出力値）をGa0として取得し、ステップ９１９９０に進んで、当該θ1，Tabyfs0，及びGa0をバックアップＲＡＭ７４に格納し、ステップ９１９９５に進んで本ルーチンを一旦終了する。
【０１７０】
これにより、上流側空燃比センサ６６の性能や内燃機関１０の運転状態に適合した基本燃料噴射量補正が行われ、以て混合気供給系の機構的誤差の補償が適切に行われる。
【０１７１】
（第２実施形態）
続いて、図１９及び図２０を用いて、第２実施形態による空燃比制御装置について説明する。なお、下記の第３実施形態にも共通するが、第１の実施形態と同様の作用・機能を有する機能ブロックやフローチャート，ステップについては、第１の実施形態に係る図１〜図１８に関する説明や図示を援用するものとする。
【０１７２】
第２実施形態に係る空燃比制御装置においては、図１９に示す通り、「フィルタ時定数の決定」ルーチン１３００の、メインフィードバック条件成立判断（ステップ１３０５＝Ｙｅｓ）の直後に、運転気筒数に応じて時定数マップを選択するステップ１３０８を有する。
【０１７３】
すなわち、本実施形態は、図２０に示すように、通常運転時と減筒運転時とでθ−τ2マップを変えることを特徴とする。かかる図２０の時定数マップのように、通常運転時と減筒運転時との２種類のθ−τ2マップを有するのは、通常運転時と減筒運転時とで、内燃機関１０におけるガスの流動状態が異なり、よって上流側空燃比センサ６６に対する排気ガスの当たり方も異なってくることを考慮したからである。特に、減筒運転時においては、内燃機関１０におけるガス流量（及び排気ガス流速）の脈動の周期及び振幅が大きくなる傾向があるため、減筒運転時において時定数を小さくしすぎると空燃比制御が発散してしまう可能性があるため、減筒運転時では通常運転時よりも時定数が大きくなるようにされている。
【０１７４】
この図２０の時定数マップも、図１６の時定数マップと同様、実験ないしシミュレーションにより求めることができる。そして、ステップ１３０８によって、運転気筒数に応じて、通常運転時又は減筒運転時のいずれかのθ−τ2マップが選択された後、第１の実施形態における図１３のステップ１３１０〜１３４０と同様の処理がなされた後、ステップ１３０８によって選択されたθ−τ2マップに基づいて、ステップ１３４５にてフィルタ時定数τ2が決定される。これにより、減筒運転時における空燃比制御の発散を防止することができ、以て運転気筒数によらず常に安定した空燃比制御を行うことが可能になる。
【０１７５】
（第３実施形態）
更に、図２１〜図２３を用いて、第３実施形態による空燃比制御装置について説明する。かかる第３実施形態の空燃比制御装置は、図２１に示す通り、下流側空燃比センサ６７の出力値Voxsと下流側目標値Voxs_refの偏差としての出力偏差量DVoxsの値をローパスフィルタ処理した後の値であるローパスフィルタ通過後出力偏差量DVoxs_lowの値に応じて、フィルタ時定数τ2の時定数マップを変更することを特徴としている。
【０１７６】
すなわち、図２２に示すように、ＰＩＤコントローラＡ９にて求められるサブフィードバック補正量DFi_subが正の値となるリーン出力時には時定数が小さくなる（混合気供給系の機構的誤差の変動に対する補償の応答性が良くなる）一方、サブフィードバック補正量DFi_subが負の値となるリッチ出力時には時定数が大きくなるように、リーン出力時とリッチ出力時とで２種類のθ−τ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を求めるように構成してもよい。
【０１９０】
また、前記第３実施形態においては、所謂「リッチ寄せ」制御について説明したが、上記と同様のやり方で「リーン寄せ」制御も可能であることはいうまでもない。また、吸入空気流量Gaが所定の閾値より大きいか小さいかによって「リッチ寄せ」と「リーン寄せ」とを切り替える（すなわち、閾値に対するGaの大／小とサブフィードバック補正量の正／負による計４種類の時定数マップを有する）ように構成することも可能である。更に、サブフィードバック補正量の正／負のみならず、絶対値によっても時定数マップを細分化することも可能である。
【０１９１】
さらに、前記第３実施形態において、ＰＩＤコントローラＡ９の出力に基づくのではなく、下流側空燃比センサ６７の出力値Voxsが目標値よりリッチを示すかリーンを示すかによって、フィルタ時定数τ2の時定数マップを変更するようにしてもよい。
【図面の簡単な説明】
【０１９２】
【図１】本発明の空燃比制御装置を適用した内燃機関の概略図である。
【図２】エアフローメータの出力電圧と計測された吸入空気流量との関係を示したグラフである。
【図３】上流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図４】下流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図５】第１の実施形態に係る空燃比制御装置の機能ブロック図である。
【図６】エンジン回転速度及び筒内吸入空気量と、遅れ時間に相当するストローク数との関係を規定するテーブルを示したグラフである。
【図７】基本燃料噴射量補正係数設定部の機能ブロック図である。
【図８】計算された基本燃料噴射量補正係数が筒内吸入空気量に応じて分類されてバックアップＲＡＭのメモリに記憶されている様子を示した図である。
【図９】指令燃料噴射量の計算、及び噴射指示を行うためのルーチンを示したフローチャートである。
【図１０】メインフィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図１１】サブフィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図１２】基本燃料噴射量補正係数を計算するためのルーチンを示したフローチャートである。
【図１３】基本燃料噴射量補正係数設定部のフィルタ時定数を決定するためのルーチンを示したフローチャートである。
【図１４】空燃比アクティブ制御により上流側空燃比センサの応答性を取得するルーチンを示したフローチャートである。
【図１５】上流側空燃比センサの応答性の取得について説明するための概念図である。
【図１６】上流側空燃比センサの応答性からフィルタ時定数を取得するための時定数マップを示した図である。
【図１７】上流側空燃比センサの素子温度から上流側空燃比センサの応答性補正係数を取得するためのマップを示した図である。
【図１８】筒内吸入空気量から上流側空燃比センサの応答性補正係数を取得するためのマップを示した図である。
【図１９】第２の実施形態に係る空燃比制御装置における基本燃料噴射量補正係数設定部のフィルタ時定数を決定するためのルーチンを示したフローチャートである。
【図２０】第２の実施形態において上流側空燃比センサの応答性からフィルタ時定数を取得するための時定数マップを示した図である。
【図２１】第３の実施形態に係る空燃比制御装置の機能ブロック図である。
【図２２】第３の実施形態において上流側空燃比センサの応答性からフィルタ時定数を取得するための時定数マップを示した図である。
【図２３】第３の実施形態に係る空燃比制御装置における基本燃料噴射量補正係数設定部のフィルタ時定数を決定するためのルーチンを示したフローチャートである。
【符号の説明】
【０１９３】
１０…内燃機関、２５…燃焼室、３９…インジェクタ、５１…エキゾーストマニホールド、５３…第１触媒、６６…上流側空燃比センサ、６７…下流側空燃比センサ、７０…電気制御装置、７１…ＣＰＵ、７４…バックアップＲＡＭ、Ａ３…補正前基本燃料噴射量算出部、Ａ４…補正後基本燃料噴射量算出部、Ａ５…指令燃料噴射量算出部、Ａ１７…基本燃料噴射量補正係数設定部、Ａ１７ｇ…ローパスフィルタ、Ａ１７ｈ…応答性取得部、Ａ１７ｊ…応答性補正部、Ａ１７ｋ…時定数決定部
【図１】
2006112274.tif 000003
【図２】
2006112274.tif 000004
【図３】
2006112274.tif 000005
【図４】
2006112274.tif 000006
【図５】
2006112274.tif 000007
【図６】
2006112274.tif 000008
【図７】
2006112274.tif 000009
【図８】
2006112274.tif 000010
【図９】
2006112274.tif 000011
【図１０】
2006112274.tif 000012
【図１１】
2006112274.tif 000013
【図１２】
2006112274.tif 000014
【図１３】
2006112274.tif 000015
【図１４】
2006112274.tif 000016
【図１５】
2006112274.tif 000017
【図１６】
2006112274.tif 000018
【図１７】
2006112274.tif 000019
【図１８】
2006112274.tif 000020
【図１９】
2006112274.tif 000021
【図２０】
2006112274.tif 000022
【図２１】
2006112274.tif 000023
【図２２】
2006112274.tif 000024
【図２３】
2006112274.tif 000025