control pid
TRANSCRIPT
CONTROL PID
Informática industrial
ITESM – CSF
Pablo Robles Gil
01016668
CONTENIDO
I. Introducción 3-6I.1 Principios TeóricosI.2 Acondicionamiento de la señal (linealización)
II. Fabricación del dispositivo 6-8
III. Programación 8-11III.1 Algoritmo
IV. Resultados 12-14
V. Análisis de resultados 14
VI. Conclusión 14-15
VII. Fuentes 15
2
I. Introducción
El objetivo de este proyecto es construir una máquina que, mediante componentes mecánicos y electrónicos, sea capaz de balancear una esfera sobre un riel y mantenerla estática sobre un punto predeterminado por el usuario.
Para lograr esto se construyó un dispositivo que utiliza un sistema de control de lazo cerrado tipo PID programado en un microcontrolador BS2.
En esta sección se describen los principios teóricos sobre los cuales se fundamenta el funcionamiento del dispositivo.
I.1 Principios Teóricos
Control de lazo cerrado.
Un sistema de control es un dispositivo o una serie de dispositivos utilizados para manipular, dirigir o regular el comportamiento o funcionamiento de otro dispositivo o conjunto de ellos.
El tipo mas simple de sistema de control es el de lazo abierto, en el cual el comportamiento del dispositivo manipulado no tiene efecto sobre el sistema que lo controla. Un ejemplo de esto es el interruptor de una lámpara. Este puede estar prendido o apagado y el hecho de que la lámpara brille o deje de hacerlo no tiene ninguna influencia sobre el interruptor.
En un proceso automatizado, el control de lazo abierto no es eficiente a menos que los factores que pueden alterar el proceso estén controlados y todos los parámetros del proceso estén perfectamente calibrados, ya que de lo contrario el sistema sale de control sin tener posibilidad de actuar en consecuencia.
Por otro lado un sistema de control de lazo cerrado tiene la capacidad de retroalimentarse con el fin de tomar acciones que lo mantengan en un estado predeterminado.
Esto se logra tomando muestras del estado del sistema. Estas muestras son comparadas con el estado predeterminado y en caso de diferir, el sistema actúa y corrige el sistema de manera que se alcance el estado deseado.
Control PID (Proporcional – integral - diferencial)
El tipo de control de lazo cerrado mas simple es el control on-off. Este consiste en un sistema que simplemente “actua” o “no actua” dependiendo de la posición del estado del sistema con respecto a un valor predeterminado. En el sistema on-off no importa la magnitud de la diferencia entre el estado y el valor predeterminado, sino solo la posición.
3
Un ejemplo de este tipo de sistema es un calentador de agua.
El usuario posiciona la perilla a cierta temperatura (valor predeterminado), el quemador del calentador se enciende y calienta el agua. Cuando esta alcanza la temperatura deseada el quemador se apaga y cuando esta baja de la temperatura deseada el quemador vuelve a encenderse.
Fig. 1. Comportamiento de control on - off
El control on-off es muy útil en casos donde cierto grado de inexactitud es aceptable ya que como se aprecia en la Fig. 1 existe un sobretiro que provoca que el sistema entre en un estado oscilatorio alrededor del punto predeterminado.
Control proporcional
El control proporcional es parecido al control on-off, con la peculiaridad de que este toma en cuenta la magnitud de la diferencia entre el estado real del sistema y el valor predeterminado (estado ideal). El sistema actúa en consecuencia de la magnitud de dicha diferencia.
La magnitud con la que actúa el sistema es proporcional a la magnitud de la diferencia entre el estado real y el estado ideal.
A esto se le llama aporte proporcional y de una manera mas abstracta se representa de la siguiente manera:
P = Kp*(estado ideal – estado real)
4
Donde Kp es una constante que dependerá del tipo de sistema y de otros parámetros. Este valor tiene que ser calibrado para cada sistema y varia dependiendo de los factores a que pueden afectar a dicho sistema.
Este tipo de control, utilizando un Kp adecuado, es considerablemente mas eficiente que el on-off sin embargo no es suficiente para sistemas que requieren de mas precisión y velocidad de respuesta.
Control diferencial
Idealmente se desea que un sistema de control alcance el valor predeterminado lo mas rápido posible con un sobretiro y oscilación mínimos. El control proporcional no puede lograr esto por si solo ya que un tiempo de respuesta veloz implica un Kp alto y por otro lado un sobretiro y oscilación mínimos requieren un Kp bajo.
Generalmente es posible conocer la taza de cambio en el estado del sistema. Esta taza de cambio se multiplica por una constante Kd para ser incluida en el aporte total del sistema.
D = Kd*(estado actual – estado anterior)
Un sistema PD bien calibrado tendrá un tiempo de respuesta un poco menos veloz son embargo un sobre tiro y oscilación mínimos.
Control integral
Un problema recurrente con lo controles PD es que a veces se estabilizan a cierta distancia del punto predeterminado. Esto puede ocurrir debido a que el error en el estado no es lo suficientemente grande para crear un aporte significativo.
Sin embargo al integrar dicho error en el tiempo se puede llegar a tener un valor suficientemente grande para proveer un aporte que corrija el error.
I = Ki*∑*(estado ideal – estado real)
Un sistema que utiliza estos tres controles es conjunto puede ser bastante confiable y es el que se utilizo para controlar el dispositivo construido en este proyecto.
I.2 Acondicionamiento de la señal (Linealización de sensores )
Algunas veces las señales producidas por un sensor tienen que ser acondicionadas para servir al propósito en que serán utilizadas. En este caso el voltaje de salida del sensor IR sharp 2y0a21 no es lineal en relación a la distancia que mide. Por esta razón es necesario acondicionar esta señal mediante programación antes de utilizarla en el control PID.
5
Fig. 2. Relacion voltaje-distancia del sensor IR *ver anexo
En la Fig. 2 es posible notar que no existe una relación lineal entre el voltaje de salida y la distancia medida. Es por esta razón que la señal del sensor sharp debe ser linelizada.
II. Fabricacion del dispositivo
La fabricación del dispositivo se divide en dos fases principlaes: construcción y programación. Estas a su vez se subdividen de la manera siguiente:
Construcción
Diseño y planeación de la estructura Diseño del circuito Construcción
Programación
Linealización del sensor IR Programación y calibración del control proporcional Programación y calibración del control diferencial Programación y calibración del control integral Calibración
Diseño y planeación de la estructura
Para la base y la estructura del soporte era necesario un material rígido pero fácil de manipular y formar por esta razón se utilizó el foamboard. Para el riel se utilizo un ángulo de aluminio de 50 cm de largo debido a que es un material liviano y barato. Además de que soporta una pelota de ping pong perfectamente.
6
El extremo del riel que sirve como eje esta sostenido por dos postes de lego. El extremo opuesto se encuentra sostenido por una cuerda que pasa por una polea justo encima de el. Esta cuerda se enrolla en un cilindro que gira impulsado por un servo mediante un sistema de engranes con amplificación.
Fig.3. Detalle de la construcción
Diseño del circuito
El dispositivo utiliza un sensor IR con salida de voltaje análogo para medir la posición de la pelota sobre el riel. Debido a la naturaleza de esta señal es crucial considerar que el circuito necesita incluir un convertidor A/D para procesar esta señal. En este caso se utilizó un ADC 0831.
Construcción
Para la construcción de la estructura se dibujaron plantillas en el foamboard que después fueron cortadas y ensambladas.
En la parte mecánica se utilizaron algunas piezas de “Lego Technics” que fueron adaptadas al diseño y estructura de foamboard.
Linealización del sensor IR
Se dividió el riel en segmentos de 0.5 cm y se hizo una tabla con los valores arrojados por el sensor. Fue necesario encontrar el pico de voltaje producido alrededor de los 10 cm. Los incrementos de 0.5 cm se midieron a partir de dicho pico. Ver Fig. 2.
Programación y calibración del control PID
La programación del control PID se llevó a cabo en tres fases. Primero el control proporcional, segundo el diferencial y por ultimo el integral.
7
Cada fase requirió de ajuste y calibración por lo que es necesario que este lista antes de pasar a la siguiente.
Calibración
Factores como la iluminación o el tipo de pelota que se utilice influyen en los valores de la constantes de cada control por lo que es necesario calibrar el dispositivo en bajo diferentes circunstancias.
III. Programación
El sistema de control PID utilizado en este dispositivo fue programado en un microcontrolador BS2 de parallax. Para esto se utilizo el editor de BS v 2.4.2.
El programa utiliza 23% de la memoria EEPROM y aproximadamente 6 bytes de la memoria RAM.
' {$STAMP BS2}
' {$PBASIC 2.5}
Variables
cs CON 0 - adc
clk CON 1 -adc
d0 CON 2 -adc
adc VAR Byte – valor digital del voltaje
dist VAR Word – valor del sensor linelizado mediante tabla lookdown
flag VAR Bit – indica posición de la desviación
flag2 VAR Bit – indica dirección de movimiento de la bola
prop VAR Word – aporte proporcional
error VAR Byte – desviación con respecto al valor predeterminado
errorold VAR Byte – desviación guardada en memoria para diferenciar
setpoint CON 30 – valor predeterminado
kp CON 14 – constante del control proporcional
kd CON 18 – constante del control diferencial
servo VAR Word – aporte total
dif VAR Word – aporte diferencial
8
delta VAR Byte – diferencial del error
rutina principal
main:
GOSUB leeADC – adquiere datos del sensor IR mediante convertidor A/D
GOSUB calcdist – linealiza la señal del sensor IR mediante la tabla lookdown
GOSUB generaporte – genera los aportes proporcional y diferencial
GOSUB servos – manda pulsos al servo para que actúe con el aporte generado
GOTO main
Subrutinas
leeADC:
LOW clk –prepara al convertidor para la lectura
LOW cs –prepara al convertidor para la lectura
PULSOUT clk, 210 –prepara al convertidor para la lectura
SHIFTIN d0, clk, MSBPOST,[adc\8] – adquiere datos
HIGH cs – apaga convertidor
RETURN – siguiente subrutina
calcdist: - esta tabla genera una relación lineal entre los valores del sensor IR y las distancias de la bola al sensor.
LOOKDOWN adc,>= [168,166,162,147,138,135,126,120,116,112,107,102,99,96,92,90,86,85,83,80,
79,76,74,72,71,69,67,68,64,64,63,60,60,58,57,56,55,55,56,53,52,52,51,51,51,49,48,
48,48,47,47,46,46,46,45,45,44,44,43,43,43,42,42,40,40,40,39,39,39,39,38], dist
RETURN – siguiente subrutina
generaporte:
IF dist>setpoint THEN error=ABS(setpoint-dist):flag=0:ENDIF
IF dist<setpoint THEN error=ABS(setpoint-dist):flag=1:ENDIF
9
- Aquí se calcula la diferencia que hay entre el valor deseado y el verdadero. El error. Flag indica de que lado esta ese error.
prop=error*kp MAX 45 – aquí se genera el aporte proporcional, tiene un tope de 45.
delta=ABS(error-errorold) – aquí se genera el diferencial del error
IF error>errorold THEN flag2=0 – la pelota se esta alejando del setpoint
IF error<errorold THEN flag2=1 – la pelota se esta acercando al setpoint
errorold=error – dato necesario para diferenciar el error
dif=delta*kd MAX 35 – aporte diferencial
IF flag=0 AND flag2=0 THEN servo= 650+prop+dif
IF flag=0 AND flag2=1 THEN servo= 650+prop-dif
IF flag=1 AND flag2=0 THEN servo= 650-prop-dif
IF flag=1 AND flag2=1 THEN servo= 650-prop+dif
Dependiendo de la situación del sistema en cada momento los aportes se suman o restan. 650 es el valor del servo que pone al riel en una posición horizontal.
RETURN – siguiente subrutina
servos:
PULSOUT 3, servo – manda el pulso al servo
PAUSE 10 – esta pausa le confiere un funcionamiento mas suave al servo
RETURN – siguiente subrutina
10
III.1 Algoritmo
Fig.4. Diagrama de flujo del algoritmo del sistema de control
11
IV. Resultados
Control Proporcional
Fig.5. Comportamiento del sistema con un Control proporcional de Kp = 14
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534540
10
20
30
40
50
60
70
Control P.
C. P
tiempo
po
sic
ion
Fig.6. Comportamiento del sistema con un Control proporcional de Kp = 5
12
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034040
10
20
30
40
50
60
70
Control PD
Control PD
timepo
po
sic
ion
Fig.7. Comportamiento del sistema con un Control proporcional de Kp= 14 y Kd= 15
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901910
5
10
15
20
25
30
35
Control PD
C. PD
tiempo
po
sic
ion
Fig.8. Comportamiento del sistema con un Control proporcional de Kp= 14 y Kd= 20
13
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511605
101520253035404550
Aporte PD
D
P
tiempo
ap
ort
e
Fig.9. Magnitud del aporte proporcional y diferencial en el tiempo.
V. Análisis de resultados
Las graficas presentadas en la sección de resultados permiten apreciar la manera en que trabaja el sistema utilizando el control proporcional o el control proporcional-diferencial.
Como se ve en la fig. 5. el control proporcional por si solo mantiene al sistema en un estado oscilante. Comparando las figs. 5 y 6 se puede apreciar el diferente sobretiro que provocan diferentes valores de Kp. De hecho en la fig.6. existe un sobretiro creciente en el tiempo.
En las fig. 8 se aprecia la manera en que el aporte diferencial bien calibrado causa que el sistema entre en una oscilación decreciente hasta llegar a la estabilidad.
La fig. 7 muestra un control PD mal calibrado que aunque oscila menos que el control P, no alcanza la estabilidad.
La fig.9. muestra la manera en que cada aporte actua y como en conjunto logran estabilizar al sistema. Se puede ver que mientras P varia D alcanza sus picos ya que es cuando la pelota esta en movimiento.
VI. Conclusión
Los sistemas de control PID tienen infinidad de aplicaciones y permiten al hombre controlar sistemas que son inestables por naturaleza. Debido a que el hombre tiene capacidades limitadas (como un tiempo de reacción lento a comparación de una computadora), existen ciertas tareas para las cuales una computadora programada con sistema PID es mucho mas eficiente y adecuada.
14
Estos sistemas de control permiten al hombre crear maquinas difíciles de controlar ya que es dicho sistema quien haga el “trabajo sucio” de mantener el sistema en un estado estable.
Por ejemplo un jet de guerra moderno es piloteado por un hombre, sin embargo es una computadora la que esta haciendo todos los ajustes finos que llevan al avión a donde el piloto lo ordena. Si las ordenes del piloto no estuvieran asistidas y procesadas por dicha computadora probablemente este no seria capaz de despegar la nave.
Los sistemas de control son importantes para la sociedad moderna ya que los encontramos en todas partes desde un refrigerador o un auto, hasta las maquinas mas complejas cuyo funcionamiento seria imposible sin la asistencia de estos controles.
Gracias a herramientas de este tipo es que el hombre puede crear maquinas sumamente útiles que serian imposibles de manejar o controlar con las limitadas capacidades del hombre, o también crear procesos mas eficientes que ahorren energía tan escasa en tiempos como estos.
VII. Fuentes
Barr, Michael. "Closed-Loop Control," Embedded Systems Programming, August 2002 , pp. 55-56.
Parallax Inc. “Process control student guide”
15