(58)【調査した分野】(Int.Cl.,DB名)
内燃機関の燃料供給を停止する燃料断を行ったときに、該内燃機関の排気管に取付けられた酸素センサの実出力値と酸素濃度との関係を較正する補正係数を求める一方、前記実出力値と前記補正係数とを用いて前記排気管を流通する排気ガスの酸素濃度を検出する酸素センサ制御装置であって、
一回の前記燃料断の期間中に取得した複数個の前記酸素センサの実出力値又は該実出力値を用いて算出される酸素濃度を反映した濃度対応値をもとに平均化した平均出力値を算出する平均出力値算出手段と、
前記平均出力値算出手段の算出した前記平均出力値のピーク値を記憶するピーク値記憶手段と、
前記燃料断毎に前記ピーク値記憶手段にて記憶された複数の前記ピーク値を、さらに平均化して複数平均出力値を算出する複数平均出力値算出手段と、
前記複数平均出力値と予め設定された基準出力値に基づいて、前記酸素センサの実出力値を補正するための新たな補正係数を求める補正係数算出手段と
を備え、
前記複数平均出力値算出手段は、
前記燃料断の回数が3以上の数値に予め設定された所定回数に達している場合には、以下の式(1)にて最新の複数平均出力値(Ipavf)を算出し、
Ipavf=1/前記所定回数の数値×{最新の前記ピーク値−Ipavf(n−1)}+Ipavf(n−1)・・・(1)
(ただし、Ipavf(n−1)は、当該(1)の式のもと1つ前に算出された複数平均出力値)
前記燃料断の回数が前記所定回数未満の場合には、それまでに前記ピーク値記憶手段にて記憶された前記ピーク値の相加平均値を用いて前記複数平均出力値(Ipavf)を算出することを特徴とする酸素センサ制御装置。
【発明を実施するための形態】
【0013】
以下、本発明を具現化した一実施形態について、図面を参照して説明する。なお、これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものであり、記載されている装置の構成、各種処理のフローチャートなどは、それのみに限定する趣旨ではなく、単なる説明例である。
【0014】
図1は、酸素センサ制御装置10を含むエンジン制御システム1の構成図である。エンジン制御システム1において、車両の内燃機関(エンジン)100の排気管120には酸素センサ20(以下、実装酸素センサ20という。)が取付けられ、実装酸素センサ20にはコントローラ22が接続されている。そして、コントローラ22に酸素センサ制御装置10が接続されている。本実施形態における酸素センサ制御装置10は、エンジンコントロールユニット(ECU)の機能を有している。
【0015】
内燃機関100の吸気管110にはスロットル弁102が設けられ、内燃機関100の各気筒には、燃料を筒内に供給するためのインジェクタ(燃料噴射弁)104が設置されている。また、排気管120の後流側に排ガス浄化触媒130が取付られている。さらに、内燃機関100には圧力センサ(図示外)、温度センサ(図示外)、及びクランク角センサ108等の各種センサが設置されている。また、吸気管110にはエアフロメータ107が設置されている。エアフロメータ107は、大気の吸気量を測定する。吸気された大気は、排気管120に供給されるので、エアフロメータ107は、大気の吸気量を測定することで、排気管120に供給される大気の供給量を測定している。
【0016】
各種センサ及びエアフロメータ107からの運転条件情報(エンジンの圧力、温度、クランク角、エンジン回転数、大気の供給量等)は、酸素センサ制御装置10に入力される。なお、
図1における矢印125は、運転条件情報のうち、エンジン圧力と温度が入力される経路を簡単に表わしている。酸素センサ制御装置10は、上記運転条件情報、実装酸素センサ20からの排気ガス中の酸素濃度検出値、及び運転者によるアクセルペダル106の踏み込み量等に応じて、スロットル弁102を制御して内燃機関100に供給する大気の量を制御すると共に、インジェクタ104からの燃料噴射量を制御する。これによって、酸素センサ制御装置10は、適切な空燃比で内燃機関100の運転を行う。
【0017】
ECU10は、中央演算処理装置(CPU)2、ROM3、RAM4、外部とのインターフェース回路(I/F)5、外部からの入力装置7、及び出力装置9を備えたマイクロコンピュータと、EEPROM等からなる不揮発メモリ8とを回路基板に実装したユニットである。そして、ECU10(CPU2)は、ROM3に予め記憶されたプログラムに従って入力信号を処理し、インジェクタ104による燃料噴射量の制御信号を出力装置9から出力したり、後述する大気補正処理を行う。
【0018】
実装酸素センサ20は、例えば、酸素イオン伝導性の固体電解質体に一対の電極を設けたセルを2つ用いた、いわゆる2セル式の空燃比センサとすることができる。空燃比センサのより具体的な構成としては、酸素ポンプセルと酸素濃度検出セルを、多孔質体を介して排気ガスが導入される中空の測定室が介在するように積層し、さらにこれら2つのセルを活性温度にまで加熱するためのヒータを積層したガス検出素子と、このガス検出素子を自身の内側に保持すると共に、排気管120に装着するためのハウジングとを備えた構成とすることができる。なお、実際の個々の内燃機関に取付けられた酸素センサ20を、後述する基準酸素センサと区別するため、本発明では「実装酸素センサ」と称している。
【0019】
実装酸素センサ20は、各種抵抗器や差動増幅器等を備えた検出回路である公知のコントローラ22に接続されている。コントローラ22は実装酸素センサ20にポンプ電流を供給し、該ポンプ電流を電圧に変換して酸素濃度検出信号としてECU10に出力する。より具体的には、コントローラ22は、酸素濃度検出セルの出力が一定値となるように、酸素ポンプセルへの通電制御を行い、酸素ポンプセルが測定室内の酸素を外部に汲み出す、あるいは、測定室に酸素を汲み入れるように動作し、そのときに酸素ポンプセルに流れるポンプ電流を、検出抵抗器を介して電圧に変換してECU10に出力するように駆動する。
【0020】
次に、実装酸素センサ20の大気補正手法(補正係数の算出手法)について説明する。大気補正は、内燃機関(エンジン)100の燃料供給を特定の運転条件下で停止する燃料断(フューエルカット、以下適宜「F/C」と表記する)を行ったときに、内燃機関100に取付けられた実装酸素センサ20の出力特性(実出力値)と酸素濃度との関係を較正するための補正係数を算出する処理である。大気補正は、理想的とされる所定の酸素センサ、換言すれば、製造バラツキの中心の出力特性を有する標準的な酸素センサであって、実装酸素センサ20と同一の構成からなる酸素センサ(以下、「基準酸素センサ」という)の出力特性と、内燃機関100に取付けられた実装酸素センサ20の出力特性との乖離を解消するよう、補正係数を求めることで行われ、得られた補正係数を用い、内燃機関を運転している間の実装酸素センサ20の実出力値を補正している。
【0021】
ここで、補正係数の値は、基準酸素センサの出力特性と、実装酸素センサ20の出力特性との乖離を解消するものであればよいが、例えば、以下の補正係数Kpを用いることができる。つまり、本実施の形態では、内燃機関100の走行時に大気補正が行えるように、ECU10の不揮発メモリ8に、予め、補正係数として、(基準酸素センサを酸素濃度が既知の特定雰囲気に晒したときの基準酸素出力値Ipso)/(実酸素センサ20を酸素濃度が上記特定雰囲気と実質的に同じ雰囲気に晒したときの出力値Ipro)で表される値(補正係数Kp)を記憶させている。ここで、「酸素濃度が既知の特定雰囲気」とは例えば大気(酸素濃度約20.5%)であるが、大気と異なる所定濃度の酸素雰囲気であってもよい。基準酸素センサを上記「酸素濃度が既知の特定雰囲気」に晒すにあたっては、所定の測定系に取り付けて、当該雰囲気(例えば大気)に晒させるようにすればよい。
【0022】
一方、実装酸素センサ20を晒す「酸素濃度が特定雰囲気と実質的に同じ雰囲気」とは、基準酸素センサを晒す雰囲気と同じ酸素雰囲気のほか、基準酸素センサを晒す酸素雰囲気に対して酸素濃度が±5.0%(より好ましくは±1.0%)の範囲内でずれている雰囲気までを許容するものである。実装酸素センサ20を上記「酸素濃度が特定雰囲気と実質的に同じ雰囲気」に晒すにあたっては、基準センサと同様に所定の測定系に取り付けて、当該雰囲気(例えば大気)に晒させるようにしてもよいし、実際の内燃機関100の排気管120に取り付けた上で、排気管120内に上記酸素雰囲気となるガスを流通させるようにして、実装酸素センサ20をその雰囲気に晒させるようにしてもよい。
【0023】
なお、この補正係数Kpは、内燃機関100の走行時に大気補正処理が実行されて後述する新たな補正係数Kqが求められると、新たな補正係数Kpとして更新されるが、本実施の形態では、内燃機関100の出荷前に、初期の補正係数Kpを、以下の手順により、不揮発メモリ8に記憶させている。具体的には、基準酸素センサを所定の測定系に取り付けて、大気雰囲気に晒し、
図2に示すように、基準酸素出力値Ipsoを求める。次いで、実装酸素センサ20を、出荷前(より詳細には、出荷検査時)の内燃機関100の排気管120に取り付け、内燃機関100を駆動させ、燃料供給を停止した状態で、スロットルバルブを略全開にしたり、あるいは、燃料供給の停止状態を長期間維持したりするなどして、排気管内を流通するガスの酸素雰囲気を例えば大気の酸素濃度と実質的に同じ雰囲気に近付けた状態に晒す。このときに得られる実装酸素センサ20の出力値Iproを検出する(
図2参照)。
【0024】
そして、
図2に示すように、(基準酸素出力値Ipso)/(実装酸素センサ20の出力値Ipro)、つまり基準酸素出力値Ipsoを同じ酸素濃度雰囲気下における実装酸素センサ20の出力値Iproで除することによって補正係数Kpを算出し、この補正係数Kpを不揮発メモリ8に記憶させる。このようにして、不揮発メモリ8に初期値として記憶された補正係数Kpは、次回の補正係数の更新(補正係数の上書き)が行われるまでは、実装酸素センサ20の実出力値Ipを補正するための補正係数として用いられる。
【0025】
次に、
図3を参照して、1回の燃料断期間中における実装酸素センサ20の出力対応値Iprの変化の一例について説明する。
図3は、燃料断が開始されてからの時間と大気の総供給量M1との関係(紙面上側のグラフ)、及び、燃料断が開始されてからの時間と実装酸素センサ20の出力対応値Iprとの関係(紙面下側のグラフ)を表している。大気の総供給量M1は、燃料断期間中にエアフロメータ107によって計測された、排気管120への大気の供給量を加算(積算)した値である。燃料断が開始されてから時間が経過するごとに大気の総供給量M1は増加する。排気管120に大気が供給されるので、排気管120等に残った燃料断が開始される前の排気ガスが大気と入れ換わる。
【0026】
排気管120等に残った排気ガスが大気と入れ換わるまでに時間を要するので、排気管120内の酸素濃度が大気の酸素濃度に近づくまでに時間を要する。
図3では、一例として、大気の総供給量M1が所定量M2(g)(一例として、50g)になった場合に、排気管120内の酸素濃度が大気の酸素濃度に近づく場合を示している。大気の総供給量M1が所定量M2(g)になったタイミングが
図3に示すIpr取得時間の開始のタイミングである。よって、大気の総供給量M1が所定量M2(g)となるまでの間、実装酸素センサ20の出力対応値Iprは徐々に大きくなる。そして、排気管120内の酸素濃度が大気の酸素濃度に近づくと、出力対応値Iprの値は概ね安定する。ただし、排気管120内の酸素濃度が大気の酸素濃度に近づいても、内燃機関100の各気筒のピストン運動が繰り返されるため、出力対応値Iprは脈動している。なお、
図3のF/C開始からIpr取得時間の開始の期間において、実際には出力対応値Iprは脈動しながら徐々に大きくなっているが、脈動の図示は省略している。
【0027】
次に、本実施の形態では、実装酸素センサ20の実出力値の比較となる、燃料断時の基準出力値としての燃料断基準出力値IpsfをECU10の不揮発メモリ8(EEPROM)に、記憶させる。この燃料断基準出力値Ipsfも内燃機関100の出荷前に不揮発メモリ8に記憶させており、本実施の形態では、上述した手順にて補正係数Kpを算出した後に、実装酸素センサ20を内燃機関100の排気管120に取り付けた状態で、F/Cを意図的に行うことで求めている。具体的には、内燃機関100の出荷検査時に、上記のようにして補正係数Kpを求めた実装酸素センサ20を内燃機関100の排気管120に取り付けた状態で、内燃機関100の駆動を開始する。そして、特定の運転状況下でF/Cを人為的あるいは機械的に実行し、筒内から排出されるF/C後のガスが実装酸素センサ20の周囲に到達したと見込まれる時点(例えば、F/C開始から大気の総供給量M1が所定量M2(g)(一例として、50g)なった)以降に所定時間間隔毎に得られる実装酸素センサ20の実出力値に補正係数Kpを乗じた値の複数個を平均化することで算出している。このようにして得られた燃料断基準出力値Ipsfを、不揮発メモリ8に記憶させている。なお、燃料断基準出力値Ipsfが特許請求の範囲の「基準出力値」に相当する。
【0028】
なお、内燃機関(エンジン)100では、ECU10は、車両の減速や吸入空気量の状態等の運転条件に応じて、インジェクタ104からの燃料噴射量が0となる指示を出力するが、この指示の出力の有無を検出することでF/Cが開始されたと判定することができる。ところで、F/Cが開始される運転条件には種々のパターンがあるが、上記の燃料断基準出力値Ipsfを算出するために内燃機関100の出荷検査時に実行したF/C開始時の特定の運転条件と、車両(内燃機関)100の出荷後の走行(運転)時における後述の大気補正処理を実行するF/C開始時の特定の運転条件を揃えないと、大気補正処理が同じ条件で行えず、大気補正の精度(換言すれば、後述する平均出力値Ipav,複数平均出力値Ipavf、及び補正係数Kqそれぞれの算出精度)が低下する。従って、本実施の形態においては、運転条件が決められた所定の条件下での燃料断のみを対象として、平均出力値Ipav,複数平均出力値Ipavf、燃料断基準出力値Ipsfの算出、及び、後述する補正係数Kqの算出処理を実行するようにしている。
【0029】
但し、燃料断が行われる条件を揃えることは必須ではなく、それぞれ異なる条件下での複数の燃料断において、それぞれ実装酸素センサ20の実出力値Ipを取得し、平均出力値Ipav,複数平均出力値Ipavf、燃料断基準出力値Ipsf、補正係数Kqの算出を行うようにしてもよい。なお、内燃機関100の運転中に、特定の運転条件でF/Cが開始されたか否かを判定するにあたっては、F/Cが開始(F/C開始が判定)された直前のエンジン回転数、エンジン負荷、吸入空気量などの内燃機関の運転状態を表すパラメータを少なくとも1つ用い、そのパラメータが所定の条件(つまり、燃料断基準出力値Ipsfを得るために予め設定した所定の条件)を満たしていたときに、運転条件が予め決められた所定の条件にてF/Cが開始されたと判断することができる。
【0030】
次いで、不揮発メモリ8に補正係数Kp及び燃料断基準出力値Ipsfが記憶された状態のもと、平均出力値Ipav,複数平均出力値Ipavfを用いて車両(内燃機関100)の走行中にECU10のCPU2が実行する大気補正処理の概要について、
図6,
図7に示すフローチャートに基づいて説明する。なお、
図6は、大気補正処理を実行するか否かを判断するフローチャートにあたり、また、
図7は、平均出力値Ipav,複数平均出力値Ipavfを用いて補正係数Kqを算出する大気補正処理を実行するフローチャートに相当するものであって、両フローチャートは、ECU10の電源導入後に処理を開始し、それぞれ所定の周期(例えば、1msec毎)で繰り返し実行される。
【0031】
まず、
図6を参照して、大気補正処理を実行するか否かを判断する処理について説明する。CPU2は、内燃機関100の運転中にF/Cが開始されたか否かを判定する(S101)。この判定は、上述したように、インジェクタ104からの燃料噴射量が0となる指示を出力したか否かで判定している。当該指示が出されると、F/Cが開始されたと判定される(S101:YES)。次いで、CPU2は、特定の運転条件下でのF/Cであったか否かを判定する(S103)。この判定は、上述したように、F/Cが開始(F/C開始が判定)された直前のエンジン回転数、エンジン負荷、吸入空気量などの内燃機関の運転状態を表すパラメータを少なくとも1つ用い、そのパラメータが所定の条件を満たしているか否かで判定している。特定の運転状態下でのF/Cであったと判定されると(S103:YES)、CPU2は、補正フラグを「1」に設定する(S105)。なお、ECU100の電源導入時には、補正フラグは0に設定されるようになっている。一方、S101:NO,S103:NOと判定されると、本処理を終了し、当初からの処理(S101)をCPU2が繰り返し実行する。尚、S101でF/Cが開始したと判断されると(S101:YES)、並行して燃料断期間中における排気管120への大気の供給量の総量である総供給量M1が「0」に設定される。なお、総供給量M1は、RAM4に記憶される。次いで、エアフロメータ107から大気の供給量が取得され、総供給量M1の積算が開始される。
【0032】
次に、
図7に示すフローチャートを参照して、大気補正処理について説明する。まず、ステップS2にて、補正フラグが「1」であるか否かを判断する。補正フラグが「1」の場合(S2:YES)、ステップS4に移行する。補正フラグは、
図6のステップS105にて「1」に設定されRAM4に記憶されたもので判断する。一方、補正フラグが「1」でない場合(S2:NO)、本処理を終了する。ステップS2の判定が「YES」の場合、CPU2は、F/Cが継続しているか否かを判定する(S4)。F/Cが継続している場合(S4:YES)、S6の判断処理に移行する。
【0033】
次いで、S6の判断処理では、1回の燃料断期間において積算されたAir掃気量(大気の総供給量M1)が、所定量M2(一例として、50g)以上になったか否かが判断される(S6)。なお、所定量M2の値は不揮発メモリ8に記憶されている。総供給量M1が所定量M2以上になっていない場合(S6:NO)、S25に移行し、Ipavf取得処理実施指示がまだなされていないので(S25:NO)、処理を終了する。
【0034】
ここで、F/C継続時間として、Air掃気量(大気の総供給量M1)が、所定量M2(一例として、50g)以上になるまで待つのは、F/Cが開始されても、F/C前の燃焼ガスが排気管120等に残り、燃焼ガスが新気(大気)に近づくか、又は入れ替わるまでに所定量M2のAir掃気量を要するため、排気管120内の酸素濃度も大気の酸素濃度に近付くまでに遅れが生じる。そのため、実装酸素センサ20の実出力値(出力波形)も、F/C開始後に排気管120内の酸素濃度が増加するのにつれて徐々に増加し、排気管120がほぼ大気に近づくとその出力波形は脈動の影響はあるもののほぼ安定した値となる。そこで、ステップS6では、特定の運転条件下でF/Cが開始されてから、排気管120が大気に近づくか、又は入れ替わると想定されるAir掃気量(M2)までF/Cが継続したか否かを判定するようにしている。
【0035】
図7に戻り、S2,S4のそれぞれにて「YES」との判定が繰り返され、Air掃気量(総供給量M1)が、所定量M2(一例として、50g)以上になると(S6:YES)、CPU2は、実装酸素センサ20の出力対応値Iprを取得し、RAM4に記憶する(S8)。なお、出力対応値Iprは、特定の運転条件下でのF/Cが継続する限り、所定の時間間隔毎(例えば、1msec毎)繰り返し取得される。また、この出力対応値Iprは、実装酸素センサ20が出力する実出力値Ipに、不揮発メモリ8に記憶されている現在の補正係数Kpを乗じた値である。つまり、実出力値Ipに現在の補正係数Kpを乗じた値である出力対応値Iprが、特許請求の範囲の「実出力値を用いて算出される酸素濃度を反映した濃度対応値」に相当する。
【0036】
次に、CPU2は、S8で取得した出力対応値Iprが所定の第1範囲R1の範囲内か否かを判断し(S10)、出力対応値Iprが第1範囲R1の範囲内であれば(S10:YES)、出力対応値Iprの加重平均処理を行う(S12)。一方、出力対応値Iprが第1範囲R1の範囲内でない場合(S10:NO)、S8で取得し、RAM4に記憶した出力対応値Iprを消去する読み捨て処理を行う(S14)。
【0037】
通常、運転条件が決められた所定の条件下にてF/Cが開始されたとしても、実装酸素センサ20における個々の実出力値Ip(ひいては出力対応値Ipr)は脈動したり、その実出力値Ip(ひいては出力対応値Ipr)に偶発的にノイズが含まれたりすることがある。そこで、本実施の形態では、1回あたりの燃料断期間中に取得される複数の出力対応値Iprの値を平均化した平均出力値Ipavを算出することで、脈動やノイズの影響を除去ないし軽減し、1回あたりのF/Cにおける安定した実装酸素センサ20の出力状態を得るようにしている。具体的には、
図3に示すように、1回あたりの燃料断期間中に得られる個々の実出力値Ipに現在の補正係数Kpを乗じた値(Ipr1−1、Ipr1−2・・・)のうち、所定の第1範囲(レンジ)R1内の値のみ(換言すれば、S10で「YES」と判定された出力対応値Iprの値のみ)を取得して平均出力値Ipavを算出し、RAM4に記憶する(S12)。なお、本実施の形態では、
図3に示すレンジR1としては、燃料断基準出力値Ipsfの所定割合の変動値(例えば、燃料断基準出力値Ipsfを中心値にして、燃料断基準出力値Ipsfの7.5%の値をプラス、マイナスした値)を上限及び下限として設定している。
【0038】
図3に示すように、例えば、1回あたりの燃料断の期間に得られる実装酸素センサ20の実出力値Ipに補正係数Kpを乗じた出力対応値Ipr1のうち、2つの値Ipr1−1、Ipr1−2は、上下に値が振れて(脈動して)いるが、両者の平均をとることで、脈動の影響を除去することができる。また、2つの出力対応値Ipr1−6、Ipr1−8は、それぞれノイズを含んだ値、及び実装酸素センサ20が誤検出したときの値と推定されるが、これらはいずれもレンジR1を逸脱しているために平均出力値Ipavの算出に用いられず、読み捨てられる(S14)。
【0039】
次いで、S12では、出力対応値Iprの加重平均処理(詳細には、128個の出力対応値Iprの加重平均処理)を行うが、その処理は、例えば下記式1に従って行われ、この出力対応値Iprを加重平均処理した値が、後述するステップS22の平均出力値に相当する加重平均値Ipavとなる。
Ipav=1/128×{最新のIpr−Ipav(n−1)}+Ipav(n−1) ・・・(式1)
上記式1のIpav(n−1)は、1つ前の処理(直前)で算出された値に該当する。なお、この大気補正処理の開始直後はIpav(n−1)が存在しないため、最初に得られる出力対応値IprをIpav(n−1)に代入して加重平均値Ipavを求めるようにしている。そして、出力対応値Iprの加重平均処理(S12)が終了すると、加重平均値Ipavのピーク値(最大値)のホールド処理を行う(S13)。このピーク値のホールド処理は、具体的には、
図8に示すサブルーチンのフローチャートに従って行われる。
【0040】
図8に示すように加重平均値Ipavのピーク値のホールド処理は、先ず、S12の加重平均処理で今回計算され取得されたIpav(n)の値が以前のS12の加重平均処理で計算されRAM4に記憶されたホールド値の値より大か否かを判断する(S131)。今回取得されたIpav(n)の値が、ホールド値より大の場合には(S131:YES)、今回取得されたIpav(n)をRAM4に記憶されている前回のホールド値に上書きする(S132)。尚、ピーク値のホールドは、各F/C毎にRAM4に記憶される。また、F/Cが開始されて最初に得られる加重平均値Ipav(n)の値はそのままホールド値としてRAM4に記憶され、次回に得られる加重平均値の値と比較されることになる。次いで、
図7に示す大気補正処理のフローチャートに戻る。今回取得されたIpav(n)の値が、RAM4に記憶された前回のホールド値以下の場合には(S131:NO)、上書き処理をせずに
図7に示す大気補正処理のフローチャートに戻る。
図7に示す大気補正処理のフローチャートでは、S6で否定判定された(S6:NO)場合、S14の出力対応値Iprの読み捨て処理を行った場合(S14)及びS13が終了した場合には、S25にそれぞれ移行する。
【0041】
一方、S4で、F/Cが継続していないと判定される(S4:NO)と、補正フラグを「1」から「0」に設定(S16)し、S20に移行する。S20では、特定の運転条件下でのF/Cが終了するまで、1回の燃料断期間において積算されたAir掃気量(大気の総供給量M1)が、所定量M2(一例として、50g)以上になったか否かが判断される(S20)。総供給量M1が所定量M2以上になっていた場合(S20:YES)、CPU2は、)S13でホールドされる出力対応値Iprの加重平均値のピーク値を平均出力値であるIpavのピーク値として取得する(S22)。また、総供給量M1が所定量M2以上になっていない場合(S20:NO)、CPU2は、出力対応値Iprの加重平均処理(S12)で算出していた出力対応値Iprの加重平均値は、十分な数の出力対応値Iprによる平均値ではないとの理由から読み捨てる(S24)。
【0042】
次に、S22の処理を終えると、CPU2は、複数平均出力値Ipavfを得るためのIpavf取得処理の実施を指示する(S23)。そして、S23またはS24の処理を終えると、CPU2は、S25に移行する。S25では、S23でIpavf取得処理の実施指示があったか否かを判定し、Ipavf取得処理の実施指示があった場合には(S25:YES)、S26へ移行し、Ipavf取得処理の実施指示がなかった場合には(S25:NO)処理を終了する。S26では、補正係数Kqの算出に用いる平均出力値Ipavのピーク値が所定の第2範囲R2内にあるか否かを判定し、S26にて肯定判定されると(S26:YES)、S28に移行する。
【0043】
ここで、特定の運転条件下にてF/Cが繰り返し行われた場合であっても、内燃機関100の運転状態のバラツキ(偏り)によって、
図4に示すように、S22の処理で取得された個々の加重平均値のピーク値(Ipav1、Ipav2・・・)にバラツキが生ずることがある。そこで、個々の加重平均値のピーク値(Ipav1、Ipav2・・・)のうち、所定の第2範囲(レンジ)R2の範囲内の値のみを取得して複数平均出力値Ipavfの算出に用いると、安定した複数平均出力値Ipavfを算出することができる。なお、レンジR2としては、例えば燃料断基準出力値Ipsfの所定割合の変動値(例えば、燃料断基準出力値Ipsfを中心値にして、燃料断基準出力値Ipsfの2.0%の値をプラス、マイナスした値)を上限及び下限として設定することができる。この場合、
図4に示すように、例えば、2つの加重平均値のピーク値Ipav3、Ipav4は、いずれもレンジR2を逸脱しているために複数平均出力値Ipavfの算出に用いられない(S26:NO)。
【0044】
なお、レンジR2は、既にレンジR1で脈動を平均化した平均出力値Ipavのピーク値に対して適用されるので、レンジR1内に設定されると共に、R2<R1となるように設定する。R2<R1とすることで、誤差を含む平均出力値Ipavのピーク値を排除して複数平均出力値Ipavfを算出することができ、算出される複数平均出力値Ipavfの信頼性が向上する。
【0045】
次いで、S26の判定処理で肯定されると(S26:YES)、S13でRAM4にピーク値をホールドした各Ipavのさらなる平均処理を行う(S28)。このS28の平均処理は、
図9に示すサブルーチンの処理により行う。
図9のサブルーチンを参照して平均処理を説明する。この平均処理では、まず、F/Cの回数が所定回数(一例として16回)以上か否かを判断する(S281)。F/Cの回数が所定回数(一例として16回)以上の場合(換言すれば、所定回数に達している場合)には(S281:YES)、所定回数の数値(一例として16個)の加重平均値Ipavのピーク値の加重平均処理)を行う(S282)。その処理は、例えば下記式2に従って行われ、このIpavを加重平均処理した値が複数平均出力値Ipavfとして取得される(S282)。
Ipavf=1/16×{最新のIpavのピーク値−Ipavf(n−1)}+Ipavf(n−1) ・・・(式2)
上記式2のIpavf(n−1)は、1つ前の処理(直前)で算出された値に該当する。S282の処理の後、
図7のS36の処理に進む。なお、この式2が特許請求の範囲の式(1)に相当する。
【0046】
また、F/Cの回数が所定回数(一例として16回)未満の場合には(S281:NO)、S13でそれまでにRAM4にホールド(記憶)した各Ipavの相加平均(算術平均)により、複数平均出力値Ipavfを算出する(S283)。その後、
図7のS36の処理に進む。
【0047】
一方、Ipavのピーク値がレンジR2の範囲外の場合(S26:NO)、S30に移行し、CPU2は、Ipavのピーク値がレンジR2の範囲外(S26:NO)となった回数が所定回数を超えたか否かを判断する(S30)。S30の処理は、例えば
図4でレンジR2を超えたもの(Ipav3,Ipav4)の個数のカウントに対応する。そして、Ipavのピーク値がレンジR2の範囲外となった回数が所定回数を超えた場合(S30:YES)、実装酸素センサ20の出力の異常が頻繁に見られたとみなし、CPU2はセンサ交換を指示し(S32)、本処理を終了する。センサ交換の指示は、例えば車両の運転者に警報を報知したり、交換を促す表示を行うことで実行することができる。一方、Ipavのピーク値がレンジR2の範囲外となった回数が所定回数を超えなかった場合(S30:NO)、本処理を終了する。
【0048】
次いで、S28の処理を終えると、CPU2は、S28で取得された複数平均出力値Ipavfが所定の第3範囲(レンジ)内にあるか否かを判定する(S36)。ここで、レンジR3としては、
図5に示すように、燃料断基準出力値Ipsfの所定割合の変動値(例えば、燃料断基準出力値Ipsfを中心値にして、燃料断基準出力値Ipsfの1.0%の値をプラス、マイナスした値)を上限及び下限として設定している。なお、レンジR3は、個々のF/Cにおいて補正係数Kqの更新の有無を判断するために用いるので、レンジR2内に設定されると共に、R3<R2となるように設定している。
【0049】
そして、複数平均出力値Ipavfが第3範囲を1回でも外れると(S36:NO)、S40に移行し、新たな補正係数Kqを算出する処理を実行する(S40)。S40では、補正係数Kqの算出として、不揮発メモリ8に記憶されている燃料断基準出力値Ipsfを、最新の複数平均出力値Ipavf(換言すれば、レンジR3を外れた複数平均出力値Ipavf)を現在の補正係数Kpで除した値で除すことで算出する。
Kq=燃料断基準出力値Ipsf/(最新の複数平均出力値Ipavf/現在の補正係数Kp)
そして、このS40の処理で算出した補正係数Kqを、新たな補正係数Kpとして不揮発メモリ8に更新(上書き)する処理を実行する(S42)。これにより、これ以降の実装酸素センサ20から出力される実出力値Ipから、新たな補正係数Kpにより補正された出力対応値Iprが算出され、この出力対応値Iprにより排気ガス中の酸素濃度の検出が行われる。
【0050】
一方、S36の判定処理で「YES」と判定された場合には、本処理を終了する。つまり、直前の補正係数Kpが更新されずに用いられる。
【0051】
このように、本実施の形態の酸素センサ制御装置10では、一回あたりの燃料断期間中に取得される実装酸素センサ20の複数個の出力対応値Iprのうち、第1範囲R1を逸脱した値を除外した残りの値をもとに平均出力値Ipavを算出し、さらにこの平均出力値Ipavのピーク値を各F/C毎に求め、この各ピーク値をもとに複数平均出力値Ipavfを算出している。そして、この複数平均実出力値Ipavfと燃料断基準出力値Ipsfとを比較することで新たな補正係数Kqを求め、補正係数を更新するようにしている。なお、燃料断の回数が所定回数未満である場合には、ECU10に予め設定されている適当な値のデフォルト値に基づいて、足りないデータを補完して上記の式2のもと加重平均を行って複数平均実出力値を算出することは可能である。しかし、このように複数平均実出力値を算出していては、F/Cの初回から所定の加重平均数(一例として、16回)に達するまでは、デフォルト値の影響を大きく受け、精度の良い複数平均出力値が算出されにくい。これに対し、本実施の形態の酸素センサ制御装置10では、燃焼断が所定回数(一例として、16回)未満の場合には、デフォルト値を用いず、それまでに得られた平均出力値Ipavのピーク値を相加平均して複数平均出力値Ipavfを算出している。従って、デフォルト値の影響を受けることなく、演算処理開始後、速やかに精度の良い複数平均出力値Ipavfを算出することができる。
【0052】
なお、本実施の形態において、S40の処理を実行するCPU2が、「補正係数算出手段」の一例であり、S10、S12の処理を実行するCPU2が、「平均出力値算出手段」の一例である。また、S28、S282、S283の処理を実行するCPU2が、「複数平均出力値算出手段」の一例であり、Ipavが「平均出力値」の一例であり、Ipavfが「複数平均出力値」の一例である。総供給量M1を積算記憶するRAM4が「総供給量算出手段」の一例であり、S6の処理を実行するCPU2が、「総供給量判断手段」の一例である。また、RAM4が「ピーク値記憶手段」の一例である。RAM4に記憶させる平均出力値Ipavのピーク値を求める処理は、上述したように、CPU2のS13の処理にて実行されている。
【0053】
なお、本発明は上記実施の形態に限られず、各種の変形が可能なことは言うまでもない。例えば、実装酸素センサ20は、2セル式の上記空燃比センサ(酸素センサ)に限らず、1セル式の限界電流式の空燃比センサを用いることができる。
【0054】
また、上記実施の形態では、第1範囲R1内に含まれるか否かを判定する対象を実装酸素センサ20の実出力値Ipに補正係数Kpを乗じた出力対応値Iprとしたが、第1範囲R1の数値範囲を適宜変更し、当該第1範囲R1と実出力値Ipとを比較し、第1範囲R1を逸脱した値を除外した実出力値Ipをもとに平均した値に補正係数Kpを乗じて平均出力値Ipavを算出するようにしてもよい。さらに、上記実施の形態では、ステップS6,S20における所定量を固定値(M2)としたが、特定の運転条件でF/Cが開始された直前のエンジン回転数の数値等に応じて可変値として設定するようにしてもよい。また、所定の加重平均数を一例として、16回としたが、必ずしも16回に限られず、8回や10回等任意の回数を予め設定すればよい。