(57)【特許請求の範囲】
【請求項１】
電圧の印加に伴い内燃機関の空燃比に対応する電流を出力する空燃比センサと、
空燃比センサの電流出力と目標とする空燃比相当の電流値との偏差に基づき、目標空燃比に対して空燃比をフィードバック制御する空燃比制御手段とを備えた内燃機関の空燃比制御装置において、
前記空燃比センサが活性前であって且つ前記空燃比センサの活性前の出力電流に基づき算出された空燃比と実際の空燃比とが異なる場合に、同センサの電流出力が初期状態の値から所定値以上変化したか否かを判定する出力判定手段と、
前記出力判定手段によりセンサの電流出力が初期状態の値から所定値以上変化した旨が判定された際に前記空燃比センサが半活性状態にあると判定して、空燃比フィードバック制御を開始させるフィードバック開始手段と、
前記空燃比センサの素子インピーダンスを検出する手段と、
を備え、前記素子インピーダンスが所定の活性判定値よりも低い場合に、前記空燃比のフィードバック制御を実施させるようにしたことを特徴とする内燃機関の空燃比制御装置。
【請求項２】
前記空燃比センサの活性前にそのセンサ出力と目標空燃比相当のセンサ出力とが略一致する場合において、前記出力判定手段は、空燃比センサの電流出力が目標空燃比相当の電流値より所定の偏差以上変化したか否かを判定する請求項１に記載の内燃機関の空燃比制御装置。
【請求項３】
前記出力判定手段によるセンサ出力の判定値は、空燃比制御を実施するコントローラの演算能力や前記空燃比センサの電流検出用回路の公差に基づくフィードバック開始許可域内の最小値にて設定されることを特徴とする請求項１又は請求項２に記載の内燃機関の空燃比制御装置。
【請求項４】
前記フィードバック開始手段による空燃比フィードバック制御の開始後において、前記空燃比制御手段による制御要素を空燃比センサの活性又は半活性に応じて各個に設定する請求項１〜請求項３のいずれかに記載の内燃機関の空燃比制御装置。
【請求項５】
前記空燃比センサが不活性状態であるか否かを判定するセンサ不活性判定手段と、
前記空燃比センサの不活性状態下において、同センサの電流検出用回路の公差を吸収するよう空燃比センサの電流出力を学習する回路公差学習手段と、
前記学習された回路公差分だけ前記空燃比センサの電流出力を補正するセンサ出力補正手段と
を備えることを特徴とする請求項１〜請求項４のいずれかに記載の内燃機関の空燃比制御装置。
【請求項６】
前記回路公差学習手段による公差学習値を、その都度バックアップメモリに記憶保持するようにした請求項５に記載の内燃機関の空燃比制御装置。
【請求項７】
前記センサ不活性判定手段は、前記空燃比センサの素子インピーダンスが所定値以上であること、若しくは空燃比センサに付設されたヒータの抵抗値が所定値以下であることから、センサ不活性状態を判定するものである請求項５又は請求項６に記載の内燃機関の空燃比制御装置。
【請求項８】
前記空燃比センサの電流出力のレベルに応じて前記回路公差学習手段による回路公差の学習を禁止する学習禁止手段を備える請求項５〜請求項７のいずれかに記載の内燃機関の空燃比制御装置。
【請求項９】
請求項８に記載の内燃機関の空燃比制御装置において、
前記学習禁止手段は、前記空燃比センサの電流出力が回路公差を越える電流レベルである場合に、内燃機関の空燃比制御装置。
【請求項１０】
請求項８に記載の内燃機関の空燃比制御装置において、
前記学習禁止手段は、前記空燃比センサの電流出力の変動が所定幅を越える場合に、前記回路公差の学習を禁止する内燃機関の空燃比制御装置。
【請求項１１】
前記空燃比センサの電流出力が回路公差の電流レベルを越える状態が所定時間以上継続する場合に、同センサ或いは回路系の異常が発生している旨を判定する異常判定手段を備える請求項５〜請求項１０のいずれかに記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電圧の印加に伴い内燃機関の空燃比に対応する電流を出力する空燃比センサを備え、空燃比センサの電流出力と目標とする空燃比相当の電流値との偏差に基づき、目標空燃比に対して空燃比をフィードバック（Ｆ／Ｂ）制御する内燃機関の空燃比制御装置に関するものである。
【０００２】
【従来の技術】
従来より、空燃比が理論空燃比（ストイキ）に対してリッチ寄りかリーン寄りかに応じて異なる電圧信号を出力する酸素センサ（Ｏ2 センサ）を用い、そのセンサ出力に基づいて空燃比をフィードバック制御するようにした空燃比制御装置が具体化されている。この酸素センサを用いた空燃比制御装置の場合、センサ出力の開始と共に空燃比フィードバック制御が開始される。これに対し、近年の排気ガス規制の強化に伴い、前記酸素センサに代えて空燃比信号をリニアに出力可能な空燃比センサ（例えば限界電流式のＡ／Ｆセンサ）が空燃比フィードバック制御に適用されつつある。この空燃比センサは、電圧の印加に伴い内燃機関の空燃比に対応する電流を出力するものであり、同センサを用いた空燃比制御装置の場合、空燃比がリニアに検出可能であるという利点を生かすことで、フィードバック制御時のフィードバックゲインが高レベルに設定できる。
【０００３】
【発明が解決しようとする課題】
ところで、こうしたリニア式空燃比センサは、活性温度に達する途中からでも電流出力を開始するが、同センサが活性温度に達するまでは実際の空燃比に対する出力が活性後の出力より小さくなったり、応答性が遅くなったりする。この場合、センサの活性途中で空燃比フィードバック制御を開始すると、実際の空燃比に対する出力の相関がずれたまま制御が実施されるため、ドライバビリティに悪影響が及ぶおそれがある。また、空燃比センサが冷間状態（不活性状態）にあり、空燃比フィードバック開始が遅れると、触媒のウィンドウに制御するのが遅れるためためにエミッションが悪化する。そのため、少しでも早くフィードバック制御を開始することが要望されている。
【０００４】
本発明は、上記問題に着目してなされたものであって、その目的とするところは、空燃比センサの冷間状態からの機関始動時において、空燃比フィードバック制御の開始時期を早め、ドライバビリティを向上させることができる内燃機関の空燃比制御装置を提供することである。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、本発明の内燃機関の空燃比制御装置ではその前提として、電圧の印加に伴い内燃機関の空燃比に対応する電流を出力する空燃比センサと、空燃比センサの電流出力と目標とする空燃比相当の電流値との偏差に基づき、目標空燃比に対して空燃比をフィードバック制御する空燃比制御手段とを備える。
【０００６】
そして、請求項１に記載の発明ではその特徴として、前記空燃比センサが活性前であって且つ空燃比センサの活性前の出力電流に基づき算出された空燃比と実際の空燃比とが異なる場合に、同センサの電流出力が初期状態の値から所定値以上変化したか否かを判定する出力判定手段と、前記出力判定手段によりセンサの電流出力が初期状態の値から所定値以上変化した旨が判定された際に空燃比センサが半活性状態にあると判定して、空燃比フィードバック制御を開始させるフィードバック開始手段とを備える。
【０００７】
要するに、本発明の空燃比センサの場合、電圧を印加してもセンサ活性前（素子冷間時）にはセンサ電流が出力されず（センサ電流＝０アンペア）、勿論空燃比フィードバック制御も実施できない。このとき、例えば内燃機関の低温始動時における燃料増量等により、センサ活性前に実際の空燃比がセンサ活性前の出力相当値と異なっていれば（空燃比＝リッチの場合）、空燃比センサの活性化に伴ってセンサ電流が変化し始めることになる。従って、センサ電流の変化を一パラメータとして空燃比フィードバック制御を開始するようにすれば、空燃比センサの完全なる活性化を待たずに当該フィードバック制御が適正時期に開始できるようになる。つまり、空燃比センサの冷間状態からの機関始動時において、空燃比フィードバック制御の開始時期を早め、ドライバビリティを向上させることができる。また、エミッションへの悪影響も早期に解消できる。また本発明では、空燃比センサの素子インピーダンスが所定の活性判定値よりも低い場合に、前記空燃比のフィードバック制御を実施させるようにしている。つまり、本構成では、空燃比センサの素子インピーダンスを活性判定のための一パラメータとする。この場合、例えば同センサに付設されるヒータへの供給電力情報や機関排気ガスの熱量等を求め、それらから活性状態を推測していた従来装置とは異なり、直接的に活性状態が判定できるようになる。またこの素子インピーダンスによる活性判定によれば、半活性状態から空燃比センサを使用する場合にも正確な活性判定が可能となる。さらに、センサ不活性時の電流出力が目標空燃比相当の電流値と一致する場合にも（例えば目標空燃比＝ストイキで、不活性時出力が０ミリアンペアの場合）、そのセンサ出力が活性・不活性のいずれによるものかが判定できる。
【０００８】
より具体的な構成として、請求項２に記載の発明では、空燃比センサの活性前にそのセンサ出力と目標空燃比相当のセンサ出力とが略一致する場合において、出力判定手段は、空燃比センサの電流出力が目標空燃比相当の電流値より所定値以上変化したか否かを判定する。つまり、目標空燃比を理論空燃比（λ＝１．０）とし、それに相当するセンサ電流を「０ミリアンペア」とした場合、センサ電流の「０ミリアンペア」からの変化量が所定値以上となれば、空燃比フィードバック制御が開始されることになる。
【０００９】
上記請求項１又は請求項２に記載の発明では、請求項３に記載したように、出力判定手段によるセンサ出力の判定値が、空燃比制御を実施するコントローラの演算能力や空燃比センサの電流検出用回路の公差に基づくフィードバック開始許可域内の最小値にて設定されるとよい。すなわち、前記フィードバック開始許可域とは、例えば図９の斜線領域にて設定されるものであり、同図の縦軸が空燃比制御を実施するコントローラの演算能力や空燃比センサの電流検出用回路の公差に基づく精度パラメータである。この場合、センサ出力の判定値（不活性からの電流変化の判定値）をフィードバック開始許可域の最小値（すなわち、図９中の特性線Ｌａ上）にて設定すれば、適用対象の制御装置毎にフィードバック制御の早期開始のための最適なる判定値が設定できるようになる。
【００１１】
請求項４に記載の発明では、フィードバック開始手段による空燃比フィードバック制御の開始後において、空燃比制御手段による制御要素を空燃比センサの活性又は半活性に応じて各個に設定するようにしている。具体的には、演算アルゴリズムにおけるＦ／ＢゲインやＦ／Ｂ定数等をセンサの活性・半活性に応じて個々に設定する。
この場合、空燃比センサの活性完了前の半活性状態において空燃比検出範囲が狭いことや、応答性が遅いことを認識しながらセンサ出力を使うことができ、空燃比フィードバックの制御性が向上する。
【００１２】
一方、空燃比センサの電流出力は、同センサの電流検出用回路の公差によりばらつき、同じ空燃比でも回路の個体差によりばらつく。センサ出力がばらつくと所望の空燃比に制御できなくなり、エミッションの悪化を招くおそれがある。そこで、請求項５に記載の発明では、空燃比センサが不活性状態であるか否かを判定するセンサ不活性判定手段と、空燃比センサの不活性状態下において、同センサの電流検出用回路の公差を吸収するよう空燃比センサの電流出力を学習する回路公差学習手段と、前記学習された回路公差分だけ前記空燃比センサの電流出力を補正するセンサ出力補正手段とを備える。
【００１３】
つまり、上記のような回路公差は、センサ不活性時のセンサ出力として現れる。この場合、センサ不活性時のセンサ出力が既知であるとすれば、回路公差分に相当する学習値が容易に求められ、その学習値をセンサ出力に反映させることで回路公差分の無い正確なセンサ出力が得られる。その結果、フィードバック制御の開始当初における制御精度が向上する。また、回路公差の影響によりフィードバック開始が遅れるといった不都合も解消される。なお因みに、こうした回路公差対策として、燃料カット時の出力を学習して補正するものが知られているが、燃料カット時の出力は制御しようとする空燃比から大きく離れており公差学習の精度が低い。これに対して上記構成では、公差学習の精度を高めることができる。
【００１４】
請求項６に記載したように、回路公差学習手段による公差学習値を、その都度バックアップメモリに記憶保持するようにすれば、例えば個体差による回路公差がある場合には公差学習を一度だけ実施すればよいことになる。従って、公差学習にかかる演算負荷が軽減される。
【００１５】
請求項７に記載の発明では、センサ不活性判定手段は、空燃比センサの素子インピーダンスが所定値以上であること、若しくは空燃比センサに付設されたヒータの抵抗値が所定値以下であることから、センサ不活性状態を判定するものとしている。この場合、回路公差学習の実施条件が制限されることにより、誤学習が防止される。
【００１６】
請求項８に記載の発明では、空燃比センサの電流出力のレベルに応じて回路公差の学習を禁止する学習禁止手段を備える。すなわち、回路公差の学習が適正時にのみ実施されるようになり、かかる場合にも誤学習が防止されるようになる。
このとき、請求項８の学習禁止手段は、
・請求項９に記載したように、空燃比センサの電流出力の変動が所定幅を越える場合に、前記回路公差の学習を禁止したり、
・請求項１０に記載したように、空燃比センサの電流出力が回路公差を越える電流レベルである場合に、前記回路公差の学習を禁止したりするものであればよい。
【００１７】
請求項１１に記載の発明では、空燃比センサの電流出力が回路公差の電流レベルを越える状態が所定時間以上継続する場合に、同センサ或いは回路系の異常が発生している旨を判定する異常判定手段を備える。つまり、センサ異常や回路系異常が発生している場合には、設計上、許容される回路公差を越える電流値が出力されることがある。そのため、かかる場合には異常発生の旨を判定し、公差学習も停止する。
【００１８】
【発明の実施の形態】
以下、本発明の内燃機関の空燃比制御装置を具体化した一実施の形態について説明する。本実施の形態における空燃比制御装置ではその主たる構成として、内燃機関の排気系通路の途中に三元触媒を有し、その三元触媒の上流側には限界電流式の空燃比センサ（Ａ／Ｆセンサ）が配設されている。そして、マイクロコンピュータを主体とする電子制御装置（以下、ＥＣＵという）は前記空燃比センサによる検出結果を取り込み、当該ＥＣＵは前記センサの検出結果に基づいて空燃比フィードバック制御を実施する。以下、図面を用いてその詳細な構成を説明する。
【００１９】
図１は、本実施の形態における空燃比制御装置が設けられた内燃機関とその周辺機器の概略構成図である。図１に示すように、内燃機関は４気筒４サイクルの火花点火式エンジン（以下、単にエンジン１という）として構成されている。その吸入空気は上流よりエアクリーナ２、吸気管３、スロットルバルブ４、サージタンク５及びインテークマニホールド６を通過して、インテークマニホールド６内で各気筒毎の燃料噴射弁７から噴射された燃料と混合される。そして、所定空燃比の混合気として各気筒に供給される。
【００２０】
また、エンジン１の各気筒に設けられた点火プラグ８には、点火回路９から供給される高電圧がディストリビュータ１０を介して分配供給され、点火プラグ８は前記各気筒の混合気を所定タイミングで点火する。燃焼後に各気筒から排出される排気ガスは、エキゾーストマニホールド１１及び排気管１２を通過し、排気管１２に設けられた三元触媒１３にて有害成分（ＣＯ、ＨＣ、ＮＯX 等) が浄化された後、大気に排出される。
【００２１】
前記吸気管３には吸気温センサ２１及び吸気圧センサ２２が設けられ、吸気温センサ２１は吸入空気の温度（吸気温Ｔａｍ）を、吸気圧センサ２２はスロットルバルブ４の下流側の吸入管内負圧（吸気圧ＰＭ）をそれぞれ検出する。また、前記スロットルバルブ４には同バルブ４の開度（スロットル開度ＴＨ）を検出するためのスロットルセンサ２３が設けられ、このスロットルセンサ２３はスロットル開度ＴＨに応じたアナログ信号を出力する。またこのスロットルセンサ２３はアイドルスイッチをも内蔵しており、スロットルバルブ４が略全閉である旨の検出信号を出力する。
【００２２】
また、エンジン１のシリンダブロックには水温センサ２４が設けられ、この水温センサ２４はエンジン１内を循環する冷却水の温度（冷却水温Ｔｈｗ）を検出する。前記ディストリビュータ１０にはエンジン１の回転数（エンジン回転数Ｎｅ）を検出するための回転数センサ２５が設けられ、この回転数センサ２５はエンジン１の２回転、すなわち７２０°ＣＡ毎に等間隔で２４個のパルス信号を出力する。
【００２３】
さらに、前記排気管１２の三元触媒１３の上流側には、エンジン１から排出される排気ガスの酸素濃度（或いは二酸化炭素濃度）に比例して広域で且つリニアな空燃比信号λを出力する、限界電流式空燃比センサからなるＡ／Ｆセンサ２６が設けられている。また、三元触媒１３の下流側には、空燃比が理論空燃比（λ＝１）に対してリッチかリーンかに応じた電圧ＶＯＸ２を出力する下流側Ｏ2 センサ２７が設けられている。
【００２４】
なお、Ａ／Ｆセンサ２６の構成は周知であるため、ここでは図示を省略するが、それを略述すれば、酸素濃度検出素子としての固体電解質層が断面カップ状に形成され、その外表面には排気ガス側電極層が、内表面には大気側電極層が固着されている。また、排気ガス側電極層の外側には拡散抵抗層が形成されている。ヒータ３３は断面カップ状の大気側電極層内に収容されており、その発熱エネルギーによりセンサ本体をなす大気側電極層、固体電極質層、排気ガス側電極層及び拡散抵抗層を加熱する。ヒータ３３は、センサ本体を活性化するのに十分な発熱容量を有する。また、Ａ／Ｆセンサ２６は酸素濃度を直線的特性にて検出し得るものであるが、このセンサ２６を活性化するには約６００℃以上の高温が必要とされると共に、その活性温度範囲が狭いため、エンジン１の排気ガスのみによる加熱では同センサ２６を活性領域に制御できない。そのため、本実施の形態では、後述するＥＣＵ４０によりヒータ３３が加熱制御され、Ａ／Ｆセンサ２６が所定の活性温度に保持されるようになっている。
【００２５】
Ａ／Ｆセンサ２６の電圧−電流特性について図２を用いて説明する。図２に示すように、Ａ／Ｆセンサ２６が温度Ｔ＝Ｔ１にて活性状態にあるとき、同図の実線のように特性線Ｌ１が安定した出力を示す。かかる場合、特性線Ｌ１の電圧軸Ｖに平行な直線部分がセンサ２６の限界電流を特定する。この限界電流の増減は空燃比の増減（すなわち、リーン・リッチ）に対応しており、空燃比がリーン側になるほど限界電流は増大し、空燃比がリッチ側になるほど限界電流は減少する。
【００２６】
また、この電圧−電流特性において電圧軸Ｖに平行な直線部分よりも小さい電圧域は抵抗支配域となっており、その抵抗支配域における特性線Ｌ１の傾きは、Ａ／Ｆセンサ２６における固体電解質層の内部抵抗（以下、素子インピーダンスＺｄｃという）により特定される。素子インピーダンスＺｄｃは温度変化に伴い変化するため、素子温が低下するとＺｄｃ値の増大により上記傾きが小さくなる。つまり、素子温ＴがＴ１よりも低いＴ２にあるとき、電流−電圧特性は図２の破線で示すように特性線Ｌ２でもって特定される。かかる場合、特性線Ｌ２の電圧軸Ｖに平行な直線部分がＴ＝Ｔ２におけるＡ／Ｆセンサ２６の限界電流を特定するもので、この限界電流は特性線Ｌ１による限界電流とほぼ一致している。
【００２７】
そして、空燃比がリーンである場合において、特性線Ｌ１では、Ａ／Ｆセンサ２６に正の電圧Ｖｐｏｓを印加することにより、同センサ２６に流れる電流が電流値Ｉｐｏｓとなる（図２の点Ｐａ参照）。また、Ａ／Ｆセンサ２６に負の電圧Ｖｎｅｇを印加することにより、同センサ２６に流れる電流が酸素濃度に依存せず、温度のみに比例する負の電流値Ｉｎｅｇとなる（図２の点Ｐｂ参照）。
【００２８】
一方、図１のエンジン１の運転を制御するＥＣＵ４０は、主に燃料噴射制御や点火制御を司るマイクロコンピュータ（以下、マイコンと略す）５０と、前記Ａ／Ｆセンサ２６の駆動を制御するセンサ駆動部６０とに大別できる。マイコン５０は、ＣＰＵ（中央処理装置）５１、ＲＯＭ（リードオンリメモリ）５２、ＲＡＭ（ランダムアクセスメモリ）５３、バックアップＲＡＭ５４等を中心に論理演算回路として構成され、前記した各種センサの検出信号（吸気温Ｔａｍ、吸気圧ＰＭ、スロットル開度ＴＨ、冷却水温Ｔｈｗ、エンジン回転数Ｎｅ、空燃比信号等）を入力する。そして、それらの各値に基づいて燃料噴射量ＴＡＵ、点火時期Ｉｇ等の制御信号を算出し、さらに、それら制御信号を燃料噴射弁７及び点火回路９等にそれぞれ出力する。上記ＥＣＵ４０には、主電源たるバッテリ４１が接続されている。
【００２９】
次に、センサ駆動部６０の構成を図３を用いて説明する。
図３において、センサ駆動部６０は、前記マイコン５０により制御されるバイアス制御回路６２を有し、これら両者の間にはＡ／Ｄ変換器６３及びＤ／Ａ変換器６４が配設されている。かかる場合、マイコン５０（ＣＰＵ５１）は、Ａ／Ｆセンサ２６の半活性状態若しくは活性状態下において所望の空燃比を検出するためのバイアス指令信号ＶｒをＤ／Ａ変換器６４に対して出力し、Ｄ／Ａ変換器６４は、このバイアス指令信号Ｖｒを電圧信号Ｖｃにアナログ変換してそれをバイアス制御回路６２に出力する。バイアス制御回路６２はその主たる構成として、基準電圧回路６５と、第１の電圧供給回路６６と、第２の電圧供給回路６７と、電流検出回路６８とを備える。
【００３０】
以下には、バイアス制御回路６２の各部の構成を詳細に説明する。先ず、基準電圧回路６５は一対の分圧抵抗６５ａ，６５ｂを有し、これら分圧抵抗６５ａ，６５ｂにより一定の基準電圧Ｖａを生成する。
【００３１】
第１の電圧供給回路６６は電圧フォロア回路にて構成され、基準電圧回路６５の基準電圧Ｖａと同じ電圧ＶａをＡ／Ｆセンサ２６の一方の端子（大気側電極層に接続される端子）６９に供給する。より具体的には、第１の電圧供給回路６６は、正側入力端子が前記各分圧抵抗６５ａ，６５ｂの分圧点に接続されると共に負側入力端子が前記の端子６９に接続された演算増幅器６６ａと、演算増幅器６６ａの出力端子に一端が接続された抵抗６６ｂと、この抵抗６６ｂの他端にそれぞれベースが接続されたＮＰＮトランジスタ６６ｃ及びＰＮＰトランジスタ６６ｄとを有する。ＮＰＮトランジスタ６６ｃのコレクタは定電圧電源Ｖｃｃに接続され、エミッタは電流検出回路６８を構成する電流検出抵抗６８ａを介して前記端子６９に接続されている。また、ＰＮＰトランジスタ６６ｄのエミッタはＮＰＮトランジスタ６６ｃのエミッタに接続され、コレクタはアースされている。
【００３２】
第２の電圧供給回路６７も同様に電圧フォロア回路にて構成され、前記Ｄ／Ａ変換器６４の電圧信号Ｖｃと同じ電圧ＶｃをＡ／Ｆセンサ２６の他方の端子（排気ガス側電極層に接続される端子）７０に供給する。より具体的には、第２の電圧供給回路６７は、正側入力端子が前記Ｄ／Ａ変換器６４の出力に接続されると共に負側入力端子が前記の端子７０に接続された演算増幅器６７ａと、演算増幅器６７ａの出力端子に一端が接続された抵抗６７ｂと、この抵抗６７ｂの他端にそれぞれベースが接続されたＮＰＮトランジスタ６７ｃ及びＰＮＰトランジスタ６７ｄとを有する。ＮＰＮトランジスタ６７ｃのコレクタは定電圧電源Ｖｃｃに接続され、エミッタは抵抗６７ｅを介して前記端子７０に接続されている。また、ＰＮＰトランジスタ６７ｄのエミッタはＮＰＮトランジスタ６７ｃのエミッタに接続され、コレクタはアースされている。
【００３３】
上記構成により、Ａ／Ｆセンサ２６の一方の端子６９には常時、基準電圧Ｖａが供給される。そして、Ｄ／Ａ変換器６４を経由してＡ／Ｆセンサ２６の他方の端子７０に供給される電圧Ｖｃが前記基準電圧Ｖａよりも低ければ（Ｖｃ＜Ｖａ）、当該Ａ／Ｆセンサ２６が正バイアスされる。また、端子７０に供給される電圧Ｖｃが前記基準電圧Ｖａよりも高ければ（Ｖｃ＞Ｖａ）、Ａ／Ｆセンサ２６が負バイアスされることになる。かかる場合、電圧の印加に伴い流れる限界電流（素子電流）は電流検出抵抗６８ａの両端電圧差として検出され、Ａ／Ｄ変換器６３を介してマイコン５０に入力される。
【００３４】
次に、上記の如く構成される空燃比制御装置の作用を説明する。
図４は、センサ活性判定ルーチンを示すフローチャートであり、同ルーチンは、所定周期（本実施の形態では、１２８ｍｓｅｃ）のタイマ割り込みにてマイコン５０内のＣＰＵ５１により実行される。なお、本ルーチンでは、Ａ／Ｆセンサ２６の活性状態を示すフラグとして、半活性フラグＸＦ１と活性フラグＸＦ２とを用いる。詳細には、ＸＦ１＝０はＡ／Ｆセンサ２６が「不活性状態」であることを表し、ＸＦ１＝１は同センサ２６が「半活性状態」であることを表す。また、ＸＦ２＝０はＡ／Ｆセンサ２６が「不活性又は半活性状態」であることを表し、ＸＦ２＝１は同センサ２６が「活性状態」であることを表す。因みに、これら各フラグＸＦ１，ＸＦ２は、ＩＧキーのオン操作に伴い「０」に初期化されるようになっている。
【００３５】
さて、図４のルーチンにおいて、ＣＰＵ５１は、先ずステップ１０１でセンサ系異常が発生していないか否かを判別する。この判別に際し、断線やショート等の故障が発生していないか、或いは後述のセンサ異常フラグＸＦＡＩＬに「１」がセットされていないか等がセンサフェイルコードにより確認される。センサ系異常のない場合、ＣＰＵ５１はステップ１０２に進む。
【００３６】
ＣＰＵ５１は、ステップ１０２で素子インピーダンスＺｄｃがＡ／Ｆセンサ２６の半活性状態を判定するための所定の判定値（本実施の形態では、２５０Ω〔オーム〕程度）以下であるか否かを判別する。ここで、素子インピーダンスＺｄｃは、下記のように検出されるようになっている。つまり、素子インピーダンスＺｄｃの検出時には、図８に示すように、Ａ／Ｆセンサ２６の印加電圧を一時的に正方向及び負方向に変化させる。そして、この電圧変化時における正負いずれか一方の電圧変化量ΔＶと電流変化量ΔＩとから素子インピーダンスＺｄｃを算出する（Ｚｄｃ＝ΔＶ／ΔＩ）。但し、この算出法は一例であって、正負両側の電圧及び電流の変化量に基づき素子インピーダンスＺｄｃを検出したり、負の電圧Ｖｎｅｇを印加した時の素子電流Ｉｎｅｇから素子インピーダンスＺｄｃを検出したりしてもよい（Ｚｄｃ＝Ｖｎｅｇ／Ｉｎｅｇ）。
【００３７】
Ｚｄｃ＞２５０Ωであり前記ステップ１０２が否定判別された場合、ＣＰＵ５１はステップ１０３に進んで活性フラグＸＦ２が「０」であるか否かを判別する。この場合、例えばエンジン１の低温始動時等、素子温が低い場合には、ＸＦ２＝０である旨が判別され、ＣＰＵ５１は、ステップ１０５で半活性フラグＸＦ１を「０」に、続くステップ１０６で活性フラグＸＦ２を「０」にした後、本ルーチンを一旦終了する。
【００３８】
また、前記ステップ１０３が否定判別される場合、すなわちＺｄｃ＞２５０Ωで且つＸＦ２＝１の場合には、センサ活性後に何らかの異常により素子温が低下して素子インピーダンスＺｄｃが上昇したと考えられ、ＣＰＵ５１はステップ１０４でセンサ異常フラグＸＦＡＩＬに「１」をセットした後、ステップ１０５，１０６で半活性及び活性フラグＸＦ１，ＸＦ２を共に「０」にクリアする。すなわち、ＣＰＵ５１は、センサ故障であるとみなす。
【００３９】
一方、Ｚｄｃ≦２５０Ωとなり、ステップ１０２が肯定判別されると、ＣＰＵ５１はステップ１０７に進み、素子インピーダンスＺｄｃがＡ／Ｆセンサ２６の活性状態を判定するための所定の判定値（本実施の形態では、９０Ω程度）以下であるか否かを判別する。この場合、Ｚｄｃ≦９０Ωであれば、センサ活性化が完了したとみなされ、ＣＰＵ５１はステップ１０８に進んで活性フラグＸＦ２に「１」を設定し、その後本ルーチンを終了する。
【００４０】
また、Ｚｄｃ＞９０Ωであれば、ＣＰＵ５１はステップ１０９に進み、活性フラグＸＦ２が「０」であるか否かを判別する。このとき、センサ活性前であればステップ１０９が肯定判別されるが、一旦活性化した後に、何らかの異常により素子温が低下して素子インピーダンスＺｄｃが上昇したような場合には、ステップ１０９が否定判別され、ＣＰＵ５１は、ステップ１０４でセンサ異常フラグＸＦＡＩＬに「１」をセットする。また、続くステップ１０５，１０６で半活性及び活性フラグＸＦ１，ＸＦ２を共に「０」にクリアする。
【００４１】
素子インピーダンスＺｄｃが９０〜２５０Ωの範囲内にあり（ステップ１０２がＹＥＳ、ステップ１０７がＮＯ）、且つ前記ステップ１０９が肯定判別されると、ＣＰＵ５１は、ステップ１１０でその時の目標空燃比λＴＧ（目標とする空燃比相当の空気過剰率）が所定範囲内にあるか否かを判別する。この処理は、目標空燃比λＴＧがセンサ不活性時の素子電流のλ相当値に略一致するものであるか否かを判別するものであり、本実施の形態では目標空燃比λＴＧを「１．０」としていることから、上記所定範囲を「０．９８〜１．０２」に設定している。この処理は後述のステップ１１２での判別に反映されることになる。すなわち、ステップ１１０は、センサ活性前に素子電流と目標空燃比相当のセンサ出力とが略一致するか否かを判別する処理である。
【００４２】
そして、ＣＰＵ５１は、ステップ１１０を否定判別すると、ステップ１０５，１０６で半活性及び活性フラグＸＦ１，ＸＦ２を共に「０」にクリアする。また、ＣＰＵ５１は、ステップ１１０を肯定判別すると、ステップ１１１で半活性フラグＸＦ１が「０」であるか否かを判別する。この場合、ＸＦ１＝１であればそのまま本ルーチンを終了し、ＸＦ１＝０であればステップ１１２に進む。ＣＰＵ５１は、ステップ１１２で目標空燃比λＴＧとＡ／Ｆセンサ２６による素子電流のλ変換値との差の絶対値について、
｜λＴＧ−素子電流のλ変換値｜≧０．０２
の不等式が成立するか否かを判別する。素子電流のλ変換値とは、例えば図１１のマップにて変換されたλ値である。
【００４３】
そして、ステップ１１２が否定判別されれば、ＣＰＵ５１は前記ステップ１０５，１０６に進み、ステップ１１２が肯定判別されれば、ステップ１１３に進んで半活性フラグＸＦ１に「１」をセットし、その後本ルーチンを終了する。ここで、ステップ１１２の処理は、Ａ／Ｆセンサ２６の素子電流が空燃比Ｆ／Ｂ制御に使用できるか否かを判別するものであり、｜λＴＧ−素子電流のλ変換値｜の判定値である「０．０２」とは、例えば図９に示す特性に従い設定されるようになっている。
【００４４】
図９では、縦軸がＣＰＵ５１の桁落ち、Ａ／Ｄ変換のＬＳＢ、回路公差といった各種の精度パラメータを表し、縦軸のパラメータが大きくなるほど制御装置が高精度・高性能であることを示す。横軸は｜λＴＧ−素子電流のλ変換値｜の判定値を表す。このとき、同図中の斜線領域は、後述する空燃比Ｆ／Ｂ制御が実施可能であると判断できる「Ｆ／Ｂ開始許可域」を表しており、当該領域を区画する特性線Ｌａは、Ｆ／Ｂ開始を判定するための｜λＴＧ−素子電流のλ変換値｜の最小値を特定する。つまり、本実施の形態では、図９の精度パラメータを「Ａ」とすることから、前記ステップ１１２の判定値として「０．０２」が与えられている。なお、図中の特性線ＬｂはＡ／Ｆセンサ２６の活性完了時のＦ／Ｂ制御可能域を表している。
【００４５】
従って、図９の特性線Ｌａに基づく判定値に従って半活性フラグＸＦ１がセットされることで、Ａ／Ｆセンサ２６の完全なる活性化を待たずに、空燃比Ｆ／Ｂ制御がいち早く開始できるようになる（後述する図５の燃料噴射制御ルーチンによる）。一方、より高精度な制御装置を使うことで、精度パラメータが例えば図９の「Ｂ」にまで高められれば、前記ステップ１１２の判定値が例えば「０．０１５」となり、Ｆ／Ｂ制御の開始がより一層早められることになる。
【００４６】
次に、本実施の形態における燃料噴射制御ルーチンを図５のフローチャートを用いて説明する。本ルーチンは、各気筒の燃料噴射に同期して（本実施形態では１８０°ＣＡ毎に）、ＣＰＵ５１により実行される。
【００４７】
さて、上記ルーチンがスタートすると、ＣＰＵ５１は、先ずステップ２０１でエンジン運転状態を表す各種センサによる検出結果（エンジン回転数Ｎｅ、吸気圧ＰＭ、冷却水温Ｔｈｗ等）を読み込み、続くステップ２０２でＲＯＭ５２内に予め格納されている基本噴射マップを用い、その時のエンジン回転数Ｎｅ及び吸気圧ＰＭに応じた基本噴射量Ｔｐを算出する。また、ＣＰＵ５１は、ステップ２０３で周知の空燃比Ｆ／Ｂ条件が成立しているか否かを判別する。ここで、空燃比Ｆ／Ｂ条件とは、冷却水温Ｔｈｗが所定温度以上であることや、高回転・高負荷状態でないことを含む。
【００４８】
また、ＣＰＵ５１は、ステップ２０４で前記図４のルーチンにて操作された半活性フラグＸＦ１が「１」であるか否か、或いは活性フラグＸＦ２が「１」であるか否かを判別する。このステップ２０４では、ＸＦ１＝１又はＸＦ２＝１のいずれかであれば、同ステップが肯定判別される。
【００４９】
この場合、ステップ２０３，２０４のいずれかが否定判別されれば、ＣＰＵ５１はステップ２０５に進んで、フィードバック補正係数ＦＡＦを「１．０」とする。つまり、ＦＡＦ＝１．０となることは、空燃比がオープン制御されることと同意である。また、ステップ２０３，２０４が共に肯定判別されれば、ＣＰＵ５１はステップ２１０に進んで、後述のＦＡＦ設定ルーチンに従いフィードバック補正係数ＦＡＦを設定する。
【００５０】
ＦＡＦ値の設定後、ＣＰＵ５１は、ステップ２０６で次の（１）式を用い、基本噴射量Ｔｐ、フィードバック補正係数ＦＡＦ及びその他の補正係数ＦＡＬＬ（水温、エアコン負荷等の各種補正係数）から最終の燃料噴射量ＴＡＵを算出する。
【００５１】
ＴＡＵ＝Ｔｐ・ＦＡＦ・ＦＡＬＬ          …（１）
燃料噴射量ＴＡＵの算出後、ＣＰＵ５１は、本ルーチンを一旦終了する。
次に、上記ステップ２１０の処理に相当するＦＡＦ設定ルーチンについて、図６及び図７を用いて説明する。ここで、本実施の形態では、現代制御理論に基づく空燃比Ｆ／Ｂ制御を実施するようにしている。つまり、現代制御理論を用いて空燃比フィードバック制御を実施する際には、Ａ／Ｆセンサ２６の検出結果を目標空燃比に一致させるためのフィードバック補正係数ＦＡＦを次の式（２），（３）を用いて算出する。なお、このフィードバック補正係数ＦＡＦの設定手順については特開平１−１１０８５３号公報に開示されている。
【００５２】
ＦＡＦ＝Ｋ1 ・λ＋Ｋ2 ・ＦＡＦ1 ＋・・・＋Ｋn+1 ・ＦＡＦn ＋ＺＩ    …（２）
ＺＩ＝ＺＩ1 ＋Ｋａ・（λＴＧ−λ）                    …（３）
上記式（２），（３）において、λはＡ／Ｆセンサ２６による素子電流の空燃比変換値を、Ｋ1 〜Ｋn+1 はＦ／Ｂ定数を、ＺＩは積分項を、Ｋａは積分定数をそれぞれに表す。また、添字ｉはサンプリング開始からの制御回数を示す変数である。但し、Ｆ／Ｂ定数について以下の記載では、センサ活性時に用いるのであれば「活性Ｆ／Ｂ定数Ｋ1 〜Ｋn+1 」と記し、センサ半活性時に用いるのであれば「半活性Ｆ／Ｂ定数Ｋ1 ’〜Ｋn+1 ’」と記すこととする。
【００５３】
さて図６において、ＣＰＵ５１は、先ずステップ２１１〜２１３で活性フラグＸＦ２及び半活性フラグＸＦ１の操作状態を順を追って判別する（因みに、図６のルーチンが実行される際には、前記図５のステップ２０４がＹＥＳであり、ＸＦ１，ＸＦ２のいずれかが「１」となっている）。具体的には、
・ステップ２１１では、活性フラグＸＦ２が「０」から「１」に操作されたタイミングであるか否かを、
・ステップ２１２では、半活性フラグＸＦ１が「０」から「１」に操作されたタイミングであるか否かを、
・ステップ２１３では、活性フラグＸＦ２が「１」であるか否かを、
それぞれに判別する。
【００５４】
そして、ステップ２１１が肯定判別されれば、ＣＰＵ５１は、ステップ２１４で活性Ｆ／Ｂ定数Ｋ1 〜Ｋn を設定した後、ステップ２１８に進む。また、ステップ２１２が肯定判別されれば、ＣＰＵ５１は、ステップ２１５で半活性Ｆ／Ｂ定数Ｋ1 ’〜Ｋn ’を設定した後、ステップ２１８に進む。この場合、活性Ｆ／Ｂ定数Ｋ1 〜Ｋn と、半活性Ｆ／Ｂ定数Ｋ1 ’〜Ｋn ’とを比較すれば、後者の方が燃料噴射量の補正度合が小さくなるよう各定数がそれぞれに設定される。これは、センサ活性の完了前の応答性を考慮しているためである（但し設計思想によっては、逆に設定することも可能である）。
【００５５】
ステップ２１４，２１５でのＦ／Ｂ定数の設定後において、ＣＰＵ５１は、ステップ２１８で次の式（４）を用いて積分項ＺＩを逆演算する。
0003887871.tif 000002
一方、ステップ２１３が肯定判別された場合（すなわち、ＸＦ２＝１の場合）、ＣＰＵ５１は、ステップ２１６で活性Ｆ／Ｂ定数Ｋ1 〜Ｋn を設定し、ステップ２１３が否定判別された場合（すなわち、ＸＦ１＝１の場合）、ＣＰＵ５１は、ステップ２１５で半活性Ｆ／Ｂ定数Ｋ1 ’〜Ｋn ’を設定する。
【００５６】
その後、ＣＰＵ５１は、ステップ２１９で前記式（２）に基づきＦＡＦ値を演算する。このとき、半活性又は活性フラグＸＦ１，ＸＦ２の「０」から「１」への操作時（ステップ２１１，２１２がＹＥＳの時）には、前記（４）式を用いて積分項ＺＩが算出されるのに対し、それ以外の時には、前記（３）式を用いて積分項ＺＩが算出され、こうして算出された積分項ＺＩが式（２）によるＦＡＦ値の演算の適用される。
【００５７】
ＦＡＦ値の算出後、ＣＰＵ５１は図７のステップ２２０に進み、素子インピーダンスＺｄｃに応じたＦＡＦガード値を設定する。このＦＡＦガード値は、例えば図１０のように設定されるものであって、ＦＡＦ値の基準値（＝１．０）に対して所定幅を有する上限ガード値及び下限ガード値が設定される。上限及び下限ガード値の間がフィードバック範囲となる。
【００５８】
その後、ＣＰＵ５１は、ステップ２２１で前記演算したＦＡＦ値が上限ガード値を越える値であるか否かを判別し、ＦＡＦ値＞上限ガード値であればステップ２２２でＦＡＦ値を上限ガード値にて制限する（ＦＡＦ値＝上限ガード値）。また、ＣＰＵ５１は、続くステップ２２３で上限ガード値に対応する積分項ＺＩを次の式（５）により算出する。
【００５９】
0003887871.tif 000003
積分項ＺＩの算出後、ＣＰＵ５１は、前記図５のルーチンに戻る。なおステップ２２３で算出した積分項ＺＩは、次回のＦＡＦ値の演算に反映されることになる。
【００６０】
また、ステップ２２１が否定判別された場合、ＣＰＵ５１は、ステップ２２４で前記演算したＦＡＦ値が下限ガード値未満の値であるか否かを判別し、ＦＡＦ値＜上限ガード値であればステップ２２５でＦＡＦ値を下限ガード値にて制限する（ＦＡＦ値＝下限ガード値）。また、ＣＰＵ５１は、続くステップ２２６で下限ガード値に対応する積分項ＺＩを次の式（６）により算出する。
【００６１】
0003887871.tif 000004
積分項ＺＩの算出後、ＣＰＵ５１は、前記図５のルーチンに戻る。なおステップ２２６で算出した積分項ＺＩは、次回のＦＡＦ値の演算に反映されることになる。ステップ２２１，２２４が共に否定判別された場合には、そのまま本ルーチンを終了する。
【００６２】
なお本実施の形態では、前記図４のルーチンのステップ１１２により請求項記載の出力判定手段が構成され、同ステップ１１３及び前記図５のルーチンによりフィードバック開始手段が構成されている。また、図５のルーチンにより空燃比制御手段が構成されている。
【００６３】
図１２は、上記作用をより具体的に説明するためのタイムチャートであり、本チャートではＡ／Ｆセンサ２６が不活性状態（冷間状態）から活性状態に移行する期間について、空燃比Ｆ／Ｂ制御に関する各種パラメータの挙動を示す。
【００６４】
さて、図１２において、時間ｔ０はエンジン１の低温始動開始のタイミングであり、かかるタイミングではＡ／Ｆセンサ２６が不活性状態であるため、素子インピーダンスが２５０Ωを越える値になっている。また、このエンジン始動時には、燃料噴射量の暖機増量のためにλ（実空燃比）がリッチ側に大きく振られているのに対し、Ａ／Ｆセンサ２６の素子電流がλ＝１に相当する「０ｍＡ」となっている。
【００６５】
そして、時間ｔ１では、センサ素子部の温暖化により素子インピーダンスが２５０Ωに達する。このセンサ素子部の温暖化に伴い、時間ｔ１付近から素子電流が次第に流れ始める。なおこのとき、目標空燃比λＴＧは「１．０」であり、前記図４のステップ１１０では、「０．９８＜λＴＧ＜１．０２」の旨が判別される（同ステップがＹＥＳ）。
【００６６】
その後、時間ｔ２では、｜λＴＧ−素子電流のλ変換値｜で求められる偏差が所定の判定値「０．０２」を越え（図４のステップ１１２がＹＥＳ）、それに伴い半活性フラグＸＦ１に「１」がセットされる（図４のステップ１１３）。この半活性フラグＸＦ１のセット時には、前記図５の燃料噴射制御ルーチンにおいてステップ２０４がＹＥＳとなり、現代制御理論に基づく空燃比Ｆ／Ｂ制御が開始されることになる（但し、空燃比Ｆ／Ｂ条件は成立しているものとする）。空燃比Ｆ／Ｂ制御の開始に伴い、λ（実空燃比）がλＴＧ（目標空燃比）に一致するようＦＡＦ値が設定される。
【００６７】
そして、時間ｔ３では、素子インピーダンスが９０Ω以下となり（図４のステップ１０７がＹＥＳ）、活性フラグＸＦ２に「１」がセットされる（図４のステップ１０８）。この活性フラグＸＦ２のセットに伴い、空燃比Ｆ／Ｂ制御でのＦ／Ｂ定数が「Ｋ1 ’〜Ｋn ’」から「Ｋ1 〜Ｋn 」に切り換えられる（前記図６のルーチン）。それ以降、ＣＰＵ５１は、活性Ｆ／Ｂ定数Ｋ1 〜Ｋn を用いた空燃比Ｆ／Ｂ制御を実施する。
【００６８】
一方、ＥＣＵ４０で検出するセンサ出力（素子電流）は、ＥＣＵ４０のセンサ出力受回路の公差（センサ駆動部６０の電流検出回路６８等の公差）によりばらつき、同じＡ／ＦでもＥＣＵ４０の個体差によりばらつく。Ａ／Ｆセンサの出力がばらつくと所望の空燃比に制御できなくなり、エミッションの悪化を招くおそれがある。そこで本実施の形態では、以下の手順に従い回路公差を学習し、出力ばらつきを解消する。
【００６９】
図１３及び図１４は、ＣＰＵ５１が実行する素子電流回路の公差学習ルーチンを示すフローチャートであり、同ルーチンは所定周期（本実施の形態では、４ｍｓｅｃ毎）のタイマ割り込みにより起動される。この回路公差学習の処理では、回路公差を吸収するための回路公差学習項が求められ、当該学習項によりＡ／Ｆセンサ２６により検出される素子電流値がその都度補正されるようになる。
【００７０】
公差学習ルーチンにおいて、ＣＰＵ５１は、先ず図１３のステップ３０１でセンサ系異常が発生していないか否かを判別する。この処理は、前記図４のルーチンでのセンサ異常フラグＸＦＡＩＬや後述の異常判定フラグやその他の異常情報が無いか否かを判別するものであって、異常有りの場合、ステップ３０１が否定判別される。そして、ＣＰＵ５１は、ステップ３０２で回路公差学習項を「０」とすると共に、続くステップ３０３で学習カウンタを「０」にクリアし、その後本ルーチンを終了する。つまり、センサ系異常時には回路公差の学習を実施しない。
【００７１】
センサ系異常の無い場合、ＣＰＵ５１は、ステップ３０４で学習済フラグが「０」であるか否かを判別し、学習済フラグ＝０であれば続くステップ３０５に進む。ＣＰＵ５１は、ステップ３０５及び３０６でＡ／Ｆセンサ２６が冷間状態であって不活性であることの判別を行う。つまり、ステップ３０５では、素子インピーダンスが４００Ω以上であるか否かを判別し、ステップ３０６では、初期ヒータ抵抗が１．２Ω以下であるか否かを判別する。ここで、初期ヒータ抵抗は、エンジン始動時におけるヒータ電圧とヒータ電流とから算出される（初期ヒータ抵抗＝ヒータ電圧／ヒータ電流）。ステップ３０５，３０６のいずれかが否定判別された場合、本ルーチンがそのまま終了される。
【００７２】
また、ステップ３０５，３０６が共に肯定判別された場合、ＣＰＵ５１はステップ３０７に進み、現在の素子電流の絶対値が所定値（本実施の形態では、０．５ｍＡ）以下であるか否かを判別する。この処理は、センサ出力である素子電流のばらつきが所定の許容範囲（回路公差等のばらつきの許容最大値〜許容最小値）内にあるかどうかを判別するものであり、センサ不活性時の素子電流が±０．５ｍＡの範囲外となる場合には、何らかの異常発生であるみなされる。このとき、｜素子電流｜≦０．５ｍＡであれば、ＣＰＵ５１は図１４のステップ３０８に進み、｜素子電流｜＞０．５ｍＡであれば、図１４のステップ３１４に進む。
【００７３】
ステップ３０８では、ＣＰＵ５１は前回の素子電流と今回の素子電流との差の絶対値について、
｜前回の素子電流−今回の素子電流｜≦０．０２ｍＡ
の不等式が成立するか否かを判別する。
【００７４】
ステップ３０８が否定判別されれば、ＣＰＵ５１は素子電流の変動が微小であるとしてステップ３０９に進み、学習カウンタを「０」にクリアした後、本ルーチンを終了する。また、ステップ３０８が肯定判別されれば、ＣＰＵ５１はステップ３１０で学習カウンタを「１」インクリメントする。その後、ＣＰＵ５１は、学習カウンタの値が所定値（本実施の形態では、１２５）以上であることを条件に（ステップ３１１がＹＥＳ）、ステップ３１２でその時の素子電流なまし値を回路公差学習項としてバックアップＲＡＭ５４に記憶させる。素子電流なまし値の算出手順については後述する。さらに、ＣＰＵ５１は、ステップ３１３で学習済フラグに「１」をセットした後、本ルーチンを終了する。
【００７５】
一方、前記図１３のステップ３０７が否定判別されて図１４のステップ３１４に進んだ場合、何らかの異常が発生していると考えられる。そこで、ＣＰＵ５１は、ステップ３１４で学習カウンタを「０」にクリアすると共に、続くステップ３１５で異常カウンタを「１」インクリメントする。また、ＣＰＵ５１は、異常カウンタの値が所定値（本実施の形態では、２０）以上であることを条件に（ステップ３１６がＹＥＳ）、ステップ３１７で異常判定フラグに「１」をセットする。異常判定フラグの操作後、ＣＰＵ５１は本ルーチンを終了する。
【００７６】
図１５は、素子電流なまし処理ルーチンを示すフローチャートであり、同ルーチンは所定周期（例えば、４ｍｅｃ毎）のタイマ割り込みにより起動される。
図１５において、ＣＰＵ５１は、ステップ４０１でＡ／Ｆセンサ２６により検出された素子電流を取り込み、続くステップ４０２で今回が素子電流の初回取り込み時であるか否かを判別する。素子電流の初回取り込み時であれば、ＣＰＵ５１は、ステップ４０３でその時取り込んだ素子電流を素子電流なまし値としてＲＡＭ５３に一時記憶させる。
【００７７】
また、素子電流の初回取り込み時でなければ、ＣＰＵ５１は、ステップ４０４で次の式（７）に基づき素子電流なまし値を算出する。
0003887871.tif 000005
素子電流なまし値の算出後、ＣＰＵ５１は、当該算出値をＲＡＭ５３に一時記憶させる。
【００７８】
図１６は、Ａ／Ｄルーチンを示すフローチャートであり、同ルーチンは所定周期（例えば、４ｍｅｃ毎）のタイマ割り込みにより起動される。このＡ／Ｄルーチンでは、前記図１３，１４のルーチンで算出した回路公差学習項が素子電流の検出値に反映されることで、より正確なλ値（空燃比）が求められるようになる。
【００７９】
つまり、図１６において、ＣＰＵ５１は、ステップ５０１でＡ／Ｆセンサ２６により検出された素子電流を取り込む。続くステップ５０２では、ＣＰＵ５１はその時の素子電流から回路公差学習項を減算し、減算後の値を新規な素子電流とする（素子電流＝素子電流−回路公差学習項）。また、ＣＰＵ５１は、ステップ５０３で例えば図１１のマップを参照して素子電流に対応するλ値（空燃比）を算出する。
【００８０】
なお本実施の形態では、前記図１３のステップ３０５，３０６により請求項記載のセンサ不活性判定手段が構成され、同ステップ３０７及び前記図１４のステップ３０８により学習禁止手段が構成されている。また、図１４のステップ３０８〜３１２により回路公差学習手段が構成され、前記図１６のステップ５０２によりセンサ出力補正手段が構成されている。
【００８１】
図１７は、回路公差学習に関するタイムチャートである。同図では、Ａ／Ｆセンサ２６の不活性状態（冷間状態）からの挙動を示しており、通電開始当初は素子インピーダンスが４００Ω以上で、且つヒータ抵抗が１．２Ω以下になっている（図１３のステップ３０５，３０６が共にＹＥＳ）。
【００８２】
また、通電開始当初にはセンサ不活性にもかかわらず、回路公差に相当する電流値が計測される。このとき、素子電流の前回値と今回値と差分が微小であるため、その時のセンサ出力値が回路ばらつき（センサばらつき）によるものであると判断される（図１４のステップ３０８がＹＥＳ）。この状態が所定期間継続すると、回路公差学習項が算出される（図１４のステップ３１２）。因みに、素子電流は異常判定するためのしきい値（±０．５ｍＡ）を越えることはないため（図１３のステップ３０７がＹＥＳ）、異常判定フラグは「０」のまま保持される。
【００８３】
以上詳述した本実施の形態によれば、以下の効果が得られる。
（ａ）本実施の形態では、Ａ／Ｆセンサ２６が活性前であって且つ実際の空燃比がセンサ活性前の出力相当値と異なる場合、すなわち例えばエンジン低温始動時における燃料増量等により空燃比＝リッチの場合に、素子電流（センサ出力）のλ変換値と目標空燃比λＴＧとの差が所定の判定値以上となったか否かを判定し（図４のステップ１１２）、その判定が肯定されれば空燃比Ｆ／Ｂ制御を開始させるようにした。この場合、Ａ／Ｆセンサ２６の完全なる活性化を待たずに空燃比Ｆ／Ｂ制御が適正時期に開始でき、Ａ／Ｆセンサ２６の冷間状態（不活性状態）からのエンジン始動時において、空燃比Ｆ／Ｂ制御の開始時期を早めてドライバビリティを向上させることができる。また、エミッションへの悪影響も早期に解消できる。
【００８４】
（ｂ）Ｆ／Ｂ開始を許可するための判定値を、ＣＰＵ５１の演算能力や電流検出用回路６８の公差に基づく精度パラメータに対応するＦ／Ｂ開始許可域の最小値にて設定した（図９参照）。この場合、適用対象のＥＣＵ毎にＦ／Ｂ制御の早期開始のための最適なる判定値が設定できるようになる。
【００８５】
（ｃ）また本実施の形態では、上記（ａ）によるＦ／Ｂ開始の適否判定に加え、Ａ／Ｆセンサ２６の素子インピーダンスに基づきＦ／Ｂ開始の適否を判定するようにした（図４のステップ１０２，１０７）。つまり、素子インピーダンスに応じてセンサ活性状態を判定するようにした。この場合、センサ活性状態が直接的に判定でき、半活性状態から同センサ２６を使用する場合にも正確な活性判定が可能となる。さらに、センサ不活性時の電流出力が目標空燃比相当の電流値と一致する場合（例えば目標空燃比＝ストイキで、不活性時出力が０ミリアンペアの場合）にも、そのセンサ出力が活性・不活性のいずれによるものかが判定できる。
【００８６】
（ｄ）さらに、空燃比Ｆ／Ｂ制御の開始後において、空燃比制御の演算アルゴリズムにおけるＦ／Ｂ定数等をセンサ２６の活性・半活性に応じて個々に設定するようにした（図６のステップ２１４〜２１７）。そのため、センサ活性前の半活性状態において空燃比検出範囲が狭いことや、応答性が遅いことを認識しながらセンサ出力を使うことができ、空燃比Ｆ／Ｂの制御性が向上する。
【００８７】
（ｅ）Ａ／Ｆセンサ２６の不活性状態下において、同センサ２６の電流検出用回路の公差を吸収するよう素子電流を学習し、その学習結果によりセンサ出力を補正するようにした（図１３〜図１６のルーチン）。かかる場合、回路公差によるセンサ出力のばらつきが解消され、Ｆ／Ｂ制御の開始当初における制御精度が向上する。また、回路公差の影響によりＦ／Ｂ開始が遅れるといった不都合も解消される。
【００８８】
（ｆ）回路公差の学習時において、回路公差学習項をその都度バックアップＲＡＭ５４に記憶保持するようにしたため、例えば個体差による回路公差がある場合には公差学習を一度だけ実施すればよいことになる。従って、公差学習にかかる演算負荷が軽減される。
【００８９】
（ｇ）さらに本実施の形態では、以下の構成により回路公差の誤学習が防止できる。つまり、
・Ａ／Ｆセンサ２６の素子インピーダンスが所定値以上である時、若しくはヒータ抵抗が所定値以下である時にのみ（図１３のステップ３０５，３０６がＹＥＳの場合）、回路公差の学習を行うようにしたこと、
・素子電流が回路公差を越える所定の電流レベルである場合（図１３のステップ３０７がＮＯの場合）や、素子電流の変動が所定幅を越える場合（図１４のステップ３０８がＮＯの場合）には、回路公差の学習を禁止するようにしたこと、
・素子電流が回路公差の電流レベルを越える状態が所定時間以上継続する場合には、同センサ或いは回路系の異常が発生している旨を判定し（図１４のステップ３１５〜３１７）、公差学習を停止するようにしたこと、
といった各々の構成により回路公差の誤学習が防止できるようになる。
【００９０】
なお、本発明の実施の形態は、上記以外に次の形態にて実現できる。
上記実施の形態の図４のルーチンでは、ステップ１１２において空燃比の偏差に基づきＦ／Ｂ開始の適否を判定していたが、素子電流の偏差に基づきＦ／Ｂ開始の適否を判定するように変更してもよい。つまり、同図のステップ１１２において、その時の素子電流と目標空燃比相当の電流値との差の絶対値が所定の判定値を越えた際に、空燃比Ｆ／Ｂを開始させるようにしてもよい。このことは既述の実施の形態と実質上同意である。
【００９１】
また、図４のルーチンでは、素子電流のλ変換値と目標空燃比λＴＧとの差に基づきＦ／Ｂ開始の適否を判定する際に、その判定値を図９のＦ／Ｂ開始許可域の最小値としたが、この構成を変更してもよい。上記判定値は例えば図９のＦ／Ｂ開始許可域内であればよく、図９の特性線Ｌｂよりも左側領域であれば従来装置よりも早いＦ／Ｂ開始が可能となる。
【００９２】
上記実施の形態の装置では、センサ不活性時においてＡ／Ｆセンサ２６の素子電流が目標空燃比であるストイキでの相当値（０アンペア）に一致していたが、これとは異なる構成の装置を具体化してもよい。例えばセンサ不活性時の素子電流（０アンペア）が所定のリーン空燃比に相当するものであってもよい。
【００９３】
上記実施の形態では、ＦＡＦ値の設定に際し、図６及び図７のフローチャートに示す設定手順に従ったが、これを変更してもよい。例えば活性と半活性との識別をなくし、いずれの場合にも同様のＦ／Ｂ定数を設定するようにしてもよい。また、ＦＡＦ値を上限又は下限ガード値にて制限する処理を削除し、演算負荷の簡素化を図るようにしてもよい。
【００９４】
上記実施の形態における図１３及び図１４の回路公差学習ルーチンにおいて、ステップ３０７，３１４〜３１７の処理を削除し、演算処理の簡素化を図るようにしてもよい。また公差学習に関する一連の処理（図の１３〜図１６の処理）を省略して具体化することも可能である。
【００９５】
また、上記実施の形態では、空燃比Ｆ／Ｂ制御に際し現代制御理論に基づく制御手法を用いたが、これを変更してもよい。例えば、上記現代制御理論に基づく制御手法とＰＩ制御又はＰＩＤ制御手法とを組み合わせて選択的に実施するようにしてもよい。
【図面の簡単な説明】
【図１】発明の実施の形態における内燃機関の空燃比制御装置の概要を示す構成図。
【図２】Ａ／Ｆセンサの出力特性を説明するためのＶ−Ｉ特性図。
【図３】センサ駆動部の詳細な構成を示す回路図。
【図４】センサ活性判定ルーチンを示すフローチャート。
【図５】燃料噴射制御ルーチンを示すフローチャート。
【図６】ＦＡＦ設定ルーチンを示すフローチャート。
【図７】図６に続き、ＦＡＦ設定ルーチンを示すフローチャート。
【図８】素子インピーダンスの検出法の一例を説明するための波形図。
【図９】目標空燃比と素子電流のλ変換値との差の絶対値、及び精度パラメータに対応するＦ／Ｂ開始許可域を示すマップ。
【図１０】素子インピーダンスに応じたＦＡＦガード値を設定するためのマップ。
【図１１】素子電流をλ変換するためのマップ。
【図１２】Ａ／Ｆセンサが不活性状態から活性状態へ移行する期間において、空燃比Ｆ／Ｂ制御に関する各種パラメータの挙動を示すタイムチャート。
【図１３】素子電流回路の公差学習ルーチンを示すフローチャート。
【図１４】図１３に続き、素子電流回路の公差学習ルーチンを示すフローチャート。
【図１５】素子電流なまし処理ルーチンを示すフローチャート。
【図１６】Ａ／Ｄルーチンを示すフローチャート。
【図１７】回路公差学習に関するタイムチャート。
【符号の説明】
１…エンジン（内燃機関）、２６…Ａ／Ｆセンサ（限界電流式空燃比センサ）、４０…コントローラとしてのＥＣＵ（電子制御装置）、５０…マイコン（マイクロコンピュータ）、５１…空燃比制御手段，出力判定手段，フィードバック開始手段，センサ不活性判定手段，回路公差学習手段，センサ出力補正手段，学習禁止手段を構成するＣＰＵ、５４…バックアップメモリとしてのバックアップＲＡＭ、６０…電流検出用回路を構成するセンサ駆動部、６８…電流検出用回路を構成する電流検出回路。
【図１】
0003887871.tif 000006
【図２】
0003887871.tif 000007
【図３】
0003887871.tif 000008
【図４】
0003887871.tif 000009
【図５】
0003887871.tif 000010
【図６】
0003887871.tif 000011
【図７】
0003887871.tif 000012
【図８】
0003887871.tif 000013
【図９】
0003887871.tif 000014
【図１０】
0003887871.tif 000015
【図１１】
0003887871.tif 000016
【図１２】
0003887871.tif 000017
【図１３】
0003887871.tif 000018
【図１４】
0003887871.tif 000019
【図１５】
0003887871.tif 000020
【図１６】
0003887871.tif 000021
【図１７】
0003887871.tif 000022