Professional Documents
Culture Documents
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.
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:
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 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.
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.