MPCの状態空間モデルに関して
12 views (last 30 days)
Show older comments
現在、伝達関数から状態空間モデルを作成し、MPCのプラントモデルに設定して解析を行っております。
作成した状態空間モデルをssdataで取得したモデルの各行列[A,B,C,D]と、MPCのプラントモデルをgetEstimatorで取得したモデルの各行列[A_,Cm,Bu,Bv,Dvm]の違いがよく分かりません。
下記のコードで実行した場合、例えばssdataでの行列Aは8×8ですが、getEstimatorでの行列A_は9×9となっています。
この関係性や、mpcのプラントモデルとして設定した際にどのようにモデルが変換されているのか詳しく教えていただけませんか?
Ts = 3600;
p = 24;
m = 12;
U = tf(-0.607735,[86440 1],'inputdelay',11840);
V1 = tf(0.000520059,[114410 1]);
V2 = tf(0.002600792,[60160 1]);
V3 = tf(0.000801016,[113840 1]);
Ys = [U V1 V2 V3];
sys = ss(Ys);
sysd = c2d(sys,Ts);
sysnd = absorbDelay(sysd);
plantd = sysnd;
plant = setmpcsignals(plantd,'MV',1,'MD',[2 3 4]);
mpcobj = mpc(plant,Ts,p,m);
[A,B,C,D] = ssdata(plantd)
[L,M,A_,Cm,Bu,Bv,Dvm] = getEstimator(mpcobj)
0 Comments
Answers (1)
Toshinobu Shintai
on 26 Apr 2021
以下のリンク先にて、MathWorksのMPCの状態推定について説明しています。プラントのダイナミクスを予測する内部モデルよりもgetEstimatorで得られるモデルの方が次元が大きいのは、外乱やノイズなどの変数が加わっているため、と考えられます。
0 Comments
See Also
Categories
Find more on Refinement 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!