Algoritmo para el control del pid

10
ALGORITMO PARA EL CONTROL DEL PID El PID, es sus distintas versiones constituye la solución mas aceptada en los problemas de control en la industria. Se calcula que el 95% de controladores industriales analógicos o digitales, constituyen el algoritmo del PID. Se puede decir que el PID es el regulador natural por excelencia. Comportándose como un ser racional ante una toma de decisión: tomando en cuenta el estado actual (proporcional), la historia pasada (integral) y un pronóstico del futuro (derivada) del error o desviación del comportamiento deseado. El PID discreto tiene dos formas principales conocidas como posicional y de velocidad. La ecuación 4.1 ofrece la forma posicional del algoritmo PID discreto: u( t )=Kp [ e( t )+ Tc Ti i=1 t e( i )+ Td Tc [ e ( t )−e ( t1 ) ] ] +u( 0 ) 4.1 Donde: u(t)-variable de control, generalmente posición de una válvula. u(0) es la posición inicial. Kp, Ti y Td-Ganancia, tiempo integral y tiempo derivativo. Tc-periodo de control. La forma de velocidad del PID discreto se obtiene fácilmente a partir de (4.1), calculando u(t) menos u(t-1), con lo que se llega a: Δu ( t )=Kp [ ( e ( t )−e( t1 ) )+ Tc Ti e ( t )+ Td Tc ( e ( t )−2 e ( t1 )+e ( t2 )) ] 4.2 Donde

Transcript of Algoritmo para el control del pid

Page 1: Algoritmo para el control del pid

ALGORITMO PARA EL CONTROL DEL PID

El PID, es sus distintas versiones constituye la solución mas aceptada en los problemas de control en la industria. Se calcula que el 95% de controladores industriales analógicos o digitales, constituyen el algoritmo del PID.

Se puede decir que el PID es el regulador natural por excelencia. Comportándose como un ser racional ante una toma de decisión: tomando en cuenta el estado actual (proporcional), la historia pasada (integral) y un pronóstico del futuro (derivada) del error o desviación del comportamiento deseado.

El PID discreto tiene dos formas principales conocidas como posicional y de velocidad.

La ecuación 4.1 ofrece la forma posicional del algoritmo PID discreto:

u( t )=Kp[e( t )+ TcTi∑i=1t

e( i)+TdTc

[e (t )−e ( t−1)] ]+u(0 )4.1

Donde:

u(t)-variable de control, generalmente posición de una válvula. u(0) es la posición inicial.

Kp, Ti y Td-Ganancia, tiempo integral y tiempo derivativo.

Tc-periodo de control.

La forma de velocidad del PID discreto se obtiene fácilmente a partir de (4.1), calculando u(t) menos u(t-1), con lo que se llega a:

Δu( t )=Kp[(e( t )−e (t−1 ))+TcTi e ( t )+TdTc (e ( t )−2e( t−1 )+e ( t−2))]4.2

Donde

Δu ( t )=u ( t )−u( t−1) 4.3

O

u( t )=u( t−1)+Δu ( t ) 4.4

A continuación se dan algunos comentarios del tema:

Page 2: Algoritmo para el control del pid

-El algoritmo posicional requiere el chequeo de la sumatoria correspondiente al modo integral para evitar saturación. En velocidad no se requiere este chequeo, pero por otra parte hay que establecer los límites a los incrementos de la variable de control.

-En el algoritmo posicional se requiere el conocimiento de la posición inicial del actuador. En el de velocidad, si el actuador es de tipo incremental, como por ejemplo un motor de pasos, no se requiere conocer la posición inicial. Si por otra parte, se utiliza un algoritmo de velocidad asociado a un actuador posiscional, entonces de todas formas se requiere la posición inicial para poder efectuar el cálculo (4.4).

-El algoritmo posicional mantiene el significado intuitivo de los parámetros Kp, Ti yTd semejante al de los reguladores PID analógicos, conocidos tradicionalmente en la industria. En el caso del algoritmo de velocidad, el significado de dichos parámetros se desvirtúa.

-El algoritmo de velocidad trabaja con la segunda derivada del error, lo cual es inconveniente en presencia de ruido y, por otra parte, puede dar lugar a un comportamiento imprevisto e inadmisible como por ejemplo, que se mande a cerrar una válvula cuando el error esta aumentando, requiriéndose lo contrario.

En resumen se recomienda el algoritmo de posición, aun cuando requiere un cuidado especial con la sumatoria, para evitarse lo que se conoce como desborde (wind up) del nodo integral. El algoritmo de velocidad debe utilizarse cuando los actuadores son de tipo incremental, por ejemplo, motores de pasos.

Versión profesional del algoritmo PID

Un algoritmo PID verdaderamente profesional es el que puede trabajar de forma confiable ante las condiciones reales, incluye una serie de detalles que son obviados en ocasiones y que pueden marcar la diferencia entre un buen y un mal comportamiento. Se presenta a continuación una versión que ha sido probada exhaustivamente en la práctica con buenos resultados:

u( t )= RuBp [en ( t )−Td Δy ( t )Tc Ry ]+ Int ( t )

4.5

Donde:

Ru = umax – umin – Rango del actuador. A menudo 1-100%.

Ry = ymax – y min – Rango del transmisor con que se mide la variable en unidades fisicas. Por ejemplo: 0 – 100 grad. C, 4.2 – 20 Kgs./cm2, etc.

Page 3: Algoritmo para el control del pid

en (t )=y rf ( t )− y f ( t )

R y 4.6

Es el error normalizado

yrf(t) – Valor de referencia, eventualmente filtrado mediante un filtro exponencial de primer orden.

yf(t) – Valor de la salida filtrada.

Bp – Banda proporcional. Se relaciona con la ganancia mediante Kp = Ru/Bp. En muchas ocaciones Kp=100/Bp.

Int ( t )=Int ( t−1)+TcRuTiBp

en ( t )4.7

Int (0 )=u(0 ) 4.8

Int(t) representa al modo integral en el algoritmo PID. Su calculo separado mediante la expresión (4.7) permite, por una parte, inicializar este término con la posición del actuador, de manera que el modo integral es el que garantiza el nivel de la señal de control, pudiendo considerarse los modos P y D como desviaciones de este nivel. Por otra parte, el cálculo separado del modo integral, permite chequear en cada periodo que su valor este dentro del rango de control, evitándose los problemas asociados a la saturación del modo integral (integral wind up).

Nótese que en la expresión (4.5) del algoritmo se utiliza el incremento de la salida Δy ( t )en lugar del incremento del error. Este es un recurso conocido para evitar el llamado golpe de la derivada cuando se realiza un cambio brusco del valor de referencia y rf que puede provocar oscilaciones innecesarias. Considérese, por ejemplo:

e ( t )= yrf ( t )− y ( t ) 4.9

e ( t−1)= yrf ( t−1)− y ( t−1 ) 4.10

Si la referencia permanece constante, es decir yrf(t) = yrf(t-1), entonces:

Δe( t )=−Δy( t ) 4.11

Sea en este caso el uso del negativo del incremento de la salida es perfectamente equivalente al del incremento del error para conformar el modo derivativo del PID. No obstante, si se produce un cambio de la referencia, tendremos que:

Δe( t )=−Δy( t )+Δyrf ( t ) 4.12

Page 4: Algoritmo para el control del pid

A diferencia del cambio en la salida, que por naturaleza es lento dada la dinámica del proceso, el cambio de la referencia es inmediato y bresco, lo cual significa que el incremento del error y por ende la componente derivativa del regulador también cambian bruscamente. Este es precisamente el efecto desestabilizador que se pretende evitar cuando se sustituye al incremento del error por el incremento de la salida en el modo derivativo.

La variable u(t) generalmente se encuentra en un rango normalizado en la computadora (10-100) ó (0-1). Después, en el convertidor D/A se transforma en una señal normalizada, p.ej. de 4 a 20 ma. Si el convertidor de salida es de 12 bits y el rango interno de u(t) es 0-100, el valor de entrada al convertidor, se calcula mediante la expresión:

usal=u ( t )100

x40954.13

Es necesario tener en cuenta dos detalles que a menudo se confunden y que sin embargo tienen un tratamiento distinto. El primero consiste en el signo de la ganancia del proceso. Si este signo es positivo, es decir, a un aumento de la variable de control corresponde un aumento de la salida, entonces el signo de Bp(o de Kp) en el PID debe escogerse positivo. En caso contrario, es decir, cuando la ganancia del proceso es negativa, debe entonces escogerse Bp negativo y se obtiene el comportamiento estable deseado.

El segundo aspecto a tomar a consideración es la naturaleza de válvula de control. La expresión (4.13) es valida en el caso de que la válvula sea normalmente cerrada (acción directa) que es lo mas frecuente. Existen casos en la practica, de válvulas normalmente abierta (acción inversa), que cierran a medida que aumentan la señal de control. En este caso, el valor que debe entregarse al convertidor es:

usal=4095 x (1- u( t )100 )4.14

Cualquier regulador digital y en particular los PID, deben tener al menos 3 modos de operación: 1-Respaldo (back-up), 2-Manual y 3-Automático.

En el modo de respaldo, el regulador solo recibe las mediciones y el control se ejerce mediante otro dispositivo externo. La salida del regulador no esta físicamente conectada a la entrada del proceso.

Page 5: Algoritmo para el control del pid

En el modo manual, desde el regulador se puede actuar sobre la válvula cerrándola o abriéndola. Es frecuente que para este fin se utilicen 2 teclas, una de incremento y otra de decremento.

En el modo automático, el regulador digital asume la función de control, calculando el valor de la variable de control mediante la expresión (4.5) u otra similar.

Deben tomarse unas previsiones en la inicialización y cambio del modo de un regulador digital PID sise requiere un comportamiento suave y libre de saltos bruscos, a continuación detallamos las más importantes:

Cuando se pasa del modo respaldo al modo manual, debe hacerse el valor Int(0) = u(0). Esto puede hacerse automáticamente si se mide la variable de control u(t) o manualmente, leyendo el valor de u(t) que tiene el equipo de respaldo e insertándolo en la computadora.

El paso de modo manual a automático puede lograrse en una forma suave, sise hace y rf (0) = y(0) en el momento de transito. De esta forma el regulador “ve” inicialmente un error igual a cero y no se producen saltos. Posteriormente la referencia puede ser llevada suavemente al valor deseado.

Si estando en el modo automático se pasa a manual y se hacen algunas operaciones de apertura o cierre de válvula, estos cambios deben reflejarse en el termino Int(t) del regulador PID, de manera que cuando se regrese al modo automático, el valor de la integral coincida con la posición de la válvula en ese momento.

Filtraje de variables

Para el buen funcionamiento de los reguladores PID o cualquier otro algoritmo de control digital, se requiere el filtraje de las variables controladas, de manera que en ruido presente no provoque un comportamiento excesivamente oscilatorio en el control. Independientemente de los filtros de hardware existentes, en general es conveniente el uso de dos tipos de filtros por software:

filtro para ruidos de alta frecuencia (inducción electromagnética, ruidos térmicos, etc.) filtro para ruidos de frecuencia media y baja (ruidos en el proceso, variaciones en la

composición de los materiales, falta de homogeneidad de los mismos, etc.)

Page 6: Algoritmo para el control del pid

Para el filtrado de ruidos de alta frecuencia, generalmente se usa promediación de varias réplicas de la medición en cada periodo de muestreo. El periodo de muestreo o de medición en cualquier sistema de control digital puede ser fijo y tan pequeño como sea posible.

Para el filtraje de ruidos de media y baja frecuencia, se parte del concepto de periodo de control, que puede coincidir con el periodo de muestreo, aunque generalmente en un múltiplo de este. Lo definimos como el intervalo de tiempo que transcurre entre 2 acciones sucesivas de control. Llamamos Tm y Tc a los periodos de muestreo y de control respectivamente, en la figura 4.1 se representa esquemáticamente las relaciones entre ambos periodos.

Figura 4.1

La expresión del filtro de ruidos de baja y media frecuencia es:

y f ( t )=αym( t )+(1−α ) y f ( t−1) 4.15

Donde α es un valor real en el intervalo 0 – 1. yf(t) y yf(t-1) son los valores filtrados en los periodos de muestreo t y t-1 respectivamente, ym(t) es el valor medio del periodo en t.

La expresión (4.15) puede ser expresada mediante:

y f ( t )=α∑i=0

t

(1−α )i ym( t−i)4.16

De la ecuación (4.16) se hace evidente el efecto del filtro exponencial como el de una ventana decreciente exponencialmente que se mueve sobre las mediciones y que le atribuye un peso decreciente a las mediciones mas lejanas en el tiempo. Si consideramos convencionalmente que un peso menor que 0.01 es prácticamente despreciable, la longitud efectiva de esa ventana puede deducirse como sigue:

α (1−α )i=0 .01 4.17

Page 7: Algoritmo para el control del pid

log α+i log(1−α )=−2 4.18

i≈−(2+ log α )log(1−α ) 4.19

Por ejemplo para α=0.6, el valor efectivo de las ventanas es de 5 mediciones.

Si en la expresión (4.15) introducimos el operador de retardo z -1, podemos obtener la función de transferencia del filtro exponencial de la siguiente manera:

y f ( t ) [1−(1−α ) z−1]=αym( t ) 4.20

y f ( t )ym( t )

= α

1−(1−α) z−1 4.21

Cuando z →1 se obtiene:

y f ( t )ym( t )

=14.22

O sea, que el filtrado converge al valor de la medición si este se mantiene constante durante u número suficientemente alto de períodos de muestreo.

Es importante tener en cuenta que el filtraje de las mediciones introduce un retardo adicional en el lazo de control, cuyo efecto crece a medida que el parámetro α es menor. Por otra parte se conoce que el efecto pernicioso del ruido es más notable sobre el modo derivativo en un regulador PID. Debe existir entonces un compromiso entre el filtraje de la señal y el retardo introducido que tiende a hacer inestable al lazo de control. Una buena solución parece ser trabajar con 2 valores diferentes del coeficiente de filtraje, uno mayor para los modos P e I y otro más pequeño para el modo D.

Page 8: Algoritmo para el control del pid

y f 1=α 1 ym( t )+(1−α1 ) y f 1( t−1 ) 4.23

y f 2=α 2 ym( t )+(1−α2 ) y f 2 (t−1 ) 4.24

El error de regulación en el tiempo t que se utiliza para los modos P e I, se calcula:

e ( t )= yrf ( t )− y f 1( t ) 4.25

Y el valor de Δy(t) para el modo derivativo es entonces:

Δy ( t )= y f 2 ( t )− y f 2 ( t−1) 4.26

La elección de los valores concretos del coeficiente α, debe hacerse en cada caso particular según la siguiente heurística: para períodos de control largos (100 o mas períodos de muestreo) y señales ruidosas, se seleccionan valores pequeños de α (0.1 menores). En situaciones intermedias (Tc ≤ 5Tm) y señales filtradas por hardware, usualmente pueden escogerse valores de α < 0.4. En última instancia, en cada lazo de control debe ajustarse experimentalmente el valor