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