MPCでmdによる影響の予測は可能ですか?
1 回表示 (過去 30 日間)
古いコメントを表示
現在、simulinkでMPCコントローラを用いる際に、シミュレーション期間中のmdが既知であることを想定し、signal builderを使用しmdとして与え、シミュレーションを行っています。そのmdが変動する際に、制御対象から出力されるデータにも変動をもたらすのですが、この変動を抑制する(mdが制御対象へ与える影響を予測して制御を行う)ことは可能なのでしょうか?

0 件のコメント
採用された回答
Hiroumi Mita
2018 年 6 月 11 日
外乱(MD)や目標値(ref)の将来値を事前の織り込んで制御する機能を look aheadと言います。 次のサンプルデモをしっかり調べて読み込んでみるとよいかと思います。 look aheadはスクリプトでしか設定できないように見受けられます。
サンプルデモ Improving Control Performance with Look-Ahead (Previewing)
その他の回答 (1 件)
Hiroumi Mita
2018 年 7 月 12 日
#Q1. lookaheadという機能はスクリプトでしか設定できないのでしょうか?
もしSimulinkでも設定できるのであれば、方法を教えて頂きたいです。
#A1. Simulinkで設定する機能は無いようです。 MPC Desingrerを見た限りでは、lookaheadの設定機能はありませんでした。
MPC Toolboxではスクリプトで設計したMPCオブジェクトをMPC制御器としてSimulink内で使えます。
MPCオブジェクトにlookaheadを設定すれば、その機能がSimulink上で使えることを示したのが 該当のデモです。
#Q2. 以下のSimulik図の「Reference Previewerブロック」、 「Measured Disturbance Previewer ブロック」、「uSLブロック」、 「ySLブロック」がSimulink ライブラリブラウザ内に見当たらないのですが、 どのブロックを用いているのかを教えて頂きたいです。
#A2. 「Reference Previewerブロック」、「Measured Disturbance Previewer ブロック」は
標準のブロックはありません。その中で、関数(mpcblock_preview.m)をコールするようデモ用に作成したものです。
マスク機能でカバーをつけ、MATLAB Function BlockでMATLAB関数を呼び出しています。
その内容はmpcblock_preview.mを精査してください。
なお、Simulinkモデルの情報表示ー>自動生成名の非表示のチェックをはずすとブロック名は見ることができます。
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Simulation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!