MPCの最適化問題をQPソルバーからMILPまたはGAに変更したい
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Jianan Liu
il 28 Giu 2023
Risposto: Toshinobu Shintai
il 28 Giu 2023
質問が2点あります。
- MPCの最適化問題を変更することは可能ですか?
- 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);
0 Commenti
Risposta accettata
Toshinobu Shintai
il 28 Giu 2023
質問1についてですが、Model Predictive Control Toolboxでは、MPCモデルをカスタマイズできる機能が用意されています。非線形MPCのオブジェクトを使う必要がありますが、以下のドキュメンテーションに記載されているように、ソルバーを任意のものに設定することができますので、原理的には混合整数線形計画法や遺伝的アルゴリズムを用いることができます。
「intlinprog」や「ga」コマンドが使う場合は、Simulinkの制約に依存する所があるかもしれません。
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Model Predictive Control Toolbox in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!