diseño y realización de una nariz electrónica para la...

122
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.

Upload: dodang

Post on 17-Feb-2018

223 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

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

AUTOR: Sergi Rojo Bosch.DIRECTOR: Jesús Brezmes Lecha.

FECHA: Junio / 2001.

Page 2: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Agradecimientos:

A Jesús Brezmes Llecha, director del proyecto, que facilitó mitarea de investigación previa, siempre estuvo dispuesto a resolvermis dudas y prestó atención a mis ideas. Sus explicaciones yconsejos me ayudaron a comprender el funcionamiento ycomportamiento de las Redes Neuronales Artificiales.

A Jordi Maré Viles, Jaume Pros Rodríguez, y CarmeloFuentes Gandú por ayudarme en el desarrollo del equipoexperimental del proyecto.

A Jorge Orts Latorre, Guillermo Sáiz Laudó y a Jordi CugatPérez por su ayuda en la consecución de mi proyecto.

A mi familia, por apoyarme durante todos estos años en mispeores y mejores momentos.

A la familia López Alba y en especial a Sandra a quien megustaría dedicar este proyecto por los ánimos recibidos en eltranscurso de este trabajo.

Page 3: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

1

1.- INTRODUCCIÓN 3

1.1 ANTECEDENTES 4 1.2 OBJETIVOS 4

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

2.1 DESCRIPCIÓN GENERAL 5

2.2 DESCRIPCIÓN DEL HEADSPACE AUTOSAMPLER 62.2.1 SELECCIÓN DEL PROCEDIMIENTO DE MUESTREO 62.2.2 SECUENCIA DE FUNCIONAMIENTO 7

2.2.2.1 Estado de reposo ( Standby condition ) 72.2.2.2 Presurización del vial ( Vial Pressurization ) 82.2.2.3 Llenado del loop ( Filling the Sample Loop ) 82.2.2.4 Equilibrado del loop ( Loop Equilibration ) 92.2.2.5 Inyección de la muestra de gas ( Injecting the Sample ) 92.2.2.6 Final de ciclo y recuperación del vial ( End of Cycle and Vial Recovery ) 9

2.3 MATRICES DE SENSORES 102.3.1 SENSORES DE ÓXIDO DE ESTAÑO 102.3.2 SENSORES FÍGARO 11

2.3.2.1 Tipos y aplicaciones 112.3.2.2 Características de los sensores 152.3.2.3 Instrucciones generales de los sensores TGS 162.3.2.4 Lista de los sensores empleados 162.3.2.5 Placa diseñada para los sensores Taguchi 17

2.3.3 SENSORES FIS-SB 20 2.3.3.1 Tipos y Aplicaciones 20

2.3.3.2 Características de los sensores 212.3.3.3 Lista de los sensores empleados 232.3.3.4 Placa diseñada para los sensores Fis-SB 23

2.3.4 SENSORES FIS-SP 252.3.4.1 Tipos y Aplicaciones 252.3.4.2 Características de los sensores 26

2.3.4.3 Lista de los sensores empleados 282.3.4.4 Placa diseñada para los sensores Fis-SP 28

2.4 SOFTWARE 292.4.1 SINCRONIZACIÓN Y ADQUISICIÓN DE DATOS 29

2.4.1.1 Descripción general 292.4.1.2 Rutinas principales 302.4.1.3 Ejemplo de creación de una medida 34

2.4.2 PRE Y POSTPROCESADO DE LOS DATOS 362.4.2.1 Introducción 362.4.2.2 Ficheros MATLAB para el preprocesado 362.4.2.3 Ficheros MATLAB para el postprocesado 38

Page 4: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

2

3.- MEDIDAS CON ACEITES 47

3.1 INTRODUCCIÓN 47

3.2 CONJUNTO DE MEDIDAS 473.2.1 Medidas de prueba 473.2.2 Diseño del conjunto experimental definitivo de medidas 493.2.3 Calendario de medidas 493.2.4 Medidas con nariz electrónica 52

3.2.4.1 Introducción 523.2.4.2 Procedimiento de medida 53

3.3 RESULTADOS 543.3.1 Introducción 543.3.2 Resultados con análisis de componentes principales (PCA) 55

3.3.2.1 Introducción 553.3.2.2 PCA para todo el conjunto experimental de datos 553.3.2.3 Cálculo de la resolución de las agrupaciones de los PCA 62

3.3.3 Resultados con la red neuronal FUZZY ART 633.3.3.1 Introducción 633.3.3.2 Fuzzy ART del conjunto experimental 64

3.3.4 Resultados con la red neuronal FUZZY ARTMAP 663.3.4.1 Introducción 663.3.4.2 Fuzzy ARTMAP del conjunto experimental 66

3.3.5 Selección de las mejores variables y mejores sensores 683.3.5.1 Introducción 683.3.5.2 Resultados Fuzzy ARTMAP 703.3.5.1 Resultados Fuzzy ART 723.3.5.2 Resultados Fuzzy PCA 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

Page 5: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Introducción

3

1.- INTRODUCCIÓN

Actualmente, el control de calidad de cualquier producto es imprescindible para que todaempresa tenga cierto prestigio dentro del mercado industrial. Esta necesidad viene dada porel aumento de la competencia originando una demanda de mejor calidad en el producto aun precio más ajustado. Para algunas empresas esto requiere una reducción de los costes deproducción, lo que puede tender a utilizar materias primas de una calidad inferior a la quese exige y por consiguiente, intentando vender un producto de calidad superior, siendorealmente de calidad inferior.

Dentro del área de los aceites de consumo, es fácil imaginarse que se puedan hacer mezclasentre aceites de diferentes calidades para intentar venderlos en grandes cantidades. Estetipo de fraude no sólo tiene efectos económicos, sinó también efectos de salud para losconsumidores; por este motivo, empresas y organizaciones establecen unos controles decalidad para evitar estos problemas.

De los métodos existentes en lo que se refiere al análisis de los aromas de los aceitesdestaca la cromatografía de gases. Este método es eficaz en cuanto a resultados peropresenta 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 poruna matriz de sensores químicos de gases de óxido de estaño comerciales y técnicas dereconocimiento de patrones, capaz de discriminar diferentes tipos de aceites. El equipoanalizará 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 Descripción1 Variedad arbequina, viejo2 Variedad empeltre, viejo, de prensa3 Variedad picual campaña 2000/2001, hecho en

Cataluña4 Variedad arbequina, viejo5 Variedad arroniz (Navarra), de prensa, defectuoso6 Variedad arroniz (Navarra), sin defecto7 Variedad empeltre (navarra)8 Variedad arbequina, campaña 2000/2001 D.O

SIURANA9 Aceite con defecto de avinado y rancio10 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.

Page 6: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Introducción

4

1.1 ANTECEDENTES

El proyecto que se presenta en este documento queda enmarcado dentro de una de laslíneas de investigación del grupo de investigación en sensores de Gases y NarizElectró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ónicaspara diversas aplicaciones, tales como la detección de fugas peligrosas, determinación delestado de maduración de frutas, e incluso aceites [1].

En nuestro caso, nos centraremos en medir los diez tipos de aceites mencionadosanteriormente (tabla 1.1) con una nariz electrónica, determinando la posibilidad dediscriminar 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 discriminaraceites.

El prototipo constará de un sistema de acondicionamiento y captación de volátilescomercial (un Headspace Autosampler) y una cámara de medida que contendrá laagrupació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 calibracionesde los sensores. Si realmente se confirma la identificación de huellas olfativascaracterísticas de cada tipo de aceite, las posibilidades de transferencia del equipo al sectorcomercial son elevadas ya que las ventajas que presenta la utilización de una narizelectrónica son entre otras, el bajo coste, sencillez de manejo y la posibilidad de valorar elaroma 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átilesemitidos.

El segundo objetivo consiste en determinar si a partir del análisis de volátiles es posibleestablecer una discriminación de los aceites y por lo tanto constituyen un indicador fiablepara su medida.

Para ello, se utilizará la respuesta de agrupaciones de sensores químicos de gases basadosen óxidos metálicos. Los resultados que se esperan consisten en obtener una “huellaolfativa” 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 deolfato electrónico para la discriminación de aceites, con la finalidad de demostrar laaplicabilidad comercial de la nariz electrónica diseñada.

Page 7: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

5

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 quetrabajan de forma conjunta con el objetivo de cuantificar y/o clasificar muestras gaseosas oaromas. 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 deanálisis utilizadas (PCA, ANN) para llevar a cabo nuestro objetivo. En el siguiente dibujose 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óloharía falta uno puesto que cada cámara dispone de seis sensores, y una tarjeta deadquisición de datos PCL-812 dispone de 16 canales, y por tanto es capaz de adquirir losdatos de las dos cámaras, pero por motivos de urgencia y simplicidad las medidas se hanrealizado en dos PC.

La sincronización del Headspace con los dos ordenadores, ha permitido que se realicen ungran número de medidas sin tener que estar continuamente controlando el sistema en ellaboratorio.

Page 8: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

6

A continuación se describirán con detalle los elementos más destacados del equipo demedida: el Headspace Autosampler, las cámaras de sensores y una breve descripción de latarjeta 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 unamuestra gaseosa procedente de un vial para inyectarla hacia un dispositivo analizador degases, 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 deempezar las medidas. A continuación se muestra los principales parámetros utilizados eneste 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:

Page 9: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

7

• 4 ciclos de medidas a temperaturas de 70, 75, 80 ºC (temperaturas de oven, loop y trline 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 deaceites, y un vial con 0.5 µl de etanol para la calibración. Éste siempre será el último vialque 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 flujode aire del gas auxiliar (aire seco) circula a través del loop y de la aguja de inyección. Elflujo del gas portador circula hacia el exterior de la manguera (GC) donde se conecta eldispositivo 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 elhorno y empiezan los tiempos de equilibrado.

Page 10: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

8

2.2.2.2 Presurización del vial ( Vial Pressurization )

Finalizado el tiempo de equilibrado del vial, éste es desplazado hacia la aguja queperforará el septum del vial. Durante la presurización la válvula S2 se mantiene cerrada. Elflujo de aire auxiliar que circula por el loop y por la aguja, entrará en el vial permitiendo lapresurización de éste. Una vez finalizado el tiempo de presurización, la válvula S1 secierra.

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 seexpulsa el aire a la presión atmosférica hacia la salida de ventilación. Un pequeño tiempode llenado del loop permite que salga la presión del vial hacia el loop y el resto del tiempode llenado permite el equilibrado de éste a la presión atmosférica.

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

Page 11: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

9

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 eltiempo 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 gasalmacenada en el loop fluya a través de la manguera hacia el exterior donde se encuentra eldispositivo 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 depresurización S1 y ventilación S2 se abren y el Headspace vuelve a al estado de reposoesperando a terminar el tiempo de ciclo en caso de tener otro vial para analizar.

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

Page 12: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

10

2.3 MATRICES DE SENSORES

El compromiso que tenemos a la hora de diseñar una cámara de sensores, es su volumen enrelación con el número de sensores que tendrá dicha cámara. Interesa que el volumen sealo más pequeño posible con el fin de aumentar la sensibilidad de los sensores. Las trescámaras diseñadas tienen unas dimensiones interiores de 63 mm x 53 mm x 11 mm, yteniendo en cuenta el volumen que ocupan los 6 sensores, disponemos de unos 30 mlaproximadamente 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 50ml/minuto. Eso quiere decir que las cámaras renuevan su aire cada 1.6 minutos. Esimportante tenerlo en cuenta en los parámetros que se asignen al Headspace (debe haberun intervalo de tiempo suficiente entre medidas para dejar que los sensores se recuperen yse 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 sesitúa la matriz de 6 sensores, y la circuitería necesaria para que funcionen, que en este casosólo necesitan la resistencia de carga RL de 4k7Ω (circuito básico de medida) puesto que nohace falta un circuito acondicionador para este tipo de sensores (Taguchi y Fis-SP) y portanto, 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 sensoresTaguchi, Fis-SP, y Fis-SB. La placa de estos últimos sensores no se ha utilizado para lasmedidas definitivas puesto que este tipo de sensores presentaba una menor sensibilidad quelos 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 estematerial es calentado a elevadas temperaturas (alrededor de unos 400 ºC), los electrones

Page 13: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

11

libres fluyen fácilmente a través de la banda de conducción de las partículas de óxido deestaño.

En aire puro el oxígeno es absorbido por las partículas de óxido de estaño de la superficie yatrapa electrones libres debido a su alta electroafinidad, formando una barrera de potencialen la banda de conducción. Esta barrera de potencial restringe el flujo de electronescausando 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 gasproduciéndose una reacción de oxidación entre el gas y el oxígeno absorbido, lo quedisminuye la barrera de potencial y en consecuencia reduce la resistencia eléctrica. Larelación entre la resistencia del sensor y la concentración del gas desoxidado puede serexpresada mediante la siguiente ecuación experimental, siendo válida para un cierto rangode concentración de un gas:

[ ] α−⋅= CAR (1)

Donde: R, resistencia eléctrica del sensor, A y α son constantes y [C], concentración delgas

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 seisconfiguraciones diferentes. Los tres tipos de sensores, denominados Taguchi, podemosclasificarlos en 4 series:

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

Figura 2.9.- Serie 1

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

Figura 2.10.- Serie 5

Page 14: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

12

• Serie 8: Estos sensores tienen un heater, dentro de untubo cerámico de alúmina y el material semiconductorestá montado sobre un tubo con dos electrodos grabadosen oro.

Figura 2.11.- Serie 8

• Serie 2000: Estos sensores se caracterizan por tener una capa gruesa de óxido de metalsemiconductor como elemento sensor. Tanto el heater como el elemento sensor estánsituados sobre un mismo substrato plano. Existen cuatro modelos con diferentesestructuras:

Ø Tipo S1: Su estructura es muy simple, dispone de una sola cara en la quese 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 deinformación.

Figura 2.13.- TGS Serie 2000 tipo S2

Page 15: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

13

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

Figura 2.14.- TGS Serie 2000 tipo M1

Ø Tipo D1 : Se distingue del resto por tener dos caras. En una se encuentrael 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 unabase de resina y encapsulado. Algunos de los modelosutilizados con este tipo de encapsulado son TGS842, TGS822,y TGS813

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

Page 16: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

14

Existe otra configuración, que se caracteriza por tener unaresistencia de heater, una base cerámica sobre la quedescansa el elemento sensor y además está recubierto por unaespecie de malla metálica, empleada como medio deprotección. Los modelos TGS825, TGS831 y TGS832 tieneneste 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 desensibilidad, rapidez de su respuesta, una excelente durabilidad y su bajo coste, son lascaracterísticas que hacen que estos sensores tengan multitud de aplicaciones:

Categoría Uso doméstico Uso comercial e industrialGases combustibles- Metano- Propano- Hidrógeno

- Alarma de gasespara casas,vehículos y barcas

- Sistemas de detección de gas paracomercios, plantas industriales ypetroquímicas

- Detectores de gas portablesGases tóxicos- Monóxido de

carbono- Amoniaco

- Otros

- Detectores de COpara casas,vehículos, barcas

- Sistemas de monitoraje de COpara parkings

- Detectores de fugas de amoniacopara refrigeradores

- Detectores de amoniaco para elsector primario

- Detectores de gas portablesAlcohol Etilómetros Etilómetros profesionalesVapores orgánicos Detectores de disolventes para fábricas,

semiconductores, industriasCFCs(Clorofluorocarbonatos)

Detectores CFCs para congeladores,aires acondicionados, procesos delimpiado para componentes eléctricos...

Detectores de olores Detectores de oloresen congeladores

Sistemas de medida de olores para laindustria alimentaria

Otros - Oxígeno - Hidrógeno

- Detectores de oxígeno- Detectores de oxígeno para el

mantenimiento detransformadores, 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.

Page 17: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

15

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 deconcentración del gas y las variaciones de laresistencia del sensor, basada en una funciónlogarítmica. Cada tipo de sensor tiene su propiasensibilidad característica, la cual le permite serempleado para diferentes propósitos. .

En el eje de ordenadas se representa el valor de lasresistencias del sensor medida para variasconcentraciones de gases, comparada con laresistencia 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 fuertedependencia con la temperatura, tal y como se puedecomprobar en la figura 2.19 donde se ve que suvariación provoca un cambio notable en la resistenciadel sensor. Podemos provocar un aumento de latemperatura si incrementamos la tensión de heaterdel sensor, por lo que es importante controlar estavariable.

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 suresistencia; esta es la razón por la que la sensibilidad del sensor depende del nivel de

Page 18: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

16

humedad relativo en la atmósfera. Es decir, a medida que aumenta la humedad, el valor dela resistencia del sensor va disminuyendo.

Cuando se quiere detectar un gas en presencia de un ambiente húmedo, al ser estossensores sensibles a esta última variable, la detección del gas contaminante resulta máscostosa. Por lo tanto debemos eliminar la dependencia con la humedad, para ello existendiversas 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 lossensores de óxido de estaño de Fígaro:

1) Se recomienda emplear los circuitos de medida mostrados en las hojas deespecificaciones ofrecidas por el fabricante.

2) La humedad y temperatura afectan la repetitividad de los sensores. Si incluimos untermistor para compensar dicha dependencia, disminuiremos sus derivas, consiguiendofijar el punto de trabajo del sensor.

3) Para calibrarlos debemos llevarlo a cabo bajo unas condiciones de temperatura yhumedad controladas, y usando aire limpio y un gas puro. Se recomienda unos

..%565,º2º20 HRCC ±±

4) Los sensores TGS pueden ser empleados con polarización continua o alterna. Sinembargo la resistencia del sensor puede cambiar de valor cuando es polarizadoinversamente.

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

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 quese han empleado con este tipo de tecnología:

Page 19: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

17

Sensor Aplicación Detección

TGS 800 Control de calidad delaire

Aire contaminado

TGS 813 Detección de gascombustible

LP-Gas/Propano (gases combustibles endeneral)

TGS 822 Detección de vaporesde alcohol

Alcohol, Tolueno, xileno

TGS 825 Detección de gastóxico

Sulfato de hidrógeno

TGS 826 Detección de gastóxico

Amoníaco

TGS 831 Detección de CFCs(HCFCs and HFCs)

R-21-R-22

TGS 832 Detección de CFCs(HCFCs and HFCs)

R-134a,R-22

TGS 842 Detección de gascombustible

Metano, Propano, Butano

TGS 880 Control de cocinado Gases volátiles y vapor de agua en lacomida

TGS 882 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 modeloTGS826. Las aplicaciones de este sensor son similares a las del modelo TGS824 y enpruebas 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 10sensores, se ha tenido que realizar medidas de prueba para ver que sensibilidad mostrabanpara 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 harealizado 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 paraelaborar la placa de C.I., un material plástico sintético, exactamente una resina sintéticatermoestable, 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 3/dmkg ), con una absorción de agua inferior al 0.5 % en 24h y unabuena resistividad, características por las que se ha escogido dicho material.

En los siguientes apartados se presentará las placas que contienen los sensores Taguchi yFis-SP empleados. La cámara de medida 1, fue diseñada en un principio para sensores detipo Fis-SP; como se verá más adelante, estos sensores presentan el mismo patillaje que losTaguchi, y por tanto se utilizó esta cámara para los dos tipos de sensores.

Page 20: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

18

También se detallará el circuito de medida empleado para caracterizar las variaciones desus 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 deuna cámara de medida. Tal distribución viene condicionada por el patillaje de estossensores, ya que todos ellos tienen un pin-out equivalente entre los diferentes modelos. Deahí que, insertando un único conector en un extremo de la placa, podamos recoger todasestas señales, evitando un ruteado de pistas más laborioso. A continuación mostramos losdetalles de las dos cámaras con sus respectivos sensores:

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

La cámara nº 1 recibe el flujo de gas directamente del Headspace Autosampler, mientrasque la cámara nº 2 lo recibe a través de la cámara 1. En las pruebas iniciales que serealizaron 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 lossensores 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

Page 21: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

19

Figura 2.21.- Detalle de la placa correspondiente a la cámara nº 1 que contieneEl 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 uncircuito de medida (facilitado por el fabricante), formado básicamente por una resistenciade carga y una tensión de control:

Muestra el número de pins correspondiente a la figuraa. Los pines 1 & 3 y 4 & 6 están interconectadosinternamente.

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. Delanálisis del circuito se desprende la siguiente fórmula:

LRL

L RV

RVcRs −⋅= (2)

Page 22: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

20

Donde: - Vc: Tensión de control (10 V d.c.)- Vh: Tensión de heater (5 V d.c.)- :LR Resistencia de carga- :RLV 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 lomonitorizaremos para que el usuario conozca en cada momento la evolución de laseñal del sensor.

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

( )( ) mW

RRs

RsVcRsI

RsVVc

PL

RLS 152

22

2

<+

⋅=⋅=

−= (3)

Contemplando dicha premisa se optó por un valor de 74KRL =

2.3.3 SENSORES FIS-SB

En este proyecto, estos sensores sólo se han utilizado durante las pruebas iniciales. Para lasmedidas definitivas, se descartaron por la baja sensibilidad que presentaban para nuestraaplicación y por la pérdida de sensibilidad que esto supondría en caso de añadir una terceracá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 delsensor, gracias a la integración de todo el conjunto que constituye el sensor (elementosensor, encapsulado, patillaje, etc.).

Los sensores FIS tienen 2 series defabricación: los SB (con tecnología microbola), y la serie SP (con una tecnología defabricación similar a los TGS, cuyascaracterísticas serán comentadas en elsiguiente apartado, cuando comentemos lossensores que están ubicados en la cámarade medida número 2). La serie SB tiene unelemento sensor como el de la figura 2.23,el cual es un tipo de semiconductor minibead, principalmente compuesto de dióxidode estaño ( )2SnO .

Figura 2.23.- Elemento sensor

Page 23: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

21

Está formado por una bobina calefactoray un electrodo insertados bajo el elementosensor. Los sensores Fis-SB que se hanempleado en las medidas de pruebapresentan un encapsulado metálico, queprotege al elemento sensor. Dichoencapsulado está compuesto por dosmallas metálicas de acero inoxidable quedescansan 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 losgases que detectan los sensores Fis-SB, el modelo y su consumo de potencia.

Aplicación Gas detectado Modelo (consumo de potencia)Mezcla de dos gases CO y Metano SB-95-00 (Ph: 120 mW - máx.)

Hidrocarburos SB-11ª-00 (Ph: 120 mW)Metano SB-12ª sensor bajo pruebaPropano/butano SB-15-00 (Ph: 120 mW)

Gases inflamables

Hidrógeno SB-19-00 (Ph: 120 mW)De propósito general SB-31-00 (Ph: 120 mW)Disolventes orgánicosAlcohol SB-30-00 (Ph: 120 mW)HCFCs (R-22) SB-41-00 (Ph: 120 mW)Gases refrigerantesHFCs (R-134a) SB-42-00 (Ph: 120 mW)

SB-42ª sensor bajo pruebaMonóxido decarbono

SB-50-00 (Ph: 120 mW - máx.)SB-500-00 (Ph: 120 mW - máx.)

Gases Tóxicos

Amoniaco SB-53 sensor bajo pruebaGases oxidantes Óxido de nitrógeno SB-62 sensor bajo prueba

De propósito general SB-AQ1A-00 (Ph: 120 mW)Control de la calidad delaire (sistemas de controlde ventilación, ...)

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 larelación entre la resistencia del sensor (Rs), y la concentración de los gases. La resistenciadel sensor se decrementa en función del gas depositado sobre el sensor, según una funciónlogarítmica (de igual forma que los TGS).

Page 24: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

22

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 fuertedependencia con la temperatura y humedad. Las moléculas de agua que residen en lapropia atmósfera son absorbidas por la superficie del sensor, lo que provoca unadisminución de su resistencia. Esta es la razón por la que la sensibilidad del sensor dependedel nivel de humedad relativo que halla en la atmósfera. Es decir a medida que aumenta lahumedad, el valor de la resistencia del sensor va disminuyendo (véase figura 2.26). Porotro lado la temperatura también es un parámetro a tener en cuenta, ya que a medida queaumenta, provoca una disminución en la resistencia del sensor (véase figura 2.26).

Por lo tanto, el sensor deberá trabajar, en lamedida de lo posible, siempre bajo unascondiciones ambientales, de temperatura yhumedad, constantes. De ahí la importancia deque se mantengan siempre las cámaras demedida cerradas herméticamente.Obsérvese que la figura 2.26 recoge lasvariaciones en la Rs del sensor SB-11 debida alos cambios de temperatura y humedad relativa.Hay que destacar que el fabricante nos hafacilitado dichas variaciones para cada uno delos sensores.

Figura 2.26.- Influencia de la temperatura sobre la resistencia del sensor SB-11.

Page 25: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

23

2.3.3.3 Lista de los sensores empleados

A continuación mostramos una tabla donde recogemos la información de los sensores quese han empleado en las pruebas iniciales:

Modelo Vapores detectadosSB-11A-00 Propósito general. Gases inflamablesSB-15-00 Propano/Butano.SB-19-00 HidrógenoSB-30-00 Alcohol. Disolventes orgánicosSB-31-00 Propósito general. Disolventes orgánicosSB-41-00 HCFCs: R-22SB-42A-00 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-SBempleados, y se detallará el circuito de medida empleado para caracterizar las variacionesde 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 unzócalo "dual in line", aprovechando los pines de éste para insertar los sensores. Acontinuación mostramos dicha placa:

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

Page 26: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

24

Ø Circuito de medida de los sensores Fis-SB

Los sensores Fis-SB se encuentran ubicados en una placa situada en el interior de lacámara de medida. Sin embargo, los circuitos de medida de estos sensores se encuentran enesta misma placa fuera de la cámara.

Para poder medir las variaciones de la resistencia del sensor, debemos ayudarnos de uncircuito de medida (facilitado por el fabricante) formado básicamente por una resistenciade 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- :LR Resistencia de carga, su valor es variable. Se recomienda que sea superior a

750 Ω . En nuestro caso se optó por un valor de Ω= 2200LR .- :RLV 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 monitorizaremospara 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ónentre el pin 2 del sensor y la masa del circuito V21. Conociendo este valor se puede obtenerfácilmente el valor de la tensión VRL con la siguiente expresión:

21VVV cRL −= (4)

Page 27: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

25

Esta solución muy sencilla de implementar por software, es la que finalmente se hautilizado. De esta forma nos ahorramos la circuitería externa (necesitaríamos 10 etapasreferenciadoras a masa en caso de utilizar 10 sensores Fis-SB) y el espacio de placa queesto 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 laserie SP:

Figura 2.29.- Elemento sensor de SP.

El material sensor se deposita en un substrato de alumina en el cual se encuentran loselectrodos de oro. En la cara opuesta del substrato se deposita el heater, normalmente deplatino. 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 losgases que detectan los sensores Fis, el modelo y su consumo de potencia.

Page 28: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

26

Categoría Gas detectado Modelo (consumo de potencia)Mezcla de dos gases CO y Metano -

Hidrocarburos SP-11-00 (Ph: 400 mW)Metano SP-12A (Ph: 380Mw)Propano/butano SP-15A-00 (Ph: 380 mW)

Gases inflamables

Hidrógeno SP-19-00 (Ph: 315 mW)De propósito general SP-31-00 (Ph: 315 mW)Disolventes orgánicosAlcohol SP-32-00 (Ph: 315 mW)HCFCs (R-22) SP-41-00 (Ph: 400 mW)Gases refrigerantesHFCs (R-134a) SP-42-00 (Ph: 400 mW)

SP-42A sensor bajo pruebaMonóxido de carbono -Sulfuro de Hidrógeno SP-51 sensor bajo prueba

Gases Tóxicos

Amoniaco SP-53-00 (Ph: 315mW)Ozono SP-61 sensor bajo pruebaÓxido de nitrógeno -

Gases oxidantes

Clorhídrico SP-65 sensor bajo pruebaDe propósito general SP-MW0-00 (Ph: 400 mW)Humedad SP-MW1-00 (Ph: 400 mW)Alcohol SP-MW2-00 sensor bajo prueba

Control de alimentos

Gases combustibles SP-MW3-00 sensor bajo pruebaPropó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)

Control de calidad de aireinterior

CO2 Bajo testGasolina SP-AD1/SP-AD3 bajo testGases emitidos por los

vehículos 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 larelación entre la resistencia del sensor (Rs), y la concentración de los gases. La resistenciadel sensor se decrementa en función del gas presente en el ambiente, según una funciónlogarítmica (de igual forma que los TGS).

El fabricante asegura que tras realizar unas pruebas bajo unas condiciones ambientalesestándares, los sensores responden ante unos niveles mínimos de detección para losdiferentes gases. En el eje X de la figura 2.31 se representa cada uno de los gases a los queha sido sometido el sensor, y el eje Y muestra el valor de la resistencia del sensor (Rs) deforma normalizada (Resistencia del sensor/ Resistencia del sensor en aire). Por tantopodemos ver en que orden de magnitud varía la resistencia del sensor en presencia de una

Page 29: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

27

concentración determinada de contaminante respecto a la resistencia que el sensor presentaen 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 Fisde la serie SP poseen una fuerte dependencia con la temperatura y la humedad. La figura2.32 recoge las variaciones en la Rs del sensor, debido a los cambios en la temperatura yhumedad relativa. Hay que destacar, que el fabricante nos ha facilitado dichas variacionespara cada uno de los sensores.

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

Page 30: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

28

2.3.4.3 Lista de los sensores empleados

A continuación mostramos una tabla donde recogemos el modelo y los vapores detectadospor los sensores que se han empleado con este tipo de tecnología:

Modelo DetecciónSP-31-00 Solventes orgánicosSP-32-00 AlcoholSP-53-00 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, porquepresentaba 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-outque los sensores Taguchi y además los dos tipos de sensores se montan sobre el mismozócalo. El circuito de medida es también idéntico al de los sensores Taguchi por lo que nose va a insistir más en ello. A continuación se volverá a mostrar la placa correspondiente ala cámara nº 1 indicando los sensores Fis.

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

Page 31: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

29

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ónescogido ha sido el C), con la finalidad de adquirir la respuesta de los sensores ubicados enlas cámaras de medida haciendo uso de un par de tarjetas de adquisición de datos (PCL-812) 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 solacámara. Cada una de ellas contiene 6 sensores. Como se comentó en la descripción generaldel equipo de medida, no haría falta 2 tarjetas PCL-812, puesto que una de ellas disponede 16 entradas analógicas.

CÁMARA Nº SENSORES TARJETA DE ADQUISICIÓN1 Taguchi y Fis-SP PCL 812_12 Taguchi 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 elnú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 delas señales adquiridas, en las dos tarjetas:

TARJETA CANAL SENSOR

0 Taguchi 813PCL 812_1 1 Taguchi 880Cámara nº 1 2 Taguchi 832

3 Fis SP-314 Taguchi 8315 Fis SP-320 Taguchi 822

PCL 812_2 1 Taguchi 882Cámara nº 2 2 Taguchi 825

3 Taguchi 8004 Taguchi 8245 Taguchi 842

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

Page 32: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

30

Los datos que procesa este programa son la resistencia de todos los sensores (Taguchi yFis-SP). Estos cálculos se van presentando en la pantalla para que el usuario pueda ircomprobando como varía la resistencia de los sensores en tiempo real.

En los siguientes apartados se procederá a detallar de forma exhaustiva el funcionamientodel 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 eltiempo (fijado por el usuario desde teclado) que debe estarse nuestro programa en cada unade 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 depruebas, nombre de cada contaminante y los parámetros del Headspace Autosampler) conlos cuales se generará el nombre del fichero de datos que contendrá la respuesta de lossensores.

Tras la inicialización de la tarjeta de adquisición para que podamos adquirir los datos deforma correcta, y la configuración del timer 0 del PC, el programa entra en un bucle deespera 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 seproduce la sincronización. Pasado este tiempo, además de los de presurización, llenado ygran parte del equilibrado del loop, se adquiere la respuesta de los sensores durante 30segundos, 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, elprograma entra en otro estado de espera para estabilizar el sistema (los sensores tienen quevolver a sus condiciones iniciales de resistencia) para la próxima medida. Si no existenmá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 paracada 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 respuestade los sensores alojados en la cámara de medida nº 1, es decir, los Taguchi y Fis-SP. Latarjeta nº 2 adquirirá el resto de los sensores Taguchi (véase tabla 2.8) alojados en lacámara de medida nº 2.

En primer lugar, se selecciona el canal inicial N a muestrear:

outportb(BASE+10,N);

Page 33: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

31

Se ha optado por realizar una conversión que se inicie por soft, por lo tanto debemosprogramar el siguiente registro para que el disparo de inicio de conversión sea porsoftware:

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, queofrece una cadencia de 55 ms. Es decir, cada 55 ms se ejecutará el código de nuestra rutinade atención a la interrupción. Programaremos el timer para que la interrupción del reloj delsistema 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 quecargar un valor de 10 ms * T = 10 ms * (1/frec) = 11931.82 ≈ 11932 = 2E9B (valorhexadecimal). Este valor se cargará empezando por el byte menos significativo y siguiendopor el más significativo. El propósito de esta rutina es poder controlar el tiempoestablecido por los parámetros establecidos por el usuario.

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

Cada 10 ms aconteceel siguiente código

Incrementamos la variable tic

Si tic = 100,eso sea, pasado 1

seg.tic=0

Incrementamos variable seg y damos

permiso para conversión

via soft

¿Ha pasado1 minuto?

seg=0

Incrementamosla variable quenos controla los

minutostranscurridos

(min++)

Damos servicio a antigua rutina de

interrupción

NO

NO

Page 34: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

32

Ø Rutina de sincronización Headspace Autosampler con PC

Para poder sincronizar el PC con el Headspace, necesitamos tener información sobrealguno de sus estados. El Headspace dispone de un puerto serie para la comunicación conotro dispositivo (en nuestro caso un PC). Como no se disponía del software decomunicación, se realizó un programa en C para leer constantemente los datos del puertoserie del Headspace en cada uno de los estados de funcionamiento, para ver si variaban alcambio de un estado a otro. Se observó que cuando el Headspace cogía un vial de muestray lo introducía en el horno, los datos leídos del puerto serie variaban en ese instante. Larutina de sincronización se basa en leer constantemente del puerto serie hasta que detectaesta variación, que servirá para sincronizar los tiempos introducidos por el usuario con losdel Headspace.

Ø Adquisición de los datos

La parte de adquisición de los datos se encuentra en el programa principal y se ejecuta unavez sincronizado el Headspace con el PC y transcurrido los tiempos de calentamiento ypresurización del vial, llenado y equilibrado del loop.

Durante el tiempo de adquisición (en nuestro caso son 10 minutos), se van recorriendotodos los canales de la tarjeta correspondientes a cada sensor, en intervalos de 1 segundocontrolados por el timer 0 del PC. Durante este tiempo, el programa recorre todos loscanales para adquirir la respuesta de cada sensor. Por tanto, considerando un tiempo deadquisició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 temporalmenteen una matriz datos antes de ser guardados al fichero correspondiente. Véase en la páginasiguiente, 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 lasrespuestas de los sensores (almacenadas en memoria en una matriz de 6 columnas y 600filas) en un fichero de datos, para su posterior análisis mediante la aplicación de técnicasde 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 formaautomática cual debe ser la extensión del fichero (que resulta ser un número) se handiseñado las tres rutinas que se muestran en la pagina siguiente.

Page 35: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

33

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 unfichero denominado MEDIDAS.DAT, el cual contendrá una relación de todas lasextensiones de los ficheros que se han ido generando cada vez que se ejecute el programaACEITES.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 modificarlonunca más.

Mediante esta rutina nombre_fich(), se abrirá el fichero MEDIDAS.DAT, nosposicionaremos al final del fichero y leeremos que extensión fue la última que se creó. Porlo tanto, a dicho valor leído, le sumaremos uno y ya tendremos la nueva extensión para lamedida que se acaba de realizar.

INICIO

Esperamos sincronización y tiemposHeadspace

¿Se han recorrido

todos los canales?

Disparamos por soft elinicio de la conversión

¿Se haconvertido el

dato?

Almacenamos elvalor adquirido

Calculamos la resistencia del sensor

NO

NO

¿Ha terminado el tiempoDe adquisición ?

NO

FIN

Page 36: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

34

Ø Rutina guardar_fich()

Después de ejecutar la rutina nombre_fich(), mediante esta función se genera un fichero detexto 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 elusuario 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 rutinaactualizar_fich() podremos actualizar el fichero MEDIDAS.DAT con la última extensióngenerada más uno, para que así, la próxima prueba que vayamos a realizar tengaincrementada 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 enuno, que van desde 1 hasta el número final previsto para el conjunto de medidas, ennuestro 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 realizardos 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 delordenador. Se ha representado mediante el color rojo los valores que el programa vaactualizando 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 introducido10 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 delHeadspace introduciremos esos mismos parámetros:

Nombre del contaminante 11 --- > (max.8 caracteres) etanolc1

Tiempo de calentamiento del vial (en min.): 5Tiempo de presurización del vial (en min.): 1Tiempo de llenado del loop (en min): 1Tiempo de equilibrado del loop (0.05 min por defecto..): 0.05Tiempo de inyección (en min.): 10

Page 37: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

35

Tiempo de adquisición añadida (en min.): 0Tiempo de reposo (en min): 72.7Parámetros de interés---------------------------------Temperatura del horno (en ºC): 70Temperatura del loop (en ºC): 75Temperatura 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 yequilibrado, empieza a inyectarse la muestra de gas hacia las cámaras. En nuestrapantalla de ordenador veríamos lo siguiente:

Adquiriendo . . . 26.01

S1 70.12S2 65.32S3 21.13S4 40.35S5 72.61S6 30.21

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

Adquiriendo . . . 26.01

S1 70.12 Prueba = 2S2 65.32 File 3 = aceite1.11S3 21.13S4 40.35S5 72.61S6 30.21 dj = 600

6) Una vez se ha generado el nombre del fichero, el programa se mantiene en estado deespera 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 desdedonde ejecutamos el programa. En caso contrario salta de nuevo al paso 4.

Page 38: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

36

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 muypotente que permite manipular matrices de datos, aplicar técnicas de reconocimientos depatrones, diseñar diferentes topologías de redes neuronales, etc. Un sin fin deposibilidades, 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 hanllevado a cabo, así como los diferentes programas empleados (cuyos listados se hanadjuntado 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 deinterés y los diferentes archivos creados para preparar los datos, es decir, se comentará elprocedimiento llevado a cabo para crear una matriz global, en la que se recogerán todas lasadquisiciones procesadas (filas), con sus parámetros respectivos (columnas).

En el segundo punto, se discutirán las diferentes topologías de red analizadas y losdiferentes ficheros para el postprocesado de los datos, diseñados con la finalidad decumplir 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 larespuesta 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 valorescomplementarios que nos ayudaran a mejorar los resultados finales.

Según el tipo de preprocesado utilizado se obtienen unos resultados mejores o peores. Deahí la necesidad de realizar diferentes tipos de preprocesado a nuestro conjunto inicial dedatos, con la finalidad de poder aplicar el número mayor de combinaciones de parámetrosy mejorar al máximo los resultados.

En este punto se presenta de forma estructurada los diferentes algoritmos de preprocesadoque se han utilizado. En primer lugar, se dará una breve descripción de los diferentesparámetros que se han extraído para poder aplicar posteriormente las técnicas basadas enreconocimiento 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 puedenobtener diferentes parámetros resumidos en una misma tabla. Los parámetros calculados seidentifican por variables, así como la fórmula matemática que se ha aplicado paracalcularlo:

Page 39: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

37

PARÁMETRO SIGNIFICADO FÓRMULA MATEMÁTICA

Gi Conductancia inicialinicialaresistenci

gi1=

Gf Conductancia finalminimaaresistenci

gf1=

Dg Incremento de conductancia gigfdg −=

Dgn Incremento de conductancianormalizada gi

dgdgn =

Tm Tiempo en que el valorconductancia es máximo -

Tabla 2.9.- Preprocesado de los datos de entrada.

Todos los datos presentados anteriormente han sido calculados para cada uno de lossensores que forman parte de nuestra nariz electrónica y que formarán nuestro conjunto devariables 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 unafichero de medidas (archivo: PAR_SENS.M)

• Creación de una función que a partir de una codificación, obtenga el nombre delfichero 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 tengapor filas cada una de las medidas llevadas a cabo, y por columnas una serie depará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 tendremostodas 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 lamatriz. Obsérvese en la tabla de la página siguiente que en la primera columna de la tablaanterior se ha indicado un número, que refleja en que columna se encuentran los datosdentro de la matriz global

Por lo tanto, una vez ejecutado este programa dispondremos de una variable que será lamatriz de parámetros. Ésta será empleada por los siguientes programas diseñados enMatlab que analizaremos a continuación.

Page 40: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

38

NúmeroColumna

Parámetro Significado

1 – 12 gi Conductancia inicial(1/Valor de la resistencia inicial)13 – 24 gf Conductancia final (1/Valor de la resistencia mínima)25 – 36 dg Incremento de conductancia (gf-gi)37 – 48 dgn Incremento de conductancia normalizada (dg./gi)49 – 60 tm Tiempo en que el valor de la conductancia es máximo61 código 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 suvalor se sitúa entre el ‘0’ al ‘9’ considerando que el ‘0’ es para aceitesde tipo 10.El dígito de menos peso corresponde al día en que se hizo las medidas ypresenta 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 tenganrelaciones de colinearidad: realizando un estudio PCA del conjunto de datos, podemosaveriguar si existe una agrupación coherente de nuestras medidas según los objetivosprevistos.

Esta técnica permite representar un conjunto de datos de dimensión n en una dimensión deorden 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 resultadosgráficos que consigamos serán un claro indicativo de la viabilidad de nuestro diseño parapoder implementarlo en una Red Neuronal Artificial.

Para realizar un PCA debemos disponer de unos datos (en forma de matriz), donde sus filasserá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 losrecogidos en la tabla 2.9.

• Procedimiento para realizar un PCA

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

Page 41: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

39

- auto(x): Esta función es usada para “autoescalar una matriz de datos”. Cuando lamatriz 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 esuna matriz donde cada columna tiene un cero de media y una varianza unidad. Elformato 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 resultarinteresante centralizar los datos de entrada. Esto es común cuando las variablestienen 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 lafunción PCA, gracias a la cual obtenemos el resultado esperado: los scores y losloads. 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 queespecifica el tipo de impresión deseado, scl es un vector opcional (normalmente unabase de tiempos) empleado para plotear los scores y lv es una variable opcional, queindica 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 componentesprincipales. Es una matriz que tendrá tantos puntos como sensores tengamos, cuyainformació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álisiscomentada anteriormente:

Page 42: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

40

• Fichero PCA_ACEITES2.M

Con este fichero se pretende comprobar cómo se agrupan las diferentes medidas en funcióndel tipo de aceite analizado.

El conjunto de datos analizado son los de la matriz global de parámetros excepto el códigoy las medidas de calibración. El usuario deberá añadir una línea de código para indicar queparámetros de la matriz global normalizada llamada m_norm desea que se haga el análisisPCA. Esto se hace asignando a una variable llamada m_aux2 las columnas que desee elusuario 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 gfdeberí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 arelacionar a partir de ejemplos. De esta forma, se pueden tratar no linealidades de unaforma genérica, sin que sea necesario conocer ninguna información a priori del modelotodas 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 alcampo del diseño de narices electrónicas, ayudará a cumplir con los objetivos de nuestroproyecto.

Además las redes neuronales al tratar con información multivariable o multidimensional,por su arquitectura paralela y distribuida, presentan una gran robustez ante medidaserróneas o muy ruidosas.

A continuación se detallan una serie de aspectos tales como los tipos de redes que se hanutilizado dando una breve descripción de su funcionamiento y características másrepresentativas, se determinarán los parámetros más importantes de una red (variables deentrada y salida), los diferentes tipos de normalizaciones a los que son sometidos los datosde entrada, el proceso de optimización, así como los diferentes archivos creados conMatlab.

Page 43: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

41

• Tipos de red empleadas

Cuando se desarrolla una red para realizar una tarea de clasificación de patrones, se sueleproceder reuniendo un conjunto de ejemplares que serán utilizados durante la fase deaprendizaje o entrenamiento de la red. Durante esta etapa, la información es registrada enel 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úncambio adicional de los pesos. Este procedimiento es factible si el problema que sepretende resolver por la red está bien limitado y puede definirse un conjunto(estadísticamente hablando) de informaciones de entrada que permitan entrenar la red pararesolver el problema. Sin embargo, en muchas situaciones reales los problemas a resolverno tienen unos límites claros.

El creador de la red que presentaremos a continuación, denomina al hecho presentado en elpárrafo anterior como el dilema de la estabilidad y plasticidad del aprendizaje. Este dilemaplantea 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 delaprendizaje).

Conseguir una red que pueda dar respuesta a uno de estos interrogantes es sencillo. Sinembargo, no lo es si se pretende diseñarla para que solucione ambos. En respuesta a estedilema Grossberg, Carpenter y otros colaboradores [2], desarrollaron la teoría de laresonancia adaptativa (Adaptative Resonance Theory: ART).

Dado que no es uno de los objetivos de este proyecto, no se profundizará en la explicacióndel algoritmo diseñado para este tipo de redes. Por lo tanto, a continuación se recogerá bajouna misma tabla (ver página siguiente) los modelos de red que se han empleado (basadostodos 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 entraday salida, la forma de representación de la información, señales de Entrada/Salida y susautores).

Nótese que, se ha empleado la tercera versión de la topología de red neuronal FuzzyARTMAP. Los algoritmos que implementan esta red neuronal han sido desarrollados yprogramados por el director del presente proyecto, Jesús Brezmes.

Partiendo del algoritmo inicial de programación de la red Fuzzy ARTMAP recogido en elartículo Fuzzy ARTMAP: A Neural Network Architecture for Incremental SupervisedLearning of Analog Multidimensional Maps [3], se han diseñado dos nuevas versiones (v2y v3) que pretenden mejorar al máximo los resultados conseguidos. La modificaciónllevada a cabo para la segunda versión se centra en la especificación de un único valor devigilance parameter por cada clase existente.

Page 44: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

42

APRENDIZAJEModelo dela red Topología Supervisada

/nosupervisada

ReglaAsociación

Inform.input/output Autores

AdaptativeResonanceTheory 1:ART1Fuzzy ART

2 CapasFeedForward/FeedbackConex.Laterales yautorrecurrente

Nosupervisada

Competitivo(ResonanciaAdaptativa)

HeteroAsoc. Binarias

CarpenterGrossberg1986

AdaptativeResonanceTheory 2:ART2Fuzzy ART

2 CapasFeedForward/FeedbackConex.Laterales yautorrecurrente

Nosupervisada

Competitivo(ResonanciaAdaptativa)

HeteroAsoc. Analog.

CarpenterGrossberg1987

AdaptativeResonanceTheory:FuzzyARTMAP(Versión 3)

2 CapasFeedForward/FeedbackConex.Laterales yautorrecurrente

SupervisadaCompetitivo(ResonanciaAdaptativa)

HeteroAsoc.

Binariaso bienAnalog.

JesúsBrezmes1999

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 aldesarrollado mediante la segunda versión. La única diferencia es que durante la fase detesteo, se inicia con un vigilance parameter elevado y, a medida que la red va evaluandohace disminuir progresivamente el valor del vigilance parameter, hasta que todas lasmedidas 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 talescomo, 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 laRed.

Para los tipos de red empleados, los parámetros de entrada son prácticamente comunes, porlo que a continuación presentaremos una lista que recoge todos ellos, dando una brevedescripción de su función dentro de la red:

Page 45: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

43

Parámetros FUNCIÓNVigbase Es el vigilance parameter de la red ART A. Normalmente lo

pondremos a 0. Las medidas presentadas se agrupan en un mismonodo aunque no se parezcan mucho. Por lo tanto tendremos menosclases y aumentaremos la capacidad de generalización de la red

vigb Es el vigilance parameter de la red ART B. Normalmente lopondremos a 1. Las medidas presentadas se deben parecer muchopara agrupar 2 medidas bajo un mismo nodo. Tendremos másclases y disminuiremos la capacidad de generalización.

lra Es el learning rate de la red ART A, cuyo valor queda definido deforma libre por el usuario. Teniendo en cuenta que un lra próximoa 1 es para medidas poco ruidosas, y con un lra próximo a cero espara medidas ruidosas.

lrb Es el learning rate de la red ART B, lo definiremos a 1, ya que sesupone que las medidas que le presentemos a ART B, serán pocoruidosas.

Alfa Choice parameter, cuyo valor es 0.001, para todas lassimulaciones realizadas en este proyecto.

Errormax Es un parámetro cuyo valor está expresado en %, de forma que lared entrenará hasta que se cumpla el porcentaje de aciertos en elconjunto de entrada (para la red de entrenamiento)

Ent_aux Es la matriz que contiene los datos a analizar. Dicha matriz debeestar normalizada entre 0 y 1. El usuario puede especificar queparámetros (gf, dg, dgn,...) desea representar, escogiendo lascolumnas de la matriz global que le interese.

Sal_aux Es un vector columnas que indica cual es nuestro target. Debeestar normalizado entre 0 y 1. Es en este vector dondeindicaremos el tipo de clasificación que deseamos que nos efectúela 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 sinuestra red ha sido capaz de cumplir con nuestro objetivo con una cierta garantía. Estosparámetros nos dan una visión de cómo ha ido el entrenamiento de la red, nos brindan laposibilidad de conocer cómo han quedado actualizados los pesos, cuales han sido los lra ylrb definitivos y nos da una tasa de aciertos (en %) de nuestra red, tomando este últimoparámetro como referencia para determinar si nuestra red ha cumplido con el objetivoprevisto.

Véase a continuación las diferentes variables que devuelve las redes empleadas en esteproyecto (obsérvese que no se ha hecho ninguna distinción entre las salidas de lasdiferentes topologías de red, esto es debido a que muchas de las variables de salida soncomunes entre las diferentes topologías de red analizadas en este proyecto).

Page 46: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

44

PARÁMETROS FUNCIÓNViga Es el vigilance parameter de la red ART A actualizado.Wija Pesos actualizados de la red ART A del entrenamientoWijb Pesos actualizados de la red ART B de la evaluaciónWab Pesos del Map Field

Ent Matriz de entrada con los datosPred Vector columna con los valores predichos por la redReal Vector columna con los valores reales de salida

a1

Sal Vector columna con los targets deseadosEpoch Número de epoch empleados

Infotrn Dimviga Dimensión del vigilance parameter de la red ART A

Ok Indica el número de aciertos que ha clasificadocorrectamente

Nok Muestra el número de errores que ha cometido al clasificarNsnc Contiene el número de medidas que no ha sabido clasificar

Infotest

Rateok Tanto por ciento de aciertos. Parámetro que emplearemospara 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 resultadosfinales es el método de entrenamiento y evaluación de la red. Nosotros hemos utilizado elprimero de estos dos métodos:

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

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

No existe ningún criterio determinista que nos asegure cual de los métodos presentadosanteriormente es mejor. El primero evalúa la eficacia del método en general, el segundo laeficacia 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 ennuestra propia experiencia para determinar que parámetros escogeremos y que métodosaplicaremos

A continuación se muestran los ficheros generados para programar la topología de redneuronal Fuzzy ART:

Page 47: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

45

- Fichero FUZZY_ART.M

Con este archivo se analizará la topología de red Fuzzy ART de todo el conjuntoexperimental de datos.

El usuario deberá modificar parte del código (consúltese anexo) en función del target quedesee evaluar. La filosofía de programación de este algoritmo se ha basado en calcular elvigilance parameter (ro) tal que genere el número máximo de clases deseado, según el tipode clasificación que estemos llevando a cabo. Por ejemplo, si intentamos clasificar por tipode aceite, deberemos encontrar el vigilance parameter (el programa efectúa dicho cálculode 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 formaordenada, según el target que deseemos alcanzar. Por ejemplo, para clasificar los 10 tiposde aceites, deberemos tener 10 matrices, donde cada una de ellas contendrá los valorescorrespondientes para cada tipo de aceite

Mediante una estructura for se van recorriendo todos los parámetros almacenados en lavariable senspart de forma que se evalúa con cada uno de ello. Para poder cuantificar latasa de aciertos de nuestra red, se ha calculado una variable (rate ok), la cual compara unvector que contiene las clases calculadas por la red, con otro vector que contiene las clasesreales. Se suman todas clases coincidentes, se multiplican por 100 y se dividen por el totalde 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ónde programación, de todo el conjunto experimental de datos.

Se ha tratado de evaluar con esta red la viabilidad de nuestro prototipo para conseguiralcanzar el objetivo de este proyecto. Hay que especificar que, para esta red los datos deentrada deben estar normalizados entre 0 y 1, y el método de evaluación ha sido laaplicación de un leave one out. Por otro lado, si el usuario desea evaluar esta topologíapara diferentes valores de learning Rate (variable lr), deberá ir modificando esta variabledesde programa cada vez que lo ejecute.

Mediante una doble estructura for se van recorriendo todos los parámetros almacenados enla variable senspart de forma que se evalúa con cada uno de ellos cada uno de los 4objetivos (almacenados en la variable targetx).

Todos los resultados son guardados en una estructura (ac_fzart(x,t)), cuyos campos son lossiguientes:

ac_fzart(x,t).bien=bien;ac_fzart(x,t).mal=mal;ac_fzart(x,t).nsnc=nsnc;

Page 48: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Diseño de la nariz electrónica

46

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 desalida almacenadas en los diferentes campos mostrados anteriormente: target, par, bien,mal, nsnc, rateok y historial.

Page 49: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

47

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 deolfato 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 realizaronpara escoger los mejores con mejor sensibilidad para nuestra aplicación. Después semostrará todo el conjunto experimental de datos que ha supuesto este proyecto, dando unavisión de la metodología experimental que se ha seguido. También se expondrá elcalendario de medidas que se ha llevado a cabo. Posteriormente, se presentarán losresultados conseguidos tras aplicar la técnica de Componentes Principales (PCA) a todo elconjunto de datos experimentales.

A continuación, se comprobará cómo se agrupan las medidas cuando se aplica una red deaprendizaje no supervisado FUZZY ART, tratando de comprobar que la red clasifica deforma 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 dela red neuronal FUZZY ARTMAP.

Finalmente se analizará globalmente todos los resultados conseguidos, a partir de loscuales 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 lasmedidas se efectuaron en una cámara, es decir, no se conectaban cámaras en serie. Estetipo de medidas (una sola cámara) se hicieron para todos los sensores (Taguchi, Fis-SP yFis-SB). Más tarde se realizaron pruebas con dos cámaras conectadas para los sensoresTaguchi y Fis-SP. En estas medidas se comprobó que un mismo modelo de sensor ubicadoen las dos cámaras, presentaba una mejor sensibilidad en la primera cámara respecto a lasegunda. Esto se debe a que la cámara nº 1 recibe el flujo directo del Headspace mientrasque la cámara nº 2 lo recibe a través de la primera. También se comprobó que conectar unasegunda 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 decada sensor. Se escogieron los aceites de tipo 1 y 4 para la elaboración de estas medidas deprueba, 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 losresultados de estas medidas de prueba. También se destacan en negrita los sensoresfinalmente utilizados para el conjunto experimental de medidas:

Page 50: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

48

TIPO SENSOR

1 C

ÁM

AR

A(M

ED

IDA

1)

1 C

ÁM

AR

A(M

ED

IDA

2)

2 C

ÁM

AR

AS

(ME

DID

A 2

)

2 C

ÁM

AR

AS

(ME

DID

A 2

)

APLICACIÓN

UB

ICA

CIÓ

N(N

ºC

ÁM

AR

A)

ACEITE 1 ACEITE 4TAGUCHI

TGS-882 1.229 - 1.469 1.699 Control de cocinas, vaporesde alcohol

2

TGS-824 0.456 - 0.575 0.671 Amoniaco 2TGS-822 0.432 - 0.433 0.451 Alcohol, tolueno, xileno 2TGS-825 0.234 - 0.857 0.962 Sulfato de hidrógeno 2TGS-880 0.220 - 0.157 0.182 Volátiles de alimentos 1TGS-826 0.206 - 0.608 0.820 Amoniaco -TGS-813 0.167 - 0.200 0.260 LP-gas/propano (gases

combustibles)1

TGS-800 0.162 0.394 0.511 0.726 Calidad del aire eninteriores

2

TGS-832 0.074 0.450 0.2127 0.299 CFCs (R-134a, R-22) 1TGS-842 - 0.115 0.428 0.650 Gas natural/metano 2TGS-831 0.097 - 0.189 0.321 CFCs (R-21, R-22) 1

FIS-SPSP-31-00 0.734 - - - Solventes orgánicos 1SP-53-00 0.221 - - - Amoniaco -SP-32-00 0.098 - - - Alcohol 1

FIS-SBSB-30-00 0.295 0.121 - - Alcohol, solventes

orgánicos-

SB-42A-00 0.133 0.107 - - HCFCs (R-134a, R-404,R-407)

-

SB-31-00 0.065 0.096 - - Solventes orgánicos(propósito general)

-

SB-11A-00 0.064 0.080 - - Gases inflamables(propósito general)

-

SB-19-00 0.017 - - - Hidrógeno -SB-15-00 0.015 0.029 - - Propano/butano -SB-41-00 - 0.015 - - HCFCs (R-22) -

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 conjuntoexperimental de medidas.

Page 51: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

49

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 distinguirdos grandes bloques:

1.- Medidas para los 10 tipos de aceite2.- 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 porproblemas con el del Headspace Autosampler (obturación de la aguja que extrae la muestrade 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 diferentestemperaturas del Headspace Autosampler (temperatura del horno, del loop y de lamanguera 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, elsegundo bloque que constituye el conjunto global de medidas de este proyecto, son lasdenominadas medidas de calibración. Al final de cada ciclo de medidas correspondiente a10 tipos de aceite, se hace una medida de calibración (0.5 µl de etanol), para ver si lossensores mostraban síntomas de desgaste, derivas temporales, o cualquier otro problemacausado por las medidas. Gracias a estas calibraciones, se detectó el problema mencionadocon el Headspace.

3.2.3 Calendario de medidas

En este apartado se presentará de forma cronológica, mediante tablas, todo el conjunto demedidas llevadas a cabo. Hay que destacar que se hicieron un total de 100 medidascomprendidas entre las fechas 7/04/2001 y el 23/04/2001. El período inicial previsto erade diez días y por tanto habría terminado el 16/04/2001. Como consecuencia de losproblemas 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 (previstosinicialmente) y sin ningún orden lógico.

2) La ciclo de medidas efectuados en un día (aceite 1, aceite 2, ..., aceite 10) variaban encuanto al orden de la serie para el día siguiente (aceite 10, aceite 9, ..., aceite 1).

Page 52: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

50

Todo esto se hace para evitar que los sensores adquieran una cierta memoria a lo largo deeste período de medidas. Véase a continuación, una primera tabla en la que se muestran lasmedidas previstas inicialmente:

Fecha Día deMedida

Temp deMedida ºC

Tipo deMedida

Observaciones

7/04/01 1 70,75,80 Aceite1-aceite10-calibración -8/04/01 2 80,85,90 Aceite10-aceite1-calibración TGS 882 falla en todas las medidas9/04/01 3 90,95,100 Aceite1-aceite10-calibración Problema resuelto, aunque en algunas

medidas tiene un comportamientoirregular

10/04/01 4 80,85,90 Aceite10-aceite1-calibración -11/04/01 5 70,75,80 Aceite1-aceite10-calibración -12/04/01 6 90,95,100 Aceite10-aceite1-calibración -13/04/01 7 90,95,100 Aceite1-aceite10-calibración Se nota una pérdida de sensibilidad

de los sensores14/04/01 8 70,75,80 Aceite10-aceite1-calibración Clara pérdida de sensibilidad de los

sensores15/04/01 9 70,75,80 Aceite1-aceite10-calibración En las calibraciones los sensores han

perdido sensibilidad16/04/01 10 80,85,90 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 apartir del día 6, la sensibilidad de los sensores había disminuido ligeramente, por tanto, unavez solucionado el problema del Headpace, se repitieron los 5 últimos días de medida:

Fecha Día deMedida

Temp deMedida ºC

Tipo deMedida

Observaciones

19/04/01 11 70,75,80 Aceite10-aceite1-calibración REPETICIÓN DÍA 820/04/01 12 70,75,80 Aceite1-aceite10-calibración REPETICIÓN DÍA 921/04/01 13 80,85,90 Aceite10-aceite1-calibración REPETICIÓN DÍA 1022/04/01 14 90,95,100 Aceite1-aceite10-calibración REPETICIÓN DÍA 7

Se han agotado aceites tipo 1 y 423/04/01 15 90,95,100 Aceite10-aceite5-aceite3-

aceite 2-calibraciónREPETICIÓN DÍA 6

Para los aceites 1 y 4 seaprovechará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 comodías 8, 9, 10, 7 y 6 respectivamente y por lo tanto, sustituirán a las que se hicieron laprimera vez. También se ha sustituido las medidas del día 2 correspondientes sólo al sensorque falló (TGS 882) por el día de medida 4, puesto que es el día más próximo realizado ala misma temperatura que el día de medida 2. Por lo tanto, tenemos de esta forma, un totalde 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 medida1, 8 y 11 para comprobar visualmente el comportamiento antes, durante y después de lapérdida de sensibilidad de los sensores de la cámara nº 1 (se observó el mismocomportamiento en la cámara nº 2):

Page 53: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

51

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

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

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

0

10

20

30

40

50

60

70

0 100 200 300 400 500 600 700

segons

resi

sten

cia

(k)

S1

S2

S3

S4

S5

S6

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

0

10

20

30

40

50

60

70

0 100 200 300 400 500 600 700

segons

resi

sten

cia

(k) S1

S2

S3 S4

S5

S6

Page 54: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

52

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 Descripción del aceite1 Variedad arbequina, viejo2 Variedad empeltre, viejo, de prensa3 Variedad picual campaña 2000/2001, hecho en

Cataluña4 Variedad arbequina, viejo5 Variedad arroniz (Navarra), de prensa, defectuoso6 Variedad arroniz (Navarra), sin defecto7 Variedad empeltre (navarra)8 Variedad arbequina, campaña 2000/2001 D.O

SIURANA9 Aceite con defecto de avinado y rancio10 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 unamedida de calibración. El aceite suministrado está envasado en botellas de 250 ml y parasu mejor conservación se han guardado en la nevera. El día antes de las medidas, sepreparan 10 viales con 10 ml de un tipo distinto de aceite, dejándose a temperatura

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

0

10

20

30

40

50

60

70

80

0 100 200 300 400 500 600 700

segons

resi

sten

cia

(k) S1

S2 S3 S4 S5 S6

Page 55: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

53

ambiente. Para la calibración se utilizará un vial con 0.5 µl de ETANOL líquido ya quetodos 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, 10son para la adquisición de los sensores, 72.7 para el reposo de éstos, y el resto para lapreparación del vial antes de adquirir la muestra. Estos tiempos se indican al introducir losparámetros del Headspace y del programa ACEITES.EXE. Los pasos a seguir para cadadía de medida son los que se muestran a continuación:

1. Comprobar las alimentaciones de las cámaras de sensores (tensiones de controly de heater).

2. Comprobar que la botella de aire seco (entrada de aire del Headspace) marque5 bar de presión.

3. Introducir los 11 viales en la bandeja del Headspace (10 de aceite y uno deetanol 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 serel 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á ala calibración.

5. Ejecutar el programa ACEITES.EXE. en los dos ordenadores e introducir losparámetros pedidos teniendo en cuenta que éstos deben coincidir con losintroducidos en el Headspace:

- Número de pruebas a realizar: 11

Page 56: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

54

- 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 estadode espera para poder sincronizarse con las medidas del Headspace.

7. Pulsar la tecla START/STOP METOHD (inicio de método) en el Headspacepara que empiece a analizar los viales. Comprobar que una vez introducido elvial en el horno, se ha realizado la sincronización.

8. Finalizadas todas las medidas, dejar un tiempo mínimo de 2 horas para que lossensores se recuperen después de la calibración y volver al paso 1 para lasiguiente ciclo de medidas.

Debemos ser lo más rigurosos posibles en el cumplimiento de todos y cada uno de lospasos 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 cualespodremos determinar la viabilidad de nuestro equipo para poder cumplir con los objetivosexpuestos al inicio.

En primer lugar se presentarán los resultados conseguidos tras aplicar la técnica deComponentes Principales (PCA), para diferentes conjunto de datos experimentales(parámetros de la matriz global) tratando de obtener una primera visión gráfica de losresultados 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 lasversiones II para FUZZY ART y III para FUZZY ARTMAP. Estos algoritmos se aplicaránpara el conjunto de datos y también nos darán una primera conclusión del éxito de nuestroobjetivo.

En un tercer punto, se seleccionarán los mejores parámetros calculando su resoluciónmedía, y se volverán a aplicar las tres técnicas anteriores. También se realizará unaselección de los mejores sensores con el mejor parámetro calculado.

Page 57: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

55

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 ainterpretar los resultados obtenidos. Para facilitar la comprensión de los resultados quemostraremos a continuación, se recomienda al lector que preste atención a la siguientenomenclatura que se ha elegido para identificar los datos representados.

LEYENDA DATOS EXPERIMENTALESNÚMERO, COLOR y EJEMPLO SIGNIFICADO

1er Número indica las temperaturas delHeadspace (horno, loop y manguera)correspondientes a la medida

7: Temperaturas de 70, 75, 80 ºC8: Temperaturas de 80, 85, 90 ºC9: Temperaturas de 90, 95, 100 ºC

2ndo Número indica el tipo de aceiteanalizado

1: Aceite tipo 12: Aceite tipo 2 · · ·9: Aceite tipo 90: Aceite tipo 10

3er Número indica el día de la medida 1: Día de medida 12: Día de medida 2· · ·9: Día de medida 90: Día de medida 10

El color escogido para estas medidas,depende de la temperatura

- Medidas en color VERDE = 70, 75, 80 ºC- Medidas en color AZUL = 80, 85, 90 ºC- Medidas en color ROJO = 90, 95, 100 ºC902: Medida realizada a temperaturas de 90,95, 100 ºC, correspondiente al aceite de tipo10, efectuada el día 2 de medidaEjemplos: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 acontinuació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 conjuntode datos experimentales. De los tipos de PCA (PCA 1-2, PCA 1-3 y PCA 2-3) obtenidospara cada combinación se presentarán los resultados para los PCA 1-2 ya que son los hanobtenido mejores resultados, y por tanto nos centraremos en este tipo de PCA. Primero, sepresentará una tabla en la que se comentará de forma general el comportamiento delanálisis PCA de las combinaciones aplicadas, y finalmente se mostrarán las figuras PCAobtenidas 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.

Page 58: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

56

PRIMEROS RESULTADOS PCACOMBINACION

DEPARÁMETROS

OBSERVACIONES

Sólo gf

1. Aceites tipo 1, 5 y 10 tienden a una buena agrupación2. 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.

Sólo dg

1. Aceites tipo 1, 2, 3, 5, 9 y 10 se muestran agrupados en sumayorí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.

Sólo tm

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.

Sólo dgn

1. Aceites tipo 1, 5 y 10 muestran una buena agrupación pero endiferentes casos de PCA. No se aprecia una separación entreaceites de mismo tipo.

2. Aceites de tipo 2 y 9 muestra una mejor agrupación y menorconfusión entre ellos.

3. Confusión entre aceites de tipo 6 y 7.4. Aceites tipo 4 y 8 muy próximos a 1.

Gf + dg

1. Aceites tipo 1, 5, y 10 muestran una buena agrupación enalgunos casos de PCA.

2. Se observa la separación mencionada para la mayoría deaceites.

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.

Gf + dg + tm

1. Aceites tipo 1, 3, y 5 se discriminan bien en algunos casos dePCA observando en algunos casos la separación mencionada.

2. Confusión entre aceites de tipo 2, 9 y 10 en algunos casos dePCA

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 elmomento, sólo se han conseguido diferenciar con cierto éxito los aceites de tipo 1, 3, 5 y10. Nótese que el aceite de tipo 4 es del mismo tipo que el 1, y por lo tanto parece lógicoque se confundan o estén muy próximos.

Page 59: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

57

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

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 5primeros días de medida y los 5 últimos. Hay que tener en cuenta que los 5 últimos ciclosde medidas fueron realizados después de solucionar el problema con el Headspace, y porlo tanto, ha podido ser la causa de esta separación (es posible que la aguja que inyecta elvial estuviese un poco obturada en los 5 primeros ciclos ya que en los 5 siguientes seutilizó 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.

-5 0 5 1 0-3

-2

-1

0

1

2

3

4

711

721

731

741

751

761771781

791

701715

725

735

745

755

765775

785

795

705

718728

738

748

758

768778788

798

708

719729

739

749

759

769779789 799

709

812

822

832

842

852

862872

882

892

802

814

824

834

844

854

864874884

894

804

810820

830

840

850

860870880890

800

913

923

933

943

953

963973

983

993

903916

926936

946

956

966 976986

996

906

917

927937

947

957

967977987997

907

P C # 1

PC

#2

S c o r e s P C # 1 v s P C # 2

5 primeros días

5 últimos días

Aceite 5

Aceite 9

Aceite 2

Aceite 1

Aceite1

Aceite 10

Aceite 2 Aceite 9

Aceite 10

Aceite 5

Confusión general restode aceites

( gf )

Page 60: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

58

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 delos aceites 4 y 8, que están próximos al aceite 1. Es quizá uno de los mejores resultados delos PCA analizados en cuanto a numero de aceites discriminados, sin embargo no es unasolución óptima para el objetivo de nuestro proyecto.

A continuación se muestra la figura PCA con el parámetro Tm. Aquí se aprecia laagrupación de 3 tipos de aceites, el 3, el 8 y el 10. El resto no muestra ninguna tendenciaaunque se dan casos aislados de agrupación de un número pequeño de medidas de unmismo aceite.

-5 0 5 1 0-2

-1 .5

-1

-0 .5

0

0 .5

1

1 .5

2

2 .5

3

711 721

731

741

751

761771781

791

701

715

725

735

745

755

765775785 795

705

718

728738

748

758

768778788

798

708

719

729

739

749

759

769779

789

799

709

812 822

832

842

852

862872882

892

802

814824

834

844

854

864874

884894

804

810

820830

840

850

860870

880

890

800

913

923

933

943

953

963973

983 993

903

916

926936

946

956

966976

986

996

906

917

927937

947

957

967977

987

997

907

P C # 1

PC

#2

S c o r e s P C # 1 v s P C # 2

Confusión 6, 7

Confusión 4, 8 yproximidad con 1

Aceite 1

Aceite 3

Aceite 5

Aceite 9

Aceite 2

Aceite 10

( dgn )

Page 61: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

59

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 6tipos 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. Masadelante, esto se comprobará cuando analicemos las mejores variables de la matriz globalen cuanto a su resolución.

-4 -2 0 2 4 6 8 1 0 1 2-2 .5

-2

-1 .5

-1

-0 .5

0

0 .5

1

1 .5

2

2 .5

711721

731

741751

761

771

781

791

701

715725

735

745755

765

775785

795

705

718

728738

748

758

768778

788

798

708

719

729

739

749

759

769779

789

799

709

812

822 832

842

852

862872 882

892

802

814

824

834

844

854

864874

884

894

804

810

820

830

840

850

860

870

880

890

800

913

923

933

943

953

963973

983

993

903

916

926

936

946

956

966

976986

996

906

917

927

937

947

957

967977

987997

907

P C # 1

PC

#2

S c o r e s P C # 1 v s P C # 2

Confusión generaldel resto de aceites

Aceite 10

Aceite 8

Aceite 3

( tm )

Page 62: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

60

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 dealgún de ellos.

En las siguientes figuras se mostrarán el resultado de la combinación de diversosparámetros de la matriz global. Se analizarán el conjunto de parámetros gf + dg y elconjunto gf + dg + tm. De estos dos conjuntos, éste último es el que mejor resultado se haobtenido logrando discriminar con cierto éxito los aceites 4 y 8, que en los otrosparámetros se mostraban imposibles de distinguir. Pese a esto, se continúa con lasconfusiones mencionadas para los casos anteriores.

-5 0 5 1 0-2

-1

0

1

2

3

4

711

721731

741

751

761771781791

701

715

725

735

745

755

765775785 795

705

718728

738

748

758

768778788

798

708

719

729

739

749

759

769779789

799

709

812

822

832

842

852

862872882892

802

814

824

834

844

854

864874884 894

804

810

820830

840

850

860870

880

890

800

913

923933

943

953

963973983

993

903

916

926936

946

956

966976

986

996

906

917

927937

947

957

967977

987

997

907

P C # 1

PC

#2

S c o r e s P C # 1 v s P C # 2

Confusión 4 con 8y 6 con 7

Aceite 1

Aceite 3

Aceite 9

Aceite 5Aceite 2

Aceite 10

( dg )

Page 63: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

61

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

-6 -4 -2 0 2 4 6 8 1 0 1 2 1 4-3

-2

-1

0

1

2

3

4

5

711

721

731

741

751

761771781

791

701

715

725

735

745

755

765775

785

795

705

718728

738

748

758

768778788

798

708

719

729

739

749

759

769779789

799

709

812

822

832

842

852

862872

882

892

802

814

824

834

844

854

864874

884

894

804

810

820

830

840

850

860870880890

800

913

923

933

943

953

963973

983

993

903

916

926936

946 956

966 976986

996

906

917

927937

947

957

967977987

997

907

P C # 1

PC

#2

S c o r e s P C # 1 v s P C # 2

Confusiónresto de aceites

Aceite 10

Aceite 2

Aceite 1

Aceite 5

( gf + dg )

-10 -5 0 5 1 0 1 5-12

-10

-8

-6

-4

-2

0

2

4711

721

731

741

751

761

771

781

791701

715

725

735

745

755

765775

785

795

705

718

728

738

748

758

768778

788

798

708

719

729

739

749

759

769

779

789

799709

812

822

832

842

852

862

872

882

892802

814 824

834

844

854

864874

884

894

804

810820

830

840

850

860

870

880

890

800

913

923

933

943

953

963

973

983

993

903

916

926

936

946

956

966976

986

996

906

917 927

937

947

957

967977

987

997

907

P C # 1

PC

#2

S c o r e s P C # 1 v s P C # 2

Confusión 6,7 Confusión 2, 9, 10

Aceite 5Aceite 1

Aceite 4

Aceite 8

Aceite 3

( gf + dg + tm )

Page 64: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

62

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 enalgunos 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 lasdiferentes 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 quecalcular otros valores:

1. Cálculo de la centroide de cada uno de los 10 aceites:

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

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

4. Factor de resolución para un aceite:

(1) 10

)(2

10

)(1 10

1_

10

1_ ∑∑

== == ii

iscorey

iscorex

(2) 10

)()(10

1

2

2∑=

−+−= j

jcentroideijcentroidei YYXX

di

(3) 10

10

1jcentroideicentroide

j

distdist

dci

−=

∑=

(4) di

dcifi =

Page 65: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

63

5. Cálculo del factor medio:

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

PARÁMETROS PCA 1-2 PCA 1-3 PCA 2-3Sólo gf 1.658 1.645 0.6371Sólo dg 1.826 1.624 1.694Sólo tm 1.817 1.792 1.037Sólo dgn 1.865 1.612 1.570Gf + dg 1.720 1.634 0.855

Gf + dg + tm 1.844 1.800 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 queobtiene mejores resultados de resolución, observaremos que el mejor parámetro es dgnseguido del parámetro dg. Esto nos confirma lo dicho anteriormente en las figuras PCAmostradas. Por el momento son los parámetros que dan mejores resultados, aunque noconstituyen una solución suficientemente buena para nuestro propósito. También seobserva 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 nosclasifican, de forma espontánea, las diferentes medidas que le presentamos. Hay queespecificar que para esta red los datos de entrada deben estar normalizados entre 0 y 1, y deforma ordenada, según el target que deseemos alcanzar. Por ejemplo, si tratamos declasificar los aceites por tipos, debemos tener 10 matrices, donde cada una de ellascontendrá los valores correspondientes a un tipo de aceite: por lo tanto nuestro targettendrá 10 clases distintas.

La filosofía seguida para programar el algoritmo que implementa esta red ha sido lasiguiente: Se calcula el vigilance parameter (ro) tal que genere el número de clasesdeseadas, 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 10clases, uno para cada tipo. En el siguiente apartado, analizaremos los resultadosconseguidos con esta topología de red al tratar de cumplir con los objetivos expuestos en laintroducción de este tercer capítulo. Se dará una breve descripción de los parámetros de

(5) 10

10

1∑

== i

fif

Page 66: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

64

entrada empleados, cual es su target, y presentaremos una tabla en la que recogeremos losmejores resultados conseguidos.

Finalmente, trataremos de reproducir mediante esta topología de red algunos de loscomportamientos 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 demedidas a excepción de las calibraciones, constituyendo un total de 100 medidas aclasificar (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 deentrada que se han analizado, así como de los targets que se ha pretendido alcanzar. Porotro lado, se comentarán el significado de las variables de salida, con la finalidad deespecificar el criterio seguido para medir la tasa de aciertos de esta topología de redneuronal.

Finalmente presentaremos una tabla que recoge los resultados conseguidos, y lasconclusiones que se desprenden tras la aplicación de Fuzzy ART a nuestro conjunto dedatos 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 ennuestra propia experiencia para determinar que parámetros escogeremos y que métodosaplicaremos. Con la finalidad de acotar el número de combinaciones posibles deparámetros de entrada a la red, se ha optado por aplicar los siguientes:

COMBINACIONES PARÁMETROS

GfDg

Dgn

Tm

PARÁMETROS

AISLADOS

GiGi + gfGf + dgGi + dg

2 PARÁMETROS

Gf + tmGf + dg + tm3 PARÁMETROS

Dg + dgn + tm

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 intentadoalcanzar:

Page 67: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

65

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 unavariable (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 clasescoincidentes, 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 nosgenera 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 FuzzyART a todo el conjunto experimental de datos. Teniendo en cuenta todo lo citado hasta elmomento y ejecutando el código (FUZZY_ART.M) anexado a este proyecto, con relacióna 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 unadiscriminació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 20clases es dgn. Estos parámetros son los que se han obtenido mejores resultados en losPCA.

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

Page 68: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

66

PARÁMETROS DE ENTRADA PARÁMETROS DE SALIDA

Parámetros Target Rate Ok(%)

Ro

Gf 10 clases 25 0.8Dg 10 clases 23 0.7Dgn 10 clases 20 0.7Tm 10 clases 10 0.8Gi 10 clases 11 0.9

Gi + gf 10 clases 12 0.7Gf + dg 10 clases 27 0.7Gi + dg 10 clases 24 0.7Gf + tm 10 clases 40 0.8

Gf + dg + tm 10 clases 23 0.8Dg + dgn + tm 10 clases 18 0.8

Gf 20 clases 5 0.8Dg 20 clases 8 0.8Dgn 20 clases 28 0.9Tm 20 clases 16 0.9Gi 20 clases 5 0.9

Gi + gf 20 clases 6 0.8Gf + dg 20 clases 5 0.8Gi + dg 20 clases 10 0.8Gf + tm 20 clases 38 0.9

Gf + dg + tm 20 clases 5 0.8Dg + dgn + tm 20 clases 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 laviabilidad de nuestro sistema de olfato electrónico en la discriminación de los tipos deaceite, con la finalidad de encontrar futuras aplicaciones comerciales para la narizelectrónica que pretendemos implementar.

En el siguiente punto, pasaremos a discutir los resultados que se han alcanzado tras aplicarel algoritmo de la red neuronal FUZZY ARTMAP a todo el conjunto experimental de datosque 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 de100 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.

Page 69: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

67

- Resultados Fuzzy ARTMAP del conjunto experimental

A continuación, mostraremos bajo una única tabla todos los parámetros analizadosmediante este tipo de red, dando una idea general de los resultados obtenidos:

PARÁMETROS DE ENTRADA PARÁMETROSDE SALIDA

Parámetros Target Rate Ok(%)

Gf 10 clases 42Dg 10 clases 56Dgn 10 clases 60Tm 10 clases 62Gi 10 clases 0

Gi + gf 10 clases 22Gf + dg 10 clases 50Gi + dg 10 clases 26Gf + tm 10 clases 47

Gf + dg + tm 10 clases 54Dg + dgn + tm 10 clases 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, alaplicar una ANN supervisada hemos conseguido mejorar los resultados, siendo sus tasas deaciertos las más elevadas. Realizando una confusion matrix de todos los parámetrosanalizados, es decir, para cada combinación de parámetros realizar una matriz dedimensiones 10 x 10 elementos en la que sus columnas represente el valor real del tipo deaceite, y sus filas la clasificación realizada mediante este tipo de red, obtenemos lassiguientes 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 quese trata del mismo aceite.

- El aceite 8, tiende a agruparse en algunos parámetros (dg, dgn, gf+dg y gf+dg+tm) yen 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écnicasPCA y FUZZY_ART: A pesar de que esta última red empleada ha conseguido mejoresresultados, no son del todo satisfactorias.

Nótese, que hasta ahora los parámetros analizados corresponden a todos los sensoresutilizados en este proyecto, es decir, cuando se analizaba un parámetro en concreto se

Page 70: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

68

consideraban las medidas experimentales de todos los sensores correspondientes a eseparámetro en cuestión (cada parámetro ocupa en la matriz global 12 columnascorrespondientes a los 12 sensores utilizados). Por lo tanto, no se ha llevado a cabo unaselección de las mejores variables (5 parámetros x 12 sensores = 60 variables), ni tampocouna selección de los mejores sensores. A continuación, se procederá a una selección de lasmejores variables y sensores, aplicando de nuevo todas las técnicas empleadas en esteproyecto, empezando por la FUZZY_ARTMAP ya que es la que ha dado los mejoresresultados, y para el análisis PCA y la red FUZZY_ART, se analizarán los mejorespará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 porparámetro). Tal y como se ha visto anteriormente, los resultados obtenidos hasta elmomento no alcanzan el nivel de éxito esperado, por lo que se volverá a aplicar las mismastécnicas utilizadas, pero realizando previamente una selección de los mejores sensores yvariables.

Para realizar el proceso de selección del mejor sensor, se ha elegido como parámetro decomparació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 suresolución media:

Donde:

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

Columna 46 Variable Dgn : 8.725 (S10) mayor resoluciónColumna 31 Variable Dg : 8.045 (S 7)

( )

( )(6)

te_jmedia_acei-k_aceite_j_101

101

var__101

10

1

210_aceite_j_

1___

10_

1_

2

∑ ∑

= =

=

−=

aceite

aceitej

medida

jaceitemedidak

aceite

aceitej

medida

jaceitemedida

res

(8) _1001

var

(7) ___101

__

100

1

10

1

=

=

=

=

i

i

imedida

ijaceitemedidajaceitemedida

Page 71: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

69

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

Page 72: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

70

Este mismo programa realizado, también presenta por pantalla una lista de sensoresordenados según el parámetro dgn. Puesto que tenemos diferentes días de medida para unmismo sensor, el programa calcula el valor medio del parámetro dgn correspondiente a unsensor, 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 sensoresse aplicará de nuevo la red FUZZY_ARTMAP para las siguientes combinaciones devariables y sensores:

TIPO COMBINACIONES

2 primeras variables5 primeras variables10 primeras variables15 primeras variables20 primeras variables40 primeras variables

MEJORESVARIABLES

48 primeras variablesS4 + S6

S2 + S4 + S6MEJORESSENSORES 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 analizadosmediante este tipo de red, dando una idea general de os resultados obtenidos:

Page 73: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

71

PARÁMETROS DE ENTRADA PARÁMETROSDE SALIDA

Parámetros Target Rate Ok(%)

2 primeras variables 10 clases 615 primeras variables 10 clases 7510 primeras variables 10 clases 5015 primeras variables 10 clases 6120 primeras variables 10 clases 5940 primeras variables 10 clases 5848 primeras variables 10 clases 54

S4 + S6 10 clases 30S2 + S4 + S6 10 clases 29

S2 + S3 + S4 + S6 +S7 + S8

10 clases 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 resultadodel 75% de aciertos. Comparando los resultados obtenidos con los de la tabla 3.10, nosdaremos cuenta de la importancia de hacer una selección de variables antes de aplicarcualquier técnica ya sea PCA o Redes Neuronales.

Si realizamos la confusion matrix para el mejor parámetro obtenido (o sea las 5 primerasvariables) obtendremos lo siguiente:

1 2 3 4 5 6 7 8 9 10

1 9 0 0 0 0 0 0 1 0 0

2 0 7 0 0 0 0 0 0 1 0

3 0 0 9 0 0 0 0 0 0 0

4 0 0 0 9 0 0 1 0 0 0

5 0 0 0 0 7 0 0 0 2 0

6 0 0 0 0 0 4 3 0 0 0

7 0 0 0 0 0 5 4 0 1 0

8 0 0 0 0 0 0 0 8 0 0

9 0 2 0 0 2 0 1 0 5 0

10 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 yaque no están normalizados como el resto, por lo tanto en la confusion matrix se hanrepresentado 90 clasificaciones.

Page 74: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

72

Podemos comprobar en la figura anterior, como la mayoría de aceites se sitúa en ladiagonal de la confusion matrix. También se observa de nuevo la confusión de entreaceites 6 y 7, y entre los aceites 2 y 9. A pesar de esto, se puede considerar una buenasolució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 20clases (separación entre los 5 primeros días y los 5 siguientes de medida):

PARÁMETROS DE ENTRADA PARÁMETROS DE SALIDA

Parámetros Rate Ok(%) 10 clases

Rate Ok(%) 20 clases

2 primeras variables 18 85 primeras variables 21 610 primeras variables 22 1415 primeras variables 28 1620 primeras variables 21 1740 primeras variables 24 2548 primeras variables 27 5

S4 + S6 23 9S2 + S4 + S6 25 5

S2 + S3 + S4 + S6 + S7 + S8 25 5

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 nuevose comprueba que la red de tipo fuzzy artmap (supervisada) obtiene mejores resultadospara esta aplicación que la red fuzzy art (no supervisada). También se observa que seobtienen 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 fuzzyartmap, 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 2y 9 se muestran más agrupados que en otros casos de PCA. También se vuelve acomprobar la proximidad de los aceites 4 y 8 con el aceite 1, aunque en este caso no haytanta 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 PCAanteriores. Esto se puede comprobar calculando la resolución (factor medio) del conjuntode agrupaciones como se hizo anteriormente en el primer PCA.

Page 75: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Medidas con aceites

73

Figura 3.13.- PCA con las 5 primeras variables

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

PARÁMETROS PCA 1-2Factor medio antes de la selección de mejores

variables de la matriz globalSólo Dg 1.826Sólo Tm 1.817Sólo Dgn 1.865Factor 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 5primeras variables.

-3 -2 -1 0 1 2 3 4 5-3 .5

-3

-2 .5

-2

-1 .5

-1

-0 .5

0

0 .5

1

1 .5

711

721

731

741

751

761

771

781

791

701715

725

735

745

755

765775

785

795 705

718

728

738

748

758768778

788

798

708

719

729

739

749

759

769

779

789

799

709

812

822

832

842

852

862

872

882

892

802

814824

834

844

854

864

874

884

894

804

810

820

830

840

850

860

870

880

890

800

913

923

933

943

953

963

973

983

993

903

916

926

936

946

956

966

976

986

996

906

917

927

937

947

957

967

977

987

997

907

P C # 1

PC

#2

S c o r e s P C # 1 v s P C # 2

Aceite 10

Aceite 9

Aceite 2

Aceite 5

Confusión 6,7

Aceite 4

Aceite 1

Aceite 3

Aceite 8

( 5 primeras var. )

Page 76: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Conclusiones

74

4.- CONCLUSIONES

Finalizado este proyecto, podemos concluir que es viable la utilización de una narizelectrónica para monitorizar la calidad del aceite de oliva. Además, estos instrumentos sonasequibles económicamente ya que se han utilizado sensores y componentes electrónicoscomerciales.

Como estudio previo al diseño definitivo de la nariz, se realizaron unas medidas de pruebacon las que se comprobó que los sensores con mejor respuesta para esta aplicación son losTaguchi y Fis-SP, descartando los Fis-SB. Realizando una selección de las mejoresvariables del conjunto experimental definitivo de medidas, y centrándonos en las 5 mejoresvariables, los Taguchi resultaron ser los mejores sensores. Realizando una clasificación desensores 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. Lasiguiente tabla muestra los resultados obtenidos, donde se comprueba que los sensores conmayor resolución son los Taguchi, y con más sensibilidad los Fis-SP:

Mayordiscriminación

Mayorsensibilidad

(Dgn)TGS-800 SP-31TGS-822 SP-32TGS-824 TGS-880TGS-842 TGS-832TGS-880 TGS-822

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óndespués de un ciclo de medidas. Además de controlar las posibles derivas temporales ysíntomas de desgaste de los sensores, estas medidas han servido para avisar de un malfuncionamiento de algún otro elemento de medida del equipo (en nuestro caso elHeadspace)

Desde el punto de vista del procesado de datos, cabe destacar la importancia de laselección de variables. Los resultados obtenidos antes y después de realizar dicha seleccióndemuestran que hay ciertas variables del conjunto experimental de datos (matriz global deparámetros) que aportan poca o nula información para nuestro propósito, e incluso puedensuponer un elemento interferente para las otras variables.

Mediante la topología de red neuronal Fuzzy ARTMAP, en su tercera versión deprogramación, se ha alcanzado una tasa del 75 % en la clasificación de los 10 aceites trasuna selección de variables y escogiendo como parámetro de entrada las cinco mejores. Sinembargo hay que destacar que con los resultados obtenidos, se han visto similitudes entrelos aceites de tipo 6 y 7 (arroniz de Navarra sin defecto y empletre de Navarrarespectivamente), los tipos 2 y 9 (empletre viejo de prensa y aceite con defecto de avinadoy rancio respectivamente) y entre el 5 y 9 (arroniz de Navarra de prensa defectuoso y aceite

Page 77: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Conclusiones

75

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

Page 78: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

76

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 delos 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 Fis-SB. 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 elusuario 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 lossensores frente a la presencia de los volátiles, desprendidos por losaceites mediante el Headspace Sampler. Una vez finalizada la prueba, seguardarán todos los datos en un fichero de texto.

El cálculo que muestra este programa es la resistencia de todos lossensores (Taguchi, Fis_ubola, Fis) de una cámara.

-------------------------------------------------------------------

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

#include <stdio.h>#include <string.h>#include <dos.h>#include <conio.h>#include <stdlib.h>#include <math.h>#include <io.h>#include <ctype.h>#include <alloc.h>

/*-------------CONSTANTES--------------*/

#define SER_1 0x3F8 //Dirección del puerto serie 1#define BASE_TIMER 0x40 //Base del 8253 del PC#define INTR_TIC 0x1C //Interrupción de la IRQ0 del PC

Page 79: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

77

#define BASE 0x220 //Dirección base para la PCL818_2#define N 0 /* Constante para el indice del primer canal de la PCL */

#define NUM_MUESTRAS 600 // Número de filas a guardar en el fichero#define RL 4.7 // Resistencia de carga de los sensores TGS#define V_REF 10 /* Tensión de referencia para el cálculo de la R_sensor */#define NUM_SENSORES 6 // Para camara de sensores Taguchi o Fis

//#define NUM_SENSORES 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 minutosint num_pruebas=0, num_pruebas_realizadas=0; /*control de pruebas realizadas */int tic=0; //variable contadora de tics del timer 0float r_sensor,val_acot,tiempo; // valor de la resistencia del sensorint valor; //dato capturado por la PCL

/* En la siguiente matriz se van a guardar todos los datos calculados deforma temporal antes de ser volcados al fichero correspondiente:*/

float huge datos[NUM_MUESTRAS][NUM_SENSORES];

struct date d; //control de la fecha del sistemastruct time tm; //control de la hora del sistemaint ultima_prueba; //control de la extension de los ficheros generadosint prueba_actual=0;int dn=0,dj=0,n=0; //contadores de la matriz de datos capturadosint vials_count=0; //control del nº de sustancias a medirint k=0; //control para el almacenaje del nombre de los //filesint flag_conversion=0; //señalizador de inicio de conversión

Page 80: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

78

struct file

char name[7];int extension[2];

;

struct file fichero[42]; /* hay como max 42 viales a medir en una sola tanda */char nombre[20]; //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 IRQ0setvect(INTR_TIC,tics); // establecemos el nuevo

prog_timer0(); //programo el timer para que genere una int. cada 10 ms

while (!(kbhit()) && (num_pruebas_realizadas<num_pruebas))

dj=0; /* Cada vez que generamos un fichero, ponemos a cero el nº de filas, para que no se desborde dicha variable */

dn=0;

while (!sincronizacion()); /* esperamos sincronización PC con headspace */

min=0; //inicializamos tiempos seg=0;

seg_aux=0; while (seg_aux<=t_espera1)

gotoxy(5,5); printf("\tEsperando --> %d:%d",min,seg);

clrscr(); seg_aux=0; // lo pongo a cero para contar el tiempo total de adq. n=N; //puntero de canales escanear situado en el primer canal. min=0;seg=0;

Page 81: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

79

while (seg_aux<=t_adq) /* mientras este en el tiempo de adquisicion... */

gotoxy(5,5);printf("Adquiriendo... %d:%d ",min,seg); if (flag_conversion==1)

for (n=N;n<NUM_SENSORES;n++) /* recorre todos los canales */

outportb(BASE+10,n); //selecciono canal.

delay(1); outportb(BASE+12,1); //disparo conversion delay(1);

while(inportb(BASE+5)&0x10!=0); /* espero dato correcto */

valor=(inportb(BASE+5)<<8)|inportb(BASE+4); valor=(valor&0x0fff); /* valor contiene los 12

bits de la conversión */

// Acotamos el resultado entre 0.1 y 10V: val_acot=(float)(((valor-2048)*10)/2048.0);

if (val_acot==0.0) val_acot=0.1; if (n<=NUM_SENSORES) r_sensor=(((V_REF*RL)/val_acot)-RL);

/* para el caso de los FIS-uBOLA el calculo de la resistencia de heater es: */

// r_sensor=(val_acot*RL)/(V_REF-val_acot);

gotoxy(5,n+8); printf("S%d %.2f ",n+1,r_sensor); datos[dj][dn]=r_sensor; /* Almacenamos los

datos en la matriz */ dn++; //columnas ++ para el siguiente sensor. if (dn==NUM_SENSORES)

dj++; //filas ++ para siguiente muestra. dn=0;

//fin de if (n<=NUM_SENSORES) /* si hemos pasado todos los canales a adquirir ponemos a 0 el flag de conversion */

if (n>NUM_SENSORES) n=N; flag_conversion=0;

//fin del bucle for que recorre los canales

//fin if flag_conversion

//fin while (seg_aux<=t_adq)

clrscr(); nombre_fich(); prueba_actual=ultima_prueba+1; sprintf(nombre,"%s.%d",fichero[vials_count].name,prueba_actual); gotoxy(62,9); printf("Prueba = %d",num_pruebas_realizadas+1); gotoxy(62,10+num_pruebas_realizadas);

printf("File%d=%s",num_pruebas_realizadas+1,nombre);

Page 82: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

80

guardar_fich(); actualizar_fich(); gotoxy(62,25); printf("Filas = %d",dj); min=0;seg=0; //pongo a cero el tiempo para la siguiente medida. seg_aux=0; num_pruebas_realizadas++; vials_count++; clrscr();

min=0;seg=0; while (!kbhit() && (seg_aux<=t_reposo))

gotoxy(5,5); printf("Estabilizando sistema para prox.medida....%d:%d",

min,seg);

//fin del while(!(kbhit())&&(num_pruebas_realizadas<num_pruebas))

setvect(INTR_TIC,tics_old); //restauramos vectores de interrupción //fin del main

/*-----------------------------------------------------------------------interrupt tics()- Rutina de intercepción del tic del reloj del sistema

Esta se produce cada 10 ms.Para eso se ha programado el timer 8253con intervalos de 10ms cada interrupción.-----------------------------------------------------------------------*/void interrupt tics(__CPPARGS)tic++;if (tic==100) //si pasa 1 seg tic=0; flag_conversion=1; //doy permiso para la conversion via soft seg++; seg_aux++; //cuenta segundos totales. if (seg==60) //ha pasado 1 min?

seg=0; min++;

(*tics_old)(); //servicio a la antigua rutina de atencion.

/*-----------------------------------------------------------------------sincronización()-implementamos una espara hasta que el Headspace tiene el vial en el horno y lo detectamos por el puerto serie 1-----------------------------------------------------------------------*/int sincronizacion(void)unsigned char var,var1;int flag=0;

var=inportb(SER_1);

Page 83: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

81

while(!flag)

var1=inportb(SER_1); if (var!=var1) flag=1; gotoxy(5,5); printf("\nEsperando");

clrscr();return(flag);

/*-----------------------------------------------------------------------prog_timer0()- programación del timer 0

frec timer 0 sistema frec=1.193.182hz => para contar 10 ms tengo quecargarun valor de 10 ms * T = 10ms * (1/frec) = 11931'82 = 11932d = 2E9Bhvalor que cargaremos empezando por el byte menos significativo ysiguiendopor el más significativo.

así pues la interrupción del reloj del sistema acontecerá cada 10 ms enlugar de hacerlo cada 55ms como hace por defecto.-----------------------------------------------------------------------*/void prog_timer0 (void)unsigned load_timer;

load_timer=0x2E9B; // valor a cargar en el timeroutportb (BASE_TIMER+3,0x34); //Timer 0 modo interrupt on terminal countoutportb (BASE_TIMER,load_timer & 0xff); //cargamos parte bajaoutportb (BASE_TIMER,load_timer >> 8); //cargamos parte alta

/*------------------------------------------------------------- parametros_iniciales()- Introducción de parametros iniciales---------------------------------------------------------------*/void parametros_iniciales(void)

printf ("Número de pruebas a realizar: ");scanf("%d",&num_pruebas); /* haremos tantas pruebas como viales haya en el Headspace */gotoxy (1,2);for (k=0;k<num_pruebas;k++) clrscr(); gotoxy(1,1); printf("nombre del contaminante %d§ ---> (max. 8 caracteres) \t",k+1); scanf("%s",fichero[vials_count].name); vials_count++; vials_count=0;

/* Vamos a tener que sincronizar el tiempo de adquisicion de los sensorescon los tiempos con los que trabajar el headspace co tal de no perderdatos en las medidas que realicemos: */

Page 84: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

82

gotoxy(1,3);printf ("Tiempo de calentamiento del vial (en min.): ");scanf("%f",&t_heat);

t_heat=t_heat*60;gotoxy (1,4);printf ("Tiempo de presurización del vial (en min.): ");scanf("%f",&t_press);t_press=t_press*60;

gotoxy (1,5);printf ("Tiempo de llenado del loop (en min.): ");scanf("%f",&t_lle_loop);t_lle_loop=t_lle_loop*60;

gotoxy (1,6);printf ("Tiempo de equilibrado del loop (0.05 min x defecto..): ");scanf("%f",&t_eq_loop);t_eq_loop=t_eq_loop*60;

gotoxy (1,7);printf ("Tiempo de inyección (en min.): ");scanf("%f",&t_inyec);t_inyec=t_inyec*60;

gotoxy (1,8);printf ("Tiempo de adquisición a¤adida (en min.): ");scanf("%f",&time_prueba);time_prueba=time_prueba*60;

gotoxy (1,9);printf("Tiempo de reposo: (en min)");scanf("%f",&t_reposo);t_reposo=t_reposo*60;

gotoxy(1,10);printf("Parametros de inter‚s:\n -------------------------");gotoxy(1,13);printf ("Temperatura del horno (en §C): ");scanf("%d",&temp_horno);gotoxy (1,14);printf ("Temperatura del loop (en §C): ");scanf("%d",&temp_loop);gotoxy (1,15);printf ("Temperatura de la manguera (en §C): ");scanf("%d",&temp_manguera);

/* Calculo del tiempo real durante el cual no hay que adquirir datosEste tiempo lo forman el retardo entre que empieza el start method delHeadspace Sampler y el vial esta dentro del horno para calentarse (15seg) y los tiempos de:

a)calentamiento, b)presurizacion de muestra, c)llenado del loop, d)equilibrado del loop.

tiempo entre que acaba una prueba y empieza el siguiente ciclo: */

Page 85: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

83

t_espera1=(t_heat+t_press+t_lle_loop+t_eq_loop);

//tiempo de adquisición:t_adq=t_inyec+time_prueba;t_ciclo=t_espera1+t_adq+t_reposo;

clrscr();

/*------------------------------ ini_PCL() - Inicializa la PCL--------------------------------*/void ini_PCL812(void)outportb(BASE+10,N); /* La primera vez que se ejecuta seleccionamos el canal inicial */outportb(BASE+11,1); // Programamos el modo disparo por software(software // trigger only)

/*--------------------------------------------------------------------- void nombre_fich(void)- miraremos cual es la última extension que se generó para asignar la siguiente al próximo fichero que se cree-----------------------------------------------------------------------*/void nombre_fich(void)char ch;char ultim_num[3]; //extensiones de tres cifras como m x. .0 a .999FILE *nom_fich;

if ((nom_fich=fopen("medidas.dat","rt"))==NULL) gotoxy(10,8); printf("El fichero medidas.dat no puede abrirse"); exit(1);

fseek(nom_fich,0,SEEK_END);fseek(nom_fich,-5,SEEK_CUR);fgets(ultim_num, strlen(ultim_num),nom_fich);ultima_prueba=atoi(ultim_num);

fclose(nom_fich);farfree(nom_fich);

/*--------------------------------------------------------------------void actualizar_fich()- se guarda la extensión del ultimo fichero de medidas generado en “medidas.dat”----------------------------------------------------------------------*/void actualizar_fich()FILE *act_fich;char prueba[4]; // Aquí tendremos en string la última prueba realizada

Page 86: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

84

if ((act_fich=fopen("medidas.dat","a+"))==NULL) gotoxy(10,8); printf("El fichero medidas.dat no puede abrirse"); exit(1);

fseek(act_fich,0,SEEK_END);itoa(prueba_actual,prueba,10);prueba[3]='\n';fwrite(&prueba,sizeof(prueba),1,act_fich);fclose(act_fich);farfree(act_fich);

/*-----------------------------------------------------------------------void guardar_fich()- genera un fichero de medias junto con una cabeceraque describe las condiciones de esa medida-----------------------------------------------------------------------*/void guardar_fich(void)float tiem=0.0,tiem_aux=1.0;int j=0,i=0;FILE *fp;

if ((fp=fopen(nombre,"wb"))==NULL) gotoxy(10,8); printf("El fichero %s no puede abrirse",nombre); exit(1);

// Definimos la cabecera del fichero:fprintf(fp, "\n%%Nombre del fichero: %s\n",nombre);getdate(&d);

fprintf(fp, "%%fecha: %d/%d/%d", d.da_year, d.da_mon, d.da_day);gettime(&tm);

fprintf(fp, "\n%%hora: %2d:%02d:%02d" ,tm.ti_hour, tm.ti_min, tm.ti_sec);

fprintf(fp, "\n%%temperaruta horno / loop / manguera:\n%%\t\t %d / %d / %d ºC\n",temp_horno,temp_loop,temp_manguera);

fprintf(fp, "\n%%tiempos: ciclo/adquisicion/reposo:\n%%\t\t %f / %f / %f seg",t_ciclo,t_adq,t_reposo);

fprintf(fp,"\n%%tiempos:heating vial/presurizacion/llenado loop/inyeccion : \n%%\t\t %f / %f / %f / %f seg\n",t_heat,t_press, t_lle_loop,t_inyec);

fprintf(fp, "\n\n%%TIEM\tS1 \tS2 \tS3 \tS4 \tS5 \tS6 \n");

/* Para la camara de sensores Fis-SB, como tenemos 10 sensores, la lineaanterior se modificaria por la siguente:fprintf(fp, "\n\n%%TIEM\tS1 \tS2 \tS3 \tS4 \tS5 \tS6\tS7 \tS8 \tS9 \tS10 \n"); */

Page 87: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

85

// Escribimos los valores almacenados en memoria en el ficherofor (i=1;i<=NUM_MUESTRAS;i++) //Capturamos a partir de la segunda muestra fprintf(fp,"%4.3f\t",tiem); tiem+=tiem_aux; for (j=0;j<=(NUM_SENSORES-1);j++) fprintf(fp,"%4.2f\t",datos[i][j]); fprintf(fp,"\n");

fclose(fp);farfree(fp);

Page 88: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

86

ANEXO B: PROGRAMAS REALIZADOS CON MATLAB

Ø MEDIDAS DE PRUEBA: SELECCIÓN DE SENSORES

• Fichero: ORD_SENS.M

%----------------------------------------------------------------------% ORDENACIÓ DELS SENSORS PEL PARAMTRE DGN DE UNA MESURA D'UN OLI%----------------------------------------------------------------------

function[gi,gf,dg,dgn,tm]=ord_sens(nom_fitxer) %nom_fitxer entre cometes

matriu=load(nom_fitxer);[f,c]=size(matriu); %calculem el numero de columnes c

%gf=1./min(matriu(:,2:c));[gf,tm]=min(matriu(:,2:c));gf=1./gf;

gi=1./matriu(1,2:c);dg=gf-gi;for n=1:(c-1), dgn(n)=dg(n)/gi(n);end;

fprintf('\n\nOrdenacio dels sensors:\n\n');[sens,nsens]=sort(dgn); %ordena de menor a majorfor n=1:(c-1) fprintf ('S%d dgn= %f \n',nsens(c-n),sens(c-n)); % presentem per % pantalla de major a menor dgnend;

cd ..

Page 89: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

87

Ø CREACIÓN DE LA MATRIZ GLOBAL DE PARÁMETROS

• Fichero principal: CREAR_MATRIU.M

function[m]=crear_matriu() % genera la matriu global de parametres

codi_temp=[7,8,9,8,7,9,9,7,7,8]; %codi de temperaturacodi_od=[1,2,3,4,5,6,7,8,9,0]; % codi per a numero d'oli y numero de diamo=[1,12,23,34,45,56,133,100,111,122]; %extensions de mesures olismc=[11,22,33,44,55,66,143,110,121,132]; %extensions de mesures de %calibraciom_par=0; % variable que indica si el nombre la mesura es par (OLI10-OLI1) % o impar (OLI 1 - OLI 10)i=1; %inicialitzem numero de files de la matriu mfor dia_mesura=1:10, if (m_par==0) %preparem parametres per al seguent bucle for ini=mo(dia_mesura); inc=1; fi=mo(dia_mesura)+9; % per a mesures % dia 1,3,5,7,9 else ini=mo(dia_mesura)+9; inc=-1; fi=mo(dia_mesura); % per a mesures % dia 2,4,6,8,10 end dia_mesura % per saber quina mesura esta calculant m_par=~m_par; % cambiem estat de m_par a=1; % variable contadora per al tipus d'oli (1,2,3,4,...,10) for n1=ini:inc:fi, [nf,ic]=crear_nom_fitxer('oli',a,1,n1); % ic indica posicio per a % numero de caixa % % Ara calcularem els parametres gi,gf,dg,dgn i tm mitjançant la % funcio ord_sens i guardarem els aquest parametres de forma ya % ordenada en matriu m %

[m(i,1:6),m(i,13:18),m(i,25:30),m(i,37:42),m(i,49:54)]=par_sens(nf); nf(ic)=50; % cambiem a caixa 2

[m(i,7:12),m(i,19:24),m(i,31:36),m(i,43:48),m(i,55:60)]=par_sens(nf); % % FORMAT DEL CODI: TEMPERATURA,NUM_OLI,NUM_DIA. en etanol NUM_OLI % es sempre 0 %m(i,61)=codi_temp(dia_mesura)*100+codi_od(a)*10+codi_od(dia_mesura);%codi i=i+1; % incrementem numero de files a=a+1; %incrementem numero d'oli endendfor dia_mesura=1:10, % ara guardarem a la matriu les probes de calibracio dia_mesura % per saber per quina calibracio esta calculant [nf,ic]=crear_nom_fitxer('etanol',0,1,mc(dia_mesura)); [m(i,1:6),m(i,13:18),m(i,25:30),m(i,37:42),m(i,49:54)]=par_sens(nf); nf(ic)=50; % cambiem a caixa 2 [m(i,7:12),m(i,19:24),m(i,31:36),m(i,43:48),m(i,55:60)]=par_sens(nf);

m(i,61)=codi_temp(dia_mesura)*100+codi_od(dia_mesura); %codi. Per a % l’etanol el codi num oli es sempre 0 i=i+1; % incrementem numero de filesend

Page 90: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

88

• Ficheros secundarios: PAR_SENS.M y CREAR_NOM_FITXER.M

function[gi,gf,dg,dgn,tm]=par_sens(nom_fitxer) %nom_fitxer entre cometes

cd txt2 % directori on es troben les mesures en format textematriu=load(nom_fitxer);[f,c]=size(matriu); %calculem el numero de columnes c[gf,tm]=min(matriu(:,2:c));gf=1./gf;

gi=1./matriu(1,2:c);dg=gf-gi;for n=1:(c-1), dgn(n)=dg(n)/gi(n);end;cd ..

function[nf,index_caixa]=crear_nom_fitxer(contaminant,tipus,caixa,extensio)

nf=contaminant;aux=length(nf);nc=int2str(extensio); %numero de extensio del fitxer el pasem a caractersif (tipus~=0) ac=int2str(tipus); % numero doli el pasem a caracters for n2=1:length(ac), %creem el numero d'oli nf(n2+aux)=ac(n2); endendnf(length(nf)+1)='c';nf(length(nf)+1)=caixa+48; % creem fixter corresponent a caixa 1index_caixa=length(nf); % guardem la posicio numero caixa per despres % cambiar a caixa 2nf(length(nf)+1)='.';aux=length(nf); %creem la extensio del fitxerfor n2=1:length(nc), nf(n2+aux)=nc(n2);end

Page 91: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

89

Ø ANÁLISIS PCA

• Fichero: PCA_ACEITES2.M

% -----------------------------------------------------------------------% Analisis PCA para discriminación de aceites% La matriz a analizar es m y ha sido creada previamente con la funcion %% "crear_matriu()"% -----------------------------------------------------------------------

clear;load m.mat;

m_aux=m(1:100,1:60); % solo nos interesa las medidas de aceites

m_aux(11:20,[8,20,32,44,56])=m_aux(31:40,[8,20,32,44,56]); %S8 de dia 2 % substituido por S8 dia 4

m_norm=auto(m_aux); % normalizamos la matriz

%m_aux2=m_norm(:,13:24); %matriz solo gf%m_aux2=m_norm(:,25:36); %matriz solo dg%m_aux2=m_norm(:,49:60); %matriz solo tm%m_aux2=m_norm(:,13:36); %matriz con gf,dg%m_aux2=m_norm(:,[13:36 49:60]); %matriz con gf,dg,tm%m_aux2=m_norm(:,37:48); %matriz solo dgn

%m_aux2=m_norm(:,[46 31 47 48 50]); %5 primeras variables de mejor % resolución

m_aux2=m_norm(:,[25:36 37:48]); % dg,dgn

[scores,loads,ssq,res,q,tsq] = pca(m_aux2,0); % PCA

% Ahora haré la misma operación pero teniendo encuenta los experimento% por separado y utilizaré para tal efecto la función pcapro manteniendo% los loads del inicio dividiremos la matriz en tres submatrizes% organizadas en temperaturas

m_70=m_aux2([1:10 41:50 71:90],:); % dias 1,5,8,9codi_70=m([1:10 41:50 71:90],61);

m_80=m_aux2([11:20 31:40 91:100],:); % dias 2,4,10codi_80=m([11:20 31:40 91:100],61);

m_90=m_aux2([21:30 51:70],:); % dias 3,6,7codi_90=m([21:30 51:70],61);

[scores1,resids1,tsqs1] = pcapro(m_70,loads,ssq,q,tsq,0);

[scores2,resids2,tsqs2] = pcapro(m_80,loads,ssq,q,tsq,0);

[scores3,resids3,tsqs3] = pcapro(m_90,loads,ssq,q,tsq,0);

Page 92: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

90

% La finalidad es trabajar por separado para luego poder utilizar la% función plot y poder visualizar los diferentes aromas de diferentes% colores

% *************************% Ploteados de los scores *% *************************

figure(1); % PC#1 vs PC#2

plot(scores1(:,1),scores1(:,2),'w.',scores2(:,1),scores2(:,2),'w.',scores3(:,1),scores3(:,2),'w.')

for i=1:40, % Bucle para reprensentar temp 70,75,80 pto=num2str(codi_70(i)); % en las graficas de los scores

t1=text(scores1(i,1),scores1(i,2),pto); set(t1,'Color','green'); set(t1,'FontSize',6);

end

for i=1:30, % Bucle para reprensentar temp 80,85,90 pto=num2str(codi_80(i)); % en las graficas de los scores

t1=text(scores2(i,1),scores2(i,2),pto); set(t1,'Color','blue'); set(t1,'FontSize',6);end

for i=1:30, % Bucle para reprensentar temp 90,95,100 pto=num2str(codi_90(i)); % en las graficas de los scores

t1=text(scores3(i,1),scores3(i,2),pto); set(t1,'Color','red'); set(t1,'FontSize',6);end

xlabel('PC#1'),ylabel('PC#2'), title('Scores PC#1 vs PC#2');

figure(2); % PC#1 vs PC#3

plot(scores1(:,1),scores1(:,3),'w.',scores2(:,1),scores2(:,3),'w.',scores3(:,1),scores3(:,3),'w.')

for i=1:40, % Bucle para reprensentar temp 70,75,80 pto=num2str(codi_70(i)); % en las graficas de los scores

t1=text(scores1(i,1),scores1(i,3),pto); set(t1,'Color','green'); set(t1,'FontSize',6);

end

for i=1:30, % Bucle para reprensentar temp 80,85,90 pto=num2str(codi_80(i)); % en las graficas de los scores

t1=text(scores2(i,1),scores2(i,3),pto); set(t1,'Color','blue'); set(t1,'FontSize',6);end

for i=1:30, % Bucle para reprensentar temp 90,95,100 pto=num2str(codi_90(i)); % en las graficas de los scores

t1=text(scores3(i,1),scores3(i,3),pto);

Page 93: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

91

set(t1,'Color','red'); set(t1,'FontSize',6);end

xlabel('PC#1'),ylabel('PC#3'), title('Scores PC#1 vs PC#3');

figure(3); % PC#1 vs PC#3

plot(scores1(:,2),scores1(:,3),'w.',scores2(:,2),scores2(:,3),'w.',scores3(:,2),scores3(:,3),'w.')

for i=1:40, % Bucle para reprensentar temp 70,75,80 pto=num2str(codi_70(i)); % en las graficas de los scores

t1=text(scores1(i,2),scores1(i,3),pto); set(t1,'Color','green'); set(t1,'FontSize',6);

end

for i=1:30, % Bucle para reprensentar temp 80,85,90 pto=num2str(codi_80(i)); % en las graficas de los scores

t1=text(scores2(i,2),scores2(i,3),pto); set(t1,'Color','blue'); set(t1,'FontSize',6);end

for i=1:30, % Bucle para reprensentar temp 90,95,100 pto=num2str(codi_90(i)); % en las graficas de los scores

t1=text(scores3(i,2),scores3(i,3),pto); set(t1,'Color','red'); set(t1,'FontSize',6);end

xlabel('PC#2'),ylabel('PC#3'), title('Scores PC#2 vs PC#3');

Page 94: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

92

• Fichero: FACTOR_MEDIO.M

% ---------------------------------------------------------------------% CALCULO DE LA RESOLUCIÓN DE LA AGRUPACIÓN DE LOS PARAMETROS OBTENIDOS% EN LOS DIFERENTES TIPOS PCA (PCA 1-2, PCA 1-3, PCA 2-3)% ---------------------------------------------------------------------

function[x_mig,y_mig,di_mig,dci_mig,fi,f_mig]=factor_mig(scores,escore_x,escore_y)%% calculo de la centroide del los 10 aceites%x_mig=[0,0,0,0,0,0,0,0,0,0];for num_oli=1:10, for inc=num_oli:10:(90+num_oli), x_mig(num_oli)=x_mig(num_oli)+scores(inc,escore_x); y_mig(num_oli)=x_mig(num_oli)+scores(inc,escore_y); endendx_mig=x_mig/10; %coordenada x de la centroidey_mig=y_mig/10; %coordenada y de la centroide%% calculo de la dispersion de cada aceite%di_mig=[0,0,0,0,0,0,0,0,0,0];for num_oli=1:10, for inc=num_oli:10:(90+num_oli), di_mig(num_oli)=di_mig(num_oli)+sqrt((x_mig(num_oli)-scores(inc,escore_x))^2+(y_mig(num_oli)-scores(inc,escore_y))^2); endenddi_mig=di_mig/10;%% calculo de la dispersion de la centroide de cada aceite respecto al% resto%dci_mig=[0,0,0,0,0,0,0,0,0,0];for num_oli=1:10, for num_cent=1:10, dci_mig(num_oli)=dci_mig(num_oli)+sqrt((x_mig(num_cent)-x_mig(num_oli))^2+(y_mig(num_cent)-y_mig(num_oli))^2); endenddci_mig=dci_mig/10;%% calculo de la resolucion para un aceite%fi=[0,0,0,0,0,0,0,0,0,0];for num_oli=1:10, fi(num_oli)=fi(num_oli)+(dci_mig(num_oli)/di_mig(num_oli));end%%calcul del factor mig%f_mig=0;for num_oli=1:10, f_mig=f_mig+fi(num_oli);endf_mig=f_mig/10;

Page 95: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

93

Ø ANÁLISIS FUZZY ART

• Fichero: FUZZY_ART.M

%------------------------------------------------------------------------% PROYECTO FINAL DE CARRERA%% DISEÑO DE UNA NARIZ ELECTRNICA PARA LA DETECCIÓN% DE LOS TIPOS DE ACEITE%% Autor: Sergi Rojo Bosch Fecha: 2/5/01% Director del proyecto: Jesús Brezmes Llecha%% 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 en función del target que% desee evaluar La filosofia 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.%% 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.% Mediante una esturctura for se van recorriendo todos los parametros% almacendos en la variable senspart de forma que se evalua con cada% uno de ellos.% 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.% Suma todas clases coincidentes, las multiplica por 100 y las divide% 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%------------------------------------------------------------------------

clcclear allhomepause(0.1)clchome

%senspar1=[13:24]; % Parametro analizado gf%senspar1=[25:36]; % Parametro analizado dg%senspar1=[37:48]; % Parametro analizado dgn

%senspar1=[49:60]; % Parametro analizado tm%senspar1=[1:12]; % Parametro analizado gi

%senspar1=[1:24]; % Parametro analizado gi,gf%senspar1=[13:36]; % Parametro analizado gf,dg%senspar1=[1:12 25:36]; % Parametro analizado gi,dg%senspar1=[13:24 49:60]; % Parametro analizado gf,tm

%senspar1=[13:36 49:60]; % Parametro analizado gf,dg,tm%senspar1=[25:60]; % Parametro analizado dg,dgn,tm

Page 96: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

94

%combinacion de las 2 primeras variables con mejor resolucion:%senspar1=[46 31];

%combinacion de las 5 primeras variables con mejor resolucion:enspar1=[46 31 47 48 50];

%combinacion de las 10 primeras variables con mejor resolucion:%senspar1=[46 31 47 48 50 19 33 32 45 36];

%combinacion de las 15 primeras variables con mejor resolucion:%senspar1=[46 31 47 48 50 19 33 32 45 36 43 52 51 39 38];

%combinacion de las 20 primeras variables con mejor resolucion:%senspar1=[46 31 47 48 50 19 33 32 45 36 43 52 51 39 38 26 44 34 14 49];

%combinacion de las 40 primeras variables con mejor resolucion:senspar1=[46 31 47 48 50 19 33 32 45 36 43 52 51 39 38 26 44 34 14 49 53 27 40 21 42 28 60 35 24 16 13 25 58 15 37 20 29 22 57 17];

%combinacion de las 48 primeras variables con mejor resolucion:%senspar1=[46 31 47 48 50 19 33 32 45 36 43 52 51 39 38 26 44 34 14 49 53 27 40 21 42 28 60 35 24 16 13 25 58 15 37 20 29 22 57 17 59 55 41 23 56 30 54];

%combinacion 2 mejores sensores (S4+S6):%senspar1=[4 6 16 18 28 30 40 42 52 54];

%combinacion 3 mejores sensores (S2+S4+S6):%senspar1=[2 4 6 14 16 18 26 28 30 38 40 42 50 52 54];

%combinacion 6 mejores sensores (S2+S3+S4+S6+S7+S8):%senspar1=[2:4 6:8 14:16 18:20 26:28 30:32 38:40 42:44 50:52 54:56];

num_par=length(senspar);

%---------------------------------------------% CREACIÓN DE LA MATRIZ DE DATOS%---------------------------------------------load m % Cargamos la variable m, creada previamente con el fichero % CREAR_MATRIZ.Mm=m(1:100,1:61); % solo nos interesa las medidas de aceites y el codigo

m(11:20,[8,20,32,44,56])=m(31:40,[8,20,32,44,56]); %S8 de dia 2 %substituido por S8 dia 4

m_aux=m; % Guardamos temporalmente la variable indec en min[f,c]=size(m_aux); % Guardamos el numero de filas y columnas de la % matriz con todos los datos

for t=1:num_par,t%------------------------------------------------------------------------% El usuario deberá modificar las siguientes instrucciones cada vez que% desee evaluar un target diferente.% Tendrá que crear tantas matrices (matsal_i) como clases tenga. De igual% forma procederá con las matrices de salida (salaux_i)%%% Vamos a crear una variable indice donde se iran guardando los tipos de% aceites:

Page 97: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

95

% para el aceite de tipo 1 se guardara de la 1 a la 10% para el aceite de tipo 2 se guardara de la 11 a la 20% y asi sucesivamente

indice=[1 11 21 31 41 51 61 71 81 91];for i=1:f, codigo=int2str(m(i,61)); % 61 es la posicion donde se encuentra los % codigos salida=codigo(2)-48; % la posición 2 del vector de caracteres es el % tipo de aceite if (salida==0) % el 0 indica 10 salida=10; end ent_aux(indice(salida),:)=m_aux(i,senspart); indice(salida)=indice(salida)+1;end

% Creamos un vector de salida que seran los resultados teoricos que% deberia obtener la red fuzzy art. Solo sirve para comparar resultados.

% Este vector es para 10 clasesa=1;for i=1:10:100 sal_aux(i:i+9)=a; a=a+1;end

%Vector para 20 clases: aceite 1 de los 5 primeros dias, aceite 1 de los5 siguientes,...%a=1%for i=1:5:100% sal_aux(i:i+4)=a;% a=a+1;%end

%------------------------------------------------------------------------

%----------------------------------------------------------------% Normalizamos la matriz de entrada de datos entre 0..1%---------------------------------------------------------------[f,c]=size(ent_aux);

% Nos aseguramos que todos los valores de la variable matriz_normalizda% sean iguales o superiores a cerofor jj=1:f, for ii=1:c, if (ent_aux(jj,ii)<=0) ent_aux_normalizada(jj,ii)=0; else ent_aux_normalizada(jj,ii)=ent_aux(jj,ii); end endend

auxmax=max(ent_aux_normalizada);for i=1:c entr(:,i)=ent_aux_normalizada(:,i)./auxmax(i);end

Page 98: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

96

%------------------------------------------------------------------------% Aplicamos el algoritmo de Fuzzy ART, tantas veces hasta que encontremos% un ro que nos genere tantas clases como deseemos%------------------------------------------------------------------------

lr=1;ro=0;alfa=0.001;clases_max=0;salir=1;

while (salir)[f,c]=size(entr);[wija]=inifzart(c);for i=1:f clc mes=i-1[act(i),wijb]=fzart(ro,lr,alfa,entr(i,:),wija);wija=wijb;end % Fin del bucle for

clases_max=max(act);

if (clases_max > 11) % La comparación de este if deberá modificarse según % el numero total de clases + 1 que desee generar el % usuario ro=ro-0.1 salir=0;else ro=ro+0.1end

if (ro==1) break; % Si hemos alcanzado una ro = 1, abandonamos el bucleend

end % Fin del bucle while

% Calcula de nuevo Fuzzy ART con el ro calculado previamente[f,c]=size(entr);[wija]=inifzart(c);for i=1:f clc mes=i-1[act(i),wijb]=fzart(ro,lr,alfa,entr(i,:),wija);wija=wijb;end % Fin del bucle for

% Calculamos el error cometido%---------------------------------------------total_medidas=f; % Número total de medidasbien=0;for i=1:f,

if (act(i)==sal_aux(i)) bien=bien + 1; endend

Page 99: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

97

ac_fzart(t).ro=ro;ac_fzart(t).act=act;ac_fzart(t).sal_aux=sal_aux;ac_fzart(t).rateok=bien*100/total_medidas

end % Fin del for que recorre todos los parametros

save ac_fzart ac_fzart % Guardamos los resultados

% Creamos un fichero que contendrá los datos de interés

fid=fopen('resulfzart.txt','w');fprintf(fid,'Vector salida\tro\tVector calculado\trateok');for t=1:num_par, % recorremos todos los parametros a analizar fprintf(fid,'\n'); fprintf(fid,'%d\t',ac_fzart(t).act); fprintf(fid,'%.2f\t',ac_fzart(t).rateok); fprintf(fid,'%.2f\t',ac_fzart(t).ro); fprintf(fid,'\n'); fprintf(fid,'%d\t',ac_fzart(t).sal_aux);end % Fin del for de los parametrosfclose(fid)

Page 100: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

98

• Fichero: CLASSFUZZY_ART.M

% ---------------------------------------------------------------------% CLASIFICACION POR CLASES Y POR ACEITES%% El parametro num_clases tiene 2 valores posibles: 10 o 20% ---------------------------------------------------------------------

function[]=clasfuzzy_art(act,sal_aux,num_clases)

% Presentacion de los vectores sal_aux y act de forma ordenada, es decir,% 10 clases o 10 aceites por lineaj1=1;j2=1;for i=1:10 fprintf('\n\n'); for j=1:10 fprintf('%7d',act(j1)); j1=j1+1; end fprintf('\n'); for j=1:10 fprintf('%7d',sal_aux(j2)); j2=j2+1; endend

% Clasificación por clases: tipos de aceite que aparecen por clases% -----------------------------------------------------------------fprintf('\n\n');for tipo=1:num_clases fprintf('\n clase %2d:',tipo); tmp(1:30)=0; %guardamos temporalmente el numero clases distintas for i=1:100 if (tipo==act(i)) tmp(sal_aux(i))=tmp(sal_aux(i))+1; end end for i=1:30 if (tmp(i)>0) fprintf('ac%d(%d),',i,tmp(i)); end end

endfprintf('\n\n');

% Clasificación por aceites: clases que aparecen en cada aceite% -----------------------------------------------------------------if (num_clases==10) %para 10 clases vec=[1,11,21,31,41,51,61,71,81,91]; inc=9;else %para 20 clases vec=[1,6,11,16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96]; inc=4;end

for tipo=1:num_clases fprintf('\n aceite %2d:',tipo);

Page 101: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

99

tmp(1:30)=0; %guardamos temporalmente el numero clases distintas for i=vec(tipo):vec(tipo)+inc tmp(act(i))=tmp(act(i))+1; end for i=1:30 if (tmp(i)>0) fprintf('c%d(%d),',i,tmp(i)); end end

endfprintf('\n\n');

Page 102: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

100

Ø ANÁLISIS FUZZY ARTMAP

• Fichero: FUZZY_ARTMAP.M

%------------------------------------------------------------------------% PROYECTO FINAL DE CARRERA%% DISEÑO DE UNA NARIZ ELECTRNICA PARA LA DETECCIÓN% DE LOS TIPOS DE ACEITE%% Autor: Sergi Rojo Bosch Fecha: 2/5/01% Director del proyecto: Jesús Brezmes LlechaØ %% Fichero: fuzzy_artmap.M% Con este archivo se analizará la topología de red Fuzzy ARTMAP, para% su tercera versión de de programación, de todo el conjunto% experimental de datos.% Mediante una doble estructura for se van recorriendo todos los% parametros almacendos en la variable senspart de forma que se evalua% con cada uno de ellos nuestro objetivo (almacenado en la variable% target1).% 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;% 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.%%------------------------------------------------------------------------

clcclear allhomepause(0.1)clchome

%senspar1=[13:24]; % Parametro analizado gf%senspar2=[25:36]; % Parametro analizado dg%senspar3=[37:48]; % Parametro analizado dgn

%senspar4=[49:60]; % Parametro analizado tm%senspar5=[1:12]; % Parametro analizado gi

%senspar6=[1:24]; % Parametro analizado gi,gf%senspar7=[13:36]; % Parametro analizado gf,dg%senspar8=[1:12 25:36]; % Parametro analizado gi,dg%senspar9=[13:24 49:60]; % Parametro analizado gf,tm

%senspar10=[13:36 49:60]; % Parametro analizado gf,dg,tm

Page 103: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

101

%senspar11=[25:60]; % Parametro analizado dg,dgn,tm

%combinacion de las 2 primeras variables con mejor resolucion:%senspar1=[46 31];

%combinacion de las 5 primeras variables con mejor resolucion:enspar1=[46 31 47 48 50];

%combinacion de las 10 primeras variables con mejor resolucion:%senspar1=[46 31 47 48 50 19 33 32 45 36];

%combinacion de las 15 primeras variables con mejor resolucion:%senspar1=[46 31 47 48 50 19 33 32 45 36 43 52 51 39 38];

%combinacion de las 20 primeras variables con mejor resolucion:%senspar1=[46 31 47 48 50 19 33 32 45 36 43 52 51 39 38 26 44 34 14 49];

%combinacion de las 40 primeras variables con mejor resolucion:senspar1=[46 31 47 48 50 19 33 32 45 36 43 52 51 39 38 26 44 34 14 49 53 27 40 21 42 28 60 35 24 16 13 25 58 15 37 20 29 22 57 17];

%combinacion de las 48 primeras variables con mejor resolucion:%senspar1=[46 31 47 48 50 19 33 32 45 36 43 52 51 39 38 26 44 34 14 49 53 27 40 21 42 28 60 35 24 16 13 25 58 15 37 20 29 22 57 17 59 55 41 23 56 30 54];

%combinacion 2 mejores sensores (S4+S6):%senspar1=[4 6 16 18 28 30 40 42 52 54];

%combinacion 3 mejores sensores (S2+S4+S6):%senspar1=[2 4 6 14 16 18 26 28 30 38 40 42 50 52 54];

%combinacion 6 mejores sensores (S2+S3+S4+S6+S7+S8):%senspar1=[2:4 6:8 14:16 18:20 26:28 30:32 38:40 42:44 50:52 54:56];

target1=62; % Taget que clasifica por el tipo de aceite

num_par=length(senspar);num_tar=length(target);

%------------------------------------------------------------------------

% Los parametros delimitados por la linea de puntos deberán ser %% modificados según la aplicación que se desee analizar

load m %cargamos la matriz global de parametrosm=m(1:100,1:61); % solo nos interesa las medidas de aceites y el codigo

m(11:20,[8,20,32,44,56])=m(31:40,[8,20,32,44,56]); %S8 de dia 2 % substituido por S8 dia 4

a=0;for i=1:100 % incorporamos un nuevo codigo a la matris, en la col 62. % que indicara el tipo de aceite, teniendo en cuanta que al % tipo 1 le coresponde 0.1, para tipo 2, 0.2 y asi % sucesivamente para tipo 10 que le coreresponderia 1 a=a+0.1; if (a>1) a=0.1;

Page 104: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

102

end m(i,62)=a;end

matriz=m;lr=1; % Variable que deberemos ir modificando para cada ficheroerror=0;[f,c]=size(matriz);

% Nos aseguramos que todos los valores de la variable matriz_normalizda% sean iguales o superiores a cerofor jj=1:f, for ii=1:c, if (matriz(jj,ii)<=0) matriz_normalizada(jj,ii)=0; else matriz_normalizada(jj,ii)=matriz(jj,ii); end endend

auxmax=max(matriz_normalizada);for i=1:c nmatriz(:,i)=matriz_normalizada(:,i)./auxmax(i);end%------------------------------------------------------------------------

for x=1:num_tar, % Recorremos todos los targetsfor t=1:num_par, % recorremos todos los parametros a analizar

vecsens=senspart;vectarget=targetx;bien=0;mal=0;nsnc=0;

for i=2:(f-1)

mattrain= nmatriz([1:(i-1) (i+1):f],:);mattest=nmatriz([i],:);homexti% Entremos la red (con la segunda versión)[ga,wija2,wijb2,wijab]=fzmaptrnexp1(0,1,1,lr,1,0.001,mattrain(:,vecsens),mattrain(:,vectarget));% Evaluamos la red (con la tercera versión)[a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptstexp3(ga,1,lr,1,0.001,wija2,wijb2,wijab,mattest(:,vecsens),mattest(:,vectarget));

infotst;historial(i,:)=a2(2:3);bien=bien+infotst(1);mal=mal+infotst(2);nsnc=nsnc+infotst(3);

end

mattrain= nmatriz([1:(f-1)],:);

Page 105: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

103

mattest=nmatriz(f,:);

[ga,wija2,wijb2,wijab]=fzmaptrnexp1(0,1,1,lr,1,0.001,mattrain(:,vecsens),mattrain(:,vectarget));[a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptstexp3(ga,1,lr,1,0.001,wija2,wijb2,wijab,mattest(:,vecsens),mattest(:,vectarget));

historial(f,:)=a2(2:3);bien=bien+infotst(1);mal=mal+infotst(2);nsnc=nsnc+infotst(3);

mattrain= nmatriz([2:f],:);mattest=nmatriz([1],:);

[ga,wija2,wijb2,wijab]=fzmaptrnexp1(0,1,1,lr,1,0.001,mattrain(:,vecsens),mattrain(:,vectarget));[a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptstexp3(ga,1,lr,1,0.001,wija2,wijb2,wijab,mattest(:,vecsens),mattest(:,vectarget));

homedrawnowhistorial(1,:)=a2(2:3);bien=bien+infotst(1)mal=mal+infotst(2)nsnc=nsnc+infotst(3)rateok=100*bien/(bien+mal+nsnc)historial'

ac_fzart(x,t).bien=bien; ac_fzart(x,t).mal=mal; ac_fzart(x,t).nsnc=nsnc; ac_fzart(x,t).rateok=rateok; ac_fzart(x,t).historial=historial;

end % Fin del for de los parametrosend % Fin del for de los targets

save ac_fzart ac_fzart

fid=fopen('ac_fzartresv3.txt','w');fprintf(fid,'Fichero: ac_fzartresv3.txt\n');fprintf(fid,'Resultados correspondientes a leave one out v3\n');fprintf(fid,'Learning Rate = 1\n');fprintf(fid,'target\tpar\tbien\tmal\tnsnc\trateok\thistorial');

for x=1:num_tar, % recorremos todos los targets for t=1:num_par, % recorremos todos los parametros a analizar fprintf(fid,'\n'); fprintf(fid,'%d\t ',x); fprintf(fid,'%d\t ',t); fprintf(fid,'%d\t ',ac_fzart(x,t).bien); fprintf(fid,'%d\t ',ac_fzart(x,t).mal); fprintf(fid,'%d\t ',ac_fzart(x,t).nsnc); fprintf(fid,'%.2f\t ',ac_fzart(x,t).rateok); fprintf(fid,'%d\t ',ac_fzart(x,t).historial); end % Fin del for de los parametrosend % Fin del for de los targets

fclose(fid)

Page 106: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

104

• Fichero: CLASSFUZZY_ARTMAP.M

% ---------------------------------------------------------------------% PRESENTACIÓN DE LOS RESULTADOS OBTENIDOS (RATE OK, BIEN, MAL, ..ETC)DE% Y REALIZACION DE LA CONFUSION MATRIX PARA CADA PARAMETRO (DG,DGN,...)% ---------------------------------------------------------------------

clc;load ac_fzart2; % estructura que contiene los resultados fuzzy_artmap % de todos los parametros de entrada analizadosclas=ac_fzart;

% Presentación de los parametros obtenidos para cada variable%-------------------------------------------------------------nombre_par=['Gf ' 'Dg ' 'Dgn ' 'Tm ' 'Gi ' 'Gi+Gf ' 'Gf+Dg ' 'Gi+Dg ' 'Gf+Tm ' 'Gf+Dg+Tm ' 'Dg+Dgn+Tm'];

fprintf('\n\n\n\n\tTABLA GENERAL DE RESULTADOS FUZZY ART-MAP \n');fprintf('\n\nparametros rateok \t bien \t mal nsnc');for i=1:11 fprintf('\n\n%s : %8d %8d %8d %8d',nombre_par(i,:),clas(i).rateok,clas(i).bien,clas(i).mal,clas(i).nsnc);endfprintf('\n\n\n\n');

% CONFUSION MATRIX%--------------------%% la primera clasificación (10 primeros valores obtenidos) no tienen el %% mismo formato que las siguientes, por lo tanto se debera cambiar los% valores obtenidos por los siguientes (para cada parametro de entrada):

columna1_10=[4 9 6 8 2 3 8 7 2 10 1 9 8 1 2 4 4 1 2 10 1 9 8 1 2 7 4 1 2 10 6 2 8 2 5 2 2 6 2 10 6 2 8 2 5 2 2 6 2 10 4 9 6 8 2 7 6 4 2 9 4 9 6 1 2 4 8 1 2 10 4 9 6 1 2 7 6 4 2 9 4 9 8 1 2 4 6 7 2 10 4 9 8 1 2 4 8 1 2 10 4 9 8 1 2 4 8 1 2 10];

columna1_10=columna1_10'; %la tranformamos en su transpuesta

conf_mat((1:10),(1:10))=0;for i=1:11 %tenemos 11 parametros fprintf('\n\n\n\n CONFUSION MATRIX: %s\n\n\n',nombre_par(i,:)); conf_mat((1:10),(1:10))=0;

Page 107: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

105

p=clas(i).historial;

p(1:10,1)=columna1_10(1:10,i); p(1:10,2)=p(11:20,2);

for a=1:100 conf_mat(p(a,2),p(a,1))=conf_mat(p(a,2),p(a,1))+1; end

for c=1:10 for f=1:10 fprintf('%4d',conf_mat(f,c)); end fprintf('\n\n'); endend

fprintf('\n\n\n\n');

Page 108: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

106

Ø SELECCIÓN DE MEJORES VARIABLES Y SENSORES

• FICHERO: RES_VAR.M

%------------------------------------------------------------------------% SELECCIÓN DE LAS MEJORES VARIABLES Y MEJORES SENSORES%------------------------------------------------------------------------clc;load m.mat % matriz global de parametrosm=m(1:100,1:60); % solo nos interesa las medidas de aceites

m(11:20,[8,20,32,44,56])=m(31:40,[8,20,32,44,56]); %S8 de dia 2substituido por S8 dia 4m_aux=m;

%------------------------------------------------------------------------% Seleccion de las mejores variables mediante el calculo de su resolucion% media%------------------------------------------------------------------------

%calculo de valor medio de mes aceitemes_aceite(1:10,1:60)=0; % filas para tipo aceite y columnas para % variablesfor parametro=1:60 for tipo=1:10 for i=tipo:10:(90+tipo) mes_aceite(tipo,parametro)=mes_aceite(tipo,parametro)+ m_aux(i,parametro); end endendmes_aceite=mes_aceite/10;

%calculo valor medio de la variablevar(1:60)=0;for parametro=1:60 for medida=1:100 var(parametro)=var(parametro)+m_aux(medida,parametro); endendvar=var/100;

%calculo variable interclasevar_interclase(1:60)=0 ;for parametro=1:60 for tipo=1:10 var_interclase(parametro)=var_interclase(parametro)+ (mes_aceite(tipo,parametro)-var(parametro))^2; endendvar_interclase=var_interclase/10;

%calculo var_intraclasevar_intraclase(1:60)=0;var_tmp(1:10,1:60)=0; % guarda el segundo sumatorio correspondiente a % medidas

for parametro=1:60 for tipo=1:10 for i=tipo:10:(90+tipo)

Page 109: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

107

var_tmp(tipo,parametro)=var_tmp(tipo,parametro)+ (m_aux(i,parametro)-mes_aceite(tipo,parametro))^2; end var_tmp=var_tmp/10; var_intraclase(parametro)=var_intraclase(parametro)+ var_tmp(tipo,parametro); endendvar_intraclase=var_intraclase/10;

%calculo resolucion media=var_interclase/var_intraclaseres=var_interclase./var_intraclase;

%ordenacion de la resolucion de las variablesfprintf('\nCalculo de la resolucion media de cada variable\n\n');[res_ord,pos]=sort(res);for i=60:-1:1 if (pos(i)>0 & pos(i)<13) nombre='Gi'; sensor=pos(i); end if (pos(i)>12 & pos(i)<25) nombre='Gf'; sensor=pos(i)-12; end if (pos(i)>24 & pos(i)<37) nombre='Dg'; sensor=pos(i)-24; end if (pos(i)>36 & pos(i)<49) nombre='Dgn'; sensor=pos(i)-36; end if (pos(i)>48 & pos(i)<61) nombre='Tm'; sensor=pos(i)-48; end fprintf('\nColumna %2d Variable %3s : %.3f (S%2d)',pos(i),nombre, res_ord(i),sensor);endfprintf('\n\n');

%------------------------------------% Ranking del sensor con mejor Dgn%------------------------------------

fprintf('\nRanking del sensor con mejor Dgn\n');par_dgn=m_aux(:,37:48);sensor(1:12)=0;for num_sensor=1:12 for i=1:100 sensor(num_sensor)=sensor(num_sensor)+par_dgn(i,num_sensor); endendsensor=sensor/100;[sensor_ord,pos]=sort(sensor);

for i=12:-1:1 fprintf('\n %2d --> S%2d : %.3f',13-i,pos(i),sensor_ord(i));endfprintf('\n\n');

Page 110: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

108

• Fichero: CLASSFUZZY_ARTMAP2.M

% ---------------------------------------------------------------------% PRESENTACIÓN DE LOS RESULTADOS OBTENIDOS (RATE OK, BIEN, MAL, ..ETC)% DE Y REALIZACION DE LA CONFUSION MATRIX DESPUES DE LA SELECCIÓN DE% MEJORES VARIABLES Y SENSORES% ----------------------------------------------------------------------

clc;load ac_fzart3; % estructura que contiene los resultados fuzzy_artmap % de todos los parametros de entrada analizadosclas=ac_fzart;

% Presentación de los parametros obtenidos para cada variable%-------------------------------------------------------------nombre_par=['2 var. ' '5 var. ' '10 var. ' '15 var. ' '20 var. ' '40 var. ' '48 var. ' '2 sens. ' '3 sens. ' '4 sens. '];

fprintf('\n\n\n\n\tTABLA GENERAL DE RESULTADOS FUZZY ART-MAP (mejoresvariables y mejores sensores) \n');fprintf('\n\nparametros rateok \t bien \t mal nsnc');for i=1:10 fprintf('\n\n%s : %8d %8d %8d %8d',nombre_par(i,:),clas(i).rateok,clas(i).bien,clas(i).mal,clas(i).nsnc);endfprintf('\n\n\n\n');

% CONFUSION MATRIX%--------------------%% Como la primera clasificación (10 primeros valores obtenidos) no tienen% el mismo formato que las siguientes, se descartaran para la confusion% matrix

for i=1:10 %tenemos 10 parametros (entre sensores y variables) fprintf('\n\n\n\n CONFUSION MATRIX: %s\n\n\n',nombre_par(i,:)); conf_mat((1:10),(1:10))=0; p=clas(i).historial;

for a=11:100 %descartamos las 10 primeras clasificaciones por no teenr % el mismo formato que las otras conf_mat(p(a,2),p(a,1))=conf_mat(p(a,2),p(a,1))+1; end

for c=1:10 for f=1:10 fprintf('%4d',conf_mat(f,c)); end fprintf('\n\n'); endendfprintf('\n\n\n\n');

Page 111: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

109

ANEXO C: ESQUEMAS Y PCB DE LAS PLACAS SENSORAS

Ø PLACA CORRESPONDIENTE A LA CÁMARA 1 ( PARA SENSORESTAGUCHI Y FIS)

• ESQUEMA ELÉCTRICO

Page 112: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

110

• DETALLE DE CONEXIÓN

• PCB DISTRIBUCIÓN DE COMPONENTES

Page 113: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

111

• PCB CARA DE COMPONENTES

• PCB CARA DE PISTAS

Page 114: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

112

Ø PLACA CORRESPONDIENTE A LA CÁMARA 2 ( SENSORES TAGUCHI )

• ESQUEMA ELÉCTRICO

Page 115: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

113

• PCB DISTRIBUCIÓN DE COMPONENTES

• PCB CARA DE COMPONENTES

Page 116: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

114

• PCB CARA DE PISTAS

Page 117: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

115

Ø PLACA CORRESPONDIENTE A LA CÁMARA DE SENSORES FIS-SB

• ESQUEMA ELÉCTRICO

Page 118: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

116

• PCB DISTRIBUCIÓN DE COMPONENTES

Page 119: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

117

• PCB CARA DE COMPONENTES

Page 120: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

ANEXOS

118

• PCB CARA DE PISTAS

Page 121: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Bibliografía

119

6.- BIBLIOGRAFÍA

• Sensors a Comprehensive Survey. Chemical and Biochemical Sensors Part I (volume2), Capítulo 9, Edited by W. Göpel, J. Hesse and J.N. Zemel. Año 1991

• Solid State Gas Sensor. Edited by PT. Mosley and BC. Tolfield, Editorial: AdamHilger. Año 1987

• Figaro Engineering Inc. Figaro Gas Sensor Technical Reference. Abril 1995

• Redes Neuronales Artificiales, Fundamentos, modelos y aplicaciones. José R. Hilera /Víctor J. Martínez. Editado por la Universidad Politécnica de Madrid. Año 1994.

Page 122: Diseño y realización de una nariz electrónica para la ...deeea.urv.cat/public/PROPOSTES/pub/pdf/115pub.pdf · 2.3.2.3 Instrucciones generales de los sensores TGS 16 2.3.2.4 Lista

Referencias

120

[1] Proyecto final de carrera: “Disseny i realització d’un nas electrònic per a la discriminació d’olis”. Director:

Xavier Correig i Blanchar. Autores: Xavier Boleda Boada y Clive Sellwood. Junio de 1999

[2] Gail A. CARPENTER, Stephen GROSSBERG, and David B. ROSEN, Fuzzy ART: Fast Stable Learning and

Categorization of Analog Patterns by an Adaptative Resonance System. Neural Networks, Vol. 4, pp 759-771,

año 1991.

[3] Gail A. CARPENTER, Stephen GROSSBERG, Natalya MARKUZON, John H. REYNOLDS, and David B.

ROSEN, Fuzzy ARTMAP: A Neural Network Architecture for Incremental Supervised Learning of Analog

Multidimensional Maps. IEEE transactions on Neural Networks, Vol. 3, NO. 5, pp 698-713, September 1992.