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