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); } |