(57)【要約】【課題】制御対象の無駄時間の劣化又は空燃比センサのリッチ側／リーン側の非対称劣化による空燃比制御精度の悪化を低減する。【解決手段】内燃機関に噴射した燃料量の変化が空燃比センサの出力の変化として現れるまでの無駄時間のリッチ側／リーン側の非対称劣化を考慮して、空燃比センサの出力がリーン方向に変化する時の無駄時間と、リッチ方向に変化する時の無駄時間をそれぞれ検出し、そのうちの大きい方の無駄時間を選択して、今回のフィードバック補正量を算出する際に用いる過去のフィードバック補正量のデータの個数を大きい方の無駄時間に応じて変化させる。また、リーン方向の応答時間とリッチ方向の応答時間をそれぞれ検出し、空燃比センサの出力がリーン方向に変化する時にはリーン方向応答時間に応じて制御ゲインを補正し、空燃比センサの出力がリッチ方向に変化する時にはリッチ方向応答時間に応じて制御ゲインを補正する。【選択図】図２
2009115012.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 ，Ｆ０を運転条件等に応じて切り換えながら、安定した空燃比制御を行うことが可能となる。
【００３０】
ところで、将来、益々厳しくなる排出ガス規制（低エミッション化の要求）に対応するには、制御対象の応答特性の劣化（無駄時間の劣化や空燃比センサ２４の応答時間の劣化）による空燃比制御精度の悪化を低減する必要が生じてきている。
【００３１】
そこで、本実施例では、制御対象の応答特性の劣化がリッチ側とリーン側とで非対称に生じることを考慮して、空燃比センサ２４の出力がリッチからリーンに変化するときの無駄時間ｄとリーンからリッチに変化するときの無駄時間ｄとをそれぞれ検出し、検出した２つの無駄時間ｄのうちの大きい方の無駄時間ｄを選択して、今回の空燃比補正係数ＦＡＦ(i) を算出する際に用いる過去の空燃比補正係数ＦＡＦ(i-1) 〜ＦＡＦ(i-d-2) のデータの個数を前記大きい方の無駄時間ｄに応じて変化させるようにする。
【００３２】
更に、無駄時間ｄの劣化度合を判定し、この無駄時間ｄの劣化度合が所定の判定しきい値以下であるときには、今回の空燃比補正係数ＦＡＦ(i) を算出する際に用いる過去の空燃比補正係数ＦＡＦ(i-1) 〜ＦＡＦ(i-d-2) のデータの個数を初期特性相当値に設定するようにしている。
【００３３】
また、本実施例では、空燃比センサ２４の出力がリッチからリーンに変化するときの応答時間（以下「リーン方向応答時間」という）とリーンからリッチに変化するときの応答時間（以下「リッチ方向応答時間」という）とをそれぞれ検出し、空燃比センサ２４の出力がリッチからリーンに変化するときにはリーン方向応答時間に応じて制御ゲイン（固有角周波数ω）を補正し、空燃比センサ２４の出力がリーンからリッチに変化するときにはリッチ方向応答時間に応じて制御ゲイン（固有角周波数ω）を補正するようにしている。      
【００３４】
更に、本実施例では、２つの応答時間の劣化度合をそれぞれ判定し、その結果、各応答時間の劣化度合が所定の判定しきい値以下であるときには、制御ゲイン（固有角周波数ω）を初期特性相当値に設定するようにしている。
【００３５】
以上説明した本実施例の空燃比フィードバック制御系の構成は、図２に機能ブロック図で示されている。この空燃比フィードバック制御系の各機能は、ＥＣＵ２７が実行する図３乃至図１３の各プログラムによって実現される。以下、これら各プログラムの処理内容を説明する。
【００３６】
［燃料噴射量演算プログラム］
図３の燃料噴射量演算プログラムは、各気筒の噴射タイミングに同期して起動され、次のようにして燃料噴射量ＴＡＵを算出する。まず、ステップ３０１で、現在のエンジン運転状態に応じてマップ等により基本噴射量Ｔｐを算出する。この後、ステップ３０２に進み、基本噴射量Ｔｐに対する各種の補正係数ＦＡＬＬ（例えば冷却水温による補正係数、加減速時の補正係数等）を算出し、次のステップ３０３で、空燃比フィードバック条件が成立しているか否かを判定する。もし、空燃比フィードバック条件が成立していなければ、空燃比補正係数ＦＡＦを「１」にセットして、オープンループ制御により空燃比を制御する。
【００３７】
一方、空燃比フィードバック条件が成立していれば、ステップ３０５に進み、排出ガスの空燃比を触媒２３の浄化ウインドウ（理論空燃比付近）内に収めるように目標燃料過剰率φ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 （＝Ｌ−ｄ・ｄｔ）を算出する。
【００５１】
この後、ステップ４３３に進み、モデル時定数Ｔと噴射間隔ｄｔを用いてモデルパラメータａを次式により算出する。
ａ＝ｅｘｐ（−ｄｔ／Ｔ）
【００５２】
この演算は、高性能のＣＰＵを必要とするため、現在の車載コンピュータのＣＰＵの演算能力では、ｅｘｐ（−ｄｔ／Ｔ）の演算を高速で行うことは困難であると思われる。そこで、本実施例では、演算負荷を軽減するために、ｄｔ／Ｔが例えば０．３５以下の時は、ｅｘｐ（−ｄｔ／Ｔ）を次式により近似し、この近似式によりモデルパラメータａを算出する。
ａ＝１−ｄｔ／Ｔ＋０．５（ｄｔ／Ｔ）２
【００５３】
この近似式は、ｄｔ／Ｔが大きくなるに従って、演算誤差が大きくなるため、ｄｔ／Ｔが例えば０．３５よりも大きい領域では、予め、ｄｔ／Ｔとモデルパラメータａとの関係をテーブル化してＲＯＭに記憶しておき、このテーブルを検索して、現在のｄｔ／Ｔに応じたモデルパラメータａを求める。尚、ｄｔ／Ｔが、０．３５以下の時にも、予め設定したテーブルからモデルパラメータａを求めるようにしても良い。
【００５４】
この後、ステップ４３４に進み、モデルパラメータｂ1 ，ｂ2 の算出に用いる変数βを次式により算出する。
β＝ｅｘｐ｛−（ｄｔ−Ｌ1 ）／Ｔ｝
【００５５】
この変数βを算出する際も、演算負荷を軽減するために、（ｄｔ−Ｌ1 ）／Ｔが例えば０．３５以下の時は、ｅｘｐ｛−（ｄｔ−Ｌ1 ）／Ｔ｝を次式により近似し、この近似式により変数βを算出する。
β＝１−（ｄｔ−Ｌ1 ）／Ｔ＋０．５｛（ｄｔ−Ｌ1 ）／Ｔ｝２
【００５６】
この近似式は、（ｄｔ−Ｌ1 ）／Ｔが大きくなるに従って、演算誤差が大きくなるため、（ｄｔ−Ｌ1 ）／Ｔが例えば０．３５よりも大きい領域では、予め、（ｄｔ−Ｌ1 ）／Ｔと変数βとの関係をテーブル化してＲＯＭに記憶しておき、このテーブルを検索して現在の（ｄｔ−Ｌ1 ）／Ｔに応じた変数βを求める。尚、（ｄｔ−Ｌ1 ）／Ｔが０．３５以下の時にも、予め設定したテーブルから変数βを求めるようにしても良い。
【００５７】
この後、ステップ４３５に進み、変数βとモデルパラメータａを用いてモデルパラメータｂ1 ，ｂ2 を次式により算出する。
ｂ1 ＝１−β
ｂ2 ＝１−ｂ1 −ａ
【００５８】
［特性多項式の係数演算プログラム］
図８の特性多項式の係数演算プログラムは、各気筒の噴射タイミングに同期して起動され、制御モデルの無駄時間ｄ分の根を０とする極配置法に基づいて特性多項式の係数Ａ１，Ａ２を次のようにして算出する（図２に３９に示す部分の機能を実現する）。尚、極配置法に関しては、本出願人が先に出願した特願２０００−１８９７３４号の明細書に詳細に記載されている。
【００５９】
本プログラムが起動されると、まず、ステップ４４１で、減衰係数ζ、応答時間に応じて補正された固有角周波数ω、噴射間隔ｄｔを読み込み、次のステップ４４２で、ω・ｄｔを上限ガード値（例えば０．６２８３）でガード処理する。つまり、ω・ｄｔが上限ガード値よりも大きい場合は、ω・ｄｔ＝上限ガード値にセットし、ω・ｄｔが上限ガード値以下の場合は、その時のω・ｄｔの値をそのまま用いる。このように、ω・ｄｔを上限ガード値でガード処理する理由は、ω・ｄｔの値が大きくなり過ぎると、制御精度が低下するためである。
【００６０】
ω・ｄｔのガード処理後、ステップ４４３に進み、特性多項式の係数Ａ１，Ａ２の算出に用いる変数ｅｚｗｄｔを次式により算出する。
ｅｚｗｄｔ＝ｅｘｐ（−ζ・ω・ｄｔ）
【００６１】
この変数ｅｚｗｄｔを算出する場合も、ＥＣＵ２７のＣＰＵ演算負荷を軽減するために、ζ・ω・ｄｔが例えば０．３５以下の時は、ｅｘｐ（−ζ・ω・ｄｔ）を次式により近似し、この近似式により変数ｅｚｗｄｔを算出する。
ｅｚｗｄｔ＝１−ζ・ω・ｄｔ＋０．５（ζ・ω・ｄｔ）２
【００６２】
この近似式は、ζ・ω・ｄｔが大きくなるに従って、演算誤差が大きくなるため、ζ・ω・ｄｔが例えば０．３５よりも大きい領域では、予め、ζ・ω・ｄｔと変数ｅｚｗｄｔとの関係をテーブル化してＲＯＭに記憶しておき、このテーブルを検索して現在のζ・ω・ｄｔに応じた変数ｅｚｗｄｔを求める。尚、ζ・ω・ｄｔが０．３５以下の時にも、予め設定したテーブルから変数ｅｚｗｄｔを求めるようにしても良い。
【００６３】
この後、ステップ４４４に進み、特性多項式の係数Ａ１，Ａ２の算出に用いる他の変数ｃｏｓｚｗｔを次式により算出する。
ｃｏｓｚｗｔ＝ｃｏｓ｛（１−ζ２  ）０．５  ・ω・ｄｔ｝
【００６４】
この変数ｃｏｓｚｗｔを算出する場合も、ＣＰＵの演算負荷を軽減するために次の近似式を用いる。
ｃｏｓｚｗｔ＝１−０．５（１−ζ２  ）（ω・ｄｔ）２
【００６５】
この後、ステップ４４５に進み、変数ｅｚｗｄｔ，ｃｏｓｚｗｔを用いて、特性多項式の係数Ａ１，Ａ２を次式により算出する。
Ａ１＝−２・ｅｚｗｄｔ・ｃｏｓｚｗｔ
Ａ２＝（ｅｚｗｄｔ）２
【００６６】
［制御パラメータ演算プログラム］
図９の制御パラメータ演算プログラムは、各気筒の噴射タイミングに同期して起動され、状態フィードバックの制御パラメータＦ０〜Ｆd+2 を次のようにして算出する（図２に４０に示す部分の機能を実現する）。
【００６７】
本プログラムが起動されると、まず、ステップ４５１で、制御モデルのモデルパラメータａ，ｂ1 ，ｂ2 を読み込み、次のステップ４５２で、特性多項式の係数Ａ１，Ａ２を読み込む。
【００６８】
この後、ステップ４５３に進み、モデルパラメータａ，ｂ1 ，ｂ2 と係数Ａ１，Ａ２を用いて制御パラメータＦ０〜Ｆd+2 を算出する。この場合、制御パラメータＦ０〜Ｆd+2 の個数は、後述する図１２の制御パラメータ個数算出プログラムによって設定される。
【００６９】
例えば、ｄ＝６の場合は、次式により制御パラメータＦ０〜Ｆ８を算出する。
Ｆ０＝（１＋Ａ１＋Ａ２）／（ｂ1 ＋ｂ2 ）
Ｆ２＝−１−ａ−Ａ１
Ｆ３＝ａ−Ａ２＋（１＋ａ）・Ｆ２
Ｆ４＝（１＋ａ）・Ｆ３−ａ・Ｆ２
Ｆ５＝（１＋ａ）・Ｆ４−ａ・Ｆ３
Ｆ６＝（１＋ａ）・Ｆ５−ａ・Ｆ４
Ｆ７＝（１＋ａ）・Ｆ６−ａ・Ｆ５
Ｆ１＝ａ／（ａ・ｂ1 ＋ｂ2 ）・（ａ・Ｆ７−ｂ1 ・Ｆ０）
Ｆ８＝ｂ2 ／ａ・Ｆ１
【００７０】
［ＦＡＦ演算プログラム］
図１０のＦＡＦ演算プログラムは、前述した図３の燃料噴射量演算プログラムのステップ３０６で起動され、次のようにして空燃比補正係数ＦＡＦを算出する（図２に４１に示す部分の機能を実現する）。
【００７１】
本プログラムが起動されると、まず、ステップ４６２で、現在の燃料過剰率φ(i) 、目標燃料過剰率φref 、制御パラメータＦ０〜Ｆd+2 を読み込む。この場合、制御パラメータＦ０〜Ｆ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-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) の記憶データを更新するようにすれば良い。
【００７９】
［制御ゲイン算出プログラム］
図１１の制御ゲイン算出プログラムは、各気筒の噴射タイミングに同期して起動され、空燃比センサ２４の応答時間に応じて制御ゲイン（固有角周波数ω）を補正する制御ゲイン補正手段としての役割を果たす。
【００８０】
本プログラムが起動されると、まず、ステップ５０１で、現在のエンジン運転条件（吸入空気量Ｑａ、エンジン回転速度Ｎｅ等）を読み込み、次のステップ５０２で、制御対象初期特性マップ（図１５参照）を検索して、現在のエンジン運転条件（吸入空気量Ｑａ、エンジン回転速度Ｎｅ等）に応じた制御対象の初期特性における応答時間を算出する。
【００８１】
この後、ステップ５０３に進み、空燃比センサ２４の出力の変化方向を判定する。この際、空燃比センサ２４の今回の出力と前回の出力との差分値がプラス値かマイナス値かで空燃比センサ２４の出力のリッチ／リーンの変化方向を判定する判定するようにしても良いし、図１４に示すように、空燃比センサ２４の出力の微分値又は２階微分値がプラス値かマイナス値かで空燃比センサ２４の出力のリッチ／リーンの変化方向を判定するようにしても良い。
【００８２】
この後、ステップ５０４に進み、上記ステップ５０３の判定結果に基づいて、空燃比センサ２４の出力の変化方向がリッチからリーンに変化する方向であるか否かを判定し、リッチからリーンに変化する方向であれば、ステップ５０６に進み、現在の制御対象のリッチからリーンに変化する方向の応答時間（「リーン方向応答時間」という）を計測又は逐次同定する。リーン方向応答時間を計測する場合は、例えば、特開２００７−１８７１２９号公報、特開２００７−９７１３号公報、特開２００７−１９７０８号公報等に記載された方法を用いれば良い。
【００８３】
一方、上記ステップ５０４で、空燃比センサ２４の出力の変化方向がリッチからリーンに変化する方向でないと判定されれば、ステップ５０５に進み、リーンからリッチに変化する方向であるか否かを判定し、リーンからリッチに変化する方向であれば、ステップ５０７に進み、現在の制御対象のリーンからリッチに変化する方向の応答時間（「リッチ方向応答時間」という）を計測又は逐次同定する。リッチ方向応答時間を計測する場合は、例えば、特開２００７−１８７１２９号公報、特開２００７−９７１３号公報、特開２００７−１９７０８号公報等に記載された方法を用いれば良い。
【００８４】
尚、上記ステップ５０４、５０５でいずれも「Ｎｏ」と判定されれば、ステップ５０８に進み、リーン方向応答時間とリッチ方向応答時間の平均値を算出する。上述したステップ５０３〜５０８の処理が特許請求の範囲でいう応答時間検出手段（図２の３２で示す部分）として機能する。
【００８５】
この後、ステップ５０９に進み、制御対象の現在の特性の応答時間と初期特性の応答時間との比率を同一運転条件で算出して、該比率を応答時間劣化度合として求める（図１７参照）。このステップ５０９の処理が特許請求の範囲でいう応答時間劣化度合判定手段（図２の３６で示す部分）として機能する。
【００８６】
そして、次のステップ５１０で、応答時間劣化度合を所定の判定しきい値（１＋α）と比較して、応答時間劣化度合が判定しきい値（１＋α）以上であれば、応答時間が劣化していると判断して、ステップ５１１に進み、応答時間を応答時間劣化度合に応じて補正し、次のステップ５１２で、図１９に示す制御ゲイン補正係数マップを検索して、現在の応答時間劣化度合に応じた制御ゲイン補正係数を算出する。図１９の制御ゲイン補正係数マップは、応答時間劣化度合が大きくなるほど、制御ゲイン補正係数が１（補正無し）から徐々に小さくなるように設定されている。
【００８７】
これに対して、上記ステップ５１０で、応答時間劣化度合が判定しきい値（１＋α）より小さいと判定されれば、応答時間が劣化していないと判断して、応答時間の補正を行わず（ステップ５１３）、制御ゲイン補正係数を１に設定する（ステップ５１４）。
【００８８】
制御ゲイン補正係数の算出後、ステップ５１５に進み、図６の減衰係数ζ、固有角周波数ω演算プログラムで算出した初期特性の制御ゲイン（固有角周波数ω）を読み込み、次のステップ５１６で、初期特性の制御ゲインに上記制御ゲイン補正係数を乗算することで、初期特性の制御ゲインを補正して現在の特性の制御ゲインを求める。以上説明したステップ５１０〜５１６の処理が図２に３７で示す部分に相当する。
［制御パラメータ個数算出プログラム］
図１２の制御パラメータ個数算出プログラムは、各気筒の噴射タイミングに同期して起動され、無駄時間に応じて制御パラメータＦ１〜Ｆd+2 ，Ｆ０の個数（過去の空燃比補正係数ＦＡＦ(i-1) 〜ＦＡＦ(i-d-2) のデータの個数）を次のようにして変化させる。
【００８９】
本プログラムが起動されると、まず、ステップ６０１で、現在のエンジン運転条件（吸入空気量Ｑａ、エンジン回転速度Ｎｅ等）を読み込み、次のステップ６０２で、制御対象初期特性マップ（図１６参照）を検索して、現在のエンジン運転条件（吸入空気量Ｑａ、エンジン回転速度Ｎｅ等）に応じた制御対象の初期特性における無駄時間を算出する。
【００９０】
この後、ステップ６０３に進み、空燃比センサ２４の出力がリッチからリーンに変化するときの無駄時間（以下「リーン方向の無駄時間」という）とリーンからリッチに変化するときの無駄時間（以下「リッチ方向の無駄時間」という）とを計測又は逐次同定する。リーン方向とリッチ方向の無駄時間を計測する場合は、例えば、特開２００７−１８７１２９号公報、特開２００７−９７１３号公報、特開２００７−１９７０８号公報等に記載された方法を用いれば良い。このステップ６０３の処理が無駄時間検出手段（図２の３２で示す部分）として機能する。
【００９１】
この後、ステップ６０４に進み、リーン方向の無駄時間とリッチ方向の無駄時間のうちの大きい方の無駄時間を選択する（図１８参照）。この後、ステップ６０５に進み、制御対象の現在の特性の無駄時間と初期特性の無駄時間との比率を同一運転条件で算出して、該比率を無駄時間劣化度合として求める。このステップ６０５の処理が特許請求の範囲でいう無駄時間劣化度合判定手段としての役割を果たす。
【００９２】
この後、ステップ６０６に進み、無駄時間劣化度合を所定の判定しきい値（１＋β）と比較して、無駄時間劣化度合が判定しきい値（１＋β）以上であれば、無駄時間が劣化していると判断して、ステップ６０７に進み、無駄時間を無駄時間劣化度合に応じて補正する。この際、初期特性の無駄時間に無駄時間劣化度合を乗算することで、初期特性の無駄時間を補正して現在の特性の無駄時間を求めるようにしても良い。そして、次のステップ１０８で、補正後の無駄時間に応じて制御パラメータＦ１〜Ｆd+2 ，Ｆ０の個数（過去の空燃比補正係数ＦＡＦ(i-1) 〜ＦＡＦ(i-d-2) のデータの個数）を補正する。
【００９３】
これに対して、上記ステップ６０６で、無駄時間劣化度合が判定しきい値（１＋β）より小さいと判定されれば、無駄時間が劣化していないと判断して、無駄時間の補正を行わなず（ステップ６０９）、制御パラメータＦ１〜Ｆd+2 ，Ｆ０の個数（過去の空燃比補正係数ＦＡＦ(i-1) 〜ＦＡＦ(i-d-2) のデータの個数）の補正を行わない（ステップ６１０）。
【００９４】
［制御対象特性変化格納プログラム］
図１３に示す制御対象特性変化格納プログラムは、各気筒の噴射タイミングに同期して起動され、まずステップ７０１で、制御対象の現在の特性における応答時間と無駄時間を計測又は逐次同定する。この際、例えば、特開２００７−１８７１２９号公報、特開２００７−９７１３号公報、特開２００７−１９７０８号公報等に記載された方法を用いれば良い。この後、ステップ７０２に進み、エンジン運転条件（吸入空気量Ｑａ、エンジン回転速度Ｎｅ等）毎に応答時間と無駄時間をメモリ（図示せず）に格納して本プログラムを終了する。
【００９５】
図２０は、応答時間劣化に応じて制御ゲイン補正係数を変化させる挙動の一例を示すタイムチャートである。図２０の例では、時刻ｔ1 から時刻ｔ2 までの間は、空燃比センサ２４の出力の変化方向がリッチからリーンに変化する方向であるため、フィードバック制御に用いる応答時間としてリーン方向応答時間が選択され、時刻ｔ2 から時刻ｔ3 までの間は、空燃比センサ２４の出力の変化方向がリーンからリッチに変化する方向であるため、フィードバック制御に用いる応答時間としてリッチ方向応答時間が選択される。図２０の例では、リーン方向応答時間がリッチ方向応答時間よりも大きいため、リーン方向応答時間が選択される期間（ｔ1 〜ｔ2 ）は、応答時間劣化度合が大きくなり、その結果、制御ゲイン補正係数が小さくなり、制御ゲインが小さくなるように補正される。
【００９６】
一方、図２１は、無駄時間の劣化とフィードバック制御に用いる無駄時間との関係を説明するタイムチャートである。無駄時間の劣化に関しては、空燃比センサ２４の出力の変化方向とは関係なく、常に、リーン方向の無駄時間とリッチ方向の無駄時間のうちの大きい方の無駄時間が選択され、大きい方の無駄時間がフィードバック制御に用いられる。
【００９７】
以上説明した本実施例では、制御対象の応答特性の劣化がリッチ側とリーン側とで非対称に生じることを考慮して、空燃比センサ２４の出力がリッチからリーンに変化するときの無駄時間とリーンからリッチに変化するときの無駄時間とをそれぞれ検出し、検出した２つの無駄時間のうちの大きい方の無駄時間を選択して、今回の空燃比補正係数ＦＡＦ(i) を算出する際に用いる過去のフィードバック補正量（空燃比補正係数ＦＡＦ(i-1) 〜ＦＡＦ(i-d-2) 等）のデータの個数を前記大きい方の無駄時間に応じて変化させるようにしたので、無駄時間の劣化が進むほど、過去の空燃比補正係数ＦＡＦ(i-1) 〜ＦＡＦ(i-d-2) のデータの個数を増加させてフィードバック制御を安定させるという制御が可能となり、無駄時間の劣化による空燃比制御精度の悪化を低減することができる。しかも、無駄時間のリッチ側／リーン側の非対称劣化も考慮して、フィードバック補正量（空燃比補正係数ＦＡＦ）を算出することができ、無駄時間のリッチ側／リーン側の非対称劣化による空燃比制御精度の悪化を低減することができる。
【００９８】
但し、本発明は、演算処理を簡略化するために、無駄時間のリッチ側／リーン側の非対称劣化を考慮せずに、無駄時間を検出する構成としても良い。
【００９９】
また、本実施例では、空燃比センサ２４の出力がリッチからリーンに変化するときの応答時間（リーン方向応答時間）とリーンからリッチに変化するときの応答時間（リッチ方向応答時間）とをそれぞれ検出し、空燃比がリッチからリーンに変化するときにはリーン方向応答時間に応じて制御ゲインを補正し、空燃比センサ２４の出力がリーンからリッチに変化するときにはリッチ方向応答時間に応じて制御ゲインを補正するようにしたので、空燃比センサ２４の応答時間のリッチ側／リーン側の非対称劣化に対応して制御ゲインをリッチ側とリーン側とで別々に補正することが可能となり、空燃比センサ２４の応答時間のリッチ側／リーン側の非対称劣化による空燃比制御精度の悪化を低減することができる。
【０１００】
尚、本発明は、状態フィードバックで空燃比を制御するシステムに限定されず、ＰＩＤ制御等、他の方式のフィードバック制御で空燃比を制御するシステムに適用して実施できる。
【０１０１】
その他、本発明は、図１に示すような吸気ポート噴射式の内燃機関に限定されず、筒内噴射式の内燃機関や、吸気ポート噴射用の燃料噴射弁と筒内噴射用の燃料噴射弁の両方を備えたデュアル噴射式の内燃機関にも適用して実施できる等、要旨を逸脱しない範囲内で種々変更して実施できることは言うまでもない。
【図面の簡単な説明】
【０１０２】
【図１】本発明の一実施例を示すエンジン制御システム全体の概略構成図である。
【図２】空燃比フィードバック制御系の各部の機能を表す機能ブロック図である。
【図３】燃料噴射量演算プログラムの処理の流れを示すフローチャートである。
【図４】制御対象特性値演算プログラムの処理の流れを示すフローチャートである。
【図５】噴射間隔演算プログラムの処理の流れを示すフローチャートである。
【図６】減衰係数ζ、固有角周波数ω演算プログラムの処理の流れを示すフローチャートである。
【図７】モデルパラメータ演算プログラムの処理の流れを示すフローチャートである。
【図８】特性多項式の係数演算プログラムの処理の流れを示すフローチャートである。
【図９】制御パラメータ演算プログラムの処理の流れを示すフローチャートである。
【図１０】ＦＡＦ演算プログラムの処理の流れを示すフローチャートである。
【図１１】制御ゲイン算出プログラムの処理の流れを示すフローチャートである。
【図１２】制御パラメータ個数算出プログラムの処理の流れを示すフローチャートである。
【図１３】制御対象特性変化格納プログラムの処理の流れを示すフローチャートである。
【図１４】空燃比センサの出力（空燃比）の変化方向を判定する方法を説明するためのタイムチャートである。
【図１５】制御対象の応答時間とエンジン運転条件との関係の一例を示す図である。
【図１６】制御対象の無駄時間とエンジン運転条件との関係の一例を示す図である。
【図１７】空燃比センサの応答時間のリッチ側／リーン側の非対称劣化とエンジン運転条件との関係の一例を示す図である。
【図１８】制御対象の無駄時間のリッチ側／リーン側の非対称劣化とエンジン運転条件との関係の一例を示す図である。
【図１９】応答時間劣化度合をパラメータとする制御ゲイン補正係数マップの一例を示す図である。
【図２０】応答時間劣化に応じて制御ゲイン補正係数を変化させる挙動の一例を示すタイムチャートである。
【図２１】無駄時間の劣化とフィードバック制御に用いる無駄時間との関係を説明するタイムチャートである。
【符号の説明】
【０１０３】
１１…エンジン（内燃機関）、１２…吸気管、１４…エアフローメータ、２０…燃料噴射弁、２２…排気管、２３…触媒、２４…空燃比センサ、２７…ＥＣＵ（空燃比フィードバック制御手段，無駄時間検出手段，無駄時間劣化度合判定手段，応答時間検出手段，応答時間劣化度合判定手段，制御ゲイン補正手段）
【図１】
2009115012.tif 000003
【図２】
2009115012.tif 000004
【図３】
2009115012.tif 000005
【図４】
2009115012.tif 000006
【図５】
2009115012.tif 000007
【図６】
2009115012.tif 000008
【図７】
2009115012.tif 000009
【図８】
2009115012.tif 000010
【図９】
2009115012.tif 000011
【図１０】
2009115012.tif 000012
【図１１】
2009115012.tif 000013
【図１２】
2009115012.tif 000014
【図１３】
2009115012.tif 000015
【図１４】
2009115012.tif 000016
【図１５】
2009115012.tif 000017
【図１６】
2009115012.tif 000018
【図１７】
2009115012.tif 000019
【図１８】
2009115012.tif 000020
【図１９】
2009115012.tif 000021
【図２０】
2009115012.tif 000022
【図２１】
2009115012.tif 000023