tfn2ss
伝達関数から状態空間表現への変換
<書式>
      {A,B,C,D} = tfn2ss(g)

          Matrix   A,B,C,D;   //状態空間表現の4つの行列
          Rational g;         //伝達関数

備考1:状態空間表現は次のような式であらわされます.
    上で用いている記号(A,B,C,D)と同じです.
       	.
       	x = Ax + Bu
       	y = Cx + Du

備考2:引数のgは有利多項式型(Rational)の伝達関数です.
    定義の仕方などはプログラム例を参考にしてください.
<プログラム例>

/*
 2次遅れ系の伝達関数
                      1
       G(s)= --------------------
               0.1s^2 + 0.7s +1

 から状態空間表現を求める
*/

Func void main()
{
	Matrix     A,B,C,D;   //状態空間表現の4つの行列
	Rational   g;         //伝達関数
	Polynomial s;         //ラプラス演算子


	s=Polynomial("s");             //sを変数宣言
	g=1/(0.1*s^2+0.7*s+1);         //伝達関数の定義
	
	{A,B,C,D} = tfn2ss(g);

	print(A);
	print(B);
	print(C);
	print(D);
}


tfn2tf
伝達関数から伝達関数の係数の対への変換
<書式>
      {num,den} = tfn2tf(g)

         Matrix   num,den;   //伝達関数の分子,伝達関数の分母
         Rational g;         //伝達関数

備考1:多項式型(Rational)での表現形式から,伝達関数の分母分子での
    表現形式(Matrix)に変換します.

備考2:引数のgは有利多項式型(Rational)の伝達関数です.
    定義の仕方などはプログラム例を参考にしてください.

備考3:引数NUMとdenについて.
     伝達関数を分子(numerator)と分母(denominator)にわけています.

                   NUM(s) 
           G(s) = --------
                   den(s)

      NUMとdenはそれぞれMatrix型になっていて,分子・分母の多項式の係数
      を用いて表現します.

     例えば伝達関数がつぎのような場合,
    
     このようになります.

     NUM=[0,1,d];
     den=[a,b,c];
<プログラム例>

/*
 伝達関数
                      1
       G(s)= --------------------
               0.1s^2 + 0.7s +1

 をRational型からMatrix型に変換する
*/

Func void main()
{
	Matrix     num,den;   //伝達関数の分子,伝達関数の分母
	Rational   g;         //伝達関数
	Polynomial s;         //ラプラス演算子


	s=Polynomial("s");         //sを変数宣言
	g=1/(0.1*s^2+0.7*s+1);     //伝達関数の定義
	
	{num,den} = tfn2tf(g);

	print(num);
	print(den);
}


tfn2tfm
伝達関数から伝達関数行列への変換
<書式>
      G = tfn2tfm(g)

         RaMatrix G;  //伝達関数行列
         Rational g;  //伝達関数

備考:引数のgは有利多項式型(Rational)の伝達関数です.
   定義の仕方などはプログラム例を参考にしてください.
<プログラム例>

/*
 伝達関数
                      1
       G(s)= --------------------
               0.1s^2 + 0.7s +1

 をRational型からRaMatrix型に変換する
*/

Func void main()
{
	RaMatrix   G;       //伝達関数行列
	Rational   g;       //伝達関数
	Polynomial s;       //ラプラス演算子

	s=Polynomial("s");         //sを変数宣言
	g=1/(0.1*s^2+0.7*s+1);     //伝達関数の定義

	G = tfn2tfm(g);

	print(G);
}


tfn2zp
伝達関数から極零の対への変換
<書式>
      {z,p,k} = tfn2zp(g)

         CoMatrix z,p;      //零点,極
         Matrix   k;        //ゲイン
         Rational g;        //伝達関数

備考1:極pと零点z,ゲインkについて.
        伝達関数を次のように表現しています.符号に注意しましょう.

                   (s-z1)(s-z2)...(s-zn)
      	G(s) = k -----------------------
                   (s-p1)(s-p2)...(s-pn)

備考2:引数のgは有利多項式型(Rational)の伝達関数です.
    定義の仕方などはプログラム例を参考にしてください.
<プログラム例>

/*
 伝達関数

             s^2 + 9s + 20
   G(s)=---------------------
         s^3 + 6s^2 + 11s +6

 から極零の対を求める
*/

Func void main()
{
	CoMatrix   z,p;     //零点,極
	Matrix     k;       //ゲイン
	Rational   g;       //伝達関数
	Polynomial s;       //ラプラス演算子

	s=Polynomial("s");                     //sを変数宣言
	g=(s^2+9*s+20)/(s^3+6*s^2+11*s+6);     //伝達関数の定義

	{z,p,k} = tfn2zp(g);

	print(z);
	print(p);
	print(k);
}