MATLAB Answers

tfestを用いたシステム同定

38 views (last 30 days)
tfestを用いて得られたモデル(idtf)の出力の初期値について質問があります。
伝達関数モデルのため出力の初期値は0になるはずだと考えていますが,0にはならず,初期値を持ってしまっています。
z = iddata(y1,[u1,u2,u3],Ts,'Tstart',0); %推定・検証用データ
np = [2 2 2];
nz = [1 1 1 ];
iodelay = [1 1 1 ];
sys = tfest(z,np,nz,iodelay,'Ts',Ts);
compare(z,sys)
で同定モデルの出力をグラフにしたところ同定モデル出力の初期値が0になりません。
得られたモデルに直達項はなく,入力もサンプリング時間のズレなく与えています。
このような結果はあり得るのか,正しい結果なのかがわかりません。
推定・検証用データの初期値は0です。
浅学非才で的外れな質問をしてしまっているかもしれませんが,どなたかご回答お願いします。

Accepted Answer

Yoko
Yoko on 6 Dec 2019
tfest で推定する際、また compare 関数で比較する際、デフォルト設定では出力結果にフィットするように初期状態を推定するような設定になっています。
もちろん、初期状態を 0 として推定・比較が可能です。下記で設定方法を紹介します。
compare 関数で比較する場合は、例えば下記のように設定します。
opt = compareOptions
opt.InitialCondition = 'z'
compare(z,sys,opt)
また、初期状態を 0 として tfest で推定する場合は、下記のようなコマンドを実行します。
opt = tfestOptions
opt.InitialCondition = 'zero'
sys = tfest(z,np,nz,iodelay,'Ts',Ts, opt);
  3 Comments
Tatsuya Kurokawa
Tatsuya Kurokawa on 10 Dec 2019
なるほど、そう考えるのが正しそうですね。細かいところまでご丁寧に対応していただきありがとうございました。

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!