Utilizzo del Toolbox FUZZY LOGIC di Matlab per l’analisi di dati provenienti da sensori nell’ambito del progetto europeo SMOG
Enzo Gandolfi, Massimo Masetti, Luca Tomasi, Caterina Vitullo
Dipartimento di Fisica - Università di Bologna
V.le Berti Pichat, 6/2. - 40127 Bologna - Italy
Tel. +39 - 51 - 6305077 FAX: +39 - 51 - 6305297
Email: vitullo@sunvlsi4.bo.infn.it
URL: http://sunvlsi4.bo.infn.it/Welcome.html
Introduzione
La Comunità Europea finanzia, per un periodo pari a tre anni (1996-1999), un progetto denominato SMOG (Smart air pollution MOnitorinG networks) inteso a favorire la tutela dell’ambiente urbano dall’inquinamento atmosferico attraverso una crescente diffusione di reti di monitoraggio della qualità dell’aria. A questo progetto partecipa un consorzio composto da un gruppo interdisciplinare europeo d’istituti di ricerca e d’industrie che collaborano a realizzare il prototipo di una centralina per il rilevamento di alcune specie gassose inquinanti.
Grazie ad una tecnologia basata sull’impiego di sensori a base di ossidi metallici semiconduttori [1], è possibile realizzare un apparato di monitoraggio che si distingue da quelli attualmente esistenti per le dimensioni limitate, il basso consumo ed i costi contenuti. Per migliorare le prestazioni del sistema in termini di selettività e di sensibilità si ricorre da una parte all’utilizzo di sensori dalle caratteristiche diverse ed organizzati in matrici, dall’altra all’impiego di tecniche di elaborazioni di segnali come quelle neurali o neuro-fuzzy. A questo scopo si sta sviluppando un sistema, basato sulla logica fuzzy [2], in grado di risalire, attraverso l’analisi delle risposte dei sensori, alle concentrazioni dei gas. Il sistema fuzzy realizzato con il Toolbox Fuzzy Logic di Matlab ha dato buoni risultati grazie alla flessibilità del metodo di inferenza impiegato (Sugeno del primo ordine [3]) e alle tecniche di apprendimento automatico e di ottimizzazione della base della conoscenza messe a punto nella routine Anfis[4].
In questo articolo sono presentati i risultati più significativi ottenuti. Pur utilizzando per il training un set di dati piuttosto limitato, il sistema realizzato con il Toolbox Fuzzy Logic di Matlab è stato in grado di fornire stime delle concentrazioni dei gas inquinanti con un errore medio di qualche percento.
1 - Il progetto SMOG
Al fine di controllare le condizioni d’inquinamento dell’aria la stazione di monitoraggio dovrà essere in grado di misurare le concentrazioni di monossido di carbonio (CO), monossido di azoto (NO), biossido di azoto (NO2), ozono (O3) e benzene (C6H6) ai livelli di attenzione e di allarme fissati dalla legislazione italiana (tabella 1).
|
Composti |
Livello d’attenzione |
Livello d’allarme |
|
CO |
15 mg/m3 12.9 ppm |
30 mg/m3 25.8 ppm |
|
NO |
0.2 mg/m3 0.16 ppm |
0.4 mg/m3 0.32 ppm |
|
NO2 |
0.2 mg/m3 0.1 ppm |
0.4 mg/m3 0.2 ppm |
|
O3 |
0.18 mg/m3 0.09 ppm |
0.36 mg/m3 0.18 ppm |
|
C6H6 |
0.015 mg/m3 4.6 10-3 ppm |
Tabella 1 - Livelli di attenzione e di allarme per alcuni gas inquinanti secondo quanto stabilito dalla legislazione italiana
L’apparato di monitoraggio dovrebbe essere in grado di eseguire una misura di un campione di aria inquinata ogni ora.
È nell’ambito dello sviluppo di nuovi materiali sensibili ai gas da rilevare e nella realizzazione di una nuova generazione di sensori che risiede il maggior investimento tecnologico e di ricerca del progetto SMOG. In fig. 1 è mostrata l’immagine di un sensore realizzato per il progetto SMOG dall’istituto del C.N.R. LAMEL di Bologna.

Fig. 1 – Il sensore realizzato per il progetto SMOG dell'istituto del C.N.R. LAMEL di Bologna
Il principio fisico su cui si basa il funzionamento di questi sensori è lo stesso indipendentemente dal tipo di gas da rilevare, mentre, nelle stazioni di monitoraggio attualmente in uso, si utilizzano tecniche complesse e diverse secondo il tipo di gas.
La parte del sensore sensibile al gas è costituita da un film sottile di un ossido metallico che modifica la propria conduttanza per effetto della variazione della composizione dell’atmosfera circostante.
Dovendo la centralina di SMOG utilizzare questo nuovo tipo di sensori, si è imposta l'esigenza di progettare ex novo l'architettura dell’intera stazione.
La struttura della stazione è schematizzata in fig. 2; essa si compone delle seguenti parti:
Figura 2 - Schema della stazione di monitoraggio.
La nuova stazione di monitoraggio offre numerosi vantaggi rispetto alle più costose ed ingombranti stazioni attualmente esistenti. I principali sono i seguenti:
Per stimare le concentrazioni dei gas inquinanti partendo dalle risposte dei sensori si possono utilizzare diverse tecniche avanzate di apprendimento come quelle neurali o di elaborazione di dati basate su metodi statistici. In tabella 2 sono riportate le tecniche più utilizzate per elaborare dati provenienti da sensori di gas, in base ad una ricerca condotta in letteratura ("Sensors and Actuators B").
|
1993 |
1994 |
1995 |
1996 |
|
|
Metodi statistici |
50 % |
50 % |
23 % |
43 % |
|
Reti Neurali |
30 % |
43 % |
53 % |
26 % |
|
Logica Fuzzy |
10 % |
0 % |
0 % |
3 % |
|
Altri metodi |
10 % |
7 % |
24 % |
28 % |
Come è evidente, l’impiego della logica fuzzy in questo campo è ancora molto ridotto, anche se alcuni studi a questo proposito [5] sembrano aver dato risultati molto promettenti.
2 - Analisi dei dati di SMOG
Costruire sensori a semiconduttore che rispondano ai requisiti previsti dal progetto SMOG non è né facile né immediato.
Infatti i sensori basati su ossidi metallici semiconduttori sono, come nel caso del biossido di stagno [6,7], poco selettivi ed instabili; inoltre tendono ad essere soggetti a fenomeni di deriva. Ciò ha ritardato notevolmente la realizzazione di sensori efficaci.
Per ovviare a questi inconvenienti sono allo studio alcune soluzioni.
In questo lavoro riportiamo l’analisi dei dati provenienti dai primi sensori realizzati presso la Daimler-Benz di Monaco.
I dati si riferiscono al valore della resistenza dello strato sensibile di due sensori a base di biossido di stagno, uno drogato con un catalizzatore maggiormente sensibile a CO ed uno, senza catalizzatore, più sensibile a NO. I due sensori sono stati esposti a varie concentrazioni di CO e NO in miscela ad una umidità relativa del 30%. Le miscele sono state preparate considerando tutte le combinazioni dei seguenti valori:
|
CO |
NO |
|
400 ppm |
40 ppm |
|
200 ppm |
20 ppm |
|
100 ppm |
10 ppm |
|
50 ppm |
5 ppm |
|
25 ppm |
2,5 ppm |
|
12,5 ppm |
1,25 ppm |
|
6,25 ppm |
0,625 ppm |
Le risposte dei due sensori sono mostrate nelle figure 3 e 4:
il sensore 175 0406 più sensibile a NO (fig. 3);
il sensore 175 0407 più sensibile a CO (fig. 4).

Fig. 3 – Sensore più sensibile a NO (CO è considerato un interferente)

Fig. 4 – Sensore più sensibile a CO (NO è considerato un interferente)
Come si vede chiaramente dalle figure 3 e 4, ciascuno dei due sensori, anche se mostra una maggiore sensibilità ad uno dei due gas, risente in ogni caso della presenza dell’altro gas. Nel lavoro che segue, quindi, prenderemo in considerazione i contributi di entrambi i sensori sia nella misura di CO che in quella di NO.
2.1 La logica fuzzy nell’analisi dati
Per sviluppare un sistema fuzzy in grado di risalire alle concentrazioni dei gas partendo dalle risposte dei sensori, è necessario un sistema di apprendimento basato su esempi. Infatti, per questo tipo di problema non esiste né un modello matematico, né un esperto capace di descrivere in termini di logica fuzzy una relazione ingresso-uscita.
Per valersi dell’uso di un sistema di apprendimento che costruisca il sistema fuzzy occorre, però, risolvere prima due questioni essenziali:
Per decidere quali sono le variabili di ingresso più adatte alla risoluzione di questo problema (punto 1), è necessario considerare che il sistema fuzzy deve innanzi tutto stabilire se la coppia di sensori è in grado di separare i contributi dei due gas. A questo scopo abbiamo pensato di sviluppare parallelamente due sistemi fuzzy per ciascuno dei due gas. Ognuno dei due sistemi fuzzy ha 2 ingressi e 1 uscita.
I due sistemi fuzzy sono così strutturati:
per calcolare la concentrazione di CO
Primo Sistema
Inputs: Uscita del Sensore di CO
Concentrazione di NO (sensore ideale di NO)
Output: Concentrazione di CO
Secondo Sistema
Inputs: Uscita del Sensore di CO
Uscita del Sensore di NO (gas interferente)
Output: Concentrazione di CO
per calcolare la concentrazione di NO
Primo Sistema
Inputs: Uscita del Sensore di NO
Concentrazione di CO (sensore ideale di CO)
Output: Concentrazione di NO
Secondo Sistema
Inputs: Uscita del Sensore di NO
Uscita del Sensore di CO (gas interferente)
Output: Concentrazione di NO
La scelta di sviluppare parallelamente i due sistemi sopra descritti si giustifica considerando che, se i due sistemi dovessero portare a risultati confrontabili tra loro, saremmo autorizzati ad affermare che la risposta del sensore più sensibile al gas interferente (seconda variabile d’ingresso del secondo sistema) è effettivamente equivalente alla concentrazione del gas stesso (seconda variabile d’ingresso del primo sistema). Se ciò, inoltre, fosse vero per entrambi i gas, potremmo arrivare a concludere che i contributi dei singoli gas presenti nella miscela sono separabili.
La generazione di ciascun sistema fuzzy è stata realizzata utilizzando la routine Genfis1, mentre la base della conoscenza (funzioni di appartenenza e regole) è stata ottimizzata in base alla routine Anfis. L’algoritmo di Back Propagation messo a punto in Anfis (AN-FIS) ottimizza un sistema di inferenza fuzzy (FIS: Fuzzy Inference System) con metodo di inferenza di Sugeno del primo ordine tramite una rete neurale (ANN: Antificial Neural Network) Feed-forward a più livelli.
Il numero di esempi a disposizione forniti alla rete per il training è molto limitato e variabile da caso a caso, ma, in ogni caso, sempre minore di trenta.
Il numero di funzioni di appartenenza di ciascuna variabile di ingresso, dopo diverse prove, è risultato essere il minimo possibile (2), cosa ragionevole se si considera sia il numero limitato di dati in ingresso sia la debole non linearità delle risposte dei sensori (fig. 3 e 4).
Riguardo al secondo sistema fuzzy, abbiamo sviluppato un’analisi aggiuntiva per tenere in considerazione il fatto che le risposte dei sensori possono essere moderatamente instabili. Per questo motivo abbiamo simulato la presenza di una modesta quantità di rumore (5%) e siamo andati a vedere come cambia, in questo caso, la capacita di predizione del sistema.
2.2 Il primo sistema fuzzy
Come abbiamo accennato nel paragrafo precedente (punto 2), per migliorare le prestazioni di un sistema di apprendimento, può essere opportuno effettuare una pre-elaborazione dei dati forniti come esempi. Nel nostro caso il sistema risponde molto meglio se si prende come risposta del sensore la variazione di resistenza relativa S anziché la pura resistenza R:
S= (RO-R) /R
dove R= resistenza dello strato sensibile del sensore in presenza del gas
e RO = resistenza dello strato sensibile del sensore in assenza del gas
Una seconda pre-elaborazione è stata eseguita sui valori delle concentrazioni dei gas.
Infatti da un’analisi preliminare è emerso che, fornendo, in fase di apprendimento, i dati di
concentrazione in scala lineare, i risultati ottenuti in termini di deviazione tra valore reale di concentrazione del gas e valore predetto dal sistema fuzzy non erano accettabili (fig. 5 e 6). Inoltre sia nel caso di CO che in quello di NO la deviazione tra valore reale di concentrazione e quello predetto dal sistema fuzzy è più alta per i valori di concentrazione più bassi.

|
Fig. 5 – Errore percentuale sulla concentrazione di CO prevista dal primo sistema fuzzy |
Fig. 6 – Errore percentuale sulla concentrazione di NO prevista dal primo sistema fuzzy |
Esprimendo, invece, i valori di concentrazione, in fase di apprendimento, in scala logaritmica, si ottengono risultati notevolmente migliori. In questo modo, infatti, i valori di concentrazione a disposizione per l’apprendimento sono distribuiti uniformemente su tutto il range considerato.
Infatti si nota subito (fig. 7 e 8) che in questo caso la deviazione fra valore reale di concentrazione e quello predetto dal sistema fuzzy è circa la stessa su tutto il range delle concentrazioni.
Per questo motivo si è deciso di effettuare sempre una pre-elaborazione dei dati di concentrazione, sostituendo i valori in scala lineare con quelli in scala logaritmica.

|
Fig. 7 – Errore percentuale sulla concentrazione di CO prevista dal primo sistema fuzzy dopo una pre-elaborazione dei dati di ingresso |
Fig. 8 – Errore percentuale sulla concentrazione di NO prevista dal primo sistema fuzzy dopo una pre-elaborazione dei dati di ingresso |
Risultati praticamente identici sono stati ottenuti escludendo, in fase di apprendimento le concentrazioni più alte: 400 ppm per CO e 40 ppm per NO. Ciò fa supporre che il sistema fuzzy lavori allo stesso modo indipendentemente dal range in cui sono distribuiti i dati di ingresso.
2.3 – Il secondo sistema fuzzy
Nell’analisi fatta con il primo sistema fuzzy, abbiamo considerato una situazione semplificata, ma non reale. Infatti abbiamo preso come ingressi del sistema fuzzy:
Nel caso reale, invece, si hanno a disposizione solo le uscite dei due sensori (uno più sensibile al gas da rilevare, l’altro più sensibile al gas interferente).
Per valutare le effettive prestazioni del sistema fuzzy occorre:
I risultati ottenuti da una prima analisi fatta considerando le risposte dei sensori in assenza di rumore sono rappresentati in forma grafica nelle figure 9 e 10.
|
Fig. 9 – Errore percentuale sulla concentrazione di CO prevista dal secondo sistema fuzzy |
Fig. 10 – Errore percentuale sulla concentrazione di NO prevista dal secondo sistema fuzzy |
Nella tabella 3 che segue sono inoltre riportati i risultati in termini di deviazione percentuale tra valore reale e valore predetto dal sistema fuzzy comparati con quelli ottenuti dal primo sistema.
È evidente che i risultati conseguiti dall’analisi fatta con il primo sistema fuzzy e quelli ottenuti dal secondo sono tra loro confrontabili, e quindi, essendo i due sistemi equivalenti, i due gas sono separabili e le loro concentrazioni misurabili nei limiti degli errori riportati.

Tabella 3 - Sommario comparativo dei risultati ottenuti con il primo e con il secondo sistema fuzzy
Per prevedere il caso in cui le uscite dei sensori presentino instabilità, il sistema fuzzy sviluppato ha come ingressi:
per misurare la concentrazione di CO
mentre per misurare la concentrazione di NO:
Come si vede anche dalla rappresentazione grafica (fig.11 e 12) , il sistema mostra di essere in grado di rilevare le concentrazioni dei due gas con un errore molto superiore a quello previsto nel caso in cui le uscite dei sensori non siano affette da rumore.
D’altra parte si può notare che nel caso del CO (fig. 11) gli errori più considerevoli si hanno per il valore più alto di concentrazione di NO (NO=40 ppm). Anche nel caso di NO, i risultati sono migliori se non consideriamo i dati relativi ai valori di concentrazione di CO più alti (CO=400 ppm, CO=200 ppm). Questo è per noi già un buon risultato in quanto i valori delle concentrazioni di CO e di NO che il progetto SMOG ha previsto di dover misurare sono solamente quelli più bassi da noi presi in esame.

|
Fig. 11 – Errore percentuale sulla concentrazione di CO prevista dal secondo sistema fuzzy in presenza di rumore (5%). |
Fig. 12 – Errore percentuale sulla concentrazione di NO prevista dal secondo sistema fuzzy in presenza di rumore (5%). |
Conclusioni
Anche se il lavoro è ancora in una fase iniziale, alla luce dei risultati ottenuti, si può certamente affermare che tecniche basate sulla logica fuzzy possono risultare efficienti nell’analisi dei dati prodotti da sensori di gas. Infatti il sistema fuzzy è in grado di rilevare le concentrazioni dei differenti gas presenti nelle miscele considerate con precisione più che soddisfacente se si considera sia il numero ridotto di dati utilizzati per l’apprendimento, sia la non completa affidabilità dei sensori che sono in fase di ottimizzazione.
Per quanto riguarda il Toolbox Fuzzy Logic di Matlab possiamo affermare che:
Riferimenti
[1] W. H. Brattain e J. Bardeen - Bell System Tech – Vol. 32 , pp. 1-41, 1952
[2] L. A. Zadeh – Fuzzy Sets – Information and Control, Vol. 8 pp. 338-353, 1965.
[3] ] M. Sugeno – Industrial Applications of Fuzzy Control – Elsevier Science Pub. Co, 1985
[4] ] J. S. R. Jang – ANFIS: Adaptive- Network-based Fuzzy Inference System – IEEE Transactions on Systems, Ma, and Cybernetics, Vol. 23 No. 3, pp 665-685, 1993
[5] S. Singh, E.L. Hines, J.W. Gardner – Fuzzy Neural Computing for Warwick Electronic Nose – Sensors and Actuators B, 1994.
[6] C. Di Natale, A. D’Amico, F. A. M. Davide, G. Faglia, P. Nelli and G. Sberveglieri – H2S and NO2 Performance Evaluation of an SnO2 based sensor array for the quantitative measurement of mixtures of H2S and NO2 – Sensors and Actuators B - Vol. 20 No. 2-3 pp. 217-24, 1994
[7] C. Di Natale, F. A. M. Davide, G. Faglia and P. Nelli – Study of the effect of the sensor operating temperature on SNO2-based sensor-array performance – Sensors and Actuators B – Vol. 23 No. 2-3, pp. 187-91, 1995