Maqueta de Control PID Con Arduino

download Maqueta de Control PID Con Arduino

of 15

Transcript of Maqueta de Control PID Con Arduino

  • 7/28/2019 Maqueta de Control PID Con Arduino

    1/15

    Maqueta de control PID con Arduino .

    Gadgets powered by Google

    .

    .

    Con el motivo de la primera VirtualCamp (Julio 2011), el proyecto ha sido crear una maquetade control didctica con un presupuesto de menos de 10 euros (Arduino no incluido). La ideafue hacer un proyecto en 48h durante el fin de semana del 16-17 de Julio.

    El proceso elegido es el control de temperatura. Para ello dos resistencias de potencia generan elcalor y un ventilador actua como control para la refrigeracin. Un sensor resistivo de tipo NTCse encarga de registrar la temperatura del habitculo.

    Se ha instalado el sensor de temperatura en medio de las resistencias de potencia para que el proceso disponga de la menor inercia posible, y as se comporte ms rpido ante cambios de laentrada.

    Los participantes del proyecto:

    Igor R. -> Creacin de la maqueta fsica, software Arduino y documentacin. Alberto Yebra -> Interfaz grfica en python para la visualizacin del proceso. [ se

    ampliar este proyecto con su trabajo ]. LeoBot (Manuel) -> Introduccin al control PID y teora PWM.

    http://real2electronics.blogspot.mx/2011/07/maqueta-de-control-pid-con-arduino.htmlhttp://www.google.com/webmasters/gadgets.htmlhttp://www.google.com/webmasters/gadgets.htmlhttp://fusion.google.com/ig/add?synd=open&source=ggyp&moduleurl=http://www.google.com/ig/modules/translatemypage.xmlhttp://4.bp.blogspot.com/-P32ffnS0ypE/TiMTYu6RGUI/AAAAAAAAAg0/vHwKqLTzaUs/s1600/Maqueta_despues.jpghttp://www.google.com/webmasters/gadgets.htmlhttp://real2electronics.blogspot.mx/2011/07/maqueta-de-control-pid-con-arduino.html
  • 7/28/2019 Maqueta de Control PID Con Arduino

    2/15

    Componentes necesarios:

    Ventilador 12v usado para refrigeracin de componentes en ordenadores. Resistencias de potencia (47ohm) --> 2 unidades Un sensor temperatura resistivo (NTC) + resistencia 3k pull up Transistor Mosfet. Diodo 1N4148. Un recipiente (habitculo). Transformador externo para alimentacin a 12v.

    Los objetivos del proyecto usando Arduino han sido:

    1. Creacin fsica de la maqueta.2. Control de un proceso usando un PID.3. Captura de seal analgica.4. Convertir la seal elctrica a fsica mediante una tabla guardada en memoria de

    programa (flash) para evitar uso de RAM del microcontrolador.5. Control carga de potencia mediante PWM.6. Monitorizacin en el PC de resultados.

    http://4.bp.blogspot.com/--wj_yXtHXBw/Tj666JO1sLI/AAAAAAAAAjw/yDEoi0BhwEg/s1600/Maqueta_despues.jpg
  • 7/28/2019 Maqueta de Control PID Con Arduino

    3/15

    Vemos una foto de como ha quedado la maqueta (se ha usado una dremel para modificar elrecipiente de plstico):

    Otra foto de la instalacin del ventilador:

    La instalacin elctrica necesaria es bastante sencilla. La podemos dividir en dos partes: controldel ventilador mediante transistor mosfet y adquisicin de la temperatura mediante NTC.

    A continuacin, se puede observar un esquema de la conexin del ventilador. La salida utilizadaen Arduino es el pin 9 (PWM).

    http://3.bp.blogspot.com/-NmMs6URurro/TiMXUs8yshI/AAAAAAAAAhA/vqzz1mrnPIA/s1600/Maqueta_ventilador.jpghttp://1.bp.blogspot.com/-0ZEJqWaYVsc/TiMWxGWI2LI/AAAAAAAAAg8/-5PwjHJg-MY/s1600/Maqueta_despues2.jpg
  • 7/28/2019 Maqueta de Control PID Con Arduino

    4/15

    En los sistemas de control en lazo cerrado la salida del controlador acta sobre el actuador (eneste caso motor elctrico del ventilador) para corregir la magnitud fsica (temperatura) que sequiere controlar.

    La tcnica ms habitual que se utiliza para el control de velocidad de motores de continua, es lamodulacin por anchura de pulso PWM (Pulse Width Modulation). Esta tcnica consiste en unaseal peridica cuadrada que cambia el tiempo de su estado activo (nivel alto) en el tiempo del

    perodo de la seal.

    El tiempo que la seal peridica est activa con respecto a perodo de la seal se denominaCiclo de Trabajo (Duty Cycle)

    D = (t on/ T)

    Es decir, el duty cycle describe la proporcin del tiempo a ON (encendido) sobre un perodo detiempo fijo.

    Crear este tipo de seal resulta muy sencillo en un microcontrolador, aunque cabe destacar quela corriente generada por el mismo es muy pequea, por lo que hace necesario de una etapa deadaptacin de potencia antes de unirlo al motor. Para ello se utiliza el transistor en conmutacin(corte y saturacin). Vemos como sera nuestro circuito conectado a la salida PWM delmicrocontrolador:

    http://2.bp.blogspot.com/-V9r_GBXFEoI/TiMYeRdCf6I/AAAAAAAAAhE/cglriHN249Y/s1600/Mosfet_control_PID_esquema.jpg
  • 7/28/2019 Maqueta de Control PID Con Arduino

    5/15

    En el circuito, el transistor va a funcionar en corte-saturacin, activando y desactivando el motor del ventilador mediante la seal PWM. Como el motor es un dispositivo inductivo (por las

    bobinas que tiene) se debe instalar un diodo (conocido como diodo de flyback freewheeling).Las bobinas se oponen al cambio de corriente, por lo que al "cortar" la alimentacin se creaunos picos de voltaje muy altos que pueden daar nuestra salida del microcontrolador. Gracias aeste diodo, la corriente dispone de un camino de descarga.

    El control de velocidad del motor se consigue variando la tensin que pasa por el motor y estatarea la realiza la seal PWM que genera el microcontrolador. Al cambiar el tiempo a ON de laseal PWM (duty cycle), estamos cambiando efectivamente el valor medio (voltaje) sobrenuestro motor, lo que se traslada en un incremento/decremento de la velocidad del ventilador.Por lo que la salida de control PID es el duty cycle de la seal PWM aplicada al ventilador. Seha modificado el registro del timer 1, que controla la frecuencia del pin 9, para que la frecuenciasea aproximadamente 32 kHz. La frecuencia de dicha seal, debe ser lo suficientemente rpida

    para que no afecte la inercia del sistema a controlar.Vemos una captura real de la seal que sale de nuestro control:

    http://4.bp.blogspot.com/-iddQIN_zJ2w/TiM9-4FUtgI/AAAAAAAAAhg/tXxzLjHTru0/s1600/PWM_Analizador_Logico.jpghttp://1.bp.blogspot.com/-ceQM2F8-UG4/Tj5pj4BAGvI/AAAAAAAAAjs/sXQyRCxQFos/s1600/CircuitoActuador.JPG
  • 7/28/2019 Maqueta de Control PID Con Arduino

    6/15

    Se observa como el control va modificando adecuadamente el tiempo a ON del PWM paraconseguir el SetPoint predefinido.

    Para el caso del sensor NTC:

    Para evitar resolver operaciones matemticas en el microcontrolador, se ha creado una tabla devalores obtenidos del conversor ADC del Arduino versus temperatura en grados centgrados.Para ello se ha utilizado la hoja de clculo LibreOffice Calc. Los datos de entrada son la Ro(resistencia a 25C) y el coeficiente beta del sensor [informacin proveniente del datasheet delfabricante]. Los pasos han sido crear la tabla de resistencia versus temperatura, e ir convirtiendoadecuadamente para obtener una tabla en forma lectura ADC versus temperatura en grados.

    http://1.bp.blogspot.com/-7bat3xhJuwY/TiMb7UujE8I/AAAAAAAAAhI/BvFDXXu9a9A/s1600/NTC_esquema.jpg
  • 7/28/2019 Maqueta de Control PID Con Arduino

    7/15

    Dicha tabla, ser guardada en memoria de programa, evitando consumir memoria RAMinnecesariamente de nuestro Arduino.

    Se observa que la respuesta de un sensor NTC no es lineal.

    La NTC se ha situado entre las dos resistencias calentadoras. De esta forma, se consigue que elsistema tenga menos inercia y su respuesta sea rpida.

    http://1.bp.blogspot.com/-bYi5dzw9nWk/TiMdoYi7b-I/AAAAAAAAAhQ/CVLVYzNgppY/s1600/Maqueta_calentador_ntc.jpghttp://4.bp.blogspot.com/-lhEH6q1Lgpw/TiMcliKmjkI/AAAAAAAAAhM/ChLhfouJ_Dk/s1600/Linealizacion_NTC.jpg
  • 7/28/2019 Maqueta de Control PID Con Arduino

    8/15

    INTRODUCCIN Por LeoBot (Manuel)

    La temperatura es una magnitud fsica que tanto en el mbito domstico e industrial esinteresante controlar para tener un un mayor confort y eficiencia energtica.

    El control se puede realizar tanto manual (control en lazo abierto) como automtico(control en lazo cerrado).

    El control en lazo abierto es un control de encendido-apagado, en nuestro caso paracalentar una habitacin, un calentador se enciende o se apaga. En control en lazo cerrado setiene un controlador que compara la variable (temperatura que se mide con un sensor) con lareferencia, temperatura que se quiere tener en la habitacin, y convertir el error que resulta enuna accin de control para reducir el error.

    a) SISTEMA EN LAZO ABIERTO

    b) SISTEMA EN LAZO CERRADO

    http://3.bp.blogspot.com/-25IuieEYP-0/TiXv7zAnyjI/AAAAAAAAAiE/4o80lISytf0/s1600/Lazo_Cerrado.jpghttp://1.bp.blogspot.com/-ppueVPTAG5w/TiXvqTcK6dI/AAAAAAAAAiA/Ze4eYgL3kpQ/s1600/Lazo_Abierto.jpg
  • 7/28/2019 Maqueta de Control PID Con Arduino

    9/15

    La unidad de control puede reaccionar de diferentes maneras ante la seal de error y proporcionar seales de salida para que acten los elementos correctores.

    Tipos de control

    1.- Control de dos posiciones : el controlador es un interruptor activado por la seal de error y proporciona una seal correctora tipo encendido-apagado.

    2.- Control proporcional (P) : produce una accin de control que es proporcional al error. Laseal de correctora aumenta al aumentar la seal de error.

    3.- Control derivativo (D) : produce una seal de control que es proporcional a la rapidez con laque cambia el error. Ante un cambio rpido de la seal de error, el controlador produce unaseal de correccin de gran valor; cuando el cambio es progresivo, slo se produce una seal

    pequea de correccin. El control derivativo se puede considerar un control anticipativo porqueal medir la rapidez con que cambia el error se anticipa a la llegada de un error ms grande y se

    http://1.bp.blogspot.com/-eWDpZ9jOB3g/TiX00dNHCbI/AAAAAAAAAiM/g3m3hK_zDek/s1600/Respuesta_P.JPGhttp://2.bp.blogspot.com/-BkCfke7AVnQ/TiXxZJldsXI/AAAAAAAAAiI/UzuKwtRBSWU/s1600/Control_ON_OFF.jpg
  • 7/28/2019 Maqueta de Control PID Con Arduino

    10/15

    aplica la correccin antes que llegue. El control derivativo no se usa solo, siempre va encombinacin con el control proporcional y/o con el control integral.

    4.- Control integral (I) : produce una accin de control que es proporcional a la integral del error en el tiempo. En consecuencia, una seal de error constante producir una seal correctoracreciente y aumentar si el error continua. El control integral se puede considerar que recuerdala situacin anterior, suma todos los errores y responde a los cambios que ocurren.

    5.- Combinacin de tipos de control : proporcional derivativo (PD), proporcional integral (PI) y proporcional integral derivativo (PID).

    http://1.bp.blogspot.com/-6BjlN8_qNyU/TiX10UdNbDI/AAAAAAAAAiU/mZ_lFX-KORY/s1600/Respuesta_I.JPGhttp://1.bp.blogspot.com/--x6GHnNXT38/TiX1aURiiFI/AAAAAAAAAiQ/NQQm-JPiI_U/s1600/Respuesta_PD.JPG
  • 7/28/2019 Maqueta de Control PID Con Arduino

    11/15

    CONTROL PID

    El control Proporcional Integral Derivativo (PID) es mecanismo de control medianterealimentacin negativa, el cual aplica una accin correctora al sistema para obtener el valor deconsigna (Setpoint).

    http://2.bp.blogspot.com/-h9NhrH8Cew0/TiX1_hbNJZI/AAAAAAAAAiY/qqRIjy_mtqw/s1600/Respuesta_PI.JPG
  • 7/28/2019 Maqueta de Control PID Con Arduino

    12/15

    Existe multitud de recursos en internet acerca del mismo, por lo que aqu se ver desde el puntode vista prctico. Por ejemplo, wikipedia dispone de una buena introduccin.

    El nuestro sistema:

    Setpoint -> Temperatura de consigna del sistema. Se trata de la temperatura deseada a lacual el proceso tiene que mantenerse a travs de la accin del control. El algoritmooscila entre dos temperaturas, con el motivo de ver como se comporta ante cambios dela entrada. Es decir, es a la temperatura que queremos que se encuentre nuestorecipiente.

    La realimentacin o informacin de cmo se encuentra el sistema, es adquirida por la NTC. El objetivo es que el valor medido sea siempre igual al valor deseado (Setpoint).

    El actuador es el ventilador, el cual regulamos su velocidad mediante modulacin deancho de pulsos (PWM).

    Para la visualizacin, se ha utilizado el software gratuito para Windows Stamp Plot Lite(http://www.selmaware.com/stampplotlite/index.htm ).

    Empezaremos por realizar slo un control PROPORCIONAL. El programa de Arduino, cambiacada 120 segundos el Set Point entre 60 y 59 grados centgrados.

    Se puede observar cmo el control proporcional no elimina el error permanente del sistema.

    http://es.wikipedia.org/wiki/Proporcional_integral_derivativohttp://es.wikipedia.org/wiki/Proporcional_integral_derivativohttp://es.wikipedia.org/wiki/Proporcional_integral_derivativohttp://www.selmaware.com/stampplotlite/index.htmhttp://www.selmaware.com/stampplotlite/index.htmhttp://www.selmaware.com/stampplotlite/index.htmhttp://www.selmaware.com/stampplotlite/index.htmhttp://es.wikipedia.org/wiki/Proporcional_integral_derivativo
  • 7/28/2019 Maqueta de Control PID Con Arduino

    13/15

    Existe un lmite en el valor de la constante proporcional, ya que nuestro sistema se vuelveoscilatorio, ya que un pequeo cambio en el error, hace que la salida de controlador sea muygrande. A continuacin un ejemplo:

    http://2.bp.blogspot.com/-tcOhp9O9-NQ/TiMibfkp5DI/AAAAAAAAAhU/tp3V6G5wAxk/s1600/Control_P_StampPlot_ErrorPermanente.jpg
  • 7/28/2019 Maqueta de Control PID Con Arduino

    14/15

    Como se ha observado, la parte proporcional no tiene en cuenta el tiempo, por lo que paracorregir el error permanente, necesitamos aadirle la parte INTEGRAL.

    Para poder observar cmo se comporta, se ha introducido un retraso a la actuacin de la misma.

    http://3.bp.blogspot.com/-P59-lT7s9QE/TiMjxXApz9I/AAAAAAAAAhY/IXR6HO2bHdc/s1600/Control_P_StampPlot_ControlProporcional_KpMuyGrande.jpg
  • 7/28/2019 Maqueta de Control PID Con Arduino

    15/15

    La parte integral consigue que nuestro sistema alcance los valores objetivo (Set Points de 60 y58 grados), ya que corrige el error permanente del sistema.

    La parte DERIVATIVA,slo actua si hay un cambio en el valor absoluto del error. Es decir, siel error es constante, no actuar.

    El objetivo final de un sistema de control, es que el sistema siga lo ms fielmente a su entradaante perturbaciones externas y que responda ante cambios de consigna (SetPoint). Vemos unvideo, en el cual se altera el sistema (tapando la salida de aire-cables) y como al subir latemperatura, el sistema aumenta la velocidad del ventilador para tratar de contrarrestar la

    perturbacin.

    http://3.bp.blogspot.com/-JqjbR-CVLj0/TiMldpB-y1I/AAAAAAAAAhc/GsowZBfa46c/s1600/Control_P_StampPlot_DelayAccionIntegral.jpg