(57)【要約】【課題】  目標空燃比と少なくとも上流側空燃比センサの出力値とに基づいて空燃比をフィードバック制御する空燃比制御装置において、メインフィードバック制御開始後に空燃比を目標空燃比に迅速に収束させるように基本補正値を求めておくこと。【解決手段】  この装置は、メインフィードバック制御条件が成立していなくても、基本補正値算出許可条件が成立しているときには、現時点における上流側空燃比センサ６６の出力値vabyfsと、指示噴射量Fi(k-N)と、目標空燃比決定手段Ａ２により決定されていた目標空燃比abyfr(k-N)と、から目標空燃比を得るために必要である真の指示噴射量を求めるとともに、この真の指示噴射量と補正前基本燃料噴射量算出手段Ａ３により決定されていた補正前基本燃料噴射量Fbaseb(k-N)とから補正前基本燃料噴射量に対する基本補正値KFを算出する基本補正値算出手段Ａ１６を備える。【選択図】  図４
2008215106.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設された触媒よりも上流側の同排気通路に配設されるとともに同機関に供給された混合気の空燃比に応じた出力値を出力する上流側空燃比センサと、
噴射指示信号に含まれる指示噴射量の燃料が前記機関の気筒に供給されるように同噴射指示信号に応答して燃料を噴射する燃料噴射手段と、
を備えた内燃機関に適用される内燃機関の空燃比制御装置であって、
一回の吸気行程において前記機関の一つの気筒内に吸入される空気量である筒内吸入空気量を同機関の運転状態に基づいて取得する筒内吸入空気量取得手段と、
前記機関の運転状態に応じて前記機関に供給される混合気の空燃比の目標値である目標空燃比を決定する目標空燃比決定手段と、
前記取得された筒内吸入空気量と前記決定された目標空燃比とに基いて前記機関に供給される混合気の空燃比を同目標空燃比とするための補正前基本燃料噴射量を決定する補正前基本燃料噴射量算出手段と、
所定のメインフィードバック制御条件が成立しているとき、前記噴射指示信号に基いて前記燃料噴射手段から燃料が噴射されたときから同噴射された燃料が前記気筒内において燃焼することにより生成された排ガスが前記上流側空燃比センサに到達するまでに要する時間である無駄時間だけ現時点よりも前の時点において前記目標空燃比決定手段により決定されていた前記目標空燃比に応じた値と、前記上流側空燃比センサの現時点における出力値に応じた値と、の差に対してハイパスフィルタ処理を施すことにより得られるメインフィードバック制御用偏差、又は、前記無駄時間だけ現時点よりも前の時点において前記目標空燃比決定手段により決定されていた前記目標空燃比に応じた値と、前記上流側空燃比センサの現時点における出力値に応じた値に対してハイパスフィルタ処理を施すことにより得られる値と、の差であるメインフィードバック制御用偏差、に基いてメインフィードバック補正値を更新するメインフィードバック補正値更新手段と、
前記メインフィードバック制御条件が成立しているときには成立し且つ同メインフィードバック制御条件が成立していないときであっても他の所定条件が成立していれば成立する基本補正値算出許可条件が成立しているとき、現時点における前記上流側空燃比センサの出力値と、前記無駄時間だけ現時点よりも前の時点の前記噴射指示信号に含まれていた指示噴射量と、前記無駄時間だけ現時点よりも前の時点において前記目標空燃比決定手段により決定されていた目標空燃比と、から同目標空燃比を得るために必要である真の指示噴射量を求めるとともに、同真の指示噴射量と前記無駄時間だけ現時点よりも前の時点において前記補正前基本燃料噴射量算出手段により決定されていた補正前基本燃料噴射量とから同補正前基本燃料噴射量に対する基本補正値を算出する基本補正値算出手段と、
前記補正前基本燃料噴射量を前記メインフィードバック補正値及び前記基本補正値により補正して最終燃料噴射量を算出する最終燃料噴射量算出手段と、
前記最終燃料噴射量を前記指示噴射量として含む噴射指示信号を前記燃料噴射手段に出力する燃料噴射制御手段と、
を備えた内燃機関の空燃比制御装置。
【請求項２】
請求項１に記載の内燃機関の空燃比制御装置において、
前記メインフィードバック制御条件は、
前記上流側空燃比センサが活性化していることを同メインフィードバック制御条件が成立するための必要条件の一つに含み、
前記基本補正値算出許可条件は、
前記上流側空燃比センサが活性化していることを同基本補正値算出許可条件が成立するための必要条件の一つに含む、
ように設定された内燃機関の空燃比制御装置。
【請求項３】
請求項１に記載の内燃機関の空燃比制御装置において、
前記メインフィードバック制御条件は、
前記上流側空燃比センサが活性化していることを同メインフィードバック制御条件が成立するための必要条件の一つに含み、
前記基本補正値算出許可条件は、
前記上流側空燃比センサが活性化していること、及び、前記上流側空燃比センサが活性化していない場合であっても前記上流側空燃比センサの出力値に基いて得られる空燃比である検出空燃比が前記機関に供給される混合気の実際の空燃比である実空燃比と前記目標空燃比との間に存在していると判断されること、の何れか一方を同基本補正値算出許可条件が成立するための必要条件の一つに含む、
ように設定された内燃機関の空燃比制御装置。
【請求項４】
請求項１に記載の内燃機関の空燃比制御装置において、
前記メインフィードバック制御条件は、
前記上流側空燃比センサが活性化していることを同メインフィードバック制御条件が成立するための必要条件の一つに含み、
前記基本補正値算出許可条件は、
前記上流側空燃比センサが活性化していること、及び、前記上流側空燃比センサが活性していない場合であっても前記機関に供給される混合気の実際の空燃比である実空燃比に対して前記上流側空燃比センサの出力値に基いて得られる空燃比である検出空燃比がリーン側の空燃比となる領域内に同実空燃比が存在し且つ前記目標空燃比が同検出空燃比よりもリーン側に存在していること、の何れか一方を同基本補正値算出許可条件が成立するための必要条件の一つに含む、
ように設定された内燃機関の空燃比制御装置。
【請求項５】
請求項１に記載の内燃機関の空燃比制御装置において、
前記メインフィードバック制御条件は、
前記上流側空燃比センサが活性化していることを同メインフィードバック制御条件が成立するための必要条件の一つに含み、
基本補正値算出許可条件は、
前記上流側空燃比センサが活性化していること、及び、前記上流側空燃比センサが活性していない場合であっても前記機関に供給される混合気の実際の空燃比である実空燃比に対して前記上流側空燃比センサの出力値に基いて得られる空燃比である検出空燃比がリッチ側の空燃比となる領域内に同実空燃比が存在し且つ前記目標空燃比が同検出空燃比よりもリッチ側に存在していること、の何れか一方を同基本補正値算出許可条件が成立するための必要条件の一つに含む、
ように設定された内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気通路に配設された空燃比センサの出力値に基づいて同機関に供給される混合気の空燃比（以下、単に「機関の空燃比」と称呼することもある。）を制御する内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来から知られるこの種の空燃比制御装置は、排気通路に配設された触媒（三元触媒）と上流側空燃比センサと下流側空燃比センサとを備えている。上流側空燃比センサ及び下流側空燃比センサは、その触媒の上流側及び下流側にそれぞれ配設されている。空燃比制御装置は、上流側空燃比センサの出力値及び下流側空燃比センサの出力値に基づいて機関の空燃比を制御するようになっている。より具体的に述べると、空燃比制御装置は、上流側空燃比センサの出力値に基づいて求められるメインフィードバック補正値によって基本燃料噴射量を補正するとともに、下流側空燃比センサ出力値に基づいて求められるサブフィードバック補正値によって基本燃料噴射量を補正するようになっている。
【０００３】
ところで、一般に、触媒は酸素吸蔵機能を有するから、触媒上流の空燃比変化は所定の遅れ時間が経過した後に触媒下流の空燃比変化となって現れる。従って、上流側空燃比センサの出力値が目標空燃比よりリッチ側の空燃比を示しているときに下流側空燃比センサの出力値が目標空燃比よりリーン側の空燃比を示す状況、又は、上流側空燃比センサの出力値が目標空燃比よりリーン側の空燃比を示しているときに下流側空燃比センサの出力値が目標空燃比よりリッチ側の空燃比を示す状況、が発生する。
【０００４】
例えば、上流側空燃比センサの出力値が目標空燃比よりリッチ側の空燃比を示しているときに下流側空燃比センサの出力値が目標空燃比よりリーン側の空燃比を示す状況においては、メインフィードバック補正値は基本燃料噴射量を減少させるように補正し、サブフィードバック補正値は基本燃料噴射量を増大させるように補正する。一方、上流側空燃比センサの出力値が目標空燃比よりリーン側の空燃比を示しているときに下流側空燃比センサの出力値が目標空燃比よりリッチ側の空燃比を示す状況においては、メインフィードバック補正値は基本燃料噴射量を増大させるように補正し、サブフィードバック補正値は基本燃料噴射量を減少させるように補正する。即ち、上述した状況において、メインフィードバック補正値とサブフィードバック補正値との基本燃料噴射量の補正方向が互いに逆方向となり、メインフィードバック補正値によるメインフィードバック制御とサブフィードバック補正値によるサブフィードバック制御との間に制御上の干渉が発生する。
【０００５】
このような事態を避けるため、従来の空燃比制御装置の一つは、現時点における上流側空燃比センサの出力値に基いて得られる空燃比に対してハイパスフィルタ処理を施すことにより得られる値と、現時点よりも所定の無駄時間だけ前の時点において決定されていた目標空燃比と、の差である「メインフィードバック制御用偏差」に基いてメインフィードバック補正値を更新するようになっている。ここで、無駄時間とは、噴射指示信号に基いてインジェクタ（燃料噴射手段）から燃料が噴射された時点から同噴射された燃料が気筒内において燃焼することにより生成された排ガスが上流側空燃比センサに到達する時点までの時間のことである。
【０００６】
上記「上流側空燃比センサの出力値に基いて得られる空燃比に対してハイパスフィルタ処理を施すことにより得られる値」は、触媒の酸素吸蔵機能によって触媒の下流には現れない空燃比変動の高周波成分のみを反映した値になる。従って、メインフィードバック制御用偏差は、触媒の酸素吸蔵機能によって触媒の下流には現れない空燃比変動の高周波成分のみを反映した値になる。この結果、上述した制御上の干渉は発生せず、メインフィードバック補正値に基くメインフィードバック制御によって空燃比の過渡的な変動が抑制され、サブフィードバック補正値に基くサブフィードバック制御によって空燃比の比較的穏やかな変動（目標空燃比からのズレ）が抑制される。
【０００７】
ところで、基本燃料噴射量は、機関の空燃比を目標空燃比に一致させるための燃料噴射量であり、例えばエアフローメータの出力値や空気量推定モデル等を利用して求められる筒内吸入空気量の取得値（推定値を含む。）と、目標空燃比と、に基いて求められる。しかしながら、エアフローメータの検出精度や空気量推定モデルの推定精度に起因し、筒内吸入空気量の検出値には定常的な誤差が含まれる。加えて、インジェクタの製造公差や噴射特性の経年変化により、同インジェクタに対して同インジェクタが噴射するように指示された燃料の量（指示噴射量）と同インジェクタから実際に噴射される燃料の量（実燃料噴射量）と間には定常的な誤差が発生する。
【０００８】
このため、目標空燃比を得るために必要な真の指示噴射量と基本燃料噴射量との間には定常的な誤差（以下、「定常誤差」という。）が常に含まれる。この定常誤差により生じる空燃比の目標空燃比からの偏移は、比較的緩慢に変化するから、上述したハイパスフィルタ処理により除去されてしまう。従って、この定常誤差は、メインフィードバック制御用偏差には反映されないので、メインフィードバック制御によって補償され得ない。これに対し、この定常誤差は、触媒の下流側の空燃比偏移として現れるので、サブフィードバック制御において上流側空燃比センサの出力値に応じた値を積分処理することによって理論上は補償され得る。
【０００９】
一方、上記定常誤差は、筒内吸入空気流量の取得誤差及び／又は上記インジェクタの噴射特性が機関の負荷等で区分される運転領域毎に比較的大きく異なることに起因して、運転領域毎に比較的大きく異なる場合がある。そのような場合、機関の運転領域が変化すると上記定常誤差（基本燃料噴射量の誤差）も比較的急激に変化するので、機関の空燃比も比較的急激に変化する。この空燃比変化は、上記ハイパスフィルタ処理によってカットされるが、触媒の酸素吸蔵機能によっては吸収されない程度の変化であるから触媒の下流に現れる。
【００１０】
ところが、このような定常誤差の変化に伴う空燃比変動は、少し遅れて触媒下流の排ガスの空燃比の変化として現れるので、サブフィードバック制御によっては迅速に補償され得ない可能性がある。この結果、運転領域が変化した場合等において、空燃比が変動してエミッションが一時的に悪化する恐れがある。
【００１１】
そこで、従来の空燃比制御装置の一つは、所定のメインフィードバック制御条件が成立しているとき、メインフィードバック補正値及びサブフィードバック補正値とは別に、基本補正値KFを以下に述べる方法に基いて算出し、その基本補正値KFによって上記定常誤差（即ち、補正前基本燃料噴射量Fbasebの誤差）を補償するようになっている。より具体的に述べると、基本補正値KFは、下記の（１）式により定義される。
【数１】
2008215106.tif 000003
【００１２】
（１）式において、Fbasetは、目標空燃比を得るために必要な真の指示噴射量であり、誤差を含まない基本燃料噴射量であるということもできる。以下、Fbasetを、「真の基本燃料噴射量」と称呼する。なお、添え字の（k-N）は、今回の吸気行程からＮストローク（４気筒エンジンにおいて、Ｎ・１８０°ＣＡ、ＣＡ；クランク角）前の吸気行程に対した値であることを示している。従って、添え字（k)が付された変数は、今回の吸気行程（又は現時点）に対応した値であることを示す。この表記方法は、以下において他のパラメータについても同様に用いられる。
【００１３】
（１）式の真の基本燃料噴射量Fbaset(k-N)は、下記の（２）式により算出される。（２）式において、abyfsは上流側空燃比センサの出力値に基づいて求められる空燃比（以下、「検出空燃比」と称呼する。）であり、Fiはインジェクタに指示された最終燃料噴射量Fi(k)（指示噴射量）である。abyfrは目標空燃比である。
【数２】
2008215106.tif 000004
【００１４】
上記（２）式について説明を加える。上述したＮストロークは上記「無駄時間」に対応するストローク数に設定されている。つまり、現時点における検出空燃比abyfs(k)は最終燃料噴射量Fi(k-N)に基いて噴射された燃料によりもたらされている空燃比である。従って、（２）式における右辺の分子のabyfs(k)・Fi(k-N)は、最終燃料噴射量Fi(k-N)を決定した際の筒内空気量を表していることになる。それ故、（２）式に示したように、最終燃料噴射量Fi(k-N)を決定した時点の筒内空気量（abyfs(k)・Fi(k-N)）を、最終燃料噴射量Fi(k-N)を決定した時点の目標空燃比abyfr(k-N）で除することにより、真の基本燃料噴射量Fbaset(k-N)が算出される。
【００１５】
一方、上記（１）式にて使用される補正前基本燃料噴射量Fbaseb(k)は、下記（３）式に基いて求められる。（３）式においてMc(k)はエアフローメータ及び／又は空気量推定モデルから取得（推定・検出）された今回の吸気行程に対する筒内吸入空気量であり、abyfr(k)は現時点における（今回の吸気行程に対する）目標空燃比である。
【数３】
2008215106.tif 000005
【００１６】
そこで、従来の空燃比制御装置は、上記（１）〜（３）式から得られる下記（４）式に基いて基本補正値KFを求め、求めた基本補正値KFを同基本補正値KFを算出したときの運転領域に対応させてメモリに記憶しておく。
【数４】
2008215106.tif 000006
【００１７】
更に、従来の制御装置は、メインフィードバック制御用偏差を比例・積分処理（ＰＩ処理）することによりメインフィードバック補正値KFmainを求め、下流側空燃比センサの出力値により取得される触媒下流側空燃比と触媒下流側目標空燃比との偏差（サブフィードバック制御用偏差）を比例・積分・微分処理（ＰＩＤ処理）することによりサブフィードバック補正値Fisubを求める。そして、その制御装置は、メインフィードバック補正値KFmain、サブフィードバック補正値Fisub及び運転領域に応じた基本補正値KFを下記（５）式に適用することにより、今回の吸気行程に対する最終燃料噴射量Fi(k)を決定し、その最終燃料噴射量Fi(k)に応じた燃料量の燃料をインジェクタから噴射させる。この結果、従来の空燃比制御装置は、運転領域が変化した場合においても、サブフィードバック制御に依ることなく機関の空燃比を迅速に目標空燃比に近づけることができる（特許文献１を参照。）。
【数５】
2008215106.tif 000007
【特許文献１】特開２００５−２７３５２４号公報
【発明の開示】
【００１８】
しかしながら、上記従来の空燃比制御装置は、メインフィードバック制御条件が成立しているときに限り基本補正値KFを算出するようになっているから、メインフィードバック制御が開始された時点において基本補正値KFが適正値となっていない場合、基本補正値KFが適正値に到達するまでに時間を要する。この理由の一つは、基本補正値KFを求める際に、何れも前記無駄時間だけ現時点よりも前の時点の噴射指示信号に含まれていた指示噴射量、目標空燃比及び補正前基本燃料噴射量等を必要とするからである。その結果、従来の空燃比制御装置によれば、メインフィードバック制御が開始された直後において空燃比が一時的に乱れ、エミッションが悪化する恐れがある。
【００１９】
従って、本発明の目的は、メインフィードバック制御条件が成立していない場合であっても基本補正値KFを算出することができるときには、基本補正値KFを算出しておくことにより、メインフィードバック制御開始後において基本燃料噴射量の誤差を迅速に補償し、以って、機関の空燃比を目標空燃比に迅速に近づけることが可能な空燃比制御装置を提供することにある。
【００２０】
本発明による内燃機関の空燃比制御装置は、
内燃機関の排気通路に配設された触媒よりも上流側の同排気通路に配設されるとともに同機関に供給された混合気の空燃比に応じた出力値を出力する上流側空燃比センサと、
噴射指示信号に含まれる指示噴射量の燃料が前記機関の気筒に供給されるように同噴射指示信号に応答して燃料を噴射する燃料噴射手段と、
を備えた内燃機関に適用される。
【００２１】
この空燃比制御装置は、
一回の吸気行程において前記機関の一つの気筒内に吸入される空気量である筒内吸入空気量を同機関の運転状態に基づいて取得する筒内吸入空気量取得手段と、
前記機関の運転状態に応じて前記機関に供給される混合気の空燃比の目標値である目標空燃比を決定する目標空燃比決定手段と、
前記取得された筒内吸入空気量と前記決定された目標空燃比とに基いて前記機関に供給される混合気の空燃比を同目標空燃比とするための補正前基本燃料噴射量を決定する補正前基本燃料噴射量算出手段と、
を備える。
【００２２】
更に、この空燃比制御装置は、メインフィードバック補正値更新手段、基本補正値算出手段、最終燃料噴射量算出手段及び燃料噴射制御手段を備える。
【００２３】
メインフィードバック補正値更新手段は、
所定のメインフィードバック制御条件が成立しているとき、「前記噴射指示信号に基いて前記燃料噴射手段から燃料が噴射されたときから同噴射された燃料が前記気筒内において燃焼することにより生成された排ガスが前記上流側空燃比センサに到達するまでに要する時間である無駄時間」だけ現時点よりも前の時点において前記目標空燃比決定手段により決定されていた前記目標空燃比に応じた値と、前記上流側空燃比センサの現時点における出力値に応じた値と、の差に対してハイパスフィルタ処理を施すことにより得られるメインフィードバック制御用偏差、に基いてメインフィードバック補正値を更新するようになっている。
【００２４】
或いは、メインフィードバック補正値更新手段は、
前記無駄時間だけ現時点よりも前の時点において前記目標空燃比決定手段により決定されていた前記目標空燃比に応じた値と、前記上流側空燃比センサの現時点における出力値に応じた値に対してハイパスフィルタ処理を施すことにより得られる値と、の差であるメインフィードバック制御用偏差、に基いてメインフィードバック補正値を更新するようになっている。
【００２５】
基本補正値算出手段は、
前記メインフィードバック制御条件が成立しているときには成立し且つ同メインフィードバック制御条件が成立していないときであっても他の所定条件が成立していれば成立する基本補正値算出許可条件が成立しているとき、
現時点における前記上流側空燃比センサの出力値と、
前記無駄時間だけ現時点よりも前の時点の前記噴射指示信号に含まれていた指示噴射量と、
前記無駄時間だけ現時点よりも前の時点において前記目標空燃比決定手段により決定されていた目標空燃比と、
から同目標空燃比を得るために必要である真の指示噴射量を求めるとともに、
同真の指示噴射量と、
前記無駄時間だけ現時点よりも前の時点において前記補正前基本燃料噴射量算出手段により決定されていた補正前基本燃料噴射量と、
から同補正前基本燃料噴射量に対する基本補正値を算出するようになっている。
【００２６】
そして、最終燃料噴射量算出手段は、
前記補正前基本燃料噴射量を前記メインフィードバック補正値及び前記基本補正値により補正して最終燃料噴射量を算出し、
燃料噴射制御手段は、
前記最終燃料噴射量を前記指示噴射量として含む噴射指示信号を前記燃料噴射手段に出力するようになっている。
【００２７】
これによれば、基本補正値算出許可条件が成立しているとき、補正前基本燃料噴射量に対する基本補正値が算出される。基本補正値算出許可条件は、メインフィードバック制御条件が成立しているときには成立する。更に、基本補正値算出許可条件は、メインフィードバック制御条件が成立していない場合であっても他の所定条件が成立していれば成立する。
【００２８】
メインフィードバック制御条件が成立していない場合であっても基本補正値算出許可条件を成立させる上記「他の所定条件」が成立する場合とは、例えば、上流側空燃比センサが活性化していて、且つ、上流側空燃比センサの異常判定を行うために機関の空燃比をリッチ空燃比とリーン空燃比との間で強制的に振動させ（機関の空燃比を矩形波状に変化させ）、その際の上流側空燃比センサの出力値の変化を測定する場合などである。このように上流側空燃比センサの異常を判定するために機関の空燃比を矩形波状に変化させようとする場合、メインフィードバック制御が行われると機関の空燃比を矩形波状に変化させることができないから、メインフィードバック制御は中止される（メインフィードバック制御条件は成立しない）。しかし、上流側空燃比センサは活性化しているから、基本補正値を算出することは可能である。
【００２９】
更に、基本補正値算出許可条件を成立させる上記「他の所定条件」が成立する場合には、後述するように、上流側空燃比センサが完全には活性化していない場合であって、且つ、基本補正値を求めても不都合が発生しない「目標空燃比と上流側空燃比センサの出力値とが特定の条件を満足する場合」が含まれる。
【００３０】
この結果、メインフィードバック制御条件が成立しておらずメインフィードバック補正値を更新するメインフィードバック制御が停止されている期間においても、基本補正値が算出・更新される場合が発生する。従って、本発明による空燃比制御装置によれば、メインフィードバック制御条件が成立しておらず且つ基本補正値算出許可条件が成立している場合が終了した後にメインフィードバック制御条件が成立してメインフィードバック制御が開始されたとき、基本補正値は従来の空燃比制御装置による場合よりも適正値に近い値となっている。この結果、メインフィードバック制御の開始後において機関の空燃比をより迅速に目標空燃比に近づけることができる。
【００３１】
なお、本発明において、「上流側空燃比センサの出力値に応じた値」は上流側空燃比センサの出力値そのものの値であってもよい。その場合、「目標空燃比に応じた値」は、目標空燃比を上流側空燃比センサの出力値に相当する値に変換した値、又は、目標空燃比を上流側空燃比センサの出力値に相当する値に変換した値に対して更にローパスフィルタ処理等の変換処理を施した値であってもよい。また、「上流側空燃比センサの出力値に応じた値」は上流側空燃比センサの出力値から求められる空燃比であってもよい。その場合、「目標空燃比に応じた値」は、目標空燃比そのもの、又は、目標空燃比に例えばローパスフィルタ処理等の変換処理を施した値であってもよい。
【００３２】
また、基本補正値は、前記真の指示噴射量及び前記補正前基本燃料噴射量から実質的に求められればよい。換言すると、本発明の上記基本補正値算出手段は、上述した（４）式の右辺から明らかなように、現時点における前記上流側空燃比センサの出力値と、前記無駄時間だけ現時点よりも前の時点の前記噴射指示信号に含まれていた指示噴射量と、前記無駄時間だけ現時点よりも前の時点における筒内吸入空気量とから、基本補正値を求めるものを含む。
【００３３】
この空燃比制御装置において、
前記メインフィードバック制御条件は、前記上流側空燃比センサが活性化していることを同メインフィードバック制御条件が成立するための必要条件の一つに含むように設定されていることが好適である。これによれば、上流側空燃比センサが活性化していて精度良く検出空燃比が得られるときにメインフィードバック補正値が求められることになるので、メインフィードバック補正値が精度よく求められる。なお、本明細書において、ある特定条件の「必要条件」とは、その条件のみでは同特定条件が成立するとは限らないが、その条件が成立していない場合は同特定条件は成立しない条件であることを意味する。
【００３４】
一方、前記基本補正値算出許可条件は、前記上流側空燃比センサが活性化していることを同基本補正値算出許可条件が成立するための必要条件の一つに含むように設定されていることが好適である。これによれば、上流側空燃比センサが活性化していて精度良く検出空燃比が得られるときに基本補正値が求められることになるので、基本補正値が精度よく求められる。
【００３５】
ところで、例えば、図１４及び図１５の領域Ａ（理論空燃比よりもリッチ側の領域）に示したように、上流側空燃比センサの種類によっては、破線により示した未活性であるときの出力値に基く空燃比（検出空燃比）が実際の空燃比（即ち、実空燃比）よりリーン側の空燃比となる場合がある。なお、これらの図において実線は活性後の上流側空燃比センサの出力値と空燃比との関係を示している。検出空燃比は、上流側空燃比センサの出力値を、この活性後の上流側空燃比センサの出力値と空燃比との関係に基いて変換することにより求められる。
【００３６】
この場合（即ち、上流側空燃比センサが完全には活性していない半活性状態にあって、検出空燃比が実空燃比よりリーン側の空燃比となる場合）、検出空燃比が実空燃比と目標空燃比との間にあり且つ同検出空燃比のほうが同実空燃比よりも同目標空燃比に近い空燃比である場合（図１４及び図１５の領域Ａを参照。）、検出空燃比に基いて基本補正値を求めた方が、基本補正値を求めない場合より、基本補正値を最終的に到達するであろう基本補正値（基本補正値の適正値）に近づけておくことができる。
【００３７】
何故なら、検出空燃比は「実空燃比が目標空燃比よりもリッチである」ことを確実に示しているので、検出空燃比に基いて求められる基本補正値は実空燃比に基いて求められる基本補正値と同様に補正前基本燃料噴射量を減少補正する値となるからである。更に、「検出空燃比と目標空燃比との差の大きさ」は「実空燃比と目標空燃比との差の大きさ」より小さいので、検出空燃比に基いて求められる基本補正値は補正前基本燃料噴射量を過剰に減少補正してしまうような値とならないからである。
【００３８】
これに対し、図１６及び図１７の領域Ａ（理論空燃比よりもリッチ側の領域）に示したように、検出空燃比が実空燃比よりリーン側の空燃比となる場合であっても、目標空燃比が実空燃比と検出空燃比との間にあれば（実空燃比が目標空燃比よりリッチ側の空燃比であり、且つ、検出空燃比が目標空燃比よりリーン側の空燃比であれば）、検出空燃比に基いて基本補正値を求めることは望ましくない。何故なら、実空燃比が目標空燃比よりもリッチな空燃比であるので基本補正値は補正前基本燃料噴射量を減少補正する値となるべきであるのに対し、検出空燃比が目標空燃比よりリーンな空燃比となるので基本補正値は補正前基本燃料噴射量を増大補正する値となるからである。即ち、この場合、基本補正値を検出空燃比に基いて求めると、基本補正値は誤った方向への補正（誤った増大補正）を行う値となってしまうからである。
【００３９】
更に、図１８及び図１９の領域Ａ（理論空燃比よりもリッチ側の領域）に示したように、検出空燃比が実空燃比よりリーン側の空燃比となる場合であっても、実空燃比が目標空燃比と検出空燃比の間にある（実空燃比のほうが検出空燃比よりも目標空燃比に近い空燃比である）場合、検出空燃比に基いて基本補正値を求めることは望ましくない。
【００４０】
何故なら、検出空燃比は「実空燃比が目標空燃比よりもリーンである」ことを示しているので、検出空燃比に基いて求められる基本補正値は実空燃比に基いて求められる基本補正値と同様に基本燃料噴射量を増大補正する値となるけれども、「検出空燃比と目標空燃比との差の大きさ」が「実空燃比と目標空燃比との差の大きさ」より大きいので、検出空燃比に基いて求められる基本補正値は補正前基本燃料噴射量を過剰に増大補正してしまうような値となるからである。
【００４１】
また、図１５の領域Ｂ（理論空燃比よりもリーン側の領域）及び図２０に示したように、上流側空燃比センサの種類によっては、破線により示した未活性であるときの出力値に基く空燃比（検出空燃比）が実際の空燃比（即ち、実空燃比）よりリッチ側の空燃比となる場合がある。
【００４２】
この場合（即ち、上流側空燃比センサが完全には活性していない半活性状態にあって、検出空燃比が実空燃比よりリッチ側の空燃比となる場合）、検出空燃比が実空燃比と目標空燃比との間にあり且つ同検出空燃比のほうが同実空燃比よりも同目標空燃比に近い空燃比である場合（図１５の領域Ｂ及び図２０を参照。）、検出空燃比に基いて基本補正値を求めた方が、基本補正値を求めない場合より、基本補正値を適正値に近づけておくことができる。
【００４３】
何故なら、検出空燃比は「実空燃比が目標空燃比よりもリーンである」ことを確実に示しているので、検出空燃比に基いて求められる基本補正値は実空燃比に基いて求められる基本補正値と同様に補正前基本燃料噴射量を増大補正する値となるからである。更に、「検出空燃比と目標空燃比との差の大きさ」は「実空燃比と目標空燃比との差の大きさ」より小さいので、検出空燃比に基いて求められる基本補正値は補正前基本燃料噴射量を過剰に増大補正してしまうような値とならないからである。
【００４４】
これに対し、図１７の領域Ｂ（理論空燃比よりもリーン側の領域）及び図２１に示したように、検出空燃比が実空燃比よりリッチ側の空燃比となる場合であっても、目標空燃比が実空燃比と検出空燃比との間にあれば（実空燃比が目標空燃比よりリーン側の空燃比であり、且つ、検出空燃比が目標空燃比よりリッチ側の空燃比であれば）、検出空燃比に基いて基本補正値を求めることは望ましくない。何故なら、実空燃比が目標空燃比よりもリーンな空燃比であるので基本補正値は補正前基本燃料噴射量を増大補正する値となるべきであるのに対し、検出空燃比が目標空燃比よりリッチな空燃比となるので、基本補正値は補正前基本燃料噴射量を減少補正する値となるからである。即ち、この場合、基本補正値を検出空燃比に基いて求めると、基本補正値は誤った方向への補正（誤った減少補正）を行う値となってしまうからである。
【００４５】
更に、図１９の領域Ｂ（理論空燃比よりもリーン側の領域）及び図２２に示したように、検出空燃比が実空燃比よりリッチ側の空燃比となる場合となる場合であっても、実空燃比が目標空燃比と検出空燃比の間にある（実空燃比のほうが検出空燃比よりも目標空燃比に近い空燃比である）場合、検出空燃比に基いて基本補正値を求めることは望ましくない。
【００４６】
何故なら、検出空燃比は「実空燃比が目標空燃比よりもリッチである」ことを示しているので、検出空燃比に基いて求められる基本補正値は実空燃比に基いて求められる基本補正値と同様に補正前基本燃料噴射量を減少補正する値となるけれども、「検出空燃比と目標空燃比との差の大きさ」が「実空燃比と目標空燃比との差の大きさ」より大きいので、検出空燃比に基いて求められる基本補正値は補正前基本燃料噴射量を過剰に減少補正してしまうような値となるからである。
【００４７】
以上から、
基本補正値算出許可条件は、
前記上流側空燃比センサが活性化していない場合であっても、前記上流側空燃比センサの出力値に基いて得られる空燃比である検出空燃比が前記機関に供給される混合気の実際の空燃比である実空燃比と前記目標空燃比との間に存在すると判断されるときにも成立し得るように設定されていることが好適である。
【００４８】
即ち、基本補正値算出許可条件は、前記上流側空燃比センサが活性化していること、及び、前記上流側空燃比センサが活性化していない場合であっても前記上流側空燃比センサの出力値に基いて得られる空燃比である検出空燃比が前記機関に供給される混合気の実際の空燃比である実空燃比と前記目標空燃比との間に存在していると判断されること、の何れか一方を同基本補正値算出許可条件が成立するための必要条件の一つに含むように設定されていることが望ましい。
【００４９】
より具体的には、前記基本補正値算出許可条件は、
前記上流側空燃比センサが活性化していること、及び、前記上流側空燃比センサが活性していない場合であっても前記機関に供給される混合気の実際の空燃比である実空燃比に対して前記上流側空燃比センサの出力値に基いて得られる空燃比である検出空燃比がリーン側の空燃比となる領域内に同実空燃比が存在し且つ前記目標空燃比が同検出空燃比よりもリーン側に存在していること、の何れか一方を同基本補正値算出許可条件が成立するための必要条件の一つに含む、ように設定されていることが好ましい。
【００５０】
同様に、前記基本補正値算出許可条件は、
前記上流側空燃比センサが活性化していること、及び、前記上流側空燃比センサが活性していない場合であっても前記機関に供給される混合気の実際の空燃比である実空燃比に対して前記上流側空燃比センサの出力値に基いて得られる空燃比である検出空燃比がリッチ側の空燃比となる領域内に同実空燃比が存在し且つ前記目標空燃比が同検出空燃比よりもリッチ側に存在していること、の何れか一方を同基本補正値算出許可条件が成立するための必要条件の一つに含む、ように設定されていることが好ましい。
【００５１】
これによれば、上流側空燃比センサが未活性であるためにメインフィードバック制御条件が不成立であるが故にメインフィードバック制御が行われない期間においても、基本補正値が算出される場合が生じる。従って、本発明による空燃比制御装置は、従来の空燃比制御装置に比較し、メインフィードバック制御実行開始後において機関の空燃比を迅速に目標空燃比に近づけることができる。
【発明を実施するための最良の形態】
【００５２】
以下、本発明による内燃機関の空燃比制御装置（以下、単に「本装置」と称呼することもある。）の各実施形態について図面を参照しつつ説明する。
【００５３】
（第１実施形態）
図１は、第１実施形態による空燃比制御装置を火花点火式多気筒（４気筒）内燃機関１０に適用したシステムの概略構成を示している。この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排気ガスを外部に放出するための排気系統５０とを含んでいる。
【００５４】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００５５】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともにインテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。後述するように、燃料噴射手段としてのインジェクタ３９は、噴射指示信号に応答して同噴射指示信号に含まれる指示噴射量の燃料を噴射するようになっている。
【００５６】
吸気系統４０は、吸気ポート３１に連通し吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットル弁４３及びスロットル弁駆動手段を構成するＤＣモータからなるスロットル弁アクチュエータ４３ａを備えている。
【００５７】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１（実際には、各排気ポート３４に連通した各々のエキゾーストマニホールド５１が集合した集合部）に接続されたエキゾーストパイプ（排気管）５２、上流側の三元触媒５３及び下流側の三元触媒５４を備えている。上流側の三元触媒５３は、エキゾーストパイプ５２に配設（介装）されている。排気ポート３４、エキゾーストマニホールド５１及びエキゾーストパイプ５２は排気通路を構成している。
【００５８】
上流側の三元触媒５３は、上流側触媒コンバータ又はスタート・キャタリティック・コンバータとも称呼される。上流側の三元触媒５３は、以下、「第１触媒５３」とも称呼する。下流側の三元触媒５４は、第１触媒５３の下流のエキゾーストパイプ５２に配設（介装）されている。下流側の三元触媒５４は、車両のフロア下方に配設されるため、アンダ・フロア・キャタリティック・コンバータとも称呼される。下流側の三元触媒５４は、以下、「第２触媒５４」とも称呼する。第１触媒５３及び第２触媒５４は、何れも触媒物質である貴金属の他に、セリア（CeO2)を担持していて、後述する酸素吸蔵・放出機能（単に「酸素吸蔵機能」又は「Ｏ２ストレージ機能」とも称呼する。）を有する。
【００５９】
一方、このシステムは、熱線式エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、水温センサ６５、第１触媒５３の上流の排気通路（本例では、上記各々のエキゾーストマニホールド５１が集合した集合部）に配設された空燃比センサ６６（以下、「上流側空燃比センサ６６」とも称呼する。）、第１触媒５３の下流であって第２触媒５４の上流の排気通路に配設された酸素濃度センサ６７（以下、「下流側酸素濃度センサ６７」とも称呼する。）及びアクセル開度センサ６８を備えている。なお、下流側酸素濃度センサ６７は、下流側空燃比センサ６７とも称呼され得る。但し、本明細書において、特に断りのない限り、「空燃比センサ」と呼ばれるセンサは上流側空燃比センサ６６を意味することとする。
【００６０】
熱線式エアフローメータ６１は、吸気管４１内を流れる吸入空気の単位時間あたりの質量流量を検出し、質量流量Gaを表す信号を出力するようになっている。スロットルポジションセンサ６２は、スロットル弁４３の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ６３は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともにクランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、機関回転速度NEを表す。水温センサ６５は、内燃機関１０の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【００６１】
上流側空燃比センサ６６は限界電流式の酸素濃度センサである。上流側空燃比センサ６６は素子温度が活性化温度に到達したときに活性化する。上流側空燃比センサ６６は、図２の実線により示したように、配設された部分の排気通路を通過するガス（被検出排ガス）の空燃比Ａ／Ｆ（従って、機関に供給される混合気の空燃比）に応じた電圧である出力値vabyfsを出力するようになっている。
【００６２】
出力値vabyfsは、被検出排ガスの空燃比が理論空燃比であるときに値vstoichに一致する。出力値vabyfsは、被検出排ガスの空燃比が大きくなる（リーンとなる）ほど増大する。但し、出力値vabyfsは、被検出排ガスの空燃比が理論空燃比よりリッチであるときより理論空燃比がリーンとなったとき、空燃比の増大に伴って緩やかに増大する。このように、上流側空燃比センサ６６は、広範囲にわたる空燃比Ａ／Ｆを精度良く検出することができる「広域空燃比センサ」である。なお、上流側空燃比センサ６６の素子の抵抗値は、上流側空燃比センサ６６の活性化の程度（素子温度）を表すパラメータとなる。
【００６３】
上流側空燃比センサ６６は、上流側空燃比センサ６６に到達しているガスの空燃比がステップ状にしても出力値が徐々に変化するという検出応答遅れ特性を有する。より具体的に述べると、上流側空燃比センサ６６に到達しているガスの空燃比の値を入力信号とし、上流側空燃比センサ６６の出力値vabyfsに基いて求められる空燃比の値を出力信号とするとき、出力信号は入力信号に対してローパスフィルタ処理（例えば、所謂「なまし処理」を含む一次遅れ処理及び二次遅れ処理等）を施した信号と極めて似た信号となる。
【００６４】
更に、上流側空燃比センサ６６は、素子温度が活性化温度に到達していないが、ある程度の温度となった状態（この状態を「半活性状態」という。）において、図２の破線により示した出力値vabyfsを出力するようになっている。より具体的に述べると、上流側空燃比センサ６６は、半活性状態にあるとき、実際の空燃比（実空燃比）が理論空燃比よりリッチ側の空燃比であれば、活性状態における出力値vabyfsより大きく且つ実空燃比が理論空燃比から遠ざかるほど活性状態における出力値vabyfsとの差が大きくなる出力値vabyfsを出力する。また、上流側空燃比センサ６６は、半活性状態にあるとき、実際の空燃比（実空燃比）が理論空燃比よりリーン側の空燃比であれば、活性状態における出力値vabyfsより小さく且つ実空燃比が理論空燃比から遠ざかるほど活性状態における出力値vabyfsとの差が大きくなる出力値vabyfsを出力する。
【００６５】
本装置において、後述する電気制御装置は、図２の実線により示したテーブル（マップ）Mapabyfsを記憶していて、そのテーブルに実際の出力値vabyfsを適用することによって空燃比を検出する（検出空燃比を取得する。）。従って、図１５に示したように、上流側空燃比センサ６６が半活性状態にある場合、実空燃比が理論空燃比よりリッチ側の空燃比であるとき検出空燃比（出力値vabyfsと上記テーブルMapabyfsとにより得られる空燃比）は実空燃比よリーン側の空燃比となり、実空燃比が理論空燃比よりリーン側の空燃比であるとき検出空燃比は実空燃比よりリッチ側の空燃比となる。なお、検出空燃比は、上流側空燃比センサ６６が未活性であるときの出力値を、活性化しているときの出力値と空燃比との関係（テーブルMapabyfs）に基いて変換した空燃比であると言うこともできる。
【００６６】
下流側酸素濃度センサ６７は起電力式（濃淡電池式）の酸素濃度センサである。下流側酸素濃度センサ６７は、配設された部分の排気通路を通過するガス（排ガス）に含まれる酸素濃度に応じた値を出力するようになっている。より具体的に述べると、下流側酸素濃度センサ６７は、図３に示したように、理論空燃比近傍において急変する電圧である出力値Voxsを出力する。即ち、下流側酸素濃度センサ６７は、空燃比が理論空燃比よりもリーンのときは略０．１（Ｖ）、空燃比が理論空燃比よりもリッチのときは略０．９（Ｖ）、空燃比が理論空燃比のときは０．５（Ｖ）の電圧を出力するようになっている。アクセル開度センサ６８は、運転者によって操作されるアクセルペダル８１の操作量を検出し、アクセルペダル８１の操作量Accpを表す信号を出力するようになっている。
【００６７】
電気制御装置７０は、互いにバスで接続されたＣＰＵ７１、ＣＰＵ７１が実行するルーチン（プログラム）、テーブル（ルックアップテーブル、マップ）及び定数等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、電源が投入された状態でデータを格納するとともに格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ７４、並びに、ＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。インターフェース７５は、前記センサ６１〜６８と接続され、ＣＰＵ７１にセンサ６１〜６８からの信号を供給するとともに、ＣＰＵ７１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９及びスロットル弁アクチュエータ４３ａ等に駆動信号（指示信号）を送出するようになっている。
【００６８】
（空燃比制御）
次に、上記のように構成された空燃比制御装置が行う機関の空燃比制御について説明する。
【００６９】
第１触媒５３は、第１触媒５３に流入するガスの空燃比が理論空燃比であるとき、ＨＣ,ＣＯを酸化するとともにＮＯｘを還元することにより、これらの有害成分を高い効率で浄化する。また、第１触媒５３は、酸素吸蔵機能により、空燃比が理論空燃比からある程度まで偏移したとしても、ＨＣ,ＣＯ、及びＮＯｘを浄化することができる。即ち、機関の空燃比がリーンとなって第１触媒５３に流入するガスにＮＯｘが多量に含まれると、第１触媒５３はＮＯｘから酸素分子を奪って同酸素分子を吸蔵するとともに同ＮＯｘを還元することによりＮＯｘを浄化する。また、機関の空燃比がリッチになって第１触媒５３に流入するガスにＨＣ,ＣＯが多量に含まれると、三元触媒は吸蔵している酸素分子をこれらの成分に対して与えて（放出して）これらの成分を酸化することによりＨＣ,ＣＯを浄化する。なお、第２触媒５４も第１触媒５３と同様にして有害成分を浄化する。
【００７０】
従って、第１触媒５３が連続的に流入する多量のＨＣ,ＣＯを効率的に浄化するためには、同第１触媒５３が酸素を多量に貯蔵していなければならず、逆に連続的に流入する多量のＮＯｘを効率的に浄化するためには、同第１触媒５３が酸素を十分に貯蔵し得る状態になければならないことになる。以上のことから、第１触媒５３の浄化能力は、同第１触媒５３が貯蔵し得る最大の酸素量（最大酸素吸蔵量）に依存する。
【００７１】
一方、第１触媒５３のような三元触媒は燃料中に含まれる鉛や硫黄等による被毒及び触媒に加わる熱により劣化し、これに伴い最大酸素吸蔵量が次第に低下してくる。このように最大酸素吸蔵量が低下した場合であっても、エミッションの排出量を継続的に抑制するには、第１触媒５３から排出されるガスの空燃比（従って、第１触媒５３に流入するガスの平均空燃比）が、理論空燃比に極めて近い状態となるように制御する必要がある。
【００７２】
そこで、本実施形態の空燃比制御装置は、目標空燃比が理論空燃比であるとき、下流側酸素濃度センサ６７の出力値が下流側目標空燃比としての理論空燃比に対応する下流側目標値Voxsref（０．５（Ｖ））となるように、下流側酸素濃度センサ６７の出力値Voxs（即ち、第１触媒下流の空燃比）に応じて機関の空燃比を制御する。この下流側酸素濃度センサ６７の出力値に基づく空燃比フィードバック制御をサブフィードバック制御と称呼する。
【００７３】
一方、第１触媒５３は酸素吸蔵機能を有するから、上記背景技術の項目において説明したように、第１触媒上流の空燃比変化は所定の遅れ時間が経過した後に触媒下流の空燃比変化となって現れる。従って、サブフィードバック制御のみでは過渡的な空燃比変動を抑制することが困難である。そこで、上流側空燃比センサ６６の出力値vabyfsに基く空燃比フィードバック制御（即ち、メインフィードバック制御）を行い、過渡的な空燃比変動を抑制する。このとき、本装置は、メインフィードバック制御とサブフィードバック制御との間に上述した制御上の干渉が発生することがないように、以下に述べる複数の手段による空燃比制御を行う。
【００７４】
即ち、この空燃比制御装置は、機能ブロック図である図４に示した複数の手段等を含んで構成されている。以下、図４を参照しながら説明する。
【００７５】
＜補正後基本燃料噴射量の算出＞
筒内吸入空気量算出手段Ａ１は、エアフローメータ６１が計測している吸入空気流量Ｇａと、クランクポジションセンサ６４の出力に基づいて得られる機関回転速度NEと、ＲＯＭ７２が記憶しているテーブルMapMcと、に基づき今回の吸気行程を迎える気筒の吸入空気量である筒内吸入空気量Mc(k)を求める。ここで、添え字の（k）は、前述したように、今回の吸気行程に対する値であることを示している。筒内吸入空気量Mcは、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【００７６】
上流側目標空燃比設定（決定）手段Ａ２は、内燃機関１０の運転状態である機関回転速度NE及びスロットル弁開度TA（機関の負荷）等に基づいて上流側目標空燃比abyfr(k)を決定する。上流側目標空燃比設定手段Ａ２は、単に、目標空燃比設定手段とも称呼される。上流側目標空燃比abyfr(k)は上流側空燃比センサ６６の出力値に基いて得られる検出空燃比abyfsの目標値の基礎となる値である。上流側目標空燃比abyfr(k)は、例えば、内燃機関１０の暖機終了後においては、特殊な場合（例えば、第１触媒５３を過熱から保護する場合等）を目的を除き理論空燃比に設定されている。上流側目標空燃比abyfr(k)は各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【００７７】
補正前基本燃料噴射量算出手段Ａ３は、下記に再度記載した上述した（３）式に示したように、筒内吸入空気量算出手段Ａ１により求められた筒内吸入空気量Mc(k)を上流側目標空燃比設定手段Ａ２により設定された上流側目標空燃比abyfr(k)で除することにより、機関の空燃比を上流側目標空燃比abyfr(k)とするための今回の吸気行程に対する基本燃料噴射量Fbaseb(k)を求める。基本燃料噴射量Fbaseb(k)は、後述する基本補正値KF等による補正がなされる前の基本燃料噴射量であるから、補正前基本燃料噴射量Fbaseb(k)とも称呼される。補正前基本燃料噴射量Fbaseb(k)は各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
Fbaseb(k)＝Mc(k)／abyfr(k)      …（３）
【００７８】
補正後基本燃料噴射量算出手段Ａ４は、補正前基本燃料噴射量算出手段Ａ３により求められた今回の補正前基本燃料噴射量Fbaseb(k)に後述する基本補正値算出手段Ａ１６により求められてバックアップＲＡＭ７４に格納されている基本補正値KFを乗じることで補正後基本燃料噴射量Fbase(k)（＝KF・Fbaseb(k)）を求める。基本補正値算出手段Ａ１６については後に詳述する。
【００７９】
このように、本装置は、筒内吸入空気量算出手段Ａ１、上流側目標空燃比設定手段Ａ２、補正前基本燃料噴射量算出手段Ａ３、補正後基本燃料噴射量算出手段Ａ４及び基本補正値算出手段Ａ１６を利用して、補正後基本燃料噴射量Fbase(k)を求める。
【００８０】
＜最終燃料噴射量の算出＞
最終燃料噴射量算出手段Ａ５は、下記に再度記載した上述した（５）式により示したように、補正後基本燃料噴射量Fbase(k)（＝KF・Fbaseb(k)）に後述するメインフィードバック補正値更新手段Ａ１５によって求められているメインフィードバック補正値KFmainを乗じ、それらの積（＝Fbase(k)・KFmain）に後述するＰＩＤコントローラＡ９によって求められているサブフィードバック補正値Fisubを加えて今回の最終燃料噴射量Fi(k)を求める。最終燃料噴射量Fi(k)は、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
Fi(k)＝（KF・Fbaseb(k)）・KFmain＋Fisub＝Fbase(k)・KFmain＋Fisub…（５）
【００８１】
このように、本装置は、最終燃料噴射量算出手段Ａ５により、補正後基本燃料噴射量Fbase(k)をメインフィードバック補正値KFmainとサブフィードバック補正値Fisubとに基づいて補正することにより最終燃料噴射量Fi(k)を求める。更に、本装置は、この最終燃料噴射量Fi(k)の燃料が、今回の吸気行程を迎える気筒のインジェクタ３９から噴射されるように、そのインジェクタ３９に対して噴射指示信号を送出する。換言すると、噴射指示信号は、最終燃料噴射量Fi(k)に関する情報を指示噴射量として含んでいる。
【００８２】
＜サブフィードバック補正値の算出＞
下流側目標値設定手段Ａ６は、上述した上流側目標空燃比設定手段Ａ２と同様、内燃機関１０の運転状態である機関回転速度NE及びスロットル弁開度TA（機関の負荷）等に基づいて下流側目標空燃比に対応する下流側目標値Voxsrefを決定する。この下流側目標値Voxsrefは、例えば、内燃機関１０の暖機終了後においては、特殊な場合を除き理論空燃比に対応する値である０．５（Ｖ）に設定されている。また、本例では、下流側目標値Voxsrefは、下流側目標値Voxsrefに対応する下流側目標空燃比が上述した上流側目標空燃比abyfr(k)と常時一致するように設定される。
【００８３】
出力偏差量算出手段Ａ７は、下記（６）式に基づいて、下流側目標値設定手段Ａ６により設定されている現時点（具体的には、今回のFi(k)の噴射指示開始時点）での下流側目標値Voxsrefから同現時点での下流側酸素濃度センサ６７の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。出力偏差量算出手段Ａ７は、求めた出力偏差量DVoxsをローパスフィルタＡ８に出力する。
DVoxs＝Voxsref−Voxs  ・・・（６）
【００８４】
ローパスフィルタＡ８は一次のデジタルフィルタである。ローパスフィルタＡ８の特性を表す伝達関数Ａ８（ｓ）は下記の（７）式により示される。（７）式において、ｓはラプラス演算子であり、τ1は時定数である。ローパスフィルタＡ８は周波数（１／τ1）以上の高周波数成分が通過することを実質的に禁止する。ローパスフィルタＡ８は出力偏差量DVoxsの値を入力するとともに出力偏差量DVoxsの値をローパスフィルタ処理した後の値であるローパスフィルタ通過後出力偏差量DVoxslowをＰＩＤコントローラＡ９に出力する。
Ａ８（ｓ）＝１／（１+τ1・s）  ・・・（７）
【００８５】
ＰＩＤコントローラＡ９は、ローパスフィルタ通過後出力偏差量DVoxslowを下記（８）式に基づいて比例・積分・微分処理（ＰＩＤ処理）し、サブフィードバック補正値Fisubを求める。
Fisub＝Kp・DVoxslow＋Ki・SDVoxslow＋Kd・DDVoxslow  ・・・（８）
【００８６】
上記（８）式において、Kpは予め設定された比例ゲイン（比例定数）、Kiは予め設定された積分ゲイン（積分定数）、Kdは予め設定された微分ゲイン（微分定数）である。また、SDVoxslowはローパスフィルタ通過後出力偏差量DVoxslowの時間積分値であり、DDVoxslowはローパスフィルタ通過後出力偏差量DVoxslowの時間微分値である。以上により、サブフィードバック補正値Fisubが求められる。
【００８７】
上記（８）式は積分項Ki・SDVoxslowを含んでいるので、定常状態では出力偏差量DVoxsがゼロになることが保証される。換言すれば、下流側目標値Voxsrefと下流側酸素濃度センサ６７の出力値Voxsとの定常偏差がゼロになる。また、定常状態においては、出力偏差量DVoxsがゼロになるから、比例項Kp・DVoxslow及び微分項Kd・DDVoxslowの両者がゼロとなる。従って、サブフィードバック補正値Fisubの定常状態における収束値は積分項Ki・SDVoxslowの値と等しくなる。
【００８８】
以上から明らかなように、下流側目標値設定手段Ａ６、出力偏差量算出手段Ａ７、ローパスフィルタＡ８及びＰＩＤコントローラＡ９はサブフィードバック補正値算出手段を構成している。
【００８９】
＜メインフィードバック制御＞
先に説明したように、第１触媒５３は酸素吸蔵機能を有している。従って、第１触媒５３の上流の排ガスの空燃比の変動における「比較的周波数の高い高周波数成分（前記周波数１／τ1以上の高周波数成分）」及び「比較的周波数が低く且つ振幅が比較的小さい低周波数成分（前記周波数１／τ1以下の周波数にて変動するとともに理論空燃比からの偏移量が比較的小さい低周波成分）」は、第１触媒５３の酸素吸蔵機能により吸収されるから、第１触媒５３の下流の排ガスの空燃比の変動として現れ難い。
【００９０】
従って、例えば、排ガスの空燃比が前記周波数（１／τ1）以上の高周波数で大きく変動するような「過渡運転状態における空燃比の急変」に対する補償は、サブフィードバック制御により行われ得ない。それ故、「過渡運転状態における空燃比の急変」に対する補償を確実に行うためには、上流側空燃比センサ６６の出力値vabyfsに基づいたメインフィードバック制御を行う必要がある。
【００９１】
一方、第１触媒５３の上流の排ガスの空燃比の変動における「周波数が比較的低くて振幅が比較的大きい低周波数成分（例えば、前記周波数（１／τ1）以下の周波数で変動するとともに理論空燃比からの偏移量が比較的大きい低周波成分）」は、第１触媒５３の酸素吸蔵機能では完全には吸収されない。従って、そのような第１触媒５３の上流における空燃比の変動は、所定の遅れを有しながら下流の排ガスの空燃比の変動として現れる。この結果、上流側空燃比センサ６６の出力値vabyfsと下流側酸素濃度センサ６７の出力値Voxsとが目標空燃比（例えば、理論空燃比）に対して互いに逆方向に偏移した空燃比を示す値となる場合が存在し、メインフィードバック制御とサブフィードバック制御との間に制御上の干渉が生じる場合がある。
【００９２】
以上のことから、本装置は、上流側空燃比センサ６６の出力値vabyfsの変動における各周波数成分のうち第１触媒５３の下流の空燃比の変動として現れ得る程度の周波数成分である所定の周波数（本例では、周波数（１／τ1））以下の低周波数成分をカットした後の上流側空燃比センサ６６の出力値vabyfsに応じた値をメインフィードバック制御に使用する。このメインフィードバック制御に使用される上流側空燃比センサ６６の出力値vabyfsに応じた値は、本例においては、「メインフィードバック制御用目標空燃比abyfrtgt(k)と上流側空燃比センサ６６の出力値vabyfs(k)との偏差Dafに対してハイパスフィルタ処理を施した値」である。この結果、前述した空燃比制御の干渉が発生することを回避することができるとともに、メインフィードバック制御によって過渡運転状態における空燃比の急変に対する補償を確実に行うことができる。より具体的には、メインフィードバック補正値は以下に述べるようにして求められる。
【００９３】
＜メインフィードバック補正値の算出＞
テーブル変換手段Ａ１０は、上流側空燃比センサ６６の出力値vabyfsと、図２の実線により示した上流側空燃比センサ出力値vabyfsと空燃比Ａ／Ｆとの関係を表すテーブルMapabyfsと、に基づいて、上流側空燃比センサ６６が検出する現時点の検出空燃比abyfs(k)を求める。
【００９４】
目標空燃比遅延手段Ａ１１は、上流側目標空燃比設定手段Ａ２により決定され、且つ、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されている上流側目標空燃比abyfrのうち、現時点からＮストローク（Ｎ回の吸気行程）前の時点の上流側目標空燃比abyfrをＲＡＭ７３から読み出し、これを上流側目標空燃比abyfr(k-N)として設定する。後述するように、上流側目標空燃比abyfr(k-N)は、メインフィードバック補正値の算出に用いられる。上流側目標空燃比abyfr(k-N)は、現時点からＮストローク前に吸気行程を迎えた気筒の補正前基本燃料噴射量Fbaseb(k)を算出するために用いられた上流側目標空燃比である。
【００９５】
ここで、前記値Ｎは、内燃機関１０の排気量及び燃焼室２５から上流側空燃比センサ６６までの距離等により異なる値である。このように、現時点からＮストローク前の実際の上流側目標空燃比abyfr(k-N)をメインフィードバック補正値の算出に用いるのは、インジェクタ３９から噴射された燃料を含み且つ燃焼室２５内で燃焼された混合気が上流側空燃比センサ６６に到達するまでには、Ｎストロークに相当する無駄時間Ｌ１を要しているからである。なお、値Ｎは、機関回転速度NEが大きいほど小さくなり、且つ、機関の負荷（例えば、筒内吸入空気量Mc）が大きくなるほど小さくなるように変更されることが望ましい。
【００９６】
ローパスフィルタＡ１２は、目標空燃比遅延手段Ａ１１から出力された現時点からＮストローク前の実際の上流側目標空燃比abyfr(k-N)に対してローパスフィルタ処理を施し、メインフィードバック制御用目標空燃比（上流側フィードバック制御用目標空燃比）abyfrtgt(k)を算出する。メインフィードバック制御用目標空燃比abyfrtgt(k)は、上流側目標空燃比設定手段Ａ２により決定されていた上流側の目標空燃比abyfr(k-N)に応じた値である。
【００９７】
このローパスフィルタＡ１２は一次のディジタルフィルタである。ローパスフィルタＡ１２の伝達特性Ａ１２（ｓ）は下記の（９）式により示される。（９）式において、ｓはラプラス演算子であり、τは時定数（応答性に関するパラメータ）である。この特性により、周波数（１／τ）以上の高周波数成分の通過が実質的に禁止される。
Ａ１２（ｓ）＝１／（１＋τ・s）  ・・・（９）
【００９８】
前述したように、上流側空燃比センサ６６に到達しているガスの空燃比の値を入力信号とし、上流側空燃比センサ６６の出力値vabyfsに基いて求められる空燃比の値を出力信号とするとき、出力信号は入力信号に対してローパスフィルタ処理（例えば、所謂「なまし処理」を含む一次遅れ処理及び二次遅れ処理等）を施した信号と極めて似た信号となる。この結果、ローパスフィルタＡ１２により生成されるメインフィードバック制御用目標空燃比abyfrtgt(k)は、上流側空燃比センサ６６に目標空燃比abyfr(k−N）に応じた望ましい空燃比の排ガスが到達しているとき、実際に上流側空燃比センサ６６が出力するであろう値となる。
【００９９】
上流側空燃比偏差算出手段Ａ１３は、下記（１０）式に基づいて、ローパスフィルタＡ１２から出力されたメインフィードバック制御用目標空燃比abyfrtgt(k)からテーブル変換手段Ａ１０により求められた現時点の検出空燃比abyfs(k)を減じることにより、空燃比偏差Dafを求める。この空燃比偏差Dafは、Ｎストローク前の時点において筒内に供給された混合気の空燃比の目標空燃比からの偏差を表す量である。
Daf＝abyfrtgt(k)−abyfs(k)  ・・・（１０）
【０１００】
ハイパスフィルタＡ１４は一次のフィルタである。ハイパスフィルタＡ１４の特性を表す伝達関数Ａ１４（ｓ）は（１１）式により示される。（１１）式において、ｓはラプラス演算子であり、τ1は時定数である。時定数τ1は上記ローパスフィルタＡ８の時定数τ1と同一の時定数である。ハイパスフィルタＡ１４は、周波数（１／τ1）以下の低周波数成分が通過することを実質的に禁止する。
Ａ１４（ｓ）＝{１−１／（１+τ1・s）}  ・・・（１１）
【０１０１】
ハイパスフィルタＡ１４は、前記上流側空燃比偏差算出手段Ａ１３により求められた空燃比偏差Dafを入力するとともに、上記（１１）式より表された特性式に従って空燃比偏差Dafをハイパスフィルタ処理した後の値であるメインフィードバック制御用偏差DafHiを出力する。
【０１０２】
メインフィードバック補正値更新手段Ａ１５は、ハイパスフィルタＡ１４の出力値であるメインフィードバック制御用偏差DafHiを比例処理する。即ち、メインフィードバック補正値更新手段Ａ１５は、メインフィードバック制御用偏差DafHiに比例ゲインGpHiを乗じることにより、メインフィードバック補正値KFmainを求める。このメインフィードバック補正値KFmainは、先述したように最終燃料噴射量算出手段Ａ５が今回の最終燃料噴射量Fi(k)を求める際に使用される。
【０１０３】
なお、メインフィードバック補正値更新手段Ａ１５は、下記（１２）式に基いて、ハイパスフィルタＡ１４の出力値であるメインフィードバック制御用偏差DafHiを比例・積分処理（ＰＩ処理）することにより、メインフィードバック補正値KFmainを求めてもよい。
KFmain＝(Gphi・DafHi＋Gihi・SDafHi)・KFB  ・・・（１２）
【０１０４】
上記（１２）式において、Gphiは予め設定された比例ゲイン（比例定数）、Gihiは予め設定された積分ゲイン（積分定数）である。SDafHiはメインフィードバック制御用偏差DafHiの時間積分値である。係数KFBは本例では「１」である。しかしながら、係数KFBは、機関回転速度NE及び筒内吸入空気量Mc等により可変とすることが好適である。
【０１０５】
以上から明らかなように、上流側目標空燃比設定手段Ａ２、テーブル変換手段Ａ１０、目標空燃比遅延手段Ａ１１、ローパスフィルタＡ１２、上流側空燃比偏差算出手段Ａ１３、ハイパスフィルタＡ１４及びメインフィードバック補正値更新手段Ａ１５は、メインフィードバック補正値算出手段を構成している。
【０１０６】
このように、本装置は、メインフィードバック制御系とサブフィードバック制御系とを補正前基本燃料噴射量Fbasebに対して並列且つ独立に接続している。即ち、本装置は、補正後基本燃料噴射量Fbaseとメインフィードバック補正値KFmainとの積にサブフィードバック補正値Fisubを加えることによるサブフィードバック制御を、補正後基本燃料噴射量Fbaseにメインフィードバック補正値KFmainを乗じることによるメインフィードバック制御とは独立に実行する。更に、前述したように、メインフィードバック制御用偏差DafHiは、ハイパスフィルタＡ１４によって空燃比偏差Dafにハイパスフィルタ処理を施した値であって上流側触媒５３の下流には現れない空燃比変動を反映した値である。従って、メインフィードバック補正値KFmainとサブフィードバック補正値Fisubとは、機関に供給される混合気の空燃比の変動を干渉するように補正することがない。加えて、メインフィードバック制御により過渡運転状態における空燃比の急変が抑制され、サブフィードバック制御により第１触媒５３の下流の空燃比の変動として現れる緩やかな空燃比の偏移が解消される。
【０１０７】
＜基本補正値の算出＞
前述したように、サブフィードバック補正値FisubはＰＩＤコントローラＡ９によりローパスフィルタ通過後出力偏差量DVoxslowを比例・積分・微分処理することによって算出される。しかしながら、第１触媒５３の酸素吸蔵機能の影響により機関の空燃比の変化は少し遅れて同第１触媒５３の下流の排ガスの空燃比の変化として現れる。従って、上述したエアフローメータの検出精度や空気量推定モデルの推定精度に起因する定常的な誤差の大きさが運転領域の急変等によって比較的急激に増大する場合、その誤差に起因する燃料噴射量の過不足分をサブフィードバック制御のみにより直ちに補償することはできない。
【０１０８】
一方、前記酸素吸蔵機能による遅れの影響がないメインフィードバック制御において、ハイパスフィルタＡ１４によるハイパスフィルタ処理は微分処理（Ｄ処理）と同等の機能を達成する処理である。従って、ハイパスフィルタＡ１４通過後の値がメインフィードバック補正値更新手段Ａ１５の入力値とされている上記メインフィードバック制御においては、仮にメインフィードバック補正値更新手段Ａ１５が積分処理を行うことによりメインフィードバック補正値KFmainを求めるように構成されている場合であっても、実質的な積分項を含むメインフィードバック補正値KFmainを算出することができない。それ故、上記メインフィードバック制御より、上記エアフローメータの検出精度や空気量推定モデルの推定精度に起因する燃料噴射量の定常的な誤差は補償され得ない。その結果、運転領域が変化した場合等において、一時的に有害成分の排出量が増大する場合が発生するという可能性がある。
【０１０９】
以上のことから、本装置は、補正前基本燃料噴射量Fbasebを補正する基本補正値KFを求め、その基本補正値KFによって補正後基本燃料噴射量Fbase(k)を求め、その補正後基本燃料噴射量Fbase(k)を更にメインフィードバック補正値KFmain及びサブフィードバック補正値Fisubにより補正している（上記（５）式を参照。）。この基本補正値KFは、上述した（４）式により表された原理に従って構成された基本補正値算出手段Ａ１６によって算出される。以下、基本補正値算出手段Ａ１６の機能ブロック図である図５を参照しながら、基本補正値KFの実際の算出の仕方について説明する。基本補正値算出手段Ａ１６は、Ａ１６ａ〜Ａ１６ｆの各手段等を含んで構成されている。
【０１１０】
最終燃料噴射量遅延手段Ａ１６ａは、今回の最終燃料噴射量Fi(k)を遅延させることにより現時点からＮストローク前の最終燃料噴射量Fi(k-N)を求める。実際には、最終燃料噴射量遅延手段Ａ１６ａは最終燃料噴射量Fi(k-N)をＲＡＭ７３から読み出す。
【０１１１】
目標空燃比遅延手段Ａ１６ｂは、今回の目標空燃比abyfr(k)を遅延させることにより現時点からＮストローク前の目標空燃比abyfr(k-N)を求める。実際には、目標空燃比遅延手段Ａ１６ｂは目標空燃比abyfr(k-N)をＲＡＭ７３から読み出す。
【０１１２】
真の基本燃料噴射量算出手段Ａ１６ｃは、上記（２）式（Fbaset(k-N)＝（(abyfs(k)・Fi(k-N)／abyfr(k-N)）に従って現時点からＮストローク前の真の基本燃料噴射量Fbaset(k-N)（現時点からＮストローク前の時点における目標空燃比abyfr(k-N)を得るために必要であった燃料噴射量（指示噴射量））を求める。
【０１１３】
補正前基本燃料噴射量遅延手段Ａ１６ｄは、今回の補正前基本燃料噴射量Fbaseb(k)を遅延させることにより現時点からＮストローク前の補正前基本燃料噴射量Fbaseb(k-N)を求める。実際には、補正前基本燃料噴射量遅延手段Ａ１６ｄは補正前基本燃料噴射量Fbaseb(k-N)をＲＡＭ７３から読み出す。
【０１１４】
フィルタ前基本補正値算出手段Ａ１６ｅは、上述した（４）式に基く式（KFbf＝Fbaset(k-N)／Fbaseb(k-N)）に従って、真の基本燃料噴射量Fbaset(k-N)を補正前基本燃料噴射量Fbaseb(k-N)で除することにより、フィルタ前基本補正値KFbfを算出する。
【０１１５】
ローパスフィルタＡ１６ｆは、フィルタ前基本補正値KFbfに対してローパスフィルタ処理を施すことにより基本補正値KFを算出する。このローパスフィルタ処理は、基本補正値KFを安定化させるため（フィルタ前基本補正値KFbfに重畳しているノイズ成分を除去するため）に行われる。このようにして求められた基本補正値KFは、現時点からＮストローク前の運転状態が属していた運転領域に対応させられながらＲＡＭ７３及びバックアップＲＡＭ７４に記憶・格納されて行く。なお、基本補正値KFが格納される運転領域は、例えば、図６に示したように、機関１０の負荷（筒内吸入空気量Mc及びアクセルペダル操作量Accp等）により区画されている。この運転領域は、機関回転速度NEと機関の負荷とによって区画されてもよい。
【０１１６】
このように、基本補正値算出手段Ａ１６は、最終燃料噴射量Fi(k)の計算時点が到来する毎に、Ａ１６ａ〜Ａ１６ｆの各手段等を利用して基本補正値KFを更新する。そして、基本補正値算出手段Ａ１６は、図４に示したように、最終燃料噴射量Fi(k)の算出時において機関１０の運転状態が属する運転領域に格納されている基本補正値KFをバックアップＲＡＭ７４から読み出し、読み出した基本補正値KFを補正後基本燃料噴射量算出手段Ａ４に提供する。この結果、燃料噴射量（補正前基本燃料噴射量）の定常的な誤差が迅速に補償されていく。
【０１１７】
＜基本補正値及びメインフィードバック補正値の更新と適用＞
ところで、メインフィードバック補正値KFmainは上流側空燃比センサ６６の出力値vabyfsに基いて取得される検出空燃比abyfs(k)に基いて求められる。従って、メインフィードバック制御条件は、例えば、以下に示したように、上流側空燃比センサ６６が活性化していることを必要条件の一つに含んでいる。なお、メインフィードバック制御条件が成立すると、メインフィードバック補正値KFmainが更新されるとともに、その更新されたメインフィードバック補正値KFmainが上記（５）式に適用される（最終燃料噴射量Fi(k)の算出に反映される。）。メインフィードバック制御条件が成立していなければ（不成立であると）、メインフィードバック補正値KFmainの更新が停止されるとともに、上記（５）式のメインフィードバック補正値KFmainに値「１」が代入される。即ち、メインフィードバック補正値KFmainは最終燃料噴射量Fi(k)の算出に反映されない。
【０１１８】
（メインフィードバック制御条件）
メインフィードバック制御条件は、以下の総ての条件が成立するとき成立する。
・上流側空燃比センサ６６が活性化している。
・上流側空燃比センサ６６の異常判定（診断）を実行する条件（異常判定実行条件）が成立していない。
・フューエルカット条件が成立していない（フューエルカット運転状態でない。）。
なお、上流側空燃比センサ６６が活性化しているか否かは、上流側空燃比センサ６６の素子（固体電解質）の抵抗値を検出し、検出した素子の抵抗値が所定値以下であるか否かを判定することにより行われる。より具体的には、素子の抵抗値が所定値より大きければ上流側空燃比センサ６６は活性化していない（未活性である）と判定され、素子の抵抗値が所定値以下であれば上流側空燃比センサ６６は活性化していると判定される。
【０１１９】
また、例えば、前記上流側空燃比センサ６６の異常判定実行条件は、以下の総ての条件が成立するとき成立する。
・上流側空燃比センサ６６が活性化している。
・機関１０の運転状態が定常運転状態である。フューエルカット運転状態は定常運転状態に含まれない。
・上流側空燃比センサ６６の異常判定を前回実行した時点から所定期間が経過している。
【０１２０】
上流側空燃比センサ６６の異常判定実行条件が成立すると、本装置は、機関の空燃比を理論空燃比よりもリッチな空燃比とリーンな空燃比との間で強制的に振動させる。即ち、本装置は、機関の空燃比を理論空燃比を中心に矩形波状に所定周期で変化させる。そして、本装置は、その際の上流側空燃比センサ６６の出力値vabyfsに基いて得られる検出空燃比が理論空燃比を中心に前記所定周期で変化しているか否か（機関の空燃比変化に追従しているか否か）を判定し、そのような変化が検出されたとき上流側空燃比センサ６６は正常であり、そのような変化が検出されなかったとき上流側空燃比センサ６６は異常であると判定する。この異常判定実行中においてメインフィードバック制御が行われると機関の空燃比を所望の矩形波状に変化させることができないから、上述したようにメインフィードバック制御は中止される。即ち、メインフィードバック補正値の更新が停止されるとともに、上記（５）式のメインフィードバック補正値KFmainに値「１」が代入される。
【０１２１】
（基本補正値算出許可条件）
基本補正値算出許可条件が成立すると、本装置は、基本補正値KFを上述したように算出する。但し、本装置は、メインフィードバック制御条件が成立していなければ、ＲＡＭ７３又はバックアップＲＡＭ７４に格納してある基本補正値KFの値を（５）式に適用せず、上記（５）式における基本補正値KFに値「１」を代入する。本装置は、メインフィードバック制御条件が成立しているときにのみ、バックアップＲＡＭ７４に格納してある基本補正値KFの値を運転領域に応じて読み出し、その読み出した値を（５）式に適用することにより、基本補正値KFの値を最終燃料噴射量Fiに反映する。
【０１２２】
基本補正値算出許可条件は、メインフィードバック制御条件が成立しているときには成立する。
更に、基本補正値算出許可条件は、以下の条件Ａ及び条件Ｂの両方が成立するとき成立する。
（条件Ａ）上流側空燃比センサ６６が活性化している。
（条件Ｂ）上流側空燃比センサ６６の異常判定（診断）を実行する条件が成立している。
【０１２３】
上記条件Ｂは、後述するように、メインフィードバック制御条件が成立していないときであっても基本補正値算出許可条件を成立させる「他の所定条件」に相当する。
【０１２４】
（実際の作動）
次に、上記空燃比制御装置の実際の作動について説明する。以下、説明の便宜上、「MapX(a1,a2,…)」は、a1,a2,…を引数とする値Xを求めるためのテーブルを表すものとする。また、引数の値がセンサの検出値である場合、その引数の値には現在値が適用される。
【０１２５】
＜最終燃料噴射量Fi(k)の算出＞
ＣＰＵ７１は、図７にフローチャートにより示した最終燃料噴射量Fiの計算及び噴射指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が上記所定クランク角度になると、ＣＰＵ７１はステップ７００から処理を開始して以下に記載したステップ７０５乃至ステップ７１５の処理を順に行い、ステップ７２０に進む。
【０１２６】
ステップ７０５：ＣＰＵ７１は、テーブルMapMc(NE,Ga)に基づいて今回の吸気行程を迎える気筒（以下、「燃料噴射気筒」と云うこともある。）に吸入される今回の筒内吸入空気量Mc(k)を推定・決定する。
ステップ７１０：ＣＰＵ７１は、機関回転速度NE、スロットル弁開度TA及び冷却水温THW等に基づいて今回の目標空燃比abyfr(k)を取得する。目標空燃比abyfr(k)は各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
ステップ７１５：ＣＰＵ７１は、上記筒内吸入空気量Mc(k)を上記目標空燃比abyfr(k)で除することにより、補正前基本燃料噴射量Fbaseb(k)を算出する。補正前基本燃料噴射量Fbaseb(k)は各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【０１２７】
ステップ７２０：ＣＰＵ７１は、現在の運転状態がフューエルカット条件が成立しているか否かを判定する。フューエルカット条件は、例えば、アクセルペダル操作量Accpが最小値（例えば０、或いはスロットル弁開度TA＝０)であり且つ機関回転速度NEがフューエルカット回転速度Nthより大きいときに成立する。このフューエルカット条件が成立していれば、ＣＰＵ７１はステップ７２０にて「Ｙｅｓ」と判定してステップ７９５に直接進み、本ルーチンを一旦終了する。従って、燃料噴射の指示を行うステップ７４０が実行されないので、燃料噴射は停止される（フューエルカット運転が実行される。）。
【０１２８】
一方、ステップ７２０の判定時点においてフューエルカット条件が成立していなければ、ＣＰＵ７１はステップ７２０にて「Ｎｏ」と判定し、以下に記載したステップ７２５乃至ステップ７４０の処理を順に行い、その後、ステップ７９５に進んで本ルーチンを一旦終了する。
【０１２９】
ステップ７２５：ＣＰＵ７１は、後述するルーチンによって計算されるとともにバックアップＲＡＭ７４に運転領域毎に格納されている基本補正値KFの中から、現時点における運転状態が属する運転領域に格納されている基本補正値KFを読み出す。なお、メインフィードバック制御条件が不成立のとき、運転状態に関わらず基本補正値KFには値「１」が設定される。
ステップ７３０：ＣＰＵ７１は、補正前基本燃料噴射量Fbaseb(k)に、ステップ７２５にて読み出した基本補正値KFを乗じた値を補正後基本燃料噴射量Fbaseとして設定する。
ステップ７３５：ＣＰＵ７１は、上記（５）式に従い、補正後基本燃料噴射量Fbaseと後述するルーチンにて求められているメインフィードバック補正値KFmainとの積にサブフィードバック補正値Fisubを加えて今回の最終燃料噴射量Fi(k)を求める。
ステップ７４０：ＣＰＵ７１は、最終燃料噴射量Fi(k)の燃料が燃料噴射気筒に対するインジェクタ３９から噴射されるように、そのインジェクタ３９に対して噴射指示を行う。
【０１３０】
以上により、補正前基本燃料噴射量Fbasebが運転状態に応じて変化する目標空燃比abyfr(k)と今回の筒内吸入空気量Mc(k)とに基づいて取得され、その補正前基本燃料噴射量Fbasebと基本補正値KFとにより補正後基本燃料噴射量Fbaseが取得される。更に、その補正後基本燃料噴射量Fbaseがメインフィードバック補正値KFmainとサブフィードバック補正値Fisubとにより補正されることにより最終的な燃料噴射量（最終燃料噴射量）Fiが求められ、その最終燃料噴射量Fiの燃料の噴射指示が燃料噴射気筒のインジェクタ３９に対してなされる。
【０１３１】
＜メインフィードバック補正値の計算＞
次に、メインフィードバック補正値KFmainを算出する際の作動について説明する。ＣＰＵ７１は図８にフローチャートにより示したルーチンを実行周期Δｔ１（一定）の経過毎に繰り返し実行するようになっている。従って、所定のタイミングにてＣＰＵ７１はステップ８００から処理を開始し、以下に記載したステップ８０５及びステップ８１０の処理を順に行い、ステップ８１５に進む。なお、この実行周期Δｔ１は、例えば、機関回転速度NEが想定される最大の機関回転速度である場合における連続する二つの噴射指示の発生時間間隔より短い時間に設定されている。
【０１３２】
ステップ８０５：ＣＰＵ７１は、ステップ８０５に記載した簡易のローパスフィルタ式（abyfrtgt(k)＝α・abyfrtgtold＋(1−α)・abyfr(k−N)）に従ってメインフィードバック制御用目標空燃比abyfrtgt(k)を求める。ここで、αは０より大きく１より小さい定数であり、上記ローパスフィルタＡ１２の時定数τに応じて設定されている。abyfrtgtoldは、次のステップ８１０にて設定される前回本ルーチンを実行した際に算出されたメインフィードバック制御用目標空燃比abyfrtgtである。abyfrtgtoldは、前回メインフィードバック制御用目標空燃比と称呼される。abyfr(k−N)は、現時点からＮストローク前の実際の上流側目標空燃比である。
【０１３３】
ステップ８１０：ＣＰＵ７１は、次回の本ルーチンの実行のために、前回メインフィードバック制御用目標空燃比abyfrtgtoldにステップ８０５にて算出したメインフィードバック制御用目標空燃比abyfrtgt(k)を格納する。
【０１３４】
次に、ＣＰＵ７１はステップ８１５に進み、メインフィードバック制御条件成立フラグXmainFBの値が「１」であるか否かを判定する。メインフィードバック制御条件成立フラグXmainFBの値は、後述するルーチンにてメインフィードバック制御条件が成立したときに「１」に設定され、メインフィードバック制御条件が不成立のとき「０」に設定される。いま、メインフィードバック制御条件成立フラグXmainFBの値が「１」であるとすると、ＣＰＵ７１は、以下に記載したステップ８２０乃至ステップ８３５の処理を順に行い、ステップ８９５に進んで本ルーチンを一旦終了する。
【０１３５】
ステップ８２０：ＣＰＵ７１は、現時点の上流側空燃比センサ６６の出力値vabyfsを図２の実線により示したテーブルMapabyfs(vabyfs)に基づいて変換することにより、現時点の検出空燃比abyfs(k)を求める。
ステップ８２５：ＣＰＵ７１は、上記（１０）式であるステップ８２５内に記載した式に従って上流側フィードバック制御用目標空燃比abyfrtgt(k)から今回の検出空燃比abyfs(k)を減じることにより、空燃比偏差Dafを求める。
【０１３６】
ステップ８３０：ＣＰＵ７１は、空燃比偏差Dafに上記（１１）式により表された特性を有するハイパスフィルタ処理を施すことにより、メインフィードバック制御用偏差DafHiを取得する。
ステップ８３５：ＣＰＵ７１は、メインフィードバック制御用偏差DafHiに比例ゲインGpHiを乗じて得られる積に値「１」を加えることにより、メインフィードバック補正値KFmainを求める。
【０１３７】
一方、メインフィードバック制御条件成立フラグXmainFBの値が「０」であるとすると、ＣＰＵ７１は、ステップ８１５から以下に記載したステップ８４０及びステップ８４５の処理を順に行い、ステップ８９５に進んで本ルーチンを一旦終了する。
ステップ８４０：ＣＰＵ７１は、メインフィードバック補正値KFmainを「１」に設定する。
ステップ８４５：ＣＰＵ７１は、基本補正値KFを「１」に設定する。
【０１３８】
このように、メインフィードバック制御条件が不成立（XmainFB＝０）の場合、メインフィードバック補正値KFmainの更新が停止されるとともに、メインフィードバック補正値KFmainの値が「１」に設定されるので、メインフィードバック制御が停止される（メインフィードバック補正値KFmainの最終燃料噴射量Fiへの反映が停止される）。また、メインフィードバック制御条件が不成立（XmainFB＝０）の場合、基本補正値KFの値が「１」に設定されるので、基本補正値KFの最終燃料噴射量Fiへの反映が停止される。
【０１３９】
＜サブフィードバック補正値の計算＞
次に、サブフィードバック補正値Fisubを算出するための作動について説明する。ＣＰＵ７１は図９にフローチャートにより示したルーチンを、所定時間が経過する毎に繰り返し実行するようになっている。従って、所定のタイミングになるとＣＰＵ７１はステップ９００から処理を開始し、ステップ９０５に進んでサブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件はメインフィードバック制御条件が成立し、且つ、下流側酸素濃度センサ６７が活性化していると判定されるときに成立する。
【０１４０】
いま、サブフィードバック制御条件が成立しているものとして説明を続ける。この場合、ＣＰＵ７１は以下に記載したステップ９１０乃至ステップ９３５の処理を順に行い、ステップ９９５に進んで本ルーチンを一旦終了する。
【０１４１】
ステップ９１０：ＣＰＵ７１は、上記（６）式であるステップ９１０内に記載した式に従って、下流側目標値Voxsrefから現時点の下流側酸素濃度センサ６７の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。
ステップ９１５：ＣＰＵ７１は、出力偏差量DVoxsに対して上記（７）式により表された特性を有するローパスフィルタ処理を施すことによりローパスフィルタ通過後出力偏差量DVoxslowを算出する。
【０１４２】
ステップ９２０：ＣＰＵ７１は、下記（１３）式に基づきローパスフィルタ通過後出力偏差量DVoxslowの微分値DDVoxslowを求める。（１３）式において、DVoxslow1は前回の本ルーチン実行時において後述するステップ９３５にて設定（更新）されたローパスフィルタ通過後出力偏差量DVoxslowの前回値である。また、Δtは本ルーチンが前回実行された時点から今回実行された時点までの時間である。
DDVoxslow＝(DVoxslow-DVoxslow1)/Δt  ・・・（１３）
【０１４３】
ステップ９２５：ＣＰＵ７１は、上記（８）式であるステップ９２５内に示した式に従ってサブフィードバック補正値Fisubを求める。
ステップ９３０：ＣＰＵ７１は、その時点におけるローパスフィルタ通過後出力偏差量DVoxslowの積分値SDVoxslowに上記ステップ９１５にて求めたローパスフィルタ通過後出力偏差量DVoxslowを加えて、新たなローパスフィルタ通過後出力偏差量DVoxslowの積分値SDVoxslowを求める。
ステップ９３５：ＣＰＵ７１は、ローパスフィルタ通過後出力偏差量DVoxslowの前回値DVoxslow1に上記ステップ９１５にて求めたローパスフィルタ通過後出力偏差量DVoxslowを格納する。
【０１４４】
一方、ステップ９０５の判定時において、サブフィードバック制御条件が不成立であると、ＣＰＵ７１はステップ９０５にて「Ｎｏ」と判定してステップ９４０に進み、サブフィードバック補正値Fisubを「０」に設定し、続くステップ９４５にてローパスフィルタ通過後出力偏差量DVoxslowの積分値SDVoxslowを「０」に設定した後、ステップ９９５に進んで本ルーチンを一旦終了する。
【０１４５】
このように、サブフィードバック制御条件が不成立であるとき、サブフィードバック補正値Fisubが「０」に設定されるから、下流側酸素濃度センサ６７の出力値Voxsに応じた空燃比のフィードバック制御は行われない。
【０１４６】
＜基本補正値の計算と記憶・格納＞
ＣＰＵ７１は図１０にフローチャートにより示したルーチンを、図７に示したルーチンの実行に先だって繰り返し実行するようになっている。従って、所定のタイミングにてＣＰＵ７１はステップ１０００から処理を開始し、ステップ１００５に進んで基本補正値算出許可フラグXKFcalの値が「１」であるか否かを判定する。基本補正値算出許可フラグXKFcalの値は、後述するルーチンにて基本補正値算出許可条件が成立したときに「１」に設定され、基本補正値算出許可条件が不成立のとき「０」に設定される。いま、基本補正値算出許可フラグXKFcalの値が「１」であるとすると、ＣＰＵ７１は、以下に記載したステップ１０１０乃至１０３０の処理を順に行い、ステップ１０９５に進んで本ルーチンを一旦終了する。
【０１４７】
ステップ１０１０：ＣＰＵ７１は、上記（２）式であるステップ１０１０内に記載した式に従って、現時点からＮストローク前の目標空燃比abyfr(k-N）と現時点における検出空燃比abyfs(k)との積をＮストローク前の目標空燃比abyfr(k-N）により除することによって、現時点からＮストローク前の真の基本燃料噴射量Fbasetを算出する。なお、現時点からＮストローク前の最終燃料噴射量Fi(k-N)及び現時点からＮストローク前の目標空燃比abyfr(k-N）は、いずれもＲＡＭ７３から読み出される。
【０１４８】
ステップ１０１５：ＣＰＵ７１は、上記（４）式と同じ式であるステップ１０１５に記載した式に基いて、ステップ１０１０にて算出した現時点からＮストローク前の真の基本燃料噴射量Fbaset(k-N)を現時点からＮストローク前の補正前基本燃料噴射量Fbaseb(k-N)により除することによって、基本補正値KFの基礎となる今回値KFnew（フィルタ前基本補正値KFbf）を算出する。なお、現時点からＮストローク前の補正前基本燃料噴射量Fbaseb(k-N)はＲＡＭ７３から読み出される。
【０１４９】
ステップ１０２０：ＣＰＵ７１は、現時点からＮストローク前の時点における機関１０の運転状態が属する運転領域に対応してバックアップＲＡＭ７４内に格納してある基本補正値KFを同バックアップＲＡＭ７４から読み出す。この読み出された基本補正値KFは、過去の基本補正値KFoldである。
ステップ１０２５：ＣＰＵ７１は、ステップ１０２５に記載した簡易のローパスフィルタ式（KF＝β・KFold＋(1−β)・KFnew）に従って新たな基本補正値KF（最終基本補正値KF）を算出する。ここで、βは０より大きく１より小さい定数である。
【０１５０】
ステップ１０３０：ＣＰＵ７１は、ステップ１０２５にて求められた基本補正値KFを、現時点からＮストローク前の時点における機関１０の運転状態が属する運転領域に対応したバックアップＲＡＭ７４内の格納領域に記憶・格納する。
このようにして、基本補正値算出許可フラグXKFcalの値が「１」である場合、基本補正値KFが更新され、且つ、記憶されて行く。
【０１５１】
一方、基本補正値算出許可フラグXKFcalの値が「０」であるとすると、ＣＰＵ７１はステップ１００５にて「Ｎｏ」と判定し、ステップ１０９５に直ちに進んで本ルーチンを一旦終了する。この場合、基本補正値KFの更新及び同基本補正値KFのバックアップＲＡＭ７４への記憶・格納処理は実行されない。
【０１５２】
なお、基本補正値KFnewの値をそのまま新たな基本補正値KFとして採用してもよい。その場合、ステップ１０２０を省略し、ステップ１０２５における定数βを「０」に設定すればよい。
【０１５３】
＜メインフィードバック制御条件成立フラグ及び基本補正値算出許可フラグの操作＞
ＣＰＵ７１は所定時間の経過毎に図１１にフローチャートにより示したルーチンをステップ１１００から実行するようになっている。従って、所定のタイミングにてＣＰＵ７１はステップ１１０５に進み、メインフィードバック制御条件が成立しているか否かを判定する。メインフィードバック制御条件は前述したとおりである。以下、場合分けをして説明を続ける。
【０１５４】
（ケース１：メインフィードバック制御条件が成立している場合）
この場合、ＣＰＵ７１はステップ１１０５にて「Ｙｅｓ」と判定してステップ１１１０に進み、メインフィードバック制御条件成立フラグXmainFBの値を「１」に設定する。次いで、ＣＰＵ７１はステップ１１１５に進んで基本値算出許可フラグXKFcalの値を「１」に設定し、ステップ１１９５に進んで本ルーチンを一旦終了する。この結果、メインフィードバック補正値KFmain及び基本補正値KFが更新されるとともに、更新されたメインフィードバック補正値KFmain及びバックアップＲＡＭ７４から読み出される基本補正値KFが最終燃料噴射量Fiに反映される。
【０１５５】
（ケース２：フューエルカット条件が成立している場合）
この場合、メインフィードバック制御条件は不成立となる。従って、ＣＰＵ７１はステップ１１０５にて「Ｎｏ」と判定してステップ１１２０に進み、フューエルカット条件が成立しているか否かを判定する。そして、ＣＰＵ７１はステップ１１２０にて「Ｙｅｓ」と判定し、ステップ１１２５に進んでメインフィードバック制御条件成立フラグXmainFBの値を「０」に設定する。次いで、ＣＰＵ７１はステップ１１３０に進んで基本値算出許可フラグXKFcalの値を「０」に設定し、ステップ１１９５に進んで本ルーチンを一旦終了する。この結果、メインフィードバック補正値KFmain及び基本補正値KFの更新が停止されるとともに、メインフィードバック補正値KFmain及びバックアップＲＡＭ７４に格納してある基本補正値KFが最終燃料噴射量Fiに反映されなくなる。
【０１５６】
（ケース３：上流側空燃比センサの異常判定実行条件が成立している場合）
この場合、メインフィードバック制御条件は不成立となる。更に、フューエルカット条件は成立していない。従って、ＣＰＵ７１はステップ１１０５及びステップ１１２０の両ステップにて「Ｎｏ」と判定してステップ１１３５に進み、上流側空燃比センサの異常判定実行条件が成立しているか否かを判定する。
【０１５７】
そして、ＣＰＵ７１はステップ１１３５にて「Ｙｅｓ」と判定し、ステップ１１４０に進んでメインフィードバック制御条件成立フラグXmainFBの値を「０」に設定する。次いで、ＣＰＵ７１はステップ１１４５に進んで基本値算出許可フラグXKFcalの値を「１」に設定し、ステップ１１９５に進んで本ルーチンを一旦終了する。この結果、メインフィードバック補正値KFmainの更新は停止され、且つ、メインフィードバック補正値KFmainは最終燃料噴射量Fiに反映されない。一方、基本補正値KFは更新及び格納される。但し、メインフィードバック制御条件が不成立であるから、バックアップＲＡＭ７４に格納してある基本補正値KFは最終燃料噴射量Fiに反映されない。
【０１５８】
（ケース４：メインフィードバック制御条件、フューエルカット条件及び上流側空燃比センサの異常判定実行条件の何れもが成立していない場合）
このような場合は、例えば、フューエルカット条件が成立しておらず、且つ、上流側空燃比センサ６６が活性化していないときに生じる。この場合、ＣＰＵ７１はステップ１１０５、ステップ１１２０及びステップ１１３５の総てのステップにて「Ｎｏ」と判定してステップ１１５０に進み、メインフィードバック制御条件成立フラグXmainFBの値を「０」に設定する。次いで、ＣＰＵ７１はステップ１１５５に進んで基本値算出許可フラグXKFcalの値を「０」に設定し、ステップ１１９５に進んで本ルーチンを一旦終了する。この結果、メインフィードバック補正値KFmain及び基本補正値KFの更新が停止されるとともに、メインフィードバック補正値KFmain及びバックアップＲＡＭ７４に格納してある基本補正値KFが最終燃料噴射量Fiに反映されなくなる。
【０１５９】
以上、説明したように、本発明の第１実施形態に係る内燃機関の空燃比制御装置によれば、現時点からＮストローク前（無駄時間Ｌだけ前）の無駄時間前値である目標空燃比abyfr(k−N)にローパスフィルタ処理を施したフィードバック制御用目標空燃比abyfrtgt(k)と、現時点の上流側空燃比センサ６６の出力値vabyfsに基づく検出空燃比abyfs(k)と、の差Daf（又は、差Dafにハイパスフィルタ処理を施したメインフィードバック制御用偏差DafHi）に基づいてメインフィードバック補正値KFmainが求められ、このメインフィードバック補正値KFmainが燃料噴射量Fiに反映されることによって（上流側）空燃比フィードバック制御が実行される。
【０１６０】
フィードバック制御用目標空燃比abyfrtgt(k)は、目標空燃比abyfr(k)を得るために適正な量の燃料が機関１０に供給されていた場合において上流側空燃比センサ６６が出力すべき出力値vabyfs(k)に応じた検出空燃比abyfs(k)と一致するので、メインフィードバック補正値KFmainが適正な値となる。
【０１６１】
更に、本装置によれば、メインフィードバック制御用偏差DafHiは、ハイパスフィルタＡ１４によって空燃比偏差Dafにハイパスフィルタ処理を施した値であって上流側触媒５３の下流には現れない空燃比変動を反映した値である。従って、メインフィードバック補正値KFmainとサブフィードバック補正値Fisubとによる空燃比制御上の干渉が発生しない。更に、第１触媒５３の下流の空燃比の変動として現れる空燃比変動に対する空燃比制御は積分項を含むサブフィードバック制御により行われる。従って、機関の空燃比をより適切に制御することができる。
【０１６２】
加えて、本装置によれば、メインフィードバック制御実行条件が不成立となっている場合であっても、メインフィードバック制御実行条件が不成立となっている理由が上流側空燃比センサの異常判定実行条件が成立しているためのみである場合、基本補正値KFの更新が続行される。この結果、メインフィードバック制御の再開時において基本補正値KFの値が最適値に近づいているので、メインフィードバック制御再開後における機関の空燃比を迅速に目標空燃比に近づけることができる。なお、メインフィードバック制御実行条件が不成立となっている場合に基本補正値KFの更新を続行する条件は、メインフィードバック制御実行条件が不成立となっている理由が上流側空燃比センサの異常判定実行条件が成立していることのみである場合に限定されることはない。即ち、メインフィードバック制御を実行することは可能であるが、メインフィードバック制御を実行してしまうと別の理由によって所望の空燃比の変化を実現できない場合に、メインフィードバック制御（メインフィードバック補正値の更新及び反映、並びに、基本補正値の反映）を停止し、且つ、基本補正値の更新を継続してもよい。
【０１６３】
更に、上記実施形態においては、上流側空燃比センサ６６が活性化していない場合（未活性の場合）、基本補正値は更新されない。基本補正値は上流側空燃比センサ６６の出力値vabyfsに基く検出空燃比abyfsによって求められるので、上流側空燃比センサ６６が未活性であって検出空燃比abyfsが適正に得られない場合に基本補正値を求めることは基本補正値を不適切な値に更新してしまう恐れがあるからである。
【０１６４】
なお、上記実施形態においては、メインフィードバック制御条件が不成立であり、且つ、基本補正値算出許可条件が成立しているとき、（バックアップＲＡＭ７４内に格納されている）基本補正値が最終燃料噴射量の算出に反映されていないが、基本補正値を最終燃料噴射量の算出に反映されるように構成してもよい。或いは、メインフィードバック制御条件が不成立であり、且つ、基本補正値算出許可条件が成立しているとき、バックアップＲＡＭ７４から読み出される基本補正値に０より大きく１より小さい係数を乗じた値（例えば、基本補正値の５０％）が暫定基本補正値として最終燃料噴射量の算出に反映されるように構成してもよい。
【０１６５】
＜第２実施形態＞
次に、本発明の第２実施形態に係る内燃機関の空燃比制御装置について説明する。第２実施形態に係る空燃比制御装置は、第１実施形態の基本補正値算出許可条件の他の条件として、以下に述べる条件が加えられた点において主として第１実施形態に係る空燃比制御装置と相違する。
【０１６６】
第１実施形態においては、上流側空燃比センサが完全には活性化していない場合（未活性の場合）、基本補正値KFを更新していない。しかし、上流側空燃比センサが完全には活性化していないことのみによりメインフィードバック制御条件が不成立の場合であって、且つ、基本補正値を求めても不都合が発生しない「目標空燃比と上流側空燃比センサの出力値（同出力値により求められる検出空燃比）とが特定の条件を満足する場合」には、基本補正値KFを更新してもよい。
【０１６７】
より具体的に述べると、基本補正値算出許可条件は以下の条件Ｃ及び条件Ｄの両方が成立するときにも成立する。
（条件Ｃ）上流側空燃比センサ６６が活性化していること以外のメインフィードバック制御条件は成立している。
（条件Ｄ）上流側空燃比センサ６６の出力値に基いて得られる空燃比である検出空燃比abyfsが機関１０に供給される混合気の実際の空燃比である実空燃比と目標空燃比abyfrとの間に存在する。
【０１６８】
本実施形態における上流側空燃比センサ６６の出力特性は、図２を参照して説明したとおりである。従って、上流側空燃比センサ６６が未活性状態（活性状態には完全に至っていない状態である半活性状態）にある場合、実空燃比が理論空燃比又は理論空燃比よりもリーンな空燃比であれば、図１５の領域Ｂに示したように、検出空燃比abyfsは実空燃比よりリッチ側の空燃比となる。従って、条件Ｄは「（条件Ｄ１）検出空燃比abyfsが理論空燃比又は理論空燃比よりリーン側であって、目標空燃比abyfrが検出空燃比abyfsよりもリッチ側である。」ときに成立する。即ち、条件Ｄとして条件Ｄ１を採用することができる。
【０１６９】
更に、上流側空燃比センサ６６が未活性状態にある場合、実空燃比が理論空燃比又は理論空燃比よりもリッチな空燃比であれば、図１５の領域Ａに示したように、検出空燃比abyfsは実空燃比よりリーン側の空燃比となる。従って、条件Ｄは「（条件Ｄ２）検出空燃比abyfsが理論空燃比又は理論空燃比よりリッチ側であって、目標空燃比abyfrが検出空燃比abyfsよりもリーン側である。」ときに成立する。即ち、条件Ｄとして条件Ｄ２を採用することができる。
【０１７０】
上記条件Ｃ及び条件Ｄ（条件Ｄ１又は条件Ｄ２）が成立する場合に、基本補正値を算出することが望ましい理由は、図１４〜図２３を用いて先に説明したとおりである。
【０１７１】
（実際の作動）
次に、第２実施形態に係る空燃比制御装置の実際の作動について説明する。この空燃比制御装置は、そのＣＰＵ７１がフラグ操作のための図１１のルーチンに代えて図１２のルーチンを実行する点のみにおいて、第１実施形態に係る空燃比制御装置と相違している。従って、以下においては、図１２のルーチンによるフラグ操作について説明する。なお、図１２において図１１に示したステップと同一のステップには同一の符号を付し、詳細な説明を省略する。
【０１７２】
ＣＰＵ７１は、所定時間の経過毎に図１２にフローチャートにより示したルーチンをステップ１２００から実行するようになっている。このルーチンのステップ１１０５乃至ステップ１１４５までは図１１のルーチンと同一である。従って、以下、ステップ１２０５以降に進む場合についてのみ説明する。
【０１７３】
ステップ１２０５に進む場合は、ステップ１１０５、ステップ１１２０及びステップ１１３５の総てにおいてＣＰＵ７１が「Ｎｏ」と判定する場合である。即ち、メインフィードバック制御条件が不成立であり、フューエルカット条件が不成立であり且つ上流側空燃比センサ６６の異常判定実行条件が不成立の場合である。このような場合には、上流側空燃比センサが活性化していること以外のメインフィードバック制御実行条件が成立している場合が含まれる。
【０１７４】
そこで、上流側空燃比センサが活性化していること以外のメインフィードバック制御実行条件が成立していると仮定する。この場合、ＣＰＵ７１はステップ１２０５に進んで上流側空燃比センサ６６が未活性（活性化していない）か否かを判定する。換言すると、メインフィードバック制御条件が不成立となった理由が上流側空燃比センサ６６が未活性であることのみに依っているか否かが確認される。
【０１７５】
いま、上流側空燃比センサ６６が未活性であるとすると、ＣＰＵ７１はステップ１２０５にて「Ｙｅｓ」と判定してステップ１２１０に進み、上流側空燃比センサ６６の出力値vabyfsと図２に示したテーブルMapabyfsとから取得される検出空燃比abyfsが上流側の目標空燃比（この目標空燃比としては、メインフィードバック制御用目標空燃比abyfrtgt(k)が適切である。）と実空燃比との間に存在するか否かを判定する。
【０１７６】
より具体的に述べると、ＣＰＵ７１はステップ１２１０に進んだとき、図１３に示したステップ１３０５に進み、ステップ１３０５にて上流側空燃比センサ６６の出力値vabyfsを取得し、続くステップ１３１０にて検出空燃比abyfsを図２のマップMapabyfsと取得した出力値vabyfsとから求める。
【０１７７】
いま、検出空燃比abyfsが理論空燃比又は理論空燃比よりリッチな空燃比であると仮定する。このとき、ＣＰＵ７１はステップ１３１５にて「Ｙｅｓ」と判定し、ステップ１３２０に進み、検出空燃比abyfsが目標空燃比（実際には、メインフィードバック制御用目標空燃比abyfrtgt）よりリッチな空燃比であるか否かを判定する。即ち、ステップ１３１５及びステップ１３２０により、図１５の領域Ａに示したような状態であるか否かが判定される。換言すると、ステップ１３１５及びステップ１３２０により、上記条件Ｄ２である「検出空燃比abyfsが理論空燃比又は理論空燃比よりリッチ側であって、目標空燃比abyfrが検出空燃比abyfsよりもリーン側である。」か否かが判定される。
【０１７８】
従って、検出空燃比abyfsが目標空燃比よりリッチな空燃比であれば、ＣＰＵ７１はステップ１３２０にて「Ｙｅｓ」と判定してステップ１２１５に進み、メインフィードバック制御条件成立フラグXmainFBの値を「０」に設定する。次いで、ＣＰＵ７１はステップ１２２０に進んで基本値算出許可フラグXKFcalの値を「１」に設定し、ステップ１２９５に進んで本ルーチンを一旦終了する。この結果、メインフィードバック制御条件成立フラグXmainFBの値が「０」に設定されるから、メインフィードバック補正値KFmainの更新が停止されるとともに、メインフィードバック補正値KFmain及びバックアップＲＡＭ７４内に格納されている基本補正値KFの最終燃料噴射量Fiへの反映が停止される。一方、基本値算出許可フラグXKFcalの値は「１」に設定されるから、基本補正値KFの更新及び同基本補正値KFのバックアップＲＡＭ７４への記憶・格納処理が実行される。
【０１７９】
一方、ステップ１３２０の判定時において、検出空燃比abyfsが目標空燃比よりリッチな空燃比でなければ、ＣＰＵ７１はステップ１３２０にて「Ｎｏ」と判定してステップ１２２５に進み、メインフィードバック制御条件成立フラグXmainFBの値を「０」に設定する。次いで、ＣＰＵ７１はステップ１２３０に進んで基本値算出許可フラグXKFcalの値を「０」に設定し、ステップ１２９５に進んで本ルーチン（図１２及び図１３に示したルーチン）を一旦終了する。この結果、メインフィードバック制御条件成立フラグXmainFBの値及び基本値算出許可フラグXKFcalの値は何れも「０」に設定されるから、メインフィードバック補正値KFmain及び基本補正値KFの更新が停止されるとともに、メインフィードバック補正値KFmain及びバックアップＲＡＭ７４内に格納されている基本補正値KFが最終燃料噴射量Fiに反映されなくなる。
【０１８０】
次に、現時点の検出空燃比abyfsが理論空燃比又は理論空燃比よりリーンな空燃比であると仮定する。このとき、ＣＰＵ７１はステップ１３０５及びステップ１３１０を経てステップ１３１５に進んだとき、同ステップ１３１５にて「Ｎｏ」と判定してステップ１３２５に進み、検出空燃比abyfsが目標空燃比（実際には、メインフィードバック制御用目標空燃比abyfrtgt）よりリーンな空燃比であるか否かを判定する。即ち、ステップ１３１５及びステップ１３２５により、図１５の領域Ｂに示したような状態であるか否かが判定される。換言すると、ステップ１３１５及びステップ１３２５により、上記条件Ｄ１である「検出空燃比abyfsが理論空燃比又は理論空燃比よりリーン側であって、目標空燃比abyfrが検出空燃比abyfsよりもリッチ側である。」か否かが判定される。
【０１８１】
従って、検出空燃比abyfsが目標空燃比よりリーンな空燃比であれば、ＣＰＵ７１はステップ１３２５にて「Ｙｅｓ」と判定してステップ１２１５に進み、メインフィードバック制御条件成立フラグXmainFBの値を「０」に設定する。次いで、ＣＰＵ７１はステップ１２２０に進んで基本値算出許可フラグXKFcalの値を「１」に設定し、ステップ１２９５に進んで本ルーチンを一旦終了する。この結果、メインフィードバック制御条件成立フラグXmainFBの値が「０」に設定されるから、メインフィードバック補正値KFmainの更新が停止されるとともに、メインフィードバック補正値KFmain及びバックアップＲＡＭ７４内に格納されている基本補正値KFの最終燃料噴射量Fiへの反映が停止される。一方、基本値算出許可フラグXKFcalの値は「１」に設定されるから、基本補正値KFの更新及び同基本補正値KFのバックアップＲＡＭ７４への記憶・格納処理が実行される。
【０１８２】
一方、ステップ１３２５の判定時において、検出空燃比abyfsが目標空燃比よりリーンな空燃比でなければ、ＣＰＵ７１はステップ１３２５にて「Ｎｏ」と判定してステップ１２２５に進み、メインフィードバック制御条件成立フラグXmainFBの値を「０」に設定する。次いで、ＣＰＵ７１はステップ１２３０に進んで基本値算出許可フラグXKFcalの値を「０」に設定し、ステップ１２９５に進んで本ルーチンを一旦終了する。この結果、メインフィードバック制御条件成立フラグXmainFBの値及び基本値算出許可フラグXKFcalの値は何れも「０」に設定されるから、メインフィードバック補正値KFmain及び基本補正値KFの更新が停止されるとともに、メインフィードバック補正値KFmain及びバックアップＲＡＭ７４内に格納されている基本補正値KFが最終燃料噴射量Fiに反映されなくなる。
【０１８３】
前述したように、上流側空燃比センサ６６は、実空燃比が理論空燃比よりもリッチ側の領域（図１５の領域Ａ）にある場合、破線により示した未活性であるときの出力値とテーブルMapabyfsとに基く空燃比（検出空燃比）が実際の空燃比（実空燃比）よりリーン側の空燃比となるような出力値vabyfsを出力する。
【０１８４】
この場合、検出空燃比が実空燃比と目標空燃比（実際には、メインフィードバック制御用目標空燃比abyfrtgt）との間にあり、同検出空燃比のほうが同実空燃比よりも同目標空燃比に近い空燃比であるならば、検出空燃比に基いて基本補正値KFを求めた方が、上流側空燃比センサ６６が未活性であるという理由により基本補正値KFを求めない場合より、基本補正値KFを最終的に到達するであろう基本補正値（基本補正値の適正値）に近づけておくことができる。
【０１８５】
何故なら、検出空燃比は「実空燃比が目標空燃比よりもリッチである」ことを確実に示しているので、検出空燃比に基いて求められる基本補正値は実空燃比に基いて求められる基本補正値と同様に基本燃料噴射量を減少補正する値となるからである。更に、「検出空燃比と目標空燃比との差の大きさ」は「実空燃比と目標空燃比との差の大きさ」より小さいので、検出空燃比に基いて求められる基本補正値は基本燃料噴射量を過剰に減少補正してしまうような値とならないからである。
【０１８６】
更に、上流側空燃比センサ６６は、実空燃比が理論空燃比よりもリーン側の領域（図１５の領域Ｂ）にある場合、破線により示した未活性であるときの出力値とテーブルMapabyfsとに基く空燃比（検出空燃比）が実際の空燃比（実空燃比）よりリッチ側の空燃比となるような出力値vabyfsを出力する。
【０１８７】
この場合、検出空燃比が実空燃比と目標空燃比（実際には、メインフィードバック制御用目標空燃比abyfrtgt）との間にあり、同検出空燃比のほうが同実空燃比よりも同目標空燃比に近い空燃比であるならば、検出空燃比に基いて基本補正値KFを求めた方が、上流側空燃比センサ６６が未活性であるという理由により基本補正値KFを求めない場合より、基本補正値KFを最終的に到達するであろう基本補正値（基本補正値の適正値）に近づけておくことができる。
【０１８８】
何故なら、検出空燃比は「実空燃比が目標空燃比よりもリーンである」ことを確実に示しているので、検出空燃比に基いて求められる基本補正値は実空燃比に基いて求められる基本補正値と同様に基本燃料噴射量を増大補正する値となるからである。更に、「検出空燃比と目標空燃比との差の大きさ」は「実空燃比と目標空燃比との差の大きさ」より小さいので、検出空燃比に基いて求められる基本補正値は基本燃料噴射量を過剰に増大補正してしまうような値とならないからである。
【０１８９】
以上、説明したように、第２実施形態に係る空燃比制御装置は、基本補正値算出許可条件の一つに、「上流側空燃比センサが活性化していない場合であっても、前記上流側空燃比センサの出力値に基いて得られる空燃比である検出空燃比が前記機関に供給される混合気の実際の空燃比である実空燃比と前記目標空燃比との間に存在すること。」を、追加している。その結果、上流側空燃比センサ６６が完全には活性化していない場合であっても基本補正値KFを算出しておくことができる場合があるので、メインフィードバック制御開始後において基本燃料噴射量の誤差を迅速に補償し、以って、機関の空燃比を目標空燃比に迅速に近づけることが可能な空燃比制御装置を提供することができる。
【０１９０】
なお、上流側空燃比センサ６６が図１４に示したような特性（空燃比の全域において検出空燃比が実空燃比よりもリーンとなる特性）を示す場合には、検出空燃比が目標空燃比よりもリッチであると判定されることを基本補正値算出許可条件の必要条件とすることができる。
【０１９１】
一方、上流側空燃比センサの種類によっては、図２０に示したように、破線により示した未活性であるときの出力値に基く検出空燃比が実際の空燃比（実空燃比）よりリッチ側の空燃比となる場合がある。上流側空燃比センサがこのような特性を有する場合、上記条件Ｄは、「上流側空燃比センサの出力値に基いて得られる空燃比である検出空燃比abyfsが実空燃比よりもリッチ側の空燃比となる場合、検出空燃比が目標空燃比よりもリーン側の空燃比であること」に置換され得る。
【０１９２】
また、上流側空燃比センサが図２３に示した出力特性を有する場合において、実空燃比が図２３の領域Ａ（理論空燃比よりもリッチ側の領域）にある場合、上記条件Ｄは、「上流側空燃比センサの出力値に基いて得られる空燃比である検出空燃比が理論空燃比よりもリッチ側の空燃比となる場合、検出空燃比が目標空燃比よりもリーン側の空燃比であること」に置換され得る。更に、実空燃比が図２３の領域Ｂ（理論空燃比よりもリーン側の領域）にある場合、上記条件Ｄは「上流側空燃比センサの出力値に基いて得られる空燃比である検出空燃比が理論空燃比よりもリーン側の空燃比となる場合、検出空燃比が目標空燃比よりもリッチ側の空燃比であること」という条件に置換してもよい。
【０１９３】
以上、説明したように、本発明による各実施形態に係る空燃比制御装置によれば、メインフィードバック制御が停止されている期間においても、基本補正値が算出・更新される場合が発生するので、メインフィードバック制御の開始後において機関の空燃比をより迅速に目標空燃比に近づけることができる。
【０１９４】
本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記各実施形態においては、メインフィードバック制御用目標空燃比abyfrtgt(k)と現時点の検出空燃比abyfs(k)との差である空燃比偏差Dafに対してハイパスフィルタ処理を施してメインフィードバック制御用偏差DafHiを求めていた。これに対し、現時点の検出空燃比abyfs(k)に対して先にハイパスフィルタ処理を施し、そのハイパスフィルタ処理後の現在の検出空燃比とメインフィードバック制御用目標空燃比abyfrtgt(k)との差をメインフィードバック制御用偏差DafHiとして求めてもよい。更に、メインフィードバック補正値KFmainを、特許文献１に記載されたように、筒内に供給される燃料量の過不足量に基いて求めてもよい。
【０１９５】
また、基本補正値は、前記真の指示噴射量及び前記補正前基本燃料噴射量から実質的に求められればよい。換言すると、本発明の基本補正値算出手段は、上述した（４）式の右辺から明らかなように、現時点における前記上流側空燃比センサの出力値と、前記無駄時間だけ現時点よりも前の時点の前記噴射指示信号に含まれていた指示噴射量と、前記無駄時間だけ現時点よりも前の時点における筒内吸入空気量とから、基本補正値を求めるものを含む。
【図面の簡単な説明】
【０１９６】
【図１】本発明の第１実施形態に係る空燃比制御装置を適用した内燃機関の概略図である。
【図２】図１に示した上流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図３】図１に示した下流側酸素濃度センサの出力電圧と空燃比との関係を示したグラフである。
【図４】図１に示した空燃比制御装置が空燃比制御を実行する際の機能ブロック図である。
【図５】図４に示した基本補正値算出手段の機能ブロック図である。
【図６】図４に示した基本補正値算出手段により算出される基本補正値を格納する運転領域を示した概念図である。
【図７】図１に示したＣＰＵが実行する、最終燃料噴射量の計算及び噴射指示を行うためのルーチンを示したフローチャートである。
【図８】図１に示したＣＰＵが実行する、メインフィードバック補正値を算出するためのルーチンを示したフローチャートである。
【図９】図１に示したＣＰＵが実行する、サブフィードバック補正値を算出するためのルーチンを示したフローチャートである。
【図１０】図１に示したＣＰＵが実行する、基本補正値を算出するためのルーチンを示したフローチャートである。
【図１１】図１に示したＣＰＵが実行する、メインフィードバック制御条件成立フラグ及び基本補正値算出許可フラグを操作するためのルーチンを示したフローチャートである。
【図１２】本発明の第２実施形態に係る空燃比制御装置のＣＰＵが実行する、メインフィードバック制御条件成立フラグ及び基本補正値算出許可フラグを操作するためのルーチンを示したフローチャートである。
【図１３】図１２に示した一部のステップの詳細を示したフローチャートである。
【図１４】ある上流側空燃比センサの出力特性と目標空燃比との関係を示したグラフである。
【図１５】図１に示した上流側空燃比センサの出力特性と目標空燃比との関係を示したグラフである。
【図１６】ある上流側空燃比センサの出力特性と目標空燃比との関係を示したグラフである。
【図１７】図１に示した上流側空燃比センサの出力特性と目標空燃比との関係を示したグラフである。
【図１８】ある上流側空燃比センサの出力特性と目標空燃比との関係を示したグラフである。
【図１９】図１に示した上流側空燃比センサの出力特性と目標空燃比との関係を示したグラフである。
【図２０】別の上流側空燃比センサの出力特性と目標空燃比との関係を示したグラフである。
【図２１】別の上流側空燃比センサの出力特性と目標空燃比との関係を示したグラフである。
【図２２】別の上流側空燃比センサの出力特性と目標空燃比との関係を示したグラフである。
【図２３】更に別の上流側空燃比センサの出力特性と目標空燃比との関係を示したグラフである。
【符号の説明】
【０１９７】
１０…内燃機関、２５…燃焼室、３９…インジェクタ（燃料噴射手段）、５３…上流側三元触媒、６６…上流側空燃比センサ（空燃比センサ）、７０…電気制御装置、７１…ＣＰＵ。
【図１】
2008215106.tif 000008
【図２】
2008215106.tif 000009
【図３】
2008215106.tif 000010
【図４】
2008215106.tif 000011
【図５】
2008215106.tif 000012
【図６】
2008215106.tif 000013
【図７】
2008215106.tif 000014
【図８】
2008215106.tif 000015
【図９】
2008215106.tif 000016
【図１０】
2008215106.tif 000017
【図１１】
2008215106.tif 000018
【図１２】
2008215106.tif 000019
【図１３】
2008215106.tif 000020
【図１４】
2008215106.tif 000021
【図１５】
2008215106.tif 000022
【図１６】
2008215106.tif 000023
【図１７】
2008215106.tif 000024
【図１８】
2008215106.tif 000025
【図１９】
2008215106.tif 000026
【図２０】
2008215106.tif 000027
【図２１】
2008215106.tif 000028
【図２２】
2008215106.tif 000029
【図２３】
2008215106.tif 000030