関数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');

采纳的回答

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!