tfestを用いたシステム同定
11 views (last 30 days)
Show older comments
Tatsuya Kurokawa
on 7 Nov 2019
Commented: Tatsuya Kurokawa
on 10 Dec 2019
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です。
浅学非才で的外れな質問をしてしまっているかもしれませんが,どなたかご回答お願いします。
0 Comments
Accepted Answer
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
Yoko
on 9 Dec 2019
伝達関数は初期値0ということで疑問に持たれること、もっともと思います。理由に関して具体的な情報がないため、個人的な見解となりますが、伝達関数を状態方程式に変換した場合に初期状態も設定できることから、状態方程式にした場合も含めベストフィットするものを求めるために、初期状態も推定していると思われます。
More Answers (0)
See Also
Categories
Find more on 伝達関数モデル in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!