2.5.2 状態空間表現から伝達関数表現への変換


 2.5.1 項での M ファイル state_space.m (p.28) を実行した後,下記のコマンドを入力してください.

 関数 "tf" により状態空間表現を伝達関数表現へ変換
>> tf_P = tf(ss_P)
 
伝達関数:
       4 s + 8
---------------------
s^3 + 3 s^2 + 4 s + 2
 

 関数 "tfdata" により伝達関数 P(s) の分子,分母の係数を抽出
>> [numP,denP] = tfdata(tf_P,'v')
numP =
     0     0     4     8
denP =
    1.0000    3.0000    4.0000    2.0000 

 関数 "zpk" により状態空間表現を伝達関数表現へ変換
>> zpk_P = zpk(ss_P)
 
零点/極/ゲイン:
      4 (s+2)
--------------------
(s+1) (s^2 + 2s + 2)
 

 関数 "zpkdata" により伝達関数 P(s) の零点,極,ゲインを抽出
>> [z,p,k] = zpkdata(zpk_P,'v')
z =
    -2
p =
  -1.0000 + 1.0000i
  -1.0000 - 1.0000i
  -1.0000          
k =
     4

 状態空間表現から伝達関数表現への変換(数式処理) ...... M ファイル symb_ss2tf.m (p.30)
clear
format compact

A = [ 0  1  0
      0  0  1
     -2 -4 -3 ];
B = [ 0
      0
      1 ];
C = [ 8  4  0 ];
D = 0;

syms s
P = C*inv(s*eye(3) - A)*B + D
P = simplify(P)
P = collect(P,s)
>> symb_ss2tf
P =
(4*s)/(s^3 + 3*s^2 + 4*s + 2) + 8/(s^3 + 3*s^2 + 4*s + 2)
P =
(4*(s + 2))/((s + 1)*(s^2 + 2*s + 2))
P =
(4*s + 8)/(s^3 + 3*s^2 + 4*s + 2)