BÁO CÁO THÍ NGHIỆM Môn: Hệ thống điều khiển số (bài 3, bài 4) Bài 3: Tổng hợp vòng điều chỉnh tốc độ quay Xác định đối tượng tốc độ quay G_n=G_kb2.k_M ψ.12πJs G_kb2=G_w2=0,7.z(1)+0,3.z(2)=(0,7.z+0,3)z2 Chuyển k_M ψ.12πJs sang miền ảnh z với phương pháp giữ mẫu Tustin, thời gian trích mẫu T2=0,01ms. Sau đó xác định đối tượng. Gt=tf(kMphi,2piJ 0); %xay dung ham truyen tren mien lien tuc Gtz=c2d(Gt,T2,Tustin); %chuyen sang mien gian doan Gkb2=tf(0.7 0.3,1 0 0,T2); Gnz=Gkb2Gtz Kết quả: G_nz=(7,093.〖〖10〗(5).z〗2 + 0.0001013 z + 3,04.〖10〗(5))(z3 z2 )=(b_1.z2+b_2 z+b_3)(a_0.z3+a_1.z2 )=B_nzA_nz Thiết kế bộ điều chỉnh PI: G_Rn=(r_0 z+r_1)(z+p_1 )=R_zP_z Bài 4: Tổng hợp bộ điều chỉnh tốc độ quay trên không gian trạng thái Mô hình đối tượng điều khiển đã được xây dựng tại câu 4, bài 1. Gdck1: A1k=■(0,043762,9276,098.〖10〗(5)0,03995) B1k=■(6,098.〖10〗(5)2,166.〖10〗(5) ) C1k=■(05068) D1k=0 Gdck2: A2k=■(0,4989133,90,0027890,3245) B2k=■(0,0027892,759.〖10〗(5) ) C2k=■(05068) D2k=0
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN
BỘ MÔN: ĐIỀU KHIỂN TỰ ĐỘNG
BÁO CÁO THÍ NGHIỆM
Môn: Hệ thống điều khiển số (bài 3, bài 4)
Sinh viên thực hiện:Nguyễn Hoàng Thạch
MSSV:20112216
Nhóm: 4
Yêu cầu: Giz8, Gw2
HÀ NỘI, 4-2015
Bài 3: Tổng hợp vòng điều chỉnh tốc độ quay
Trang 2Xác định đối tượng tốc độ quay
G n=G kb2 k M ψ 1
2 πJsJs
G kb2=G w 2=0,7 z−1
+0,3 z−2
=0,7 z+0,3
z2
Chuyển k M ψ 1
2 πJsJs sang miền ảnh z với phương pháp giữ mẫu Tustin, thời gian trích mẫu T2=0,01ms Sau đó xác định đối tượng
Gt=tf([kM*phi],[2*pi*J 0]); %xay dung ham truyen tren mien lien tuc
Gtz=c2d(Gt,T2,'Tustin'); %chuyen sang mien gian doan
Gkb2=tf([0.7 0.3],[1 0 0],T2);
Gnz=Gkb2*Gtz
Kết quả:
G nz=7,093.10−5 z2+0.0001013 z+3,04 10−5
b1 z2+b2z +b3
a0 z3+a1 z2 =
B nz
A nz
Thiết kế bộ điều chỉnh PI: G Rn=r0z +r1
z+ p1
=R z
P z
Phương pháp tiêu chuẩn tích phân bình phương
Trên miền liên tục: J=∫
t=0
∞
e2
(t ) dt → min
Trên miền gián đoạn: J=∑
k=0
∞
e k2→ min
Sai lệch điều chỉnh: E ( z)=
W (z)
1+G Rn G nz=
W ( z)
1+r0z +r1
z+ p1 .
b1 z2
+b2z+b3
a0 z3
+a1 z2
¿ W ( z ) (z + p1).(a0 z3
+a1 z2
)
(z+ p1).(a0 z3+a1 z2)+(r0z+r1).(b1 z2+b2z +b3)
Trang 3⇔ E ( z) (a0 z4+a1 z3+a0p1 z3+a1p1 z2+b1r0z3+b2r0 z2+b3r0 z +b1r1 z2+b2r1z+ b3r1)=W ( z ) (a0 z4+a1 z3+a0p1 z3+a1p1 z2)
⇔ E ( z) [a0 z4+(a1+a0p1+b1r0) z3+(a1p1+b2r0+b1r1) z2+(b3r0+b2r1) z+ b3r1]=W ( z ) ¿
Chuyển sang dạng sai phân:
a0 e k+(a1+a0p1+b1r0) e k−1+(a1p1+b2r0+b1r1).e k−2+(b3r0+b2r1) e k−3+b3r1 e k−4=a0 w k+(a¿ ¿1+a0p1) w k−1+a1p1 w k−2¿
⟹ e k=1
a0.¿
w k=1k
Cho k=0 ⟹ e0=1
a0 a0=1
Cho k=1 ⟹ e1=1
a0.[a0+a1+a0p1−(a1+a0p1+b1r0) e0]=1
a0.(a0−b1r0)
Cho k=2 ⟹ e2= 1
a0.[a0+a1+a0p1+a1p1−(a1+a0p1+b1r0) e1−(a1p1+b2r0+b1r1) e0]
Cho k=3
⟹ e3=1
a0.[a0+a1+a0p1+a1p1−(a1+a0p1+b1r0).e2−(a1p1+b2r0+b1r1) e1−(b3r0+b2r1) e0]
Cho k=4
⟹ e4= 1
a0.[a0+a1+a0p1+a1p1−(a1+a0p1+b1r0) e3−(a1p1+b2r0+b1r1) e2−(b3r0+b2r1) e1−b3r1 e0]
Lập J k=(e02
+e12
+e22
+e32
+e42
) Tìm r0, r1, p1 để cho J k → min
Sử dụng matlab để giải bài toán tối ưu:
Bước 1: Tạo m-file: bai3.m
function J=bai3(x)
a0=1; a1=-1; b1=7.093e-5; b2=0.0001013; b3=3.04e-5;
e0=1;
e1=(a0-b1*x(1))/a0;
e2=(a0+a1+a0*x(3)+a1*x(3) - (a1+a0*x(3)+b1*x(1))*e1-(a1*x(3)+b2*x(1)+
b1*x(2))*e0 )/a0;
e3=(a0+a1+a0*x(3)+a1*x(3) (a1+a0*x(3)+b1*x(1))*e2(a1*x(3)+b2*x(1)+ b1*x(2))*e1
-(b3*x(1)+b2*x(2))*e0)/a0;
Trang 4e4=(a0+a1+a0*x(3)+a1*x(3) (a1+a0*x(3)+b1*x(1))*e3(a1*x(3)+b2*x(1)+ b1*x(2))*e2 -(b3*x(1)+b2*x(2))*e1-b3*x(2)*e0)/a0;
J=(e0^2 + e1^2 + e2^2 + e3^2 + e4^2)
Bước 2: Tạo m-file: bai3_2_tim_cuc_tieu.m
options = optimset('fminunc');
options = optimset(options,'Display','iter','LargeScale','off');
x0=[2300, -2200,10];
[x,fval]=fminunc('bai3',x0,options)
Kết quả
x = 1.0e+03 *[ 2.3000 -2.2000 -0.0010]
fval = 1.9362
Các số liệu để liên kết với simulink
r0=x(1);
r1=x(2);
p1=x(3);
a0=1; a1=-1;
b1=7.093e-5; b2=0.0001013; b3=3.04e-5;
Sơ đồ mô phỏng simulink
Hình 3- 1: Sơ đồ simulink
Đáp ứng đầu ra của hệ kín:
Trang 5Hình 3- 2: Đáp ứng đầu ra của hệ kín
Giá trị bình phương sai lệch:
Hình 3- 3: Giá trị bình phương sai lệch
Nhận xét: Hệ kín ổn định, độ quá điều chỉnh nhỏ hơn 25%, sai lệch giảm về 0
Sơ đồ mô phỏng simulink có thêm nhiễu:
Hình 3- 4: Sơ đồ simulink có thêm nhiễu
Đáp ứng đầu ra hệ kín:
Trang 6Hình 3- 5: Đáp ứng đầu ra của hệ kín khi thêm nhiễu
Giá trị bình phương sai lệch:
Hình 3- 6: Giá trị bình phương sai lệch của hệ khi thêm nhiễu
Nhận xét:
+) Khi hệ đã ổn định ta cho thêm nhiễu đầu vào (step1) , sau một khoảng thời gian đầu ra đã
bị đưa lên trạng thái cân bằng mới
+) Tiếp tục chờ hệ ổn định rồi cho thêm nhiễu đầu ra (step2), lúc đó đầu ra bắt đầu dao động, sau một khoảng thời gian đầu ra được đưa về trạng thái cân bằng cũ
+) Giá trị bình phương sai lệch sau các khoảng thời gian quá độ đều trở về 0
Phương pháp gán điểm cực
Trang 7G kb3= G Rn G nz
1+G Rn G nz=
R z
P z .
B nz
A nz
1+R z
P z .
B nz
A nz
= R z B nz
P z A nz+R z B nz
Đa thức đặc tính:
N ( z )=P z A nz+R z B nz=(z+ p1).(a0 z3
+a1 z2
)+(r0z+r1).(b1 z2
+b2z+b3)
¿a0z4
+a1z3
+a0p1z3
+a1p1z2
+b1r0z3
+b2r0z2
+b3r0z +b1r1z2
+b2r1z+b3r1
¿a0z4
+(a1+a0p1+b1r0) z3
+(a1p1+b2r0+b1r1) z2
+(b3r0+b2r1) z+b3r1
Đa thức đặc tính N(z) có bậc 4 nên cần chọn trước 4 điểm cực z1, z2, z3, z4 để gán vào
N ( z )=∏
i=1
4
(z−z i)=(z−z1).(z−z2).(z −z3).(z−z4)
¿(z2−(z1+z2) z +z1z2).(z2−(z3+z4) z+z3z4)
¿z4−(z3+z4) z3+z3z4 z2−(z1+z2) z3+(z1z3+z1z4+z2z3+z2z4) z2−(z1+z2) z3z4 z+z1z2 z2−(z3+z4) z1z2 z+z1 z2 z3 z4
¿z4
−(z1+z2+z3+z4) z3
+(z1z2+z1z3+z1z4+z2z3+z2z4+z3z4) z2
−(z1z2z3+z1z2z4+z1z3z4+z2z3z4) z +z1 z2 z3 z4
Cân bằng hệ số được hệ phương trình sau:
a1+a0p1+b1r0=−(z1+z2+z3+z4)
a1p1+b2r0+b1r1=z1z2+z1z3+z1z4+z2z3+z2z4+z3z4
b3r0+b2r1=−(z1z2z3+z1z2z4+z1z3z4+z2z3z4)
b3r1=z1 z2 z3 z4
⟺{ a1+a0p1+b1r0=−(z1+z2+z3+z4)
a1p1+b2r0+b1r1=z1z2+z1z3+z1z4+z2z3+z2z4+z3z4
b3r0+b2r1=−(z1z2z3+z1z2z4+z1z3z4+z2z3z4)
b3r1=z1 z2 z3 z4
Hệ phương trình có 3 biến, 4 phương trình nên có thể hệ phương trình vô nghiệm, do đó coi
z4 là ẩn, hệ phương trình trở thành:
{ b1r0+a0p1+z4 ¿ −(z1+z2+z3+a1)
b2r0+b1r1+a1p1−(z1+z2+z3) z4 ¿ z1z2+z1z3+z2z3
b3r0+b2r1+(z1z2+z1z3+z2z3) z4
b3r1−z1 z2 z3 z4
¿
¿
−z1z2z3
0
Trang 8⟺ AX=B ⟹ X =A¿
X =[r0
r1
p1
z4] A=[b1 0 a0 1
b2 b1 a1 −(z1+z2+z3)
b3
0
b2
b3
0 0
z1z2+z1z3+z2z3
−z1 z2 z3 ]
B=[−(z1+z2+z3+a1)
z1z2+z1z3+z2z3
−z1z2z3
Giải trên Matlab
a0=1; a1=-1; b1=7.093e-5; b2=0.0001013; b3=3.04e-5;
%chon truoc z1, z2, z3
z1=0.3; z2=0.2; z3=0.4;
A=[b1 0 a0 1;b2 b1 a1 -(z1+z2+z3);b3 b2 0 z1*z2+z1*z3+z2*z3;0 b3 0 -z1*z2*z3]; B=[-(z1+z2+z3+a1) z1*z2+z1*z3+z2*z3 -z1*z2*z3 0]';
X=A\B
r0=X(1)
r1=X(2)
p1=X(3)
z4=X(4)
Kết quả: X =[−221.22334
0.2139
−0.28 ]⟹{r 0 r 1 ¿¿ −221.22334
p 1
z 4 ¿¿
0.2139
−0.28
z4 nằm trong vòng tròn đơn vị nên bộ số r0, r1, p1 là thỏa mãn
Sơ đồ mô phỏng simulink:
Trang 9Hình 3- 7: Sơ đồ mô phỏng simulink
Đồ thị đáp ứng của hệ kín
Hình 3- 8: Đồ thị đáp ứng của hệ kín
Nhận xét: Hệ kín ổn định, không có quá điều chỉnh
Sơ đồ mô phỏng simulink có thêm nhiễu:
Hình 3- 9: Sơ đồ simulink có thêm nhiễu
Đồ thị đáp ứng của hệ kín:
Trang 10Hình 3- 10: Đồ thị đáp ứng của hệ kín khi có thêm nhiễu
Nhận xét:
+) Khi hệ đã ổn định ta cho thêm nhiễu đầu vào (step1) , sau một khoảng thời gian đầu ra đã
bị đưa lên trạng thái cân bằng mới
+) Tiếp tục chờ hệ ổn định rồi cho thêm nhiễu đầu ra (step2), lúc đó đầu ra bắt đầu dao động, sau một khoảng thời gian đầu ra được đưa về trạng thái cân bằng cũ
Trang 11Bài 4: Tổng hợp bộ điều chỉnh tốc độ quay
trên không gian trạng thái
Mô hình đối tượng điều khiển đã được xây dựng tại câu 4, bài 1
Gdck1:A 1 k=[−0,04376 −2,927
6,098.10−5 −0,03995]B 1k =[6,098 10−5
2,166 10−5]
C 1 k =[0 5068]D1 k =0
Gdck2:
A 2 k=[0,002789 −0,3245−0,4989 −133,9 ]B 2 k=[2,759.100,002789−5]
C 2 k =[0 5068]D2 k =0
Tổng hợp bộ điều khiển tốc độ quay theo phương pháp phản hồi trạng thái sao cho đáp ứng có dạng PT1.
Chọn điểm cực thực dương nằm trong khoảng (0,1)
>>p1=[0.427 0.8];
>>p2=[0.308 0.64];
Tính bộ điều khiển phản hồi trạng thái theo phương pháp Ackerman
>> K1=acker(A1k,B1k,p1);
>> K2=acker(A2k,B2k,p2);
Khảo sát đáp ứng của hệ với đầu vào step
>>G1=ss(A1k-B1k*K1,B1k,C1k,D1k,T3);
>>step(G1)
>>grid on
>>hold on
>>G2=ss(A2k-B2k*K2,B2k,C2k,D2k,T4);
>>step(G2)
Trang 12Tổng hợp bộ điều khiển tốc độ quay theo phương pháp đáp ứng hữu hạn Dead-beat.
Chọn điểm cực
>>p3=[0 0];
>>p4=p3;
Tính bộ điều khiển phản hồi trạng thái theo phương pháp Ackerman
>> K3=acker(A1k,B1k,p3);
>> K4=acker(A2k,B2k,p4);
Khảo sát đáp ứng của hệ với đầu vào step
>>G3=ss(A1k-B1k*K3,B1k,C1k,D1k,T3);
>>step(G3)
>>G4=ss(A2k-B2k*K4,B2k,C2k,D2k,T4);
>>step(G4)
>>legend('G1','G2','G3','G4')
Hình 4- 1: Đồ thị đáp ứng của 4 hệ kín G1, G2, G3, G4
Nhận xét:
+) Với thiết kế bộ điều khiển tốc độ quay theo phương pháp phản hồi trạng thái sao cho đáp ứng có dạng PT1 thì e ∞=0 bằng cách chọn điểm cực phù hợp G1 có thời gian quá độ lớn
+) Với thiết kế bộ điều khiển tốc độ quay theo phương pháp đáp ứng hữu hạn Dead-beat thì tồn tại sai lệch tĩnh