(57)【要約】【課題】操作量の指令値の急激な変動を抑制する。【解決手段】モデル予測制御における評価関数における操作量のパワーに関する項を、現時刻の１単位時間前の操作量との差を全予測区間において考慮する形で変更することで、操作量の指令値の急激な変動を抑制するための行列が導入される。すなわち、排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列が導入される。【選択図】図９
2012167577.tif 000002
【特許請求の範囲】
【請求項１】
排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、
前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前記吸気圧の測定値及び前記新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第１の時系列値及び前記可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、
前記排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第２の時系列値及び前記可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、
を加算して得られる、前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成するステップと、
前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値を抽出すると共に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップと、
を、プロセッサに実行させるための制御プログラム。
【請求項２】
前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値が、前記排気循環器のバルブ開度及び前記可変ノイズターボのノズル開度の飽和による制約条件を満たすか判断するステップと、
前記制約条件が満たされないと判断された場合には、前記制約条件を満たしつつ、追従誤差に関する値と、操作量と現在時刻の１単位時間前の操作量との差に関する値とを重み付け加算した評価関数の値を最小化するように、前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値を計算し直すステップと、
をさらに、前記プロセッサに実行させるための請求項１記載の制御プログラム。
【請求項３】
排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、
前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と前記吸気圧の測定値及び前記新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第１の時系列値及び前記可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、
前記排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第２の時系列値及び前記可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、
を加算して得られる、前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成するステップと、
前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値を抽出して前記前置補償器で処理し、当該前置補償器によって処理された後の前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップと、
を、プロセッサに実行させるための制御プログラム。
【請求項４】
前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値が、前記排気循環器のバルブ開度及び前記可変ノイズターボのノズル開度の飽和による制約条件を満たすか判断するステップと、
前記制約条件が満たされないと判断された場合には、前記制約条件を満たしつつ、追従誤差に関する値と、操作量と現在時刻の１単位時間前の操作量との差に関する値とを重み付け加算した評価関数の値を最小化するように、前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値を計算し直すステップと、
をさらに、前記プロセッサに実行させるための請求項３記載の制御プログラム。
【請求項５】
排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部と、
前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前記吸気圧の測定値及び前記新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第１の時系列値及び前記可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、
前記排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第２の時系列値及び前記可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、
を加算して得られる、前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成する制御演算部と、
前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値を抽出すると共に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出する指令値算出部と、
を有するエンジン制御装置。
【請求項６】
排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部と、
前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と前記吸気圧の測定値及び前記新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第１の時系列値及び前記可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、
前記排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第２の時系列値及び前記可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、
を加算して得られる、前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成する制御演算部と、
前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値を抽出して前記前置補償器で処理し、当該前置補償器によって処理された後の前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出する指令値算出部と、
を有するエンジン制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、エンジンの制御技術に関する。
【背景技術】
【０００２】
近年のディーゼルエンジンにおいては、エミッションの低減と燃費の向上を目的として、新気量（ＭＡＦ：Mass Air Flow）及び吸気圧（ＭＡＰ：Manifold Air Pressure）が吸気系制御器により最適に制御されている。
【０００３】
一般的に、図１に示すように、ディーゼルエンジンの吸気制御系は、吸気圧制御系と新気量制御系を含み、吸気圧と新気量は、互いに独立に制御されている。吸気圧制御系は、排気中のスス（ＰＭ：Particulate Matter）を低減するために、可変ノズルターボＶＮＴ（Variable Nozzle Turbo）のノズル径を制御して吸気圧を吸気圧目標値に追従するようにコントロールしている。一方、新気量制御系は、排気中の窒素酸化物（ＮＯｘ）を低減するために、排気をシリンダ内に再循環させる排気循環器ＥＧＲ（Exhaust Gas Recirculation）のバルブ開度を制御して新気量を新気量目標値に追従するようにコントロールしている。
【０００４】
これらの制御系に対しては、後に述べる計画器において、運転条件（エンジン回転数ｒｐｍ及び燃料噴射量ｑ）に応じて、最適な吸気圧及び新気量が目標値として、また最適なＶＮＴのノズル開度とＥＧＲのバルブ開度の基準値がフィードフォワード値として決定されて、吸気制御系に出力される。
【０００５】
従来、吸気圧制御系と新気量制御系は、図２のように独立に構成されていた（SISO: Single Input Single Output）。すなわち、吸気制御系は、上段の新気量制御系と下段の吸気圧制御系の２つを含む。新気量制御系は、ＥＧＲのバルブ開度を調節して新気量をコントロールしている。一方、吸気圧制御系は、ＶＮＴのノズル開度を調節して吸気圧をコントロールしている。具体的には、運転条件（燃料噴射量及びエンジン回転数の設定）が入力された計画器は、対応する新気量目標値及び吸気圧目標値とＥＧＲ基準値及びＶＮＴ基準値とを出力する。そして、新気量制御器は、新気量目標値と新気量測定値との差に応じて制御値を出力する。そうすると、当該制御値とＥＧＲ基準値との和がＥＧＲのバルブ開度としてエンジンに入力される。一方、吸気圧制御器は、吸気圧目標値と吸気圧測定値との差に応じて制御値を出力する。そうすると、当該制御値とＶＮＴ基準値との和がＶＮＴのノズル開度としてエンジンに入力される。
【０００６】
しかしながら、エンジンは干渉要素を有する。すなわちＶＮＴのノズル開度に応じて新気量が変化したり、ＥＧＲのバルブ開度に応じて吸気圧が変化したりする。従って、吸気圧と新気量を同時に目標に追従させることが難しい。このため、図３のように、新気量の誤差に応じてＶＮＴノズル開度を変化させるための第１干渉補償と吸気圧の誤差に応じてＥＧＲバルブ開度を変化させるための第２干渉補償を設けて、２つの制御系の干渉を補償する。この干渉補償に加えて、ＶＮＴノズル開度及びＥＧＲバルブ開度の操作量に飽和がある場合に適用可能な協調制御系（ＭＩＭＯ：Multi Input Multi Output）が提案されている。そして、このような協調制御系において、制御系に干渉があり且つ飽和のある場合に有効なモデル予測制御理論による制御系も提案されている。
【０００７】
図４を用いてモデル予測制御について説明する。時刻ｋにおける目標値ｓが設定されると、制御対象であるプラントからの、時刻ｋにおける観測軌道ｙ（ｋ）（＝状態ｘ（ｋ））に応じて、予測区間Ｎにおける参照軌道ｒ（ｋ）（以下で述べるように実質的な目標値であるから目標値ｒ（ｋ）とも記す。）を算出する。この参照軌道ｒ（ｋ）にできるだけ近付くように、時刻ｋから制御区間Ｈｕにおける操作量ｕ（ｋ）、ｕ（ｋ＋１）、．．．ｕ（ｋ＋Ｈｕ−１）を算出する。但し、Ｈｕ＝Ｎの場合もある。そして、操作量ｕ（ｋ）のみを採用してプラントに出力する。以下、時刻ｋ＋１以降同様の処理を実施する。
【０００８】
一般的に、モデル予測制御では、以下で詳細に述べるように目標値ｒ（ｋ）と状態ｘ（ｋ）との追従誤差と操作量ｕ（ｋ）についての評価関数を作成して当該評価関数の値が最小になるように操作量ｕ（ｋ）を算出する。従来においては、操作量ｕ（ｋ）そのものについて評価するか、予測区間Ｎにおける各サンプル点においてその１サンプル前の操作量との差Δｕ（ｋ）＝ｕ（ｋ）−ｕ（ｋ−１）を評価している。しかしながら、従来のモデル予測制御により算出されるＥＧＲ及びＶＮＴへの操作量の出力値（指令値とも呼ぶ）は、例えば図５及び図６に示すように高周波成分を多く含んだ変動が激しい値となる。図５及び図６では、横軸は周波数を表し、縦軸はパワーを表す。図５では、他の手法によるＥＧＲ操作量指令値のパワーの周波数成分を、他の手法によるものと従来のモデル予測制御（ＭＰＣ）によるものとを併せて示している。明らかに従来のモデル予測制御の方が高周波のパワーが高くなっている。同様に、図６では、他の手法によるＶＮＴ操作量指令値のパワーの周波数成分を、他の手法によるものと従来のモデル予測制御（ＭＰＣ）によるものとを併せて示している。この場合も、明らかに従来のモデル予測制御の方が高周波のパワーが高くなっている。
【０００９】
この操作量指令値は、ＥＧＲ及びＶＮＴのサーボ系に与えられるので、これらのサーボ系の応答周波数を超える周波数帯域に強い周波数成分を含んでいると、バルブやターボが応答しきれなくなって発振してしまい、ダメージを与え問題となる場合がある。
【００１０】
なお、モデルを用いて予測を行いながら制御を行う従来技術も存在しているが、図４で示すようなスキームに従ったモデル予測制御の改善ではない。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−１９２１７１号公報
【特許文献２】特表２００５−５１６２９８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
従って、本技術の目的は、エンジンに対する操作量指令値の急激な変動を抑制するためのモデル予測制御技術を提供することである。
【課題を解決するための手段】
【００１３】
第１の態様に係るエンジン制御方法は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、（Ｂ）（ｂ１）燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、吸気圧の測定値及び新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第１の時系列値及び可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、（ｂ２）排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、を加算して得られる、（ｂ３）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成するステップと、（Ｃ）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の１単位時間後の値を抽出すると共に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出するステップとを含む。
【００１４】
第２の態様に係るエンジン制御方法は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、（Ｂ）（ｂ１）燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、吸気圧の測定値及び新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第１の時系列値及び可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、（ｂ２）排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列とから、（ｂ３）排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の１単位時間後の値を抽出して加算するステップと、（Ｃ）排気循環器のバルブ開度の操作量の加算結果及び可変ノズルターボのノズル開度の操作量の加算結果に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出するステップとを含む。
【００１５】
第３の態様に係るエンジン制御方法は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、（Ｂ）（ｂ１）燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と吸気圧の測定値及び新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第１の時系列値及び可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、（ｂ２）排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、を加算して得られる、（ｂ３）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成するステップと、（Ｃ）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の１単位時間後の値を抽出して前置補償器で処理し、当該前置補償器によって処理された後の排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップとを含む。
【００１６】
第４の態様に係るエンジン制御方法は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、（Ｂ）（ｂ１）燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と吸気圧の測定値及び新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第１の時系列値及び可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、（ｂ２）排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列とから、（ｂ３）排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の１単位時間後の値を抽出して加算するステップと、（Ｃ）排気循環器のバルブ開度の操作量の加算結果及び可変ノズルターボのノズル開度の操作量の加算結果に対して前置補償器で処理して、当該前置補償器によって処理された後の排気循環器のバルブ開度の操作量の加算結果及び可変ノズルターボのノズル開度の操作量の加算結果に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出するステップと含む。
【発明の効果】
【００１７】
モデル予測制御をエンジンの制御に適用した場合、エンジンに対する操作量指令値の急激な変動を抑制できるようになる。
【図面の簡単な説明】
【００１８】
【図１】図１は、エンジンの模式図である。
【図２】図２は、エンジンの従来の制御系を説明するためのブロック線図である。
【図３】図３は、他の従来の制御系を説明するためのブロック線図である。
【図４】図４は、モデル予測制御を説明するための図である。
【図５】図５は、従来のモデル予測制御の問題点を説明するための図である。
【図６】図６は、従来のモデル予測制御の問題点を説明するための図である。
【図７】図７は、従来のモデル予測制御のブロック線図を示す図である。
【図８】図８は、本実施の形態におけるエンジンの模式図である。
【図９】図９は、第１の実施の形態におけるブロック線図である。
【図１０】図１０は、第１の実施の形態における処理フローを示す図である。
【図１１】図１１は、第１の実施の形態における処理フローを示す図である。
【図１２】図１２は、第１の実施の形態における、ＥＧＲバルブに対する操作量指令値のパワーの周波数特性を示す図である。
【図１３】図１３は、第１の実施の形態における、ＶＮＴノズルに対する操作量指令値のパワーの周波数特性を示す図である。
【図１４】図１４は、第２の実施の形態におけるブロック線図である。
【図１５】図１５は、第２の実施の形態における処理フローを示す図である。
【図１６】図１６は、第２の実施の形態における処理フローを示す図である。
【図１７】図１７は、第３の実施の形態におけるブロック線図である。
【図１８】図１８は、第３の実施の形態における処理フローを示す図である。
【図１９】図１９は、第３の実施の形態における処理フローを示す図である。
【図２０】図２０は、第４の実施の形態におけるブロック線図である。
【図２１】図２１は、エンジン制御装置をコンピュータで実装する場合のブロック図である。
【図２２】図２２は、エンジン制御装置の機能ブロック図である。
【発明を実施するための形態】
【００１９】
［実施の形態１］
まず、一般的なモデル予測制御を説明して本実施の形態との差を明確化する。制御対象のプラントモデル（例えばディーゼルエンジン）は、以下のように表される。但し、線形時不変システムとする。
【００２０】
【数１】
2012167577.tif 000003
【００２１】
【数２】
2012167577.tif 000004
【００２２】
状態ｘ（ｋ）は、新気量ｘmaf(k)及び吸気圧ｘmap(k)を含み、操作量ｕ（ｋ）は、ＥＧＲバルブ開度の操作量ｕegr(k)及びＶＮＴノズル開度の操作量ｕvntを含み、観測軌道ｙ（ｋ）は、状態（ｋ）と一致している。
【００２３】
このような制御系を、以下のような評価関数を最小とする操作量を求める有限時間最適制御問題として解く。
【００２４】
【数３】
2012167577.tif 000005
【００２５】
ここで、（４）式の第１行目における第１項は、状態ｘ（ｋ）の、目標値ｒ（ｋ）（時刻ｋにおける参照軌道の値）に対する追従誤差の２乗和を示し、第２項は操作量ｕ（ｋ）の二乗和（エネルギー）を示している。Ｑ及びＲは、それぞれの項に対する重みである。この問題は、第１項と第２項との和が最適になるようにｕ（ｋ）を求める問題となる。
【００２６】
そして、重みＱとＲの設定により、第１項と第２項とはトレードオフ関係となる。具体的には、Ｒが一定で、重みＱを大きくすることは、同じｕ（ｋ）のエネルギーで、目標値への追従誤差を相対的に小さくするような解が得られ、逆に重みＱを小さくすることは、目標値への追従誤差は相対的に大きくてもよいというような解が得られる。一方、重みＱが一定で、Ｒを大きくすることは、少ないエネルギーで一定の目標値追従性を達成することを意味し、逆に小さくすることは、大きなエネルギーで一定の目標値追従性を達成することを意味している。このような評価関数は、実際には図４に示したような高周波帯域の成分が高止まりするような操作量をもたらすことになる。
【００２７】
ここで予測期間Ｎに対応するため拡大系を定義すると、（１）式は以下のように書き換えられる。
【００２８】
【数４】
2012167577.tif 000006
【００２９】
【数５】
2012167577.tif 000007
【００３０】
【数６】
2012167577.tif 000008
なお、Ｘは２Ｎ次元の状態ベクトルであり、Ｕも２Ｎ次元の操作量ベクトルである。
【００３１】
さらに、目標値ｒ（ｋ）に関しても２Ｎ次元の目標値ベクトルとして以下のように表す。
【００３２】
【数７】
2012167577.tif 000009
【００３３】
（６）式と（８）式とを用いて（４）式の評価関数を書き換えると以下のようになる。
【００３４】
【数８】
2012167577.tif 000010
【００３５】
【数９】
2012167577.tif 000011
【００３６】
さらに、（５）式の関係を（９）式に代入すると以下のようになる。
【００３７】
【数１０】
2012167577.tif 000012
【００３８】
但し、γはＵに無関係の項をまとめたものである。
【００３９】
【数１１】
2012167577.tif 000013
【００４０】
（１１）式におけるＪ（ｋ）を最適化するＵopt（ｋ）は、以下の条件を満す。
【００４１】
【数１２】
2012167577.tif 000014
【００４２】
従って、以下のように表される。
【００４３】
【数１３】
2012167577.tif 000015
【００４４】
従って、Ｕopt（ｋ）は、以下のように表される。
【００４５】
【数１４】
2012167577.tif 000016
【００４６】
【数１５】
2012167577.tif 000017
【００４７】
最終的に、時刻ｋにおけるＶＮＴノズル開度及びＥＧＲバルブ開度の操作量の最適値ｕopt（ｋ）は、以下のように表される。
【００４８】
【数１６】
2012167577.tif 000018
【００４９】
【数１７】
2012167577.tif 000019
【００５０】
このような制御を行う場合におけるブロック線図を図７に示す。エンジン回転数及び燃料噴射量が入力されると、計画器は、それらに応じた基準値ｕref（ｋ）及び目標値ｓ（ｋ）を出力する。目標値ｓ（ｋ）には、参照軌道行列Ｔが乗じられて参照軌道、すなわち目標ベクトルＴ（ｋ）が生成される。
【００５１】
念のため目標ベクトルＴ（ｋ）について示しておく。本実施の形態では、ステップ応答で１次遅れ要素を介したときの応答の、時刻ｋからｋ＋Ｎまでの時系列値を目標ベクトルＴ（ｋ）とする。伝達関数で表すと以下のとおりである。
【００５２】
【数１８】
2012167577.tif 000020
【００５３】
ここでＴｒは参照軌道の１次遅れの時定数である。Ｔｒを短くすると、即応性のある応答を、長くすると、ゆっくりした応答となる。
【００５４】
これを時間応答に変換すると以下のように表される。
【００５５】
【数１９】
2012167577.tif 000021
【００５６】
これは、以下のようなベクトルで表される。
【００５７】
【数２０】
2012167577.tif 000022
【００５８】
そして、Ｔsをサンプリング周期として、ｔ＝Ｔs×ｉ、ｉは１からＮとすると以下のように展開される。
【００５９】
【数２１】
2012167577.tif 000023
【００６０】
時刻ｔ0をＴs×ｋと置くと、以下のように表される。
【００６１】
【数２２】
2012167577.tif 000024
【００６２】
但し、ｓ（ｋ）は［ｓmaf，ｓmap］Tであるから、参照軌道行列Ｔは、２Ｎ行×２列の以下のような行列である。
【００６３】
【数２３】
2012167577.tif 000025
【００６４】
ここで、参照軌道の時定数Ｔｒについて、ＭＡＦとＭＡＰをＴｒｍａｆ、Ｔｒｍａｐとして、個別に設定してもよい。
【００６５】
一方、エンジン特性の測定値ｘ（ｋ）には（７）式のΨが乗じられて、Ψｘ（ｋ）が算出される。そして、Ｅ（ｋ）＝Ｔ（ｋ）−Ψｘ（ｋ）が算出されて、ＭＰＣの主制御器に入力され、Ｍ2x2NＨ-1ΘTＱ~（Ｑ~又はＱbarはＱバーを表す）がＥ（ｋ）に乗じられる。ＭＰＣの主制御器の出力であるｕopt（ｋ）は、計画器が出力した基準値ｕref（ｋ）と加算されて、エンジンに入力される。
【００６６】
これに対して、本実施の形態では、予測期間Ｎにおける各操作量と現在時刻ｋの１サンプル前の値との差分で評価関数を定義するものである。１サンプル前の操作量をｕ~＝ｕ（ｋ−１）（ｕ~又はｕbarはｕバーを表す）とすると、評価関数Ｊ（ｋ）は以下のように表される。
【００６７】
【数２４】
2012167577.tif 000026
【００６８】
なお、（２−１）式の２行目で明らかなように、予測期間Ｎにおいて全ての操作量について現時点ｋの１サンプル前の操作量を引いた上で評価する点において特徴がある。このような差を小さくするように操作量を算出することで、操作量の変動が小さくなる。
【００６９】
ここで以下のような定義を行う。
【００７０】
【数２５】
2012167577.tif 000027
【００７１】
この（２−２）式をさらに用いて（４）式から（１１）式への変換と同様な変換を、（２−１）式にも行うと、以下のようになる。
【００７２】
【数２６】
2012167577.tif 000028
【００７３】
そして、（２−３）式におけるＪ（ｋ）を最小化するＵopt（ｋ）は、以下の条件を満たす。
【００７４】
【数２７】
2012167577.tif 000029
【００７５】
そうすると、以下のように（２−３）式は表される。
【００７６】
【数２８】
2012167577.tif 000030
【００７７】
従って、Ｕopt（ｋ）は、以下のように表される。
【００７８】
【数２９】
2012167577.tif 000031
【００７９】
（２−５）式は、（１４）式と比較すると、第２項が加わっていることが分かる。この第２項によって、後に述べるように、操作量の急激な変動を抑制できるようになる。
【００８０】
最終的には、ｕopt（ｋ）は以下のように表される。
【００８１】
【数３０】
2012167577.tif 000032
【００８２】
【数３１】
2012167577.tif 000033
【００８３】
本実施の形態では、（２−７）式に基づく制御を行う。図８に、本技術の実施の形態に係るエンジンの一例としてディーゼルエンジンを示す。エンジン本体１には、エンジン本体１からの排ガスを供給する排気循環器ＥＧＲと、排ガスの圧力にてタービンを回して新気（Fresh Air）を圧縮してエンジン本体１に供給する可変ノズルターボＶＮＴとが接続されている。可変ノズルターボＶＮＴのノズル開度を調整することによって、可変ノズルターボＶＮＴのタービンの回転が調整され、吸気圧（ＭＡＰ）センサで測定される吸気圧（ＭＡＰ）が調整される。一方、排気循環器ＥＧＲに設けられているＥＧＲバルブのバルブ開度を調整することによって、新気量（ＭＡＦ）センサで測定される新気量（ＭＡＦ）が調整される。
【００８４】
本実施の形態に係るエンジン制御装置１０００には、ＭＡＰセンサからの吸気圧測定値と、ＭＡＦセンサからの新気量測定値と、外部から与えられる燃料噴射量の設定値と、同じく外部から与えられるエンジン回転数の設定値とが入力されるようになっている。また、エンジン制御装置１０００からは、ＥＧＲバルブのバルブ開度の操作量がＥＧＲバルブに出力され、ＶＮＴノズルのノズル開度の操作量がＶＮＴノズルに出力されるようになっている。
【００８５】
本実施の形態に係るエンジン制御装置１０００のブロック線図を図９に示す。すなわち、燃料噴射量の設定値とエンジン回転数の設定値とが入力されて、燃料噴射量の値及びエンジン回転数の値に対応付けてＥＧＲバルブ開度の目標値及びＶＮＴノズル開度の目標値の組み合わせと新気量ＭＡＦの基準値及び吸気圧ＭＡＰの基準値の組み合わせが登録されている計画器１１０から、燃料噴射量の設定値及びエンジン回転数の設定値に対応するＥＧＲバルブ開度の目標値及びＶＮＴノズル開度の目標値ｓ（ｋ）と、新気量ＭＡＦの基準値及び吸気圧ＭＡＰの基準値ｕref（ｋ）とを読み出す。
【００８６】
なお、計画器１１０は、例えば燃料噴射量の設定値とエンジン回転数の設定値とを行列設定器１１２に出力する。燃料噴射量の設定値とエンジン回転数の設定値ではなく、目標値及び基準値を特定する際に用いた他のパラメータ値であってもよい。行列設定器１１２は、燃料噴射量の設定値とエンジン回転数の設定値に応じて適切な行列Ａ、Ｂ、Ｑ及びＲを特定して、（２−７）式の計算を行うのに用いられる他の行列を算出して、ＭＰＣ主制御部１１４及び変動抑制部１１８に設定する。Ｔ及びΨについても設定がなされる。このような行列の設定は、例えば所定期間ごと、又は大幅に燃料噴射量とエンジン回転数とのうち少なくとも何れかが変化した場合などに実施する。
【００８７】
そして、計画器１１０が出力したＥＧＲバルブ開度の目標値及びＶＮＴノズル開度の目標値ｓ（ｋ）に、参照軌道行列Ｔを乗じて２Ｎ次元の目標ベクトルＴ（ｋ）を算出すると共に、エンジン特性１２０の測定値ｘ（ｋ）にΨを乗じて２Ｎ次元の応答ベクトルΨｘ（ｋ）を算出する。そうすると、２Ｎ次元の誤差ベクトルＥ（ｋ）＝Ｔ（ｋ）−Ψｘ（ｋ）が得られる。
【００８８】
この誤差ベクトルＥ（ｋ）は、ＭＰＣ主制御部１１４に入力される。ＭＰＣ主制御部１１４は、Ｍ2x2NＨ-1ΘTＱ~をＥ（ｋ）に乗じて出力する。ＭＰＣ主制御部１１４の出力と変動抑制部１１８の出力とが加算されて、最適操作量ｕopt（ｋ）が算出される。この最適操作量ｕopt（ｋ）は、計画器１１０が出力したフィードフォワード値ｕref（ｋ）と加算されてエンジン特性１２０に出力される。すなわち、ｕopt（ｋ）＋ｕref（ｋ）によって、ＶＮＴノズル開度及びＥＧＲバルブ開度が制御される。
【００８９】
なお、前操作量行列生成部１１６は、ｕopt（ｋ）を１サンプル時間遅延させた上で（２−２）式の行列Ｕ~を生成して変動抑制部１１８に出力する。変動抑制部１１８は、Ｕ~に対して（２−７）式の第２項であるＭ2x2NＨ-1Ｒ~を乗じてＭ2x2NＨ-1Ｒ~Ｕ~（Ｒ~又はＲbarはＲバーを表す。）を算出する。そうすると、次のサンプル時間でＭＰＣ主制御部１１４の出力と加算される。
【００９０】
次に、エンジン制御装置１０００の詳細な処理内容について図１０及び図１１を用いて説明する。
【００９１】
まず、エンジン制御装置１０００は、ｋ＝０に設定する（図１０：ステップＳ１）。また、エンジン制御装置１０００は、初期設定を実施する（ステップＳ３）。具体的には、行列設定器１１２が、例えばｋ＝０におけるエンジン回転数及び燃料噴射量に応じたプラント行列Ａ及びＢを取得すると共に、重み行列Ｑ及びＲ、予測期間Ｎ、初期値ｘ（０）及びｕ（０）、初期Ｕ~（Ｕ~又はＵbarはＵバーを表す。）及び参照軌道行列Ｔのための時定数Ｔr等を取得する。これらのデータについては、予めメモリなどに保持しておき、該当データを読み出す。
【００９２】
さらに、エンジン制御装置１０００の行列設定器１１２は、初期計算として、上で述べたように参照軌道行列Ｔを算出し、設定する（ステップＳ５）。さらに、行列設定器１１２は、ＭＰＣ主制御部１１４及び変動抑制部１１８で用いる行列Ｈ-1＝（ΘTＱ~Θ）-1及びΘTＱ~などを算出し、設定する。また、初期Ｕ~を用いて初期のＲ~Ｕ~を算出して設定する。さらに、Ｈ-1ΘTＱ~を算出し設定する（ステップＳ７）。処理は端子Ａを介して、図１１の処理に移行する。
【００９３】
図１１の処理の説明に移行して、エンジン制御装置１０００は、ｋを１インクリメントし（ステップ９）、ＭＡＰセンサ及びＭＡＦセンサから状態ｘ（ｋ）を取得し、現時刻におけるエンジン回転数及び燃料噴射量の設定値を取得すると共にそれらに対応する目標値ｓ（ｋ）を計画器１１０から取得する（ステップＳ１１）。なお、エンジン制御装置１０００は、計画器１１０から現時刻におけるエンジン回転数及び燃料噴射量に対応する基準値ｕrefも取得する。
【００９４】
そして、エンジン制御装置１０００は、目標値ベクトルＴ（ｋ）（＝Ｔｓ（ｋ）を算出する（ステップＳ１３）。また、エンジン制御装置１０００は、目標ベクトルＴ（ｋ）と応答ベクトルΨｘ（ｋ）との誤差ベクトルＥ（ｋ）を算出する（ステップＳ１５）。そして、エンジン制御装置１０００は、Ｕ~を考慮した最適操作量ベクトルＵopt（ｋ）を算出する（ステップＳ１７）。このステップでは、誤差ベクトルＥ（ｋ）に対してＭＰＣ主制御部１１４でＨ-1ΘTＱ~を乗じる。また、ｋ−１＝０の場合を除きＵopt（ｋ−１）からＵ~ベクトルを生成し、ｋ−１＝０の場合には初期Ｕ~をそのまま用い、当該Ｕ~ベクトルを用いて変動抑制部１１８によりＨ-1Ｒ~Ｕ~を算出する。ＭＰＣ主制御部１１４の出力と変動抑制部１１８の出力との和によりＵopt（ｋ）が算出される。
【００９５】
また、エンジン制御装置１０００は、ステップＳ１７の結果に対してＭ2x2Nを乗じて、現時刻ｋにおける最適操作量ｕopt（ｋ）を算出し（ここでは抽出し）、さらに基準値ｕref（ｋ）を加算することで操作量の指令値を算出し、当該指令値をエンジン１のＶＮＴノズル及びＥＧＲバルブに出力する（ステップＳ１９）。
【００９６】
この部分の演算については、行列の性質を用いて変更することができる。具体的には、ＭＰＣ主制御部１１４でＭ2x2Nを乗じてしまい、さらに変動抑制部１１８でもＭ2x2Nを乗じてしまうようにしても良い。
【００９７】
さらに、エンジン制御装置１０００の前操作量行列生成部１１６は、ｕ（k-1）＝ｕopt（ｋ）と設定して、ｕ（k-1）から新たなＵ~を生成してメモリに保持する（ステップＳ２１）。新たなＵ~については次にｋを１インクリメントした後に使用する。
【００９８】
そして、エンジン制御装置１０００は、ｋが予め設定された最大値ｋmaxに達したか判断する（ステップＳ２３）。ｋがｋmaxに達していない場合には、処理はステップＳ９に戻る。一方、ｋがｋmaxに達した場合には、処理を終了する。例えば、ステップＳ１に戻って、初期設定から処理を開始する。
【００９９】
以上のような処理を実施することで、操作量指令値の急激な変動を抑制することができる。なお、図１０のステップＳ３の内、システム行列Ａ、Ｂ、重みＱ、Ｒ、Ｕｒｅｆの読み込み、および、ステップＳ７の定数行列の計算を、図１１のステップＳ９とステップＳ１１の間に入れることにより、毎回、運転条件が変わってシステム行列が変化する場合に対応することもできる。具体的な実験結果を図１２及び図１３に示す。図１２では、横軸は周波数を表し、縦軸はパワー（ｄＢ）を表す。太線は本実施の形態におけるＥＧＲバルブ開度の操作量指令値を表し、細線は従来のＭＰＣによるＥＧＲバルブに対する操作量指令値を表す。このように高周波帯域におけるパワーが従来のＭＰＣよりも下がっている。また、図１３でも、横軸は周波数を表し、縦軸はパワー（ｄＢ）を表す。太線は本実施の形態におけるＶＮＴノズルに対する操作量指令値を表し、細線は従来のＭＰＣによるＶＮＴノズルに対する操作量指令値を表している。このようにＶＮＴノズルに対する操作量指令値についても、高周波帯域におけるパワーが従来のＭＰＣより下がっていることが分かる。このように、操作量指令値の急激な変動を抑制して安定的な制御が行われるようになる。
【０１００】
［実施の形態２］
ＥＧＲバルブ及びＶＮＴノズルは、開閉されるものであるから、全閉が０、全開が１又は１００といったように、制約を有する。従って、このような制約を考慮して前述したような評価関数Ｊ（ｋ）を最小にする解を求めることになる。すなわち、モデル予測制御では、このような制約条件の下での最適化問題を解くことになる。
【０１０１】
より具体的には、操作量に対する制約条件は以下のように表される。
【０１０２】
【数３２】
2012167577.tif 000034
【０１０３】
ここで、ａ，ｂは、ＥＧＲの下限値、上限値を、ｃ，ｄは、ＶＮＴの下限値、上限値を示す。
【０１０４】
（３−１）式を以下のような形式で表現することを考える。
【０１０５】
【数３３】
2012167577.tif 000035
【０１０６】
まず、（３−１）式は以下のように変形される。
【０１０７】
【数３４】
2012167577.tif 000036
【０１０８】
そして（３−３）式は以下のように表現される。
【０１０９】
【数３５】
2012167577.tif 000037
【０１１０】
【数３６】
2012167577.tif 000038
【０１１１】
さらに、Ｕ（ｋ）の全ての要素について上記の制約が課される。すなわち、以下のように表される。
【０１１２】
【数３７】
2012167577.tif 000039
【０１１３】
これをまとめると以下のように表される。
【０１１４】
【数３８】
2012167577.tif 000040
【０１１５】
【数３９】
2012167577.tif 000041
【０１１６】
一方、制御量に対する制約条件は、以下のように表される。なお、上限値及び下限値に同じａ，ｂ，ｃ，ｄを使用しているが、上で述べたａ，ｂ，ｃ，ｄとは異なる。
【０１１７】
【数４０】
2012167577.tif 000042
【０１１８】
ここで、ａ，ｂは、ＭＡＦの下限値、上限値を、ｃ，ｄは、ＭＡＰの下限値、上限値を示す。
【０１１９】
（３−９）式は、以下のような形式で表現することを考える。
【０１２０】
【数４１】
2012167577.tif 000043
【０１２１】
【数４２】
2012167577.tif 000044
【０１２２】
さらに（３−１１）式は以下のように表すこともできる。
【０１２３】
【数４３】
2012167577.tif 000045
【０１２４】
【数４４】
2012167577.tif 000046
【０１２５】
さらに、Ｘ（ｋ）の全ての要素について上記の制約が課される。すなわち、以下のように表される。
【０１２６】
【数４５】
2012167577.tif 000047
【０１２７】
従って、これをまとめると以下のように表される。
【０１２８】
【数４６】
2012167577.tif 000048
【０１２９】
【数４７】
2012167577.tif 000049
【０１３０】
（３−１４）式にＸ（ｋ）＝Ψｘ（ｋ）＋ΘＵ（ｋ）を代入すると以下のように表される。
【０１３１】
【数４８】
2012167577.tif 000050
【０１３２】
以上の制約条件をまとめると以下のように表される。
【０１３３】
【数４９】
2012167577.tif 000051
【０１３４】
（３−１７）式を満たさないようなＵ（ｋ）が算出された場合には、以下のような（３−１７）式の制約条件を満たし且つ（２−３）式のＪ（ｋ）を最小化するＵ（ｋ）を見つけるという最適化問題を解くことになる。すなわち、最適化問題は以下のように表される。
【０１３５】
【数５０】
2012167577.tif 000052
【０１３６】
（３−１８）式の解法としては、ＱＰ問題、ラグランジュ乗数法、アクティブセット法、内点法などが存在しているので、ここでは詳しく述べない。
【０１３７】
このような制約条件を考慮した場合のブロック線図の一例を図１４に示す。具体的には、燃料噴射量の設定値とエンジン回転数の設定値とが入力されて、燃料噴射量の値及びエンジン回転数の値に対応付けてＥＧＲバルブ開度の目標値及びＶＮＴノズル開度の目標値の組み合わせと新気量ＭＡＦの基準値及び吸気圧ＭＡＰの基準値の組み合わせが登録されている計画器２１０から、燃料噴射量の設定値及びエンジン回転数の設定値に対応するＥＧＲバルブ開度の目標値及びＶＮＴノズル開度の目標値ｓ（ｋ）と、新気量ＭＡＦの基準値及び吸気圧ＭＡＰの基準値ｕref（ｋ）とを読み出す。
【０１３８】
なお、計画器２１０は、例えば燃料噴射量の設定値とエンジン回転数の設定値とを行列設定器２１２に出力する。燃料噴射量の設定値とエンジン回転数の設定値ではなく、目標値及び基準値を特定する際に用いた他のパラメータ値であってもよい。行列設定器２１２は、例えば燃料噴射量の設定値とエンジン回転数の設定値に応じて適切な行列Ａ、Ｂ、Ｑ、Ｒを特定し、（２−７）式及び（３−１７）式の計算を行うのに用いられる他の行列を算出して、最適化器２１４等に設定する。Ｔ及びΨについても設定がなされる。このような行列の設定は、例えば所定期間ごと、又は大幅に燃料噴射量とエンジン回転数とのうち少なくとも何れかが変化した場合などに実施する。
【０１３９】
そして、計画器２１０が出力したＥＧＲバルブ開度の目標値及びＶＮＴノズル開度の目標値ｓ（ｋ）に、参照軌道行列Ｔを乗じて２Ｎ次元の目標ベクトルＴ（ｋ）を算出すると共に、エンジン特性１２０の測定値ｘ（ｋ）にΨを乗じて２Ｎ次元の応答ベクトルΨｘ（ｋ）を算出する。そうすると、２Ｎ次元の誤差ベクトルＥ（ｋ）＝Ｔ（ｋ）−Ψｘ（ｋ）が得られる。
【０１４０】
この誤差ベクトルＥ（ｋ）は、最適化器２１４に入力される。最適化器２１４は、第１の実施の形態におけるＭＰＣ主制御部１１４、前操作量行列生成部１１６及び変動抑制部１１８の機能と、最適化演算部の機能とを含む。具体的には、Ｕ（ｋ）＝Ｈ-1ΘTＱ~Ｅ（ｋ）＋Ｈ-1Ｒ~Ｕ~を算出し、（３−１７）式を満たすか否かを判断する。（３−１７）式を満たす場合には、最適化演算部での処理を省略して、Ｕ（ｋ）＝Ｕopt（ｋ）としてＭ2x2NＵopt（ｋ）＝ｕopt（ｋ）を生成する。一方、（３−１７）式が満たされない場合には、最適化演算部は（３−１８）式を解く処理を実施する。（３−１８）式の解をＵopt（ｋ）としてＭ2x2NＵopt（ｋ）＝ｕopt（ｋ）を生成する。
なお，（３−１７）式におけるｆに含まれる、ＥＧＲとＶＮＴに関する制約のａ，ｂ，ｃ，ｄの値は、フィードフォワード値ｕref（ｋ）を加算した値が飽和しているか否かを判定できるような値に設定されているものとする
【０１４１】
そして、最適化器２１４の出力である最適操作量ｕopt（ｋ）は、計画器２１０が出力したフィードフォワード値ｕref（ｋ）と加算されてエンジン特性１２０に出力される。すなわち、ｕopt（ｋ）＋ｕref（ｋ）によって、ＶＮＴノズル開度及びＥＧＲバルブ開度が制御される。
【０１４２】
なお、最適化器２１４では、ｕopt（ｋ）を１サンプル時間遅延させて（２−２）式の行列を生成してメモリに保持しておく。
【０１４３】
次に、エンジン制御装置１０００の詳細な処理内容について図１５及び図１６を用いて説明する。
【０１４４】
まず、エンジン制御装置１０００は、ｋ＝０に設定する（図１５：ステップＳ３１）。また、エンジン制御装置１０００は、初期設定を実施する（ステップＳ３３）。具体的には、行列設定器２１２が、例えばｋ＝０におけるエンジン回転数及び燃料噴射量に応じたプラント行列Ａ及びＢを取得すると共に、重み行列Ｑ及びＲ、予測期間Ｎ、初期値ｘ（０）及びｕ（０）、初期Ｕ~及び時定数Ｔr等を取得する。これらのデータについては、予めメモリなどに保持しておき、該当データを読み出す。
【０１４５】
さらに、エンジン制御装置１０００の行列設定器２１２は、メモリなどに格納されている制約条件（上の説明におけるａ，ｂ，ｃ及びｄ２セット。具体的には、ＶＮＴノズル開度の上限値及び下限値、ＥＧＲバルブ開度の上限値及び下限値、ｘmafの上限値及び下限値、並びにｘmapの上限値及び下限値）を取得する（ステップＳ３５）。
【０１４６】
また、エンジン制御装置１０００は、初期計算として、参照軌道行列Ｔを算出し、設定する（ステップＳ３７）。さらに、行列設定器２１２は、最適化器２１４で用いる定数行列Ｈ-1＝（ΘTＱ~Θ）-1及びΘTＱ~等、制約拡大行列ｆ、Ｆ、ｇ及びＧを算出し、設定する。また、初期Ｕ~を用いて初期のＲ~Ｕ~（Ｒ~はＲのバーを表す）を算出して設定する。さらに、Ｈ-1ΘTＱ~も算出して設定する（ステップＳ３９）。処理は端子Ｂを介して、図１６の処理に移行する。
【０１４７】
図１６の処理の説明に移行して、エンジン制御装置１０００は、ｋを１インクリメントし（ステップＳ４１）、ＭＡＰセンサ及びＭＡＦセンサから状態ｘ（ｋ）を取得し、現時刻ｋにおけるエンジン回転数及び燃料噴射量を取得して計画器２１０から当該エンジン回転数及び燃料噴射量に対応する目標値ｓ（ｋ）を取得する（ステップＳ４３）。なお、エンジン制御装置１０００は、計画器２１０から現時刻ｋにおけるエンジン回転数及び燃料噴射量に対応する基準値ｕref（ｋ）も取得する。
【０１４８】
そして、エンジン制御装置１０００は、目標値ベクトルＴ（ｋ）（＝Ｔｓ（ｋ）を算出する（ステップＳ４５）。また、エンジン制御装置１０００は、目標ベクトルＴ（ｋ）と応答ベクトルΨｘ（ｋ）との誤差ベクトルＥ（ｋ）を算出する（ステップＳ４７）。そして、エンジン制御装置１０００の最適化器２１４は、Ｕ~を考慮した最適操作量ベクトルＵ（ｋ）を算出する（ステップＳ４９）。このステップでは、誤差ベクトルＥ（ｋ）に対してＨ-1ΘTＱ~を乗じる。また、ｋ−１＝０の場合を除きＵopt（ｋ−１）からＵ~ベクトルを生成し、ｋ−１＝０の場合には初期Ｕ~をそのまま用い、当該Ｕ~ベクトルからＨ-1Ｒ~Ｕ~を算出する。そして、Ｕ（ｋ）＝Ｈ-1ΘTＱ~Ｅ（ｋ）＋Ｈ-1Ｒ~Ｕ~が算出される。
【０１４９】
そして、エンジン制御装置１０００は、（３−１７）式の制約条件を満たしているかを判断する（ステップＳ５１）。制約条件を満たしているＵ（ｋ）が得られた場合には、ステップＳ４９で得られたＵ（ｋ）＝Ｕopt（ｋ）としてステップＳ５５に移行する。一方、制約条件を満たしているＵ（ｋ）が得られなかった場合には、エンジン制御装置１０００の最適化器２１４は、（３−１８）式に従って最適化処理を実施してＵopt（ｋ）を算出する（ステップＳ５３）。なお、（３−１７）式におけるｆに含まれる，ＥＧＲとＶＮＴに関する制約のａ，ｂ，ｃ，ｄの値は、フィードフォワード値ｕref（ｋ）を加算した値が飽和しているか否かを判定できるような値に設定されているものとする。
【０１５０】
また、エンジン制御装置１０００の最適化器２１４は、ステップＳ４９又はＳ５３の結果に対してＭ2x2Nを乗じて、現時刻ｋにおける最適操作量ｕopt（ｋ）を算出し（ここでは抽出し）、さらに基準値ｕref（ｋ）を加算することで操作量の指令値を算出し、当該指令値をエンジン１のＶＮＴノズル及びＥＧＲバルブに出力する（ステップＳ５５）。
【０１５１】
さらに、エンジン制御装置１０００の最適化器２１４は、ｕ（k-1）＝ｕopt（ｋ）と設定し、新たなＵ~を生成してメモリに保持する（ステップＳ５７）。新たなＵ~については次にｋを１インクリメントした後に使用する。
【０１５２】
そして、エンジン制御装置１０００は、ｋが予め設定された最大値ｋmaxに達したか判断する（ステップＳ５９）。ｋがｋmaxに達していない場合には、処理はステップＳ４１に戻る。一方、ｋがｋmaxに達した場合には、処理を終了する。例えば、ステップＳ３１に戻って、初期設定から処理を開始する。
【０１５３】
以上のような処理を実施することで、制約条件を満たしつつ、急激な変動を抑制することができるようになる。なお、図１５のステップＳ３３の内、システム行列Ａ、Ｂ、重みＱ、Ｒ、ステップＳ３５の制約条件の取得、および、ステップＳ３９の定数行列や制約拡大行列の計算を、図１６のステップＳ４１とステップＳ４３の間に入れることにより、毎回、運転条件が変わってシステム行列が変化する場合に対応することもできる。
【０１５４】
［実施の形態３］
本実施の形態では、高周波帯域における操作量指令値の成分を抑制するために、ローパスフィルタ特性を有する前置補償器を導入する場合を考える。
【０１５５】
本実施の形態では、制御対象のプラント（例えばディーゼルエンジン）を以下のように表す。
【０１５６】
【数５１】
2012167577.tif 000053
【０１５７】
【数５２】
2012167577.tif 000054
【０１５８】
また、導入した前置補償器の伝達関数は以下のように表されるものとする。
【０１５９】
【数５３】
2012167577.tif 000055
【０１６０】
ここで、Ｔｄ１１，Ｔｄ２２は、前置補償器のローパス特性を記述する時定数であり、大きな値にすることで、ローパス特性をより強く指定することが可能となる。この特性をクロス項に指定することも可能である。
【０１６１】
このような前置補償器の離散状態方程式は以下のようになる。
【０１６２】
【数５４】
2012167577.tif 000056
【０１６３】
【数５５】
2012167577.tif 000057
【０１６４】
【数５６】
2012167577.tif 000058
【０１６５】
ここで（４−１）式と（４−５）式の合成系を考える。そこで、合成系の状態方程式を以下のように表す。
【０１６６】
【数５７】
2012167577.tif 000059
【０１６７】
【数５８】
2012167577.tif 000060
【０１６８】
但し、ｘ（ｋ）は６行１列の状態ベクトルを表し、ｕは２行１列の操作量ベクトルを表し、ｙは２行１列の測定ベクトルを表し、Ａは６行６列の行列を表し、Ｂは６行２列の行列を表し、Ｃは２行６列の行列を表す。
【０１６９】
このように合成系を表現すれば、解くべき有限時間最適制御問題は、第１の実施の形態における評価式Ｊ（ｋ）と同じ形になる。なお、ｕ~＝ｕ（ｋ−１）であり、現時刻の１サンプル前の操作量を表す。また、Ｑ及びＲは重み係数である。
【０１７０】
【数５９】
2012167577.tif 000061
【０１７１】
また、Ｙを２Ｎ行の測定ベクトル、Ｕを２Ｎ行の操作量ベクトルとして拡大系を定義すると、（４−１）式は以下のように表される。
【０１７２】
【数６０】
2012167577.tif 000062
【０１７３】
【数６１】
2012167577.tif 000063
【０１７４】
【数６２】
2012167577.tif 000064
【０１７５】
【数６３】
2012167577.tif 000065
【０１７６】
さらに、Ｔ、Ｕ~、Ｑ~、Ｒ~及びγについては第１の実施の形態で定義したものと同じとすると、（４−９）式は、以下のように表される。
【０１７７】
【数６４】
2012167577.tif 000066
【０１７８】
この評価関数Ｊ（ｋ）を最小化するＵopt（ｋ）は、第１の実施の形態と同様に導出すると、以下のように表される。
【０１７９】
【数６５】
2012167577.tif 000067
【０１８０】
【数６６】
2012167577.tif 000068
【０１８１】
最終的に最適操作量ｕopt（ｋ）は、以下のように表される。
【０１８２】
【数６７】
2012167577.tif 000069
【０１８３】
【数６８】
2012167577.tif 000070
【０１８４】
本実施の形態では（４−１７）式に基づき制御を行う。
【０１８５】
次に、本実施の形態に係るエンジン制御装置１０００のブロック線図を図１７に示す。すなわち、燃料噴射量の設定値とエンジン回転数の設定値とが入力されて、燃料噴射量の値及びエンジン回転数の値に対応付けてＥＧＲバルブ開度の目標値及びＶＮＴノズル開度の目標値の組み合わせと新気量ＭＡＦの基準値及び吸気圧ＭＡＰの基準値の組み合わせが登録されている計画器３１０から、燃料噴射量の設定値及びエンジン回転数の設定値に対応するＥＧＲバルブ開度の目標値及びＶＮＴノズル開度の目標値ｓ（ｋ）と、新気量ＭＡＦの基準値及び吸気圧ＭＡＰの基準値ｕref（ｋ）とを読み出す。
【０１８６】
なお、計画器３１０は、例えば燃料噴射量の設定値とエンジン回転数の設定値とを行列設定器３１２に出力する。燃料噴射量の設定値とエンジン回転数の設定値ではなく、目標値及び基準値を特定する際に用いた他のパラメータ値であってもよい。行列設定器３１２は、燃料噴射量の設定値とエンジン回転数の設定値に応じて適切な行列Ａ、Ｂ、Ｑ及びＲを特定して、（４−１７）式の計算を行うのに用いられる他の行列を算出して、第２ＭＰＣ主制御部３１４、第２変動抑制部３１８、応答ベクトル生成部３２２に設定する。Ｔについても設定がなされる。このような行列の設定は、例えば所定期間ごと、又は大幅に燃料噴射量とエンジン回転数とのうち少なくともいずれかが変化した場合などに実施する。
【０１８７】
そして、計画器３１０が出力したＥＧＲバルブ開度の目標値及びＶＮＴノズル開度の目標値ｓ（ｋ）に、参照軌道行列Ｔを乗じて２Ｎ次元の目標ベクトルＴ（ｋ）を算出する。一方、応答ベクトル生成部３２２は、エンジン特性１２０の測定値ｘp（ｋ）と前置補償器３２０の内部状態出力値ｘd（ｋ）とから状態ベクトルｘ（ｋ）を生成した上で、Ψcを乗じて２Ｎ次元の応答ベクトルΨcｘ（ｋ）を算出する。そうすると、２Ｎ次元の誤差ベクトルＥ（ｋ）＝Ｔ（ｋ）−Ψcｘ（ｋ）が得られる。
【０１８８】
この誤差ベクトルＥ（ｋ）は、第２ＭＰＣ主制御部３１４に入力される。第２ＭＰＣ主制御部３１４は、Ｍ2x2NＨ-1ΘTＱ~をＥ（ｋ）に乗じて出力する。第２ＭＰＣ主制御部３１４の出力と第２変動抑制部３１８の出力とが加算されて、操作量ｕ（ｋ）が算出される。ローパスフィルタ特性を有する前置補償器３２０は、この操作量ｕ（ｋ）を処理して、操作量ｕp（ｋ）を出力する。出力されたｕp（ｋ）は、フィードフォワード値ｕref（ｋ）と加算されてエンジン特性１２０に出力される。すなわち、ｕp（ｋ）＋ｕref（ｋ）によって、ＶＮＴノズル開度及びＥＧＲバルブ開度が制御される。
【０１８９】
なお、前操作量行列生成部３１６は、ｕ（ｋ）を１サンプル時間遅延させて（２−２）式の行列を生成して第２変動抑制部３１８に出力する。第２変動抑制部３１８は、（４−１７）式の第２項であるＭ2x2NＨc-1Ｒ~をＵ~に乗じてＭ2x2NＨc-1Ｒ~Ｕ~を算出する。そうすると、第２変動抑制部３１８の出力は、次のサンプル時間で第２ＭＰＣ主制御部３１４の出力と加算される。
【０１９０】
次に、エンジン制御装置１０００の詳細な処理内容について図１８及び図１９を用いて説明する。
【０１９１】
まず、エンジン制御装置１０００は、ｋ＝０に設定する（図１８：ステップＳ６１）。また、エンジン制御装置１０００は、初期設定を実施する（ステップＳ６３）。具体的には、行列設定器３１２が、ｋ＝０におけるエンジン回転数及び燃料噴射量に応じたプラント行列Ａ及びＢを取得すると共に、重み行列Ｑ及びＲ、予測期間Ｎ、初期値ｘ（０）及びｕ（０）、初期Ｕ~及び時定数Ｔr等を取得する。なお、Ａ及びＢについては第１の実施の形態とは異なる。また、これらのデータについては、予めメモリなどに保持しておき、該当データを読み出す。
【０１９２】
さらに、エンジン制御装置１０００の行列設定器３１２は、初期計算として、参照軌道行列Ｔを算出し、設定する（ステップＳ６５）。さらに、行列設定器３１２は、第２ＭＰＣ主制御部３１４及び第２変動抑制部３１８で用いる行列Ｈc-1＝（ΘcTＱ~Θc）-1及びΘcTＱ~などを算出し、設定する（ステップＳ６７）。また、初期Ｕ~を用いて初期のＲ~Ｕ~（Ｒ~はＲのバーを表す）を算出して設定する。さらに、Ｈc-1ΘcTＱ~も算出して設定する。処理は端子Ｃを介して、図１９の処理に移行する。
【０１９３】
図１９の処理の説明に移行して、エンジン制御装置１０００は、ｋを１インクリメントし（ステップＳ６９）、ＭＡＰセンサ及びＭＡＦセンサから状態ｘp（ｋ）を取得し、前置補償器３２０から内部状態出力ｘd（ｋ）を取得し、さらに現時刻におけるエンジン回転数及び燃料噴射量を取得して当該エンジン回転数及び燃料噴射量に対応する目標値ｓ（ｋ）を取得する（ステップＳ７１）。なお、エンジン制御装置１０００は、計画器３１０から現時刻におけるエンジン回転数及び燃料噴射量に対応する基準値ｕrefも取得する。
【０１９４】
そして、エンジン制御装置１０００は、目標値ベクトルＴ（ｋ）（＝Ｔｓ（ｋ）を算出する（ステップＳ７３）。また、エンジン制御装置１０００の応答ベクトル生成部３２２は、ｘd（ｋ）とｘp（ｋ）とからｘ（ｋ）を生成してさらに応答ベクトルΨcｘ（ｋ）を算出する。そして、エンジン制御装置１０００は、目標ベクトルＴ（ｋ）と応答ベクトルΨcｘ（ｋ）との誤差ベクトルＥ（ｋ）＝Ｔ（ｋ）−Ψcｘ（ｋ）を算出する（ステップＳ７５）。そして、エンジン制御装置１０００は、Ｕ~を考慮した最適操作量ｕopt（ｋ）を算出する（ステップＳ７７）。
【０１９５】
このステップでは、誤差ベクトルＥ（ｋ）に対して第２ＭＰＣ主制御部３１４でＨc-1ΘTＱ~を乗じる。また、ｋ−１＝０の場合を除きＵopt（ｋ−１）からＵ~ベクトルを生成し、ｋ−１＝０の場合には初期Ｕ~をそのまま用い、当該Ｕ~ベクトルを用いて第２変動抑制部３１８によりＨc-1Ｒ~Ｕ~を算出する。ＭＰＣ主制御部３１４の出力と変動抑制部３１８の出力との和によりＵopt（ｋ）が算出される。エンジン制御装置１０００は、このＵopt（ｋ）に対してＭ2x2Nを乗ずることで最適操作量ｕopt（ｋ）を算出する。
【０１９６】
なお、第２ＭＰＣ主制御部３１４で、誤差ベクトルＥ（ｋ）に対してＭ2x2NＨ-1ΘTＱ~を乗じ、第２変動抑制部３１８では、Ｍ2x2NＨc-1Ｒ~Ｕ~を算出し、最終的にエンジン制御装置１０００がそれらの演算結果を加算するようにしても良い。
【０１９７】
さらに、前置補償器３２０は、最適操作量ｕopt（ｋ）を処理し、エンジン制御装置１０００は、前置補償器３２０の出力と、基準値ｕref（ｋ）を加算することで操作量の指令値を算出し、当該指令値をエンジン１のＶＮＴノズル及びＥＧＲバルブに出力する（ステップＳ７９）。
【０１９８】
さらに、エンジン制御装置１０００の前操作量行列生成部３１６は、ｕ（k-1）＝ｕopt（ｋ）と設定して、新たなＵ~を生成して保持する（ステップＳ８１）。新たなＵ~については次にｋを１インクリメントした後に使用する。
【０１９９】
そして、エンジン制御装置１０００は、ｋが予め設定された最大値ｋmaxに達したか判断する（ステップＳ８３）。ｋがｋmaxに達していない場合には、処理はステップＳ６９に戻る。一方、ｋがｋmaxに達した場合には、処理を終了する。例えば、ステップＳ６１に戻って、初期設定から処理を開始する。
【０２００】
以上のように、前置補償器３２０を設けてさらに高周波帯域におけるパワーを抑えることができ、全体として操作量指令値の急激な変動を抑制することができる。
【０２０１】
［実施の形態４］
第１の実施の形態に対して第２の実施の形態において制約条件を考慮することを示したが、第３の実施の形態に対して制約条件を考慮する実施の形態を示す。
【０２０２】
基本的な考え方は第２の実施の形態と同じであるが、前置補償器を導入することによって影響がある部分についてのみ説明する。具体的には、Θ及びΨに代ってΘc及びΨcを用いる。従って、制約条件は以下のように表される。
【０２０３】
【数６９】
2012167577.tif 000071
【０２０４】
（５−１）式を満たすような操作量ベクトルＵ（ｋ）が計算できれば、そのままＵ（ｋ）からｕopt（ｋ）を抽出する。一方、（５−１）式を満たすような操作量ベクトルＵ（ｋ）が計算できなければ、以下のような最適化問題を解くことになる。
【０２０５】
【数７０】
2012167577.tif 000072
【０２０６】
このような制約条件を考慮した場合のブロック線図の一例を図２０に示す。具体的には、燃料噴射量の設定値とエンジン回転数の設定値とが入力されて、燃料噴射量の値及びエンジン回転数の値に対応付けてＥＧＲバルブ開度の目標値及びＶＮＴノズル開度の目標値の組み合わせと新気量ＭＡＦの基準値及び吸気圧ＭＡＰの基準値の組み合わせが登録されている計画器４１０から、燃料噴射量の設定値及びエンジン回転数の設定値に対応するＥＧＲバルブ開度の目標値及びＶＮＴノズル開度の目標値ｓ（ｋ）と、新気量ＭＡＦの基準値及び吸気圧ＭＡＰの基準値ｕref（ｋ）とを読み出す。
【０２０７】
なお、計画器４１０は、例えば燃料噴射量の設定値とエンジン回転数の設定値とを行列設定器４１２に出力する。燃料噴射量の設定値とエンジン回転数の設定値ではなく、目標値及び基準値を特定する際に用いた他のパラメータ値であってもよい。行列設定器４１２は、例えば燃料噴射量の設定値とエンジン回転数の設定値に応じて適切な行列Ａ、Ｂ、Ｑ、Ｒを特定し、（４−１５）式及び（５−１）式の計算を行うのに用いられる他の行列を算出して、第２最適化器４１４及び第２応答ベクトル生成部４２２に設定する。Ｔについても設定がなされる。このような行列の設定は、例えば所定期間ごと、又は大幅に燃料噴射量とエンジン回転数との少なくとも何れかが変化した場合などに実施する。
【０２０８】
そして、計画器４１０が出力したＥＧＲバルブ開度の目標値及びＶＮＴノズル開度の目標値ｓ（ｋ）に、参照軌道行列Ｔを乗じて２Ｎ次元の目標ベクトルＴ（ｋ）を算出すると共に、エンジン特性１２０の測定値ｘp（ｋ）と前置補償器４２０の内部状態出力ｘd（ｋ）とから生成される状態ベクトルｘ（ｋ）にΨcを乗じて２Ｎ次元の応答ベクトルΨcｘ（ｋ）を算出する。そうすると、２Ｎ次元の誤差ベクトルＥ（ｋ）＝Ｔ（ｋ）−Ψcｘ（ｋ）が得られる。
【０２０９】
この誤差ベクトルＥ（ｋ）は、第２最適化器４１４に入力される。最適化器４１４は、第３の実施の形態における第２ＭＰＣ主制御部３１４、前操作量行列生成部３１６及び第２変動抑制部３１８の機能と、最適化演算部の機能とを含む。具体的には、Ｕ（ｋ）＝Ｈc-1ΘcTＱ~Ｅ（ｋ）＋Ｈc-1Ｒ~Ｕ~を算出し、（５−１）式を満たすか否かを判断する。
【０２１０】
（５−１）式を満たす場合には、最適化演算部での処理を省略して、Ｕ（ｋ）＝Ｕopt（ｋ）としてＭ2x2NＵopt（ｋ）＝ｕopt（ｋ）を生成する。一方、（５−１）式が満たされない場合には、最適化演算部は（５−２）式を解く処理を実施する。そして（５−２）式の解をＵopt（ｋ）としてＭ2x2NＵopt（ｋ）＝ｕopt（ｋ）を生成する。
なお、（５−２）式におけるｆに含まれる、ＥＧＲとＶＮＴに関する制約のａ，ｂ，ｃ，ｄの値は、フィードフォワード値ｕref（ｋ）を加算した値が飽和しているか否かを、判定できるような値に設定されているものとする。
【０２１１】
第２最適化器４１４の出力ｕopt（ｋ）は、前置補償器４２０に入力され、前置補償器４２０で処理されて、操作量ｕp（ｋ）が出力される。
【０２１２】
そして、前置補償器４２０の出力である操作量ｕp（ｋ）は、計画器４１０が出力したフィードフォワード値ｕref（ｋ）と加算されてエンジン特性１２０に出力される。すなわち、ｕp（ｋ）＋ｕref（ｋ）によって、ＶＮＴノズル開度及びＥＧＲバルブ開度が制御される。
【０２１３】
なお、第２最適化器４１４では、ｕp（ｋ）を１サンプル時間遅延させて（２−２）式の行列を生成してメモリに保持しておく。
【０２１４】
このように使用する行列の形が第２の実施の形態とは異なるが、処理フローの形は同様であるから、説明を省略する。
【０２１５】
以上のような処理を行うことで、前置補償器を設ける場合においても、制約条件を考慮した形で、高周波帯域におけるパワーを下げて急激な変動を抑えることができるようになる。なお、図１８のステップＳ６３の内、システム行列Ａ、Ｂ、重みＱ、Ｒ、ステップＳ３５の制約条件の取得、および、ステップＳ６７の定数行列や制約拡大行列の計算を、図１９のステップＳ６９とステップＳ７１の間に入れることにより、毎回、運転条件が変わってシステム行列が変化する場合に対応することもできる。
【０２１６】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、ブロック線図に従ったプログラムモジュール構成ではなくてもよい。また、処理フローについても、処理結果が変わらない限り処理順番を入れ替えたり、並列実施しても良い。
【０２１７】
なお、上で述べたエンジン制御装置１０００は、コンピュータ装置であって、図２１に示すように、ＲＡＭ（Random Access Memory）２５０１とプロセッサ２５０３とＲＯＭ（Read Only Memory）２５０７とセンサ群２５１５とがバス２５１９で接続されている。本実施の形態における処理を実施するための制御プログラム（及び存在している場合にはオペレーティング・システム（ＯＳ：Operating System））は、ＲＯＭ２５０７に格納されており、プロセッサ２５０３により実行される際にはＲＯＭ２５０７からＲＡＭ２５０１に読み出される。プロセッサ２５０３は、センサ群（吸気圧センサ及び新気量センサ。場合によっては燃料噴射量測定部及びエンジン回転数測定部など。）を制御して、測定値を取得する。また、処理途中のデータについては、ＲＡＭ２５０１に格納される。なお、プロセッサ２５０３は、ＲＯＭ２５０７を含む場合もあり、さらに、ＲＡＭ２５０１を含む場合もある。本技術の実施の形態では、上で述べた処理を実施するための制御プログラムは、コンピュータ読み取り可能なリムーバブル・ディスクに格納されて頒布され、ＲＯＭライタによってＲＯＭ２５０７に書き込まれる場合もある。このようなコンピュータ装置は、上で述べたプロセッサ２５０３、ＲＡＭ２５０１、ＲＯＭ２５０７などのハードウエアと制御プログラム（場合によってはＯＳも）とが有機的に協働することにより、上で述べたような各種機能を実現する。
【０２１８】
但し、エンジン制御装置全体をハードウエアのみにて実装することも可能である。以上述べた本実施の形態をまとめると以下のようになる。
【０２１９】
本実施の形態の第１態様に係るエンジン制御方法は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、（Ｂ）（ｂ１）燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、吸気圧の測定値及び新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第１の時系列値及び可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、（ｂ２）排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、を加算して得られる、（ｂ３）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成するステップと、（Ｃ）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の１単位時間後の値を抽出すると共に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出するステップとを含む。
【０２２０】
このように、モデル予測制御において、予測期間中の各操作量について現在時刻の１単位時間前の操作量との差を評価するように評価関数を変形することで、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列が導入されるようになる。そうすると、操作量の指令値の急激な変動を抑制できるようになる。
【０２２１】
本実施の形態の第１態様に係るエンジン制御方法は、（Ｄ）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値が、排気循環器のバルブ開度及び可変ノイズターボのノズル開度の飽和による制約条件を満たすか判断するステップと、（Ｅ）制約条件が満たされないと判断された場合には、制約条件を満たしつつ、追従誤差に関する値と、操作量と現在時刻の１単位時間前の操作量との差に関する値とを重み付け加算した評価関数の値を最小化するように、排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値を計算し直すステップとを含むようにしても良い。
【０２２２】
このようにすれば、排気循環器の開度及び可変ノズルターボの開度についての制約を満たしつつ、操作量の指令値の急激な変動を抑制できるようになる。
【０２２３】
本実施の形態の第２態様に係るエンジン制御方法は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、（Ｂ）（ｂ１）燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、吸気圧の測定値及び新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第１の時系列値及び可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、（ｂ２）排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列とから、排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の１単位時間後の値を抽出して加算するステップと、（Ｃ）排気循環器のバルブ開度の操作量の加算結果及び可変ノズルターボのノズル開度の操作量の加算結果に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出するステップとを含む。
【０２２４】
第１態様とは異なる演算方法を採用しても、操作量の指令値の急激な変動を抑制できるようになる。
【０２２５】
本実施の形態の第３態様に係るエンジン制御方法は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、（Ｂ）（ｂ１）燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と吸気圧の測定値及び新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第１の時系列値及び可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、（ｂ２）排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、を加算して得られる、（ｂ３）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成するステップと、（Ｃ）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の１単位時間後の値を抽出して前置補償器で処理し、当該前置補償器によって処理された後の排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップとを含む。
【０２２６】
急激な変動を抑制するために前置補償器を導入する場合においても、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列を導入することで、操作量の指令値の急激な変動を抑制できるようになる。
【０２２７】
本実施の形態の第３形態に係るエンジン制御方法は、（Ｄ）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値が、排気循環器のバルブ開度及び可変ノイズターボのノズル開度の飽和による制約条件を満たすか判断するステップと、（Ｅ）制約条件が満たされないと判断された場合には、制約条件を満たしつつ、追従誤差に関する値と、操作量と現在時刻の１単位時間前の操作量との差に関する値とを重み付け加算した評価関数の値を最小化するように、排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値を計算し直すステップとをさらに含むようにしてもよい。前置補償器を採用する場合においても、排気循環器の開度及び可変ノズルターボの開度についての制約を満たしつつ、操作量の指令値の急激な変動を抑制できるようになる。
【０２２８】
本実施の形態の第４態様に係るエンジン制御方法は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、（Ｂ）（ｂ１）燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と吸気圧の測定値及び新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第１の時系列値及び可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、（ｂ２）排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列とから、排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の１単位時間後の値を抽出して加算するステップと、（Ｃ）排気循環器のバルブ開度の操作量の加算結果及び可変ノズルターボのノズル開度の操作量の加算結果に対して前置補償器で処理して、当該前置補償器によって処理された後の排気循環器のバルブ開度の操作量の加算結果及び可変ノズルターボのノズル開度の操作量の加算結果に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出するステップと含む。
【０２２９】
第３形態とは異なる演算方法を採用しても、操作量の指令値の急激な変動を抑制できるようになる。
【０２３０】
なお、モデル予測制御の主制御行列などに含まれる行列を、例えば一定期間ごと、又は排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値とエンジン回転数の設定値との少なくとも何れかが閾値以上変化した場合に、変更するようにしても良い。
【０２３１】
さらに、本実施の形態の第４態様に係るエンジン制御装置（図２２：４０００）は、（Ａ）排気循環器及び可変ノズルターボを有するエンジン（図２２：１）に対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部（図２２：４１００）と、（Ｂ）（ｂ１）燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、吸気圧の測定値及び新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第１の時系列値及び可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、（ｂ２）排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、を加算して得られる、（ｂ３）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成する制御演算部（図２２：４２００）と、（Ｃ）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の１単位時間後の値を抽出すると共に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出する指令値算出部（図２２：４３００）とを有する。
【０２３２】
また、本実施の形態の第５態様に係るエンジン制御装置（図２２：４０００）は、（Ａ）排気循環器及び可変ノズルターボを有するエンジン（図２２：１）に対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部（図２２：４１００）と、（Ｂ）（ｂ１）燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と吸気圧の測定値及び前記新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第１の時系列値及び可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、（ｂ２）排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第２の時系列値及び可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、を加算して得られる、（ｂ３）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成する制御演算部（図２２：４２００）と、（Ｃ）排気循環器のバルブ開度の操作量の第３の時系列値及び可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の１単位時間後の値を抽出して前置補償器で処理し、当該前置補償器によって処理された後の排気循環器のバルブ開度の操作量の現在時刻の１単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の１単位時間後の値に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出する指令値算出部（図２２：４３００）とを有する。
【０２３３】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０２３４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０２３５】
（付記１）
排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、
前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前記吸気圧の測定値及び前記新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第１の時系列値及び前記可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、
前記排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第２の時系列値及び前記可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、
を加算して得られる、前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成するステップと、
前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値を抽出すると共に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップと、
を、プロセッサに実行させるための制御プログラム。
【０２３６】
（付記２）
前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値が、前記排気循環器のバルブ開度及び前記可変ノイズターボのノズル開度の飽和による制約条件を満たすか判断するステップと、
前記制約条件が満たされないと判断された場合には、前記制約条件を満たしつつ、追従誤差に関する値と、操作量と現在時刻の１単位時間前の操作量との差に関する値とを重み付け加算した評価関数の値を最小化するように、前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値を計算し直すステップと、
をさらに、前記プロセッサに実行させるための付記１記載の制御プログラム。
【０２３７】
（付記３）
排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、
前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前記吸気圧の測定値及び前記新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第１の時系列値及び前記可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、
前記排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第２の時系列値及び前記可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、
から、前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値を抽出して加算するステップと、
前記排気循環器のバルブ開度の操作量の加算結果及び前記可変ノズルターボのノズル開度の操作量の加算結果に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップと、
を、プロセッサに実行させるための制御プログラム。
【０２３８】
（付記４）
排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、
前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と前記吸気圧の測定値及び前記新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第１の時系列値及び前記可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、
前記排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第２の時系列値及び前記可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、
を加算して得られる、前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成するステップと、
前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値を抽出して前記前置補償器で処理し、当該前置補償器によって処理された後の前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップと、
を、プロセッサに実行させるための制御プログラム。
【０２３９】
（付記５）
前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値が、前記排気循環器のバルブ開度及び前記可変ノイズターボのノズル開度の飽和による制約条件を満たすか判断するステップと、
前記制約条件が満たされないと判断された場合には、前記制約条件を満たしつつ、追従誤差に関する値と、操作量と現在時刻の１単位時間前の操作量との差に関する値とを重み付け加算した評価関数の値を最小化するように、前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値を計算し直すステップと、
をさらに、前記プロセッサに実行させるための付記４記載の制御プログラム。
【０２４０】
（付記６）
排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、
前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と前記吸気圧の測定値及び前記新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第１の時系列値及び前記可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、
前記排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第２の時系列値及び前記可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、
から、前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値を抽出して加算するステップと、
前記排気循環器のバルブ開度の操作量の加算結果及び前記可変ノズルターボのノズル開度の操作量の加算結果に対して前記前置補償器で処理して、当該前置補償器によって処理された後の前記排気循環器のバルブ開度の操作量の加算結果及び前記可変ノズルターボのノズル開度の操作量の加算結果に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップと、
を、プロセッサに実行させるための制御プログラム。
【０２４１】
（付記７）
排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部と、
前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前記吸気圧の測定値及び前記新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第１の時系列値及び前記可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、
前記排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第２の時系列値及び前記可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、
を加算して得られる、前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成する制御演算部と、
前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値を抽出すると共に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出する指令値算出部と、
を有するエンジン制御装置。
【０２４２】
（付記８）
排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部と、
前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と前記吸気圧の測定値及び前記新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第１の時系列値及び前記可変ノズルターボのノズル開度の操作量の第１の時系列値の行列と、
前記排気循環器のバルブ開度の操作量について現在時刻の１単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の１単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第２の時系列値及び前記可変ノズルターボのノズル開度の操作量の第２の時系列値の行列と、
を加算して得られる、前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列を生成する制御演算部と、
前記排気循環器のバルブ開度の操作量の第３の時系列値及び前記可変ノズルターボのノズル開度の操作量の第３の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値を抽出して前記前置補償器で処理し、当該前置補償器によって処理された後の前記排気循環器のバルブ開度の操作量の前記現在時刻の１単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の１単位時間後の値に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出する指令値算出部と、
を有するエンジン制御装置。
【符号の説明】
【０２４３】
１  エンジン本体
１０００  エンジン制御装置
１１０  計画器
１１２  行列設定器
１１４  ＭＰＣ主制御部
１１６  前操作量行列生成部
１１８  変動抑制部
１２０  エンジン特性
【図１】
2012167577.tif 000073
【図２】
2012167577.tif 000074
【図３】
2012167577.tif 000075
【図４】
2012167577.tif 000076
【図５】
2012167577.tif 000077
【図６】
2012167577.tif 000078
【図７】
2012167577.tif 000079
【図８】
2012167577.tif 000080
【図９】
2012167577.tif 000081
【図１０】
2012167577.tif 000082
【図１１】
2012167577.tif 000083
【図１２】
2012167577.tif 000084
【図１３】
2012167577.tif 000085
【図１４】
2012167577.tif 000086
【図１５】
2012167577.tif 000087
【図１６】
2012167577.tif 000088
【図１７】
2012167577.tif 000089
【図１８】
2012167577.tif 000090
【図１９】
2012167577.tif 000091
【図２０】
2012167577.tif 000092
【図２１】
2012167577.tif 000093
【図２２】
2012167577.tif 000094