JP2011185274A - ガスセンサの劣化信号発生装置 - Google Patents

ガスセンサの劣化信号発生装置 Download PDF

Info

Publication number
JP2011185274A
JP2011185274A JP2011108563A JP2011108563A JP2011185274A JP 2011185274 A JP2011185274 A JP 2011185274A JP 2011108563 A JP2011108563 A JP 2011108563A JP 2011108563 A JP2011108563 A JP 2011108563A JP 2011185274 A JP2011185274 A JP 2011185274A
Authority
JP
Japan
Prior art keywords
signal
reference signal
lean
rich
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2011108563A
Other languages
English (en)
Inventor
Satoshi Toda
聡 戸田
Kunihiko Takamatsu
邦彦 高松
Naoto Sawaki
直人 澤木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Niterra Co Ltd
Original Assignee
NGK Spark Plug Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NGK Spark Plug Co Ltd filed Critical NGK Spark Plug Co Ltd
Priority to JP2011108563A priority Critical patent/JP2011185274A/ja
Publication of JP2011185274A publication Critical patent/JP2011185274A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Combined Controls Of Internal Combustion Engines (AREA)
  • Measuring Oxygen Concentration In Cells (AREA)

Abstract

【課題】内燃機関の排気ガス中の特定成分の濃度に基づき排気ガスの空燃比を検出するガスセンサが劣化した状態において出力する劣化信号を擬似的に生成し、更にその劣化信号を遅延させた状態で出力することができるガスセンサの劣化信号発生装置を提供する。
【解決手段】1ms毎に基準センサから取得した基準信号の電圧値Vinを、過去600ms分記憶する。そして、空燃比のリッチ側への変更に伴い基準信号が変化し始めたら、予め設定されたRichDelayTimeに相当する取得回数前に記憶した基準信号の電圧値Vinを読み出して現在の劣化信号の電圧値Voutとして出力する。空燃比がリーン側に変更された場合も同様に、LeanDelayTimeに相当する取得回数前に記憶した基準信号の電圧値Vinを現在の劣化信号の電圧値Voutとして出力する。
【選択図】図26

Description

本発明は、内燃機関の排気ガス中の特定成分の濃度に基づき排気ガスの空燃比を検出するガスセンサが劣化した状態において出力する検出信号(劣化信号)を、擬似的に発生するガスセンサの劣化信号発生装置に関するものである。
従来より、自動車のエンジンなどの内燃機関の排気通路に取り付けられ、排気ガス中の特定成分の濃度に基づき、排気ガスの空燃比を検出するガスセンサが知られている。このガスセンサのセンサ素子は、自身を流れる電流の大きさあるいは電圧値が排気ガス中の特定成分の濃度に応じて二値的にあるいはリニアに変化することを利用して、排気ガスの空燃比の検出を行うものである。ガスセンサから出力される検出信号はECU(電子制御ユニット)に送信され、ECUでは、受信した検出信号に基づきエンジンにおける燃料の噴射量の調整等の空燃比フィードバック制御が行われる。
こうしたガスセンサは、センサ素子が排気通路内で排気ガスに曝されることとなるため、長期間の使用に伴い経時劣化が生ずる。そこでECUの開発では、ガスセンサがある程度劣化した状態でも空燃比フィードバック制御の精度を維持することができるように、ガスセンサ劣化時の検出信号(劣化信号)に対しても最適な空燃比フィードバック制御のパラメータを決定できるようにする設計が行われている。例えば、加速耐久試験により劣化度合いの異なるガスセンサを用意し、それらガスセンサから得られる劣化信号と、正常なガスセンサの検出信号とを用い、劣化信号の過渡的な段階における信号状態を予測して、パラメータの設定を行っている。
ところで、実車において排気ガスの浄化状態を確認するための試験を行う場合、ガスセンサが劣化した状態においてもECUによる空燃比フィードバック制御が正しく行われているか否かを確認するため、上記のように加速耐久試験により劣化させたガスセンサが実車に取り付けられる。しかし、こうした試験に用いるため、数種類の劣化状態を再現したガスセンサそれぞれを加速耐久試験により目標通りに作成することは困難である。また、試験において、劣化状態の異なるガスセンサを試験の都度取り換えるには手間もかかる。そのため、ガスセンサの劣化信号を擬似的に発生することができる劣化信号発生装置(劣化シミュレータ)が開発されている(例えば、特許文献1参照。)。
このような劣化信号発生装置は、実車に取り付けた正常なガスセンサ(還元すれば、劣化信号を生成するための基準となるガスセンサ)とECUとの間に介在され、入力されたガスセンサの検出信号を加工して擬似的に劣化信号を生成し、この劣化信号をECUに対して出力するものである。特許文献1の劣化信号発生装置では、具体的には、ガスセンサの検出信号のゲインを変化させたり、検出信号の応答特性に遅れを生じさせたりすることで、擬似的に劣化信号を生成している。
特開2004−93957号公報
ガスセンサは排気通路の下流側に設けられる浄化装置の近くに取り付けられることが多く、燃料噴射量の調整等により内燃機関に供給される混合気の目標空燃比を変化させた際に、目標空燃比を変化させた混合気がエンジン(燃焼室)にて燃焼され、排気ガスとしてガスセンサに達するまでに時間がかかる。そのため、混合気の目標空燃比の変更タイミングと、ガスセンサから出力される検出信号の変化し始めるタイミングとの間には、タイムラグ(遅延)が生ずる。
ところで、ガスセンサを長期間使用した場合、ガスセンサのプロテクタ(詳細には、センサ素子の周囲を覆うガス流通孔付きのプロテクタ)のガス流通孔が目詰まりを起こす等の経時劣化を生ずることがある。そして、ガスセンサにこのような劣化が生ずると、ガス流通孔を介してのプロテクタ内部のガス置換が遅くなるため、混合気の目標空燃比の変更に伴ってガスセンサの検出信号が変化し始めるまでの時間(遅延時間)は、劣化していないガスセンサと比較して遅くなる。そのため、ガスセンサの劣化状態を考慮してECUの開発を行うにあたっては、上記遅延時間が経時的に変化していく(遅くなっていく)ことも考慮して開発を行わなければ、より精密な空燃比フィードバック制御を促せるECUを開発することができない。しかしながら、特許文献1に記載の劣化信号発生装置では、ゲインおよび応答特性を変更可能なガスセンサの劣化信号を擬似的に発生することはできるものの、上記遅延時間を変更可能な劣化信号までは擬似的に発生させることはできなかった。
本発明は上記問題点を解決するためになされたものであり、内燃機関の排気ガス中の特定成分の濃度に基づき排気ガスの空燃比を検出するガスセンサが劣化した状態において出力する劣化信号を擬似的に生成し、更にその劣化信号を遅延させた状態で出力することができるガスセンサの劣化信号発生装置を提供することを目的とする。
上記目的を達成するために、請求項1に係る発明のガスセンサの劣化信号発生装置は、内燃機関の排気ガス中の特定成分の濃度に基づき当該排気ガスの空燃比を検出するガスセンサが劣化した状態において出力する劣化信号を、疑似的に発生する劣化信号発生装置であって、前記劣化信号を生成するための基準信号であって、排気ガス中の特定成分の濃度に関連した基準信号を出力する前記ガスセンサと同構成をなした基準センサに接続されると共に、前記基準信号を一定時間毎に取得する基準信号取得手段と、前記基準信号取得手段によって取得された前記基準信号を、その取得順に記憶する基準信号記憶手段と、内燃機関に供給される混合気の目標空燃比の変更に伴って前記基準信号が変化し始める開始点を遅延させた状態で出力するための遅延時間を設定する遅延時間設定手段と、前記遅延時間設定手段にて設定された前記遅延時間に相当する取得回数前に前記基準信号記憶手段に記憶された前記基準信号を前記劣化信号として生成する信号遅延生成手段とを備えている。
また、請求項2に係る発明のガスセンサの劣化信号発生装置は、請求項1に記載の発明の構成に加え、前記遅延時間設定手段は、前記遅延時間として、前記目標空燃比がリッチ側からリーン側に変更される場合に前記基準信号が変化し始める開始点を遅延させるリッチリーン遅延時間と、前記目標空燃比がリーン側からリッチ側に変更される場合に前記基準信号が変化し始める開始点を遅延させるリーンリッチ遅延時間とを個別に設定可能に構成され、前記信号遅延生成手段は、前記リッチリーン遅延時間に相当する取得回数前に前記基準信号記憶手段に記憶された前記基準信号を出力するリッチリーン信号遅延出力手段と、前記リーンリッチ遅延時間に相当する取得回数前に前記基準信号記憶手段に記憶された前記基準信号を出力するリーンリッチ信号遅延出力手段と、前記基準信号取得手段によって取得された前記基準信号の値がリッチ側からリーン側に変化した場合には、前記リッチリーン信号遅延出力手段から出力される前記基準信号を前記劣化信号として生成し、前記基準信号取得手段によって取得された前記基準信号の値がリーン側からリッチ側に変化した場合には、前記リーンリッチ信号遅延出力手段から出力される前記基準信号を前記劣化信号として生成する劣化信号選択生成手段とを備えている。
また、請求項3に係る発明のガスセンサの劣化信号発生装置は、請求項2に記載の発明の構成に加え、前記基準信号取得手段によって取得された複数の前記基準信号に基づいて、前記目標空燃比がリッチ側からリーン側へ変更するに伴い前記基準信号が変化し始める開始点としてのリッチリーン変化開始点と、前記目標空燃比がリーン側からリッチ側へ変更するに伴い前記基準信号が変化し始める開始点としてのリーンリッチ変化開始点とを検出する空燃比変化開始点検出手段を備え、前記劣化信号選択生成手段は、前記リッチリーン変化開始点において、前記リッチリーン信号遅延出力手段から出力される前記基準信号が、前記劣化信号として生成されるように切り換えを行い、前記リーンリッチ変化開始点においては、前記リーンリッチ信号遅延出力手段から出力される前記基準信号が、前記劣化信号として生成されるように切り換えを行うことを特徴とする。
また、請求項4に係る発明のガスセンサの劣化信号発生装置は、請求項3に記載の発明の構成に加え、前記空燃比変化開始点検出手段は前記基準信号に対する微分処理を行い、前記基準信号の微分値が、前記目標空燃比がリッチ側からリーン側に変更される場合の閾値を越えた場合を前記リッチリーン変化開始点とすると共に、前記目標空燃比がリーン側からリッチ側に変更される場合の閾値を越えた場合を前記リーンリッチ変化開始点として検出することを特徴とする。
また、請求項5に係る発明のガスセンサの劣化信号発生装置は、請求項1乃至4のいずれかに記載の発明の構成に加え、前記基準信号のゲインを変更した状態で出力するための利得率を設定する利得率設定手段と、前記基準信号に、前記利得率設定手段に設定された前記利得率を掛け合わせて前記基準信号のゲインを変更するゲイン変更手段とを備えている。
また、請求項6に係る発明のガスセンサの劣化信号発生装置は、請求項5に記載の発明の構成に加え、前記利得率設定手段は、前記利得率として、前記基準信号の値が所定のしきい値よりもリーン側である場合の当該基準信号のゲインを変更させるためのリーン利得率と、前記基準信号の値が所定のしきい値よりもリッチ側である場合の当該基準信号のゲインを変更させるためのリッチ利得率とを個別に設定可能に構成され、前記ゲイン変更手段は、前記基準信号の値が所定のしきい値よりもリーン側であると判定されたとき、前記基準信号に前記リーン利得率を掛け合わせ、前記基準信号の値が所定のしきい値よりもリッチ側であると判定されたとき、前記基準信号に前記リッチ利得率を掛け合わせることを特徴とする。
また、請求項7に係る発明のガスセンサの劣化信号発生装置は、請求項1乃至6のいずれかに記載の発明の構成に加え、前記目標空燃比の変更に伴って変移する前記基準信号の応答特性を変更した状態で出力するための変移率を設定する変移率設定手段と、前記基準信号に、前記変移率設定手段にて設定された前記変移率を掛け合わせて前記基準信号の応答特性を変更する変移時間変更手段とを備えている。
また、請求項8に係る発明のガスセンサの劣化信号発生装置は、請求項7に記載の発明の構成に加え、前記変移率設定手段は、前記変移率として、前記目標空燃比がリッチ側からリーン側に変更される場合の前記基準信号の応答特性を変更するためのリッチリーン変移率と、前記目標空燃比がリーン側からリッチ側に変更される場合の前記基準信号の応答特性を変更するためのリーンリッチ変移率とを個別に設定可能に構成され、前記変移時間変更手段は、前記基準信号取得手段により取得される前記基準信号の値がリッチ側からリーン側に変化する場合には、前記基準信号に前記リッチリーン変移率を掛け合わせ、前記基準信号取得手段により取得される前記基準信号の値がリーン側からリッチ側に変化する場合には、前記基準信号に前記リーンリッチ変移率を掛け合わせることを特徴とする。
また、請求項9に係る発明のガスセンサの劣化信号発生装置は、請求項3または4に記載の発明の構成に加え、前記リッチリーン変化開始点において生成される前記劣化信号をリッチリーン保持信号として記憶し、前記リーンリッチ変化開始点において生成される前記劣化信号をリーンリッチ保持信号として記憶する保持信号記憶手段と、前記リッチリーン変化開始点後に生成される前記劣化信号が前記リッチリーン保持信号よりも大きい値である場合には、前記リッチリーン変化開始点後に生成される前記劣化信号が前記リッチリーン保持信号以下の値になるまで前記リッチリーン保持信号を前記劣化信号として出力し、前記リーンリッチ変化開始点後に生成される前記劣化信号が前記リーンリッチ保持信号よりも小さい値である場合には、前記リーンリッチ変化開始点後に生成される前記劣化信号が前記リーンリッチ保持信号以上の値になるまで前記リーンリッチ保持信号を前記劣化信号として出力する保持信号出力手段とを備えている。
請求項1に係る発明のガスセンサの劣化信号発生装置によれば、基準センサから取得した基準信号を、任意に設定された遅延時間分、遅れて出力される劣化信号を生成することができる。これにより、内燃機関に供給される混合気の目標空燃比の変更に伴ってガスセンサの検出信号が変化し始めるまでの遅延時間が異なった、数種類の劣化状態を再現したガスセンサを加速耐久試験により目標通りに作成した上で、これらガスセンサを用いて上記遅延時間の変化を考慮したシステム(例えば、ECU)の開発を行う必要がなくなる。つまり、本発明の劣化信号発生装置を用いることにより、基準センサを接続するだけで上記遅延時間を自由に変更させた劣化信号を直ぐに得ることができ、精密な空燃比フィードバック制御を実現可能なシステムの開発を円滑に行えると共に、その開発期間の短縮を図ることが可能となる。
ところで、ガスセンサの被毒の状態(例えば、排気ガス中に含まれていたPb成分による被毒が特に進んでいる状態や、排気ガス中に含まれるSi成分による被毒が特に進んでいる状態)によっては、目標空燃比がリッチ側に変更される場合とリーン側に変更される場合とで異なった遅延時間分遅れた劣化信号が出力される場合がある。そこで請求項2に係る発明の劣化信号発生装置を用いれば、目標空燃比がリッチ側に変更される場合にはリーンリッチ遅延時間に従って遅れて出力される劣化信号を生成することができ、目標空燃比がリーン側に変更される場合にはリッチリーン遅延時間に従って遅れて出力される劣化信号を生成することができる。
また、請求項3に係る発明のように、遅延時間の異なる劣化信号の切り換えを行うにあたって、その切り換えタイミングを決定するには、目標空燃比がリーン側に変更されたことに伴い基準信号が変化し始める開始点としてのリッチリーン変化開始点と、目標空燃比がリッチ側に変更されたことに伴い基準信号が変化し始める開始点としてのリーンリッチ変化開始点とを検出することが好ましい。
そして、目標空燃比が変更されたことに伴い基準信号が変化し始める開始点を検出するには、請求項4に係る発明のように、基準信号に対する微分処理を行って、その微分値を閾値と比較することで、それぞれの開始点を求めるとよい。このようにすれば、簡易的でありながら精度よく、それぞれの開始点を検出することができる。
また、請求項5に係る発明によれば、ガスセンサの出力する検出信号のゲインが低下した状態を想定した劣化信号を基準センサの基準信号から擬似的に生成することができ、劣化信号発生装置の多様性を高めることができる。更に、基準信号のゲインを変更しつつ遅延時間を変更させた劣化信号を発生させることもでき、ガスセンサの様々な劣化態様に応じた劣化信号を生成することができる。
更に、請求項6に係る発明のように、基準信号のゲインを変更するための利得率として、基準信号が所定のしきい値よりもリッチ側にある場合のリッチ利得率とリーン側にある場合のリーン利得率とを個別に設定することができれば、排気ガスの空燃比がリッチ側にある場合にのみ劣化した状態の劣化信号を出力するガスセンサや、排気ガスの空燃比がリッチ側とリーン側とで劣化の度合いの異なる劣化信号を出力するガスセンサなどの劣化信号を擬似的に生成することができ、ガスセンサの様々な劣化態様に応じた劣化信号を生成することができる。
また、請求項7に係る発明によれば、ガスセンサの出力する信号の応答特性が低下した状態を想定した劣化信号を基準センサの基準信号から擬似的に生成することができ、劣化信号発生装置の多様性を高めることができる。更に、基準信号の応答特性を変更しつつ遅延時間を変更させた劣化信号を発生させたり、あるいはゲインも変更させた劣化信号を発生させたりすることができ、ガスセンサの様々な劣化態様に応じた劣化信号を生成することができる。
なお、応答特性とは、目標空燃比が所定の値(理論空燃比に限定されない)を境にしてリッチ側からリーン側、あるいはリーン側からリッチ側へ変更されたことに伴い、ガスセンサの出力する検出信号が、変化を開始して予め設定した値となるまでにかかる時間をいう。変化にかかる時間が短いほど(早いほど)良好な応答特性が示される。
更に、請求項8に係る発明のように、基準信号の応答特性を変更するための変移率として、目標空燃比がリーン側からリッチ側に変更される場合に基準信号の応答特性を変更するリーンリッチ変移率と、目標空燃比がリッチ側からリーン側に変更される場合に基準信号の応答特性を変更するリッチリーン変移率とを個別に設定することができれば、目標空燃比がリーン側からリッチ側に変更される場合にのみ劣化した状態の劣化信号を出力するガスセンサや、目標空燃比の状態によって劣化の度合いの異なる劣化信号を出力するガスセンサなどの劣化信号を擬似的に生成することができ、ガスセンサの様々な劣化態様に応じた劣化信号を生成することができる。
ところで、リッチリーン変化開始点において、劣化信号の生成元となる基準信号は、リーンリッチ信号遅延出力手段から出力される基準信号から、リッチリーン信号遅延出力手段から出力される基準信号に切り換えられる。このとき、リーンリッチ信号遅延出力手段から出力される基準信号の値よりもリッチリーン信号遅延出力手段から出力される基準信号の値が大きかった場合、生成される劣化信号の値は、下降しつつある状態からリッチリーン変化開始点において一時的に上昇し、また下降する状態となり、波打つように変化することがある。そこで請求項9に係る発明のように、リッチリーン変化開始点以後にリッチリーン信号遅延出力手段から生成される劣化信号をリッチリーン保持信号で置換することで、劣化信号の値は、下降しつつある状態から一定な状態となり、また下降する状態となり、波打つように変化することを防止することができる。また、リーンリッチ変化開始点以後にリーンリッチ信号遅延出力手段から生成される劣化信号についても同様に、リーンリッチ保持信号で置換すれば、出力される劣化信号の値が波打つように変化することを防止することができる。これにより、劣化信号発生装置から出力される劣化信号を二次利用した場合に、信号異常等の不具合を生ずる虞がない。
本実施の形態の劣化信号発生装置の一例としてのセンサシミュレータ1の概略的な構成を示すブロック図である。 EEPROM12の記憶エリアの構成を示す概念図である。 RAM13の記憶エリアの構成を示す概念図である。 劣化信号生成プログラム全体の動作の流れについて説明するためのフローブロック図である。 劣化信号生成プログラムのメインルーチンのフローチャートである。 ゲイン処理サブルーチンのフローチャートである。 移動平均処理サブルーチンのフローチャートである。 ピーク検出処理サブルーチンのフローチャートである。 ピーク値の平均値算出処理サブルーチンのフローチャートである。 閾値チェック処理サブルーチンのフローチャートである。 応答特性処理サブルーチンのフローチャートである。 第1オーバーシュートチェック処理サブルーチンのフローチャートである。 応答特性立上り処理サブルーチンのフローチャートである。 応答特性立下り処理サブルーチンのフローチャートである。 遅延処理サブルーチンのフローチャートである。 第2オーバーシュートチェック処理サブルーチンのフローチャートである。 遅延立上り処理サブルーチンのフローチャートである。 遅延立下り処理サブルーチンのフローチャートである。 空燃比をリッチ側とリーン側とに交番させた場合に得られる基準信号を時間軸に沿って示した例を示すグラフである。 図19に示した基準信号のリッチ側のゲインを変更した劣化信号の例を示すグラフである。 図19に示した基準信号のリーン側のゲインを変更した劣化信号の例を示すグラフである。 図19に示した基準信号のリッチ側の応答特性を変更した劣化信号の例を示すグラフである。 図19に示した基準信号のリーン側の応答特性を変更した劣化信号の例を示すグラフである。 第1オーバーシュートチェック処理について説明するため、図23の円Qで示す部分を拡大したグラフである。 第1オーバーシュートチェック処理について説明するため、図23の円Qで示す部分を拡大したグラフである。 図19に示した基準信号のリッチ側の遅延時間を変更した劣化信号の例を示すグラフである。 図19に示した基準信号のリーン側の遅延時間を変更した劣化信号の例を示すグラフである。 第2オーバーシュートチェック処理について説明するため、図27の円Rで示す部分を拡大したグラフである。 第2オーバーシュートチェック処理について説明するため、図27の円Rで示す部分を拡大したグラフである。 図19に示した基準信号のゲインと応答特性と遅延時間とをリッチ側およびリーン側それぞれについて変更した劣化信号の例を示すグラフである。
以下、本発明を具体化した劣化信号発生装置の一実施の形態について、図面を参照して説明する。図1は、本実施の形態の劣化信号発生装置の一例としてのセンサシミュレータ1の概略的な構成を示すブロック図である。なお、本発明の劣化信号発生装置に接続されるガスセンサとしては、酸素センサや全領域空燃比センサ、NOxセンサなどを用いることができ、本実施の形態ではλ型酸素センサをその一例とし、基準センサ2として、正常な(劣化していない)λ型酸素センサを用いたものとして説明する。なお、λ型酸素センサについては公知のものを使用しているため、その詳述については省略するが、具体的には、特開2004−138599号公報に開示する筒型の酸素センサを使用しているものとして説明することとする。
図1に示すように、センサシミュレータ1は、自動車の排気通路(図示外)に取り付けられる酸素センサとしての基準センサ2と、自動車の電子制御を司るECU3との間に介在される装置である。基準センサ2は排気通路内を流通する排気ガス中の酸素濃度に応じた検出信号を出力し、この検出信号が基準信号としてセンサシミュレータ1に入力されている。センサシミュレータ1は、入力された基準信号に対し、後述する劣化信号生成プログラムの実行により加工を施して劣化信号を生成し、ECU3に対して出力を行っている。ECU3は、入力された劣化信号に基づき、図示外のエンジンの制御(例えば、インジェクタから噴射する燃料の噴射量や噴射タイミングの調整や、点火時期の調整など)を行っている。また、ECU3は、基準センサ2のヒータ回路(図示外)にヒータ駆動電圧の供給も行っており、センサ素子(図示外)の早期活性化や活性化後の安定化を図っている。
センサシミュレータ1は、図示しないケーシング内に、自身の制御を司るCPU11と、後述する劣化信号生成プログラム等が記憶された、書き換え可能なEEPROM12と、各種のデータを一時的に記憶するRAM13とを有するマイクロコンピュータ10を備えている。なお、マイクロコンピュータ10のCPU11、EEPROM12およびRAM13は公知の構成からなるものである。EEPROM12およびRAM13の記憶エリアの構成については後述する。
マイクロコンピュータ10には、入力インターフェイス20を介して基準センサ2から入力される基準信号をA/D変換するA/Dコンバータ30と、後述する劣化信号生成プログラムによって生成した劣化信号を出力バッファ40を介してECU3に出力するためにD/A変換するD/Aコンバータ50とが接続されている。更に、マイクロコンピュータ10には、劣化信号生成プログラムに用いられる設定値等を利用者が入力するための入力部60と、入力された設定値等を確認できるように表示する表示部80の表示制御を行う表示制御部70とが接続されている。入力部60としては、例えばプッシュスイッチやロータリースイッチ等が用いられ、表示部80としては、例えばLCDディスプレイ等が用いられる。また、図示しないが、センサシミュレータ1は電源回路等も備えている。
なお、後述する劣化信号生成プログラムでは、基準信号から劣化信号を生成する過程において多数のサブルーチン単位での処理が行われ、その際に様々な中間信号を生成する。劣化信号生成プログラムでは、各サブルーチン間における中間信号の受け渡しを、RAM13の変数記憶エリア132に記憶される多数の変数等を用いて行っている。本実施の形態において、一のサブルーチンにおいて処理の終わった中間信号等を変数に記憶する処理を、便宜上、「出力」と表現し、変数として記憶された中間信号等を他のサブルーチンにおいて読み込む処理を、便宜上、「入力」と表現する場合もある。
次に、EEPROM12の記憶エリアおよびRAM13の記憶エリアの概略的な構成について、図2および図3を参照して説明する。図2は、EEPROM12の記憶エリアの構成を示す概念図である。図3は、RAM13の記憶エリアの構成を示す概念図である。
図2に示すように、EEPROM12には、設定値記憶エリア121、プログラム記憶エリア122、初期値記憶エリア123が設けられている。設定値記憶エリア121は、後述する7つの変数(RichGain,LeanGain,GainThreshold,RichTimeConstant,LeanTimeConstant,RichDelayTime,LeanDelayTime)の設定値が記憶され、劣化信号生成プログラムにおいて利用される。これらの設定値は、予め利用者により入力部60から任意の値が入力され、EEPROM12に記憶されることで、電源切断時にも保存することができるように構成されている。プログラム記憶エリア122には、劣化信号生成プログラムが記憶されている。EEPROM12を使用することで、バージョンアップ等にも柔軟に対応できるように構成されている。更にEEPROM12には、図示外の各種の記憶エリアが設けられている。
また、図3に示すように、RAM13には、ワークエリア131、変数記憶エリア132が設けられている。ワークエリア131には、劣化信号生成プログラムが読み込まれて展開される記憶エリアであり、その実行に利用される。変数記憶エリア132には、以下に示す、各種変数やカウント値等が記憶され、劣化信号生成プログラムの実行に際し使用される。
ここで、劣化信号生成プログラムで使用される各変数やカウント値について説明する。
「Vin」は、基準センサ2から取得される基準信号の電圧値を記憶するための変数であり、初期値には0がセットされる。「GainThreshold」は、基準信号の電圧値をもって排気ガスの空燃比がリッチ側にあるかリーン側にあるかを判定するためのしきい値を記憶するための変数であり、初期値には利用者により予め設定された値がセットされる。「RichGain」は、排気ガスの空燃比がリッチ側にある場合に、基準信号の電圧値に掛け合わせて第1中間信号(電圧値Vint1)を得るための利得率を記憶するための変数であり、初期値には利用者により予め設定された値がセットされる。「LeanGain」は、排気ガスの空燃比がリーン側にある場合に、基準信号の電圧値に掛け合わせて第1中間信号(電圧値Vint1)を得るための利得率を記憶するための変数であり、初期値には利用者により予め設定された値がセットされる。「Vint1」は、基準信号の電圧値Vinのゲインを変更した第1中間信号の電圧値を記憶するための変数であり、初期値には0がセットされる。
「prevVin」は、今回取得した基準信号の電圧値Vinを記憶して保存し、次回(1ms後)に利用するための変数であり、初期値には0がセットされる。「Vdiff」は、基準信号の微分値を記憶するための変数であり、微分値は、前回取得された基準信号の電圧値prevVinと今回取得した基準信号の電圧値Vinとの差を近似値として求められる。初期値には0がセットされる。「prevVdiff[i]」は、99回前に算出した微分値prevVdiff[99]から前回算出した微分値prevVdiff[1]までを記憶するための99個の変数であり、初期値にはそれぞれ0が記憶される。「VdiffSum」は、99回前に算出した微分値prevVdiff[99]から前回算出した微分値prevVdiff[1]までと、今回算出した微分値Vdiffとを加算した合算値を記憶するための変数であり、初期値には0がセットされる。「i」は、prevVdiff[i]の記憶エリアや、後述するprevVint3[i]の記憶エリアを指定するための変数として用いられ、初期値には1がセットされる。「du」は、99回前(99ms前)に取得した基準信号の微分値から今回取得した基準信号の微分値までの100回分の微分値の平均値を記憶するための変数であり、初期値には0が記憶される。
「StepCount」は、1秒間における立上りピーク値tmpUpPeakおよび立下りピーク値tmpDownPeakを求めるため、1秒間の経過をカウントするためのカウント値であり、初期値には0がセットされる。「tmpUpPeak」は、微分値の平均値duの最新1秒間の最大値としての立上りピーク値を記憶するための変数であり、初期値には0がセットされる。「tmpDownPeak」は、微分値の平均値duの最新1秒間の最小値としての立下りピーク値を記憶するための変数であり、初期値には0がセットされる。「prevUpPeak1」には、前回(1秒前)求めた1秒間における立上りピーク値を記憶するための変数であり、初期値には0が記憶される。「prevUpPeak2」には、前々回(2秒前)求めた1秒間における立上りピーク値を記憶するための変数であり、初期値には0が記憶される。「prevDownPeak1」には、前回(1秒前)求めた1秒間における立下りピーク値を記憶するための変数であり、初期値には0が記憶される。「prevDownPeak2」には、前々回(2秒前)求めた1秒間における立下りピーク値を記憶するための変数であり、初期値には0が記憶される。「UpPeak」は、最新の3回分(3秒分)の立上りピーク値(tmpUpPeak,prevUpPeak1,PrevUpPeak2)の平均値を記憶するための変数であり、初期値には0.005がセットされる。「DownPeak」は、最新の3回分(3秒分)の立下りピーク値(tmpDownPeak,prevDownPeak1,PrevDownPeak2)の平均値を記憶するための変数であり、初期値には−0.005がセットされる。「UpThreshold」は、基準信号の変化を示す微分値の平均値duと比較することで、排気ガスの空燃比がリーン側からリッチ側に変更されたことを検出するための閾値を記憶するための変数であり、UpPeakの0.15倍の値が算出され記憶される。「DownThreshold」は、基準信号の変化を示す微分値の平均値duと比較することで、排気ガスの空燃比がリッチ側からリーン側に変更されたことを検出するための閾値を記憶するための変数であり、DownPeakの0.15倍の値が算出され記憶される。
「state」は、排気ガスの空燃比の状態を示すフラグであり、エンジン(図示外)に供給される混合気の目標空燃比がリッチ側からリーン側に変更されたことに伴う基準信号の変化が検出された状態(以下、「立下り状態」という。)では−1が記憶される。また、目標空燃比がリーン側からリッチ側に変更されたことに伴う基準信号の変化が検出された状態(以下、「立上り状態」という。)では1が記憶される。「prevState1」は、前回(1ms前に)判定されたstateの値を閾値チェック処理で用いるために記憶するフラグである。
「RichTimeConstant」は、基準信号の変化によって空燃比がリーン側からリッチ側に変更されたことが検出された状態において、基準信号(本実施の形態では第1中間信号)の応答特性を変更するために用いられるリーンリッチ変移率を記憶するための変数であり、初期値には0が記憶される。「LeanTimeConstant」は、基準信号の変化によって空燃比がリッチ側からリーン側に変更されたことが検出された状態において、基準信号(本実施の形態では第1中間信号)の応答特性を変更するために用いられるリッチリーン変移率を記憶するための変数であり、初期値には0が記憶される。「α」は、基準信号(本実施の形態では第1中間信号)の応答特性を変更するための数式において係数として使用され、上記変移率を用いて算出される値が記憶される。「Vint2」は、基準信号(本実施の形態では第1中間信号)の応答特性を変更した第2中間信号の電圧値を記憶するための変数であり、初期値には0がセットされる。「prevVint2」は、今回の応答特性処理の実行によって求めた第2中間信号の電圧値Vint2を記憶して保存し、次回(1ms後)に利用するための変数であり、初期値には0がセットされる。
「prevState2」は、前回(1ms前に)判定されたstateの値を保存して第1オーバーシュートチェック処理で用いるために記憶するフラグである。「Vbase」は、目標空燃比の変更に伴い基準信号の電圧値Vinが変化しつつあるときに、応答特性処理において、変移率の変更によって一時的に電圧値の変化方向が逆転し(例えば高電位から低電位であったものが一時的に低電位から高電位に変化する場合など)、波打つように変化する現象が生じないように、第1オーバーシュートチェック処理において、第2中間信号の電圧値Vint2を補正する補正電圧値を記憶するための変数である。また、第2オーバーシュートチェック処理においても同様に、出力される劣化信号の電圧値Voutを補正する補正電圧値を記憶するために用いられ、初期値には0がセットされる。「CheckFlag」は、第1オーバーシュートチェック処理および第2オーバーシュートチェック処理において、Vbaseを用いた電圧値の補正を行う必要がある場合に1が記憶されるフラグであり、初期値には0がセットされる。「Vint3」は、第2中間信号の電圧値Vint2に対し、第1オーバーシュートチェック処理において補正を行い生成される第3中間信号の電圧値を記憶するための変数であり、初期値には0がセットされる。
「prevVint3[i]」(ただし、i=0,1,2,・・・,600)は、応答特性処理、第1オーバーシュートチェック処理を経て得られた過去600ms前までの第3中間信号の電圧値Vint3を1ms毎に記憶して保存し、遅延処理で、遅延時間(RichDelayTimeまたはLeanDelayTime)分遅いタイミングに遅らせて出力するための601個の変数であり、初期値にはそれぞれ0がセットされる。「RichDelayTime」は、基準信号の変化によって空燃比がリーン側からリッチ側に変更されたことが検出された状態において、基準信号(本実施の形態では第3中間信号)を0〜600msの範囲で遅らせて出力するために用いられるリーンリッチ遅延時間を記憶するための変数であり、初期値には0が記憶される。「LeanDelayTime」は、基準信号の変化によって空燃比がリッチ側からリーン側に変更されたことが検出された状態において、基準信号(本実施の形態では第3中間信号)を0〜600msの範囲で遅らせて出力するために用いられるリッチリーン遅延時間を記憶するための変数であり、初期値には0が記憶される。「prevState3」は、前回(1ms前に)判定されたstateの値を保存して第2オーバーシュートチェック処理で用いるために記憶するフラグである。「Vint4」は、基準信号の変化によって空燃比がリーン側からリッチ側に変更されたことが検出された状態において、第3中間信号を[RichDelayTime]ms遅らせて出力する第4中間信号の電圧値を記憶するための変数であり、初期値には0がセットされる。「prevVint4」は、前回(1ms前)劣化信号として選択された第4中間信号の電圧値Vint4を記憶して保持するための変数であり、初期値には0がセットされる。「Vint5」は、基準信号の変化によって空燃比がリッチ側からリーン側に変更されたことが検出された状態において、第3中間信号を[LeanDelayTime]ms遅らせて出力する第5中間信号の電圧値を記憶するための変数であり、初期値には0がセットされる。「prevVint5」は、前回(1ms前)劣化信号として選択された第5中間信号の電圧値Vint5を記憶して保持するための変数であり、初期値には0がセットされる。「Vout」は、劣化信号生成プログラムの実行によって基準信号から生成される劣化信号の電圧値を記憶するための変数であり、初期値には0が記憶される。更にRAM13には、図示外の各種の記憶エリアが設けられている。
このような構成のセンサシミュレータ1では、後述する図5〜図18のフローチャートで示す劣化信号生成プログラムの実行に従って、基準センサ2から1ms毎に基準信号を取得し、加工を施して劣化信号を生成し、ECU3に対し出力を行っている。この劣化信号生成プログラムの詳細について説明する前に、劣化信号生成プログラムの動作の概略について、図4に示す、フローブロック図を用いて簡単に説明する。図4は、劣化信号生成プログラム全体の動作の流れについて説明するためのフローブロック図である。
図4に示すように、劣化信号生成プログラムは、ゲイン処理ブロック101、立上り,立下り検出ブロック102、応答特性処理ブロック103、および遅延処理ブロック104からなる4つの処理ブロックにより構成される。
ゲイン処理ブロック101では、入力された基準信号(電圧値Vin)のゲインを変更(増幅または減衰)する処理が行われる。このときVinは、予め設定された所定のしきい値GainThresholdに対し、大きい場合と小さい場合とで異なる利得率RichGain,LeanGainにより増幅または減衰されるように構成されている。基準信号(電圧値Vin)を増幅または減衰した第1中間信号(電圧値Vint1)は、応答特性処理ブロックに対し出力される。なお、ゲイン処理ブロック101は、後述する劣化信号生成プログラムのフローチャート(図5参照)では、ゲイン処理(S3)に相当する。
次に、立上り,立下り検出ブロック102では、目標空燃比がリッチ状態からリーン状態へ、あるいはリーン状態からリッチ状態へ変更されたことに伴って基準センサ2の基準信号(電圧値Vin)が変化し始める開始点を検出する処理が行われる。入力される基準信号(電圧値Vin)に対して行われる微分処理の結果に基づき、上述したフラグstateの値が決定される。そしてフラグstateの値は、次に目標空燃比が変更されたことに伴う基準信号の変化が検出されるまで、維持される構成となっている。すなわち、stateの値の変化するタイミングが、上記開始点となる。なお、立上り,立下り検出ブロック102は、後述する劣化信号生成プログラムのフローチャート(図5参照)では、基準信号の微分値duを求める移動平均算出処理(S5)、閾値UpPeak,DownPeakを求めるピーク値検出処理(S6)、および閾値チェック処理(S7)に相当する。
次に、応答特性処理ブロック103では、ゲイン処理ブロック101でゲインの変更された第1中間信号(電圧値Vint1)の応答特性を変更する処理が行われる。ここで、目標空燃比がリッチ側からリーン側に変更された場合には、リッチ側で安定しているときに酸素センサの出力する電圧値から、リーン側で安定しているときに酸素センサの出力する電圧値へと電圧値が変化する。目標空燃比がリーン側からリッチ側に変更された場合についても同様である。本実施の形態における応答特性とは、目標空燃比の変更に伴い、電圧値が変化をし始めてから予め定められた値に達するまでにかかる時間(早さ)を示し、変化にかかる時間が短いほど(早いほど)良好な応答特性が示される。従って、酸素センサが劣化した場合、応答特性は低下し、電圧値の変化に、より時間がかかることとなる。
そこで、応答特性処理ブロック103では、ゲイン処理ブロック101において得られた第1中間信号(電圧値Vint1)に対し、以下の数式(1)を用いて、応答特性を変化させた第2中間信号(電圧値Vint2)を得る。
Vint2=(1−α)×Vint1+α×prevVint2・・・(1)
ただし、prevVint2は、前回のサンプリング時に算出されたVint2の値である。
なお、立上り状態と立下り状態とで異なる変移率を用いて応答特性を変更することができるように、リーンリッチ変移率RichTimeConstantおよびリッチリーン変移率LeanTimeConstantを用い、係数αを以下の数式(2),(3)を用いて算出している。
目標空燃比がリーン側からリッチ側に変更されたことに伴う基準信号の変化が検出された状態(立上り状態):
α=exp{−1/(1+RichTimeConstant/Ts)}・・・(2)
目標空燃比がリッチ側からリーン側に変更されたことに伴う基準信号の変化が検出された状態(立下り状態):
α=exp{−1/(1+LeanTimeConstant/Ts)}・・・(3)
ただし、Tsはサンプリング間隔であり、本実施の形態では1msである。
応答特性処理ブロック103では、更に、第1オーバーシュートチェック処理を行っている。例えば、目標空燃比がリッチ側からリーン側に変更された場合、λ型酸素センサの出力する電圧値は高電位から低電位に変化する。このとき、上記の応答特性を変化させる処理を行ったことによって、電圧値が一時的に低電位から高電位に変化(変化方向が逆転)し、波打つように変化する場合がある。オーバーシュートチェック処理では、最終出力信号としての第3中間信号(電圧値Vint3)の変化方向に一時的な逆転が行われないように補正を行う処理である。なお、応答特性処理ブロック103は、後述する劣化信号生成プログラムのフローチャート(図5参照)では、応答特性処理(S9)、第1オーバーシュートチェック処理(S10)に相当する。
次に、遅延処理ブロック104では、応答特性処理ブロック103で応答特性の変更された第3中間信号(電圧値Vint3)の遅延時間を変更し、劣化信号(電圧値Vout)として出力する処理が行われる。この処理ブロックでは、600ms前に入力された第3中間信号の電圧値Vint3から今回入力された第3中間信号の電圧値Vint3まで記憶して保存している。そして、空燃比の状態がリッチ側(立上り状態)にあれば、リーンリッチ遅延時間RichDelayTimeで指定される遅延時間前に入力された第3中間信号(電圧値Vint3)を、第4中間信号(電圧値Vint4)として生成する。同様に、空燃比の状態がリーン側(立下り状態)にあれば、リッチリーン遅延時間LeanDelayTimeで指定される遅延時間前に入力された第3中間信号(電圧値Vint3)を、第5中間信号(電圧値Vint5)として生成する。
更に、第2オーバーシュートチェック処理を行い、上記した第1オーバーシュートチェック処理と同様に、立上り状態では第4中間信号(電圧値Vint4)に対し、立下り状態では第5中間信号(電圧値Vint5)に対し補正を行って劣化信号(電圧値Vout)を生成し、出力する。なお、遅延処理ブロック104は、後述する劣化信号生成プログラムのフローチャート(図5参照)では、遅延処理(S11)、第2オーバーシュートチェック処理(S13)に相当する。
このように、基準信号に対し、各処理ブロックにおける処理を施して劣化信号を生成する過程は、本実施の形態では、劣化信号生成プログラムによって実現されている。以下、図5〜図18のフローチャートに従い、図19〜図30のグラフを参照しながら、劣化信号生成プログラムの実行によって基準信号が加工され、劣化信号として生成される過程について説明する。
図5は、劣化信号生成プログラムのメインルーチンのフローチャートである。図6は、ゲイン処理サブルーチンのフローチャートである。図7は、移動平均処理サブルーチンのフローチャートである。図8は、ピーク検出処理サブルーチンのフローチャートである。図9は、ピーク値の平均値算出処理サブルーチンのフローチャートである。図10は、閾値チェック処理サブルーチンのフローチャートである。図11は、応答特性処理サブルーチンのフローチャートである。図12は、第1オーバーシュートチェック処理サブルーチンのフローチャートである。図13は、応答特性立上り処理サブルーチンのフローチャートである。図14は、応答特性立下り処理サブルーチンのフローチャートである。図15は、遅延処理サブルーチンのフローチャートである。図16は、第2オーバーシュートチェック処理サブルーチンのフローチャートである。図17は、遅延立上り処理サブルーチンのフローチャートである。図18は、遅延立下り処理サブルーチンのフローチャートである。以下、フローチャートの各ステップを「S」と略記する。
また、図19は、目標空燃比をリッチ側とリーン側とに交番させた場合に得られる基準信号を時間軸に沿って示した例を示すグラフである。図20は、図19に示した基準信号のリッチ側のゲインを変更した劣化信号の例を示すグラフである。図21は、図19に示した基準信号のリーン側のゲインを変更した劣化信号の例を示すグラフである。図22は、図19に示した基準信号のリッチ側の応答特性を変更した劣化信号の例を示すグラフである。図23は、図19に示した基準信号のリーン側の応答特性を変更した劣化信号の例を示すグラフである。図24は、第1オーバーシュートチェック処理について説明するため、図23の円Qで示す部分を拡大したグラフである。図25は、第1オーバーシュートチェック処理について説明するため、図23の円Qで示す部分を拡大したグラフである。図26は、図19に示した基準信号のリッチ側の遅延時間を変更した劣化信号の例を示すグラフである。図27は、図19に示した基準信号のリーン側の遅延時間を変更した劣化信号の例を示すグラフである。図28は、第2オーバーシュートチェック処理について説明するため、図27の円Rで示す部分を拡大したグラフである。図29は、第2オーバーシュートチェック処理について説明するため、図27の円Rで示す部分を拡大したグラフである。図30は、図19に示した基準信号のゲインと応答特性と遅延時間とをリッチ側およびリーン側それぞれについて変更した劣化信号の例を示すグラフである。
センサシミュレータ1では、予め、利用者により各種設定値の入力が行われる。具体的には、基準信号のゲインを変更するためのリッチ側、リーン側それぞれにおける利得率(それぞれ変数RichGain,LeanGainの値として利用される。)およびしきい値(変数GainThresholdの値として利用される。)と、基準信号の応答特性を変更するためのリッチ側、リーン側それぞれにおける変移率(それぞれ変数RichTimeConstant,LeanTimeConstantの値として利用される。)と、基準信号の変化し始める開始点を変更するためのリッチ側、リーン側それぞれにおける遅延時間(それぞれ変数RichDelayTime,LeanDelayTimeの値として利用される。)とが設定される。これらの設定値は入力部60の操作により行われ、EEPROM12の設定値記憶エリア121に記憶されることで、センサシミュレータ1の電源が落とされた後に再度使用される場合にも、以前入力された設定値が保存されるように構成されている。
センサシミュレータ1による基準センサ2の基準信号から劣化信号の生成は、図5に示す、劣化信号生成プログラムが、EEPROM12のプログラム記憶エリア122よりRAM13のワークエリア131に読み込まれ実行されることによって開始される。図5に示す劣化信号生成プログラムでは、S1でまず初期化処理が行われた後、S2で1ms毎のリセット信号の受信待ちが行われる。本実施の形態では、劣化信号生成プログラムと並列に図示外のタイマプログラムが実行されており、1ms毎にリセット信号が出力されている。S2ではリセット信号の受信待ちが行われ、リセット信号の受信を契機にS3へ進むように構成されている。そしてS3〜S13の各処理のサブルーチンが順にコールされて実行され、基準センサ2から取得される基準信号を元として劣化信号が生成されてECU3に対し出力される。S13の処理後にはS2に戻り、次のリセット信号の受信待ちが行われる。すなわち、基準信号を加工して劣化信号を生成するS3〜S13の処理は、1ms毎に行われている。以下、劣化信号生成プログラムの具体的な処理内容について説明する。
初期化処理では、劣化信号生成プログラムで使用される各種変数の初期化が行われる(S1)。初期化は、EEPROM12の初期値記憶エリア123に記憶された初期値(前述)が読み込まれ、各変数の値として、RAM13の対応する変数記憶エリア132の記憶エリアに記憶されることで行われる。また、上記した、予め利用者により設定された7つの変数(RichGain,LeanGain,GainThreshold,RichTimeConstant,LeanTimeConstant,RichDelayTime,LeanDelayTime)の値がEEPROM12の設定値記憶エリア121より読み込まれ、各変数の値として、対応する変数記憶エリア132の記憶エリアに記憶される。劣化信号生成プログラムのS1以降の処理では、各変数の値の読み出し、書き込み等はすべて、変数記憶エリア132に設けられた、それぞれの処理に対応する各変数の記憶エリアに対して行われる。そしてリセット信号の受信待ちが行われ(S2:NO)、リセット信号の受信を契機にゲイン処理のサブルーチンがコールされる(S2:YES,S3)。なお、S1において、予め利用者により入力部60から入力されEEPROM12に記憶され保存された遅延時間RichDelayTime,LeanDelayTimeを、劣化信号生成プログラムで使用するため読み込み、RAM13の変数記憶エリアに記憶させるCPU11が、本発明における「遅延時間設定手段」に相当する。同様に、S1において、予め利用者により入力部60から入力されEEPROM12に記憶され保存された利得率RichGain,LeanGainを、劣化信号生成プログラムで使用するため読み込み、RAM13の変数記憶エリアに記憶させるCPU11が、本発明における「利得率設定手段」に相当する。更に同様に、S1において、予め利用者により入力部60から入力されEEPROM12に記憶され保存された変移率RichTimeConstant,LeanTimeConstatを、劣化信号生成プログラムで使用するため読み込み、RAM13の変数記憶エリアに記憶させるCPU11が、本発明における「変移率設定手段」に相当する。
[ゲイン処理]
ゲイン処理は、基準信号の電圧値Vinに対し、排気ガスの空燃比がリッチ側である場合とリーン側である場合とで異なる利得率RichGain,LeanGainを掛け合わせて第1中間信号(電圧値Vint1)を得る処理である。本実施の形態の基準センサ2は、前述したように、λ型酸素センサである。λ型酸素センサは排気ガスの空燃比がリッチ側にあるとき、その排気ガスに曝されるλ型酸素センサの出力電圧値は約0.9Vを示し、リーン側にあるときには約0.05Vを示すことが知られている。そして、混合気の目標空燃比が約1秒毎にリッチ側とリーン側とで交番された場合、λ型酸素センサ、すなわち基準センサ2の基準信号の電圧値は、図19に示すように、約1秒毎に約0.05Vと約0.9Vとの間で急峻な変化を示す。
図6に示すゲイン処理では、まず、A/Dコンバータ30を介して入力される基準センサ2の出力電圧が取得され、その電圧値が変数Vinとして記憶される(S21)。取得された基準信号の電圧値Vinは、予め利用者に設定されたしきい値GainThresholdと比較される(S22)。上記したように基準信号の電圧値は、約0.05Vと約0.9Vとの間で変化するため、GainThresholdは通常、略中間の電圧値である0.45Vに設定される。VinがGainThresholdよりも大きかった場合(S22:YES)、取得された基準信号の電圧値は、空燃比がリッチ側にある場合の電圧値であると判断される。そして、基準信号のGainThresholdを上回る分の電圧値に利得率RichGainを掛け合わせることでリッチ側のゲインのみを変更した第1中間信号(電圧値Vint1)が算出される(S23)。具体的には、「GainThreshold+(Vin−GainThreshold)×RichGain」が計算され、その結果がVint1に記憶される。ここで、基準信号に対し、空燃比がリッチ側である場合にのみゲインを変更した場合の例を、図20に示す。図20では、点線で示される基準信号(電圧値Vin)のグラフに対比させ、基準信号の電圧値がGainThresholdとしての0.45Vよりも大きな値を示す場合にのみ電圧値を減衰させた第1中間信号(電圧値Vint1)のグラフを1点鎖線で示している。従って基準信号の電圧値が0.45V以下である場合には、第1中間信号のグラフは基準信号のグラフに一致した状態となる。なお、S21で基準センサ2の基準信号を取得してVinとして記憶させるCPU11が、本発明における「基準信号取得手段」に相当する。
一方、図6に示すように、VinがGainThresholdよりも小さかった場合(S22:NO,S25:YES)、同様に、取得された基準信号の電圧値は、空燃比がリーン側にある場合の電圧値であると判断される。そして、基準信号のGainThresholdを下回る分の電圧値に利得率LeanGainを掛け合わせることでリーン側のゲインのみを変更した第1中間信号(電圧値Vint1)が算出される(S26)。具体的には、「GainThreshold−(GainThreshold−Vin)×LeanGain」が計算され、その計算結果がVint1に記憶される。ここで、基準信号に対し、空燃比がリーン側である場合にのみゲインを変更した場合の例を、図21に示す。図21では、点線で示される基準信号(電圧値Vin)のグラフに対比させ、基準信号の電圧値がGainThresholdとしての0.45Vよりも小さな値を示す場合にのみ電圧値を増幅させた第1中間信号(電圧値Vint1)のグラフを1点鎖線で示している。従って基準信号の電圧値が0.45V以上である場合には、第1中間信号のグラフは基準信号のグラフに一致した状態となる。なお、S23またはS26の処理で、基準信号のゲインを変更するCPU11が、本発明における「ゲイン変更手段」に相当する。
また、図6に示すように、VinがGainThresholdと同じ値である場合には(S22:NO,S25:NO)、基準信号のゲインを変更する処理は行われず、その電圧値Vinが第1中間信号の電圧値Vint1として記憶される(S27)。このようにして第1中間信号の電圧値Vint1が求められた後には(S23/S26/S27)、S29に進む。そして、ゲインを変更したことによって電圧値Vint1が適正値、すなわち0V以上5V未満の範囲外となった場合、適正値の範囲内に収まるように補正が行われる。具体的には、Vint1が5V以上であれば(S29:YES)、Vint1には4.99Vが記憶される(S30)。一方、Vint1が0V未満であれば(S29:NO,S31:YES)、Vint1には0Vが記憶される(S33)。また、Vint1が0V以上5V未満であれば(S29:NO,S31:NO)、Vin1は適正値であると判断され、補正は行われない。こうしてVint1に補正が行われた後には(S30/S33/S31:NO)、メインルーチンに戻る。なお、上記した第1中間信号の電圧値の適正値の範囲は、任意に設定できるようにしてもよい。
[移動平均処理]
図5のメインルーチンでは、次に、移動平均処理のサブルーチンがコールされる(S5)。この移動平均処理では、後述する閾値チェック処理(S7)において、空燃比がリッチ側からリーン側、もしくはリーン側からリッチ側に変更されたか否かを判断するため、基準信号の変化を示す微分値の平均値duを求める処理が行われる。もっとも、基準信号の短期間における大きな変動(揺らぎ)によって閾値チェック処理において誤判断が生じないように、微分値の平均値duは、今回の移動平均処理の実行時に求められる基準信号の微分値Vdiffと、それ以前の99回の移動平均処理の実行の度に求められた基準信号の微分値prevVdiff[1]〜prevVdiff[99]とを合計した100回分の微分値の平均値として算出される。
図7に示すように、移動平均処理では、このサブルーチンで用いられる変数VdiffSumの初期化が行われ、0が記憶される(S41)。次に、今回取得された基準信号の電圧値Vinから、前回(1ms前に)取得された基準信号の電圧値prevVinを差し引いた値が「Vin−prevVin」により算出され、今回取得した基準信号の微分値Vdiffとして記憶される(S42)。なお、前述したように基準信号は1ms毎に取得されるため、微分値Vdiffは上記式「Vin−prevVin」により近似値として求められる。算出された微分値Vdiffは、微分値の100回分の平均値を求めるため、合算値VdiffSumに記憶される(S43)。
次のS45〜S49の処理では、過去99回分の基準信号の微分値prevVdiff[1]〜prevVdiff[99]を合算値VdiffSumに順に加算する処理が行われる。まず、S45で、変数iに1が記憶される(S45)。次に、合算値VdiffSumにi回前(ここでは1回前)に算出した微分値prevVdiff[i(1)]を加算した値が、新しいVdiffSumとして記憶される(S46)。そして変数iの値を1インクリメントして2とした後(S47)、i≦99を満たすのでS46に戻り(S49:YES)、同様にVdiffSumにprevVdiff[i(2)]を加算する処理が行われる。この一連の処理は、iの値が99を超えると終了され(S49:NO)、処理後には、VdiffSumに、Vdiff+prevVdiff[1]+prevVdiff[2]+・・・+prevVdiff[99]を計算した結果が記憶されることとなる。従って、今回の基準信号の微分値と、過去99回分の基準信号の微分値とを合わせ100回分の微分値の合算値がVdiffSumとして記憶されているので、S50では、これを100で割って平均値を算出し、その結果が微分値の平均値duとして記憶される(S50)。
次のS51〜S57の処理では、次回の移動平均処理の実行時において微分値の平均値の算出に用いるため、微分値prevVdiff[i]を更新する処理が行われる。まず、S51で、変数iに99が記憶される(S51)。次に、prevVdiff[i(99)]にprevVdiff[i−1(98)]の値を記憶する処理が行われる(S53)。そして、iの値が1デクリメントされて98となり(S54)、i≧2を満たすのでS53に戻り(S55:YES)、同様にprevVdiff[i(98)]にprevVdiff[i−1(97)]を記憶する処理が行われる。この一連の処理は、iの値が2未満となるまで継続され(S55:NO)、prevVdiff[99]〜prevVdiff[2]までの値がそれまでのprevVdiff[98]〜prevVdiff[1]の値でそれぞれ上書き記憶され、更新される。そして最後に今回算出された微分値VdiffがprevVdiff[1]に上書き記憶されて、更新が終了する(S57)。更に、基準信号の電圧値Vinが、次回の移動平均処理の実行時にS42で利用される、前回の基準信号の電圧値prevVinとして記憶され(S58)、メインルーチンに戻る。
[ピーク値検出処理]
図5のメインルーチンでは、次に、ピーク値検出処理のサブルーチンがコールされる(S6)。このピーク値検出処理では、後述する閾値チェック処理(S7)において、空燃比がリーン側からリッチ側に変更されたか否かを判断するため、基準信号の変化を示す微分値の平均値duに対する閾値UpThresholdと、空燃比がリッチ側からリーン側に変更されたか否かを判断するため、基準信号の変化を示す微分値の平均値duに対する閾値DownThresholdとを求める処理が行われる。もっとも、微分値の平均値duの推移はセンサの種類が異なれば違う値を示すため、1秒毎に、その1秒間の微分値の平均値duの最大値(立上りピーク値)および最小値(立下りピーク値)を求める。そして、過去3秒分の立上り,立下りピーク値の平均値を元に閾値UpThreshold,DownThresholdを算出することで、そのセンサに合わせた閾値を得る処理が行われる。
図8に示すように、ピーク値検出処理では、ピーク値のサンプリングを行う1秒間を計時するために用いられるカウント値StepCountが確認され、1000未満であれば、ピーク値のサンプリング中であると判断される(S61:YES)。そして、移動平均処理で求められた微分値の平均値duが、サンプリングを行う1秒間の最大値として記憶される立上りピーク値tmpUpPeakよりも大きければ(S62:YES)、tmpUpPeakにduが記憶され、立上りピーク値が更新される(S63)。一方、微分値の平均値duが立上りピーク値tmpUpPeak以下であり(S62:NO)、サンプリングを行う1秒間の最小値として記憶される立下りピーク値tmpDownPeakよりも小さければ(S65:YES)、同様に、tmpDownPeakにduが記憶され、立下りピーク値が更新される(S66)。また、微分値の平均値duが立上りピーク値tmpUpPeak以下(S62:NO)、であり、更に立下りピーク値tmpDownPeak以上でもある場合(S65:NO)、ピーク値の更新は行われない。そして、上記いずれの処理が行われた後でも(S63/S66/S65:NO)、StepCountのインクリメントが行われ(S67)、その後メインルーチンに戻る。
ところで、前述したように、図5のメインルーチンのS3〜S13の処理は1ms毎に実行される。従って、図8のピーク値検出処理においても1ms毎にS67の処理が実行されることとなり、StepCountは増加し続ける。S1の初期化処理(図5参照)後、あるいは後述するS70でStepCountがリセットされた後、メインルーチンの処理が1ms毎に繰り返し実行され、1秒が経過してStepCountが1000となった場合には(S61:NO)、ピーク値の平均値算出処理のサブルーチンがコールされる(S69)。
図9に示すように、ピーク値の平均値算出処理では、まず、直近の1秒間に検出された立上りピーク値tmpUpPeakが、前回の1秒間に検出された立上りピーク値prevUpPeak1の1/3より大きいか否か、確認が行われる(S91)。tmpUpPeakがprevUpPeak1の1/3以下の値を示した場合(S91:NO)、今回検出された1秒間の立上りピーク値tmpUpPeakはノイズであったと判断される。そして前回の1秒間に検出された立上りピーク値prevUpPeak1を0.9倍した値がtmpUpPeakとして記憶され(S92)、S93に進む。また、tmpUpPeakがprevUpPeak1の1/3より大きい値を示した場合には(S91:YES)、そのままS93に進む。S93では、最新の3回分の立上りピーク値の平均値が求められる。具体的には「(tmpUpPeak+prevUpPeak1+prevUpPeak2)/3」が計算され、その計算結果が立上りピーク値平均値UpPeakに記憶される(S93)。
立下りピーク値についても同様の処理が行われる。すなわち、直近の1秒間に検出された立下りピーク値tmpDownPeakが、前回の1秒間に検出された立下りピーク値prevDownPeak1の1/3以上の値を示した場合(S95:NO)、今回検出された1秒間の立下りピーク値tmpDownPeakがノイズであったと判断される。そして前回の1秒間に検出された立下りピーク値prevDownPeak1を0.9倍した値がtmpDownPeakとして記憶され(S96)、S97に進む。tmpDownPeakがprevDownPeak1の1/3より小さい値を示した場合には(S95:YES)、そのままS97に進む。S97では、同様に、最新の3回分の立下りピーク値の平均値が求められる。具体的には「(tmpDownPeak+prevDownPeak1+prevDownPeak2)/3」が計算され、その計算結果が立下りピーク値平均値DownPeakに記憶される(S97)。
次いで、1秒後に行われる次回のピーク値の平均値算出処理の実行時において立上りピーク値の平均値、および立下りピーク値の平均値の算出に用いるため、各変数が更新される。具体的には、前回の1秒間に検出された立上り,立下りピーク値prevUpPeak1,prevDownPeak1が、前々回の1秒間に検出された立上り,立下りピーク値prevUpPeak2,prevDownPeak2として上書き記憶される。そして、直近の1秒間に検出された立上り,立下りピーク値tmpUpPeak,tmpDownPeakが、前回の1秒間に検出された立上り,立下りピーク値prevUpPeak1,prevDownPeak1として上書き記憶される。更に、tmpUpPeakおよびtmpDownPeakには0が記憶され、立上りピーク値および立下りピーク値がリセットされる(S99)。
その後、図8に示すピーク値検出処理サブルーチンに戻ると、次に、StepCountに0が記憶され、次の1秒間の立上り,立下りピーク値の検出を行うための計時がリセットされる(S70)。次のS71〜S81の処理では、ピーク値の平均値算出処理で求められた立上り,立下りピーク値平均値UpPeak,DownPeakがそれぞれ適正値の範囲内に収まるように補正が行われる。具体的には、UpPeakは、0以上0.0067以下の値を示せば(S71:NO,S74:NO)、適正値であると判断される。そしてUpPeakが0未満であれば(S71:YES)、UpPeakには0.005が記憶される(S73)。一方、UpPeakが0.0067より大きければ(S71:NO,S74:YES)、UpPeakには0.0067が記憶される(S75)。
UpPeakの補正が行われた後には(S73/S75/S74:NO)、S77に進み、DownPeakについても同様の補正が行われる。すなわち、DownPeakが−0.0067以上0以下の値を示せば(S77:NO,S79:NO)、適正値であると判断される。そしてDownPeakが0より大きければ(S77:YES)、DownPeakには−0.005が記憶される(S78)。一方、DownPeakが−0.0067未満であれば(S77:NO,S79:YES)、DownPeakには−0.0067が記憶される(S81)。こうしてDownPeakについても補正が行われた後には(S78/S81/S79:NO)、S82に進む。
S82の処理では、次の閾値チェック処理(S7)において用いられる閾値UpThreshold,DownThresholdを求める処理が行われる(S82)。本実施の形態では、UpThresholdとして、立上りピーク値平均値UpPeakの0.15倍の値が設定され、DownThresholdとしては、立下りピーク値平均値DownPeakの0.15倍の値が設定される構成となっている。その後メインルーチンに戻る。なお、上記のように求められたUpThresholdおよびDownThresholdは、StepCountが1000未満であるうちは、最後にS82の処理が実行された際に算出された値が保存され、次の閾値チェック処理で利用されることとなる。
[閾値チェック処理]
次に、図5のメインルーチンでは、閾値チェック処理のサブルーチンがコールされる(S7)。閾値チェック処理は、移動平均処理で求めた基準信号の微分値の平均値duを、ピーク値検出処理で求めた閾値UpThreshold,DownThresholdと比較して、立上り状態にあるか立下り状態にあるかを判定するための処理である。
図10に示すように、閾値チェック処理では、前回(1ms前)、閾値チェック処理が実行された際に判定された空燃比の変化の検出結果を示すフラグstateの値を記憶したprevState1を、今回の処理において新たに用いるため、stateにコピーし記憶させる処理が行われる(S101)。次に、duとUpThresholdが比較され、duがUpThresholdを上回った場合には(S102:YES)、基準信号の電圧値が急激に上昇しており、空燃比がリーン側からリッチ側に変更された立上り状態にあると判定され、stateに1が記憶される(S103)。同様に、duがDownThresholdを下回った場合には(S102:NO,S105:YES)、基準信号の電圧値が急激に下降しており、空燃比がリッチ側からリーン側に変更された立下り状態にあると判定され、stateに−1が記憶される(S106)。そして、duがDownThreshold以上UpThreshold以下であれば(S102:NO,S105:NO)、前回判定されたフラグの値を変更しない。このように、空燃比の状態について判定がなされた後には(S103/S106/S105:NO)、次回の閾値チェック処理で利用するため現在のstateの値をprevState1に記憶させて保存してから(S107)、メインルーチンに戻る。なお、S102においてduがUpThresholdを上回り、立上り状態と判定し、stateの値として新たに1を設定し直す時点が、本発明における「リーンリッチ変化開始点」であり、S103においてduがDownThresholdを下回り、立下り状態と判定し、stateの値として新たに−1を設定し直す時点が、本発明における「リッチリーン変化開始点」である。そして、このS102,S103の判定処理を行うCPU11が、本発明における「空燃比変化開始点検出手段」に相当する。
ここで、図19のグラフを参照し、閾値チェック処理の動作の具体例について説明する。目標空燃比がリーン側からリッチ側に変更されると、基準信号の電圧値(出力電圧)は、区間[A−B]に示されるように急激に上昇する。つまり、基準信号の微分値の平均値duは大きな値となり、この区間ではdu>UpThresholdを満たし、立上り状態にあると判定され、stateに1が記憶されることとなる。そして基準信号の電圧値が約0.9Vに達して安定する区間[B−C]では、基準信号の微分値の平均値duは0に近づくが、DownThresholdを下回ることはない。この区間では、prevState1からコピーされる前回のstateの値がそのまま維持されるため、stateは1であって立上り状態が維持される。次に目標空燃比がリッチ側からリーン側に変更されると、区間[C−D]に示されるように、基準信号の電圧値が急激に下降する。基準信号の微分値の平均値duは負側で大きな値となり、この区間ではdu<DownThresholdを満たし、立下り状態にあると判定され、stateに−1が記憶されることとなる。そして基準信号の電圧値が約0.05Vとなって安定する区間[D−E]では、基準信号の微分値の平均値duは0に近づくが、UpThresholdを下回ることはない。この区間では、上記同様、prevState1からコピーされる前回のstateの値がそのまま維持されるため、stateは−1であって立下り状態が維持されることとなる。このようにして判定された空燃比の状態は、S9の応答特性処理、S10の第1オーバーシュートチェック処理およびS13の第2オーバーシュートチェック処理で利用される。
[応答特性処理]
次に、図5のメインルーチンでは、応答特性処理のサブルーチンがコールされる(S9)。応答特性処理は、空燃比が立上り状態にある場合と立下り状態にある場合とで異なる変移率RichTimeConstant,LeanTimeConstantを用い、基準信号(電圧値Vin)(本実施の形態ではゲイン処理後の第1中間信号(電圧値Vint1))の応答特性を変更した第2中間信号(電圧値Vint2)を得る処理である。
図11に示す応答特性処理では、まず、閾値チェック処理で得たフラグstateの値が参照され、0より大きいか否か確認が行われる(S111)。立上り状態にある場合、stateは1であり(S111:YES)、変移率としてリーンリッチ変移率RichTimeConstantが選択される。そして、前述した数式(2)を用い、係数αが計算され、計算結果が記憶される(S112)。一方、立下り状態にあり、stateが−1だった場合も同様で(S111:NO)、変移率としてリッチリーン変移率LeanTimeConstantが選択される。そして、前述した数式(3)を用い、係数αが計算され、計算結果が記憶される(S113)。
そして前述した数式(1)を用い、第1中間信号の電圧値Vint1の応答特性を変更した第2中間信号の電圧値Vint2が算出される(S115)。このとき、S112またはS113の処理の実行により算出された係数αと、前回の応答特性処理の実行時に求められたVint2を記憶したprevVint2とが数式(1)の変数として用いられる。その後メインルーチンに戻る。なお、S112またはS113の処理で算出した係数αを用い、S115の処理で基準信号(本実施の形態では第1中間信号)の応答特性を変更するCPU11が、本発明における「変移時間変更手段」に相当する。
[第1オーバーシュートチェック処理]
ところで、空燃比が変更された場合、第2中間信号の算出にそれまで用いられていた変移率(RichTimeConstantもしくはLeanTimeConstant)が他方の変移率(LeanTimeConstantもしくはRichTimeConstant)に置き換えられることとなる。この変移率が置き換えられるタイミングは、空燃比の変更に伴う基準信号の変化が検出されたタイミングであり、基準信号の電圧値Vin(本実施の形態では第1中間信号の電圧値Vint1)が、既に大きく変化(増加または減衰)を始めている場合がある。このため、上記タイミングにおいて、算出される第2中間信号の電圧値Vint2の変化方向が一時的に逆転することがある。例えば、空燃比がリーン側からリッチ側に変更された場合、第2中間信号の電圧値Vint2は低電位から高電位に変化するが、上記タイミングにおいて、一時的に高電位から低電位に変化し、その信号波形が波打つように変化する場合がある。その一例を、図24のグラフに示す。
図24では、Fタイミング以前において、空燃比がリーン側であることが検出されて立下り状態と判定され、stateには−1が記憶されており、第2中間信号(電圧値Vint2)として出力される信号には、LeanTimeConstantを用いて算出された立下り時の信号(図24では2点鎖線で示し、RichTimeConstant=0であるので基準信号(図示しない)と一致している。)となる。そして空燃比がリッチ側に変更されたことが検出されたFタイミング以降は、立上り状態と判定されてstateが1となるので、第2中間信号(電圧値Vint2)として出力される信号には、RichTimeConstantを用いて算出された立上り時の信号(図24では1点鎖線で示す。)となる。このFタイミングにおいて、立下り時の第2中間信号の電圧値Vint2は、立上り時の第2中間信号の電圧値Vint2よりも高い値であり、両者を結合して出力される第2中間信号(電圧値Vint2)は、Fタイミングにおいて、本来なら立上り状態であるので電圧値の変化が上昇となるところが大きく下降し(図中矢印で示す。)、その後上昇していくグラフを描くこととなる。
第1オーバーシュートチェック処理では、このFタイミング以後、立上り状態にありながら電圧値がFタイミングのときの値よりも減少した現象の補正が行われ、空燃比がリッチ側からリーン側に変更された場合についても同様に補正が行われる。すなわち、空燃比がリーン側からリッチ側に変更され、基準信号の電圧値が上昇中にある場合に、一時的な電圧値の下降が生ずることがなく、また、空燃比がリッチ側からリーン側に変更され、基準信号の電圧値が下降中にある場合に、一時的な電圧値の上昇が生ずることがないように、電圧値の補正が行われる。図24を参照した具体例で示すと、Fタイミング直前(1ms前)の立下り時のVint2の値をVbaseとして保存し、Gタイミングにおいて立上り時のVint2の値がVbaseに一致するまで、FタイミングからGタイミングまでの間の立上り時のVint2の値をVbaseで置換することで補正が行われる。これにより、図25に示す例では、第1オーバーシュートチェック処理の結果得られる第3中間信号(電圧値Vint3)の描く曲線(図25では実線で示される。)は、FタイミングからGタイミングまでの間、電圧値が一定(Vbase)の直線で置換されたグラフとなる。
上記のようにVint2を補正したVint3を得るため、図5のメインルーチンにおいて第1オーバーシュートチェック処理のサブルーチンがコールされる(S10)。第1オーバーシュートチェック処理では、図12に示すように、まず、閾値チェック処理で得たフラグstateの値が参照され、0より大きいか否か確認が行われる(S121)。図24に示したグラフを例に説明すると、Fタイミング(図24参照)以前には、空燃比がリッチ側からリーン側に変更されたと検出された状態(立下り状態)にあり、stateは−1であるので(S121:NO)、応答特性立下り処理のサブルーチンがコールされる(S123)。
図14に示す応答特性立下り処理では、前回(1ms前)の空燃比の移行状態を示すフラグstateの値を記憶して保存したprevState2の値が参照され、0より大きいか否か確認が行われる(S151)。Fタイミング以前には、prevState2が−1であるので(S151:NO)、前回も今回も空燃比はリーン側にあり、変更されていないと判断され、そのままS155に進む。空燃比の状態(stateの値)に変化が生ずる前にはCheckFlagの値が0となっており(S155:NO)、第2中間信号の電圧値Vint2はそのまま第3中間信号の電圧値Vint3として記憶されて(S161)、図12に示す第1オーバーシュートチェック処理のサブルーチンに戻る。そして、次回の第1オーバーシュートチェック処理で用いるため、stateの値がprevState2に記憶されて保存される。更に第2中間信号の電圧値Vint2を次回の応答特性処理の実行の際に利用するため、Vint2の値がprevVint2に記憶されて保存され(S125)、メインルーチンに戻る。
時間が経過し、メインルーチンの処理が1ms毎に繰り返し実行されてFタイミング(図24参照)となったときには、空燃比がリーン状態からリッチ状態に変更されたことが検出されてstateには1が記憶され、図12に示す第1オーバーシュートチェック処理において応答特性立上り処理のサブルーチンがコールされる(S121:YES,S122)。
図13に示す応答特性立上り処理では、Fタイミング(図24参照)以前のstateの値を記憶したprevState2の値は−1であるので(S151:YES)、空燃比の状態がリーン側からリッチ側に変更されたと判断される。そして、Vint2の値の補正が必要なときに置き換えにより補正するための補正値Vbaseとして、前回(1ms前)算出された立下り時の第2中間信号の電圧値Vint2を保存したprevVint2の値がコピーされ記憶される(S132)。更にCheckFlagに1が記憶される(S133)。
次に、S135ではCheckFlagが1であるので(S135:YES)、Vint2の値の補正を行う必要があるか判定するため、Vint2がVbaseより小さいか否かの確認が行われる(S136)。Fタイミングでは、RichTimeConstantを用いて算出されたVint2の値がVbaseよりも小さいのでVint2に対し補正を行う必要があり(S136:YES)、Vint3にVbaseの値が記憶されて(S137)、第1オーバーシュートチェック処理のサブルーチンに戻る。
Fタイミング以後、空燃比の状態がリッチ側であるためstateは1を示し、第1オーバーシュートチェック処理では継続して応答特性立上り処理のサブルーチンがコールされる(図12:S121:YES)。立上り状態の継続時にはprevState2にも1が記憶されているため(S131:NO)、Vbaseの値はFタイミングにおいて応答特性立上り処理が実行されたときに記憶された値が維持される。更にCheckFlagにも1が記憶された状態が維持されるため(S135:YES)、FタイミングからGタイミングまでの期間のように、Vint2(図24参照)はVbaseで置換され(S136:YES)、上記同様、直線近似されたVint3(図25参照)が得られる(S137)。
更に時間が経過し、Gタイミングとなったときには、Vint2の値がVbase以上となるため、図13に示す応答特性立上り処理のS136においてS139に進む(S136:NO)。Vint2を補正する必要がなくなるため、Vint3にはVint2が記憶され(S139)、更にCheckFlagには0が記憶されて(S140)、第1オーバーシュートチェック処理のサブルーチンに戻る。
Gタイミング以後も、空燃比の状態がリッチ側であるためstateもprevState2も1となっている。第1オーバーシュートチェック処理では継続して応答特性立上り処理のサブルーチンがコールされる(図12:S121:YES)。そして応答特性立上り処理では、CheckFlagが0となっているのでVint2がそのままVint3に記憶されて(S131:NO,S135:NO,S141)、第1オーバーシュートチェック処理のサブルーチンに戻る。
このようにして生成される第3中間信号(電圧値Vint3)の描くグラフの一例を図23に示す。図23では、基準信号(電圧値Vin)に対し、ゲイン処理および空燃比のリーン側からリッチ側への変更に伴う応答特性処理を行っていない。そして、空燃比のリッチ側からリーン側への変更が検出された際(図19の区間[C−E]に相当する。)に生成される第2中間信号(電圧値Vint2)に対し第1オーバーシュートチェック処理を行って生成した第3中間信号(電圧値Vint3)の描くグラフ(図中1点鎖線で示す。)を、基準信号(電圧値Vin)の描くグラフ(図中点線で示す。)と対比させた。リッチリーン変移率LeanTimeConstantを用いて算出されたことによって応答特性が劣化した第3中間信号では、基準信号の電圧値Vinの高電位から低電位への変化と比べ、電圧値Vint3の高電位から低電位への変化に時間がかかっている様子がわかる。そして第1オーバーシュートチェック処理によって、Vint3が高電位から低電位に変化する途中で一時的に低電位から高電位に変化する現象が生じないように補正された様子も確認できる。
なお、図14に示す応答特性立下り処理は、上記説明した図13に示す応答特性立上り処理に対し対称となる処理を、空燃比がリッチ側からリーン側へ変更された際に行うものである。従って、応答特性立上り処理におけるS131〜S141の処理はそれぞれ、応答特性立下り処理におけるS151〜S161の処理にそれぞれ対応し、S151およびS156における不等号の向きが逆となる以外、同一の処理内容となる。具体的には図14に示すように、空燃比がリッチ側からリーン側に変更されたことが基準信号の変化に基づき検出されたタイミング(state=−1,prevState2=1)には、(S121:NO,S123(図12参照),S151:YES)、前回(1ms前)のVint2を保存したprevVint2がVbaseに記憶され(S152)、CheckFlagに1が記憶される(S153)。そしてVint2の値がVbaseより大きく補正を行う必要があれば(S155:YES,S156:YES)、Vint2をVbaseで置換するため、VbaseがVint3に記憶される(S157)。その後もVbaseによるVint2の置換が継続されるが(S151:NO,S155:YES,S156:YES,S157)、VbaseがVint2以下の値となったタイミング以降は(S156:NO)、Vint2を補正する必要がなくなるため、Vint3にはVint2が記憶され(S159)、更にCheckFlagには0が記憶される(S160)。それ以後も空燃比の状態はリーン側であるためstateもprevState2も−1であり、(S121:NO,S123(図12参照),S151:NO)、CheckFlagも0となっているのでVint2がそのままVint3として記憶される(S155:NO,S161)。
このときに生成される第3中間信号(電圧値Vint3)の描くグラフの一例を図22に示す。図22では、基準信号(電圧値Vin)に対し、ゲイン処理および空燃比のリッチ側からリーン側への変更に伴う応答特性処理を行っていない。そして、空燃比のリーン側からリッチ側への変更が検出された際(図19の区間[A−C]に相当する。)に生成される第2中間信号(電圧値Vint2)に対し第1オーバーシュートチェック処理を行って生成した第3中間信号(電圧値Vint3)の描くグラフ(図中1点鎖線で示す。)を、基準信号(電圧値Vin)の描くグラフ(図中点線で示す。)と対比させた。リーンリッチ変移率RichTimeConstantを用いて算出されたことによって応答特性が劣化した第3中間信号では、基準信号の電圧値Vinの低電位から高電位への変化と比べ、電圧値Vint3の低電位から高電位への変化に時間がかかっている様子がわかる。
[遅延処理]
第1オーバーシュートチェック処理が終了し、図5のメインルーチンに戻ると、次に、遅延処理のサブルーチンがコールされる(S11)。遅延処理は、目標空燃比がリーン側からリッチ側、あるいはリッチ側からリーン側に変更されたことに伴い基準信号(電圧値Vin)(本実施の形態では応答特性処理後の第3中間信号(電圧値Vint3))が変化し始める開始点を、リーンリッチ遅延時間RichDelayTimeまたはリッチリーン遅延時間LeanDelayTimeで設定された時間分遅いタイミングに出力されるように遅延させた第4中間信号(電圧値Vint4)または第5中間信号(電圧値Vint5)を得る処理である。
図15に示す遅延処理では、まず、応答特性処理、第1オーバーシュートチェック処理を経て得られた第3中間信号の電圧値Vint3が、prevVint3[0]に記憶される(S171)。前述したように、prevVint3[i](ただし、i=0,1,2,・・・,600)は最大600msまでのVint3の値を記憶して保存するための601個の記憶エリアであり、前回(1ms前)の遅延処理の実行時のVint3の値から、600回前(600ms前)の遅延処理の実行時のVint3の値までが、対応する記憶エリアに保存されている。今回の遅延処理の実行時のVint3の値は、上記のように、prevVint3[0]に保存される。なお、S171で、基準信号(本実施の形態では第3中間信号)の電圧値Vint3をprevVint3[0]に記憶することで、後のS175〜S179の処理で取得順にprevVint3[i]に取得順に記憶させるCPU11が、本発明における「基準信号記憶手段」に相当する。
次に、目標空燃比がリーン側からリッチ側へ変更されたことに伴い基準信号が変化し始める開始点を遅延させるリーンリッチ遅延時間RichDelayTimeが参照される。RichDelayTimeは0〜600msの範囲内で予め利用者に設定された遅延時間であり、prevVint3[RichDelayTime]で指定される記憶エリアに保存された、[RichDelayTime]ms前の第3中間信号の電圧値Vint3の値が読み出される。そして、排気ガスの空燃比がリーン側からリッチ側に変更された立上り状態が検出された場合に、[RichDelayTime]ms遅延して出力される第4中間信号の電圧値Vint4として記憶される(S172)。同様に、LeanDelayTimeも参照され、prevVint3[LeanDelayTime]で指定される記憶エリアに保存された、[LeanDelayTime]ms前の第3中間信号の電圧値Vint3の値が読み出される。そして、排気ガスの空燃比がリッチ側からリーン側に変更された立下り状態が検出された場合に、[LeanDelayTime]ms遅延して出力される第5中間信号の電圧値Vint5として記憶される(S173)。後述するが、空燃比がリーン側からリッチ側に変更され基準信号に変化が生じたことが検出された場合には、センサシミュレータ1から出力される劣化信号として第4中間信号が選択され、同様に、空燃比がリッチ側からリーン側に変更され基準信号に変化が生じたことが検出された場合には、劣化信号として第5中間信号が選択される。なお、S172,S173において、[RichDelayTime]ms前および[LeanDelayTime]ms前の基準信号(本実施の形態では第3中間信号)の電圧値Vint3をprevVint3[RichDelayTime]およびprevVint3[LeanDelayTime]から読み出して、劣化信号として出力するため、第4中間信号の電圧値Vint4および第5中間信号の電圧値Vint5としてそれぞれ記憶するCPU11が、本発明における「信号遅延生成手段」に相当する。
次のS175〜S179の処理では、次回の遅延処理の実行時に利用されるように、prevVint3[i]を更新する処理が行われる。まず、S175で、変数iに600が記憶される(S175)。次に、prevVint3[i(600)]にprevVint3[i−1(599)]の値を記憶する処理が行われる(S176)。そして、iの値が1デクリメントされて599となり(S177)、i≧1を満たすのでS175に戻り(S179:YES)、同様にprevVint3[i(599)]にprevVint3[i−1(598)]を記憶する処理が行われる。この一連の処理は、iの値が1未満となるまで継続され(S179:NO)、prevVint3[600]〜prevVint3[1]までの値がそれまでのprevVint3[599]〜prevVint3[0]の値でそれぞれ上書き記憶され、更新される。その後、メインルーチンに戻る。
[第2オーバーシュートチェック処理]
ところで、空燃比が変更された場合、それまで選択されていた第4中間信号または第5中間信号に代わり、第5中間信号または第4中間信号が劣化信号として選択されるようになる。第4中間信号または第5中間信号から、第5中間信号または第4中間信号に切り換わるタイミングは、空燃比の変更に伴う基準信号の変化が検出されたタイミングであり、上記同様に、第4中間信号または第5中間信号の電圧値Vint4またはVint5は、既に大きく変化(増加または減衰)を始めている場合がある。このため、上記タイミングにおいて、劣化信号の電圧値Voutの変化方向が一時的に逆転することがある。例えば、目標空燃比がリッチ側からリーン側に変更された場合、劣化信号の電圧値Voutは高電位から低電位に変化するが、上記タイミングにおいて、一時的に低電位から高電位に変化し、その信号波形が波打つように変化する場合がある。その一例を、図28のグラフに示す。
図28では、Hタイミング以前において、空燃比がリッチ側であることが検出されて立上り状態と判定され、stateには1が記憶されており、劣化信号として出力される信号には、1点鎖線で示される第4中間信号(電圧値Vint4)が選択されている(図28の例ではRichDelayTime=0であるので基準信号と一致している。)。そして空燃比がリーン側に変更されたことが検出されたHタイミングでは、立下り状態と判定されてstateが−1となるので、劣化信号として出力される信号は、第4中間信号から、2点鎖線で示される第5中間信号に置き換えられる。Hタイミングにおいて第4中間信号の電圧値Vint4は、空燃比がリッチ側で安定したときに示す約0.9Vから、空燃比がリーン側で安定したときに示す約0.05Vへ変化し始めた、0.9Vよりも低い値となっている。一方、Hタイミングにおける第5中間信号の電圧値Vint5は、[LeanDelayTime]ms前の第3中間信号の電圧値Vint3(図28の例では基準信号の電圧値Vin)となっており、より具体的にはHタイミングからIタイミングまでの時間に相当するリッチリーン遅延時間前の値で、約0.9Vとなっている。このため、出力される劣化信号は、図28に示す第4中間信号と第5中間信号とを結合させた信号となり、Hタイミングにおいて、本来なら立下り状態であるため電圧値の変化が下降となるところが大きく上昇し(図中矢印で示す。)、その後下降を始めるグラフを描くこととなる。
第2オーバーシュートチェック処理では、このHタイミング以後、立下り状態にありながら電圧値がHタイミングのときの値よりも増加した現象の補正が行われ、空燃比がリーン側からリッチ側に変更された場合についても同様に補正が行われる。すなわち、空燃比がリーン側からリッチ側に変更され、基準信号の電圧値が上昇中にある場合には、一時的な電圧値の下降を生ずることがなく、また、空燃比がリッチ側からリーン側に変更され、基準信号の電圧値が下降中にある場合には、一時的な電圧値の上昇を生ずることがないように、電圧値の補正が行われる。図28を参照した具体例で示すと、Hタイミング直前(1ms前)のVint5の値をVbaseとして保存し、IタイミングにおいてVint4の値がVbaseに一致するまで、HタイミングからIタイミングまでの間のVint4の値をVbaseで置換することで補正が行われる。これにより、図29に示す例では、第2オーバーシュートチェック処理の結果得られる劣化信号(電圧値Vout)の描く曲線(図29では実線で示される。)は、HタイミングからIタイミングまでの間、電圧値が一定(Vbase)の直線で置換されたグラフとなる。
このように、遅延処理後の第4中間信号および第5中間信号を補正した劣化信号を得るため、図5のメインルーチンにおいて第2オーバーシュートチェック処理のサブルーチンがコールされる(S13)。第2オーバーシュートチェック処理では、図16に示すように、まず、閾値チェック処理で得たフラグstateの値が参照され、0より大きいか否か確認が行われる(S181)。図28に示したグラフを例に説明すると、Hタイミング(図28参照)以前には空燃比がリーン側からリッチ側に変更されたと検出された状態(立上り状態)にあり、stateは1であるので(S181:YES)、遅延立上り処理のサブルーチンがコールされる(S182)。なお、S181で、第4中間信号もしくは第5中間信号が劣化信号として生成されるように、stateの値によって遅延立上り処理または遅延立ち下がり処理を選択するCPU11が、本発明における「劣化信号選択生成手段」に相当する。
図17に示す遅延立上り処理では、前回(1ms前)の空燃比の移行状態を示すフラグstateの値を記憶して保存したprevState3の値が参照され、0より小さいか否か確認が行われる(S191)。Hタイミング以前には、prevState3が1であるので(S191:NO)、前回も今回も空燃比はリッチ側にあり、変更されていないと判断され、そのままS195に進む。空燃比の状態(stateの値)に変化が生ずる前にはCheckFlagの値が0となっており(S195:NO)、stateが1の立上り状態であるので劣化信号には第4中間信号が選択されて、その電圧値Vint4がVoutに記憶される(S201)。そして、図16に示す第2オーバーシュートチェック処理のサブルーチンに戻る。更に、次回の第2オーバーシュートチェック処理で用いるため、state,Vint4,Vint5の値がそれぞれ、prevState3,prevVint4,prevVint5に記憶されて保存され(S185)、メインルーチンに戻る。
時間が経過し、メインルーチンの処理が1ms毎に繰り返し実行されてHタイミング(図28参照)となったときには、空燃比がリッチ状態からリーン状態に変更されたことが検出されてstateには−1が記憶され、図16に示す第2オーバーシュートチェック処理では遅延立下り処理のサブルーチンがコールされる(S181:NO,S183)。
図18に示す遅延立下り処理では、Hタイミング(図28参照)以前のstateの値を記憶したprevState3の値が1であるので(S211:YES)、空燃比の状態がリッチ側からリーン側に変更されたと判断される。そして、Vint5の値の補正が必要なときに置き換えにより補正するための補正値Vbaseとして、前回(1ms前)選択されていた第4中間信号の電圧値Vint4を保存したprevVint4の値がコピーされ記憶される(S212)。更にCheckFlagに1が記憶される(S213)。なお、S212で、前回の第4中間信号の電圧値prevVint4を本発明における「リッチリーン保持信号」に相当する補正値Vbaseとしてコピーして記憶させるCPU11、および後述するS192で、同様に、前回の第5中間信号の電圧値prevVint5を本発明における「リーンリッチ保持信号」に相当する補正値Vbaseとしてコピーして記憶させるCPU11が、本発明における「保持信号記憶手段」に相当する。
次に、S215ではCheckFlagが1であるので(S215:YES)、Vint5の値の補正を行う必要があるか判定するため、Vint5がVbaseより大きいか否かの確認が行われる(S216)。Hタイミング(図28参照)のVint5の値はVbaseよりも大きいのでVint5に対し補正を行う必要があり(S216:YES)、最終出力信号となる劣化信号の電圧値VoutにVbaseの値が記憶されて(S217)、第2オーバーシュートチェック処理のサブルーチンに戻る。
Hタイミング以後、空燃比の状態がリーン側であるためstateは−1を示し、第2オーバーシュートチェック処理では継続して遅延立下り処理のサブルーチンがコールされる(図16:S181:YES)。立下り状態の継続時にはprevState3にも−1が記憶されているため(S211:NO)、Vbaseの値はHタイミングにおいて遅延立下り処理が実行されたときに記憶された値が維持される。更にCheckFlagにも1が記憶された状態が維持されるため(S215:YES)、HタイミングからIタイミングまでの期間のように、Vint5(図28参照)はVbaseで置換され(S216:YES)、上記同様、直線近似されたVout(図29参照)が得られる(S217)。なお、S217で、出力する劣化信号の電圧値Voutとして、S212で保存したVbaseを記憶させるCPU11、およびS197で、同様に、出力する劣化信号の電圧値Voutとして、S192で保存したVbaseを記憶させるCPU11が、本発明における「保持信号出力手段」に相当する。
更に時間が経過し、Iタイミングとなったときには、Vint5の値がVbase以下となるため、図18に示す遅延立下り処理のS216においてS219に進む(S216:NO)。Vint5を補正する必要がなくなるため、VoutにはVint5が記憶され(S219)、更にCheckFlagには0が記憶されて(S220)、第2オーバーシュートチェック処理のサブルーチンに戻る。
Iタイミング以後も、空燃比の状態がリーン側であるため、stateもprevState3も−1となっている。第2オーバーシュートチェック処理では継続して遅延立下り処理のサブルーチンがコールされる(図16:S181:NO)。そして遅延立下り処理では、CheckFlagが0となっているのでVint5がそのままVoutとして記憶され(S211:NO,S215:NO,S221)、第2オーバーシュートチェック処理のサブルーチンに戻る。なお、S219,S221で第5中間信号が劣化信号として出力されるようにその電圧値Vint5をVoutにコピーして記憶させるCPU11が、本発明における「リッチリーン信号遅延出力手段」に相当する。
このようにして生成される劣化信号(電圧値Vout)の描くグラフの一例を図27に示す。図27では、基準信号(電圧値Vin)に対し、ゲイン処理、応答特性処理、および目標空燃比のリーン側からリッチ側への変更に伴う遅延処理を行っていない。そして、空燃比のリッチ側からリーン側への変更が検出された際(図19の区間[C−E]に相当する。)に選択される第5中間信号に対し第2オーバーシュートチェック処理が行われて生成された劣化信号(電圧値Vout)の描くグラフ(図中1点鎖線で示す。)を、基準信号(電圧値Vin)の描くグラフ(図中点線で示す。)と対比させた。基準信号の電圧値Vinが高電位から低電位に変化する場合に、劣化信号(電圧値Vout)がリッチリーン遅延時間LeanDelayTime分だけ遅れて出力される様子がわかる。そして第2オーバーシュートチェック処理によって、Voutが高電位から低電位に変化する途中で一時的に低電位から高電位に変化する現象が生じないように補正された様子も確認できる。
なお、図17に示す遅延立上り処理は、上記説明した図18に示す遅延立下り処理に対し対称となる処理を、空燃比がリーン側からリッチ側へ変更された際に行うものである。従って、遅延立下り処理におけるS211〜S221の処理はそれぞれ、遅延立上り処理におけるS191〜S201の処理にそれぞれ対応し、出力される劣化信号(電圧値Vout)として第4中間信号(電圧値Vint4)が選択される処理内容となっている。具体的には図17に示すように、空燃比がリーン側からリッチ側に変更されたことが基準信号の変化に基づき検出されたタイミング(state=1,prevState3=−1)には、(S181:YES,S182(図16参照),S191:YES)、前回(1ms前)選択されていた第5中間信号の電圧値Vint5を保存したprevVint5の値がVbaseにコピーされ記憶され(S192)、CheckFlagに1が記憶される(S193)。そしてVint4の値がVbaseより小さく補正を行う必要があれば(S195:YES,S196:YES)、劣化信号の電圧値Voutとして、Vint4を置換したVbaseが記憶される(S197)。その後もVbaseによるVint4の置換が継続されるが(S191:NO,S195:YES,S196:YES,S197)、VbaseがVint4以上の値となったタイミング以降は(S196:NO)、Vint4を補正する必要がなくなるため、VoutにはVint4が記憶され(S199)、更にCheckFlagに0が記憶される(S200)。それ以後も空燃比の状態はリッチ側であるため、stateもprevState3も1であり、(S181:YES,S182(図16参照),S191:NO)、CheckFlagも0となっているので、Vint4がそのままVoutとして記憶される(S195:NO,S201)。なお、S199,S201で第4中間信号が劣化信号として出力されるようにその電圧値Vint4をVoutにコピーして記憶させるCPU11が、本発明における「リーンリッチ信号遅延出力手段」に相当する。
このときに生成される劣化信号(電圧値Vout)の描くグラフの一例を図26に示す。図26では、基準信号(電圧値Vin)に対し、ゲイン処理、応答特性処理、および目標空燃比のリッチ側からリーン側への変更に伴う遅延処理を行っていない。そして、空燃比のリーン側からリッチ側への変更が検出された際(図19の区間[A−C]に相当する。)に選択される第4中間信号に対し第2オーバーシュートチェック処理が行われて生成された劣化信号(電圧値Vout)の描くグラフ(図中1点鎖線で示す。)を、基準信号(電圧値Vin)の描くグラフ(図中点線で示す。)と対比させた。基準信号の電圧値Vinが低電位から高電位に変化する場合に、劣化信号(電圧値Vout)がリーンリッチ遅延時間RichDelayTime分だけ遅れて出力される様子がわかる。そして第2オーバーシュートチェック処理によって、Voutが低電位から高電位に変化する途中で一時的に高電位から低電位に変化する現象が生じないように補正された様子も確認できる。
以上説明したように、劣化信号生成プログラムの実行によって、基準信号(電圧値Vin)に対しゲイン処理、応答特性処理、および遅延処理を行った劣化信号(電圧値Vout)が生成される。劣化信号(電圧値Vout)の描くグラフ(図中1点鎖線で示される。)を図30に示すが、目標空燃比の変更に追従して電圧値が変化するものの、基準信号(電圧値Vin)の描くグラフ(図中点線で示される。)と比較して、電圧値の変化が鈍った信号波形となる。ゲイン処理、応答特性処理、および遅延処理のいずれの処理も、空燃比がリッチ側にある場合とリーン側にある場合とで異なるパラメータを用い、信号に対する処理内容を個別に設定することが可能であり、様々な形態の基準信号の劣化状態を疑似的に生成することができる。
なお、本発明は上記実施の形態に限られず、各種の変形が可能である。例えばUSBやRS232C等の入出力インターフェイスを備え、対応するケーブルを用いてパーソナルコンピュータに接続し、設定値等の入力や表示確認等を行ってもよい。また、基準センサ2の基準信号や、生成した劣化信号をその入出力インターフェイスを介してパーソナルコンピュータに出力し、パーソナルコンピュータ上で出力波形を生成してモニタリングできるようにしてもよいし、もちろん、表示部80に出力波形を表示させてもよい。
また、EEPROM12の設定値記憶エリア121に、設定値の組み合わせを複数種類記憶できるようにしてもよい。つまり、基準センサ2として空燃比センサを用いた場合やNOxセンサを用いた場合など、それぞれのセンサ向けに設定した設定値を読み込めるようにすれば、接続するセンサを取り換える度に設定値を入れ直す手間を省くことができる。もちろん、EEPROM12ではなく一般的なROMを用い、これら設定値の組み合わせをプリセット値として保存してもよい。
また、本実施の形態では、図4に示す、ゲイン処理ブロック、応答特性処理ブロックおよび遅延処理ブロックの各処理ブロックをこの順に行ったが、それぞれ独立して実行することが可能であり、任意の順に処理を行ってもよい。ただし、立上り,立下り検出ブロックについては、応答特性処理ブロックおよび遅延処理ブロックよりも先に処理を行う必要がある。
また、利用者の設定可能な7つの変数(RichGain,LeanGain,GainThreshold,RichTimeConstant,LeanTimeConstant,RichDelayTime,LeanDelayTime)は、S1の初期化処理でEEPROM12の設定値記憶エリア121からRAM13の変数記憶エリア132にコピーされ、以降の処理では変数記憶エリア132の記憶値が参照されたが、これら7つの変数については設定値記憶エリア121の記憶値が参照されるようにしてもよい。このようにすれば、利用者が、劣化信号生成プログラムの実行中に設定値を変更した場合に、その変更結果を、生成される劣化信号に即座に反映させることができる。
また、本実施の形態では、劣化信号生成プログラムを実行することでソフトウェア的に基準信号から劣化信号を生成したが、ロジック回路を構成したアナログまたはデジタルハードウェア回路を作製し、劣化信号の生成を行ってもよい。
酸素センサ、全領域空燃比センサ、NOxセンサ等の各種ガスセンサが劣化した状態において出力する劣化信号を擬似的に発生することができる劣化信号発生装置に適用することができる。
1 センサシミュレータ
2 基準センサ
11 CPU
12 EEPROM
13 RAM
60 入力部
121 設定値記憶エリア
132 変数記憶エリア
Vin 基準信号
Vout 劣化信号
RichDelayTime リーンリッチ遅延時間
LeanDelayTime リッチリーン遅延時間
du 微分値
UpThreshold 空燃比がリーン側からリッチ側に変更される場合の閾値
DownThreshold 空燃比がリッチ側からリーン側に変更される場合の閾値
RichGain リッチ利得率
LeanGain リーン利得率
GainThreshold しきい値
RichTimeConstant リーンリッチ変移率
LeanTimeConstant リッチリーン変移率
Vbase リッチリーン保持信号,リーンリッチ保持信号

Claims (9)

  1. 内燃機関の排気ガス中の特定成分の濃度に基づき当該排気ガスの空燃比を検出するガスセンサが劣化した状態において出力する劣化信号を、疑似的に発生する劣化信号発生装置であって、
    前記劣化信号を生成するための基準信号であって、排気ガス中の特定成分の濃度に関連した基準信号を出力する前記ガスセンサと同構成をなした基準センサに接続されると共に、前記基準信号を一定時間毎に取得する基準信号取得手段と、
    前記基準信号取得手段によって取得された前記基準信号を、その取得順に記憶する基準信号記憶手段と、
    内燃機関に供給される混合気の目標空燃比の変更に伴って前記基準信号が変化し始める開始点を遅延させた状態で出力するための遅延時間を設定する遅延時間設定手段と、
    前記遅延時間設定手段にて設定された前記遅延時間に相当する取得回数前に前記基準信号記憶手段に記憶された前記基準信号を前記劣化信号として生成する信号遅延生成手段と
    を備えたことを特徴とするガスセンサの劣化信号発生装置。
  2. 前記遅延時間設定手段は、
    前記遅延時間として、前記目標空燃比がリッチ側からリーン側に変更される場合に前記基準信号が変化し始める開始点を遅延させるリッチリーン遅延時間と、前記目標空燃比がリーン側からリッチ側に変更される場合に前記基準信号が変化し始める開始点を遅延させるリーンリッチ遅延時間とを個別に設定可能に構成され、
    前記信号遅延生成手段は、
    前記リッチリーン遅延時間に相当する取得回数前に前記基準信号記憶手段に記憶された前記基準信号を出力するリッチリーン信号遅延出力手段と、
    前記リーンリッチ遅延時間に相当する取得回数前に前記基準信号記憶手段に記憶された前記基準信号を出力するリーンリッチ信号遅延出力手段と、
    前記基準信号取得手段によって取得された前記基準信号の値がリッチ側からリーン側に変化した場合には、前記リッチリーン信号遅延出力手段から出力される前記基準信号を前記劣化信号として生成し、前記基準信号取得手段によって取得された前記基準信号の値がリーン側からリッチ側に変化した場合には、前記リーンリッチ信号遅延出力手段から出力される前記基準信号を前記劣化信号として生成する劣化信号選択生成手段と
    を備えたことを特徴とする請求項1に記載のガスセンサの劣化信号発生装置。
  3. 前記基準信号取得手段によって取得された複数の前記基準信号に基づいて、前記目標空燃比がリッチ側からリーン側へ変更するに伴い前記基準信号が変化し始める開始点としてのリッチリーン変化開始点と、前記目標空燃比がリーン側からリッチ側へ変更するに伴い前記基準信号が変化し始める開始点としてのリーンリッチ変化開始点とを検出する空燃比変化開始点検出手段を備え、
    前記劣化信号選択生成手段は、
    前記リッチリーン変化開始点において、前記リッチリーン信号遅延出力手段から出力される前記基準信号が、前記劣化信号として生成されるように切り換えを行い、
    前記リーンリッチ変化開始点においては、前記リーンリッチ信号遅延出力手段から出力される前記基準信号が、前記劣化信号として生成されるように切り換えを行うことを特徴とする請求項2に記載のガスセンサの劣化信号発生装置。
  4. 前記空燃比変化開始点検出手段は前記基準信号に対する微分処理を行い、前記基準信号の微分値が、前記目標空燃比がリッチ側からリーン側に変更される場合の閾値を越えた場合を前記リッチリーン変化開始点とすると共に、前記目標空燃比がリーン側からリッチ側に変更される場合の閾値を越えた場合を前記リーンリッチ変化開始点として検出することを特徴とする請求項3に記載のガスセンサの劣化信号発生装置。
  5. 前記基準信号のゲインを変更した状態で出力するための利得率を設定する利得率設定手段と、
    前記基準信号に、前記利得率設定手段に設定された前記利得率を掛け合わせて前記基準信号のゲインを変更するゲイン変更手段と
    を備えたことを特徴とする請求項1乃至4のいずれかに記載のガスセンサの劣化信号発生装置。
  6. 前記利得率設定手段は、
    前記利得率として、前記基準信号の値が所定のしきい値よりもリーン側である場合の当該基準信号のゲインを変更させるためのリーン利得率と、前記基準信号の値が所定のしきい値よりもリッチ側である場合の当該基準信号のゲインを変更させるためのリッチ利得率とを個別に設定可能に構成され、
    前記ゲイン変更手段は、
    前記基準信号の値が所定のしきい値よりもリーン側であると判定されたとき、前記基準信号に前記リーン利得率を掛け合わせ、前記基準信号の値が所定のしきい値よりもリッチ側であると判定されたとき、前記基準信号に前記リッチ利得率を掛け合わせることを特徴とする請求項5に記載のガスセンサの劣化信号発生装置。
  7. 前記目標空燃比の変更に伴って変移する前記基準信号の応答特性を変更した状態で出力するための変移率を設定する変移率設定手段と、
    前記基準信号に、前記変移率設定手段にて設定された前記変移率を掛け合わせて前記基準信号の応答特性を変更する変移時間変更手段と
    を備えたことを特徴とする請求項1乃至6のいずれかに記載のガスセンサの劣化信号発生装置。
  8. 前記変移率設定手段は、
    前記変移率として、前記目標空燃比がリッチ側からリーン側に変更される場合の前記基準信号の応答特性を変更するためのリッチリーン変移率と、前記目標空燃比がリーン側からリッチ側に変更される場合の前記基準信号の応答特性を変更するためのリーンリッチ変移率とを個別に設定可能に構成され、
    前記変移時間変更手段は、
    前記基準信号取得手段により取得される前記基準信号の値がリッチ側からリーン側に変化する場合には、前記基準信号に前記リッチリーン変移率を掛け合わせ、前記基準信号取得手段により取得される前記基準信号の値がリーン側からリッチ側に変化する場合には、前記基準信号に前記リーンリッチ変移率を掛け合わせることを特徴とする請求項7に記載のガスセンサの劣化信号発生装置。
  9. 前記リッチリーン変化開始点において生成される前記劣化信号をリッチリーン保持信号として記憶し、前記リーンリッチ変化開始点において生成される前記劣化信号をリーンリッチ保持信号として記憶する保持信号記憶手段と、
    前記リッチリーン変化開始点後に生成される前記劣化信号が前記リッチリーン保持信号よりも大きい値である場合には、前記リッチリーン変化開始点後に生成される前記劣化信号が前記リッチリーン保持信号以下の値になるまで前記リッチリーン保持信号を前記劣化信号として出力し、
    前記リーンリッチ変化開始点後に生成される前記劣化信号が前記リーンリッチ保持信号よりも小さい値である場合には、前記リーンリッチ変化開始点後に生成される前記劣化信号が前記リーンリッチ保持信号以上の値になるまで前記リーンリッチ保持信号を前記劣化信号として出力する保持信号出力手段と
    を備えたことを特徴とする請求項3または4に記載のガスセンサの劣化信号発生装置。
JP2011108563A 2011-05-13 2011-05-13 ガスセンサの劣化信号発生装置 Withdrawn JP2011185274A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011108563A JP2011185274A (ja) 2011-05-13 2011-05-13 ガスセンサの劣化信号発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011108563A JP2011185274A (ja) 2011-05-13 2011-05-13 ガスセンサの劣化信号発生装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006143453A Division JP4995487B2 (ja) 2006-05-24 2006-05-24 ガスセンサの劣化信号発生装置

Publications (1)

Publication Number Publication Date
JP2011185274A true JP2011185274A (ja) 2011-09-22

Family

ID=44791827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011108563A Withdrawn JP2011185274A (ja) 2011-05-13 2011-05-13 ガスセンサの劣化信号発生装置

Country Status (1)

Country Link
JP (1) JP2011185274A (ja)

Similar Documents

Publication Publication Date Title
JP4995487B2 (ja) ガスセンサの劣化信号発生装置
EP2207953B1 (en) Air-fuel ratio control apparatus and air-fuel ratio control method for internal combustion engine
JP4292909B2 (ja) 内燃機関の空燃比制御装置
JP4156630B2 (ja) 内燃機関の触媒劣化診断装置及び触媒劣化診断方法
CN111720229B (zh) 空燃比传感器的异常检测装置、异常检测***及方法
US20120125090A1 (en) Method and system to diagnose exhaust gas sensor deterioration
US20090271093A1 (en) Off-line calibration of universal tracking air fuel ratio regulators
JP4089537B2 (ja) 空燃比センサの異常検出装置
JP5182109B2 (ja) 空燃比センサの異常判定装置
US7063081B2 (en) Deterioration determining apparatus and deterioration determining method for oxygen sensor
US9617948B2 (en) Method for optimizing an internal combustion engine
WO2015151437A1 (ja) 温度測定装置
JP2011185274A (ja) ガスセンサの劣化信号発生装置
JP2019116871A (ja) 内燃機関の制御装置
JP4586678B2 (ja) 内燃機関の触媒劣化検出装置
US20190153969A1 (en) System and method for emissions determination and correction
JP2008291762A (ja) ガスセンサの疑似信号生成装置
JP5053657B2 (ja) 酸素センサの劣化信号生成装置
CN115539233B (zh) 内燃机的控制装置
JP4758293B2 (ja) 酸素センサの劣化信号発生装置
JP5182111B2 (ja) 空燃比センサの異常診断装置
JP2006266094A (ja) 空燃比制御装置
JP5118098B2 (ja) ガスセンサの疑似信号生成装置
JP2008203152A5 (ja)
JP4525196B2 (ja) 空燃比センサの異常検出装置

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20120621