控制系統(tǒng)仿真(MATLAB版)(四)

s = tf('s');
G = (s^3+4*s^2+3*s+2)/(s^2*(s+1)*((s+4)^2+4))
G =
?
? ? ? s^3 + 4 s^2 + 3 s + 2
? -----------------------------
? s^5 + 9 s^4 + 28 s^3 + 20 s^2
?
Continuous-time transfer function.
A = [-0.3,0.1,-0.05;1,0.1,0;-1.5,-8.9,-0.05];
B = [2;0;4];
C = [1,2,3];
D = 0;
G1 = ss(A,B,C,D)
G1 =
?
? A =?
? ? ? ? ? x1? ? ?x2? ? ?x3
? ?x1? ?-0.3? ? 0.1? -0.05
? ?x2? ? ? 1? ? 0.1? ? ? 0
? ?x3? ?-1.5? ?-8.9? -0.05
?
? B =?
? ? ? ?u1
? ?x1? ?2
? ?x2? ?0
? ?x3? ?4
?
? C =?
? ? ? ?x1? x2? x3
? ?y1? ?1? ?2? ?3
?
? D =?
? ? ? ?u1
? ?y1? ?0
?
Continuous-time state-space model.
求其閉環(huán)的零極點
?G2 = feedback(G,1,-1);
?get(G2)
? ? ? ?Numerator: {[0 0 1 4 3 2]}
? ? ?Denominator: {[1 9 29 24 3 2]}
? ? ? ? Variable: 's'
? ? ? ? ?IODelay: 0
? ? ? InputDelay: 0
? ? ?OutputDelay: 0
? ? ? ? ? ? ? Ts: 0
? ? ? ? TimeUnit: 'seconds'
? ? ? ?InputName: {''}
? ? ? ?InputUnit: {''}
? ? ? InputGroup: [1×1 struct]
? ? ? OutputName: {''}
? ? ? OutputUnit: {''}
? ? ?OutputGroup: [1×1 struct]
? ? ? ? ? ?Notes: [0×1 string]
? ? ? ? UserData: []
? ? ? ? ? ? Name: ''
? ? SamplingGrid: [1×1 struct]
?num = G2.num{1,1}
num =
? ? ?0? ? ?0? ? ?1? ? ?4? ? ?3? ? ?2
?den = G2.den{1,1}
den =
? ? ?1? ? ?9? ? 29? ? 24? ? ?3? ? ?2
?[z,p,k] = tf2zp(num,den)
z =
? -3.2695 + 0.0000i
? -0.3652 + 0.6916i
? -0.3652 - 0.6916i
p =
? -3.9174 + 2.1007i
? -3.9174 - 2.1007i
? -1.1449 + 0.0000i
? -0.0102 + 0.2972i
? -0.0102 - 0.2972i
k =
? ? ?1
G3 = feedback(G1,1,-1);
get(G3)
? ? ? ? ? ? ? ? A: [3×3 double]
? ? ? ? ? ? ? ? B: [3×1 double]
? ? ? ? ? ? ? ? C: [1 2 3]
? ? ? ? ? ? ? ? D: 0
? ? ? ? ? ? ? ? E: []
? ? ? ? ? ?Scaled: 0
? ? ? ? StateName: {3×1 cell}
? ? ? ? StateUnit: {3×1 cell}
? ? InternalDelay: [0×1 double]
? ? ? ?InputDelay: 0
? ? ? OutputDelay: 0
? ? ? ? ? ? ? ?Ts: 0
? ? ? ? ?TimeUnit: 'seconds'
? ? ? ? InputName: {''}
? ? ? ? InputUnit: {''}
? ? ? ?InputGroup: [1×1 struct]
? ? ? ?OutputName: {''}
? ? ? ?OutputUnit: {''}
? ? ? OutputGroup: [1×1 struct]
? ? ? ? ? ? Notes: [0×1 string]
? ? ? ? ?UserData: []
? ? ? ? ? ? ?Name: ''
? ? ?SamplingGrid: [1×1 struct]
?[z,p,k] = ss2zp(A,B,C,D)
z =
? ? 2.0748
? ?-1.8677
p =
? ?0.7646 + 0.0000i
? -0.5073 + 0.5687i
? -0.5073 - 0.5687i
k =
? ? 14

A = [1,2,3;4,5,6;7,8,0];
>> B = [4;3;2];
>> C = [1,2,3];
>> D = 0;
>> G = ss(A,B,C,D)
G =
?
? A =?
? ? ? ?x1? x2? x3
? ?x1? ?1? ?2? ?3
? ?x2? ?4? ?5? ?6
? ?x3? ?7? ?8? ?0
?
? B =?
? ? ? ?u1
? ?x1? ?4
? ?x2? ?3
? ?x3? ?2
?
? C =?
? ? ? ?x1? x2? x3
? ?y1? ?1? ?2? ?3
?
? D =?
? ? ? ?u1
? ?y1? ?0
?
Continuous-time state-space model.
zpk(G)
ans =
?
? ? ?16 (s+0.7175) (s+9.407)
? ------------------------------
? (s-12.12) (s+5.735) (s+0.3884)
?
Continuous-time zero/pole/gain model.
tf(G)
ans =
?
? ?16 s^2 + 162 s + 108
? -----------------------
? s^3 - 6 s^2 - 72 s - 27
?
Continuous-time transfer function.
[z,p,k] = ss2zp(A,B,C,D)
z =
? ?-0.7175
? ?-9.4075
p =
? ?12.1229
? ?-0.3884
? ?-5.7345
k =
? ?16.0000
[num,den] = ss2tf(A,B,C,D)
num =
? ? ? ? ?0? ?16.0000? 162.0000? 108.0000
den =
? ? 1.0000? ?-6.0000? -72.0000? -27.0000

>> num = [2 18 40];
>> den = [1 6 11 6];
>> G = tf(num,den)
G =
?
? ? 2 s^2 + 18 s + 40
? ----------------------
? s^3 + 6 s^2 + 11 s + 6
?
Continuous-time transfer function.
>> zpk(G)
ans =
?
? ? 2 (s+5) (s+4)
? -----------------
? (s+3) (s+2) (s+1)
?
Continuous-time zero/pole/gain model.
>> ss(G)
ans =
?
? A =?
? ? ? ? ? x1? ? ?x2? ? ?x3
? ?x1? ? ?-6? -2.75? ?-1.5
? ?x2? ? ? 4? ? ? 0? ? ? 0
? ?x3? ? ? 0? ? ? 1? ? ? 0
?
? B =?
? ? ? ?u1
? ?x1? ?4
? ?x2? ?0
? ?x3? ?0
?
? C =?
? ? ? ? ? x1? ? ?x2? ? ?x3
? ?y1? ? 0.5? 1.125? ? 2.5
?
? D =?
? ? ? ?u1
? ?y1? ?0
?
Continuous-time state-space model.

>> A = [0 1 0 0;0? 0 1 0;0 0 0 1;-50,-48,-28.5,-9];
>> B = [0;0;0;1];
>> C = [10,2,0,0];
>> D = 0;
>> G = ss(A,B,C,D);
>> tf(G)
ans =
?
? ? ? ? ? ? ? ?2 s + 10
? ----------------------------------
? s^4 + 9 s^3 + 28.5 s^2 + 48 s + 50
?
Continuous-time transfer function.
>> zpk(G)
ans =
?
? ? ? ? ? ? ? ? ? 2 (s+5)
? ----------------------------------------
? (s+4.458) (s+3.042) (s^2 + 1.5s + 3.687)
?
Continuous-time zero/pole/gain model.
>> [z,p,k] = ss2zp(A,B,C,D)
z =
? ? -5
p =
? -4.4576 + 0.0000i
? -3.0419 + 0.0000i
? -0.7502 + 1.7676i
? -0.7502 - 1.7676i
k =
? ? ?2
>> pzmap(G)


>> G1 = tf([2 6 5],[1 4 5 2]);
>> G2 = tf([1 4 1],[1 9 8]);
>> G3 = zpk([-3;-7],[-1;-4;-6],5);
>> G = series(G1,series(G2,G3))
G =
? 10 (s+3) (s+3.732) (s+7) (s+0.2679) (s^2 + 3s + 2.5)
? ----------------------------------------------------
? ? ? ? ? ? (s+1)^4 (s+2) (s+4) (s+6) (s+8)
?
Continuous-time zero/pole/gain model.
>> minreal(G)
ans =
?
? 10 (s+3) (s+3.732) (s+7) (s+0.2679) (s^2 + 3s + 2.5)
? ----------------------------------------------------
? ? ? ? ? ? (s+1)^4 (s+2) (s+4) (s+6) (s+8)
Continuous-time zero/pole/gain model.

>> G1 = zpk([-3],[-1;-1;-2],1);
>> G2 = tf([3,4,1],[5,12,3]);
>> parallel(G1,G2)
ans =
? 0.6 (s+0.287) (s^2 + 4.195s + 4.427) (s^2 + 0.8515s + 2.886)
? ------------------------------------------------------------
? ? ? ? ? ? ? ?(s+1)^2 (s+2) (s+2.117) (s+0.2835)
Continuous-time zero/pole/gain model.

方法一
>> G1 = tf([1,1],[1,3,4]);
>> G2 = tf([1,3,5],[1,4,3,2,1]);
>> G = series(G1,G2);
>> ss(G)
ans =
?
? A =?
? ? ? ? ? ? x1? ? ? ?x2? ? ? ?x3? ? ? ?x4? ? ? ?x5? ? ? ?x6
? ?x1? ? ? ?-7? ? -4.75? ?-3.375? ?-1.188? -0.6875? ? ?-0.5
? ?x2? ? ? ? 4? ? ? ? 0? ? ? ? 0? ? ? ? 0? ? ? ? 0? ? ? ? 0
? ?x3? ? ? ? 0? ? ? ? 2? ? ? ? 0? ? ? ? 0? ? ? ? 0? ? ? ? 0
? ?x4? ? ? ? 0? ? ? ? 0? ? ? ? 2? ? ? ? 0? ? ? ? 0? ? ? ? 0
? ?x5? ? ? ? 0? ? ? ? 0? ? ? ? 0? ? ? ? 1? ? ? ? 0? ? ? ? 0
? ?x6? ? ? ? 0? ? ? ? 0? ? ? ? 0? ? ? ? 0? ? ? 0.5? ? ? ? 0
?
? B =?
? ? ? ?u1
? ?x1? ?1
? ?x2? ?0
? ?x3? ?0
? ?x4? ?0
? ?x5? ?0
? ?x6? ?0
?
? C =?
? ? ? ? ? x1? ? ?x2? ? ?x3? ? ?x4? ? ?x5? ? ?x6
? ?y1? ? ? 0? ? ? 0? 0.125? ?0.25? ? 0.5? 0.625
?
? D =?
? ? ? ?u1
? ?y1? ?0
?
Continuous-time state-space model.

方法二
>> G11 = ss(G1);
>> G22 = ss(G2);
>> G12 = series(G11,G22)
G12 =
?
? A =?
? ? ? ? ?x1? ? x2? ? x3? ? x4? ? x5? ? x6
? ?x1? ? -4? -1.5? ? -1? ? -1? ? ?2? ? ?1
? ?x2? ? ?2? ? ?0? ? ?0? ? ?0? ? ?0? ? ?0
? ?x3? ? ?0? ? ?1? ? ?0? ? ?0? ? ?0? ? ?0
? ?x4? ? ?0? ? ?0? ?0.5? ? ?0? ? ?0? ? ?0
? ?x5? ? ?0? ? ?0? ? ?0? ? ?0? ? -3? ? -2
? ?x6? ? ?0? ? ?0? ? ?0? ? ?0? ? ?2? ? ?0
?
? B =?
? ? ? ?u1
? ?x1? ?0
? ?x2? ?0
? ?x3? ?0
? ?x4? ?0
? ?x5? ?1
? ?x6? ?0
?
? C =?
? ? ? ? ?x1? ? x2? ? x3? ? x4? ? x5? ? x6
? ?y1? ? ?0? 0.25? 0.75? ?2.5? ? ?0? ? ?0
?
? D =?
? ? ? ?u1
? ?y1? ?0
?
Continuous-time state-space model.

可見,系統(tǒng)的狀態(tài)方程可能不唯一

>> G1 = [tf([1 2],[1 2 1]),tf(1,[1 3 2]);tf([1,1],[1,2]),tf([1,2],[1 5 6])];
>> G2 = [zpk([],[-1;-3],1.2),zpk([-1],[-2;-3],1);zpk(-1,[-2;-4],1),zpk(-2,[-3;-4],1)];
>> series(G1,G2)
ans =
?
? From input 1 to output...
? ? ? ?(s+1.599) (s+3) (s^2 + 3.219s + 2.857) (s^2 + 0.1815s + 2.32)
? ?1:? -------------------------------------------------------------
? ? ? ? ? ? ? ? ? ? ? ? ? (s+1)^3 (s+2)^2 (s+3)^2
?
? ? ? ?(s+2)^2 (s+4) (s+1) (s^2 + 3s + 4)
? ?2:? ----------------------------------
? ? ? ? ?(s+2)^2 (s+3) (s+4)^2 (s+1)^2
?
? From input 2 to output...
? ? ? ?(s+2)^2 (s+2.046) (s+3) (s^2 + 0.9539s + 2.248)
? ?1:? -----------------------------------------------
? ? ? ? ? ? ? ? ? ?(s+1)^2 (s+2)^3 (s+3)^3
?
? ? ? ?(s+1) (s+2) (s+2.57) (s+4) (s^2 + 4.43s + 6.615)
? ?2:? ------------------------------------------------
? ? ? ? ? ? ? ? (s+2)^3 (s+3)^2 (s+4)^2 (s+1)
?
Continuous-time zero/pole/gain model.
>> parallel(G1,G2)
ans =
?
? From input 1 to output...
? ? ? ?(s+4.652) (s+1.548) (s+1)
? ?1:? -------------------------
? ? ? ? ? ? ?(s+1)^3 (s+3)
?
? ? ? ?(s+5) (s+2) (s+1)
? ?2:? -----------------
? ? ? ? ?(s+2)^2 (s+4)
?
? From input 2 to output...
? ? ? ?(s+2) (s^2 + 3s + 4)
? ?1:? --------------------
? ? ? ?(s+2)^2 (s+3) (s+1)
?
? ? ? ? ?2 (s+2) (s+3)^2
? ?2:? -------------------
? ? ? ?(s+3)^2 (s+4) (s+2)
?
Continuous-time zero/pole/gain model.