Model Predictive Control Toolboxにおける1ステップ当たりの計算時間について
6 ビュー (過去 30 日間)
古いコメントを表示
Model Predictive Control ToolboxをMATLAB/Simulink上で実行した際に1ステップ当たりの計算時間を知る方法はありますか。
MPC Controller の時間計測について
こちらの質問と解答を先に見てみたのですが,1)マイコン等に実装した場合の計算時間ではなく、MATLAB/Simulink上で実行した場合の2)全体の計算時間ではなく、1ステップ毎の(平均の)計算時間を知りたく、質問しました。
要はMPC Controllerを設計する際に、プラントと共に設定したサンプリングタイムで最適化計算が間に合っているのかを明示的に知りたいのですが、良い方法はあるのでしょうか。
2 件のコメント
Toshinobu Shintai
2020 年 9 月 2 日
確認ですが、1)の「マイコンではなくMATLAB/Simulink上で実行した場合」の計算時間を知りたい理由は、実機実験の際にMATLABがインストールされたPCを用いて制御を実行したいから、ということでよろしいでしょうか。
「プラントと共に設定したサンプリングタイムで最適化計算が間に合っているのか」というのは、最適化計算が実時間での制御実行間隔に間に合うように計算できているか、ということでしょうか。
回答 (1 件)
Toshinobu Shintai
2020 年 9 月 2 日
Simulinkモデルの1ステップにかかった実時間を計測する、ライブラリブロックはありませんが、自作することは可能です。
以下のリンク先の、シミュレーションモデルの実行をリアルタイム化する自作ライブラリをご参照ください。
「msfun_realtime_pacer.m」の87, 88行目あたりで、モデルの実行が実時間になるような「待ち時間」を計算しています。ここを改造すると、1ステップの実行にかかった時間を求めることができますので、それをブロックから出力させるポートを用意し、出力させればよいです。
上記ライブラリ、または「MPC Controller の時間計測について」の回答にも一部書かれていますが、一般的にWindows, Mac, Linuxなどの汎用PCは、10ミリ秒以下のオーダーの時間計測が厳密ではなく、また確定的に実行することも難しいです。リアルタイムの制御の用途で用いる際は、100ミリ秒オーダー以上のタイムステップが採用できる場合にのみ用いることを推奨します。
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Linear Plant Specification についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!