Sie sind auf Seite 1von 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) Controlador digital u(kT) Retenedor

u(t)

Proceso continuo

y(t)

y (kT) m

y (t)
m

y(t)
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 t

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

2T

3T

4T

5T

6T

7T

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

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 u (t ) = K p e(t ) + Td dt + T i

e( )d
0

1 C ( s) = K p + + 1 T s d 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:

De esta forma se tendra:

kT

e(t ) dt e( jT ) T
j =0

k 1

u (kT ) K p e(kT ) + K pTd


es decir

e(kT ) e((k 1)T ) K pT + T Ti


ek ek 1 K pT + T Ti

e( jT )
j =0

k 1

u k K p ek + K pTd
uk 1 K p ek 1 + K pTd

e
j =0

k 1

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

ek 1 ek 2 K pT k 2 + ej T 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:

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

T q0 = K p 1 + d T T Td q1 = K p 1 + T 2 T i 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.
kT ( k 1)T

ydt
0

ydt + T y((k 1)T )


0

1 1 z 1 Tz 1 s s 1 z 1 Tz 1

Aproximacin de rectngulo posterior. Tambin llamada aproximacin de la derivada.


kT

ydt
0

( k 1)T

ydt + T y(kT )
0

T 1 1 z 1 s s T 1 z 1
1 z 1 T

dy y ( kT ) y (( k 1)T ) dt T
Aproximacin trapezoidal.
kT

ydt
0

( k 1)T

ydt +
0

1 1 T ( y((k 1)T ) + y (kT )) 1 T (1 + z1 ) s 2(1 z 1) 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:

C ( z ) = C ( s ) s = f ( z ,T ) =

q0 + q1 z 1 + q2 z 2 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:

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:

Kp = 4 Td = 0.05 Ti = 0.2

Td q0 = K p 1 + T = 4 + 100 = 104 T Td T = 2ms q1 = K p 1+ T 2 T = 4 + 0.04 200 = 203.96 i 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):

de D(t ) = K pTd dt

D( s) = K pTd s Dk = K pTd

D( z ) = K pTd

s=

1 z 1 T

1 z 1 T

I (t ) =

Kp Ti

ed
0

ek ek 1 = q D (ek ek 1 ) T 1 z 1 s= Kp K pT T I ( s) = I ( z ) = Ti s Ti (1 z 1 )
K pT Ti
p

I k = I k 1 +
t

ek = I k 1 + q I ek

u (t ) = K p e(t ) + K pTd

de K p + dt Ti

ed = K
0

e(t ) + D(t ) + I (t ) u k = K p ek + Dk + I k

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:

U ( s ) = bK p R( s ) K pY ( s ) + c

K pTd s K Ts K R( s ) p d Y ( s ) + p ( R( s ) Y ( s )) T T Ti s 1+ d s 1+ d s N N

donde sustituyendo por s = de la forma:

(1 z 1 ) se obtendra la expresin discreta en transformada Z. sta queda T

U ( z) =

(p

+ p1 z 1 + p2 z 2 R( z ) q0 + q1 z 1 + q2 z 2 Y ( z ) Td 1 1 1 T + NT z 1 z d

es decir:

uk = a0uk 1 + a1uk 2 + p0 rk + p1rk 1 + p2 rk 2 q0 yk q1 yk 1 q2 yk 2


donde

a0 = 1 +

Td Td + NT

; a1 =

Td 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.

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:

U ( s ) = K p (bR( s ) Y ( s ) ) +

K pTd s K ( cR( s ) Y ( s ) ) + p (R( s ) Y ( s ) ) T Ti s 1+ d s N

y sustituyendo por s =

(1 z 1 ) se obtiene la expresin discreta en transformada Z: T K pTd N K pT (1 z 1 ) T + NT Ti ( (R ( z ) Y ( z ) ) U ( z ) = K p (bR( z ) Y ( z ) ) + d cR( z ) Y ( z ) ) + 1 Td 1 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:

pd =

Td Td + NT

; qd =

K pTd N Td + NT

; qi =

K pT Ti

Si se utiliza otra aproximacin (como la integral de trapecio, s =

2 1 z 1 ) 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.

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;

Das könnte Ihnen auch gefallen