Tải bản đầy đủ (.doc) (13 trang)

BÀI tập lớn môn điều điều tự động

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (833.74 KB, 13 trang )

B i t p d i môn đi u khi n t đ ngà ậ à ề ể ự ộ
ph n I/ Yêu c u thi t kầ ầ ế ế
1) Yêu c u thi t k h th ng ®iÒukhiÓn t ng có:ầ ế ế ệ ố ựđộ
- Bé i u khi n PID có h m truy n :đề ể à ề
W
PID
(s) = K
P
*(1+
sT
I
*
1
+T
D
*s)
- i t ng i u khi n l khâu tr v quán tính b c nh t có h m truy n:Đố ượ đề ể à ễ à ậ ấ à ề
W
DT
(s) =
1*
+

sT
e
Ls
V i các tham s : L/T = 0.9; T = 95;ớ ố
H th ng có s nhệ ố ơđồ hình v :ẽ
W
pid
(


s
) W
dt
(
s
)
2) Tính toán các tham s Kp, Ti, Td m b o tính n nh v ch t l ng c aố đả ả ổ đị à ấ ượ ủ
h th ng (theo Ziegler – Nichols).ệ ố
3) Xét n nh c a h th ng. Tìm các i m c c v i m không.ổ đị ủ ệ ố để ự àđể
4) Kh o sát ch t l ng, ch n các tham s v i các lu t i u khi n P, PI, PIDả ấ ượ ọ ố ớ ậ đề ể
m b o cho h th ng có ch t l ng t t nh t (ch nh nh b ng tay).đả ả ệ ố ấ ượ ố ấ ỉ đị ằ
5) Tính tham s t i u c a bé i u khi n PID dùng h m least – squares (saiố ố ư ủ đề ể à
s bình ph ng nh nh t) v i các tham s L v T ã cho trên.ố ươ ỏ ấ ớ ố à đ ở
ph n II/ Tính toán v i MatLabầ ớ
I/ Tính toán các tham s Kp, Ti, Td theo tiêu chu n Ziegler Nicholsố ẩ –
áp d ng b ng công th c th c nghi m c a Ziegler – Nichols:ụ ả ứ ự ệ ủ
Lu t i u khi nậ đề ể Kp Ti Td
P T/L

0
PI 0.9T/L 10L/3 0
PID 1.2T/L 2L 0.5L
V i các tham s ã cho: L/T = 0.9; T = 95 ớ ốđ

L=85.5
Thay v o b ng trên ta có:à ả
Lu t i u khi nậ đề ể Kp Ti Td
P 1.111

0

PI 1 285 0
PID 1.333 171 42.75
II/ Phân tích h th ng v i các tham s ch n theo ph ng pháp Ziegler ệ ố ớ ố ọ ươ –
Nichols v hi u ch nh b ng tayà ệ ỉ ằ
có th phân tích h th ng, ta c n khai tri n Taylor khâu tr eĐể ể ệ ố ầ ể ễ
-Ls
, l y 3 sấ ố
h ng u l chính xác. Vi c khai tri n n y ®ù¬c th c hi n nh MatLab quaạ đầ à đủ ệ ể à ự ệ ờ
h m x p x Pade:à ấ ỉ
Ch ng trình MatLab nh sau:ươ ư
>> [ts,ms]=pade(85.5,3)
ts =
-1.0000 0.1404 -0.0082 0.0002
1
ms =
1.0000 0.1404 0.0082 0.0002
>> wtre=tf(ts,ms)
Transfer function:
-s^3 + 0.1404 s^2 - 0.008208 s + 0.000192

s^3 + 0.1404 s^2 + 0.008208 s + 0.000192
1/ Kh o sát h th ng v i lu t i u khi n t l P:ả ệ ố ớ ậ đề ể ỉ ệ
>> T=95;L=85.5;
>> [ts,ms]=pade(L,3)
ts =
-1.0000 0.1404 -0.0082 0.0002
ms =
1.0000 0.1404 0.0082 0.0002
>> wdt=tf(ts,ms)*tf(1,[T 1])
Transfer function:

-s^3 + 0.1404 s^2 - 0.008208 s + 0.000192

95 s^4 + 14.33 s^3 + 0.9201 s^2 + 0.02645 s + 0.000192
>> Kp=T/L
Kp =
1.1111
>> wkinp=feedback(Kp*wdt,1)
Transfer function:
-1.111 s^3 + 0.1559 s^2 - 0.00912 s + 0.0002133

95 s^4 + 13.22 s^3 + 1.076 s^2 + 0.01733 s + 0.0004053
>> step(wkinp)
>> nyquist(wkinp)
>> pzmap(wkinp)
>> [p,z]=pzmap(wkinp)
p =
-0.0628 + 0.0722i
-0.0628 - 0.0722i
-0.0068 + 0.0205i
-0.0068 - 0.0205i
z =
0.0430 + 0.0410i
0.0430 - 0.0410i
0.0543
2
c tính quá Đặ độ
c tính t n sĐặ ầ ố
th i m không, i m c cĐồ ị để để ự
*Nh n xét: ậ
- Các i m c c u n m bên trái tr c o nên h th ng n nh.để ự đề ằ ụ ả ệ ố ổ đị

- quá i n khi n Độ để ể
max
δ
= 39%
- Th i gian t ng t c (Rise time): 54.1sờ ă ố
3
- Th i gian quá (Settling time): 573s.ờ độ
*Hi u ch nh có c tính quá t t h n: cho Kp = 0.3ệ ỉ để đặ độ ố ơ
>> Kp = 0.3;
>> wkinp = feedback(Kp*wdt,1)
Transfer function:
-0.3 s^3 + 0.04211 s^2 - 0.002462 s + 5.76e-005

95 s^4 + 14.03 s^3 + 0.9622 s^2 + 0.02398 s + 0.0002496
>> step(wkinp)
- Sau khi hi u ch nh có: ệ ỉ
+ quá i u ch nh Độ đề ỉ
max
δ
= 1.24%
+ Th i gian quá : 239 (s)ờ độ
+ Th i gian t ng t c: 112 (s)ờ ă ố
2/ Kh o sát h th ng v i lu t i u ch nh t l – tích phân PIả ệ ố ớ ậ đề ỉ ỉ ệ
Ch ng trình Matlab:ươ
>> T=95; L=85.5
>> Kp=0.9*T/L;Ti=10*L/3;
>> [ts,ms]=pade(L,3)
ts =
-1.0000 0.1404 -0.0082 0.0002
ms =

1.0000 0.1404 0.0082 0.0002
>> wdt=tf(ts,ms)*tf(1,[T 1])
Transfer function:
-s^3 + 0.1404 s^2 - 0.008208 s + 0.000192

95 s^4 + 14.33 s^3 + 0.9201 s^2 + 0.02645 s + 0.000192
>> wpi=tf([Kp*Ti Kp],[Ti 0])
Transfer function:
285 s + 1

285 s
>> wkinpi=feedback(wdt*wpi,1)
Transfer function:
-285 s^4 + 39 s^3 - 2.199 s^2 + 0.04651 s + 0.000192

27075 s^5 + 3800 s^4 + 301.2 s^3 + 5.339 s^2 + 0.1012 s + 0.000192
4
>> step(wkinpi)
>> nyquist(wdt*wpi)
>> pzmap(wkinpi)
>> [p,z]=pzmap(wkinpi)
p =
-0.0618 + 0.0694i
-0.0618 - 0.0694i
-0.0073 + 0.0184i
-0.0073 - 0.0184i
-0.0021
z =
0.0430 + 0.0410i
0.0430 - 0.0410i

0.0543
-0.0035
c tính quá Đặ độ
c tính t n sĐặ ầ ố
5
th i m không - i m c cĐồ ị để để ự
* Nh n xét: ậ
- Các i m c c n m bên trái tr c o nên h th ng n nh.để ự ằ ụ ả ệ ố ổ đị
- quá i u ch nh: Độ đ ề ỉ
max
δ
= 0%
- Th i gian t ng t c (Rise time): 675sờ ă ố
- Th i gian quá (Settling time): 1500sờ độ
* Hi u ch nh t ch t l ng t t h n: cho Kp = 0.65; Ti = 110;ệ ỉ đểđạ ấ ượ ố ơ
>> Kp=0.65; Ti=110;
>> wpi=tf([Kp*Ti Kp],[Ti 0])
Transfer function:
71.5 s + 0.65

110 s
>> wkinpi=feedback(wdt*wpi,1)
Transfer function:
-71.5 s^4 + 9.385 s^3 - 0.4956 s^2 + 0.008392 s + 0.0001248

10450 s^5 + 1505 s^4 + 110.6 s^3 + 2.414 s^2 + 0.02951 s + 0.0001248
>> step(wkinpi)
Sau khi hi u ch nh ta có:ệ ỉ
- quá i u ch nh: Độ đ ề ỉ
max

δ
= 1.94%
- Th i gian quá : 286 (s)ờ độ
6
- Th i gian t ng t c: 148 (s)ờ ă ố
3/ Kh o sát h th ng v i lu t i u ch nh PID:ả ệ ố ớ ậ đề ỉ
Ch ng trình Matlab nh sau:ươ ư
>> L=85.5;T=95;Kp=1.2*T/L;Ti=2*L;Td=0.5*L;
>> [ts,ms]=pade(85.5,3)
ts =
-1.0000 0.1404 -0.0082 0.0002
ms =
1.0000 0.1404 0.0082 0.0002
>> wdt=tf(ts,ms)*tf(1,[T 1])
Transfer function:
-s^3 + 0.1404 s^2 - 0.008208 s + 0.000192

95 s^4 + 14.33 s^3 + 0.9201 s^2 + 0.02645 s + 0.000192
>> wpid=tf([Kp*Ti*Td Kp*Ti Kp],[Ti 0])
Transfer function:
9747 s^2 + 228 s + 1.333

171 s
>> wkin=feedback(wpid*wdt,1)
Transfer function:
-9747 s^5 + 1140 s^4 - 49.33 s^3 + 0.1871 s^2 + 0.03283 s + 0.000256

6498 s^5 + 3591 s^4 + 108 s^3 + 4.71 s^2 + 0.06566 s + 0.000256
>> step(wkin)
>> nyquist(wkin)

>> pzmap(wkin)
>> [p,z]=pzmap(wkin)
p =
-0.5235
-0.0060 + 0.0322i
-0.0060 - 0.0322i
-0.0102
-0.0069
z =
0.0430 + 0.0410i
0.0430 - 0.0410i
0.0543
-0.0117
-0.0117
7
c tính quá Đặ độ
c tính t n sĐặ ầ ố
th i m không - i m c cĐồ ị để để ự
* Nh n xét: ậ
8
- Các i m c c n m bên trái tr c o nên h th ng n nh, tuy nhiên do có 2 để ự ằ ụ ả ệ ố ổ đị
i m c c ph c liên h p n m sát tr c o nên d tr n nh nh .để ự ứ ợ ằ ụ ả độ ự ữổ đị ỏ
- quá i u ch nh: Độ đ ề ỉ
max
δ
=-250%
- Th i gian t ng t c: 108 (s)ờ ă ố
- Th i gian quá : 477 (s)ờ độ
*Hi u ch nh có c tính t t h n: Kp=0.7; Ti=110; Td=10ệ ỉ để đặ ố ơ
Ch ng trình MatLab:ươ

>> Kp=0.7; Ti=110;Td=10;
>> wpid=tf([Kp*Ti*Td Kp*Ti Kp],[Ti 0])
Transfer function:
770 s^2 + 77 s + 0.7

110 s
>> wkin=feedback(wpid*wdt,1)
Transfer function:
-770 s^5 + 31.07 s^4 + 3.787 s^3 - 0.3859 s^2 + 0.009038 s + 0.0001344

9680 s^5 + 1608 s^4 + 105 s^3 + 2.523 s^2 + 0.03016 s + 0.0001344
>> step(wkin)
c tính quá sau khi hi u ch nhĐặ độ ệ ỉ
- quá i u ch nh: Độ đ ề ỉ
max
δ
=1.57%
- Th i gian t ng t c: 224 (s)ờ ă ố
- Th i gian quá : 284 (s)ờ độ
III/ Mô hình hoá h th ng b ng Simulink:ệ ố ằ
B c 1/ V o Simulink mô hình hoá h th ng d i d ng s kh i nh sau:ướ à ệ ố ướ ạ ơđồ ố ư
B c 2/ N p tham s cho các khâu:ướ ạ ố
- Bé i u khi n PID: Các tham s Kp, Ki, Kdđề ể ố
9
- Khâu bão ho Saturation:à
+ Upper limit: 1.5
+ Lower limit: -1.5
- Khâu h n ch gia t c Rate Limiter:ạ ế ố
+ Rising slew rate: 1
+ Faling slew rate: -1

- Khâu tr Transport Delay:ễ
10
+ Time Delay: 85.5 ( ng v i L=85.5).ứ ớ
- Khâu h m truy n Transfer Fcn:à ề
+ Numerator: [1]
+ Denominator: [95 1]
- Ghi ch ng trình mô ph ng l i th nh file “BaiTapDai” trong th m c work ươ ỏ ạ à ư ụ
c a MatLab.ủ
B c 2/ Trong c a s Command Windows c a MatLab v o File ướ ử ổ ủ à

New


M-file

s hi n ra c a s so n th o. Trong c a s n y ta vi t các h m tính toán ẽ ệ ử ổ ạ ả ử ổ à ế à
tham s t i u cho bé i u khi n:ố ố ư đề ể
* H m th nh t:à ứ ấ
function e=yout_1(pid,model,tspan)
opt=simset('solver','ode5');
assignpid(pid);
[t,x,y]=sim(model,tspan,opt);
e=y-1;
Ghi l i h m n y th nh file: yout_1.mạ à à à
* H m th hai:à ứ
function assignpid(pid)
assignin('base','Kp',pid(1));
assignin('base','Ki',pid(2));
assignin('base','Kd',pid(3));
11

Ghi l i h m n y th nh file: assignpid.mạ à à à
* H m th ba:à ứ
function pid = lsqpid(pid0,model,tspan)
options=foptions;
options=[1 0.01 0.01];
pid=leastsq('yout_1',pid0,options,[],model,tspan);
Ghi l i h m n y th nh file: lsqpid.mạ à à à
B c 3/ Tr v c a s Command Windows vi t ch ng trình:ướ ở ề ử ổ ế ươ
>> Kp=0.7; Ti=110;Td=10;Ki=Kp/Ti;Kd=Kp*Td;
>> pid0=[Kp Ki Kd];
>> pid=lsqpid(pid0,'BaiTapDai',[0 5000])
Warning: The function LEASTSQ is obsolete and has been replaced by
LSQNONLIN. LEASTSQ will be removed in a future release of the
Optimization Toolbox. Update your code to call LSQNONLIN to
suppress this warning message. See "Converting your code to
Version 2 Syntax" in the Optimization Toolbox User's Guide
for more information.
> In C:\ChuongTrinhUngDung\Matlab\toolbox\optim\leastsq.m at line 53
In C:\ChuongTrinhUngDung\Matlab\work\lsqpid.m at line 4
f-COUNT RESID STEP-SIZE GRAD/SD LAMBDA
4 2.02681 1 -0.0534
10 2.00227 1 0.00408 1.03732
17 2.00085 1.32 2.44e-007 0.518662
24 2.0005 1.37 -9.51e-009 0.219114
30 2.00048 1.12 -1.22e-010 0.103279
Optimization Terminated Successfully
pid =
0.7757 0.0071 12.8041
* K t qu ch ng trình cho ta tham s tính toán t i u thu c:ế ả ươ ố ố ư đượ
Kp = 0.7757; Ki = 0.0071; Kd = 12.8041

B c 4/ Quay l i Simulink nháy v o Scope ta thu c c tính quá c a ướ ạ à đượ đặ độ ủ
h th ng v i tham s tính toán t i u tìm c:ệ ố ớ ố ố ư đượ
- quá i u khi n: Độ đề ể
max
δ
=1.65%
- Th i gian quá : 241(s)ờ độ
12
K t Lu nế ậ
Các tham s t i u c a bé i u khi n PID ng v i i t ng ã cho l :ố ố ư ủ đề ể ứ ớ đố ượ đ à
Kp = 0.7757
Ki = 0.0071
Kd = 12.8041
ứng v i các tham s n y, c tính quá thu c c a h th ng l t t nh t.ớ ố à đặ độ đượ ủ ệ ố à ố ấ
13

×