(57)【要約】【課題】制御対象の個々の現状に合った適切なフィードバックゲインにてフィードバック制御を行うことにより、制御出力のハンチングを効果的に抑制できるようにする。【解決手段】ＦＢ項演算部６３は、制御対象モデルに状態フィードバック制御則を適用した閉ループ制御モデルに基づき、その制御モデルの極αFBとモデルパラメータａ1，ｂ1，ｂ2とを用いてＦＢゲインＦ（１）〜Ｆ（９）を演算する。そして、目標値と制御出力との制御偏差ｅ（ｉ）に基づき、ＦＢゲインＦ（１）〜Ｆ（９）を用いた状態フィードバック制御則によって、ＦＢ項ｕfb（ｉ）を演算する。極αFBは、極設定部７７により設定される。極設定部７７は、制御出力ｙ（ｉ）のハンチングが検出されると、現在設定している極αFBを１に近づけることで、ＦＢゲインを小さくしてハンチングを抑制する。【選択図】図２
2013200780.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を模擬した制御対象モデルを用いてその制御対象の制御出力が目標値に追従するようにその制御対象へ入力する操作量を状態フィードバック制御する制御方法であって、
前記制御対象モデルに状態フィードバック制御則を適用した閉ループ制御モデルの極を設定して、その設定した極と前記制御対象モデルのモデルパラメータとを用いてフィードバックゲインを演算し、
前記目標値と前記制御出力とからその両者の差分を示す制御偏差を演算して、その制御偏差に基づき、前記フィードバックゲインを用いた前記状態フィードバック制御則によって、前記操作量としてのフィードバック操作量を演算し、
前記制御出力のハンチングを検出した場合には、前記フィードバックゲインが小さくなる方向に前記極を再設定する
ことを特徴とする制御方法。
【請求項２】
制御対象を模擬した制御対象モデルを用いてその制御対象の制御出力が目標値に追従するようにその制御対象へ入力する操作量を状態フィードバック制御する制御装置であって、
前記制御対象モデルに状態フィードバック制御則を適用した閉ループ制御モデルの極を、所定の安定条件を満たす範囲内の値に設定する極設定手段と、
前記極設定手段により設定された前記極と前記制御対象モデルのモデルパラメータとを用いてフィードバックゲインを演算するフィードバックゲイン演算手段と、
前記目標値と前記制御出力とからその両者の差分を示す制御偏差を演算し、その制御偏差に基づき、前記フィードバックゲイン演算手段により演算された前記フィードバックゲインを用いた前記状態フィードバック制御則によって、前記操作量としてのフィードバック操作量を演算するフィードバック操作量演算手段と、
前記制御出力のハンチングを検出するハンチング検出手段と、
を備え、
前記極設定手段は、前記ハンチング検出手段により前記ハンチングが検出された場合は、前記フィードバックゲインが小さくなる方向に前記極を再設定する
ことを特徴とする制御装置。
【請求項３】
請求項２に記載の制御装置であって、
前記閉ループ制御モデルは離散時間系の制御モデルであり、
前記極設定手段は、絶対値が１未満となる範囲内で前記極を設定し、前記ハンチング検出手段により前記ハンチングが検出された場合は、前記極を、現在設定している値よりもその絶対値が１に近付くように再設定する
ことを特徴とする制御装置。
【請求項４】
請求項２又は請求項３に記載の制御装置であって、
前記ハンチング検出手段により前記ハンチングが検出されない状態が所定時間継続したか否かを判断するハンチング無検出継続判断手段を備え、
前記極設定手段は、前記ハンチング無検出継続判断手段により前記ハンチングが前記所定時間継続して検出されていないと判断された場合は、前記フィードバックゲインが大きくなる方向に前記極を再設定する
ことを特徴とする制御装置。
【請求項５】
請求項２〜請求項４の何れか１項に記載の制御装置であって、
前記目標値に対し、予め設定されたなまし係数を用いてなまし処理を行うことにより、その目標値がなまされたなまし目標値を算出するなまし処理手段と、
前記なまし処理における前記目標値をなます程度を決定付ける前記なまし係数を設定するなまし係数設定手段と、
前記なまし処理手段により算出された前記なまし目標値に基づいて、前記操作量としてのフィードフォワード操作量を演算するフィードフォワード操作量演算手段と、
前記フィードフォワード操作量演算手段により演算された前記フィードフォワード操作量と前記フィードバック操作量演算手段により演算された前記フィードバック操作量とを加算することにより、前記制御対象へ入力する前記操作量を演算する入力操作量演算手段と、
を備え、
前記なまし係数設定手段は、前記ハンチング検出手段により前記ハンチングが検出された場合は、前記なまし係数を、現在設定している値よりも所定量大きい値に再設定する
ことを特徴とする制御装置。
【請求項６】
請求項５に記載の制御装置であって、
前記ハンチング検出手段により前記ハンチングが検出されない状態が所定時間継続したか否かを判断するハンチング無検出継続判断手段を備え、
前記なまし係数設定手段は、前記ハンチング無検出継続判断手段により前記ハンチングが前記所定時間継続して検出されていないと判断された場合は、前記なまし係数を、現在設定している値よりも所定量小さい値に再設定する
ことを特徴とする制御装置。
【請求項７】
請求項５又は請求項６に記載の制御装置であって、
前記フィードバック操作量演算手段は、前記なまし処理手段により算出された前記なまし目標値と前記制御出力とから前記制御偏差を演算し、その制御偏差に基づいて前記フィードバック操作量を演算する
ことを特徴とする制御装置。
【請求項８】
請求項５〜請求項７の何れか１項に記載の制御装置であって、
前記極に対してその絶対値の上限値を示す極上限値が予め設定されていると共に、前記なまし係数に対してもその上限値を示すなまし係数上限値が予め設定されており、
前記極が前記極上限値に到達したか否かを判断する極上限判断手段と、
前記なまし係数が前記なまし係数上限値に到達したか否かを判断するなまし係数上限判断手段と、
を備え、
前記入力操作量演算手段は、前記極上限判断手段および前記なまし係数上限判断手段のうち少なくとも何れか一方にて、対応する前記上限値に到達したと判断された場合は、少なくとも前記フィードバック操作量を用いない、所定の異常時演算方法にて、前記操作量を演算する
ことを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フィードバック制御により制御対象を制御する機能を備えた制御装置、およびその制御装置で用いられる制御方法に関する。
【背景技術】
【０００２】
従来、フィードバック制御により制御対象を制御する制御方法として、制御対象をモデル化して状態フィードバックにより制御入力（操作量）を算出し、その算出した制御入力に応じた操作を制御対象に加えることにより制御対象を制御する、モデルベースのフィードバック制御が知られている（例えば、特許文献１参照。）。また、このフィードバック制御にフィードフォワード制御を組み合わせた制御方法も知られている（例えば、特許文献２参照。）。
【０００３】
このような従来のフィードバック制御では、制御に用いるフィードバックゲインは予め設計された固定値を用いるのが一般的である。しかし、モデルベース設計であるが故に、モデル化誤差が生じると制御性が不安定となり、これにより制御出力のハンチングが生じてしまう。
【０００４】
なお、モデル化誤差とは、制御対象のばらつきや経年変化などの種々の要因で、制御対象モデルの入出力関係が設計時に想定したモデルから変動することである。例えば車両のエンジンにおいて、排出ガスの空燃比をセンサで検出してその空燃比が目標空燃比に追従するように燃料噴射量を制御するような制御システムでは、モデル化誤差の要因として、センサやアクチュエータ（燃料噴射装置）、エンジン等の経年変化（劣化も含む）、ばらつき、運転条件の差異などが考えられる。
【０００５】
これに対し、特許文献１には、運転条件毎にフィードバックゲインを持つことが記載されている。また、特許文献２には、フィードバックゲインを用いて算出されたフィードバック操作量に対して変動要素を考慮した補正を行うことが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１３００２０号公報
【特許文献２】特開２００８−２８７５８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に記載の技術は、モデル化誤差への対応を行うものではないため、ハンチングに対する抑制効果は望み難い。特許文献２に記載の技術は、モデル化誤差への対応としては限定的な手法であり、モデル化誤差への対応（ハンチング抑制）を十分に行うことはできない。
【０００８】
本発明は上記課題に鑑みなされたものであり、制御対象の個々の現状に合った適切なフィードバックゲインにてフィードバック制御を行うことにより、制御出力のハンチングを効果的に抑制できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するためになされた請求項１に記載の発明は、制御対象を模擬した制御対象モデルを用いてその制御対象の制御出力が目標値に追従するようにその制御対象へ入力する操作量を状態フィードバック制御する制御方法であって、制御対象モデルに状態フィードバック制御則を適用した閉ループ制御モデルの極を設定して、その設定した極と制御対象モデルのモデルパラメータとを用いてフィードバックゲインを演算し、目標値と制御出力とからその両者の差分を示す制御偏差を演算して、その制御偏差に基づき、フィードバックゲインを用いた状態フィードバック制御則によって、操作量としてのフィードバック操作量を演算する。そして、制御出力のハンチングを検出した場合には、フィードバックゲインが小さくなる方向に極を再設定する。
【００１０】
本発明の制御方法によれば、制御対象のモデル化誤差に起因して制御出力のハンチングが生じた場合、極が再設定されることによりフィードバックゲインが小さくなり、制御系をより安定化させることができる。そのため、制御対象の個々の現状に合った（モデル化誤差等が考慮された）適切なフィードバックゲインにてフィードバック制御を行うことができ、制御出力のハンチングを効果的に抑制することができる。
【００１１】
請求項２に記載の発明は、制御対象を模擬した制御対象モデルを用いてその制御対象の制御出力が目標値に追従するようにその制御対象へ入力する操作量を状態フィードバック制御する制御装置であって、制御対象モデルに状態フィードバック制御則を適用した閉ループ制御モデルの極を、所定の安定条件を満たす範囲内の値に設定する極設定手段と、その極設定手段により設定された極と制御対象モデルのモデルパラメータとを用いてフィードバックゲインを演算するフィードバックゲイン演算手段と、目標値と制御出力とからその両者の差分を示す制御偏差を演算し、その制御偏差に基づき、フィードバックゲイン演算手段により演算されたフィードバックゲインを用いた状態フィードバック制御則によって、操作量としてのフィードバック操作量を演算するフィードバック操作量演算手段と、制御出力のハンチングを検出するハンチング検出手段と、を備える。そして、極設定手段は、ハンチング検出手段によりハンチングが検出された場合は、フィードバックゲインが小さくなる方向に極を再設定する。
【００１２】
このように構成された制御装置によれば、上述した本発明の制御方法が実現される。即ち、上述した本発明の制御方法によって極の設定、フィードバックゲインの算出が行われ、且つ、ハンチングが検出された場合には極の再設定がなされる。そのため、上述した本発明の制御方法と同様の作用効果が得られる。
【００１３】
ハンチング検出時に極を再設定する具体的方法は種々考えられるが、閉ループ制御モデルが離散時間系制御モデルで表される場合は、請求項３に記載のように極の再設定を行うようにするとよい。
【００１４】
即ち、極設定手段は、絶対値が１未満となる範囲内で極を設定する。そして、ハンチング検出手段によりハンチングが検出された場合は、極を、現在設定している値よりもその絶対値が１に近付くように再設定する。このようにしてハンチング検出時に極の再設定を行うことで、ハンチングの抑制を適切且つ確実に行うことができる。
【００１５】
請求項４に記載の発明は、請求項２又は請求項３に記載の制御装置であって、ハンチング検出手段によりハンチングが検出されない状態が所定時間継続したか否かを判断するハンチング無検出継続判断手段を備える。そして、極設定手段は、ハンチング無検出継続判断手段によりハンチングが所定時間継続して検出されていないと判断された場合は、フィードバックゲインが大きくなる方向に極を再設定する。
【００１６】
即ち、ハンチングが検出された場合にはフィードバックゲインが小さくなる方向に極の再設定を行う一方で、ハンチングの無検出状態が所定時間継続した場合には、逆にフィードバックゲインが大きくなる方向に極の再設定を行う。
【００１７】
このように、ハンチングの検出状態に応じて極の再設定を行うことによりフィードバックゲインを増減させることで、制御対象の現状に合ったより適切なフィードバックゲインにて制御対象を制御することができ、ハンチングの効果的な抑制と制御応答性の向上とを両立させることができる。
【００１８】
請求項５に記載の発明は、請求項２〜請求項４の何れか１項に記載の制御装置であって、目標値に対し、予め設定されたなまし係数を用いてなまし処理を行うことにより、その目標値がなまされたなまし目標値を算出するなまし処理手段と、上記なまし処理における、目標値をなます程度を決定付ける上記なまし係数を設定するなまし係数設定手段と、なまし処理手段により算出されたなまし目標値に基づいて、操作量としてのフィードフォワード操作量を演算するフィードフォワード操作量演算手段と、そのフィードフォワード操作量演算手段により演算されたフィードフォワード操作量とフィードバック操作量演算手段により演算されたフィードバック操作量とを加算することにより、制御対象へ入力する操作量を演算する入力操作量演算手段と、を備える。そして、なまし係数設定手段は、ハンチング検出手段によりハンチングが検出された場合は、なまし係数を、現在設定している値よりも所定量大きい値に再設定する。
【００１９】
即ち、フィードフォワード操作量の演算では、目標値をそのまま用いるのではなく、なまし処理後のなまし目標値を用いる。即ち、なまし処理されたなまし目標値をその演算タイミングでの実質的な目標値（フィードフォワード操作量の算出に用いる目標値。以下「実質目標値」ともいう。）とする。なまし処理とは、目標値の変化を制限すること、即ち、実際の目標値の変化量よりも実質目標値の変化量が小さくなるようにその実質目標値の変化量に制限を設ける処理である。換言すれば、実際の目標値の変化を平滑化してその平滑化された目標値を実質目標値（なまし目標値）とする処理であるとも言える。
【００２０】
このように構成された制御装置では、フィードバック操作量とフィードフォワード操作量が加算されることで操作量が演算される。つまり、フィードバック制御とフィードフォワード制御を備えた制御系が構築されている。そして、フィードフォワード操作量は、目標値に基づいて算出されるものであるが、目標値をそのまま用いるのではなく、目標値をなまし処理したなまし目標値を用いて算出される。そのため、目標値の変化が大きくても（ステップ的に変化しても）フィードフォワード操作量が大きく変化するのが抑えられる。
【００２１】
そして、なましの程度を決定付けるなまし係数を、ハンチングが検出された場合には大きい値に設定する。つまり、ハンチング検出時には目標値をより大きくなまして、目標値の変動を抑えるのである。そのため、フィードバック制御とフィードフォワード制御の双方を備えた制御系において、ハンチングを効果的に抑制することができる。
【００２２】
請求項６に記載の発明は、請求項５に記載の制御装置であって、ハンチング検出手段によりハンチングが検出されない状態が所定時間継続したか否かを判断するハンチング無検出継続判断手段を備え、なまし係数設定手段は、ハンチング無検出継続判断手段によりハンチングが所定時間継続して検出されていないと判断された場合は、なまし係数を、現在設定している値よりも所定量小さい値に再設定する。
【００２３】
このように、ハンチングの検出状態に応じてなまし係数の再設定を行うことにより目標値のなましの程度を増減させることで、制御対象の現状に合ったより適切なフィードフォワード操作量にて制御対象を制御することができ、ハンチングの効果的な抑制と制御出力の目標値への追従性向上とを両立させることができる。
【００２４】
請求項７に記載の発明は、請求項５又は請求項６に記載の制御装置であって、フィードバック操作量演算手段は、なまし処理手段により算出されたなまし目標値と制御出力とから制御偏差を演算し、その制御偏差に基づいてフィードバック操作量を演算する。
【００２５】
つまり、フィードバック操作量を演算する際（詳しくは制御偏差を演算する際）にもなまし目標値を用いるのであり、これにより、目標値が大きく変動しても制御出力を安定的に目標値に追従させることができる。
【００２６】
請求項８に記載の発明は、請求項５〜請求項７の何れか１項に記載の制御装置であって、極に対してその絶対値の上限値を示す極上限値が予め設定されていると共に、なまし係数に対してもその上限値を示すなまし係数上限値が予め設定されている。また、極が極上限値に到達したか否かを判断する極上限判断手段と、なまし係数がなまし係数上限値に到達したか否かを判断するなまし係数上限判断手段と、を備える。そして、入力操作量演算手段は、極上限判断手段およびなまし係数上限判断手段のうち少なくとも何れか一方にて、対応する上限値に到達したと判断された場合は、少なくともフィードバック操作量を用いない、所定の異常時演算方法にて、操作量を演算する。
【００２７】
ハンチング検出によって極の再設定及びなまし係数の再設定が行われた結果、何れか一方でも、対応する上限値に達したということは、制御系の何らかの異常が考えられる。そこで、そのような場合はフィードバック制御を中止し、例えばフィードフォワード操作量を用いた操作量にて制御対象を制御するなどの対応をすることで、上限到達後も必要最小限の制御は行えるようにすることができる。
【図面の簡単な説明】
【００２８】
【図１】実施形態の車両制御システムの全体構成を表す説明図である。
【図２】実施形態の空燃比制御システムの構成を表す機能ブロック図である。
【図３】実施形態の空燃比制御システムにおけるインジェクタ駆動制御処理を表すフローチャートである。
【図４】図３のインジェクタ駆動制御処理におけるＳ１５０のハンチング検出処理の詳細を表すフローチャートである。
【図５】図３のインジェクタ駆動制御処理におけるＳ２６０のＦＢ項算出処理の詳細を表すフローチャートである。
【図６】モデル化誤差が生じた場合の挙動を表すシミュレーション結果であり、（ａ）は制御対象のゲイン（制御対象モデル）の変動を表し、（ｂ）は目標値ｒ、ＦＢ目標値ｙｒ、および制御量ｙの変動を表し、（ｃ）は操作量ｕｆｉｎａｌの変動を表し、（ｄ）はなまし係数αおよび極αFBの変動を表す。
【図７】外乱が加わった場合の挙動を表すシミュレーション結果であり、（ａ）は制御対象のゲイン（制御対象モデル）の変動を表し、（ｂ）は外乱の印加状態を表し、（ｃ）はＦＢ目標値ｙｒおよび制御量ｙの変動を表し、（ｄ）は操作量ｕｆｉｎａｌの変動を表し、（ｅ）はなまし係数αおよび極αFBの変動を表す。
【発明を実施するための形態】
【００２９】
以下に、本発明の好適な実施形態を図面に基づいて説明する。
図１に示す本実施形態の車両制御システム１は、エンジン１０を制御するものである。この車両制御システム１において、内燃機関であるエンジン１０の制御は、当該システム１が備える電子制御装置（ＥＣＵ）５０が各種処理を実行することにより実現される。以下では、まず、車両制御システム１の全体構成について説明し、その後、ＥＣＵ５０で実行される処理の内容について具体的に説明する。
【００３０】
（１）車両制御システム１の全体構成
図１に示すように、本実施形態の車両制御システム１においては、エンジン１０の吸気管１３の最上流部に、エアクリーナ１５が設けられ、このエアクリーナ１５の下流側に、吸入空気量を検出するエアフローメータ１７が設けられている。また、エアフローメータ１７の下流側には、モータ１９によって開度調整されるスロットルバルブ２０とスロットル開度を検出するスロットル開度センサ２１とが設けられている。
【００３１】
スロットルバルブ２０の下流側には、サージタンク１３ａが設けられており、このサージタンク１３ａには、吸気管圧力を検出する吸気管圧力センサ２３が設けられている。また、サージタンク１３ａには、エンジン１０の各気筒に空気を導入する吸気マニホールド２５が設けられ、各気筒の吸気マニホールド２５の吸気ポート近傍には、燃料を噴射するインジェクタ２７が設けられている。
【００３２】
この他、エンジン１０のシリンダヘッドには、気筒毎に、点火プラグ２９が設けられ、気筒内の混合気は、点火プラグ２９の火花放電によって着火される。この他、エンジン１０が有する吸気バルブ３１及び排気バルブ３２のそれぞれは、可変バルブタイミング調整機構３３，３４によって駆動されるように構成され、本実施形態の車両制御システム１では、エンジン運転状態に応じて、吸気／排気バルブタイミング（ＶＶＴ角度）が調整される。
【００３３】
また、エンジン１０の排気管３５には、排出ガスを浄化する三元触媒等の触媒３７が設けられ、触媒３７の上流側には、排出ガスの空燃比λを検出する空燃比センサ３９が設けられている。この他、エンジン１０のシリンダブロックには、冷却水温を検出する水温センサ４１、及び、エンジン回転速度を検出する回転速度センサ（クランク角センサ）４３が設けられている。
【００３４】
これら各種センサの出力は、ＥＣＵ５０に入力され、ＥＣＵ５０は、これらのセンサ入力に基づき、各種処理を実行する。具体的に、ＥＣＵ５０は、マイクロコンピュータを主体として構成されており、内蔵されたＲＯＭに記録された各種のエンジン制御用プログラムを実行することで、空燃比制御、可変バルブタイミング制御、スロットル開度制御、アイドル回転速度制御等の各種のエンジン制御を実現する。以下、本発明を空燃比制御に適用した例につい、より具体的に説明する。
【００３５】
（２）空燃比制御の概要
本実施形態の車両制御システム１では、空燃比λの目標値である目標空燃比λTの逆数１／λTを制御目標（目標値ｒ）として、運転状態に応じて目標値ｒを切り替え、目標値ｒと、空燃比センサ３９で検出された実際の空燃比（実空燃比）λとに基づき（詳しくは実空燃比λの逆数１／λを制御量ｙとしてその制御量ｙとに基づき）、インジェクタ２７の燃料噴射量を調整し、空燃比制御を実現する。具体的に、本実施形態では、フィードフォワード制御系にフィードバック制御系を組み合わせてなる２自由度系の空燃比制御システムにより、空燃比制御を実現する。
【００３６】
本実施形態の空燃比制御システムにおいて、フィードフォワード制御では、目標値ｒと制御対象モデルのモデルパラメータとに基づいて、フィードフォワード操作量、即ち制御則におけるフィードフォワード項（以下「ＦＦ項」という）ｕffを演算する。また、フィードバック制御では、制御対象モデルに状態フィードバック制御則を適用した閉ループ制御モデルを設定して、目標値ｒと制御量（制御出力）ｙとの差分に基づく状態フィードバックによりフィードバックゲイン（以下「ＦＢゲイン」と称する）を算出し、そのＦＢゲインを用いて、制御量ｙが目標値ｒに追従するように、フィードバック操作量、即ち制御則におけるフィードバック項（以下「ＦＢ項」という）ｕfbを演算する。フィードフォワード制御及びフィードバック制御のいずれも、制御対象を模擬した制御対象モデル（インジェクタ２７から空燃比センサ３９までのプラントモデル）を用いたいわゆるモデルベース制御である。そして、これらＦＦ項ｕffとＦＢ項ｕfbを加算したものに更に操作量補正値を加えることで、最終的に制御対象へ入力すべき操作量を演算する。
【００３７】
本実施形態の空燃比制御システムでは、所定周期の演算タイミング毎に、目標値ｒを算出すると共に制御量ｙを取得し、それらをもとにＦＦ項ｕffおよびＦＢ項ｕfbを算出して、これらを用いて最終的にプラントへ入力する操作量ｕｆｉｎａｌを算出する。そして、その算出された操作量ｕｆｉｎａｌに応じた燃料噴射指令がインジェクタ２７に入力されることで、インジェクタ２７からはその操作量ｕｆｉｎａｌに応じた量の燃料が噴射される。
【００３８】
具体的に、本実施形態の空燃比制御システムは、図２に示すような機能ブロック図にて表すことができる。図２の機能ブロック図は、ＥＣＵ５０にて行われる（詳しくはＥＣＵ５０内のマイクロコンピュータがインジェクタ駆動処理（図３参照）を実行することにより実現される）空燃比制御システムとしての機能をブロック図で表現したものである。
【００３９】
即ち、本実施形態の空燃比制御システムは、図２に示すように、目標値ｒ（ｉ）をなまし処理することによりその目標値ｒ（ｉ）がなまされたなまし目標値ｒｆｉｌｔ（ｉ）を算出する目標値なまし処理部６１と、そのなまし目標値ｒｆｉｌｔ（ｉ）に基づいてＦＦ項ｕff（ｉ）を算出するＦＦ項演算部６２と、なまし目標値ｒｆｉｌｔ（ｉ）に基づいてＦＢ項ｕfbを算出するＦＢ項演算部６３と、操作量補正値ｕｏｔｈｅｒ（ｉ）を算出する他補正演算部６４と、ＦＦ項ｕff（ｉ），ＦＢ項ｕfb（ｉ）および操作量補正値ｕｏｔｈｅｒ（ｉ）の三者を加算することで操作量ｕｆｉｎａｌ（ｉ）を算出する操作量演算部６５と、制御対象モデルのモデルパラメータａ1，ｂ1，ｂ2及びむだ時間ｄを設定するモデルパラメータ設定部７５と、目標値なまし処理部６１におけるなまし処理で用いられるなまし係数α（ｉ）を設定するなまし係数設定部７６と、ＦＢ項演算部６３におけるＦＢゲインの算出に用いられる極αFB（ｉ）を設定する極設定部７７と、制御量ｙ（ｉ）のハンチングを検出するハンチング検出部７８と、を備えた構成となっている。そして、制御対象（プラント）６６においては、入力された操作量ｕｆｉｎａｌに応じた燃料噴射がインジェクタ２７により実行され、その操作量ｕｆｉｎａｌに対して制御出力（制御量）ｙが出力される。
【００４０】
なお、プラントから実際に得られる制御出力は、空燃比センサ３９の計測値である空燃比λであるが、本実施形態の空燃比制御システムでは、その計測された空燃比λの逆数（燃料過剰率）を制御量ｙとしてフィードバック制御に用いている。また、「ｉ」は、離散的に発生する演算タイミングの、ある基準タイミング（例えば制御開始後の最初の演算タイミング）からの累積回数（演算回数）を示すものである。即ち、本実施形態の空燃比制御システムは、演算タイミング毎に各種演算を行うデジタル（離散時間系）の制御システムとして構成されている。
【００４１】
インジェクタ２７から空燃比センサ３９までの制御対象を模擬する制御対象モデルの離散時間系伝達関数Ｈ（ｚ）は、次式（１）のように表すことができる。
【００４２】
【数１】
2013200780.tif 000003
【００４３】
上記式（１）において、ａ1，ｂ1，ｂ2は、制御モデルのモデルパラメータを表し、ｄはむだ時間を表す。
このような制御対象モデルで表される制御対象を制御するために、本実施形態では、目標値ｒ及びモデルパラメータａ1，ｂ1，ｂ2を用いてＦＦ項ｕff（ｉ）を演算すると共に、状態フィードバック制御則によりＦＢ項ｕfb（ｉ）を演算する。
【００４４】
モデルパラメータａ1，ｂ1，ｂ2は、モデルパラメータ設定部７５により設定される。本実施形態では、制御対象モデルに基づいて予めモデルパラメータａ1，ｂ1，ｂ2が設定されており、これらがＦＦ項ｕff（ｉ）およびＦＢ項ｕfb（ｉ）の演算に使用される。
【００４５】
また、モデルパラメータ設定部７５には、むだ時間ｄも設定されている。本実施形態の空燃比制御システムでは、ある演算タイミングで算出された目標値ｒ（ｉ）に基づく燃料噴射指令が出力されてからそれが反映された制御量ｙが観測されるまでにはある程度の時間差Ｌがあるため、その時間差Ｌを考慮してむだ時間ｄを設定している。本実施形態のむだ時間ｄは、上記時間差Ｌが演算周期を基準に換算されて整数化（演算周期の整数倍を表す数値化）されたものである。以下の説明では、一例として、むだ時間ｄ＝７である場合を例に挙げて説明する。
【００４６】
なお、モデルパラメータａ1，ｂ1，ｂ2は、所定周期（例えば上記演算周期）ｄｔで動的に設定するようにしてもよい。具体的には、例えば、モデル時定数τと演算周期ｄｔとを用いて、次式（２）〜（４）により算出するようにしてもよい。
【００４７】
【数２】
2013200780.tif 000004
【００４８】
なお、式（３）中のＬ１は、上記時間差Ｌ、むだ時間ｄ、および演算周期ｄｔを用いて、Ｌ１＝Ｌ−ｄ・ｄｔで演算されるものである。モデルパラメータａ1，ｂ1，ｂ2の動的設定のより具体的な方法については、既述の特許文献１，２に詳しく記載されているため、ここではその詳細説明を省略する。
【００４９】
目標値ｒ（ｉ）は、ＥＣＵ５０が有する目標値生成機能により生成されるものである。ＥＣＵ５０は、上記演算タイミング毎に、エンジン回転数やアクセル開度などの各種エンジン状態に応じてマップ等を用いて目標値ｒ（ｉ）を算出する。
【００５０】
目標値なまし処理部６１は、演算タイミング毎に、目標値ｒ（ｉ）に対してなまし処理を行い、その結果（即ち目標値ｒ（ｉ）がなまされた結果）としてのなまし目標値ｒｆｉｌｔ（ｉ）を出力する。なまし処理は、実際の目標値ｒ（ｉ）の変化を平滑化する処理であり、その平滑化された値が、ＦＦ項ｕff（ｉ）及びＦＢ項ｕfb（ｉ）の演算において用いられる目標値（なまし目標値）となる。本実施形態では、演算タイミング毎に、第１なまし処理から第ｊ（ｊは２以上の自然数）なまし処理までｊ回のなまし処理を行って、各回のなまし処理毎に順次、第ｎなまし値ｒn（ｉ）（ｎ＝１〜ｊ）を算出する。
【００５１】
具体的には、次式（５）〜式（７）に至るｊ回の演算により順次なまし処理を実行していく。
【００５２】
【数３】
2013200780.tif 000005
【００５３】
即ち、上記式（５）による最初の第１なまし処理は、今回の演算タイミングで取得した目標値ｒ（ｉ）と前回の演算タイミングで当該第１なまし処理にて算出した第１なまし値ｒ1（ｉ−１）とをなまし係数αにて重み付け加算することにより第１なまし値ｒ1（ｉ）を算出するものである。
【００５４】
第１なまし値ｒ1（ｉ）を算出すると、続いてその第１なまし値ｒ1（ｉ）を用いて上記式（６）による２回目の第２なまし処理を行い、第２なまし値ｒ2（ｉ）を算出する。この第２なまし処理は、式（５）で算出した第１なまし値ｒ1（ｉ）と前回の演算タイミングで当該第２なまし処理にて算出した第２なまし値ｒ2（ｉ−１）とをなまし係数αにて重み付け加算するものである。同様にして、３回目からｊ回目まで、順次なまし処理を繰り返していく。
【００５５】
即ち、２回目以降のｎ回目の第ｎなまし処理では、ｎ−１回目のなまし処理である第ｎ−１なまし処理にて算出した第ｎ−１なまし値ｒn-1（ｉ）と前回の演算タイミングで当該第ｎなまし処理にて算出した第ｎなまし値ｒn（ｉ−１）とをなまし係数αにて重み付け加算することにより第ｎなまし値ｒn（ｉ）を算出する。これにより、最終的に、式上記（７）にて、ｊ回目の第ｊなまし処理が行われ、第ｊなまし値ｒj（ｉ）が算出される。
【００５６】
このようにｊ回のなまし処理を行うことによって最終的に算出された第ｊなまし値ｒj（ｉ）を、下記式（８）のように、なまし目標値ｒｆｉｌｔ（ｉ）とする。
【００５７】
【数４】
2013200780.tif 000006
【００５８】
なまし係数αは、なましの強さ（重み）を決定するものであって、なまし係数設定部７６によって０≦α＜１の範囲内で設定されるものである。このなまし係数αが大きければ大きいほど、なましの効果が大きくなる。なお、なまし処理を行う回数ｊは適宜設定することができる。目標値なまし処理部６１は、演算タイミング毎に、なまし係数設定部７６で設定されているなまし係数αを取得し、そのなまし係数αを今回の演算タイミングでのなまし係数αとしてなまし処理に用いる。
【００５９】
ＦＦ項演算部６２は、目標値なまし処理部６１において今回の演算タイミングで算出されたなまし目標値ｒｆｉｌｔ（ｉ）と前回の演算タイミングで算出されたなまし目標値ｒｆｉｌｔ（ｉ−１）、及びモデルパラメータａ1，ｂ1，ｂ2を用いて、次式（９）によりＦＦ項ｕff（ｉ）を算出する。
【００６０】
【数５】
2013200780.tif 000007
【００６１】
ＦＢ項演算部６３は、目標値なまし処理部６１で算出されたなまし目標値ｒｆｉｌｔ（ｉ）を用いてＦＢ項ｕfb（ｉ）を算出するものであり、ＦＢ目標値算出部７１と、ＦＢゲイン算出部７２と、偏差演算部７３と、ＦＢ項算出部７４とを備えている。
【００６２】
ＦＢ目標値算出部７１は、むだ時間ｄだけ前の演算タイミングでのなまし目標値ｒｆｉｌｔ（ｉ−ｄ）およびむだ時間ｄ＋１だけ前の演算タイミングでのなまし目標値ｒｆｉｌｔ（ｉ−ｄ−１）と、モデルパラメータｂ1，ｂ2と、むだ時間ｄとに基づいて、次式（１０）により、ＦＢ目標値ｙｒ（ｉ）を算出する。
【００６３】
【数６】
2013200780.tif 000008
【００６４】
なお、ＦＢ項の算出に用いるＦＢ目標値ｙｒ（ｉ）を上記式（１０）により算出するのはあくまでも一例であり、むだ時間ｄだけ前のなまし目標値ｒｆｉｌｔ（ｉ−ｄ）をそのままＦＢ目標値ｙｒ（ｉ）としてもよい。
【００６５】
偏差演算部７３は、次式（１１）に示すように、ＦＢ目標値ｙｒ（ｉ）と制御量ｙ（ｉ）との差分である制御偏差ｅ（ｉ）を演算する。
【００６６】
【数７】
2013200780.tif 000009
【００６７】
ＦＢ項算出部７４は、状態フィードバック制御則に基づき、ＦＢゲイン（本例ではＦ（１）〜Ｆ（９））を用いてＦＢ項ｕfb（ｉ）を算出する。
一般に、状態フィードバックのＦＢゲインＦ（１）〜Ｆ（９）を用いてＦＢ項ｕfb（ｉ）を算出する場合は、これらＦＢゲインＦ（１）〜Ｆ（９）を用いた多項式演算によりＦＢ項ｕfb（ｉ）を直接算出することが多く、本実施形態でもそのような方法により演算するようにしてもよい。しかし、上記方法では、ＦＢゲインＦ（１）〜Ｆ（９）の変化によってＦＢ項ｕfb（ｉ）が一時的に乱れるおそれがある。
【００６８】
そこで本実施形態では、演算タイミング毎に、ＦＢ項ｕfb（ｉ）の補正値であるＦＢ項補正値Δｕfb（ｉ）を算出する。そして、次式（１２）に示すように、その算出したＦＢ項補正値Δｕfb（ｉ）を前回の演算タイミングで算出したＦＢ項ｕfb（ｉ−１）に加算することで、今回のＦＢ項ｕfb（ｉ）を算出する。
【００６９】
【数８】
2013200780.tif 000010
【００７０】
ここで、ＦＢ項補正値Δｕfb（ｉ）は、次式（１３）で表される状態フィードバック制御則により算出する。
【００７１】
【数９】
2013200780.tif 000011
【００７２】
上記式（１３）において、Δｅ（ｉ）は、次式（１４）に示すように、今回の制御偏差ｅ（ｉ）と前回の制御偏差ｅ（ｉ−１）との差分であり、Δｕfb（ｉ−ｎ）（ただしｎ＝１〜７）は、次式（１５）〜（２１）に示すように、ｎ回前の演算タイミングで算出されたＦＢ項ｕfb（ｉ−ｎ）とｎ＋１回前の演算タイミングで算出されたＦＢ項ｕfb（ｉ−ｎ−１）との差分である。
【００７３】
【数１０】
2013200780.tif 000012
【００７４】
上記式（１３）を用いて状態フィードバック制御則によるＦＢ項補正値Δｕfb（ｉ）の演算を行うためには、ＦＢゲインＦ（１）〜Ｆ（９）を算出する必要がある。そこで本実施形態では、ＦＢゲイン算出部７２が、ＦＢゲインＦ（１）〜Ｆ（９）を算出する。
【００７５】
ＦＢゲイン算出部７２は、状態フィードバック制御における極配置法に基づいてＦＢゲインＦ（１）〜Ｆ（９）を算出するものである。具体的には、閉ループ制御モデルの極（閉ループ特性方程式の根）を設定し、その設定した極と、制御対象モデルのモデルパラメータａ1，ｂ1，ｂ2とを用いて、ＦＢゲインを算出する。
【００７６】
本実施形態では、閉ループ特性方程式を、次式（２２）のように設定する。
【００７７】
【数１１】
2013200780.tif 000013
【００７８】
即ち、本実施形態の閉ループ制御モデルの極をαFBとし、この極αFBを適宜設定することで、閉ループ系の安定化を図る。一般に、離散時間系の制御モデルにおいては、極をｚ平面における単位円内に配置する（換言すれば極の絶対値を１未満にする）ことが安定条件であることや、極の絶対値を１に近付けるほどＦＢゲインが小さくなって安定性を向上させることができることが知られている。
【００７９】
そこで本実施形態でも、極αFBを、その絶対値が１未満となるような範囲内で設定する。極αFBの設定は極設定部７７が行うが、その詳細は後述する。
なお、式（２２）の閉ループ特性方程式の左辺（即ち特性多項式）は、他の表現方法も可能であり、例えば次式（２３）のように表すこともできる。
【００８０】
【数１２】
2013200780.tif 000014
【００８１】
上記式（２３）のように特性多項式を設定し、これに基づいてＦＢゲインを算出することは、特許文献１，２に詳しく記載されている。
本実施形態でも、上記式（２３）のような特性多項式を用いて極を設定することも可能であるが、演算の簡素化のため、本実施形態では、上記式（２２）の左辺のような特性多項式を設定し、これをもとに極αFBを設定する。
【００８２】
そのため、極αFBを設定すれば、上記式（２３）における特性多項式の係数Ａ１，Ａ２は次式（２４），（２５）のように求められる。
【００８３】
【数１３】
2013200780.tif 000015
【００８４】
そして、ＦＢゲインＦ（１）〜Ｆ（９）は、これら係数Ａ１，Ａ２を用いて（即ち極αFBを用いて）、次式（２６）〜（３４）によりそれぞれ算出することができる。
【００８５】
【数１４】
2013200780.tif 000016
【００８６】
ＦＢ項算出部７４は、演算タイミング毎に、極設定部７７で設定されている極αFBおよびモデルパラメータ設定部７５で設定されているモデルパラメータａ1，ｂ1，ｂ2を取得する。そして、その取得した極αFB及びモデルパラメータａ1，ｂ1，ｂ2を用いて、上記式（２４）〜（３４）により、ＦＢゲインＦ（１）〜Ｆ（９）を算出する。そして、その算出したＦＢゲインＦ（１）〜Ｆ（９）を用いて上記式（１３）によりＦＢ項補正値Δｕfb（ｉ）を算出し、さらに式（１２）を用いてＦＢ項ｕfb（ｉ）を算出するのである。
【００８７】
ハンチング検出部７８は、演算タイミング毎に、制御量ｙ（ｉ）のハンチングの有無を判断し、その判断結果をなまし係数設定部７６及び極設定部７７に出力する。ハンチング検出の具体的方法については後で図３を用いて説明する。
【００８８】
なまし係数設定部７６は、目標値なまし処理部６１が目標値ｒ（ｉ）をなまし処理する際に用いるなまし係数αを設定する。具体的には、なまし係数αの初期値を０≦α＜１の範囲内の適当な値（例えば０．５）に予め設定しておく。これにより、目標値なまし処理部６１は、少なくとも制御開始時にはその初期値を用いてなまし処理を行う。
【００８９】
そして、ハンチング検出部７８にてハンチングが検出される毎に、なまし係数αを、現在の値（前回演算タイミング時の値）から所定量ＣPαだけ増加させることで、なましの程度をより高めるようにしている。
【００９０】
また、なまし係数設定部７６は、ハンチングが検出されない状態が所定時間継続したかどうかも判断し、ハンチングが検出されない状態が所定時間継続した場合には、なまし係数αを、現在の値から所定量ＣMαだけ減少させることで、なましの程度を低減するようにしている。
【００９１】
極設定部７７は、ＦＢゲイン算出部７２がＦＢゲインＦ（１）〜Ｆ（９）を算出する際に用いる極αFBを設定する。具体的には、まず極αFBの初期値を、１未満の所定の値（例えば０．９）に予め設定しておき、制御開始時にはその初期値を用いて制御を実行させる。
【００９２】
そして、ハンチング検出部７８にてハンチングが検出される毎に、極αFBを、現在の値から所定量ＣpαFBだけ増加させて１に近づけることで、ＦＢゲインを小さくさせ、これによりハンチングの抑制（制御出力の安定化）を図っている。
【００９３】
また、極設定部７７は、ハンチングが検出されない状態が所定時間継続したかどうかも判断し、ハンチングが検出されない状態が所定時間継続した場合には、極αFBを、現在の値から所定量ＣMαFBだけ減少させることで、ＦＢゲインを大きくして制御応答性を高めるようにしている。
【００９４】
なお、ハンチング検出時になまし係数αを増減させる量（ＣPα，ＣMα）や、極αFBを増減させる量（ＣPαFB，ＣMαFB）は、それぞれ個別に設定することができる。
他補正演算部６４は、上記ＦＦ項ｕff（ｉ）及びＦＢ項ｕfb（ｉ）に対する各種の補正を行うものであり、例えばエンジンの冷却水温や車両の加速状態等に基づく所定の演算によって、操作量補正値ｕｏｔｈｅｒ（ｉ）を算出する。
【００９５】
操作量演算部６５は、ＦＦ項演算部６２にて算出されたＦＦ項ｕff（ｉ）、ＦＢ項演算部６３にて算出されたＦＢ項ｕfb（ｉ）、および他補正演算部６４にて算出された操作量補正値ｕｏｔｈｅｒ（ｉ）を加算して、操作量ｕｆｉｎａｌ（ｉ）を算出する。
【００９６】
（３）インジェクタ駆動制御処理の説明
次に、上述した図２の空燃比制御システムの機能を実現すべくＥＣＵ５０が実行するインジェクタ駆動制御処理について、図３を用いて説明する。なお、以下の説明では、説明の簡素化のために、目標値ｒ（ｉ）のなまし処理は２回行う場合（つまりｊ＝２）を例に挙げて説明する。
【００９７】
ＥＣＵ５０のマイクロコンピュータは、演算タイミング毎にこのインジェクタ駆動制御処理を開始すると、まずＳ１１０にて、エンジン状態より目標値ｒ（ｉ）を算出する。なお、ここで算出する目標値ｒ（ｉ）は、目標空燃比λＴ（ｉ）の逆数である。
【００９８】
Ｓ１２０では、制御対象モデルのモデルパラメータを読み出す。具体的には、予め設定されている各モデルパラメータａ1，ｂ1，ｂ2およびむだ時間ｄを読み出す。これらは、既述の通り図２に示したモデルパラメータ設定部７５により設定されるものである。
【００９９】
Ｓ１３０では、空燃比センサ３９の計測値である実空燃比λ（ｉ）を読み出す。そしてＳ１４０にて、その読み出した実空燃比λ（ｉ）の逆数を制御量ｙ（ｉ）とし、Ｓ１５０にて、ハンチング検出処理を行う。このハンチング検出処理は、図２に示したハンチング検出部７８としての機能を実現する処理である。
【０１００】
Ｓ１５０のハンチング検出処理の詳細は、図４に示す通りである。即ち、まずＳ３１０にて、制御量ｙ（ｉ）のハイパスフィルタ処理を行う。具体的には、次式（３５）の演算を行うことにより、低周波成分が除去された制御量であるフィルタ処理制御量ｙHP（ｉ）を算出する。
【０１０１】
【数１５】
2013200780.tif 000017
【０１０２】
なお、このように制御量ｙ（ｉ）をハイパスフィルタ処理することは必須ではなく、制御量ｙ（ｉ）をそのまま用いてＳ３２０以降の処理を行ってもよい。しかし、ハンチングの誤検出を防止して検出精度を高めるためには、ハイパスフィルタ処理を行って不要な成分を除去するのが望ましい。
【０１０３】
ハイパスフィルタ処理後、Ｓ３２０にて、そのフィルタ処理制御量ｙHP（ｉ）が正の第１閾値以上であるか否かを判断する。第１閾値は、ハンチング検出に対して要求される検出感度に応じて適宜設定することができ、本例では例えば０．００５に設定されている。
【０１０４】
Ｓ３２０にてフィルタ処理制御量ｙHP（ｉ）が第１閾値以上であると判断された場合は、Ｓ３３０で判定フラグｓを１にセットして、Ｓ３６０に進む。
Ｓ３２０にてフィルタ処理制御量ｙHP（ｉ）が第１閾値以上と判断されなかった場合は、Ｓ３４０にて、フィルタ処理制御量ｙHP（ｉ）が負の第２閾値以下であるか否かを判断する。第２閾値も、ハンチング検出に対して要求される検出感度に応じて適宜設定することができ、本例では例えば−０．００５に設定されている。
【０１０５】
Ｓ３４０にてフィルタ処理制御量ｙHP（ｉ）が第２閾値以下であると判断された場合は、Ｓ３５０で判定フラグｓを０にセットして、Ｓ３６０に進む。Ｓ３４０にてフィルタ処理制御量ｙHP（ｉ）が第２閾値以下と判断されなかった場合は、そのまま（つまり判定フラグは現状のままとして）Ｓ３６０に進む。
【０１０６】
Ｓ３６０では、所定時間（例えば１秒）内における、判定フラグｓの反転回数ｃｓを更新する。反転回数ｃｓは、初期値は０に設定されており、制御開始後、所定時間（本例では１秒）毎に０にクリアされるものである。そして、演算タイミング毎に、前回の演算タイミングにおいてＳ３６０に進んだときの判定フラグｓと、今回の演算タイミングにおいてＳ３６０に進んだときの判定フラグｓとを比較して、判定フラグが反転している場合には、反転回数ｃｓを１インクリメントする。そのため、１秒の間に、フィルタ処理制御量ｙHP（ｉ）が第１閾値以上への増加と第２閾値以下への減少が繰り返されると、それに応じて反転回数ｃｓが増加していくことになる。
【０１０７】
そして、Ｓ３７０で、反転回数ｃｓが反転回数閾値以上であるか否かを判断する。この反転回数閾値も、ハンチング検出に対して要求される検出感度に応じて適宜設定することができ、本例では例えば２回に設定されている。
【０１０８】
Ｓ３７０にて反転回数ｃｓが反転回数閾値以上であると判断された場合は、Ｓ３８０に進み、ハンチング有との判定、即ちハンチングが発生しているとの判定がなされる。一方、Ｓ３７０にて反転回数ｃｓが反転回数閾値以上と判断されなかった場合は、Ｓ３９０に進み、ハンチング無との判定、即ちハンチングは発生していないとの判定がなされる。
【０１０９】
このようにしてハンチング検出処理（ハンチング有無の判断）を行った後は、Ｓ１６０（図３）に進み、ハンチングが検出されたか否か（即ちＳ１５０のハンチング検出処理にてハンチング有との判定がなされたか否か）を判断する。そして、ハンチングが検出された場合は、Ｓ１７０に進み、次式（３６），（３７）に示すように、なまし係数α及び極αFBをそれぞれ増加させて、Ｓ２００に進む。つまり、なまし係数αについてはより大きくすることでなましの効果を高め、極αFBについては１に近づけることでＦＢゲインを小さくし、これによりハンチングの抑制を図るのである。
【０１１０】
【数１６】
2013200780.tif 000018
【０１１１】
一方、Ｓ１６０にてハンチングが検出されていないと判断された場合（即ちＳ１５０のハンチング検出処理にてハンチング無との判定がなされた場合）は、Ｓ１８０に進み、ハンチング無と判定されている状態が所定時間継続しているか否かを判断する。この所定時間も適宜設定することができる。
【０１１２】
そして、ハンチング無と判定されている状態が所定時間継続していない間は、Ｓ２４０に進むが、ハンチング無と判定されている状態が所定時間継続した場合は、Ｓ１９０に進み、次式（３８），（３９）に示すように、なまし係数α及び極αFBをそれぞれ減少させて、Ｓ２００に進む。つまり、なまし係数αについてはより小さくすることでなましの効果を低くし、極αFBについては１から遠ざける（０に近づける）ことでＦＢゲインを大きくし、これにより制御応答性を高めるのである。
【０１１３】
【数１７】
2013200780.tif 000019
【０１１４】
このＳ１８０の判定は、詳しくは上記の所定時間毎に行われる。即ち、所定時間前の演算タイミングであるｉ−ｍ回前の演算タイミングから、所定時間経過後の今回のｉ回目の演算タイミングまでの間に、継続してハンチング無と判定されている場合に、Ｓ１８０で肯定判定される。その後再び、今回のｉ回目の演算タイミングから、所定時間経過後のｉ＋ｍ回目の演算タイミングまでの期間において、継続してハンチング無と判定されているか否かを判断する。
【０１１５】
或いは、ハンチング無との判定が所定時間継続した以後、ハンチング有と判定されるまでは、演算タイミング毎にＳ１８０で肯定判定してＳ１９０の処理を行うようにしてもよい。
【０１１６】
Ｓ２００では、Ｓ１７０で増加されたか又はＳ１９０で減少されたなまし係数α及び極αFBについて、ガード処理を行う。即ち、なまし係数αについては、次式（４０）に示すようななまし係数下限値Ｍｉｎα〜なまし係数上限値Ｍａｘαの範囲内にあるか否かを判断する。
【０１１７】
【数１８】
2013200780.tif 000020
【０１１８】
そして、なまし係数下限値Ｍｉｎαより小さくなっている場合には、なまし係数αをそのなまし係数下限値Ｍｉｎαに設定し、逆になまし係数上限値Ｍａｘαより大きくなっている場合には、なまし係数αをそのなまし係数上限値Ｍａｘαに設定する。
【０１１９】
同様に、極αFBについても、次式（４１）に示すような極下限値ＭｉｎαFB〜極上限値ＭａｘαFBの範囲内にあるか否かを判断する。
【０１２０】
【数１９】
2013200780.tif 000021
【０１２１】
そして、極下限値ＭｉｎαFBより小さくなっている場合には、極αFBをその極下限値ＭｉｎαFBに設定し、逆に極上限値ＭａｘαFBより大きくなっている場合には、極αFBをその極上限値ＭａｘαFBに設定する。
【０１２２】
Ｓ２００によるガード処理後、Ｓ２１０にて、なまし係数αおよび極αFBのうち何れか一方でも上限値に達しているか否かを判断する。即ち、なまし係数αについてはなまし係数上限値Ｍａｘαに設定されているか否か、極αFBについては極上限値ＭａｘαFBに設定されているか否かを判断する。
【０１２３】
そして、何れか一方でも上限値に設定されている場合には、Ｓ２２０にて、燃料系が異常である旨（即ち空燃比制御システムに何らかの異常が生じている旨）の判定を行い、例えば車両のドライバーに対して退避走行を促すなどの所定の異常時処理を行う。そして、続くＳ２３０にて、当該空燃比制御システムにおいてフィードバック制御を禁止する。即ち、ＦＢ項ｕfb（ｉ）を用いない所定の異常時演算方法（例えばＦＦ項ｕff（ｉ）と操作量補正値ｕｏｔｈｅｒ（ｉ）とを加算したものを操作量ｕｆｉｎａｌ（ｉ）とする演算方法等）によって、操作量ｕｆｉｎａｌ（ｉ）を演算する。これにより、異常時においても退避走行を可能としつつ、ドライバーに対して異常の早期認識及び異常に対する適切且つ迅速な対応を促すようにしている。
【０１２４】
一方、Ｓ２１０にて、なまし係数α及び極αFBのいずれも上限値に設定されていない場合は、Ｓ２４０に進む。Ｓ２４０では、目標値ｒ（ｉ）のなまし処理を行う。具体的には、次式（４２），（４３）により２回のなまし処理を行う。
【０１２５】
【数２０】
2013200780.tif 000022
【０１２６】
そして、その２回のなまし処理の結果を、次式（４４）に示すように、なまし目標値ｒｆｉｌｔ（ｉ）として算出する。
【０１２７】
【数２１】
2013200780.tif 000023
【０１２８】
目標値ｒ（ｉ）のなまし処理後、Ｓ２５０にて、ＦＦ項ｕff（ｉ）を算出する。具体的には、既述の式（９）により算出する。
ＦＦ項ｕff（ｉ）を算出した後は、Ｓ２６０にて、ＦＢ項算出処理を実行する。Ｓ２６０のＦＢ項算出処理の詳細は、図５に示す通りである。即ち、まずＳ４１０にて、ＦＢ目標値ｙｒ（ｉ）を算出する。具体的には、既述の式（１０）により算出する。
【０１２９】
Ｓ４２０では、ＦＢゲインＦ（１）〜Ｆ（９）を算出する。具体的には、現在設定されている極αFBを用いて、既述の式（２４），（２５）により特性多項式の係数Ａ１，Ａ２を算出する。そして、式（２６）〜（３４）を用いて、ＦＢゲインＦ（１）〜Ｆ（９）をそれぞれ算出する。
【０１３０】
Ｓ４３０では、ＦＢ項ｕfb（ｉ）の算出（詳しくはＦＢ項補正値Δｕfb（ｉ）の算出）に用いる各変数ｅ（ｉ），Δｅ（ｉ），Δｕfb（ｉ−ｎ）をそれぞれ、既述の式（１１），式（１４）〜（２１）を用いて算出する。
【０１３１】
そして、Ｓ４４０にて、それら算出した各変数を用いて、既述の式（１３）によりＦＢ項補正値Δｕfb（ｉ）を算出し、さらにそのＦＢ項補正値Δｕfb（ｉ）を用いて、既述の式（１２）によりＦＢ項ｕfb（ｉ）を算出する。このようにしてＦＢ項ｕfb（ｉ）を算出した後は、Ｓ２７０（図３）に進み、操作量補正値ｕｏｔｈｅｒ（ｉ）を算出する。
【０１３２】
そして、Ｓ２８０にて、次式（４５）により操作量ｕｆｉｎａｌ（ｉ）を算出し、その算出した操作量ｕｆｉｎａｌ（ｉ）に基づく燃料噴射指令をインジェクタ２７に出力することで、インジェクタ２７を駆動する。
【０１３３】
【数２２】
2013200780.tif 000024
【０１３４】
（４）実施形態の効果等
以上説明した本実施形態の車両制御システム１によれば、制御対象のモデル化誤差に起因して制御量ｙ（ｉ）のハンチングが生じた場合、極αFBが再設定されることによりＦＢゲインＦ（１）〜Ｆ（９）が小さくなり、ＦＢ項ｕfbの変動が緩やかになる。これにより、制御系をより安定化させることができる。そのため、制御対象の個々の現状に合った（モデル化誤差等が考慮された）適切なＦＢゲインにてフィードバック制御を行うことができ、制御量ｙ（ｉ）のハンチングを効果的に抑制することができる。
【０１３５】
また、極αFBの設定は、安定条件範囲内（０≦αFB＜１）で予め初期値を設定してそれを用い、ハンチングが検出される度に、現在の極αFBに所定量ＣPαFB加算することで、極αFBを１に近づけるようにしている。ハンチングに対する極αFBの再設定をこのように行うことで、簡素な構成ながらハンチングの抑制を適切且つ確実に行うことができる。
【０１３６】
また、極αFBの再設定は、ハンチングが検出される度に所定量増加させるだけでなく、ハンチングが検出されない状態が所定時間継続した場合には所定量ＣMPαFBだけ減算するようにしている。即ち、ハンチングが検出された場合にはＦＢゲインが小さくなる方向に極αFBの再設定を行う一方で、ハンチングの無検出状態が所定時間継続した場合には、逆にＦＢゲインが大きくなる方向に極αFBの再設定を行うのである。
【０１３７】
このように、ハンチングの検出状態に応じて極αFBを増減してＦＢゲインを増減させることで、制御対象の現状に合ったより適切なフィードバックゲインにて制御対象を制御することができ、ハンチングの効果的な抑制と制御応答性の向上とを両立させることができる。
【０１３８】
また、本実施形態では、フィードバック制御に目標値ｒ（ｉ）をそのまま用いず、目標値ｒ（ｉ）をなまし処理したなまし目標値ｒｆｉｌｔ（ｉ）を用いてフィードバック制御を行うようにしている。そのため、目標値ｒ（ｉ）の変化が大きくても（ステップ的に変化しても）、フィードバック制御に用いる目標値の変動を抑えることができ、これによりＦＢ項ｕfb（ｉ）の変動も抑えることができ、ひいては制御量ｙ（ｉ）の変動を抑えることができる。つまり、目標値としてなまし目標値ｒｆｉｌｔ（ｉ）を用いることで、ハンチングの抑制効果が得られる。
【０１３９】
また、本実施形態では、フィードバック制御だけでなくフィードフォワード制御も組み合わせた制御システムにて空燃比制御を行っている。そして、そのフィードフォワード制御においても、なまし目標値ｒｆｉｌｔ（ｉ）を用いてＦＦ項ｕff（ｉ）を算出している。そのため、ＦＦ項ｕff（ｉ）についても、目標値ｒ（ｉ）の変化が大きくてもその変動を抑えることができ、その分、ハンチングを抑制することができる。
【０１４０】
また、目標値ｒ（ｉ）をなまし処理する際に用いるなまし係数αは、極αFBと同様、制御量ｙ（ｉ）のハンチング検出状態に応じて増減される。そのため、フィードバック制御とフィードフォワード制御の双方を備えた制御系において、ハンチングをより効果的に抑制することができる。
【０１４１】
ここで、本実施形態の効果のうち、特になまし係数αおよび極αFBを再設定することによりハンチングを抑制できることの具体例について、図６、図７のシミュレーション結果を用いて説明する。なお、図６及び図７の例では、なまし係数αと極αFBを同じ初期値に設定し、ハンチング検出時の増加量も同じ値としている。
【０１４２】
まず図６は、制御対象のモデル化誤差が生じた場合の挙動を示すものであり、図６（ａ）に示すように、制御対象において時刻６秒から１５秒過ぎごろまでモデル化誤差を与える。目標値ｒは、図６（ｂ）に示すように、所定周期でステップ的に変化させている。
【０１４３】
モデル化誤差が生じていない間、及びモデル化誤差が小さい間は、図６（ｂ）に示すように、制御量ｙは目標値ｒ（ＦＢ目標値ｙｒ）に追従している。しかし、モデル化誤差が大きくなると、それに応じて図６（ｃ）に示すように操作量ｕｆｉｎａｌが大きく変動するようになり、図６（ｂ）に示すように制御量ｙも大きく変動するようになる。これにより、時刻１５秒過ぎあたりでハンチングが検出される。
【０１４４】
ハンチングが検出されると、ハンチングが検出されなくなるまでの間は、図６（ｄ）に示すように、演算タイミング毎に、なまし係数αおよび極αFBが所定量ずつ増加していく。これにより、目標値ｒのなましの程度が大きくなり、かつＦＢゲインＦ（１）〜Ｆ（９）が小さくなるため、図６（ｂ），（ｃ）に示すように、制御量ｙの変動および操作量ｕｆｉｎａｌの変動はいずれも小さくなっていく。このようになまし係数αおよび極αFBを大きくすることで、次の目標値変化時（２１秒過ぎあたり）のハンチングは抑制されている。
【０１４５】
次に、図７は、外乱に対する補償挙動を示している。具体的には、図７（ａ）に示すように時刻６秒から１５秒過ぎごろまで制御対象を変動させることでモデル化誤差を発生させ、それと並行して、図７（ｂ）に示すように、０．１の外乱（例えば、パージ）をパルス的に加えた場合の挙動である。本例でも、外乱によって、図７（ｃ），（ｄ）に示すように、操作量ｕｆｉｎａｌおよび制御量ｙが変動し、ハンチングが生じている。これに対し、図７（ｅ）に示すようになまし係数αおよび極αFBが適切に設定されることで、外乱に対する挙動（ハンチング）が抑制されている。
【０１４６】
そして、本発明を空燃比制御システムに適用することで、モデル化誤差が発生する場合でも、制御量（空燃比）を目標値に追従させる事が可能となり、運転性能、排気ガス浄化性能が向上する。
【０１４７】
なお、本実施形態において、  極設定部７７は本発明の極設定手段および極上限判断手段に相当し、ＦＢゲイン算出部７２は本発明のフィードバックゲイン演算手段に相当し、偏差演算部７３およびＦＢ項算出部７４は本発明のフィードバック操作量演算手段に相当し、ハンチング検出部７８は本発明のハンチング検出手段およびハンチング無検出継続判断手段に相当し、目標値なまし処理部６１は本発明のなまし処理手段に相当し、なまし係数設定部７６は本発明のなまし係数設定手段およびなまし係数上限判断手段に相当し、ＦＦ項演算部６２は本発明のフィードフォワード操作量演算手段に相当し、操作量演算部６５は本発明の入力操作量演算手段に相当する。
【０１４８】
［変形例］
以上、本発明の実施の形態について説明したが、本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
【０１４９】
例えば、上記実施形態では、極αFBについて、まず１未満の初期値を設定し、ハンチング検出状況に応じて所定量増加又は減少させるようにしたが、極αFBは、ｚ平面における単位円内（絶対値が１未満）において適宜設定することができる。そして、ハンチングが検出される毎に、その絶対値が１に近づくように補正し、逆に、ハンチングの無検出状態が継続した場合には絶対値が０に近づくように補正するようにすればよい。ハンチングの検出方法は、図４に示した方法に限らず、種々の方法にて検出を行うことができる。
【０１５０】
また、極αFBの増減については、次のように行うこともできる。例えば、初期値として０に近い値を設定しておく。そして、ハンチング検出毎に徐々に増加させていき、あるところでハンチングが検出されなくなったら、その時点での極αFBを適切な値であるとして以後はその値を使用し続ける（つまり減算はしない）ようにする。逆に、初期値として１に近い値を設定しておき、ハンチング検出毎に徐々に減少させていって、あるところでハンチングがなくなったら、その時点での極αFBを適切な値であるとして以後はその値を使用し続ける（つまり加算はしない）ようにする。
【０１５１】
ただし、上記のように、ハンチングが検出されなくなった時点での極αFBを使用し続けるようにすると、何らかの要因でそのαFBが不適切になってしまうことも考えられる。例えば、たまたま何らかの異常があるときに極αFBが決定してしまった結果、その後その異常が解消されて極αFBが適切な値ではなくなったにもかかわらず、先に決定した極αFBを使用し続けてしまうといったケースが考えられる。そのため、好ましくは、上記実施形態のように、ハンチング検出を継続して行い、その検出状況に応じて極αFBを適宜増減させるのがよい。なまし係数αについても同様である。
【０１５２】
また、目標値ｒのなまし処理について、上記実施形態では、式（５）〜（８）に示した方法で行うようにしたが、このような演算方法はあくまでも一例であり、目標値ｒ（ｉ）を適切になますことができる限り、その具体的方法は種々考えられる。
【０１５３】
また、なまし処理を複数回行う場合、各回のなまし処理におけるなまし係数はそれぞれ個別に設定するようにしてもよい。なお、目標値ｒをなまし処理することは必須ではなく、ＦＢ制御及びＦＦ制御の双方でなまし目標値を用いることも必須ではないが、ハンチング抑制効果を高めるためには、上記実施形態のように、目標値をなまし処理してそのなまし目標値をＦＢ制御及びＦＦ制御の双方で用いるのが好ましい。
【０１５４】
また、上記実施形態では、本発明を空燃比制御システムに適用した例について説明したが、本発明の適用は空燃比制御システムに限定されるものではなく、フィードバック制御により制御対象を制御する制御システム、及びフィードバック制御とフィードフォワード制御の双方で制御対象を制御する制御システムに対して本発明を適用可能である。
【符号の説明】
【０１５５】
１…車両制御システム、１０…エンジン、１３…吸気管、１５…エアクリーナ、１７…エアフローメータ、１９…モータ、２０…スロットルバルブ、２１…スロットル開度センサ、２３…吸気管圧力センサ、２５…吸気マニホールド、２７…インジェクタ、２９…点火プラグ、３１…吸気バルブ、３２…排気バルブ、３３，３４…可変バルブタイミング調整機構、３５…排気管、３７…触媒、３９…空燃比センサ、４１…水温センサ、４３…回転速度センサ、５０…ＥＣＵ、６１…目標値なまし処理部、６２…ＦＦ項演算部、６３…ＦＢ項演算部、６４…他補正演算部、６５…操作量演算部、６６…制御対象（プラント）、７１…ＦＢ目標値算出部、７２…ＦＢゲイン算出部、７３…偏差演算部、７４…ＦＢ項算出部、７５…モデルパラメータ設定部、７６…なまし係数設定部、７７…極設定部、７８…ハンチング検出部
【図１】
2013200780.tif 000025
【図２】
2013200780.tif 000026
【図３】
2013200780.tif 000027
【図４】
2013200780.tif 000028
【図５】
2013200780.tif 000029
【図６】
2013200780.tif 000030
【図７】
2013200780.tif 000031