Informe Del Viernes

download Informe Del Viernes

of 22

description

ASDFGH

Transcript of Informe Del Viernes

Universidad Tecnolgica de PanamFacultad de Ingeniera ElctricaIngeniera Electromecnica

Laboratorio de Teora de Control

Diseo de controladores para una planta de temperatura

Facilitador: Dr. Jorge Hernndez

Grupo:1IE-151 (C)

Integrantes:De Oliveira, ManuelGonzlez, JorgeGuerrero, ChristianMaldonado, OnelPacheco, EtzelRial, Bernab

Fecha de entrega:Viernes 3 de Julio 2015.

ndice

ndice2Introduccin3Marco terico4Diseo general para el estudio5Mtodos y materiales6Descripcin del Sistema8Clculos Matemticos10Resultados12Programacin: Cdigo de Arduino13Discusin18Conclusin19Fuentes de informacin20Anexo21

Introduccin

Un controlador es el encargado de regular o controlar uno o msprocesos.En nuestro caso, el proceso fue la planta de temperatura y esta a su vez fue controlada en primera instancia con la programacin en Arduino y con un controlador PID.La planta a controlar fue construida para regular de manera rpida las variables de temperatura, por lo que fue necesario en primera instancia la obtencin de datos, realizada a travs de un programa con comunicacin serial de Arduino y un sensor de temperatura. Esta misma programacin en Arduino fue utilizada para el modelado del sistema, mediante un programa creado para control.

Uno de los parmetros importantes luego del control fue el error, que sin duda tambin fue controlado y cumpla con los rangos permitidos.

Los valores de establecidos para el PID fueron obtenidos a travs del mtodo de ensayo y error, de tal manera que la planta se aproximara a un modelo ideal. Como gua para nuestras aproximaciones, utilizamos constantes obtenidas en los experimentos hechos por instrumentistas profesionales de la Universidad Tecnolgica de Panam, las cuales fueron adaptadas para el funcionamiento de nuestra planta.

Marco terico

El control automtico es de vital importancia en el mundo de la ingeniera. Adems de resultar imprescindible en sistemas robticos o procesos de manufacturacin moderna, entre otras aplicaciones, se ha vuelto esencial en operaciones industriales como el control de presin, temperatura, humedad, viscosidad, y flujo en las industrias de transformacin.

Un controlador automtico es undispositivobasado en hardware y software, que funcionamediante el monitoreo de una seal de error, que es la diferencia entre los valores establecidos (el valor de temperatura, velocidad etc. que se requiere que el controlador mantenga) y los valores reales o medidos que el parmetro a controlar tiene. La combinacin del sistema a controlar y el controlador empleado tienen generalmente una disposicin de lazo cerrado, se puede observar un ejemplo de cmo puede ser el sistema en la Figura 1: Figura 1: Sistema de control lazo cerrado.Nuestro sistema utiliza un controlador PID, el cual se caracteriza por combinar tres acciones (P, I y D) mediante el siguiente algoritmo de control:

Este algoritmo est considerado como el PID estndar por la ISA (Instrument Society of America), en donde es el error de la seal y es la entrada de control del proceso. A continuacin, se resumen los trminos bsicos: Accin proporcional (P): es la accin que produce una seal proporcional a la desviacin de la salida del proceso respecto al punto de consigna. Accin integral (I): es la accin que produce una seal de control proporcional al tiempo que la salida del proceso ha sido diferente del punto de consigna. Accin derivativa (D): es la accin que produce una seal de control proporcional a la velocidad con que la salida del proceso est cambiando respecto del punto de consigna. Constante de tiempo integral : es el tiempo, generalmente expresado en minutos, que debe transcurrir para que la accin integral alcance (iguale o repita) a la accin proporcional. Constante de tiempo derivativa : es el intervalo de tiempo, generalmente expresado en minutos, en el que la accin derivativa adelanta a la accin proporcional.

Este algoritmo ser utilizado para la programacin en Arduino, de tal manera que la programacin siga los lineamientos necesarios para comportarse como un sistema PID.Diseo general para el estudio

El diseo general consisti de un flujo secuencial a travs de cuatro fases de actividad:

Primera fase: se identificaron los distintos materiales e instrumentos necesarios para el modelamiento y construccin de la planta, evaluando preliminarmente las posibilidades que nos brinda el software a utilizar, tomando en cuenta las ventajas y desventajas de usar los diferentes componentes que estaban a nuestra disposicin y que fueron sugeridos tanto por los miembros del grupo como el profesor. Segunda fase: se procedi a descartar las ideas menos eficientes que se tenan acerca del diseo del controlador de temperatura y se resolvi utilizar un Arduino como interfaz de adquisicin de datos y control, ya que este resulto ser mucho ms econmico y accesible que el controlador con DAQ. Tercera fase: esta fase consiste en la construccin y modelacin de la planta. El diseo de la planta se program en el Arduino de tal manera que las constantes PID fueron capaces de variar segn la seal de error obtenida, lo cual nos permiti sintonizar correctamente las variables del control PID, para obtener un correcto funcionamiento del sistema. Cuarta fase: se realizaron diferentes pruebas de laboratorio y obtuvimos datos pertinentes para el anlisis del funcionamiento del sistema.

Mtodos y materiales

Mtodo: Un control de temperatura se realiza para variar la temperatura dentro de un espacio cerrado.Mediante pruebas a la planta y ancho de pulso generado por Arduino se tom un promedio de los datos adquiridos y se los proces mediante graficas elaboradas en Excel para su anlisis.Este proyecto se basa en un control PID de temperatura para un pequeo recinto construido de madera, el mismo, se encargar de mantener la temperatura dentro del mismo, lo ms cerca posible del valor deseado. La caja cuenta con una pequea puerta, la cual se utiliza para hacer ingresar una perturbacin al sistema, luego que la perturbacin es introducida, el PID deber compensar para la perturbacin y llevar la temperatura de la caja de vuelta a la temperatura seleccionada.La caja se arm utilizando tablas de madera de pinotea, la cual es una madera dura y muy densa, la cual evita que haya muchas fugas de calor a travs de sus paredes debido a conduccin. Todas las esquinas de la caja fueron selladas con silicn rtv para evitar fugas de calor a travs de las uniones. Las tablas, fueron unidas utilizando clavos, y la tapa se uni al resto de la caja utilizando dos bisagras, las cuales, permiten un fcil acceso al interior de la caja, donde se alojan tres focos incandescentes de cien watts cada uno y tres rosetas de porcelana. Se utilizaron tres focos para permitir que la caja alcanzara temperaturas altas en poco tiempo y que, al parpadear los mismos, entregaran suficiente calor para compensar las prdidas. Se eligieron focos de 100 watts debido a que los mismos, disipan alrededor de 80% de la potencia elctrica suministrada en calor y debido a su gran rea superficial, los mismos pueden irradiar su calor hacia el aire de la caja mucho ms rpido que una resistencia de potencia.Para medir la temperatura del recinto se utilizaron dos termmetros, uno de ellos es LM35, el cual es un termmetro muy comnmente utilizado en proyectos de electrnica de bajo costo. Este termmetro tiene una salida proporcional y bastante precisa. El LM35 es capaz de leer temperaturas desde -55C hasta 150C, lo que lo hace una eleccin bastante acertada para este proyecto, ya que esperamos que las temperaturas lleguen hasta 120C dentro de la caja. La conexin del LM35 es muy sencilla, el mismo cuenta con tres pines, dos de los cuales se utilizan para alimentacin, la cual debe ser entre 0 a 5V, pueden ser fcilmente suministrados por un Arduino, el tercer pin, el central, es la salida de voltaje, la cual deber conectarse al micro controlador en un puerto anlogo, ya que el LM35 enva la lectura de temperatura como un voltaje en el orden de los mili voltios. El voltaje que es recibido por el LM35 debe ser multiplicado por cien para obtener el valor en grados Celcius. Se utiliz tambin un sensor de control, el cual se basa en un termmetro digital para carnes, el cual se introdujo a travs de un pequeo agujero en la tapa de la caja.Se calcul que los tres focos encendidos en conjunto consumen 2.5 A en total, por lo que se utiliz cable calibre 12 para su conexin con el AC ya que este calibre es el mnimo requerido para realizar instalaciones elctricas. Materiales:La elaboracin de la planta se bas en la utilizacin de materiales aislantes que no permitan la fcil fuga de calor hacia el exterior, permitiendo que el calor sea conservado para un mejor control, adems se incluy un agitador para homogeneizar la temperatura de la planta. 3 bombillos de 100 W Sensor LM35El circuito de potencia fue realizado en un protoboard, conteniendo los siguientes elementos: Rel 5 V Diodo 4004 Transistor 2N2222 Resistencia 10 kLa conexin se realiza en forma serial mediante una placa de Arduino.

Figura 2: Construccin de la planta.

Figura 3: Circuito acondicionador de la seal.

El circuito acondicionador de la seal consta de un transistor, el cual cumple el papel de proteccin para el Arduino, ya que lo protege de sobrecorrientes. Un diodo que protege al transistor de un voltaje inverso que puede darse en el rel durante su operacin. El rel es el encargado de regular la seal que le llega al actuador de la planta, el cual en nuestro caso es el bombillo.Descripcin del Sistema

La arquitectura del sistema es la tpica de un servosistema de una entrada y una salida, con el controlador en cascada con la planta, como se muestra en la figura 4:

Figura 4: Estructura del sistema. La planta a controlar est constituida por un sistema trmico y como tal posee una dinmica lenta, siendo esto una ventaja a la hora de realizar prcticas introductorias al control, puesto que puede verse la evolucin del comportamiento del regulador. Una desventaja de utilizar dinmicas lentas es el tiempo empleado en los diferentes pasos para el diseo del controlador.El sistema trmico est constituido por 3 bombillos de 100 W que se encargan de calentar la planta. La etapa de potencia est basada en la utilizacin de un rel conectado al Arduino, de tal forma de que haya una conexin no fsica entre la salida digital del Arduino y el cual al ser excitado por la seal del Arduino permite pasar corriente alterna a travs de l, permitiendo as encender la carga de calefaccin. As mismo, la realizacin de este proyecto es material suficiente para contemplar todos los aspectos de diseo de controladores vistos durante el curso.La siguiente formula es utilizada para transformar la seal de voltaje del sensor LM35 (su esquema se puede observar en la figura 5) a una medida de temperatura en nuestra lgica de Arduino:

Esta frmula sale de la relacin del sensor con los grados. El sensor de temperatura LM35 responde a variaciones de 10 mV por cada grado centgrado. Si el sensor detecta 1 grado centgrado a la salida del sensorobtendramos 10 mV. Ejemplo: 26,4C = 264 mV = 0.264 V.Tenemos que el convertidor de analgico a digital es de 10 bits de resolucin, los valores variarn entre 0 y 1023, entonces Vout= (5V*Dato)/1023 siendo ( 0 < Dato < 1023 ) y para ajustar la escala a grados centgrados: Vout = ((5V*Dato)*100)/1023.

En la grfica 1 se representa la linealidad del sensor y la proporcin que existe entre el voltaje entregado por el sensor y la temperatura real en la planta.

Figura 5: Esquema del sensor LM35

Grfica 1: Proporcin entre el voltaje y la temperatura en el sensor

El sensor es alimentado por 5 V en la terminal V+.

Clculos Matemticos

Calculo de (temperatura del recinto final) de la transferencia de calor para diferentes Q de 100W, 200W y 300W.Utilizamos la ecuacin: ;Despejando para :

Datos:

Para :

Para :

Para :

Para obtener el modelo se utiliz,63.3% 117C=tiempo@75C=88.8 seg (vamos a la grfica 2 y buscamos el punto donde la curva es de 75C y obtenemos el tiempo de 88.8 seg).

Grafica 2: Modelo experimental de la grfica.Se utiliz el mtodo de sintonizacin de Ziegler-Nichols, en donde a partir de la grfica 1 se obtiene y estos datos se aplican en las siguientes formulas:

El mtodo de Ziegler-Nichols permite ajustar o "sintonizar" unregulador PIDde forma emprica, sin necesidad de conocer las ecuaciones de la planta o sistema controlado.

Resultados

Los resultados obtenidos sobre el comportamiento de la planta frente a diferentes temperaturas durante un periodo de tiempo.

Grfica 3: Comportamiento de la planta frente un aumento de la temperatura en el tiempo.La grfica 3 muestra el aumento de la temperatura en el transcurso del tiempo. Puede observarse una lectura de temperatura continua durante un periodo de tiempo antes de darse el aumento, lo cual se denomina tiempo muerto .Debido a que nuestro sistema puede ajustar las variables de proporcionalidad PID , los resultados obtenidos estuvieron dentro de lo esperado, lo cual tambin estabilizo las oscilaciones en las lecturas hechas.

Programacin: Cdigo de Arduino

Declaracin de los puertos a utilizar en el Arduino.

El bulbPin 8 es el pin digital que se encarga de mandar la seal al actuador en nuestro caso el bombillo. Antes de llegar al bombillo tiene que pasar por un acondicionador que es el rel.El analog_pin 2 corresponde al sensor. Recoge la seal del sensor y la manda al bulbPin 8. Declaracin de las variables: int C = 0;float Ti = 0; // variable to store the value coming from the sensorfloat Td;int state = 0;float eo;float en;float uo = 0;float Ts;int umin = 120;int umax = 120;float kp = 5;int cont = 0;float bmillis;unsigned long previousMillis = 0;float bulbPeriod;

float Tio;float Io = 0;float In=0;float Ino=0;unsigned long currentMillis;// PROGRAMA DE TEMPERATURAfloat temperatura;

Asignacin de los puertos a utilizar y establecimiento de la temperatura de referencia:void setup () {Serial.begin(9600);// Serial.print(Ti);// Serial.println(" oC");

pinMode(bulbPin, OUTPUT);//Serial.begin(9600);Td = 60;}

void loop(){

if (C==0) {Tio=analogRead(analog_pin);Tio=5.0*Tio*100.0/1024.0;Ti=Tio;Serial.println("N");Serial.print(Ti);Serial.println("N");Serial.print(Tio);eo = Td - Tio;C=1;}

Ti = analogRead(analog_pin);Ti = 5.0*Ti*100.0/1024.0; if (((Ti-Tio > 5)||(Ti-Tio < -5))){Ti = Tio;}else{Tio = Ti;}

Serial.print(millis());Serial.print(" ");Serial.print("Ti: ");Serial.print(Ti);if ((bmillis == 0)==(cont==0)){ //Ocurren dos iteraciones que determinan el valor de Ts. bmillis =millis()-bmillis; Ts = bmillis/1000; cont = !cont; Serial.print("Ts: ");Serial.println(Ts);}

if (Serial.available()) { Td = Serial.parseInt(); Serial.print("Td: "); Serial.println(Td); uo=0; eo=0; Io=0; } while (Td == 0){if (Serial.available()) { Td = Serial.parseInt(); uo = 0; Io = 0; } digitalWrite(bulbPin, HIGH);

Ti = analogRead(analog_pin);Ti = 5.0*Ti*100.0/1024.0;Serial.print("M");Serial.print(Ti);Serial.println("M");/*if ((Ti-Tio > 5)||(Ti-Tio < -5)){Ti = Tio;}else{Tio = Ti;}*/Serial.print(millis());Serial.print(" ");Serial.print("Ti: ");Serial.println(Ti);

} en = Td - Ti;uo = PID(eo, Td, en, uo, Ts, kp);/*Serial.print("en: ");Serial.println(en);Serial.print("eo: ");Serial.println(eo);Serial.print("Td: ");Serial.println(Td);*/Serial.print(" uo: ");Serial.println(uo);

if (en > 0) { bulbPeriod = constrain(map(uo,0,umin*kp/5,100,0),0,100);} else { digitalWrite(bulbPin, HIGH); bulbPeriod = 1000000; }/*

Serial.println(fanIntensity);*/

/*Serial.print("bulbPeriod: ");Serial.println(bulbPeriod);*///Writes the on/off interval to the bulb.currentMillis = millis();/*Serial.print("C-:"); Serial.println(currentMillis - previousMillis); Serial.println(1-bulbPeriod/100);*/ if (state == HIGH){ if(currentMillis - previousMillis > ((1-bulbPeriod/100)*1000)) { previousMillis = currentMillis; state = LOW; } } else{ if(currentMillis - previousMillis > (bulbPeriod)*1000/100) { previousMillis = currentMillis; state = HIGH; }}/* Serial.print("state: "); Serial.println(state);*/ digitalWrite(bulbPin, state);eo=en;}

float PID(float eo, float setpoint, float en, float uo, float Ts, float kp){ float u; float P; float I; float D; float integral; float ki=0.8*kp; float kd=0.5*kp; integral=(en+eo)*Ts/2; P = kp*en; I = ki*(integral+Io+In+Ino); D = kd*(en-eo)/Ts; //Ino=In; //In=Io; Io=integral+Io; /* Serial.print("P: "); Serial.println(P); Serial.print("I: "); Serial.println(I); Serial.print("D: "); Serial.println(D); */ u = P + I + D;return u;}

Discusin

Para disear cualquier controlador primero hay que tener en claro todos los aspectos que componen uno. El tiempo de muestreo es uno de los factores primordiales, pues si no es elegido de manera adecuada, la planta no se ver reflejada correctamente y los datos que reciba sern muchas veces descartados, interfiriendo en el control. La adquisicin de datos se realiza de forma serial con ayuda de una placa Arduino, la cual ayuda en la comunicacin con el microprocesador, y optimiza el trabajo pues al ordenador le ayuda con tiempo de comunicacin.

Conclusin

Es posible utilizar el Arduino como sistema de adquisicin de datos para el LabView, sin embargo, durante la traduccin del proceso, de LabView a Arduino existe un tiempo de retraso de aproximadamente 18 segundos, el cual perjudica considerablemente el comportamiento de un sistema sensible al tiempo, como lo es, un control de temperatura basado en PID, es por esto que decidimos utilizar programacin en Arduino, para evitar en anteriormente mencionado tiempo de retraso.

Las seales obtenidas por los sensores, muy comnmente vienen mezcladas con ruido, el cual debe ser eliminado para poder obtener una seal confiable, la cual pueda ser usada como un parmetro valido para la retroalimentacin del controlador. Durante esta experiencia fueron planteados diferentes mtodos para evitar el ruido en nuestra medicin de temperatura, sin embargo, varios de ellos presentaron complicaciones, triunfando as un mtodo de simple comparacin.

Fuentes de informacin

Bibliografa

OGATA, KATSUHIKO. Sistemas de Control de Tiempo Discreto. Segunda Edicin. Ed. Prentice-Hall Hispanoamericana, Mxico. 1996.

Webgraf

URL:http://www.utp.ac.pa/documentos/2010/pdf/RevistaI_D_pags72_0.pdf URL:http://diymakers.es/sensores-en-entradas-analogicas-de-arduino/

Anexo

22