Chapter3
clear
目次
伝達関数モデルの記述
練習問題
分母・分子多項式の係数の抽出
状態空間モデルの記述
練習問題
A,B,C,D行列の抽出
ブロック線図の結合
直列結合
並列結合
フィードバック結合
練習問題
補遺(実現問題とプロパー性)
実現問題
可制御正準形
可観測正準形
プロパー性
ラプラス変換
逆ラプラス変換
伝達関数モデルの記述
Np = [0, 1];
% 伝達関数の分子多項式の係数 (0*s + 1)
Dp = [1, 2, 3];
% 伝達関数の分母多項式の係数 (1*s^2 + 2*s + 3)
P
= tf(Np, Dp)
P = 1 ------------- s^2 + 2 s + 3 連続時間の伝達関数です。
P
= tf([0, 1], [1, 2, 3])
P = 1 ------------- s^2 + 2 s + 3 連続時間の伝達関数です。
練習問題
P
= tf([1, 2], [1, 5, 3, 4])
P = s + 2 --------------------- s^3 + 5 s^2 + 3 s + 4 連続時間の伝達関数です。
分母多項式の展開
syms
s
expand( (s+1)*(s+2)^2 )
ans =
P
= tf([1, 3],[1, 5, 8, 4])
P = s + 3 --------------------- s^3 + 5 s^2 + 8 s + 4 連続時間の伝達関数です。
P1 = tf([1, 3], [0, 1]);
P2 = tf([0, 1], [1, 1]);
P3 = tf([0, 1], [1, 2]);
P = P1 * P2 * P3^2
P = s + 3 --------------------- s^3 + 5 s^2 + 8 s + 4 連続時間の伝達関数です。
分母・分子多項式の係数の抽出
[numP, denP] = tfdata(P,
'v'
);
numP
numP =
1×4
0 0 1 3
denP
denP =
1×4
1 5 8 4
状態空間モデルの記述
A = [0 1; -1 -1];
B = [0; 1];
C = [1 0];
D = 0;
P
= ss(A, B, C, D)
P = A = x1 x2 x1 0 1 x2 -1 -1 B = u1 x1 0 x2 1 C = x1 x2 y1 1 0 D = u1 y1 0 連続時間状態空間モデル。
練習問題
A = [1 1 2; 2 1 1; 3 4 5];
B = [2; 0; 1];
C = [1 1 0];
D = 0;
P = ss(A, B, C, D)
P = A = x1 x2 x3 x1 1 1 2 x2 2 1 1 x3 3 4 5 B = u1 x1 2 x2 0 x3 1 C = x1 x2 x3 y1 1 1 0 D = u1 y1 0 連続時間状態空間モデル。
A,B,C,D行列の抽出
[sysA, sysB, sysC, sysD] = ssdata(P)
sysA =
3×3
1 1 2 2 1 1 3 4 5
sysB =
3×1
2 0 1
sysC =
1×3
1 1 0
sysD = 0
ブロック線図の結合
S1 = tf( [0, 1], [1, 1])
S1 = 1 ----- s + 1 連続時間の伝達関数です。
S2 = tf( [1, 1], [1, 1, 1])
S2 = s + 1 ----------- s^2 + s + 1 連続時間の伝達関数です。
直列結合
S = S2 * S1
S = s + 1 --------------------- s^3 + 2 s^2 + 2 s + 1 連続時間の伝達関数です。
series(S1, S2)
ans = s + 1 --------------------- s^3 + 2 s^2 + 2 s + 1 連続時間の伝達関数です。
分母分子の共通因子 s+1 が約分されない この場合は,minreal を使う
minreal(S)
ans = 1 ----------- s^2 + s + 1 連続時間の伝達関数です。
並列結合
S
= S1 + S2
S = 2 s^2 + 3 s + 2 --------------------- s^3 + 2 s^2 + 2 s + 1 連続時間の伝達関数です。
S
= parallel(S1, S2)
S = 2 s^2 + 3 s + 2 --------------------- s^3 + 2 s^2 + 2 s + 1 連続時間の伝達関数です。
フィードバック結合
S
= S1*S2 / (1 + S1*S2)
S = s^4 + 3 s^3 + 4 s^2 + 3 s + 1 ----------------------------------------------- s^6 + 4 s^5 + 9 s^4 + 13 s^3 + 12 s^2 + 7 s + 2 連続時間の伝達関数です。
S = feedback(S1*S2, 1)
S = s + 1 --------------------- s^3 + 2 s^2 + 3 s + 2 連続時間の伝達関数です。
minreal(S)
ans = 1 ----------- s^2 + s + 2 連続時間の伝達関数です。
ポジティブフィードバックの場合
S = feedback(S1*S2, 1, 1)
S = s + 1 --------------- s^3 + 2 s^2 + s 連続時間の伝達関数です。
minreal(S)
ans = 1 ------- s^2 + s 連続時間の伝達関数です。
練習問題
S1 = tf(1, [1, 1]);
S2 = tf(1, [1, 2]);
S3 = tf([3, 1], [1, 0]);
S4 = tf([2, 0], [0, 1]);
S12 = feedback(S1, S2);
S123 = series(S12, S3);
S
= feedback(S123, S4)
S = 3 s^2 + 7 s + 2 -------------------- 7 s^3 + 17 s^2 + 7 s 連続時間の伝達関数です。
補遺(実現問題とプロパー性)
実現問題
P = tf( [0, 1], [1, 1, 1]);
Pss = ss(P)
% 伝達関数モデルから状態空間モデルへの変換
Pss = A = x1 x2 x1 -1 -1 x2 1 0 B = u1 x1 1 x2 0 C = x1 x2 y1 0 1 D = u1 y1 0 連続時間状態空間モデル。
Ptf = tf(Pss)
% 状態空間モデルから伝達関数モデルへの変換
Ptf = 1 ----------- s^2 + s + 1 連続時間の伝達関数です。
可制御正準形
A = [1 2 3; 3 2 1; 4 5 0];
B = [1; 0; 1];
C = [0 2 1];
D = 0;
P = ss(A, B, C, D);
[~,Dp] = tfdata( tf(P),
'v'
);
W = hankel(fliplr(Dp(1:numel(Dp)-1)));
Uc = ctrb(P.A, P.B);
S = Uc * W;
ss( S\P.A*S, S\P.B, P.C*
inv
(S), P.D)
ans = A = x1 x2 x3 x1 4.441e-16 1 0 x2 8.882e-16 4.441e-16 1 x3 24 21 3 B = u1 x1 0 x2 0 x3 1 C = x1 x2 x3 y1 0.5 0.25 0.5 D = u1 y1 0 連続時間状態空間モデル。
可観測正準形
A = [1 2 3; 3 2 1; 4 5 0];
B = [1; 0; 1];
C = [0 2 1];
D = 0;
P = ss(A, B, C, D);
[Np,Dp] = tfdata( tf(P),
'v'
);
W = hankel(fliplr(Dp(1:numel(Dp)-1)));
Uo = obsv(P.A, P.C);
S = W * Uo;
ss(S*P.A/S, S*P.B, P.C/S, P.D)
ans = A = x1 x2 x3 x1 7.819e-16 -3.305e-15 24 x2 1 -8.653e-17 21 x3 0 1 3 B = u1 x1 27 x2 9 x3 1 C = x1 x2 x3 y1 -1.742e-17 2.612e-17 1 D = u1 y1 0 連続時間状態空間モデル。
プロパー性
S1 = tf([1, 1], [0, 1]);
S2 = tf([0, 1], [1, 1]);
S = minreal(series(S1, S2))
S = 1 静的ゲインです。
S2
S2 = 1 ----- s + 1 連続時間の伝達関数です。
ss(S2)
ans = A = x1 x1 -1 B = u1 x1 1 C = x1 y1 1 D = u1 y1 0 連続時間状態空間モデル。
S1
S1 = s + 1 連続時間の伝達関数です。
ss(S1)
ans = A = x1 x2 x1 1 0 x2 0 1 B = u1 x1 0 x2 -2 C = x1 x2 y1 0.5 0.5 D = u1 y1 0 E = x1 x2 x1 0 1 x2 0 0 連続時間状態空間モデル。
ラプラス変換
syms
s
syms
t positive
laplace(1, t, s)
ans =
laplace(t, t, s)
ans =
syms
a
laplace(exp(-a*t), t, s)
ans =
syms
w positive
laplace(sin(w*t), t, s)
ans =
laplace(cos(w*t), t, s)
ans =
laplace(exp(-a*t)*sin(w*t), t, s)
ans =
laplace(exp(-a*t)*cos(w*t), t, s)
ans =
逆ラプラス変換
ilaplace(1/s, s, t)
ans =
1
ilaplace(1/s^2, s, t)
ans =
t
ilaplace(1/(s+a), s, t)
ans =
ilaplace( w/(s^2+w^2), s, t)
ans =
ilaplace( s/(s^2+w^2), s, t)
ans =
ilaplace( w/((s+a)^2+w^2), s, t)
ans =
ilaplace( (s+a)/((s+a)^2+w^2), s, t)
ans =