--- title: 13 - Elementi di diagnosi dei guasti tags: Misure info: Lezioni 21-22 ottobre description: Blocco slide parte 13 --- ![](https://i.imgur.com/CS5oMJJ.png) Voglio associare ad ogni guasto una determinata classe (0 indica il sistema funzionante). La fase di diagnosi è spesso customizzata sul processo. # Introduzione alla diagnosi dei guasti Le tecniche viste fino ad ora permettono di generare residui diagnostici dalla cui analisi risulta possibile individuare uno o più fault presenti nel sistema (i.e. sui sensori, sugli attuatori o sui parametri di processo). Nei casi in cui il progettista ha a disposizione alcuni gradi di libertà (e.g. tecniche basate su osservatore, equazioni di parità, ecc ...) allora è possibile creare residui strutturati che permettono, tra le altre cose, di isolare il guasto. Individuazione e isolamento guasti sono le fasi fondamentali della diagnosi, tuttavia esistono anche altre informazioni che un sistema diagnostico dovrebbe essere in grado di fornire. Le tecniche di diagnosi guasti devono permettere di determinare il tipo di guasto che si è verificato, con il massimo dei dettagli possibili: la dimensione, la posizione e l'istante di determinazione. Le procedure di diagnosi si basano generalmente su osservazioni analitiche e su sintomi rilevati in modo euristico, il tutto unito ad una conoscenza euristica del processo. La presente lezione ha l’obiettivo di introdurre la diagnosi guasti, fornendo le conoscenze di base per l’analisi successiva dei metodi più comuni di classificazione ed inferenza utilizzati per estrarre informazioni diagnostiche. # Tipi di funzioni nella diagnosi dei fault **Fault Detection (FD – individuazione del fault):** determinazione dei fault presenti nel sistema e dei momenti in cui essi sono individuati. **Fault Isolation (FI – isolamento del fault):** determinazione della tipologia, posizione e tempo di individuazione del fault; segue la fault detection. **Fault Identification (FId – identificazione del fault):** determinazione della dimensione e del comportamento tempo variante di un fault; segue la fault isolation. **Fault Diagnosis (FD – diagnosi del fault):** determinazione della tipologia, dimensione, posizione e tempo di individuazione del fault; include la fault isolation e identification. # Sintomi e caratteristiche distintive **Feature:** Una caratteristica distintiva estratta da un sistema reale dalla cui analisi è possibile ricavare informazioni sul corretto funzionamento dello stesso (e.g. parametro, variabile di stato, residuo, ecc ...) **Sintomo:** Cambiamento non usuale di una feature rispetto al suo valore abituale o nominale. - **Sintomo analitico:** Sintomo generato dall'insieme delle procedure quantitative in precedenza analizzate (limit checking, signal-process fault detection, processo matematico, ecc.) - **Sintomo euristico:** Sintomo generato in maniera qualitativa a partire dalle osservazioni delle persone che operano sul processo (rumore acustico, oscillazioni, vibrazioni, colore, fumi, ecc.) **Serie storica e statistica del guasto:** Dati storici sul processo: se tali informazioni non vengono sufficientemente strutturate (ad esempio con modelli) oppure sono di bassa qualità, anche queste informazioni possono essere considerate come heuristic symptoms. # Trasformazioni delle misure in un sistema di individuazione guasti Il processo decisionale che permette di individuare un guasto all’interno del processo reale può essere descritto tramite tre trasformazioni che portano le misure originali in altrettanti spazi. **Spazio delle misure:** è lo spazio costituito dall'insieme di misure $x=\begin{bmatrix}x_1 & ... & x_N\end{bmatrix}$ del processo le quali non richiedono una conoscenza a priori: sono gli ingressi al sistema diagnostico (uscite dei sensori) **Spazio delle feature:** è lo spazio costituito dai punti $y=\begin{bmatrix}y_1 & ... & y_P\end{bmatrix}$ dove l'$i$-esimo punto costituisce una feature ottenuta a partire dalle misure mediante una conoscenza a priori del problema (e.g. modello, identificazione, tipologia di segnale, ecc.). Viene solitamente valutata tramite sogliatura. **Spazio delle decisioni (sintomi):** è uno spazio di punti $d=\begin{bmatrix}d_1 & ... & d_K\end{bmatrix}$ in cui sono trasformate le feature in modo da garantire il soddisfacimento di una funzione obiettivo: la trasformazione è tipicamente fatta tramite una funzione discriminante e politiche di sogliatura. **Spazio delle classi:** è uno spazio costituito da interi $c=\begin{bmatrix}c_1 & ... & c_M\end{bmatrix}$, dove $M$ rappresenta il numero delle classi di guasti, che indicizza a quale classe di guasto (inclusa la regione di normale funzionamento) appartiene il set di misure date in ingresso al sistema diagnostico. Nel caso di semplice individuazione tale classe è binaria (i.e. $M=2$) ## Trasformazioni delle misure: esempio ![](https://i.imgur.com/fctr1yX.png) # Schema di funzionamento della diagnosi guasti ![](https://i.imgur.com/zqQEZTm.png) Nel caso del sistema automatico le variabili vengono misurate, si generano delle feature a partire da queste, i cui sintomi sono ottenuti tramite oppurtune change detection ottenendo dei sintomi analitici, che sono uniti ai sintomi euristici (ad esempio: fumo che osservo a partire dalla macchine, sintomi più qualitativi), e vengono dati in pasto al decisore diagnostico che prende in input i sintomi al fine di effettuare la diagnosi. # Relazione sintomo-guasto ![](https://i.imgur.com/SISmghx.png) Da un lato un guasto causa degli effetti nel sistema, causando dei sintomi che possono essere osservati (rapporto di tipo causa-effetto diretta), dall'altro non è immediato risalire, a partire dal sintomo, alla causa che l'ha generato, per cui spesso ci si affida anche a tecniche di intelligenza artificiale. # Classificazione e inferenza Per operare una corretta diagnosi sui guasti è necessario spesso considerare le cause fisiche che li governano in termini di causa ed effetto, quindi a partire dalla conoscenza delle implicazioni fisiche si evidenzia la generazione dei sintomi. Il processo di diagnosi guasti dovrà procedere in modo inverso, ovvero a partire dalla osservazione dei sintomi diagnosticherà gli eventi che li hanno generati e quindi il guasto. Se non è disponibile informazione sulle relazioni causa-effetto, allora è possibile utilizzare metodi di classificazione addestrati sperimentalmente per generare le classi dei fault. Se sono disponibili tali relazioni causa-effetto, allora è preferibile fare affidamento su tecniche di ragionamento e metodi di inferenza. ![](https://i.imgur.com/eyhaBWd.png) ## Classificazione e clustering ![](https://i.imgur.com/5IHsL39.png) Se si hanno dei label che indicano le fasi di funzionamento del sistema, allora si può adottare la classificazione. Nel caso in cui non si hanno il label, generamente, si procede con il clustering. Spesso il comportamento di impianti "vecchi" è dato dalla figura al centro, in cui si ha una maggioranza di punti a funzionamento regolare e una quantità ridotta di punti che al contrario segnalano la presenza di un fault (non necessariamente ben specificato, per cui non si sa cosa è andato storto nel sistema). Nel tempo, tuttavia, si stanno diffondendo dataset come quello a sinistra, in cui si ha una delimitazione dei guasti per label, utili per la classificazione. # La classificazione Il compito di un sistema diagnostico (inteso nel senso proprio del termine, ovvero come sistema che opera a partire dall’insieme di sintomi generati dalle tecniche di individuazione dei guasti) è quello di separare $n_j$ diversi fault $F_j, j \in \{1,2,...,n_f\}$ usando $n_s$ sintomi $s_i, i \in \{1,2,...,n_s\}$ I fault sono combinati all’interno di un vettore di guasti $F = \begin{bmatrix}F_1 & F_2 & ... & F_{n_f}\end{bmatrix}$ e i sintomi all’interno di un vettore dei sintomi $s = \begin{bmatrix}s_1 & s_2 & ... & s_{n_s}\end{bmatrix}$ La maggior parte dei metodi calcola una misura del fault $f_i$ per ogni classe $F_j$: la decisione sul fault più probabile è quindi fatta considerando il fault al quale è associata la massima misura $f_j$ Nella realtà non è possibile fare affidamento semplicemente sulla misura più grande: ci sono infatti situazioni poco chiare in cui a causa del contributo di rumore si possono generare misure elevate molto ravvicinate tra di loro e che possono portare ad una incertezza nella decisione. Vedremo ora i metodi di classificazione, ovvero metodi che non richiedono alcuna conoscenza strutturale del processo per operare una decisione ## Principi della classificazione Nella fase di apprendimento o addestramento (learning or training phase) il classificatore associa al fault $F_j$ il vettore (l’insieme) dei sintomi di riferimento $s_{ref}$ che sono riferiti alla classe j-esima a cui appartiene il fault in oggetto. Nella fase di classificazione viene operato un confronto tra il vettore dei sintomi $s$ e il vettore dei sintomi di riferimento $s_{ref}$ in modo da operare la classificazione del fault. La classificazione rappresenta la relazione diagnostica funzionale tra il sintomo (spazio delle decisioni) e la misura del fault. In letteratura il valore binario (fault sì oppure fault no) associato alla misura del fault $f_j$ è spesso indicato con la lettera $t_j$, ad indicare il bersaglio (target). Poiché i metodi di classificazione operano tipicamente una valutazione binaria, è richiesta successivamente un’operazione di massimizzazione per andare a determinare il risultato del fault (spazio delle classi). ![](https://i.imgur.com/rkiHd2v.png) ![](https://i.imgur.com/a9btPJb.png) ## Classificatore geometrico I classificatori geometrici determinano la classe di appartenenza di un dato punto calcolando la distanza da un dato punto di riferimento. I punti di riferimento sono caratterizzati dai valori dei sintomi $s_{ref,i}$ e dalle assegnate classi per i guasti (classe $F_1$ o $F_2$ , ecc ...). Il metodo più semplice e famoso è rappresentato dal classificatore **nearest neighbor** per cui l’intorno più vicino viene valutato tramite la distanza euclidea ![](https://i.imgur.com/s6yBFOj.png) Il classificatore nearest neighbor ha due svantaggi principali: - occorre memorizzare tutti i reference point; - se ci sono regioni sovrapposte con pochi dati non è facile assegnare la classe di guasto corretta alla quale appartiene il set di sintomi. - si ha un alta sensibilità agli outlier Una possibile alternativa è quella di utilizzare l’approccio k nearest neighbor, il quale opera una classificazione in base alla maggioranza dei voti dei suoi k vicini. ![](https://i.imgur.com/QqPZ9v6.png) ## Classificatore bayesiano Questo approccio è basato su “ragionevoli assunzioni” sulla distribuzione statistica dei sintomi: l’ipotesi più comune è di considerare una densità di probabilità Gaussiana per i sintomi. Si ha quindi una densità di probabilità $p(s)$, con centro in $s_0$ e matrice di covarianza $\Sigma$. Dato un classificatore basato sulle densità di probabilità, si può affermare che il minimo di una decisione sbagliata si ottiene se si seleziona il “massimo della probabilità di $F_j$ condizionata ai sintomi”, ovvero ![](https://i.imgur.com/QmIaHjB.png) Per poter calcolare $f_j(s)$, cioè la misura del fault (i.e. la probabilità che il set di sintomi $s$ sia associato alla classe $F_j(s)$), occorre valutare: - le probabilità a priori $p(F_j)$ - le probabilità condizionate $p(s|F_j)$ - la probabilità $p(s)$, invece, non è rilevante in quanto ad interessare è la massima misura $f_j$ per cui $p(s)$ rappresenta un semplice fattore di scala Le probabilità a priori $p(F_j)$ si calcolano a partire dal set di addestramento come la frequenza di comparsa del fault ![](https://i.imgur.com/a9L0KIK.png) Le probabilità condizionate si possono calcolare sotto l’assunzione di fault statisticamente indipendenti, per cui a partire dal set di addestramento si possono ottenere le stime delle probabilità condizionate con l'uso di istogrammi, che approssima la funzione di densità di probabilità associata. ![](https://i.imgur.com/ihZUcmS.png) ## Alberi decisionali Il sistema generalmente pone una serie di domande a cui occorre dare risposta, in base alla risposta una nuova domanda è posta per specificare ulteriormente, e così di seguito fino alla determinazione della decisione esatta. Si parte da un set di dati $S_0$ e lo si divide in due set $S_{11}$ e $S_{12}$ tramite una decisione $D_1$, successivamente si itera la suddivisione sino ad arrivare alla fine formando un albero binario: idealmente la suddivisione termina quando le parti terminali dell’albero (le foglie) sono costituite da una singola classe di fault. La struttura dell’albero è basata sulle decisioni che vengono prese per operare la suddivisione binaria: esse sono tipicamente fondate sulla conoscenza a priori di una persona esperta nel processo. Quando tale conoscenza non è disponibile (classificatore) allora è necessario fare affidamento su una strategia ad-hoc: la più comune è quella di risolvere un problema di ottimizzazione ad un passo in modo da creare una decisione che massimizzi la similarità di dati all’interno di ogni singolo ramo binario che si va a creare. ![](https://i.imgur.com/AUoirDU.png) ### Algoritmo C4.5 Sia dato un set di sintomi di addestramento $T$ e le classi di guasto $\{F_1 , F_2 ,…, F_k \}$: l’obiettivo è quello di creare un albero decisionale andando a costruire nuovi rami tramite opportune decisioni. Il criterio decisionale è quello dell’ottimizzazione ad un passo. La decisione viene presa andando ad utilizzare come indice di valutazione (da massimizzare) l’entropia: $$ Info(T)=-\sum ((freq(F_i,T)/|T|) * \log_2(freq(F_i,T)/|T|)) $$ dove $freq(F_i,T)$ rappresenta il numero di campioni di $T$ che appartengono alla classe $F_i$ (su $k$ classi probabili) e $|T|$ rappresenta il numero di campioni in $T$. Viene eseguito un test sull'attributo $X$ (sintomo) per i campioni del set $T$ in modo da partizionare $T$ in $L$ sottoinsiemi e creare un nuovo nodo per ogni sottoinsieme $$ Info_X(T)=\sum((|T_i|/|T|)*Info(T_i)) $$ dove $T_i$ è un sottoinsieme di $T$ corrispondente all'$i$-esimo valore di split rispetto alla variabile $X$ **(modificato rispetto alla slide, da rivedere)**. Questa sarà l'entropia relativa ai nodi ottenuti tramite lo split sulla variabile $X$. La scelta di $X$ è data in modo da massimizzare il guadagno $Gain(X)=Info(T)-Info_X(T)$ (oppure minimizzare $Info_X(T)$). Le sommatorie vanno intese rispetto alle diverse tipologie di valori di ciascun attributo (sintomo). La maggior parte dei segnali diagnostici è continua, per cui è necessario operare una discretizzazione quando nel set di dati sono presenti valori di questo tipo. Dato un attributo continuo $X$, si supponga che esso abbia $m$ valori nel set di addestramento ordinati in modo crescente $a_1<a_2<...<a_m$. Un dato valore $a_i$ suddivide la partizione in due gruppi $[a_1<a_2<...<a_{i-1}]$ e $[a_{i+1}<a_{i+2}<...<a_m]$. Esistono $m-1$ possibili scelte, corrispondenti ad $m-1$ possibili soglie $a_i$. Si calcola per ogni partizione il guadagno di informazione e si sceglie la soglia che va a massimizzare tale guadagno. Questo metodo di discretizzazione dinamica viene fatta per ogni attributo continuo ad ogni passo. #### Algoritmo C4.5: esempio Dataset iniziale: ![](https://i.imgur.com/uC2c1l1.png) Primo split usato per il dataset: ![](https://i.imgur.com/NQdaUxX.png) Albero intermedio: ![](https://i.imgur.com/2I9DRwq.png) Albero finale: ![](https://i.imgur.com/NMEfYsX.png) ## Reti neurali Le reti neurali sono progettate in modo da minimizzare un errore di misura $V$ al fine di assumere il comportamento di una funzione arbitraria. La funzione di mappatura della rete dipende da un numero di pesi $w$ che contengono le informazioni della rete: l’addestramento viene fatto andando a scegliere i pesi $w$ che minimizzano l’errore di misura $V$. Le reti neurali possono essere considerate degli “approssimatori universali”, nel senso che esse possono comportarsi come una qualunque funzione con una precisione assegnata, a patto che la loro struttura sia sufficientemente complessa (nel caso diagnostico significa che la rete stima le probabilità di fault senza assunzioni sulle funzioni di densità di probabilità). Quando le reti sono utilizzate a livello diagnostico esse sono addestrate in maniera simile a quanto avviene con gli altri classificatori; inoltre studi recenti dimostrano che metà delle procedure utilizzate nella pratica a livello di classificazione diagnostica fanno uso delle reti neurali. Il segreto delle reti neurali è dovuto al fatto che esse garantiscono una discreta classificazione con uno sforzo di progettazione contenuto, a livello diagnostico le più utilizzate sono le **reti MLP** e le **reti RBF**. ### Reti neurali: MLP ![](https://i.imgur.com/HJS7biu.png) Le reti MLP sono caratterizzate dalla seguente struttura: - ogni sintomo è utilizzato come ingresso della rete; - ogni uscita rappresenta una classe di fault; - poiché l’uscita è rappresentata da una variabile binaria (probabilità di appartenenza), le funzioni di attivazioni dello strato di uscita sono di tipo sigmoide Le reti MLP hanno le seguenti caratteristiche: - gli strati eseguono una proiezione dei dati tramite la somma pesata dei valori di ingresso e un bias; - un numero limitato di neuroni è in grado di rimuovere informazioni non rilevanti dagli ingressi; - rappresentano una buona scelta quando la dimensionalità del problema sale, tuttavia con l’aumentare del numero di parametri aumenta anche la necessità di avere un set di dati di addestramento elevato; - un aumento elevato dei parametri comporta anche un tempo di addestramento elevato in quanto il problema di ottimizzazione è di natura non lineare. #### Usi alternativi delle MLP È possibile utilizzare le reti MLP in maniera selettiva per ogni tipologia di fault, ovvero è possibile addestrare le reti MLP affinché esse distinguano esclusivamente tra funzionamento nominale e una singola classe di fault. Questo permette di avere reti di ridotte dimensioni con funzioni di apprendimento più semplici, il numero di parametri complessivi diventa però molto più grande rispetto al caso della singola rete (c’è ridondanza delle reti). È possibile utilizzare le reti MLP non solo per la diagnosi vera e propria, ma anche per generare i sintomi a partire dai segnali di misura. In questo caso la rete opera una mappatura diretta tra le misure e le classi di fault. Ciò permette di semplificare notevolmente l’intera procedura di diagnosi (non è necessario costruire lo stadio di individuazione dei guasti), ma è tipicamente fattibile solo per un ridotto numero di sistemi e ignora completamente ogni tipologia di conoscenza del processo. #### Problemi delle MLP <span style="color: green">**Le cose da sapere sono quelle in grassetto per questa sezione**</span> A prescindere dalle tipologie di utilizzo, il problema principale delle reti MLP risiede nella loro bassa capacità di estrapolare decisioni quando si lavora su sintomi che ricadono al di fuori del range del set di addestramento. Ciò accade spesso a livello diagnostico in quanto il set di dati per l’addestramento è limitato (**non è fisicamente possibile acquisire dati di tutte le possibili combinazioni di guasti strumentali che possono accadere su un processo reale**). Se la rete MLP è addestrata con molti gradi di libertà allo scopo di garantire percentuali di classificazione elevate rispetto al set di addestramento, allora si rischia di produrre risultati del tutto inaspettati appena si ha in ingresso un set di dati diverso da quello di addestramento (problema dell’**overfitting**). Il problema è dovuto al fatto che le reti MLP fanno affidamento su funzioni di attivazione globale: per risolverlo è necessario fare affidamento su reti neurali con funzioni di attivazione locale (e.g. a base radiale) (valori lontani da quelli osservati nel training set sono scartati). **Le reti MLP sono pertanto utilizzate a livello diagnostico quando il set di dati ha una dimensionalità media e il set di addestramento è ricco di informazioni.** ### Reti neurali: RBF La seconda tipologia di reti neurali più diffusa a livello diagnostico è quella delle reti con funzioni a base radiale. Tipicamente sono utilizzate reti con funzioni di base non normalizzate e un singleton nello strato di uscita: questo permette di avere una semplificazione nel problema di ottimizzazione in quanto lineare nell’errore di uscita (adatto per problemi di elevata dimensionalità). La difficoltà principale di questa tipologia di reti risiede nel posizionamento delle funzioni di base (locali), ed è tipicamente risolto andando a clusterizzare i dati in ingresso posizionando poi le funzioni di base nei centri di tali cluster: - dati sovrapposti appartenenti a classi diverse sono assegnati alla stessa funzione di base; - la rete non è in grado di differenziare le classi semplicemente adattando i pesi dello strato di uscita. Per risolvere questo problema è possibile creare e posizionare dinamicamente nuove funzioni a base radiale in base alle prestazioni della rete. Il vantaggio più grande delle reti RBF rispetto alle reti MLP risiede nel fatto che **le funzioni di attivazione sono locali e, pertanto, permettono di interpretare correttamente dati al di fuori del set di addestramento come una “situazione nuova”, evitando decisioni non corrette.** **Le reti RBF sono utilizzate a livello diagnostico quando c’è elevata dimensionalità del problema e il set di addestramento è povero di informazioni.** # Metrica di un sistema di diagnosi dei guasti Le metriche delle prestazioni di un classificatore diagnostico vengono utilizzate per valutare la capacità di un classificatore di discernere tra più classi di guasto, e si basano sul concetto di matrice di confusione. In generale, una matrice di confusione è concepita per mettere in luce, sotto forma di tabella, il grado di correlazione tra diversi parametri (cioè caratteristiche, classi, ecc.). È una matrice quadrata composta da colonne e righe in cui le voci rappresentano il grado o la forza della correlazione tra l'elemento i e quello j. La diagonale rappresenta il numero di classificazioni corrette per ogni guasto nella colonna e i numeri fuori diagonale rappresentano le classificazioni errate. Idealmente, i numeri lungo la diagonale dovrebbero dominare. La matrice di confusione può essere compilata usando valori percentuali o il numero di casi reali visionati. Nella figura sotto presente si ha un esempio di matrice di confusione. ![](https://i.imgur.com/J4dEDpz.png) La probabilità di isolamento (tasso di isolamento del guasto o Fault Isolation Rate - FIR) è la percentuale di tutti i guasti dei componenti che il classificatore è in grado di isolare in modo non ambiguo. Viene calcolato come $$ FIR = \frac{A_T}{A_T+C_T}*100 \\ A_T = \sum_i A_i \\ C_T = \sum_i C_ii $$ dove - $A_i$ è il numero di guasti rilevati nel componente i-esimo che il sistema è in grado di isolare correttamente (i.e. numeri nella diagonale della matrice di confusione); - $C_i$ è il numero di guasti rilevati nel componente i-esimo che il sistema non è in grado di isolare correttamente (i.e. numeri fuori diagonale nella matrice di confusione). # Principi di inferenza <span style="color: green">**N.B.: l'unica cosa più o meno importante è che le regole di inferenza sono del tipo if else e si può usare la logica fuzzy, per il resto questa sezione il prof l'ha quasi totalmente skippata**</span> Per alcuni processi tecnologici le relazioni di base tra fault e sintomi sono almeno parzialmente note sotto forma di relazioni causali: fault -> eventi -> sintomi. L’individuazione di queste relazioni causali avviene a seguito di: - Fault Tree Analysis (FTA); - Event Tree Analysis (ETA). Le relazioni causali devono essere espresse nella forma di opportune regole al fine di eseguire la diagnosi (**IF \<condition\> THEN \<conclusion\>**) (\<condition\> è la premessa e contiene i sintomi, \<conclusion\> è la conclusione contiene eventi e fault). Se molti sintomi indicano un evento oppure un fault, i fatti (intesi come sintomi, eventi o fault) sono associati tramite le relazioni di AND e OR, in modo da avere regole del tipo **IF \<$s_1$ AND $s_2$\> THEN \<$e_1$\>, IF \<$e_1$ OR $s_2$\> THEN \<$f_1$\>** # Confronto tra tecniche di classificazione e inferenza <span style="color: green">**Il prof l'ha skippato, ma l'ho incluso comunque perché potrebbe servire**</span> ![](https://i.imgur.com/XnlLZyY.png) La valutazione delle performance è basata sull'esperienza e si riferisce a problemi di diagnosi tipici con parziale base di conoscenza e un set di dati di addestramento più o meno completo e di media complessità. # Qualità di un sistema di diagnosi guasti ## Prestazioni desiderabili di un sistema di diagnosi guasti Un sistema diagnostico dovrebbe possedere le seguenti caratteristiche. ### Veloce individuazione Un sistema di individuazione dei guasti dovrebbe rispondere velocemente al comparire di malfunzionamenti. Tuttavia, un tempo ridotto di individuazione di un guasto e performance accettabili durante il periodo di normale funzionamento sono specifiche contrastanti: un sistema che è progettato per individuare un guasto velocemente è anche molto sensibile ai disturbi in alta frequenza. Il trade-off tra falsi allarmi e tempo di individuazione di un guasto è quindi dipendente dal processo (e di conseguenza dal guasto da diagnosticare). ### Robustezza Un sistema di individuazione dei guasti deve essere robusto sia ai rumori sia alle incertezze. Garantire la robustezza implica scegliere soglie non troppo vicine allo zero, tuttavia ciò introduce ritardo nel tempo di individuazione. In maniera analoga a quanto visto prima è necessario bilanciare robustezza e velocità di individuazione. ### Adattabilità I processi, in generale, cambiano ed evolvono nel tempo a causa di modifiche degli ingressi, di cambiamenti strutturali, ecc ... Le condizioni operative dei processi si modificano anch’esse a causa dei disturbi, delle condizioni climatiche, modifiche del carico di lavoro, ecc ... Il sistema di individuazione dei guasti deve essere in grado di adattarsi a questi cambiamenti e fornire informazioni diagnostiche corrette man mano che nuove informazioni (i.e. misure) diventano disponibili ### Requisiti di modellazione La quantità di informazioni richieste per lo sviluppo di un modello è una caratteristica importante. Per lo sviluppo di sistemi veloci e facile da implementare per l’individuazione guasti in tempo reale è fondamentale che lo sforzo di modellazione sia minimo. ### Occupazione memoria e complessità di calcolo Tipicamente le soluzioni in tempo reale richiedono algoritmi e implementazioni computazionalmente leggere, ma che richiedono dall’altro lato un’occupazione notevole della memoria. Un sistema di individuazione dei guasti dovrebbe configurarsi come un buon bilanciamento tra occupazione della memoria e complessità di calcolo. ### Individuabilità di fault multipli L’abilità di individuare fault multipli è un requisito fondamentale ma al tempo stesso molto difficile da soddisfare. Ciò è dovuto al fatto che i fault sono di norma interagenti tra di loro: in un sistema generico, infatti, non è sempre possibile capire le relazioni di causa-effetto tra un fault e le variazioni a livello di variabili misurate, in quanto una variabile è influenzata da uno o più parametri e/o ingressi in maniera simile. Un’analisi esaustiva di tutte le tipologie di fault e dei loro effetti sulle variabili misurate, inoltre, sarebbe proibitivo per un sistema su larga scala. L’individuabilità di fault multipli, quindi, è fortemente dipendente dal processo in esame. ## Caratteristiche desiderabili di un sistema di diagnosi guasti ### Identificabilità di nuovi fault Rappresenta uno dei requisiti minimi di un sistema di diagnostica, ovvero la capacità di individuare un fault e stabilire se la causa è dovuta a un malfunzionamento noto oppure nuovo. Per capire se un guasto è dovuto a una causa nota oppure ignota è necessario fare affidamento sullo storico dei dati: con uno storico “infinito” di dati sarebbe sempre possibile avere una mappatura precisa della regione di funzionamento anormale. Nella realtà lo storico dei dati è limitato (e anche la conoscenza del modello) per cui la regione di funzionamento anormale è mappata in maniera parziale e possono verificarsi guasti dovuti a cause non note. È importante che il sistema diagnostico sia in grado di rilevare comunque fault le cui cause non sono note a priori, in modo da fornire quantomeno la distinzione tra funzionamento in condizione normale e condizione anormale. Bisogna notare che, per esempio, gli algoritmi di classificazione basati sull'intelligenza artificiale non sono progettati per identificare nuovi fault, mentre al contrario tecniche basate sul modello sono in grado di effettuare questa attività. ### Stima dell’errore di classificazione La stima dell’errore di classificazione permette all’utente di capire l’incertezza associata all’informazione diagnostica proveniente dal sistema: questa informazione aumenta la fiducia dell’utente nel sistema di diagnosi guasti. ### Chiarezza nella spiegazione Oltre a diagnosticare un fault, un sistema di diagnosi dovrebbe anche essere in grado di spiegare il modo in cui il fault si è originato e propagato nel sistema fino al suo rilevamento. Questo aspetto è particolarmente importante nei casi in cui il sistema diagnostico è parte di un sistema di supporto alle decisioni on-line, ovvero fornisce indicazioni ad un supervisore umano. Nei sistemi di supporto alle decisioni è utile che il sistema diagnostico sia in grado di fornire una valutazione automatica del guasti, affiancata tuttavia da una spiegazione logica del motivo per cui le altre ipotesi di guasto sono state scartate. # Conclusioni Il requisito minimo di un sistema di diagnosi dei guasti è quello di sapere individuare un fault, ovvero fornire una valutazione automatica che permetta di capire se il processo reale è in una condizione di funzionamento nominale oppure anomala. Un sistema di diagnosi dei guasti, tuttavia, deve permettere di determinare il tipo di guasto che si è verificato, con il massimo dei dettagli possibili: la dimensione, la posizione e l'istante di determinazione. Ciò può essere fatto andando a sfruttare la conoscenza del processo, sia essa di tipo analitico, euristico oppure semplicemente basata sull’analisi storica del funzionamento. A partire dalla conoscenza pregressa è possibile individuare caratteristiche salienti (feature) e ottenere dei sintomi (variabili decisionali che mostrano lo scostamento delle feature dalle condizioni di funzionamento usuali). L’analisi dei sintomi rappresenta la diagnosi dei guasti vera e propria: essa può essere fatta sfruttando tutta o parte della conoscenza del processo (si parla in questo caso di inferenza) oppure andando semplicemente ad analizzare i sintomi che vengono generati (si parla in questo caso di classificazione). La bontà di un sistema di diagnosi può essere valutata andando ad analizzare quante delle caratteristiche desiderabili sono soddisfatte (ad esempio la fault isolation rate). Si tenga sempre presente che non esiste un sistema di diagnosi “ottimo”! I metodi di diagnosi visti sono utili per sistemi complessi per i quali: - non sono note né le relazioni quantitative né quelle qualitative (classificazione); - sono note le sole relazioni qualitative causa-effetto (inferenza). Nei sistemi più semplici per i quali si dispone di un modello preciso è possibile legare i parametri di modello ai parametri reali, e a quel punto sfruttare le relazioni matematiche disponibili: questo approccio è dipendente dal processo e non esiste una metodologia unica. I metodi di classificazione permettono di diagnosticare un fault a partire da un set di dati di addestramento: sono poco trasparenti e richiedono uno sforzo di progettazione limitato. I metodi di inferenza per la diagnosi permettono di diagnosticare un fault sfruttando la conoscenza delle relazioni causali che regolano il funzionamento del sistema: sono trasparenti, ma richiedono uno sforzo di progettazione elevato. Quando possibile è preferibile integrare i metodi di inferenza tramite tecniche proprie del mondo della classificazione: in questo modo le relazioni causali sono integrate con le informazioni provenienti dallo storico dei dati disponibili del processo reale. Tra le tecniche “ibride” la più diffusa è quella di tipo neuro-fuzzy. # Domande di riepilogo - Elencare le fasi della diagnosi dei guasti. - Rilevamento, isolamento, identificazione da queste individuo le classi di guasto - Creare uno schema di funzionamento della diagnosi dei guasti, mettendo in risalto la parte di fault detection e quella di classificazione. - Schema di funzionamento non rigido - Individuare, all’interno dello schema creato, lo spazio delle misure, delle feature, dei sintomi e delle classi. - Elencare le caratteristiche che dovrebbe possedere un sistema di diagnosi dei guasti mettendo in risalto i trade-off associati ad ognuna di esse. - Descrivere il funzionamento del classificatore di Bayes. - Descrivere il funzionamento del classificatore geometrico. - Descrivere il principio di funzionamento dei classificatori basati su reti neurali. (descrizione sommaria per quanto riguarda i classificatori)