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

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

Accepted Answer

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

Sign in to comment.

More Answers (1)

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

Products

Community Treasure Hunt

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

Start Hunting!