Estudi de les derives en els sensors de gasos de tipus...

82
Estudi de les derives en els sensors de gasos de tipus semiconductor AUTOR: Moisés Panigua Borrell. DIRECTORS: Jesús Brezmes Llecha, Eduard Llobet Valero. DATA: Juny/2.002

Transcript of Estudi de les derives en els sensors de gasos de tipus...

Page 1: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

Estudi de les derives en els sensors de gasos de tipus semiconductor

AUTOR: Moisés Panigua Borrell. DIRECTORS: Jesús Brezmes Llecha, Eduard Llobet Valero.

DATA: Juny/2.002

Page 2: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

Agraïments A la meva família, pel suport i ànims constants que m’han donat al llarg d’aquests anys i sense els quals el camí recorregut hagués estat més dur. A Jesús Brezmes Llecha i Eduard Llobet Valero, directors d’aquest projecte, perquè sempre han estat oberts a resoldre qualsevol dubte que sorgís, a escoltar-me i facilitar-me la tasca en tot moment des d’una relació ben cordial. A Guillermo Saiz Laudo, per la seva cooperació i temps dedicat al laboratori. Finalment, a totes aquelles persones que, d’una forma o altra, m’han ajudat en els instants en què realment ho necessitava.

Page 3: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ÍNDEX

I

ÍNDEX

1. DERIVES EN ELS SENSORS QUÍMICS...................................................................................... 1

1.1. INTRODUCCIÓ ........................................................................................................................ 1 1.2. ESTAT ACTUAL DE LA RECERCA....................................................................................... 1

1.2.1. Selecció de les Característiques ....................................................................................... 1 1.2.2. Mètodes de Calibració...................................................................................................... 1 1.2.3. Classificadors Auto-organitzatius .................................................................................... 2 1.2.4. Models Lineals Dinàmics.................................................................................................. 2 1.2.5. Xarxes Neurals.................................................................................................................. 4

2. SISTEMA D’OLFACTE ELECTRÒNIC ...................................................................................... 6

2.1. DESCRIPCIÓ GENERAL ......................................................................................................... 6 2.2. MOSTREJADOR D’ESPAI DE CAP........................................................................................ 7 2.3. CAMBRA DE SENSORS.......................................................................................................... 9

2.3.1. Sensors de Gasos .............................................................................................................. 9 2.3.1.1. Sensors Figaro Sèrie 8............................................................................................ 11 2.3.1.2. Sensors FIS Sèrie SP.............................................................................................. 12 2.3.1.3. Sensors FIS Sèrie SB ............................................................................................. 12 2.3.1.4. Sistema de mesura.................................................................................................. 13

2.3.2. Sistema Informàtic ............................................................................................................ 16 3. PROCESSAMENT DEL SENYAL................................................................................................. 18

3.1. INTRODUCCIÓ ........................................................................................................................ 18 3.2. ANÀLISI DE COMPONENTS PRINCIPALS .......................................................................... 19

3.2.1. Introducció........................................................................................................................ 19 3.2.2. Algorisme.......................................................................................................................... 19 3.2.3. Implementació................................................................................................................... 21

3.2.3.1. Programació........................................................................................................ 21 3.2.3.2. Avaluació de Resultats ....................................................................................... 22

3.3. XARXES NEURALS FEEDFORWARD ................................................................................... 23 3.3.1. Introducció........................................................................................................................ 23 3.3.2. Algorisme.......................................................................................................................... 23

3.3.2.1. Estructura............................................................................................................ 23 3.3.2.2. Aprenentatge....................................................................................................... 25

3.3.3. Implementació................................................................................................................... 26 3.4. XARXES LEARNING VECTOR QUANTIZATION ................................................................... 26

3.4.1. Introducció........................................................................................................................ 26 3.4.2. Algorisme.......................................................................................................................... 26 3.4.3. Implementació................................................................................................................... 27

3.5. XARXES FUZZY ART ............................................................................................................... 28 3.5.1. Introducció........................................................................................................................ 28 3.5.2. Algorisme.......................................................................................................................... 29

3.6. XARXES FUZZY ARTMAP ....................................................................................................... 30 3.6.1. Introducció........................................................................................................................ 30 3.6.2. Algorisme.......................................................................................................................... 31 3.6.3. Implementació................................................................................................................... 33

3.7. PREPROCESSAMENT ............................................................................................................. 34 3.7.1. Introducció........................................................................................................................ 34 3.7.2. Extracció de Paràmetres .................................................................................................. 34 3.7.3. Normalització de Dades.................................................................................................... 34

Page 4: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ÍNDEX

II

4. ESTUDI EXPERIMENTAL ............................................................................................................ 36

4.1. OBJECTIUS................................................................................................................................ 36 4.2. METODOLOGIA EXPERIMENTAL ........................................................................................ 36 4.3. EVOLUCIÓ DEL SENYAL ....................................................................................................... 36 4.4. REDISSENY DE L’EXPERIMENT........................................................................................... 39 4.5. EVOLUCIÓ DEL SENYAL ....................................................................................................... 40 4.6. RESULTATS .............................................................................................................................. 41

4.6.1. Correcció Matemàtica sobre els PCs ............................................................................... 41 4.6.2. Xarxa Neural Fuzzy Artmap ............................................................................................. 42 4.6.3. Comparació de Resultats amb d’altres Xarxes Neurals ................................................... 44

4.6.3.1. Resultats de la Xarxa Neural Learning Vector Quantization ............................. 44 4.6.3.2. Resultats de la Xarxa Neural Feedforward......................................................... 45

5. CONCLUSIONS............................................................................................................................... 46 6. ANNEXES ......................................................................................................................................... 47 REFERÈNCIES ....................................................................................................................................... 75

Page 5: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ÍNDEX

III

Figura 2.1. Esquema general del sistema d’adquisició de dades del nas electrònic ................................... 6 Figura 2.2. Esquema interior del HP 7689 Headspace Sampler en situació de repós. .............................. 7 Figura 2.3. Esquema de funcionament que explica la variació de resistència de la capa activa

en sensors de diòxid d’estany................................................................................................... 10 Figura 2.4. Esquema dels sensors Figaro sèrie 8........................................................................................ 11 Figura 2.5. Versions comercials dels sensors Figaro sèrie 8 ...................................................................... 11 Figura 2.6. Esquema de l’element sensor dels FIS SP ............................................................................... 12 Figura 2.7. Presentació comercial del sensors FIS SP ............................................................................... 12 Figura 2.8. Esquema de l’element sensor dels FIS SB............................................................................... 13 Figura 2.9. Presentació comercial dels sensors FIS SB ............................................................................. 13 Figura 2.10. Sistema d’adquisició format per dues plaques connectades en sèrie ..................................... 13 Figura 2.11. Esquema del circuit de mesura en DC dels sensors FIS SP ................................................... 15 Figura 2.12. Esquema del circuit de mesura en DC dels sensors FIS SB................................................... 15 Figura 2.13. Esquema del circuit de mesura en DC dels sensors taguchi sèrie 8 ....................................... 15 Figura 3.1. Exemple gràfic de l’algorisme PCA on es mostra les dues components principals,

així com d’altres paràmetres importants................................................................................... 20 Figura 3.2. PCA format per deu measures que pertanyen a tres classes diferents...................................... 22 Figura 3.3. Estructura bàsica d’una xarxa Feedforward ............................................................................ 24 Figura 3.4. Esquema de funcionament d’una neurona ............................................................................... 24 Figura 3.5. Funció sigmoidal ..................................................................................................................... 24 Figura 3.6. Arquitectura d’una capa competitiva ....................................................................................... 26 Figura 3.7. Arquitectura d’una xarxa Learning Vector Quantization ........................................................ 27 Figura 3.8. Esquema de la xarxa Fuzzy Art................................................................................................ 28 Figura 3.9. Esquema general d’una xarxa Fuzzy Artmap ........................................................................... 32 Figura 4.1. Paràmetre ∆R dels sensors FIS SB en presència d’amoníac.................................................... 37 Figura 4.2. Paràmetre ∆G dels sensors FIS SB i Taguchi sèrie 8 en presència d’amoníac ........................ 37 Figura 4.3. Diagrama PCA del paràmetre ∆G............................................................................................ 38 Figura 4.4. Diagrama PCA de la unió de paràmetres ∆G+temps de pujada............................................... 39 Figura 4.5. Projecció de les mesures derivades sobre el model quan s’empra el paràmetre ∆G................ 41 Figura 4.6. Correcció matemática de les derives sobre l’espai bidimensional dels scores......................... 42

Page 6: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ÍNDEX

IV

Taula 2.1. Relació de paràmetres introduïts al Headspace Sampler i el seu significat .............................. 9 Taula 2.2. Valors de la tensió de control i de heater i resistència de càrrega emprats en totes

dues plaques............................................................................................................................... 16 Taula 3.1. Principals característiques dels algorismes aplicats .................................................................. 18 Taula 3.2. Paràmetres estàtics obtinguts en els sensors de diòxid d’estany ............................................... 34 Taula 4.1. Nombre de mesures inicials efectuades a cada mesura ............................................................. 37 Taula 4.2. Calenadari de modificació de la tensió de la resistència calefactora dels sensors..................... 39 Taula 4.3. Nombre de dies de mesura setmanals després del redisseny de l’experiment ........................... 40 Taula 4.4. Resultats numèrics de l’entrenament i posterior avaluació de les solucions potencials

en utilitzar la xarxa neural Fuzzy Artmap .................................................................................. 43 Taula 4.5. Resultats de l’entrenament amb el model inicial i posterior avaluació de les derives

amb la xarxa Learning Vector Quantization.............................................................................. 44

Page 7: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

DERIVES EN ELS SENSORS QUÍMICS

1

Capítol 1: Derives en els sensors químics 1.1. Introducció Un dels problemes més greus que limita la comercialització i l’ús del nas electrònic són les derives presents en els sensors. Aquestes mostren un comportament imprevisible a llarg terme i posseeixen una variació de mitja no nul·la en les respostes dels mateixos: mentre que en alguns d’ells el senyal decreix, en d’altres augmenta i, majoritàriament, fluctua amb una freqüència baixa. Atès que les causes exactes de les derives no es coneixen encara (es pot considerar: fluctuacions en la tensió del heater dels sensors, en la temperatura i la humitat de l’ambient de mesura, efecte de les mesures prèvies o efecte memòria,...), no s’ha pogut desenvolupar cap model definitiu que contraresti els seus efectes. A fi de fer-ho possible en aplicacions comercials, actualment, els sensors són calibrats mitjançant l’ús d’un o més volàtils. No obstant això, aquest mètode resulta només vàlid si els compostos de referència són químicament similars als analitzats. Alternativament, s’utilitzen tècniques de reconeixement de patrons i de processament de dades. 1.2. Estat Actual de la Recerca Una vegada s’ha exposat el problema de les derives en els sensors, es comentarà l’estat actual de la recerca en aquest camp. Convé ressenyar que el nombre de treballs publicats és reduït, tot i que la importància del problema, com ja s’ha vist, és cabdal en el context de les aplicacions del nas electrònic. Per aquest motiu, ens trobem davant d’una situació semi-incipient que en els propers anys haurà de prendre força. La següent divisió en subapartats respon als diversos tipus de tècniques publicades fins al moment, els quals provenen d’una compilació de diferents articles d’autors versats en el tema. 1.2.1. Selecció de Característiques Una primera idea es troba en [1], on s’intentà seleccionar les característiques pròpies de la resposta dels sensors. En primer lloc, s’utilitzà l’algorisme Supervised Fuzzy Isodata (SFI) per elegir aquestes i computar tant la pertinença de patrons en classes, com la seva forma. La sortida del SFI s’introduí posteriorment en l’algorisme Fuzzy k-Nearest Neighbour (k-NN) a fi d’identificar els volàtils desconeguts. Els resultats foren notables, si bé existia un marge d’error que permetia discriminar amb una tassa d’encert propera al 80 %. 1.2.2. Mètodes de Calibració En [2], l’autor disposà un nas electrònic format per 15 sensors, que exposà a quatre alcohols diferents i aigua durant un període de mesures de 45 dies no consecutius. Les respostes dels sensors mostraren unes derives significatives durant aquest lapse i es

Page 8: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

DERIVES EN ELS SENSORS QUÍMICS

2

tractaren mitjançant l’ús d’un d’aquests alcohols (1-propanol) com a gas de calibració. El nou senyal calibrat es va calcular com la diferència entre la resposta del gas mesurat i la pròpia de l’1-propanol. L’Artificial Neural Network (ANN) s’utilitzà com a tècnica de reconeixement de patrons, de mode que els resultats del nas electrònic milloraren considerablement. 1.2.3. Classificadors Auto-organitzatius Un altre exemple [3] es va basar en l’adaptació d’un conjunt de vectors prototipus, anomenats patrons de referència, cadascun relacionats amb un gas. Aquests darrers s’inicialitzaren amb el vector de mesura de la classe prèviament a l’aparició de les derives. En aquest procediment, existeix una clara analogia amb els Self-Organizing Maps (SOM), dels quals s’esmentarà el seu ús en 1.2.5. No obstant això, no hi apareix cap interconnexió entre les neurones (equivalent dels patrons de referència) i només una d’elles representa cada classe. En un aplicació de nas electrònic amb m sensors, el patró es pot representar a través d’un vector m-dimensional. La formulació més senzilla empra un criteri de discriminació geomètrica (com és el cas de la distància Euclidiana) per a reconèixer el gas quan el conjunt de sensors s’exposa a una mescla desconeguda. Aquest últim s’identifica com aquell, el patró de referència del qual és més similar al vector de mesures segons el criteri citat anteriorment. Llavors, el patró de referència s’actualitza per tal d’esdevenir més similar amb el darrer vector de mesures. Els resultats d’aquest mètode comportaren la consecució d’un 100 % d’encert quan les dades eren filtrades del soroll existent i un 78 % en cas que no es fes. Tanmateix, posseeix dos grans desavantatges: és molt sensible al soroll i requereix l’aportació de dades freqüentment, vist que els patrons de referència canvien cada cicle de mesura. 1.2.4. Models Lineals Dinàmics Si es pressuposa que els factors de derives en mode comú són dominants sobre els individuals de cada sensor, es pot comprendre que les relacions dels senyals d’aquests dispositius són constants per a cada gas. Llavors és possible estimar un model, lineal o no lineal, per tal de preveure el senyal d’un sensor mitjançant l’ús de la resta com a entrades del mateix. Aquest model predictiu serà distint per gasos diferents si els volàtils són prou dissemblants. A més, es plantejarà una característica dinàmica a fi que actualitzi els seus paràmetres on-line quan s’han esdevingut llargs períodes sense realitzar mesures. Aquesta fou la línia seguida pels autors en [4]. En una aplicació típica, es necessita el senyal de sortida de tots els sensors exposats a diferents gasos amb l’objectiu d’estimar un model per a cada dispositiu i gas. En primer lloc, quan es realitza una mesura, la resposta d’aquests s’emmagatzema. Els models són llavors utilitzats per predir el senyal d’un o diversos sensors. Els errors de predicció per cada model de gas es poden calcular per tal d’identificar-lo posteriorment. La regla que es segueix per la decisió és seleccionar el que posseeix un error de predicció total més baix per tots els sensors. Quan s’identifica un volàtil, els paràmetres del model per aquest compost s’actualitzen a partir del procediment que s’esmenta ulteriorment.

Page 9: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

DERIVES EN ELS SENSORS QUÍMICS

3

El model Box-Jenkins fou l’emprat en l’estudi, el qual es pot descriure a través de la següent expressió:

( ) )()(·,)(ˆ tvtuqGty += θ (1.1) on )(ˆ ty és el valor de la sortida del model en temps discret; u(t), les entrades (senyals dels sensors); G, la funció lineal de la dinàmica del sensor; q, l’operador de retard: qy(t)=y(t+1); θ , alguns paràmetres per determinar i v(t), soroll, el qual pot modelar-se com a blanc, obtenint-se en el cas general:

)(·)()()(·

)()()(ˆ)·( te

qDqCnktu

qFqBtyqA +−= (1.2)

on q-n aporta el valor de n mesures retardades en el temps

nana qaqaqA −− +++= ·...·1)( 1

1 nb

nb qbqbqB −− +++= ·...·1)( 11

ncnc qcqcqC −− +++= ·...·1)( 1

1 (1.3) nd

nd qdqdqD −− +++= ·...·1)( 11

nfnf qfqfqF −− +++= ·...·1)( 1

1

on an, bn, cn, dn i fn són els paràmetres que formen el vector θ determinats per regressió.

e(t)=soroll blanc

Els paràmetre θ i els filtres A, B, C, D i H s’ajusten de manera que la sortida del model s’assembli de la forma més exacta possible a la real. Formalment, això s’aconsegueix minimitzant algun criteri [5]. En el model Box-Jenkins, la predicció de la sortida es fa sense l’ús de valors passats del mateix. Empra valors d’entrada passats conjuntament amb soroll filtrat, la qual cosa significa que A(q)=1:

)(·)()()(·

)()()(ˆ te

qDqCnktu

qFqBty +−= (1.4)

En aquest cas, )(ˆ ty correspon al senyal del sensor que es desitja modelar, mentre que el vector d’entrada u(t) conté els senyals de la resta. Llavors, es calcula una estimació del senyal actual del sensor modelat i, d’aquesta forma, es pot trobar la predicció d’error del model. Es pot escriure la sortida predita en un temps t usant el vector de paràmetres θ com a: ( )θ|ˆ ty . Per portar a terme la característica dinàmica del model es va fer que el senyal estimat del sensor i, ( ))(|ˆ i

Ai ty θ , fos una funció de )(iAθ i de senyals passats i presents de la resta

de sensors. Així doncs, cada vegada que es realitza una nova mesura, es dóna lloc a

Page 10: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

DERIVES EN ELS SENSORS QUÍMICS

4

noves estimacions de yi(t) i )(iAθ . D’entre totes les tècniques possibles s’escollí el

Recursive Least Squares (RLS), el qual assigna pesos decreixentment de forma exponencial. Reprenent novament el problema de discriminació entre m gasos diferents en presència de derives, suposarem que cada un d’ells, per exemple l’A, posseeix una matriu de paràmetres tal que ( ))()1( ˆ...ˆˆ n

AAA θθθ = , on cada columna representa els paràmetres associats amb un sensor. Així doncs, en cada nova mesura es computa un estimador

( ))(|ˆ igassensor ty θ de cada resposta dels dispositius. El gas desconegut A resulta aquell, el

model del qual proporciona un error quadràtic menor:

( )( )∑=

−N

i

iAii tyty

1

2)(|ˆ)( θ (1.5)

Finalment, s’actualitza un únic vector de paràmetres associat al gas identificat si existeix una diferència significativa entre l’error del model de predicció del gas i els errors de predicció de la resta. Els factors d’encert obtinguts foren notablement superiors als de tècniques de reconeixement de patrons com la xarxa neural Feedforward. La raó d’aquest fet, a pesar que el senyal del sensor derivés en el temps, és conseqüència que algunes de les seves relacions romanen constants. Per tant, la tesi inicial per la qual els factors de deriva comuns són dominants sobre els individuals resulta satisfactòria. Igualment succeeix quan s’utilitzaren models estàtics, els quals no podien seguir la inèrcia de les derives quan s’exposaven a períodes llargs sense realitzar cap mesura. 1.2.5. Xarxes Neurals En aquest darrer treball que s’exposa [6], els autors minimitzen l’efecte de les derives introduint una correcció adaptativa en la xarxa neural Self-Organizing Maps (SOM). La SOM és una xarxa neural amb la capacitat de crear una representació organitzada en l’espai (mapes) de múltiples característiques a partir dels senyals d’entrada, en una forma no supervisada. L’arquitectura consisteix en una sola capa rectangular de neurones, els pesos de les quals representen la seva posició en l’espai de patrons. Durant el procés d’entrenament, un vector d’aquest conjunt (xi), representant un patró de gas, es presenta a la xarxa. La neurona guanyadora, la més propera al patró segons la mètrica Euclidiana, i les seves veïnes (regió veïna) canvien la seva posició, tot esdevenint més properes al patró d’entrada mitjançant la següent regla:

( )antigaiji

antigaij

novaij xdtnbt ωηωω −+= )·,()·( (1.6)

on ωij són els pesos de les neurones a l’interior de la regió veïna; j, l’índex de la neurona; i, l’índex del patró; t, el pas de temps; η(t), el ritme d’aprenentatge; nb(t,d), la funció de veïnatge i d, la distància entre la neurona i la guanyadora mesurada sobre la xarxa tot emprant la mètrica Manhattan (de fet també pot ser Euclidiana). El ritme d’aprenentatge i el veïnatge són funcions decreixents monòtones al llarg de

Page 11: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

DERIVES EN ELS SENSORS QUÍMICS

5

l’entrenament. Quan l’entrenament ha convergit, la xarxa ha après la topologia dels patrons d’entrada. Finalment, esdevé necessari realitzar un pas supervisat a fi d’etiquetar les neurones. Els patrons d’entrenament són presentats novament a la xarxa i la neurona guanyadora s’etiqueta amb la classe del patró d’entrada. La tècnica de compensació proposada rau a mantenir l’aprenentatge de la SOM durant la fase d’operació normal. Tanmateix, en aquests moments, el ritme d’aprenentatge ha de romandre amb valors baixos i l’extensió del veïnatge és redueix a zero: tan sols, la neurona guanyadora adapta els seus pesos. La nova aportació demostra un èxit superior en la tassa d’encert que amb el model estàtic. No obstant això, s’ha d’esmentar que les derives emulades procedien d’un model matemàtic tal que: ( )tGtG o α+= 1)( , on Go correspon a la resposta del sensor abans de les derives i maxtα s’ha escollit aleatòriament per a cada dispositiu en l’interval (-0,4, +0,4). D’aquesta forma, s’ha experimentat amb un conjunt de característica afí, que possiblement no s’adeqüi a les derives naturals dels sensors.

Page 12: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

SISTEMA D’OLFACTE ELECTRÒNIC

6

Capítol 2: Sistema d’Olfacte Electrònic 2.1. Descripció General Un nas electrònic és un equip de mesura format per una sèrie de mòduls que treballen de forma conjunta a fi de quantificar i/o classificar mostres gasoses. En el sistema d’adquisició de dades del projecte es poden distingir quatre blocs bàsics, que esmentem a continuació:

• Ampolla d’aire sintètic. Recipient que conté el gas portador de les substàncies que es vol mesurar.

• Headspace Sampler (mostrejador d’espai de cap). Aparell encarregat d’obtenir mostres dels volàtils que s’han d’analitzar i d’inserir-les en el flux del gas portador per encaminar-les fins a la cambra de sensors.

• Sistema de mesura. Dues cambres de sensors connectades en sèrie amb sensors de gasos basats en òxids metàl·lics.

• Sistema informàtic. Les seves funcions cobreixen les tasques d’adquisició i processat dels senyals elèctrics que provenen de la matriu de sensors.

L’esquema general d’aquest sistema es mostra en la figura 2.1:

Figura. 2.1. Esquema general del sistema d’adquisició

de dades del nas electrònic. Tot seguit, s’identifica cada número de la figura anterior amb l’element que desitja representar:

1. Dues cambres de sensors connectades en sèrie. 2. Mànega de sortida del mostrejador d’espai de cap fins a la primera cambra

constituïda per un tub de coure central de diàmetre 20 mm recobert d’escuma. 3. Teclat per a la programació del Headspace Sampler. 4. Ordinador personal on s’ha instal·lat la targeta d’adquisició de dades pcl812. 5. Cinta transportadora numerada de l’1 al 42 per col·locar els flascons amb els

volàtils que s’han de mesurar. 6. Entrada dels flascons al forn del mostrejador d’espai de cap. 7. 2 Cables plans de 20 conductors que connecten la sortida dels senyals elèctrics

de les cambres dels sensors fins a l’entrada del convertidor analògic-digital de la targeta d’adquisició de dades pcl812.

Page 13: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

SISTEMA D’OLFACTE ELECTRÒNIC

7

8. Cable sèrie RS-232 del Headspace Sampler al port COM1 de l’ordinador personal per a la sincronització dels equips.

9. Bombona d’aire sintètic. 10. Tub de coure flexible diàmetre 20 mm que uneix l’ampolla d’aire sintètic i el

Headspace Sampler. El procediment de mesura consta de tres fases diferenciades: període d’escalfament, d’injecció i de repòs. En totes elles, el flux d’aire que circula a l’interior de la cambra de mesura roman constant. En primer lloc, el volàtil s’escalfa i es pressuritza al forn del mostrejador d’espai de cap. Durant aquest interval de temps, l’aire sintètic passa per ambdues cambres de sensors. Seguidament, s’injecta la substància que s’ha de mesurar tot tallant el corrent anterior. En aquest lapse, la matriu de sensors reacciona i la seva resposta es mostreja a intervals regulars per part del sistema informàtic. Finalment, s’esdevé l’etapa de repòs, en la qual retorna el flux constant d’aire sintètic. 2.2. Mostrejador d’Espai de Cap El HP 7689 Headspace Sampler consta externament d’una cinta transportadora on es poden situar fins a 42 flascons amb els volàtils; d’un braç robòtic que introdueix aquestes darreres al seu interior i d’un visualitzador més un teclat per a la configuració dels seus paràmetres. Els flascons, també designats com a vials, tenen una forma cilíndrica, estan fabricats en Pyrex i disposen d’una capacitat de 20 ml. La seva part superior es tanca mitjançant un septum, tap de goma, convenientment fixat amb un recobriment d’alumini específic facilitat pel proveïdor. Les operacions que realitza el mostrejador d’espai de cap en el procés de mesura són descrites a continuació. En cas de desitjar-se una major profusió en l’explicació, s’haurà de consultar el manual del mateix [7]. Per tal de facilitar la seva comprensió, es mostra un esquema de la part interna de l’aparell durant el període de repòs:

Figura 2.2. Esquema interior del HP 7689 Headspace Sampler en situació de repòs.

Page 14: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

SISTEMA D’OLFACTE ELECTRÒNIC

8

Com s’observarà en la següent seqüència d’accions, el seu funcionament gira al voltant de la vàlvula de sis vies:

i) En estat d’espera, la vàlvula de pressurització roman oberta tot permetent que el gas auxiliar circuli a través del loop, tub d’acer inoxidable en forma d’espiral, i l’agulla (needle sobre la figura). En canvi, el gas portador sortirà a la mànega exterior.

ii) Una vegada es prem el botó d’inici, el braç robòtic recull el primer vial de la safata i l’introdueix al forn durant un temps d’escalfament.

iii) En acabar, l’agulla es mou en línia amb el vial, la vàlvula de pressurització es tanca i la primera punxa el septum. Després es torna a obrir, de manera que el gas auxiliar entra al vial en un temps de pressurització.

iv) Quan la vàlvula de venting s’obre, el loop s’omple i s’equilibra a la pressió atmosfèrica al llarg d’un temps d’emplenament.

v) Mentre s’esdevé el temps d’equilibri del loop, les vàlvules de pressurització i venting es tanquen.

vi) En darrer lloc, la vàlvula de sis vies commuta a la posició adjacent, de forma que el gas portador es situa en línia amb el loop i es produeix el temps d’injecció.

vii) En finalitzar, el braç robòtic retorna el vial del forn a la safata. Els paràmetres anteriors, així com la temperatura del forn, loop i mànega de sortida, són configurables per l’usuari mitjançant el teclat situat a la cantonada inferior esquerra de la cara frontal de l’aparell. Aquests es despleguen a mode de menú. Es poden editar prement les xifres desitjades i validar amb la tecla ENTER. El sistema d’adquisició treballarà amb els següents valors:

• Temperatures: OVEN 70 LOOP 75 TR. LINE 80

• Temps: GC CYCLE TIME 90.0 VIAL EQ. TIME 5.0 PRESSURIZ. TIME 1.0 LOOP FILL TIME 1.0 LOOP EQ. TIME 0.05 INJECT TIME 10.0

• Vials: FIRST VIAL 10 LAST VIAL 12

Page 15: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

SISTEMA D’OLFACTE ELECTRÒNIC

9

A la taula següent s’esmenta el significat dels diferents paràmetres: Paràmetre Significat OVEN Temperatura del forn en ºC. LOOP Temperatura del loop en ºC. TR. LINE Temperatura de la línia de transmissió (mànega) en ºC. GC CYCLE TIME Temps total del cicle de mesura. VIAL EQ. TIME Temps d’escalfament. PRESSURIZ. TIME Temps de pressurització. LOOP FILL TIME Temps d’emplenament. LOOP EQ. TIME Temps (constant per defecte) d’equilibrat de pressions internes. INJECT TIME Temps d’injecció FIRST VIAL Primer flascó de la sèrie de mesures que es realitza. LAST VIAL Darrer flascó de la sèrie de mesures que es realitza.

Taula 2.1. Relació de paràmetres introduïts al Headspace Sampler i el seu significat.

Atès que l’estudi d’intervals de temps i temperatura no és l’objectiu d’aquest projecte, deixem al lector interessat la possibilitat d’analitzar detalladament el mateix en [8], a partir del qual s’ha ha extret aquests paràmetres. Pel que fa al nombre de flascons, s’afegeix que es mesuraran tres compostos: etanol, amoníac i benzè. Després d’haver realitzat diferents anàlisis, s’ha constatat que els sensors presenten una major sensibilitat amb aquests volàtils. 2.3. Cambra de Sensors 2.3.1. Sensors de Gasos Els sensors de gasos emprats en aquest projecte són de tipus semiconductor, concretament de diòxid d’estany ( )2SnO . Les característiques que els defineixen són la seva alta sensibilitat en presència de diversos volàtils orgànics, el cost de fabricació reduït i el requeriment d’una circuiteria poc complexa per a la seva mesura en temps real. El funcionament es fonamenta en la variació de la resistència que presenta la capa activa davant diferents compostos orgànics. Quan el dispositiu s’escalfa fins a una temperatura de treball aproximada de 350 ºC, gràcies a una resistència anomenada heater, davant l’absència d’oxigen, els electrons circulen lliurement per les fronteres granulades del diòxid d’estany. En aire pur, l’oxigen atrapa aquests darrers a causa de la seva afinitat electrònica, tot quedant adsorbit a la superfície. Per aquest motiu, es crea una barrera de potencial que dificulta el seu pas, si els portadors majoritaris són de tipus n, de manera que la resistència augmenta.

Page 16: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

SISTEMA D’OLFACTE ELECTRÒNIC

10

Figura. 2.3. Esquema de funcionament que explica la variació de la

resistència de la capa activa en sensors de diòxid d’estany. En el moment que el sensor entra en contacte amb una atmosfera rica en volàtils reductors, la superfície de diòxid d’estany absorbeix aquestes molècules provocant la seva oxidació i l’alliberament d’electrons. Per tant, en cas de treballar amb semiconductor de tipus n, la barrera de potencial disminueix i, per consegüent, la resistència experimenta un decrement en el seu valor. Ara bé, si el material està compost majoritàriament per portadors de tipus p, ocorre el fet contrari, per tal com es produeix una recombinació electró-forat. Convé ressenyar que la resposta dels sensors de diòxid d’estany depèn fortament de la temperatura i de la composició de la capa activa. Combinant diferents temperatures de treball i dopants es poden crear sensors amb sensibilitats especialitzades a fi de detectar compostos volàtils concrets. Certament, la seva manca de selectivitat és una altra peculiaritat afegida que permet considerar-los en un ampli marge d’aplicacions. Succeeix un fet similar amb la humitat, a causa que els òxids metàl·lics formen una estructura cristal·lina iònica que permet la interacció amb els anions (OH-) i cations (H+) resultat de la dissociació de vapor d’aigua. Per tal de corregir aquest efecte es disposa de les següents solucions:

• Compensació per programari després d’haver realitzat les mesures pertinents. • Cicle tèrmic polsat actuant sobre el heater. • Manteniment d’una atmosfera amb humitat constant. • Utilització de filtres mecànico-químics que eliminin la humitat.

Com a conseqüència d’aquestes característiques, la cambra dels sensors haurà de restar tancada hermèticament per tal de minimitzar les influències que puguin provocar sobre la resposta dels sensors.

Page 17: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

SISTEMA D’OLFACTE ELECTRÒNIC

11

Finalment, s’esmentarà que, en determinats marges de concentració, s’ha comprovat de forma empírica que l’equació que relaciona la concentració d’un gas i la resistència de la capa activa del sensor correspon a: [ ] α−= CAR · (2.1) on: R defineix la resistència elèctrica del sensor. A i α són constants pròpies de cada gas. [C] respon a la concentració del gas. 2.3.1.1. Sensors Figaro Sèrie 8 Es tracta de sensors de propòsit general fabricats en tecnologia thick film per Figaro Inc. [9], els quals posseeixen una elevada sensibilitat, rapidesa en la resposta, excel·lent durabilitat i baix cost. L’element sensor es caracteritza per una conductivitat baixa en una atmosfera d’aire net. Quan apareix un gas reductor, aquesta darrera augmenta ràpidament depenent de la concentració del gas, en altres paraules, es comporta com un sensor de tipus n.

Figura 2.4. Esquema dels sensors Figaro sèrie 8. El seu disseny es basa en un heater (bobina escalfadora de secció 60 µm) situat dins d’un tub d’alúmina, sobre el qual es diposita la pasta semiconductora i es graven en or dos elèctrodes. A fi d’obtenir una estabilitat en el temps adequada, la pasta es sinteritza durant un lapse de temps perllongat a unes condicions de temperatura i atmosferes controlades.

Figura 2.5. Versions comercials del sensors Figaro sèrie 8.

Page 18: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

SISTEMA D’OLFACTE ELECTRÒNIC

12

Els sensors que s’empraran en el projecte responen a les dues versions anteriors. La configuració R (esquerra) es distingeix per una base i encapsulat de poliamida. En canvi, en la C (dreta) s’ha dissenyat una base ceràmica damunt de la qual reposa l’element sensor. Com a mitjà de protecció s’ha recobert per una malla metàl·lica. 2.3.1.2. Sensors FIS Sèrie SP La sèrie SP de Fis Inc. [10] comparteix un mode de funcionament i tecnologia similars amb els sensors Taguchi sèrie 8 de Figaro Inc. A més, el seu comportament és anàleg, és a dir, conserva la resposta de tipus n quant a la variació de conductància. La figura següent mostra l’esquema de l’element sensor:

Figura 2.6. Esquema de l’element sensor dels FIS SP.

La seva fabricació es basa en una avançada tecnologia d’impressió thick-film aplicada sobre un substrat d’alúmina, al qual se li graven uns elèctrodes d’or. Aquesta configuració permet una reducció de potència del 50 % respecte dels sensors Taguchi sèrie 8. En aquest cas, el heater d’òxid de ruteni o platí es diposita en el revers del substrat. L’encapsulat que protegeix l’element sensor (Nylon 46) s’observa a la figura 6:

Figura 2.7. Presentació comercial del sensor FIS SP.

2.3.1.3. Sensors FIS Sèrie SB Quan Fis Inc. va dissenyar la sèrie SB, va prevaler la reducció de consum de potència i de tamany mitjançant la integració de tot el conjunt sensor. Així doncs, la sèrie SB presenta un element sensor de tipus mini bead compost de diòxid d’estany, a l’interior del qual estan inserits el heater i els elèctrodes:

Page 19: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

SISTEMA D’OLFACTE ELECTRÒNIC

13

Figura 2.8. Esquema de l’element sensor dels FIS SB. Aquests sensors presenten un encapsulat metàl·lic, el qual descansa sobre una base de PBT (polibutilè tereftalat), i dues malles metàl·liques en la direcció del flux del gas que s’ha d’analitzar.

Figura 2.9. Presentació comercial del sensor FIS SB. Convé destacar que la resposta dinàmica dels sensors de la sèrie SB en presència d’un gas reductor implica l’augment de la resistència respectiva, això és, posseeixen una característica de tipus p. 2.3.2. Sistema de Mesura Està constituït per dues plaques damunt de les quals es situen les cambres dels sensors. Aquestes darreres estan connectades en sèrie a través d’un tub flexible de goma de diàmetre 8 mm. A la primera arriba la mànega procedent del mostrejador d’espai de cap, per la qual circula el gas portador:

Figura 2.10. Sistema d’adquisició format per dues plaques connectades en sèrie.

Page 20: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

SISTEMA D’OLFACTE ELECTRÒNIC

14

Les plaques han estat dissenyades a doble cara sobre un material termoestable com són les resines fenòliques. El tipus emprat és un derivat del fenol-formaldehid a causa de la seva lleugeresa (densitat aproximada 1,3 kg/dm3), baixa higroscopicitat (0,5 %) i alta resistivitat. L’ús de diferents tipus de sensors permet obtenir una major riquesa de resultats, així com, una mostra més representativa de respostes. A la primera cambra s’han connectat aquells que presentaven una sensibilitat menor, vist que la seva resposta dinàmica fóra gairebé imperceptible en cas contrari. Els models dels sensors emprats s’esmenten a continuació:

Primera cambra: • TGS 832 • TGS 880 • TGS 813 • TGS 831 • FIS SP-32 • FIS SP-31

Segona cambra: • SB-11A-00 • SB-15-00 • SB-19-00 • SB-30-00 • SB-31-00 • SB-41-0

Des del punt de vista constructiu, es pot observar que totes dues cambres estan fabricades en metacrilat separades en dues peces: la inferior, que es troba adherida a la placa del circuit imprès mitjançant Teflon (politetrafluorur d’etilè); i la superior, la qual posseeix dos orificis de diàmetre 9 mm que permeten la circulació del flux constant de gas. La seva forma exterior és paral·lelepipèdica. Quant al volum interior, interessa minimitzar-lo respecte del nombre de sensors a fi d’augmentar la sensibilitat d’aquests darrers. Per aquest motiu, ambdues cambres disposen d’unes dimensions interiors de 63 x 53 x 11 mm, fet que implica un volum intern de gas de 30 ml aproximadament. El tancament hermètic entre sengles parts es duu a terme mitjançant unes juntes de goma que recobreixen tot el perímetre extern i que s’ajusten gràcies a cargols de M-3. En aquestes condicions, s’ha constatat empíricament que la humitat relativa i la temperatura a l’interior de la cambra es mantenen més constants que a l’exterior del laboratori [11]. Els sensors FIS SP i Taguchi sèrie 8 es muntaran sobre els mateixos sòcols, atès que comparteixen una geometria en la disposició dels pius anàloga. Per la seva part, els FIS SB es connectaran a uns de menor grandària a causa de les seves dimencions. Pel primer cas, se n’emprarà un de tipus DIN 8456, mentre que pels darrers, DIP de 8 pius. Com ja s’ha esmentat anteriorment, els sensors de diòxid d’estany es poden catalogar com a resistius. A més, a fi de treballar correctament, requereixen que la capa activa romangui a temperatures elevades, de l’ordre de 350 ºC. Per aquest motiu, resulta necessari un heater que elevi aquesta darrera fins a la del punt de treball, tot aplicant una tensió al mateix. A pesar que els sensors comercials emprats presenten una configuració de pius diferent, el seu mode de mesura és anàleg en tots ells i, únicament, s’han de tenir presents les especificacions que el fabricant proporciona a la seva documentació tècnica. El mètode es fonamenta en l’obtenció de la tensió que cau entre els pius de la resistència de la capa activa mitjançant un divisor resistiu al qual se li aplica una tensió de control. Els circuits equivalents de mesura corresponen als esquemes elèctrics que es presenten a continuació:

Page 21: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

SISTEMA D’OLFACTE ELECTRÒNIC

15

Figura 2.11. Esquema del circuit de mesura en DC dels sensors FIS SP.

Figura 2.12. Esquema del circuit de mesura en DC dels sensors FIS SB.

Figura 2.13. Esquema del circuit de mesura en DC dels sensors Taguchi sèrie 8.

De la seva anàlisi es pot deduir el valor de la resistència de la capa activa:

LR

Lcs R

V·RV

RL

−= (2.2)

on:

VC: Tensió de referència Vh: Tensió de heater. RL: Resistència de càrrega. VRL: Tensió de sortida RS: Resistència de la capa activa del sensor, la qual variarà depenent dels volàtils

i que es calcularà a partir d’un programari que s’explicarà a l’apartat 2.4. S’han de comentar dos aspectes significatius:

• El circuit d’alimentació del heater i del divisor resistiu s’hauran d’implementar tantes vegades com de sensors disposi l’equip.

• El heater pot treballar amb tensió AC, de forma que es pot modular la temperatura d’aquest darrer [12] i, per tant, variar la sensibilitat del sensor. Aquesta particularitat ha estat emprada per a detectar gasos en atmosferes compostes per diversos volàtils.

Page 22: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

SISTEMA D’OLFACTE ELECTRÒNIC

16

Els valors numèrics de les diferents tensions i resistències que s’han apuntat anteriorment, es citen en la taula 2.2.:

Sensors TGS sèrie 8 Sensors FIS SP Sensors FIS SB

VC 10 Vdc 10 Vdc 5 Vdc Vh 5 Vdc 5 Vdc 1 Vdc RL 4,7 kΩ 4,7 kΩ 2,2 kΩ

Taula 2.2. Valors de tensió de control i heater i resistència de

càrrega emprats en totes dues plaques. Aquestes dades han estat obtingudes directament de la informació facilitada pel fabricant. Tanmateix, quant al valor nominal de les resistències, cal ressenyar que Figaro Inc. i Fis Inc. indicaven unes fites mínimes. Posteriorment, s’han calculat aquests de manera que l’element sensor no dissipés una potència superior a la permesa [8]. 2.4. Sistema Informàtic Un ordinador personal serà l’encarregat de gestionar el procés d’obtenció de mesures. Les tensions de sortida de les diferents resistències de càrrega es connectaran a una targeta d’adquisició de dades pcl812 mitjançant dos cables plans de 20 conductors de diàmetre 0,2 mm2 i distància entre eixos 2,54 mm. Els extrems seran terminats en dos connectors femella 2,54 x 2,54 mm DIN 41651 i a les plaques i targeta hi situarem els seus connectors mascles respectius. D’altra banda, la sincronització entre el Headspace Sampler i l’ordinador personal es durà a terme a través del port sèrie RS-232. El programari d’adquisició ha estat implementat en llenguatge C específicament per aquesta aplicació. S’encarrega de mostrejar periòdicament cada segon la tensió de la resistència de càrrega per tal de monitoritzar les variacions de la resistència de la capa activa del sensor a partir de l’expressió (2.2). En finalitzar el procés de mesura, el conjunt de dades s’arxiva en un fitxer de text, el qual contindrà la seva evolució temporal. Convé destacar que, prèviament al procés de mostreig, s’han de configurar una sèrie de paràmetres a l’inici del programa:

• Nombre de mesures que s’han de realitzar. • Nom dels fitxers de sortida. • Temps de calentament del vial. • Temps de pressurització del vial. • Temps d’emplenat del loop. • Temps d’equilibrat del loop. • Temps d’injecció. • Temps d’adquisició afegida. • Temps de repòs. • Temperatura del forn. • Temperatura del loop. • Temperatura de la mànega.

Page 23: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

SISTEMA D’OLFACTE ELECTRÒNIC

17

• Direcció de la targeta pcl812 en l’espai de memòria d’entrades i sortides. • Valor de la resistència de càrrega de cada canal. • Valor de la tensió de control del divisor resistiu.

Aquestes dades hauran de coincidir amb les introduïdes al Headspace Sampler quant a temps i temperatures a fi que no es produeixin pèrdues de sincronització entre aquest darrer i el programari. Per aquest motiu, s’ha de puntualitzar que el temps de GC cycle time del Headspace Sampler haurà de ser superior o igual a la suma dels temps parcials d’operacions. D’altra banda, els valors resistius i de tensió correspondran amb els que apareixen a la taula 2.2.

Page 24: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

18

Capítol 3: Processament del Senyal 3.1. Introducció En aquest projecte el processament de les dades ha estat de vital importància per traçar en un primer moment un camí a seguir durant l’estudi i obtenir posteriorment unes conclusions satisfactòries. El processat de senyal multivariant actual té el seu origen en la química analítica, també denominada sota el terme anglès chemometrics. A les tècniques tradicionals com l’Anàlisi de Components Principals (PCA) se li ha afegit una sèrie d’algorismes que implementen xarxes neurals, englobats dins del camp del Reconeixement de patrons o Tècniques d’intel·ligència artificial. Aquests algorismes poden sotmetre’s a diferents classificacions atenent a les seves característiques. Així doncs, es pot distingir entre algorismes supervisats i no supervisats pel que fa al seu procés d’aprenentatge; algorismes de classificació o quantificació en relació a la naturalesa binària o analògica que han de proporcionar a cada estímul d’entrada; lineals o no lineals respecte a les operacions que realitzin; paramètrics o no paramètrics en funció si es fan suposicions inicials sobre el procés que s’ha de modelar,... La taula següent resumeix cadascuna de les principals característiques de les tècniques emprades en aquest estudi: Tècnica Algorisme Aprenentatge Paramètric Aplicació PCA Lineal No supervisat No Classificació Feedforward Neural Supervisat No Classificació LVQ Neural Supervisat No Classificació Fuzzy Artmap Neural Supervisat No Classificació

Taula 3.1. Principals característiques dels algorismes aplicats. L’evolució d’aquestes tècniques ha pres una gran empenta durant aquests darrers anys i encara no es divisa l’horitzó en aquest camp d’investigació. En els seus inicis es va treballar sobre tècniques lineals tradicionals en la química analítica. Tanmateix, i com a conseqüència de les interaccions no lineals entre els diferents compostos que reaccionen amb els sensors, han aparegut algorismes que no requereixen linealitat entre les dades, com són les xarxes neurals. Cada any sorgeixen noves tècniques que intenten millorar les precedents. Per a una major informació, es recomana al lector que consulti la referència [13], en la qual es presenta un complet repàs de totes les tècniques emprades fins a l’actualitat, a més de valorar les diferents línies de treball que han de definir el futur del processament de senyal en els sistemes d’olfacte electrònic. En aquest capítol, els sis primers apartats descriuen la utilització d’algorismes diferents, tot donant rellevància a les novetats que es puguin desprendre de l’adaptació de tècniques conegudes a l’aplicació que ens ocupa. D’altra banda, convé ressenyar que les tècniques de reconeixement de patrons requereixen d’un preprocessament previ mitjançant el qual es pot extreure i normalitzar la informació important, per aquest motiu, s’ha inserit un darrer apartat que tracti aquest tema.

Page 25: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

19

3.2. Anàlisi de Components Principals 3.2.1. Introducció L’Anàlisi de Components Principals (PCA) és una tècnica originalment proposta en 1981 [14], que va sorgir com a resposta a la creixent quantitat de dades que podien ser obtingudes en cada mesura gràcies als instruments de laboratori de nova generació. Aquesta situació va comportar una saturació en el volum d’informació que no permetia extreure la informació rellevant. En definitiva, va esdevenir-se una doble necessitat: comprimir i destriar la informació útil d’un conjunt de xifres voluminós, atès que en moltes ocasions la informació essencial no depèn de variables aïllades sinó de la interrelació entre les mateixes. L’algorisme PCA resol aquests problemes, per aquest motiu, és una de les tècniques més emprades pels químics analítics i per aquells investigadors que versen el seu treball sobre el nas electrònic. PCA és un mètode que assumeix colinearitat entre les variables que hi intervenen, en altres paraules, es tracta d’un algorisme lineal que pot funcionar incorrectament en processos altament no lineals com poden ser les interaccions químiques entre sensors i compostos volàtils. No obstant això, s’ha comprovat que funciona adequadament en moltes aplicacions del nas electrònic, en les quals les concentracions dels volàtils no són gaire elevades ni el comportament dels sensors excessivament alineal. L’algorisme PCA es classifica com un mètode no supervisat (no cal proveir l’algorisme amb informació sobre les classes) de reconeixement de patrons, a causa que el seu ús més estès amb el nas electrònic es limita a representar bidimensionalment un conjunt de mesures a fi de comprovar si es poden determinar agrupacions (clusters) espontànies entre les diferents mesures realitzades prèviament. Tanmateix, existeixen modificacions que permeten aplicar l’algorisme de forma supervisada com es veurà ulteriorment. 3.2.2. Algorisme Per tal d’aplicar l’anàlisi de components principals es parteix d’un conjunt de dades disposades en forma matricial amb una estructura de m files per n columnes, suposant que s’han realitzat m experiències i cadascuna s’ha descrit amb n variables. En definitiva, cada fila correspon a una descripció completa d’un experiment i cada columna a una variable concreta que s’usa com a indicador en n experiments. A fi d’aplicar l’algorisme PCA, les columnes d’aquesta matriu han d’estar centrades (mean centered). Es pot considerar que cada experiment o fila és un vector que pertany a un espai vectorial de dimensió n expressat en la base canònica, en la qual cadascuna de les coordenades ve associada directament a una de les variables descriptives que proporciona l’instrument de mesura. L’anàlisi de components principals és un endomorfisme o canvi de base, passant de la base canònica a una nova base formada pels autovectors de la matriu de covariància de dades.

Page 26: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

20

Matemàticament s’expressa com:

[ ]4321

332211

......

)()(

ttttYptptptptX

YEXETkk

TTTn

f

n

=++++=

(4.1)

on:

• X és la matriu mxn de dades original. • tk és el vector de coordenades de les mesures sobre la component principal k-

èsima, anomenada score. • pk és el vector de la component principal k-èsima, anomenada load, que

correspon a l’autovector de la matriu de covariància de X i ortogonal a la resta d’autovectors.

• Y és la matriu de coordenades de les n mesures referida a la nova base de components principals de dimensions mxn.

Es conclou que els scores són les coordenades de cadascuna de les mesures respecte a la nova base, per tant, especifiquen d’alguna forma les relacions existents entre els experiments. Contràriament, els loads defineixen la contribució de cada variable original sobre les components principals, tot aportant informació sobre la interrelació entre les variables originals. El que realment interessa d’aquesta transformació és que els autovectors de la matriu de covariàncies de X marquin els eixos de màxima variància de les mesures. Així, el primer vector, anomenat component principal 1, conté la major proporció possible de la variància inicial en les mesures; la segona component principal, la major variància residual (amb la restricció d’ésser ortogonal a la component principal 1),...

Figura 3.1. Exemple gràfic de l’algorisme PCA on es mostra les dues components principals, així com d’altres paràmetres importants.

Page 27: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

21

En principi, la dimensió de la nova matriu és idèntica a l’original, però es pot reduir la dimensionalitat conservant únicament les coordenades (scores) respecte a les primeres components principals, que són les que marquen les direccions de màxima variància i, per tant, de màxima informació. Aquest fet possibilita la representació gràfica en dues dimensions de dades multidimensionals assegurant que aquesta representació capturarà la màxima variància possible del conjunt de dades en dues dimensions. La figura 3.1. il·lustra aquest concepte, en el qual es pot observar que, partint d’un conjunt de dades tridimensionals, es projecten les mesures sobre un pla de dues dimensions definit per les dues primeres components principals. La projecció bidimensional resultant es denomina gràfica d’scores, mentre la projecció de les variables originals sobre la nova base s’anomena gràfica de loads. A l’algorisme PCA existeixen una sèrie de paràmetres i variables que permeten determinar el nombre òptim de components principals a fi de descriure correctament un conjunt de dades. A més, hi ha algun indicador que permet identificar variacions inusuals d’alguna mesura dins del model, la qual cosa pot indicar la presència d’un outlier o experiment erroni dins de la rutina de mesures realitzades. 3.2.3. Implementació 3.2.3.1. Programació Els algorismes PCA emprats en aquest projecte s’han implementat sota l’entorn del programari Matlab [15]. Les subrutines bàsiques PCA es troben en un paquet multivariant anomenat PLS-Toolbox 2.0 [16], el qual s’acobla al programa principal. En concret, existeixen dues subrutines: pca (versió clàssica) i pcapro (PCA en mode supervisat). Aquestes funcions són excessivament generals per als objectius de l’estudi. Per aquest motiu, ha estat necessari programar una sèrie de funcions auxiliars a fi de facilitar la integració i avaluació de resultats, com és la modificació de la seva representació gràfica. Per bé que, originalment es va catalogar com a algorisme no supervisat, PCA pot emprar-se com a mètode supervisat. En aquest darrer tipus, pot distingir-se una etapa d’aprenentatge, o calibració, i una altra d’avaluació, o test. El PCA determina les components principals amb un conjunt de mesures d’entrenament en la fase de calibració. Les mesures d’aprenentatge són projectades i s’identifiquen les agrupacions que corresponen a cadascuna de les substàncies que s’han usat per calibrar l’equip. Posteriorment, en la fase d’avaluació, les noves mesures es projecten sobre les components principals del model PCA generat anteriorment. Depenent de la posició de la seva projecció sobre el diagrama PCA es relacionarà la nova mesura amb alguna de les substàncies emprades en la fase de calibració (previsiblement sobre l’agrupació més propera a la seva projecció). Aquest mode d’utilització s’ha programat integrant la funció pcapro a un conjunt d’instruccions més ampli per acoblar el seu ús als diferents objectius de l’estudi.

Page 28: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

22

3.2.3.2. Avaluació de Resultats Amb l’objectiu de valorar la resolució obtinguda s’ha hagut de definir un paràmetre que indiqués el poder de resolució en cada PCA d’acord amb les classes a les qual cada mesura pertany realment. Aquesta funció basa el seu càlcul en la relació existent entre la variància intraclasse i la variància interclasse. La variància intraclasse pot definir-se com la distància mitja, en el gràfic de la projecció, entre cada mesura d’una classe concreta i la posició del centre de masses de l’esmentada categoria. D’altra banda, la variància interclasse es calcula com la distància mitjana entre els centres de masses de totes les categories considerades a l’experiment. La figura 3.2. i les equacions 3.2., 3.3., 3.4 i 3.5. exemplifiquen un càlcul de resolució:

-8 -6 -4 -2 0 2 4 6 8-1.5

-1

-0.5

0

0.5

1

1.5

2

PC1

A1

A3

A2

B3

B1 B2

B4

CA

C1

C3

C2

PC2

CC

CB

dAB

dAC

dBC

dc2

dc3

dc1

da2

da1

da3

db1db2

db3

db4

Figura 3.2. PCA format per deu mesures que

pertanyen a tres classes diferents. Els passos detallats en aquest càlcul són els següents:

i) Càlcul del centre de masses per cadascuna de les classes de mesures existents en la projecció.

ii) Càlcul de la distància mitjana entre els centres de masses (variància interclasse).

iii) Càlcul de la distància mitjana entre totes les mesures i el seu centre de masses per cada classe.

iv) Obtenció del valor mitjà del càlcul anterior (variància intraclasse). v) Divisió de la variància interclasse per la variància intraclasse.

Page 29: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

23

Per a cada classe, distància intraclasse mitjana (varintraclasse):

( ) ( ) ( )3214321321 31

41

31

cccCbbbbBaaaA dddvddddvdddv ++=+++=++= (3.2)

Distància intraclasse mitjana: ( )CBAm vvvv ++=31 (3.3)

Distància mitjana interclasses: ( )BCABACmi dddv ++=31 (3.4)

Poder de resolució: m

mi

vv

res = (3.5)

3.3. Xarxes Neurals Feedforward 3.3.1. Introducció Dins del camp de la intel·ligència artificial fa temps que les xarxes neurals ocupen un lloc de privilegi [17]. Aquest tipus d’algorismes, la topologia dels quals està inspirada en les xarxes neurals biològiques, ajusten els seus models de forma experimental, sense coneixement previ de les característiques de les dades que ha de processar ni dels mecanismes que les produeixen. A més, la seva forma matemàtica d’operar no està restringida a relacions i processos lineals. Dins dels algorismes de xarxes neurals que s’han proposat fins a l’actualitat destaca la topologia Feedforward. Aquesta respon al paradigma del que s’entén avui en dia per una xarxa neural artificial. De fet, està demostrat que les xarxes neural Feedforward amb entrenament backpropagation i una capa oculta resulten aproximadors universals, és a dir, amb un entrenament adequat, poden interpolar qualsevol relació entre el vector d’entrada i el de sortida. Aquesta característica és ideal en les situacions on poden aparèixer processos no lineals o en els quals és impossible inferir una relació analítica. Recordem que les relacions entre mescles gasoses complexes (les aromes poden contenir milers de components) i els sensors químics presenten fortes no linealitats. Tanmateix, per aconseguir aquesta interpolació, el conjunt de mesures d’entrenament ha de ser suficientment representatiu dels possibles vectors d’entrada, la qual cosa implica que sense un nombre considerable de dades no es pot dur a terme aquest procés amb nivells d’exactitud desitjables. D’altra banda, l’entrenament de les xarxes amb l’algorisme backpropagation és computacionalment molt costós, per aquest fet els mètodes de cross-validation que es poden emprar solen ser d’ordres elevats. En definitiva, les dues grans limitacions d’aquest tipus de xarxes són la necessitat d’un ampli conjunt de mesures d’entrenament i la potència de càlcul necessària per executar la fase d’entrenament. 3.3.2. Algorisme 3.3.2.1. Estructura La figura 3.3. mostra l’esquema bàsic d’aquesta estructura. Tota la xarxa neural pot considerar-se com un sistema de computació format per una sèrie d’elements més simples –neurones- que s’interconnecten entre si. En les xarxes Feedforward les

Page 30: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

24

connexions són d’esquerra a dreta. El senyal de sortida d’una neurona serveix de senyal d’entrada a totes les neurones de la columna immediatament a la seva dreta, tot existint uns pesos que ponderen aquest darrer.

Capa de entrada Capa oculta Capa de salida

X1

X2

X3

X4

Y1

Y2

Figura 3.3. Estructura bàsica d’una xarxa Feedforward. En aquest estudi s’ha utilitzat xarxes de tres capes, considerant els senyals d’entrada com una capa. Les altres dues són una capa oculta i una capa de sortida. La figura 3.4 mostra com treballa una neurona. El senyal total d’entrada és una combinació lineal de totes les sortides de les neurones de la capa anterior més una component contínua o bias, estant multiplicada cadascuna de les sortides per un coeficient o pes. Una vegada s’ha calculat el senyal d’entrada total, s’aplica una funció d’activació, generalment no lineal, que dóna com a resultat la sortida d’aquesta neurona.

W1

W2

W3

X1

X2

X3

∑=

+=3

1iii XWBU Y=f(U) Y

B

Figura 3.4. Esquema del funcionament d’una neurona. Existeixen múltiples funcions d’activació (l’única restricció és que han de ser funcions contínuament derivables) i en aquest estudi s’ha escollit la funció sigmoide que es detalla a la figura 3.5.:

In

Out

1

-1

Figura 3.5. Funció sigmoidal.

Page 31: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

25

3.3.2.2. Aprenentatge El mode de funcionament d’aquesta xarxa és supervisat, és a dir, requereix d’una fase d’entrenament a fi de poder ser utilitzada posteriorment. En aquesta fase se li han de presentar parelles de vectors, un d’entrada i l’altre amb la sortida correcta perquè la xarxa ajusti els pesos, aprenent d’aquesta forma a relacionar l’espai d’entrada i el de sortida. La manera d’actualitzar els pesos es basa en l’algorisme backpropagation [18]. Les equacions 3.6, 3.7 i 3.8 mostren les fórmules d’actualització de pesos i de propagació d’errors:

)()()()(),(

ilriBjPilrjiw

δδ

⋅=∆⋅⋅=∆

(3.6)

on:

lr: Ritme d’aprenentatge B(i): Bias w(i,j): Pes de la connexió entre la neurona i i la neurona j. d(i): Vector d’error P(j): Entrada de les neurones

• Error en les neurones de sortida:

kkkk yy )( −= δδ (3.7)

• Propagació de l’error a les neurones de la capa oculta:

∑=

=m

kiiikki Netfw

1)(δδ (3.8)

A mesura que el ritme d’aprenentatge creix (a través del valor lr), la modificació dels pesos és major i l’entrenament, més ràpid. En cas contrari, pot donar lloc a oscil·lacions provocant la impossibilitat d’arribar a l’objectiu d’error establert. Existeixen diferents tècniques a fi de millorar el procés d’entrenament. Una d’aquestes és la del terme del moment, pensada específicament per tal d’evitar que el procés d’aprenentatge s’aturi en un mínim local d’error. L’equació (3.9) mostra aquest terme addicional. La tècnica consisteix a afegir a l’expressió ∆w(i,j) un nou terme β, anomenat terme de moment. Si la constant β val 0, l’increment en el pes és el de sempre, en canvi, quan val 1, l’increment del pes és idèntic al sofert en la iteració anterior. Típicament el valor β sol ser de 0,95:

)()()1(),(),( jPiDlrjiwjiw ⋅⋅⋅−+∆⋅=∆ ββ (3.9) Un altra tècnica emprada és usar un ritme d’aprenentatge (lr) adaptatiu que permetrà convergir a la solució en el mínim temps possible. Amb aquesta tècnica, si el nou error calculat després de la modificació dels pesos supera a l’antic en una quantitat superior definida mitjançant un quocient (el valor típic és 1,04), els nous pesos són rebutjats, decreixent el ritme d’aprenentatge per una constant (normalment 0,7). En cas que l’error sigui inferior, el lr s’incrementarà multiplicant-lo per una constant amb un valor típic 1,05.

Page 32: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

26

3.3.3. Implementació La xarxa s’ha implementat sota l’entorn de Matlab. El conjunt de funcions utilitzades s’inclouen en el Toolbox de xarxes neurals Neuralex [19]. En concret a l’entrenament, s’ha emprat les funcions trainbpx, logsig i tansig per implementar xarxes amb una capa oculta, funcions d’activació sigmoidals i aprenentatge amb terme de moment i ritme adaptatiu. 3.4. Xarxes Learning Vector Quantization 3.4.1. Introducció Aquest tipus de xarxes és un dels més fascinants dins del camp de la intel·ligència artificial. Learning Vector Quantization (LVQ) pot aprendre a detectar regularitats i correlacions a la seva entrada i adaptar les seves respostes futures [20]. Es tracta d’un mètode d’entrenament de capes competitives d’una forma supervisada. No obstant això, les classes que troba la capa competitiva són només dependents de la distància entre vectors d’entrada. Si dos d’aquests vectors són certament similars, la capa competitiva els emmagatzemarà en una mateixa classe. A més, s’ha d’esmentar que no existeix cap mecanisme per establir si dos vectors d’entrada estan a la mateixa classe. 3.4.2. Algorisme Com ja s’ha esmentat anteriorment, la xarxa LVQ està formada per capes competitives, una representació de les quals es pot observar a la figura 3.6.:

Figura 3.6. Arquitectura d’una capa competitiva. La caixa dist accepta el vector d’entrades p i la matriu de pesos IW1,1 i produeix un vector de S1 elements. Aquests darrers resulten de la distància negativa entre el vector d’entrada i els vectors iIW1,1 format a partir de les files de la matriu de pesos d’entrada. La xarxa d’entrada n1 de la capa competitiva es computa trobant la distància negativa entre el vector d’entrada p i el vector de pesos i afegint les components contínues b. Si totes elles són zero, el màxim valor d’entrada a una neurona és nul. Això succeeix quan el vector d’entrada p és anàleg al de pesos.

Page 33: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

27

La funció de transferència competitiva accepta un vector d’entrada a la xarxa per una capa i retorna 0 a la sortida de les neurones excepte per a la guanyadora (la neurona associada amb l’element més positiu de la xarxa d’entrada n1). La sortida guanyadora correspon al valor 1. Si totes les components contínues són zero, llavors la neurona que posseeixi el vector de pesos més proper al d’entrada, guanya. Un cop s’ha explicat el funcionament de l’àtom primigeni que constitueix aquesta xarxa, s’exposarà el general. A la figura 3.7. es constata l’arquitectura del LVQ:

Figura 3.7. Arquitectura d’una xarxa LVQ. Una xarxa LVQ disposa d’una primera capa competitiva i d’una segona lineal. La capa competitiva aprèn a classificar vectors d’entrades, mentre que la lineal ho fa sobre vectors de sortida definits per l’usuari. D’aquí endavant, s’anomenarà a les classes apreses per la capa competitiva subclasses i les de la capa lineal, classes objectiu. Tant la capa competitiva com la lineal tenen una neurona per subclasse o classe objectiu. Així, la capa competitiva pot aprendre fins a S1 subclasses. Posteriorment, aquestes són combinades per la capa lineal amb l’objectiu de formar S2 classes objectiu, on S1 > S2. Per exemple, suposem que les neurones de la capa competitiva 1, 2 i 3 aprenen les subclasses de l’espai d’entrada que pertanyen a la classe objectiu 2. Així, les neurones competitives 1, 2 i 3 tindran els pesos LW2,1 igual a la unitat per a la neurona n2 en la capa lineal i pesos zero per a la resta de neurones. En definitiva, la neurona lineal obté 1 si qualsevol de les neurones competitives guanya. 3.4.3. Implementació Com en el cas anterior, la programació s’ha realitzat sobre el paquet informàtic Matlab. Igualment, les funcions emprades es troben en el Toolbox de xarxes neurals Neuralex. Concretament, en l’entrenament s’ha utilitzat la opció learnlv1, la qual corregeix els pesos de les neurones ocultes de forma que s’apropen cap als vectors de la subclasse a què pertanyen i s’allunyen de la resta.

Page 34: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

28

3.5. Xarxes Fuzzy Art 3.5.1. Introducció La teoria de ressonància adaptativa (ART) va ser introduïda com una tècnica que intentava emular la manera de processar la informació del cervell humà. Des de llavors, aquesta teoria ha evolucionat fins a una col·lecció d’algorismes neurals per a l’aprenentatge no supervisat. Aquests darrers són capaços de crear classes estables davant la presentació de seqüències d’entrada arbitràries amb un ritme d’aprenentatge ràpid o lent. Dins dels mateixos es poden destacar ART1 [21], ART2 [22] i ART3 [23]. Fuzzy Art [24] és una evolució de l’algorisme ART1, el qual permet categoritzar de forma estable entrades arbitràries binàries. Fuzzy Art, seguint el mateix esquema, generalitza aquest funció a vectors d’entrada analògics amb coordenades compreses entre 0 i 1. Per aconseguir aquest objectiu substitueix els operadors intersecció ( ∩ ) i unió ( ∪ ) d’ART1 pels operadors de la teoria de lògica difusa [25] MIN ( ∧ ) i MAX ( ∨ ), respectivament. Aquest canvi, juntament amb l’ajuda de la codificació complementària (complement coding), que preserva la informació d’amplitud a la vegada que normalitza els vectors d’entrada, permet implementar un algorisme de classificació no supervisada de gran rapidesa d’aprenentatge. A la figura 3.8. es mostra un esquema de l’algorisme:

Complement coding

Versemblança i ressonància

V

C1

I

C2 CJ

ρ

W2 WJ W1

Figura. 3.8. Esquema de la xarxa Fuzzy Art. A continuació, s’explica el seu mode de funcionament: cada cop que la xarxa rep un nou vector d’entrada V reacciona activant un i només un dels nodes de sortida, cadascun dels quals representa una de les diferents classes que s’han creat amb les entrades anteriors. En cas que la mesura no s’assembli suficientment a cap dels nodes ja assignats, es crea un nou node que representarà una nova classe, el primer membre de la qual correspondrà a aquest vector. Des del punt de vista operatiu, aquest algorisme posseeix dos paràmetres que controlen el seu funcionament. El paràmetre de vigilància (vigilance parameter) fixa el rigor de l’algorisme a l’hora d’agrupar mesures. Un paràmetre de vigilància proper a la unitat

Page 35: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

29

implica una classificació molt exigent, de manera que dues mesures similars han de ser agrupades en una mateixa classe. En canvi, un paràmetre proper a zero permet l’agrupació de mesures poc semblants. D’aquesta forma es genera una xarxa amb un nombre mínim de nodes de sortida en reduir-se el de classes diferents. Per la seva banda, el ritme d’aprenentatge es controla mitjançant el paràmetre β, essent el seu valor igual a la unitat per a un aprenentatge ràpid i zero si no es desitja aprendre més. 3.5.2. Algorisme Seguidament, s’inclou una descripció esquemàtica de l’algorisme:

• Vector d’entrada. Cadascun dels vectors d’entrada V és un vector m-dimensional, on cadascuna de les seves components es troben incloses dins l’interval tancat [0,1].

• Codificació complementària. A partir del vector d’entrada V, es crea un nou

vector normalitzat I de dimensió 2m, en el qual la component Ij+m=1-Ij.

• Vector de pesos del node sortida j (categoria j): Wj. Inicialment, Wj1=Wj2=Wj2m=1.

• Velocitat d’aprenentatge (learning rate) β∈ [0,1]. Aprenentatge ràpid β=1;

aprenentatge lent β<<1, sense aprenentatge β=0.

• Paràmetre de vigilància ρ∈ [0,1]. Per un costat, si ρ és proper a zero implica menys categories en agrupar amb criteris de semblança poc exigents. Per l’altre, ρ proper a la unitat suposa moltes classes, cadascuna amb pocs membres, però molt semblants entre ells.

• Paràmetre de selecció α>0. Ha d’apropar-se a zero, ja que tan sols desfà

igualtats. Un valor típic és 0,001.

• Selecció de categoria. Per a cada vector d’entrada V i cada categoria j, es calcula la funció de selecció Tj(V) com s’indica a l’equació (3.10):

J

JJ W

WIT

(3.10)

on l’operador AND ( ∧ ) en lògica difusa es defineix com: A Λ B= min (A,B) (3.11) i la norma || com:

∑=

=M

iiII

2

1 (3.12)

A partir d’aquí inicialment s’escolleix la categoría j per a la qual Tj(V) és màxim.

Page 36: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

30

• Ressonància o reset. Es diu que apareix ressonància si es compleix la desigualtat

3.13:

ρ≥Λ

IWI J (3.13)

En aquest cas, s’activa la categoria j com a resposta al vector d’entrada V, la qual cosa significa que la xarxa classifica el vector V com la classe j. A més, s’executa el procés d’actualització dels pesos de l’esmentada categoria.

En canvi, si no es compleix la desigualtat, es produeix un reset. El sistema desactiva temporal ment la categoria j i torna a escollir una altra seguint el criteri de màxima versemblança (equació 3.10). Si cap categoria “ressona”, es crea un nou node per al vector d’entrada V.

• Aprenentatge. Una vegada activada la categoria j a causa del vector V, els pesos

són actualitzats segons l’equació 3.14:

( ) ( ) ANTERIORJ

ANTERIORJ

NOUJ WWIW ββ −+Λ= 1 (3.14)

Si es desitja un aprenentatge ràpid, s’utilitza un β=1; un aprenentatge nul, β=0. En general, per a mesures sorolloses no interessa β=1. No obstant això, quan el nombre de mesures és baix i es requereix un aprenentatge estable es pot demostrar que aquesta propietat s’aconsegueix amb β=1.

3.6. Xarxes Fuzzy Artmap 3.6.1. Introducció Les xarxes de tipus ARTMAP són una classe de xarxes neurals que implementen un aprenentatge supervisat i una posterior classificació de vectors multidimensionals d’entrada en una sèrie de categories de sortida. La xarxa Fuzzy Artmap [26] prové de la xarxa Artmap amb les mateixes transformacions que permeten definir la xarxa Fuzzy Art a partir d’ART1. En definitiva, la xarxa Fuzzy Artmap és una generalització a vectors analògics (components compreses entre 0 i 1) de la xarxa binària Artmap. La xarxa Fuzzy Artmap presenta múltiples avantatges que l’adeqüen per a les aplicacions del nas electrònic. De entre totes elles es destaquen les següents:

• Aprenentatge ràpid (amb molt poca càrrega computacional) de les mesures que es presenten a l’entrenament, fet que permet programar l’algorisme en dispositius programables de baix cost, aplicar validacions creuades d’ordre 1 i provar amb diferents combinacions de paràmetres.

Page 37: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

31

• Aprenentatge amb un conjunt reduït de mesures d’entrenament. Fet necessari en qualsevol aplicació experimental en la qual sigui costós l’obtenció de conjunt de mesures extensos. La xarxa presenta una habilitat particular per aprendre ràpidament esdeveniments singulars que apareixen poques vegades en el conjunt d’entrenament. Per aquest motiu, no cal el mateix nombre de mesures de cada classe perquè funcioni correctament.

• Aprenentatge continu de noves característiques sense oblidar el passat,

característica de gran utilitat per adaptar-se a derives produïdes per sensors.

• En comparació amb altres tipus de xarxes neurals, Fuzzy Artmap determina automàticament les neurones de la capa oculta. A més, maximitza el poder de generalització aprenent el 100 % del conjunt d’entrenament.

Tanmateix, la seva implementació pràctica presenta un problema que s’ha de tractar acuradament. Com s’ha esmentat anteriorment, la xarxa aprèn el 100 % de les mesures del conjunt d’entrenament sacrificant el mínim possible la generalització. Així doncs, la presència d’outliers o mesures errònies en el conjunt d’entrenament pot requerir un increment del valor de vigilància excessiu, el qual perjudicarà seriosament la capacitat de generalització de la xarxa. Aquest problema és un dels motius pels quals s’ha emprat mínimament en aplicacions de nas electrònic, per tal com en aquest tipus d’aplicacions és difícil identificar mesures errònies a causa de la baixa repetitivitat dels senyals dels sensors. Recapitulant, la xarxa Fuzzy Artmap és una xarxa de classificació amb aprenentatge supervisat. En una primera fase d’entrenament, aquesta necessita un subministrament de mesures. Cada una de elles ha de contenir un vector d’entrada, que detalla els paràmetres mesurats en cada experiència i un vector de sortida que codifica la categoria que se li ha d’assignar. Posteriorment, en la fase d’avaluació únicament es subminstra el vector d’entrada i la xarxa classifica l’esmentada mesura seguint els criteris que ha d’aprendre en la fase d’entrenament. 3.6.2. Algorisme De forma general, una xarxa Fuzzy Artmap està formada per dues xarxes Fuzzy Art connectades entre si per un vector de relacions anomenat mapfield. Per una banda, a una de les xarxes, designada com a A, li arriben els vectors d’entrada V. Per l’altra, a la xarxa B li arriben, en la fase d’entrenament, els vectors que codifiquen la categoria correcta de cada mesura del conjunt d’entrenament C. La figura 3.9. esquematitza aquest concepte:

Page 38: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

32

Art A Art B

MapField

V C

Figura. 3.9. Esquema general d’una xarxa Fuzzy Artmap. Inicialment, en la xarxa A el vector de vigilància és zero. En la xarxa B se sol donar un valor unitari, atès que mesures que han d’ésser classificades conjuntament enviaran a la xarxa B codificacions idèntiques. A més, qualsevol vector de codificació distinta, encara que semblant amb la resta, ha d’ésser detectat i activar una neurona de sortida diferent en la xarxa B. Cada cop que es subministra una mesura d’entrenament, la xarxa A activa un node i la B, un altre. El mapa que les uneix aprèn a relacionar nodes activats. D’aquesta forma, a cada nou node que s’activa en la xarxa A se li associa un node en B. Convé ressenyar que els nodes B normalment seran imatges de diversos nodes A (cada categoria conté diverses mesures), mentre que cadascuna de les categories creades en A només tindrà una sola imatge en B (cada mesura només pot pertànyer a una categoria). Quan una nova mesura activa un node ja existent en A, es verifica si la imatge d’aquest node assignada pel mapfield coincideix amb el node que s’ha activat en B paral·lelament. En cas que no coincidissin, s’incrementa el valor del paràmetre de vigilància fins que la neurona que s’activi en A tingui per imatge la neurona activada en B. Si no se’n troba cap, se’n crearà una de nova i el mapa li assignarà com a imatge el node B activat. En definitiva, el valor de vigilància en A només s’incrementa la xifra estrictament necessària a fi que la xarxa A separi en nodes diferents les mesures que han d’estar classificades en categories distintes. Suposant un paràmetre d’aprenentatge igual a la unitat per ambdues xarxes, es pot demostrar que aquest algorisme aprèn a classificar correctament el 100 % dels vectors d’entrenament. A més, aquest aprenentatge és ràpid i estable. A continuació s’exposa l’algorisme esquemàticament:

• ARTa. Xarxa Fuzzy Art a la qual li arriben els vectors d’entrada. • ARTb. Xarxa Fuzzy Art en la qual s’introdueixen els vectors de sortida.

• Mapfield. Mòdul de mapejat que relaciona nodes de sortida d’ARTa amb nodes

de sortida d’ARTb.

Page 39: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

33

• Entrades. Se suposarà que el vector d’entrada de cada mesura és V i el vector que codifica la seva classificació correcta, C.

• Normalització. Els vector V i C es normalitzen amb una codificació

complementària, passant a ser els vectors I i D, respectivament.

• Pesos. El vector de pesos de la categoria k de la xarxa ARTa s’anomenarà WAK.

• El vector de pesos de la categoria j de la xarxa b es denominarà WBJ. El mapfield posseeix un sol vector de longitud igual al nombre de nodes activats en A. La component k-èsima del vector indica el node imatge en ARTb del node k de la xarxa ARTa.

• Match tracking. Originalment, el paràmetre de vigilància ρa d’ARTa és un valor

base. Si una mesura activa un node j en ARTa, la imatge del qual a través del mapfield no coincideix amb l’activació produïda en ARTb, llavors el valor de vigilància en ARTa s’incrementa segons l’equació (3.15), la qual forçarà l’activació d’un node diferent en ARTa:

I

WI AJ

a

Λ=ρ (3.15)

• Mode d’avaluació. La xarxa ARTb es desactiva, mentre que la xarxa ARTa rep

un vector que propicia que s’activi el seu node k. La sortida de la xarxa coincideix amb la component k-èsima del vector del mapfield.

3.6.3. Implementació Tot i que es comercialitzen diversos paquets informàtics que implementen algorismes basats en Fuzzy Artmap, no n’existeix cap que ho faci en la seva definició estricta. Per raons de flexibilitat, es va programar sota l’entorn Matlab a fi de poder-la adaptar a les mesures realitzades amb el nas electrònic. Fuzzy Artmap es va dissenyar a partir de funcions més simples aniuades en una funció amb un bucle principal. Donat que la xarxa Fuzzy Artmap està formada per dues xarxes Fuzzy Art, les seves funcions principals inclouen crides a aquesta darrera. En la programació de l’algorisme Fuzzy Artmap s’ha distingit entre una funció d’entrenament, en la qual a partir d’unes mesures d’entrada i les seves sortides corresponents es calculen els pesos, i una d’avaluació, en la qual amb unes mesures d’entrada i els pesos es retornen les classes a què pertanyen segons la xarxa anteriorment entrenada. Per tal d’evitar els problemes abans esmentats i aconseguir que la xarxa Fuzzy Artmap funcioni correctament en aplicacions amb nas electrònic, es va modificar l’etapa d’avaluació. En aquesta fase, l’algorisme corregit ignora el factor de vigilància assolit en la fase d’entrenament i cerca de forma iterativa el valor més elevat que permeti classificar la nova mesura en alguna de les categories existents.

Page 40: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

34

3.7. Preprocessament 3.7.1. Introducció El pas previ a l’aplicació de tècniques de reconeixement de patrons s’anomena preprocessament. La seva importància és cabdal per a l’èxit de cada aplicació, considerant que en aquesta fase s’extreu la informació rellevant dels sensors a fi de processar ulteriorment la seva resposta. En aquest estudi, s’han identificat en primer lloc els paràmetres que aportaven informació significativa dels canvis físico-químics a què s’han sotmès els sensors. I, a continuació, s’han condicionat aquests resultats en funció dels algorismes aplicats. 3.7.2. Extracció de Paràmetres El funcionament dels sensors de diòxid d’estany rau en el canvi de conductivitat que experimenta la seva capa activa davant la presència de gasos reductors. Aquesta variació comporta uns transitoris des d’una situació de repòs a una conductància final que depèn del tipus de volàtil i de la seva concentració. La informació que es pot extreure del comportament del sensor és diversa. Si s’obtenen els valors de conductància inicial i/o final es diu que s’està treballant amb paràmetres estàtics. Amb ells es poden generar certes combinacions que es detallen a la taula 3.2.:

Gi Conductància inicial Gf Conductància final ∆G Increment de conductància (Gf-Gi) ∆Gn Increment de conductància normalizada ∆G/ Gi

Taula 3.2. Paràmetres estàtics obtinguts en els sensors de diòxid d’estany.

Una nova forma d’adquirir informació addicional és modulant algun dels factors que afecta a la resposta del sensor. Aquests paràmetres es classifiquen com a dinàmics i n’existeixen de diferents tipus, com és el temps de resposta en la modulació de concentració. Es mesura com el lapse de temps fins que s’arriba a la conductància final i és característic de cada volàtil. Finalment, s’esmenta la tesi d’alguns autors [27] que sostenen la possibilitat d’extreure nova informació en l’interval de baixada de la resposta. Tanmateix, aquest camp no ha estat suficientment explorat. 3.7.3. Normalització de les Dades Una vegada s’han decidit els paràmetres que han d’ésser extrets de cada sensor és necessari escalar-los a fi que puguin ser utilitzats pel sistema de reconeixement de patrons. Es poden presentar una gran quantitat de tipus diferents: lineals o logarítmics, de variables o mesures,... No obstant això, es consideraran únicament els següents en aquest estudi, com a conseqüència dels resultats positius trobats en treballs precedents. Cal recordar que el conjunt de m mesures es resumeix en una matriu de m files i n columnes, on cadascuna de les m files descriu una mesura mitjançant n variables (una per columna).

Page 41: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

PROCESSAMENT DEL SENYAL

35

• Centrat de dades (mean centring). En aquesta normalització a cadascuna de les

columnes (variables) se li resta el seu valor mig, és a dir, tota mesura és descrita per variables de mitja nul·la. Aquest tipus de centrat és fonamental per mètodes lineals com PCA, atès que sense ell no funciona adequadament a causa de la matriu de covariàncies. De totes maneres, aquesta normalització no sol ser suficient si es pretén obtenir bons resultats.

• Autoescalat (autoscaling). En primer lloc, s’aplica un mean centring a les

columnes, per tal que posseeixin una mitja zero. A continuació, es calcula la variància de totes les variables (columnes) i es divideix cada un dels m valors de la variable corresponent pel resultat esmentat. D’aquesta forma, cada una de les n variables que descriuen les m experiències tenen mitja nul·la i variància unitat en finalitzar la normalització.

Aquest tipus d’escalat és útil quan els paràmetres que descriuen les experiències són de naturalesa diferents. Inclús quan cada variable representi el mateix paràmetre per a un sensor, s’ha de recordar que diferents dispositius treballen amb diferents valors de resistència, per aquest motiu, resulta convenient que treballin en un mateix rang de valors. L’èxit d’aquest escalat rau en què a priori assigna la mateixa importància a les variables que descriuen la mesura, independentment de la seva naturalesa o del sensor de què provinguin. De totes formes, s’ha de tenir en compte que aquest procés pot incrementar notablement el soroll existent en petits senyals.

• Escalat pel valor màxim. La filosofia subjacent d’aquest tipus d’escalat és

similar a la d’autoescalat en relació al seu objectiu, això és, donar la mateixa importància numèrica a totes les variables. En aquest mètode es divideix cada columna de la matriu d’experiments pel valor màxim d’aquesta, de forma que totes elles posseeixen un valor absolut comprès entre 0 i 1. A diferència de la tècnica anterior, no es resta el valor mig de cada variable.

Resulta fonamental en aplicar xarxes neurals de tipus Fuzzy Artmap, vist que treballa amb vectors de lògica difusa, els valors dels quals pertanyen a l’interval tancat [0,1].

Page 42: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ESTUDI EXPERIMENTAL

36

Capítol 4: Estudi Experimental 4.1. Objectius Les aplicacions del nas electrònic estan subjectes a les derives dels sensors que conformen el seu sistema de mesura. Com ja s’ha esmentat anteriorment, aquestes són de tipus aleatori i no responen a cap model matemàtic definitiu. Per aquest motiu, les línies de recerca actuals treballen principalment en el camp de la Intel·ligència Artificial, el fruit de les quals s’ha citat en el capítol 1. En aquest estudi, s’ha intentat trobar un mètode de calibració per a les aplicacions de nas electrònic basant-se en l’experiència aportada per altres autors. La idea subjacent és partir d’un sistema que reconeix uns certs patrons. A mesura que transcorre el temps, la seva resposta deriva i no pot seguir l’evolució determinada pels sensors. Així doncs, s’ha d’introduir alguna tècnica que calibri el sistema, de manera que reconegui novament els volàtils sotmesos a anàlisi.

4.2. Metodologia Experimental Amb l’objectiu d’implementar qualsevol sistema que corregeixi l’efecte de les derives dels sensors, s’ha de posseir una mostra suficientment àmplia que permeti constatar l’existència de les mateixes. En aquest sentit, es va decidir experimentar amb les tres substàncies següents:

• Etanol • Amoníac • Benzè

Es va determinar que es realitzaria una mesura diària de cada volàtil, excepte els caps de setmana o a causa d’algun imprevist, durant un període perllongat fins que es constatés la presència de derives. Pel que fa al material emprat, s’ha d’esmentar que s’usaren els mateixos vials al llarg de tot el procés amb una quantitat constant de fluid de 5 ml. D’altra banda, els septums no es van reutilitzar a fi que l’experiment es realitzés sota les condicions més estables i invariables a l’interior dels vials. A més, es va portar un control de la temperatura i de la humitat relativa de la zona on va romandre l’equip, de tal forma que es pogués disposar de sengles factors en l’anàlisi de dades posterior. Finalment, es citarà que les tensions de heater van correspondre a les nominals indicades pel fabricant (veure capítol 2 del present estudi). Per a aquest propòsit es disposà de dues fonts d’alimentació precises –tres dígits i mig, resolució de 10 mV a l’escala utilitzada-, estables i protegides contra interferències electromagnètiques. Així doncs, el període de mesures començà el dia 15 de març de 2.002.

4.3. Evolució del Senyal Fins a data 13 d’abril de 2.002 la metodologia es seguí de forma estricta i minuciosa. Del control de temperatura s’advertí que el seu rang variava entre 21 ºC i 27 ºC; mentre que per part de la humitat relativa es trobava a l’interval que comprèn des del 50 % fins

Page 43: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ESTUDI EXPERIMENTAL

37

al 58 %. Realment, es pot apreciar que els marges estan fitats en un marge de variació estret i que no suposen cap motiu seriós d’interferència sobre els resultats finals. El nombre de mesures realitzades a cada component fins a aquell moment s’indica a la taula 4.1.:

Volàtil Nombre de mesures Etanol 28 Amoníac 26 Benzè 27

Taula 4.1. Nombre de mesures inicials efectuades

a cada substància. A fi de verificar l’evolució de les respostes dels sensors es va procedir a representar la tendència dels paràmetres Gf, ∆G, ∆Gn i temps de pujada, així com la dels seus duals: Rf, ∆R, ∆Rn depenent de la característica tipus p o n del dispositiu emprat. Es va eliminar la consideració de Gi i Ri, per tal com aquestes poden variar per fenòmens externs a les pròpies derives. A la figura 4.1. i 4.2. es pot apreciar la tendència del factor ∆G en presència d’amoníac:

Figura 4.1. Paràmetre ∆R dels sensors FIS SB

en presència d’amoníac.

Figura 4.2. Paràmetre ∆G dels sensors FIS SP

i Taguchi sèrie 8 en presència d’amoníac.

Aquest és el paràmetre que presenta una trajectòria més clara i definida en les tres substàncies. Tanmateix, l’arrissat en la resposta dels sensors juntament amb la presència d’alguns pics de soroll provoquen que l’evolució natural es vegi emmascarada per aquestes darreres. En definitiva, no es pot concloure sobre l’aparició de les derives. Per una altra part, resulta significatiu que no tots els sensors de la figura 4.2. segueixen un comportament anàleg. La raó s’ha de cercar en l’amalgama de models utilitzats, la qual proporciona una major riquesa de respostes. A fi de confirmar aquesta tesi, es va procedir amb una Anàlisi de Components Principals amb els quatre paràmetres esmentats anteriorment. Mitjançant la representació de les dades en un espai bidimensional de màxima variància es va ratificar la inexistència de derives. A la figura 4.3. es mostra el diagrama PCA del paràmetre ∆G:

Page 44: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ESTUDI EXPERIMENTAL

38

Figura 4.3. Diagrama PCA del paràmetre ∆G. Efectivament, la classificació de les mesures en tres clusters totalment separats sense cap direcció manifesta de perllongament evidencia que les derives no han fet acte de presència. A més, convé afegir que es va estudiar la posició dels punts amb unes condicions de temperatura i humitat més extremes dins del intervals anteriorment marcats i no es va poder inferir cap conclusió. És a dir, la situació dels diferents dies de mesura esdevenia caòtica, sense cap tipus d’ordre establert. En darrer lloc, s’esmenta que el núvol de punts de l’etanol es mostra significativament més dispers que el d’amoníac i benzè. Aquesta característica es repeteix en la resta de paràmetres. A continuació, s’ofereix la relació de factors de mèrit obtinguts per a cadascun dels paràmetres dels scores projectats sobre el diagrama PCA:

• Factor de mèrit de Gmàx ........................................................................9,4771 • Factor de mèrit de ∆G ..........................................................................9,9987 • Factor de mèrit de ∆Gn .........................................................................6,6623 • Factor de mèrit del temps de pujada ....................................................8,0298

És manifest que les xifres són elevades, vist que la distància entre clusters i la concentració dels mateixos així ho indiquen. Ulteriorment, es van fer combinar de dos i tres paràmetres, de mode que es van aconseguir factors de mèrit encara superiors als anteriors:

• Factor de mèrit de Gmàx+∆G+temps de pujada ....................................11,807 • Factor de mèrit de ∆G+temps de pujada...............................................12,048

Gràficament, es pot constatar la millora en la figura 4.4. D’aquesta manera, es fa patent que la selecció dels paràmetres amb un major factor de mèrit i la seva posterior associació permet obtenir una millor separació entre núvols de punts:

Page 45: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ESTUDI EXPERIMENTAL

39

Figura 4.4. Diagrama PCA de la unió de paràmetres ∆G+temps de pujada.

4.4. Redisseny de l’Experiment Atès que la derivabilitat dels sensors no s’havia fet manifesta fins al moment, es va prendre la decisió de forçar-la mitjançant la modificació de la tensió de heater dels dispositius. Per bé que els nous resultats prendrien un caire artificial, ja que no s’havien produït de forma espontània, aquesta situació pot esdevenir-se a la realitat i les aplicacions de nas electrònic han de poder afrontar-la. Es va determinar que, des del dia 15 d’abril fins al 24 de maig de 2.002, setmanalment es variaria la tensió de la resistència calefactora seguint els valors de la taula 4.2.: Mes Setmana Vheater FIS SB [V] Vheater FIS SP/TGS [V] Abril 15/19 0,5 4,0 22/26 0,6 4,5 Maig 29/03 0,7 5,0 06/10 0,8 5,5 13/17 0,9 6,0 20/24 1,0 6,5

Taula 4.2. Calendari de modificació de la tensió de la resistència calefactora dels sensors.

Tot i que la informació tècnica dels fabricants assegura el correcte funcionament dels sensors a la tensió nominal amb una fita d’error de l’1 %, l’experiència de treballs anteriors amb les mateixes va permetre donar forma al redisseny de l’experiment. Convé destacar que la metodologia seguida no s’alteraria de cap manera, solament es tindria en compte aquestes variacions setmanals. A fi que la resposta dels dispositius no es veiés afectada pel transitori d’increment de temperatura, l’ajust de la nova tensió es realitzaria el darrer dia laborable de la setmana. Així doncs, es proporcionava un marge de 48 hores per a la seva estabilització.

Page 46: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ESTUDI EXPERIMENTAL

40

D’ara endavant, per una qüestió de terminologia s’anomenarà a les dades inicials: mesures del model i a la resta, mesures derivades. 4.5. Evolució del Senyal Els resultats van aparèixer de forma immediata una vegada es va iniciar el procediment anterior. A la taula 4.3. s’indica el nombre d’experiments setmanals per cada volàtil que es van realitzar durant les sis setmanes:

Mes Setmana Nombre de dies mesurats Abril 15/19 4 22/26 4 Maig 29/03 3 06/10 4 13/17 3 20/24 4

Taula 4.3. Nombre de dies de mesura setmanals

després del redisseny de l’experiment. Amb l’objectiu de constatar quin paràmetre posseïa una orientació més definida, es van projectar les mesures derivades sobre el model en el pla de l’Anàlisi de Components Principals. Es treballà amb Gf, ∆G, ∆Gn i temps de pujada, així com amb les combinacions duals i ternàries: ∆G+temps de pujada i Gmàx+∆G+temps de pujada. Les conclusions que se n’extragueren van ser:

i) Els paràmetres Gmàx, ∆G i les permutacions que els contenen utilitzades presenten una evolució no caòtica, essent la seva trajectòria clara dins el pla dels scores.

ii) La resta mostren un comportament totalment indefinit i abracen una part de l’espai bidimensional molt més àmplia que els de i).

iii) Com a conseqüència de les raons esgrimides en i) i ii) es va resoldre d’emprar un dels primers paràmetres a fi de realitzar el processament de les dades posteriorment. En concret, l'increment de conductància, perquè presentava els millors resultats.

A la figura 4.4. es va representar el model i posteriorment es projectaren les mesures derivades, les quals s’etiqueten amb el dia corresponent que segueix en ordre a les inicials:

Page 47: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ESTUDI EXPERIMENTAL

41

Figura 4.5. Projecció de les mesures derivades sobre el

model quan s’empra el paràmetre ∆G. Es pot apreciar que les derives de la substància etanol (blau) són més disperses que les de la resta de components, de manera anàloga a com ja succeïa amb el model. Així mateix, es fa palès que les trajectòries no són lineals. Per tant, es demostra empíricament que molts models matemàtics que emulen aquestes a partir de sistemes afins no es poden considerar totalment vàlids, sinó tan sols una eina de simulació. En darrer terme, s’esmenta que els núvols de punts de les mesures d’amoníac (vermell) i benzè (magenta) s’arriben a unir en la projecció de les dades sobre els dos PCs de major variància. Es veurà tot seguit que aquest fet no afectarà en el processament de les dades. 4.6. Resultats 4.6.1. Correcció Matemàtica sobre els PCs La primera tècnica utilitzada es basà en la correcció matemàtica sobre l’espai bidimensional dels PCs. Suposem la projecció de les mesures derivades sobre les del model, com es mostra a la figura 4.5. Cada setmana i volàtil (grup) posseeix un nombre finit de mesures limitat entre tres i quatre. Llavors, s’escull un representant aleatòriament de cadascun d’ells i es realitza la translació de tot el grup en la direcció que defineix el representant i el centre de masses del model de la substància. Els resultats de la correcció es fan patents en la figura 4.6., si bé s’ha de considerar el canvi en l’escala respecte de la figura 4.5. per a discernir d’una forma més acurada la nova posició de les coordenades:

Page 48: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ESTUDI EXPERIMENTAL

42

Figura 4.6. Correcció matemàtica de les derives sobre

l’espai bidimensional dels scores. La correcció ha provocat l’agrupació de les mesures derivades entorn dels núvols de punts de cada substància. Tanmateix, es pot verificar l’existència de certs dies que s’allunyen dels mateixos, a causa de la seva evolució no lineal, això és, elements d’un mateix grup poden presentar una situació en l’espai que no segueix la trajectòria del conjunt de forma ordenada. La ratificació de la millora es comprova mitjançant el càlcul d’ambdós factors de mèrit prèviament i posterior a la correcció:

• Factor de mèrit de ∆G previ a la correcció ..........................................3,3399 • Factor de mèrit de ∆G posterior a la correcció ....................................9,0154

Aquest mètode ha augmentat la resolució en un factor tres, la qual cosa és notablement acceptable. Cal advertir que el segon valor resulta d’operar sobre una mitjana de resultats, ja que el representant de cada grup s’escull de forma aleatòria. No obstant això, s’ha de considerar com un primer pas en l’aplicació final, atès que no classifica els resultats de manera objectiva, sinó que depèn de la subjectivitat pròpia de cada persona.

4.6.2. Xarxa Neural Fuzzy Artmap A continuació, s’aplicà la xarxa neural Fuzzy Artmap a fi de comprovar si era possible discernir entre les tres substàncies en presència de derives. Per a tal efecte s’experimentà amb diversos paràmetres d’entrada i ritmes d’aprenentatge diferents, de mode que es disposés d’un ventall suficientment ampli de solucions potencials. Es va poder seguir aquesta metodologia, per tal com l’algorisme de la xarxa neural resulta eficient, ràpid i estable. S’ha citat anteriorment que Fuzzy Artmap és un tipus de xarxa d’aprenentatge supervisat, és a dir, en un primer període d’entrenament s’introdueixen les dades i la classificació corresponent a cadascun d’ells. Posteriorment, es pot validar el model per tal de comprovar la seva veracitat i exactitud. Així doncs, si es disposa de tres volàtils, el vector de classificació serà tridimensional, de mode que apareixerà un 1 en la coordenada de la substància correcta segons la codificació emprada i 0 en la resta.

Page 49: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ESTUDI EXPERIMENTAL

43

Les dades d’entrada introduïdes durant la fase d’entrenament corresponen al paràmetre increment de conductància. Seguidament, s’esmenten les diferents possibilitats estudiades. En primer lloc, es treballà en l’espai generat per la base canònica:

i) S’entrenà amb les mesures del model i s’avaluà amb les derivades. ii) S’entrenà amb les mesures del model més una representativa de les

derivades i es validà amb la resta. iii) Leave-one-out.

En segon terme, es va fer en la base dels PCs: iv) S’entrenà amb les mesures originals i s’avaluà amb les derivades. v) Com en el cas iv), però es validà el model amb les mesures derivades

corregides matemàticament en 2ℜ (dimensions de màxima variància) i 12ℜ (tot l’espai).

vi) S’entrenà amb les mesures del model més una representativa de les derivades i s’avaluà amb la resta.

vii) Ídem a vi), tanmateix les mesures derivades es van corregir matemàticament en 2ℜ (dimensions de màxima variància) i 12ℜ (tot l’espai).

viii) Leave-one-out. ix) Igual que viii), tot i que es realitzà la correcció matemàtica en ambdós

espais. Convé destacar que la selecció del representant de cada grup es realitzà novament de forma aleatòria per tal que el processament de les dades fos estocàstic i no respongués a cap determinisme. Així mateix, a la fase d’entrenament i avaluació els vectors d’entrada es presentaren de forma desordenada. D’aquesta manera, la xarxa modificaria els seus pesos interiors sense dependre de la successió en què aparegueren els volàtils. Pel que fa al ritme d’aprenentatge, s’utilitzaren diversos valors, concretament: 1,0, 0,9, 0,5 i 0,0. D’aquesta forma, s’observà el comportament de la xarxa quan els pesos de la xarxa es modificaven de forma ràpida, o bé, lenta. A la taula 4.4. es mostren les tasses d’encert obtingudes després de la validació de cada model:

Lr i) ii) iii) iv) v) en R2 v) en R12 1,0 67,5 % 100 % 98,9 % 68,1 % 96,0 % 93,6 % 0,9 64,8 % 100 % 99,4 % 71,9 % 94,7 % 96,7 % 0,5 59,2 % 100 % 99,7 % 79,3 % 95,9 % 93,3 % 0,0 66,2 % 100 % 98,6 % 74,8 % 96,6 % 93,3 %

Lr vi) vii) en R2 vii) en R12 viii) ix) en R2 ix) en R12 1,0 100 % 100 % 100 % 99,0 % 99,4 % 99,2 % 0,9 100 % 100 % 100 % 99,2 % 98,9 % 98,7 % 0,5 100 % 100 % 100 % 99,3 % 99,2 % 99,6 % 0,0 100 % 100 % 100 % 98,7 % 99,3 % 99,0 %

Taula 4.4. Resultats numèrics de l’entrenament i posterior avaluació de les

solucions potencials en utilitzar la xarxa neural Fuzzy Artmap.

Page 50: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ESTUDI EXPERIMENTAL

44

Les conclusions que es poden extreure són les següents:

• La xarxa neural no pot seguir raonablement l’evolució de les derives quan només s’entrena amb les mesures del model. Aquest resultat entrava dintre de les hipòtesis de partida, atès que Fuzzy Artmap divideix l’espai de mesures amb la màxima generalització, per aquest motiu, les fronteres entre les tres substàncies podien no estar definides dins de les direccions de derives.

• La introducció d’una mesura representativa, tant en l’espai generat per la base

canònica com en la dels PCs, implica una tassa d’encert del 100 %. S’ha de destacar que, si bé els clusters d’amoníac i benzè apareixien units en la representació de l’Anàlisi de Components Principals (veure figura 4.5.), Fuzzy Artmap pot distingir entre una substància i l’altra. La causa s’ha d’entendre, perquè PCA és una anàlisi lineal, mentre que les xarxes neurals poden aprendre qualsevol relació.

• Realitzar la correcció matemàtica, així com treballar amb els scores, no aporta

una millora en els resultats. Per tant, en una aplicació real no s’empraria en necessitar-se una major càrrega computacional.

• La xarxa neural no és sensible a la modificació del ritme d’aprenentatge. Aquest

fet implica que pot arribar a classificar amb una tassa d’encert del 100 % variant els seus pesos de forma ràpida, o bé, lenta.

4.6.3. Comparació de Resultats amb d’altres Xarxes Neurals En darrer lloc, es realitzà una anàlisi de les mateixes dades emprant les xarxes Feedforward i Learning Vector Quantization. Com en el cas anterior, ambdues aprenen de forma supervisada, per tant, són comparables amb Fuzzy Artmap en el seu mode de funcionament. No obstant això, el gran desavantatge que presenten respecte de l’anterior és la menor eficiència de l’algorisme d’entrenament i, per tant, un consum de temps més elevat en aquest procés. 4.6.3.1. Resultats de la Xarxa Neural Learning Vector Quantization El primer processament que es va dur a terme consistí a entrenar amb les mesures del model inicial i avaluar amb les derives en l’espai generat per la base canònica i els PCs, respectivament. En la taula 4.5. es resumeixen les tasses d’encert per als diferents valors de ritme d’aprenentatge:

Lr Base canònica Base PCs 1,0 92,1 % 80,0 % 0,9 89,4 % 83,2 % 0,5 89,8 % 88,0 % 0,01 86,0 % 85,5 %

Taula 4.5. Resultats de l’entrenament amb el model inicial i

posterior avaluació de les derives amb la xarxa LVQ.

Page 51: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ESTUDI EXPERIMENTAL

45

Els valors són sorprenents i superiors als aconseguits amb Fuzzy Artmap. Tanmateix, s’ha de recordar que l’activació d’un node de la capa competitiva en les xarxes LVQ es concreta quan aquell posseeix la menor distància respecte de la mesura introduïda. Si s’observa la situació dels núvols de punts respecte de les mesures derivades corresponents, es constata que la classificació segons el criteri citat esdevé senzilla. No obstant això, es dubta que en presència de volàtils més complexos la xarxa arribés en aquestes tasses d’encert. Per un altre costat, es va avaluar la xarxa quan s’introduïen les mesures inicials més una representativa de cada setmana i es validava amb la resta en totes dues bases generadores. Els resultats foren d’una tassa d’encert del 100 % en 1 000 iteracions quan es treballava amb ritmes d’aprenentatge baixos, mentre que el sistema no convergia si eren alts. Es pot entendre que l’entrenament del model resulta senzill, però en aplicar les mostres representatives amb modificació de pesos ràpidament no la permet adaptar-se. 4.6.3.2. Resultats de la Xarxa Neural Feedforward Es va procedir de forma anàloga a l’anterior amb la xarxa neural Feedforward. En el primer cas, és a dir, entrenament amb el model i validació amb les derivades, no va convergir amb cap ritme d’aprenentatge possible. En canvi, en el segon –inserció d’una mostra representativa en el model-, es van obtenir tasses del 100 % amb ritmes d’aprenentatge propers a la unitat i a zero, per bé que el nombre d’iteracions estava comprès entre 5 000 i 20 000. Com ja s’ha indicat anteriorment, aquest és un dels desavantatges fonamentals respecte de la xarxa Fuzzy Artmap.

Page 52: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

CONCLUSIONS

46

Capítol 5: Conclusions Un dels aspectes que han de ser millorats en les aplicacions de nas electrònic per a la seva comercialització és la presència de derives en els sensors que les componen. Si bé s’ha intentat perfeccionar la tecnologia de fabricació dels mateixos, la recerca actual camina envers la seva correcció mitjançant l’aplicació de mètodes de Reconeixement de Patrons. L’estudi actual ha pretès trobar alguna tècnica que corregís les derives basant-se en experiències anteriors. Inicialment, es determinà la generació d’un conjunt de mesures suficientment ampli amb les substàncies: etanol, amoníac i benzè, per tal de realitzar el processament de dades posterior. Vist que aquestes no apareixien, es resolgué de crear-les artificialment a través de la modificació de les tensions de heater en salts discrets setmanals durant un període de sis setmanes. Una vegada es disposà de les mesures, es comprovà l’efecte de les variacions de la resistència calefactora dels sensors mitjançant l’Anàlisi de Components Principals. En un pla bidimensional es situaren els núvols de punts del model inicial de les tres substàncies. Ulteriorment, es projectaren les dades derivades i es verificà el camí que havien seguit en desplaçar-se fora del nucli dels clusters. La seva direcció no seguia un comportament lineal, fet que demostra empíricament que els models matemàtics utilitzats per a l’emulació de les mateixes no resulta correcte. A continuació, es dugué a terme el processament de dades. En primer lloc, es realitzà una correcció matemàtica en l’espai bidimensional dels PCs. Cada setmana i volàtil (grup) posseeix un nombre finit de mesures limitat entre tres i quatre. Llavors, s’escull un representant aleatòriament de cadascun d’ells i es realitza la translació de tot el grup en la direcció que defineix el representant i el centre de masses del model de la substància. Els resultats foren acceptables, atès que triplicaren la figura de mèrit del diagrama PCA respecte del previ a les correccions. Tanmateix, aquesta solució no és objectiva, per tal com necessita de la subjectivitat humana a fi d’identificar els diferents núvols de punts. Seguidament, s’emprà la xarxa neural Fuzzy Artmap a fi de classificar les substàncies. En un principi, s’experimentà amb diversos paràmetres d’entrada i ritmes d’aprenentatge diferents. Els resultats arribaren a una tassa d’encert del 100 % quan s’entrenava amb les mesures del model inicial més una representativa de les derivades de cada setmana i es validava amb la resta. A més, es pogué constatar que aquesta era independent del ritme d’aprenentatge i de la base generadora de l’espai dels núvols de punts, això és, la canònica i els PCs. Així mateix, es feia innecessària la correcció matemàtica de les mesures. Posteriorment, es realitzà una comparació amb altres xarxes neurals d’aprenentatge supervisat com són la Feedforward i la Learning Vector Quantization. Per bé que també reeixiren amb una tassa d’encert del 100 % essent els ritmes d’aprenentatge lents, s’havia d’entrenar-les durant un període de temps força elevat. En definitiva, s’ha pogut assolir l’objectiu inicial. Tanmateix, aquesta línia d’estudi no pot finalitzar en aquest punt, s’ha d’experimentar amb altres fonts de derives, així com amb aromes més complexes que dificulten la seva correcta selecció a causa de la seva constitució química.

Page 53: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

47

Capítol 6: Annexes En aquest apartat es recullen els algorismes més representatius que s’han emprat durant aquest estudi. En primer lloc, apareix l’anàlisi de dades inicial mitjançant PCA; seguidament, es presenta la correcció matemàtica en l’espai generat pels PCs i, en darrer lloc, les diferents tècniques utilitzades amb les xarxes neurals Fuzzy Artmap, Feedforward i Learning Vector Quantization. Convé destacar que cada algorisme disposa dels comentaris pertinents per a una millor comprensió dels mateixos per part de possibles usuris futurs: %********************************************************************* % % Nom: processat.m % Autor: Moisés Paniagua Borrell % % Data: 27 d’abril de 2002 % Objectius: Crea la matriu de paràmetres a partir del conjunt de % mesures total. Posteriorment, la divideix en dues: % informació del model i de les derivades. Es representen % els diferents factors i es realitza una Anàlisi de % Components Principals. % %********************************************************************* %Eliminació de les variables de l’espai de treball i neteja del mateix clear; clc; close all; %Establiment de la ruta on es troben les funcions de l’algorisme %principal. Creació de la matriu de paràmetres i, posteriorment, les %del model i les derives. num_volatils=3; path ='c:\uni\Estudi_derives\Mesures_HS\mesures'; [dades_total]=crear_matriu(num_volatils, path); [dades_model, dades_noves]=crear_submatrius(dades_total, num_volatils); %Representació de l’evolució dels diferents paràmetres. plots_parametres(dades_total, num_volatils); %Càlcul de les noves coordenades en l’espai generat per la base PCs. %En primer lloc, es realitza amb les dades del conjunt i, %ulteriorment, amb les del model i derivades. [sortida_total]=crear_scores(dades_total, num_volatils); [sortida_validacio]=validar_model(dades_model, dades_noves, num_volatils); %Representació dels scores de les dades del conjunt de tots els %paràmetres. plots_pcas(dades_total, sortida_total, num_volatils); %Projecció de les dades derivades sobre el model en un diagrama PCA %de tots els paràmetres. plots_validacio(sortida_validacio, dades_total, num_volatils); %Càlcul de les figures de mèrit dels scores del model. [res]=figures_merit(dades_model, sortida_validacio, num_volatils); escriure_figures(res);

Page 54: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

48

%********************************************************************* % % REFINAMENT DE FUNCIONS % %********************************************************************* %********************************************************************* % % Objectius: Crear la matriu de paràmetres del conjunt. Les dades es % retornen en una estructura de tres elements (tres % substàncies). Els camps contenen el nombre de fitxers de % cadascun i la matriu asociada. % %********************************************************************* function [dades]=crear_matriu(num_volatils, nom_carpeta) %En la ruta passada es disposen tots els fitxers generats al llarg %del procés de mesura. Aquests s’ordenen segons data per tal de fer %una taula de dades on cada fila representi un dia de mesura i cada %dotze columnes, el paràmetre d’un sensor. cd(nom_carpeta); n_etan=dir('*e.*'); n_amon=dir('*a.*'); n_benz=dir('*b.*'); cd('c:\uni\Estudi_derives\Mesures_HS\funcions'); [n_etan]=ordenar(n_etan); [n_amon]=ordenar(n_amon); [n_benz]=ordenar(n_benz); num_etan=length(n_etan); num_amon=length(n_amon); num_benz=length(n_benz); dades=struct('file',n_etan n_amon n_benz, 'n_file',... num_etan num_amon num_benz, 'mat',''); %Càlcul de paràmetres i posterior assignació a cada camp. S’ha de %tenir en compte que es desitja una resposta amb un màxim, per tant, %s’ha d’invertir la resposta dels sensors TGS sèrie 8 i FIS SP. cd(nom_carpeta); for i=1:num_volatils mat_total=[]; for j=1:dades(i).n_file aux=load(dades(i).file(j).name); mataux=aux(:,2:7); mat=1./mataux; mat=[mat aux(:,8:13)]; gi=mat(1,:); %Conductància inicial. [gmax,t_rise]=max(mat); %Conductància final. t_rise=t_rise-1; %Temps de pujada. Es resta una

%unitat perquè el primer índex de %la matriu és 1.

dg=gmax-gi; %Increment de conductància. dgn=dg./gi; %Inc. de conductància normalitzada. mat_total=[mat_total; gi gmax dg dgn t_rise]; end dades(i).mat=mat_total; end cd('c:\uni\Estudi_derives\Mesures_HS\resultats');

Page 55: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

49

%Finalment es salven les dades a la carpeta indicada per la sentència %anterior. save dades; %********************************************************************* % % Objectius: A partir de la matriu de paràmetres del conjunt es % divideix en les matrius de dades del model i derivades. % %********************************************************************* function [dades_model, dades_noves]=crear_submatrius(dades_total, num_volatils) %Mitjançant dos bucles s’assignen els valors corresponents de la %matriu de dades a les del model i les derivades. Es recorda que el %nombre de fitxers del model de cada substància és diferent, per %aquest motiu, s’ha de fer una distinció. for i=1:num_volatils if i==1 fi=28; elseif i==2 fi=26; else fi=27; end for j=1:fi dades_model(i).file(j)=dades_total(i).file(j); end dades_model(i).n_file=fi; dades_model(i).mat=dades_total(i).mat(1:fi,:); end for i=1:num_volatils if i==1 fi=28; elseif i==2 fi=26; else fi=27; end n=dades_total(i).n_file-fi; for j=1:n dades_noves(i).file(j)=dades_total(i).file(j+fi); end dades_noves(i).n_file=n; [r,c]=size(dades_total(i).mat); dades_noves(i).mat=dades_total(i).mat((1+fi):r,:); end %********************************************************************* % % Objectius: Representar l’evolució dels paràmetres al llarg de tot el % procés de mesura. % %********************************************************************* function plots_parametres(dades, num_volatils) %Es representaran tots els paràmetres de les tres substàncies en %figures diferents segons els sensors utilitzats. for i=1:num_volatils %Conductància inicial de sensors SP/TGS. figure(1+10*(i-1)); plot(dades(i).mat(:,1:6));

Page 56: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

50

if i==1 title('Sensors SP/TGS en presencia d''etanol'); elseif i==2 title('Sensors SP/TGS en presencia d''amoniac'); else title('Sensors SP/TGS en presencia de benze'); end xlabel('Dies'); ylabel('Gi [mS]'); %Resistència inicial de sensors µBOLA. figure(2+10*(i-1)); plot(dades(i).mat(:,7:12)); if i==1 title('Sensors uBOLA en presencia d''etanol'); elseif i==2 title('Sensors uBOLA en presencia d''amoniac'); else title('Sensors uBOLA en presencia de benze'); end xlabel('Dies'); ylabel('Ri [kOhm]'); %Conductància màxima de sensors SP/TGS. figure(3+10*(i-1)); plot(dades(i).mat(:,13:18)); if i==1 title('Sensors SP/TGS en presencia d''etanol'); elseif i==2 title('Sensors SP/TGS en presencia d''amoniac'); else title('Sensors SP/TGS en presencia de benze'); end xlabel('Dies'); ylabel('Gmax [mS]'); %Resistència màxima de sensors µBOLA. figure(4+10*(i-1)); plot(dades(i).mat(:,19:24)); if i==1 title('Sensors uBOLA en presencia d''etanol'); elseif i==2 title('Sensors uBOLA en presencia d''amoniac'); else title('Sensors uBOLA en presencia de benze'); end xlabel('Dies'); ylabel('Rmax [kOhm]'); %Increment de conductància de sensors SP/TGS. figure(5+10*(i-1)); plot(dades(i).mat(:,25:30)); if i==1 title('Sensors SP/TGS en presencia d''etanol'); elseif i==2 title('Sensors SP/TGS en presencia d''amoniac'); else title('Sensors SP/TGS en presencia de benze'); end xlabel('Dies'); ylabel('dG [mS]'); %Increment de resistència de sensors µBOLA. figure(6+10*(i-1)); plot(dades(i).mat(:,31:36)); if i==1 title('Sensors uBOLA en presencia d''etanol'); elseif i==2 title('Sensors uBOLA en presencia d''amoniac'); else title('Sensors uBOLA en presencia de benze'); end xlabel('Dies'); ylabel('dR [kOhm]'); %Increment de conductància normalitzada de sensors SP/TGS. figure(7+10*(i-1)); plot(dades(i).mat(:,37:42));

Page 57: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

51

if i==1 title('Sensors SP/TGS en presencia d''etanol'); elseif i==2 title('Sensors SP/TGS en presencia d''amoniac'); else title('Sensors SP/TGS en presencia de benze'); end xlabel('Dies'); ylabel('dGn'); %Increment de resistència normalitzada de sensors µBOLA. figure(8+10*(i-1)); plot(dades(i).mat(:,43:48)); if i==1 title('Sensors uBOLA en presencia d''etanol'); elseif i==2 title('Sensors uBOLA en presencia d''amoniac'); else title('Sensors uBOLA en presencia de benze'); end xlabel('Dies'); ylabel('dRn'); %Temps de pujada de sensors SP/TGS. figure(9+10*(i-1)); plot(dades(i).mat(:,49:54)); if i==1 title('Sensors SP/TGS en presencia d''etanol'); elseif i==2 title('Sensors SP/TGS en presencia d''amoniac'); else title('Sensors SP/TGS en presencia de benze'); end xlabel('Dies'); ylabel('temps pujada [s]'); %Temps de pujada de sensors µBOLA. figure(10+10*(i-1)); plot(dades(i).mat(:,55:60)); if i==1 title('Sensors uBOLA en presencia d''etanol'); elseif i==2 title('Sensors uBOLA en presencia d''amoniac'); else title('Sensors uBOLA en presencia de benze'); end xlabel('Dies'); ylabel('temps pujada [s]'); pause; close all; end %********************************************************************* % % Objectius: Calcular els scores del conjunt de dades a partir de la % matriu total. % %********************************************************************* function [sortida]=crear_scores(dades, num_volatils) %Càlcul dels scores i loads de la conductància inicial mitjançant %autoescalat. gi=[]; for i=1:num_volatils gi=[gi; dades(i).mat(:,1:12)]; end [agi]=auto(gi);

Page 58: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

52

%Càlcul dels scores i loads de la conductància màxima mitjançant %autoescalat. gmax=[]; for i=1:num_volatils gmax=[gmax; dades(i).mat(:,13:24)]; end [agmax]=auto(gmax); [scores_agmax, loads_agmax]=pca(agmax, 0); %Càlcul dels scores i loads de l’increment de conductància mitjançant %autoescalat. dg=[]; for i=1:num_volatils dg=[dg; dades(i).mat(:,25:36)]; end %Càlcul dels scores i loads de l’increment de conductància %normalitzada mitjançant autoescalat. [adg]=auto(dg); [scores_adg, loads_adg]=pca(adg, 0); dgn=[]; for i=1:num_volatils dgn=[dgn; dades(i).mat(:,37:48)]; end [adgn]=auto(dgn); [scores_adgn, loads_adgn]=pca(adgn, 0); %Càlcul dels scores i loads del temps de pujada mitjançant %autoescalat. trise=[]; for i=1:num_volatils trise=[trise; dades(i).mat(:,49:60)]; end [atrise]=auto(trise); [scores_atrise, loads_atrise]=pca(atrise, 0); %Càlcul dels scores i loads de la combinació subjacent de la %conductància màxima, increment de conductància i temps de pujada %mitjançant autoescalat. [amelange1]=[agmax adg atrise]; [melange1, loads_melange1]=pca(amelange1, 0); %Càlcul dels scores i loads de la combinació subjacent de la %conductància màxima i temps de pujada mitjançant autoescalat. [amelange2]=[adg atrise]; [melange2, loads_melange2]=pca(amelange2, 0); %Els resultats dels scores i dels loads dels diferents paràmetres es %guarden a la següent estructura. sortida=struct('scores',scores_agmax scores_adg scores_adgn scores_atrise melange1 melange2,... 'loads',loads_agmax loads_adg loads_adgn loads_atrise ... loads_melange1 loads_melange2);

Page 59: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

53

%********************************************************************* % % Objectius: Càlcul dels scores del model i de les projeccions de les % mesures derivades sobre aquest. Els resultats es retornen % en una estructura. % %*********************************************************************function [sortida]=validar_model(dades_model, dades_noves, num_volatils) %Definició de l’estructura on s’emmagatzenaran els resultats. sortida=struct('inici','','model','','noves','','escalat',''); %Càlcul dels scores de les dades del model i de les seves projeccions %de les mesures derivades dels paràmetres individuals. for i=1:4 model=[]; noves=[]; for j=1:num_volatils model=[model; dades_model(j).mat(:,(1+12*i):(12+12*i))]; noves=[noves; dades_noves(j).mat(:,(1+12*i):(12+12*i))]; end %Creació del model. [amodel, model_m, model_stds]=auto(model); [scores_amodel, loads_model, ssq_model, res_model, q_model,... tsq_model]=pca(amodel, 0); %Projecció de les mesures derivades sobre el model a partir dels %loads calculats anteriorment. [snoves]=scale(noves, model_m, model_stds); [scores_noves]=pcapro(snoves, loads_model, ssq_model, q_model,... tsq_model, 0); %Asignació dels resultats a l’estructura. sortida(i).inici=amodel; sortida(i).model=scores_amodel; sortida(i).noves=scores_noves; sortida(i).escalat=snoves; end %Ídem per a les combinacions duals i ternàries. [amelange1]=[sortida(1).inici sortida(2).inici sortida(4).inici]; [melange1, loads_melange1, ssq_me, res_me, q_me, tsq_me]... =pca(amelange1, 0); [smelange1]=[sortida(1).escalat sortida(2).escalat sortida(4).escalat]; [n_scores_melange1]=pcapro(smelange1, loads_melange1, ssq_me, q_me, tsq_me, 0); sortida(5).model=melange1; sortida(5).noves=n_scores_melange1; [amelange2]=[sortida(2).inici sortida(4).inici]; [melange2, loads_melange2, ssq_m2, res_m2, q_m2, tsq_m2]=pca(amelange2, 0); [smelange2]=[sortida(2).escalat sortida(4).escalat]; [n_scores_melange2]=pcapro(smelange2, loads_melange2, ssq_m2, ... q_m2, tsq_m2, 0); sortida(6).model=melange2; sortida(6).noves=n_scores_melange2;

Page 60: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

54

%********************************************************************* % % Objectius: Representació sobre els dos primers PCs de les dades del % conjunt amb la corresponent etiqueta del dia. % %********************************************************************* function plots_pca(dades, sortida, num_volatils) %Creació del vector amb les etiquetes. nom=[]; for i=1:num_volatils if i==1 fi=dades(1).n_file; elseif i==2 fi=dades(2).n_file; else fi=dades(3).n_file; end for j=1:fi nom=[nom; j] end end nom=int2str(nom); %Bucle que representarà les sis figures dels diferents paràmetres i %combinació dels mateixos. m=length(sortida(1).scores) final=length(sortida); for i=1:final figure(30+i); hold on %Reprsentació del contorn, títols i eixos de la figura. if (i==1) title('Scores de Gmax'); end if (i==2) title('Scores de dG'); end if (i==3) title('Scores de dGn'); end if (i==4) title('Scores de temps de pujada'); end if (i==5) title('Scores de Gmax+dG+temps de pujada'); end if (i==6) title('Scores de dG+temps de pujada'); end if (i>=1) & (i<=4) axis([-5 5 -3.5 3]); plot([5 5],[-3.5 3],'k-'); plot([-5 5],[3 3],'k-'); plot([-5 5],[0 0],'g-'); plot([0 0],[-3.5 3],'g-'); else axis([-6.5 6.5 -5 5]); plot([6.5 6.5],[-5 5],'k-'); plot([-6.5 6.5],[5 5],'k-'); plot([-6.5 6.5],[0 0],'g-'); plot([0 0],[-5 5],'g-'); end xlabel('Scores de PC#1'); ylabel('Scores de PC#2'); %Representació dels tres núvols de punts en diferents colors. plot(sortida(i).scores(1:dades(1).n_file,1),... sortida(i).scores(1:dades(1).n_file,2),'bo'); plot(sortida(i).scores((dades(1).n_file+1):(dades(1).n_file+...

dades(2).n_file),1) sortida(i).scores((dades(1).n_file+1):... (dades(1).n_file+dades(2).n_file),2),'r*');

Page 61: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

55

plot(sortida(i).scores((dades(1).n_file+dades(2).n_file+1):... (dades(1).n_file+ dades(2).n_file+dades(3).n_file),1),... sortida(i).scores((dades(1).n_file+...

dades(2).n_file+1):(dades(1).n_file+dades(2).n_file+... dades(3).n_file),2),'m+');

hold off %Escriptura de les etiquetes sobre cada coordenada. for j=1:m t=text(sortida(i).scores(j,1),sortida(i).scores(j,2),...

nom(j,:)); set(t,'fontsize',9); end pause; end pause; close all; %********************************************************************* % % Objectius: Representació sobre els dos primers PCs de les mesures % del model i de les projeccions de les derivades sobre % aquestes amb el dia corresponent. % %********************************************************************* function plots_validacio(sortida, dades, num_volatils) %Creació del vector d’etiquetes. nom=[]; for i=1:num_volatils if i==1 inici=29; fi=dades(1).n_file; elseif i==2 inici=27; fi=dades(2).n_file; else inici=28; fi=dades(3).n_file; end for j=inici:fi nom=[nom; j] end end nom=int2str(nom); etan=dades(1).n_file-28; amon=dades(2).n_file-26; benz=dades(3).n_file-27; final=length(sortida); for i=1:final figure(36+i); hold on %Representació del contorn, títols i eixos de la figura. if (i==1) title('Scores de Gmax'); end if (i==2) title('Scores de dG'); end if (i==3) title('Scores de dGn'); end if (i==4) title('Scores de temps de pujada'); end if (i==5) title('Scores de Gmax+dG+temps de pujada'); end if (i==6) title('Scores de dG+temps de pujada'); end axis([-10 20 -15 20]); plot([20 20],[-15 20],'k-'); plot([-10 20],[20 20],'k-'); plot([-10 20],[0 0],'g-');

Page 62: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

56

plot([0 0],[-15 20],'g-'); xlabel('Scores de PC#1'); ylabel('Scores de PC#2'); %Representació dels tres núvols de punts del model en diferents %colors. plot(sortida(i).model(1:28,1),sortida(i).model(1:28,2),'b.'); plot(sortida(i).model(29:54,1),sortida(i).model(29:54,2),'r.'); plot(sortida(i).model(55:81,1),sortida(i).model(55:81,2),'m.'); %Projecció de les mesures derivades sobre el model. plot(sortida(i).noves(1:etan,1),... sortida(i).noves(1:etan,2),'bo'); plot(sortida(i).noves((1+etan):(etan+amon),... 1), sortida(i).noves((1+etan):(etan+... amon),2),'r*'); plot(sortida(i).noves((1+etan+amon):(etan+... amon+benz),1),sortida(i).noves((1+etan+... amon):(etan+amon+benz),... 2),'m+'); hold off %Escriptura de les etiquetes sobre cada coordenada. for j=1:length(nom) t=text(sortida(i).noves(j,1),sortida(i).noves(j,2),nom(j,:)); set(t,'fontsize',9); end pause; end pause; close all;

%********************************************************************* % % Objectius: Càlcul de les figures de mèrit de les dades del model. % %********************************************************************* function [res]=figura_merit(dades, sortida, num_volatils) final=length(sortida); res=[]; for k=1:final %Definició d’estructures. centroid=struct('x',0 0 0,'y',0 0 0); %centre de masses dist=struct('intra',0 0 0,'inter',0); v=struct('intra',0 0 0,'inter',0); %varintraclasse i %varinterclasse vm=0; vmi=0; %Càlcul de l’interval de mesures de cada substància dins de la %matriu de dades. for i=1:num_volatils if i==1 inici=1; fi=dades(1).n_file; elseif i==2 inici=1+dades(1).n_file; fi=dades(1).n_file+dades(2).n_file; else

Page 63: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

57

inici=1+dades(1).n_file+dades(2).n_file; fi=dades(1).n_file+dades(2).n_file+dades(3).n_file; end %Càlcul de les components x i y dels centres de masses de %cada núvol de punts. for j=inici:fi centroid(i).x=centroid(i).x+sortida(k).model(j,1); end centroid(i).x=((centroid(i).x)/(dades(i).n_file)); for j=inici:fi centroid(i).y=centroid(i).y+sortida(k).model(j,2); end centroid(i).y=((centroid(i).y)/(dades(i).n_file)); %Varintraclasse.

for j=inici:fi dist(i).intra=dist(i).intra+((sortida(k).model(j,1)-... centroid(i).x)^2+(sortida(k).model(j,2)-... centroid(i).y)^2)^0.5; end v(i).intra=((dist(i).intra)/(dades(i).n_file)); end %Distància intraclasse mitjana for i=1:num_volatils vm=vm+v(i).intra; end vm=vm/num_volatils; %Distància mitja interclasses. dist(1).inter=((centroid(1).x-centroid(2).x)^2+(centroid(1).y-... centroid(2).y)^2)^0.5+((centroid(2).x-centroid(3).x)^2+... (centroid(2).y-centroid(3).y)^2)^0.5+((centroid(1).x-... centroid(3).x)^2+(centroid(1).y-centroid(3).y)^2)^0.5; vmi=(dist(1).inter)/num_volatils; %Resolució. out=vmi/vm; res=[res; out]; end %********************************************************************* % % Nom: calibracio.m % Autor: Moisés Paniagua Borrell % % Data: 6 de maig de 2002 % Objectius: Realitza la correcció matemàtica de calibració sobre el % pla bidimensional en la base generadora dels PCs. % %********************************************************************* %Eliminació de les variables de l’espai de treball i neteja del mateix clear; clc; close all; num_volatils=3;

Page 64: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

58

%Establiment de la ruta on es troben les funcions de l’algorisme %principal. Creació de la matriu de paràmetres i, posteriorment, de

%les del model i les derives. path='c:\uni\Estudi_derives\Mesures_HS\mesures'; [dades_total]=crear_matriu(num_volatils, path); [dades_model, dades_noves]=crear_submatrius(dades_total, num_volatils); %Càlcul dels scores de les dades del conjunt, model i derivades. [sortida_total]=crear_scores(dades_total, num_volatils); [sortida_validacio]=validar_model(dades_model, dades_noves, num_volatils); %Correcció matemàtica dels scores en el pla bidimensionals generat %pels PCs de màxima variància. [new_scores,nom]=correccio(dades_model,dades_noves,sortida_validacio,

num_volatils); %********************************************************************* % % REFINAMENT DE FUNCIONS % %********************************************************************* %********************************************************************* % % Objectius: Correcció matemàtica dels scores en la base generadora % dels PCs. % %********************************************************************* function [new_scores,dades]=correccio(dades_model,dades_noves,sortida,

num_volatils) k=2; etan=dades_noves(1).n_file; amon=dades_noves(2).n_file; benz=dades_noves(3).n_file; %Definició de l’estructura que correspondrà als valors del centre de %masses. centroid=struct('x',0 0 0,'y',0 0 0); %Càlcul del centre de masses de cada núvol de punts. for i=1:num_volatils if i==1 inici=1; fi=dades_model(1).n_file; elseif i==2 inici=1+dades_model(1).n_file; fi=dades_model(1).n_file+dades_model(2).n_file; else inici=1+dades_model(1).n_file+dades_model(2).n_file; fi=dades_model(1).n_file+...

dades_model(2).n_file+dades_model(3).n_file; end for j=inici:fi centroid(i).x=centroid(i).x+sortida(k).model(j,1); end centroid(i).x=((centroid(i).x)/(dades_model(i).n_file));

Page 65: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

59

for j=inici:fi centroid(i).y=centroid(i).y+sortida(k).model(j,2); end centroid(i).y=((centroid(i).y)/(dades_model(i).n_file)); end %Esctructura que conté el primer representant de cada setmana de les %mesures derivades. etanol=struct('dia',1 5 9 12 16 19,'rep',1 5 9 12 16 19,...

'dist_x','','dist_y',''); amoniac=struct('dia',1 5 9 12 16 19,'rep',1 5 9 12 16 19,...

'dist_x','','dist_y',''); benze=struct('dia',1 5 9 12 16 19,'rep',1 5 9 12 16 19,...

'dist_x','','dist_y',''); dades=struct('element',etanol amoniac benze); %Es genera el representant de cada grup de forma aleatòria. for i=1:num_volatils fi=length(dades(i).element); for j=1:fi if j<fi N=dades(i).element(j+1).dia-dades(i).element(j).dia; else N=dades_noves(i).n_file-dades(i).element(j).dia+1; end dades(i).element(j).rep=unidrnd(N)+dades(i).element(j).dia-1; end end %Càlcul del vector de correcció associat. Aquest es definex com %Vc=CENTROID_MODEL-MOSTRA_REPRESENTATIVA for i=1:length(dades) for j=1:length(dades(i).element) dades(i).element(j).dist_x=centroid(i).x-... sortida(k).noves((dades(i).element(j).rep+...

(i-1)*dades_noves(i).n_file),1); dades(i).element(j).dist_y=centroid(i).y-... sortida(k).noves((dades(i).element(j).rep+...

(i-1)*dades_noves(i).n_file),2); end end %Correcció dels scores mitjançant el vector calculat anteriorment i %emmagatzematge en la nova variable new_scores. new_scores=[]; for i=1:num_volatils long=length(dades(i).element); for j=1:long if j<long inici=dades(i).element(j).dia; fi=dades(i).element(j+1).dia-1; else inici=dades(i).element(j).dia; fi=dades_noves(i).n_file; end

Page 66: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

60

for m=inici:fi new_scores=[new_scores; sortida(k).noves(m+...

(i-1)*dades_noves(i).n_file,1)+... dades(i).element(j).dist_x...

sortida(k).noves(m+(i-1)... *dades_noves(i).n_file,2)+...

dades(i).element(j).dist_y;]; end end end %Representació del model i projecció sobre ell de les mesures %derivades corregides. figure(1); hold on; axis([-8 5 -6 4]); plot([5 5],[-6 4],'k-'); plot([-8 5],[4 4],'k-'); plot([-8 5],[0 0],'g-'); plot([0 0],[-6 4],'g-'); xlabel('Scores de PC#1'); ylabel('Scores de PC#2'); title('Noves scores del parametre dG corregides'); plot(sortida(2).model(1:28,1),sortida(2).model(1:28,2),'b.'); plot(sortida(2).model(29:54,1),sortida(2).model(29:54,2),'r.'); plot(sortida(2).model(55:81,1),sortida(2).model(55:81,2),'m.'); plot(new_scores(1:etan,1),... new_scores(1:etan,2),'bo'); plot(new_scores((1+etan):(etan+amon),... 1), new_scores((1+etan):(etan+... amon),2),'r*'); plot(new_scores((1+etan+amon):(etan+... amon+benz),1),new_scores((1+etan+... amon):(etan+amon+benz),2),'m+'); %Genració del vector d’etiquetes. nom=[]; for i=1:num_volatils if i==1 inici=29; fi=etan+inici-1; elseif i==2 inici=27; fi=amon+inici-1; else inici=28; fi=benz+inici-1; end for j=inici:fi nom=[nom; j] end end nom=int2str(nom); %Etiquetació de cada component. for j=1:length(nom) t=text(new_scores(j,1),new_scores(j,2),nom(j,:)); set(t,'fontsize',9); end hold off

Page 67: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

61

%********************************************************************* % % Nom: ini_der.m % Autor: Moisés Paniagua Borrell % % Data: 12 de maig de 2002 % Objectius: Algorisme de classificació de les substàncies mitjançant % l’ús de la xarxa neural Fuzzy Artmap. Entrenament amb les % mesures del model i validació amb les derivades. % %********************************************************************* %Eliminació de les variables de l’espai de treball i neteja del mateix clc; clear; close all %Càrrega de la matriu de dades del conjunt. cd c:\uni\Estudi_derives\Mesures_HS\resultats; load dades; %Normalització de les scores a fi que el seu valor estigui comprès %entre zero i la unitat, és a dir, es realitzarà el quocient entre %cada score i el valor màxim de cada columna. for i=1:3 sortida=[]; auxmax=[]; [f,c]=size(dades(i).mat); auxmax=max(dades(i).mat); for j=1:c dades(i).mat(:,j)=dades(i).mat(:,j)./auxmax(j); end %Mètode de prevenció a fi que les coordenades romanguin dins de %l’interval desitjat. for j=1:f for k=1:c if dades(i).mat(j,k)<0 dades(i).mat(j,k)=0; end end end %Vector d’objectius. for j=1:dades(i).n_file if i==1 sortida=[sortida; 1 0 0]; elseif i==2 sortida=[sortida; 0 1 0]; else sortida=[sortida; 0 0 1]; end end new(i).mat=[dades(i).mat(:,25:36) sortida]; new(i).file=dades(i).file; new(i).n_file=dades(i).n_file; end %Creació dels vectors d’entrenament i validació, respectivament. cd c:\uni\Estudi_derives\Mesures_HS\funcions; [dades_model, dades_noves]=crear_submatrius(new, 3); train_set=[dades_model(1).mat; dades_model(2).mat; dades_model(3).mat]; test_set=[dades_noves(1).mat; dades_noves(2).mat; dades_noves(3).mat];

Page 68: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

62

%Desordenació aleatòria dels vectors d’entrenament i validació. [train_set]=desordenar(train_set); [test_set]=desordenar(test_set); %El ritme d’aprenentatge pot ser modifificable. lr=0.0; %Entrenament amb el vector d’entrada. [ga,wija2,wijb2,wijab]=fzmaptnok(0,1,lr,1,0.001,train_set(:,1:12),... train_set(:,13:15)); %Simulació amb el vector de validació. [a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptsexp3(ga,1,lr,1,0.001,...

wija2,wijb2,wijab,test_set(:,1:12),... test_set(:,13:15));

%Escriptura dels resultats. fprintf('\nok: %f',infotst(1)); fprintf('\nnok: %f',infotst(2)); fprintf('\nnsnc: %f',infotst(3)); %********************************************************************* % % Nom: der_derives.m % Autor: Moisés Paniagua Borrell % % Data: 12 de maig de 2002 % Objectius: Algorisme de classificació de les substàncies mitjançant % l’ús de la xarxa neural Fuzzy Artmap. Entrenament amb les % mesures del model més una representativa setmanal de les % derivades i validació amb la resta. % %********************************************************************* %Eliminació de les variables de l’espai de treball i neteja del mateix clc; clear; close all %Càrrega de la matriu de dades del conjunt. cd c:\uni\Estudi_derives\Mesures_HS\resultats; load dades; %Normalització dels scores entre 0 i 1. Per a tal efecte, es %traslladarà cada coordenada cap al semiplà dret a partir del punt més %allunyat i es dividirà pel màxim de cada columna. for i=1:3 sortida=[]; auxmax=[]; [f,c]=size(dades(i).mat); auxmax=max(dades(i).mat); for j=1:c dades(i).mat(:,j)=dades(i).mat(:,j)./auxmax(j); end %Mètode de prevenció a fi que les coordenades romanguin dins de %l’interval desitjat. for j=1:f for k=1:c if dades(i).mat(j,k)<0 dades(i).mat(j,k)=0; end end end

Page 69: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

63

%Creació del vector d’objectius. for j=1:dades(i).n_file if i==1 sortida=[sortida; 1 0 0]; elseif i==2 sortida=[sortida; 0 1 0]; else sortida=[sortida; 0 0 1]; end end new(i).mat=[dades(i).mat(:,25:36) sortida]; new(i).file=dades(i).file; new(i).n_file=dades(i).n_file; end %Elecció aleatòria del representant setmanal. Per a tal efecte, %s’haurà d’introduir el primer dia de cada una. first_sample=[1 5 9 12 16 19 22]; representative=[]; acumulative=0; for i=1:length(first_sample) if (i<length(first_sample)) long=first_sample(i+1)-first_sample(i); representative=[representative acumulative+unidrnd(long)]; end acumulative=acumulative+long; end %Traspàs dels representants setmanals des de les dades derivades al %model. cd c:\uni\Estudi_derives\Mesures_HS\funcions; [dades_model, dades_noves]=crear_submatrius(new, 3); for i=1:3 for j=1:length(representative) dades_model(i).mat=[dades_model(i).mat dades_noves(i).mat(representative(j),:)]; end end %Eliminació de les dades traslldades de les derivades. for i=1:3 for j=1:length(representative) N=representative(j); [f,c]=size(dades_noves(i).mat); if (N~=1)&(N~=(first_sample(length(first_sample))-1*j)) dades_noves(i).mat=[dades_noves(i).mat(1:(N-1),:) dades_model(i).mat((N+1):f,:)]; elseif (N == 1) dades_noves(i).mat=dades_noves(i).mat(2:f,:); else dades_noves(i).mat=dades_noves(i).mat(1:(N-1),:); end if (j<length(representative)) representative(j+1)=representative(j+1)-1*j; end end end %Creació dels vectors d’entrada i de validació. train_set=[dades_model(1).mat; dades_model(2).mat;...

dades_model(3).mat]; test_set=[dades_noves(1).mat; dades_noves(2).mat; dades_noves(3).mat];

Page 70: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

64

%Desordenació aleatòria d’ambdós vectors. [train_set]=desordenar(train_set); [test_set]=desordenar(test_set); %El ritme d’aprenentatge pot ser modificable lr=0.0; %Entrenament amb el vector d’entrada. [ga,wija2,wijb2,wijab]=fzmaptnok(0,1,lr,1,0.001,... train_set(:,1:12),train_set(:,13:15)); %Simulació amb el vector de validació. [a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptsexp3(ga,1,lr,1,0.001,...

wija2,wijb2,wijab,... test_set(:,1:12),test_set(:,13:15))

%Escriptura dels resultats. fprintf('\nok: %f',infotst(1)); fprintf('\nnok: %f',infotst(2)); fprintf('\nnsnc: %f',infotst(3)); %********************************************************************* % % Nom: leave_one.m % Autor: Moisés Paniagua Borrell % % Data: 12 de maig de 2002 % Objectius: Algorisme de classificació de les substàncies mitjançant % l’ús de la xarxa neural Fuzzy Artmap. Leave-one-out. % %********************************************************************* %Eliminació de les variables de l’espai de treball i neteja del mateix clc; clear; close all %Càrrega de la matriu de dades del conjunt. cd c:\uni\Estudi_derives\Mesures_HS\resultats; load dades; %Normalització de les dades entre zero i la unitat. for i=1:3 sortida=[]; auxmax=[]; [f,c]=size(dades(i).mat); auxmax=max(dades(i).mat); for j=1:c dades(i).mat(:,j)=dades(i).mat(:,j)./auxmax(j); end %Mètode de prevenció a fi que les coordenades romanguin dins de %l’interval desitjat. for j=1:f for k=1:c if dades(i).mat(j,k)<0 dades(i).mat(j,k)=0; end end end

Page 71: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

65

%Creació del vector d’objectius. for j=1:dades(i).n_file if i==1 sortida=[sortida; 1 0 0]; elseif i==2 sortida=[sortida; 0 1 0]; else sortida=[sortida; 0 0 1]; end end new(i).mat=[dades(i).mat(:,25:36) sortida]; new(i).file=dades(i).file; new(i).n_file=dades(i).n_file; end %Creació del vector d’entrada format per les dades del model i les %derivades. cd c:\uni\Estudi_derives\Mesures_HS\funcions; [dades_model, dades_noves]=crear_submatrius(new, 3); set=[dades_model(1).mat; dades_model(2).mat; dades_model(3).mat dades_noves(1).mat; dades_noves(2).mat; dades_noves(3).mat]; [set]=desordenar(set); ok=0; nok=0; nsnc=0; %EL ritme d’aprenentatge pot ser modificable. lr=0.0; %Bucle en el qual es realitza l’avaluació de totes les files, excepte %de la primera i de l’última. [f,c]=size(set); for i=2:(f-1) train_set=set([1:(i-1) (i+1):f],:); test_set=set(i,:); %Fase d’aprenentatge. [ga,wija2,wijb2,wijab]=fzmaptnok(0,1,lr,1,0.001,... train_set(:,1:12),train_set(:,13:15)); %Fase de validació. [a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptsexp3(ga,1,... lr,1,0.001,wija2,wijb2,wijab,... test_set(:,1:12),test_set(:,13:15))

ok=ok+infotst(1); nok=nok+infotst(2); nsnc=nsnc+infotst(3); end %Avaluació de la darrera fila. train_set=set([1:(f-1)],:); test_set=set(f,:); [ga,wija2,wijb2,wijab]=fzmaptnok(0,1,lr,1,0.001,train_set(:,1:12),...

train_set(:,13:15)); [a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptsexp3(ga,1,lr,1,0.001,...

wija2,wijb2,wijab,test_set(:,1:12),test_set(:,13:15))

ok=ok+infotst(1); nok=nok+infotst(2); nsnc=nsnc+infotst(3);

Page 72: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

66

%Avaluació de la primera fila. train_set=set(2:f,:); test_set=set(1,:); [ga,wija2,wijb2,wijab]=fzmaptnok(0,1,lr,1,0.001,train_set(:,1:12),

train_set(:,13:15)); [a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptsexp3(ga,1,lr,1,0.001,...

wija2,wijb2,wijab,test_set(:,1:12),test_set(:,13:15))

ok=ok+infotst(1); nok=nok+infotst(2); nsnc=nsnc+infotst(3); %Escriptura dels resultats. fprintf('\nok: %f',ok); fprintf('\nnok: %f',nok); fprintf('\nnsnc: %f',nsnc); %********************************************************************* % % Nom: ini_der_pca_cor.m % Autor: Moisés Paniagua Borrell % % Data: 13 de maig de 2002 % Objectius: Algorisme de classificació de les substàncies mitjançant % l’ús de la xarxa neural Fuzzy Artmap. Entrenament amb les % mesures del model i validació amb les derivades en l’espai % generat per la base dels PCs. Així mateix, les mesures % derivades han estat corregides matemàticament. Si es % desitja no fer-ho, s’ha d’elimminar la funció anomenada % correcció2. % %********************************************************************* %Eliminació de les variables de l’espai de treball i neteja del mateix clc; clear; close all %Càrrega de la matriu de dades del conjunt. cd c:\uni\Estudi_derives\Mesures_HS\resultats; load dades; %Creació de les matrius de les dades del model i de les derivades. cd c:\uni\Estudi_derives\Mesures_HS\funcions; [new_model, new_noves]=crear_submatrius(dades, 3); nnew_model=[new_model(1).mat(:,25:36); new_model(2).mat(:,25:36); new_model(3).mat(:,25:36)]; %Càlcul dels scores. [a_nnew_model,model_m,model_stds]=auto(nnew_model); [scores_model,loads_model,ssq_model,res_model,q_model,tsq_model]=...

pca(a_nnew_model,0); [sortida_validacio]=validar_model(new_model, new_noves, 3); [scores_noves]=correccio2(new_model,new_noves,sortida_validacio,3);

Page 73: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

67

%Normalització dels scores entre 0 i 1. Per a tal efecte, es %traslladarà cada coordenada cap al semiplà dret a partir del punt més %allunyat i es dividirà pel màxim de cada columna. scores=[scores_model; scores_noves]; min_scores=min(scores); [f_model,c_model]=size(scores_model); [f_noves,c_noves]=size(scores_noves); for i=1:c_model scores_model(:,i)=scores_model(:,i)-min_scores(i); scores_noves(:,i)=scores_noves(:,i)-min_scores(i); end scores=[scores_model; scores_noves]; max_scores=max(scores); for i=1:c_model scores_model(:,i)=scores_model(:,i)./max_scores(i); scores_noves(:,i)=scores_noves(:,i)./max_scores(i); end %Mètode de prevenció a fi que les coordenades romanguin dins de %l’interval desitjat. for i=1:f_model for j=1:c_model if scores_model(i,j)<0 scores_model(i,j)=0; end end end for i=1:f_noves for j=1:c_noves if scores_noves(i,j)<0 scores_noves(i,j)=0; end end end %Creació del vector d’objectius. sortida_model=[]; sortida_noves=[] for i=1:3 for j=1:new_model(i).n_file if i==1 sortida_model=[sortida_model; 1 0 0]; elseif i==2 sortida_model=[sortida_model; 0 1 0]; else sortida_model=[sortida_model; 0 0 1]; end end for j=1:new_noves(i).n_file if i==1 sortida_noves=[sortida_noves; 1 0 0]; elseif i==2 sortida_noves=[sortida_noves; 0 1 0]; else sortida_noves=[sortida_noves; 0 0 1]; end end end %Creació del vector d’entrada i de validació. train_set=[scores_model sortida_model]; test_set=[scores_noves sortida_noves]; %Desordenació aleatòria dels vectors d’entrada i de validació. [train_set]=desordenar(train_set); [test_set]=desordenar(test_set); %El ritme d’aprenentatge pot ser modificable. lr=0.0;

Page 74: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

68

%Entrenament amb el vector d’entrada. [ga,wija2,wijb2,wijab]=fzmaptnok(0,1,lr,1,0.001,train_set(:,1:2),... train_set(:,3:5)); %Simulació amb el vector d’avaluació. [a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptsexp3(ga,1,lr,1,0.001,... wija2,wijb2,wijab,test_set(:,1:2),... test_set(:,3:5)); %Escriptura dels resultats. fprintf('\nok: %f',infotst(1)); fprintf('\nnok: %f',infotst(2)); fprintf('\nnsnc: %f',infotst(3)); %********************************************************************* % % Nom: der_derives_pca_cor.m % Autor: Moisés Paniagua Borrell % % Data: 13 de maig de 2002 % Objectius: Algorisme de classificació de les substàncies mitjançant % l’ús de la xarxa neural Fuzzy Artmap. Entrenament amb les % mesures del model més una representativa setamanal de les % derivades i validació amb la resta en l’espai generat per % la base dels PCs. Així mateix, les mesures derivades han % estat corregides matemàticament. Si es desitja no fer-ho, % s’ha eliminar la funció anomenada correcció2. % %********************************************************************* %Eliminació de les variables de l’espai de treball i neteja del mateix clc; clear; close all %Càrrega de la matriu de dades del conjunt. cd c:\uni\Estudi_derives\Mesures_HS\resultats; load dades; %Creació de les matrius de dades del model i de les derivades. cd c:\uni\Estudi_derives\Mesures_HS\funcions; [new_model, new_noves]=crear_submatrius(dades, 3); %Càlcul dels scores de la matriu de dades i de les derivades. nnew_model=[new_model(1).mat(:,25:36); new_model(2).mat(:,25:36); new_model(3).mat(:,25:36)]; [a_nnew_model,model_m,model_stds]=auto(nnew_model); [scores_model]=pca(a_nnew_model,0); [sortida_validacio]=validar_model(new_model, new_noves, 3); %Funció que implementa la correció matemàtica sobre els dos PCs de %màxima variància. [scores_noves]=correccio2(new_model,new_noves,sortida_validacio,3); %Normalització de les coordenades a valors compresos entre 0 i 1. scores=[scores_model; scores_noves]; min_scores=min(scores); [f_model,c_model]=size(scores_model); [f_noves,c_noves]=size(scores_noves);

Page 75: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

69

for i=1:c_model scores_model(:,i)=scores_model(:,i)-min_scores(i); scores_noves(:,i)=scores_noves(:,i)-min_scores(i); end scores=[scores_model; scores_noves]; max_scores=max(scores); for i=1:c_model scores_model(:,i)=scores_model(:,i)./max_scores(i); scores_noves(:,i)=scores_noves(:,i)./max_scores(i); end %Mètode de prevenció a fi que les coordenades romanguin dins de %l’interval desitjat. for i=1:f_model for j=1:c_model if scores_model(i,j)<0 scores_model(i,j)=0; end end end for i=1:f_noves for j=1:c_noves if scores_noves(i,j)<0 scores_noves(i,j)=0; end end end %Creació del vector d’objectius. for i=1:3 sortida_model=[]; sortida_noves=[]; for j=1:new_model(i).n_file if i==1 sortida_model=[sortida_model; 1 0 0]; elseif i==2 sortida_model=[sortida_model; 0 1 0]; else sortida_model=[sortida_model; 0 0 1]; end end for j=1:new_noves(i).n_file if i==1 sortida_noves=[sortida_noves; 1 0 0]; elseif i==2 sortida_noves=[sortida_noves; 0 1 0]; else sortida_noves=[sortida_noves; 0 0 1]; end end if i==1 inici=1; fi=new_model(1).n_file; end if i==2 inici=1+new_model(1).n_file; fi=new_model(1).n_file+new_model(2).n_file; end if i==3 inici=1+new_model(1).n_file+new_model(2).n_file; fi=new_model(1).n_file+new_model(2).n_file+...

new_model(3).n_file; end %Assiganció dels resultats a una matriu auxiliar. aux_model(i).mat=[scores_model(inici:fi,:) sortida_model]; aux_model(i).n_file=new_model(i).n_file; aux_noves(i).mat=[scores_noves((1+(i-1)*new_noves(i).n_file)...

:(i*new_noves(i).n_file),:)sortida_noves]; aux_noves(i).n_file=new_noves(i).n_file; end

Page 76: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

70

%Elecció aleatòria del representant setmanal. first_sample=[1 5 9 12 16 19 22]; representative=[]; acumulative=0; for i=1:length(first_sample) if (i<length(first_sample)) long=first_sample(i+1)-first_sample(i); representative=[representative acumulative+unidrnd(long)]; end acumulative=acumulative+long; end %Traspàs dels representants setamanals des de les dades derivades al %model. for i=1:3 for j=1:length(representative) aux_model(i).mat=[aux_model(i).mat aux_noves(i).mat(representative(j),:)]; end end %Eliminació dels representant setmanal de les dades derivades. for i=1:3 extreure=representative; for j=1:length(extreure) N=extreure(j); [f,c]=size(aux_noves(i).mat); if (N~=1)&(N~=(first_sample(length(first_sample))-1*j)) aux_noves(i).mat=[aux_noves(i).mat(1:(N-1),:) aux_model(i).mat((N+1):f,:)]; elseif (N == 1) aux_noves(i).mat=aux_noves(i).mat(2:f,:); else aux_noves(i).mat=aux_noves(i).mat(1:(N-1),:); end if (j<length(extreure)) extreure(j+1)=extreure(j+1)-1*j; end end end %Creació del vector d’entrada i de validació. train_set=[aux_model(1).mat(:,:); aux_model(2).mat(:,:);... aux_model(3).mat(:,:)]; test_set=[aux_noves(1).mat(:,:); aux_noves(2).mat(:,:);... aux_noves(3).mat(:,:)]; %Desordenació aleatòria dels vectors d’entrada i de validació. [train_set]=desordenar(train_set); [test_set]=desordenar(test_set); %El ritme d’aprenentatge pot ser modificable. lr=0.0; %Entrenament amb el vector d’entrada [ga,wija2,wijb2,wijab]=fzmaptnok(0,1,lr,1,0.001,train_set(:,1:2),... train_set(:,3:5)); %Simulació amb el vector d’avaluació. [a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptsexp3(ga,1,lr,1,0.001,...

wija2,wijb2,wijab,test_set(:,1:2),test_set(:,3:5));

Page 77: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

71

%Escriptura dels resultats. fprintf('\nok: %f',infotst(1)); fprintf('\nnok: %f',infotst(2)); fprintf('\nnsnc: %f',infotst(3)); %********************************************************************* % % Nom: leave_one_pca_cor.m % Autor: Moisés Paniagua Borrell % % Data: 13 de maig de 2002 % Objectius: Algorisme de classificació de les substàncies mitjançant % l’ús de la xarxa neural Fuzzy Artmap. Leave-one-out. Així % mateix les mesures derivades han estat corregides % matemàticament. Si es desitja no fer-ho, s’ha eliminar % la funció anomenada correcció2. % %********************************************************************* %Eliminació de les variables de l’espai de treball i neteja del mateix clc; clear; close all %Càrrega de la matriu de dades del conjunt. cd c:\uni\Estudi_derives\Mesures_HS\resultats; load dades; %Càlcul dels scores de les dades del model i de les derivades. cd c:\uni\Estudi_derives\Mesures_HS\funcions; [new_model, new_noves]=crear_submatrius(dades, 3); nnew_model=[new_model(1).mat(:,25:36); new_model(2).mat(:,25:36); new_model(3).mat(:,25:36)]; [a_nnew_model,model_m,model_stds]=auto(nnew_model); [scores_model]=pca(a_nnew_model,0); [sortida_validacio]=validar_model(new_model, new_noves, 3); [scores_noves]=correccio2(new_model,new_noves,sortida_validacio,3); %Normalització de les dades a l’interval comprès entre 0 i 1. scores=[scores_model; scores_noves]; min_scores=min(scores); [f_model,c_model]=size(scores_model); [f_noves,c_noves]=size(scores_noves); for i=1:c_model scores_model(:,i)=scores_model(:,i)-min_scores(i); scores_noves(:,i)=scores_noves(:,i)-min_scores(i); end scores=[scores_model; scores_noves]; max_scores=max(scores); for i=1:c_model scores_model(:,i)=scores_model(:,i)./max_scores(i); scores_noves(:,i)=scores_noves(:,i)./max_scores(i); end

Page 78: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

72

%Mètode de prevenció a fi que les coordenades romanguin dins de %l’interval desitjat. for i=1:f_model for j=1:c_model if scores_model(i,j)<0 scores_model(i,j)=0; end end end for i=1:f_noves for j=1:c_noves if scores_noves(i,j)<0 scores_noves(i,j)=0; end end end

%Creació dels vectors d’objectiu. sortida_model=[]; sortida_noves=[] for i=1:3 for j=1:new_model(i).n_file if i==1 sortida_model=[sortida_model; 1 0 0]; elseif i==2 sortida_model=[sortida_model; 0 1 0]; else sortida_model=[sortida_model; 0 0 1]; end end for j=1:new_noves(i).n_file if i==1 sortida_noves=[sortida_noves; 1 0 0]; elseif i==2 sortida_noves=[sortida_noves; 0 1 0]; else sortida_noves=[sortida_noves; 0 0 1]; end end end

%Creació del vector d’entrada amb les dades del model i les derivades. set=[scores_model sortida_model; scores_noves sortida_noves];

%Desordenació aleatòria del conjunt de mesures. [set]=desordenar(set);

ok=0; nok=0; nsnc=0; lr=1.0;

%Bucle en el qual es realitza l’avaluació de totes les files, excepte %de la primera i de l’última. [f,c]=size(set); for i=2:(f-1) train_set=set([1:(i-1) (i+1):f],:); test_set=set(i,:); %Fase d’aprenentatge. [ga,wija2,wijb2,wijab]=fzmaptnok(0,1,lr,1,0.001,... train_set(:,1:2),train_set(:,3:5)); %Fase de validació. [a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptsexp3(ga,1,lr,... 1,0.001,wija2,wijb2,wijab,test_set(:,1:2), test_set(:,3:5)); ok=ok+infotst(1); nok=nok+infotst(2); nsnc=nsnc+infotst(3); end

Page 79: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

73

%Avaluació de la darrera fila. train_set=set([1:(f-1)],:); test_set=set(f,:); [ga,wija2,wijb2,wijab]=fzmaptnok(0,1,lr,1,0.001,train_set(:,1:2),...

train_set(:,3:5)); [a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptsexp3(ga,1,lr,1,0.001,...

wija2,wijb2,wijab,test_set(:,1:2),test_set(:,3:5)); ok=ok+infotst(1); nok=nok+infotst(2); nsnc=nsnc+infotst(3); %Avaluació de la primera fila. train_set=set(2:f,:); test_set=set(1,:); [ga,wija2,wijb2,wijab]=fzmaptnok(0,1,lr,1,0.001,train_set(:,1:2),...

train_set(:,3:5)); [a1,a2,infotst,viga,wija,vigb,wijb]=fzmaptsexp3(ga,1,lr,1,0.001,...

wija2,wijb2,wijab,test_set(:,1:2),test_set(:,3:5)); ok=ok+infotst(1); nok=nok+infotst(2); nsnc=nsnc+infotst(3); %Escriptura dels resultats. fprintf('\nok: %f',ok); fprintf('\nnok: %f',nok); fprintf('\nnsnc: %f',nsnc); %********************************************************************* % % Nom: feed.m % Autor: Moisés Paniagua Borrell % % Data: 22 de maig de 2002 % Objectius: Algorisme de classificació de les substàncies mitjançant % l’ús de la xarxa neural Feedforward. Només es mostra la % part de codi que implementa l’aprenentatge i posterior % validació. Aquesta s’haurà d’inserir en un els algorismes % desitjats anteriors segons es desitgi. % %********************************************************************* %Asignació del vector d’entrada i validació, així com dels objectius %corresponents. p=train_set(:,1:12)'; q=test_set(:,1:12)'; t=train_set(:,13:15)'; r=test_set(:,13:15); %Inicialització de la xarxa neural. Es defineixen el nombre de %neurones per capa (6 i 3), les funcions d’activació i l’algorisme %seguit per a l’aprenentatge: trainbpx. net=newff(minmax(p),[6,3],'tansig','logsig','trainbpx'); %Assignació dels paràmetres de la fase d’aprenentage. net.trainParam.show=50; net.trainParam.lr=0.01; net.trainParam.epochs=20000; %Nombre màxim d’epochs en

%l’entrenament. net.trainParam.goal=1e-3; %Fita error en l’aprenentatge

Page 80: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

ANNEXES

74

%Fase d’aprenentatge. [net]=train(net,p,t); %Fase de validació. Y=sim(net,q); %********************************************************************* % % Nom: levequ.m % Autor: Moisés Paniagua Borrell % % Data: 22 de maig de 2002 % Objectius: Algorisme de classificació de les substàncies mitjançant % l’ús de la xarxa neural Learning Vector Quantization. % Només es mostra la part de codi que implementa % l’aprenentatge i posterior validació. Aquesta s’haurà % d’inserir en un els algorismes desitjats anteriors segons % es desitgi. % %********************************************************************* %Ritme d’aprenentatge modificable. lr=0.0; %Asignació del vector d’entrada i validació, així com dels objectius %corresponents. p=train_set(:,1:12)'; q=test_set(:,1:12)'; %Conversió del vector d’objectius a un format entès per la xarxa. t=ind2vec(train_set(:,13)); %Inicialització de la xarxa neural. Es defineixen el nombre de %neurones per capa (6) i l’algorisme per a l’aprenentatge: learnlv1. net=newlvq(minmax(p), 6, [0.3438 0.3229 0.3333],lr,'learnlv1'); net.trainParam.epochs=300; %Fase d’aprenentage net=train(net,p,t); %Fase de validació. Y=sim(net,q); %Conversió del vector de resultats. Yc=vec2ind(Y)

Page 81: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

REFERÈNCIES

75

REFERÈNCIES [1] B. Lazzerini, F Marcelloni, Counteracting drift of olfactory sensors by appropriately selecting features, Electronic Letters, Març 2000, Vol. 36, Núm. 6.

[2] Markus Fryder, Martin Holmberg, Fredrik Winquist, Ingemar Lundström, A calibration technique for an electronic nose, Proceedings of the 8th International Conference on Solid-State Sensors and Actuators, Estocolm, Suècia, 1995, pàgs. 683-686.

[3] Martin Holmberg, Fredrik Winquist, Ingemar Lundström, Fabrizio Davide, Corrado DiNatale, Arnaldo D’Amico, Drift counteraction for an electronic nose, Sensors and Actuators B 35-36, 1996, pàgs. 528-535.

[4] Martin Holmberg, Fredrik Winquist, Ingemar Lundström, Fabrizio Davide, Corrado DiNatale, Arnaldo D’Amico, Drift counteraction in odour recognition applications: lifelong calibrated method, Sensors and Actuators B 42, 1997, pàgs.185-194.

[5] L. Ljung, System Identification: Theory for the User, Prentice- Hall, Englewood Cliffs, NJ, 1987.

[6] Santiago Marco, Arturo Ortega, Antonio Pardo, Josep Samitier, Gas Identification with Tin Oxide Sensor Array and Self-Organization Maps: Adaptive Correction of Sensor Drifts, IEEE Transactions on Instrumentation and Measurement, Febrer 1998, Vol. 47, Núm. 1.

[7] Manual tècnic de HP 7689 Headspace Sampler.

[8] Sergi Rojo Bosch, Diseño y realización de una nariz electrónica para la discriminación de aceites, Universitat Rovira i Virgili, Tarragona, 2001, pàgs. 5-24.

[9] Figaro Inc., http://www.figarosensors.com

[10] Fis Inc., http://www.fisinc.co.jp

[11] Jesús Brezmes Llecha, Diseño de una nariz electrónica para la determinación no destructiva del grado de maduración de la fruta, Universitat Rovira i Virgili, Tarragona, 2001, pàgs. 52-53.

[12] Radu Ionescu, Eduard Llobet, Wavelet transform-based fast feature extraction from temperature modulated semiconductor gas sensor, Sensors and Actuators B, 2001, pàgs. 150-152.

[13] E.L. Hines, E. Llobet, J.W. Gardner, Electronic noses: A review of signal processing techniques, IEE Proceedings, Circuits Devices and Systems, Vol. 146, Núm. 6, 1999, pàgs. 297-310.

[14] Jackson J.E., Principal component and factor analysis: Part 1-Principal components, J.Qual. Tech,1981, Vol. 13, Núm. 1.

[15] The Mathworks Inc., Matlab (versió 6.0), The Mathworks Inc.. http://www.mathworks.com

[16] B. Wise, N.B. Gallager, PLS ToolBox 2.0, Eigenvector research, http://www.eigenvector.com

[17] Lippman R.P., An introduction to computing with neural nets, IEEE ASSP Magazine, abril 1997, pàgs. 4-22.

[18] Rummelhart D., McClelland J. and the PDP research group, Parallel distributed processing, Vol. 1, Capítol 8, the M.I.T. press, 1986.

[19] Demuth H., Beale M., Neural Network Toolbox v1.0, The Mathworks Inc., http://www.mathworks.com

[20] Kohonen T., Self Organization and Associative Memory, 2nd. Edition, Berlin: Springer-Berlag, 1987.

[21] Carpenter G.A., Grossberg S., A massively parallel architecture for a self-organizing neural pattern recognition machine, Computer vision, graphics, and image processing, 1987, Vol. 37, pàgs. 54-115.

[22] Carpenter G.A., Grossberg S., ART2: Stable self-organization of pattern recognition codes for analog input patterns, Applied Optics, 1987, Vol 26, pàgs. 4919-4930.

[23] Carpenter G.A., Grossberg S., ART 3 hierarchical search: Chemical transmitters in self-organizing pattern recognition architectures, International joint conference on neural networks (washington DC), 30-33 Hillsdale, NJ: Erlbaum Associates.

[24] Carpenter G.A., Grossberg S., Rosen D., Fuzzy ART: Fast stable learning and categorization of analog patterns by an adaptive resonance system, Neural Networks, 1991, Vol. 4, pàgs. 759-771.

[25] Zadech L., Fuzzy sets, Information and control, 1965, Vol. 8, pàgs. 338-353.

Page 82: Estudi de les derives en els sensors de gasos de tipus …deeea.urv.cat/public/PROPOSTES/pub/pdf/198pub.pdf · 2009-09-22 · Diagrama PCA de la unió de paràmetres ∆G+temps de

REFERÈNCIES

76

[26] Carpenter G.A., Grossberg S., Markuzon N., Reynolds J., Rosen D., Fuzzy Artmap: A Neural Network architecture for incremental supervised learning of analog multidimensional maps, IEEE Transactions on neural networks, 1992, Vol. 3, Núm. 5, pàgs. 698-713.

[27] C. Distante, P. Siciliano, M. Leo, K.C. Persaud, On the study of feature extraction methods for an electronic nose, Sensors and Actuators B, submitted for publication (2002).