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

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

備考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];

備考3:引数iについて.
        多入力のシステムの場合,i番目の入力の伝達関数を返します.
<プログラム例>

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

	A=[[-1,2][-1,-3]];
	B=trans([0,1]);
	C=[2,0];
	D=[0];

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

	print(NUM);
	print(den);
}


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

          Rational g;         //伝達関数
          Matrix   A,B,C,D;   //状態空間表現の4つの行列
          Integer  i,j;       //入力番号,出力番号

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

備考2:引数iとjについて.
        多入力1出力システム,あるいは多入力多出力システムでは複数の
    伝達関数を持っています.こうしたシステムでは入力番号i・出力番号j
        を指定する必要があります.
<プログラム例>

/*
2入力2出力システムにおいて,『入力1-出力2』間の伝達関数を求める
*/

Func void main()
{
	Rational g;        //伝達関数
	Matrix A,B,C,D;    //状態空間表現の4つの行列
	Integer i,j;       //入力番号,出力番号

	A=[[-2,0][1,3]];
	B=[[2,1][1,1]];
	C=[[1,1][0,1]];
	D=[[0,0][0,0]];
	i=1;
	j=2;

	g = ss2tfn(A,B,C,D,i,j);

	print(g);
}


ss2tfm
状態空間表現から伝達関数行列への変換
<書式>
        G = ss2tfm(A,B,C,D) 
        G = ss2tfm(A,B,C,D,i)

          RaMatrix G;          //伝達関数行列
          Matrix   A,B,C,D;    //状態空間表現の4つの行列
          Integer  i;          //入力番号

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

備考2:引数iについて.
        多入力のシステムの場合,i番目の入力による伝達関数のみを返します.
<プログラム例>

/*
2入力2出力システム
*/

Func void main()
{
	RaMatrix G;          //伝達関数行列
	Matrix   A,B,C,D;    //状態空間表現の4つの行列
	Integer  i;          //入力番号

	A=[[-2,0][1,3]];
	B=[[2,1][1,1]];
	C=[[1,1][0,1]];
	D=[[0,0][0,0]];
	i=1;

	G = ss2tfm(A,B,C,D);
	print(G);

	G = ss2tfm(A,B,C,D,i);
	print(G);
}


ss2zp
状態空間表現から極零の対への変換
<書式>
       {z,p,k} = ss2zp(A,B,C,D)
       {z,p,k} = ss2zp(A,B,C,D,i)

          CoMatrix z,p;           //零点,極
          Matrix   k;             //ゲイン
          Matrix   A,B,C,D;       //状態空間表現の4つの行列
          Integer  i;             //入力番号

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

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

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

備考3:引数iについて.
        多入力のシステムの場合,i番目の入力による伝達関数のみを返します.
<プログラム例>

/*
2入力2出力システム
*/

Func void main()
{
	CoMatrix z,p;           //零点,極
	Matrix   k;             //ゲイン
	Matrix   A,B,C,D;       //状態空間表現の4つの行列

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

	{z,p,k} = ss2zp(A,B,C,D);
	print(z);
	print(p);
	print(k);

}