MPCで、2種類のみのmvを出力したいです。
Show older comments
現在、simlinkのMPCを用いて、空調制御のシミュレーションを行っています。 その際に、MPCのmvにおいて、連続的なmvではなく2種類のみのmvを出力したいのですが、どうすれば良いでしょうか? 例えば、シミュレーションを行う際に、1~100のmvを用いるのではなく、1と100の2種類のみのmvをシミュレーションに使用したいです。
Accepted Answer
More Answers (1)
Hiroumi Mita
on 4 Jun 2018
0 votes
Q1. 回答で教えていただいた手順でMPCの出力を強制的に2極化した場合、 MPCでの最適化は、本来の連続的な出力と、MPCの外で変換した2極化された出力のどちらで行われるのでしょうか?
A1.MPCの設計は連続系で行われます。
MPCは動的に、逐次制約条件つき二次計画法を解きます 。 MPCの計算のイメージは以下の2次形式評価関数を最小にする 操作量ベクトルu(j)j=1:Lを逐次的に最適化計算します。
操作量ベクトルuは0/1ではなく、実数です。 よって連続的な出力計算されるのが正です。
2次形式評価関数=Sigma(k=1:予測ホライズンN) (weight1*(y*(k)-y^(k))^2)% 制御量の目標値への追従性
+
Sigma(j=1:制御ホライズンM) (weight2*(u(j))^2) %操作量の自乗和
weight1:重み係数1
weight2:重み係数2
y*(k):k番目の設定値
y^(k):プラントモデルにより計算された予測制御量
u(j):j番目の操作量
Q2.また、仮にMPC本来の連続的な出力で最適化が行われるのだとしたら、冒頭の「MPCを用いて、2極化された操作量での最適化」というものは不可能なのでしょうか?
A2. もし、0/1を出力するのならば、最適化計算エンジンは混合整数計画問題を解けるものであることが必要です。しかしMPCの最適化計算エンジンは 2次計画法なので、0/1を計算することは不可能です。
そこで、次のようなアイデアを考えます。 MPCの操作量の出力は-1から1(-100%から100%)のレンジに収まるよう 試行錯誤してチューニングします。
-1から1の値をデューティ比とみなし、PWM(パルス幅変調)制御とします。
それであれば、連続量がチョッピングされたPWMのパルス列になります。 これはモーターの速度やトルク制御でよく使われる手法です。
Categories
Find more on Controller Creation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!