(57)【特許請求の範囲】
【請求項１】
内燃機関の排気管に取り付けられた酸素センサの出力値と酸素濃度との関係を較正するための補正係数を記憶する記憶手段を備え、前記記憶手段に記憶された前記補正係数と前記酸素センサの前記出力値とを用いて、前記排気管を流通する排気ガスの酸素濃度を検出する酸素センサ制御装置において、
前記内燃機関のクランク角を検出するクランク角センサの出力信号を取得する出力信号取得手段と、
前記内燃機関の燃料供給を停止する燃料断が行われる期間である燃料断期間中において、前記出力信号取得手段によって取得された前記出力信号に基づく前記クランク角が、予め設定された所定角度であるか否かを判断するクランク角判断手段と、
前記クランク角判断手段によって前記クランク角が前記所定角度であると判断された場合に、前記酸素センサの前記出力値を取得する出力値取得手段と、
前記燃料断期間中に前記出力値取得手段によって取得された前記出力値に基づいて、新たな補正係数を算出する補正係数算出手段と、
前記補正係数算出手段によって算出された前記補正係数を前記記憶手段に記憶させる記憶制御手段と、
前記燃料断期間中に前記出力値取得手段によって取得された複数の前記出力値に基づいて、前記燃料断期間中の前記出力値を代表する値である代表値を決定する代表値決定手段と
を備え、
前記補正係数算出手段は、前記燃料断期間中における前記出力値と前記補正係数とを乗算した補正値が予め設定された基準値に近づくように、前記代表値決定手段によって決定された前記代表値と前記基準値とに基づいて、新たな補正係数を算出し、
前記代表値決定手段は、前記出力値取得手段によって前記出力値が取得される毎に、複数の前記出力値を平均化処理した値を順次算出し、順次算出された複数の前記平均化処理した値のうちで最も大きい値である最大値を前記代表値として決定することを特徴とする酸素センサ制御装置。
【請求項２】
前記内燃機関から前記排気管に供給される大気の供給量を計測する供給量計測手段から前記供給量を取得して、前記燃料断期間中における前記供給量の総量である総供給量を算出する総供給量算出手段と、
１回の前記燃料断期間において、前記総供給量算出手段によって算出された前記総供給量が、予め設定された所定量以上になったか否かを判断する総供給量判断手段と
を備え、
前記クランク角判断手段は、前記総供給量判断手段によって前記総供給量が前記所定量以上になったと判断された場合に、前記出力信号取得手段によって取得された前記出力信号に基づく前記クランク角が、前記所定角度であるか否かを判断することを特徴とする請求項１に記載の酸素センサ制御装置。
【請求項３】
１回の前記燃料断期間において、前記燃料断が開始されてからの経過時間が、予め設定された所定時間を経過したか否かを判断する経過時間判断手段を備え、
前記クランク角判断手段は、前記経過時間判断手段によって前記燃料断が開始されてからの前記経過時間が前記所定時間を経過したと判断された場合に、前記出力信号取得手段によって取得された前記出力信号に基づく前記クランク角が、前記所定角度であるか否かを判断することを特徴とする請求項１又は２に記載の酸素センサ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、酸素センサを使用して排気ガス中の酸素濃度を検出する酸素センサ制御装置に関する。
【背景技術】
【０００２】
従来、自動車等の内燃機関の排気通路（排気管）に酸素センサを設置し、排気ガス中の酸素濃度を検出して空燃比を制御することが行われている。しかしながら、個々の酸素センサの出力特性のバラツキや、酸素センサの経時劣化に起因して、酸素濃度の検出精度が異なるという問題がある。そこで、内燃機関への燃料供給を停止し、排気通路内がほぼ大気雰囲気になっていると推定されるとき、補正係数を算出して、酸素センサの出力値と酸素濃度との関係を較正する大気補正を行う技術が知られている（例えば、特許文献１及び特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３２４６６号公報
【特許文献２】特開平４−１０３８５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、内燃機関への燃料供給を停止した状態であっても、内燃機関では、各気筒において吸気・圧縮・膨張・排気行程のピストン動作が繰り返されるため、酸素センサが設けられている排気通路を流れる大気の圧力は変動している。この大気の圧力の変動などの要因によって、酸素センサの出力値は、圧力の変動などに依存した変動（以下、「脈動」という。）を示す。このため、この酸素センサの出力値に及ぶ脈動の影響を考慮しなければ、酸素センサの出力値を用いての補正係数の算出を精度良く行えているとは言い難い側面があった。
【０００５】
本発明の目的は、脈動する酸素センサの出力値のもと精度よく補正係数を算出する酸素センサ制御装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明に係る酸素センサ制御装置は、内燃機関の排気管に取り付けられた酸素センサの出力値と酸素濃度との関係を較正するための補正係数を記憶する記憶手段を備え、前記記憶手段に記憶された前記補正係数と前記酸素センサの前記出力値とを用いて、前記排気管を流通する排気ガスの酸素濃度を検出する酸素センサ制御装置において、前記内燃機関のクランク角を検出するクランク角センサの出力信号を取得する出力信号取得手段と、前記内燃機関の燃料供給を停止する燃料断が行われる期間である燃料断期間中において、前記出力信号取得手段によって取得された前記出力信号に基づく前記クランク角が、予め設定された所定角度であるか否かを判断するクランク角判断手段と、前記クランク角判断手段によって前記クランク角が前記所定角度であると判断された場合に、前記酸素センサの前記出力値を取得する出力値取得手段と、前記燃料断期間中に前記出力値取得手段によって取得された前記出力値に基づいて、新たな補正係数を算出する補正係数算出手段と、前記補正係数算出手段によって算出された前記補正係数を前記記憶手段に記憶させる記憶制御手段と、前記燃料断期間中に前記出力値取得手段によって取得された複数の前記出力値に基づいて、前記燃料断期間中の前記出力値を代表する値である代表値を決定する代表値決定手段とを備え、前記補正係数算出手段は、前記燃料断期間中における前記出力値と前記補正係数とを乗算した補正値が予め設定された基準値に近づくように、前記代表値決定手段によって決定された前記代表値と前記基準値とに基づいて、新たな補正係数を算出し、前記代表値決定手段は、前記出力値取得手段によって前記出力値が取得される毎に、複数の前記出力値を平均化処理した値を順次算出し、順次算出された複数の前記平均化処理した値のうちで最も大きい値である最大値を前記代表値として決定する。
【０００７】
この場合、燃料断期間中にクランク角判断手段によってクランク角が所定角度であると判断された場合に、酸素センサの出力値が取得される。そして、取得された酸素センサの出力値に基づいて新たな補正係数が算出される。つまり、一定のクランク角で酸素センサの出力値が取得され、補正係数が算出される。クランク角の大きさは、内燃機関の運転状態（各気筒の吸気・圧縮・膨張・排気行程）に連動している。このため、クランク角の大きさは、酸素センサが設けられている排気管内の大気の圧力の変動に連動している。本発明では、一定のクランク角で酸素センサの出力値を取得するので、出力値を取得するタイミングにおける内燃機関の運転状態が略同じになり、排気管内の大気の圧力も略同じになる。この結果、一定のクランク角における出力値のバラツキの幅は、脈動の振幅よりも小さい値となる。このため、出力値の脈動が、補正係数の算出に与える影響を低減できる。よって、脈動する酸素センサの出力値のもとでも、精度よく補正係数を算出することができる。なお、新たな補正係数は、例えば、取得された酸素センサの出力値と基準値（例えば、標準的な酸素センサが大気雰囲気に晒された際に当該センサが出力する値）とに基づいて算出することができる。
【０００８】
また、複数の出力値に基づく代表値が使用され、新たな補正係数が算出される。このため、偶発的に生じたノイズを含む１つの出力値に基づいて補正係数が算出されるのを防げ、個々の出力値のバラツキの影響を低減することができ、精度よく補正係数を算出することができる。なお、複数の出力値に基づく代表値とは、例えば、複数の出力値を平均化処理した値や、その平均化処理した値の最大値を挙げることができる。なお、平均化処理としては、例えば、複数の出力値の加重平均、移動平均、相加平均などを挙げることができる。
【０００９】
前記酸素センサ制御装置は、前記内燃機関から前記排気管に供給される大気の供給量を計測する供給量計測手段から前記供給量を取得して、前記燃料断期間中における前記供給量の総量である総供給量を算出する総供給量算出手段と、１回の前記燃料断期間において、前記総供給量算出手段によって算出された前記総供給量が、予め設定された所定量以上になったか否かを判断する総供給量判断手段とを備え、前記クランク角判断手段は、前記総供給量判断手段によって前記総供給量が前記所定量以上になったと判断された場合に、前記出力信号取得手段によって取得された前記出力信号に基づく前記クランク角が、前記所定角度であるか否かを判断してもよい。大気の総供給量が所定量以上になった場合、且つクランク角が所定角度となった場合に、出力値取得手段によって酸素センサの出力値が取得される。そして、取得された酸素センサの出力値に基づいて補正係数が算出される。例えば、排気管内が略大気雰囲気となる量に所定量を設定すれば、略大気雰囲気になった環境で酸素センサの出力値を確実に取得できるので、精度よく補正係数を算出することができる。
【００１０】
前記酸素センサ制御装置は、１回の前記燃料断期間において、前記燃料断が開始されてからの経過時間が、予め設定された所定時間を経過したか否かを判断する経過時間判断手段を備え、前記クランク角判断手段は、前記経過時間判断手段によって前記燃料断が開始されてからの前記経過時間が前記所定時間を経過したと判断された場合に、前記出力信号取得手段によって取得された前記出力信号に基づく前記クランク角が、前記所定角度であるか否かを判断してもよい。燃料断が開始されてからの経過時間が所定時間を経過した場合、且つクランク角が所定角度になった場合に、出力値取得手段によって酸素センサの出力値が取得される。そして、取得された酸素センサの出力値に基づいて補正係数が算出される。例えば、燃料断が開始された後排気管内が略大気雰囲気となるために必要な時間を所定時間として設定すれば、略大気雰囲気になった環境で酸素センサの出力値を取得できるので、精度よく補正係数を算出することができる。
【図面の簡単な説明】
【００１１】
【図１】酸素センサ制御装置１０を含むエンジン制御システム１の物理的構成及び電気的構成を示す模式図である。
【図２】燃料断期間中における大気の総供給量Ｍ１の変化と、実装酸素センサ２０の出力値Ｉｐｂの変化の一例を示すグラフである。
【図３】燃料断期間中におけるクランク角の変化と、実装酸素センサ２０の出力値Ｉｐｂの変化の一例を示すグラフである。
【図４】第一メイン処理を示すフローチャートである。
【図５】第二メイン処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を具現化した一実施形態について、図面を参照して説明する。なお、これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものであり、記載されている装置の構成、各種処理のフローチャートなどは、それのみに限定する趣旨ではなく、単なる説明例である。
【００１３】
図１は、酸素センサ制御装置１０を含むエンジン制御システム１の構成図である。エンジン制御システム１において、車両の内燃機関（エンジン）１００の排気管１２０には酸素センサ２０（以下、実装酸素センサ２０という。）が取付けられ、実装酸素センサ２０にはコントローラ２２が接続されている。そして、コントローラ２２に酸素センサ制御装置１０が接続されている。本実施形態における酸素センサ制御装置１０は、エンジンコントロールユニット（ＥＣＵ）の機能を有している。
【００１４】
内燃機関１００の吸気管１１０にはスロットル弁１０２が設けられ、内燃機関１００の各気筒には、燃料を筒内に供給するためのインジェクタ（燃料噴射弁）１０４が設置されている。また、排気管１２０の下流側に排ガス浄化触媒１３０が取付けられている。また、内燃機関１００には、圧力センサ（図示外）、温度センサ（図示外）、及びクランク角センサ１０８等の各種センサが設置され、吸気管１１０にはエアフロメータ１０７が設置されている。エアフロメータ１０７は、大気の吸気量を測定する。吸気された大気は、排気管１２０に供給されるので、エアフロメータ１０７は、大気の吸気量を測定することで、排気管１２０に供給される大気の供給量を測定している。クランク角センサ１０８は、内燃機関１００のピストン１０３に接続されたクランクシャフト１０９の回転角度（以下、クランク角という。）を計測する。なお、本実施形態では、ピストン運動の１サイクル（吸気・圧縮・膨張・排気行程）で、クランクシャフト１０９が１回転する２ストロークエンジンを例にして説明する。ＣＰＵ２は、クランク角センサ１０８によって出力される出力信号に基づいて、０度から３６０度の間のクランク角（図３参照）を検出できる。
【００１５】
各種センサ及びエアフロメータ１０７からの運転条件情報（エンジンの圧力、温度、クランク角、エンジン回転数、大気の供給量等）は、酸素センサ制御装置１０に入力される。なお、図２における矢印１２５は、運転条件情報のうち、エンジン圧力と温度が入力される経路を簡単に表わしている。酸素センサ制御装置１０は、上記運転条件情報、実装酸素センサ２０からの排気ガス中の酸素濃度検出値、及び運転者によるアクセルペダル１０６の踏み込み量等に応じて、スロットル弁１０２を制御して内燃機関１００に供給する大気の量を制御すると共に、インジェクタ１０４からの燃料噴射量を制御する。これによって、酸素センサ制御装置１０は、適切な空燃比で内燃機関１００の運転を行う。
【００１６】
酸素センサ制御装置１０は、中央演算処理装置（ＣＰＵ）２、ＲＯＭ３、ＲＡＭ４、外部とのインターフェース回路（Ｉ／Ｆ）５、外部からの入力装置７、及び出力装置９を備えたマイクロコンピュータと、ＥＥＰＲＯＭ等からなる不揮発メモリ８とを回路基板に実装したユニットである。そして、酸素センサ制御装置１０（ＣＰＵ２）は、ＲＯＭ３に予め記憶されたプログラムに従って入力信号を処理し、インジェクタ１０４による燃料噴射量の制御信号を出力装置９から出力したり、後述する第一メイン処理を行ったりする。
【００１７】
実装酸素センサ２０は、例えば、酸素イオン伝導性の固体電解質体に一対の電極を設けたセルを２つ用いた、いわゆる２セル式の空燃比センサである。詳細には、実装酸素センサ２０は、ガス検出素子を内側に保持すると共に、排気管１２０に装着するためのハウジングを備えている。また、ガス検出素子は、酸素ポンプセルと酸素濃度検出セルとを、多孔質体を介して排気ガスが導入される中空の測定室が介在するように積層し、さらにこれら２つのセルを活性温度にまで加熱するためのヒータを積層した公知の構成を有する素子である。なお、実際の個々の内燃機関に取付けられた実装酸素センサ２０を、後述する基準酸素センサと区別するため、本実施形態では「実装酸素センサ」と称している。
【００１８】
実装酸素センサ２０は、各種抵抗や差動増幅器等を備えた検出回路である公知のコントローラ２２に接続されている。コントローラ２２は実装酸素センサ２０にポンプ電流を供給し、該ポンプ電流を電圧に変換して酸素濃度検出信号として酸素センサ制御装置１０に出力する。より具体的には、コントローラ２２は、酸素濃度検出セルの出力が一定値となるように、酸素ポンプセルヘの通電制御を行う。この場合、酸素ポンプセルは、測定室内の酸素を外部に汲み出す、或いは、測定室に酸素を汲み入れるように動作する。このときに酸素ポンプセルにポンプ電流が流れる。コントローラ２２は、ポンプ電流を、検出抵抗器を介して電圧に変換して酸素センサ制御装置１０に出力する。なお、ポンプ電流とコントローラ２２から出力される電圧とは、排気管１２０内の酸素濃度に対応しているという点で同等の意味を有するので、酸素センサ制御装置１０は、コントローラ２２から出力される電圧の値を検出することで、間接的にポンプ電流の値を検出している。このため、以下の説明では、酸素センサ制御装置１０（ＣＰＵ２）が検出するポンプ電流の値を、実装酸素センサ２０の「出力値Ｉｐｂ」という。出力値Ｉｐｂの変動は、排気管１２０内の酸素濃度の変動に対応している。
【００１９】
次に、補正係数Ｋｐについて説明する。補正係数Ｋｐは、内燃機関１００に取り付けられた実装酸素センサ２０の出力値Ｉｐｂと酸素濃度との関係を較正するための係数であり、不揮発メモリ８に記憶されている。以下の説明では、理想的とされる酸素センサ、換言すれば、製造バラツキの中心の出力特性を有する標準的な酸素センサであって、実装酸素センサ２０と同一の構成からなる酸素センサを、「基準酸素センサ」という。また、基準酸素センサを大気雰囲気（酸素濃度約２０．５％）に晒した場合に出力される電流の値を基準値Ｉｐａといい、本実施形態では、一例として、基準値Ｉｐａは「４ｍＡ」であるとする。
【００２０】
補正係数Ｋｐは、実装酸素センサ２０の出力値Ｉｐｂに補正係数Ｋｐを乗算した値（以下、「補正値Ｉｐｆ」という。）が基準酸素センサの出力値に近づくように定められる。例えば、実装酸素センサ２０を大気雰囲気に晒した場合の補正値Ｉｐｆが、基準値Ｉｐａ「４ｍＡ」と同一になれば、実装酸素センサ２０の出力値Ｉｐｂに基づく補正値Ｉｐｆと、基準酸素センサの出力値が同一になる。このように、補正値Ｉｐｆを用いることで、実装酸素センサ２０の特性のばらつき（個体差バラツキ）や劣化具合の影響を軽減して、基準酸素センサと同等の精度で酸素濃度を検出することができる。このため、インジェクタ１０４からの燃料噴射量を酸素センサの特性のばらつきや劣化具合に依存することなく適切な量に制御することができる。なお、補正係数Ｋｐは、不揮発メモリ８に記憶されている。また、本実施形態では、補正係数Ｋｐは、内燃機関１００への燃料供給を停止した雰囲気（燃料断）の期間中の実装酸素センサ２０の出力値Ｉｐｂに基づいて算出（更新）される。燃料断期間中は、インジェクタ１０４から燃料噴射が行われていないため、排気管１２０内の雰囲気が大気雰囲気となり、基準酸素センサの大気雰囲気における出力値である基準値Ｉｐａと比較することで、補正係数Ｋｐを算出することができるからである。補正係数Ｋｐの算出の詳細については、後述する。
【００２１】
次に、図２を参照して、１回の燃料断期間中における実装酸素センサ２０の出力値Ｉｐｂの変化の一例について説明する。図２は、燃料断が開始されてからの時間と大気の総供給量Ｍ１との関係（紙面上側のグラフ）、及び、燃料断が開始されてからの時間と実装酸素センサ２０の出力値Ｉｐｂとの関係（紙面下側のグラフ）を表している。大気の総供給量Ｍ１は、燃料断期間中にエアフロメータ１０７によって計測された、排気管１２０への大気の供給量を加算した値である。燃料断が開始されてから時間が経過するごとに大気の総供給量Ｍ１は増加する。排気管１２０に大気が供給されるので、排気管１２０等に残った燃料断が開始される前の排気ガスが大気と入れ換わる。
【００２２】
排気管１２０等に残った排気ガスが大気と入れ換わるまでに時間を要するので、排気管１２０内の酸素濃度が大気の酸素濃度に近づくまでに時間を要する。図２では、一例として、大気の総供給量Ｍ１が所定量Ｍ２（ｇ）になった場合に、排気管１２０内の酸素濃度が大気の酸素濃度に近づく場合を示している。大気の総供給量Ｍ１が所定量Ｍ２（ｇ）になるのに要する時間は時間Ｔ２である。よって、大気の総供給量Ｍ１が所定量Ｍ２（ｇ）となるのに要する時間Ｔ２の間、実装酸素センサ２０の出力値Ｉｐｂは徐々に大きくなる。そして、排気管１２０内の酸素濃度が大気の酸素濃度に近づくと、出力値Ｉｐｂの値は概ね安定する。ただし、排気管１２０内の酸素濃度が大気の酸素濃度に近づいても、内燃機関１００の各気筒のピストン運動が繰り返されるため、出力値Ｉｐｂは脈動している。なお、図２の時間Ｔ２の期間において、実際には出力値Ｉｐｂは脈動しながら徐々に大きくなっているが、脈動の図示は省略している。以下の説明では、特定の出力値について述べる場合、出力値２０１等のように符号で表し、出力値を特定しない場合、出力値Ｉｐｂと記載する。また、図２における「●」で示した出力値２０１〜２０９等は、クランク角が１８０度の場合の出力値Ｉｐｂを表している。
【００２３】
次に、図３を参照して、燃料断期間中におけるクランク角の変化と出力値Ｉｐｂの脈動との関係の一例について説明する。図３では、燃料断期間中における時間とクランク角との関係（紙面上側のグラフ）、及び、燃料断期間中における時間と実装酸素センサ２０の出力値Ｉｐｂとの関係（紙面下側のグラフ）を表している。脈動は、内燃機関１００の各気筒におけるピストン運動による排気管１２０内の圧力の変動に依存して発生する。また、各気筒のピストン運動は、クランク角に対応しており、クランク角が０度から３６０度に変化する間に、ピストン運動の１サイクル（吸気・圧縮・膨張・排気行程）が行われる。つまり、クランク角の大きさは内燃機関の運転状態（各気筒の吸気・圧縮・膨張・排気行程）に連動している。このため、クランク角の大きさは、排気管１２０内の大気の圧力の変動に連動しており、さらには、実装酸素センサ２０の出力値Ｉｐｂの脈動に連動している。よって、図３に示すように、クランク角が０度から３６０度に変化する期間３１，３２，３３における出力値Ｉｐｂの値は、それぞれの期間で似た変動を示す。このため、同一のクランク角「１８０度」の出力値２１０〜２１３は、互いに近い値となる。
【００２４】
次に、図４を参照して、酸素センサ制御装置１０のＣＰＵ２によって実行される第一メイン処理について説明する。第一メイン処理は、酸素センサ制御装置１０に電源が供給されることを契機に開始される。第一メイン処理が行われることによって、補正係数Ｋｐが更新される。以下の説明において、変数Ｎは、加重平均値Ｉｐｃ（後述）を算出するための出力値Ｉｐｂが取得された数のカウント等を行うための変数である。最大値Ｉｐｄは、１回の燃料断期間中に算出された加重平均値Ｉｐｃの最大値である。代表値Ｉｐｅは、１回の燃料断期間中の実装酸素センサ２０の出力値Ｉｐｂを代表する値である。また、フローチャートにおけるステップを「Ｓ」と略記する。
【００２５】
第一メイン処理では、まず、燃料断が新たに開始されたか否かが判断される（Ｓ１）。なお、内燃機関１００では、酸素センサ制御装置１０は、車両の減速や吸入空気量の状態等の運転条件に応じて、インジェクタ１０４からの燃料噴射量が０となる指示を出力する。Ｓ１では、この指示の出力の有無が検出されることで燃料断が開始されたか否かが判断される。燃料断が開始されていない場合（Ｓ１：ＮＯ）、処理はＳ１に戻る。
【００２６】
燃料断が開始された場合（Ｓ１：ＹＥＳ）、燃料断期間中における排気管１２０への大気の供給量の総量である総供給量Ｍ１が「０」に設定される（Ｓ２）。なお、総供給量Ｍ１は、ＲＡＭ４に記憶される。次いで、エアフロメータ１０７から大気の供給量が取得され、総供給量Ｍ１が算出される（Ｓ３）。次いで、１回の燃料断期間においてＳ３で算出された総供給量Ｍ１が、所定量Ｍ２（図２参照）以上になったか否かが判断される（Ｓ４）。なお、所定量Ｍ２の値は不揮発メモリ８に記憶されているとする（後述する所定角度の値も同様）。総供給量Ｍ１が所定量Ｍ２以上になっていない場合（Ｓ４：ＮＯ）、燃料断が終了したか否かが判断される（Ｓ５）。燃料断が終了されていない場合（Ｓ５：ＮＯ）、処理はＳ３に戻る。つまり、酸素センサ制御装置１０は、燃料断期間中の総供給量Ｍ１が所定量Ｍ２以上になるか、その間に燃料断が終了するまで待機する。
【００２７】
総供給量Ｍ１が所定量Ｍ２以上となる前に燃料断が終了された場合（Ｓ５：ＹＥＳ）、処理はＳ１に戻る。燃料断が継続し、総供給量Ｍ１が所定量Ｍ２以上となった場合（Ｓ４：ＹＥＳ）、最大値Ｉｐｄが「０」に設定され、代表値Ｉｐｅが「０」に設定される（Ｓ６）。次いで、変数Ｎが「０」に設定される（Ｓ７）。なお、最大値Ｉｐｄと代表値Ｉｐｅと変数ＮとはＲＡＭ４に記憶される。
【００２８】
次いで、燃料断が終了されたか否かが判断される（Ｓ８）。燃料断が終了されていない場合（Ｓ８：ＮＯ）、クランク角センサ１０８の出力信号が取得される（Ｓ９）。次いで、Ｓ９で取得された出力信号に基づくクランク角が特定され、クランク角が所定角度であるか否かが判断される（Ｓ１０）。本実施形態では、所定角度は「１８０度」であるとする。クランク角が「１８０度」ではない場合（Ｓ１０：ＮＯ）、処理はＳ８に戻る。つまり、クランク角が所定角度になるまで、Ｓ９でクランク角センサ１０８の出力信号の取得が繰り返される。
【００２９】
クランク角が「１８０度」である場合（Ｓ１０：ＹＥＳ）、実装酸素センサ２０の出力値Ｉｐｂが取得される（Ｓ１１）。これによって、例えば、クランク角が「１８０度」の出力値２０１（図２参照）が取得される。次いで、Ｓ１１で取得された実装酸素センサ２０の出力値ＩｐｂがＲＡＭ４に記憶される（Ｓ１２）。次いで、変数Ｎがインクリメントされ、１増加する（Ｓ１３）。次いで、以下の式（１）が使用され、出力値Ｉｐｂの加重平均値Ｉｐｃが算出される（Ｓ１４）。
Ｉｐｃ＝１／３｛Ｉｐｂ―Ｉｐｃ（Ｎ−１）｝＋Ｉｐｃ（Ｎ−１）・・・（１）
【００３０】
上記式（１）の「Ｉｐｃ（Ｎ−１）」は、直前に算出された加重平均値である。なお、燃料断期間中において、加重平均値Ｉｐｃの算出開始直後（変数Ｎ＝１の時）は、「Ｉｐｃ（Ｎ−１）」が存在しないため、変数Ｎ＝１の時に得られる出力値Ｉｐｂ（図２の例では、出力値２０１）を「Ｉｐｃ（Ｎ−１）」に代入して、加重平均値Ｉｐｃを算出する。
【００３１】
次いで、Ｓ１４で算出された加重平均値ＩｐｃがＲＡＭ４に記憶される（Ｓ１５）。次いで、変数Ｎが「３」以上であるか否かが判断される（Ｓ１６）。変数Ｎが「３」以上でない場合には（Ｓ１６：ＮＯ）、処理はＳ８に戻る。一方、変数Ｎが「３」以上である場合には（Ｓ１６：ＹＥＳ）、Ｓ１４で新たに算出され、Ｓ１５で新たに記憶された加重平均値Ｉｐｃが、最大値Ｉｐｄより大きいか否かが判断される（Ｓ１７）。加重平均値Ｉｐｃが最大値Ｉｐｄより大きい場合（Ｓ１７：ＹＥＳ）、最大値Ｉｐｄに加重平均値Ｉｐｃの値が代入され、最大値Ｉｐｄが更新される（Ｓ１８）。つまり、所謂ピークホールドが行われる。次いで、処理はＳ８に戻る。また、加重平均値Ｉｐｃが最大値Ｉｐｄより大きくない場合（Ｓ１７：ＮＯ）、処理はＳ８に戻る。つまり、最大値Ｉｐｄの更新は行われない。
【００３２】
Ｓ８からＳ１８が繰り返されると、例えば、出力値２０１〜２０９（図２参照）が順次取得され（Ｓ１１）、加重平均値Ｉｐｃが算出される（Ｓ１４）。そして、算出した加重平均値Ｉｐｃが、最大値Ｉｐｄより大きい値となれば（Ｓ１７：ＹＥＳ）、最大値Ｉｐｄが更新される（Ｓ１８）。以降の出力値についても、同様の処理が行われる。
【００３３】
燃料断が終了された場合（Ｓ８：ＹＥＳ）、最大値Ｉｐｄが代表値Ｉｐｅとして設定される（Ｓ１９）。これによって、燃料断期間における出力値Ｉｐｂの加重平均値Ｉｐｃの最大値Ｉｐｄが代表値Ｉｐｅとして決定される。次いで、代表値Ｉｐｅが「０」より大きいか否かが判断される（Ｓ２０）。なお、代表値Ｉｐｅが「０」になる場合とは、Ｓ１８が行われる前に、燃料断が終了された場合である（Ｓ８：ＹＥＳ）。代表値Ｉｐｅが「０」である場合（Ｓ２０：ＮＯ）、処理はＳ１に戻り、次の燃料断待ちが行われる。
【００３４】
一方Ｓ２０で、代表値Ｉｐｅが「０」より大きいと判断された場合（Ｓ２０：ＹＥＳ）、新たな補正係数Ｋｐが算出される（Ｓ２１）。Ｓ２１では、燃料断期間中における出力値Ｉｐｂと補正係数Ｋｐとを乗算した補正値Ｉｐｆが、予め設定された基準値Ｉｐａ（４ｍＡ）に近づくように、新たな補正係数Ｋｐが算出される。本実施形態では、Ｓ２１において、基準値Ｉｐａが代表値Ｉｐｅで除算されることで、新たな補正係数Ｋｐが算出される（すなわち、「新たな補正係数Ｋｐ＝基準値Ｉｐａ／代表値Ｉｐｅ」の演算を行う）。
【００３５】
次いで、Ｓ２１で算出された補正係数Ｋｐが、不揮発メモリ８に更新記憶される（Ｓ２２）。つまり、内燃機関１００に取り付けられた実装酸素センサ２０の出力値Ｉｐｂと酸素濃度との関係が較正される。次いで、処理はＳ１に戻る。新たに補正係数Ｋｐが算出されているので、ＣＰＵ２は、内燃機関１００に燃料が供給されている場合（燃料断期間以外の場合）に、最新の補正係数Ｋｐを使用して排気ガスの酸素濃度を精度よく検出できる。このため、適切な空燃比で内燃機関１００の運転を行うことができる。
【００３６】
以上のように、本実施形態における第一メイン処理が実行される。本実施形態では、出力値Ｉｐｂが脈動していても、図３に示すように、クランク角が「１８０度」のときにＳ１１で取得される出力値２１０〜２１３の値はそれぞれ近い値になる。言い換えると、出力値２１０〜２１３のバラツキの幅は、脈動の振幅よりも小さい値となる（図２に示す出力値２０１〜２０９も同様）。バラツキの幅の小さい出力値Ｉｐｂを使用して補正係数Ｋｐが算出されるので、出力値Ｉｐｂの脈動が、補正係数Ｋｐの算出に与える影響を低減できる。よって、実装酸素センサ２０の脈動する出力値Ｉｐｂのもとでも、精度よく補正係数Ｋｐを算出することができる。
【００３７】
また、本実施形態では、補正係数Ｋｐの算出に使用される代表値Ｉｐｅは、複数の加重平均値Ｉｐｃの最大値Ｉｐｄの値である。また、加重平均値Ｉｐｃは、複数の出力値Ｉｐｂの加重平均値である。つまり、補正係数Ｋｐは、複数の出力値Ｉｐｂに基づく代表値Ｉｐｅと、基準値Ｉｐａとに基づいて算出されている。複数の出力値Ｉｐｂに基づいて補正係数Ｋｐが算出されるので、偶発的に生じたノイズを含む１つの出力値Ｉｐｂに基づいて補正係数Ｋｐが算出されるのを防げ、個々の出力値Ｉｐｂのバラツキの影響を低減することができ、精度よく補正係数Ｋｐを算出することができる。
【００３８】
また、本実施形態では、変数Ｎが「３」以上である場合に（Ｓ１６：ＹＥＳ）、Ｓ１８で最大値Ｉｐｄが更新される。このため、変数Ｎが２以下の場合にＳ１４で算出された加重平均値Ｉｐｃは、最大値Ｉｐｄには設定されず、代表値Ｉｐｅに設定されない。つまり、少なくとも３つ以上の出力値Ｉｐｂの値が反映された加重平均値Ｉｐｃが、代表値Ｉｐｅに設定される。このため、偶発的に生じたノイズの影響を低減でき、精度よく補正係数Ｋｐを算出することができる。
【００３９】
また、本実施形態では、大気の総供給量Ｍ１が、所定量Ｍ２以上となった場合に（Ｓ４：ＹＥＳ）、実装酸素センサ２０の出力値Ｉｐｂが取得される（Ｓ１１）。このため、排気管１２０内が略大気雰囲気になった環境で実装酸素センサ２０の出力値Ｉｐｂを確実に取得できるので、精度よく補正係数Ｋｐを算出することができる。
【００４０】
本実施形態において、実装酸素センサ２０が本発明の「酸素センサ」に相当し、不揮発メモリ８が本発明の「記憶手段」に相当する。図４のＳ９の処理を行うＣＰＵ２が本発明の「出力信号取得手段」に相当し、Ｓ１０の処理を行うＣＰＵ２が本発明の「クランク角判断手段」に相当する。Ｓ１１の処理を行うＣＰＵ２が本発明の「出力値取得手段」に相当し、Ｓ２１の処理を行うＣＰＵ２が本発明の「補正係数算出手段」に相当する。Ｓ２２の処理を行うＣＰＵ２が本発明の「記憶制御手段」に相当し、エアフロメータ１０７が本発明の「供給量計測手段」に相当する。Ｓ３の処理を行うＣＰＵ２が本発明の「総供給量算出手段」に相当し、Ｓ４の処理を行うＣＰＵ２が本発明の「総供給量判断手段」に相当する。
【００４１】
なお、本発明は上記の実施形態に限定されるものではなく、種々の変更が可能である。例えば、代表値Ｉｐｅは、複数の出力値Ｉｐｂの加重平均値Ｉｐｃの最大値Ｉｐｄであったが、これに限定されない。例えば、複数の加重平均値Ｉｐｃを使用して新たに算出した加重平均値でもよい。また、複数の出力値Ｉｐｂの最大値であってもよい。また、燃料断期間中の１つの出力値Ｉｐｂ（例えば、燃料断期間中において最大の値を示した出力値Ｉｐｂ）でもよい。また、５回の出力値Ｉｐｂのうちで、最大値と最小値とを除いた残りの３回の加重平均値であってもよい。また、燃料断期間中の出力値Ｉｐｂと補正係数Ｋｐを乗算した補正値Ｉｐｆであってもよいし、燃料断期間中の補正値Ｉｐｆの加重平均値でもよい。なお、例えば、補正値Ｉｐｆに基づいて補正係数Ｋｐを算出する場合、補正値Ｉｐｆを現在の補正係数Ｋｐで除算した値で、基準値Ｉｐａを除算することで、新たな補正係数Ｋｐが算出される（すなわち、新たな補正係数Ｋｐ＝基準値Ｉｐａ／（補正値Ｉｐｆ／現在の補正係数Ｋｐ）の演算を行う）。以上のように代表値Ｉｐｅを設定して補正係数Ｋｐを算出しても、一定のクランク角で出力値Ｉｐｂが取得されているので、精度よく補正係数Ｋｐを算出できる。
【００４２】
また、１回の燃料断期間毎に、Ｓ６〜Ｓ２２が実行されて、補正係数Ｋｐが更新されていたが、これに限定されない。例えば、２回以上の回数に設定された所定回数の燃料断期間毎に１回の割合で、補正係数Ｋｐを更新してもよい。
【００４３】
また、基準値Ｉｐａが、基準酸素センサを大気雰囲気（酸素濃度約２０．５％）に晒した場合に出力される電流の値であったが、これに限定されない。例えば、基準値Ｉｐａは、設計に応じて任意に設定される値であってもよい。
【００４４】
また、実装酸素センサ２０は、２セル式の空燃比センサに限らず、１セル式の酸素センサであってもよい。また、実装酸素センサ２０は、酸素濃度検出機能を有するセンサ（例えば、酸素濃度検出機能付きのＮＯｘセンサ）であってもよい。また、加重平均値Ｉｐｃ等、上記のすべての加重平均値を算出する平均化処理は、加重平均処理に限らず、例えば、相加平均処理や移動平均処理を行った平均値を算出するようにしてもよい。
【００４５】
また、変数Ｎを用いた処理（例えば、Ｓ７，Ｓ１３，及びＳ１６の処理）を省いて、第一メイン処理を簡略するようにしてもよい。この場合、例えば、出力値が順次取得されたら（Ｓ１１）、加重平均値を順次算出し（Ｓ１４）、最大値を更新してもよい（Ｓ１８）。なお、この場合、式（１）における、「Ｉｐｃ（Ｎ−１）」には変数Ｎが使用されているが、この「Ｉｐｃ（Ｎ−１）」は、直前に算出された加重平均値を表しているため、Ｓ１４では、直前に算出された加重平均値を用いて、新たな加重平均値を算出するようにすればよい。
【００４６】
また、酸素センサ制御装置１０は、ＥＣＵの機能を有していたが、これに限定されない。例えば、ＥＣＵとは別体で構成され、燃料断が開始されたことをＥＣＵから伝達されたり、ＥＣＵに算出した補正係数Ｋｐを伝達したりして補正係数Ｋｐを更新するようにしてもよい。
【００４７】
また、図３に示すように、ＣＰＵ２は、クランク角センサ１０８の出力信号に基づき０度〜３６０度のクランク角を測定可能であったが、これに限定されない。例えば、内燃機関１００のピストン運動の１サイクルのうち、１８０度と３６０度との２回のクランク角で、クランク角センサ１０８から出力信号が出力されるようにし、ＣＰＵ２は、１８０度と３６０度とを測定可能であってもよい。この場合、１８０度または３６０度のうち、どちらか一方のクランク角になった場合に、実装酸素センサ２０の出力値Ｉｐｂを取得して、補正係数Ｋｐを算出してもよい。また、例えば、４ストロークエンジンなどの場合、クランクシャフト１０９の２回転で１サイクルを構成するため、クランク角は０度〜７２０度の間で変動する。このため、ＣＰＵ２がクランク角センサ１０８の出力信号に基づき０度〜７２０度のクランク角を測定可能であり、０度〜７２０度の間の一定のクランク角で出力値Ｉｐｂを取得するように構成してもよい。
【００４８】
また、メイン処理（図４参照）では、１回の燃料断期間において、大気の総供給量Ｍ１が所定量Ｍ２以上になった場合に（Ｓ４：ＹＥＳ）、クランク角が所定角度（１８０度）以上になったか否かが判断され（Ｓ１０）、出力値Ｉｐｂが取得されていた（Ｓ１１）。燃料断期間中のエンジンの回転数によって、排気管１２０内が大気雰囲気になる時間は変動するが、大気の総供給量Ｍ１が所定量Ｍ２以上になれば、排気管１２０内が大気雰囲気になる。このため、本実施形態のように総供給量Ｍ１を基準にして出力値Ｉｐｂの取得を開始することが望ましい。しかし、これに限定されない。例えば、１回の燃料断期間において、燃料断が開始されてからの経過時間が、所定の時間Ｔ２（図２参照）経過した場合（つまり、排気管１２０内が大気雰囲気になるのに必要な時間Ｔ２が経過した場合）に、クランク角が所定角度（１８０度）になったか否かが判断され、出力値Ｉｐｂが取得されてもよい。以下、この場合について、図５に示す第二メイン処理を参照して説明する。
【００４９】
図５に示す第二メイン処理は、第一メイン処理（図４参照）の変形例である。より詳細には、第一メイン処理のＳ２〜Ｓ４が削除され、Ｓ３１〜Ｓ３４が追加されている。以下の説明では、第一メイン処理と同様の処理は同じ符号で示し、詳細の説明は省略する。
【００５０】
第二メイン処理では、まず、第一メイン処理と同様に、燃料断が新たに開始されたか否かが判断される（Ｓ１）。燃料断が新たに開始された場合（Ｓ１：ＹＥＳ）、時間Ｔ１が「０」に設定される（Ｓ３１）。時間Ｔ１は、燃料断が開始されてからの経過時間を示している。次いで、時間Ｔ１の計測が開始される（Ｓ３２）。ＣＰＵ２は、図示しない振動子のクロック信号を用いて時間Ｔ１を計測する。なお、別途タイマを設け、ＣＰＵ２が当該タイマを用いて時間Ｔ１を計測するように構成してもよい。
【００５１】
次いで、時間Ｔ１が時間Ｔ２以上になったか否かが判断される（Ｓ３３）。つまり、燃料断が開始されてからの経過時間が、予め設定された所定時間Ｔ２（図２参照）を経過したか否かが判断される。時間Ｔ１が時間Ｔ２以上でない場合（Ｓ３３：ＮＯ）、燃料断が終了されたか否かが判断される（Ｓ５）。燃料断が終了されていない場合（Ｓ５：ＮＯ）、処理はＳ３３に戻る。燃料断が終了した場合（Ｓ５：ＹＥＳ）、処理はＳ１に戻る。時間Ｔ１が時間Ｔ２以上になった場合（Ｓ３３：ＹＥＳ）、時間Ｔ１の計測が終了される（Ｓ３４）。そして、第一メイン処理と同様に、Ｓ６〜Ｓ２２が実行され、補正係数Ｋｐが更新される。
【００５２】
本実施形態では、排気管１２０内が略大気雰囲気となるために必要な時間Ｔ２（図２参照）が所定時間として設定されている。そして、燃料断が開始されてからの時間Ｔ１が時間Ｔ２を経過した場合に（Ｓ３３：ＹＥＳ）、且つクランク角が所定角度（１８０度）になった場合に（Ｓ１０：ＹＥＳ）、実装酸素センサ２０の出力値Ｉｐｂが取得される（Ｓ１１）。そして、新たな補正係数Ｋｐが算出される（Ｓ２１）。このように、時間Ｔ２が経過し排気管１２０内が略大気雰囲気になった環境で実装酸素センサ２０の出力値Ｉｐｂを取得できるので、精度よく補正係数Ｋｐを算出することができる。なお、本実施形態において、Ｓ３３の処理を行うＣＰＵ２が本発明の「経過時間判断手段」に相当する。
【符号の説明】
【００５３】
１    エンジン制御システム
２    ＣＰＵ
８    不揮発メモリ
１０    酸素センサ制御装置
２０    実装酸素センサ
１００    内燃機関
１０７    エアフロメータ
１０８    クランク角センサ
１０９    クランクシャフト
１２０    排気管
Ｉｐａ    基準値
Ｉｐｂ    出力値
Ｉｐｅ    代表値
Ｋｐ    補正係数
Ｍ１    総供給量
Ｍ２    所定量
【図１】
0005770000.tif 000002
【図２】
0005770000.tif 000003
【図３】
0005770000.tif 000004
【図４】
0005770000.tif 000005
【図５】
0005770000.tif 000006