System Identification Toolbox parte 3/3


Se hai perso la prima parte clicca su: system identification toolbox parte 1/3
Se hai perso la seconda parte clicca su: system identification toolbox parte 2/3
Note: Clicca sulle immagini per ingrandirle

Scarica l’ebook GRATUITO

—————————————————————————————————————

4) VALIDAZIONE
Effettuata la stima con diversi modelli, è possibile analizzarne le prestazioni, verificando che il modello riproduca il comportamento del sistema con accuratezza. Il toolbox offre diversi approcci per validare i modelli:

Model Output
Compara l’uscita del predittore del modello (stimato minimizzando l’errore di predizione secondo il criterio “best fit”) con l’uscita del processo misurata; viene quindi effettuata una simulazione del modello atta a confrontare le uscite partendo dagli stessi ingressi.

Analisi dei Residui
I residui sono le differenze tra l’uscita predetta del modello ad un passo e l’uscita relativa ai dati di validazione; essi rappresentano la parte dei dati di validazione che non è stata descritta dal modello.

L’analisi dei residui consiste in due test

[*] di bianchezza
[*] di indipendenza.

Secondo il test di bianchezza, un buon modello ha la funzione di autocorrelazione residua (L’autocorrelazione definisce il grado di dipendenza tra i valori assunti da una funzione campionata nel suo dominio in ascissa,), all’interno dell’intervallo di confidenza delle stime corrispondenti, ciò indica che i residui sono incorrelati ovvero indipendenti. L’intervallo di confidenza corrisponde al campo di valori dei residui, con una probabilità specifica (settabile manualmente) di essere statisticamente irrilevante per il sistema.

Secondo il test di indipendenza, i residui di un buon modello, sono incorrelati con gli ingressi passati. Correlazione tra ingressi, indica che il modello non descrive come parte dell’uscita è connessa al corrispondente ingresso. Ad esempio un picco al di fuori dell’intervallo di confidenza per un ritardo k, significa che l’uscita y(t) originata dall’input u(t-k) non è propriamente descritta dal modello. L’analisi dei residui grafica informazioni differenti a seconda che i dati di validazioni appartengano al dominio del tempo o della frequenza. Nel caso di dati nel dominio del tempo si hanno due grafici:

1) Funzione di autocorrelazione dei residui per ogni uscita.
2) Cross-Correlazione tra l’ingresso e i residui per ogni coppia ingresso-uscita.

Il primo grafico mostra l’autocorrelazione dei residui per l’uscita (test di bianchezza). L’asse delle ascisse corrisponde al numero di ritardi, ovvero la differenza temporale (in campioni) tra i segnali, con cui si stima la correlazione. Le linee orizzontali tratteggiate rappresentano l’intervallo di confidenza. Qualsiasi fluttuazione all’interno dell’intervallo di confidenza è da considerare insignificante; un buon modello deve avere la funzione di autocorrelazione dei residui all’interno dell’intervallo di confidenza, a testimonianza del fatto che i residui non sono correlati.

Il secondo grafico mostra la cross-correlazione dei residui con l’input. Un buon modello deve avere i residui in-correlati con gli ingressi passati. Prove di correlazione indicano che il modello non descrive come l’uscita si è generata a partire dall’ingresso corrispondente

E’ possibile effettuare il test di bianchezza anche da linea di comando con la funzione
>>resid(modello\_stimato,data\_set)

Tale funzione calcola l’errore di predizione commesso dal predittore associato al modello e ne valuta la funzione di autocorrelazione. Il grafico mostra i valori di tale funzione rispetto ad un intervallo di confidenza del 99%. Se l’errore è bianco, ci si aspetta che tutti i valori della funzione di autocorrelazione, ad eccezione del primo, siano nulli, o comunque sufficientemente piccoli da restare all’interno dell’intervallo di confidenza.

Poli e Zeri
La seguente figura mostra il grafico poli/zeri con intervalli di confidenza. Le X indicano i poli,0 indicano gli zeri

L’equazione generale di un sistema dinamico lineare è data da:

y(t)=G(z)u(t)+H(z)\xi(t)

In questa equazione G è una funzione che cattura la dinamica del sistema, v invece è un termine additivo rappresentate il rumore. I poli sono le radici al denominatore della funzione di trasferimento di G, essi hanno un’influenza diretta nella dinamica del sistema. Gli zeri sono le radici al numeratore di G. Se si è in grado di stimare anche il modello del rumore H, è possibile visualizzare in tale grafico anche le radici di H.

Zeri e Poli sono modi equivalenti per descrivere i coefficienti dell’equazioni differenziali rappresentanti una famiglia di modelli, come ad esempio gli ARX. I poli sono associati all’uscita, gli zeri all’ingresso dell’equazione.

Per creare un grafico poli/zeri spuntare la casella Zeros and poles nell’area Model Views; per includere/escludere un modello nel grafico basta cliccare sull’icona corrispondente del modello.

Nel grafico è possibile visualizzare l’intervallo di confidenza, esso corrisponde al campo di valori che il polo/zero assume con una specifica probabilità di essere effettivamente quel polo/zero del sistema. Il toolbox utilizza la stima dell’incertezza nei parametri del modello per calcolare gli intervalli di confidenza assumendo, che le stime abbiano una distribuzione gaussiana. Ad esempio per un intervallo di confidenza del 95%, la regione intorno al valore nominale del polo/zero, rappresenta il range di valori che ha una probabilità del 95% di essere un vero polo/zero del sistema

Il diagramma poli/zeri può essere utilizzato per capire se ridurre o meno l’ordine del modello. Quando gli intervalli di confidenza per una coppia polo-zero si sovrappongono, ciò indica una possibile cancellazione polo-zero. Se ciò dovesse accade occorre stimare un modello con ordine inferiore, in quanto l’imprecisione del modello è dovuta ad una sua sovrastima. D’altra parte se si risolve il problema della sovrapposizione, per validare il modello occorre sempre analizzare il model output e i residui. Se vi è una cancellazione, ma riducendo l’ordine del modello si rovina il fitting del modello ai dati, è consigliabile in questo caso scegliere una famiglia di modelli diversi che disaccoppia la dinamica del sistema dall’errore: Armax,OB(Output Error) oppure BJ (Box Jenkins) aventi come ordine dei polinomi A ed F pari al numero di poli non cancellati (non sovrapposti).

Risposta Armonica
E’ possibile visualizzare la risposta in frequenza di un modello al fine di conoscere le caratteristiche della dinamica del modello lineare tra cui la frequenza di picco della risposta ed i margini di stabilità La risposta in frequenza di un modello lineare descrive come il modello reagisce ad ingressi sinusoidali. Se l’ingresso u(t) è una sinusoide di una certa frequenza, l’uscita è una sinusoide della stessa frequenza ma con ampiezza e fase diversi. La risposta armonica è utile nel processo di validazione, in quanto può essere confrontata con la “frequency function” del data-set, al fine di valutarne la corrispondenza.

5)VISUALIZZAZIONE VALORI PARAMETRI MODELLO
Per ogni modello stimato è possibile visualizzarne i parametri numerici, cliccando con il tasto destro sull’icona di un modello presente presente nell’area “model Views”.

Nel precedente grafico nell’area non editabile sono presenti i seguenti valori:

A(q) = 1 - 0.9855 (+-0.04557) q^{-1} + 0.08581 (+-0.06312) q^{-2}  + 0.04395 (+-0.05794) q^{-3} + 0.02094 (+-0.02297) q^{-4} B(q) = 0.06636 (+-0.001592) q^{-3} + 0.06104 (+-0.003468) q^{-4}+ 0.02092 (+-0.004329) q^{-5} + 0.004001 (+-0.003205) q^{-6}

 

essi corrispondono alla seguente equazione alle differenze

y(t)-0.9855y(t-1)+0.08581y(t-2)+0.04395y(t-3)+0.02094y(t-4)=0.06636u(t-3)+0.06104u(t-4)+0.02092u(t-5)+0.004001u(t-6)

 

Per visualizzare le incertezze dei parametri è necessario importare il modello in matlab, per farlo basta cliccare su Present nel dialog box data/model info, immediatamente nella command window di matlab si presenteranno le informazioni del modello, ma non l’oggetto.

Consideriamo il seguente modello in formato IDPOLY

Discrete-time IDPOLY model (ARX551):A(q)y(t) = B(q)u(t) + e(t)

A(q) = 1 – 1.147 (+-0.07712)q^{-1} + 0.4168 (+-0.1138) q^{-2}
– 0.2732 (+-0.09342) q^{-3} – 0.04941 (+-0.05162) q^{-4} + 0.1218 (+-0.02961) q^{-5}

B(q) = 0.9995(+-0.004532)q^{-1} – 0.4364(+-0.07727)q^{-2} – 0.01867(+-0.08147)q^{-3} – 0.1771(+-0.06403)q^{-4} – 0.2479(+-0.04995)q^{-5}

Estimated using ARX from data set identData  Loss function 0.0218787 and FPE 0.0250042

La bontà del modello si valuta analizzando:
[*] gli indici Loss Function e FPE che devono essere minimi.
[*] varianza dei parametri dell’equazione alle differenze (i valori di incertezza presenti per ogni termine q) , essa deve essere di ordine più piccolo rispetto al parametro stesso. Se varianza e rispettivo parametro sono dello stesso ordine di grandezza, ciò significa che il parametro potrebbe cancellarsi, e che quindi il modello ha al suo interno parte del disturbo.

Nel caso in esame gli indici loss function e FPE sono abbastanza buoni tuttavia, in A(q) i termini relativi a q^{-2} e q^{-4} hanno la varianza con lo stesso ordine di grandezza del parametro stesso, di conseguenza tali parametri potrebbero andare persi. Stesso discorso per B(q) per il termine q^{-3}. Fatte queste considerazioni il modello ARX(551) in tale fase dell’identificazione può essere scartato.

Esportare il modello nel Workspace
Per esportare il modello nel workspace come oggetto, basta trascinare il modello nella casella denominata “To Workspace”, a questo punto verrà creato un oggetto appartenente alla classe idpoly, ed è possibile effettuare diverse operazioni su di esso come ad esempio la trasformazione del modello in un oggetto LTI con rappresentazione in spazio di stato o ingresso uscita, i comandi da utilizzare sono
ss(nome modello) e tf(nome modello)

CONSIDERAZIONI FINALI E SUGGERIMENTI
Il processo di identificazione, soprattutto nella fase di definizione della struttura del modello, è basato su strategie trial-and-error. Proprio per questo, l’Identification Toolbox di Matlab® permette di organizzare il lavoro in sessioni. Con l’esperienza, già dall’analisi visiva si può intuire se un certo modello è “promettente” o meno. Nel primo caso, con piccoli aggiustamenti relativi all’ordine del sistema o alla caratterizzazione dei disturbi, si giunge generalmente ad un modello dalle prestazioni soddisfacenti. In generale è opportuno fare attenzione a degli accorgimenti:

[*] privilegiare la semplicità del modello.
[*] le buone prestazioni vanno richieste su bande ristrette di frequenza, per coprire una banda grande si consiglia l’utilizzo di più modelli; inoltre la raccolta dei dati va eseguita in condizioni simili a quelle previste di lavoro; utilizzare ingressi persistentemente eccitanti.
[*] prima di stimare i parametri del modello occorre pre-elaborare il data-set se necessario
[*] occorre scegliere opportunamente il periodo di campionamento, esso influisce sulla qualità dell’informazione raccolta.

 

Riferimenti
MathWorks

Francesco Celiberti

Ciao a tutti,


mi chiamo Francesco, sono laureato in Ing. Informatica e dell’Automazione. Sono attualmente coinvolto in un progetto di ricerca Europeo, MOTORIST. www.motorist-ptw.eu


Tags: ,
By Francesco Celiberti | luglio 30th, 2011 | LEAVE A COMMENT