(57)【特許請求の範囲】
【請求項１】
内燃機関の空燃比に対してリニアに出力を増減させる空燃比センサと、
前記空燃比センサにより検出された空燃比と目標空燃比との偏差に応じた空燃比補正係数を設定する空燃比補正係数設定手段と、
前記空燃比補正係数設定手段により設定された空燃比補正係数を用いて、前記内燃機関への燃料供給量を補正する空燃比フィードバック制御手段と
を備えた空燃比フィードバック制御システムに適用されるものであって、
前記空燃比センサにより検出された空燃比から第１の異常判定要素を演算する第１の要素演算手段と、
前記空燃比補正係数設定手段により設定された空燃比補正係数から第２の異常判定要素を演算する第２の要素演算手段と、
前記第１，第２の異常判定要素をそれぞれ少なくとも１つのしきい値にて区画した複数の正常・異常判定領域に対応させ、当該対応した領域に応じて空燃比フィードバック制御系の異常を診断する異常診断手段を備えることを特徴とする空燃比フィードバック制御系の異常診断装置。
【請求項２】
前記第１の要素演算手段は、前記空燃比センサにより検出された空燃比と目標空燃比との偏差を前記第１の異常判定要素として演算し、
前記第２の要素演算手段は、前記空燃比補正係数設定手段により設定された空燃比補正係数と当該補正係数の平均値との偏差を前記第２の異常判定要素として演算することを特徴とする請求項１に記載の空燃比フィードバック制御系の異常診断装置。
【請求項３】
前記第１の要素演算手段は、前記空燃比センサにより検出された空燃比と目標空燃比との偏差を逐次積算して前記第１の異常判定要素を演算し、
前記第２の要素演算手段は、前記空燃比補正係数設定手段により設定された空燃比補正係数と当該補正係数の平均値との偏差を逐次積算して前記第２の異常判定要素を演算することを特徴とする請求項１に記載の空燃比フィードバック制御系の異常診断装置。
【請求項４】
前記異常診断手段は、予め設定されている異常診断回数内において所定回数以上、その時の前記第１，第２の異常判定要素が異常判定領域に属すると判定された場合、最終的に空燃比フィードバック制御系の異常である旨を診断する請求項１〜３のいずれかに記載の空燃比フィードバック制御系の異常診断装置。
【請求項５】
前記異常診断手段は、目標空燃比に対する空燃比の変動量、及び平均値に対する空燃比補正係数の変動量が所定値未満の領域について、空燃比フィードバック制御系が正常である旨の判定を禁止する請求項１に記載の空燃比フィードバック制御系の異常診断装置。
【請求項６】
前記第１，第２の異常判定要素について、それらに対応する複数の正常・異常判定領域をマップとしてメモリに記憶保持しておき、前記異常診断手段は、前記マップ上の正常・異常判定領域により異常診断を実施する請求項１に記載の空燃比フィードバック制御系の異常診断装置。
【請求項７】
請求項６に記載の空燃比フィードバック制御系の異常診断装置において、
前記マップは、前記第１，第２の異常判定要素のそれぞれに応じて複数に均等区分された領域を多数有し、各領域には正常である旨のデータ又は異常であることのデータが記憶されている空燃比フィードバック制御系の異常診断装置。
【請求項８】
前記第１，第２の異常判定要素に対応する正常・異常判定領域を所定の学習条件に基づいて学習する判定領域学習手段を備えた請求項１〜７のいずれかに記載の空燃比フィードバック制御系の異常診断装置。
【請求項９】
請求項８に記載の空燃比フィードバック制御系の異常診断装置において、
前記判定領域学習手段は、前記第１の異常判定要素に基づいて異常が検出された場合に空燃比補正係数に係わる正常判定領域を拡大させるよう正常・異常判定領域を学習し、他方、前記第２の異常判定要素に基づいて異常が検出された場合に空燃比に係わる正常判定領域を拡大させるよう正常・異常判定領域を学習する空燃比フィードバック制御系の異常診断装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、内燃機関の空燃比に対してリニアに出力を増減させる空燃比センサを備え、該センサによる検出結果に基づいてマイクロコンピュータ等からなる電子制御装置による空燃比フィードバック制御を実施する空燃比フィードバック制御システムに係るものであって、空燃比フィードバック制御系の異常診断装置に関するものである。なお、本明細書においては、空燃比センサの異常や電子制御装置（マイクロコンピュータ）による制御異常（フィードバックゲインの異常等）を空燃比フィードバック制御系の異常として定義する。
【０００２】
【従来の技術】
近年の空燃比フィードバック制御システムにおいては、排気ガス中の酸素濃度に応じてリニアに空燃比を検出する空燃比センサ（例えば、限界電流式酸素センサ）が用いられており、マイクロコンピュータは前記センサによる空燃比検出結果を取り込んで内燃機関への燃料噴射量を制御する。この場合、マイクロコンピュータは前記空燃比センサによる空燃比検出結果に基づき空燃比補正係数を算出し、該空燃比補正係数にて燃料噴射量を補正する。これにより、内燃機関での最適な燃焼が実現され、排気ガス中の有害成分（ＣＯ，ＨＣ，ＮＯX 等）が低減される。
【０００３】
一方で、上記空燃比フィードバック制御システムでは、空燃比センサにより検出される空燃比の信頼性が低下すると制御精度が著しく悪化するため、従来より同空燃比センサの異常診断を精度良く検出するための技術が要望されている。そこで、従来技術として、例えば特開昭６２−２２５９４３号公報の「酸素濃度センサの異常検出方法」では、限界電流式の酸素濃度センサについて印加電圧と検出電流とに応じて接続系の異常を検出する異常診断手順が開示されている。
【０００４】
【発明が解決しようとする課題】
ところが、上記従来技術では、接続系の断線や短絡等の回路構成上の異常が検出できるものの、空燃比センサの劣化等が生じた場合には、それによる異常の症状を検出することができない。つまり、空燃比センサにより検出された空燃比の真偽（センサ出力が正常か否か）を判断すること、即ちセンサ出力の信頼性を判断することができなかった。また、空燃比センサの検出結果を用いて実現される空燃比フィードバックの電子制御システムの信頼性を診断することもできなかった。
【０００５】
本発明は、上記従来の問題点に着目してなされたものであってその目的は、空燃比センサの異常や、マイクロコンピュータ等からなる電子制御装置による制御異常を含む空燃比フィードバック制御系の異常を精度良く診断し、ひいては同制御システムの制御精度向上に貢献することができる空燃比フィードバック制御系の異常診断装置を提供することにある。
【０００６】
【課題を解決するための手段】
先ず以って、本発明の空燃比フィードバック制御システムでは、内燃機関の空燃比に対してリニアに出力を増減させる空燃比センサを備え、該空燃比センサにより検出された空燃比をマイクロコンピュータ等からなる電子制御装置に入力する。そして、電子制御装置は、前記検出された空燃比と目標空燃比との偏差に応じた空燃比補正係数を設定すると共に、当該空燃比補正係数を用いて前記内燃機関への燃料供給量を補正し空燃比フィードバック制御を実現する（空燃比補正係数設定手段，空燃比フィードバック制御手段）。
【０００７】
かかる制御システムでは、空燃比センサの劣化や断線による異常が発生したり、マイクロコンピュータによる制御性の異常が発生したりすると、適正な空燃比フィードバック制御が継続できなくなる。そこで、本発明では、空燃比センサの異常やマイクロコンピュータの制御異常をまとめて空燃比フィードバック制御系の異常とし、当該異常を精度良く検出するものである。
【０００８】
請求項１に記載の発明では、その特徴として、空燃比センサにより検出された空燃比から第１の異常判定要素を演算すると共に（第１の要素演算手段）、空燃比補正係数設定手段により設定された空燃比補正係数から第２の異常判定要素を演算する（第２の要素演算手段）。また、、前記第１，第２の異常判定要素をそれぞれ少なくとも１つのしきい値にて区画した複数の正常・異常判定領域に対応させ、当該対応した領域に応じて空燃比フィードバック制御系の異常を診断する（異常診断手段）。
【０００９】
上記構成によれば、異常判定要素に対応した複数の正常・異常判定領域に応じて空燃比フィードバック制御系の異常を診断することにより、既存の異常診断装置とは異なる装置を提供することができる。かかる場合、空燃比センサの異常、マイクロコンピュータによる制御異常等含む空燃比フィードバック制御系の異常を容易且つ明確に診断することができる。つまり、空燃比フィードバック制御系の異常を精度良く診断し、ひいては同制御システムの制御精度向上に貢献することができる。
【００１０】
なお、正常判定領域としては、第１，第２の異常判定要素の各々に対して、例えば２つずつのしきい値にて区画される中間領域として与えられる。具体的には、図１１のしきい値Ａ，Ｂ，Ｃ，Ｄにより囲まれる中間領域がその一例である。但し、図１１の縦軸「Ｔλ（空燃比偏差の積算値）」が第１の異常判定要素に相当し、横軸「ＴＦＡＦ（空燃比補正係数偏差の積算値）」が第２の異常判定要素に相当する。また、異常判定領域としては、第１，第２の異常判定要素の各々に対して、例えば２つずつのしきい値にて区画される外部領域として与えられる。具体的には、図１１のしきい値Ａ，Ｂ，Ｃ，Ｄにより設定される斜線領域がその一例である。
【００１１】
請求項２に記載の発明では、その特徴として、前記第１の要素演算手段は、空燃比センサにより検出された空燃比と目標空燃比との偏差を前記第１の異常判定要素として演算する。また、前記第２の要素演算手段は、空燃比補正係数と当該補正係数の平均値との偏差を前記第２の異常判定要素として算出する。この場合、異常診断手段は、前記空燃比の偏差（第１の異常判定要素）及び前記空燃比補正係数の偏差（第２の異常判定要素）が正常・異常のいずれの判定領域にあるかに応じて空燃比フィードバック制御系の異常を診断する。
【００１２】
さらに、請求項３に記載の発明では、その特徴として、前記第１の要素演算手段は、空燃比センサにより検出された空燃比と目標空燃比との偏差を逐次積算して前記第１の異常判定要素を演算する。また、前記第２の要素演算手段は、空燃比補正係数と当該補正係数の平均値との偏差を逐次積算して前記第２の異常判定要素を演算する。この場合、異常診断手段は、前記空燃比の偏差の積算値（第１の異常判定要素）及び前記空燃比補正係数の偏差の積算値（第２の異常判定要素）が正常・異常のいずれの判定領域にあるかに応じて空燃比フィードバック制御系の異常を診断する。
【００１３】
上記請求項２，３のいずれにおいても、空燃比フィードバック制御系の異常診断に際してより適正な空燃比情報、及び空燃比補正係数情報（異常判定要素）が得られる。但し、請求項３では、積算値に基づいて異常診断を行うために、外乱（センサ出力や補正係数の一時的な乱れ）による影響の少ない異常診断が可能となる。
【００１４】
請求項４に記載の発明では、異常診断手段は、予め設定されている異常診断回数内において所定回数以上、その時の前記第１，第２の異常判定要素が異常判定領域に属すると判定された場合、最終的に空燃比フィードバック制御系の異常である旨を診断する。かかる場合には、処理毎の異常診断結果を最終の診断結果とする場合に比べて、異常診断の信頼性を向上させることができる。
【００１５】
請求項５に記載の発明では、前記異常診断手段は、目標空燃比に対する空燃比の変動量、及び平均値に対する空燃比補正係数の変動量が所定値未満の領域について、空燃比フィードバック制御系が正常である旨の判定を禁止する。つまり、空燃比の変動や空燃比補正係数の変動が少ない領域では、それらの情報を用いた異常診断の信頼性が低く、異常を見逃してしまうおそれがある。この場合、上記の如く正常判定を禁止することにより、異常診断の誤検出を防止してその信頼性を高めることができる。
【００１６】
請求項６に記載の発明では、前記第１，第２の異常判定要素に対応する複数の正常・異常判定領域をマップとしてメモリに記憶保持しておき、前記異常診断手段は、前記マップ上の正常・異常判定領域により異常診断を実施する。この場合、正常・異常判定領域の判断がより一層簡便に実現できる。
【００１７】
また、請求項６に記載したマップの詳細としては、請求項７に記載したように、第１，第２の異常判定要素のそれぞれに応じて複数に均等区分された領域を多数有し、各領域に正常である旨のデータ又は異常であることのデータを記憶しておくのが望ましい。具体的には、図１５のマップの太線枠内にある各領域が正常領域として記憶保持され、太線枠外にある各領域が異常領域として記憶保持される。
【００１８】
請求項８に記載の発明では、前記第１，第２の異常判定要素に対応する正常・異常判定領域を所定の学習条件に基づいて学習する判定領域学習手段を備えている。その詳細な構成として、請求項９に記載の発明では、前記判定領域学習手段は、前記第１の異常判定要素に基づいて異常が検出された場合に空燃比補正係数に係わる正常判定領域を拡大させるよう正常・異常判定領域を学習し、他方、第２の異常判定要素に基づいて異常が検出された場合に空燃比に係わる正常判定領域を拡大させるよう正常・異常判定領域を学習する。
【００１９】
つまり、空燃比センサの異常や制御系の異常が発生する場合には、双方の異常が同時に発生することは少なく、一方のみが発生していることが多いと考えられる。この場合、例えば空燃比センサ又は制御装置のいずれか一方に異常が発生すると、それに起因して他方にも異常の症状が現れることが多い。そこで、上記構成では、一方の異常が検出されると、他方の正常判定領域を拡大して異常判定条件を甘くする。それにより、実際に発生している異常を直接的に反映した形で異常診断を行うことができる。また、異常内容の特定をより正確に行うことも可能となる。
【００２０】
【発明の実施の形態】
（第１の実施の形態）
以下、本発明を内燃機関の空燃比制御装置において具体化した第１の実施の形態を説明する。
【００２１】
図１は本実施の形態における内燃機関の空燃比制御装置が設けられた内燃機関とその周辺機器の概略構成図である。図１に示すように、内燃機関１は４気筒４サイクルの火花点火式として構成されている。その吸入空気は上流よりエアクリーナ２、吸気管３、スロットルバルブ４、サージタンク５及びインテークマニホールド６を通過して、インテークマニホールド６内で各燃料噴射弁７から噴射された燃料と混合され、所定空燃比の混合気として各気筒に供給される。また、内燃機関１の各気筒に設けられた点火プラグ８には、点火回路９から供給される高電圧がディストリビュータ１０にて分配供給され、点火プラグ８は前記各気筒の混合気を所定タイミングで点火する。そして、燃焼後の排気ガスはエキゾーストマニホールド１１及び排気管１２を通過し、排気管１２に設けられた三元触媒１３にて有害成分（ＣＯ、ＨＣ、ＮＯX 等) が浄化されて大気に排出される。
【００２２】
前記吸気管３には吸気温センサ２１及び吸気圧センサ２２が設けられ、吸気温センサ２１は吸入空気の温度（吸気温Ｔａｍ）を、吸気圧センサ２２はスロットルバルブ４の下流側の吸入空気の圧力（吸気圧ＰＭ）をそれぞれ検出する。また、前記スロットルバルブ４には同バルブ４の開度（スロットル開度ＴＨ）を検出するためのスロットルセンサ２３が設けられ、このスロットルセンサ２３はスロットル開度ＴＨに応じたアナログ信号を出力すると共に、スロットルバルブ４が略全閉である旨の検出信号を出力する。また、内燃機関１のシリンダブロックには水温センサ２４が設けられ、この水温センサ２４は内燃機関１内の冷却水の温度（冷却水温Ｔｈｗ）を検出する。前記ディストリビュータ１０には内燃機関１の回転数（機関回転数Ｎｅ）を検出するための回転数センサ２５が設けられ、この回転数センサ２５は内燃機関１の２回転、すなわち７２０°ＣＡ毎に等間隔で２４個のパルス信号を出力する。
【００２３】
さらに、前記排気管１２の三元触媒１３の上流側には、内燃機関１から排出される排気ガスの酸素濃度に比例して広域で且つリニアな空燃比信号を出力する、限界電流式酸素センサからなるＡ／Ｆセンサ（空燃比センサ）２６が設けられている。また、三元触媒１３の下流側には、空燃比λが理論空燃比（λ＝１）に対してリッチかリーンかに応じた電圧ＶＯＸ２を出力する下流側Ｏ2 センサ２７が設けられている。なお、本実施の形態では、空燃比を空気過剰率「λ」で表し、理論空燃比（＝１４．７）を空燃比λ＝１として記載する。
【００２４】
図２は、Ａ／Ｆセンサ２６の概略を示す断面図である。図２において、Ａ／Ｆセンサ２６は排気管１２の内部に向けて突設されており、同センサ２６はカバー３１、センサ本体３２及びヒータ３３に大別される。カバー３１は断面コ字状をなし、その周壁にはカバー内外を連通する多数の小孔３１ａが形成されている。センサ本体３２は、空燃比リーン領域における酸素濃度、若しくは空燃比リッチ領域における未燃ガス（ＣＯ，ＨＣ，Ｈ2 等）濃度に対応する限界電流を発生する。
【００２５】
センサ本体３２の構成について詳述する。センサ本体３２において、断面カップ状に形成された固体電解質層３４の外表面には、排気ガス側電極層３６が固着され、内表面には大気側電極層３７が固着されている。また、排気ガス側電極層３６の外側には、プラズマ溶射法等により拡散抵抗層３５が形成されている。固体電解質層３４は、ＺｒＯ2 、ＨｆＯ2 、ＴｈＯ2 、Ｂｉ2 Ｏ3 等にＣａＯ、ＭｇＯ、Ｙ2 Ｏ3 、Ｙｂ2 Ｏ3 等を安定剤として固溶させた酸素イオン伝導性酸化物焼結体からなり、拡散抵抗層３５は、アルミナ、マグネシャ、ケイ石質、スピネル、ムライト等の耐熱性無機物質からなる。排気ガス側電極層３６及び大気側電極層３７は共に、白金等の触媒活性の高い貴金属からなりその表面には多孔質の化学メッキ等が施されている。なお、排気ガス側電極層３６の面積及び厚さは、１０〜１００ｍｍ2 （平方ミリメートル）及び０．５〜２．０μｍ程度となっており、一方、大気側電極層３７の面積及び厚さは、１０ｍｍ2 （平方ミリメートル）以上及び０．５〜２．０μｍ程度となっている。
【００２６】
ヒータ３３は大気側電極層３７内に収容されており、その発熱エネルギーによりセンサ本体３２（大気側電極層３７、固体電極質層３４、排気ガス側電極層３６及び拡散抵抗層３５）を加熱する。ヒータ３３は、センサ本体３２を活性化するに十分な発熱容量を有している。
【００２７】
上記構成のＡ／Ｆセンサ２６において、センサ本体３２は、理論空燃比点よりリーン領域の酸素濃度に応じた限界電流を発生する。この場合、酸素濃度に対応する限界電流は、排気ガス側電極層３６の面積、拡散抵抗層３５の厚さ、気孔率及び平均孔径により決定される。また、センサ本体３２は酸素濃度を直線的特性にて検出し得るものであるが、このセンサ本体３２を活性化するのに約６５０℃以上の高温が必要とされると共に、同センサ本体３２の活性温度範囲が狭いため、エンジン１の排気ガスのみによる加熱では活性領域を制御できない。そのため、本実施の形態では、後述するＥＣＵ４１によりヒータ３３が加熱制御され、センサ本体３２が所定の活性温度に保持されるようになっている。なお、理論空燃比よりもリッチ側の領域では、未燃ガスである一酸化炭素（ＣＯ）等の濃度が空燃比に対してほぼリニアに変化し、センサ本体３２はＣＯ等の濃度に応じた限界電流を発生する。
【００２８】
センサ本体３２の電圧−電流特性について図３を用いて説明する。図３に示すように電流−電圧特性は、Ａ／Ｆセンサ２６の検出酸素濃度（空燃比）に比例するセンサ本体３２の固体電解質層３４への流入電流と、同固体電解質層３４への印加電圧との関係が直線的であることを示す。そして、センサ本体３２が温度Ｔ＝Ｔ１にて活性状態にあるとき、図３の実線で示すように特性線Ｌ１でもって安定した状態を示す。かかる場合、特性線Ｌ１の電圧軸Ｖに平行な直線部分がセンサ本体３２の限界電流を特定する。この限界電流の増減は空燃比の増減（即ち、リーン・リッチ）に対応しており、空燃比がリーン側になるほど限界電流は増大し、空燃比がリッチ側になるほど限界電流は減少する。
【００２９】
また、この電圧−電流特性において電圧軸Ｖに平行な直線部分よりも小さい電圧域は抵抗支配域となっており、その抵抗支配域における特性線Ｌ１の傾きは、センサ本体３２における固体電解質層３４の内部抵抗により特定される。固体電解質層３４の内部抵抗は温度変化に伴い変化するため、センサ本体３２の温度が低下すると抵抗の増大により上記傾きが小さくなる。つまり、センサ本体３２の温度ＴがＴ１よりも低いＴ２にあるとき、電流−電圧特性は図３の破線で示すように特性線Ｌ２でもって特定される。かかる場合、特性線Ｌ２の電圧軸Ｖに平行な直線部分がＴ＝Ｔ２におけるセンサ本体３２の限界電流を特定するもので、この限界電流は特性線Ｌ１による限界電流とほぼ一致している。
【００３０】
そして、特性線Ｌ１において、センサ本体３２の固体電解質層３４に正の印加電圧Ｖｐｏｓを印加すれば、センサ本体３２に流れる電流が限界電流Ｉｐｏｓとなる（図３の点Ｐａ参照）。また、センサ本体３２の固体電解質層３４に負の印加電圧Ｖｎｅｇを印加すれば、センサ本体３２に流れる電流が酸素濃度に依存せず、温度のみに比例する負の温度電流Ｉｎｅｇとなる（図３の点Ｐｂ参照）。
【００３１】
また、図１の内燃機関１の運転を制御する電子制御装置（以下、ＥＣＵという）４１は、ＣＰＵ（中央処理装置）４２、ＲＯＭ（リードオンリメモリ）４３、ＲＡＭ（ランダムアクセスメモリ）４４、バックアップＲＡＭ４５等を中心に論理演算回路として構成され、前記各センサの検出信号を入力する入力ポート４６及び各アクチュエータに制御信号を出力する出力ポート４７等に対しバス４８を介して接続されている。そして、ＥＣＵ４１は、入力ポート４６を介して前記各センサから吸気温Ｔａｍ、吸気圧ＰＭ、スロットル開度ＴＨ、冷却水温Ｔｈｗ、機関回転数Ｎｅ、空燃比信号等を入力して、それらの各値に基づいて燃料噴射量ＴＡＵ、点火時期Ｉｇ等の制御信号を算出し、さらに、それら制御信号を出力ポート４７を介して燃料噴射弁７及び点火回路９等にそれぞれ出力する。また、ＥＣＵ４１は後述する異常判定処理を実行して空燃比フィードバック制御系の異常の有無を診断し、異常時には警告灯４９を点灯して運転者に異常発生を警告する。
【００３２】
次に、上述した燃料噴射制御システムにおいて、空燃比制御を行うために予め設計されている手法について順次説明する。なお、以下の設計手法は特開平１−１１０８５３号公報に開示されている。
【００３３】
（１）制御対象のモデリング
この実施の形態では、内燃機関１の空燃比λを制御するシステムのモデルに、むだ時間Ｐ＝３を有する次数１の自己回帰移動平均モデルを用い、更に外乱ｄを考慮して近似している。
【００３４】
まず、自己回帰移動平均モデルを用いた空燃比λを制御するシステムのモデルは、次の数式１により近似できる。
【００３５】
【数１】
0003975491.tif 000002
【００３６】
ただし、この数式１において、符号ＦＡＦは空燃比補正係数を表す。また、符号ａ，ｂはモデルの応答性を決定するためのモデル定数を表す。また、符号ｋは、最初のサンプリング開始からの制御回数を示す変数を表す。
【００３７】
さらに、外乱ｄを考慮すると、制御システムのモデルは、次の数式２で近似できる。
【００３８】
【数２】
0003975491.tif 000003
【００３９】
以上のように近似したモデルに対し、ステップ応答を用いて回転周期（３６０°ＣＡ）サンプリングで離散化して上記モデル定数ａ，ｂを定めること、即ち空燃比λを制御する系の伝達関数Ｇを求めることは容易である。
【００４０】
（２）状態変数量Ｘの表示方法（ただし、Ｘはベクトル量である）
上記数式２を、状態変数量Ｘ（ｋ）＝［Ｘ１（ｋ），Ｘ２（ｋ），Ｘ３（ｋ），Ｘ４（ｋ）］^Tを用いて書き直すと、数式３の如き行列式となり、更には数式４のようになる。ここで、符号Ｔは転置行列を示す。
【００４１】
【数３】
0003975491.tif 000004
【００４２】
【数４】
0003975491.tif 000005
【００４３】
（３）レギュレータの設計
上記数式３，数式４に基づいてレギュレータを設計すると、空燃比補正係数ＦＡＦは、最適フィードバックゲインＫ＝［Ｋ１，Ｋ２，Ｋ３，Ｋ４］と、状態変数量Ｘ^T（ｋ）＝［λ（ｋ），ＦＡＦ（ｋ−３），ＦＡＦ（ｋ−２），ＦＡＦ（ｋ−１）］とを用いて、数式５のように表せる。
【００４４】
【数５】
0003975491.tif 000006
【００４５】
さらに、この数式５において、誤差を吸収させるための積分項ＺＩ（ｋ）加えると、空燃比補正係数ＦＡＦは、次の数式６によって与えられる。
【００４６】
【数６】
0003975491.tif 000007
【００４７】
なお、上記の積分項ＺＩ（ｋ）は、目標空燃比λTG及び現実の空燃比λ（ｋ）間の偏差と積分定数Ｋａとから決まる値であって、次の数式７により与えられる。
【００４８】
【数７】
0003975491.tif 000008
【００４９】
図４は、上述のようにモデルを設計した空燃比λの制御システムのブロック線図を表す。なお、この図４においては、空燃比補正係数ＦＡＦ（ｋ）をＦＡＦ（ｋ−１）から導出するためにＺ-1変換を用いて表記したが、これは過去の空燃比補正係数ＦＡＦ（ｋ−１）をＲＡＭ４４に記憶しておき、次の制御タイミングで読み出して用いている。因みに、「ＦＡＦ（ｋ−１）」は１回前の空燃比補正係数を表し、「ＦＡＦ（ｋ−２）」は２回前の空燃比補正係数を表し、「ＦＡＦ（ｋ−３）」は３回前の空燃比補正係数を表す。
【００５０】
また、同図４において、二点鎖線で囲まれたブロックＰ１が、空燃比λ（ｋ）を目標空燃比λTGにフィードバック制御している状態にて状態変数量Ｘ（ｋ）を定める部分であり、ブロックＰ２が、積分項ＺＩ（ｋ）を求める部分（累積部）であり、そしてブロックＰ３が、ブロックＰ１で定められた状態変数量Ｘ（ｋ）とブロックＰ２で求められた積分項ＺＩ（ｋ）とから今回の空燃比補正係数ＦＡＦ（ｋ）を演算する部分である。
【００５１】
（４）最適フィードバックゲインＫ及び積分定数Ｋａの決定
最適フィードバックゲインＫ及び積分定数Ｋａは、例えば、次の数式８で示される評価関数Ｊを最小にすることで設定できる。
【００５２】
【数８】
0003975491.tif 000009
【００５３】
ただしこの数式８において、評価関数Ｊは、空燃比補正係数ＦＡＦ（ｋ）の動きを制約しつつ、空燃比λ（ｋ）と目標空燃比λTGとの偏差を最小にすることを意図したものである。また、空燃比補正係数ＦＡＦ（ｋ）に対する制約の重み付けは、重みのパラメータＱ，Ｒの値によって変更できる。従って、重みパラメータＱ，Ｒの値を種々変えて最適な制御特性が得られるまでシミュレーションを繰り返し、最適フィードバックゲインＫ及び積分定数Ｋａを定めればよい。
【００５４】
さらに、最適フィードバックゲインＫ及び積分定数Ｋａは、先のモデル定数ａ，ｂに依存している。従って、実際の空燃比λを制御する系の変動（パラメータ変動）に対するシステムの安定性（ロバスト性）を保証するためには、これら各モデル定数ａ，ｂの変動分を見込んで、最適フィードバックゲインＫ及び積分定数Ｋａを設定する必要がある。よって、シミュレーションは、各モデル定数ａ，ｂの現実に生じ得る変動を加味して行い、安定性を満足する最適フィードバックゲインＫ及び積分定数Ｋａを定める。
【００５５】
以上、（１）制御対象のモデリング、（２）状態変数量の表示方法、（３）レギュレータの設計、（４）最適フィードバックゲイン及び積分定数の決定について説明したが、該実施の形態の装置では、これらは何れも既に設定されているものとする。そして、ＥＣＵ４１では、前記数式６及び数式７のみを用いて、該燃料噴射制御システムにおける空燃比制御を実行するものとする。
【００５６】
次に、上記のように構成された本実施の形態における空燃比制御装置の動作を説明する。
図５はＥＣＵ４１内のＣＰＵ４２により実行される燃料噴射量算出ルーチンを示すフローチャートであり、同ルーチンは、内燃機関１の回転に同期して３６０°ＣＡ毎に実行される。なお、本実施の形態では、図５のルーチンが空燃比補正係数設定手段及び空燃比フィードバック制御手段に相当する。
【００５７】
さて、ＣＰＵ４２は、先ずステップ１０１で吸気圧ＰＭ、機関回転数Ｎｅ等に基づいて基本燃料噴射量Ｔｐを算出し、続くステップ１０２で空燃比λのフィードバック条件が成立しているか否かを判別する。ここで、周知のようにフィードバック条件とは、冷却水温Ｔｈｗが所定水温以上で、且つ高回転・高負荷でないときに成立する。現時点にてフィードバック条件が成立していれば、ＣＰＵ４２はステップ１０３に進み、空燃比λを目標空燃比λTG（本実施の形態では、理論空燃比λ＝１としている）とするための空燃比補正係数ＦＡＦを設定し、その後ステップ１０４に進む。即ち、ステップ１０３では、前述の数式６及び数式７に基づいて目標空燃比λTGとＡ／Ｆセンサ２６にて検出された空燃比λ（ｋ）とから空燃比補正係数ＦＡＦが算出される。
【００５８】
また、前記ステップ１０２でフィードバック条件が成立していなければ、ＣＰＵ４２はステップ１０５に進んで空燃比補正係数ＦＡＦを「１．０」に設定し、その後ステップ１０４に進む。この場合、ＦＡＦ＝１．０とは空燃比λを補正しないことを意味し、いわゆるオープン制御が実施される。
【００５９】
ステップ１０４では、ＣＰＵ４２は、次の数式９に従って基本燃料噴射量Ｔｐ、空燃比補正係数ＦＡＦ及びその他の補正係数ＦＡＬＬから燃料噴射量ＴＡＵを設定する。
【００６０】
【数９】
ＴＡＵ＝Ｔｐ・ＦＡＦ・ＦＡＬＬ
その後、上記燃料噴射量ＴＡＵに基づく制御信号が燃料噴射弁７に出力され、同弁７の開弁時間、即ち実際の燃料噴射時間が制御され、その結果、空燃比λが目標空燃比λTGに調整される。
【００６１】
以上、空燃比補正係数ＦＡＦが空燃比λと目標空燃比λTG（本実施の形態では、λTG＝１．０）との偏差に応じて設定される旨を記載したが、Ａ／Ｆセンサ２６が異常になると、或いはＣＰＵ４２による制御異常（例えばフィードバックゲインの異常等）が発生すると、空燃比フィードバック制御系が正常に機能しなくなる。そこで、本実施の形態では、Ａ／Ｆセンサ２６により検出された空燃比λと空燃比補正係数ＦＡＦとのから得られる異常判定要素に基づいて、空燃比フィードバック制御系の異常の有無を診断する。
【００６２】
ここで、本異常判定処理を略述すれば、本処理では、所定時間内においてＡ／Ｆセンサ２６により検出された空燃比λと目標空燃比λTGとの差の積算値（以下、λ積算値Ｔλという）を算出すると共に、同じく所定時間内において空燃比補正係数ＦＡＦと当該ＦＡＦの平均値ＦＡＦＡＶとの差の積算値（以下、ＦＡＦ積算値ＴＦＡＦという）を算出する。この場合、空燃比λが目標空燃比λTGを基準に変動すると共に、空燃比補正係数ＦＡＦがその平均値ＦＡＦＡＶを基準に変動するとすれば、λ積算値Ｔλ、ＦＡＦ積算値ＴＦＡＦは、図１０における斜線部の面積に相当する。なお、本実施の形態では、λ積算値Ｔλが第１の異常判定要素に相当し、ＦＡＦ積算値ＴＦＡＦが第２の異常判定要素に相当する。
【００６３】
そして、これらＴλ，ＴＦＡＦが正常判定領域にあるか又は異常判定領域にあるかに応じて空燃比フィードバック制御系の異常を検出する。具体的には、図１１に示すように、Ｔλがしきい値Ａ〜Ｂの範囲内にあり、且つＴＦＡＦがしきい値Ｃ〜Ｄの範囲内にあれば（図の斜線部を除く中間領域）、空燃比フィードバック制御系が正常であると診断される。また、Ｔλ及びＴＦＡＦが図の斜線領域にあれば、空燃比フィードバック制御系が異常であると診断される。この場合、Ｔλ≦Ａ且つＴＦＡＦ≦Ｃの領域は、本来、異常領域として断定しにくい領域であるが、本実施の形態では、当該領域については異常診断の信頼性が低く、異常を見逃してしまうおそれがあるとして、正常である旨の判定を禁止するようにしている（即ち、異常判定領域としている）。
【００６４】
図６は、本実施の形態における空燃比フィードバック系異常判定ルーチンを示すフローチャートであり、同ルーチンは例えば４ｍｓ周期でＣＰＵ４２により実行される。なお、本実施の形態では、図６のルーチンが異常診断手段に相当する。
【００６５】
さて、図６のルーチンがスタートすると、ＣＰＵ４２は、先ずステップ２１０で今現在の機関運転状態が異常判定可能な状態であるか否かを判別する。具体的には、ステップ２１０では例えば以下の条件が満たされているか否かが判別される。
・Ａ／Ｆセンサ２６が活性化状態であること（センサ本体３２の素子温が６５０℃以上、或いはＡ／Ｆセンサ２６の素子抵抗が９０Ω以下であること）。
・吸気圧ＰＭが所定圧以下であること。
・機関回転数Ｎｅが所定回転数以下であること。
・スロットル開度ＴＨが所定開度以下であること。
・アイドル状態であること。
・空燃比フィードバックの開始から所定時間が経過していること。
【００６６】
そして、上記ステップ２１０が肯定判別され、異常判定が許可されると、ＣＰＵ４２はステップ２２０に進み、λ積算値Ｔλを算出する。ここで、λ積算値Ｔλは図７のサブルーチンにより算出されるものであって、同図７のルーチンが第１の要素演算手段に相当する。その内容を説明すれば、ＣＰＵ４２は、図７のステップ２２１でＡ／Ｆセンサ２６により検出された空燃比λと、目標空燃比λTGとの差を算出し、続くステップ２２２で前記空燃比λと目標空燃比λTGとの差の絶対値｜λ−λTG｜を、λ積算値の前回値Ｔλi-1 に加算してλ積算値の今回値Ｔλi を算出する（Ｔλi ＝Ｔλi-1 ＋｜λ−λTG｜）。
【００６７】
また、図６のステップ２３０において、ＣＰＵ４２はＦＡＦ積算値ＴＦＡＦを算出する。ここで、ＦＡＦ積算値ＴＦＡＦは図８のサブルーチンにより算出されるものであって、同図８のルーチンが第２の要素演算手段に相当する。その内容を説明すれば、ＣＰＵ４２は、図８のステップ２３１で既述した手順に従って求めた空燃比補正係数ＦＡＦを読み込み、続くステップ２３２で当該ＦＡＦを空燃比補正係数の今回値ＦＡＦi とする。
【００６８】
さらに、ＣＰＵ４２は、ステップ２３３で周知のなまし処理を用いて空燃比補正係数ＦＡＦの平均値ＦＡＦＡＶi （今回値）を算出する。即ち、当該平均値ＦＡＦＡＶi は、次の数式１０により算出される。
【００６９】
【数１０】
ＦＡＦＡＶi ＝｛ＦＡＦＡＶi-1 ・（ｎ−１）＋ＦＡＦi ｝／ｎ
但し、上記数式１０において、例えばｎ＝６４である。
【００７０】
その後、ＣＰＵ４２は、ステップ２３４で空燃比補正係数ＦＡＦi （今回値）とその平均値ＦＡＦＡＶi （今回値）との差を算出し、続くステップ２３５で前記空燃比補正係数ＦＡＦi とその平均値ＦＡＦＡＶi との差の絶対値｜ＦＡＦi −ＦＡＦＡＶi ｜を、ＦＡＦ積算値の前回値ＴＦＡＦi-1 に加算してＦＡＦ積算値の今回値ＴＦＡＦi を算出する（ＴＦＡＦi ＝ＴＦＡＦi-1 ＋｜ＦＡＦi −ＦＡＦＡＶi ｜）。
【００７１】
一方、図６のステップ２２０，２３０の処理（Ｔλ，ＴＦＡＦの算出処理）後において、ＣＰＵ４２は、ステップ２４０で前回の異常判定時から所定時間ｔ（本実施の形態では、１２８０ｍｓ）が経過したか否かを判別し、これが否定判別されれば本ルーチンをそのまま終了する。つまり、ステップ２４０が否定判別されている期間内（１２８０ｍｓ期間内）では、前記ステップ２２０，２３０により空燃比λの偏差の積算処理、及び空燃比補正係数ＦＡＦの偏差の積算処理が繰り返し実行される。
【００７２】
また、ステップ２４０が肯定判別されれば、ＣＰＵ４２はステップ２５０に進み、異常判定処理を実行する。この異常判定処理は図９に示すサブルーチンに従って実施される。
【００７３】
このステップ２５０の異常判定処理（図９に示すサブルーチン）は、前記算出したλ積算値ＴλとＦＡＦ積算値ＴＦＡＦとを用いて空燃比フィードバック制御系の異常を判定するものであって、その判定処理後、ＣＰＵ４２は図６のステップ２８０でλ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦを「０」にクリアして本ルーチンを一旦終了する。
【００７４】
次に、図９の異常判定サブルーチンを詳細に説明する。
図９において、ＣＰＵ４２は、先ずステップ２５１で異常判定処理の実施回数を表す処理カウンタＣＤＧを「１」インクリメントし、続くステップ２５２で当該処理カウンタＣＤＧが「５」を超えるか否かを判別する。処理開始当初には、ステップ２５２が否定判別され、ＣＰＵ４２はステップ２５３に進む。
【００７５】
ＣＰＵ４２は、ステップ２５３でλ積算値Ｔλが所定のしきい値Ａ，Ｂで区画される正常領域にあるか否かを判別する。ここで、しきい値Ａ，Ｂは、図１１の縦軸に表される値である。この場合、Ａ＜Ｔλ＜Ｂであれば、ＣＰＵ４２はステップ２５４でλ異常判定カウンタＣＡＦＤＧを現状のままとし、Ｔλ≦Ａ又はＴλ≧Ｂであれば、ステップ２５５でλ異常判定カウンタＣＡＦＤＧを「１」インクリメントする。
【００７６】
さらに、ＣＰＵ４２は、ステップ２５６でλ異常判定カウンタＣＡＦＤＧが「３」以上であるか否かを判別する。そして、ＣＡＦＤＧ＜３であれば、ＣＰＵ４２はステップ２５７でλ異常判定フラグＸＤＧＡＦを「０」にクリアし、ＣＡＦＤＧ≧３であれば、ステップ２５８でλ異常判定フラグＸＤＧＡＦに「１」をセットする。
【００７７】
その後、ＣＰＵ４２は、ステップ２５９でＦＡＦ積算値ＴＦＡＦが所定のしきい値Ｃ，Ｄで区画される正常領域にあるか否かを判別する。ここで、しきい値Ｃ，Ｄは、図１１の横軸に表される値である。この場合、Ｃ＜ＴＦＡＦ＜Ｄであれば、ＣＰＵ４２はステップ２６０でＦＡＦ異常判定カウンタＣＦＡＦＤＧを現状のままとし、ＴＦＡＦ≦Ｃ又はＴＦＡＦ≧Ｄであれば、ステップ２６１でＦＡＦ異常判定カウンタＣＦＡＦＤＧを「１」インクリメントする。
【００７８】
さらに、ＣＰＵ４２は、ステップ２６２でＦＡＦ異常判定カウンタＣＦＡＦＤＧが「３」以上であるか否かを判別する。そして、ＣＦＡＦＤＧ＜３であれば、ＣＰＵ４２は、ステップ２６３でＦＡＦ異常判定フラグＸＤＧＦＡＦを「０」にクリアして本ルーチンを終了する。また、ＣＡＦＤＧ≧３であれば、ＣＰＵ４２は、ステップ２６４でＦＡＦ異常判定フラグＸＤＧＦＡＦに「１」をセットして本ルーチンを終了する。
【００７９】
一方、同図９の処理が繰り返し実行され、それに伴なってステップ２５２が肯定判別されると、ＣＰＵ４２はステップ２６５に進み、λ異常判定フラグＸＤＧＡＦ又はＦＡＦ異常判定フラグＸＤＧＦＡＦのいずれかに「１」がセットされているか否かを判別する。この場合、ＸＤＧＡＦ又はＸＤＧＦＡＦがいずれも「０」であれば、ＣＰＵ４２はステップ２６６に進み、最終異常判定フラグＸＤＧを「０」にクリアする。また、ＸＤＧＡＦ又はＸＤＧＦＡＦの少なくともいずれかに「１」がセットされていれば、ＣＰＵ４２はステップ２６７に進み、最終異常判定フラグＸＤＧに「１」をセットする。なお、図示は省略したが、最終異常判定フラグＸＤＧのセット操作に伴ない前記異常判定フラグＸＤＧＡＦ，ＸＤＧＦＡＦは共に「０」にクリアされるようになっている。
【００８０】
かかる場合、ＸＤＧ＝０となることは、λ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦが図１１の正常領域（図の中央の領域）にあることを意味し、ＸＤＧ＝１となることは、λ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦが図１１の異常領域（図の斜線領域）にあることを意味する。
【００８１】
その後、ＣＰＵ４２は、ステップ２６８で処理カウンタＣＤＧを「０」にクリアすると共に、続くステップ２６９でλ異常判定カウンタＣＡＦＤＧを「０」にクリアする。さらに、ＣＰＵ４２は、ステップ２７０でＦＡＦ異常判定カウンタＣＦＡＦＤＧを「０」にクリアして本ルーチンを終了する。なお、上記最終異常判定フラグＸＤＧがセットされると、ＣＰＵ４２は警告灯４９を点灯させたり、空燃比フィードバックを停止させたりする等のダイアグ処理を実施する。
【００８２】
次に、上記の如く実施される異常判定処理を図１２のタイムチャートを用いてより具体的に説明する。なお、図中の時間ｔ１，ｔ２，ｔ３，ｔ４，ｔ５，ｔ６は、前記図９の異常判定処理が実施されるタイミングを示す。さて、図１２においては、処理カウンタＣＤＧが１２８０ｍｓ毎にカウントアップされ、ＣＤＧ＝５に達した後、「０」にクリアされる。
【００８３】
時間ｔ１〜ｔ２の期間、時間ｔ３〜ｔ５の期間においては、空燃比λが目標空燃比λTGに対して大きく変動しており、かかる期間ではλ積算値Ｔλが正常領域としての許容範囲（Ａ〜Ｂ）から外れることとなる。従って、時間ｔ２，ｔ４，ｔ５において、λ異常判定カウンタＣＡＦＤＧが１つずつインクリメントされ、ＣＡＦＤＧ＝３となる時間ｔ５では、λ異常判定フラグＸＤＧＡＦに「１」がセットされている（即ち、この時間ｔ５で図９のステップ２５６が肯定判別される）。
【００８４】
また、時間ｔ１以前、時間ｔ１〜ｔ３の期間、時間ｔ４〜ｔ５の期間においては、空燃比補正係数ＦＡＦが当該ＦＡＦの平均値ＦＡＦＡＶに対して大きく変動しており、かかる期間ではＦＡＦ積算値ＴＦＡＦが正常領域としての許容範囲（Ｃ〜Ｄ）から外れることとなる。従って、時間ｔ１，ｔ２，ｔ３，ｔ５において、ＦＡＦ異常判定カウンタＣＦＡＦＤＧが１つずつインクリメントされ、ＣＦＡＦＤＧ＝３となる時間ｔ３では、ＦＡＦ異常判定フラグＸＤＧＦＡＦに「１」がセットされている（即ち、この時間ｔ３で図９のステップ２６２が肯定判別される）。
【００８５】
そして、ＣＤＧ＝５となる時間ｔ６では、λ異常判定フラグＸＤＧＡＦ，ＦＡＦ異常判定フラグＸＤＧＦＡＦに「１」がセットされているため、最終異常判定フラグＸＤＧに「１」がセットされることとなる。
【００８６】
なお、上記図１２のタイムチャートでは、λ異常（Ａ／Ｆセンサ２６の異常）とＦＡＦ異常（ＣＰＵ４２によるフィードバックゲインの異常等）とが略同時に発生している事例を説明したが、実際のシステムでは、いずれか一方の異常が発生し、それに起因して他方の異常が発生することが多い。
【００８７】
そこで、本実施の形態の空燃比制御装置では、λ異常、ＦＡＦ異常のうちでいずれか一方の異常判定後において、上記λ異常，ＦＡＦ異常を判定するためのしきい値Ａ，Ｂ，Ｃ，Ｄを学習するようにしており、以下にその詳細を説明する。なお図示は省略したが、かかる構成では、前記λ異常判定フラグＸＤＧＡＦに「１」がセットされた回数（図９のステップ２５６が肯定判別された回数），並びにＦＡＦ異常判定フラグＸＤＧＦＡＦに「１」がセットされた回数（図９のステップ２６２が肯定判別された回数）が継続的にカウントされ、同カウント値がＲＡＭ４４に記憶されるようになっている。
【００８８】
図１３のフローチャートは、λ異常判定フラグＸＤＧＡＦ，ＦＡＦ異常判定フラグＸＤＧＦＡＦの操作状態に基づいて、λ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦを正常・異常判定するためのしきい値Ａ，Ｂ，Ｃ，Ｄを学習するためのしきい値学習ルーチンであり、同ルーチンは例えば１０分周期でＣＰＵ４２により実行される。なお、本実施の形態では、図１３のルーチンが判定領域学習手段に相当する。
【００８９】
さて、図１３がスタートすると、ＣＰＵ４２は、先ずステップ３０１で前回の処理時と今回の処理時との期間中にλ異常判定フラグＸＤＧＡＦ及びＦＡＦ異常判定フラグＸＤＧＦＡＦのうち、いずれのフラグが先にセットされたかを判別する。但し、いずれのフラグもセットされていなければＣＰＵ４２はそのまま処理を終了する（図示略）。
【００９０】
かかる場合において、λ異常判定フラグＸＤＧＡＦが先にセットされたとすれば、ＣＰＵ４２はステップ３０２に進み、当該ＸＤＧＡＦのセット回数を読み込むと共に、続くステップ３０３で前記セット回数が所定値Ｋ１に達しているかを判別する。また、ＣＰＵ４２は、ステップ３０４でしきい値Ｃ，Ｄが予め設定されているガード値に達しているかを判別する。即ち、しきい値Ｃ，Ｄの過剰な学習が行われていないかを判別する。
【００９１】
この場合、ステップ３０３が肯定判別され、且つステップ３０４が否定判別されれば、ＣＰＵ４２はステップ３０５に進む。また、ステップ３０３が否定判別されるか、或いはステップ３０４が肯定判別されれば、ＣＰＵ４２はステップ３０５をバイパスしてステップ３０６に進む。
【００９２】
ＣＰＵ４２は、ステップ３０５でしきい値Ｃ，Ｄに対し学習処理を実行する。具体的には、空燃比λ（Ａ／Ｆセンサ２６）に異常が発生すると、その影響を受けて本来正常なはずの空燃比補正係数ＦＡＦに異常な兆候が現れることがある。そこで、しきい値Ｃ，Ｄで区画される正常領域を広くする。つまり、図１１において、しきい値Ｃを小さくし、しきい値Ｄを大きくする。このとき、正常領域を広くするためのしきい値Ｃ，Ｄの学習処理は、しきい値Ｃ，Ｄのいずれか一方についてのみ行うようにしてもよい。
【００９３】
その後、ＣＰＵ４２は、ステップ３０６で異常判定フラグＸＤＧＡＦ，ＸＤＧＦＡＦのセット回数をクリアするように指令し、本ルーチンを終了する。
また、ＦＡＦ異常判定フラグＸＤＧＦＡＦが先にセットされたとすれば、ＣＰＵ４２はステップ３０７に進み、当該ＸＤＧＦＡＦのセット回数を読み込むと共に、続くステップ３０８で前記セット回数が所定値Ｋ２に達しているかを判別する。また、ＣＰＵ４２は、ステップ３０９でしきい値Ａ，Ｂが予め設定されているガード値に達しているかを判別する。即ち、しきい値Ａ，Ｂの過剰な学習が行われていないかを判別する。
【００９４】
この場合、ステップ３０８が肯定判別され、且つステップ３０９が否定判別されれば、ＣＰＵ４２はステップ３１０に進む。また、ステップ３０８が否定判別されるか、或いはステップ３０９が肯定判別されれば、ＣＰＵ４２はステップ３１０をバイパスしてステップ３０６に進む。
【００９５】
ＣＰＵ４２は、ステップ３１０でしきい値Ａ，Ｂに対し学習処理を実行する。具体的には、空燃比補正係数ＦＡＦ（フィードバックゲイン）に異常が発生すると、その影響を受けて本来正常なはずの空燃比λに異常な兆候が現れることがある。そこで、しきい値Ａ，Ｂで区画される正常領域を広くする。つまり、図１１において、しきい値Ａを小さくし、しきい値Ｂを大きくする。このとき、正常領域を広くするためのしきい値Ａ，Ｂの学習処理は、しきい値Ａ，Ｂのいずれか一方についてのみ行うようにしてもよい。
【００９６】
以上詳述した本実施の形態によれば、以下の効果を得ることができる。
（ａ）本実施の形態では、Ａ／Ｆセンサ２６により検出された空燃比λと目標空燃比λTGとの偏差（λ積算値Ｔλ）を算出すると共に、空燃比補正係数ＦＡＦとその平均値ＦＡＦＡＶとの偏差（ＦＡＦ積算値ＴＦＡＦ）を算出した。そして、それら算出された異常判定要素（λ積算値Ｔλ，ＦＡＦ積算値ＴＦＡＦ）を、それぞれ２つずつのしきい値にて区画した正常・異常判定領域（図１１参照）に対応させて空燃比フィードバック制御系の異常を診断するようにした。
【００９７】
かかる場合、異常判定要素と正常・異常判定領域とを照合させることにより、容易且つ明確な当該異常診断を実施することができ、既存の異常診断装置とは異なる装置が提供できる。その結果、Ａ／Ｆセンサ２６の異常、マイクロコンピュータ（ＥＣＵ４１）による制御異常等含む空燃比フィードバック制御系の異常を精度良く診断して、ひいては同制御システムの制御精度向上に貢献することができる。
【００９８】
（ｂ）また、異常診断に際しては、Ａ／Ｆセンサ２６により検出された空燃比λと目標空燃比λTGとの偏差を逐次積算すると共に、空燃比補正係数ＦＡＦと当該ＦＡＦの平均値ＦＡＦＡＶとの偏差を逐次積算し、これらの演算結果（λ積算値Ｔλ，ＦＡＦ積算値ＴＦＡＦ）を異常判定要素とした（Ｔλ＝第１の異常判定要素，ＴＦＡＦ＝第２の異常判定要素）。この場合、適正な空燃比情報及び空燃比補正係数情報が得られる。また、各情報の積算値に基づいて異常診断を行うために、外乱（センサ出力や補正係数の一時的な乱れ）による影響の少ない異常診断が可能となる。
【００９９】
（ｃ）また、本実施の形態では、所定の異常診断回数（本実施の形態では、ＣＤＧ＝５回）内において所定回数（本実施の形態では、３回）以上、その時の異常判定要素が異常判定領域に属すると判定された場合、最終的に空燃比フィードバック制御系の異常である旨を診断するようにした。かかる場合には、処理毎の異常診断結果を最終結果とする場合に比べて、異常診断の信頼性を向上させることができる。
【０１００】
（ｄ）さらに、λ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦが所定値未満の領域（Ｔλ≦Ａ、且つＴＦＡＦ≦Ｃの領域）では、空燃比フィードバック制御系が正常である旨の判定を禁止するようにした（図１１参照）。つまり、空燃比λの変動や空燃比補正係数ＦＡＦの変動が少ない領域では、それらの情報を用いた異常診断の信頼性が低く、異常を見逃してしまうおそれがある。この場合、上記の如く正常である旨の判定を禁止すれば、異常診断の誤検出を防止してその信頼性を高めることができる。
【０１０１】
（ｅ）併せて、本実施の形態では、λ積算値Ｔλに基づいて異常が検出された場合に空燃比補正係数ＦＡＦに係わる正常判定領域（図１１のＣ〜Ｄの領域）を拡大させるよう正常・異常判定領域を学習し、他方、ＦＡＦ積算値ＴＦＡＦに基づいて異常が検出された場合に空燃比λに係わる正常判定領域（図１１のＡ〜Ｂの領域）を拡大させるよう正常・異常判定領域を学習するようにした。
【０１０２】
つまり、Ａ／Ｆセンサ２６の異常やＥＣＵ４１内の制御異常が発生する場合には、双方の異常が同時に発生することは少なく、一方のみが発生していることが多いと考えられる。この場合、例えばＡ／Ｆセンサ２６又はＥＣＵ４１のいずれか一方に異常が発生すると、それに起因して他方にも異常の症状が現れることが多い。そこで、上記構成では、一方の異常が検出されると、他方の正常判定領域を拡大して異常判定条件を甘くする。それにより、実際に発生している異常を直接的に反映した形で異常診断を行うことができる。また、異常内容の特定をより正確に行うことも可能となる。
【０１０３】
（第２の実施の形態）
次に、本発明における第２の実施の形態を図１４〜図１７を用いて説明する。但し、本実施の形態の構成において、上述した第１の実施の形態と同等であるものについては図面に同一の記号を付すと共にその説明を簡略化する。そして、以下には第１の実施の形態との相違点を中心に説明する。
【０１０４】
本実施の形態では、λ積算値ＴλとＦＡＦ積算値ＴＦＡＦとを異常判定要素とした図１５の正常・異常判定マップを用い、異常判定処理を実施する。即ち、図１５では、λ積算値Ｔλが多数のしきい値により複数領域（図では１６領域）に均等区分されると共に、ＦＡＦ積算値ＴＦＡＦが多数のしきい値により複数領域（図では１６領域）に均等区分されている。従って、マップ全体としては、１６×１６＝２５６個の小領域が設けられていることとなっている。
【０１０５】
この場合、同マップの太線枠内にある個々の小領域（図では、１０×１０＝１００個の小領域）が正常領域として設定されており、太線枠外にある個々の小領域が異常領域として設定されている。そして、本実施の形態では、その時々のＴλ及びＴＦＡＦが正常・異常のいずれの領域にあるかに応じて異常判定を行うようにしている。なお、図１５のマップは、メモリとしてのバックアップＲＡＭ４５に記憶保持されている。
【０１０６】
図１４は、本実施の形態における異常判定ルーチンを示すフローチャートであり、同ルーチンは、前記第１の実施の形態における図９のルーチン（図６のステップ２５０の処理）に置き換えられるものである。
【０１０７】
さて、図１４のルーチンがスタートすると、ＣＰＵ４２は、先ずステップ４０１で異常判定処理の実施回数を表す処理カウンタＣＤＧを「１」インクリメントし、続くステップ４０２で当該処理カウンタＣＤＧが「５」を超えるか否かを判別する。処理開始当初には、ステップ４０２が否定判別され、ＣＰＵ４２はステップ４０３に進む。
【０１０８】
ＣＰＵ４２は、ステップ４０３でその時のλ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦλが前記図１５のマップ上で正常領域にあるか否かを判別する。具体的には、図１５のマップ上において、Ｔλ＝Ｔλ１，ＴＦＡＦ＝ＴＦＡＦ１であれば、正常領域内（太線枠内）の小領域Ｐが選択され、結果として正常である旨が判定されることとなる。また、Ｔλ＝Ｔλ２，ＴＦＡＦ＝ＴＦＡＦ２であれば、異常領域内（太線枠外）の小領域Ｑが選択され、結果として異常である旨が判定されることとなる。
【０１０９】
従って、Ｔλ，ＴＦＡＦが正常領域にありステップ４０３が肯定判別されれば、ＣＰＵ４２はステップ４０４に進み、異常判定カウンタＣＭＰＤＧを現状のままとする。また、Ｔλ，ＴＦＡＦが異常領域にありステップ４０３が否定判別されれば、ＣＰＵ４２はステップ４０５に進み、異常判定カウンタＣＭＰＦＤＧを「１」インクリメントする。
【０１１０】
その後、同図１４の処理が繰り返し実行され、それに伴なってステップ４０２が肯定判別されると、ＣＰＵ４２はステップ４０６に進み、異常判定カウンタＣＭＰＤＧが「３」以上であるか否かを判別する。そして、ＣＭＰＤＧ＜３であれば、ＣＰＵ４２は、ステップ４０７で最終異常判定フラグＸＤＧを「０」にクリアし、ＣＡＦＤＧ≧３であれば、ステップ４０８で最終異常判定フラグＸＤＧに「１」をセットする。
【０１１１】
その後、ＣＰＵ４２は、ステップ４０９で処理カウンタＣＤＧを「０」にクリアする。また、ＣＰＵ４２は、続くステップ４１０で異常判定カウンタＣＭＰＤＧを「０」にクリアして本ルーチンを終了する。
【０１１２】
一方、図１６は、前記図１５のマップにおける正常・異常領域を学習するためのマップ学習ルーチンを示すフローチャートであり、同ルーチンは所定周期でＣＰＵ４２により実行される。なお、本実施の形態では、図１６のルーチンが判定領域学習手段に相当する。
【０１１３】
図１６において、ＣＰＵ４２は、先ずステップ５０１でマップの正常・異常判定領域を学習するための条件（学習条件）が成立しているか否かを判別する。この学習条件としては、例えば正常又は異常判定される小領域が毎回大きく異なることや、λ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦが共に微小値に維持されていること等が含まれる。かかる学習条件が成立する場合には、適正な異常判定が行われない可能性があり、図１５のマップにおける正常・異常の個々の小領域を学習すべきであるとしてステップ５０１を肯定判別する。
【０１１４】
上記学習条件が成立してステップ５０１が肯定判別された場合、ＣＰＵ４２はステップ５０２に進み、カウンタＣＴを「１」インクリメントする。また、ＣＰＵ４２は、続くステップ５０３でカウンタＣＴの数値が所定の判定値ＫＣＴよりも大きいか否かを判別する。そして、ステップ５０３が肯定判別された場合のみ、ＣＰＵ４２は、ステップ５０４で前記図１５に示す正常・異常判定マップの学習処理を実行する。
【０１１５】
さらに、ＣＰＵ４２は、続くステップ５０５で前記カウンタＣＴを「０」にクリアし、その後本処理を終了する。なお、ステップ５０１，５０３が否定判別された場合には、そのまま本処理を終了し、マップの学習処理を実施しない。
【０１１６】
正常・異常判定マップの学習例を図１７（ａ），（ｂ）に示す。図１７（ａ），（ｂ）において、太線枠内が正常領域を表し、太線枠外が異常領域を表す。このような領域の更新は、１つの小領域毎に行ってもよいし、多数の小領域をまとめて行ってもよい。また、かかる学習時には、正常領域となる小領域の数を不変にしてもよいし（例えば、図１５では１００個）、可変としてもよい。
【０１１７】
本第２の実施の形態によれば、上記第１の実施の形態と同様に本発明の目的を達成することができると共に、既述の効果に加えて以下に示す効果をも得ることができる。
【０１１８】
（イ）即ち、本実施の形態では、異常判定要素（λ積算値Ｔλ，ＦＡＦ積算値ＴＦＡＦ）に対応した正常・異常判定マップを用い、そのマップ上で空燃比フィードバック制御系の異常を判定するようにした。かかる場合、正常・異常判定領域の判断がより一層簡便に実現できる。
【０１１９】
（ロ）また、前記図１５のマップには、λ積算値Ｔλ，ＦＡＦ積算値ＴＦＡＦのそれぞれに応じて複数に均等区分された小領域を多数設け（本実施の形態では、１６×１６＝２５６領域）、個々の小領域について、正常である旨のデータ又は異常であることのデータを記憶しておくようにした。従って、正常・異常判定領域を比較的大領域で設けた場合（例えば、４×４＝１６領域）に比べて、緻密な正常・異常判定を実施することができる。
【０１２０】
（ハ）さらに、本実施の形態では、正常・異常判定マップの正常又は異常データを必要に応じて学習するようにした。その結果、一方（Ａ／Ｆセンサ２６又はＥＣＵ４１のいずれか）の異常の影響から他方にも異常の症状が現れるような事態にも、より正確な異常診断が実施できる。
【０１２１】
なお、本発明は、上記各実施の形態の他に次のように具体化することもできる。
（１）上記各実施の形態では、１２８０ｍｓ間のλ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦを算出し、その算出結果を用いて異常判定を行ったが、λ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦを算出する期間を短くしたり、又は長くしたりしてもよい。例えば、図１８に示すように、λ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦに応じてこれら積算値を積算する期間を変更するようにしてもよい（図では、３２０ｍｓ，６４０ｍｓ，１２８０ｍｓ）。このとき、λ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦが大きい場合ほど機関運転状態が過渡状態であると推測されるため、積算期間を長くするようにしている。
【０１２２】
（２）上記各実施の形態では、異常判定の実行回数を５回とし（図９のルーチン参照）、この５回の異常判定回数内に３回以上、異常の旨が判定されれば最終的に空燃比フィードバック制御系の異常があると判定したが、この異常判定回数を図１９に示すように変更してもよい。図１９では、λ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦに応じて、３回、５回、７回の実行回数が設定されており、Ｔλ及びＴＦＡＦが大きい場合ほど機関運転状態が過渡状態であると推測されるため、実行回数を多くするようにしている。この場合、最終的に空燃比フィードバック制御系の異常であると判定する際のλ異常，ＦＡＦ異常の判定回数（図９のステップ２５６，２６２）は、３回のままでもよいし、変更してもよい。
【０１２３】
（３）上記各実施の形態では、第１，第２の異常判定要素としてλ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦを用いたが、これを変更してもよい。例えば、単にＡ／Ｆセンサ２６により検出された空燃比λと目標空燃比λTGとの偏差を算出すると共に、空燃比補正係数ＦＡＦと当該ＦＡＦの平均値ＦＡＦＡＶとの偏差を算出し、これら空燃比の偏差及びＦＡＦの偏差を第１，第２の異常判定要素とする。そして、上記各異常判定要素に応じて空燃比フィードバック制御系の異常を診断するようにしてもよい。この場合、第１の実施の形態のようにしきい値による異常判定を行ってもよいし、第２の実施の形態のようにマップ上での異常判定を行ってもよい。
【０１２４】
（４）上記各実施の形態では、正常・異常を判定するためのしきい値をλ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦのそれぞれに対して複数設けていたが、このしきい値を１つにしてもよい。また、λ積算値Ｔλ及びＦＡＦ積算値ＴＦＡＦのそれぞれに対して同数のしきい値を設けていたが、各々に異なる数のしきい値を設けるようにしてもよい。
【０１２５】
（５）上記第２の実施の形態において、正常・異常判定マップの領域を区画するためのしきい値の数を変更し、当該区画される領域数を増やしたり、減らしたりすることもできる。例えば領域数を減らせば判定精度は多少ラフなものになるが、メモリ容量を軽減することができる。
【０１２６】
（６）最終異常判定フラグＸＤＧが一旦セットされた後には、それ以降、異常判定処理を実施しないようにし、ＣＰＵ４２の演算負荷を軽減させるようにしてもよい。この場合、例えば図６の異常判定条件に最終異常判定フラグＸＤＧがセットされていないことを確認する条件を追加する。そして、最終異常判定フラグＸＤＧがセットされていれば、以降の処理をバイパスしてそのまま本ルーチンを終了する。
【０１２７】
（７）上記実施の形態では、現代制御理論を用いて空燃比フィードバック制御を実現した空燃比制御システムに本発明のセンサ異常診断処理を具体化したが、当然ながら他の制御（例えば、ＰＩＤ制御等）によるシステムで本発明を具体化してもよい。
【図面の簡単な説明】
【図１】発明の実施の形態における内燃機関の空燃比制御装置の全体構成図。
【図２】Ａ／Ｆセンサの詳細な構成を示す断面図。
【図３】Ａ／Ｆセンサの電圧−電流特性を示す図。
【図４】空燃比フィードバック制御システムの原理を説明するためのブロック図。
【図５】燃料噴射量算出ルーチンを示すフローチャート。
【図６】空燃比フィードバック制御系の異常を判定するためのメインルーチンを示すフローチャート。
【図７】λ積算値算出のサブルーチンを示すフローチャート。
【図８】ＦＡＦ積算値算出のサブルーチンを示すフローチャート。
【図９】異常判定サブルーチンを示すフローチャート。
【図１０】目標空燃比λTGに対する空燃比λの変化状態、及び空燃比補正係数平均値ＦＡＦＡＶに対する空燃比補正係数ＦＡＦの変化状態を示すタイムチャート。
【図１１】しきい値Ａ，Ｂ，Ｃ，Ｄにより区画されたλ積算値及びＦＡＦ積算値の正常・異常判定領域を示す図。
【図１２】空燃比フィードバック制御系の異常判定動作をより具体的に示すタイムチャート。
【図１３】しきい値学習ルーチンを示すフローチャート。
【図１４】第２の実施の形態における異常判定サブルーチンを示すフローチャート。
【図１５】λ積算値及びＦＡＦ積算値に応じて小領域に区分された正常・異常判定マップ。
【図１６】判定領域学習ルーチンを示すフローチャート。
【図１７】図１６のルーチンにより学習された結果を示す正常・異常判定マップ。
【図１８】λ積算値及びＦＡＦ積算値に応じてＴλ，ＴＦＡＦの積算時間を設定するためのマップ。
【図１９】λ積算値及びＦＡＦ積算値に応じて異常判定回数を設定するためのマップ。
【符号の説明】
１…内燃機関、２６…空燃比センサとしてのＡ／Ｆセンサ、４２…空燃比補正係数設定手段，空燃比フィードバック制御手段，第１の要素演算手段，第２の要素演算手段，異常診断手段，判定領域学習手段としてのＣＰＵ、４５…メモリとしてのバックアップＲＡＭ。
【図１】
0003975491.tif 000010
【図２】
0003975491.tif 000011
【図３】
0003975491.tif 000012
【図４】
0003975491.tif 000013
【図５】
0003975491.tif 000014
【図６】
0003975491.tif 000015
【図７】
0003975491.tif 000016
【図８】
0003975491.tif 000017
【図９】
0003975491.tif 000018
【図１０】
0003975491.tif 000019
【図１１】
0003975491.tif 000020
【図１２】
0003975491.tif 000021
【図１３】
0003975491.tif 000022
【図１４】
0003975491.tif 000023
【図１５】
0003975491.tif 000024
【図１６】
0003975491.tif 000025
【図１７】
0003975491.tif 000026
【図１８】
0003975491.tif 000027
【図１９】
0003975491.tif 000028