Diseño y realización de una nariz electrónica para la discriminación de aceites

Diseño y realización de una nariz electrónica para la discriminación de aceites AUTOR: Sergi Rojo Bosch. DIRECTOR: Jesús Brezmes Lecha. FECHA: Junio

2 downloads 41 Views 2MB Size

Recommend Stories


HIGIENE DE NARIZ Y OIDOS
HIGIENE DE NARIZ Y OIDOS Versión:2 Entrada en vigor:1-12-2010 Página 1 de 5 CÓDIGO: PD-GEN-46 HIGIENE DE NARIZ Y OIDOS 1.- OBJETIVO Proporcionar l

Aceites para la vida diaria
Aceites para la vida diaria  Aceites para la vida diaria Elevadores, protectores, calmantes y regeneradores, los aceites esenciales son un regalo

La oferta en aceites para motor
Mercado aceites p MODA Muchos son los proveedores de aceites para motor a pesar de que las ventas llevan bajando varios años. Las gamas propuestas su

Story Transcript

Diseño y realización de una nariz electrónica para la discriminación de aceites

AUTOR: Sergi Rojo Bosch. DIRECTOR: Jesús Brezmes Lecha. FECHA: Junio / 2001.

Agradecimientos: A Jesús Brezmes Llecha, director del proyecto, que facilitó mi tarea de investigación previa, siempre estuvo dispuesto a resolver mis dudas y prestó atención a mis ideas. Sus explicaciones y consejos me ayudaron a comprender el funcionamiento y comportamiento de las Redes Neuronales Artificiales. A Jordi Maré Viles, Jaume Pros Rodríguez, y Carmelo Fuentes Gandú por ayudarme en el desarrollo del equipo experimental del proyecto. A Jorge Orts Latorre, Guillermo Sáiz Laudó y a Jordi Cugat Pérez por su ayuda en la consecución de mi proyecto. A mi familia, por apoyarme durante todos estos años en mis peores y mejores momentos. A la familia López Alba y en especial a Sandra a quien me gustaría dedicar este proyecto por los ánimos recibidos en el transcurso de este trabajo.

1.- INTRODUCCIÓN

3

1.1 ANTECEDENTES 1.2 OBJETIVOS

4 4

2.- DISEÑO DE LA NARIZ ELECTRÓNICA

5

2.1 DESCRIPCIÓN GENERAL

5

2.2 DESCRIPCIÓN DEL HEADSPACE AUTOSAMPLER 2.2.1 SELECCIÓN DEL PROCEDIMIENTO DE MUESTREO 2.2.2 SECUENCIA DE FUNCIONAMIENTO 2.2.2.1 Estado de reposo ( Standby condition ) 2.2.2.2 Presurización del vial ( Vial Pressurization ) 2.2.2.3 Llenado del loop ( Filling the Sample Loop ) 2.2.2.4 Equilibrado del loop ( Loop Equilibration ) 2.2.2.5 Inyección de la muestra de gas ( Injecting the Sample ) 2.2.2.6 Final de ciclo y recuperación del vial ( End of Cycle and Vial Recovery )

6 6 7 7 8 8 9 9 9

2.3 MATRICES DE SENSORES 2.3.1 SENSORES DE ÓXIDO DE ESTAÑO 2.3.2 SENSORES FÍGARO 2.3.2.1 Tipos y aplicaciones 2.3.2.2 Características de los sensores 2.3.2.3 Instrucciones generales de los sensores TGS 2.3.2.4 Lista de los sensores empleados 2.3.2.5 Placa diseñada para los sensores Taguchi 2.3.3 SENSORES FIS-SB 2.3.3.1 Tipos y Aplicaciones 2.3.3.2 Características de los sensores 2.3.3.3 Lista de los sensores empleados 2.3.3.4 Placa diseñada para los sensores Fis-SB 2.3.4 SENSORES FIS-SP 2.3.4.1 Tipos y Aplicaciones 2.3.4.2 Características de los sensores 2.3.4.3 Lista de los sensores empleados 2.3.4.4 Placa diseñada para los sensores Fis-SP

10 10 11 11 15 16 16 17 20 20 21 23 23 25 25 26 28 28

2.4 SOFTWARE 2.4.1 SINCRONIZACIÓN Y ADQUISICIÓN DE DATOS 2.4.1.1 Descripción general 2.4.1.2 Rutinas principales 2.4.1.3 Ejemplo de creación de una medida 2.4.2 PRE Y POSTPROCESADO DE LOS DATOS 2.4.2.1 Introducción 2.4.2.2 Ficheros MATLAB para el preprocesado 2.4.2.3 Ficheros MATLAB para el postprocesado

29 29 29 30 34 36 36 36 38

1

3.- MEDIDAS CON ACEITES

47

3.1 INTRODUCCIÓN

47

3.2 CONJUNTO DE MEDIDAS 3.2.1 Medidas de prueba 3.2.2 Diseño del conjunto experimental definitivo de medidas 3.2.3 Calendario de medidas 3.2.4 Medidas con nariz electrónica 3.2.4.1 Introducción 3.2.4.2 Procedimiento de medida

47 47 49 49 52 52 53

3.3 RESULTADOS 3.3.1 Introducción 3.3.2 Resultados con análisis de componentes principales (PCA) 3.3.2.1 Introducción 3.3.2.2 PCA para todo el conjunto experimental de datos 3.3.2.3 Cálculo de la resolución de las agrupaciones de los PCA 3.3.3 Resultados con la red neuronal FUZZY ART 3.3.3.1 Introducción 3.3.3.2 Fuzzy ART del conjunto experimental 3.3.4 Resultados con la red neuronal FUZZY ARTMAP 3.3.4.1 Introducción 3.3.4.2 Fuzzy ARTMAP del conjunto experimental 3.3.5 Selección de las mejores variables y mejores sensores 3.3.5.1 Introducción 3.3.5.2 Resultados Fuzzy ARTMAP 3.3.5.1 Resultados Fuzzy ART 3.3.5.2 Resultados Fuzzy PCA

54 54 55 55 55 62 63 63 64 66 66 66 68 68 70 72 72

4.- CONCLUSIONES

74

5.- ANEXOS

76

ANEXO A: Listado de los programas de adquisición de las camaras sensoras

76

ANEXO B: Listado de programas Matlab

86

ANEXO C: Esquemas de las placas sensoras y sus correspondientes PCBs

109

6.- BIBLIOGRAFÍA

119

2

Introducción

1.- INTRODUCCIÓN Actualmente, el control de calidad de cualquier producto es imprescindible para que toda empresa tenga cierto prestigio dentro del mercado industrial. Esta necesidad viene dada por el aumento de la competencia originando una demanda de mejor calidad en el producto a un precio más ajustado. Para algunas empresas esto requiere una reducción de los costes de producción, lo que puede tender a utilizar materias primas de una calidad inferior a la que se exige y por consiguiente, intentando vender un producto de calidad superior, siendo realmente de calidad inferior. Dentro del área de los aceites de consumo, es fácil imaginarse que se puedan hacer mezclas entre aceites de diferentes calidades para intentar venderlos en grandes cantidades. Este tipo de fraude no sólo tiene efectos económicos, sinó también efectos de salud para los consumidores; por este motivo, empresas y organizaciones establecen unos controles de calidad para evitar estos problemas. De los métodos existentes en lo que se refiere al análisis de los aromas de los aceites destaca la cromatografía de gases. Este método es eficaz en cuanto a resultados pero presenta los siguientes inconvenientes: Ø Ø Ø Ø

Elevado coste de adquisición y mantenimiento Necesidad de personal experimentado Lentitud de los resultados obtenidos Difícil utilización en líneas de producción puesto que se requieren laboratorios

En este proyecto se pretende construir un prototipo de nariz electrónica, constituido por una matriz de sensores químicos de gases de óxido de estaño comerciales y técnicas de reconocimiento de patrones, capaz de discriminar diferentes tipos de aceites. El equipo analizará el aroma desprendido por los aceites y determinará las "huellas aromáticas" características de cada uno de ellos. Se han analizado un total de 10 tipos de aceites, mostrados en la siguiente tabla: Referencia 1 2 3 4 5 6 7 8 9 10

Descripción Variedad arbequina, viejo Variedad empeltre, viejo, de prensa Variedad picual campaña 2000/2001, hecho en Cataluña Variedad arbequina, viejo Variedad arroniz (Navarra), de prensa, defectuoso Variedad arroniz (Navarra), sin defecto Variedad empeltre (navarra) Variedad arbequina, campaña 2000/2001 D.O SIURANA Aceite con defecto de avinado y rancio Aceite con defecto de rancio

Tabla 1.1.-Relación de muestras de aceite a analizar por la nariz electrónica.

La utilidad de este estudio radica en la determinación de la calidad de un aceite.

3

Introducción

1.1 ANTECEDENTES El proyecto que se presenta en este documento queda enmarcado dentro de una de las líneas de investigación del grupo de investigación en sensores de Gases y Nariz Electrónica del Departamento de Ingeniería Electrónica, Eléctrica y Automática (DEEEA) de la Universitat Rovira i Virgili (URV), dirigidos por el Dr. Xavier Correig. Por tanto, ya existen en el departamento antecedentes de utilización de narices electrónicas para diversas aplicaciones, tales como la detección de fugas peligrosas, determinación del estado de maduración de frutas, e incluso aceites [1]. En nuestro caso, nos centraremos en medir los diez tipos de aceites mencionados anteriormente (tabla 1.1) con una nariz electrónica, determinando la posibilidad de discriminar las diferentes variedades con un sistema de olfato electrónico.

1.2 OBJETIVOS Los principales objetivos del proyecto son los siguientes: 1. Diseño y construcción de un prototipo de nariz electrónica para discriminar aceites. El prototipo constará de un sistema de acondicionamiento y captación de volátiles comercial (un Headspace Autosampler) y una cámara de medida que contendrá la agrupación de sensores de óxidos metálicos. La señal de dichos sensores será acondicionada y procesada mediante técnicas de análisis de componentes principales (PCA) y redes neuronales artificiales (ANN) capaces de identificar la muestra medida. Dentro de este objetivo un tema importante será analizar la deriva mediante calibraciones de los sensores. Si realmente se confirma la identificación de huellas olfativas características de cada tipo de aceite, las posibilidades de transferencia del equipo al sector comercial son elevadas ya que las ventajas que presenta la utilización de una nariz electrónica son entre otras, el bajo coste, sencillez de manejo y la posibilidad de valorar el aroma de un conjunto de volátiles en tiempo real. 2. Determinación de los distintos tipos de aceites a partir del análisis de los volátiles emitidos. El segundo objetivo consiste en determinar si a partir del análisis de volátiles es posible establecer una discriminación de los aceites y por lo tanto constituyen un indicador fiable para su medida. Para ello, se utilizará la respuesta de agrupaciones de sensores químicos de gases basados en óxidos metálicos. Los resultados que se esperan consisten en obtener una “huella olfativa” característica para cada tipo de aceite que permitan su diferenciación. En definitiva trataremos de diseñar, y posteriormente evaluar, la eficacia de un sistema de olfato electrónico para la discriminación de aceites, con la finalidad de demostrar la aplicabilidad comercial de la nariz electrónica diseñada.

4

Diseño de la nariz electrónica

2.- DISEÑO DE LA NARIZ ELECTRÓNICA 2.1 DESCRIPCIÓN GENERAL Una nariz electrónica es un equipo de medida formado por una serie de módulos que trabajan de forma conjunta con el objetivo de cuantificar y/o clasificar muestras gaseosas o aromas. En esta parte del proyecto se hace una descripción de los instrumentos utilizados (Headspace Autosampler), del equipo diseñado (matrices de sensores) y de las técnicas de análisis utilizadas (PCA, ANN) para llevar a cabo nuestro objetivo. En el siguiente dibujo se observa el conjunto del equipo de medida empleado.

Figura 2.1.- Vista general del equipo experimental.

.

Se observa que se han utilizado dos ordenadores, uno para cada cámara. En realidad sólo haría falta uno puesto que cada cámara dispone de seis sensores, y una tarjeta de adquisición de datos PCL-812 dispone de 16 canales, y por tanto es capaz de adquirir los datos de las dos cámaras, pero por motivos de urgencia y simplicidad las medidas se han realizado en dos PC. La sincronización del Headspace con los dos ordenadores, ha permitido que se realicen un gran número de medidas sin tener que estar continuamente controlando el sistema en el laboratorio.

5

Diseño de la nariz electrónica

A continuación se describirán con detalle los elementos más destacados del equipo de medida: el Headspace Autosampler, las cámaras de sensores y una breve descripción de la tarjeta de adquisición de datos PCL-812.

2.2 DESCRIPCIÓN DEL HEADSPACE AUTOSAMPLER HP 7694 El Headspace Autosampler es un instrumento que, básicamente, se encarga de obtener una muestra gaseosa procedente de un vial para inyectarla hacia un dispositivo analizador de gases, ya sea un cromatógrafo de gases, espectrómetro de masas, o en nuestro caso, cámaras de sensores químicos semiconductores.

Figura 2.2.- Headspace Autosampler modelo HP 7694.

2.2.1 SELECCIÓN DEL PROCEDIMIENTO DE MUESTREO El Headspace dispone de unos parámetros (temperatura, tiempos de calentamiento, tiempos de presurización, número de viales a analizar, etc.) que se deben ajustar antes de empezar las medidas. A continuación se muestra los principales parámetros utilizados en este proyecto, dejando los otros en su valor por defecto:

Control de la temperatura (zone temps) • • •

Temperatura del horno (oven) Temperatura del loop (tubo en espiral donde se almacena temporalmente la muestra de gas antes de ser inyectada) Temperatura de la manguera (tr. line)

Para las medidas de este proyecto, se han utilizado las siguientes temperaturas:

6

Diseño de la nariz electrónica

• • •

4 ciclos de medidas a temperaturas de 70, 75, 80 ºC (temperaturas de oven, loop y tr line respectivamente) 3 ciclos medidas a temperaturas de 80, 85, 90 ºC 3 ciclos medidas a temperaturas de 90, 95, 100 ºC

Control de los tiempos y valores seleccionados en el proyecto (event times) • • • • • •

Tiempo de ciclo de cada medida ( GC cycle time ): 90 minutos Tiempo de equilibrado del vial ( vial eq. time ): 5 minutos Tiempo de presurización del vial ( pressure time ): 1 minuto Tiempo de llenado del loop ( loop fill time ): 1 minuto Tiempo de equilibrado del loop ( loop eq. time ): 0.05 minutos Tiempo de inyección ( inject time ): 10 minutos

Selección del primer y último vial (vial parameters) En el proyecto cada ciclo de medidas consta de 10 viales para los diferentes tipos de aceites, y un vial con 0.5 µl de etanol para la calibración. Éste siempre será el último vial que se analizará en cada ciclo de medidas.

2.2.2 SECUENCIA DE FUNCIONAMIENTO 2.2.2.1 Estado de reposo ( Standby Condition ) Durante el estado de reposo, la válvula de presurización S1 se mantiene abierta y el flujo de aire del gas auxiliar (aire seco) circula a través del loop y de la aguja de inyección. El flujo del gas portador circula hacia el exterior de la manguera (GC) donde se conecta el dispositivo analizador de gases. Véase la siguiente figura:

Figura 2.3.- Estado de reposo. Valvula S1 abierta.

Cuando el Headspace entra en funcionamiento, coge el primer vial, lo introduce en el horno y empiezan los tiempos de equilibrado.

7

Diseño de la nariz electrónica

2.2.2.2 Presurización del vial ( Vial Pressurization ) Finalizado el tiempo de equilibrado del vial, éste es desplazado hacia la aguja que perforará el septum del vial. Durante la presurización la válvula S2 se mantiene cerrada. El flujo de aire auxiliar que circula por el loop y por la aguja, entrará en el vial permitiendo la presurización de éste. Una vez finalizado el tiempo de presurización, la válvula S1 se cierra.

Figura 2.4.- Presurización del vial. Valvula S1 cerrada

2.2.2.3 Llenado del loop ( Filling the Sample Loop ) La válvula de ventilación S2 se abre y la muestra de gas llena el loop; en este momento se expulsa el aire a la presión atmosférica hacia la salida de ventilación. Un pequeño tiempo de llenado del loop permite que salga la presión del vial hacia el loop y el resto del tiempo de llenado permite el equilibrado de éste a la presión atmosférica.

Figura 2.5.- Llenado del loop. S1 cerrada y S2 abierta

8

Diseño de la nariz electrónica

2.2.2.4 Equilibrado del loop ( Loop Equilibration ) Las válvulas de ventilación (S2) y presurización (S1) son cerradas cuando se termina el tiempo de equilibrado del loop (loop eq time)

2.2.2.5 Inyección de la muestra de gas ( Injecting the Sample ) La válvula de seis posiciones, junto con el gas portador, permite que la muestra de gas almacenada en el loop fluya a través de la manguera hacia el exterior donde se encuentra el dispositivo analizador de gases.

Figura 2.6.- Inyección. S1 y S2 cerradas

2.2.2.6 Final de ciclo y recuperación del vial (End of Cycle and Vial Recovery) La aguja se separa del vial, y éste vuelve a la bandeja de viales (vial trail). Las válvulas de presurización S1 y ventilación S2 se abren y el Headspace vuelve a al estado de reposo esperando a terminar el tiempo de ciclo en caso de tener otro vial para analizar.

Figura 2.7.- Fin de ciclo. S1 y S2 abiertas

9

Diseño de la nariz electrónica

2.3 MATRICES DE SENSORES El compromiso que tenemos a la hora de diseñar una cámara de sensores, es su volumen en relación con el número de sensores que tendrá dicha cámara. Interesa que el volumen sea lo más pequeño posible con el fin de aumentar la sensibilidad de los sensores. Las tres cámaras diseñadas tienen unas dimensiones interiores de 63 mm x 53 mm x 11 mm, y teniendo en cuenta el volumen que ocupan los 6 sensores, disponemos de unos 30 ml aproximadamente de volumen de gas en su interior. También hay que tener en cuenta la presión de salida de la botella de aire seco, que está regulada a unos 5 bar, lo que supone un flujo de aire de salida del Headspace de unos 50 ml/minuto. Eso quiere decir que las cámaras renuevan su aire cada 1.6 minutos. Es importante tenerlo en cuenta en los parámetros que se asignen al Headspace (debe haber un intervalo de tiempo suficiente entre medidas para dejar que los sensores se recuperen y se hayan renovado el aire de las cámaras).

Figura 2.8.- Detalle de las cámaras de sensores utilizadas

Cada una de estas cámaras se monta sobre una placa de circuito impreso. En esta placa se sitúa la matriz de 6 sensores, y la circuitería necesaria para que funcionen, que en este caso sólo necesitan la resistencia de carga RL de 4k7Ω (circuito básico de medida) puesto que no hace falta un circuito acondicionador para este tipo de sensores (Taguchi y Fis-SP) y por tanto, la señal que se obtiene de ellos es la que va a adquirir la tarjeta PCL-812. Se han construido un total de tres placas de circuito impreso con cámaras para sensores Taguchi, Fis-SP, y Fis-SB. La placa de estos últimos sensores no se ha utilizado para las medidas definitivas puesto que este tipo de sensores presentaba una menor sensibilidad que los sensores Taguchi y Fis-SP.

2.3.1 SENSORES DE ÓXIDO DE ESTAÑO El óxido de estaño contiene vacantes de oxígeno en su estructura cristalina. Cuando este material es calentado a elevadas temperaturas (alrededor de unos 400 ºC), los electrones 10

Diseño de la nariz electrónica

libres fluyen fácilmente a través de la banda de conducción de las partículas de óxido de estaño. En aire puro el oxígeno es absorbido por las partículas de óxido de estaño de la superficie y atrapa electrones libres debido a su alta electroafinidad, formando una barrera de potencial en la banda de conducción. Esta barrera de potencial restringe el flujo de electrones causando un incremento en la resistencia eléctrica. Cuando el sensor es expuesto a una atmósfera que contiene gases ( reductores / combustibles, CO, etc.), el óxido de estaño de la superficie absorbe moléculas del gas produciéndose una reacción de oxidación entre el gas y el oxígeno absorbido, lo que disminuye la barrera de potencial y en consecuencia reduce la resistencia eléctrica. La relación entre la resistencia del sensor y la concentración del gas desoxidado puede ser expresada mediante la siguiente ecuación experimental, siendo válida para un cierto rango de concentración de un gas: R = A ⋅ [C ] −α

(1)

Donde: R, resistencia eléctrica del sensor, A y α son constantes y [C], concentración del gas 2.3.2 SENSORES FÍGARO 2.3.2.1 Tipos y aplicaciones La casa Fígaro, actualmente dispone de tres tipos de sensores elementales y seis configuraciones diferentes. Los tres tipos de sensores, denominados Taguchi, podemos clasificarlos en 4 series: •

Serie 1: Este tipo de sensores tiene dos electrodos bobinados, hechos de una aleación de iridio/paladio, que están encapsulados dentro de un elemento sensor sinterizado, donde uno o ambos de estos electrodos son usados como heater.

Figura 2.9.- Serie 1



Serie 5: Esta serie tiene elementos miniaturizados. Dos electrodos y una capa delgada de dióxido de estaño, están formados sobre un heater insulado en un cable por capa.

Figura 2.10.- Serie 5

11

Diseño de la nariz electrónica



Serie 8: Estos sensores tienen un heater, dentro de un tubo cerámico de alúmina y el material semiconductor está montado sobre un tubo con dos electrodos grabados en oro.

Figura 2.11.- Serie 8



Serie 2000: Estos sensores se caracterizan por tener una capa gruesa de óxido de metal semiconductor como elemento sensor. Tanto el heater como el elemento sensor están situados sobre un mismo substrato plano. Existen cuatro modelos con diferentes estructuras: Ø Tipo S1: Su estructura es muy simple, dispone de una sola cara en la que se encuentran el heater y el elemento sensor.

Figura 2.12.- TGS Serie 2000 tipo S1

Ø Tipo S2: Dispone de dos elementos sensores, que están en una sola cara, lo que permite tener dos salidas aumentando así el grado de información.

Figura 2.13.- TGS Serie 2000 tipo S2

12

Diseño de la nariz electrónica

Ø Tipo M1: Su estructura es un poco más compleja, dispone de una sola cara en la que se encuentra de forma miniaturizada y multicapa el heater y el elemento sensor.

Figura 2.14.- TGS Serie 2000 tipo M1

Ø Tipo D1 : Se distingue del resto por tener dos caras. En una se encuentra el elemento sensor y en la otra el heater.

Figura 2.15.- TGS Serie 2000 tipo D1

Los sensores químicos que se han empleado en este proyecto, corresponden a la serie 8, por lo que a continuación veremos que configuración, constituye dicha serie:

Dicha configuración corresponde a un tipo estándar, con una base de resina y encapsulado. Algunos de los modelos utilizados con este tipo de encapsulado son TGS842, TGS822, y TGS813

Figura 2.16.- Presentación comercial de la serie 8.

13

Diseño de la nariz electrónica

Existe otra configuración, que se caracteriza por tener una resistencia de heater, una base cerámica sobre la que descansa el elemento sensor y además está recubierto por una especie de malla metálica, empleada como medio de protección. Los modelos TGS825, TGS831 y TGS832 tienen este tipo de encapsulado . Figura 2.17.- Presentación comercial de la serie 8.

La larga vida útil de estos sensores químicos de óxido de estaño, su elevado grado de sensibilidad, rapidez de su respuesta, una excelente durabilidad y su bajo coste, son las características que hacen que estos sensores tengan multitud de aplicaciones:

Categoría Gases combustibles - Metano - Propano - Hidrógeno Gases tóxicos - Monóxido de carbono - Amoniaco

Uso doméstico - Alarma de gases para casas, vehículos y barcas

Uso comercial e industrial - Sistemas de detección de gas para comercios, plantas industriales y petroquímicas - Detectores de gas portables - Detectores de CO - Sistemas de monitoraje de CO para casas, para parkings vehículos, barcas - Detectores de fugas de amoniaco para refrigeradores - Detectores de amoniaco para el - Otros sector primario - Detectores de gas portables Alcohol Etilómetros Etilómetros profesionales Vapores orgánicos Detectores de disolventes para fábricas, semiconductores, industrias CFCs Detectores CFCs para congeladores, (Clorofluorocarbonatos) aires acondicionados, procesos de limpiado para componentes eléctricos... Detectores de olores Detectores de olores Sistemas de medida de olores para la en congeladores industria alimentaria Otros - Oxígeno - Detectores de oxígeno - Hidrógeno - Detectores de oxígeno para el mantenimiento de transformadores, baterías, etc. Detectores de fuego - Alarmas de fuego - Sistemas de detección de fuego Tabla 2.1.- Campo de aplicaciones de los sensores químicos de óxido de estaño.

14

Diseño de la nariz electrónica

2.3.2.2 Características de los sensores •

Sensibilidad

La sensibilidad de los sensores de gas Figaro, está definida por la relación entre los cambios de concentración del gas y las variaciones de la resistencia del sensor, basada en una función logarítmica. Cada tipo de sensor tiene su propia sensibilidad característica, la cual le permite ser empleado para diferentes propósitos. . En el eje de ordenadas se representa el valor de las resistencias del sensor medida para varias concentraciones de gases, comparada con la resistencia del sensor a 300 ppm de etanol.

Figura 2.18.- Sensibilidad característica del TGS822



Efectos de la temperatura

La respuesta de estos sensores tiene una fuerte dependencia con la temperatura, tal y como se puede comprobar en la figura 2.19 donde se ve que su variación provoca un cambio notable en la resistencia del sensor. Podemos provocar un aumento de la temperatura si incrementamos la tensión de heater del sensor, por lo que es importante controlar esta variable.

Figura 2.19.- Influencia de la temperatura sobre la resistencia del sensor.



Dependencia con la humedad relativa

Las moléculas de agua absorbidas por la superficie del sensor le afectan disminuyendo su resistencia; esta es la razón por la que la sensibilidad del sensor depende del nivel de

15

Diseño de la nariz electrónica

humedad relativo en la atmósfera. Es decir, a medida que aumenta la humedad, el valor de la resistencia del sensor va disminuyendo. Cuando se quiere detectar un gas en presencia de un ambiente húmedo, al ser estos sensores sensibles a esta última variable, la detección del gas contaminante resulta más costosa. Por lo tanto debemos eliminar la dependencia con la humedad, para ello existen diversas técnicas: •

Mediante la medida de la humedad y realizar su compensación por software.



Ciclo térmico pulsado (actuando sobre la resistencia de heater)



A través de filtros mecánicos/químicos que eliminan la humedad.



Manteniendo la humedad constante.

2.3.2.3 Instrucciones generales de los sensores TGS A continuación presentamos una serie de recomendaciones, para hacer un buen uso de los sensores de óxido de estaño de Fígaro: 1) Se recomienda emplear los circuitos de medida mostrados en las hojas de especificaciones ofrecidas por el fabricante. 2) La humedad y temperatura afectan la repetitividad de los sensores. Si incluimos un termistor para compensar dicha dependencia, disminuiremos sus derivas, consiguiendo fijar el punto de trabajo del sensor. 3) Para calibrarlos debemos llevarlo a cabo bajo unas condiciones de temperatura y humedad controladas, y usando aire limpio y un gas puro. Se recomienda unos 20 º C ± 2 º C, 65 ± 5% R.H . 4) Los sensores TGS pueden ser empleados con polarización continua o alterna. Sin embargo la resistencia del sensor puede cambiar de valor cuando es polarizado inversamente. 5)

Los sensores antes de ser usados deben estar, como mínimo, durante una semana quemando (preheating time) sin ser expuestos a ningún contaminante, con la finalidad de que alcancen un valor de resistencia estable y eliminar cualquier impureza de su interior.

2.3.2.4 Lista de los sensores empleados A continuación mostramos una tabla donde recogemos la información más relevante (categoría, modelo, rango típico de detección y algunas características) de los sensores que se han empleado con este tipo de tecnología:

16

Diseño de la nariz electrónica

Sensor TGS 800 TGS 813 TGS 822 TGS 825 TGS 826 TGS 831 TGS 832 TGS 842 TGS 880 TGS 882

Aplicación

Detección

Control de calidad del Aire contaminado aire Detección de gas LP-Gas/Propano (gases combustibles en combustible deneral) Detección de vapores Alcohol, Tolueno, xileno de alcohol Detección de gas Sulfato de hidrógeno tóxico Detección de gas Amoníaco tóxico Detección de CFCs R-21-R-22 (HCFCs and HFCs) Detección de CFCs R-134a,R-22 (HCFCs and HFCs) Detección de gas Metano, Propano, Butano combustible Control de cocinado Gases volátiles y vapor de agua en la comida Control de cocinado Vapor de alcohol en la comida Tabla 2.2.- Información sobre los 10 sensores TGS empleados.

En un principio se disponía de 11 sensores diferentes, los 10 anteriores y el modelo TGS826. Las aplicaciones de este sensor son similares a las del modelo TGS824 y en pruebas iniciales que se realizaron (para la elección de los sensores más adecuados), resultó tener menos sensibilidad que el TGS824. Básicamente en la elección de los 10 sensores, se ha tenido que realizar medidas de prueba para ver que sensibilidad mostraban para un mismo tipo de aceite. 2.3.2.5 Placa diseñada para los sensores Taguchi El diseño de todas las placas que constituye la parte hard del equipo experimental se ha realizado mediante ORCAD. Todas las placas son de doble cara, han sido aisladas, en el laboratorio de electrónica, mediante luz hiperactínica y al vacío, a partir de clichés transparentes. Se ha escogido para elaborar la placa de C.I., un material plástico sintético, exactamente una resina sintética termoestable, como son las resinas fenólicas, familiarmente conocidas como baquelitas, gracias a sus condiciones de aislante eléctrico. El tipo de baquelita empleada es del tipo A (derivado del fenol-formaldehid), material que resulta ser un buen aislante, ligero (densidad aprox. 1.3 kg /dm 3 ), con una absorción de agua inferior al 0.5 % en 24h y una buena resistividad, características por las que se ha escogido dicho material. En los siguientes apartados se presentará las placas que contienen los sensores Taguchi y Fis-SP empleados. La cámara de medida 1, fue diseñada en un principio para sensores de tipo Fis-SP; como se verá más adelante, estos sensores presentan el mismo patillaje que los Taguchi, y por tanto se utilizó esta cámara para los dos tipos de sensores. 17

Diseño de la nariz electrónica

También se detallará el circuito de medida empleado para caracterizar las variaciones de sus resistencias ante la presencia de volátiles. Ø Matriz de sensores Taguchi Los sensores TGS están dispuestos de forma matricial en una placa situada en el interior de una cámara de medida. Tal distribución viene condicionada por el patillaje de estos sensores, ya que todos ellos tienen un pin-out equivalente entre los diferentes modelos. De ahí que, insertando un único conector en un extremo de la placa, podamos recoger todas estas señales, evitando un ruteado de pistas más laborioso. A continuación mostramos los detalles de las dos cámaras con sus respectivos sensores:

Figura 2.20.- Detalle de la placa correspondiente a la cámara nº 2 que contiene la mayoría de los sensores TGS empleados para este proyecto.

La cámara nº 1 recibe el flujo de gas directamente del Headspace Autosampler, mientras que la cámara nº 2 lo recibe a través de la cámara 1. En las pruebas iniciales que se realizaron se observó que un mismo modelo de sensor colocado en las dos cámaras, presentaba una menor sensibilidad en la cámara 2; por este motivo, se dicidió que los sensores con más sensibilidad se situarán en la cámara nº 2, y el resto en la cámara nº 1. A continuación mostramos un detalle de la cámara nº 1 con los sensores TGS Y FIS-SP

18

Diseño de la nariz electrónica

Figura 2.21.- Detalle de la placa correspondiente a la cámara nº 1 que contiene El resto de los sensores TGS y dos FIS-SP empleados para este proyecto.

Ø Circuito de medida de los sensores Taguchi Para poder medir las variaciones de la resistencia del sensor, debemos ayudarnos de un circuito de medida (facilitado por el fabricante), formado básicamente por una resistencia de carga y una tensión de control:

Muestra el número de pins correspondiente a la figura a. Los pines 1 & 3 y 4 & 6 están interconectados internamente. Figura 2.22.- Circuito de medida D.C. de los sensores TGS.

Obsérvese que el procedimiento de medida se basa en un circuito divisor de tensión. Del análisis del circuito se desprende la siguiente fórmula:

Rs =

Vc ⋅ R L − RL VRL

(2)

19

Diseño de la nariz electrónica

Donde: -

Vc: Tensión de control (10 V d.c.) Vh: Tensión de heater (5 V d.c.) RL : Resistencia de carga VRL : Tensión de salida (variable a medir con la tarjeta de adquisición de datos) Rs : Resistencia medida del sensor, la cual variará según los volátiles presentes en la cámara. Dicho valor será el que calcularemos mediante software, y lo monitorizaremos para que el usuario conozca en cada momento la evolución de la señal del sensor.

Teniendo en cuenta las limitaciones que impone el fabricante en cuanto a la potencia máxima nominal que pueden disipar dichos sensores (entiéndase por potencia la disipada en la resistencia del sensor) debemos dimensionar RL de forma que no supere los 15 mW: Si aplicamos el concepto de potencia en continua al circuito de la figura 2.22: PS =

(Vc −V RL )2 Rs

= I 2 ⋅ Rs =

Vc 2 ⋅ Rs (Rs + RL )2

< 15 mW

(3)

Contemplando dicha premisa se optó por un valor de RL = 4K 7

2.3.3 SENSORES FIS-SB En este proyecto, estos sensores sólo se han utilizado durante las pruebas iniciales. Para las medidas definitivas, se descartaron por la baja sensibilidad que presentaban para nuestra aplicación y por la pérdida de sensibilidad que esto supondría en caso de añadir una tercera cámara de medida conectada con la cámara nº 2. 2.3.3.1 Tipos y Aplicaciones Su tecnología de fabricación, ha facilitado la disminución del consumo de potencia del sensor, gracias a la integración de todo el conjunto que constituye el sensor (elemento sensor, encapsulado, patillaje, etc.). Los sensores FIS tienen 2 series de fabricación: los SB (con tecnología micro bola), y la serie SP (con una tecnología de fabricación similar a los TGS, cuyas características serán comentadas en el siguiente apartado, cuando comentemos los sensores que están ubicados en la cámara de medida número 2). La serie SB tiene un elemento sensor como el de la figura 2.23, el cual es un tipo de semiconductor mini bead, principalmente compuesto de dióxido de estaño (SnO2 ) . Figura 2.23.- Elemento sensor

20

Diseño de la nariz electrónica

Está formado por una bobina calefactora y un electrodo insertados bajo el elemento sensor. Los sensores Fis-SB que se han empleado en las medidas de prueba presentan un encapsulado metálico, que protege al elemento sensor. Dicho encapsulado está compuesto por dos mallas metálicas de acero inoxidable que descansan sobre una base de plástico.

Figura 2.24.- Presentación comercial de los Fis serie SB

A continuación se presenta una tabla en la que se recogen de forma detallada cuales son los gases que detectan los sensores Fis-SB, el modelo y su consumo de potencia.

Aplicación Mezcla de dos gases Gases inflamables

Disolventes orgánicos Gases refrigerantes

Gases Tóxicos

Gases oxidantes Control de la calidad del aire (sistemas de control de ventilación, ...)

Gas detectado CO y Metano Hidrocarburos Metano Propano/butano Hidrógeno De propósito general Alcohol HCFCs (R-22) HFCs (R-134a)

Modelo (consumo de potencia) SB-95-00 (Ph: 120 mW - máx.) SB-11ª-00 (Ph: 120 mW) SB-12ª sensor bajo prueba SB-15-00 (Ph: 120 mW) SB-19-00 (Ph: 120 mW) SB-31-00 (Ph: 120 mW) SB-30-00 (Ph: 120 mW) SB-41-00 (Ph: 120 mW) SB-42-00 (Ph: 120 mW) SB-42ª sensor bajo prueba Monóxido de SB-50-00 (Ph: 120 mW - máx.) carbono SB-500-00 (Ph: 120 mW - máx.) Amoniaco SB-53 sensor bajo prueba Óxido de nitrógeno SB-62 sensor bajo prueba De propósito general SB-AQ1A-00 (Ph: 120 mW) Humos de cigarrillos SB-AQ4-00 (Ph: 140 mW)

Tabla 2.3.- Campo de aplicaciones de los sensores Fis-SB (Ph = Potencia heater).

2.3.3.2 Características de los sensores •

Sensibilidad

La sensibilidad característica de los sensores de gases semiconductores, está basada en la relación entre la resistencia del sensor (Rs), y la concentración de los gases. La resistencia del sensor se decrementa en función del gas depositado sobre el sensor, según una función logarítmica (de igual forma que los TGS).

21

Diseño de la nariz electrónica

Figura 2.25.- Sensibilidad característica del SB-11A-00.

En el eje X se representa cada uno de los gases a los que ha sido sometido el sensor SB-11. Y en el eje Y, muestra el valor de la resistencia del sensor (Rs), de forma normalizada (Resistencia del sensor/ Resistencia del sensor en aire). •

Efectos de la temperatura y humedad

Al igual que en los sensores Taguchi, los Fis con tecnología micro bola, poseen una fuerte dependencia con la temperatura y humedad. Las moléculas de agua que residen en la propia atmósfera son absorbidas por la superficie del sensor, lo que provoca una disminución de su resistencia. Esta es la razón por la que la sensibilidad del sensor depende del nivel de humedad relativo que halla en la atmósfera. Es decir a medida que aumenta la humedad, el valor de la resistencia del sensor va disminuyendo (véase figura 2.26). Por otro lado la temperatura también es un parámetro a tener en cuenta, ya que a medida que aumenta, provoca una disminución en la resistencia del sensor (véase figura 2.26). Por lo tanto, el sensor deberá trabajar, en la medida de lo posible, siempre bajo unas condiciones ambientales, de temperatura y humedad, constantes. De ahí la importancia de que se mantengan siempre las cámaras de medida cerradas herméticamente. Obsérvese que la figura 2.26 recoge las variaciones en la Rs del sensor SB-11 debida a los cambios de temperatura y humedad relativa. Hay que destacar que el fabricante nos ha facilitado dichas variaciones para cada uno de los sensores. Figura 2.26.- Influencia de la temperatura sobre la resistencia del sensor SB-11.

22

Diseño de la nariz electrónica

2.3.3.3 Lista de los sensores empleados A continuación mostramos una tabla donde recogemos la información de los sensores que se han empleado en las pruebas iniciales: Modelo SB-11A-00 SB-15-00 SB-19-00 SB-30-00 SB-31-00 SB-41-00 SB-42A-00

Vapores detectados Propósito general. Gases inflamables Propano/Butano. Hidrógeno Alcohol. Disolventes orgánicos Propósito general. Disolventes orgánicos HCFCs: R-22 HCFCs: R-134A, R-404, R407

Tabla 2.4.- Información sobre los sensores Fis-SB utilizados en pruebas iniciales .

El rasgo más significativo de estos sensores es su bajo consumo por parte del heater, garantizando además, las características típicas de un sensor de óxido de estaño: • • • •

Larga vida útil Alta fiabilidad Modo de empleo sencillo Bajo coste

2.3.3.4 Placa diseñada para los sensores Fis-SB En los siguientes apartados se presentará la placa que contiene todos los sensores Fis-SB empleados, y se detallará el circuito de medida empleado para caracterizar las variaciones de sus resistencias ante la presencia de volátiles. Ø Matriz de sensores Fis-SB Los sensores Fis-SB, dada su reducida dimensión y patillaje, están montados sobre un zócalo "dual in line", aprovechando los pines de éste para insertar los sensores. A continuación mostramos dicha placa:

Figura 2.27.- Detalle de la placa que contiene los sensores Fis-SB.

23

Diseño de la nariz electrónica

Ø Circuito de medida de los sensores Fis-SB Los sensores Fis-SB se encuentran ubicados en una placa situada en el interior de la cámara de medida. Sin embargo, los circuitos de medida de estos sensores se encuentran en esta misma placa fuera de la cámara. Para poder medir las variaciones de la resistencia del sensor, debemos ayudarnos de un circuito de medida (facilitado por el fabricante) formado básicamente por una resistencia de carga y una tensión de control:

Figura 2.28.- Circuito de medida D.C. de los sensores Fis-SB, y patillaje del sensor.

Las condiciones de operación del circuito de la figura anterior son las siguientes: -

Vc: Tensión de control, que debe ser menor a 5 V d.c. Vh: Tensión de heater, la cual debe estar entre 900 mV y 1 V, aproximadamente RL : Resistencia de carga, su valor es variable. Se recomienda que sea superior a 750 Ω . En nuestro caso se optó por un valor de RL = 2200 Ω . VRL : Tensión de salida flotante Rs : Resistencia medida del sensor, que variará según los volátiles presentes en el sensor. Dicho valor será el que calcularemos mediante software, y lo monitorizaremos para que el usuario tenga conocimiento de la evolución de la respuesta del sensor.

Ø Acondicionamiento de la señal. Para poder medir la tensión de salida VRL tenemos dos posibilidades. Medir VRL directamente con ayuda de un circuito referenciador de masa, o tomar el valor de la tensión entre el pin 2 del sensor y la masa del circuito V21 . Conociendo este valor se puede obtener fácilmente el valor de la tensión VRL con la siguiente expresión: VRL = Vc − V21

24

(4)

Diseño de la nariz electrónica

Esta solución muy sencilla de implementar por software, es la que finalmente se ha utilizado. De esta forma nos ahorramos la circuitería externa (necesitaríamos 10 etapas referenciadoras a masa en caso de utilizar 10 sensores Fis-SB) y el espacio de placa que esto ocuparía.

2.3.4 SENSORES FIS-SP 2.3.4.1 Tipos y Aplicaciones Se trata de sensores de Óxido de Estaño cuyo funcionamiento es idéntico al de los Taguchi. En la siguiente figura podemos ver el elemento sensor correspondiente a los sensores de la serie SP:

Figura 2.29.- Elemento sensor de SP .

El material sensor se deposita en un substrato de alumina en el cual se encuentran los electrodos de oro. En la cara opuesta del substrato se deposita el heater, normalmente de platino. El encapsulado que protege al elemento sensor se puede ver en la figura 2.30.

Figura 2.30.- Encapsulado sensor de SP

A continuación se presenta una tabla en la que se recogen de forma detallada cuales son los gases que detectan los sensores Fis, el modelo y su consumo de potencia.

25

Diseño de la nariz electrónica

Categoría Mezcla de dos gases Gases inflamables

Disolventes orgánicos Gases refrigerantes

Gases Tóxicos

Gases oxidantes

Control de alimentos

Control de calidad de aire interior

Gases emitidos por los vehículos

Gas detectado CO y Metano Hidrocarburos Metano Propano/butano Hidrógeno De propósito general Alcohol HCFCs (R-22) HFCs (R-134a)

Modelo (consumo de potencia) SP-11-00 (Ph: 400 mW) SP-12A (Ph: 380Mw) SP-15A-00 (Ph: 380 mW) SP-19-00 (Ph: 315 mW) SP-31-00 (Ph: 315 mW) SP-32-00 (Ph: 315 mW) SP-41-00 (Ph: 400 mW) SP-42-00 (Ph: 400 mW) SP-42A sensor bajo prueba Monóxido de carbono Sulfuro de Hidrógeno SP-51 sensor bajo prueba Amoniaco SP-53-00 (Ph: 315mW) Ozono SP-61 sensor bajo prueba Óxido de nitrógeno Clorhídrico SP-65 sensor bajo prueba De propósito general SP-MW0-00 (Ph: 400 mW) Humedad SP-MW1-00 (Ph: 400 mW) Alcohol SP-MW2-00 sensor bajo prueba Gases combustibles SP-MW3-00 sensor bajo prueba Propósito general SP-AQ1-00 (Ph: 315mW) SP-AQ2-00 (Ph: 315mW) SP3-AQ2-00 (Ph: 315mW) SP3-AQ2Y-00 (Ph: 315mW) Humo de cigarrillos SP-AQ3-00 (Ph: 315mW) CO2 Bajo test Gasolina SP-AD1/SP-AD3 bajo test Gas-oil SP-AD2/SP-AD3 bajo test

Tabla 2.5.- Campo de aplicaciones de los sensores Fis (Ph = Potencia heater).

2.3.4.2 Características de los sensores •

Sensibilidad

La sensibilidad característica de los sensores de gases semiconductores está basada en la relación entre la resistencia del sensor (Rs), y la concentración de los gases. La resistencia del sensor se decrementa en función del gas presente en el ambiente, según una función logarítmica (de igual forma que los TGS). El fabricante asegura que tras realizar unas pruebas bajo unas condiciones ambientales estándares, los sensores responden ante unos niveles mínimos de detección para los diferentes gases. En el eje X de la figura 2.31 se representa cada uno de los gases a los que ha sido sometido el sensor, y el eje Y muestra el valor de la resistencia del sensor (Rs) de forma normalizada (Resistencia del sensor/ Resistencia del sensor en aire). Por tanto podemos ver en que orden de magnitud varía la resistencia del sensor en presencia de una

26

Diseño de la nariz electrónica

concentración determinada de contaminante respecto a la resistencia que el sensor presenta en el aire.

Figura 2.31.- Sensibilidad característica del SP-31.



Efectos de la temperatura y la humedad

Al igual que en los sensores Taguchi y los Fis con tecnología micro bola (serie SB), los Fis de la serie SP poseen una fuerte dependencia con la temperatura y la humedad. La figura 2.32 recoge las variaciones en la Rs del sensor, debido a los cambios en la temperatura y humedad relativa. Hay que destacar, que el fabricante nos ha facilitado dichas variaciones para cada uno de los sensores.

Figura.2.32.- Dependencia de la temperatura y humedad en los sensores FIS serie SP

27

Diseño de la nariz electrónica

2.3.4.3 Lista de los sensores empleados A continuación mostramos una tabla donde recogemos el modelo y los vapores detectados por los sensores que se han empleado con este tipo de tecnología: Modelo SP-31-00 SP-32-00 SP-53-00

Detección Solventes orgánicos Alcohol Amoníaco

Tabla 2.6.- Información sobre los sensores Fis empleados.

Hay que constar que el sensor SP-53-00 fue descartado en las pruebas iniciales, porque presentaba las mismas aplicaciones que el TGS824, y además tenía menos sensibilidad que éste 2.3.4.4 Placas diseñada para los sensores Fis-SP Como se ha dicho anteriormente, estos sensores presentan la misma distribución de pin-out que los sensores Taguchi y además los dos tipos de sensores se montan sobre el mismo zócalo. El circuito de medida es también idéntico al de los sensores Taguchi por lo que no se va a insistir más en ello. A continuación se volverá a mostrar la placa correspondiente a la cámara nº 1 indicando los sensores Fis.

Figura 2.33.- Detalle de la cámara nº1 que contiene los sensores Fis

28

Diseño de la nariz electrónica

2.4 SOFTWARE 2.4.1 SINCRONIZACIÓN CON EL HEADSPACE Y ADQUISICIÓN DE DATOS 2.4.1.1 Descripción general Se ha diseñado un programa en lenguaje de alto nivel (el lenguaje de programación escogido ha sido el C), con la finalidad de adquirir la respuesta de los sensores ubicados en las cámaras de medida haciendo uso de un par de tarjetas de adquisición de datos (PCL812) una para cada cámara, cada una de ellas, conectadas al bus ISA de un PC diferente. El programa realizado, adquiere las muestras de los sensores correspondientes a una sola cámara. Cada una de ellas contiene 6 sensores. Como se comentó en la descripción general del equipo de medida, no haría falta 2 tarjetas PCL-812, puesto que una de ellas dispone de 16 entradas analógicas.

CÁMARA Nº 1 2

SENSORES Taguchi y Fis-SP Taguchi

TARJETA DE ADQUISICIÓN PCL 812_1 PCL 812_2

Tabla 2.7.- Distribución de las placas de adquisición de datos, según las cámaras de medida

Aunque en las medidas definitivas no se utilizó la cámara de los 10 sensores Fis-SB, modificando ligeramente el programa, (en cuanto al cálculo de la resistencia del sensor y el número de sensores) se consigue fácilmente la adquisición para estos sensores. Veamos a continuación una tabla en la que se recogen los canales que ocupan cada una de las señales adquiridas, en las dos tarjetas:

TARJETA PCL 812_1 Cámara nº 1

PCL 812_2 Cámara nº 2

CANAL 0 1 2 3 4 5 0 1 2 3 4 5

SENSOR Taguchi 813 Taguchi 880 Taguchi 832 Fis SP-31 Taguchi 831 Fis SP-32 Taguchi 822 Taguchi 882 Taguchi 825 Taguchi 800 Taguchi 824 Taguchi 842

Tabla 2.8.- Correspondencia entre el canal del conversor y la señal que le llega procedente de los sensores

29

Diseño de la nariz electrónica

Los datos que procesa este programa son la resistencia de todos los sensores (Taguchi y Fis-SP). Estos cálculos se van presentando en la pantalla para que el usuario pueda ir comprobando como varía la resistencia de los sensores en tiempo real. En los siguientes apartados se procederá a detallar de forma exhaustiva el funcionamiento del código del programa principal, detallando cada una de las rutinas más representativas, y finalizaremos dando una descripción del criterio seguido para crear la base de tiempos. 2.4.1.2 Rutinas principales El corazón de este programa es una base de tiempos gracias a la cual podremos controlar el tiempo (fijado por el usuario desde teclado) que debe estarse nuestro programa en cada una de las fases del Headspace Autosampler para conseguir una buena sincronización. En primer lugar se introducen una serie de parámetros que definen a la medida (número de pruebas, nombre de cada contaminante y los parámetros del Headspace Autosampler) con los cuales se generará el nombre del fichero de datos que contendrá la respuesta de los sensores. Tras la inicialización de la tarjeta de adquisición para que podamos adquirir los datos de forma correcta, y la configuración del timer 0 del PC, el programa entra en un bucle de espera para la correcta sincronización con el Headspace. El tiempo de inicio del calentamiento del vial en el Headspace, es el momento en el cual se produce la sincronización. Pasado este tiempo, además de los de presurización, llenado y gran parte del equilibrado del loop, se adquiere la respuesta de los sensores durante 30 segundos, con la finalidad de capturar la resistencia base estabilizada de los sensores. Pasado este tiempo, el Headspace inyecta la muestra de gas a las cámaras sensoras, adquiriendo de nuevo, el programa de ordenador, la respuesta de los sensores. Finalizada la medida se crea el fichero de datos con su nombre correspondiente, el programa entra en otro estado de espera para estabilizar el sistema (los sensores tienen que volver a sus condiciones iniciales de resistencia) para la próxima medida. Si no existen más medidas, el programa termina una vez transcurrido ese tiempo. Ø Rutina de inicialización de la tarjeta PCL812 Tal y como hemos comentado con anterioridad, se han utilizado 2 dos tarjetas, una para cada cámara de sensores y conectada en un PC distinto. Hay que especificar que la tarjeta de adquisición nº 1 se empleará para adquirir la respuesta de los sensores alojados en la cámara de medida nº 1, es decir, los Taguchi y Fis-SP. La tarjeta nº 2 adquirirá el resto de los sensores Taguchi (véase tabla 2.8) alojados en la cámara de medida nº 2. En primer lugar, se selecciona el canal inicial N a muestrear: outportb(BASE+10,N);

30

Diseño de la nariz electrónica

Se ha optado por realizar una conversión que se inicie por soft, por lo tanto debemos programar el siguiente registro para que el disparo de inicio de conversión sea por software: outportb(BASE+11,1); Ø Rutina de programación del timer 0 Para crear nuestra base de tiempos se ha empleado el timer 0 disponible en el PC, que ofrece una cadencia de 55 ms. Es decir, cada 55 ms se ejecutará el código de nuestra rutina de atención a la interrupción. Programaremos el timer para que la interrupción del reloj del sistema acontezca cada 10 ms. Con ellos se pretende contar segundos (con la variable seg) y minutos (con la variable min). Si la frecuencia del timer 0 es de frec= 1.193.182 Hz, para contar 10 ms, tenemos que cargar un valor de 10 ms * T = 10 ms * (1/frec) = 11931.82 ≈ 11932 = 2E9B (valor hexadecimal). Este valor se cargará empezando por el byte menos significativo y siguiendo por el más significativo. El propósito de esta rutina es poder controlar el tiempo establecido por los parámetros establecidos por el usuario.

Cada 10 ms acontece el siguiente código

Incrementamos la variable tic

SÍ Si tic = 100, oessea, pasado 1 seg.

tic=0

Incrementamos variable seg y damos permiso para conversión via soft

¿Ha pasado 1 minuto?



NO

NO

seg=0

Incrementamos la variable que nos controla los minutos transcurridos (min++)

Damos servicio a antigua rutina de interrupción

Figura 2.34.- Flujograma de la rutina de atención a la interrupción

31

Diseño de la nariz electrónica

Ø Rutina de sincronización Headspace Autosampler con PC Para poder sincronizar el PC con el Headspace, necesitamos tener información sobre alguno de sus estados. El Headspace dispone de un puerto serie para la comunicación con otro dispositivo (en nuestro caso un PC). Como no se disponía del software de comunicación, se realizó un programa en C para leer constantemente los datos del puerto serie del Headspace en cada uno de los estados de funcionamiento, para ver si variaban al cambio de un estado a otro. Se observó que cuando el Headspace cogía un vial de muestra y lo introducía en el horno, los datos leídos del puerto serie variaban en ese instante. La rutina de sincronización se basa en leer constantemente del puerto serie hasta que detecta esta variación, que servirá para sincronizar los tiempos introducidos por el usuario con los del Headspace. Ø Adquisición de los datos La parte de adquisición de los datos se encuentra en el programa principal y se ejecuta una vez sincronizado el Headspace con el PC y transcurrido los tiempos de calentamiento y presurización del vial, llenado y equilibrado del loop. Durante el tiempo de adquisición (en nuestro caso son 10 minutos), se van recorriendo todos los canales de la tarjeta correspondientes a cada sensor, en intervalos de 1 segundo controlados por el timer 0 del PC. Durante este tiempo, el programa recorre todos los canales para adquirir la respuesta de cada sensor. Por tanto, considerando un tiempo de adquisición de diez minutos a intervalos de 1 segundo de disparo de conversión, obtendremos 600 muestras para cada sensor. Todos estos datos, se guardan temporalmente en una matriz datos antes de ser guardados al fichero correspondiente. Véase en la página siguiente, a modo gráfico, el funcionamiento del proceso de adquisición de datos: Ø Rutinas de control y creación del fichero con los datos adquiridos Una vez ha finalizado el tiempo preestablecido para la medida, se procede a guardar las respuestas de los sensores (almacenadas en memoria en una matriz de 6 columnas y 600 filas) en un fichero de datos, para su posterior análisis mediante la aplicación de técnicas de redes neuronales. El nombre del fichero se obtiene de la introducción del nombre del contaminante (introducido por el usuario) correspondiente para esa medida. Para calcular de forma automática cual debe ser la extensión del fichero (que resulta ser un número) se han diseñado las tres rutinas que se muestran en la pagina siguiente.

32

Diseño de la nariz electrónica

INICIO Esperamos sincronización y tiempos Headspace SÍ

¿Ha terminado el tiempo De adquisición ? NO

¿Se han recorrido todos los canales?



NO Disparamos por soft el inicio de la conversión

¿Se ha convertido el dato?

NO

SÍ Almacenamos el valor adquirido

Calculamos la resistencia del sensor

FIN

Figura 2.35.- Flujograma de la rutina de adquisición de los datos para la cámara nº 1

Ø Rutina nombre_fich() En primer lugar debemos especificar que antes de ejecutar el programa, crearemos un fichero denominado MEDIDAS.DAT, el cual contendrá una relación de todas las extensiones de los ficheros que se han ido generando cada vez que se ejecute el programa ACEITES.EXE. Es decir, deberemos crear dicho fichero una sola vez y editarlo para escribir un cero, guardaremos los cambios efectuados y lo cerraremos, y ya no volveremos a modificarlo nunca más. Mediante esta rutina nombre_fich(), se abrirá el fichero MEDIDAS.DAT, nos posicionaremos al final del fichero y leeremos que extensión fue la última que se creó. Por lo tanto, a dicho valor leído, le sumaremos uno y ya tendremos la nueva extensión para la medida que se acaba de realizar. 33

Diseño de la nariz electrónica

Ø Rutina guardar_fich() Después de ejecutar la rutina nombre_fich(), mediante esta función se genera un fichero de texto que contiene una cabecera informativa en la que se recogen el nombre de la medida, la fecha y hora en la que se realizaron, los parámetros del Headspace introducidos por el usuario y una relación de todos los sensores que forman parte de la nariz electrónica. Ø Rutina actualizar_fich() Si con la función nombre_fich() obteníamos la última extensión generada, con la rutina actualizar_fich() podremos actualizar el fichero MEDIDAS.DAT con la última extensión generada más uno, para que así, la próxima prueba que vayamos a realizar tenga incrementada en uno la extensión que forma parte del nombre del fichero. De esta forma, tendremos un conjunto de ficheros con extensiones que se van incrementando de uno en uno, que van desde 1 hasta el número final previsto para el conjunto de medidas, en nuestro caso 110 (100 para medidas de aceites y 10 para las calibraciones).

2.4.1.3 Ejemplo de creación de una medida A continuación se presentará, por pasos, el procedimiento que se ha seguido para realizar dos medidas una vez se ejecuta el fichero ACEITES.EXE. En cada uno de los pasos se irá mostrando lo que aparece reflejado en el monitor del ordenador. Se ha representado mediante el color rojo los valores que el programa va actualizando continuamente. Supondremos que el fichero MEDIDAS.DAT ya ha sido creado previamente, por lo tanto, tras ejecutar ACEITES.EXE los pasos a seguir son: 1) Introducir el número de medidas que se van a realizar. Número de pruebas a realizar: 11 2) Introducir el nombre de cada medida a realizar. Supongamos que ya hemos introducido 10 nombres, por lo tanto tendríamos: Nombre del contaminante 11 --- > (max.8 caracteres)

etanolc1

3) Para poder sincronizar los tiempos de adquisición de los sensores con los tiempos del Headspace introduciremos esos mismos parámetros: Nombre del contaminante 11 --- > (max.8 caracteres) Tiempo de calentamiento del vial (en min.): 5 Tiempo de presurización del vial (en min.): 1 Tiempo de llenado del loop (en min): 1 Tiempo de equilibrado del loop (0.05 min por defecto..): 0.05 Tiempo de inyección (en min.): 10 34

etanolc1

Diseño de la nariz electrónica

Tiempo de adquisición añadida (en min.): 0 Tiempo de reposo (en min): 72.7 Parámetros de interés --------------------------------Temperatura del horno (en ºC): 70 Temperatura del loop (en ºC): 75 Temperatura de la manguera (en ºC): 90

4) Se inicia ahora una espera hasta que el Headspace introduce el vial en el horno (sincronización). Transcurridos los tiempos de calentamiento, presurización, llenado y equilibrado, empieza a inyectarse la muestra de gas hacia las cámaras. En nuestra pantalla de ordenador veríamos lo siguiente: Adquiriendo . . . 26.01 S1 S2 S3 S4 S5 S6

5)

70.12 65.32 21.13 40.35 72.61 30.21

Al acabar la medida se genera de forma automática el nombre del fichero según los parámetros introducidos por el usuario y según el último valor almacenado en el fichero MEDIDAS.DAT

Adquiriendo . . . 26.01 S1 S2 S3 S4 S5 S6

70.12 65.32 21.13 40.35 72.61 30.21

Prueba = 2 File 3 = aceite1.11

dj = 600

6) Una vez se ha generado el nombre del fichero, el programa se mantiene en estado de espera hasta que finalice el tiempo de ciclo de medida del Headspace: Estabilizando medida para prox. Medida . . . . 0:01 7)

Si se han realizado todas las medidas finaliza el programa retornando al path desde donde ejecutamos el programa. En caso contrario salta de nuevo al paso 4.

35

Diseño de la nariz electrónica

2.4.2 PRE Y POSTPROCESADO DE LOS DATOS 2.4.2.1 Introducción Para el preprocesado y posterior análisis de los datos, se ha empleado una herramienta muy potente que permite manipular matrices de datos, aplicar técnicas de reconocimientos de patrones, diseñar diferentes topologías de redes neuronales, etc. Un sin fin de posibilidades, que brindará la oportunidad de simular la viabilidad del prototipo definitivo. Dicha herramienta es el paquete de software MATLAB 5.3 Professional Edition. En este apartado se van a discutir las diferentes técnicas de pre y postprocesado que se han llevado a cabo, así como los diferentes programas empleados (cuyos listados se han adjuntado en el anexo a este proyecto) para cada una de las técnicas. En primer lugar, se procederá a detallar los pasos seguidos para extraer los parámetros de interés y los diferentes archivos creados para preparar los datos, es decir, se comentará el procedimiento llevado a cabo para crear una matriz global, en la que se recogerán todas las adquisiciones procesadas (filas), con sus parámetros respectivos (columnas). En el segundo punto, se discutirán las diferentes topologías de red analizadas y los diferentes ficheros para el postprocesado de los datos, diseñados con la finalidad de cumplir con los objetivos de este proyecto.

2.4.2.2 Ficheros MATLAB para el preprocesado Entiéndase por preprocesado de los datos una acción matemática que se ha aplicado a la respuesta que ofrecen los sensores. De forma que, partiendo de su señal de salida (resistencia), se aplican una serie de operaciones que nos permiten extraer otros valores complementarios que nos ayudaran a mejorar los resultados finales. Según el tipo de preprocesado utilizado se obtienen unos resultados mejores o peores. De ahí la necesidad de realizar diferentes tipos de preprocesado a nuestro conjunto inicial de datos, con la finalidad de poder aplicar el número mayor de combinaciones de parámetros y mejorar al máximo los resultados. En este punto se presenta de forma estructurada los diferentes algoritmos de preprocesado que se han utilizado. En primer lugar, se dará una breve descripción de los diferentes parámetros que se han extraído para poder aplicar posteriormente las técnicas basadas en reconocimiento de patrones mediante PCA (Principal Component Analysis) y ANN (Artificial Neural Network). Ø Parámetros calculados Partiendo de la respuesta de los sensores, cuyo valor es una resistencia en KΩ se pueden obtener diferentes parámetros resumidos en una misma tabla. Los parámetros calculados se identifican por variables, así como la fórmula matemática que se ha aplicado para calcularlo:

36

Diseño de la nariz electrónica

PARÁMETRO

SIGNIFICADO

Gi

Conductancia inicial

Gf

Conductancia final

Dg

Incremento de conductancia

Dgn Tm

Incremento de conductancia normalizada Tiempo en que el valor conductancia es máximo

FÓRMULA MATEMÁTICA 1 gi = resistenci a inicial 1 gf = resistenci a minima dg = gf − gi dg dgn = gi -

Tabla 2.9.- Preprocesado de los datos de entrada.

Todos los datos presentados anteriormente han sido calculados para cada uno de los sensores que forman parte de nuestra nariz electrónica y que formarán nuestro conjunto de variables aptas para ser aplicadas a las diferentes técnicas de reconocimiento de patrones. Véase los archivos diseñados para crear la matriz global de parámetros: •

Creación de una función que obtenga los parámetros presentados en la tabla 2.9 de una fichero de medidas (archivo: PAR_SENS.M)



Creación de una función que a partir de una codificación, obtenga el nombre del fichero con la finalidad de poder acceder más fácilmente a los ficheros de medidas. (archivo: CREAR_NOMBRE_FICHERO.M)



Con la ayuda de los dos funciones mencionadas, generación de una matriz que tenga por filas cada una de las medidas llevadas a cabo, y por columnas una serie de parámetros característicos de una medida, como por ejemplo, su conductancia inicial, conductancia final, etc. (archivo: CREAR_MATRIZ.M).

Ø Fichero CREAR_MATRIZ.M Tras la ejecución de este fichero, dispondremos de una matriz global en la que tendremos todas las medidas que se han realizado (filas) y con los parámetros (conductancia inicial, final, etc.) que definen a una medida (columna). A continuación definiremos el significado de las diferentes columnas que constituyen la matriz. Obsérvese en la tabla de la página siguiente que en la primera columna de la tabla anterior se ha indicado un número, que refleja en que columna se encuentran los datos dentro de la matriz global Por lo tanto, una vez ejecutado este programa dispondremos de una variable que será la matriz de parámetros. Ésta será empleada por los siguientes programas diseñados en Matlab que analizaremos a continuación.

37

Diseño de la nariz electrónica

Número Columna 1 – 12 13 – 24 25 – 36 37 – 48 49 – 60 61

Parámetro Significado gi gf dg dgn tm código

Conductancia inicial(1/Valor de la resistencia inicial) Conductancia final (1/Valor de la resistencia mínima) Incremento de conductancia (gf-gi) Incremento de conductancia normalizada (dg./gi) Tiempo en que el valor de la conductancia es máximo Valor de tres dígitos. El que el dígito más significativo se utiliza para codificar la temperatura:

- ‘7’ para temperaturas de 70,75,80 ºC - ‘8’ para temperaturas de 80,85,90 ºC - ‘9’ para temperaturas de 90,95,100 ºC El segundo dígito (o dígito intermedio) es para el tipo de aceite y su valor se sitúa entre el ‘0’ al ‘9’ considerando que el ‘0’ es para aceites de tipo 10. El dígito de menos peso corresponde al día en que se hizo las medidas y presenta el mismo formato que el anterior dígito Tabla 2.10.- Recoge el significado de cada una de las columnas (enumeradas) de la matriz global, indicando el significado del dato almacenado.

2.4.2.3 Ficheros MATLAB para el postprocesado Ø Postprocesado para las técnicas PCA El análisis PCA es un método lineal que se utiliza donde se espera que las variables tengan relaciones de colinearidad: realizando un estudio PCA del conjunto de datos, podemos averiguar si existe una agrupación coherente de nuestras medidas según los objetivos previstos. Esta técnica permite representar un conjunto de datos de dimensión n en una dimensión de orden 1,2,...,n. Una vez aplicado este método, podemos comprobar si nuestro sistema será capaz de discernir entre los diferentes tipos de aceites analizados, ya que los resultados gráficos que consigamos serán un claro indicativo de la viabilidad de nuestro diseño para poder implementarlo en una Red Neuronal Artificial. Para realizar un PCA debemos disponer de unos datos (en forma de matriz), donde sus filas serán las diferentes medidas, y las columnas los parámetros extraídos a cada medida (gi, gf, dgn,...). Por lo tanto, los parámetros que se han aplicado con esta técnica son los recogidos en la tabla 2.9. •

Procedimiento para realizar un PCA

Para poder realizar un PCA, en primer lugar se debe introducir los valores citados anteriormente, pero de forma normalizada para conseguir unos resultados óptimos. Para ello se puede autoescalar los datos de entrada (auto()) o bien centrarlos (mcn()):

38

Diseño de la nariz electrónica

-

auto(x): Esta función es usada para “autoescalar una matriz de datos”. Cuando la matriz ha sido autoescalada, el valor medio de cada columna es sustraído. Después, el resultado es dividido por la desviación estándar de la columna. El resultado es una matriz donde cada columna tiene un cero de media y una varianza unidad. El formato empleado es el siguiente: [ax,mx,stdx]=auto(x) Donde: ax, es la matriz autoescalada. mx, es el vector de valores medios usada en el escalado. stdx, son los vectores fila de las desviaciones estándares usadas en el escalado.

-

mcn(x): Este segundo paso es opcional, en según que situaciones puede resultar interesante centralizar los datos de entrada. Esto es común cuando las variables tienen las mismas unidades. El formato de salida es: [mcx,mx]=mcn(x) Donde: mcx, es la matriz centrada. mx, es el vector fila de los principales usados en el escalado.

-

Una vez tenemos los datos de entrada autoescalados, procedemos a ejecutar la función PCA, gracias a la cual obtenemos el resultado esperado: los scores y los loads. El formato de salida es el siguiente: [scores,loads,ssq,res,q,tsq] = pca (data,plots,scl,lv) Donde data es la matriz con los parámetros de entrada, plots es un flag que especifica el tipo de impresión deseado, scl es un vector opcional (normalmente una base de tiempos) empleado para plotear los scores y lv es una variable opcional, que indica el número de PCs que debe retener el modelo.

Los resultados de interés, tras ejecutar pca(), son los valores almacenados en las matrices: -

Scores: Son las coordenadas de las medidas respecto a las componentes princiaples. Contiene la información relativa entre medidas, clasificada según la varianza.

-

Loads: Son los pesos de cada variable respecto a cada una de las componentes principales. Es una matriz que tendrá tantos puntos como sensores tengamos, cuya información nos da una idea aproximada sobre la redundancia entre sensores.

A continuación, se detallará el fichero creado para programar la técnica de análisis comentada anteriormente:

39

Diseño de la nariz electrónica •

Fichero PCA_ACEITES2.M

Con este fichero se pretende comprobar cómo se agrupan las diferentes medidas en función del tipo de aceite analizado. El conjunto de datos analizado son los de la matriz global de parámetros excepto el código y las medidas de calibración. El usuario deberá añadir una línea de código para indicar que parámetros de la matriz global normalizada llamada m_norm desea que se haga el análisis PCA. Esto se hace asignando a una variable llamada m_aux2 las columnas que desee el usuario teniendo en cuenta la asignación de columnas de la matriz globlal (tabla 2.10). Por ejemplo, si el usuario desea ver el comportamiento de las medidas con el parámetro gf debería seguir los siguientes pasos: 1. Abrir el archivo: PCA_ACEITES2.M 2. Asignar a la variable m_aux2 el parámetro deseado teniendo en cuenta a tabla 2.10. m_aux2 = m_norm(:,13:24); 3. Ejecutar el fichero: PCA_ACEITES2. Ø Postprocesado para las técnicas ANN Las redes neuronales son básicamente transformaciones no lineales que pueden aprender a relacionar a partir de ejemplos. De esta forma, se pueden tratar no linealidades de una forma genérica, sin que sea necesario conocer ninguna información a priori del modelo todas las características. Por ello son muy adecuadas para la estimación o predicción de parámetros, identificación, cuantificación y control de sistemas no lineales. Por lo tanto al aplicar estas técnicas al campo del diseño de narices electrónicas, ayudará a cumplir con los objetivos de nuestro proyecto. Además las redes neuronales al tratar con información multivariable o multidimensional, por su arquitectura paralela y distribuida, presentan una gran robustez ante medidas erróneas o muy ruidosas. A continuación se detallan una serie de aspectos tales como los tipos de redes que se han utilizado dando una breve descripción de su funcionamiento y características más representativas, se determinarán los parámetros más importantes de una red (variables de entrada y salida), los diferentes tipos de normalizaciones a los que son sometidos los datos de entrada, el proceso de optimización, así como los diferentes archivos creados con Matlab.

40

Diseño de la nariz electrónica •

Tipos de red empleadas

Cuando se desarrolla una red para realizar una tarea de clasificación de patrones, se suele proceder reuniendo un conjunto de ejemplares que serán utilizados durante la fase de aprendizaje o entrenamiento de la red. Durante esta etapa, la información es registrada en el sistema mediante el ajuste de los pesos de las conexiones entre las neuronas. Una vez concluido el aprendizaje, la red está lista para funcionar y no se permite ningún cambio adicional de los pesos. Este procedimiento es factible si el problema que se pretende resolver por la red está bien limitado y puede definirse un conjunto (estadísticamente hablando) de informaciones de entrada que permitan entrenar la red para resolver el problema. Sin embargo, en muchas situaciones reales los problemas a resolver no tienen unos límites claros. El creador de la red que presentaremos a continuación, denomina al hecho presentado en el párrafo anterior como el dilema de la estabilidad y plasticidad del aprendizaje. Este dilema plantea los siguientes interrogantes: -

Cómo una red podría aprender nuevos patrones (plasticidad del aprendizaje)

-

Cómo una red podría retener los patrones previamente aprendidos (estabilidad del aprendizaje).

Conseguir una red que pueda dar respuesta a uno de estos interrogantes es sencillo. Sin embargo, no lo es si se pretende diseñarla para que solucione ambos. En respuesta a este dilema Grossberg, Carpenter y otros colaboradores [2], desarrollaron la teoría de la resonancia adaptativa (Adaptative Resonance Theory: ART). Dado que no es uno de los objetivos de este proyecto, no se profundizará en la explicación del algoritmo diseñado para este tipo de redes. Por lo tanto, a continuación se recogerá bajo una misma tabla (ver página siguiente) los modelos de red que se han empleado (basados todos en la teoría de la resonancia adaptativa), con sus características más representativas (topología, mecanismos de aprendizaje, tipo de asociación de las informaciones de entrada y salida, la forma de representación de la información, señales de Entrada/Salida y sus autores). Nótese que, se ha empleado la tercera versión de la topología de red neuronal Fuzzy ARTMAP. Los algoritmos que implementan esta red neuronal han sido desarrollados y programados por el director del presente proyecto, Jesús Brezmes. Partiendo del algoritmo inicial de programación de la red Fuzzy ARTMAP recogido en el artículo Fuzzy ARTMAP: A Neural Network Architecture for Incremental Supervised Learning of Analog Multidimensional Maps [3], se han diseñado dos nuevas versiones (v2 y v3) que pretenden mejorar al máximo los resultados conseguidos. La modificación llevada a cabo para la segunda versión se centra en la especificación de un único valor de vigilance parameter por cada clase existente.

41

Diseño de la nariz electrónica

Modelo de la red

Topología

2 Capas FeedForward/ Feedback Conex. Laterales y autorrecurrente 2 Capas Adaptative FeedForward/ Resonance Feedback Theory 2: Conex. ART2 Laterales y Fuzzy ART autorrecurrente Adaptative 2 Capas Resonance FeedForward/ Theory: Feedback Fuzzy Conex. ARTMAP Laterales y (Versión 3) autorrecurrente Adaptative Resonance Theory 1: ART1 Fuzzy ART

APRENDIZAJE Supervisada Regla /no supervisada

Asociac Inform. ión input/ output Autores

No supervisada

Competitivo (Resonancia Adaptativa)

Hetero Asoc.

Carpenter Binarias Grossberg 1986

No supervisada

Competitivo (Resonancia Adaptativa)

Hetero Asoc.

Analog.

Carpenter Grossberg 1987

Supervisada

Competitivo (Resonancia Adaptativa)

Hetero Asoc.

Binarias Jesús o bien Brezmes Analog. 1999

Tabla 2.11.- Recoge las diferentes topologías de red empleadas en este proyecto.

Para la tercera versión, el procedimiento de entrenamiento de la red es idéntico al desarrollado mediante la segunda versión. La única diferencia es que durante la fase de testeo, se inicia con un vigilance parameter elevado y, a medida que la red va evaluando hace disminuir progresivamente el valor del vigilance parameter, hasta que todas las medidas hayan sido clasificadas. •

Datos experimentales de entrada a la Red

Para diseñar nuestra red neuronal tenemos que tener presente una serie de parámetros tales como, cuales son los datos de entrada, identificar cuales serán nuestras variables de salida, inicializar y establecer los parámetros de entrada/salida de entrenamiento y testeo de la Red. Para los tipos de red empleados, los parámetros de entrada son prácticamente comunes, por lo que a continuación presentaremos una lista que recoge todos ellos, dando una breve descripción de su función dentro de la red:

42

Diseño de la nariz electrónica

Parámetros FUNCIÓN Vigbase Es el vigilance parameter de la red ART A. Normalmente lo pondremos a 0. Las medidas presentadas se agrupan en un mismo nodo aunque no se parezcan mucho. Por lo tanto tendremos menos clases y aumentaremos la capacidad de generalización de la red vigb Es el vigilance parameter de la red ART B. Normalmente lo pondremos a 1. Las medidas presentadas se deben parecer mucho para agrupar 2 medidas bajo un mismo nodo. Tendremos más clases y disminuiremos la capacidad de generalización. lra Es el learning rate de la red ART A, cuyo valor queda definido de forma libre por el usuario. Teniendo en cuenta que un lra próximo a 1 es para medidas poco ruidosas, y con un lra próximo a cero es para medidas ruidosas. lrb Es el learning rate de la red ART B, lo definiremos a 1, ya que se supone que las medidas que le presentemos a ART B, serán poco ruidosas. Alfa Choice parameter, cuyo valor es 0.001, para todas las simulaciones realizadas en este proyecto. Errormax Es un parámetro cuyo valor está expresado en %, de forma que la red entrenará hasta que se cumpla el porcentaje de aciertos en el conjunto de entrada (para la red de entrenamiento) Ent_aux Es la matriz que contiene los datos a analizar. Dicha matriz debe estar normalizada entre 0 y 1. El usuario puede especificar que parámetros (gf, dg, dgn,...) desea representar, escogiendo las columnas de la matriz global que le interese. Sal_aux Es un vector columnas que indica cual es nuestro target. Debe estar normalizado entre 0 y 1. Es en este vector donde indicaremos el tipo de clasificación que deseamos que nos efectúe la red (en nuestro caso por tipo de aceite). Tabla 2.12.- Parámetros de entrada a las redes empleadas en este proyecto.



Identificación de las variables de salida

Mediante la observación de las variables de salida, podremos comprobar básicamente si nuestra red ha sido capaz de cumplir con nuestro objetivo con una cierta garantía. Estos parámetros nos dan una visión de cómo ha ido el entrenamiento de la red, nos brindan la posibilidad de conocer cómo han quedado actualizados los pesos, cuales han sido los lra y lrb definitivos y nos da una tasa de aciertos (en %) de nuestra red, tomando este último parámetro como referencia para determinar si nuestra red ha cumplido con el objetivo previsto. Véase a continuación las diferentes variables que devuelve las redes empleadas en este proyecto (obsérvese que no se ha hecho ninguna distinción entre las salidas de las diferentes topologías de red, esto es debido a que muchas de las variables de salida son comunes entre las diferentes topologías de red analizadas en este proyecto).

43

Diseño de la nariz electrónica

PARÁMETROS Viga Wija Wijb Wab Ent Pred a1 Real Sal Epoch Infotrn Dimviga Ok Infotest

Nok Nsnc Rateok

FUNCIÓN Es el vigilance parameter de la red ART A actualizado. Pesos actualizados de la red ART A del entrenamiento Pesos actualizados de la red ART B de la evaluación Pesos del Map Field Matriz de entrada con los datos Vector columna con los valores predichos por la red Vector columna con los valores reales de salida Vector columna con los targets deseados Número de epoch empleados Dimensión del vigilance parameter de la red ART A Indica el número de aciertos que ha clasificado correctamente Muestra el número de errores que ha cometido al clasificar Contiene el número de medidas que no ha sabido clasificar Tanto por ciento de aciertos. Parámetro que emplearemos para cuantificar si se ha cumplido o no nuestro objetivo.

Tabla 2.13.- Parámetros de salida de las redes empleadas en este proyecto.



Métodos de entrenamiento y evaluación de redes

Cuando se emplea un red neuronal, uno de los aspectos que más influyen en los resultados finales es el método de entrenamiento y evaluación de la red. Nosotros hemos utilizado el primero de estos dos métodos: -

Leave one out : La red se entrena con todos las medidas menos una, y se evalúa con esta medida restante. A continuación, se vuelve a inicializar los pesos de la red y se vuelve a repetir el proceso, hasta que se evalúe con la última medida. Este método es muy lento en cuanto a tiempo de cálculo se refiere, pero la tasa de aciertos mejora considerablemente respecto a otros métodos de evaluación y testeo. Su objetivo es aprovechar al máximo el escaso número de medidas realizadas

-

Fold Validation: Consiste en establecer dos conjuntos de medidas, uno dedicado al entrenamiento, y un segundo conjunto que emplearemos para evaluar la red.

No existe ningún criterio determinista que nos asegure cual de los métodos presentados anteriormente es mejor. El primero evalúa la eficacia del método en general, el segundo la eficacia de una red particular. Ni tampoco nos aseguran que parámetros de entrada (gi, dgn, etc.) nos conducirán a unos resultados mejores. Por lo tanto nos deberemos basar en nuestra propia experiencia para determinar que parámetros escogeremos y que métodos aplicaremos A continuación se muestran los ficheros generados para programar la topología de red neuronal Fuzzy ART:

44

Diseño de la nariz electrónica

-

Fichero FUZZY_ART.M

Con este archivo se analizará la topología de red Fuzzy ART de todo el conjunto experimental de datos. El usuario deberá modificar parte del código (consúltese anexo) en función del target que desee evaluar. La filosofía de programación de este algoritmo se ha basado en calcular el vigilance parameter (ro) tal que genere el número máximo de clases deseado, según el tipo de clasificación que estemos llevando a cabo. Por ejemplo, si intentamos clasificar por tipo de aceite, deberemos encontrar el vigilance parameter (el programa efectúa dicho cálculo de forma automático) que nos genere tan sólo 10 clases, una para cada tipo de aceite. Para esta red, los datos de entrada deben estar normalizados entre 0 y 1 y de forma ordenada, según el target que deseemos alcanzar. Por ejemplo, para clasificar los 10 tipos de aceites, deberemos tener 10 matrices, donde cada una de ellas contendrá los valores correspondientes para cada tipo de aceite Mediante una estructura for se van recorriendo todos los parámetros almacenados en la variable senspar{t} de forma que se evalúa con cada uno de ello. Para poder cuantificar la tasa de aciertos de nuestra red, se ha calculado una variable (rate ok), la cual compara un vector que contiene las clases calculadas por la red, con otro vector que contiene las clases reales. Se suman todas clases coincidentes, se multiplican por 100 y se dividen por el total de medidas (100), consiguiendo así un tanto por ciento. Finalmente, se recogen bajo un fichero de texto 'resulfzart.txt' todas las variables de salida: ro, Vector calculado y rateok.

-

Fichero FUZZY_ARTMAP.M

Con este archivo se analizará la topología de red Fuzzy ARTMAP, para su tercera versión de programación, de todo el conjunto experimental de datos. Se ha tratado de evaluar con esta red la viabilidad de nuestro prototipo para conseguir alcanzar el objetivo de este proyecto. Hay que especificar que, para esta red los datos de entrada deben estar normalizados entre 0 y 1, y el método de evaluación ha sido la aplicación de un leave one out. Por otro lado, si el usuario desea evaluar esta topología para diferentes valores de learning Rate (variable lr), deberá ir modificando esta variable desde programa cada vez que lo ejecute. Mediante una doble estructura for se van recorriendo todos los parámetros almacenados en la variable senspar{t} de forma que se evalúa con cada uno de ellos cada uno de los 4 objetivos (almacenados en la variable target{x}). Todos los resultados son guardados en una estructura (ac_fzart(x,t)), cuyos campos son los siguientes: ac_fzart(x,t).bien=bien; ac_fzart(x,t).mal=mal; ac_fzart(x,t).nsnc=nsnc;

45

Diseño de la nariz electrónica

ac_fzart(x,t).rateok=rateok; ac_fzart(x,t).historial=historial; Finalmente, se recogen bajo un fichero de texto 'ac_fzartresv3.txt' todas las variables de salida almacenadas en los diferentes campos mostrados anteriormente: target, par, bien, mal, nsnc, rateok y historial.

46

Medidas con aceites

3.- MEDIDAS CON ACEITES 3.1 INTRODUCCIÓN Con el fin de evaluar la eficacia de la nariz electrónica diseñada, se utilizará el sistema de olfato electrónico en el análisis del aroma desprendido por los aceites y determinará las "huellas aromáticas" características de los diversos tipos de aceites. Es en este capítulo, presentaremos en primer lugar, las medidas de prueba que se realizaron para escoger los mejores con mejor sensibilidad para nuestra aplicación. Después se mostrará todo el conjunto experimental de datos que ha supuesto este proyecto, dando una visión de la metodología experimental que se ha seguido. También se expondrá el calendario de medidas que se ha llevado a cabo. Posteriormente, se presentarán los resultados conseguidos tras aplicar la técnica de Componentes Principales (PCA) a todo el conjunto de datos experimentales. A continuación, se comprobará cómo se agrupan las medidas cuando se aplica una red de aprendizaje no supervisado FUZZY ART, tratando de comprobar que la red clasifica de forma similar a los resultados conseguidos mediante la técnica anterior (PCA). Seguidamente, se discutirán los resultados que se han alcanzado tras aplicar el algoritmo de la red neuronal FUZZY ARTMAP. Finalmente se analizará globalmente todos los resultados conseguidos, a partir de los cuales se determinará la viabilidad de nuestro equipo en las tareas objeto de este proyecto.

3.2 CONJUNTO DE MEDIDAS 3.2.1 Medidas de prueba Antes de realizar las medidas definitivas que formarán el conjunto experimental de datos, debemos seleccionar los sensores adecuados para nuestra aplicación. Al principio las medidas se efectuaron en una cámara, es decir, no se conectaban cámaras en serie. Este tipo de medidas (una sola cámara) se hicieron para todos los sensores (Taguchi, Fis-SP y Fis-SB). Más tarde se realizaron pruebas con dos cámaras conectadas para los sensores Taguchi y Fis-SP. En estas medidas se comprobó que un mismo modelo de sensor ubicado en las dos cámaras, presentaba una mejor sensibilidad en la primera cámara respecto a la segunda. Esto se debe a que la cámara nº 1 recibe el flujo directo del Headspace mientras que la cámara nº 2 lo recibe a través de la primera. También se comprobó que conectar una segunda cámara no afectaba a los sensores de la cámara nª 1. Finalmente, para comparar la respuesta de los sensores, se calculó el parámetro dgn (incremento de conductancia normalizada) ya que es una indicación de la sensibilidad de cada sensor. Se escogieron los aceites de tipo 1 y 4 para la elaboración de estas medidas de prueba, por ser el mismo tipo de aceite y para asegurarnos una cantidad que se necesitará para efectuar las medidas definitivas. A continuación se muestra una tabla con los resultados de estas medidas de prueba. También se destacan en negrita los sensores finalmente utilizados para el conjunto experimental de medidas:

47

ACEITE 1

APLICACIÓN

UBICACIÓN (Nº CÁMARA)

2 CÁMARAS (MEDIDA 2)

2 CÁMARAS (MEDIDA 2)

1 CÁMARA (MEDIDA 2)

TIPO SENSOR

1 CÁMARA (MEDIDA 1)

Medidas con aceites

ACEITE 4 TAGUCHI

TGS-882

1.229

-

1.469

1.699

Control de cocinas, vapores de alcohol

2

TGS-824 TGS-822

0.456 0.432

-

0.575 0.433

0.671 0.451

TGS-825 TGS-880

0.234 0.220

-

0.857 0.157

0.962 0.182

TGS-826 TGS-813

0.206 0.167

-

0.608 0.200

0.820 0.260

2 2 2 1 1

TGS-800

0.162

0.394

0.511

0.726

TGS-832 TGS-842 TGS-831

0.074 0.097

0.450 0.115 -

0.2127 0.428 0.189

0.299 0.650 0.321

Amoniaco Alcohol, tolueno, xileno Sulfato de hidrógeno Volátiles de alimentos Amoniaco LP-gas/propano (gases combustibles) Calidad del aire en interiores CFCs (R-134a, R-22) Gas natural/metano CFCs (R-21, R-22)

SP-31-00

0.734

-

-

-

SP-53-00 SP-32-00

0.221 0.098

-

-

-

Solventes orgánicos Amoniaco Alcohol

1 1

SB-30-00

0.295

0.121

-

-

-

SB-42A-00

0.133

0.107

-

-

SB-31-00

0.065

0.096

-

-

SB-11A-00

0.064

0.080

-

-

SB-19-00 SB-15-00

0.017 0.015

0.029

-

-

SB-41-00

-

0.015

-

-

Alcohol, solventes orgánicos HCFCs (R-134a, R-404, R-407) Solventes orgánicos (propósito general) Gases inflamables (propósito general) Hidrógeno Propano/butano HCFCs (R-22)

2 1 2 1

FIS-SP

FIS-SB

-

Tabla 3.1.- Resultados obtenidos de las medidas de prueba.

Nótese que en la última columna de la tabla anterior muestra la ubicación definitiva (cámara nº 1 o cámara nº 2) de los sensores escogidos para la realización del conjunto experimental de medidas.

48

Medidas con aceites

3.2.2 Diseño del conjunto experimental definitivo de medidas En el conjunto total de medidas que se han realizado para este proyecto podemos distinguir dos grandes bloques: 1.- Medidas para los 10 tipos de aceite 2.- Medidas de calibración Para el primer bloque, se realizaron un total de 100 medidas (10 para cada tipo de aceite) con un tiempo previsto de realización de 10 días. Finalmente duraron 17 días por problemas con el del Headspace Autosampler (obturación de la aguja que extrae la muestra de los viales, con lo cual la muestra de gas no circula por las cámaras de sensores). Como se ha dicho, se han realizado 10 medidas para cada tipo de aceite a diferentes temperaturas del Headspace Autosampler (temperatura del horno, del loop y de la manguera de salida): Ø 40 medidas a temperatura de 70 ºC (horno), 75 ºC (loop), 80 ºC (manguera) Ø 30 medidas a temperatura de 80 ºC (horno), 85 ºC (loop), 90 ºC (manguera) Ø 30 medidas a temperatura de 90 ºC (horno), 95 ºC (loop), 100 ºC (manguera) Más adelante se especificará el calendario de las medidas realizado. Por otro lado, el segundo bloque que constituye el conjunto global de medidas de este proyecto, son las denominadas medidas de calibración. Al final de cada ciclo de medidas correspondiente a 10 tipos de aceite, se hace una medida de calibración (0.5 µl de etanol), para ver si los sensores mostraban síntomas de desgaste, derivas temporales, o cualquier otro problema causado por las medidas. Gracias a estas calibraciones, se detectó el problema mencionado con el Headspace.

3.2.3 Calendario de medidas En este apartado se presentará de forma cronológica, mediante tablas, todo el conjunto de medidas llevadas a cabo. Hay que destacar que se hicieron un total de 100 medidas comprendidas entre las fechas 7/04/2001 y el 23/04/2001. El período inicial previsto era de diez días y por tanto habría terminado el 16/04/2001. Como consecuencia de los problemas tenidos con el Headspace, se repitieron los 5 últimos días de medida. Para la realización del calendario, se tuvieron en cuenta dos aspectos: 1) Las temperaturas del Headsapce, se repartieron entre los 10 días (previstos inicialmente) y sin ningún orden lógico. 2) La ciclo de medidas efectuados en un día (aceite 1, aceite 2, ..., aceite 10) variaban en cuanto al orden de la serie para el día siguiente (aceite 10, aceite 9, ..., aceite 1).

49

Medidas con aceites

Todo esto se hace para evitar que los sensores adquieran una cierta memoria a lo largo de este período de medidas. Véase a continuación, una primera tabla en la que se muestran las medidas previstas inicialmente: Fecha 7/04/01 8/04/01 9/04/01

Día de Medida 1 2 3

Temp de Medida ºC 70,75,80 80,85,90 90,95,100

10/04/01 11/04/01 12/04/01 13/04/01

4 5 6 7

80,85,90 70,75,80 90,95,100 90,95,100

14/04/01

8

70,75,80

15/04/01

9

70,75,80

16/04/01

10

80,85,90

Tipo de Observaciones Medida Aceite1-aceite10-calibración Aceite10-aceite1-calibración TGS 882 falla en todas las medidas Aceite1-aceite10-calibración Problema resuelto, aunque en algunas medidas tiene un comportamiento irregular Aceite10-aceite1-calibración Aceite1-aceite10-calibración Aceite10-aceite1-calibración Aceite1-aceite10-calibración Se nota una pérdida de sensibilidad de los sensores Aceite10-aceite1-calibración Clara pérdida de sensibilidad de los sensores Aceite1-aceite10-calibración En las calibraciones los sensores han perdido sensibilidad Aceite10-aceite1-calibración MEDIDA NO REALIZADA por la falta de sensibilidad de los sensores

Tabla 3.2.- Calendario de medidas inicialmente previsto para todas las mediciones de los aceites .

Realizando un cálculo de sensibilidades para todos los días de medidas, se observó que a partir del día 6, la sensibilidad de los sensores había disminuido ligeramente, por tanto, una vez solucionado el problema del Headpace, se repitieron los 5 últimos días de medida: Fecha 19/04/01 20/04/01 21/04/01 22/04/01

Día de Medida 11 12 13 14

Temp de Medida ºC 70,75,80 70,75,80 80,85,90 90,95,100

Tipo de Medida Aceite10-aceite1-calibración Aceite1-aceite10-calibración Aceite10-aceite1-calibración Aceite1-aceite10-calibración

23/04/01

15

90,95,100

Aceite10-aceite5-aceite3aceite 2-calibración

Observaciones REPETICIÓN DÍA 8 REPETICIÓN DÍA 9 REPETICIÓN DÍA 10 REPETICIÓN DÍA 7 Se han agotado aceites tipo 1 y 4 REPETICIÓN DÍA 6 Para los aceites 1 y 4 se aprovecharán las del día 6

Tabla 3.3.- Segundo calendario de medidas debido a los problemas del Headspace.

Nótese en la tabla anterior los días de medida 11, 12, 13, 14 y 15 serán considerados como días 8, 9, 10, 7 y 6 respectivamente y por lo tanto, sustituirán a las que se hicieron la primera vez. También se ha sustituido las medidas del día 2 correspondientes sólo al sensor que falló (TGS 882) por el día de medida 4, puesto que es el día más próximo realizado a la misma temperatura que el día de medida 2. Por lo tanto, tenemos de esta forma, un total de 100 medidas para los aceites, y 10 medidas de calibración. A continuación se mostrarán las gráficas temporales de calibración para los días de medida 1, 8 y 11 para comprobar visualmente el comportamiento antes, durante y después de la pérdida de sensibilidad de los sensores de la cámara nº 1 (se observó el mismo comportamiento en la cámara nº 2):

50

Medidas con aceites

mesura 1, caixa 1: calibracio etanol 0.5ul S1=TGS_813 S2=TGS_880 S3=TGS_832 S4=SP_31 S5=TGS_831 S6=SP_32 70

60

50

resistencia (k)

S1 40

S2 S3 S4 S5

30

S6

20

10

0 0

100

200

300

400

500

600

700

segons

Figura 3.1.- Medida de calibración del día 1 en cámara 1.

mesura 8, caixa 1, calibracio etanol 0.5ul S1=TGS_813 S2=TGS_880 S3=TGS_832 S4=SP_31 S5=TGS_831 S6=SP_32 70

60

resistencia (k)

50

S1 S2 S3 S4 S5 S6

40

30

20

10

0 0

100

200

300

400

500

600

700

segons

Figura 3.2.- Medida de calibración del día 8 en cámara 1. Los sensores han perdido sensibilidad

51

Medidas con aceites

mesura 8, caixa 1, calibracio etanol 0.5 ul S1=TGS_813 S2=TGS_880 S3=TGS_832 S4=SP_31 S5=TGS_831 S6=SP_32 80

70

60

resistencia (k)

50 S1 S2 S3 S4 S5 S6

40

30

20

10

0 0

100

200

300

400

500

600

700

segons

Figura 3.3.- Medida de calibración del día 11 en cámara 1.

A continuación, recordaremos el tipo de aceite con el que se ha trabajado en este proyecto, mostrado en la siguiente tabla:

Referencia 1 2 3 4 5 6 7 8 9 10

Descripción del aceite Variedad arbequina, viejo Variedad empeltre, viejo, de prensa Variedad picual campaña 2000/2001, hecho en Cataluña Variedad arbequina, viejo Variedad arroniz (Navarra), de prensa, defectuoso Variedad arroniz (Navarra), sin defecto Variedad empeltre (navarra) Variedad arbequina, campaña 2000/2001 D.O SIURANA Aceite con defecto de avinado y rancio Aceite con defecto de rancio

Tabla 3.4.- Descripción y tipo de aceite analizado

3.2.4 Medidas con la nariz electrónica 3.2.4.1 Introducción Según el calendario de medida, cada día se han realizado diez medidas de aceite y una medida de calibración. El aceite suministrado está envasado en botellas de 250 ml y para su mejor conservación se han guardado en la nevera. El día antes de las medidas, se preparan 10 viales con 10 ml de un tipo distinto de aceite, dejándose a temperatura 52

Medidas con aceites

ambiente. Para la calibración se utilizará un vial con 0.5 µl de ETANOL líquido ya que todos los sensores son sensibles a este contaminante. 3.2.4.2 Procedimiento de medida La medida de un vial (ya sea de aceite o de calibración) dura 90 minutos, de los cuales, 10 son para la adquisición de los sensores, 72.7 para el reposo de éstos, y el resto para la preparación del vial antes de adquirir la muestra. Estos tiempos se indican al introducir los parámetros del Headspace y del programa ACEITES.EXE. Los pasos a seguir para cada día de medida son los que se muestran a continuación: 1. Comprobar las alimentaciones de las cámaras de sensores (tensiones de control y de heater). 2. Comprobar que la botella de aire seco (entrada de aire del Headspace) marque 5 bar de presión. 3. Introducir los 11 viales en la bandeja del Headspace (10 de aceite y uno de etanol para la calibración). 4.

Programar el Headspace Autosampler con los siguientes parámetros: Ø Zone Temps (en ºC): -

OVEN: El que corresponda al día de medida: 70 ó 80 ó 90 LOOP: El que corresponda al día de medida: 75 ó 85 ó 95 TR. LINE: El que corresponda al día de medida: 80 ó 85 ó 100

Ø Event Times (en minutos): -

GC CYCLE TIME: 90.0 VIAL EQ. TIME: 5.0 PRESSUR. TIME: 1.0 LOOP FILL TIME: 1.0 LOOP EQ. TIME: 0.05 INJECT TIME: 10

Ø Vial Parameters: -

FIRST VIAL: número de la posición del primer vial a medir; puede ser el aceite de tipo 1 o 10 según el día de medida. LAST VIAL: número de la posición del último vial, que corresponderá a la calibración.

5. Ejecutar el programa ACEITES.EXE. en los dos ordenadores e introducir los parámetros pedidos teniendo en cuenta que éstos deben coincidir con los introducidos en el Headspace: - Número de pruebas a realizar: 11

53

Medidas con aceites

- Introducir el nombre de cada contaminante empezando por el aceite 1 o 10 (según el día de medida). - Tiempo de calentamiento del vial (en min.): 5 - Tiempo de presurización del vial (en min): 1 - Tiempo de llenado del loop (en min.): 0.05 - Tiempo de inyección (en min.): 10 - Tiempo de adquisición añadida (en min.): 0 - Tiempo de reposo (en min.): 72.7 - Temperaturas del horno, loop y manguera (en ºC) serán las que correspondan en cada día de medida 6. Al finalizar la introducción de todos los parámetros, el programa está en estado de espera para poder sincronizarse con las medidas del Headspace. 7. Pulsar la tecla START/STOP METOHD (inicio de método) en el Headspace para que empiece a analizar los viales. Comprobar que una vez introducido el vial en el horno, se ha realizado la sincronización. 8. Finalizadas todas las medidas, dejar un tiempo mínimo de 2 horas para que los sensores se recuperen después de la calibración y volver al paso 1 para la siguiente ciclo de medidas. Debemos ser lo más rigurosos posibles en el cumplimiento de todos y cada uno de los pasos expuestos anteriormente, de forma que mantengamos un procedimiento de trabajo.

3.3 RESULTADOS 3.3.1 Introducción En este último apartado se recogerán todos los resultados conseguidos, gracias a los cuales podremos determinar la viabilidad de nuestro equipo para poder cumplir con los objetivos expuestos al inicio. En primer lugar se presentarán los resultados conseguidos tras aplicar la técnica de Componentes Principales (PCA), para diferentes conjunto de datos experimentales (parámetros de la matriz global) tratando de obtener una primera visión gráfica de los resultados conseguidos. A continuación se aplicarán los algoritmos de redes de aprendizaje FUZZY ART (aprendizaje no supervisado) y FUZZY ARTMAP (método supervisado). Se utilizarán las versiones II para FUZZY ART y III para FUZZY ARTMAP. Estos algoritmos se aplicarán para el conjunto de datos y también nos darán una primera conclusión del éxito de nuestro objetivo. En un tercer punto, se seleccionarán los mejores parámetros calculando su resolución medía, y se volverán a aplicar las tres técnicas anteriores. También se realizará una selección de los mejores sensores con el mejor parámetro calculado.

54

Medidas con aceites

3.3.2 Resultados con análisis de componentes principales (PCA) 3.3.2.1 Introducción A continuación mostraremos una serie de representaciones PCA que nos ayudarán a interpretar los resultados obtenidos. Para facilitar la comprensión de los resultados que mostraremos a continuación, se recomienda al lector que preste atención a la siguiente nomenclatura que se ha elegido para identificar los datos representados.

LEYENDA DATOS EXPERIMENTALES NÚMERO, COLOR y EJEMPLO SIGNIFICADO 1er Número indica las temperaturas del 7: Temperaturas de 70, 75, 80 ºC Headspace (horno, loop y manguera) 8: Temperaturas de 80, 85, 90 ºC correspondientes a la medida 9: Temperaturas de 90, 95, 100 ºC 2ndo Número indica el tipo de aceite 1: Aceite tipo 1 analizado 2: Aceite tipo 2 ··· 9: Aceite tipo 9 0: Aceite tipo 10 3er Número indica el día de la medida 1: Día de medida 1 2: Día de medida 2 ··· 9: Día de medida 9 0: Día de medida 10 El color escogido para estas medidas, - Medidas en color VERDE = 70, 75, 80 ºC depende de la temperatura - Medidas en color AZUL = 80, 85, 90 ºC - Medidas en color ROJO = 90, 95, 100 ºC 902: Medida realizada a temperaturas de 90, 95, 100 ºC, correspondiente al aceite de tipo 10, efectuada el día 2 de medida Ejemplos: 758: Medida realizada a temperaturas de 70, 75, 80 ºC, correspondiente al aceite de tipo 5, efectuada el día 8 de medida Tabla 3.5.- Leyenda empleada para los datos EXPERIMENTALES.

Se ha seguido el mismo criterio para cada uno de los PCA que se representarán a continuación, por lo que se recomienda tener presente la tabla explicada anteriormente. 3.3.2.2 PCA para todo el conjunto experimental de datos Se han aplicado PCA para diferentes combinaciones de parámetros para todo el conjunto de datos experimentales. De los tipos de PCA (PCA 1-2, PCA 1-3 y PCA 2-3) obtenidos para cada combinación se presentarán los resultados para los PCA 1-2 ya que son los han obtenido mejores resultados, y por tanto nos centraremos en este tipo de PCA. Primero, se presentará una tabla en la que se comentará de forma general el comportamiento del análisis PCA de las combinaciones aplicadas, y finalmente se mostrarán las figuras PCA obtenidas para comprobar de forma gráfica los resultados explicados en dicha tabla. Nótese, que todos los parámetros escogidos corresponden a todos los sensores utilizados, es decir, los sensores Taguchi y Fis-SP. 55

Medidas con aceites

PRIMEROS RESULTADOS PCA COMBINACION DE PARÁMETROS

Sólo gf

Sólo dg

Sólo tm

Sólo dgn

Gf + dg

Gf + dg + tm

OBSERVACIONES 1. Aceites tipo 1, 5 y 10 tienden a una buena agrupación 2. Separación general de todos los aceites excepto el de tipo 10 entre 5 primeros días y 5 últimos, mediante una recta divisoria (ver figura 3.4). 3. Confusión entre aceites de tipo 2 y 9. 4. Confusión entre aceites 6 y 7. 5. Aceites tipo 4 y 8 próximos a tipo 1. Nótese, que el aceite de tipo 4 es de la misma clase que el 1. 1. Aceites tipo 1, 2, 3, 5, 9 y 10 se muestran agrupados en su mayoría de puntos. 2. Confusión 6 con 7. 3. Confusión de aceites del tipo 4 y 8 mostrándose próximos al tipo 1. 1. Aceites tipo 3 y 10 presentan una buena agrupación. 2. El aceite 8 tiende a una agrupación. 3. Confusión ente el resto de aceites en general. 1. Aceites tipo 1, 5 y 10 muestran una buena agrupación pero en diferentes casos de PCA. No se aprecia una separación entre aceites de mismo tipo. 2. Aceites de tipo 2 y 9 muestra una mejor agrupación y menor confusión entre ellos. 3. Confusión entre aceites de tipo 6 y 7. 4. Aceites tipo 4 y 8 muy próximos a 1. 1. Aceites tipo 1, 5, y 10 muestran una buena agrupación en algunos casos de PCA. 2. Se observa la separación mencionada para la mayoría de aceites. 3. Confusión entre aceites de tipo 2 y 9. 4. Aceites tipo 4 y 8 muy próximos al tipo 1. 5. Confusión entre el resto de los aceites. 1. Aceites tipo 1, 3, y 5 se discriminan bien en algunos casos de PCA observando en algunos casos la separación mencionada. 2. Confusión entre aceites de tipo 2, 9 y 10 en algunos casos de PCA 3. Confusión entre aceites de tipo 6 y 7. 4. Aceites tipo 4 y 8 muestran una mejor agrupación pero manteniéndose su proximidad al tipo 1. Tabla 3.6.- Primeros resultados tras la aplicación del PCA.

De los resultados obtenidos, no se extraen conclusiones muy satisfactorias, ya que por el momento, sólo se han conseguido diferenciar con cierto éxito los aceites de tipo 1, 3, 5 y 10. Nótese que el aceite de tipo 4 es del mismo tipo que el 1, y por lo tanto parece lógico que se confundan o estén muy próximos.

56

Medidas con aceites

A continuación se muestran algunas de las figuras PCA que muestran lo dicho anteriormente. Como se ha dicho anteriormente, nos centraremos en los resultados obtenidos por los PCA 1-2 ya que son los que han obtenido una mejor agrupación:

( gf )

Scores PC#1 vs PC#2 4

3

Confusión general resto de aceites

907 906 800

2

Aceite 10

709 708

Aceite1 PC#2

1

0

-1

986

810749 917 987 840 947 718 719 789748880 779 870 769 768860 788 778 937 738 830

Aceite 2

966 976 977 936 967 728 729 705

Aceite 9 926

820 799

927

890

996

Aceite 5

798

804 759 850 758

739

916 785 715 946 701 814745 913 765 775 795 812 844 711 983 943 884 741 842781 735 771882 864963 761 834 874 973 862 933 Aceite 1 832 872 731

997

Aceite 10

956 903

957

802 725

791 721822

Aceite 2

5 últimos días 824 894 892

-2

923

Aceite 9 993 755

751

854 953

Aceite 5

5 primeros días

852

-3 -5

0

5

10

PC#1

Figura 3.4.- PCA sólo del parámetro Gf

De la figura 3.4 se desprende que podemos establecer una separación clara entre los 5 primeros días de medida y los 5 últimos. Hay que tener en cuenta que los 5 últimos ciclos de medidas fueron realizados después de solucionar el problema con el Headspace, y por lo tanto, ha podido ser la causa de esta separación (es posible que la aguja que inyecta el vial estuviese un poco obturada en los 5 primeros ciclos ya que en los 5 siguientes se utilizó una aguja nueva). También aparece confusión entre los aceites 6 y 7 mencionada anteriormente en la tabla. Los aceites 2 y 9, aunque estén mezclados, se observa que tienden a agruparse.

57

Medidas con aceites

Scores PC#1 vs PC#2 3

( dgn )

802 804

907

903 800

2.5

Aceite 10 2 1.5

709

701

Confusión 4, 8 y proximidad con 1

906

708

705

PC#2

1

0.5 0 -0.5 -1

Aceite 9 892 791 721 711 741 771 761 781 882 862 795 812 785 842 822 993 872 894 715 913 983 814 943 765 916 745 844 963 718 719 775 884 864 749 748788986 731 810 874973 751 824 923 946 725 789 987778 768 917 880 840 728 947 966 933 832 769 779 976 735 860967 Aceite 1 798 799 738 834 977 870 936 729 937 820 926 830 927 Aceite 3

852 890953 996 854 755

997

Aceite 2

739

758

Confusión 6, 7

-1.5

Aceite 5 759

956 850

-2 -5

0

5

957

10

PC#1

Figura 3.5.- PCA sólo del parámetro Dgn

En la figura con el parámetro Dgn, se aprecia una distinción del aceite 3, y la confusión de los aceites 4 y 8, que están próximos al aceite 1. Es quizá uno de los mejores resultados de los PCA analizados en cuanto a numero de aceites discriminados, sin embargo no es una solución óptima para el objetivo de nuestro proyecto. A continuación se muestra la figura PCA con el parámetro Tm. Aquí se aprecia la agrupación de 3 tipos de aceites, el 3, el 8 y el 10. El resto no muestra ninguna tendencia aunque se dan casos aislados de agrupación de un número pequeño de medidas de un mismo aceite.

58

Medidas con aceites

Scores PC#1 vs PC#2

( tm )

2.5 705

739

Confusión general del resto de aceites

709

2

907 906

Aceite 10 1.5

708800

701

830

903 957

802

1

890 997 820 996 850

798

PC#2

0.5

0 -0.5 -1

789

804 799

759 728 758 894 892 953729 725 854

936 987 986

926

976 814 977 967

956 927 719

870

933 880

966

751993 791

795 721

973 872 761711

946 862781 963

834

738

Aceite 8

788

715 860 947 840

748 822 741 755 779 778 769 745 852 768874775 864 923 824

937

832

Aceite 3

913 785 916

735

983 810 917 731 882

749 842 844 884

-1.5

771

765

718

-2

812 943

-2.5 -4

-2

0

2

4

6

8

10

12

PC#1

Figura 3.6.- PCA sólo del parámetro Tm

En la siguiente figura se verá otro resultado en el que consigue agrupar con cierto éxito 6 tipos de aceites, el 1, 2, 3, 5, 9 y 10. La confusión de tipos 6 y 7 sigue manteniéndose, como también la proximidad de los tipos 4 y 8 con el tipo 1 y la confusión entre estos dos. Nótese que los mejores resultados PCA con parámetros únicos han sido Dgn y Dg. Mas adelante, esto se comprobará cuando analicemos las mejores variables de la matriz global en cuanto a su resolución.

59

Medidas con aceites

Scores PC#1 vs PC#2

( dg )

4 907

3 800 906

903

804

2

Aceite 10

708709

802

PC#2

705701

1

Confusión 4 con 8 y 6 con 7

Aceite 9

0

711 785 795 715 812 741 814 913 718 916 842 745 771 719 781 765 761 986 749 748 788844 943 882 775 983 810 768 789 884 987 862 864 963 791 946 778 872 917 880 874721 973 728 840 966 822 725 731 947 769 779 860 738 977976 870 967 735 933 832 729 Aceite 1 936 834937 830

Aceite 3

894 824892 798 799 923 820 751 927

739

993 997 996

890 926 755 852 758

-1

953 854

Aceite 2

759

Aceite 5 850

-2 -5

0

5

956 957

10

PC#1

Figura 3.7.- PCA sólo del parámetro Dg

En esta figura se observa también la proximidad de los aceites 2 y 9 y la confusión de algún de ellos. En las siguientes figuras se mostrarán el resultado de la combinación de diversos parámetros de la matriz global. Se analizarán el conjunto de parámetros gf + dg y el conjunto gf + dg + tm. De estos dos conjuntos, éste último es el que mejor resultado se ha obtenido logrando discriminar con cierto éxito los aceites 4 y 8, que en los otros parámetros se mostraban imposibles de distinguir. Pese a esto, se continúa con las confusiones mencionadas para los casos anteriores.

60

Medidas con aceites

Scores PC#1 vs PC#2

( gf + dg )

5 907

4

906

Confusión resto de aceites

800

3

709 708

Aceite 10

PC#2

2

Aceite 1 1

0

-1

804

986 705 966 976 987 810 749 917840 947 718 748 719 789 880 977 788 768 778 870 936 967 779 769 860 799 728 820 701 890 927 738 937 729 802 830 798 916 785 715 814 739 913745 765 946 812 775 711 795 844983 741 Aceite 2 842 781 884 771 882943 735 864 761 874 963 862 834 973 872 731832 933 725 791 822

721

824

926

997

996

956 758 759

850

957

Aceite 5

894 993

892923

-2

903

755 751 854 953

-3 -6

852

-4

-2

0

2

4

6

8

10

12

14

PC#1

Scores PC#1 vs PC#2 4

2

0

PC#2

-2

( gf + dg + tm )

711

791 741 771 795 701 749 721 719 761 705 728 842748 872 779 751 768 Aceite 5 822 778 Aceite 1 718 715 745 844 775 709798 946 799 943 814 729 725 824 765 769 892 781 923 874973 708 894802 864 862 916 840 993 810 812 785 758 963 947 903 820 913 917788 804 759 852 860 927 789882 755 953 890 854 967 977 Aceite 8 870 800 976 996 983 731 997 884 926 966 906 850 907 880 987 986 957

Aceite 4 738

-4

956

933 735 937

-6

Confusión 6,7

Confusión 2, 9, 10

832 936

-8

834 830

Aceite 3 -10 739

-12 -10

-5

0

5

10

15

PC#1

Figuras 3.8. (superior) y 3.9 (inferior) - PCA con parámetros Gf+Dg y Gf+Dg+Tm respectivamente

61

Medidas con aceites

Por el momento sólo podemos sacar las siguientes conclusiones de los resultados PCA: -

En general, se agrupan con cierto grado de error los aceites de tipo 1, 5, 10 y en algunos casos el de tipo 3 y 8. En la mayoría de casos se observa una confusión entre aceites 2 y 9 Se observa una confusión entre aceites de tipo 6 y 7 Los aceites 4 y 8 se confunden además de estar próximos al aceite de tipo 1. Nótese que el aceite de tipo 4 es del mismo tipo que el 1. Los parámetros con mejor resultado son gf y dgn. La mejor combinación de parámetros es gf+dg+tm por la discriminación entre los aceites 4 y 8.

3.3.2.3 Cálculo de la resolución de las agrupaciones de los PCA A continuación se calculará el factor medio para cada agrupación obtenidas con las diferentes combinaciones de parámetros partiendo de los scores obtenidos en los PCA. Esto nos permitirá saber que combinación de parámetros agrupa mejor los tipos de aceites, y contrastarlo con las representaciones PCA. Para calcular el factor medio de un parámetro o combinación de ellos, primero hay que calcular otros valores: 1. Cálculo de la centroide de cada uno de los 10 aceites: 10

_

x=



10

score 1( i )

_

y=

i =1

10

∑ score

2 (i )

i =1

10

(1)

2. Cálculo de la dispersión de cada aceite: 10

di =

∑ j =1

( X i centroide − X j ) 2 + (Yi centroide − Y j ) 2 (2)

10

3. Cálculo de la dispersión de la centroide de cada aceite respecto al resto: 10

dci =



dist centroidei − dist centroide j

j =1

(3)

10

4. Factor de resolución para un aceite: fi =

dci

(4)

di

62

Medidas con aceites

5. Cálculo del factor medio: 10

f =

∑ fi i =1

(5)

10

A continuación mostramos una tabla con los resultados obtenidos al ejecutar el fichero FACTOR_MEDIO.M después de cada PCA realizado:

PARÁMETROS Sólo gf Sólo dg Sólo tm Sólo dgn Gf + dg Gf + dg + tm

PCA 1-2 1.658 1.826 1.817 1.865 1.720 1.844

PCA 1-3 1.645 1.624 1.792 1.612 1.634 1.800

PCA 2-3 0.6371 1.694 1.037 1.570 0.855 1.090

Tabla 3.7.- Factor medio de los parámetros analizados en PCA para 10 clases.

Si nos centramos en el PCA 1-2 (correspondientes al score 1 y escore 2) ya es el que obtiene mejores resultados de resolución, observaremos que el mejor parámetro es dgn seguido del parámetro dg. Esto nos confirma lo dicho anteriormente en las figuras PCA mostradas. Por el momento son los parámetros que dan mejores resultados, aunque no constituyen una solución suficientemente buena para nuestro propósito. También se observa que el mejor conjunto de parámetros es la combinación gf+dg+tm.

3.3.3 Resultados con la red neuronal FUZZY ART 3.3.3.1 Introducción Mediante este tipo de red neuronal no supervisada, trataremos de ver cómo se nos clasifican, de forma espontánea, las diferentes medidas que le presentamos. Hay que especificar que para esta red los datos de entrada deben estar normalizados entre 0 y 1, y de forma ordenada, según el target que deseemos alcanzar. Por ejemplo, si tratamos de clasificar los aceites por tipos, debemos tener 10 matrices, donde cada una de ellas contendrá los valores correspondientes a un tipo de aceite: por lo tanto nuestro target tendrá 10 clases distintas. La filosofía seguida para programar el algoritmo que implementa esta red ha sido la siguiente: Se calcula el vigilance parameter (ro) tal que genere el número de clases deseadas, según el tipo de clasificación que estemos llevando a cabo. En nuestro caso, deberemos encontrar el vigilance parameter que nos genere tan sólo 10 clases, uno para cada tipo. En el siguiente apartado, analizaremos los resultados conseguidos con esta topología de red al tratar de cumplir con los objetivos expuestos en la introducción de este tercer capítulo. Se dará una breve descripción de los parámetros de

63

Medidas con aceites

entrada empleados, cual es su target, y presentaremos una tabla en la que recogeremos los mejores resultados conseguidos. Finalmente, trataremos de reproducir mediante esta topología de red algunos de los comportamientos dominantes observados en los PCA anteriores. 3.3.3.2 Fuzzy ART del conjunto experimental Para esta topología se ha tomado como datos de entrada todo el conjunto experimental de medidas a excepción de las calibraciones, constituyendo un total de 100 medidas a clasificar (100 medidas para cada parámetro gi, gf, dg,... etc.) En el siguiente punto, trataremos de dar una breve descripción de los parámetros de entrada que se han analizado, así como de los targets que se ha pretendido alcanzar. Por otro lado, se comentarán el significado de las variables de salida, con la finalidad de especificar el criterio seguido para medir la tasa de aciertos de esta topología de red neuronal. Finalmente presentaremos una tabla que recoge los resultados conseguidos, y las conclusiones que se desprenden tras la aplicación de Fuzzy ART a nuestro conjunto de datos experimentales. -

Parámetros de entrada y targets

No existe ningún criterio determinista que nos asegure que parámetros de entrada (gi, dgn, etc.) nos conducirán a unos resultados mejores. Por lo tanto nos deberemos basar en nuestra propia experiencia para determinar que parámetros escogeremos y que métodos aplicaremos. Con la finalidad de acotar el número de combinaciones posibles de parámetros de entrada a la red, se ha optado por aplicar los siguientes:

COMBINACIONES

PARÁMETROS

Gf Dg PARÁMETROS

Dgn

AISLADOS

Tm Gi Gi + gf Gf + dg Gi + dg Gf + tm Gf + dg + tm Dg + dgn + tm

2 PARÁMETROS

3 PARÁMETROS

Tabla 3.8.- Parámetros de entrada empleados para Fuzzy ART

Aplicaremos a la tabla anterior a cada uno de los siguientes targets que se han intentado alcanzar: 64

Medidas con aceites

1.- Clasificación por tipos de aceites en 10 clases : -

Clase 1 = Aceite de tipo 1 Clase 2 = Aceite de tipo 2 ··· Clase 10 = Aceite de tipo 10

2.- Clasificación por tipos de aceites en 20 clases: -

Clase 1 = Aceite de tipo 1 medido en los 5 primeros días Clase 2 = Aceite de tipo 1 medido en los 5 últimos días Clase 3 = Aceite de tipo 2 medido en los 5 primeros días Clase 4 = Aceite de tipo 2 medido en los 5 últimos días ··· Clase 19 = Aceite de tipo 10 medido en los 5 primeros días Clase 20 = Aceite de tipo 10 medido en los 5 últimos días

Por último, para poder cuantificar la tasa de aciertos de nuestra red, se ha calculado una variable (rate ok), la cual compara un vector que contiene las clases calculadas por la red (act), con otro vector que contiene las clases reales (sal_aux). Suma todas las clases coincidentes, las multiplican por 100 y las divide por el total de medidas (100), consiguiendo así un tanto por ciento. Otra variable de salida que mostramos, es el valor del vigilance parameter (ro), que nos genera el número de clases deseados, según el target que estemos analizando.

-

Resultados Fuzzy ART del conjunto experimental

En la siguiente tabla se recogen los resultados conseguidos tras aplicar el algoritmo Fuzzy ART a todo el conjunto experimental de datos. Teniendo en cuenta todo lo citado hasta el momento y ejecutando el código (FUZZY_ART.M) anexado a este proyecto, con relación a los resultados obtenidos de la tabla 3.9 podemos sacar las siguientes conclusiones: -

Los valores obtenidos para los dos targets son insuficientes para poder realizar una discriminación con éxito ya que no se llega no al 50% de la tasa de aciertos.

-

Para el target de 10 clases, el mejor parámetro aislado es gf y para el target de 20 clases es dgn. Estos parámetros son los que se han obtenido mejores resultados en los PCA.

-

Se observa que en general se obtienen mejores resultados con el target de 10 clases que con el de 20 clases.

65

Medidas con aceites

PARÁMETROS DE ENTRADA Parámetros

Target

Gf Dg Dgn Tm Gi Gi + gf Gf + dg Gi + dg Gf + tm Gf + dg + tm Dg + dgn + tm Gf Dg Dgn Tm Gi Gi + gf Gf + dg Gi + dg Gf + tm Gf + dg + tm Dg + dgn + tm

10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 20 clases 20 clases 20 clases 20 clases 20 clases 20 clases 20 clases 20 clases 20 clases 20 clases 20 clases

PARÁMETROS DE SALIDA Rate Ok Ro (%) 25 0.8 23 0.7 20 0.7 10 0.8 11 0.9 12 0.7 27 0.7 24 0.7 40 0.8 23 0.8 18 0.8 5 0.8 8 0.8 28 0.9 16 0.9 5 0.9 6 0.8 5 0.8 10 0.8 38 0.9 5 0.8 5 0.8

Tabla 3.9.- Resultados conseguidos tras aplicar Fuzzy ART al conjunto experimental de datos

3.3.4 Resultados con la red neuronal FUZZY ARTMAP 3.3.4.1 Introducción Mediante la aplicación de este tipo de red neuronal supervisada trataremos de demostrar la viabilidad de nuestro sistema de olfato electrónico en la discriminación de los tipos de aceite, con la finalidad de encontrar futuras aplicaciones comerciales para la nariz electrónica que pretendemos implementar. En el siguiente punto, pasaremos a discutir los resultados que se han alcanzado tras aplicar el algoritmo de la red neuronal FUZZY ARTMAP a todo el conjunto experimental de datos que serán analizados en su tercera versión de programación. 3.3.4.2 Fuzzy ARTMAP del conjunto experimental A continuación analizaremos todo el conjunto de datos experimental, es decir, un total de 100 medidas, aplicando la topología de red neuronal Fuzzy ARTMAP. El método de entrenamiento y evaluación que hemos aplicado ha sido un leave one out. 66

Medidas con aceites

-

Resultados Fuzzy ARTMAP del conjunto experimental

A continuación, mostraremos bajo una única tabla todos los parámetros analizados mediante este tipo de red, dando una idea general de los resultados obtenidos: PARÁMETROS DE ENTRADA Parámetros

Target

Gf Dg Dgn Tm Gi Gi + gf Gf + dg Gi + dg Gf + tm Gf + dg + tm Dg + dgn + tm

10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases

PARÁMETROS DE SALIDA Rate Ok (%) 42 56 60 62 0 22 50 26 47 54 61

Tabla 3.10.- Resultados conseguidos tras aplicar Fuzzy ART_MAP al conjunto experimental de datos

A diferencia de los resultados conseguidos con la topología de red Fuzzy ART y PCA, al aplicar una ANN supervisada hemos conseguido mejorar los resultados, siendo sus tasas de aciertos las más elevadas. Realizando una confusion matrix de todos los parámetros analizados, es decir, para cada combinación de parámetros realizar una matriz de dimensiones 10 x 10 elementos en la que sus columnas represente el valor real del tipo de aceite, y sus filas la clasificación realizada mediante este tipo de red, obtenemos las siguientes conclusiones: -

En general, se agrupan con bastante éxito los aceites de tipo 1, 3, 5 y 10

-

Se observa una clara confusión entre aceites 2 y 9

-

Confusión entre aceites 6 y 7

-

El aceite de tipo 4 es confundido con el de tipo 1, pero hay que tener en cuenta de que se trata del mismo aceite.

-

El aceite 8, tiende a agruparse en algunos parámetros (dg, dgn, gf+dg y gf+dg+tm) y en el resto de parámetros, se confunde con los tipos 1, 4 y 3

De las conclusiones anteriores, podemos afirmar lo dicho anteriormente con las técnicas PCA y FUZZY_ART: A pesar de que esta última red empleada ha conseguido mejores resultados, no son del todo satisfactorias. Nótese, que hasta ahora los parámetros analizados corresponden a todos los sensores utilizados en este proyecto, es decir, cuando se analizaba un parámetro en concreto se 67

Medidas con aceites

consideraban las medidas experimentales de todos los sensores correspondientes a ese parámetro en cuestión (cada parámetro ocupa en la matriz global 12 columnas correspondientes a los 12 sensores utilizados). Por lo tanto, no se ha llevado a cabo una selección de las mejores variables (5 parámetros x 12 sensores = 60 variables), ni tampoco una selección de los mejores sensores. A continuación, se procederá a una selección de las mejores variables y sensores, aplicando de nuevo todas las técnicas empleadas en este proyecto, empezando por la FUZZY_ARTMAP ya que es la que ha dado los mejores resultados, y para el análisis PCA y la red FUZZY_ART, se analizarán los mejores parámetros obtenidos por la FUZZY_ARTMAP.

3.3.5 Selección de las mejores variables y mejores sensores 3.3.5.1 Introducción La matriz global de nuestro sistema consta de 60 variables agrupadas en 5 parámetros: gi, gf, dg, dgn y tm. Cada uno de ellos corresponde a un sensor diferente (12 sensores por parámetro). Tal y como se ha visto anteriormente, los resultados obtenidos hasta el momento no alcanzan el nivel de éxito esperado, por lo que se volverá a aplicar las mismas técnicas utilizadas, pero realizando previamente una selección de los mejores sensores y variables. Para realizar el proceso de selección del mejor sensor, se ha elegido como parámetro de comparación el dgn ya que nos da una idea clara de la sensibilidad media de cada sensor. Para la selección de las mejores variables, se ha calculado para cada una de ellas su resolución media:

res =

1 10 1 10

∑ (medida _ aceite _ j − var )

aceite _ 10

2

j =aceite _ 1

(

)

 1 2    medida _aceite_j_ k media_acei te_j ∑ ∑   j = aceite1  10 k = medida_ aceite _ j _ 1  aceite10

medida_aceite_j_10

(6)

Donde: medida _ aceite _ j = var =

1 10 ∑ medida _ aceite _ j _ i 10 i =1

(7)

1 100 ∑ medida _ i 100 i =1

(8)

Se ha realizado un programa RES_VAR.M que calcula la resolución para los 60 variables y presentan por pantalla todas las variables ordenadas de mayor a menor resolución. A continuación se muestran los resultados obtenidos:

Columna 46 Variable Dgn : 8.725 (S10) Columna 31 Variable Dg : 8.045 (S 7)

68

mayor resolución

Medidas con aceites Columna 47 Variable Dgn : 7.681 (S11) Columna 48 Variable Dgn : 7.367 (S12) Columna 50 Variable Tm : 7.318 (S 2) Columna 19 Variable Gf : 7.074 (S 7) Columna 33 Variable Dg : 6.822 (S 9) Columna 32 Variable Dg : 6.701 (S 8) Columna 45 Variable Dgn : 6.439 (S 9) Columna 36 Variable Dg : 6.427 (S12) Columna 43 Variable Dgn : 6.163 (S 7) Columna 52 Variable Tm : 6.012 (S 4) Columna 51 Variable Tm : 5.884 (S 3) Columna 39 Variable Dgn : 5.408 (S 3) Columna 38 Variable Dgn : 5.246 (S 2) Columna 26 Variable Dg : 5.166 (S 2) Columna 44 Variable Dgn : 5.107 (S 8) Columna 34 Variable Dg : 4.874 (S10) Columna 14 Variable Gf : 4.851 (S 2) Columna 49 Variable Tm : 4.771 (S 1) Columna 53 Variable Tm : 4.770 (S 5) Columna 27 Variable Dg : 4.483 (S 3) Columna 40 Variable Dgn : 4.478 (S 4) Columna 21 Variable Gf : 4.394 (S 9) Columna 42 Variable Dgn : 4.372 (S 6) Columna 28 Variable Dg : 4.266 (S 4) Columna 60 Variable Tm : 4.258 (S12) Columna 35 Variable Dg : 4.184 (S11) Columna 24 Variable Gf : 4.020 (S12) Columna 16 Variable Gf : 4.007 (S 4) Columna 13 Variable Gf : 3.988 (S 1) Columna 25 Variable Dg : 3.984 (S 1) Columna 58 Variable Tm : 3.905 (S10) Columna 15 Variable Gf : 3.615 (S 3) Columna 37 Variable Dgn : 3.597 (S 1) Columna 20 Variable Gf : 3.219 (S 8) Columna 29 Variable Dg : 2.703 (S 5) Columna 22 Variable Gf : 2.671 (S10) Columna 57 Variable Tm : 2.535 (S 9) Columna 17 Variable Gf : 2.471 (S 5) Columna 59 Variable Tm : 2.370 (S11) Columna 55 Variable Tm : 2.354 (S 7) Columna 41 Variable Dgn : 2.211 (S 5) Columna 23 Variable Gf : 1.767 (S11) Columna 56 Variable Tm : 1.701 (S 8) Columna 30 Variable Dg : 0.552 (S 6) Columna 54 Variable Tm : 0.307 (S 6) Columna 18 Variable Gf : 0.294 (S 6) Columna 12 Variable Gi : 0.032 (S12) Columna 3 Variable Gi : 0.026 (S 3) Columna 10 Variable Gi : 0.023 (S10) Columna 2 Variable Gi : 0.023 (S 2) Columna 11 Variable Gi : 0.023 (S11) Columna 1 Variable Gi : 0.018 (S 1) Columna 9 Variable Gi : 0.013 (S 9) Columna 7 Variable Gi : 0.011 (S 7) Columna 6 Variable Gi : 0.009 (S 6) Columna 4 Variable Gi : 0.008 (S 4) Columna 8 Variable Gi : 0.003 (S 8) Columna 5 Variable Gi : 0.003 (S 5)

menor resolución

Figura 3.10.- Resolución media obtenida para las 60 variables

69

Medidas con aceites

Este mismo programa realizado, también presenta por pantalla una lista de sensores ordenados según el parámetro dgn. Puesto que tenemos diferentes días de medida para un mismo sensor, el programa calcula el valor medio del parámetro dgn correspondiente a un sensor, y a partir de los valores medios hace una ordenación de mayor a menor: Ranking del sensor con mejor valor medio de Dgn 1 --> S 4 : 4.163 2 --> S 6 : 1.358 3 --> S 2 : 1.156 4 --> S 3 : 0.961 5 --> S 7 : 0.866 6 --> S 8 : 0.765 7 --> S10 : 0.677 8 --> S 1 : 0.643 9 --> S 5 : 0.600 10 --> S 9 : 0.542 11 --> S11 : 0.519 12 --> S12 : 0.397 Figura 3.11.- Ordenación de mayor a menor valor medio de dgn

Con los resultados obtenidos, tanto de las mejores variables como de los mejores sensores se aplicará de nuevo la red FUZZY_ARTMAP para las siguientes combinaciones de variables y sensores:

TIPO

MEJORES VARIABLES

MEJORES SENSORES

COMBINACIONES

2 primeras variables 5 primeras variables 10 primeras variables 15 primeras variables 20 primeras variables 40 primeras variables 48 primeras variables S4 + S6 S2 + S4 + S6 S2 + S3 + S4 + S6 + S7 + S8

Tabla 3.11.- Combinaciones de variables y sensores

3.3.5.2 Resultados Fuzzy ARTMAP A continuación, mostraremos bajo una única tabla todos los parámetros analizados mediante este tipo de red, dando una idea general de os resultados obtenidos:

70

Medidas con aceites

PARÁMETROS DE ENTRADA Parámetros

Target

2 primeras variables 5 primeras variables 10 primeras variables 15 primeras variables 20 primeras variables 40 primeras variables 48 primeras variables S4 + S6 S2 + S4 + S6 S2 + S3 + S4 + S6 + S7 + S8

10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases 10 clases

PARÁMETROS DE SALIDA Rate Ok (%) 61 75 50 61 59 58 54 30 29 46

Tabla 3.12.- Resultados conseguidos tras aplicar Fuzzy ART_MAP

Se observa que el mejor resultado ha sido para las 5 primeras variables, dando un resultado del 75% de aciertos. Comparando los resultados obtenidos con los de la tabla 3.10, nos daremos cuenta de la importancia de hacer una selección de variables antes de aplicar cualquier técnica ya sea PCA o Redes Neuronales. Si realizamos la confusion matrix para el mejor parámetro obtenido (o sea las 5 primeras variables) obtendremos lo siguiente:

1 2 3 4 5 6 7 8 9 10

1 9 0 0 0

2 0 7 0 0

3 0 0 9 0

4 0 0 0 9

5 0 0 0 0

6 0 0 0 0

7 0 0 0 1

8 1 0 0 0

9 0 1 0 0

10 0 0 0 0

0 0 0 0 0

0 0 0 0 2

0 0 0 0 0

0 0 0 0 0

7 0 0 0 2

0 4 5 0 0

0 3 4 0 1

0 0 0 8 0

2 0 1 0 5

0 0 0 0 0

0

0

0

0

0

0

0

0

0

9

Figura 3.12.- Confusion matrix para las 5 primeras variables

Nótese que no se ha utilizado las diez primeras clasificaciones que genera Fuzzy Artmap ya que no están normalizados como el resto, por lo tanto en la confusion matrix se han representado 90 clasificaciones. 71

Medidas con aceites

Podemos comprobar en la figura anterior, como la mayoría de aceites se sitúa en la diagonal de la confusion matrix. También se observa de nuevo la confusión de entre aceites 6 y 7, y entre los aceites 2 y 9. A pesar de esto, se puede considerar una buena solución para la discriminación de los aceites. 3.3.5.3 Resultados Fuzzy ART Como se vera a continuación, los resultados obtenidos con este tipo de red no tienen tanto éxito como la red anterior . Véase la siguiente tabla con los resultados para 10 clases y 20 clases (separación entre los 5 primeros días y los 5 siguientes de medida):

PARÁMETROS DE ENTRADA

PARÁMETROS DE SALIDA Rate Ok Rate Ok (%) 10 clases (%) 20 clases 18 8 21 6 22 14 28 16 21 17 24 25 27 5 23 9 25 5 25 5

Parámetros 2 primeras variables 5 primeras variables 10 primeras variables 15 primeras variables 20 primeras variables 40 primeras variables 48 primeras variables S4 + S6 S2 + S4 + S6 S2 + S3 + S4 + S6 + S7 + S8

Tabla 3.13.- Resultados conseguidos tras aplicar Fuzzy ART a la selección de variables y sensores

En la tabla anterior, se observa que ningún parámetro consigue un 50 % de éxito. De nuevo se comprueba que la red de tipo fuzzy artmap (supervisada) obtiene mejores resultados para esta aplicación que la red fuzzy art (no supervisada). También se observa que se obtienen mejores resultados para 10 clases que para 20. 3.3.5.4 Resultados PCA En este punto se va realizar el análisis PCA para el mejor resultado obtenido de la red fuzzy artmap, o sea, de las 5 primeras variables. En la siguiente figura, se vuelve a observar la confusión con los aceites 6 y 7. Los aceites 2 y 9 se muestran más agrupados que en otros casos de PCA. También se vuelve a comprobar la proximidad de los aceites 4 y 8 con el aceite 1, aunque en este caso no hay tanta confusión y los conjuntos de estos 3 aceites están más agrupados. En definitiva, este PCA presenta una mejor agrupación de aceites respecto a los PCA anteriores. Esto se puede comprobar calculando la resolución (factor medio) del conjunto de agrupaciones como se hizo anteriormente en el primer PCA.

72

Medidas con aceites

Scores PC#1 vs PC#2

( 5 primeras var. )

1.5

Aceite 4

1 0.5 0

771 741 711 749 761 Aceite 1 842 715 769 844 872 874 946 795 973 748 768 778 719 840 779 916 765 943 775 745 718 789 967 785 814 864 862 963 913 917 860976 812 947 781 966 870 810 983 977 882

Aceite 9 791 721 728

705 822 725

701 824

729

798

820

Aceite 2

923 894751 892 799 926 927

758 993

709

755 759 854953 852 890996

957 956 802 997 850

731

PC#2

-0.5

788 884 880

Aceite 8

Aceite 5

708

804

Aceite 10 986 987

-1

903

906

Confusión 6,7

933

800

907

738

-1.5

937 735936 832

Aceite 3

-2 834

-2.5

830

-3 -3.5 -3

739

-2

-1

0

1

2

3

4

5

PC#1

Figura 3.13.- PCA con las 5 primeras variables

A continuación mostramos una tabla comparativa, con las mejores resoluciones de los primeros PCA y obtenida después de realizar la selección de variables:

PARÁMETROS

PCA 1-2

Factor medio antes de la selección de mejores variables de la matriz global

Sólo Dg Sólo Tm Sólo Dgn

1.826 1.817 1.865

Factor medio después de la selección

5 primeras variables

1.916

Tabla 3.14.- Factor medio de los parámetros analizados en PCA para 10 clases.

En la tabla anterior, se comprueba que se obtienen las mejores resoluciones para las 5 primeras variables.

73

Conclusiones

4.- CONCLUSIONES Finalizado este proyecto, podemos concluir que es viable la utilización de una nariz electrónica para monitorizar la calidad del aceite de oliva. Además, estos instrumentos son asequibles económicamente ya que se han utilizado sensores y componentes electrónicos comerciales. Como estudio previo al diseño definitivo de la nariz, se realizaron unas medidas de prueba con las que se comprobó que los sensores con mejor respuesta para esta aplicación son los Taguchi y Fis-SP, descartando los Fis-SB. Realizando una selección de las mejores variables del conjunto experimental definitivo de medidas, y centrándonos en las 5 mejores variables, los Taguchi resultaron ser los mejores sensores. Realizando una clasificación de sensores con mejor Dgn tenemos que los 2 Fis-SP utilizados aparecen en primera posición. Para llegar a esta conclusión, se hizo un estudio de sensibilidad y de discriminación. La siguiente tabla muestra los resultados obtenidos, donde se comprueba que los sensores con mayor resolución son los Taguchi, y con más sensibilidad los Fis-SP:

Mayor discriminación

Mayor sensibilidad (Dgn) SP-31 SP-32 TGS-880 TGS-832 TGS-822

TGS-800 TGS-822 TGS-824 TGS-842 TGS-880

Tabla 4.1.- Resultados tras la selección de mejores variables y sensores

En cuanto al diseño experimental, se ha constatado la importancia de la calibración después de un ciclo de medidas. Además de controlar las posibles derivas temporales y síntomas de desgaste de los sensores, estas medidas han servido para avisar de un mal funcionamiento de algún otro elemento de medida del equipo (en nuestro caso el Headspace) Desde el punto de vista del procesado de datos, cabe destacar la importancia de la selección de variables. Los resultados obtenidos antes y después de realizar dicha selección demuestran que hay ciertas variables del conjunto experimental de datos (matriz global de parámetros) que aportan poca o nula información para nuestro propósito, e incluso pueden suponer un elemento interferente para las otras variables. Mediante la topología de red neuronal Fuzzy ARTMAP, en su tercera versión de programación, se ha alcanzado una tasa del 75 % en la clasificación de los 10 aceites tras una selección de variables y escogiendo como parámetro de entrada las cinco mejores. Sin embargo hay que destacar que con los resultados obtenidos, se han visto similitudes entre los aceites de tipo 6 y 7 (arroniz de Navarra sin defecto y empletre de Navarra respectivamente), los tipos 2 y 9 (empletre viejo de prensa y aceite con defecto de avinado y rancio respectivamente) y entre el 5 y 9 (arroniz de Navarra de prensa defectuoso y aceite 74

Conclusiones

con defecto de avinado y rancio respectivamente). Realizando un análisis PCA para dicho parámetro de entrada se confirman los resultados obtenidos con FUZZY ARTMAP. Mediante la red neuronal FUZZY ART no se han conseguido resultados suficientemente aceptables para nuestro propósito.

75

ANEXOS

5.- ANEXOS ANEXO A: PROGRAMA DE ADQUISICIÓN Y CONTROL A continuación se presenta el código realizado en lenguaje C, para adquirir la respuesta de los sensores. /*----------------------------------------------------------------PROYECTO FINAL DE CARRERA: DISEÑO DE UNA NARIZ ELECTRONICA PARA LA DISCRIMINACIÓN DE ACEITES Curso: 00/01 Realizado por: Sergi Rojo Bosch Fecha: 24-01-01 Fichero: aceites.cpp Programa de adquisición de las placas de sensores Taguchi, fis-sp y FisSB. Versión que se sincroniza PC con Headspace. Se ha creado una base de tiempos, cuya unidad mínima es el segundo, gracias a la cual podremos controlar los diferentes tiempos que el usuario fija (desde teclado) para cada una de las fases (concentración medida -reposo) que constituyen una medida. En este programa se adquieren los valores de resistencia, que ofrecen los sensores frente a la presencia de los volátiles, desprendidos por los aceites mediante el Headspace Sampler. Una vez finalizada la prueba, se guardarán todos los datos en un fichero de texto. El cálculo que muestra este programa es la resistencia de todos los sensores (Taguchi, Fis_ubola, Fis) de una cámara. -------------------------------------------------------------------

------------------------------------------------------------------Definición de las cabeceras principales que emplea el programa -------------------------------------------------------------------*/ #include #include #include #include #include #include #include #include #include



/*------------CONSTANTES --------------*/ #define SER_1 #define BASE_TIMER #define INTR_TIC

0x3F8 0x40 0x1C

//Dirección del puerto serie 1 //Base del 8253 del PC //Interrupción de la IRQ0 del PC 76

ANEXOS

#define BASE #define N

0x220 0

#define NUM_MUESTRAS 600 #define RL 4.7 #define V_REF 10 #define NUM_SENSORES

6

//#define NUM_SENSORES

//Dirección base para la PCL818_2 /* Constante para el indice del primer canal de la PCL */ // Número de filas a guardar en el fichero // Resistencia de carga de los sensores TGS /* Tensión de referencia para el cálculo de la R_sensor */ // Para camara de sensores Taguchi o Fis

10

// Para camara de sensores fis_ubola

#ifdef __cplusplus #define __CPPARGS... #else #define __CPPARGS #endif

/*------------------------DECLARACION DE FUNCIONES --------------------------*/ void interrupt (*tics_old)(__CPPARGS); void interrupt tics(__CPPARGS); void prog_timer0(void); void parametros_iniciales(void); void ini_PCL812(void); void guardar_fich(); void nombre_fich(void); void actualizar_fich(void); int sincronizacion(void); /*-------------------VARIABLES GLOBALES ----------------------*/ int seg=0,seg_aux=0,min=0; //controles de segundos y minutos int num_pruebas=0, num_pruebas_realizadas=0; /*control de pruebas realizadas */ int tic=0; //variable contadora de tics del timer 0 float r_sensor,val_acot,tiempo; // valor de la resistencia del sensor int valor; //dato capturado por la PCL /* En la siguiente matriz se van a guardar todos los datos calculados de forma temporal antes de ser volcados al fichero correspondiente:*/ float huge datos[NUM_MUESTRAS][NUM_SENSORES]; struct date d; struct time tm; int ultima_prueba; int prueba_actual=0; int dn=0,dj=0,n=0; int vials_count=0; int k=0;

//control de la fecha del sistema //control de la hora del sistema //control de la extension de los ficheros generados

//contadores de la matriz de datos capturados //control del nº de sustancias a medir //control para el almacenaje del nombre de los //files int flag_conversion=0; //señalizador de inicio de conversión

77

ANEXOS

struct file { char name[7]; int extension[2]; } ; struct file fichero[42]; char nombre[20];

/* hay como max 42 viales a medir en una sola tanda */ //string con el nombre del fichero que toque

// Parámetros del Headspace: float t_heat=0,t_ciclo=0,t_press=0,t_lle_loop=0,t_eq_loop=0,t_inyec=0; //Temperaturas de trabajo del head space: int temp_horno=0,temp_loop=0,temp_manguera=0; //Otros parámetros: float time_prueba=0, t_adq=0,t_espera1=0,t_espera2=0,t_reposo=0;

/*-----------------------DEFINICIÓN DE FUNCIONES --------------------------*/

/*------------------PROGRAMA PRINCIPAL ---------------------*/ void main () { clrscr(); parametros_iniciales(); ini_PCL812(); tics_old=getvect(INTR_TIC); // Salvamos el viejo vector asociado a IRQ0 setvect(INTR_TIC,tics); // establecemos el nuevo prog_timer0(); //programo el timer para que genere una int. cada 10 ms

while (!(kbhit()) && (num_pruebas_realizadas

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.