以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。
(第1実施形態)
図1は、第1実施形態に係る内燃機関の空燃比制御装置(以下、「第1制御装置」とも称呼する。)を火花点火式多気筒(本例では4気筒)内燃機関(ガソリンエンジン)10に適用したシステムの概略構成を示している。この内燃機関10は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部20と、シリンダブロック部20の上に固定されるシリンダヘッド部30と、シリンダブロック部20にガソリン混合気を供給するための吸気系統40と、シリンダブロック部20からの排ガスを外部に放出するための排気系統50とを含んでいる。なお、図1は特定気筒の断面を示しているが、他の気筒も同様な構成を備えている。
シリンダブロック部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を備えている。燃料噴射手段としてのインジェクタ39は、噴射指示信号に応答して同噴射指示信号に含まれる指示噴射量の燃料を噴射するようになっている。
吸気系統40は、インテークマニホールド41、吸気管(吸気ダクト)42、エアフィルタ43、スロットル弁44及びスロットル弁アクチュエータ44aを備えている。
インテークマニホールド41は、各気筒の燃焼室25に連通した吸気ポート31に接続されている。より詳細には、インテークマニホールド41は各吸気ポート31に接続された複数の枝部と、それらの枝部が集合したサージタンク部と、を備えている。吸気管42はサージタンク部に接続されている。インテークマニホールド41及び吸気管42は吸気通路を構成している。エアフィルタ43は吸気管42の端部に設けられている。スロットル弁44は吸気管42に回動可能設けられ、回動することにより吸気管42が形成する吸気通路の開口断面積を変更するようになっている。スロットル弁アクチュエータ(スロットル弁駆動手段)44aは、DCモータからなり、指示信号に応答してスロットル弁44を回転駆動するようになっている。
排気系統50は、エキゾーストマニホールド51、エキゾーストパイプ(排気管)52及び上流側触媒53(以下、単に「触媒53」とも称呼する。)を備えている。
エキゾーストマニホールド51は、各気筒の燃焼室25に連通した排気ポート34に接続されている。より詳細には、エキゾーストマニホールド51は各排気ポートに接続された複数の枝部と、それらの枝部が集合した集合部と、を備えている。エキゾーストパイプ52は、エキゾーストマニホールド51の集合部に接続されている。エキゾーストマニホールド51及びエキゾーストパイプ52は排気経路を構成している。なお、本明細書において、エキゾーストマニホールド51の集合部とエキゾーストパイプ52とが形成する排気経路を、便宜上「排気通路」と称呼する。
触媒53は、セラミックからなる担持体に「触媒物質である貴金属」及び「セリア(CeO2)」を担持していて、酸素吸蔵・放出機能(単に「酸素吸蔵機能」又は「O2ストレージ機能」とも称呼する。)を有する三元触媒である。触媒53はエキゾーストパイプ52に配設(介装)されている。換言すると、触媒53は排気通路の集合部(エキゾーストマニホールド51の集合部)よりも下流の排気通路に配設されている。触媒53は、スタート・キャタリティック・コンバータ(SC)又は第1触媒とも称呼される。
触媒53を構成する三元触媒は、三元触媒に流入するガスの空燃比が所謂「理論空燃比を含む空燃比範囲であるウインドウW」の内にあるとき、未燃物(HC,CO等)を酸化するとともに窒素酸化物(NOx)を還元することにより、これらの有害成分を高い効率で浄化する特性(触媒機能)を有する。
また、三元触媒は、酸素吸蔵機能により、空燃比が理論空燃比からある程度まで偏移したとしても、HC、CO及びNOxを浄化することができる。即ち、機関の空燃比が理論空燃比よりもリーン側の空燃比となって三元触媒に流入するガスにNOxが多量に含まれると、触媒はNOxから酸素分子を奪って(NOxを還元し)、その奪った酸素分子を吸蔵する。このようにNOxを還元し得る状態は、三元触媒が「実質的に還元剤(還元成分)を保持している状態である。」と表現することもできる。また、機関の空燃比が理論空燃比よりもリッチ側の空燃比になって三元触媒に流入するガスにHC,CO等の未燃物(還元成分)が多量に含まれると、三元触媒は吸蔵している酸素分子を放出してこれらの未燃物に対して与え、これらの成分を酸化(浄化)する。このように未燃物を酸化し得る状態は、三元触媒が「実質的に酸化剤(酸化成分)を保持している状態である。」と表現することもできる。
更に、このシステムは、図1に示したように、熱線式エアフローメータ61、スロットルポジションセンサ62、カムポジションセンサ63、クランクポジションセンサ64、水温センサ65、空燃比センサ66及びアクセル開度センサ67を備えている。
熱線式エアフローメータ61は、吸気管42内を流れる吸入空気の質量流量を検出し、その質量流量(機関10の単位時間あたりの吸入空気量)Gaを表す信号を出力するようになっている。
スロットルポジションセンサ62は、スロットル弁44の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。
カムポジションセンサ63は、インテークカムシャフトが所定角度から90度、次いで90度、更に180度回転する毎に一つのパルスを出力するようになっている。この信号はG2信号とも称呼される。
クランクポジションセンサ64は、クランク軸24が10°回転する毎に幅狭のパルスを有するとともにクランク軸24が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。クランクポジションセンサ64から出力されるパルスは後述する電気制御装置70により機関回転速度NEを表す信号に変換されるようになっている。更に、電気制御装置70は、カムポジションセンサ63及びクランクポジションセンサ64からの信号に基いて、機関10のクランク角度(絶対クランク角)を取得するようになっている。
水温センサ65は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
空燃比センサ66は、エキゾーストマニホールド51の集合部と触媒53との間の位置においてエキゾーストマニホールド51及びエキゾーストパイプ52の何れか(即ち、排気通路)に配設されている。空燃比センサ66は、空燃比センサ66が配設された排気通路内の部位を流れる排ガス(被検出ガス)の空燃比に応じた出力値を出力するようになっている。
より具体的に述べると、空燃比センサ66は限界電流式の酸素濃度センサである。空燃比センサ66は、図2に示したように、被検出ガスの空燃比A/F(従って、機関に供給される混合気の空燃比)に応じた電圧である出力値Vabyfsを出力するようになっている。この出力値Vabyfsは、被検出ガスの空燃比が理論空燃比であるときに値Vstoichに一致する。出力値Vabyfsは、被検出ガスの空燃比が大きくなる(リーンとなる)ほど増大する。
後述する電気制御装置70は、図2に示したテーブル(マップ)Mapabyfsを記憶していて、そのテーブルに実際の出力値Vabyfsを適用することによって空燃比を検出するようになっている。この出力値Vabyfsに基づいて検出される空燃比を、以下「検出空燃比abyfs」と称呼する。即ち、空燃比センサ66は、触媒53に流入する排ガスの空燃比を取得する空燃比取得(検出)手段の一部を構成している。
再び、図1を参照すると、アクセル開度センサ67は、運転者によって操作されるアクセルペダル81の操作量を検出し、アクセルペダル81の操作量Accpを表す信号を出力するようになっている。
電気制御装置70は、互いにバスで接続されたCPU71、CPU71が実行するルーチン(プログラム)、テーブル(ルックアップテーブル、マップ)及び定数等を予め記憶したROM72、CPU71が必要に応じてデータを一時的に格納するRAM73、電源が投入された状態でデータを格納するとともに格納したデータを電源が遮断されている間も保持するバックアップRAM74、並びに、ADコンバータを含むインターフェース75等からなるマイクロコンピュータである。
インターフェース75は、前記センサ61〜67と接続され、CPU71にセンサ61〜67からの信号を供給するとともに、CPU71の指示に応じて可変吸気タイミング装置33のアクチュエータ33a、イグナイタ38、インジェクタ39及びスロットル弁アクチュエータ44a等に駆動信号(指示信号)を送出するようになっている。
(作動)
次に、上記のように構成された第1制御装置による作動について説明する。なお、以下の説明において、空燃比センサ66は活性化していると仮定する。更に、MapX(a)と表記されるテーブルは、変数aと値Xとの関係を規定するテーブルを意味することとする。また、値XをテーブルMapX(a)に基づいて求めるとは、値Xを現時点の変数aと、テーブルMapX(a)と、に基づいて求める(決定する)ことを意味することとする。なお、変数は2つ以上であってもよい。
<理論空燃比制御>
第1制御装置のCPU71は、図3にフローチャートにより示した燃料噴射制御ルーチンを各気筒のクランク角が吸気上死点前の所定クランク角度(例えば、BTDC90°)に一致する毎に繰り返し実行するようになっている。従って、任意の気筒のクランク角度が上記所定クランク角度になると、CPU71は、ステップ300から処理を開始してステップ305に進み、フューエルカットフラグXFCが「0」であるか否かを判定する。
このフューエルカットフラグXFCは、その値が「0」のとき、機関10の運転状態が通常運転状態にあってフューエルカット制御中でないことを示す。更に、フューエルカットフラグXFCは、その値が「1」のとき、機関10の運転状態がフューエルカット制御中であることを示す。フューエルカット制御は、機関10への燃料の供給(インジェクタ39からの燃料噴射)を停止する制御である。フューエルカットフラグXFCの値は後述するルーチンにより変更される。フューエルカットXFCは図示しないイグニッション・キー・スイッチがオフからオンに変更されたときに実行されるイニシャルルーチンにおいて「0」に設定される。
いま、機関10の運転状態が通常運転状態にあってフューエルカット制御中でないと仮定する。この状態は図4に示したタイムチャートの時刻t1以前に対応する。この場合、フューエルカットフラグXFCは「0」となっている。従って、CPU71はステップ305にて「Yes」と判定してステップ310に進み、エアフローメータ61により計測された吸入空気量Gaと、クランクポジションセンサ64からの出力信号により得られる機関回転速度NEと、テーブルMapMc(NE,Ga)と、に基づいて、今回吸気行程を迎える気筒(以下、「燃料噴射気筒」とも称呼する。)に吸入される吸入空気量(筒内吸入空気量)Mc(k)を算出する。なお、筒内吸入空気量Mc(k)は機関10の吸気通路における空気の挙動をモデル化した周知の空気量推定モデル(空気モデル)を用いて求められてもよい。筒内吸入空気Mc(k)は算出される毎に機関10の絶対クランク角度に対応されながらRAM73に格納されて行く。
次に、CPU71はステップ315に進み、空燃比リッチ制御実行フラグXRICHの値が「0」であるか否かを判定する。この空燃比リッチ制御実行フラグXRICHは、その値が「1」のとき、機関の空燃比を理論空燃比よりもリッチ側の空燃比に制御する「空燃比リッチ制御」を実行すべきこと及び同制御を実行していることを示す。更に、空燃比リッチ制御実行フラグXRICHは、その値が「0」のとき、空燃比リッチ制御を実行するべきでないこと及び同制御を実行していないことを示す。空燃比リッチ制御実行フラグXRICHの値は後述するルーチンにより操作される。空燃比リッチ制御実行フラグXRICHの値は通常時においては「0」に設定されている。
従って、CPU71はステップ315にて「Yes」と判定してステップ320に進み、目標空燃比abyfrに理論空燃比stoich(例えば、14.7)を設定する。その後、CPU71は、以下に述べるステップ325乃至ステップ335の処理を順に行い、ステップ395に進んで本ルーチンを一旦終了する。
ステップ325:CPU71は、筒内吸入空気量Mc(k)を目標空燃比abyfr(この場合、理論空燃比stoich)で除すことによって、基本燃料噴射量Fbaseを求める。この基本燃料噴射量Fbaseは、機関の空燃比を目標空燃比abyfrに一致させるためのフィードフォワード量である。
ステップ330:CPU71は、基本燃料噴射量Fbaseに後述するルーチンによって別途求められているフィードバック補正量Dfbを加えることにより最終燃料噴射量(最終燃料供給量)Fiを求める。
ステップ335:CPU71は、最終燃料噴射量Fiの燃料を噴射するための噴射指示信号を燃料噴射気筒に対して設けられているインジェクタ39に対して送出する。
以上により、最終燃料噴射量Fiの燃料が燃料噴射気筒に供給され、その結果、機関の空燃比は目標空燃比abyfrである理論空燃比stoichに一致するように制御される。
<フィードバック制御>
CPU71はフィードバック補正量Dfbを算出するために、図5に示したフィードバック制御ルーチンを所定時間の経過毎に実行するようになっている。従って、所定のタイミングになると、CPU71は、ステップ500から処理を開始し、ステップ505に進んでフィードバック条件が成立しているか否かを判定する。
フィードバック制御条件は、以下に述べる条件1〜3が総て成立したときにのみ成立し、条件1〜3の何れか一つでも不成立のとき不成立となる。
(条件1)空燃比センサ66が活性化している。
(条件2)フューエルカット制御中でない(フューエルカットフラグXFCの値が「0」である。)。
(条件3)フューエルカット復帰後(直前のフューエルカット制御の停止後)において「空燃比センサ66の出力値Vabyfsと図2に示したテーブルMapabyfsとに基づいて求められる検出空燃比abyfs」が「理論空燃比近傍の所定値stioch+A(理論空燃比stoichよりも僅かな空燃比偏差Aだけリーン側の空燃比、例えば、17)」にまで一度でも低下した。
現時点において、条件1乃至条件3の総てが成立していると仮定する。この場合、フィードバック条件が成立するので、CPU71はステップ505にて「Yes」と判定し、以下に述べるステップ510乃至ステップ540の処理を順に行い、ステップ595に進んで本ルーチンを一旦終了する。
ステップ510:CPU71は、テーブルMapN(Mc(k),NE)に基づいて遅延ストローク数Nを決定する。ここで、遅延ストローク数Nは、燃料の噴射が指示されてから、この指示により噴射された燃料が燃焼に供されたときの混合ガスの空燃比が空燃比センサ66の出力値Vabyfsとして現れるまでの間の遅延時間に相当するストローク数である。テーブルMapN(Mc(k),NE)は、実験による測定値に基づいて予め設定されている。
ステップ515:CPU71は、空燃比センサ66の出力値Vabyfsと図2に示したテーブルMapabyfsとに基づいて現時点の検出空燃比abyfsを求める。
ステップ520:CPU71は、RAM73に記憶されている筒内吸入空気量Mcのうちから現時点からNストローク(N回の吸気行程)前に吸気行程を迎えた気筒の吸入空気量である筒内吸入空気量Mc(k-N)を読み出す。そして、CPU71は、筒内吸入空気量Mc(k-N)をステップ515にて取得した検出空燃比abyfsにより除することによって、現時点からNストローク前の実際の筒内供給燃料量Fc(k-N)を求める。
ステップ525:CPU71は、RAM73に記憶されている目標空燃比abyfrのうちから、現時点からNストローク前の目標空燃比abyfr(k-N)を読み出す。そして、CPU71は、現時点からNストローク前の筒内吸入空気量Mc(k-N)を現時点からNストローク前の目標空燃比abyfr(k-N)により除することによって、現時点からNストローク前の目標筒内供給燃料量Fcr(k-N)を求める。
ステップ530:CPU71は、現時点からNストローク前の目標筒内供給燃料量Fcr(k-N)から現時点からNストローク前の実際の筒内供給燃料量Fc(k-N)を減じることにより筒内供給燃料量偏差DFc(=Fcr(k-N)-Fc(k-N))を求める。即ち、筒内供給燃料量偏差DFcは、現時点からNストローク前の時点において気筒内に供給された燃料の過不足を表す量である。
ステップ535:CPU71は、下記(1)式と、筒内供給燃料量偏差DFcと、後述するステップ540にて算出される筒内供給燃料量偏差DFcの時間積分値SDFcと、に基づいてフィードバック補正量Dfbを求める。即ち、フィードバック補正量Dfbは、筒内供給燃料量偏差DFcを比例・積分処理(PI処理)することにより求められる。ここで、Gpは予め設定された比例ゲイン(比例定数)であり、Giは予め設定された積分ゲイン(積分定数)である。このフィードバック補正量Dfbは、上述した図3のステップ330にて燃料噴射量Fiが決定される際に用いられる。
Dfb=(Gp・DFc + Gi・SDFc) …(1)
ステップ535:CPU71は、筒内供給燃料量偏差DFcと時間Δtとの積を、筒内供給燃料量偏差DFcの時間積分値SDFcであって現時点にて算出されている最新の時間積分値SDFcに加えることにより時間積分値SDFcの最新値を算出する。ここで、時間Δtは、本ルーチンが前回実行された時点から今回実行された時点までの時間である。
以上のように、フィードバック補正量Dfbは、目標空燃比abyfrと検出空燃比abyfsとに基づいて、検出空燃比abyfsを目標空燃比abyfrに一致させるために基本燃料噴射量Fbaseを補正すべき燃料量として算出される。
なお、CPU71がステップ505に進んだときフィードバック条件が成立していなければ、CPU71はステップ505にて「No」と判定し、以下に述べるステップ545及びステップ550の処理を順に行い、ステップ595に進んで本ルーチンを一旦終了する。
ステップ545:CPU71は、フィードバック補正量Dfbを「0」に設定する。これにより、フィードバック制御は実質的に行われない。
ステップ550:CPU71は、時間積分値SDFcを「0」に設定する。
<フューエルカット制御(フューエルカット制御の開始)>
CPU71は、図6に示したフューエルカット開始判定ルーチンを所定時間の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、CPU71はステップ600から処理を開始し、ステップ610にてフューエルカット条件が成立したか否かを判定する。
フューエルカット条件は、以下に述べる条件1及び条件2が成立したときにのみ成立する。
(条件1)スロットル弁開度TAが「0(又は所定開度以下)」である。即ち、スロットル弁44が全閉である。なお、CPU71は、スロットル弁44の開度を、アクセルペダルの操作量Accpが大きくなるほど大きくなるように制御している。
(条件2)機関回転速度NEがフューエルカット回転速度NEFC以上である。
図4に示した時刻t1以前において、フューエルカット条件は成立していない。従って、CPU71はステップ610にて「No」と判定し、ステップ695に直接進んで本ルーチンを一旦終了する。一方、時刻t1にてフューエルカット条件が成立したと仮定する。この場合、CPU71はステップ610にて「Yes」と判定し、ステップ620に進んでフューエルカットフラグXFCの値を「1」に設定する。この結果、CPU71は図3に示したルーチンのステップ305に進んだとき、そのステップ305にて「No」と判定し、ステップ395に直接進んで本ルーチンを一旦終了する。この結果、ステップ335の処理が実行されないので、燃料の噴射(供給)が停止し、フューエルカット制御が実行される。
<酸素吸蔵量推定>
更に、CPU71は、図7にフローチャートにより示した触媒53の酸素吸蔵量OSAを推定するルーチンを所定時間(サンプリング時間tsample)の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、CPU71はステップ700から処理を開始してステップ705に進み、フューエルカットフラグXFCの値が「0」であるか否かを判定する。
現時点が時刻t1以降であるとすると、フューエルカットフラグXFCの値は「1」となっている。従って、CPU71はステップ705にて「No」と判定してステップ710に進み、所定時間(サンプリング時間tsample)内における酸素吸蔵量の変化量ΔOSAを下記(2)式に従って計算する。この(2)式は触媒53に流入するガスの100%が大気であるという前提に基づいている。
ΔOSA=0.23・Ga …(2)
この(2)式において、値「0.23」は大気中に含まれる酸素の重量割合である。Gaはサンプリング時間内においてエアフローメータ61により検出された吸入空気量Gaである。なお、(2)式中の値Gaは、サンプリング期間中の吸入空気量Gaの平均値Gaaveに置換されてもよい。
次に、CPU71は以下に述べるステップ715乃至ステップ735の処理を順に行い、ステップ795に進んで本ルーチンを一旦終了する。
ステップ715:CPU71は下記(3)式に従って酸素吸蔵量OSAを更新する。即ち、CPU71は、現時点までに求められている酸素吸蔵量OSAに前記変化量ΔOSAを加えることにより新たな酸素吸蔵量OSAを推定する。
OSA=OSA+ΔOSA …(3)
ステップ720:CPU71は、酸素吸蔵量OSAが図示しないルーチンにより別途算出されている触媒53の最大酸素吸蔵量Cmax以上であるか否かを判定する。そして、酸素吸蔵量OSAが最大酸素吸蔵量Cmax以上であるとき、CPU71はステップ725に進む。これに対し、酸素吸蔵量OSAが最大酸素吸蔵量Cmaxより小さいとき、CPU71はステップ720からステップ730に直接進む。なお、最大酸素吸蔵量Cmaxの推定方法は、例えば、特開2005−194981号公報、特開2006−057461号公報及び特開2005−207286号公報等により周知である。
ステップ725:CPU71は、酸素吸蔵量OSAに最大酸素吸蔵量Cmaxを格納し、ステップ730に進む。このステップは、酸素吸蔵量OSAが最大酸素吸蔵量Cmaxより大きくなり得ないことに基づいて酸素吸蔵量OSAを最大酸素吸蔵量Cmaxにて制限するためのステップである。
ステップ730:CPU71は、酸素吸蔵量OSAが「0」以下であるか否かを判定する。そして、酸素吸蔵量OSAが「0」以下であるとき、CPU71はステップ735に進む。これに対し、酸素吸蔵量OSAが「0」より大きいとき、CPU71はステップ730からステップ795に直接進んで本ルーチンを一旦終了する。
ステップ735:CPU71は、酸素吸蔵量OSAに「0」を格納し、ステップ795に直接進んで本ルーチンを一旦終了する。このステップは、酸素吸蔵量OSAが「0」以下になり得ないことに基づいて酸素吸蔵量OSAを「0」にて制限するためのステップである。
<空燃比リッチ制御要求判定>
以上に説明した酸素吸蔵量OSAの算出ルーチンが実行されると、図4の時刻t1以降に示したように、実際の酸素吸蔵量の増大にともなって、推定される酸素吸蔵量OSAも増大する。そして、その酸素吸蔵量OSAが第1閾値k1・Cmax(1/2<k1<1、例えば、k1=3/4)を超えたときに空燃比リッチ制御要求フラグXRYKの値を「1」に設定する。この第1閾値k1・Cmaxは「空燃比リッチ制御要求閾値」とも称呼される。以下、空燃比リッチ制御要求フラグXRYKの値を操作するための「空燃比リッチ制御要求判定ルーチン」について図8を参照しながら説明する。
CPU71は、図8に示したルーチンを所定時間の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、CPU71はステップ800から処理を開始しフューエルカットフラグXFCの値が「1」であるか否かを判定する。このとき、フューエルカットフラグXFCの値が「1」でなければ、CPU71はステップ805にて「No」と判定し、ステップ895に直接進んで本ルーチンを一旦終了する。
これに対し、現時点はフューエルカットが実行されている時刻t1以降の時点である。従って、CPU71はステップ805にて「Yes」と判定しステップ810に進み、推定されている酸素吸蔵量OSAが第1閾値k1・Cmax以上であるか否かを判定する。そして、図4の時刻t1直後のように酸素吸蔵量OSAが第1閾値k1・Cmaxより小さいと、CPU71はステップ810にて「No」と判定し、ステップ895に直接進んで本ルーチンを一旦終了する。
その後、所定の時間が経過して時刻t2になると酸素吸蔵量OSAは増大して第1閾値k1・Cmaxに到達する。従って、CPU71は時刻t2の時点においてステップ810に進むと、このステップ810にて「Yes」と判定してステップ815に進む。そして、CPU71は、ステップ815にて空燃比リッチ制御要求フラグXRYKの値を「1」に設定し、ステップ895に進んで本ルーチンを一旦終了する。なお、空燃比リッチ制御要求フラグXRYKは、図示しないイニシャルルーチンにおいて「0」に設定されている。
このように、空燃比リッチ制御要求フラグXRYKは、フューエルカット制御中(フューエルカットフラグXFCの値が「1」であるとき)において、酸素吸蔵量OSAが第1閾値k1・Cmax以上となったときに「1」に設定される。後述するように、空燃比リッチ制御要求フラグXRYKの値が「1」に設定されていると、フューエルカット制御が停止した時点(即ち、フューエルカット復帰時点)以降において、機関の空燃比を理論空燃比よりもリッチ側の空燃比に設定する「空燃比リッチ制御」が実行される。
フューエルカット制御中に酸素吸蔵量OSAが第1閾値k1・Cmax以上となったということは、触媒53の酸素吸蔵量が過大となっているため、触媒53はNOxを大量には浄化し難い状態となっていることを意味する。従って、第1制御装置は、このような場合、フューエルカット制御が停止した後に空燃比を理論空燃比よりもリッチ側の空燃比に制御し、それにより、触媒53の酸素吸蔵量をフューエルカット復帰後に速やかに低下させる。
<フューエルカット復帰(フューエルカット制御の停止)>
更に、CPU71は、図9に示したフューエルカット終了判定ルーチンを所定時間の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、CPU71はステップ900から処理を開始し、ステップ905に進んでフューエルカットフラグXFCの値が「1」であるか否かを判定する。即ち、CPU71は現在がフューエルカット制御中であるか否かを判定する。現在がフューエルカット制御中でなければ、CPU71はステップ905にて「No」と判定し、ステップ995に直接進んで本ルーチンを一旦終了する。
一方、図4に示した時刻t1から時刻t3の間、フューエルカット制御が実行されていてフューエルカットフラグXFCの値は「1」となっている。従って、時刻t1から時刻t3の間、CPU71はステップ905にて「Yes」と判定してステップ910に進み、フューエルカット終了条件が成立したか否かを判定する。
フューエルカット終了条件は以下に述べる条件1及び条件2の何れかが成立したときに成立し、条件1及び条件2の双方が不成立のとき不成立となる。
(条件1)スロットル弁開度TAが「0(前記所定開度)」より大きい。
(条件2)機関回転速度NEが、フューエルカット回転速度NEFCよりも所定回転数ΔNだけ小さいフューエルカット復帰回転速度NEFK(NEFK=NEFC−ΔN)より小さい。
図4に示した時刻t1から時刻t3の間において、フューエルカット終了条件は成立していない。従って、CPU71はステップ910にて「No」と判定し、ステップ995に直接進んで本ルーチンを一旦終了する。この結果、フューエルカットフラグXFCの値は「1」に維持される。
その後、時間が経過して時刻t3にてフューエルカット終了条件が成立したと仮定する。この場合、CPU71はステップ905及びステップ910の両ステップにて「Yes」と判定し、ステップ915に進んでフューエルカットフラグXFCの値を「0」に設定する。この結果、CPU71は図3に示したルーチンのステップ305に進んだとき、そのステップ305にて「Yes」と判定してステップ310以降に進むようになる。従って、ステップ335が実行されるので、フューエルカット制御が停止され、燃料の噴射(供給)が再開される。
<空燃比リッチ制御開始判定>
更に、CPU71は、図10にフローチャートにより示した「空燃比リッチ制御開始判定ルーチン」を所定時間の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、CPU71はステップ1000から処理を開始してステップ1005に進み、現時点が「フューエルカットフラグXFCの値が「1」から「0」へ変化した直後であるか否か」を判定する。即ち、CPU71は、現時点がフューエルカット復帰時点であるか否かを判定する。
現時点が時刻t3以前であるとすると、フューエルカットフラグXFCの値は「1」に維持されている。従って、CPU71はステップ1005にて「No」と判定してステップ1095に直接進んで本ルーチンを一旦終了する。
そして、時刻t3になると、前述したようにフューエルカット終了条件が成立し、その結果、フューエルカットフラグXFCの値が「1」から「0」へと変化する。この場合、CPU71はステップ1005にて「Yes」と判定してステップ1010に進み、空燃比リッチ制御要求フラグXRYKの値が「1」であるか否かを判定する。
図4に示した例においては、時刻t2にて空燃比リッチ制御要求フラグXRYKの値が「1」に設定されている。従って、CPU71はステップ1010にて「Yes」と判定し、ステップ1015にて空燃比リッチ制御実行フラグXRICHの値を「1」に設定する。その後、CPU71はステップ1095に進み、本ルーチンを一旦終了する。
この結果、CPU71が図3のルーチンのステップ315に進んだとき、CPU71はこのステップ315にて「No」と判定してステップ340に進み、目標空燃比abyfrに目標リッチ空燃比abyfrichを設定する。この目標リッチ空燃比abyfrichは理論空燃比stoichよりもリッチ側の空燃比である(例えば、13)。その後、CPU71は、前述したステップ325乃至ステップ335の処理を順に行う。従って、ステップ325にて求められる基本燃料噴射量Fbaseが目標リッチ空燃比abyfrichを達成する値(目標空燃比abyfrが理論空燃比stoichである場合よりも大きい値)になるので、空燃比リッチ制御が実行される。
なお、この時点(時刻t3直後)においては、フューエルカット復帰直後であるから、空燃比センサ66にはフューエルカット中の排ガス(即ち、空気のみ)が到達している。従って、空燃比センサ66の出力値VabyfsとテーブルMapabyfsとに基づいて求められる検出空燃比abyfsは、理論空燃比近傍の所定値stioch+Aよりも大きいので、上記フィードバック条件の条件3が不成立である。従って、CPU71は図5のステップ505にて「No」と判定してステップ545及びステップ550に進むので、空燃比のフィードバック制御は実行されない。
また、CPU71は、図10のステップ1010に進んだとき、それ以前において空燃比リッチ制御要求フラグXRYKの値が「1」に設定されていないと(空燃比リッチ制御要求フラグXRYKの値が「0」であると)、そのステップ1010にて「No」と判定し、ステップ1095に直接進んで本ルーチンを一旦終了する。その結果、空燃比リッチ制御実行フラグXRICHの値は「0」に維持されるので、CPU71が図3のルーチンのステップ315に進んだとき、CPU71はこのステップ315にて「Yes」と判定してステップ320に進む。従って、目標空燃比abyfrは理論空燃比stoichに設定されるから、空燃比リッチ制御は実行されず、機関の空燃比は理論空燃比に制御される。なお、空燃比リッチ制御実行フラグXRICHも、図示しないイニシャルルーチンにおいて「0」に設定されている。
<フューエルカット復帰後の酸素吸蔵量の推定、及び、空燃比リッチ制御終了判定>
ところで、CPU71は図7のルーチンを繰り返し実行することにより、酸素吸蔵量OSAの推定を継続している。従って、この段階(時刻t3直後)においてCPU71が図7のステップ700から処理を開始してステップ705に進んだとき、フューエルカットフラグXFCの値は「0」となっているから、CPU71はステップ705にて「Yes」と判定してステップ740に進む。
そして、CPU71は、ステップ740にて、直前のフューエルカット復帰後から現時点までに「空燃比センサ66の出力値Vabyfsと図2に示したテーブルMapabyfsとに基づいて求められる検出空燃比abyfs」が「理論空燃比近傍の所定値stioch+A」にまで一度でも低下したか否かを判定する。この判定条件は、フィードバック制御条件の条件3と同じである。前述したように、時刻t3直後はフューエルカット復帰直後であるから、空燃比センサ66にはフューエルカット中の排ガス(即ち、空気のみ)が到達している。また、フューエルカット復帰後の排ガスが空燃比センサ66に到達した場合であっても、空燃比センサ66の出力値Vabyfsはその排ガスの到達時点よりも僅かに遅れて変化する。従って、空燃比センサ66の出力値VabyfsとテーブルMapabyfsとに基づいて求められる検出空燃比abyfsは、フューエルカット復帰直後(時刻t3直後)において理論空燃比近傍の所定値stioch+A以下になっていない。
このため、CPU71はステップ740にて「No」と判定してステップ745に進み、後述するステップ755にて「酸素吸蔵量の変化量ΔOSAを計算する際に使用する計算用空燃比abyfc」に目標空燃比abyfrを設定する。なお、図4に示した例において、目標空燃比abyfrは先に説明した図3のステップ340にて目標リッチ空燃比abyfrichに設定されている。
次に、CPU71はステップ755に進み、下記(4)式に基づいて酸素吸蔵量の変化量ΔOSAを計算する。(4)式の値「0.23」は、前述したように、大気中に含まれる酸素の重量割合である。mfrは所定時間(サンプリング時間tsample)内の燃料噴射量Fiの合計量(サンプリング時間tsample内において機関10に供給された燃料の総量)である。
ΔOSA=0.23・mfr・(abyfc − stoich) …(4)
その後、CPU71は、前述したステップ715乃至ステップ735の処理を行い、ステップ795に進んで本ルーチンを一旦終了する。従って、フューエルカット復帰直後から所定の期間(前述した「応答遅れ時間」)においては、酸素吸蔵量OSAは目標空燃比abyfr(この場合には目標リッチ空燃比abyfrich)に基づいて推定されて行く。
時刻t3以降においては空燃比リッチ制御が実行されている。従って、機関10からは酸素の量に対して過剰な量の未燃物が排出される。そのため、触媒53は吸蔵している酸素を放出するから、酸素吸蔵量は次第に低下してゆく。一方、上述したように、計算用空燃比abyfcには理論空燃比stoichよりも小さい目標リッチ空燃比abyfrichが設定されている。従って、(4)式により求められる酸素吸蔵量の変化量ΔOSAは負の値となるので、図7のステップ715の処理(上記(3)式に基づく計算)によって推定される酸素吸蔵量OSAも実際の酸素吸蔵量の低下に見合うように次第に減少する。
その後、時刻t4になると、「空燃比センサ66の出力値Vabyfsと図2に示したテーブルMapabyfsとに基づいて求められる検出空燃比abyfs」が「理論空燃比近傍の所定値stioch+A」にまで低下する。従って、CPU71は図7のステップ740に進んだとき、このステップ740にて「Yes」と判定し、計算用空燃比abyfcにその検出空燃比abyfsを設定する。
つまり、検出空燃比abyfsが理論空燃比近傍の所定値stioch+Aにまで低下した時刻t4以降においては、空燃比リッチ制御に基づいて機関10に供給された過濃な混合気の燃焼により生成された排ガスが空燃比センサ66に到達しており、且つ、空燃比センサ66がセンサ自身の検出応答遅れのない状態にてその排ガスの空燃比を検出していると考えることができる。従って、検出空燃比abyfsの方が目標空燃比abyfrよりもより触媒53に流入するガスの空燃比を正確に検出している。従って、第1制御装置は、時刻t4以降(応答遅れ期間である時刻t3〜時刻t4の経過後)において、検出空燃比abyfsに基づいて酸素吸蔵量OSA(酸素吸蔵量の変化量ΔOSA)を推定するのである。
なお、時刻t4にて検出空燃比abyfsが理論空燃比近傍の所定値stioch+Aにまで低下すると、上述したフィードバック条件の条件3が成立するので、フィードバック条件が成立する。従って、CPU71は図5のステップ505にて「Yes」と判定するようになるので、フィードバック制御が再開される。
そして、図4に示した例においては、時刻t4の後の時刻t5にて、推定されている酸素吸蔵量OSAが第2閾値k2・Cmax(0<k2<1/3、例えば、k2=1/4であり、第2閾値k2・Cmaxは第1閾値k1・Cmaxより小さい。)に到達する。この第2閾値k2・Cmaxは「空燃比リッチ制御終了閾値」とも称呼される。このとき、CPU71は、図11に示した「空燃比リッチ制御終了判定ルーチン」により空燃比リッチ制御を終了する。
具体的に述べると、CPU71は、図11のルーチンを所定時間の経過毎に繰り返し実行するようになっている。従って、所定のタイミングになると、CPU71はステップ1100から処理を開始してステップ1105に進み、空燃比リッチ制御実行フラグXRICHの値が「1」であるか否かを判定する。
図4の例では、時刻t3以降において空燃比リッチ制御実行フラグXRICHの値は「1」に設定されている。従って、CPU71はステップ1105にて「Yes」と判定し、ステップ1110に進んで「推定されている酸素吸蔵量OSAが第2閾値k2・Cmax以下であるか否か」を判定する。そして、図4の時刻t3−時刻5の期間のように酸素吸蔵量OSAが第2閾値k2・Cmaxより大きいと、CPU71はステップ1110にて「No」と判定し、ステップ1195に直接進んで本ルーチンを一旦終了する。この結果、空燃比リッチ制御実行フラグXRICHの値が「1」に維持されるので、空燃比リッチ制御が継続する。
その後、酸素吸蔵量OSAは更に減少し、時刻t5になると第2閾値k2・Cmaxにまで減少する。従って、CPU71は時刻t5の時点においてステップ1110に進むと、このステップ1110にて「Yes」と判定し、ステップ1115に進んで空燃比リッチ制御実行フラグXRICHの値を「0」に設定する。次いで、CPU71は、ステップ1120に進んで空燃比リッチ制御要求フラグXRYKの値を「0」に設定し、ステップ1195に進んで本ルーチンを一旦終了する。
この結果、CPU71が図3のルーチンのステップ315に進んだとき、CPU71はこのステップ315にて「Yes」と判定してステップ320に進み、目標空燃比abyfrに理論空燃比stoichを設定する。その後、CPU71は、前述したステップ325乃至ステップ335の処理を順に行う。従って、空燃比リッチ制御が終了され、機関の空燃比は再び理論空燃比に一致するように制御される。
なお、CPU71が図11のステップ1105に進んだとき、空燃比リッチ制御実行フラグXRICHの値が「0」であれば(即ち、空燃比リッチ制御が実行されていなければ)、CPU71はステップ1105にて「No」と判定し、ステップ1195に直接進んで本ルーチンを一旦終了する。
以上、説明したように、第1制御装置は、
機関10に供給される空気と燃料とからなる混合気の空燃比が目標空燃比abyfrと一致するように機関10に供給される燃料の量(最終燃料噴射量Fi)を目標空燃比abyfrに応じて変更する燃料供給量変更手段(図3のステップ310乃至ステップ340、図5のステップ505乃至ステップ540を参照。)と、
所定のフューエルカット条件が成立したとき前記機関への燃料の供給を停止するフューエルカット制御を行い且つ同フューエルカット制御中にフューエルカット終了条件が成立したとき同フューエルカット制御を解除するフューエルカット手段(図3のステップ305、図6のルーチン及び図9のルーチンを参照。)と、
触媒53の酸素吸蔵量OSAを推定する酸素吸蔵量推定手段(図7のルーチンを参照。)と、
フューエルカット制御中に前記推定された酸素吸蔵量OSAが所定の第1閾値(k1・Cmax)以上となったとき、空燃比リッチ制御要求フラグXRYKの値を「1」に設定することにより空燃比リッチ制御要求を発生する空燃比リッチ制御要求発生手段(図8のルーチンを参照。)と、
目標空燃比設定手段と、を備える。
その目標空燃比設定手段は、フューエルカット制御が解除されたフューエルカット復帰時点において前記空燃比リッチ制御要求が発生していれば目標空燃比abyfrを理論空燃比stoichよりもリッチ側の目標リッチ空燃比abyfrichに設定する(図10のルーチンにおける空燃比リッチ制御実行フラグXRICHの「1」への設定、図3のルーチンのステップ315及びステップ340を参照。)。
更に、目標空燃比設定手段は、目標空燃比abyfrが目標リッチ空燃比abyfrichに設定されているとき、フューエルカット復帰時点以降において推定される酸素吸蔵量OSAが所定の第2閾値k2・Cmax以下となったとき目標空燃比abyfrを理論空燃比stoichに設定する(図11のルーチンのステップ1115における空燃比リッチ制御実行フラグXRICHの「0」への設定、図3のルーチンのステップ315及びステップ320を参照。)。
加えて、目標空燃比設定手段は、フューエルカット復帰時点において空燃比リッチ制御要求が発生していなければ目標空燃比abyfrを理論空燃比stoichに設定する(図10のルーチンのステップ1005、ステップ1010、図3のルーチンのステップ315及びステップ320を参照。)。
そして、前記酸素吸蔵量推定手段は、フューエルカット復帰時点から所定の期間(上記応答遅れ期間)が経過するまでは(図7のステップ740を参照。)、目標空燃比abyfrに基づいて酸素吸蔵量OSAを推定し(図7のステップ745、ステップ755及びステップ715を参照。)、その所定の期間が経過した後は空燃比センサ66の出力に基づいて酸素吸蔵量OSAを推定する(図7のステップ740、ステップ750、ステップ755及びステップ715を参照。)。
フューエルカット復帰後の「応答遅れ期間」中は空燃比センサ66の出力に基づく検出空燃比abyfsは実際の空燃比よりもかなりリーン側の空燃比となる。従って、第1制御装置は、応答遅れ期間中、目標空燃比abyfrを用いて酸素吸蔵量OSAを推定する。これにより酸素吸蔵量OSAが過大に算出されない。更に、応答遅れ期間の経過後には空燃比センサの出力に基づく検出空燃比abyfsの方が目標空燃比abyfrよりも実際の空燃比に近づくという知見に基き、第1制御装置は応答遅れ期間の経過後において検出空燃比abyfsに基づいて酸素吸蔵量OSAを推定する。この結果、酸素吸蔵量OSAの推定精度が向上する。従って、第1制御装置は、そのように精度良く推定された酸素吸蔵量OSAが第2閾値k2・Cmax以下となったときに空燃比リッチ制御を終了するので、空燃比リッチ制御を適切なタイミングにて終了することができる。
更に、第1制御装置は、フューエルカット復帰時点以降において目標空燃比abyfrを用いて酸素吸蔵量OSAを推定する期間(即ち、前記所定の期間(応答遅れ時間))の終了時点を、空燃比センサ66の出力Vabyfsにより示される空燃比(検出空燃比)abyfsが「フューエルカット復帰時点以降において理論空燃比近傍の所定の空燃比stioch+Aにまで低下した時点」に定めている。これは、この時点以降、検出空燃比abyfsの方が目標空燃比abyfrよりも「触媒53に流入する排ガスの実際の空燃比」を精度良く表すからである。従って、第1制御装置は、酸素吸蔵量OSAを求めるための空燃比を目標空燃比abyfrから検出空燃比abyfsに適切なタイミングにて切り換えることができる。その結果、酸素吸蔵量OSAの推定精度が一層向上するので、第1制御装置は空燃比リッチ制御をより適切なタイミングにて終了することができる。
(第2実施形態)
次に、本発明の第2実施形態に係る内燃機関の空燃比制御装置(以下、「第2制御装置」とも称呼する。)について説明する。第2制御装置は、吸蔵酸素増加量と吸蔵酸素減少量(酸素放出量)とを別々に推定し、それらに基づいて空燃比リッチ制御の開始及び終了を判定する点において第1制御装置と相違している。
第2制御装置のCPU71は、図3、図5、図6及び図9に示したルーチンを実行するとともに、図12、及び、図14〜図16にフローチャートにより示したルーチンを所定時間の経過毎に繰り返し実行するようになっている。以下、これらの図面に示したルーチンに沿って第2制御装置の作動を説明する。
<空燃比リッチ制御要求判定>
所定のタイミングになると、CPU71は図12のステップ1200から処理を開始し、ステップ1210に進んでフューエルカットフラグXFCの値が「1」であるか否かを判定する。このとき、フューエルカットフラグXFCの値が「1」でなければ、CPU71はステップ1210にて「No」と判定してステップ1220に進み、吸蔵酸素増加量OSAKZを「0(初期値)」に設定する。その後、CPU71は、ステップ1295に直接進んで本ルーチンを一旦終了する。このように、吸蔵酸素増加量OSAKZはフューエルカット制御が行われていないとき「0」に設定される(図13の時刻t1以前を参照。)。
一方、CPU71は図6に示したフューエルカット開始判定ルーチンを繰り返し実行しているので、フューエルカット条件が成立するとフューエルカットフラグXFCの値を「1」に設定する。これにより、フューエルカット制御が開始する(図13の時刻t1を参照。)。このとき、CPU71が図12のステップ1210に進むと、CPU71はそのステップ1210にて「Yes」と判定し、以下に述べるステップ1230及びステップ1240の処理を順に行う。
ステップ1230:CPU71は、所定時間(サンプリング時間tsample)内における吸蔵酸素増加量OSAKZの変化量ΔOSAKZを下記(5)式に従って計算する。この(5)式は上述した(2)式(図7のステップ710を参照。)と同様の式であり、フューエルカット制御中においては触媒53に流入するガスの100%が大気であるという前提に基づいている。即ち、値「0.23」は大気中に含まれる酸素の重量割合である。Gaはサンプリング時間内においてエアフローメータ61により検出された吸入空気量Gaである。なお、(5)式中の値Gaは、サンプリング期間中の吸入空気量Gaの平均値Gaaveに置換されてもよい。
ΔOSAKZ=0.23・Ga …(5)
ステップ1240:CPU71は下記(6)式に従って吸蔵酸素増加量OSAKZを更新する。即ち、CPU71は、現時点までに求められている吸蔵酸素増加量OSAKZに前記変化量ΔOSAKZを加えることにより新たな吸蔵酸素増加量OSAKZを推定する。
OSAKZ=OSAKZ+ΔOSAKZ …(6)
次に、CPU71はステップ1250に進み、吸蔵酸素増加量OSAKZが第3閾値k3・Cmax以上であるか否かを判定する。係数k3も上記第1閾値を決定する係数k1と同様、1/2から1までの間の値であって、例えば、3/4に設定されている。この第3閾値k3・Cmaxは「空燃比リッチ制御要求閾値」とも称呼される。そして、図13の時刻t1直後のように吸蔵酸素増加量OSAKZが第3閾値k3・Cmaxより小さいと、CPU71はステップ1250にて「No」と判定し、ステップ1295に直接進んで本ルーチンを一旦終了する。
これに対し、図13の時刻t2に示したように、吸蔵酸素増加量OSAKZが第3閾値k3・Cmax以上となったとき、CPU71はステップ1250にて「Yes」と判定してステップ1260に進み、空燃比リッチ制御要求フラグXRYKの値を「1」に設定する。その後、CPU71はステップ1295に直接進んで本ルーチンを一旦終了する。
フューエルカット制御中に吸蔵酸素増加量OSAKZが第3閾値k3・Cmax以上となったということは、触媒53の酸素吸蔵量が過大となっているため、触媒53はNOxを大量には浄化し難い状態となっていることを意味する。従って、第2制御装置は、このような場合、フューエルカット制御が停止した後に空燃比を理論空燃比よりもリッチ側の空燃比に制御し、それにより、触媒53の酸素吸蔵量をフューエルカット復帰後に速やかに低下させるように、空燃比リッチ制御要求フラグXRYKの値を「1」に設定する。
<空燃比リッチ制御開始判定>
所定のタイミングになると、CPU71は図14のステップ1400から処理を開始してステップ1410に進み、現時点が「フューエルカットフラグXFCの値が「1」から「0」へ変化した直後であるか否か」を判定する。即ち、CPU71は、現時点がフューエルカット復帰時点であるか否かを判定する。
図13に示した例においては時刻t3にてフューエルカット条件が成立する。従って、現時点が時刻t3以前であるとすると、フューエルカットフラグXFCの値は「1」に維持されている。このため、CPU71はステップ1410にて「No」と判定し、ステップ1495に直接進んで本ルーチンを一旦終了する。
一方、CPU71は図9に示したフューエルカット終了判定ルーチンを繰り返し実行しているので、時刻t3にてフューエルカット終了条件が成立するとフューエルカットフラグXFCの値を「1」から「0」に変更する(ステップ915を参照。)。これにより、フューエルカット制御が停止され、燃料の供給が再開される。このとき、CPU71が図14のステップ1410に進むと、CPU71はそのステップ1410にて「Yes」と判定してステップ1420に進み、空燃比リッチ制御要求フラグXRYKの値が「1」であるか否かを判定する。
図13に示した例においては空燃比リッチ制御要求フラグXRYKの値は時刻t2にて「1」に設定されている。従って、CPU71はステップ1420にて「Yes」と判定し、以下に述べるステップ1430乃至ステップ1450の処理を順に行い、ステップ1495に進んで本ルーチンを一旦終了する。なお、CPU71は、ステップ1420に進んだとき空燃比リッチ制御要求フラグXRYKの値が「0」であると、ステップ1495に直接進んで本ルーチンを一旦終了する。
ステップ1430:CPU71は、空燃比リッチ制御実行フラグXRICHの値を「1」に設定する。
ステップ1440:CPU71は、第1吸蔵酸素減少量OSAH1の値を「0(初期値)」に設定する。第1吸蔵酸素減少量OSAH1は後述するルーチンにより算出される。
ステップ1450:CPU71は、第2吸蔵酸素減少量OSAH2の値を「0(初期値)」に設定する。第2吸蔵酸素減少量OSAH2は後述するルーチンにより算出される。
<吸蔵酸素減少量(酸素放出量)の算出>
CPU71は、サンプリング時間tsampleが経過する毎に図15のステップ1500から処理を開始し、ステップ1505に進んで空燃比リッチ制御実行フラグXRICHの値が「1」であるか否かを判定する。このとき、空燃比リッチ制御実行フラグXRICHの値が「1」でなければ、CPU71はステップ1505にて「No」と判定し、ステップ1595に直接進んで本ルーチンを一旦終了する。
これに対し、図13の時刻t3直後においては空燃比リッチ制御実行フラグXRICHの値は「1」に設定されていて、空燃比リッチ制御が実行されている。この場合、CPU71はステップ1505にて「Yes」と判定してステップ1510に進み、直前のフューエルカット復帰後から現時点までに「空燃比センサ66の出力値Vabyfsと図2に示したテーブルMapabyfsとに基づいて求められる検出空燃比abyfs」が「理論空燃比近傍の所定値stioch+A」にまで一度でも低下したか否かを判定する。このステップは図7のステップ740と同じステップである。
フューエルカット復帰時点である図13の時刻t3から所定の期間が経過するまでは、空燃比センサ66にはフューエルカット中の排ガス(即ち、空気のみ)が到達している。また、フューエルカット復帰後の排ガスが空燃比センサ66に到達した場合であっても、空燃比センサ66の出力値Vabyfsはその排ガスの到達時点よりも僅かに遅れて変化する。従って、時刻t3の直後において、空燃比センサ66の出力値VabyfsとテーブルMapabyfsとに基づいて求められる検出空燃比abyfsは、フューエルカット復帰後において理論空燃比近傍の所定値stioch+A以下になっていない。
このため、CPU71は、ステップ1510にて「No」と判定してステップ1515に進み、後述するステップ1525にて「第1吸蔵酸素減少量(酸素放出量)OSAH1の変化量ΔOSAH1を計算する際に使用する計算用空燃比abyfc」に目標空燃比abyfrを設定する。この場合、目標空燃比abyfrは図3のステップ340にて目標リッチ空燃比abyfrichに設定されている。
これに対し、フューエルカット復帰時点から所定の時間(前述した「センサ応答遅れ時間」)が経過した時刻t4以降においては、空燃比センサ66は空燃比リッチ制御により機関10に供給された過濃な混合気の燃焼により生成された排ガスを遅滞なく検出している。従って、空燃比センサ66の出力値VabyfsとテーブルMapabyfsとに基づいて求められる検出空燃比abyfsは、フューエルカット復帰後において理論空燃比近傍の所定値stioch+A以下となる。この場合、CPU71は、ステップ1510にて「Yes」と判定し、ステップ1520に進んで「計算用空燃比abyfc」に検出空燃比abyfsを設定する。
そして、CPU71は、以下に述べるステップ1525乃至ステップ1540の処理を順に行い、ステップ1595に進んで本ルーチンを一旦終了する。
ステップ1525:CPU71は、下記(7)式に基づいて第1吸蔵酸素減少量OSAH1の変化量ΔOSAH1を計算する。下記(7)式は上記(4)式と同様の考えに基づく式である。(7)式において値「0.23」は、大気中に含まれる酸素の重量割合である。mfrは所定時間(サンプリング時間tsample)内の燃料噴射量Fiの合計量(計算周期tsample内において機関10に供給された燃料の総量)である。
ΔOSAH1=0.23・mfr・(stoich − abyfc) …(7)
ステップ1530:CPU71は、下記(8)式に従って第1吸蔵酸素減少量OSAH1を更新する。即ち、CPU71は、現時点までに求められている第1吸蔵酸素減少量OSAH1に前記変化量ΔOSAH1を加えることにより新たな第1吸蔵酸素減少量OSAH1を推定する。
OSAH1=OSAH1+ΔOSAH1 …(8)
ステップ1535:CPU71は、下記(9)式に基づいて第2吸蔵酸素減少量OSAH2の変化量ΔOSAH2を計算する。下記(9)式において値「0.23」及び値mfrは上記(7)式と同じ値である。値kosaは正の値であって、空燃比センサ66の空燃比検出公差(製造上のバラツキの最大値)である。即ち、製造される空燃比センサ66の中には、実際の空燃比abyf1を「検出空燃比(abyf1+kosa)」として検出するセンサが含まれている。
ΔOSAH2=0.23・mfr・{stoich − (abyfr + kosa)} …(9)
ステップ1540:CPU71は、下記(10)式に従って第2吸蔵酸素減少量OSAH2を更新する。即ち、CPU71は、現時点までに求められている第2吸蔵酸素減少量OSAH2に前記変化量ΔOSAH2を加えることにより新たな第2吸蔵酸素減少量OSAH2を推定する。
OSAH2=OSAH2+ΔOSAH2 …(10)
上記(9)式は、製造上、最もリーン側の出力を発生し易い空燃比センサ66を用いて、その空燃比センサ66が「応答遅れ期間」がない状態において「触媒53に流入する排ガスの空燃比」を検出したと仮定した場合における、フューエルカット復帰後(空燃比リッチ制御実行開始後)の酸素吸蔵量の減少量の変化量(酸素放出量の変化量)を表す値である。
このように、上記(9)式及び上記(10)式に基づいて推定される第2吸蔵酸素減少量OSAH2は、フューエルカット復帰後において触媒53から放出される酸素量を「空燃比検出精度が公差範囲内において最もリーンずれしている空燃比センサ(応答遅れなし)」で計測した値に基づいて求めた値である。即ち、第2吸蔵酸素減少量OSAH2は、フューエルカット復帰時点以降において、目標空燃比abyfrに空燃比センサ66の空燃比検出公差に相当する空燃比kosaを加えた「仮想空燃比」に基づいて、触媒53から放出された酸素の量である「仮想放出量」と言うこともできる。
従って、フューエルカット復帰後において最低でもその第2吸蔵酸素減少量OSAH2分の酸素は触媒53から放出されているはずであるから、後述するようにこの第2吸蔵酸素減少量OSAH2が所定の閾値(第4閾値k4・Cmax、即ち、第5閾値)に到達した場合には、第1吸蔵酸素減少量OSAH1が所定の閾値(第4閾値k4・Cmax)に到達していない場合においても、空燃比リッチ制御を終了する。これにより、空燃比リッチ制御が必要以上に継続されないので、触媒53の酸素吸蔵量が過小にならない。従って、エミッションを良好に維持することが可能となる。
<空燃比リッチ制御終了判定>
所定のタイミングになると、CPU71は図16のステップ1600から処理を開始してステップ1610に進み、空燃比リッチ制御実行フラグXRICHの値が「1」であるか否かを判定する。そして、空燃比リッチ制御実行フラグXRICHの値が「1」でなければ、CPU71はステップ1610にて「No」と判定し、ステップ1695に直接進んで本ルーチンを一旦終了する。
これに対し、空燃比リッチ制御実行フラグXRICHの値が「1」であると、CPU71はステップ1610にて「Yes」と判定し、ステップ1620に進んで第1吸蔵酸素減少量OSAH1の値が第4閾値k4・Cmax以上であるか否かを判定する。係数k4は1/2から1までの間の値であって、例えば、3/4に設定されている。第4閾値k4・Cmaxは、フューエルカット復帰後の空燃比リッチ制御により、触媒53から放出された酸素量が十分な量に達したので、これ以上空燃比リッチ制御を実行することは逆に酸素吸蔵量が過小になるために好ましくないと判断できる値に設定されている。この第4閾値k4・Cmaxは「空燃比リッチ制御終了閾値」とも称呼される。
そして、第1吸蔵酸素減少量OSAH1が第4閾値k4・Cmax以上であると、CPU71はステップ1620にて「Yes」と判定し、以下に述べるステップ1630及びステップ1640の処理を順に行い、ステップ1695に進んで本ルーチンを一旦終了する。
ステップ1630:CPU71は、空燃比リッチ制御実行フラグXRICHの値を「0」に設定する。
ステップ1640:CPU71は、空燃比リッチ制御要求フラグXRYKの値を「0」に設定する。
これにより空燃比リッチ制御が終了し、機関の空燃比は理論空燃比に制御される。
一方、ステップ1620の判定時において第1吸蔵酸素減少量OSAH1が第4閾値k4・Cmaxより小さい場合、CPU71はステップ1620にて「No」と判定してステップ1650に進み、第2吸蔵酸素減少量OSAH2が第4閾値k4・Cmax(第5閾値)以上となったか否かを判定する。そして、第2吸蔵酸素減少量OSAH2が第4閾値k4・Cmax以上となっていれば、CPU71はステップ1650にて「Yes」と判定し、上記ステップ1630及びステップ1640の処理を実行する。これにより空燃比リッチ制御が終了し、機関の空燃比は理論空燃比に制御される。なお、この第5閾値(本例においては第4閾値k4・Cmaxと等しい。)は「空燃比リッチ制御強制終了閾値」とも称呼される。
これに対し、第2吸蔵酸素減少量OSAH2が第4閾値k4・Cmaxより小さいと、CPU71はステップ1650にて「No」と判定し、ステップ1695に直接進んで本ルーチンを一旦終了する。
以上、説明したように、第2制御装置は、第1制御装置と同様の燃料供給量変更手段(図3のステップ310乃至ステップ340、図5のステップ505乃至ステップ540を参照。)と、フューエルカット手段(図3のステップ305、図6のルーチン及び図9のルーチンを参照。)と、を備えている。
更に、第2制御装置は、
前記フューエルカット制御中に触媒53に吸蔵される酸素の増加量である吸蔵酸素増加量OSAKZを推定する吸蔵酸素増加量推定手段(図12のステップ1210、ステップ1230及びステップ1240を参照。)と、
フューエルカット制御が解除されたフューエルカット復帰時点以降において触媒53から放出される酸素の放出量である吸蔵酸素減少量OSAH1を推定する吸蔵酸素減少量推定手段(図14のステップ1440、図15のステップ1505乃至ステップ1530を参照。)と、
フューエルカット制御中に推定された吸蔵酸素増加量OSAKZが所定の第3閾値k3・Cmax以上となったとき空燃比リッチ制御要求を発生する(空燃比リッチ制御実行フラグXRICHを「1」に設定する)空燃比リッチ制御要求発生手段(図12のステップ1250及びステップ1260を参照。)と、を備えている。
加えて、第2制御装置は、
(1)フューエルカット制御が解除されたフューエルカット復帰時点において空燃比リッチ制御要求が発生していれば目標空燃比abyfrを理論空燃比よりもリッチ側の目標リッチ空燃比abyfrに設定するとともに(図14のルーチンにおける空燃比リッチ制御実行フラグXRICHの「1」への設定、図3のルーチンのステップ315及びステップ340を参照。)、(2)フューエルカット復帰時点以降において推定される吸蔵酸素減少量OSAH1が所定の第4閾値k4・Cmax以上となったとき目標空燃比abyfrを理論空燃比stoichに設定し(図16のルーチンのステップ1630における空燃比リッチ制御実行フラグXRICHの「0」への設定、図3のルーチンのステップ315及びステップ320を参照。)、更に、(3)フューエルカット復帰時点において空燃比リッチ制御要求が発生していなければ目標空燃比abyfrを理論空燃比stoichに設定する(図14のルーチンのステップ1410、ステップ1420、図3のルーチンのステップ315及びステップ320を参照。)目標空燃比設定手段を備えている。
そして、第2制御装置の前記吸蔵酸素減少量推定手段は、フューエルカット復帰時点から所定の期間(上記応答遅れ期間)が経過するまでは(図15のステップ1510を参照。)、目標空燃比abyfrに基づいて吸蔵酸素減少量OSAH1を推定し(図15のステップ1515、ステップ1525及びステップ1530を参照。)、その所定の期間が経過した後は空燃比センサ66の出力に基づいて吸蔵酸素減少量OSAH1を推定する(図15のステップ1510、ステップ1520、ステップ1525及びステップ1530を参照。)。
従って、第2制御装置は、第1制御装置と同様、フューエルカット復帰後の「応答遅れ期間」中は空燃比センサ66の出力に基づく検出空燃比abyfsに代えて、目標空燃比abyfrを用いて吸蔵酸素減少量OSAH1を推定する。更に、その応答遅れ期間の経過後、第2制御装置は、空燃比センサ66の出力に基づく検出空燃比abyfsに基づいて吸蔵酸素減少量OSAH1を推定する。この結果、吸蔵酸素減少量(酸素放出量)OSAH1の推定精度が向上するので、空燃比リッチ制御を適切なタイミングにて終了することができる。
また、第2制御装置は、
フューエルカット復帰時点以降において目標空燃比abyfrが目標リッチ空燃比abyfrichに設定されている場合(図15のステップ1505を参照。)、目標空燃比abyfrに空燃比センサ66の空燃比検出公差に相当する空燃比kosaを加えた仮想空燃比に基づいて「触媒53から放出される酸素の仮想放出量」を算出する仮想放出量算出手段(図15のステップ1535及びステップ1540を参照。)を備えている。
そして、第2制御装置の目標空燃比設定手段は、算出された仮想放出量OSAH2が第5閾値(本例では第4閾値k4・Cmaxと同じ。)以上となったとき目標空燃比abyfrを理論空燃比stoichに変更するように構成されている(図16のルーチンのステップ1650及びステップ1630による空燃比リッチ制御実行フラグXRICHの「0」への設定、図3のルーチンのステップ315及びステップ320を参照。)。
前述したように、フューエルカット復帰後において、最低でも「その仮想放出量OSAH2に相当する量の酸素が触媒53から放出されている」と考えることができる。従って、第2制御装置は、吸蔵酸素減少量OSAH1が第4閾値k4・Cmax以上になっていなくとも、仮想放出量OSAH2が第5閾値(k4・Cmax)以上となったとき、空燃比リッチ制御を強制的に終了する。この結果、フューエルカット復帰後の空燃比リッチ制御が必要以上に継続されることがないので、触媒53の酸素吸蔵量が過小にならない。よって、エミッションを良好に維持することが可能となる。
以上、説明したように、本発明の各実施形態に係る内燃機関の空燃比制御装置は、フューエルカット復帰後の空燃比リッチ制御を適切なタイミングにて終了させることができる。
本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、図7のステップ740及び図15のステップ1510は、フューエルカット復帰時点から所定の閾値時間が経過したか否かを判定するためのステップに置換されてもよい。この場合、閾値時間は上記空燃比センサ66の「応答遅れ期間」に対応する時間であり、一定値でもよく、吸入空気量Ga及び/又は機関回転速度NE等に基づいて可変となるように設定されてもよい。
更に、第1制御装置は、フューエルカット実行中でない場合に、燃料量mfrと計算用空燃比abyfcとを用いて酸素吸蔵量OSAを求めていた。これに対し、第1制御装置は、吸入空気量Gaと計算用空燃比abyfcとに基づいて酸素吸蔵量OSAを求めてもよい。この場合、例えば、OSA=0.23・Ga・(stoich − abyfc)/abyfcの計算式により求めた酸素減少量OSAの変化量ΔOSAを(3)式に従って積算し、酸素吸蔵量OSAH1を求めることができる。
同様に、第2制御装置は、フューエルカット実行中でない場合に、燃料量mfrと計算用空燃比abyfcとを用いて第1吸蔵酸素減少量OSAH1を求めていた。これに対し、第2制御装置は、吸入空気量Gaと計算用空燃比abyfcとに基づいて第1吸蔵酸素減少量OSAH1を求めてもよい。この場合、例えば、ΔOSAH1=0.23・Ga・(stoich − abyfc)/abyfcの計算式により求めた第1吸蔵酸素減少量OSAH1の変化量ΔOSAH1を(8)式に従って積算し、第1吸蔵酸素減少量OSAH1を求めることができる。同様に、第2吸蔵酸素減少量OSAH2を、吸入空気量Gaと、目標空燃比abyfrに空燃比センサ66の空燃比検出公差に相当する空燃比kosaを加えた「仮想空燃比」と、に基づいて求めても良い。この場合、例えば、ΔOSAH2=0.23・Ga・{stoich−(abyfr +
kosa)}/(abyfr+kosa)の計算式により求めた第2吸蔵酸素減少量OSAH2の変化量ΔOSAH2を(10)式に従って積算し、第2吸蔵酸素減少量OSAH2を求めることができる。
また、上記第1閾値〜第4閾値は、最大酸素吸蔵量Cmaxに依存しない一定値であってもよい。この場合、第1閾値は第2閾値よりも大きい値に設定されることが好ましい。また、第4閾値は第3閾値よりも小さい値に設定されることが好ましい。更に、第1制御装置は、第2制御装置と同様、フューエルカット復帰後(空燃比リッチ制御の開始後)から「目標空燃比abyfrと空燃比センサ66の公差kosa」とを用いて「前述した酸素吸蔵量OSAとは異なる酸素吸蔵量OSAB」を推定しておき、その酸素吸蔵量OSABが所定値にまで低下した場合に空燃比リッチ制御を強制的に停止するように構成されてもよい。また、第1制御装置は第2制御装置と同様、上記第2吸蔵酸素減少量OSAH2を算出し、その第2吸蔵酸素減少量OSAH2が第5閾値以上になったとき、酸素吸蔵量OSAが第2閾値以下に低下していない場合であっても、空燃比リッチ制御を停止するように構成されてもよい。加えて、空燃比リッチ制御における目標空燃比abyfrichは一定値でなくてもよく、例えば、酸素吸蔵量OSAが大きいほどよりリッチ側の空燃比に設定されてもよい。
また、第2実施形態における第5閾値は、第4閾値k4・Cmaxと同一であったが、異なる値であってもよい。但し、第5閾値は第3閾値より大きい値であることが好ましい。
更に、本発明による空燃比制御装置は、触媒53の下流の排気通路に下流側触媒を備えるとともに、排気通路であって触媒53とその下流側触媒との間に配設された下流側空燃比センサを備え、この下流側空燃比センサの出力により上記フィードバック制御に加えてサブフィードバック制御を実行してもよい。
この場合、サブフィードバック制御は、特開2007−278186号公報に開示されているように下流側空燃比センサの出力値Voxsが下流側目標値に一致するように、空燃比センサ66によって検出される空燃比を見かけ上補正するような態様であってもよい。また、サブフィードバック制御は、特開平06−010738号公報に開示されているように、空燃比センサ66の出力値に応じて作成される空燃比補正係数を下流側空燃比センサの出力値Voxsに基づいて変更する態様であってもよい。
更に、上記第1制御装置は、上記下流側空燃比センサを備える場合、この下流側空燃比センサの出力により示される空燃比が理論空燃比よりもリーン側の空燃比から明らかにリッチ側の空燃比へと変化した場合、推定される酸素吸蔵量OSAの値を「0」に設定するように構成されていてもよい。
なお、第1及び第2制御装置における「燃料供給量変更手段」は、目標空燃比abyfrと筒内吸入空気量Mc(k)とに基づいて機関の空燃比を目標空燃比abyfrに一致させるための燃料供給量(燃料噴射量Fi)を決定する手段と言うこともできる。
また、第1制御装置の酸素吸蔵量推定手段及び第2制御装置の吸蔵酸素減少量推定手段は、フューエルカット復帰後に上記応答遅れ時間が経過するまでは目標空燃比abyfrと理論空燃比stoichiと燃料供給量mfrとから酸素の不足量(ΔOSA)を求め、その不足量を積算する手段であると言うこともできる。或いは、第1制御装置の酸素吸蔵量推定手段及び第2制御装置の吸蔵酸素減少量推定手段は、フューエルカット復帰後に上記応答遅れ時間が経過するまでは目標空燃比abyfrと理論空燃比stoichiと吸入空気量Gaとから酸素の不足量(ΔOSA)を求め、その不足量を積算する手段であってもよい。
更に、第1制御装置の酸素吸蔵量推定手段及び第2制御装置の吸蔵酸素減少量推定手段は、フューエルカット復帰後に上記応答遅れ時間が経過した後は、検出空燃比abyfrと理論空燃比stoichiと燃料供給量mfrとから酸素の不足量(ΔOSA)を求め、その不足量を積算する手段であると言える。或いは、第1制御装置の酸素吸蔵量推定手段及び第2制御装置の吸蔵酸素減少量推定手段は、フューエルカット復帰後に上記応答遅れ時間が経過した後は、目標空燃比abyfrと理論空燃比stoichiと吸入空気量Gaとから酸素の不足量(ΔOSA)を求め、その不足量を積算する手段であってもよい。
加えて、第1制御装置及び第2制御装置は、フューエルカット復帰時点以降において必ず空燃比リッチ制御を実施するように構成してもよい。また、第1制御装置及び第2制御装置は、フューエルカット制御の継続時間を測定し、その測定された継続時間が所定時間以上であるときに触媒53の酸素吸蔵量が過大となったと判断して空燃比リッチ制御実行フラグXRICHの値を「1」に設定し、それにより空燃比リッチ制御要求を発生するように構成されてもよい。
更に、第1制御装置は、フューエルカット制御中において第2制御装置のように吸蔵酸素増加量OSAKZを推定し、その吸蔵酸素増加量OSAKZが第3閾値k3・Cmax(空燃比リッチ制御要求閾値)以上となったときに空燃比リッチ制御実行フラグXRICHの値を「1」に設定し、それにより空燃比リッチ制御要求を発生するように構成され得る。同様に、第2の制御装置は、第1制御装置のように酸素吸蔵量OSAを別途推定し、フューエルカット制御中においてその酸素吸蔵量OSAが第1閾値k1・Cmax(空燃比リッチ制御要求閾値)以上となったときに空燃比リッチ制御実行フラグXRICHの値を「1」に設定するこ設定し、それにより、空燃比リッチ制御要求を発生するように構成されてもよい。
このように、第1制御装置の目標空燃比設定手段は、「フューエルカット制御が解除されたフューエルカット復帰時点から前記目標空燃比を理論空燃比よりもリッチ側の目標リッチ空燃比に設定するとともに同フューエルカット復帰時点以降において前記推定される酸素吸蔵量が所定の空燃比リッチ制御終了閾値以下となったとき前記目標空燃比を理論空燃比に設定する」手段であると言うことができる。
同様に、第2制御装置の目標空燃比設定手段は、「フューエルカット復帰時点から前記目標空燃比を理論空燃比よりもリッチ側の目標リッチ空燃比に設定するとともに同フューエルカット復帰時点以降において前記推定される吸蔵酸素減少量が所定の空燃比リッチ制御終了閾値以上となったとき前記目標空燃比を理論空燃比に設定する」手段であると言うことができる。
なお、上記第1制御装置において、触媒53の下流の排気通路に下流側触媒を備えるとともに、排気通路であって触媒53とその下流側触媒との間に配設された下流側空燃比センサを備え、この下流側空燃比センサの出力が理論空燃比から僅かにリッチ側の空燃比に対応する値と一致するように周知のサブフィードバック制御を実行してもよい。このような場合、目標空燃比abyfrが理論空燃比に設定され、且つ、上記フィードバック制御及びサブフィードバック制御が実行されている間、検出空燃比abyfsの僅かな空燃比検出誤差が積算されることによって酸素吸蔵量OSAが過大になることを回避するために、酸素吸蔵量OSAは検出空燃比abyfsに関わらず所定時間の経過毎に微小量ずつ減少するように計算されてもよい。
10…内燃機関、20…シリンダブロック部、25…燃焼室、30…シリンダヘッド部、37…点火プラグ、39…インジェクタ、40…吸気系統、50…排気系統、51…エキゾーストマニホールド、52…エキゾーストパイプ、53…触媒、61…エアフローメータ、66…空燃比センサ、70…電気制御装置、71…CPU。