関数n4sidの引数​orderは、本当に​推定モデルの次数を指​定しているだけでしょ​うか? 推定モデルの​次数指定以外の用途に​もorderが用いら​れているように感じま​す

조회 수: 5 (최근 30일)
seiya sugimoto
seiya sugimoto 2018년 7월 25일
댓글: seiya sugimoto 2018년 8월 9일
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');

채택된 답변

Hiroumi Mita
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
seiya sugimoto
seiya sugimoto 2018년 8월 9일
ありがとうございます。
ご回答を参考にn4sidで同定すると、次数2を指定したときも、次数'best'を指定したときと同じモデルを推定することができました。

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Hiroumi Mita
Hiroumi Mita 2018년 8월 6일
これはご指摘の通り、奇妙な現象です。開発元に確認します。 現状では、次を正としてください。
sys_best = n4sid(z, 'best', 'Ts', 0 , 'Disturbancemodel','none')
  댓글 수: 1
seiya sugimoto
seiya sugimoto 2018년 8월 6일
ご回答ありがとうございます。
開発元の方へ確認が取れましたら、お教えいただけますと幸いです。よろしくお願いいたします。

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 状態空間モデル에 대해 자세히 알아보기

제품


릴리스

R2008b

Community Treasure Hunt

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

Start Hunting!