MPCの最適化問題を​QPソルバーからMI​LPまたはGAに変更​したい

6 次查看(过去 30 天)
質問が2点あります。
  1. MPCの最適化問題を変更することは可能ですか?
  2. 1.が実現できない場合、MPCを独自に作成することはできますか?
1. SimulinkのFMIブロックに挿入したモデルを対象にMPCで整数での最適化を行いたいです。
この問題は整数の組合せ最適化問題となってしまうため、MPC tool boxのデフォルトである二次計画法は対応できないと思われます。
最適化アルゴリズムとして、intlinprogまたはGAの採用を検討しているのですが、MPCに実装することは可能ですか?
2. 1.ができない場合に備え、MATLAB Function ブロックを用いてintlinprogを実装しようとしているのですが
以下のようなエラーが出ます。
INTCON の各要素は、範囲 [1 numVars]、([1 0]) の整数でなければなりません。 Error in intlinprog.m (line 135) throw(ME); 'MILP/MATLAB Function' のエラー (line 84)
該当箇所周辺は
intcon = (24*3+1:120);
coder.extrinsic('optimoptions','intlinprog');
options = optimoptions('intlinprog','Display','iter');
[x,fval] = intlinprog(f,intcon,Con.Aineq,Con.bineq,Con.Aeq,Con.beq,Con.lb,Con.ub,[],options);

采纳的回答

Toshinobu Shintai
Toshinobu Shintai 2023-6-28
質問1についてですが、Model Predictive Control Toolboxでは、MPCモデルをカスタマイズできる機能が用意されています。非線形MPCのオブジェクトを使う必要がありますが、以下のドキュメンテーションに記載されているように、ソルバーを任意のものに設定することができますので、原理的には混合整数線形計画法や遺伝的アルゴリズムを用いることができます。
intlinprog」や「ga」コマンドが使う場合は、Simulinkの制約に依存する所があるかもしれません。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Model Predictive Control Toolbox 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!