(57)【要約】      （修正有）【課題】空燃比センサの異常判定装置であって、吸入空気流量に関わらずセンサ出力切替わり時点をより精度良く特定することが可能な、異常判定装置を提供する。【解決手段】機関の空燃比をリッチ空燃比とリーン空燃比との間でステップ的に変化させるアクティブ空燃比制御の実行中に空燃比センサの出力の切替遅れ時間に相当する無駄時間を取得する。その際、判定装置は、空燃比センサの検出値を空燃比に変換した検出空燃比を所定の一定時間が経過する毎に分散計算用データとして取得し、複数の分散計算用データの分散を求める。そして、分散が所定の閾値未満から同閾値以上へと変化した時点をセンサ出力切替わり時点として特定し、このセンサ出力切替わり時間から無駄時間を取得する。判定装置は、上記分散を求める際、前記一定時間を機関に吸入される空気の流量が小さいほど長くする。【選択図】図１
2018003702.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設され且つ配設された箇所を流れる当該機関の排ガスの空燃比に応じた値を出力する空燃比センサの異常判定装置であって、
前記機関に供給される混合気の空燃比を所定のリッチ空燃比と所定のリーン空燃比との間でステップ的に変化させる機関空燃比変更手段と、
前記空燃比センサが出力する値であるセンサ値又は前記センサ値を空燃比に変換した検出空燃比を所定の一定時間が経過する毎に分散計算用データとして取得し、前記分散計算用データのうち互いに時間的に連続する複数のデータに基いて当該複数のデータの分散を算出する分散算出手段と、
前記分散が所定の閾値未満から同閾値以上へと変化した時点をセンサ出力切替わり時点として特定し、前記機関に供給される混合気の空燃比が前記リッチ空燃比と前記リーン空燃比との間でステップ的に変化させられた時点である制御空燃比切替え時点から前記センサ出力切替わり時点までの時間である無駄時間を取得し、前記無駄時間に基く時間が所定閾値時間以上である場合に前記空燃比センサの出力反転遅れ異常が発生していると判定する異常判定手段と、
を備える空燃比センサの異常判定装置において、
前記分散算出手段は、
前記一定時間を前記機関に吸入される空気の流量が小さいほど長くするように構成されたことを特徴とする、
空燃比センサの異常判定装置。
【請求項２】
請求項１に記載の空燃比センサの異常判定装置において、
前記異常判定手段は、
前記無駄時間から、前記機関に吸入される空気の流量に基いて変化する基準無駄時間を減じることにより得られる時間差分が所定値以上であるか否かを判定し、前記時間差分が前記所定値以上であると判定した場合に、前記無駄時間が前記所定閾値時間以上であると判定するように構成された、
空燃比センサの異常判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気通路に配設され且つ配設された箇所を流れる当該機関の排ガスの空燃比に応じた値を出力する空燃比センサの異常判定装置に関する。
【背景技術】
【０００２】
内燃機関の排気通路に配設された空燃比センサは、例えば、その機関に供給される混合気の空燃比（以下、「機関の空燃比」又は「制御空燃比」と称呼する場合がある。）がリッチ空燃比（理論空燃比よりも小さい空燃比）からリーン空燃比（理論空燃比よりも大きい空燃比）へと変化してから、又は、リーン空燃比からリッチ空燃比へと変化してから、無駄時間と呼ばれる時間だけ遅れて変化後の制御空燃比に応じた値を出力するように変化し始める（図３の時間Ｌｓを参照。）。この無駄時間が想定される時間よりも大幅に長いと、空燃比センサが出力する値（以下、「空燃比センサのセンサ値」又は「センサ値」と称呼する。）を用いた空燃比のフィードバック制御を適切に行うことが難しい。
【０００３】
そこで、従来から知られる「空燃比センサの異常判定装置」の一つ（以下、「従来装置」と称呼する。）は、
（１）空燃比センサのセンサ値又はそのセンサ値を空燃比に変換した検出空燃比の分散を求め、
（２）この分散に基いて「変化後の制御空燃比に応じた値を出力するようにセンサ値が変化し始めた時点（以下、「センサ出力切替わり時点」とも称呼する。）」を特定し、
（３）制御空燃比の切替え時点からセンサ出力切替わり時点までを無駄時間として取得し、
（４）この無駄時間を利用して空燃比センサの異常判定を行ったり、空燃比フィードバック制御のゲインを変更したりしている（例えば、特許文献１を参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２６７８８３号公報（段落０００４、段落００８６乃至段落００９０及び図１２等を参照。）
【発明の概要】
【０００５】
従来装置がセンサ出力切替わり時点を特定するために分散を利用するのは、空燃比センサのセンサ値にノイズが重畳した場合であっても、センサ出力切替わり時点をより精度良く特定するためである。
【０００６】
しかしながら、内燃機関に供給される空気の流量（以下、単に「吸入空気流量」と称呼する場合がある。）が小さい場合、吸入空気流量が大きい場合に比べて、制御空燃比の切替え時点以降における空燃比センサのセンサ値の単位時間に対する変化量（即ち、変化速度）は小さくなる。それ故、分散の単位時間に対する変化量も小さいので、分散が閾値よりも大きくなった時点をセンサ出力切替わり時点として特定しようとする場合、その閾値を小さい値にしなくてはならない。従って、仮に、空燃比センサのセンサ値にノイズが重畳すると、分散がその小さい閾値を超えるので、センサ出力切替わり時点として正しくない時点をセンサ出力切替わり時点として特定してしまう場合がある。
【０００７】
本発明は上述した課題に対処するためになされたものである。即ち、本発明の目的の一つは、空燃比センサのセンサ値の分散又は空燃比センサのセンサ値を空燃比に変換した検出空燃比の分散を利用して、センサ出力切替わり時点を特定する、空燃比センサの異常判定装置であって、吸入空気流量に関わらずセンサ出力切替わり時点をより精度良く特定することが可能な、異常判定装置を提供することにある。
【０００８】
本発明の空燃比センサの異常判定装置（以下、「本発明装置」とも称呼する。）は、
内燃機関（１０）の排気通路に配設され且つ配設された箇所を流れる当該機関の排ガスの空燃比に応じた値を出力する空燃比センサ（５６）の異常判定装置であって、
前記機関に供給される混合気の空燃比を所定のリッチ空燃比と所定のリーン空燃比との間でステップ的に変化させる機関空燃比変更手段（ステップ１０４０）と、
前記空燃比センサが出力する値であるセンサ値（Vabyfs）又は前記センサ値を空燃比に変換した検出空燃比（ＡＦＳ）を所定の一定時間が経過する毎に分散計算用データとして取得し、前記分散計算用データのうち互いに時間的に連続する複数のデータに基いて当該複数のデータの分散（σ４、σ８、σ１２、σ１６）を算出する分散算出手段（ステップ６１０、ステップ７１０、ステップ８１０及びステップ９１０）と、
前記分散が所定の閾値未満から同閾値以上へと変化した時点をセンサ出力切替わり時点として特定し（ステップ６２５及びステップ６３０、ステップ７２５及びステップ７３０、（ステップ８２５及びステップ８３０、ステップ９２５及びステップ９３０）、前記機関に供給される混合気の空燃比が前記リッチ空燃比と前記リーン空燃比との間でステップ的に変化させられた時点である制御空燃比切替え時点（例えば、ｔＲＬ）から前記センサ出力切替わり時点までの時間である無駄時間を取得し（ステップ６３５、ステップ７３５、ステップ８３５、ステップ９３５）、前記無駄時間に基く時間（例えば、無駄時間そのもの、又は、複数の無駄時間の平均値）が所定閾値時間以上である場合に前記空燃比センサの出力反転遅れ異常が発生していると判定する異常判定手段（ステップ６４０乃至ステップ６５５、ステップ７４０乃至ステップ７５５、ステップ８４０乃至ステップ８５５、ステップ９４０乃至ステップ９５５）と、
を備える空燃比センサの異常判定装置（７０）において、
前記分散算出手段は、
前記一定時間を前記機関に吸入される空気の流量が小さいほど長くするように構成されている（ステップ６１５、ステップ７１５、ステップ８１５、ステップ９１５）。
【０００９】
この構成によれば、分散計算用データのサンプリング周期（前記一定時間）が機関に吸入される空気の流量が小さいほど長くなる。従って、吸入空気流量が小さいときの変化速度が小さい「空燃比センサのセンサ値及び検出空燃比」の見かけの変化速度が大きくなるので、センサ出力切替わり時点における分散の変化速度も大きくなる。よって、吸入空気流量が小さく且つ空燃比センサのセンサ値にノイズが重畳するような場合であっても、センサ出力切替わり時点を精度良く特定することができる。その結果、出力反転遅れ異常が発生していない空燃比センサを出力反転遅れ異常が発生している空燃比センサであると誤って判定する可能性を低減することができる。
【００１０】
本発明装置の一態様において、
前記異常判定手段は、
前記無駄時間から、前記機関に吸入される空気の流量に基いて変化する基準無駄時間を減じることにより得られる時間差分が所定値以上であるか否かを判定し、前記時間差分が前記所定値以上であると判定した場合に、前記無駄時間が前記所定閾値時間以上であると判定するように構成される（ステップ６４０乃至ステップ６５５、ステップ７４０乃至ステップ７５５、ステップ８４０乃至ステップ８５５、ステップ９４０乃至ステップ９５５）。
【００１１】
出力反転遅れ異常が発生していない正常な空燃比センサであっても、その検出値には無駄時間が不可避的に含まれ、且つ、その無駄時間は吸入空気流量が大きいほど小さくなる。正常な空燃比センサが呈する無駄時間は基準無駄時間と称呼される。従って、この基準無駄時間を「取得した無駄時間」から差し引くことにより得られる時間差分は、異常判定しようとしている空燃比センサの出力の反転遅れ時間を吸入空気流量に依らず精度良く表す値となる。よって、上記態様のように、この時間差分が所定値以上であるか否かを判定することにより、出力反転遅れ異常が発生しているか否かを精度良く判定することができる。
【００１２】
上記説明においては、本発明の理解を助けるために、後述する実施形態に対応する発明の構成に対し、その実施形態で用いた名称及び／又は符号を括弧書きで添えている。しかしながら、本発明の各構成要素は、前記符号によって規定される実施形態に限定されるものではない。本発明の他の目的、他の特徴及び付随する利点は、以下の図面を参照しつつ記述される本発明の実施形態についての説明から容易に理解されるであろう。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施形態に係る「空燃比センサの異常判定装置」が適用される内燃機関の概略図である。
【図２】図２は、排ガスの空燃比と空燃比センサの出力値との関係を示したグラフである。
【図３】図３は、アクティブ空燃比制御中における制御空燃比及び検出空燃比を示したタイムチャートである。
【図４】図４は、検出空燃比と分散とを例示したタイムチャートである。
【図５】図５は、種々の分散を説明するための図である。
【図６】図６は、図１に示したＣＰＵが実行するルーチンを示したフローチャートである。
【図７】図７は、図１に示したＣＰＵが実行するルーチンを示したフローチャートである。
【図８】図８は、図１に示したＣＰＵが実行するルーチンを示したフローチャートである。
【図９】図９は、図１に示したＣＰＵが実行するルーチンを示したフローチャートである。
【図１０】図１０は、図１に示したＣＰＵが実行するルーチンを示したフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態に係る空燃比センサの異常判定装置（以下、単に「本判定装置」とも称呼する。）について図面を参照しながら説明する。
【００１５】
（構成）
図１は、本判定装置が適用される内燃機関１０の概略構成図である。機関１０は、４サイクル・火花点火式・多気筒（直列４気筒）・燃料噴射式機関であり、機関本体部２０と、吸気系統３０と、排気系統４０と、を含む。
【００１６】
機関本体部２０は、シリンダブロック部及びシリンダヘッド部を含む。機関本体部２０は、複数の気筒（燃焼室）２１を備えている。各気筒は、図示しない「吸気ポート及び排気ポート」と連通している。吸気ポートと燃焼室２１との連通部は図示しない吸気弁により開閉される。排気ポートと燃焼室２１との連通部は図示しない排気弁により開閉される。各燃焼室２１には図示しない点火プラグが配設されている。
【００１７】
吸気系統３０は、インテークマニホールド３１、吸気管３２、複数の燃料噴射弁３３、及び、スロットル弁３４を備えている。
【００１８】
インテークマニホールド３１は、複数の枝部３１ａとサージタンク３１ｂとを備えている。複数の枝部３１ａのそれぞれの一端は、複数の吸気ポートのそれぞれに接続されている。複数の枝部３１ａの他端はサージタンク３１ｂに接続されている。
【００１９】
吸気管３２の一端はサージタンク３１ｂに接続されている。吸気管３２の他端には図示しないエアフィルタが配設されている。
【００２０】
燃料噴射弁３３は、一つの気筒（燃焼室）２１に対して一つずつ配設されている。燃料噴射弁３３は吸気ポートに設けられている。燃料噴射弁３３は、噴射指示信号に応答し、その噴射指示信号に含まれる指示燃料噴射量の燃料を吸気ポート内（従って、燃料噴射弁３３に対応する気筒）に噴射するようになっている。
【００２１】
スロットル弁３４は、吸気管３２内に回動可能に配設されている。スロットル弁３４は、吸気通路の開口断面積を可変とするようになっている。スロットル弁３４は、図示しないスロットル弁アクチュエータにより吸気管３２内で回転駆動されるようになっている。
【００２２】
排気系統４０は、エキゾーストマニホールド４１、エキゾーストパイプ４２、エキゾーストパイプ４２に配設された上流側触媒４３、及び、上流側触媒４３よりも下流においてエキゾーストパイプ４２に配設された「図示しない下流側触媒」を備えている。
【００２３】
エキゾーストマニホールド４１は、複数の枝部４１ａと集合部４１ｂとを備えている。複数の枝部４１ａのそれぞれの一端は、複数の排気ポートのそれぞれに接続されている。複数の枝部４１ａのそれぞれの他端は集合部４１ｂに集合している。この集合部４１ｂは、複数（２以上であり、本例では４つ）の気筒から排出された排ガスが集合する部分であるから、排気集合部ＨＫとも称呼される。
【００２４】
エキゾーストパイプ４２は集合部４１ｂに接続されている。排気ポート、エキゾーストマニホールド４１及びエキゾーストパイプ４２は、排気通路を構成している。
【００２５】
上流側触媒４３及び下流側触媒のそれぞれは、所謂、白金、ロジウム及びパラジウム等の貴金属（触媒物質）からなる活性成分を担持する三元触媒装置（排気浄化用の触媒）である。
【００２６】
本判定装置は、熱線式エアフローメータ５１、スロットルポジションセンサ５２、水温センサ５３、クランクポジションセンサ５４、インテークカムポジションセンサ５５、上流側空燃比センサ５６、下流側空燃比センサ５７及びアクセル開度センサ５８を備えている。
【００２７】
エアフローメータ５１は、吸気管３２内を流れる吸入空気の質量流量（吸入空気流量）Ｇａに応じた信号を出力するようになっている。即ち、吸入空気流量Ｇａは、単位時間あたりに機関１０に吸入される吸入空気量を表す。
スロットルポジションセンサ５２は、スロットル弁３４の開度（スロットル弁開度）を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
水温センサ５３は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。
【００２８】
クランクポジションセンサ５４は、クランク軸が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、後述する電気制御装置７０によって機関回転速度ＮＥに変換される。
【００２９】
インテークカムポジションセンサ５５は、インテークカムシャフトが所定角度から９０度、次いで９０度、更に１８０度回転する毎に一つのパルスを出力するようになっている。後述する電気制御装置７０は、クランクポジションセンサ５４及びインテークカムポジションセンサ５５からの信号に基づいて、基準気筒（例えば第１気筒）の圧縮上死点を基準とした絶対クランク角度ＣＡを取得するようになっている。
【００３０】
上流側空燃比センサ５６は、エキゾーストマニホールド４１の集合部４１ｂ（排気集合部ＨＫ）と上流側触媒４３との間の位置において「エキゾーストマニホールド４１及びエキゾーストパイプ４２の何れか」に配設されている。上流側空燃比センサ５６は、本発明における空燃比センサに相当する。
【００３１】
上流側空燃比センサ５６は、例えば、特開平１１−７２４７３号公報、特開２０００−６５７８２号公報及び特開２００４−６９５４７号公報等に開示された「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
【００３２】
上流側空燃比センサ５６は、図２に示したように、「酸素分圧（酸素濃度、酸素量）及び未燃物の分圧（未燃物の濃度、未燃物量）」に応じた値を出力する。換言すると、上流側空燃比センサ５６が出力する値であるセンサ値Vabyfsは、上流側空燃比センサ５６に到達している排ガスの空燃比がリーン（大きい）ほど大きくなる。
【００３３】
後述する電気制御装置７０は、図２に示した空燃比変換テーブル（マップ）MapＡＦＳ(Vabyfs)を記憶している。電気制御装置７０は、センサ値Vabyfsを空燃比変換テーブルMapＡＦＳ(Vabyfs)に適用することにより、実際の上流側空燃比abyfsを検出する。このように検出される空燃比は、本明細書において、便宜上「検出空燃比ＡＦＳ」と称呼される。
【００３４】
再び、図１を参照すると、下流側空燃比センサ５７は、エキゾーストパイプ４２内に配設されている。下流側空燃比センサ５７の配設位置は、上流側触媒４３よりも下流側であり、且つ、下流側触媒よりも上流側である。下流側空燃比センサ５７は、周知の起電力式の酸素濃度センサである。
【００３５】
図１に示したアクセル開度センサ５８は、運転者によって操作されるアクセルペダルＡＰの操作量Accp（アクセルペダル操作量、アクセルペダルＡＰの開度）を表す信号を出力するようになっている。アクセルペダル操作量Accpは、アクセルペダルＡＰの操作量が大きくなるとともに大きくなる。
【００３６】
電気制御装置７０はＥＣＵ７０とも称呼される。ＥＣＵは、エレクトリックコントロールユニットの略称であり、ＣＰＵ、ＲＯＭ、ＲＡＭ、バックアップＲＡＭ、及び、ＡＤコンバータを含むインターフェース等からなる周知のマイクロコンピュータを主要構成部品として有する電子制御回路である。ＣＰＵは、メモリ（ＲＯＭ）に格納されたインストラクション（ルーチン、プログラム）を実行することにより後述する各種機能を実現する。
【００３７】
バックアップＲＡＭは、機関１０を搭載した車両の図示しないイグニッション・キー・スイッチの位置（オフ位置、始動位置及びオン位置等の何れか）に関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップＲＡＭは、バッテリから電力の供給を受けている場合、ＣＰＵの指示に応じてデータを格納する（データが書き込まれる）とともに、そのデータを読み出し可能となるように保持（記憶）する。従って、バックアップＲＡＭは、機関１０の運転停止中においてもデータを保持することができる。
【００３８】
電気制御装置７０は、上述したセンサ等と接続され、ＣＰＵにそれらのセンサからの信号を供給するようになっている。更に、電気制御装置７０は、ＣＰＵの指示に応じて、各気筒に対応して設けられた点火プラグ（実際にはイグナイタ）、各気筒に対応して設けられた燃料噴射弁３３、及び、スロットル弁アクチュエータ等に駆動信号（指示信号）を送出するようになっている。
【００３９】
なお、電気制御装置７０は、取得されたアクセルペダルの操作量Accpが大きくなるほどスロットル弁開度ＴＡが大きくなるように、スロットル弁アクチュエータに指示信号を送出するようになっている。
【００４０】
（空燃比センサの異常判定方法の概要）
次に、本判定装置が採用した「空燃比センサの異常判定方法」について説明する。
【００４１】
周知のように、空燃比センサ（本例において、上流側空燃比センサ５６）が出力する値であるセンサ値Vabyfsは、前述したように検出空燃比ＡＦＳに変換され、機関１０に供給される混合気の空燃比（以下、「機関の空燃比」と称呼する。）のフィードバック制御に用いられる。従って、空燃比センサの出力特性は正常であることが求められる。換言すると、空燃比センサの出力特性が異常になった場合、その旨を検出して警告ランプを点灯したり、検出空燃比ＡＦＳを用いないで機関の空燃比を制御したりする必要が生じる。
【００４２】
空燃比センサ５６の出力特性を表すパラメータの一つとして「無駄時間」という時間が知られている。無駄時間は、図３に示したように、制御空燃比（機関の空燃比）がリッチ空燃比からリーン空燃比へとステップ的に変化したとき、空燃比センサ５６のセンサ値Vabyfs（従って、検出空燃比ＡＦＳ）がリッチ空燃比を示す値からリーン空燃比を示す値へと変化し始めるまでの遅れ時間のことである。同様に、無駄時間は、制御空燃比がリーン空燃比からリッチへとステップ的に変化したとき、空燃比センサ５６のセンサ値Vabyfs（従って、検出空燃比ＡＦＳ）がリーン空燃比を示す値からリッチ空燃比を示す値へと変化し始めるまでの遅れ時間でもある。
【００４３】
より具体的に述べると、図３の（Ａ）に示したように、リッチ／リーン切替え時刻ｔＲＬにて制御空燃比がリッチ空燃比からリーン空燃比に切り替えられた場合、図３の実線Ｃ１に示したように、時刻ｔＲＬよりも後の時刻ｔ１にて、空燃比センサ５６がその排ガスの空燃比に反応した値を示し始める。この時刻ｔ１に対応する時点は、便宜上「センサ出力切替わり時点」とも称呼される。更に、リッチ／リーン切替え時刻ｔＲＬは、便宜上「制御空燃比切替え時点」とも称呼される。無駄時間は、この制御空燃比切替え時点（ｔＲＬ）からセンサ出力切替わり時点（ｔ１）までの時間である。
【００４４】
無駄時間は、不可避な時間である。何故なら、空燃比がリーン空燃比からリッチ空燃比へと変化した混合気が燃焼して生じた排ガスが燃焼室２１から排出されて空燃比センサ５６に到達するまでに所定の時間を要し、且つ、空燃比センサ５６の素子が「空燃比がリーン空燃比からリッチ空燃比へと変化した排ガス」に反応し始めるまでにも所定の時間が必要だからである。但し、これらの時間は、何れも吸入空気流量Ｇａが大きいほど短くなる。従って、空燃比センサ５６が正常であれば、無駄時間は吸入空気流量Ｇａに基いて予め設定される基準無駄時間Ｌｓと略等しい。
【００４５】
これに対し、空燃比センサ５６が「出力反転遅れ異常状態」である場合、図３の破線Ｃ２に示したように、無駄時間は「基準無駄時間Ｌｓよりも大幅に長い時間Ｌｍ」となる。従って、本判定装置は無駄時間を取得し、その無駄時間から基準無駄時間Ｌｓを減じた時間Ｌdetが所定値以上である場合、空燃比センサ５６が「出力反転遅れ異常状態」であると判定する。時間Ｌdetは、便宜上「判定用無駄時間遅れ」とも称呼される。
【００４６】
ところで、無駄時間を精度良く取得するためには、センサ出力切替わり時点を出来るだけ正確に特定する必要がある。しかしながら、例えば、空燃比センサのセンサ値Vabyfsを一定時間が経過する毎に取得し、センサ値Vabyfsに基いて検出空燃比ＡＦＳを取得し、今回取得した値ＡＦＳnowから一定時間前に取得した値ＡＦＳoldを減じた差Δの符号が負から正又は正から負へと変化した時点をセンサ出力切替わり時点とすると、誤った時点をセンサ出力切替わり時点として特定してしまう可能性が高い。これは、空燃比センサのセンサ値Vabyfsにはノイズが頻繁に重畳するからである。
【００４７】
そこで、本判定装置は、図４に示したように、
（１）空燃比センサ５６のセンサ値Vabyfsを一定時間ｔｓが経過する毎に取得し、
（２）そのセンサ値Vabyfsに基いて検出空燃比ＡＦＳを取得し、
（３）その検出空燃比ＡＦＳの分散σを下記の（１）式に基いて一定時間ｔｓが経過する毎に計算し、
（４）分散σが所定の閾値σｔｈ未満から閾値σｔｈ以上へと変化した時点をセンサ出力切替わり時点として特定する。
【数１】
2018003702.tif 000003
【００４８】
上記（１）式において、値Ｍは１以上の整数であり、例えば、５である。ＡＦＳ（ｔ−ｉ）は現時点からｉ回前のサンプリングタイミングにて取得された値ＡＦＳであり、ＡＦＳave（ｔ）は現時点を含む過去Ｍ回のサンプリングタイミングにて取得された値ＡＦＳの平均値である。
【００４９】
しかしながら、吸入空気流量が小さい場合、吸入空気流量が大きい場合に比べて、空燃比センサ５６のセンサ値Vabyfsの変化速度は小さくなる。それ故、吸入空気流量が小さいほど、制御空燃比切替え時点後に発生する分散σの変化速度も小さくなる。従って、分散が閾値σｔｈよりも小さい状態から閾値σｔｈよりも大きくなった時点をセンサ出力切替わり時点として特定しようとする場合、吸入空気流量が小さいときには閾値σｔｈを小さい値にしなくてはならない。このため、空燃比センサ５６のセンサ値Vabyfsにノイズが重畳すると、分散σがそのノイズに起因して閾値σｔｈを超える事態が発生する。その結果、センサ出力切替わり時点として正しくない時点をセンサ出力切替わり時点として特定してしまう場合がある。
【００５０】
そこで、本判定装置は、図５に黒丸により示したように、分散σに使用するデータである分散計算用データ（空燃比センサ５６のセンサ値Vabyfs及び検出空燃比ＡＦＳ）のサンプリング時間を吸入空気流量Ｇａが小さいほど見かけ上長くする。より具体的に述べると、本判定装置は、一定のサンプリング時間ｔｓ（例えば、４ｍｓ）が経過する毎に空燃比センサ５６のセンサ値Vabyfsを取得し且つそのセンサ値Vabyfsを図２に示したテーブルを用いて空燃比に変換することによって検出空燃比ＡＦＳを得る。
【００５１】
そして、本判定装置は、吸入空気流量Ｇａが非常に大きい場合（即ち、Ｇａ＝Ｇａ４）、図５の（Ｂ）に黒丸により示したように、サンプリング時間ｔｓの経過毎に得られた検出空燃比ＡＦＳに基いて分散σを計算する。この分散σはサンプリング時間ｔｓが４ｍｓであるので、便宜上、分散σ４と称呼される。本判定装置は、吸入空気流量Ｇａが非常に大きい場合、分散σ４が閾値σｔｈより小さい値から大きい値へと変化した時点を「センサ出力値切替わり時点」として特定する。
【００５２】
本判定装置は、吸入空気流量Ｇａが比較的大きい場合（即ち、Ｇａ＝Ｇａ３＜Ｇａ４）、図５の（Ｃ）に黒丸により示したように、サンプリング時間ｔｓの２倍の時間２・ｔｓの経過毎に得られた検出空燃比ＡＦＳに基いて分散σを計算する。この分散σは実質的なサンプリング時間が８ｍｓと見做せるので、便宜上、分散σ８と称呼される。本判定装置は、吸入空気流量Ｇａが比較的大きい場合、分散σ８が閾値σｔｈより小さい値から大きい値へと変化した時点を「センサ出力値切替わり時点」として特定する。
【００５３】
本判定装置は、吸入空気流量Ｇａが比較的小さい場合（即ち、Ｇａ＝Ｇａ２＜Ｇａ３＜Ｇａ４）、図５の（Ｄ）に黒丸により示したように、サンプリング時間ｔｓの３倍の時間３・ｔｓの経過毎に得られた検出空燃比ＡＦＳに基いて分散σを計算する。この分散σは実質的なサンプリング時間が１２ｍｓと見做せるので、便宜上、分散σ１２と称呼される。本判定装置は、吸入空気流量Ｇａが比較的小さい場合、分散σ１２が閾値σｔｈより小さい値から大きい値へと変化した時点を「センサ出力値切替わり時点」として特定する。
【００５４】
更に、本判定装置は、吸入空気流量Ｇａが非常に小さい場合（即ち、Ｇａ＝Ｇａ１＜Ｇａ２＜Ｇａ３＜Ｇａ４）、図５の（Ｅ）に黒丸により示したように、サンプリング時間ｔｓの４倍の時間４・ｔｓの経過毎に得られた検出空燃比ＡＦＳに基いて分散σを計算する。この分散σは実質的なサンプリング時間が１６ｍｓと見做せるので、便宜上、分散σ１６と称呼される。本判定装置は、吸入空気流量Ｇａが非常に小さい場合、分散σ１６が閾値σｔｈより小さい値から大きい値へと変化した時点を「センサ出力値切替わり時点」として特定する。
【００５５】
これにより、吸入空気流量が小さい場合の検出空燃比ＡＦＳ（又は空燃比センサ５６のセンサ値Vabyfs）の見かけ上（データ処理上）の変化速度が大きくなり、吸入空気流量が大きい場合の検出空燃比ＡＦＳ（又は空燃比センサのセンサ値Vabyfs）の変化速度に近づく。その結果、吸入空気流量が小さい場合、センサ出力切替わり時点を特定する際に使用する閾値σｔｈを小さくする必要性がないので、空燃比センサ５６のセンサ値Vabyfsにノイズが重畳した場合であっても、センサ出力切替わり時点を精度良く特定することができる。
【００５６】
（具体的作動）
電気制御装置７０のＣＰＵは、所定時間（４ｍｓ）が経過する毎に図６にフローチャートにより示した「４ｍｓルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図６のステップ６００から処理を開始してステップ６０５に進み、フラグＸactiveの値が「１」であるか否かを判定する。
【００５７】
フラグＸactiveの値は、機関１０を塔載した車両の図示しないイグニッション・キー・スイッチがオフ位置からオン位置へと変更された際にＣＰＵにより実行されるイニシャルルーチンにおいて「０」に設定されるようになっている。更に、フラグＸactiveの値は、空燃比センサ５６の異常判定を実行する条件（空燃比センサ異常判定実行条件）が成立したときに「１」に設定され（後述の図１０のステップ１０１０及びステップ１０２０を参照。）、その値が「１」に設定されてから十分な時間が経過したときに「０」に設定される（後述の図１０のステップ１０５０及びステップ１０６０を参照。）。更に、フラグＸactiveの値は、後述するステップ６６０等の処理によっても「０」に設定される。
【００５８】
空燃比センサ５６の異常判定を実行する条件は、例えば、機関１０の始動後において一度も空燃比センサ５６の異常判定が実行されておらず、冷却水温ＴＨＷが閾値水温以上であり、且つ、機関回転速度ＮＥが所定範囲内にあり、且つ、スロットル弁開度ＴＡが所定範囲にある場合に成立する。
【００５９】
ところで、ＣＰＵは、後述する図１０に示したルーチンを実行することにより、フラグＸactiveの値が「１」であるとき、所謂「アクティブ空燃比制御（強制空燃比制御）」を行う。より具体的に述べると、ＣＰＵは、アクティブ空燃比制御において、図３の（Ａ）に示したように、制御空燃比（機関の空燃比）を所定のリッチ空燃比に一定時間ＴＲだけ維持し、その後、制御空燃比を所定のリーン空燃比に一定時間ＴＬだけ維持する空燃比制御を、繰り返し行う。フラグＸactiveの値が「０」であるとき、ＣＰＵはアクティブ空燃比制御を停止して通常の空燃比制御を行う。
【００６０】
フラグＸactiveの値が「０」であると、ＣＰＵはステップ６０５にて「Ｎｏ」と判定し、ステップ６９５に直接進んで本ルーチンを一旦終了する。これに対し、フラグＡｃｔｉｖｅの値が「１」であると、ＣＰＵはステップ６０５にて「Ｙｅｓ」と判定してステップ６１０に進み、上述した分散σ４を計算する。なお、ステップ６１０内に記載した式のうち、値Ｍは「５」（又は、１以上の整数）であり、ＡＦＳ４（ｔ−ｉ）は見かけのサンプリング時間をｔｓ（＝４ｍｓ）とした場合の現時点からｉ回前のサンプリングタイミングにて取得された検出空燃比ＡＦＳであり、ＡＦＳave（ｔ）は現時点を含む過去Ｍ回のサンプリングタイミングにて取得された値ＡＦＳ４の平均値である。
【００６１】
次に、ＣＰＵはステップ６１５に進み、現時点の吸入空気流量Ｇａが分散σ４を使用すべき吸入空気流量であるか否かを判定する。より具体的に述べると、ＣＰＵは、現時点の吸入空気流量Ｇａが第１閾値流量ＧＬ以上であるか否かを判定する。第１閾値流量ＧＬは、機関１０の負荷が比較的大きい場合の吸入空気流量に対応するように設定されている。現時点の吸入空気流量Ｇａが第１閾値流量ＧＬ以上でない場合、ＣＰＵはステップ６１５にて「Ｎｏ」と判定してステップ６０８に進み、ステップ６１０にて計算した分散σ４を「分散σ４の前回値」として記憶する。その後、ＣＰＵはステップ６９５に直接進んで本ルーチンを一旦終了する。
【００６２】
現時点の吸入空気流量Ｇａが第１閾値流量ＧＬ以上である場合、ＣＰＵはステップ６１５にて「Ｙｅｓ」と判定してステップ６２０に進み、ステップ６１０にて算出した分散σ４を「分散σ４の今回値」として記憶する。次に、ＣＰＵはステップ６２５に進み、分散σ４の前回値が閾値σｔｈよりも小さいか否かを判定する。分散σ４の前回値が閾値σｔｈ以上である大きい場合、ＣＰＵはステップ６２５にて「Ｎｏ」と判定し、ステップ６０８を経由してステップ６９５に進み、本ルーチンを一旦終了する。
【００６３】
これに対し、分散σ４の前回値が閾値σｔｈよりも小さい場合、ＣＰＵはステップ６２５にて「Ｙｅｓ」と判定してステップ６３０に進み、分散σ４の今回値が閾値σｔｈ以上であるか否かを判定する。分散σ４の今回値が閾値σｔｈよりも小さい場合、ＣＰＵはステップ６３０にて「Ｎｏ」と判定し、ステップ６０８を経由してステップ６９５に進み、本ルーチンを一旦終了する。
【００６４】
これに対し、分散σ４の今回値が閾値σｔｈ以上である場合、ＣＰＵはステップ６３０にて「Ｙｅｓ」と判定してステップ６３２に進み、制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えであったか否かを判定する。制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えでなかった場合（即ち、制御空燃比の直前の切替えがリーン空燃比からリッチ空燃比への切替えであった場合）、ＣＰＵはステップ６３２にて「Ｎｏ」と判定し、ステップ６０８を経由してステップ６９５に進み、本ルーチンを一旦終了する。
【００６５】
これに対し、制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えであった場合、ＣＰＵステップ６３２にて「Ｙｅｓ」と判定し、以下に述べるステップ６３５乃至ステップ６４５の処理を順に行い、ステップ６５０に進む。
【００６６】
ステップ６３５：ＣＰＵは、現在の時刻ｔnowから直前のリッチ／リーン切替え時刻ｔＲＬを差し引くことにより無駄時間Ｌ４を算出する。
ステップ６４０：ＣＰＵは、吸入空気流量ＧａをルックアップテーブルＭａｐＬseijo（Ｇａ）に適用することによって、基準無駄時間Ｌseijoを取得する。このテーブルＭａｐＬseijo（Ｇａ）によれば、基準無駄時間Ｌseijoは吸入空気流量Ｇａが大きいほと短くなる値として取得される。なお、前述したように、基準無駄時間Ｌseijoは正常な空燃比センサが示す無駄時間である。
ステップ６４５：ＣＰＵは、無駄時間Ｌ４から基準無駄時間Ｌseijoを差し引くことにより、判定用無駄時間遅れＬdetを求める。
【００６７】
次に、ＣＰＵはステップ６５０に進み、判定用無駄時間遅れＬdetが所定の異常判定用閾値Ｌ４ｔｈ以上であるか否かを判定する。判定用無駄時間遅れＬdetが所定の異常判定用閾値Ｌ４ｔｈ以上でなければ、ＣＰＵはステップ６５０にて「Ｎｏ」と判定し、ステップ６６０に直接進む。
【００６８】
これに対し、判定用無駄時間遅れＬdetが所定の異常判定用閾値Ｌ４ｔｈ以上であると、ＣＰＵはステップ６５０にて「Ｙｅｓ」と判定してステップ６５５に進み、空燃比センサ５６が「出力反転遅れ異常状態」であると判定する。より具体的に述べると、ＣＰＵは、空燃比センサ５６が「出力反転遅れ異常状態」である旨を示すフラグ（異常発生フラグ）Ｘijoの値を「１」に設定する。この異常発生フラグＸijoの値は、バックアップＲＡＭに格納される。このとき、ＣＰＵは、図示しない警告ランプを点灯してもよい。その後、ＣＰＵはステップ６６０に進む。
【００６９】
ＣＰＵは、ステップ６６０にて、フラグＸactiveの値を「０」に設定し、ステップ６９５に進んで本ルーチンを一旦終了する。
【００７０】
更に、ＣＰＵは、所定時間（８ｍｓ）が経過する毎に図７にフローチャートにより示した「８ｍｓルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図７のステップ７００から処理を開始してステップ７０５に進み、フラグＸactiveの値が「１」であるか否かを判定する。
【００７１】
フラグＸactiveの値が「０」であると、ＣＰＵはステップ７０５にて「Ｎｏ」と判定し、ステップ７９５に直接進んで本ルーチンを一旦終了する。これに対し、フラグＡｃｔｉｖｅの値が「１」であると、ＣＰＵはステップ７０５にて「Ｙｅｓ」と判定してステップ７１０に進み、上述した分散σ８を計算する。なお、ステップ７１０内に記載した式のうち、値Ｍは「５」（又は、１以上の整数）であり、ＡＦＳ８（ｔ−ｉ）は見かけのサンプリング時間を２・ｔｓ（＝８ｍｓ）とした場合の現時点からｉ回前のサンプリングタイミングにて取得された検出空燃比ＡＦＳであり、ＡＦＳave（ｔ）は現時点を含む過去Ｍ回のサンプリングタイミングにて取得された値ＡＦＳ８の平均値である。
【００７２】
次に、ＣＰＵはステップ７１５に進み、現時点の吸入空気流量Ｇａが分散σ８を使用すべき吸入空気流量であるか否かを判定する。より具体的に述べると、ＣＰＵは、現時点の吸入空気流量Ｇａが、第２閾値流量ＧＭ以上であり且つ第１閾値流量ＧＬ未満であるか否かを判定する。第２閾値流量ＧＭは、第１閾値流量ＧＬよりも小さく、機関１０の負荷が中程度である場合の吸入空気流量に対応するように設定されている。
【００７３】
現時点の吸入空気流量Ｇａが第２閾値流量ＧＭ以上であり且つ第１閾値流量ＧＬ未満でない場合、ＣＰＵはステップ７１５にて「Ｎｏ」と判定してステップ７０８に進み、ステップ７１０にて計算した分散σ８を「分散σ８の前回値」として記憶する。その後、ＣＰＵはステップ７９５に直接進んで本ルーチンを一旦終了する。
【００７４】
現時点の吸入空気流量Ｇａが第２閾値流量ＧＭ以上であり且つ第１閾値流量ＧＬ未満である場合、ＣＰＵはステップ７１５にて「Ｙｅｓ」と判定してステップ７２０に進み、ステップ７１０にて算出した分散σ８を「分散σ８の今回値」として記憶する。次に、ＣＰＵはステップ７２５に進み、分散σ８の前回値が閾値σｔｈよりも小さいか否かを判定する。分散σ８の前回値が閾値σｔｈ以上である大きい場合、ＣＰＵはステップ７２５にて「Ｎｏ」と判定し、ステップ７０８を経由してステップ７９５に進み、本ルーチンを一旦終了する。
【００７５】
これに対し、分散σ８の前回値が閾値σｔｈよりも小さい場合、ＣＰＵはステップ７２５にて「Ｙｅｓ」と判定してステップ７３０に進み、分散σ８の今回値が閾値σｔｈ以上であるか否かを判定する。分散σ８の今回値が閾値σｔｈよりも小さい場合、ＣＰＵはステップ７３０にて「Ｎｏ」と判定し、ステップ７０８を経由してステップ７９５に進み、本ルーチンを一旦終了する。
【００７６】
これに対し、分散σ８の今回値が閾値σｔｈ以上である場合、ＣＰＵはステップ７３０にて「Ｙｅｓ」と判定してステップ７３２に進み、制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えであったか否かを判定する。制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えでなかった場合（即ち、制御空燃比の直前の切替えがリーン空燃比からリッチ空燃比への切替えであった場合）、ＣＰＵはステップ７３２にて「Ｎｏ」と判定し、ステップ７０８を経由してステップ７９５に進み、本ルーチンを一旦終了する。
【００７７】
これに対し、制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えであった場合、ＣＰＵステップ７３２にて「Ｙｅｓ」と判定し、以下に述べるステップ７３５乃至ステップ７４５の処理を順に行い、ステップ７５０に進む。
【００７８】
ステップ７３５：ＣＰＵは、現在の時刻ｔnowから直前のリッチ／リーン切替え時刻ｔＲＬを差し引くことにより無駄時間Ｌ８を算出する。
ステップ７４０：ＣＰＵは、吸入空気流量ＧａをルックアップテーブルＭａｐＬseijo（Ｇａ）に適用することによって、基準無駄時間Ｌseijoを取得する。
ステップ７４５：ＣＰＵは、無駄時間Ｌ８から基準無駄時間Ｌseijoを差し引くことにより、判定用無駄時間遅れＬdetを求める。
【００７９】
次に、ＣＰＵはステップ７５０に進み、判定用無駄時間遅れＬdetが所定の異常判定用閾値Ｌ８ｔｈ以上であるか否かを判定する。判定用無駄時間遅れＬdetが所定の異常判定用閾値Ｌ８ｔｈ以上でなければ、ＣＰＵはステップ７５０にて「Ｎｏ」と判定し、ステップ７６０に直接進む。
【００８０】
これに対し、判定用無駄時間遅れＬdetが所定の異常判定用閾値Ｌ８ｔｈ以上であると、ＣＰＵはステップ７５０にて「Ｙｅｓ」と判定してステップ７５５に進み、空燃比センサ５６が「出力反転遅れ異常状態」であると判定し、異常発生フラグＸijoの値を「１」に設定する。このとき、ＣＰＵは、図示しない警告ランプを点灯してもよい。その後、ＣＰＵはステップ７６０に進む。
【００８１】
ＣＰＵは、ステップ７６０にて、フラグＸactiveの値を「０」に設定し、ステップ７９５に進んで本ルーチンを一旦終了する。
【００８２】
更に、ＣＰＵは、所定時間（１２ｍｓ）が経過する毎に図８にフローチャートにより示した「１２ｍｓルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図８のステップ８００から処理を開始してステップ８０５に進み、フラグＸactiveの値が「１」であるか否かを判定する。
【００８３】
フラグＸactiveの値が「０」であると、ＣＰＵはステップ８０５にて「Ｎｏ」と判定し、ステップ８９５に直接進んで本ルーチンを一旦終了する。これに対し、フラグＡｃｔｉｖｅの値が「１」であると、ＣＰＵはステップ８０５にて「Ｙｅｓ」と判定してステップ８１０に進み、上述した分散σ１２を計算する。なお、ステップ８１０内に記載した式のうち、値Ｍは「５」（又は、１以上の整数）であり、ＡＦＳ１２（ｔ−ｉ）は見かけのサンプリング時間を３・ｔｓ（＝１２ｍｓ）とした場合の現時点からｉ回前のサンプリングタイミングにて取得された検出空燃比ＡＦＳであり、ＡＦＳave（ｔ）は現時点を含む過去Ｍ回のサンプリングタイミングにて取得された値ＡＦＳ１２の平均値である。
【００８４】
次に、ＣＰＵはステップ８１５に進み、現時点の吸入空気流量Ｇａが分散σ１２を使用すべき吸入空気流量であるか否かを判定する。より具体的に述べると、ＣＰＵは、現時点の吸入空気流量Ｇａが、第３閾値流量ＧＳ以上であり且つ第２閾値流量ＧＭ未満であるか否かを判定する。第３閾値流量ＧＳは、第２閾値流量ＧＭよりも小さく、機関１０の負荷が軽負荷である場合の吸入空気流量に対応するように設定されている。
【００８５】
現時点の吸入空気流量Ｇａが第３閾値流量ＧＳ以上であり且つ第２閾値流量ＧＭ未満でない場合、ＣＰＵはステップ８１５にて「Ｎｏ」と判定してステップ８０８に進み、ステップ８１０にて計算した分散σ１２を「分散σ１２の前回値」として記憶する。その後、ＣＰＵはステップ８９５に直接進んで本ルーチンを一旦終了する。
【００８６】
現時点の吸入空気流量Ｇａが第３閾値流量ＧＳ以上であり且つ第２閾値流量ＧＭ未満である場合、ＣＰＵはステップ８１５にて「Ｙｅｓ」と判定してステップ８２０に進み、ステップ８１０にて算出した分散σ１２を「分散σ１２の今回値」として記憶する。次に、ＣＰＵはステップ８２５に進み、分散σ１２の前回値が閾値σｔｈよりも小さいか否かを判定する。分散σ１２の前回値が閾値σｔｈ以上である大きい場合、ＣＰＵはステップ８２５にて「Ｎｏ」と判定し、ステップ８０８を経由してステップ８９５に進み、本ルーチンを一旦終了する。
【００８７】
これに対し、分散σ１２の前回値が閾値σｔｈよりも小さい場合、ＣＰＵはステップ８２５にて「Ｙｅｓ」と判定してステップ８３０に進み、分散σ１２の今回値が閾値σｔｈ以上であるか否かを判定する。分散σ１２の今回値が閾値σｔｈよりも小さい場合、ＣＰＵはステップ８３０にて「Ｎｏ」と判定し、ステップ８０８を経由してステップ８９５に進み、本ルーチンを一旦終了する。
【００８８】
これに対し、分散σ１２の今回値が閾値σｔｈ以上である場合、ＣＰＵはステップ８３０にて「Ｙｅｓ」と判定してステップ８３２に進み、制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えであったか否かを判定する。制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えでなかった場合（即ち、制御空燃比の直前の切替えがリーン空燃比からリッチ空燃比への切替えであった場合）、ＣＰＵはステップ８３２にて「Ｎｏ」と判定し、ステップ８０８を経由してステップ８９５に進み、本ルーチンを一旦終了する。
【００８９】
これに対し、制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えであった場合、ＣＰＵステップ８３２にて「Ｙｅｓ」と判定し、以下に述べるステップ８３５乃至ステップ８４５の処理を順に行い、ステップ８５０に進む。
【００９０】
ステップ８３５：ＣＰＵは、現在の時刻ｔnowから直前のリッチ／リーン切替え時刻ｔＲＬを差し引くことにより無駄時間Ｌ１２を算出する。
ステップ８４０：ＣＰＵは、吸入空気流量ＧａをルックアップテーブルＭａｐＬseijo（Ｇａ）に適用することによって、基準無駄時間Ｌseijoを取得する。
ステップ８４５：ＣＰＵは、無駄時間Ｌ１２から基準無駄時間Ｌseijoを差し引くことにより、判定用無駄時間遅れＬdetを求める。
【００９１】
次に、ＣＰＵはステップ８５０に進み、判定用無駄時間遅れＬdetが所定の異常判定用閾値Ｌ１２ｔｈ以上であるか否かを判定する。判定用無駄時間遅れＬdetが所定の異常判定用閾値Ｌ１２ｔｈ以上でなければ、ＣＰＵはステップ８５０にて「Ｎｏ」と判定し、ステップ８６０に直接進む。
【００９２】
これに対し、判定用無駄時間遅れＬdetが所定の異常判定用閾値Ｌ１２ｔｈ以上であると、ＣＰＵはステップ８５０にて「Ｙｅｓ」と判定してステップ８５５に進み、空燃比センサ５６が「出力反転遅れ異常状態」であると判定し、異常発生フラグＸijoの値を「１」に設定する。このとき、ＣＰＵは、図示しない警告ランプを点灯してもよい。その後、ＣＰＵはステップ８６０に進む。
【００９３】
ＣＰＵは、ステップ８６０にて、フラグＸactiveの値を「０」に設定し、ステップ８９５に進んで本ルーチンを一旦終了する。
【００９４】
更に、ＣＰＵは、所定時間（１６ｍｓ）が経過する毎に図９にフローチャートにより示した「１６ｍｓルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図９のステップ９００から処理を開始してステップ９０５に進み、フラグＸactiveの値が「１」であるか否かを判定する。
【００９５】
フラグＸactiveの値が「０」であると、ＣＰＵはステップ９０５にて「Ｎｏ」と判定し、ステップ９９５に直接進んで本ルーチンを一旦終了する。これに対し、フラグＡｃｔｉｖｅの値が「１」であると、ＣＰＵはステップ９０５にて「Ｙｅｓ」と判定してステップ９１０に進み、上述した分散σ１６を計算する。なお、ステップ９１０内に記載した式のうち、値Ｍは「５」（又は、１以上の整数）であり、ＡＦＳ１６（ｔ−ｉ）は見かけのサンプリング時間を４・ｔｓ（＝１６ｍｓ）とした場合の現時点からｉ回前のサンプリングタイミングにて取得された検出空燃比ＡＦＳであり、ＡＦＳave（ｔ）は現時点を含む過去Ｍ回のサンプリングタイミングにて取得された値ＡＦＳ１６の平均値である。
【００９６】
次に、ＣＰＵはステップ９１５に進み、現時点の吸入空気流量Ｇａが分散σ１６を使用すべき吸入空気流量であるか否かを判定する。より具体的に述べると、ＣＰＵは、現時点の吸入空気流量Ｇａが、第３閾値流量ＧＳ未満であるか否かを判定する。
【００９７】
現時点の吸入空気流量Ｇａが第３閾値流量ＧＳ未満でない場合、ＣＰＵはステップ９１５にて「Ｎｏ」と判定してステップ９０８に進み、ステップ９１０にて計算した分散σ１６を「分散σ１６の前回値」として記憶する。その後、ＣＰＵはステップ９９５に直接進んで本ルーチンを一旦終了する。
【００９８】
現時点の吸入空気流量Ｇａが第３閾値流量ＧＳ未満である場合、ＣＰＵはステップ９１５にて「Ｙｅｓ」と判定してステップ９２０に進み、ステップ９１０にて算出した分散σ１６を「分散σ１６の今回値」として記憶する。次に、ＣＰＵはステップ９２５に進み、分散σ１６の前回値が閾値σｔｈよりも小さいか否かを判定する。分散σ１６の前回値が閾値σｔｈ以上である大きい場合、ＣＰＵはステップ９２５にて「Ｎｏ」と判定し、ステップ９０８を経由してステップ９９５に進み、本ルーチンを一旦終了する。
【００９９】
これに対し、分散σ１６の前回値が閾値σｔｈよりも小さい場合、ＣＰＵはステップ９２５にて「Ｙｅｓ」と判定してステップ９３０に進み、分散σ１６の今回値が閾値σｔｈ以上であるか否かを判定する。分散σ１６の今回値が閾値σｔｈよりも小さい場合、ＣＰＵはステップ９３０にて「Ｎｏ」と判定し、ステップ９０８を経由してステップ９９５に進み、本ルーチンを一旦終了する。
【０１００】
これに対し、分散σ１６の今回値が閾値σｔｈ以上である場合、ＣＰＵはステップ９３０にて「Ｙｅｓ」と判定してステップ９３２に進み、制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えであったか否かを判定する。制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えでなかった場合（即ち、制御空燃比の直前の切替えがリーン空燃比からリッチ空燃比への切替えであった場合）、ＣＰＵはステップ９３２にて「Ｎｏ」と判定し、ステップ９０８を経由してステップ９９５に進み、本ルーチンを一旦終了する。
【０１０１】
これに対し、制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えであった場合、ＣＰＵステップ９３２にて「Ｙｅｓ」と判定し、以下に述べるステップ９３５乃至ステップ９４５の処理を順に行い、ステップ９５０に進む。
【０１０２】
ステップ９３５：ＣＰＵは、現在の時刻ｔnowから直前のリッチ／リーン切替え時刻ｔＲＬを差し引くことにより無駄時間Ｌ１６を算出する。
ステップ９４０：ＣＰＵは、吸入空気流量ＧａをルックアップテーブルＭａｐＬseijo（Ｇａ）に適用することによって、基準無駄時間Ｌseijoを取得する。
ステップ９４５：ＣＰＵは、無駄時間Ｌ１６から基準無駄時間Ｌseijoを差し引くことにより、判定用無駄時間遅れＬdetを求める。
【０１０３】
次に、ＣＰＵはステップ９５０に進み、判定用無駄時間遅れＬdetが所定の異常判定用閾値Ｌ１６ｔｈ以上であるか否かを判定する。判定用無駄時間遅れＬdetが所定の異常判定用閾値Ｌ１６ｔｈ以上でなければ、ＣＰＵはステップ９５０にて「Ｎｏ」と判定し、ステップ９６０に直接進む。
【０１０４】
これに対し、判定用無駄時間遅れＬdetが所定の異常判定用閾値Ｌ１６ｔｈ以上であると、ＣＰＵはステップ９５０にて「Ｙｅｓ」と判定してステップ９５５に進み、空燃比センサ５６が「出力反転遅れ異常状態」であると判定し、異常発生フラグＸijoの値を「１」に設定する。このとき、ＣＰＵは、図示しない警告ランプを点灯してもよい。その後、ＣＰＵはステップ９６０に進む。
【０１０５】
ＣＰＵは、ステップ９６０にて、フラグＸactiveの値を「０」に設定し、ステップ９９５に進んで本ルーチンを一旦終了する。
【０１０６】
更に、ＣＰＵは、所定時間が経過する毎に図１０にフローチャートにより示した「空燃比制御ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図１０のステップ１０００から処理を開始してステップ１０１０に進み、前述した空燃比センサ異常判定実行条件が成立した直後であるか否かを判定する。
【０１０７】
空燃比センサ異常判定実行条件が成立した直後である場合、ＣＰＵはステップ１０１０にて「Ｙｅｓ」と判定してステップ１０２０に進み、フラグＸactiveの値を「１」に設定してからステップ１０３０に進む。これに対し、空燃比センサ異常判定実行条件が成立した直後でない場合、ＣＰＵはステップ１０１０にて「Ｎｏ」と判定してステップ１０３０に直接進む。
【０１０８】
ＣＰＵは、ステップ１０３０にてフラグＸactiveの値が「１」であるか否かを判定する。フラグＸactiveの値が「１」である場合、ＣＰＵはステップ１０３０にて「Ｙｅｓ」と判定してステップ１０４０に進み、前述したアクティブ空燃比制御を実行する。より具体的に述べると、ＣＰＵは、吸入空気流量Ｇａ及び機関回転速度ＮＥから機関１０の一つの気筒が一回の吸気行程において吸入する空気量を算出し、その空気量を目標空燃比により除した量に相当する燃料を、吸気行程を迎える気筒の燃料噴射弁３３から噴射させる。アクティブ空燃比制御の一周期において、目標空燃比は、一定時間ＴＲだけ理論空燃比よりも小さい一定のリッチ空燃比に設定された後、一定時間ＴＬだけ理論空燃比よりも大きい一定のリーン空燃比に設定される。
【０１０９】
次いで、ＣＰＵはステップ１０５０に進み、フラグＸactiveの値が「０」から「１」に変化してから異常判定実行時間が経過したか否かを判定する。この異常判定実行時間が経過していれば、ＣＰＵはステップ１０５０にて「Ｙｅｓ」と判定してステップ１０６０に進んでフラグＸactiveの値を「０」に設定し、ステップ１０９５に進んで本ルーチンを一旦終了する。
【０１１０】
これに対し、異常判定実行時間が経過していなければ、ＣＰＵはステップ１０５０にて「Ｎｏ」と判定し、ステップ１０９５に直接進んで本ルーチンを一旦終了する。
【０１１１】
一方、ＣＰＵがステップ１０３０の処理を行う時点において、フラグＸactiveの値が「１」でなければ、ＣＰＵはステップ１０３０にて「Ｎｏ」と判定してステップ１０７０に進み、通常の空燃比制御を行う。より具体的に述べると、ＣＰＵは、目標空燃比を理論空燃比に設定し、一つの気筒が一回の吸気行程において吸入する空気量を吸入空気流量Ｇａ及び機関回転速度ＮＥから算出し、その空気量を目標空燃比により除した量に相当する燃料を、吸気行程を迎える気筒の燃料噴射弁３３から噴射させる。このとき、検出空燃比ＡＦＳが理論空燃比よりも小さければ、燃料噴射量が減少補正され、検出空燃比ＡＦＳが理論空燃比よりも大きければ、燃料噴射量が増大補正される。
【０１１２】
以上、説明したように、本判定装置は、アクティブ空燃比制御中における検出空燃比ＡＦＳの分散を求め、その分散に基いてセンサ出力切替わり時点を特定する。その際、本判定装置は、分散を求めるための検出空燃比ＡＦＳのデータ（分散計算用データ）のサンプリング間隔を吸入空気流量が小さいほど長くする。その結果、センサ出力切替わり時点を精度良く特定することができる。
【０１１３】
本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、図６乃至図９において使用される閾値σｔｈは、互いに相違していてもよい。即ち、閾値σｔｈは吸入空気流量に応じて変化する値に設定されてもよい。
【０１１４】
本判定装置は、検出空燃比の分散（σ４、σ８、σ１２、及び、σ１６）を求め、その分散によりセンサ出力切替わり時点を特定していたが、空燃比センサ５６のセンサ値Vabyfsの分散を求め、その分散に基いてセンサ出力切替わり時点を特定してもよい。更に、分散計算用データのサンプリング間隔は、４、８、１２及び１６ｍｓに限定されることなく、任意の時間であってもよく、分散もσ４、σ８、σ１２、及び、σ１６の４つに限定されない。
【０１１５】
更に、本判定装置は、制御空燃比の直前の切替えがリッチ空燃比からリーン空燃比への切替えであった後に現れる無駄時間に基いて出力反転遅れ異常状態が発生しているか否かを判定していたが、制御空燃比の直前の切替えがリーン空燃比からリッチ空燃比への切替えであった後に現れる無駄時間に基いて出力反転遅れ異常状態が発生しているか否かを判定してもよい（図３の時刻ｔＬＲから時刻ｔ３又は時刻ｔ４までの時間を参照。）。
【０１１６】
更に、本判定装置は、無駄時間を１回だけ求め、その無駄時間に基いて出力反転遅れ異常状態が発生しているか否かを判定していたが、吸入空気流量Ｇａが同じ領域（即ち、ＧＳ未満、ＧＳ以上且つＧＭ未満、ＧＭ以上且つＧＬ未満、及び、ＧＬ以上）にある場合に無駄時間を複数回求め、それらの無駄時間の平均値（即ち、無駄時間に基く値）に基いて出力反転遅れ異常状態が発生しているか否かを判定してもよい。
【符号の説明】
【０１１７】
１０…内燃機関、３３…燃料噴射弁、４１…エキゾーストマニホールド、４２…エキゾーストパイプ、４３…上流側触媒、５６…上流側空燃比センサ（空燃比センサ）、５７…下流側空燃比センサ、７０…電気制御装置。
【図１】
2018003702.tif 000004
【図２】
2018003702.tif 000005
【図３】
2018003702.tif 000006
【図４】
2018003702.tif 000007
【図５】
2018003702.tif 000008
【図６】
2018003702.tif 000009
【図７】
2018003702.tif 000010
【図８】
2018003702.tif 000011
【図９】
2018003702.tif 000012
【図１０】
2018003702.tif 000013