CAPITOLO 1 . IL PROBLEMA TRATTATO
4
istante influenza le uscite successive) definito a tempo discreto che può essere rappresentato da
un’equazione alle differenze del tipo:
y((k + n)T) + a
n−1
y((k + n − 1)T) + · · · + a
1
y((k + 1)T) + a
0
y(kT) =
b
m
u((k + m)T) + b
m−1
u((k + m − 1)T) + · · · + b
1
u((k + 1)T) + b
0
u(kT)
1.2 Strumenti utilizzati
Il principale strumento utilizzato per l’analisi di sistemi dinamici ed anche per l’identificazione
dei modelli è il software Matlab®, un programma interattivo basato sui sistemi matriciali, per
applicazioni computazionali scientifiche di tipo numerico, gestibile principalmente da linea di
comando. Per quanto riguarda quest’ultimo campo è stata sviluppata una particolare
applicazione grafica detta GUI, Graphical User Interface, contenuta nel SIT, System
Identification Toolbox.
Digitando da linea di comando “ident” si accede comodamente alla GUI del SIT e da qui si
parte per importare ed analizzare i dati che si vuole modellizzare.
Per quanto riguarda invece l’analisi vera e propria dei sistemi dinamici e la progettazione di reti
correttrici/regolatori si utilizzano altre due principali applicazioni sviluppate sempre per
Matlab®: la prima, TFI, Transfer Function Interpreter sviluppato da A. Civolani e G. Marro è
un tool creato per gestire modelli generici, lineari e multivariabile; la seconda, LTIVIEW, un
altro tool creato per vedere il comportamento dinamico dei sistemi con vari ingressi (gradino o
impulso) e i diagrammi poli-zeri. Successivamente tratterò più in dettaglio il loro utilizzo.
1.3 Modelli utilizzati
Come già accennato, lo scopo dell’identificazione è trovare il modello che riproduce
ottimamente sequenze di campioni di uscita se soggetto a particolari ingressi.
Prima di tutto definiamo il concetto di modello: è una rappresentazione matematica del sistema
reale che pur non descrivendo esattamente il suo comportamento, permette di formulare in
maniera matematica il problema di controllo. La complessità del modello dipende dal sistema
che si deve descrivere e dall’uso che se ne intende fare.
CAPITOLO 1 . IL PROBLEMA TRATTATO
5
Esistono due tipi di modelli nell’identificazione: quelli parametrici e quelli non parametrici; i
primi consistono in un tentativo di stima legato ad specifico modello definito dall’utente,
mentre i secondi si riferiscono alla stima relativa a segnali generici come il segnale “gradino” o
quello “impulso”.
Solitamente l’analisi parte con una stima non parametrica per valutare il comportamento
generale del sistema. Poi si passa ai modelli parametrici iniziando dalla famiglia ARX,
acronimo di AutoRegressive with eXogeneous input, che significa un modello composto da una
parte autoregressiva ed una esogena, come vedremo nel prossimo paragrafo.
1.3.1 Modelli ARX
Questo modello è caratterizzato da un errore d'equazione e(t), rappresentato da un processo
stocastico bianco con valore medio nullo, e da un ordine n che ne indica la memoria:
y(t)= -α
n
y(t-1) + … -y(t-n) + β
n
u (t-1) + …… + β
1
u(t-n) + e(t)
dove i parametri α sono relativi alla memoria delle uscite y(...), mentre i β si riferiscono agli
ingressi u(...). Questi parametri sono rappresentabili in un singolo vettore colonna, chiamato
appunto vettore dei parametri, e definito come:
θ = [α
1
… α
n
| β
1
… β
n
]
Il predittore ARX y(t | t-1), detto predittore ad un passo in avanti, è ottimo se l'errore di
previsione
ε (t,θ) = y(t) - ŷ(t|t-1,θ)
eguaglia l'errore d'equazione
ε (t) = y(t) – y
m
(t).
Il nostro scopo è quello di minimizzare la funzione costo:
ƒ
N
t
t
N
nJ
1
2
),(
1
),( Τ Η Τ
costruita come la somma dei quadrati degli errori di previsione sui dati; il metodo usato
viene chiamato stima ai minimi quadrati (LS – Least Square) e si applica definendo un
vettore dei parametri stimati costruito imponendo:
θ
0
= H
T
y
0
= [( H
T
H )
-1
H
T
] y
0
CAPITOLO 1 . IL PROBLEMA TRATTATO
6
dove è indicata con H una particolare matrice, chiamata matrice di Hankel, che è costruita a
partire da due sottomatrici formate dai valori degli y e u .
La matrice θ
0
esiste ed è unica e minimizza la funzione costo se H ha rango massimo.
Indicando con θ* il valore vero dei dati generati ed N = m - n, in cui m è il numero di
campioni a disposizione, mentre n è l’ordine del modello, la stima LS risulta consistente se:
*0
lim
Τ Τ
φ οN
oppure sotto la condizione che l'errore d'equazione abbia proprietà di bianchezza ed
ergodicità, ed è una stima efficiente se l'errore d'equazione è un processo stocastico
gaussiano.
1.3.2 Modelli ARMAX
Il modello ARMAX è anch'esso appartenente alla famiglia ad equazione d'errore, ma in
questo caso e(t) è descritto tramite un processo MA (Mobile Average) a media mobile, in
questo modo:
e(t) = ω(t) + y
ny
ω(t-1) +… + y
1
ω(t-n)
dove ω (...) è modellato come un processo stocastico a valor medio nullo (µ =0) in cui
l’ordine n di γ
n
è permesso assumerlo pari a quello della parte autoregressiva.
Il modello ARMAX completo ha quindi la seguente struttura:
y(t) = -α
n
y(t-1) + …- α
1
y(t- n) + β
n
u(t-1) + … + β
1
u(t- n) + γ
n
ω(t-1) + … + γ
1
ω(t- n)
Il predittore ottimo per l'ARMAX è individuabile semplicemente osservando che l'unico
termine non predicibile all'istante t-1 è ω(t), da cui
y(t) - y(t|t-1)=ω(t).
Purtroppo non è più applicabile il metodo di stima LS, poiché l'errore d'equazione non è più
bianco e porterebbe ad una stima non polarizzata.
Quindi viene introdotto il metodo della variabile strumentale (IV), che sfrutta una matrice Z
delle stesse dimensioni di H, scritta come:
Z=[ H
n
(η) H
1
(u)]
ma con valori incorrelati da e(t).
CAPITOLO 1 . IL PROBLEMA TRATTATO
7
Le componenti di questa matrice ( strumenti) , possono essere ricavate in due modi:
ξ applicando una stima LS preliminare ottengo gli α
i
e β
i
che utilizzo per creare
η(t) = α
n
y(t-1) + … + α
1
y(t- n) + β
n
u(t-1) + … + β
1
u(t- n)
successivamente si trovano altri parametri α
i
e β
i
estrapolati da un θ
0
che è stato creato
utilizzando la matrice Z e si prosegue per passi successivi fino a giungere a convergenza;
ξ utilizzando come strumenti gli ingressi ai passi precedenti,posso scrivere η(t)=u(t-n), da
qui procedo riempiendo la sottomatrice H
n
( η ). Per determinare invece i valori di y
i
posso
utilizzare:
e(t) = y(t) - α
n
y(t-1) - … - α
1
y(t- n) - β
n
u(t-1) - … - β
1
u(t- n)
e stimando i parametri con il modello MA..
1.3.3 Rappresentazione polinomiale del modello Arx
Quando si opera con Matlab, i modelli vengono espressi non in forma estesa ma in una
particolare rappresentazione polinomiale più compatta; ad esempio il modello Arx descritto nel
seguente modo:
y(t)= α
n
y(t-1) + … + y(t-n) + β
n
u (t-1) + …… + β
1
u(t-n) + e(t)
può essere riscritto anche come:
y(t)- α
1
y(t-1) - … -α
na
y(t-n
a
) = β
1
u (t-n
k
) +… + β
nb
u(t-nk-nb+1) + e(t)
e più esplicitamente:
A(q) y(t) =B(q) u(t-n
k
) + e(t)
dove B ed A sono polinomi dell’operatore ritardo q
-1
, espressi così:
CAPITOLO 1 . IL PROBLEMA TRATTATO
8
A(q) = 1+ α
1
q
-1
+ … + α
na
q
-na
B(q) = β
1
+ β
2
q
-1
+ … + β
nb
q
-nb+1
I numeri n
a
e n
b
sono gli ordini dei rispettivi polinomi, quindi del modello. Il numero n
k
è il
ritardo fra ingresso e uscita.
I parametri da modificare per trovare il modello migliore sono perciò proprio
kba
nnn , ,: per
evitare di vagliare tutte le possibili combinazioni della terna
kba
nnn , , si ricorre alla
“valutazione dell’ordine a priori” che restituisce un valore indicativo di n nell’intorno del quale
limitare l’escursione dei vari
ba
nn , , nonché del ritardo
k
n fra ingresso e uscita. Nel prossimo
capitolo affronteremo meglio questo metodo, mentre nel prossimo paragrafo tratteremo con
precisione i criteri per la determinazione dell’ordine di un modello dal punto di vista teorico.
1.3.4 Struttura e rappresentazione polinomiale di altri modelli
Partendo dallo sviluppo in schema a blocchi del modello Arx:
sviluppiamo ora la struttura di un modello Armax :
A(q) y(t) = B(q) u(t-nk) + C(q) e(t)
dove A(q) e B(q) sono gli stessi definiti per il modello Arx, mentre:
C(q) = 1+ c
1
q
-1
+ …+ c
n c
q
-n c
y[ k ]
e[ k ]
B(q)
)(
1
qA
u[ k ]
][
)(
1
][
)(
)(
][ ke
qA
ku
qA
qB
ky
ARX
CAPITOLO 1 . IL PROBLEMA TRATTATO
9
quindi graficamente:
Un altro modello chiamato Box & Jenkins è invece ottenuto in questo modo:
con
F(q) = 1+ f
1
q
-1
+ …+ f
nf
q
-nf
D(q) = 1+ d
1
q
-1
+ …+ d
nd
q
-nd
che risulta essere la più complessa fra le strutture di modelli analizzati.
Invece la struttura più semplice realizzabile è quella del modello Output Error, data da:
y[ k ]
B(q)
)(
1
qA
u[ k ]
C(q)
e[ k ]
][
)(
)(
][
)(
)(
][ ke
qA
qC
ku
qA
qB
ky
ARMAX
e[ k ]
y[ k ]
)(
)(
qF
qB
)(
)(
qD
qC
u[ k ]
][
)(
)(
][
)(
)(
][ ke
qD
qC
ku
qF
qB
ky
BOX & JENKINS
][][
)(
)(
][ keku
qF
qB
ky
e[ k ]
y[ k ]
)(
)(
qF
qB
u[ k ]
OUPUT ERROR
CAPITOLO 1 . IL PROBLEMA TRATTATO
10
Generalizzando possiamo trovare la struttura di modelli generali parametrici:
][
)(
)(
][
)(
)(
][)( ke
qD
qC
ku
qF
qB
kyqA
L’ultima struttura che andremo ad analizzare sarà quella del modello Spazio degli Stati, che si
presenta così:
]1[]1[]1[
][][]1[
kDukCxky
kBukAxkx
Il System Identification Toolbox (SIT) di Matlab supporta due tipi di parametrizzazioni di
modelli nello Spazio degli Stati, ma a noi interessa il metodo black-box, nel quale
l’indice più importante della struttura è l’ordine del modello n, cioè la dimensione del
vettore degli stati x(t).
Solitamente si assume che per sistemi fisici si considerano modelli puramente dinamici.
Un’ulteriore stima può essere fatta attorno alla matrice di guadagno H : rappresenta il
guadagno dell’osservatore dinamico, in assenza di disturbi, o il filtro di Kalman in
ambiente stocastico.
Il SIT ci fornisce due metodi di base per la stima del modello nello Spazio degli Stati:
ξ Pem: è metodo standard basato sulla minimizzazione iterativa del criterio di
predizione d’errore. Le iterazioni partono da valori di parametri che sono calcolati
dal n4sid , una funzione del SIT. La parametrizzazione delle matrici A, B, C ed H
è effettuata in questo modo: considerati N campioni dei vettori ingresso-uscita
u(t) e y(t), si ricerca il minimo di
)(
1
1
2
te
N
J
N
t
ƒ
CAPITOLO 1 . IL PROBLEMA TRATTATO
11
ξ N4sid: è un metodo nel quale viene selezionato il modello migliore in termini di
predizione )(ty
)
delle uscite misurate y(t) (dato che e(t)=y(t) - )(ty
)
). Questo
metodo non usa la ricerca iterativa, ma la stima può risultare ugualmente di
qualità, a seconda di alcune opzioni scelte nella finestra di comando del SIT.
1.4 Determinazione dell’ordine dei modelli
Per la determinazione di un ordine appropriato del modello, è necessario implementare i
seguenti criteri per vari ordini k ed effettuare una scelta oculata tra i risultati dei diversi
criteri, basati su considerazioni fisiche o statistiche dei dati:
- PPCRE: è definito come un rapporto segnale/rumore (S/N) , precisamente come 100
volte il rapporto tra la deviazione standard dell'errore di previsione e la deviazione
standard dell'uscita. Il criterio viene calcolato per i vari potenziali ordini e viene
selezionato come esatto il minimo ordine per il quale per gli ordini immediatamente
successivi non avviene un decremento sensibile del PPCRE.
]det[
det
110100)(
2
2
k
T
kk
T
k
k
y
k
HHyy
S
kPPCRE
Ρ Ρ
Η
ς
ς
- FPE: consiste nella minimizzazione del valore atteso della varianza dei residui 2ε σ . Si
sceglie come esatto l'ordine associato al minimo valore del criterio.
2
1
0
)(
)(
)()( t
dNN
dN
J
dN
dN
kFPE
L
kt
N ƒ
Η Τ
- AIC: (AKAIKE) è un criterio che tiene conto anche della penalizzazione dei modelli di
ordine elevato; è asintoticamente equivalente all' FPE. Se N è elevato, questo criterio
tende a selezionare modelli di ordine più alto.
dJNkAIC
N
2)](log[)(
0
Τ
CAPITOLO 1 . IL PROBLEMA TRATTATO
12
- MDL: al contrario dei precedenti, che sono basati su considerazioni statistiche, questo
criterio è basato sulla minimizzazione delle informazioni necessarie a descrivere il
modello e il suo errore di previsione.
)](log[]log[
0
N
JNdNMDL Τ
Tutto ciò si tradurrà in questo studio nella stima attraverso SIT di determinati parametri, a
seconda dei modelli che si sta analizzando; più precisamente, per un Arx:
ξ n
a
relativo a A(q) = 1+ α
1
q
-1
+ … + α
na
q
-na
ξ n
b
relativo a B(q) = β
1
+ β
2
q
-1
+ … + β
nb
q
-nb+1
ξ n
k
, ritardo fra ingresso ed uscita.
Per un modello Armax:
ξ n
a
relativo a A(q) = 1+ α
1
q
-1
+ … + α
na
q
-na
ξ n
b
, relativo a B(q) = β
1
+ β
2
q
-1
+ … + β
nb
q
-nb+1
ξ n
c
, relativo a C(q) = 1+ c
1
q
-1
+ …+ c
n c
q
-n c
ξ n
k
, ritardo fra ingresso ed uscita.
Per un modello Box & Jenkins:
ξ n
b
, relativo a B(q) = β
1
+ β
2
q
-1
+ … + β
nb
q
-nb+1
ξ n
c
, relativo a C(q) = 1+ c
1
q
-1
+ …+ c
n c
q
-n c
ξ n
d
, relativo a F(q) = 1+ f
1
q
-1
+ …+ f
nf
q
-nf
ξ n
f
, relativo a D(q) = 1+ d
1
q
-1
+ …+ d
nd
q
-nd
ξ n
k
, ritardo fra ingresso ed uscita.
Per un modello Output Error, come per l’Arx:
ξ n
a
relativo a A(q) = 1+ α
1
q
-1
+ … + α
na
q
-na
ξ n
b
, relativo a B(q) = β
1
+ β
2
q
-1
+ … + β
nb
q
-nb+1
ξ n
k
, ritardo fra ingresso ed uscita.
Ed infine per un modello Stato degli Spazi:
ξ n , ordine generale del modello
ξ n
k
, ritardo fra ingresso ed uscita.
CAPITOLO 1 . IL PROBLEMA TRATTATO
13
1.4.1 Test di bianchezza dei residui
Sapendo che l'errore di previsione è
)()()(
0
Η Η ytyt
dove y° rappresenta il vettore delle uscite osservate del sistema, per un modello identificato
con ordine corretto ε(t) deve essere un processo bianco, ed è buona norma verificare questa
condizione effettuando un controllo sulla covarianza:
)()(
1
)(
1
Ω Η Η Ω
Η
ƒ
tt
N
r
N
t
N
con τ=1, … , M con M solitamente fissato a 8.
Se ε (t) è un rumore bianco allora la quantità:
2
1
2
,
)]([
)0(
1
Ω [
Η
Ω Η
N
M
MN
r
r
ƒ
converge asintoticamente ad una distribuzione di
)(
2
M Φ
Perciò la bianchezza dei residui è solitamente verificata nelle condizioni di:
)8(
2
99,08,
Φ [
N
In pratica si traduce nel fatto che le funzioni di autocorrelazione:
)()(
1
)(
ˆ
1
Ω Η Η Ω
Η
ƒ
tt
N
R
N
t
e cross-correlazione:
)()(
1
)(
ˆ
1
Ω Η Ω
Η
ƒ
ttu
N
R
N
t
u
rimangano entro i limiti del 95 % attorno allo 0, cosa facilmente visualizzabile con il SIT.
CAPITOLO 2. L’IDENTIFICAZIONE DEI MODELLI
14
Capitolo 2
L’identificazione dei modelli
Il particolare progetto che analizzeremo prevede la trattazione di un sistema SISO, singolo
ingresso e singola uscita, a dati campionati a distanza di un giorno; l’analisi si dividerà
principalmente in due aree tematiche principali:
ξ in simulazione ,
ξ in previsione ,
e, a differenza della teoria, sarà composta da solo quattro fasi principali (in quanto non c’è stato
bisogno di raccogliere i dati, avendoli già a disposizione):
a) elaborazione preliminare dei dati
b) scelta dei modelli da analizzare
c) stima del miglior modello
d) validazione e verifica.
Anticipo subito che analizzerò modello per modello poi confronterò i risultati ottenuti.
2.1 Elaborazione preliminare dei dati
Per sfruttare al meglio tutti le informazioni ricavabili dai dati in modo iterativo e semplice ho
costruito una funzione ( “data.m”, fruibile al capitolo 5) che in modo automatico fornisce una
serie di figure necessarie all’analisi preliminare.
La funzione innanzitutto carica i campioni di dati dal file “data_ac.txt”, poi li trasforma e li
rende utilizzabili dall’interfaccia “ident”, cioè in formato “iddata” .
Come consuetudine nel campo dell’identificazione ho diviso la serie temporale di dati in mio
possesso in due parti, una prima per la modellizzazione e le valutazioni, la seconda per la
validazione dei modelli trovati. Cioè le nostre coppie ingresso-uscita sono vettori di 2217
elementi; identificheremo i modelli a partire dai primi 1107 valori e utilizzeremo i restanti per
la validazione. Questo punto consisterà nel testare le capacità predittive del modello sulla
porzione dei dati cui non si è ricorsi in fase di identificazione.
Dopo aver sottoposto i dati alla sottrazione del valor medio gli ho visualizzati, ho operato
l’analisi spettrale dell’uscita riferita all’ingresso , dell’ingresso riferita all’uscita , il diagramma
di Bode ed infine la risposta all’impulso.