<第1実施形態>
以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しながら説明する。図2は、本発明の第1実施形態による内燃機関の空燃比制御装置を4サイクル火花点火方式により運転される多気筒(4気筒)内燃機関10に適用したシステムの概略構成を示している。なお、図2は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
この内燃機関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内に噴射することにより燃焼室25内に同燃料を供給するインジェクタ(燃料供給手段)39を備えている。
吸気系統40は、吸気ポート31に連通し吸気ポート31とともに吸気通路を形成するインテークマニホールドを含む吸気管41、吸気管41の端部に設けられたエアフィルタ42、吸気管41内にあって吸気通路の開口断面積を可変とするスロットル弁43及びスロットル弁駆動手段を構成するDCモータからなるスロットル弁アクチュエータ43aを備えている。吸気系統40は、外部から空気を取り込むとともに同取り込んだ空気を各気筒の燃焼室25へ供給するようになっている。
排気系統50は、排気ポート34に連通したエキゾーストマニホールド51、エキゾーストマニホールド51(実際には、エキゾーストマニホールド51の集合部)に接続されたエキゾーストパイプ(排気管)52、エキゾーストパイプ52に配設(介装)された排ガス浄化用触媒としての三元触媒53(上流側触媒コンバータ又はスタート・キャタリティック・コンバータとも云うが、以下「第1触媒53」と称呼する。)及び第1触媒53の下流のエキゾーストパイプ52に配設(介装)された下流側の三元触媒54(車両のフロア下方に配設されるので、アンダ・フロア・キャタリティック・コンバータとも云うが、以下「第2触媒54」と称呼する。)を備えている。排気ポート34、エキゾーストマニホールド51及びエキゾーストパイプ52は、排気通路を構成している。排気通路は、燃焼室25にて燃料と空気とを含む混合ガスが燃焼することにより生成された燃焼ガスである排ガスが通過するようになっている。
第1触媒53及び第2触媒54のそれぞれは、排ガス中の酸素を吸蔵するようになっている。更に、第1触媒53及び第2触媒54のそれぞれは、排ガス中の燃料の未燃成分と、同排ガス中の酸素又は同吸蔵された酸素と、の反応を促進することにより同排ガスを排気通路内にて浄化するようになっている。
一方、このシステムは、熱線式エアフローメータ61、スロットルポジションセンサ62、カムポジションセンサ63、クランクポジションセンサ64、水温センサ65、第1触媒53の上流の排気通路(本例では、上記エキゾーストマニホールド51の集合部)に配設された空燃比センサ66(以下、「上流側空燃比センサ66」と称呼する。)、第1触媒53の下流であって第2触媒54の上流の排気通路に配設された空燃比センサ67(以下、「下流側空燃比センサ67」と称呼する。)、アクセル開度センサ68及び電気制御装置70を備えている。
熱線式エアフローメータ61は、吸気管41内を通る吸入空気の単位時間あたりの質量流量を検出し、吸入空気流量Gaを表す信号を出力するようになっている。
スロットルポジションセンサ62は、スロットル弁43の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。
カムポジションセンサ63は、インテークカムシャフトが90°回転する毎に(即ち、クランク軸24が180°回転する毎に)生じる一つのパルスを有する信号(G2信号)を発生するようになっている。
クランクポジションセンサ64は、クランク軸24が10°回転する毎に生じる幅狭のパルスを有するとともにクランク軸24が360°回転する毎に生じる幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。
水温センサ65は、内燃機関10を冷却する冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
上流側空燃比センサ66は、限界電流式の空燃比センサである。上流側空燃比センサ66は、検出対象ガス(本例では、第1触媒53の上流の排ガス)中の酸素濃度及び燃料の未燃成分(例えば、炭化水素)濃度に基づいて空燃比A/Fに応じた電流を出力し、出力された電流に応じた電圧Vabyfsを出力値として出力するようになっている。
上流側空燃比センサ66の出力値Vabyfsは、図3に示したように、空燃比A/Fがよりリーン側の空燃比になるにつれて単調に増加し且つ空燃比A/Fに略比例して変化する。更に、上流側空燃比センサ66の出力値Vabyfsは、空燃比A/Fが理論空燃比であるとき、理論空燃比対応値Vstoichに一致する。このような構成により、上流側空燃比センサ66は、広い範囲にわたる空燃比A/Fを精度良く検出する。
下流側空燃比センサ67は、起電力式(濃淡電池式)の空燃比センサである。下流側空燃比センサ67は、検出対象ガス(本例では、第1触媒53の下流の排ガス)中の酸素濃度に基づいて空燃比A/Fに応じた電圧Voxsを出力値として出力するようになっている。
下流側空燃比センサ67の出力値Voxsは、図4に示したように、空燃比A/Fがよりリーン側の空燃比になるにつれて単調に減少する。出力値Voxsは、理論空燃比近傍において急変する。即ち、出力値Voxsは、空燃比A/Fが理論空燃比よりもリーン側からリッチ側へ変化する際、又は、その逆向きに変化する際、急変する。出力値Voxsは、空燃比A/Fが理論空燃比近傍以外の空燃比であって理論空燃比よりもリーン側の空燃比であるとき略0.1(V)の値をとりながら空燃比の増大に伴って緩やかに減少し、空燃比A/Fが理論空燃比近傍以外の空燃比であって理論空燃比よりもリッチ側の空燃比であるとき略0.9(V)の値をとりながら空燃比の減少に伴って緩やかに増大する。また、出力値Voxsは、空燃比A/Fが理論空燃比であるとき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に駆動信号を送出するようになっている。
次に、上記のように構成された内燃機関の空燃比制御装置が行う空燃比のフィードバック制御について説明する。
この空燃比制御装置は、下流側空燃比センサ67の出力値Voxsが所定の下流側目標値Voxsrefに一致するように、上流側空燃比センサ66の出力値Vabyfs(即ち、第1触媒53上流の空燃比)及び下流側空燃比センサ67の出力値Voxs(即ち、第1触媒53下流の空燃比)に基づいて上流側フィードバック補正量DFiを決定し、同決定された上流側フィードバック補正量DFiに基づいて燃料噴射量Fiを決定することによって空燃比をフィードバック制御する。
より具体的に述べると、CPU71は、図5にフローチャートにより示した燃料噴射量Fiの算出及び燃料噴射の指示を行うルーチンを、各気筒のクランク角度が排気上死点(排気が実質的に終了するとともに吸気が実質的に開始する上死点)前の所定クランク角度(本例では、BTDC90°CA、即ち、排気上死点から90°だけ進角させた角度)となる毎に、繰り返し実行するようになっている。なお、図5のルーチンの処理が実行されることは、空燃比フィードバック制御手段の機能の一部が達成されることに対応している。
従って、任意の気筒(以下、「燃料噴射気筒」と云うこともある。)のクランク角度が上記所定クランク角度になると、CPU71は、ステップ500から処理を開始してステップ505に進みエアフローメータ61により検出された吸入空気流量Gaと、クランクポジションセンサ64により検出されたエンジン回転速度NEと、吸入空気流量Ga及びエンジン回転速度NEと1回の燃焼サイクルに対して気筒に吸入(導入)される筒内空気量Mcとの関係を規定するテーブルMapMcと、に基づいて今回の燃焼サイクルにおいて上記燃料噴射気筒に吸入される予定の筒内吸入空気量Mc(k)(=MapMc(Ga,NE))を求める。
ここで、kは、いずれの気筒の吸気行程であるかにかかわらず内燃機関10において発生した吸気行程の数(即ち、ストローク数)である。更に、添え字の(k)は、筒内吸入空気量Mc(k)がk回目(今回)の吸気行程(ストローク)に対する値であることを示している(以下、他の物理量についても同様。)。
CPU71は、求められた筒内吸入空気量Mcをストローク数kに関連づけてRAM73に記憶させる(格納する)。
なお、以下の説明において、MapX(a)と表記されるテーブルは、変数aと値Xとの関係を規定するテーブルを意味することとする。また、値XをテーブルMapX(a)に基づいて求めるとは、値Xを現時点の変数aと、テーブルMapX(a)と、に基づいて求める(決定する)ことを意味することとする。なお、変数は2つ以上であってもよい。
次に、CPU71は、ステップ510に進み現時点のエンジン回転速度NE、現時点のアクセルペダル操作量Accp及び現時点のスロットル弁開度TA等に基づいて今回の上流側目標空燃比abyfr(k)を決定する。本例では、上流側目標空燃比abyfr(k)は、理論空燃比に設定される。CPU71は、決定された上流側目標空燃比abyfrをストローク数kに関連づけてRAM73に記憶させる(格納する)。
次いで、CPU71は、ステップ515に進み上記ステップ505にて決定された筒内吸入空気量Mc(k)を上記ステップ510にて決定された上流側目標空燃比abyfr(k)により除することによって基本燃料噴射量Fbaseを決定する。
そして、CPU71は、ステップ520に進み上記ステップ515にて決定された基本燃料噴射量Fbaseに後述するルーチンにて求められている最新の上流側フィードバック補正量DFiを加えることにより燃料噴射量Fiを決定する。
そして、CPU71は、ステップ525に進み上記ステップ520にて決定された燃料噴射量Fiの燃料が上記燃料噴射気筒のインジェクタ39により今回の燃焼サイクルに対して噴射されるように同インジェクタ39に対して噴射指示信号を送出する。
その後、CPU71は、ステップ599に進んで本ルーチンを一旦終了する。
<上流側フィードバック補正量の算出>
一方、CPU71は図6にフローチャートにより示した上流側フィードバック補正量DFiの算出を行うルーチンを、所定の演算周期が経過する毎に、繰り返し実行するようになっている。なお、図6のルーチンの処理が実行されることは、空燃比フィードバック制御手段の機能の一部が達成されることに対応している。
従って、所定のタイミングになると、CPU71は、ステップ600から処理を開始し、ステップ605に進んで上流側フィードバック条件が成立しているか否かを判定する。ここで、上流側フィードバック条件は、本例では、内燃機関10の冷却水温THWが第1の閾値温度以上であり、上流側空燃比センサ66が活性状態となっていることを含む正常状態であり、及び、筒内吸入空気量Mc(内燃機関10の負荷)が所定の閾値量以下であるとき、成立する。
先ず、上流側フィードバック条件が成立している場合から説明を続けると、CPU71は、ステップ605にて「Yes」と判定してステップ610に進み、テーブルMapN(Mc(k),NE)に基づいて遅延ストローク数Nを決定する。ここで、遅延ストローク数Nは、燃料噴射が指示されてから、この指示により噴射された燃料が燃焼に供されたときの混合ガスの空燃比が前記上流側空燃比センサ66の出力値として現れるまでの間の遅延時間に相当するストローク数である。テーブルMapN(Mc(k),NE)は、実験による測定値に基づいて予め設定されている。
次に、CPU71は、ステップ615に進み上記図3に示した上流側空燃比センサ66の出力値Vabyfsと空燃比A/Fとの関係を規定したテーブルMapabyfsと、現時点の上流側空燃比センサ66の出力値Vabyfs及び後述するルーチンにて求められている下流側フィードバック補正量Vafsfbの和である制御用空燃比相当出力値(Vabyfs+Vafsfb)と、に基づいて現時点における制御用空燃比abyfs(=Mapabyfs(Vabyfs+Vafsfb))を求める。
次いで、CPU71は、ステップ620に進みRAM73に記憶されている筒内吸入空気量Mcのうちの現時点からNストローク(N回の吸気行程)前に吸気行程を迎えた気筒の吸入空気量である筒内吸入空気量Mc(k-N)を上記ステップ615にて求められた制御用空燃比abyfsにより除することによって、現時点からNストローク前の実際の筒内供給燃料量Fc(k-N)を求める。
続いて、CPU71は、ステップ625に進み上記現時点からNストローク前の筒内吸入空気量Mc(k-N)を、RAM73に記憶されている目標空燃比abyfrのうちの現時点からNストローク前の目標空燃比abyfr(k-N)により除することによって、現時点からNストローク前の目標筒内供給燃料量Fcr(k-N)を求める。
次に、CPU71は、ステップ630に進み上記ステップ625にて求められた現時点からNストローク前の目標筒内供給燃料量Fcr(k-N)から上記ステップ620にて求められた現時点からNストローク前の実際の筒内供給燃料量Fc(k-N)を減じることにより筒内供給燃料量偏差DFc(=Fcr(k-N)-Fc(k-N))を求める。即ち、筒内供給燃料量偏差DFcは、現時点からNストローク前の時点において気筒内に供給された燃料の過不足を表す量である。
次いで、CPU71は、ステップ635に進み下記(2)式に基づいて筒内供給燃料量偏差DFcを比例・積分処理(PI処理)することにより上流側フィードバック補正量DFiを求める。
DFi=(Gp・DFc+Gi・SDFc)・KFB …(2)
ここで、Gpは予め設定された比例ゲイン(比例定数)であり、Giは予め設定された積分ゲイン(積分定数)である。各ゲインGp及びGiは、いずれも正の値である。また、SDFcは、筒内供給燃料量偏差DFcの時間積分値である。時間積分値SDFcは、後述するステップ640にて算出される。なお、本例では、係数KFBは不変であり、予め「1」に設定されている。また、係数KFBは、可変であってもよく、その場合、エンジン回転速度NE及び筒内吸入空気量Mcに基づいて設定されることが好適である。
上流側フィードバック補正量DFiは、上述した図5のステップ520にて燃料噴射量Fiが決定される際に用いられる。
そして、ステップ640にて上記ステップ630にて求められた筒内供給燃料量偏差DFcと時間ステップΔtとの積を現時点における筒内供給燃料量偏差DFcの時間積分値SDFcに加えることにより時間積分値SDFcを更新する。ここで、時間ステップΔtは、本ルーチンが前回実行された時点から今回実行された時点までの時間である。
その後、CPU71は、ステップ699に進んで本ルーチンを一旦終了する。
このように、本空燃比制御装置は、現時点からNストローク前の目標筒内供給燃料量Fcr(k-N)と、現時点からNストローク前の実際の筒内供給燃料量Fc(k-N)と、が一致するように上流側空燃比センサ66の出力値Vabyfs及び(下流側空燃比センサ67の出力値Voxsに基づいて求められる)下流側フィードバック補正量Vafsfbに基づいて空燃比をフィードバック制御する。換言すれば、本空燃比制御装置は、現時点の制御用空燃比abyfsが(現時点からNストローク前の)上流側目標空燃比abyfrと一致するように空燃比をフィードバック制御する。
次に、上流側フィードバック条件が成立していない場合について説明を続けると、CPU71は、ステップ605に進んだとき、同ステップ605にて「No」と判定してステップ650に進み上流側フィードバック補正量DFiの値を「0」に設定し、その後、ステップ699に進んで本ルーチンを一旦終了する。
このように、上流側フィードバック条件が不成立であるとき、上流側フィードバック補正量DFiの値が「0」となるので、上記ステップ520にて燃料噴射量Fiは基本燃料噴射量Fbaseに設定される。即ち、実質的に空燃比のフィードバック制御は行われない。
<下流側フィードバック補正量の算出>
また、CPU71は図7にフローチャートにより示した下流側フィードバック補正量Vafsfbの算出を行うルーチンを、所定の演算周期が経過する毎に、繰り返し実行するようになっている。なお、図7のルーチンの処理が実行されることは、空燃比フィードバック制御手段の機能の一部が達成されることに対応している。
従って、所定のタイミングになると、CPU71は、ステップ700から処理を開始し、ステップ705に進んで下流側フィードバック条件が成立しているか否かを判定する。下流側フィードバック条件は、本例では、上述したステップ605の上流側フィードバック条件が成立している場合において、内燃機関10の冷却水温THWが上記第1の閾値温度よりも高い第2の閾値温度以上であり、及び、下流側空燃比センサ67が活性状態となっていることを含む正常状態であるとき、成立する。
先ず、下流側フィードバック条件が成立している場合から説明を続けると、CPU71は、ステップ705にて「Yes」と判定してステップ710に進み、下流側目標値Voxsrefから現時点の下流側空燃比センサ67の出力値Voxsを減じることにより、出力偏差DVoxsを求める。
ここで、下流側目標値Voxsrefは、第1触媒53の状態が所定の劣化状態となった時(触媒劣化時)及び暖機運転時、第1触媒53に流入するガスの空燃比の時間平均値が理論空燃比よりもわずかにリッチ側の空燃比となるように設定される。即ち、本例では、下流側目標値Voxsrefは、理論空燃比よりもわずかにリッチ側の空燃比(リッチ空燃比)に対応する値(例えば、0.55[V])に設定される(図4を参照。)。更に、触媒劣化時及び暖機運転時以外のとき、理論空燃比に対応する値(0.5[V])に設定される。なお、下流側目標値Voxsrefは、エンジン回転速度NE及びスロットル弁開度TA等に基づいて変更されてもよい。
次に、CPU71はステップ715に進んで、下記(3)式に基づいて出力偏差DVoxsの時間微分値(の近似値)DDVoxsを求める。
DDVoxs=(DVoxs−DVoxs1)/Δt …(3)
ここで、DVoxs1は、前回の本ルーチンの実行時(現時点より上記演算周期だけ前の時点)において後述するステップ740にて設定(更新)された出力偏差DVoxsの前回値である。また、Δtは、時間ステップであって、本ルーチンが前回実行された時点から今回実行された時点までの時間(即ち、上記演算周期)である。
次いで、CPU71は、ステップ720に進み上記ステップ710にて求められた現時点の出力偏差(出力偏差の今回値)DVoxsの大きさ(絶対値)|DVoxs|が、前回の本ルーチンの実行時において後述するステップ740にて設定された出力偏差の前回値DVoxs1の大きさ|DVoxs1|よりも大きいか否かを判定する。
いま、第1触媒53の状態が上記劣化状態ではない正常状態から同劣化状態に変化したと判定されることにより下流側目標値Voxsrefが変更された場合を想定して図8を参照しながら説明を続ける。
図8における破線の直線L0は、時間tに対する下流側目標値Voxsrefの変化を示している。また、実線の曲線L1,L2及びL3は、それぞれ下流側空燃比センサの出力値Voxs、出力偏差DVoxs及び微分項Kd・dDVoxs/dtの時間tに対する変化を示している。
この場合、図8に示したように、第1触媒53の状態が上記正常状態から上記劣化状態に変化したと検出(判定)された時点t0より前の時点では、下流側目標値Voxsrefは、理論空燃比に対応する理論空燃比対応値Voxsrefsに設定されている。更に、時点t0以降の時点では、下流側目標値Voxsrefは、リッチ空燃比に対応するリッチ空燃比対応値Voxsrefrに設定される。
従って、時点t0の直後の最初に本ルーチンが実行されている時点t01では、出力偏差の前回値の大きさ|DVoxs1|は、略0である。更に、出力偏差の今回値の大きさ|DVoxs|は、理論空燃比対応値Voxsrefsとリッチ空燃比対応値Voxsrefrとの差の大きさに略等しい。即ち、出力偏差の今回値の大きさ|DVoxs|は、出力偏差の前回値の大きさ|DVoxs1|よりも大きい(出力偏差DVoxsの大きさは急激に増加している)。従って、CPU71は、ステップ720にて「Yes」と判定してステップ725に進み微分ゲイン(微分定数)Kdを予め設定された第1微分ゲインKd1に設定する。第1微分ゲインKd1は、所定の正の値である。
次いで、CPU71は、ステップ730に進み下記(4)式に基づいて出力偏差DVoxsを比例・積分・微分処理(PID処理)することにより下流側フィードバック補正量Vafsfbを求める。
Vafsfb=Kp・DVoxs+Ki・SDVoxs+Kd・DDVoxs …(4)
ここで、Kpは予め設定された比例ゲイン(比例定数)であり、Kiは予め設定された積分ゲイン(積分定数)である。各ゲインKp及びKiは、いずれも正の値である。また、SDVoxsは、出力偏差DVoxsの時間積分値であり、後述するステップ735にて算出される。
このようにして、本空燃比制御装置は、下流側目標値Voxsrefと下流側空燃比センサ67の出力値Voxsとの差である出力偏差DVoxsに基づいて下流側フィードバック補正量Vafsfbを求める。この下流側フィードバック補正量Vafsfbは、上記ステップ615にて制御用空燃比abyfsが求められる際に用いられる。
そして、CPU71は、ステップ735に進み上記ステップ710にて求められた出力偏差DVoxsと時間ステップΔtとの積を現時点における出力偏差の時間積分値SDVoxsに加えることにより時間積分値SDVoxsを更新する。そして、CPU71は、ステップ740に進み出力偏差の前回値DVoxs1を上記ステップ710にて求めた出力偏差の今回値DVoxsに設定する。
その後、CPU71は、ステップ799に進んで本ルーチンを一旦終了する。
このように、出力偏差DVoxsの大きさが増加しているとき(出力偏差の今回値の大きさ|DVoxs|が出力偏差の前回値の大きさ|DVoxs1|よりも大きいとき)、微分ゲインKdが第1微分ゲインKd1に設定(微分ゲインKdとして第1微分ゲインKd1が選択)され、出力偏差の時間微分値DDVoxsに第1微分ゲインKd1を乗じることにより微分項(上記(4)式の第3項)Kd・DDVoxsが算出される。
この時点(時点t01)では、出力偏差DVoxsが急増しているので、微分項Kd・DDVoxsは、大きな正の値となる。また、出力偏差DVoxsは正の値であるから、比例項Kp・DVoxsは正の値となり、積分項Ki・SDVoxsは増大する。これにより、下流側フィードバック補正量Vafsfbが急激に増大するので、空燃比はリッチ側に大きく補正される。この結果、出力値Voxsが急増して出力偏差DVoxsの大きさは十分に大きく減少する。
そして、上記演算周期が経過して再びCPU71が本ルーチンの処理を開始する。この時点では、出力偏差DVoxsの大きさが減少しているので、出力偏差の今回値の大きさ|DVoxs|は、出力偏差の前回値の大きさ|DVoxs1|よりも小さい。
従って、CPU71がステップ720に進んだとき、CPU71は、同ステップ720にて「No」と判定してステップ750に進み微分ゲインKdを予め設定された第2微分ゲインKd2に設定する。ここで、第2微分ゲインKd2は、第1微分ゲインKd1と同じ符号を有し(即ち、正の値であり)且つ第1微分ゲインKd1よりも大きさが小さい値であって、本例では、「0」である。
次いで、CPU71は、上述したように、ステップ730に進み下流側フィードバック補正量Vafsfbを算出する。このとき、微分ゲインKdが第2微分ゲインKd2(即ち、「0」)に設定されているので、微分項Kd・DDVoxsは「0」となる。一方、出力偏差DVoxsが正の値であるので、比例項Kp・DVoxsは正の値となり、積分項Ki・SDVoxsは増大する。これにより、下流側フィードバック補正量Vafsfbが増大するので、空燃比はリッチ側に補正される。その結果、出力値Voxsは下流側目標値Voxsrefに近づけられる。
その後、CPU71は、ステップ735以降のステップに進んで、図7のルーチンを一旦終了する。
そして、時間が経過して以上の処理が繰り返し実行されることによって、出力値Voxsは下流側目標値Voxsrefに近づいていく。その後、時点t1になると、出力値Voxsは下流側目標値Voxsrefに到達する。このように、時点t01より後の時点であって時点t1までの期間Aにおいては、出力値Voxsが下流側目標値Voxsrefに近づいていくので出力偏差DVoxsの大きさは減少している。従って、微分ゲインKdが第2微分ゲインKd2に設定されるので、微分項Kd・DDVoxsは「0」になっている。即ち、出力値Voxsを下流側目標値Voxsrefに近づけることを阻害する向きの符号を有する時間微分値DDVoxsに基づく微分項Kd・DDVoxsが実質的に下流側フィードバック補正量Vafsfbに含まれないようにされているので、出力偏差DVoxsの大きさの減少が微分項Kd・DDVoxsにより抑制されない。この結果、出力値Voxsを下流側目標値Voxsrefに迅速に近づけることができる。
時点t1にて出力値Voxsがオーバーシュートして下流側目標値Voxsrefを上回ると、出力偏差DVoxsは負の値となりながら減少する。従って、時点t1以降において、出力偏差DVoxsの大きさが増加するから、この時点にて本ルーチンが実行されると、微分項Kd・DDVoxsの算出に第1微分ゲインKd1が使用される。この時点では、出力偏差DVoxsは負の値であるから、比例項Kp・DVoxsは負の値となり、積分項Ki・SDVoxsは減少する。また、出力偏差DVoxsが減少しているので、微分項Kd・DDVoxsは負の値となる。従って、下流側フィードバック補正量Vafsfbが比較的速やかに減少するから、空燃比はリーン側に補正される。
これにより、出力値Voxsは下流側目標値Voxsrefからそれほど遠ざかることなく、時点t2にて再び下流側目標値Voxsrefに近づき始める。このように、時点t1から時点t2の期間Bにおいては、微分項Kd・DDVoxsは、比例項Kp・DVoxs及び積分項Ki・SDVoxsとともに、下流側フィードバック補正量Vafsfbを減少させるように作用する。換言すると、期間Bにおいて、微分項Kd・DDVoxsは、空燃比をリーン側に補正するように作用する。従って、期間Bにおいては、微分項Kd・DDVoxsにより、出力値Voxsが下流側目標値Voxsrefから遠ざかること(出力偏差DVoxsの大きさの増加)が抑制される。
時点t2にて出力値Voxsが下流側目標値Voxsrefに近づき始めると、出力偏差DVoxsは負の値をとりながら増加し始める。従って、時点t2以降において、出力偏差DVoxsの大きさが減少するから、この時点にて本ルーチンが実行されると、期間Aにて実行された場合と同様に、微分項Kd・DDVoxsの算出に第2微分ゲインKd2が使用される。従って、微分項Kd・DDVoxsは「0」となる。一方、出力偏差DVoxsが負の値のままであるので、比例項Kp・DVoxsは負の値となり、積分項Ki・SDVoxsは減少する。これにより、下流側フィードバック補正量Vafsfbが減少するので、空燃比はリーン側に補正される。その結果、出力値Voxsは下流側目標値Voxsrefに近づけられる。その後、時点t3になると、出力値Voxsは下流側目標値Voxsrefに到達する。
このように、時点t2から時点t3までの期間Cにおいては、出力値Voxsが下流側目標値Voxsrefに近づいていくので出力偏差DVoxsの大きさは減少している。従って、微分ゲインKdが第2微分ゲインKd2に設定されるので、微分項Kd・DDVoxsは「0」になっている。即ち、微分項Kd・DDVoxsが実質的に下流側フィードバック補正量Vafsfbに含まれないようにされているので、出力偏差DVoxsの大きさの減少が微分項Kd・DDVoxsにより抑制されない。この結果、出力値Voxsを下流側目標値Voxsrefに迅速に近づけることができる。
時点t3にて出力値Voxsがアンダーシュートして下流側目標値Voxsrefを下回ると、出力偏差DVoxsは正の値となりながら増大する。従って、時点t3以降において、出力偏差DVoxsの大きさが増加するから、この時点にて本ルーチンが実行されると、期間Bにて実行された場合と同様に、微分項Kd・DDVoxsの算出に第1微分ゲインKd1が使用される。この時点では、出力偏差DVoxsは正の値であるから、比例項Kp・DVoxsは正の値となり、積分項Ki・SDVoxsは増加する。また、出力偏差DVoxsが増加しているので、微分項Kd・DDVoxsは正の値となる。従って、下流側フィードバック補正量Vafsfbが比較的速やかに増加するから、空燃比はリッチ側に補正される。
これにより、出力値Voxsは下流側目標値Voxsrefからそれほど遠ざかることなく、時点t4にて再び下流側目標値Voxsrefに近づき始める。このように、時点t3から時点t4の期間Dにおいては、微分項Kd・DDVoxsは、比例項Kp・DVoxs及び積分項Ki・SDVoxsとともに、下流側フィードバック補正量Vafsfbを増加させるように作用する。換言すると、期間Dにおいて、微分項Kd・DDVoxsは、空燃比をリッチ側に補正するように作用する。従って、期間Dにおいては、微分項Kd・DDVoxsにより、出力値Voxsが下流側目標値Voxsrefから遠ざかること(出力偏差DVoxsの大きさの増加)が抑制される。
このように、本空燃比制御装置によれば、出力偏差DVoxsの大きさが増加しているとき(時点t1、期間B及び期間Dにおいて)、出力偏差DVoxsの大きさの増加が十分に抑制され、一方、出力偏差DVoxsの大きさが減少しているとき(期間A及び期間Cにおいて)、出力偏差DVoxsの大きさの減少がそれほど抑制されないので、出力偏差DVoxsの大きさの増減にかかわらず微分ゲインが一定である場合と比較して出力値Voxsを下流側目標値Voxsrefに迅速に近づけることができる。この結果、実際の空燃比を目標とする空燃比に迅速に一致させることができる。
次に、下流側フィードバック条件が成立していない場合について説明を続けると、CPU71は、ステップ705に進んだとき、同ステップ705にて「No」と判定してステップ760に進み下流側フィードバック補正量Vafsfbの値を「0」に設定し、その後、ステップ799に進んで本ルーチンを一旦終了する。
このように、下流側フィードバック条件が不成立であるとき、下流側フィードバック補正量Vafsfbの値が「0」となるので上流側空燃比センサ66の出力値Vabyfsのみに基づいて空燃比がフィードバック制御される。
以上、説明したように、本発明による内燃機関の空燃比制御装置の第1実施形態によれば、出力偏差DVoxsの大きさが増加しているとき(即ち、出力値Voxsが下流側目標値Voxsrefから遠ざかっているとき)、出力偏差DVoxsの時間微分値に第1微分ゲインKd1を乗じることにより微分項が算出される。一方、出力偏差DVoxsの大きさが減少しているとき(即ち、出力値Voxsが下流側目標値Voxsrefに近づいているとき)、出力偏差DVoxsの時間微分値に第1微分ゲインKd1よりも大きさが小さい第2微分ゲインKd2を乗じることにより微分項が算出される。更に、同算出された微分項を含む下流側フィードバック補正量Vafsfbに基づいて空燃比が制御される。
これにより、出力偏差DVoxsの大きさが増加しているとき、出力偏差DVoxsの大きさの増加が十分に抑制され、一方、出力偏差DVoxsの大きさが減少しているとき、出力偏差DVoxsの大きさの減少がそれほど抑制されない。この結果、出力偏差DVoxsの大きさの増減にかかわらず微分ゲインが一定である場合と比較して出力値Voxsを下流側目標値Voxsrefに迅速に近づけることができ、実際の空燃比を目標とする空燃比に迅速に一致させることができる。
<第2実施形態>
次に、本発明の第2実施形態に係る内燃機関の空燃比制御装置について説明する。第2実施形態に係る空燃比制御装置は、下流側フィードバック補正量Vafsfbの算出を行うルーチンとして図7のルーチンに代わるルーチンを実行する点において上記第1実施形態に係る空燃比制御装置と相違している。以下、かかる相違点を中心として説明する。
このルーチンは、上記第1実施形態に係る図7に示したルーチンのステップ720とステップ730との間に、図9にフローチャートにより示したステップ905及びステップ910の処理を加えたルーチンである。
以下、本ルーチンの処理について4つの場合に分けて説明する。
まず、(1)出力偏差の今回値(現時点の出力偏差)の大きさ|DVoxs|が出力偏差の前回値(現時点よりも上記演算周期だけ前の時点の出力偏差)の大きさ|DVoxs1|よりも大きい場合から説明する。この場合、CPU71が本ルーチンの処理を開始して、上述したようにステップ705からステップ715までの処理を実行し、ステップ720に進んだとき、CPU71は、同ステップ720にて「Yes」と判定してステップ725に進み微分ゲイン(微分定数)Kdを第1微分ゲインKd1に設定する。次いで、CPU71は、上述したように、ステップ730に進み下流側フィードバック補正量Vafsfbを算出し、ステップ735以降のステップに進んで、本ルーチンを一旦終了する。
一方、(2)出力偏差の今回値の大きさ|DVoxs|が出力偏差の前回値の大きさ|DVoxs1|以下である場合であって、出力偏差の前回値DVoxs1と出力偏差の今回値DVoxsとの積が正の値であり、且つ、出力偏差の今回値の大きさ|DVoxs|が所定の閾値αよりも大きい場合について説明を続ける。
この場合、CPU71が本ルーチンの処理を開始してステップ720に進んだとき、CPU71は、同ステップ720にて「No」と判定してステップ905に進んで、出力偏差の前回値DVoxs1と出力偏差の今回値DVoxsとの積が正の値であり(即ち、出力偏差の前回値DVoxs1の符号と出力偏差の今回値DVoxsの符号とが一致し)、且つ、出力偏差の今回値の大きさ|DVoxs|が所定の閾値αよりも大きいか否かを判定する。
そして、CPU71は、同ステップ905にて「Yes」と判定してステップ750に進み微分ゲインKdを第2微分ゲインKd2に設定する。次いで、CPU71は、上述したように、ステップ730に進み下流側フィードバック補正量Vafsfbを算出し、ステップ735以降のステップに進んで、本ルーチンを一旦終了する。
また、(3)出力偏差の今回値の大きさ|DVoxs|が出力偏差の前回値の大きさ|DVoxs1|以下である場合であって出力偏差の前回値DVoxs1と出力偏差の今回値DVoxsとの積が負の値(「0」を含む。)である場合、又は、(4)出力偏差の今回値の大きさ|DVoxs|が出力偏差の前回値の大きさ|DVoxs1|以下である場合であって出力偏差の今回値の大きさ|DVoxs|が所定の閾値α以下である場合、について説明を続ける。
この場合、CPU71が本ルーチンの処理を開始してステップ720に進んだとき、CPU71は、同ステップ720にて「No」と判定してステップ905に進む。更に、CPU71は、同ステップ905にて「No」と判定してステップ910に進み微分ゲインKdを第3微分ゲイン又は第4微分ゲインとしての第1微分ゲインKd1に設定する。次いで、CPU71は、上述したように、ステップ730に進み下流側フィードバック補正量Vafsfbを算出し、ステップ735以降のステップに進んで、本ルーチンを一旦終了する。
以上のように、本ルーチンにおいては、(1)の場合、(3)の場合及び(4)の場合のいずれかの場合、微分ゲインKdは第1微分ゲインKd1に設定され、一方、(2)の場合、微分ゲインKdは第2微分ゲインKd2に設定される。
以下、上述した下流側フィードバック補正量Vafsfbの算出を行うルーチンによる作用及び効果を上記第1実施形態と比較して説明する。
まず、図10に示したように、出力偏差の前回値(時点t1における同ルーチンの実行中、ステップ740にて設定された値)DVoxs1が負の値DV1になり、及び、出力偏差の今回値(時点t2における同ルーチンの実行中、ステップ710にて設定された値)DVoxsが正の値であり(即ち、出力偏差の前回値DV1と符号が異なり)且つ出力偏差の前回値DV1よりも大きさが小さい値DV2になった場合(DV1・DV2<0、且つ、|DV1|>|DV2|)から説明する。
この場合、上記第1実施形態は、出力偏差の前回値DV1の大きさよりも出力偏差の今回値DV2の大きさが小さいために、時点t2においては、出力偏差DVoxsの大きさが減少していると判定する(図7のステップ720)。その結果、第1実施形態は、第2微分ゲインKd2を使用して(図7のステップ750)下流側フィードバック補正量Vafsfbを算出する。従って、微分項Kd・DDVoxsにより、出力偏差DVoxsの変化が抑制されない。この結果、次回の本ルーチンの実行時(時点t3)における出力偏差の今回値DVoxsは、値DV3’となる。
一方、第2実施形態は、出力偏差の前回値DV1に対する出力偏差の今回値DV2の関係においては出力偏差DVoxsの大きさが減少していると判定する(図9のステップ720)ものの、出力偏差の前回値DV1の符号と出力偏差の今回値DV2の符号とが相違しているので「オーバーシュート」又は「アンダーシュート」が発生していると判定する(図9のステップ905)。
その結果、第2実施形態は、第1微分ゲインKd1を使用して(図9のステップ910)下流側フィードバック補正量Vafsfbを算出する。従って、微分項Kd・DDVoxsにより、出力偏差DVoxsの変化が抑制される。この結果、次回の本ルーチンの実行時(時点t3)における出力偏差の今回値DVoxsは、第1実施形態の場合の値DV3’よりも大きさが小さい値DV3となる。
換言すると、第1実施形態の場合(第2微分ゲインKd2が使用される場合)と比較して出力偏差DVoxsの変化を抑制する程度が小さくされないので、次の時点t3における出力値Voxsが下流側目標値Voxsrefから過度に遠ざかることを防止することができる。従って、出力値Voxsを下流側目標値Voxsrefにより迅速に近づけることができ、実際の空燃比を目標とする空燃比に迅速に一致させることができる。
次に、図11に示したように、出力偏差の前回値(時点t1における同ルーチンの実行中、ステップ740にて設定された値)DVoxs1が負の値であってその大きさが上記閾値αよりも大きい値DV1になり、及び、出力偏差の今回値(時点t2における同ルーチンの実行中、ステップ710にて設定された値)DVoxsが負の値であってその大きさが上記閾値αよりも小さい値DV2になった場合(DV1<−α<DV2<0)について説明を続ける。
この場合、上記第1実施形態は、出力偏差の前回値DV1の大きさよりも出力偏差の今回値DV2の大きさが小さいために、時点t2においては、出力偏差DVoxsの大きさが減少していると判定する(図7のステップ720)。その結果、第1実施形態は、第2微分ゲインKd2を使用して(図7のステップ750)下流側フィードバック補正量Vafsfbを算出する。従って、微分項Kd・DDVoxsにより、出力偏差DVoxsの変化が抑制されない。この結果、次回の本ルーチンの実行時(時点t3)における出力偏差の今回値DVoxsは、値DV3’となる。
一方、第2実施形態は、出力偏差の前回値DV1と出力偏差の今回値DV2との関係からは出力偏差DVoxsの大きさが減少していると判定する(図9のステップ720)ものの、出力偏差の今回値DV2の大きさが所定の閾値αよりも小さいので出力値Voxsが下流側目標値Voxsrefに十分に近づいていると判定する(図9のステップ905)。
その結果、第2実施形態は、第1微分ゲインKd1を使用して(図9のステップ910)下流側フィードバック補正量Vafsfbを算出する。従って、微分項Kd・DDVoxsにより、出力偏差DVoxsの変化が抑制される。この結果、次回の本ルーチンの実行時(時点t3)における出力偏差の今回値DVoxsは、第1実施形態の場合の値DV3’よりも大きさが小さい値DV3となる。
換言すると、第1実施形態の場合(第2微分ゲインKd2が使用される場合)と比較して出力偏差DVoxsの変化を抑制する程度が小さくされないので、出力値Voxsが下流側目標値Voxsrefと近しい状態(略一致した状態)を維持することができ、実際の空燃比が目標とする空燃比に略一致した状態を維持することができる。
以上、説明したように、本発明による内燃機関の空燃比制御装置の第2実施形態によれば、上記第1実施形態と同様に、出力偏差DVoxsの大きさが増加しているとき、出力偏差DVoxsの大きさの増加が十分に抑制され、一方、出力偏差DVoxsの大きさが減少しているとき、出力偏差DVoxsの大きさの減少がそれほど抑制されない。この結果、出力偏差DVoxsの大きさの増減にかかわらず微分ゲインが一定である場合と比較して出力値Voxsを下流側目標値Voxsrefに迅速に近づけることができる。従って、実際の空燃比を目標とする空燃比に迅速に一致させることができる。
更に、上記第2実施形態によれば、出力偏差DVoxsの大きさが減少している場合であっても、出力値Voxsが下流側目標値Voxsrefを超えて変化するとき(「オーバーシュート」又は「アンダーシュート」発生時)は、微分項の算出に第2微分ゲインKd2よりも大きさが大きい第1微分ゲインKd1が選択される。これにより、出力偏差DVoxsの変化が第2微分ゲインKd2を用いる場合よりも抑制される。この結果、現時点よりも先の時点における下流側空燃比センサ67の出力値Voxsが下流側目標値Voxsrefから過度に遠ざかることを防止することができるので、出力値Voxsを下流側目標値Voxsrefにより迅速に近づけることができる。従って、実際の空燃比を目標とする空燃比に迅速に一致させることができる。
加えて、上記第2実施形態によれば、出力偏差DVoxsの大きさが減少している場合であっても、出力値Voxsが下流側目標値Voxsrefと十分に近しい値であるときは、微分項の算出に第2微分ゲインKd2よりも大きさが大きい第1微分ゲインKd1が選択される。これにより、出力偏差DVoxsの変化が第2微分ゲインKd2を用いる場合よりも抑制される。この結果、出力値Voxsが下流側目標値Voxsrefと十分に近しい状態(略一致した状態)を維持し得る可能性が高まり、実際の空燃比を目標とする空燃比に略一致させておくことが可能となる。
また、上記第2実施形態は、出力偏差の前回値DVoxs1の符号と出力偏差の今回値DVoxsの符号とが相違しているという第1の条件と、出力偏差の今回値の大きさ|DVoxs|が所定の閾値α以下であるという第2の条件と、の2つの条件を1つのステップ(ステップ905)にて判定するように構成されていたが、同2つの条件を2つのステップにて1つずつ判定するように構成されていてもよい。
この場合、以下のように構成されていることが好適である。
先ず、第1の条件の成立の可否が判定される。第1の条件が成立していると判定された場合、微分ゲインKdが第3微分ゲインに設定される。一方、第1の条件が成立していないと判定された場合、第2の条件の成立の可否が判定され、その結果、第2の条件が成立していると判定されたときには微分ゲインKdが第4微分ゲインに、第2の条件が成立していないと判定されたときには微分ゲインKdが第2微分ゲインKd2に設定される。
ここで、第3微分ゲイン及び第4微分ゲインは、いずれも第2微分ゲインKd2よりも大きさが大きい正の値である。なお、上記2つの条件の判定順序は逆であってもよい。
加えて、上記第2実施形態においては、ステップ905内に示した条件が不成立であると判定されたとき微分ゲインKdが第1微分ゲインKd1に設定されるように構成されていたが、第1微分ゲインKd1と異なる値であって第2微分ゲインKd2よりも大きさが大きい値に設定されるように構成されていてもよい。
更に、上記ステップ905は、上記第1の条件と、上記第2の条件と、の両方の条件に基づいて第1微分ゲインKd1及び第2微分ゲインKd2のいずれを微分項の算出に使用するかを決定するステップであったが、使用する微分ゲインをいずれか一方の条件のみに基づいて決定するステップとしてもよい。
なお、本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上流側フィードバック補正量を算出するためのルーチン(図6)及び下流側フィードバック補正量を算出するためのルーチン(図7及び図9)をそれぞれ実行するタイミングは、燃料噴射気筒について燃料噴射開始時期(燃料噴射開始時点)が到来するタイミングであってもよい。
また、上記各実施形態においては、下流側フィードバック補正量Vafsfbは、比例項、積分項及び微分項からなっていたが、比例項及び積分項のいずれか一方と、微分項と、からなっていてもよい。更に、比例項に代えて、出力偏差の符号に応じて符号が変化するとともに大きさが一定の値となる項を用いてもよい。
また、上記各実施形態は、
排気通路(52)に排気浄化用触媒(53)を配設した内燃機関(10)に適用され、
前記排気通路を実際に流れるガスの空燃比に対して単調増加又は単調減少する出力値(Voxs)を出力する空燃比センサ(67)と、
前記空燃比センサの出力値が所定の目標値(Voxsref)と一致するように同出力値と同目標値との差である出力偏差(DVoxs)に応じたフィードバック補正量(Vafsfb)を算出するとともに同フィードバック補正量に基づいて前記内燃機関に供給される混合ガスの空燃比を制御する空燃比フィードバック制御手段(図5のルーチン、図6のルーチン及び図7のルーチン)と、
を備えた内燃機関の空燃比制御装置であって、
前記空燃比フィードバック制御手段は、
前記出力偏差に所定の比例ゲイン(Kp)を乗じた比例項(Kp・DVoxs)及び同出力偏差を時間積分した時間積分値(SDVoxs)に所定の積分ゲイン(Ki)を乗じた積分項(Ki・SDVoxs)の少なくとも1つを第1フィードバック項として算出する第1フィードバック項算出手段(図7のルーチン)と、
前記出力偏差の大きさが増加している場合には第1微分ゲイン(Kd1)を選択し(ステップ725)、同出力偏差の大きさが減少している場合には同第1微分ゲインと同じ正負の符号を有し且つ同第1微分ゲインよりも大きさが小さい第2微分ゲイン(Kd2)を選択する(ステップ750)とともに、同出力偏差の時間微分値(DDVoxs)に同選択した微分ゲイン(Kd)を乗じた微分項(Kd・DDVoxs)を第2フィードバック項として算出する第2フィードバック項算出手段(図7のルーチン)と、
前記第1フィードバック項及び前記第2フィードバック項に基づいて前記フィードバック補正量を算出するフィードバック補正量算出手段(ステップ730)と、
を備えた内燃機関の空燃比制御装置である、と言うこともできる。
更に、上記各実施形態においては、下流側空燃比センサ67の出力値Voxsに基づく下流側フィードバック補正量Vafsfbの算出に本発明を適用していたが、上流側フィードバック補正量DFiが微分項を含む場合には、上流側空燃比センサ66の出力値Vabyfsに基づく上流側フィードバック補正量DFiの算出に本発明を適用してもよい。
10…内燃機関、25…燃焼室、39…インジェクタ、52…エキゾーストパイプ、53…三元触媒(第1触媒)、66…上流側空燃比センサ、67…下流側空燃比センサ、70…電気制御装置、71…CPU、73…RAM。