Điều khiển số, báo cáo, thí nghiệm, báo cáo điều khiển số, TN điều khiển số
Trang 1Bài thực hành số 1: Tìm mô hình gián đoạn động cơ một chiều
Động cơ có các tham số:
* Điện trở phần ứng: R A=250 mΩΩ
* Điện cảm phầns ứng: L A=4 mΩH
* Từ thông danh định : Ψ B=0.04 VS
* Mômen quán tính: J=0.012 kg mΩ2
* Hằng số động cơ : k e=236.8 kmΩ=38.2
Mô hình động cơ 1 chiều
1 Tìm hàm truyền đạt của mô hình
- Hàm truyền đạt vòng hở:
W h= ¿ 1
Ra T 1
A s+1 k mΩ Ψ 1
2 π J s
- Hàm truyền đạt vòng kín:
W k= ¿ Wh ke ψ
1+ Wh ke ψ
Sử dụng matlab để tính hàm truyền đạt:
Tt = 100e-6; La = 4e-3; Ra = 250e-3; Ta = La/Ra; T2 = 0.01e-3; km = 38.2; ke
= 236.8; phi = 0.04; J = 0.012;
Wh = 1/Ra*tf([1],[Ta 1])*km*phi*tf([1],[2*pi*J 0])
Wk =feedback(Wh,ke*phi)
Thu được các kết quả như sau:
Trang 2W h= 6.112
0.001206 s2+0.0754 s
0.001206 s2+0.0754 s+57.89
Sử dụng matlab để tìm hàm truyền đạt trên miền ảnh Z bằng các phương pháp ZOH, FOH và TUSTIN, với chu kì trích mẫu T1=0.1 mΩs và T2=0.01 mΩs
T1 = 0.1e-3; T2 = 0.01e-3;
Wz1 = c2d(Wk,T1,’ZOH’);
Wz2 = c2d(Wk,T1,’FOH’);
Wz3 = c2d(Wk,T1,’Tustin’);
Wz4 = c2d(Wk,T2,’ZOH’);
Wz5 = c2d(Wk,T2,’FOH’);
Wz6 = c2d(Wk,T2,’Tustin’);
Ta thu được các hàm truyền đạt trên miền ảnh Z ứng với mỗi trường hợp, sau khi chuyển sang số mũ âm như sau:
Wz1=2.528e-5 z+ 2.523e-5
z2−1.993 z+ 0.9938
Wz2 =8.431e-6 z2+3.367e-5 z +8.404e-6
z2 −1.993 z +0.9938
Wz3=1.236e-5 z2
+2.525e-5 z+1.263e-5
z2−1.993 z+0.9938
Wz4=2.533e-7 z+2.532e-7
z2 −1.999 z+ 0.9994
Wz5=8.443e-8 z2+3.377e-7 z +8.44e-8
z2−1.999 z +0.9994
Wz6=1.266e-7 z2+2.532e-7 z +1.266e-7
z2−1.999 z +0.9994
Trang 3Hình : Kết quả mô phỏng đối tượng với các mô hình gián đoạn
Trang 4Mô phỏng các mô hình gián đoạn thu được bằng đáp ứng bước nhảy step(Gk) hoặc bằng mô phỏng simulink với sơ đồ như sau:
Với thời gian trích mẫu T1 = 0.1ms, ta thu được các đường đồ thị:
Với thời gian trích mẫu T2 = 0.01ms, ta có:
Trang 5Nhận xét:
Với T1 = 0.1ms, ta thấy phép biến đổi Z theo các phương pháp ZOH, FOH và TUSTIN cho kết quả gần tương đương nhau
Nhưng với thời gian trích mẫu T2 = 0.01s, ta thấy có sự khác biệt, so với trường hợp T1 thì hệ dao động nhiều hơn, và chưa đi đến trạng thái ổn định, do các điểm cực đã bị đẩy ra xa, gần biên giới ổn định của đường tròn đơn vị
Xây dựng mô hình trạng thái của ĐCMC trên miền thời gian liên tục
Trang 6Bài thực hành số 2: Tổng hợp vòng điều chỉnh dòng phần ứng
(điều khiển mômen quay)
Sơ đồ vòng điều chỉnh dòng phần ứng của ĐCMC
Hàm truyền đạt của mô hình đối tượng điều khiển dòng
Ghi= 1
T t s +1 Ra1 T 1
A s+1
-Sử dụng lệnh c2d ta tìm được hàm truyền đạt trên miền ảnh z của đối tượng theo phương pháp FOH (với chu kỳ trích mẫu 0,01ms):
Tt = 100e-6; La = 4e-3; Ra = 250e-3; Ta = La/Ra;
T2 = 0.01e-3;
Ghi = 1/Ra*tf([1],[Tt 1])*tf(1,[Ta 1])
c2d(Ghi,T2,'FOH');
ta thu được hàm truyền của đối tượng dòng như sau:
Gi(z )=4.064e-5 z2+0.1585e-3 z+3.865 e−5
z2−1.904 z +0.9043
Dùng câu lệnh filt, ta đưa hàm truyền đối tượng về dạng z mũ âm
bo=4.064e-5;b1=0.1585e-3;b2=3.865e-5;
a0=1;a1=-1.904;a2=0.9043;
Gzi4=filt([b0 b1 b2],[a0 a1 a2],T2)
Ta thu được hàm truyền như sau:
Gi(z )=4.064e-5+ 0.1585e-3 z−1+3.865 e−5 z−2
1−1.904 z−1
+0.9043 z−2
Thiết kế bộ điều chỉnh theo phương pháp Dead – Beat
Giả sử chọn đa thức L(z−1
¿ = l0 + l1.z−1
Chương trình Matlab
l0=a0/((a0-a1)*(b0+b1+b2));
l1=-a1/((a0-a1)*(b0+b1+b2));
Trang 7Lz1=filt([l0 l1],[1],T2);
Az=filt([a0 a1 a2],[1],T2);
Bz=filt([b0 b1 b2],[1],T2);
Gr=Lz1*Az/(1-Lz1*Bz);
Gk=feedback(Gr*Gzi4,1);
Ta thu được bộ hàm truyền bộ điều khiển và hệ kín như sau:
Gr= 1448−3940 z
−2 +2493 z −3
0.9411−0.3416 z−1−0.493 z−2−0.1066 z−3
Gk 1= 0.05885+ 0.2295 z
−1
−0.1042 z−2−0.5232 z−3+0.2429 z−4+0.09637 z−5 1−1.904 z−1+0.9043 z−2−5.551e-17 z−4
Thiết kế bộ điều chỉnh theo phương pháp cân bằng mô hình
Giả sử sau 3 bước, giá trị của đối tượng điều khiển sẽ đuổi kịp giá trị đặt của đại lượng chủ đạo
Với tốc độ đáp ứng của giá trị thực là 3 chu kì T2
Ta có:
Gk 2=x1 z−1
+x2 z−2
+x3 z−3
(với điều kiện x1+x2+x3=1 ¿
ta chọn x1=0.3 ; x2=0.3 ; x3=0.4
suy ra Gk 2=0.3 z−1 +0.3 z −2 −0.4 z −3
Hàm truyền đạt của bộ điều chỉnh là:
Gr= 1
Gzi 4 .
Gk 2
1−Gk 2
Chương trình matlab
T2 = 0.01e-3;
x1=0.3;x2=0.3;x3=0.4;
Gk2 = filt([0 x1 x2 x3],[1],T2)
Gr=Gk2/(Gzi4*(1-Gk2))
ta thu được các hàm truyền đạt như sau:
Gk 2=0.3 z−1
+0.3 z−2 +0.4 z −3
Gr=¿ 0.3 z−1 −0.2712 z −2 +0.1001 z −3 −0.4903 z −4
+0.3617 z−5
4.064e-5+ 0.0001463 z−1
−2.109e-5 z−2 −7.54e-5 z −3 −7.5e-5 z −4 −1.546e-5 z −5
Kết quả mô phỏng bằng đáp ứng bước nhảy của hệ kín:
Trang 8Hình : Đáp ứng bước nhảy của hệ kín
Mô phỏng bằng Simulink
Ta có sơ đồ Simulink như sau:
Kết quả mô phỏng phương pháp Dead – Beat:
Trang 9Nhận xét:
Từ đồ thị ta thấy đúng sau 3 bước đối tượng điều khiển đuổi kịp giá trị đặt của đại lượng chủ đạo Kết thúc chu kì trích mẫu đầu tiên đầu ra đạt tới giá trị x1 của bộ điều khiển ( =2 ) Kết thúc chu kì trích mẫu thứ 2 đầu ra đạt tới giá trị x1+x2 của bộ điều khiển ( =3 )
Bài thực hành số 3: Tổng hợp vòng điều chỉnh tốc độ quay
Hàm truyền đối tượng điều khiển tốc độ có dạng: Gn=Gi*kM*ψ*(1/(2П*J*s)
Đáp ứng bước nhảy của đối tượng Gi có dạng gần giống khâu quán tính bậc nhất, nên
ta coi Gi=1/(2Tt*s+1), với Tt=100us
Ta có hàm truyền đối tượng điều khiển tốc độ có dạng tích phân quán tính bậc nhất, được tìm theo các câu lệnh Matlab như sau:
>>Tt=100e-6;
>>T1=0.1e-3;
>>Gki=tf(1,[2*Tt 1]);
>>Gn=Gi*kM*phi*(1/(2*pi*J))*tf(1,[1 0]);
>>Gnz=c2d(Gn,T1,’FOH’);%Gián đoạn hóa
Gnz= 0.0001497 z
2
+0.000531 z +0.0001166
z2−1.607 z+ 0.6065
>>a0=1;a1=-1.607;a2=0.6065;
>>b0=0.0001497;b1=0.000531;b2=0.0001166;
Trang 10>>Gnz2=filt([b0 b1 b2],[a0 a1 a2],T1);%Chuyển sang miền z−1 Gnz 2= 0.0001497+0.000531 z−1+0.0001166 z−2
1−1.607 z−1+0.6065 z−2
Thiết kế bộ điều khiển theo phương pháp gán điểm cực
Giả sử bộ điểu khiển có dạng: Grn= r 0+r 1 z
−1
p 0+ p1 z−1
Đa thức đặc tính của hệ kín có dạng
N = (z−0.2¿.(z-0.5).(z-0.75) = aa 0 z3
+aa 1 z2 +aa 2 z+aa 3
Chương trình Matlab:
>>aa3=-0.075;aa2=0.625;aa1=-1.45;aa0=1;
>>A=[b0 0 a0 0;b1 b0 a1 a0;b2 b1 a2 a1;0 b2 0 a2];
>>B=[aa0;aa1;aa2;aa3];
>>C=inv(A)*B;%C=[r0;r1;p0;p1]
Ta thu được ma trận C=[351.3252;-225.3581;0.9474;-0.0803]
>>Grn=filt([351.3252 -225.3581],[0.9474 -0.0803],T1)
>>Gk=feedback(Grn*Gnz2,1);
>>step(Gk);
Kết quả đáp ứng bước nhảy của hệ kín:
Mô phỏng Simulink:
Trang 11 Thiết kế bộ điều khiển theo tiêu chuẩn tích phân bình phương
Sai lệch điều chỉnh phụ thuộc w:
E(z )
W (z )=
1
1+Grz∗Gnz
Ta đã có
Gnz= 0.0001497+ 0.000531 z
−1
+0.0001166 z−2
1−1.607 z−1+0.6065 z−2
¿b 0+b 1 z−1
+b 2 z−2
a 0+a 1 z−1
+a 2 z−2
Giả sử
Grz= r 0+r 1 z
−1
1−z−1
Suy ra công thức truy hồi
ek = [xk + (a1 - 1).xk-1 + (a2-a1).xk-2 – a2.xk-3 – (r0.b1+r1.b0+a1-1).ek-1 – (r0.b2+r1.b1+a2-a1)ek-2 – (r1.b2-a2)ek-3 ]/(r0.b0+1)
x-1 = 0; e-1 = 0;
x0 = 1; e0 = 1;
x1= 1; e1 = -0.000531.r0 - 0.0001497.r1+1;
giả sử ta lấy sai phân đến e1, ta có
Trang 12T 1∑
i=0
1
e i2 =T 1.[1+(0.000531r 0+0.0001497 r 1−1) 2
]
Đạt min khi 0.000531r0+0.0001497r1 = 1 Ta chọn sao cho ro≈|r 1|, do đó r0=2600, r1=-2.5424e3
Mô phỏng kết quả trên Matlab:
>>Grn=filt([r0 r1],[1 -1],T1);
>>Gk=feedback(Grn*Gnz,1);
>>step(Gk);
Kết quả đáp ứng bước nhảy:
Nhận xét: Phương pháp gán điểm cực cho đáp ứng bước nhảy đẹp, không có độ quá điều chỉnh, bám nhanh tới giá trị đặt, vì có kết quả được Matlab hỗ trợ tính toán Với phương pháp bình phương sai lệch, do chỉ lấy tổng bình phương 2 bước sai lệch, nên kết quả bộ điều khiển không tối ưu, đáp ứng bước nhảy dao động nhiều
Mô phỏng trên Simulink
TH1: Giá trị đặt của tốc độ thay đổi dưới dạng bước nhảy
Trang 13TH2: Phụ tải thay đổi đột biến dưới dạng bước nhảy
Trang 14Bài thí nghiệm số 4: Tổng hợp bộ điều chỉnh tốc độ quay trên không gian trạng thái
Dùng hàm truyền đối tượng đã tìm được ở bài thí nghiệm số 1, ta có
0.001206 s2+0.0754 s+57.89
Dùng lệnh Matlab để tìm mô hình trạng thái gián đoạn của đối tượng:
>>b0=6.112;
>>a2=0.001206;a1=0.0754;a0=57.89;
>>T1=0.1;T2=0.01;
>>[A B C D]=tf2ss([bo],[a2 a1 a0]);
Tìm mô hình trạng thái gián đoạn bằng phương pháp ZOH với các chu kỳ trích mẫu T1, T2, ta dùng các lệnh sau:
>>[A1,B1,C1,D1]=c2dm(A,B,C,D,T1,’ZOH’);
>>[A2,B2,C2,D2]=c2dm(A,B,C,D,T2,’ZOH’);
Tổng hợp bộ điều chỉnh tốc độ quay theo phương pháp phản hồi trạng thái sao cho đáp ứng có dạng PT1 (điểm cực nhận giá trị thực dương trên miền z)
Giả sử đáp ứng có 2 điểm cực p11=0.2, p12=0.3, ta dùng các lệnh sau để tìm
bộ điều khiển phản hồi trạng thái:
>>P1=[0.2 0.3];
>>K1=acker(A1,B1,P1);
>>H1=ss(A1-B1*K1,B1,C1,D1,T1);
>>K2=acker(A2,B2,P1);
>>H1=ss(A2-B2*K2,B2,C2,D2,T2);
>>step(H1);hold on;
>>step(H2);
Tổng hợp bộ điều chỉnh tốc độ quay theo phương pháp đáp ứng hữu hạn (Dead – Beat: gán điểm cực tại gốc tọa độ trên miền z)
Giả sử đáp ứng có 2 điểm cực p21=0, p22=0, ta dùng các lệnh sau để tìm bộ điều khiển phản hồi trạng thái:
>>P2=[0 0];
>>K3=acker(A1,B1,P2);
Trang 15>>K4=acker(A2,B2,P2);
>>H4=ss(A2-B2*K4,B2,C2,D2,T2);
>>step(H3);
>>step(H4);
Kết quả đồ thị đáp ứng bước nhảy của đối tượng như sau
Nhận xét: đối tượng đã có đáp ứng ổn định Ta có thể thêm hệ số khuếch đại cho bộ điều khiển để đáp ứng bám theo đúng giá trị đặt