---
# System prepended metadata

title: 12 - Individuazione guasti con tecniche basate sui dati
tags: [Misure]

---

---
title: 12 - Individuazione guasti con tecniche basate sui dati
tags: Misure
info: Lezioni 20-21 ottobre
description: Blocco slide parte 12
---

# Introduzione

Per processi di larga scala, quali ad esempio gli impianti chimici, lo sviluppo di metodi di individuazione guasti basati su modello richiedono uno sforzo considerevole (e.g. il numero di sotto processi da modellare o di variabili da considerare è eccessivo). Quando si hanno a disposizione molte misure di molte variabili, ci si può chiedere se esistono delle ridondanze in esse, ovvero se è possibile che alcune di queste variabili sono tra loro correlate in quanto stanno misurando “la stessa cosa”.

Le tecniche di individuazione dei guasti basate sui dati (o data driven) cercano le ridondanze tra i segnali disponibili allo scopo di ridurre la dimensione del problema e generare residui diagnostici utili per l’individuazione del fault. Questi metodi sono efficaci tutte le volte in cui le misure disponibili di un processo reale sono altamente correlate le une alle altre. La tecnica descritta in questa lezione è detta **Principal Component Analysis (PCA)** ed è una delle tecniche data driven più utilizzate. La PCA non si basa nè sui modelli di segnale nè sui modelli del processo, per cui non c'è richiesta di informazione a priori, servono solo dei dati.

# Principio di funzionamento della PCA

La Principal Component Analysis (PCA o analisi delle componenti principali) è una tecnica che permette di ridurre il numero delle variabili misurate del processo mediante la proiezione delle stesse su un numero limitato di componenti (direzioni) dette appunto componenti principali. Esistono diverse varianti della PCA: quella descritta nella presente lezione è di tipo lineare e statico (i.e. trattazione classica).

La PCA riduce la dimensionalità del problema andando a creare un numero limitato di variabili artificiali (componenti principali) che preservano al loro interno la stessa “variabilità” che è presente nel set di dati originali.

È necessario “uniformare” i dati in modo che le loro proprietà statistiche siano confrontabili.  Per le variabili uniformate si utilizza la varianza come misura di variabilità: la PCA opera una trasformazione delle variabili originali in modo da ridurne il numero, massimizzando al tempo stesso la varianza delle variabili trasformate.

L’algoritmo ha un grado di libertà nella scelta del numero di variabili trasformate da utilizzare per l’analisi.

## Prerequisiti: varianza e correlazione

**Varianza:** è un indice del divario che intercorre tra le misure e si calcola come

$$
\sigma_x^2 = \frac{1}{n}\sum_{i=1}^n(x_i-\bar{x})^2
$$

**Correlazione:** è un indice che misura quanto due variabili siano tra loro dipendenti; la correlazione lineare (detta anche di Pearson) si calcola come

$$
\rho(x,y) = \frac{\frac{1}{n}\sum_{i=1}^n(x_i-\bar{x})(y_i-\bar{y})}{\sigma_x\sigma_y}
$$

Questo valore varia tra -1 e 1: se è uguale a -1 o 1 si ha una perfetta correlazione, se è uguale a 0 si ha l'assenza di correlazione.

**Covarianza:** è un indice che misura quanto due variabili cambino in maniera congiunta; la covarianza si calcola come

$$
\rho(x,y) = \frac{1}{n}\sum_{i=1}^n(x_i-\bar{x})(y_i-\bar{y})
$$

Dove $\bar{x}$ e $\bar{y}$ sono le medie associate alle variabili $x$ e $y$.

## Esempio di applicazione

![](https://i.imgur.com/kklqSTe.png)

![](https://i.imgur.com/XejHp64.png)

Nella figura sopra presente si hanno 20 campioni e 5 variabili. Quando si calcolano le correlazioni tra più variabili, esse sono di norma riassunte in una tabella nella forma di matrice di correlazione. In riferimento all’esempio di 5 variabili e 20 osservazioni, si ottiene la matrice di correlazione seguente: 

![](https://i.imgur.com/07XdsP3.png)

Il punto in cui una riga e una colonna si intersecano mostra la correlazione tra le due variabili corrispondenti. In questo caso si può vedere che esistono due gruppi di variabili tra loro correlate:
- Le variabili $x_1,x_2,x_3$ hanno una correlazione tra di loro superiore a 0.7
- Le variabili $x_4,x_5$ hanno una correlazione tra di loro pari o superiore a 0.95

Si potrebbe allora ipotizzare la possibilità di ridurre queste cinque componenti in due componenti principali.

Bisogna, tuttavia, fare attenzione alle unità di misura associate alle diverse variabili, in quanto possono variare di molto. Per risolvere il problema, generalmente si effettua una standardizzazione del dataset.

## Eterogeneità e standardizzazione dei dati

Un set di dati contenente molteplici misure di molteplici variabili può essere analizzato in due modi:
- considerando l’insieme delle misure di tutte le variabili in un dato istante (i.e. righe della matrice del set di dati di dimensione $m$);
- considerando una variabile alla volta contenente tutte le misurazioni (i.e. colonne della matrice del set di dati di dimensione $N$);

Si definisce la distanza d tra due soggetti s (i.e. righe della matrice di correlazione) come

$$
d^2(s_i,s_{i'}) = ||s_i - s_{i'}|| = \sum_{j=1}^m (x_{ij} - x_{i'j})^2
$$

Dove $x_{ij}$ indica l'elemento $i,j$ della tabella/matrice che rappresenta il set di dati.

La PCA è sensibile alla scalatura, cioè se si moltiplica una variabile per uno scalare si ottengono risultati differenti: questo implica che le componenti principali sono dipendenti dall’unità di misura delle variabili originali e dal range di valori che esse assumono. Per questo motivo si opera una standardizzazione delle misure:

$$
x_i^* = \frac{x_i - \bar{x}}{\sigma_x}
$$

Le nuove variabili hanno valor medio nullo e deviazione standard normalizzata.

# Formulazione matematica del problema

Sia data la matrice di dati originali $X=\begin{bmatrix} \vec x_1 & \vec x_2 & ... & \vec x_m \end{bmatrix}$ composta da $m$ variabili vettoriali di $N$ misure $\vec x_i^T=\begin{bmatrix} x_i(1) & x_i(2) & ... & x_i(N) \end{bmatrix}$.

Si vuole trovare una nuova matrice dei dati trasformati $T=\begin{bmatrix} \vec t_1 & \vec t_2 & ... & \vec t_r \end{bmatrix}$ composta da $r$ variabili vettoriali di $N$ misure $\vec t_i^T=\begin{bmatrix} t_i(1) & t_i(2) & ... & t_i(N) \end{bmatrix}$ tale che $r \leq m$.

È necessario individuare una matrice di trasformazione $P=\begin{bmatrix} \vec p_1 & \vec p_2 & ... & \vec p_r \end{bmatrix}$ tale per cui
- $T_{[N\times r]}=X_{[N\times m]}P_{[m \times r]}$
- $P$ è ortonormale, cioè $P^T_{[r \times m]}P_{[m \times r]}=I_{[r\times r]}$

N.B.: Poichè $P$ non è quadrata non è detto che $P^T_{[m \times r]}P_{[r \times m]}$ sia l'identità.

La trasformazione crea una matrice di nuovi dati $T=\begin{bmatrix} t_1 & t_2 & ... & t_r \end{bmatrix}$, dove:
- $\vec t_j = X \vec p_j$
- $\vec t_j^T=\begin{bmatrix} t_j(1) & t_j(2) & ... & t_j(N) \end{bmatrix}$

Il problema che si vuole risolvere è quello di massimizzare la varianza delle nuove variabili il che corrisponde, considerando il valor medio nullo, a risolvere

$$
\max f(p_j) =\max \vec t_j^T \vec t_j = \max (X \vec p_j)^TX \vec p_j = \max \vec p_j^TX^TX\vec p_j = \ \text{tale che} \ \vec p_j^T\vec p_j = 1$$

($p_j^Tp_j = 1$ visto che $P$ costituisce una base ortonormale. È il vincolo).

**N.B.: l'obiettivo di massimizzazione della varianza sopra riportata deriva dal fatto che** $\sigma_t^2 = \frac{1}{N}\sum_{i=1}^{N}(t_j(i)-\bar{t_j})^2=\frac{1}{N}\sum_{i=1}^{N}t_j(i)^2$ (essendo la media nulla, ho standardizzato)

Considerato che $\vec p_j^TX^TX \vec p_j = \vec p_j^T\lambda_j\vec p_j$, con $\lambda_j$ autovalori di $X^TX$ (che, a sua volta, è la **matrice di correlazione**), segue che la trasformazione che massimizza la varianza delle nuove variabili è associata agli autovalori della matrice $X^TX$: ad autovalori più grandi corrispondono nuove variabili dalla varianza più grande.

Facendo uso del metodo dei moltiplicatori di Lagrange per risolvere il problema di ottimizzazione, infatti, si ottiene che:

$$
V= f(p_j) - \lambda_j g(p_j) =\vec p_j^TX^TX\vec p_j - \lambda_j (\vec p_j^T \vec p_j - 1) \\
f(p_j) = t_j^Tt_j = (Xp_j)^TXp_j = p_j^TX^TXp_j \\
g(p_j) = p_j^T p_j - 1
$$

Per cui si vuole risolvere:

$$
\frac{\partial V}{\partial p_j} = 2X^TXp_j - 2\lambda_j p_j = 0
$$

E in particolare, l'uguaglianza si verifica se e solo se $(X^TX - \lambda_j I)p_j = 0$, per cui la soluzione è data dagli autovalori di $X$.

L'algoritmo per la PCA, quindi, è descritto nella seguente figura:

![](https://i.imgur.com/nMXvVhi.png)

L'unico grado di libertà è il numero di autovalori da prendere.

## Esempio di applicazione

![](https://i.imgur.com/A6fSDMq.png)

# Criteri per la scelta del numero di componenti principali

Nella PCA il numero di componenti principali estratte è uguale al numero di variabili che sono analizzate (sotto la condizione generale N>p). Poiché la PCA ha lo scopo di ridurre il numero di variabili analizzate, è necessario un criterio per scegliere quante componenti principali andare ad includere nell’analisi: tipicamente solo le prime componenti sono importanti, in quanto al diminuire dell’autovalore associato diminuisce anche il contributo di varianza della singola componente e, quindi, la sua importanza.

In riferimento all’esempio con 5 variabili e 20 osservazioni si ha la seguente tabella che descrive la varianza associata a ogni componente principale:

![](https://i.imgur.com/qfo9JHf.png)

Le componenti principali più importanti sono quelli a cui è associato un autovalore sufficientemente alto.

I criteri di scelta principali sono quindi tre:
- **Criterio di Kaiser:** Sono selezionate solo le componenti principali con autovalori maggiori di 1: tali componenti infatti hanno un valore di varianza superiore alla media aritmetica della varianza associata alle variabili di partenza
- **Test Cattell scree:** Si basa sul seguente algoritmo:
    1. Si graficano gli autovalori rispetto al numero di componente;
    2. Si individua il segmento a maggiore pendenza negativa (gli autovalori sono decrescenti monotonicamente)
    3. Si prende come ultima componente principale quella associata al punto più alto del segmento a maggior pendenza
![](https://i.imgur.com/9mn9rTN.png)
- **Percentuale cumulativa:** Si sceglie come ultima componente quella associata alla percentuale cumulativa di varianza superiore al 60%

# PCA dinamica

La PCA può essere applicata anche a misure generate da un processo dinamico in condizioni di regime permanente: in questo caso la dinamica può essere introdotta utilizzando serie temporali.

![](https://i.imgur.com/Ve66zuz.png)

Si hanno, assieme ai valori, anche le rispettive derivate, in maniera da poter descrivere la dinamica del sistema.

# PCA per l'individuazione dei guasti

Le tecniche di individuazione dei guasti basate sui dati (o data driven) cercano le ridondanze tra i segnali disponibili allo scopo di ridurre la dimensione del problema e generare residui diagnostici utili per l’individuazione dei fault. Queste tecniche sono efficaci tutte le volte in cui le misure disponibili di un processo reale sono altamente correlate le une alle altre, ma solo un ridotto numero di eventi (e.g. fault) produce effetti su di esse.

Tra le tecniche data driven è stata analizzata la Principal Component Analysis (PCA), la quale opera una proiezione delle variabili originali allo scopo di estrarre un numero ridotto di variabili artificiali (le componenti principali) le quali conservano gran parte della variabilità posseduta dal set di dati partenza.

La PCA può essere applicata in campo diagnostico facendo uso di 3 diversi schemi:
- costruzione di residui a partire dalle variabili artificiali;
- costruzione di residui a partire dalle variabili artificiali trasformate nel dominio originale;
- confronto tra variabili artificiali trasformate nel dominio originale e variabili originali;
tutte e 3 le tecniche verranno viste per il caso online

## Costruzione dei residui a partire dalle variabili artificiali

![](https://i.imgur.com/Y91qx2r.png)

1. Si individua una finestra temporale fissa
2. Si calcola il valor medio delle variabili artificiali all’interno di tale finestra (funzionamento fault-free):
$$
\mu_j(k)=E[t_j(k)]
$$
3. Si calcola la varianza delle variabili artificiali all’interno della finestra (funzionamento fault-free):
$$
\sigma_j(k)^2=E[(t_j(k)-\mu_j(k))^2]
$$
4. Si confronta la varianza calcolata nel caso fault-free (finestra di tempo fissa) con quella calcolate in maniera dinamica.

L’interpretazione dei risultati può essere problematica se il fault modifica la varianza nelle variabili scartate dalla PCA. Inoltre, spesso, non riusciamo a capire precisamente cosa non va, essendo le componenti considerate delle variabili lontane da misure reali o fisiche. Ciò rende questo metodo poco utile a livello diagnostico.

## Costruzione di residui a partire dalle variabili artificiali trasformate

![](https://i.imgur.com/tHhXsAi.png)

1. Si individua una finestra temporale fissa
2. Si calcola il valor medio delle variabili trasformate all’interno di tale finestra (funzionamento fault-free):
$$
\mu_j(k)=E[x_j^*(k)]
$$
3. Si calcola la varianza delle variabili trasformate all’interno della finestra (funzionamento fault-free):
$$
\sigma_j(k)^2=E[(x_j^*(k)-\mu_j(k))^2]
$$
4. Si confronta la varianza calcolata nel caso fault-free (finestra di tempo fissa) con quella calcolate in maniera dinamica.

L’interpretazione dei risultati è più diretta in quanto c’è un legame alle variabili originali del processo.

## Confronto tra variabili artificiali trasformate e variabili originali

![](https://i.imgur.com/sMK1TAA.png)

1. Si individua una finestra temporale fissa
2. Si calcola il residuo come differenza tra le variabili originali e le variabili trasformate nel dominio di partenza:
$$
r_j(k)=x_j(k)-x_j^*(k)
$$
3. Si calcolano il valor medio e la varianza del residuo nel tempo all’interno della finestra:
$$
\mu_j(k)=E[r_j(k)] \\
\sigma_j(k)^2=E[(r_j(k)-\mu_j(k))^2]
$$
4. Si applicano le tecniche di individuazione del superamento della soglia direttamente alla varianza del residuo, confrontando il valore ottenuto all’interno della finestra (fault-free) con quello calcolato dinamicamente.

## Esempio di diagnosi con PCA dinamica

### Problema

Sia dato un sistema SISO in cui le variabili acquisite (misurate) sono $\begin{bmatrix}u(t) & \dot{y}(t) & y(t) \end{bmatrix}$: si vuole applicare la PCA online per individuare possibili guasti sulle variabili misurate

![](https://i.imgur.com/rbVuBcQ.png)

(si nota la presenza di un rumore nel modello simulato $n(s)$)

### Soluzione

In una prima fase, ad esempio 10 secondi, si considera un certo numero di dati campionando le variabili, ad esempio con un periodo di 0.02 secondi (per ogni variabile si prendono 500 campioni): questo permette di valutare le condizioni nominali di funzionamento (learning phase). Da questi dati si calcola la matrice di trasformazione $P$ e si estraggono le componenti principali (in riferimento all’esempio in oggetto si possono identificare 2 componenti principali, rispetto alle 3 variabili iniziali). Si calcola quindi la trasformazione nello spazio di origine, istante per istante:
$$
x^{*T}(k)=x^T(k)PP^T
$$

Si determina il vettore dei residui r come la differenza tra le variabili originali e quelle trasformate nello spazio di origine, successivamente si individua un indice quadratico per la valutazione delle deviazione dalle condizioni nominali
$$
r'(k)=r^T(k)r(k)=\sum_{i=1}^3r_i^2(k)
$$

(si usa l'indice quadratico al posto della varianza per evitare di calcolare anche il valore medio, essendo questo incluso nell'indice)

Sono riportate le simulazioni nel caso di guasto che comporti una variazione della costante di tempo, del guadagno e l’introduzione di un off-set di uscita a partire da t=10s.

![](https://i.imgur.com/fkESWYu.png)

Si può notare come al variare della costante di tempo $T$ la varianza associata al residuo aumenta, indicando un possibile guasto. La stessa cosa avviene variando il guadagno e/o il ritardo.

# Conclusioni

La PCA è una tecnica che permette di ridurre il numero di variabili (e.g. misure) da analizzare, operando una proiezione su un numero ridotto di componenti, dette principali.

Tale proiezione massimizza il contenuto di varianza delle componenti principali (dette anche variabili artificiali).

L’algoritmo ha un grado di libertà nella scelta del numero di componenti principali da estrarre: tale scelta è tipicamente fatta ricorrendo a tecniche che valutano la varianza media, il gradiente della varianza oppure la varianza cumulativa. 

Trasformando nuovamente le componenti principali nello spazio originale è possibile ottenere un set di dati “filtrato” che è meno sensibile al contenuto di rumore.

Questo nuovo set di dati può essere utilizzato per creare tecniche di individuazione dei guasti: dall’analisi della varianza del residuo è possibile capire se sul sistema stia o meno agendo un guasto.

La PCA può essere applicata anche online, andando a scegliere una finestra temporale di corretto funzionamento del sistema da utilizzare per la fase di apprendimento: i parametri calcolati all’interno della finestra sono poi confrontati con quelli calcolati in tempo reale.

# Domande di riepilogo

- Spiegare in quali ambiti è preferibile utilizzare le tecniche di individuazione dei guasti basate sui dati (data driven) e perché.
    - Se non ho un modello e ho tanti dati (e non posso usare approcci basati sul segnale) posso provare a ridurre la dimensionalità del problema ed effettuare la diagnosi sui nuovi valori ottenuti
- Dare una definizione della tecnica PCA.
    - Descrizione algoritmo PCA
- Stabilire quanti gradi di libertà sono a disposizione del progettista nella creazione ed estrazione delle componenti principali.
    - In questa tipologia di PCA è 1, ma ci sono altri tipi di PCA in cui sono presenti molti parametri da scegliere
- Descrivere come scegliere i/il grado/i di libertà per l’estrazione delle componenti principali
    - Si vogliono prendere solo le componenti che variano maggiormente nel dataset di riferimento
- Elencare le diverse modalità con cui è possibile applicare la PCA per l’individuazione di guasti.
    - Tre modalità per l'individuazione dei guasti, sopra descritti
- Individuare i limiti della PCA applicata nella diagnosi.
    - Rispetto alle tecniche model based, si ha una maggior difficolta nel trovare il punto in cui occorre il guasto (anche se utilizzando l'antitrasformata è in parte risolvibile), il residuo che si genera è generalmente più rumoroso (per cui la sogliatura non è banale), e spesso viene usata anche quando si ha informazione sul processo (andando a buttare informazione che è effettivamente rilevante). L'ultimo difetto non è formale, ma deriva dall'utilizzo "a forza bruta" della tecnica, senza valutare i vantaggi.