本発明は、内燃機関(エンジン)の排出ガスの空燃比又は酸素濃度を検出するセンサの応答特性を模擬したモデルを用いて混合気の空燃比をフィードバック制御する空燃比制御装置に関する発明である。
近年の空燃比フィードバック制御は、排出ガスの空燃比又は酸素濃度を検出するセンサを排気管に設置すると共に、制御対象であるエンジンへの燃料供給量を変化させてから排出ガスの空燃比が変化する応答特性を無駄時間+1次遅れ特性(又は2次遅れ特性)でモデル化し、このモデルを用いて、上記センサの出力に基づいてエンジンに供給する混合気の空燃比(燃料供給量)をフィードバック制御するフィードバック制御系を設計している。このため、エンジン機差、センサ個体差、エンジンの劣化やセンサの劣化等により無駄時間と1次遅れが変化した場合に、実装した制御定数をそのまま用いて制御を行なうと、空燃比の制御性の悪化に繋がってしまう。
そこで、従来は、特許文献1(特開2004−190591号公報)に示すように、単なる1次遅れのモデル誤差に応じて制御定数(制御ゲイン)を補正する補正係数を一律に設定して、この補正係数により制御定数を補正するようにしている。
特開2004−190591号公報(第1頁等)
しかし、上記特許文献1の技術では、モデル誤差に応じて一律に設定した補正係数により制御定数を補正するものであるため、センサの劣化やエンジンの機差等に対して最適な制御定数を設定することが困難であった。すなわち、モデル誤差に応じた補正係数を設定することで、その補正係数を使用する全領域で制御が安定となるものとしなければならないことから、安定側の制御定数を選択せざるを得ず、センサの応答特性全体(無駄時間とn次遅れ)に対して最適化した制御定数を設定することが困難であった。
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、排出ガスの空燃比又は酸素濃度を検出するセンサの応答特性全体(無駄時間とn次遅れ)に対して最適化した制御定数を設定することができる空燃比制御装置を提供することにある。
上記目的を達成するために、請求項1に係る発明は、内燃機関の排出ガスの空燃比又は酸素濃度を検出するセンサの応答特性を模擬したモデルを用いて前記センサの出力に基づいて内燃機関に供給する混合気の空燃比をフィードバック制御する空燃比制御手段を備えた空燃比制御装置において、内燃機関への燃料供給量の変化タイミングを検出し、その燃料供給量変化前後のセンサ出力の挙動を監視して前記センサの応答特性を前記燃料供給量が変化した時点から前記センサ出力が変化し始めるまでの無駄時間とその後のセンサ出力変化特性を表すn次遅れ特性(nは正の整数)とに分けて検出すると共に、検出した応答特性が前記空燃比制御手段に実装された応答特性(以下「実装応答特性」という)からずれている場合に、該実装応答特性を補正し、補正後の実装応答特性で前記センサ出力が最適挙動となる制御定数を算出するようにしたものである。このようにすれば、実際に検出したセンサ応答特性(無駄時間+n次遅れ)に基づいて、実装応答特性を適正に補正できると共に、センサ劣化や内燃機関の機差等に対して、センサ出力が最適挙動となる制御定数をオンボードで算出することが可能となり、センサの劣化や内燃機関の機差等により発生する制御性悪化を回避することができる。
この場合、請求項2のように、制御定数算出手段で算出した制御定数によって実装制御定数を補正するようにすると良い。このようにすれば、センサ劣化や内燃機関の機差等に応じて実装制御定数を適正に補正することができる。この実装制御定数の補正方法は、空燃比フィードバック実行中と停止中とで切り換えるようにしても良く、例えば、フィードバック実行中は、実装制御定数を算出制御定数に向けて徐々に変化させることで、実装制御定数の急変による内燃機関の制御状態が急変するのを避けるようにしたり、或は、フィードバック実行中は、実装制御定数を変化させずに次のフィードバック停止時に変化させるようにしたり、一方、フィードバック停止中は、実装制御定数を算出制御定数に一気に変化させるようにしても良い。
また、請求項3のように、制御定数算出手段で算出した制御定数と実装制御定数とを比較してセンサの異常の有無を異常判定手段により判定するようにすると良い。制御定数を算出する際にセンサ応答特性(無駄時間とn次遅れ)を使用するため、センサ応答特性が異常になれば、算出制御定数も異常になり、算出制御定数と実装制御定数とのずれが異常に大きくなる。この関係から、算出制御定数と実装制御定数とを比較すれば、センサの異常の有無を判定することができる。この場合、従来システムでは異常の検出が困難であった低レベルの異常(例えば無駄時間と応答時間の両方が微妙にずれている異常)も検出することができる利点がある。
更に、請求項4のように、異常判定手段がセンサの異常有りと判定したときにそれを警告手段によって警告するようにすると良い。このようにすれば、センサの異常発生時に、速やかに修理等の必要性を運転者に知らせることができて、長期間にわたりセンサ異常による排気エミッション悪化の状態が放置されることを回避することができる。
また、請求項5のように、応答特性検出手段で検出した応答特性が実装応答特性からずれている場合に、空燃比フィードバック制御系の伝達関数とゲイン余裕又は位相余裕を用いてセンサ出力が最適挙動となる制御定数を算出するようにしても良い。ゲイン余裕や位相余裕は、運転条件や応答特性とは関係なく最適挙動に応じて設定できるため、運転条件毎や応答特性毎にゲイン余裕や位相余裕を指定する必要がなく、同一のゲイン余裕や位相余裕で、同等の最適挙動を実現できる。但し、本発明は、運転条件により最適挙動を変化させたい場合は、ゲイン余裕や位相余裕を運転条件毎に設定するようにしても良い。
この場合、請求項6のように、応答特性検出手段で検出した応答特性が実装応答特性からずれている場合には、その応答特性の誤差に応じてゲイン余裕又は位相余裕を変更して上記請求項5の手法で制御定数を算出するようにしても良い。このようにすれば、センサが劣化しても、その応答特性の劣化度合いを考慮した適正な制御定数を算出することができ、制御の安定性、応答性の悪化を防止することができる。尚、ゲイン余裕又は位相余裕を変更する場合は、実装応答特性を補正する必要はない。
また、請求項7のように、センサ出力に重畳するノイズ成分をノイズ成分検出手段により検出し、そのノイズ成分の大きさに応じてゲイン余裕又は位相余裕を変更して空燃比フィードバック制御系の伝達関数と前記ゲイン余裕又は前記位相余裕を用いてセンサ出力が最適挙動となる制御定数を算出するようにしても良い。このようにすれば、センサの劣化や内燃機関の劣化等によりセンサの出力にノイズ成分が重畳しても、そのノイズ成分の影響を排除した適正な制御定数を算出することができ、制御の安定性、応答性の悪化を防止することができる。尚、この場合も、実装応答特性を補正する必要はない。
また、請求項8のように、応答特性検出手段で検出した応答特性が実装応答特性からずれている場合に、センサの応答特性を模擬したプラントの入力又は出力を最適挙動とする制御定数をシミュレーションにより算出するようにしても良い。このようにすれば、理想の応答波形を指定できる(プラントの入力・出力の最適挙動を波形レベルで指定できる)。しかも、プラントの入力も制約できるため、内燃機関の保護の観点から、制御定数を無闇に大きくし過ぎることなく、制御が可能である。
この場合、請求項9のように、応答特性検出手段で検出した応答特性と実装応答特性との誤差を含むシミュレーションにより制御定数を算出するようにしても良い。このようにすれば、センサが劣化しても、その応答特性の劣化度合いを考慮して、適正な制御定数を算出することができ、安定性、応答性の悪化を防止することができる。この場合、運転条件毎に補正係数等を持つ必要がなく、また、実装応答特性を補正する必要はない。
また、請求項10のように、センサの出力に重畳するノイズ成分の大きさを含むシミュレーションにより制御定数を算出するようにしても良い。このようにすれば、センサの劣化や内燃機関の劣化等によりセンサの出力にノイズ成分が重畳しても、そのノイズ成分の影響を排除した適正な制御定数を算出することができ、制御の安定性、応答性の悪化を防止することができる。
この場合、請求項11のように、ゲイン余裕又は位相余裕を用いて制御定数を算出する第1の算出手段と、制御対象である内燃機関の動特性を前記センサの応答特性を考慮して模擬したプラントの入力又は出力を最適挙動とする制御定数をシミュレーションにより算出する第2の算出手段とを備え、前記第1の算出手段で算出された制御定数と前記第2の算出手段で算出された制御定数のうちの安定性が高い方を選択するようにしても良い。このようにすれば、2種類の手法で算出した2つの制御定数の中から、より安定性を重視した制御定数を選択することができ、安全かつ正確な制御定数での制御が可能となる。
また、請求項12のように、応答特性検出手段で検出した応答特性と実装応答特性との誤差を含むシミュレーションにより前記制御定数を算出する第3の算出手段と、前記センサの出力に重畳するノイズ成分の大きさを含むシミュレーションにより前記制御定数を算出する第4の算出手段とを備え、前記第3の算出手段で算出された制御定数と前記第4の算出手段で算出された制御定数のうちの安定性が高い方を選択するようにしても良い。このようにすれば、センサの劣化等にて発生するすべての状況を考慮して算出した2つの制御定数の中から、より安定性を重視した制御定数を選択することができて、安全かつ正確な制御定数での制御が可能となる。
また、請求項13のように、制御定数を所定の運転条件で算出し、この所定の運転条件と算出した制御定数との関係に基づいて他の運転条件の制御定数を推定するようにしても良い。このようにすれば、運転条件毎に最適となる制御定数を算出する処理を多数回繰り返す必要がなくなり、検出工数・算出工数低減が可能となる。しかも、全領域の制御定数を瞬時に変更することが可能であるため、故障による排出ガス悪化に瞬時に対応可能である。更に、内燃機関の運転中では計測不可能な領域(過渡的には使用するが、定常的に運転し続けることが困難な運転条件のような領域)の制御定数の推測が可能となる。
また、請求項14のように、ある運転条件でのゲイン余裕又は位相余裕で制御定数を算出し、前記ある運転条件でのゲイン余裕又は位相余裕の関係に基づいて他の運転条件での制御定数を推定するようにしても良い。このようにすれば、運転条件毎に最適挙動を変化させたい場合でも、運転条件毎にゲイン余裕又は位相余裕を変更して最適となる制御定数を算出する処理を多数回繰り返す必要がなくなり、検出工数・算出工数低減が可能となる。その他、前記請求項13と同様の効果を得ることができる。
以下、本発明を実施するための最良の形態を具体化した幾つかの実施例を説明する。
本発明を吸気ポート噴射エンジンに適用した実施例1を図1乃至図11に基づいて説明する。まず、図1に基づいてエンジン制御システム全体の概略構成を説明する。内燃機関であるエンジン11の吸気管12の最上流部には、エアクリーナ13が設けられ、このエアクリーナ13の下流側に、吸入空気量を検出するエアフローメータ14が設けられている。このエアフローメータ14の下流側には、モータ10によって開度調節されるスロットルバルブ15とスロットル開度を検出するスロットル開度センサ16とが設けられている。 更に、スロットルバルブ15の下流側には、サージタンク17が設けられ、このサージタンク17には、吸気管圧力を検出する吸気管圧力センサ18が設けられている。また、サージタンク17には、エンジン11の各気筒に空気を導入する吸気マニホールド19が設けられ、各気筒の吸気マニホールド19の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁20が取り付けられている。また、エンジン11のシリンダヘッドには、各気筒毎に点火プラグ21が取り付けられ、各点火プラグ21の火花放電によって筒内の混合気に着火される。
また、エンジン11の吸気バルブ28には、該吸気バルブ28の開閉タイミング(吸気バルブタイミング)を可変する可変吸気バルブタイミング機構29が設けられ、排気バルブ30には、該排気バルブ30の開閉タイミング(排気バルブタイミング)を可変する可変排気バルブタイミング機構31が設けられている。
一方、エンジン11の排気管22には、排出ガス中のCO,HC,NOx等を浄化する三元触媒等の触媒23が設けられ、この触媒23の上流側に、排出ガスの空燃比(又は酸素濃度)を検出する空燃比センサ24が設けられている。また、エンジン11のシリンダブロックには、冷却水温を検出する冷却水温センサ25や、エンジン11のクランク軸が一定クランク角回転する毎にパルス信号を出力するクランク角センサ26が取り付けられている。このクランク角センサ26の出力信号に基づいてクランク角やエンジン回転速度が検出される。
これら各種センサの出力は、エンジン制御回路(以下「ECU」と表記する)27に入力される。このECU27は、マイクロコンピュータを主体として構成され、内蔵されたROM(記憶媒体)に記憶された各種のエンジン制御プログラムを実行することで、空燃比センサ24で検出した排出ガスの空燃比を目標空燃比に一致させるように空燃比フィードバック補正係数を算出して、エンジン11に供給する混合気の空燃比(燃料供給量)をフィードバック制御する空燃比制御手段として機能する。この空燃比フィードバック制御系は、制御対象であるエンジン11への燃料供給量(燃料噴射弁20の燃料噴射量)を変化させてから排出ガスの空燃比が変化する応答特性を無駄時間+1次遅れ特性でモデル化して設計されている。尚、この応答特性を無駄時間+2次遅れ特性でモデル化しても良く、要は、無駄時間+n次遅れ特性(nは正の整数)でモデル化すれば良い。
更に、ECU27は、後述する図4乃至図6に示す各ルーチンを実行することで、エンジン11を目標空燃比近傍で安定して運転している定常運転中に、燃料供給量をステップ的に変化させて空燃比センサ24の応答特性を無駄時間と1次遅れ特性(n次遅れ特性)とに分けて検出する応答特性検出手段として機能する。
以下、空燃比センサ24の応答特性の検出方法を図2及び図3のタイムチャートに基づいて説明する。図2のタイムチャートは、ECU27が、時刻t1で、エンジン運転状態が定常運転状態であると判定して、定常運転フラグをONに切り換え、その後、時刻t2で、応答特性検出実行条件が成立して計測処理フラグをONに切り換え、応答特性の計測処理を開始する。ここで、応答特性検出実行条件は、定常運転状態で空燃比センサ24の出力(以下単に「センサ出力」という)が目標空燃比近傍で安定してセンサ出力の変動量が小さいことである。センサ出力が不安定な状態では、空燃比センサ24の応答特性を精度良く検出できないためである。
応答特性の計測開始時t2から所定時間T1が経過するまでの期間(t2〜t3)は、空燃比フィードバック制御を継続して定常運転状態を維持しながら、センサ出力の平均値をなまし処理又は相加平均等の平均化処理によって算出する。このセンサ出力の平均値は“燃料増量前のセンサ出力の定常値BA”としてECU27のメモリに記憶される。尚、応答特性の計測開始時t2において、センサ出力が定常値BAで十分に安定している場合は、応答特性の計測開始時t2にサンプリングしたセンサ出力をそのまま燃料増量前のセンサ出力の定常値BAとしても良い。
そして、燃料増量前のセンサ出力の定常値BAの計測を終了した時点t3で、空燃比フィードバック制御を停止して、燃料増量フラグをONに切り換え、燃料供給量(燃料噴射量)をステップ的に増量して、無駄時間TAの計測を開始する。この後は、センサ出力の変化勾配がしきい値を越えた点を変化開始点として検出する。
このセンサ出力の変化勾配の算出方法は種々の方法が考えられるが、本実施例1では、現在のセンサ出力AF(N) と前回のセンサ出力AF(N-1) との差[AF(N) −AF(N-1) ]をセンサ出力の変化勾配として用いる。尚、現在のセンサ出力AF(N) とS回前のセンサ出力AF(N-S) との差[AF(N) −AF(N-S) ]をセンサ出力の変化勾配として用いるようにしても良い。
このセンサ出力の変化勾配[AF(N) −AF(N-1) ]が最初にしきい値を越えた点を変化開始点として検出するようにしても良いが、本実施例1では、ノイズ等による変化開始点の誤検出を未然に防止するために、センサ出力の変化勾配がしきい値を所定回数越えるまで変化開始点の検出を継続するようにしている。
この場合、しきい値は、演算処理の簡略化のために予め設定した固定値としても良いが、本実施例1では、センサ出力に重畳するノイズに影響を与える運転パラメータ(例えばエンジン回転速度と空燃比)に基づいてしきい値を設定するようにしている。このようにすれば、実際のノイズの大きさに応じた適正なしきい値を設定することができ、ノイズ等による誤検出を防止しながら、変化開始点をより正確に検出することができる。
尚、変化開始点は、所定割合応答点(例えば10%応答点)としても良い。
以上のようにして変化開始点を検出した後、燃料増量タイミングt3から変化開始点t4までの時間を無駄時間TAとして検出する。変化開始点を検出した時点t4で、変化開始点検出フラグをONに切り換えて、1次遅れ特性の計測処理を開始する。
1次遅れ特性の計測処理開始後は、燃料増量タイミングt3から所定時間T0が経過するまでの期間に、燃料増量前のセンサ出力の定常値BAからのセンサ出力の変化量が、燃料増量後のセンサ出力の定常値AAまでの変化量(AA−BA)の所定割合(例えば63%)に達するまでの応答時間TBを算出する。この応答時間TBは、1次遅れ特性を評価する情報として用いられる。
この際、燃料増量後のセンサ出力の定常値AAは、運転領域毎に学習した学習値を用いるようにしても良いが、本実施例1では、燃料増量タイミングt3から所定時間T0が経過した時点t6で、空燃比フィードバック制御を再開して、所定時間T2が経過するまで、燃料増量分だけ目標空燃比をリッチ側にずらして燃料供給量をフィードバック補正することで、センサ出力を目標空燃比近傍(定常値AA)で安定させる。この期間(t6〜t7)のセンサ出力の平均値をなまし処理又は相加平均等の平均化処理によって算出し、この平均値を、“燃料増量後のセンサ出力の定常値AA”として用いる。尚、燃料増量タイミングt3から所定時間T0経過時t6において、センサ出力が定常値AAで十分に安定している場合は、所定時間T0経過時t6のセンサ出力を燃料増量後のセンサ出力の定常値AAとしても良い。
以上のようにして、燃料増量後のセンサ出力の定常値AAの計測を終了した時点t7で、計測処理フラグをOFFに切り換えて、応答特性の計測処理を終了する。尚、燃料増量後のセンサ出力の定常値AAが予め学習値等で判明している場合は、センサ出力がその定常値AAまで達した時点で、計測処理フラグをOFFに切り換えて、応答特性の計測処理を終了するようにしても良い。
応答特性計測処理終了後は、目標空燃比を通常運転時の目標空燃比に切り換えて空燃比フィードバック制御を実行する。尚、本実施例1では、応答特性検出のために燃料供給量を増量して空燃比をリッチ側に変化させたが、これとは反対に燃料供給量を減量して空燃比をリーン側に変化させるようにしても良い。或は、応答特性計測開始時に燃料供給量をステップ的に減量(又は増量)して空燃比をリーン側(又はリッチ側)にずらしてセンサ出力の定常値BAを算出した後、燃料供給量をステップ的に増量(又は減量)して空燃比をリッチ側(又はリーン側)にずらしてセンサ出力の定常値AAを算出し、燃料増量前(又は減量前)のセンサ出力の定常値BAからのセンサ出力の変化量が、燃料増量後(又は減量後)のセンサ出力の定常値AAまでの変化量(AA−BA)の所定割合(例えば63%)に達するまでの応答時間TBを算出するようにしても良い。
更に、ECU27は、後述する図7乃至図11に示す各ルーチンを実行することで、検出した応答特性がECU27に実装された応答特性(以下「実装応答特性」という)から許容値を越えてずれている場合に、該実装応答特性を補正し、補正後の実装応答特性で空燃比センサ24の出力が最適挙動となる制御定数(制御ゲイン)を算出する制御定数算出手段として機能する。以下、これら各ルーチンの処理内容を説明する。
[空燃比センサ応答特性検出メインルーチン]
図4の空燃比センサ応答特性検出メインルーチンは、エンジン運転中に周期的に実行され、特許請求の範囲でいう応答特性検出手段としての役割を果たす。本ルーチンが起動されると、まずステップ101で、応答特性検出実行条件が成立しているか否か(計測処理フラグがONであるか否か)を判定する。ここで、応答特性検出実行条件は、エンジン運転状態が定常運転状態(定常運転フラグがON)で、空燃比センサ24の出力(センサ出力)が目標空燃比近傍で安定してことである。センサ出力が不安定な状態では、空燃比センサ24の応答特性を精度良く検出できないためである。
このステップ101で、応答特性検出実行条件が成立していないと判定されれば、以降の処理を行うことなく、本ルーチンを終了するが、応答特性検出実行条件が成立していると判定されれば、次のようにして応答特性の検出処理が実行される。
まず、ステップ102で、応答特性の計測を開始し、所定時間T1が経過するまで待機する(ステップ103)。応答特性計測開始後は、燃料増量前のセンサ出力の定常値BAを算出するデータとなるセンサ出力の時系列データをECU27のメモリに記憶する。そして、応答特性計測開始から所定時間T1が経過するまでの期間に、空燃比フィードバック制御を継続して定常運転状態を維持しながら、燃料増量前のセンサ出力の定常値BA(平均値)をなまし処理又は相加平均等の平均化処理によって算出する。
そして、応答特性計測開始から所定時間T1が経過した時点で、ステップ104に進み、空燃比フィードバック制御を停止して、燃料増量フラグをONに切り換え、次のステップ105で、燃料供給量(燃料噴射量)をステップ的に増量する。この後、ステップ106に進み、燃料増量タイミングから所定時間T0が経過するまで待機する。ここで、所定時間T0は、燃料増量後にセンサ出力が定常値AAで安定するまでに必要な時間に設定されている。燃料増量開始から所定時間T0が経過するまでの期間には、応答時間TBを算出するデータとなるセンサ出力の時系列データがECU27のメモリに記憶される。
その後、燃料増量開始から所定時間T0が経過した時点で、ステップ107に進み、空燃比フィードバック制御を再開して、所定時間T2が経過するまで(ステップ108)、燃料増量分だけ目標空燃比をリッチ側にずらして燃料供給量をフィードバック補正することで、センサ出力を目標空燃比近傍(定常値AA)で安定させる。この期間のセンサ出力の平均値をなまし処理又は相加平均等の平均化処理によって算出し、この平均値を、“燃料増量後のセンサ出力の定常値AA”として用いる。
そして、所定時間T2が経過した時点で、ステップ109に進み、応答特性の計測を終了し、目標空燃比を通常運転時の目標空燃比に切り換えて空燃比フィードバック制御を実行する。
[無駄時間算出ルーチン]
図5の無駄時間算出ルーチンは、エンジン運転中に周期的に実行され、特許請求の範囲でいう応答特性検出手段としての役割を果たす。本ルーチンが起動されると、まずステップ201で、無駄時間算出条件が成立しているか否かを判定する。この無駄時間算出条件は、(1) 計測処理フラグがON(応答特性の計測処理中)であること、(2) 無駄時間TAがまだ算出されていないことであり、これら2つの条件(1) 、(2) のうちのいずれか一方でも満たさない条件があれば、無駄時間算出条件が不成立となり、以降の処理を行うことなく、本ルーチンを終了する。
一方、上記2つの条件(1) 、(2) を同時に満たせば、無駄時間算出条件が成立して、ステップ202に進み、燃料供給量が増量されるまで待機する。このステップ202の処理が特許請求の範囲でいう検出手段としての役割を果たす。
この後、燃料供給量が増量された時点で、ステップ203に進み、現在のセンサ出力の変化勾配[AF(N) −AF(N-1) ]をしきい値と比較し、センサ出力の変化勾配[AF(N) −AF(N-1) ]がしきい値を越えるまで待機する。
そして、センサ出力の変化勾配[AF(N) −AF(N-1) ]がしきい値を越えたときに、変化開始点と判断して、ステップ204に進み、変化開始点検出カウンタCountをカウントアップして、ステップ205に進み、変化開始点検出カウンタCountのカウント値が所定値Mに達したか否かを判定して、所定値Mに達していなければ、ステップ203に戻り、上述した処理を繰り返す。これにより、センサ出力の変化勾配[AF(N) −AF(N-1) ]がしきい値を所定回数(M回)越えるまで、変化開始点の検出を継続する。
その後、センサ出力の変化勾配[AF(N) −AF(N-1) ]がしきい値を所定回数(M回)越えて変化開始点検出カウンタCountのカウント値が所定値Mに達した時点で、ステップ206に進み、燃料増量タイミング(j)から変化開始点(N−M)までの無駄時間TAを次式により算出する。
TA={(N−M)−J}×演算周期
ここで、(N−M)は、センサ出力の変化勾配[AF(N) −AF(N-1) ]が最初にしきい値を越えた点を変化開始点とみなして、この変化開始点をそれまでの累積演算回数で表したものであり、Jは、燃料増量タイミングをそれまでの累積演算回数で表したものである。
[n次遅れ特性算出ルーチン]
図6のn次遅れ特性算出ルーチンは、エンジン運転中に周期的に実行され、特許請求の範囲でいう応答特性検出手段としての役割を果たす。本ルーチンが起動されると、まずステップ301で、応答時間算出条件が成立しているか否かを判定する。この応答時間算出条件は、(1) 計測処理フラグがOFF(応答特性の計測処理終了)であること、(2) 応答時間TBがまだ算出されていないことであり、これら2つの条件(1) 、(2) のいずれか一方でも満たさない条件があれば、応答時間算出条件が不成立となり、以降の処理を行うことなく、本ルーチンを終了する。
一方、上記2つの条件(1) 、(2) を同時に満たせば、応答時間算出条件が成立して、ステップ302に進み、無駄時間TAが検出されるまで待機する。この後、無駄時間TAが検出された時点で、ステップ303に進み、ECU27のメモリに記憶されたセンサ出力の時系列データに基づいて燃料増量前のセンサ出力の定常値BAと燃料増量後のセンサ出力の定常値AAを算出する。ここで、燃料増量前のセンサ出力の定常値BAは、計測処理開始から所定時間T1が経過するまでのセンサ出力の平均値であり、燃料増量後のセンサ出力の定常値AAは、計測処理終了前の所定時間T2のセンサ出力の平均値である。
この後、ステップ304に進み、燃料増量前の定常値BAから燃料増量後の定常値AAまでの変化量(AA−BA)の所定割合(例えば63%)に相当するセンサ出力AF63を次式により算出する。
AF63=(AA−BA)×所定割合
この後、ステップ305に進み、ECU27のメモリに記憶されたセンサ出力の時系列データを検索して、センサ出力がAF63に達した時点NTを求めた後、ステップ306に進み、変化開始点(N−M)からセンサ出力がAF63に達した時点NTまでの応答時間TBを次式により算出する。
TB={NT−(N−M)}×演算周期
尚、本ルーチンでは、応答特性の計測処理終了後(計測処理フラグのOFF時)に、ECU27のメモリに記憶されているセンサ出力の時系列データに基づいて燃料増量前後のセンサ出力の定常値BA,定常値AAを算出するようにしたが、応答特性の計測処理開始時(計測処理フラグのON時)に、燃料増量前後のセンサ出力の定常値BA,AAが学習値等により予め判明している場合には、応答特性の計測処理中に、変化開始点(無駄時間TA)を検出するまでに、AF63=(AA−BA)×所定割合の演算を行っておき、変化開始点(無駄時間TA)の検出後に、センサ出力のサンプリング毎にセンサ出力をAF63と比較して、センサ出力がAF63に達した時点NTをリアルタイムで検出するようにしても良い。
また、本ルーチンでは、1次遅れの応答時間を算出するようにしたが、これに代えて、2次遅れの応答時間、或は3次以上の応答時間を検出するようにしても良い。また、応答時間に代えて、n次遅れの伝達関数の係数を算出するようにしても良い。
[制御定数決定メインルーチン]
図7の制御定数決定メインルーチンは、エンジン運転中に周期的に実行され、特許請求の範囲でいう制御定数算出手段としての役割を果たす。本ルーチンが起動されると、まずステップ401で、前記図4〜図6のルーチンによって空燃比センサ24の応答特性(無駄時間+n次遅れ)が検出されたか否かを判定し、検出されていなければ、検出されるまで待機する。
その後、応答特性が検出された時点で、ステップ402に進み、ECU27に実装された応答特性(実装応答特性)と前記図4〜図6のルーチンで検出された応答特性(検出応答特性)との差の絶対値が許容値1を越えているか否かを判定する。この際、実装応答特性と検出応答特性との差は、無駄時間の実装値と検出値の差と、n次遅れの実装値と検出値の差について、それぞれ許容値1を越えているか否かを判定し、両方とも許容値1以下であれば、実装応答特性と検出応答特性との差の絶対値が許容値1を越えていない(実装応答特性を補正する必要がない)と判定されて、ステップ401に戻り、次の応答特性が検出されるまで待機する。ここで、許容値1は、空燃比センサ24の出力に重畳するノイズ等の影響による応答特性の微妙なばらつきによる制御定数の誤補正を避けるために設定されている。この許容値1は、応答特性に対して、絶対値、相対値、運転条件毎に設定しても良い。
これに対して、無駄時間とn次遅れのどちらか一方でも差が許容値1を越えていれば、実装応答特性と検出応答特性との差の絶対値が許容値1を越えている(実装応答特性を補正する必要がある)と判定されて、ステップ403に進み、実装応答特性(無駄時間+n次遅れ)を検出応答特性で補正する。例えば、無駄時間、n次遅れの実装値を検出値で書き替える。
この後、ステップ404に進み、補正後の実装応答特性で空燃比センサ24の出力が最適挙動となる制御定数(制御ゲイン)を算出する。この後、ステップ405に進み、ECU27に実装された制御定数(実装応答特性)と上記ステップ404で算出した制御定数(算出制御定数)との差の絶対値が許容値2を越えているか否かを判定し、実装制御定数と算出制御定数との差の絶対値が許容値2を越えていない場合は、実装制御定数を補正する必要がないと判断して、上記ステップ401に戻り、上述した処理を繰り返す。
これに対して、実装制御定数と算出制御定数との差の絶対値が許容値2を越えている場合は、ステップ406に進み、図8の実装制御定数補正ルーチンを実行して、実装制御定数を補正する。
[実装制御定数補正ルーチン]
図7のステップ406で、図8の実装制御定数補正ルーチンが起動されると、まずステップ501で、算出制御定数と実装制御定数との差の絶対値が所定値1を越えているか否かを判定し、所定値1を越えていなければ、実装制御定数を補正する必要がないと判断して、そのまま本ルーチンを終了する。これは、算出制御定数と実装制御定数との差が小さいときには、ノイズ等の影響が考えられるため、実装制御定数を補正しない趣旨である。
これに対して、算出制御定数と実装制御定数との差の絶対値が所定値1を越えていれば、ステップ502に進み、実装制御定数の補正を禁止する禁止条件に該当するか否かを判定し、もし、禁止条件に該当すれば、そのまま本ルーチンを終了する。特殊な条件下では実装制御定数の補正を実施しないようにするためである。
一方、禁止条件に該当しなければ、ステップ503に進み、空燃比フィードバック停止中であるか否かを判定し、空燃比フィードバック停止中と実行中とで実装制御定数の補正方法を次のように切り替える。空燃比フィードバック停止中であれば、ステップ504に進み、実装制御定数を算出制御定数に一気に変更する。
空燃比フィードバック実行中であれば、ステップ505に進み、算出制御定数と実装制御定数との差が0より大きいか否かによって、算出制御定数が実装制御定数よりも大きいか否かを判定し、算出制御定数が実装制御定数よりも大きければ、ステップ506に進み、実装制御定数を現在の実装制御定数に所定値3を加算した値に書き替え、算出制御定数が実装制御定数よりも小さければ、ステップ507に進み、実装制御定数を現在の実装制御定数から所定値3を減算した値に書き替える。このように、空燃比フィードバック実行中は、実装制御定数を所定値3ずつ増減させることで、実装制御定数を算出制御定数に向けて徐々に変化させる。これは、空燃比フィードバック実行中に実装制御定数を急変させると、エンジン制御状態が急変してトルクショック等が発生するためである。
この後、ステップ508に進み、算出制御定数と実装制御定数との差の絶対値がシステム上の最大誤差に相当する所定値2よりも小さくなっているか否かを判定し、算出制御定数と実装制御定数との差の絶対値が所定値2以上であれば、上記ステップ505に戻り、実装制御定数を所定値3ずつ増減させる処理を繰り返す。そして、算出制御定数と実装制御定数との差の絶対値が所定値2よりも小さくなった時点で、算出制御定数が実装制御定数とほぼ一致すると判断して、本ルーチンを終了する。
以上説明した図8の実装制御定数補正ルーチンによる実装制御定数の補正例が図9、図10に示されている。
図9は空燃比フィードバック実行中の実装制御定数の補正例を示すタイムチャートである。図9の補正例では、空燃比フィードバック実行中に、算出制御定数と実装制御定数との差の絶対値が所定値1を越えたと判定された時点t1で、算出制御定数と実装制御定数との差が所定値2以上であるため、所定周期で実装制御定数を所定値3ずつ増加させる処理を繰り返す。これは、空燃比フィードバック実行中に実装制御定数を急変させると、エンジン制御状態が急変してトルクショック等が発生するため、実装制御定数を算出制御定数に向けて徐々に変化させることで、実装制御定数の急変によるエンジン制御状態の急変を避けるようにしている。そして、算出制御定数と実装制御定数との差が所定値2以下になった時点t2で、算出制御定数が実装制御定数とほぼ一致すると判断して、実装制御定数の変化を停止する。
一方、図10は空燃比フィードバック停止中の実装制御定数の補正例を示すタイムチャートである。図10の補正例では、空燃比フィードバック停止中に、算出制御定数と実装制御定数との差の絶対値が所定値1を越えたと判定された時点t3で、実装制御定数を算出制御定数に一気に変更する。空燃比フィードバック停止中は、実装制御定数を急変させても、その影響がエンジン制御状態に現れないためである。
[センサ異常判定ルーチン]
図11のセンサ異常判定ルーチンは、エンジン運転中に周期的に実行され、特許請求の範囲でいう異常判定手段としての役割を果たす。本ルーチンが起動されると、まずステップ601で、制御定数が算出されたか否かを判定し、算出されていなければ、算出されるまで待機する。そして、制御定数が算出された時点で、ステップ602に進み、ECU27のメモリに記憶された実装制御定数のマップを検索して、現在のエンジン運転条件に応じた実装制御定数を読み込む。
この後、ステップ603に進み、現在のエンジン運転条件に応じた許容誤差を例えばデータのばらつきやノイズ等を考慮して算出する。そして、次のステップ604で、上記ステップ602で読み込んだ実装制御定数と算出制御定数との差が許容誤差の範囲内であるか否かを判定し、許容誤差の範囲内であれば、ステップ605に進み、空燃比センサ24が正常であると判定する。
一方、実装制御定数と算出制御定数との差が許容誤差の範囲を越えていれば、ステップ606に進み、空燃比センサ24が異常であると判定し、次のステップ607に進み、異常情報をECU27のバックアップRAM等の書き換え可能な不揮発性メモリ(図示せず)に記憶すると共に、警告ランプ32を点灯(又は点滅)させたり、運転席のインストルメントパネルの表示部(図示せず)に警告表示して運転者に警告する。
以上説明した本実施例1では、空燃比センサ24の応答特性を無駄時間とn次遅れ特性(nは正の整数)とに分けて検出すると共に、検出した応答特性がECU27に実装された応答特性(実装応答特性)から許容値を越えてずれている場合に、該実装応答特性を補正し、補正後の実装応答特性で空燃比センサ24の出力が最適挙動となる制御定数を算出するようにしたので、実際に検出した応答特性(無駄時間+n次遅れ)に基づいて、実装応答特性を適正に補正できると共に、空燃比センサ24の劣化やエンジン11の機差等に対して、空燃比センサ24の出力が最適挙動となる制御定数をオンボードで算出することが可能となり、空燃比センサ24の劣化やエンジン11の機差等により発生する制御性悪化を回避することができる。
しかも、本実施例1では、実際に検出した応答特性(無駄時間+n次遅れ)を用いて算出した制御定数と実装制御定数とを比較してセンサの異常の有無を判定するようにしたので、従来システムでは異常の検出が困難であった低レベルの異常(例えば無駄時間と応答時間の両方が微妙にずれている異常)も検出することができる利点がある。
一般に、空燃比フィードバック制御系は、図12に示すように、制御対象P(プラント)であるエンジン11とコントローラC(空燃比制御手段)とから構成され、それぞれ図13に示す伝達関数で表現される。
ここで、ゲイン余裕は、空燃比フィードバック制御系の伝達関数C*Pの分母Dの絶対値と分子Eの絶対値の比で表される。
ゲイン余裕=|分母D|/|分子E| ……(1)
分子E=b1 *FI*z+b2 *FI
分母D=zd+3 +A1 *zd+2 +A2 *zd+1 −b1 *FI*z−b2 *FI
また、位相余裕は、分子Eの位相と分母Dの位相で表される。
位相余裕=位相(分子E)−位相(分母D) ……(2)
本発明の実施例2では、前記実施例1と同様の方法で、空燃比センサ24の応答特性(無駄時間+n次遅れ)を検出し、検出した応答特性がECU27に実装された応答特性からずれている場合に、空燃比フィードバック制御系の伝達関数C*Pとゲイン余裕又は位相余裕を用いて2つの制御定数ω,ζを算出するようにしている。この際、2つの制御定数ω,ζのどちらか一方の制御定数を固定値として、上記(1)式又は(2)式にゲイン余裕又は位相余裕の設定値を代入して他方の制御定数に関して解くことにより、他方の制御定数を逆算する。このような処理を2つの制御定数ω,ζについてそれぞれ行うことで、2つの制御定数ω,ζを算出する。
この場合、ゲイン余裕や位相余裕は、運転条件や応答特性とは関係なく最適挙動に応じて設定できるため、運転条件毎や応答特性毎にゲイン余裕や位相余裕を指定する必要がなく、同一のゲイン余裕や位相余裕で、同等の最適挙動を実現できる。但し、本発明は、運転条件により最適挙動を変化させたい場合は、ゲイン余裕や位相余裕を運転条件毎に設定するようにしても良い。
本発明の実施例3では、ECU27によって図14の制御定数決定メインルーチンを実行することで、検出した応答特性が実装応答特性から許容値を越えてずれている場合に、その応答特性の誤差に応じてゲイン余裕又は位相余裕を変更して前記実施例2と同様の手法で制御定数を算出するようにしている。
図14の制御定数決定メインルーチンでは、まずステップ701で、前記実施例1と同様の方法で空燃比センサ24の応答特性(無駄時間+n次遅れ)が検出されたか否かを判定し、検出されていなければ、検出されるまで待機する。
その後、応答特性が検出された時点で、ステップ702に進み、ECU27に実装された応答特性(実装応答特性)と検出された応答特性(検出応答特性)との差の絶対値が許容値1を越えているか否かを判定し、許容値1を越えていなければ、実装制御定数を補正する必要がないと判断して、ステップ701に戻り、次の応答特性が検出されるまで待機する。
一方、実装応答特性と検出応答特性との差の絶対値が許容値1を越えていれば、ステップ703に進み、実装応答特性と検出応答特性との差を“応答特性の誤差”として算出し、次のステップ704で、この応答特性の誤差に応じたゲイン余裕又は位相余裕を図15のマップにより算出する。この図15のマップは、応答特性の誤差が大きくなるほど、ゲイン余裕又は位相余裕が大きくなるように設定されている(ゲイン余裕又は位相余裕が大きくなるほど、制御定数ωが小さくなる)。
この後、ステップ705に進み、上記ステップ704で算出したゲイン余裕又は位相余裕を用いて前記実施例2と同様の手法で制御定数を算出する。この後、ステップ706に進み、ECU27に実装された制御定数(実装応答特性)と上記ステップ705で算出した制御定数(算出制御定数)との差の絶対値が許容値2を越えているか否かを判定し、実装制御定数と算出制御定数との差の絶対値が許容値2を越えていない場合は、実装制御定数を補正する必要がないと判断して、上記ステップ701に戻り、上述した処理を繰り返す。
これに対して、実装制御定数と算出制御定数との差の絶対値が許容値2を越えている場合は、ステップ707に進み、前記実施例1と同様の手法で実装制御定数を補正する。
以上説明した本実施例3では、検出した応答特性が実装応答特性から許容値を越えてずれている場合に、その応答特性の誤差に応じてゲイン余裕又は位相余裕を変更して前記実施例2と同様の手法で制御定数を算出するようにしたので、空燃比センサ24が劣化しても、その応答特性の劣化度合いを考慮した適正な制御定数を算出することができ、制御の安定性、応答性の悪化を防止することができる。尚、ゲイン余裕又は位相余裕を変更する場合は、実装応答特性を補正する必要はない。
本発明の実施例4では、ECU27によって図16の制御定数決定メインルーチンを実行することで、空燃比センサ24の出力に重畳するノイズ成分の大きさが許容値を越えている場合に、ノイズ成分の大きさに応じてゲイン余裕又は位相余裕を変更して前記実施例2と同様の手法で制御定数を算出するようにしている。
図16の制御定数決定メインルーチンでは、まずステップ711で、ノイズ成分検出手段によりノイズ成分が検出されたか否かを判定し、検出されていなければ、検出されるまで待機する。
その後、ノイズ成分が検出された時点で、ステップ712に進み、ノイズ成分の大きさが許容値1以上であるか否かを判定し、許容値1以上でなければ、実装制御定数を補正する必要がないと判断して、ステップ711に戻り、次のノイズ成分が検出されるまで待機する。
一方、ノイズ成分の大きさが許容値1以上であれば、ステップ713に進み、ノイズ成分の大きさを算出し、次のステップ714で、このノイズ成分の大きさに応じたゲイン余裕又は位相余裕を図15のマップにより算出する。この図15のマップは、ノイズ成分が大きくなるほど、ゲイン余裕又は位相余裕が大きくなるように設定されている(ゲイン余裕又は位相余裕が大きくなるほど、制御定数ωが小さくなる)。
この後、ステップ715に進み、上記ステップ714で算出したゲイン余裕又は位相余裕を用いて前記実施例2と同様の手法で制御定数を算出する。この後、ステップ716に進み、ECU27に実装された制御定数(実装応答特性)と上記ステップ715で算出した制御定数(算出制御定数)との差の絶対値が許容値2を越えているか否かを判定し、実装制御定数と算出制御定数との差の絶対値が許容値2を越えていない場合は、実装制御定数を補正する必要がないと判断して、上記ステップ711に戻り、上述した処理を繰り返す。
これに対して、実装制御定数と算出制御定数との差の絶対値が許容値2を越えている場合は、ステップ717に進み、前記実施例1と同様の手法で実装制御定数を補正する。
以上説明した本実施例4では、空燃比センサ24の出力に重畳するノイズ成分の大きさに応じてゲイン余裕又は位相余裕を変更して、空燃比フィードバック制御系の伝達関数とゲイン余裕又は位相余裕を用いて制御定数を算出するようにしたので、空燃比センサ24の劣化やエンジン11の劣化等により空燃比センサ24の出力にノイズ成分が重畳しても、そのノイズ成分の影響を排除した適正な制御定数を算出することができ、制御の安定性、応答性の悪化を防止することができる。尚、この場合も、実装応答特性を補正する必要はない。
尚、応答特性の誤差とノイズ成分の大きさの両方に基づいてゲイン余裕又は位相余裕を変更するようにしても良い。
本発明の実施例5では、前記実施例1と同様の方法で、空燃比センサ24の応答特性(無駄時間+n次遅れ)を検出し、検出した応答特性がECU27に実装された応答特性からずれている場合に、空燃比センサ24の応答特性を模擬したプラントの入力又は出力を最適挙動とする制御定数をシミュレーションにより算出する。シミュレーションのモデルは、図17に示すように、コントローラとプラント(制御対象)とからなり、コントローラ(ECU27に実装されている制御ロジック)は、空燃比センサ24の出力と空燃比フィードパック補正係数が理想の応答波形となるように構成され、プラントは、ECU27に実装されている応答特性モデルをそのまま使用する。
本実施例5では、ECU27によって図18の制御定数算出ルーチンを実行することで、制御定数をシミュレーションにより算出する。図18の制御定数算出ルーチンは、一方の制御定数ζを固定して、他方の制御定数ωを最適化するルーチンである。制御定数ζを最適化する場合は、制御定数ωを固定して、図18の制御定数算出ルーチンと同様の処理を行えば良い。
図18の制御定数算出ルーチンでは、まずステップ801で、実装応答特性が変更(補正)されるまで待機する。この実装応答特性の変更は、前記実施例1と同様の方法で行われる。そして、実装応答特性が変更された時点で、ステップ802に進み、変更された運転条件での実装制御定数ω,ζを検索し、次のステップ803で、図19に示すように、プラントの入力に燃料ステップ入力(燃料外乱inj)を加えて、一方の実装制御定数ωを上記ステップ802で検索した値に固定してシミュレーションを行う。
この後、ステップ804に進み、プラントの出力λ(空燃比)の応答性と収束性を検出する。ここで、図19に示すように、応答性は、燃料ステップ入力の発生時からプラントの出力λが例えば目標値の±10%以内に最初に到達するまでの時間で検出され、収束性は、燃料ステップ入力の発生時からプラントの出力λが例えば目標値の±10%以内に最終的に収束するまでの時間で検出される。
この後、ステップ805に進み、検出した応答性と収束性が一致するか否かで、プラントの出力λが理想的な波形(図20参照)であるか否か、つまり、実装制御定数ωが理想値よりも小さいのか大きいのかを判定する。この結果、検出した応答性と収束性が一致すると判定されれば、実装制御定数ωが理想値よりも小さいと判断して、ステップ806に進み、実装制御定数ω(n) を前回値ω(n-1) に所定値2を加算した値に更新する。この後、ステップ807に進み、今回の実装制御定数ω(n) で燃料ステップ入力を加えて再度シミュレーションを行い、次のステップ808で、プラントの出力λの応答性と収束性を検出した後、ステップ809に進み、検出した応答性と収束性とが不一致になったか否かを判定し、応答性と収束性とが不一致になっていなければ、上記ステップ805に戻る。これにより、応答性と収束性とが不一致になるまで、実装制御定数ω(n) を所定値2ずつ増加させて、燃料ステップ入力を加えてプラントの出力λの応答性と収束性を検出するという処理を繰り返す。
その後、検出した応答性と収束性とが不一致になった時点で、ステップ714に進み、前回の実装制御定数ω(n-1) を最終的な実装制御定数ω(n) と決定して本ルーチンを終了する。
一方、上記ステップ805で、検出した応答性と収束性が一致していないと判定されれば、実装制御定数ωが理想値よりも大きいと判断して、ステップ710に進み、実装制御定数ω(n) を前回値ω(n-1) から所定値1を減算した値に更新する。この後、ステップ717に進み、今回の実装制御定数ω(n) で燃料ステップ入力を加えて再度シミュレーションを行い、次のステップ712で、プラントの出力λの応答性と収束性を検出した後、ステップ713に進み、検出した応答性と収束性とが一致したか否かを判定し、応答性と収束性とが一致していなければ、上記ステップ805に戻る。これにより、応答性と収束性とが一致するまで、実装制御定数ω(n) を所定値1ずつ減少させて、燃料ステップ入力を加えてプラントの出力λの応答性と収束性を検出するという処理を繰り返す。その後、検出した応答性と収束性とが一致した時点で、本ルーチンを終了する。
このような処理を行うことで、プラントの入力がオーバーシュートしないように実装制御定数ω(n) が設定される。
以上説明した本実施例5では、検出した応答特性が実装応答特性からずれて、実装応答特性が変更(補正)される毎に、プラントの入力・出力を最適挙動とする制御定数をシミュレーションにより算出するようにしたので、理想の応答波形を指定できる(プラントの入力・出力の最適挙動を波形レベルで指定できる)。しかも、プラントの入力も制約できるため、エンジン11の保護の観点から、制御定数を無闇に大きくし過ぎることなく、制御が可能である。
本発明の実施例6では、ECU27によって図21の制御定数決定メインルーチンを実行することで、検出した応答特性が実装応答特性から許容値を越えてずれている場合に、その応答特性の誤差を含むシミュレーションにより制御定数を算出するようにしている。
図21の制御定数決定メインルーチンでは、前記実施例3(図14)と同様の方法で、実装応答特性と検出応答特性との差の絶対値が許容値1を越えたときに、その応答特性の誤差を算出する(ステップ701〜703)。
この後、ステップ705に進み、プラントに応答特性の誤差を入力してシミュレーションを行い、制御定数を算出する。この後、ステップ706に進み、ECU27に実装された制御定数(実装応答特性)と上記ステップ705で算出した制御定数(算出制御定数)との差の絶対値が許容値2を越えているか否かを判定し、実装制御定数と算出制御定数との差の絶対値が許容値2を越えていない場合は、実装制御定数を補正する必要がないと判断して、上記ステップ701に戻り、上述した処理を繰り返す。
これに対して、実装制御定数と算出制御定数との差の絶対値が許容値2を越えている場合は、ステップ707に進み、前記実施例1と同様の手法で実装制御定数を補正する。
以上説明した本実施例6では、検出応答特性と実装応答特性との誤差を含むシミュレーションにより制御定数を算出するようにしたので、空燃比センサ24が劣化しても、その応答特性の劣化度合いを考慮して、適正な制御定数を算出することができ、安定性、応答性の悪化を防止することができる。この場合、運転条件毎に補正係数等を持つ必要がなく、また、実装応答特性を補正する必要はない。
本発明の実施例7では、ECU27によって図22の制御定数決定メインルーチンを実行することで、空燃比センサ24の出力に重畳するノイズ成分が許容値を越えたときに、そのノイズ成分の大きさを含むシミュレーションにより制御定数を算出するようにしている。
図22の制御定数決定メインルーチンでは、前記実施例4(図16)と同様の方法で、ノイズ成分検出手段により検出したノイズ成分の大きさが許容値1以上になったときに、ノイズ成分の大きさを算出する(ステップ711〜713)。
この後、ステップ715に進み、プラントにノイズ成分の大きさを入力してシミュレーションを行い、制御定数を算出する。この後、ステップ716に進み、ECU27に実装された制御定数(実装応答特性)と上記ステップ715で算出した制御定数(算出制御定数)との差の絶対値が許容値2を越えているか否かを判定し、実装制御定数と算出制御定数との差の絶対値が許容値2を越えていない場合は、実装制御定数を補正する必要がないと判断して、上記ステップ711に戻り、上述した処理を繰り返す。
これに対して、実装制御定数と算出制御定数との差の絶対値が許容値2を越えている場合は、ステップ717に進み、前記実施例1と同様の手法で実装制御定数を補正する。
以上説明した本実施例7では、空燃比センサ24の出力に重畳するノイズ成分の大きさを含むシミュレーションにより制御定数を算出するようにしたので、空燃比センサ24の劣化やエンジン11の劣化等によりセンサの出力にノイズ成分が重畳しても、そのノイズ成分の影響を排除した適正な制御定数を算出することができ、制御の安定性、応答性の悪化を防止することができる。
上記実施例1〜7のうちの2つの実施例の手法によって2つの制御定数を算出して、2つの制御定数を比較して安定性が高い方の制御定数を選択するようにしても良い。
例えば、図23に示す本発明の実施例8では、前記実施例2と同様の手法でゲイン余裕又は位相余裕を用いて制御定数G1を算出する第1の算出手段901と、前記実施例5と同様の手法で空燃比センサ24の応答特性を模擬したプラントの入力又は出力を最適挙動とする制御定数G2をシミュレーションにより算出する第2の算出手段902とを備え、前記第1の算出手段901で算出された制御定数G1と前記第2の算出手段902で算出された制御定数G2とを比較して安定性が高い方を選択する(903)。このようにすれば、2種類の手法で算出した2つの制御定数G1,G2の中から、より安定性を重視した制御定数を選択することができ、安全かつ正確な制御定数での制御が可能となる。
図24に示す本発明の実施例9では、前記実施例6と同様の手法で検出応答特性と実装応答特性との誤差を含むシミュレーションにより制御定数G3を算出する第3の算出手段911と、前記実施例7と同様の手法で空燃比センサ24の出力に重畳するノイズ成分の大きさを含むシミュレーションにより制御定数G4を算出する第4の算出手段912とを備え、前記第3の算出手段911で算出された制御定数G3と前記第4の算出手段912で算出された制御定数G4とを比較して安定性が高い方を選択する(913)。このようにすれば、空燃比センサ24の劣化等にて発生するすべての状況を考慮して算出した2つの制御定数G3,G4の中から、より安定性を重視した制御定数を選択することができて、安全かつ正確な制御定数での制御が可能となる。
図25に示す本発明の実施例10では、シミュレーションによりプラントの出力を最適とする制御定数G5を算出する第5の算出手段921と、シミュレーションによりプラントの入力を最適とする制御定数G6を算出する第6の算出手段922とを備え、前記第5の算出手段921で算出された制御定数G5と前記第6の算出手段922で算出された制御定数G6とを比較して安定性が高い方を選択する(923)。このようにすれば、プラントの入力と出力の両方を考慮して安定性の高い制御定数を設定することができる。
図26に示す本発明の実施例10では、制御定数を所定の運転条件(エンジン負荷、エンジン回転速度等)で算出し、この所定の運転条件と算出した制御定数との関係に基づいて他の運転条件の制御定数を推定するようにしている。
このようにすれば、運転条件毎に最適となる制御定数を算出する処理を多数回繰り返す必要がなくなり、検出工数・算出工数低減が可能となる。しかも、全領域の制御定数を瞬時に変更することが可能であるため、故障による排出ガス悪化に瞬時に対応可能である。更に、エンジン運転中では計測不可能な領域(過渡的には使用するが、定常的に運転し続けることが困難な運転条件のような領域)の制御定数の推測が可能となる。
図27に示す本発明の実施例11では、ある運転条件でのゲイン余裕又は位相余裕で制御定数を算出し、前記ある運転条件でのゲイン余裕又は位相余裕と算出した制御定数との関係に基づいて他の運転条件での制御定数を推定するようにしている。
このようにすれば、運転条件毎に最適挙動を変化させたい場合でも、運転条件毎にゲイン余裕又は位相余裕を変更して最適となる制御定数を算出する処理を多数回繰り返す必要がなくなり、検出工数・算出工数低減が可能となる。その他、前記実施例11と同様の効果を得ることができる。
[その他の実施例]
上記各実施例のうちの3つ以上の実施例の手法によって3つ以上の制御定数を算出して、3つ以上の制御定数の中から安定性が最も高い制御定数を選択するようにしても良い。
また、実装制御定数を、最大の余裕を持たせた定数にしておき、応答特性の誤差やノイズ成分の大きさに合わせて余裕を狭める(制御定数を大きくする)方向にのみ変更するようにしても良い。
或は、実装制御定数を余裕のない定数(つまり、応答特性の誤差・ノイズ成分=0の状態と仮定)にしておき、応答特性の誤差・ノイズ成分の大きさに合わせて余裕を持たせる方向にのみ変更するようにしても良い。
また、制御定数を大きくする方向(余裕を狭める方向)には動かさず、安定方向にのみ制御定数を変更するようにしても良い。
また、制御定数の変更を禁止する禁止条件として、周りの制御定数と飛びぬけて異なるとき、フィードバック中等という条件を用いても良い。
また、検出した応答特性は、N回検出の平均値を使用するようにしても良い。
また、マイコンの処理負荷軽減のため、予めノイズやセンサの応答特性誤差と制御定数の関係をシミュレーションにより算出して実装しておき、この定数を使用するようにしても良い。(マイコンの処理負荷軽減の為に予めマップを実装しておき、そのマップから定数を引いてきても良い。)
本発明の実施例1におけるエンジン制御システム全体の概略構成図である。
実施例1の応答特性検出方法を説明するタイムチャートである。
実施例1の空燃比センサの異常診断方法を説明するタイムチャートである。
実施例1の空燃比センサ応答特性検出メインルーチンの処理の流れを示すフローチャートである。
実施例1の無駄時間算出ルーチンの処理の流れを示すフローチャートである。
実施例1のn次遅れ特性算出ルーチンの処理の流れを示すフローチャートである。
実施例1の制御定数決定メインルーチンの処理の流れを示すフローチャートである。
実施例1の実装制御定数補正ルーチンの処理の流れを示すフローチャートである。
実施例1の空燃比フィードバック実行中の実装制御定数の補正例を示すタイムチャートである。
実施例1の空燃比フィードバック停止中の実装制御定数の補正例を示すタイムチャートである。
実施例1のセンサ異常判定ルーチンの処理の流れを示すフローチャートである。
実施例2の空燃比フィードバック制御系のブロック図である。
実施例2の空燃比フィードバック制御系の伝達関数とゲイン余裕又は位相余裕との関係を説明する図である。
実施例3の制御定数決定メインルーチンの処理の流れを示すフローチャートである。
応答特性の誤差(ノイズ成分の大きさ)に応じてゲイン余裕又は位相余裕を算出するマップの一例を示す図である。
実施例4の制御定数決定メインルーチンの処理の流れを示すフローチャートである。
実施例5のシミュレーションのモデルを説明する図である。
実施例5の制御定数決定メインルーチンの処理の流れを示すフローチャートである。
燃料ステップ入力後のプラントの出力λの挙動を説明するタイムチャートである。
プラントの出力λの理想的な波形を説明するタイムチャートである。
実施例6の制御定数決定メインルーチンの処理の流れを示すフローチャートである。
実施例7の制御定数決定メインルーチンの処理の流れを示すフローチャートである。
実施例8の制御定数選択メインルーチンの処理の流れを示すフローチャートである。
実施例9の制御定数選択メインルーチンの処理の流れを示すフローチャートである。
実施例10の制御定数選択メインルーチンの処理の流れを示すフローチャートである。
実施例11の制御定数の推定手法を説明する図である。
実施例12の制御定数の推定手法を説明する図である。
符号の説明
11…エンジン(内燃機関)、12…吸気管、15…スロットルバルブ、18…吸気管圧力センサ、19…吸気マニホールド、20…燃料噴射弁、22…排気管、23…触媒、24…空燃比センサ、27…ECU(空燃比制御手段,応答特性検出手段,制御定数算出手段,異常判定手段,検出手段)、32…警告ランプ(警告手段)