MPCでmdによる影響の予測は可能ですか?

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

採用された回答

Hiroumi Mita
Hiroumi Mita 2018 年 6 月 11 日
外乱(MD)や目標値(ref)の将来値を事前の織り込んで制御する機能を look aheadと言います。 次のサンプルデモをしっかり調べて読み込んでみるとよいかと思います。 look aheadはスクリプトでしか設定できないように見受けられます。
サンプルデモ Improving Control Performance with Look-Ahead (Previewing)
  2 件のコメント
yu uchimura
yu uchimura 2018 年 6 月 18 日
ご回答ありがとうございます。 サンプルデモの方参考にさせて頂きます。
yu uchimura
yu uchimura 2018 年 6 月 20 日
重ねての質問申し訳ございません。
「サンプルデモ Improving Control Performance with Look-Ahead (Previewing)」のページを読んでおり、ページ最下部にSimulinkを用いてシミュレーションを行うことが可能であるような記述がありましたが、やはりこのlookaheadという機能はスクリプトでしか設定できないのでしょうか?もしSimulinkでも設定できるのであれば、方法を教えて頂きたいです。
それと、以下のSimulik図の「Reference Previewerブロック」、「Measured Disturbance Previewer ブロック」、「uSLブロック」、「ySLブロック」がSimulink ライブラリブラウザ内に見当たらないのですが、どのブロックを用いているのかを教えて頂きたいです。

サインインしてコメントする。

その他の回答 (1 件)

Hiroumi Mita
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モデルの情報表示ー>自動生成名の非表示のチェックをはずすとブロック名は見ることができます。

カテゴリ

Help Center および File ExchangeSimulation についてさらに検索

Community Treasure Hunt

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

Start Hunting!