(57)【要約】  【課題】  空燃比センサの応答特性全体（無駄時間とｎ次遅れ）に対して最適化した制御定数を設定できるようにする。  【解決手段】  内燃機関への燃料供給量の変化タイミングを検出し、その燃料供給量変化前後の空燃比センサの出力の挙動を監視して空燃比センサの応答特性を燃料供給量が変化した時点から空燃比センサの出力が変化し始めるまでの無駄時間とその後のセンサ出力変化特性を表すｎ次遅れ特性（ｎは正の整数）とに分けて検出する。そして、検出した応答特性がＥＣＵに実装された応答特性（以下「実装応答特性」という）からずれている場合に、該実装応答特性を補正し、補正後の実装応答特性で空燃比センサの出力が最適挙動となる制御定数を算出する。  【選択図】  図２
2006266094.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排出ガスの空燃比又は酸素濃度を検出するセンサの応答特性を模擬したモデルを用いて前記センサの出力に基づいて内燃機関に供給する混合気の空燃比をフィードバック制御する空燃比制御手段を備えた空燃比制御装置において、
前記内燃機関への燃料供給量の変化タイミングを検出する検出手段と、
燃料供給量変化前後の前記センサ出力の挙動を監視して前記センサの応答特性を前記燃料供給量が変化した時点から前記センサ出力が変化し始めるまでの無駄時間とその後のセンサ出力変化特性を表すｎ次遅れ特性（ｎは正の整数）とに分けて検出する応答特性検出手段と、
前記応答特性検出手段で検出した応答特性が前記空燃比制御手段に実装された応答特性（以下「実装応答特性」という）からずれている場合に該実装応答特性を補正し、補正後の実装応答特性で前記センサ出力が最適挙動となる制御定数を算出する制御定数算出手段と
を備えていることを特徴とする空燃比制御装置。
【請求項２】
前記制御定数算出手段は、算出した制御定数によって実装制御定数を補正することを特徴とする請求項１に記載の空燃比制御装置。
【請求項３】
前記制御定数算出手段で算出した制御定数と前記実装制御定数とを比較して前記センサの異常の有無を判定する異常判定手段を備えていることを特徴とする請求項１又は２に記載の空燃比制御装置。
【請求項４】
前記異常判定手段が前記センサの異常有りと判定したときにそれを警告する警告手段を備えていることを特徴とする請求項３に記載の空燃比制御装置。
【請求項５】
内燃機関の排出ガスの空燃比又は酸素濃度を検出するセンサの応答特性を模擬したモデルを用いて前記センサの出力に基づいて内燃機関に供給する混合気の空燃比をフィードバック制御する空燃比制御手段を備えた空燃比制御装置において、
前記内燃機関への燃料供給量の変化タイミングを検出する検出手段と、
燃料供給量変化前後の前記センサ出力の挙動を監視して前記センサの応答特性を前記燃料供給量が変化した時点から前記センサ出力が変化し始めるまでの無駄時間とその後のセンサ出力変化特性を表すｎ次遅れ特性（ｎは正の整数）とに分けて検出する応答特性検出手段と、
前記応答特性検出手段で検出した応答特性が前記空燃比制御手段に実装された応答特性からずれている場合に空燃比フィードバック制御系の伝達関数とゲイン余裕又は位相余裕を用いて前記センサ出力が最適挙動となる制御定数を算出する制御定数算出手段と
を備えていることを特徴とする空燃比制御装置。
【請求項６】
前記応答特性検出手段で検出した応答特性が前記実装応答特性からずれている場合にその応答特性の誤差に応じて前記ゲイン余裕又は前記位相余裕を変更する手段を備えていることを特徴とする請求項５に記載の空燃比制御装置。
【請求項７】
内燃機関の排出ガスの空燃比又は酸素濃度を検出するセンサの応答特性を模擬したモデルを用いて前記センサの出力に基づいて内燃機関に供給する混合気の空燃比をフィードバック制御する空燃比制御手段を備えた空燃比制御装置において、
前記センサ出力に重畳するノイズ成分を検出するノイズ成分検出手段と、
前記ノイズ成分検出手段で検出したノイズ成分の大きさに応じてゲイン余裕又は位相余裕を変更して空燃比フィードバック制御系の伝達関数と前記ゲイン余裕又は前記位相余裕を用いて前記センサ出力が最適挙動となる制御定数を算出する制御定数算出手段と
を備えていることを特徴とする空燃比制御装置。
【請求項８】
内燃機関の排出ガスの空燃比又は酸素濃度を検出するセンサの応答特性を模擬したモデルを用いて前記センサの出力に基づいて内燃機関に供給する混合気の空燃比をフィードバック制御する空燃比制御手段を備えた空燃比制御装置において、
前記内燃機関への燃料供給量の変化タイミングを検出する検出手段と、
燃料供給量変化前後の前記センサ出力の挙動を監視して前記センサの応答特性を前記燃料供給量が変化した時点から前記センサ出力が変化し始めるまでの無駄時間とその後のセンサ出力変化特性を表すｎ次遅れ特性（ｎは正の整数）とに分けて検出する応答特性検出手段と、
前記応答特性検出手段で検出した応答特性が前記空燃比制御手段に実装された応答特性からずれている場合に前記センサの応答特性を模擬したプラントの入力又は出力を最適挙動とする制御定数をシミュレーションにより算出する制御定数算出手段と
を備えていることを特徴とする空燃比制御装置。
【請求項９】
前記制御定数算出手段は、前記応答特性検出手段で検出した応答特性と前記実装応答特性との誤差を含むシミュレーションにより前記制御定数を算出することを特徴とする請求項８に記載の空燃比制御装置。
【請求項１０】
前記制御定数算出手段は、前記センサ出力に重畳するノイズ成分の大きさを含むシミュレーションにより前記制御定数を算出することを特徴とする請求項８に記載の空燃比制御装置。
【請求項１１】
前記制御定数算出手段は、ゲイン余裕又は位相余裕を用いて制御定数を算出する第１の算出手段と、前記センサの応答特性を模擬したプラントの入力又は出力を最適挙動とする制御定数をシミュレーションにより算出する第２の算出手段とを備え、前記第１の算出手段で算出された制御定数と前記第２の算出手段で算出された制御定数のうちの安定性が高い方を選択することを特徴とする請求項５乃至１０のいずれかに記載の空燃比制御装置。
【請求項１２】
前記制御定数算出手段は、前記応答特性検出手段で検出した応答特性と前記実装応答特性との誤差を含むシミュレーションにより前記制御定数を算出する第３の算出手段と、前記センサ出力に重畳するノイズ成分の大きさを含むシミュレーションにより前記制御定数を算出する第４の算出手段とを備え、前記第３の算出手段で算出された制御定数と前記第４の算出手段で算出された制御定数のうちの安定性が高い方を選択することを特徴とする請求項８乃至１０のいずれかに記載の空燃比制御装置。
【請求項１３】
前記制御定数算出手段は、前記制御定数を所定の運転条件で算出し、この所定の運転条件と算出した制御定数との関係に基づいて他の運転条件の制御定数を推定することを特徴とする請求項１乃至１２のいずれかに記載の空燃比制御装置。
【請求項１４】
前記制御定数算出手段は、ある運転条件でのゲイン余裕又は位相余裕で前記制御定数を算出し、前記ある運転条件でのゲイン余裕又は位相余裕の関係に基づいて他の運転条件での制御定数を推定することを特徴とする請求項５に記載の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関（エンジン）の排出ガスの空燃比又は酸素濃度を検出するセンサの応答特性を模擬したモデルを用いて混合気の空燃比をフィードバック制御する空燃比制御装置に関する発明である。
【背景技術】
【０００２】
近年の空燃比フィードバック制御は、排出ガスの空燃比又は酸素濃度を検出するセンサを排気管に設置すると共に、制御対象であるエンジンへの燃料供給量を変化させてから排出ガスの空燃比が変化する応答特性を無駄時間＋１次遅れ特性（又は２次遅れ特性）でモデル化し、このモデルを用いて、上記センサの出力に基づいてエンジンに供給する混合気の空燃比（燃料供給量）をフィードバック制御するフィードバック制御系を設計している。このため、エンジン機差、センサ個体差、エンジンの劣化やセンサの劣化等により無駄時間と１次遅れが変化した場合に、実装した制御定数をそのまま用いて制御を行なうと、空燃比の制御性の悪化に繋がってしまう。
【０００３】
そこで、従来は、特許文献１（特開２００４−１９０５９１号公報）に示すように、単なる１次遅れのモデル誤差に応じて制御定数（制御ゲイン）を補正する補正係数を一律に設定して、この補正係数により制御定数を補正するようにしている。
【特許文献１】特開２００４−１９０５９１号公報（第１頁等）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記特許文献１の技術では、モデル誤差に応じて一律に設定した補正係数により制御定数を補正するものであるため、センサの劣化やエンジンの機差等に対して最適な制御定数を設定することが困難であった。すなわち、モデル誤差に応じた補正係数を設定することで、その補正係数を使用する全領域で制御が安定となるものとしなければならないことから、安定側の制御定数を選択せざるを得ず、センサの応答特性全体（無駄時間とｎ次遅れ）に対して最適化した制御定数を設定することが困難であった。
【０００５】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、排出ガスの空燃比又は酸素濃度を検出するセンサの応答特性全体（無駄時間とｎ次遅れ）に対して最適化した制御定数を設定することができる空燃比制御装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１に係る発明は、内燃機関の排出ガスの空燃比又は酸素濃度を検出するセンサの応答特性を模擬したモデルを用いて前記センサの出力に基づいて内燃機関に供給する混合気の空燃比をフィードバック制御する空燃比制御手段を備えた空燃比制御装置において、内燃機関への燃料供給量の変化タイミングを検出し、その燃料供給量変化前後のセンサ出力の挙動を監視して前記センサの応答特性を前記燃料供給量が変化した時点から前記センサ出力が変化し始めるまでの無駄時間とその後のセンサ出力変化特性を表すｎ次遅れ特性（ｎは正の整数）とに分けて検出すると共に、検出した応答特性が前記空燃比制御手段に実装された応答特性（以下「実装応答特性」という）からずれている場合に、該実装応答特性を補正し、補正後の実装応答特性で前記センサ出力が最適挙動となる制御定数を算出するようにしたものである。このようにすれば、実際に検出したセンサ応答特性（無駄時間＋ｎ次遅れ）に基づいて、実装応答特性を適正に補正できると共に、センサ劣化や内燃機関の機差等に対して、センサ出力が最適挙動となる制御定数をオンボードで算出することが可能となり、センサの劣化や内燃機関の機差等により発生する制御性悪化を回避することができる。
【０００７】
この場合、請求項２のように、制御定数算出手段で算出した制御定数によって実装制御定数を補正するようにすると良い。このようにすれば、センサ劣化や内燃機関の機差等に応じて実装制御定数を適正に補正することができる。この実装制御定数の補正方法は、空燃比フィードバック実行中と停止中とで切り換えるようにしても良く、例えば、フィードバック実行中は、実装制御定数を算出制御定数に向けて徐々に変化させることで、実装制御定数の急変による内燃機関の制御状態が急変するのを避けるようにしたり、或は、フィードバック実行中は、実装制御定数を変化させずに次のフィードバック停止時に変化させるようにしたり、一方、フィードバック停止中は、実装制御定数を算出制御定数に一気に変化させるようにしても良い。
【０００８】
また、請求項３のように、制御定数算出手段で算出した制御定数と実装制御定数とを比較してセンサの異常の有無を異常判定手段により判定するようにすると良い。制御定数を算出する際にセンサ応答特性（無駄時間とｎ次遅れ）を使用するため、センサ応答特性が異常になれば、算出制御定数も異常になり、算出制御定数と実装制御定数とのずれが異常に大きくなる。この関係から、算出制御定数と実装制御定数とを比較すれば、センサの異常の有無を判定することができる。この場合、従来システムでは異常の検出が困難であった低レベルの異常（例えば無駄時間と応答時間の両方が微妙にずれている異常）も検出することができる利点がある。
【０００９】
更に、請求項４のように、異常判定手段がセンサの異常有りと判定したときにそれを警告手段によって警告するようにすると良い。このようにすれば、センサの異常発生時に、速やかに修理等の必要性を運転者に知らせることができて、長期間にわたりセンサ異常による排気エミッション悪化の状態が放置されることを回避することができる。
【００１０】
また、請求項５のように、応答特性検出手段で検出した応答特性が実装応答特性からずれている場合に、空燃比フィードバック制御系の伝達関数とゲイン余裕又は位相余裕を用いてセンサ出力が最適挙動となる制御定数を算出するようにしても良い。ゲイン余裕や位相余裕は、運転条件や応答特性とは関係なく最適挙動に応じて設定できるため、運転条件毎や応答特性毎にゲイン余裕や位相余裕を指定する必要がなく、同一のゲイン余裕や位相余裕で、同等の最適挙動を実現できる。但し、本発明は、運転条件により最適挙動を変化させたい場合は、ゲイン余裕や位相余裕を運転条件毎に設定するようにしても良い。
【００１１】
この場合、請求項６のように、応答特性検出手段で検出した応答特性が実装応答特性からずれている場合には、その応答特性の誤差に応じてゲイン余裕又は位相余裕を変更して上記請求項５の手法で制御定数を算出するようにしても良い。このようにすれば、センサが劣化しても、その応答特性の劣化度合いを考慮した適正な制御定数を算出することができ、制御の安定性、応答性の悪化を防止することができる。尚、ゲイン余裕又は位相余裕を変更する場合は、実装応答特性を補正する必要はない。
【００１２】
また、請求項７のように、センサ出力に重畳するノイズ成分をノイズ成分検出手段により検出し、そのノイズ成分の大きさに応じてゲイン余裕又は位相余裕を変更して空燃比フィードバック制御系の伝達関数と前記ゲイン余裕又は前記位相余裕を用いてセンサ出力が最適挙動となる制御定数を算出するようにしても良い。このようにすれば、センサの劣化や内燃機関の劣化等によりセンサの出力にノイズ成分が重畳しても、そのノイズ成分の影響を排除した適正な制御定数を算出することができ、制御の安定性、応答性の悪化を防止することができる。尚、この場合も、実装応答特性を補正する必要はない。
【００１３】
また、請求項８のように、応答特性検出手段で検出した応答特性が実装応答特性からずれている場合に、センサの応答特性を模擬したプラントの入力又は出力を最適挙動とする制御定数をシミュレーションにより算出するようにしても良い。このようにすれば、理想の応答波形を指定できる（プラントの入力・出力の最適挙動を波形レベルで指定できる）。しかも、プラントの入力も制約できるため、内燃機関の保護の観点から、制御定数を無闇に大きくし過ぎることなく、制御が可能である。
【００１４】
この場合、請求項９のように、応答特性検出手段で検出した応答特性と実装応答特性との誤差を含むシミュレーションにより制御定数を算出するようにしても良い。このようにすれば、センサが劣化しても、その応答特性の劣化度合いを考慮して、適正な制御定数を算出することができ、安定性、応答性の悪化を防止することができる。この場合、運転条件毎に補正係数等を持つ必要がなく、また、実装応答特性を補正する必要はない。
【００１５】
また、請求項１０のように、センサの出力に重畳するノイズ成分の大きさを含むシミュレーションにより制御定数を算出するようにしても良い。このようにすれば、センサの劣化や内燃機関の劣化等によりセンサの出力にノイズ成分が重畳しても、そのノイズ成分の影響を排除した適正な制御定数を算出することができ、制御の安定性、応答性の悪化を防止することができる。
【００１６】
この場合、請求項１１のように、ゲイン余裕又は位相余裕を用いて制御定数を算出する第１の算出手段と、制御対象である内燃機関の動特性を前記センサの応答特性を考慮して模擬したプラントの入力又は出力を最適挙動とする制御定数をシミュレーションにより算出する第２の算出手段とを備え、前記第１の算出手段で算出された制御定数と前記第２の算出手段で算出された制御定数のうちの安定性が高い方を選択するようにしても良い。このようにすれば、２種類の手法で算出した２つの制御定数の中から、より安定性を重視した制御定数を選択することができ、安全かつ正確な制御定数での制御が可能となる。
【００１７】
また、請求項１２のように、応答特性検出手段で検出した応答特性と実装応答特性との誤差を含むシミュレーションにより前記制御定数を算出する第３の算出手段と、前記センサの出力に重畳するノイズ成分の大きさを含むシミュレーションにより前記制御定数を算出する第４の算出手段とを備え、前記第３の算出手段で算出された制御定数と前記第４の算出手段で算出された制御定数のうちの安定性が高い方を選択するようにしても良い。このようにすれば、センサの劣化等にて発生するすべての状況を考慮して算出した２つの制御定数の中から、より安定性を重視した制御定数を選択することができて、安全かつ正確な制御定数での制御が可能となる。
【００１８】
また、請求項１３のように、制御定数を所定の運転条件で算出し、この所定の運転条件と算出した制御定数との関係に基づいて他の運転条件の制御定数を推定するようにしても良い。このようにすれば、運転条件毎に最適となる制御定数を算出する処理を多数回繰り返す必要がなくなり、検出工数・算出工数低減が可能となる。しかも、全領域の制御定数を瞬時に変更することが可能であるため、故障による排出ガス悪化に瞬時に対応可能である。更に、内燃機関の運転中では計測不可能な領域（過渡的には使用するが、定常的に運転し続けることが困難な運転条件のような領域）の制御定数の推測が可能となる。
【００１９】
また、請求項１４のように、ある運転条件でのゲイン余裕又は位相余裕で制御定数を算出し、前記ある運転条件でのゲイン余裕又は位相余裕の関係に基づいて他の運転条件での制御定数を推定するようにしても良い。このようにすれば、運転条件毎に最適挙動を変化させたい場合でも、運転条件毎にゲイン余裕又は位相余裕を変更して最適となる制御定数を算出する処理を多数回繰り返す必要がなくなり、検出工数・算出工数低減が可能となる。その他、前記請求項１３と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明を実施するための最良の形態を具体化した幾つかの実施例を説明する。
【実施例１】
【００２１】
本発明を吸気ポート噴射エンジンに適用した実施例１を図１乃至図１１に基づいて説明する。まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。内燃機関であるエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、モータ１０によって開度調節されるスロットルバルブ１５とスロットル開度を検出するスロットル開度センサ１６とが設けられている。  更に、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７には、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。また、エンジン１１のシリンダヘッドには、各気筒毎に点火プラグ２１が取り付けられ、各点火プラグ２１の火花放電によって筒内の混合気に着火される。
【００２２】
また、エンジン１１の吸気バルブ２８には、該吸気バルブ２８の開閉タイミング（吸気バルブタイミング）を可変する可変吸気バルブタイミング機構２９が設けられ、排気バルブ３０には、該排気バルブ３０の開閉タイミング（排気バルブタイミング）を可変する可変排気バルブタイミング機構３１が設けられている。
【００２３】
一方、エンジン１１の排気管２２には、排出ガス中のＣＯ，ＨＣ，ＮＯｘ等を浄化する三元触媒等の触媒２３が設けられ、この触媒２３の上流側に、排出ガスの空燃比（又は酸素濃度）を検出する空燃比センサ２４が設けられている。また、エンジン１１のシリンダブロックには、冷却水温を検出する冷却水温センサ２５や、エンジン１１のクランク軸が一定クランク角回転する毎にパルス信号を出力するクランク角センサ２６が取り付けられている。このクランク角センサ２６の出力信号に基づいてクランク角やエンジン回転速度が検出される。
【００２４】
これら各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）２７に入力される。このＥＣＵ２７は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、空燃比センサ２４で検出した排出ガスの空燃比を目標空燃比に一致させるように空燃比フィードバック補正係数を算出して、エンジン１１に供給する混合気の空燃比（燃料供給量）をフィードバック制御する空燃比制御手段として機能する。この空燃比フィードバック制御系は、制御対象であるエンジン１１への燃料供給量（燃料噴射弁２０の燃料噴射量）を変化させてから排出ガスの空燃比が変化する応答特性を無駄時間＋１次遅れ特性でモデル化して設計されている。尚、この応答特性を無駄時間＋２次遅れ特性でモデル化しても良く、要は、無駄時間＋ｎ次遅れ特性（ｎは正の整数）でモデル化すれば良い。
【００２５】
更に、ＥＣＵ２７は、後述する図４乃至図６に示す各ルーチンを実行することで、エンジン１１を目標空燃比近傍で安定して運転している定常運転中に、燃料供給量をステップ的に変化させて空燃比センサ２４の応答特性を無駄時間と１次遅れ特性（ｎ次遅れ特性）とに分けて検出する応答特性検出手段として機能する。
【００２６】
以下、空燃比センサ２４の応答特性の検出方法を図２及び図３のタイムチャートに基づいて説明する。図２のタイムチャートは、ＥＣＵ２７が、時刻ｔ１で、エンジン運転状態が定常運転状態であると判定して、定常運転フラグをＯＮに切り換え、その後、時刻ｔ２で、応答特性検出実行条件が成立して計測処理フラグをＯＮに切り換え、応答特性の計測処理を開始する。ここで、応答特性検出実行条件は、定常運転状態で空燃比センサ２４の出力（以下単に「センサ出力」という）が目標空燃比近傍で安定してセンサ出力の変動量が小さいことである。センサ出力が不安定な状態では、空燃比センサ２４の応答特性を精度良く検出できないためである。
【００２７】
応答特性の計測開始時ｔ２から所定時間Ｔ１が経過するまでの期間（ｔ２〜ｔ３）は、空燃比フィードバック制御を継続して定常運転状態を維持しながら、センサ出力の平均値をなまし処理又は相加平均等の平均化処理によって算出する。このセンサ出力の平均値は“燃料増量前のセンサ出力の定常値ＢＡ”としてＥＣＵ２７のメモリに記憶される。尚、応答特性の計測開始時ｔ２において、センサ出力が定常値ＢＡで十分に安定している場合は、応答特性の計測開始時ｔ２にサンプリングしたセンサ出力をそのまま燃料増量前のセンサ出力の定常値ＢＡとしても良い。
【００２８】
そして、燃料増量前のセンサ出力の定常値ＢＡの計測を終了した時点ｔ３で、空燃比フィードバック制御を停止して、燃料増量フラグをＯＮに切り換え、燃料供給量（燃料噴射量）をステップ的に増量して、無駄時間ＴＡの計測を開始する。この後は、センサ出力の変化勾配がしきい値を越えた点を変化開始点として検出する。
【００２９】
このセンサ出力の変化勾配の算出方法は種々の方法が考えられるが、本実施例１では、現在のセンサ出力ＡＦ(N) と前回のセンサ出力ＡＦ(N-1) との差［ＡＦ(N) −ＡＦ(N-1) ］をセンサ出力の変化勾配として用いる。尚、現在のセンサ出力ＡＦ(N) とＳ回前のセンサ出力ＡＦ(N-S) との差［ＡＦ(N) −ＡＦ(N-S) ］をセンサ出力の変化勾配として用いるようにしても良い。
【００３０】
このセンサ出力の変化勾配［ＡＦ(N) −ＡＦ(N-1) ］が最初にしきい値を越えた点を変化開始点として検出するようにしても良いが、本実施例１では、ノイズ等による変化開始点の誤検出を未然に防止するために、センサ出力の変化勾配がしきい値を所定回数越えるまで変化開始点の検出を継続するようにしている。
【００３１】
この場合、しきい値は、演算処理の簡略化のために予め設定した固定値としても良いが、本実施例１では、センサ出力に重畳するノイズに影響を与える運転パラメータ（例えばエンジン回転速度と空燃比）に基づいてしきい値を設定するようにしている。このようにすれば、実際のノイズの大きさに応じた適正なしきい値を設定することができ、ノイズ等による誤検出を防止しながら、変化開始点をより正確に検出することができる。
尚、変化開始点は、所定割合応答点（例えば１０％応答点）としても良い。
【００３２】
以上のようにして変化開始点を検出した後、燃料増量タイミングｔ３から変化開始点ｔ４までの時間を無駄時間ＴＡとして検出する。変化開始点を検出した時点ｔ４で、変化開始点検出フラグをＯＮに切り換えて、１次遅れ特性の計測処理を開始する。
【００３３】
１次遅れ特性の計測処理開始後は、燃料増量タイミングｔ３から所定時間Ｔ０が経過するまでの期間に、燃料増量前のセンサ出力の定常値ＢＡからのセンサ出力の変化量が、燃料増量後のセンサ出力の定常値ＡＡまでの変化量（ＡＡ−ＢＡ）の所定割合（例えば６３％）に達するまでの応答時間ＴＢを算出する。この応答時間ＴＢは、１次遅れ特性を評価する情報として用いられる。
【００３４】
この際、燃料増量後のセンサ出力の定常値ＡＡは、運転領域毎に学習した学習値を用いるようにしても良いが、本実施例１では、燃料増量タイミングｔ３から所定時間Ｔ０が経過した時点ｔ６で、空燃比フィードバック制御を再開して、所定時間Ｔ２が経過するまで、燃料増量分だけ目標空燃比をリッチ側にずらして燃料供給量をフィードバック補正することで、センサ出力を目標空燃比近傍（定常値ＡＡ）で安定させる。この期間（ｔ６〜ｔ７）のセンサ出力の平均値をなまし処理又は相加平均等の平均化処理によって算出し、この平均値を、“燃料増量後のセンサ出力の定常値ＡＡ”として用いる。尚、燃料増量タイミングｔ３から所定時間Ｔ０経過時ｔ６において、センサ出力が定常値ＡＡで十分に安定している場合は、所定時間Ｔ０経過時ｔ６のセンサ出力を燃料増量後のセンサ出力の定常値ＡＡとしても良い。
【００３５】
以上のようにして、燃料増量後のセンサ出力の定常値ＡＡの計測を終了した時点ｔ７で、計測処理フラグをＯＦＦに切り換えて、応答特性の計測処理を終了する。尚、燃料増量後のセンサ出力の定常値ＡＡが予め学習値等で判明している場合は、センサ出力がその定常値ＡＡまで達した時点で、計測処理フラグをＯＦＦに切り換えて、応答特性の計測処理を終了するようにしても良い。
【００３６】
応答特性計測処理終了後は、目標空燃比を通常運転時の目標空燃比に切り換えて空燃比フィードバック制御を実行する。尚、本実施例１では、応答特性検出のために燃料供給量を増量して空燃比をリッチ側に変化させたが、これとは反対に燃料供給量を減量して空燃比をリーン側に変化させるようにしても良い。或は、応答特性計測開始時に燃料供給量をステップ的に減量（又は増量）して空燃比をリーン側（又はリッチ側）にずらしてセンサ出力の定常値ＢＡを算出した後、燃料供給量をステップ的に増量（又は減量）して空燃比をリッチ側（又はリーン側）にずらしてセンサ出力の定常値ＡＡを算出し、燃料増量前（又は減量前）のセンサ出力の定常値ＢＡからのセンサ出力の変化量が、燃料増量後（又は減量後）のセンサ出力の定常値ＡＡまでの変化量（ＡＡ−ＢＡ）の所定割合（例えば６３％）に達するまでの応答時間ＴＢを算出するようにしても良い。
【００３７】
更に、ＥＣＵ２７は、後述する図７乃至図１１に示す各ルーチンを実行することで、検出した応答特性がＥＣＵ２７に実装された応答特性（以下「実装応答特性」という）から許容値を越えてずれている場合に、該実装応答特性を補正し、補正後の実装応答特性で空燃比センサ２４の出力が最適挙動となる制御定数（制御ゲイン）を算出する制御定数算出手段として機能する。以下、これら各ルーチンの処理内容を説明する。
【００３８】
［空燃比センサ応答特性検出メインルーチン］
図４の空燃比センサ応答特性検出メインルーチンは、エンジン運転中に周期的に実行され、特許請求の範囲でいう応答特性検出手段としての役割を果たす。本ルーチンが起動されると、まずステップ１０１で、応答特性検出実行条件が成立しているか否か（計測処理フラグがＯＮであるか否か）を判定する。ここで、応答特性検出実行条件は、エンジン運転状態が定常運転状態（定常運転フラグがＯＮ）で、空燃比センサ２４の出力（センサ出力）が目標空燃比近傍で安定してことである。センサ出力が不安定な状態では、空燃比センサ２４の応答特性を精度良く検出できないためである。
【００３９】
このステップ１０１で、応答特性検出実行条件が成立していないと判定されれば、以降の処理を行うことなく、本ルーチンを終了するが、応答特性検出実行条件が成立していると判定されれば、次のようにして応答特性の検出処理が実行される。
【００４０】
まず、ステップ１０２で、応答特性の計測を開始し、所定時間Ｔ１が経過するまで待機する（ステップ１０３）。応答特性計測開始後は、燃料増量前のセンサ出力の定常値ＢＡを算出するデータとなるセンサ出力の時系列データをＥＣＵ２７のメモリに記憶する。そして、応答特性計測開始から所定時間Ｔ１が経過するまでの期間に、空燃比フィードバック制御を継続して定常運転状態を維持しながら、燃料増量前のセンサ出力の定常値ＢＡ（平均値）をなまし処理又は相加平均等の平均化処理によって算出する。
【００４１】
そして、応答特性計測開始から所定時間Ｔ１が経過した時点で、ステップ１０４に進み、空燃比フィードバック制御を停止して、燃料増量フラグをＯＮに切り換え、次のステップ１０５で、燃料供給量（燃料噴射量）をステップ的に増量する。この後、ステップ１０６に進み、燃料増量タイミングから所定時間Ｔ０が経過するまで待機する。ここで、所定時間Ｔ０は、燃料増量後にセンサ出力が定常値ＡＡで安定するまでに必要な時間に設定されている。燃料増量開始から所定時間Ｔ０が経過するまでの期間には、応答時間ＴＢを算出するデータとなるセンサ出力の時系列データがＥＣＵ２７のメモリに記憶される。
【００４２】
その後、燃料増量開始から所定時間Ｔ０が経過した時点で、ステップ１０７に進み、空燃比フィードバック制御を再開して、所定時間Ｔ２が経過するまで（ステップ１０８）、燃料増量分だけ目標空燃比をリッチ側にずらして燃料供給量をフィードバック補正することで、センサ出力を目標空燃比近傍（定常値ＡＡ）で安定させる。この期間のセンサ出力の平均値をなまし処理又は相加平均等の平均化処理によって算出し、この平均値を、“燃料増量後のセンサ出力の定常値ＡＡ”として用いる。
【００４３】
そして、所定時間Ｔ２が経過した時点で、ステップ１０９に進み、応答特性の計測を終了し、目標空燃比を通常運転時の目標空燃比に切り換えて空燃比フィードバック制御を実行する。
【００４４】
［無駄時間算出ルーチン］
図５の無駄時間算出ルーチンは、エンジン運転中に周期的に実行され、特許請求の範囲でいう応答特性検出手段としての役割を果たす。本ルーチンが起動されると、まずステップ２０１で、無駄時間算出条件が成立しているか否かを判定する。この無駄時間算出条件は、(1) 計測処理フラグがＯＮ（応答特性の計測処理中）であること、(2) 無駄時間ＴＡがまだ算出されていないことであり、これら２つの条件(1) 、(2) のうちのいずれか一方でも満たさない条件があれば、無駄時間算出条件が不成立となり、以降の処理を行うことなく、本ルーチンを終了する。
【００４５】
一方、上記２つの条件(1) 、(2) を同時に満たせば、無駄時間算出条件が成立して、ステップ２０２に進み、燃料供給量が増量されるまで待機する。このステップ２０２の処理が特許請求の範囲でいう検出手段としての役割を果たす。
【００４６】
この後、燃料供給量が増量された時点で、ステップ２０３に進み、現在のセンサ出力の変化勾配［ＡＦ(N) −ＡＦ(N-1) ］をしきい値と比較し、センサ出力の変化勾配［ＡＦ(N) −ＡＦ(N-1) ］がしきい値を越えるまで待機する。
【００４７】
そして、センサ出力の変化勾配［ＡＦ(N) −ＡＦ(N-1) ］がしきい値を越えたときに、変化開始点と判断して、ステップ２０４に進み、変化開始点検出カウンタＣｏｕｎｔをカウントアップして、ステップ２０５に進み、変化開始点検出カウンタＣｏｕｎｔのカウント値が所定値Ｍに達したか否かを判定して、所定値Ｍに達していなければ、ステップ２０３に戻り、上述した処理を繰り返す。これにより、センサ出力の変化勾配［ＡＦ(N) −ＡＦ(N-1) ］がしきい値を所定回数（Ｍ回）越えるまで、変化開始点の検出を継続する。
【００４８】
その後、センサ出力の変化勾配［ＡＦ(N) −ＡＦ(N-1) ］がしきい値を所定回数（Ｍ回）越えて変化開始点検出カウンタＣｏｕｎｔのカウント値が所定値Ｍに達した時点で、ステップ２０６に進み、燃料増量タイミング（ｊ）から変化開始点（Ｎ−Ｍ）までの無駄時間ＴＡを次式により算出する。
ＴＡ＝｛（Ｎ−Ｍ）−Ｊ｝×演算周期
ここで、（Ｎ−Ｍ）は、センサ出力の変化勾配［ＡＦ(N) −ＡＦ(N-1) ］が最初にしきい値を越えた点を変化開始点とみなして、この変化開始点をそれまでの累積演算回数で表したものであり、Ｊは、燃料増量タイミングをそれまでの累積演算回数で表したものである。
【００４９】
［ｎ次遅れ特性算出ルーチン］
図６のｎ次遅れ特性算出ルーチンは、エンジン運転中に周期的に実行され、特許請求の範囲でいう応答特性検出手段としての役割を果たす。本ルーチンが起動されると、まずステップ３０１で、応答時間算出条件が成立しているか否かを判定する。この応答時間算出条件は、(1) 計測処理フラグがＯＦＦ（応答特性の計測処理終了）であること、(2) 応答時間ＴＢがまだ算出されていないことであり、これら２つの条件(1) 、(2) のいずれか一方でも満たさない条件があれば、応答時間算出条件が不成立となり、以降の処理を行うことなく、本ルーチンを終了する。
【００５０】
一方、上記２つの条件(1) 、(2) を同時に満たせば、応答時間算出条件が成立して、ステップ３０２に進み、無駄時間ＴＡが検出されるまで待機する。この後、無駄時間ＴＡが検出された時点で、ステップ３０３に進み、ＥＣＵ２７のメモリに記憶されたセンサ出力の時系列データに基づいて燃料増量前のセンサ出力の定常値ＢＡと燃料増量後のセンサ出力の定常値ＡＡを算出する。ここで、燃料増量前のセンサ出力の定常値ＢＡは、計測処理開始から所定時間Ｔ１が経過するまでのセンサ出力の平均値であり、燃料増量後のセンサ出力の定常値ＡＡは、計測処理終了前の所定時間Ｔ２のセンサ出力の平均値である。
【００５１】
この後、ステップ３０４に進み、燃料増量前の定常値ＢＡから燃料増量後の定常値ＡＡまでの変化量（ＡＡ−ＢＡ）の所定割合（例えば６３％）に相当するセンサ出力ＡＦ６３を次式により算出する。
ＡＦ６３＝（ＡＡ−ＢＡ）×所定割合
【００５２】
この後、ステップ３０５に進み、ＥＣＵ２７のメモリに記憶されたセンサ出力の時系列データを検索して、センサ出力がＡＦ６３に達した時点ＮＴを求めた後、ステップ３０６に進み、変化開始点（Ｎ−Ｍ）からセンサ出力がＡＦ６３に達した時点ＮＴまでの応答時間ＴＢを次式により算出する。
ＴＢ＝｛ＮＴ−（Ｎ−Ｍ）｝×演算周期
【００５３】
尚、本ルーチンでは、応答特性の計測処理終了後（計測処理フラグのＯＦＦ時）に、ＥＣＵ２７のメモリに記憶されているセンサ出力の時系列データに基づいて燃料増量前後のセンサ出力の定常値ＢＡ，定常値ＡＡを算出するようにしたが、応答特性の計測処理開始時（計測処理フラグのＯＮ時）に、燃料増量前後のセンサ出力の定常値ＢＡ，ＡＡが学習値等により予め判明している場合には、応答特性の計測処理中に、変化開始点（無駄時間ＴＡ）を検出するまでに、ＡＦ６３＝（ＡＡ−ＢＡ）×所定割合の演算を行っておき、変化開始点（無駄時間ＴＡ）の検出後に、センサ出力のサンプリング毎にセンサ出力をＡＦ６３と比較して、センサ出力がＡＦ６３に達した時点ＮＴをリアルタイムで検出するようにしても良い。
【００５４】
また、本ルーチンでは、１次遅れの応答時間を算出するようにしたが、これに代えて、２次遅れの応答時間、或は３次以上の応答時間を検出するようにしても良い。また、応答時間に代えて、ｎ次遅れの伝達関数の係数を算出するようにしても良い。
【００５５】
［制御定数決定メインルーチン］
図７の制御定数決定メインルーチンは、エンジン運転中に周期的に実行され、特許請求の範囲でいう制御定数算出手段としての役割を果たす。本ルーチンが起動されると、まずステップ４０１で、前記図４〜図６のルーチンによって空燃比センサ２４の応答特性（無駄時間＋ｎ次遅れ）が検出されたか否かを判定し、検出されていなければ、検出されるまで待機する。
【００５６】
その後、応答特性が検出された時点で、ステップ４０２に進み、ＥＣＵ２７に実装された応答特性（実装応答特性）と前記図４〜図６のルーチンで検出された応答特性（検出応答特性）との差の絶対値が許容値１を越えているか否かを判定する。この際、実装応答特性と検出応答特性との差は、無駄時間の実装値と検出値の差と、ｎ次遅れの実装値と検出値の差について、それぞれ許容値１を越えているか否かを判定し、両方とも許容値１以下であれば、実装応答特性と検出応答特性との差の絶対値が許容値１を越えていない（実装応答特性を補正する必要がない）と判定されて、ステップ４０１に戻り、次の応答特性が検出されるまで待機する。ここで、許容値１は、空燃比センサ２４の出力に重畳するノイズ等の影響による応答特性の微妙なばらつきによる制御定数の誤補正を避けるために設定されている。この許容値１は、応答特性に対して、絶対値、相対値、運転条件毎に設定しても良い。
【００５７】
これに対して、無駄時間とｎ次遅れのどちらか一方でも差が許容値１を越えていれば、実装応答特性と検出応答特性との差の絶対値が許容値１を越えている（実装応答特性を補正する必要がある）と判定されて、ステップ４０３に進み、実装応答特性（無駄時間＋ｎ次遅れ）を検出応答特性で補正する。例えば、無駄時間、ｎ次遅れの実装値を検出値で書き替える。
【００５８】
この後、ステップ４０４に進み、補正後の実装応答特性で空燃比センサ２４の出力が最適挙動となる制御定数（制御ゲイン）を算出する。この後、ステップ４０５に進み、ＥＣＵ２７に実装された制御定数（実装応答特性）と上記ステップ４０４で算出した制御定数（算出制御定数）との差の絶対値が許容値２を越えているか否かを判定し、実装制御定数と算出制御定数との差の絶対値が許容値２を越えていない場合は、実装制御定数を補正する必要がないと判断して、上記ステップ４０１に戻り、上述した処理を繰り返す。
【００５９】
これに対して、実装制御定数と算出制御定数との差の絶対値が許容値２を越えている場合は、ステップ４０６に進み、図８の実装制御定数補正ルーチンを実行して、実装制御定数を補正する。
【００６０】
［実装制御定数補正ルーチン］
図７のステップ４０６で、図８の実装制御定数補正ルーチンが起動されると、まずステップ５０１で、算出制御定数と実装制御定数との差の絶対値が所定値１を越えているか否かを判定し、所定値１を越えていなければ、実装制御定数を補正する必要がないと判断して、そのまま本ルーチンを終了する。これは、算出制御定数と実装制御定数との差が小さいときには、ノイズ等の影響が考えられるため、実装制御定数を補正しない趣旨である。      
【００６１】
これに対して、算出制御定数と実装制御定数との差の絶対値が所定値１を越えていれば、ステップ５０２に進み、実装制御定数の補正を禁止する禁止条件に該当するか否かを判定し、もし、禁止条件に該当すれば、そのまま本ルーチンを終了する。特殊な条件下では実装制御定数の補正を実施しないようにするためである。
【００６２】
一方、禁止条件に該当しなければ、ステップ５０３に進み、空燃比フィードバック停止中であるか否かを判定し、空燃比フィードバック停止中と実行中とで実装制御定数の補正方法を次のように切り替える。空燃比フィードバック停止中であれば、ステップ５０４に進み、実装制御定数を算出制御定数に一気に変更する。
【００６３】
空燃比フィードバック実行中であれば、ステップ５０５に進み、算出制御定数と実装制御定数との差が０より大きいか否かによって、算出制御定数が実装制御定数よりも大きいか否かを判定し、算出制御定数が実装制御定数よりも大きければ、ステップ５０６に進み、実装制御定数を現在の実装制御定数に所定値３を加算した値に書き替え、算出制御定数が実装制御定数よりも小さければ、ステップ５０７に進み、実装制御定数を現在の実装制御定数から所定値３を減算した値に書き替える。このように、空燃比フィードバック実行中は、実装制御定数を所定値３ずつ増減させることで、実装制御定数を算出制御定数に向けて徐々に変化させる。これは、空燃比フィードバック実行中に実装制御定数を急変させると、エンジン制御状態が急変してトルクショック等が発生するためである。
【００６４】
この後、ステップ５０８に進み、算出制御定数と実装制御定数との差の絶対値がシステム上の最大誤差に相当する所定値２よりも小さくなっているか否かを判定し、算出制御定数と実装制御定数との差の絶対値が所定値２以上であれば、上記ステップ５０５に戻り、実装制御定数を所定値３ずつ増減させる処理を繰り返す。そして、算出制御定数と実装制御定数との差の絶対値が所定値２よりも小さくなった時点で、算出制御定数が実装制御定数とほぼ一致すると判断して、本ルーチンを終了する。
【００６５】
以上説明した図８の実装制御定数補正ルーチンによる実装制御定数の補正例が図９、図１０に示されている。
図９は空燃比フィードバック実行中の実装制御定数の補正例を示すタイムチャートである。図９の補正例では、空燃比フィードバック実行中に、算出制御定数と実装制御定数との差の絶対値が所定値１を越えたと判定された時点ｔ１で、算出制御定数と実装制御定数との差が所定値２以上であるため、所定周期で実装制御定数を所定値３ずつ増加させる処理を繰り返す。これは、空燃比フィードバック実行中に実装制御定数を急変させると、エンジン制御状態が急変してトルクショック等が発生するため、実装制御定数を算出制御定数に向けて徐々に変化させることで、実装制御定数の急変によるエンジン制御状態の急変を避けるようにしている。そして、算出制御定数と実装制御定数との差が所定値２以下になった時点ｔ２で、算出制御定数が実装制御定数とほぼ一致すると判断して、実装制御定数の変化を停止する。
【００６６】
一方、図１０は空燃比フィードバック停止中の実装制御定数の補正例を示すタイムチャートである。図１０の補正例では、空燃比フィードバック停止中に、算出制御定数と実装制御定数との差の絶対値が所定値１を越えたと判定された時点ｔ３で、実装制御定数を算出制御定数に一気に変更する。空燃比フィードバック停止中は、実装制御定数を急変させても、その影響がエンジン制御状態に現れないためである。
【００６７】
［センサ異常判定ルーチン］
図１１のセンサ異常判定ルーチンは、エンジン運転中に周期的に実行され、特許請求の範囲でいう異常判定手段としての役割を果たす。本ルーチンが起動されると、まずステップ６０１で、制御定数が算出されたか否かを判定し、算出されていなければ、算出されるまで待機する。そして、制御定数が算出された時点で、ステップ６０２に進み、ＥＣＵ２７のメモリに記憶された実装制御定数のマップを検索して、現在のエンジン運転条件に応じた実装制御定数を読み込む。
【００６８】
この後、ステップ６０３に進み、現在のエンジン運転条件に応じた許容誤差を例えばデータのばらつきやノイズ等を考慮して算出する。そして、次のステップ６０４で、上記ステップ６０２で読み込んだ実装制御定数と算出制御定数との差が許容誤差の範囲内であるか否かを判定し、許容誤差の範囲内であれば、ステップ６０５に進み、空燃比センサ２４が正常であると判定する。
【００６９】
一方、実装制御定数と算出制御定数との差が許容誤差の範囲を越えていれば、ステップ６０６に進み、空燃比センサ２４が異常であると判定し、次のステップ６０７に進み、異常情報をＥＣＵ２７のバックアップＲＡＭ等の書き換え可能な不揮発性メモリ（図示せず）に記憶すると共に、警告ランプ３２を点灯（又は点滅）させたり、運転席のインストルメントパネルの表示部（図示せず）に警告表示して運転者に警告する。
【００７０】
以上説明した本実施例１では、空燃比センサ２４の応答特性を無駄時間とｎ次遅れ特性（ｎは正の整数）とに分けて検出すると共に、検出した応答特性がＥＣＵ２７に実装された応答特性（実装応答特性）から許容値を越えてずれている場合に、該実装応答特性を補正し、補正後の実装応答特性で空燃比センサ２４の出力が最適挙動となる制御定数を算出するようにしたので、実際に検出した応答特性（無駄時間＋ｎ次遅れ）に基づいて、実装応答特性を適正に補正できると共に、空燃比センサ２４の劣化やエンジン１１の機差等に対して、空燃比センサ２４の出力が最適挙動となる制御定数をオンボードで算出することが可能となり、空燃比センサ２４の劣化やエンジン１１の機差等により発生する制御性悪化を回避することができる。
【００７１】
しかも、本実施例１では、実際に検出した応答特性（無駄時間＋ｎ次遅れ）を用いて算出した制御定数と実装制御定数とを比較してセンサの異常の有無を判定するようにしたので、従来システムでは異常の検出が困難であった低レベルの異常（例えば無駄時間と応答時間の両方が微妙にずれている異常）も検出することができる利点がある。
【実施例２】
【００７２】
一般に、空燃比フィードバック制御系は、図１２に示すように、制御対象Ｐ（プラント）であるエンジン１１とコントローラＣ（空燃比制御手段）とから構成され、それぞれ図１３に示す伝達関数で表現される。
【００７３】
ここで、ゲイン余裕は、空燃比フィードバック制御系の伝達関数Ｃ＊Ｐの分母Ｄの絶対値と分子Ｅの絶対値の比で表される。
ゲイン余裕＝｜分母Ｄ｜／｜分子Ｅ｜            ……（１）
分子Ｅ＝ｂ1 ＊ＦＩ＊ｚ＋ｂ2 ＊ＦＩ
分母Ｄ＝ｚd+3 ＋Ａ1 ＊ｚd+2 ＋Ａ2 ＊ｚd+1 −ｂ1 ＊ＦＩ＊ｚ−ｂ2 ＊ＦＩ      
【００７４】
また、位相余裕は、分子Ｅの位相と分母Ｄの位相で表される。
位相余裕＝位相（分子Ｅ）−位相（分母Ｄ）      ……（２）
【００７５】
本発明の実施例２では、前記実施例１と同様の方法で、空燃比センサ２４の応答特性（無駄時間＋ｎ次遅れ）を検出し、検出した応答特性がＥＣＵ２７に実装された応答特性からずれている場合に、空燃比フィードバック制御系の伝達関数Ｃ＊Ｐとゲイン余裕又は位相余裕を用いて２つの制御定数ω，ζを算出するようにしている。この際、２つの制御定数ω，ζのどちらか一方の制御定数を固定値として、上記（１）式又は（２）式にゲイン余裕又は位相余裕の設定値を代入して他方の制御定数に関して解くことにより、他方の制御定数を逆算する。このような処理を２つの制御定数ω，ζについてそれぞれ行うことで、２つの制御定数ω，ζを算出する。
【００７６】
この場合、ゲイン余裕や位相余裕は、運転条件や応答特性とは関係なく最適挙動に応じて設定できるため、運転条件毎や応答特性毎にゲイン余裕や位相余裕を指定する必要がなく、同一のゲイン余裕や位相余裕で、同等の最適挙動を実現できる。但し、本発明は、運転条件により最適挙動を変化させたい場合は、ゲイン余裕や位相余裕を運転条件毎に設定するようにしても良い。
【実施例３】
【００７７】
本発明の実施例３では、ＥＣＵ２７によって図１４の制御定数決定メインルーチンを実行することで、検出した応答特性が実装応答特性から許容値を越えてずれている場合に、その応答特性の誤差に応じてゲイン余裕又は位相余裕を変更して前記実施例２と同様の手法で制御定数を算出するようにしている。
【００７８】
図１４の制御定数決定メインルーチンでは、まずステップ７０１で、前記実施例１と同様の方法で空燃比センサ２４の応答特性（無駄時間＋ｎ次遅れ）が検出されたか否かを判定し、検出されていなければ、検出されるまで待機する。
【００７９】
その後、応答特性が検出された時点で、ステップ７０２に進み、ＥＣＵ２７に実装された応答特性（実装応答特性）と検出された応答特性（検出応答特性）との差の絶対値が許容値１を越えているか否かを判定し、許容値１を越えていなければ、実装制御定数を補正する必要がないと判断して、ステップ７０１に戻り、次の応答特性が検出されるまで待機する。
【００８０】
一方、実装応答特性と検出応答特性との差の絶対値が許容値１を越えていれば、ステップ７０３に進み、実装応答特性と検出応答特性との差を“応答特性の誤差”として算出し、次のステップ７０４で、この応答特性の誤差に応じたゲイン余裕又は位相余裕を図１５のマップにより算出する。この図１５のマップは、応答特性の誤差が大きくなるほど、ゲイン余裕又は位相余裕が大きくなるように設定されている（ゲイン余裕又は位相余裕が大きくなるほど、制御定数ωが小さくなる）。
【００８１】
この後、ステップ７０５に進み、上記ステップ７０４で算出したゲイン余裕又は位相余裕を用いて前記実施例２と同様の手法で制御定数を算出する。この後、ステップ７０６に進み、ＥＣＵ２７に実装された制御定数（実装応答特性）と上記ステップ７０５で算出した制御定数（算出制御定数）との差の絶対値が許容値２を越えているか否かを判定し、実装制御定数と算出制御定数との差の絶対値が許容値２を越えていない場合は、実装制御定数を補正する必要がないと判断して、上記ステップ７０１に戻り、上述した処理を繰り返す。
【００８２】
これに対して、実装制御定数と算出制御定数との差の絶対値が許容値２を越えている場合は、ステップ７０７に進み、前記実施例１と同様の手法で実装制御定数を補正する。
【００８３】
以上説明した本実施例３では、検出した応答特性が実装応答特性から許容値を越えてずれている場合に、その応答特性の誤差に応じてゲイン余裕又は位相余裕を変更して前記実施例２と同様の手法で制御定数を算出するようにしたので、空燃比センサ２４が劣化しても、その応答特性の劣化度合いを考慮した適正な制御定数を算出することができ、制御の安定性、応答性の悪化を防止することができる。尚、ゲイン余裕又は位相余裕を変更する場合は、実装応答特性を補正する必要はない。
【実施例４】
【００８４】
本発明の実施例４では、ＥＣＵ２７によって図１６の制御定数決定メインルーチンを実行することで、空燃比センサ２４の出力に重畳するノイズ成分の大きさが許容値を越えている場合に、ノイズ成分の大きさに応じてゲイン余裕又は位相余裕を変更して前記実施例２と同様の手法で制御定数を算出するようにしている。
【００８５】
図１６の制御定数決定メインルーチンでは、まずステップ７１１で、ノイズ成分検出手段によりノイズ成分が検出されたか否かを判定し、検出されていなければ、検出されるまで待機する。
【００８６】
その後、ノイズ成分が検出された時点で、ステップ７１２に進み、ノイズ成分の大きさが許容値１以上であるか否かを判定し、許容値１以上でなければ、実装制御定数を補正する必要がないと判断して、ステップ７１１に戻り、次のノイズ成分が検出されるまで待機する。
【００８７】
一方、ノイズ成分の大きさが許容値１以上であれば、ステップ７１３に進み、ノイズ成分の大きさを算出し、次のステップ７１４で、このノイズ成分の大きさに応じたゲイン余裕又は位相余裕を図１５のマップにより算出する。この図１５のマップは、ノイズ成分が大きくなるほど、ゲイン余裕又は位相余裕が大きくなるように設定されている（ゲイン余裕又は位相余裕が大きくなるほど、制御定数ωが小さくなる）。
【００８８】
この後、ステップ７１５に進み、上記ステップ７１４で算出したゲイン余裕又は位相余裕を用いて前記実施例２と同様の手法で制御定数を算出する。この後、ステップ７１６に進み、ＥＣＵ２７に実装された制御定数（実装応答特性）と上記ステップ７１５で算出した制御定数（算出制御定数）との差の絶対値が許容値２を越えているか否かを判定し、実装制御定数と算出制御定数との差の絶対値が許容値２を越えていない場合は、実装制御定数を補正する必要がないと判断して、上記ステップ７１１に戻り、上述した処理を繰り返す。
【００８９】
これに対して、実装制御定数と算出制御定数との差の絶対値が許容値２を越えている場合は、ステップ７１７に進み、前記実施例１と同様の手法で実装制御定数を補正する。
【００９０】
以上説明した本実施例４では、空燃比センサ２４の出力に重畳するノイズ成分の大きさに応じてゲイン余裕又は位相余裕を変更して、空燃比フィードバック制御系の伝達関数とゲイン余裕又は位相余裕を用いて制御定数を算出するようにしたので、空燃比センサ２４の劣化やエンジン１１の劣化等により空燃比センサ２４の出力にノイズ成分が重畳しても、そのノイズ成分の影響を排除した適正な制御定数を算出することができ、制御の安定性、応答性の悪化を防止することができる。尚、この場合も、実装応答特性を補正する必要はない。
【００９１】
尚、応答特性の誤差とノイズ成分の大きさの両方に基づいてゲイン余裕又は位相余裕を変更するようにしても良い。
【実施例５】
【００９２】
本発明の実施例５では、前記実施例１と同様の方法で、空燃比センサ２４の応答特性（無駄時間＋ｎ次遅れ）を検出し、検出した応答特性がＥＣＵ２７に実装された応答特性からずれている場合に、空燃比センサ２４の応答特性を模擬したプラントの入力又は出力を最適挙動とする制御定数をシミュレーションにより算出する。シミュレーションのモデルは、図１７に示すように、コントローラとプラント（制御対象）とからなり、コントローラ（ＥＣＵ２７に実装されている制御ロジック）は、空燃比センサ２４の出力と空燃比フィードパック補正係数が理想の応答波形となるように構成され、プラントは、ＥＣＵ２７に実装されている応答特性モデルをそのまま使用する。
【００９３】
本実施例５では、ＥＣＵ２７によって図１８の制御定数算出ルーチンを実行することで、制御定数をシミュレーションにより算出する。図１８の制御定数算出ルーチンは、一方の制御定数ζを固定して、他方の制御定数ωを最適化するルーチンである。制御定数ζを最適化する場合は、制御定数ωを固定して、図１８の制御定数算出ルーチンと同様の処理を行えば良い。
【００９４】
図１８の制御定数算出ルーチンでは、まずステップ８０１で、実装応答特性が変更（補正）されるまで待機する。この実装応答特性の変更は、前記実施例１と同様の方法で行われる。そして、実装応答特性が変更された時点で、ステップ８０２に進み、変更された運転条件での実装制御定数ω，ζを検索し、次のステップ８０３で、図１９に示すように、プラントの入力に燃料ステップ入力（燃料外乱ｉｎｊ）を加えて、一方の実装制御定数ωを上記ステップ８０２で検索した値に固定してシミュレーションを行う。
【００９５】
この後、ステップ８０４に進み、プラントの出力λ（空燃比）の応答性と収束性を検出する。ここで、図１９に示すように、応答性は、燃料ステップ入力の発生時からプラントの出力λが例えば目標値の±１０％以内に最初に到達するまでの時間で検出され、収束性は、燃料ステップ入力の発生時からプラントの出力λが例えば目標値の±１０％以内に最終的に収束するまでの時間で検出される。
【００９６】
この後、ステップ８０５に進み、検出した応答性と収束性が一致するか否かで、プラントの出力λが理想的な波形（図２０参照）であるか否か、つまり、実装制御定数ωが理想値よりも小さいのか大きいのかを判定する。この結果、検出した応答性と収束性が一致すると判定されれば、実装制御定数ωが理想値よりも小さいと判断して、ステップ８０６に進み、実装制御定数ω(n) を前回値ω(n-1) に所定値２を加算した値に更新する。この後、ステップ８０７に進み、今回の実装制御定数ω(n) で燃料ステップ入力を加えて再度シミュレーションを行い、次のステップ８０８で、プラントの出力λの応答性と収束性を検出した後、ステップ８０９に進み、検出した応答性と収束性とが不一致になったか否かを判定し、応答性と収束性とが不一致になっていなければ、上記ステップ８０５に戻る。これにより、応答性と収束性とが不一致になるまで、実装制御定数ω(n) を所定値２ずつ増加させて、燃料ステップ入力を加えてプラントの出力λの応答性と収束性を検出するという処理を繰り返す。
【００９７】
その後、検出した応答性と収束性とが不一致になった時点で、ステップ７１４に進み、前回の実装制御定数ω(n-1) を最終的な実装制御定数ω(n) と決定して本ルーチンを終了する。
【００９８】
一方、上記ステップ８０５で、検出した応答性と収束性が一致していないと判定されれば、実装制御定数ωが理想値よりも大きいと判断して、ステップ７１０に進み、実装制御定数ω(n) を前回値ω(n-1) から所定値１を減算した値に更新する。この後、ステップ７１７に進み、今回の実装制御定数ω(n) で燃料ステップ入力を加えて再度シミュレーションを行い、次のステップ７１２で、プラントの出力λの応答性と収束性を検出した後、ステップ７１３に進み、検出した応答性と収束性とが一致したか否かを判定し、応答性と収束性とが一致していなければ、上記ステップ８０５に戻る。これにより、応答性と収束性とが一致するまで、実装制御定数ω(n) を所定値１ずつ減少させて、燃料ステップ入力を加えてプラントの出力λの応答性と収束性を検出するという処理を繰り返す。その後、検出した応答性と収束性とが一致した時点で、本ルーチンを終了する。
このような処理を行うことで、プラントの入力がオーバーシュートしないように実装制御定数ω(n) が設定される。
【００９９】
以上説明した本実施例５では、検出した応答特性が実装応答特性からずれて、実装応答特性が変更（補正）される毎に、プラントの入力・出力を最適挙動とする制御定数をシミュレーションにより算出するようにしたので、理想の応答波形を指定できる（プラントの入力・出力の最適挙動を波形レベルで指定できる）。しかも、プラントの入力も制約できるため、エンジン１１の保護の観点から、制御定数を無闇に大きくし過ぎることなく、制御が可能である。
【実施例６】
【０１００】
本発明の実施例６では、ＥＣＵ２７によって図２１の制御定数決定メインルーチンを実行することで、検出した応答特性が実装応答特性から許容値を越えてずれている場合に、その応答特性の誤差を含むシミュレーションにより制御定数を算出するようにしている。      
【０１０１】
図２１の制御定数決定メインルーチンでは、前記実施例３（図１４）と同様の方法で、実装応答特性と検出応答特性との差の絶対値が許容値１を越えたときに、その応答特性の誤差を算出する（ステップ７０１〜７０３）。
【０１０２】
この後、ステップ７０５に進み、プラントに応答特性の誤差を入力してシミュレーションを行い、制御定数を算出する。この後、ステップ７０６に進み、ＥＣＵ２７に実装された制御定数（実装応答特性）と上記ステップ７０５で算出した制御定数（算出制御定数）との差の絶対値が許容値２を越えているか否かを判定し、実装制御定数と算出制御定数との差の絶対値が許容値２を越えていない場合は、実装制御定数を補正する必要がないと判断して、上記ステップ７０１に戻り、上述した処理を繰り返す。
【０１０３】
これに対して、実装制御定数と算出制御定数との差の絶対値が許容値２を越えている場合は、ステップ７０７に進み、前記実施例１と同様の手法で実装制御定数を補正する。
【０１０４】
以上説明した本実施例６では、検出応答特性と実装応答特性との誤差を含むシミュレーションにより制御定数を算出するようにしたので、空燃比センサ２４が劣化しても、その応答特性の劣化度合いを考慮して、適正な制御定数を算出することができ、安定性、応答性の悪化を防止することができる。この場合、運転条件毎に補正係数等を持つ必要がなく、また、実装応答特性を補正する必要はない。
【実施例７】
【０１０５】
本発明の実施例７では、ＥＣＵ２７によって図２２の制御定数決定メインルーチンを実行することで、空燃比センサ２４の出力に重畳するノイズ成分が許容値を越えたときに、そのノイズ成分の大きさを含むシミュレーションにより制御定数を算出するようにしている。
【０１０６】
図２２の制御定数決定メインルーチンでは、前記実施例４（図１６）と同様の方法で、ノイズ成分検出手段により検出したノイズ成分の大きさが許容値１以上になったときに、ノイズ成分の大きさを算出する（ステップ７１１〜７１３）。
【０１０７】
この後、ステップ７１５に進み、プラントにノイズ成分の大きさを入力してシミュレーションを行い、制御定数を算出する。この後、ステップ７１６に進み、ＥＣＵ２７に実装された制御定数（実装応答特性）と上記ステップ７１５で算出した制御定数（算出制御定数）との差の絶対値が許容値２を越えているか否かを判定し、実装制御定数と算出制御定数との差の絶対値が許容値２を越えていない場合は、実装制御定数を補正する必要がないと判断して、上記ステップ７１１に戻り、上述した処理を繰り返す。
【０１０８】
これに対して、実装制御定数と算出制御定数との差の絶対値が許容値２を越えている場合は、ステップ７１７に進み、前記実施例１と同様の手法で実装制御定数を補正する。
【０１０９】
以上説明した本実施例７では、空燃比センサ２４の出力に重畳するノイズ成分の大きさを含むシミュレーションにより制御定数を算出するようにしたので、空燃比センサ２４の劣化やエンジン１１の劣化等によりセンサの出力にノイズ成分が重畳しても、そのノイズ成分の影響を排除した適正な制御定数を算出することができ、制御の安定性、応答性の悪化を防止することができる。
【実施例８】
【０１１０】
上記実施例１〜７のうちの２つの実施例の手法によって２つの制御定数を算出して、２つの制御定数を比較して安定性が高い方の制御定数を選択するようにしても良い。
【０１１１】
例えば、図２３に示す本発明の実施例８では、前記実施例２と同様の手法でゲイン余裕又は位相余裕を用いて制御定数Ｇ１を算出する第１の算出手段９０１と、前記実施例５と同様の手法で空燃比センサ２４の応答特性を模擬したプラントの入力又は出力を最適挙動とする制御定数Ｇ２をシミュレーションにより算出する第２の算出手段９０２とを備え、前記第１の算出手段９０１で算出された制御定数Ｇ１と前記第２の算出手段９０２で算出された制御定数Ｇ２とを比較して安定性が高い方を選択する（９０３）。このようにすれば、２種類の手法で算出した２つの制御定数Ｇ１，Ｇ２の中から、より安定性を重視した制御定数を選択することができ、安全かつ正確な制御定数での制御が可能となる。
【実施例９】
【０１１２】
図２４に示す本発明の実施例９では、前記実施例６と同様の手法で検出応答特性と実装応答特性との誤差を含むシミュレーションにより制御定数Ｇ３を算出する第３の算出手段９１１と、前記実施例７と同様の手法で空燃比センサ２４の出力に重畳するノイズ成分の大きさを含むシミュレーションにより制御定数Ｇ４を算出する第４の算出手段９１２とを備え、前記第３の算出手段９１１で算出された制御定数Ｇ３と前記第４の算出手段９１２で算出された制御定数Ｇ４とを比較して安定性が高い方を選択する（９１３）。このようにすれば、空燃比センサ２４の劣化等にて発生するすべての状況を考慮して算出した２つの制御定数Ｇ３，Ｇ４の中から、より安定性を重視した制御定数を選択することができて、安全かつ正確な制御定数での制御が可能となる。
【実施例１０】
【０１１３】
図２５に示す本発明の実施例１０では、シミュレーションによりプラントの出力を最適とする制御定数Ｇ５を算出する第５の算出手段９２１と、シミュレーションによりプラントの入力を最適とする制御定数Ｇ６を算出する第６の算出手段９２２とを備え、前記第５の算出手段９２１で算出された制御定数Ｇ５と前記第６の算出手段９２２で算出された制御定数Ｇ６とを比較して安定性が高い方を選択する（９２３）。このようにすれば、プラントの入力と出力の両方を考慮して安定性の高い制御定数を設定することができる。
【実施例１１】
【０１１４】
図２６に示す本発明の実施例１０では、制御定数を所定の運転条件（エンジン負荷、エンジン回転速度等）で算出し、この所定の運転条件と算出した制御定数との関係に基づいて他の運転条件の制御定数を推定するようにしている。
【０１１５】
このようにすれば、運転条件毎に最適となる制御定数を算出する処理を多数回繰り返す必要がなくなり、検出工数・算出工数低減が可能となる。しかも、全領域の制御定数を瞬時に変更することが可能であるため、故障による排出ガス悪化に瞬時に対応可能である。更に、エンジン運転中では計測不可能な領域（過渡的には使用するが、定常的に運転し続けることが困難な運転条件のような領域）の制御定数の推測が可能となる。
【実施例１２】
【０１１６】
図２７に示す本発明の実施例１１では、ある運転条件でのゲイン余裕又は位相余裕で制御定数を算出し、前記ある運転条件でのゲイン余裕又は位相余裕と算出した制御定数との関係に基づいて他の運転条件での制御定数を推定するようにしている。
【０１１７】
このようにすれば、運転条件毎に最適挙動を変化させたい場合でも、運転条件毎にゲイン余裕又は位相余裕を変更して最適となる制御定数を算出する処理を多数回繰り返す必要がなくなり、検出工数・算出工数低減が可能となる。その他、前記実施例１１と同様の効果を得ることができる。
【０１１８】
［その他の実施例］
上記各実施例のうちの３つ以上の実施例の手法によって３つ以上の制御定数を算出して、３つ以上の制御定数の中から安定性が最も高い制御定数を選択するようにしても良い。
【０１１９】
また、実装制御定数を、最大の余裕を持たせた定数にしておき、応答特性の誤差やノイズ成分の大きさに合わせて余裕を狭める（制御定数を大きくする）方向にのみ変更するようにしても良い。
【０１２０】
或は、実装制御定数を余裕のない定数（つまり、応答特性の誤差・ノイズ成分＝０の状態と仮定）にしておき、応答特性の誤差・ノイズ成分の大きさに合わせて余裕を持たせる方向にのみ変更するようにしても良い。
【０１２１】
また、制御定数を大きくする方向（余裕を狭める方向）には動かさず、安定方向にのみ制御定数を変更するようにしても良い。
また、制御定数の変更を禁止する禁止条件として、周りの制御定数と飛びぬけて異なるとき、フィードバック中等という条件を用いても良い。
【０１２２】
また、検出した応答特性は、Ｎ回検出の平均値を使用するようにしても良い。
また、マイコンの処理負荷軽減のため、予めノイズやセンサの応答特性誤差と制御定数の関係をシミュレーションにより算出して実装しておき、この定数を使用するようにしても良い。（マイコンの処理負荷軽減の為に予めマップを実装しておき、そのマップから定数を引いてきても良い。）
【図面の簡単な説明】
【０１２３】
【図１】本発明の実施例１におけるエンジン制御システム全体の概略構成図である。
【図２】実施例１の応答特性検出方法を説明するタイムチャートである。
【図３】実施例１の空燃比センサの異常診断方法を説明するタイムチャートである。
【図４】実施例１の空燃比センサ応答特性検出メインルーチンの処理の流れを示すフローチャートである。
【図５】実施例１の無駄時間算出ルーチンの処理の流れを示すフローチャートである。
【図６】実施例１のｎ次遅れ特性算出ルーチンの処理の流れを示すフローチャートである。
【図７】実施例１の制御定数決定メインルーチンの処理の流れを示すフローチャートである。
【図８】実施例１の実装制御定数補正ルーチンの処理の流れを示すフローチャートである。
【図９】実施例１の空燃比フィードバック実行中の実装制御定数の補正例を示すタイムチャートである。
【図１０】実施例１の空燃比フィードバック停止中の実装制御定数の補正例を示すタイムチャートである。
【図１１】実施例１のセンサ異常判定ルーチンの処理の流れを示すフローチャートである。
【図１２】実施例２の空燃比フィードバック制御系のブロック図である。
【図１３】実施例２の空燃比フィードバック制御系の伝達関数とゲイン余裕又は位相余裕との関係を説明する図である。
【図１４】実施例３の制御定数決定メインルーチンの処理の流れを示すフローチャートである。
【図１５】応答特性の誤差（ノイズ成分の大きさ）に応じてゲイン余裕又は位相余裕を算出するマップの一例を示す図である。
【図１６】実施例４の制御定数決定メインルーチンの処理の流れを示すフローチャートである。
【図１７】実施例５のシミュレーションのモデルを説明する図である。
【図１８】実施例５の制御定数決定メインルーチンの処理の流れを示すフローチャートである。
【図１９】燃料ステップ入力後のプラントの出力λの挙動を説明するタイムチャートである。
【図２０】プラントの出力λの理想的な波形を説明するタイムチャートである。
【図２１】実施例６の制御定数決定メインルーチンの処理の流れを示すフローチャートである。
【図２２】実施例７の制御定数決定メインルーチンの処理の流れを示すフローチャートである。
【図２３】実施例８の制御定数選択メインルーチンの処理の流れを示すフローチャートである。
【図２４】実施例９の制御定数選択メインルーチンの処理の流れを示すフローチャートである。
【図２５】実施例１０の制御定数選択メインルーチンの処理の流れを示すフローチャートである。
【図２６】実施例１１の制御定数の推定手法を説明する図である。
【図２７】実施例１２の制御定数の推定手法を説明する図である。
【符号の説明】
【０１２４】
１１…エンジン（内燃機関）、１２…吸気管、１５…スロットルバルブ、１８…吸気管圧力センサ、１９…吸気マニホールド、２０…燃料噴射弁、２２…排気管、２３…触媒、２４…空燃比センサ、２７…ＥＣＵ（空燃比制御手段，応答特性検出手段，制御定数算出手段，異常判定手段，検出手段）、３２…警告ランプ（警告手段）
【図１】
2006266094.tif 000003
【図２】
2006266094.tif 000004
【図３】
2006266094.tif 000005
【図４】
2006266094.tif 000006
【図５】
2006266094.tif 000007
【図６】
2006266094.tif 000008
【図７】
2006266094.tif 000009
【図８】
2006266094.tif 000010
【図９】
2006266094.tif 000011
【図１０】
2006266094.tif 000012
【図１１】
2006266094.tif 000013
【図１２】
2006266094.tif 000014
【図１３】
2006266094.tif 000015
【図１４】
2006266094.tif 000016
【図１５】
2006266094.tif 000017
【図１６】
2006266094.tif 000018
【図１７】
2006266094.tif 000019
【図１８】
2006266094.tif 000020
【図１９】
2006266094.tif 000021
【図２０】
2006266094.tif 000022
【図２１】
2006266094.tif 000023
【図２２】
2006266094.tif 000024
【図２３】
2006266094.tif 000025
【図２４】
2006266094.tif 000026
【図２５】
2006266094.tif 000027
【図２６】
2006266094.tif 000028
【図２７】
2006266094.tif 000029