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

4 Ansichten (letzte 30 Tage)
seiya sugimoto
seiya sugimoto am 25 Jul. 2018
Kommentiert: seiya sugimoto am 9 Aug. 2018
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');

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2008b

Community Treasure Hunt

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

Start Hunting!