Control de Temperatura Con Lógica Difusa para Un Sistema de PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 129

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

FACULTAD DE INGENIERÍA

CONTROL DE TEMPERATURA CON LÓGICA


DIFUSA PARA UN SISTEMA DE
ESPECTROSCOPIA LÁSER

TESIS
Que para obtener el título de
Ingeniero Eléctrico-Electrónico

PRESENTA
Arturo Espino Núñez

DIRECTOR DE TESIS
Dr. Fernando Ramírez Martínez

Ciudad Universitaria, Cd. Mx., 2017

~1~
Contenido
Índice de Figuras ............................................................................................................................. 5
Agradecimientos: ................................................................................................................................ 9
Capítulo 1 INTRODUCCIÓN................................................................................................................ 10
1.1 Descripción del problema. ................................................................................................ 10
1.2 Rubidio .............................................................................................................................. 11
1.2.1 Rubidio 85 y Rubidio 87............................................................................................. 12
1.3 Átomos de Rydberg ........................................................................................................... 13
Capítulo 2 LÓGICA DIFUSA .............................................................................................................. 15
2.1 Lógica difusa ............................................................................................................................ 15
2.1.1Conjunto difuso. ................................................................................................................ 15
2.1.2 Función de pertenencia.................................................................................................... 18
2.1.3 Funciones estándar de pertenencia difusa. ..................................................................... 19
2.1.4 Operaciones de conjuntos difusos. ................................................................................. 22
 Unión ................................................................................................................................. 22
 Intersección ....................................................................................................................... 23
 Complemento .................................................................................................................... 24
2.2 Máquina inferencia difusa....................................................................................................... 25
2.2.1 Difusión ............................................................................................................................ 25
2.2.2 Razonamiento .................................................................................................................. 27
2.2.2.1 Máquina de Inferencia MAMDANI ................................................................................ 27
2.2.3 Desdifusión ....................................................................................................................... 29
2.2.3.1 Método del Centroide ................................................................................................... 29
2.2.3.2 Método Centro de Máximos (COM).............................................................................. 30
Capítulo 3 ESPECTROSCOPIA ............................................................................................................. 31
3.1 Espectroscopia ........................................................................................................................ 31
3.1.1 Espectros de emisión y absorción .................................................................................... 32
3.2 Láser. ....................................................................................................................................... 34
3.2.1 Funcionamiento ............................................................................................................... 34
3.2.2 Características del láser:................................................................................................... 35
3.3 Espectroscopia Láser ............................................................................................................... 39
Capítulo 4 HORNO LOCAL ................................................................................................................ 40
4.1 Celda de Vidrio con Rubidio .................................................................................................... 40

~2~
4.2 Resistencias de Silicón ............................................................................................................. 41
4.3 Sensores de temperatura ........................................................................................................ 43
4.4 Cubierta adiabática. ................................................................................................................ 45
4.5 Fotodiodo. ............................................................................................................................... 46
Capítulo 5 HARDWARE DE CONTROL DIFUSO ................................................................................... 48
5.1 Microcontrolador .................................................................................................................... 48
 Unidad central de procesamiento. (CPU).......................................................................... 48
 Memoria ............................................................................................................................ 48
 Periféricos.......................................................................................................................... 48
 Reloj................................................................................................................................... 48
5.2 Arduino Mega 2560 ................................................................................................................. 49
5.2.1 AVR ................................................................................................................................... 49
5.3 MSP430G2553 ......................................................................................................................... 50
5.4 Temperatura Objetivo ............................................................................................................. 51
5.5 Pantalla de cristal líquido ........................................................................................................ 52
5.6 Mosfet ..................................................................................................................................... 53
Capítulo 6 SOFTWARE DE CONTROL DIFUSO ................................................................................... 55
6.1 Control Difuso. ........................................................................................................................ 55
6.2 Diseño del Software. ............................................................................................................... 55
6.2.1 Entradas............................................................................................................................ 56
6.2.2 Salida ................................................................................................................................ 59
6.2.3 Reglas Difusas ................................................................................................................... 60
6.2.4 Superficie de control ........................................................................................................ 63
6.3 Programación del software difuso .......................................................................................... 64
ADC MSP430G2553 ................................................................................................................... 66
6.3.1 Programación ................................................................................................................... 68
6.3.2 Programación de la DIFUSIÓN del Error de Temperatura................................................ 68
6.3.3 Programación de la DIFUSIÓN de la Derivada del Error................................................... 69
6.3.4 Programación de las REGLAS DIFUSAS ............................................................................. 70
6.3.5 Programación de la DESDIFUSIÓN ................................................................................... 73
6.3.6 Programa para ARDUINO MEGA 2560 ............................................................................. 74
6.3.7 Programa para MSP430G2553 ......................................................................................... 74
Capítulo 7 IMPLEMENTACIÓN ........................................................................................................... 75

~3~
7.1 Pruebas de control de temperatura ARDUINO ....................................................................... 75
7.1.1 Caracterización. .................................................................................................................... 76
7.2 Pruebas de control de temperatura MSP430 ......................................................................... 87
7.3 Experimentos de espectroscopia. ........................................................................................... 92
7.3.1 Espectros de absorción. ................................................................................................... 95
 Crecimiento poblacional relativo ...................................................................................... 99
Conclusiones: .............................................................................................................................. 101
Bibliografía ...................................................................................................................................... 103
Apéndice A .................................................................................................................................. 105
1. Dimensiones de la celda .................................................................................................. 105
2. Fotodiodo FDS100 ........................................................................................................... 105
3. Resistencias de silicón ..................................................................................................... 106
4. Circuito PCB de acoplamiento de fotodiodo. .................................................................. 107
5. Circuito PCB MSP430G2553 ............................................................................................ 107
6. Hoja de datos sensor LM35 ............................................................................................. 108
7. Hoja de datos IRF540 ...................................................................................................... 111
8. Pines Arduino Mega 2560 ............................................................................................... 114
9. Pines MSP430G2553 ....................................................................................................... 115
10. Programa para Arduino Mega 2560 ............................................................................ 116
11. Programa para MSP430G2553 .................................................................................... 123
Índice de tablas ....................................................................................................................... 129

~4~
Índice de Figuras
Figura 1.1.1. Fluorescencia de 420 nm 10
Figura 1.2.1 Lepidolita 11
Figura 1.2.2 Rubidio 11
Figura 1.2.3 Estructura hiperfina del (a) Rb-85 y (b) Rb-87 12
Figura 1.3.1 Johannes Rydberg 13
Figura 1.3.2 Diferencias entre átomos y átomos Rydberg 14
Figura 2.1.1 Conjunto Difuso 16
Figura 2.1.2 Conjunto Clásico 16
Figura 2.1.3 Conjunto difuso discreto 17
Figura 2.1.4 Conjunto difuso continuo 17
Figura 2.1.5 Función de membresía conjunto clásico 18
Figura 2.1.6 Función de membresía conjunto difuso 18
Figura 2.1.7. Características de la función de membresía 19
Figura 2.1.8 Función de pertenencia Γ 19
Figura 2.1.9 Función de pertenencia L 20
Figura 2.1.10 Función de pertenencia Λ 20
Figura 2.1.11 Función de pertenencia ∏ 21
Figura 2.1.12 Función de pertenencia singleton 21
Figura 2.1.13 Conjunto difuso con tres funciones de pertencia 22
Figura 2.1.14 Unión de conjuntos difusos 22
Figura 2.1.15 Intersección de conjuntos difusos 23
Figura 2.1.16 Complemento de un conjunto difuso 24
Figura 2.2.1 Máquina de inferencia difusa 25
Figura 2.2.2 Conjuntos difusos de velocidad 25
Figura 2.2.2.1 Operación mínimo 28
Figura 2.2.2.2 Proceso de agregación 29
Figura 2.2.3.1 Método del centroide 30
Figura 2.2.3.2 Método COM 30
Figura 3.1.1 Niveles de energía de un átomo de Rb 31
Figura 3.1.2 Espectrómetro de prisma 32
Figura 3.1.3 Obtención de espectro de absorción 33
Figura 3.1.4 Arriba: Espectro de emisión de He Abajo: Espectro de absorción de He 33
Figura 3.1.5 Arriba: Espectro de emisión de N Abajo: Espectro de absorción de N 33
Figura 3.1.6 Arriba: Espectro de emisión de Rb Abajo: Espectro de absorción de Rb 33
Figura 3.1.7 Arriba: Espectro de emisión de Si Abajo: Espectro de absorción de Si 34
Figura 3.2.1 Tipos de emisión 34
Figura 3.2.2 Cavidad láser 35
Figura 3.2.3Frente de Onda Luz Láser 35
Figura 3.2.4 Luz policromática y luz monocromática 36

~5~
Figura 3.2.5 Luz no coherente y luz coherente 36
Figura 3.3.1 Espectro de absorción del Rb en infrarrojo cercano 39
Figura 3.3.2 Laser de 420[nm] 39
Figura 4.1.1 Diagrama del Horno 40
Figura 4.1.2 Celda de vidrio Pyrex con vapor de RB 41
Figura 4.1.3 Absorción Lineal 41
Figura 4.2.1 Resistencias de Silicón 42
Figura 4.2.2 Resistencias en serie 42
Figura 4.2.3 Celda de vidrio, cinta kapton y resistencias 42
Figura 4.3.1 Sensor de temperatura 43
Figura 4.3.2 Respuesta del sensor con diferentes voltajes de alimentación 43
Figura 4.3.3 Celda de vidrio con soporte y sensores de temperatura 44
Figura 4.4.1 Tubo PPR y Tapa para tubo PPR 45
Figura 4.4.2 Cubierta del horno y base de teflón para la celda 45
Figura 4.5.1 Capas de fotodiodo 46
Figura 4.5.2 Fotodiodo FDS100 46
Figura 4.5.3 Capacidad de respuesta FDS100 47
Figura 4.5.4 Circuito de conexión FDS100 47
Figura 5.1.1 Secciones de un microcontrolador 49
Figura 5.2.1Atmel 2560 49
Figura 5.3.1 MSP430G2553 50
Figura 5.4.1 Diagrama esquemático para variar temperatura deseada 51
Figura 5.5.1 Pantalla de cristal líquido 52
Figura 5.6.1 MOSFET encapsulado TO-220 53
Figura 5.6.2 MOSFET internamente 53
Figura 5.6.3 Zonas de operación MOSFET 54
Figura 5.6.4 Modulación por ancho de pulso PWM 54
Figura 5.6.5 Conexión de MOSFET 54
Figura 6.1.1 Controlador difuso 55
Figura 6.2.1 Esquema de controlador difuso PD 55
Figura 6.2.2 Conjunto del Error de temperatura 56
Figura 6.2.3 Conjunto de la Derivada del error de temperatura 58
Figura 6.2.4 Conjunto de salida PWM 59
Figura 6.2.5 Memoria difusa 60
Figura 6.2.6 Operación mínimo 61
Figura 6.2.7 Resultado de la operación mínimo 62
Figura 6.2.8 valores para obtener el porcentaje de ciclo de trabajo 62
Figura 6.2.9 Superficie de control 63
Figura 6.3.1 Convertidores analógicos digitales 64
Figura 6.3.2 registros de almacenamiento para ADC de 10 bits 65
Figura 6.3.3 ADC de aproximaciones sucesivas 66
Figura 6.3.4 Diagrama de bloques de los ADC Familia MSP430 67

~6~
Figura 6.3.5 Diagrama de bloques de los ADC Familia MSP430 68
Figura 6.3.7 Compilación Arduino IDE 74
Figura 6.3.8 Compilación Energia IDE 74
Figura 7.1.0 Diagrama completo del sistema 75
Figura 7.1.1 Estabilidad a 25.4oC 77
Figura 7.1.2 Estabilidad a 30.30oC 77
Figura 7.1.3 Estabilidad a 60.1oC 78
Figura 7.1.4 Curva de enfriamiento del horno 78
Figura 7.1.5 Secciones de enfriamiento 79
Figura 7.1.6 Calentamiento del horno a 23oC 79
Figura 7.1.7 Arduino Estabilidad de temperatura a 23oC 80
Figura 7.1.8 Arduino Estabilidad de temperatura a 27oC 81
Figura 7.1.9 Arduino Estabilidad de temperatura a 50oC 82
Figura 7.1.10Arduino Estabilidad de temperatura a 60oC 82
Figura 7.1.11 Diagrama de resistencias 82
Figura 7.1.12 Capas de mosfet 84
Figura 7.1.13 Resistencias térmicas 84
Figura 7.1.14 Disipador de aluminio 85
Figura 7.1.15 PWM 60% corriente de 0.643A temperatura de 60oC 86
Figura 7.1.16 PWM 60% corriente de 0.643A temperatura de 60oC 86
Figura 7.1.17 PWM 60% corriente de 0.643A temperatura de 60oC 86
Figura 7.2.1 Circuito de MSP430G2553 operando 87
Figura 7.2.2 Calentamiento del horno a 23oC 88
Figura 7.2.3 MSP430 Estabilidad de temperatura a 23oC 88
o 89
Figura 7.2.4 MSP430 Estabilidad de temperatura a 27 C
Figura 7.2.5 MSP430 Estabilidad de temperatura a 50oC 89
Figura 7.2.6 MSP430 Estabilidad de temperatura a 60oC 90
Figura 7.2.7 Figura 7.2.8 Temperatura de horno 35.2oC y temperatura termómetro 33oC 91
Figura 7.2.8 Figura 7.2.8 Temperatura de horno 40oC y temperatura termómetro 39oC 91
Figura 7.3.1 Cavidad óptica littrow 92
Figura 7.3.2 Esquema del experimento de espectroscopia 93
Figura 7.3.3 Absorción de luz láser 93
Figura 7.3.4 Láser Hitachi de 780nm 93
Figura 7.3.5 Horno y fotodiodo FDS100 94
Figura 7.3.6 Medición de luz absorbida 94
Figura 7.3.7 Señal de FDS100 en el osciloscopio 95
Figura 7.3.8 Curva gaussiana 95
Figura 7.3.9 Espectro de absorción a 20oC 96
Figura 7.3.10 Espectro de absorción a 25oC 96
Figura 7.3.11 Espectro de absorción a 30oC 96

~7~
Figura 7.3.12 Espectro de absorción a 35oC 96
Figura 7.3.13 Espectro de absorción a 40oC 96
Figura 7.3.14 Espectro de absorción a 50oC 96
Figura 7.3.15 Grafica de temperatura VS anchura de pozos 98
Figura 7.3.16 Gráfica de temperatura VS profundidad de pozos 98
Figura 7.3.17 Gráfica de temperatura VS Densidad atómica 99

~8~
Agradecimientos:
A mis padres porque gracias a su esfuerzo, consejos y enseñanzas me ayudaron a mi
formación académica.

A mi familia que siempre me ayudó de muchas formas alentándome a no rendirme y ser


mejor persona.

A los doctores del Instituto de Ciencias Nucleares, Dr. José Ignacio Jiménez Mier y Terán,
Dr. Fernando Martínez Ramírez y Dr. Jesús Flores Mijangos por dejarme colaborar en sus
investigaciones de física atómica junto con su equipo de estudiantes, donde agradezco a
Luis Alcántar por su apoyo durante mi estancia en el ICN.

A mis profesores de la carrera por compartirme su conocimiento y ser pacientes conmigo.

A mis amigos por el apoyo mutuo durante nuestra estancia en la facultad y por los buenos
momentos vividos durante esta travesía.

~9~
Capítulo 1 INTRODUCCIÓN
Como parte de las actividades dentro del laboratorio de Átomos Fríos del Instituto de
Ciencias Nucleares de la UNAM, se desarrollan diferentes proyectos encaminados al
estudio de sistemas atómicos. El instrumental necesario para realizar éstas actividades es
muy diverso, pues se requieren desde fuentes de luz láser, sistemas de detección y muestras
gaseosas sobre las cuales se hace incidir la luz. En cada uno de estos aspectos es
fundamental elaborar un trabajo para optimizar el desempeño al momento de la realización
de los experimentos. En particular en este trabajo de tesis se presenta el diseño, la
construcción y el funcionamiento de un horno que será empleado para calentar de manera
controlada celdas de vidrio con Rubidio (Rb) en estado gaseoso, con el propósito de
incrementar el número de átomos de Rb de manera eficiente para la producción de átomos
tipo Rydberg mediante la interacción con tres haces de luz sintonizados en tres diferentes
longitudes de onda, todas ellas localizadas en el infrarrojo cercano.

1.1 Descripción del problema.


Dentro del laboratorio de Átomos Fríos del Instituto de Ciencias Nucleares de la UNAM, el
grupo de investigación necesitaba un controlador de temperatura para un horno de
fabricación local. Este horno debe calentar una celda de vidrio con Rb en estado gaseoso a
una temperatura de entre 30oC a 60oC definida por el usuario; la temperatura elegida debe
permanecer constante durante el experimento de espectroscopia con luz láser. En la Figura
1.1.1 se muestra una celda de vidrio emitiendo fluorescencia de 420 nm generada por la
interacción del vapor de Rb con dos haces de luz láser infrarroja proveniente de dos láseres.

Teniendo la posibilidad de variar la temperatura para este experimento se pueden analizar


los datos obtenidos y saber cuál es la temperatura más óptima para aumentar la
probabilidad de generar átomos de Rydberg, esto se logra al incrementar la densidad del Rb
en estado gaseoso dentro de la celda de vidrio teniendo una mayor cantidad de átomos
donde sus electrones pueden ser excitados con la luz láser que entra en la celda y generar
átomos de Rydberg.

Figura 1.1.1. Fluorescencia de 420nm.

~ 10 ~
1.2 Rubidio
El Rubidio (Rb) es un elemento químico con número atómico 37 y peso atómico de 85.46.
La configuración del Rb en su estado base es: 1s2, 2s2, 2p6, 3s2, 3p6, 3d10, 4s2, 4p6, 5s1; [6]
pertenece al grupo de los metales alcalinos; el grupo incluye Litio
(Li), Sodio (Na), Potasio (K), Rubidio (Rb), Cesio (Cs) y Francio (Fr), cada uno de ellos
tiene sólo un electrón en su nivel energético más externo, lo que los hace altamente
reactivos.

El Rubidio y el Cesio fueron descubiertos en 1861 por el químico alemán Robert Bunsen y
el físico prusiano Gustav Kirchhoff, quien también describió la conservación de energía y
carga en circuitos eléctricos hoy conocidas como “Leyes de Kirchhoff”; juntos realizaban
experimentos de espectroscopia; su nombre se debe a que lo primero que se detectó en la
espectroscopia fueron dos líneas rojas en su espectro de emisión. [13]

El Rubidio se encuentra de manera natural en un mineral llamado Lepidolita mostrada en la


Figura 1.2.1 este mineral contiene Litio, Cesio y Rubidio en su composición.

Figura 1.2.1 Lepidolita [14]


Características del Rubidio:

 Color plateado.
 Es líquido a temperatura ambiente.
 Reacciona violentamente con el agua, hace una reacción con el hidrógeno.
 Arde con una llama de color violeta-amarillo.
 Puede arder espontáneamente cuando tiene contacto con el aire.

Figura 1.2.2 Rubidio [13]

~ 11 ~
1.2.1 Rubidio 85 y Rubidio 87
El Rb cuenta con dos isótopos naturales, el Rubidio-85 con 72% de abundancia y Rubidio-
87 con 28% de abundancia, este último es radioactivo.

En el Laboratorio de átomos fríos del ICN hacen investigaciones sobre la dinámica de los
átomos de Rb-85 y Rb-87 y la estructura hiperfina de cada uno de ellos, en Figura 1.2.3
hay dos diagramas donde se pueden ver los niveles energéticos en donde los átomos pueden
estar si se aplica una longitud de onda específica, esto se logra haciendo interactuar láseres
de longitud de onda infrarroja con las celdas de vidrio que contienen Rb en estado gaseoso.
[6]

Figura 1.2.3 Estructura hiperfina del (a) Rb-85 y (b) Rb-87 [6]
La estructura hiperfina se refiere a la descripción exacta de las longitudes onda que los
electrones del átomo de Rb necesitan para cambiar de nivel orbital. Por ejemplo en ambos
de los isotopos mencionados se observa que su último electrón puede cambiar del nivel
orbital 52S1/2 a 52P1/2 cuando se les hace incidir un haz de luz con una longitud de onda de
794.97 [nm], esta longitud es infrarroja.

*Un 1 nm=1X10-9 m mil millonésima parte de 1 m.

~ 12 ~
1.3 Átomos de Rydberg
Johannes Robert Rydberg (1854-1919) fue un físico sueco conocido principalmente por
concebir la fórmula de Rydberg en 1888, con esta fórmula se puede predecir la longitud de
onda de los fotones emitidos por cambios en los niveles de energía de un electrón en un
átomo de hidrógeno. La Figura 1.3.1 muestra un retrato de Johannes Robert Rydberg [15]

1 1 1
= 𝑅 ( 2 − 2)
𝜆 𝑛1 𝑛2

Fórmula de Rydberg [15]

Siendo n1<n2 λ: es la longitud de onda y R: constate de Rydberg. 𝑹 = 1.097𝑥107 [𝑚−1 ]

La constante física conocida como constante de Rydberg fue llamada así, en su honor, así
como la unidad Rydberg.

Un átomo de Rydberg es un átomo excitado con uno o varios electrones en estados con un
número cuántico principal alto. Por ejemplo la estructura del átomo de Rb termina en el
nivel 5s1, un átomo de Rb tipo Rydberg podría llegar a tener ese último electrón en un nivel
20s1; en palabras simples un átomo de Rydberg es aquel donde uno de sus electrones es
capaz de cambiar de su órbita de valencia a una órbita más alta gracias a la energía que
absorben.

Figura 1.3.1 Johannes Rydberg


En la Figura 1.3.2 se muestra una imagen del modelo atómico de Bohr, en donde se
representa la diferencia entre un átomo y un átomo de Rydberg. Se observa que en el átomo
del lado izquierdo en la última orbita tiene un electrón, cuando a ese átomo se le aplica
energía en forma de luz con la frecuencia correcta para excitarlo, el electrón absorbe esa
energía con la cual brinca a una órbita con mayor nivel energético, cuando uno o más
electrones logran cambiar de orbita se dice que ese átomo es un átomo de Rydberg.

~ 13 ~
Rb

Luz

Átomo en estado de reposo Átomo de Rydberg


Figura 1.3.2 Diferencias entre átomos

Los átomos de Rydberg tienen una vida proporcional al estado energético Rydberg, cuanto
más alta es la energía del estado Rydberg mayor es el tiempo de vida del mismo; esta es
una de las razones por las que estos estados son tan interesantes desde el punto de vista
tecnológico, ya que estos largos tiempos de vida los hace ideales para almacenar y
manipular información cuántica.

Es importante tener la mayor cantidad de átomos a los que se les incida la luz para
aumentar la probabilidad de producir más átomos de Rydberg. El problema para
producirlos es que por el camino propuesto necesitamos poblar de manera eficiente el nivel
energético previo para generar el Rydberg.

~ 14 ~
Capítulo 2 LÓGICA DIFUSA

2.1 Lógica difusa


“Lógica difusa” proviene de la traducción del inglés “Fuzzy Logic” donde la palabra
“fuzzy” tiene como traducción, confuso, nada claro, borroso o difuso.

En el año de 1965 el ingeniero Lotfi Asker Zadeh propuso la teoría de conjuntos difusos de
donde se desprende la lógica difusa, actualmente la lógica difusa es una de las disciplinas
matemáticas más usadas en las nuevas tecnologías, como en sistemas de control ya que se
adapta mejor al mundo real, porque con ella se puede procesar información imprecisa
proveniente de expresiones lingüísticas como “Hace más calor afuera de casa que dentro” o
“Ese auto va muy rápido”, esto es impreciso porque la velocidad rápida puede ser 80 Km/h
o 120 Km/h.

El control difuso consiste en establecer una serie de reglas para controlar acciones: “Si el
cuarto tiene temperatura alta entonces enciende el aire acondicionado”. Así los sistemas
inteligentes de control basados en lógica difusa combinan variables de entrada, y por medio
de una relación de reglas dan como resultado uno o varios valores de salida.

En la lógica clásica se define la pertenencia de los elementos en un conjunto como “Sí


pertenece” (1) o “No pertenece” (0), la lógica difusa acepta pertenecías parciales, define
que la pertenencia de los elementos en un conjunto está entre los valores 0 y 1. Los
conjuntos de lógica clásica tienen fronteras bien definidas, en el caso de la lógica difusa sus
fronteras son imprecisas. Se puede decir que la lógica difusa es la generalización de la
lógica clásica. [1]

2.1.1Conjunto difuso.
Sea U un espacio de objetos y u un elemento genérico de U, en un conjunto clásico A,
como el mostrado en la Figura 2.1.2 se define la colección de elementos u ∊ U de tal
manera que cada u puede pertenecer (u ∊ A) o no pertenecer (u ∉ A) al conjunto A, la
función característica de un conjunto clásico solo puede tener dos valores 0 o 1, es decir su
frontera de pertenencia está bien definida. A diferencia del conjunto clásico, un conjunto
difuso mostrado en la Figura 2.1.1 expresa el grado en que un elemento pertenece al
conjunto. Por lo tanto la función característica de un conjunto difuso puede tener valores
entre 0 y 1, lo que denota el grado de pertenencia de un elemento en el conjunto dado, es
decir su frontera no está estrictamente definida. [11]

~ 15 ~
Figura 2.1.1 Conjunto Difuso Figura 2.1.2. Conjunto Clásico

Definición de un conjunto clásico

A={u|u∊A, UA=[0,1]} donde UA es la función característica de A

UA=0, si u ∉ A y UA=1, si u ∊ A

Definición de un conjunto difuso

A={ (u, μ(u)) | u∊A, 0 ≤ μA(u)≤ 1]} donde μ(u) es la pertenencia del elemento al conjunto
A

Ejemplo conjunto difuso discreto

Sea U={San Francisco, Boston, Los Ángeles}, un conjunto de ciudades donde a una
persona le gustaría vivir representado en la Figura 2.1.3. El conjunto difuso A=”La ciudad
preferida para vivir” puede describirse como A={(San Francisco,0.9), (Boston,0.8), (Los
Angeles, 0.6)}

El universo U es discreto y contiene objetos desordenados, en este caso tres ciudades de


Estados Unidos donde se prefiere vivir. Una representación alternativa del conjunto
discreto es la siguiente. [11]

0.9 0.8 0.6


𝐴= + +
𝑆𝑎𝑛 𝐹𝑟𝑎𝑛𝑐𝑖𝑠𝑐𝑜 𝐵𝑜𝑠𝑡𝑜𝑛 𝐿𝑜𝑠 𝐴𝑛𝑔𝑒𝑙𝑒𝑠

~ 16 ~
Figura 2.1.3 Conjunto difuso discreto [11]

Ejemplo conjunto difuso continuo

Sea U=R+ el conjunto de edades posibles para los seres humanos, el conjunto difuso
continuo B= “Edad aproximada de 50 años”, que puede ser expresado B={(u, μB(u)), |
u∊U} y esta mostrado gráficamente en la Figura 2.1.4 [11]

Figura 2.1.4 Conjunto difuso continúo [11]

Donde la función de pertenencia de la gráfica anterior es representada como:


1
𝜇𝐵 (𝑢) = 𝑢−50 4
1+( )
10

Una representación alternativa del espacio difuso continuo es la siguiente:


1
𝐵=∫ ⁄𝑢 Donde los símbolos de integración y división, sólo son una notación.
𝑢−50 4
1+( 10 )

~ 17 ~
2.1.2 Función de pertenencia
La función de pertenencia o función de membresía es aquella relación que asocia a cada
elemento el grado que pertenece a un conjunto. En la Figura 2.1.5 se observa gráficamente
la función de pertenencia de un conjunto clásico y en la Figura 2.1.6 se observa de forma
gráfica la función de pertenencia de un conjunto difuso.

U(u) μ(u)

No Sí
No pertenece Sí pertenece pertenece pertenece

Figura 2.1.5. Función de pertenencia Figura 2.1.6. Función de pertenencia


conjunto clásico conjunto difuso

Debido a que toda la información de un conjunto difuso está descrita en la función de


pertenencia, es útil desarrollar términos que describen dicha función. Una función de
pertenencia está formada por tres partes esenciales, núcleo, base y fronteras; en la Figura
2.1.7 se observa de manera gráfica cada sección que compone a la función de pertenencia
difusa.

 Núcleo: Está definido como la región del universo donde los elementos (u) dentro
del conjunto difuso A tienen valor de 1, es decir pertenecen totalmente al conjunto.
µ𝐴 (𝑢) = 1
 Base: está definida como la región del universo donde los elementos (u) no son
cero, es decir pertenecen al conjunto difuso en cierto grado.
µ𝐴 (𝑢) ≠ 0
 Fronteras: en estas regiones del universo los elementos son diferentes de cero pero
no pertenecen totalmente al conjunto, es decir su grado de pertenencia está entre 0 y
1.
0 < µ𝐴 (𝑢) < 1

~ 18 ~
Núcleo

Base

Frontera Frontera

Figura 2.1.7. Características de función de pertenencia difusa

2.1.3 Funciones estándar de pertenencia difusa.


Las funciones expuestas a continuación con sus respectivas gráficas son las funciones más
comunes para desarrollar aplicaciones de control difuso.

 Función Gamma (Γ) mostrada en la Figura 2.1.8


0, si 𝑢 < 𝑎;
𝑢−𝑎
𝛤(𝑢; 𝑎, 𝑏) { , 𝑠𝑖 𝑎 ≤ 𝑢 ≤ 𝑏;
𝑏−𝑎
1, si 𝑢 > 𝑏.

Figura 2.1.8. Función de pertenencia Γ

~ 19 ~
 Función lambda (L) mostrada en la Figura 2.1.9
1, si 𝑢 < 𝑏;
𝑐−𝑢
 𝐿(𝑢; 𝑎, 𝑏) { 𝑐−𝑏 , 𝑠𝑖 𝑏 ≤ 𝑢 ≤ 𝑐;
0, si 𝑢 > 𝑐.

Figura 2.1.9. Función de pertenencia L

 Función Triangular (Λ) mostrada en la Figura 2.1.10


0, 𝑠𝑖 𝑢 < 𝑎;
𝑢−𝑎
, 𝑠𝑖 𝑎 ≤ 𝑢 ≤ 𝑏;
𝑏 −
𝛬(𝑢; 𝑎, 𝑏, 𝑐) = 𝑐 − 𝑢 𝑎
, 𝑠𝑖 𝑏 ≤ 𝑢 ≤ 𝑐;
𝑐−𝑏
{ 0, 𝑠𝑖 𝑢 > 𝑐.

Figura 2.1.10. Función de pertenencia Λ

~ 20 ~
 Función Trapezoidal (∏) mostrada en la Figura 2.1.11

0; 𝑠𝑖 𝑢 < 𝑎;
𝑢−𝑎
, 𝑠𝑖 𝑎 ≤ 𝑢 ≤ 𝑏;
𝑏−𝑎
1 , 𝑠𝑖 𝑏 ≤ 𝑢 ≤ 𝑐;
∏(𝑢; 𝑎, 𝑏, 𝑐 , 𝑑) = 𝑑 − 𝑢
, 𝑠𝑖 𝑐 ≤ 𝑢 ≤ 𝑑;
𝑑−𝑐
0, 𝑠𝑖 𝑢 > 𝑑.
{

Figura 2.1.11. Función de pertenencia ∏

 Función Impulso o Singleton mostrada en la Figura 2.1.12


1; 𝑠𝑖 𝑢 = 𝑎
𝜇𝐴(𝑢) = {
0; 𝑠𝑖 𝑢 ≠ 𝑎

Figura 2.1.12. Función de pertenencia Singleton

A partir de las funciones expuestas anteriormente se pueden construir conjuntos difusos,


donde las funciones se intersecten entre si preferentemente a una pertenencia de 0.5, como
el siguiente ejemplo mostrado en la Figura 2.1.13, además de esto, a cada función de
membresía se le puede nombrar con una etiqueta lingüística.

~ 21 ~
Figura 2.1.13 Conjunto difuso con tres funciones de pertenencia

2.1.4 Operaciones de conjuntos difusos.


Los conjuntos difusos al igual que los conjuntos clásicos también cumplen operaciones
matemáticas de conjuntos.

Sea A y B dos conjuntos difusos en el universo U con funciones de membresía µA(u) y


µB(u) respectivamente. El conjunto teórico de operaciones unión, intersección y
complemento están definidas por sus funciones de membresía a continuación. Los
diagramas de cada operación se pueden observar en la Figuras 2.1.14-2.1.16

 Unión: la función de membresía µAUB de la unión A U B está definida para toda 𝑢 ∈


𝑈.

A B

µ(u)

Figura 2.1.14. Unión de conjuntos difusos

La operación unión cumple con las siguientes propiedades:


 Conmutativa
µ𝐀 ⋃ µ𝐁 = µ𝐁 ⋃ µ𝐀 , ∀ µ𝐀 , µ𝐁 Є [0,1]

~ 22 ~
 Asociativa
µ𝐀 ⋃ (µ𝐁 ⋃ µ𝐂 ) = (µ𝐀 ⋃ µ𝐁 ) ⋃ µ𝐂 , ∀ µ𝐀 , µ𝐁, µ𝐂 Є [0,1]
𝑠𝑖 µ𝐀 ≤ µ𝐁 𝑦 µ𝐂 ≤ µ𝐃 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 µ𝐀 ⋃µ𝐂 ≤ µ𝐁 ⋃µ𝐃

 Condiciones de frontera
µ𝐀 ⋃ 0 = 0, µ𝐀 Є [0,1]
µ𝐀 ⋃ 1 = 1, µ𝐀 Є [0,1]

Para realizar la operación UNIÓN se usa la función MÁXIMO

µ𝐀U𝐁 (𝒖) = 𝒎𝒂𝒙{µ𝑨 (𝒖), µ𝑩 (𝒖)}

 Intersección: la función de membresía µA∩B de la intersección A ∩ B está definida


para toda 𝑢 ∈ 𝑈.

A B

µ(u)

Figura 2.1.15. Intersección de conjuntos difusos.

La operación intersección cumple con las siguientes propiedades:


 Conmutativa
µ𝐀 ∩ µ𝐁 = µ𝐁 ∩ µ𝐀 , ∀ µ𝐀 , µ𝐁 Є [0,1]
 Asociativa
µ𝐀 ∩ (µ𝐁 ∩ µ𝐂 ) = (µ𝐀 ∩ µ𝐁 ) ∩ µ𝐂 , ∀ µ𝐀 , µ𝐁, µ𝐂 Є [0,1]
𝑠𝑖 µ𝐀 ≤ µ𝐁 𝑦 µ𝐂 ≤ µ𝐃 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 µ𝐀 ∩ µ𝐂 ≤ µ𝐁 ∩ µ𝐃

 Condiciones de frontera
µ𝐀 ∩ 0 = 0, µ𝐀 Є [0,1]
µ𝐀 ∩ 1 = µ𝐀 , µ𝐀 Є [0,1]

Para realizar la operación INTERSECCIÓN se usa la función MÍNIMO

µ𝐀∩𝐁 (𝒖) = 𝒎𝒊𝒏{µ𝑨 (𝒖), µ𝑩 (𝒖)}

~ 23 ~
 Complemento: función de membresía µ𝑨̅ del conjunto difuso A está definida para
toda 𝑢 ∈ 𝑈 por
µ𝑨̅ (𝒖) = 𝟏 − µ𝑨 (𝒖)

A’
A

µ(u)

Figura 2.1.16. Complemento de un conjunto difuso.

Para ilustrar numéricamente las operaciones descritas anteriormente, se definen dos


conjuntos difusos discretos A y B [12]
1 0.5 0.3 0.2 0.5 0.7 0.2 0.4
𝐴={ + + + } y𝐵={ + + + }
2 3 4 5 2 3 4 5

 Unión A⋃B
1 0.7 0.3 0.4
𝐴⋃𝐵 = { + + + }
2 3 4 5
 Intersección A∩B
0.5 0.5 0.2 0.2
𝐴∩𝐵 ={ + + + }
2 3 4 5
 Complemento A’ y B’
1 0 0.5 0.7 0.8 1 0.5 0.5 0.8 0.8
𝐴′ = { + + + + } 𝑦 𝐵′ = { + + + + }
1 2 3 4 5 1 2 3 4 5

~ 24 ~
2.2 Máquina inferencia difusa
La máquina difusa mostrada en la Figura 2.2.1 es una plataforma computacional basada en
los conceptos de teoría de conjuntos difusos, estas plataformas se pueden aplicar en varios
campos, como control automático, clasificación de datos, sistemas expertos, robots o
reconocimiento de patrones. La máquina de inferencia difusa está formada por tres partes
esenciales, la Difusión, el Razonamiento o Reglas difusas IF-THEN y la Desdifusión.

Entrada Difusa Salida Difusa

Variable de Variable de
Entrada salida

Figura 2.2.1. Máquina de inferencia difusa.


2.2.1 Difusión
La difusión es un proceso mediante el cual las variables físicas son convertidas en entradas
difusas, el valor de las variables es evaluado y se les asigna un grado de pertenencia dentro
de los conjuntos difusos definidos por el diseñador. Para hacer este proceso se usan las
funciones de pertenencia de los conjuntos difusos.

Veamos el siguiente ejemplo:

Supóngase la velocidad de un vehículo, esa velocidad será evaluada y se le asignará un


valor de pertenencia dentro del “Conjunto difuso de velocidad” que está formado por tres
funciones de pertenencia mostradas en la Figura 2.2.2, donde se les asignan las siguientes
etiquetas lingüísticas: Lento, Normal y Rápido.

Lento Normal Rápido

1
0.66
µ(u) 0.5
0.33

Km/h 100

Figura 2.2.2 Conjunto difuso de velocidad

~ 25 ~
La primera función de pertenencia “LENTO” es tipo Lamda y se muestra su función
característica

1, si 𝑢 < 30;
60 − 𝑢
𝐿(𝑢; 30, 60) { , 𝑠𝑖 30 ≤ 𝑢 ≤ 60;
60 − 30
0, si 𝑢 > 60.

La segunda función de pertenencia “NORMAL” es de tipo Trapezoidal y se muestra su


función característica

0; 𝑠𝑖 𝑢 < 30;
𝑢 − 30
, 𝑠𝑖 30 ≤ 𝑢 ≤ 60;
60 − 30
1, 𝑠𝑖 60 ≤ 𝑢 ≤ 90
∏(𝑢; 30, 60, 90, 120) =
120 − 𝑢
, 𝑠𝑖 90 ≤ 𝑢 ≤ 120;
120 − 90
0, 𝑠𝑖 𝑢 > 120.
{

La tercera función de pertenencia “RÁPIDO” es de tipo Gamma y se muestra su función


característica

0, si 𝑢 < 90;
𝑢 − 90
𝛤(𝑢; 90, 120) { , 𝑠𝑖 90 ≤ 𝑢 ≤ 120;
120 − 90
1, si 𝑢 > 120.

Ahora bien lo que se hace con el proceso de difusión es asignarle a la velocidad dada, una
pertenencia dentro del conjunto difuso.

Evaluando una velocidad de u=100 Km/h

Observando la distribución de las funciones de pertenencia, 100Km/h está dentro de la


función trapezoidal y de la función gamma.

Evaluando la función de pertenencia para NORMAL.

120 − 𝑢 120 − 100 20


∏(𝑢; 90, 120) = , 𝑠𝑖 90 ≤ 𝑢 ≤ 120 =≫ = = 0.66
120 − 90 120 − 90 30
Evaluando la función de pertenencia para RÁPIDO.

𝑢 − 90 100 − 90 10
𝛤(𝑢; 90, 120) = , 𝑠𝑖 90 ≤ 𝑢 ≤ 120 =≫ = = 0.33
120 − 90 120 − 90 30
Al obtener esos resultados se observa que 100Km/h tiene más grado de pertenencia a
NORMAL que a RÁPIDO.

~ 26 ~
2.2.2 Razonamiento
El razonamiento dentro de una máquina de inferencia difusa es el que se encarga de evaluar
las reglas propuestas por el diseñador. Las reglas relacionan las entradas difusas y generan
la salida difusa; estas reglas son llamadas “Reglas Difusas” posteriormente esta salida
difusa es convertida en una salida real mediante el proceso de desdifusión, con la salida real
el sistema realizará la acción deseada.

Las reglas difusas utilizan la operación intersección entre los grados de pertenencia de
cada entrada difusa A1 y B1 para poder asignar un grado de pertenencia de una salida
difusa C1.

IF A AND B THEN C

SÍ A Y B ENTONCES C

µ𝐶 (𝑢) = min(µ𝐴 (𝑢), µ𝐵 (𝑢))

Existen dos métodos para realizar la acción de razonamiento para los diferentes valores de
pertenencia de las entradas difusas: el primero de ellos el método de inferencia Mamdani y
el otro es el método de inferencia Sugeno. Estos son llamados así por el apellido de sus
desarrolladores. El método de inferencia Mamdani también es conocido como el método de
“Máximo de los mínimos” y el método de inferencia Sugeno es conocido como el método
de “Máximo de los productos”.

2.2.2.1 Máquina de Inferencia MAMDANI


Para la tesis se usó la inferencia Mamdani, por lo que me limitaré a explicar cómo funciona
la máquina de inferencia tipo Mamdani.

La máquina de inferencia usa el grado de pertenencia de cada entrada del sistema, es decir
la entrada difusa y establece una relación según las reglas difusas construidas por el
diseñador usando la función MÍNIMO.

Reglas difusas de Mamdani: IF x1 is A AND x2 is B THEN u1 is C; donde x1 y x2 son las


variables de entrada (por ejemplo velocidad, distancia) y A y B son las funciones de
membresía de entrada (por ejemplo lento, rápido, o lejos, cerca), u1 es la salida difusa (por
ejemplo acelera, frena) y C es la función de membresía de salida (por ejemplo Poco,
Mucho). La primer parte del enunciado “IF x1 is A AND x2 is B” se conoce como
antecedente y “THEN u1 is C” es el consecuente.

Un ejemplo de las reglas es el siguiente:

IF velocidad is Rápido AND distancia is Cerca THEN frena is Mucho

IF velocidad is Lento AND distancia is Lejos THEN frena is Poco

~ 27 ~
Para llevar a cabo el proceso del antecedente se realiza la operación mínimo con cada valor
de pertenencia obtenido en la difusión de las variables; en el lenguaje de programación C++
la función “mínimo” está definida como “min”. En la Figura 2.2.2.1 y Figura 2.2.2.2 se ve
gráficamente como se hace la operación mínimo entre los grados de pertenencia de las
entradas difusas.

Se aplica la función mínimo 𝜇𝑃𝑜𝑐𝑜 = min(µ𝐿𝑒𝑛𝑡𝑜 , µ𝐶𝑒𝑟𝑐𝑎 ) =>> 𝜇𝑃𝑜𝑐𝑜 = min(0.7,0.2) = 0.2

µLento=0.7

µCerca=0.2

Figura 2.2.2.1 Operación mínimo


Se aplica la función mínimo 𝜇𝑀𝑢𝑐ℎ𝑜 min(µ𝑅á𝑝𝑖𝑑𝑜 , µ𝐿𝑒𝑗𝑜𝑠 ) =>> 𝜇𝑀𝑢𝑐ℎ𝑜 min(0.3,0.8) = 0.3

µLejos=0.8

µRapido=0.3

Al final para obtener la salida difusa se lleva a cabo el proceso de “Agregación”, donde la
máquina de inferencia Mamdani usa la función máximo, definida como “max”, aquí toma
en cuenta los resultados de las funciones mínimo anteriores para obtener el grado de
pertenencia de la salida difusa dentro de los conjuntos definidos por el diseñador.

~ 28 ~
µMucho=0.3
µPoco=0.2

Figura 2.2.2.2 Proceso de agregación


En expresión matemática la salida:

µ𝐹𝑟𝑒𝑛𝑎 = max(min(µ𝐿𝑒𝑛𝑡𝑜 , µ𝐶𝑒𝑟𝑐𝑎 ) , min(µ𝑅á𝑝𝑖𝑑𝑜 , µ𝐿𝑒𝑗𝑜𝑠 ))

µ𝐹𝑟𝑒𝑛𝑎 = max(𝜇𝑃𝑜𝑐𝑜 , 𝜇𝑀𝑢𝑐ℎ𝑜 ) =≫ 0.3

Aquí el proceso del razonamiento se queda sólo en un valor de pertenencia para obtener el
valor de la variable difusa es necesario realizar el siguiente proceso, la desdifusión.

2.2.3 Desdifusión
La Desdifusión es la conversión de la salida difusa de la máquina de inferencia en una
variable de salida, es decir el resultado obtenido gracias a las reglas dentro de la máquina
de inferencia será traducido en una señal física para nuestro sistema de control.

Para la Desdifusión existen varios métodos, es importante elegir el adecuado.

2.2.3.1 Método del Centroide


El método del Centro de Gravedad o Centro de área mostrado gráficamente en la Figura
2.2.3.1 es el más usado de los métodos de desdifusión y su expresión es la siguiente:

∫ 𝜇(𝑢) ∗ 𝑢𝑖 𝑑𝑐
𝑍∗ =
∫ 𝜇(𝑢𝑖) 𝑑𝑐

Donde ∫ 𝑒𝑠 𝑙𝑎 𝑖𝑛𝑡𝑒𝑔𝑟𝑎𝑙 𝑎𝑙𝑔𝑒𝑏𝑟𝑎𝑖𝑐𝑎; ui= Valor típico de cada función y µ(ui)=es el valor
de pertenencia en dicha función.

Si se quisiera implementar este método se necesita un microcontrolador que realice los


cálculos de manera eficiente ya que la ecuación contiene integrales, así que el tiempo de
cálculo aumenta y tiene la ventaja de ser más exacto.

~ 29 ~
0.3
Z*

Figura 2.2.3.1 Método del centroide [12]

2.2.3.2 Método Centro de Máximos (COM)


En este método se considera el conjunto difuso de la variable de salida y sus valores de
pertenencia, de modo tal que la suma de los valores de pertenencia sea igual a
uno, ∑ µ(𝑢𝑖) = 1, donde los 𝑢𝑖 son los valores típicos de cada función de pertenencia que
forman parte del conjunto de salida. Se hace una ponderación de los valores de pertenencia
con los valores típicos de cada función.

La salida real se obtiene con la siguiente expresión:


∑𝑛𝑖=1 µ(𝑢𝑖) ∗ ui
𝑍 =
∑𝑛𝑖=1 µ(𝑢𝑖)
Donde ui= Valor típico de cada función.

µ(ui)=es el valor de pertenencia en dicha función.

El COM mostrado gráficamente en la Figura 2.2.3.2 es un método eficiente, sí se utilizan


funciones simétricas, además de que puede obtener valores de salida real usando recursos
computacionales limitados. Éste método se usó en la realización de esta tesis.

u
u1 u2

Figura 2.2.3.2 Método COM [12]

~ 30 ~
Capítulo 3 ESPECTROSCOPIA

3.1 Espectroscopia
El espectro de un compuesto es una medición de la estructura de niveles de energía
cuantizados que tienen los átomos o moléculas. La radiación electromagnética da lugar a
que ocurran las transiciones entre los niveles de energía del sistema material, que dan lugar
al espectro. En la Figura 3.1.1 muestra un esquema de algunos de los niveles de energía
que contiene un átomo de Rb y las longitudes de onda para que los electrones logren
cambiar de nivel.

Figura. 3.1.1 Niveles de energía de un átomo de Rb [21]

Para esta tesis se trabajó con la longitud de 780 nm para cambiar del nivel de energía 5s 1/2 a
5p3/2.

~ 31 ~
La espectroscopia estudia las transiciones que se producen entre los estados cuánticos de un
sistema inducidas por radiación electromagnética, es decir que por medio de la
espectroscopia se puede saber en qué frecuencia o longitud de onda una sustancia puede
absorber o emitir energía en un cuanto de luz. Cuando la radiación electromagnética
atraviesa un sistema de partículas cargadas, como el que forman electrones y núcleos de los
átomos y moléculas, los campos eléctrico y magnético de la radiación interactúan con las
cargas provocando una perturbación dependiente del tiempo que puede inducir transiciones
entre los diferentes estados cuánticos del sistema. [2]

3.1.1 Espectros de emisión y absorción


Desde hace mucho tiempo se sabe que los gases emiten luz cuando son excitados, algunos
de los mecanismos para lograrlo son:

-Calentando el gas a alta temperatura

-Colocando en llama los vapores de alguna sustancia

-Produciendo una descarga eléctrica a una sustancia para excitarla

La radiación emitida por una sustancia puede separarse en sus diferentes longitudes de onda
por medio de un prisma. En la Figura 3.1.2 se muestra un diagrama de cómo se obtiene el
espectro de emisión de una sustancia excitada con un espectrómetro de prisma.

Figura. 3.1.2 Espectro de emisión [27]

El conjunto de líneas espectrales que se obtiene para un elemento concreto es siempre el


mismo, incluso si el elemento forma parte de un compuesto complejo, ya que cada
elemento produce su propio espectro diferente al de cualquier otro elemento. Esto
significa que cada elemento tiene su propia firma espectral, como si se tratara de una
huella digital.

El espectro de absorción se obtiene haciendo incidir radiación electromagnética, como la


luz solar o luz de una lámpara sobre una sustancia o un gas a temperatura ambiente, los
átomos que forman el gas absorben ciertas longitudes de onda de la radiación

~ 32 ~
electromagnética. En la Figura 3.1.3 se observa un diagrama donde se le aplica radiación
electromagnética a una sustancia y así obtener su espectro de absorción.

Figura. 3.1.3 Obtención de espectro de absorción [27]

A continuación se muestran los espectros de emisión y absorción de algunos elementos


químicos sólo en longitudes de onda visibles.

Figura. 3.1.4 Arriba: Espectro de emisión de He Figura. 3.1.5 Arriba: Espectro de emisión de N
Abajo: Espectro de absorción de He [19] Abajo: Espectro de absorción de N [19]

Figura. 3.1.6 Arriba: Espectro de emisión de Rb Figura. 3.1.7 Arriba: Espectro de emisión de Si
Abajo: Espectro de absorción de Rb [19] Abajo: Espectro de absorción de Si [19]
Se observa que los elementos químicos absorben las mismas longitudes de onda que son
capaces de emitir.

~ 33 ~
3.2 Láser.
La palabra LASER, es el acrónimo en inglés de Light Amplification by Stimulated Emission
of Radiation, en español, Amplificación de Luz mediante Emisión Estimulada de
Radiación. El láser es un dispositivo que aumenta la intensidad de un haz de radiación
electromagnética, aprovechando con ventaja la capacidad de los átomos y moléculas para
emitir radiación en forma estimulada, es decir emiten fotones. La mejor parte del láser es
que además de emitir un haz de radiación amplificado, también posee propiedades de
coherencia, monocromaticidad y direccionalidad. Estas propiedades hacen del láser la
herramienta perfecta para el desarrollo de una amplia la variedad de aplicaciones [2].

3.2.1 Funcionamiento
El principio básico de funcionamiento del láser es la emisión estimulada. Para comprender
este concepto se parte desde el átomo. El átomo se considera que tiene un núcleo y
alrededor de éste se mueven electrones que tienen un nivel de energía específico; los
electrones no se pueden mover de dicho nivel de energía a menos que sean excitados,
puede ser un fotón el que logre esa excitación. Cuando un electrón cambia de un nivel de
energía bajo a uno alto absorbe energía en forma de un fotón; cuando un electrón cambia de
un nivel de energía alto a uno bajo emite energía en forma de un fotón. La emisión de un
fotón puede ser espontánea o estimulada. La Figura 3.2.1 muestra la diferencia entre
emisión espontanea, emisión estimulada y absorción.

Emisión espontánea: Cuando un electrón se encuentra en un nivel de energía elevado,


tiende a caer espontáneamente a un nivel de energía inferior con la subsiguiente emisión de
luz.

Emisión estimulada: Un fotón puede estimular la caída de un electrón a un nivel inferior si


tiene una energía igual a la diferencia entre los dos niveles, en ese caso se emitirá un
segundo fotón idéntico al que ha inducido la transición, es decir, tanto la frecuencia, la
dirección de propagación y la fase del fotón incidente son las mismas que las del fotón
inducido. Por lo tanto luz láser se amplifica por emisión estimulada: por cada fotón
incidente se producen dos fotones idénticos.

Figura. 3.2.1 Tipos de radiación

Teniendo la emisión estimulada lo que nos falta para tener un láser es una cavidad óptica
resonante. Esta cavidad óptica resonante conocida también como cavidad láser se muestra

~ 34 ~
en la Figura 3.2.2, sirve para mantener la luz circulando a través del medio activo el mayor
número de veces posible desprendiendo así muchos fotones. Está compuesta por dos
espejos dieléctricos que permiten reflejar luz de forma controlada, la reflexión puede ser
muy alta para determinadas longitudes de onda. El espejo de alta reflectividad refleja cerca
del 98% de la luz que recibe y el espejo acoplador o de salida, un porcentaje ligeramente
menor. Estos espejos pueden ser planos o con determinada curvatura, que cambia su
régimen de estabilidad.

Espejo refleja Espejo acoplador


98% de la luz

Figura 3.2.2 Cavidad láser


3.2.2 Características del láser:
 Direccionalidad: Las ondas electromagnéticas que forman la radiación láser llevan
asociado un frente de onda plano, ya que todas ellas tienen la misma frecuencia y la
misma fase. El haz saliente se desplaza en línea recta en la dirección del eje
longitudinal de la cavidad y la única desviación que experimenta es debido a los
efectos de difracción provocados por la apertura de salida. La Figura. 3.2.4 muestra
una representación del frente de onda de luz láser. [2]

Figura. 3.2.4 Frente de Onda Luz


Láser

~ 35 ~
 Monocromaticidad: los fotones que forman la luz láser tienen la misma energía y
pertenecen a una misma longitud de onda y mismo color, es decir, tienen una
ubicación específica dentro del espectro electromagnético por lo tanto la luz láser
puede ser de un color en específico. En diferencia con la luz normal que la vemos
de color blanco debido a que tiene varias longitudes de onda combinadas. Incluso
las lámparas de gas (por ejemplo las de neón, xenón, argón, etc.) a pesar de que
parecen ser monocromáticas, sus anchos de emisión son muy anchos comparados
con los anchos naturales de las transiciones atómicas sin perturbar. En la Figura
3.2.5 se observa el fenómeno de la difracción de la luz, al pasar la luz blanca a
través de un prisma, la luz se descompone en cada longitud de onda que la
conforma; se le llama luz monocromática es cada uno de los colores que vemos
después de que la luz pasa por el prisma.

Luz policromática Luz monocromática

Figura. 3.2.5 Luz policromática y luz monocromática

 Coherencia: La coherencia de la luz es un fenómeno que se da cuando los fotones


que la forman tienen la misma frecuencia y fase. Este fenómeno no ocurre con la luz
normal. En la Figura 3.2.6 se muestra la diferencia entre la luz no coherente emitida
por una lámpara y la luz coherente de un láser, la luz de la lámpara sale en todas
direcciones, debido a las ondas de luz emitidas no están en fase. Por otro lado la luz
emitida por el láser está en fase y sale en una sola dirección.

Figura. 3.2.6 Luz no coherente y luz coherente

~ 36 ~
Actualmente existen muchos tipos de láser. Se pueden clasificar por su longitud de onda,
por su potencia, por su régimen de emisión que puede ser pulsado o continuo; o por las
características de su medio activo, sólido, líquido o gaseoso; y cada uno de estos tipos tiene
una utilidad muy variada. [3]

Por longitud de onda

Color Longitud de onda [nm]


Violeta 380 – 450
Azul 450 – 500
Verde 500 – 550
Amarillo 550 – 600
Naranja 600 – 630
Rojo 630 – 760

Tabla 1.1 Clasificación de láser por longitud de onda

Por su potencia

Clase Potencia
Clase 1 <0.5 [mW] efecto sin riesgo
Clase 2 <1[mW] seguro para la visión momentánea
Clase <5[mW] usado para apuntadores. Riesgo para el ojo con exposición
3A prolongada
Clase <500[mW] usados en terapias, puede causar daño permanente en
3B el ojo con una exposición breve.
Tabla 1.2 Clasificación de láser por su potencia

~ 37 ~
La tabla siguiente muestra algunos láseres importantes [3]

Láser Medio Rango de Régimen de Potencia de Usos


Activo Frecuencia de Emisión Pico máxima
emisión
Helio-Neón Gas Rojo (630nm- Continuo 10mW - Metrología
760nm)
- Lectores de
códigos de barras.

Ion de Gas Verde – Azul Continuo 10W -Bombeo


Argón (450nm-550nm) -Espectáculos
CO2 Gas Infrarrojo > 760nm Continuo o 10KW -Corte
Pulsado -Soldadura
-Cirugía
Rubí Sólido Rojo (630nm- Pulsado 1KW -Investigación
760nm)
Titanio:Zafiro Sólido Infrarrojo > 760nm Continuo o 1PW -Investigación
Pulsado -Pulsos Ultracortos
Colorante Líquido IR-Visible-UV Continuo o 1W -Espectroscopia
o Sólido Pulsado
Tabla 1.3 Láseres más comunes [3]

~ 38 ~
3.3 Espectroscopia Láser
La espectroscopia láser es una técnica para obtener espectros de absorción y emisión de los
elementos químicos. Esta técnica ha permitido estudiar con más detalle los espectros de absorción
de muchos elementos como es el caso del Rb, se observa en la anterior Figura 3.3.1 que absorbe
energía en el espectro visible hasta el color rojo, pero gracias a los Láseres que emiten en frecuencia
de infrarrojo cercano entre 780 nm – 2500 nm, se pueden hacer experimentos para ver en que
longitudes dentro del infrarrojo cercano el Rb absorbe o emite energía. A continuación se muestra
una imagen con la espectroscopia de absorción del Rb con longitudes de onda infrarroja

λ nm
Figura 3.3.1 Espectro de absorción en infrarrojo cercano

Para obtener estas longitudes se realizó una simulación en línea en la página web
http://physics.nist.gov/PhysRefData/ASD/lines_form.html

La espectroscopia láser no se limita solo a láseres infrarrojos, como se mostro en la Tabla 1.1 hay
láseres que emiten en luz visible como los de color verde de 520 nm o los de color azul de 420 nm
en la Figura 3.3.2 se muestra un láser de 420 nm que se tiene en el laboratorio de átomos fríos del
ICN, incluso hoy en día hay láseres con anchos de línea de tan sólo unos cuantos kilohertz y pueden
ser sintonizados y estabilizados con esta misma precisión y así poder observar el fenómeno de
absorción más detalladamente.

Figura 3.3.2 Laser de 420[nm] del Laboratorio de átomos fríos

~ 39 ~
Capítulo 4 HORNO LOCAL
El horno para los experimentos de espectroscopia fue diseñado por el grupo de trabajo del
Laboratorio de Átomos Fríos del ICN.

El horno está construido con una cubierta adiabática de plástico PPR, y 3 resistencias de
silicón conectadas en serie, las cuales calientan la celda de vidrio. La Figura 4.1.1 muestra
un diagrama del horno para calentar la celda de vidrio.

Sistema óptico para captura de la luz


generada por la fluorescencia de
420[nm]. Soporte de teflón
para sostener la
celda

Figura 4.1.1 Diagrama del Horno


Con este horno se desea calentar una celda de vidrio, cuyo interior contiene Rubidio (Rb)
en estado gaseoso. El objetivo de calentar esta celda consiste en variar de manera
controlada la presión de vapor de rubidio en el interior de la misma y por lo tanto controlar
el grado de absorción de la radiación al hacer pasar un haz de luz láser resonante a través de
la celda.

Una vez que la celda tiene la temperatura deseada se hace pasar un haz de luz láser, para
después medir con un fotodiodo (FDS-100) la cantidad de luz absorbida por los átomos de
rubidio dentro de la celda.

4.1 Celda de Vidrio con Rubidio


La celda de vidrio con vapor de Rb de la empresa Triad Technology
(http://www.triadtechno.com) está hecha de vidrio Pyrex, el vidrio Pyrex está hecho con
borosilicatos; cada elemento o sustancia que está dentro de la celda está asociado con un
espectro de absorción único que sirve como la huella digital de dicho elemento, el
contenido de una celda de referencia se pueden determinar a través de una medición de
absorción lineal. En la Figura 4.1.2 se muestra la celda de vidrio Pyrex y en la Figura
4.1.3 se muestra una gráfica de su espectro de absorción.

~ 40 ~
Figura 4.1.2 Celda de vidrio Pyrex con vapor de Rb

Láser Sintonizable Celda 7.1cm

Longitud de onda
Figura 4.1.3 Absorción Lineal

4.2 Resistencias de Silicón


Las resistencias de silicón son la parte esencial del horno, pues con ellas se calentará la
celda de vidrio que contiene Rb en estado gaseoso. La estabilización de la temperatura de la
celda se logra mediante el control de la corriente que se suministra al conductor que forma
los calentadores.

Se eligieron este tipo de resistencias por su flexibilidad, en este caso, se colocaron 3


resistencias en serie abrazando la celda de vidrio, para poder distribuir el calor en toda la
celda. La Figura 4.2.1 muestra las resistencias de silicón que se usan en el horno, y se
delimita su zona térmica con una línea blanca.

Las 2 resistencias grandes tienen una resistividad de 6Ω, mientras que la resistencia
pequeña tiene una resistividad de 4Ω.

Las tres resistencias en serie suman una resistividad de 16Ω y fueron conectadas como se
muestra en el diagrama de la Figura 4.2.2. Independientemente de su tamaño cada
resistencia tiene una potencia máxima de 10W estos datos fueron proporcionados por el
proveedor. [17]

~ 41 ~
5 cm 5 cm
2.5cm

2.5cm

Figura 4.2.1 Resistencias de Silicón

Para mantener las resistencias abrazadas al horno se usó cinta kapton. Este tipo de cinta es
capaz de soportar altas temperaturas, superiores a los 120 oC; además es una cinta
antiestática por lo que los átomos de Rb no se verán afectados por la circulación de cargas
eléctricas. La Figura 4.2.3 muestra la celda de vidrio con las resistencias abrazas a ella con
cinta kapton.
6Ω 4Ω 6Ω

Figura 4.2.2 Resistencias en serie

Cinta Kapton

Figura 4.2.3 Celda de vidrio, cinta kapton y resistencias

~ 42 ~
4.3 Sensores de temperatura
Los sensores son dispositivos que detectan magnitudes físicas como presión, temperatura,
humedad, velocidad. Una vez que se detecta la magnitud física, el sensor convierte la
magnitud física en otro tipo de energía, generalmente energía eléctrica, la cual es posible
interpretar por un sistema.

El sensor de temperatura, convierte la energía calorífica en energía eléctrica, dando una


señal de corriente directa a la salida.

Para esta tesis utilicé 3 sensores de temperatura LM35 como el mostrado en la Figura 4.3.1,
estos sensores están calibrados en grados Celsius (oC) con una respuesta lineal y además
son de bajo costo. En la Figura 4.3.2 se muestra en montaje de los 3 sensores de
temperatura alrededor de la celda de vidrio. Se colocaron de tal manera que solo tengan
contacto directo con el vidrio de la celda, así la lectura de la temperatura de la celda es más
precisa.

 Su resolución es de 10mV/oC
 Rango de temperatura -55oC a 150oC
 Rango de operación de 4 V a 30 V

Figura 4.3.1 Sensor de temperatura LM35

Temperatura [oC]
Figura 4.3.2 Respuesta del sensor con diferentes voltajes de alimentación [Apéndice A-5]

~ 43 ~
Soporte de teflón

LM35 (3)
LM35 (1)

LM35 (2)

Figura 4.3.2 Celda de vidrio con soporte y sensores de temperatura

~ 44 ~
4.4 Cubierta adiabática.
La cubierta adiabática del horno está construida con tubo PPR (copolímero aleatorio de
polipropileno), además entre el hueco de la celda de vidrio con la cubierta adiabática se
rellenó con fibra de vidrio para disminuir las pérdidas de calor.

La ventaja de usar tubo PPR, es que la conductividad térmica es de sólo 0.24W/mK, lo cual
representa sólo 0.005% de la conductividad de un metal. [18]

Figura 4.4.1 Tubo PPR y Tapa para tubo PPR

Figura 4.4.2 Cubierta del horno y base de teflón para la celda

~ 45 ~
4.5 Fotodiodo.
Para los experimentos de espectroscopia se utiliza un Fotodiodo de Silicio PIN. En la
Figura 4.5.1 se observa un diagrama interno del fotodiodo, está formado por tres capas de
material, una P, una N y otra que está en medio de ellas I, la cual es el elemento
fotosensible que permitirá la conducción a través de los materiales P y N.

Figura 4.5.1 Capas de fotodiodo


La Figura 4.5.2 muestra el fotodiodo FDS100 de la empresa Thor Labs. Con este fotodiodo
se mide la cantidad de luz láser absorbida por los átomos de rubidio que están dentro de la
celda de vidrio, la cantidad de luz absorbida varía dependiendo de la temperatura a la cual
se encuentra la celda, a mayor temperatura aumenta cantidad de átomos y por ende hay
más absorción de luz.

Características de FDS100:

 Respuesta espectral: 350nm a 1100nm


 Tiempo de respuesta: 10ns
 Voltaje máximo de operación: 20 V
Figura 4.5.2 Fotodiodo FDS100

El ánodo del fotodiodo produce una corriente, que es una función de la potencia de la luz
incidente y la longitud de onda. La capacidad de respuesta ℜ (λ), se puede leer desde la
Figura 4.5.3 que muestra la gráfica para estimar la cantidad de corriente que se espera a
partir de la longitud de onda. La corriente se puede convertir en una tensión mediante la
colocación de una resistencia de carga (RL) desde el ánodo del fotodiodo a la tierra del
circuito. La tensión de salida se expresa como:

𝑉𝑜 = 𝑃 ∗ ℜ (λ) ∗ RL

Donde:

P es la potencia de la luz que incide en el fotodiodo

ℜ (λ) es la capacidad de repuesta del fotodiodo

~ 46 ~
RL es la resistencia de carga conectada al ánodo del fotodiodo el circuito se ilustra en la
Figura 4.5.4

Se puede decir que la resistencia de carga sirve como un amplificador de voltaje, ya que a
mayor carga la tensión obtenida será mayor.

Figura 4.5.3 Capacidad de respuesta FDS100 [Apéndice A-2]

Filtro de ruido

Fuente
de
voltaje

* Conexión a tierra cuando el PD tiene una tercera terminal

Figura 4.5.4 Circuito de conexión de FDS100 [Apéndice A-2]

~ 47 ~
Capítulo 5 HARDWARE DE CONTROL DIFUSO
Para poder implementar el controlador de temperatura es necesario interconectar varios
elementos electrónicos entre ellos un microcontrolador, sensores, seleccionador de
temperatura y una interfaz visual para el usuario. Las primeras pruebas se hicieron con un
Arduino Mega 2560 que tenían en el Laboratorio de Átomos Fríos de ICN, posteriormente
se migró el controlador de temperatura al microcontrolador MSP430G2553 de Texas
Instruments; esto con el fin de hacer un hardware más compacto ya que el Arduino Mega
2560 tiene el triple de puertos de entrada/salida de propósito general (GPIO) que el
MSP430G2553; viendo esta diferencia el Arduino Mega está sobrado en puertos I/O y en
capacidad. Así que se optó por usar un microcontrolador más pequeño.

A continuación se describe cada elemento usado en el circuito que forma parte del
hardware del controlador.

5.1 Microcontrolador
Un microcontrolador es un circuito integrado al que se le pueden programar instrucciones
en su memoria, para que realice una tarea específica. Un microcontrolador está formado de
cinco secciones principales, una base tiempo Reloj (Clock o CLK), un CPU (Central
Proscessing Unit o Unidad Central de Procesamiento), Memoria ROM, Memoria RAM y
Periféricos de entrada/salida. La Figura 5.1.1 muestra las secciones básicas de un
microcontrolador. [4]

 Unidad central de procesamiento. (CPU)


Es el hardware encargado de interpretar las instrucciones programadas en el
microcontrolador, esto lo hace con operaciones aritméticas básicas y operaciones lógicas.

 Memoria
Los microcontroladores tienen dos tipos de memoria, una es la memoria flash o EEPROM,
aquí es donde se almacena el programa para realizar las distintas tareas que se desean, el
programa puede ser escrito en lenguaje ensamblador, lenguaje C o C++. La otra memoria
es la memoria RAM, esta memoria la usa el microcontrolador de forma temporal, aquí
guarda datos que usa en los diferentes procesos de aritmética o lógica.

 Periféricos
Los periféricos son dispositivos externos que se conectan al microcontrolador e interactúan
con la CPU ingresando o extrayendo información y ejecutando las instrucciones que da la
CPU.

 Reloj
El reloj se encarga de sincronizar todo el sistema. Los microcontroladores generalmente
incluyen dos tipos de reloj, uno interno y otro externo, el externo es por medio de un cristal
o fuente externa como un generador de señales.

~ 48 ~
Figura 5.1.1 secciones de un microcontrolador [4]

5.2 Arduino Mega 2560


El Arduino mega 2560 tiene como microcontrolador al Atmel 2560 mostrado en la Figura
5.2.1. Atmel es una compañía de semiconductores fundada en 1984, comercializa productos
como dispositivos de radiofrecuencia, microcontroladores, memorias flash y memorias
EEPROM.

Características de Atmel2560:

 256KB de memoria flash


 CPU AVR de 8 Bits
 8KB de memoria SRAM
 Reloj de cristal 16MHz
 54 puertos de entrada/salida
 16 puertos pueden ser usados como entradas analógicas y 15 puertos como salidas
de PWM
 Tiene 135 instrucciones

5.2.1 AVR
Atmel compró la arquitectura AVR (Advanced RISC Architecture), traducido al español
Arquitectura RISC avanzada, fueron dos estudiantes del Instituto tecnológico de Noruega los que
desarrollaron AVR, Alf-Egil Bogen y Vegard Wollan. AVR está basada en la arquitectura
Hardvard, cuenta con 32 registros de 8 bits [16]

Figura 5.2.1 Atmel 2560

~ 49 ~
5.3 MSP430G2553
El microcontrolador MSP430G2553 es fabricado por empresa Texas Instruments. Es un
microcontrolador de bajo consumo de energía como el mostrado en la Figura. 5.3.1

Características MSP430G2553:

 16KB de memoria Flash


 CPU RISC de 16 Bits
 512B de memoria RAM
 Reloj interno de 16MHz
 18 puertos de entrada/salida
 8 puertos pueden ser utilizados como convertidor analógico/digital de 10 bits.
 Tiene 51 instrucciones

Las siglas MSP se refieren a Mixed-Signal Processor, en español Procesador de señales


mixtas, es decir sirve para interactuar con señales analógicas y digitales.

El número 430 se refiere a la plataforma unidad de microcontrolador, por lo cual tiene


procesador, memoria RAM y memoria ROM.

La letra G indica el tipo de dispositivo, en este caso un dispositivo flash.

El número 2, indica la generación del dispositivo y por consiguiente la frecuencia máxima a


la que trabaja, en este caso es hasta 16MHz.

El MSP430G2553 cuenta con una CPU RISC (Figura 6.3.2 Diagrama de bloques CPU)
Computadora con conjunto reducido de instrucciones de 16 bits y una arquitectura Von
Neumann, cuenta con un sistema de reloj flexible (ACLK (reloj auxiliar) y MCLK (reloj
maestro)). Otras características relevantes de este dispositivo son:

- Cada reloj cuentan con 3 registros de captura/comparación.

- Interfaz de comunicación Serial.

Figura 5.3.1 MSP430G2553


~ 50 ~
5.4 Temperatura Objetivo
La temperatura objetivo será fijada por el usuario mediante una resistencia variable o
potenciómetro de 10KΩ, la cual está funcionando como divisor de tensión, con una
resistencia de valor fijo y un voltaje de 5v. Figura 5.4.1 Muestra el diagrama esquemático
para variar la temperatura deseada.

El valor máximo de voltaje que nos dará el divisor de tensión, es de 0.6V, lo cual es
interpretado con el microcontrolador como una temperatura objetivo máxima de 60oC.

Figura 5.4.1 Diagrama esquemático para variar la temperatura deseada.

Para Arduino 2560:


𝑅𝑉1
𝑉𝑚𝑖𝑐𝑟𝑜 = (𝑉𝑖𝑛)
𝑅1 + 𝑅𝑉1
10𝐾
0.60 = (5𝑉)
𝑅1 + 10𝐾

0.60𝑅1 + 6𝐾 = 50𝐾

44𝐾
𝑅1 = = 73.3𝐾𝛺
0.6

Para MSP430G2553:
10𝐾
0.60 = (3.6𝑉)
𝑅1 + 10𝐾

0.60𝑅1 + 6𝐾 = 36𝐾

30𝐾
𝑅1 = = 50𝐾Ω
0.6
~ 51 ~
5.5 Pantalla de cristal líquido
La pantalla de cristal líquido sirve como una interfaz visual entre el usuario y el horno. En
la pantalla se muestra la temperatura actual de la celda de vidrio y la temperatura objetivo a
la cual el usuario desea calentar la celda de vidrio.

Para este trabajo se usó una pantalla de 16x2 (esto nos indica que despliega 16 caracteres
en 2 líneas, por lo que el total puede desplegar 32 caracteres). La Figura 6.5.1 muestra una
pantalla de cristal líquido.

La temperatura actual se monitorea en tiempo real, por lo cual cambia constantemente hasta
llegar a la temperatura objetivo.

Para poder visualizar los datos en la pantalla, se mandan los datos mediante comunicación
paralelo entre el microcontrolador y la pantalla. De la pantalla sólo se usaron los puertos
GND, Vcc, Vee, RS, R/W, EN, Led+, Led- y de DB4 a DB7.

GND y Vcc: Alimentan la pantalla LCD con 5V

Vee: Controla el contraste de la pantalla LCD

RS, R/W y EN: Habilitan la entrada de datos a la pantalla

Led+ y Led-: Iluminan la pantalla LCD

DB4 a DB7: Datos en paralelo

Figura 5.5.1 Pantalla de cristal líquido


16x2

~ 52 ~
5.6 Mosfet
Los transistores MOSFET o de Metal-Oxido-Semiconductor (MOS) son dispositivos
electrónicos controlados por tensión, tiene una impedancia de entrada y de salida de
alrededor de 10KΩ. Su función dentro de los circuitos digitales y analógicos es como
amplificador o conmutador. La Figura 5.6.1 muestra un MOSFET en encapsulado TO-220.

Un MOSFET canal n consiste en un sustrato canal p donde se tienen dos regiones n+, estas
regiones forman en la fuente (source) y el drenador (drain), la puerta (gate) se forma
cubriendo la región entre el drenador y la fuente con una capa de silicio, encima de la cual
agrega una placa metálica. El MOSFET funciona con un potencial positivo Puerta-Fuente, a
esto se le llama funcionamiento en modo de enriquecimiento, los electrones del sustrato p
son atraídos hacia el óxido de silicio y formar un canal n virtual por donde circula la
corriente de Fuente a Drenador. Cada transistor MOSFET tiene un voltaje Puerta-Fuente
para poder formar el canal n, este voltaje es denominado Voltaje Umbral (VTH), cuando ese
voltaje umbral es superado el MOSFET conduce. La Figura 5.6.2 muestra la estructura
interna de un transistor MOSFET.[10]

En la tesis se usó en MOSFET IRF540 como interruptor, usando las zonas de corte y
saturación. El transistor opera en la zona de corte cuando el voltaje VPuerta-Fuente<VTH y no
habrá conducción entre Fuente-Drenador, cuando VPuerte-Fuente >VTH el transistor opera
en la zona de saturación y existirá conducción entre Fuente-Drenador; alternando entre
estas zonas el transistor funciona como un interruptor. En la Figura 5.6.3 se pueden
observar la zonas de operación del MOSFET.

Figura 5.6.1 MOSFET en encapsulado


TO-220

Figura 5.6.2 MOSFET internamente

~ 53 ~
IDrenador-Fuente
Zona de
óhmica
Zona de Saturación VPuerta-Fuente>VTH

Zona de Corte VPuerta-Fuente<VTH


VDrenador-Fuente
Figura 5.6.3 Zonas de operación MOSFET

El encargado de activar y desactivar el MOSFET es el microcontrolador, por medio de un


PWM, que varía entre 0V y 5V de amplitud, con esos voltajes el transistor se comporta
como un interruptor; pasando de la zona de saturación a la zona de corte.

El PWM o Modulación por ancho de pulso es una técnica para modificar el ciclo de trabajo
de una señal periódica véase Figura 5.6.4, con el fin de transmitir información o para
controlar la cantidad de energía que se manda a una carga.

PWM 10%

PWM 50%

PWM 90% τ
T
Figura 5.6.4 Modulación por ancho de pulso

El ciclo de trabajo está dado por la expresión


𝜏
𝐷=
𝑇
Donde τ es la duración donde el pulso está en alto y T es el periodo del pulso.

El diagrama de conexión del mosfet con el sistema de control difuso, es el siguiente


mostrado en la Figura 5.6.5:

PWM

Figura 5.6.5 Conexión de MOSFET


~ 54 ~
Capítulo 6 SOFTWARE DE CONTROL DIFUSO

6.1 Control Difuso.


Un controlador difuso como el que se muestra en la Figura 6.1.1 es un dispositivo que por
medio de elementos interconectados logra que se cumpla un objetivo en una planta o
proceso en base a la lógica difusa. El objetivo de un controlador basado en lógica difusa es
resolver problemas con soluciones simples, tomando en cuenta la experiencia de trabajar
con el proceso. Actualmente hay mucho interés en el uso de controladores difusos a nivel
industrial, esto con el fin de librar de accidentes y tareas repetitivas a su personal. En este
trabajo también se muestra su utilidad dentro del laboratorio de investigación.

Figura 6.1.1 Controlador difuso

El controlador de temperatura difuso será el encargado de realizar por medio de las reglas
difusas las operaciones necesarias para poder mantener una temperatura óptima y constante
durante el experimento de espectroscopia. El controlador será programado en un
microcontrolador, Arduino Mega 2560 y posteriormente se migrará al microcontrolador
MSP430G2553.

6.2 Diseño del Software.


Para esta tesis se diseñó un controlador de lazo cerrado tipo PD (Proporcional-Derivativo)
como el que se muestra en la Figura 6.2.1, de dos entradas y una salida. Las entradas
físicas del sistema son la temperatura deseada y la temperatura actual, las entradas de la
máquina de inferencia son el error y la derivada del error, la salida de la máquina de
inferencia es un PWM que activará un mosfet para suministrar energía a las resistencias.

Potencia Temperatura
Error PWM
Máquina de actual
+/- Planta
Inferencia
Temperatura dE/dt
Deseada

Figura 6.2.1 Esquema del controlador de temperatura difuso PD

~ 55 ~
6.2.1 Entradas
Las entradas del controlador son, el error de la temperatura existente durante el proceso de
calentamiento del horno (Error=Temperatura Deseada-Temperatura Actual) y la derivada
del error (dE/dt), que es la razón de cambio del error durante el proceso. La derivada del
error en un sistema difuso está definida como la diferencia entre el error actual y el error
anterior.

dE/dt=Error actual-Error anterior.

Mientras el control esté trabajando correctamente la diferencia de errores disminuirá.

Las entradas de la máquina de inferencia son el Error de la temperatura difuso y la


Derivada de la temperatura difusa. Se habla de entradas difusas porque los valores de las
variables de entrada tienen que pasar por el proceso de difusión, asignándoles valores de
pertenencia dentro de las funciones correspondientes; a continuación se muestran los
conjuntos y las funciones de pertenencia del Error de temperatura mostradas en la Figura.
6.2.3 y las funciones de pertenencia de la Derivada del error mostradas en la Figura. 6.1.4.

Error de la temperatura

El conjunto de error se diseñó con una función lambda, tres funciones triangulares y una
función gamma, se busca las intersecciones entre funciones sean en 0.5 para que los
cálculos sean más simples.

Tiene un intervalo de 0oC a 60oC

Figura. 6.2.2 Conjunto del Error de la temperatura

~ 56 ~
Descripción de las funciones.

MBajo función lambda


1, si 𝑢 ≤ 0.5;
10 − 𝑢
𝐿(𝑢; 0.5, 10) { , 𝑠𝑖 0.5 ≤ 𝑢 ≤ 10;
10 − 0.5
0, si 𝑢 > 10.

Bajo función triangular


0, 𝑠𝑖 𝑢 ≤ 0.5;
𝑢 − 0.5
, 𝑠𝑖 0.5 ≤ 𝑢 ≤ 10;
𝛬(𝑢; 0.5, 10,30) = 10 − 0.5
30 − 𝑢
, 𝑠𝑖 10 ≤ 𝑢 ≤ 30;
30 − 10
{ 0, 𝑠𝑖 𝑢 > 30.

Medio función triangular

0, 𝑠𝑖 𝑢 ≤ 10;
𝑢 − 10
, 𝑠𝑖 10 ≤ 𝑢 ≤ 30;
𝛬(𝑢; 10, 30,40) = 30 − 10
40 − 𝑢
, 𝑠𝑖 30 ≤ 𝑢 ≤ 40;
40 − 30
{ 0, 𝑠𝑖 𝑢 > 40.

Grande función triangular

0, 𝑠𝑖 𝑢 ≤ 30;
𝑢 − 30
, 𝑠𝑖 30 ≤ 𝑢 ≤ 40;
𝛬(𝑢; 30, 40,50) = 40 − 30
50 − 𝑢
, 𝑠𝑖 40 ≤ 𝑢 ≤ 50;
50 − 40
{ 0, 𝑠𝑖 𝑢 > 50.

MGrande función gamma

0, si 𝑢 ≤ 40;
𝑢 − 40
𝛤(𝑢; 40, 50) { , 𝑠𝑖 40 ≤ 𝑢 ≤ 50;
50 − 40
1, si 𝑢 > 50.

~ 57 ~
Derivada del error de temperatura
Tiene un intervalo de -1 a 1, donde si esa derivada es negativa indica que el sistema está
frio y es necesario calentar el sistema, por el contrario si es positiva el sistema se calentó
demasiado por lo que hay que cancelar el suministro de potencia, si la derivada del error es
cercana a cero, nos indica que el sistema está por alcanzar la temperatura objetivo y la
potencia en las resistencias debe ser menor.

Figura. 6.2.3 Conjunto de la Derivada del Error de la temperatura

Descripción de las funciones.

Negativa función lambda


1, si 𝑢 ≤ −0.6;
−0.6 − 𝑢
𝐿(𝑢; −0.6,0) { , 𝑠𝑖 − 0.6 ≤ 𝑢 ≤ 0;
−0.6 − 0
0, si 𝑢 > 0.

Cero funciones triangular

0, 𝑠𝑖 𝑢 ≤ −0.6;
𝑢 − (−0.6)
, 𝑠𝑖 − 0.6 ≤ 𝑢 ≤ 0;
0 − (−0.6)
𝛬(𝑢; −0.6, 0,0.6) =
0.6 − 𝑢
, 𝑠𝑖 0 ≤ 𝑢 ≤ 0.6;
0.6 − 0
{ 0, 𝑠𝑖 𝑢 > 0.6

~ 58 ~
Positiva función gamma

0, si 𝑢 ≤ 0;
𝑢−0
𝛤(𝑢; 0, 0.6) { , 𝑠𝑖 0 ≤ 𝑢 ≤ 0.6;
0.6 − 0
0.6, si 𝑢 > 1.

6.2.2 Salida
La salida del controlador difuso es el porcentaje del ciclo de trabajo de un PWM que será
convertido en potencia para las resistencias que calientan la celda de vidrio. Está formada
por un conjunto de siete funciones singleton mostradas en la Figura. 6.2.4.

Figura. 6.2.4 Conjunto de salida de controlador difuso

Descripción de las funciones singleton.

Poca 1; u=25 y 0; u≠25

Bajo1 1; u=35 y 0; u≠35

Bajo2 1; u=45 y 0; u≠45

Medio 1; u=55 y 0; u≠55

Alto1 1; u=65 y 0; u≠65

Alto2 1; u=80 y 0; u≠80

Máxima 1; u=95 y 0; u≠95

~ 59 ~
6.2.3 Reglas Difusas
Las reglas difusas son las instrucciones que sigue la máquina de inferencia del controlador,
estas relacionan las entradas con la salida. A continuación en la Tabla 1.4 se observan 14
reglas diseñadas para este trabajo.

Error dError Ciclo de trabajo


Temperatura Temperatura PWM
IF MuyBajo AND Negativa THEN Bajo1
IF MuyBajo AND Cero THEN Mínimo
IF MuyBajo AND Positiva THEN =
IF Bajo AND Negativa THEN Medio
IF Bajo AND Cero THEN Bajo2
IF Bajo AND Positiva THEN Bajo1
IF Medio AND Negativa THEN Alto1
IF Medio AND Cero THEN Medio
IF Medio AND Positiva THEN Medio
IF Grande AND Negativa THEN Máximo
IF Grande AND Cero THEN Alta1
IF Grande AND Positiva THEN Alto1
IF MuyGrande AND Negativa THEN Máximo
IF MuyGrande AND Cero THEN Máximo
IF MuyGrande AND Positiva THEN Alto2
Tabla 1.4 Reglas difusas

Otra forma de visualizar las reglas difusas es de forma matricial, así recibe el nombre de
memoria difusa como se muestra en la Figura 6.2.5. De esta forma es más sencillo
visualizar la relación entre las dos entradas (Error de Temperatura y dError de
Temperatura) y la salida (Ciclo de trabajo PWM).

dError Temperatura
Potencia Negativa Cero Positiva
Error de MuyBajo Bajo1 Mínimo ==
Bajo Medio Bajo2 Bajo1
Temperatura Medio Alto1 Medio Medio
Grande Máximo Alto2 Alto1
MuyGrande Máximo Máximo Alto2
Figura 6.2.5 Memoria Difusa

~ 60 ~
A continuación se muestra un ejemplo completo de cómo se realizan las operaciones con
las reglas difusas.

Ejemplo. Si Error=38 y dError=0.5

Primero se hace la difusión de los valores usando los conjuntos, en este caso el valor de
Error de temperatura está entre las funciones Medio y Grande, se usan las funciones de
pertenencia correspondientes y se obtiene lo siguiente:
40 − 38
𝑀𝑒𝑑𝑖𝑜 => = 0.2 , 𝑠𝑖 30 ≤ 𝑢 ≤ 40
40 − 30
𝑢 − 30
𝐺𝑟𝑎𝑛𝑑𝑒 => = 0.8, 𝑠𝑖 30 ≤ 𝑢 ≤ 40
40 − 30
Los resultados en orden son los siguientes:

MuyBajo Bajo Medio Grande MuyGrande


0 0 0.2 0.8 0

Se procede de la misma manera para la difusión del valor de la Derivada del Error, este
valor está entre las funciones Cero y Positiva:

0.6 − 0.5
𝐶𝑒𝑟𝑜 => = 0.166, 𝑠𝑖 0 ≤ 𝑢 ≤ 0.6
0.6 − 0
0.5 − 0
𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑎 => = 0.833, 𝑠𝑖 0 ≤ 𝑢 ≤ 0.6
0.6 − 0

Los resultados son los siguientes:

Negativa Cero Positiva


0 0.166 0.833

Con los resultados obtenidos se realiza la operación mínimo, de forma sencilla se


acomodan los valores en una memoria difusa.

Ciclo PWM Negativa Cero Positiva


MuyBajo Min(0,0) Min(0,0.166) ===
Bajo Min(0,0) Min(0,0.166) Min(0,0.833)
Medio Min(0.2,0) Min(0.2,0.166) Min(0.2,0.833)
Grande Min(0.8,0) Min(0.8,0.166) Min(0.8,0.833)
MuyGrande Min(0,0) Min(0,0.166) Min(0,0.833)
Figura 6.2.6 Operación mínimo

~ 61 ~
Y como resultado de la operación mínimo queda la memoria difusa con los valores
mostrados en la Figura 6.2.7

Ciclo PWM Negativa Cero Positiva


MuyBajo 0 0 ===
Bajo 0 0 0
Medio 0 0.166 0.2
Grande 0 0.166 0.8
MuyGrande 0 0 0
Figura 6.2.7 Resultado operación mínimo

Con los resultados de la operación mínimo, se hace la agregación entre los valores
obtenidos, por medio de la operación máximo se va evaluando la potencia de salida, hasta
obtener la potencia óptima.

Ciclo PWM Negativa Cero Positiva


MuyBajo Bajo1 0 Mínimo 0 ==
Bajo Medio 0 Bajo2 0 Bajo1 0
Medio Alto1 0 Medio 0.166 Medio 0.2
Grande Máximo 0 Alto2 0.166 Alto1 0.8
MuyGrande Máximo 0 Máximo 0 Alto2 0
Figura 6.2.8 valores para obtener el porcentaje de ciclo de trabajo

Máximo Mínimo=0

Máximo Bajo1=max(0,0)=0

Máximo Bajo2=0

Máximo Medio=max(max(0.166,0),0.2)=0.2

Máximo Alto1=max(0,0.8)=0.8

Máximo Alto2=max(0.166, 0)=0.166

Máximo Máxima= max(max(0,0),0)=0

~ 62 ~
Aplicando el método COM para la Desdifusión.

∑𝑛𝑖=1 µ(𝐶𝑖) ∗ Ci
∑𝑛𝑖=1 µ(𝐶𝑖)
(0 ∗ 25) + (0 ∗ 35) + (0 ∗ 45) + (0.2 ∗ 55) + (0.8 ∗ 65) + (0.166 ∗ 80) + (0 ∗ 95) 76.28
= =
0 + 0 + 0 + 0.2 + 0.8 + 0.166 + 0 1.166
= 65.42

65.42% es el ciclo de trabajo del PWM que suministrará la potencia a las resistencias.

6.2.4 Superficie de control


La superficie de control Figura 6.2.9 es una gráfica en 3D que nos muestra la relación entre
las entradas y la salida de nuestro control difuso, se obtuvo mediante una simulación del
sistema con el software MATLAB.

Figura 6.2.9 Superficie de control

Se observa del lado izquierdo el conjunto del Error de temperatura y del lado izquierdo,
conforme ese error disminuye junto con la derivada del error el ciclo de trabajo del PWM
baja su porcentaje más suave a partir de un error de 30oC.

~ 63 ~
6.3 Programación del software difuso
Para la programación del software difuso se usó un microcontrolador Arduino Mega 2560
® y se programó en lenguaje C++. Este será el encargado de tomar las decisiones que están
en las reglas difusas anteriormente diseñadas.

Las entradas físicas del sistema son, la Temperatura deseada y la Temperatura actual
del sistema, estas variables son capturadas por medio del microcontrolador a través de sus
puertos Analogic to Digital Converter (ADC), convertidor analógico a digital; son
convertidores de 10bits de resolución y un voltaje de referencia de 5[V], toda señal que
tenga un valor analógico entre 0[V] y 5[V] puede tomar un valor binario entre 0 a 1023.
Para saber la resolución en voltaje de nuestro ADC se usa la siguiente ecuación.

𝑉𝑟𝑒𝑓 5𝑉 5𝑉
1𝑏𝑖𝑡 = 𝑛
= 10 = = 4.88[𝑚𝑉] … 𝟔. 𝟏
(2 − 1) (2 − 1) 1023

Donde:

n es el número de bits que tiene el ADC

Vref es el voltaje de referencia, o el voltaje de entrada para que todos los bits de ADC sean
1

Lo que nos indica que un cambio de 4.88mV en la entrada, provoca un cambio en el bit
menos significativo dentro del convertidor analógico-digital. Si se desea saber el valor que
registra el ADC dependiendo del voltaje de la señal a la entrada se usa la siguiente
expresión:

2𝑛 − 1
𝑉𝑎𝑙𝑜𝑟 𝐴𝐷𝐶 = ∗ 𝑉𝑖𝑛
𝑉𝑟𝑒𝑓

El sensor LM35 tiene una resolución de 10mV/oC, si el sensor registrara 1oC de


temperatura, el valor del ADC es el siguiente:

1023
𝑉𝑎𝑙𝑜𝑟 𝐴𝐷𝐶 = ∗ 10𝑚𝑉 = 2.04 … 𝟔. 𝟐
5
El valor obtenido equivale a cambiar el bit menos significativo de ADC de 0 a 1.

Para obtener el valor en grados Celsius mediante la lectura del ADC se usa la siguiente
expresión:

𝑉𝑟𝑒𝑓 5
𝑋 𝑜 𝐶 = 𝑉𝑎𝑙𝑜𝑟 𝐴𝐷𝐶 ( ) ∗ 100 = 2.04 ( ) ∗ 100 = 0.99𝑜 𝐶 … 𝟔. 𝟑
1023 1023

~ 64 ~
El Arduino Mega 2560 cuenta con 16 canales ADC que tiene como nombre Ax, desde A0
… A15; de los cuales sólo se usaron cuatro, tres para los sensores LM35 y uno para leer la
temperatura deseada. Estos convertidores están multiplexados, a continuación en la Figura
6.3.1 se muestran los convertidores que se usaron.

Entrada de un
solo extremo
A0
A1
A2
A3
A4
A5
A6
A7

Figura 6.3.1 Convertidores analógicos digitales [25]

El resultado del ADC se guarda en 2 registros de 8 bits, llamados ADCL y ADCH


mostrados en la Figura 6.3.2 (ADC low byte y ADC high byte). Cada ADC usa 2 registros
de este tipo.

Registro de datos de ADC

Lectura/Escritura

Valor inicial

Figura 6.3.2 registros de almacenamiento para ADC 10 bits [25]

Los valores almacenados en estos registros son convertidos en variables de Entrada


Difusas, por medio del proceso de difusión descrito anteriormente.

El convertidor analógico digital del Arduino hace la conversión por medio del método
“aproximaciones sucesivas” como el mostrado en la Figura 6.3.3. Estos convertidores son

~ 65 ~
muy usados por su alta resolución y velocidad. Estos convertidores utilizan un comparador,
un Registro de Aproximación Sucesiva (RAS) y un DAC (Convertido digital-analógico). El
RAS pone el MSB (Most Significant Bit o Bit más significativo) en “1” y los bits restantes
los pone en “0”, la cantidad binaria pasa por el DAC y el equivalente analógico se compara
con la señal de entrada, si el equivalente analógico es mayor a la señal de entrada, se quita
el “1” del MSB y se recorre al bit menor siguiente y los demás bits se quedan en “0” y se
sigue el proceso hasta que la señal obtenida por el DAC sea menor que la señal de entrada y
así encontrar un valor estable que corresponda con el valor de la medición.

MSB LSB
1 0 0 0 0
0 1 0 0 0
Señal de entrada

Figura 6.3.3 ADC de aproximaciones sucesivas

ADC MSP430G2553
El microcontrolador MSP430G2553 de Texas instruments cuenta con 8 ADC de 10 bits,
pero su diferencia notable está en el voltaje de referencia del convertidor analógico digital,
ese voltaje es de por defecto de 3.6V, este voltaje polarización de MSP430G2553.

Por lo que al aplicar la fórmula 6.1 vista anteriormente, se obtiene lo siguiente:

𝑉𝑟𝑒𝑓 3.6𝑉 3.6𝑉


1𝑏𝑖𝑡 = 𝑛
= 10 = = 3.51[𝑚𝑉] … 𝟔. 𝟒
(2 − 1) (2 − 1) 1023

Como se describió anteriormente, este voltaje es el mínimo que necesita el ADC para poder cambiar
de 0 a 1 en su bit menos significativo.

El valor del ADC para el caso del microcontrolador MSP430G2553 cuando el sensor LM35
registra 1oC es:

1023
𝑉𝑎𝑙𝑜𝑟 𝐴𝐷𝐶 = ∗ 10𝑚𝑉 = 2.84 … 𝟔. 𝟓
3.6
Para obtener el valor en grados Celsius mediante la lectura del ADC se usa la expresión 6.3
sustituyendo en nuevo valor de Vref=3.6V:

~ 66 ~
𝑉𝑟𝑒𝑓 3.6
𝑋 𝑜 𝐶 = 𝑉𝑎𝑙𝑜𝑟 𝐴𝐷𝐶 ( ) ∗ 100 = 2.84 ( ) ∗ 100 = 0.99𝑜 𝐶 … 𝟔. 𝟔
1023 1023
En la Figura 6.3.4 se muestra el diagrama de bloques los ADC de la familia MSP430, para
esta tesis se usaron los puertos A0, A3, A54 y A5. Se observa que estor puertos también
están multiplexados como los de Arduino.

Voltajes de referencia

ADC
usados
Reloj de ADC
RAS

Salida

Figura 6.3.4 Diagrama de bloques de los ADC Familia MSP430 [26]

~ 67 ~
Al igual que Arduino Mega 2560, el MSP430G2553 guarda los datos de la conversión
analógica digital en 2 registros de memoria de 8 bits mostrados en la Figura 6.3.5.

Registro de memoria de conversión. Formato Binario

Resultados de Los 10 bits que resultan de la conversión están recorridos a la derecha, en formato
conversión binario el Bit 9 es el más significativo y los bits 15-10 siempre son 0

Figura 6.3.5 Diagrama de bloques de los ADC Familia MSP430 [26]

6.3.1 Programación
Para poder programar la difusión se definieron dos vectores: el primero corresponde al
Error de Temperatura, el segundo corresponde a la Derivada del Error. Estos vectores
tienen cada punto de sus funciones de pertenencia. También se definió “dError” como la
derivada del error, y “error” como error de temperatura

ErTem[]={0.5,10,30,40,50} >>Error de temperatura

ErTem[0]=0.5; ErTem[1]=10; ErTem[2]=30; ErTem[3]=40; ErTem[4]=50.

dErTem[]={-0.6, 0, 0.6} >>Derivada del Error

dErTem[0]=-0.6; dErTem[1]=0; dErTem[2]=0.6.

También se definen 2 vectores más que están limpios, los cuales son vectores difusos y
almacenan el grado de pertenencia de las entradas.

DifusEr[]={0,0,0,0,0} >>Difusión del Error de temperatura

DifusdER[]={0,0,0}; >>Difusión de Derivada de Error

La difusión se realiza por medio de comparaciones y aplicando la ecuación de pertenencia


de cada función; le asigna a cada entrada un valor de pertenencia con la función que le
corresponda.

6.3.2 Programación de la DIFUSIÓN del Error de Temperatura


if(error<0.5){ //Función LAMDA MBajo

DifusEr[0]=1

else if((error>=0.5)&&(error<10)){ //Funciones LAMDA MBajo Y TRIANGULAR Bajo

DifusEr[0]=(ErTem[1]-error)/(ErTem[1]-ErTem[0]); //LAMDA MBajo


~ 68 ~
DifusEr[1]=1-DifusEr[0]; //Complemento TRIANGULAR Bajo

else if((error>=10)&&(error<30)){ //Funciones TRIANGULAR Bajo y TRIANGULAR


Medio

DifusEr[1]=(ErTem[2]-error)/(ErTem[2]-ErTem[1]); //TRIANGULAR Bajo

DifusEr[2]=1-DifusEr[1]; //Complemento TRIANGULAR Medio

else if((error>=30)&&(error<40)){ //Funciones TRIANGULAR Medio y


TRIANGULAR Grande

DifusEr[2]=(ErTem[3]-error)/(ErTem[3]-ErTem[2]); //TRIANGUALR Medio

DifusEr[3]=1-DifusEr[2]; //Complemento TRIANGULAR Grande

else if((error>=40)&&(error<50)){ //Funciones TRIANGULAR Grande y


TRIANGULAR MGrande

DifusEr[3]=(ErTem[4]-error)/(ErTem[4]-ErTem[3]); //TRIANGULAR Grande

DifusEr[4]=1-DifusEr[3]; //Complemento GAMMA MGrande

else if(error>=50){ //Función Gamma MGRANDE

DifusEr[4]=1;

6.3.3 Programación de la DIFUSIÓN de la Derivada del Error


if (dError <-0.6){ //Función LAMDA NEG

DifusdER[0]=1;

else if((dError>=-0.6)&&( dError <0)){ //Función TRIANGULAR CERO

DifusdER[0]=(dError-dErTem[1])/(dErTem[0]-dErTem[1]);

DifusdER[1]=1-DifusdER[0]; //Complemento conjunto difuso

}
~ 69 ~
else if((dError >=0)&&(de<0.6)){ //Función TRIANGULAR CERO

DifusdER[1]=(dError -dErTem[2])/(dErTem[1]-dErTem[2]);

DifusdER[2]=1-DifusdER[1]; //Complemento conjunto difuso

else if(dError >=0.6){ //Función GAMMA POS

DifusdER[2]=1;

Para hacer la operación “min”, se desarrollaron tres contadores, uno para el número de
regla difusa y otros dos para recorrer los vectores de Difusión del Error de temperatura y la
Difusión de la Derivada del error de temperatura.

6.3.4 Programación de las REGLAS DIFUSAS


n=0; //Numero de regla difusa

for(i=0;i<3;i++){ //Contador dError

for(j=0;j<5;j++){ //Contador ErroDifuso

ReglaDif[n]=min(DifusEr[j],DifusdER[i]);

n=n+1;

El resultado de la sección de código anterior es el siguiente:

ReglaDif[0]=min(DifusEr[0], DifusdER[0])

ReglaDif[1]=min(DifusEr[1], DifusdER[0])

ReglaDif[2]=min(DifusEr[2], DifusdER[0])

ReglaDif[3]=min(DifusEr[3], DifusdER[0])

ReglaDif[4]=min(DifusEr[4], DifusdER[0])

...

ReglaDif[14]=min(DifusEr[4], DifusdER[2])

Con esto se tiene desarrollada la primera parte de la máquina de inferencia tipo Mamdani.

~ 70 ~
Para la segunda parte de operaciones en la máquina de Mamdani, necesitamos las reglas
difusas diseñadas anteriormente, para esto la salida de cada regla difusa es potencia,
representada por el ciclo de trabajo de un PWM (Pulse Width Wave, traducido como
Modulación por ancho de pulso). El vector de Potencia definido para PWM es:

PotPWM[]={25,35,45,55,65,80,95} indica el porcentaje del ciclo de trabajo.

25=Mínimo; 35=Bajo1; 45=Bajo2; 55=Medio; 65=Alto1; 80=Alto2 y


95=Máxima

Para la salida difusa de PWM se crea el vector

Potencia[]={0,0,0,0,0,0,0}; //PWM_Salida_Difusa

Potencia[0]=Poca, Potencia[1]=Baja, Potencia[2]=Media, Potencia[3]=Alta y Potencia [4]=Máxima.

Reordenando las reglas difusas como los contadores anteriores tenemos la siguiente tabla
1.6 Reglas difusas Reordenadas para poder operar con los contadores descritos
anteriormente. Y donde a cada función de membresía de la variable de salida se le asignará
un lugar dentro del vector “Potencia”:

Potencia[0]=Mínimo; Potencia[1]=Bajo1; Potencia[2]=Bajo2;


Potencia[3]=Medio; Potencia[4]=Alto1; Potencia[5]=Alto2 y
Potencia[6]=Máxima

No Error Temperatura dError Temperatura Potencia PWM


De
Regla
0 IF MuyBajo 0 AND Negativa 0 THEN Bajo1 1
1 IF Bajo 1 AND Negativa 0 THEN Medio 2
2 IF Medio 2 AND Negativa 0 THEN Alta1 3
3 IF Grande 3 AND Negativa 0 THEN Máximo 4
4 IF MuyGrande 4 AND Negativa 0 THEN Máximo 4
5 IF MuyBajo 0 AND Cero 1 THEN Mínimo 0
6 IF Bajo 1 AND Cero 1 THEN Bajo2 1
7 IF Medio 2 AND Cero 1 THEN Medio 2
8 IF Grande 3 AND Cero 1 THEN Alto2 3
9 IF MuyGrande 4 AND Cero 1 THEN Máximo 4
10 IF MuyBajo 0 AND Positiva 2 THEN =====
11 IF Bajo 1 AND Positiva 2 THEN Bajo1 0
12 IF Medio 2 AND Positiva 2 THEN Medio 2
13 IF Grande 3 AND Positiva 2 THEN Alto1 2
14 IF MuyGrande 4 AND Positiva 2 THEN Alto2 3
Tabla 1.5 Reglas difusas reordenadas

~ 71 ~
dError Temperatura
Potencia Negativa 0 Cero 1 Positiva 2
Error de MuyBajo 0 Bajo1 1 Mínimo 0 ==
Bajo 1 Medio 3 Bajo2 2 Bajo1 1
Temperatura Medio 2 Alto1 4 Medio 3 Medio 3
Grande 3 Máximo 6 Alto2 5 Alto1 4
MuyGrande 4 Máximo 6 Máximo 6 Alto2 5

Potencia [0]= ReglaDif[5]; //Potencia[0]=>Mínimo_PWM

Potencia [1]=max(ReglaDif[11],ReglaDif[0]); //Potencia[1]=>Bajo1_PWM

Potencia [2]=ReglaDif[6]; //Potencia[2]=>Bajo2_PWM

Potencia [3]=ReglaDif[1]; //Potencia[3]=>Medio_PWM

Potencia [4]=max(ReglaDif [7],ReglaDif[12]); //Potencia[4]=>Alto1_PWM

Potencia[5]=max(max(max(ReglaDif[2],ReglaDif[8]),ReglaDif[13]),Reg
laDif[14]); //Potencia[5]=>Alto2_PWM

Potencia [6]=max(max(ReglaDif[3],ReglaDif[4]),ReglaDif[9]);
//Potencia[6]=>Máxima_PWM

La salida difusa se obtiene con el método COM, ya que el conjunto de salida está formado
por funciones singleton.

∑𝑛𝑖=1 µ(𝑢𝑖) ∗ ui
𝑍=
∑𝑛𝑖=1 µ(𝑢𝑖)
Donde ui= Valor típico de cada función.

µ(ui)=es el valor de pertenencia en dicha función.

Se definen 3 variables, X lleva la suma de los productos ∑𝑛 𝑖=1 µ(𝑢𝑖) ∗ ui e Y lleva la


suma de los valores de pertenencia ∑𝑛𝑖=1 µ(𝑢𝑖) y Z es la salida.

~ 72 ~
6.3.5 Programación de la DESDIFUSIÓN
PotPWM[]={25,35,45,55,65,80,95}

X=0; Y=0; Z=0;

for(i=0;i<7;i++){

X=Potencia[i]*PotPWM[i]+X;

Y=Potencia[i]+Y;

Z=X/Y; //SALIDA Difusa % de PWM

Se hace un acondicionamiento se la salida para que pueda estar dentro de los valores que
nos da el PWM de Arduino de 8 bits puede tener un ciclo de trabajo entre los valores de 0 a
255 y una frecuencia aproximada de 500Hz. Por los que se usa una simple regla de 3 para
obtener el equivalente. Al igual que el Arduino Mega, el MSP430G2553 tiene PWM de 8
bits y se puede usar el PWM a 500Hz.

100%=255

Z%=?

PW=(Z*255)/100.

El Arduino Mega 2560 cuenta con 15 puertos de escritura analógica que son los que pueden
ser usados para generar un PWM.

Con este código tenemos la máquina de inferencia tipo Mamdani para poder implementarla
en el microcontrolador Arduino. El código completo que se programó para Arduino Mega
2560 se puede consultar en el Apéndice A-9.

~ 73 ~
6.3.6 Programa para ARDUINO MEGA 2560
En el apéndice A #9 se tiene el programa para Arduino Mega 2560.
En la Figura 6.3.7 se observa la captura de pantalla de la compilación del programa en
Arduino IDE. Vemos que el programa ocupa un total de 8812 bytes de los 253952 bytes
máximos de memoria flash.

Figura 6.3.6 Compilación Arduino IDE

6.3.7 Programa para MSP430G2553


En el apéndice A #10 se tiene el programa para el Microcontrolador MSP430G2553.

En la Figura 6.3.8 se observa una captura de pantalla de la compilación en Energia IDE,


software para programar el microcontrolador MSP430G2553. Se ve que la memoria total
utilizada por el programa es 11447 bytes de los 16384 bytes totales de memoria flash. Se
puede decir que el programa queda justo dentro de la capacidad máxima de nuestro
microcontrolador.

Figura 6.3.7 Compilación Energia IDE

~ 74 ~
Capítulo 7 IMPLEMENTACIÓN
Para la implementación del control con lógica difusa, como se describió anteriormente
primero se programó en la plataforma Arduino, específicamente en el Arduino Mega 2560
® y posteriormente se programó en el microcontrolador MSP430G2553.

7.1 Pruebas de control de temperatura ARDUINO


El sistema de control difuso está programado en la plataforma Arduino Mega 2560®, con 3
sensores LM35 colocados en el interior del horno se toma el promedio de temperatura que
se despliega en la pantalla LCD 16X2 en tiempo real, tiene un potenciómetro con el que se
selecciona la temperatura a la que se desea calentar el horno y esta temperatura también se
muestra en el display LCD. La interfaz de potencia es un Mosfet IRF540 que trabaja en
corte y saturación, controlado por un PWM que manda el Arduino Mega 2560®. A
continuación en la Figura 7.1.0 se muestra un diagrama de las conexiones del sistema
completo.

Figura 7.1.0 Diagrama completo del sistema

~ 75 ~
7.1.1 Caracterización.
En un principio se tenían sólo 12 reglas difusas para el control de temperatura mostradas
en la Tabla 1.7. Cuando se trabajó con esas 12 reglas difusas el sistema si controlaba la
temperatura, pero había una variación de temperatura de 1oC y para los experimentos de
espectroscopia esa variación afectaba la medición de la absorción de luz láser; ya que los
átomos son muy sensibles a los cambios de temperatura.

Dato importante, dentro del laboratorio de átomos fríos se tiene un a aire acondicionado
que siempre permanece en una temperatura constante de 19oC

dError
Negativa Cero Positiva
Error

MuyBajo _______ _______ _______

Bajo Bajo2 Bajo1 Mínimo

Medio Alto1 Medio Medio

Grande Máximo Alto2 Alto1

MuyGrande Máximo Máximo Alta2

Tabla 1.6 Primera memoria difusa

A continuación se muestran gráficas de las pruebas de temperatura Figura 7.1.1, Figura


7.1.2 y Figura 7.1.3, estas gráficas se realizaron con los datos capturados por medio de la
comunicación UART (Siglas en inglés de Universal Asynchronous Receiver-Transmitter,
traducido al español Transmisor-Receptor Asíncrono Universal) entre el Arduino y la
computadora del laboratorio. En las gráficas se puede observar que independientemente del
voltaje aplicado al mosfet por la fuente, hay una oscilación de 1oC pico a pico alrededor de
la temperatura deseada. En el caso de la Figura 7.1.2 se observa que la temperatura real
llega por instantes a la temperatura objetivo y después comienza a disminuir.

Una vez que el horno llegó a la temperatura de 60oC y las oscilaciones de temperatura
siguieron por aproximadamente 20min, se desconectó el voltaje de alimentación del mosfet,
se siguió capturando la temperatura del horno hasta que llegó a los 23oC; se graficaron los
datos y lo que obtuvimos fue la curva de enfriamiento natural del horno (Figura 7.1.4).

~ 76 ~
Figura 7.1.1 Estabilidad a 25.4oC

Figura 7.1.2 Estabilidad a 30.3oC

Se observa que en las dos primeras gráficas Figura 7.1.1 y Figura 7.1.2 el tiempo de
enfriamiento es de aproximadamente 2 min, mientras que en la tercer gráfica Figura 7.1.3
el tiempo de enfriamiento es de 1 min aproximadamente. Se puede afirmar que a
temperaturas altas el sistema no logra contrarrestar el enfriamiento natural del horno, a
temperaturas bajas mantiene la temperatura por un mayor tiempo.

Se pueden ver también dentro de las gráficas variaciones de temperatura de 0.2 oC éstas
pequeñas variaciones son atribuidas a la conversión analógica-digital que hace el
microcontrolador con cada sensor, además que también se obtiene una temperatura
promedio entre los 3 sensores que tiene el horno.

~ 77 ~
Recordando que la sensibilidad del LM35 es de 10mV/oC y el resultado de la ecuación 6.1
4.88𝑚𝑉/𝑏𝑖𝑡
que es 4.88mV/bit eso nos da una resolución de 𝛥 = = 0.488𝑜 𝐶/𝑏𝑖𝑡 y el error al
10𝑚𝑉/𝑜𝐶
𝛥 0.489
promediar los 3 sensores es de 𝛥3𝑠𝑒𝑛𝑠𝑜𝑟𝑒𝑠 = = = ±0.28𝑜 𝐶/𝑏𝑖𝑡
√3 √3
aproximadamente es la variación que tiene el ADC al desplegar la temperatura del sistema.

±0.28oC

Figura 7.1.3 Estabilidad a 60.1oC


Se obtuvo la curva de enfriamiento natural del horno mostrada en la Figura 7.1.4;
recordemos que este horno tiene fibra de vidrio entre la celda de vidrio y la cubierta
adiabática de tubo PPR, con la finalidad de minimizar las pérdidas de calor. Se observa que
le toma un tiempo 90 minutos enfriarse de 60oC a 23oC, un punto importante es que
mientras más se aproxima a la temperatura ambiente, más tarda en enfriarse.

Figura 7.1.4 Curva de enfriamiento del horno


~ 78 ~
Analizando la curva de enfriamiento, se observa que cuando el horno está en temperaturas
entre los 40oC y 60oC se enfría más rápido que cuando está en temperaturas entre 30oC a
40oC y en temperaturas menores a 30oC es aún más lento el enfriamiento.

Figura 7.1.5 Secciones de enfriamiento

Debido a esto se optó por manipular el voltaje de que suministra el mosfet a las
resistencias, de manera que se pueda contrarrestar el enfriamiento natural del horno y así
mantener constante la temperatura.

Para evitar los resultados anteriores donde la temperatura varía hasta 1oC, se agregaron dos
nuevas reglas difusas que se resaltan en negro en la nueva memoria difusa del sistema,
mostrada en la Tabla 1.8, se obtuvieron las siguientes gráficas mostradas en las Figuras
7.1.6 – 7.1.10.

dError Negativa Cero Positiva

Error

MuyBajo Bajo1 Mínima _______

Bajo Medio Bajo2 Bajo1

Medio Alto1 Medio Medio

Grande Máximo Alto2 Medio

MuyGrande Máximo Máximo Alto2

Tabla 1.7 Segunda memoria difusa

~ 79 ~
La caracterización del sistema se hizo para diferentes temperaturas de operación, tratando
de buscar que se mantuviera constante la temperatura real con la temperatura deseada a
diferentes voltajes Fuente-Drenador en el mosfet; la corrección de la temperatura para esta
prueba se hizo cada 350ms, este tiempo es lo que tarda un ciclo del programa. En la Figura
7.1.6 se observa el proceso de calentamiento del horno de una temperatura inicial de 21.5oC
hasta 23oC la estabilidad de la temperatura del horno a 23oC, esto se logró con un voltaje en
el mosfet de 12 [V]. Se observa un pequeño sobre paso que no supera 1oC de la temperatura
deseada y tarda aproximadamente 20 min en tener una temperatura estable.

Figura 7.1.6 calentamiento del horno a 23oC


En la Figura 7.1.7 se observa a detalle la estabilidad a una temperatura de 23oC y también
se obtuvo el promedio de la sección de datos mostrados en 10 min, que fue de 22.92oC.

Promedio 22.92oC
Figura 7.1.7 estabilidad de temperatura a 23oC
~ 80 ~
En la figura anterior se observan algunos picos de temperatura, estos se deben al ruido que
se genera en los cables a los que están conectados los sensores LM35 que van al interior del
horno, estos cables tiene una longitud de 1m.

En la siguiente Figura 7.1.8 se muestra la estabilidad de la temperatura a 27.3oC, con un


voltaje en el mosfet de 13 [V] y como se mencionó anteriormente las variaciones en 0.2oC
son por la digitalización de la señal y el promedio que se obtiene al leer los sensores LM35,
al no ser mayores a 0.5oC no afectan los experimentos.

Promedio 27.42oC

Figura 7.1.8 estabilidad de temperatura a 27.3oC


Para la estabilidad del horno a una temperatura de 50oC se suministró al mosfet un voltaje
de 17.5 [V], la Figura 7.1.9 muestra la estabilidad obtenida por el sistema a 50oC.

Promedio 49.85oC

Figura 7.1.9 Estabilidad de temperatura a 50oC


~ 81 ~
Para la estabilidad del horno a una temperatura de 60oC se suministró al mosfet un voltaje
de 18 [V], la Figura 7.1.10 muestra la estabilidad obtenida por el sistema a 60oC.

Promedio59.95oC

Figura 7.1.10 Estabilidad de temperatura a 60oC

A continuación se muestra una tabla donde se indica voltaje necesario en el mosfet para
poder controlar el horno a la temperatura deseada, de manera que el enfriamiento natural
del horno se pueda contrarrestar.

Rango de Temperatura deseada Voltaje Drenador-Fuente Mosfet


20oC< T <25oC 12 V
o o
25 C< T <30 C 13V-14V
o o
30 C< T <50 C 15V-16V
o o
50 C< T <60 C 17V-18V

La potencia disipada en cada resistencia cuando se aplica el mínimo voltaje 12V y si el


PWM fuese el 100% se describe en las siguientes ecuaciones y en la Figura 7.1.11 se
muestra el diagrama de las resistencias.

Figura 7.1.11 Diagrama de resistencias

~ 82 ~
Usando las ecuaciones de ley de Joule

Se obtiene la potencia total que consume el circuito y después se obtiene la corriente que
será la misma para las tres resistencias por ser un circuito en serie:

𝑉 2 122
𝑃𝑡𝑜𝑡𝑎𝑙 = = = 9𝑊
𝑅 16𝛺
𝑃𝑡𝑜𝑡𝑎𝑙 9𝑊
𝐼𝑡𝑜𝑡𝑎𝑙 = = = 0.750𝐴
𝑉 12
𝑃𝑅1 = 𝑅1 ∗ 𝐼 2 = 6𝛺 ∗ 0.7502 = 3.37𝑊

𝑃𝑅2 = 𝑅2 ∗ 𝐼 2 = 4𝛺 ∗ 0.7502 = 2.25𝑊

𝑃𝑅3 = 𝑅3 ∗ 𝐼 2 = 6𝛺 ∗ 0.7502 = 3.37𝑊

La potencia disipada en las dos resistencias de los extremos es la misma puesto que tienen
la misma resistividad de 6Ω, y la suma de las potencias nos da la potencia total disipada.

Cuando el circuito opera con el voltaje máximo de 18V y si el PWM fuese del 100% se
tendría la siguiente potencia total en el circuito.

𝑉 2 182
𝑃𝑡𝑜𝑡𝑎𝑙 = = = 20.25𝑊
𝑅 16𝛺
𝑃𝑡𝑜𝑡𝑎𝑙 20.25𝑊
𝐼𝑡𝑜𝑡𝑎𝑙 = = = 1.125𝐴
𝑉 18
𝑃𝑅1 = 𝑅1 ∗ 𝐼 2 = 6𝛺 ∗ 1.1252 = 7.6𝑊

𝑃𝑅2 = 𝑅2 ∗ 𝐼 2 = 4𝛺 ∗ 1.1252 = 5𝑊

𝑃𝑅3 = 𝑅3 ∗ 𝐼 2 = 6𝛺 ∗ 1.1252 = 7.6𝑊

Los límites de potencia de cada resistencia no se exceden, recordemos que cada resistencia
es de 10W.

Con los datos obtenidos anteriormente donde la corriente total es de 1.125A y la potencia
total de 20.25W se calcula el disipador que debe llevar el mosfet como medida de seguridad
para que no se sobrecaliente y se dañe. A continuación en la Figura 7.1.12 se muestra un
diagrama de las capas internas del mosfet.

~ 83 ~
Figura 7.1.12 Capas de mosfet

Donde Tj es la temperatura de juntura

Tc es la temperatura de encapsulado

Td es la temperatura del disipador

Ta es la temperatura del ambiente

A partir de este diagrama se puede obtener un circuito análogo a un circuito eléctrico de


resistencias térmicas, como el mostrado en la Figura 7.1.13.

Figura 7.1.13 resistencias térmicas

Donde Rtjc es la resistencia térmica entre la juntura y el encapsulado

Rtcs es la resistencia térmica entre el encapsulado y el disipador

Rtsa es la resistencia térmica entre el disipador y el ambiente

P es la potencia de disipación

La ecuación del circuito mostrado anteriormente es

𝑇𝑗 − 𝑇𝑎 = 𝑃(𝑅𝑡𝑗𝑐 + 𝑅𝑡𝑐𝑠 + 𝑅𝑡𝑠𝑎)

~ 84 ~
El valor que se busca es Rtsa ya que los demás valores son proporcionados por el proveedor
en el datasheet del componente, en este caso en el del IRF540.

Al despejar Rtsa nos queda la siguiente ecuación:

𝑇𝑗 − 𝑇𝑎
𝑅𝑡𝑠𝑎 = − 𝑅𝑡𝑗𝑐 − 𝑅𝑡𝑐𝑠
𝑃
Los valores del datasheet son:

Tj=175oC, Rtjc=1.5oC/W, Rtcs=0.5oC/W, P=20.25W es cuando las resistencias demandan


la máxima corriente de 1.125A a 18V y Ta=19oC ya que en el laboratorio de átomos fríos
se cuenta con aire acondicionado constante de 19oC, así que sustituyendo los valores
anteriores 𝑹𝒕𝒔𝒂 = 5.7𝑜 C/W. Se optó por usar un disipador de aluminio con las siguientes
dimensiones L=5.3cm, A=4cm y H=2.5cm como el de Figura 7.1.14.

H A

Figura 7.1.14Dispador de aluminio

En las siguientes tres Figuras 7.1.15-7.1.17se muestra el comportamiento de la corriente


controlada a partir del PWM que manda el microcontrolador hacia el mosfet, en la Figura
7.1.15 se muestra un voltaje de 18V con un consumo de corriente de 0.643A que es
controlada por el PWM al 80% de su ciclo de trabajo, conforme la temperatura real se
aproxima a la temperatura objetivo el PWM disminuye por lo que la corriente consumida
también lo hace, en la Figura 7.1.16 se observa una corriente de 0.352 A y un PWM al
35%.

~ 85 ~
Figura 7.1.15PWM 80% corriente de 0.643A

Figura 7.1.16PWM 35% corriente de 0.352A

Esta última Figura 7.1.17 se observa el PWM al 20% que logra suministrar una corriente
de 0.280 A para mantener la temperatura constante.

Figura 7.1.17PWM 25% corriente de 0.280A

~ 86 ~
7.2 Pruebas de control de temperatura MSP430
Se implementó el sistema de control difuso ahora en el microcontrolador MSP430G2553 de
Texas instruments, usando los mismos elementos de hardware, los 3 sensores LM35, el
display LCD16X2, un potenciómetro de 10KΩ para seleccionar la temperatura deseada.
Adicionalmente todos estos elementos se montaron en un PCB diseñado para que el
Launchpad del microcontrolador se ensamblara en él, en la Figura 7.2.1 se muestra el
circuito ya armado y operando.

Figura 7.2.1 Circuito de MSP4302553 operando

Se realizaron las pruebas del sistema y se obtuvieron los siguientes datos que se grafican a
continuación y se muestran en las Figuras 7.2.2 – 7.2.5 la captura de los datos fue cada 357
milisegundos, que es el tiempo que tarda en realizar un ciclo del programa principal.

Retomado la ecuación 6.4 donde 1bit dentro del ADC del MSP430G2553 varía con
3.51𝑚𝑉/𝑏𝑖𝑡
3.51mV y la sensibilidad del sensor de 10mV/oC nos da una resolución de 𝛥 = =
10𝑚𝑉/𝑜𝐶
𝛥
0.351𝑜 𝐶/𝑏𝑖𝑡 y el error al promediar los 3 sensores de temperatura es de 𝛥3𝑠𝑒𝑛𝑠𝑜𝑟𝑒𝑠 = =
√3
0.351
= ±0.2𝑜 𝐶/𝑏𝑖𝑡 debido a esto se ven variaciones en los valores de la temperatura.
√3

~ 87 ~
Figura 7.2.2 Estabilidad a 23oC

A continuación en la Figura 7.2.3 se muestra una sección de la estabilidad de la


temperatura a 23oC y también se obtuvo el promedio de esa serie de datos mostrados en 10
min, el promedio es de 22.66oC.

Promedio 22.66oC

Figura 7.2.3 Estabilidad a 23oC

~ 88 ~
En la Figura 7.2.4 mostrada a continuación se observa la estabilidad de la temperatura a
27oC y su promedio es de 27.34oC.

Promedio 27.34oC

Figura 7.2.4 Estabilidad a 27oC

Promedio 50.32oC

Figura 7.2.5 Estabilidad a 50oC

~ 89 ~
Promedio 60.21oC

Figura 7.2.6 Estabilidad a 60oC

3.6
Si se tuviera un ADC de 12 bits 1𝑏𝑖𝑡 = 4095 = 0.88𝑚𝑉 este ADC es más sensible a las
variaciones de voltaje; por lo que aumenta la precisión del sistema pero por otro lado el
LM35 no logra ser tan sensible a temperaturas de 0.1oC, así que para poder utilizar un ADC
de mayor resolución el sensor también debe ser más preciso.

Para la obtención de la estabilidad en temperatura se trabajó con los mismos voltajes


drenador-fuente en el mosfet, obteniendo un resultado casi idéntico al de Arduino.

Rango de Temperatura deseada Voltaje Drenador-Fuente Mosfet


20oC< T <25oC 12 V
o o
25 C< T <30 C 13V-14V
o o
30 C< T <50 C 15V-16V
o o
50 C< T <60 C 17V-18V

~ 90 ~
A continuación se muestran dos pares de imágenes en la Figura 7.2.7y Figura 7.2.8 donde
se compara la temperatura mostrada por el controlador y la temperatura medida por un
termómetro de mercurio que toca una pared de la celda de vidrio.

Figura 7.2.7 Temperatura de horno 35.2oC y temperatura termómetro33oC

Figura 7.2.8 Temperatura de horno 40oC y temperatura termómetro 39oC

Se observa que el valor de la temperatura en el termómetro de mercurio es muy cercano a la


T-Ahora mostrada en el display del controlador.

~ 91 ~
7.3 Experimentos de espectroscopia.
A continuación se mostrará el efecto que el control de la temperatura del horno tiene en las
mediciones de los espectros de absorción de un haz láser que pasa a través de la celda de
espectroscopia que se encuentra al interior del horno.

El experimento de espectroscopia de absorción se lleva a cabo con un diodo láser HL7851G


de 780nm de la marca Hitachi, este diodo está compuesto de arseniuro de galio-aluminio.
El diodo está montado en un sistema de cavidad óptica externa en configuración Littrow,
como el diagrama mostrado en la Figura 7.3.1. En este sistema se utiliza una rejilla de
difracción por reflexión como método de selección de longitud de onda para retroalimentar
al diodo láser en la cavidad óptica resonante. Este sistema tiene como consecuencia que el
ancho de emisión del diodo se reduzca hasta tan solo unos cuantos MHz o menos. Debido a
que el ancho natural de las transiciones electrónicas más intensas en los átomos alcalinos es
comúnmente del orden de algunos MHz, el sistema de cavidad externa permite obtener
suficiente resolución para registrar estas transiciones atómicas. Así mismo, el ángulo de
incidencia de la radiación láser sobre la rejilla de difracción es controlada con precisión
mediante el voltaje suministrado a un transductor piezoeléctrico, por lo que la frecuencia de
emisión del láser puede ser variada de manera precisa y controlada.

Figura 7.3.1 Cavidad óptica Littrow [23]

El haz de luz láser se hace pasar por elementos ópticos con los que se regula su potencia y
polarización, con el λ/2 en conjunto con el cubo polarizador se logra disminuir la potencia
del láser, una vez ajustados los parámetros se hace incidir el haz dentro de la celda de vidrio
que está en el horno y se enciende el sistema de control de temperatura para calentar la
celda de vidrio a la temperatura deseada.

~ 92 ~
La luz absorbida por los átomos dentro de la celda es medida con un fotodiodo FDS100 a la
salida del horno la información que nos arroja el fotodiodo son los espectros de absorción
del Rb 85 y Rb 87. En la Figura 7.3.2 se muestra un esquema del experimento.

Figura 7.3.2 Esquema del experimento de espectroscopia


En la Figura 7.3.3 se muestra un diagrama de lo que ocurre dentro de la celda entre el haz
láser y el gas de Rb. Al incrementar la temperatura los átomos de Rb aumentan dentro de la
celda y es más probable que más de ellos absorban la luz láser. La potencia de luz que sale
de la celda es menor a la potencia que entra a la celda.

Figura 7.3.3 Absorción de luz láser


El láser usado fue construido por los investigadores y alumnos del Laboratorio de átomos
fríos del ICN. En la Figura 7.3.4 se muestra una imagen del láser usado en este
experimento.

Rejilla de difracción

Diodo láser HL7851G


Transductor
piezoeléctrico

Figura 7.3.4 Láser Hitachi de 780nm


~ 93 ~
El haz láser atraviesa la celda que está dentro del horno con una Potencia de 69uW y una
longitud de onda de 780nm, a la salida del horno se tiene el fotodiodo FDS100 con el cual
se mide la cantidad de luz que sale de la celda y el experimento de espectroscopia de
absorción consiste en registrar la potencia de la radiación láser transmitida a través del gas
de rubidio y que por consiguiente llega el fotodiodo como función de la frecuencia de la
luz, en las Figuras 7.3.5 y 7.3.6 se muestran imágenes del horno y el fotodiodo.

Fotodiodo
FDS100

Figura 7.3.5 Horno y fotodiodo FDS100

Fotodiodo
FDS100
Horno

Salida de haz láser

Figura 7.3.6 Medición de luz absorbida

~ 94 ~
7.3.1 Espectros de absorción.
Los espectros de absorción fueron tomados con la ayuda de un osciloscopio, a diferentes
temperaturas, donde se aprecian algunas diferencias el Rb 85 y Rb 87, la señal vista en el
osciloscopio se muestra a continuación en la Figura 7.3.7, donde la señal amarilla muestra
unos pozos que indican que la luz fue absorbida por los átomos de Rb, el pozo más
profundo corresponde a Rb85 y el otro es Rb87; la señal rosa es proporcional al voltaje
aplicado al piezoeléctrico responsable del control de la frecuencia de la radiación laser.

Figura 7.3.7 Señal de FDS100 en el osciloscopio

En las Figuras 7.3.9-7.3.14 se muestran los espectros de absorción de Rb 85 y Rb 87, a


diferente temperatura, la línea azul es el espectro de ambos y la línea roja es el ajuste de la
curva con dos distribuciones gaussianas, una para Rb85 y otra para Rb87. Para realizar el
ajuste se usó el software Mathematica.

La distribución gaussiana o distribución normal es una distribución de probabilidad de


variable continua, la gráfica de su función de densidad tiene forma acampanada mostrada
en la Figura 7.3.8 y es simétrica, la importancia de esta función es que permite modelar
fenómenos naturales, sociales y psicológicos. Está definida por la siguiente expresión:
(𝑥−𝑏)2

𝑓(𝑥) = 𝑎𝑒 2𝑐 2

Donde a y b son constantes reales y c>0

Figura 7.3.8 Curva Gaussiana

~ 95 ~
1
Donde 𝑎 = , 𝑏 = 𝑚𝑒𝑑𝑖𝑎 y c2= varianza
𝑐 √2𝜋

En las siguientes gráficas el pozo más profundo corresponde a Rb 85 y el pozo más


pequeño corresponde a Rb87. Debido a que el primero presenta una abundancia natural del
72.16% mientras que para el segundo es de tan solo 27.83%.

Rb87
Rb87
Rb85
Rb85

Figura 7.3.9 Espectro de absorción a 20oC Figura 7.3.10 Espectro de absorción a 25oC

Rb87
Rb85 Rb85 Rb87

Figura 7.3.11 Espectro de absorción a 30oC


Figura 7.3.12 Espectro de absorción a 35oC

Rb87
Rb85
Rb85 Rb87

Figura 7.3.13 Espectro de absorción a 40oC Figura 7.3.14Espectro de absorción a 50oC

~ 96 ~
Como se puede observar en las figuras, los pozos de absorción de luz se hacen más
profundos cuando la temperatura aumenta, esto nos indica que a mayor temperatura la
densidad de vapor de Rb aumenta así que más átomos absorben la luz láser en la longitud
de onda de 780.2 nm. A temperaturas mayores a 35oC los átomos de Rb85 son tantos que
absorben la mayoría de la luz, por lo que el pozo se corta; y así pasa también con el Rb87 a
una temperatura de 40oC.

A continuación se muestran dos tablas Tabla 1.9 Rubidio 85 y Tabla 1.10 Rubidio 87, con
el análisis estadístico de los espectros que fueron capturados anteriormente. Éste análisis
fue realizado por el estudiante Luis Alcántar de la Licenciatura en física y este material
podrá ser consultado a detalle en su tesis de licenciatura. Posteriormente se muestran dos
gráficas una en la Figura 7.3.15, donde se ve como cambia la anchura de los pozos del
Rb85 y Rb87 en función de la temperatura, la anchura de los pozos es directamente
proporcional a la temperatura y la otra gráfica en la Figura 7.3.16, donde se muestra el
cambio de profundidad de cada pozo en función de la temperatura.

Rb85

Temperatura Amplitud=a Ancho=b Centro Offset Área=(a*b(sqrt(2pi)))


[oC]
20 -1.5875 0.00194265 -0.00407119 3.66971 0.007730339
21 -1.81801 0.00197732 -0.00365994 3.68356 0.009010802
25 -2.27696 0.00202908 -0.00332733 3.6925 0.011580966
30 -3.17811 0.00215997 -0.00328907 3.71531 0.017685049
35 -4.48316 0.00219613 -0.00291951 3.7184 0.024679282
40 -6.07829 0.00221956 -0.00295132 3.71594 0.03381727
45 -8.48464 0.00222254 -0.00304884 3.71888 0.047268654
50 -10.5856 0.0022875 -0.00310217 3.76305 0.060696943

Tabla 1.8 Rubidio 85

Rb87

Temperatura [oC] Amplitud=a Ancho=b Centro Offset Area=(a*b(sqrt(2pi)))


20 -0.711313 0.001793 0.0050386 3.66971 0.00319692
21 -0.838052 0.00182859 0.00542912 3.68356 0.00384129
25 -1.11509 0.00187843 0.00573448 3.6925 0.00525043
30 -1.80519 0.00198497 0.00579189 3.71531 0.00898188
35 -2.47735 0.00211604 0.00610305 3.7184 0.01314018
40 -3.15099 0.0023216 0.00614363 3.71594 0.01833685
45 -4.10415 0.00242884 0.00612846 3.71888 0.0249869
50 -5.22465 0.00251152 0.00618805 3.76305 0.03289153
Tabla 1.9 Rubidio 87

~ 97 ~
Estos resultados mostrados, demuestran el funcionamiento del horno dentro del Laboratorio
de átomos fríos del Instituto de ciencias nucleares, se logra lo que se pretendía en un
principio, que es aumentar la cantidad de átomos de Rb dentro de la celda.

Figura 7.3.15 Grafica de temperatura VS anchura de pozos

Figura 7.3.16 Gráfica de temperatura VS profundidad de pozos

~ 98 ~
 Crecimiento poblacional relativo
Para obtener el crecimiento poblacional relativo de átomos, se usó la siguiente ecuación
porcentaje de error:

𝐴(𝑇𝑥) − 𝐴(20𝑜 𝐶)
𝐶𝑟𝑒𝑐𝑖𝑚𝑖𝑒𝑛𝑡𝑜 𝑝𝑜𝑏𝑙𝑎𝑐𝑖𝑜𝑛𝑎𝑙 = | |
𝐴(20𝑜 𝐶)

Donde A(Tx) es el área a una temperatura diferente a la temperatura inicial y A(20oC) es el


área a la temperatura inicial de 20oC.

Temperatura Crecimiento Crecimiento


[oC] Rb85 Rb87
20 0 0
21 0.16564125 0.20155963
25 0.49811878 0.64234013
30 1.2877456 1.80954168
35 2.1925226 3.11026238
40 3.37461669 4.73578632
45 5.11469355 6.81592908
50 6.85178283 9.28850581

Figura 7.3.17 Gráfica de temperatura VS Densidad atómica

~ 99 ~
Los resultados muestran el incremento relativo, es decir, se toma como referencia el
número de átomos a 20°C, el rubidio 87 creció en un 928% en comparación con el 685%
del Rb 85, pero inicialmente por cada átomo de Rb 87 hay 3 de Rb 85 así que al final se
tiene una proporción de 32% de Rb 87 y 68% de Rb 85 aproximadamente.

El siguiente paso dentro los experimentos con átomos de Rb es intentar obtener átomos tipo
Rydberg cuando la densidad de átomos es alta ya que en este punto es más probable que se
puedan obtener este tipo de átomos con la interacción de tres haces de luz láser
sintonizados en tres diferentes longitudes de onda infrarrojas; esta parte del experimento
queda a cargo del laboratorio de átomos fríos del instituto de ciencias nucleares.

~ 100 ~
Conclusiones:
Al realizar esta tesis queda claro que la lógica difusa es una herramienta muy útil dentro de
la ingeniería pues ayuda a resolver problemas de una forma sencilla; el sistema construido
logra ser preciso y exacto, cuando opera con el microcontrolador Arduino Mega 2560,
preciso porque el valor de la temperatura real varia en ±0.2oC y exacto porque las
mediciones se aproximan a la temperatura deseada. En cambio cuando el sistema opera con
el microcontrolador MSP430G2553, se puede decir que es exacto pero no preciso, exacto
porque se acerca a la temperatura deseada pero las variaciones son muy imprecisas a
diferencia de Arduino. Las variaciones de temperatura menores a 0.5oC no afectan la
medición de absorción de luz dentro de la celda con Rb.

Los resultados del calentamiento del horno fueron buenos porque el sistema logra mantener
la temperatura del horno constante muy próxima a la temperatura que se desea, se puede
ver en los promedios obtenidos mediante el análisis de datos que las variaciones son
mínimas dentro de los 0.2oC con el Arduino Mega 2560 y con variaciones de 0.4oC con el
MSP430G2553; al principio en las primeras pruebas se tenían variaciones de temperatura
de 1oC.

El tener un controlador difuso nos da la ventaja de poder modificarlo sin la necesidad de


hacer cálculos complejos, como fue el caso de rediseñar la memoria difusa para que la
variación de temperatura que se tenía en un principio disminuyera considerablemente.

Una ventaja que se tiene al usar el MSP430G2553 es que el sistema queda a la medida de
nuestro problema, es decir se usan 14 de los 18 puertos disponibles en este
microcontrolador, por el contrario usando Arduino se subutiliza el microcontrolador ya que
tiene 54 puertos de los cuales solo se usan 14 y en memoria ROM el MSP430G2553 usa
11.44 kB de los 16kB disponibles, mientras que Arduino solo usa 8.812 kB de los 256kB
que tiene.

Una desventaja que se tiene al trabajar con fuentes de DC fue que se tiene que cambiar el
voltaje de operación del mosfet, dependiendo de la temperatura a la que se desea calentar la
celda; una mejora para este trabajo puede ser el controlar también el voltaje del mosfet por
medio del microcontrolador conectando este a una fuente de DC que pueda ser controlada
por medio un puerto serial.

En el experimento se comprobó que al aumentar la temperatura de la celda la densidad


atómica de Rb85 y Rb87 también aumenta, esto debido a que se evapora parte del rubidio
sólido que hay en el interior de la celda, un punto interesante es que el Rb87 tiene un
crecimiento poblacional relativo mayor al Rb85. El uso de nuevas formas de control,
ayudan a solucionar problemas dentro de un laboratorio dedicado a la investigación de la
física atómica, se logró resolver el problema de una forma fácil y de muy bajo costo gracias
a la lógica difusa.

~ 101 ~
Con este trabajo se ha contribuido a la investigación de física atómica que se realiza en el
Instituto de ciencias nucleares dentro del laboratorio de átomos fríos.

~ 102 ~
Bibliografía
[1] Chuen Chien Lee. (1990). Fuzzy Logic in Control Systems: Fuzzy Logic Controller.
IEEE TRANSACTIONS ON SYSTEMS. MAN, AND CYBERNETIC'S, 20, 404 418.

[2] Alberto Requena. (2004). Espectroscopia. Madrid: Prentice Hall.

[3] http://www.clpu.es/divulgacion/bits/que-tipos-de-laseres-hay

[4] Chris Nagy.(2003).Embedded Systems Desing using the TI MSP430 series. Estados
Unidos: Newnes

[5]John Davies.(2008).MSP430 Microcontroller basics. Reino Unido: Newnes

[6]Ricardo Santillan Díaz.(2015).Tesis de Maestría: Caracterización de la trampa


Magneto-Óptica del Instituto de Ciencias Nucleares. México:UNAM

[7] Ned Mohad. Power Electronic. Estados Unidos: Wiley. 3ra Edición

[8] Chen Guanrong.(2000). Introduction to fuzzy sets, fuzzy logic and fuzzy control systems.
Estados Unidos: CRC Press.

[9] Cornelius T. Leondes. (1998). Fuzzy Logic and experts systems application. Estados
Unidos: Academic Press. Páginas consultadas [6-36].

[10] Muhammad H. Rashid.(1995). Electrónica de Potencia. México: Prentice Hall.


Páginas Consultadas [122-285].

[11] Jyh-Shing Roger Jang. (1997). Neuro-Fuzzy and soft computing. Estados Unidos:
Prentice-Hall.

[12]Timothy J. Ross. (2010). Fuzzy logic with engineering applications. Tercera Edición.
Estados Unidos: Wiley

[13] Rubidio (s.f). En Wikipedia. Recuperado el 1 de Junio de 2016 de


https://es.wikipedia.org/wiki/Rubidio

[14] Lepidolita (s.f). En Wikipedia. Recuperado el 1 de Junio de 2016 de


https://es.wikipedia.org/wiki/Lepidolita

[15] Johannes Rydberg (s.f). En Wikipedia. Recuperado el 1 de Junio de 2016 de


https://es.wikipedia.org/wiki/Johannes_Rydberg

[16] AVR (s.f). En Wikipedia. Recuperado el 6 de Junio de 2016 de


https://es.wikipedia.org/wiki/AVR

[17] http://mx.omega.com/heaters/pdf/SRFR_SRFG.pdf

[18] http://www.polygonpipe.es/1-PPR-pipe-1.html

~ 103 ~
[19] http://herramientas.educa.madrid.org/tabla/espectros/spespectro.html

[20] http://www.triadtechno.com/wavelength_reference_cells.html

[21] http://www.cfa.harvard.edu/amp/ampdata/kurucz23/sekur.html

[22] http://physics.nist.gov/PhysRefData/ASD/lines_form.html

[23] http://www.fis.unam.mx/~juarez/gerardo.pdf

[24] http://mx.omega.com/heaters/pdf/SRFR_SRFG.pdf

[25] http://www.atmel.com/Images/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-
1280-1281-2560-2561_datasheet.pdf

[26] http://www.ti.com/lit/ug/slau144j/slau144j.pdf

[27] https://vecinadelpicasso.files.wordpress.com/2013/09/guadiel-espectros.jpg

~ 104 ~
Apéndice A
1. Dimensiones de la celda

2. Fotodiodo FDS100

~ 105 ~
3. Resistencias de silicón

~ 106 ~
4. Circuito PCB de acoplamiento de fotodiodo.
Fue diseñado con el software Eagle.

5. Circuito PCB MSP430G2553


Fue diseñado con el software Eagle.

~ 107 ~
6. Hoja de datos sensor LM35

~ 108 ~
~ 109 ~
~ 110 ~
7. Hoja de datos IRF540

~ 111 ~
~ 112 ~
~ 113 ~
8. Pines Arduino Mega 2560

~ 114 ~
9. Pines MSP430G2553

~ 115 ~
10. Programa para Arduino Mega 2560
//---------------------------------------Control de Temperatura-------------------------------------

LCD pin Conectado a


------------------------------------------
01 - GND GND
02 - VCC +5V
03 - Contrast Pot y GND
04 - RS Pin12
05 - R/W GND
06 - EN Pin11
07 - DB0 GND
08 - DB1 GND
09 - DB2 GND
10 - DB3 GND
11 - DB4 Pin5
12 - DB5 Pin4
13 - DB6 Pin3
14 - DB7 Pin2
15 - BL+ +5V y Pot para controlar intensidad luminosa
16 - BL- GND
===================================
Ax Arduino Mega 2560
A1 Sensor1
A2 Sensor2
A3 Sensor3
A4 TempObjetivo
Pin6 PWM
Pin11 LCD RS
Pin12 LCD EN
Pin5 LCD DB4
Pin4 LCD DB5
Pin3 LCD DB6
Pin2 LCD DB7*/

#include <LiquidCrystal.h>//Biblioteca para LCD 16X2

unsigned long tiempo = 0; //Variable almacena el valor del tiempo

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Biblioteca LCD y pines para conectar el LCD

float ErTem[]={0.5,10,30,40,50},dErTem[]={-0.6, 0, 0.6}; //ENTRADAS=> Vectores Funciones


de membresia

//ErTem=ErrorDeTemperatura

//dErTem=DerivadaErrorDeTemperatura

float PotPWM[]={25,35,45,55,65,80,95}; //SALIDA Vector Función de membresia Intervalo de


valores PWM 8 bits MAX=255

//PotPWM=PotenciaDePWM

float DifusEr[]={0,0,0,0,0},DifusdER[]={0,0,0}; //Vectores de Difusión

~ 116 ~
float Potencia[]={0,0,0,0,0,0,0}; //PWM_Salida_Difusa

float ReglaDif[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //Vector de Reglas Difusas.

float Ta1,Ta2,Ta3,final,error,errorAnt,de,real,X,Y,Z,PW; //(Ta1,Ta2,Ta3 son sensores LM35)


//error=ErrorDeTemp

//de=DerivadaDeErrorTemp

//final=Temp_Deseada

//real:Temperatura promedio de 3 sensores

int i=0,j=0,n=0; // Variables de contadores

//Loop de configuración----------------------------------------------------------

void setup(){

Serial.begin(9600); //Abre el puerto de transmisión de datos por segundo

lcd.begin(16, 2); //número de columnas y renglones de LCD

pinMode(06,OUTPUT); //Salida de PWM 8 bits puerto 06, máx 255; frecuencia 500MHz

pinMode(A0,INPUT); //Entrada Sensor1=Ta1

pinMode(A1,INPUT); //Entrada Sensor2=Ta2

pinMode(A2,INPUT); //Entrada Sensor3=Ta3

pinMode(A3,INPUT); //Entrada Temp_Deseada=Potenciometro

Ta1=analogRead(A0); //Lectura S1

delay(2);

Ta1=Ta1/1023*5*100; //ADC A0

delay(2);

Ta2= analogRead(A1); //Lectura S2

delay(2);

Ta2=Ta2/1023*5*100; //ADC A1

delay(2);

Ta3= analogRead(A2); //Lectura S3

delay(2);

Ta3=Ta3/1023*5*100; //ADC A2
~ 117 ~
real=(Ta1+Ta2+Ta3)/3; //Promedio temperatura 3 sensores

final=analogRead(A3); //Lectura Potenciometro=> Temp_Deseada

final=final/1023*5*100; //ADC A3

delay(2);

error=final-real; //error de temperatura

delay(2);

//Loop principal-----------------------------------------------------------------

void loop(){

tiempo = millis(); //tiempo trascurrido en milisegundos

//Manejo de LCD--------------------------------------------------------------------

lcd.clear(); //Limpia la pantalla LCD 16X2

lcd.setCursor(0, 0); //Posiciona el cursor en Columna 0 y Renglon 0

lcd.print("T-Desea: "); //Imprime en LCD

lcd.print(final); //Escribe el valor de la variable

lcd.setCursor(0, 1); //Posiciona el cursor en Columna 0 y Renglon 1

lcd.print("T-Ahora: "); // Imprime en LCD

lcd.print(real); //Escribe el valor de la variable

Serial.print(tiempo); //Manda valor de la variable tiempo al la PC

Serial.print("\t"); // Deja un espacio

Serial.print(real); //Manda valor de la variable real a la PC

Serial.println("\t"); //Deja un espacio

delay(200); //Retardo de 200milisegundos

//Vectores Difusos-------------------------------------------------------------------

for(i=0;i<5;i++){ //Iguala a 0 cada variable de los vectores.

DifusEr[i]=0;

~ 118 ~
for(i=0;i<3;i++){

DifusdER[i]=0;

//Lectura y conversión de entradas---------------------------------------------

Ta1=analogRead(A0);

delay(10);

Ta1=Ta1/1023*5*100;

delay(10);

Ta2=analogRead(A1);

delay(20);

Ta2=Ta2/1023*5*100;

delay(10);

Ta3=analogRead(A2);

delay(10);

Ta3=Ta3/1023*5*100;

final=analogRead(A3);

delay(10);

real=(Ta1+Ta2+Ta3)/3; //Promedio de temperatura

final=final/1023*5*100; //Conversión ADC de la temperatura deseada

delay(10);

errorAnt=error;

error=final-real;

de=errorAnt-error; //Calculo de Derivada del error

//DIFUSIÓN---------------------------------------------------------------------------------------

//Difusión Derivada Error---------------------------------------------------------------------

~ 119 ~
if (de<-0.6){ //Función LAMDA NEG

DifusdER[0]=1;

else if((de>=-0.6)&&(de<0)){ //Función TRIANGULAR CERO

DifusdER[0]=(de-dErTem[1])/(dErTem[0]-dErTem[1]);

DifusdER[1]=1-DifusdER[0]; //Complemento conjunto difuso

else if((de>=0)&&(de<0.6)){ //Función TRIANGULAR CERO

DifusdER[1]=(de-dErTem[2])/(dErTem[1]-dErTem[2]);

DifusdER[2]=1-DifusdER[1]; //Complemento conjunto difuso

else if(de>=0.6){ //Función GAMMA POS

DifusdER[2]=1;

//Difusión Error de Temperatura--------------------------------------------------------

if(error<0.5){ //Función LAMDA MBajo

DifusEr[0]=1;

else if((error>=0.5)&&(error<10)){ //Funciones LAMDA MBajo Y TRIANGULAR Bajo

DifusEr[0]=(ErTem[1]-error)/(ErTem[1]-ErTem[0]); //LAMDA MBajo

DifusEr[1]=1-DifusEr[0]; //Complemento TRIANGULAR Bajo

else if((error>=10)&&(error<30)){ //Funciones TRIANGULAR Bajo y TRIANGULAR Medio

DifusEr[1]=(ErTem[2]-error)/(ErTem[2]-ErTem[1]); //TRIANGULAR Bajo

DifusEr[2]=1-DifusEr[1]; //Complemento TRIANGULAR Medio

else if((error>=30)&&(error<40)){ //Funciones TRIANGULAR Medio y TRIANGULAR Grande

~ 120 ~
DifusEr[2]=(ErTem[3]-error)/(ErTem[3]-ErTem[2]); //TRIANGUALR Medio

DifusEr[3]=1-DifusEr[2]; //Complemento TRIANGULAR Grande

else if((error>=40)&&(error<50)){ //Funciones TRIANGULAR Grande y TRIANGULAR MGrande

DifusEr[3]=(ErTem[4]-error)/(ErTem[4]-ErTem[3]); //TRIANGULAR Grande

DifusEr[4]=1-DifusEr[3]; //Complemento GAMMA MGrande

else if(error>=50){ //Función Gamma MGRANDE

DifusEr[4]=1;

//DESDIFUSIÓN------------------------------------------------------------

//Reglas Difusas y Operación de mínimos---------------------------

n=0; //Numero de regla difusa

for(i=0;i<3;i++){ //Contador dError

for(j=0;j<5;j++){ //Contador ErroDifuso

ReglaDif[n]=min( DifusEr[j],DifusdER[i]);

n=n+1;

}
//Forma de las reglas Difusas

//ReglaDif[0]=min(DifusEr[0], DifusdER[0])

//ReglaDif[1]=min(DifusEr[1], DifusdER[0])

//ReglaDif[2]=min(DifusEr[2], DifusdER[0])

//ReglaDif[3]=min(DifusEr[3], DifusdER[0])

//ReglaDif[4]=min(DifusEr[4], DifusdER[0])

//...

//ReglaDif[14]=min(DifusEr[4], DifusdER[2])

//Operación maximos-----------------------------------------------------------------------------------

~ 121 ~
Potencia[0]= ReglaDif[5]; //Potencia[0]=>Mìnima_PWM

Potencia[1]=max(ReglaDif[11],ReglaDif[0]); //Potencia[1]=>Bajo1_PWM

Potencia[2]= ReglaDif[6]; //Potencia[2]=>Bajo2_PWM

Potencia[3]= ReglaDif[1]; //Potencia[3]=>Media_PWM

Potencia[4]=max(ReglaDif[7],ReglaDif[12]); //Potencia[4]=>Alto1_PWM

Potencia[5]=max(max (max(ReglaDif[2],ReglaDif[8]),ReglaDif[13]), ReglaDif[14]);


//Potencia[5]=>Alto2_PWM

Potencia[6]=max(max(ReglaDif[3],ReglaDif[4]),ReglaDif[9]); //Potencia[6]=>Máxima_PWM

//Singleton, método COM------------------------------------------------------------

X=0, Y=0, Z=0; //Iguala a 0 las variables X, Y y Z.

for(i=0;i<5;i++){

X=Potencia[i]*PotPWM[i]+X;

Y=Potencia[i]+Y;

Z=X/Y; //Salida de Z es en porcentaje

PW=(Z/100)*255; //acondicionamiento porcentaje de PWM. 100%PWM=255

//Activación de MOSFET-------------------------------------------------------------------

analogWrite(06,PW); //Escribe al puerto 06 el ciclo de trabajo del PWM

delay(1);

~ 122 ~
11. Programa para MSP430G2553
//---------------------------------------Control de Temperatura-----------------------------------------

LCD pin Conectado a


------------------------------------------
01 - GND GND
02 - VCC +5V
03 - Contrast Pot y GND
04 - RS Pin8 (P2.3)
05 - R/W GND
06 - EN Pin9 (P2.4)
07 - DB0 GND
08 - DB1 GND
09 - DB2 GND
10 - DB3 GND
11 - DB4 Pin10 (P2.5)
12 - DB5 Pin11 (P1.6)
13 - DB6 Pin12 (P1.7)
14 - DB7 Pin13 (P2.7)
15 - BL+ +5V y Pot para controlar intensidad luminosa
16 - BL- GND
===================================
Pin X MSP430G2553
Pin2 1.0 Sensor1
Pin5 1.3 Sensor2
Pin6 1.4 Sensor3
Pin7 1.5 TempObjetivo
Pin10 2.2 PWM
Pin11 2.3 LCD 2.3
Pin12 2.4 LCD 2.4
Pin13 2.5 LCD 2.5
Pin14 1.6 LCD 1.6
Pin15 1.7 LCD 1.7
Pin18 2.7 LCD 2.7 XIN */

#include <LiquidCrystal.h>

LiquidCrystal lcd(P2_3, P2_4, P2_5, P1_6, P1_7, P2_7);

float ErTem[]={0.5,10,30,40,50}, dErTem[]={-1.5, 0, 1.5};

float DifusEr[]={0,0,0,0,0}, DifusdER[]={0,0,0};

float ReglaDif[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

float Potencia[]={0,0,0,0,0,0,0};

float PotPWM[]={25,35,45,55,65,80,95};

float error,errorAnt,de,real,Ta1,Ta2,Ta3,final,X,Y,Z,PW; //(Ta1, Ta2 y Ta3 son sensores)


real:Promedio 3sens

int i=0,j=0,n=0; //variables de contadores

~ 123 ~
//Loop de configuración ------------------------------------------------------------------------------------

void setup(){

Serial.begin(9600);

lcd.begin(16, 2);

pinMode(10,OUTPUT); //PWM pin 2.6 A1 y A2 RX TX UART

pinMode(A0,INPUT); //Sensor1

pinMode(A3,INPUT); //Sensor2 se cambia a puerto A3 para dejar libre a A1=RX

pinMode(A4,INPUT); //Sensor3 se cambia a puerto A4 para dejar libre a A2=TX

pinMode(A5,INPUT); //SetPoint Potenciometro

delay(2);

Ta1=analogRead(A0);

delay(2);

Ta1=Ta1/1023*3.6*100; //Se referencia a 3.6V que es con lo que se alimentan los sensores

delay(2);

Ta2=analogRead(A3);

delay(2);

Ta2=Ta2/1023*3.6*100;

delay(2);

Ta3=analogRead(A4);

delay(2);

Ta3=Ta3/1023*3.6*100;

final=analogRead(A5);

real=(Ta1+Ta2+Ta3)/3; //Promedio

final=((final*3.6)/1023)*100;

delay(2);

error=final-real;

~ 124 ~
delay(2);

//Loop Principal------------------------------------------------------------------------

void loop(){

//Manejo de LCD--------------------------------------------------------------------

lcd.clear();

lcd.setCursor(0, 0);

lcd.print(" T-Desea: ");

lcd.print(final);

lcd.setCursor(0, 1);

lcd.print(" T-Ahora: ");

lcd.print(real);

Serial.println(real); //Manda dato a PC

delay(200);

//vectores difusos -------------------------------------------------------------------

for(i=0;i<5;i++){

DifusEr[i]=0;

for(i=0;i<3;i++){

DifusdER[i]=0;

//Lectura y conversión de entradas--------------------------------------------

Ta1=analogRead(A0);

delay(10);

Ta1=Ta1/1023*3.6*100;

delay(10);

Ta2=analogRead(A3);

~ 125 ~
delay(10);

Ta2=Ta2/1023*3.6*100;

delay(10);

Ta3=analogRead(A4);

delay(10);

Ta3=Ta3/1023*3.6*100;

final=analogRead(A5);

delay(10);

real=(Ta1+Ta2+Ta3)/3; //Promedio

final=((final*3.6)/1023)*100;

delay(20);

errorAnt=error;

error=final-real;

de=errorAnt-error;

//DIFUSIÓN--------------------------------------------------------------------------------------------------
-

//Difusión Derivada de Error --------------------------------------------------------------

if (de<-1.5){

DifusdER[0]=1;

else if((de>=-1.5)&&(de<0)){

DifusdER[0]=(de-dErTem[1])/( dErTem[0]- dErTem[1]);

DifusdER[1]=1- DifusdER[0];

else if((de>=0)&&(de<1.5)){

DifusdER[1]=(de-dErTem[2])/( dErTem[1]- dErTem[2]);

DifusdER[2]=1- DifusdER[1];
~ 126 ~
}

else if(de>=1.5){

DifusdER[2]=1;

//Difusión Error temp ------------ ------------------------------------------------------

if (error<=0){

else if(error<0.5){

DifusEr[0]=1;

else if((error>=0.5)&&(error<10)){

DifusEr[0]=(error-ErTem [1])/( ErTem [0]- ErTem [1]);

DifusEr[1]=1-DifusEr[0];

else if((error>=10)&&(error<30)){

DifusEr[1]=(error-ErTem [2])/( ErTem [1]- ErTem [2]);

DifusEr[2]=1-DifusEr[1];

else if((error>=30)&&(error<40)){

DifusEr[2]=(error-ErTem [3])/( ErTem [2]- ErTem [3]);

DifusEr[3]=1-DifusEr[2];

else if((error>=40)&&(error<50)){

salida[3]=(error-ErTem [4])/( ErTem [3]- ErTem [4]);

salida[4]=1-DifusEr[3];

else if(error>=50){

~ 127 ~
DifusEr[4]=1; }

//DESDIFUSIÓN----------------------------------------------------------------------------------

// operación mínimos--------------------------------------------------------------------------

n=0;

for(i=0;i<3;i++){

for(j=0;j<5;j++){

ReglaDif[n]=min(salida[j],salida2[i]);

n=n+1; } }

// operación maximos----------------------------------------------------------------------

Potencia[0]= ReglaDif [5]; //MínimoPWM

Potencia[1]=max(ReglaDif [11], ReglaDif [0]); //Bajo1PWM

Potencia[2]= ReglaDif [6]; //Bajo2PWM

Potencia[3]=ReglaDif [1]; //MedioPWM

Potencia[4]=max(ReglaDif[7], ReglaDif [12]); //Alto1PWM

Potencia[5]=max(max(max(ReglaDif [2], ReglaDif [8]), ReglaDif [13]),ReglaDif[14]);


//Alto2PWM

Potencia[6]=max(max(ReglaDif [3], ReglaDif [4]), ReglaDif [9]); //MáximoPWM


//Desdifusión método COM------------------------------------------------------------------------------------

X=0 , Y=0, Z=0;

for(i=0;i<5;i++){

X=mu[i]* PotPWM[i]+X;

Y=mu[i]+Y; }

Z=X/Y;

PW=(Z/100)*255; //acondicionamiento

//Disparo del MOSFET-------------------------------------------------------------------------------------

analogWrite(10,PW); //Escribe ciclo de trabajo a puerto 10

delay(50);

~ 128 ~
Índice de tablas
Tabla 1.1 Clasificación de láser por longitud de onda 37
Tabla 1.2 Clasificación de láser por su potencia 37
Tabla 1.3 Láseres más comunes 38
Tabla 1.4 Reglas difusas 60
Tabla 1.5 Reglas difusas reordenadas 71
Tabla 1.6 Primer memoria difusa 76
Tabla 1.7 Segunda memoria difusa 79
Tabla 1.8 Datos espectrales Rubidio 85 97
Tabla 1.9 Datos espectrales Rubidio 87 97

~ 129 ~

También podría gustarte