関数n4sidの引数orderは、本当に推定モデルの次数を指定しているだけでしょうか? 推定モデルの次数指定以外の用途にもorderが用いられているように感じます
조회 수: 5 (최근 30일)
이전 댓글 표시
SystemIdentificationToolbox付属のデータ(dcmdata)に対してn4sidを用いて線型モデルを推定しました。その際、orderに渡す値として 2 と 'best' の二種類を試したところ、どちらの推定モデルも2次でしたが、モデルの品質が大きく異なっていました。
同じ入出力データを用いてn4sidでモデルを推定しているにもかかわらず、orderの指定の仕方が違うと、推定したモデルも違ってくるということが問題となりました。 n4sid.mのコードを見てみたところ、
・orderは推定モデルの次数指定以外にも、モデルを推定するための何らかの情報を指定しているのではないか?
・もしそうならば、order(の最大値)が変わると何がどう変わってくるのか?
の2点の疑問が生じました。回答をお願い致します。
以下に、モデル推定に用いたコードを示します。
>> load dcmdata;
>> z = iddata(y,u,0.1);
>> z.InputName = 'Voltage';
>> z.OutputName = {'Angle';'AngVel'};
>> sys_best = n4sid(z, 'best', 'Ts', 0 , 'Disturbancemodel','none');
>> sys_2 = n4sid(z, 2, 'Ts', 0 , 'Disturbancemodel','none');
댓글 수: 0
채택된 답변
Hiroumi Mita
2018년 8월 8일
モデル次数を"best"にした場合、アルゴリズムは次の設定で計算します。
1. Model order (この例では2 ) 2. N4Horizon
これを設定するには次のようにする必要があります。
opt = n4sidOptions;
opt.N4Horizon = sys_best.Report.N4Horizon;
sys_2 = n4sid(z, 2, 'Ts', 0 , 'Disturbancemodel','none', opt)
추가 답변 (1개)
Hiroumi Mita
2018년 8월 6일
これはご指摘の通り、奇妙な現象です。開発元に確認します。 現状では、次を正としてください。
sys_best = n4sid(z, 'best', 'Ts', 0 , 'Disturbancemodel','none')
참고 항목
카테고리
Help Center 및 File Exchange에서 状態空間モデル에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!