以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。
(第1実施形態)
図1は、第1実施形態による空燃比制御装置を火花点火式多気筒(4気筒)内燃機関10に適用したシステムの概略構成を示している。この内燃機関10は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部20と、シリンダブロック部20の上に固定されるシリンダヘッド部30と、シリンダブロック部20にガソリン混合気を供給するための吸気系統40と、シリンダブロック部20からの排気ガスを外部に放出するための排気系統50とを含んでいる。
シリンダブロック部20は、シリンダ21、ピストン22、コンロッド23、及びクランク軸24を含んでいる。ピストン22はシリンダ21内を往復動し、ピストン22の往復動がコンロッド23を介してクランク軸24に伝達され、これにより同クランク軸24が回転するようになっている。シリンダ21とピストン22のヘッドは、シリンダヘッド部30とともに燃焼室25を形成している。
シリンダヘッド部30は、燃焼室25に連通した吸気ポート31、吸気ポート31を開閉する吸気弁32、吸気弁32を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置33、可変吸気タイミング装置33のアクチュエータ33a、燃焼室25に連通した排気ポート34、排気ポート34を開閉する排気弁35、排気弁35を駆動するエキゾーストカムシャフト36、点火プラグ37、点火プラグ37に与える高電圧を発生するイグニッションコイルを含むイグナイタ38、及び燃料を吸気ポート31内に噴射するインジェクタ(燃料噴射手段)39を備えている。
吸気系統40は、吸気ポート31に連通し同吸気ポート31とともに吸気通路を形成するインテークマニホールドを含む吸気管41、吸気管41の端部に設けられたエアフィルタ42、吸気管41内にあって吸気通路の開口断面積を可変とするスロットル弁43、スロットル弁駆動手段を構成するDCモータからなるスロットル弁アクチュエータ43a、スワールコントロールバルブ(以下、「SCV」と称呼する。)44、及びDCモータからなるSCVアクチュエータ44aを備えている。
排気系統50は、排気ポート34に連通したエキゾーストマニホールド51、エキゾーストマニホールド51(実際には、各排気ポート34に連通したそれぞれのエキゾーストマニホールド51が集合した集合部)に接続されたエキゾーストパイプ(排気管)52、エキゾーストパイプ52に配設(介装)された上流側の三元触媒53(上流側触媒コンバータ、又はスタート・キャタリティック・コンバータとも云うが、以下「第1触媒53」と称呼する。)、及びこの第1触媒53の下流のエキゾーストパイプ52に配設(介装)された下流側の三元触媒54(車両のフロア下方に配設されるため、アンダ・フロア・キャタリティック・コンバータとも云うが、以下「第2触媒54」と称呼する。)を備えている。排気ポート34、エキゾーストマニホールド51、及びエキゾーストパイプ52は、排気通路を構成している。
一方、このシステムは、熱線式エアフローメータ61、スロットルポジションセンサ62、カムポジションセンサ63、クランクポジションセンサ64、水温センサ65、第1触媒53の上流の排気通路(本例では、上記各々のエキゾーストマニホールド51が集合した集合部)に配設された空燃比センサ66(以下、「上流側空燃比センサ66」と称呼する。)、第1触媒53の下流であって第2触媒54の上流の排気通路に配設された空燃比センサ67(以下、「下流側空燃比センサ67」と称呼する。)、及びアクセル開度センサ68を備えている。
熱線式エアフローメータ61は、吸気管41内を流れる吸入空気の単位時間あたりの質量流量に応じた電圧Vgを出力するようになっている。かかるエアフローメータ61の出力Vgと、計測された吸入空気量(流量)Gaとの関係は、図2に示したとおりである。スロットルポジションセンサ62は、スロットル弁43の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ63は、インテークカムシャフトが90°回転する毎に(即ち、クランク軸24が180°回転する毎に)一つのパルスを有する信号(G2信号)を発生するようになっている。クランクポジションセンサ64は、クランク軸24が10°回転する毎に幅狭のパルスを有するとともに同クランク軸24が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。水温センサ65は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
上流側空燃比センサ66は、限界電流式の酸素濃度センサであり、図3に示したように、空燃比A/Fに応じた電流を出力し、この電流に応じた電圧である出力値vabyfsを出力するようになっていて、特に、空燃比が理論空燃比であるときには出力値vabyfsは値vstoichになる。図3から明らかなように、上流側空燃比センサ66によれば、広範囲にわたる空燃比A/Fを精度良く検出することができる。
下流側空燃比センサ67は、起電力式(濃淡電池式)の酸素濃度センサであり、図4に示したように、理論空燃比近傍において急変する電圧である出力値Voxsを出力するようになっている。より具体的に述べると、下流側空燃比センサ67は、空燃比が理論空燃比よりもリーンのときは略0.1(V)、空燃比が理論空燃比よりもリッチのときは略0.9(V)、及び空燃比が理論空燃比のときは0.5(V)の電圧を出力するようになっている。アクセル開度センサ68は、運転者によって操作されるアクセルペダル81の操作量を検出し、同アクセルペダル81の操作量Accpを表す信号を出力するようになっている。
電気制御装置70は、互いにバスで接続されたCPU71、CPU71が実行するルーチン(プログラム)、テーブル(ルックアップテーブル、マップ)、及び定数等を予め記憶したROM72、CPU71が必要に応じてデータを一時的に格納するRAM73、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップRAM74、並びにADコンバータを含むインターフェース75等からなるマイクロコンピュータである。インターフェース75は、前記センサ61〜68接続され、CPU71にセンサ61〜68からの信号を供給するとともに、同CPU71の指示に応じて可変吸気タイミング装置33のアクチュエータ33a、イグナイタ38、インジェクタ39、スロットル弁アクチュエータ43a、及びSCVアクチュエータ44aに駆動信号を送出するようになっている。
(空燃比フィードバック制御の概要)
次に、上記のように構成された空燃比制御装置が行う機関に供給される混合気の空燃比(以下、単に「機関の空燃比」と云うこともある。)のフィードバック制御の概要について説明する。
第1、第2触媒53,54のような三元触媒(以下、単に「触媒」と云うこともある。)は、触媒に流入するガスの空燃比が理論空燃比であるときに、HC,COを酸化するとともにNOxを還元し、これらの有害成分を高い効率で浄化する。また、触媒は、酸素を吸蔵・放出する上述した酸素吸蔵機能(酸素吸蔵・放出機能)を有し、この酸素吸蔵・放出機能により、空燃比が理論空燃比からある程度まで偏移したとしても、HC,CO、及びNOxを浄化することができる。即ち、機関の空燃比がリーンとなって触媒に流入するガスにNOxが多量に含まれると、触媒はNOxから酸素分子を奪って同酸素分子を吸蔵するとともに同NOxを還元し、これによりNOxを浄化する。また、機関の空燃比がリッチになって触媒に流入するガスにHC,COが多量に含まれると、触媒はこれらに吸蔵している酸素分子を与えて(放出して)酸化し、これによりHC,COを浄化する。
従って、触媒が連続的に流入する多量のHC,COを効率的に浄化するためには、同触媒が酸素を多量に貯蔵していなければならず、逆に連続的に流入する多量のNOxを効率的に浄化するためには、同触媒が酸素を十分に貯蔵し得る状態になければならないことになる。以上のことから、触媒の浄化能力は、同触媒が貯蔵し得る最大の酸素量(最大酸素吸蔵量)に依存する。
一方、第1、第2触媒53,54のような三元触媒は燃料中に含まれる鉛や硫黄等による被毒、或いは触媒に加わる熱により劣化し、これに伴い最大酸素吸蔵量が次第に低下してくる。このように最大酸素吸蔵量が低下した場合であっても、エミッションの排出量を継続的に抑制するには、触媒から排出されるガスの空燃比(従って、触媒に流入するガスの空燃比)が、理論空燃比に極めて近い状態となるように制御する必要がある。
そこで、本実施形態の空燃比制御装置は、上流側、及び下流側空燃比センサ66,67の出力値が対応するセンサ目標値(原則的に理論空燃比に対応する値)にそれぞれ一致するように、上流側空燃比センサ出力値vabyfs(即ち、第1触媒上流の空燃比)、及び下流空燃比センサ出力値Voxs(即ち、第1触媒下流、且つ第2触媒上流の空燃比)に応じて機関の空燃比をフィードバック制御する。
より具体的に述べると、この空燃比制御装置(以下、「本装置」と云うこともある。)は、その機能ブロック図である図5に示したように、A1〜A15の各手段等を含んで構成されている。以下、図5を参照しながら各手段について説明していく。
<基本燃料噴射量の決定>
先ず、基本燃料噴射量Fbaseの決定について説明する。筒内吸入空気量算出手段A1は、エアフローメータ61が計測している吸入空気流量Gaと、クランクポジションセンサ64の出力に基づいて得られるエンジン回転速度NEと、ROM72が記憶しているテーブルMapMcとに基づいて今回の吸気行程を迎える気筒の吸入空気量である筒内吸入空気量Mcを求める。
上流側目標空燃比設定手段A2は、内燃機関10の運転状態であるエンジン回転速度NE、及びスロットル弁開度TA等に基づいて上流側空燃比センサ出力の目標値(上流側目標値)に対応する上流側目標空燃比abyfr(k)を決定する。ここで、添え字の(k)は、今回の吸気行程に対する値であることを示している(以下、他の物理量についても同様。)。この上流側目標空燃比abyfr(k)は、例えば、内燃機関10の暖機終了後においては、特殊な場合を除き理論空燃比に設定されている。また、上流側目標空燃比abyfrは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。
基本燃料噴射量算出手段A3は、筒内吸入空気量算出手段A1により求められた筒内吸入空気量Mc(k)を上流側目標空燃比設定手段A2により設定された上流側目標空燃比abyfr(k)で除することにより、機関の空燃比を同上流側目標空燃比abyfr(k)とするための今回の吸気行程に対する基本燃料噴射量Fbaseを求める。
このように、本装置は、筒内吸入空気量算出手段A1、上流側目標空燃比設定手段A2、及び基本燃料噴射量算出手段A3を利用して、基本燃料噴射量Fbaseを求める。
<燃料噴射量の算出>
次に、燃料噴射量Fiの算出について説明する。燃料噴射量算出手段A4は、基本燃料噴射量算出手段A3により求められた基本燃料噴射量Fbaseに、後述するサブフィードバック補正係数KFisub(下流側フィードバック補正量)と後述するメインフィードバック補正係数KFimain(上流側フィードバック補正量)とを乗算することで、下記(1)式に基づいて、(最終)燃料噴射量Fiを求める。
Fi=Fbase・KFisub・KFimain ・・・(1)
本装置は、このようにして、燃料噴射量算出手段A4により基本燃料噴射量Fbaseをメインフィードバック補正係数KFimainとサブフィードバック補正係数KFisubとによりそれぞれ独立に補正することにより得られる燃料噴射量Fiの燃料を今回の吸気行程を迎える気筒に対してインジェクタ39により噴射する。
<サブフィードバック制御>
続いて、上流側フィードバック制御としてのサブフィードバック制御について説明する。下流側目標値設定手段A5は、上述した上流側目標空燃比設定手段A2と同様、内燃機関10の運転状態であるエンジン回転速度NE、及びスロットル弁開度TA等に基づいて下流側空燃比センサ出力の目標値である下流側目標値Voxsrefを決定する。この下流側目標値Voxsrefは、例えば、内燃機関10の暖機終了後においては、特殊な場合を除き理論空燃比に対応する値である0.5(V)に設定されている(図4を参照。)。また、本例では、下流側目標値Voxsrefは、同下流側目標値Voxsrefに対応する下流側目標空燃比が上述した上流側目標空燃比abyfr(k)と常時一致するように設定される。
出力偏差量算出手段A6は、下記(2)式に基づいて、下流側目標値設定手段A5により設定されている現時点での下流側目標値Voxsrefから現時点での下流側空燃比センサ67の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。この出力偏差量DVoxsは、「下流側空燃比センサ67の出力値Voxsと下流側目標値Voxsrefとの相違の程度に応じた値」に相当する。
DVoxs=Voxsref-Voxs ・・・(2)
ローパスフィルタA7(LPF)は、その特性をラプラス演算子sを用いて表した下記(3)式に示すように、一次のフィルタ(ソフトフィルタ、デジタルフィルタ)である。下記(3)式において、τlpfはローパスフィルタA7の時定数、GlpfはローパスフィルタA7の入力信号周波数「0」でのゲイン(以下、単に「ゲイン」と称呼する。)である。このローパスフィルタA7の周波数−ゲイン特性は図6に示したとおりである。図6に示したように、ローパスフィルタA7は、入力値(入力信号)の変動におけるカットオフ周波数ωlpf(=1/τlpf)以上の高周波数成分を減衰することで同高周波数成分が通過することを実質的に禁止する。なお、ローパスフィルタA7のゲインGlpf、及び時定数τlpfは、後述するLPF特性変更手段A15により変更されるようになっている。
Glpf・(1/(1+τlpf・s)) ・・・(3)
ローパスフィルタA7は、出力偏差量算出手段A6により求められた前記出力偏差量DVoxsの値を入力するとともに、上記(3)式に従って同出力偏差量DVoxsの値をローパスフィルタ処理した後の値であるローパスフィルタ通過後出力偏差量DVoxslowを出力する。従って、ローパスフィルタ通過後出力偏差量DVoxslowは、「下流側空燃比センサ67の出力値Voxsと下流側目標値Voxsrefとの相違の程度に応じた値をローパスフィルタ処理した後の値」である。
PIDコントローラA8(上流側フィードバックコントローラ)は、ローパスフィルタA7の出力値であるローパスフィルタ通過後出力偏差量DVoxslowを比例・積分・微分処理(PID処理)することで、下記(4)式に基づいて下流側フィードバック補正量としてのサブフィードバック補正係数KFisub(>0)を求める。
KFisub=(Kp・DVoxslow+Ki・SDVoxslow+Kd・DDVoxslow)+1 ・・・(4)
上記(4)式において、Kpは予め設定された比例ゲイン(比例定数)、Kiは予め設定された積分ゲイン(積分定数)、Kdは予め設定された微分ゲイン(微分定数)である。また、SDVoxslowはローパスフィルタ通過後出力偏差量DVoxslowの時間積分値であり、DDVoxslowはローパスフィルタ通過後出力偏差量DVoxslowの時間微分値である。
なお、係るフィードバック制御定数(比例ゲインKp、積分ゲインKi、及び微分ゲインKd)は、下流側空燃比センサ67として前記マスタ品を使用した場合であって、そのマスタ品が完全活性状態にある場合であって、且つ、ローパスフィルタA7の時定数τlpf、及びゲインGlpfとして後述する値τlpf0、及び値Glpf0(図9、及び図10を参照)が使用された場合において最適なサブフィードバック制御が達成できるように適合・設定された値である。
このようにして、本装置は、下流側空燃比センサ67の出力値Voxsと下流側目標値Voxsrefとの相違の程度に応じた値をローパスフィルタ処理した後の値であるローパスフィルタ通過後出力偏差量DVoxslow(下流側フィードバック入力値)をPIDコントローラA8に入力することでサブフィードバック補正係数KFisubを求め、前記基本燃料噴射量Fbaseに同サブフィードバック補正係数KFisubを乗算することで、後述するメインフィードバック制御による(前記メインフィードバック補正係数KFimainによる)基本燃料噴射量Fbaseの補正とは独立に同基本燃料噴射量Fbaseを補正してサブフィードバック制御を実行する。
例えば、機関の平均的(定常的)な空燃比がリーンであるために下流側空燃比センサ67の出力値Voxsが理論空燃比よりもリーンである空燃比に対応した値を定常的に示すと、出力偏差量算出手段A6により求められる出力偏差量DVoxsの値が定常的に正の値となる(図4を参照)。従って、ローパスフィルタ通過後出力偏差量DVoxslowも正の値となり、PIDコントローラA8にて求められるサブフィードバック補正係数KFisubは「1」より大きい値となる。これにより、燃料噴射量算出手段A4にて求められる燃料噴射量Fiは基本燃料噴射量Fbaseよりも大きくなって、機関の空燃比がリッチとなるように制御される。
反対に、機関の定常的な空燃比がリッチであるために下流側空燃比センサ出力値Voxsが理論空燃比よりもリッチである空燃比に対応した値を定常的に示すと、出力偏差量DVoxs(従って、ローパスフィルタ通過後出力偏差量DVoxslow)が負の値となるので、サブフィードバック補正係数KFisubは「1」より小さい値(>0)となる。これにより、燃料噴射量Fiは基本燃料噴射量Fbaseよりも小さくなって、機関の空燃比がリーンとなるように制御される。
また、PIDコントローラA8は積分処理を実行する(即ち、積分(I)項「Ki・SDVoxslow」が使用されている)から、機関が定常運転状態にある場合、出力偏差量DVoxsが「0」になることが保証される。換言すれば、下流側空燃比センサ68の出力値Voxsの下流側目標値Voxsrefからの定常偏差がゼロになる。そして、定常運転状態では、出力偏差量DVoxsが「0」になることで比例項Kp・DVoxslowが「0」となるから、サブフィードバック補正係数KFisubは積分項Ki・SDVoxslowの値に「1」を加えた値となる。この値が基本燃焼噴射量Fbaseに乗算されることにより、インジェクタ39の誤差(指令される燃料噴射量である燃料噴射量Fiと実際の燃料噴射量の差)、エアフローメータ61の誤差(吸入空気流量計測値Gaと実際の吸入空気流量の差)が補償されつつ、定常運転状態において第1触媒53の下流の空燃比(従って、機関の空燃比)が下流側目標値Voxsrefに対応する目標空燃比(即ち、原則的に理論空燃比)に収束する。以上、燃料噴射量算出手段A4、下流側目標値設定手段A5、出力偏差量算出手段A6、ローパスフィルタA7、及びPIDコントローラA8が下流側フィードバック制御手段に相当する。
<メインフィードバック制御>
続いて、上流側フィードバック制御としてのメインフィードバック制御について説明する。テーブル変換手段A9は、上流側空燃比センサ66の出力値vabyfsと、先に説明した図3に示した上流側空燃比センサ出力値vabyfsと空燃比A/Fとの関係を規定したテーブルとに基づいて、上流側空燃比センサ66による現時点における検出空燃比abyfsを求める。
目標空燃比遅延手段A10は、上流側目標空燃比設定手段A2により吸気行程毎に求められRAM73に記憶されている上流側目標空燃比abyfrのうち、現時点からNストローク(N回の吸気行程)前に吸気行程を迎えた気筒についての上流側目標空燃比abyfrをRAM73から読み出し、これを上流側目標空燃比abyfr(k-N)として設定する。ここで、前記値Nは、内燃機関10の排気量、及び燃焼室25から上流側空燃比センサ66までの距離等により異なる値である。
このように、現時点からNストローク前の上流側目標空燃比abyfr(k-N)が使用されるのは、燃焼室25内で燃焼された混合気が上流側空燃比センサ66に到達するまでには、Nストロークに相当する時間Lを要しているからである。
上流側空燃比偏差算出手段A11は、下記(5)式に基づいて、テーブル変換手段A9により求められた現時点での上記検出空燃比abyfsから、目標空燃比遅延手段A10により設定された現時点からNストローク前の上流側目標空燃比abyfr(k-N)を減じることにより、上流側空燃比偏差Dabyfを求める。この上流側空燃比偏差Dabyfは、Nストローク前の時点での実際の空燃比と目標空燃比との差を表す量であって、「上流側空燃比センサ66の出力値vabyfsと上流側目標値との相違の程度に応じた値」に相当する。
Dabyf=abyfs−abyfr(k-N) ・・・(5)
ハイパスフィルタA12(HPF)は、その特性をラプラス演算子sを用いて表した下記(6)式に示すように、一次のフィルタ(ソフトフィルタ、デジタルフィルタ)である。下記(6)式において、τhpfはハイパスフィルタA12の時定数、GhpfはハイパスフィルタA12の入力信号周波数「∞」でのゲイン(以下、単に「ゲイン」と称呼する。)である。このハイパスフィルタA12の周波数−ゲイン特性は図6に示したとおりである。図6に示したように、ハイパスフィルタA12は、入力値(入力信号)の変動におけるカットオフ周波数ωhpf(=1/τhpf)以下の低周波数成分を減衰することで同低周波数成分が通過することを実質的に禁止する。なお、図6では、ローパスフィルタA7のカットオフ周波数ωlpfとハイパスフィルタA12のカットオフ周波数ωhpfとが等しい場合が示されている。また、ハイパスフィルタA12のゲインGhpf、及び時定数τhpfは、後述するHPF特性変更手段A14により変更されるようになっている。
Ghpf・(1−1/(1+τhpf・s)) ・・・(6)
ハイパスフィルタA12は、前記上流側空燃比偏差算出手段A11により求められた前記上流側空燃比偏差Dabyfの値を入力するとともに、上記(6)式に従って同上流側空燃比偏差Dabyfの値をハイパスフィルタ処理した後の値であるハイパスフィルタ通過後上流側空燃比偏差Dabyfhiを出力する。従って、ハイパスフィルタ通過後上流側空燃比偏差Dabyfhiは、「上流側空燃比センサ66の出力値vabyfsと上流側目標値との相違の程度に応じた値をハイパスフィルタ処理した後の値」である。
PIコントローラA13(上流側フィードバックコントローラ)は、ハイパスフィルタA12の出力値であるハイパスフィルタ通過後上流側空燃比偏差Dabyfhiを比例・積分処理(PI処理)することで、下記(7)式に基づいてメインフィードバック補正係数KFimain(>0)を求める。
KFimain=(Gp・Dabyfhi+Gi・SDabyfhi)+1 ・・・(7)
上記(7)式において、Gpは予め設定された比例ゲイン(比例定数)、Giは積分ゲイン(積分定数)である。また、SDabyfhiはハイパスフィルタ通過後上流側空燃比偏差Dabyfhiの時間積分値である。
なお、係るフィードバック制御定数(比例ゲインGp、及び積分ゲインGi)は、上流側空燃比センサ66として前記マスタ品を使用した場合であって、そのマスタ品が完全活性状態にある場合であって、且つ、ハイパスフィルタA12の時定数τhpf、及びゲインGhpfとして後述する値τhpf0、及び値Ghpf0(図7、及び図8を参照)が使用された場合において最適なメインフィードバック制御が達成できるように適合・設定された値である。
このようにして、本装置は、メインフィードバック制御回路とサブフィードバック制御回路とを基本燃料噴射量Fbaseの補正に関して並列に接続している。また、本装置は、上流側空燃比センサ66の出力値vabyfsと上流側目標空燃比abyfrに対応する上流側目標値との相違の程度に応じた値をハイパスフィルタ処理した後の値であるハイパスフィルタ通過後上流側空燃比偏差Dabyfhi(上流側フィードバック入力値)をPIコントローラA13に入力することでメインフィードバック補正係数KFimainを求め、前記基本燃料噴射量Fbaseに同メインフィードバック補正係数KFimainを乗算することで、前記サブフィードバック制御による基本燃料噴射量Fbaseの補正とは独立に同基本燃料噴射量Fbaseを補正してメインフィードバック制御を実行する。
例えば、機関の空燃比が急変してリーンとなると、図3から理解できるように、上流空燃比センサ出力値に基づく検出空燃比abyfsは上流側目標空燃比設定手段A2により設定されている上流側目標空燃比abyfrも大きな値となる。このため、上流側空燃比偏差算出手段A11により求められた上流側空燃比偏差Dabyfは正の値となる。ここで、機関の空燃比の急変によりこの上流側空燃比偏差Dabyfを示す信号には前記カットオフ周波数ωhpf以上の高周波数成分が含まれている。係る高周波数成分は、ハイパスフィルタA12を通過し得る。従って、ハイパスフィルタ通過後上流側空燃比偏差Dabyfhiも正の値となる。この結果、PIコントローラA13により算出されるメインフィードバック補正係数KFimainが「1」より大きい値となる。これにより、燃料噴射量算出手段A4にて求められる燃料噴射量Fiは、基本燃料噴射量Fbaseよりも大きくなって、機関の空燃比がリッチとなるように制御される。
反対に、機関の空燃比が急変してリッチとなると、検出空燃比abyfsは上流側目標空燃比abyfrよりも小さい値となる。このため、上流側空燃比偏差Dabyfは負の値となる。この場合も、上流側空燃比偏差Dabyfを示す信号にはハイパスフィルタA12を通過し得る前記カットオフ周波数ωhpf以上の高周波数成分が含まれている。従って、ハイパスフィルタ通過後上流側空燃比偏差Dabyfhiも負の値となる。この結果、メインフィードバック補正係数KFimainが「1」より小さい値(>0)となる。これにより、燃料噴射量Fiは、基本燃料噴射量Fbaseよりも小さくなって、機関の空燃比がリーンとなるように制御される。
以上、燃料噴射量算出手段A4、テーブル変換手段A9、目標空燃比遅延手段A10、上流側空燃比偏差算出手段A11、ハイパスフィルタA12、及びPIコントローラA13は上流側フィードバック制御手段に相当する。
<空燃比フィードバック制御間の相互干渉の回避>
上述したように、上流側フィードバックコントローラであるPIコントローラA13に入力される値Dabyfhiには、ハイパスフィルタA12のカットオフ周波数ωhpf以上の高周波数成分のみが含まれているから、上流側フィードバック制御の制御周波数帯域はωhpf以上の帯域となる。
同様に、下流側フィードバックコントローラであるPIDコントローラA8に入力される値DVoxslowには、ローパスフィルタA7のカットオフ周波数ωlpf以下の低周波数成分のみが含まれているから、下流側フィードバック制御の制御周波数帯域はωlpf以下の帯域となる。
これにより、メインフィードバック制御、及びサブフィードバック制御の制御周波数帯域は、それぞれが互いに重複しないように設定され得る。従って、本装置においては、上記2つの空燃比フィードバック制御間の相互の干渉が回避されている。
更には、機関が過渡運転状態にある場合等、排ガスの空燃比がハイパスフィルタA12のカットオフ周波数ωhpf以上の高周波数で急変・変動するような場合、係る空燃比変動により、上流側空燃比センサ出力値に基づく検出空燃比abyfsにはカットオフ周波数ωhpf以上の高周波数成分が含まれる。この高周波数成分はハイパスフィルタA12を通過する。従って、本装置においては、過渡運転状態における空燃比の急変に対する空燃比制御(補償)はメインフィードバック制御により迅速、且つ確実に行われ得る。
また、第1触媒53の下流の空燃比変動として現れ得る程度の、ローパスフィルタA7のカットオフ周波数ωlpf以下の極低周波数での定常的な空燃比変動が発生するような場合、係る定常的な空燃比変動により、下流側空燃比センサ67の出力値Voxsにはカットオフ周波数ωlpf以下の低周波数成分が含まれる。この低周波数成分はローパスフィルタA7を通過する。従って、本装置においては、このような定常的な空燃比変動に対する空燃比制御は、サブフィードバック制御により確実に達成され得る。
<フィルタのゲイン、時定数の変更>
エミッションの排出量の低減のため、上述した空燃比フィードバック制御(メインフィードバック制御、及びサブフィードバック制御)は、機関始動後なるべく早い段階から開始されることが好ましい。しかしながら、冷間始動直後など、空燃比センサの温度が雰囲気温度近傍にある場合、空燃比センサが非活性状態にあってその出力値は空燃比に対応する値とならない。即ち、空燃比センサが非活性状態にある段階では、空燃比フィードバック制御は実行されるべきではない。
一方、空燃比センサが前記半活性状態になった段階では、同空燃比センサはある程度空燃比に対応する値を出力するようになる。よって、本装置は、空燃比センサが半活性状態に移行した段階から同空燃比センサに対応する空燃比フィードバック制御を開始するようになっている。
しかしながら、上述したように、空燃比センサが半活性状態にある段階では、その出力は不安定な挙動を示す傾向があって信頼性の低い値となるから、空燃比フィードバック制御の応答性を下げる必要がある。
このため、本装置(HPF特性変更手段A14、LPF特性変更手段A15)は、空燃比センサが半活性状態にある段階では、その空燃比センサに対応するフィードバック制御系のフィルタのゲインを小さめに変更し、且つ同フィルタの時定数を大きめに変更する。
具体的には、HPF特性変更手段A14は、上流側空燃比センサ66の活性状態を表す値であるアドミタンスYupを後述する手法により取得する。空燃比センサの活性状態(活性の程度)は同空燃比センサの温度に依存し、同空燃比センサの温度の上昇に応じて同空燃比センサのアドミタンスは大きくなる。従って、即ち、上流側空燃比センサ66の活性状態は、同上流側空燃比センサ66のアドミタンスYupを取得することで判定され得る。
本装置は、アドミタンスYupが、上流側空燃比センサ66が非活性状態から半活性状態へと移行する時点の温度に対応する値Yup1を超えた段階から原則的にメインフィードバック制御を開始する。そして、HPF特性変更手段A14は、アドミタンスYupと、図7、図8に示したテーブルMapτhpf,MapGhpfとに基づいて、ハイパスフィルタA12の時定数τhpf、及びゲインGhpfを所定のタイミング毎に決定していく。
これにより、上流側空燃比センサ66が半活性状態にある段階では、同上流側空燃比センサ66の温度(従って、アドミタンスYup)が小さいほど(従って、活性の程度が小さいほど)、ゲインGhpfが値Ghpf0に対してより小さい値に設定されるとともに時定数τhpfが値τhpf0に対してより大きい値に設定される。
ここで、値Ghpf0、及び値τhpf0は、上流側空燃比センサ66が前記完全活性状態にある場合において良好な(最適な)メインフィードバック制御を達成できるように予め適合された値(一定値)である。上流側空燃比センサ66が完全活性状態にある場合、時定数τhpfは上記一定値τhpf0に、ゲインGhpfは上記一定値Ghpf0に維持される。
同様に、本装置は、LPF特性変更手段A15が後述する手法により取得した下流側空燃比センサ67の活性状態を表す値であるアドミタンスYdownが、下流側空燃比センサ67が非活性状態から半活性状態へと移行する時点の温度に対応する値Ydown1を超えた段階から原則的にサブフィードバック制御を開始する。そして、LPF特性変更手段A15は、アドミタンスYdownと、図9、図10に示したテーブルMapτlpf,MapGlpfとに基づいて、ローパスフィルタA7の時定数τlpf、及びゲインGlpfを所定のタイミング毎に決定していく。
これにより、下流側空燃比センサ67が半活性状態にある段階では、同下流側空燃比センサ67の温度(従って、アドミタンスYdown)が小さいほど、ゲインGlpfが値Glpf0に対してより小さい値に設定されるとともに時定数τlpfが値τlpf0に対してより大きい値に設定される。
ここで、値Glpf0、及び値τlpf0は、下流側空燃比センサ67が前記完全活性状態にある場合において良好な(最適な)サブフィードバック制御を達成できるように予め適合された値(一定値)である。下流側空燃比センサ67が完全活性状態にある場合、時定数τlpfは上記一定値τlpf0に、ゲインGlpfは上記一定値Glpf0に維持される。以上、HPF特性変更手段A14、及びLPF特性変更手段A15はフィルタ特性変更手段に相当する。以上が、本装置が行う機関の空燃比のフィードバック制御の概要である。
(実際の作動)
次に、上記第1実施形態に係る空燃比制御装置の実際の作動について説明する。
<空燃比フィードバック制御>
CPU71は、図11にフローチャートにより示した燃料噴射量Fiの計算、及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が前記所定クランク角度になると、CPU71はステップ1100から処理を開始してステップ1105に進み、エアフローメータ61が計測している吸入空気流量Gaと、クランクポジションセンサ64の出力に基づいて得られるエンジン回転速度NEと、前記テーブルMapMcとに基づいて今回の吸気行程を迎える気筒の吸入空気量である筒内吸入空気量Mcを求める。
次に、CPU71はステップ1110に進み、上記求めた筒内吸入空気流量Mcを現時点での上流側目標空燃比abyfr(k)で除することで、機関の空燃比を同上流側目標空燃比abyfr(k)とするための基本燃料噴射量Fbaseを求める。
次いで、CPU71はステップ1115に進み、フューエルカット処理の実行条件であるフューエルカット条件が成立しているか否かを判定する。このフューエルカット条件は、例えば、エンジン回転速度NEが所定回転速度以上であって、アクセルペダル操作量Accpが「0」であるときに成立する。
いま、フューエルカット条件が成立していないものとすると、CPU71はステップ1115にて「No」と判定してテップ1120に進んで、上記求めた基本燃料噴射量Fbaseに、後述するルーチンで計算されているメインフィードバック補正係数KFimainとサブフィードバック補正係数KFisubとをそれぞれ乗じることで上記(1)式に従って燃料噴射量Fiを算出する。
そして、CPU71はステップ1125に進み、燃料噴射量Fiの燃料を噴射するための指示を今回の吸気行程を迎える気筒のインジェクタ39に対して行った後、ステップ1195に進み、本ルーチンを一旦終了する。
一方、フューエルカット条件が成立している場合、CPU71はステップ1115にて「Yes」と判定してステップ1195に直ちに進んで本ルーチンを一旦終了する。これにより、燃料噴射指示が実行されず、この結果、フューエルカット処理が実行される。
以上により、メインフィードバック制御、及びサブフィードバック制御によりそれぞれ独立に補正された後の燃料噴射量Fiの燃料が吸気行程を迎える気筒に対して噴射される。
<メインフィードバック補正係数の計算>
次に、メインフィードバック制御においてメインフィードバック補正係数KFiupを算出する際の作動について説明すると、CPU71は図12にフローチャートにより示した(上流側フィードバック制御手段に相当する)ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、CPU71はステップ1200から処理を開始し、ステップ1205に進んでメインフィードバック制御条件が成立しているか否かを判定する。
このメインフィードバック制御条件は、例えば、機関の冷却水温THWが第1所定温度以上であって、機関の一回転当りの吸入空気量(負荷)が所定値以下であって、上流側空燃比センサ66のアドミタンスYupが前記値Yup1以上(即ち、上流側空燃比センサ66が半活性状態、或いは完全活性状態にある場合)であるときに成立する。ここで、アドミタンスYupは、現時点での上流側空燃比センサ66の出力値vabyfs(図3を参照)と、現時点での同上流側空燃比センサ66を流れる電流値とに基づいて計算される。
いま、メインフィードバック制御条件が成立しているものとして説明を続けると、CPU71はステップ1205にて「Yes」と判定してステップ1210に進み、現時点の上流側空燃比センサ66の出力値vabyfsを図3に示したテーブルに基づいて変換することにより、現時点における検出空燃比abyfsを求める。
続いて、CPU71はステップ1215に進んで、上記求めた検出空燃比abyfsから、現時点からNストローク前の上流側目標空燃比abyfr(k−N)を減じることで上記(5)式に従って、現時点からNストローク前の実際の空燃比と目標空燃比との差を表す上流側空燃比偏差Dabyfを求める。
次いで、CPU71はステップ1220に進み、前記上流側空燃比偏差Dabyfを、後述するルーチンにより更新されているゲインGhpf,時定数τhpfのハイパスフィルタA12によりハイパスフィルタ処理してハイパスフィルタ通過後上流側空燃比偏差Dabyfhiを取得し、続くステップ1225にて上記(7)式に従ってメインフィードバック補正係数KFimainを求める。ここで、SDabyfhiとしてはステップ1230にて前回の本ルーチン実行時において求められている最新値が使用される。
即ち、CPU71はステップ1230に進むと、その時点におけるハイパスフィルタ通過後上流側空燃比偏差の積分値SDabyfhiに上記ステップ1220にて求めたハイパスフィルタ通過後上流側空燃比偏差Dabyfhiを加えて、新たなハイパスフィルタ通過後上流側空燃比偏差の積分値SDabyfhiを求める。
そして、CPU71はステップ1295に進んで本ルーチンを一旦終了する。以上により、メインフィードバック補正係数KFimainが求められ、このメインフィードバック補正係数KFimainが前述した図11のステップ1120により燃料噴射量Fiに反映されることで上述したメインフィードバック制御に基づく機関の空燃比制御が実行される。
一方、ステップ1205の判定時において、メインフィードバック制御条件が不成立であると、CPU71は同ステップ1205にて「No」と判定してステップ1235に進んでメインフィードバック補正係数KFimainの値を「1」に設定し、続くステップ1240にてハイパスフィルタ通過後上流側空燃比偏差の積分値SDabyfhiの値を「0」にリセットした後、ステップ1295に進んで本ルーチンを一旦終了する。このように、メインフィードバック制御条件が不成立であるときは、メインフィードバック補正係数KFimainの値を「1」としてメインフィードバック制御に基づく機関の空燃比の補正を行わない。
<サブフィードバック補正係数の計算>
次に、サブフィードバック制御においてサブフィードバック補正係数KFidownを算出する際の作動について説明すると、CPU71は図13にフローチャートにより示した(下流側フィードバック制御手段に相当する)ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、CPU71はステップ1300から処理を開始し、ステップ1305に進んでサブフィードバック制御条件が成立しているか否かを判定する。
サブフィードバック制御条件は、例えば、機関の冷却水温THWが前記第1所定温度よりも高い第2所定温度以上であって、機関の一回転当りの吸入空気量(負荷)が所定値以下であって、下流側空燃比センサ67のアドミタンスYdownが前記値Ydown1以上(即ち、下流側空燃比センサ67が半活性状態、或いは完全活性状態にある場合)であるときに成立する。ここで、アドミタンスYdownは、現時点での下流側空燃比センサ67の出力値Voxs(図4を参照)と、現時点での同下流側空燃比センサ67を流れる電流値とに基づいて計算される。
いま、サブフィードバック制御条件が成立しているものとして説明を続けると、CPU71はステップ1305にて「Yes」と判定してステップ1310に進み、上記(2)式に従って、現時点での下流側目標値Voxsrefから現時点での下流側空燃比センサ67の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。
次に、CPU71はステップ1315に進んで、前記出力偏差量DVoxsを、後述するルーチンにより更新されているゲインGlpf,時定数τlpfのローパスフィルタA7によりローパスフィルタ処理してローパスフィルタ通過後出力偏差量DVoxslowを取得する。
次いで、CPU71はステップ1320に進み、下記(8)式に基づきローパスフィルタ通過後出力偏差量DVoxslowの微分値DDVoxslowを求める。
DDVoxslow=(DVoxslow-DVoxslow1)/Δt ・・・(8)
上記(8)式において、DVoxslow1は前回の本ルーチン実行時において後述するステップ1335にて設定(更新)されたローパスフィルタ通過後出力偏差量DVoxslowの前回値である。また、Δtは本ルーチンの実行間隔時間(所定時間)である。
次いで、CPU71はステップ1325に進み、上記(4)式に従って、サブフィードバック制御係数KFisubを求めた後、ステップ1330に進んで、その時点におけるローパスフィルタ通過後出力偏差量の積分値SDVoxslowに上記ステップ1315にて求めたローパスフィルタ通過後出力偏差量DVoxslowを加えて、新たなローパスフィルタ通過後出力偏差量の積分値SDVoxslowを求め、続くステップ1335にて、上記ステップ1315にて求めたローパスフィルタ通過後出力偏差量DVoxslowをローパスフィルタ通過後出力偏差量DVoxslowの前回値DVoxslow1として設定した後、ステップ1395に進んで本ルーチンを一旦終了する。
以上により、サブフィードバック制御係数KFisubが求められ、このサブフィードバック制御係数KFisubが前述した図11のステップ1120により燃料噴射量Fiに反映されることで上述したサブフィードバック制御に基づく機関の空燃比制御が実行される。
一方、ステップ1305の判定時において、サブフィードバック制御条件が不成立であると、CPU71は同ステップ1305にて「No」と判定してステップ1340に進んでサブフィードバック制御係数KFisubの値を「1」に設定し、続くステップ1345にてローパスフィルタ通過後出力偏差量の積分値SDVoxslowを「0」にリセットした後、ステップ1395に進んで本ルーチンを一旦終了する。このように、サブフィードバック制御条件が不成立であるときは、サブフィードバック制御係数KFisubを「1」としてサブフィードバック制御に基づく機関の空燃比の補正を行わない。
<ハイパスフィルタのゲイン、時定数の設定>
次に、ハイパスフィルタA12のゲインGhpf、時定数τhpfの設定・変更する際の作動について説明すると、CPU71は図14にフローチャートにより示した(フィルタ特性変更手段に相当する)ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、CPU71はステップ1400から処理を開始し、ステップ1405に進んで、先のステップ1205のものと同一の前記メインフィードバック制御条件が成立しているか否かを判定し、「No」と判定する場合、ステップ1495に直ちに進んで本ルーチンを一旦終了する。この場合、ハイパスフィルタA12のゲインGhpf、時定数τhpfは変更(更新)されない。
一方、メインフィードバック制御条件が成立しているものとすると(即ち、上流側空燃比センサ66が半活性状態、或いは完全活性状態になっているものとすると)、CPU71はステップ1405にて「Yes」と判定してステップ1410に進み、ゲインGhpf、及び時定数τhpfの更新タイミングが到来しているか否かを判定し、「No」と判定する場合、ステップ1495に直ちに進んで、ゲインGhpf、時定数τhpfを変更(更新)することなく本ルーチンを一旦終了する。
一方、更新タイミングが到来している場合、CPU71はステップ1410にて「Yes」と判定してステップ1415に進み、現時点で取得されているアドミタンスYupと、上述した図7、図8に示したテーブルMapGhpf,Mapτhpfとに基づいてハイパスフィルタA12のゲインGhpf、時定数τhpfを設定・更新し、ステップ1495に進んで本ルーチンを一旦終了する。
このようにして更新されたハイパスフィルタA12のゲインGhpf、時定数τhpfは、その直後にて先の図12のステップ1220でハイパスフィルタ処理が実行する際に使用される。以上のようにして、メインフィードバック制御条件が成立している間において、ハイパスフィルタA12のゲインGhpf、時定数τhpfは、ステップ1410の更新タイミングが到来する毎に更新されていく。
<ローパスフィルタのゲイン、時定数の設定>
次に、ローパスフィルタA7のゲインGlpf、時定数τlpfの設定・変更する際の作動について説明すると、CPU71は図15にフローチャートにより示した(フィルタ特性変更手段に相当する)ルーチンを所定時間の経過毎に繰り返し実行している。この図15に示したルーチンのステップ1505〜1515は先の図14に示したルーチンのステップ1405〜1415と同様であるから、その詳細な説明を省略する。
ステップ1515にして更新されたローパスフィルタA7のゲインGlpf、時定数τlpfは、その直後にて先の図13のステップ1315でローパスフィルタ処理が実行する際に使用される。以上のようにして、サブフィードバック制御条件が成立している間において、ローパスフィルタA7のゲインGlpf、時定数τlpfは、ステップ1510の更新タイミングが到来する毎に更新されていく。
以上、説明したように、本発明による内燃機関の空燃比制御装置の第1実施形態によれば、第1触媒53の上流に配設された上流側空燃比センサ66の出力値vabyfsに基づく空燃比制御である上流側フィードバック制御(メインフィードバック制御)において、上流側空燃比センサ出力値vabyfsに基づく値(上流側空燃比偏差Dabyf)をハイパスフィルタA12(通過許可周波数:ωhpf以上)によりハイパスフィルタ処理した後の値を上流側フィードバックコントローラ(PIコントローラA13)で比例・積分処理(PI処理)することでメインフィードバック補正係数KFimainが求められる。
また、第1触媒53の下流であって第2触媒54の上流に配設された下流側空燃比センサ67の出力値Voxsに基づく空燃比制御である下流側フィードバック制御(サブフィードバック制御)において、下流側空燃比センサ出力値Voxsに基づく値(出力偏差量DVoxs)をローパスフィルタA7(通過許可周波数:ωlpf以下)によりローパスフィルタ処理した後の値を下流側フィードバックコントローラ(PIDコントローラA8)で比例・積分・微分処理(PID処理)することでサブフィードバック補正係数KFisubが求められる。
そして、メインフィードバック補正係数KFimain、及びサブフィードバック補正係数KFisubで互いに独立に燃料噴射量Fiを補正することにより、メインフィードバック制御、及びサブフィードバック制御がそれぞれ実行される。
これにより、メインフィードバック制御、及びサブフィードバック制御の制御周波数帯域はそれぞれ、高周波数帯域(ωhpf以上)、低周波数帯域(ωlpf以下)となり、それぞれが互いに重複しないように設定され得る。これにより、メインフィードバック制御、及びサブフィードバック制御の間の相互干渉が回避されるから、良好な空燃比制御が達成され得、この結果、エミッションの排出量を安定して抑制することができる。
また、これにより、メインフィードバック制御は、機関が過渡運転状態にある場合等における高周波数の空燃比変動(外乱等による高周波数の変動を含む。)に対する空燃比制御を達成し得る。サブフィードバック制御は、第1触媒53の下流の空燃比変動として現れ得る程度の極低周波数での定常的な空燃比変動に対する空燃比制御を達成し得る。また、サブフィードバック制御では、PIDコントローラA8にて積分処理が実行されるから、第1触媒下流の空燃比の目標空燃比(理論空燃比)からの定常偏差が「0」になることが保証される。この結果、定常運転状態でのエミッションの排出量を効果的に低減することができる。
また、ハイパスフィルタA12の特性(ゲインGhph、時定数τhpf)は、上流側空燃比センサ66が半活性状態にある場合、同センサ66が完全活性状態にある場合に使用される値Ghpf0,τhpf0に対して同ハイパスフィルタA12の応答性が下がる方向に変更される。これにより、メインフィードバック制御系の応答性が下げられ、この結果、上流側空燃比センサ66が信頼性の低い値を出力し得る半活性状態にある段階から安定したメインフィードバック制御を開始することができる。従って、上流側空燃比センサ66が半活性状態から完全活性状態へ移行した時点からメインフィードバック制御を開始する場合に比して、よりエミッションの排出量を低減することができる。
同様に、ローパスフィルタA7の特性(ゲインGlph、時定数τlpf)は、下流側空燃比センサ67が半活性状態にある場合、同センサ67が完全活性状態にある場合に使用される値Glpf0,τlpf0に対して同ローパスフィルタA7の応答性が下がる方向に変更される。これにより、サブフィードバック制御系の応答性が下げられ、この結果、下流側空燃比センサ67が信頼性の低い値を出力し得る半活性状態にある段階から安定したサブフィードバック制御を開始することができる。従って、下流側空燃比センサ67が半活性状態から完全活性状態へ移行した時点からサブフィードバック制御を開始する場合に比して、よりエミッションの排出量を低減することができる。
本発明は上記第1実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第1実施形態においては、ハイパスフィルタA12の特性としてゲインGhpfと時定数τhpfとが共に上流側空燃比センサ66の活性状態に応じて変更可能に構成されているが、同ゲインGhpfと同時定数τhpfの何れか一方が同センサ66の活性状態に応じて変更可能に構成されてもよい。
同様に、ローパスフィルタA7の特性としてゲインGlpfと時定数τlpfとが共に下流側空燃比センサ67の活性状態に応じて変更可能に構成されているが、同ゲインGlpfと同時定数τlpfの何れか一方が同センサ67の活性状態に応じて変更可能に構成されてもよい。
また、上記第1実施形態においては、ハイパスフィルタA12の時定数τhpfとローパスフィルタA7の時定数τlpfとが異なる値に設定される場合があるが、両時定数が常に等しくなるように両時定数を設定するよう構成されてもよい。これにより、メインフィードバック制御とサブフィードバック制御の制御周波数帯域が互いに連続することになり、あらゆる周波数の空燃比変動に対して何れかの空燃比フィードバック制御により確実に空燃比制御が実行され得るようになる。
この場合、具体的には、上流側空燃比センサ66の活性状態(アドミタンスYup)に応じて(図7のテーブルに基づいて)設定された時定数τhpfに時定数τlpfを常に一致させるように構成してもよいし、下流側空燃比センサ67の活性状態(アドミタンスYdown)に応じて(図9のテーブルに基づいて)設定された時定数τlpfに時定数τhpfを常に一致させるように構成してもよい。
また、上流側空燃比センサ66の活性状態(アドミタンスYup)に応じて(図7のテーブルに基づいて)設定された時定数τhpfと、下流側空燃比センサ67の活性状態(アドミタンスYdown)に応じて(図9のテーブルに基づいて)設定された時定数τlpfとの平均値を、時定数τhpf、及び時定数τlpfとして使用してもよい。
また、上記第1実施形態においては、ハイパスフィルタA12の特性とローパスフィルタA7の特性とが共に変更され得るように構成されているが、何れか一方のフィルタ特性のみを変更するように構成してもよい。
また、上記第1実施形態においては、空燃比センサの活性状態を表す値として、同空燃比センサのアドミタンスが使用されているが、同空燃比センサの抵抗値やコンダクタンスを使用してもよい。また、空燃比センサの温度を取得する手段(例えば、温度センサ)を設け、同空燃比センサの温度そのものを同空燃比センサの活性状態を表す値として使用してもよい。
(第2実施形態)
次に、第2実施形態に係る空燃比制御装置について説明する。この第2実施形態は、上流側空燃比センサ66の応答性(後述する応答時間Ts)に応じてハイパスフィルタA12の時定数τhpfを変更する点で、上流側、及び下流側空燃比センサ66,67の活性状態に応じてハイパスフィルタA12の特性(時定数τhpf、及びゲインGhpf)、及びローパスフィルタA7の特性(時定数τlpf、及びゲインGlpf)をそれぞれ変更する第1実施形態と主として異なる。以下、係る相違点を中心として説明する。
この相違点に基づき、第2実施形態に係る装置では、ハイパスフィルタA12のゲインGhpf、並びにローパスフィルタA7のゲインGlpf及び時定数τlpfがそれぞれ所定の一定値Ghpf1,Glpf1,τlpf1に維持されている。これらの一定値Ghpf1,Glpf1,及びτlpf1はそれぞれ、例えば、図8に示した値Ghpf0、図10に示した値Glpf0、及び図9に示した値τlpf0に設定される。
また、この装置では、メインフィードバック制御は上流側空燃比センサ66が完全活性状態になっている状態でのみ実行され、サブフィードバック制御は下流側空燃比センサ67が完全活性状態になっている状態でのみ実行される。これに伴い、この装置では、メインフィードバック制御条件(図12のステップ1205、及び後述する図16のステップ1605)、並びにサブフィードバック制御条件(図13のステップ1305)が、空燃比センサが半活性状態にある段階から空燃比フィードバック制御を開始させる第1実施形態のものとそれぞれ異なっている。
更に、第2実施形態のCPU71は図14、及び図15に示したルーチンに代えて、ハイパスフィルタA12の時定数τhpfを設定するための図16にフローチャートにより示したルーチンを所定時間の経過毎に実行して、上流側空燃比センサ66の応答性を表す値である応答時間Tsを取得することでハイパスフィルタA12の時定数τhpfを変更する。即ち、図16に示したルーチンは、フィルタ特性変更手段に相当する。
より具体的に述べると、CPU71は、所定のタイミングになるとステップ1600から処理を開始し、ステップ1605に進んで、メインフィードバック制御条件が成立しているか否かを判定し、「No」と判定する場合、ステップ1645にてカウンタTの値を「0」に初期化し、ステップ1695に直ちに進んで本ルーチンを一旦終了する。この場合、ハイパスフィルタA12の時定数τhpfは変更(更新)されない。なお、カウンタTの値は、上流側空燃比センサ66の前記応答時間Tsを決定するために使用される値である。
一方、メインフィードバック制御条件が成立しているものとすると(即ち、上流側空燃比センサ66が完全活性状態になっているものとすると)、CPU71はステップ1605にて「Yes」と判定してステップ1610に進み、現時点にて(少なくとも一つの気筒に対して)フューエルカット処理が実行されているか否かを判定する。ここで「No」と判定する場合も、上記と同様、先のステップ1645を経てステップ1695に直ちに進んで本ルーチンを一旦終了する。この結果、時定数τhpfは変更(更新)されない。以後、フューエルカット処理が実行されない限りにおいて、CPU71は、ステップ1610に進む毎に「No」と判定し続ける。
いま、フューエルカット処理が開始された直後であるものとして説明を続けると、CPU71はステップ1610に進んだとき「Yes」と判定してステップ1615に進むようになる。CPU71はステップ1615に進むと、総ての気筒で燃焼ガスの排出が中断されているか否かを判定する。
現時点はフューエルカット処理が開始された直後であるから、現時点にて図11のルーチンの処理の対象となっている気筒(即ち、吸気行程を迎える気筒)のみについてフューエルカット処理が実行されている。即ち、残りの3つの気筒からは、既に噴射された燃料に基づく燃焼ガスが排気行程を迎える毎に排出されていく。従って、現時点では、CPU71はステップ1615にて「No」と判定してステップ1645を経てステップ1695に進む。
以降、残りの3つの気筒総てが順に図11のルーチンの処理の対象となることで4つの気筒総てについてフューエルカット処理が実行される状態になるまで、CPU71はステップ1615に進む毎に「No」と判定し続ける。
そして、4つの気筒総てについてフューエルカット処理が実行される状態になると(即ち、新気(空気)が気筒の排気弁35から排気通路へ排出開始されるようになると)、CPU71はステップ1615に進んだとき「Yes」と判定してステップ1620に進むようになる。なお、この時点ではカウンタTの値はステップ1645の処理により「0」となっている。
CPU71はステップ1620に進むと、上流側空燃比センサ66の出力値vabyfsが、新気の空燃比(相当のリーン空燃比)よりも若干リッチな空燃比に対応する値vlean(図3を参照)未満から同値vlean以上に変化したか否かを判定する。
現時点は、気筒から新気が排出開始されるようになった直後であって、上流側空燃比センサ66の検出部には値vleanに対応する空燃比よりも明らかにリッチな燃焼ガス(排ガス)が到達している。即ち、現時点では、出力値vabyfsは値vlean未満となっている。従って、CPU71はステップ1620にて「No」と判定してステップ1625に進み、カウンタTを「1」だけインクリメントとする。
以降、CPU71は、上流側空燃比センサ66の出力値vabyfsが値vlean未満である限りにおいて、ステップ1605、1610、1615、1620、1625の処理を繰り返し実行する。この結果、カウンタTは次第に増加していく。即ち、カウンタTは、気筒から新気が排出開始されるようになった時点からの経過時間を表す。
そして、排気通路中の新気(の先頭部)が上流側空燃比センサ66の検出部に到達した後、同センサ66の応答遅れ時間が経過すると、その出力値vabyfsが新気の空燃比に対応する値(即ち、値vlean以上)になる。これにより、CPU71はステップ1620に進んだとき「Yes」と判定し、ステップ1630に進み、応答時間Tsを現時点でのカウンタTの値に設定する。
この結果、応答時間Tsは、既知の空燃比を有するガスである新気を排気弁35から排気通路に排出開始した場合において、同排出開始時点から上流側空燃比センサ出力値vabyfsが新気の空燃比に対応する値に変化するまでに要する時間となる。この値は、「上流側空燃比センサ66の応答性を表す値」となり得る。
そして、CPU71は続くステップ1635に進んで、基準時間Trefから同応答時間Tsを減じた値と、図17に示した関数funcΔτとに基づいて時定数補正量Δτを決定する。ここで、基準時間Trefは、上流側空燃比センサ66として前記マスタ品を使用した状態で予め計測されている応答時間Tsである。
これにより、応答時間Tsが基準時間Trefよりも短いほど(従って、上流側空燃比センサ66の応答性がマスタ品よりも高いほど)時定数補正量Δτはより大きい正の値となる。一方、応答時間Tsが基準時間Trefよりも長いほど(従って、上流側空燃比センサ66の応答性がマスタ品よりも低いほど)時定数補正量Δτはより小さい(より絶対値が大きい)負の値となる。
そして、CPU71はステップ1640に進んで、ハイパスフィルタA12の時定数τhpfを、基準時定数τhpfbaseに上記決定された時定数補正量Δτを加えた値に設定・更新する。この設定・更新された時定数τhpfは、第1実施形態と同様、図12のステップ1220にて使用される。ここで、基準時定数τhpfbaseは、上記PIコントローラA13のフィードバック制御定数(比例ゲインGp、及び積分ゲインGi)が適合された際(即ち、上流側空燃比センサ66として前記マスタ品が使用された際)に使用されていたハイパスフィルタA12の時定数であって、例えば、先の図7に示した値τhpf0である。
以降、フューエルカット処理が継続する限りにおいて、上流側空燃比センサ66の検出部には新気が到達し続けることでその出力値vabyfsは値vlean以上に維持されるから、CPU71は、ステップ1620に進んだとき「No」と判定し続ける。そして、フューエルカット処理が終了すると、CPU71はステップ1615にて「No」と判定してステップ1645の処理を繰り返すようになる。
このようにして、第2実施形態によれば、ハイパスフィルタA12の時定数τhpfは、メインフィードバック制御条件が成立している間において、フューエルカット処理が開始・実行される毎に更新され得る。そして、実際の上流側空燃比センサ66の応答性がマスタ品よりも高いほど、時定数τhpfは基準時定数τhpfbaseに対してより大きい値となり、一方、実際の上流側空燃比センサ66の応答性がマスタ品よりも低いほど、時定数τhpfは基準時定数τhpfbaseに対してより小さい値となる。
この結果、上流側空燃比センサ66の応答性がマスタ品のものと異なっても、メインフィードバック制御系全体の遅れ時間が前記適合遅れ時間に一致するようにハイパスフィルタA12の時定数τhpfが変更され得る。即ち、実際の上流側空燃比センサ66の応答特性が、固体毎に異なり、また経年変化しても、メインフィードバック制御系全体の遅れ時間が前記適合遅れ時間に一致せしめられる。よって、実際の上流側空燃比センサ66の応答特性にかかわらず、良好な安定したメインフィードバック制御が維持され得る。
本発明は上記第2実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第2実施形態においては、ハイパスフィルタA12の特性として時定数τhpfのみが上流側空燃比センサ66の応答性(応答時間Ts)に応じて変更可能に構成されているが、時定数τhpfに代えてゲインGhpfのみを上流側空燃比センサ66の応答性(応答時間Ts)に応じて変更可能に構成されてもよい。
この場合、具体的には、図16のステップ1635にて、上記基準時間Trefから応答時間Tsを減じた値と、上記関数funcΔτの代わりの図18に示した関数funcΔGとに基づいてゲイン補正量ΔGが決定される。これにより、応答時間Tsが基準時間Trefよりも短いほど(従って、上流側空燃比センサ66の応答性がマスタ品よりも高いほど)ゲイン補正量ΔGはより小さい(より絶対値が大きい)負の値となる。一方、応答時間Tsが基準時間Trefよりも長いほど(従って、上流側空燃比センサ66の応答性がマスタ品よりも低いほど)ゲイン補正量ΔGはより大きい正の値となる。
そして、ステップ1640にて、ハイパスフィルタA12のゲインGhpfが、基準ゲインGhpfbaseに上記決定されたゲイン補正量ΔGを加えた値に設定される。ここで、基準ゲインGhpfbaseは、上記PIコントローラA13のフィードバック制御定数(比例ゲインGp、及び積分ゲインGi)が適合された際(即ち、上流側空燃比センサ66として前記マスタ品が使用された際)に使用されていたハイパスフィルタA12のゲインであって、例えば、先の図8に示した値Ghpf0である。
この結果、実際の上流側空燃比センサ66の応答性がマスタ品よりも高いほど、ゲインGhpfは基準ゲインGhpfbaseに対してより小さい値となり、一方、実際の上流側空燃比センサ66の応答性がマスタ品よりも低いほど、ゲインGhpfは基準ゲインGhpfbaseに対してより大きい値となる。この結果、上記第2実施形態と同様、上流側空燃比センサ66の応答性がマスタ品のものと異なっても、メインフィードバック制御系全体の遅れ時間が前記適合遅れ時間に一致するようにハイパスフィルタA12のゲインGhpfが変更され得る。従って、これによっても、実際の上流側空燃比センサ66の応答特性にかかわらず、良好な安定したメインフィードバック制御が維持され得る。
また、上記第2実施形態においては、ハイパスフィルタA12の時定数τhpfとローパスフィルタA7の時定数τlpfとが異なる値に設定される場合があるが、両時定数が常に等しくなるように両時定数を設定するよう構成されてもよい。この場合、具体的には、上流側空燃比センサ66の応答性(応答時間Ts)に応じて(図16のステップ1640に従って)設定された時定数τhpfに時定数τlpfを常に一致させるように構成してもよい。
また、上記第2実施形態においては、フューエルカット処理の実行により、空燃比が既知の新気が排気弁から排気通路に排出されることを利用して上流側空燃比センサ66の応答性を表す値(応答時間Ts)を取得するように構成されているが、これに代えて、機関に供給される混合気の空燃比を所定の既知のリーン空燃比から所定の既知のリッチ空燃比へと(或いは、その逆へと)周期的・強制的に切り替える制御(所謂「アクティブ制御」)を実行することで、空燃比の切り替え時点から上流側空燃比センサ出力値vabyfsが同切り替え後の空燃比に対応する値になるまでに要する時間を計測し、これを上流側空燃比センサ66の応答性を表す値として使用するように構成してもよい。
また、上記第2実施形態においては、ハイパスフィルタA12の特性のみを上流側空燃比センサ66の応答性(応答時間Ts)に応じて変更しているが、これに代えて、或いはこれに加えて、下流側空燃比センサ67の応答性を表す値を取得し、同取得した値に応じてローパスフィルタA7の特性(時定数τlpf、又はゲインGlpf)を変更するように構成してもよい。
この場合、下流側空燃比センサ67の応答性を表す値としては、例えば、第1触媒53の下流であって下流側空燃比センサ67の上流の排気通路内に空燃比が既知である特定ガス(例えば、新気)を強制的に供給する新気供給装置を設けた場合、特定ガスの供給開始時点から下流側空燃比センサ出力値Voxsが同特定ガスの空燃比に対応する値に変化するまでに要する時間として取得することができる。
(第3実施形態)
次に、第3実施形態に係る空燃比制御装置について説明する。この第3実施形態は、下流側空燃比センサ67の出力値Voxsの変化方向(前記「リーン方向変化時」か前記「リッチ方向変化時」か)に応じてローパスフィルタA7の時定数τlpf、及びゲインGlpfを変更する点で、第1実施形態と主として異なる。以下、係る相違点を中心として説明する。
この相違点に基づき、第3実施形態に係る装置では、ハイパスフィルタA12のゲインGhpf、及び時定数τhpfがそれぞれ所定の一定値Ghpf2,及びτhpf2に維持されている。これらの一定値Ghpf2,及びτhpf2はそれぞれ、例えば、図8に示した値Ghpf0、及び図7に示した値τhpf0に設定される。
また、この装置では、第2実施形態と同様、メインフィードバック制御は上流側空燃比センサ66が完全活性状態になっている状態でのみ実行され、サブフィードバック制御は下流側空燃比センサ67が完全活性状態になっている状態でのみ実行される。
更に、第3実施形態のCPU71は図14、及び図15に示したルーチンに代えて、ローパスフィルタA7のゲインGlpf、及び時定数τlpfを設定するための図19にフローチャートにより示したルーチンを所定時間の経過毎に実行して、現時点が「リーン方向変化時」であるか「リッチ方向変化時」であるかを判定し、その判定結果に基づいてローパスフィルタA7のゲインGlpf、及び時定数τlpfを変更する。即ち、図19に示したルーチンは、フィルタ特性変更手段に相当する。
より具体的に述べると、CPU71は、所定のタイミングになるとステップ1900から処理を開始し、ステップ1905に進んで、メインフィードバック制御条件が成立しているか否かを判定し、「No」と判定する場合、ステップ1935に直ちに進んで現時点での下流側空燃比センサ出力値Voxsを前回の出力値Voxs1として格納し、ステップ1995に進んで本ルーチンを一旦終了する。この場合、ゲインGlpf、及び時定数τlpfは、現時点での値にそれぞれ維持される。
いま、メインフィードバック制御条件が成立しているものとすると、CPU71はステップ1905にて「Yes」と判定してステップ1910に進み、出力増加量ΔVoxsを、現時点での下流側空燃比センサ出力Voxsから上記前回の出力値Voxs1を減じた値に設定する。これにより、出力増加量ΔVoxsは、下流側空燃比センサ出力値Voxsが減少している場合に負の値を採り、下流側空燃比センサ出力値Voxsが増加している場合に正の値を採る。
続いて、CPU71はステップ1915に進み、上記出力増加量ΔVoxsが値「−Vth」(Vthは正の微小値)よりも小さい場合、ステップ1920に進む。この場合が「リーン方向変化時」と判定される場合に対応する。
CPU71はステップ1920に進むと、ローパスフィルタA7のゲインGlpf、及び時定数τlpfを、値Gsmall、及び値τlargeにそれぞれ設定した後、上述したステップ1935の処理を行い、ステップ1995に進んで本ルーチンを一旦終了する。
一方、上記出力増加量ΔVoxsが値「−Vth」以上である場合、CPU71はステップ1915からステップ1925に進み、上記出力増加量ΔVoxsが値Vthよりも大きい場合にステップ1930に進む。この場合が「リッチ方向変化時」と判定される場合に対応する。
CPU71はステップ1930に進むと、ローパスフィルタA7のゲインGlpf、及び時定数τlpfを、値Glarge(>上記値Gsmall)、及び値τsmall(<上記値τlarge)にそれぞれ設定した後、上述したステップ1935の処理を行い、ステップ1995に進んで本ルーチンを一旦終了する。
更に、上記出力増加量ΔVoxsが値「−Vth」以上、値Vth以下の場合(即ち、−Vth≦ΔVoxs≦Vthの場合)、ステップ1925からステップ1935に直ちに進む。この場合、ゲインGlpf、及び時定数τlpfは、現時点での値にそれぞれ維持される。
このように、サブフィードバック制御条件が成立している間において、「リーン方向変化時」と判定される場合、「リッチ方向変化時」と判定される場合に比して、ローパスフィルタA7のゲインGlpfが小さめに設定されるとともに時定数τlpfが大きめに設定されることでローパスフィルタA7の応答性が低めに設定される。そして、このように設定されたゲインGlpf、及び時定数τlpfは図13のステップ1315の処理にて使用される。
また、先に述べたように、第1触媒53の酸素吸蔵量の増加速度と減少速度との差に基づき、「リーン方向変化時」は「リッチ方向変化時」に比して下流側空燃比センサ67の応答性が実質的に高くなる現象が発生する。
以上のことから、第3実施形態によれば、現時点が「リーン方向変化時」であるか「リッチ方向変化時」であるかにかかわらず、サブフィードバック制御系全体の遅れ時間を上記適合時間に常に一致させることができ、この結果、良好な安定したサブフィードバック制御が「リーン方向変化時」であるか「リッチ方向変化時」であるかにかかわらず維持され得る。
本発明は上記第3実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第3実施形態においては、ローパスフィルタA7の特性としてゲインGlpfと時定数τlpfとが共に、「リーン方向変化時」であるか「リッチ方向変化時」であるかに応じて変更されるようになっているが、ゲインGlpfと時定数τlpfの何れか一方のみを「リーン方向変化時」であるか「リッチ方向変化時」であるかに応じて変更するように構成してもよい。
また、上記第3実施形態においては、「リーン方向変化時」であるか「リッチ方向変化時」であるかに応じてローパスフィルタA7の特性が変更されるようになっているが、「下流側空燃比センサの出力値の状態」としての下流側空燃比センサ出力値Voxsそのものに応じてローパスフィルタA7の特性を変更するように構成してもよい。
この場合、具体的には、下流側空燃比センサ出力値Voxsが所定のリッチ空燃比を示す値Voxsrich(図4を参照)よりもよりリッチ方向の値(即ち、Voxs>Voxsrich)になっている場合、ローパスフィルタA7のゲインGlpf、時定数τlpfを「リーン方向変化時」に対応する値(Gsmall,τlarge)にそれぞれ設定することが望ましい。これは、下流側空燃比センサ出力値Voxsが値Voxsrichよりもよりリッチ方向の値(即ち、Voxs>Voxsrich)になっている場合、出力値Voxsが現時点において空燃比がよりリーンになる方向に変化している(出力値Voxsが減少している)か、近い将来において出力値Voxsが空燃比がよりリーンになる方向に変化する(出力値Voxsが減少する)可能性が高い(即ち、現時点が「リーン方向変化時」となっているか、近い将来において「リーン方向変化時」となる可能性が高い)との知見に基づく。
同様に、下流側空燃比センサ出力値Voxsが所定のリーン空燃比を示す値Voxslean(図4を参照)よりもよりリーン方向の値(即ち、Voxs<Voxslean)になっている場合、ローパスフィルタA7のゲインGlpf、時定数τlpfを「リッチ方向変化時」に対応する値(Glarge,τsmall)に設定することが望ましい。これは、下流側空燃比センサ出力値Voxsが値Voxsleanよりもよりリーン方向の値(即ち、Voxs<Voxslean)になっている場合、出力値Voxsが現時点において空燃比がよりリッチになる方向に変化している(出力値Voxsが増加している)か、近い将来において出力値Voxsが空燃比がよりリッチになる方向に変化する(出力値Voxsが増加する)可能性が高い(即ち、現時点が「リッチ方向変化時」となっているか、近い将来において「リッチ方向変化時」となる可能性が高い)との知見に基づく。
また、上記第3実施形態においては、ハイパスフィルタA12の時定数τhpfとローパスフィルタA7の時定数τlpfとが異なる値に設定される場合があるが、両時定数が常に等しくなるように両時定数を設定するよう構成されてもよい。この場合、具体的には、下流側空燃比センサ67の出力値の状態(「リーン方向変化時」であるか「リッチ方向変化時」であるか)に応じて(ステップ1920、又はステップ1930にて)設定された時定数τlpfに時定数τhpfを常に一致させるように構成してもよい。
本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記各実施形態においては、「上流側空燃比センサの出力値に基づく値」である「上流側空燃比センサの出力値と上流側目標値との相違の程度に応じた値」として、上流側空燃比センサ66の検出空燃比abyfsと上流側目標空燃比abyfrとの差が使用されているが、上流側空燃比センサ出力値vabyfsそのものと上流側目標空燃比abyfrに対応する上流側目標値との差、或いは、筒内吸入空気量Mcを検出空燃比abyfsで除した値である実際の筒内燃料供給量と同筒内吸入空気量Mcを目標空燃比abyfrで除した値である目標筒内燃料供給量との差を使用してもよい。
同様に、上記各実施形態においては、「下流側空燃比センサの出力値に基づく値」である「下流側空燃比センサの出力値と下流側目標値との相違の程度に応じた値」として、下流側空燃比センサ出力値Voxsそのものと下流側目標値Voxsrefとの差が使用されているが、下流側空燃比センサ67の検出空燃比(図4を参照。)と目標空燃比abyfrとの差を使用してもよい。
また、上記各実施形態においては、上流側フィードバック補正量としてのメインフィードバック補正係数KFimain(>0)を基本燃料噴射量Fbaseに乗じることでメインフィードバック制御を実行しているが、同メインフィードバック補正係数KFimainに相当する正負の値を採りえるメインフィードバック補正量を基本燃料噴射量Fbaseに加算することによりメインフィードバック制御を実行してもよい。
同様に、上記各実施形態においては、下流側フィードバック補正量としてのサブフィードバック補正係数KFisub(>0)を基本燃料噴射量Fbaseに乗じることでサブフィードバック制御を実行しているが、同サブフィードバック補正係数KFisubに相当する正負の値を採りえるサブフィードバック補正量を基本燃料噴射量Fbaseに加算することによりサブフィードバック制御を実行してもよい。
また、上記各実施形態においては、下流側空燃比センサ67の出力値Voxsと下流側目標値Voxsrefとの差DVoxsをローパスフィルタ処理した後の値DVoxslowに基づいてサブフィードバック補正係数KFisubを算出しているが、同下流側空燃比センサ67の出力値Voxsをローパスフィルタ処理した後の値と同下流側目標値Voxsrefとの差に基づいて同サブフィードバック補正係数KFisubを算出するように構成してもよい。
また、上記各実施形態においては、フィルタ(ハイパスフィルタA12、ローパスフィルタA7)として、1次フィルタを使用しているが、各フィルタが分担するそれぞれの帯域をさらに明白に分ける必要がある場合、これらのフィルタとして2次以上のフィルタを使用してもよい。
また、上記各実施形態においては、「上流側空燃比センサの出力値と上流側目標値との相違の程度に応じた値」としての上流側空燃比偏差DabyfをハイパスフィルタA12に入力してメインフィードバック補正係数KFimainを算出するようになっているが(図5を参照)、図20に示すように、前記上流側空燃比偏差Dabyfの代わりに上流空燃比センサ66の検出空燃比abyfsを直接ハイパスフィルタA12に入力してメインフィードバック補正係数KFimainを算出するように構成してもよい。
上記各実施形態においてハイパスフィルタA12に入力される上流側空燃比偏差Dabyfは、上流空燃比センサ66の検出空燃比abyfsから上流側目標空燃比abyfr(原則的に、理論空燃比で一定)を減じた値である。従って、上流側空燃比偏差Dabyfを示す信号は、検出空燃比abyfsを示す信号と、変動の中心値が異なる一方で同じタイミング、同じ振幅で増減する同一の波形を有する信号となる。
よって、ハイパスフィルタA12を通過した後のカットオフ周波数ωhpf以上の高周波数成分からなる上記ハイパスフィルタ通過後上流側空燃比偏差Dabyfhiを示す信号は、検出空燃比abyfsをハイパスフィルタA12に入力した場合の同ハイパスフィルタA12の出力値を示す信号と、全く同一の値をとる信号となる。
以上のことから、図5に示した機能ブロック図において上流側空燃比偏差算出手段A11を省略した図20に示した機能ブロック図に基づく構成においても、上記各実施形態と全く同一の作用・効果が得られる。
10…内燃機関、25…燃焼室、39…インジェクタ、52…エキゾーストパイプ(排気管)、53…三元触媒(第1触媒)、66…上流側空燃比センサ、67…下流側空燃比センサ、70…電気制御装置、71…CPU、A7…ローパスフィルタ、A12…ハイパスフィルタ、A14…HPF特性変更手段、A15…LPF特性変更手段