ta cải thiện vấn đề này bằng cách đưa thêm khâu tích phân vào bộ điều khiển... do tính tuyến tính của hệ thống nên ta chọn ki=20.Tuy vậy ta thấy khi đưa khâu tích phân vào đã cải... thiệ
Trang 1Thiết kế bộ điều khiển cho hệ thống điều khiển góc quay
động cơ điện một chiều _*00* _
Cho động cơ có mô hình vật lý như sau:
Momen quán tính của roto j=3.2284e-6 kg.m^2/s^2
Hệ số suy giảm ma sát b=3.5077e-6 Nms
Hệ số lự điên từ và momen k=ke=kt=0.0274 Nm/Amp
Điện trở phần ứng r=4𝜴
Điện kháng phần ứng l=2.75e-6H
Tín hiệu vào (V): Source Voltage
Tín hiệu ra (theta): position of shaft
Giả thiết trục động cơ nối cứng với tải
Hàm truyền đạt:
ϴ
k
(l∗j) s3 + (l∗b+r∗ j) s2
+(b∗r +k2)s
Yêu cầu thiết kế bộ điều khiển:
Sai số ở tạng thái xác lập Ess=0
Thời gian tăng Tr≤1s
Thời gian trễ Ts≤2.2s
Độ quá điều chỉnh 𝜹≤16%
Sơ đồ cấu trúc hệ thống
Trang 2Tiến hành xây dựng bộ điều khiển
1 Khai báo mô hình:
>> j=3.2284e-6;
>> b=3.5077e-6;
>> k=0.0274;
>> r=4;
>> l=2.75e-6;
>> num=k;
>> den=[(j*l) ((j*r)+(l*b)) ((b*r)+(k*k)) 0];
2 Đưa bộ điều khiển là khâu tỷ lệ thử phản ứng của hệ thống
Ta sử dụng bộ điều khiển là một khâu tỷ lệ có hệ số khuyếch đại 1.7, sử dụng các ệnh sau
để ta khảo
>> kp=1.7;
>> numcf=[kp];
>> dencf=[1];
>> numf=conv(numcf,num);
>> denf=conv(dencf,den);
>> denf=conv(dencf,den);
>> [numc,denc]=cloop(numf,denf);
>> t=0:0.001:0.2;
>> step(numc,denc,t);
Kết quả thu được:
Response to step input kp=1.7
Trang 3Step Response
Time (sec)
0
0.2
0.4
0.6
0.8
1
1.2
1.4
System: sys Time (sec): 0.0874 Amplitude: 1.05
System: sys Time (sec): 0.0602 Amplitude: 1.17
System: sys Time (sec): 0.00814 Amplitude: 0.1
System: sys
Time (sec): 0.0352
Amplitude: 0.902
Ta kiểm tra phản ứng của hệ thống với kp=1.5
Trang 4Step Response
Time (sec)
0
0.2
0.4
0.6
0.8
1
1.2
1.4
tra hệ thống với kp=2
Trang 5Step Response
Time (sec)
0
0.2
0.4
0.6
0.8
1
1.2
1.4
System: sys Time (sec): 0.0075 Amplitude: 0.102
System: sys Time (sec): 0.0313 Amplitude: 0.9
System: sys Time (sec): 0.0809 Amplitude: 1.05 System: sys
Time (sec): 0.0536
Amplitude: 1.2
Từ 3 trường hợp trên ta thấy lấy kp=1.7 là hợp lý nhất do tính tuyến tính của hệ thống
Ta có : Tr=1 s
Ts=2.2 s
Độ quá điều chỉnh bằng 19%
Bây giờ ta khảo sát phản ứng của hệ thống với nhiễu nhờ đoạn lệnh sau:
>> numdcl=conv(numc,1);
>> dendcl=conv(denc,kp);
>> step(numdcl,dendcl,t);
Với kp=1.7
Trang 60 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Time (sec)
Tuy nhiên ta thấy thời gian quá độ độ qua điều chỉnh cũng như sai số ở trạng thái xác lập khi bị nhiễu tác động là tương đối lớn ta cải thiện vấn đề này bằng cách đưa thêm khâu tích phân vào bộ điều khiển
3 Sử dụng bộ điều khiển PI:
Khảo sát hệ bằng đoạn lệnh sau:
>> j=3.2284e-6;
>> b=3.5077e-6;
>> k=0.0274;
>> r=4;
>> l=2.75e-6;
>> num=k;
>> den=[(j*l) ((j*r)+(l*b)) ((b*r)+(k*k)) 0];
Trang 7>> kp=1.7;
>> ki=20;
>> numcf=[kp ki];
>> dencf=[1 0];
>> numf=conv(numcf,num);
>> denf=conv(dencf,den);
>> [numc,denc]=cloop(numf,denf,-1);
>> t=0:0.001:0.4;
>> step(numc,denc,t);
Ta thu được:
Response to Step Input kp=1.7 ki=20
0
0.5
1
Time (sec)
Phản ứng của hệ thống với nhiễu:
Trang 8>> numdcl=conv(numc,dencf);
>> dendcl=conv(denc,numcf);
>> step(numdcl,dendcl,t);
>> grid on
Ta thu được:
Response to Step Disturbance kp=1.7 ki=20
0
0.1
0.2
0.3
0.4
0.5
0.6
Time (sec)
Ta kiểm tra với ki=21
Trang 90 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
0
0.1
0.2
0.3
0.4
0.5
0.6
Time (sec)
Ta thử với ki=19
0
0.1
0.2
0.3
0.4
0.5
0.6
Time (sec)
Từ 3 trường hợp trên ta thấy phản ứng của hệ thống đối với nhiễu khi ki=20 là nhanh nhất do tính tuyến tính của hệ thống nên ta chọn ki=20.Tuy vậy ta thấy khi đưa khâu tích phân vào đã cải
Trang 10thiện được sai số ở trạng thái xác lập khi hệ thống bị nhiễu nhưng chưa cải thiện được độ quá điều chỉnh và thời gian quá độ
4 Sử dụng bộ điều khiển PID và chỉnh định thông số của nó:
Để giảm thời gian quá độ ta tăng hệ số khuyếch đại kp=17 và chọn ki=200, khảo sát lại ta thấy: Hàm quá độ của hệ thống:
>> kp=17;
>> ki=200;
>> numcf=[kp ki];
>> dencf=[1 0];
>> numf=conv(numcf,num);
>> denf=conv(dencf,den);
>> [numc,denc]=cloop(numf,denf,-1);
>> t=0:0.001:0.4;
>> step(numc,denc,t);
>> grid on
Ta thu được:
Trang 110 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
Time (sec)
Phản ứng của hệ thống với nhiễu khi kp=17 và ki=200:
>> numdcl=conv(numc,dencf);
>> dendcl=conv(denc,numcf);
>> step(numdcl,dendcl,t);
>> grid on
Ta thu được:
Trang 120 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
Time (sec)
Ta thấy đáp ứng của hệ thống nhanh hơn nhưng hệ thống dao động mạnh hơn do Ki lớn ta sử dụng bộ PID với các tham số sau:
>> kp=17;
>> ki=200;
>> kd=0.15;
>> numcf=[kd kp ki];
>> dencf=[1 0];
>> numf=conv(numcf,num);
>> denf=conv(dencf,den);
>> [numc,denc]=cloop(numf,denf,-1);
>> t=0:0.001:0.1;
>> step(numc,denc,t)
Kết quả khảo sát ta được:
Trang 13Step Response
Time (sec)
0
0.2
0.4
0.6
0.8
1
1.2
1.4
System: sys Time (sec): 0.000388 Amplitude: 0.1
System: sys Time (sec): 0.0129 Amplitude: 1.09
System: sys Time (sec): 0.00577 Amplitude: 0.9
>> numdcl=conv(numc,dencf);
>> dendcl=conv(denc,numcf);
>> step(numdcl,dendcl,t)
Ta được phản ứng của hệ thống với nhiễu:
Response to Step Disturbance kp=17 ki=200 kd=0.15
Trang 140 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
0
0.01
0.02
0.03
0.04
0.05
Time (sec)
Kết quả đáp ứng của hệ thống đã tôt hơn rất nhiều nhưng phản ứng của hệ thống đối với nhiễu còn chậm, do đó ta tăng ki=600 và khảo sát lại
>> ki=600;
>> numcf=[kd kp ki];
>> dencf=[1 0];
>> numf=conv(numcf,num);
>> denf=conv(dencf,den);
>> [numc,denc]=cloop(numf,denf,-1);
>> t=0:0.001:0.1;
>> step(numc,denc,t)
Trang 15Step Response
Time (sec)
0
0.2
0.4
0.6
0.8
1
1.2
1.4
System: sys Time (sec): 0.000387 Amplitude: 0.1
System: sys Time (sec): 0.00564 Amplitude: 0.9
System: sys Time (sec): 0.0155 Amplitude: 1.13
System: sys Time (sec): 0.0306 Amplitude: 1.05
Ta kiểm tra phản ứng của hệ thống với nhiễu:
>> numdcl=conv(numc,dencf);
>> dendcl=conv(denc,numcf);
>> step(numdcl,dendcl,t)
Ta thu được phản ứng của hệ thống với nhiễu:
Trang 160 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 -0.01
0
0.01
0.02
0.03
0.04
Time (sec)
Ta kiểm tra với ki=700
Phản ứng của hệ thống với nhiễu:
-0.005
0
0.005
0.01
0.015
0.02
0.025
0.03
0.035
0.04
Time (sec)
Trang 17Do tính tuyến tính của hệ thống ta chọn ki=600
Từ các đường đặc tính trên ta thấy:
Sai số tại trạng thái xác lập: Es=0
Thời gian tăng Tr=0.005253s < 1s
Thời gian quá độ Ts=0.0306s < 2.2s
Độ quá điều chỉnh δ=13% <16%
Vậy hệt thống đạt yêu cầu
Vậy bộ điều khiển PID thu được là
Kp=17 Ki=600 Kd=0.15