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

          Matrix  NUM,den;   //伝達関数の分子,伝達関数の分母
          Matrix  A,B,C,D;   //状態空間表現の4つの行列

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

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

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

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

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

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

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

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

Func void main()
{
	Matrix NUM,den;   //伝達関数の分子,伝達関数の分母
	Matrix A,B,C,D;   //状態空間表現の4つの行列

	NUM=[0,0,1];           //伝達関数の分子の係数
	den=[0.1,0.7,1];       //伝達関数の分母の係数

	{A,B,C,D} = tf2ss(NUM,den);

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


tf2tfn
伝達関数の係数の対から伝達関数への変換
<書式>
      g = tf2tfn(NUM,den)
      g = tf2tfn(NUM,den,i)

          Rational g;         //伝達関数
          Matrix   NUM,den;   //伝達関数の分子,伝達関数の分母
          Integer  i;         //出力番号

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

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

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

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

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

     NUM=[0,1,d];
     den=[a,b,c];

備考3:引数iについて.
        1入力多出力システムの場合,内部に複数の伝達関数を持っています.
    このようなシステムにおいて,出力番号iを指定することで特定の伝達
    関数を得ることができます.
<プログラム例>

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

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

Func void main()
{
	Matrix   NUM,den;   //伝達関数の分子,伝達関数の分母
	Rational g;         //伝達関数

	NUM=[0,0,1];           //伝達関数の分子の係数
	den=[0.1,0.7,1];       //伝達関数の分母の係数

	g = tf2tfn(NUM,den);

	print(g);
}


tf2tfm
伝達関数の係数の対から伝達関数行列への変換
<書式>
      G = tf2tfm(NUM,den)

          RaMatrix G;         //伝達関数行列
          Matrix   NUM,den;   //伝達関数の分子,伝達関数の分母

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

備考2:引数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

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

Func void main()
{
	Matrix   NUM,den;   //伝達関数の分子,伝達関数の分母
	RaMatrix G;         //伝達関数行列

	NUM=[0,0,1];           //伝達関数の分子の係数
	den=[0.1,0.7,1];       //伝達関数の分母の係数

	G = tf2tfm(NUM,den);

	print(G);
}


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

          CoMatrix z,p;        //零点,極
          Matrix   k;          //ゲイン
          Matrix   NUM,den;    //伝達関数の分子,伝達関数の分母

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

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

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

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

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

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

     NUM=[0,1,d];
     den=[a,b,c];

<プログラム例>

/*
 伝達関数

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

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

Func void main()
{
	CoMatrix z,p;           //零点,極
	Matrix   k;             //ゲイン
	Matrix   NUM,den;       //伝達関数の分子,伝達関数の分母

	NUM=[0,1,9,20];
	den=[1,6,11,6];

	{z,p,k} = tf2zp(NUM,den);

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