以下、本発明による内燃機関の制御装置の各実施形態について図面を参照しつつ説明する。
(第1実施形態)
図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を備えている。燃料噴射手段としてのインジェクタ39は、噴射指示信号に応答して同噴射指示信号に含まれる指示噴射量の燃料を噴射するようになっている。
吸気系統40は、インテークマニホールド41、吸気管(吸気ダクト)42、エアフィルタ43、スロットル弁44及びスロットル弁アクチュエータ44aを備えている。
インテークマニホールド41は、各気筒の燃焼室25の吸気ポート31に接続されている。より詳細には、図2に示したように、インテークマニホールド41は各吸気ポートに接続された複数の枝部41aと、それらの枝部41aが集合したサージタンク部41bと、を備えている。図1及び図2に示したように、吸気管42はサージタンク部41bに接続されている。インテークマニホールド41及び吸気管42は吸気通路を構成している。図1に示したエアフィルタ43は吸気管42の端部に設けられている。スロットル弁44は吸気管42に回動可能設けられ、回動することにより吸気管42が形成する吸気通路の開口断面積を変更するようになっている。スロットル弁アクチュエータ(スロットル弁駆動手段)44aは、DCモータからなり、指示信号に応答してスロットル弁44を回転駆動するようになっている。
排気系統50は、エキゾーストマニホールド51、エキゾーストパイプ(排気管)52、上流側触媒53、微粒子捕集フィルタ54及び下流側触媒55を備えている。
エキゾーストマニホールド51は、図1に示したように、各気筒の燃焼室25の排気ポート34に接続されている。より詳細には、図2に示したように、エキゾーストマニホールド51は各排気ポートに接続された複数の枝部51aと、それらの枝部51aが集合した集合部51bと、を備えている。エキゾーストパイプ52は、エキゾーストマニホールド51の集合部51bに接続されている。エキゾーストマニホールド51及びエキゾーストパイプ52は排気経路を構成している。なお、本明細書において、エキゾーストマニホールド51の集合部51bとエキゾーストパイプ52とが形成する排気経路を、便宜上「排気通路」と称呼する。
上流側触媒53は、セラミックからなる担持体に「触媒物質である貴金属」及び「セリア(CeO2)」を担持していて、酸素吸蔵・放出機能(単に「酸素吸蔵機能」又は「O2ストレージ機能」とも称呼する。)を有する三元触媒である。上流側触媒53はエキゾーストパイプ52に配設(介装)されている。換言すると、上流側触媒53は排気通路の集合部(エキゾーストマニホールド51の集合部51b)よりも下流の排気通路に配設されている。上流側触媒53は、スタート・キャタリティック・コンバータ(SC)又は第1触媒とも称呼される。
微粒子捕集フィルタ54はセラミックからなる周知の微粒子フィルタであり、機関10から排出される微粒子を捕集するようになっている。微粒子捕集フィルタ54は、上流側触媒53よりも下流の位置において排気通路(エキゾーストパイプ52)に配設(介装)されている。微粒子捕集フィルタ54はパティキュレート・マター・フィルタ(PMF)とも称呼される。なお、微粒子捕集フィルタ54は、上流側触媒53よりも上流の位置であって、排気通路の集合部(エキゾーストマニホールド51の集合部51b)よりも下流の排気通路に配設されていてもよい。
下流側触媒55は、上流側触媒53と同様、セラミックからなる担持体に貴金属(触媒物質)及びセリア(CeO2)を担持していて、酸素吸蔵機能を有する三元触媒である。下流側触媒55は微粒子捕集フィルタ54よりも下流の位置において排気通路(エキゾーストパイプ52)に配設(介装)されている。即ち、排気通路には、上流側触媒53、微粒子捕集フィルタ54及び下流側触媒55が、上流から下流に向けて順に直列に配設されている。下流側触媒55は、車両のフロア下方に配設されているため、アンダ・フロア・キャタリティック・コンバータ(UFC)又は第2触媒とも称呼される。
上流側触媒53及び下流側触媒55を構成する三元触媒は、図3に示したように、三元触媒に流入するガスの空燃比が所謂「ウインドウW」の範囲内にあるとき、未燃物(HC,CO等)を酸化するとともに窒素酸化物(NOx)を還元することにより、これらの有害成分を高い効率で浄化する特性(触媒機能)を有する。
また、三元触媒は、酸素吸蔵機能により、空燃比が理論空燃比からある程度まで偏移したとしても、HC、CO及びNOxを浄化することができる。即ち、機関の空燃比が理論空燃比よりもリーン側の空燃比となって三元触媒に流入するガスにNOxが多量に含まれると、触媒はNOxから酸素分子を奪って(NOxを還元し)、その奪った酸素分子を吸蔵する。このような状態は、三元触媒が「実質的に還元剤(還元成分)を保持している状態である。」と表現することもできる。また、機関の空燃比が理論空燃比よりもリッチ側の空燃比になって三元触媒に流入するガスにHC,CO等の未燃物(還元成分)が多量に含まれると、三元触媒は吸蔵している酸素分子をこれらの未燃物に対して与え、これらの成分を酸化(浄化)する。このような状態は、三元触媒が「実質的に酸化剤(酸化成分)を保持している状態である。」と表現することもできる。
更に、このシステムは、図1に示したように、熱線式エアフローメータ61、スロットルポジションセンサ62、カムポジションセンサ63、クランクポジションセンサ64、水温センサ65、上流側空燃比センサ66、下流側空燃比センサ67及びアクセル開度センサ68を備えている。
熱線式エアフローメータ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は、図2に示したように、エキゾーストマニホールド51の集合部51bと上流側触媒53との間の位置においてエキゾーストマニホールド51及びエキゾーストパイプ52の何れか(即ち、排気通路)に配設されている。上流側空燃比センサ66は、上流側空燃比センサ66が配設された排気通路内の部位を流れる排ガス(被検出ガス)の空燃比に応じた出力値を出力するようになっている。
より具体的に述べると、上流側空燃比センサ66は限界電流式の酸素濃度センサである。上流側空燃比センサ66は、図4に示したように、被検出ガスの空燃比A/F(従って、機関に供給される混合気の空燃比)に応じた電圧である出力値Vabyfsを出力するようになっている。この出力値Vabyfsは、被検出ガスの空燃比が理論空燃比であるときに値Vstoichに一致する。出力値Vabyfsは、被検出ガスの空燃比が大きくなる(リーンとなる)ほど増大する。
後述する電気制御装置70は、図4により示したテーブル(マップ)Mapabyfsを記憶していて、そのテーブルに実際の出力値Vabyfsを適用することによって空燃比を検出する(検出空燃比を取得する)ようになっている。即ち、上流側空燃比センサ66は、上流側触媒53及び微粒子捕集フィルタ54のうちの排気通路の上流側に配設された方(本例においては上流側触媒53)に流入するガスの空燃比である上流側空燃比を取得する上流側空燃比取得手段の一部を構成している。
下流側空燃比センサ67は、図1及び図2に示したように、微粒子捕集フィルタ54と下流側触媒55との間の位置においてエキゾーストパイプ52(排気通路)に配設されている。下流側空燃比センサ67は、下流側空燃比センサ67が配設された排気通路内の部位を流れる排ガス(被検出ガス)の空燃比に応じた出力値を出力するようになっている。即ち、下流側空燃比センサ67は、上流側触媒53及び微粒子捕集フィルタ54のうちの排気通路の下流側に配設された方(本例においては微粒子捕集フィルタ54)から流出するガスの空燃比である下流側空燃比afdownを取得する下流側空燃比取得手段の一部を構成している。
より具体的に述べると、下流側空燃比センサ67は起電力式(濃淡電池式)の酸素濃度センサである。従って、下流側空燃比センサ67は、酸素濃度センサ67とも称呼される。下流側空燃比センサ67は、図5に示したように、理論空燃比近傍において急変する電圧である出力値Voxsを出力する。即ち、下流側空燃比センサ67は、被検出ガスの空燃比が理論空燃比よりも大きくリーン側の空燃比であるときに略0.1(V)、被検出ガスの空燃比が理論空燃比よりも大きくリッチ側の空燃比であるときに略0.9(V)、空燃比が理論空燃比のときは0.5(V)の電圧を出力するようになっている。更に、下流側空燃比センサ67は、被検出ガスの空燃比が理論空燃比近傍の空燃比(前述した、三元触媒のウインドウWに実質的に対応する空燃比)であるとき、被検出ガスの空燃比がリッチからリーンに変化するに従って急激に減少する(略0.9(V)から略0.1(V)に向けて変化する)電圧を出力するようになっている。なお、下流側空燃比センサ67の出力値Voxsに基づいて得られる下流側空燃比afdownは、図5に示した出力値Voxsと下流側空燃比afdownとの関係を表す関数をfとするとき、afdown=f(Voxs)により求められる。
再び、図1を参照すると、アクセル開度センサ68は、運転者によって操作されるアクセルペダル81の操作量を検出し、アクセルペダル81の操作量Accpを表す信号を出力するようになっている。
電気制御装置70は、互いにバスで接続されたCPU71、CPU71が実行するルーチン(プログラム)、テーブル(ルックアップテーブル、マップ)及び定数等を予め記憶したROM72、CPU71が必要に応じてデータを一時的に格納するRAM73、電源が投入された状態でデータを格納するとともに格納したデータを電源が遮断されている間も保持するバックアップRAM74、並びに、ADコンバータを含むインターフェース75等からなるマイクロコンピュータである。
インターフェース75は、前記センサ61〜68と接続され、CPU71にセンサ61〜68からの信号を供給するとともに、CPU71の指示に応じて可変吸気タイミング装置33のアクチュエータ33a、イグナイタ38、インジェクタ39及びスロットル弁アクチュエータ44a等に駆動信号(指示信号)を送出するようになっている。
(空燃比制御の概要)
次に、上記のように構成された第1制御装置による空燃比制御の概要について説明する。第1制御装置は、メインフィードバック制御及びサブフィードバック制御等を含む空燃比制御(燃料噴射量制御)を実行する。
<メインフィードバック制御の概要>
第1制御装置は、メインフィードバック制御条件が成立したとき、上流側空燃比センサ66の出力値Vabyfsに基づいて取得された上流側空燃比abyfsが上流側目標空燃比abyfr(メインフィードバック目標値)に一致するように機関に供給される混合気の空燃比をフィードバック制御(メインフィードバック制御)する。本例において、メインフィードバック制御条件は、上流側空燃比センサ66が活性化しているときに成立し、その他の場合に不成立となる。なお、メインフィードバック制御条件には、他の条件が加えられてもよい。
上流側目標空燃比abyfrは「通常空燃比フィードバック制御時」において「理論空燃比を含む所定の空燃比範囲内の空燃比(本例においては理論空燃比)」に設定される。この「理論空燃比を含む所定の空燃比範囲」とは、上述した「ウインドウW」のことである。
更に、上流側目標空燃比abyfrは、図6に示したように、後に詳述する「空燃比強制振動制御時」において「強制リーン空燃比afenL」及び「強制リッチ空燃比afenR」に時間の経過に伴って交互に変化させられる。
<サブフィードバック制御の概要>
第1制御装置は、サブフィードバック制御条件が成立したとき、下流側空燃比センサ67の出力値Voxsが、下流側目標空燃比に相当する値である下流側目標値Voxsrefに一致するように、機関に供給される混合気の空燃比をフィードバック制御(サブフィードバック制御)する。換言すると、サブフィードバック制御は、下流側空燃比センサ67の出力値Voxsにより表される下流側空燃比afdownが、下流側目標値Voxsrefにより表される下流側目標空燃比に一致するように機関に供給される混合気の空燃比(燃料量)を調整するフィードバック制御である。サブフィードバック制御は、例えば、下流側空燃比センサ67の出力値Voxsと下流側目標値Voxsrefとの偏差(出力偏差量DVoxs)をPI(比例・積分)制御又はPID(比例・積分、微分)制御によって「0」に一致させようとする制御である。本例において、サブフィードバック制御条件は、下流側空燃比センサ67が活性化していて、且つ、上記通常空燃比フィードバック制御が実行中であるときに成立し、その他の場合に不成立となる。なお、サブフィードバック制御条件には、他の条件が加えられてもよい。
下流側目標値Voxsrefは、図5に示したように、下流側空燃比センサ67が配設された位置を通過するガス(被検出ガス)の空燃比が理論空燃比より僅かな所定値ΔAFだけリッチ側の空燃比AFRに相当する空燃比であるときに下流側空燃比センサ67が出力するべき値(例えば、Voxsref=Vrich=0.55V)に設定されている。これにより、機関10に供給される混合気の空燃比、即ち、下流側触媒55に流入するガスの空燃比の平均(中心、中央値)は理論空燃比よりも僅かにリッチ側の空燃比(以下、「弱リッチ空燃比AFR」とも称呼する。)に一致させられる。
この弱リッチ空燃比AFRは、図3に示したように、ウインドウWの範囲内であって理論空燃比よりも僅かにリッチ側の空燃比である。このように、機関に供給される混合気の空燃比の平均を弱リッチ空燃比AFRに制御するのは、下流側触媒55及び上流側触媒53等の三元触媒の「未燃物の浄化率」が、機関の空燃比がウインドウWの範囲より僅かにリッチ側に偏移しても比較的緩やかに低下するのに対し、三元触媒の「窒素酸化物の浄化率」は機関の空燃比がウインドウWの範囲より僅かにリーン側に偏移すると急激に低下するからである。
なお、上流側目標空燃比abyfrが理論空燃比に設定された状態にてメインフィードバック制御が実行され、且つ、下流側目標値Voxsrefが弱リッチ空燃比AFRに相当する値Vrichに設定された状態にてサブフィードバック制御が実行される空燃比制御は、「通常空燃比フィードバック制御」、「空燃比弱リッチ制御」又は「理論空燃比近傍制御」とも称呼される。
更に、下流側目標値Voxsrefは、下流側空燃比センサ67が配設された位置を通過するガス(被検出ガス)の空燃比が理論空燃比であるときに下流側空燃比センサ67が出力するべき値(以下、「理論空燃比相当値Voxsst」とも称呼し、例えば、Voxsref=Voxsst=0.5)に設定されてもよい。これにより、機関10に供給される混合気の空燃比、即ち、下流側触媒55に流入するガスの空燃比の平均(中心、中央値)は理論空燃比に一致させられる。上流側目標空燃比abyfrが理論空燃比に設定された状態にてメインフィードバック制御が実行され、且つ、下流側目標値Voxsrefが理論空燃比に相当する値Voxsstに設定された状態にてサブフィードバック制御が実行される空燃比制御は、「通常空燃比フィードバック制御」又は「理論空燃比近傍制御」とも称呼される。
<空燃比強制振動制御(微粒子捕集フィルタ再生制御)>
ところで、微粒子捕集フィルタ54は微粒子を捕集するほと微粒子の捕集能力が低下する。逆に、微粒子捕集フィルタ54に捕集された微粒子を微粒子捕集フィルタ54内において燃焼させれば、微粒子捕集フィルタ54の微粒子捕集能力は復帰する。即ち、微粒子捕集フィルタ54を再生させることができる。微粒子捕集フィルタ54内に捕集された微粒子を燃焼させるためには、
(1)微粒子捕集フィルタ54内が高温であること、及び、
(2)微粒子捕集フィルタ54に酸素が供給されること、
が必要である。
一般に、理論空燃比近傍の空燃比にて運転されるガソリン機関が通常の運転状態(始動直後等を除く運転状態)にあるとき、微粒子捕集フィルタ54内の温度は捕集された微粒子を燃焼させるのに十分な程度の高い温度になる。一方、フューエルカット制御が行われると、機関10から多量の酸素を含む空気が排出される。従って、フューエルカット制御が所定時間以上継続して実行されると、上流側触媒53の酸素吸蔵量OSA1は上流側触媒53の最大酸素吸蔵量Cmax1に到達し、酸素が上流側触媒53から流出し始める。上流側触媒53から流出した酸素は微粒子捕集フィルタ54内に流入する。
この結果、微粒子捕集フィルタ54内は高温であり且つ微粒子捕集フィルタ54に酸素が供給されるので、微粒子捕集フィルタ54に捕集されていた微粒子が微粒子捕集フィルタ54内において燃焼し、微粒子捕集フィルタ54は再生される。しかしながら、フューエルカット制御がどのような頻度にて実行されるか、及び、フューエルカット制御時間がどの程度に及ぶか、は機関10の運転がどのように行われるかに依存する。従って、フューエルカット制御のみによって微粒子捕集フィルタ54を再生させることを常に期待することは適当ではない。
そこで、フューエルカット制御が実行されていないときに機関10の空燃比を強制的にリーン空燃比に設定することにより、機関10から比較的多量の酸素を排出させ、それによって微粒子捕集フィルタ54に酸素を供給する(微粒子を燃焼させて微粒子捕集フィルタ54を再生させる)ことが有効であると考えられる。
ところで、このように機関の空燃比をリーン空燃比に設定する場合においても、微粒子捕集フィルタ54に酸素を供給するためには、先ず、上流側触媒53の酸素吸蔵量OSA1を上流側触媒53の最大酸素吸蔵量Cmax1に到達させることにより、上流側触媒53から酸素を流出させなければならない。しかしながら、上流側触媒53の酸素吸蔵量OSA1が上流側触媒53の最大酸素吸蔵量Cmax1に到達し、且つ、機関の空燃比がウインドウW外のリーン空燃比であると、上流側触媒53はNOxを効果的に浄化することができない。更に、機関の空燃比はリーン空燃比に設定されているから、機関からは多量のNOxが排出される。
このとき、下流側触媒55の酸素吸蔵量OSA2が下流側触媒55の最大酸素吸蔵量Cmax2よりもある程度小さければ、下流側触媒55はNOx浄化能力を有するので、上流側触媒53から流出したNOxを浄化することができる。これに対し、フューエルカット復帰直後のように、下流側触媒55の酸素吸蔵量OSA2が、下流側触媒55の最大酸素吸蔵量Cmax2に到達していたり、或は、最大酸素吸蔵量Cmax2に近い量になっていたりすると、下流側触媒55はNOxを十分に浄化ですることができず、多量のNOxが大気中に放出されてしまうという問題が生じる。更に、NOxが多量に排出されないようにするように、微粒子捕集フィルタの再生のために設定される空燃比を非常に希薄な空燃比(リーン度合いの大きいリーン空燃比)に設定しないようにすると、微粒子捕集フィルタに供給される過剰な酸素量が少なくなる。その結果、微粒子捕集フィルタの再生に時間を要するという問題も生じる。
そこで、第1制御装置は、微粒子捕集フィルタを再生する要求(フィルタ再生要求)が発生したと判定されたとき、「機関の空燃比を強制リーン空燃比afenLと強制リーン空燃比afenLとに制御する上記空燃比強制振動制御」を所定期間に渡って実行する。これにより、機関の空燃比が強制リーン空燃比afenLに設定されている間に機関10から排出される過剰な酸素が微粒子捕集フィルタ54に供給される。その結果、微粒子捕集フィルタ54が再生される。この空燃比強制振動制御は、「空燃比アクティブ制御」、「微粒子捕集フィルタ再生制御」又は「フィルタ再生制御」とも称呼される。
強制リーン空燃比afenLは、図6に示したように、前記所定の空燃比範囲外(ウインドウWの範囲外)であって理論空燃比stoichよりもリーン側の空燃比である。より具体的には、強制リーン空燃比afenLは、理論空燃比stoichに第1空燃比幅ΔafL(ΔafL>0)を加えた空燃比(afenL=stoich+ΔafL)である。強制リーン空燃比afenLは、空燃比強制振動制御中において、取得される下流側空燃比afdownが理論空燃比よりもリーン側の空燃比からリッチ側の空燃比に変化した時点(以下、「リッチ反転時点」と称呼する。)から、取得される下流側空燃比afdownが理論空燃比よりもリッチ側の空燃比からリーン側の空燃比に変化する時点(以下、「リーン反転時点」と称呼する。)までの期間に設定される空燃比である。リッチ反転時点は、下流側空燃比センサ67の出力値Voxsが理論空燃比相当値Voxsstより小さい値から理論空燃比相当値Voxsstより大きい値へと変化した時点であり、「下流側空燃比センサ67の出力値Voxsにより示される空燃比がリーン空燃比からリッチ空燃比へと変化した時点」とも表現される。リーン反転時点は、下流側空燃比センサ67の出力値Voxsが理論空燃比相当値Voxsstより大きい値から理論空燃比相当値Voxsstより小さい値へと変化した時点であり、「下流側空燃比センサ67の出力値Voxsにより示される空燃比がリッチ空燃比からリーン空燃比へと変化した時点」とも表現される。
図6において、リッチ反転時点は時刻t1、時刻t3及び時刻t5であり、リーン反転時点は時刻t2、時刻t4及び時刻t6である。このように、強制リーン空燃比afenLは、空燃比強制振動制御中であって且つ取得される下流側空燃比afdownが理論空燃比よりもリッチ側の空燃比である場合(例えば、図6の時刻t1−t2、時刻t3−t4及び時刻t5−t6)に上流側目標空燃比abyfrとして設定される空燃比である。
強制リッチ空燃比afenRは、前記所定の空燃比範囲外(ウインドウWの範囲外)であって理論空燃比よりもリッチ側の空燃比である。より具体的には、強制リッチ空燃比afenRは、理論空燃比stoichから第2空燃比幅ΔafR(ΔafR>0)を減じた空燃比(afenR=stoich−ΔafR)である。第1制御装置において、第1空燃比幅ΔafLと第2空燃比幅ΔafRは実質的に等しい。強制リッチ空燃比afenRは、空燃比強制振動制御中において、リーン反転時点からリッチ反転時点まで期間に設定される空燃比である。換言すると、強制リッチ空燃比afenRは、空燃比強制振動制御中であって且つ取得される下流側空燃比afdownが理論空燃比よりもリーン側の空燃比である場合(例えば、図6の時刻t2−t3及び時刻t4−t5)に上流側目標空燃比abyfrとして設定される空燃比である。
このように、上流側目標空燃比abyfr(結果として、機関の空燃比)は、理論空燃比stoichに対して実質的に対称な波形を有する空燃比となる。但し、機関の空燃比が強制リーン空燃比afenLに設定されている期間、微粒子捕集フィルタ54内にて微粒子の燃焼のために酸素が消費されるので、機関の空燃比が強制リーン空燃比afenLに制御される「リッチ反転時からリーン反転時までの期間(例えば、時刻t1−t2)」は、機関の空燃比が強制リッチ空燃比afenRに制御される「リーン反転時からリッチ反転時までの期間(例えば、時刻t2−t3)」よりも長くなる。
この空燃比強制振動制御中、機関10には強制リーン空燃比afenLの混合気と強制リッチ空燃比afenRの混合気とが交互に供給される。加えて、強制リーン空燃比afenLから強制リッチ空燃比afenRへの切換え時点は前記リーン反転時点であり、且つ、強制リッチ空燃比afenRから強制リーン空燃比afenLへの切換え時点は前記リッチ反転時点である。従って、ある程度の時間幅(空燃比強制振動制御の1サイクル以上の時間)における機関の空燃比の平均は、結局、理論空燃比近傍の値に設定することができる。即ち、空燃比強制振動制御において一回の強制リーン空燃比とそれに続く一回の強制リッチ空燃比とが設定される1サイクル以上の時間幅にて機関の空燃比の平均(或いは、下流側触媒55に流入するガスの空燃比の平均)をとれば、その平均は略理論空燃比となる。この結果、機関から排出される窒素酸化物及び未燃物(HC,CO等)を上流側触媒53及び下流側触媒55により、ある程度浄化することができる。それ故、第1制御装置は、機関の空燃比を単純にリーン空燃比に設定する場合に比較して、エミッションを良好にしながら、微粒子捕集フィルタを再生させることができる。以上が、空燃比制御の概要である。
<作用>
第1制御装置のCPU71は、図7に示したフローチャート示した手順に沿って上述した各種の制御を行うようになっている。CPU71は、図7に示した手順を所定時間の経過毎に繰り返すようになっている。なお、以下の説明において、上流側空燃比センサ66及び下流側空燃比センサ67は共に活性化していると仮定する。
CPU71は、所定のタイミングにてステップ700から処理を開始し、ステップ710に進んでフィルタ再生要求フラグXPMの値が「1」であるか否かを判定する。フィルタ再生要求フラグXPMの値は、微粒子捕集フィルタ54を再生する要求(フィルタ再生要求)が発生しているときに「1」に設定され、微粒子捕集フィルタ54を再生する必要がないとき「0」に設定される。フィルタ再生要求フラグXPMの操作については後述する(図8を参照。)。
いま、フィルタ再生要求フラグXPMの値が「0」であると仮定する。この場合、CPU71はステップ710にて「No」と判定し、ステップ720に進んで上述した「通常空燃比フィードバック制御」を実行する。
より具体的に述べると、CPU71は、ステップ720において、メインフィードバック制御及びサブフィードバック制御の両方を実行する。この場合、メインフィードバック制御の上流側目標空燃比abyfrは理論空燃比stoichに設定され、サブフィードバック制御の下流側目標値Voxsrefは弱リッチ空燃比AFRに相当する値Vrichに設定される。上述したように、メインフィードバック制御は、上流側空燃比センサ66の出力値Vabyfsに基づいて得られる上流側空燃比abyfsを上流側目標空燃比abyfrに一致させるフィードバック制御である。サブフィードバック制御は、下流側空燃比センサ67の出力値Voxsを下流側目標値Voxsrefに一致させるフィードバック制御である。その後、CPU71はステップ795に進み、本ルーチンを一旦終了する。この結果、機関の空燃比は実質的に理論空燃比に一致する。即ち、下流側触媒55に流入するガスの空燃比の平均は弱リッチ空燃比AFRに一致する。つまり、上流側空燃比abyfs及び下流側空燃比afdownに基づいて、機関に供給される混合気の空燃比が理論空燃比を含む所定の空燃比範囲内の空燃比となるように、機関の空燃比がフィードバック制御される。
ここで、上記通常空燃比フィードバック制御の実施態様について説明する。
(燃料噴射量の決定)
上述したように上流側触媒53は酸素吸蔵機能を有する。従って、上流側触媒53の上流の空燃比変化は所定の遅れ時間が経過した後に上流側触媒53の下流の空燃比変化となって現れる。従って、サブフィードバック制御のみでは過渡的な空燃比変動を抑制することが困難である。そこで、第1制御装置のCPU71は、上記メインフィードバック制御を実行し、過渡的な空燃比変動を抑制する。このとき、CPU71は、メインフィードバック制御とサブフィードバック制御との間に制御上の干渉が発生することがないように、以下に述べるようにメインフィードバック制御及びサブフィードバック制御を実行する。
CPU71は、エアフローメータ61が計測している吸入空気量Gaと、クランクポジションセンサ64の出力に基づいて得られる機関回転速度NEと、ROM72が記憶しているテーブルMapMcと、に基づき今回の吸気行程を迎える気筒の吸入空気量である筒内吸入空気量Mc(k)を求める。ここで、添え字の(k)は、今回の吸気行程に対する値であることを示している。筒内吸入空気量Mc(k)は、各気筒の吸気行程に対応されながらRAM73に記憶されていく。筒内吸入空気量Mc(k)は機関10の吸気通路における空気の挙動をモデル化した周知の空気量推定モデル(空気モデル)を用いて求められてもよい。
CPU71は、次に、下記(1)式に従って、機関の空燃比を上流側目標空燃比abyfr(k)に一致させるための「今回の吸気行程に対する基本燃料噴射量Fbase(k)」を求める。基本燃料噴射量Fbase(k)は各気筒の吸気行程に対応されながらRAM73に記憶されていく。
Fbase(k)=Mc(k)/abyfr(k) …(1)
更に、CPU71は、下記(2)式に従って、基本燃料噴射量Fbase(k)と、別途求められているメインフィードバック補正値KFmainと、別途求められているサブフィードバック補正値Fisubと、を用いて今回の最終燃料噴射量Fi(k)を求める。最終燃料噴射量Fi(k)は、各気筒の吸気行程に対応されながらRAM73に記憶されていく。CPU71は、この最終燃料噴射量Fi(k)の燃料が、今回の吸気行程を迎える気筒のインジェクタ39から噴射されるように、そのインジェクタ39に対して噴射指示信号を送出する。
Fi(k)=Fbase(k)・KFmain+Fisub …(2)
(サブフィードバック補正値の算出)
CPU71は、下記(3)式に従って、現時点の下流側目標値Voxsrefから同現時点の下流側空燃比センサ67の出力値Voxsを減じることにより出力偏差量DVoxsを求める。
DVoxs=Voxsref−Voxs …(3)
そして、CPU71は、出力偏差量DVoxsに対して、下記(4)式の伝達関数F1(s)により表されるローパスフィルタ(一次のデジタルフィルタ)処理を施し、ローパスフィルタ通過後出力偏差量DVoxslowを求める。(4)式において、sはラプラス演算子であり、τ1は時定数である。このローパスフィルタ処理は、周波数(1/τ1)以下の低周波数成分のみを通過させ、周波数(1/τ1)以上の高周波数成分が通過することを実質的に禁止する。
F1(s)=1/(1+τ1・s) …(4)
次いで、CPU71は、ローパスフィルタ通過後出力偏差量DVoxslowを下記(5)式に基づいて比例・積分・微分処理(PID処理)し、サブフィードバック補正値Fisubを求める。この(5)式において、Kpは予め設定された比例ゲイン(比例定数)、Kiは予め設定された積分ゲイン(積分定数)、Kdは予め設定された微分ゲイン(微分定数)である。また、SDVoxslowはローパスフィルタ通過後出力偏差量DVoxslowの時間積分値であり、DDVoxslowはローパスフィルタ通過後出力偏差量DVoxslowの時間微分値である。
Fisub=Kp・DVoxslow+Ki・SDVoxslow+Kd・DDVoxslow …(5)
(メインフィードバック補正値の算出)
前述したように、上流側触媒53は触媒機能及び酸素吸蔵機能を有している。従って、上流側触媒53の上流の排ガスの空燃比の変動における「比較的周波数の高い高周波数成分(前記周波数1/τ1以上の高周波数成分)」及び「比較的周波数が低く且つ振幅が比較的小さい低周波数成分(前記周波数1/τ1以下の周波数にて変動するとともに理論空燃比からの偏移量が比較的小さい低周波成分)」は、上流側触媒53の触媒機能及び酸素吸蔵機能により吸収されるから、上流側触媒53の下流の排ガスの空燃比の変動として現れ難い。
従って、例えば、排ガスの空燃比が前記周波数(1/τ1)以上の高周波数で大きく変動するような「過渡運転状態における空燃比の急変」に対する補償は、サブフィードバック制御により行われ得ない。それ故、「過渡運転状態における空燃比の急変」に対する補償を確実に行うためには、上流側空燃比センサ66の出力値Vabyfsに基づいたメインフィードバック制御を行う必要がある。このメインフィードバック制御の結果として得られるメインフィードバック補正値は以下に述べるようにして求められる。
CPU71は、上流側空燃比センサ66の出力値Vabyfsと、図4に示したテーブルMapabyfsと、に基づいて、上流側空燃比センサ66が検出している現時点の検出空燃比(上流側空燃比)abyfs(k)を求める。
次に、CPU71は、各気筒の吸気行程に対応されながらRAM73に記憶されている上流側目標空燃比abyfrのうち、現時点からNストローク(N回の吸気行程)前の時点の上流側目標空燃比abyfrをRAM73から読み出し、これを上流側目標空燃比abyfr(k-N)として設定する。ここで、添え字の(k-N)は、今回の吸気行程からNストローク(4気筒エンジンにおいて、N・180°CA、CA;クランク角)前の吸気行程に対した値であることを示している。上流側目標空燃比abyfr(k-N)は、現時点からNストローク前に吸気行程を迎えた気筒の基本燃料噴射量Fbase(k-N)(=Mc(k-N)/abyfr(k-N))を算出するために用いられた上流側目標空燃比である(上記(1)式を参照。)。なお、前述したように、通常空燃比フィードバック制御中において、上流側目標空燃比abyfrは理論空燃比stoichであるから、abyfr(k-N)とabyfr(k)とは等しい。
ここで、前記値Nは、内燃機関10の排気量及び燃焼室25から上流側空燃比センサ66までの距離等により異なる値である。このように、現時点からNストローク前の上流側目標空燃比abyfr(k-N)をメインフィードバック補正値の算出に用いるのは、インジェクタ39から噴射された燃料を含み且つ燃焼室25内で燃焼された混合気が上流側空燃比センサ66に到達するまでには、Nストロークに相当する無駄時間L1を要するからである。なお、値Nは、機関回転速度NEが大きいほど小さくなり、且つ、機関の負荷(例えば、筒内吸入空気量Mc)が大きくなるほど小さくなるように変更されることが望ましい。
更に、CPU71は、下記(6)式に基づいて、目標空燃比abyfr(k-N)から現時点の検出空燃比abyfs(k)を減じることにより、空燃比偏差Dafを求める。この空燃比偏差Dafは、Nストローク前の時点において筒内に供給された混合気の空燃比の「目標空燃比からの偏差」を表す量である。
Daf=abyfr(k-N)−abyfs(k) …(6)
次いで、CPU71は、空燃比偏差Dafに対し、下記(7)式の伝達関数F2(s)により表されるハイパスフィルタ処理を施すことにより、メインフィードバック制御用偏差DafHiを求める。(7)式において、sはラプラス演算子であり、τ1は時定数である。時定数τ1は上記ローパスフィルタ処理を表す伝達関数F1(s)における時定数τ1と同一の時定数である。(7)式のハイパスフィルタ処理は、周波数(1/τ1)以上の高周波数成分のみを通過させ、周波数(1/τ1)以下の低周波数成分が通過することを実質的に禁止する。
F2(s)={1−1/(1+τ1・s)} …(7)
そして、CPU71は、下記(8)式に従って、メインフィードバック制御用偏差DafHiを比例処理する。即ち、CPU71は、メインフィードバック制御用偏差DafHiに比例ゲインGpHiを乗じることにより、メインフィードバック補正値KFmainを求める。
KFmain=1+GpHi・DafHi …(8)
なお、CPU71は、下記(9)式に基いて、メインフィードバック制御用偏差DafHiを比例・積分処理(PI処理)することにより、メインフィードバック補正値KFmainを求めてもよい。(9)式において、Gphiは予め設定された比例ゲイン(比例定数)、Gihiは予め設定された積分ゲイン(積分定数)である。SDafHiはメインフィードバック制御用偏差DafHiの時間積分値である。
KFmain=Gphi・DafHi+Gihi・SDafHi …(9)
このように、第1制御装置のCPU71は、メインフィードバック制御系とサブフィードバック制御系とを並列且つ独立に実行する。更に、前述したように、メインフィードバック制御用偏差DafHiは、空燃比偏差Dafにハイパスフィルタ処理を施した値であって上流側触媒53の下流には現れない空燃比変動を反映した値である。従って、メインフィードバック補正値KFmainとサブフィードバック補正値Fisubとは、機関に供給される混合気の空燃比の変動を互いに干渉するように補正することがない。加えて、メインフィードバック制御により過渡運転状態における空燃比の急変が抑制され、サブフィードバック制御により「上流側触媒53の下流の空燃比の変動として現れる緩やかな空燃比の偏移」が解消される。更に、サブフィードバック制御によって、「上流側空燃比センサ66の特性ズレ」及び「上流側空燃比センサ66の配設位置」等に起因する「空燃比の平均に対する検出誤差」により「機関に供給される混合気の空燃比の平均」がウインドウWから外れてしまうことを回避することができる。
この通常空燃比フィードバック制御により、上流側触媒53及び下流側触媒55に流入するガスの空燃比はウインドウWの範囲内の理論空燃比近傍空燃比となるから、未燃物(HC,CO等)及び窒素酸化物(NOx)は、高い浄化率にて浄化される。なお、このような空燃比フィードバック制御の詳細については、例えば、特開2005−273524に開示されている。以上が、通常空燃比フィードバック制御の実施態様である。
ところで、CPU71は図8にフローチャートにより示した「フィルタ再生要求判定ルーチン」を所定時間の経過毎に実行するようになっている。従って、CPU71は所定のタイミングにてステップ800から処理を開始し、ステップ810に進んで「前回の空燃比強制振動制御(フィルタ再生制御)を終了してからの吸入空気量Gaの積算値SGa」が所定の閾値(フィルタ再生制御実行閾値)SGath以上となっているか否かを判定する。
この積算値SGaは所定時間Δtsの経過毎に実行される図示しない吸入空気量積算ルーチンにより更新されている。即ち、CPU71は、所定時間Δtsの経過毎に、その時点の積算値SGaにその時点にてエアフローメータ61により検出されている吸入空気量Gaを加えることにより、積算値SGaを更新する。積算値SGaはバックアップRAM74内に格納される。機関10の運転によって発生する微粒子の量は吸入空気量Gaが大きくなるほど大きくなるので、積算値SGaは微粒子捕集フィルタ54に捕集された微粒子の量を表す量となる。なお、積算値SGaは空燃比強制振動制御(フィルタ再生制御)の実行が完了すると、吸入空気量積算ルーチンによって「0」に設定(クリア)されるようになっている。
この時点において、積算値SGaが閾値SGathより小さいと、CPU71はステップ810からステップ895に直接進んで本ルーチンを一旦終了する。この結果、フィルタ再生要求フラグXPMの値は「0」に維持されるので、通常空燃比フィードバック制御が続行され、空燃比強制振動制御は開始されない(図7のステップ710及びステップ720を参照。)。
これに対し、図8のステップ810の処理時において、積算値SGaが閾値SGath以上であると、CPU71はステップ810からステップ820に進んでフィルタ再生要求フラグXPMの値を「1」に設定し、その後、ステップ895に進んで本ルーチンを一旦終了する。このとき、CPU71が図7のステップ710の処理を実行すると、CPU71はステップ710にて「Yes」と判定し、ステップ730に進んで前述した「空燃比強制振動制御(空燃比アクティブ制御、フィルタ再生制御)」を実行する。この空燃比強制振動制御は、前述した第1空燃比幅ΔafLと第2空燃比幅ΔafRとが実質的に等しいことから、空燃比対称アクティブ制御とも称呼される。
より具体的に述べると、CPU71は、ステップ730において、メインフィードバック制御を実行し、且つ、サブフィードバック制御を中止する。この場合、CPU71は、下流側空燃比センサ67の出力値Voxsが理論空燃比よりもリーン側の空燃比に対応する値となっていると(即ち、下流側空燃比センサ67の出力値Voxsが理論空燃比相当値Voxsstより小さいと)、メインフィードバック制御の上流側目標空燃比abyfrを強制リッチ空燃比afenRに設定する。これに対し、この場合、CPU71は、下流側空燃比センサ67の出力値Voxsが理論空燃比よりもリッチ側の空燃比に対応する値となっていると(即ち、下流側空燃比センサ67の出力値Voxsが理論空燃比相当値Voxsstより大きいと)、メインフィードバック制御の上流側目標空燃比abyfrを強制リーン空燃比afenLに設定する。また、サブフィードバック制御は中止されるので、上述したサブフィードバック補正値Fisubは「0」に設定される(上記(2)式を参照。)。
次いで、CPU71はステップ740に進んで強制振動制御実行フラグXACTの値を「1」に設定し、ステップ795に進んで本ルーチンを一旦終了する。この強制振動制御実行フラグXACTは、図示しないイグニッション・キー・スイッチがオフ位置からオン位置へと変更された際に実行されるイニシャルルーチンにて「0」に設定される。
この状態が継続すると、CPU71は再び図7のステップ700から処理を開始し、ステップ710にて「Yes」と判定してステップ730に進む。そして、CPU71は、その時点が、上流側目標空燃比abyfrが強制リッチ空燃比afenRに設定されていて、且つ、リッチ反転時点であると、上流側目標空燃比abyfrを強制リーン空燃比afenLに設定する。また、その時点が、上流側目標空燃比abyfrが強制リーン空燃比afenLに設定されていて、且つ、リーン反転時点であると、上流側目標空燃比abyfrを強制リッチ空燃比afenRに設定する。更に、その時点が、リッチ反転時点及びリーン反転時点の何れでもなければ、CPU71はその時点において設定されている上流側目標空燃比abyfrを維持する。その後、CPUはステップ740及びステップ795に進み、本ルーチンを一旦終了する。
その後、上述したステップ730の処理が繰り返される。以上の結果、図6に示した空燃比強制振動制御が実行される。従って、上流側目標空燃比abyfrが強制リーン空燃比afenLに設定されている間、機関10から過剰な酸素が排出される。その酸素は、先ず、上流側触媒53の酸素吸蔵量OSA1を上流側触媒53の最大酸素吸蔵量Cmax1に到達させるように上流側触媒53によって吸蔵され、その後、微粒子捕集フィルタ54に供給される。その結果、微粒子捕集フィルタ54に捕集されていた微粒子が燃焼し、微粒子捕集フィルタ54が再生される。
また、上流側目標空燃比abyfrが強制リッチ空燃比afenRに設定されている間、機関10から過剰な未燃物が排出される。その未燃物は、上流側触媒53に吸蔵されている酸素により浄化される。従って、上流側触媒53の酸素吸蔵量OSA1は「0」に到達する。その後、リッチ反転時点となるので、上流側目標空燃比abyfrが強制リーン空燃比afenLに再び設定される。
このように空燃比強制振動制御中、機関10には強制リーン空燃比afenLの混合気と強制リッチ空燃比afenRの混合気とが機関に交互に供給されるので、ある程度の時間幅における機関の空燃比の平均は理論空燃比近傍の値に一致する。この結果、機関から排出される窒素酸化物及び未燃物(HC,CO等)を上流側触媒53及び下流側触媒55により浄化することができる。
更に、CPU71は図9に示した「最大酸素量差取得ルーチン」及び図10に示した「微粒子捕集フィルタ異常判定ルーチン(フィルタ異常判定ルーチン)」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、CPU71はステップ900から処理を開始し、ステップ905に進んで強制振動制御実行フラグXACTの値が「1」であるか否かを判定する。
ここで、機関の始動後から一度も上述した空燃比強制振動制御が実行されていない(換言すると、フィルタ再生要求フラグXPMの値が機関始動後から「0」に維持されたままである)と仮定する。この仮定下においては、図7のステップ740が実行されないから、強制振動制御実行フラグXACTの値は「0」に維持されている。従って、CPU71はステップ905にて「No」と判定してステップ910に進み、変数(酸素量差サンプル数)nの値を「0」に設定する。そして、CPU71はステップ995に進み本ルーチンを一旦終了する。
加えて、所定のタイミングになると、CPU71は図10のステップ1000から処理を開始し、ステップ1005に進んで強制振動制御実行フラグXACTの値が「1」であるか否かを判定する。前述した仮定に従うと、強制振動制御実行フラグXACTの値は「0」である。従って、CPU71はステップ1005にて「No」と判定してステップ1095に直接進み、本ルーチンを一旦終了する。
このような状態において、図8のステップ820にてフィルタ再生要求フラグXPMの値が「1」に変更されたと仮定する。この場合、CPU71は図7のステップ710、ステップ730及びステップ740を実行する。従って、強制振動制御実行フラグXACTの値は「1」に変更される。
このため、CPU71は図9のステップ905に進んだとき、同ステップ905にて「Yes」と判定してステップ915に進み、空燃比強制振動制御の1サイクルが経過したか否かを判定する。空燃比強制振動制御の1サイクルとは、例えば、図6のt1−t3の期間に相当する期間である。即ち、空燃比強制振動制御の1サイクルとは、空燃比強制振動制御中において、下流側空燃比センサ67の出力値Voxsにより示される空燃比が、リーン空燃比からリッチ空燃比へと変化した時点(前回のリッチ反転時)から、リッチ空燃比からリーン空燃比に変化し(前回のリーン反転時)、更に、リーン空燃比からリッチ空燃比へと変化した時点(今回のリッチ反転時)までの期間である。換言すると、CPU71は、ステップ915において、現時点が「前回のリッチ反転時点後においてリーン反転時点となり、更に、その後、今回のリッチ反転時点(最新のリッチ反転時点)となった時点」の直後であるか否かを判定する。このとき、現時点が最新のリッチ反転時の直後でなければ、CPU71はステップ915にて「No」と判定してステップ995に直接進み、本ルーチンを一旦終了する。
この時点において、CPU71が図10のステップ1000から処理を開始すると、強制振動制御実行フラグXACTの値は「1」であるから、CPU71はステップ1005にて「Yes」と判定してステップ1010に進み、変数nの値が閾値(所定値)nth(閾値nthは2又は3以上の整数)以上であるか否かを判定する。変数nの値は、図9のステップ910にて「0」に設定されたままである。従って、CPU71はステップ1010にて「No」と判定してステップ1095に直接進み、本ルーチンを一旦終了する。この流れは、変数nの値が閾値nth以上となるまで繰り返し実行される。
このような状態が継続すると、空燃比強制振動制御により、空燃比強制振動制御の1サイクルが経過する。この場合、CPU71は図9のステップ900及びステップ905に続くステップ915にて「Yes」と判定し、ステップ925に進んで現時点が空燃比強制振動制御を開始してから最初の1サイクルが経過した時点であるか否かを判定する。そして、現時点が空燃比強制振動制御を開始してから最初の1サイクルが経過した時点であれば、CPU71はステップ930に進んで変数nの値に「1」を設定する。これに対し、現時点が空燃比強制振動制御を開始してから最初の1サイクルが経過した時点でなければ(即ち、2サイクル目又はそれ以上のサイクルが経過した時点であれば)、CPU71はステップ925にて「No」と判定してステップ935に進み、変数nの値を「1」だけ増大する。これにより、変数nの値は空燃比強制振動制御を開始した後のサイクル数を示す。
次に、CPU71はステップ940に進み、現時点までに経過した最新の1サイクル(例えば、図6の時刻t1−t3)内において、上流側目標空燃比abyfrが強制リーン空燃比afenLに設定されていた期間(強制リーン空燃比設定中、例えば、図6の時刻t1−t2)の酸素吸蔵量OSAKZを読込み、且つ、上流側目標空燃比abyfrが強制リッチ空燃比afenRに設定されていた期間(強制リッチ空燃比設定中、例えば、図6の時刻t2−t3)の酸素脱離量OSADRを読込む。
酸素吸蔵量OSAKZは、空燃比強制振動制御における連続する「一回の強制リーン空燃比設定中」において、機関10から排出された酸素の過剰量の積分値である。換言すると、酸素吸蔵量OSAKZは、一回の強制リーン空燃比設定中において、上流側触媒53に吸蔵された酸素の量と、微粒子捕集フィルタ54において微粒子を燃焼させるために消費された酸素の量と、の和である。酸素吸蔵量OSAKZは、図示しないルーチンにおいて、以下の手法によって求められる。
(ステップ1)CPU71は、所定時間(計算周期tsample)の経過毎に、下記(10)式に基いて酸素吸蔵量の変化量ΔOSAKZを算出する。この(10)式において、値「0.23」は大気中に含まれる酸素の重量割合である。mfrは所定時間(計算周期tsample)内の燃料噴射量Fiの合計量(計算周期tsample内において機関10に供給された燃料の総量)である。stoichは理論空燃比(例えば、14.7)である。abyfsは所定時間tsampleにおいて上流側空燃比センサ66により測定された空燃比である。なお、abyfsは計算周期tsample内の上流側空燃比センサ66により検出された空燃比の平均値に置換してもよい。
ΔOSAKZ=0.23・mfr・(abyfs − stoich) …(10)
(ステップ2)CPU71は、下記(11)式に基づいて変化量ΔOSAKZを時点taから時点tbまでの間(即ち、強制リーン空燃比設定期間)において積算(時間積分)することにより酸素吸蔵量OSAKZを算出する。積算の開始時点taは前回のリッチ反転時点(例えば、現時点が図6の時刻t3とすると時刻t1)であり、積算の終了時点tbは前回のリーン反転時点(例えば、図6の時刻t2)である。
酸素吸蔵量OSAKZ=ΣΔOSAKZ(区間t=ta〜tb) …(11)
酸素脱離量OSADRは、空燃比強制振動制御における連続する「一回の強制リッチ空燃比設定中」において、機関10から排出された酸素の不足量の積分値である。換言すると、酸素脱離量OSADRは、一回の強制リッチ空燃比設定中において、上流側触媒53から未燃物(HC、CO等)を酸化するために放出された(上流側触媒53から脱離した)酸素の量である。酸素脱離量OSADRは、図示しないルーチンにおいて、以下の手法によって求められる。
(ステップ1)CPU71は、所定時間(計算周期tsample)の経過毎に、下記(12)式に基いて酸素吸蔵量の変化量ΔOSADRを算出する。この(12)式の右辺の各変数は上記(1)に関して述べたとおりである。この場合においても、abyfsは計算周期tsample内の上流側空燃比センサ66により検出された空燃比の平均値に置換してもよい。
ΔOSADR=0.23・mfr・(stoich − abyfs) …(12)
(ステップ2)CPU71は、下記(13)式に基づいて変化量ΔOSADRを時点tbから時点tcまでの間(即ち、強制リッチ空燃比設定期間)において積算(時間積分)することにより酸素脱離量OSADRを算出する。積算の開始時点tbは前回のリーン反転時点(例えば、図6の時刻t2)である。積算の終了時点tcは今回のリッチ反転時点(例えば、図6の時刻t3)である。
酸素脱離量OSADR=ΣΔOSADR(区間t=tb〜tc) …(13)
再び、図9を参照すると、CPU71はステップ940に続いてステップ945に進み、酸素吸蔵量OSAKZから酸素脱離量OSADRを減じることによって最新の1サイクルにおける酸素量差DOSAを求める。次に、CPU71はステップ950に進み、変数nの値が「1」であるか否かを判定する。このとき、変数nの値が「1」であると、CPU71はステップ950にて「Yes」と判定してステップ955に進み、酸素量差DOSAの最大値である最大酸素量差DOSAmaxに上記ステップ945にて得られた酸素量差DOSAを格納する。その後、CPU71はステップ970に進む。
これに対し、変数nの値が「1」でなければ、CPU71はステップ950にて「No」と判定してステップ960に進み、上記ステップ945にて得られた酸素量差DOSAがその時点の最大酸素量差DOSAmaxより大きいか否かを判定する。そして、酸素量差DOSAが最大酸素量差DOSAmaxより小さければCPU71はステップ970に直接進む。一方、酸素量差DOSAが最大酸素量差DOSAmaxより大きければ、PU71はステップ960にて「Yes」と判定してステップ965に進み、最大酸素量差DOSAmaxに上記ステップ945にて得られた酸素量差DOSAを格納する。その後、CPU71はステップ970に進む。このように、ステップ950乃至ステップ965は、一回の空燃比強制振動制御における酸素量差DOSAの最大値(最大酸素量差)DOSAmaxを求めるためのステップである。
その後、CPU71はステップ970にて、酸素吸蔵量OSAKZの値を「0」に設定するとともに、酸素脱離量OSADRの値を「0」に設定し、ステップ995に進んで本ルーチンを一旦終了する。
以降、空燃比強制振動制御が継続されると変数nの値が閾値nthに到達する(図9のステップ935を参照。)。このとき、CPU71が図10のステップ1000から処理を開始すると、CPU71はステップ1000に続くステップ1010にて「Yes」と判定し、ステップ1015に進んで最大酸素量差DOSAmaxが正常判定閾値SEIJOth以上であるか否かを判定する。
ところで、前述したフィルタ再生要求は微粒子捕集フィルタ54に相当量の微粒子が捕集されたと考えられる時点にて発生する(図8を参照。)。つまり、微粒子捕集フィルタ54に相当量の微粒子が捕集されたと考えられる時点にて、図8のステップ820によってフィルタ再生要求フラグXPMの値が「1」に設定され、それにより図7のステップ730(空燃比強制振動制御)が実行される。従って、空燃比強制振動制御によって微粒子捕集フィルタ54の再生が正常に進めば、強制リーン空燃比設定中において相当量の微粒子が燃焼し、それに応じた酸素が消費されるはずである。微粒子捕集フィルタ54の再生が正常に進むとは、微粒子捕集フィルタ54が破損等しておらず、相当量の微粒子を捕集していることを含む。
更に、前述したように、酸素吸蔵量OSAKZは、一回の強制リーン空燃比設定中において、上流側触媒53に吸蔵された酸素の量と、微粒子捕集フィルタ54において微粒子を燃焼させるために消費された酸素の量と、の和である。この強制リーン空燃比の設定は、リッチ反転時点に行われる。リッチ反転時点において、上流側触媒53の酸素吸蔵量OSA1は「0」である。また、この強制リーン空燃比の設定は、リーン反転時点にて終了する。リーン反転時点において、上流側触媒53の酸素吸蔵量OSA1は最大酸素吸蔵量Cmax1である。よって、酸素吸蔵量OSAKZに合算されている(含まれている)上流側触媒53に吸蔵された酸素の量は、上流側触媒53の最大酸素吸蔵量Cmax1と等しい。
一方、前述したように、酸素脱離量OSADRは、一回の強制リッチ空燃比設定中において、上流側触媒53から未燃物(HC、CO等)を酸化するために上流側触媒53から脱離した酸素の量である。この強制リッチ空燃比の設定はリーン反転時点に行われ、リッチ反転時点にて終了する。前述したように、上流側触媒53の酸素吸蔵量OSA1は、リーン反転時点において最大酸素吸蔵量Cmax1であり、リッチ反転時点において「0」である。従って、酸素脱離量OSADRは、上流側触媒53の最大酸素吸蔵量Cmax1と等しい。
これらのことから、空燃比強制振動制御の1サイクル(前回のリッチ反転時点から今回のリッチ反転時点まで)における酸素量差DOSAは、その1サイクルにおいて微粒子捕集フィルタ54内にて燃焼した微粒子の量を表す。従って、空燃比強制振動制御によって微粒子捕集フィルタ54の再生が正常に進めば、複数のサイクルにおける酸素量差DOSAの最大値(即ち、最大酸素量差DOSAmax)は正常判定閾値SEIJOth以上となるはずである。
そこで、CPU71は、最大酸素量差DOSAmaxが正常判定閾値SEIJOth以上である場合、
ステップ1015にて「Yes」と判定してステップ1020に進み、微粒子捕集フィルタ54の再生が正常に行われたと判定する。即ち、CPU71はフィルタ再生正常フラグXSEIの値を「1」に、フィルタ再生異常フラグXIJOの値を「0」に、フィルタ再生判定保留フラグXHRYの値を「0」に設定する。これらのフラグの値は空燃比強制振動制御が実行される毎に、実行された空燃比強制振動制御に対応されながら、バックアップRAM74内に格納される。また、これらのフラグの値は、図示しない電気制御装置70の外部接続端子から外部の測定器に取り出され得るように構成されている。
フィルタ再生正常フラグXSEIは、その値が「1」であるとき、微粒子捕集フィルタ54の再生が正常に行われたこと(微粒子捕集フィルタ54が正常であることを含む)を示す。
フィルタ再生異常フラグXIJOは、その値が「1」であるとき、微粒子捕集フィルタ54の再生が正常に行われなかったこと(微粒子捕集フィルタ54が異常であることを含む)を示す。
フィルタ再生判定保留フラグXHRYは、その値が「1」であるとき、微粒子捕集フィルタの再生が正常に行われたのか異常であったのかを判定できない(判定を保留すべき)状態にあることを示す。
次に、CPU71はステップ1025に進み、図9のステップ945にて得られている最新の酸素量差DOSAが(空燃比)強制振動制御終了閾値(制御完了閾値、フィルタ再生制御完了閾値)KANth以下となっているか否かを判定する。現時点は、ステップ1015及びステップ1020にてフィルタ再生が正常であったと判定された後である。このように、フィルタ再生が正常に進行すると、微粒子捕集フィルタ54に捕集されていた微粒子の殆どが燃焼するから、微粒子捕集フィルタ54内に残存する微粒子の量は減少し、その結果、空燃比強制振動制御の1サイクルにおいて燃焼する微粒子の量も減少する。従って、最新の酸素量差DOSAが強制振動終了判定閾値KANth以下となっていれば、殆どの微粒子が燃焼しており、よって、空燃比強制振動制御を終了しても良いと判断することができる。
いま、フィルタ再生が正常に行われ、微粒子捕集フィルタ54に捕集されていた微粒子の殆どが燃焼したと仮定する。この場合、最新の酸素量差DOSAは強制振動終了判定閾値KANth以下となる。従って、CPU71はステップ1025にて「Yes」と判定してステップ1030に進み、過去Nサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となっているか否かを判定する。このステップ1030は、燃焼が完全に終了していることを確認するためのステップであり、省略することができる。
そして、過去Nサイクル(空燃比制御サイクル最新のNサイクル、Nは2以上の整数)内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となっているとき、CPU71はステップ1030にて「Yes」と判定してステップ1035に進み、強制振動制御実行フラグXACTの値を「0」に設定するとともにフィルタ再生要求フラグXPMの値を「0」に設定し、ステップ1095に進んで本ルーチンを一旦終了する。この結果、CPU71は図7のステップ710にて「No」と判定してステップ720に進むようになる。従って、空燃比強制振動制御が終了され、通常空燃比フィードバック制御が再開される。
これに対し、フィルタ再生が正常に行われていても、微粒子捕集フィルタ54に捕集されていた微粒子が相当量残存していると、最新の酸素量差DOSAが強制振動終了判定閾値KANthより大きいか、又は、過去Nサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下とはならない。このような場合、CPU71はステップ1025及びステップ1030の何れかにおいて「No」と判定し、ステップ1095に直接進んで本ルーチンを一旦終了する。この結果、空燃比強制振動制御が継続される。その後、過去Nサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となると、上述したように空燃比強制振動制御が終了され、通常空燃比フィードバック制御が再開される。
以上は、フィルタ再生が正常に行われた場合についての作動である。これに対し、フィルタ再生が正常に行われていないと仮定する。この場合、最大酸素量差DOSAmaxは、正常判定閾値SEIJOth以上とならず、且つ、正常判定閾値SEIJOthより小さい異常判定閾値IJOthより小さくなる。従って、CPU71が図10のステップ1000から処理を開始すると、CPU71はステップ1000に続くステップ1010にて「Yes」と判定し、ステップ1015にて「No」と判定し、最大酸素量差DOSAmaxが異常判定閾値IJOthより小さいか否かを判定するステップ1040にて「Yes」と判定してステップ1045に進む。
そして、CPU71はステップ1045にて、微粒子捕集フィルタ54の再生状態が異常であると判定する。即ち、CPU71はフィルタ再生正常フラグXSEIの値を「0」に、フィルタ再生異常フラグXIJOの値を「1」に、フィルタ再生判定保留フラグXHRYの値を「0」に設定する。次いで、CPU71はステップ1050に進み、強制振動制御実行フラグXACTの値を「0」に設定するとともにフィルタ再生要求フラグXPMの値を「0」に設定し、ステップ1095に進んで本ルーチンを一旦終了する。この結果、CPU71は図7のステップ710にて「No」と判定してステップ720に進むようになる。従って、空燃比強制振動制御が終了され、通常空燃比フィードバック制御が再開される。これは、微粒子捕集フィルタ54に何らかの異常が発生しているのであるから、空燃比強制振動制御をこれ以上継続して微粒子捕集フィルタ54の再生を継続することは無駄となるからである。
ところで、ステップ1040にて最大酸素量差DOSAmaxが異常判定閾値IJOth以上であると判定される場合(即ち、最大酸素量差DOSAmaxが、正常判定閾値SEIJOthと異常判定閾値IJOthとの間の値である場合)、CPU71はステップ1040にて「No」と判定してステップ1055に進み、微粒子捕集フィルタ54の再生状態を正常であるとも異常であるとも判定できなかったと判断する。即ち、CPU71はフィルタ再生正常フラグXSEIの値を「0」に、フィルタ再生異常フラグXIJOの値を「0」に、フィルタ再生判定保留フラグXHRYの値を「1」に設定する。
次いで、CPU71は前述したステップ1025以降に進み、今回及び過去Nサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となっているとき、ステップ1035に進む。この結果、空燃比強制振動制御が終了され、通常空燃比フィードバック制御が再開される。
以上、説明したように、第1制御装置は、取得される上流側空燃比abyfs及び取得される下流側空燃比afdown(又はVoxs)に基づいて機関に供給される混合気の空燃比が「理論空燃比を含む所定の空燃比範囲(ウインドウW)内の空燃比」となるように、機関の空燃比をフィードバック制御するフィードバック制御手段を備えている(図7のステップ720を参照。)。従って、第1制御装置は、機関10から排出される未燃物及び窒素酸化物を上流側触媒53及び下流側触媒55により高い効率にて浄化させることができる。
更に、第1制御装置は、フィルタ再生要求が発生したと判定されたとき(フィルタ再生要求フラグXPMの値が「1」に設定されたとき)、上記フィードバック制御手段によるフィードバック制御を中止するとともに、機関の空燃比を「理論空燃比よりもリッチ側の空燃比(ウインドウWを超える強制リッチ空燃比)」と「理論空燃比よりもリーン側の空燃比(ウインドウWを超える強制リーン空燃比)」とに交互に変更する(振動させる)空燃比強制振動制御手段(図6のステップ710及びステップ730を参照。)を備えている。
これによれば、フィルタ再生要求が発生したと判定されたときに実行される空燃比強制振動制御中において、機関の空燃比が上流側触媒53のウインドウWを超える強制リーン空燃比に設定されたとき、多量且つ過剰な酸素が機関から排出され、微粒子捕集フィルタ54に流入する。この結果、微粒子捕集フィルタ54には酸素が供給されるので、微粒子捕集フィルタ54に捕集されていた微粒子が燃焼して微粒子捕集フィルタ54が再生される。
更に、空燃比強制振動制御中、機関10には強制リーン空燃比の混合気と強制リッチ空燃比の混合気とが機関に交互に供給される。加えて、強制リーン空燃比から強制リッチ空燃比への切換え時点は「リーン反転時点」であり、且つ、強制リッチ空燃比から強制リーン空燃比への切換え時点は「リッチ反転時点」である。従って、ある程度の時間幅における機関の空燃比の平均は理論空燃比近傍の値となる。この結果、機関10から排出される窒素酸化物及び未燃物を上流側触媒53及び下流側触媒55により、ある程度浄化することができる。それ故、第1制御装置は、機関の空燃比を単純にリーン空燃比に設定する場合に比較して、エミッションを良好にしながら、微粒子捕集フィルタ54を再生させることができる。
更に、第1制御装置は、
(1)前記空燃比強制振動制御中であり且つ前記機関の空燃比が前記強制リーン空燃比に設定されている第1期間において前記機関から排出された酸素の過剰量の総量を酸素吸蔵量OSAKZとして取得し(図9のステップ940、上記(10)式及び(11)式を参照。)、
(2)前記空燃比強制振動制御中であり且つ同第1期間に連続する期間であって前記機関の空燃比が前記強制リッチ空燃比に設定されている第2期間において前記機関から排出された酸素の不足量の総量を酸素脱離量OSADRとして取得し(図9のステップ940、上記(12)式及び(13)式を参照。)、
(3)その取得された酸素吸蔵量OSAKZとその取得された酸素脱離量OSADRとに基づいて微粒子捕集フィルタ54の再生状態を特定する(図9のステップ945、図10のステップ1010〜ステップ1020、ステップ1040〜ステップ1055を参照。)、
フィルタ再生状態特定手段を備えている。
より具体的に述べると、前記フィルタ再生状態特定手段は、
空燃比強制振動制御中の第1期間において取得された酸素吸蔵量OSAKZから、その第1期間に続く(連続する、直後の)第2期間において取得された酸素脱離量OSADRを減じた量である酸素量差DOSA(実際には、所定数のサイクル内における酸素量差DOSAの最大値である最大酸素量差DOSAmax)が正常判定閾値SEIJOthより大きいか否かを判定し、酸素量差DOSAが正常判定閾値SEIJOthより大きいと判定されたときに微粒子捕集フィルタ54の再生が正常に実行されたと判定する正常判定手段(図10のステップ1015及びステップ1020)を含むように構成されている。
上述したように、酸素量差DOSAは微粒子捕集フィルタ54における酸素の消費量、即ち、微粒子捕集フィルタ54において燃焼した微粒子の量を表す量である。更に、微粒子捕集フィルタ54内において捕集されていた微粒子が正常に燃焼すれば、相当量の酸素が消費されるはずである。従って、酸素量差DOSA(実際には最大酸素量差DOSAmax)が正常判定閾値SEIJOthより大きくなったと判定されたときには、微粒子捕集フィルタ54の再生が正常に実行されたと判定することができる。
更に、前記空燃比強制振動制御手段は、
前記正常判定手段が前記微粒子捕集フィルタ54の再生が正常に実行されたと判定した後において(図10のステップ1020を参照。)、酸素量差DOSAのうちの最新の値が強制振動終了判定閾値KANthより小さいか否かを判定し(図10のステップ1025を参照。)、最新の酸素量差DOSAが強制振動終了判定閾値KANthより小さいと判定されたときに前記空燃比強制振動制御を終了するように構成されている(図10のステップ1035を参照。)。
微粒子捕集フィルタ54の再生が正常に行われれば、空燃比強制振動制御の後期において燃焼する微粒子の量は低下するはずである。従って、上記構成のように最新の酸素量差DOSAが強制振動終了判定閾値KANthより小さいと判定されたときには、微粒子捕集フィルタ54の再生が完了したと判断できる。この結果、空燃比強制振動制御を適切なタイミングにて終了することができる。
また、前記空燃比強制振動制御は、前記第1期間と前記第2期間とからなる空燃比制御サイクルを複数サイクルに渡って実行するように構成されていて、
前記フィルタ再生状態特定手段は、前記空燃比強制振動制御中、
前記空燃比制御サイクルの各サイクルにおいて、「前記第1期間において取得された酸素吸蔵量OSAKZ」から「前記第2期間において取得された酸素脱離量OSADR」を減じた量である「酸素量差DOSA」を取得し、「各サイクルに対して取得された複数の酸素量差のうちの最大値、即ち、最大酸素量差DOSAmax」が異常判定閾値IJOthより小さいか否かを判定し(図9のステップ940〜ステップ965、及び、図10のステップ1040を参照。)、最大値DOSAmaxが異常判定閾値IJOthより小さいと判定されたときに微粒子捕集フィルタ54の再生が正常に実行されていないと判定する異常判定手段を含んでいる(図10のステップ1045を参照。)。
空燃比強制振動制御は、前記フィルタ再生要求が発生したと判定されたとき(フィルタ再生要求フラグXPMの値が「0」から「1」に変更されたとき)、実行される。従って、前述したように、微粒子捕集フィルタ54の再生が正常に行われれば酸素量差DOSAは正常判定閾値SEIJOthより大きくなる。換言すると、空燃比強制振動制御中に得られる酸素量差DOSAのうちの最大値である最大酸素量差DOSAmaxが、異常判定閾値(正常判定閾値より小さい値)IJOthより小さければ、微粒子捕集フィルタ54の再生が正常に実行されていないと判定することができる。
(第1制御装置の変形例)
次に、第1制御装置の変形例について説明する。この変形例は、CPU71が図8に代えて図11に示した「フィルタ再生要求判定ルーチン」を所定時間の経過毎に実行する点のみにおいて、第1制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
所定のタイミングになると、CPU71はステップ1100から処理を開始し、以下に述べるステップ1110及びステップ1120の処理を順に行い、ステップ1130に進む。
ステップ1110:現時点の上流側空燃比センサ66の出力値Vabyfsに基づいて得られる現時点の検出空燃比abyfsと、ステップ1110内に示したマップと、に基づいて係数k1を求める。このマップによれば、検出空燃比abyfsが理論空燃比STから遠ざかるほど係数k1が大きくなる。特に、検出空燃比abyfsが理論空燃比STよりリッチ側の領域において理論空燃比STからある量Δだけ遠ざかる場合、検出空燃比abyfsが理論空燃比STよりリーン側の領域において理論空燃比STからある量Δだけ遠ざかる場合よりも係数k1はより大きくなる。このように係数k1を定めるのは、吸入空気量Gaが一定であったとしても、機関の空燃比が理論空燃比STから乖離するほど、更には、機関の空燃比がリッチ側の空燃比になるほど、機関10から発生する微粒子の量が増大することに依拠している。
ステップ1120:CPU71は、現時点の微粒子捕集量SPM(微粒子捕集フィルタ54に捕集されている微粒子の量(総量)の推定値)に、上記係数k1と現時点においてエアフローメータ61が計測している吸入空気量Gaとの積(k1・Ga)を加えた値を、新たな微粒子捕集量SPMとして設定する。この微粒子捕集量SPMはバックアップRAM74内に格納される。
次に、CPU71は、ステップ1130に進み、前記ステップ1120にて更新(推定)された微粒子捕集量SPMが閾値(空燃比強制振動制御開始閾値)SPMth以上であるか否かを判定する。このとき、微粒子捕集量SPMが閾値SPMthより小さければ、CPU71はステップ1130にて「No」と判定してステップ1150に直接進む。この結果、フィルタ再生要求フラグXPMの値は「0」に維持されるので、通常空燃比フィードバック制御が続行され、空燃比強制振動制御は開始されない(図7のステップ710及びステップ720を参照。)。
これに対し、粒子捕集量SPMが閾値SPMth以上であれば、CPU71は図11のステップ1130にて「Yes」と判定してステップ1140に進んでフィルタ再生要求フラグXPMの値を「1」に設定し、その後、ステップ1150に進む。この結果、CPU71が図7のステップ710の処理を実行すると、CPU71はステップ710にて「Yes」と判定し、ステップ730に進んで前述した「空燃比強制振動制御(空燃比アクティブ制御、フィルタ再生制御)」を実行する。
次に、CPU71は図11のステップ1150にて、空燃比強制振動制御が終了した直後であるか否かを判定する。CPU71は、空燃比強制振動制御が終了した直後である場合、ステップ1150にて「Yes」と判定してステップ1160に進み、微粒子捕集量SPMの値を「0」に設定し、ステップ1195に進んで本ルーチンを一旦終了する。これに対し、空燃比強制振動制御が終了した直後でない場合、CPU71はステップ1150にて「No」と判定してステップ1195に直接進み、本ルーチンを一旦終了する。このステップ1150及びステップ1160の処理は、空燃比強制振動制御により微粒子捕集フィルタ54に捕集されていた微粒子が燃焼したことに基づく処理である。
この変形例によれば、微粒子捕集量SPMがより精度良く推定される。従って、この変形例は、第1制御装置に比較して、より適切なタイミングにて空燃比強制振動制御を実行することができるので、より適切なタイミングにて微粒子捕集フィルタ54の再生を行うことができる。
(第2実施形態)
次に、本発明の第2実施形態に係る内燃機関の制御装置(以下、「第2制御装置」とも称呼する。)について説明する。第2制御装置は、第1制御装置のCPU71が実行するルーチンのうちの図7に示したルーチンを図12に示したルーチンに置換した点のみにおいて、第1制御装置と相違している。従って、以下、この相違点を中心として説明を加える。なお、図12において図7に示したステップと同一の処理を行うためのステップには、図7のそのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は省略される。
所定のタイミングになると、CPU71は図12のステップ1200から処理を開始し、ステップ710に進んでフィルタ再生要求フラグXPMの値が「1」であるか否かを判定する。フィルタ再生要求フラグXPMの値が「0」であれば、CPU71はステップ710にて「No」と判定してステップ720に進み、上述した「通常空燃比フィードバック制御」を実行する。
これに対し、フィルタ再生要求フラグXPMの値が「1」であると、CPU71はステップ710にて「Yes」と判定してステップ1210に進み、「空燃比強制振動制御(空燃比アクティブ制御、フィルタ再生制御)」を実行する。この空燃比強制振動制御は、、空燃比非対称アクティブ制御とも称呼される。
より具体的に述べると、このステップ1210により実行される空燃比強制振動制御(空燃比非対称アクティブ制御)は、設定される強制リッチ空燃比afenR及び強制リーン空燃比afenLが、第1制御装置による空燃比強制振動制御(空燃比対称アクティブ制御)中に設定される強制リッチ空燃比afenR及び強制リーン空燃比afenLとそれぞれ異なる点のみにおいて、第1制御装置による空燃比強制振動制御と相違している。
即ち、図6に示したように、第1制御装置による空燃比強制振動制御において、強制リーン空燃比afenLと理論空燃比stoichとの差である第1空燃比幅ΔafLは、理論空燃比stoichと強制リッチ空燃比afenRとの差である第2空燃比幅ΔafRと略等しい。これに対し、図13及び下記の(14)式に示したように、第2制御装置による空燃比強制振動制御において、強制リーン空燃比afenLと理論空燃比stoichとの差である第3空燃比幅ΔafLL(ΔafLL>0)は、理論空燃比stoichと強制リッチ空燃比afenRとの差である第4空燃比幅ΔafRS(ΔafRS>0)よりも所定値だけ大きい。
ΔafLL=afenL−stoich>ΔafRS=stoich−afenR …(14)
換言すると、第1制御装置による空燃比対称アクティブ制御において機関の空燃比(実際は、上流側目標空燃比abyfr)は振幅がAC1/2であり且つ振動中心が略理論空燃比となるように振動させられる。これに対し、第2制御装置による空燃比非対称アクティブ制御において機関の空燃比(実際は、上流側目標空燃比abyfr)は振幅がAC2/2であり且つ振幅中心が理論空燃比よりもリーン側となるように振動させられる。
即ち、第2制御装置の空燃比非対称アクティブ制御においては、上流側目標空燃比abyfr(結果として、機関の空燃比)は、理論空燃比stoichに対して実質的に非対称な波形を有する空燃比となる。この場合、第3空燃比幅ΔafLLが第4空燃比幅ΔafRSに対して相当量だけ大きく設定されているので、微粒子捕集フィルタ54内における微粒子の燃焼により酸素が消費されるにも関わらず、機関の空燃比が強制リーン空燃比afenLに制御される期間(リッチ反転時からリーン反転時までのリッチ期間、例えば、図13の時刻t1−t2)は、機関の空燃比が強制リッチ空燃比afenRに制御される期間(リーン反転時からリッチ反転時までの期間、例えば、時刻t2−t3)よりも短くなる。
この結果、図14から理解されるように、第2制御装置は、空燃比強制振動制御中において機関10から排出される微粒子の量(排出微粒子量)を第1制御装置の空燃比強制振動制御中の排出微粒子量よりも低下させることができる(図14における矢印DNを参照。)。この理由は以下の通りである。
排出微粒子量は、吸入空気量が一定である場合、機関の空燃比が理論空燃比よりもリッチ側である場合の方が理論空燃比よりもリーン側の空燃比である場合より多くなる。更に、排出微粒子量は、機関の空燃比が理論空燃比から遠ざかるほど多くなる。従って、空燃比強制振動制御における空燃比の振幅の中心を理論空燃比に一致させて機関の空燃比を振動させた場合(図14の幅AC1を参照。)より、空燃比の振幅の中心を理論空燃比よりもリーン側の空燃比に一致させて機関の空燃比を振動させた場合(図14の幅AC2を参照。)の方が排出微粒子量は少なくなる。
更に、図15から理解されるように、微粒子捕集フィルタ54内に捕集されている微粒子は、機関の空燃比がよりリーン側の空燃比に設定されることに基づいて、より多くの酸素が微粒子捕集フィルタ54に供給されるほど、より高い効率で燃焼する。一方、第2制御装置の空燃比強制振動制御における強制リーン空燃比afenLは、第1制御装置の空燃比強制振動制御における強制リーン空燃比afenLよりも、よりリーン側である。以上のことから、第2制御装置は、第1制御装置よりも効率良く微粒子を燃焼させることができる(図15における矢印UPを参照。)。それ故、第2制御装置は、空燃比強制振動制御を短時間内に終了させ、その空燃比強制振動制御よりもエミッションが良好となるフィードバック制御の期間を長くすることができる。
(第3実施形態)
次に、本発明の第3実施形態に係る内燃機関の制御装置(以下、「第3制御装置」とも称呼する。)について説明する。第3制御装置は、第1制御装置(又は第2制御装置)の機能に加え、上流側触媒53が劣化しているか否かを判定する機能(触媒劣化判定機能)を備えている点のみにおいて、第1制御装置(又は第2制御装置)と相違している。従って、以下、この相違点を中心として説明を加える。
第3制御装置は、第1制御装置のCPU71が実行するルーチンのうちの図9及び図10に示したルーチンを図16及び図17に示したルーチンにそれぞれ置換した点のみにおいて、第1制御装置と相違している。従って、以下、この相違点を中心として説明を加える。なお、図16及び図17において既に説明したステップと同一の処理を行うためのステップには、そのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は省略される。
図16に示した最大酸素量差取得ルーチンは、図9に示したルーチンに対して、ステップ1610及びステップ1620が追加されている。ステップ1610はステップ930とステップ940の間に挿入されている。ステップ1620は、ステップ955の次に、又はステップ960にて「No」と判定されたときに、又は、ステップ965の次に、実行される位置であって、ステップ970の直前に設けられている。
従って、CPU71は、図16のステップ925にて、現時点が空燃比強制振動制御を開始してから最初の1サイクルが経過した時点であると判定すると、ステップ930に進んで変数nの値に「1」を設定し、更に、ステップ1610に進んで酸素脱離量積算値SDRを「0」に設定する。即ち、酸素脱離量積算値SDRは、空燃比強制振動制御の2サイクル目が始まる時点にて「0」に設定される。
更に、CPU71は、図16のステップ950〜965の処理によって最大酸素量差DOSAmaxを更新した後にステップ1620に進み、その時点の酸素脱離量積算値SDRに先のステップ940にて読み込んだ最新の酸素脱離量OSADRを加えた値を、新たな酸素脱離量積算値SDRとして格納する。但し、CPU71は、変数nの値が「1」のときには、ステップ1620にて酸素脱離量積算値SDRを「0」に設定しておく。
以上により、CPU71は、空燃比強制振動制御の2サイクル目以降の各サイクル(前回のリーン反転時点から今回(最新)のリーン反転時点まで)における酸素脱離量OSADRの合計値を、酸素脱離量積算値SDRとして取得する。
図17に示したフィルタ異常判定ルーチンは、図10に示したルーチンに対して、ステップ1710が2箇所に追加されている。ステップ1710のうちの一つは、ステップ1035とステップ1795との間に挿入され、ステップ1710のうちの他の一つは、ステップ1050とステップ1795との間に挿入されている。
従って、CPU71は、図17のステップ1025及びステップ1030において、今回及び過去Nサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となっていると判定した場合、ステップ1035に進んで強制振動制御実行フラグXACTの値を「0」に設定するとともにフィルタ再生要求フラグXPMの値を「0」に設定する。次いで、CPU71はステップ1710に進み、上流側触媒53の劣化判定処理(便宜上、「触媒劣化判定1」と称呼する。)を実行する。
即ち、CPU71はステップ1710に進むと、その詳細を示した図18の「触媒劣化判定1ルーチン」の処理をステップ1800から開始する。次に、CPU71はステップ1810に進み、酸素脱離量積算値SDRを変数n−1(変数nは、終了しようとしている今回の空燃比強制振動制御のサイクル数であって、酸素脱離量積算値SDRに積算された酸素脱離量OSADRのサンプル数+1である。)で除することによって、上流側触媒53の最大酸素吸蔵量Cmax1を求める。換言すると、第3制御装置は、空燃比強制振動制御中に得られた複数の酸素脱離量OSADRの平均値を上流側触媒53の最大酸素吸蔵量Cmax1として取得する。
そして、CPU71はステップ1820に進み、先のステップ1810にて求められた最大酸素吸蔵量Cmax1が触媒劣化判定閾値Cmaxth以下であるか否かを判定する。このとき、最大酸素吸蔵量Cmax1が触媒劣化判定閾値Cmaxth以下であれば、CPU71は「上流側触媒53が劣化している」と判定し、ステップ1830に進んで上流側触媒劣化フラグXRの値を「1」に設定する。これに対し、最大酸素吸蔵量Cmax1が触媒劣化判定閾値Cmaxthより大きければ、CPU71は「上流側触媒53は劣化していない」と判定し、ステップ1840に進んで上流側触媒劣化フラグXRの値を「0」に設定する。その後、CPU71はステップ1895を介して図17のステップ1795へと進む。
加えて、CPU71は図17のステップ1045にて、フィルタ再生正常フラグXSEIの値を「0」に、フィルタ再生異常フラグXIJOの値を「1」に、フィルタ再生判定保留フラグXHRYの値を「0」に設定し、更に、ステップ1050にて、強制振動制御実行フラグXACTの値を「0」に設定するとともにフィルタ再生要求フラグXPMの値を「0」に設定した後においてもステップ1710に進み、図18の「触媒劣化判定1ルーチン」の処理を行う。即ち、空燃比強制振動制御中に得られた複数の酸素脱離量OSADRの平均値を上流側触媒53の最大酸素吸蔵量Cmax1として取得し、その最大酸素吸蔵量Cmax1と触媒劣化判定閾値Cmaxthとの比較に基づいて上流側触媒53が劣化しているか否かを判定する。
以上、説明したように、第3制御装置もフィルタ再生状態特定手段(図17を参照。)を備える。そのフィルタ再生状態特定手段は、酸素吸蔵量OSAKZに基づくことなく酸素脱離量OSADRに基づいて(即ち、酸素脱離量OSADRのみを用いて)上流側触媒53の最大酸素吸蔵量Cmax1を取得するとともに(図16のステップ930、ステップ935、ステップ1610、ステップ940、ステップ1620、図17のステップ1710及び図18のステップ1810を参照。)、その取得された最大酸素吸蔵量Cmax1に基づいて上流側触媒53が劣化しているか否かを判定する触媒劣化判定手段を含んでいる(図17のステップ1710及び図18を参照。)。
上述したように、酸素吸蔵量OSAKZは、微粒子捕集フィルタ54内における微粒子の燃焼により消費された酸素の量と、上流側触媒53に吸蔵された酸素の量と、の和である。従って、酸素吸蔵量OSAKZは、微粒子捕集フィルタ54内において燃焼した微粒子の量に依存して変化するので、上流側触媒53の最大酸素吸蔵量Cmax1を正確に表していない場合がある。これに対し、酸素脱離量OSADRは、上流側触媒53から脱離した(未燃物を酸化させるために未燃物に供給された)酸素の量である。即ち、酸素脱離量OSADRは微粒子捕集フィルタ54内において燃焼した微粒子及び微粒子捕集フィルタ54内に残存する微粒子の量に依存せず、上流側触媒53の最大酸素吸蔵量Cmax1を精度良く表す。
従って、第3制御装置のように、酸素脱離量OSADRに基づいて求められた上流側触媒53の最大酸素吸蔵量Cmax1に基づいて、上流側触媒53が劣化しているか否かを判定することにより、上流側触媒53が劣化しているか否かを精度良く判定することができる。更に、これによれば、微粒子捕集フィルタ54の再生と、重要な制御項目である上流側触媒53の劣化判定とを同時に実行することができる。なお、第3制御装置は、酸素脱離量OSADRの平均値(ステップ1810を参照。)に基づいて上流側触媒53の最大酸素吸蔵量Cmax1を取得しているが、空燃比強制振動制御中のあるサイクルにおける酸素脱離量OSADRを上流側触媒53の最大酸素吸蔵量Cmax1として取得してもよい。
(第4実施形態)
次に、本発明の第4実施形態に係る内燃機関の制御装置(以下、「第4制御装置」とも称呼する。)について説明する。第4制御装置は、第3制御装置のCPU71が実行するルーチンのうちの図16及び図17に示したルーチンを図19及び図20に示したルーチンにそれぞれ置換した点のみにおいて、第3制御装置と相違している。従って、以下、この相違点を中心として説明を加える。なお、図19及び図20(更に、図21)において既に説明したステップと同一の処理を行うためのステップには、そのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は省略される。
図19に示した最大酸素量取得ルーチンは、図16のステップ1610をステップ1910に置換するとともに、図16のステップ1620をステップ1920に置換した点のみにおいて、図16に示したルーチンと相違している。
従って、CPU71は、図19のステップ925にて、現時点が空燃比強制振動制御を開始してから最初の1サイクルが経過した時点であると判定すると、ステップ930に進んで変数nの値に「1」を設定し、更に、ステップ1910に進んで酸素脱離量積算値SDRを「0」に設定するとともに、酸素吸蔵量積算値SKZを「0」に設定する。即ち、酸素脱離量積算値SDR及び酸素吸蔵量積算値SKZは、空燃比強制振動制御の2サイクル目が始まる時点にて共に「0」に設定される。
更に、CPU71は、図19のステップ950〜965の処理によって最大酸素量差DOSAmaxを更新した後にステップ1920に進み、
・その時点の酸素脱離量積算値SDRに先のステップ940にて読み込んだ最新の酸素脱離量OSADRを加えた値を、新たな酸素脱離量積算値SDRとして格納し、且つ、
・その時点の酸素吸蔵量積算値SKZに先のステップ940にて読み込んだ最新の酸素吸蔵量OSAKZを加えた値を、新たな酸素吸蔵量積算値SKZとして格納する。
但し、CPU71は、変数nの値が「1」のときには、ステップ1920にて酸素脱離量積算値SDRを「0」に設定し、且つ、酸素吸蔵量積算値SKZを「0」に設定する。
以上により、CPU71は、空燃比強制振動制御の2サイクル目以降の各サイクル(前回のリーン反転時点から今回(最新)のリーン反転時点まで)における酸素脱離量OSADRの合計値及び酸素吸蔵量OSAKZの合計値を、酸素脱離量積算値SDR及び酸素吸蔵量積算値SKZとしてそれぞれ取得する。
図20に示したフィルタ異常判定ルーチンは、図17のステップ1050に続くステップ1710を、図20のステップ1050に続くステップ2010に置換した点のみにおいて、図17に示したルーチンと相違している。
従って、CPU71は、図20のステップ1040において最大酸素量差DOSAmaxが異常判定閾値IJOthより小さいと判定すると、ステップ1045に進んでフィルタ再生正常フラグXSEIの値を「0」に、フィルタ再生異常フラグXIJOの値を「1」に、フィルタ再生判定保留フラグXHRYの値を「0」に設定する。更に、CPU71は、ステップ1050にて、強制振動制御実行フラグXACTの値を「0」に設定するとともにフィルタ再生要求フラグXPMの値を「0」に設定し、ステップ2010に進んで上流側触媒53の劣化判定処理(便宜上、「触媒劣化判定2」と称呼する。)を実行する。
即ち、CPU71はステップ2010に進むと、その詳細を示した図21の「触媒劣化判定2ルーチン」の処理をステップ2100から開始する。次に、CPU71はステップ2110に進み、酸素脱離量積算値SDRを変数n−1(変数nは、終了しようとしている今回の空燃比強制振動制御のサイクル数であって、酸素脱離量積算値SDRに積算された酸素脱離量OSADRのサンプル数+1である。)で除することによって、酸素脱離量平均値DRavを算出する。次に、CPU71はステップ2120に進み、同様に、酸素吸蔵量積算値SKZを変数n−1(変数nは、終了しようとしている今回の空燃比強制振動制御のサイクル数であって、酸素吸蔵量積算値SKZに積算された酸素吸蔵量OSAKZのサンプル数+1である。)で除することによって、酸素吸蔵量平均値KZavを算出する。
次に、CPU71はステップ2130に進み、酸素脱離量平均値DRavと酸素吸蔵量平均値KZavとの平均値を求め、その平均値を上流側触媒53の最大酸素吸蔵量Cmax1として格納する。換言すると、第4制御装置は、空燃比強制振動制御中に得られた複数の酸素脱離量OSADRの平均値と、空燃比強制振動制御中に得られた複数の酸素吸蔵量OSAKZの平均値と、の平均値を上流側触媒53の最大酸素吸蔵量Cmax1として取得する。
そして、CPU71はステップ2140に進み、先のステップ2130にて求められた最大酸素吸蔵量Cmax1が触媒劣化判定閾値Cmaxth以下であるか否かを判定する。このとき、最大酸素吸蔵量Cmax1が触媒劣化判定閾値Cmaxth以下であれば、CPU71は「上流側触媒53が劣化している」と判定し、ステップ2150に進んで上流側触媒劣化フラグXRの値を「1」に設定する。これに対し、最大酸素吸蔵量Cmax1が触媒劣化判定閾値Cmaxthより大きければ、CPU71は「上流側触媒53は劣化していない」と判定し、ステップ2160に進んで上流側触媒劣化フラグXRの値を「0」に設定する。その後、CPU71はステップ2195を介して図20のステップ2095へと進む。
以上、説明したように、第4制御装置もフィルタ再生状態特定手段(図20を参照。)を備える。そのフィルタ再生状態特定手段は、酸素量差DOSAが所定値以下であるか否かを判定し(実際には、図20のステップ1040にて最大酸素量差DOSAmaxが異常判定閾値IJOthより小さいか否かを判定し)、酸素量差DOSAが所定値以下である場合、酸素吸蔵量OSAKZと酸素脱離量OSADRとに基づいて上流側触媒53の最大酸素吸蔵量Cmax1を取得する(図19のステップ1920及び図21のステップ2110〜ステップ2130等を参照。)。そして、第4制御装置は、その取得された最大酸素吸蔵量Cmax1に基づいて上流側触媒53が劣化しているか否かを判定する触媒劣化判定手段を含んでいる(図20のステップ2140〜ステップ2160を参照。)。
酸素量差DOSAが所定値IJOth以下である場合、上流側触媒53及び微粒子捕集フィルタ54に流入した酸素は微粒子捕集フィルタ54内において殆ど消費されていないことを意味する。従って、この場合には、上記第4制御装置のように、酸素吸蔵量OSAKZと酸素脱離量OSADRとに基づいて上流側触媒53の最大酸素吸蔵量Cmax1を取得するとともに、その取得された最大酸素吸蔵量Cmax1に基づいて上流側触媒53が劣化しているか否かを判定することができる。これにより、最大酸素吸蔵量Cmax1を「酸素吸蔵量OSAKZと酸素脱離量OSADRとの両者」を用いてより精度良く求めることができる(最大酸素吸蔵量Cmax1を求めるためのデータ数が増大する)ので、上流側触媒53が劣化しているか否かを精度良く判定することができる。なお、第4制御装置は、酸素脱離量OSADRの平均値である酸素脱離量平均値DRav(ステップ2110を参照。)と、酸素吸蔵量OSAKZの平均値である酸素吸蔵量平均値KZavとに基づいて上流側触媒53の最大酸素吸蔵量Cmax1を取得しているが(ステップ2130を参照。)、空燃比強制振動制御中のあるサイクルにおける酸素脱離量OSADRと酸素吸蔵量OSAKZとの平均値を上流側触媒53の最大酸素吸蔵量Cmax1として取得してもよい。
(第5実施形態)
次に、本発明の第5実施形態に係る内燃機関の制御装置(以下、「第5制御装置」とも称呼する。)について説明する。第5制御装置は、第1制御装置のCPU71が実行するルーチンのうちの図10に示したルーチンを図22に示したルーチンに置換した点のみにおいて、第1制御装置と相違している。従って、以下、この相違点を中心として説明を加える。なお、図22において既に説明したステップと同一の処理を行うためのステップには、そのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は省略される。
所定のタイミングになると、CPU71は図22のステップ2200から処理を開始し、ステップ710に進んで強制振動制御実行フラグXACTの値が「1」であるか否かを判定する。強制振動制御実行フラグXACTの値が「1」でなければ、CPU71はステップ710にて「No」と判定し、ステップ2295に直接進んで本ルーチンを一旦終了する。
一方、強制振動制御実行フラグXACTの値が「1」に設定されていると、CPU71はステップ710にて「Yes」と判定してステップ2210に進み、空燃比強制振動制御開始後の吸入空気量Gaの積算値SGaを読み込む。
この積算値SGaは所定時間Δtsの経過毎に実行される図示しない吸入空気量積算ルーチンにより更新されている。即ち、CPU71は、所定時間Δtsの経過毎に、その時点の積算値SGaにその時点にてエアフローメータ61により検出されている吸入空気量Ga(又はΔts・Gaであってもよい。)を加えることにより、積算値SGaを更新する。更に、CPU71は、空燃比強制振動制御が実行されていないとき(即ち、通常空燃比フィードバック制御中)、積算値SGaを常に「0」に設定する。その結果、積算値SGaは、空燃比強制振動制御開始後の吸入空気量Gaの積算値となる。
次に、CPU71はステップ2220に進み、積算値SGaが所定値(フィルタ再生状態判定実行閾値)SGathより小さいか否かを判定する。
いま、空燃比強制振動制御を開始した後であって、積算値SGaが所定値SGathよより小さいと仮定する。この場合、CPU71はステップ2220にて「Yes」と判定しステップ1015に進み、最大酸素量差DOSAmaxが正常判定閾値SEIJOth以上であるか否かを判定する。そして、最大酸素量差DOSAmaxが正常判定閾値SEIJOth以上である場合、CPU71はステップ1015にて「Yes」と判定してステップ1020に進み、微粒子捕集フィルタ54の再生が正常に行われたと判定する。即ち、CPU71はフィルタ再生正常フラグXSEIの値を「1」に、フィルタ再生異常フラグXIJOの値を「0」に、フィルタ再生判定保留フラグXHRYの値を「0」に設定する。これらのフラグの値はバックアップRAM74内に格納される。
次に、CPU71は、前述したステップ1025以降に進み、今回及び過去Nサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となっているとき、フィルタ再生要求フラグXPMの値及び強制振動制御実行フラグXACTの値を共に「0」に設定することによって、空燃比強制振動制御を終了し且つ通常空燃比フィードバック制御を再開する(図22のステップ1025〜ステップ1035、図7のステップ710及びステップ720を参照。)。
これに対し、ステップ1015の判定時において、最大酸素量差DOSAmaxが正常判定閾値SEIJOthより小さければ、CPU71はステップ1015にて「No」と判定し、ステップ2295に直接進んで本ルーチンを一旦終了する。
ところで、上記ステップ2220の所定値(フィルタ再生状態判定実行閾値)SGathは、吸入空気量の積算値SGaが所定値SGathに到達するまでに、微粒子捕集フィルタ54内において微粒子が十分に燃焼する機会があるように定められている。換言すると、所定値SGathは、微粒子捕集フィルタ54の再生が正常である限り、積算値SGaが所定値SGathに到達するまでに、
・最大酸素量差DOSAmaxが正常判定閾値SEIJOthより大きくなることにより微粒子捕集フィルタ54の再生が正常であったとの判定がなされ(ステップ1015及びステップ1020を参照。)、且つ、
・今回及び過去Nサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となることにより、空燃比強制振動制御が終了される(ステップ1025〜ステップ1035を参照。)、
であろう値に設定されている。
換言すると、微粒子捕集フィルタ54の再生状態が正常ではない場合、吸入空気量の積算値SGaが所定値SGathに到達するまでに、最大酸素量差DOSAmaxが正常判定閾値SEIJOthより大きくならない。従って、ステップ1035が実行されることがないので、空燃比強制振動制御中において吸入空気量の積算値SGaが所定値SGathに到達する。
この場合、CPU71はステップ2220に進んだとき、同ステップ2220にて「No」と判定してステップ1040に進み、最大酸素量差DOSAmaxが異常判定閾値IJOthより小さいか否かを判定する。そして、最大酸素量差DOSAmaxが異常判定閾値IJOthより小さければ、CPU71はステップ1040にて「Yes」と判定してステップ1045に進み、微粒子捕集フィルタ54の再生状態が異常であると判定する。即ち、CPU71はフィルタ再生正常フラグXSEIの値を「0」に、フィルタ再生異常フラグXIJOの値を「1」に、フィルタ再生判定保留フラグXHRYの値を「0」に設定する。
次いで、CPU71はステップ1050に進み、強制振動制御実行フラグXACTの値を「0」に設定するとともにフィルタ再生要求フラグXPMの値を「0」に設定し、ステップ2295に進んで本ルーチンを一旦終了する。この結果、空燃比強制振動制御が終了され、通常空燃比フィードバック制御が再開される(図7のステップ710及びステップ720を参照。)。これは、微粒子捕集フィルタ54に何らかの異常が発生しているのであるから、空燃比強制振動制御を継続して微粒子捕集フィルタ54の再生を継続することは無駄となるからである。
一方、CPU71がステップ1040に進んだとき、最大酸素量差DOSAmaxが異常判定閾値IJOth以上であると、CPU71はステップ1040にて「No」と判定してステップ2230に進み、フィルタ再生正常フラグXSEIの値が「1」であるか否かを判定する。即ち、今回の空燃比強制振動制御の開始後から吸入空気量の積算値SGaが所定値SGathに到達するまでに、今回及び過去Nサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下とはならなかったが、最大酸素量差DOSAmaxが正常判定閾値SEIJOth以上となり、微粒子捕集フィルタ54の再生が正常であると判定されていたか否かを判定する。
そして、フィルタ再生正常フラグXSEIの値が「1」であれば、CPU71はステップ2230にて「Yes」と判定してステップ1050に直接進み、空燃比強制振動制御を終了する。これに対し、フィルタ再生正常フラグXSEIの値が「0」であれば、CPU71はステップ2230にて「No」と判定してステップ1055に進み、微粒子捕集フィルタ54の再生状態を正常であるとも異常であるとも判定できなかったと判断する。即ち、CPU71はフィルタ再生正常フラグXSEIの値を「0」に、フィルタ再生異常フラグXIJOの値を「0」に、フィルタ再生判定保留フラグXHRYの値を「1」に設定する。その後、CPU71はステップ1050に進み、空燃比強制振動制御を終了するための処理を行う(図7のステップ710及びステップ720を参照。)。
以上、説明したように、第5制御装置は、空燃比強制振動制御を開始した後であって吸入空気量の積算値SGaが所定値SGathに到達するまでに、最大酸素量差DOSAmaxが正常判定閾値SEIJOth以上となることに基づいて微粒子捕集フィルタ54の再生が正常であると判定された場合には、今回及び過去Nサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となったときに空燃比強制振動制御を終了して通常空燃比フィードバック制御を再開するように構成されている。これにより、空燃比強制振動制御が必要以上に実行され続けることが回避される。この結果、通常空燃比フィードバック制御が実行される期間を長くすることができるので、エミッションを良好にすることができる。
(第6実施形態)
次に、本発明の第6実施形態に係る内燃機関の制御装置(以下、「第6制御装置」とも称呼する。)について説明する。第6制御装置は、第1制御装置等における酸素吸蔵量OSAKZの算出方法を変更することにより、空燃比強制振動制御中において微粒子捕集フィルタ54内で燃焼した微粒子の量をより正確に表す酸素量差DOSA(DOSA=OSAKZ−OSADR)を算出する点のみにおいて、第1制御装置等と相違している。
より具体的に述べると、第6制御装置は、上述した(10)式乃至(13)式に基づいて酸素吸蔵量OSAKZ及び酸素脱離量OSADRを算出する代わりに、図23にフローチャートにより示したルーチンを所定時間(計算周期tsample)の経過毎に実行することに基づいてこれらの算出を行う。より詳細には、第6制御装置は、酸素吸蔵量OSAKZの算出方法を第1制御装置による算出方法から変更し、酸素脱離量OSADRの算出方法は第1制御装置による算出方法と同一の方法を用いている。
CPU71は、所定のタイミングになるとステップ2300から処理を開始し、ステップ2305に進んで強制振動制御実行フラグXACTの値が「1」であるか否かを判定する。このとき、強制振動制御実行フラグXACTの値が「0」であると、CPU71はステップ2305にて「No」と判定し、ステップ2395に直接進んで本ルーチンを一旦終了する。
一方、現時点において強制振動制御実行フラグXACTの値が「1」であると、CPU71はステップ2305にて「Yes」と判定し、ステップ2310に進んで現時点における上流側目標空燃比abyfrが強制リーン空燃比afenLに設定されているか否かを判定する。
ここで、現時点における上流側目標空燃比abyfrが強制リーン空燃比afenLに設定されていると仮定する。この場合、CPU71はステップ2310にて「Yes」と判定し、以下に述べるステップ2315乃至ステップ2335の処理を順に行い、ステップ2395に進んで本ルーチンを一旦終了する。
ステップ2315:CPU71は、微粒子捕集フィルタ54に流入するガスの温度(以下、「フィルタ流入ガス温度」と称呼する。)TempPMを、現時点の機関回転速度NE、現時点の機関負荷KL(吸入空気量Ga又はアクセルペダル操作量Accpでもよい。)及び現時点の点火時期AigをテーブルMapTempPM(NE,KL,Aig)に適用することにより推定する。テーブルMapTempPM(NE,KL,Aig)は、予め実験により求められ、ROM72内に格納されている。なお、微粒子捕集フィルタ54の排ガスの流入口に温度センサを配設し、CPU71はその温度センサの出力に基づいてフィルタ流入ガス温度TempPMを取得してもよい。
ステップ2320:CPU71は、上記ステップ2315にて取得されたフィルタ流入ガス温度TempPMをステップ2320内に示した「フィルタ流入ガス温度TempPMと温度補正係数Ktpmとの関係を示すテーブル」に適用することにより、温度補正係数Ktpmを決定する。このテーブルによれば、フィルタ流入ガス温度TempPMが所定温度T0以下の場合、温度補正係数Ktpmは略0に設定される。所定温度T0は微粒子捕集フィルタ54に酸素が供給された状態において微粒子が燃焼することができる最低の温度である。また、このテーブルによれば、フィルタ流入ガス温度TempPMが所定温度T0よりも大きくなるほど、温度補正係数Ktpmは大きくなるように設定される。これは、微粒子捕集フィルタ54の温度が高いほど、微粒子の燃焼効率が大きくなることに基づいている。
ステップ2325:CPU71は、上流側空燃比センサ66が検出している現時点の検出空燃比(上流側空燃比)abyfsを、ステップ2325内に示した「上流側空燃比abyfsと流入ガス空燃比補正係数(以下、単に「空燃比補正係数」とも称呼する。)Kafとの関係を示すテーブル」に適用することにより、空燃比補正係数Kafを決定する。このテーブルによれば、上流側空燃比abyfsが理論空燃比stoichよりもリッチ側の空燃比である場合、空燃比補正係数Kafは0に設定される。上流側空燃比abyfsが理論空燃比stoichよりもリッチ側の空燃比であると、微粒子捕集フィルタ54に酸素が供給されないので、微粒子は燃焼しないからである。また、空燃比補正係数Kafは、上流側空燃比abyfsが理論空燃比stoichよりもリーンな空燃比になるほど(空燃比が大きくなるほど)、大きくなるように決定される。これは、微粒子捕集フィルタ54内に捕集されている微粒子は、微粒子捕集フィルタ54に「ある一定の酸素量の酸素」が供給された場合であっても、その酸素濃度が高いほど効率良く燃焼することに基づく。換言すると、微粒子捕集フィルタ54に流入するガスの空燃比が大きくなる(よりリーンなガスである)ほど、機関10から排出された過剰の酸素のうち、より多くの酸素が微粒子を燃焼させるために使用され、より少ない酸素が上流側触媒53に吸蔵されることに基づく。
ステップ2330:CPU71は、下記(15)式に従って、酸素吸蔵量の変化量ΔOSAKZを算出する。(15)式において、値「0.23」は大気中に含まれる酸素の重量割合である。mfrは所定時間(計算周期tsample)内の燃料噴射量Fiの合計量(計算周期tsample内において機関10に供給された燃料の総量)である。stoichは理論空燃比(例えば、14.7)である。abyfsは計算周期(所定時間)tsampleにおいて上流側空燃比センサ66により測定された空燃比である。なお、abyfsは計算周期tsample内の上流側空燃比センサ66により検出された空燃比の平均値に置換してもよい。
ΔOSAKZ=Ktpm・Kaf・{0.23・mfr・(abyfs − stoich)} …(15)
ステップ2335:CPU71は、現時点の酸素吸蔵量OSAKZに、上記ステップ2330にて求められた酸素吸蔵量の変化量ΔOSAKZ(又は、ΔOSAKZ・tsampleであってもよい。)を加えた値を、酸素吸蔵量OSAKZとして設定する。
このような処理は、上流側目標空燃比abyfrが強制リーン空燃比afenLに設定されている間、繰り返し実行される。更に、酸素吸蔵量OSAKZは、空燃比強制振動制御の1サイクル(前回のリッチ反転時点〜今回のリッチ反転時点)が経過した直後において「0」に設定される(図9のステップ915及びステップ970を参照。)従って、CPU71は、ステップ2315乃至ステップ2335の処理により、空燃比強制振動制御の1サイクルにおける酸素吸蔵量OSAKZを下記(16)式に従って求めることになる。(16)式における積算の開始時点taは前回のリッチ反転時点であり、積算の終了時点tbは前回のリーン反転時点である。
酸素吸蔵量OSAKZ=ΣΔOSAKZ(区間t=ta〜tb) …(16)
一方、現時点が空燃比強制振動制御中であって上流側目標空燃比abyfrが強制リッチ空燃比afenRに設定されていると仮定する。この場合、CPU71はステップ2310にて「No」と判定し、以下に述べるステップ2340乃至ステップ2345の処理を順に行い、ステップ2395に進んで本ルーチンを一旦終了する。
ステップ2340:CPU71は、上記(12)式と同一の式である下記(17)式に従って、酸素脱離量の変化量ΔOSADRを算出する。(17)式における各値は上記(12)式における各値と同一である。
ΔOSADR=0.23・mfr・(stoich − abyfs) …(17)
ステップ2345:CPU71は、現時点の酸素脱離量OSADRに、上記ステップ2340にて求められた酸素脱離量の変化量ΔOSADR(又は、ΔOSADR・tsampleであってもよい。)を加えた値を、酸素脱離量OSADRとして設定する。
このような処理は、上流側目標空燃比abyfrが強制リッチ空燃比afenRに設定されている間、繰り返し実行される。更に、酸素脱離量OSADRは、空燃比強制振動制御の1サイクル(前回のリッチ反転時点〜今回のリッチ反転時点)が経過した直後において「0」に設定される(図9のステップ915及びステップ970を参照。)従って、CPU71は、ステップ2340及びステップ2345の処理により、空燃比強制振動制御の1サイクルにおける酸素脱離量OSADRを上記(13)式と同一の式である下記(18)式に従って求めることになる。(18)式における積算の開始時点tbは前回のリーン反転時点であり、積算の終了時点tcは今回のリッチ反転時点である。
酸素脱離量OSADR=ΣΔOSADR(区間t=tb〜tc) …(18)
以上、説明したように、第6制御装置は、
空燃比強制振動制御中の第1期間(上流側目標空燃比が強制リーン空燃比afenLに設定されている期間)における酸素吸蔵量OSAKZを、「所定時間あたりに機関10から排出された酸素の過剰量(0.23・mfr・(abyfs − stoich))」を、
・微粒子捕集フィルタの温度に対応する温度(フィルタ流入ガス温度TempPM)及び
・微粒子捕集フィルタ54に流入するガスの空燃比(上流側空燃比センサ66が検出している現時点の検出上流側空燃比abyfs)、
に応じて補正した量を、第1期間に渡って積算することにより、算出するように構成されている(図23を参照。)。
この結果、算出される酸素吸蔵量OSAKZは、機関10から排出された過剰の酸素のうちの微粒子の燃焼に使用された量(機関10から排出された過剰の酸素のうち上流側触媒53に吸蔵された酸素ではない酸素の量)をより精度良く表す。その結果、酸素量差DOSA及び最大酸素量差DOSAmaxが、燃焼した微粒子の量をより精度良く表す値となるので、微粒子捕集フィルタ54の再生が正常に行われたのか、異常であったのか、をより精度良く判定することができる。
なお、ステップ2315及びステップ2320におけるフィルタ流入ガス温度は、微粒子捕集フィルタ54の温度の代用値であるから、微粒子捕集フィルタ54内の温度(微粒子捕集フィルタ54の床温)を検出する温度センサを配設し、その温度センサから取得される温度により置換してもよい。
(第7実施形態)
次に、本発明の第7実施形態に係る内燃機関の制御装置(以下、「第7制御装置」とも称呼する。)について説明する。第7制御装置は、空燃比強制振動制御中(微粒子捕集フィルタの再生中)において微粒子捕集フィルタ54の温度が異常高温になると予想される場合に空燃比強制振動制御を直ちに終了する機能が追加さている点のみにおいて、第1制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
第7制御装置のCPU71は、第1制御装置のCPU71が実行するルーチンを実行するようになっている。但し、第7制御装置のCPU71は、図9に示したルーチンのステップ945とステップ950との間に、図24に示した「微粒子捕集フィルタ過熱防止ルーチン」を実行するようになっている。
より具体的に説明すると、第7制御装置のCPU71は、図9のステップ945にて空燃比強制振動制御中の1サイクル内における酸素量差DOSAを取得した後、図24のステップ2410に進み、その時点にてエアフローメータ61により検出されている吸入空気量Gaを読み込む。この吸入空気量Gaは、排気温度が高いほど大きくなり、従って、微粒子捕集フィルタ54の温度に応じて大きくなる。換言すると、吸入空気量Gaは、微粒子捕集フィルタ54の温度が高いほど大きくなる「フィルタ温度対応値」として取得される。
次いで、CPU71は、ステップ2420に進み、上記ステップ2410にて読み込んだ吸入空気量Gaを、吸入空気量Gaと異常高温判定閾値(過熱判定閾値)Dthとの関係を定めたステップ2420のブロック内に示したテーブルに適用することにより、異常高温判定閾値Dthを決定する。このテーブルによれば、吸入空気量Gaが大きいほど異常高温判定閾値Dthが小さくなるように定められる。この理由につては後述する。
次に、CPU71はステップ2430に進み、図9のステップ945にて求められている酸素量差DOSAが上記ステップ2420にて決定された異常高温判定閾値Dth以上であるか否かを判定する。そして、酸素量差DOSAが異常高温判定閾値Dth以上であると、CPU71は微粒子捕集フィルタ54が過熱状態に至ると判断してステップ2430からステップ2440に進み、強制振動制御実行フラグXACTの値を「0」に設定するとともにフィルタ再生要求フラグXPMの値を「0」に設定する。その後、CPU71は図9のステップ950以降に進む。この結果、CPU71は図7のステップ710にて「No」と判定してステップ720に進むようになる。従って、空燃比強制振動制御が終了され、通常空燃比フィードバック制御が再開される。
これに対し、酸素量差DOSAが異常高温判定閾値Dthより小さければ、CPU71はステップ2440に進まず、ステップ2430から図9のステップ950以降に進む。この結果、強制振動制御実行フラグXACTの値及びフィルタ再生要求フラグXPMの値は、何れも「1」に維持されるので、空燃比強制振動制御が継続される。
以上、説明したように、第7制御装置は、酸素吸蔵量OSAKZと酸素脱離量OSADRとの差(酸素量差DOSA)に基づいて微粒子捕集フィルタ54が過熱状態に至るか否かを判定する過熱判定手段(ステップ2430)を含むとともに、微粒子捕集フィルタ54が過熱状態に至ると判定されたときに空燃比強制振動制御を終了するように構成された「空燃比強制振動制御手段」を備えている(ステップ2430及びステップ2440を参照。)。
微粒子が微粒子捕集フィルタ54内において燃焼すれば、当然に熱が発生する。その熱の量は、微粒子捕集フィルタ54内において燃焼した微粒子の量に応じる。一方、酸素吸蔵量OSAKZと酸素脱離量OSADRと(実際にはこれらの差(酸素量差DOSA))は微粒子捕集フィルタ54内において燃焼した微粒子の量を表す。従って、例えば、酸素量差DOSAが異常高温判定閾値(過熱判定閾値)Dthより大きいと判定されたとき微粒子捕集フィルタ54が過熱状態に至ると判定することができる。そして、第7制御装置は、微粒子捕集フィルタ54が過熱状態に至ると判定されたとき、空燃比強制振動制御を直ちに終了し、微粒子捕集フィルタ54内における微粒子のそれ以上の燃焼を停止させる。この結果、微粒子捕集フィルタ54の再生中に微粒子捕集フィルタ54が過熱状態となって劣化或は破損することを回避することができる。
更に、第7制御装置は、微粒子捕集フィルタ54の温度に応じて大きくなるフィルタ温度対応値(吸入空気量Ga)を取得するとともに、取得したフィルタ温度対応値が大きいほど過熱判定閾値(異常高温判定閾値Dth)を小さくするように構成されている。
微粒子捕集フィルタ54の温度が限界温度以上になると、微粒子捕集フィルタ54は破損或は劣化する虞がある。従って、微粒子捕集フィルタ54の温度が上昇すれば、微粒子捕集フィルタ54の温度を限界温度に到達させないようにするために、「微粒子捕集フィルタ54内において燃焼させることができる微粒子の量(より厳密には単位時間あたりに燃焼する微粒子の量)」は少なくなる。燃焼する微粒子の量が多いほど発熱量は大きくなり、微粒子の燃焼による微粒子捕集フィルタ54の温度上昇分が大きくなるからである。更に、微粒子捕集フィルタ54の温度が上昇するほど、微粒子は効率良く燃焼する(単位時間あたりに燃焼する微粒子の量が増大する)。
これらのことから、空燃比強制振動制御中において、微粒子捕集フィルタ54の温度が高いほど、微粒子捕集フィルタ54は過熱状態に至り易い。そこで、第7制御装置のように、取得した微粒子捕集フィルタの温度に対応する値(吸入空気量Ga)が大きいほど過熱判定閾値Dthを小さくする。これによれば、吸入空気量及び排ガス温度等により変化する微粒子捕集フィルタ54の温度に拘らず、微粒子捕集フィルタ54が過熱状態に陥ると予測でき、その場合に空燃比強制振動制御を中止することができる。従って、微粒子捕集フィルタ54の再生中に微粒子捕集フィルタ54が過熱状態となって劣化或は破損することを回避することができる。
なお、ステップ2410及びステップ2420にて用いる吸入空気量Gaは、微粒子捕集フィルタ54の温度の代用値であるから、排気温度、或は、機関10の負荷等に置換してもよい。また、微粒子捕集フィルタ54内の温度(微粒子捕集フィルタ54の床温)を検出する温度センサを配設し、ステップ2410及びステップ2420にて用いる吸入空気量Gaに代えてその温度センサから取得される温度を使用してもよい。
以上、説明したように、本発明の実施形態に係る内燃機関の制御装置は、空燃比強制振動制御を採用することにより、エミッションを過度に悪化させることなく、微粒子捕集フィルタを再生させることができる。また、各実施形態に係る制御装置は、微粒子捕集フィルタ54が正常に再生されているか否か、微粒子捕集フィルタ54の再生状態が異常であるか否かを判定することができる。従って、微粒子捕集フィルタ54のメンテナンスに役立つ情報を制御装置の外部に提供することができる。
本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、サブフィードバック制御は、特開2007−278186号公報に開示されているように下流側空燃比センサ67の出力値Voxsが下流側目標値に一致するように、上流側空燃比センサ66によって検出される空燃比を見かけ上補正するような態様であってもよい。また、サブフィードバック制御は、特開平06−010738号公報に開示されているように、下流側空燃比センサ67の出力値Voxsに基づいて、上流側空燃比センサ66の出力値に基づいて作成される空燃比補正係数を変更する態様であってもよい。なお、微粒子捕集フィルタの再生状態を特定するために使用する酸素脱離量を取得する第2期間は、微粒子捕集フィルタの再生状態を特定するために使用する酸素吸蔵量を取得した第1期間に「連続」している期間であることが好ましい。この場合、第2期間は、第1期間の直後の期間であっても第1期間の直前の期間であってもよい。また、微粒子捕集フィルタの再生状態を特定するために使用する酸素脱離量を取得する第2期間は、微粒子捕集フィルタの再生状態を特定するために使用する酸素吸蔵量を取得した第1期間と同じ一回の空燃比強制振動制御内の期間であればよい。
10…内燃機関(ガソリンエンジン)、20…シリンダブロック部、25…燃焼室、30…シリンダヘッド部、31…吸気ポート、32…吸気弁、34…排気ポート、35…排気弁、39…インジェクタ、40…吸気系統、41…インテークマニホールド、44…スロットル弁、50…排気系統、51…エキゾーストマニホールド、51a…枝部、51b…集合部、52…エキゾーストパイプ、53…上流側触媒、54…微粒子捕集フィルタ、55…下流側触媒、61…熱線式エアフローメータ、66…上流側空燃比センサ、67…下流側空燃比センサ、68…アクセル開度センサ、70…電気制御装置、71…CPU。