Bài tập dài môn học Lý thuyết điều khiển tự động I.Thiết kế hệ thống điều khiển tự động có: -Khâu điều chỉnh PID có hàm truyền: W PID s=Kp1+ s Ti.. Khảo sát chất lượng của hệ thống
Trang 1Bài tập dài môn học
Lý thuyết điều khiển tự động
I.Thiết kế hệ thống điều khiển tự động có:
-Khâu điều chỉnh PID có hàm truyền:
W PID (s)=Kp(1+
s Ti.
1
+Td.s)
-Đối tượng điều khiển là một khâu quán tính bậc nhất và khâu trễ có hàm truyền :
W ĐT (s)= e -Ls /(Ts+1)
-Các tham số L,T của đối tương điều khiển: L=9;T=15
*Sơ đồ khối hệ thống điều khiển như sau:
Input + + + Output
- +
Ki=Kp/Ti;
Kd=Kp.Td;
II.Tính toán các tham số Kp,Ti,Td đảm bảo tính ổn định của hệ thống:
-Theo Ziegler-Nichols thì để đảm bảo tính ổn định của hệ thống trên cần có các tham số Kp,Ti,Td thoả mãn bảng sau ứng với từng bộ điều khiển:
Các bộ điều khiển
III.Xét tính ổn định.Tìm các điểm cực và điểm không
Khảo sát chất lượng của hệ thống với từng khâu điều khiển
1.Khâu điều khiển P :
a) Chương trình chạy trên MATLAB:
>>L=9;T=15;Kp=T/L;n=3;
>> [n,d]=pade(L,n)
Kp
Ki/s
KD.s
1 T.s+1
e
-Ls
Trang 2n =
-1.0000 1.3333 -0.7407 0.1646
d =
1.0000 1.3333 0.7407 0.1646
>> Wtre=tf(n,d)
Transfer function:
-s^3 + 1.333 s^2 - 0.7407 s + 0.1646
-
s^3 + 1.333 s^2 + 0.7407 s + 0.1646
>> Wdt=tf(1,[T 1])*Wtre
Transfer function:
-s^3 + 1.333 s^2 - 0.7407 s + 0.1646
-
15 s^4 + 21 s^3 + 12.44 s^2 + 3.21 s + 0.1646
>> Wpid=Kp;
>> W=feedback(Wpid*Wdt,1)
Transfer function:
-1.667 s^3 + 2.222 s^2 - 1.235 s + 0.2743 -
15 s^4 + 19.33 s^3 + 14.67 s^2 + 1.975 s + 0.439
>> [p z]=pzmap(W)
p =
-0.5895 + 0.6817i
-0.5895 - 0.6817i
-0.0549 + 0.1817i
-0.0549 - 0.1817i
z =
0.4086 + 0.3899i
Trang 30.4086 - 0.3899i
0.5160
>> step(W)
MATLAB cho kết quả sau:
Hình 1
-Nhận thấy rằng với Kp nhận giá trị trong bảng Ziegler-Nichols thì hệ thống ổn định với thời gian quá độ là 77.7sec
và chỉ tiêu chất lượng σmax= 42% >20%
b)Chỉnh định lại các tham số của luật điều khiển P
Như vậy với Kp = T/L chưa đạt mức chỉ tiêu yêu cầu là σ max dưới 20%.Ta chỉnh lại giá trị của Kp bằng 0.5*(T/L) thì được quá trình quá độ của hệ thống và các điểm cực điểm không mới như sau:(Hình 2)
T=15;L=9;Kp=1.2*(T/L);n=3;Ti=2*L;Td=0.5*L;
Trang 4Hình 2
Từ đồ thị trên ta có σmax=4.25% < 20% và thời gian quá độ là 59sec<77.7sec
(Thời gian quá độ thực nghiệm Z-N).Vậy với Kp=0.5*(T/L) là đạt yêu cầu
-Các điểm cực và các điểm không mới:
>> [p z]=pzmap(W)
p =
-1.0096
-0.2899 + 0.1343i
-0.2899 - 0.1343i
-0.0771 + 0.0474i
-0.0771 - 0.0474i
Trang 5z =
0.4086 + 0.3899i
0.4086 - 0.3899i
0.5160
-0.4208
-0.0792
2.Khâu điều chỉnh PI
a) Chương trình chạy trên Matlab:
>> L=9;T=15;Kp=0.9*(T/L);Ti=L/0.3;n=3;
>> [n,d]=pade(L,n)
n =
-1.0000 1.3333 -0.7407 0.1646
d =
1.0000 1.3333 0.7407 0.1646
>> Wtre=tf(n,d)
Transfer function:
-s^3 + 1.333 s^2 - 0.7407 s + 0.1646
-
s^3 + 1.333 s^2 + 0.7407 s + 0.1646
>> Wdt=tf(1,[T 1])*Wtre
Transfer function:
-s^3 + 1.333 s^2 - 0.7407 s + 0.1646
-
15 s^4 + 21 s^3 + 12.44 s^2 + 3.21 s + 0.1646
>> Wpid=Kp*tf([Ti 1],[Ti 0])
Transfer function:
45 s + 1.5
-
30 s
Trang 6>> W=feedback(Wpid*Wdt,1)
Transfer function:
-45 s^4 + 58.5 s^3 - 31.33 s^2 + 6.296 s + 0.2469
-
450 s^5 + 585 s^4 + 431.8 s^3 + 64.96 s^2 + 11.23 s + 0.2469
>> [p z]=pzmap(W)
p =
-0.5801 + 0.6553i
-0.5801 - 0.6553i
-0.0574 + 0.1592i
-0.0574 - 0.1592i
-0.0250
z =
0.4086 + 0.3899i
0.4086 - 0.3899i
0.5160
-0.0333
>> step(W)
MATLAB cho quá trình quá độ như sau:
Trang 7Hình 3
- Hệ thống ổn định
- Chỉ tiêu chất lượng: σmax=8.75%
- Thời gian quá độ:104sec
b)Chỉnh định lại các tham số của luật điều khiển PI
-Ta tiến hành chỉnh định lại các tham số như sau: Kp=1;Ti=24:
*
>> step(W)
Quá trình quá độ mới như sau:
Trang 8Hình 4
-Hệ thống ổn định
-Chỉ tiêu chất lượng σmax=0%<20%
-Thời gian quá độ:90.4sec<104sec(Thời gian quá độ tính theo các tham
số trong bảng thực nghiệm Z-N)
*Các điểm cực và điểm không mới:
>> [p z]=pzmap(W)
p =
-0.5630 + 0.5799i
-0.5630 - 0.5799i
-0.0871 + 0.1245i
-0.0871 - 0.1245i
-0.0331
Trang 9z =
0.4086 + 0.3899i
0.4086 - 0.3899i
0.5160
-0.0455
3.Khâu điều chỉnh PID:
a) Chương trình chạy trên Matlab:
>> L=9;T=15;Kp=1.2*(T/L);Ti=2*L;Td=0.5*L;n=3;
>> [n,d]=pade(L,n)
n =
-1.0000 1.3333 -0.7407 0.1646
d =
1.0000 1.3333 0.7407 0.1646
>> Wtre=tf(n,d)
Transfer function:
-s^3 + 1.333 s^2 - 0.7407 s + 0.1646
-
s^3 + 1.333 s^2 + 0.7407 s + 0.1646
>> Wdt=tf(1,[T 1])*Wtre
Transfer function:
-s^3 + 1.333 s^2 - 0.7407 s + 0.1646
-
15 s^4 + 21 s^3 + 12.44 s^2 + 3.21 s + 0.1646
>> Wpid=Kp*tf([Ti*Td Ti 1],[Ti 0])
Transfer function:
162 s^2 + 36 s + 2
-
18 s
>> W=feedback(Wpid*Wdt,1)
Trang 10
Transfer function:
-162 s^5 + 180 s^4 - 74 s^3 + 2.667 s^2 + 4.444 s + 0.3292 -
108 s^5 + 558 s^4 + 150 s^3 + 60.44 s^2 + 7.407 s + 0.3292
>> [p z]=pzmap(W)
p =
-4.9063
-0.0556 + 0.2906i
-0.0556 - 0.2906i
-0.0746 + 0.0391i
-0.0746 - 0.0391i
z =
0.4086 + 0.3899i
0.4086 - 0.3899i
0.5160
-0.1111 + 0.0000i
-0.1111 - 0.0000i
>> step(W)
*Quá trình quá độ:
Trang 11Hình 5
-Hệ thống ổn định
-Chỉ tiêu chất lượng :σmax=250% >20%
-Thời gian quá độ : t=42.4sec
b)Chỉnh định lại các tham số của luật điều khiển PID
*Quá trình quá độ với tham số chỉnh định: Kp=0.2;Ti=8;Td=1
Trang 12Hình 6
-Hệ thống ổn định
-Chỉ tiêu chất lượng:σmax=2.42% <20%
-Thời gian quá độ:t=20.4sec < 42.4sec(Thời gian quá độ tính theo tham số trong bảng thực nghiệm Z-N)
* Các điểm cực và các điểm không mới:
p =
-0.4453 + 0.3753i
-0.4453 - 0.3753i
-0.4644
-0.0342 + 0.0244i
-0.0342 - 0.0244i
z =
-0.8536
Trang 13
0.4086 + 0.3899i
0.4086 - 0.3899i
0.5160
-0.1464
IV.Tính tham số tối ưu của bộ điều khiển PID dùng hàm Least-quares 1.Hàm Least-quares
*Yêu cầu của đề bài là tìm các tham số Kp,Ki,Kd sao cho tổng sai số trong suốt quá trình quá độ:
J= ∫∞
0 ) ( 2
^ t dt
e là nhỏ nhất (min)
*Do hệ thống xét là ổn định nên ta chỉ xét trong khoảng thời gian [0 NT] + N đủ lớn đế có sai số taị đó gần bằng 0
+ T thời gian lấy mẫu
⇒Ei phụ thuộc vào các tham số PID
⇒ J=∑
=
N i
PID i e
1
) ( 2
^
2.Các hàm để tính toán các tham số tối ưu PID
a) Hàm asignpid:
function assignpid(pid)
assignin('base','Kp',pid(1));
assignin('base','Ki',pid(2));
assignin('base','Kd',pid(3));
*Thực hiện gán 3 tham số của khâu PID bằng các tham số Kp,Ki,Kd
b) Hàm yout_1:
function e=yout_1(pid,model,tspan)
opt=simset('solver','ode5');
assignpid(pid);
[t,x,y]=sim('bai_tap',tspan,opt);
e=y-1;
*Thực hiện các chức năng:
-Tính ra sai số
-Gán các tham số
-Tự chạy cửa sổ Simulink
c) Hàm lsqpid:
function pid=lsqpid(pid0,model,tspan)
Trang 14options=foptions;
options=[1 0.01 0.01];
pid=leastsq('yout_1',pid0,options,[],'bai_tap',tspan);
3.Quá trình tính toán trên máy:
a)Sơ lược quá trình tính:
-Dùng 2 cửa sổ Command window &Simulink trong Matlab
-Với sơ kiện ban đầu Simulink sẽ chạy và đưa ra kết quả sai số cho Command.Command tính toán và đưa trở lại kết quả thm số PID cho Simulink.Simulink lại chạy và đưa ra tham số Quá trình sẽ kết thúc khi mức sai số là không thay đổi
b)Các bước tiến hành
*Bước 1:Copy 3 file vừa tạo vào thư mục Optim/Toolbox/Matlab
*Bước 2:Tạo mô hình 'bai_tap' trên Simulink:
Hình 7
>> T=15;L=9;Kp=1.39;Ti=16.5;Td=3;
>>[n,d]=pade(L,3);
>>Wtre=tf(n,d);
>>Wdt=tf(1,[T 1])*Wtre;
>>Wpid=Kp*(1+tf(1,[Ti 0])+tf([Td 0],[1])) ;
>>W=feedback(Wpid*Wdt,1);
>> step(W)
Cửa sổ scope se cho kết quả ra màn hình :
Trang 15Hình 8
-Lấy các giá trị Kp,Ki,Kd đã chỉnh định nhập vào khâu PID sẽ được kết quả trên:(Hình 8)
-Gán các tham số trong khâu PID là Kp,Ki,Kd
Thời gian trễ là 9s
*Bước 3:Trên cửa sổ Command Window dùng 2 lệnh sau:
>>pid0=[1.39 0.2 1.56];
>>pid=lsqpid(pid0,' bai_tap',[0 500])
Màn hình sẽ hiện ra kết quả :
> In C:\MATLAB6p5\toolbox\optim\leastsq.m at line 53
In C:\MATLAB6p5\work\lsqpid.m at line 4
f-COUNT RESID STEP-SIZE GRAD/SD LAMBDA
4 1542.38 1 -111
10 1522.7 0.206 -87.3 1633.72
16 1487.42 0.923 -0.00732 1634.33
25 1486.02 11.1 -0.0105 70.4185
31 1485.96 0.989 9.98e-006 70.4201
Trang 1638 1485.96 2.18 -1.65e-005 22.0823
45 1485.95 2.48 7.21e-007 11.0412
52 1485.95 1.94 -9.9e-006 3.74873
59 1485.94 2.73 -1.05e-005 1.00495
66 1485.92 1.58 8.06e-005 1.00563
72 1485.9 1.11 -0.000112 1.0088
79 1485.88 1.65 -6.91e-005 1.00899
85 1485.87 1.07 8.62e-005 1.01183
92 1485.86 1.74 -8e-005 0.367525
99 1485.84 1.56 -4.61e-006 0.143634
105 1485.82 1.11 -4.2e-005 0.151586
111 1485.81 1.08 -6.12e-005 0.152571
117 1485.8 1.22 -4.21e-005 0.15354
123 1485.8 1.07 2.59e-005 0.153756
129 1485.8 1.2 -3.22e-005 0.153987
135 1485.8 1.13 1.38e-005 0.154009
141 1485.8 1.1 -1.3e-005 0.154077
147 1485.8 1.29 2.21e-006 0.0770384
153 1485.8 1 5.13e-008 0.0770649
159 1485.8 1.17 4.34e-007 0.0385324 Optimization Terminated Successfully
pid =
1.7531 0.0609 5.7370
Cửa sổ scope se cho kết quả ra màn hình :
Trang 17Hình 9
Thời gian quá độ là 40,6 s
độ quá độ điều chỉnh là 4.25%
Kết luận : các tham số tối ưu của hệ thống là
Kp*= 1.7531
Ki*= 0.0609
Kd*=5.7370