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