TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA CÔNG NGHỆ TỰ ĐỘNG

Đồ án :

LÝ THUYẾT ĐIỀU KHIỂN TỰ ĐỘNG
SV thực hiện

:

Nguyễn Hữu Ngọ

Gv hướng dẫn

:

Ths. Phạm Thị Hương Sen

Số thứ tự
Lớp

:

43

:

Đ2_CNTĐ

Hà nội, 11/2009

Khoa Công Nghệ Tự Động
Đề tài : Cho hệ thống có sơ đồ:
x

e

u

W PID(P)

y

W ĐT(P)

_

Đối tượng là khâu quán tính bậc 1 có trễ :
e −Tp
Tp + 1
Bộ điều khiển PID có hàm truyền đạt :

1
+ Td p )
Ti p

WPID ( p ) = K p (1 +

Với Kp ,Ti ,Td có thể xác định được.
Yêu cầu :
1. 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
Zigler – Nichol.
2. Xét tính ổn định của hệ thống tìm các điểm cực và điểm không.
3. Khảo sát chất lượng và chọn các tham số với các quy 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 bằng tay).
4. Tính tham số tối ưu của bộ điều khiển PID dùng hàm Least-Quares(sai số bình phương bé
nhất).
Với các tham số τ và T cho trước : T = 45; τ/T = 0.6

e −27 p
45 p + 1
Với T = 45; τ/T = 0.6 ta có :
Đối tượng là khâu quán tính bậc 1 có trễ :
Bộ ĐK/ Tham số

Kp

TI

T/τ

0

PI

0.9 T/τ

τ/0,3

0

PID

1,2 T/τ

0,5 τ

P

TD

A;) 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
Zigler – Nichol.

x

e

K

u

W ĐT(P)

y

_

ngobanvn@gmail.com

Lớp : D2_TDH

2

Trường Đại Học Điện Lực
Phương pháp này thay bộ điều khiển PID trong hệ kín bằng bộ khuyếch đại , sau đó tăng K cho đến
khi hệ nằm ở biên giới ổn định tức hệ kín trở thành khâu dao động điều hoà, lúc đó Kgh, và chu kỳ
dao động Tgh. Tham số chọn ở bảng:
Kp

TI

P

0.5*Kgh

0

PI

0.45*Kgh

1
* Tgh
1.2

0

PID

0.6*Kgh

0.5*Tgh

0.125*Tgh

Bộ ĐK/ Tham số

TD

Ta xác định Kgh va Tgh ; bằng matlap;
>> T=45; t=0.6*T; n=3;
>> [a,b] = pade(t,n);
>> Wtr

= tf(a,b);

>> W1 = tf(1,[T 1]);
>> sys = Wtr*W1;
>> rlocus(sys);%ve qui dao nghiem
>> [k,p] = rlocfind(sys)
Select a point in the graphics window
Root Locus
0.8

0.6

0.4

Imaginary Axis

0.2

0

-0.2

-0.4

-0.6

-0.8
-0.5

0

0.5

1

1.5

2

Real Axis

SV: Nguyễn Hữu Ngọ

3

Khoa Công Nghệ Tự Động
selected_point =
-0.0053 + 0.0671i
k=
2.6963
p=
-0.1980 + 0.2660i
-0.1980 - 0.2660i
-0.0054 + 0.0673i
-0.0054 - 0.0673i
>> [Gm,Pm,Wg,Wp] = margin(k*sys) % dự trử biên pha
Gm =

% dự trử biên

1.2201
Pm =

% dự trử pha

25.6988
Wg =

% tần số đảo pha

0.0696
Wp =

% tần số cắt biên

0.0556
>> Tgh = 2*pi/Wg
Tgh =
90.2191
>> Kp = 1.61778;
>> Ti = 45.1;
Kp
>> Ki =
= 0.035951;
Ti
>> Td = 11.3;
ngobanvn@gmail.com

Lớp : D2_TDH

4

Trường Đại Học Điện Lực
>> Kd = Kp*Td = 18.200025;
>> s = tf('s');
>> Wpid = (Kp+(Ki/s)+Kd*s);
>> Who = Wpid* W1* Wtr;
>> W = feedback(Who,1);
>> Step(W);
Step Response
1.2
1

System: W
Peak amplitude: 1.09
Overshoot (%): 8.83
System:At
Wtime (sec): 58.7
Rise Time (sec): 40.6

0.8
0.6

System: W
Settling Time (sec): 143

Amplitude

0.4
0.2
0
-0.2
-0.4
-0.6
-0.8

0

20

40

60

80

100

120

140

160

180

200

Time (sec)

Ta thấy
T. gian tăng(Rise time) = 40.6;
T. gian quá độ(Settling time) = 143;
Vọt lố(Overshoot) = 8.38;
Sai số xác lập(Steady-state err.)
một hệ thống đáp ứng không có vọt lố, thời gian tăng trưởng nhanh và không tồn tại sai số xác lập.
thì hệ ấy đảm bảo chất lượng;
nên ta hiệu chỉnh làm sao sai số xác lập là nhỏ nhất . và độ vọt lố giảm, thời gian tăng trưởng nhanh
.
ta điều chỉnh một lượng nhỏ 3 thông số KP, KD và KI để được đáp ứng tốt hơn.
>> % ta chon cac thong so 1 luong nho
>> Kp = 1.7999;
>> Wpid = (Kp+(Ki/s)+Kd*s);
SV: Nguyễn Hữu Ngọ

5

Khoa Công Nghệ Tự Động
>> Who = Wpid* W1* Wtr;
>> W = feedback(Who,1);
>> Step(W);
Step Response
1.2
System: W
Peak amplitude: 1.16
Overshoot (%): 16.4
At time (sec): 58.3
System: W
Rise Time (sec): 39.3

1
0.8
0.6

System: W
Settling Time (sec): 130

Amplitude

0.4
0.2
0
-0.2
-0.4
-0.6
-0.8

0

20

40

60

80

100

120

140

160

180

Time (sec)

T. gian tăng(Rise time) = 39.3
T. gian quá độ(Settling time) = 130
Vọt lố(Overshoot) = 16.4
Sai số xác lập(Steady-state err.)
Ta thấy thời gian tăng (Rise time) giảm 39.3, nhưng Vọt lố(Overshoot) lại tăng 16.4, thời gian tăng
trưởng giảm, T. gian quá độ(Settling time) = 130 giảm .
>> Ki = 0.035951;Kd = 18.200025; Kp = 1.9999;
>> Wpid = (Kp+(Ki/s)+Kd*s);
>> Who = Wpid* W1* Wtr;
>> W = feedback(Who,1);
>> Step(W);

ngobanvn@gmail.com

Lớp : D2_TDH

6

Trường Đại Học Điện Lực
Step Response
1.5

System: W
System: W
Peak amplitude: 1.25
Rise Time (sec): 38.1
Overshoot (%): 24.8
At time (sec): 56.8

1

System: W
Settling Time (sec): 112

Amplitude

0.5

0

-0.5

-1

0

20

40

60

80

100

120

140

160

180

Time (sec)

T. gian tăng(Rise time) = 38.1
T. gian quá độ(Settling time) = 112
Vọt lố(Overshoot) = 24.8
Sai số xác lập(Steady-state err.)
>> Ki = 0.025951;
>> Wpid = (Kp+(Ki/s)+Kd*s);
>> Who = Wpid* W1* Wtr;
>> W = feedback(Who,1);
>> Step(W);

SV: Nguyễn Hữu Ngọ

7

Khoa Công Nghệ Tự Động
Step Response
1.2
System: W
Peak amplitude: 1.17
Overshoot (%): 17.1 System: W
At time (sec): 55.7
Settling Time (sec): 181
System: W
Rise Time (sec): 38.4

1
0.8
0.6

Amplitude

0.4
0.2
0
-0.2
-0.4
-0.6
-0.8

0

50

100

150

200

250

300

350

400

450

500

Time (sec)

T. gian tăng(Rise time) = 38.4
T. gian quá độ(Settling time) = 181
Vọt lố(Overshoot) = 17.1
Sai số xác lập(Steady-state err.)
>> Kd = 22.200025;
>> Wpid = (Kp+(Ki/s)+Kd*s);
>> Who = Wpid* W1* Wtr;
>> W = feedback(Who,1);
>> Step(W);

ngobanvn@gmail.com

Lớp : D2_TDH

8

Trường Đại Học Điện Lực
Step Response
1.5

System: W
Settling Time (sec): 169

System:
System:
W W
Rise Time
Peak (sec):
amplitude:
36 1.18
Overshoot (%): 17.8
At time (sec): 51.3

1

Amplitude

0.5

0

-0.5

-1

0

50

100

150

200

250

Time (sec)

T. gian tăng(Rise time) = 36
T. gian quá độ(Settling time) = 169
Vọt lố(Overshoot) = 17.8
Sai số xác lập(Steady-state err.)
Ta thấy hàm có thời gian tăng trưởng nhanh , không có sai số xác lập, vọt lố giảm
>> Kd =17.225;
>> Wpid = (Kp+(Ki/s)+Kd*s);
>> Who = Wpid* W1* Wtr;
>> W = feedback(Who,1);
>> Step(W);

SV: Nguyễn Hữu Ngọ

9

Khoa Công Nghệ Tự Động
Step Response
1.2
System: W
Peak amplitude: 1.17
Overshoot (%): 17.3
At time (sec): 55.8
System: W
Rise Time (sec): 39

1
0.8
0.6

System: W
Settling Time (sec): 185

Amplitude

0.4
0.2
0
-0.2
-0.4
-0.6
-0.8

0

50

100

150

200

250

300

350

0.2

0.4

Time (sec)

B;) Xét tính ổn định của hệ thống tìm các điểm cực và điểm không.
>> pzmap(W)
Pole-Zero Map
0.2

0.15

0.1

Imaginary Axis

0.05

0

-0.05

-0.1

-0.15

-0.2
-1

-0.8

-0.6

-0.4

-0.2

0

Real Axis

>> [p,z] = pzmap(W)
p=
ngobanvn@gmail.com

Lớp : D2_TDH

10

Trường Đại Học Điện Lực
-0.8169
-0.0253 + 0.0803i
-0.0253 - 0.0803i
-0.0798
-0.0123
z=
0.1362 + 0.1300i
0.1362 - 0.1300i
0.1720
-0.1012
-0.0149
C;) Khảo sát chất lượng và chọn các tham số với các quy 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 bằng tay).
đối với hệ ban đầu chưa có tham số điều khiển P,PI,PID.
>> T=45; t=0.6*T; n=3;
>> [a,b] = pade(t,n);
>> Wtr = tf(a,b);
>> W1 = tf(1,[T 1]);
>> sys = Wtr*W1;
>> W = feedback(sys,1);
>> step(W);
Step Response
0.6
System: W
System:Peak
W amplitude: 0.577
Rise Time
(sec): 25.7
Overshoot
(%): 15.4

0.5

System: W
Settling Time (sec): 146

At time (sec): 76.9

Amplitude

0.4

0.3

0.2

0.1

0

-0.1

0

50

100

150

200

250

Time (sec)

vì vậy với tín hiệu vào đơn vị thì giá trị ngõ ra la 0.5

SV: Nguyễn Hữu Ngọ

11

Khoa Công Nghệ Tự Động
thời gian tăng trưởng khoảng 25.7s, thời gian quá độ khoảng 146s. Vọt lố 15.4. Vậy ta cần thiết kế
bộ điều khiển nhằm làm giảm thời gian tăng trưởng và thời gian quá độ, đồng thời triệt tiêu sai số
xác lập
Việc hiệu chỉnh phù hợp 3 thông số KP, KI và KD sẽ làm tăng chất lượng điều khiển. Ảnh hưởng
của 3 thông số này lên hệ thống như sau:
Đ. ứng vòng
kín(C.L. response)

T. gian
tăng(Rise time)

Vọt
lố(Overshoot)

T. gian quá
độ(Settling time)

KP
KI
KD

Giảm
Giảm
Ít thay đổi

Tă ng
Tăng
Giảm

Ít thay đổI
Tăng
Giảm

Sai số xác
lập(Steady-state
err.)
Tă ng
Không xác định
Thay đổi ít

Như bảng phân tích phía trên, thành phần Kp làm giảm thời gian tăng trưởng, tăng độ vọt lố và làm
giảm sai số xác lập. Hàm truyền hệ kín của hệ trên với bộ điều khiển tỉ lệ là:
>> Kp = 3;
>> Wp = Kp;
>> Who = Wtr*W1*Wp;
>> W = feedback(Who,1);
>> step(W);
Step Response
1.6
1.4

System: W
Peak amplitude: 1.49
Overshoot (%): 98.2
At time (sec): 64.1

1.2

Amplitude

1
System: W
Settling Time (sec): 1.58e+003

System: W
Rise Time (sec): 13.1

0.8
0.6
0.4
0.2
0
-0.2

0

500

1000

1500

2000

2500

Time (sec)

Ta thấy thời gian tăng trưởng nhanh 13.1. nhưng vọt lố tăng 98.2 thời gian quá độ cũng tăng nên hệ
kém ổn định :
Ta giảm Kp
>> Kp = 1.5;
>> Wp = Kp;
>> Who = Wtr*W1*Wp;
ngobanvn@gmail.com

Lớp : D2_TDH

12

Trường Đại Học Điện Lực
>> W = feedback(Who,1);
>> step(W);
Step Response
0.9
0.8
System: W
Peak amplitude: 0.811
Overshoot (%): 35.2
System:
AtW
time (sec): 70.3
Rise Time (sec): 19.9

0.7
0.6

System: W
Settling Time (sec): 195

Amplitude

0.5
0.4
0.3
0.2
0.1
0
-0.1

0

50

100

150

200

250

300

Time (sec)

Đồ thị trên cho thấy bộ điều khiển tỉ lệ làm giảm cả thời gian tăng trưởng lẫn sai số xác lập nhưng
lại làm tăng độ vọt lố,
Bộ điều khiển tỉ lệ - tích phân PI
Trước khi khảo sát bộ PID, ta hãy xét một bộ PI. Theo bảng trên, thành phần Ki làm giảm thời gian
tăng trưởng và triệt tiêu sai số xác lập. Đối với hệ trên, hàm truyền hệ kín khi có bộ điều khiển PI
là:
>> % chon Kp tang len
>> Kp = 1.998;Ki = 0.0256;
>> s = tf('s');
>> Wpi = (Kp + Ki/s);
>> Who = Wtr*W1*Wpi;
>> W = feedback(Who,1);
>> step(W);

SV: Nguyễn Hữu Ngọ

13

Khoa Công Nghệ Tự Động
Step Response
1.4
System: W
Peak amplitude: 1.4
Overshoot (%): 39.8
At time (sec): 75.5
System: W
Rise Time (sec): 21.1

1.2

1

System: W
Settling Time (sec): 363

Amplitude

0.8

0.6

0.4

0.2

0

-0.2

0

50

100

150

200

250

300

350

400

450

500

Time (sec)

thời gian tăng trưởng nhanh hơn 21.1. nhưng độ vọt lố tăng lên 39.8; thời gian quá độ tăng lên 363.
Ta tăng thành phần Kp vì bộ điều khiển tích phân cũng làm giảm thời gian tăng trưởng và làm tăng
độ vọt lố (tác động kép). Đồ thị trên cho thấy bộ điều khiển tích phân đã triệt tiêu sai số xác lập.
Bộ điều khiển PID
Xét bộ PID, hàm truyền hệ kín khi có bộ điều khiển PID;
>> Kp = 1.998; Ki = 0.0256; Kd = 30;
>> Wpid = (Kp + Ki/s + Kd*s);
>> Who = Wtr*W1*Wpid;
>> W = feedback(Who,1);
>> step(W);

ngobanvn@gmail.com

Lớp : D2_TDH

14

Trường Đại Học Điện Lực
Step Response
1.5

System: W
Rise Time (sec): 31.6

1

System: W
Settling Time (sec): 209

Amplitude

0.5

0

-0.5

-1

-1.5

-2
0

50

100

150

200

250

300

350

Time (sec)

>> Kp = 1.7793;Ki = 0.0213;Kd = 17.5445;
>> Wpid = (Kp + Ki/s + Kd*s);
>> Who = Wtr*W1*Wpid;
>> W = feedback(Who,1);
>>step(W);

Step Response
1.2
1

System: W
Peak amplitude: 1.04
Overshoot
System:
W (%): 4.37
AtTime
time (sec):
54.8
Rise
(sec): 40.6

0.8
0.6

System: W
Settling Time (sec): 196

Amplitude

0.4
0.2
0
-0.2
-0.4
-0.6
-0.8

Ta thấy

0

50

100

150

200

250

300

350

400

450

Time (sec)

SV: Nguyễn Hữu Ngọ

15

Khoa Công Nghệ Tự Động
T. gian tăng trưởng (Rise time) tăng 31.6, không có lọt vố T. gian quá độ(Settling time) tăng lên
209.
vậy ta cần hiệu chỉnh cho thời gian tăng trưởng nhanh. Độ vọt lố tối thiểu.. Không tồn tại sai số hệ
thống.
Tính bộ tham số tối ưu của bộ điều khiển PID dùng hàm Least-Quares(sai số bình phương bé nhất).
Ta co mo hinh simulink

Kp
hien thi
khoi 1

Ki
nguon

dia chi 1

khoi 2

1

1
s

45 s+1

tich phan

trang thai bh

bo han che

ham

ham tre

1
ra

dia chi
Kd
khoi 3

du /dt
dao ham

Ta đánh các lệnh sau
function [Kp,Ki,Kd] = ng_pro
baicuango;
pid0 = [0.889 0.015951 0.009];
options = optimset('LargeScale','off','Display','iter',...
'TolX',0.0001,'TolFun',0.0001);
pid = lsqnonlin(@ngo_pr, pid0, [], [], options);
Kp = pid(1); Ki = pid(2); Kd = pid(3);
function F = ngo_pr(pid)
Kp = pid(1);
Ki = pid(2);
Kd = pid(3);
simopt = simset('solver','ode5',...
'SrcWorkspace','Current');
[tout,xout,yout] = sim('baicuango',[0 100],simopt);
F = yout-1;
end
end

sau đó ta thực hiện lệnh ta được kết quả
>> [Kp,Ki,Kd] = ng_pro
Directional
Iteration Func-count Residual Step-size derivative Lambda
0
4
42.5698
1
11
42.4494
1
0.00432
42.4447
2
18
42.4494
1
8.73e-006
21.4154
3
27
42.4494
3.14 -7.13e-007
11.1016
4
35
42.4493
2.22 -2.75e-010
1.52327
5
43
42.4492
1.65
-1.1e-006
0.473249
6
50
42.4492
1.22 -2.94e-006
0.177382
7
57
42.4492
0.0929
3.41e-007 0.0765399
8
64
42.4492
0.444 -6.53e-008 0.0765624
9
71
42.4492
0.157 -7.12e-008 0.0306064
ngobanvn@gmail.com

Lớp : D2_TDH

16

Trường Đại Học Điện Lực
10
78
42.4492
0.157
1.1e-007 0.00957799
11
88
42.4492 0.00629
9.87e-008 0.00957874
12
96
42.4492
0.124
1e-007 0.00996699
13
105
42.4492
0.0139
1.34e-007 0.00996794
14
112
42.4492
0.258
1.33e-007 0.0101424
15
121
42.4492
0.0153
1.3e-007 0.0101428
Optimization terminated: directional derivative along
search direction less than TolFun and infinity-norm of
gradient less than 10*(TolFun+TolX).
Kp =
1.7503
Ki =
0.0192
Kd =
17.5437

SV: Nguyễn Hữu Ngọ

17

Sign up to vote on this title
UsefulNot useful