Professional Documents
Culture Documents
1.
Reguladores Clsicos
u
R
+
+
e
K
i
i de
u = K e + K i edt + K d
dt
i
p
K ip
100
K ip
K ii
i
p
i
i
Kdi
e ( t ) dt
de ( t )
dt
u
+
[1.1]
Banda proporcional
: Ganancia integral (reset) [repeticiones/seg]
Banda Proporcional
umax [ % ]
Kp
umin [ % ]
emin [ %]
BP =
100
Kp
emax [ %]
Kp
Ti =
1
Kii
2Ti
3Ti
1 minuto
K ip
edt
de
dt
K dp
u
+
de
[1.2]
dt
Ojo con las unidades!
u = K pp e + K ip edt + K dp
de
dt
PID
edt
PID
PID
Variantes
+
r
r
PID
PI
u
+
D
u
+
PD
u = K ip e + K ii edt + K di
[1.3]
dt
U ( s ) = K ip E ( s ) + K ii E ( s ) + K di sE ( s )
s
U (s)
1
= K ip 1 + K ii + K di s [1.5]
E (s)
s
U (s)
E (s)
K ip ( K ii + s + K di s 2 )
s
[1.4]
[1.6]
Discretizacin
La mayora de los controladores son digitales.
T
+
=
k
e
uk
p k
Ti
ej +
j =0
Td
e
e
( k k 1 )
T
(1.7)
k -1
=
+
+
e
e
k
-1
k
-2
u k -1 k p e k -1 k i e j k d
(1.8)
j=0
u k b0 + b1 z + b2 z
=
ek
1 z 1
2
(1.10)
con
b0 = k p ( 1 + k i + k d
b1 = k p ( 1 + 2 k d
)
(1.11)
b2 = k p k d
Accin Proporcional
Accin ms intuitiva
Para error cero se tiene actuacin cero.
Puede tener error en rgimen estacionario
Alta ganancia, bajo sesgo o error
No introduce desplazamientos de fase (eso es bueno - se ver ms adelante)
Ejemplo: sea un sistema de primer orden
A
Y(s) =
U(s) (1.12)
1 + sT
Si se lo realimenta con un regulador P resulta
Kp A
K A
p
1+ K p A
1
+
s
Y(s) =
R(s) =
R(s) (1.13)
Kp A
1+ s
1+
1+ K p A
1 + s
1+ Kp A
Kp A
1+ Kp A
1
1+ Kp A
Ejemplo:
Ve , Qe
Qs
Tanque
Kp
+
+
u
BIAS
Caso 1:
Ve = 50% r = 50%
entonces
e = 0 z = 0 u = BIAS = 50% Ve = Vs
Qe = Qs
y=r
[1.15]
[1.16]
Caso 2:
Ve = 60%
[1.17]
y e z u
[1.18]
u = Ve = 60%
[1.19]
u = Ve = 60%
z = u BIAS = 10%
z
10
e=
=
0
Kp Kp
y = e+r =
[1.20]
10%
+ 50%
Kp
[1.21]
Para
K p = 1 y = 60% d = 10%
[1.22]
K p = 10
[1.23]
y = 51% d = 1%
El desplazamiento es proporcional a
1
Kp +1
Lazo Abierto
z
y
r
tiempo
Lazo Abierto
Lazo Abierto
%
z
y
r
y
r
tiempo
tiempo
%
z
tiempo
tiempo
Derivador Ideal
frecuencia
Kd
pasa
de f
bajos
dt
Derivador Ideal
pasa bajos
efecto total
fc
fc =
1 1
[ Hz ]
2
frecuencia
[1.24]
-y
KTds
250
200
Kp
Actuador
+
150
100
50
Ki
1/s
0
-50
50
100
150
200
250
300
350
400
450
500
e: curva roja
v: curva verde
u: curva azul
Se produce un retardo no deseado en la accin de control (de aproximadamente 170 segundos)
-y
KTds
Actuador
+
+
-
K/Ti
1/s
es
+
1
Ti
u
-y
KTds
Modelo
Actuador
+
+
-
K/Ti
1/s
es
+
1
Ti
u
100
80
60
40
20
-20
50
100
150
200
250
300
350
400
450
500
Comparacin
e: curva amarilla
v sin antiwindup: curva verde
u sin antiwindup: curva azul
u y v con antiwindup: curva violeta
350
300
250
200
150
100
50
0
-50
50
100
150
200
250
300
350
400
450
500
Kp
+
a
1
1
s +1
Ki
K
U ( s ) = K p 1 + i
s
1
Tm
1
s
y
PD
r
Manual
e
1
Tr
1
s
u
Auto
-
1
Tr
es
referencia
integral
ua
um
manual
automtico
Sea un PI
Ki
s
en forma digital,
I k +1 = I k + TK i ek
uak = K p ek + I k
CPI = K p +
referencia
integral
ua
um
manual
automtico
s1
s2
s1
=4
s2
Procedimiento:
Se utiliza un controlador solo P
Se cambia la referencia y se observa la respuesta
Se incrementa la ganancia proporcional hasta que se obtiene una oscilacin
Si la oscilacin crece, disminuir la ganancia o aumentarla si decrece.
Cuando la oscilacin es sostenida, se registra la ganancia del controlador K c ,
se la denomina ganancia crtica
Se mide tambin el perodo de la oscilacin Tc
Se calculan los parmetros de acuerdo a la tabla
Kp
Ki
0,5K c
PI
0,45K c
1,2
PID
0,6 K c
Kd
Tc
Tc
Tc
X
Y
L
a
L
K =Y
,a =
LY
TX
PID
Kp
Ki
1 TY
=
a LX
0,9 0,9TY
=
a
LX
1
3L
1, 2 1, 2TX
=
a
LY
1
2L
Kd
L
2
e
K
i
p
u
u
y
Planta
kc=
(1.30)
2bT
De acuerdo a esto, el regulador PID ser:
0.6 0.94
T
(1.31)
K=
=
2T
=
Ti
Td
2bT
bT
2
Interpretacin
1
G r(i c ) = 0.6 k c 1 + j cT d = 0.6 k c 1 +
cT i
= k c ( 0.6 + 0.26 j )
2
tc 2
j
0.12t c
2 t c (1.32)
tc
es un avance de 23
Generalizacin
sea la funcin de transferencia en lazo abierto
j( + p )
(1.33)
G p(j ) = r p e
queremos ubicar esta respuesta a una determinada frecuencia en un punto
B = r s e j( + s )
(1.34)
mediante un regulador
j
G r(j ) = r r e r (1.35)
Podramos hacer el diseo por el mtodo de mrgen de amplitud es decir que
para s= 0 la amplitud sea rs= 1 / Am siendo sta un mrgen de amplitud dado. Por
lo tanto se debe cumplir:
j( + s )
= r p r r e j( + p+ r ) (1.36)
rs e
entonces el regulador ser:
03 Reguladores Clsicos Nuevo.docx 38
rs
=
r
r
rp
(1.37)
= -
s
p
r
la ganancia proporcional es la parte real del regulador
r s cos( s - p )
(1.38)
k p=
rp
el ngulo estar dado por
1
= tan( s - p ) (1.39)
Td Ti
kp
1+ s T 1
(1.40)
regulador PI
1
Gr = K 1+
(1.41)
sT i
G p Gr
1+ G p G r
(1.42)
1 kp K kp K
+
= 0 (1.43)
s +s
+
T1 T1T i
T1
2
(1.44)
el regulador PI resulta
03 Reguladores Clsicos Nuevo.docx 40
K=
Ti=
2 T1-1
kp
2 T1-1
(1.45)
2 T 1
se puede hacer algo parecido para un sistema de 2do rden
A(z) = z 2 + a 1 z + a 2
B(z) = b1 z + b 2
(1.46)
regulador PI
S(z)
R(z)
R(z) = ( z - 1 ) R 1(z)
H r(z) =
(1.47)
S(z) = s 0 z 2 + s 1 z + s 2
R(z) = ( z - 1 ) ( z + r 1 )
(1.48)
( z 2 + a 1 z + a 2 )( z - 1 )( z + r 1 ) +
( b1 z + b 2 )( s 0 z 2 + s 1 z + s 2 ) = 0
(1.49)
(1.50)
donde
2
p 1 = - 2 e -h cos( h 1 - )
p2 = e
-2 h
(1.51)
Ejemplo:
G p(s) =
1
( 1 + s )( 1 + 0.26 s )
(1.52)
H p(z) =
0.0164 z + 0.0140
2
z - 1.583 z + 0.616
(1.53)
condicin de diseo:
= 0.5 = 4 = 1 (1.54)
P ser
03 Reguladores Clsicos Nuevo.docx 43
(1.55)
reemplazando
r 1 = - 0.407
s 0 = 6.74
s 1 = - 9.89
s 2 = 3.61
(1.56)
di
r
e
C
u +
+
G
CG
1
G
r+
do +
di
1 + CG
1 + CG
1 + CG
Si nos interesa solo la relacin entre salida y referencia,
CG
y=
r
1 + CG
y=
y = Fr + (1 F ) do + (1 F ) Gdi
Problemas:
(a) nunca el modelo es perfecto
(b) los actuadores se saturan
(c) un retardo no se puede invertir en forma exacta
(d) problemas matemticos de inversin
(e) problemas con plantas inestables
G
siendo G inv una aproximacin estable de la inversa de G
y F una condicin de diseo (filtro) para lograr determinadas propiedades en
lazo cerrado.
G intenta resolver el problema (c) y F los problemas (a), (b) y (d)
inv
G + F G G
G + F G G
G + F G G
1 F )
1 F )
(
(
FG inv G
y=
r+
do +
Gdi
1 + F Ginv G 1
1 + F Ginv G 1
1 + F Ginv G 1
suponiendo que
G inv G G inv G 1 [1.57]
Resulta
y Fr + (1 F ) do + (1 F ) Gdi
[1.58]
G (s) =
=
A ( s )
A ( s )
(s)
A
G inv ( s ) =
B e ( s ) Bi ( s )
[1.59]
s =0
1.3.2. Diseo de F
y Fr + (1 F ) do + (1 F ) Gdi
F es la respuesta deseada del sistema.
Para seguimiento de referencias:
- F rpida => respuesta rpida
- F lenta => respuesta lenta
Para rechazo de perturbaciones:
- F rpida => buen rechazo de perturbaciones
- F lenta => rechazo pobre
F=
( s + 1)
[1.60]
s
1 F G
s +1
2s + 1
2
2
s
+
2
s
+
1
1
1
+ 2s + 1
F
s
s
=
, Ginv ( s ) =
, F =
,C =
G (s) = 2
2
1
5s ( s + 2 )
F
5
s + 2s + 1
G
( s + 1)
0.9
0.9
0.8
0.8
0.7
0.7
0.6
0.6
Amplitude
Amplitude
Step Response
1
0.5
0.5
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
6
Time (sec)
10
12
10
12
Time (sec)
u
CPID
G =
s + 1
[1.62]
[1.63]
1
s + 1
,F =
G inv =
s +1
K
[1.64]
K ip
C = CPI = K +
s
eligiendo
1
p
K pp =
, Ki =
K
K
p
p
[1.65]
[1.66]
s + 1
1
CPI =
[1.67]
+
=
K Ks Ks
Resumen:
- encontrar y K
- elegir el controlador PI y
Recordar que con pequeos se obtiene
kp = tauh/beta/Kh;
ki = 1/beta/Kh;
kd = 0;
% se usa la aproximacin de Euler s=(q-1)/T
%ud(i)=ud(i1)+A*error(i)+B*error(i-1)
A = kp;
B = ki*T-kp
Tfin = 5;
t = 0:precision:T;
ref = 1;
y = zeros(size(t));
ly = length(t);
x0= zeros(1,1);
[xx yx]= size(x0);
yy = 0;
uu = 0;
ttt=0;
yd=zeros(Tfin/T,1);
ud=zeros(Tfin/T,1);
error=zeros(Tfin/T,1);
for i = 3:Tfin/T
% muestreo de la salida
yd(i) = y(length(y));
% Regulador
error(i)= ref-yd(i);
ud(i)=ud(i1)+A*error(i)+B*error(i-1);
% bloqueador de orden cero
ub = ud(i) * ones(size(t));
% Sistema
[y, tt, x0] =
lsim(Pss,ub,t,x0(length(x0),:));
% se guardan los valores de
entrada y salida
yy = [yy ; y(2:length(y))];
uu = [uu ;
ub(2:length(ub))'];
end;
figure(2)
plot([uu yy]);
10
9
8
7
6
5
4
3
2
1
0
100
200
300
400
500
600
1.4
1.2
0.8
0.6
0.4
0.2
100
200
300
400
500
u
G
la salida es
y=
QG
1 + Q G G
r+
1 QG
1 + Q G G
do
[1.68]
si el modelo es perfecto,
y = QGr + 1 QG d [1.69]
do
e
+
do
C
r
u
Q
do
e
C=
Q
1 QG
u
G
( )
Es muy intuitivo
do
e
Q
u
G
y = QGr + 1 QG d o
[1.71]
y = G 1Gr + 1 G 1G d o
G
G
y = r + 1 do
G
G
[1.72]
[1.73]
G
1 y r [1.74]
G
con Q = G 1 se obtiene el control perfecto
Problemas:
(f) nunca el modelo es perfecto
(g) los actuadores se saturan
(h) un retardo no se puede invertir en forma exacta
(i)problemas matemticos de inversin
(j)problemas con plantas inestables
1 FG inv G
FG inv G
y=
r+
do
1 + FGinv G G
1 + FGinv G G
[1.77]
suponiendo que
G inv G G inv G 1 [1.78]
resulta
y Fr + (1 F ) d o
[1.79]
(s)
A
G inv ( s ) =
B e ( s ) Bi ( s )
[1.81]
s =0
F=
( s + 1)
[1.83]
5
s
+ 2s + 1
, Ginv ( s ) =
, F =
, Q = FGinv =
G (s) = 2
2
2
5
s + 2s + 1
5 ( s + 1)
( s + 1)
[1.85]
0.9
0.9
0.8
0.8
0.7
0.7
0.6
0.6
Amplitude
Amplitude
Step Response
1
0.5
0.5
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
6
Time (sec)
10
12
10
12
Time (sec)
e
Q
u
G
u
CPID
1 QG
Con el diseo IMC se puede lograr un comportamiento PID si
- se controla con un PI un modelo de primer orden
- se controla con un PID un modelo de segundo orden
- se controla con un PID un modelo de primer orden con retardo
Ventajas del diseo de un PID va IMC:
- fcil obtener el modelo de los datos de planta (resp. escaln)
- se explicita la forma de la respuesta en lazo cerrado eligiendo F o
G =
s + 1
[1.87]
[1.88]
1
s + 1
,F =
G inv =
s +1
K
Q = FG [1.90]
[1.89]
inv
1 QG 1 FGinv G K s G s
[1.91]
en el caso de un PI paralelo
K ip
C = CPI = K +
s
eligiendo
p
p
[1.92]
1
p
, Ki =
[1.93]
K
K
dado , y K tenemos una forma sistemtica de ajustar el controlador.
1
s + 1
CPI =
[1.94]
+
=
K Ks Ks
K pp =
Resumen:
- encontrar y K
- elegir el controlador PI y
Recordar que con pequeos se obtiene
kp = tauh/beta/Kh;
ki = 1/beta/Kh;
kd = 0;
% se usa la aproximacin de Euler s=(q-1)/T
%ud(i)=ud(i1)+A*error(i)+B*error(i-1)
A = kp;
B = ki*T-kp
Tfin = 5;
t = 0:precision:T;
ref = 1;
y = zeros(size(t));
ly = length(t);
x0= zeros(1,1);
[xx yx]= size(x0);
yy = 0;
uu = 0;
ttt=0;
yd=zeros(Tfin/T,1);
ud=zeros(Tfin/T,1);
error=zeros(Tfin/T,1);
for i = 3:Tfin/T
% muestreo de la salida
yd(i) = y(length(y));
% Regulador
error(i)= ref-yd(i);
ud(i)=ud(i1)+A*error(i)+B*error(i-1);
% bloqueador de orden cero
ub = ud(i) * ones(size(t));
% Sistema
10
9
8
7
6
5
4
3
2
1
0
100
200
300
400
500
600
1.4
1.2
0.8
0.6
0.4
0.2
100
200
300
400
500
[1.95]
v
e
r
u
R
Objetivo:
encontrar los parmetros del regulador tal que minimicen el siguiente
funcional:
N
1 N
2
d 2
J ( ) =
E ( yk yk ) + ( uk ) [1.97]
2 N k =1
k =1
N k =1
k =1
y
u
El problema est en el clculo del gradiente, en realidad los trminos
y
llamando
RG0
1
T0 =
, S0 =
1 + RG0
1 + RG0
[1.100]
[1.101]
y = y y d =
RG0
1
r yd +
v
1 + RG0
1 + RG0
[1.102]
RG0
1
Td r +
y =
v [1.103]
1 + RG0
1 + RG0
G0 R
RG0 2 R
G0 2
y y
R
r
r
v
=
=
2
2
1 + RG0
(1 + RG0 ) (1 + RG0 )
[1.104]
y 1 R
R
R 1 R
T0 r T0 2 r T0 S0 v
r T0 2
r T0 S0
v =
= T0
R
[1.105]
T0 y S0 no son conocidas
se sabe que
T0 y = T0 2 r + T0 S0 v
[1.106]
[1.107]
R=
k p (1 + ki z 1 )
1
1 z
por ende
(1.112)
kp
R 1 + ki z 1 R
=
=
,
1
ki 1 z 1
k p
1 z
(1.113)
1 + ki z 1
1
k
k
p
1 z
y
p
1 z
y
y2 =
=
=
y
2
2
kp
k p (1 + ki z 1 )
+
1
1
k
1
(
)
1 + k z 1
1
1 z 1
1
1
1
k
z
+
( i)
i
k
p
u
u = u
=
(1.115)
2
2
1 (1 + ki )
1
k
z
+
1
1
1
( i)
(1.114)
N
J ( ) 1 N
u
d y
= ( y1k yk )
+ u1k
N k =1
k =1
(1.116)
Algoritmo:
1) Clculo del vector
2) Ensayo 1
3) Ensayo 2
4) Clculo de los gradientes
5) Clculo del gradiente
y
u
y
7) volver al paso 2)
Simulaciones
plot(yes);grid
0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
200
400
600
800
1000
1200
plot([ym ydd]);grid
1.4
1.2
1
0.8
0.6
0.4
0.2
0
-0.2
50
100
150
plot(j);grid
140
120
100
80
60
40
20
1.5
2.5
3.5
4.5
plot(th');grid
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
Cdigo
%Sistema
continuo
Bc= 1;
Ac=poly([-1 -2 -1]);
na=length(Ac)-1;
syscont = tf(Bc,Ac);
%Sistema en variables de estado
Pss = ss(syscont);
[a,b,c,d] = ssdata(Pss);
% y su respuesta al escaln ...
t = 0:0.01:10;
u = ones(size(t));
yes = lsim(syscont,u,t);
T=.2;
% Parmetros del regulador PID
kp = 0.05;
ki = 0;
%kp = 0.1522; % 56 it .001
%ki = 0.0470; % 56 it .001
kd = 0;
iter = 5;
j=zeros(1,iter);
th=zeros(2,iter+1);
th(:,1)=[kp;ki];
lambda=.0;
Tfin = 30;
precision= .02;
t = 0:precision:T;
ref = 1;
y = zeros(size(t));
ly = length(t);
nd = Tfin/T;
ed = zeros(nd,1);
ud1 = zeros(nd,1);
yd1 = zeros(nd,1);
ud2 = zeros(nd,1);
yd2 = zeros(nd,1);
ud3 = zeros(nd,1);
yd3 = zeros(nd,1);
ym = zeros(nd,1);
ydd = [];
var =.001;
gamma=.5;
% Clculo de La respuesesta del modelo
am=.5;
for i = 3:nd
ym(i) = am*ym(i-1)+ (1-am)*ref;
end;
for k = 1:iter
% Experimento 1
x0= zeros(1,na);
y = zeros(size(t));
yy = 0;
uu = 0;
int = 0;
for i = 3:nd
% Regulador
yy = [yy ; y];
uu = [uu ; u'];
end;
j(k)=(ym-yd1)'*(ym-yd1)+lambda* ud1'*ud1;
dydkp=yd2/kp;
dydki = zeros(nd,1);
for i = 3:nd
dydki(i) = 1/(1+ki)*dydki(i-1)+1/(1+ki)*yd2(i);
end;
dudkp=ud2/kp;
dudki = zeros(nd,1);
for i = 3:nd
dudki(i) = 1/(1+ki)*dudki(i-1)+1/(1+ki)*ud2(i);
end;
dydp=[dydkp';dydki'];
dudp=[dudkp';dudki'];
yt=yd1-ym;
djdp=(dydp*yt+lambda*dudp*ud1)/nd;
kp=kp-gamma*djdp(1);
ki=ki-gamma*djdp(2);
th(:,k+1)=[kp;ki];
ydd=[ydd yd1];
end
Referencias
1. Hkan Hjalmarsson, Michel Gevers, Svante Gunnarsson, Olivier Lequin,, Iterative
Feedback Tuning: Theory and Applications IEEE Control Systems Agosto
1998
2. G.C. Goodwin, S.F. Graebe, and M.E. Salgado. Control System Design. Prentice
Hall, 2001.
3. K. Astrom, B Wittenmark. Computer Controlled Systems. Prentice Hall, 1997.
4. strm, K., Hgglung: Automatic Tuning of PID Controllers, ISA 1988
5. Stephanopoulos