本発明の実施形態を説明する前に、本発明の実施形態に関連した参考例を図1〜図11を参照して説明する。図1は、本参考例の装置の全体構成を模式的に示すブロック図である。同図中、1は例えば自動車やハイブリッド車に搭載されるエンジン(内燃機関)であり、このエンジン1が燃料及び空気の混合気を燃焼させて生成する排ガスは、該エンジン1の排気ポート2に連通する排気通路3を介して大気側に排出される。排気通路3には、排ガスを浄化するための触媒装置4,5が上流側から順次介装されている。排気通路3のうち、触媒装置4の上流側の部分(排気ポート2と触媒装置4の間の部分)と、両触媒装置4,5の間の部分と、触媒装置5の下流側の部分とはそれぞれ管状の通路形成物である排気管6a,6b,6cにより構成されている。
各触媒装置4,5はそれぞれ触媒7(本参考例では三元触媒)を内蔵するものである。この触媒7は、ハニカム構造の通路形成物であり、その内部を排ガスが流れるようになっている。尚、触媒装置4,5は一体構造のもの(例えば同一のケース内に三元触媒からなる二つの触媒床を上流部と下流部とに内蔵したもの)であってもよい。
本参考例の装置では、特に触媒装置4の良好な浄化性能(触媒装置4によるCO、HC、NOxの浄化性能)を確保するようにエンジン1の排ガスの空燃比を制御する。そして、この空燃比制御を行うために、触媒装置4,5の間の排気通路3(排気管6bにより形成される排気通路)にO2センサ8が配置され、触媒装置4の上流側の排気通路3(排気管6aにより形成される排気通路)に広域空燃比センサ9が配置されている。
ここで、O2センサ8は、本発明における排ガスセンサに相当するものであり、その基本構造や特性等をさらに説明する。このO2センサ8は、図2に模式的に示すように、酸素イオンを通しやすい固体電解質、例えば安定ジルコニア(ZrO2+Y2O3)を主材質とする有底筒形状の素子部10(感応部)を備え、この素子部10の外面及び内面には、それぞれ、多孔質の白金電極11,12がコーティングされている。また、この素子部10の内部には、該素子部10の昇温・活性化や温度制御等を行うために電熱ヒータとしての棒状のセラミックヒータ13が挿入されると共に、セラミックヒータ13の周囲の空間には一定酸素濃度(一定の酸素分圧)の空気が充填されている。そして、このO2センサ8は、その素子部10の先端部の外面が排気管6b内の排ガスに接触するようにセンサ筐体14を介して排気管6bに装着されている。
尚、図2中、15は、排気管6b内の素子部10に異物等が当たらないようにするための筒状のプロテクタであり、排気管6b内の素子部10は、プロテクタ15に穿設されている複数の孔(図示省略)を介して排ガスに接触するようになっている。
かかる構造のO2センサ8では、素子部10の先端部外面に接触する排ガスの酸素濃度と素子部10の内部の空気の酸素濃度との差によって、前記白金電極11,12間に排ガスの酸素濃度に応じた起電力が生じる。そして、該O2センサ8は、その起電力を図示しない増幅器で増幅してなる出力電圧Voutを外部に出力する。
この場合、排ガスの酸素濃度、あるいは該酸素濃度から把握される排ガスの空燃比に対するO2センサ8の出力電圧Voutの特性(出力特性)は、基本的には図3に実線のグラフaで示すような特性(所謂Zカーブ特性)となる。尚、図3の実線のグラフaは、より詳しくは、素子部10の温度が800℃であるときのO2センサ8の出力特性を示すグラフである。素子部10の温度とO2センサ8の出力特性との関係については後述する。
図3のグラフaに見られるように、O2センサ8の出力特性は、一般的に、排ガスの酸素濃度により表わされる空燃比が理論空燃比近傍の狭い空燃比域Δに存する状態でのみ、出力電圧Voutが排ガスの空燃比に対してほぼリニアに高感度な変化を示す。つまり、その空燃比域Δ(以下、高感度空燃比域Δという)において、空燃比の変化に対する出力電圧Voutの変化の傾き(出力特性のグラフの傾き)が大きなものとなる。そして、その高感度空燃比域Δよりもリッチ側の空燃比域とリーン側の空燃比域とでは、排ガスの空燃比の変化に対する出力電圧Voutの変化の傾き(出力特性のグラフの傾き)が微小なものとなる。
尚、前記広域空燃比センサ9は、ここでの詳細な説明は省略するが、例えば特開平4−369471号公報にて本願出願人が開示した空燃比センサであり、O2センサ8よりも広い空燃比域において、排ガスの空燃比に対してリニアに変化する出力電圧KACTを発生するセンサである。以下の説明では、O2センサ8の出力電圧Vout、広域空燃比センサ9の出力電圧KACTをそれぞれ単に出力Vout、KACTということがある。
本参考例の装置は、さらに排ガスの空燃比制御やO2センサ8の素子部10の温度制御等の処理を実行するコンントロールユニット16を備えている。このコントロールユニット16は、図示を省略するCPU、RAM、ROMを含むマイクロコンピュータにより構成されたものであり、後述の制御処理を実行するために、前記O2センサ8、広域空燃比センサ9からそれらの出力Vout,KACTが入力されると共に、エンジン1に備えられたセンサ(図示省略)からエンジン1の回転数NE(回転速度)、吸気圧PB(詳しくはエンジン1の吸気管内圧の絶対圧)、大気温度TA等の検出値を示すデータが与えられる。
上記コントロールユニット16は、その処理の機能的手段として、エンジン1の排ガスの空燃比を制御する空燃比制御手段17と、O2センサ8の素子部10の温度を制御するセンサ温度制御手段18とを具備している。
空燃比制御手段17は、触媒装置4によるCO(一酸化炭素)、HC(炭化水素)、NOx(窒素酸化物)の良好な浄化性能(浄化率)を確保するように、触媒装置4にエンジン1から供給される排ガスの空燃比を制御する処理を実行するものである。ここで、前述のような出力特性のO2センサ8を触媒装置4の下流側に配置したとき、触媒装置4に供給する排ガスの空燃比(触媒装置4の上流側の排ガスの空燃比)を、O2センサ8の出力Voutがある所定値Vop(図3参照)に整定するような空燃比状態に制御することにより、触媒装置4によるCO、HC、NOxの良好な浄化性能を該触媒装置4の劣化状態によらずに確保できる。
そこで、空燃比制御手段17は、上記所定値VopをO2センサ8の出力Voutの目標値とし、この目標値VopにO2センサ8の出力Voutを整定・維持するようにエンジン1から触媒装置4に供給される排ガスの空燃比を制御する。この空燃比制御は、例えば、O2センサ8の出力Voutを目標値Vopに収束させるように、フィードバック制御処理により触媒装置4に供給する排ガスの目標空燃比を決定し、この目標空燃比に広域空燃比センサ9の出力KACT(空燃比の検出値)を収束させるように、フィードバック制御処理によりエンジン1の燃料供給量を調整することで実行される。尚、空燃比制御手段17のより具体的な処理は、本願発明の本質をなすものではないので、ここでの詳細な説明は省略するが、例えば本願出願人が特開平11−324767号公報にて公開した明細書の[0071]〜[0362]に記載されているように行われる。
ところで、O2センサ8の出力特性は、素子部10の温度の影響を受けて変化する。例えば、素子部10の温度が800℃、750℃、700℃、600℃であるときのO2センサ8の出力特性は、それぞれ図3R>3の実線のグラフa、破線のグラフb、一点鎖線のグラフb、二点鎖線のグラフdで示すような特性となる。この場合、図3を参照して明らかなように、特に750℃よりも低い温度域で素子部10の温度が変化すると、理論空燃比近傍(前記高感度空燃比域Δ)におけるO2センサ8の出力Voutの変化の傾き(感度)や、該高感度空燃比域Δよりもリッチ側における出力Voutのレベル等が変化しやすい。尚、素子部10の温度が750℃以上である場合には、素子部10の温度変化に対するO2センサ8の出力特性の変化は微小になり、該出力特性がほぼ一定になる。
O2センサ8の出力特性が上記のように素子部10の温度状態によって変化するため、その温度状態によっては、前記空燃比制御手段17による制御性(安定性や速応性)が悪化する虞れがある。これは、O2センサ8の出力Voutをある目標値Vopに維持するように排ガスの空燃比を制御する上では、特に、理論空燃比近傍でのO2センサ8の出力特性、すなわち、前記高感度空燃比域Δにおける出力特性が制御性に大きな影響を及ぼしやすいからである。また、触媒装置4の触媒7による排ガスの浄化性能が良好に保たれるようなO2センサ8の出力Voutの目標値Vopも、特に、750℃よりも低い温度域における素子部9の温度状態によって変化する。従って、空燃比制御手段17による空燃比の制御(O2センサ8の出力Voutを目標値Vopに維持する制御)を良好に行い、また、触媒装置4の浄化性能を良好に確保するためには、O2センサ8の素子部10の温度は、基本的には一定温度に維持されていることが好ましい。
この場合、O2センサ8では、素子部10の温度を750℃以上の温度に維持すると、前述のようにO2センサ8の出力特性がほぼ一定になって安定する。また、本願発明者等の知見によれば、素子部10の温度を750℃以上の温度で、例えば800℃に維持すると、触媒装置4の触媒7による排ガスの浄化性能が良好に保たれるようなO2センサ8の出力Voutの目標値Vopが、図3のグラフaにおいて参照符号Yを付した部分、すなわち、O2センサ8の出力特性のグラフaの傾きが空燃比のリッチ化に伴い大きな傾きから微小な傾きに切替る変曲点部分Yに存するようになる。そして、このとき、この目標値VopにO2センサ8の出力Voutを維持するような空燃比制御を良好に行うことができる。これは、変曲点部YにおけるO2センサ8の出力Voutの空燃比に対する感度が過大でも過小でもない適正な感度になるためと考えられる。
このため、本参考例では、前記センサ温度制御手段18により、O2センサ8の素子部10の温度を前記セラミックヒータ13を介して所望の温度に制御するようにしている。その所望の温度は、基本的には750℃以上の温度で、例えば800℃である。このセンサ温度制御手段18の制御処理を以下に詳説する。
センサ温度制御手段18は、その主要な機能を分類すると、図4に示すように、排気通路3でのO2センサ8の配置箇所近傍(排気管6bの中間部分の箇所)の排ガス温度Tgdを逐次推定する排気温オブザーバ19(排ガス温度推定手段)と、その排ガス温度Tgdの推定値を用いてO2センサ8の素子部10の温度TO2及びセラミックヒータ13の温度Thtを推定する素子温オブザーバ20と、素子部10の温度の目標値Rを設定する目標値設定手段21と、素子部10の温度TO2及びセラミックヒータ13の温度Thtの推定値、目標値R、並びに排ガス温度Tgdの推定値を用いてセラミックヒータ13の通電制御(セラミックヒータ13への供給電力の制御)を行うヒータコントローラ22(ヒータ制御手段)とを備えている。
尚、本参考例では、セラミックヒータ13は、図示を省略するヒータ通電回路にパルス電圧を付与することにより通電制御(PWM制御)されるものであり、該セラミックヒータ13への供給電力は、そのパルス電圧のデューティDUT(パルス電圧の1周期に対するパルス幅の割合)によって規定される。このため、ヒータコントローラ22は、上記ヒータ通電回路に付与するパルス電圧のデューティDUTをセラミックヒータ13を制御するための制御入力(操作量)とし、このデューティDUTを調整することにより、該セラミックヒータ13への供給電力、ひいては、該ヒータ13の発熱量を制御するようにしている。また、ヒータコントローラ22が生成するデューティDUTは、素子温オブザーバ20の演算処理でも使用される。
排気温オブザーバ19は、本参考例では、エンジン1の排気ポート2からO2センサ8の配置箇所までの排気通路3(O2センサ8の上流側の排気通路3)を該排気通路3の延在方向(排ガスの流れ方向)に沿って複数(本参考例では例えば4個)の部分排気通路3a〜3dに区分けしておき、所定のサイクルタイム(周期)で、排気ポート2(排気通路3の入り口部分)における排ガスの温度と、各部分排気通路3a〜3dにおける排ガスの温度(詳しくは各部分排気通路3a〜3dの下流端における排ガスの温度)とを上流側のものから順番に推定するものである。これらの部分排気通路3a〜3dのうち、部分排気通路3a,3bは、触媒装置4の上流側の排気通路3(排気管6aにより形成された排気通路)を2つに区分けしてなる部分排気通路であり、部分排気通路3cは、触媒装置4の入り口から出口までの部分排気通路(触媒装置4の触媒7の内部に形成された排気通路)、部分排気通路3dは、触媒装置4の出口からO2センサ8の配置箇所までの部分排気通路である。この排気温オブザーバ19のアルゴリズムは次のように構築されている。
まず、エンジン1の排気ポート2における排ガス温度は、エンジン1の定常的な運転状態(詳しくはエンジン1の回転数NE及び吸気圧PBが一定に維持される運転状態で)では、基本的にはエンジン1の回転数NEと吸気圧PBとに応じたものとなる。従って、排気ポート2における排ガス温度は、基本的にはエンジン1の運転状態を表すパラメータとしての回転数NE及び吸気圧PBの検出値から例えばあらかじめ実験等に基づいて定めたマップに基づいて推定することができる。但し、エンジン1の運転状態(回転数NEや吸気圧PB)が変動する場合には、排ガスと排気ポート2の近傍の壁部やエンジン1の燃焼室等との熱交換によって、排気ポート2における排ガス温度は、上記のようにマップにより求められる排ガス温度(以下、基本排ガス温度TMAP(NE,PB)という)に対して応答遅れを生じる。
そこで、本参考例では、排気温オブザーバ19は、所定のサイクルタイム(演算処理周期)毎に、エンジン1の回転数NE及び吸気圧PBの検出値(最新の検出値)から基本排ガス温度TMAP(NE,PB)をマップにより求めた後に、さらに排気ポート2における排ガス温度Texgを、次式(1)のように基本排ガス温度TMAP(NE,PB)に対して一次遅れを伴って追従する値として逐次推定する。
ここで、式(1)中のkは、排気温オブザーバ19の演算処理周期の番数である。また、Ktexはあらかじめ実験等に基づき定められた係数(遅れ係数)であり、0<Ktex<1である。尚、本参考例では、エンジン1の吸気圧PBは、エンジン1の吸入空気量を表すパラメータとしての意味をもつものである。従って、例えば吸入空気量を直接的に検出するフローセンサが備えられている場合には、そのフローセンサの出力(吸入空気量の検出値)を吸気圧P Bの検出値の代わりに用いてもよい。
このようにして求められる排気ポート2の排ガス温度Texgの推定値を用いて、各部分排気通路3a〜3eにおける排ガスの温度は以下に説明するように推定される。まず、説明の便宜上、一般的に、図5に示すように、大気中でZ軸方向に延びる円管23内を流体が円管23の管壁と熱交換しながら流れる場合における熱伝達に関して説明する。ここで、流体温度Tg、管壁の温度Tw(以下、円管温度Twという)が時刻tとZ軸方向の位置zとの関数Tg(t,z)、Tw(t,z)であるとし、円管23の管壁の熱伝導率は径方向に無限大で、且つZ軸方向には「0」であると仮定する。また、流体と円管23の管壁との間の熱伝達、並びに、円管23の管壁とその外部の大気との間の熱伝達は、ニュートンの冷却則に従ってそれぞれの温度差に比例するものとする。このとき、次式(2−1)、(2−2)が成立する。
ここで、Sg、ρg、Cgはそれぞれ流体の密度、比熱、流路断面積、Sw、ρw、Cwはそれぞれ円管23の管壁の密度、比熱、断面積、Vは円管23を流れる流体の流速、TAは円管23の外部の大気温度である。また、Uは円管23の内周長、α1は流体と円管23の管壁との間の熱伝達率、α2は円管23の管壁と大気との間の熱伝達率である。尚、大気温度TAは、円管23の周囲で一定に維持されているとする。
これらの式(2−1)、(2−2)を整理すると、次式(3−1)、(3−2)が得られる。
但し、これらの式(3−1)、(3−2)において、a,b,cは定数であり、a=α1・U/(Sg・ρg・cg)、b=α1・U/(Sw・ρw・cw)、c=α2・U/(Sw・ρw・cw)である。
式(3−1)の右辺第1項は、位置zでの流体の流れ方向の温度勾配と流体の流速とに応じた流体温度Tgの時間的変化率(単位時間当たりの温度変化量)を表す移流項である。また、式(3−1)の右辺第2項は、位置zでの流体温度Tgと円管温度Twとの偏差に応じた流体温度Tgの時間的変化率(単位時間当たりの温度変化量)、すなわち、流体と円管23の管壁との間の熱伝達に伴う流体温度Tgの時間的変化率を表す熱伝達項である。従って、この式(3−1)は、位置zでの流体温度Tgの時間的変化率∂Tg/∂tが、上記移流項の温度変化成分と、上記熱伝達項の温度変化成分とに応じたもの(それらの温度変化成分の総和)になるということを示すものである。
また、式(3−2)の右辺第1項は、位置zでの円管温度Twと流体温度Tgとの偏差に応じた円管温度Twの時間的変化率(単位時間当たりの温度変化量)、すなわち、位置zでの流体と円管23の管壁との間の熱伝達に伴う円管温度Twの時間的変化率を表す熱伝達項である。また、式(3−2)の右辺第2項は、位置zでの円管温度Twと外部の大気温度TAとの偏差に応じた円管温度Twの時間的変化率(単位時間当たりの温度変化量)、すなわち、位置zでの円管23の管壁から大気への放熱に応じた円管温度Twの時間的変化率を表す放熱項である。そして、式(3−2)は、位置zでの円管温度Twの時間的変化率∂Tw/∂tが、上記熱伝達項の温度変化成分と放熱項の温度変化成分とに応じたもの(それらの温度変化成分の総和)になるということを示すものである。
これらの式(3−1)、(3−2)を差分法によって書き改めて整理すると次式(4−1),(4−2)が得られる。
これらの式(4−1)、(4−2)は、位置z、時刻tでの流体温度Tg(t,z)及び円管温度Tw(t,z)と、位置zの直前(上流側)の位置z-Δzにおける時刻tでの流体温度Tg(t,z-Δz)とが判れば、位置zにおける次の時刻t+Δtでの流体温度Tg(t+Δt,z)、Tw(t+Δt,z)を求めることができ、さらにこれらの式を直列的に連立させることで、位置z+Δz、z+2Δz、……での流体温度Tg及び円管温度Twを順番に求めることができることを意味する。つまり、各位置z、z+Δz、z+2Δz、…でのTg、Twの初期値(t=0での初期値)を与えるとともに、円管23のZ軸方向の任意の原点(例えば円管23の入り口)の流体温度Tg(t,0)を与えれば(ここではz-Δz=0とする)、位置z、z+Δz、z+2Δz、…における各時刻t、t+Δt、t+2Δt、…でのTg、Twを算出できる。
この場合、位置zでの流体温度Tg(t,z)は、所定時間毎に、流速Vと位置zでの温度勾配とに応じた温度変化成分(式(4−1)の第2項が表す温度変化成分)と、位置zでの流体温度Tgと円管温度Twとの偏差に応じた温度変化成分(式(4−1)の第3項が表す温度変化成分)とを、初期値Tg(0,z)に累積加算(積分)することにより算出できる。他の位置z+Δz、z+2Δz、…についても同様である。また、位置zでの円管温度Tw(t,z)は、所定時間毎に、位置zでの流体温度Tgと円管温度Twとの偏差に応じた温度変化成分(式(4−2)の第2項が表す温度変化成分)と、位置zでの円管温度Twと大気温度TAと偏差に応じた温度変化成分(式(4−2)の第3項が表す温度変化成分)を、初期値Tw(0,z)に累積加算(積分)することにより算出できる。
そこで、本参考例では、排気温オブザーバ19は、式(4−1)、(4−2)のモデル式を基本式として用い、各部分排気通路3a〜3dにおける排ガスの温度を次のようにして求める。
まず、部分排気通路3a〜3dのうち、部分排気通路3a,3bは、いずれも排気管6aを通路形成物として形成されている。そして、本参考例では、これらの部分排気通路3a,3bにおける排ガスの温度を推定するために、前記円管23に関して説明した場合と同様に、排ガスの流速と温度勾配(排ガスの流れ方向での温度勾配)とに応じた温度変化と、排ガスと排気管6aとの間の熱伝達と、排気管6aから大気への放熱とを考慮する。
この場合、部分排気通路3aにおける排ガス温度Tgaの推定値は、部分排気通路3aにおける排気管6aの温度Twa(以下、排気管温度Twaという)の推定値と併せて、排気温オブザーバ19の処理のサイクルタイム毎に、次のモデル式(5−1)、(5−2)により求められる。また、部分排気通路3bにおける排ガスの温度Tgbの推定値は、部分排気通路3bにおける排気管温度Twbの推定値と併せて、排気温オブザーバ19の処理のサイクルタイム毎に、次のモデル式(6−1)、(6−2)により求められる。尚、式(5−1)、(5−2)により求められる排ガス温度Tga及び排気管温度Twaはより詳しくは、部分排気通路3aの下流端近傍における温度の推定値である。同様に、式(6−1)、(6−2)により求められる排ガス温度Tgb及び排気管温度Twbはより詳しくは、部分排気通路3bの下流端近傍における温度の推定値である。
これらの式(5−1)、(5−2)、(6−1)、(6−2)中のdtは、排気温オブザーバ19の処理の周期(サイクルタイム)であり、前記式(4−1)、(4−2)のΔtに相当する。このdtの値はあらかじめ定められている。また、式(5−1)、(6−1)中のLa,Lbはそれぞれ部分排気通路3a,3bの長さ(固定値)であり、前記式(4−1)のΔzに相当する。また、式(5−1)、(5−2)中のAa,Ba,Ca、並びに式(6−1)、(6−2)中のAb,Bb,Cbは、それぞれ式(4−1)、(4−2)のa,b,cに相当するモデル係数であり、それらの値はあらかじめ実験やシミュレーションに基づいて設定(同定)される。また、式(5−1)、(6−1)中のVgは排ガスの流速を示すパラメータ(これは後述するように求められる)であり、式(4−1)のVに相当するものである。
ここで、式(5−1)により排ガス温度Tgaの新たな推定値Tga(k+1)を算出するために必要な排ガス温度Texg(k)(排気ポート2における排ガス温度)は、基本的には前記式(1)により求められた最新値が用いられる。同様に、式(6−1)により排ガス温度Tgbの新たな推定値Tgb(k+1)を算出するために必要な排ガス温度Tga(k)(部分排気通路3aにおける排ガス温度)は、基本的には前記式(5−1)により求められた最新値が用いられる。また、式(5−2)、(6−2)の演算に必要な大気温度TA(k)は、図示しない大気温度センサ(これは本参考例ではエンジン1に備えらたセンサが代用的に用いられる)により検出された大気温度の最新値が用いられる。さらに、式(5−1)、(6−1)の演算に必要な流速パラメータVgは、本参考例では、エンジン1の回転数NE及び吸気圧PBの最新の検出値から、次式(7)により算出された値が用いられる。
この式(7)中のNEBASE、PBBASEは、それぞれあらかじめ定めた所定回転数、所定吸気圧であり、それぞれ例えばエンジン1の最大回転数、760mmHg(≒101kPa)に設定されている。この式(7)により算出される流速パラメータVgは排ガスの流速に比例し、また、Vg≦1となる。
尚、排ガス温度Tga及び排気管温度Twa、並びに排ガス温度Tgb及び排気管温度Twbのそれぞれの推定値の初期値Tga(0)、Twa(0)、Tgb(0)、Twb(0)は、本参考例では、エンジン1の運転開始時(エンジン1の始動時)に前記大気温度センサ(図示しない)により検出された大気温度に設定される。
次に、部分排気通路3cは、触媒装置4の触媒7を通路形成物として形成された排気通路である。そして、この触媒7はその排ガス浄化作用(詳しくは酸化・還元反応)によって自己発熱を伴い、その発熱量(単位時間当たりの発熱量)は概ね排ガスの流速に比例する。これは、排ガスの流速が大きい程、単位時間当たりに触媒7と反応する排ガス成分が多くなるためである。
そこで、本参考例では、部分排気通路3cにおける排ガス温度の推定に関しては、その推定を精度よく行うために、排ガスの流速と温度勾配とに応じた温度変化と、排ガスと触媒装置4の触媒7との間の熱伝達と、該触媒7から大気への放熱とを考慮することに加えて、さらに、該触媒7の自己発熱を考慮する。
この場合、部分排気通路3cにおける排ガス温度Tgcの推定値は、部分排気通路3cを形成する触媒7の温度Twc(以下、触媒温度Twcという)の推定値と併せて、排気温オブザーバ19の処理のサイクルタイム毎に、次のモデル式(8−1)、(8−2)により求められる。尚、式(8−1)により求められる排ガス温度Tgc及び触媒温度Twcはより詳しくは、部分排気通路3aの下流端(触媒装置4の出口近傍)における温度の推定値である。
式(8−1)中のLcは部分排気通路3cの長さ(固定値)であり、前記式(4−1)のΔzに相当する。また、式(8−1)、(8−2)中のAc,Bc,Ccは、それぞれ式(4−1)、(4−2)のa,b,cに相当するモデル係数であり、それらの値はあらかじめ実験やシミュレーションに基づいて設定(同定)される。また、式(8−2)の右辺第4項は、触媒装置4の触媒7の自己発熱による触媒7の温度変化成分(排気温オブザーバ19の処理の1周期当たりの温度変化量)を示すものであり、流速パラメータVgに比例する。そして、この第4項のDcは、前記Ac〜Ccと同様に、その値があらかじめ実験やシミュレーションに基づいて設定(同定)されるモデル係数である。従って、式(8−2)は、前記式(4−2)の右辺に、さらに通路形成物(ここでは触媒7)の自己発熱に伴う温度変化成分を付加したものに相当する。
尚、式(8−1)、(8−2)中のdt、Vgの意味及びその値は、前記式(5−1)〜(6−2)のものと同一である。また、式(8−2)の演算で用いるTAの値は、前記式(5−2)、(6−2)で用いるものと同一である。さらに、排ガス温度Tgc及び触媒温度Twcの初期値Tgc(0)、Twc(0)は、本参考例では、式(5−1)〜(6−2)の場合と同様、エンジン1の運転開始時における大気温度の検出値である。
次に、部分排気通路3dは、それを形成する通路形成物が、前記部分排気通路3a,3bと同様の排気管6bである。従って、この部分排気通路3dの排気温度Tgd及び排気管温度Twd(より詳しくは部分排気通路3dの下流端における温度)は、前記式(5−1)〜(6−2)と同様の次のモデル式(9−1)、(9−2)により求められる。
式(9−1)中のLdは部分排気通路3dの長さ(固定値)であり、前記式(4−1)のΔzに相当する。また、式(9−1)、(9−2)中のAd,Bd,Cdは、それぞれ式(4−1)、(4−2)のa,b,cに相当するモデル係数であり、それらの値はあらかじめ実験やシミュレーションに基づいて設定(同定)される。
尚、式(9−1)、(9−2)中のdt、Vgの意味及びその値は、前記式(5−1)〜(6−2)のものと同一である。また、式(9−2)の演算で用いるTAの値は、前記式(5−2)、(6−2)、(8−2)で用いるものと同一である。さらに、排ガス温度Tgd及び触媒温度Twdの推定値の初期値Tgd(0)、Twd(0)は、式(5−1)〜(6−2)の場合と同様、エンジン1の運転開始時における大気温度の検出値である。
以上説明した排気温オブザーバ19の処理によって、各サイクルタイム毎に、エンジン1の排気ポート2及び各部分排気通路3a〜3dの排ガス温度Texe、Tga、Tgb、Tgc、Tgdの推定値が上流側から順番に求められる。この場合、最下流側の部分排気通路3dの排ガス温度Tgdの推定値は、O2センサ8の配置箇所近傍での排ガスの温度に相当するものとなり、該排ガス温度Tgdの推定値がO2センサ8の配置箇所近傍での排ガス温度の推定値として得られる。
この排気温オブザーバ19の推定処理のアルゴリズムをブロック図で表すと、図6に示すように表される。同図6では、前記式(1)のモデル式を排気ポート熱モデル24、前記式(5−1)及び(5−2)のモデル式と、式(6−1)及び(6−2)のモデル式とをそれぞれCAT前排気系熱モデル25,26、式(8−1)及び(8−2)のモデル式をCAT部排気系熱モデル27、式(9−1)及び(9−2)のモデル式をCAT後排気系熱モデル28と称している。同図示のように、各熱モデル24〜28には、エンジン1の回転数NE及び吸気圧PBの検出値が与えられる。尚、排気ポート熱モデル24に与えられるNE、PBは、基本排ガス温度TMAPを求めるためのものであり、排気系熱モデル25〜28に与えられるNE、PBは、前記流速パラメータVgの値を求めるためのものである。さらに、排気系熱モデル25〜28には、大気温度TAの検出値が与えられる。そして、CAT前排気系熱モデル25、CAT前排気系熱モデル26、CAT部排気系熱モデル27、CAT後排気系熱モデル28には、それぞれの一つ上位側の熱モデル24,25,26,27の出力としての排ガス温度Texg、Tga、Tgb、Tgcの推定値がそれぞれ与えられ、最終的にCAT後排気系熱モデル28により、O2センサ8の配置箇所近傍での排ガス温度Tgdの推定値が得られる。
尚、本参考例では、各部分排気通路3a〜3dの通路形成物(排気管6a、触媒装置4の触媒7、排気管6b)の温度を推定するために、エンジン1に備えた大気温度センサの検出値を代用するようにしたが、排気通路3の外方に大気温度センサを別途配置しておき、その大気温度センサの検出値を用いるようにしてもよい。
次に前記素子温オブザーバ20について説明する。素子温オブザーバ20は、本参考例では、O2センサ8の素子部10とこれに接触する排ガスとの間の熱伝達、並びに、該素子部10とこれを加熱するセラミックヒータ13(以下、単にヒータ13という)との間の熱伝達を考慮して素子部10の温度TO2を所定のサイクルタイムで逐次推定するものである。そして、この推定を行うためにヒータ13の温度Thtの推定も併せて行うようにしている。この場合、ヒータ13の温度Thtの推定処理においては、該ヒータ13と素子部10との間の熱伝達を考慮すると共に、該ヒータ13への電力供給に伴う該ヒータ13の発熱を考慮する。このような推定処理を行う素子温オブザーバ20の推定アルゴリズムは以下に説明するように構築されている。
すなわち、素子温オブザーバ20は、O2センサ8の素子部10の温度TO2(以下、素子温度TO2という)の推定値と、ヒータ13の温度Tht(以下、ヒータ温度Thtという)の推定値とを、それぞれ次のモデル式(10−1)、(10−2)によりそれぞれ所定のサイクルタイムで逐次求める。
式(10−1)は、サイクルタイム毎の素子部10の温度変化量が、O2センサ8の配置箇所近傍での排ガス温度Tgd(前記部分排気通路3dの排ガス温度)と素子温度TO2との偏差に応じた温度変化成分(式(10−1)の右辺第2項)、すなわち、素子部10とこれに接触する排ガスとの間の熱伝達に伴う温度変化成分と、素子温度TO2とヒータ温度Thtとの偏差に応じた温度変化成分(式(10−1)の右辺第3項)、すなわち、素子部10とセラミックヒータ13との間の熱伝達に伴う温度変化成分とに応じたもの(それらの温度変化成分の総和)になるということを示している。
また、式(10−2)は、サイクルタイム毎のヒータ13の温度変化量が、素子温度TO2とヒータ温度Thtとの偏差に応じた温度変化成分(式(10−2)の右辺第2項)、すなわち、素子部10とヒータ13との間の熱伝達に伴う温度変化成分と、ヒータコントローラ22が後述するように生成するデューティDUTに応じた温度変化成分、すなわちヒータ13への電力供給による該ヒータ13の発熱に伴う温度変化成分とに応じたもの(それらの温度変化成分の総和)になるということを示している。
尚、式(10−1)、(10−2)中のAx,Bx,Cx,Dxは、その値があらかじめ実験やシミュレーションに基づいて設定(同定)されるモデル係数である。また、dtは素子温オブザーバ20の処理の周期(サイクルタイム)であり、本参考例では前述の排気温オブザーバ19の処理のサイクルタイム(前記式(5−1)〜(9−2)のdt)と同一の値に設定されている。
ここで、式(10−2)の演算に必要なDUT(k)は、ヒータコントローラ22が後述するように算出したデューティDUTの最新値が用いられる。さらに、素子温度TO2及びヒータ温度Thtの推定値の初期値TO2(0)、Tht(0)は、本参考例では、エンジン1の運転開始時における大気温度の検出値である。
以上説明したアルゴリズムにより、素子温オブザーバ20は、素子温度TO2及びヒータ温度Thtの推定値を逐次算出する。
次に前記ヒータコントローラ22について説明する。ヒータコントローラ22は、最適予見制御アルゴリズムによりヒータ13に対する制御入力(操作量)としてのデューティDUTを逐次生成し、そのディーティDUTでヒータ13への供給電力を制御するものである。
この場合、本参考例では、素子温度TO2とそれに対する目標値との偏差と、その偏差の所定時間毎の変化量(これは偏差の変化速度に相当する)と、ヒータ温度Thtの所定時間毎の変化量(これはヒータ温度Thtの変化速度に相当する)とに着目し、これらをヒータコントローラ22の制御対象に係わる状態量として、該制御対象のモデル式を導入している。そして、ヒータコントローラ22のアルゴリズムは以下に説明するように構築されている。
まず、制御対象のモデル式について説明する。素子温度TO2及びヒータ温度Thtの所定時間毎の変化量ΔTO2、ΔThtに着目すると、これらの変化量ΔTO2、ΔThtは、それぞれ素子温オブザーバ20に係わる前記モデル式(10−1)、(10−2)に基づいて、次式(11−1)、(11−2)式により与えられる。
尚、これらの式(11−2)、(11−2)において、ΔTO2(k)=TO2(k+1)−TO2(k)、ΔTht(k)=Tht(k+1)−Tht(k)、ΔTgd(k)=Tgd(k+1)−Tgd(k)、ΔDUT(k)=DUT(k+1)−DUT(k)である。
次に、素子温度TO2の目標値をRとし、それらの間の偏差e(所定のサイクルタイム毎の偏差。以下、素子温偏差eという)を次式(12)により定義する。
このとき、この素子温偏差eのサイクルタイム毎の変化量Δe(以下、素子温偏差変化量Δeという)は、前記式(11−1)、(12)に基づいて、次式(13)により与えられる。
尚、式(13)において、Δe(k)=e(k+1)−e(k)、ΔR(k)=R(k+1)−R(k)である。また、この式(13)の導出過程においては、ΔTO2=Δe(k)+ΔR(k)という関係式(これは式(12)に基づく)が用いられている。
さらに、前記式(11−2)に、ΔTO2=Δe(k)+ΔR(k)という関係式を適用して整理すると、次式(14)が得られる。
ここで、状態量ベクトルX0(k)=(e(k),Δe(k),ΔTht(k))Tを導入すると(Tは転置を意味する)、前記式(14),(15)と、e(k+1)=e(k)+Δe(k)という関係式とから、次式(15)が得られる。
尚、式(15)中のR0、G、Gdは、それぞれ同式(15)の但し書きで定義されたベクトルであり、Φ、Grはそれぞれ同式(15)の但し書きで定義された行列である。
この式が、ヒータコントローラ22の制御処理に係わる制御対象のモデルの基本式である。
ところで、上述の説明は、ヒータコントローラ22による制御処理の周期を前記排気温オブザーバ19や素子温オブザーバ20の演算処理の周期dtと同一として行っている。このため式(15)のベクトルG,Gd並びに行列Φ,Grでは、dtが用いられている。この場合、排気温オブザーバ19や素子温オブザーバ20の演算処理は、温度推定の精度を高めるために、比較的早い周期(例えば20〜50msecの周期)で行うことが望ましい。しかるに、ヒータコントローラ22の制御処理に関しては、制御入力(デューティDUT)に対する素子温度の変化の応答速度が比較的遅い(周波数換算で数Hz程度)であるため、該制御処理の周期は、排気温オブザーバ19や素子温オブザーバ20の演算処理の周期dtよりも長くてよい。また、後述する最適予見制御では、素子温度TO2の目標値Rの未来値を一定時間分、記憶保持しておく必要があるため、ヒータコントローラ22の制御処理の周期が短いと、目標値Rに対するメモリの記憶容量が大きくなる。
そこで、本参考例では、ヒータコントローラ22の制御処理の周期(サイクルタイム)は、排気温オブザーバ19や素子温オブザーバ20の演算処理の周期dtよりも長い値dtc(例えば300〜500msec)に設定している。
このため、本参考例では、ヒータコントローラ22の制御対象のモデル式は、ヒータコントローラ22の制御処理の周期dtcを用いて、前記式(15)から次式(16)に書き改められる。
この式(16)がヒータコントローラ22の制御処理のアルゴリズムで実際に用いる制御対象のモデル式である。ここで、この式(16)中のnはヒータコントローラ22の制御処理の周期dtcの番数を示すものである。
このモデル式を用いてヒータコントローラ22の制御処理のアルゴリズム(最適予見制御のアルゴリズム)は次のように構築されている。前記式(16)のモデル式に対して、素子温度TO2の目標値RがMrステップ後(ヒータコントローラ22の制御処理の周期dtcのMr倍の時間後)の未来まで設定されており、また、外乱入力となる排ガス温度TgdがMdステップ後(ヒータコントローラ22の制御処理の周期dtcのMd倍の時間後)の未来まで現在値に維持されるとする。尚、以下の説明では、Mrを目標値予見時間、Mdを排ガス温度予見時間と称する。これらの予見時間Mr,Mdは、ヒータコントローラ22の制御処理の1周期dtcを単位として表した整数値である。
このとき、次式(17)の評価関数J0の値を最小化するような制御入力ΔDUTを生成するコントローラが最適予見サーボコントローラとなる。
ここで、式(17)におけるMは、目標値予見時間Mr、排ガス温度予見時間Mdのうちのいずれか大きい方の値、すなわち、M=max(Mr,Md)である。また、Q0,H0は、それぞれ状態量ベクトルX0の収束性、制御入力ΔDUTのパワー(大きさ)を調整するための重み行列である。この場合、X0は3次のベクトルであるので、Q0は3行3列の対角行列である。また、ΔDUTはスカラーであるので、H0もスカラーである。尚、本参考例では、ヒータ13による電力消費を少なくするために、Q0は例えば単位行列(全ての対角成分が「1」である対角行列)に設定する一方、H0は行列Q0の対角成分に比して大きな値(例えば1000)に設定されている。また、前記目標値予見時間Mr及び排ガス温度予見時間Mdに関しては、本参考例では、ヒータコントローラ22の制御処理の周期を300〜500msecとして、Mrは、例えば20に設定され、Mdは例えば10に設定されている。
前記式(17)の評価関数の値を最小化する制御入力ΔDUTは、次式(18)によって与えられる。
この式(18)の右辺第1項のF0は3次の行ベクトル(Fs0,Fe0,Fx0)、右辺第2項(Σの項)のFr0(i)(i=1,2,…,Mr)はそれぞれ2次の行ベクトル(Fr01(i),Fr02(i))、右辺第3項のFdtはスカラーであり、それぞれ、次式(19−1)〜(19−3)により与えられる。
この場合、これらの式(19−1)〜(19−3)中のPは次式(20−1)のリカッチの方程式を満たす行列(この場合3行3列の行列)であり、ζは次式(20−2)により与えられる行列(この場合3行3列の行列)である。
尚、式(19−1)〜(19−3)並びに式(20−1)、(20−2)中のG,Gr,Gd,Φは前記式(16)の但し書きで定義されたものである。また、H0,Q0は前記式(17)の評価関数J0の重み行列(但し、この場合H0はスカラー)である。
ここで、前記式(18)の右辺第2項(Σの項)をFr0、R0の成分(前記式(19−2)並びに式(16)の但し書きを参照)を用いて書き直し、それをさらに整理すると、次式(21)が得られる。
この式(21)を式(18)に代入すると共に、式(18)の右辺第1項をF0、X0の成分(前記式(19−1)並びに式(16)の但し書きを参照)を用いて書き直すことにより、前記式(18)は、次式(22)により表される。
このとき、ヒータコントローラ22が生成すべき制御入力DUT(n)は、その初期値DUT(0)にΔDUT(1)、ΔDUT(2)、……、ΔDUT(n)を累積加算したものであるから、上記式(22)により、次式(23)が得られる。
そして、この式(23)の初期値項、すなわち、式(23)の第6項(Fe 0・e(0)の項)〜第10項(DUT(0)の項)を全て「0」とすることで、ヒータコントローラ22に実際に生成させる制御入力DUT(n)を算出するための式が次式(24)の通り得られる。
この式(24)が、ヒータコントローラ22によりヒータ13を制御するための制御入力DUT(n)(デューティ)を逐次算出するための演算式である。すなわち、ヒータコントローラ22は、この制御入力DUT(n)を該ヒータコントローラ22の制御処理のサイクルタイム(周期)毎に式(24)により逐次算出し、そのデューティDUT(n)のパルス電圧を図示しないヒータ通電回路に付与することにより、ヒータ13への供給電力を調整する。この式(24)の第1から第3項まで(Σe(j)を含む項〜Tht(n)を含む項まで)は、素子温偏差eやヒータ温度Thtに応じた制御入力成分(フィードバック成分。以下、この成分を最適F/B成分Uopfbと称する)である。また、式(24)の右辺第4項(ΣFr(i)・R(n+i)の項)は目標値Rに応じた制御入力成分(フィードフォワード成分。以下、この成分を最適目標値F/F成分Uopfrと称する)であり、第5項(Tgd( n)を含む項)は排ガス温度Tgd(これは制御対象に対して外乱として機能する)に応じた制御入力成分(フィードフォワード成分。以下、この成分を最適外乱F/F成分Uopfdを称する)である。このように式(24)により制御入力としてのDUTを求めるヒータコントローラ22は、それをブロック線図で表現すると、図7に示すようになる。
ここで、この式(24)により制御入力DUT(n)を求めるために必要なFs0、Fe0、Fx0は、前記式(19−1)に従ってあらかじめ算出された値が用いられる。また、Fr(i)(i=0,1,…,Mr)は、前記式(21)及び式(19−2)に従ってあらかじめ算出された値が用いられる。また、Fdtは前記式(19−3)に従ってあらかじめ算出された値が用いられる。尚、これらの係数Fs0、Fe0、Fx0、Fr(i)、Fdtの値は必ずしも定義式通りの値を用いる必要ななく、シミュレーションや実験を通じて適宜調整するようにしてもよい。
また、式(24)の演算に必要なヒータ温度Tht及び排ガス温度Tgdは、それぞれ、前記素子温オブザーバ20により求められたヒータ温度Thtの推定値の最新値、前記排気温オブザーバ19により求められた排ガス温度Tgdの推定値の最新値が用いられる。
さらに、式(24)の演算に必要な素子温偏差eは、前記素子温オブザーバ20により求められた素子温度TO2の推定値の最新値と、前記目標値設定手段21により前記目標値予見時間Mr前のサイクルタイムで設定された目標値Rとから算出される。
ここで、前記目標値設定手段21は、基本的には、O2センサ8の出力特性が安定に良好なものとなる750℃以上の温度(本参考例では例えば800℃)を、ヒータコントローラ22の処理のサイクルタイム(周期)と同じサイクルタイムで素子部10の温度の目標値Rとして設定するようにしている。この場合、該目標値設定手段21は、ヒータコントローラ22による処理を前述の最適予見制御のアルゴリズムにより行うために、各サイクルタイムで設定する目標値Rを、現在のサイクルタイムから前記目標値予見時間Mr後の目標値R(n+Mr)として設定し、それを該目標値予見時間Mrの時間分、時系列的に記憶保持するようにしている。つまり、Mr+1個の目標値R(n),R(n+1),…,R(n+Mr)が逐次更新されつつ記憶保持される。そして、式(24)の演算に必要な素子温偏差eを求めるために使用する目標値Rは、目標値予見時間Mr前のサイクルタイムで目標値設定手段21が上記のように設定して記憶保持した値R(n)である。また、上記のように記憶保持された目標値R(n),R(n+1),…,R(n+Mr)が、前記式(24)の第4項(R(n+i)を含むΣの項)の値を求めるために使用される。
尚、エンジン1の運転開始時から、素子温度TO2の目標値Rを800℃のような高温に設定すると、エンジン1の運転開始時にO2センサ8の素子部10に水分等が付着していたような場合には、該素子部10が急激な加熱に伴う応力で損傷する虞れがある。このため、本参考例では、目標値設定手段21は、エンジン1の運転開始後、所定時間(例えば15秒)が経過するまでは、素子温度TO2の目標値Rを750℃よりも低い温度、例えば600℃に設定するようにしている。
次に、本参考例の装置、特に前記センサ温度制御手段12の全体的な処理を説明する。
エンジン1が始動され、その運転が開始すると、センサ温度制御手段12は、図8のフローチャートに示すメインルーチン処理を所定のサイクルタイムで実行する。尚、このメインルーチンの実行周期は、前記排気温オブザーバ19、素子温オブザーバ20の処理の周期dtよりも短く、従って、目標値設定手段21及びヒータコントローラ22の処理の周期dtcよりも短い。
センサ温度制御手段12は、まず、エンジン1の回転数NE、吸気圧PB及び大気温度TAの検出値を取得し(STEP1)、さらに前記目標値設定手段21及びヒータコントローラ22の処理の1周期分の時間dtcをカウントするためのカウントダウンタイマCOPCの値を判断する(STEP2)。このカウントダウンタイマCOPCの値は、エンジン1の始動時に「0」に初期化されている。
そして、センサ温度制御手段12は、COPC=0である場合には、目標値設定手段21及びヒータコントローラ22の制御処理の周期dtcに相当するタイマ設定時間TM1をCOPCの値として新たに設定した後(STEP3)、O2センサ8の素子温度TO2の目標値Rを設定する処理と、ヒータ13のデューティDUTを算出処理とを、それぞれ前記目標値設定手段21及びヒータコントローラ22により順次実行する(STEP4,5)。また、STEP2でCOPC≠0である場合には、センサ温度制御手段12は、STEP5でCOP Cの値をカウントダウンし、STEP4,5の処理を省略する。従って、STEP4,5の処理は、上記タイマ設定時間TM1により規定される周期dtcで実行されることとなる。
上記STEP4,5の処理は、より具体的には次のように行われる。まず、目標値設定手段21によるSTEP4の処理は、図9のフローチャートに示すように実行される。
目標値設定手段21によるSTEP4の処理では、まず、エンジン1の始動後の経過時間を表すパラメータTSHの値があらかじめ定めた所定値XTMと比較される(STEP4−1)。このとき、TSH≦XTMである場合、すなわち、エンジン1の運転開始直後の状態である場合には、目標値設定手段21は、前述のようにO2センサ8の素子部10の損傷を防止するために、素子温度TO2の目標値Rを低温側の温度(例えば600℃)に設定する(STEP4−2)。尚、ここで設定する目標値Rはより詳しくは、現在から目標値予見時間Mr後の目標値R(n+Mr)である。
また、STEP4−1でTSH>XTMである場合には、目標値設定手段21は、大気温度TAの現在の検出値(図8のSTPE1で取得されたもの)から、あらかじめ定められたデータテーブルに基づいて素子温度TO2の目標値Rを設定する(STEP4−3)。ここで設定される目標値Rは、大気温度TAが常温程度(例えばTA≧0℃)である場合には、基本的には750℃以上の所定値(本参考例では800℃)である。但し、寒冷地でのエンジン1の運転時等、大気温度TAが低いとき(例えばTA<0℃)には、素子温度TO2の目標値Rが800℃のような高温であると、ヒータ13の温度が過剰に高温になりやすい。そして、本参考例では、後述するヒータ13の過熱防止処理によって、ヒータ13の温度が過剰に高温になると、該ヒータ13の故障(断線、溶損等)を避けるために該ヒータ13への通電は強制的に中止される。そこで、本参考例では、STEP4−3では、大気温度TAが低い場合(例えばTA<0℃)には、素子温度TO2の目標値Rを通常の場合よりも多少低い値(例えば750℃≦R<800℃となる値)に設定するようにしている。
尚、このSTEP4−3で設定される目標値Rは、STEP4−2で設定される目標値Rと同様、より詳しくは、現在から目標値予見時間Mr後の目標値R(n+Mr)である。
上記のようにSTEP4−2又は4−3で目標値R(=R(n+Mr))を新たに設定した後、目標値設定手段21は、該目標値Rを目標値予見時間Mrの期間分、記憶保持するためのMr+1個のバッファRBF(0),RBF(1),……,RBF(Mr)の値をSTEP4−4、4−5で更新する。これにより、STEP4の処理が終了する。
この場合、STEP4−4では、Mr個のバッファRBF(j)(j=0,1,…,Mr−1)に対して順番に、RBF(j)の値をRBF(j+1)の現在値に更新する処理が実行される。尚、バッファRBF(0)に今まで保持されていた値は消去される。また、STEP4−5では、前記STEP4−2又は4−3で新たに設定された目標値Rに、バッファRBF(Mr)の値が更新される。このように更新されるバッファRBF(0),RBF(1),……,RBF(Mr)の値は、それぞれ、前記式(24)の第4項のR(n),R(n+1),……,R(n+Mr)に相当するものとなる。尚、バッファRBF(0),RBF(1),……,RBF(Mr)の値は、エンジン1の始動時に所定の値(例えばSTEP4−2で設定する目標値)に初期化されている。
次に、ヒータコントローラ22による前記STEP5の処理は、図10のフローチャートに示すように実行される。このSTEP5の処理では、まず、前記素子温度TO2の推定値の現在値TO2(n)と、前記バッファRBF(0)(=R(n))、すなわち、目標値予見時間Mr前に目標値設定手段21により設定された目標値Rとからそれらの間の素子温偏差e(n)=TO2(n)−RBF(0)を算出する(STEP5−1)。
次いで、ヒータコントローラ22は、フラグF/A,F/Bの値を判断する(STEP5−2)。ここで、フラグF/AはデューティDUTの後述するリミット処理において値が“0”、“1”に設定されるフラグであり、F/A=1は、デューティDUTがあらかじめ定めた所定の上限値あるいは下限値に強制的に制限されている状態を意味し、F/A=0はこのようなデューティDUTの値の制限がなされていない状態(上限値>DUT>下限値)を意味する。また、フラグF/Bは、後述するヒータ13の過熱防止処理によりヒータ13への通電が強制的に遮断されている状態で“1”に設定されるフラグである。尚、フラグF/A,F/Bの値の初期値は、“0”である。
STEP5−2の判断で、F/A=F/B=0である場合には、ヒータコントローラ22は、前記式(24)の第1項のΣe(j)の現在値にSTEP5−1で新たに算出した偏差e(n)を加算する(STEP5−3)。これにより、偏差e(n)がヒータコントローラ22の処理のサイクルタイムdtc毎に累積加算(積分)したものが求められる。尚、Σe(j)の初期値は“0”である。
また、STEP5−2の判断で、F/A=1又はF/B=1である場合には、デューティDUTの現在値が通常的な正常値でないので、ヒータコントローラ22は、STEP5−4の処理を省略して次のSTEP5−4に進み、Σe(j)の値を現在値に保持する。
次いで、ヒータコントローラ22は、STEP5−1で求めた素子温偏差e(n)の現在値(最新値)やその累積加算値Σe(j)の現在値等を用いて、前記式(24)の演算を行って、ヒータ13に対する制御入力であるDUTの今回値DUT(n)を算出する(STEP5−4)。すなわち、STEP5−1で求めた偏差e(n)の現在値と、その累積加算値Σe(j)の現在値と、ヒータ温度Thtの推定値の現在値Tht(n)と、前記バッファRBF(0),RBF(1),……,RBF(Mr)の現在値(=R(n),R(n+1),……,R(n+Mr))と、排ガス温度Tgd(O2センサ8の配置箇所での排ガス温度)の推定値の現在値Tgd(n)と、あらかじめ定められた係数Fs0,Fe0,Fx0,Fr(i)(i=0,1,……,Mr),Fdtの値とから、前記式(24)により、デューティDUT(n)を算出する。尚、ヒータ温度Thtの推定値と排ガス温度Tgdの推定値とは、エンジン1の運転開始時(エンジン1の始動時)にその時点で検出された大気温度TAが初期値として設定されている。そして、前記排気温オブザーバ19及び素子温オブザーバ20の処理が未だ実行されていない段階では、それらの初期値が式(24)の演算に用いられる。そして、両オブザーバ19,20の処理が実行された後には、それらのオブザーバ19,20がそれぞれの処理で求めた推定値の最新値が式(24)の演算に用いられる。
次いで、ヒータコントローラ22は、STEP5−4で算出したデューティDUT(n)のリミット処理をSTEP5−5〜5−11で実行する。すなわち、デューティDUT(n)が所定の下限値(例えば“0”)よりも小さいか否かを判断し(STEP5−5)、DUT(n)<下限値である場合には、DUT(n)の値を強制的にその“下限値”に設定し直す(STEP5−6)。そして、このとき、前記フラグF/A(STEP5−2で使用するフラグ)の値を“1”に設定する(STEP5−7)。
また、DUT(n)≧下限値である場合には、さらに、デューティDUT(n)が所定の上限値(例えば100%)よりも大きいか否かを判断する(STEP5−8)。このときDUT(n)>上限値である場合には、DUT(n)の値を強制的にその“上限値”に設定し直す(STEP5−9)。また、このとき、前記フラグF/Aの値を“1”に設定する(STEP5−10)。尚、下限値≦DUT(n)≦上限値である場合には、DUT(n)の値は維持され、前記フラグF/Aの値は“0”に設定される(STEP5−11)。以上によりヒータコントローラ22によるSTEP5の処理は終了する。
図8のメインルーチンの処理に戻って、センサ温度制御手段12は、次に、STEP7〜13に示す処理を実行する。この処理は、ヒータ13の過熱防止のための処理であり、まず、STEP7において、ヒータ温度Thtの推定値の現在値(最新値)があらかじめ定められた所定の上限値THTLMT(例えば930℃)以上であるか否かが判断される。この場合、本参考例では、基本的には、Tht≧THTLMTとなった場合に、ヒータ13の損傷等を防止するために、該ヒータ13への通電を強制的に遮断する。但し、外乱等の影響で、Thtの推定値の値が一時的に上記上限値THTLMT以上に上昇することも考えられる。そこで、本参考例では、Tht≧THTLMTとなる状態が所定時間(例えば3秒。以下、ヒータOFF遅延時間という)以上、継続した場合に、ヒータ13の通電を遮断することとする。
このため、前記STEP7で、Tht<THTLMTである場合には、センサ温度制御手段12は、上記ヒータOFF遅延時間を計時するためのカウントダウンタイマTMHTOFFの値を上記ヒータOFF遅延時間に相当する所定値TM2に設定しておく(STEP8)。そして、この場合には、ヒータ13の通電は遮断しないので、センサ温度制御手段12は、前述したフラグF/B(図10のSTEP5−2で使用するフラグ)の値を“0”に設定する(STEP9)。
一方、STEP7でTht≧THTLMTである場合には、センサ温度制御手段12は、カウントダウンタイマTMHTOFFの値を“1”だけカウントダウンした後(STEP10)、さらに、このカウントダウンタイマTMHTOFFの値が“0”になったか否か、すなわち、Tht≧THTLMTの状態のまま、前記ヒータOFF遅延時間TM2が経過したか否かを判断する(STEP11)。
このときTMHTOFF≠0である場合には、前記STEP9でフラグF/Bの値を“0”に設定する。また、TMHTOFF=0である場合には、デューティDUTのの現在値を強制的に“0”に設定し直し(STEP12)、さらに、フラグF/Bの値を“1”に設定する(STEP13)。
尚、STEP9でフラグF/Bの値が“0”に設定された場合には、センサ温度制御手段12は、デューティDUTの現在値(前記STEP5の処理で算出された最新値)に従ってパルス電圧を図示しないヒータ通電回路に付与し、該デューティDUTに応じた電力で該ヒータ13に通電させる。また、STEP12でフラグF/Bの値が“1”に設定された場合には、センサ温度制御手段12は、ヒータ12の通電回路にパルス電圧を付与せず、これにより、該ヒータ13への通電を遮断する。
上述のようにしてSTEP7〜STEP13に係わる処理(ヒータ13の過熱防止処理)を実行した後、センサ温度制御手段12は、次に、前記排気温オブザーバ19及び素子温オブザーバ20の処理の1周期分の時間dtをカウントするためのカウントダウンタイマCOBSの値を判断する(STEP14)。このカウントダウンタイマCOBSの値は、エンジン1の始動時に「0」に初期化されている。
そして、センサ温度制御手段12は、COBS=0である場合には、排気温オブザーバ19及び素子温オブザーバ20の処理の周期dtに相当するタイマ設定時間TM3(これはSTEP3のTM1よりも短い)をCOBSの値として新たに設定した後(STEP15)、排ガス温度Tgd(O2センサ8の配置箇所近傍の排ガス温度)を推定する処理と、素子温度TO2を推定する処理(ヒータ温度Thtの推定処理を含む)とをそれぞれ、排気温オブザーバ19及び素子温オブザーバ20により実行する(STEP16)。また、STEP14でCOBS≠0である場合には、STEP15,16の処理は省略される。従って、STEP16の処理は、上記タイマ設定時間TM3により規定される周期dtで実行されることとなる。以上説明した処理が図8のメインルーチンの処理である。
上記STEP16の処理は、より具体的には、図11のフローチャートに示すように行われる。すなわち、センサ温度制御手段12は、まず、排気温オブザーバ19により、STEP16−1〜STEP16−6の処理を順次実行し、O2センサ8の配置箇所近傍での排ガス温度Tgdの推定値を求める。STEP16−1では、エンジン1の回転数NE及び吸気圧PBの現在の検出値(前記STEP1で取得された最新値)を用いて前記式(7)により流速パラメータVgが求められる。尚、この流速パラメータVgの値は、エンジン1の過回転等により前記式(7)の算出結果が“1”を越えたような場合には、強制的にVg=1に設定される。
次いで、排気温オブザーバ19は、前記式(1)に基づいてエンジン1の排気ポート2での排ガス温度Texgの推定値を算出する(STEP16−2)。すなわち、エンジン1の回転数NE及び吸気圧PBの現在の検出値から所定のマップにより基本排ガス温度TMAP(NE,PB)を求め、さらに、このTMAP(NE,PB)と、排ガス温度Texgの推定値の現在値Texg(k-1)(前回のサイクルタイムにおけるSTEP16−2で求められた値)と、あらかじめ定められた係数Ktexの値とを用いて前記式(1)の右辺の演算を行う。これにより、排ガス温度Texgの新たな推定値Texg(k)が算出される。尚、本参考例では、エンジン1のアイドリン運転時と、フュエルカット中においては、式(1)の演算に用いる基本排ガス温度TMAPを、それぞれの運転状態に対応してあらかじめ定めた所定値に設定するようにしている。また、排ガス温度Texgの推定値は、前述のようにエンジン1の運転開始時(始動時)に、その時に検出された大気温度TAが初期値Texg(0)として設定されており、エンジン1の運転開始後、初めて式(1)の演算を行うときには、その初期値Texg(0)がTexg(k-1)の値として用いられる。
次いで、排気温オブザーバ19は、前記式(5−1)、(5−2)に基づいて前記部分排気通路3aでの排ガス温度Tgaの推定値及び排気管温度Twaの推定値を算出する(STEP16−3)。すなわち、排ガス温度Tgaの推定値の現在値Tga(k)(前回のサイクルタイムにおけるSTEP16−3で求められた値)と、排気管温度Twaの推定値の現在値(前回のサイクルタイムにおけるSTEP16−3で求められた値)と、前記STEP16−2で先に算出した排ガス温度Texgの推定値の現在値と、前記STEP16−1で算出した流速パラメータVgの現在値と、あらかじめ定められたモデル係数Aaの値及び排気温オブザーバ19の処理の周期dtの値とを用いて前記式(5−1)の右辺の演算を行うことで、排ガス温度Tgaの新たな推定値Tga(k+1)を求める。
さらに、排ガス温度Tgaの推定値の現在値Tga(k)(前回のサイクルタイムにおけるSTEP16−3で求められた値)と、排気管温度Twaの推定値の現在値(前回のサイクルタイムにおけるSTEP16−3で求められた値)と、あらかじめ定められたモデル係数Ba,Caの値及び排気温オブザーバ19の処理の周期dtの値とを用いて前記式(5−2)の右辺の演算を行うことで、排気管温度Twaの新たな推定値Twa(k+1)を求める。
尚、排ガス温度Tga及び排気管温度Twaの推定値は、前述のようにエンジン1の運転開始時(始動時)に、その時に検出された大気温度TAがそれぞれの初期値Tga(0),Twa(0)として設定されており、エンジン1の運転開始後、初めて式(5−1),(5−2)の演算を行うときには、それらの初期値Tga(0),Twa(0)がそれぞれTga(k-1),Twa(k-1)の値として用いられる。
次いで、排気温オブザーバ19は、前記式(6−1)、(6−2)に基づいて前記部分排気通路3bでの排ガス温度Tgbの推定値及び排気管温度Twbの推定値を算出する(STEP16−4)。すなわち、排ガス温度Tgbの推定値の現在値Tgb(k)(前回のサイクルタイムにおけるSTEP16−4で求められた値)と、排気管温度Twbの推定値の現在値(前回のサイクルタイムにおけるSTEP16−4で求められた値)と、前記STEP16−3で先に算出した排ガス温度Tgaの推定値の現在値と、前記STEP16−1で算出した流速パラメータVgの現在値と、あらかじめ定められたモデル係数Abの値及び排気温オブザーバ19の処理の周期dtの値とを用いて前記式(6−1)の右辺の演算を行うことで、排ガス温度Tgbの新たな推定値Tgb(k+1)を求める。
さらに、排ガス温度Tgbの推定値の現在値Tgb(k)(前回のサイクルタイムにおけるSTEP16−4で求められた値)と、排気管温度Twbの推定値の現在値(前回のサイクルタイムにおけるSTEP16−4で求められた値)と、あらかじめ定められたモデル係数Bb,Cbの値及び排気温オブザーバ19の処理の周期dtの値とを用いて前記式(6−2)の右辺の演算を行うことで、排気管温度Twbの新たな推定値Twb(k+1)を求める。
尚、排ガス温度Tgb及び排気管温度Twbの推定値は、前述のようにエンジン1の運転開始時(始動時)に、その時に検出された大気温度TAがそれぞれの初期値Tgb(0),Twb(0)として設定されており、エンジン1の運転開始後、初めて式(6−1),(6−2)の演算を行うときには、それらの初期値Tgb(0),Twb(0)がそれぞれTgb(k-1),Twb(k-1)の値として用いられる。
次いで、排気温オブザーバ19は、前記式(8−1)、(8−2)に基づいて前記部分排気通路3cでの排ガス温度Tgcの推定値及び触媒温度Twcの推定値を算出する(STEP16−5)。すなわち、排ガス温度Tgcの推定値の現在値Tgc(k)(前回のサイクルタイムにおけるSTEP16−5で求められた値)と、触媒温度Twcの推定値の現在値(前回のサイクルタイムにおけるSTEP16−5で求められた値)と、前記STEP16−4で先に算出した排ガス温度Tgbの推定値の現在値と、前記STEP16−1で算出した流速パラメータVgの現在値と、あらかじめ定められたモデル係数Acの値及び排気温オブザーバ19の処理の周期dtの値とを用いて前記式(8−1)の右辺の演算を行うことで、排ガス温度Tgcの新たな推定値Tgc(k+1)を求める。
さらに、排ガス温度Tgcの推定値の現在値Tgc(k)(前回のサイクルタイムにおけるSTEP16−5で求められた値)と、触媒温度Twcの推定値の現在値(前回のサイクルタイムにおけるSTEP16−5で求められた値)と、前記STEP16−1で算出した流速パラメータVgの現在値と、あらかじめ定められたモデル係数Bc,Cc,Dcの値及び排気温オブザーバ19の処理の周期dtの値とを用いて前記式(8−2)の右辺の演算を行うことで、触媒温度Twcの新たな推定値Twc(k+1)を求める。
尚、排ガス温度Tgc及び触媒温度Twcの推定値は、前述のようにエンジン1の運転開始時(始動時)に、その時に検出された大気温度TAがそれぞれの初期値Tgc(0),Twc(0)として設定されており、エンジン1の運転開始後、初めて式(8−1),(8−2)の演算を行うときには、それらの初期値Tgc(0),Twc(0)がそれぞれTgc(k-1),Twc(k-1)の値として用いられる。
次いで、排気温オブザーバ19は、前記式(9−1)、(9−2)に基づいて前記部分排気通路3dでの(O2センサ8の配置箇所近傍での)排ガス温度Tgdの推定値及び排気管温度Twdの推定値を算出する(STEP16−6)。すなわち、排ガス温度Tgdの推定値の現在値Tgd(k)(前回のサイクルタイムにおけるSTEP16−6で求められた値)と、排気管温度Twdの推定値の現在値(前回のサイクルタイムにおけるSTEP16−6で求められた値)と、前記STEP16−5で先に算出した排ガス温度Tgcの推定値の現在値と、前記STEP16−1で算出した流速パラメータVgの現在値と、あらかじめ定められたモデル係数Adの値及び排気温オブザーバ19の処理の周期dtの値とを用いて前記式(9−1)の右辺の演算を行うことで、排ガス温度Tgdの新たな推定値Tgd(k+1)を求める。
さらに、排ガス温度Tgdの推定値の現在値Tgd(k)(前回のサイクルタイムにおけるSTEP16−6で求められた値)と、排気管温度Twdの推定値の現在値(前回のサイクルタイムにおけるSTEP16−6で求められた値)と、あらかじめ定められたモデル係数Bd,Cdの値及び排気温オブザーバ19の処理の周期dtの値とを用いて前記式(9−2)の右辺の演算を行うことで、排気管温度Twdの新たな推定値Twd(k+1)を求める。
尚、排ガス温度Tgd及び排気管温度Twdの推定値は、前述のようにエンジン1の運転開始時(始動時)に、その時に検出された大気温度TAがそれぞれの初期値Tgd(0),Twd(0)として設定されており、エンジン1の運転開始後、初めて式(9−1),(9−2)の演算を行うときには、それらの初期値Tgd(0),Twd(0)がそれぞれTgd(k-1),Twd(k-1)の値として用いられる。
次に、センサ温度制御手段12は、素子温オブザーバ20により、STEP16−7の処理を実行し、O2センサ8の素子温度TO2及びヒータ温度Thtの推定値を前記式(10−1)、(10−2)に基づいて求める。すなわち、素子温度TO2の推定値の現在値TO2(k)(前回のサイクルタイムにおけるSTEP16−7で求められた値)と、ヒータ温度Thtの推定値の現在値Tht(k)(前回のサイクルタイムにおけるSTEP16−7で求められた値)と、前記STEP6−6で先に算出された排ガス温度Tgdの推定値の現在値と、あらかじめ定められたモデル係数Ax,Bxの値及び素子温オブザーバ20の処理の周期dt(=排気温オブザーバ19の処理の周期)の値とを用いて前記式(10−1)の右辺の演算を行うことで、素子温度TO2の新たな推定値TO2(k+1)を求める。
さらに、素子温度TO2の推定値の現在値TO2(k)(前回のサイクルタイムにおけるSTEP16−7で求められた値)と、ヒータ温度Thtの推定値の現在値Tht(k)(前回のサイクルタイムにおけるSTEP16−7で求められた値)と、デューティDUTの現在値DUT(k)と、あらかじめ定められたモデル係数Cx,Dxの値及び素子温オブザーバ20の処理の周期dtの値とを用いて前記式(10−2)の右辺の演算を行うことで、ヒータ温度Thtの新たな推定値Tht(k+1)を求める。
尚、素子温度TO2及びヒータ温度Thtの推定値は、前述のようにエンジン1の運転開始時(始動時)に、その時に検出された大気温度TAがそれぞれの初期値TO2(0),Tht(0)として設定されており、エンジン1の運転開始後、初めて式(10−1),(10−2)の演算を行うときには、それらの初期値TO2(0),Tht(0)がそれぞれTO2(k-1),Tht(k-1)の値として用いられる。また、式(10−2)で用いるデューティDUT(k)は、基本的には前述のSTEP5でヒータコントローラ22が求めた最新値である。但し、前記STEP12でデューティDUTの値が“0”に制限された場合(ヒータ13への通電を遮断する場合)には、その値が式(10−2)で用いられる。
以上説明したセンサ温度制御手段12の処理によって、O2センサ8の素子温度TO2が目標値Rに維持されるようにO2センサ8のヒータ13への供給電力が制御される。この場合、エンジン1の運転開始直後や、大気温度TAがかなり低い場合を除いて、通常的には目標値Rが800℃に設定される。この結果、O2センサ8の出力特性をエンジン1の空燃比制御(触媒装置4による良好な浄化性能を確保するための空燃比制御)に適した特性に安定に維持することができ、ひいては、その空燃比制御を良好に行って、触媒装置4の良好な浄化性能を確実に維持することができる。
また、本参考例では、O2センサ8の配置箇所近傍における排ガス温度Tgdが排気温オブザーバ19により推定され、ヒータコントローラ22によりヒータ13を通電制御するためのデューティDUTを算出するために、その排ガス温度Tgdの推定値が用いられる。より詳しくは、ヒータコントローラ22の制御対象に対する制御入力としてのデューティDUTは、素子温度TO2(本参考例では推定値)に応じた制御入力成分(前記式(24)の第1項(Σe(j)を含む項)及び第2項(e(n)を含む項))はもちろん、素子温度TO2の変動の外乱的な要因となる排ガス温度Tgdの推定値に応じた制御入力成分、すなわち、前記最適外乱F/F成分Uopfdを含むものとして算出される。また、この最適外乱F/F成分Uopfdに係る係数Fdtは、現在の排ガス温度が前記排ガス温度予見時間Md後まで継続するとして、予見制御のアルゴリズムにより決定される。この結果、素子温度TO2の目標値Rへの制御の安定性を効果的に高め、ひいては、O2センサ8の出力特性の安定性を効果的に高めることができる。
さらには、本参考例では、素子温度TO2の目標値R(現在から前記目標値予見時間Mr後までの目標値R)に応じた制御入力成分、すなわち、前記最適目標値F/F成分Uopfr成分をも含めて制御入力DUTが算出される。このため、特に、目標値Rがエンジン1の運転開始直後の低温側温度(600℃)から通常の高温側温度(750℃〜800℃)に切替ったときに、制御入力DUTが一時的に過剰に大きくなる(素子温度TO2が目標値Rに対してオーバーシュートを生じる)のを防止することができる。これによっても、O2センサ8の出力特性の安定性を効果的に高めることができる。
さらに、排ガス温度Tgdの推定処理においては、排気ポート2からO2センサ8の配置箇所までの排気通路3を複数個の部分排気通路3a〜3dに区分けしている。そして、最上流側の部分排気通路3aの入り口としてのエンジン1の排気ポート2における排ガス温度Texgを、エンジン1の運転状態を表すパラメータとしての回転数NE及び吸気圧PBの検出値を用いて推定すると共に、各部分排気通路3a〜3dの排ガス温度Tga,Tgb,Tgc,Tgdが、それぞれの部分排気通路3a〜3dの上流側における排ガス温度Texg,Tga,Tgb,Tgcの推定値を用いて上流側のものから順番に推定される。さらにこのとき、各部分排気通路3a〜3dを形成する通路形成物(排気管6a、触媒装置4の触媒7、排気管6b)と排ガスとの間の熱伝達と、該通路形成物から大気への放熱を考慮して、排ガス温度Tga,Tgb,Tgc,Tgdが各部分排気通路3a〜3dの通路形成物の温度(排気管温度Twa,Twb,Twd及び触媒温度Twc)と共に推定される。加えて、触媒温度Twcの推定では、触媒装置4の触媒7の発熱も考慮される。この結果、各排ガス温度Texg,Tga,Tgb,Tgc,Tgdの推定値を順番に精度よく求めることができる。
そしてこのように、各排ガス温度Texg,Tga,Tgb,Tgc,Tgdの推定値、特に、O2センサ8の配置箇所近傍での排ガス温度Tgdを精度よく推定できることから、この排ガス温度Tgdの推定値に応じた前記最適外乱F/F成分Uopfdは、該排ガス温度Tgdの変動に伴う素子温度TO2の変動を補償する上で好適なものとなる。その結果、素子温度TO2の目標値Rへの制御を良好に行うことができる。
尚、本参考例では、排気ポート2からO2センサ8の配置箇所までの排気通路3を4個の部分排気通路3a〜3dに区分けしたが、その区分けの個数は必ずしも4個である必要はなく、排気系の長さやレイアウト、要求される推定値の精度、演算負荷等に応じて、適宜設定すればよい。例えば、排気管6aの部分の排気通路3を3個以上に区分けしたり、触媒装置4の部分の排気通路3を2個以上に区分けするようにしてもよい。
また、本参考例では、排ガス温度Texg,Tga,Tgb,Tgc,Tgd、排気管温度Twa,Twb,Twd、触媒温度Twc、素子温度TO2、ヒータ温度Thtの推定値の初期値として、エンジン1の運転開始時に検出した大気温度TAを用いるようにしたが、それらの初期値としてエンジン1の運転開始時の機関温度等を用いてもよく、あるいは、大気温度TAと機関温度とに応じて該初期値を設定するようにしてもよい。また、エンジン1の通常始動時は、大気温度を用い、エンジン1の運転停止後まもなくの再始動時には機関温度等を用いるというように、初期値を設定するようにしてもよい。このことは、後述する他の参考例及び実施形態でも同様である。
次に、本発明の第1実施形態を図12及び図13を参照して説明する。尚、本実施形態を含めて、後述する他の実施形態は、前記参考例と一部の構成もしくは機能のみが相違するものであるので、同一構成部分もしくは同一機能部分については、参考例のものと同一の参照符号を用いて詳細な説明を省略する。
本実施形態では、図12に示すように、排気通路3の排気管6aの中間部に、排ガスの温度Txを検出する排ガス温度センサ29が装着され、この排ガス温度センサ29による排ガス温度Txの検出値が、O2センサ8の配置箇所近傍での排ガス温度Tgdの推定処理のために、コントロールユニット10のセンサ温度制御手段12(より詳しくは排気温オブザーバ19)に与えられるようになっている。尚、この排ガス温度センサ29は、O2センサ8の素子温度TO2の制御処理に専用的なものである必要はなく、素子温度TO2の制御とは別の目的(例えば空燃比のリッチ化に伴う触媒保護のための排ガス温度制御等の目的)で備えられた既存のものであってもよい。
本実施形態では、センサ温度制御手段12の排気温オブザーバ19は、この排ガス温度センサ29による排ガス温度Txの検出値を用いて、以下に説明するようにO2センサ8の配置箇所近傍での排ガス温度Tgdを推定するようにしている。
すなわち、本実施形態では、排ガス温度センサ29の配置箇所からO2センサ8の配置箇所までの排気通路3が3個の部分排気通路3b〜3dに区分けされている。部分排気通路3c,3dは、前記参考例のものと同一であり、部分排気通路3bは、前記参考例のものと同一であるか、もしくは長さのみが相違するものである。そして、これらの3個の部分排気通路3b〜3dに対応して、排気温オブザーバ19のアルゴリズムは、図13に示すように、前記式(6−1),(6−2)のモデル式により表されるCAT前排気系熱モデル26と、前記式(8−1),(8−2)のモデル式により表されるCAT部排気系熱モデル27、前記式(9−1),(9−2)のモデル式により表されるCAT後排気系熱モデル28とから構成されている。
この場合、前記図6のブロック図と比較して明らかなように、本実施形態における排気系オブザーバ19のアルゴリズムでは、前記参考例のものの排気ポート熱モデル24及びCAT前排気系熱モデル25は備えられていない。そして、本実施形態では、CAT前排気系熱モデル26には、前記排ガス温度センサ29による排ガス温度の検出値Txが前記式(6−1)の演算に用いる“Tga”の値として与えられるようになっており、この点でのみ、前記参考例のものの排気温オブザーバ19のアルゴリズムと相違している。つまり、本実施形態では、CAT前排気系熱モデル26は、式(6−1)の“Tga”の値として、排ガス温度センサ29による排ガス温度の検出値Tx(最新値)を用いて、部分排気通路3bの下流端での排ガス温度Tgbの推定値を逐次求めるようにしている。
以上説明した以外のセンサ温度制御手段12の処理は、前記参考例のものと同一である。かかる本実施形態においては、O2センサ8の配置箇所近傍での排ガス温度Tgdを推定するために、排ガス温度センサ29による排ガス温度の検出値Txを用いる点でのみ、前記参考例と相違するものである。そして、本実施形態においても、O2センサ8の配置箇所近傍での排ガス温度Tgdを適正に精度よく推定することができる。従って、前記参考例と同様の効果を奏することができる。
尚、前記第1実施形態では、排ガス温度センサ29を排気管6aの中間部に備えた場合について説明したが、該排ガス温度センサ29は、他の箇所に備えられていてもよい。例えば、図14(a)に示すように、エンジン1の排気ポート2の近傍箇所の排ガス温度Txを検出する排ガス温度センサ29が備えられている場合(第2実施形態)には、図6の排気ポート熱モデル24を省略すると共に、その排ガス温度センサ29による排ガス温度Txの検出値(最新値)を、前記式(5−1)の演算に用いる“Texg”の値として、CAT前排気系熱モデル25に与えるようにする。これにより、O2センサ8の配置箇所近傍での排ガス温度Tgdを推定できる。
また、例えば、図14(b)に示すように、触媒装置4の入り口近傍の排ガス温度Txを検出する排ガス温度センサ29が備えられている場合(第3実施形態)には、図6の排気ポート熱モデル24並びにCAT前排気系熱モデル25,26を省略すると共に、その排ガス温度センサ29による排ガス温度Txの検出値(最新値)を、前記式(8−1)の演算に用いる“Tgb”の値として、CAT部排気系熱モデル27に与えるようにする。これにより、O2センサ8の配置箇所近傍での排ガス温度Tgdを推定できる。
さらに、例えば、図14(c)に示すように、触媒装置4の出口近傍の排ガス温度Txを検出する排ガス温度センサ29が備えられている場合(第4実施形態)には、図6の排気ポート熱モデル24並びにCAT前排気系熱モデル25,26、CAT部排気系熱モデル27を省略すると共に、その排ガス温度センサ29による排ガス温度Txの検出値(最新値)を、前記式(9−1)の演算に用いる“Tgc”の値として、CAT後排気系熱モデル28に与えるようにする。これにより、O2センサ8の配置箇所近傍での排ガス温度Tgdを推定できる。
上記第2〜第4実施形態のいずれの場合においても、センサ温度制御手段12の他の処理(排ガス温度Tgdを推定する処理以外の処理)は前記参考例のものと同一でよい。
尚、本明細書での詳細な説明は省略するが、排ガス温度センサをO2センサ8よりも下流側に備えた場合であっても、その排ガス温度センサによる排ガス温度の検出値を用いてO2センサ8の配置箇所近傍での排ガス温度を推定するようにすることも可能である。すなわち、前記式(4−1)から判るように、排気通路の位置z(排ガスの流れ方向の位置)における排ガス温度Tg(z)を検出して把握するようにすれば、逆算的に、位置zよりも上流側の位置z−Δzにおける排ガス温度Tg(z-Δz)を推定することが可能である。従って、O2センサ8の下流側に備えた排ガス温度センサによる排ガス温度の検出値を用いて、O2センサ8の配置箇所近傍での排ガス温度を推定することができる。
また、以上説明した各実施形態では、最適予見制御のアルゴリズムによりO2センサ8の素子部10の温度を目標値Rに制御するようにしたが、その他の制御アルゴリズム(例えば通常的なPI制御もしくはPID制御に、排ガス温度Tgdに応じたフィードフォワード成分を含めて制御入力DUTを生成するようなアルゴリズム)により制御入力DUTを生成するようにしてもよい。
また、前記各実施形態では、O2センサ8の素子温度TO2と、ヒータ温度Thtを推定するようにしたが、それらの両者を温度センサにより直接的に検出するようにしてもよい。あるいは、いずれか一方を温度センサにより直接的に検出し、その検出値を用いて他方を推定するようにしてもよい。
また、前記各実施形態では、O2センサ8の素子温度TO2を制御する場合を例にとって説明したが、O2センサ8以外の排ガスセンサ(例えば、前記広域空燃比センサ9や、排ガスの水分含有量に応じた出力を発生する湿度センサ等)についても本発明を適用することができることはもちろんである。この場合、排ガスセンサの配置箇所近傍での排ガス温度を推定するためのアルゴリズムは、該排ガスセンサの配置箇所等によって、適宜構築すればよい。例えば、排ガスセンサが、図1R>1の排気管6aの中間部に配置されているような場合には、前記式(1)並びに式(5−1),(5−2)の熱モデルにより、排ガスセンサの配置箇所近傍での排ガス温度を推定することができる。
尚、ここで、内燃機関としては、通常のポート噴射式内燃機関、筒内直接噴射型火花点火式内燃機関、ディーゼル機関等、さらには船外機用の内燃機関等についても本発明を適用可能であることは言うまでも無い。