You are on page 1of 7

Regulacin automtica. Tema 1. Implementacin digital de controladores PID. Roberto Sanchis.

Tema 1. Implementacin digital de


controladores PID.
1. Definicin.
Hoy en da prcticamente el 100% de los controladores automticos que funcionan en la industria son
digitales. El siguiente esquema representa un sistema de control digital, tambin llamado control por
computador:
Computador

r(kT) e(kT) u(kT) u(t) y(t)


Controlador Proceso
Retenedor
digital continuo

ym(kT) y (t) y(t)


m
Sensor

El computador obtiene una medida del sensor cada T segundos, y calcula con ella el valor de la accin de
control (u(kT)). El bloque retenedor no es ms que un convertidor digital analgico, que da como salida
una tensin u(t) constante hasta el siguiente periodo.

y(t)
o o o
o o o o o

0 T 2T 3T 4T 5T 6T 7T t
u(t)
u(T) u(5T)

u(2T) u(6T)

T 2T 3T 4T 5T 6T 7T t
Ventajas del control por computador respecto del control analgico:
Permite comunicacin en red (control centralizado).
Incorpora otras funciones
- Monitorizacin
- Almacenamiento de variables (generacin de informes)
- Tratamiento de alarmas
- Supervisin

1
Regulacin automtica. Tema 1. Implementacin digital de controladores PID. Roberto Sanchis.

Es mucho ms flexible
Permite controladores ms avanzados que requieren clculos complejos:
- Controladores adaptativos.
- Control basado en lgica borrosa.
- Sistemas expertos.
- Controladores no lineales.
Son equipos comerciales estndar
Cada vez son ms baratos y ms potentes.

El controlador digital se implementa fsicamente como un algoritmo programado en el computador,


que obtiene la secuencia de valores u(k) a partir de la secuencia de valores e(k). Una posibilidad es una
ecuacin en diferencias lineal (funcin de transferencia discreta) entre la seal e(k) y la seal u(k). Otra
posibilidad es un algoritmo de control por realimentacin del estado, que se explicar ms adelante.

2. Discretizacin de controladores PID continuos.


Para poder implementar en un computador un controlador PID continuo (diseado por ejemplo mediante
el lugar de las races), es necesario obtener una ecuacin en diferencias discreta a partir de la ecuacin
diferencial continua que define el controlador. Se llama discretizacin a la accin de obtener una
ecuacin en diferencias (controlador discreto) que aproxime el comportamiento de una ecuacin
diferencial (controlador continuo).

La ecuacin diferencial de un regulador PID continuo es:


de 1 t 1
u (t ) = K p e(t ) + Td

+
dt Ti e( )d
0
C ( s) = K p 1 + Td s +


Ti s
La aproximacin discreta consiste en aproximar la ecuacin diferencial anterior obteniendo u(kT) a partir
de los valores de e(t) en los periodos de muestreo (es decir, a partir de e(T), e(2T), etc.).
La aproximacin ms fcil de la derivada es:
de(kT ) e(kT ) e((k 1)T )

dt T
Mientras que la integral se puede aproximar como:
k 1
e(t ) dt e( jT ) T
kT
0
j =0
De esta forma se tendra:
e(kT ) e((k 1)T ) K pT k 1
u (kT ) K p e(kT ) + K pTd
T
+
Ti
e( jT )
j =0
es decir
ek ek 1 K pT k 1
u k K p ek + K pTd
T
+
Ti
e
j =0
j

Se puede obtener una expresin ms compacta restando uk-uk-1:


ek 1 ek 2 K pT k 2
uk 1 K p ek 1 + K pTd
T
+ ej
Ti j = 0
e e e +e
uk uk 1 K p (ek ek 1 ) + K pTd k k 1 k 1 k 2
T
K T
+ p ek 1
Ti
que se puede poner como:
uk = uk 1 + q0ek + q1ek 1 + q2ek 2
donde:

2
Regulacin automtica. Tema 1. Implementacin digital de controladores PID. Roberto Sanchis.

T
q0 = K p 1 + d
T
T T
q1 = K p 1 + 2 d
Ti T
T
q2 = K p d
T
El procedimiento de discretizacin de controladores PID descrito anteriormente se basa en la
aproximacin de la integral y de la derivada continuas. Esta misma idea se puede aplicar a una funcin
de transferencia continua arbitraria (controlador o filtro). Para ello se sustituye el operador 1/s de Laplace
por una expresin en la variable z que representa la integral aproximada. Hay distintos mtodos en
funcin de la aproximacin utilizada. El procedimiento prctico consiste en sustituir la variable de
Laplace s por una funcin de z, obteniendo as una f.d.t. discreta. Los mtodos ms utilizados son:

Aproximacin de rectngulo anterior.


( k 1)T
Tz 1 1 z 1
kT
1
ydt
0
ydt + T y((k 1)T )
0

s 1 z 1
s
Tz 1
Aproximacin de rectngulo posterior. Tambin llamada aproximacin de la derivada.
( k 1)T
1 z 1
kT
1 T
ydt
0
ydt + T y(kT )
0
s

1 z 1
s
T
dy y ( kT ) y (( k 1)T ) 1 z 1
s
dt T T
Aproximacin trapezoidal.
( k 1)T 1 1
( y((k 1)T ) + y (kT )) 1 T (1 + z1 ) s 2(1 z 1)
kT
T
ydt
0
ydt +
0
2 s 2(1 z ) T (1 + z )
Por ejemplo, el PID discreto se obtendra sustituyendo la variable s en C(s) por una de las funciones
anteriores:
q0 + q1 z 1 + q2 z 2
C ( z ) = C ( s ) s = f ( z ,T ) =
1 z 1
que representa una ecuacin idntica a la obtenida anteriormente ( uk = uk 1 + q0ek + q1ek 1 + q2ek 2 ).

3. Implementacin digital de controladores PID.


La implementacin de un controlador digital en un sistema electrnico basado en microprocesador (sea
un computador, un autmata o un microcontrolador) se basa en la ejecucin peridica de una rutina que
realiza el clculo de la ecuacin en diferencias que define el controlador.
La ejecucin peridica se consigue por medio de una interrupcin asociada a un temporizador.
La rutina de interrupcin realiza las siguientes operaciones:
1. Leer el valor de la entrada (variable de salida del proceso).
2. Calcular o leer el valor de la referencia.
3. Calcular la accin de control segn la ecuacin en diferencias del controlador.
4. Actualizar la salida (variable de entrada al proceso).

La parte fundamental del programa que implementa el controlador es, por lo tanto, el punto 3.
Considrese la ecuacin en diferencias de un controlador PID discretizado (obtenido a partir de un PID
continuo por discretizacin aproximada):
uk = uk 1 + q0ek + q1ek 1 + q2ek 2
La rutina de interrupcin que implementa este controlador puede ser:

3
Regulacin automtica. Tema 1. Implementacin digital de controladores PID. Roberto Sanchis.

y=entrada analgica 1;
r=entrada analgica 2; // ( ref=variable interna)
e0=r-y;
u=u+q0*e0+q1*e1+q2*e2;
if (u>umax) then u=umax;
if (u<umin) then u=umin;
salida analgica=u;
e2=e1;
e1=e0;

En el programa anterior las variables e1 y e2 se utilizan para memorizar los valores de los errores en
periodos anteriores.

La comparacin de la accin de control con los valores mximo y mnimo es necesaria para evitar el
WIND-UP del integrador. Si la accin de control se sale del rango admisible (se satura) y no se limita su
valor en el programa, sta puede crecer mucho sin verse reflejado en una accin sobre el proceso (por la
saturacin del actuador), lo que se traduce en una respuesta con una sobreoscilacin enorme.

El inconveniente de esta forma de implementacin es que es muy sensible al redondeo de los parmetros
q0, q1, q2, especialmente si el periodo de muestreo es pequeo. Considrese como ejemplo un PID con los
siguientes parmetros:
Td
q0 = K p 1 + T = 4 + 100 = 104

Kp = 4
T = 2ms T T
Td = 0.05 q1 = K p 1 + 2 d = 4 + 0.04 200 = 203.96
Ti = 0.2 Ti T
T
q2 = K p d = 100
T
Se observa que el efecto de Ti sobre el valor final de los parmetros es muy pequeo. Si el parmetro q1 se
redondea en el segundo decimal ese redondeo afecta mucho al tiempo integral del controlador
implementado. Por ejemplo si se toma q1= 203.98 esto implica un valor Ti=0.4, o si se toma q1= 204
esto significa un tiempo integral infinito. Se concluye que esta forma de implementacin puede dar
problemas prcticos, especialmente si se implementa en un procesador de coma fija (con una resolucin
finita en los nmeros que utiliza).

Para solucionar este problema es ms recomendable calcular por separado el trmino derivativo y el
integral (realizacin en paralelo), es decir, si se utiliza la aproximacin de la derivada (o rectngulo
posterior):
1 z 1
de s= 1 z 1
D(t ) = K pTd D( s) = K pTd s
D( z ) = K pTd
T

dt T
ek ek 1
Dk = K pTd = q D (ek ek 1 )
T
1 z 1
Kp t Kp s= K pT
I (t ) =
Ti ed
0
I ( s) =
Ti s
I ( z ) =
T
Ti (1 z 1 )

K pT
I k = I k 1 + ek = I k 1 + q I ek
Ti
de K p t
u (t ) = K p e(t ) + K pTd +
dt Ti ed = K
0
p e(t ) + D(t ) + I (t ) u k = K p ek + Dk + I k

4
Regulacin automtica. Tema 1. Implementacin digital de controladores PID. Roberto Sanchis.

El algoritmo que implementa esta idea sera:


y=entrada analgica 1;
r=entrada analgica 2; // ( ref=variable interna)
e0=r-y;
D=qd*(e0-e1);
I=I+qi*e0;
u=Kp*e0+D+I;
if ((u>umax)|(u<umin)) I=I-qi*e0;
if (u>umax) then u=umax;
if (u<umin) then u=umin;
salida analgica=u;
e1=e0;
La diferencia respecto de la implementacin directa es que el anti-windup se debe aplicar al trmino
integral, que ahora se calcula aparte, ya que es ste el que puede inflarse y hacerse muy grande si la
accin de control satura. La solucin es impedir que el trmino integral cambie si la accin de control est
saturada.

El controlador anterior es el PID bsico. Sobre este PID se pueden hacer algunas modificaciones para
mejorar la respuesta. De hecho algunas modificaciones no son simplemente opcionales, sino que son
absolutamente necesarias para que el controlador funcione bien en la prctica. Es el caso del filtrado de la
derivada. Otras, como la ponderacin de la referencia en los trminos proporcional y derivativo son
opcionales. La expresin en transformada de Laplace del PID quedara con estas modificaciones como:
K pTd s K Ts K
U ( s ) = bK p R( s ) K pY ( s ) + c R( s ) p d Y ( s ) + p ( R( s ) Y ( s ))
T T Ti s
1+ d s 1+ d s
N N
(1 z 1 )
donde sustituyendo por s = se obtendra la expresin discreta en transformada Z. sta queda
T
de la forma:

U ( z) =
(p0 ) ( )
+ p1 z 1 + p2 z 2 R( z ) q0 + q1 z 1 + q2 z 2 Y ( z )

1
Td
( )
z 1 1 z 1
Td + NT
es decir:
uk = a0uk 1 + a1uk 2 + p0 rk + p1rk 1 + p2 rk 2 q0 yk q1 yk 1 q2 yk 2
donde
Td Td
a0 = 1 + ; a1 =
Td + NT Td + NT
La implementacin de este controlador PID se podra hacer de forma similar al anterior, solo que habra
que almacenar r0, r1, r2, y0, y1, y2, u0, u1, y la ecuacin del controlador sera:
u0=a0*u0+a1*u1+p0*r0+p1*r1+p2*r2-q0*y0-q1*y1-q2*y2;
if (u0>umax) then u0=umax;
if (u0<umin) then u0=umin;
salida analgica=u0;
r2=r1;
r1=r0;
y2=y1;
y1=y0;
u1=u0;

El inconveniente es que tal y como se ha explicado antes esta implementacin es muy sensible al
redondeo de los coeficientes.

5
Regulacin automtica. Tema 1. Implementacin digital de controladores PID. Roberto Sanchis.

Se puede hacer el controlador ms robusto frente a los redondeos si se calculan de forma separada los
distintos trminos (proporcional, derivativo e integral) y despus se suman. Partiendo de la transformada
de Laplace del PID:
K pTd s K
U ( s ) = K p (bR( s ) Y ( s ) ) + (cR( s ) Y ( s ) ) + p (R( s ) Y ( s ) )
T Ti s
1+ d s
N
(1 z 1 )
y sustituyendo por s = se obtiene la expresin discreta en transformada Z:
T
K pTd N K pT
(1 z 1 )
T + NT
U ( z ) = K p (bR( z ) Y ( z ) ) + d (cR( z ) Y ( z ) ) + (R ( z ) Y ( z ) )
Ti
1
1
Td
z 1 1 z
Td + NT
Calculando cada trmino por separado se tendra el algoritmo:
Dk = pd Dk 1 + qd (crk crk 1 yk + yk 1 )
I k = I k 1 + qi (rk yk )
uk = K p (brk yk ) + Dk + I k
donde los coeficientes son:
Td K pTd N K pT
pd = ; qd = ; qi =
Td + NT Td + NT Ti
2 1 z 1
Si se utiliza otra aproximacin (como la integral de trapecio, s = ) la expresin que sale es
T 1 + z 1
similar, pero con valores diferentes para los coeficientes pd, qd, y qi.

La rutina que implementa el algoritmo anterior es:


y0=entrada analgica 1;
r0=entrada analgica 2; ( ref=variable interna)
D=pd*D+qd(c*r0-c*r1-y0+y1);
I=I+qi*(r0-y0);
u=Kp*(b*r0-y0)+D+I;
if ((u<umin)&(e<0))|((u>umax)&(e>0)) then I=I-qi*(r0-y0);
if (u<umin) u=umin;
if (u>umax) u=umax;
salida analgica=u;
r1=r0;
y1=y0;

El cdigo
if ((u<umin)&(e<0))|((u>umax)&(e>0)) then I=I-qi*(r0-y0);
es necesario para evitar el WIND-UP del integrador. Si la accin de control satura en el mismo sentido
que el error, el trmino integral no debe actualizarse, por lo que se deja como estaba al principio de la
rutina. No basta con dejar de integrar cuando la accin de control satura, porque puede darse el caso
(aunque no es muy habitual) de que el error sea positivo (e>0) y de que la parte proporcional y derivativa
de la accin de control sea menor que umin, con lo que si no se deja el integrador funcionar, nunca se
corregir el error. Esto puede suceder si se pondera la referencia con un factor b bajo.

6
Regulacin automtica. Tema 1. Implementacin digital de controladores PID. Roberto Sanchis.

El anti-windup se puede realizar tambin condicionando la actualizacin del trmino integral a la


condicin negada utilizada en el algoritmo anterior. De esta forma el cdigo resultante es ms compacto,
y aunque no es exactamente equivalente, en la prctica funciona igual de bien. El algoritmo quedara:
y0=entrada analgica 1;
r0=entrada analgica 2; ( ref=variable interna)
D=pd*D+qd(c*r0-c*r1-y0+y1);
if ((u>umin)|(e>0))&((u<umax)|(e<0)) then I=I+qi*(r0-y0);
u=Kp*(b*r0-y0)+D+I;
if (u<umin) u=umin;
if (u>umax) u=umax;
salida analgica=u;
r1=r0;
y1=y0;

You might also like