Planta de Primer Orden con Sensor de Temperatura LM35.

Transcripción

Planta de Primer Orden con Sensor de Temperatura LM35.
Práctica 03.- Planta de Primer Orden con Sensor
de Temperatura LM35.
Francisco Javier Díaz Galindo
Pedro Antonio Montor Láscares
Mario Ortíz Rosas
27 de septiembre de 2013
Índice general
1. Introducción
2
2. Marco Teórico
2.1. Convertidor Analógico-digital (A/D)
2.2. Matlab . . . . . . . . . . . . . . . . .
2.3. Arduino . . . . . . . . . . . . . . . .
2.4. Sensor LM35 . . . . . . . . . . . . .
3. Desarrollo y resultados
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
4
4
5
4. Conclusiones
11
Bibliografía
12
Lista de Figuras
13
1
Capítulo 1
Introducción
En la actualidad el uso de sistemas digitales es altamente elevado, el procesamiento de señales se hace con la computadora prácticamente. Es por eso que
es necesario saber como adquirir estas señales, cuales son los parámetros que
interfieren en la adquisicón de estas señales y como visualizarlo en la PC es lo
que se realizará en la presente práctica.
2
Capítulo 2
Marco Teórico
Aquí se presentará la teoría de una manera reducida de los elementos que
conforman nuestro sistema, para información más detallada se puede consultar
la bibliografía.
2.1.
Convertidor Analógico-digital (A/D)
Un convertidor analógico-digital, también conocido como codificador es un
dispositivo que convierte una señas analógica en una señal digital, usualmente
una señal codificada numéricamente. Dicho convertidor se necesita como una interfaz entre un componente analógico y uno digital. Con frecuencia un circuito
de muestre y retención es una parte integral de un convertidor A/D disponible
comercialmente. La conversión de una señal analógica en la señal digital correspondiente (número binario) es una aproximación, ya que la señal analógica
puede adoptar un número infinito de valores, mientras la señal digital
puede formar un conjunto de dígitos finitos. Este proceso de aproximación
se pueden formar mediante un conjunto finito de dígitos está limitada. [1]
2.2.
Matlab
MATLAB es un acrónimo de Matrix Laboratory. Actualmente es uno de
los entornos de programación más usados en el campo académico como en la
industria para la realización de cálculos poderosos y creación de interfaces.
El lenguaje de programación proporciona un sencillo acceso a algoritmos numéricos que incluyen matrices, considerado como un lenguaje de programación
matemático de alto nivel integrado en un entorno gráfico amigable, visualización de datos, funciones, gráficas 2D y 3D, procesamientos de imágenes, video,
computación numérica, etc. Particularmente, en ingeniería es una herramienta muy poderosa para realizar aplicaciones en mecatrónica, robótica, control y
automatización.[2]
3
Figura 2.1: Logo de Matlab
2.3.
Arduino
La tarjeta de instrumentación ARDUINO tiene una plataforma con base
a un microcontrolador ATMEGA 328-P y ambiente gráfico de programación
con la ventaja que posee arquitectura abierta para sofware y hardware. Tiene
los componentes electónicos y programación requerida para realizar control,
procesamiento digital de señales, adquisición de lecturas de sensores, puertos
digitales I/O, entradas y salidas analógicas, timers, interfaz para computadora
USB. El software de la tarjeta es gratuito y se puede programar desde MATLAB.
Figura 2.2: Logo de Arduino
2.4.
Sensor LM35
El LM35 es un sensor de temperatura con una precisión calibrada de 1◦ C
y un rango que abarca desde -55◦ C a +150◦ C. El modelo más popular de esta
matricula es el típico en forma de transistor con tres patas, dos de ellas para
alimentarlo y la tercera entrega el valor un valor analógico, en la señal. La salida
es lineal y equivalente a 10mV/◦ C.
4
Capítulo 3
Desarrollo y resultados
La adquisición de datos es descrita por el diagrama de flujo(figura 3.1). Para
obtener la medición de temperatura del sensor LM35(figura 3.5), se lleva a cabo
la conexión entre el sensor y la tarjeta, conectando la pata media del transistor
a una terminal del puerto analógico del arduino, en este caso, A0.
El programa cargado en el Arduino MEGA se muestra en el siguiente código,
la lectura del valor analógico se hace por medio de la entrada A0, y posteriormente se transmite a la computadora.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Listing 3.1: Código implementado para la adquisición de la señal generada por
el sensor LM35.
// d e f i n i r v a r i a b l e s
i n t out1 = 0 ;
void setup ( ) {
// i n i c i a l i z a r p u e r t o s e r i e
S e r i a l . begin (9600);
}
void loop ( ) {
// l e e r p i n e s
out1 = analogRead (A0 ) ;
// e n v i a r
S e r i a l . p r i n t ( out1 ) ;
Serial . print ( " , " );
// e s p e r a r
delay ( 2 5 ) ;
}
Una vez lograda la lectura del valor analógico por Arduino, MATLAB procesa esos datos y opera con ellos. Normalmente el puerto para la comunicación
Arduino-PC es el COM3, pero en este caso se usa el COM7. Posteriormente se
5
tiene que definir un tiempo de adquisición; de igual manera es importante mencionar que el protocolo de comunicación serial necesita definir una velocidad de
transferencia de datos, fijada para este caso en 9600 baudios.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Listing 3.2: Código implementado para la obtención de la N muestra del sistema
digital.
% c r e a c i ó n de o b j e t o s e r i e , para l e e r d a t o s d e l a r d u i n o
%b o r r a r p r e v i o s
d e l e t e ( i n s t r f i n d ( { ’ Port ’ } , { ’COM7 ’ } ) ) ;
%c r e a r o b j e t o s e r i e
s = s e r i a l ( ’COM7 ’ , ’ BaudRate ’ , 9 6 0 0 , ’ Terminator ’ , ’CR/LF ’ ) ;
warning ( ’ o f f ’ , ’MATLAB: s e r i a l : f s c a n f : u n s u c c e s s f u l R e a d ’ ) ;
% abrir puerto
fopen ( s ) ;
%p a r é m e t r o s de medidas
tmax= 1 5 ;
%tiempo de c a p t u r a en s
rate = 33;
%r e s u l t a d o e x p e r i m e n t a l ( comprobar )
%p r e p a r a r l a f i g u r a
f = f i g u r e ( ’Name ’ , ’ Captura ’ ) ;
a = a x e s ( ’XLim ’ , [ 0 tmax ] , ’YLim ’ , [ 0 5 . 1 ] ) ;
l 1 = l i n e ( nan , nan , ’ C o l o r ’ , ’ r ’ , ’ LineWidth ’ , 2 ) ;
x l a b e l ( ’ Tiempo ( s ) ’ )
y l a b e l ( ’ V o l t a j e (V) ’ )
t i t l e ( ’ Captura ␣ de ␣ v o l t a j e ␣ en ␣ tiempo ␣ r e a l ␣ con ␣ Arduino ’ )
g r i d on
h o l d on
%n u c l e o d e l programa
%i n i c i a l i z a r
v1 = z e r o s ( 1 , tmax∗ r a t e ) ;
i = 1;
t = 0;
%e j e c u t a r b u c l e cronometrado
tic
w h i l e t<tmax
t = toc ;
%l e e r d e l p u e r t o s e r i e
a = f s c a n f ( s , ’ %d, %d ’ ) ;
v1 ( i ) = a ( 1 ) ∗ 5 / 1 0 2 4 ;
% d i b u j a r en l a f i g u r a
x = l i n s p a c e (0 , i / rate , i ) ;
6
44
s e t ( l 1 , ’ YData ’ , v1 ( 1 : i ) , ’ XData ’ , x ) ;
45
drawnow
46
%s e g u i r
47
i = i + 1;
48 end
49 % r e s u l t a d o d e l cronometro
50 c l c ;
51 f p r i n t f ( ’ %g ␣ s ␣ de ␣ c a p t u r a ␣ a ␣ %g ␣ cap / s ␣ \n ’ , t , i / t ) ;
52
53
54 f c l o s e ( s ) ;
55 d e l e t e ( s ) ;
56 c l e a r s ;
La planta(figura 3.3) consiste en un foco de 100 watts (fuente de calor),
un ventilador y una caja metálica donde se fija el foco y el sensor LM35. Este
cuenta con un switch para encender y apagar el foco a voluntad. El sensor mide
la variación de temperatura producida por la fuente de calor. La planta, al
tratarse de un sistema de primer orden se utilizó la siguiente ecuación.
G(s) = 1/T s + 1
(3.1)
La siguiente planta al ser caracterizada se obtiene la siguiente función de
transferencia. Con T = 145 segundos, es el tiempo en el que la temperatura
alcanza el 63,2porciento de la temperatura total que corresponde a 73◦ C. La
temperatura incial medida por el LM35 es de 28◦ C.
G(s) = 1/145s + 1
(3.2)
La comparación de la planta caracterizada con los datos obtenidos con Arduino se muestran en la figura 3.5
7
Figura 3.1: Diagrama de flujo del proceso de adquisición de la señal producida
por el LM35.
8
Figura 3.2: Sensor conectado al Arduino.
Figura 3.3: Planta en funcionamiento.
9
Figura 3.4: Sensor LM35.
Figura 3.5: Gráfica del Sistema de Primer Orden.
10
Capítulo 4
Conclusiones
Combinar el uso de Arduino con Matlab resulta ser muy útil, porque nos
permitió con un conjunto de datos capturados caracterizar nuestra planta. Además se logró observar su comportamiento en tiempo real. Se logro comporobar
los resultados obtenidos de forma experimental y teórica. A pesar de usar un
sensor de temperatura LM35, el cual está calibrado para tener lecturas exactas
en mediciones cercanas a 1◦ C, consume baja corriente(60 micro-amperes) y baja impedancia de salida. Las conexiones presentan ruido al leer los datos con
el Arduino. Por consiguiente se pueden observar variaciones entre lo obtenido
experimentalmente y teóricamente.
11
Bibliografía
[1] Ogata, Katsuhiko (1996). Sistemas de Control en Tiempo discreto. 2da.
Edición. Editorial Prentice Hall Hispanoamericana S. A.
[2] Reyes Cortés, F.; Cid Monjaraz, J. & Vargas Soto, E. (2013). Mecatrónica,
Control y Automatización. Alfaomega: México.
[3] Reyes Cortés, F. (2012). MATLAB Aplicado a Robótica y Mecatrónica. Alfaomega: México.
12
Índice de figuras
2.1. Logo de Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Logo de Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
3.1. Diagrama de flujo del proceso de adquisición de la señal producida
por el LM35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Sensor conectado al Arduino. . . . . . . . . . . . . . . . . . . . .
3.3. Planta en funcionamiento. . . . . . . . . . . . . . . . . . . . . . .
3.4. Sensor LM35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5. Gráfica del Sistema de Primer Orden. . . . . . . . . . . . . . . .
8
9
9
10
10
13