状態空間モデルで行列内の値を固定するには?
1 次查看(过去 30 天)
显示 更早的评论
状態空間モデルのパラメータ推定を行っています.
X'=AX+Bu
Y=CX+Du
において,
A=[0 1 0 0;NaN 0 NaN 0;0 0 0 1;NaN 0 NaN 0];
B=[0;NaN;0;0];
C=[1 0 0 0;0 0 1 0];
D=[0;0];
設定したモデルは上記の通りです.
NaN以外の行列の値を固定して,ssestなどを用いて値を推定したいのですが,その固定方法等がよくわかりません.
おそらくidssのstructureを使う様なのですが,例えば
m.Structure.A.Free(2,1) = false;
m.Structure.A.Value(2,2)
m.Structure.A.Free(2,3) = false;
m.Structure.A.Value(2,4)
のようにしても固定が出来ません.
どなたかご教授をお願いします.
0 个评论
采纳的回答
Hiroumi Mita
2019-12-27
状態空間内部の任意の箇所だけ推定するには
idgreyで設定し、pem等のシステム同定の関数を使います。
idgreyとそのサンプルをhelpで調べてみてください。
更多回答(1 个)
Hiroumi Mita
2019-12-27
例題を見ると、
サンプル時間Tsが関数LinearPendulum
の引数に必要なようです。
function [A,B,C,D] = LinearPendulum(a,b,c,d,e,Ts) %<-ココ
A=[0 1 0 0;a 0 b 0;0 0 0 1;c 0 d 0 ];
B=[0;e;0;0 ];
C=[1 0 0 0;0 0 1 0 ];
D=[0;0 ];
end
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 状態空間モデル 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!