tfestを用いたシステム同定
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Tatsuya Kurokawa
le 7 Nov 2019
Commenté : Tatsuya Kurokawa
le 10 Déc 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 commentaires
Réponse acceptée
Yoko
le 6 Déc 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 commentaires
Yoko
le 9 Déc 2019
伝達関数は初期値0ということで疑問に持たれること、もっともと思います。理由に関して具体的な情報がないため、個人的な見解となりますが、伝達関数を状態方程式に変換した場合に初期状態も設定できることから、状態方程式にした場合も含めベストフィットするものを求めるために、初期状態も推定していると思われます。
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur 伝達関数モデル dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!