"排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前記吸気圧の測定値及び前記新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第1の時系列値及び前記可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、前記排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第2の時系列値及び前記可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成するステップと、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値を抽出すると共に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップと、を、プロセッサに実行させるための制御プログラム。前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値が、前記排気循環器のバルブ開度及び前記可変ノイズターボのノズル開度の飽和による制約条件を満たすか判断するステップと、前記制約条件が満たされないと判断された場合には、前記制約条件を満たしつつ、追従誤差に関する値と、操作量と現在時刻の1単位時間前の操作量との差に関する値とを重み付け加算した評価関数の値を最小化するように、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値を計算し直すステップと、をさらに、前記プロセッサに実行させるための請求項1記載の制御プログラム。排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と前記吸気圧の測定値及び前記新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第1の時系列値及び前記可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、前記排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第2の時系列値及び前記可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成するステップと、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値を抽出して前記前置補償器で処理し、当該前置補償器によって処理された後の前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップと、を、プロセッサに実行させるための制御プログラム。前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値が、前記排気循環器のバルブ開度及び前記可変ノイズターボのノズル開度の飽和による制約条件を満たすか判断するステップと、前記制約条件が満たされないと判断された場合には、前記制約条件を満たしつつ、追従誤差に関する値と、操作量と現在時刻の1単位時間前の操作量との差に関する値とを重み付け加算した評価関数の値を最小化するように、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値を計算し直すステップと、をさらに、前記プロセッサに実行させるための請求項3記載の制御プログラム。排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部と、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前記吸気圧の測定値及び前記新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第1の時系列値及び前記可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、前記排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第2の時系列値及び前記可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成する制御演算部と、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値を抽出すると共に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出する指令値算出部と、を有するエンジン制御装置。排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部と、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と前記吸気圧の測定値及び前記新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第1の時系列値及び前記可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、前記排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第2の時系列値及び前記可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成する制御演算部と、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値を抽出して前記前置補償器で処理し、当該前置補償器によって処理された後の前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出する指令値算出部と、を有するエンジン制御装置。従って、本技術の目的は、エンジンに対する操作量指令値の急激な変動を抑制するためのモデル予測制御技術を提供することである。第1の態様に係るエンジン制御方法は、A排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、Bb1燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、吸気圧の測定値及び新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第1の時系列値及び可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、b2排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第2の時系列値及び可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、b3排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成するステップと、C排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の1単位時間後の値を抽出すると共に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出するステップとを含む。第2の態様に係るエンジン制御方法は、A排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、Bb1燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、吸気圧の測定値及び新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第1の時系列値及び可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、b2排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第2の時系列値及び可変ノズルターボのノズル開度の操作量の第2の時系列値の行列とから、b3排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の1単位時間後の値を抽出して加算するステップと、C排気循環器のバルブ開度の操作量の加算結果及び可変ノズルターボのノズル開度の操作量の加算結果に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出するステップとを含む。第3の態様に係るエンジン制御方法は、A排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、Bb1燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と吸気圧の測定値及び新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第1の時系列値及び可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、b2排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第2の時系列値及び可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、b3排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成するステップと、C排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の1単位時間後の値を抽出して前置補償器で処理し、当該前置補償器によって処理された後の排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップとを含む。第4の態様に係るエンジン制御方法は、A排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、Bb1燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と吸気圧の測定値及び新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第1の時系列値及び可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、b2排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第2の時系列値及び可変ノズルターボのノズル開度の操作量の第2の時系列値の行列とから、b3排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の1単位時間後の値を抽出して加算するステップと、C排気循環器のバルブ開度の操作量の加算結果及び可変ノズルターボのノズル開度の操作量の加算結果に対して前置補償器で処理して、当該前置補償器によって処理された後の排気循環器のバルブ開度の操作量の加算結果及び可変ノズルターボのノズル開度の操作量の加算結果に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出するステップと含む。モデル予測制御をエンジンの制御に適用した場合、エンジンに対する操作量指令値の急激な変動を抑制できるようになる。[実施の形態1]まず、一般的なモデル予測制御を説明して本実施の形態との差を明確化する。制御対象のプラントモデル例えばディーゼルエンジンは、以下のように表される。但し、線形時不変システムとする。状態xkは、新気量xmaf及び吸気圧xmapを含み、操作量ukは、EGRバルブ開度の操作量uegr及びVNTノズル開度の操作量uvntを含み、観測軌道ykは、状態kと一致している。このような制御系を、以下のような評価関数を最小とする操作量を求める有限時間最適制御問題として解く。ここで、4式の第1行目における第1項は、状態xkの、目標値rk時刻kにおける参照軌道の値に対する追従誤差の2乗和を示し、第2項は操作量ukの二乗和エネルギーを示している。Q及びRは、それぞれの項に対する重みである。この問題は、第1項と第2項との和が最適になるようにukを求める問題となる。そして、重みQとRの設定により、第1項と第2項とはトレードオフ関係となる。具体的には、Rが一定で、重みQを大きくすることは、同じukのエネルギーで、目標値への追従誤差を相対的に小さくするような解が得られ、逆に重みQを小さくすることは、目標値への追従誤差は相対的に大きくてもよいというような解が得られる。一方、重みQが一定で、Rを大きくすることは、少ないエネルギーで一定の目標値追従性を達成することを意味し、逆に小さくすることは、大きなエネルギーで一定の目標値追従性を達成することを意味している。このような評価関数は、実際には図4に示したような高周波帯域の成分が高止まりするような操作量をもたらすことになる。ここで予測期間Nに対応するため拡大系を定義すると、1式は以下のように書き換えられる。なお、Xは2N次元の状態ベクトルであり、Uも2N次元の操作量ベクトルである。さらに、目標値rkに関しても2N次元の目標値ベクトルとして以下のように表す。6式と8式とを用いて4式の評価関数を書き換えると以下のようになる。さらに、5式の関係を9式に代入すると以下のようになる。但し、γはUに無関係の項をまとめたものである。11式におけるJkを最適化するUoptkは、以下の条件を満す。従って、以下のように表される。従って、Uoptkは、以下のように表される。最終的に、時刻kにおけるVNTノズル開度及びEGRバルブ開度の操作量の最適値uoptkは、以下のように表される。このような制御を行う場合におけるブロック線図を図7に示す。エンジン回転数及び燃料噴射量が入力されると、計画器は、それらに応じた基準値urefk及び目標値skを出力する。目標値skには、参照軌道行列Tが乗じられて参照軌道、すなわち目標ベクトルTkが生成される。念のため目標ベクトルTkについて示しておく。本実施の形態では、ステップ応答で1次遅れ要素を介したときの応答の、時刻kからkNまでの時系列値を目標ベクトルTkとする。伝達関数で表すと以下のとおりである。ここでTrは参照軌道の1次遅れの時定数である。Trを短くすると、即応性のある応答を、長くすると、ゆっくりした応答となる。これを時間応答に変換すると以下のように表される。これは、以下のようなベクトルで表される。そして、Tsをサンプリング周期として、t=Ts×i、iは1からNとすると以下のように展開される。時刻t0をTs×kと置くと、以下のように表される。但し、skは[smaf,smap]Tであるから、参照軌道行列Tは、2N行×2列の以下のような行列である。ここで、参照軌道の時定数Trについて、MAFとMAPをTrmaf、Trmapとして、個別に設定してもよい。一方、エンジン特性の測定値xkには7式のΨが乗じられて、Ψxkが算出される。そして、Ek=Tk-Ψxkが算出されて、MPCの主制御器に入力され、M2x2NH1ΘTQQ又はQbarはQバーを表すがEkに乗じられる。MPCの主制御器の出力であるuoptkは、計画器が出力した基準値urefkと加算されて、エンジンに入力される。これに対して、本実施の形態では、予測期間Nにおける各操作量と現在時刻kの1サンプル前の値との差分で評価関数を定義するものである。1サンプル前の操作量をu=uk-1u又はubarはuバーを表すとすると、評価関数Jkは以下のように表される。なお、2-1式の2行目で明らかなように、予測期間Nにおいて全ての操作量について現時点kの1サンプル前の操作量を引いた上で評価する点において特徴がある。このような差を小さくするように操作量を算出することで、操作量の変動が小さくなる。ここで以下のような定義を行う。この2-2式をさらに用いて4式から11式への変換と同様な変換を、2-1式にも行うと、以下のようになる。そして、2-3式におけるJkを最小化するUoptkは、以下の条件を満たす。そうすると、以下のように2-3式は表される。従って、Uoptkは、以下のように表される。2-5式は、14式と比較すると、第2項が加わっていることが分かる。この第2項によって、後に述べるように、操作量の急激な変動を抑制できるようになる。最終的には、uoptkは以下のように表される。本実施の形態では、2-7式に基づく制御を行う。図8に、本技術の実施の形態に係るエンジンの一例としてディーゼルエンジンを示す。エンジン本体1には、エンジン本体1からの排ガスを供給する排気循環器EGRと、排ガスの圧力にてタービンを回して新気FreshAirを圧縮してエンジン本体1に供給する可変ノズルターボVNTとが接続されている。可変ノズルターボVNTのノズル開度を調整することによって、可変ノズルターボVNTのタービンの回転が調整され、吸気圧MAPセンサで測定される吸気圧MAPが調整される。一方、排気循環器EGRに設けられているEGRバルブのバルブ開度を調整することによって、新気量MAFセンサで測定される新気量MAFが調整される。本実施の形態に係るエンジン制御装置1000には、MAPセンサからの吸気圧測定値と、MAFセンサからの新気量測定値と、外部から与えられる燃料噴射量の設定値と、同じく外部から与えられるエンジン回転数の設定値とが入力されるようになっている。また、エンジン制御装置1000からは、EGRバルブのバルブ開度の操作量がEGRバルブに出力され、VNTノズルのノズル開度の操作量がVNTノズルに出力されるようになっている。本実施の形態に係るエンジン制御装置1000のブロック線図を図9に示す。すなわち、燃料噴射量の設定値とエンジン回転数の設定値とが入力されて、燃料噴射量の値及びエンジン回転数の値に対応付けてEGRバルブ開度の目標値及びVNTノズル開度の目標値の組み合わせと新気量MAFの基準値及び吸気圧MAPの基準値の組み合わせが登録されている計画器110から、燃料噴射量の設定値及びエンジン回転数の設定値に対応するEGRバルブ開度の目標値及びVNTノズル開度の目標値skと、新気量MAFの基準値及び吸気圧MAPの基準値urefkとを読み出す。なお、計画器110は、例えば燃料噴射量の設定値とエンジン回転数の設定値とを行列設定器112に出力する。燃料噴射量の設定値とエンジン回転数の設定値ではなく、目標値及び基準値を特定する際に用いた他のパラメータ値であってもよい。行列設定器112は、燃料噴射量の設定値とエンジン回転数の設定値に応じて適切な行列A、B、Q及びRを特定して、2-7式の計算を行うのに用いられる他の行列を算出して、MPC主制御部114及び変動抑制部118に設定する。T及びΨについても設定がなされる。このような行列の設定は、例えば所定期間ごと、又は大幅に燃料噴射量とエンジン回転数とのうち少なくとも何れかが変化した場合などに実施する。そして、計画器110が出力したEGRバルブ開度の目標値及びVNTノズル開度の目標値skに、参照軌道行列Tを乗じて2N次元の目標ベクトルTkを算出すると共に、エンジン特性120の測定値xkにΨを乗じて2N次元の応答ベクトルΨxkを算出する。そうすると、2N次元の誤差ベクトルEk=Tk-Ψxkが得られる。この誤差ベクトルEkは、MPC主制御部114に入力される。MPC主制御部114は、M2x2NH1ΘTQをEkに乗じて出力する。MPC主制御部114の出力と変動抑制部118の出力とが加算されて、最適操作量uoptkが算出される。この最適操作量uoptkは、計画器110が出力したフィードフォワード値urefkと加算されてエンジン特性120に出力される。すなわち、uoptkurefkによって、VNTノズル開度及びEGRバルブ開度が制御される。なお、前操作量行列生成部116は、uoptkを1サンプル時間遅延させた上で2-2式の行列Uを生成して変動抑制部118に出力する。変動抑制部118は、Uに対して2-7式の第2項であるM2x2NH1Rを乗じてM2x2NH1RUR又はRbarはRバーを表す。を算出する。そうすると、次のサンプル時間でMPC主制御部114の出力と加算される。次に、エンジン制御装置1000の詳細な処理内容について図10及び図11を用いて説明する。まず、エンジン制御装置1000は、k=0に設定する図10:ステップS1。また、エンジン制御装置1000は、初期設定を実施するステップS3。具体的には、行列設定器112が、例えばk=0におけるエンジン回転数及び燃料噴射量に応じたプラント行列A及びBを取得すると共に、重み行列Q及びR、予測期間N、初期値x0及びu0、初期UU又はUbarはUバーを表す。及び参照軌道行列Tのための時定数Tr等を取得する。これらのデータについては、予めメモリなどに保持しておき、該当データを読み出す。さらに、エンジン制御装置1000の行列設定器112は、初期計算として、上で述べたように参照軌道行列Tを算出し、設定するステップS5。さらに、行列設定器112は、MPC主制御部114及び変動抑制部118で用いる行列H1=ΘTQΘ1及びΘTQなどを算出し、設定する。また、初期Uを用いて初期のRUを算出して設定する。さらに、H1ΘTQを算出し設定するステップS7。処理は端子Aを介して、図11の処理に移行する。図11の処理の説明に移行して、エンジン制御装置1000は、kを1インクリメントしステップ9、MAPセンサ及びMAFセンサから状態xkを取得し、現時刻におけるエンジン回転数及び燃料噴射量の設定値を取得すると共にそれらに対応する目標値skを計画器110から取得するステップS11。なお、エンジン制御装置1000は、計画器110から現時刻におけるエンジン回転数及び燃料噴射量に対応する基準値urefも取得する。そして、エンジン制御装置1000は、目標値ベクトルTk=Tskを算出するステップS13。また、エンジン制御装置1000は、目標ベクトルTkと応答ベクトルΨxkとの誤差ベクトルEkを算出するステップS15。そして、エンジン制御装置1000は、Uを考慮した最適操作量ベクトルUoptkを算出するステップS17。このステップでは、誤差ベクトルEkに対してMPC主制御部114でH1ΘTQを乗じる。また、k-1=0の場合を除きUoptk-1からUベクトルを生成し、k-1=0の場合には初期Uをそのまま用い、当該Uベクトルを用いて変動抑制部118によりH1RUを算出する。MPC主制御部114の出力と変動抑制部118の出力との和によりUoptkが算出される。また、エンジン制御装置1000は、ステップS17の結果に対してM2x2Nを乗じて、現時刻kにおける最適操作量uoptkを算出しここでは抽出し、さらに基準値urefkを加算することで操作量の指令値を算出し、当該指令値をエンジン1のVNTノズル及びEGRバルブに出力するステップS19。この部分の演算については、行列の性質を用いて変更することができる。具体的には、MPC主制御部114でM2x2Nを乗じてしまい、さらに変動抑制部118でもM2x2Nを乗じてしまうようにしても良い。さらに、エンジン制御装置1000の前操作量行列生成部116は、uk1=uoptkと設定して、uk1から新たなUを生成してメモリに保持するステップS21。新たなUについては次にkを1インクリメントした後に使用する。そして、エンジン制御装置1000は、kが予め設定された最大値kmaxに達したか判断するステップS23。kがkmaxに達していない場合には、処理はステップS9に戻る。一方、kがkmaxに達した場合には、処理を終了する。例えば、ステップS1に戻って、初期設定から処理を開始する。以上のような処理を実施することで、操作量指令値の急激な変動を抑制することができる。なお、図10のステップS3の内、システム行列A、B、重みQ、R、Urefの読み込み、および、ステップS7の定数行列の計算を、図11のステップS9とステップS11の間に入れることにより、毎回、運転条件が変わってシステム行列が変化する場合に対応することもできる。具体的な実験結果を図12及び図13に示す。図12では、横軸は周波数を表し、縦軸はパワーdBを表す。太線は本実施の形態におけるEGRバルブ開度の操作量指令値を表し、細線は従来のMPCによるEGRバルブに対する操作量指令値を表す。このように高周波帯域におけるパワーが従来のMPCよりも下がっている。また、図13でも、横軸は周波数を表し、縦軸はパワーdBを表す。太線は本実施の形態におけるVNTノズルに対する操作量指令値を表し、細線は従来のMPCによるVNTノズルに対する操作量指令値を表している。このようにVNTノズルに対する操作量指令値についても、高周波帯域におけるパワーが従来のMPCより下がっていることが分かる。このように、操作量指令値の急激な変動を抑制して安定的な制御が行われるようになる。[実施の形態2]EGRバルブ及びVNTノズルは、開閉されるものであるから、全閉が0、全開が1又は100といったように、制約を有する。従って、このような制約を考慮して前述したような評価関数Jkを最小にする解を求めることになる。すなわち、モデル予測制御では、このような制約条件の下での最適化問題を解くことになる。より具体的には、操作量に対する制約条件は以下のように表される。ここで、a,bは、EGRの下限値、上限値を、c,dは、VNTの下限値、上限値を示す。3-1式を以下のような形式で表現することを考える。まず、3-1式は以下のように変形される。そして3-3式は以下のように表現される。さらに、Ukの全ての要素について上記の制約が課される。すなわち、以下のように表される。これをまとめると以下のように表される。一方、制御量に対する制約条件は、以下のように表される。なお、上限値及び下限値に同じa,b,c,dを使用しているが、上で述べたa,b,c,dとは異なる。ここで、a,bは、MAFの下限値、上限値を、c,dは、MAPの下限値、上限値を示す。3-9式は、以下のような形式で表現することを考える。さらに3-11式は以下のように表すこともできる。さらに、Xkの全ての要素について上記の制約が課される。すなわち、以下のように表される。従って、これをまとめると以下のように表される。3-14式にXk=ΨxkΘUkを代入すると以下のように表される。以上の制約条件をまとめると以下のように表される。3-17式を満たさないようなUkが算出された場合には、以下のような3-17式の制約条件を満たし且つ2-3式のJkを最小化するUkを見つけるという最適化問題を解くことになる。すなわち、最適化問題は以下のように表される。3-18式の解法としては、QP問題、ラグランジュ乗数法、アクティブセット法、内点法などが存在しているので、ここでは詳しく述べない。このような制約条件を考慮した場合のブロック線図の一例を図14に示す。具体的には、燃料噴射量の設定値とエンジン回転数の設定値とが入力されて、燃料噴射量の値及びエンジン回転数の値に対応付けてEGRバルブ開度の目標値及びVNTノズル開度の目標値の組み合わせと新気量MAFの基準値及び吸気圧MAPの基準値の組み合わせが登録されている計画器210から、燃料噴射量の設定値及びエンジン回転数の設定値に対応するEGRバルブ開度の目標値及びVNTノズル開度の目標値skと、新気量MAFの基準値及び吸気圧MAPの基準値urefkとを読み出す。なお、計画器210は、例えば燃料噴射量の設定値とエンジン回転数の設定値とを行列設定器212に出力する。燃料噴射量の設定値とエンジン回転数の設定値ではなく、目標値及び基準値を特定する際に用いた他のパラメータ値であってもよい。行列設定器212は、例えば燃料噴射量の設定値とエンジン回転数の設定値に応じて適切な行列A、B、Q、Rを特定し、2-7式及び3-17式の計算を行うのに用いられる他の行列を算出して、最適化器214等に設定する。T及びΨについても設定がなされる。このような行列の設定は、例えば所定期間ごと、又は大幅に燃料噴射量とエンジン回転数とのうち少なくとも何れかが変化した場合などに実施する。そして、計画器210が出力したEGRバルブ開度の目標値及びVNTノズル開度の目標値skに、参照軌道行列Tを乗じて2N次元の目標ベクトルTkを算出すると共に、エンジン特性120の測定値xkにΨを乗じて2N次元の応答ベクトルΨxkを算出する。そうすると、2N次元の誤差ベクトルEk=Tk-Ψxkが得られる。この誤差ベクトルEkは、最適化器214に入力される。最適化器214は、第1の実施の形態におけるMPC主制御部114、前操作量行列生成部116及び変動抑制部118の機能と、最適化演算部の機能とを含む。具体的には、Uk=H1ΘTQEkH1RUを算出し、3-17式を満たすか否かを判断する。3-17式を満たす場合には、最適化演算部での処理を省略して、Uk=UoptkとしてM2x2NUoptk=uoptkを生成する。一方、3-17式が満たされない場合には、最適化演算部は3-18式を解く処理を実施する。3-18式の解をUoptkとしてM2x2NUoptk=uoptkを生成する。なお,3-17式におけるfに含まれる、EGRとVNTに関する制約のa,b,c,dの値は、フィードフォワード値urefkを加算した値が飽和しているか否かを判定できるような値に設定されているものとするそして、最適化器214の出力である最適操作量uoptkは、計画器210が出力したフィードフォワード値urefkと加算されてエンジン特性120に出力される。すなわち、uoptkurefkによって、VNTノズル開度及びEGRバルブ開度が制御される。なお、最適化器214では、uoptkを1サンプル時間遅延させて2-2式の行列を生成してメモリに保持しておく。次に、エンジン制御装置1000の詳細な処理内容について図15及び図16を用いて説明する。まず、エンジン制御装置1000は、k=0に設定する図15:ステップS31。また、エンジン制御装置1000は、初期設定を実施するステップS33。具体的には、行列設定器212が、例えばk=0におけるエンジン回転数及び燃料噴射量に応じたプラント行列A及びBを取得すると共に、重み行列Q及びR、予測期間N、初期値x0及びu0、初期U及び時定数Tr等を取得する。これらのデータについては、予めメモリなどに保持しておき、該当データを読み出す。さらに、エンジン制御装置1000の行列設定器212は、メモリなどに格納されている制約条件上の説明におけるa,b,c及びd2セット。具体的には、VNTノズル開度の上限値及び下限値、EGRバルブ開度の上限値及び下限値、xmafの上限値及び下限値、並びにxmapの上限値及び下限値を取得するステップS35。また、エンジン制御装置1000は、初期計算として、参照軌道行列Tを算出し、設定するステップS37。さらに、行列設定器212は、最適化器214で用いる定数行列H1=ΘTQΘ1及びΘTQ等、制約拡大行列f、F、g及びGを算出し、設定する。また、初期Uを用いて初期のRURはRのバーを表すを算出して設定する。さらに、H1ΘTQも算出して設定するステップS39。処理は端子Bを介して、図16の処理に移行する。図16の処理の説明に移行して、エンジン制御装置1000は、kを1インクリメントしステップS41、MAPセンサ及びMAFセンサから状態xkを取得し、現時刻kにおけるエンジン回転数及び燃料噴射量を取得して計画器210から当該エンジン回転数及び燃料噴射量に対応する目標値skを取得するステップS43。なお、エンジン制御装置1000は、計画器210から現時刻kにおけるエンジン回転数及び燃料噴射量に対応する基準値urefkも取得する。そして、エンジン制御装置1000は、目標値ベクトルTk=Tskを算出するステップS45。また、エンジン制御装置1000は、目標ベクトルTkと応答ベクトルΨxkとの誤差ベクトルEkを算出するステップS47。そして、エンジン制御装置1000の最適化器214は、Uを考慮した最適操作量ベクトルUkを算出するステップS49。このステップでは、誤差ベクトルEkに対してH1ΘTQを乗じる。また、k-1=0の場合を除きUoptk-1からUベクトルを生成し、k-1=0の場合には初期Uをそのまま用い、当該UベクトルからH1RUを算出する。そして、Uk=H1ΘTQEkH1RUが算出される。そして、エンジン制御装置1000は、3-17式の制約条件を満たしているかを判断するステップS51。制約条件を満たしているUkが得られた場合には、ステップS49で得られたUk=UoptkとしてステップS55に移行する。一方、制約条件を満たしているUkが得られなかった場合には、エンジン制御装置1000の最適化器214は、3-18式に従って最適化処理を実施してUoptkを算出するステップS53。なお、3-17式におけるfに含まれる,EGRとVNTに関する制約のa,b,c,dの値は、フィードフォワード値urefkを加算した値が飽和しているか否かを判定できるような値に設定されているものとする。また、エンジン制御装置1000の最適化器214は、ステップS49又はS53の結果に対してM2x2Nを乗じて、現時刻kにおける最適操作量uoptkを算出しここでは抽出し、さらに基準値urefkを加算することで操作量の指令値を算出し、当該指令値をエンジン1のVNTノズル及びEGRバルブに出力するステップS55。さらに、エンジン制御装置1000の最適化器214は、uk1=uoptkと設定し、新たなUを生成してメモリに保持するステップS57。新たなUについては次にkを1インクリメントした後に使用する。そして、エンジン制御装置1000は、kが予め設定された最大値kmaxに達したか判断するステップS59。kがkmaxに達していない場合には、処理はステップS41に戻る。一方、kがkmaxに達した場合には、処理を終了する。例えば、ステップS31に戻って、初期設定から処理を開始する。以上のような処理を実施することで、制約条件を満たしつつ、急激な変動を抑制することができるようになる。なお、図15のステップS33の内、システム行列A、B、重みQ、R、ステップS35の制約条件の取得、および、ステップS39の定数行列や制約拡大行列の計算を、図16のステップS41とステップS43の間に入れることにより、毎回、運転条件が変わってシステム行列が変化する場合に対応することもできる。[実施の形態3]本実施の形態では、高周波帯域における操作量指令値の成分を抑制するために、ローパスフィルタ特性を有する前置補償器を導入する場合を考える。本実施の形態では、制御対象のプラント例えばディーゼルエンジンを以下のように表す。また、導入した前置補償器の伝達関数は以下のように表されるものとする。ここで、Td11,Td22は、前置補償器のローパス特性を記述する時定数であり、大きな値にすることで、ローパス特性をより強く指定することが可能となる。この特性をクロス項に指定することも可能である。このような前置補償器の離散状態方程式は以下のようになる。ここで4-1式と4-5式の合成系を考える。そこで、合成系の状態方程式を以下のように表す。但し、xkは6行1列の状態ベクトルを表し、uは2行1列の操作量ベクトルを表し、yは2行1列の測定ベクトルを表し、Aは6行6列の行列を表し、Bは6行2列の行列を表し、Cは2行6列の行列を表す。このように合成系を表現すれば、解くべき有限時間最適制御問題は、第1の実施の形態における評価式Jkと同じ形になる。なお、u=uk-1であり、現時刻の1サンプル前の操作量を表す。また、Q及びRは重み係数である。また、Yを2N行の測定ベクトル、Uを2N行の操作量ベクトルとして拡大系を定義すると、4-1式は以下のように表される。さらに、T、U、Q、R及びγについては第1の実施の形態で定義したものと同じとすると、4-9式は、以下のように表される。この評価関数Jkを最小化するUoptkは、第1の実施の形態と同様に導出すると、以下のように表される。最終的に最適操作量uoptkは、以下のように表される。本実施の形態では4-17式に基づき制御を行う。次に、本実施の形態に係るエンジン制御装置1000のブロック線図を図17に示す。すなわち、燃料噴射量の設定値とエンジン回転数の設定値とが入力されて、燃料噴射量の値及びエンジン回転数の値に対応付けてEGRバルブ開度の目標値及びVNTノズル開度の目標値の組み合わせと新気量MAFの基準値及び吸気圧MAPの基準値の組み合わせが登録されている計画器310から、燃料噴射量の設定値及びエンジン回転数の設定値に対応するEGRバルブ開度の目標値及びVNTノズル開度の目標値skと、新気量MAFの基準値及び吸気圧MAPの基準値urefkとを読み出す。なお、計画器310は、例えば燃料噴射量の設定値とエンジン回転数の設定値とを行列設定器312に出力する。燃料噴射量の設定値とエンジン回転数の設定値ではなく、目標値及び基準値を特定する際に用いた他のパラメータ値であってもよい。行列設定器312は、燃料噴射量の設定値とエンジン回転数の設定値に応じて適切な行列A、B、Q及びRを特定して、4-17式の計算を行うのに用いられる他の行列を算出して、第2MPC主制御部314、第2変動抑制部318、応答ベクトル生成部322に設定する。Tについても設定がなされる。このような行列の設定は、例えば所定期間ごと、又は大幅に燃料噴射量とエンジン回転数とのうち少なくともいずれかが変化した場合などに実施する。そして、計画器310が出力したEGRバルブ開度の目標値及びVNTノズル開度の目標値skに、参照軌道行列Tを乗じて2N次元の目標ベクトルTkを算出する。一方、応答ベクトル生成部322は、エンジン特性120の測定値xpkと前置補償器320の内部状態出力値xdkとから状態ベクトルxkを生成した上で、Ψcを乗じて2N次元の応答ベクトルΨcxkを算出する。そうすると、2N次元の誤差ベクトルEk=Tk-Ψcxkが得られる。この誤差ベクトルEkは、第2MPC主制御部314に入力される。第2MPC主制御部314は、M2x2NH1ΘTQをEkに乗じて出力する。第2MPC主制御部314の出力と第2変動抑制部318の出力とが加算されて、操作量ukが算出される。ローパスフィルタ特性を有する前置補償器320は、この操作量ukを処理して、操作量upkを出力する。出力されたupkは、フィードフォワード値urefkと加算されてエンジン特性120に出力される。すなわち、upkurefkによって、VNTノズル開度及びEGRバルブ開度が制御される。なお、前操作量行列生成部316は、ukを1サンプル時間遅延させて2-2式の行列を生成して第2変動抑制部318に出力する。第2変動抑制部318は、4-17式の第2項であるM2x2NHc1RをUに乗じてM2x2NHc1RUを算出する。そうすると、第2変動抑制部318の出力は、次のサンプル時間で第2MPC主制御部314の出力と加算される。次に、エンジン制御装置1000の詳細な処理内容について図18及び図19を用いて説明する。まず、エンジン制御装置1000は、k=0に設定する図18:ステップS61。また、エンジン制御装置1000は、初期設定を実施するステップS63。具体的には、行列設定器312が、k=0におけるエンジン回転数及び燃料噴射量に応じたプラント行列A及びBを取得すると共に、重み行列Q及びR、予測期間N、初期値x0及びu0、初期U及び時定数Tr等を取得する。なお、A及びBについては第1の実施の形態とは異なる。また、これらのデータについては、予めメモリなどに保持しておき、該当データを読み出す。さらに、エンジン制御装置1000の行列設定器312は、初期計算として、参照軌道行列Tを算出し、設定するステップS65。さらに、行列設定器312は、第2MPC主制御部314及び第2変動抑制部318で用いる行列Hc1=ΘcTQΘc1及びΘcTQなどを算出し、設定するステップS67。また、初期Uを用いて初期のRURはRのバーを表すを算出して設定する。さらに、Hc1ΘcTQも算出して設定する。処理は端子Cを介して、図19の処理に移行する。図19の処理の説明に移行して、エンジン制御装置1000は、kを1インクリメントしステップS69、MAPセンサ及びMAFセンサから状態xpkを取得し、前置補償器320から内部状態出力xdkを取得し、さらに現時刻におけるエンジン回転数及び燃料噴射量を取得して当該エンジン回転数及び燃料噴射量に対応する目標値skを取得するステップS71。なお、エンジン制御装置1000は、計画器310から現時刻におけるエンジン回転数及び燃料噴射量に対応する基準値urefも取得する。そして、エンジン制御装置1000は、目標値ベクトルTk=Tskを算出するステップS73。また、エンジン制御装置1000の応答ベクトル生成部322は、xdkとxpkとからxkを生成してさらに応答ベクトルΨcxkを算出する。そして、エンジン制御装置1000は、目標ベクトルTkと応答ベクトルΨcxkとの誤差ベクトルEk=Tk-Ψcxkを算出するステップS75。そして、エンジン制御装置1000は、Uを考慮した最適操作量uoptkを算出するステップS77。このステップでは、誤差ベクトルEkに対して第2MPC主制御部314でHc1ΘTQを乗じる。また、k-1=0の場合を除きUoptk-1からUベクトルを生成し、k-1=0の場合には初期Uをそのまま用い、当該Uベクトルを用いて第2変動抑制部318によりHc1RUを算出する。MPC主制御部314の出力と変動抑制部318の出力との和によりUoptkが算出される。エンジン制御装置1000は、このUoptkに対してM2x2Nを乗ずることで最適操作量uoptkを算出する。なお、第2MPC主制御部314で、誤差ベクトルEkに対してM2x2NH1ΘTQを乗じ、第2変動抑制部318では、M2x2NHc1RUを算出し、最終的にエンジン制御装置1000がそれらの演算結果を加算するようにしても良い。さらに、前置補償器320は、最適操作量uoptkを処理し、エンジン制御装置1000は、前置補償器320の出力と、基準値urefkを加算することで操作量の指令値を算出し、当該指令値をエンジン1のVNTノズル及びEGRバルブに出力するステップS79。さらに、エンジン制御装置1000の前操作量行列生成部316は、uk1=uoptkと設定して、新たなUを生成して保持するステップS81。新たなUについては次にkを1インクリメントした後に使用する。そして、エンジン制御装置1000は、kが予め設定された最大値kmaxに達したか判断するステップS83。kがkmaxに達していない場合には、処理はステップS69に戻る。一方、kがkmaxに達した場合には、処理を終了する。例えば、ステップS61に戻って、初期設定から処理を開始する。以上のように、前置補償器320を設けてさらに高周波帯域におけるパワーを抑えることができ、全体として操作量指令値の急激な変動を抑制することができる。[実施の形態4]第1の実施の形態に対して第2の実施の形態において制約条件を考慮することを示したが、第3の実施の形態に対して制約条件を考慮する実施の形態を示す。基本的な考え方は第2の実施の形態と同じであるが、前置補償器を導入することによって影響がある部分についてのみ説明する。具体的には、Θ及びΨに代ってΘc及びΨcを用いる。従って、制約条件は以下のように表される。5-1式を満たすような操作量ベクトルUkが計算できれば、そのままUkからuoptkを抽出する。一方、5-1式を満たすような操作量ベクトルUkが計算できなければ、以下のような最適化問題を解くことになる。このような制約条件を考慮した場合のブロック線図の一例を図20に示す。具体的には、燃料噴射量の設定値とエンジン回転数の設定値とが入力されて、燃料噴射量の値及びエンジン回転数の値に対応付けてEGRバルブ開度の目標値及びVNTノズル開度の目標値の組み合わせと新気量MAFの基準値及び吸気圧MAPの基準値の組み合わせが登録されている計画器410から、燃料噴射量の設定値及びエンジン回転数の設定値に対応するEGRバルブ開度の目標値及びVNTノズル開度の目標値skと、新気量MAFの基準値及び吸気圧MAPの基準値urefkとを読み出す。なお、計画器410は、例えば燃料噴射量の設定値とエンジン回転数の設定値とを行列設定器412に出力する。燃料噴射量の設定値とエンジン回転数の設定値ではなく、目標値及び基準値を特定する際に用いた他のパラメータ値であってもよい。行列設定器412は、例えば燃料噴射量の設定値とエンジン回転数の設定値に応じて適切な行列A、B、Q、Rを特定し、4-15式及び5-1式の計算を行うのに用いられる他の行列を算出して、第2最適化器414及び第2応答ベクトル生成部422に設定する。Tについても設定がなされる。このような行列の設定は、例えば所定期間ごと、又は大幅に燃料噴射量とエンジン回転数との少なくとも何れかが変化した場合などに実施する。そして、計画器410が出力したEGRバルブ開度の目標値及びVNTノズル開度の目標値skに、参照軌道行列Tを乗じて2N次元の目標ベクトルTkを算出すると共に、エンジン特性120の測定値xpkと前置補償器420の内部状態出力xdkとから生成される状態ベクトルxkにΨcを乗じて2N次元の応答ベクトルΨcxkを算出する。そうすると、2N次元の誤差ベクトルEk=Tk-Ψcxkが得られる。この誤差ベクトルEkは、第2最適化器414に入力される。最適化器414は、第3の実施の形態における第2MPC主制御部314、前操作量行列生成部316及び第2変動抑制部318の機能と、最適化演算部の機能とを含む。具体的には、Uk=Hc1ΘcTQEkHc1RUを算出し、5-1式を満たすか否かを判断する。5-1式を満たす場合には、最適化演算部での処理を省略して、Uk=UoptkとしてM2x2NUoptk=uoptkを生成する。一方、5-1式が満たされない場合には、最適化演算部は5-2式を解く処理を実施する。そして5-2式の解をUoptkとしてM2x2NUoptk=uoptkを生成する。なお、5-2式におけるfに含まれる、EGRとVNTに関する制約のa,b,c,dの値は、フィードフォワード値urefkを加算した値が飽和しているか否かを、判定できるような値に設定されているものとする。第2最適化器414の出力uoptkは、前置補償器420に入力され、前置補償器420で処理されて、操作量upkが出力される。そして、前置補償器420の出力である操作量upkは、計画器410が出力したフィードフォワード値urefkと加算されてエンジン特性120に出力される。すなわち、upkurefkによって、VNTノズル開度及びEGRバルブ開度が制御される。なお、第2最適化器414では、upkを1サンプル時間遅延させて2-2式の行列を生成してメモリに保持しておく。このように使用する行列の形が第2の実施の形態とは異なるが、処理フローの形は同様であるから、説明を省略する。以上のような処理を行うことで、前置補償器を設ける場合においても、制約条件を考慮した形で、高周波帯域におけるパワーを下げて急激な変動を抑えることができるようになる。なお、図18のステップS63の内、システム行列A、B、重みQ、R、ステップS35の制約条件の取得、および、ステップS67の定数行列や制約拡大行列の計算を、図19のステップS69とステップS71の間に入れることにより、毎回、運転条件が変わってシステム行列が変化する場合に対応することもできる。以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、ブロック線図に従ったプログラムモジュール構成ではなくてもよい。また、処理フローについても、処理結果が変わらない限り処理順番を入れ替えたり、並列実施しても良い。なお、上で述べたエンジン制御装置1000は、コンピュータ装置であって、図21に示すように、RAMRandomAccessMemory2501とプロセッサ2503とROMReadOnlyMemory2507とセンサ群2515とがバス2519で接続されている。本実施の形態における処理を実施するための制御プログラム及び存在している場合にはオペレーティングシステムOS:OperatingSystemは、ROM2507に格納されており、プロセッサ2503により実行される際にはROM2507からRAM2501に読み出される。プロセッサ2503は、センサ群吸気圧センサ及び新気量センサ。場合によっては燃料噴射量測定部及びエンジン回転数測定部など。を制御して、測定値を取得する。また、処理途中のデータについては、RAM2501に格納される。なお、プロセッサ2503は、ROM2507を含む場合もあり、さらに、RAM2501を含む場合もある。本技術の実施の形態では、上で述べた処理を実施するための制御プログラムは、コンピュータ読み取り可能なリムーバブルディスクに格納されて頒布され、ROMライタによってROM2507に書き込まれる場合もある。このようなコンピュータ装置は、上で述べたプロセッサ2503、RAM2501、ROM2507などのハードウエアと制御プログラム場合によってはOSもとが有機的に協働することにより、上で述べたような各種機能を実現する。但し、エンジン制御装置全体をハードウエアのみにて実装することも可能である。以上述べた本実施の形態をまとめると以下のようになる。本実施の形態の第1態様に係るエンジン制御方法は、A排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、Bb1燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、吸気圧の測定値及び新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第1の時系列値及び可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、b2排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第2の時系列値及び可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、b3排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成するステップと、C排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の1単位時間後の値を抽出すると共に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出するステップとを含む。このように、モデル予測制御において、予測期間中の各操作量について現在時刻の1単位時間前の操作量との差を評価するように評価関数を変形することで、排気循環器のバルブ開度の操作量の第2の時系列値及び可変ノズルターボのノズル開度の操作量の第2の時系列値の行列が導入されるようになる。そうすると、操作量の指令値の急激な変動を抑制できるようになる。本実施の形態の第1態様に係るエンジン制御方法は、D排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値が、排気循環器のバルブ開度及び可変ノイズターボのノズル開度の飽和による制約条件を満たすか判断するステップと、E制約条件が満たされないと判断された場合には、制約条件を満たしつつ、追従誤差に関する値と、操作量と現在時刻の1単位時間前の操作量との差に関する値とを重み付け加算した評価関数の値を最小化するように、排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値を計算し直すステップとを含むようにしても良い。このようにすれば、排気循環器の開度及び可変ノズルターボの開度についての制約を満たしつつ、操作量の指令値の急激な変動を抑制できるようになる。本実施の形態の第2態様に係るエンジン制御方法は、A排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、Bb1燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、吸気圧の測定値及び新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第1の時系列値及び可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、b2排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第2の時系列値及び可変ノズルターボのノズル開度の操作量の第2の時系列値の行列とから、排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の1単位時間後の値を抽出して加算するステップと、C排気循環器のバルブ開度の操作量の加算結果及び可変ノズルターボのノズル開度の操作量の加算結果に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出するステップとを含む。第1態様とは異なる演算方法を採用しても、操作量の指令値の急激な変動を抑制できるようになる。本実施の形態の第3態様に係るエンジン制御方法は、A排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、Bb1燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と吸気圧の測定値及び新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第1の時系列値及び可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、b2排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第2の時系列値及び可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、b3排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成するステップと、C排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の1単位時間後の値を抽出して前置補償器で処理し、当該前置補償器によって処理された後の排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップとを含む。急激な変動を抑制するために前置補償器を導入する場合においても、排気循環器のバルブ開度の操作量の第2の時系列値及び可変ノズルターボのノズル開度の操作量の第2の時系列値の行列を導入することで、操作量の指令値の急激な変動を抑制できるようになる。本実施の形態の第3形態に係るエンジン制御方法は、D排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値が、排気循環器のバルブ開度及び可変ノイズターボのノズル開度の飽和による制約条件を満たすか判断するステップと、E制約条件が満たされないと判断された場合には、制約条件を満たしつつ、追従誤差に関する値と、操作量と現在時刻の1単位時間前の操作量との差に関する値とを重み付け加算した評価関数の値を最小化するように、排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値を計算し直すステップとをさらに含むようにしてもよい。前置補償器を採用する場合においても、排気循環器の開度及び可変ノズルターボの開度についての制約を満たしつつ、操作量の指令値の急激な変動を抑制できるようになる。本実施の形態の第4態様に係るエンジン制御方法は、A排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、Bb1燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と吸気圧の測定値及び新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第1の時系列値及び可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、b2排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第2の時系列値及び可変ノズルターボのノズル開度の操作量の第2の時系列値の行列とから、排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の1単位時間後の値を抽出して加算するステップと、C排気循環器のバルブ開度の操作量の加算結果及び可変ノズルターボのノズル開度の操作量の加算結果に対して前置補償器で処理して、当該前置補償器によって処理された後の排気循環器のバルブ開度の操作量の加算結果及び可変ノズルターボのノズル開度の操作量の加算結果に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出するステップと含む。第3形態とは異なる演算方法を採用しても、操作量の指令値の急激な変動を抑制できるようになる。なお、モデル予測制御の主制御行列などに含まれる行列を、例えば一定期間ごと、又は排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値とエンジン回転数の設定値との少なくとも何れかが閾値以上変化した場合に、変更するようにしても良い。さらに、本実施の形態の第4態様に係るエンジン制御装置図22:4000は、A排気循環器及び可変ノズルターボを有するエンジン図22:1に対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部図22:4100と、Bb1燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、吸気圧の測定値及び新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第1の時系列値及び可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、b2排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第2の時系列値及び可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、b3排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成する制御演算部図22:4200と、C排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の1単位時間後の値を抽出すると共に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出する指令値算出部図22:4300とを有する。また、本実施の形態の第5態様に係るエンジン制御装置図22:4000は、A排気循環器及び可変ノズルターボを有するエンジン図22:1に対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部図22:4100と、Bb1燃料噴射量の設定値及びエンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と吸気圧の測定値及び前記新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、排気循環器のバルブ開度の操作量の第1の時系列値及び可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、b2排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて排気循環器のバルブ開度及び可変ノズルターボのノズル開度の操作量の変動を抑制させる、排気循環器のバルブ開度の操作量の第2の時系列値及び可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、b3排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成する制御演算部図22:4200と、C排気循環器のバルブ開度の操作量の第3の時系列値及び可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の1単位時間後の値を抽出して前置補償器で処理し、当該前置補償器によって処理された後の排気循環器のバルブ開度の操作量の現在時刻の1単位時間後の値及び可変ノズルターボのノズル開度の操作量の現在時刻の1単位時間後の値に、燃料噴射量の設定値及びエンジン回転数の設定値に応じた、排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値を加算することで、排気循環器のバルブ開度の指令値及び可変ノズルターボのノズル開度の指令値を算出する指令値算出部図22:4300とを有する。なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD-ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。付記1排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前記吸気圧の測定値及び前記新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第1の時系列値及び前記可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、前記排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第2の時系列値及び前記可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成するステップと、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値を抽出すると共に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップと、を、プロセッサに実行させるための制御プログラム。付記2前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値が、前記排気循環器のバルブ開度及び前記可変ノイズターボのノズル開度の飽和による制約条件を満たすか判断するステップと、前記制約条件が満たされないと判断された場合には、前記制約条件を満たしつつ、追従誤差に関する値と、操作量と現在時刻の1単位時間前の操作量との差に関する値とを重み付け加算した評価関数の値を最小化するように、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値を計算し直すステップと、をさらに、前記プロセッサに実行させるための付記1記載の制御プログラム。付記3排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前記吸気圧の測定値及び前記新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第1の時系列値及び前記可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、前記排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第2の時系列値及び前記可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、から、前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値を抽出して加算するステップと、前記排気循環器のバルブ開度の操作量の加算結果及び前記可変ノズルターボのノズル開度の操作量の加算結果に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップと、を、プロセッサに実行させるための制御プログラム。付記4排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と前記吸気圧の測定値及び前記新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第1の時系列値及び前記可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、前記排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第2の時系列値及び前記可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成するステップと、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値を抽出して前記前置補償器で処理し、当該前置補償器によって処理された後の前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップと、を、プロセッサに実行させるための制御プログラム。付記5前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値が、前記排気循環器のバルブ開度及び前記可変ノイズターボのノズル開度の飽和による制約条件を満たすか判断するステップと、前記制約条件が満たされないと判断された場合には、前記制約条件を満たしつつ、追従誤差に関する値と、操作量と現在時刻の1単位時間前の操作量との差に関する値とを重み付け加算した評価関数の値を最小化するように、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値を計算し直すステップと、をさらに、前記プロセッサに実行させるための付記4記載の制御プログラム。付記6排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と前記吸気圧の測定値及び前記新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第1の時系列値及び前記可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、前記排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第2の時系列値及び前記可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、から、前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値を抽出して加算するステップと、前記排気循環器のバルブ開度の操作量の加算結果及び前記可変ノズルターボのノズル開度の操作量の加算結果に対して前記前置補償器で処理して、当該前置補償器によって処理された後の前記排気循環器のバルブ開度の操作量の加算結果及び前記可変ノズルターボのノズル開度の操作量の加算結果に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出するステップと、を、プロセッサに実行させるための制御プログラム。付記7排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部と、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前記吸気圧の測定値及び前記新気量の測定値に応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第1の時系列値及び前記可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、前記排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第2の時系列値及び前記可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成する制御演算部と、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値を抽出すると共に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出する指令値算出部と、を有するエンジン制御装置。付記8排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部と、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた目標時系列値と、前置補償器の内部状態出力値と前記吸気圧の測定値及び前記新気量の測定値とに応じた応答時系列値との誤差に係る行列に対してモデル予測制御の主制御行列を乗じることで得られる、前記排気循環器のバルブ開度の操作量の第1の時系列値及び前記可変ノズルターボのノズル開度の操作量の第1の時系列値の行列と、前記排気循環器のバルブ開度の操作量について現在時刻の1単位時間前の値及び前記可変ノズルターボのノズル開度の操作量について現在時刻の1単位時間前の値に応じて前記排気循環器のバルブ開度及び前記可変ノズルターボのノズル開度の操作量の変動を抑制させる、前記排気循環器のバルブ開度の操作量の第2の時系列値及び前記可変ノズルターボのノズル開度の操作量の第2の時系列値の行列と、を加算して得られる、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列を生成する制御演算部と、前記排気循環器のバルブ開度の操作量の第3の時系列値及び前記可変ノズルターボのノズル開度の操作量の第3の時系列値の行列から、前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値を抽出して前記前置補償器で処理し、当該前置補償器によって処理された後の前記排気循環器のバルブ開度の操作量の前記現在時刻の1単位時間後の値及び前記可変ノズルターボのノズル開度の操作量の前記現在時刻の1単位時間後の値に、前記燃料噴射量の設定値及び前記エンジン回転数の設定値に応じた、前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値を加算することで、前記排気循環器のバルブ開度の指令値及び前記可変ノズルターボのノズル開度の指令値を算出する指令値算出部と、を有するエンジン制御装置。"