Reporte Lab. Servos3

download Reporte Lab. Servos3

of 15

Transcript of Reporte Lab. Servos3

  • 8/3/2019 Reporte Lab. Servos3

    1/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 1

    1. Marco Terico

    1 INTRODUCCIN

    Proponemos que los estudiantes construyan un sencillo y econmico controlador electrnicode temperatura. Esto les permitir poner en prctica los conceptos relativos a un controladorPID (proporcional, integral y derivativo), y lo ms importante, es que comprobar que soncapaces de implantar un sistema de control electrnico con el cual efectivamente puedenmanipular una variable fsica. El enfoque que nosotros proponemos, contrasta con elcomnmente seguido en las prcticas de laboratorio, donde a los estudiantes se les da unaserie de instrucciones sobre cmo conectar algunos mdulos y despus se les pide que tomenalgunas lecturas. Nosotros consideramos que, dado que los estudiantes se involucran en la

    construccin de todos los elementos que forman el sistema de control, se puede obtener unentendimiento integral del problema de control y mejorar el nivel de motivacin.

    El sistema que proponemos consiste en un controlador PID analgico, basado enamplificadores operacionales de propsito general. El controlador est implementado de talmanera que fcilmente se distinguen cada una de las partes del controlador: sumador, accinproporcional, accin integral y accin derivativa. El sistema tambin cuenta con una etapa depotencia, que utiliza el mtodo de paquetes de onda para regular la potencia entregada auna parrilla elctrica.

    En la parrilla se coloca una tasa con agua, y la temperatura se mide mediante un sensor de

    temperatura integrado (LM35) o un termistor y un ventilador para acelerar el proceso deenfriamiento cuando sea necesario. Considerando que se cuenta con una fuente dealimentacin y un multmetro.

  • 8/3/2019 Reporte Lab. Servos3

    2/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 2

    DESCRIPCIN DEL SISTEMA

    En la figura 1, se muestra un diagrama simplificado del sistema de control de temperatura. Elsistema est constituido por un controlador PID analgico, una etapa de potencia, una parrillaelctrica , un sensor de temperatura y un ventilador para enfriar el sistema

    figura : Sistema de control de temperatura

    1 Controlador PID

    El controlador utilizado es un controlador PID paralelo, el cual est constituido por una etapade accin de control proporcional, una etapa derivativa y una etapa integral, de acuerdo con

    el diagrama de la figura 2.

    El controlador tiene entonces una funcin de transferencia dada por

    donde Kp es la constante de accin proporcional, Ti es la constante de tiempo de la accinintegral, Td es la constante de tiempo de la accin derivativa, E(s) es la seal de error y U(s)es la seal de control.

  • 8/3/2019 Reporte Lab. Servos3

    3/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 3

    figura : control PID paralelo

    En la figura 3, se muestra un diagrama simplificado de la implementacin electrnicautilizada, la cual consta de cuatro etapas. Por facilidad de implementacin, se utilizaroncircuitos integradores y derivadores inversores, as como un sumador inversor y un circuito

    de control de ganancia (accin proporcional, Kp ) inversor. Esto genera tres etapasinversoras, y para compensar el signo, se aadi un amplificador diferencial que calcula elerror, pero con signo negativo. De esta manera, el circuito da la apariencia de tenerretroalimentacin negativa, pero en realidad no es as.

    Figura : esquema simplificado del controlador PID

    Sensor de temperatura

    Como elemento sensor de temperatura se utiliz un circuito integrado LM35D, el cual es unsensor que genera un voltaje proporcional a la temperatura en grados Celsius, opera en unintervalo de 0 a 100 C con una no linealidad tpica de 0.2 C y una exactitud tpica de 0.9C

  • 8/3/2019 Reporte Lab. Servos3

    4/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 4

    2.Hardware & Software

    2.1. Controlador.

    Elegimos controlar el sistema por medio del Arduino Uno (Fig. 3.1 yFig. 3.2), el cual es una tarjeta

    microcontroladora basada en el ATmega328. Este dispositivo cuento con lo necesario para la

    realizacin de nuestro proyecto a un costo bajo.

    Fig. 3.1 Imagen Frontal de Microcontrolador Arduino Uno.

    Fig. 3.2 Imagen Trasera de Microcontrolador Arduino Uno.

  • 8/3/2019 Reporte Lab. Servos3

    5/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 5

    Las caractersticas de este dispositivo se muestran en la Tabla 3.1:

    Caractersticas

    Microcontrolador ATmega328Voltaje de Operacin 5VVoltaje de Entrada (Recomendado) 7-12VVoltaje de Entrada (Limites) 6-20VEntradas y Salidas Digitales 14 (De los cuales 6 son PWM)Entradas Analgicas 6Corriente DC por Entrada/Salida 40 mACorriente DC por salida de 3.3V 50 mAMemoria Flash 32 KB (ATmega328) de los cuales 0.5KB son

    usados por el bootloader.SRAM 2 KB (ATmega328)EEPROM 1 KB (ATmega328)

    Velocidad del Reloj 16 MHzTabla 3.1 Caractersticas de Arduino Uno.

    Como podemos observar en la Tabla 3.1, el Arduino Uno es una plataforma ideal para el desarrollo

    de este proyecto, cumple con los requisitos que se demandan (2 Entradas Analgicas y 2 PWM,

    ambas de 5 Volts) adems de que la memoria Flash es suficientemente grande para almacenar casi

    cualquier programa que llegramos a necesitar.

    Otro de los motivos por los cuales recurrimos al uso de este tipo de tarjeta es el hecho de haber

    trabajado anteriormente con ella y el hecho de conocer la versatilidad que esta tiene.

    Este controlador se programa a travs de un compilador llamado Arduino Alpha y est basado

    tanto en lenguaje C as como en lenguaje ensamblador, en el siguiente punto hablaremos de este

    compilador.

    2.2. Compilador.

    El compilador utilizado para el desarrollo de este proyecto fue el denominado Arduino Alpha

    V0022 (Fig. 3.3 y Fig. 3.4). Como ya mencionamos este software es un compilador y programador

    para la tarjeta de programacin Arduino Uno, as como para otros dispositivos de Arduino.

    Este software se basa en lenguaje ensamblador y en lenguaje C, por lo que es muy verstil para

    elaborar programas y adems contiene un gran nmero de libreras que contienen funciones

    matemticas, control de servomotores, comunicacin serial, etc.

  • 8/3/2019 Reporte Lab. Servos3

    6/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 6

    Fig. 3.3 Pantalla de Bienvenida de Arduino Alpha V0022

    Fig. 3.4 Interfaz de Arduino Alpha V0022

  • 8/3/2019 Reporte Lab. Servos3

    7/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 7

    2.3. Sensores

    LM35

    El LM35 es un sensorde temperatura con una precisin calibrada de 1C. Puede medir temperaturas en el rango que

    abarca desde -55 a + 150C. La salida es muy lineal y cada grado centgrado equivale a 10 mV en la salida.

    Fig. 3.5 Fotografa de LM35.

    Caractersticas

    Sus caractersticas ms relevantes son:

    Precisin de ~1,5C (peor caso), 0.5C garantizados a 25C.

    No linealidad de ~0,5C (peor caso).

    Baja corriente de alimentacin (60uA).

    Amplio rango de funcionamiento (desde -55 a + 150C).

    Bajo costo. Baja impedancia de salida.

    Su tensin de salida es proporcional ala temperatura, en la escala Celsius. No necesitacalibracin externa y es de bajo costo. Funciona en el rango de alimentacin comprendidoentre 4 y 30 voltios.

    Como ventaja adicional, el LM35 no requiere de circuitos adicionales para su calibracinexterna cuando se desea obtener una precisin del orden de 0.25 C a temperaturaambiente, y 0.75 C en un rango de temperatura desde 55 a 150 C.

    La baja impedancia de salida, su salida lineal y su precisa calibracin inherente haceposible una fcil instalacin en un circuito de control.

    Debido a su baja corriente de alimentacin (60uA), se produce un efecto deautocalentamiento reducido, menos de 0.1 C en situacin de aire estacionario.

  • 8/3/2019 Reporte Lab. Servos3

    8/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 8

    Fig. 3.6 Encapsulado del LM35

    2.4. Actuadores

    Ventilador para gabinete Thermaltake ISGC 120mm

    Especificaciones tcnicas

    y Dimensiones de Ventilador: 120 x 120 x 25 mmy Velocidad: 800 ~ 1300 RPMy Control de Velocidad: Control Manual de Velocidad Ajustabley Color de LED: n/a

    y Nivel de Ruido: 16 dBA

    y Max. Flujo de Aire: 58.3 CFMy Max. Presion de Aire: 1.42 mm H2Oy Conector de Poder: 3-piny Voltaje: 12 Vy Voltaje Inicial: 7 V

  • 8/3/2019 Reporte Lab. Servos3

    9/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 9

    y Flujo de Corriente: 0.09 Ay Poder de Entrada: 1.08 Wy MTBF: 50000 Hrs @ 25y Peso: 157 g

    Esquemtico del control del ventilador

    3.Pseudocdigo de PID.se desea mantener a una temperatura estable la atmosfera dentro de la cabina para lo cual

    controlaremos un ventilador para enfriar el sistema y una resistencia para calentarlo.

    y Leer entrada del sensor lm35

    y convertir la lectura en voltaje a un valor en C

    y calcular el error entre temperatura deseada y la temperatura del sistema

    y multiplicar por Kp,Ki y Kd

    y decidir si encender las resistencias o el ventilador

    y encender lo elegido un valor dado por el control PID

  • 8/3/2019 Reporte Lab. Servos3

    10/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 10

    4.Cdigo arduino./CONSTANTES#define cte_kp 500.0 //300

    #define cte_ki 10.0 //5.0#define cte_kd 3500.0#define Margin_Int 0.9#define target1 60.0 //60#define target2 58.0 //58

    //Variables de control de flujolong tInit;long tSerial;

    //Inputfloat Target;

    //Sensorfloat temp;

    //Outputfloat dutycycle;

    //PID

    float error;float prev_error;float Proportional;float Integral;float Derivative;float Kp;float Ki;float Kd;long LastTime;long SampleTime;long timeOutInt;

    //Tabla guardada en memoria de programa del Arduino (FLASH)PROGMEM prog_uint16_t ntc[21][2] = {{861,0},{778,10},{678,20},

  • 8/3/2019 Reporte Lab. Servos3

    11/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 11

    {570,30},{463,40},{366,50},

    {285,60},{219,70},{168,80},{128,90},{99,100},{77,110},{60,120},{47,130},{38,140},{30,150},{24,160},{20,170},{16,180},{14,190},{11,200},

    };

    void setup(){//Empiezo comunicacion serie a 19200(maxima velocidad de StampPlot)

    Serial.begin(19200);delay(10);//Configuro el StampPlot (maximo, minimo, grabar en un archivo los datos, etc).config_StampPlot();//Configuro el pin 9 como salida (PWM)pinMode(9,OUTPUT);

    //Capturo tiempos para el control de mi programa.tInit=millis();LastTime=millis();

    //Valor de mis constantes del control PIKp=cte_kp;Ki=cte_ki;Kd=cte_kd;

    //Modificar frecuencia PWM//Setting Divisor Frequency

  • 8/3/2019 Reporte Lab. Servos3

    12/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 12

    //0x01 1 31250//0x02 8 3906.25//0x03 64 488.28125

    //0x04 256 122.0703125//0x05 1024 30.517578125//TCCR1B = TCCR1B & 0b11111000 | ;//Configuro el PWM a 30 kHz.TCCR1B=TCCR1B & 0b11111000 | 0x01;

    }

    void loop(){

    //Recojo 10 veces el dato del sensor y hago la mediafor (int i=0; i60) && (time120 ){

    tInit=millis();}

    //----------------------------------------------------//CONTROL PID//Hago los calculos de manera periodica

    SampleTime=(millis()-LastTime);if (SampleTime>=100){

  • 8/3/2019 Reporte Lab. Servos3

    13/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 13

    LastTime=millis();

    //Calculo de error (diferencia entre SetPoint y temperatura actual

    prev_error=(float)error;error=(float)temp-(float)Target;

    Proportional=(float)Kp*(float)error;

    if ( (abs(error)10) {Integral+=(float)Ki*(float)error;timeOutInt=3000;

    }}else{Integral=0;timeOutInt=0;

    }

    //Parte derivativaDerivative=(float)Kd*((float)error-(float)prev_error);//----------------------------------------------------------------

    dutycycle=(int)Proportional+ (int)Integral + (int)Derivative;

    if (dutycycle 255){dutycycle=255;

    }

    //Actualizo salidaanalogWrite(9,(int)dutycycle);

    //Mando datos a StamplotSerial.print(temp);Serial.print(13,BYTE);

  • 8/3/2019 Reporte Lab. Servos3

    14/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 14

    5.Conclusionesen la prctica pasada utilizamos la lgica difusa para el control del sistema, en esta prctica

    usamos el control PID para controlar la temperatura en un ambiente cerrado.

    El PID puede llegar hacer un mtodo muy confiable y preciso para controlar una gran cantidad de

    sistemas fsicos y para esta caso lo utilizamos para medir la temperatura de un sensor y poder

    regular la velocidad de un ventilador o el voltaje en una resistencia para as mantener una

    temperatura deseada el gabinete .

    Este sistema de control reacciona eficientemente a los cambios externos de temperatura de

    manera rpida .

    6.Bibliografas.

    http://www.eng.newcastle.edu.au/~jhb519/teaching/caut1/Apuntes/PID.pdf

    http://www.automatas.org/hardware/teoria_pid.htm

  • 8/3/2019 Reporte Lab. Servos3

    15/15

    Laboratorio de Servomecanismos

    Proyecto: Control de Temperatura.

    Proyecto |Control de Temperatura 15

    7.Anexos.