(57)【要約】【課題】無駄時間のリッチ方向／リーン方向の非対称劣化による空燃比制御精度の悪化を比較的簡単な構成で低減できるようにする。【解決手段】エンジン１１に噴射する燃料量を変化させてから空燃比センサ２４の出力が変化するまでの無駄時間の劣化度合をリッチ方向とリーン方向とで別々に検出すると共に、空燃比センサ２４の出力の微分値がプラス値であるか否かで、リーン側制御特性変更期間とリッチ側制御特性変更期間とを判別し、リーン側制御特性変更期間では、リーン方向の無駄時間劣化度合が大きくなるほど、空燃比フィードバック制御の制御周期を長く設定し、リッチ側制御特性変更期間では、リッチ方向の無駄時間劣化度合が大きくなるほど、空燃比フィードバック制御の制御周期を長く設定する。各方向の無駄時間劣化度合は、検出時（制御時）の無駄時間とその初期値（設計値）との比で算出される。【選択図】図１
2009257221.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排出ガスの空燃比を検出する空燃比センサの検出値に基づいて内燃機関に噴射する燃料量をフィードバック制御する空燃比フィードバック制御系と、
内燃機関に噴射した燃料量の変化が前記空燃比センサの出力の変化として現れるまでの無駄時間を、空燃比の変化方向がリッチ方向の無駄時間とリーン方向の無駄時間とに分けて検出する無駄時間検出手段と、
前記無駄時間検出手段で検出した各方向の無駄時間と前記フィードバック制御の初期設定に用いられた各々の初期値との比に基づいてリッチ方向の無駄時間劣化度合とリーン方向の無駄時間劣化度合をそれぞれ算出する無駄時間劣化度合算出手段と、
前記リッチ方向の無駄時間劣化度合に基づいて前記空燃比フィードバック制御系の制御特性を変更するリッチ側制御特性変更期間と前記リーン方向の無駄時間劣化度合に基づいて前記空燃比フィードバック制御系の制御特性を変更するリーン側制御特性変更期間とを判別して各期間毎に前記空燃比フィードバック制御系の制御特性を各方向の無駄時間劣化度合に応じた制御特性に変更する制御特性変更手段と
を備えていることを特徴とする内燃機関の空燃比制御装置。
【請求項２】
前記空燃比センサの応答時間を空燃比の変化方向がリッチ方向の応答時間とリーン方向の応答時間とに分けて検出する応答時間検出手段と、
前記応答時間検出手段で検出した各方向の応答時間と前記フィードバック制御の初期設定に用いられた各々の初期値との比に基づいてリッチ方向の応答時間劣化度合とリーン方向の応答時間劣化度合をそれぞれ算出する応答時間劣化度合算出手段と、
前記各方向の無駄時間劣化度合及び前記各方向の応答時間劣化度合に基づいて前記空燃比フィードバック制御系のフィードバック補正量の制限値を補正するフィードバック補正量制限値補正手段と
を備えていることを特徴とする請求項１に記載の内燃機関の空燃比制御装置。
【請求項３】
前記制御特性変更手段は、前記空燃比フィードバック制御系の制御特性を変更する手段として制御周期を変更することを特徴とする請求項１又は２に記載の内燃機関の空燃比制御装置。
【請求項４】
前記制御特性変更手段は、前記空燃比センサの出力の微分値に基づいて前記リッチ側制御特性変更期間と前記リーン側制御特性変更期間とを判別することを特徴とする請求項１乃至３のいずれかに記載の内燃機関の空燃比制御装置。
【請求項５】
前記制御特性変更手段は、前記空燃比センサの出力の微分値がプラス値となる期間を前記リーン側制御特性変更期間と判別し、前記空燃比センサの出力の微分値がマイナス値となる期間を前記リッチ側制御特性変更期間と判別することを特徴とする請求項４に記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排出ガスの空燃比を検出する空燃比センサの検出値に基づいて内燃機関に噴射する燃料量をフィードバック制御する内燃機関の空燃比制御装置に関する発明である。
【背景技術】
【０００２】
近年の電子制御化された自動車は、内燃機関（エンジン）の排出ガスの空燃比を検出する空燃比センサを排気管に設置し、この空燃比センサの出力に基づいて排出ガスの空燃比を目標空燃比付近に維持するように内燃機関に噴射する燃料量（混合気の空燃比）をフィードバック制御することで、排気エミッションや燃費を向上させるようにしている。このような空燃比フィードバック制御系は、排出ガスの空燃比を検出する空燃比センサの応答特性が劣化すると、空燃比制御精度が悪化し、排気エミッション等の悪化に繋がってしまう。
【０００３】
この対策として、特許文献１（特許第３５８１７３７号公報）に記載されているように、フィードバック制御に用いる適応パラメータに基づいて空燃比センサの応答特性の劣化の有無を判定し、その結果、空燃比センサの応答特性の劣化が検出されたときに、フィードバック制御のゲインを小さくするようにしたものがある。
【特許文献１】特許第３５８１７３７号公報（第１４頁等参照）
【特許文献２】特開２００７−１８７１２９号公報（第２頁等参照）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一般に、空燃比フィードバック制御系は、エンジンに噴射する燃料量を変化させてから空燃比センサの出力が変化するまでの制御対象の動特性を、無駄時間＋１次遅れ特性（応答時間）でモデル化して設計されている。将来、益々厳しくなる排出ガス規制（低エミッション化の要求）に対応するには、無駄時間の劣化による空燃比制御精度の悪化を低減する必要が生じてきている。
【０００５】
無駄時間は、空燃比がリッチ方向に変化する場合とリーン方向に変化する場合のいずれの方向でも検出できるが、無駄時間の劣化は、リッチ方向とリーン方向とで別々に発生し、リッチ方向とリーン方向のいずれか一方が他方よりも先に劣化が進む“非対称劣化”が発生することがある。このため、上記特許文献１のように、空燃比センサの応答特性の劣化が検出されたときにフィードバック制御のゲインを小さくするだけでは、無駄時間のリッチ方向／リーン方向の非対称劣化に対応したフィードバック制御を行うことは困難であり、無駄時間のリッチ方向／リーン方向の非対称劣化による排気エミッションの悪化を十分に低減することは困難である。
【０００６】
また、無駄時間のリッチ方向／リーン方向の非対称劣化の問題に関して、特許文献２（特開２００７−１８７１２９号公報）に記載されているように、無駄時間をリッチ方向とリーン方向とでそれぞれ別々に検出し、リッチ方向の検出値とリーン方向の検出値をそれぞれ平均化して基準値と比較することで空燃比センサの劣化を検出するようにしたものがある。
【０００７】
しかし、この特許文献２の技術は、空燃比センサのリッチ方向／リーン方向の非対称劣化を検出して空燃比センサの劣化診断を行うだけであり、その非対称劣化の検出結果を空燃比フィードバック制御に反映させる機能がないため、非対称劣化による空燃比制御精度の悪化を低減することはできない。要するに、従来の技術では、無駄時間のリッチ方向／リーン方向の非対称劣化に個別に対応できる制御系構造とすることが困難であったり、非常に複雑な構成になると考えられていた。
【０００８】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、無駄時間のリッチ方向／リーン方向の非対称劣化による空燃比制御精度の悪化を比較的簡単な構成で低減することができる内燃機関の空燃比制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１に係る発明は、
［Ａ］内燃機関の排出ガスの空燃比を検出する空燃比センサの検出値に基づいて内燃機関に噴射する燃料量をフィードバック制御する空燃比フィードバック制御系と、
［Ｂ］内燃機関に噴射した燃料量の変化が前記空燃比センサの出力の変化として現れるまでの無駄時間を、空燃比の変化方向がリッチ方向の無駄時間とリーン方向の無駄時間とに分けて検出する無駄時間検出手段と、
［Ｃ］前記無駄時間検出手段で検出した各方向の無駄時間と前記フィードバック制御の初期設定に用いられた各々の初期値との比に基づいてリッチ方向の無駄時間劣化度合とリーン方向の無駄時間劣化度合をそれぞれ算出する無駄時間劣化度合算出手段と、
［Ｄ］前記リッチ方向の無駄時間劣化度合に基づいて前記空燃比フィードバック制御系の制御特性を変更するリッチ側制御特性変更期間と前記リーン方向の無駄時間劣化度合に基づいて前記空燃比フィードバック制御系の制御特性を変更するリーン側制御特性変更期間とを判別して各期間毎に前記空燃比フィードバック制御系の制御特性を各方向の無駄時間劣化度合に応じた制御特性に変更する制御特性変更手段とを備えた構成としたものである。
【００１０】
本発明のように、リッチ方向の無駄時間劣化度合に基づいて制御特性を変更するリッチ側制御特性変更期間と、リーン方向の無駄時間劣化度合に基づいて制御特性を変更するリーン側制御特性変更期間とを判別するようにすれば、空燃比フィードバック制御系の制御特性を適正なタイミングで各方向の無駄時間劣化度合に応じた適正な制御特性に変更することができ、排気エミッションの悪化を最も招きやすい無駄時間の非対称劣化による制御結果のハンチング（発散）を比較的簡単な構成で防止できる。
【００１１】
ところで、無駄時間劣化度合と応答時間劣化度合との差が大きくなると、オーバーシュートが発生しやすくなる傾向がある。
【００１２】
この対策として、請求項２のように、空燃比センサの応答時間を空燃比の変化方向がリッチ方向の応答時間とリーン方向の応答時間とに分けて検出する応答時間検出手段と、前記応答時間検出手段で検出した各方向の応答時間と前記フィードバック制御の初期設定に用いられた各々の初期値との比に基づいてリッチ方向の応答時間劣化度合とリーン方向の応答時間劣化度合をそれぞれ算出する応答時間劣化度合算出手段と、前記各方向の無駄時間劣化度合及び前記各方向の応答時間劣化度合に基づいて前記空燃比フィードバック制御系のフィードバック補正量の制限値（ガード値）を補正するフィードバック補正量制限値補正手段とを備えた構成としても良い。この構成では、各方向の無駄時間劣化度合と各方向の応答時間劣化度合に基づいて空燃比フィードバック制御系のフィードバック補正量の制限値を補正するようにしているため、無駄時間劣化度合と応答時間劣化度合との差が大きくなってオーバーシュートが発生しやすい制御状態になれば、フィードバック補正量の制限値（上下限のガード値）を狭めてオーバーシュートを抑制するという制御が可能となり、オーバーシュートによる排気エミッションの悪化を防止することができる。
【００１３】
空燃比フィードバック制御系の制御特性は、例えば制御ゲイン等によっても変更可能であるが、請求項３のように、空燃比フィードバック制御系の制御特性を変更する手段として制御周期を変更するようにすると良い。制御周期を長くすれば、実質的に制御ゲインを小さくするのと同様のハンチング抑制効果が得られる。制御周期の変更によって、比較的簡単な処理で空燃比フィードバック制御系の制御特性を変更することができ、ソフトウエアの複雑化やデータ量膨大化を回避することができる。
【００１４】
本発明は、請求項４のように、空燃比センサの出力の微分値に基づいてリッチ側制御特性変更期間とリーン側制御特性変更期間とを判別するようにすると良い。空燃比センサの出力の微分値から空燃比センサの出力の変化方向を判別できるため、空燃比センサの出力が増加する方向（リーン方向）に変化する期間をリーン側制御特性変更期間とし、空燃比センサの出力が低下する方向（リッチ方向）に変化する期間をリッチ側制御特性変更期間とすれば良く、空燃比センサの出力の微分値を用いれば、リーン側制御特性変更期間とリッチ側制御特性変更期間とを適正なタイミングで切り替えることができる。
【００１５】
この場合、請求項５のように、空燃比センサの出力の微分値がプラス値となる期間をリーン側制御特性変更期間と判別し、空燃比センサの出力の微分値がマイナス値となる期間をリッチ側制御特性変更期間と判別するようにすれば良い。ここで、空燃比センサの出力の微分値がプラス値であれば、空燃比センサの出力が増加する方向（リーン方向）に変化していることを意味し、空燃比センサの出力の微分値がマイナス値であれば、空燃比センサの出力が低下する方向（リッチ方向）に変化していることを意味する。これにより、極めて簡単な処理で、リーン側制御特性変更期間とリッチ側制御特性変更期間とを適正なタイミングで切り替えることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を実施するための最良の形態を具体化した一実施例を説明する。
まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。
内燃機関であるエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、モータ１０によって開度調節されるスロットルバルブ１５とスロットル開度を検出するスロットル開度センサ１６とが設けられている。
【００１７】
更に、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７には、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。また、エンジン１１のシリンダヘッドには、各気筒毎に点火プラグ２１が取り付けられ、各点火プラグ２１の火花放電によって筒内の混合気に着火される。
【００１８】
また、エンジン１１の吸気バルブ２８には、該吸気バルブ２８の開閉タイミング（吸気バルブタイミング）を可変する可変吸気バルブタイミング機構２９が設けられ、排気バルブ３０には、該排気バルブ３０の開閉タイミング（排気バルブタイミング）を可変する可変排気バルブタイミング機構３１が設けられている。
【００１９】
一方、エンジン１１の排気管２２には、排出ガス中のＣＯ，ＨＣ，ＮＯｘ等を浄化する三元触媒等の触媒２３が設けられ、この触媒２３の上流側に、排出ガスの空燃比を検出する空燃比センサ２４が設けられている。
【００２０】
また、エンジン１１のシリンダブロックには、冷却水温を検出する冷却水温センサ２５や、エンジン１１のクランク軸が一定クランク角回転する毎にパルス信号を出力するクランク角センサ２６が取り付けられている。このクランク角センサ２６の出力信号に基づいてクランク角やエンジン回転速度が検出される。
【００２１】
これら各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）２７に入力される。このＥＣＵ２７は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、空燃比センサ２４で検出した排出ガスの空燃比を目標空燃比に一致させるように状態フィードバックを実行して空燃比補正係数ＦＡＦ（フィードバック補正量）を算出して、エンジン１１に噴射する燃料量（混合気の空燃比）をフィードバック制御する空燃比フィードバック制御を実行する。
【００２２】
この空燃比フィードバック制御系は、エンジン１１に噴射する燃料量を変化させてから空燃比センサ２４の出力が変化するまでの制御対象の動特性を無駄時間＋１次遅れ特性で表現してモデル化して設計されている。尚、この制御対象の動特性を無駄時間＋２次遅れ特性でモデル化しても良く、要は、無駄時間＋ｎ次遅れ特性（ｎは正の整数）でモデル化すれば良い。
【００２３】
一般に、状態フィードバックの制御パラメータＦ１〜Ｆd+1 ，Ｆ０に基づいて空燃比補正係数ＦＡＦ(i) を算出する場合は、次式が用いられることが多い。
ＦＡＦ(i) ＝Ｆ１・λ(i) ＋Ｆ２・ＦＡＦ(i-1) ＋Ｆ３・ＦＡＦ(i-2) ＋…
…＋Ｆd+1 ・ＦＡＦ(i-d) ＋Ｆ０・Σ（λref −λ(i) ）
【００２４】
ここで、λ(i) は現在の空燃比（空気過剰率）、ＦＡＦ(i-1) 〜ＦＡＦ(i-d) は過去の空燃比補正係数、λref は目標空燃比（目標空気過剰率）である。ｄは、検出した無駄時間Ｌ（ｓｅｃ）を演算間隔（噴射間隔ｄｔ）で割り算した値の小数点以下を切り捨てて整数化した無駄時間である。
【００２５】
この空燃比補正係数の演算方法では、制御パラメータＦ１〜Ｆd+1 ，Ｆ０を運転条件等に応じて切り換えると、その瞬間に、空燃比補正係数ＦＡＦが一時的に乱れ、その結果、空燃比λが一時的に乱れる現象が発生する可能性がある。
【００２６】
そこで、本実施例１では、今回の空燃比補正係数補正値ΔＦＡＦ(i) を算出して、今回の空燃比補正係数補正値ΔＦＡＦ(i) を前回の空燃比補正係数ＦＡＦ(i-1) に加算して今回の空燃比補正係数ＦＡＦ(i) を求めるようにしている。
ＦＡＦ(i) ＝ＦＡＦ(i-1) ＋ΔＦＡＦ(i)
【００２７】
今回の空燃比補正係数補正値ΔＦＡＦ(i) は、次式により算出する。
ΔＦＡＦ(i) ＝Ｆ１・Δφ(i) ＋Ｆ２・ΔＦＡＦ(i-1) ＋…
…＋Ｆd+1 ・ΔＦＡＦ(i-d) ＋Ｆd+2 ・ΔＦＡＦ(i-d-1)
＋Ｆ０・（φref −φ(i) ）
＝Ｆ１・Δφ(i) ＋Ｆ２・｛ＦＡＦ(i-1) −ＦＡＦ(i-2) ｝＋…
…＋Ｆd+2 ・｛ＦＡＦ(i-d-1) −ＦＡＦ(i-d-2) ｝
＋Ｆ０・（φref −φ(i) ）
【００２８】
ここで、Δφ(i) は燃料過剰率の変化量、つまりΔφ(i) ＝φ(i) −φ(i-1) である。また、ΔＦＡＦ(i-1) 〜ΔＦＡＦ(i-d-1) は過去の空燃比補正係数補正値であり、φref は目標燃料過剰率である。尚、上式では、空燃比の代用情報として燃料過剰率φを用いたが、空気過剰率λを用いても良いことは言うまでもない。
【００２９】
上式を用いて空燃比補正係数ＦＡＦを演算するようにすれば、状態フィードバックの制御パラメータＦ１〜Ｆd+2 ，Ｆ０を運転条件等に応じて切り換えても、空燃比補正係数ＦＡＦが乱れることがなくなり、空燃比が乱れる現象が発生しなくなる。これにより、制御パラメータＦ１〜Ｆd+2 ，Ｆ０を運転条件等に応じて切り換えながら、安定した空燃比制御を行うことが可能となる。
【００３０】
ところで、将来、益々厳しくなる排出ガス規制（低エミッション化の要求）に対応するには、無駄時間の劣化や応答時間の劣化による空燃比制御精度の悪化を低減する必要が生じてきている。
【００３１】
図２に示すように、エンジン１１に噴射する燃料量（空燃比）を変化させてから空燃比センサ２４の出力が変化するまでの無駄時間と空燃比センサ２４の応答時間は、空燃比がリッチ方向に変化する場合とリーン方向に変化する場合のいずれの方向でも検出できるが、無駄時間の劣化と応答時間の劣化は、それぞれリッチ方向とリーン方向とで別々に発生し、リッチ方向とリーン方向のいずれか一方が他方よりも先に劣化が進む“非対称劣化”が発生することがある。
【００３２】
本実施例では、図２に示すように、リーン方向の無駄時間の初期値（設計値）をＬL0、リッチ方向の無駄時間の初期値（設計値）をＬR0、リーン方向の応答時間の初期値（設計値）をＴL0、リッチ方向の応答時間の初期値（設計値）をＴR0とする。そして、劣化時（検出時）のリーン方向の無駄時間をＬL 、リッチ方向の無駄時間をＬR 、リーン方向の応答時間をＴL 、リッチ方向の応答時間をＴR とする。ここで、応答時間は、空燃比センサ２４の出力が空燃比変化前の定常値から空燃比変化後の定常値に変化（収束）するまでの出力変化量の所定割合（例えば６３％）を越えるまでの時間である。
【００３３】
無駄時間や応答時間のリッチ方向／リーン方向の非対称劣化が進むと、空燃比フィードバック制御系の制御状態がハンチング（発散）したり、オーバーシュートが発生しやすくなり、排気エミッションが悪化する。本発明者の実験・研究結果によれば、無駄時間のリッチ方向の劣化度合とリーン方向の劣化度合のうち、小さい方の劣化度合に合わせて空燃比フィードバック制御系の制御特性を設定すると、ハンチング（発散）が発生しやすくなることが判明している。一方、無駄時間の大きい方の劣化度合に合わせて空燃比フィードバック制御系の制御特性を設定すれば、ハンチングを防止できるが、この場合でも、無駄時間の劣化度合と応答時間の劣化度合との差が大きくなると、オーバーシュートが発生しやすくなることが判明している。
【００３４】
そこで、本実施例では、無駄時間と応答時間について、それぞれリッチ方向とリーン方向の劣化度合を検出して、これら４つの劣化度合に基づいて、空燃比フィードバック制御系のフィードバック補正量である空燃比補正係数ＦＡＦに対するリッチ側制限値ＦＡＦＧＲとリーン側制限値ＦＡＦＧＬを補正する。更に、空燃比センサ２４の出力の微分値に基づいてリッチ側制御特性変更期間とリーン側制御特性変更期間とを判別し、リッチ側制御特性変更期間では、リッチ方向の無駄時間劣化度合に基づいて空燃比フィードバック制御の制御周期を変更することで空燃比フィードバック制御の制御特性を変更し、リーン側制御特性変更期間では、リーン方向の無駄時間劣化度合に基づいて空燃比フィードバック制御の制御周期を変更することで空燃比フィードバック制御の制御特性を変更するようにしている。具体的には、リッチ側制御特性変更期間では、リッチ方向の無駄時間劣化度合が大きくなるほど、制御周期を長く設定し、リーン側制御特性変更期間では、リーン方向の無駄時間劣化度合が大きくなるほど、制御周期を長く設定するようにしている。
【００３５】
この場合、リーン方向の無駄時間劣化度合ＤＬL は、検出時（制御時）のリーン方向無駄時間ＬL とその初期値ＬL0との比で算出され、リッチ方向の無駄時間劣化度合ＤＬR は検出時（制御時）のリッチ方向の無駄時間ＬR とその初期値ＬR0との比で算出される。
リーン方向の無駄時間劣化度合：ＤＬL ＝ＬL ／ＬL0
リッチ方向の無駄時間劣化度合：ＤＬR ＝ＬR ／ＬR0
【００３６】
また、リーン方向の応答時間劣化度合ＤＴL は、検出時（制御時）のリーン方向の応答時間ＴL とその初期値ＴL0との比で算出され、リッチ方向の応答時間劣化度合ＤＴR は、検出時（制御時）のリッチ方向の応答時間ＴR とその初期値ＴR0との比で算出される。
リーン方向の応答時間劣化度合：ＤＴL ＝ＴL ／ＴL0
リッチ方向の応答時間劣化度合：ＤＴR ＝ＴR ／ＴR0
【００３７】
本実施例では、４つの劣化度合ＤＬL ，ＤＬR ，ＤＴL ，ＤＴR に基づいて空燃比補正係数ＦＡＦに対するリッチ側制限値ＦＡＦＧＲとリーン側制限値ＦＡＦＧＬを次式により算出する。
ＦＡＦＧＲ＝ＣＦＡＦＧＲ・ＦＡＦＧＲ０
ＦＡＦＧＬ＝ＣＦＡＦＧＬ・ＦＡＦＧＬ０
ＣＦＡＦＧＲ：リッチ側制限値補正係数
ＣＦＡＦＧＬ：リーン側制限値補正係数
ＦＡＦＧＲ０：リッチ側制限値の初期値（設計値）
ＦＡＦＧＬ０：リーン側制限値の初期値（設計値）
【００３８】
ここで、リッチ側制限値補正係数ＣＦＡＦＧＲは、後述する図１８のマップを検索して、リッチ方向の応答時間劣化度合ＤＴR と代表無駄時間劣化度合ＤＬ（各方向の無駄時間劣化度合ＤＬR ，ＤＬL のうちの大きい方）との比ＤＴR ／ＤＬに基づいて算出され、リーン側制限値補正係数ＣＦＡＦＧＬは、リーン方向の応答時間劣化度合ＤＴL と代表無駄時間劣化度合ＤＬとの比ＤＴL ／ＤＬに基づいて算出される。これにより、リッチ側制限値ＦＡＦＧＲとリーン側制限値ＦＡＦＧＬがリッチ側とリーン側とでそれぞれ最適な制限値に設定される。
【００３９】
以上説明した本実施例の空燃比フィードバック制御系の構成は、図３に機能ブロック図で示されている。この空燃比フィードバック制御系の各機能は、ＥＣＵ２７が実行する図４乃至図１７の各プログラムによって実現される。以下、これら各プログラムの処理内容を説明する。
【００４０】
［燃料噴射量演算プログラム］
図４の燃料噴射量演算プログラムは、各気筒の噴射タイミングに同期して起動され、次のようにして燃料噴射量ＴＡＵを算出する。まず、ステップ３０１で、現在のエンジン運転状態に応じてマップ等により基本噴射量Ｔｐを算出する。この後、ステップ３０２に進み、基本噴射量Ｔｐに対する各種の補正係数ＦＡＬＬ（例えば冷却水温による補正係数、加減速時の補正係数等）を算出し、次のステップ３０３で、空燃比フィードバック条件が成立しているか否かを判定する。もし、空燃比フィードバック条件が成立していなければ、空燃比補正係数ＦＡＦを「１」にセットして、オープンループ制御により空燃比を制御する。
【００４１】
一方、空燃比フィードバック条件が成立していれば、ステップ３０５に進み、排出ガスの空燃比を触媒２３の浄化ウインドウ（理論空燃比付近）内に収めるように目標燃料過剰率φref を設定し、次のステップ３０６で、後述する図１３の空燃比フィードバック制御プログラムを実行して空燃比補正係数ＦＡＦを算出する。
【００４２】
以上のようにして、ステップ３０４又は３０６で空燃比補正係数ＦＡＦを設定した後、ステップ３０７に進み、基本噴射量Ｔｐに空燃比補正係数ＦＡＦと各種補正係数ＦＡＬＬを乗算して燃料噴射量ＴＡＵを求める。これにより、排出ガスの空燃比を触媒２３の浄化ウインドウ内に制御する。
【００４３】
［制御対象特性値演算プログラム］
図５の制御対象特性値演算プログラムは、各気筒の噴射タイミングに同期して起動され、制御対象のモデル時定数Ｔと無駄時間Ｌを次のようにして算出する。
【００４４】
本プログラムが起動されると、まず、ステップ４０１で、吸入空気量Ｑａを読み込み、次のステップ４０２で、基本モデル時定数Ｔsen と基本無駄時間Ｌsen を、それぞれ吸入空気量Ｑａをパラメータとするマップ等により算出する。
【００４５】
この後、ステップ４０３に進み、負荷（吸入空気量Ｑａ／エンジン回転速度Ｎｅ）と冷却水温ＴＨＷを読み込んだ後、ステップ４０４に進み、時定数補正係数α1 と無駄時間補正係数α2 を、それぞれ負荷と冷却水温ＴＨＷをパラメータとするマップにより算出する。尚、この補正係数α1 ，α2 の算出マップに用いる運転パラメータは、負荷と冷却水温ＴＨＷの他に、エンジン回転速度Ｎｅや始動後経過時間を用いるようにしても良い。
【００４６】
各補正係数α1 ，α2 を算出した後、ステップ４０５に進み、基本モデル時定数Ｔsen 、基本無駄時間Ｌsen と、それぞれの補正係数α1 ，α2 を用いて、次式により制御対象のモデル時定数Ｔと無駄時間Ｌを算出して、本プログラムを終了する。
Ｔ＝（１＋α1 ）・Ｔsen
Ｌ＝（１＋α1 ）・Ｌsen
【００４７】
［噴射間隔演算プログラム］
図６の噴射間隔演算プログラムは、各気筒の噴射タイミングに同期して起動され、噴射間隔ｄｔを次のようにして算出する。
本プログラムが起動されると、まず、ステップ４１１で、エンジン回転速度Ｎｅ（ｒｐｍ）を読み込んだ後、ステップ４１２に進み、噴射間隔ｄｔを次式により算出して、本プログラムを終了する。
ｄｔ＝３０／Ｎｅ×気筒数
【００４８】
［減衰係数ζ、固有角周波数ω演算プログラム］
図７の減衰係数ζ、固有角周波数ω演算プログラムは、各気筒の噴射タイミングに同期して起動され、極配置法の演算に用いる減衰係数ζと固有角周波数ωを次のようにして算出する。
【００４９】
本プログラムが起動されると、まず、ステップ４２１で、吸入空気量Ｑａを読み込み、次のステップ４２２で、基本減衰係数ζsen と基本固有角周波数ωsen を、それぞれ吸入空気量Ｑａをパラメータとするマップにより算出する。
【００５０】
この後、ステップ４２３に進み、負荷（吸入空気量Ｑａ／エンジン回転速度Ｎｅ）と冷却水温ＴＨＷを読み込んだ後、ステップ４２４に進み、減衰係数補正係数α3 と固有角周波数補正係数α4 を、それぞれ負荷と冷却水温ＴＨＷをパラメータとするマップにより算出する。尚、この補正係数α3 ，α4 の算出マップに用いる運転パラメータは、負荷と冷却水温ＴＨＷの他に、エンジン回転速度や始動後経過時間を用いるようにしても良い。
【００５１】
各補正係数α3 ，α4 の算出後、ステップ４２５に進み、基本減衰係数ζsen 、基本固有角周波数ωsen と、それぞれの補正係数α3 ，α4 を用いて、次式により減衰係数ζと固有角周波数ωを算出して本プログラムを終了する。
ζ＝（１＋α3 ）・ζsen
ω＝（１＋α4 ）・ωsen
【００５２】
［モデルパラメータ演算プログラム］
図８のモデルパラメータ演算プログラムは、各気筒の噴射タイミングに同期して起動されて、モデルパラメータａ，ｂ1 ，ｂ2 を次のようにして算出する。
【００５３】
本プログラムが起動されると、まず、ステップ４３１で、モデル時定数Ｔ、制御対象の現在の特性で補正された無駄時間Ｌ、噴射間隔ｄｔを読み込み、次のステップ４３２で、噴射間隔ｄｔ（演算間隔）を基準にして換算した無駄時間ｄ（＝Ｌ／ｄｔ）を小数点以下を切り捨てて求めると共に、その切り捨て誤差Ｌ1 （＝Ｌ−ｄ・ｄｔ）を算出する。
【００５４】
この後、ステップ４３３に進み、モデル時定数Ｔと噴射間隔ｄｔを用いてモデルパラメータａを次式により算出する。
ａ＝ｅｘｐ（−ｄｔ／Ｔ）
【００５５】
この演算は、高性能のＣＰＵを必要とするため、現在の車載コンピュータのＣＰＵの演算能力では、ｅｘｐ（−ｄｔ／Ｔ）の演算を高速で行うことは困難であると思われる。そこで、本実施例１では、演算負荷を軽減するために、ｄｔ／Ｔが例えば０．３５以下の時は、ｅｘｐ（−ｄｔ／Ｔ）を次式により近似し、この近似式によりモデルパラメータａを算出する。
ａ＝１−ｄｔ／Ｔ＋０．５（ｄｔ／Ｔ）2
【００５６】
この近似式は、ｄｔ／Ｔが大きくなるに従って、演算誤差が大きくなるため、ｄｔ／Ｔが例えば０．３５よりも大きい領域では、予め、ｄｔ／Ｔとモデルパラメータａとの関係をテーブル化してＲＯＭに記憶しておき、このテーブルを検索して、現在のｄｔ／Ｔに応じたモデルパラメータａを求める。尚、ｄｔ／Ｔが、０．３５以下の時にも、予め設定したテーブルからモデルパラメータａを求めるようにしても良い。
【００５７】
この後、ステップ４３４に進み、モデルパラメータｂ1 ，ｂ2 の算出に用いる変数βを次式により算出する。
β＝ｅｘｐ｛−（ｄｔ−Ｌ1 ）／Ｔ｝
【００５８】
この変数βを算出する際も、演算負荷を軽減するために、（ｄｔ−Ｌ1 ）／Ｔが例えば０．３５以下の時は、ｅｘｐ｛−（ｄｔ−Ｌ1 ）／Ｔ｝を次式により近似し、この近似式により変数βを算出する。
β＝１−（ｄｔ−Ｌ1 ）／Ｔ＋０．５｛（ｄｔ−Ｌ1 ）／Ｔ｝2
【００５９】
この近似式は、（ｄｔ−Ｌ1 ）／Ｔが大きくなるに従って、演算誤差が大きくなるため、（ｄｔ−Ｌ1 ）／Ｔが例えば０．３５よりも大きい領域では、予め、（ｄｔ−Ｌ1 ）／Ｔと変数βとの関係をテーブル化してＲＯＭに記憶しておき、このテーブルを検索して現在の（ｄｔ−Ｌ1 ）／Ｔに応じた変数βを求める。尚、（ｄｔ−Ｌ1 ）／Ｔが０．３５以下の時にも、予め設定したテーブルから変数βを求めるようにしても良い。
【００６０】
この後、ステップ４３５に進み、変数βとモデルパラメータａを用いてモデルパラメータｂ1 ，ｂ2 を次式により算出する。
ｂ1 ＝１−β
ｂ2 ＝１−ｂ1 −ａ
【００６１】
［特性多項式の係数演算プログラム］
図９の特性多項式の係数演算プログラムは、各気筒の噴射タイミングに同期して起動され、制御モデルの無駄時間ｄ分の根を０とする極配置法に基づいて特性多項式の係数Ａ１，Ａ２を次のようにして算出する。尚、極配置法に関しては、本出願人が先に出願した特願２０００−１８９７３４号の明細書に詳細に記載されている。
【００６２】
本プログラムが起動されると、まず、ステップ４４１で、減衰係数ζ、応答時間に応じて補正された固有角周波数ω、噴射間隔ｄｔを読み込み、次のステップ４４２で、ω・ｄｔを上限ガード値（例えば０．６２８３）でガード処理する。つまり、ω・ｄｔが上限ガード値よりも大きい場合は、ω・ｄｔ＝上限ガード値にセットし、ω・ｄｔが上限ガード値以下の場合は、その時のω・ｄｔの値をそのまま用いる。このように、ω・ｄｔを上限ガード値でガード処理する理由は、ω・ｄｔの値が大きくなり過ぎると、制御精度が低下するためである。
【００６３】
ω・ｄｔのガード処理後、ステップ４４３に進み、特性多項式の係数Ａ１，Ａ２の算出に用いる変数ｅｚｗｄｔを次式により算出する。
ｅｚｗｄｔ＝ｅｘｐ（−ζ・ω・ｄｔ）
【００６４】
この変数ｅｚｗｄｔを算出する場合も、ＥＣＵ２７のＣＰＵ演算負荷を軽減するために、ζ・ω・ｄｔが例えば０．３５以下の時は、ｅｘｐ（−ζ・ω・ｄｔ）を次式により近似し、この近似式により変数ｅｚｗｄｔを算出する。
ｅｚｗｄｔ＝１−ζ・ω・ｄｔ＋０．５（ζ・ω・ｄｔ）2
【００６５】
この近似式は、ζ・ω・ｄｔが大きくなるに従って、演算誤差が大きくなるため、ζ・ω・ｄｔが例えば０．３５よりも大きい領域では、予め、ζ・ω・ｄｔと変数ｅｚｗｄｔとの関係をテーブル化してＲＯＭに記憶しておき、このテーブルを検索して現在のζ・ω・ｄｔに応じた変数ｅｚｗｄｔを求める。尚、ζ・ω・ｄｔが０．３５以下の時にも、予め設定したテーブルから変数ｅｚｗｄｔを求めるようにしても良い。
【００６６】
この後、ステップ４４４に進み、特性多項式の係数Ａ１，Ａ２の算出に用いる他の変数ｃｏｓｚｗｔを次式により算出する。
ｃｏｓｚｗｔ＝ｃｏｓ｛（１−ζ2 ）0.5 ・ω・ｄｔ｝
【００６７】
この変数ｃｏｓｚｗｔを算出する場合も、ＣＰＵの演算負荷を軽減するために次の近似式を用いる。
ｃｏｓｚｗｔ＝１−０．５（１−ζ2 ）（ω・ｄｔ）2
【００６８】
この後、ステップ４４５に進み、変数ｅｚｗｄｔ，ｃｏｓｚｗｔを用いて、特性多項式の係数Ａ１，Ａ２を次式により算出する。
Ａ１＝−２・ｅｚｗｄｔ・ｃｏｓｚｗｔ
Ａ２＝（ｅｚｗｄｔ）2
【００６９】
［制御パラメータ演算プログラム］
図１０の制御パラメータ演算プログラムは、各気筒の噴射タイミングに同期して起動され、状態フィードバックの制御パラメータＦ０〜Ｆd+2 を次のようにして算出する。
【００７０】
本プログラムが起動されると、まず、ステップ４５１で、制御モデルのモデルパラメータａ，ｂ1 ，ｂ2 を読み込み、次のステップ４５２で、特性多項式の係数Ａ１，Ａ２を読み込む。
【００７１】
この後、ステップ４５３に進み、モデルパラメータａ，ｂ1 ，ｂ2 と係数Ａ１，Ａ２を用いて制御パラメータＦ０〜Ｆd+2 を算出する。
例えば、ｄ＝６の場合は、次式により制御パラメータＦ０〜Ｆ８を算出する。
Ｆ０＝（１＋Ａ１＋Ａ２）／（ｂ1 ＋ｂ2 ）
Ｆ２＝−１−ａ−Ａ１
Ｆ３＝ａ−Ａ２＋（１＋ａ）・Ｆ２
Ｆ４＝（１＋ａ）・Ｆ３−ａ・Ｆ２
Ｆ５＝（１＋ａ）・Ｆ４−ａ・Ｆ３
Ｆ６＝（１＋ａ）・Ｆ５−ａ・Ｆ４
Ｆ７＝（１＋ａ）・Ｆ６−ａ・Ｆ５
Ｆ１＝ａ／（ａ・ｂ1 ＋ｂ2 ）・（ａ・Ｆ７−ｂ1 ・Ｆ０）
Ｆ８＝ｂ2 ／ａ・Ｆ１
【００７２】
［期間判別プログラム］
図１１の期間判別プログラムは、所定周期（例えば２ｍｓ周期）で繰り返し実行され、後述する図１３の空燃比フィードバック制御プログラムと共に特許請求の範囲でいう制御特性変更手段としての役割を果たす。
【００７３】
本プログラムが起動されると、まず、ステップ５０１で、空燃比センサ２４の出力信号λを読み込み、次のステップ５０２で、空燃比センサ２４の出力信号の微分値（今回値λと前回値λOLD との差分値）がプラス値（０以上）であるか否かを判定する。その結果、空燃比センサ２４の出力信号の微分値（λ−λOLD ）がプラス値（０以上）であると判定されれば、空燃比センサ２４の出力信号λが増加する方向（リーン方向）に変化していると判断して、ステップ５０３に進み、期間判別フラグをリーン側制御特性変更期間を意味する「１」にセットする。
【００７４】
一方、ステップ５０２で、空燃比センサ２４の出力信号の微分値（λ−λOLD ）がマイナス値と判定されれば、空燃比センサ２４の出力信号λが低下する方向（リッチ方向）に変化していると判断して、ステップ５０４に進み、期間判別フラグをリッチ側制御特性変更期間を意味する「０」にセットする。この後、ステップ５０５に進み、空燃比センサ２４の出力信号の今回値λを前回値λOLD として記憶して、本プログラムを終了する。
【００７５】
以上説明した空燃比センサ２４の出力信号λの挙動と、その微分値（λ−λOLD ）と、期間判別フラグの値との対応関係は、図１２のタイムチャートに示されている。
【００７６】
［空燃比フィードバック制御プログラム］
図１３の空燃比フィードバック制御プログラムは、所定周期（例えば２ｍｓ周期）で繰り返し実行され、上記図１１の期間判別プログラムと共に特許請求の範囲でいう制御特性変更手段としての役割を果たす。
【００７７】
本プログラムが起動されると、まず、ステップ６０１で、上記図１１の期間判別プログラムによってセットされた期間判別フラグが「１」にセットされているか否かで、リーン側制御特性変更期間であるか否かを判定し、期間判別フラグ＝１（リーン側制御特性変更期間）と判定されれば、ステップ６０２に進み、リーン方向の無駄時間劣化度合ＤＬL を読み込み、次のステップ６０３で、図１４の制御周期算出マップを検索して、現在のリーン方向の無駄時間劣化度合ＤＬL に応じた制御周期を算出する。図１４の制御周期算出マップは、リーン方向の無駄時間劣化度合ＤＬL が大きくなるほど、制御周期が長くなるように設定されている。
【００７８】
これに対して、上記ステップ６０１で、期間判別フラグ＝０（リッチ側制御特性変更期間）と判定されれば、ステップ６０４に進み、リッチ方向の無駄時間劣化度合ＤＬR を読み込み、次のステップ６０５で、図１４の制御周期算出マップを検索して、現在のリッチ方向の無駄時間劣化度合ＤＬR に応じた制御周期を算出する。
【００７９】
制御周期の算出後、ステップ６０６に進み、経過時間をカウントするタイマＣＮＴを、本プログラムの起動周期（２ｍｓ周期）分だけカウントアップする。この後、ステップ６０７に進み、タイマＣＮＴのカウント値が、前記ステップ６０３又は６０５で算出した制御周期に達したか否かを判定し、タイマＣＮＴのカウント値が制御周期に達していなければ、そのまま本プログラムを終了する。
【００８０】
そして、タイマＣＮＴのカウント値が制御周期に達した時点で、ステップ６０８に進み、後述する図１６及び図１７のＦＡＦ演算プログラムを実行して、空燃比補正係数ＦＡＦを算出する。これにより、空燃比センサ２４の出力信号の微分値（λ−λOLD ）に応じて切り替えられる期間毎に、各方向の無駄時間劣化度合ＤＬL ，ＤＬR に応じた制御周期で空燃比フィードバック制御が実行される。この後、ステップ６０９に進み、タイマＣＮＴをリセットして本プログラムを終了する。
【００８１】
［代表無駄時間劣化度合算出プログラム］
図１５の代表無駄時間劣化度合算出プログラムは、所定周期（例えば２ｍｓ周期）で繰り返し実行される。本プログラムが起動されると、まず、ステップ７０１で、無駄時間劣化度合検出プログラム（図示せず）で検出したリーン方向の無駄時間劣化度合ＤＬL （＝ＬL ／ＬL0）とリッチ方向の無駄時間劣化度合ＤＬR （＝ＬR ／ＬR0）を読み込む。無駄時間劣化度合検出プログラムでは、図２に示すように、空燃比がリーン方向に変化した時に、リーン方向の無駄時間ＬL を検出して、このリーン方向の無駄時間ＬL とその初期値ＬL0との比でリーン方向の無駄時間劣化度合ＤＬL を算出し、空燃比がリッチ方向に変化した時に、リッチ方向の無駄時間ＬR を検出して、このリッチ方向の無駄時間ＬR とその初期値ＬL0との比でリッチ方向の無駄時間劣化度合ＤＬR を算出する。この無駄時間劣化度合検出プログラムが特許請求の範囲でいう無駄時間検出手段及び無駄時間劣化度合算出手段としての役割を果たす。
【００８２】
この後、ステップ７０２に進み、リーン方向の無駄時間劣化度合ＤＬL とリッチ方向の無駄時間劣化度合ＤＬR とを比較して、リーン方向の無駄時間劣化度合ＤＬL の方が大きいと判定されれば、ステップ７０３に進み、リーン方向の無駄時間劣化度合ＤＬL を代表無駄時間劣化度合ＤＬとし、リッチ方向の無駄時間劣化度合ＤＬR の方が大きいと判定されれば、ステップ７０４に進み、リッチ方向の無駄時間劣化度合ＤＬR を代表無駄時間劣化度合ＤＬとする。
【００８３】
この後、ステップ７０５に進み、応答時間劣化度合検出プログラム（図示せず）で検出したリーン方向の応答時間劣化度合ＤＴL （＝ＴL ／ＴL0）とリッチ方向の応答時間劣化度合ＤＴR （＝ＴR ／ＴR0）を読み込む。応答時間劣化度合検出プログラムでは、図２に示すように、空燃比がリーン方向に変化した時に、リーン方向の応答時間ＴL を検出して、このリーン方向の応答時間ＴL とその初期値ＴL0との比でリーン方向の応答時間劣化度合ＤＴL を算出し、空燃比がリッチ方向に変化した時に、リッチ方向の応答時間ＴR を検出し、このリッチ方向の応答時間ＴR とその初期値ＴR0との比でリッチ方向の応答時間劣化度合ＤＴR を算出する。この応答時間劣化度合検出プログラムが特許請求の範囲でいう応答時間検出手段及び応答時間劣化度合算出手段としての役割を果たす。
【００８４】
この後、ステップ７０６に進み、リーン方向の応答時間劣化度合ＤＴL と代表無駄時間劣化度合ＤＬとの比ＤＴL ／ＤＬを算出すると共に、リッチ方向の応答時間ＴR と代表無駄時間劣化度合ＤＬとの比ＤＴR ／ＤＬを算出して、本プログラムを終了する。
【００８５】
［ＦＡＦ演算プログラム］
図１６及び図１７のＦＡＦ演算プログラムは、前述した図１３の空燃比フィードバック制御プログラムのステップ６０８で実行され、次のようにして空燃比補正係数ＦＡＦを算出する。
【００８６】
本プログラムが起動されると、まず、ステップ８０１で、現在の燃料過剰率φ(i) 、目標燃料過剰率φref 、制御パラメータＦ０〜Ｆd+2 を読み込む。
【００８７】
この後、ステップ８０２に進み、目標燃料過剰率φref と実際の燃料過剰率φ(i) との偏差ｅ(i) を算出する。
ｅ(i) ＝φref −φ(i)
【００８８】
この後、ステップ８０３に進み、前回から今回までの燃料過剰率の変化量Δφ(i) を算出する。
Δφ(i) ＝φ(i) −φ(i-1)
【００８９】
この後、ステップ８０４に進み、前回の空燃比補正係数ＦＡＦ(i-1) に今回の空燃比補正係数補正値ΔＦＡＦ(i) を加算して今回の空燃比補正係数ＦＡＦ(i) を求める。
ＦＡＦ(i)
＝ＦＡＦ(i-1) ＋ΔＦＡＦ(i)
＝ＦＡＦ(i-1) ＋Ｆ１・Δφ(i) ＋Ｆ２・｛ＦＡＦ(i-1) −ＦＡＦ(i-2) ｝＋…                …＋Ｆd+2 ・｛ＦＡＦ(i-d-1) −ＦＡＦ(i-d-2) ｝＋Ｆ０・ｅ(i)
【００９０】
この後、図１７のステップ８０５に進み、空燃比補正係数ＦＡＦ(i) に対するリッチ側及びリーン側の制限値（ガード値）の初期値ＦＡＦＧＲ０，ＦＡＦＧＬ０を読み込む。そして、次のステップ８０６で、図１８の制限値補正係数算出マップを検索して、リッチ方向の応答時間劣化度合ＤＴR と代表無駄時間劣化度合ＤＬとの比ＤＴR ／ＤＬに基づいてリッチ側制限値補正係数ＣＦＡＦＧＲを算出すると共に、リーン方向の応答時間劣化度合ＤＴL と代表無駄時間劣化度合ＤＬとの比ＤＴL ／ＤＬに基づいてリーン側制限値補正係数ＣＦＡＦＧＬを算出する。この図１８の制限値補正係数算出マップは、ＤＴR ／ＤＬ，ＤＴL ／ＤＬが大きくなるほど、制限値補正係数ＣＦＡＦＧＲ，ＣＦＡＦＧＬが小さくなるように設定されている。制限値補正係数ＣＦＡＦＧＲ，ＣＦＡＦＧＬの最大値は１．０である。
【００９１】
この後、ステップ８０７に進み、リッチ側制限値補正係数ＣＦＡＦＧＲをリッチ側制限値の初期値ＦＡＦＧＲ０に乗算してリッチ側制限値ＦＡＦＧＲを算出すると共に、リーン側制限値補正係数ＣＦＡＦＧＬをリーン側制限値の初期値ＦＡＦＧＬ０に乗算してリーン側制限値ＦＡＦＧＬを算出する。
ＦＡＦＧＲ＝ＣＦＡＦＧＲ・ＦＡＦＧＲ０
ＦＡＦＧＬ＝ＣＦＡＦＧＬ・ＦＡＦＧＬ０
【００９２】
この後、ステップ８０８に進み、空燃比補正係数ＦＡＦ(i) がリッチ側制限値ＦＡＦＧＲよりも小さいか否かを判定し、空燃比補正係数ＦＡＦ(i) がリッチ側制限値ＦＡＦＧＲよりも大きい（つまりリッチ側制限値ＦＡＦＧＲよりもリッチ側の値である）と判定されれば、ステップ８０９に進み、空燃比補正係数ＦＡＦ(i) をリッチ側制限値ＦＡＦＧＲで制限（ガード処理）して、リッチ側制限値ＦＡＦＧＲを空燃比補正係数ＦＡＦ(i) とする。
【００９３】
そして、次のステップ８１０で、空燃比補正係数ＦＡＦ(i) がリーン側制限値ＦＡＦＧＬよりも大きいか否かを判定し、空燃比補正係数ＦＡＦ(i) がリーン側制限値ＦＡＦＧＬよりも小さい（つまりリーン側制限値ＦＡＦＧＬよりもリーン側の値である）と判定されれば、ステップ８１１に進み、空燃比補正係数ＦＡＦ(i) をリーン側制限値ＦＡＦＧＬで制限（ガード処理）して、リーン側制限値ＦＡＦＧＬを空燃比補正係数ＦＡＦ(i) とする。尚、ＦＡＦＧＬ≦ＦＡＦ(i) ≦ＦＡＦＧＲであれば、空燃比補正係数ＦＡＦ(i) を制限せずにそのまま用いる。上記ステップ８０５〜８１１の処理が特許請求の範囲でいうフィードバック補正量制限値補正手段としての役割を果たす。
【００９４】
この後、ステップ８１２に進み、次回の空燃比補正係数ＦＡＦの演算に備えてφ(i-1) 、ＦＡＦ(i-1) 〜ＦＡＦ(i-d-2) の記憶データを更新する。
φ(i-1) ＝φ(i)
ＦＡＦ(i-1) ＝ＦＡＦ(i)
ＦＡＦ(i-2) ＝ＦＡＦ(i-1)
・・・・・・・・・・・・・
・・・・・・・・・・・・・
ＦＡＦ(i-d) ＝ＦＡＦ(i-d+1)
ＦＡＦ(i-d-1) ＝ＦＡＦ(i-d)
ＦＡＦ(i-d-2) ＝ＦＡＦ(i-d-1)
【００９５】
尚、今回の空燃比補正係数補正値ΔＦＡＦ(i) を次式により算出した後、今回の空燃比補正係数補正値ΔＦＡＦ(i) を前回の空燃比補正係数ＦＡＦ(i-1) に加算して今回の空燃比補正係数ＦＡＦ(i) を求めるようにしても良い。
ΔＦＡＦ(i) ＝Ｆ１・Δφ(i) ＋Ｆ２・ΔＦＡＦ(i-1) ＋…
…＋Ｆd+1 ・ΔＦＡＦ(i-d) ＋Ｆd+2 ・ΔＦＡＦ(i-d-1)
＋Ｆ０・（φref −φ(i) ）
【００９６】
この場合は、次回の空燃比補正係数ＦＡＦ、空燃比補正係数補正値ΔＦＡＦの演算に備えて、ΔＦＡＦ(i-1) 〜ＦＡＦ(i-d-1) の記憶データを更新するようにすれば良い。
【００９７】
以上説明した本実施例によれば、リッチ方向の無駄時間劣化度合ＤＬR に基づいて制御周期を変更するリッチ側制御特性変更期間と、リーン方向の無駄時間劣化度合ＤＬL に基づいて制御周期を変更するリーン側制御特性変更期間とを、空燃比センサ２４の出力信号の微分値に基づいて判別するようにしたので、空燃比フィードバック制御系の制御特性を適正なタイミングで各方向の無駄時間劣化度合ＤＬR ，ＤＬL に応じた適正な制御特性に変更することができ、排気エミッションの悪化を最も招きやすい無駄時間の非対称劣化による制御結果のハンチング（発散）を防止できる。しかも、制御周期の変更によって、比較的簡単な処理で空燃比フィードバック制御系の制御特性を変更することができ、ソフトウエアの複雑化やデータ量膨大化を回避することができる。
【００９８】
しかも、本実施例では、リッチ方向の応答時間劣化度合ＤＴR と代表無駄時間劣化度合ＤＬとの比ＤＴR ／ＤＬに基づいてリッチ側制限値補正係数ＣＦＡＦＧＲを算出し、リーン方向の応答時間劣化度合ＤＴL と代表無駄時間劣化度合ＤＬとの比ＤＴL ／ＤＬに基づいてリーン側制限値補正係数ＣＦＡＦＧＬを算出するようにしたので、各制限値補正係数ＣＦＡＦＧＲ，ＣＦＡＦＧＬによってリッチ側制限値ＦＡＦＧＲとリーン側制限値ＦＡＦＧＬを、リッチ側とリーン側とでそれぞれ最適な制限値に設定することができ、リッチ方向／リーン方向の非対称劣化によるオーバーシュートをより確実に防止することができる。
【００９９】
尚、本発明は、リッチ方向の応答時間劣化度合ＤＴR と代表無駄時間劣化度合ＤＬとの差｜ＤＴR −ＤＬ｜に基づいてリッチ側制限値補正係数ＣＦＡＦＧＲを算出し、リーン方向の応答時間劣化度合ＤＴL と代表無駄時間劣化度合ＤＬとの差｜ＤＴL −ＤＬ｜に基づいてリーン側制限値補正係数ＣＦＡＦＧＬを算出するようにしても良く、この場合でも、同様の効果を得ることができる。
【０１００】
或は、各方向の応答時間劣化度合ＤＴL ，ＤＴR のうちの大きい方を代表応答時間劣化度合ＤＴとし、この代表応答時間劣化度合ＤＴと代表無駄時間劣化度合ＤＬとの比ＤＴ／ＤＬに基づいて制限値補正係数ＣＦＡＦＧを算出し、この制限値補正係数ＣＦＡＦＧをリッチ側制限値の初期値ＦＡＦＧＲ０とリーン側制限値の初期値ＦＡＦＧＬ０に乗算してリッチ側制限値ＦＡＦＧＲとリーン側制限値ＦＡＦＧＬを算出するようにしても良い。
ＦＡＦＧＲ＝ＣＦＡＦＧ・ＦＡＦＧＲ０
ＦＡＦＧＬ＝ＣＦＡＦＧ・ＦＡＦＧＬ０
【０１０１】
このように、代表応答時間劣化度合ＤＴと代表無駄時間劣化度合ＤＬとの比ＤＴ／ＤＬに基づいて制限値補正係数ＣＦＡＦＧを算出して、この制限値補正係数ＣＦＡＦＧによってリッチ側制限値ＦＡＦＧＲとリーン側制限値ＦＡＦＧＬを補正すれば、代表応答時間劣化度合ＤＴと代表無駄時間劣化度合ＤＬとの差が大きくなるほど、リッチ側制限値ＦＡＦＧＲとリーン側制限値ＦＡＦＧＬとの間の幅を狭くするという制御が可能となり、オーバーシュートを効果的に防止することができる。
【０１０２】
この場合も、代表応答時間劣化度合ＤＴと代表無駄時間劣化度合ＤＬとの比ＤＴ／ＤＬに代えて、両者の差｜ＤＴ−ＤＬ｜に基づいて制限値補正係数ＣＦＡＦＧを算出し、この制限値補正係数ＣＦＡＦＧによってリッチ側制限値ＦＡＦＧＲとリーン側制限値ＦＡＦＧＬを補正するようにしても良く、この場合でも、同様の効果を得ることができる。
【０１０３】
尚、本発明は、状態フィードバックで空燃比を制御するシステムに限定されず、ＰＩＤ制御等、他の方式のフィードバック制御で空燃比を制御するシステムに適用して実施できる。
【０１０４】
その他、本発明は、図１に示すような吸気ポート噴射式の内燃機関に限定されず、筒内噴射式の内燃機関や、吸気ポート噴射用の燃料噴射弁と筒内噴射用の燃料噴射弁の両方を備えたデュアル噴射式の内燃機関にも適用して実施できる等、要旨を逸脱しない範囲内で種々変更して実施できることは言うまでもない。
【図面の簡単な説明】
【０１０５】
【図１】本発明の一実施例を示すエンジン制御システム全体の概略構成図である。
【図２】無駄時間と応答時間のリッチ方向／リーン方向の非対称劣化と劣化度合の算出方法を説明する図である。
【図３】空燃比フィードバック制御系の各部の機能を表す機能ブロック図である。
【図４】燃料噴射量演算プログラムの処理の流れを示すフローチャートである。
【図５】制御対象特性値演算プログラムの処理の流れを示すフローチャートである。
【図６】噴射間隔演算プログラムの処理の流れを示すフローチャートである。
【図７】減衰係数ζ、固有角周波数ω演算プログラムの処理の流れを示すフローチャートである。
【図８】モデルパラメータ演算プログラムの処理の流れを示すフローチャートである。
【図９】特性多項式の係数演算プログラムの処理の流れを示すフローチャートである。
【図１０】制御パラメータ演算プログラムの処理の流れを示すフローチャートである。
【図１１】期間判別プログラムの処理の流れを示すフローチャートである。
【図１２】空燃比センサの出力信号λの挙動と、その微分値（λ−λOLD ）と、期間判別フラグの値との対応関係を例示するタイムチャートである。
【図１３】空燃比フィードバック制御プログラムの処理の流れを示すフローチャートである。
【図１４】各方向の無駄時間劣化度合ＤＬL ，ＤＬR に基づいて制御周期を算出するマップを概念的に示す図である。
【図１５】代表無駄時間劣化度合算出プログラムの処理の流れを示すフローチャートである。
【図１６】ＦＡＦ演算プログラムの前半部の処理の流れを示すフローチャートである。
【図１７】ＦＡＦ演算プログラムの後半部の処理の流れを示すフローチャートである。
【図１８】各方向の応答時間劣化度合ＤＴL ，ＤＴR と代表無駄時間劣化度合ＤＬとの比ＤＴL ／ＤＬ，ＤＴR ／ＤＬに基づいてリッチ側制限値補正係数ＣＦＡＦＧＲとリーン側制限値補正係数ＣＦＡＦＧＬを算出するマップを概念的に示す図である。
【符号の説明】
【０１０６】
１１…エンジン（内燃機関）、１２…吸気管、１４…エアフローメータ、１５…スロットルバルブ、２０…燃料噴射弁、２２…排気管、２３…触媒、２４…空燃比センサ、２７…ＥＣＵ（無駄時間検出手段，応答時間検出手段，無駄時間劣化度合算出手段，応答時間劣化度合算出手段，制御特性変更手段，フィードバック補正量制限値補正手段）
【図１】
2009257221.tif 000003
【図２】
2009257221.tif 000004
【図３】
2009257221.tif 000005
【図４】
2009257221.tif 000006
【図５】
2009257221.tif 000007
【図６】
2009257221.tif 000008
【図７】
2009257221.tif 000009
【図８】
2009257221.tif 000010
【図９】
2009257221.tif 000011
【図１０】
2009257221.tif 000012
【図１１】
2009257221.tif 000013
【図１２】
2009257221.tif 000014
【図１３】
2009257221.tif 000015
【図１４】
2009257221.tif 000016
【図１５】
2009257221.tif 000017
【図１６】
2009257221.tif 000018
【図１７】
2009257221.tif 000019
【図１８】
2009257221.tif 000020