You are on page 1of 8

Thit k b iu khin PID

Thit K B iu Khin PID

Ziegler v Nichols a ra hai phng php thc nghim xc nh tham s b iu


khin PID.Phng php th nht dng m hnh xp x qun tnh bc nht c tr ca i
tng iu khin:
T

delay
G(s) ke
1 Ts

(1)

Phng php th hai khng cn n m hnh ton hc ca i tng nhng ch p dng


cho mt s lp i tng nht nh.
1. Phng php Zieger-Nichols th nht:
Phng php ny nhm xc nh cc tham s K P , K I , K D cho b iu khin PID trn c
s xp x hm truyn t thnh khu qun tnh bc nht (1) h kn nhanh chng v ch
xc lp v qu iu chnh khng qu 40%

c tnh ng hc:

y ta m phng vi gi thit xp x hm truyn ca h thng l:

Lu Nh Ha KT KSTN K50

Thit k b iu khin PID

G (s)

6.25 13.5s
e
12.5s 1

(Trn thc t cc thng s Tdelay , T , k c xc nh t c tnh ng hc ca h h)


Nu chn cc tham s cho b iu khin PID theo phng php Z-N -1 th ta c:
Kp
T
T .K
KP
0.1481 , K I
0.0055 , K D delay p 1
kTdelay
2Tdelay
2

2. Phng php Zieger-Nichols th hai:


Phng php Zieger-Nichols th hai
1( t )
_

G s

y( t )

Phng php ny thay b iu khin PID trong h kn bng b khuych i,sau tng k
cho n khi h nm bin gii n nh tc l h kn tr thnh khu dao ng iu
ha.Lc ta c Kgh v chu k ca dao ng l Tgh.Tham s cho b iu khin PID
chn theo bng sau:

Lu Nh Ha KT KSTN K50

Thit k b iu khin PID

B iu
khin
P
PI

Kp

Ti

Td

0,5*Kgh
0,45* Kgh

0
0

PID

0,6*Kgh

1
* Tgh
1.2
0,5*Tgh

0,125*Tgh

>> [num_delay,den_delay]=pade(13.5,3);
>> sys=tf(6.25,[12.5 1])*tf(num_delay,den_delay)
Transfer function:
-6.25 s^3 + 5.556 s^2 - 2.058 s + 0.3048
----------------------------------------------------12.5 s^4 + 12.11 s^3 + 5.004 s^2 + 0.9389 s + 0.04877
>> rlocus(sys);
>> [k,p]=rlocfind(sys)
Select a point in the graphics window
selected_point =
0.0000 + 0.1521i
k =
0.3438
p =
-0.3985
-0.3985
-0.0000
-0.0000

+
+
-

0.6092i
0.6092i
0.1523i
0.1523i

Lu Nh Ha KT KSTN K50

Thit k b iu khin PID

RootLocus

1.5

ImaginaryAxis

0.5

0.5

1.5

0.5

0.5

1.5

RealAxis

1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0.2

50

Lu Nh Ha KT KSTN K50

100

150

Thit k b iu khin PID


>>[Gm,Pm,Wg,Wp] = margin(k*sys)
Gm =
1.0006
Pm =
0.1256
Wg =
0.1523
Wp =
0.1521
>> Tgh=2*pi/Wg
Tgh =
41.2662

Chn tham s cho b iu khin PID ta c:


K
K p 0.6* Kgh 0.2063 , K I P 0.01 , K D K pTD 1.0640
TI

Lu Nh Ha KT KSTN K50

Thit k b iu khin PID

1.4
1.2
1
0.8
0.6
0.4
0.2
0

20

40

60

80

100

120

140

160

180

200

3. Phng php da vo iu kin ti u chun H 2 :

Ch tiu ti u l

e (t ) min
0

Lu Nh Ha KT KSTN K50

Thit k b iu khin PID

>>

function [Kp,Ki,Kd] = run_pid()


pid_model;
pid0 = [0.2063 0.01 1.0640];
options = optimset('LargeScale','off','Display','iter',...
'TolX',0.0001,'TolFun',0.0001);
pid = lsqnonlin(@pid_lsq, pid0, [], [], options);
[Kp Ki Kd] = pid;
function F = pid_lsq(pid)
[Kp Ki Kd] = pid;
simopt = simset('solver','ode45','SrcWorkspace','Current');
[tout,xout,yout] = sim('pid_model',[0 200],simopt);
F = yout-1;
end
end
[kp,ki,kd]=run_pid
Directional
Iteration Func-count
Residual
Step-size
derivative
0
4
5.81452
1
12
4.30085
1.25
-0.284
2
19
4.25474
0.948
-0.000296
3
27
4.24586
1.75
-1.05e-005
4
34
4.24396
1.01
-7.01e-008
5
42
4.24378
1.26
2.98e-009
6
49
4.24376
0.977
4.91e-010
7
56
4.24376
1.13
2.33e-010
8
63
4.24376
0.95
3.22e-011
Optimization terminated: directional derivative along
search direction less than TolFun and infinity-norm of
gradient less than 10*(TolFun+TolX).

Lambda
4.44604
1.79785
1.806
0.65562
0.655853
0.327926
0.327929
0.163964

kp =
0.1132
ki =
0.0118
kd =
0.8467

Lu Nh Ha KT KSTN K50

Thit k b iu khin PID

1.4
1.2
1
0.8
0.6
0.4
0.2
0

20

40

60

80

Lu Nh Ha KT KSTN K50

100

120

140

160

180

200

You might also like