(57)【要約】【課題】ガスセンサが劣化した状態において出力する検出信号の遅延した状態をより精密に疑似的に生成することができ、ノイズの影響を受けにくいガスセンサの疑似信号生成装置を提供する。【解決手段】基準信号よりＲＬｗ時間遅らせた第１遅延信号（電圧値ＶｉｐＲＬ［ＲＬｗ］）がリーン側最大値（ＶｉｐＲＬｍａｘ）に到達したＴ４から、ＲＬｗ時間より長いＬＲｗ時間遅らせた第２遅延信号（電圧値ＶｉｐＬＲ［ＬＲｗ］）がリーン側最大値に到達するＴ６までの間、疑似信号の電圧値ＶｉｐＯｕｔとしてリーン側最大値が出力される。【選択図】図７
2010270661.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気ガス中の特定成分の濃度に対応した検出信号を出力するガスセンサと同構成をなし、排気ガス中の特定成分の濃度に関連した基準信号を出力する基準センサから、該基準信号を一定時間毎に取得する基準信号取得手段と、
内燃機関に供給される混合気の目標空燃比がリッチ側からリーン側へ変更されたことに伴って前記基準信号が変化し始めるまでの第１遅延時間、および、前記目標空燃比がリーン側からリッチ側へ変更されたことに伴って前記基準信号が変化し始めるまでの第２遅延時間を個別に設定可能な遅延時間設定手段と、
前記基準信号取得手段によって取得された前記基準信号を記憶すると共に、該基準信号を前記第１遅延時間に相当する取得回数分だけ遅らせて、第１遅延信号として疑似的に生成する第１遅延信号生成手段と、
前記基準信号取得手段によって取得された前記基準信号を記憶すると共に、該基準信号を前記第２遅延時間に相当する取得回数分だけ遅らせて、第２遅延信号として疑似的に生成する第２遅延信号生成手段と、
前記第１遅延時間と前記第２遅延時間とのいずれが長いかを比較する比較手段と、
前記比較手段にて前記第２遅延時間が前記第１遅延時間と同じもしくはそれよりも長い場合に、前記第１遅延信号と前記第２遅延信号とのうち、よりリーン側の値を表した遅延信号を疑似信号として選択する一方、前記比較手段にて前記第２遅延時間が前記第１遅延時間よりも短い場合に、前記第１遅延信号と前記第２遅延信号とのうち、よりリッチ側の値を表した遅延信号を疑似信号として選択し、選択された該疑似信号を出力する疑似信号生成手段と
を備えたガスセンサの疑似信号生成装置において、
前記疑似信号生成手段は、
前記第２遅延時間が前記第１遅延時間と同じもしくはそれよりも長い場合において、
前記第１遅延信号が前記第２遅延信号と同じもしくはそれよりもリーン側の値を表してから、前記第１遅延信号の最もリーン側における最大値としてのリーン最大値を更新する第１更新手段と、
前記第１遅延信号が前記リーン最大値よりもリッチ側の値を表してから、前記リーン最大値を維持するとともに、前記第１遅延信号に代えて、前記リーン最大値を前記疑似信号として出力する第１出力手段と、
前記第２遅延信号が前記第１遅延信号よりもリーン側の値を表してから、前記第２遅延信号が前記リーン最大値に到達するまでの間は、前記第２遅延信号に代えて、前記リーン最大値の前記疑似信号としての出力を継続する第１継続手段と、
前記第２遅延信号が前記リーン最大値に到達してからは、新たなリーン最大値の更新のため、前記リーン最大値に、よりリッチ側の値を再度設定する第１再設定手段と
を備える一方で、
前記第２遅延時間が前記第１遅延時間よりも短い場合において、
前記第２遅延信号が前記第１遅延信号と同じもしくはそれよりもリッチ側の値を表してから、前記第２遅延信号の最もリッチ側における最大値としてのリッチ最大値を更新する第２更新手段と、
前記第２遅延信号が前記リッチ最大値よりもリーン側の値を表してから、前記リッチ最大値を維持するとともに、前記第２遅延信号に代えて、前記リッチ最大値を前記疑似信号として出力する第２出力手段と、
前記第１遅延信号が前記第２遅延信号よりもリッチ側の値を表してから、前記第１遅延信号が前記リッチ最大値に到達するまでの間は、前記第１遅延信号に代えて、前記リッチ最大値の前記疑似信号としての出力を継続する第２継続手段と、
前記第１遅延信号が前記リッチ最大値に到達してからは、新たなリッチ最大値の更新のため、前記リッチ最大値に、よりリーン側の値を再度設定する第２再設定手段と
を備えたことを特徴とするガスセンサの疑似信号生成装置。
【請求項２】
前記第１遅延時間と、前記第２遅延時間との差分時間を算出する算出手段と、
前記第２遅延時間が前記第１遅延時間と同じもしくはそれよりも長い場合においては、前記第１出力手段によって前記リーン最大値の出力が開始されてからの前記差分時間の経過を計時する一方で、前記第２遅延時間が前記第１遅延時間よりも短い場合においては、前記第２出力手段によって前記リッチ最大値の出力が開始されてからの前記差分時間の経過を計時する計時手段と
を備え、
前記疑似信号生成手段は、
前記第２遅延時間が前記第１遅延時間と同じもしくはそれよりも長い場合において、
第１継続手段によって前記リーン最大値が前記疑似信号として出力されており、且つ、前記計時手段によって前記差分時間の経過が計時された場合には、前記第１継続手段による前記リーン最大値の前記疑似信号としての出力を終了する一方、
前記第２遅延時間が前記第１遅延時間よりも短い場合において、
第２継続手段によって前記リッチ最大値が前記疑似信号として出力されており、且つ、前記計時手段によって前記差分時間の経過が計時された場合には、前記第２継続手段による前記リッチ最大値の前記疑似信号としての出力を終了すること
を特徴とする請求項１に記載のガスセンサの疑似信号生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気ガス中の特定成分の濃度に対応した検出信号を出力するガスセンサが劣化した状態において出力する検出信号を疑似的に生成するガスセンサの疑似信号生成装置に関するものである。
【背景技術】
【０００２】
従来より、自動車エンジンなどの内燃機関の排気通路に取り付けられ、排気ガス中の特定成分の濃度（例えば、酸素濃度）に対応した検出信号を出力するガスセンサが知られている。このガスセンサは、センサ素子を流れる電流の大きさあるいはセンサ素子にて発生する電圧値が排気ガス中の特定成分の濃度に応じて変化することを利用して、排気ガス中の特定成分の濃度の検出、ひいては排気ガスの空燃比の検出を行うものである。ガスセンサから出力される検出信号はＥＣＵ（電子制御ユニット）に送信され、ＥＣＵでは受信した検出信号に基づき、エンジンにおける燃料噴射量の調整等の空燃比フィードバック制御が行われる。
【０００３】
こうしたガスセンサは、排気通路内で排気ガスに晒されて使用に供されるため、長期間の使用に伴い経時劣化が生ずる。そこでＥＣＵの開発では、ガスセンサがある程度劣化した状態でも空燃比フィードバック制御の精度を維持することができるように、ガスセンサ劣化時の検出信号に対しても最適な空燃比フィードバック制御のパラメータを決定できるようにする設計が行われたり、センサの劣化検知のプログラム設計が行われたりしている。例えば、加速耐久試験により劣化度合いの異なるガスセンサを用意し、それらガスセンサから得られる劣化時の検出信号と、正常なガスセンサの検出信号とを用い、劣化度合いの過渡的な段階における検出信号の状態を予測して、空燃比フィードバック制御のパラメータの設定を行っている。一方、実車において、ガスセンサが劣化してもＥＣＵによる空燃比フィードバック制御が正しく行われるか否か確認するために試験を行う場合においても、上記のように加速耐久試験により劣化させたガスセンサが実車に取り付けられる。
【０００４】
しかし、こうした試験等に用いるため、数種類の劣化状態を再現したガスセンサそれぞれを、加速耐久試験により目標通りに作製することは困難である。また、試験において、劣化状態の異なるガスセンサを試験の都度取り換えるには手間もかかる。そのため、ガスセンサの劣化時の検出信号を疑似的に生成することができる疑似信号生成装置（劣化シミュレータ）が開発されている（例えば、特許文献１参照。）。
【０００５】
このような疑似信号生成装置は、実車に取り付けた正常なガスセンサ（換言すれば、劣化時の検出信号を疑似的に生成するための基準となる検出信号を出力するガスセンサ）とＥＣＵとの間に介在され、入力されたガスセンサの検出信号を加工して疑似的に劣化時の検出信号（以下、「疑似信号」という。）を生成し、この疑似信号をＥＣＵに対して出力するものである。特許文献１の疑似信号生成装置では、具体的には、ガスセンサの検出信号のゲインを変化させたり、検出信号の応答特性に遅れを生じさせたりした疑似信号を生成している。
【０００６】
ところで、ガスセンサは排気通路の下流側に設けられる浄化装置の近くに取り付けられることが多く、燃料噴射量の調整等により内燃機関に供給される混合気の目標空燃比を変化させた際に、目標空燃比を変化させた混合気がエンジン（燃焼室）にて燃焼され、排気ガスとしてガスセンサに達するまでに時間がかかる。そのため、混合気の目標空燃比の変更タイミングと、ガスセンサから出力される検出信号の変化し始めるタイミングとの間には、タイムラグ（遅延）が生ずる。
【０００７】
また、ガスセンサを長期間使用した場合、ガスセンサのプロテクタ（詳細には、センサ素子の周囲を覆うガス流通孔付きのプロテクタ）のガス流通孔が目詰まりを起こす等の経時劣化を生ずることがある。ガスセンサにこのような劣化が生ずるとプロテクタ内部のガス置換が遅くなるため、混合気の目標空燃比の変更に伴ってガスセンサの検出信号が変化し始めるまでの時間（遅延時間）は、劣化していないガスセンサと比較して遅くなる。
【０００８】
ＥＣＵの開発を行うにあたり、より精密な空燃比フィードバック制御を促せたり、より正確なガスセンサの劣化検知を行えるＥＣＵを開発するためには、上記のように遅延時間が経時的に変化していく（遅くなっていく）ことも考慮する必要がある。そのためには任意の遅延時間を設定し、検出信号にその遅延時間分の遅れを生じさせた疑似信号を生成するとよい。
【０００９】
また、ガスセンサのセンサ素子を保護する多孔質からなる保護層が目詰まり等を起こした場合、その保護層を通過するガス成分の分子の大きさの差に起因して、排気ガスの空燃比がリッチである場合とリーンである場合とで異なった劣化状態を示す場合もある。この場合、疑似信号生成装置としては、混合気の目標空燃比がリッチからリーンに変更された場合と、リーンからリッチに変更された場合とで異なる遅延時間を設定できるようにして、検出信号にそれぞれの遅延時間分の遅れを生じさせた遅延信号を生成し、それぞれ繋ぎ合わせて疑似信号を生成するとよい。なお、疑似信号生成装置として、混合気の目標空燃比がリッチからリーン、あるいは、リーンからリッチに変更された場合に、検出信号に遅延時間分の遅れを生じさせた遅延信号を生成し、それを疑似信号として出力可能な装置（劣化シミュレータ）も、近年、知られている（例えば、特許文献２参照。）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００４−９３９５７号公報
【特許文献２】特開２００７−３１５２１０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述のような２つの遅延信号は、共に基準となるガスセンサから出力される検出信号を元にそれぞれの遅延時間に基づいて生成されるため、一方がピーク値（リッチ最大値およびリーン最大値）を表すタイミングと他方がピーク値を表すタイミングとには、ずれが生じうる。このため、遅延信号を単に繋ぎ合わせた疑似信号は、その値がリッチ側からリーン側あるいはリーン側からリッチ側へ切り換えられる際に一度ピーク値を表し、その後、減少あるいは増加へと向かう変化の過程において、再度、ピーク値を表してから、減少あるいは増加へと向かう変化を示してしまい、ガスセンサの劣化状態を正しくシミュレートすることが難しいという問題があった。特に、検出信号にノイズが混入して一時的にピーク値が発生した場合、疑似信号には、ノイズによって発生したピーク値が短時間のうちに２つも表されてしまうことになり、さらにノイズが増えれば、疑似信号の値が上下に激しい変動を示すものとなってしまう虞があった。
【００１２】
本発明は上記問題点を解決するためになされたものであり、ガスセンサが劣化した状態において出力する検出信号の遅延した状態をより精密に疑似的に生成することができ、ノイズの影響を受けにくいガスセンサの疑似信号生成装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の実施態様によれば、内燃機関の排気ガス中の特定成分の濃度に基づき該排気ガスの空燃比を検出するガスセンサと同構成をなし、排気ガス中の特定成分の濃度に関連した基準信号を出力する基準センサから、該基準信号を一定時間毎に取得する基準信号取得手段と、内燃機関に供給される混合気の目標空燃比がリッチ側からリーン側へ変更されたことに伴って前記基準信号が変化し始めるまでの第１遅延時間、および、前記目標空燃比がリーン側からリッチ側へ変更されたことに伴って前記基準信号が変化し始めるまでの第２遅延時間を個別に設定可能な遅延時間設定手段と、前記基準信号取得手段によって取得された前記基準信号を記憶すると共に、該基準信号を前記第１遅延時間に相当する取得回数分だけ遅らせて、第１遅延信号として疑似的に生成する第１遅延信号生成手段と、前記基準信号取得手段によって取得された前記基準信号を記憶すると共に、該基準信号を前記第２遅延時間に相当する取得回数分だけ遅らせて、第２遅延信号として疑似的に生成する第２遅延信号生成手段と、前記第１遅延時間と前記第２遅延時間とのいずれが長いかを比較する比較手段と、前記比較手段にて前記第２遅延時間が前記第１遅延時間と同じもしくはそれよりも長い場合に、前記第１遅延信号と前記第２遅延信号とのうち、よりリーン側の値を表した遅延信号を疑似信号として選択する一方、前記比較手段にて前記第２遅延時間が前記第１遅延時間よりも短い場合に、前記第１遅延信号と前記第２遅延信号とのうち、よりリッチ側の値を表した遅延信号を疑似信号として選択し、選択された該疑似信号を出力する疑似信号生成手段とを備えたガスセンサの疑似信号生成装置において、前記疑似信号生成手段は、前記第２遅延時間が前記第１遅延時間と同じもしくはそれよりも長い場合において、前記第１遅延信号が前記第２遅延信号と同じもしくはそれよりもリーン側の値を表してから、前記第１遅延信号の最もリーン側における最大値としてのリーン最大値を更新する第１更新手段と、前記第１遅延信号が前記リーン最大値よりもリッチ側の値を表してから、前記リーン最大値を維持するとともに、前記第１遅延信号に代えて、前記リーン最大値を前記疑似信号として出力する第１出力手段と、前記第２遅延信号が前記第１遅延信号よりもリーン側の値を表してから、前記第２遅延信号が前記リーン最大値に到達するまでの間は、前記第２遅延信号に代えて、前記リーン最大値の前記疑似信号としての出力を継続する第１継続手段と、前記第２遅延信号が前記リーン最大値に到達してからは、新たなリーン最大値の更新のため、前記リーン最大値に、よりリッチ側の値を再度設定する第１再設定手段とを備える一方で、前記第２遅延時間が前記第１遅延時間よりも短い場合において、前記第２遅延信号が前記第１遅延信号と同じもしくはそれよりもリッチ側の値を表してから、前記第２遅延信号の最もリッチ側における最大値としてのリッチ最大値を更新する第２更新手段と、前記第２遅延信号が前記リッチ最大値よりもリーン側の値を表してから、前記リッチ最大値を維持するとともに。前記第２遅延信号に代えて、前記リッチ最大値を前記疑似信号として出力する第２出力手段と、前記第１遅延信号が前記第２遅延信号よりもリッチ側の値を表してから、前記第１遅延信号が前記リッチ最大値に到達するまでの間は、前記第１遅延信号に代えて、前記リッチ最大値の前記疑似信号としての出力を継続する第２継続手段と、前記第１遅延信号が前記リッチ最大値に到達してからは、新たなリッチ最大値の更新のため、前記リッチ最大値に、よりリーン側の値を再度設定する第２再設定手段とを備えたガスセンサの疑似信号生成装置が提供される。
【００１４】
本実施態様によれば、基準センサ（基準となるガスセンサのこと）から取得される基準信号を元に生成した第１遅延信号と第２遅延信号とを繋ぎ合わせることで、疑似信号を生成している。この第１遅延信号と第２遅延信号との繋ぎ合わせにおいて、第２遅延時間が第１遅延時間と同じもしくはそれよりも長い場合に、第１遅延信号がリーン最大値に到達したときから第２遅延信号がリーン最大値に到達するまでの間は、リーン最大値を疑似信号として出力している。
【００１５】
混合気の目標空燃比がリッチ側からリーン側へ移行する際には第１遅延信号に基づいて疑似信号の生成が行われるが、この第１遅延信号がリーン最大値に到達し、その信号値がリッチ側へ移行を始めると、第１遅延信号より遅れてリーン最大値に到達する第２遅延信号と交差することとなる。第２遅延信号は混合気の目標空燃比がリーン側からリッチ側へ移行する際の疑似信号として選択されるものであるが、上記の第１遅延信号と第２遅延信号との交差するタイミングにおいて、第２遅延信号は、排気ガスの空燃比がリッチ側からリーン側へ移行する際の信号値変化を示している。そこで、上記のように、第１遅延信号がリーン最大値に到達したときから第２遅延信号がリーン最大値に到達するまでの間、リーン最大値を疑似信号として出力すれば、排気ガスの空燃比がリーン側からリッチ側へ向かう過程において、出力される疑似信号をリーン最大値にて一定に保ち、信号値変化を生じさせなくすることができる。したがって、第１遅延信号がリーン最大値に到達したときから第２遅延信号がリーン最大値に到達するまでの間は信号値変化の符号（正負）が反転することがなく、生成された疑似信号を用いてガスセンサの劣化状態を正しくシミュレートすることができる。
【００１６】
一方、第２遅延時間が第１遅延時間よりも短い場合に、第１遅延信号と第２遅延信号との関係は、リッチ側とリーン側とを入れ換えた形態となる。こうした場合においても、第２遅延信号がリッチ最大値に到達したときから第１遅延信号がリッチ最大値に到達するまでの間、リッチ最大値を疑似信号として出力することで、上記同様の処理を行うことができる。つまり、排気ガスの空燃比がリッチ側からリーン側へ向かう過程において、出力される疑似信号をリッチ最大値にて一定に保ち、信号値変化を生じさせなくすることができる。したがって、第１遅延信号がリッチ最大値に到達したときから第２遅延信号がリッチ最大値に到達するまでの間、信号値変化の符号（正負）が反転することがなく、生成された疑似信号を用いてガスセンサの劣化状態を正しくシミュレートすることができる。
【００１７】
また、本実施態様において、前記第１遅延時間と、前記第２遅延時間との差分時間を算出する算出手段と、前記第２遅延時間が前記第１遅延時間と同じもしくはそれよりも長い場合においては、前記第１出力手段によって前記リーン最大値の出力が開始されてからの前記差分時間の経過を計時する一方で、前記第２遅延時間が前記第１遅延時間よりも短い場合においては、前記第２出力手段によって前記リッチ最大値の出力が開始されてからの前記差分時間の経過を計時する計時手段とを備え、前記疑似信号生成手段は、前記第２遅延時間が前記第１遅延時間と同じもしくはそれよりも長い場合において、第１継続手段によって前記リーン最大値が前記疑似信号として出力されており、且つ、前記計時手段によって前記差分時間の経過が計時された場合には、前記第１継続手段による前記リーン最大値の前記疑似信号としての出力を終了する一方、前記第２遅延時間が前記第１遅延時間よりも短い場合において、第２継続手段によって前記リッチ最大値が前記疑似信号として出力されており、且つ、前記計時手段によって前記差分時間の経過が計時された場合には、前記第２継続手段による前記リッチ最大値の前記疑似信号としての出力を終了してもよい。
【００１８】
このようにすれば、第１継続手段によってリーン最大値が疑似信号として出力されている場合に、諸事情により、第２遅延信号がリーン最大値に到達できなかった場合でも、差分時間の経過に基づき、強制的に、リーン最大値の疑似信号としての出力を終了させることができる。一方、第２継続手段によってリッチ最大値が疑似信号として出力されている場合に、諸事情により、第１遅延信号がリッチ最大値に到達できなかった場合にも、同様に、差分時間の経過に基づき、強制的に、リッチ最大値の疑似信号としての出力を終了させることができる。よって、ノイズ等により基準信号に想定外の変動が生じても、生成される疑似信号には、その影響が及びにくく、生成された疑似信号を用いてガスセンサの劣化状態を正しくシミュレートすることができる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態の疑似信号生成装置の一例としてのセンサシミュレータ１の概略的な構成を示すブロック図である。
【図２】疑似信号生成プログラムのメインルーチンのフローチャートである。
【図３】第１ピークホールド処理サブルーチンのフローチャートである。
【図４】第２ピークホールド処理サブルーチンのフローチャートである。
【図５】第１遅延時間（ＲＬｗ）よりも第２遅延時間（ＬＲｗ）が長く設定された場合において、基準信号（電圧値Ｖｉｐ）および第１，第２遅延信号（電圧値ＶｉｐＲＬ［ＲＬｗ］，ＶｉｐＬＲ［ＬＲｗ］）の描く波形を示すグラフである。
【図６】図５の円Ａで示す部分を拡大したグラフである。
【図７】図５の円Ｂで示す部分を拡大したグラフである。
【図８】第１遅延時間（ＲＬｗ）よりも第２遅延時間（ＬＲｗ）が短く設定された場合において、基準信号（電圧値Ｖｉｐ）および第１，第２遅延信号（電圧値ＶｉｐＲＬ［ＲＬｗ］，ＶｉｐＬＲ［ＬＲｗ］）の描く波形を示すグラフである。
【図９】図８の円Ｃで示す部分を拡大したグラフである。
【図１０】図８の円Ｄで示す部分を拡大したグラフである。
【図１１】基準信号に外乱ノイズが混入した場合に基準信号および第１，第２遅延信号の描く波形を示すグラフである。
【図１２】図１１の円Ｅで示す部分を拡大したグラフである。
【図１３】図１１の円Ｆで示す部分を拡大したグラフである。
【発明を実施するための形態】
【００２０】
以下、本発明を具体化した疑似信号生成装置の一実施の形態について、図面を参照して説明する。なお、本発明の疑似信号生成装置に接続されるガスセンサとしては、酸素センサや全領域空燃比センサ、ＮＯｘセンサなどを用いることができ、本実施の形態では全領域空燃比センサをその一例とし、基準センサ２として、正常な（劣化していない）全領域空燃比センサを用いたものとして説明する。
【００２１】
全領域空燃比センサは、板状に形成された素子部と板状に形成されたヒータとが積層一体化されたセンサ素子を有するものであり、このセンサ素子の先端部をガス流通孔が形成されたプロテクタ内に配置させた形態で、主体金具の内側に当該センサ素子を保持させた公知の構成を有するものである。このセンサを構成するセンサ素子についても公知であるため、詳細な説明は省略するが、その概略構成は以下のようである。
【００２２】
センサ素子をなす素子部は、ジルコニアを主体とする固体電解質板の両側に多孔質電極を形成した酸素ポンプセルと、同じく固体電解質板の両側に多孔質電極を形成した酸素濃淡検知セルと、これらの両セルの間に配置され、中空の測定ガス室を形成するためのスペーサとから構成される。このスペーサはアルミナを主体に構成されており、中空の測定ガス室の内側には、酸素ポンプセルの一方の多孔質電極および酸素濃淡検知セルの一方の多孔質電極が面するように配置される。なお、測定ガス室は、センサ素子の先端部に位置するように設けられ、スペーサの先端部寄りには、測定ガス室と外部とを連通するための多孔質のセラミックからなる拡散律速部が形成され、この測定ガス室が形成される部分がセンサ素子の検出部をなす。また、酸素ポンプセルの測定ガス室に面しない側の多孔質電極上には、この電極の被毒を防止するためにセラミック製の被毒防止層が設けられており、酸素濃淡検知セルの測定ガス室に面しない側の多孔質電極は、基準ガスに晒される。
【００２３】
そして、このセンサ素子では、酸素濃淡検知セルの起電力が一定値となる（換言すれば、測定ガス室に導入された排気ガスの空燃比が理論空燃比となる）ように、酸素ポンプセルに電流を流して測定ガス室の内部に対する酸素の汲み入れまたは汲み出しが行われる。このとき、酸素ポンプセルに流れる電流の値および流れ方向が、排気ガス中の酸素濃度（すなわち、空燃比）に応じて変化することから、このセンサ素子では酸素ポンプセルに流れる電流（詳細には、この電流を電圧変換した電圧信号）に基づいて、排気ガス中の酸素濃度（ひいては、空燃比）をリニアに検出することができる。
【００２４】
図１に示すように、センサシミュレータ１は、自動車の排気通路（図示外）に取り付けられるガスセンサとしての上述した基準センサ２と、自動車の電子制御を司るＥＣＵ３との間に介在される装置である。基準センサ２は排気通路内を流通する排気ガス中の酸素濃度に応じた検出信号を出力し、この検出信号が基準信号としてセンサシミュレータ１に入力されている。センサシミュレータ１は、入力された基準信号に対し、後述する疑似信号生成プログラムの実行により加工を施して疑似信号を生成し、ＥＣＵ３に対して出力を行っている。ＥＣＵ３は、入力された疑似信号に基づき、図示外のエンジンの制御（例えば、インジェクタから噴射する燃料の噴射量の調整など）を行っている。また、ＥＣＵ３は、基準センサ２のヒータ回路（図示外）にヒータ駆動電圧の供給も行っており、センサ素子（図示外）の早期活性化や活性化後の安定化を図っている。
【００２５】
センサシミュレータ１は、図示しないケーシング内に、自身の制御を司るＣＰＵ１１と、後述する疑似信号生成プログラム等が記憶された、書き換え可能なＥＥＰＲＯＭ１２と、各種のデータを一時的に記憶するＲＡＭ１３とを有するマイクロコンピュータ１０を備えている。なお、マイクロコンピュータ１０のＣＰＵ１１、ＥＥＰＲＯＭ１２およびＲＡＭ１３は公知の構成からなるものである。本実施の形態では、ＥＥＰＲＯＭ１２には、後述する疑似信号生成プログラムや、疑似信号生成プログラムで使用される各種変数やフラグ、カウンタの初期値等が記憶されている。ＥＥＰＲＯＭ１２を使用することで、疑似信号生成プログラムのバージョンアップ等にも柔軟に対応できる構成となっている。また、疑似信号生成プログラムとは別途実行される入力監視プログラム（図示外）により、入力部６０において利用者により入力される第１遅延時間および第２遅延時間の各入力値等が監視され、ＥＥＰＲＯＭ１２にはそれらの値も記憶される。ＲＡＭ１３は、疑似信号生成プログラムの実行の際に、各種変数やカウンタ等の一時的な記憶エリアとして使用される。
【００２６】
マイクロコンピュータ１０には、Ａ／Ｄコンバータ３０を介し、検出回路部２０が接続されている。この検出回路部２０は、基準センサ２による排気ガス中の酸素濃度の検出を行うために基準センサ２を構成するセンサ素子の酸素ポンプセルに流す電流の制御を行う回路部である。検出回路部２０により基準センサ２の酸素ポンプセルに流される電流が制御され、この酸素ポンプセルを介して基準センサ２より基準信号（電流）が出力される。その基準信号は、検出回路部２０内の検出抵抗にて電圧変換され、Ａ／Ｄコンバータ３０でＡ／Ｄ変換されてマイクロコンピュータ１０に入力される。また、マイクロコンピュータ１０には、後述する疑似信号生成プログラムによって生成した疑似信号を、出力バッファ４０を介してＥＣＵ３に出力するために、処理用の電圧値にＤ／Ａ変換するＤ／Ａコンバータ５０が接続されている。
【００２７】
更に、マイクロコンピュータ１０には、疑似信号生成プログラムに用いられる設定値等を利用者が入力するための入力部６０と、入力された設定値等を確認できるように表示する表示部８０の表示制御を行う表示制御部７０とが接続されている。入力部６０としては、例えばプッシュスイッチやロータリースイッチ等が用いられ、表示部８０としては、例えばＬＣＤディスプレイ等が用いられる。また、図示しないが、センサシミュレータ１は電源回路等も備えている。
【００２８】
このような構成のセンサシミュレータ１では、図２〜図４のフローチャートで示す疑似信号生成プログラムの実行にしたがって、検出回路部２０を介して基準センサ２から１ｍｓ毎に基準信号を取得し、加工を施して疑似信号を生成し、ＥＣＵ３に対し出力を行っている。以下、図２〜図４に示すフローチャートにしたがい、疑似信号生成プログラムの実行によって基準信号（電圧値Ｖｉｐ）から疑似信号（電圧値ＶｉｐＯｕｔ）が生成される過程について説明を行うが、その前に、疑似信号生成プログラムで使用される各変数やカウンタについて説明する。
【００２９】
「Ｖｉｐ」は、基準センサ２から取得される基準信号の電圧値を記憶するための変数であり、初期値には０がセットされる。「ＲＬｗ」は、目標空燃比の変更に伴い排気ガスの空燃比がリッチ側からリーン側に移行される場合に、基準信号を遅延させて出力するための第１遅延時間を設定するための変数である。利用者により１（ｍｓ）刻みに０〜６００（ｍｓ）の範囲でその値が設定され、ＥＥＰＲＯＭ１２に記憶され保存されている。初期値には、保存されている前回の設定値がセットされる。同様に「ＬＲｗ」は、目標空燃比の変更に伴い排気ガスの空燃比がリーン側からリッチ側に移行される場合に、基準信号を遅延させて出力するための第２遅延時間を設定するための変数である。上記同様、利用者により１（ｍｓ）刻みに０〜６００（ｍｓ）の範囲でその値が設定され、ＥＥＰＲＯＭ１２に記憶されて保存される。初期値には、保存されている前回の設定値がセットされる。
【００３０】
「ＶｉｐＲＬ［ｉ］」（ただし、ｉ＝０，１，２，・・・，６００）は、基準センサ２から取得された過去６００ｍｓ前まで基準信号の電圧値Ｖｉｐを１ｍｓ毎に記憶して保存するための６０１個の変数（保存値）である。目標空燃比の変更に伴い排気ガスの空燃比がリッチ側からリーン側に移行される場合に使用されるＲＬ遅延バッファとして利用される。初期値には、ＶｉｐＲＬ［ｉ］（ただし、ｉ＝０，１，２，・・・，６００）のすべての記憶エリアに０がセットされる。基準信号を上記第１遅延時間（ＲＬｗ時間）遅延させた第１遅延信号の電圧値は、ＶｉｐＲＬ［ＲＬｗ］で表され、ＲＬｗ時間前に取得された基準信号の電圧値が記憶された記憶エリアが参照される。後述するが、疑似信号生成プログラムの実行にしたがってＶｉｐＬＲ［ｉ］の記憶エリアのシフトが行われることによって、基準信号の現在の電圧値Ｖｉｐを０ｍｓ前の第１遅延信号の電圧値ＶｉｐＲＬ［０］とし、最大６００ｍｓ前までの任意のｉ（ｍｓ）前の第１遅延信号の電圧値ＶｉｐＲＬ［ｉ］を参照できるように、更新が行われる。
【００３１】
同様に、「ＶｉｐＬＲ［ｊ］」（ただし、ｊ＝０，１，２，・・・，６００）もまた、基準センサ２から取得された過去６００ｍｓ前まで基準信号の電圧値Ｖｉｐを１ｍｓ毎に記憶して保存するための６０１個の変数（保存値）である。目標空燃比の変更に伴い排気ガスの空燃比がリーン側からリッチ側に移行される場合に使用されるＬＲ遅延バッファとして利用される。そして上記同様に、初期値として、ＶｉｐＬＲ［ｊ］（ただし、ｊ＝０，１，２，・・・，６００）のすべての記憶エリアに０がセットされる。基準信号を上記第２遅延時間（ＬＲｗ時間）遅延させた第２遅延信号の電圧値は、ＶｉｐＬＲ［ＬＲｗ］で表され、ＬＲｗ時間前に取得された基準信号の電圧値が記憶された記憶エリアが参照される。後述するが、上記同様、疑似信号生成プログラムの実行にしたがってＶｉｐＬＲ［ｊ］の記憶エリアのシフトが行われ、現在の基準信号の電圧値Ｖｉｐを０ｍｓ前の第１遅延信号の電圧値ＶｉｐＬＲ［０］とした最大６００ｍｓ前までの任意のｊ（ｍｓ）前の第２遅延信号の電圧値ＶｉｐＬＲ［ｊ］を参照できるように、更新が行われる。
【００３２】
「ＶｉｐＲＬｍａｘ」は、疑似信号生成プログラムにて生成される第１遅延信号（ＶｉｐＲＬ［ＲＬｗ］）および第２遅延信号（ＶｉｐＬＲ［ＬＲｗ］）を、第１ピークホールド処理にしたがって繋ぎ合わせるため、ＶｉｐＲＬ［ＲＬｗ］に追従してそのピーク値（リーン最大値）を保持するように動的に変動される電圧値である。初期値には電圧値のとりうる最小値（例えば０Ｖ）が設定される。「ＶｉｐＬＲｍｉｎ」も同様に、第２ピークホールド処理において、ＶｉｐＬＲ［ＬＲｗ］に追従してそのピーク値（リッチ最大値）を保持するように動的に変動される電圧値である。初期値には電圧値のとりうる最大値（例えば５Ｖ）が設定される。なお、本実施の形態では、排気ガスの空燃比がリッチ側にある場合に基準センサ２の基準信号の電圧値Ｖｉｐが低い値を表し、リーン側にある場合に高い値を表すため、リッチ側のピーク値としての電圧の最小値をリッチ最大値と呼び、リーン側のピーク値としての電圧の最大値をリーン最大値と呼ぶものとする。もっとも、検出回路部２０の構成を変更して、排気ガスの空燃比がリッチ側にある場合に基準信号の電圧値Ｖｉｐが大きい値を表し、リーン側にある場合に小さい値を表すようにしても差し支えはなく、本実施の形態の疑似信号生成プログラムにおける変数を比較するうえで設けた大小関係は、基準信号の電圧値Ｖｉｐが、リッチ側よりリーン側の方が大きな値を表す場合における一例である。
【００３３】
「ホールドフラグ」は、ピーク値の更新ならびに保持を行うための条件の成立を示すフラグである。ホールドフラグが１の場合、ＶｉｐＲＬｍａｘにはＶｉｐＲＬ［ＲＬｗ］のピーク値（リーン最大値）の更新および保持がなされ、ＶｉｐＬＲｍｉｎにはＶｉｐＬＲ［ＬＲｗ］のピーク値（リッチ最大値）の更新および保持がなされる。また、ホールドフラグが０の場合、ＶｉｐＲＬｍａｘはＶｉｐＲＬ［ＲＬｗ］で書き換えられ、ＶｉｐＬＲｍｉｎはＶｉｐＬＲ［ＬＲｗ］で書き換えられる。
【００３４】
「カウンタ」は、ピーク値の保持が始まってからの経過時間を計時するためのものであり、本実施の形態では、ピーク値が保持されたまま、第１遅延時間（ＲＬｗ）と第２遅延時間（ＬＲｗ）との差分時間（｜ＲＬｗ−ＬＲｗ｜）が経過した場合を、ピーク値の保持を終了する一条件としている。なお、カウンタの値に０がセットされている場合には、カウンタによる計時はなされない。よって、カウンタの値が、０＜カウンタ＜｜ＲＬｗ−ＬＲｗ｜である場合に、カウンタによる計時が行われる。「ＶｉｐＯｕｔ」は、疑似信号生成プログラムの実行によって基準信号から生成される疑似信号の電圧値であり、初期値には０がセットされる。なお、後述する疑似信号生成プログラムの実行において、差分時間（｜ＲＬｗ−ＬＲｗ｜）を算出するＣＰＵ１１が、本発明の「算出手段」に相当し、カウンタが、本発明の「計時手段」に相当する。
【００３５】
次に、図２〜図４に示す、疑似信号生成プログラムの動作について、図５〜図１０に示すグラフを参照しながら説明する。なお、図２〜図４において、フローチャートの各ステップを「Ｓ」と略記する。また、図５〜図１０に示すグラフの時間軸における各タイミングを「Ｔ」と略記する。
【００３６】
本実施の形態の疑似信号生成プログラムは、基準センサ２の出力する基準信号（電圧値Ｖｉｐ）を、検出回路部２０を介して取得し、利用者によって設定された第１遅延時間（ＲＬｗ）と第２遅延時間（ＬＲｗ）とに基づいて、基準信号をそれぞれ遅延させた第１遅延信号（電圧値ＶｉｐＲＬ［ＲＬｗ］）と第２遅延信号（電圧値ＶｉｐＬＲ［ＬＲｗ］）とを生成し、更に両者を繋ぎ合わせて疑似信号（電圧値ＶｉｐＯｕｔ）を生成するプログラムである。
【００３７】
まず、疑似信号生成プログラムによる処理の概要について説明する。本実施の形態の基準センサ２は上述した構成の全領域空燃比センサであり、出力される電流値（換言すれば、酸素ポンプセルを流れる電流値）は、排気ガス中の酸素濃度（換言すれば、排気ガスの空燃比）に応じてリニアに変動する。そして、この電流値は、空燃比が理論空燃比（λ＝１）である場合に０ｍＡとなり、リッチ側（λ＜１）である場合には負の値が示され、リーン側（λ＞１）である場合には正の値が示される。したがって、理論空燃比を境に排気ガスの空燃比がリッチ側とリーン側との間で変化すると、基準信号の電流値もそれに追従して正の値と負の値との間で変動する。センサシミュレータ１では、マイクロコンピュータ１０で基準信号の処理を行うため、検出回路部２０にて電流値が０ｍＡの場合を２．５Ｖとする０Ｖ〜５Ｖの範囲で、リッチ側（電流値が負の値）が低電圧、リーン側（電流値が正の値）が高電圧となるように電流電圧変換が行われている。疑似信号生成プログラムにおいて、基準信号、第１，第２遅延信号、および疑似信号は、電圧値、より具体的には電圧値を示す数値データによって表される。
【００３８】
例えば、混合気の目標空燃比がリッチ側とリーン側とで一定周期で交番され、これに伴い排気ガスの空燃比がリッチ側とリーン側とで交番された場合において、基準センサ２の出力する基準信号の電圧値Ｖｉｐは、図５に示すように、時間の経過にしたがってリッチ側とリーン側との間で周期的に変動を繰り返すグラフとして描かれる（グラフ中、実線で示す。）。この基準信号を元にして、基準信号をＲＬｗ時間遅延させた第１遅延信号（電圧値ＶｉｐＲＬ［ＲＬｗ］）と（グラフ中、１点鎖線で示す。）、基準信号をＬＲｗ時間遅延させた第２遅延信号（電圧値ＶｉｐＬＲ［ＬＲｗ］）と（グラフ中、２点鎖線で示す。）が生成される。このとき、図５に示すように、ＲＬｗ時間よりもＬＲｗ時間が長い場合、第１遅延信号はＴ１からＴ４に電圧値が上昇傾向を示し、Ｔ４以降下降傾向を示す。一方、第２遅延信号は、Ｔ３からＴ６に電圧値が上昇傾向を示し、Ｔ６以降下降傾向を示す。そして、Ｔ１から上昇傾向となる第１遅延信号は、その時点でまだ下降傾向にある第２遅延信号とＴ２にて交差する。また、第１遅延信号がＴ４から下降傾向となり、その時点では上昇傾向にある第２遅延信号とＴ５にて交差する。なお、上記第１遅延信号および第２遅延信号は、後述する図３，図４に示される第１，第２ピークホールド処理で疑似信号を生成する過程において、ＶｉｐＬＲ［ｉ］およびＶｉｐＬＲ［ｊ］がそれぞれＲＬｗ時間、ＬＲｗ時間に基づいて参照されることで一時的に生成されるものであり、そのための処理を行うＣＰＵ１１が、本発明における「第１遅延信号生成手段」および「第２遅延信号生成手段」に相当する。
【００３９】
生成される疑似信号の生成元となる信号には、排気ガスの空燃比がリッチ側からリーン側へ移行中であれば、疑似信号として第１遅延信号が選択され、リーン側からリッチ側へ移行中であれば、疑似信号として第２遅延信号が選択される。すなわち、生成される疑似信号は、その波形の上昇傾向を示す部分が第１遅延信号の波形から構成され、下降傾向を示す部分が第２遅延信号の波形から構成される。具体的に、図５に示すグラフにおいて、Ｔ２以前は第２遅延信号（電圧値ＶｉｐＬＲ［ＬＲｗ］）が疑似信号（電圧値ＶｉｐＯｕｔ）として選択され、Ｔ２からＴ５までは第１遅延信号（電圧値ＶｉｐＲＬ［ＲＬｗ］）が選択される。また、Ｔ５以降は第２遅延信号が疑似信号（電圧値ＶｉｐＯｕｔ）として選択される。
【００４０】
ここで、Ｔ２以降、疑似信号として選択される第１遅延信号は、Ｔ４においてピーク値（リーン最大値）を表すまで上昇傾向を示し、Ｔ４以降は下降傾向を示す。そしてＴ５において第２遅延信号と交差してからは、疑似信号として第２遅延信号が選択されるようになり、この第２遅延信号がＴ６にピーク値を表すまで、疑似信号は再び上昇傾向を示すことになる。そこでピークホールド処理（第１ピークホールド処理）では、Ｔ４に第１遅延信号がピーク値を表してからＴ６に第２遅延信号がピーク値を表すまでの間、そのピーク値を保持し、第１遅延信号と第２遅延信号との結合部分をピーク値で補正する処理を行う。
【００４１】
また、図８に示すように、ＲＬｗ時間よりもＬＲｗ時間が短い場合についても同様の処理が行われる。すなわち、第２ピークホールド処理では、Ｔ１１に第２遅延信号がピーク値（リッチ最大値）を表してからＴ１３に第１遅延信号がピーク値を表すまでの間、そのピーク値を保持し、第２遅延信号と第１遅延信号との結合部分をピーク値で補正する処理が行われる。このようにして、第１遅延信号と第２遅延信号とを繋ぎ合わせる際に、両者の遅延時間の違いに起因するずれの補正が行われる。
【００４２】
なお、上記の第１遅延時間（ＲＬｗ）および第２遅延時間（ＬＲｗ）の設定は、入力部６０から行われる。具体的には疑似信号生成プログラムとは別途実行される入力監視プログラム（図示外）によって、利用者により入力部６０から入力される第１遅延時間および第２遅延時間の設定値が、ＥＥＰＲＯＭ１２に記憶される。利用者により設定される設定値は、ＥＥＰＲＯＭ１２に記憶されることで、センサシミュレータ１の電源遮断時においても保存される。なお、利用者に入力部６０から第１遅延時間および第２遅延時間の設定値を入力させ、それぞれ個別にＥＥＰＲＯＭ１２に記憶させるＣＰＵ１１が、本発明における「遅延時間設定手段」に相当する。
【００４３】
次に、疑似信号生成プログラムによる処理の詳細について説明する。疑似信号生成プログラムは、センサシミュレータ１の電源投入を契機に、保存先のＥＥＰＲＯＭ１２からＲＡＭ１３に読み込まれて実行されることによって開始され、図２に示すように、まず、初期化処理が行われる（Ｓ１０）。初期化処理では、疑似信号生成プログラムで使用される各種変数の初期化が行われる。初期化は、ＥＥＰＲＯＭ１２に記憶された初期値（前述）が読み込まれ、各変数の値として、ＲＡＭ１３に記憶されることで行われる。
【００４４】
次に、待ち時間の経過待ちが行われる（Ｓ１２）。本実施の形態では、疑似信号生成プログラムと並列に図示外のタイマプログラムが実行されており、１ｍｓ毎に同期信号が出力されている。Ｓ１２では同期信号の受信待ちが行われ（Ｓ１２：ＮＯ）、同期信号の受信を契機にＳ１４へ進むように構成されている（Ｓ１２：ＹＥＳ）。そしてＳ１４〜Ｓ２８の各処理が実行され、基準センサ２から取得される基準信号を元に疑似信号が生成されて、ＥＣＵ３に対し出力される。Ｓ２８の処理後にはＳ１２に戻り、次の同期信号の受信待ちが行われる。すなわち、基準信号を加工して疑似信号を生成するＳ１４〜Ｓ２８の処理は、１ｍｓ毎に行われている。
【００４５】
次のユーザ設定処理では、ＥＥＰＲＯＭ１２に記憶された第１遅延時間および第２遅延時間が読み込まれ、それぞれ、変数（ＲＬｗ，ＬＲｗ）の値としてＲＡＭ１３に記憶される（Ｓ１４）。次に、基準信号取得処理では、検出回路部２０およびＡ／Ｄコンバータ３０を介して入力される基準センサ２の基準信号が取得され、その電圧値がＶｉｐとしてＲＡＭ１３に記憶される（Ｓ１６）。なお、Ｓ１６にて基準センサ２の基準信号を取得するＣＰＵ１１が、本発明における「基準信号取得手段」に相当する。
【００４６】
次いで、ＲＬ遅延バッファの更新処理が行われる（Ｓ１８）。前述したように、ＲＬ遅延バッファには第１遅延信号を生成するための保存値ＶｉｐＲＬ［ｉ］として、過去６００ｍｓ間において１ｍｓ毎に取得された基準信号の電圧値Ｖｉｐが記憶される。Ｓ１８の処理では、保存値ＶｉｐＲＬ［ｉ］の値を最新の６００ｍｓ分のものとするための更新処理が行われる。具体的には、まず、ＶｉｐＲＬ［５９９］の値がＶｉｐＲＬ［６００］に上書き記憶される。次にＶｉｐＲＬ［５９８］の値がＶｉｐＲＬ［５９９］に上書き記憶され、以降同様に記憶値のシフトが行われて、最後に、ＶｉｐＲＬ［０］の値がＶｉｐＲＬ［１］に上書き記憶される。そしてＳ１６で取得された最新の基準信号の電圧値Ｖｉｐの値が、ＶｉｐＲＬ［０］に上書き記憶される。
【００４７】
更に、ＬＲ遅延バッファについても同様の処理が行われ、第２遅延信号を生成するための保存値ＶｉｐＬＲ［ｊ］の値を最新の６００ｍｓ分のものとするための更新処理が行われる（Ｓ２０）。すなわち、ＶｉｐＬＲ［０］〜ＶｉｐＬＲ［５９９］の値で、ＶｉｐＬＲ［１］〜ＶｉｐＬＲ［６００］がそれぞれ上書き記憶される。そしてＳ１６で取得された最新の基準信号の電圧値Ｖｉｐの値が、ＶｉｐＲＬ［０］に上書き記憶される。
【００４８】
次に、ＲＡＭ１３に記憶された変数（ＲＬｗ，ＬＲｗ）の値が比較され、このとき第２遅延時間（ＬＲｗ）が第１遅延時間（ＲＬｗ）と同じもしくはそれより長ければ第１ピークホールド処理のサブルーチンがコールされ（Ｓ２２：ＹＥＳ，Ｓ２４）、そうでなければ第２ピークホールド処理のサブルーチンがコールされる（Ｓ２２：ＮＯ，Ｓ２６）。なお、Ｓ２２においてＲＬｗとＬＲｗとを比較し、第１遅延時間と第２遅延時間とのどちらが長いかを比較するＣＰＵ１１が、本発明における「比較手段」に相当する。
【００４９】
第１，第２ピークホールド処理の詳細については後述するが、これらのいずれかの処理を経て、基準センサ２の基準信号の電圧値Ｖｉｐを元に、電圧値ＶｉｐＯｕｔの疑似信号が生成される。次の疑似信号出力処理では、生成された疑似信号の電圧値ＶｉｐＯｕｔがＤ／Ａコンバータ５０（図１参照）に対して出力される（Ｓ２８）。Ｄ／Ａコンバータ５０では、前述したように、電圧値ＶｉｐＯｕｔがＤ／Ａ変換される。そして出力バッファ４０を介し、疑似信号がＥＣＵ３に送信される。その後Ｓ１２に戻り、前回のＳ１２〜Ｓ２８の処理の開始から待ち時間（１ｍｓ）の経過後に次回のＳ１２〜Ｓ２８の処理が開始され、取得される基準信号の電圧値Ｖｉｐを元に、電圧値ＶｉｐＯｕｔの疑似信号の生成が行われる。
【００５０】
［第１ピークホールド処理］
次に、第１ピークホールド処理について説明する。利用者により設定された第２遅延時間（ＬＲｗ）が、第１遅延時間（ＲＬｗ）と同じもしくはそれよりも長い場合には（Ｓ２２：ＹＥＳ）、図２に示すメインルーチンから、図３に示す第１ピークホールド処理のサブルーチンがコールされる（Ｓ２４）。
【００５１】
上記したように、排気ガスの空燃比がリッチ側からリーン側への移行中であって、基準信号（電圧値Ｖｉｐ）が上昇傾向を示す場合には、疑似信号として第１遅延信号が選択される。そして、排気ガスの空燃比がリーン側からリッチ側への移行中であって、基準信号が下降傾向を示す場合には、疑似信号として第２遅延信号が選択される。第１遅延時間（ＲＬｗ）が第２遅延時間（ＬＲｗ）よりも短く設定された場合において、図５のグラフに示すように、基準信号（図中、実線で示す。）が上昇傾向を示す場合には、第１遅延信号（ＶｉｐＲＬ［ＲＬｗ］；１点鎖線）は、第２遅延信号（ＶｉｐＬＲ［ＬＲｗ］；２点鎖線）よりも高い電圧値を示す。一方、基準信号が下降傾向を示す場合には、第１遅延信号は第２遅延信号よりも低い電圧値を示す。ゆえに、図３に示す、第１ピークホールド処理では、まず、ＶｉｐＬＲ［ＬＲｗ］がＶｉｐＲＬ［ＲＬｗ］より大きいか否かの確認がなされ、基準信号が下降傾向にある場合と上昇傾向にある場合との場合分けが行われる（Ｓ３０）。
【００５２】
基準信号が下降傾向にあってＶｉｐＬＲ［ＬＲｗ］がＶｉｐＲＬ［ＲＬｗ］より大きい場合には（Ｓ３０：ＹＥＳ）、Ｓ４２に進むが、初期状態ではホールドフラグが非成立となっており（Ｓ４２：ＮＯ）、ピーク値の更新ならびに保持がなされないように、カウンタに０をセットすることによる計時停止状態の維持が行われるとともに（Ｓ５２）、ホールドフラグにあらためて０をセットして、非成立の状態が維持される（Ｓ５４）。また、その時点におけるＶｉｐＲＬ［ＲＬｗ］で上書きすることによるＶｉｐＲＬｍａｘの更新（再設定）が行われる（Ｓ５６）。その上で、疑似信号の電圧値ＶｉｐＯｕｔとして第２遅延信号の電圧値ＶｉｐＬＲ［ＬＲｗ］がセットされ（Ｓ５８）、図２のメインルーチンに戻ってＳ２８に進み、ＥＣＵ３に対し出力される。例えば図６に示すように、基準信号をＲＬｗ時間遅延させた第１遅延信号は、Ｔ１以前は下降傾向にあり、Ｔ１からは上昇傾向に転ずるが、Ｔ２において第１遅延信号と第２遅延信号とが交差するまで、ＶｉｐＬＲ［ＬＲｗ］がＶｉｐＲＬ［ＲＬｗ］よりも大きい値を示す。よってＴ２以前は、第１ピークホールド処理ではＳ３０，Ｓ４２，Ｓ５２，Ｓ５４，Ｓ５６，Ｓ５８（図３参照）の順に進み、ＶｉｐＬＲ［ＬＲｗ］がＶｉｐＯｕｔとして出力されると共に、ＶｉｐＲＬｍａｘは、ＶｉｐＲＬ［ＲＬｗ］で再設定される。なお、Ｓ４２で、ホールドフラグが０である場合に、Ｓ５６で、ＶｉｐＲＬｍａｘをＶｉｐＲＬ［ＲＬｗ］で上書きして再設定するＣＰＵ１１が、本発明における「第１再設定手段」に相当する。
【００５３】
そしてＴ２以降、Ｔ５に第１遅延信号と第２遅延信号とが再び交差するまでは、ＶｉｐＲＬ［ＲＬｗ］がＶｉｐＬＲ［ＬＲｗ］よりも大きな値を示すようになる（図３、Ｓ３０：ＮＯ）。図３に示す、第１ピークホールド処理では、ホールドフラグに１が設定され（Ｓ３２）、以降、ピーク値（リーン最大値）の更新ならびに保持が行われるようになる。次に、ＶｉｐＲＬ［ＲＬｗ］とＶｉｐＲＬｍａｘとが比較される。第１遅延信号が上昇傾向を維持するＴ４（図５参照）までは、ＶｉｐＲＬ［ＲＬｗ］がＶｉｐＲＬｍａｘと同じもしくはそれよりも大きい値を示す（Ｓ３４：ＹＥＳ）。この期間（Ｔ２〜Ｔ４）は、その時点におけるＶｉｐＲＬ［ＲＬｗ］が最大値となるので、ＶｉｐＲＬｍａｘが更新される（Ｓ３６）。また、カウンタに１をセットすることで、カウンタの停止状態の解除が行われる（Ｓ３８）。つまり、その時点におけるＶｉｐＲＬ［ＲＬｗ］がＶｉｐＲＬｍａｘよりも大きい値をとる限り、カウンタによる計時が行われるものの値が１にリセット（初期化）されるため、実質的にカウントが保留された状態となる。なお、カウンタの値が加算されている場合でも、ＶｉｐＲＬ［ＲＬｗ］がＶｉｐＲＬｍａｘより大きい値をとれば、カウンタが１にリセットされることになる。その上で、疑似信号の電圧値ＶｉｐＯｕｔとして、Ｓ３６で更新された、第１遅延信号の電圧値ＶｉｐＲＬ［ＲＬｗ］に由来する電圧値ＶｉｐＲＬｍａｘがセットされ（Ｓ５０）、図２のメインルーチンに戻ってＳ２８に進み、ＥＣＵ３に対し出力される。具体的に、図６，図７に示すように、Ｔ２〜Ｔ４では、ＶｉｐＲＬ［ＲＬｗ］によってＶｉｐＲＬｍａｘが更新され、そのままＶｉｐＯｕｔとして出力されることになる。これは、その時点における第１遅延信号であるＶｉｐＲＬ［ＲＬｗ］が、そのままＶｉｐＯｕｔとして出力されることを意味する。なお、Ｓ３４で、ＶｉｐＲＬ［ＲＬｗ］とＶｉｐＲＬｍａｘを比較し、ＶｉｐＲＬ［ＲＬｗ］が大きい場合に、Ｓ３６でＶｉｐＲＬｍａｘをＶｉｐＲＬ［ＲＬｗ］で更新するＣＰＵ１１が、本発明における「第１更新手段」に相当する。また、Ｓ３４で、ＶｉｐＲＬｍａｘが大きい場合に、ＶｉｐＲＬｍａｘの値を維持し、そのまま、Ｓ５０でＶｉｐＯｕｔにＶｉｐＲＬｍａｘをセットするＣＰＵ１１が、本発明における「第１出力手段」に相当する。
【００５４】
Ｔ４以降、Ｔ５までは、ＶｉｐＲＬ［ＲＬｗ］がＶｉｐＬＲ［ＬＲｗ］よりも大きな値を示すが（図３、Ｓ３０：ＮＯ）、第１遅延信号が下降傾向となるので、ＶｉｐＲＬ［ＲＬｗ］がＶｉｐＲＬｍａｘよりも小さい値を示すようになる（図３、Ｓ３４：ＮＯ）。したがってリーン側のピーク値（リーン最大値）を保持するため、図３に示す、第１ピークホールド処理では、カウンタのインクリメントがなされ、保留状態が解除される（Ｓ４６）。次いで、ピーク値がノイズ等による一時的なものである場合にも適切な処理を行えるようにするため、ＶｉｐＲＬｍａｘがＶｉｐＬＲ［ＬＲｗ］よりも大きいか、確認がなされる。大きければ（Ｓ４８：ＹＥＳ）、ＶｉｐＲＬｍａｘが、更新されることなくそのまま、ＶｉｐＯｕｔとして出力される（Ｓ５０）。
【００５５】
次に、図７に示すように、Ｔ５に第１遅延信号と第２遅延信号とが交差すると、以降は再びＶｉｐＬＲ［ＬＲｗ］がＶｉｐＲＬ［ＲＬｗ］よりも大きな値を示すようになる（図３、Ｓ３０：ＹＥＳ）。Ｓ３２で成立したホールドフラグは維持されており（Ｓ４２：ＹＥＳ）、Ｔ５には、ピーク値の保持がなされている。また、Ｔ２にカウンタの停止状態が解除されているので、カウンタは０よりも大きな値となっている。さらにＴ４以降、カウンタのリセットがなされなくなり（保留状態が解除され）、カウンタがインクリメントされている。図３に示すように、カウンタの値が第１遅延時間（ＲＬｗ）と第２遅延時間（ＬＲｗ）との差分時間（｜ＲＬｗ−ＬＲｗ｜）に達しないうちは（Ｓ４４：ＮＯ）、カウントが継続される（Ｓ４６）。ここで、ＶｉｐＲＬｍａｘがＶｉｐＬＲ［ＬＲｗ］よりも大きいうちは（Ｓ４８：ＹＥＳ）、ＶｉｐＲＬｍａｘは更新されず、リーン側のピーク値を保持したまま、ＶｉｐＯｕｔとして出力される（Ｓ５０）。しかし、上昇傾向にあるＶｉｐＬＲ［ＬＲｗ］がＶｉｐＲＬｍａｘに達し（図７、Ｔ６参照）、あるいはそれ以上となれば（Ｓ４８：ＮＯ）、上記したＳ５２〜Ｓ５８が実行されてＴ２以前の状態と同様となり、以降はＶｉｐＬＲ［ＬＲｗ］がＶｉｐＯｕｔとして出力される。なお、Ｓ４２でホールドフラグが１の場合に、Ｓ４８で、ＶｉｐＬＲ［ＬＲｗ］とＶｉｐＲＬｍａｘを比較し、ＶｉｐＲＬｍａｘが大きい場合に、ＶｉｐＲＬｍａｘの値を維持し、そのまま、Ｓ５０でＶｉｐＯｕｔにＶｉｐＲＬｍａｘをセットするＣＰＵ１１が、本発明における「第１継続手段」に相当する。
【００５６】
具体的に、図７に示すように、第２遅延信号はＴ６にリーン側のピーク値を表す。前述したように、第１遅延信号と第２遅延信号は、基準信号を元に、それぞれＲＬｗ時間とＬＲｗ時間遅らせた遅延信号であるので、第２遅延信号は、第１遅延信号よりも｜ＲＬｗ−ＬＲｗ｜時間遅れてリーン側のピーク値を表す。よってＶｉｐＬＲ［ＬＲｗ］がＶｉｐＲＬｍａｘと同じもしくはそれより大きくなるので（Ｓ４８：ＮＯ）、Ｓ５２〜Ｓ５８が実行されてカウンタが０に設定されるとともに、ホールドフラグも０となる。つまり、ピーク値のホールド状態が終了となり、以降は上記のＴ２以降と同様、ＶｉｐＯｕｔとしてＶｉｐＬＲ［ＬＲｗ］が出力されるようになる。
【００５７】
なお、Ｔ６において、諸事情によりＶｉｐＬＲ［ＬＲｗ］がＶｉｐＲＬｍａｘに達しなかった場合、Ｓ４８ではＹＥＳに進むので、ホールドフラグが０とならず、１のまま維持されてしまう。しかし、Ｔ４からカウントが行われているカウンタの値がＴ６に差分時間（｜ＲＬｗ−ＬＲｗ｜）に達するため（Ｓ４４：ＹＥＳ）、Ｓ５２〜Ｓ５８が実行されてカウンタが０に設定されるとともに、ホールドフラグも０に設定される。よって、ピーク値のホールド状態が強制終了され、以降は上記のＴ２以降と同様、ＶｉｐＯｕｔとしてＶｉｐＬＲ［ＬＲｗ］が出力されるようになる。なお、各条件に基づいて、Ｓ５０、Ｓ５８、Ｓ８０またはＳ８８で疑似信号（電圧値ＶｉｐＯｕｔ）として出力する信号値を選択（設定）するＣＰＵ１１が、本発明における「疑似信号生成手段」に相当する。
【００５８】
［第２ピークホールド処理］
次に、第２ピークホールド処理について説明する。利用者により第１遅延時間（ＲＬｗ）よりも第２遅延時間（ＬＲｗ）が短く設定された場合には（図２、Ｓ２２：ＮＯ）、図２に示すメインルーチンから、図４に示す第２ピークホールド処理のサブルーチンがコールされる（Ｓ２６）。
【００５９】
第１遅延時間（ＲＬｗ）が第２遅延時間（ＬＲｗ）よりも長く設定された場合において、図８のグラフに示すように、基準信号（図中、実線で示す。）が下降傾向を示す場合には、第１遅延信号（ＶｉｐＲＬ［ＲＬｗ］；１点鎖線）は、第２遅延信号（ＶｉｐＬＲ［ＬＲｗ］；２点鎖線）よりも高い電圧値を示す。一方、基準信号が上昇傾向を示す場合には、第１遅延信号は第２遅延信号よりも低い電圧値を示す。図４に示す、第２ピークホールド処理では、まず、第１ピークホールド処理と同様に、ＶｉｐＬＲ［ＬＲｗ］がＶｉｐＲＬ［ＲＬｗ］より大きいか否かの確認がなされ、基準信号が下降傾向にある場合と上昇傾向にある場合との場合分けが行われる（Ｓ６０）。
【００６０】
基準信号が下降傾向にあってＶｉｐＲＬ［ＲＬｗ］がＶｉｐＬＲ［ＬＲｗ］と同じもしくはそれより大きい場合には（Ｓ６０：ＮＯ）、基準信号をＬＲｗ時間遅延させた第２遅延信号も、下降傾向を示す。この状態では、ピーク値（リッチ最小値）の更新ならびに保持が行われるように、ホールドフラグに１が設定される（Ｓ６２）。第２遅延信号が下降傾向を維持するＴ１１（図８参照）までは、ＶｉｐＬＲ［ＬＲｗ］がＶｉｐＬＲｍｉｎと同じもしくはそれよりも小さい値を示すことになる（Ｓ６４：ＹＥＳ）。第２遅延信号が下降傾向を示すうちは、その時点におけるＶｉｐＬＲ［ＬＲｗ］が最小値となるので、ＶｉｐＬＲｍｉｎが更新される（Ｓ６６）。また、カウンタに１をセットすることで、カウンタの停止状態の解除が行われる（Ｓ６８）。つまり、その時点におけるＶｉｐＬＲ［ＬＲｗ］がＶｉｐＬＲｍｉｎよりも小さい値をとる限り、カウンタによる計時が行われるものの値が１にリセットされ、実質的にカウントが保留された状態となる。なお、上記同様、カウンタの値が加算されている場合でも、ＶｉｐＬＲ［ＬＲｗ］がＶｉｐＬＲｍｉｎより小さい値をとれば、カウンタが１にリセットされることになる。その上で、疑似信号の電圧値ＶｉｐＯｕｔとして、Ｓ６６で更新された、第２遅延信号の電圧値ＶｉｐＬＲ［ＬＲｗ］に由来する電圧値ＶｉｐＬＲｍｉｎがセットされ（Ｓ８０）、図２のメインルーチンに戻ってＳ２８に進み、ＥＣＵ３に対し出力される。具体的に、図９に示すように、Ｔ１１以前は、ＶｉｐＬＲ［ＬＲｗ］によってＶｉｐＬＲｍｉｎが更新され、そのままＶｉｐＯｕｔとして出力されることになる。これは、その時点における第２遅延信号であるＶｉｐＬＲ［ＬＲｗ］が、そのままＶｉｐＯｕｔとして出力されることを意味する。なお、Ｓ６４で、ＶｉｐＬＲ［ＬＲｗ］とＶｉｐＬＲｍｉｎを比較し、ＶｉｐＬＲ［ＬＲｗ］が小さい場合に、Ｓ６６でＶｉｐＬＲｍｉｎをＶｉｐＬＲ［ＬＲｗ］で更新するＣＰＵ１１が、本発明における「第２更新手段」に相当する。また、Ｓ６４で、ＶｉｐＬＲｍｉｎが小さい場合に、ＶｉｐＬＲｍｉｎの値を維持し、そのまま、Ｓ８０でＶｉｐＯｕｔにＶｉｐＬＲｍｉｎをセットするＣＰＵ１１が、本発明における「第２出力手段」に相当する。
【００６１】
Ｔ１１以降、Ｔ１２までは、ＶｉｐＲＬ［ＲＬｗ］がＶｉｐＬＲ［ＬＲｗ］と同じもしくはそれより大きな値を示すが（図４、Ｓ６０：ＮＯ）、第２遅延信号が上昇傾向となるので、ＶｉｐＬＲ［ＬＲｗ］は、ＶｉｐＬＲｍｉｎよりも大きな値を示すようになる（図４、Ｓ６４：ＮＯ）。したがってリッチ側のピーク値を保持するため、図４に示す、第２ピークホールド処理では、カウンタのインクリメントがなされ、保留状態が解除される（Ｓ７６）。次いで、ピーク値がノイズ等による一時的なものである場合にも適切な処理を行えるようにするため、ＶｉｐＬＲｍｉｎがＶｉｐＲＬ［ＲＬｗ］よりも小さいか、確認がなされる。小さければ（Ｓ７８：ＹＥＳ）、ＶｉｐＬＲｍｉｎが、更新されることなくそのまま、ＶｉｐＯｕｔとして出力される（Ｓ８０）。
【００６２】
そして図９に示すように、Ｔ１２に第２遅延信号と第１遅延信号とが交差すると、以降はＶｉｐＲＬ［ＲＬｗ］がＶｉｐＬＲ［ＬＲｗ］よりも小さな値を示すようになる（図４、Ｓ６０：ＹＥＳ）。Ｓ６２で成立したホールドフラグは維持されており（Ｓ７２：ＹＥＳ）、Ｔ１２には、ピーク値の保持がなされている。また、Ｔ１１以降、カウンタのリセットがなされなくなり（保留状態が解除され）、カウンタがインクリメントされているので、カウンタは０よりも大きな値となっている。図４に示すように、カウンタの値が第１遅延時間（ＲＬｗ）と第２遅延時間（ＬＲｗ）との差分時間（｜ＲＬｗ−ＬＲｗ｜）に達しないうちは（Ｓ７４：ＮＯ）、カウントが継続される（Ｓ７６）。ここで、ＶｉｐＬＲｍｉｎがＶｉｐＲＬ［ＲＬｗ］よりも小さいうちは（Ｓ７８：ＹＥＳ）、ＶｉｐＬＲｍｉｎは更新されず、リッチ側のピーク値を保持したまま、ＶｉｐＯｕｔとして出力される（Ｓ８０）。しかし、下降傾向にあるＶｉｐＲＬ［ＲＬｗ］がＶｉｐＬＲｍｉｎに達し（図９、Ｔ１３参照）、あるいはそれ以下となれば（Ｓ７８：ＮＯ）、Ｓ８２に進むこととなる。なお、Ｓ７２でホールドフラグが１の場合に、Ｓ７８で、ＶｉｐＲＬ［ＲＬｗ］とＶｉｐＬＲｍｉｎを比較し、ＶｉｐＬＲｍｉｎが小さい場合に、ＶｉｐＬＲｍｉｎの値を維持し、そのまま、Ｓ８０でＶｉｐＯｕｔにＶｉｐＬＲｍｉｎをセットするＣＰＵ１１が、本発明における「第２継続手段」に相当する。
【００６３】
Ｓ８２では、以降、ピーク値の更新ならびに保持がなされないように、カウンタに０をセットすることによる計時停止状態の維持が行われ（Ｓ８２）、また、ホールドフラグに０をセットして、非成立の状態が維持される（Ｓ８４）。そして、その時点におけるＶｉｐＬＲ［ＬＲｗ］で上書きすることによるＶｉｐＬＲｍｉｎの更新（再設定）が行われる（Ｓ８６）。その上で、疑似信号の電圧値ＶｉｐＯｕｔとして第１遅延信号の電圧値ＶｉｐＲＬ［ＲＬｗ］がセットされ（Ｓ８８）、図２のメインルーチンに戻ってＳ２８に進み、ＥＣＵ３に対し出力される。以降は、ホールドフラグが０であるので（Ｓ７２：ＮＯ）、Ｓ８２〜Ｓ８８が実行されるようになる。なお、Ｓ７２で、ホールドフラグが０である場合に、Ｓ８６で、ＶｉｐＬＲｍｉｎをＶｉｐＬＲ［ＬＲｗ］で上書きして再設定するＣＰＵ１１が、本発明における「第２再設定手段」に相当する。
【００６４】
具体的に、図９に示すように、第１遅延信号はＴ１３にリッチ側のピーク値を表す。前述したように、第１遅延信号と第２遅延信号は、基準信号を元に、それぞれＲＬｗ時間とＬＲｗ時間遅らせた遅延信号であるので、第１遅延信号は、第２遅延信号よりも｜ＲＬｗ−ＬＲｗ｜時間遅れてリーン側のピーク値を表す。よってＶｉｐＲＬ［ＲＬｗ］がＶｉｐＬＲｍｉｎと同じもしくはそれより小さくなるので（Ｓ７８：ＮＯ）、Ｓ８２〜Ｓ８８が実行されてカウンタが０に設定されるとともに、ホールドフラグも０となる。つまり、ピーク値のホールド状態が終了となり、以降は、ＶｉｐＯｕｔとしてＶｉｐＲＬ［ＲＬｗ］が出力されるようになる（Ｓ８８）。
【００６５】
なお、Ｔ１３において、諸事情によりＶｉｐＲＬ［ＲＬｗ］がＶｉｐＬＲｍｉｎに達しなかった場合、Ｓ７８ではＹＥＳに進むので、ホールドフラグが０とならず、１のまま維持されてしまう。しかし、Ｔ１１からカウントが行われているカウンタの値がＴ１３に差分時間（｜ＲＬｗ−ＬＲｗ｜）に達するため（Ｓ７４：ＹＥＳ）、Ｓ８２〜Ｓ８８が実行されてカウンタが０に設定されるとともに、ホールドフラグも０に設定される。よって、ピーク値のホールド状態が強制終了され、以降は上記同様、ＶｉｐＯｕｔとしてＶｉｐＲＬ［ＲＬｗ］が出力されるようになる。
【００６６】
Ｔ１３以降、基準信号は上昇傾向にある。図９，図１０に示すように、Ｔ１４からは再び下降傾向に転ずるが、Ｔ１５において第２遅延信号と第１遅延信号とが交差するまでこの状態が続き、ＶｉｐＲＬ［ＲＬｗ］がＶｉｐＬＲ［ＬＲｗ］より小さい値を示す（Ｓ６０：ＹＥＳ）。よってＴ１５以前は、第２ピークホールド処理では、ホールドフラグが０のまま維持されるため（Ｓ７２：ＮＯ）、上記のＳ８２〜Ｓ８８が実行され、疑似信号の電圧値ＶｉｐＯｕｔとしてセットされた第１遅延信号の電圧値ＶｉｐＲＬ［ＲＬｗ］が、ＥＣＵ３に対し出力される。
【００６７】
そしてＴ１４から下降傾向となった第２遅延信号が、上昇傾向の第１遅延信号と再び交差するＴ１５以降は、Ｔ１１以前のように、再度、ＶｉｐＲＬ［ＲＬｗ］がＶｉｐＬＲ［ＬＲｗ］と同じもしくはそれよりも大きな値を示すようになる（図４、Ｓ６０：ＮＯ）。Ｔ１６に第１遅延信号がリーン側のピーク値を表して下降傾向に転じても、ＶｉｐＲＬ［ＲＬｗ］はＶｉｐＬＲ［ＬＲｗ］より大きな値を示すので、ＶｉｐＬＲ［ＬＲｗ］によってＶｉｐＬＲｍｉｎが更新され、そのままＶｉｐＯｕｔとして出力されることになる。
【００６８】
このように、第１遅延時間（ＲＬｗ）が第２遅延時間（ＬＲｗ）よりも短く設定された場合においては、第１ピークホールド処理が実行され、第１遅延信号がリーン側のピーク値を表してから第２遅延信号がリーン側のピーク値を表すまでの間、第１遅延信号のピーク値に由来する電圧値ＶｉｐＲＬｍａｘが維持される。一方、第１遅延時間が第２遅延時間よりも長く設定された場合においては、第２ピークホールド処理が実行され、第２遅延信号がリッチ側のピーク値を表してから第１遅延信号がリッチ側のピーク値を表すまでの間、第２遅延信号のピーク値に由来する電圧値ＶｉｐＬＲｍｉｎが維持される。よって、第１遅延信号と第２遅延信号とが交差する前後の時期において、疑似信号の出力値が上下に変動することを抑制し、より精密な疑似信号を生成することができる。
【００６９】
ところで、基準信号に外乱ノイズが混入し、例えば図１１の円Ｅや円Ｆで示す期間のように、基準信号の電圧値が短時間のうちに上下に変動した場合、第１遅延信号および第２遅延信号も、同様の上下変動を生ずる。なお、図１１は、第２遅延時間（ＬＲｗ）が第１遅延時間（ＲＬｗ）よりも長い場合を例としたものであり、疑似信号生成プログラムでは図３の第１ピークホールド処理が選択される。以下、図３および図１１〜図１３を参照し、ノイズ混入時の処理について説明する。
【００７０】
基準信号が上昇傾向にあるときに外乱ノイズの影響を受けたときに、図１２に示すように、Ｔ２１に、第１遅延信号（電圧値ＶｉｐＲＬ［ＲＬｗ］）が一時的にリーン側のピーク値（リーン最大値）を表し、その後、下降傾向を示す場合がある。この場合、前述と同様、Ｔ２１以降はＴ２１における第１遅延信号の電圧値がＶｉｐＲＬｍａｘとして維持され、疑似信号の電圧値ＶｉｐＯｕｔとして出力される（Ｓ３４：ＮＯ）。さらに基準信号が上昇傾向に転じ、Ｔ２２に、第１遅延信号の電圧値がＶｉｐＲＬｍａｘよりも大きくなると（Ｓ３４：ＹＥＳ）、電圧値ＶｉｐＲＬｍａｘが、再び、電圧値ＶｉｐＲＬ［ＲＬｗ］で更新されるようになり（Ｓ３６）、ＶｉｐＲＬ［ＲＬｗ］由来の疑似信号が出力される。再度、基準信号が外乱ノイズの影響を受け、第１遅延信号がＴ２３に一時的なピーク値（リーン最大値）を表した場合にも、Ｔ２１〜Ｔ２２と同様の処理がなされ、Ｔ２４までの間、Ｔ２３における第１遅延信号の電圧値がＶｉｐＲＬｍａｘとして維持されて、疑似信号の電圧値ＶｉｐＯｕｔとして出力される。このように、第１遅延信号が上昇傾向にあるときにリーン側に一時的なピーク値を表し、その後に第１遅延信号の電圧値が変動しようとも、ピーク値がＶｉｐＲＬｍａｘとして維持されて疑似信号の電圧値ＶｉｐＯｕｔとして出力されるので、疑似信号が短時間のうちに上下に激しく変動することがなく、ノイズの影響を受けにくい。なお、第１遅延信号はＴ２５に再度ピーク値を表すが、以降は下降傾向となる。この場合には、第２遅延信号がＴ２６にピーク値を表すまで、Ｔ２５における第１遅延信号の電圧値がＶｉｐＲＬｍａｘとして維持され、疑似信号の電圧値ＶｉｐＯｕｔとして出力され、Ｔ２６以降、第２遅延信号の電圧値ＶｉｐＬＲ［ＬＲｗ］が、疑似信号の電圧値ＶｉｐＯｕｔとして出力されることは、前述と同様である。
【００７１】
また、基準信号が下降傾向にあるときに外乱ノイズの影響を受け、図１３に示すように、Ｔ３１に、第１遅延信号（電圧値ＶｉｐＲＬ［ＲＬｗ］）が一時的に、リッチ側に大きなピーク値を表す場合がある。第２遅延信号（電圧値ＶｉｐＬＲ［ＬＲｗ］）は、Ｔ３１から｜ＲＬｗ−ＬＲｗ｜時間が経過したＴ３５に、同様のリッチ側のピーク値を表す。このときに、第２遅延信号のピーク電圧値が第１遅延信号の電圧値よりも小さな電圧値を表すのであれば、両者が交差するＴ３３において、疑似信号生成プログラムでは基準信号が上昇傾向にある場合と同様の処理の流れに移行する。すなわち、基準信号が下降傾向にあり、第２遅延信号が疑似信号の電圧値ＶｉｐＯｕｔとして出力される処理（Ｓ５８）から、第１遅延信号が出力される処理（Ｓ５０）に移行する。Ｔ３３以降、第１遅延信号の電圧値ＶｉｐＲＬ［ＲＬｗ］が第２遅延信号の電圧値ＶｉｐＲＬ［ＲＬｗ］より大きくなると（Ｓ３０：ＮＯ）、ホールドフラグに１が設定されるとともに（Ｓ３２）、第１遅延信号の現在の電圧値ＶｉｐＲＬ［ＲＬｗ］とＶｉｐＲＬｍａｘが比較される（Ｓ３４）。第１遅延信号は下降傾向にあるため、ＶｉｐＲＬｍａｘとして保持されている第１遅延信号の前回（Ｔ３２）の電圧値ＶｉｐＲＬ［ＲＬｗ］（Ｓ５６にて保持されている）が現在（Ｔ３４）の電圧値より大きく（Ｓ３４：ＮＯ）、疑似信号の電圧値ＶｉｐＯｕｔとして出力されることとなる（Ｓ５０）。再び第１遅延信号と第２遅延信号が交差するＴ３６以降は、第２遅延信号が第１遅延信号より大きな電圧値を表す（Ｓ３０：ＹＥＳ）。Ｔ３６には、まだホールドフラグが１であり（Ｓ４２：ＹＥＳ）、また、ノイズによる短時間の変動のためカウンタが｜ＲＬｗ−ＬＲｗ｜時間の経過をカウントするまでもなく（Ｓ４４：ＮＯ）、ＶｉｐＬＲ［ＬＲｗ」はＶｉｐＲＬｍａｘに到達する前は（Ｓ４８：ＹＥＳ）、ＶｉｐＲＬｍａｘが疑似信号の電圧値ＶｉｐＯｕｔとして出力される（Ｓ５０）。そしてＴ３７にＶｉｐＬＲ［ＬＲｗ」がＶｉｐＲＬｍａｘに到達するないし上回ると（Ｓ４８：ＮＯ）、Ｓ５２〜Ｓ５８の処理が実行されてホールドフラグが０となる。よって、Ｔ３７以降において、第２遅延信号（ＶｉｐＬＲ［ＬＲｗ］）が疑似信号の電圧値ＶｉｐＯｕｔとして出力される処理（Ｓ５８）に戻る。このように、第１遅延信号が下降傾向にあるときに、第２遅延信号が急変して第１遅延信号がリッチ側に一時的なピーク値を表した場合においても、第１遅延信号と第２遅延信号とが交差した際のＶｉｐＲＬｍａｘが、疑似信号の電圧値ＶｉｐＯｕｔとして出力される。よって、Ｔ３５に第２遅延信号がリッチ側のピーク値を表したときの電圧値ＶｉｐＬＲ［ＬＲｗ］が、疑似信号の電圧値ＶｉｐＯｕｔとして出力されることはない。このため、疑似信号が短時間のうちに上下に激しく変動することがなく、ノイズの影響を受けにくい。
【００７２】
なお、本発明は上記実施の形態に限られず、各種の変形が可能である。本実施の形態では、基準信号や遅延信号はリッチ時に低い値を表し、リーン時に高い値を表したが、リッチ時に高い値を表し、リーン時に低い値を表してもよい。なお、信号値を電圧値の大小で表したため、電圧値のピーク値を、便宜上、最大値，最小値をもって説明したが、前述したように、それぞれリッチ側またはリーン側における最大値，リーン側またはリッチ側における最大値を意味するものである。また、各信号の値は電圧値のデータとして処理を行ったが、これに限らず、電流値のデータとして処理してもよい。
【００７３】
また、疑似信号生成プログラムではカウンタによる差分時間（｜ＲＬｗ−ＬＲｗ｜）の計時を、ピーク値の保持を終了する一条件としたが、カウンタを用いないものとしてもよい。たとえば、図３の第１ピークホールド処理の場合、Ｓ３８、Ｓ４４、Ｓ４６、Ｓ５２の各処理を削除し、Ｓ４２がＹＥＳならＳ４８へ、ＮＯならＳ５４へ進むようにする。また、図４の第２ピークホールド処理についても同様であり、Ｓ６８、Ｓ７４、Ｓ７６、Ｓ８２の各処理を削除し、Ｓ７２がＹＥＳならＳ７８へ、ＮＯならＳ８４へ進むようにする。このようにしても、出力される疑似信号は、本実施の形態と同じ値を出力できる。すなわち、本実施の形態のようにカウンタを設ければ、諸事情により、第２遅延信号（または第１遅延信号）が差分時間（｜ＲＬｗ−ＬＲｗ｜）後に第１遅延信号（または第２遅延信号）に到達しなかった場合に強制的にピークホールド状態を終了させることができる。ゆえに、ノイズ等により基準信号に想定外の変動が生じても、生成される疑似信号には、その影響が及びにくい。
【００７４】
また、センサシミュレータ１にＵＳＢやＲＳ２３２Ｃ等の入出力インターフェイスを設け、対応するケーブルを用いてパーソナルコンピュータに接続し、設定値等の入力や表示確認等を行ってもよい。また、基準センサ２の基準信号や、生成した疑似信号をその入出力インターフェイスを介してパーソナルコンピュータに出力し、パーソナルコンピュータ上で出力波形を生成してモニタリングできるようにしてもよいし、もちろん、表示部８０に出力波形を表示させてもよい。
【００７５】
また、ＥＥＰＲＯＭ１２に、設定値の組み合わせを複数種類記憶できるようにしてもよい。つまり、基準センサ２として空燃比センサを用いた場合やＮＯｘセンサを用いた場合など、それぞれのセンサ向けに設定した設定値を読み込めるようにすれば、接続するセンサを取り換える度に設定値を入れ直す手間を省くことができる。もちろん、ＥＥＰＲＯＭ１２ではなく一般的なＲＯＭを用い、これら設定値の組み合わせをプリセット値として保存してもよい。
【００７６】
また、本実施の形態では、疑似信号生成プログラムを実行することでソフトウェア的に基準信号から疑似信号を生成したが、ロジック回路を構成したアナログまたはデジタルハードウェア回路を作製し、疑似信号の生成を行ってもよい。
【産業上の利用可能性】
【００７７】
各種ガスセンサが劣化した状態において出力する疑似信号を疑似的に生成することができる疑似信号生成装置に適用することができる。
【符号の説明】
【００７８】
１    センサシミュレータ
２    基準センサ
１１    ＣＰＵ
１２    ＥＥＰＲＯＭ
１３    ＲＡＭ
６０    入力部
【図１】
2010270661.tif 000003
【図２】
2010270661.tif 000004
【図３】
2010270661.tif 000005
【図４】
2010270661.tif 000006
【図５】
2010270661.tif 000007
【図６】
2010270661.tif 000008
【図７】
2010270661.tif 000009
【図８】
2010270661.tif 000010
【図９】
2010270661.tif 000011
【図１０】
2010270661.tif 000012
【図１１】
2010270661.tif 000013
【図１２】
2010270661.tif 000014
【図１３】
2010270661.tif 000015