필터 지우기
필터 지우기

tfestを用いたシステム同定

조회 수: 19 (최근 30일)
Tatsuya Kurokawa
Tatsuya Kurokawa 2019년 11월 7일
댓글: Tatsuya Kurokawa 2019년 12월 10일
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です。
浅学非才で的外れな質問をしてしまっているかもしれませんが,どなたかご回答お願いします。

채택된 답변

Yoko
Yoko 2019년 12월 6일
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
Yoko
Yoko 2019년 12월 9일
伝達関数は初期値0ということで疑問に持たれること、もっともと思います。理由に関して具体的な情報がないため、個人的な見解となりますが、伝達関数を状態方程式に変換した場合に初期状態も設定できることから、状態方程式にした場合も含めベストフィットするものを求めるために、初期状態も推定していると思われます。
Tatsuya Kurokawa
Tatsuya Kurokawa 2019년 12월 10일
なるほど、そう考えるのが正しそうですね。細かいところまでご丁寧に対応していただきありがとうございました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 伝達関数モデル에 대해 자세히 알아보기

제품


릴리스

R2012a

Community Treasure Hunt

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

Start Hunting!