You are on page 1of 22

Universidad Tecnolgica de Panam

Facultad de Ingeniera Elctrica


Ingeniera 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, Manuel
Gonzlez, Jorge
Guerrero, Christian
Maldonado, Onel
Pacheco, Etzel
Rial, Bernab
Fecha de entrega:
Viernes 3 de Julio 2015.

ndice
ndice.......................................................................................................................................2
Introduccin............................................................................................................................3
Marco terico..........................................................................................................................4
Diseo general para el estudio................................................................................................5
Mtodos y materiales..............................................................................................................6
Descripcin del Sistema..........................................................................................................8
Clculos Matemticos...........................................................................................................10
Resultados.............................................................................................................................12
Programacin: Cdigo de Arduino.......................................................................................13
Discusin...............................................................................................................................18
Conclusin............................................................................................................................19
Fuentes de informacin.........................................................................................................20
Anexo....................................................................................................................................21

Introduccin
Un controlador es el encargado de regular o controlar uno o ms procesos.
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 un dispositivo basado en hardware y software, que
funciona mediante 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
controlador PID,
cual se caracteriza por combinar
siguiente algoritmo de control:

u ( t ) =K p e ( t )+

un
el
tres acciones (P, I y D) mediante el

de(t)
1
e ( t ) dt+T d
=P+ I + D

Ti
dt

Este algoritmo est considerado como el PID estndar por la ISA (Instrument Society of
America), en donde e ( t ) es el error de la seal y u ( t ) 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.

( T i) : es el tiempo, generalmente expresado en

Constante de tiempo integral

minutos, que debe transcurrir para que la accin integral alcance (iguale o repita) a
la accin proporcional.
Constante de tiempo derivativa ( T d ) : 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
6

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 LM35

El circuito de potencia fue realizado en un protoboard, conteniendo los siguientes


elementos:

Rel 5 V
Diodo 4004
Transistor 2N2222
Resistencia 10 k

La 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.
8

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:
C=5.0Dato100 /1023
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 sensor obtendramos 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 T 2

(temperatura del recinto final) de la transferencia de calor para

diferentes Q de 100W, 200W y 300W.


Utilizamos la ecuacin:
Q=A( T 42 T 41 ) ;
Despejando para

T2 :
T2=

Q
+T 14
A

Datos:

=0,84
2
2
A=0,0713 m ( 6 )=0,4278m

w
m .K4

=5,67 x 108

T 1 =26 +273=299 K

10

Q1=100 w

Q2=200 w

Q3=300 w

Para

Q1 :

T2=4

100 w
+299 K 4
w
( 0,84 ) . 5,67 x 108 2 4 . (0,4278 m2 )
m .K

T 2 =337,02 K 273
T 2 =64,02

Para

Q2 :

T2=4

200 w
+299 K 4
w
( 0,84 ) . 5,67 x 108 2 4 . (0,4278 m2 )
m .K

T 2 =365,30 K 273
T 2 =92,03
Para

Q3

T2=4

300 w
+299 K 4
w
( 0,84 ) . 5,67 x 108 2 4 . (0,4278 m2 )
m .K

T 2 =388,23 K 273

11

T 2 =115,23
Para obtener el modelo se utiliz,
=tiempo@ 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).
K=

117
=1.3 1
88.8

td=27.11 seg
G planta ( s )=

e27.11s 1.31
88.8 s+ 1

Planta de Temperatura 100% Duty Cicle


120.00
100.00
80.00

Temper atura C

60.00
40.00
20.00
0.00
0:57:36

1:04:48

1:12:00

Tiempo

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 , td y K y estos datos se aplican en las siguientes formulas:

12

Kp=

1.288.8
=4
1.3126.11

Ki=226.11=52.2
Ki=0.526.11=13. 6

Gc =4 (1+

1
+13.2s)
52.2s

El mtodo de Ziegler-Nichols permite ajustar o "sintonizar" un regulador PID de 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.

13

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 ( t d ) .
Debido a que nuestro sistema puede ajustar las variables de proporcionalidad PID
( K p , T i ,T d ) , 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 sensor
float Td;
int state = 0;
float eo;
float en;
float uo = 0;
float Ts;

14

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 TEMPERATURA
float 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;
}

15

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);

16

}
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;
}

17

}
/*
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;
}

18

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.

19

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.

20

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/

21

Anexo

22

You might also like