伝達関数(Transfer Fcnブロック)に、​初期値(初期状態)を​与える方法はあります​か?

伝達関数(Transfer Fcnブロック)に、初期値(初期状態)を与える方法はありますか?

 Accepted Answer

MathWorks Support Team
MathWorks Support Team on 26 Oct 2013

0 votes

伝達関数は、初期値(初期状態)がゼロの時の入出力のラプラス変換の比となりますので、Transfer Fcnブロックの初期値は0に設定されています。ブロックの初期値を指定したい場合には、あらかじめ tf2ss 関数を用いて伝達関数を状態空間表現に変換し、Transfer Fcnブロックの代わりにState-Spaceブロックを使用することで実現できます。
例:伝達関数
    1
-------------
s^2 + 2 s + 1
で表されるTransfer Fcnブロック(図1)に初期値をを与える場合
図1
(1) 伝達関数を状態空間表現に変換
>> [A B C D]=tf2ss(1,[1,2,1])
A =
-2 -1
1 0
B =
1
0
C =
0 1
D =
0
(2) State-Spaceブロックを配置し、パラメータを設定
図2
なお、Simulinkライブラリブラウザの "Simulink Extras/Addnitional Linear" にある Transfer Fcn(with initial states)ブロックでは、伝達関数と初期値をパラメータとして指定することで、上記と同様の手法により状態空間表現に変換して処理を行っています。

More Answers (0)

Categories

Products

Community Treasure Hunt

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

Start Hunting!